Windows - Microsoft .NET Web Service

forráskód letöltése
A Microsoft .NET Web Service lehetővé teszi a programozók számára, hogy program moduljaikat közzétegyék az Interneten mindenki számára elérhetően és online módon felhasználhatóan. A módszer drasztikusan csökkenti az alkalmazásfejlesztéshez szükséges időt és platformfüggetlenséget biztosít. Az alábbiakban az általános ismertetésen kívül VB szkriptek segítségével gyakorlati példákon keresztül mutatjuk be a Web Service használatát.
Cikkünkhöz mellékeltük az alábbiakban szereplő szkripteket, mindkettő a .NET Web Service-t használja, ezért futtatásukhoz Internet kapcsolatra van szükség.
"Currency.vbs" - Valuták közötti átszámolást végez.
"day.vbs" - Egy általunk feltett kérdésre ad választ.
Út a Web Service-ig
Kezdetben a programozók az első lépéstől az utolsóig maguk írták az alkalmazásokat, ráadásul gépi kódban, assembly-ben. Később megjelentek a különböző programozási nyelvek (BASIC, Pascal, Fortran, stb.). Ekkor már kicsit emberközelibbé vált a fejlesztés. Az igények és a lehetőségek fokozódása magával vonta a programok méretének növekedését is. A bonyolultság következménye lett, hogy egyre nehezebben lehetett áttekinteni a forráskódokat. Következő lépés az objektumorientált programfejlesztés volt. Előre elkészített objektumok, kódrészletek paraméterezett meghívásával áttekinthetőbbé vált a programozó munkája. A munka is egyre inkább szeparálódott: egyes programozók újrafelhasználható objektumokat, komponenseket készítettek, míg mások felhasználták őket. A munkamegosztás csökkentette az alkalmazások elkészítéséhez szükséges időt és csökkent a hibaszázalék is. Hogy lehet mindezt még fokozni? A .NET Web Service adja meg rá a választ: tegyük közzé objektumainkat az Interneten. Fejlesztők ezrei által készített számtalan objektum vált mindenki által elérhetővé. Meghívhatjuk őket saját programjainkból megkímélve magunkat az elkészítéséhez szükséges munkától. Például feladatunk, hogy készítsünk egy programot, amely a különböző valutanemek közötti átváltást végzi. Nos mivel ilyen Web Service megoldás már van, nem kell mást tenni, mint meghívni és feldolgozni a visszakapott eredményt. Az objektum gondoskodik a napi árfolyamról és az átváltásról így a mi munkánk az adatokat bekérő és megjelenítő keretrendszer elkészítésére korlátozódik. Tekintve, hogy a program futása közben szükségünk lesz a távoli objektumra, ezért állandó és lehetőség szerint minél gyorsabb Internet kapcsolattal kell rendelkeznünk.
Milyen fejlesztőkörnyezetben használható a Web Service?
Gyakorlatilag bármilyenben kezdve a Perl, Java és VB szkript nyelveket a Delphi-n át a C#-ig. A Delphi Software Online és C# Software Online hetilapjainkban több cikk is megjelent, lépésről-lépésre ismertetve az adott fejlesztőkörnyezetbeli megvalósítást.
Támogatás a Windows XP-ben
Windows XP-ben a HTTP protokollra épülő Simple Object Access Protocol (SOAP) kliens teszi lehetővé a Web Service-hez való hozzáférést. A művelet mechanizmusa az útválasztáshoz hasonló. A SOAP üzeneteket a SOAP útválasztók továbbítják az ügyféltől a Web Service felé és vissza. Az útválasztók rendelkeznek egy útválasztó táblával, ahová bejegyzéseket lehet hozzáadni, törölni és lekérdezni. Az útválasztó protokoll neve: Web Service Routing Protocol (WS-Routing). A bejegyzéseket pedig a Web Service Referal Protocol (WS-Referal) tartja karban. Egy üzenet négy részből épül fel:
  • Envelope - Az XML üzenettartalmat definiálja
  • kódolási szabályok az üzenet nyelvezetét tárolják (nem kötelező)
  • az üzenetben meghívásra kerülő funkciók definiálása (nem kötelező)
  • maga az üzenet.
Web Service Definition Language (WSDL)
A WSDL a Web Service leíró nyelve. Ahhoz, hogy egy szolgáltatást használni tudjunk, először is ismerni kell a meghívásának módját, a támogatott funkciókat, paramétereket és a visszakapott értékek jelentését. A WSDL hivatott ezeket az információkat közölni.
Példák a Web Service használatára
Az alábbi VB szkriptek meghívásához a parancssori CSCRIPT.EXE használatát javasoljuk, például:
cscript day.vbs
A "http://www.gotdotnet.com/playground/services/eightball/EihtBallWS.asmx?WSDL" címen rendelkezésre áll egy tréfás modul, amely a feltett kérdésekre mindig más választ ad.

Hozzuk létre a "MSSOAP.SOAPClient" objektum egy új példányát. Inicializáljuk az "mssoapinit" metódussal paraméterként átadva a távoli objektum Webcímét. Az "Ask" metódussal adjunk át egy kérdést és egyúttal írjuk ki a képernyőre a visszakapott választ. A teljes szkript így néz ki:
SET scEightBall = CreateObject("MSSOAP.SOAPClient")
scEightBall.mssoapinit_"http://www.gotdotnet.com/playground/services/eightball/EihtBallWS.asmx?WSDL"
WScript.Echo scEightBall.Ask("Will I have a date this Friday?")
Az alábbi VBScript egy másik Web Service szolgáltatás meghívásával átszámolja az angol fontot japán jenre.
dim SOAPClient
set SOAPClient = createobject("MSSOAP.SOAPClient")
on error resume next
SOAPClient.mssoapinit("http://www.xmethods.net/sd/CurrencyExchangeService.wsdl") 
  if err then
    wscript.echo SOAPClient.faultString
    wscript.echo SOAPClient.detail
  end if
wscript.echo SOAPClient.getRate("England","Japan")
  if err then
    wscript.echo SOAPClient.faultString
    wscript.echo SOAPClient.detail
  end if
Fontos, hogy nem minden útválasztó enged át minden Web Service forgalmat, továbbá a kiszolgálók esetleges leállása vagy túlterheltsége miatt szintén előfordulhat, hogy sikertelen lesz az alkalmazások futtatása.