Windows - A SOAP protokoll bemutatása

Az XML technológián alapuló SOAP protokollt felhasználva olyan összetett alkalmazásokat tudunk készíteni, amelyek egymással decentralizált információcserére képesek. A Microsoft-nak is létezik saját SOAP eszközkészlete. Ebbe is betekintünk cikkünkben.
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.