SOAP Toepassen

PDF version

SOAP StreetDe laatste maanden word je in IT-land doodgegooid met nieuwe kreten. De meeste overleven gelukkig de start-up niet. Degene die overblijven zijn vaak wat oudere protocollen waar weer nieuw leven in wordt geblazen. Denk hierbij bijvoorbeeld aan RSS, maar ook SOAP. SOAP werd wel gebruikt, maar er werd veel minder aandacht aan besteed dan tegenwoordig. Waarom het nu wel een succes is en vroeger niet, durf ik niet precies te zeggen, maar ik denk dat mensen zijn veranderd. Zowel RSS als SOAP zijn protocollen die door twee partijen geaccepteerd moet worden. Zonder RSS-reader heb je niets aan een RSS-feed.

Web 3.0 gaat zich voornamelijk richten op communicatie tussen verschillende (web)applicaties. RSS-feeds en SOAP sluiten daar natuurlijk naadloos op aan.

Wat is SOAP en hoe werkt het?

SOAP staat voor Simple Object Access Protocol en is gebaseerd op XML (net zoals RSS). SOAP is de opvolger van XML-RPC (Remote Procedure Call), maar zit wel geheel anders in elkaar.

Door middel van XML-pakketjes kunnen twee losstaande webapplicaties met elkaar communiceren. Bij dit protocol is het noodzakelijk dat de ene partij de server is en de andere de client. De client vraagt vervolgens aan de server wat de regels zijn door een wsdl-bestand op te vragen. Nu begint hij  met het sturen van een request. Deze request kan een informatie-aanvraag, maar ook data, bevatten. Dit valt te vergelijken met een normale website. Een bezoeker kan een pagina opvragen (informatie-aanvraag), maar kan ook data naar de server toesturen, wanneer je bijvoorbeeld het reactieformulier hebt ingevuld op mijn weblog.

Wanneer het datapakketje bij de server is aangekomen, zal deze vervolgens reageren, door een pakketje terug te sturen. Hier zit dan bijvoorbeeld de opgevraagde informatie in of een acceptatie van de ontvangen data.

Toepassen

Zoals beschreven, kun je met SOAP dus een verbinding opzetten tussen twee webapplicaties. Maar waarom zou je dat willen? Ofwel, wat kun je hiermee?

Het bereik van SOAP is heel erg groot. Er zijn ontzettend veel verschillende redenen te bedenken om het te gebruiken en die kan ik natuurlijk niet allemaal uitleggen. Allereerst is het belangrijk om een onderscheid te maken tussen de publieke SOAP-servers en de privé-servers. Met een privé-server bedoel ik dat er één client en een server is, terwijl er bij een publieke server juist meerdere clienten zijn. Dit laatste is meestal het geval, maar het eerste is daarmee niet uit te sluiten.

Het is niet geheel ondenkbaar dat er binnen je website een heel zwaar proces plaats vindt. Zo’n groot proces, dat de andere bezoekers hier last van ondervinden. Je zou bijvoorbeeld een online game kunnen beheren, waarbij je ieder uur een enorme landkaart laat genereren. Hierop staan dan alle dorpjes van de spelers.
Om de boel soepel te laten verlopen, kun je er dan voor kiezen om een aparte server te gebruiken om de kaart te laten genereren. Dit zou bijvoorbeeld een oude computer kunnen zijn die je dan lekker op zolder zet. Mocht de server een keer offline zijn, is dat geen drama, want het spel kan gewoon verder gaan. Het is dus niet noodzakelijk dat de server in een goedbeveiligd (en duur) datacentrum staat. Iedere dag om 20:00 stuurt de server dan een MySQL-dump naar de server thuis en deze zal vervolgens een kaart maken en terug sturen. Om het nog beter te maken, zou je de thuisserver dan een acceptatie kunnen laten sturen en vervolgens weer contact op kunnen laten nemen met de server in het datacentrum wanneer de afbeelding klaar is.

Een heel simpel voorbeeld van een publieke server, is een postcode-plaatsnaam-database. Je kunt dan een server opzetten waar andere applicaties een postcode in kunnen stoppen  en de bijbehorende plaats terug krijgen. Niet iedere website hoeft dan een eigen database  met postcodes op te zetten en erger nog: te onderhouden. Zo zijn er natuurlijk ook heel veel validatie-servers op te zetten voor bijvoorbeeld creditcard-gegevens.

Onlangs schreef een belangrijke leverancier mij aan met een van de meest geweldige SOAP-applicaties die ik tot op heden daadwerkelijk gezien heb. Door middel van een eenvoudige SOAP-verbinding kun je bij hen nu namelijk domeinen registreren. Als domeinreseller kun je dus je hele bestelproces er aan koppelen.

Conclusie

Ik denk dat ik met het online spel, de postcode-plaats-database, de creditcard-validator en de domeinregistratie genoeg voorbeelden heb gegeven van nuttige SOAP-applicaties. Het grootste voordeel is, dat je een universele aansturing hebt van je applicaties en scripts dus aan verschillende projecten kan koppelen. Hierdoor voorkom je redudantie en daarmee gepaard, inconsistentie. Je kunt bovendien rustig onderhoud plegen aan de verschillende SOAP-applicaties, zonder dat je hiervoor aan belangrijke delen van scripts hoeft te komen.

Ik weet dat ik nu een heel mooi verhaal heb geschreven over SOAP, maar ik moet eerlijk bekennen nog nooit echt een SOAP-applicatie te hebben gebruikt. Dat komt voornamelijk omdat ik nu op aan het studeren ben, maar ook omdat de situatie zich er niet altijd toe leent. Ik wil daarom ook waarschuwen om nu niet direct overal SOAP in gaan bouwen. Neem daarentegen eens rustig de tijd om de techniek onder de knie te krijgen en zet een klein project op waarmee je er kunt oefenen. Dan is het nieuwe er een beetje af en kun je het in praktijk brengen wanneer er echt goede redenen voor zijn.

136 Comments

GaryJanuary 25th, 2015 at 11:28

.

áëàãîäàðþ….

dougJanuary 25th, 2015 at 11:59

.

ñïñ….

TonyJanuary 26th, 2015 at 09:41

.

ñïñ!!…

EdgarJanuary 26th, 2015 at 10:21

.

hello!…

enriqueJanuary 26th, 2015 at 10:52

.

ñïñ çà èíôó….

FredJanuary 27th, 2015 at 14:39

.

áëàãîäàðþ!!…

christianJanuary 27th, 2015 at 15:13

.

tnx!…

GeorgeJanuary 28th, 2015 at 05:43

.

thanks for information!!…

CurtisJanuary 29th, 2015 at 19:25

.

ñïñ….

RayJanuary 30th, 2015 at 08:25

.

ñïñ!!…

vernonJanuary 30th, 2015 at 08:56

.

thanks for information!…

DarrylJanuary 30th, 2015 at 09:29

.

good!!…

HarveyFebruary 1st, 2015 at 09:39

.

ñýíêñ çà èíôó!!…

PeterFebruary 3rd, 2015 at 18:24

.

áëàãîäàðñòâóþ!!…

edgarFebruary 4th, 2015 at 05:08

.

thank you!!…

ManuelFebruary 4th, 2015 at 16:10

.

thanks!…

RoyFebruary 4th, 2015 at 19:14

.

thanks!!…

BrentFebruary 4th, 2015 at 19:25

.

áëàãîäàðåí!…

TyroneFebruary 5th, 2015 at 04:47

.

ñïàñèáî!!…

EarlFebruary 6th, 2015 at 03:45

.

tnx for info!!…

JulianFebruary 6th, 2015 at 04:15

.

ñïñ!!…

WallaceFebruary 6th, 2015 at 04:46

.

good….

willardFebruary 6th, 2015 at 05:17

.

thanks for information….

EvanFebruary 7th, 2015 at 08:05

.

tnx!…

GabrielFebruary 7th, 2015 at 08:39

.

áëàãîäàðñòâóþ!…

BarryFebruary 7th, 2015 at 22:48

.

tnx….

charlesFebruary 8th, 2015 at 10:59

.

ñïñ….

ChrisFebruary 8th, 2015 at 11:30

.

hello….

RaulFebruary 8th, 2015 at 12:00

.

ñýíêñ çà èíôó!…

bruceFebruary 8th, 2015 at 13:36

.

ñïñ çà èíôó….

AntonioFebruary 8th, 2015 at 14:05

.

áëàãîäàðþ!…

virgilFebruary 8th, 2015 at 14:34

.

áëàãîäàðñòâóþ….

rogerFebruary 8th, 2015 at 15:05

.

ñïñ….

freddieFebruary 9th, 2015 at 15:35

.

ñýíêñ çà èíôó….

daleFebruary 9th, 2015 at 17:20

.

ñïàñèáî çà èíôó!!…

ArmandoFebruary 12th, 2015 at 08:32

.

áëàãîäàðåí!…

Leave a comment

Your comment