In de vorige blogpost bespraken we dat je met een ESB kan voorkomen dat je ict-landschap verandert in een wirwar van verbindingen en applicaties. Maar hoe voorkom je nu dat de ESB zélf verandert in een spaghetticode vol onduidelijke verbindingen? Wij gebruiken hiervoor het canonical model. In een canonical model leg je vast hoe je bepaalde velden die door de ESB gaan, definieert. Het is dus een ontwerpafspraak. Het grootste voordeel is dat je hierdoor gegevens heel makkelijk kunt hergebruiken.

Door: Michiel van der Winden

Wat is een canonical document?

Een canonical model bestaat uit canonical documenten. Een canonical document is een generieke datastructuur (een specifieke ‘ontwerpafspraak’ of ‘definitie’) die hergebruikt kan worden voor alles dat op een ESB gebeurt. De ontwikkelaars die gebruikmaken van een ESB, bepalen onderling welk canonical document zij inzetten voor welke koppeling. Vervolgens bepalen ze welke data hierin wordt vastgelegd. Omdat dit onderling gebeurt en de ontwikkelaars de naamgeving van de velden zelf bepalen, resulteert dit in een consistente en duidelijke manier van werken. Dit is ideaal voor een ict-omgeving waarin een spaghetti-architectuur op de loer ligt.

Het gebruiken van een canonical model

Om een canonical model optimaal te gebruiken, moeten ontwikkelaars onderling afspraken maken en deze documenteren. De ontwikkelaars bepalen bijvoorbeeld dat het canonical formaat op een uniforme manier de data vastlegt en alle nodige velden weergeeft. Een simpel voorbeeld is adresdata. Een adres bestaat uit een straatnaam, huisnummer, postcode etc. Om er zeker van te zijn dat het canonical formaat kan samenwerken met andere formaten, kiezen wij er bijvoorbeeld voor om het huisnummer en de straatnaam apart van elkaar op te nemen in het document zodat we deze, indien nodig, later weer kunnen samenvoegen.

Canonical

Figuur 1: Een versimpelde koppeling van een CRM-systeem naar een webshop via een canonical formaat.

Zoals uit figuur 1 blijkt, gebruiken wij een canonical document als ‘tussenstation’ tussen twee bestandsformaten. In dit geval gaat het om een bericht uit een CRM-systeem dat getoond moet worden in een webshop, waarbij beide formaten (totaal) niet overeenkomen. De data van het individu zoals in het CRM staat, kan via de canonical in één keer worden omgezet naar andere formaten, omdat we voor elk doelbestand een eigen mapping hebben aangelegd.
Een bijkomend voordeel van deze aanpak is dat we slechts eenmaal de oorspronkelijke mapping vanuit het bronbestand hoeven aan te leggen en dit scheelt de helft van het werk bij het doorzetten van deze data naar andere systemen. Bovendien voorkomen we hiermee ‘duplicate code’: een reeks broncode die meer dan eens voorkomt. Met de canonical is de transformatie van een bronsysteem naar alle gekoppelde doelsystemen veel efficiënter en makkelijker.

Canonical

Figuur 2: Meerdere doelformaten creëren vanuit dezelfde canonical.

Waar op te letten bij het gebruik van een canonical

Zodra jij binnen je organisatie een canonical structuur wil gebruiken, moeten de betrokkenen communiceren over de opbouw ervan. Zij moeten bepalen welke gegevens en naamgeving ze willen hanteren en, bovenal, ze moeten documenteren welke velden welke data gaan bevatten. Hierbij moeten ze zo min mogelijk ambigue namen gebruiken om verwarring te voorkomen tijdens de ontwikkeling; het is een vervelend werkje om telkens weer te moeten bedenken of het klantnummer in “CustomerID”, “CustomerNumber” of tóch “PersonNumber” moet komen.

Tot slot

Wij raden het gebruik van een canonical ten zeerste aan. Met een canonical model is de transformatie van een bronformaat naar alle gekoppelde doelformaten veel efficiënter en makkelijker. Daarnaast zorgt een canonical voor duidelijkheid bij de ontwikkelaars en minimaliseert het ‘t bekende probleem van duplicate code. Zolang de betrokkenen alle communicatie en documentatie goed onderhouden, is het gebruik van canonical documenten altijd een waardevolle toevoeging aan een ESB.

Kunnen we u helpen?

Wilt u meer weten over onze systeemintegratie-diensten? We werken dag in dag uit met integratie en helpen u uiteraard graag met al uw vraagstukken op ict-gebied. Bel met Peter Perebooms op: 06-45 34 40 46 of stuur een e-mail naar: info@inQdo.com.

iso 27001 & isae 3402 certificaat inQdo BV

simplifying cloud and integration together

inQdo B.V.

Coltbaan 1-19

3439 NG Nieuwegein

info@inqdo.com

+31 85 2011161

Verzend