Voorbeeldproject: “Een Haagse SOA” Gemeente Den Haag
Voorbeeldproject “Een Haagse SOA” Gemeente Den Haag Dit voorbeeldproject beschrijft het gebruik van web services (open standaarden) voor de ontsluiting van kernregistraties bij de gemeente Den Haag. Aanleiding Vanuit de visie van het Glazen Stadhuis wil de gemeente Den Haag werken aan een transparante gegevensontsluiting. In lijn hiermee speelt ook de “overheidsloket” gedachte; 1 plek voor burgers en bedrijven voor afname & gebruik van gemeentelijke “e”-diensten. Om dit te realiseren dient met name de gegevensontsluiting aangepakt te worden. De gemeente Den Haag heeft ervoor gekozen om als architectuur gebruik te maken van een zogenaamde Service Oriented Architecture (SOA) en voor de technische invulling web services open standaarden te gebruiken. SOA & web services & open standaarden Bij de realisatie van de architectuur van het Glazen Stadhuis is in essentie een Service Oriented Architecture ontstaan. Een SOA biedt de specifiek gewenste informatie-uitwisseling volgens breed geaccepteerde standaarden en met een gezamenlijke stelselbrede datadefinitie. Deze breed geaccepteerde standaarden zijn de web services standaarden waarmee de gezamenlijke stelselbrede datadefinitie in ontwikkeld kan worden. Een SOA is voor de gemeente Den Haag een verzameling web services die apart of in combinatie kunnen worden aangeboden. Deze services vormen de meest losse (onafhankelijke) koppeling van systemen die de huidige technologie kan bieden. Deze onderlinge onafhankelijkheid moet er echter niet toe leiden dat services lastig gezamenlijk gebruikt kunnen worden. Functionaliteit voor de klant zal vaak gerealiseerd worden door het aanroepen van meerdere webservices, die veelal door verschillende partijen zijn gebouwd. Voor de samenwerking van de webservices is het van belang dat zij gebruik maken van gestandaardiseerde gegevensdefinities en werken volgens internationale open standaarden. Deze standaarden zijn allen gebaseerd op XML (eXtensible Markup Language) en zijn:
WSDL: Webservices worden beschreven in de Web Service Description Language (zie voorbeeld hiernaast) XSD: de gegevensdefinities worden vastgelegd in een XML Service Definition SOAP: Webservices communiceren met het SOA Protocol (Oorspronkelijk afkorting staat voor Simple Object Access Protocol).
1/5
Voorbeeldproject: “Een Haagse SOA” Gemeente Den Haag
De Haagse SOA De gegevens van Den Haag die ontsloten moeten worden zitten in zogenaamde kernregistraties. Er bestaan kernregistraties van: • Natuurlijke Personen • Niet Natuurlijke Personen (Bedrijven/Instellingen) • Gebouwen/Adressen • Topografie (in ontwikkeling) • Kadaster (in ontwikkeling) Kernregistraties hebben relaties met andere kernregistraties zoals in het figuur is weergegeven. De Webservices technologie kan ook gebruikt worden om gegevens tussen verschillende kernregistraties te “checken” of “ophalen”.
De kracht van de webservices oplossing ligt met name in het feit dat de gegevens eenmalige liggen opgeslagen in een kernregistratie en veelvuldig uitgelezen kunnen worden door het aanroepen van een webservice. Wat is hiervoor nodig? Een beschrijving per kernregistratie hoe de kernregistratie technisch benaderd kan worden: het WSDL bestand voor elke kernregistratie (Bv. Het WSDL NP bestand geeft aan hoe technisch de Kernregistratie Natuurlijke Personen benaderd kan worden). Een dienst (Web Service) gebruikt dan dit WSDL bestand als het gegevens uit deze kernregistratie wil halen. Maar dat alleen is nog niet voldoende; daarnaast is er een woordenboek nodig om betekenis aan de gegevens uit de kernregistraties te geven. Hiervoor is de XML Schema (XSD) standaard geschikt, en de specifieke invulling voor de gemeente wordt ook wel DenHaag.XSD genoemd. Het volgende figuur laat zien dat elke kernregistratie zijn eigen web services heeft die aangeroepen kan worden vanuit toepassingen voor de klant. De applicatie laag behorende bij de klant-toepassing kan de webservice aanroepen van een kernregistratie als het gegevens uit die kernregistratie nodig heeft. Zo kunnen dus een oneindige hoeveelheid klanttoepassingen gebouwd worden die allen de webservices aanspreken van een kernregistratie. Alle toepassingen en webservices hebben 1 woordenboek: DenHaag.XSD. 2/5
Voorbeeldproject: “Een Haagse SOA” Gemeente Den Haag
Het figuur is een voorbeeld waarin drie kernregistraties zijn weergegeven, en aan de rechterkant een klanttoepassing die gebruikt maakt van de webservices voor de kernregistraties.
Webservices moeten via het netwerk communiceren met applicaties die deze services aanroepen. Deze communicatie vindt plaats door middel van het SOAP protocol. Dit is als het ware de enveloppe waarin het bericht wordt verzonden. Hoewel de SOAP services ook op de applicatielaag kunnen worden geboden, is bewust gekozen om de SOAP communicatie via een aparte web server op de presentatielaag te realiseren. Op deze SOAP servers mogen tegelijkertijd ook webpagina’s geserviced worden, die op zich weer gebruik kunnen maken van de geboden Webservices. Hierdoor kunnen deze web servers zowel door de browsers van klanten worden benaderd als door systemen/applicaties die een Webservice aanroepen. Webapplicaties voor gebruikers Webapplicaties zijn opgebouwd uit een gebruikersinterface, business/proces logica en gegevens. Om een webservice door klanten te laten gebruiken is altijd een gebruikersinterface en (deels) business/proces logica nodig. Er zijn drie soorten webapplicaties te onderscheiden in volgorde van voorkeur van toepassing binnen de gemeente. 1. Bestaande uit gebruikersinterface en een deel business/proces logica. De gegevens en alle of delen van de proceslogica worden uitsluitend benaderd via webservices. 2. Bestaande uit gebruikersinterface en deels business/proces logica en gegevens. Sommige gegevens en proceslogica worden benaderd via een webservice 3. Bestaande uit gebruikersinterface en business/proces logica en gegevens. Er worden geen webservices gebruikt. Sommige toepassingen kunnen (nog) geen gebruik maken van de web services technologie. Een voorbeeld hiervan is een sterk grafisch georiënteerde toepassing zoals waarbij topografische informatie (kaarten) worden getoond. De huidige webservices technologie biedt nog geen oplossingen om dit met voldoende performance te doen. Het ligt daarom voor de hand dat dergelijke toepassingen tot de categorie 2 of 3 uit voorgaande lijst behoren (beperkt gebruik van web services). Een andere reden kan zijn dat uitsluitend wordt gewerkt met statische informatie op statische pagina’s. Het is economischer hiervoor een eenvoudige webapplicatie (categorie 3) te bouwen dan hiervoor webservices te ontwikkelen. 3/5
Voorbeeldproject: “Een Haagse SOA” Gemeente Den Haag
Bij de overweging om een webservice of webapplicatie of een mix van beide te ontwikkelen is naast de technische mogelijkheden de belangrijkste overweging of gegevens al of niet met bijbehorende proces logica voor meerdere applicaties beschikbaar moeten zijn of niet.In het volgende figuur staat een screenshot van een voorbeeldapplicatie voor de webservice waarmee gezocht kan worden in de kernregistratie van Niet Natuurlijke Personen.
Lessons Learned Op basis van het project is het mogelijk een aantal lessons learned op te stellen. Hieronder staan de belangrijkste opgesomd: Beheer: De nieuwe situatie moet beheerd gaan worden. Met name het woordenboek (DenHaag.XSD) en de webservices per kernregistraties (de wsdl’s) moeten onderhouden gaan worden, nieuwe versies uitgegeven, etc. Wie legt welke definitie vast, wie is de baas? Hier ligt nog een belangrijke uitdaging, die niet onderschat wordt. Hierin is ook een rol weggelegd voor het Programma EGEM met de herziening van STUF2 en de ontwikkeling van een generiek gemeente woordenboek (gemeente.XSD), die gebaseerd kan zijn op het woordenboek van Den Haag. Veiligheid: Er is relatief veel tijd gestoken in de veiligheid rond de webservices. Aangezien het gaat om gevoelige informatie is dit een terechte investering. SOA & webservices: Uitstekende concepten: De gemeente Den Haag heeft hiermee laten zien dat de webservices technologie uitermate geschikt is voor de ontsluiting van gegevens waarmee enkelvoudige opslag en meervoudig gebruik gerealiseerd kan worden.
4/5
Voorbeeldproject: “Een Haagse SOA” Gemeente Den Haag
Een belangrijke rol gedurende het project die zeker heeft bijgedragen aan het succes is de rol van architect. De zware invulling (ervaring met web services) heeft er toe bijgedragen dat de juiste keuzes gemaakt zijn. Productie-omgeving: Het heeft relatief veel tijd gekost om de test-omgeving om te zetten naar de echte productieomgeving. Dit heeft veel te maken met de onbekendheid van de organisatie met de nieuwe technologie. Al met al een interessant voorbeeld van het toepassen van web services in gemeenteland. Meer informatie: www.ososs.nl Erwin Folmer Programma OSOSS
[email protected] Jacobien Bakker Gemeente Den Haag
[email protected]
Afkortingen... XML: Extensible Markup Language (XML) is een standaard voor het definiëren van formele markup-talen voor de representatie van gestructureerde gegevens in de vorm van platte tekst. Deze representatie is zowel machineleesbaar als leesbaar voor de mens. XML is een W3C (World Wide Web Consortium) standaard. http://nl.wikipedia.org/wiki/XML WSDL: Web Services Definition Language, of kortweg WSDL is een XML-taal waarmee we de interfaces van webservices kunnen beschrijven. Over het algemeen zullen deze WDSLdocumenten voornamelijk door applicaties gelezen worden en beschikbaar zijn voor aanroepende applicaties. http://nl.wikipedia.org/wiki/WSDL XSD: XML Schema vormt een schema-technologie die gebruikt wordt voor XML en van XML afgeleide talen. De formele taal van XML Schema, XSD of XML Schema Definitietaal (Engels: XML Schema Definition Language), is een standaard van het W3C. http://nl.wikipedia.org/wiki/XML_Schema_Definitietaal SOAP: SOAP is een computerprotocol dat wordt gebruikt voor communicatie tussen verschillende componenten. De afkorting staat voor Simple Object Access Protocol. SOAP wordt gesteund door een groot aantal bedrijven waaronder Sun, IBM, Microsoft, BEA, Oracle, Apache enz. SOAP is een protocol dat XML berichten stuurt, meestal over HTTP, maar ook over SMTP, HTTPS of FTP. http://nl.wikipedia.org/wiki/SOAP SOA: Service Oriented Architecture: Een architectuur concept waarin Web Services technologie gebruikt kan worden. Hieraan gerelateerd is de Enterprise Service Bus (ESB). http://xml.coverpages.org/soa.html
5/5