A csatorna modelljének megértése

A Windows Communication Foundation (WCF) csatorna verem egy többszintű kommunikációs verem, amelynek egy vagy több csatornája feldolgozza az üzeneteket. Alján a verem szállítási csatorna felelős kiigazítására csatornák szállítására használt halom (például TCP, HTTP, SMTP, és más típusú közlekedés). A csatornák alacsony szintű programozási modellt nyújtanak az üzenetek küldéséhez és fogadásához. Ez a programozási modell több interfészen és más típusú erőforrásokon alapul, amelyeket együttesen a WCF csatorna modellnek neveznek. Ez a szakasz a csatornaformákat, az alapcsatorna-figyelő (a szolgáltatásban) és a csatorna gyár (a kliensen) létrehozását tárgyalja.

A WCF végpontok kommunikálnak a külvilággal egy csatornacsomagnak nevezett kommunikációs verem használatával. Az alábbi ábrán a csatorna veremét összehasonlítjuk más kommunikációs veremekkel, például TCP / IP-vel.

A csatorna modelljének megértése

Először is megjegyezzük a hasonlóságokat. Mindkét esetben az egyes veremszintek bizonyos absztrakt ábrázolást nyújtanak a környezetnek, és ez az absztrakt ábrázolás csak a közvetlenül fölötte lévő rétegre vonatkozik. Minden szint egy absztrakt ábrázolást használ csak az alatta levő szintre. Továbbá, mindkét esetben a kölcsönhatás a két halom, minden szinten kölcsönhatásba lép a megfelelő szintű másik köteget, például kölcsönhatásba lép az IP réteg szintjén IP, TCP szinten - a TCP szint, stb ...

Most megjegyezzük a különbségeket. A TCP célja az volt, hogy egy absztrakt reprezentációja a fizikai hálózat, és a csatorna stack - absztrakt benyújtás nem csak képes átadni egy üzenetet, azaz a közlekedés, de más funkciók, mint például az üzenet tartalmát, a protokoll kommunikációra használják, beleértve a szállítás, de .. nem csak őt. Például, a megbízható munkamenet-összerendelési elem része a csatorna-kötegnek, de nem a szállítás alatt van, és nem maga a szállítás. Ez absztrakció érjük el, hogy az alsó port a verem követelmények alkalmazkodni a mögöttes átviteli protokollt az építészet, a csatorna verem és az azt követő kiszámítása a tény, hogy a nagyobb csatornák a stack kell olyan funkciók ilyen kapcsolatok a biztosító garanciák megbízhatóság és biztonság.

Az üzenetek átmennek a kommunikációs veremen, mint Üzenetobjektumok. Amint az a fenti ábrán látható, az alsó csatornát a szállítási csatornának nevezzük. Ez a csatorna felelős azért, hogy üzeneteket küldjön és fogadjon más résztvevőkről, beleértve azt is, hogy az Üzenetobjektumot a többi résztvevővel való kommunikációhoz használt formátummal és a fordított átalakítással kell átalakítani. A közlekedési csatorna felett bármelyik protokollcsatorna lehet, amelyek mindegyike felelős egy olyan kommunikációs funkció biztosításáért, amely biztosítja a megbízható szállítást. A protokollcsatornák olyan üzenettel működnek, amely átmennek az üzeneteken. Ezek általában vagy átalakíthatjuk egy üzenetet, mint például a fejlécek hozzáadásával vagy titkosítása az üzenet szövegét, vagy továbbítani és fogadni a saját ellenőrzési protokollüzenetekhez ez az elismerés.

Minden csatorna egy vagy több interfészt valósít meg, az úgynevezett csatornák interfészformáinak vagy csatornaformáknak. Ezek a csatornaalakok olyan kölcsönhatás-orientált módszereket biztosítanak, mint az átvitel és a vétel, illetve a kérelem és a válasz, amelyeket a csatorna hajt végre és amelyeket a csatornafelhasználó hív. A csatornaalakok alapja az IChannel interfész. amely biztosítja a GetProperty szolgáltatást , Olyan többszintű mechanizmus, amely tetszőleges funkciók elérésére szolgál a csomópontokon keresztül. Az alábbiakban öt csatorna létezik, amely kiterjeszti az IChannel interfészt.

A csatornaalakok a meglévő szállítási protokollok által támogatott alapüzenet-sablonok alapján készülnek. Például az egyirányú üzenetek megfelelnek a IInputChannel / IOutputChannel párnak. A "kérés-válasz" üzemmódban az interakció megfelel az IRequestChannel / IReplyChannel párnak. duplex kommunikációt és kétirányú alak megfelel IDuplexChannel (amely kitágul, és képez IInputChannel IOutputChannel).

A csatornakészleteket általában a gyári sablon segítségével hozza létre, ahol a kötés létrehoz egy csatornacsomagot. Az átviteli oldalon a kötés a ChannelFactory gyár létrehozására szolgál. amely viszont egy csomó csatornát hoz létre és visszaad egy linket a verem felső csatornájához. Az alkalmazás ezt követően használhatja ezt a csatornát üzenetek küldésére. További információ: Csatorna programozás.

A fogadó oldalon a kötés az IChannelListener listener létrehozására szolgál. amely figyeli a bejövő üzeneteket. Az IChannelListener üzenetet küld a hallgató alkalmazásnak csatornacsomagok létrehozásával és az alkalmazás linkjének feldolgozásával a felső csatorna számára. Az alkalmazás ezután ezt a csatornát használja a beérkező üzenetek fogadásához. További információért lásd: Programozási szolgáltatások a csatorna szintjén.

A csatorna objektummodell a csatornák, a csatornák hallgatói és a csatorna gyárak megvalósításához szükséges interfészek alapvető készlete. Vannak olyan alaposztályok is, amelyek segítenek az egyedi megvalósítások nyújtásában.

A csatorna-hallgatók felelősek a bejövő üzenetek meghallgatásáért, és az általuk létrehozott csatornákon keresztül magasabb szintre szállítják őket.

A csatorna gyárai felelősek az üzenetek átviteléhez használt csatornák létrehozásához, valamint az általuk létrehozott csatornák bezárásához, amikor ezek a gyárak bezáródnak.

Az ICommunicationObject egy olyan alapfelület, amely meghatározza a központi állapotú gépet, amely végrehajtja az összes üzenet tárgyát képező objektumot. A CommunicationObject végrehajtja ezt az alapfelületet, amelyből örökölheti a többi csatornaosztályt, elkerülve ezáltal a felület újratelepítését. Ez azonban nem szükséges: az egyéni csatorna közvetlenül végrehajthatja az ICommunicationObject felületet, ahelyett, hogy örökölné a CommunicationObject-t. A 3. ábrán bemutatott osztályok egyike sem található. 3, nem tekinthető a csatorna modelljének; Ezek segédosztályok, amelyek elérhetők azok számára, akik egyedi csatornákat alkalmaznak, és eszközökre van szükségük csatornák létrehozásához.

A csatorna modelljének megértése

Az alábbi szakaszok leírják a csatorna objektummodellt, valamint a különféle fejlesztési területeket, amelyek segítenek az egyedi csatornák létrehozásában.

Kapcsolódó cikkek