Introductie over SOAP

SOAP Architectuur

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

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

Wat is een API

API staat voor Application Programming Interface. Oke, nu weet je waar de afkorting voor staat, maar nog steeds niet wat ...
Opbouw SOAP bericht

Introductie over SOAP

We zullen eerst kort stilstaan bij wat een webservice is en vervolgens hoe een SOAP API daar bij past. Een ...
Issue tools

Introductie issue tools

Issue tracking tools vereenvoudigen het proces van identificeren, beheren en rapporteren van bevindingen in de software en ook in de ...
Whiteboard testautomatisering

Afwegingen bij testautomatisering – TestTalk Whiteboard

Deze TestTalk whiteboard gaat over testautomatisering. De volgende onderwerpen worden besproken: - Welke afwegingen spelen een rol bij de keuze ...
Blijf op de hoogte van onze nieuwste ontwikkelingen, schrijf je hier in voor de nieuwsbrief!