/
Transactiepatronen

Transactiepatronen

Titel

Transactiepatronen

Status

In ontwikkeling ROSA-Architectuurscan BEsluitvorming in beheer

Versie

1.0.0

Datum

27 Mei 2024

Auteur

Architectenraad Edu-V

Acties

  • Geen openstaande acties

In het Afsprakenstelsel Edu-V worden afspraken gemaakt over de uitwisseling van gegevens tussen Leveranciers ten behoeve van digitale leer- en onderwijsmiddelen. Voor de praktijksituaties zijn de concrete gegevensuitwisselingen nader uitgewerkt. Om het Ecosysteem laagdrempelig te houden werken we in de architectuur met een beperkt aantal transactiepatronen voor machine-to-machine (M2M) gegevensuitwisseling.

Deze pagina bestaat uit de volgende inhoud:

Transactiepatronen

Om het Ecosysteem laagdrempelig te houden werken we in de architectuur met een beperkt aantal patronen voor machine-to-machine (M2M) gegevensuitwisseling.

In een patroon worden afspraken gemaakt over:

  • Richting: eenzijdige of tweezijdige communicatie.

  • Initiatief: push vanuit de Verzender of pull vanuit de Afnemer.

  • Communicatie: synchroon of asynchroon versturen en ontvangen.

  • Verwerking: synchroon of asynchroon verwerken.

Binnen het de architectuur van Edukoppling voor M2M gegevensuitwisselingen binnen het onderwijs zijn diverse bedrijfstransactiepatronen* uitgewerkt:

Naam

Patroon

Toelichting

Uitwerking

Naam

Patroon

Toelichting

Uitwerking

Bevraging

Request-Response

Een bevraging is een vraag vanuit een Afnemer waar direct een antwoord op wordt verwacht vanuit de Bron.

Richting: Eenzijdig
Initiatief: Pull
Communicatie: synchroon
Verwerking: synchroon

Melding-bevestiging

Melding-bevestiging

Bij de Melding-bevestiging verstuurt de Verzender een melding waar een Ontvanger vervolgens mee aan de slag gaat.

Richting: Eenzijdig
Initiatief: Push
Communicatie: synchroon
Verwerking: asynchroon

Asynchrone uitwisseling

Melding-bevestiging

Terugmelding-bevestiging

Een asynchrone uitwisseling is twee keer het patroon melding-bevestiging in verschillende richtingen.

Eerst wordt een melding gestuurd en de ontvangst bevestigd.

Op een later tijdstip, als de melding is verwerkt wordt een terugmelding gestuurd en wordt de ontvangst daarvan bevestigd.

Richting: Tweezijdig

Melding
Initiatief: Push
Communicatie: synchroon
Verwerking: asynchroon

Terugmelding
Initiatief: Push
Communicatie: synchroon
Verwerking: asynchroon

Abonneren op wijzigingen middels notificaties

Request-Response (abonneerservice)

Melding-bevestiging (notificatieservice)

Request-Response
(resource-service)

Bij een abonnement op wijzigingen middels notificaties is het mogelijk om als ontvanger op de hoogte te worden gesteld bij een wijziging.

Richting: Tweezijdig

Abonneerservice
Initiatief: Pull
Communicatie: synchroon
Verwerking: synchroon

Notificatieservice
Initiatief: Push
Communicatie: synchroon
Verwerking: asynchroon

Resource-service
Initiatief: Pull
Communicatie: synchroon
Verwerking: synchroon

 

* Het bedrijfstransactiepatroon Polling is een anti-patroon en wordt afgeraden. Het bedrijfstransactiepatroon Grote berichten is niet van toepassing op het Edu-V afsprakenstelsel.

Coördinatie

De transactiepatronen van Edukoppeling zijn gericht op een bilaterale uitwisseling van gegevens tussen twee Leveranciers. In een proces kan er ook sprake zijn van een opeenvolging van bilaterale gegevensuitwisselingen in een multilaterale setting. We onderkennen twee vormen van coördinatie:

Naam

Patroon

Toelichting

Naam

Patroon

Toelichting

Notificeren van abonnees

Abonneren op wijzigingen middels notificaties

De Bron coördineert het versturen van notificaties naar alle geabonneerde Afnemers.

De Bron verwacht geen terugmelding van de Afnemer. De Afnemer is verantwoordelijk voor het correct verwerken van de notificatie en het bijwerken van de gegevens.

Georkestreerde uitwisseling

Meerdere opeenvolgende Asynchrone uitwisselingen

De Verzender coördineert meerdere opeenvolgende asynchrone uitwisselingen tussen meerdere Ontvangers.

De Verzender verwacht wel een terugmelding van de Ontvanger. Op basis van deze terugmelding kan de Verzender een volgende asynchrone uitwisseling starten.

Op deze manier kan een Verzender er zorg voor dragen dat alle betrokken Ontvangers in de multilaterale setting beschikken over dezelfde statusinformatie ten aanzien van het gegeven.

De coördinatievorm Notificeren van abonneren is reeds beschreven in het transactiepatroon Abonneren op wijzigingen middels notificaties. De georkestreerde uitwisseling is een aanvulling op de transactiepatronen en als zodanig separaat uitgewerkt in het afwegingskader.

Transactierollen

In een gegevensuitwisseling worden gegevens uitgewisseld van Leverancier A naar Leverancier B. Het is van belang om hierbij heldere definities te hanteren voor de transactierollen die de leverancier in de gegevensuitwisseling uitoefenen. De transactierollen zijn toegelicht in onderstaand overzicht:

Transactiepatroon

Transactierol

Omschrijving

Transactiepatroon

Transactierol

Omschrijving

Bevraging

Bron

De bron wordt bevraagd door een afnemer en verstrekt gegevens.

Afnemer

De afnemer bevraagt een bron en ontvangt gegevens.

Abonneren op wijzigingen middels notificaties

Bron

De bron verstuurt een notificatie naar alle afnemers die geabonneerd zij op wijzigingen.

De bron wordt vervolgens door een afnemer bevraagt en verstrekt de gewijzigde gegevens.

Afnemer

De afnemer abonneert zich bij een bron op notificaties.

De afnemer ontvangt een notificatie van de bron dat er gegevens gewijzigd zijn.

De afnemer bevraagt de bron en ontvangt de gewijzigde gegevens.

Melding–bevestiging

Verzender

De verzender verstuurt gegevens naar een ontvanger.

Ontvanger

De ontvanger ontvang gegevens van een verzender.

Asynchrone of Georkestreerde uitwisseling

Verzender

De verzender verstuurt gegeven naar een ontvanger en is zelf ontvanger van de terugmelding.

Ontvanger

De ontvanger ontvangt gegevens van een verzender en is zelf verzender van de terugmelding.

Afwegingskader transactiepatronen

De keuze van een transactiepatroon is afhankelijk van het proces waarin de gegevensuitwisseling plaats vindt. Hierbij is het van belang om te kijken naar de karakteristieken die gelden voor en omtrent de gegevensuitwisseling in het proces:

  • Communicatie: betreft het een bilaterale of multilaterale setting.

  • Voorspelbaarheid: betreft het een al dan niet planbare gegevensuitwisseling die incidenteel of structureel plaatsvindt.

  • Complexiteit: vindt de gegevensuitwisseling in een eenvoudige of complexe setting plaats. Complexiteit kan verhoogd worden door behoefte aan persistentie, actualiteit, traceerbaarheid, volgordelijkheid, alternatieve paden en ongedaan maken (roll back)

  • Volume: leidt de gegevensuitwisseling tot een hoog volume en kan er sprake zijn van een piekbelasting

In aanvulling op deze karakteristieken van het proces, kent een transactiepatroon ook eigenschappen die impact hebben op:

  • Binding en afhankelijkheid: in hoeverre zijn systemen afhankelijk van elkaar en kunnen ze autonoom opereren.

  • Betrouwbaarheid: hoe zeker kunnen referentiecomponenten zijn dat de gegevens correct zijn ontvangen en verwerkt.

  • Schaalbaarheid en elasticiteit: in hoeverre zijn referentiecomponenten in staat om bevragingen, verzending, ontvangst en verwerking op of af te schalen.

  • Complexiteit: hoe complex is het voor leveranciers om het transactiepatroon te implementeren, onderhouden, door te ontwikkelen en te testen.

Voor ieder van de transactiepatronen is een afwegingskader ontwikkeld dat door de werkgroepen gebruikt kan worden om een keuze te maken.

Transactiepatroon: Bevraging

In dit patroon vraagt een afnemer de actuele gegevens van een entiteit uit een gegevensbron op bij de bron. De aanvraag wordt synchroon door de bron verwerkt en in de response worden de opgevraagde gegevens aan de afnemer verstuurd. Dit patroon leent zich goed voor gegevensuitwisselingen met de volgende kenmerken:

Kenmerk

Invulling

Toelichting

Kenmerk

Invulling

Toelichting

Communicatie

Bilateraal

1-op-1

  • De gegevensuitwisseling vindt bilateraal plaats tussen één bron en één afnemer.

  • De afnemer initieert de gegevensuitwisseling.

  • De bron heeft geen verdere rol in de verwerking van de inhoud.

Voorspelbaarheid

Incidenteel

  • Het gaat om een incidentele bevraging of een door de afnemer geplande periodieke bevraging.

Complexiteit

Laag

  • Er is geen sprake van een kritieke volgorde of alternatieve paden.

  • Het aantal functionele foutmeldingen is beperkt.

  • Er is geen sprake van urgentie of hoge prioriteit.

  • De samenstelling van deelnemers in de communicatie is stabiel.

  • De bron verwacht geen bevestiging van de verwerking door afnemer.

  • Er is geen behoefte aan traceerbaarheid van de gegevensuitwisseling.

Volume

Laag met in pieken hoog volume

  • Het aantal bevragingen is relatief laag.

  • De omvang van de response kan klein zijn (een enkele entiteit) of groot zijn (stand van gegevensbron).

  • In het geval van het synchroniseren van een stand kan er sprake zijn van piekbelasting.

Het voordeel van dit patroon is de lage complexiteit en de hoge betrouwbaarheid. Het nadeel van dit patroon ligt hem in de hoge afhankelijkheid en de middel schaalbaarheid.

Afweging

Effect

Toelichting

Afweging

Effect

Toelichting

Binding en afhankelijkheid

Hoog

Door synchrone verwerking is de koppeling en afhankelijkheid tussen bron en afnemer hoog.

Indien bron niet online is dan kan de afnemer de gegevensuitwisseling niet voltooien.

Betrouwbaarheid

Hoog

Door synchrone verwerking is de betrouwbaarheid van de gegevensuitwisseling hoog.

Afnemer kan direct reageren op een foutmelding van de bron.

Schaalbaarheid en elasticiteit

Middel

Performance is afhankelijk van de schaalbaarheid en elasticiteit van voornamelijk de bron.

Complexiteit

Laag

De onderhoudbaarheid en doorontwikkeling is hoog omdat het een bilaterale uitwisseling tussen twee partijen betreft.

De testbaarheid is hoog door synchrone verwerking.

Voorbeelden Opvragen

Dit patroon kan bijvoorbeeld toegepast worden in de volgende voorbeelden:

Zodra referentiecomponenten op elkaar zijn aangesloten vraagt de afnemer de initiële stand van gegevens op bij een bron. Hierna kan de afnemer ervoor kiezen om zich te abonneren op wijzigingen en notificaties te ontvangen of zelf periodiek de stand te actualiseren (zie volgende voorbeeld).