Webservices zijn geen data
Column ir. Arie J. Duindam
In mijn vorige column heb ik verslag gedaan van mijn zoektocht
naar de toestemming om het NWB-wegen te mogen hergebrui
ken. Dit is inmiddels gelukt, wat een duidelijk voorbeeld is van de
huiveringwekkende macht van een Geo-lnfo columnist. Wellicht
dat de niet aflatende inspanning van Rijkswaterstaat er overigens
ook wel iets mee te maken heeft.
Waar ik het ditmaal over wil hebben, is het verschil tussen webser
vices en datasets, omdat dit actueel is in de context van de Open
Data ontwikkelingen. De centrale stelling die ik wil verdedigen is
deze: webservices zijn geen data. Nu is het mij er niet om te doen
u te overtuigen, dat lukt namelijk toch niet, en ik weet uit eerste
hand dat er volstrekt tegenovergestelde meningen zijn. Maar
ik wil de stelling graag verdedigen, omdat het hanteren van de
termen 'data'en 'webservice'als synoniemen de nodige conse
quenties heeft.
Het is aardig om even terug te gaan naar een stukje recente ICT
geschiedenis. In 1997 was HTTP i.t een standaard geworden. In
1998 zag XML 1.0 het levenslicht. Met de combinatie van deze
twee technologieën werd het heel eenvoudig om berichten te
versturen tussen applicaties onderling, via het internet. Op dat
moment verliep dit soort communicatie nog veelal via leveran-
cierspecifieke RPC protocollen zoals DCOM en CORBA, die niet
erg geschikt waren voor berichtenverkeer via HTTP. Ook in 1998
werd begonnen aan de SOAP specificatie, de eerste standaard
webservices. De eerste keer dat de term 'webservice'in die context
in het openbaar werd gebruikt was in juli 2000. Dit was opeen
conferentie door Bill Gates voor software-ontwikkelaars. Nadat
het aanvankelijk maar moeilijk te geloven was dat webservices
een goed idee zouden kunnen zijn, omdat het idee afkomstig was
van Microsoft en daarom dus bij voorbaat verdacht, hadden IBM,
Oracle, HP, Sun en natuurlijk Microsoft zelf zich eind 2000 achter
SOAP geschaard en waren webservices een feit.
Dit was een opwindende periode, want ineens konden er allerlei
diensten via internet aangeboden worden waar je als ontwik
kelaar gemakkelijk gebruik van kon maken. En dat zonder datje
ingewikkelde connecties hoefde te programmeren die dan ook
nog eens platformafhankelijk waren. Een lichtend voorbeeld
destijds was de creditcard validatieservice: je stopt er via een XML-
bericht een kaartnummer in en er komt via een ander XML-bericht
een antwoord uit of dit een valide kaartnummer is. Deze service
was aan te sluiten in de eigen programmatuur met slechts enkele
coderegels. Een webservice vormt daarmee dus een interface naar
een bepaalde dienst of data.
Webservices zijn een katalysator voor het gebruik van grote of
dynamische datasets. Met een eenvoudig XML-bericht kan een
gericht stukje actuele data worden opgevraagd. De afnemer hoeft
zich geen zorgen te maken over beheer van de gegevens en het
is ook niet nodig om de gehele dataset te verzenden. Inmiddels
blijken webservices om die redenen zo populair, dat webservices
die data ontsluiten bijna synoniem geworden zijn met het aanbie
den van de dataset zelf. Kort gezegd: als een dataset met een WFS
service is ontsloten, wordt veelal de conclusie getrokken dat de
data dus beschikbaar is.
Dit is echter slechts deels het geval. Er zijn tenminste drie funda
mentele verschillen tussen een dataset en zijn interface via een
webservice. Ten eerste heb je een dataset zelf in bezit, terwijl de
aanbieder van een webservice altijd de stekker en performance-
knop in handen heeft. Voor volumepartijen als Funda en Spotzi is
dit de reden om zo veel mogelijk te werken met lokale datasets,
zodat beschikbaarheid en performance in eigen beheer blijven.
Ten tweede wordt bij het aanbieden van een dataset door middel
van een webservice altijd een transformatie uitgevoerd, waarbij
informatie verloren gaat. Het kan zijn dat niet alle attributen van
de brondata worden ontsloten, of dat er geometrische of inhou
delijke transformaties plaatsvinden.
Ten derde is er een enorm verschil in kostenniveau. Het op
productieniveau aanbieden van een veelgebruikte dataset via een
WFS-service is mogelijk een factor duizend maal zo duur als het
aanbieden van dezelfde data als statisch bestand. Voorbeeld: het
op internet aanbieden van iTB aan statische databestanden kost
orde duizend euro per jaar, de PDOK services orde miljoen. Ik ben
overigens de eerste om te beweren dat dit hele legitieme kosten
kunnen zijn, omdat de besparingen rond beheer en actualisering
bij de afnemers een veelvoud kunnen zijn van de gemaakte
kosten. Maar het geeft wel aan dat datasets en webservices geen
gelijke grootheden zijn.
Soms zijn webservices gewenst, soms is er juist behoefte aan
lokale data. Dit komt bijvoorbeeld tot uiting bij gebruikelijke
praktijken waarbij een WFS-service voor het gehele extent van de
service wordt aangeroepen en dan wordt opgeslagen als kopie
dataset om lokaal verder mee te kunnen werken. Die services zijn
daar vaak niet voor ingericht, met alle performanceproblemen en
bijbehorende kosten vandien. Onlangs stuitte ik op de term bulk-
bevragingsservice om hier een oplossing voor te bieden. Maar net
zoals de anonieme OV-chipkaart voor eenmalig gebruik eigenlijk
gewoon een treinkaartje is, zo zou een bulkbevragingsservice
voor download doeleinden eigenlijk gewoon een dataset moeten
zijn, liefst als Open Data. f
ir.ArieJ. Duindam
Geo-lnfo 2012-2 23