SOAP

SOAP (tidligere kaldt Simple Object Access Protocol) er en lightweight-protokol til udveksling af oplysninger i et decentraliseret, distribueret miljø. En SOAP-meddelelse er en transmission af oplysninger fra en afsender til en modtager. SOAP-meddelelser kan kombineres, så de kan udføre anmodnings- eller svarmønstre.

SOAP er transportuafhængig, men transmitteres hovedsageligt via HTTP for at kunne udføres sammen med den eksisterende internet-infrastruktur. SOAP giver mulighed for binding og brug af opsporede webserviceprogrammer, ved at der defineres en meddelelsessti til routing-meddelelser. SOAP bruges til at sende forespørgsler til UDDI om webserviceprogrammer. Arbejdsbænken understøtter SOAP 1.1.

SOAP er en XML-baseret protokol, som definerer tre dele over for alle meddelelser:

Bindingstyper

SOAP understøtter to forskellige kommunikationstyper:

RPC (eksternt procedurekald):  Aktivering af en funktion, som returnerer et resultat. Bruges typisk sammen med SOAP-kodning, som ikke overholder WS-I.

Dokumenttypografi:  Kaldes også dokumentorienteret eller meddelelsesorienteret typografi. Denne typografi omfatter et underliggende abstraktionslag og kræver mere programmeringsarbejde.

Kodningstypografier

I distribuerede computermiljøer definerer kodningstypografier, hvordan dataværdier, der er defineret i programmet, kan oversættes til og fra et bestemt protokolformat. Oversættelsesprocessen kaldes serialisering og afserialisering.

SOAP-specifikationen definerer SOAP-kodningstypografien:

SOAP-kodning:  Du kan bruge SOAP-kodning til at serialisere eller afserialisere datatypeværdier fra SOAP-datamodellen. Denne kodningstypografi er defineret i SOAP 1.1.-standarden og overholder ikke WS-I.

WSDL definerer Literal XML-kodning:

Literal XML:  Literal (konstant) henviser til, at dokumentet skal læses, som det er og forefindes, eller ikke-kodet. Dokumentet serialiseres som XMI, hvilket betyder, at meddelelses-XML'en overholder skemaet i WSDL. Når du bruger Literal-kodning, refererer hver meddelelsesdel til en konkret skemadefinition. Literal-kodning overholder WS-I.

Datamodel

Formålet med SOAP-datamodellen er at stille en sproguafhængig abstraktion til rådighed for datatyper, som anvendes af almindelige programmeringssprogtyper. Den består af følgende:

Alle elementer og id'er, som omfatter SOAP-datamodellen, er defineret i navneområde-URI'en. SOAP-standarden definerer reglerne for, hvordan datatyper kan opbygges. Et projektspecifikt XML-skema skal definere de faktiske datatyper. Elementerne i SOAP-specifikationen er defineret ihttp://schemas.xmlsoap.org/soap/envelope/ og http://schemas.xmlsoap.org/soap/encoding/

SOAP-implementeringer

I dag er der forskellige tilgængelige implementeringer af SOAP-protokollen. Apache Foundation stiller f.eks. Apache SOAP til rådighed, som er en videreudvikling af et IBM®-projekt med navnet SOAP4J, samt Apache Axis og IBM WebSphere® runtime-miljø. De tilgængelige webserviceprogramværktøjer understøtter Apache SOAP 2.3-, Axis 1.0- og IBM WebSphere-implementeringer.

Tilknytninger vha. mapping

En tilknytning vha. mapping definerer en forbindelse mellem et kvalificeret XML-elementnavn, et Java™-klassenavn og en kodningstypografi. Tilknytningen vha. mapping angiver, hvordan et indgående XML-element med et fuldstændigt kvalificeret navn under den givne kodning konverteres til en Java-klasse og omvendt

Der er flere oplysninger om Apache SOAP i xml.apache.org/soap  Der er flere oplysninger om SOAP i www.w3.org/TR/SOAP