Architektura Windows Communication Foundation
Následující obrázek znázorňuje hlavní vrstvy architektury WCF (Windows Communication Foundation).
Architektura WCF
Kontrakty a popisy
Kontrakty definují různé aspekty systému zpráv. Kontrakt dat popisuje každý parametr, který tvoří každou zprávu, kterou může služba vytvořit nebo využívat. Parametry zprávy jsou definovány dokumenty jazyka XSD (XML Schema Definition Language) a umožňují každému systému, který rozumí jazyku XML ke zpracování dokumentů. Kontrakt zprávy definuje konkrétní části zpráv pomocí protokolů SOAP a umožňuje jemně odstupňovanou kontrolu nad částmi zprávy, pokud interoperabilita vyžaduje takovou přesnost. Kontrakt služby určuje skutečné podpisy metody služby a je distribuován jako rozhraní v jednom z podporovaných programovacích jazyků, jako je Visual Basic nebo Visual C#.
Zásady a vazby určují podmínky potřebné ke komunikaci se službou. Například vazba musí (minimálně) určit použitý přenos (například HTTP nebo TCP) a kódování. Zásady zahrnují požadavky na zabezpečení a další podmínky, které musí být splněny pro komunikaci se službou.
Runtime služby
Vrstva modulu runtime služby obsahuje chování, ke kterým dochází pouze během skutečné operace služby, tj. chování modulu runtime služby. Omezování určuje, kolik zpráv se zpracovává, což se může lišit, pokud poptávka po službě roste na přednastavený limit. Chování chyby určuje, co se stane, když dojde k vnitřní chybě ve službě, například tím, že řídí, jaké informace se předávají klientovi. (Příliš mnoho informací může uživateli se zlými úmysly poskytnout výhodu při připojení útoku.) Chování metadat řídí, jak a zda jsou metadata zpřístupněna vnějšímu světu. Chování instance určuje, kolik instancí služby může být spuštěno (například singleton určuje pouze jednu instanci ke zpracování všech zpráv). Chování transakce umožňuje vrácení transakcí zpět transakčních operací, pokud dojde k selhání. Chování odesílání je řízení způsobu zpracování zprávy infrastrukturou WCF.
Rozšiřitelnost umožňuje přizpůsobení procesů modulu runtime. Kontrola zpráv je například zařízení pro kontrolu částí zprávy a filtrování parametrů umožňuje provádět přednastavené akce na základě filtrů, které fungují v záhlaví zprávy.
Zasílání zpráv
Vrstva zasílání zpráv se skládá z kanálů. Kanál je komponenta, která zpracovává zprávu nějakým způsobem, například ověřením zprávy. Sada kanálů se také označuje jako zásobník kanálů. Kanály pracují se zprávami a záhlavími zpráv. To se liší od vrstvy modulu runtime služby, která se primárně zabývá zpracováním obsahu těla zpráv.
Existují dva typy kanálů: přenosové kanály a protokolové kanály.
Přenosové kanály čtou a zapisují zprávy ze sítě (nebo z jiného komunikačního bodu s vnějším světem). Některé přenosy používají kodér k převodu zpráv (které jsou reprezentovány jako informační sady XML) do a z reprezentace bajtů datových proudů používaných sítí. Příklady přenosů jsou HTTP, pojmenované kanály, TCP a MSMQ. Příklady kódování jsou XML a optimalizované binární soubory.
Kanály protokolu implementují protokoly zpracování zpráv, často čtením nebo zápisem dalších hlaviček do zprávy. Mezi příklady takových protokolů patří WS-Security a WS-Reliability.
Vrstva zasílání zpráv znázorňuje možné formáty a vzory výměny dat. WS-Security je implementace specifikace WS-Security, která umožňuje zabezpečení ve vrstvě zpráv. Kanál WS-Reliable Messaging umožňuje záruku doručení zpráv. Kodéry představují celou řadu kódování, které lze použít pro potřeby zprávy. Kanál HTTP určuje, že se pro doručování zpráv používá transportní protokol HyperTextu. Kanál TCP podobně určuje protokol TCP. Kanál Toku transakcí řídí vzorce transakčních zpráv. Kanál pojmenovaného kanálu umožňuje komunikaci mezi procesy. Kanál MSMQ umožňuje spolupráci s aplikacemi MSMQ.
Hostování a aktivace
V konečné podobě je služba programem. Stejně jako jiné programy musí být služba spuštěna ve spustitelném souboru. To se označuje jako služba v místním prostředí .
Služby je také možné hostovat nebo spouštět ve spustitelném souboru spravovaném externím agentem, jako je služba IIS nebo Služba aktivace systému Windows (WAS). WAS umožňuje, aby se aplikace WCF aktivovaly automaticky při nasazení na počítač se systémem WAS. Služby lze také spustit ručně jako spustitelné soubory (.exe soubory). Službu lze také spustit automaticky jako službu systému Windows. Komponenty modelu COM+ je také možné hostovat jako služby WCF.