Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die folgende Grafik veranschaulicht die wichtigsten Ebenen der Windows Communication Foundation (WCF)-Architektur.
WCF-Architektur
Verträge und Beschreibungen
Verträge definieren verschiedene Aspekte des Nachrichtensystems. Der Datenvertrag beschreibt jeden Parameter, aus dem jede Nachricht besteht, die ein Dienst erstellen oder nutzen kann. Die Nachrichtenparameter werden durch Dokumente der XML-Schema-Definitionssprache (XSD) definiert, wodurch jedes System, das XML versteht, die Dokumente verarbeiten kann. Der Nachrichtenvertrag definiert bestimmte Nachrichtenteile mithilfe von SOAP-Protokollen und ermöglicht eine präzisere Kontrolle über Teile der Nachricht, wenn die Interoperabilität eine solche Genauigkeit erfordert. Der Dienstvertrag gibt die tatsächlichen Methodensignaturen des Diensts an und wird als Schnittstelle in einer der unterstützten Programmiersprachen wie Visual Basic oder Visual C# verteilt.
Richtlinien und Bindungen legen die Bedingungen fest, die für die Kommunikation mit einem Dienst erforderlich sind. Beispielsweise muss die Bindung (mindestens) den verwendeten Transport (z. B. HTTP oder TCP) und eine Codierung angeben. Richtlinien umfassen Sicherheitsanforderungen und andere Bedingungen, die erfüllt werden müssen, um mit einem Dienst zu kommunizieren.
Dienstlaufzeit
Die Dienstlaufzeitebene enthält die Verhaltensweisen, die nur während des tatsächlichen Vorgangs des Diensts auftreten, d. h. das Laufzeitverhalten des Diensts. Die Einschränkung steuert, wie viele Nachrichten verarbeitet werden, was variieren kann, wenn die Nachfrage nach dem Dienst auf einen voreingestellten Grenzwert wächst. Ein Fehlerverhalten gibt an, was auftritt, wenn ein interner Fehler auf dem Dienst auftritt, z. B. indem gesteuert wird, welche Informationen an den Client übermittelt werden. (Zu viele Informationen können einem böswilligen Benutzer einen Vorteil bei der Bereitstellung eines Angriffs geben.) Das Metadatenverhalten steuert, wie und ob Metadaten der Außenwelt zur Verfügung gestellt werden. Das Instanzverhalten gibt an, wie viele Instanzen des Diensts ausgeführt werden können (z. B. gibt ein Singleton nur eine Instanz zum Verarbeiten aller Nachrichten an). Das Transaktionsverhalten ermöglicht das Rollback von Transaktionen, wenn ein Fehler auftritt. Das Verteilerverhalten ist die Kontrolle darüber, wie eine Nachricht von der WCF-Infrastruktur verarbeitet wird.
Die Erweiterbarkeit ermöglicht die Anpassung von Laufzeitprozessen. Beispielsweise ist die Nachrichtenüberprüfung die Möglichkeit, Teile einer Nachricht zu prüfen, und die Parameterfilterung ermöglicht voreingestellte Aktionen basierend auf Filtern, die auf Nachrichtenkopfzeilen handeln.
Nachrichtenübermittlung
Die Messaging-Ebene besteht aus Kanälen. Ein Kanal ist eine Komponente, die eine Nachricht auf irgendeine Weise verarbeitet, z. B. durch Authentifizierung einer Nachricht. Eine Reihe von Kanälen wird auch als Kanalstapel bezeichnet. Kanäle arbeiten mit Nachrichten und Nachrichtenkopfzeilen. Dies unterscheidet sich von der Dienstlaufzeitebene, die in erster Linie die Verarbeitung des Inhalts von Nachrichtentexten betrifft.
Es gibt zwei Arten von Kanälen: Transportkanäle und Protokollkanäle.
Transportkanäle lesen und schreiben Nachrichten aus dem Netzwerk (oder einen anderen Kommunikationspunkt mit der Außenwelt). Einige Transporte verwenden einen Encoder zum Konvertieren von Nachrichten (die als XML-Infosets dargestellt werden) in und aus der vom Netzwerk verwendeten Bytedatenstromdarstellung. Beispiele für Transporte sind HTTP, named pipes, TCP und MSMQ. Beispiele für Codierungen sind XML und optimierte Binärdateien.
Protokollkanäle implementieren Nachrichtenverarbeitungsprotokolle, häufig durch Lesen oder Schreiben zusätzlicher Kopfzeilen in die Nachricht. Beispiele für solche Protokolle sind WS-Security und WS-Zuverlässigkeit.
Die Messaging-Ebene veranschaulicht die möglichen Formate und Austauschmuster der Daten. WS-Security ist eine Implementierung der WS-Security Spezifikation, die Sicherheit auf der Nachrichtenebene ermöglicht. Der WS-Reliable Messaging-Kanal ermöglicht die Garantie für die Nachrichtenübermittlung. Die Encoder stellen eine Vielzahl von Codierungen dar, die für die Anforderungen der Nachricht verwendet werden können. Der HTTP-Kanal gibt an, dass das HyperText-Transportprotokoll für die Nachrichtenübermittlung verwendet wird. Der TCP-Kanal gibt das TCP-Protokoll entsprechend an. Der Transaktionsflusskanal regelt abgewickelte Nachrichtenmuster. Der Named-Pipe-Kanal ermöglicht die Zwischenprozesskommunikation. Der MSMQ-Kanal ermöglicht die Interoperabilität mit MSMQ-Anwendungen.
Hosting und Aktivierung
In seiner endgültigen Form ist ein Dienst ein Programm. Wie andere Programme muss ein Dienst in einer ausführbaren Datei ausgeführt werden. Dies wird als selbst gehosteter Dienst bezeichnet.
Dienste können auch gehostet oder in einer ausführbaren Datei ausgeführt werden, die von einem externen Agent verwaltet wird, z. B. IIS oder Windows-Aktivierungsdienst (WAS). WAS ermöglicht die automatische Aktivierung von WCF-Anwendungen, wenn sie auf einem Computer mit WAS bereitgestellt wird. Dienste können auch manuell als ausführbare Dateien (.exe Dateien) ausgeführt werden. Ein Dienst kann auch automatisch als Windows-Dienst ausgeführt werden. COM+-Komponenten können auch als WCF-Dienste gehostet werden.