GDI-Vlaanderen Testbed Blog
In de marge van de INSPIRE conference in Krakau, eind juni 2010, werden de nieuwste guidelines met betrekking tot discovery services en view services gepubliceerd. Het gaat om versie 2.12 van deze guidelines. Deze guidelines werden herschreven door het "Services Team" dat deel uitmaakt van de Initial Operating Capability Task Force (IOC TF). Het AGIV vertegenwoordigt België in deze task force en is ook actief in het "Services Team". Het AGIV speelde aldus een actieve rol bij het opstellen van deze documenten. In een volgende fase zullen deze guidelines getest worden door verschillende leden van de IOC TF. Ook in deze fase zal het AGIV actief zijn. Op het GDI-Vlaanderen testbed zullen binnenkort services ter beschikking gesteld worden die reeds voldoen aan deze nieuwste guidelines.
De guidelines zijn te vinden via onderstaande links:
Technical Guidance for INSPIRE Discovery Services (Version 2.12)
Technical Guidance for INSPIRE View services (Version 2.12)
Meer info omtrent de IOC TF op http://inspire.jrc.ec.europa.eu/index.cfm/pageid/5/list/0
Het CRAB project werd uitgebreid met het onderdeel xGRAB waarbij de 'x' staat voor exchange, met andere woorden: gegevensuitwisseling in bulk tussen het AGIV en de gemeentes ten behoeve van de synchronisatie van beider adressendatabanken.
Omdat de bestaande CRAB-adresstandaard geen rekening houdt met een aantal entiteiten die wel via de GRAB Services open zijn gesteld, diende de uitwisselingsstandaard uitgebreid te worden, ondermeer met geometrische gegevens en de links met het rijksregister, VKBO en het kadaster. Naast een inhoudelijke uitbreiding werden er ook heel wat extra beperkingen toegevoegd aan de nieuwe uitwisselingsstandaard die minder ruimte laten voor discussie dan dat in het verleden het geval was: de ietwat eenvoudige constraints met het grammar-based XML Schema, de meer complexe met het nog niet zo gangbare maar desalniettemin zeer krachtige business rule-based Schematron.
Gedurende deze testfase is het enerzijds de bedoeling na te gaan of gemeentes de door AGIV aangeleverde bestanden kunnen verwerken en anderzijds of zij zelf in staat zijn vanuit hun eigen gegevensbronnen extracten te genereren die aan alle voorwaarden voldoen. Een klein voorbeeldbestand kan hen daarbij helpen.
Een Web Feature Service (WFS) is een interface voor het opvragen en aanleveren van geografische vectoriële data. De communicatie en het aanleveren van de gegevens gebeurt door middel van XML. De gegevens worden aangeleverd onder de vorm van een voor geografische gegevens specifiek schema, beter bekend als GML (Geography Markup Language).
Meer informatie over het project vindt u op http://gditestbed.agiv.be/project/WFS.aspx
Toegang verkrijgen tot de WFS services in het testbed kan via http://login.agiv.be/?role=85352F42-FBD0-44b8-9DBA-F65A40064F85
Het project WFS stelt een aantal Web Feature Services ter beschikking. Een Web Feature Service (WFS) is een interface voor het opvragen en aanleveren van geografische vectoriële data. De communicatie en het aanleveren van de gegevens gebeurt door middel van XML. De gegevens worden aangeleverd onder de vorm van een voor geografische gegevens specifiek schema, beter bekend als GML (Geography Markup Language). In het testbed wordt WFS 1.1.0 ondersteund.
De services zijn beschermd door middel van http digest authenticatie met uitzondering van de service Vrbg die geen authenticatie vereist.
In dit project wordt ook, bij de voorbeelden, een testpagina ter beschikking gesteld waarbij de gebruiker initieel kan nagaan hoe de service kan gebruikt worden. Net zoals voor de andere projecten moet ook voor dit project een aanvraag gedaan worden om toegang te krijgen tot dit specifieke project. De aanvraag kan ingediend worden door te klikken op de volgende URL: http://login.agiv.be/?ROLE=85352F42-FBD0-44b8-9DBA-F65A40064F85
Het genereren van een client proxy en het correct gebruik maken van de security implementatie bleken voor een aantal ontwikkelaars geen evidente materie, zeker niet vanaf een ander platform dan Microsoft .Net. Uit de drie verschillende handleidingen van de GRAB Services (WS-T, WFS-T en RAP) werden daarom de gemeenschappelijke delen gelicht en voortaan ondergebracht in een apart document: Handleiding GRAB Services - Algemeen deel. Met name de onderdelen betreffende de gebruikersrollen, het GRAB validatieconcept, de SOAP Message Security en het gebruik van Java WSIT werden grondig herzien in de hoop wat meer duidelijkheid te scheppen zodat de ontwikkelaars voortaan sneller voorbij die eerste twee hordes komen en zich kunnen concentreren op de eigenlijke functionaliteit.
Ook de referentieapplicatie kreeg - naast de reeds bestaande on-line versie - een printklare handleiding.
De CRAB Tools service tenslotte werd reeds enige tijd geleden uitgebreid met een extra operatie om naast de positie van huisnummers ook die van straatnamen te kunnen opvragen. Deze wijziging werd eindelijk gedocumenteerd in de aangepaste handleiding.
Begin oktober werd gemeld dat er een tijdelijk alternatief endpoint werd opengesteld voor de CRAB WS-T service dat geen gebruik maakt van message signing en encryption. Uit de testen die ondertussen door verschillende ontwikkelaars werden uitgevoerd is duidelijk gebleken dat het alternatief ook daadwerkelijk heel wat makkelijker te gebruiken is en er bovendien geen noemenswaardige problemen werden vastgesteld. Daarom is besloten alle GRAB Services (WS-T, WFS-T en RAP) voortaan aan te bieden met het alternatieve endpoint, dit zowel in de test- als in de productieomgeving.
Aan de SOAP Header voeg je een eenvoudig Security element toe:
De UsernameToken bevat de gebruikersnaam en het wachtwoord (in clear text) van de bij AGIV geregistreerde gebruiker.
De confidentialiteit en integriteit van de boodschappen wordt vervolgens gegarandeerd door gebruik te maken van transport security. Concreet gebeurt dit door gebruik te maken van het Secure Sockets Layer (SSL) protocol wat gezien de maturiteit ervan door heel wat platformen wordt ondersteund. Om als client te kunnen communiceren over SSL moet het certificaat van de server aanvaard en geïnstalleerd worden.
Er blijkt nogal wat verwarring te bestaan omtrent toegang tot de verschillende projecten. Voor elk project moet afzonderlijk toegang aangevraagd worden, ook al hebt u reeds een gebruikersnaam en webkey verkregen.
Dit kan voor: CRAB/GRAB via https://login.agiv.be/?role=43784eb5-95b9-4cbc-8749-732c145dfc70 Discovery Service via https://login.agiv.be/?ROLE=5B67D8F2-4E81-476D-85A2-70E784CFDAE0 WMS via https://login.agiv.be/?ROLE=cd27d5aa-6df6-4e30-8a7b-2114c370a5e5
Bij het gebruik van de tool wsimport om een java proxy te genereren op basis van een publieke WSDL kan het voorkomen dat je volgende foutmelding krijgt: Two declarations cause a collision in the ObjectFactory class. Deze fout is te wijten aan het feit dat twee klasses dezelfde naam krijgen, omdat wsimport standaard complex types die reeds eindigen op 'type' niet nog eens van het suffix 'type' gaat voorzien.
Dit probleem kan worden vermeden door bepaalde parameters mee te geven aan wsimport. Om bijvoorbeeld een proxy te genereren voor CRAB WS-T gebruik je het volgende commando: wsimport.bat -Xendorsed -s crab -keep -extension -Xnocompile -b crab_wst.xjb http://grab.beta.agiv.be/WST/CRAB_WST.svc?wsdl
Het bestand crab_wst.xjb wordt in de working directory geplaatst en bevat volgende instructie:
<jaxb:bindings version="1.0" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://java.sun.com/xml/ns/jaxws"> <jaxb:bindings schemaLocation="http://grab.beta.agiv.be/WST/CRAB_WST.svc?xsd=xsd2" node="/xs:schema"> <jaxb:globalBindings underscoreBinding="asCharInWord" /> <jaxb:schemaBindings> <jaxb:nameXmlTransform> <jaxb:typeName suffix="Type" /> </jaxb:nameXmlTransform> </jaxb:schemaBindings> </jaxb:bindings> </jaxb:bindings>
Het gevolg is dat je dan zowel een klasse CRABFieldType als een klasse CRABFieldTypeType hebt.
Om de laatste versie (2.0 early access release) van Metro te doen werken met een Java versie die al een oudere JAX-WS stack bevat, moet je het endorsed mechanisme gebruiken. Plaats hiertoe de volgende jars: jaxb-api.jar, jaxws-api.jar (beide uit jaxws-ri lib folder) en webservices-api.jar (uit metro lib folder) in de nog zelf aan te maken endorsed folder (%JAVA_HOME%\jre\lib\endorsed).
Problemen met de verschillende in dit testbed aangeboden webdiensten of de daarop gebouwde voorbeeldtoepassingen kunnen voortaan gesignaleerd worden via het GDI Testbed Meldingsysteem. Ook suggesties voor verbetering of vragen om opheldering zijn uiteraard welkom. Vanuit het AGIV trachten wij zo goed als mogelijk opvolging te geven aan uw bezorgdheden.
Om een probleem te signaleren klikt u linksboven op 'nieuwe melding'. U krijgt dan een eenvoudig invulformulier te zien. Geef een betekenisvolle korte omschrijving op van het probleem in het vakje 'titel'. Selecteer vervolgens het project waar de melding betrekking op heeft, het type melding en de prioriteit waarmee de melding moet behandeld worden. Een meer uitgebreide omschrijving van het probleem kan u kwijt in het vakje 'commentaar'. Tracht zo duidelijk mogelijk te zijn en zo min mogelijk ruimte te laten voor misinterpretatie. Klik uiteindelijk op 'bewaar'.
Om bepaalde problemen nog meer te verduidelijken kan u eens u de melding heeft bewaard ook nog een binaire bijlage (denk aan een screenshot, een SOAP Fault Message,...) koppelen aan de melding. Klik daarvoor rechts op 'bestand toevoegen'.
Voor u een probleem meldt, is het wellicht nuttig om eerst eens na te gaan of het niet al eerder is gemeld. Eventueel kan u zelf bijkomende commentaar toevoegen aan door anderen geposte meldingen.
|
|