De printervriendelijke versie wordt niet langer ondersteund en kan weergavefouten bevatten. Werk uw browserbladwijzers bij en gebruik de gewone afdrukfunctie van de browser.
Stelling
Maak bij de ontwikkeling van diensten gebruik van een modulaire indeling met een maximale interne samenhang en minimale externe koppelingen.
Rationale
Door diensten modulair op te bouwen en te ontkoppelen wordt de flexibiliteit vergroot, wat leidt tot meer wendbaarheid, meer hergebruik en duurzaamheid.
Realiseert doel(-en)
Alle implicaties bij dit architectuurprincipe
Implicaties gerangschikt per laag van het Vijflaagsmodel
ID | Implicatie | Beschrijving |
---|
NAP07.01 | Diensten vullen elkaar aan (implicatie) | Zorg er voor dat diensten elkaar aanvullen en niet overlappen:
- Geef een heldere beschrijving van je dienst
- Stem de opzet van de dienst af met aanbieders van verwante diensten
- Sluit aan op die verwante diensten
Burgers en bedrijven moeten de dienst en de meerwaarde er van kunnen herkennen: de dienst moet uniek zijn en niet overlappen met andere diensten. Dat voorkomt verwarring en zorgt dat de beoogde gebruiker de dienst weet te vinden.
Daarvoor moeten individuele organisaties zelf de verantwoordelijkheid nemen om hun dienstverlening naast elkaar te leggen en op elkaar af te stemmen. Dit voorkomt dubbel werk en overlappende diensten.
De overheid als geheel kan zo efficiënter werken. En bij individuele dienstverleners komt capaciteit en focus vrij om zich te concentreren op de kwaliteit van de unieke dienst die ze aanbieden. |
IMP029 | Scheid proces van data | Scheid proces van data en data van software. Zorg dat software hardware-agnostisch is. De afhankelijkheden tussen (proces-)onderdelen moeten bij voorkeur zo klein mogelijk zijn. Hierdoor blijft ontkoppeling op een later moment mogelijk. |
ID | Implicatie | Beschrijving |
---|
IMP032 | Ontwerp diensten met oog voor doelbinding en grondslag | Ontwerp en implementeer diensten met oog voor doelbinding, data-minimalisatie en oorspronkelijke grondslag. |
IMP031 | Ontwerp op modulaire wijze | Realiseer complexe systemen op modulaire wijze. Dit doe je door het systeem zodanig te ontwerpen dat deze opgedeeld kan worden in modules. Elke module moet eigenschappen bevatten die het mogelijk maken om ze (via gestandaardiseerde koppelvlakken) aan elkaar te koppelen. Zodanig vormen ze in het geheel een complex systeem. |
IMP029 | Scheid proces van data | Scheid proces van data en data van software. Zorg dat software hardware-agnostisch is. De afhankelijkheden tussen (proces-)onderdelen moeten bij voorkeur zo klein mogelijk zijn. Hierdoor blijft ontkoppeling op een later moment mogelijk. |
IMP030 | Scheiding van datasets | Verdeel de informatie in afgebakende datasets, die ook elk afzonderlijk getoetst kunnen worden op vhet oldoen aan de AVG. |
ID | Implicatie | Beschrijving |
---|
IMP033 | Koppel bronsystemen op basis van een passende classificatie | Verwerk als afnemer gegevens uit een bronsysteem met respect voor de classificatie van die gegevens. Geef het geen hogere classificatie voor beschikbaarheid en integriteit dan de bron, en geen lagere classificatie voor vertrouwelijkheid.
Maak zonodig afspraken met de aanbieder om hun classificatie aan te passen en in hun dienst bijpassende maatregelen daarvoor te implementeren. |
IMP029 | Scheid proces van data | Scheid proces van data en data van software. Zorg dat software hardware-agnostisch is. De afhankelijkheden tussen (proces-)onderdelen moeten bij voorkeur zo klein mogelijk zijn. Hierdoor blijft ontkoppeling op een later moment mogelijk. |
IMP087 | Verwerk bericht-interactie persistent | Zorg dat een bericht dat een mutatie tot gevolg heeft, bijvoorbeeld een bericht dat een betalingsopdracht representeert, niet verloren kan gaan. Een dergelijk 'transactioneel' bericht moet een incident als uitwijk of storing kunnen overleven.
Alle onderdelen van een verwerkingsketen nemen verantwoordelijkheid voor het bericht en zorgen ervoor dat het bericht niet verloren gaat. Correcte verwerking heeft prioriteit boven verwerkingssnelheid.
Persistentie houdt in dat een (transport-)transactie pas is voltooid als het bericht is opgeslagen in een 'persistent store', zoals een bestand of database.
Een opvragingsbericht daarentegen heeft geen mutatie tot gevolg. Responsetijd heeft hier meer prioriteit. Bij verlies van een opvragingsbericht (door bv. een storing) wordt de opvraging opnieuw gedaan. Verwerk een opvragingsbericht daarom niet-persistent verwerkt. |
IMP083 | Wissel gegevens tussen (web)applicaties uit met API's | Gegevensuitwisseling tussen (web)applicaties gebeurt via Restful API's. De broneigenaar levert API's die voldoen aan de moderne RESTful standaarden. API's dienen centraal te worden beheerd in een API management systeem. |
Dit architectuurprincipe heeft (nog) geen implicaties in Laag 5.