SOAP Web Services oder REST Web Services? So erfolgt die Integration von Services in Oracle ADF

  • Erstellt von Jürgen Menge
  • Development, Java

Web Services als Datenquellen gewinnen immer mehr an Popularität. Vorteilhaft ist die Kapselung der Data Source, wenn Entwicklern der direkte Zugriff auf die Datenquellen verwehrt bleiben soll oder wenn dieser über verschiedene Kanäle (Web, SOA, Mobile) gleichartig erfolgen soll. Das Framework Oracle ADF (Application Development Framework) bietet mehrere Möglichkeiten, Web Services in eigene Applikationen zu integrieren. Was dabei zu beachten ist, zeigt DOAG Online.

Web Services als Datenquellen gewinnen immer mehr an Popularität. Vorteilhaft ist die Kapselung der Data Source, wenn Entwicklern der direkte Zugriff auf die Datenquellen verwehrt bleiben soll oder wenn dieser über verschiedene Kanäle (Web, SOA, Mobile) gleichartig erfolgen soll. Das Framework Oracle ADF  (Application Development Framework) bietet mehrere Möglichkeiten, Web Services in eigene Applikationen zu integrieren. Was dabei zu beachten ist, zeigt DOAG Online. 

SOAP Web Services

SOAP (Simple Object Access Protocol) ist ein standardisiertes Protokoll, das den Austausch von Nachrichten (Request-Response) im XML-Format zwischen Applikationen beschreibt. JAX-WS ist ab JavaEE 5 der Standard für die Implementierung von SOAP Web Services. Für die Integration von SOAP Web Services gibt es in ADF zwei mögliche Vorgehensweisen:

Der Web Service Data Control Wizard im Oracle JDeveloper

Der Web Service Data Control Wizard im Oracle JDeveloper ermöglicht die direkte Generierung eines Data Controls auf Basis der WSDL des SOAP-Service.

Diese Vorgehensweise ist einfach und schnell umsetzbar. Für komplexe Datentypen im Request oder Response werden entsprechende XML-Strukturen vom JDeveloper generiert. Allerdings ist dies auch mit Nachteilen hinsichtlich der Flexibilität und Anpassbarkeit verbunden. Deswegen kann es nur für begrenzte Einsatzfälle wie einfache Implementierungen, Prototypen etc. empfohlen werden.

Der Web Service Proxy Wizard im Oracle JDeveloper 

Der Web Service Proxy Wizard im Oracle JDeveloper generiert auf Basis der WSDL einen Java-Client, der mit dem SOAP-Service kommuniziert. Bei dieser Vorgehensweise ist eine wesentlich größere Flexibilität möglich. Allerdings sollten die Anpassungen am Java-Client nicht direkt in den generierten Artefakten vorgenommen werden, da diese bei einer erneuten Generierung verloren gehen würden. 

Der empfohlene Weg ist hier das Schreiben einer Java Bean (Java Bean Wrapper), für die dann anschließend ein JavaBean Data Control generiert werden kann. Zusätzlich kann in der Java Bean ein eigenes Caching implementiert werden, um wiederholte Zugriffe über das Netz auf den Web Service zu vermeiden. Als alternative Option steht auch die Möglichkeit zur Verfügung, auf Basis des Java Bean Wrapper programmatisch ADF Business Components, d.h. Programmatic Entity und View Objects zu erstellen. Für ein solches Vorgehen spricht:

• die Nutzung der umfangreichen funktionalen Möglichkeiten von ADFbc (z.B. bei der Validierung)

• die Vereinheitlichung der Schnittstelle zum Business Service, wenn ADFbc als Technologie standardmäßig eingesetzt wird.

Hinweis

Die Nutzung des Web Services Proxy Clients steht für ADF Mobile-Anwendungen gegenwärtig nicht zur Verfügung, da ADF Mobile eine JVM auf Basis der JavaME (CDC) verwendet.

REST Web Services

REST (Representational State Transfer) beschreibt ein Architekturprinzip, mit dem mittels der Standard-HTTP-Methoden GET, POST, PUT und DELETE die Repräsentation des aktuellen Zustands (State) eines Objektes übertragen wird. JAX-RS ist ab JavaEE 6 der Standard für REST Web Services und Jersey die Referenz-Implementierung dieses Standards. REST Web Services sind per Definition stateless. Nachrichten werden häufig im kompakten JSON-Format ausgetauscht. Auch hier stehen wieder zwei alternative Wege zur Verfügung, um REST Web Services aus ADF-Applikationen aufzurufen.

URL Data Control Wizard

Da REST Web Services über URLs angesprochen werden, kann der URL Data Control Wizard eingesetzt werden, um auf Basis der WADL (Web Application Description Language) ein Data Control für den Web Service zu generieren. Dieser Weg ist einfach umsetzbar.

REST Client 

Ähnlich wie bei SOAP Web Services wird zunächst ein REST Client generiert, der mit dem Web Service kommuniziert. Auch hier wird empfohlen, die notwendigen Anpassungen in einer zusätzlichen Wrapper-Schicht (Java Bean Wrapper) vorzunehmen und für diese entweder ein Data Control oder programmtische View Objects für ADFbc zu erzeugen.

Die Vorteile von Web Services als Datenquellen

 

  • kein direkter Zugriff des Entwicklers auf die Datenquellen
  • Schnittstelle des Service enthält nur die erlaubten Zugriffe und Methoden
  • gleichartiger Zugriff über verschiedene Kanäle (Web, SOA, Mobile)
  • Strukturiertheit und Übersichtlichkeit (Service Registry)