Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Poniższa ilustracja przedstawia główne warstwy architektury programu Windows Communication Foundation (WCF).
Architektura programu WCF
Kontrakty i opisy
Kontrakty definiują różne aspekty systemu komunikatów. Kontrakt danych opisuje każdy parametr, który tworzy każdy komunikat, jaki usługa może utworzyć lub przetworzyć. Parametry komunikatu są definiowane przez dokumenty języka definicji schematu XML (XSD), co umożliwia każdemu systemowi, który rozumie kod XML do przetwarzania dokumentów. Kontrakt komunikatów definiuje określone części komunikatów przy użyciu protokołów SOAP i umożliwia bardziej szczegółową kontrolę nad częściami komunikatu, gdy współdziałanie wymaga takiej precyzji. Kontrakt usługi określa rzeczywiste podpisy metod usługi i jest dystrybuowany jako interfejs w jednym z obsługiwanych języków programowania, takich jak Visual Basic lub Visual C#.
Zasady i powiązania określają warunki wymagane do komunikowania się z usługą. Na przykład powiązanie musi (co najmniej) określać używany transport (na przykład HTTP lub TCP) i kodowanie. Zasady obejmują wymagania dotyczące zabezpieczeń i inne warunki, które muszą zostać spełnione w celu komunikowania się z usługą.
Środowisko uruchomieniowe usługi
Warstwa środowiska uruchomieniowego usługi zawiera zachowania, które występują tylko podczas rzeczywistej operacji usługi, czyli zachowania środowiska uruchomieniowego usługi. Ograniczanie przepustowości określa, ile komunikatów jest przetwarzanych, co może być zróżnicowane, jeśli zapotrzebowanie na usługę wzrośnie do ustalonego limitu. Mechanizm obsługi błędów określa, co się dzieje, gdy w usłudze wystąpi błąd wewnętrzny, na przykład, kontrolując, jakie informacje są przekazywane do klienta. (Zbyt wiele informacji może dać złośliwemu użytkownikowi przewagę podczas instalowania ataku). Zachowanie metadanych określa, jak i czy metadane są udostępniane światu zewnętrznemu. Zachowanie instancji określa, ile wystąpień usługi można uruchomić (na przykład singleton określa, że tylko jedno wystąpienie przetwarza wszystkie komunikaty). Zachowanie transakcyjne umożliwia wycofanie operacji, jeśli wystąpi awaria. Zachowanie wysyłania to kontrola sposobu przetwarzania komunikatu przez infrastrukturę WCF.
Rozszerzalność umożliwia dostosowywanie procesów środowiska uruchomieniowego. Na przykład inspekcja komunikatów to funkcja inspekcji części komunikatu, a filtrowanie parametrów umożliwia wykonywanie wstępnie zdefiniowanych akcji na podstawie filtrów działających na nagłówkach komunikatów.
Komunikacja
Warstwa obsługi komunikatów składa się z kanałów. Kanał to składnik, który przetwarza komunikat w jakiś sposób, na przykład przez uwierzytelnianie komunikatu. Zestaw kanałów nazywa się także stosem kanałów. Kanały działają na komunikatach i nagłówkach wiadomości. Różni się to od warstwy środowiska uruchomieniowego usługi, która dotyczy głównie przetwarzania zawartości treści komunikatów.
Istnieją dwa typy kanałów: kanały transportu i kanały protokołu.
Kanały transportowe odczytują i zapisują komunikaty z sieci (lub z innego punktu komunikacyjnego ze światem zewnętrznym). Niektóre transporty używają kodera do konwertowania komunikatów (reprezentowanych jako zestawy informacji XML) do i z reprezentacji strumienia bajtów używanej przez sieć. Przykłady transportu to HTTP, nazwane potoki, TCP i MSMQ. Przykłady kodowania to XML i zoptymalizowane dane binarne.
Kanały protokołu implementują protokoły przetwarzania komunikatów, często odczytując lub zapisując dodatkowe nagłówki do komunikatu. Przykłady takich protokołów obejmują WS-Security i WS-Reliability.
Warstwa obsługi komunikatów ilustruje możliwe formaty i wzorce wymiany danych. WS-Security to implementacja specyfikacji WS-Security umożliwiająca zabezpieczenia w warstwie komunikatów. Kanał WS-Reliable Messaging umożliwia zagwarantowanie dostarczania komunikatów. Kodery przedstawiają różne kodowania, których można użyć do zaspokojenia potrzeb komunikatu. Kanał HTTP określa, że protokół transportu HyperText jest używany do dostarczania komunikatów. Kanał TCP podobnie określa protokół TCP. Kanał przepływu transakcji zarządza wzorcami komunikatów transakcyjnych. Kanał nazwanego potoku umożliwia komunikację międzyprocesową. Kanał MSMQ umożliwia współdziałanie z aplikacjami MSMQ.
Hosting i aktywacja
W ostatecznej formie usługa jest programem. Podobnie jak w przypadku innych programów, usługa musi być uruchamiana w pliku wykonywalnym. Jest to znane jako samodzielnie hostowana usługa.
Usługi mogą być również hostowane lub uruchamiane w pliku wykonywalnym zarządzanym przez agenta zewnętrznego, takiego jak usługi IIS lub Usługa aktywacji systemu Windows (WAS). WAS umożliwia automatyczne aktywowanie aplikacji WCF podczas wdrażania na komputerze z uruchomionym programem WAS. Usługi można też ręcznie uruchamiać jako pliki wykonywalne (.exe files). Usługę można również uruchamiać automatycznie jako usługę systemu Windows. Składniki COM+ mogą być również hostowane jako usługi WCF.