Communicatieprotocollen Notificeren

Deze pagina is onderdeel van de Architectuur Notificeren in het Federatief Datastelsel. Op deze pagina wordt een overzicht gegeven van de belangrijkste communicatieprotocollen die relevant zijn voor notificeren. De nadruk ligt daarbij op de bijbehorende standaarden. Er wordt ingegaan op de Digikoppeling koppelvlakstandaard ebMS, de Digikoppeling koppelvlakstandaard REST API's, gRPC, AMQP en webhooks. Na het beschrijven van de standaarden wordt ingegaan op dat wat voorkeur heeft in de context van het Federatief Datastelsel.

Communicatieprotocollenbewerken

Digikoppeling koppelvlakstandaard ebMSbewerken

Deze koppelvlakstandaard is gebaseerd op de ebMS 2.0 standaard (ebXML Messaging Service) voor veilige berichtenuitwisseling. Het is onderdeel van de Digikoppeling standaard, die is opgenomen in de "pas toe, leg uit" lijst van Forum Standaardisatie. De standaard is gebaseerd op de SOAP standaard. Het ondersteunt asynchrone communicatie met functies zoals store-and-forward, betrouwbare aflevering, encryptie en signing. De standaard is vooral gericht op formele, juridische gegevensuitwisseling. Het is relatief zwaar en complex, maar zeer robuust en gestandaardiseerd.

Digikoppeling koppelvlakstandaard REST API’sbewerken

Deze koppelvlakstandaard is gebaseerd op de web-gebaseerde API's die conformeren aan de RESTful principes. Het is onderdeel van de Digikoppeling standaard, die is opgenomen in de "pas toe, leg uit" lijst van Forum Standaardisatie. De standaard is gericht op synchrone communicatie en maakt gebruik van HTTP en de JSON en XML uitwisselformaten. REST API's zijn relatief eenvoudig te realiseren. Het biedt echter standaard geen mechanismen voor het borgen van betrouwbaarheid. De koppelvlakstandaard voegt aspecten van veiligheid toe aan REST API's. Het maakt hiervoor gebruik van de Federated Service Connectivity (FSC) standaard, die voor veilige verbindingen en de mogelijkheid van delegatie van rechten biedt. Er is een handreiking beschikbaar met meer informatie over de FSC standaard. De Digikoppeling koppelvlakstandaard biedt ook ondersteuning voor signing en encryptie.

gRPCbewerken

De gRPC standaard is ontwikkeld door Google als high-performance RPC-framework. Het gebruikt HTTP/2 en Protocol Buffers (Protobuf) voor efficiënte dataoverdracht. Het ondersteunt bi-directionele streaming en lage latency communicatie. Het is daarmee ook zeer geschikt voor microservices en interne systeemcommunicatie. Het is echter wel complexer dan standaard RESTful API's en daardoor minder geschikt voor publieke API's.

AMQPbewerken

AMQP staat voor Advanced Message Queuing Protocol en is dus een gestandaardiseerd protocol voor asynchrone gegevensuitwisseling middels queueing. Het wordt ondersteunt door een grote verscheidenheid aan message brokers. Het biedt betrouwbare aflevering, transacties en bevestigingen. Het past goed op event-driven architecturen en ontkoppelde systemen. Het is complexer dan RESTful API's, maar krachtig voor schaalbare en robuuste messaging.

Webhookbewerken

Webhooks zijn eigenlijk geen communicatieprotocol, maar meer een patroon voor abonneren. Het patroon maakt het mogelijk voor consumers om bij het abonneren aan te geven op welk adres (URL) zij notificaties willen ontvangen. De notificaties zelf zullen als HTTP POST worden verzonden. Er is wel een standaard manier voor het omgaan met webhooks gedefinieerd door de CloudEvent community. Webhooks kunnen worden gecombineerd met een aantal van de hiervoor genoemde communicatieprotocollen, maar passen vooral bij het gebruik van REST API's.

Communicatieprotocollen in het Federatief Datastelselbewerken

In het Federatief Datastelsel is er een voorkeur voor het gebruik van de Digikoppeling koppelvlakstandaard REST API's omdat deze het meest eenvoudig is, goed te beveiligen is en meer modern is dan de Digikoppeling koppelvlakstandaard ebMS. AMQP is lastiger te beveiligen en complexer, waardoor toepassing in de context van het Federatief Datastelsel niet voor de hand ligt. Het zou wel goed binnen de grenzen van organisaties en domeinen toegepast kunnen worden. gRPC zou voor bepaalde use-cases relevant kunnen zijn, als er hoge eisen worden gesteld aan de latency van notificaties. Additioneel geldt een voorkeur voor het gebruik van webHooks conform de richtlijnen uit de CloudEvent community.

Het is duidelijk dat voor het borgen van betrouwbaarheid bij het gebruik van REST API's extra maatregelen moeten worden genomen om deze op een soortgelijk niveau als ebMS te krijgen. Geonovum heeft recent een document geschreven waarin zij daar uitgebreid op ingaan, maar waarin tevens nog open vragen staan. In deze architectuur is een vertaling gemaakt naar richtlijnen voor het creëren van afleverbetrouwbaarheid voor notificaties via API's.