generic data framework (gdf)

advertisement
GENERIC DATA FRAMEWORK
(GDF)
1. Beschrijving
Administraties moeten vaak aan burgers vragen om formulieren in te vullen. Deze formulieren bevatten
meestal een boomstructuur van invulvelden en evolueren in de loop van de tijd. Met de nieuwe
mogelijkheden die het internet en de informatica vandaag bieden, automatiseren de administraties
steeds meer de inbreng, de doorgave en de validatie van deze formulieren. Met de
internettechnologieën is formulieren invullen en doorsturen eenvoudig te implementeren. Voor de
validatie is echter een complexer systeem nodig.
Momenteel worden de validatiesystemen ontwikkeld hetzij vanaf nul, hetzij op basis van een business
rules engine. De nadelen van deze systemen zijn respectievelijk de hoeveelheid werk en de intrinsieke
beperkingen van de engine. Om deze nadelen op te vangen, ontwikkelden we een generiek
gegevensframework dat de naam GDF (Generic Data Framework) meekreeg.
Met GDF is het mogelijk om op basis van herbruikbare Java-componenten een systeem te ontwikkelen
voor de automatische validatie van formulieren die evolueren doorheen de tijd. In GDF zorgt een rules
engine ervoor dat de gegevens van elektronische formulieren gevalideerd kunnen worden op basis van
een formuliervoorbeeld en een geheel van business rules. Aan de hand van een gebruikersinterface
kunnen
de
business-analisten
formulieren
aanmaken,
hierin
testgegevens
invoeren,
gegevensverzamelingen importeren en validatieregels specificeren in een taal waarvan de syntaxis lijkt
op OCL (Object Constraint Language). Tot slot biedt een plug-in-systeem aan Java-programmeurs de
mogelijkheid om aan de regeltaal nieuwe basisfuncties toe te voegen die geïntegreerd zijn in de andere
systemen van de organisatie.
De voordelen van GDF zijn talrijk. Door de ontwikkeling van het beheer van de formulieren te baseren
op een framework wordt het in de eerste plaats mogelijk het opstarten te versnellen dankzij hergebruik.
Door een open framework te gebruiken, is het bovendien niet langer noodzakelijk om specifieke
extensies te ontwikkelen voor propriëtaire rules engines. Door ten slotte de regels extern te specificeren
in een edittool met grafische interface kunnen businessanalisten regels inbrengen zonder dat ze
moeten kunnen programmeren.
Het GDF-framework wordt geëxploiteerd in verschillende kritieke e-governmentprojecten. Zo wordt het
onder meer in productie geëxploiteerd in verschillende kritieke systemen van de sociale zekerheid. De
performantie en stabiliteit van GDF in deze systemen zijn uitstekend gebleken. GDF is dus een
uitgelezen framework voor de ontwikkeling van kritieke overheidstoepassingen waarbij elektronische
formulieren moeten worden ingebracht en gevalideerd.
2. Beschikbaarheid
Het GDF-framework wordt geëxploiteerd in verschillende kritieke e-governmentprojecten. Momenteel
wordt het in productie onder meer geëxploiteerd in de systemen DmfA, ASR, Odysseus, Penskad en
Iboss. De exploitatie van GDF in de toepassingen Dimona en Front Office Tewerkstelling wordt
bestudeerd.
88
3. Gebruiksvoorwaarden herbruikbare component
De component kan door andere Belgische overheidsdiensten worden gebruikt: ja.
De gebruiksregeling moet worden afgesproken naar aanleiding van een installatieproject. Hiertoe
worden de geïnteresseerde overheidsdiensten verzocht zich te richten tot de contactpersoon.
4. Aanvraagprocedures gebruik
Richt u tot uw contactpersoon. Wij nemen het initiatief om uw vragen te beantwoorden en/of een
studievergadering voor te stellen.
5. Support (servicemodus)
De supportmodaliteiten voor de diensten in productie zullen worden meegedeeld tijdens de
inproductiestelling.
6. Functionele informatie
U vindt hieronder een overzicht van de door GDF geboden functionaliteiten.
6.1.
Beschrijving input/output van de herbruikbare component
De belangrijkste functionaliteit van GDF is de validatie van formulieren door de rules engine. De input
van de rules engine is een formulier ingevuld met gegevens ("Data"), een formuliervoorbeeld ("Model")
en een set van regels ("Rules"). Op basis van deze input valideert de rules engine de conformiteit van
de gegevens ten opzichte van het voorbeeld en past het vervolgens de validatieregels toe. Op grond
van de regels kan de rules engine gegevens van het formulier wijzigen en er notificaties van
anomalieën aan toevoegen. De output van de validatie van een formulier is een nieuw gewijzigd
formulier ("Data prime") en een reeks anomalieën met betrekking tot het formulier ("Anomalies"). Deze
output kan dan verder verwerkt worden in de toepassing.
De regels zijn gestructureerd in een boomstructuur met 4 niveaus. Op het hoogste niveau biedt de tool
de mogelijkheid om "rule suites" te definiëren. Een rule suite bestaat uit "packages". Rule suites en
packages kunnen individueel uitgevoerd worden door de rules engine. Binnenin de packages zijn
"atomische regels" gegroepeerd in "rule sets". De rule sets kunnen andere rule sets bevatten en
kunnen verbonden zijn met specifieke soorten blokken.
Het schrijven van de validatieregels wordt ondersteund door een rules editor. De gestructureerde regels
links in de boomstructuur kunnen rechts geraadpleegd worden in een editor met verschillende
tabbladen en velden. In de verschillende tabbladen van de editor kunnen allerlei gegevens
gespecificeerd worden: informatie in verband met de regel, de "constraint" die betrekking heeft op de
velden van het formulier en die een beroep doet op de basisfuncties, de eventuele verbetering van het
formulier naargelang het resultaat van de regel, de "pre-condition" om de regel toe te passen en de lijst
van de beschikbare functies. De constraint editor laat toe de constraint te specificeren in een taal die
OCL benadert, een anomalie te specificeren in een vooraf gedefinieerde lijst, aan te geven met welk
blok van het formulier de anomalie verbonden moet worden en eventueel terug te keren naar een
eerdere regel.
Om formulieren te bewerken, biedt GDF een grafische gebruikersinterface aan. Met deze interface
kunnen formulieren worden geïmporteerd, aangemaakt en bewerkt. De verschillende blokken en velden
van het formulier kunnen in een boomstructuur worden weergegeven. Voor elk element van de
boomstructuur is er een venster dat toelaat de verschillende velden weer te geven en te bewerken.
Dankzij een zoekfunctie zijn velden en gegevens makkelijk terug te vinden. Tot slot is er een
importfunctie en een knippen/plakken-functie waarmee grote gehelen van velden binnen het formulier
snel gewijzigd kunnen worden.
89
In de praktijk kunnen de formulieren en hun regels variëren in de loop van de tijd. GDF werd specifiek
ontworpen om deze veranderingen in de tijd te ondersteunen. Het inputsysteem van de rules engine is
zodanig ontworpen dat formulieren van een gegeven periode gevalideerd kunnen worden op basis van
de regels die op deze periode van toepassing zijn. Verder laat het begrip "scope" van elke GDFcomponent toe de gegevens te verwerken in functie van een specifieke context. Deze context kan zo
een gegeven periode specificeren. De context kan ook de uitvoeringsomgeving - ontwikkeling, test,
acceptatie, productie - of de versie van de validatieregels specificeren.
6.2.
Beschrijving van de integratie- en interfacemogelijkheden van de herbruikbare component
GDF wordt geleverd in de vorm van Java-library's. Elk systeem dat geschreven is in Java, dat
compatibel is met Java of waarvoor een interfacing met Java-systemen mogelijk is, kan gebruik maken
van GDF. Dit omvat onder meer de systemen J2SE, J2EE, WebLogic, WebSphere, enz. De Javaversies die ondersteund worden, zijn de versies JDK 1.4 en volgende.
De taal waarin de regels beschreven worden, is een onderdeel van OCL, met enkele specifieke
toevoegingen. Een zogenaamde "primitieve" verzameling van functies maakt een interfacing mogelijk
tussen de rules engine en de andere systemen van de organisatie. Voor elke nieuwe primitieve functie
moet een plug-in in Java geschreven worden.
6.3.
Beschrijving van de in aanmerking genomen volumes bij de ontwikkeling van deze
component
GDF werd ontworpen om extreem grote formulieren te valideren, in de orde van een miljoen velden. In
het kader van het DmfA-systeem van de sociale zekerheid verwerkt GDF elk kwartaal duizenden regels
die betrekking hebben op miljoenen velden. Interne benchmarks op eenvoudige machines tonen aan
dat GDF in één uur gemiddeld een duizendtal regels kan uitvoeren die betrekking hebben op tien
miljoen velden. We kunnen dus zeggen dat GDF de meeste groottes van systemen voor
formuliervalidatie ondersteunt.
6.4.
Beschrijving van andere relevante elementen
Momenteel worden de formuliergegevens ingevoerd in GDF in de vorm van XML-bestanden. Op termijn
zal een webversie van GDF het mogelijk maken om web-interfaces te genereren waarmee de
formulieren online kunnen worden ingevoerd en gevalideerd. De ontwikkeling van deze webversie is
voorzien als uitbreiding van GDF op middellange termijn.
De ontwikkeling van een model-editor is eveneens voorzien. Momenteel wordt het GDFgegevensmodel gedefinieerd op basis van een XML-bestand. In de toekomst zullen de GDFuitbreidingen aangestuurd kunnen worden vanaf een model-editor volgens een MDA-aanpak (ModelDriven Architecture). Deze model-editor op basis van UML zal gepersonaliseerde modellen kunnen
exporteren naar een XML-formaat. Er werd al een proof of concept uitgewerkt voor het DmfA-systeem.
De ontwikkeling van een afgewerkte editor is voorzien op korte termijn.
7. Technische informatie
De component GDF is geschreven in Java. Het specificatieniveau van de taal is JDK 1.4. De grootte
van de gecompileerde component in een Java-library bedraagt 1 Mb. Een XML-bestand specificeert het
GDF-gegevensmodel. De gebruikersinterfaces - form en rule editors - worden afzonderlijk geleverd.
Een gedetailleerde technische documentatie van ongeveer 200 pagina's is beschikbaar.
De input- en outputformulieren kunnen verschillende formaten aannemen. XML is het standaardformaat
van GDF. Andere formaten, zoals flat files of relationele databanken, kunnen ondersteund worden. Om
nieuwe formaten te ondersteunen, moet een plug-in ontwikkeld worden om de gegevens te kunnen
lezen en schrijven overeenkomstig het GDF-gegevensmodel.
90
Download