X3-Webservices 

Vorbedingungen

Der XTEND-Server greift nur über Aufruf von X3-Webservices (Datenzugriff oder Verarbeitung Benutzeraktionen) auf das X3-Backoffice zu.

Der XTEND-Entwickler muss über gute Kenntnisse der X3-Webservices verfügen, um XTEND-Anwendungen realisieren zu können (Architektur, Verbindungspools, Veröffentlichung, Tests etc.).

Für die Programmierung des Webservice-Aufrufs über die Klassen stub/proxy hingegen sind keine Entwicklungskenntnisse notwendig.

Webservice-Server

Es muss für die Veröffentlichung der von den XTEND-Anwendungen verwendeten Unterprogramme und X3-Objekte mindestens ein Webservice-Server zur Verfügung stehen.

Dabei kann es sich z. B. um denselben X3WEB-Server handeln, auf dem der XTEND-Server liegt.

Der erste Schritt besteht darin sich zu versichern, dass dieser Server korrekt konfiguriert ist.

Server-Identifizierung

Der Webservice-Server ist durch einen Hostnamen und einen tcp-Port charakterisiert. Im weiteren Verlauf des vorliegenden Dokuments verwenden wir die Adresse Hostname:28880.

SOAP/HTTP

Für den Aufruf der X3-Webservices werden das Simple Object Access Protocol und das Hypertext Transfer Protocol verwendet.

Es muss auf den Webservice-Server zugegriffen werden können.

Es muss gewährleistet sein, dass die Adresse hostname:port vom XTEND-Server aus erreichbar ist.

Port steht dabei für den Port des Front-End-Webservers. Der Standardwert ist 28880.

Hierfür muss lediglich geprüft werden, ob es sich bei der Adresse http://hostname:28880/root/ um die Homepage des Verwaltungsservers nach der Erfassung des Standardpassworts (sage/sage) handelt.

Sollte sich die Seite nicht öffnen, sind folgende Schritte zu unternehmen:
  • Prüfung, ob die Apache- / Tomcat-Services gestartet wurden
  • Prüfung, ob der Befehl 'ping hostname' eine Antwort zurückgibt

Die X3-Lösungen / X3-Ordner müssen veröffentlicht sein

Sämtliche X3-Lösungen / X3-Ordner, auf die die XTEND-Anwendungen zugreifen, müssen auf dem X3WEB-Server veröffentlicht sein, auf dem der Webservice-Server liegt.

Dieser Vorgang wird vom Administrator bei der Konfigurierung der X3WEB-Serverkonfiguration über die X3-Konsole durchgeführt.

Über das Menü 'Home/Administration' muss die Liste der veröffentlichten Anwendungen zur Verfügung stehen

Die Verbindungspools müssen gestartet worden sein

Verbindungspool

Über den Webserver werden Drittanwendungen eine Reihe von X3-Verbindungen zur Verfügung gestellt (X3-Client vom Typ Webservice), die nach "Eingangsgruppen" oder nach "Pools" gruppiert sind.

Die Verbindungspools werden über die X3-Konsole erstellt und konfiguriert. Mit der Konsole kann unter anderem die Anzahl von Poolverbindungen parametriert werden.

Durch diese Anzahl ist die Anzahl von Abfragen (SOAP) festgelegt, die gleichzeitig von diesen Pools verarbeitet werden können. Wenn alle Verbindungen ausgelastet sind, werden die Abfragen in die Warteschlange gestellt.

Serverkonfiguration

Der Webservice-Server muss über mindestens einen Verbindungspool (Eingangsgruppe) pro Lösung / Ordner verfügen, in dem die Webservices der XTEND-Anwendungen veröffentlicht werden.

Die Verbindungspools müssen den Status 'gestartet' aufweisen und über mindestens eine freie Verbindung verfügen (<poolentry>).

Die Liste der Verbindungspools ist über die Funktion 'Webservice-Server/Verbindungspools' verfügbar.

Antwortzeit

Die Antwortzeit der XTEND-Anwendungen und damit die Performance der Webseite hängt stark von den Antwortzeiten der Webservice-Aufrufe ab. Wir empfehlen, regelmäßig folgende Kontrollen durchzuführen:

  • Verfügbarkeit der Verbindungen der Webservice-Pools
  • Korrekte Dimensionierung der Anzahl von Poolverbindungen (Webservice-Lizenzen)
  • Auslastung des X3-Server
  • Beachtung der Batchverarbeitungen

Veröffentlichung der Webservices

Die Webservices werden mithilfe der X3-Funktion
'Entwicklung>Verarbeitungsdictionary>Verarbeitungen>Webservices' veröffentlicht.

X3-Objekt-Webservices

Um einen Webservice zu veröffentlichen, muss lediglich ein Webservice-Datenblatt mit dem Namen der Veröffentlichung (Alias) und dem Objektcode (plus Transaktionscode) angelegt werden.

Nach der Veröffentlichung eines X3-Objekts kann auf sämtliche Objektaktionen (standardmäßig lesen, anlegen, speichern, löschen) und auf die Explorer-Liste zugegriffen werden.

Mit dem Aktionsbutton 'Löschen' kann die Veröffentlichung des Webservice zurückgenommen werden.

Webservice-Unterprogramm

Um ein Webservice-Unterprogramm zu erstellen, muss zunächst ein Datenblatt für das Unterprogramm angelegt werden, in dem die Parameter und Veröffentlichungsgruppen über folgende Funktion deklariert werden:
'Entwicklung>Verarbeitungsdictionary>Verarbeitungen>Unterprogramme'

Dieser Webservice muss anschließend veröffentlicht werden (Button Veröffentlichung). Weiterhin ist ihm für das Webservice-Objekt ein Alias zuzuweisen.

Veröffentlichungsgruppen

Mit den Veröffentlichungen kann eine logische Verbindung zwischen Parametern (derselben Einheit) hergestellt werden, um verschiedene Entitäten zu schaffen.

Jede Gruppe (oder Entität) kann als Datensatz in einer Tabelle oder Strukturtyp oder Record angesehen werden.

Die Gruppen werden in den XTEND-Parametern zum Mappen zwischen den Webservice-Parametern und den XTEND-Entitäten verwendet.

Unterprogramme

Beispiel für ein Unterprogramm, das sechs Parameter zurückgibt, die für eine Lieferadressliste (shipaddr, shipcity, shipzip) und eine Rechnungsadressliste (invaddr, invcity, invzip) stehen. Diese Parameter können in die beiden logischen Entitäten oder Gruppen SHIPADDR und IVADDR gruppiert werden.

Objekte

Die Namen der Veröffentlichungsgruppen werden von X3 generiert. Sie entsprechen den Codeblöcken der Masken.

Test der Webservices

Es wird stark empfohlen, die Webservice-Unterprogramme oder -X-Objekte mit der Funktion "Webservice-Test" des X3WEB-Servers zu testen, bevor sie in eine XTEND-Anwendung übernommen werden.

Webservices in EXTEND

XTEND findet die Webservices über eine eindeutige Id, welche für alle XTEND-Sites des X3-Ordners gilt.

Diese Id referenziert die Lokalisierungsdaten eines Webservice, der unter anderem die Adressen des Webservice-Servers (Hostname und Port) und den Alias der Poolverbindungen umfasst.

Funktion
'Entwicklung>Tools>Sonstige>Webservice-Pools'