Verbinden binnengemeentelijke componenten

Categorie:GEMMA Patronen
Binnengemeentelijk worden componenten op allerlei vlakken met elkaar verbonden. Denk bijvoorbeeld aan een baliecomponent die voor het opvragen van persoonsgegevens gebruik maakt van een gegevensmagazijncomponent of een informatiesysteem wat documenten opslaat in een documentmanagementsysteem. Dergelijke integratie van systemen kan tot stand worden gebracht door directe integratie tussen de systemen (zogenaamde point-to-point verbindingen) koppelingen of via een verbindend servicebuscomponent. In beide varianten is het mogelijk om de integratie via standaard koppelvlakken of leverancier-specifieke koppelvlakken tot stand te brengen.
Het koppelen via point-to-point verbindingen leidt al snel tot een complex en onoverzichtelijk landschap waarover de gemeente niet meer in-control is. Potentieel leidt dit bij n applicaties tot (n*(n-1))/2 koppelingen. Point-to-point koppelingen zijn kwetsbaar doordat ze vaak niet goed gedocumenteerd zijn, of niet bekend zijn. Bij verstoringen is het oplossen van problemen daardoor vaak ingewikkeld. Om deze redenen wordt deze wijze van binnengemeentelijk integreren van informatiesystemen door VNG Realisatie afgeraden. Ook het integreren via leverancier-specifieke koppelvlakken wordt door VNG Realisatie afgeraden. Reden hiervoor is dat het implementeren van leverancier-specifieke koppelvlakken leidt tot specifieke koppelingen waarmee afhankelijkheid richting een specifieke leverancier in de hand wordt gewerkt. Het inzetten van gestandaardiseerde koppelvlakken heeft te allen tijde de voorkeur. Om redenen van flexibiliteit in de informatiearchitectuur en leveranciersonafhankelijkheid heeft het de voorkeur om te integreren via koppelvlakstandaarden.
=== Beschrijving GEMMA patroon ===
Aanbevolen wordt om voor het binnengemeentelijk integreren van informatiesystemen gebruik te maken van webservices, koppelvlakstandaarden en de diensten van een servicebuscomponent. De inzet van deze beide elementen garandeert flexibiliteit en overzicht in de informatiearchitectuur en draagt bij aan het in control zijn van de informatiearchitectuur. 
Vanuit de GEMMA architectuur wordt aangeraden om servicekoppelingen tussen informatiesystemen uitsluitend via goed gedefinieerde eindpunten te laten verlopen. Een eindpunt levert een beschrijving die wordt gebruikt om een bericht naar te adresseren en wordt beschreven in een WSDL (Web Services Definition Language). Een WSDL-document is een XML-document dat het uiterlijk van een webservice beschrijft. Het beschrijft het de syntax en structuur van het bericht waarmee de webservice aangesproken kan worden en beschrijft het bericht dat de webservice als antwoord geeft. In het groter geheel wordt het WSDL document meegeleverd met de webservice wanneer deze zich inschrijft in een serviceregistercomponent, zodat de afnemers van de webservice weten hoe de service werkt.
Aanbeveling is om bij dit patroon altijd een servicebuscomponent in te zetten als intermediair tussen Informatiesysteem A en Informatiesysteem B. Inzet van een servicebuscomponent heeft een aantal voordelen:
* Goede mogelijkheden voor het centraal monitoren van koppelingen;
* Mogelijkheid voor toepassing van centrale authenticatie en autorisatie;
* Mogelijkheden tot routering en orkestratie van serviceaanroepen;
* Transformatie van gegevens.
Onderstaande figuur geeft de integratie van twee informatiesystemen via de gemeentelijke servicebus schematisch weer Modellering conform de Archimate best practices.. De relatie tussen de twee informatiesystemen wordt hierbij gelegd door een service die door de servicebuscomponent wordt geleverd.
=== Aandachtspunten ===
Aandachtspunt bij dit patroon is het feit dat de servicebuscomponent potentieel een single-point-of-failure in de informatievoorziening kan worden. Gevolg van de uitval van de servicebuscomponent zou uitval van een groot aantal koppelingen veroorzaken, en daarmee een risico vormen voor de continuïteit van de dienstverlening. Maatregelen dienen getroffen te worden om dit te voorkomen. Hierbij kan bijvoorbeeld gedacht worden aan het dubbel uitvoeren van de servicebuscomponent en het beschrijven van procedures die gevolgd moeten worden in geval van uitval van de servicebuscomponent.
=== Standaarden ===
Uitgangspunt bij het integreren van binnengemeentelijke informatiesystemen is dat deze integratie zoveel mogelijk gebaseerd is op via StUF gestandaardiseerde koppelvlakstandaarden. Voorbeelden hiervan zijn de GEMMA zaak-document services en e-formulier en RSGB bevragingen services. De servicebuscomponent dient deze verschillende koppelvlakstandaarden te ondersteunen.