Hypermedia en informatie architectuur

Het internet, het bekendste voorbeeld van een hypermedium, heeft tot een enorme groei van electronisch beschikbare informatie geleid. Met behulp van hyperlinks worden verschillende informatieblokken aan elkaar gekoppeld waardoor een web van informatie ontstaat. Op het internet worden al deze hyperlinks gemaakt zónder dat er bijvoorbeeld een centrale faciliteit is die garandeert dat alle hyperlinks ook geldig zijn. Er niets dat garandeert dat een hyperlink ook daadwerkelijk aankomt. Dit lijkt een enorme tekortkoming, maar het heeft er in werkelijkheid mede toe geleid dat internet pagina's (HTML documenten) zeer gemakkelijk te maken, te publiceren en te (her)gebruiken zijn. Het publiceren van informatie op internet is dusdanig laag drempelig geworden dat bijna letterlijk iedereen informatie kan delen met letterlijk de hele wereld.

Bovenstaande roept bij mij als informatie architect de volgende vragen op. Zijn deze uitgangspunten van het internet ook toe te passen op bedrijfsapplicaties? Welke voor- of nadelen levert dit op voor bedrijven en met name voor medewerkers binnen een bedrijf? En wat betekent dit voor het werk van de informatie architect?

Een architectuurstijl die aan populariteit wint is ReST (Representation State Transfer). ReST neemt de eigenschappen het hypermedium internet als uitgangspunt. Roy T. Fielding heeft deze architectuurstijl beschreven in zijn dissertatie. In een softwaresysteem gebouwd volgens ReST uitgangspunten vormt de locatie, een URL, van een informatie-eenheid (een "resource") het uitgangspunt. Voor het manipuleren van alle informatie-eenheden staan slechts 4 (Engelstalige) acties ter beschikking: get, post, put en delete. Met behulp van hyperlinks worden alle informatie-eenheden aan elkaar gekoppeld. En ook nu geldt dat niets of niemand garandeert dat een hyperlink ook daadwerkelijk aankomt.

Laten we als voorbeeld alle medewerkers van het bedrijf MijnBedrijf in een ReST softwaresysteem zetten:

De actie GET op de resource http://mijnbedrijf.nl/medewerkers/ toont een lijst van alle medewerkers. Iedere medewerker in de lijst heeft een hyperlink waarmee we detailinformatie van de medewerker kunnen opvragen. Met de actie POST op dezelfde resource voegen we een nieuwe medewerker toe.

De actie GET op de resource http://mijnbedrijf.nl/medewerkers/janjansen/ toont de detailinformatie van de medewerker Jan Jansen. Bijv. een telefoonnummer, een geboortedatum, een foto, etc. Maar, bijv. ook hyperlink naar de afdeling waar de medewerker werkt (bijvoorbeeld: http://mijnbedrijf.nl/afdelingen/inkoop/). Met de actie PUT kunnen we detailgegevens van deze medewerker wijzigen. Met de actie DELETE verwijderen we de medewerker uit het systeem. Stel dat Piet Pietersen helemaal geen medewerker is van MijnBedrijf, dan levert de actie GET op de resource http://mijnbedrijf.nl/medewerkers/pietpietersen/ simpelweg een foutmelding op. De foutmelding geeft aan dat deze resource niet bestaat en dat deze medewerker dus onbekend is binnen MijnBedrijf.

De actie GET op de resource http://mijnbedrijf.nl/afdelingen/ toont alle afdelingen binnen een bedrijf. De lijst bevat ook hyperlinks naar iedere individuele afdeling. Met de actie POST kan een nieuwe afdeling aangemaakt worden.

De actie GET op de resource http://mijnbedrijf.nl/afdelingen/inkoop/ toont de detailinformatie van de afdeling inkoop, zoals een hyperlink naar de manager van de afdeling inkoop. Met de actie PUT kunnen we detailinformatie van de afdeling wijzigen, zoals bijv. de naam van de afdeling. Met de actie DELETE kunnen we afdeling in zijn geheel verwijderen.

De actie GET op de resource http://mijnbedrijf.nl/afdelingen/inkoop/medewerkers/ toont een lijst van hyperlinks naar alle medewerkers van de afdeling inkoop. Voorbeeld van een hyperlink die in de lijst getoond wordt: http://mijnbedrijf.nl/medewerkers/janjansen/.

De voordelen van een systeem gebouwd volgens ReST uitgangspunten is dat het resources kent die heel dicht liggen tegen het informatiemodel van het bedrijf. De urls van de resources zullen voor de medewerkers van het bedrijf dan ook heel natuurlijk overkomen. De beperkte set van acties zorgt er voor dat je gemakkelijk tegen een ReST systeem aan kan automatiseren. Hierbij helpt ook dat ReST verschillende representaties (bijvoorbeeld HTML, XML, JSON, etc.) toestaat van één en dezelfde resource. Een ReST systeem kan dus tegelijkertijd gebruikt worden door mensen maar ook gebruikt worden om bijvoorbeeld integraties met andere bedrijfssystemen te realiseren.

De nadelen van een softwaresysteem gebaseerd op ReST uitgangspunten is de nu nog relatieve onbekendheid. Zeker bij bedrijfsapplicaties. Steeds meer cloud computing diensten op internet, zoals aangeboden door bijv. Amazon en Google, prefereren het aanbieden van een ReST interface op hun diensten in plaats van een interface gebaseerd op een service geörienteerde webservice (SOA). Mede hierdoor zal ook steeds vaker in (standaard) producten ReST interfaces te vinden zijn. 

Voor de informatie architect betekent ReST een nieuwe cq. een andere manier om een informatiemodel uit te werken in een werkend software systeem. ReST legt de focus op het definiëren van informatie-eenheden en op het onderkennen van relaties tussen deze informatie-eenheden. ReST sluit daarmee, naar mijn mening, nauw aan op de kracht van een informatie architect: het maken van een blauwdruk van informatie binnen een kennisdomein.

Berry Groenendijk is informatie architect bij Caerleon.