SOAP (korábban egy egyszerű adattovábbító protokoll) decentralizált, osztott környezetben való használatra. Egy SOAP üzenet egy küldő és egy fogadó közti adatátvitel. Több SOAP üzenet használatával kérés-válasz rendszerek is létrehozhatók.
A SOAP független a szállító rétegtől, de ezt a szerepet a leggyakrabban a HTTP tölti be, hogy a már meglévő internetes infrastruktúrán futhasson. A SOAP lehetővé teszi a kikeresett webszolgáltatások használatát azáltal, hogy az útvonalkezelés számára üzenetútvonalat biztosít. A SOAP protokollt használják a webszolgáltatások UDDI lekérdezéseinél. A munkaterület támogatja a SOAP 1.1 változatot.
A SOAP XML-alapú protokoll, ami minden üzenethez három részt határoz meg:
A SOAP két különböző kommunikációs stílust támogat:
Távoli eljáráshívás (RPC): Műveleteket hív meg, amik visszaadnak valamilyen eredményt. Általában SOAP kódolással használják, ami nem felel meg a WS-I szabványnak.
Dokumentum stílus: Dokumentum-központú vagy üzenet-központú néven is ismert. Ez a stílus alacsonyabb szintű absztrakciót használ és több programozási munkát igényel.
Osztott számítási környezetben a kódolási stílusok határozzák meg, hogy az alkalmazásokban használt adatokat hogyan lehet egy adott protokollformátumban megjeleníteni. Az ehhez szükséges átalakításokat nevezzük sorosításnak és sorosításból visszaolvasásnak.
A SOAP specifikáció meghatározza a SOAP kódolási stílust:
SOAP kódolás: A SOAP kódolási stílus segítségével lehet a SOAP adatmodell típusait lehet sorosítani. Ezt a kódolási stílust a SOAP 1.1 szabvány írja le, és nem felel meg a WS-I szabványnak.
A WSDL határozza meg a literál XML kódolási stílust:
Literál XML: A literál szó arra utal, hogy a dokumentumot úgy kell beolvasni, ahogy van, vagyis mindenfajta kódolás nélkül. A dokumentum XMI formába kerül a sorosításkor, ami azt jelenti, hogy az üzenet XML megfelel a WSDL sémájának. A literál kódolás használatakor minden egyes üzenetrész egy konkrét séma definíciónak felel meg. A literál kódolás megfelel a WS-I szabványnak.
A SOAP adatmodell célja az, hogy programozási nyelvektől független elvonatkoztatást nyújtson az általános használt programnyelvek típusai számára. A következőkből áll:
A SOAP adatmodellt alkotó minden elem és azonosító a névtér URI határoz meg. A SOAP szabvány meghatározza az adattípusok alkotásának szabályait. A konkrét adattípusokat a projektek saját XML sémái adják meg. A SOAP specifikáció elemeit http://schemas.xmlsoap.org/soap/envelope/ és a http://schemas.xmlsoap.org/soap/encoding/ dokumentumok adják meg.
A SOAP protokoll több különböző megvalósítása is elérhető napjainkban. Ilyen például az IBM® SOAP4J projektjébõl kinőtt Apache SOAP, az Apache Axis és az IBM WebSphere® futási környezet. A webszolgáltatás eszköz támogatja az Apache SOAP 2.3, Axis 1.0 és az IBM WebSphere megvalósításokat.
A leképezések egy minősített XML elemnevet, egy Java osztályt és egy kódolási osztályt rendelnek össze. A leképezés határozza meg, hogy az adott kódolást használva, miképpen lehet egy beérkező, teljesen minősített nevű XML elemet egy Java osztállyá alakítani és viszont.
További információk az Apache SOAP megvalósításról: xml.apache.org/soap További információk a SOAP protokollról: www.w3.org/TR/SOAP