SOAP (tidligere kalt Simple Object Access Protocol) er en lettvektsprotokoll for utveksling av informasjon i et desentralisert, distribuert miljø. En SOAP-melding er en overføring av informasjon fra en avsender til en mottaker. SOAP-meldinger kan kombineres slik at de utfører mønstre av forespørsler og svar.
SOAP er transportuavhengig, men det overføres vanligvis med HTTP for å kjøre med den eksisterende Internett-infrastrukturen. SOAP aktiverer binding og bruk av oppdagede web-tjenester ved å definere en meldingsbane for ruting av meldinger. SOAP brukes til å utføre spørringer mot UDDI for web-tjenester. Arbeidsbenken støtter SOAP 1.1.
SOAP er en XML-basert protokoll som definerer tre deler for hver melding:
SOAP støtter to forskjellige kommunikasjonsstiler:
Eksternt prosedyrekall (RPC): Aktivering av en operasjon som returnerer et resultat. Brukes vanligvis til SOAP-koding, som ikke samsvarer med WS-I.
Dokumentstil: Også kjent som dokumentorientert eller meldingsorientert stil. Denne stilen sørger for et lavere lag av abstraksjon, og krever mer programmeringsarbeid.
I distribuerte databehandlingsmiljøer definerer kodestiler hvordan dataverdier som er definert i applikasjonen, kan oversettes til og fra et bestemt protokollformat. Oversettingsprosessen er kjent som serialisering og deserialisering.
SOAP-spesifikasjonen definerer SOAP-kodestilen:
SOAP-koding: Med SOAP-kodestilen kan du serialisere/deserialisere verdier for datatyper fra SOAP-datamodellen. Denne kodestilen er definert i SOAP 1.1-standarden, og den samsvarer ikke med WS-I.
WSDL definerer kodestilen Litteral XML:
Litteral XML: Litteral refererer til at dokumentet skal leses som det er, det vil si ukodet. Dokumentet er serialisert som XMI, noe som betyr at meldingens XML samsvarer med skjemaet i WSDL. Når Litteral koding brukes, refererer hver meldingsdel til en konkret skjemadefinisjon. Litteral koding samsvarer med WS-I.
Hensikten med SOAP-datamodellen er å sørge for en språkuavhengig abstraksjon for datatyper som brukes av vanlige typer programmeringsspråk. Den består av dette:
Alle elementer og identifikatorer som utgjør SOAP-datamodellen er definert som navneområde-URIen. SOAP-standarden definerer reglene for hvordan datatyper kan konstrueres. Et prosjektspesifikt XML-skjema må definere de aktuelle datatypene. Elementene i SOAP-spesifikasjonen er definert i http://schemas.xmlsoap.org/soap/envelope/ og http://schemas.xmlsoap.org/soap/encoding/
Forskjellige implementeringer av SOAP-protokollen er tilgjengelige i dag. Apache Foundation har for eksempel Apache SOAP, som fra et IBM-prosjekt kalt SOAP4J, i tillegg til kjøretidsmiljøene Apache Axis og IBM WebSphere. De medfølgende web-tjenesteverktøyene støtter Apache SOAP 2.3-, Axis 1.0- og IBM WebSphere-implementeringer.
En tilordning definerer en tilknytning mellom et kvalifisert XML-elementnavn, et Java-klassenavn og en kodestil. Tilordningen oppgir hvordan, under den gitte kodingen, et innkommende XML-element med et fullt kvalifisert navn blir konvertert til en Java-klasse og omvendt.
Hvis du vil ha mer informasjon om Apache SOAP, kan du se xml.apache.org/soap Vil du ha mer informasjon om SOAP, kan du se www.w3.org/TR/SOAP