HP08_WebServiceConsume

Download Report

Transcript HP08_WebServiceConsume

Haladó Programozás

A webszolgáltatás fogalma Szolgáltatásközpontú rendszerek 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 Szolgáltatásközpontú rendszerek 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 V1.0

3

Haladó Programozás

A webszolgáltatás fogalma Szolgáltatásközpontú rendszerek Szabványok és protokollok Webszolgáltatás felhasználása Webszolgáltatás felhasználása aszinkron metódushívással 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 Közzétesz Szolgáltatásjegyzék Keres Szolgáltató Szolgáltat Igénybe vesz Szolgáltatást igénybe vevő OE-NIK HP V1.0

5

Windows Communication Foundation

Elosztott rendszerek készítéséhez kifejlesztett APIA 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 megA következő alkalmakon lesz róla szó részletesen Kliens alkalmazás Proxy WCF-hoszt WCF-szolgáltatás OE-NIK HP V1.0

6

Haladó Programozás

A webszolgáltatás fogalma Szolgáltatásközpontú rendszerek Szabványok és protokollok Webszolgáltatás felhasználása Webszolgáltatás felhasználása aszinkron metódushívással OE-NIK HP

Felderítés

A szolgáltatását a készítő közzéteheti egy jegyzékbenA jegyzékben a szolgáltatást igénylő kutathat Felderítés UDDI, DISCO • UDDI:

Universal Description, Discovery and Integration

– Webszolgáltatások jegyzéke Leírás WSDL – Több szempont szerint kereshető (szolgáltatás, cégnév, telephely) – Lehet nyilvános, vagy cégen belüli Üzenet SOAP • DISCO:

a discovery (felfedezés) szóból

– A Microsoft megoldása szolgáltatások hirdetésére Átvitel HTTP, SMTP, … OE-NIK HP V1.0

8

Leírás

Ha az igénylő megtalálta a megfelelő szolgáltatást, tudnia kell, Felderítés

hogy

UDDI, DISCO – hol, és milyen néven érhető el a szolgáltatás, – milyen bemeneti paramétereket vár, – mit ad vissza.

Leírás WSDL • WSDL:

Web Services Description Language

– A kérés és a válasz leírását adja meg Üzenet SOAP Átvitel HTTP, SMTP, … OE-NIK HP V1.0

9

Üzenet

Az üzenetet el kell küldeni a szolgáltatónak, ami az adatokat

feldolgozva válaszüzenetet küld

Felderítés UDDI, DISCO Leírás WSDL • 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

Üzenet SOAP Átvitel HTTP, SMTP, … OE-NIK HP V1.0

10

Á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

Felderítés UDDI, DISCO • A SOAP független az átvitel típusátólA legtipikusabb a HTTP

(Hypertext Transfer Protocol)

Leírás WSDL • Ha a kérések és a válaszok összhangja nem

fontos, akkor az SMTP (Simple Mail Transfer Protocol) eszköz a SOAP üzenetek továbbítására is kiváló

Üzenet SOAP Átvitel HTTP, SMTP, … OE-NIK HP V1.0

11

Webszolgáltatások megvalósítása .NET-ben

Ügyfél alkalmazás Logikai kapcsolat Web szolgáltatás Proxy osztály SOAP HTTP TCP/IP Fizikai kapcsolat IIS/ASP.NET

SOAP HTTP TCP/IP OE-NIK HP V1.0

12

Haladó Programozás

A webszolgáltatás fogalma Szolgáltatásközpontú rendszerek 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 V1.0

14

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 V1.0

15

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 általában string típusú és XML formátumú – Ezt Xdocumentté konvertálhatjuk, és a tanult LINQ to XML technológiával haszálhatjuk OE-NIK HP V1.0

16

Webszolgáltatás felhasználása .NET-ben

V1.0

OE-NIK HP 17

Feladat

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_statiszt ikai_idosorok/mnbhu_arfolyamok/napiarfolyamok/mnbhu_webservice/arfol yam_lekeres.pdf

A hosszú gépelés helyett www.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 – Hívjuk meg a GetCurrentExchangeRates metódusát V1.0

– Az eredményből a tanult XML-kezelő technikákkal az adatok kiszedhetők – Az adatokat soronként egy DataGridView-ban helyezhetjük el OE-NIK HP 18

Megoldás

V1.0

OE-NIK HP 19

Feladat 2.

Kérdezzük le, hogy milyen napokon és milyen deviza árfolyama

kérdezhető le

– A devizanemeket egy comboBoxban, a napokat egy DateTimePickerben jelenítsük meg

Megoldás:

– A GetInfo metódus használható.

OE-NIK HP V1.0

20

Haladó Programozás

A webszolgáltatás fogalma Szolgáltatásközpontú rendszerek 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 asynchronous operations • Ilyenkor 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ó OE-NIK HP V1.0

22

Feladat 3.

Kérjük le a felhasználó által megadott napon a megadott deviza

árfolyamát

– Figyelem, nem minden nap volt minden pénznem. (Pl. ATS már nincs, EUR régebben nem volt.) – Az eredményeket egy másik DataGridViewban 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 V1.0

23

Megoldás

Generáljunk egy új, aszinkron metódusokat tartalmazó proxy

osztályt

Példányosítsuk, és iratkozzunk fel a GetExchangeRatesCompleted

eseményére

Hívjuk meg a GetExchangeRatesAsync metódusát V1.0

OE-NIK HP 24

Megoldás

V1.0

OE-NIK HP 25

Irodalomjegyzék (alapismeretek)

• Wrox Author Team, Joseph Bustos, Karli Watson

Beginning .NET Web services using C#

• John Sharp

Visual C# 2005 lépésről lépésre

OE-NIK HP V1.0

26

Irodalomjegyzék (magasszintű ismeretek)

• Keith Ballinger

.NET Web Services: Architecture and Implementation

V1.0

OE-NIK HP 27

OE-NIK HP

OE-NIK HP