Informatiediensten in relativiteitsperspectief

Pieter Wisse

1. Inleiding

Service oriented architecture biedt een veelbelovende aanzet, maar blijft steriel zonder voorzieningen voor semantische variëteit. Dit artikel beschrijft de noodzakelijke samenloop voor stelselmatig effect.
Allereerst schets ik service oriented architecture, verder afgekort als Soa, in historisch perspectief. Daaruit blijkt, zoals met spreekwoordelijke communicerende vaten, dat alsmaar sterkere verbijzondering gepaard moet gaan met navenant extra facilitering van samenhang. De totale variëteit blijft immers constant, nee, groeit zelfs sterk door opschaling van bereik met informatieverkeer. De èxtra benodigde voorzieningen, zeg ook maar infrastructuur, dreigen door eenzijdige aandacht voor zgn diensten echter verwaarloosd te raken. Kortom, zulke steriele diensten doen het domweg niet.
Na deze analyse volgt mijn visie op herstel van evenwicht, respectievelijk kansen voor ontwikkeling. Als kritieke factor voor productieve samenhang door diensten leg ik nadruk op semantiek. De beslissende stap bestaat eruit om voor semantiek bewust hetzèlfde bereik te kiezen als waarop de diensten mikken. Die reële schaal geldt nota bene steeds ruimer. In het kielzog van het Internet moet semantiek feitelijk óók wereldwijd samenhangend gefaciliteerd zijn. Zelfs wie dat (nog) overdreven vindt, beseft daardoor dat diensten moeten (kunnen) leveren op een schaal waarop uniformiteit van betekenis onmogelijk simpel valt te waarborgen.
Evenwichtige opzet vergt volgens een informatiekundige relativiteitstheorie zelfs het omgekeerde uitgangspunt. Met andere woorden, betekenissen variëren stelselmatig, vandaar semantische variëteit. Door èlke relevante betekenis als het ware te markeren met de zgn nodige en voldoende contextuele verbijzondering waarvoor zij (slechts) geldt, kunnen ze allemaal eenduidig in ruimere samenhang opgenomen zijn. Precies op die manier is er praktisch een stelselmatige plaats voor elke dienst, met elke dienst inderdaad reuze praktisch op zijn stelselmatige plaats.

 

 

2. Geleidelijke modularisering noopt tot accentsprong

Deze historische schets is, toegegeven, een karikatuur. De aanloop lijkt nodeloos lang, maar helpt om het gemis van de huidige Soa aan de oppervlakte te krijgen.
Ooit was een computer, laat ik gemakshalve zeggen, een doos gevuld met elektronica. Een computerprogramma bespeelde zelfstandig de registers en verwante verwerkingsmogelijkheden, respectievelijk moest netzo zelfstandig afgestemd zijn op beperkingen. Wat de variatie van verwerkingsgedrag betrof, kortom, voerde louter het programma de regie. Met een ander programma was er sprake van zowat een compleet ander systeem.
Gauw viel op, dat verschillende programma’s vaak dezelfde instructies bevatten. Naarmate de computer als hardware modulair samengesteld was, ontstond de noodzaak van samenwerking tussen zulke modules. Als vooruitblik, in wezen is het vraagstuk met wat tegenwoordig diensten à la Soa heten, niets anders. Goed, samenhangende werking van hardwarecomponenten werd de verbijzonderde taak van het besturingssysteem. De besturingsaspecten konden dienovereenkomstig verdwijnen uit de programma’s. Dankzij ondersteuning door het besturingssysteem kon elk apart programma’s voortaan (meer) beperkt blijven tot wat voor een specifieke taak nodig was. Dat kwam in de naamgeving tot uitdrukking: toepassing.
In een notendop, nogmaals, manifesteert zich aldus reeds wat (ook) voor moderne diensten niet veronachtzaamd mag zijn. Was destijds de specifieke taak geklaard met louter een toepassing? Nee, dat lukte dus niet zònder passend besturingssysteem enzovoort ter facilitering. Vergelijkbaar gebeurt er met een dienst nog helemaal niets. Bedenk daarbij dat een dienst met recht nog altijd een toepassing mag heten; kenmerkend is ontleding resulterend in a. enkele factoren die algemener faciliterend werken en b. expliciete voorzieningen voor regie ter compensatie van ontleding.
De strekking van het verhaal is eigenlijk wel duidelijk. Alom groeide en groeit modularisering van programmatuur. Een programma heette ook wel een routine. Ontwikkeling en/of onderhoud is overzichtelijker dankzij subroutines. Daarvoor maakt besturingssysteem versus toepassingen overigens geen verschil. Zolang alle benodigde subroutines behoren tot één en dezelfde routine, kan die overkoepelende routine de regie voeren over de noodzakelijke samenhang in verwerking door de subroutines. Tussendoor merk ik op dat onderscheid van lokale met globale variabelen feitelijk al een kwestie van context is. Het regievraagstuk is binnen één routine met enkele subroutines betrekkelijk eenvoudig. Dat verandert categorisch door hergebruik met ruimer bereik. Componenten, objecten, aspecten … Dienst is in die rij eigenlijk de laatste naam voor subroutines, zodra ze niet langer allemaal ingekapseld zijn door één vaste routine. Nogmaals, daardoor wordt onmisbare regie vanzelfsprekend weer ingewikkelder, véél ingewikkelder.
Modularisering inclusief schaal van hergebruik is intussen zover gevorderd, dat traditionele indelingen hinderen. Vroeger veroorzaakte ontleding een verhoudingsgewijs marginale behoefte aan regie, waarvoor de inspanningen nog redelijkerwijs als overhead golden. Dergelijke verhoudingen zijn achterhaald. De regie vergt allang de meeste aandacht en dat aandeel blijft stellig groeien naarmate modularisering aanhoudt.
Ik bepleit de accentsprong naar samenhang als leidend vraagstuk voor praktische voorzieningen. Wie denkt dat Soa primair over aparte diensten gaat, waarmee het vervolgens in willekeurige samenhang allemaal als vanzelf wel goed komt, blijft met informatievoorziening steken op een schaal die, zoals gezegd, achterhaald is. Weliswaar vormt een dienst een bouwsteen, maar zomaar een stapel stenen is nog lang geen bouwwerk. Het gaat om architectuur in de zin van door-en-door samenhang. De reële variëteit is pas beheersbaar vanuit stelselmatig perspectief.

 

 

3. Praktische aanname: betekenis is principieel contextueel verbijzonderd

Wat wij in dit tijdperk meemaken, is opschaling van operationele digitale techniek. Het Internet is exemplarisch voor de wereldwijde schaal waarop de techniek thans interoperabel werkt. Daarmee blijken voorzieningen in het semantische vlak echter geen gelijke tred gehouden te hebben.
Het voert hier te ver om initiatieven zoals OWL en CCTS in detail te bespreken. Mijn kritiek komt in essentie op het volgende neer. Dergelijke inrichtingsaanbevelingen, respectievelijk standaarden gaan onverminderd uit van contextvrije begrippen. Van een begrip tellen voor een specifieke toepassing dan dito specifieke eigenschappen die geselecteerd zijn uit de totale eigenschappenverzameling van het begrip in kwestie.
Inderdaad bestaat een lange filosofische traditie die past bij zo’n benadering. Bijvoorbeeld het logisch atomisme komt erop neer. Dat geldt ook voor de fenomenologie, althans de variant die het objectieve wezen laat kennen door eidetische schouw.
Kenmerkend voor postmodernisme is dat onherroepelijke onverenigbaarheid van betekenissen kan bestaan. Daar gaat dus de aanname van contextvrije betekenis. Want onverenigbare betekenissen kunnen nu eenmaal onmogelijk aan een contextvrije verzameling met eigenschappen ontleend zijn. Let wel dat het er praktisch helemaal niet om gaat, of er geen ènkel contextvrij begrip voorstelbaar is. Wat voor consistente operationele voorzieningen telt, is dat er óók onverenigbare betekenissen bestaan. Daaruit volgt dat logisch atomisme e.d. ongeschikt zijn als grondslag voor voorzieningen voor semantische variëteit inclusief onverenigbaarheid. Mocht een bepaald begrip wel degelijk contextvrij gelden, dan past ook dàt prima volgens het schema van contextuele verbijzondering. Dat lukt door er bijvoorbeeld de context nihil oid. aan toe te kennen.
Op wat tegenwoordig allang de praktische schaal van interoperabiliteit is, blijkt de omgekeerde aanname van principiële contextuele verbijzondering van èlke betekenis vruchtbaar. Daarop is ook een methode voor conceptuele informatiemodellering, zeg ook maar semantiek, op open stelselschaal gebaseerd: Metapatroon (Engels: Metapattern). Voor evenwichtige positionering van Soa doe ik daarop een beroep.

 

 

4. Dienstenclassificatie

Voor dit artikel onthoud ik me van beoordeling van concrete platforms e.d. die leveranciers met verwijzing naar Soa aanbieden. Algemeen geldig behandel ik thema’s die geïnspireerd zijn door vanuit noodzakelijke samenhang te kijken naar informatievoorziening. Gemakshalve begin ik daarvoor met de veronderstelling dat een bepaalde informatiebehoefte door een ènkele dienst vervulbaar is.
Het woord dienst zegt het eigenlijk al. Passende dienstenvariëteit strookt met reële behoeftenvariëteit. Een specifieke behoefte is vervuld door een dienovereenkomstig resultaat. Aldus bestaat de dienst uit informatie als het beoogde resultaat. Daarvoor moet echter praktisch iets gebeuren, zodat het duidelijker is om onderscheid te maken tussen dienst-als-proces en dienst-als-resultaat. Met de behoeftestelling als een gerichte vraag, levert de dienst-als-proces (lees ook: bedrijfsregels) als àntwoord de dienst-als-resultaat.
Een programmatuurmodule die tussen vraag en antwoord gepositioneerd is, vervult een contract. Een concreet contract is bepaald door specifieke zgn ex-ante (vraag) en ex-post voorwaarden (antwoord). Een andere behoefte vergt een ander contract, dat op zijn beurt een andere dienst betekent. Hieruit volgt dat contract, althans voor zo’n programmatuurmodule, correspondeert met context. En ordening van contracten kan die voor behoeften volgen, waarvan de associatie met contexten nog sterker is.
Zo past bijvoorbeeld polymorfisme volgens objectgerichtheid. Weliswaar kunnen afwijkende methoden dezelfde naam dragen, maar één methode geldt steeds eenduidig als ingekapseld in een specifiek object(type). Dat object(type) is dus onderdeel van de relevante context van de methode in kwestie.
Hoezeer object- en dienstgerichtheid overeenkomen, laat zich illustreren door het vroege werk van Alan Kay. Bekend als ontwerper van Smalltalk, noemde hij de eenheid voor inkapseling van gedrag aanvankelijk geen object, maar activiteit (sic!).
De nadruk op behoeften vanuit het perspectief van, zeg maar even, gebruikers legt een bron van verwarring bloot. Stel dat iemand wil weten hoeveel 2 plus 3 is. En dat hij even later het antwoord zoekt op de vraag van 2 plus 5. Dat zijn inderdaad twee verschillende informatiebehoeften. Wij zijn echter gewend geraakt, want wij hebben geleerd om het allebei als optellen te beschouwen. Dergelijke verdichting tot één dienst vergt echter tevens navenante uitbreiding van de ex-ante voorwaarden. Met nog aparte diensten voor elke concrete optelling, zaten de relevante getallen steeds a priori in de module. Met één optelmodule moeten de getallen in kwestie expliciet worden opgegeven. Nogmaals, de totale variëteit blijft ongewijzigd.
Dit simpele geval kan iedereen zó volgen. Daarop mogen ontwikkelaars van middelen voor informatievoorziening echter niet blijven rekenen. Wat zij ter optimalisering van hergebruik tot dienst verdichten, vinden zgn gebruikers gauw onbegrijpelijk. Hùn concrete behoeften herkennen ze niet meer op basis van wat zij blijkbaar als variabelen voor een algemene(re) functie moet opvatten.
Wezenlijk verandert het woord dienst niets aan dit reële communicatievraagstuk. Retoriek kan nooit verhullen, dat classificatie volgens objecten, diensten e.d. inzicht vergt in optimale exploitatie van digitale technologie. Omgekeerd zijn ontwikkelaars vaak belemmerd door hùn vooringenomenheid, waardoor zij het feitelijke gebruiksmiddel teveel als doel op zichzelf kiezen. Het gevaar dreigt, dat zij wèrkelijke verschillen volgens reële behoeften veronachtzamen. Een bepaalde vraag kan gauw afgedaan zijn met “oh, dat is ook gewoon optellen.” Tegelijk missen ontwikkelaars stellig kansen voor veralgemenisering. Zolang de interpretatie van een antwoord, nota bene context, duidelijk genoeg gevoed is, zou bijvoorbeeld optelling als proces weleens prima kunnen voldoen voor wat geabstraheerd eveneens die vorm draagt.

 

 

5. Ontleding, orkestratie enzovoort

Een belangrijk deel van de rechtvaardiging van modularisering is dat modules vaak niet strikt atomair blijven. Het is dus meestal niet zo, dat slechts een lineaire tijdvolgorde geldt waarbij de ene module zijn werk voltooid vóórdat een andere module aan de slag gaat, enzovoort.
Samenhang blijft nog betrekkelijk overzichtelijk bij strikt hiërarchische ontleding. Dan is er zoiets als een hoofdmodule, die op zijn beurt twee of meer deelmodules telt waartussen nog wel lineair verloop bestaat. Eventueel is zo’n deelmodule vergelijkbaar samengesteld uit verdere deelmodules, totdat sprake is van — vooralsnog — rudimentaire modules annex diensten. Daarbij is het mogelijk dat in diverse ontledingshiërarchieën dezèlfde module/dienst verschijnt. Als dat gebeurt, past daarvoor de aanduiding aspectgerichtheid.
Hoe danook roept verbijzondering tot aparte diensten de behoefte op aan voorzieningen voor beheersing van samenhang. Dat staat bekend als orkestratie.
Vanuit gebruikersperspectief vertegenwoordigt een bepaalde instantie van orkestratie echter nu nèt zijn behoefte. Daardoor is het zelfs logisch om orkestratie niet buiten het dienstconcept te laten, maar om het er nadrukkelijk in te laten meespelen. Het idee is om het bereik van ontleding, respectievelijk samenstelling zo ruim mogelijk te nemen. Het eerder praktische onderscheid volgens toepassing en besturingssysteem verliest o.a. door consequente aspectgerichtheid zijn waarde en dreigt zelfs contraproductief uit te pakken.
Voor communicatie met gebruikers is arrangement eigenlijk een beter woord dan orkestratie. Want in arrangement zit meteen de specifieke instantie besloten. Een arrangement, kortom, is óók een dienst.
De methode voor classificatie van diensten moet uiteraard passende variëteit bieden voor zowel verbijzondering van, als samenhang tussen diensten. Dat lukt allereerst door context niet langer te beschouwen als een externe markering. Context, met andere woorden, is óók informatie en maakt daarom integraal onderdeel van stelselmatige informatievoorziening uit. Vervolgens verdient context in het informatiestelsel geen aparte status, maar juist principieel een betrekkelijke. Neem een simpel geval van ontleding. Module a kent modules b en c als samenstellende delen, terwijl module b op zijn beurt bestaat uit modules d en e. Voor e is dan de geordende verzameling a en b ‘zijn’ context. Maar òp het punt b zèlf, is b natuurlijk geen context meer, maar geldt slechts a als zodanig.
Metapatroon biedt aldus zoiets als de informatiekundige relativiteitstheorie. Afhankelijk van de gebruiker kan de informatiebehoefte variëren en dienovereenkomstig wat informatie betekent, respectievelijk van een informatiedienst wordt verlangd.

 

 

6. Schaal en precisie

De vergelijking met de relativiteitstheorie voor de fysica is hier niet uit de lucht gegrepen. Daarvoor gold immers de ambitie om verschijnselen op een ruimere schaal te verklaren. Dat vergde nadere precisie van de theorie.
Voor diensten à la Soa wordt eveneens een ambitieus bereik geclaimd. Daarvoor is echter een passend gepreciseerde theorie onontbeerlijk. Zo’n theorie is voorhanden dankzij het beginsel van contextuele verbijzondering dat recursief toepasbaar is. Dankzij recursieve relativiteit resulteert één theorie voor classificatie van informatie en de bijbehorende diensten-als-proces.

 

 

7. Authenticatie, autorisatie en beveiliging

Dankzij zo’n relativiteitstheorie voor semantiek passen voorheen meestal apart opgezette voorzieningen in één en hetzelfde referentiekader met alle voordelen van hergebruik e.d. van dien. Authenticatie? Dat is natuurlijk ook vatbaar voor dienstbenadering. Zo zijn de subjecten stellig elders reeds bekend. De complete dienst-als-proces laat zich uiteraard ontleden. Deelmodules ofwel –diensten blijken deels elders reeds ontwikkeld, zodat (ook) authenticatie het karakter van een specifiek arrangement kan verkrijgen.
In het verlengde van authenticatie ligt meteen autorisatie. De geauthenticeerde gebruiker, althans de identificatie ervan, vormt mede de context van zijn bevoegdheden. Gelet op de stelselmatige informatieruimte, over welke informatie(diensten) kan hij beschikken, of juist niet?
Beveiliging is aldus nauw verwant met autorisatie. Toen een toepassing nog als het ware een geïsoleerde doos was, bestond beveiliging uit versteviging, bewaking e.d. van de buitenkant van die doos. Volgens het paradigma van informatieverkeer bestaan zulke aparte dozen niet langer. Verkeersveiligheid vergt kwalitatief andere maatregelen. Het beveiligingsobject moet de informatie zèlf zijn, dat dus zonodig versleuteld moet zijn en ontsleuteld moet kunnen worden. Voor, respectievelijk door wie? Dat ligt natuurlijk precies in lijn met contextueel verbijzonderde autorisatie.

 

 

literatuur

Forum Standaardisatie, Semantiek op stelselschaal, issues en oplossingsrichtingen, M. Abrahamse, P.E. Wisse en P. Oude Luttighuis (samenstellers), juni 2009, in het Nederlands.
Kay, A., Microelectronics and the Personal Computer, in: Scientific American, 1977. Tevens opgenomen in: Object-Oriented Computing (volume 1: Concepts), G.E. Peterson (samensteller), IEEE, 1987.
Wisse, P.E., Metapattern: context and time in information models, Addison-Wesley, 2001.

 

 

28 juli 2009, webeditie 2009 © Pieter Wisse