1 ONGERUBRICEERD Nationaal Lucht- en Ruimtevaartlaboratorium National Aerospace Laboratory NLR Managementsamenvatting excat OpenGIS CSW server en clie...
Nationaal Lucht- en Ruimtevaartlaboratorium National Aerospace Laboratory NLR
Managementsamenvatting
eXcat OpenGIS CSW server en client Handleiding Rapportnummer NLR-CR-2008-809 Auteur(s) R.W. van Swol Rubricering rapport ONGERUBRICEERD Datum december 2008 Kennisgebied(en) Geomatics
Binnen de Ruimte voor Geoinformatie (RGI) projecten Geoloketten (RGI-006) en Remote Sensing Knooppunt binnen NGII (RGI-405) is door het Nationaal Lucht- en Ruimtevaartlaboratorium eXcat ontwikkeld. eXcat is een zeer efficiënt tool voor het publiceren van metadata waarbij de door het Open Geospatial Consortium (OGC) ontwikkelde standaard voor “Catalogue Services for Web” of kortweg CSW wordt ondersteund. eXcat is een in Java geschreven CSW server en een CSW client. Het kenmerkende van eXcat is dat het gebouwd is op een XML database, het open-source systeem eXist, dat
ONGERUBRICEERD
gebruik maakt van de web technologie standaarden XPath en XQuery. Het is een zeer eenvoudig te gebruiken systeem waarmee metadata in XML formaat, in dit geval ISO 19115/19139, opgeslagen kan worden, via de CSW standaard doorzocht kan worden en dat ook nog de metadata op een overzichtelijke en op uniforme manier aan de gebruiker presenteert. Tevens is een tweede CSW client op basis van Javascript en AJAX ontwikkeld, die met enkele eenvoudige ingrepen gemakkelijk in bestaande websites kan worden opgenomen.
Nationaal Lucht- en Ruimtevaartlaboratorium, National Aerospace Laboratory NLR
ONGERUBRICEERD
Anthony Fokkerweg 2, 1059 CM Amsterdam, P.O. Box 90502, 1006 BM Amsterdam, The Netherlands Telephone +31 20 511 31 13, Fax +31 20 511 32 10, Web site: www.nlr.nl
Nationaal Lucht- en Ruimtevaartlaboratorium National Aerospace Laboratory NLR
NLR-CR-2008-809
eXcat OpenGIS CSW server en client Handleiding R.W. van Swol
Niets uit dit rapport mag worden vermenigvuldigd en/of openbaar gemaakt, op welke wijze dan ook, zonder voorafgaande schriftelijke toestemming van de eigenaar. Opdrachtgever
Alterra
Contractnummer Eigenaar
Nationaal Lucht- en Ruimtevaartlaboratorium
NLR Divisie
Aerospace Systems & Applications
Verspreiding
Beperkt
Rubricering titel
Ongerubriceerd december 2008
Goedgekeurd door: Auteur
Reviewer
Beherende afdeling
NLR-CR-2008-809
Samenvatting Met de INSPIRE trein vol op stoom op weg naar een gestandaardiseerde geo-informatie wereld, komen er ook steeds meer tools beschikbaar die de gebruiker moeten helpen om op die trein te springen. Binnen Geoloketten is door het Nationaal Lucht- en Ruimtevaartlaboratorium een zeer efficiënt tool voor het publiceren van metadata ontwikkeld. Het belang van metadata wordt al lang onderkend, maar een ieder die zich wel eens in die materie heeft verdiept weet ook dat het aanmaken en onderhouden van metadata niet de meest aantrekkelijke klus is. Daardoor schort er nog wel eens aan de manier waarop data worden beschreven en dat komt de uitwisselbaarheid van de gegevens niet ten goede. Gelukkig is het geo-informatieveld in beweging: er ontstaat een eenduidiger beleid ten aanzien van de standaarden en een groeiend besef dat metadata moet. Tegelijkertijd wordt het ook steeds eenvoudiger om metadata aan te maken door ondersteuning van intelligente software tools. Wanneer de datasets dan op een correcte wijze van metadata zijn voorzien dan is de vraag wat er vervolgens mee gedaan wordt. Gewoonlijk wordt de informatie in een database opgeslagen en is er een al dan niet geavanceerde manier om in die database te zoeken naar specifieke informatie. Zo heeft elke organisatie wel een optimale manier gevonden om de gegevens en de bijbehorende metadata te beheren. Een belangrijk nut van metadata is echter dat het gebruikers helpt om datasets van elkaar te vinden en te gebruiken. Het publiceren van de metadata op internet is dus erg belangrijk voor het meervoudig gebruik van waardevolle geo-informatie. En om ook dit proces te stroomlijnen is door het Open Geospatial Consortium een standaard bedacht: “Catalogue Service for Web” of kortweg CSW. De CSW standaard beschrijft hoe digitale catalogi voor geospatiële data en diensten kunnen worden geraadpleegd. Voor de gebruiker betekent dit in praktijk dat men geen weet hoeft te hebben over hoe de achterliggende database is georganiseerd om toch de catalogus te kunnen raadplegen. Voor de ontwikkelaar betekent het dat er slimme software ontwikkeld kan worden waarmee het zoeken in verspreid aanwezige databases geautomatiseerd kan worden. Door het NLR is in het Geoloketten project eXcat ontwikkeld. eXcat is een in Java geschreven CSW server en een CSW client. Het bijzondere van eXcat is dat het gebouwd is op een XML database, het open-source systeem eXist dat gebruik maakt van de webtechnologie standaarden XPath en XQuery. Prachtige en indrukwekkende termen natuurlijk, maar wat echt belangrijk is dat daarmee een zeer eenvoudig te gebruiken systeem is ontwikkeld waarmee metadata in XML formaat, in dit geval ISO 19115/19139, opgeslagen kan worden, via de CSW standaard
3
NLR-CR-2008-809
doorzocht kan worden en dat ook nog de metadata op een overzichtelijke en op uniforme manier aan de gebruiker presenteert. De CSW client is ook op basis van XQuery ontwikkeld en kan met enkele eenvoudige ingrepen gemakkelijk in bestaande websites worden opgenomen. Installatie van de eXcat software bestaat slechts uit een paar handelingen en zondere verdere configuratie werkt het “out-of-the-box”. En dat op Windows, Unix of Mac OSX machines. Het is voor de beheerder al net zo eenvoudig om metadata, in de vorm van XML bestanden aan de database toe te voegen. Met een administratie programma kunnen de bestanden van de schijf worden ingelezen. Daarbij bestaat tevens de mogelijkheid bestandsmappen aan te maken zodat enige organisatie in de te bewaren bestanden kan worden aangebracht. Andere beheerders geven misschien de voorkeur aan het gebruik van de WebDAV interface; de bestandsmappen worden dan in bijvoorbeeld de Windows verkenner weergegeven alsof het normale mappen op het systeem zijn. Drag-and drop is dan de wijze waarop de metadata bestanden worden toegevoegd of verwijderd. Kan het eenvoudiger? Via de CSW client kunnen ook andere CSW servers elders op het net worden bevraagd en hoewel het CSW protocol er ook in voorziet dat een vraag simultaan naar meerdere servers wordt gestuurd geeft men vaak de voorkeur aan het “harvest-en” van gegevens van andere servers. Van tijd tot tijd worden dan alle databestanden van andere CSW servers opgehaald en in de eigen database opgeslagen. Ook eXcat biedt deze mogelijkheid. Met de Harvest module kan gemakkelijk de informatie van andere aanbieders worden opgehaald en lokaal worden opgeslagen.
4
NLR-CR-2008-809
Inhoud
Afkortingen
7
1
Inleiding
9
2
Het CSW protocol
10
2.1
CSW-HTTP binding
10
2.2
GetRecords Request
11
2.2.1
CQL_TEXT voorbeelden
11
2.2.2
ogc:Filter voorbeelden
12
2.2.3
GetRecords voorbeelden (KVP en XML)
13
3
4
5
6
eXist XML database
13
3.1
XPath
14
3.2
XQuery
14
3.3
eXist
14
eXcat CSW server en client
15
4.1
eXcat CSW server
15
4.2
eXcat geïntegreerde CSW client
15
4.3
eXcat CSW Javascript/AJAX client
16
4.4
eXcat Harvest module
16
Installatieprocedure eXcat
17
5.1
Installatie
17
5.2
Metadata toevoegen aan de database
21
5.2.1
Gebruik van de Administratie client
21
5.2.2
Gebruik van WebDAV
23
5.2.3
Gebruik van Harvest request
25
5.3
Installatie Javascript/AJAX client
25
Geavanceerd gebruik van eXcat
29
6.1
Aangepaste configuratie van eXcat
29
6.1.1
allow.xml
30
6.1.2
csw.properties
30
5
NLR-CR-2008-809
6.1.3
csw.hosts.xml
33
6.1.4
harvest.properties
34
6.2
Een tweede eXcat instantiatie
35
6.3
Backup maken en inlezen
37
6.4
Gebruik van OpenLayers viewer
37
Referenties
38
6
NLR-CR-2008-809
Afkortingen
AJAX
Asynchronous JavaScript and XML
CQL
Common Query Language
CSW
Catalogue Services for the Web
GIS
Geographic Information System
HTTP
Hypertext Transport Protocol
KVP
Key-Value Pair
NGII
Nationale Geo-Informatie Infrastructuur
OGC
Open Geospatial Consortium
RGI
Ruimte voor Geo-Informatie
RPC
Remote Procedure Call
SOAP
Simple Object Access Protocol
SQL
Structured Query Language
URI
Uniform Resource Identifier
URL
Uniform Resource Locator
UTF
Unicode Transformation Format
WebDAV
Web-based Distributed Authoring and Versioning
XML
Extensible Markup Language
XSL
Extensible Stylesheet Language
7
NLR-CR-2008-809
Deze pagina is opzettelijk blanco.
8
NLR-CR-2008-809
1
Inleiding
Binnen de Ruimte voor Geo-informatie (RGI) projecten Geoloketten (RGI-006) en Remote Sensing Knooppunt binnen NGII (RGI-405) is door het Nationaal Lucht- en Ruimtevaartlaboratorium eXcat ontwikkeld. eXcat is een zeer efficiënt tool voor het publiceren van metadata waarbij de door het OpenGIS Consortium (OGC) ontwikkelde standaard voor “Catalogue Services for Web” of kortweg CSW wordt ondersteund. eXcat is een in Java geschreven CSW server en een CSW client. Het kenmerkende van eXcat is dat het gebouwd is op een XML database, het open-source systeem eXist (zie: http://exist.sourceforge.net) dat gebruik maakt van de web technologie standaarden XPath en XQuery. Het is een zeer eenvoudig te gebruiken systeem waarmee metadata in XML formaat, in dit geval ISO 19115/19139, opgeslagen kan worden, via de CSW standaard doorzocht kan worden en dat ook nog de metadata op een overzichtelijke en op uniforme manier aan de gebruiker presenteert. Tevens is een tweede CSW client op basis van Javascript en AJAX ontwikkeld, die met enkele eenvoudige ingrepen gemakkelijk in bestaande websites kan worden opgenomen. Het belang van metadata wordt al lang onderkend, maar een ieder die zich wel eens in die materie heeft verdiept weet ook dat het aanmaken en onderhouden van metadata niet de meest aantrekkelijke klus is. Daardoor schort er nog wel eens aan de manier waarop data worden beschreven en dat komt de uitwisselbaarheid van de gegevens niet ten goede. Gelukkig is het geo-informatieveld in beweging: er ontstaat een eenduidiger beleid ten aanzien van de standaarden en een groeiend besef dat metadata moet. Tegelijkertijd wordt het ook steeds eenvoudiger om metadata aan te maken door ondersteuning van intelligente software tools. Wanneer de datasets dan op een correcte wijze van metadata zijn voorzien dan is de vraag wat er vervolgens mee gedaan wordt. Gewoonlijk wordt de informatie in een database opgeslagen en is er een al dan niet geavanceerde manier om in die database te zoeken naar specifieke informatie. Zo heeft elke organisatie wel een optimale manier gevonden om de gegevens en de bijbehorende metadata te beheren. Een belangrijk nut van metadata is echter dat het gebruikers helpt om datasets van elkaar te vinden en te gebruiken. Het publiceren van de metadata op internet is dus erg belangrijk voor het meervoudig gebruik van waardevolle geo-informatie. En om ook dit proces te stroomlijnen is door het OpenGIS Consortium een standaard bedacht: “Catalogue Service for Web” of kortweg CSW. De CSW standaard beschrijft hoe digitale catalogi voor geospatiële data en diensten kunnen worden geraadpleegd. Voor de gebruiker
9
NLR-CR-2008-809
betekent dit in praktijk dat men geen weet hoeft te hebben over hoe de achterliggende database is georganiseerd om toch de catalogus te kunnen raadplegen. Voor de ontwikkelaar betekent het dat er slimme software ontwikkeld kan worden waarmee het zoeken in verspreid aanwezige databases geautomatiseerd kan worden.
2 Het CSW protocol Het CSW protocol is door OGC ontwikkeld om via het web databases te kunnen ondervragen zonder dat daarbij kennis hoeft te bestaan over de structuur van die database. Dit kan doordat bij de database een (virtuele) catalogus in een standaard formaat behoort. Als gevolg kan binnen de ISO 19139 metadata XML records in de database gezocht worden zonder het XML schema te hoeven kennen. De catalogus voorziet namelijk in een mapping tussen afgesproken zoekbare termen (zoals Title, Subject, AnyText, ...) en het overeenkomstige element of attribuut binnen het XML schema. Inmiddels zijn er reeds verschillende updates van de specificatie verschenen. De meest relevante versies zijn versie 2.0.1 en 2.0.2. Deze versie verschillen slecht weinig van elkaar. Tenzij anders vermeld wordt in dit document slechts aan CSW versie 2.0.2 gerefereerd. 2.1 CSW-HTTP binding De communicatie tussen een client en de CSW server verloopt meestal, maar niet noodzakelijkerwijs, via het HTTP protocol. Er zijn afspraken gemaakt hoe de boodschappen tussen client en server worden eruit zien en op welke wijze zij verzonden worden. De volgende boodschappen die aan een server kunnen worden verzonden zijn vastgesteld: - GetCapabilities (om een beschrijving te krijgen van de CSW Server mogelijkheden) - DescribeRecords (om een beschrijving te krijgen van de onderliggende record structuur) - GetDomain - GetRecords (om te zoeken naar bepaalde records) - GetRecordById (om een record op basis van een unieke identifier op te vragen) - Harvest (om de CSW server te vertellen een record op te halen en op te slaan in de database) - Transaction Deze boodschappen kunnen in XML worden verpakt of als KVP (key-value pairs) worden verstuurd via zowel HTTP GET als HTTP PUT requests.
10
NLR-CR-2008-809
De server antwoord altijd met één van de volgende XML boodschappen: - ... - ... - - ... - ... - ... Het laatste antwoord betreft een foutmelding als gevolg van een onjuist geformuleerd request. Voor de duidelijkheid is hierboven voor de request en response boodschappen alleen het root element van het XML document getoond. De volledige definitie van deze boodschappen is te vinden in de CSW specificatie OGC 07-006r1 en OGC 07-045. 2.2 GetRecords Request Het GetRecords request is veruit het belangrijkste request dat aan de CSW server wordt toe gestuurd. Het bevat namelijk de criteria waarop een selectie van (metadata) records wordt gemaakt. Deze criteria zijn volgens het CSW protocol vervat in een zogenaamde Constraint. CSW voorziet in 2 manieren waarop zo'n Constraint kan worden geformuleerd: - CQL_TEXT, een als tekst-string geformuleerd Common Query Language statement - FILTER, een als XML geformuleerde query Naast Constraint kunnen nog veel meer parameters worden opgegeven, zoals het maximum aantal records dat men terugverwacht en het formaat en het schema van dat record. Ook hier wordt voor een uitvoerige beschrijving verwezen naar document OGC 07-045. 2.2.1
CQL_TEXT voorbeelden
Hieronder staat een paar voorbeelden van het gebruik van CQL_TEXT voor het selecteren van metadata records. 1. Gevraagd worden alle records waarin de string "water" voorkomt: AnyText LIKE '%water%'
2. Gevraagd worden alle records waarin de titel de string "water" voorkomt: Title LIKE '%water%'
3. Gevraagd worden alle records waarvan de titel begint met "water": Title LIKE 'water%'
11
NLR-CR-2008-809
4. Gevraagd worden alle records waarin de titel de string "water" voorkomt en waarvan de geografische boundingbox geheel of gedeeltelijk samenvalt met een bepaald gebied (hier: Nederland in latitude, longitude coördinaten): Title LIKE '%water%' AND BBOX(ows:BoundingBox, 3.19,50.67,7.26,53.59)
5. Gevraagd worden alle records waarin de titel de string "water" voorkomt en waarvan de geografische boundingbox geheel binnen een bepaald gebied valt(hier: Nederland in latitude, longitude coördinaten): Title LIKE '%water%' AND WITHIN(ows:BoundingBox,ENVELOPE(3.19,7.26,53.59,50.67))
2.2.2
ogc:Filter voorbeelden
De voorbeelden 1 en 4 uit de vorige paragraaf zien er als FILTER in XML als volgt uit: 1. Gevraagd worden alle records waarin de string "water" voorkomt: AnyText%water%
4. Gevraagd worden alle records waarin de titel de string "water" voorkomt en waarvan de geografische boundingbox geheel of gedeeltelijk samenvalt met een bepaald gebied (hier: Nederland in latitude, longitude coördinaten) (namespace definities weggelaten): Title%water%ows:BoundingBox3.19 50.677.26 53.59
12
NLR-CR-2008-809
2.2.3
GetRecords voorbeelden (KVP en XML)
Een volledig GetRecords request zou er als volgt uit kunnen zien: KVP request met CQL_TEXT constraint: http://localhost:8080/excat/csw?request=GetRecords&service=CSW &version=2.0.2&namespace=xmlns(csw=http://www.opengis.net/cat/csw) &resultType=results&outputSchema=http://www.opengis.net/cat/csw/2.0.2 &outputFormat=application/xml&maxRecords=10&typeNames=csw:Record &elementSetName=summary&constraintLanguage=CQL_TEXT &constraint_language_version=1.1.0 &constraint=AnyText+LIKE+%27%25water%25%27
XML request met FILTER constraint: summaryAnyText%water%
3 eXist XML database Metadata voor geo-informatie (data en services) wordt volgens de standaarden ISO19115 en ISO19139 beschreven. De wijze waarop deze metadata vervolgens in XML wordt gepresenteerd staat beschreven in de ISO19139 standaard. Metadata voor geo-informatie zijn tegenwoordig dus XML documenten. Bij het aanleggen van een catalogus op basis van metadata worden veelal relationele databases gebruikt die met behulp van SQL zoekopdrachten kunnen worden ondervraagd. Echter, wanneer XML bestanden in dergelijke relationele databases worden
13
NLR-CR-2008-809
opgeslagen gaat de mogelijkheid om op kenmerken binnen de XML bestanden te zoeken verloren. Het gebruik van een XML database biedt daarentegen belangrijke voordelen met als belangrijkste dat er er binnen het document gezocht kan worden door gebruik te maken van XPath en XQuery. Zowel XPath als XQuery zijn door de World Wide Web Consortium (W3C) ontwikkelde standaarden en worden binnen veel toepassingen gebruikt. 3.1 XPath XPath (zie: http://www.w3.org/TR/xpath) is een taal om onderdelen van een XML document aan te duiden en biedt tevens de mogelijkheid om met tekst, getallen en booleans te manipuleren. XPath wordt vooral gebruikt bij XSL (stylesheet) transformaties waarbij een XML document geconverteerd wordt naar een ander XML document volgens de regels die in een XSL document staan gespecificeerd. 3.2 XQuery XQuery (zie: http://www.w3.org/TR/xquery) is een taal die is ontwikkeld om op intelligente en doorzichtige wijze XML documenten te ondervragen. Het gebruikt daarbij XPath om testen (queries) uit te voeren op onderdelen van XML documenten om vervolgens XML fragmenten of gehele documenten uit een collectie van XML documenten op te vragen. 3.3 eXist Als XML database is voor de ontwikkeling van eXcat gebruik gemaakt van eXist. eXist (zie: http://exist.sourceforge.net) is een opensource database management systeem dat geheel gebouwd is op XML technologie en ondersteund de standaarden XPath en XQuery. Deze XML database is volledig in Java geschreven en is gemakkelijk te integreren in toepassingen waarbij XML gebruikt wordt. Daarbij ligt de prestatie op een hoog niveau doordat er een slim indexing schema wordt toegepast waarmee snel relaties (zoals: (parent-child, ancestor-descendant of previous-next) tussen fragmenten van de XML documenten kunnen worden vastgesteld. De eXist database bevat een aantal belangrijke eigenschappen waarvan er hier een paar genoemd worden: XQuery ondersteuning, autorisatie mechanisme, crash recovery, backup-restore functionaliteit, ... Daarnaast worden de volgende netwerk protocolen ondersteund: HTTP/REST, WebDAV, SOAP en XML-RPC.
14
NLR-CR-2008-809
Voor de eXist database is ook een Administratie client beschikbaar waarmee eenvoudig toegang tot de database wordt verkregen en waarmee de structuur, de documenten, de gebruiksrechten beheerd kunnen worden. Vanuit die client kan ook een backup worden gemaakt en kan een bestaande backup worden ingelezen.
4 eXcat CSW server en client 4.1 eXcat CSW server Ook eXcat is in Java ontwikkeld en opereert binnen een servlet-engine zoals Tomcat. Binnen eXcat is het CSW protocol voor het "ISO 19115 Application Profile for Metadata" geïmplementeerd. Dit betekent dat gestandaardiseerde CSW verzoeken (requests) door eXcat worden afgehandeld en dat ook gestandaardiseerde antwoorden (responses) worden terug gegeven. De requests bevatten daarbij vooral zoekopdrachten voor de metadata database. De volgende CSW requests worden ondersteund: -GetCapabilities -DescribeRecords -GetRecords -GetRecordById -Harvest Alle requests kunnen zowel als HTTP GET als HTTP PUT requests naar de eXcat CSW server worden verstuurd. Omdat eXcat op de eXist XML database ontwikkeld is zijn ook specifieke eigenschappen van eXist, zoals de REST, SOAP, XML-RPC en WebDAV interfaces beschikbaar. Ook de Administratie client van eXist kan worden gebruikt om de metadata (in ISO 19139 XML formaat) te beheren. 4.2 eXcat geïntegreerde CSW client Op basis van XQuery is ook een CSW client toegevoegd. Deze client is via een webbrowser benaderbaar en is vooral geschikt voor experts op het gebied van CSW. De client biedt de mogelijkheid om de eXcat server maar ook andere remote CSW servers te ondervragen. Daarbij kan (eventueel) in CQL_TEXT een zoekopdracht worden opgegeven die of als CQL_TEXT of als FILTER wordt verzonden. [Opmerking: in de eXcat software wordt voor de vertaling van CQL naar FILTER de Geotools bibliotheek gebruikt (zie: http://geotools.codehaus.org)] Tevens kunnen de verzendmethode (GET of POST) en het verzendformaat (KVP of XML) worden
15
NLR-CR-2008-809
gekozen. Andere parameters die door de gebruiker kunnen worden ingesteld zijn: version, resultType, maxRecords, outputSchema, ElementSetName en SortBy. De client biedt ook nog een oefenmogelijkheid in het gebruik van filters. De als CQL_TEXT ingevoerde constraint wordt getoond in de overeenkomstige ogc:Filter XML representatie en in het uiteindelijke XQuery formaat. Ook kan de Harvest module die als servlet (onafhankelijk van de eXcat CSW server) is geïmplementeerd vanuit dezelfde browser client worden bediend. Deze bediening is zeer eenvoudig en bestaat slechts uit het starten, monitoren en stoppen van het harvest proces voor gelsecteerde remote CSW servers. 4.3 eXcat CSW Javascript/AJAX client Doordat de bovengenoemde CSW client is opgebouwd uit xql-pagina's die alleen binnen een servlet engine, zoals Tomcat gebruikt kunnen worden is deze client niet zomaar binnen willekeurige webpagina's te gebruiken. Daarom is er ook een op Javascript en AJAX gebaseerde client ontwikkeld die eenvoudig in bestaande web-pagina's kan worden ingepast. De client is ook eenvoudiger te gebruiken; de gebruiker heeft de mogelijkheid een zoekterm in te voeren op basis waarvan de gehele tekst, of alleen de titel of alleen op onderwerp wordt doorzocht. Kennis van CQL_TEXT of FILTER constraints is daarbij niet nodig. Net als bij de andere client kunnen ook hier remote CSW servers ondervraagd worden. Om de client met remote servers te laten communiceren is wel een proxy vereist. Veiligheidsredenen laten niet toe dat browsers via Javascript XML boodschappen uitwisselen met andere servers dan waarvan de pagina's worden geladen. Via een eenvoudige proxy, in dit geval in PHP geschreven, kan dit probleem omzeild worden. De enige voorwaarde is dat de server waar de client wordt geïnstalleerd PHP ondersteunt. 4.4 eXcat Harvest module Ook een onafhankelijke Harvest module is beschikbaar. Harvesting is het proces van verzamelen van metadata records om die vervolgens in de eigen database op te slaan. Meestal worden die metadata records bij andere remote CSW servers vandaan gehaald maar noodzakelijk is dat niet. Harvesting wordt meestal gebruikt in plaats van gedistribueerde zoek acties waarbij een zoekopdracht aan een CSW server door diezelfde server wordt doorgegeven aan andere servers en de resultaten verzameld. Deze procdure blijkt in praktijk niet altijd efficiënt te werken omdat servers niet snel genoeg reageren waardoor het gehele proces van de zoekopdracht vertraagd wordt. Ook vaak lastig de verzamelde resultaten eerst te sorteren alvorens het resultaat naar de gebruiker toe te sturen. Met een enkele database met daarin de
16
NLR-CR-2008-809
verzamelde data bestaan deze problemen niet. Het nadeel is echter dat men niet zeker weet of de ge-harveste records nog actueel zijn. Door met regelmaat het Harvest proces te draaien en omdat het modificeren van metadata databases in praktijk niet erg vaak gebeurt, hoeft dit nadeel niet van groot belang te zijn. De huidige eXcat Harvest module werkt semi-automatiseerd en moet door de gebruiker gestart worden. Nadat de metadata op schijf verzameld is worden de records stuk voor stuk aan de eXcat CSW server aangeboden via het standard CSW Harvest request. Het voordeel hiervan is dat de Harvester ook in combinatie met andere CSW servers kan werken. Het is aan de CSW server om te bepalen of en hoe het record vervolgens wordt opgeslagen. De standaard werking is dat metadata die, op basis van de unieke file identifier, al aanwezig is niet wordt overschreven en dat overschrijving van metadata records alleen plaats vindt wanneer de metadata bij dezelfde remote CSW server vandaan komt. Dit voorkomt dat dezelfde records via meerdere CSW servers worden binnengehaald.
5 Installatieprocedure eXcat 5.1 Installatie De eXcat software is als een zogenaamd Java war-bestand beschikbaar. Dit maakt de installatie er gemakkelijk. De gehele procedure bestaat in feite uit drie stappen. Stap 1: Installeren software Het kopiëren van het bestand excat.war naar de directory $CATALINA_HOME/webapps is voldoende. [$CATALINA_HOME is hier de directory waar Tomcat is geïnstalleerd. Onder Windows is dat meestal C:\Program Files\Apache Software Foundation\Tomcat 5.5] Wanneer Tomcat gestart wordt zal het bestand excat.war automatisch worden uitgepakt en in de directory $CATALINA_HOME/webapps/excat zijn alle bestanden terug te vinden. Een nieuwe en lege XML database wordt automatisch aangemaakt. De directory-structuur is te zien in figuur 1 en een beschrijving volgt hierna.
17
NLR-CR-2008-809
Fig. 1 Folderstructuur eXcat web-applicatie
css: hier staan de css stylesheets die de vormgeving van de client bepalen. doc: hier staan een aantal documenten met achtergrond informatie. images: een aantal beeldjes die voor de opmaak van de client webpagina's worden gebruikt scripts: hier staan de excat.js en prototype.js javascript files. Javascript wordt in de client gebruikt om het "back-button" probleem op te lossen. Dynamisch aangepaste pagina's geven de impressie van een nieuw geladen pagina maar zijn dat niet. De browser back-button kan daardoor niet gebruikt worden om naar de "vorige" pagina terug te gaan. Met Javascript is deze intuïtieve methode toch toe te passen. META-INF: een standaard directory in web-applicaties waarin onder andere het automatische herladen van de applicatie geregeld wordt. WEB-INF: hieronder vallen alle hulpbestanden en overige bestanden die voor de web-gebruiker verborgen blijven. In deze directory is ook weer een uitsplitsing naar directories gemaakt. WEB-INF/bin: hier staat het programma waarmee de Administratie client van de eXist XML database wordt opgestart (Unix en Windows versie). WEB-INF/classes: hier staat het configuratiebestand voor de log-boodschappen. WEB-INF/conf: hier staan de eXcat configuratie bestanden (zie hierna). WEB-INF/data: hier staan de eXist database bestanden. WEB-INF/harvest: hier staan (tijdelijk) de XML metadata records die door de Harvest module bij remote CSW servers worden opgehaald.
18
NLR-CR-2008-809
WEB-INF/lib: alle Java jar bibliotheken. WEB-INF/log: de diverse log-files WEB-INF/xml: XML-bestanden: voor capabilities, describerecord en het voorbeeld metadata record. WEB-INF/xsl: XSL stylesheets voor de CSW client en voor de server. Transformatie van XML naar een ander XML formaat gebeurt op basis van deze stylesheets. Ondermeer staan hier de XSL stylsheets waarmee ISO19139 records in DublinCore formaat worden getransformeerd. Stap 2: Controleer juiste werking De excat web-applicatie is meteen beschikbaar. Ga met de browser naar http://localhost:8080/excat en de hoofdpagina van eXcat wordt zichtbaar (zie Fig. 2). Hierbij wordt ervan uitgegaan dat Tomcat geconfigureerd is om op poort 8080 te werken. Dit is de standaard setting. Indien die is aangepast dan moet natuurlijk een ander poortnummer worden gebruikt.
Fig. 2 eXcat client hoofdpagina
Stap 3: Installeer voorbeeldrecord Ga vanuit de hoofdpagina naar CSW Client. Een zoekformulier verschijnt (zie Fig. 3). Vul niets in maar druk op de "Submit" knop. Er wordt nu één metadata record gevonden, namelijk de beschrijving van eXcat in ISO19139 formaat (zie Fig. 4). Dit record wordt automatisch in de XML database opgeslagen als er een zoekopdracht wordt gegeven en er nog geen records in de
19
NLR-CR-2008-809
database staan. Het XML antwoord dat van de server is ontvangen kan worden getoond door op"de "XML-tab" te klikken. Wanneer het record geselecteerd wordt (klikken op de titel of op "more") wordt een leesbare representatie van het bestand getoond. De "XML-tab" geeft ook hier weer de mogelijkheid het ruw XML antwoord van de server te bekijken.
Fig. 3 eXcat client zoekformulier
20
NLR-CR-2008-809
Fig. 4 eXcat metadata zoekresultaat
5.2 Metadata toevoegen aan de database De zojuist geïnstalleerde software is nu gereed voor gebruik en metadata records kunnen worden toegevoegd. Er zijn een 3-tal manieren om metadata aan de CSW server aan te bieden: 1: via de Administratie client 2: via het WebDAV protocol 3: via het Harvest request 5.2.1
Gebruik van de Administratie client
De bij de eXist database meegeleverde Administratie client biedt een handige methode voor het toevoegen van metadata records. De gebruiker heeft de mogelijkheid om data op een georganiseerde en overzichtelijke wijze, volgens een folder structuur op te slaan. De Administratie client is een Java applicatie die kan worden opgestart door vanuit de WEBINF/bin directory het programma client.bat (Windows) of client.sh (Unix, OSX) op te starten. Er verschijnen dan een paar informatieve boodschappen, maar die kunnen worden genegeerd. Het openingsscherm (zie Fig. 5) verschijnt en het is voldoende om op de knop “OK” te drukken. [Opmerking: Men heeft hier ook de mogelijkheid om de URL aan te passen en een ander adres te kiezen. Tevens kunnen adressen van andere eXist databases worden bewaard en aan de lijst van favorieten worden toegevoegd.].
21
NLR-CR-2008-809
De client laat nu de onderliggende database structuur als een folder structuur zien. In figuur 6 staat de betekenis van knoppen die boven in het scherm staan beschreven.
Fig. 5 eXist administratie client startscherm
Twee folders zijn zichtbaar csw en systeem. Het is verstandig om de folder systeem verder te negeren en te dubbel-klikken op csw om die folder in te gaan. Binnen de folder csw is een folder excat zichtbaar waarin het voorbeeld record excat.xml is opgeslagen. Dit record kan worden getoond door dubbel-klikken. In principe, kan het getoonde bestand nu ook gewijzigd worden, maar voor een goed beheer van de metadata wordt dit afgeraden en het wijzigen van bestanden buiten de database om te doen. Het is raadzaam om enige structuur aan te brengen in de wijze waarop de metadata wordt opgeslagen en daarom wordt geadviseerd om binnen de csw folder een nieuwe folder aan te maken. Dit kan men doen via knop 3 (zie Fig. 6). Ga in de nieuwe folder staan (dubbel-klik) en gebruik de knop 4 (Fig. 6) om nieuwe bestanden toe te voegen. Een nieuw venster wordt geopend (Fig. 7) waarmee de XML-bestanden geselecteerd kunnen worden die moeten worden toegevoegd. Via de eXcat client (in de browser) zijn deze bestanden nu meteen op te zoeken en zichtbaar te maken.
22
NLR-CR-2008-809
Fig. 6 eXist administratie hoofdscherm
Fig. 7 Toevoegen metadata via eXist client
5.2.2
Gebruik van WebDAV
WebDAV is een protocol waarmee bestanden die op een server staan toegankelijk kunnen worden gemaakt alsof zij op het file systeem van de eigen computer staan. eXist ondersteunt dit protocol waardoor de inhoud van de database als een folder met bestanden toegankelijk kan worden gemaakt. Belangrijk: hiervoor moeten de onderstaande regels in de file WEBINF/web.xml niet uitgecommentarieerd zijn:
Onder Windows kan de eXist database kan als netwerk folder aangekoppeld via de volgende procedure. 1. Ga op via My Computer op naar My Network Places en klik (of ga in de verkenner op My Network Places staan en klik met de rechtermuis knop op open). Kies vervolgens Add a network place in de linker bovenhoek van de sidebar. 2. Het venster dat geopend wordt is de Add Network Place Wizard. Klik op Next. 3. Voer op de volgende pagina de URL van de WebDAV folder in in het veld Internet or network address:. Voorbeeld: http://localhost:8080/excat/webdav en klik op Next. 4. Standaard is de eXist databse bescherm met een gebruikersnaam en wachtwoord. Voer de naam (default: admin) en wachtwoord (default: leeg) in en klik op OK. 5. Voer nu de naam voor deze folder in (bijv. eXcat webdav localhost) – dit is de naam die in de lijst van My Network Places zal verschijnen (zie: Fig. 8). 6. Klik tot slot op Finish op de volgende pagina.
Fig. 8 eXcat als web folder (via webDAV)
Nieuwe folders en XML metadata bestanden kunnen nu worden toegevoegd of verwijderd. Het is echter niet mogelijk de bestanden te wijzigen, wat overigens afgeraden wordt.
24
NLR-CR-2008-809
5.2.3
Gebruik van Harvest request
Het gebruik van het Harvest request biedt in principe ook de mogelijkheid om XML bestanden in de CSW server te plaatsen, maar deze methode moet toch gezien worden als een expert methode. Voor de volledigheid wordt deze methode hier wel beschreven. Wanneer het metadata bestand my-metadata.xml zich in de folder WEB-INF/harvest/my-xml bevindt, dan accepteert de eXcat CSW server het volgende KVP request (via HTTP-GET): http://localhost:8080/excat/csw?request=Harvest&service=CSW &version=2.0.2&namespace=xmlns(csw=http://www.opengis.net/cat/csw) &source=my-xml/my-metadata.xml &resourceFormat=application/xml &resourceType=http://www.isotc211.org/2005/gmd &collection=my-xml
Hetzelfde request in XML (via HTTP-POST) ziet er als volgt uit: my-xml/my-metadata.xmlhttp://www.isotc211.org/2005/gmdapplication/xmlmy-xml
Opmerking 1: de parameter collection is niet standaard en wordt door eXcat gebruikt om het bestand in een specifieke folder (hier: my-xml) te plaatsen. De Harvest module gebruikt hier de unieke id van de remote server. Opmerking 2: de parameter source is een URI en kan dus ook de volgende vorm hebben: source=file:/C:\Documents and Settings\Desktop\my-metadata.xml
Wanneer de protocolspecificatie (hier: file:/) ontbreekt dan wordt een pad relatief ten opzichte van WEB-INF/harvest gebruikt. Dit standaard pad is in de configuratie bestand aan te passen (zie later). 5.3
Installatie Javascript/AJAX client
Naast de geïntegreerde CSW (expert-) client die binnen eXcat is ontwikkeld is er ook een eenvoudige client gemaakt met behulp van Javascript en AJAX. Deze client kan op gemakkelijk wijze in bestaande HTML pagina’s worden ingepast door in de pagina de onderstaande HTML code aan de pagina toe te voegen en de hulpbestanden volgens de folderstructuur in figuur 9 op te slaan.
25
NLR-CR-2008-809
Fig. 9 Folderstructuur Javascript/AJAX CSW client
De toevoeging bestaat uit referenties naar een css-stylesheet (cswclient.css), naar drie javascript bibliotheken (sarissa.js, sarissa_ieemu_xpath.js en cswclient.js) en een
sectie met daarin de Javascript code waarmee de CSW client in de pagina wordt geplaatst. <script type="text/javascript" src="./lib/scripts/sarissa.js"> <script type="text/javascript" src="./lib/scripts/sarissa_ieemu_xpath.js"> <script type="text/javascript" src="./lib/scripts/cswclient.js">
<script type="text/javascript"> var csw_client = new CSWClient(); csw_client.writeClient("csw-wrapper");
Dit is de standaard methode, waarbij de client toegang biedt tot de CSW servers die in de configuratie file lib/xml/cswclient.xml zijn opgenomen. Om met AJAX toegang te krijgen tot remote CSW servers is het gebruik van een proxy noodzakelijk. Er wordt gebruik gemaakt van een in PHP geschreven proxy (csw-proxy.php) hetgeen betekent dat de web-server (zoals Apache) wel het gebruik van PHP moet ondersteunen. Optioneel kan de CSW client ook op de volgende manieren geïnitialiseerd worden: 1. Gebruik alleen http://some-csw-server/excat/csw als CSW host en csw-proxy.php staat op http://my-host/some/path (in plaats van op standaard pad): var csw_client = new CSWClient("http://some-csw-server/excat/csw",”http://myhost/some/path”);
26
NLR-CR-2008-809
2. Gebruik alleen http://some-csw-server/excat/csw als CSW host en csw-proxy.php staat op standaard pad: var csw_client = new CSWClient("http://some-csw-server/excat/csw");
3. Gebruik alleen http://my-host/excat/csw als CSW host (op dezelde server en poort als waarvan de HTML pagina met de CSW client wordt geladen) en een proxy is niet nodig: var csw_client = new CSWClient("http://my-host/excat/csw"); csw_client.useProxy(false);
Voorbeelden van de eXcat Javascript CSW client staan in figuren 10, 11 en 12.
Fig. 10 Zoekresultaat Javascript CSW client
27
NLR-CR-2008-809
Fig. 11 Metadata presentatie in Javascript CSW client
28
NLR-CR-2008-809
Fig. 12 eXcat CSW client in GDSC site
6 Geavanceerd gebruik van eXcat In de volgende secties wordt beschreven hoe eXcat geconfigureerd kan worden wanneer de standaard instellingen niet voldoen. Deze aanpassingen zijn voorbehouden aan de beheerder van de eXcat installatie en vereisen enige achtergrondkennis van het CSW protocol. 6.1
Aangepaste configuratie van eXcat
De standaard configuratie van eXcat kan worden gewijzigd door aanpassingen in een aantal configuratie bestanden. Deze bestanden staan in de eXcat webapplicatie in de WEB-INF/conf folder: allow.xml, csw.properties, csw-hosts.xml, harvest.properties.
29
NLR-CR-2008-809
6.1.1 allow.xml Dit XML bestand regelt welke hosts via de eXcat client toegang hebben tot de Harvest procedure. Het bestand bevat de IP-adressen van de machines die een Harvest proces mogen opstarten. Ook de CSW server gebruikt deze informatie wanneer een Harvest request naar de CSW server wordt toegezonden. Machines die niet in de lijst voorkomen krijgen de in de hoofdpagina van de CSW client de opties Harvest en CQL Test niet te zien. Ook worden Harvest requests vanaf die machines niet gehonoreerd door de CSW server. Een voorbeeld van deze file staat hieronder:
6.1.2 csw.properties Een voorbeeld van het bestand csw.properties staat hierna weergegeven. De belangrijkste parameters die een beheerder mogelijk wil aanpassen zijn: csw.xmldb.uri: de URI van de eXist database; dit kan in principe op een andere machine zijn dan waar de eXcat servlet is geïnstalleerd. csw.capabilities.file: de naam van het capabilities document indien niet het standaardbestand wordt gebruikt. csw.describerecord.file: de naam van het describerecord document indien niet het standaardbestand wordt gebruikt. csw.xmldb.admin: de gebruikersnaam waarmee men toegang heeft tot de eXist database. csw.xmldb.admin.password: het wachtwoord waarmee men toegang heeft tot de eXist database. csw.harvest.base.uri: dit is de base uri waarvandaan de CSW server de XML bestanden laadt tijdens het harvest proces (indien niet een absolute uri is opgegeven in de source parameter). csw.xquery.collection.schema: dit is een belangrijke parameter. Hoewel in de database elk type XML document kan worden opgeslagen, kan via het CSW protocol slechts op een bepaald type document tegelijk worden gezocht. Dit houdt onder meer verband met de unieke mapping van de zogenaamde queryables naar de overeenkomstige fragmenten in het XML document. Hoewel het XML schema voor de ISO19115 metadata door de ISO19139 standaard is vastgelegd, komen in praktijk ook andere metadata schemas voor (bijvoorbeeld het door ESRI bedachte schema voor ISO19115 of het Dublin Core metadata schema). Door de parameter csw.xquery.collection.schema wordt het gebruikte schema vastgesteld. De waarde van deze
30
NLR-CR-2008-809
parameter wordt vervolgens in de mapping definitie gebruikt. Dus als csw.xquery.collection.schema = iso19139 dan wordt de mapping gedefinieerd door de parameters csw.xquery.iso19139.xxx (waar xxx=subject|title|abstract|...). In principe heeft de beheerder hier ook de mogelijkheid om zelf een mapping te definiëren door een zelf gekozen parameter te mappen op een XML fragment. # National Aersospace Laboratory, NLR # Rob van Swol ([email protected]) # September 2007 # @(#)csw.properties # # xmldb database parameters # user, password may be left blank or set to guest/guest csw.xmldb.driver
# optional file name of capabilities document (in WEB-INF/xml) # default = capabilities.xml #csw.capabilities.file = my-capabilities.xml # optional file name of describerecord document (in WEB-INF/xml) # default = describerecord.xml #csw.describerecord.file = my-describerecord.xml
# for harvesting administrator and password must be set! csw.xmldb.admin
= admin
csw.xmldb.admin.password
=
# harvest base uri (should end with a slash(/) !) # default = file:///pathtocontext/WEB-INF/harvest/ #csw.harvest.base.uri = file:///somepath/to/harvestdir/ # here we select the xml files in the database based on their format #csw.xquery.collection.schema = iso19115 csw.xquery.collection.schema = iso19139 # ESRI ISO 19115 csw.xquery.iso19115.collection = //Metadata
31
NLR-CR-2008-809
# mapping paths are relative to collection csw.xquery.iso19115.mapping.subject
6.1.3 csw.hosts.xml Het configuratiebestand csw-hosts.xml wordt zowel door de eXcat client als door de Harvest module gebruikt. Het bestand bevat een lijst van CSW servers die vanuit de client ondervraagd kunnen worden. Een voorbeeld staat hieronder: localhosthttp://localhost:8080/excat/cswgroene omgevinghttp://www.groene-omgeving.nl/aimscsw/csw2.0eXcat@nlrhttp://geomatics.nlr.nl/excat/csweXcat@tnohttp://dinolks03.nitg.tno.nl/excat/cswmnp-CSW2.0http://mapserver.mnp.nl/aimscsw/csw2.0Title LIKE '%'Geonovumhttp://geonovum.nitg.tno.nl/geonetwork/srv/en/csw
33
NLR-CR-2008-809
Voor elke CSW server (binnen het xml element host) is een naam en een adres gespecificeerd via de xml elementen name en url. Het host-element kent de volgende attributen: Verplichte attributen: Id: een unieke identifier Optionele attributen: Harvest: "yes|no" (default=no => deze host niet harvesten) Method: "post|get" (default=post => http request method) Maxrecords: negatief|positief waarde (negatief betekent dat alle records worden ge-harvested) Keepfiles: "true|false" (default=false => de bestanden in de harvest folder worden niet bewaard nadat ze zijn opgeslagen in de database) Overwrite: "true|false" (default=false => bestanden die al in de database staan worden niet opgeslagen (op basis van fileID)) support-hits: "true|false" (default=true => gebruik resultType=hits om alleen het aantal records op te vragen; deze waarde moet gelijk aan false zijn bij een ESRI server omdat deze de parameter numberOfMatchingRecords niet in het antwoord teruggeeft.) Optioneel kan ook het element constraint worden toegevoegd waarmee een constraint (in cql_text formaat) kan worden opgegeven bij het harvest-en van records. Daarbij kan ook het volgende optionele attribuut gebruikt worden: language: "FILTER|CQL_TEXT" (default=FILTER => constraint language) 6.1.4 harvest.properties Het bestand harvest.properties kent slecht twee parameters. Met harvest.base.path kan het pad waaronder (tijdelijk) de opgehaalde bestanden worden opgeslagen aangepast worden en met harvest.csw.host wordt het adres van de CSW server opgegeven. # @(#)harvest.properties # file path where metadata records are stored # default = /WEB-INF/harvest/ # harvest.base.path = /some/path/to/harvest/directory # csw host where harvested records are stored harvest.csw.host = http://localhost:8080/excat/csw
34
NLR-CR-2008-809
6.2
Een tweede eXcat instantiatie
In de vorige sectie is aangegeven dat de eXist database geen beperkingen kent ten aanzien van het door elkaar gebruiken van verschillende XML schema’s maar data de eXcat software deze beperking wel kent. Er kan maar op een type metadata tegelijk gezocht worden. Wel kan men twee verschillende instantiaties van eXcat tegelijk ontvouwen die allebei gebruik van dezelfde database maken. Daartoe moeten de volgende stappen worden uitgevoerd (waarbij we de tweede instantiatie atlas noemen in plaats van csw): 1. Een servlet definiëren en initialiseren via de configuratie file WEB-INF/web.xml. Dit servlet wordt aangeroepen via http://localhost:8080/excat/atlas. <servlet> <servlet-name> AtlasServlet <servlet-class> nl.nlr.geomatics.csw.CSWServlet <param-name>csw.conf <param-value>/WEB-INF/conf/atlas.properties <servlet-mapping> <servlet-name>AtlasServlet /atlas
2. Een configuratiebestand aanmaken (bijv. atlas.properties) waar ondermeer de mapping van de metadata staat gedefinieerd en een aangepaste referentie naar het capabilities document is gemaakt. # @(#)csw.properties # # # xmldb database parameters # user, password may be left blank or set to guest/guest csw.xmldb.driver
# optional file name of capabilities document (in WEB-INF/xml) # default = capabilities.xml csw.capabilities.file = atlas-capabilities.xml # optional file name of describerecord document (in WEB-INF/xml) # default = describerecord.xml # for harvesting administrator and password must be set! csw.xmldb.admin
= admin
csw.xmldb.admin.password
=
# harvest base uri (should end with a slash(/) !) # default = file:///pathtocontext/WEB-INF/harvest/ #csw.harvest.base.uri = file:///somepath/to/harvestdir/ # harvest base uri (should end with a slash(/) !) # default = file:///pathtocontext/WEB-INF/harvest/ #csw.harvest.base.uri = file:///somepath/to/harvestdir/ # here we select the xml files in the database based on their format csw.xquery.collection.schema = dublin-core # DC csw.xquery.dublin-core.collection = //simpledc # mapping paths are relative to collection csw.xquery.dublin-core.mapping.subject
= /dc:subject
csw.xquery.dublin-core.mapping.title
= /dc:title
csw.xquery.dublin-core.mapping.abstract
= /dct:abstract
csw.xquery.dublin-core.mapping.anytext
= /*
csw.xquery.dublin-core.mapping.format
= /dc:format
csw.xquery.dublin-core.mapping.identifier
= /dc:identifier
csw.xquery.dublin-core.mapping.modified
= /dct:modified
csw.xquery.dublin-core.mapping.type
= /dc:type
csw.xquery.dublin-core.mapping.boundingbox
= /ows:BoundingBox
3. Aangepast capabilities document aanmaken en als atlas-capabilities.xml in WEB-INF/xml plaatsen. 4. Atlas host toevoegen aan csw-hosts.xml om server zichtbaar te maken in CSW client. localhosthttp://localhost:8080/excat/atlas
36
NLR-CR-2008-809
6.3
Backup maken en inlezen
De eXist client biedt ook de mogelijkheid om een backup van de database te maken. Wanneer vanuit de WEB-INF/bin folder de client wordt opgestart dan kunnen de menuknoppen 7 en 8 (zie Fig. 6) gebruikt worden om een backup te maken en een bestaande backup in te lezen. Bij het aanmaken van de backup wordt automatisch een gecomprimeerd (zip) bestand aangemaakt onder de naam eXist-backup.zip. De lokatie (folder) kan gekozen worden. Voor het inlezen van een dergelijke backup moet eerst het bestand ge-unzipped worden. Dit levert een folder db op. Het bestand db/__contents__.xml kan nu worden ingelezen en de gehele structuur onder de folder db wordt automatisch hersteld in de database. 6.4
Gebruik van OpenLayers viewer
Wanneer de metadata referenties bevatten naar lagen die via een WMS zichtbaar kunnen worden gemaakt dan kan vanuit de metadata presentatie in de CSW client direct doorgelinked worden naar de bijgeleverde OpenLayers viewer. Voorwaarde is dat onder het XML metadata element MD_DigitalTransferOptions de URL, het protocol en de naam (ISO 397, 398, 400) overeenkomstig het Nederlandse metadata profiel zijn opgegeven. Expert gebruikers kunnen in het XSL stylesheet WEB-INF/xsl/metadata-iso19139.xsl eventueel aanpassingen maken om met een andere viewer te kunnen werken. De OpenLayers viewer wordt geïnstalleerd als webapplicatie door het bestand viewer.war in de folder webapps van Tomcat te plaatsen.
Fig. 13 OpenLayers viewer voorbeeld
37
NLR-CR-2008-809
Referenties [1]
OpenGIS Catalogue Service Specification, version 2.0.2, OGC 07-006r1, Open Geospatial Consortium Inc., 2007-02-23
[2]
OpenGIS Catalogue Service Specification 2.0.2 – ISO Metadata Application Profile, OGC 07-045, Open Geospatial Consortium Inc., 2007-07-19
[3]
eXist, Open Source Native XML Database, http://exist.sourceforge.net
[4]
Geotools, The Open Source Java GIS Toolkit, http://geotools.codehous.org
[5]
XML Path Language (XPath), http://www.w3.org/TR/xpath
[6]
XQuery 1.0: An XML Query Language, http://www.w3.org/TR/xquery
[7]
OpenLayers, Free Maps for the Web, http://www.openlayers.org
[8]
Nederlands profiel op ISO 19115 voor geografie, versie 1.2, Geonovum, december 2008