Montag, 29. April 2013

OBTM: BPEL-Prozess für Hello-Service erstellen

Die Java-Container und der einzelne Service werden bereits automatisch vom Oracle Business Transaction Monitoring erkannt. Hierfür reicht aber auch ein normales System-Monitoring aus. Um wirklich eine komplexere Business Transaction zu monitoren, muss diese für dieses Handson Tutorial erst einmal erstellt werden.


Hierzu wird wieder im JDeveloper eine neue Anwendung erstellt.


Der Typ ist 'SOA Application', der Name z.B. soaApplication, Next.


Das Projekt bekommt den Namen soaProject1, die Project Technology SOA ist bereits ausgewählt -> Next.


Hier lässt sich gleich ein Composite mit einem BPEL-Prozess anlegen, beenden mit 'Finish'.


Der Prozess wird auf synchron gesetzt und als SOAP-Service exposed.


Wenn der Assistent fertig ist, öffnet sich gleich das SOA Composite. Hier wird per Drag&Drop ein Web Service hinzugefügt.


Daraufhin öffnet sich der Dialog mit den Details zum Web Service. Er bekommt einen Namen, z.B. helloService und dieWSDL. Diese kann über den 'Find existing WSDLs' Button hinzugefügt werden, oder auch einfach per Copy&Paste eingefügt werden, was in diesem Beispiel gemacht wird.


Die WSDL-URL bekommt man in der Weblogic Console im linken Baum unter Deployments. Dann auf der rechten Seite zum HelloWorldService navigieren und draufklicken.


Die Details vom HelloWorldService aufklicken und die WSDL-URL kopieren, z.B. im Firefox mit Rechtsklick und 'Copy Link Location'


Die URL wird dann in das Feld im Dialog eingefügt. Beim Verlassen des Feldes zieht der JDeveloper die Informationen aus dem WDSL-File. Da diese WSDL ohnehin nur einen Port Type hat, ist dieser gleich richtig voreingestellt. Beenden mit OK.


Dann wird der BPEL-Prozess mit dem Web Service verbunden indem vom ausgehenden Pfeil am BPEL-Prozess eine Verbindung zum helloService gezogen wird.


Das Composite sieht im Ergebnis dann so aus: ein Web Service, der einen einen BPEL-Prozess aufruft, der wiederum einen Web Service aufruft.


Weiter geht es im BPEL-Prozess, der per Doppelklick im Composite geöffnet wird. Hier wird eine Invoke Aktivität aus der Palette rechts zwischen receiveInput und replyOutput auf ein dort erscheinendes grünes (+) gezogen.


Dann wird die Invoke-Aktivität mit dem helloService verbunden, indem mit dem Pfeil von Invoke1 eine Verbindung zum HelloService gezogen wird.


Der Dialog mit den Details zum Invoke öffnet sich automatisch. Hier wird jetzt eine eingabe-Variable über das grüne Plus (+) hinzugefügt. 


Die default-Werte können so übernommen werden, beenden mit OK.


Der Wert wird entsprechend übernommen. Dann auf den Reiter 'Output' klicken und entsprechend mit der Output Variable verfahren. Dann mit OK schliessen.


Als nächstes wird eine Assign-Aktivität benötigt, die per Drag&Drop aus der Component Palette rechts zwischen receiveInput und Invoke1 gezogen wird.


Das Ergebnis sieht dann so aus. Per Doppelklick wird die Assign-Aktivität geöffnet.


Hier wird die dahinterliegende XSLT-Transformation konfiguriert, indem von der InputVariable des Prozesses der client:input String auf den arg0 String der InputVarialble des Invoke für den Web Service gezogen wird.


Als Ergebnis werden im unteren Bereich Quelle und Ziel der Kopieroperation angezeigt. Beenden mit OK.


Analog dazu wird eine zweite Assign-Aktivität zwischen Invoke1 und replyOutput gezogen.


Jetzt werden noch die Rückgabewerte gemappt. Vom return String der OutputVariable des Invoke1 wird kopiert auf den client:result String der outputVariable vom Prozess.


Das Ergebnis sieht dann wie oben aus. Die InputVariable vom Prozess wird kopiert in die InputVariable vom Invoke. Der Web Service wird aufgerufen, hinterher wird die outputVariable vom Invoke wieder kopiert in den ReturnValue vom Prozess.
Per 'Save All' Button kann alles gesichert,  das SOA-Composite und der BPEL-Prozess können geschlossen werden.


Jetzt muss das Composite noch auf den Application Server deployed werden. Per Rechtsklick auf den Projektnamen kann Deploy|soaProject1... ausgewählt werden.


'Deploy to Application Server' und Next ...


'Overwrite any existing ...' auswählen und Next ...


Den Application Server auswählen und Next ...


Der SOA-Server muss ausgewählt sein und weiter mit Next ...


Zusammenfassung, beenden mit Finish.


Abwarten, bis im Log "---- Deplyoment finished. ----" erscheint.


Dann wechseln in den Enterprise Manager der SOA Suite (z.B. http://hostname:8001/em) und das SOA-Projekt lokalisieren. Dort auf den Test-Button klicken.


Freundlicherweise bietet der Enterprise Manager gleich einen Stress Test für den Service an, hier den Haken setzen. Die default-Werte sind sonst OK. Unten muss noch ein Eingabestring vorgegeben werden, dann per 'Test Web Service'-Button starten.


Warten bis der Stress Test fertig ist, dann mit Close schliessen.


Dann wechseln ins OBTM. Der BPEL-Prozess mit seinen 50 Durchläufen wurde hier bereits registriert.
Damit ist der Grundstein für die Geschäftstransaktion in diesem Tuturial gelegt. Im nächsten Kapitel wird noch ein weiterer Service hinzugefügt.

---> Proxy Service für BPEL-Prozess erstellen

Keine Kommentare:

Kommentar veröffentlichen

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.