Windows Communication Foundation

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Windows Communication Foundation (nazwa kodowa Indigo) to następna generacja usług sieciowych. Daje ona wiele nowych możliwości użytkownikom, którzy wymagają, aby ich usługi sieciowe były wszechstronne. WCF jest warstwą komunikacyjną API WinFX i docelowo będzie dostępna dla Microsoft Windows XP, 2003 i Visty.

WCF integruje i unifikuje wszystkie dotychczasowe technologie Microsoftu służące do komunikacji: .NET Remoting, COM+ (Enterprise Services w .NET), MSMQ (system komunikacji asynchronicznej w postaci kolejek, komponent Windows.System.Messaging w .NET), webserwisy o profilu podstawowym (w .NET w postaci .ASMX bazujące na ASP.NET) oraz webserwisy z obsługą transakcyjności, niezawodności i bezpieczeństwa poprzez implementację standardów WS-* (Web Services Extensions 3, obecnie mamy WSE 2). Do komunikacji na jednej maszynie można wykorzystać potoki. Praktycznie niezależnie od protokołu komunikacji (HTTP, TCP czy komunikacja międzyprocesowa) czy technologii sposób budowy usługi jest ten sam. Jednocześnie nowa technologia łatwo integruje się z podstawowymi webserwisami ASMX i COM+. WCF do komunikacji wykorzystuje SOAP, co decyduje o jej uniwersalności i łatwym łączeniu z innymi systemami operacyjnymi czy technologiami. Jednak w obrębie samej technologii można korzystać z binarnej wersji SOAP lub MTOM (kodowanie częściowo binarne i w XML).

Przy użyciu WCF łatwiej jest zaimplementować rozwiązanie projektowe. WCF z łatwością komunikuje się z innymi usługami.

  • WCF jest w stanie współpracować z webserwisami, także z innymi platformami które obsługują SOAP, takich jak przodujące serwery aplikacji J2EE,
  • Można tak skonfigurować WCF by komunikował się z webserwisami nie bazując na komunikatach SOAP, np. przy użyciu prostych formatów XMLRSS,
  • Wydajność to priorytetowy aspekt biznesowy. WCF jest tworzony mając na pierwszym miejscu szybkość działania rozproszonych aplikacji. Dla porównania wydajności WCF i innych technologii Microsoftu sprawdź – porównanie,
  • By zapewnić optymalną wydajność, kiedy obie części aplikacji działają w oparciu o WCF, użyta jest zoptymalizowana binarna wersja zestawu informacji XML-a. Komunikaty nadal pozostają struktury SOAP ale kodowanie używa binarnej prezentacji struktury danych, a nie standardowej nawiasowej notacji tekstowej XML 1.0. Wykorzystywanie tej możliwości ma sens w aplikacjach, gdzie klient często komunikuje się z serwerem centralnym, obie strony bazują na WCF,
  • Obsługa cyklu życia obiektów, definiowanie rozproszonych transakcji i inne aspekty Enterprise Services są teraz zapewnione przez WCF. Są one dostępne dla jakiejkolwiek aplikacji bazującej na WCF, niekoniecznie na platformie Microsoft.
  • Ponieważ WCF obsługuje szeroki zakres specyfikacji WS-*, pomaga zapewnić niezawodność, bezpieczeństwo oraz transakcje, kiedy komunikacja z innymi platformami obsługuje te specyfikacje.
  • Opcja WCF dla kolejkowania wiadomości, utworzona na MSMQ pozwala aplikacjom na używanie trwałego kolejkowania, bez konieczności używania dodatkowych API.

Rezultatem tej unifikacji jest większa funkcjonalność oraz znacznie zmniejszona kompleksowość.

Interoperacyjność[edytuj | edytuj kod]

Przyszłość Internetu nie jest określona i technologie, których dziś używamy wyewoluują bądź zostaną zastąpione. Dziś popularny trend budowania aplikacji zorientowanych sieciowo (Web 2.0) jest modelem bazującym na komunikacji przy użyciu tylko prostego formatu XML i używającym HTTP do transportu i protokołu aplikacji. Przykładowo, architektura Representational State Transfer (REST) nie ma pojęcia zdefiniowanych przez użytkownika operacji obsługi danych. Odmiennie, stan aplikacji jest zespolony z URL-em HTTP i metodami HTTP (PUT, POST, DELETE, GET). To podejście kontrastuje z utworzeniem definiowalnych przez użytkownika procedur czy funkcji, które są tak dobrze znane dla większości programistów. Jakkolwiek, podejście REST jest wartościowe w tych obszarach, gdzie usługa musi funkcjonować na zapleczu aplikacji Web 2.0. REST to kolejny przykład ewoluowania technologii Web 2.0. W tym środowisku eksperymentalnych modeli programowania i ciągłej reinterpretacji standardów, elastyczność jest wskazana by sprostać nieprzewidywalnym zmianom. WCF jest elastyczne. Przykładowo kiedy WCF korzysta z SOAP jako bazowej struktury, jest nie przypisana do używania SOAP jako komunikacji przewodowej. W związku z tym WCF może być tak skonfigurowane by przysyłać dane przez prosty XML który nie jest wbudowany w SOAP. WCF może być również rozszerzony, by obsługiwać konkretny format XML takich jak ATOM (popularny standard RSS), czy nawet nie-XML-owe formaty, takie jak JavaScript Object Notation (JSON). Ta elastyczność zapewnia, że kod pisany dziś, będzie przydatny w przyszłości, nawet jeśli protokół zmieni się, bądź zostanie wyparty. WCF został zaprojektowany do działania teraz i w przyszłości.

Linki zewnętrzne[edytuj | edytuj kod]