In de moderne ict-wereld is iedereen druk met systeemintegratie, en in het kader daarvan met canonical data models (cdm’s). Een cdm kan helpen om de vraag naar effectieve communicatieprocessen en een flexibele informatievoorziening op te lossen. Het concept van cdm wordt echter vaak verkeerd begrepen, waardoor de kans bestaat dat het verkeerd wordt toegepast.
Een canonical data model is een gegevensmodel dat bedoeld is om een bedrijfsbrede scope te hebben, en zo algemeen geaccepteerd mogelijk te zijn, binnen de kaders van de gekozen ambitie en de beschikbare middelen. De eisen die tegenwoordig aan bedrijven gesteld worden door klanten, regelgevende organisaties en zakenpartners zoals leveranciers vragen om effectieve communicatieprocessen, zowel intern als extern, en een flexibele informatievoorziening. Een cdm kan helpen aan deze vraag te voldoen. Een voorwaarde voor succes is echter een juiste toepassing van het concept.
Cdm als middel tot loose coupling
In de literatuur wordt voornamelijk één toepassing van cdm’s behandeld: het gebruik van het cdm als middel tot ‘loose coupling’ in een middleware-product zoals een enterprise service bus. Loose coupling is het onderling met minimale afhankelijkheden verbinden van componenten. Door de componenten bijvoorbeeld alleen af te stemmen op wat gecommuniceerd moet worden (de semantiek van de gegevens dus) wordt de mate van afhankelijkheid tussen de componenten verkleind. Het gevolg hiervan is een grote flexibilisering van de informatievoorziening. Dit is zonder twijfel een zeer interessante toepassing, die een grote stap kan betekenen in het flexibiliseren van de informatievoorziening van een organisatie. De potentie van een cdm is echter veel groter dan die van deze toepassing alleen. Een cdm kan op verschillende manieren gebruikt worden. Het kan dienen als gegevenscatalogus. Ter ondersteuning van hergebruik van bedrijfsgegevens geeft het cdm inzicht in welke bedrijfsgegevens ter beschikking staan, waar zij zich bevinden, hoe ze gestructureerd zijn, en mogelijk ook wat hun kwaliteit is en welke regels er gelden ten aanzien van autorisatie, bedrijfsgevoeligheid en privacy.
Daarnaast kan het dienen als semantisch gegevensmodel en als gemeenschappelijke bedrijfstaal. Een belangrijke oorzaak van miscommunicatie is wat het ‘semantische probleem’ genoemd wordt; miscommunicatie doordat partijen zich niet bewust zijn van het feit dat ze berichten op verschillende manieren interpreteren. Het cdm geeft gestandaardiseerde interpretaties (definities) van termen (cdm als Gemeenschappelijke Bedrijfstaal) en van gegevensrepresentaties (cdm als Semantisch Gegevensmodel). Het cdm kan inzicht geven in bestaande semantische verschillen (disharmonie) die tot miscommunicatie kunnen leiden, en het kan helpen deze problemen op te lossen.
Verder kan een cdm dienen als Gegevensmodelcatalogus. Ter ondersteuning van hergebruik van gegevensmodellen biedt het cdm een verzameling van gegevensmodellen van een bepaald domein, met een bepaalde status. Deze modellen kunnen vele toepassingen hebben, bijvoorbeeld in het ontwerp van nieuwe componenten.
Als laatste kan het cdm gebruikt worden als ‘Thermometer Informatievoorziening’. Om behulpzaam te zijn bij verbeteringstrajecten geeft het cdm inzicht in waar in de informatievoorziening knelpunten en kansen liggen. Hierbij valt te denken aan onoverbrugbare gegevensdisharmonie, ongewenste dubbele gegevensregistraties, hiaten in de gegevensverzameling en onvoldoende gegevenskwaliteit.
Voor deze toepassingen kunnen aparte gegevensmodellen worden gemaakt. Het is echter niet aan te raden om meerdere overlappende, organisatiebrede gegevensmodellen naast elkaar te maken en te beheren. Dat is een dure zaak en zal leiden tot veel inconsistenties. Het cdm beoogt het ene gegevensmodel te zijn dat al deze toepassingen kan ondersteunen.
Externe standaarden in het cdm
Een veelgehoord idee over het maken van een cdm is, dat het één-op-één en in zijn geheel implementeren van externe gegevens- of communicatiestandaarden in je cdm een goede methode zou zijn om je cdm op te bouwen.
Cdm’s en externe gegevens- of communicatiestandaarden zijn beide verzamelingen van overeenkomsten, ‘standaarden’, die ingezet kunnen worden in een ‘loosely coupled’ communicatieproces. Er bestaan echter ook verschillen .Zie hiervoor het overzicht ‘Verschillen tussen Canonical Data Models en Externe Standaarden.
Deze verschillen vragen om verschillende toepassingen van de desbetreffende standaarden. Het doel van externe standaarden is de communicatie tussen bedrijven te verbeteren, niet om je organisatie intern te standaardiseren. Dit idee is vergelijkbaar met het doel van de kunstmatige taal Esperanto. Het doel daarvan was niet de bestaande natuurlijke talen te vervangen, maar mensen een tweede taal te bieden, een standaardtaal voor communicatie tussen mensen die verschillende moedertalen spreken.
Doordat externe standaarden niet gericht zijn op behartiging van je eigen organisatiespecifieke belangen moeten ze niet zomaar één-op-één in een cdm geïmplementeerd worden. De enige juiste manier om externe standaarden te gebruiken voor het opbouwen van een cdm is door interessante delen te identificeren, te screenen op wenselijkheid en consistentie met overige regelgeving en als ‘geleend idee’ in te bouwen in het cdm. Dit moet gebeuren volgens de bestaande constructieprincipes die voor dat cdm gelden. Op deze manier kan de organisatie haar zelfbeschikking en haar eigen identiteit behouden, en kan zij zelf haar concurrentiestrategie bepalen.
Na het lenen van een idee moet de afhankelijkheidsrelatie tussen de externe standaard en haar implementatie in het cdm meteen verbroken worden (zie figuur ‘Het principe van lenen en vergeten’). Het behoud van deze relatie staat zelfbeschikking en flexibiliteit in de weg. Wijzigingen in de externe standaard of een keuze voor een alternatieve standaard moeten dan namelijk ook doorgevoerd worden in het cdm. Bovendien kan het cdm pas gewijzigd worden indien ook de desbetreffende externe standaarden mee veranderen, iets wat je niet kunt afdwingen.
Er bestaan nog twee redenen waarom externe standaarden niet zomaar één-op-één in een cdm geïmplementeerd kunnen worden. De eerste reden is dat standaarden onderling inconsistent kunnen zijn. Hierdoor kun je een externe standaard nooit blindelings in je cdm inbouwen. Een oorzaak hiervan is, dat veel standaarden meer dan één dimensie standaardiseren, bijvoorbeeld naast de gegevens zelf ook de structuur van de berichten waarin ze opgenomen worden, de taal die voor communicatie gekozen wordt (bijvoorbeeld xml) en de manier waarop daarin gemodelleerd moet worden (‘best practices xml’). Een oplossing is losse ideeën uit de externe standaarden te ‘lenen’ die geen dimensiegrenzen overschrijden.
De tweede reden is dat externe standaarden vaak niet goed gestandaardiseerd zijn op het gebied van bedoelde gegevensinterpretatie (semantiek). Ze zijn daardoor zelf multi- interpretabel. Dit uit zich onder andere in het feit dat de gebruikers ze op semantisch gebied vaak toch nog op hun eigen manier interpreteren (en gebruiken), ondanks het feit dat die standaarden toch ‘standaard’ zijn.
Standaardiseren van componenten met het cdm
De derde mythe gaat ervan uit dat het verstandig zou zijn om het cdm te gebruiken om functionele componenten (applicaties, web services, databases enzovoorts) te standaardiseren.
Een cdm, of een deel daarvan, kan gebruikt worden als gegevensmodel voor een ontwerp van een geautomatiseerde informatievoorzieningcomponent. Hiermee kan men snel en goedkoop een ontwerp voor een aan te schaffen of te bouwen component beschikbaar hebben. Hergebruik van gegevensmodellen is in principe een goede zaak. De relatie tussen het cdm en de implementatie van de geleende ideeën in de componenten moet dan wel direct na het lenen verbroken worden, zodat beide weer ontkoppeld worden. Anders zal de afhankelijkheid leiden tot de starheid in de informatievoorziening die je juist kwijt wilt raken.
Een ander doel dat bij het hergebruik van een cdm kan gegevensharmonisatie zijn. Componenten kunnen alleen goed met elkaar communiceren als ze in harmonie zijn. Dat betekent dat ertussen de componenten ofwel geen verschillen zijn in de semantiek, structuur en vorm van de gegevens, ofwel dat zulke verschillen overbrugd worden tijdens het communicatieproces.
Deze twee mogelijke situaties kunnen worden bereikt met twee overeenkomstige harmonisatiestrategieën: gegevensstandaardisatie en gegevenstransformatie en –translatie (zie figuur ‘Drie verschillende strategieën voor gegevensharmonisatie’, onderdelen A en B).
De essentie van het loose coupling-concept is om het idee van ‘lokale vrijheid en centrale functionele afstemming’ met volle overtuiging te omarmen. Je wilt juist dat lokale partijen de vrijheid hebben om hun belangen zo goed mogelijk te behartigen, zonder daarbij onnodig beperkt te worden door partijen waarmee gecommuniceerd moet worden. De afstemming moet daarom beperkt worden tot functionele zaken. Het doel van dit concept is het verkrijgen van flexibiliteit.
Als je het cdm gebruikt als middel om de decentrale componenten zelf te standaardiseren, dan ga je aan het idee van loose coupling voorbij. Het gevolg is een starre informatievoorziening.
Een voordeel van interne componentstandaardisatie is prestatiewinst door het minimaliseren van benodigde gegevenstransformaties en –translaties. Dit voordeel staat echter niet in verhouding tot het voordeel dat het loose coupling-mechanisme biedt: flexibiliteit van de informatievoorziening. Dit geldt voor zowel standaardisering van de ‘interne functionaliteit’ als voor standaardisering van de ‘communicatie-interface’ van de componenten.
De essentie van de standaardisatiestrategie is om ‘onderlinge verschillen op te heffen’. Het idee dat je alles kunt standaardiseren (overal overeenstemming over kunt krijgen) is echter achterhaald. Het is zeer de vraag of je een dergelijk sterke mate van standaardisatie wel na moet willen streven.
Gelukkig kan gegevensharmonisatie ook in de geest van het loose coupling-principe tot stand gebracht worden. Daartoe worden de genoemde harmonisatiestrategieën A en B gecombineerd tot C: ‘standaardisatie’ van een centrale component in plaats van de decentrale componenten en ‘overbrugging’ tussen decentrale componenten enerzijds en de centrale component anderzijds (zie figuur ‘Drie verschillende strategieën voor gegevensharmonisatie’, onderdeel C). Loose coupling is eigenlijk niets anders dan het overbruggen van verschillen tussen communicerende componenten via een gestandaardiseerde ontkoppelingscomponent, gespecialiseerd in harmonisatie.
Aanbevelingen
Maak de opzet van een cdm geschikt voor alle toepassingen van gegevensmodellen.
– Omarm het idee van loose coupling met overtuiging, en standaardiseer externe componenten alleen daar waar het goed kan en zinvol is.
– Beschouw het cdm als een eigen, organisatiebreed model waarin een gegevensvisie op de organisatie gemodelleerd wordt, rekening houdend met eigen cultuur en identiteit.
– Maak zoveel mogelijk gebruik van externe standaarden. Besef daarbij dat hun primaire plaats een externe is, vanuit je organisatie gezien, net zoals die van een ‘proprietary format’ tussen eigen componenten.
Externe standaarden kunnen prima gebruikt worden als ideeënbron voor het opstellen van een cdm. Het motto hier is: ‘Beter goed gestolen dan slecht verzonnen!’ Let daarbij dan wel op de volgende punten: gebruik externe standaarden niet 1:1 om organisatie- interne zaken te standaardiseren of modelleren, maar om ideeën daarvoor te lenen.
– Wanneer je een idee leent, verbreek dan meteen de afhankelijkheidsrelatie tussen de component die het idee uitleent en de component die het idee leent (zie figuur ‘Het principe van lenen en vergeten’).
– Ben je bewust van het feit dat veel standaarden niet één, maar meerdere dimensies van communicatie tegelijk standaardiseren. Het overnemen van een dergelijke standaard kan leiden tot inconsistenties met andere standaarden of richtlijnen. Gebruik standaarden die dat niet doen, en anders standaarden waarbij de dimensies gemakkelijk van elkaar losgekoppeld kunnen worden. Leen alleen ideeën die geheel binnen één dimensie vallen.
– Modelleer de semantiek van jouw visie op de gegevensbeschrijvingen van de externe standaard, zodat eventuele interpretatieverschillen herkend en bespreekbaar worden.
– Word lid van alle standaardiseringinstanties die voor jouw organisatie relevant zijn en lever een actieve bijdrage aan het opstellen van de standaarden, zodat je ervoor kunt zorgen dat de standaard aansluit op jouw wensen ten aanzien van externe communicatie.
Maarten Bernards, NS
Hallo Maarten,
een mooi verhaal. En nu samen werken aan de toepasbaarheid.
Hierbij een korte beschrijving voor een alternative Theorie voor “Canonical Data Models” welke gebaseerd is op Informatie-Theorie, dus met een degelijk theoretisch fundament dat aansluit bij de Informatie Theoretische modellen van Informationprocessing en -Communication.
Met name de integrale modellering van Informationstorage,
-communication en -processing met behulp van 1 Theorie namelijk de Informatie Theorie is een groot voordeel van deze benadering.
“An Information-Lossless Data Theory for Relational Information Systems.
Relational information systems, systems that can be represented by tables of finite states, are commonly used in many areas such as relational
databases. Decomposition is a natural method of handling complex systems and removing redundancies. It splits a table into a network of smaller, simpler, and interrelated new tables. In order to preserve the original features of the system, any valid decomposition must be lossless. Commutative partitions play an important role in the decomposition. The commutative property is essentially a general algebraic formulation of independency of two partitions.
Shannon?s entropy can be adopted to quantify the amount of information contained in each partition, and can formulate the information-lossless decomposition by the entropy conservation identity. It can be shown that the general formulation of information lossless decomposition of relational systems is given by the entropy inclusion exclusion equality. Applications of these formulations to relational databases are used to manifest the information-lossless decomposition processes.”
Maarten,
In het artikel wordt verwezen naar een figuur die ik niet zie staan :
(zie figuur ?Drie verschillende strategie voor gegevensharmonisatie?, onderdelen A en B)
Waar kan ik de figuur terugvinden ?
Hallo Marcel, sorry voor de late reactie. Als je nog geinteresseerd bent, stuur dan even je e-mailadres, dan mail ik de figuur. Voor vragen en opmerkingen houd ik me aanbevolen!