Windows Communication Foundation-ArchitekturWindows Communication Foundation Architecture

Die folgende Abbildung veranschaulicht die Hauptebenen der Architektur des Windows Communication Foundation (WCF).The following graphic illustrates the major layers of the Windows Communication Foundation (WCF) architecture.

WCF-ArchitekturWCF Architecture

Die WCF-ArchitekturThe WCF Architecture

Verträge und BeschreibungenContracts and Descriptions

Verträge definieren verschiedene Aspekte des Nachrichtensystems.Contracts define various aspects of the message system. Der Datenvertrag beschreibt alle Parameter, aus denen die einzelnen Nachrichten bestehen, die ein Dienst erstellen oder verarbeiten kann.The data contract describes every parameter that makes up every message that a service can create or consume. Die Nachrichtenparameter werden in XSD-Dokumenten (XML-Schemadefinitionssprache) definiert. Dadurch kann jedes XML-fähige System die Dokumente verarbeiten.The message parameters are defined by XML Schema definition language (XSD) documents, enabling any system that understands XML to process the documents. Der Nachrichtenvertrag definiert anhand von SOAP-Protokollen bestimmte Nachrichtenteile und ermöglicht eine detailliertere Steuerung der Teile einer Nachricht, wenn die Interoperabilität diese Genauigkeit verlangt.The message contract defines specific message parts using SOAP protocols, and allows finer-grained control over parts of the message, when interoperability demands such precision. Der Dienstvertrag gibt die tatsächlichen Methodensignaturen des Dienstes an und wird als Schnittstelle in einer der unterstützten Programmiersprachen verteilt (z. B. Visual Basic oder Visual C#).The service contract specifies the actual method signatures of the service, and is distributed as an interface in one of the supported programming languages, such as Visual Basic or Visual C#.

Richtlinien und Bindungen legen die zur Kommunikation mit einem Dienst erforderlichen Bedingungen fest.Policies and bindings stipulate the conditions required to communicate with a service. Beispielsweise muss die Bindung (mindestens) den verwendeten Transport (z. B. HTTP oder TCP) und eine Codierung angeben.For example, the binding must (at a minimum) specify the transport used (for example, HTTP or TCP), and an encoding. Richtlinien schließen Sicherheitsanforderungen und andere Bedingungen ein, die für die Kommunikation mit einem Dienst erfüllt werden müssen.Policies include security requirements and other conditions that must be met to communicate with a service.

DienstlaufzeitService Runtime

Die Dienstlaufzeitebene umfasst Verhaltensweisen, die nur während der tatsächlichen Ausführung des Dienstes auftreten, d. h. das Laufzeitverhalten des Dienstes.The service runtime layer contains the behaviors that occur only during the actual operation of the service, that is, the runtime behaviors of the service. Die Drosselung steuert, wie viele Nachrichten verarbeitet werden. Diese Zahl kann geändert werden, wenn die Nachfrage nach dem Dienst ein voreingestelltes Limit erreicht.Throttling controls how many messages are processed, which can be varied if the demand for the service grows to a preset limit. Für den Fall eines internen Dienstfehlers gibt das Fehlerverhalten die zu ergreifenden Maßnahmen an, z. B. indem es steuert, welche Informationen an den Client übermittelt werden.An error behavior specifies what occurs when an internal error occurs on the service, for example, by controlling what information is communicated to the client. (Zu viele Informationen könnten einem böswilligen Benutzer einen Angriff erleichtern.) Das Metadatenverhalten bestimmt, wie und ob Metadaten öffentlich verfügbar gemacht werden.(Too much information can give a malicious user an advantage in mounting an attack.) Metadata behavior governs how and whether metadata is made available to the outside world. Wie viele Instanzen des Dienstes ausgeführt werden können, wird vom Instanzenverhalten angegeben (Singleton gibt z. B. nur eine Instanz zur Verarbeitung aller Nachrichten an).Instance behavior specifies how many instances of the service can be run (for example, a singleton specifies only one instance to process all messages). Das Transaktionsverhalten ermöglicht einen Rollback von durchgeführten Vorgängen im Fall eines Fehlers.Transaction behavior enables the rollback of transacted operations if a failure occurs. Verteilungsverhalten handelt es sich um die Steuerung der Verarbeitung einer Nachricht von der WCF-Infrastruktur.Dispatch behavior is the control of how a message is processed by the WCF infrastructure.

Die Erweiterbarkeit ermöglicht eine Anpassung der Laufzeitprozesse.Extensibility enables customization of runtime processes. Beispielsweise werden mit der Nachrichteninspektion Teile einer Nachricht überprüft, und mit der Parameterfilterung finden anhand von Filtern, die auf Nachrichtenheader angewendet werden, voreingestellte Aktionen statt.For example, message inspection is the facility to inspect parts of a message, and parameter filtering enables preset actions to occur based on filters acting on message headers.

MessagingMessaging

Die Messagingebene besteht Kanäle.The messaging layer is composed of channels. Ein Kanal ist eine Komponete, die eine Nachricht in bestimmter Weise verarbeitet, z. B. durch Authentifizierung.A channel is a component that processes a message in some way, for example, by authenticating a message. Ein Satz von Kanälen ist auch bekannt als ein Kanalstapel.A set of channels is also known as a channel stack. Kanäle arbeiten mit Nachrichten und Nachrichtenheadern.Channels operate on messages and message headers. Die Dienstlaufzeitebene hingegen verarbeitet hauptsächlich den Inhalt des Nachrichtentexts.This is different from the service runtime layer, which is primarily concerned about processing the contents of message bodies.

Es gibt zwei Arten von Kanälen: Transportkanäle und Protokollkanäle.There are two types of channels: transport channels and protocol channels.

Transportkanäle lesen und schreiben Nachrichten aus dem Netzwerk (oder einem Kommunikationspunkt zur Außenwelt).Transport channels read and write messages from the network (or some other communication point with the outside world). Bei einigen Transporten wird ein Encoder verwendet, um Nachrichten (die als XML-Infosets dargestellt werden) in und aus der Bytestreamdarstellung des Netzwerks zu konvertieren.Some transports use an encoder to convert messages (which are represented as XML Infosets) to and from the byte stream representation used by the network. HTTP, benannte Pipes, TCP und MSMQ sind Beispiele für Transporte.Examples of transports are HTTP, named pipes, TCP, and MSMQ. Beispiele für Codierungen sind XML und optimierte Binärdateien.Examples of encodings are XML and optimized binary.

Protokollkanäle implementieren Nachrichtenverarbeitungsprotokolle. Das erfolgt häufig durch Lesen oder Schreiben zusätzlicher Header in die Nachricht.Protocol channels implement message processing protocols, often by reading or writing additional headers to the message. Zu diesen Protokollen gehören beispielsweise WS-Security und WS-Reliability.Examples of such protocols include WS-Security and WS-Reliability.

Die Messagingebene stellt die möglichen Formate und die Austauschmuster der Daten dar.The messaging layer illustrates the possible formats and exchange patterns of the data. WS-Security ist eine Implementierung der WS-Security-Spezifikation, die die Sicherheit auf der Nachrichtenebene aktiviert.WS-Security is an implementation of the WS-Security specification enabling security at the message layer. Der WS-Reliable Messaging-Kanal stellt die Nachrichtenübermittlung sicher.The WS-Reliable Messaging channel enables the guarantee of message delivery. Mit einer Vielzahl von Codierungen ermöglichen es Encoder, die Nachrichtenanforderungen zu erfüllen.The encoders present a variety of encodings that can be used to suit the needs of the message. Der HTTP-Kanal gibt die Verwendung des Hypertextübertragungsprotokolls zur Nachrichtenübermittlung an.The HTTP channel specifies that the HyperText Transport Protocol is used for message delivery. Entsprechend gibt der TCP-Kanal die Verwendung des TCP-Protokolls an.The TCP channel similarly specifies the TCP protocol. Der Transaktionsflusskanal bestimmt die Muster von Transaktionsnachrichten.The Transaction Flow channel governs transacted message patterns. Der Kanal für benannte Pipes ermöglicht die prozessübergreifende Kommunikation.The Named Pipe channel enables interprocess communication. Der MSMQ-Kanal ermöglicht die Interoperation zwischen MSMQ-Anwendungen.The MSMQ channel enables interoperation with MSMQ applications.

Hosting und AktivierungHosting and Activation

Ein Dienst ist letztendlich ein Programm.In its final form, a service is a program. Wie andere Programme muss ein Dienst in einer ausführbaren Datei ausgeführt werden.Like other programs, a service must be run in an executable. Dies bezeichnet man eine selbstgehosteten Dienst.This is known as a self-hosted service.

Dienste können auch sein gehostet, oder führen Sie in einer ausführbaren Datei von einem externen Agenten, z. B. IIS oder Windows Activation Service (WAS) verwaltet werden.Services can also be hosted, or run in an executable managed by an external agent, such as IIS or Windows Activation Service (WAS). WURDE die WCF-Anwendungen ermöglicht, automatisch aktiviert werden, wenn auf einem Computer bereitgestellt wurde.WAS enables WCF applications to be activated automatically when deployed on a computer running WAS. Sie können Dienste gegebenenfalls manuell als ausführbare Dateien (EXE-Dateien) ausführen.Services can also be manually run as executables (.exe files). Ein Dienst kann auch automatisch als Windows-Dienst ausgeführt werden.A service can also be run automatically as a Windows service. COM+-Komponenten können auch als WCF-Dienste gehostet werden.COM+ components can also be hosted as WCF services.

Siehe auchSee Also

Was ist die Windows Communication Foundation?What Is Windows Communication Foundation
Wesentliche Windows Communication Foundation-BegriffeFundamental Windows Communication Foundation Concepts