130 likes | 237 Views
Windows Communication Foundation ( WCF ). Vizuális Programozás. 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 ).
E N D
Windows CommunicationFoundation(WCF) Vizuális Programozás
WCF Elosztott rendszerek Korábbi technológiák: DCOM, COM+/EnterpriseServices, MSMQ, .NET Remoting, ASP web services (XML-alapú webszolgáltatások), namedpipe, socket, peer-to-peer (P2P)... J.Zs.Cs.: Vizuális programozás (c) 2010
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
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 ServicesDescriptionLanguage) vagy a WS-Policy-ban leírt szabályokat, házirendet használjuk. J.Zs.Cs.: Vizuális programozás (c) 2010
Architektúra Szolgáltatások kommunikációja Kliens Szolgáltatás Üzenetek Szöveg Szöveg Szöveg A A A B B B C C C Végpont J.Zs.Cs.: Vizuális programozás (c) 2010 Forrás: http://msdnkk.hu/Storage/_common/InduloKeszlet/NET35/3/WCF-WF_ujdonsagok_(Benedek_Zoltan).pptx
Forrás: http://msdnkk.hu/Storage/_common/InduloKeszlet/NET35/3/WCF-WF_ujdonsagok_(Benedek_Zoltan).pptx Végpont Address – a végpont címe A http://www.mkk.hu/pizzaorderservice/porder Szolgáltatás Contract – szerződés C [ServiceContract]interfaceIPizzaOrder { … } WSDL Binding – kötés B Hogyan? Encoding + transzport + magasabb szintű szolgáltatások (biztonság, megbízhatóság, stb.) Service Host Pl.: BasicHttpBinding, WSHttpBinding, NetTcpBinding Service type Szöveg Szöveg A A B B C C classPizzaOrderService: 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 Formsalk.
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
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
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
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
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
Architektúra - csatornák Szolgáltatás Kliens Allkalmazás Szolgáltatás obj. Clientruntime Protocolchannel (Channel proxy) Protocolchannel Dispatchruntime Protocolchannel Protocolchannel Protocolchannel Protocolchannel Transportchannel Transportchannel Channelstack Channelstack J.Zs.Cs.: Vizuális programozás (c) 2010 Forrás: http://msdnkk.hu/Storage/_common/InduloKeszlet/NET35/3/WCF-WF_ujdonsagok_(Benedek_Zoltan).pptx
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 InformationServices), 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