Viamedici EPIM stellt eine Schnittstelle für externe Anwendungen zur Verfügung, die auf dem Web-Services-Framework Apache Axis2 basiert. Die Laufzeitumgebung für die Web-Services bildet der Web-Services-Daemon als Bestandteil einer verteilten Daemon-Architektur. Dadurch wird eine Unabhängigkeit vom Anwendungsserver von Viamedici EPIM erreicht.

Web-Services-Architektur, schematische Darstellung

Unsere Web-Services unterstützen die Kommunikation mit dem SOAP-Protokolls und REST-Aufrufe.

Der TCP-Port für unsere Web-Services ist der Port 5555. Über die Oberfläche des Viamedici Masterdaemons kann dem Web-Services-Daemon ein anderer Port zugewiesen werden. Der Standardparameter zum Einstellen des Ports lautet: -axis2port 5555.

Bei serverseitig auftretenden Exceptions werden SOAP-Faults zurückgegeben. Wenn ein Web-Service länger als 30 Minuten nicht benutzt wird, erfolgt eine automatische Abmeldung.

Axis2 generiert für jeden Rückgabetyp (return type) eine ID. Diese IDs sind dynamisch und Axis2-spezifisch und können von uns nicht beeinflusst werden. Deshalb führt das Parsen der Antworten unweigerlich zu Fehlern.

Der folgende XPath-Ausdruck führt zu Fehlern, sobald neue Rückgabetypen von den Web-Service-Entwicklern definiert werden, und das Axis-Framework sich die neuen Rückgabetypen holt und diese neu generiert:

xpath="//self::node()[name()='ax29:exportId']/."

Das Parsen sollte sich auf die Inhalte beschränken, die manipuliert und kontrolliert werden können, zum Beispiel der Teil-String exportId:

xpath="//self::node()[ends-with(name(),':exportId')]/."

In den Tabellen zu den einzelnen Web-Services-Operationen, zum Beispiel in der Tabelle für die login/loginEncrypted (Web-Service-Operationen), wird in einer Tabellenspalte die Verwendung der Parameter festgelegt: Erforderlich bedeutet, dass die Web-Service-Operation einen Parameter technisch benötigt und die Web-Service-Operation ohne den Parameterwert nicht durchgeführt werden kann. Optional bedeutet, dass die Web-Service-Operation den Parameter technisch nicht benötigt. Eine optionale Verwendung kann dennoch wichtig für Ihre Schnittstelle sein.