Oracle Fusion Middleware Blog

Deutsche Informationen rund um Oracle Fusion Middleware

Nativer, asynchroner BPEL Prozeßaufruf vom Oracle Service Bus (OSB)

leave a comment »

Der Oracle Service Bus (OSB)  kann BPEL Prozesse nicht nur über SOAP sondern auch  nativ durch Verwendung von RMI aufrufen, hier also mittels den Oracle Application Server Boardmitteln „opmn“ oder „ormi“.

Um diese Integration zu erreichen,  sollte folgende, aktuelle  SW eingesetzt werden:

  • Oracle Service Bus 10gR3 (10.3.0)
  • Oracle SOA Suite 10.1.3.4 MLR7 oder höher

Des Weiteren müssen im OSB noch aktuelle JAR Files aus der SOA Suite ausgetauscht und ein Umgebungsparameter geändert werden, um folgenden  Fehler zu vermeiden:

  • com.evermind.server.rmi.RMIConnectionException: Disconnected: javax.xml.namespace.QName; local class incompatible: stream classdesc serialVersionUID

Unten genannte JAR-Files sollten im OSB Installationsverzeichnis in der Datei /osb_10.3/lib/transports/bpel10gtransport.ear aus der SOA Suite Installation ersetzt werden:

  • aus $ORACLE_HOME/bpel/lib/orabpel.jar
  • aus $ORACLE_HOME/bpel/lib/orabpel-common.jar
  • aus $ORACLE_HOME/bpel/lib/xmlparserv2.xml
  • aus $ORACLE_HOME/j2ee/home/oc4jclient.jar

Zusätzlich muss im OSB Installationsverzeichnis unter /user_projects/domains/osb_domain/bin in der  Datei setDomainEnv.sh folgende Zeile ersetzt werden:

  • JAVA_PROPERTIES=“-Dplatform.home=${WL_HOME} -Dwls.home=${WLS_HOME} -Dweblogic.home=${WLS_HOME} „
  • durch
  • JAVA_PROPERTIES=“-Dplatform.home=${WL_HOME} -Dwls.home=${WLS_HOME} -Dweblogic.home=${WLS_HOME} -Dcom.sun.xml.namespace.QName.useCompatibleSerialVersionUID=1.0″

Nun kommen wir zur eigentlichen Konfiguration des Oracle Service Bus, um nachfolgende Abbildung zu realisieren.

OSB BPEL Use Case

Vorausgesetzt wird, dass ein asynchroner BPEL Prozeß schon existiert. In der OSB Entwicklungsumgebung „Workshop for WebLogic 10gR3“ sollte eine Verbindung zum OSB Server, also zum WLS, aufgebaut werden. Durch betätigen der rechten Maustaste im Tabwriter „Server“ wird eine Verbindung erzeugt.

OSB Server

Als nächstes wird ein „Oracle Service Bus Configuration Project“ angelegt, siehe nachfolgende Abbildung. In diesem OSB Configuration Project wird ein OSB Project erzeugt mit 4 Folderinhalten:  proxy services, business services, WSDLs und credential (OSB Configuration Project markieren und über rechte Maustatste OSB Project und anschließend 4 mal im OSB Project Folder auswählen).

OSB Configuration Project

Für die Kommunikation zwischen OSB und dem BPEL Prozeß wird die WSDL des BPEL Prozesses in den Folder WSDLs importiert. Dazu den Folder WSDL markieren, rechte Maustaste drücken und über Import, Oracle Service Bus – Resources from URL,  die entsprechende BPEL WSDL URL angeben.

WSDL

Nun werden im Folder „business services“ zwei Business Services angelegt. Zum Einen ein Service für die Kommunikation zum BPEL Prozeß, hier BPELAsync.biz genannt und zum Anderen ein Business Service für die Kommunikation mit der Queue, der den BPELCallback beinhaltet, als BPELAsyncCallback.biz bezeichnet.

Business Services

BPEL Async WSDLBPEL Async Protokollauswahl

Die Konfiguration für den  TabWriter „BPEL 10g Transport“  (Art des Services, Callback Adresse, Credentialinformationen) wird später vorgenommen.

Der zweite Business Service BPELAsyncCallback wird nun konfiguriert. Das Anlegen erfolgt wie beim ersten Business Service. In diesem Business Service muss nun der Callback Port vom BPEL-Prozess aufgenommen und der weitere Transport zur Queue konfiguriert werden. Die Konfiguration der Queue und der ConnectionFactory einschließlich JMS Server wurde zuvor im WLS vorgenommen und wird hier nicht näher beschrieben.

BPEL Async Callback WSDL

BPEL Async Callback Protokollauswahl

Im TabWriter „JMS Transport“ in obiger Abbildung muss noch der Destination- und Message Typ angegeben werden: Queue und Text.

Jetzt können für die beiden Business Services die zugehörigen Proxy Services im Folder proxy_services erzeugt werden, die das Weiterleiten zum Business Service bewerkstelligen. Hierzu wird der jeweilige Business Service markiert und mit der rechten Maustaste wird unter Oracle Service Bus der Proxy Service mittels „Generate Proxy Service“ erstellt (ohne Abbildung). Anschließend werden weitere Transportkonfigurationen vorgenommen.

Proxy Service BPEL Async_proxy

Für den obigen Proxy Service BPELAsync_proxy muss keine weitere Transportkonfiguration vorgenommen werden. Allerdings für BPELAsyncCallback_proxy. Hier muss das Transportprotokoll auf sb gesetzt werden, damit der OSB den BPELCallback empfangen und zum Business Service weiterleiten kann.

Zweiter Proxy Service BPELAsyncCallback_proxy.proxy

Damit die Kommunikation zwischen zwischen OSB und BPEL Prozeß erfolgen kann, muss noch die Service Account Resource angegeben werden. Sie beinhaltet Adminusername und Password der SOA Suite. Hierzu den Folder credential markieren und mit der rechten Maustaste unter New den Eintrag „Service Account“ auswählen.

Service Account

Nun müssen wir noch abschließend, wie ganz oben erwähnt, im Business Service BPELAsync die BPEL10gTransport-Informationen hinterlegen.

BPEL Async BPEL 10g Transport

Zum Testen des Projektes wird das Projekt zum OSB hinzugefügt. Hierzu unter Servers das Projekt hinzufügen.

WLS/OSB ProjektNun den Proxy Service BPELAsync_proxy.proxy im Folder proxy_serves markieren und mit der rechten Maustastenfunktionalität „Run AS, Run on Server“ den Testclient mit entsprechende Eintraegen starten. Anschließend kann in der Queue im WLS nachvollzogen werden, dass die Eintraege, manipuliert durch den asynchronen BPEL Prozeß, angekommen sind.

<KM, 05.06.2009>

Oracle Service Bus Configuration Project

Written by fmtechteam

05/06/2009 um 11:53

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: