SOAP

SOAP (tidigare även kallat Simple Object Access Protocol) är ett lättviktsprotokoll för utbyte av information i en decentraliserad, distribuerad miljö. Ett SOAP-meddelande är en överföring av information från en sändare till en mottagare. SOAP-meddelanden kan kombineras till att utföra begäran/svarsmönster.

SOAP är transportoberoende men transporteras oftast över HTTP så att det kan köras med den befintliga Internet-infrastrukturen. Med SOAP aktiveras bindningen och användningen av identifierade webbtjänster genom att en meddelandesökväg definieras för vidarebefordring av meddelanden. SOAP används till att fråga UDDI efter webbtjänster. Arbetsmiljön har funktioner för SOAP 1.1.

SOAP är ett XML-baserat protokoll som definierar tre delar för varje meddelande:

Bindningsformat

SOAP har funktioner för två olika kommunikationsformat:

Fjärrproceduranrop (RPC):  Anrop av en åtgärd som returnerar ett resultat. Används vanligtvis med SOAP-kodning som inte är kompatibel med WS-I.

Dokumentformat: Kallas även för dokumentorienterat eller meddelandeorienterat format. Det här formatet ger ett lägre abstraktionslager och kräver mer programmeringsarbete.

Kodningsformat

I distribuerade datormiljöer, definierar kodningsformat hur datavärden som definierats i tillämpningen kan konverteras till och från ett visst protokollformat. Konverteringsprocessen kallas för serialisering och deserialisering.

SOAP-specifikationen definierar SOAP-kodningsformatet:

SOAP-kodning:  Med SOAP-kodningsformatet kan du serialisera/deserialisera värden på datatyper från SOAP-datamodellen. Det här kodningsformatet definieras i SOAP 1.1-standarden och är inte kompatibelt med WS-I.

WSDL definierar det bokstavliga XML-kodningsformatet:

Bokstavlig XML: Bokstavlig refererar till det faktum att dokumentet ska läsa som det är och utan kodning. Dokumentet serialiseras som XMI vilket innebär att XML-koden i meddelande är kompatibel med schemat i WSDL. När bokstavlig kodning används refererar varje meddelandedel till en konkret schemadefinition. Bokstavlig kodning är kompatibel med WS-I.

Datamodell

Syftet med SOAP-datamodellen är att tillhandahålla en språkoberoende abstraktion för datatyper som används i vanliga programspråktyper. Datamodellen består av följande:

Alla element och IDn i SOAP-datamodellen definieras i namnområdes-URIn. SOAP-standarden definierar reglerna för hur datatyper kan konstrueras. Ett projektspecifikt XML-schema måste definiera de faktiska datatyperna. Elementen i SOAP-specifikationen definieras i http://schemas.xmlsoap.org/soap/envelope/ och http://schemas.xmlsoap.org/soap/encoding/

SOAP-implementationer

Det finns olika implementationer av SOAP-protokollet tillgängliga. T.ex. så tillhandahåller Apache Foundation implemantionen Apache SOAP som har växt fram från ett IBM-projekt kallat SOAP4J, samt Apache Axis och IBM WebSphere-körningsmiljön. De tillhandahållna webbtjänsteverktygen har funktioner för Apache SOAP 2.3-, Axis 1.0- och IBM WebSphere-implementationerna.

Avbildningar

En avbildning definierar en koppling mellan ett kvalificerat XML-elementnamn, ett Java-kodningsnamn och ett kodningsformat.  Avbildningen anger hur, under den givna kodningen, ett inkommande XML-element med ett fullständigt kvalificerat namn konverteras till en Java-klass och vice versa.

Mer information om Apache SOAP finns på webbsidan xml.apache.org/soap. Mer information om SOAP finns på webbsidan www.w3.org/TR/SOAP.