Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Windows Communication Foundation (WCF)
Vizuális Programozás
2
J.Zs.Cs.: Vizuális programozás (c) 2010
WCF Elosztott rendszerek Korábbi technológiák: DCOM, COM+/Enterprise Services, MSMQ, .NET Remoting, ASP web services (XML-alapú webszolgáltatások), named pipe, socket, peer-to-peer (P2P)... J.Zs.Cs.: Vizuális programozás (c) 2010
3
Szolgáltatásorientált architektúra
több autonóm szolgáltatás működik együtt úgy, hogy üzeneteket küldenek a határaikon túlra jól definiált interfészek segítségével Alapelvek Jól látható határok A szolgáltatás funkcionalitása csak az interfészeken keresztül jelenik meg. A külső hívó csak így tud kommunikálni a szolgáltatással és nem ismeri a megvalósítás részleteit. Itt nem cél az, mint a régebbi technológiáknál, hogy helyi objektumnak lássunk egy távoli objektumot. J.Zs.Cs.: Vizuális programozás (c) 2010
4
J.Zs.Cs.: Vizuális programozás (c) 2010
Alapelvek A szolgáltatások függetlenek A szolgáltatás, amennyire lehet, magányos sziget. A szolgáltatás és az ügyfele különböző nyelven íródhatnak, különböző futtatórendszer-környezetet használhatnak, más operációs rendszer alatt működhetnek. A szolgáltatások szerződésen keresztül és nem az implementáción keresztül kommunikálnak Osztályok és metódusok nem adhatók át a szolgáltatáshatáron keresztül. Szabályalapú kompatibilitás A WSDL-ben (Web Services Description Language) vagy a WS-Policy-ban leírt szabályokat, házirendet használjuk. J.Zs.Cs.: Vizuális programozás (c) 2010
5
J.Zs.Cs.: Vizuális programozás (c) 2010
Architektúra Szolgáltatások kommunikációja Kliens Szolgáltatás Szöveg A B C Szöveg A B C Szöveg A B C Üzenetek Végpont J.Zs.Cs.: Vizuális programozás (c) 2010 Forrás:
6
J.Zs.Cs.: Vizuális programozás (c) 2010
Forrás: Végpont A Address – a végpont címe Szolgáltatás C Contract – szerződés [ServiceContract] interface IPizzaOrder { … } WSDL Szöveg A B C Szöveg A B C B Binding – kötés Hogyan? Encoding + transzport + magasabb szintű szolgáltatások (biztonság, megbízhatóság, stb.) Service Host Pl.: BasicHttpBinding, WSHttpBinding, NetTcpBinding Service type class PizzaOrderService: IPizzaOrder { … } Address: Hol? Contract: Mit? Binding: Hogyan? Service host J.Zs.Cs.: Vizuális programozás (c) 2010 Befogadó process: konzol alk., service, IIS, Windows Forms alk.
7
J.Zs.Cs.: Vizuális programozás (c) 2010
Kötés a hálózati protokollokat, a kódolási mechanizmusokat és a szállítási réteget definiálja HTTP-alapú kötések – Ezeket akkor használjuk, ha XML-webszolgáltatás protokollon keresztül kell dolgozni, vagyis amikor különböző rendszerek (más operációs rendszer, más programozási architektúra) között zajlik a kommunikáció. TCP-alapú kötések – Ezeket akkor használjuk, ha mind a szolgáltatás, mind a kliens legalább .NET 3.0 keretrendszer fölött fut. (Lehetnek különböző gépeken!) Itt jobb lesz a teljesítmény, ha XML-formátum helyett kompakt bináris formátumba kódoljuk az üzeneteket. MSMQ-alapú kötések – Az MSMQ a Microsoft üzenetsor-kezelő megoldása. Itt arról van szó, hogy az alkalmazás egy üzenetsorba küld üzenetet, nem pedig közvetlenül a másik alkalmazásnak. Amikor a címzett készen áll, hogy elolvassa az üzenetet, kiveszi az üzenetsorból és feldolgozza. Ez akkor hasznos, ha az üzenet küldője és feldolgozója nem azonos időben fut. J.Zs.Cs.: Vizuális programozás (c) 2010
8
J.Zs.Cs.: Vizuális programozás (c) 2010
HTTP-alapú kötések BasicHttpBinding – Ez a kötés szállításra a HTTP-t, üzenetkódolásra pedig az alapértelmezett szöveg/XML-t használja. WS-I Basic Profile 1.1. kompatibilis. Ezt a kötést főleg a visszamenőleges kompatibilitás miatt használjuk, pl. olyan alkalmazásoknál, amik ASP.NET webszolgáltatásokkal kell, hogy kommunikáljanak. WSHttpBinding – Az előzőhöz hasonló, de ez már támogatást nyújt a tranzakciókhoz, a megbízható üzenetküldéshez és a WS-címzéshez. Bináris adatkódolást is tud. WSDualHttpBinding – Az előzőhöz hasonló, de duplex szerződésekhez használható. (A szolgáltatás és a kliens oda-vissza tud üzenetet küldeni egymásnak.) Csak a SOAP biztonsági beállításait használja, és megbízható üzenetküldést követel meg. WSFederationHttpBinding – Akkor érdemes használni, ha a biztonság a legfontosabb szempont. Támogatja a WS-Federation protokollt, lehetővé téve felhasználók hatékony azonosítását és engedélyezését. Együttműködik a CardSpace technológiával is. J.Zs.Cs.: Vizuális programozás (c) 2010
9
J.Zs.Cs.: Vizuális programozás (c) 2010
TCP alapú kötések NetNamedPipeBinding – Egy számítógépen levő .NET alkalmazások közötti kommunikációhoz jó. NetPeerTcpBinding – Biztonságos kötést biztosít peer-to-peer (egyenrangú) hálózatokhoz. NetTcpBinding – Biztonságos és optimalizált kötés .NET alkalmazások közötti kommunikációhoz, amelyek különböző gépeken vannak. J.Zs.Cs.: Vizuális programozás (c) 2010
10
J.Zs.Cs.: Vizuális programozás (c) 2010
MSMQ-alapú kötések MsmqIntegrationBinding – Olyan MSMQ-alkalmazásokkal lehet vele kommunikálni, amelyek COM-ot, natív C++-t vagy a System.Messaging névtérben definiált típusokat használnak. NetMsmqBinding – Alkalmas különböző gépeken lévő .NET alkalmazások közötti kommunikációra. J.Zs.Cs.: Vizuális programozás (c) 2010
11
J.Zs.Cs.: Vizuális programozás (c) 2010
Szerződés A WCF-szolgáltatás által elérhetővé tett összes metódus leírása. Interfész Nyilvános osztály Struktúra J.Zs.Cs.: Vizuális programozás (c) 2010
12
Architektúra - csatornák
Kliens Szolgáltatás Allkalmazás Szolgáltatás obj. Client runtime Protocol channel (Channel proxy) Protocol channel Dispatch runtime Protocol channel Protocol channel Protocol channel Protocol channel Transport channel Transport channel Channel stack Channel stack J.Zs.Cs.: Vizuális programozás (c) 2010 Forrás:
13
Egyszerű WCF-alkalmazás
A szolgáltatás szerelvénye: Ez a .dll tartalmazza a külső hívók számára elérhető funkcionalitást leíró osztályokat és interfészeket. Az őt hosztoló folyamat: A szolgáltatás dll-jének szüksége van egy Windows-folyamatra, amely futtatja őt. Erre két lehetőség van: IIS (Internet Information Services), WAS (Windows Activation Service a Vistában) vagy pedig egy tetszőleges típusú alkalmazás (pl.: konzol vagy form), amely ServiceHost típusú objektumot hoz létre és az Open() metódussal elindítja a szolgáltatást. Itt kell megadni egy vagy több végpontot is, amelyek lehetővé teszik a szolgáltatáshoz való hozzáférést. A végpont az, ami az ABC-ből áll (adress, binding és contractname). WCF-ügyfél: Ez az alkalmazás a kliens, aki hozzáfér a szolgáltatáshoz egy közbeépülő proxy-osztályon keresztül. J.Zs.Cs.: Vizuális programozás (c) 2010
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.