Navrhování a implementace služeb

V této části se dozvíte, jak definovat a implementovat kontrakty WCF. Kontrakt služby určuje, co koncový bod komunikuje s vnějším světem. Na konkrétnější úrovni je to prohlášení o sadě konkrétních zpráv uspořádaných do základních vzorů výměny zpráv (MEP), jako jsou žádosti/odpovědi, jednosměrné a duplexní. Pokud je kontrakt služby logicky související se sadou výměn zpráv, operace služby je jedna výměna zpráv. Hello Například operace musí samozřejmě přijmout jednu zprávu (takže volající může oznámit pozdrav) a může nebo nemusí vrátit zprávu (v závislosti na zdvořilosti operace).

Další informace o kontraktech a dalších základních konceptech technologie Windows Communication Foundation (WCF) najdete v tématu Základní koncepty technologie Windows Communication Foundation. Toto téma se zaměřuje na pochopení kontraktů služeb. Další informace o vytváření klientů, kteří používají kontrakty služeb pro připojení ke službám, naleznete v tématu Přehled klienta WCF.

Přehled

Toto téma poskytuje základní koncepční orientaci na návrh a implementaci služeb WCF. Dílčítopy poskytují podrobnější informace o specifikách návrhu a implementace. Před návrhem a implementací aplikace WCF se doporučuje:

  • Porozumíte tomu, co je kontrakt služby, jak funguje a jak ho vytvořit.

  • Uvědomte si, že smlouvy uvádějí minimální požadavky, které konfigurace modulu runtime nebo hostitelské prostředí nemusí podporovat.

Kontrakty služeb

Smlouva o poskytování služeb určuje následující:

  • Operace, které kontrakt zveřejňuje.

  • Podpis operací z hlediska výměny zpráv.

  • Datové typy těchto zpráv.

  • Umístění operací.

  • Konkrétní protokoly a formáty serializace, které slouží k podpoře úspěšné komunikace se službou.

Například smlouva o nákupní objednávce může mít CreateOrder operaci, která přijímá vstup typů informací o objednávce a vrací informace o úspěchu nebo selhání, včetně identifikátoru objednávky. Může mít GetOrderStatus také operaci, která přijímá identifikátor objednávky a vrací informace o stavu objednávky. Kontrakt služby tohoto typu by určil:

  1. Že se smlouva o nákupní objednávce skládala z CreateOrder operací a GetOrderStatus operací.

  2. Že operace zadaly vstupní zprávy a výstupní zprávy.

  3. Data, která mohou tyto zprávy přenášet.

  4. Kategorické prohlášení o komunikační infrastruktuře potřebné ke úspěšnému zpracování zpráv. Tyto podrobnosti například zahrnují, zda a jaké formy zabezpečení jsou potřeba k navázání úspěšné komunikace.

Aby bylo možné tento druh informací sdělit jiným aplikacím na mnoha platformách (včetně platforem jiných společností než Microsoft), jsou kontrakty služeb XML veřejně vyjádřeny ve standardních formátech XML, jako je například WSDL (Web Services Description Language ) a XML Schema (XSD), mimo jiné. Vývojáři pro mnoho platforem mohou tyto informace o veřejných kontraktech použít k vytváření aplikací, které můžou komunikovat se službou, a to jak proto, že rozumí jazyku specifikace, a protože tyto jazyky jsou navržené tak, aby umožňovaly spolupráci popisem veřejných formulářů, formátů a protokolů, které služba podporuje. Další informace o tom, jak WCF zpracovává tento druh informací, naleznete v tématu Metadata.

Kontrakty se dají vyjádřit mnoha způsoby a zatímco WSDL a XSD jsou vynikajícími jazyky pro popis služeb přístupným způsobem, jsou obtížné používat přímo a jsou pouze popisy služby, nikoli implementace kontraktů služeb. Aplikace WCF proto používají spravované atributy, rozhraní a třídy jak k definování struktury služby, tak k jeho implementaci.

Výsledný kontrakt definovaný ve spravovaných typech je možné exportovat jako metadata – WSDL a XSD – v případě potřeby klienty nebo jinými implementátory služeb. Výsledkem je jednoduchý programovací model, který lze popsat (pomocí veřejných metadat) pro libovolnou klientskou aplikaci. Podrobnosti o podkladových zprávách SOAP, dopravě a informacích souvisejících se zabezpečením atd., mohou být ponechány wcf, což provádí nezbytné převody do systému typů kontraktů služeb do systému typů XML automaticky.

Další informace o návrhu kontraktů naleznete v tématu Navrhování kontraktů služeb. Další informace o implementaci kontraktů naleznete v tématu Implementace kontraktů služeb.

Zprávy v popředí a centru

Použití spravovaných rozhraní, tříd a metod k modelování operací služby je jednoduché, když se používáte ke vzdálenému volání procedur (RPC)-style podpisy metody, ve kterých se předávají parametry do metody a příjem vrácených hodnot je normální forma vyžádání funkčnosti z objektu nebo jiného typu kódu. Například programátoři používající spravované jazyky, jako je Visual Basic a C++ COM, mohou použít své znalosti o přístupu ve stylu RPC (bez ohledu na to, jestli používají objekty nebo rozhraní) k vytváření kontraktů služeb WCF, aniž by došlo k problémům spojeným s distribuovanými objektovými systémy ve stylu RPC. Orientace služby poskytuje výhody volně propojených programování orientovaných na zprávy a přitom zachovává jednoduchost a znalost programovacího prostředí RPC.

Mnoho programátorů je pohodlnější s aplikačními programovacími rozhraními orientovanými na zprávy, jako jsou fronty zpráv, jako jsou Microsoft MSMQ, System.Messaging obory názvů v rozhraní .NET Framework nebo odesílání nestrukturovaných XML v požadavcích HTTP, aby jich bylo pojmenováno několik. Další informace o programování na úrovni zpráv naleznete v tématu Použití kontraktů zpráv, programování na úrovni kanálu služby a interoperabilita s aplikacemi POX.

Porozumění hierarchii požadavků

Kontrakt služby seskupuje operace; určuje způsob výměny zpráv, typy zpráv a datové typy, které tyto zprávy mají; a označuje kategorie chování za běhu, které musí implementace podporovat kontrakt (například může vyžadovat, aby zprávy byly šifrované a podepsané). Samotný kontrakt služby přesně nespecifikuje splnění těchto požadavků, pouze to, že musí být splněny. Typ šifrování nebo způsob, jakým je zpráva zaregistrovaná, je k implementaci a konfiguraci kompatibilní služby.

Všimněte si, jak kontrakt vyžaduje určité věci implementace kontraktu služby a konfiguraci za běhu, aby se přidalo chování. Sada požadavků, které musí být splněny, aby bylo možné zveřejnit službu pro použití, vychází z předchozí sady požadavků. Pokud kontrakt vyžaduje požadavky implementace, může implementace vyžadovat ještě více konfigurace a vazeb, které službě umožňují spustit. Hostitelská aplikace musí také podporovat všechny požadavky, které přidá konfigurace služby a vazby.

Při navrhování, implementaci, konfiguraci a hostování aplikace služby Windows Communication Foundation (WCF) je důležité mít na paměti tento proces s doplňkovými požadavky. Kontrakt může například určit, že potřebuje podporovat relaci. Pokud ano, musíte nakonfigurovat vazbu, která bude podporovat tento smluvní požadavek, nebo implementace služby nebude fungovat. Nebo pokud vaše služba vyžaduje integrované ověřování systému Windows a je hostovaná ve službě Internetová informační služba (IIS), musí mít webová aplikace, ve které se služba nachází, zapnuté integrované ověřování systému Windows a je vypnutá anonymní podpora. Další informace o funkcích a dopadu různých typů hostitelských aplikací služby najdete v tématu Služby hostování.

Viz také