ArcGIS als WPS Server Aktueller Stand der Umsetzung Stefan Haberer (AHK)
Ablauf Aufbau der RIPS Dienste Architektur, Integration WPS WPS-konforme XML-Verarbeitung WPS Schnittstelle WPS Fehlerbehandlung und Testmodul Neben der Frage der Architektur bzw. des Klassenaufbaus war eine zentrale Frage, wie die WPS-konforme XML-Dokumente erzeugt werden können. DOM-Parsing: Fehleranfällig da beim DOM-Ansatz Elemente und Attribute beliebig erzeugt und platziert werden können. Das kann zu invaliden XML-Dokumenten führen. Bei Verwendung der Klassenbibliothek hingegen kann nur valides XML erzeugt werden. Die Vorgehensweise über Objekte ist wesentlich intuitiver als mit DOM. Folie 2, 30.09.2010
XML-Webservice (SOAP/WSDL) RIPS Webdienste GISterm, ArcGIS… HTTP/XML WPS XML-Webservice (SOAP/WSDL) Datenprüfung, Aufbereitung Input/Output Fachlogik Polyline Z XML Webservices-Schnittstelle: W3C Standard der beschreibt, wie Softwaresysteme untereinander kommunizieren Problem: SOAP/WSDL ist ein allgemeiner Standard, ohne Geobezug. Er definiert nicht, wie bspw. Geoobjekte übertragen werden sollen oder wie Prozessergebnisse im Client dargestellt werden sollen. Verpackung der WSDL/SOAP-Schnittstelle um sie WPS fähig zu machen ArcGIS Server Geoprocessing DGM AWGN Zentrale GDB Folie 3, 30.09.2010
XML Data Binding Problem: Wie erzeugt man WPS-konforme XML-Dokumente? Document Object Model (DOM) - Parsing + wird von allen Sprachen unterstützt - genaue Kenntnisse des XSD-Schemas notwendig - hoher Codierungsaufwand - fehleranfällig 2) XML Data Binding Erzeugung einer Klassenbibliothek aus dem Schema + automatische, WPS-konforme XML-Serialisierung der Objekte + deutlich weniger Code notwendig + intuitive Erstellung der XML-Dateien - (kostenpflichtige) Zusatzsoftware notwendig Tools: xsd.exe, XsdObjectGen (Microsoft), Liquid Technologies, XMLSpy, JAXB (Java) Neben der Frage der Architektur bzw. des Klassenaufbaus war eine zentrale Frage, wie die WPS-konforme XML-Dokumente erzeugt werden können. DOM-Parsing: Fehleranfällig da beim DOM-Ansatz Elemente und Attribute beliebig erzeugt und platziert werden können. Das kann zu invaliden XML-Dokumenten führen. Bei Verwendung der Klassenbibliothek hingegen kann nur valides XML erzeugt werden. Die Vorgehensweise über Objekte ist wesentlich intuitiver als mit DOM. Folie 4, 30.09.2010
WPS Schnittstelle - Aufbau GET Request GetCapabilities WPS Web Application GetCapabilities_Response.xml DescribeProcess DescribeProcess_Response.xml Client RequestManager http Request/ Response POST Request Authentifzierung, Fehlerbehandlung Execute WPSProcess SOAP/WSDL- Schnittstelle der RIPS Webservices ProcessManager Folie 5, 30.09.2010
WPS Schnittstelle - GetCapabilities Client HTTP GET Request WPS Web App RequestManager GetCapabilities HTTP Response Folie 6, 30.09.2010
WPS Schnittstelle - DescribeProcess Client HTTP GET Request WPS Web App RequestManager DescribeProcess HTTP Response Folie 7, 30.09.2010
WPS Schnittstelle - Execute Client HTTP POST Request WPS Web App RequestManager Execute HTTP Response WPSProcess ProcessManager SOAP/WSDL- Schnittstelle der RIPS Webservices Folie 8, 30.09.2010
WPS Fehlerbehandlung WPS definiert Standard-Fehlertypen, die in der Implementierung berücksichtigt werden müssen: z.B. MissingParameterValue, ServerBusy, OperationNotSupported… Definition weiterer Fehlertypen möglich z.B. ReadExecutePostFailed, DescribeProcessException,… WPS-Exception besitzt drei Eigenschaften ExceptionCode, ExceptionText, Locator Bei Auftreten eines Fehlers wird ein ExceptionReport geliefert Folie 9, 30.09.2010
WPS Server Test Modul WPS Spezifikation definiert abstrakte Testfälle Diese Testfälle müssen für Client- und Server-Implementierungen umgesetzt werden, um die Interoperabilität zwischen WPS-Komponenten zu gewährleisten Beispiele: Funktioniert HTTP-Kommunikation? Wird bei Fehler ein ExceptionReport geliefert? Funktioniert der GetCapabilities- Aufruf? … Folie 10, 30.09.2010
Vielen Dank! Folie 11, 30.09.2010