Bemutatás
A Simple Object Access Protocol egy könnyű, egyszerű protokoll decentralizált, elosztott környezetek közötti információcserére. A protokoll XML alapú és három részből áll: egy boríték, ami definiál egy keretet, leírva azt, hogy mi van az üzenetben és hogyan kell feldolgozni, egy kódoló szabálykészlet az alkalmazás által definiált adattípus példányok kifejezésére, és megállapodás a távoli eljáráshívások és válaszok ábrázolására. A SOAP képes arra, hogy együtt használják más protokollokkal.
A SOAP-ot egyszerűnek és kiterjeszthetőnek tervezték. Definiál egy üzenet feldolgozó modellt, de önmaga nem definiál egy alkalmazás szemantikát sem, mint amilyen például egy programozási modell, vagy tervezés specifikus modell. Bár a SOAP alkalmas komplex rendszerek fejlesztésére, az általános objektum és üzenet közvetítő rendszerek legtöbb jellemzője nem része az alap SOAP specifikációnak.
Részletek
A SOAP üzenet XML alapú, és a következő részekből áll:
- A boríték a legfelső szintű tároló az üzenet ábrázolására.
- A fejrész egy általános tároló hozzáadott jellemzők tárolására, decentralizált módon. A SOAP attribútumokat definiál, hogy segítsen eldönteni, ki foglalkozzon a jellemzővel és vajon az értelmezése kötelező, vagy csak opcionális.
- A body a meghatalmazott információk tárolója, amit a végső felhasználónak szántak. A SOAP definiál egy elemet a body részben hibajelzésre.
Az alábbi példa egy SOAP üzenet, ami egy értesítés küldése Web szerviznek.
<?xml version="1.0" encoding="UTF-8" ?>
<env:Envelope xmlns:env="http://www.w3.org/2001/09/soap-envelope">
<env:Header>
<n:alertcontrol xmlns:n="http://pelda.org/figyelmezteto">
<n:priority>1</n:priority>
<n:expires>2002-03-12T07:00:00-05:00</n:expires>
</n:alertcontrol>
</env:Header>
<env:Body>
<m:alert xmlns:m="http://pelda.org/figyelmeztetes">
<m:msg>Locsold meg a virágokat minden reggel!</m:msg>
</m:alert>
</env:Body>
</env:Envelope>
SOAP üzenetek küldhetők HTTP, SMTP, TCP segítségével. Például Web Service útválasztás definiálhat kötést SOAP üzeneteknek DIME, TCP, és UDP-hez.
A SOAP minden olyan más protokollon alapszik, amelyek arra a célra készültek, hogy titkos és megbízható üzenetküldő szolgáltatást nyújtsanak. Például a Web Service Security és License használható arra, hogy garantálja az épségét és/vagy titkosságát a SOAP üzeneteknek. Az ehhez hasonló protokollok tudják kihasználni a SOAP moduláris csomagszerű használatát, ahol a többféle SOAP-alapú protokoll megtalálható együttesen egy üzenetben. Ez a forma adja az előnyét a SOAP-nak, hogy használhatóvá válik különféle rendszerekben egyszerűbb eszközöktől globális Web szolgáltatásokig.
A SOAP egy keretet definiál az üzenetstruktúrához, de a hibákat kivéve nem definiál üzenet típust. WSDL (Web Service Description Language) képes leírni, hogy a Web Service milyen típusú üzenetet tud küldeni és fogadni. A SOAP XML-alapú protokoll, DIME használható XML és bináris adat keretnek a SOAP üzenet alapjául.
Microsoft SOAP eszközkészlet
Az eszközkészlet a következőkből áll:
- Kliens oldali komponens, ami lehetővé teszi az alkalmazásnak, hogy olyan Web szerviz műveleteket hívjon segítségül, amelyek a Web Services Description Language (WSDL) dokumentumban definiáltak.
- Szerver oldali komponens, ami leképezi a meghívott Web szerviz műveleteket COM objektum metódushívásokra, amint az a WSDL és a Web Services Meta Language (WSML) állományokban le van írva. Ez a fájl szükséges a SOAP Microsoft általi megvalósításában.
- Szükséges komponensek, amelyek létrehoznak, átküldenek, olvasnak és feldolgoznak SOAP üzeneteket. Ezekre a folyamatokra együttesen úgy hivatkozunk, mint elrendező "marshalling" és "unmarshalling" folyamatokra.
Emellett a SOAP Toolkit 2.0 kiegészítő eszközökkel szolgál az alkalmazásfejlesztést segítve:
- A WSDL/WSML Generator eszköz, ami WSDL és WSML fájlokat tud kreálni, felváltva a gyakran unalmas manuális állománylétrehozást.
- Egy alternatív használati lehetősége az XML DOM API-nak, hogy feldolgozzon XML dokumentumokat SOAP Messaging Object (SMO) keretben.