
SOAP Architectuur
We zullen eerst kort stilstaan bij wat een webservice is en vervolgens hoe een SOAP API daar bij past. Een webservice kan beschreven worden als een interface van een applicatie of component binnen een applicatie die toegankelijk is via standaard protocollen. Een webservice maakt het mogelijk om, zonder menselijke tussenkomst, vanaf een client (applicatie of component) een dienst op te vragen aan een server. Die dienst kan bijvoorbeeld zijn het uitvoeren van een bepaalde berekening, het opvragen van gegevens of het uitvoeren van een taak.
Een van de mogelijkheden om clients en applicaties gebruik te laten maken van de services is door middel van een eenvoudig op XML-gebaseerde protocol: SOAP. Services worden beschreven met behulp van WSDL (Web Services Definition Language). Een WSDL-document is een XML-document, bestaande uit een verzameling definities. Aanbieders van webservices publiceren een WSDL-document, zodat gebruikers na het lezen van dit document exact weten hoe ze gebruik kunnen maken van de webservice. De SOAP- en XML-koppeling die wordt gelegd tussen aanbieder en gebruiker van de webservice moet dus worden gerealiseerd aan de hand van het WSDL-document. WSDL is wel leesbaar voor mensen, maar echt overzichtelijk ziet een XML-document er niet uit. Daarom zijn er zogeheten SOAP-clients, die onder andere de inhoud van een WSDL-document overzichtelijk kunnen weergeven in HTML-formaat. Voor registratie en het vinden van webservices (een soort telefoonboek voor webservices) wordt gebruik gemaakt van een UDDI-database (Universal Description, Discovery and Integration) waarin de WSDL-documenten en aanvullende informatie worden opgeslagen.
Opbouw van een SOAP bericht
Een bericht verzonden via SOAP is in XML-formaat en bestaat uit drie delen: een envelop, een header en een body

Opbouw SOAP bericht
De SOAP envelope bevat de Header en Body en bevat daarnaast een verscheidenheid aan informatie die nodig is om het bericht te verwerken, inclusief een beschrijving van de soort gegevens die in het bericht zijn opgenomen en informatie over hoe deze gegevens moeten worden verwerkt. Het bevat ook informatie over de afzender en ontvanger van het bericht.
Het is niet verplicht om in een SOAP bericht een Header block op te nemen. In de praktijk worden deze echter wel opgenomen als SOAP wordt gebruikt in een webservice.
De informatie die in een header kan worden opgenomen kan verschillende doelen hebben, zoals bijvoorbeeld het verlenen van authenticatie. De gegevens in headers worden gegroepeerd in header blocks. Er kunnen één of meerdere header block in een header worden opgenomen.
De body van het bericht bevat de data. De data kan een verzoek om informatie zijn of het is een antwoord op een verzoek om informatie. De data in een body is onderverdeeld in sub-elementen. Er kunnen een of meerdere sub-elementen voorkomen in een body.
Hieronder vind je een voorbeeld van een SOAP bericht. Deze webservice vraagt om het aantal op voorraad van een bepaald product met een bepaalde kleur. :
<soap:Envelope
xmlns:soap=”http://schemas.xmlsoap.org/soap/envelope/”>
<soap:Body xmlns:m=“http://www.TestTalk.nl/VoorraadService”>
<m:geefVoorraad>
<m:Zoekopdracht>
<m:product>1234</m:product>
<m:kleur>Oranje</m:kleur>
</m:Zoekopdracht>
</m:geefVoorraad>
</soap:Body>
</soap:Envelope>
AA
Ook interessant?

Wat is een API
Meer Lezen

Introductie over SOAP
Meer Lezen

Introductie issue tools
Meer Lezen

Afwegingen bij testautomatisering – TestTalk Whiteboard
Meer Lezen