Webszolgáltatás

A webszolgáltatás (angolul webservice) alkalmazások közötti adatcserére szolgáló protokollok és szabványok gyűjteménye. Különböző programnyelveken írt és különböző platformokon futó szoftveralkalmazások számítógép-hálózatokon (mint az internet) keresztül történő adatcserére használják a webszolgáltatásokat, az egy gépes folyamatközi kommunikációhoz (IPC) hasonlóan. Ezen interoperabilitás (például Java és Python, illetve Windows és Linux között) a nyílt szabványok használatának eredménye. Az OASIS és a W3C a vezető bizottságok a webszolgáltatások szabványosításának terén. A különböző implementációk fejlesztésének együttműködése érdekében a WS-I szervezet több profilt fejlesztett ki a további szabványok támogatására.

Felhasznált szabványok

 Webszolgáltatás protokollkészlet – A webszolgáltatás megvalósítása során felhasznált szabványok és protokollok.

 XML – Minden kicserélendő adat XML címkékkel van formázva. Ezen kódolás SOAP vagy XML-RPC formában hajtható végre. Az ipari szabványok (biztonság, együttműködés…) a SOAP-ra alapulnak.

 Gyakori protokollok – az XML adat mozgatása az alkalmazások között az olyan gyakran alkalmazott protokollokkal történik, mint a HTTP, az FTP, az SMTP és az XMPP.

 WSDL – a webszolgáltatás nyilvános felülete a Webszolgáltatás leíró nyelvvel (Web Services Description Language, WSDL) van leírva. Ez egy XML alapú leírása a webszolgáltatásokkal történő kommunikációnak.

 UDDI – A webszolgáltatásokat ezen protokoll segítségével teszik elérhetővé. Lehetővé teszi, hogy információt keressünk webszolgáltatásokról, így segítve a döntést, hogy felhasználjuk-e őket.

 WS-Security – A Web Services Security (Webszolgáltatás biztonság) protokollt az OASIS szabványként fogadta el. Lehetővé teszi a felek azonosítását, valamint az üzenetek titkosítását.

Előnyök
 A webszolgáltatások együttműködést (interoperabilitást) biztosítanak a különböző platformokon futó szoftver alkalmazások között.

 A webszolgáltatás nyílt szabványokat és protokollokat használ. A protokollok és adatok minden lehetséges helyen szöveg alapúak, így egyszerűsítve a fejlesztők feladatát.

 A HTTP használatával a webszolgáltatások keresztüljutnak a legtöbb tűzfalon a tűzfal paramétereinek megváltoztatása nélkül.

 A webszolgáltatások egyszerű módon teszik lehetővé különböző gyártóktól származó szoftverek és szolgáltatások kombinálását új, integrált szolgáltatások létrehozására.

 A webszolgáltatások lehetővé teszik a szolgáltatások és komponensek újrafelhasználását egy infrastruktúrán belül.

Hátrányok
 A webszolgáltatás szabványok olyan téren, mint a tranzakciókezelés, vagy nem képesek megoldással szolgálni, vagy kényelmetlen a használatuk az olyan kiforrott elosztott rendszereket leíró nyílt szabványokhoz képest, mint CORBA.

 A webszolgáltatás lassabb, mint az olyan elosztott modellek, mint a DCOM, a CORBA vagy az RMI. Ez a szöveg-alapú formátummal járó hátrány. Az XML tervezési céljai nem tartalmazzák a kódolás tömörségét vagy a feldolgozás hatékonyságát.

 A HTTP protokoll használatának következtében a webszolgáltatások át tudnak jutni a tűzfalakon, melyeknek célja a programok közti kommunikáció blokkolása vagy ellenőrzése.

Webszolgáltatások létrehozásának okai
A legfőbb ok a webszolgáltatások használata mellett az, hogy a HTTP protokollt használják a TCP fölött, (ez a 80-as port-on megy). Sok vállalat annak érdekében, hogy megóvja magát, tűzfalakkal szűri vagy blokkolja az internet forgalmat. Ebben a környezetben jellemzően a legtöbb (majdnem mindegyik) port zárva van a kimenő és bejövő forgalom ellen, és a tűzfal rendszergazdái nem is szeretnék ezeket megnyitni. Azonban a 80-as port mindig nyitva van, mivel a webböngészők ezt használják. A webszolgáltatás minden forgalmat a 80-as porton keresztül intéz, így nagyon vonzóvá téve a technológiát.

Másik ok pedig az, ami a SOAP protokoll erőssége, hogy nem voltak eddig igazán jó felületek más gépeken vagy hálózatokon történő függvényhívásra. A legtöbbjük ad hoc jellegű volt, és csak néhány ember tudta az EDI-t, az RPC-t és a hasonló API-kat kezelni. A webszolgáltatások sokkal egységesebb keretrendszert tartalmaznak és így sokkal egyszerűbb őket használni.

Egy harmadik ok, ami a webszolgáltatásokat hasznossá teszi: laza kapcsolatot biztosítanak a webszolgáltatás és az azt használó alkalmazás között. Ez a tulajdonság lehetőséget biztosít, hogy bármelyiket meg lehessen változtatni a másik befolyásolása nélkül. Ez a flexibilitás egyre fontosabbá válik, mivel a szoftverek önálló komponensekből épülnek fel.

A webszolgáltatások elterjedésére jelentős hatással van/lesz az üzleti szektor számára nélkülözhetetlen XML alapú dokumentum menedzsment rendszerek elterjedése. A szemantikus web (web3.0) egyik jövőbe mutató célkitűzése, hogy a digitális világ rendszerei (adatbázisok, programok) és az üzletemberek (humanoid) számára is egyformán (szövegesen) értelmezhető szabványos adathordozó dokumentumok (XML) reprezentálják az üzleti információkat.

Üzletmenet folytonosság tekintetében rendkívüli jelentőséggel bír, hogy a vállalati információ bázis mennyire platform-független, illetve, hogy adott esetben egy dokumentumhoz (pl.: szerződés, megrendelő) tartozó adatok és összefüggések (digitális logikától, kódolástól függetlenül) bemutathatók és bizonyíthatók legyenek. A független digitális rendszerek kollaboratív együttműködésük során szabványos eljárásrendben (webservice) adják, veszik és értelmezik ezen XML dokumentumokat és a számukra előírt műveleteket végrehajtják.

Platformok
A webszolgáltatások alkalmazásszerver szoftverek segítségével telepíthetők. Néhány ilyen alkalmazás szerver:
 Microsoft .NET szerverek a Microsoft-tól
 WebLogic az Oracle-től (korábban BEA Systems)
 WebSphere Application Server az IBM-től
 ColdFusion MX a Macromedia-tól
 Java Web Services Development Pack az Oracle-től (korábban Sun Microsystems)
 GlassFish, mint JEE referencia platform, az Oracle-től
 Apache Tomcat szerver Apache Axis-sal kombinálva az Apache Software Foundation-től
 JOnAS (ObjectWeb Open Source kezdeményezés része)
 Zope (Python nyelven írt objektumorientált web alkalmazás szerver)
 Lotus Domino szerver az IBM-től (7-es verziótól kezdve)