Kontrakty
W tej sekcji przedstawiono sposób definiowania i implementowania kontraktów programu Windows Communication Foundation (WCF). Kontrakt usługi określa, co punkt końcowy komunikuje się ze światem zewnętrznym. Na bardziej konkretnym poziomie jest to instrukcja dotycząca zestawu konkretnych wiadomości zorganizowanych w podstawowe wzorce wymiany komunikatów (deputowanych), takie jak żądanie/odpowiedź, jednokierunkowe i dwukierunkowe. Jeśli kontrakt usługi jest logicznie powiązanym zestawem wymiany komunikatów, operacja usługi jest jedną wymianą komunikatów. Na przykład Hello
operacja musi oczywiście zaakceptować jedną wiadomość (aby obiekt wywołujący mógł ogłosić powitanie) i może lub nie może zwrócić wiadomości (w zależności od uprzejmości operacji).
Aby uzyskać więcej informacji na temat kontraktów i innych podstawowych pojęć związanych z usługą WCF, zobacz Podstawowe pojęcia dotyczące programu Windows Communication Foundation. Ten temat koncentruje się na zrozumieniu kontraktów usług. Aby uzyskać więcej informacji na temat tworzenia klientów korzystających z kontraktów usług do łączenia się z usługami, zobacz Omówienie klienta programu WCF. Aby uzyskać więcej informacji na temat kanałów klienta, architektury klienta i innych problemów z klientami, zobacz Klienci.
Omówienie
Ten temat zawiera ogólną orientację koncepcyjną na potrzeby projektowania i implementowania usług WCF. Podtopy zawierają bardziej szczegółowe informacje na temat specyfiki projektowania i implementacji. Przed projektowaniem i wdrażaniem aplikacji WCF zaleca się:
Dowiedz się, czym jest kontrakt usługi, jak to działa i jak go utworzyć.
Należy pamiętać, że umowy mają minimalne wymagania dotyczące konfiguracji czasu wykonywania lub środowiska hostingu, które mogą nie być obsługiwane.
Kontrakty usług
Kontrakt usługi to instrukcja, która zawiera informacje o:
Grupowanie operacji w usłudze.
Podpis operacji w odniesieniu do komunikatów wymienianych.
Typy danych tych komunikatów.
Lokalizacja operacji.
Określone protokoły i formaty serializacji, które są używane do obsługi pomyślnej komunikacji z usługą.
Na przykład umowa zamówienia zakupu może mieć operację CreateOrder
, która akceptuje dane wejściowe typów informacji o zamówieniu i zwraca informacje o powodzeniu lub niepowodzeniu, w tym identyfikator zamówienia. Może również mieć operację GetOrderStatus
, która akceptuje identyfikator zamówienia i zwraca informacje o stanie zamówienia. Kontrakt usługi tego rodzaju określi:
To, że umowa zamówienia zakupu składała się z
CreateOrder
operacji iGetOrderStatus
.Czy operacje określiły komunikaty wejściowe i komunikaty wyjściowe.
Dane, które te komunikaty mogą być przenoszone.
Kategoryczne instrukcje dotyczące infrastruktury komunikacyjnej niezbędnej do pomyślnego przetworzenia komunikatów. Na przykład te szczegóły obejmują, czy i jakie formy zabezpieczeń są wymagane do nawiązania pomyślnej komunikacji.
Aby przekazać tego rodzaju informacje aplikacjom na innych platformach (w tym platformach innych niż Microsoft), kontrakty usług XML są publicznie wyrażane w standardowych formatach XML, takich jak Web Services Description Language (WSDL) i XML Schema (XSD), między innymi. Deweloperzy wielu platform mogą używać tych informacji o umowie publicznej do tworzenia aplikacji, które mogą komunikować się z usługą, zarówno dlatego, że rozumieją język specyfikacji, jak i dlatego, że te języki zostały zaprojektowane w celu umożliwienia współdziałania, opisując formularze publiczne, formaty i protokoły obsługiwane przez usługę. Aby uzyskać więcej informacji na temat obsługi tego rodzaju informacji przez usługę WCF, zobacz Metadane.
Kontrakty mogą być wyrażane na wiele sposobów, natomiast języki WSDL i XSD są doskonałymi językami do opisywania usług w dostępny sposób, są trudne do użycia bezpośrednio — w każdym przypadku są to jedynie opisy usługi, a nie implementacje kontraktów usług. W związku z tym aplikacje WCF używają atrybutów zarządzanych, interfejsów i klas zarówno do definiowania struktury, jak i implementowania usługi.
Wynikowy kontrakt zdefiniowany w typach zarządzanych może być konwertowany (nazywany również eksportowany) jako metadane — WSDL i XSD — w razie potrzeby przez klientów lub innych implementatorów usług, zwłaszcza na innych platformach. Wynikiem jest prosty model programowania, który można opisać przy użyciu metadanych publicznych w dowolnej aplikacji klienckiej. Szczegóły podstawowych komunikatów PROTOKOŁU SOAP, takich jak informacje dotyczące transportu i zabezpieczeń, można pozostawić do programu WCF, który automatycznie wykonuje niezbędne konwersje do i z systemu typów kontraktów usług do systemu typów XML.
Aby uzyskać więcej informacji na temat projektowania kontraktów, zobacz Projektowanie kontraktów usług. Aby uzyskać więcej informacji na temat implementowania kontraktów, zobacz Implementowanie kontraktów usług.
Ponadto program WCF zapewnia również możliwość tworzenia kontraktów usług w całości na poziomie komunikatów. Aby uzyskać więcej informacji na temat tworzenia kontraktów usług na poziomie komunikatu, zobacz Using Message Contracts (Używanie kontraktów komunikatów). Aby uzyskać więcej informacji na temat opracowywania usług w formacie XML innych niż SOAP, zobacz Współdziałanie z aplikacjami POX.
Opis hierarchii wymagań
Kontrakt usługi grupuje operacje; określa mep, typy komunikatów i typy danych, które są przenoszone; i wskazuje kategorie zachowania w czasie wykonywania implementacja musi obsługiwać kontrakt (na przykład może wymagać szyfrowania i podpisania komunikatów). Sam kontrakt usługi nie określa jednak dokładnie sposobu spełnienia tych wymagań, tylko dlatego, że muszą być spełnione. Jaki typ szyfrowania lub sposób zarejestrowania komunikatu jest zgodny z implementacją i konfiguracją zgodnej usługi.
Zwróć uwagę na sposób, w jaki kontrakt wymaga pewnych elementów implementacji kontraktu usługi i konfiguracji czasu wykonywania w celu dodania zachowania. Zestaw wymagań, które należy spełnić, aby uwidocznić usługę do użycia, opiera się na poprzednim zestawie wymagań. Jeśli kontrakt spełnia wymagania implementacji, implementacja może wymagać jeszcze większej liczby konfiguracji i powiązań, które umożliwiają uruchomienie usługi. Na koniec aplikacja hosta musi również obsługiwać wszelkie wymagania dodane przez konfigurację i powiązania usługi.
Ten proces wymagania addytywnego jest ważny, aby pamiętać o projektowaniu, implementowaniu, konfigurowaniu i hostowaniu aplikacji usługi Windows Communication Foundation (WCF). Na przykład kontrakt może określać, że musi obsługiwać sesję. Jeśli tak, musisz skonfigurować powiązanie w celu zapewnienia obsługi tego wymagania umownego lub implementacja usługi nie będzie działać. Jeśli usługa wymaga zintegrowanego uwierzytelniania systemu Windows i jest hostowana w usługach Internet Information Services (IIS), aplikacja sieci Web, w której znajduje się usługa, musi mieć włączone zintegrowane uwierzytelnianie systemu Windows i wyłączono obsługę anonimową. Aby uzyskać więcej informacji na temat funkcji i wpływu różnych typów aplikacji hosta usługi, zobacz Hosting.