WSV
PEGELONLINE PEGELONLINE Webservices PEGELONLINE

PEGELONLINE Webservice-Archiv Dokumentation


Überblick

Über PEGELONLINE Webservice-Archiv können archivierte Zeitreihen aus PEGELONLINE bezogen werden. Dies umfasst sowohl bestimmte Metadaten der Zeitreihen (siehe Abfrage getZeitreihenInfo), als auch die Zeitreihendaten selbst (siehe Abfrage getZeitreihenData). Es werden Daten des bundesweiten gewässerkundlichen Messstellennetzes in einem Zeitraum von mehreren Jahrzehnten zur Verfügung gestellt. Die Webserviceabfragen können grundsätzlich nur über das SSL-Übertragungsprotokoll angesprochen werden (siehe SSL-Abschnitt). Weiterhin können optional Authentifizierungsangaben bei jedem Request übermittelt werden, um weitere Zeitreihen freizugeben. Die Abfrage getZeitreihenData kann nur mit Authentifizierung verwendet werden (siehe Authentifizierung und Autorisierung). Webservice-Clients müssen daher zwingend mit SSL auf PEGELONLINE Webservice-Archiv zugreifen und optional Authentifizierungsangaben übermitteln. Hinweise zur Konfiguration finden sich in den entsprechenden Abschnitten.

Der SOAP-basierte Webservice ist über die URL

https://www.pegelonline.wsv.de/archiv/webservices/PegelonlineWebserviceArchiv

im Internet verfügbar.

Der namespace von PEGELONLINE Webservice-Archiv ist
https://pegelonline.wsv.de/webservices/archiv/version1_0/2007-05-14.

Kommunikationsprotokoll ist SOAP 1.1 RPC über HTTP POST; Übertragung der Datenstrukturen findet als "wrapped/literal" statt.

Implementation mit Jakarta Tomcat 4.1.30 (Servlet Container) und Apache Axis 1.4 (SOAP Engine).

Die Interoperabilität zu verschiedenen Platformen ist gemäß den Standards WSI Basic Profile 1.1 und WSI Simple SOAP Binding Profile 1.0 der Web Services Interoperability Organization gewährleistet. Eingesetzt werden dazu die Test-Tools der WSI.

Verifizierte Kompatibilität zu folgenden Webservice-Client-Frameworks:
APIs für PEGELONLINE Webservice-Archiv können basierend auf Java 1.5 und JWSDP 2.0 oder Apache Axis 1.4 zur Verfügung gestellt werden.

Zeitpunkte werden innerhalb der SOAP-Message gemäß der W3C-XMLSchema-Spezifikation kodiert, immer als UTC- bzw. GMT-Zeit. Wird zum Beispiel im SOAP eine Uhrzeit von 16:00 Uhr kodiert, so handelt es sich dabei um 17:00 Uhr in der mitteleuropäischen Winterzeit, in der Sommerzeit wäre dies 18:00 Uhr.

Die Zeitpunkte aller Messreihen in Pegelonline Webservice-Archiv sowie die Datenverfuegbarkeit sollten als MEZ, also ohne Winterzeit im Client dargestellt werden. Ein UTC-Zeitpunkt wie 14.08.2003 12:00 entspricht dem 14.08.2003 14:00 in Sommerzeit in der MESZ-Zeitzone. Der Bezugszeitpunkt des gemessenen Wertes, wie er auch beim Datenimport sich darstellt, ist allerdings MEZ, also 14.08.2003 13:00. Hierbei handelt es sich nur um ein Problem der Darstellung des Zeitpunkts, der Zeitpunkt selbst, wie er im Webservice abgebildet ist, ist immer eindeutig. In Java z.B. sollte eine Datumsformatierung gewählt werden, mit einer Zeitzone ohne Daylight Saving Time (DST), also nicht 'CET' (auch hier existiert ein DST-Offset) oder die Default-Zone.
nach oben

Authentifizierung und Autorisierung

PEGELONLINE Webservice-Archiv kann optional mit Authentifizierungsinformationen in Form von Loginname und Passwort verwendet werden. Ohne Authentifizierung können nur Metadaten zur Veröffentlichung freigegebener archivierter Zeitreihen über die Abfrage getZeitreihenInfo bezogen werden. Die Abfrage getZeitreihenData ist ohne Authentifizierung nicht verwendbar.

Loginname und Passwort können über das Kontaktformular bezogen werden. Es können Accounts mit speziell freigegebenen Zeitreihen eingerichtet werden. Weiterhin können über einen 'Proxyuser-Account' alle nur im Intranet freigegebenen Zeitreihen bezogen werden.

Die Übermittelung von Loginname und Passwort erfolgt über Http Basic Authentication. Dabei wird bei jeder Abfrage die Authentifizierungsinformationen mitgesendet. Der Webservice-Client muss entsprechend konfiguriert werden. Ein Client basierend auf Java JAX-RPC muss dazu im Webservice-Stub, welcher den Remotezugriff auf PEGELONLINE Webservice-Archiv durchführt folgende Properties setzen:

stub._setProperty(javax.xml.rpc.Stub.USERNAME_PROPERTY, "meinLoginname");
		stub._setProperty(javax.xml.rpc.Stub.PASSWORD_PROPERTY, "meinPasswort");
		

nach oben

SSL

PEGELONLINE Webservice-Archiv ist nur über das sichere Übertragungsprotokoll SSL erreichbar. Dadurch wird sichergestellt, dass mit übertragende Authentifizierungsinformationen verschlüsselt werden.

Folgende SSL-Zertifikate der Bundesanstalt für Wasserbau müssen hierbei dem Webservice-Client bekannt gemacht werden:
In einer Java-Umgebung muss dazu eine keystore-Datei erzeugt werden oder eine bereits existierende ergänzt werden und die obigen Zertifikate diesem hinzugefügt werden. Dies ist nur dann notwendig, wenn die bereits in den Java Client-Schnittstellen vorhandene keystore-Datei nicht verwendet werden kann (siehe dazu den User's Guide). Zum manuellen Hinzufügen der SSL-Zertifikate siehe die folgenden externe Links:

nach oben

Webservice-Clients für Apache Axis 1.4 und JWSDP 2.0


nach oben

Abfragen

Abfrage getZeitreihenInfo

Beschreibung:
Über diese Abfrage lassen sich Meta-Informationen über die archivierten Zeitreihen beziehen. Sie kann auch als anonymer Webservice-Client verwendet werden (siehe Authentifizierung und Autorisierung). Es wird ein Array von ZeitreiheInfo-Instanzen generiert. Die zurückgelieferte Teilmenge richtet sich nach den übergebenen Parametern und dem Autorisierungsstatus des Webservice-Clients.

Wird für einen Request-Parameter nil übergeben, so wird nach diesem Parameter nicht gefiltert. Die Antwortzeit kann daher unter Umständen durch das zu übertragende Datenvolumen sehr hoch sein (ca. bis zu einer halben Minute).

Die Request-Parameter kmVon und kmBis werden nur bei angegebenem Gewässernamen ausgewertet.

Request-Parameter:
NameBeschreibungDatentypnil
gewaesserNameKurzbezeichnung des Gewässers (siehe Gewaesser)xsd:stringJa
kmVonBeschränkung der Zeitreihen auf einen bestimmten Abschnitt eines Gewässers. Analog zu nil kann auch der Wert -9999 angegeben werden. (siehe Messstelle)xsd:intJa
kmBisBeschränkung der Zeitreihen auf einen bestimmten Abschnitt eines Gewässers. Analog zu nil kann auch der Wert -9999 angegeben werden. (siehe Messstelle)xsd:intJa
messstellenNummerNummer der Messstelle (siehe Messstelle)xsd:stringJa
parameterNameKurzbezeichnung des Parameters (siehe Parameter)xsd:stringJa
zeitebeneIdEntsprechende ID der Zeitebene Analog zu nil kann auch der Wert -9999 angegeben werden.xsd:intJa

Response:
0 bis n Arrayelemente von ZeitreiheInfo-Instanzen. Sortiert nachfolgend nach Gewaessername, Flusskilometer, Messstellenname, Parametername und Zeitebene.

nach oben

Abfrage getZeitreihenData

Beschreibung:
Über diese Abfrage lassen sich Zeitreihendaten (z.B. Wasserstands- oder Abflussdaten) beziehen. Der Webservice-Client muss entsprechend autorisiert sein, um diese Abfrage erstens grundsätzlich verwenden zu können und zweitens die entsprechenden Freigaberechte für die angeforderte Zeitreihe besitzen (siehe Authentifizierung und Autorisierung).

Keiner der übergebenen Request-Parameter darf nil sein. Die Parameter messstellenNummer, parameterName und zeitebeneId spezifizieren die Zeitreihe eindeutig. Die Parameter start und ende grenzen den Zeitraum der Daten entsprechend ein.

Zeiträume können abhängig von der über den Request-Parameter zeitebeneId spezifizierten Zeitebene folgende maximale Längen haben. Wird ein größerer Zeitraum über die Request-Parameter start und ende angefordert, so wird diese Abfrage mit einem Fault zurückgewiesen:
Request-Parameter:
NameBeschreibungDatentypnil
messstellenNummerNummer der Messstelle (siehe Messstelle)xsd:stringNein
parameterNameKurzbezeichnung des Parameters (siehe Parameter)xsd:stringNein
zeitebeneIdID der Zeitebene (siehe Zeitebene)xsd:stringNein
startZeitraum-Anfangxsd:dateTime (Hinweis)Nein
endeZeitraum-Endexsd:dateTime (Hinweis)Nein

Response:
0 bis n Arrayelemente von ZeitreiheData-Instanzen. Die Elemente sind in erster Linie nach der ID des Aggregationstyps (In der Reihenfolge: Mittel-, Minimum-, Maximalwerte) und in zweiter Hinsicht nach dem Zeitpunkt des Wertes sortiert.

nach oben

Datentypen

Datentyp ZeitreiheInfo

Beschreibung:
Eine ZeitreiheInfo beinhaltet Metainformationen zu einer Zeitreihe. ZeitreiheInfo-Instanzen können über die Abfrage getZeitreihenInfo bezogen werden.

Members:

NameBeschreibungDatentyp
bestellbarZeitreihe bestellbar ?xsd:boolean
datenverfuegbarkeitsiehe Datenverfuegbarkeit. Nil wenn keine Daten verfügbar.tns:Datenverfuegbarkeit
ganglinieUrlHTTP-URL zur Darstellung einer Ganglinie für Zeitreihe. Nil wenn keine Daten verfügbar.xsd:string
gewaessersiehe Gewaessertns:Gewaesser
messstellesiehe Messstelletns:Messstelle
parametersiehe Parametertns:Parameter
pegelnullpunktsiehe Pegelnullpunkt. Nil wenn Messstelle keiner zugeordnet.tns:Pegelnullpunkt
zeitebenesiehe Zeitebenetns:Zeitebene

nach oben

Datentyp ZeitreiheData

Beschreibung:
Eine ZeitreiheData beinhaltet den Wert einer Zeitreihe zu einem bestimmten Zeitpunkt. ZeitreiheData-Instanzen können über die Abfrage getZeitreihenData bezogen werden.

Members:

NameBeschreibungDatentyp
aggregationstypIdsiehe Hinweisxsd:int
wertWert der Zeitreihe zu einem Zeitpunkttns:Datenverfuegbarkeit
zeitpunktZeitpunkt des Zeitreihenwertsxsd:dateTime

Folgende IDs für Aggregationstypen sind möglich:
nach oben

Datentyp Messstelle

Beschreibung:
Eine Messstelle beschreibt eine Messstelle/Pegel, der eine Zeitreihe zugeordnet ist.

Members:

NameBeschreibungDatentyp
lageAnGewaesserRelative Position der Messstelle am Gewässerverlauf in Kilometernxsd:double
nameLangLange Bezeichnung der Messstellexsd:string
nameSendKurze Bezeichnung der Messstellexsd:string
nummerNummer der Messstellexsd:string


nach oben

Datentyp Parameter

Beschreibung:
Ein Parameter beschreibt die Art der Daten einer Zeitreihe. Dabei kann es sich zum Beispiel um wasserstandsbezogene oder abflussbezogene Daten handeln.

Members:

NameBeschreibungDatentyp
nameLang Lange Bezeichnung des Parametersxsd:string
nameSendKurze Bezeichnung des Parametersxsd:string


nach oben

Datentyp Zeitebene

Beschreibung:
Eine Zeitebene beschreibt den zeitlichen Bezug der Daten einer Zeitreihe.

Hierbei kann es sich um folgendes handeln:

Members:

NameBeschreibungDatentyp
idID der Zeitebene (siehe oben)xsd:int
nameSendKurze Bezeichnung der Zeitebenexsd:string


nach oben

Datentyp Gewaesser

Beschreibung:
Ein Gewaesser beschreibt das Gewässer der Zeitreihe.

Members:

NameBeschreibungDatentyp
nameLangLange Bezeichnung des Gewässersxsd:string
nameSendKurze Bezeichnung des Gewässersxsd:string


nach oben

Datentyp Datenverfügbarkeit

Beschreibung:
Die Datenverfügbarkeit beschreibt den Zeitraum, in dem archivierte Daten in einer Zeitreihe existieren.

Members:

NameBeschreibungDatentyp
endeEnde des Zeitraumsxsd:dateTime
startAnfang des Zeitraumsxsd:dateTime


nach oben

Datentyp Pegelnullpunkt

Beschreibung:
Bei einem Pegelnullpunkt handelt es sich um die Höhe der Messstelle der Zeitreihe über Normal-Null. Daten sind relativ bezogen auf diese Höhenangabe.

Members:

NameBeschreibungDatentyp
hoeheHöhe des Pegelnullpunktes in Meternxsd:double


nach oben