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
[szerkesztés]- 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
[szerkesztés]- 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
[szerkesztés]- 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
[szerkesztés]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
[szerkesztés]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)