Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES Technische Architectuur Project Voorstudie CadGIS FOD Financiën David Vandaele – Didier Deschuyteer 18/01/2008 Version 1.0 Document : 317549925 1/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES Inhoudstafel 1 Document Versies ..................................................................................................................... 4 2 Verklarende lijst van afkortingen ............................................................................................... 5 3 Introductie .................................................................................................................................. 6 3.1 Doel van het document ....................................................................................................... 6 3.2 Referentie documenten ....................................................................................................... 6 4 Beschrijving van het systeem .................................................................................................... 7 4.1 Architectuur overzichtsschema ........................................................................................... 7 4.2 Overzicht componenten en modules................................................................................. 10 4.3 Web toepassing................................................................................................................. 11 4.3.1 De Presentation Layer ................................................................................................ 11 4.3.2 De Services Layer ....................................................................................................... 11 4.3.3 De Persistence Layer .................................................................................................. 12 4.4 Module Fat Client .............................................................................................................. 12 4.4.1 Thin Client vs Fat Client .............................................................................................. 13 4.4.2 Vereisten voor Fat Client applicaties .......................................................................... 13 4.4.3 Platform keuze ............................................................................................................ 13 4.5 Module GIS Component .................................................................................................... 16 4.6 De GIS Engine/Server ....................................................................................................... 16 4.7 Module Transformatie ....................................................................................................... 17 4.7.1 Toepassingsgebieden ................................................................................................. 17 4.8 Module PDF / Rapporten .................................................................................................. 18 4.9 Module IAM ....................................................................................................................... 20 4.9.1 Algemeen .................................................................................................................... 20 4.9.2 Functies, Rollen, Rechten en het Territoriale aspect .................................................. 21 4.9.3 Toepassing van IAM binnen CadGIS ......................................................................... 22 4.9.4 Algemeen Federaal IAM en interne IAM ..................................................................... 22 4.10 Web Services .................................................................................................................. 23 4.10.1 WMS (Web Map Service) ......................................................................................... 23 4.10.2 WFS (Web Feature Service) ..................................................................................... 24 4.10.3 WPS (Web processing Service) ............................................................................... 24 4.10.4 Andere Services ........................................................................................................ 25 4.10.5 Aanbieden van gegevens aan derde partijen ........................................................... 25 4.10.6 Opvragen van gegevens van derde partijen ............................................................. 25 5 Beschrijving van de verschillende omgevingen ...................................................................... 26 5.1 Development omgeving (DEV) .......................................................................................... 26 5.2 Test omgeving (TST) ........................................................................................................ 26 5.3 Acceptatie omgeving (ACC) .............................................................................................. 26 5.4 Productie omgeving (PRD) ............................................................................................... 27 5.5 Training omgeving (TRA) .................................................................................................. 27 5.6 Andere omgevingen .......................................................................................................... 27 6 Transacties .............................................................................................................................. 28 6.1 ACID .................................................................................................................................. 28 6.2 Long transactions .............................................................................................................. 28 6.3 Java Transaction API ........................................................................................................ 29 6.4 CadGIS GeoDB transactions ............................................................................................ 29 6.5 Acties in geval van een crash tijdens transacties ............................................................. 30 7 Inspire ...................................................................................................................................... 31 7.1 Impact van Inspire op CadGIS .......................................................................................... 31 8 ICT Standaarden van FOD Financiën ..................................................................................... 32 8.1 Het CCFF .......................................................................................................................... 32 8.1.1 Algemeen .................................................................................................................... 32 Version 1.0 Document : 317549925 2/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES 8.1.2 De rol van het framework ............................................................................................ 32 8.1.3 Toegevoegde waarde en toepassing in het kader van CadGIS ................................. 32 8.1.4 Schaalbaarheid van de applicatie in zijn omgeving .................................................... 33 9 Bijlagen .................................................................................................................................... 34 Version 1.0 Document : 317549925 3/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES 1 Document Versies Date Versie Beschrijving Auteur 31/08/2007 0.1 Initiële draft David Vandaele 05/09/2007 0.2 Verschillende updates David Vandaele 02/12/2007 0.5 Toevoeging Transformatie, Web Services, Transacties, PDF, Inspire David Vandaele – Didier Deschuyteneer 18/01/2008 0.6 Verwerking opmerkingen. o.a. toevoeging hoofdstuk Omgevingen, updates hoofdstuk IAM, updates Web Services, etc. David Vandaele 07/02/2008 0.7 Verwerking opmerking Fat Client, IAM. David Vandaele 07/02/2008 1.0 Gevalideerde versie David Vandaele Version 1.0 Document : 317549925 4/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES 2 Verklarende lijst van afkortingen Afkorting Betekenis AAPD BFO Algemene Administratie van Patrimonium Documentatie (= AGDP) Big Faceless Organization Digitaal plan van de percelen (kadaster), wordt momenteel gebruikt door de AAPD. CADMAP CCFF CMGH Communicatie Centrum van de Federale Financiën CadMap applicatie voor het beheer van grote modificaties CMGL CadMap applicatie voor het beheer van kleine modificaties DAO Data Access Object EJB Enterprise Java Beans FedICT Federale Overdheidsdienst ICT GED Gestion Electronique de Documents GIS Geographic Information System GML Geography Markup Language IAM JDBC Identity en Access Management Java Database Connectivity JEE Java Enterprise Edition JRE Java Runtime Environment JSP Java Server Pages JTA Java Transaction API JTM Java Transaction Manager JWS Java WebStart technologie OGC Open Geospatial Consortium (het vroegere Open GIS Consortium) Patris Patrimony Information System PDF Portabel Document Format POJO Plain Old Java Object PUR Patrimonial Unit of Real Estate SOAP Simple Object Access Protocol WFS Web Feature Service WMS Web Map Service XML eXtensible Markup Language XSL-FO XML Stylesheet Language – Formatting Objects Version 1.0 Document : 317549925 5/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES 3 Introductie 3.1 Doel van het document Dit document bevat een overzicht van de technische architectuur van de CadGIS applicatie. Het is een uiteenzetting van gebruikte technologieën, gebruikte standaarden, de opbouw van de applicatie in termen van de verschillende lagen en technische aspecten van de applicatie. Het document beschrijft enerzijds deze architectuur in zijn geheel en anderzijds geeft het een beschrijving van de technische aspecten. 3.2 Referentie documenten Hieronder een lijst van documenten waar naar verwezen wordt vanuit dit document. Titel van het document Bestandsnaam van het document [FUNCTIONELE-ARCHITECTUUR] Architecture_Fonctionnelle_préétude_CADGIS_FR_v1.0.doc [FUNCTIONELE-ARCHITECTUURSCHEMA] Architecture_fonctionnelle.vsd [TO-BE-ANALYSE] Analyse_Conceptuelle_préétude_CADGIS_FR_v1.0.doc Version 1.0 Document : 317549925 6/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES 4 Beschrijving van het systeem Dit hoofdstuk geeft een overzicht van de algemene architectuur van CadGIS in zijn geheel. CadGIS zal vanuit een technisch standpunt bestaan uit een reeks verschillende componenten en modules die elk hun specifieke taken en verantwoordelijkheden hebben, die onderling samenwerken en die zich bevinden in een gelaagde structuur. Wat volgt is eerst een schematische voorstelling van de architectuur in zijn geheel. Vervolgens worden de individuele onderdelen van het systeem besproken. 4.1 Architectuur overzichtsschema Onderstaand schema is de schematische voorstelling van de algemene technische architectuur van CadGIS. In hoofdstuk 9 Bijlagen vindt u een versie in het oorspronkelijke A3 formaat. Version 1.0 Document : 317549925 7/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES CLIENT SIDE SERVER SIDE FOD FINANCIEN DMZ Interne LAN GIS Server / Engine < n Inter > et ATLAS RDC JEE Application Server Services Layer Presentation Layer Derde Partij WMS/WFS Provider Persistence Layer Gis En Mod gine ule Derde Partij WMS/WFS Provider Patris Enterprise GeoDb Edition 3rd pa Gis lib rty rary JS DaoP’s Dao Strut s Con fig Proxy Patris Enterprise GeoDb Publication Derde Partij WMS/WFS Consumer Derde Partij WMS/WFS Consumer L O A D Apache Webserver PDF Mod ule L O A D Controller Fat Client Browser Landmeters Burgers Partners Ondernemingen cluster B A L A N C I N G B A L A N C I N G Patris Enterprise GeoDb Controle JS DaoP’s Dao Actio Servl n et Apache Webserver Patris Enterprise GeoDb Archive IAM Mod ule JSP’s JS JS PP’s net Intra Patris Alfanumeriek CCFF Framework Aut Autor hen. Com . / IAM pone nt Fat Client Browser i B A T I S Transformation Module Digita Signa l Com ture pone nt Em Com ail pone nt JDB C Ambtenaren FodFin CCFF DB Ambtenaren FodFin en anderen cluster Legende JEE Application Server = Binnenkomende requesten = Buitengaande requesten IAM Policy manager Authentication / IAM Server = Richting van de request = Covered by Version 1.0 Versie: vrijdag 18 januari 2008 Document : 317549925 8/34 PKI Infrastructuur Email Server File Server Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES Version 1.0 Document : 317549925 9/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES 4.2 Overzicht componenten en modules Vanuit een technisch standpunt kan dit project worden onderverdeeld in verschillende grote componenten of modules. Hieronder een overzicht, daarna een uiteenzetting van de individuele componenten en modules. 1. Web toepassing in zijn geheel, bestaande uit Presentation Layer, Service Layer en Persistence Layer. Doet dienst als algemene front end voor de verschillende eindgebruikers (via web browser) en spreekt en stuurt verschillende back-end systemen aan. 2. Fat Client: desktop applicatie voor bewerken van voornamelijk geografische gegevens 3. Module IAM: voor authentication en authorization van gebruikers 4. Module GIS Component: voor de communicatie met en het aansturen van de GIS engine en het verwerken van de output of de gegevens die door de GIS engine worden aangeleverd. 5. De GIS Engine/Gis Server: De GIS software zelf 6. Module PDF / Rapporten: voor het genereren en signeren van PDF documenten. 7. Transformatie Module: voor het transformeren en converteren van verschillende GISen CAD-bestandsformaten. 8. Web Services: voor de communicatie door middel van web services Version 1.0 Document : 317549925 10/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES 4.3 Web toepassing Conform de richtlijnen van Fod Financiën ICT zal de web toepassing gebaseerd zijn op het CCFF Framework en opgebouwd worden volgens het 3 lagen model, de Presentation Layer, Services Layer en Persistence Layer. 4.3.1 De Presentation Layer De Presentation layer is dat deel van de web applicatie dat de interface vormt voor de eindgebruiker, ook wel eens de front-end genoemd. Deze layer is op basis van de reeds beproefde open source technologie Struts van de Apache Software Foundation, en hanteert het welgekende MVC (Model View Controller) design paradigma. Struts ondersteunt het gebruik van een breed gamma van technologieën om webpagina’s te renderen. De technologie om dit onderdeel in te vullen is ook de meest bekende en de standaard in zijn domein, namelijk JSP technologie. Alle webpagina’s van de applicatie die in de browser van de gebruiker getoond zullen worden zullen dus op basis van JSP technologie zijn. Het is de Struts controller component (samen met de Struts config file) van het framework die de flow (op het niveau van navigatie tussen de verschillende webpagina’s) in de applicatie bepaalt. De verschillende Struts “Actions” die gedefinieerd (geprogrammeerd) worden voor het CadGIS project bevatten de code om de Services Layer (zie beneden) aan te roepen en zo de business logic te gebruiken. De Presentation layer gebruikt de “output” of de “resultaten” van de Services layer om ze vervolgens te tonen aan de gebruiker in zijn web browser. Dat kan bijvoorbeeld gaan over het tonen van het inlogscherm, het tonen van perceel gegevens van een perceel, het navigeren op een kaart of bewerkingen uitvoeren op een kaart, enz… Wat deze laatste voorbeelden betreft kan het front-end gedeelte voor een stuk vergeleken worden met de huidige bestaande toepassing CADMAP Extension. 4.3.2 De Services Layer De Services layer vormt het spreekwoordelijke hart van de applicatie, zij bevat de business logica, stuurt de verschillende componenten in het systeem aan, neemt beslissingen, verwerkt gegevens en slaat in feite de brug tussen al de verschillende componenten. De Services layer is op basis van EJB technologie. Een van de belangrijkste en meest cruciale functies van de Services layer binnen de CadGIS applicatie is de communicatie met de GIS Engine en de verwerking van de gegevens van de GIS Engine. Een aparte module (of package structuur) zal daarvoor geschreven worden (zie verder). Ook een belangrijke functie van de Services layer is het aansturen van de Persistence layer, het doorgeven van data aan deze layer om op te slaan, of het vragen om data op te halen. Daarnaast zijn er ook nog functies die voornamelijk op de Services layer geïmplementeerd zullen worden, zoals o.a. het genereren en signeren van de PDF documenten en de code met betrekking tot het IAM aspect, de import/export functies, enz… Version 1.0 Document : 317549925 11/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES 4.3.3 De Persistence Layer De Persistence layer staat in voor het bewaren en ophalen van de gegevens die in databanken zijn opgeslagen. Het CCFF framework voorziet de basis componenten (Dao’s) om de databanken aan te spreken of om gegevens via mainframe aan te spreken. Deze Dao’s zijn gebaseerd op iBatis technologie. iBatis is een populair open source persistence framework van de Apache Software Foundation dat het mogelijk maakt om SQL queries of Stored Procedures te mappen naar POJO”s (Plain Old Java Objects). De queries worden opgeslagen in XML files en worden dankzij het framework automatisch ingeladen. Deze technologie is algemeen gesproken eenvoudiger in gebruik dan de zogenaamde “object relation mapping” tools zoals bijvoorbeeld Hibernate. iBatis zelf maakt gebruik van JDBC technologie om de databases aan te spreken. In concreet zal de Persistence layer van de webapplicatie de Patris Alfanumerieke Databank(en) aanspreken voor het ophalen van de alfanumerieke gegevens. De databank(en) Patris GeoDb zal door voornamelijk door de Gis Engine zelf worden aangesproken, daarvoor heeft de Gis Engine de Persistence layer van de web applicatie niet nodig. Er bestaat een koppeling tussen de gegevens die zich in de Patris GeoDb bevinden en de gegevens die zich in de Patris Alfanumerieke Database(s) bevinden. Dit gebeurt via het systeem van de zogenoemde PUR’s, een systeem dat een unieke “key” voorziet voor elke koppeling van atomische informatie in de databases. Puur technisch spreken we over unique en foreign keys in de database(s). Meer informatie over het systeem van PUR’s zijn terug te vinden in het document [TO-BE-ANALYSE]. 4.4 Module Fat Client De CadGIS applicatie in de vorm van een webtoepassing heeft heel wat voordelen en zal in eerste instantie voornamelijk ingeschakeld kunnen worden voor eenvoudige functionaliteiten zoals consultatie van gegevens. Complexere functionaliteiten zoals het uitvoeren van bewerkingen op geografische elementen, spatial operaties enz. stellen echter zwaardere eisen aan zowel de client kant (eindgebruikers) als aan de server machines en de netwerk infrastructuur. Dat maakt dat er naast een thin client (web toepassing) ook nood is aan een fat client oplossing (desktop applicatie). Qua functies zal een dergelijke fat client zowel de functionaliteiten van de huidige CMGL als CMGH maar ook die van toepassingen als bijvoorbeeld GED kunnen combineren. Exact welke van de benodigde functionaliteiten in de web toepassing en welke in de fat client worden voorzien, dat zal in een latere fase duidelijker worden naarmate de functionele vereisten ook preciezer worden. Belangrijk is ook dat er naast deze fat client ook met andere tools (off-the-shelf) kan gewerkt worden, de fat client laat dit ook toe. De Transformatie Module (zie ook hoofdstuk 4.7 Module Transformatie) vervult hierin een belangrijke rol. Deze module is een component die kan worden gebruikt zowel in de web applicatie als in de fat client, maar die ook als een aparte (stand-alone) fat client kan ontwikkeld/ingezet worden. Op die manier kunnen andere GIS applicaties immers ook gebruikt worden om allerhande gegevens manipulaties te doen (ext,int), het is de Transformatie Module die de daarvoor benodigde conversies tussen verschillende formaten zal uitvoeren. Version 1.0 Document : 317549925 12/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES 4.4.1 Thin Client vs Fat Client Voornamelijk het feit dat er voor complexere functionaliteiten heel wat meer gegevens tussen de clients en server(s) moeten verstuurd worden maakt dat het gebruik van een fat client voor dergelijke doeleinden aangeraden wordt. Deze zullen op een “off-line” manier gebruikt kunnen worden zodat de netwerkbelasting kan worden beperkt. De manier van werken is dan dat een gebruiker (die daar de juiste rechten voor heeft) aangeeft welke gegevens hij wil bewerken (bvb een perceel in een bepaalde zone). Deze gegevens worden in 1 maal van de server naar de client gebracht en worden vervolgens aan de server kant “gelocked”, zodat niemand anders ze kan wijzigen dan diegene die ze “gelocked” heeft. De gebruiker kan vervolgens met zijn fat client applicatie alle gewenste wijzigingen aan de gegevens aanbrengen. Daarna zal hij gewijzigde gegevens terug naar de server kunnen sturen, waarna ze worden gevalideerd en “ge-unlocked”. 4.4.2 Vereisten voor Fat Client applicaties Zonder twijfel biedt een fat client oplossing een aantal voordelen die bij een thin client minder uitgesproken of zelfs afwezig zijn. Anderzijds, wat betreft de architectuur en technologie keuzes om fat client applicaties te ontwikkelen zijn er ook enkele zeer belangrijke aandachtspunten: Distributie: hoe kan de applicatie gemakkelijk verspreid en geïnstalleerd worden op de nodige client machines. Beveiliging: hoe kan worden gegarandeerd dat enkel bevoegde gebruikers toegang krijgen tot het systeem, en dat zij enkel die functies kunnen uitoefenen die aan hun zijn toegewezen. Version management en onderhoud: hoe kunnen updates en nieuwe versies van de applicatie beheerd, beheerst en verspreid worden. Hoe kan de controle behouden blijven wanneer verschillende versies van de applicatie in omloop geraken en tegelijkertijd actief zijn. Client omgeving: hoe kan men best zorgen dat de applicatie zal functioneren in een zeer heterogene client omgeving, dit wil zeggen met verschillende soorten en versies van operating systems, etc… Server omgeving: hoe kan men zorgen dat de interactie tussen client en server zo optimaal mogelijk kan geïmplementeerd worden en de communicatie zo efficiënt mogelijk zal verlopen. 4.4.3 Platform keuze Voor de architectuur en het platform van een fat client applicatie zijn er natuurlijk verschillende oplossingen mogelijk. Bovenstaande aandachtspunten zijn cruciaal in het nemen van beslissingen en het maken van de juiste keuzes. Volgens de normen van FOD Financiën is het Java platform de aangewezen keuze, en van alle beschikbare technologieën (Java, .NET, C++, VB,…) blijkt het Java platform ook de meeste voordelen te bieden en de meeste troeven in handen te hebben. Er is met name 1 technologie die ideaal blijkt om de rol van fat client in te vullen in deze constellatie, en dat is Java Web Start (JWS) technologie. Java Web Start applicaties zijn volwaardige desktop applicaties die alle voordelen van klassieke desktop applicaties combineren met een reeks van voordelen die voorheen exclusief voor zuivere web applicaties bestemd waren. Version 1.0 Document : 317549925 13/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES Voordelen Een aantal van de opmerkelijke voordelen en mogelijkheden zijn onder andere: Gemakkelijke installatie: gebruikers kunnen de toepassing installeren door op een link op een web pagina te klikken. Platform onafhankelijkheid: een Java Web Start applicatie kan zonder aanpassingen onmiddellijk draaien op Windows 98/NT/2000/ME/XP/Vista, Linux, Unix, Solaris, etc… Automatische updates: Nieuwe versies van de applicatie kunnen zeer eenvoudig gedistribueerd worden naar alle gebruikers, simpelweg door een nieuwe .jar file op de webserver of application server te plaatsen ! De JWS applicaties die op de clients al in gebruik zijn detecteren automatisch dat er updates beschikbaar zijn en halen deze updates ook automatisch binnen ! Beveiliging: Java Web Start profiteert van de reeds inherente beveiliging van het Java platform. Gebruikers van JWS applicaties kunnen gerust zijn dat de applicatie opereert binnen zijn sandbox en zijn systeem niet zal compromitteren. Bovendien zijn JWS applicaties by default digitaal gesigneerd zodat hun origine duidelijk en onvervalsbaar is. Er kan niets gebeuren met het systeem van de gebruiker zonder dat de gebruiker daarvan op de hoogte wordt gebracht. Performantie: JWS applicaties worden locaal op de computer van de gebruiker gecached, hetgeen de performantie ten goede komt. Bovendien, wanneer er updates beschikbaar zijn worden deze incrementeel gedownload om zo weinig mogelijk netwerk verkeer te veroorzaken.Probleemloos verkeer: verkeer tussen client en server is via het HTTP protocol, dus geen problemen met firewalls, proxies, etc.. Desktop integratie: gebruikers kunnen de JWS applicatie op net dezelfde manier gebruiken als native desktop applicaties. Java Web Start installeert een icoon op de desktop en in de programma lijst van de gebruiker, een web browser is niet meer nodig om de applicatie te kunnen gebruiken. Java Runtime Environment (JRE) Management: Java Web Start applicaties ondersteunen meerdere versies van het Java platform. JWS download en installeert automatisch de juiste versie van de JRE wanneer nodig, afhankelijk van de applicatie behoeften en van de configuratie van het systeem van de gebruiker. Beschikbaarheid van ontwikkelingsknowhow: JWS applicaties worden ontwikkeld net als andere Java Swing applicaties. Op de hedendaagse markt zijn er heel wat ontwikkelaars te vinden die deze kennis bezitten. Nadelen Een nadeel van Java Web Start is dat er een Java Runtime Environment (JRE) op de computer van de gebruiker moet geïnstalleerd worden opdat de JWS applicatie (voor de eerste maal) kan uitgevoerd worden. De JRE kan echter ook via de webserver of application server ter beschikking gesteld worden zodat de installatie van de JRE op een client computer ook zeer eenvoudig uitgevoerd kan worden. Het is echter wel zo de vereiste om software te installeren en te beheren op de client machines een inherent nadeel is voor alle mogelijke fat client oplossingen (ongeacht het platform of Version 1.0 Document : 317549925 14/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES technologie keuze). Het Java platform en met name Java Web Start technologie is echter de meest flexibele oplossing inzake distributie van applicaties, versiebeheer en software management. Dat geldt nog meer voor de grotere bedrijven waar er dikwijls een grotere diversiteit van systemen, platformen en technologieën door elkaar worden gebruikt. Version 1.0 Document : 317549925 15/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES 4.5 Module GIS Component Een belangrijk onderdeel van de applicatie is de module voor de interactie met de Gis engine. De manier waarop dit kan worden geïmplementeerd is door een geheel van te ontwikkelen enterprise beans gebruik te laten maken van een 3rd party library die de Gis engine aanstuurt. Verschillende grote leveranciers van Gis enterprise producten bieden Java libraries aan om hun Gis engine aan te sturen. Deze module zal een component zijn dat gesitueerd is in de Services Layer van de web applicatie. (zie hoofdstuk 4.1 Architectuur overzichtsschema) De opzet is om een aangeleverde (3rd party) Gis Library van een Gis vendor in te pluggen (als een of meerdere jar-files) in de CadGis distributable die gedeployed wordt in de Application Server. Op maat gemaakte Enterprise Beans kunnen dan ontwikkeld worden om met behulp van objecten uit de 3rd party Gis Library de gewenste functionaliteiten van de Gis Engine te kunnen benutten. Deze objecten samen vormen een distributable die in zijn geheel kan verspreid worden. Op die manier kunnen de functionaliteiten in dit artefact zowel door de CadGIS web applicatie en fat client aangesproken worden. Dat kunnen onder andere functies zijn zoals: Navigatie op de kaart Opvragen van spatial gerelateerde informatie zoals lengten, afstanden, oppervlakten,… Uitvoeren van bewerkingen op geografische elementen zoals lijnen opdelen en toevoegen, percelen splitsen, ... Uitvoeren van spatial queries zoals zoeken naar x-aantal percelen in een bepaalde zone, zoeken naar alle percelen die voldoen aan een bepaald selectiecriteria (bvb opp. groter dan x), … Uitvoeren van spatial operaties zoals het aanmaken van een buffer rond een perceel of selectie, het splitsen van een perceel, het creëren van een union of merge tussen percelen, … Aanmaken van thematische kaarten Uitvoeren van diverse geo-analyses Het zal ook deze GIS Component zijn die connecties zal maken naar de Web Services die door derde partijen (zoals de regionale gewesten, De Lijn, De Post, etc) kunnen worden aangeboden. (Zie ook hoofdstuk 4.10 Web Services voor meer info over deze Web Services) Op deze manier kan informatie vanuit verschillende bronnen (eigen GIS systeem en derde partijen) verzameld en geïntegreerd worden in 1 kaart. Bijvoorbeeld, een kaart met daarop een straat in een stad met alle percelen, met daarbij alle bushaltes of postbussen in die straat. 4.6 De GIS Engine/Server Een beschrijving van de GIS engine wordt vooralsnog niet in dit document beschreven omdat de architectuur verschilt naargelang de gekozen GIS engine vendor. Zeker is wel dat de GIS Engine moet voldoen aan alle vereiste functionaliteiten, zoals deze staan beschreven in het document [TO-BE-ANALYSE]. Version 1.0 Document : 317549925 16/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES 4.7 Module Transformatie De transformatie module is een component die conversies kan uitvoeren tussen een lijst van verschillende mogelijke bestandsformaten. Doorheen CadGIS zijn er immers verschillende functies waar een dergelijke conversie noodzakelijk kan zijn. 4.7.1 Toepassingsgebieden De eerste toepassing van transformaties zal nodig zijn in de functionele blok “Acquisition de données terrain (intern). De brute gegevens moeten enerzijds omgezet worden in een standaard formaat (GML), daar waar de software van de leverancier dit zelf niet kan doen, en anderzijds moeten deze gegevens weggeschreven worden in een door het Kadaster gestandaardiseerde structuur. Een andere functie binnen CadGIS waar transformaties zullen worden gebruikt is in de functionele blok “Collecte données géographiques”. Na de fase “Enregistrement” moeten de documenten immers gecontroleerd worden op Conformiteit en Kwaliteit. Daarvoor moeten deze documenten eerst in een standaard formaat aangeleverd worden, want de documenten die komen vanuit “Document Extern” kunnen mogelijks in een niet-standaard formaat zijn. Bijvoorbeeld: een landmeter levert een document aan in “Dwg” formaat. CadGIS zal dan een conversie functionaliteit aanbieden aan de eindgebruiker zodat deze file automatisch wordt geconverteerd naar het gewenste GML formaat. Deze transformatie is immers nodig alvorens de controle kan beginnen. Een andere functie waarbij conversie nodig kan zijn is in de functionele blok “Extraction données” (bij Exploitation des données). Hier zullen verschillende bestandsformaten aangeboden worden zoals SHP, DWG, GML, ASCII, … Technisch design De transformatie module zal dus een gamma van verschillende GIS- en CAD-bestandsformaten moeten kunnen converteren. Voor functies die deel uitmaken van de web applicatie zal dat in een back-end proces gebeuren. Maar transformaties zullen ook hun nut kunnen bewijzen binnen in de fat client applicatie. Belangrijk is dus dat het design van deze component zo weinig mogelijk afhankelijk is van de omgeving waarbinnen het draait en zo weinig mogelijk dependencies bevat zodat het zonder wijzigingen zowel aan server-side als aan client-side kan worden ingeschakeld. Programmatie van conversies tussen verschillende GIS- en CAD-bestandsformaten is een complexe en vooral tijdrovende taak, onder meer omdat kennis vereist is over de opbouw en indeling van al deze verschillende formaten, hetgeen niet evident is. Gezien er op de markt reeds verschillende (commerciële) oplossingen bestaan die gespecialiseerd zijn in conversies van GIS- en CAD-bestandsformaten is het zeer aangeraden om een dergelijke oplossing aan te schaffen. Concreet zal er een “wrapper” rond deze “3rd party conversion library” ontwikkeld kunnen worden, waarbinnen deze laatste kan worden “ingeplugd”. Version 1.0 Document : 317549925 17/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES FME Transformation Module Naast de conversie mogelijkheden die door de 3rd party conversion library worden aangeboden kunnen er ook nog bijkomende transformaties worden toegevoegd (plugins, die zelf ontwikkeld worden), Bijvoorbeeld voor het omzetten van de “brute” bestanden komende van leveranciers software die geleverd wordt bij de diverse GPS apparaten en totaal stations (zie functionele blok “Acquisition de données terrain (intern)” in document [FUNCTIONELE-ARCHITECTUURSCHEMA]) naar een standaard formaat. Concreet zal er een Façade ontworpen worden die de verschillende interfaces van de wrapper en plugins in een enkele interface groepeert. De Façade wordt vervolgens doorheen CadGIS aangesproken om de conversies (waar nodig) uit te voeren. 4.8 Module PDF / Rapporten Voor een reeks van functionaliteiten en doeleinden dienen er afdrukbare documenten te worden gegenereerd. Evaluatierapporten van vastgoedmakelaars Minuut schets Proces Verbaal van afpaling Kadastraal uitreksel Georeferentierapport Diverse kaartafdrukken Archief documenten Expertise schets … Deze documenten bevatten veelal een combinatie van pure tekst alsook grafische elementen zoals kaartuitsneden. Bovendien moet er rekening gehouden worden met het feit dat sommige documenten die bestemd zijn voor andere partijen en voor de burger beveiligd moeten worden. Version 1.0 Document : 317549925 18/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES Genereren van documenten De bovenvermelde documenten die gegenereerd dienen te worden, zullen vrijwel altijd een zelfde opmaak en structuur hebben. Dit maakt dat het gebruik van zogenaamde “templates” aangeraden wordt. De opmaak en structuur van een dergelijk document worden éénmalig beschreven en opgeslagen in een template document. Voor de generatie van individuele documenten wordt een template gebruikt als basis en worden enkel de variabele gegevens tijdens het generatie proces dynamisch ingevuld. Verschillende technologieën zijn beschikbaar om PDF documenten te genereren. De standaard binnen FOD Financiën is XSL-FO (XML Stylesheet Language – Formatting Objects). (zie hiervoor ook hoofdstuk 8 ICT Standaarden van FOD Financiën) Desgewenst kunnen er met behulp een grafische interface, een report designer, templates aangemaakt worden in XSL-FO. Beveiliging Beveiliging gebeurt middels digitale handtekeningen met behulp van digitale certificaten. Beveiliging van de documenten biedt volgende mogelijkheden: ongeoorloofde wijzigingen kunnen onmogelijk gemaakt worden daar waar dat nodig is de identiteit van de auteur van het document kan worden bewezen en kan niet vervalst worden Beveiliging zorgt er dus voor dat de documenten als officiële documenten kunnen worden gedistribueerd en rechtsgeldig kunnen gemaakt worden. Verschillende technologieën zijn beschikbaar om PDF documenten te beveiligen in Java, de 2 bekendste zijn iText en BFO (Big Faceless Organization). Interactie andere componenten Om de inhoud (d.i. de variabele gegevens) in het document te plaatsen is er interactie met verschillende andere modules en componenten binnen het systeem nodig. De PDF Module zal gegevens opvragen via de Persistence Layer, om diverse data uit de database(s) te halen. Er zal ook interactie zijn met de GIS Module, die door middel van spatial queries naar de GIS Engine allerhande grafisch materiaal zoals kaarten (in de vorm van images) zal kunnen leveren aan de PDF Module zodat ze kunnen worden geplaatst in de te genereren documenten. Voorts is er interactie met de Email Component om bepaalde gegenereerde documenten te versturen (naar de burger bijvoorbeeld), en met de Digital Signature Component, een hulp component om certificaat gegevens op te halen die gebruikt worden om de gegenereerde documenten te beveiligen. Version 1.0 Document : 317549925 19/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES 4.9 Module IAM 4.9.1 Algemeen Authentication en Authorization services vormen een belangrijk onderdeel in de architectuur van het CADGIS project. Onder IAM (Identity en Access Management) verstaan we enerzijds het identiteitsbeheer en anderzijds het toegangsbeheer met daarin het valideren van hoedanigheden, het gebruikersbeheer (wie mag wat doen; access profielen, privilege management) en het mandatenbeheer. Het identiteitsbeheer omvat alle processen voor het registreren van een persoon en het bieden van de nodige waarborgen omtrent de juistheid van deze identiteit zowel op het moment van de registratie als op het moment van verificatie en de validatie (identificatie en authenticatie). Het toegangsbeheer omvat in eerste instantie het gebruikersbeheer met het toekennen van de gebruikersprofielen/rollen aan de verschillende gebruikers in een bepaalde entiteit. Een rol wordt meestal geassocieerd met één of meerdere “rechten” op het gebruik van bepaalde functionaliteiten binnen een applicatie. Gebruikers kunnen naast een bepaalde rol(len) ook meerdere “kenmerken” of “attributen” bezitten. Binnen het IAM systeem moet het mogelijk zijn om al deze rollen, rechten, kenmerken of hoedanigheden en attributen bij te houden en te valideren. Algemeen gesproken zouden in een aantal gevallen bepaalde handelingen ten overstaan van de (federale) overheid ook gesteld kunnen worden door een mandaathouder en dit in naam en voor rekening van een derde. Indien er naast het doorsturen van gegevens ook consultatie of wijzigingen moeten gebeuren in naam en voor rekening van derden, is een voorafgaande elektronische controle noodzakelijk om er zeker van te zijn dat enkel gemachtigde personen toegang krijgen tot die gegevens waarvoor ze een mandaat verkregen hebben. Gemandateerden zijn de bijvoorbeeld de ‘cijferberoepen’, zoals de boekhouders, bedrijfsrevisoren, de belastingconsulenten, … Of een functionaliteit van mandaten al dan niet effectief nodig is zal in een latere fase duidelijker moeten worden. In termen van functionaliteit houdt dit in dat het IAM systeem een verificatie moet doen van : de identiteit kenmerken en/of attributen toegangsrechten van de persoon die toegang wil tot gegevens of toepassingen binnen de overheid in de meest ruime zin van het woord. Dit alles moet omkaderd worden met de nodige procedures voor: Version 1.0 het Identity management het registreren van hoedanigheden (kenmerken) en/of attributen het toevoegen van toepassingen die toegankelijk gemaakt worden het toekennen van toegangsrechten voor de betrokken toepassingen het opzetten van een informatiepunt waar identiteitsgegevens of kenmerken beschikbaar zijn het opzetten van een “trust-relatie” met deze informatiepunten. Document : 317549925 20/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES De eindgebruikers van FOD Financiën zijn reeds talrijk en vertegenwoordigen verschillende doelgroepen: Burger (natuurlijke persoon) Ambtenaren (eigen FOD en andere overheidsdiensten) Gemeentes Gewesten en gemeenschappen Sociale secretariaten Notarissen Boekhouders Landmeters Architecten Banken Curatoren … 4.9.2 Functies, Rollen, Rechten en het Territoriale aspect Binnen het FOD Financiën bestaan er verschillende soorten functies die eigen zijn aan FOD Financiën of het Kadaster. Bijvoorbeeld Tekenaar (Dessinateur), Project Beheerder (Gestionnaire de Projet), Gegevens Beheerder (Gestionnaire de Données), Validateur, enzovoort. Op dit moment zijn nog niet alle functies geïdentificeerd. Wat belangrijk is, is dat er een IAM systeem komt waarbinnen men op een flexibele manier kan omgaan met het toekennen van rollen, rechten en andere attributen die met het gebruik van de applicatie(s) samenhangen. En bovendien dat het beheer van deze informatie binnen de FOD Financiën zelf kan worden gedaan. Wat verstaan we onder Functies, rollen, rechten en het territoriale aspect ? Functie: is de benaming voor een benoeming of een titel die een ambtenaar heeft binnen de hiërarchie of het organogram van de FOD Financiën, bijvoorbeeld Project Manager. Het is echter niet noodzakelijk zo dat wanneer een ambtenaar bij FOD Financiën een bepaalde functie heeft, dit altijd een 1 op 1 relatie vormt met de toegewezen rol die deze persoon binnen het IAM systeem wordt toegewezen, dat zou niet flexibel genoeg zijn. Iemand met een bepaalde functie heeft dus meestal één of meerdere rollen en rechten. Rol: (applicatieve rol) heeft te maken met een specifieke verantwoordelijkheid die iemand binnen de applicatie kan opnemen. Of anders gezegd een combinatie van (meestal een reeks) functionaliteiten die een persoon binnen een bepaalde context in de applicatie kan/mag gebruiken. Een rol wordt meestal geassocieerd met meerdere rechten, rechten die functioneel gezien bij elkaar horen. Recht: behelst de mogelijkheid of het “recht” om 1 bepaalde functionaliteit binnen de applicatie te gebruiken. Het gaat hier over een “atomair” niveau. Territoriale aspect: autorisaties moeten ook rekening kunnen houden met een territoriaal aspect. Bijvoorbeeld, een ambtenaar die een bepaalde rol heeft voor een bepaalde dienst kan data lezen/bewerken voor de divisie waar zijn departement bevoegd voor is. Version 1.0 Document : 317549925 21/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES De bedoeling is om op deze manier de meerderheid van de functionele behoeften (ongeveer 80%) inzake autorisatie te kunnen definiëren. Er bestaan echter altijd “uitzonderingen”, individuele rechten moeten kunnen worden toegekend aan personen. Iemand met een bepaalde functie zou immers ook over individuele rechten moeten kunnen beschikken, zonder dat die noodzakelijk met één bepaalde rol zijn verbonden. Het IAM systeem moet ook met deze uitzonderingen overweg kunnen. Op die manier kan men zeer granulair te werk gaan. Samengevat kan men zeggen: Iemand met een bepaalde functie kan één of meerdere rollen hebben en één of meerdere specifieke rechten, iedere rol kan één of meerdere rechten bevatten, deze rollen en/of rechten kunnen ook beperkingen hebben op territoriaal vlak. 4.9.3 Toepassing van IAM binnen CadGIS In concreet zal dat voor CADGIS er op neer komen dat er bepaalde rollen worden toegekend aan gebruikers, en aan deze rollen worden rechten toegekend zoals bijvoorbeeld consultatie van gegevens, een minuut schets maken, kaart manipulaties uitvoeren, etc. Dit soort rechten passen dan in het kader van de taken (ex: ouvrir le dossier de mission, identifier la parcelle, analyser les données, etc) die ze in hun specifieke rol (ex: dessinateur, chef d’équipe, gestionnaire de données, etc.) kunnen uitvoeren. De gebruiker wenst de applicatie te gebruiken, via intranet, extranet of internet (afhankelijk van de aard van de gebruiker) en navigeert daarvoor naar de site van de applicatie. De resources op de site van de applicatie zijn beschermd, de applicatie zal daarom de gebruiker de mogelijkheid geven zich te authenticeren (via Authentication / IAM server) zullen er ook (al dan niet) specifieke rechten voor het gebruik van diverse functionaliteiten van de applicatie aan de gebruiker worden toegekend. 4.9.4 Algemeen Federaal IAM en interne IAM Binnen de FOD Financiën is er reeds een IAM aanwezig, de zogenoemde interne IAM, dat is ondergebracht in het CCFF framework. Binnen het Federale portaal bestaan er voor het ogenblik reeds een aantal componenten die instaan voor het “user management” van burgers en ambtenaren en voor het mandaatbeheer. Deze modules werden in het merendeel van de gevallen ontwikkeld in het kader van een aantal specifieke projecten, maar met de bedoeling generiek genoeg te zijn voor het gebruikersbeheer voor toekomstige e-government toepassingen. Op algemeen Federaal niveau (samenwerking tussen enkele FOD’s) worden er momenteel inspanningen gedaan om één IAM basis oplossing te bouwen die door alle FOD’s gebruikt zal kunnen/moeten worden. Deze oplossing is momenteel echter nog niet in een fase waarin het concreet gebruikt kan worden. Het is wenselijk dat er een IAM systeem komt dat samenwerkt of geïntegreerd kan worden met de interne IAM van de FOD Financiën. Op die manier kan FOD Financiën ook gebruik maken van deze IAM inzake behoeften die er zijn om externe gebruikers te authenticeren. Het is dus ook van cruciaal belang om de ontwikkelingen van het federaal IAM project op te volgen. Indien het federaal IAM project in een zodanige fase zit dat het concreet gebruikt kan worden in dit project, dan wordt dat ook best zo snel mogelijk gedaan teneinde zoveel mogelijk dubbel of onnodig werk te vermijden. Version 1.0 Document : 317549925 22/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES 4.10 Web Services Web Services zijn software systemen die het mogelijk maken om gegevens (alsook business logic) tussen machines uit te wisselen over een netwerk, zoals het internet. Deze uitwisseling van gegevens en business logic verloopt via open en standaard transport protocollen zoals HTTP(S), en met behulp van XML-gebaseerde messaging protocollen zoals SOAP (Simple Object Access Protocol). Web Services bieden heel wat voordelen, met name specifiek voor CadGIS. In het kader van CadGIS zijn er een aantal behoeften of noodzakelijke functionaliteiten waarvoor het aan te raden is om Web Services als oplossing te gebruiken. Het gaat hier enerzijds over het aanbieden van gegevens aan derde partijen en anderzijds over het raadplegen van gegevens van derde partijen. Een aantal belangrijke voordelen die Web Services in het algemeen bieden voor CadGIS: Gegevens kunnen uitgewisseld worden tussen verschillende betrokken partijen zonder dat we/ze onderling tot in de details op de hoogte moeten zijn van elkanders interne ITsystemen. Gebruikte technologiën zijn gebaseerd op open standaarden. Deze standaarden zijn wijdverspreid en ondersteunt in de industrie. De verschillende betrokken partijen zijn niet verplicht om dezelfde producten, platforms, hardware of software te gebruiken om gegevens uit te wisselen. De gebruikte protocollen zijn transparant voor firewalls, dit wil zeggen dat gegevensuitwisseling geen problemen ondervindt daarmee. Niet alleen pure data maar ook business logic kan uitgewisseld worden … Er bestaan verschillende “soorten” Web Services, waaronder een aantal die specifiek voor GIS doeleinden ontworpen werden, zoals WMS, WFS, WCS, WPS, CAT, etc… De belangrijksten daarvan worden hieronder in meer detail besproken. 4.10.1 WMS (Web Map Service) De Web Map Service standaard, ontwikkeld door het Open Geospatial Consortium (OGC), definieert een interface die clients kunnen gebruiken om kaarten op te vragen. Er bestaan 2 conformance classes (“basic” WMS en “queryable” WMS) en 1 extension class (“SLD enabled” WMS). Basic WMS wordt gebruikt voor volgende doeleinden: Het produceren van dynamische kaarten met spatiale data op basis van geografische informatie, de zogenoemde GetMap operatie. Clients informeren over welke kaarten het kan produceren en over dewelke meer informatie kan gevraagd worden, de GetCapabillities operatie. Queryable WMS: Biedt de mogelijkheden van Basic WMS + de zogenoemde GetFeatureInfo operatie, die toelaat simpele queries over de inhoud van een specifieke kaart te beantwoorden. De informatie die van een WMS wordt verkregen is meestal een kaart, in de vorm van een grafisch bestand zoals PNG, GIF, JPG. Version 1.0 Document : 317549925 23/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES Verschillende Web Map Services kunnen ook samenwerken. Dit wil zeggen, ze kunnen naar elkaar toe fungeren als client om zo informatie (kaarten) van verschillende Web Map Services producenten te combineren om informatie op die manier aan te bieden aan een andere client. De manier om dergelijke gecombineerde informatie op te slaan is via een Web Map Context document. Het tweede type WMS, namelijk SLD (Styled Layer Description) Enabled WMS, biedt daarbovenop nog de mogelijkheid om een eigen kartografische symbolisatie toe te passen op de geografische objecten en om samen te werken met WFS (zie paragraaf hieronder). SLD-WMS is in feite een uitbreiding op de standaard WMS-interface. In een dergelijke constellatie fungeert WMS als “renderer” van de kaart, en WFS levert de data voor de map. Een client kan op die manier een SLD enabled WMS instructies meegeven over hoe en wat er precies op de kaart moet getoond worden. Op die manier kan de client “op maat” gemaakte kaarten opvragen. 4.10.2 WFS (Web Feature Service) De Web Feature Service standaard, ontwikkeld door het OGC, definieert een interface die clients kunnen gebruiken om gegevens van een kaart op te vragen. Daar waar WMS eerder informatie geeft in de vorm van een grafisch formaat (een image), zal WFS informatie geven over de data die gebruikt werd om een kaart image te genereren. Deze informatie zal meestal in de vorm van GML (Geography Markup Language) zijn, al kunnen andere formaten ook gebruikt worden voor transport. Net zoals bij WMS bestaan er bij WFS ook 2 types: Basic WFS en Transaction WFS. Basic WFS ondersteunt enkel read-only operaties om gegevens mee op te vragen. Transaction WFS ondersteunt biedt daarbovenop ook heel wat mogelijkheden om de gegevens te bewerken. 4.10.3 WPS (Web processing Service) De Web Processing Service, ontwikkeld door het OGC, is ontwikkeld om de manier waarop GIS calculaties worden beschikbaar gemaakt op het internet te standaardiseren. WPS is specifiek ontworpen om te werken met spatial data en kan elk soort van calculatie beschrijven (bijvoorbeeld een proces), inclusief al zijn input en output. WPS kan beschikbaar gemaakt worden middels GET, POST en SOAP, zodat client applicaties het meest geschikte interface mechanisme kunnen kiezen. Client applicaties kunnen zowel webgebaseerd of desktop applicaties zijn. WPS maakt het mogelijk om processen te publiceren, zoeken en binden op een gestandaardiseerde en dus uitwisselbare manier, het definieert 3 operaties: GetCapabilities: geeft service-level metadata terug DescribeProcess: geeft een omschrijving van het process inclusief zijn input en output Execute: geeft de output van een proces. WPS operaties kunnen via URLs worden opgeroepen (HTTP GET, of XML documenten via HTTP POST). Input kan op dezelfde manier worden aangeleverd, output kan ook via een URL beschikbaar gemaakt worden, of rechtstreeks embedded in een response. Simpele output zoals bijvoorbeeld een GIF image kan ook rechtstreeks beschikbaar gemaakt worden, zonder XMLwrapper. Input en output wordt in verschillende formaten ondersteunt, zoals bijvoorbeeld het GML formaat. Version 1.0 Document : 317549925 24/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES 4.10.4 Andere Services Web Registry Service (WRS): ondersteuning voor het run-time ontdekken en evalueren van resources zoals services, spatial data sets en schema’s. Web Coordinate Transformation Service (WCTS): converteert data van een web service van het ene coördinaten referentie systeem naar een ander. Geocoding Services: geocoding houdt in dat geografische coördinaten met map features of andere data records kunnen worden verbonden, zoals post adressen, ipadressen, of andere gegevens waar een geografisch aspect mee verbonden kan worden. Met name voor CadGIS biedt dit interessante mogelijkheden om een dergelijk systeem te gebruiken voor het geocoderen van gegevens zoals percelen en PUR’s. View Services: view services maken het mogelijk bepaalde operaties op spatial data sets uit te voeren: tonen, navigeren, zoomen, pan, overlay, legendes of andere relevante meta data tonen. Discovery Services: biedt mogelijkheden voor het zoeken van spatial data sets en spatial data services op basis van de inhoud van de overeenkomende metadata. 4.10.5 Aanbieden van gegevens aan derde partijen CadGIS zal een aantal geo-gerelateerde gegevens aanbieden aan derde partijen, onder andere in de vorm van Web Services meer bepaald met WMS en WFS, dit kan worden aanschouwd als een Download Service. Hoe kunnen deze services nu technisch worden geïntegreerd in de architectuur ? De meeste GIS engines van tegenwoordig bieden deze functionaliteit aan. Dat maakt dat WMSen WFS-services relatief eenvoudig kunnen opgezet worden, en dat een bijkomende server niet vereist is wat dat betreft. Derde partijen zullen, mits ze over de juiste authenticatie en authorizatie gegevens beschikken, een connectie kunnen maken met de GIS server. Met deze connectie kunnen ze dan een aantal voorgedefinieerde read-only requests uitvoeren om gegevens op te halen. Gegevens kunnen aangeboden worden in diverse formaten, een integratie met de Module Transformatie dient hier te worden voorzien (zie hoofdstuk 4.7 Module Transformatie). 4.10.6 Opvragen van gegevens van derde partijen CadGIS zal zelf ook een aantal geo-gerelateerde gegevens gaan opvragen bij derde partijen. Dit zal onder meer gebeuren met behulp van Web Services en meer bepaald WMS en WFS. Het is de Gis Engine Module die connecties naar derde partijen (dus buiten het netwerk van FOD Financiën) zal maken om aldaar gegevens op te halen. Version 1.0 Document : 317549925 25/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES 5 Beschrijving van de verschillende omgevingen In de meeste middelgrote en grootschalige ICT omgevingen waarbinnen relatief veel ICT-mensen, analysten, gebruikers of andere stakeholders tegelijk actief zijn is het aangeraden om meerdere “omgevingen”, ook wel “environments”, “target-levels” of “promotion levels” genoemd, op te zetten. Deze manier van werken zorgt voor een hogere flexibiliteit, beter beheer en controle van verschillende versies van applicaties en database-gegevens. Aangeraden is een configuratie van tenminste volgende omgevingen: DEV, TST, ACC, PRD, TRA. Deze omgevingen worden hieronder besproken. Een omgeving omhelst de applicatie server(s), database(s), desktop machine(s) voor testen van de client applicatie(s). Afhankelijk van specifieke behoeften kunnen nog andere onderdelen of componenten, zoals fileserver, GIS engine, enz. worden toegevoegd. 5.1 Development omgeving (DEV) De Development omgeving is de omgeving waar ontwikkelaars en technisch analisten hun eigen testen kunnen uitvoeren, veelal gaat het hier over technische testen. Ze moeten hier de vrijheid hebben om alle parameters binnen het systeem te kunnen veranderen, nieuwe versies of updates/fixes van de applicaties te deployen, database structuren en gegevens te wijzigen, enzovoort. Gemakkelijkheidhalve zullen we de combinatie van al deze wijzigingen op een vereenvoudigde manier voorstellen als een nieuwe versie van de applicatie. Deze omgeving wordt enkel door de ontwikkelingsploeg gebruikt, de impact van hun werkzaamheden is dan ook beperkt tot hun zelf. 5.2 Test omgeving (TST) Wanneer de ontwikkelingsploeg tevreden is met de nieuwe versie van de applicatie, dan kunnen ze de set van wijzigingen “migreren” of deployen naar een volgende omgeving, de Test omgeving. Dit is de omgeving waar functionele of business analisten nieuwe versies van de applicatie(s) of de omgeving kunnen testen. De analisten moeten over een omgeving beschikken die voor een iets langere periode ongewijzigd blijft en een meer representatieve set van gegevens bevat. Dit betekent dat deze omgeving heel wat “stabieler” moet blijven dan de development omgeving, dus dat de ontwikkelingsploeg geen vrij spel heeft om onaangekondigde wijzigingen door te voeren in deze omgeving. De analisten gebruiken deze omgeving om functionele testen uit te voeren: bevat de nieuwe versie de aangevraagde nieuwe functionaliteiten, is er regressie van bugs, doet de applicatie wat er van gevraagd wordt, enzovoort. Zijn de analisten niet tevreden over bepaalde aspecten van de applicatie, dan zal de ontwikkelingsploeg een nieuwe versie moeten voorbereiden en deze opnieuw deployen naar de Test omgeving. 5.3 Acceptatie omgeving (ACC) Wanneer de functionele testen goed verlopen zijn dan kan de applicatie worden gedeployed naar de Acceptatie omgeving. Dit is een omgeving die liefst zo veel mogelijk lijkt op de Productie omgeving (zie hieronder), en waar typisch zowel functionele (of business) analisten als eind gebruikers toegang toe hebben. Ook de gegevens in de database(s) komen best zoveel mogelijk overeen (waar mogelijk, rekening houdend met security en/of confidentialiteit aspecten) met de productie omgeving. Dat maakt het mogelijk om testen uit te voeren die zoveel als mogelijk de applicatie kan testen en evalueren zoals ze in de Productie omgeving zal gaan draaien alvorens ze naar de echte productie omgeving kan worden gemigreerd. Wanneer er hier nog problemen aan het licht komen zal de ontwikkelingsploeg opnieuw een versie moeten klaarmaken en start de cyclus van testen van voor af aan. Version 1.0 Document : 317549925 26/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES 5.4 Productie omgeving (PRD) Pas wanneer alle voorgaande testen op alle voorgaande omgevingen succesvol zijn uitgevoerd kan men een migratie of deployment doen naar de productie omgeving. Migraties naar de Productie omgeving gebeuren meestal in een zogenoemde “maintenance window”, een vooraf duidelijk vastgelegde periode waarbij de eind gebruikers zo weinig mogelijk last van de operatie ondervinden. Dikwijls is een dergelijke deployment voorafgegaan door het nemen van backups. 5.5 Training omgeving (TRA) De training omgeving is in feite ook een min of meer representatieve kopie van de productie omgeving, die bedoeld is om eind gebruikers opleidingen te kunnen geven omtrent de huidige productie versie van de applicatie, of om opleidingen te geven over een nieuwe versie de gepland staat. 5.6 Andere omgevingen Naast deze minimale set van omgevingen kan er mogelijks ook nog behoefte zijn aan specifieke andere omgevingen, bijvoorbeeld een Demonstratie omgeving (DEM), of een speciale omgeving om performance testen (PRF) uit te voeren, enzovoort. De noodzaak om nog bijkomende omgevingen te hebben zal in een latere fase duidelijker worden. Version 1.0 Document : 317549925 27/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES 6 Transacties Elke wijziging die gebeurt in de GeoDatabase(s) dient in het kader van een transactie te verlopen. Een database transactie is een eenheid van operaties op een Database Management Systeem (DBMS) dat in een coherent geheel behandelt wordt, los van andere transacties. Men kan een database transactie ook omschrijven als een Logical Unit of Work (LUW). 6.1 ACID Algemeen gesproken zijn database transacties atomisch, in een ideaal geval zullen ze zelfs volgens de principes van ACID worden uitgevoerd. ACID (Atomicity, Consistency, Isolation, Durability) is een set van transactie-eigenschappen die, indien ze correct worden toegepast, kunnen garanderen dat een transactie op een betrouwbare manier verloopt. ACID houdt het volgende in: Atomicity: betekent dat de DBMS kan garanderen dat ofwel alle operaties binnen eenzelfde transactie correct worden uitgevoerd, ofwel wordt er geen enkele uitgevoerd. Consistency: de database moet zich in een “geldige” of consistente status bevinden voor de transactie begint, en wanneer de transactie beëindigd is. Dat impliceert dus dat de operaties in een transactie niet als resultaat mogen hebben dat de consistente status van de database wordt teniet gedaan. Isolation: Operaties die in een transactie verlopen moeten geïsoleerd verlopen van al de andere operaties in de database. Dit wil zeggen dat geen enkele operatie buiten een transactie mag zien wat er binnen deze transactie gebeurt terwijl deze nog in uitvoering is. Anders gezegd, operaties buiten een transactie mogen geen “intermediaire” gegevens zien van een transactie die nog niet is beëindigd. Durability: eenmaal de DBMS het signaal heeft gegeven dat een transactie succesvol is verlopen, moet deze ook permanent zijn en mag ze niet ongedaan gemaakt worden. Meer concreet houdt dit in dat een succesvolle transactie ook systeem crashes moet kunnen overleven, en dat de DBMS alle integriteit controles heeft uitgevoerd zodat de transactie niet geaborteerd moet worden. 6.2 Long transactions Long transactions zijn transacties die zich uitstrekken over het geheel van een (business) proces, en die dus samen met het proces beginnen en eindigen. Typisch probeert men bij long transactions zoveel mogelijk om database locks te vermijden. Long transactions worden dikwijls geïmplementeerd als een logisch geheel van kleinere ACID (atomische) transacties. In dat kader wordt er regelmatig een tactiek toegepast van zogenaamde “compensaties”. Wanneer bepaalde atomische transacties, die kaderen in een groter geheel van 1 long transaction, moeten worden teruggedraaid, dan wordt er een “compensatie” transactie uitgevoerd, een soort van tegenovergestelde actie die er voor zorgt dat een situatie terug hetzelfde of evenwaardig is aan de situatie vóór die bepaalde transactie was uitgevoerd. Om dit duidelijk te maken een typisch voorbeeld betreffende long transactions: Version 1.0 Document : 317549925 28/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES Een man boekt bij een reisbureau een hotel in het land van zijn bestemming. Het reisbureau moet hiervoor een vlucht boeken en een hotelkamer reserveren. Zowel de vlucht boeken als de hotelkamer boeken kan men zien als atomische transacties, het geheel van de 2 vormt de long transaction. Wanneer het reisbureau de hotelkamer al heeft geboekt, maar later blijkt dat de vlucht niet door kan gaan, dan moet de hotel kamer geannuleerd worden. Niet zelden gaat een dergelijke annulatie gepaard met een boetebedrag. De annulatie en de eventuele boete vormen dan de compensatie. Na de compensatie is de situatie hersteld in eenzelfde of gelijkwaardige situatie. Een punt dat niet over het hoofd mag worden gezien is dat de business logica in dit soort situaties erop voorzien moet zijn dat er een “annuleringsprocedure” bestaat. Of meer algemeen gesproken, dat er voor bepaalde database operaties eventueel een “tegenovergestelde” operatie moet worden voorzien die kan uitgevoerd worden als een long transaction moet worden teruggedraaid. Long transactions zijn dus niet volledig tot een puur technische aangelegenheid te herleiden, er moet tijdens de implementatie van de business logica rekening gehouden worden met het feit dat bepaalde business processen in long transactions zullen uitgevoerd worden. Er bestaat een logische samenhang tussen de verschillende atomische transacties binnen één enkele long transaction, en met die samenhang moet rekening gehouden worden in de design- en implementatie-fase van CadGIS. Er zijn verschillende mogelijkheden om dit in praktijk technisch uit te werken. Wellicht zullen er enkele extra velden in de database tabellen voorzien worden om de correlatie tussen bepaalde records die zich samen in een long transaction kunnen bevinden bij te houden. 6.3 Java Transaction API Transacties in Java worden gedaan via de Java Transaction API (JTA). JTA is een onderdeel van het JEE (Java Enterprise Edition) platform. Deze API geeft de mogelijkheid om zogenoemde distributed transactions uit te voeren. Dat betekent dat een applicatie de API kan gebruiken om transacties uit te voeren op meer dan 1 database tegelijkertijd. Om dit op een efficiënte manier te doen is er ook nood aan een JEE Transaction Manager (JTM). Een transaction manager helpt bij het schedulen en uitvoeren van grote aantallen van transacties die via de application server worden gestart. JTA kan binnen CadGIS zowel ingezet worden in de web applicatie als via de fat client applicatie, alle transacties zullen immers sowieso via de application server verlopen. 6.4 CadGIS GeoDB transactions Een van de long transactions in CadGIS is die waarbij kaarten worden aangepast en er dus database operaties op de GIS databank(en) worden uitgevoerd. De logische samenhang tussen de verschillende atomische transacties die zich bevinden binnen één dergelijke enkele long transaction kunnen best duidelijk gemaakt worden aan de hand van onderstaande schema (bron: Michel Van Acker). Belangrijk om hierbij te vermelden is wel dat iedere transactie enkel zal bestaan uit delete en insert operaties. Update operaties worden in principe niet uitgevoerd, tenzij op het niveau van parameters voor een delete operatie, of op het niveau van parameters voor het plaatsen van locks in een transactie. Version 1.0 Document : 317549925 29/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES Document de travail du 21/05/2007 Transaction à intégrer Transaction se termine Copie centrale A SOUMETTRE (File GeoDB) A supprimer A ajouter + Croquis + Logs A TRAITER (File GeoDB) Situation avant TRAITE (File GeoDB) Situation avant Situation après + Croquis + Logs Directory Database Transaction à corriger Archivage systématique Modifications et croquis ARCHIVES KO (File GeoDBs) Situation avant Situation après + Croquis Utile aussi en cas d’abandon de correction Transaction à contrôler Serveurs PCs Différences entre situations Transaction débute A CORRIGER (File GeoDBs) Situation avant Situation après + Croquis A CONTROLER (File GeoDBs) A supprimer A ajouter + Croquis + Logs Enterprise GeoDB Edition Synchronisation Transaction en contrôle Sélection zone à traiter, verrouillage et copie locale Enterprise GeoDB Publication Archivage systématique Résultats négatifs Transfert local ARCHIVES OK (File GeoDBs) A supprimer A ajouter + Croquis Résultats positifs Enterprise GeoDB Contrôle Copie centrale Utiles aussi en cas de retour à un backup Mise à jour A INTEGRER (File GeoDBs) A supprimer A ajouter + Croquis Transaction en correction Corrections A CORRIGER (File GeoDB) Situation avant Situation après + Croquis 6.5 Acties in geval van een crash tijdens transacties Er zijn 2 soorten crashes die zich kunnen voordoen: een disk crash of een crash in het centrale geheugen. Bij een crash in het centrale geheugen moeten de transacties die in uitvoering waren teruggedraaid worden tot op het punt waarop de integriteit van de gegevens hersteld is. Bij een disk crash moet met behulp van journalisatiesysteem de integriteit van de gegevens en transacties hersteld worden. Een journalisatiesysteem is een systeem dat er voor zorgt dat informatie over de uitgevoerde transacties wordt weggeschreven in een speciale log of journaalbestand. Alle transacties moeten dan vanaf het punt van de laatste succesvolle “save” van de gegevens opnieuw worden uitgevoerd. Het is belangrijk dat dit journaalbestand op een andere disk wordt weggeschreven dan de databank gegevens zelf. Version 1.0 Document : 317549925 30/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES 7 Inspire Het doel van Inspire is het creëren en het laten functioneren van een Infrastructure for Spatial Information in Europe (Inspire). Het valt buiten de scope van dit document om in detail te treden over het Inspire project zelf, meer informatie hierover kan worden gevonden in het document [TOBE-ANALYSE] en op de officiële website: http://www.ec-gis.org/inspire. 7.1 Impact van Inspire op CadGIS Gezien Inspire gaat over richtlijnen die gevolgd moeten worden door de verschillende lidstaten binnen de Europese Unie, heeft dit ook een impact op het CadGIS project, we beperken ons hier tot het technische aspect. Een van de hoofddoelen van Inspire is: Data interoperability en data sharing. Inspire, en meer specifiek de technische architectuur zit momenteel nog in een fase van ontwikkeling. Een eerste “draft” versie van technische richtlijnen is beschikbaar maar kan nog op elk moment veranderen. In grote lijnen kunnen we echter al wel rekening houden met de belangrijkste punten: data interoperability en data sharing. Data interoperabiliteit en uitwisseling van gegevens zal gebeuren op voornamelijk 2 manieren: enerzijds uitwisseling van gegevens via web services, en anderzijds door een vorm van synchronisatie van databanken. Uitwisseling van gegevens via het gebruik van Web Services staat beschreven in hoofdstuk 4.10 Web Services. Version 1.0 Document : 317549925 31/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES 8 ICT Standaarden van FOD Financiën 8.1 Het CCFF 8.1.1 Algemeen Het CommunicatieCentrum van de Federale Fiscaliteit, of kortweg CCFF, behelst een communicatie- en technologieplatform dat fungeert als een portaalsite naar de binnen en buitenwereld, en dat het mogelijk maakt om e-services te verstrekken aan burgers en ondernemingen, aan andere openbare diensten en aan de ambtenaren van Financiën. Het CCFF biedt een ontwikkelingsplatform dat is gebaseerd op standaarden en open technologieën, met een vlotte toegang tot de mainframes waar nodig, een stevige en toekomstgerichte productie-infrastructuur, de nodige onafhankelijkheid ten opzichte van de herstructureringen binnen de FOD Financiën en een verregaande beveiliging. Nieuwe applicaties die binnen de FOD Financiën worden ontwikkeld dienen normaal gezien op basis van het CCFF framework ontwikkeld te worden. 8.1.2 De rol van het framework De voornaamste rollen van het CCFF zijn de volgende: Zorgen voor een makkelijke en intuïtieve toegang tot alle gegevens van de servers van het departement (hoofdzakelijk de mainframes), zonder de bestaande programma’s te moeten wijzigen Bestemd zijn voor alle mogelijke gebruikers, dit wil zeggen voor alle ambtenaren van het Departement en niet uitsluitend voor deze die de toepassing ontwikkeld hebben maar ook voor de externe gebruikers in het kader van E-government (burgers, ondernemingen, partners) Comfortabele gebruiksmogelijkheden bieden voor de eindgebruiker door middel van het gebruik van Internet- en intranettechnieken, waarbij de internet browser als aangewezen interface naar voor wordt geschoven. De CoperFinprojecten mogelijk maken, zoals de relaties met de clients (CRM), het uniek fiscaal dossier mogelijk maken, enz… Bescherming van de investeringen in menselijk en financieel kapitaal Technische uniciteit van de oplossing 8.1.3 Toegevoegde waarde en toepassing in het kader van CadGIS Naast een aantal voor de hand liggende voordelen die het framework aanbiedt (op maat van FOD Financiën, eenvoudig pad voor het gebruik van standaarden, herbruikbaarheid van componenten, bijgeleverde documentatie, enz) zijn er een aantal specifieke services, componenten of modules die het framework aanbiedt, die dus niet meer opnieuw moeten worden ontwikkeld in nieuwe applicaties gebaseerd op het CCFF. Enkele voorbeelden die specifiek in het kader van CADGIS nuttig zijn: Version 1.0 Authentication en authorization services Dao specificaties Logging services Exception handling services Document : 317549925 32/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES Monitoring services Front-end framework (Struts) XML processing services SOAP framework (ter ondersteuning voor het gebruik van web services) Creatie van PDF documenten (op basis van een op maat gemaakte XSL-FO wrapper) Internationalisatie Email module Door gebruik te maken van het CCFF framework kan er dus meteen gebruik gemaakt worden van een aantal voorzieningen die anders nog zelf zouden ontwikkeld moeten worden. 8.1.4 Schaalbaarheid van de applicatie in zijn omgeving De CadGIS applicatie zal gefaseerd in gebruik genomen worden, en zal als dusdanig te maken krijgen met een in de tijd gespreid groeiend aantal gebruikers. Daarom is het van belang dat de applicatie al van in de ontwerpfase rekening houd met aspecten zoals schaalbaarheid en performantie. De ontwikkelingen moeten dus van bij de aanvang een benadering omvatten die gericht is op replicatie of clustering om het hoofd te kunnen bieden aan uitbreidingen van de behoeften. De architectuur van de web applicatie is sowieso opgebouwd met verschillende “layers”, met name presentation, services, persistence layer. Optimalisatietechnieken inzake schaalbaarheid en performantie kunnen op elk van deze layers (apart of tezamen) uitgevoerd worden. Version 1.0 Document : 317549925 33/34 Federale Overheidsdienst FINANCIEN Service Public Fédéral FINANCES 9 Bijlagen CLIENT SIDE SERVER SIDE FOD FINANCIEN DMZ Interne LAN GIS Server / Engine < net Inter > ATLAS RDC JEE Application Server Services Layer Presentation Layer Derde Partij WMS/WFS Provider Persistence Layer Gis En Mod gine ule Derde Partij WMS/WFS Provider Patris Enterprise GeoDb Edition 3rd p Gis li arty brary JSP DaDoao ’s Stru ts Con fig Proxy Patris Enterprise GeoDb Publication Derde Partij WMS/WFS Consumer Derde Partij WMS/WFS Consumer L O A D PDF Mod ule L O A D Apache Webserver Controller Fat Client Browser Landmeters Burgers Partners Ondernemingen B A L A N C I N G cluster B A L A N C I N G Patris Enterprise GeoDb Controle JSP DaDoao ’s Actio Serv n let Apache Webserver JSP JJSSPP’s’s net a r t n I Patris Enterprise GeoDb Archive IAM Mod ule Patris Alfanumeriek CCFF Framework Auth Auto en. r. Com / IAM pone nt Fat Client Browser i B A T I S Transformation Module Digit Sign al Com ature pone nt Em Com ail pone nt JDB C Ambtenaren FodFin CCFF DB Ambtenaren FodFin en anderen cluster Legende JEE Application Server = Binnenkomende requesten = Buitengaande requesten IAM Policy manager Authentication / IAM Server = Richting van de request = Covered by Version 1.0 Versie: vrijdag 18 januari 2008 Document : 317549925 34/34 PKI Infrastructuur Email Server File Server