Transactiepatronen
Titel | Transactiepatronen |
Status | In ontwikkeling ROSA-Architectuurscan BEsluitvorming in beheer |
Versie | 1.0.0 |
Datum | 27 Mei 2024 |
Auteur | Architectenraad Edu-V |
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 |
---|---|---|---|
Bevraging | Request-Response | Een bevraging is een vraag vanuit een Afnemer waar direct een antwoord op wordt verwacht vanuit de Bron. | Richting: Eenzijdig |
Melding-bevestiging | Melding-bevestiging | Bij de Melding-bevestiging verstuurt de Verzender een melding waar een Ontvanger vervolgens mee aan de slag gaat. | Richting: Eenzijdig |
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 Terugmelding |
Abonneren op wijzigingen middels notificaties → → → | Request-Response (abonneerservice) Melding-bevestiging (notificatieservice) Request-Response | 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 Notificatieservice Resource-service
|
* 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 |
---|---|---|
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 |
---|---|---|
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 |
---|---|---|
Communicatie | Bilateraal 1-op-1 |
|
Voorspelbaarheid | Incidenteel |
|
Complexiteit | Laag |
|
Volume | Laag met in pieken hoog volume |
|
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 |
---|---|---|
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: