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