Haladó Programozás A webszolgáltatás fogalma Szabványok és protokollok

Slides:



Advertisements
Hasonló előadás
A számítógépes hálózatok és az Internet
Advertisements

Windows Communication Foundation (WCF)
RESTful Web Service tesztelése
Előadássorozat a Független Pedagógiai Intézetben fupi.hu Az internet: miért, hogyan? 5 / 10. Csada Péter Csada Bt. cspc.hu.
Virtualizált Biztonságos BOINC Németh Dénes Deák Szabolcs Szeberényi Imre.
Hálózati és Internet ismeretek
Programozás III STRING-XML.
A B2B e-kereskedelem sajátosságai
1 Internet. 2 WWW  World Wide Web  Hivatkozásokkal összekötött hipermédia dokumentumok rendszere  Dokumentumok -> Weboldalak  A weboldalak hipertext.
Az internet és a web A HTML alapjai.  „Úgy gondoljuk, hogy a világpiacon talán öt darab számítógépet tudnánk eladni.” (Thomas Watson, az IBM elnöke,
A TCP/IP hivatkozási modell
1. Előadás WCF- bemutatás
Client Access Server. Autodiscovery service Availability service (EWS) Offline Address Book (OAB) service Activesync service Outlook Web Access Public.
Számítógép hálózatok.
OE-NIK HP Haladó Programozás Windows Communication Foundation A szolgáltatás, a hoszt és az ügyfél elkészítése.
Webszolgáltatások PHP-ben
Az integrált áramkörök (IC-k) tervezése
RENDSZERINTEGRÁLÁS B_IN012_1
.NET web szolgáltatások
Fejlett Programozási Technológiák II. Világos Zsolt 1. gyakorlat.
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
WSDL alapismeretek A WSDL (Web Services Description Language – Web szolgáltatások leíró nyelv) egy XML-alapú nyelv a Web szolgáltatások leírására és azok.
OE-NIK HP Haladó Programozás WCF kivételkezelés. OE-NIK HP Haladó Programozás Windows Communication Foundation A szolgáltatás, a hoszt és az ügyfél elkészítése.
Haladó Programozás A webszolgáltatás fogalma
Bevezetés az ebXML-be Forrás: An Introduction to ebXML ebXML and Web Services Practical Considerations In Implementing Web Services Romin IraniRomin Irani.
SOAP alapismeretek A SOAP egy egyszerű XML alapú protokoll, ami lehetővé teszi, hogy az alkalmazások információt cseréljenek a HTTP-én keresztül. Forrás:
FTP File Transfer Protocol. Mi az FTP? Az FTP egy olyan protokoll, amely fájlok interneten keresztül végzett átvitelére szolgál. A felhasználók többsége.
1 Simple Network Management Protocol, azaz egyszerű hálózatmenedzsment protokoll Takács Béla 2006.
Objektumok. Az objektum információt tárol, és kérésre feladatokat hajt végre. Az objektum adatok (attribútumok) és metódusok (operációk,műveletek) összessége,
Anyagadatbank c. tárgy gyakorlat Féléves tematika Adatbázis alapfogalmak, rendszerek Adatmodellek, adatbázis tervezés Adatbázis műveletek.
Az AJAX technológia használata Ez az előadó neve beosztása vállalata.
DDoS támadások veszélyei és az ellenük való védekezés lehetséges módszerei Gyányi Sándor.
Hálózati architektúrák
Tóth Gergely, február BME-MIT Miniszimpózium, Általános célú biztonságos anonimitási architektúra Tóth Gergely Konzulensek: Hornák Zoltán.
LOGO Webszolgáltatások Készítette: Kovács Zoltán IV. PTM.
Az elektronikus levelezés a számítógép-hálózatok klasszikus szolgáltatása, az Internet alkalmazásának egyik legnépszerűbb formája. Szövegen kívül lehetőség.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Hálózati alapismeretek
V 1.0 Szabó Zsolt, Óbudai Egyetem, Programozási Paradigmák és Technikák Programozási eszközök Interfészek Generikus.
Internet, Elektronikus levelezés
Java web programozás 11..
Az Internet alkalmazásai
Varga Viktor – G36ECF 1/5 Vendéglátói szoftverek sajátosságai Varga Viktor.
Objektum orientált programozás
Webprogramozó tanfolyam
Webszolgáltatások Simon Balázs
Hálózat menedzsment Óravázlat Készítette: Toldi Miklós.
Illés Zoltán ELTE Informatikai Kar
Számítógép hálózatok.
DLL használata és készítése Feladat
.NET FRAMEWORK Röviden Krizsán Zoltán 1.0. Tulajdonságok I Rövidebb fejlesztés 20 támogatott nyelv (nyílt specifikáció) 20 támogatott nyelv (nyílt specifikáció)
E LEKTRONIKUS LEVELEZÉS . E LEKTRONIKUS LEVELEZÉS Az elektronikus posta ( ) olyan rendszer, amelynek segítségével más felhasználók számára.
Informatikai gyakorlatok 11. évfolyam
A szállítási réteg az OSI modell 4. rétege. Feladata megbízható adatátvitel megvalósítása két hoszt között. Ezt úgy kell megoldani, hogy az független.
Web-szolgáltatások Dr. Nehéz Károly egyetemi adjunktus Miskolci Egyetem Alkalmazott Informatikai Tanszék.
Hálózatos programok készítése
A HTML alapjai Az internet és a web.
Alkalmazott Informatikai Tanszék
Útmutató a click4suppliers easy használatához
Neumann János Informatikai Kar
Az elektronikus levelezés a számítógép-hálózatok klasszikus szolgáltatása, az Internet alkalmazásának egyik legnépszerűbb formája. Szövegen kívül lehetőség.
Haladó Programozás Windows Communication Foundation
MIB Dokumentáció.
Internet, Elektronikus levelezés
Hálózatkezelés Java-ban
Internet és kommunikáció
Internet és kommunikáció
Információtechnológiai alapismeretek
Thread és Task.
Előadás másolata:

Haladó Programozás A webszolgáltatás fogalma Szabványok és protokollok Webszolgáltatás felhasználása Webszolgáltatás felhasználása aszinkron metódushívással OE-NIK HP

Haladó Programozás A webszolgáltatás fogalma Szabványok és protokollok Webszolgáltatás felhasználása Webszolgáltatás felhasználása aszinkron metódushívással OE-NIK HP

Webszolgáltatás Szoftverkomponens, amely hálózaton keresztül szolgáltatásokat nyújt Általában nagyobb rendszerek adott feladatot ellátó része A felhasználó (legtöbbször egy másik alkalmazás) számára fekete dobozként viselkedik Jól meghatározott interfészeken keresztül érhető el Előnyei Szabványos internet protokollokon keresztül érhető el XML-en alapuló, nyílt szabványokra épül Rendszertől, nyelvtől és megvalósítástól független Leírható, közzétehető, felkutatható OE-NIK HP

Szolgáltatásközpontú rendszerek A webszolgáltatások fejlődésének korai szakaszában létrejött minta Serivce-oriented Architecture, SOA A szabványok és protokollok ezen minta alapján jöttek létre Szolgáltatásjegyzék Szolgáltatást igénybe vevő Szolgáltató Keres Közzétesz Szolgáltat Igénybe vesz OE-NIK HP

Haladó Programozás A webszolgáltatás fogalma Szabványok és protokollok Webszolgáltatás felhasználása Webszolgáltatás felhasználása aszinkron metódushívással OE-NIK HP

IP alapú adatküldési módszerek TCP/UDP (elméletileg akár ICMP is lehetséges) Egyedi bytesorozat küldése és fogadása, a formátum kezelése saját feladat Bonyolult implementáció, gyors működés, szinte nulla overhead SOAP Előre definiált SOAP XML a hívandó szolgáltatás nevének és a bonyolult adattípusok továbbítására (tömb, lista, objektum) Tetszőleges továbbító protokoll, de az esetek nagyon nagy részében HTTP Nagyon könnyű implementáció, lassú működés, nagy overhead Mi ezt használjuk REST Saját JSON formátum egyedi típusok továbbítására (nagyon ritkán XML) Bonyolult paraméter küldése ritkán kell, ekkor HTTP POST-ban küldjük a paramétereket, mint a SOAP esetén (SOAP XML helyett JSON vagy saját XML) Tipikusan csak a hívandó függvény neve és string/int paraméterek kellenek, ennek megfelelően a kérés egy egyszerű HTTP GET A válasz tipikusan JSON, ritkán XML Könnyű implementáció, közepes sebesség, közepes overhead Ez a dia még nem a WCF –ről szól, csak általánosságban a távoli eljáráshívásos/adateléréses módszerekről OE-NIK HP

Felderítés A szolgáltatását a készítő közzéteheti egy jegyzékben A jegyzékben a szolgáltatást igénylő kutathat UDDI: Universal Description, Discovery and Integration Webszolgáltatások jegyzéke Több szempont szerint kereshető (szolgáltatás, cégnév, telephely) Lehet nyilvános, vagy cégen belüli DISCO: a discovery (felfedezés) szóból A Microsoft megoldása szolgáltatások hirdetésére Egyik sem használt igazából Alternatíva, jelenlegi trend: cloud computing Nem érdekes a szolgáltatás pontos helye „Valahol” elérhető  a protokoll ugyanúgy tisztázandó Felderítés UDDI, DISCO Leírás WSDL Üzenet SOAP Átvitel HTTP, SMTP, … OE-NIK HP

Leírás Ha az igénylő megtalálta a megfelelő szolgáltatást, tudnia kell, hogy hol, és milyen néven érhető el a szolgáltatás, milyen bemeneti paramétereket vár, mit ad vissza. WSDL: Web Services Description Language A kérés és a válasz leírását adja meg Felderítés UDDI, DISCO Leírás WSDL Üzenet SOAP Átvitel HTTP, SMTP, … OE-NIK HP

Üzenet Az üzenetet el kell küldeni a szolgáltatónak, ami az adatokat feldolgozva válaszüzenetet küld SOAP: Simple Object Access Protocol Üzenetek küldésére használt protokoll Az eddigi protokollok és szabványok az XML (Extensible Markup Language) nyelven alapulnak Felderítés UDDI, DISCO Leírás WSDL Üzenet SOAP Átvitel HTTP, SMTP, … OE-NIK HP

Átvitel Az üzeneteket át kell vinni a hálózaton keresztül a szolgáltató és a szolgáltatást igénybevevő között A SOAP független az átvitel típusától A legtipikusabb a HTTP (Hypertext Transfer Protocol) Ha a kérések és a válaszok összhangja nem fontos, akkor az SMTP (Simple Mail Transfer Protocol) is kiváló eszköz a SOAP üzenetek továbbítására Felderítés UDDI, DISCO Leírás WSDL Üzenet SOAP Átvitel HTTP, SMTP, … OE-NIK HP

Webszolgáltatások megvalósítása .NET-ben SOAP IIS/ASP.NET TCP/IP HTTP Proxy osztály Fizikai kapcsolat Ügyfél- alkalmazás Web- szolgáltatás Logikai kapcsolat OE-NIK HP

Windows Communication Foundation Elosztott rendszerek készítéséhez kifejlesztett API A korábbi, egymástól független elosztott technológiákat integrálja XML-webszolgáltatások, DCOM, .NET remoting, stb. Tehát része az XML-webszolgáltatás A .NET 3.0-ban jelent meg A következő alkalmakon lesz róla szó részletesen Kliens alkalmazás WCF-hoszt Proxy WCF-szolgáltatás OE-NIK HP

Haladó Programozás A webszolgáltatás fogalma Szabványok és protokollok Webszolgáltatás felhasználása Webszolgáltatás felhasználása aszinkron metódushívással OE-NIK HP

Általános ismeretek Egy webszolgáltatás felhasználója bármilyen típusú program lehet (konzolalkalmazás, Windows alkalmazás, web-alkalmazás…) A felhasználó nem kell hogy ismerje a szolgáltatás megvalósításának részleteit A kérés és a válasz protokollját, valamit az üzenet struktúráját a WSDL leíró nyelven megadott dokumentum tartalmazza Az alkalmazásfejlesztő környezetek általában képesek létrehozni egy un. proxy osztályt (ügyfélcsonkot) OE-NIK HP

A proxy osztály (ügyfélcsonk) Elkülöníti a SOAP és a hálózati protokollokkal kapcsolatos rétegeket az alkalmazástól Egy hagyományos osztály, amely visszatükrözi a webszolgáltatás működését Mindenegyes proxy osztálybeli metódus bemeneti paraméterei és visszatérési értéke megegyezik a vele azonos webszolgáltatásbeliekkel A fejlesztő a szolgáltatás meghívását és a válasz fogadását a proxy osztály metódusán keresztül végzi, nem szükséges ismernie az egyéb szabványokat és protokollokat OE-NIK HP

Webszolgáltatás felhasználása .NET-ben Proxy osztályt legegyszerűbben úgy kapunk, ha a szolgáltatás elérhetőségét szolgáltatás referenciaként a projekthez adjuk Használható az svcutil.exe is. Az Add Service Reference menüpontban Írjuk be a szolgáltatás címét, kattintsunk a Go gombra A webreferencia nevének megadás utána pedig az OK gombra A Reference.cs fájlban található a proxy osztály, amely a projektnév.referencianév névtérben helyezkedik el A proxy osztály metódusait meghívva kapjuk meg az eredményt Az eredmény string típusú és sokszor ezen belül egy XML van Ezt XDocumentté konvertálhatjuk, és a tanult LINQ to XML technológiával haszálhatjuk OE-NIK HP

Webszolgáltatás felhasználása .NET-ben OE-NIK HP

Feladat 1. A Magyar Nemzeti Bank árfolyam szolgáltatását használva jelenítsük meg az aktuális árfolyamokat. A szolgáltatás elérhető itt: http://www.mnb.hu/arfolyamok.asmx Leírása itt: http://www.mnb.hu/Root/Dokumentumtar/MNB/Statisztika/mnbhu_statisztikai_idosorok/mnbhu_arfolyamok/napiarfolyamok/mnbhu_webservice/arfolyam_lekeres.pdf A hosszú gépelés helyett az mnb.hu oldalon írjuk a keresőbe: „webszolgáltatás” Ötletek: Készítsük el a szolgáltatás referenciát Példányosítsuk a proxy osztályt A GetInfo metódust használva töltsünk fel pénznemekkel egy comboBox és egy listBox vezérlőt, állítsunk be egy dátum szűrést, majd hívjuk meg a GetCurrentExchangeRates metódust Az eredményből a tanult XML-kezelő technikákkal az adatok kiszedhetők Az adatokat soronként egy DataGrid-ben helyezhetjük el MVVM-et most hanyagoljuk OE-NIK HP

Megoldás OE-NIK HP

Haladó Programozás A webszolgáltatás fogalma Szabványok és protokollok Webszolgáltatás felhasználása Webszolgáltatás felhasználása aszinkron metódushívással OE-NIK HP

A szinkron metódushívás A proxy osztály generálásánál beállíthatjuk, hogy aszinkron módon hívható metódust generáljon Add Service Reference -> Advanced… -> Generate Task-based operations Klasszikus APM esetén minden metódushoz megtalálható Egy metódus …Async névvel Egy esemény …Completed névvel A metódust meghívva, az esemény kiváltódik annak befejeződésekor Az eredmény az e.Result tulajdonságban található Task-alapú műveleteknél Egy metódus …Async névvel, ami Task-ot ad vissza Tipikusan .ContinueWith() OE-NIK HP

Feladat 2. Kérjük le a felhasználó által megadott napon a megadott deviza/devizák árfolyamát Figyelem, nem minden nap volt minden pénznem. (Pl. ATS már nincs, EUR régebben nem volt.) Az eredményeket ugyanabban a DataGrid-ben jelenítsük meg. Az adatok lekérése aszinkron metódushívással történjen. Megoldás: A GetExchangeRates metódus használható. A kezdő és a végső dátum ugyanaz. OE-NIK HP

Megoldás OE-NIK HP

OE-NIK HP

OE-NIK HP