4. De infrastructuur
Om een federatieve infrastructuur mogelijk te maken, moet (op technisch vlak) aan twee voorwaarden worden voldaan:
Er zijn afspraken nodig over de data (ofwel: standaardisatie)
Er dient software te zijn die (gefedereerd) toegang biedt tot de data.
Het eerste punt wordt beschreven in de secties Benodigdheden voor deelname en De informatiestandaard. Deze sectie gaat kort in op het tweede punt.
4.1. Vantage6 in het kort
Vantage6 is software die federatieve toepassingen mogelijk maakt: het stelt gebruikers in staat om op afstand algoritmen uit te voeren, zonder zelf directe toegang te hebben tot de data van de deelnemende partijen. Dit werkt als volgt.
Een algoritme wordt geïmplementeerd (verpakt) in een Docker image. Daarna wordt het door een gebruiker (bijv. een onderzoeker), samen met (input) parameters, aangeboden aan een (of meerdere) deelnemer(s). Deze deelnemer maakt een Docker container (een soort Virtual Machine) van het Docker image, koppelt deze container aan zijn/haar brondata, en voert de container uit. Het resultaat van het algoritme (d.w.z., de output van de container) wordt teruggekoppeld aan de gebruiker.
Als er meerdere deelnemers zijn, is het noodzakelijk dat de deelnemende partijen (vergaande) afspraken maken over de data die ze beschikbaar stellen. De gebruiker kan de brondata immers niet direct inzien en het algoritme moet “blind” weten in welke tabellen de data staat en hoe deze geïnterpreteerd moet worden.
Vantage6 biedt een infrastructuur om bovenstaand proces (grotendeels) geautomatiseerd uit te voeren en bestaat (grofweg) uit vier componenten:
Een centrale server
Meerdere vantage6 nodes
Gebruikers
Bibliotheek van algoritmen
Deze componenten zullen hieronder kort worden toegelicht. Op vantage6.ai is meer informatie te vinden over vantage6.
4.2. De (centrale) vantage6 server
Voor het goed functioneren van de infrastructuur is een centraal aanspreekpunt noodzakelijk. De server is verantwoordelijk voor zaken als authenticatie en authorisatie, en fungeert als spil in de communicatie tussen nodes en gebruikers. Communicatie verloopt via een (https) REST-api en, indien mogelijk, websockets.
Om meerdere partijen met elkaar te laten communiceren, is in principe maar 1 server nodig. Tijdens de pilot fase wordt om juridische redenen van 3 verschillende servers gebruik gemaakt: DHD, IKNL, en EZA gebruiken alledrie hun eigen server.
Binnen PLUGIN wordt (in eerste instantie) gebruik gemaakt van meerdere servers. Dit is niet vanwege technische noodzaak, maar maakt het maken van (juridische) afspraken makkelijker.
4.3. De vantage6 node(s)
De nodes zijn de werkpaarden van de infrastructuur. Zij onderhouden de communicatie met de server, ontvangen de algoritmen van de gebruikers, en voeren deze uit op de data die ze (lokaal) ter beschikking hebben. Uiteraard vindt (vooraf) controle plaats en worden alleen algoritmen uitgevoerd die (vooraf) zijn goedgekeurd/toegestaan.
De algoritmen worden verpakt in Docker images en opgeslagen in een Docker registry (een bibliotheek voor Docker images). Dit heeft als voordeel dat de infrastructuur programmeertaal-agnostisch is én dat alle afhankelijkheden (zoals software die door derden is geschreven) opgenomen kan worden in het image. Het voorkomt dus ook onnodig werk op gebied van (functioneel) beheer.
De node-software draait in een Docker container. Om interactie met deze container te vergemakkelijken is een command line interface (CLI), geschreven in Python, beschikbaar. Hiermee kan een nieuwe node worden aangemaakt, of een node gestart/gestopt worden (zie ook Installatie vantage6).
4.4. De gebruiker(s)
Eindgebruikers maken gebruik van de infrastructuur. Dit kunnen zowel mensen (onderzoekers) als computerprogramma’s zijn. Zij kunnen, via de centrale server, algoritmen versturen naar de nodes en de resultaten hiervan ontvangen. Hierbij is de communicatie tussen gebruiker en node in principe versleuteld.