WCF - Architektura
WCF ma architekturę warstwową, która oferuje szerokie wsparcie dla tworzenia różnych aplikacji rozproszonych. Architekturę opisano szczegółowo poniżej.
Umowy
Warstwa kontraktów znajduje się tuż obok warstwy aplikacji i zawiera informacje podobne do tych z rzeczywistego kontraktu, które określają działanie usługi i rodzaj dostępnych informacji, które ona udostępni. Kontrakty są zasadniczo czterech typów omówionych w skrócie poniżej -
Service contract - Ta umowa dostarcza klientowi, a także światu zewnętrznemu informacji o ofercie punktu końcowego i protokołach, które mają być używane w procesie komunikacji.
Data contract- Dane wymieniane przez usługę są określone w umowie dotyczącej danych. Zarówno klient, jak i usługa muszą być zgodne z umową dotyczącą danych.
Message contract- Kontrakt danych jest kontrolowany przez kontrakt wiadomości. Przede wszystkim dostosowuje formatowanie typu parametrów komunikatu SOAP. W tym miejscu należy wspomnieć, że WCF używa formatu SOAP do celów komunikacji. SOAP to skrót od Simple Object Access Protocol.
Policy and Binding- Istnieją pewne warunki wstępne dotyczące komunikacji z usługą, które są określone w polityce i wiążącej umowie. Klient musi przestrzegać tej umowy.
Service Runtime
Warstwa wykonawcza usługi znajduje się tuż poniżej warstwy umów. Określa różne zachowania usług, które występują w czasie wykonywania. Istnieje wiele typów zachowań, które mogą podlegać konfiguracji i wchodzić w zakres środowiska wykonawczego usługi.
Throttling Behavior - Zarządza liczbą przetworzonych wiadomości.
Error Behavior - Definiuje wynik każdego wewnętrznego wystąpienia błędu usługi.
Metadata Behavior - Określa dostępność metadanych dla świata zewnętrznego.
Instance Behavior - Określa liczbę instancji, które należy utworzyć, aby były dostępne dla klienta.
Transaction Behavior - Umożliwia zmianę stanu transakcji w przypadku jakiejkolwiek awarii.
Dispatch Behavior - Kontroluje sposób, w jaki wiadomość jest przetwarzana przez infrastrukturę WCF.
Concurrency Behavior - Kontroluje funkcje, które działają równolegle podczas komunikacji klient-serwer.
Parameter Filtering - Zawiera proces sprawdzania poprawności parametrów metody przed jej wywołaniem.
Wiadomości
Ta warstwa, złożona z kilku kanałów, zajmuje się głównie treścią wiadomości, która ma być przekazywana między dwoma punktami końcowymi. Zestaw kanałów tworzy stos kanałów, a dwa główne typy kanałów, które składają się na stos kanałów, to następujące:
Transport Channels - Te kanały znajdują się na dole stosu i są odpowiedzialne za wysyłanie i odbieranie wiadomości przy użyciu protokołów transportowych, takich jak HTTP, TCP, Peer-to-Peer, Named Pipes i MSMQ.
Protocol Channels - Znajdujące się na szczycie stosu kanały te, znane również jako kanały warstwowe, implementują protokoły na poziomie przewodowym poprzez modyfikowanie komunikatów.
Aktywacja i hosting
Ostatnią warstwą architektury WCF jest miejsce, w którym usługi są faktycznie hostowane lub mogą być wykonywane w celu łatwego dostępu przez klienta. Odbywa się to za pomocą różnych mechanizmów omówionych w skrócie poniżej.
IIS- IIS to skrót od Internet Information Service. Oferuje niezliczone korzyści przy użyciu protokołu HTTP przez usługę. Tutaj nie jest wymagane posiadanie kodu hosta do aktywacji kodu serwisowego; zamiast tego kod serwisowy jest aktywowany automatycznie.
Windows Activation Service- Jest to powszechnie znane jako WAS i jest dostarczane z usługami IIS 7.0. Komunikacja oparta na protokole HTTP i nie oparta na HTTP jest możliwa dzięki zastosowaniu protokołów TCP lub Namedpipe.
Self-hosting- Jest to mechanizm, za pomocą którego usługa WCF jest hostowana samodzielnie jako aplikacja konsoli. Mechanizm ten oferuje niesamowitą elastyczność w zakresie wyboru żądanych protokołów i ustalania własnego schematu adresowania.
Windows Service - Hostowanie usługi WCF za pomocą tego mechanizmu jest korzystne, ponieważ usługi pozostają wtedy aktywowane i dostępne dla klienta ze względu na brak aktywacji w czasie wykonywania.