1. Előadás WCF- bemutatás Készítette: Takács Imre
Miről lesz szó? Mi a WCF? Milyen lehetőségek vannak a WCF-ben? Szolgáltatás architektúra WCF architektúra bemutatása Összehasonlítás más rendszerekkel Az első WCF szolgáltatás elkészítése
Bevezetés Mi a WCF? Mire jó a WCF? Milyen konkrét szolgáltatásokhoz használható? Miért is jött létre?
Windows Communication Foundation Mi ez? – KERETRENDSZER Mire használhatjuk? - SZOLGÁLTATÁS ORIENTÁLT ALKALMAZÁSOK ÉPÍTÉSÉRE Két szolgáltatás végpont közötti üzenetváltás Szolgáltatás lehet IIS-en vagy lehet konzol alkalmazás vagy Self Host
Ha WCF-et használsz, képes vagy, - adatokat küldeni aszinkron üzenetek formájában két végpont (endpoint) között, - az üzenet lehet karakter, szó XML formátumban - lehet egy bináris adat stream Fontos, hogy nem csak SOA készíthető (pl.:P2P), és a kommunikáció nem csak XML lehet
Néhány szolgáltatás I. Biztonságos szolgáltatás üzleti tranzakciók végrehajtásához. Valós idejű adatok szolgáltatása pl.: közlekedési adatok vagy monitor szolgáltatás Chat szolgáltatás, kommunikációhoz vagy adatcseréhez valós időben.
Példa konkrét szolgáltatásra II. Több szolgáltatásról adatok nyilvántartása és prezentációja. Egy workflow implementációja (WF) mint WCF szolgáltatás.
Egy szép mondat… A válasz a MIÉRT-re: WCF is designed to offer a manageable approach to creating Web services and Web service clients. Az endpoint-ok fejlesztése könnyebbé vált mint eddig valaha. - ezt kell eldönti a fél év végére
WCF részletesebb bemutatása Milyen alapvető jellemzői vannak? Milyen más MS termékekből építkezik? Milyen alapfogalmak szükségesek a megértéshez?
A WCF jellemzői I. Szolgáltatás orientált Együttműködés Többféle üzenet minta Szolgáltatás leírók publikálása
A WCF jellemzői II. Contracts Biztonságos Többféle üzenet átviteli lehetőség Megbízható és Queued Messages
A WCF jellemzői III. Tartós üzenetek Tranzakciók AJAX és REST támogatás Kiterjeszthetőség, kibővíthetőség
WCF kapcsolata más MS termékekkel A WCF megértéséhez szükséges még további MS termékek ismeret: Windows Workflow Foundation – az alkalmazások vezérfonala BizTalk Server R2 – kommunikációs alapok Silverlight .NET szolgáltatások Windows Server AppFabric – direkt a WCF-hez kifejlesztett
WCF alapok I. Üzenetek A WCF az üzenet-központú kommunikáción nyugszik. Kliens kommunikáció – kezdeményeznek Szolgáltatás kommunikáció – várnak egy kliensre Egy alkalmazás viselkedhet kliensként és szolgáltatásként is.
WCF alapok II. Végpontok Az üzenetek küldése mindig két végpont között történik. A végpontok olyan helyek ahol üzeneteket küldünk vagy fogadunk vagy mindkettő és rendelkezésre áll minden információ az üzenetek kicseréléséhez. Egy szolgáltatás több végponttal rendelkezik, egy kliensnek legalább egy végpontja van, amely kompatibilis valamely szolgáltatás végpontjával. Egy végpont tartalmazza a következő információkat: Hova kell üzenetet küldeni Hogyan kell küldeni Hogyan néz ki az üzenet
WCF alapfogalmak I. Üzenet, szolgáltatás, végpont, alkalmazás végpont – alkalmazásnak van, infrastructure endpoint – segítik a használatot pl.: meta adatokat szolgáltatnak a szolgáltatásról, Cím- hova kell küldeni az üzenetet (URI) Kötés - hogyan kommunikál egy végpont a világgal
WCF alapfogalmak II. Kötési elem: a kötés része, transzport, kódolás Szolgáltatás művelet (service operation): az eljárás ami a szolgáltatás kódot definiálja. Hosting Példányosítás: single, per call, per session
WCF alapfogalmak III. Channel: a binding konkrét megvalósítása Szolgáltatás szerződés: szolgáltatás interfész leírás, milyen műveleteket támogat a szolgáltatás Műveleti szerződés: művelet paramétere és visszatérési értéke Üzenet szerződés: az üzenet formáját írja le (pl.: biztonsági szint) Hiba szerződés: meghatározza mi történjen hiba esetén
WCF architektúra jellemzők
WCF architektúra ábra
Contracts – Szerződések I. Szolgáltatás szerződés – Service Contract Leírja, hogy a szolgáltatás milyen műveleteket támogat. Interfész [ServiceContract(Namespace ="http://mkk.hu/helloindigofoundition/2006")] public interface ICalculatorService { [OperationContract] double Add(double a, double b); double Mul(double a, double b); }
Contracts – Szerződések II. Adat szerződés – Data Contract Definiálja az adatok típusát. Pl.: egy Ember típusú adatot, amit mi hoztunk létre, bele kell foglalni a szerződésbe, felkészítve a klienst annak a fogadására.
Contracts – Szerződések III. Üzenet szerződés - Message Contract Default a SOAP üzeneteken történő kommunikáció, ha ez nem felel meg nekünk akkor készíthetünk saját üzenet formátumot. Ennek a formátumnak a megadásához szükséges az üzenet szerződés.
Contracts – Szerződések IV. Policies and Binding Kommunikációs feltételeket határozza meg. Pl.: biztonsági követelmények
Service runtime I. Error Behavior – Specifikálja mi történjen hiba bekövetkezése esetén Metadata Behavior – Milyen meta adatok érhetők el és hogyan Transaction Behavior – hiba esetén engedélyezi a tranzakció visszavonását Dispatch Behavior – az üzenetek feldolgozását irányítja
HOSTING Self-hosted service: a szolgáltatás egy ‚process application’-ben fut IIS vagy Windiws Activation Service Mauális futtatás futtatható (.exe) fájlként
WCF architektúra Három réteg: Programming model Service model Channel model
WCF architektúra
WCF architektúra Programozói réteg: különböző szolgáltatások, melyekből felépíthetjük saját szolgáltatásunkat. Szolgáltatás réteg: szerződéseket és futás idejű viselkedést meghatározó leírásokat tartalmazza. Channel réteg: az adatok formátumát, a használt protokollokat és átvitel, üzenetküldés módját biztosítja.
Egy probléma illusztrálása I. Autó kölcsönző Egy autókölcsönző cég készíteni akar egy új szolgáltatást, melyen keresztül egy autót le lehet foglalni. A lefoglaló szolgáltatást mind cégen belül, mind cégen kívül szeretnék elérhetővé tenni. Ezért úgy határoznak, hogy Szolgáltatás Orientált módon készítik ezt el.
Autó kölcsönző
Egy probléma illusztrálása II. Autó kölcsönző Problémák: Cégnél Windows-os környezetet használnak A meglévő külső lefoglaló alkalmazás Java platformon készült A partner cég alkalmazása egy másfajta platformon fut
Egy probléma illusztrálása III. Autó kölcsönző A különböző kommunikációs igények az új autó lefoglaló rendszer elkészítését eléggé megnehezítik a feladatot. Interakció a call centerrel A teljesítmény elsődleges Interneten keresztüli kommunikáció Mi lehet a megoldás?
WCF!
A probléma kézbentartása WCF alapú kliensek és szolgáltatások bármely Windows környezetben futhatnak
A probléma kézbentartása II. A három legfontosabb WCF tulajdonság: Egyesíti az eredeti .NET Keretrendszer kommunikációs technológiát Különböző technológiájú alkalmazások számára elérhető Alapvető a szolgáltatás orientáltság
Milyen technológiákat egyesít a WCF
WCF kommunikációja más web szolgáltatásokkal, alkalmazásokkal
WCF által implementált szabványok
WCF által implementált szabványok II. WS- Security: egy nagyon rugalmas és funkciókban gazdag kiegészítése a SOAP-nak, amellyel a WS-ek biztonságát határozhatjuk meg. WS-Trust: az előző kibővítése, kialakít egy megbízhatósági modell keretet a web-szolgáltatások biztonságos együttműködésére.
WCF által implementált szabványok II. WS-Policy : webes alkalmazások használati szabályainak közzététele. WS-Adressing : egy átvitel-semleges módszer WS-ek közötti címzési információk cseréjére. Végpont referencia Címzési tulajdonságok
WCF által implementált szabványok IV. WS-Cordination: koordinációs keretrendszert biztosít, a tranzakciók irányítására. WSDL, WS- Adressing, WS-Policy
Hogyan készítsünk szolgáltatást WCF segítségével? Szolgáltatások kommunikációja: Kliens Szolgáltatás ABC Endpoint Endpoint C B A Üzenetek
Hogyan készítsünk szolgáltatást WCF segítségével? Adress – a végpont címe (Hol?) Contract – szerződés (Mit?) Binding – kötés (Hogyan?) MINDEN VÉGPONT EZT A HÁROM DOLGOT FOGJA ÖSSZE!
Hogyan készítsünk szolgáltatás WCF segítségével? Applikáció Szolgáltatás Protocol channel Protocol channel Protocol channel Protocol channel Protocol channel Protocol channel Transport channel Transport channel Channel stack Channel stack
Hogyan készítsünk szolgáltatás WCF segítségével? Applikáció Szolgáltatás Tranzakció Tranzakció Reliable Massage Reliable Massage WS-Sec WS-Sec HTTP HTTP Channel stack Channel stack
Móricka példa Számológépes példa