Transcript WCF alapok

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);
[OperationContract]
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 WSek 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 WSek 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:
Szolgáltatás
Kliens
Endpoint
CBA
ABC
Üzenetek
Endpoint
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ó
Protocol channel
Protocol channel
Protocol channel
Transport channel
Channel stack
Szolgáltatás
Protocol channel
Protocol channel
Protocol channel
Transport channel
Channel stack
Hogyan készítsünk szolgáltatás WCF
segítségével?
Applikáció
Szolgáltatás
Tranzakció
Reliable Massage
WS-Sec
HTTP
Channel stack
Tranzakció
Reliable Massage
WS-Sec
HTTP
Channel stack
Móricka példa
• Számológépes példa