BoToVa - Toetsing en Validatie Service Technische Ontwerp - Concept Versie 1.1 - september 2012
I.T. Works BV
Opdrachtgever:
I.T. Works
Paardenmark 1C 2611 PA Delft Nederland Tel. +31-(0)15-2512840 Fax. +31-(0)15-2512841
Auteur: Datum: Versie:
Robin Huisman 18 september 2012 1.1 Concept/Definitief
Technische Ontwerp BoToVa Inhoudsopgave Inhoud Inhoudsopgave ...................................................................................................................................2 Inleiding ..............................................................................................................................................3 Versie .................................................................................................................................................3 Begrippenlijst ......................................................................................................................................4 1.
Functionele beschrijving voor de BoToVa .....................................................................................5
2.
Technische Architectuur ............................................................................................................. 11 Gewenste lagen architectuur ......................................................................................................... 11 BusinessEntities Klassediagram .................................................................................................... 11 ExchangeEntities ....................................................................................................................... 13 ToetsingEntities ......................................................................................................................... 13 DatabaseEntities ........................................................................................................................ 13 Check Autorisatie .......................................................................................................................... 15 Uitvoeren van toetsingen ............................................................................................................... 16
3.
Berichten verkeer BoToVa ......................................................................................................... 18 Algemene denkwijze...................................................................................................................... 18 Uitwerking in IM0101 – Informatie model ....................................................................................... 19 Uitwerking in IM0101 – Product model ........................................................................................... 19
4.
Codelijsten ................................................................................................................................. 21 Toetsingen .................................................................................................................................... 21 Toetsregels ................................................................................................................................... 21 ToetsnormParameters ................................................................................................................... 23
5.
Parameters en resultaten per toetsregel ..................................................................................... 23
6.
Logging ...................................................................................................................................... 26
© I.T. Works
2
18 september 2012
Technische Ontwerp BoToVa Inleiding Ter voorbereiding aan de bouw van BoToVa is er een technisch ontwerp gemaakt. Het ontwerp heeft tot doel de risico’s tijdens de realisatie van de service uit te sluiten. Dit document gaat in op de volgende onderwerpen:
Het functioneel ontwerp voor BoToVa wordt met name bepaald door de rekenregels in de vorm van stroomdiagrammen. Zie document “Toetsingsregels Bodem” van de rekenmeesters. Het functioneel ontwerp is daarmee vrij ver technisch uitgewerkt en kan daarmee 1 op 1 worden overgenomen in het Technisch ontwerp. Voor de duidelijkheid worden enkele aspecten uit de rekenregels expliciet uitgelicht in het hoofdstuk “Functionele beschrijving”. Technische architectuur van de service. In een aantal stappen worden de verschillende componenten van de service toegelicht Belangrijk voor de systemen die gebruik gaan maken van de service vormt het berichtenverkeer. Na een globale toelichting wordt de koppeling getoond met het op dit moment in ontwikkeling zijnde IMSIKB0101. Vervolgens wordt aan de hand van de opgestelde rekenregels een voorbeeld weergegeven van het berichtenverkeer. Het document sluit af met de performance en stresstest.
Versie Versie 0.1
Datum 21-6-2012
Door RHU
0.2
13-7-2012
RHU
0.3 0.4
20-7-2012 21-8-2012
LSC RHU
0.5 0.6 1.0
31-8-2012 7-9-2012 10-9-2012
RHU RHU RHU
1.1
18-9-2012
RHU
© I.T. Works
Opmerking Opzetten eerste versie, belangrijkste van dit document wordt het bepalen van het berichtenverkeer. Commentaar in Workshop PSL verwerkt en rekenregels bekeken met Aad Windmeijer voor het berichten verkeer. Toevoegen van Performance en Stresstest gegevens. Toevoegen van nieuwe bevindingen na bestuderen van Rekenregels. Verwerken van nieuwe inzichten mbt de rekenregels. Nieuw inzichten na overleg met Hinne en Etta. Opmerkingen Etta bij Technisch ontwerp en opmerkingen IHW verwerkt. Toevoegen van specificaties die voortkomen uit het SIKB PSL overleg.
3
18 september 2012
Technische Ontwerp BoToVa Begrippenlijst Toetskader Een Toetskader is de wettelijke regeling. Een Toetskader bestaat vaak uit meerdere toetsingen voor verschillende toepassingen. (Voorbeelden: WBB – Wet Bodem Bescherming, BBK – Besluit Bodem Kwaliteit) Toetsing Een toetsing is hetgeen wat de gebruikers van BoToVa kunnen aanroepen. In de wet staan enkele toetsingen binnen bepaalde Toetskaders, deze zijn opgesplitst in meerdere rekenregels. De uitkomst van de toetsing geeft een oordeel over de kwaliteit van een of meerdere monsters. (Voorbeelden: WBB grond, WBB Grondwater, WBB Diep grondwater) Rekenregel Een rekenregel is een stroomschema van de rekenmeesters en kan ook Toetsregel genoemd worden. De rekenmeesters hebben de toetsingen uit elkaar gehaald en alle stappen in een stroomschema verwerkt. Enkele stappen komen voor in meerdere toetsingen en door het splitsen in rekenregels kunnen deze in meerdere toetsingen gebruikt worden. (Voorbeelden: Somparameters berekenen, Vaststelling Organische stof en Lutum)
© I.T. Works
4
18 september 2012
Technische Ontwerp BoToVa 1. Functionele beschrijving voor de BoToVa In dit hoofdstuk wordt beschreven wat de specificaties zijn en hoe dit vertaald wordt naar het gedrag van BoToVa. Alle specificaties worden in dit hoofdstuk per paragraaf beschreven en uitgelegd. Voor de inleiding staat hier een kort overzicht van de belangrijkste specificaties: -
Som parameters altijd berekenen. Meerdere monster omrekenen naar één monster met gemiddelden. Per toetsing een aanroep doen. Een toetsing moet tijdelijk uitgezet kunnen worden met een melding waarom. De meetwaarde corrigeren i.p.v. de norm. Gebruikersnaam en wachtwoord controle waarbij ook gebruikers op niet actief gezet kunnen worden. Log van de toetsing terugkoppelen naar gebruiker, wat ging goed, wat ging niet goed. Gebruikersnamen worden uitgedeeld op bedrijfsniveau of op systeem niveau.
Som parameters altijd berekenen Wanneer de stoffen aangeleverd worden in de aanroep, dan kunnen hier ook somparameters tussen zitten die foutief berekend zijn. Om er zeker van de te zijn dat de output correct is, worden alle somparameters opnieuw berekend. Dit zorgt ervoor dat de somparameters altijd correct getoetst worden omdat deze goed zijn berekend uit de aangeleverd individuele parameters. Aangeleverde somparameters worden nooit gebruikt.
Meerdere monster omrekenen naar één monster met gemiddelden Wanneer in de aanroep naar de webservice meerdere monsters zitten, dan worden deze niet alleen apart getoetst, maar ook beschouwd als een toetsmonster. Daarbij wordt een extra monster gecreëerd en worden de stoffen van de verschillende monsters gemiddeld en daarna als één monster behandeld. Het resultaat van de toetsing bevat dan naast de toetsoordelen van de individuele monsters ook een extra monster met toetsoordelen. Verwijzingen naar de originele monsters wordt bijgehouden. Er is veel vraag naar een Batch mogelijkheid, maar om “Load Balancing” goed te regelen is dit niet gewenst.
Maximaal aantal monsters voor middeling Het moet mogelijk zijn 1000 monster als een toetsmonster aan te kunnen leveren. Dus 1000 emmertjes toetsen en middelen, daarna nogmaals als één toetsmonster toetsen.
Per Toetsing een aanroep doen Het kan wenselijk zijn dat bijvoorbeeld een gebruiker een monster aan zowel WBB Grondwater als WBB Diep Grondwater getoetst wil hebben. In zo’n geval zal de gebruiker twee keer de webservice moeten aanroepen, één keer voor grondwater en één keer voor grondwater diep. BoToVa voert dus maar één toetsing per keer uit.
Per Toetsing en versie een toetsing uit kunnen zetten
© I.T. Works
5
18 september 2012
Technische Ontwerp BoToVa Het kan voorkomen dat een bepaalde toetsing aangepast moet worden of niet meer gebruikt mag worden. Dan moet deze uitgezet kunnen worden. Dit moet per toetsing en versie nummer kunnen. Dit betekend dat ook alleen een oudere versie van een toetsing uitgezet moet kunnen worden, terwijl de nieuwste gewoon gebruikt kan worden. Indien een bepaalde toetsing uit staat maar wel aangevraagd wordt, dan wordt er een reden teruggegeven waarom deze toetsing niet actief is.
Aanroep via SOAP uitwisselobjecten met daarin SIKB-xml of Aquo-xml Een aanvraag naar de webservice verloopt via SOAP waarin enkele uitwisselobjecten zijn gedefinieerd. In deze uitwisselobjecten wordt SIKB- of Aquo-xml meegegeven. Deze standaarden worden later nog verder gespecificeerd. Dit wordt een gezamenlijk formaat IM0101.
Resultaten via SOAP uitwisselobjecten met daarin SIKB-xml of Aquo-xml De resultaten van de toetsing via SOAP waarin enkele uitwisselobjecten zijn gedefinieerd. In deze uitwisselobjecten wordt SIKB- of Aquo-xml teruggegeven, afhankelijk van de aanroep. Dit wordt een gezamenlijk formaat IM0101.
De meetwaarde corrigeren i.p.v. de norm Tot nu toe was het altijd gebruikelijk in de droge bodemwereld dat de meetwaarde niet werd gecorrigeerd, maar de norm. Dit gaat veranderen. BoToVa zal de meetwaardes corrigeren en deze teruggeven aan de gebruikers. Zie verder de documenten van de rekenmeesters, hierin staan alle gevallen exact beschreven.
Significantie en afronding In de BoToVa webservice wordt niet afgerond en geen rekening gehouden met significantie. Alle berekende waardes worden onafgerond teruggestuurd naar de gebruiker. Als decimaalteken moet een ‘.’ gehanteerd worden.
Versiebeheer in toetsregels - X wijziging (toetsregel wijziging) Alle versies van een Toetsing moeten beschikbaar blijven daarom moet er versiebeheer op de Toetsregels plaatsvinden. Per versie wordt een stuk sourcecode onderhouden. Zodra er een nieuw versie van de Toetsregels uitkomt, dan wordt er een kopie gemaakt van de sourcecode. In de kopie worden de aanpassingen op de Toetsregels verwerkt en het versienummer opgehoogd. Alle Toetsingen waarin deze Toetsregel gebruikt wordt moet opgehoogd worden met een gelijksoortige ophoging. Dit wordt gezien als een X-wijziging, dit is wettelijk bepaald en dus een volledig nieuwe versie. (Bijv.: versie 2.1.2; X.Y.Z) Versiebeheer van toetsregels – Y wijziging (norm wijziging) Indien er nieuwe normen zijn of een correctie uitgevoerd dient te worden in de normen, dan wordt dit gezien als een Y wijziging. Een Toetsregel sourcecode wordt gekopieerd en een nieuw versienummer
© I.T. Works
6
18 september 2012
Technische Ontwerp BoToVa aan gegeven. In de database wordt een nieuwe norm toegevoegd. De koppeling van de oude versie worden gekopieerd en nieuwe gewijzigde norm wordt ontkoppeld en vervangen door de nieuwe norm. Hierdoor blijft heel duidelijk zichtbaar waar de wijzigingen in de historie plaats gevonden hebben. Alle Toetsingen waarin deze Toetsregel gebruikt wordt moet opgehoogd worden met een gelijksoortige ophoging. (Bijv.: versie 2.2.0; X.Y.Z)
Versiebeheer van toetsregels – Z wijziging (toetsregel bugfix) Het kan gebeuren, ook al wordt er goed getest, dat er in de productieversie van een toetsregel een fout zit. Dit moet per direct gecorrigeerd worden, maar dit gebeurd alleen in een nieuwe versie. Dus zonder terugwerkende kracht! Dit wordt gezien als een Z wijziging. De foutieve versie kan eventueel uitgezet worden. Een kopie van de sourcecode van Toetsregel wordt gemaakt en in het gekopieerde stuk wordt de bug opgelost. Uiteraard worden hier dan ook de normen weer aan gekoppeld. Alle Toetsingen waarin deze Toetsregel gebruikt wordt moet opgehoogd worden met een gelijksoortige ophoging.
Versiebeheer van BoToVa Webservice – X wijziging (webservice uitbreiding) Het versiebeheer van de Webserice zelf, dus ongeacht welke Toetsing versies en Toetsregel versies er zijn, moet ook geregeld worden. Een X wijziging zal een uitbreiding van de webservice betekenen, mogelijk veranderd hierdoor de aanroep van de webservice. Hiervan moeten aansluitende applicaties op de hoogte zijn. (Bijv.: versie 4.0.0; X.Y.Z) Versiebeheer van BoToVa Webservice – Y wijziging (IM0101 wijziging) Zodra een nieuwe versie van IM0101 uitkomt, zal ook de webservice hiervoor aangepast moeten worden om dit te ondersteunen. Dit zal resulteren in een Y wijziging. (Bijv.: versie 4.2.0; X.Y.Z)
Versiebeheer van BoToVa Webservice – Z wijziging (webservice bugfix) Er kunnen situaties zijn waarbij blijkt dat er een bug in de webservice zit, anders dan in de Toetsing of Toetsregels. Zodra een nieuwe versie wordt gemaakt i.v.m. een oplossing van een bug in het algemene deel van de webservice, wordt dit gezien als een Z wijziging. (Bijv.: versie 4.0.0; X.Y.Z)
Gebruikersnaam en wachtwoord controle Het aanroepen BoToVa mag niet door iedereen zomaar gebeuren dus moet er een gebruikersnaam en wachtwoord bij de aanroep meegestuurd worden. De gebruikersnaam en wachtwoord kan door een beheerder worden toegevoegd. Een systeemleverancier vraagt dit aan. Deze mag zelf beslissen of één gebruiker gebruikt wordt voor het hele systeem, of dat een gebruiker wordt aangevraagd per bedrijf.
© I.T. Works
7
18 september 2012
Technische Ontwerp BoToVa Een gebruiker moet ook tijdelijk uitgeschakeld kunnen worden.
Log van de toetsing terugkoppelen naar gebruiker Bij het toetsen kan er een keer iets mis gaan. Hiervan moet de gebruiker op de hoogte gesteld worden. Maar het is ook zeker interessant om te weten wat er wel goed ging en BoToVa allemaal voor de gebruiker gedaan heeft. Er wordt dus bij een antwoord van de webservice naar de gebruiker een log meegestuurd met daarin wat wel en niet goed is gegaan. Daarin nemen we ook op wat de tijdsduur is geweest op de server voor het toetsen van het monster. De Log kan teruggestuurd worden in XML of HTML. Als voorbeeld wordt de Log van Towabo gehanteerd, elke actie van een toetsregel wordt hierin beschreven.
Terugkoppelen belangrijke meldingen Bij het toetsen volgens de stroomschema’s moeten er ook in bepaalde situaties melding teruggekoppeld worden. Deze moeten gekoppeld worden aan de Analyse of eventueel het Toetsoordeel, omdat ze betrekking hebben op de uitslag van de toetsing. In IM0101 worden velden toegevoegd om meldingen van de BoToVa in kwijt te kunnen.
Bijhouden van activiteiten op de webservice BoToVa moet voor zichzelf bijhouden welke gebruikers een Toetsing aanroepen en natuurlijk ook welke Toetsing. Hieruit kunnen statistieken gehaald worden als er problemen zijn. De webservice moet dus bij een aanvraag noteren welke toetsing en welke gebruiker iets uitvoer, hieruit kunnen aantallen gehaald worden. Uiteraard moeten foutmeldingen van de webservice ook bijgehouden worden.
Via een website bepaalde toetsingen uitzetten Eerder in de specificaties staat dat een bepaalde Toetsing uitgezet moet kunnen worden, deze specificatie geeft de manier waarop dit moet gebeuren. Een beheerder moet een bepaalde versie van een Toetsing tijdelijk kunnen uitzetten via een website. Hierop moet de beheerder uiteraard eerst inloggen. Tevens moet bij het uitzetten ook een reden opgegeven worden.
Nieuwe gebruikers kunnen zich registreren Nieuwe gebruikers kunnen zich registreren via een website. Hierna hebben zij direct toegang tot het aanroepen van de Toetsingen.
Via een website nieuwe gebruikers aanmaken en verder beheren De gebruikers moeten ook via een website door de beheerder aangemaakt, gewijzigd, verwijderd en inactief gemaakt kunnen worden.
De functionele beveiliging wordt via rollen afgedwongen
© I.T. Works
8
18 september 2012
Technische Ontwerp BoToVa Het moet mogelijk zijn dat bepaalde gebruikers extra rechten krijgen, dit kan worden afgedwongen via rollen. Het idee is om twee rollen toe te kennen: Applicatiebeheerder; mag gebruikers aanmaken, wijzigen en Toetsingen aan- of uitzetten. Gebruiker; mag een Toetsing uitvoeren.
De webservice kan alleen worden aangeroepen via HTTPS/SSL De technische beveiliging wordt nog verder afgestemd met de beherende partij. Maar als uitgangpunt zal wel alleen HTTPS/SSL ondersteund worden. Dit zorgt ervoor dat het verkeer van en naar de webservice in ieder geval gecodeerd is en niet zomaar af te luisteren.
De webservice moet gebruik maken van een MySQL Database Er is besloten om gebruik te maken van een MySQL database om de normen in op te slaan.
Openbare publiceren van gegevens De BoToVa geeft bepaalde informatie ook openbaar zichtbaar, namelijk: -
De Toetsregels moeten te downloaden zijn als originele stroomschema van de rekenmeesters, statistieken mogen openbaar maar zonder bedrijfsgegevens.
De status van de BoToVa. Bij een wijziging in de BoToVa of het uitzetten van een Toetsing moet de status openbaar op te vragen zijn en gecommuniceerd worden. Dit moet gaan via een RSS-feed en via een e-mail notificatie naar alle gebruikers, hierin is de status wijziging beschreven.
Aansluitende externe applicaties De BoToVa krijgt geen eigen interface om monsters te sturen en/of te selecteren. Alle applicaties die willen aansluiten aan de BoToVa zorgen voor een interface om monsters te selecteren en eventueel toetsmonsters samen te stellen. Het rekenwerk zal door de BoToVa uitgevoerd worden.
Normen downloaden Eerder werd gesteld dat bij de BoToVa ook normen gedownload kunnen worden, dit gaat de BoToVa niet doen. Alle normen staan in Bijlagen, deze kunnen op een nader te bepalen overheidswebsite opgevraagd worden als officiële documenten. Wel worden de normen waaraan getoetst is teruggekoppeld bij een toetsoordeel.
Testen De BoToVa-service wordt gevalideerd aan de testscripts, die gemaakt worden t.b.v. de Blackbox-test. De testscripts worden opgesteld door het testteam.
© I.T. Works
9
18 september 2012
Technische Ontwerp BoToVa Organische stof en Lutum Deze kunnen op twee manieren aangeleverd worden aan de BoToVa. Niet altijd worden Organische stof en Lutum geanalyseerd in het lab en dus niet altijd als analyseresultaat beschikbaar. Een gebruiker zou het om die reden dus handmatig willen instellen. Hiervoor komt de mogelijkheid om deze als Toetsinstelling mee te geven bij toetsen. Indien de waardes meegegeven worden, worden de meegegeven waardes gehanteerd. Worden ze niet meegegeven, dan wordt in de lijst met analyseresultaten gezocht naar de waardes.
© I.T. Works
10
18 september 2012
Technische Ontwerp BoToVa 2. Technische Architectuur Gewenste lagen architectuur BoToVa (Common Helpers) Hierin komen enkele globale Helpers die uitbreidingen zijn op .Net klassen. BusinessEntities Hierin komen alle uitwisselobjecten en dataklassen voor van en naar de database. BusinessLayer Heeft de pure functionaliteit in zich om toetsingen en berekeningen uit te voeren. ServiceObjects Per dataklasse een geoptimaliseerd service object om generiek bepaalde functies op te lossen. Kiest tevens het type dataaccess. DataAccess Per type database een geoptimaliseerde klasse voor connectie met de database. Database Opslag van normen, gebruikers, gebruik en rechten. Met voorkeur communiceren via STP’s. BoToVaWS De functies voor de buitenwereld worden hierin beschikbaar gesteld.
BusinessEntities Klassediagram Hieronder staat een beschrijving van alle entiteiten die voor gaan komen Toetsregel Een toetsregel is de omschrijving van de toetsregels die opgezet worden door de rekenmeesters. ToetsregelVersie Een toetsregel kan meerdere versies krijgen in de tijd. Om dit flexibel op te vangen krijgt elke toetsregel de mogelijkheid tot extra versies en bij elke versies worden de normen weer gekoppeld aan een versie. Zo overschrijft een nieuwe versie, nooit iets van een voorgaande versie. ToetsingVersie Indien een nieuwe ToetsregelVersie onstaat in de sourcecode, werkt dit uiteraard door in één of meerdere toetsingen. Hiervoor is dus ook versiebeheer op Toetsingen nodig. Er ligt geen expliciete link tussen ToetsregelVersie en ToetsingVersie omdat deze hardcoded zullen zijn.
© I.T. Works
11
18 september 2012
Technische Ontwerp BoToVa ToetsnormWaarde Dit is de waarde van een norm in een voorkeurs eenheid, waarbij de ToetsnormParameterCode staat voor een gestandaardiseerde lijst met o.a.: AW, IND en I.
© I.T. Works
12
18 september 2012
Technische Ontwerp BoToVa
ExchangeEntities Deze klassen zijn ervoor om uit te wisselen met de buitenwereld. Om een toetsing aan te vragen moet er een [ToetsingAanvraag] verzonden worden naar de webservice. Deze gaat controleren of de username en password goed is, daarna wordt het veld [AanvraagXML] uitgelezen. Dit is IM0101-xml. Dit wordt omgezet naar ToetsingEntities. Daarna wordt de toetsing aangevraagd. Sommige toetsingen hebben extra instellingen nodig, deze kunnen worden meegegeven met de [ToetsingInstelling] (dit zijn geen stoffen, maar instellingen). Een [ToetsingInstelling] kan alle indelingen info bevatten, namelijk string, float en DateTime. Een Boolean wordt genoteerd in het veld string met “True”/”False” en een integer kan worden gestuurd via een float. Zodra de toetsing is uitgevoerd of is fout gegaan wordt het bericht via klasse [ToetsAntwoord] teruggestuurd naar de aanroepende applicatie. Hierin zit een [ResultaatCode], dit kan naast “Succes” ook een fout omschrijving zijn zoals “AuthorisationError”. Indien een fout is opgetreden kan hierover extra info teruggegeven worden in het veld [ResultaatBeschrijving]. Dit is GEEN technische foutmelding uit de applicatiecode, deze geven we namelijk nooit terug, deze gaat een logging in. Een logbestand kan als HTML of XML teruggegeven worden in het veld [Logbestand]. Het Resultaat gaat weer als IM0101-xml over de lijn in het veld [ResultaatXML].
ToetsingEntities De webservice ondersteund IM0101-xml, deze kunnen worden meegestuurd in het veld [AanvraagXML] in de klasse [ToetsingAanvraag]. Door de Converter wordt de xml omgezet in de ToetsingEntities. Een [Analysemonster] wordt gemaakt met daaraan de [Analyse]. Tijdens toetsen worden hieraan de [BerekendeAnalyse] toegevoegd, de [ToetsingVariabele] en natuurlijk het [ToetsOordeel]. Een [ToetsingVariabele] is een meegestuurde instelling maar ook de tellers die gehanteerde worden in de rekenregels. De [NormWaarde] wordt toegevoegd aan het resultaat XML voor de gebruiker. De complete beschrijving van velden in deze klassen komt uit het IM0101 formaat.
DatabaseEntities Deze entities zijn nodig om gegevens uit de database op te halen en daar eenvoudig ObjectGeorienteerd mee te werken. Een [ToetsregelVersie] is versie van een toetsregel zoals de rekenmeesters deze hebben opgedeeld in losse stroomschema’s. Een [ToetsnormWaarde] is de waarde die een component heeft per norm. Een ToetsnormWaarde wordt altijd gekoppeld aan een ToetsnormParameter. ToetsnormParameters zijn gestandaardiseerd in een Codelijst en zijn bijvoorbeeld: Achtergrondwaarde, Industrie, Interventiewaarde. Om een [ToetsregelVersie] te kunnen uitrusten met de juiste normen, is een koppeltabel tussen de
© I.T. Works
13
18 september 2012
Technische Ontwerp BoToVa [ToetsnormWaarde] en de [ToetsregelVersie]. Hiermee wordt een flexibele koppeling gelegd, rekening houdend met versiebeheer van normen en toetsregels/rekenregels.
[ToetsingVersie] is de toetsing die de gebruiker kan aanroepen. De Toetsingen zijn een vaste lijst, maar hier kunnen meerdere versies van zijn. Een [ToetsingVersie] kan specifiek uitgezet worden door het veld [IsActief], door het veld [RedenInactief] te vullen kan een reden opgegeven worden waarom. Per [ToetsingVersie] is een vaste Handler in de sourcecode. In deze Handler wordt de keuze gemaakt voor de juiste Toetsregels en versie. Dit is ook de reden dat er databasetechnisch geen link ligt tussen [ToetsingVersie] en [ToetsregelVersie]. Indien er een nieuwe versie komt van een norm dan kan deze toegevoegd worden via [ToetsnormWaarde] en gekoppeld worden aan de juiste versie van een toetsregel via [LinkToetsregelVersie_ToetsnormWaarde]. Indien er een nieuwe versie komt van een Toetsregel, dan wordt een nieuwe [ToetsregelVersie] in de database aangemaakt. De Handler in de sourcecode wordt gekopieerd en krijgt een nieuwe naam a.h.v. ophogen versie nummer. Voor alle Toetsingen die gebruik maken van die Toetsregel, wordt ook een nieuwe [ToetsingVersie] in de database aangemaakt met een nieuw versienummer. Bijbehorende Handler wordt ook gekopieerd en krijgt ook een nieuwe naam a.h.v. ophogen versienummer. [Persoon] is ervoor om de gebruikers te noteren. Een gebruiker kan worden uitgezet via het veld [IsActief] of eventueel zelf verwijderd worden via [IsVerwijderd].
© I.T. Works
14
18 september 2012
Technische Ontwerp BoToVa
Check Autorisatie
© I.T. Works
15
18 september 2012
Technische Ontwerp BoToVa Uitvoeren van toetsingen
© I.T. Works
16
18 september 2012
Technische Ontwerp BoToVa
BaseHandlerToetsing De ToetsingFactory bereid het toetsen voor; regelt het omzetten van xml naar klassen en kiest de juiste BaseHandlerToetsing. Per ToetsingVersie is hier een afgeleide Handler van. De afgeleide Handler controleert in de database of een zijn eigen Toetsing en Versie beschikbaar is (afhankelijk van het veld [IsActive] in [ToetsingVersie]). Is deze beschikbaar dan worden alle Toetsregels uitgevoerd. BaseHandlerToetsregel Per [ToetsregelVersie] is een Handler, afgeleid van BaseHandlerToetsregel. In deze Handler wordt de rekenregel/toetsregel afgehandeld zoals deze is beschreven in een stroomschema van de rekenmeester. Komt er een nieuwe versie van de rekenregels of is er een aanpassing in de normen, dan wordt een voorgaande Handler gekopieerd. In de kopie worden de nieuwe aanpassingen verwerkt. Hierop zit een X.Y.Z. versiebeheer. Deze ophoging van versie werkt ook door in de aanroepende BaseHandlerToetsing. Helpers De [Helpers] zijn ervoor om op een snelle manier bepaalde informatie op te zoeken die ieder één of meerdere Handlers nodig hebben. Twee voorbeeld hiervan zijn het opzoeken van de Organische stof/Lutum in de lijst met [Analyse] of een bepaalde instelling opzoeken in de lijst met [ToetsingVariabele].
© I.T. Works
17
18 september 2012
Technische Ontwerp BoToVa 3. Berichten verkeer BoToVa Algemene denkwijze Het idee is om geen dubbele gegevens heen en weer te sturen. Dus het monster met de resultaten opgestuurd naar de service moeten niet geretourneerd worden. Alleen nieuwe gegevens worden teruggestuurd, hierin verwerkt een verwijzing naar het origineel m.b.v. NEN3610-ID (Guid).
Er is een splitsing gemaakt tussen Analyse, BerekendeAnalyse en ToetsOordeel. Analyse Is het resultaat aangeleverd door en in de meeste gevallen gemeten in het laboratorium. BerekendeAnalyse Een BerekendeAnalyse heeft twee types, namelijk Rekenwaarde en Gestandaardiseerdewaarde. Het is een Rekenwaarde na omrekenen naar de juiste eenheid en na controle aan de rapportage grens waarbij eventueel maal 0,7 gedaan wordt. Het is een Gestandaardiseerdewaarde nadat de Rekenwaarde is gecorrigeerd aan bijvoorbeeld de Organische stof/Lutum. De Gestandaardiseerdewaarde zal tegen de normen gehouden worden en krijgt uiteindelijk het Toetsoordeel. Beide situaties wijzen terug naar hun originele waarde waaruit deze is berekend. In het perfecte geval ontstaat een volgende situatie: Analyse BerekendeAnalyse (Rekenwaarde) BerekendeAnalyse (Gestandaardiseerdewaarde) ToetsOordeel Is het resultaat nadat een Gestandaardiseerdewaarde tegen de normwaarde is gehouden. Hierbij wordt dan een verwijzing naar de Gestandaardiseerdewaarde bijgehouden. Het kan voorkomen dat meerdere Gestandaardiseerdewaarde een ToetsOordeel vormen, dan is er een verwijzing naar meerdere Gestandaardiseerdewaardes. (Bijvoorbeeld een Monster oordeel bij de BBK.) Normwaarde De normwaardes waarop een ToetsOordeel is gebaseerd worden ook teruggekoppeld naar de gebruiker. (Staat niet in bovenstaande figuur.) Toetsmonster Indien meerdere monsters aangeleverd worden in één aanroep, dan wordt hiervan een toetsmonster
© I.T. Works
18
18 september 2012
Technische Ontwerp BoToVa berekend. Er zal een extra monster terug geleverd worden met de verwijzing naar de originele monsters. Dit Toetsmonster heeft dan alleen BerekendeAnalyses en geen Analyses.
Uitwerking in IM0101 – Informatie model Hieronder staat het model zoals dit de logische wereld beschrijft. Alle velden en relaties zoals hierin beschreven worden later uitgewerkt in een Product model waarin de koppeling ligt met andere standaarden.
Uitwerking in IM0101 – Product model Hieronder staat een stukje van het model zoals dit technisch is gekoppeld aan andere standaarden uit o.a. ISO, NEN3610 en GML.
© I.T. Works
19
18 september 2012
Technische Ontwerp BoToVa
Figuur 1. Uitwerkingen in IM0101 met Observations
© I.T. Works
20
18 september 2012
Technische Ontwerp BoToVa 4. Codelijsten Hieronder staat enkele codelijsten, deze staan als concept vermeld om een goed beeld te vormen. Ze moeten nog gecontroleerd en vastgesteld worden.
Toetsingen In deze codelijst is de kolom Basisschem keuze opgenomen, dit moet de keuze zijn in het eerste stroomschema van de rekenmeesters. De waardes die hier nu instaan kunnen niet kloppen, deze moeten vastgesteld worden door de rekenmeesters. Code T.1.2.
Toetskader BBK
T.2.2
BBK
T.3.2.
BBK
T.4.2.
BBK
T.5.2
BBK
T.6.2.
BBL
T.7.2
BBK
T.8.2
GBT
Basisschema keuze Landbodem/grond/waterbodem/bag ger/GBT emissietoetswaarde Landbodem/grond/waterbodem/bag ger/GBT emissietoetswaarde Landbodem/grond/waterbodem/bag ger/GBT emissietoetswaarde Landbodem/grond/waterbodem/bag ger/GBT emissietoetswaarde Baggerspecie Verspreiding op aangrenzend perceel Landbodem/grond/waterbodem/bag ger/GBT emissietoetswaarde Landbodem/grond/waterbodem/bag ger/GBT emissietoetswaarde GBT (Emissiewaarde)
T.9.2
GBT
GBT (Emissiewaarde)
T.10.2
GBT
GBT (Emissiewaarde)
T.11.2
GBT
GBT (Emissiewaarde)
T.12.2
WBB
T.13.2 T.27.2
WBB WBB
Landbodem/grond/waterbodem/bag ger/GBT emissietoetswaarde Grondwater Landbodem/grond/waterbodem/bag ger/GBT emissietoetswaarde
n.t.b. n.t.b.
Bouwstoffen Reinigbaarhei dstoetsing
Beschrijving Beoordeling kwaliteit van grond en bagger bij toepassing op of in de bodem Beoordeling kwaliteit ontvangende landbodem Beoordeling kwaliteit van bagger en ontvangende bodem bij toepassing in een oppervlaktewaterlichaam Beoordeling kwaliteit van grond bij toepassing in bodem of oever van oppervlaktewater Beoordeling verspreidbaarheid van baggerspecie op aangrenzend perceel (landbodem) Beoordeling kwaliteit van bagger bij verspeiden in een zoet oppervlaktewaterlichaam Beoordeling verspreidbaarheid van baggerspecie in zoute oppervlaktewaterlichamen Beoordeling kwaliteit van grond bij GBT op landbodem (emissietoetswaarde) Beoordeling kwaliteit van baggerspecie bij GBT op landbodem (emissietoetswaarde) Beoordeling kwaliteit van grond bij GBT in oppervlaktewateren (emissietoetswaarde) Beoordeling kwaliteit van baggerspecie bij GBT in oppervlaktewateren (Emissietoetswaarde) Beoordeling kwaliteit van grond volgens Wbb Beoordeling kwaliteit van grondwater volgens Wbb Beoordeling kwaliteit van grond en baggerspecie bij GBT (Emissiewaarden) Bouwstoffentoetsing Reinigbaarheidstoetsing
Zie hoofdstuk 3 van document Toetsingregels Bodem v1.2.
Toetsregels Nummer T.0. T.1.1 T.1.2. T.2.2 T.3.1. T.3.2. T.4.1 T.4.2. T.5.1
Toelichting Globaal stroomschema Beoordeling kwaliteit van grond en bagger bij toepassing op of in de bodem op parameterniveau Beoordeling kwaliteit van grond en bagger bij toepassing op of in de bodem op monsterniveau Beoordeling kwaliteit ontvangende landbodem monsterniveau Beoordeling kwaliteit van bagger en ontvangende bodem en oever bij toepassen in een oppervlaktewaterlichaam op parameterniveau Beoordeling kwaliteit van bagger en ontvangende bodem bij toepassing in een oppervlaktewaterlichaam op monsterniveau Beoordeling kwaliteit van grond bij toepassing in bodem of oever van oppervlaktewater parameterniveau Beoordeling kwaliteit van grond bij toepassing in bodem of oever van oppervlaktewater monsterniveau Beoordeling verspreidbaarheid van baggerspecie op aangrenzend perceel (landbodem) parameterniveau
© I.T. Works
21
18 september 2012
Technische Ontwerp BoToVa T.5.2 T.6.1. T.6.2. T.7.1 T.7.2 T.8.2 T.9.2 T.10.2 T.11.2 T.12.2 T.13.1 T.13.2 T.14 T.15.1 .a T.15.1 .b T.15.2 T.15.2.1 T.15.2.2 T.15.3 T.15.4 T.15.5 T.15.6 T.15.7 T.16.1 T.16.2 T.17.1 T.17.2 T.18 T.19. T.20. T.21. T.22. T.23 T.24. T.25 T.26.I T.26.II T.26.III T.27.1 T.27.2 T.28. T.29 T.30 T.31.2 T.32 T.33. T.34. T.35 T.36. T.37. T.38.
Beoordeling verspreidbaarheid van baggerspecie op aangrenzend perceel (landbodem) monsterniveau Beoordeling kwaliteit van bagger bij verspreiden en in een zoet oppervlaktewaterlichaam op parameterniveau Beoordeling kwaliteit van bagger bij verspeiden in een zoet oppervlaktewaterlichaam op monsterniveau Beoordeling verspreidbaarheid van baggerspecie in zoute oppervlaktewaterlichamen op parameterniveau Beoordeling verspreidbaarheid van baggerspecie in zoute oppervlaktewaterlichamen op monsterniveau Beoordeling kwaliteit van grond bij GBT op landbodem (emissietoetswaarde) monsterniveau Beoordeling kwaliteit van baggerspecie bij GBT op landbodem (emissietoetswaarde) monsterniveau Beoordeling kwaliteit van grond bij GBT in oppervlaktewateren (emissietoetswaarde) monsterniveau Beoordeling kwaliteit van baggerspecie bij GBT in oppervlaktewateren (Emissietoetswaarde) monsterniveau Beoordeling kwaliteit van grond volgens Wbb (monsterniveau) Beoordeling kwaliteit van grondwater volgens Wbb (parameterniveau) Beoordeling kwaliteit van grondwater volgens Wbb (monsterniveau)
Beoordeling individuele parameters INPUT Beoordeling individuele parameters INPUT Vaststelling vracht individueel Vaststelling Uitvoer na reiniging per stof per techniek Vaststelling VRACHT UIT & 1e schifting reinigbaarheid obv rendement berekening % residu Toetsing Reinigbaarheid Bepaal OS, Lu op monsterniveau versie Berekening van Organische stof vanuit Gloeiverlies,Gloeirest Bepaal OC op monsterniveau berekening PAF Beoordeling kwaliteit van grond en baggerspecie bij GBT (Emissiewaarden) parameterniveau Beoordeling kwaliteit van grond en baggerspecie bij GBT (Emissiewaarden) monsterniveau Toetsregels overschrijding AW verspreiding in zoet (Teller E) bouwstoffen hergebruik - Emissie - monsterniveau Bepaal rekengehalte somparameters als fractie van IW Bepaling van gehalten van somparameters Bepaling van gemiddelde gehalten PAF metalen bereken concentratie poriewater PAF metalen correctie poriewater Aw en DOC PAF organisch bereken concentratie poriewater
Zie hoofdstuk 3 van document Toetsingregels Bodem v1.2.
© I.T. Works
22
18 september 2012
Technische Ontwerp BoToVa ToetsnormParameters Code AW IND … n.t.b.
Publicatie
Omshcrijving Achtergrondwaarde Industrie
5. Parameters en resultaten per toetsregel Tabel 1. Parameters en resultaten voor "T1.2 Bagger bij toepassing op monster niveau" als voorbeeld. Rekenregel T0 Algemeen
T26 Bepalen OS en Lutum
T21 Rekengehalte
T34 Somparameters
T19 Standaardisatie
T1.1 Kwaliteit van Grond of Bagger op parameter niveau
T1.2 Bagger bij toepassing op monster niveau
T35 Middeling
Parameters Monsters met Matrix Uit te voeren toetsing Normen terugsturen Ja of Nee Middeling uitvoeren Ja of Nee --- Zie uit te voeren toetsing --Parameters Lu, OS, Gloeiverlies of Gloeirest
Type In In In In Uit In
Vastgestelde Lu, OS Analyses BerekendeAnalyses (rekenwaarde)
Uit In Uit
Rapportagegrens als Norm
Uit
BerekendeAnalyses (rekenwaarde)
In
Somparameters als BerekendeAnalyses (rekenwaarde) BerekendeAnalyses (rekenwaarde)
Uit
Parameter
In
Parameter
BerekendeAnalyses (gestandaardiseerdewaarde) BerekendeAnalyses (gestandaardiseerdewaarde)
Uit In
Parameter
Toetsoordelen Tellers (aantal overschrijdingen en aantal getoetst aan norm) Meldingen op parameter niveau
Uit Uit
Parameter Parameter
Normwaardes BerekendeAnalyses (gestandaardiseerdewaarde)
Uit In
ToetsOordelen Tellers ToetsOordeel Vrijstelling aantal
In In Uit Uit
Monsters
In
© I.T. Works
Uit
23
Opmerking
Niveau Monster Monster Monster Monster
Lutum en Organisch stof, indien niet bepaald kunnen worden dan worden sommige parameters niet getoetst.
Parameter
Bepaald aan de Rapportagegrens en eventueel een 0.7 factor. Rapportagegrens eisen wordt gezien als extra norm
Gecorrigeerde meetwaardes
Speciale situaties als: Zorgplicht van toepassing. Misschien als Log, of als ToetsOordeel Indien gewenst
Op basis van de tellers is een aantal vrijstelling mogelijk.
Monster Parameter Parameter Parameter
Parameter
Parameter
Parameter Parameter
Parameter Parameter Monster Monster Monster
18 september 2012
Technische Ontwerp BoToVa ToetsOordeel BerekendeAnalyses (rekenwaarde) Nieuwe Monster Nieuwe BerekendeAnalyses (rekenwaarde) --- Opnieuwe toetsingcyclus in ---
In In Uit Uit
Monster Parameter Monster Parameter Geen behandelingen meer, alles is direct klaar om mee te rekenen.
De bovengenoemde proces stappen worden volgens de rekenregels uitgevoerd.
© I.T. Works
24
18 september 2012
Type
Codelijst
Opmerking
Voorbeeld
type matrix
codelijst
IHW: TypeCompartiment
Guid - SIKBID
GUID
ffff-ffff-fff-ffff
code/naam
string (max 50)
M001
omschrijving
string (max 200)
Dit is een omschrijving bij het monster
datum/tijd
datetime
%lutum
Extra (bouwstoffen) instellingen
Parameter/ Toetsinstelling Parameter/ Toetsinstelling Toetsinstellingen
unieke identificatie van de stof
GUID/SIKBID
parameter grootheid
codelijst
IHW: TypeGrootheid
parameter code
codelijst
IHW: TypeChemischeStof
parameter hoedanigheid
codelijst
IHW: TypeHoedanigheid
gehalte
float
eenheid
codelijst
IHW: TypeEenheid
mg/kg ds, mg/l, %
limiet symbool
codelijst
IHW: TypeBepalingsGrens
<, >
kwaliteits oordeel
codelijst
IHW: KwaliteitsOordeel
detectielimiet, rapportage limiet, verhoogde rapportagelimiet
Toetsregel
Int
Toetsregel versie
Int
Monsterniveau
%OS (%Gloeiverlies, %Gloeirest, %Fe2O3, %OC)
grond, grondwater, bagger, type bouwstof
2002-05-30T09:00:00 Wordt meegevens in de lijst met parameters of instelling Wordt meegevens in de lijst met parameters of instelling Per monster? Wat te doen met middeling?
Parameterniveau eeee-eeee-eee-eeee Concentratie, Temperatuur, pH, Aantal, Dikte, massafractie Chemische stof - Lood, Chemische stof- PAK 10, Object - Badgasten Filtratie, drooggewicht, korrelgroottefractie, paf 12,34
Toetsinformatie Wordt opgeslagen in de Database, deze kan opgevraagd worden via de service en is dynamisch. Wordt opgeslagen in de Database, deze kan opgevraagd worden via de service en is dynamisch.
welke monsters moeten gemiddeld worden Toetsinstellingen Type instelling
codelijst
floatValue
Float
dateTimeValue
DateTime
stringValue
string (100)
Nieuw: Testproperties
Vormgegeven bouwstof ja/nee, Niet-Vormgegeven bouwstof ja/nee Indien Boolean dan in dit veld een: 1 of een 0
Technische Ontwerp BoToVa 6. Logging Tijdens het toetsen en valideren wordt een logbestand bijgehouden per Toetsregel. Dit logbestand kan naar wens in twee types worden teruggegeven: XML of HTML. Een voorbeeld van een logbestand staat hieronder.
Samenvatting Toetsing en Validatie
Rekenregel
Omschrijving
Meldingen
Errors
T.0
Basis
0
0
T.26
Vaststellen Lutum en OS
0
0
T.21
Bepaal rekengehalte
2
0
T.34
Somnormen berekenen
0
1
T.19
Standaardiseren rekengehalte
0
1
T.0 Basis Type
Onderwerp
Omschrijving
Aantal monsters
Er is 1 monster aangeleverd met 12 resultaten
Type Toetsing
De toetsing: BBK Bodem is aangevraagd
T.26 Vaststellen Lutum en OS Type
Onderwerp
Omschrijving
Gehalte Lutum
Het gehalte Lutum is vastgesteld op: 12,4
T.21 Bepaal rekengehalte Type
Onderwerp
!
Correctie
!
Eenheid Rekengehaltes
Omschrijving Lood is gecorrigeerd met factor 0,7 – Rekenwaarde: [12,4] Lood is gecorrigeerd naar de juiste eenheid. – Rekenwaarde: [124,0]. Koper is overgenomen zonder bewerking – Rekenwaarde: [45,3]
T.34 Somnormen berekenen Type
Onderwerp
Omschrijving
X
Incompleet
Enkele parameters ontbreken in de som PAK 10.
Somparameters
Som PAK 10 –stof xx [12,1]
Somparameters
Som PAK 10 –stof yy [3,7]
Somparameters
Som PAK 10 –stof zz [0,7]
Somparameters
Som PAK 10 is vastgesteld. – Rekenwaarde: [44,2]
T.19 Standaardiseren rekengehalte
Technische Ontwerp BoToVa Type
Onderwerp
X
Organisch gehalte
Omschrijving OS ontbreekt, toetsing kan niet volledig worden uitgevoerd Lood is gestandaardiseerd. - Rekenwaarde: [124,0] , Gestandaardiseerdewaarde: [56,2] Koper is gestandaardiseerd. - Rekenwaarde: [45,3] , Gestandaardiseerdewaarde: [56,2]
Gestandaardiseerde Gehalte Gestandaardiseerde Gehalte
Naast deze exacte doorloop logging, worden ook meldingen die vermeld staan in de rekenregels van de rekenmeesters teruggekoppeld in IM0101-xml bij de Monsters en de BerekendeAnalyse.
© I.T. Works
27
18 september 2012