ORDINA BLOGT

Hyperconnected hergebruik van bestaande gegevensbestanden

In de ruimte tussen het NSA debacle en de politieke ambitie voor een open overheid ontluikt een gegevenseconomie van e-dienstverlening. Slimme sites en apps worden gevoed door elders beheerde gegevens. In 2014 worden REST en Linked Data technieken mainstream best practices voor deze vorm van hergebruik.

  • 22 januari 2014

We leven in de tijd van het Internet of Everything. Alles heeft een chip en is gekoppeld met het internet. Je auto kan meer vertellen over je verkeersovertredingen dan de politie, je horloge meer over je gezondheid dan je huisarts.

Hyperconnected world

In de hyperconnectieve wereld verwacht je van je smartphone dat die niet alleen toegang heeft tot je eigen wearables, smart devices en domotica maar ook tot gegevens van anderen: je sociale en je professionele omgeving, allerlei overheden en openbare instanties en partijen die zaken met je willen doen. Andersom maken ook bedrijven zelf graag gebruik van externe open data om hun business te optimaliseren. Natuurlijk hebben we het dan niet over gegevens op gewone websites, maar over machine-readable open data.

Al 40 jaar lang steken organisaties veel energie in het digitaal uitwisselen van gegevens, intern tussen afdelingen (EAI) en extern tussen ketenpartners. De opkomst van SOA en webservices zo’n 15 jaar geleden maakte dat al een stuk makkelijker. Met SOA hoef je de interne werking van een te koppelen applicatie niet meer te kennen, maar kun je uitgaan van afgesproken servicecontracten die het communicatiegedrag van zo’n applicatie op functioneel nivo vastleggen. En webservice standaarden zoals SOAP definieren de onderliggende technische protocollen.

Losser koppelen

Om gegevens uit te kunnen wisselen met een applicatie van een andere afdeling of organisatie moet je dan wel de (web)services van die applicatie kennen. Je hebt dan per service de naam, parameters, pre- en postcondities nodig. Bij de afnemende applicatie moet je vervolgens de nodige analyse- en bouwinspanning doen om die services daadwerkelijk aan te kunnen roepen.

In EAI situaties is dat meestal te overzien, maar soms is die inspanning een belangrijk struikelblok voor het realiseren van koppelingen met SOAP webservices.

  • Als analyse van servicedefinities te tijdrovend is of praktisch verhinderd wordt door ontoereikende documentatie of ontbrekende afstemming met de webservice leverende (IT-)organisatie. 
  • Als het aantal verschillende te koppelen applicaties of datasets te groot is om alle benodigde webservices te kunnen analyseren. Neem bijvoorbeeld een toeristische app die informatie ontsluit over lokale bezienswaardigheden, events en openbaar vervoer. En stel dat die app dat voor alle Europese steden moet doen …

Een ander struikelblok voor traditionele SOA services is de beheerlast voor de aanbiedende applicatie- of gegevensbeheerder.

SOA services zijn normaal niet bijzonder transparant voor wijzigingen in bedrijfsproces of gegevensstructuur. Het aanbieden van nieuwe of gewijzigde functionaliteit betekent dus meestal een investering in het koppelvlak. En dat geldt dan vaak ook voor de afnemende applicaties of apps. Hetgeen ook weer afdoende releasecoördinatie nodig maakt – en die is (zeker bij open data) niet altijd vanzelfsprekend.

Wie bedenkt dat nog geen 1 op de 1000 apps zich financieel kan bedruipen, kan zich misschien voorstellen dat app bouwers weinig geduld hebben met ingewikkelde of veranderende servicedefinities.

Kortom, in onze verappte hyperconnectieve wereld vindt gegevensuitwisseling plaats op grotere schaal en met minder ruimte voor wederzijdse afstemming dan vroeger. Daar hebben we meer loose coupling voor nodig dan wat de komst van SOA ons bracht.

Interoperabiliteit

Het zal dus niet verbazen dat er - met name op het gebied van open data - nieuwe best practices ontstaan voor gegevensuitwisseling. Die komen tegemoet aan de behoefte aan grotere eenvoud, flexibiliteit en schaalbaarheid van de koppelmogelijkheden (de "interoperabiliteit") van applicaties en gegevensbestanden.

Nu zijn eenvoud, flexibiliteit en schaalbaarheid ook beoogde kwaliteiten bij traditionele interoperabiliteitspatronen. Welke specifieke voordelen bieden nieuwe best practices als REST en Linked Data t.o.v. andere, al langer gebezigde praktijken zoals SOAP webservices, CDM modellen en ETL processen? En in welke gevallen wil je de ene wel gebruiken en de andere niet?

Voor het antwoord op die vragen bespreek ik in mijn volgende blog 4 typeringen van gestructureerde gegevensuitwisseling, uitgezet langs de volgende twee assen:

  • organisatorische cohesie (betreft het gegevensuitwisseling binnen één (IT-)organisatie of tussen meerdere)
  • procesmatige cohesie (betreft het gegevensuitwisseling binnen één integraal bedrijfsproces of tussen ontkoppelde processen)

In elk kwadrant bekijken we vervolgens de gebruikte technieken en standaarden die daar één of meer aspecten van interoperabiliteit waarborgen:

  • technische interoperabiliteit (compatibiliteit van de syntax van de uitgewisselde gegevens)
  • semantische interoperabiliteit (gedeelde interpretatie van de betekenis van de uitgewisselde gegevens)
  • proces interoperabiliteit (op elkaar aansluiten van client- en serverprocessen)
  • unieke identificatiecodes (gedeelde referenties naar specifieke records / instances)

    interoperabiliteit uitgezet tegen organisatorische en procesmatige cohesie

    We zullen zien dat de in het kwadrant "hergebruik open data" gewenste losse koppeling wordt geboden door REST principes en Linked Data technieken. Met REST kun je schaalbare en flexibele API’s realiseren door het gebruik van standaard HTTP functies en het HATEOAS principe. Linked Data technieken faciliteren naast API's ook filetransfer en embedded publicatie van gegevens. Met de RDF standaard en door standaard vocabulaires wordt op een flexibele manier syntactische en semantische compatibiliteit geborgd.

    Momenteel worden REST en Linked Data met name toegepast voor hergebruik van open data. In de toekomst zullen deze best practices ook steeds meer hun nut gaan bewijzen op het gebied van ketenintegratie en OLAP.

    volgende blog >