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.