Om de geschetste functionaliteit op hoofdlijnen te realiseren is een concept WVP solutionsarchitectuur vormgegeven.
Het WVP volgt in z'n opzet het Waterkwaliteitsportaal (WKP). Voor de technische architectuur betekent dat ze een n-tier ontwerppatroon volgt met een scheiding in de eenheden 'Client', 'Presentation', 'Business logic', 'Data integration' en 'Data sources'. Voor de bevordering van de herbruikbaarheid van code is naast deze horizontale 'tiers' gekozen voor een ontwerppatroon met een verticale 'Cross cutting concerns' laag. In de modulaire opbouw van het systeem staan deze cross cutting concerns min-of-meer los van de business-logica en 'regelen' ze een aantal aspecten die voor het hele systeem gelden.
Technische componenten (overview)
Het WVP is onderverdeeld in verschillende layers gebaseerd op een N-tier architectuur, waarbij elke layer/tier zijn eigen verantwoordelijkheden heeft. Ook binnen een layer/tier is een scheiding te maken in meerdere services gebaseerd op hun verantwoordelijkheden. De backend als geheel wordt getriggerd door events/commands en is daarom ook Event Driven.
- De Presentation layer is verantwoordelijk voor de presentatie logica. In deze laag mag men geen business logica terugvinden. Zoals in bovenstaande schema te zien is, is dit de layer waar de website, webservice, workflow, backend, kaart-services, etc. worden geïmplementeerd.
- De Business layer is verantwoordelijk voor business logica en bevat allerlei acties en componenten die het hart van het systeem vormen.
- De Data Intergration layer is verantwoordelijk voor de koppeling met de fysieke data layer en de business layer. Hierin vinden de queries naar de database plaats en worden de entiteiten omgevormd naar business objecten.
- De Data Sources layer is de laag voor de fysieke opslagGewijzigd van data.
De diverse modules of deelsystemen kunnen via services events/commands versturen via de Core naar het juiste endpoint. Deze endpoint handelt het event/command af en verstuurt indien wenselijk een nieuw event/command.
In WKP wordt hiervoor NServiceBus gebruikt die de services in een MSMQ-queue geplaatst.
Laag/Tier Component | Functie |
---|---|
Client layer |
|
Guest user | Heeft toegang tot het publieke deel van het WVP met beperkte functionaliteit. |
Registered user | Krijgt op basis van zijn rol toegang tot functies binnen het WVP |
Presentation UI |
|
Login | Geregistreerde gebruikers krijgen via identificatie/authenticatie toegang tot het WVP |
Kaartview | Een aantal beschikbare data-objecten worden als interactieve kaartlaag gepresenteerd. Voor geregistreerde users is de kaart-functionaliteit uitgebreider. |
Dashboard | Een aantal beschikbare data-objecten worden voor geregistreerde gebruikers in een interactief Dashboard gepresenteerd, |
Reports | Een aantal beschikbare data-objecten zijn voor geregistreerde gebruikers als report te downloaden |
Workflow | De user-interface visualiseert en ondersteunt de'Intuitief' is verwijderd, te subjectief in § 1.1 geschetste workflow |
Presentation UI Proces |
|
Upload | De user-interface ondersteunt het in § 1.1 geschetste workflow proces |
Meldingen | Voor de gebruiker relevante systeem-meldingen of workflow ondersteunende meldingen worden naar de website (presentation UI) gedistribueerd en getoond |
Kaartselectie | Daar waar nodig is wordt de kaartview uitgebreid met eenvoudige client-side GIS-functionaliteit, bijv. filtering, geometrie-selecties |
Business Logica |
|
Workflow | De workflow module omvat een aantal service-componenten die het workflow proces ondersteunen. Hieronder vallen:
|
Core | De core module omvat een aantal service-componenten die het WVP als systeem aansturen en die het beheer van het systeem ondersteunen. Hieronder vallen Proces services, Beoordeling services, Data beheer, Integratie, User beheer. Een aantal van deze services moeten ook een User-interface hebben (niet genoemd) voor een super-user/systeembeheerder. Te denken valt aan User beheer, |
Reporting | Server side componenten voor het verzamelen en visualiseren van data voor rapportages, grafieken en tabellen |
Mapping | Server side componenten voor het editen en visualiseren van spatial data en het genereren van kaartlagen |
Data Integration |
|
Data Access | Verzorgt de toegang tussen de services-componenten in de Business Logica laag en de data in de Data Sources laag (CRUD) |
Service Agents | Verzorgt de toegang tussen de services-componenten in de Business Logica laag en services buiten het WVP |
Data Sources |
|
Private data-store | Data store met toegang voor twee gebruikers: registred users en WVP |
RDBMS | Relationele database met verschillende schema's en data voor de service-componenten in de Business Logica laag |
Cross cutting concerns |
|
Transaction processing | Zie AP36 |
Logging | Zie § 7.4.2 |
Communication (meldingen/terugmeldingen) | Zie § AP14 |
Security (Authorisatie/autenticatie) | Zie § 9.6 |