1 / 29

Haladó Programozás

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

noe
Download Presentation

Haladó Programozás

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. 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

  5. Szolgáltatásjegyzék Keres Közzétesz Szolgáltató Szolgáltat Igénybe vesz Szolgáltatást igénybe vevő 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 OE-NIK HP

  6. 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

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

  8. Felderítés UDDI, DISCO Leírás WSDL Üzenet SOAP Átvitel HTTP, SMTP, … 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 OE-NIK HP

  9. Felderítés UDDI, DISCO Leírás WSDL Üzenet SOAP Átvitel HTTP, SMTP, … 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 OE-NIK HP

  10. Felderítés UDDI, DISCO Leírás WSDL Üzenet SOAP Átvitel HTTP, SMTP, … Ü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 OE-NIK HP

  11. Felderítés UDDI, DISCO Leírás WSDL Üzenet SOAP Átvitel HTTP, SMTP, … Á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 OE-NIK HP

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

  13. 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

  14. Á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

  15. 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

  16. 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

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

  18. 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_statisztikai_idosorok/mnbhu_arfolyamok/napiarfolyamok/mnbhu_webservice/arfolyam_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 • 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

  19. Megoldás OE-NIK HP

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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 OE-NIK HP

  25. Megoldás OE-NIK HP

  26. Irodalomjegyzék (alapismeretek) • Wrox Author Team, Joseph Bustos, Karli WatsonBeginning .NET Web services using C# • John Sharp Visual C# 2005 lépésről lépésre OE-NIK HP

  27. Irodalomjegyzék (magasszintű ismeretek) • Keith Ballinger.NET Web Services: Architecture and Implementation OE-NIK HP

  28. OE-NIK HP

  29. OE-NIK HP

More Related