Windows Communication Foundation

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Windows Communication Foundation (či též WCF, dříve označované jako "Indigo") je sada knihoven, API a běhové prostředí, dohromady tvořící framework v rámci frameworku .NET, zajišťující komunikaci mezi aplikacemi a umožňující vytvářet servisně orientované aplikace.

Historie[editovat | editovat zdroj]

Microsoft vyvinul Component Object Model (COM), který umožňuje aplikacím, napsaným v různých jazycích, spolupracovat pomocí standardních COM rozhraní. COM však umožňuje používat komponenty lokálně, nikoliv vzdáleně. Pro vzdálené použití komponent byl vyvinut Distributed COM (DCOM). Tato technologie, jako kombinace COM a síťového protokolu, v podstatě umožňuje vzdálené použití COM objektů. Tyto technologie byly zahrnuty pod názvem .NET Remoting. Značnou nevýhodou byla závislost komponent na platformě .NET. WCF je zatím posledním krokem ve vývoji vzdálené komunikace v rámci .NET frameworku. Servisní orientace umožňuje komunikaci .NET komponent navzájem či s komponentami jiných platforem unifikovaným standardizovaným způsobem.

Architektura[editovat | editovat zdroj]

Služba WCF je program, který odhaluje kolekci koncových bodů (anglicky endpoint). Každý koncový bod je brána, skrze kterou služba komunikuje s okolím.

Koncový bod má tři vlastnosti, které jej specifikují:

  • Adresa koncového bodu čili KDE se brána ke komunikaci se službou nachází.
  • Binding čili spojení specifikuje, JAK či jakým způsobem koncový bod komunikuje s okolím. Obsahuje informace jako typ protokolu (TCP, HTTP, ...), kódování (text, binární data) či požadavky na zabezpečení (SSL, SOAP security type, ...).
  • Kontrakt čili popis, CO služba přenáší. Definuje tedy organizaci zpráv společně s typem přenosu jako one-way, duplex či request/reply.

Po spuštění pak služba naslouchá na svých koncových bodech, zda nějaký klient nevyžaduje komunikaci.

Klienti, kteří musí před samotným začátkem komunikace již popis služby vlastnit, jsou iniciátorem komunikace se službou. Se službou komunikují pomocí spojení s určitým koncovým bodem.

Vlastnosti[editovat | editovat zdroj]

Mezi základní vlastnosti WCF patří:

  • Servisní orientace – WCF používá standard webových služeb (WS), který umožňuje vytvářet servisně orientované aplikace. SOA je architektura, definující závislost při odesílání a přijímání dat na webových službách. WS mají mezi sebou slabou závislost na rozdíl od silné závislosti, „natvrdo“ naprogramované. Slabá závislost s sebou nese schopnost připojení klienta z jakékoli jiné platformy splňující alespoň nezbytný kontrakt.
  • Interoperabilita – schopnost konfigurace pro schopnost připojení služeb, splňující různé průmyslové standardy.
  • Typy zasílání správ – zprávy mezi koncovými body mohou být zasílány podle různých vzorů, např. request/reply, one-way message nebo duplex exchange pattern.
  • Metadata – schopnost publikovat metadata o kontraktu poskytovaném službou, nejčastěji pomocí WSDL dokumentu.
  • Datové kontrakty – WCF poskytuje uživatelsky přívětivou specifikaci kontraktu, který si služba vynucuje. Nejjednodušší řešení je vytvoření třídy (v jazyce C# nebo Visual Basic), která reprezentuje entitu specifikovanou datovým kontraktem služby. Vytvořená třída pak obsahuje vlastnosti, které datový kontrakt také specifikuje. Po vytvoření takové třídy, která kontraktu odpovídá, je práce s příchozími/odchozími daty velmi jednoduchá.
  • Bezpečnost – zprávy mohou být zašifrovány dle známých průmyslových standardů, např. SSL nebo WS-SecureConversation.
  • Transportní protokoly – službu lze nakonfigurovat pro přenos přes HTTP, TCP apod. V případě potřeby lze implementovat vlastní protokol, a použít tento.
  • „Durable messages“ – možnost použít zprávy, které přežijí i přerušení ve spojení. Zpráva se uloží do databáze a při obnovení spojení lze znovu navázat tam, kde se přenos dat přerušil.
  • Podpora transakcí – podpora tří druhů transakcí, obsažených v .NET frameworku.
  • Podpora AJAX a REST – schopnost konfigurovat či rozšířit WCF pro zpracování REST, „čistého“ XML bez SOAP obálky, jiných specifikací XML (ATOM), či dokonce non-XML formátů jako je JSON.
  • Rozšiřitelnost – WCF umožňuje v případě potřeby rozšířit řadu komponent, které jsou použity při celém procesu životního cyklu WS.

Literatura[editovat | editovat zdroj]

What Is Windows Communication Foundation [online]. Microsoft Developer Network, rev. 2012-08-02, [cit. 2013-06-02]. Dostupné online. (angličtina) 

Windows Communication Foundation Architecture Overview [online]. Microsoft Developer Network, March 2006, [cit. 2013-06-02]. Dostupné online. (angličtina) 

CIBRARO, Pablo. Professional WCF 4: Windows Communication Foundation with .NET 4. Indianapolis, IN: Wiley, c2010, xxvii, 451 p. ISBN 978-047-0168-462. (angličtina)