Architectuur
C4 diagrammen en meer...
Introductie
IKO fungeert als een API-gateway voor zowel Klantbeeld als Objectbeeld, en combineert gegevens uit meerdere bronnen tot één uniforme respons. De architectuur is vergelijkbaar met die van een lichte GraphQL-server: het levert samengestelde (geaggregeerde) antwoorden, zonder de bijbehorende complexiteit of overhead.
IKO is gebaseerd op het krachtige Apache Camel-framework en wordt ontwikkeld in Kotlin — een moderne, expressieve programmeertaal voor de JVM. Hierdoor is IKO zeer flexibel en eenvoudig uit te breiden, met robuuste ondersteuning voor uiteenlopende integratiepatronen.
Standaard wordt de OpenAPI-specificatie gebruikt als basis voor introspectie en implementatie van bronnen. Voor bronnen zonder OpenAPI-specificatie — zoals SOAP-services of andere niet-standaard (non-spec-driven) bronnen — wordt doorgaans een aangepaste, handmatige integratie gerealiseerd.
IKO wordt standaard geleverd met een eerste set direct inzetbare connectors:
OpenZaak
Objects API
HaalCentraal BRP
Domain model (voor developers)
Context diagram
Bronnen (Sources) – Externe systemen waaruit IKO informatie opvraagt. Dit kan van alles zijn: SOAP-services, JSON-API’s, bestanden of andere bronnen

Container diagram

Component diagram
IKO Webapplicatie — Concepten voor developers
Samengesteld gegevensprofiel
Door een beheerder samengestelde zoekstrategie, gericht op het ophalen van informatie voor één specifiek resultaat.
Een entity wordt hierbij gedefinieerd als een uniek identificeerbaar object in één van de gekoppelde bronnen (bijv. BAG, BRP, GBA-V, WOZ).
Voorbeeld: “vind één specifieke werfkelder” → “haal alle bijbehorende BRP-gegevens van de eigenaren op”.
Relaties
Een Relation is onderdeel van het afhandelingsproces binnen een profielroute. Hiermee kan vanuit de initiële entity (bijv. werfkelder) aanvullende zoekroutes worden gekoppeld, waarbij het resultaat als één logisch geheel wordt gepresenteerd. → chained search / linked search pattern.
Zoekopdrachten (Endpoints)
Een endpoints is een operationele zoekactie gericht op precies één specifieke externe bron. Bijvoorbeeld: searchBagByPostCode — een zoekactie op basis van postcode in de BAG-bron. De output is altijd een array van resultaten.
Sommige Endpoints worden als externe API endpoint beschikbaar gesteld — bijvoorbeeld richting het GZAC-zaaksysteem — zodat deze door externe systemen kunnen worden aangeroepen.
Samenvattend:
Samengesteld gegevensprofile → multi-step orchestration, gericht op één resultaat.
Relation → chaining mechanism binnen een profiel.
Endpoint → atomic source query (1 bron), resultaat = array.

Connecter aanpak

Connectors zijn extern ontwikkelde en onderhouden koppelingen waarmee IKO kan communiceren met verschillende systemen. Voorbeelden hiervan zijn bijvoorbeeld BRP en OpenZaak. Deze connectors zijn door Ritense gevalideerd en compatibel met Common Ground, en worden standaard meegeleverd in de eerste release.
Een IKO-editie bevat een gebundelde selectie van dergelijke connectors. Deze wordt als één geheel geleverd, verpakt in een Docker-container.
Gebruikers kunnen op basis van een specifieke connector één of meerdere bronnen aanmaken. Dit maakt het mogelijk om meerdere instanties van hetzelfde type connector naast elkaar te gebruiken (bijv. verschillende OpenZaak-instanties). Elke connector beschikt over een eigen configuratiescherm (gebruikelijk als webinterface gebaseerd op Spring MVC), waarmee specifieke instellingen voor die instantie beheerd kunnen worden. Bijvoorbeeld: de OpenZaak-connector bevat instellingen voor een client-ID en een secret. Technisch gezien worden deze configuraties in het systeem vastgelegd als een lijst van connector-namen in combinatie met omgevingsvariabelen.
Bij het definiëren van een zoekopdracht kan de gebruiker vervolgens:
een specifieke connector-instantie selecteren,
daarbinnen de gewenste bewerking configureren.
De connectors worden beheerd in een aparte software-repository. De IKO-editie zelf fungeert als een centrale monorepository waarin de IKO-productkern én de gevalideerde set connectors samen geïntegreerd worden aangeboden.
Last updated