Oracle Fusion Middleware Blog

Deutsche Informationen rund um Oracle Fusion Middleware

Generierung von REST Clients mit verschiedenen IDEs (JDeveloper, Eclipse, NetBeans)

leave a comment »

In der Welt mobiler Anwendungen erfolgt der Zugriff auf Daten und Funktionen im Backend zumeist über RESTful Services, die die Nachrichten im kompakten JSON-Format austauschen. Im Gegensatz zu SOAP-Services, bei denen sich die WSDL-Beschreibung als Standard durchgesetzt hat, gibt es für RESTful Services mit JSON noch keinen etablierten Standard. Erste Ansätze existieren mit WADL (Web Application Description Language) und RAML (RESTful API Modeling Language).
Wie können nun die verschiedenen IDEs im Oracle-Umfeld mit existierenden REST/JSON-Services umgehen und aus den zur Verfügung stehenden Informationen einen REST-Client generieren, der beispielsweise anschließend in einer mobilen Anwendung verwendet werden kann, um mit dem REST Service zu kommunizieren. Für die Entwicklung der mobilen Anwendungen soll das Oracle Mobile Application Framework (MAF) eingesetzt werden.

Oracle JDeveloper 12.1.3

Sofern der REST Service die Nachrichten im XML-Format austauscht und dafür ein XSD Schema existiert, kann der Web Service Data Control Wizard im JDeveloper verwendet werden, um ein Data Control für den Web Service zu generieren. Sollen die Daten dagegen im JSON-Format ausgetauscht werden, muss der Client unter Verwendung des REST Service Adapters manuell in Java programmiert werden. Anschließend kann aus dem Service Object ein POJO Data Control generiert werden. Dieses Vorgehen ist ausführlich in einem Tutorial auf OTN beschrieben.

Oracle Enterprise Pack for Eclipse 12.1.3.4 (OEPE)

Alternativ zum Oracle JDeveloper kann auch OEPE eingesetzt werden, um mobile Applikationen auf Basis des Oracle Mobile Application Frameworks (MAF) zu entwickeln. In OEPE gibt es einen REST Service Editor, der auch für REST-JSON Services die notwendigen Artefakte automatisch generiert, ohne dass es eine Beschreibung des RESTful Services gibt.
Dazu praktiziert der Wizard einen interessanten Ansatz:

  • Im ersten Schritt (Tab REST Client) wird zunächst der Service “erforscht”, indem der Service wiederholt unter Angabe der URL, von Header-Informationen und Query Parametern aufgerufen wird und die Ergebnisse angeschaut werden. In dieser Phase werden keine Ergebnisse gespeichert.
  • Hat man die Struktur verstanden, kann mit Hilfe der Funktion “Import the REST Client Information” eine erste Beschreibung des Service im XMI-Format (XML Model Interchange) erstellt werden. Diese wird im Tab REST API sicht- und editierbar. Alle Änderungen werden unmittelbar in der XMI-Beschreibung persistiert.
  • Im letzten Schritt “Artifact Generation” wird aus der XMI-Beschreibung des Service ein Java Client generiert.
    Aus dem Service Object kann anschließend wie im JDeveloper ein POJO Data Control erzeugt werden.
OEPE REST Service Editor

OEPE REST Service Editor

Dieses Vorgehen ist in zwei Blog Posts ausführlich beschrieben:
https://blogs.oracle.com/oepe/entry/introduction_to_rest_service_editor
https://blogs.oracle.com/oepe/entry/introduction_to_the_rest_service

NetBeans 8.0.2

Im Unterschied zu den zwei vorhergehenden IDEs können mit NetBeans keine mobilen Applikationen auf Basis von Oracle MAF erstellt werden. Trotzdem war es interessant, die Möglichkeiten von NetBeans zu erkunden.
Wurden die REST Services mit NetBeans z.B. als annotierte Java-Klassen erstellt, kann ein REST Service Client dafür generiert werden. NetBeans bietet nach der Installation eine Reihe populärer Services (von Amazon, Delicious, Flickr, Google, ..) an, die jeweils durch eine WADL-Datei beschrieben sind.

NetBeans - Services

NetBeans – Services

Hier können eigene Services (SOAP oder REST) hinzugefügt werden, zu denen eine WSDL- oder WADL-Datei angegeben werden muss. Ist eine WADL-Datei für den Service hinterlegt kann anschließend mit Hilfe des RESTful Java Client Wizard der client-seitige Code generiert werden.
Das Vorgehen ist in diesem Tutorial und in diesem Video beschrieben.
Fehlt eine WADL-Beschreibung des Service müsste man diese vorab erstellen. Dieses Wiki beschreibt einige mögliche Ansätze und Werkzeuge zur Generierung einer WADL-Datei.

<JM>

Written by fmtechteam

13/04/2015 at 15:00

Import von BAM 11g Data Objects in BAM 12c mit BAMCommand

leave a comment »

Mit der Utility BAMCommand werden in BAM 12c Metadaten, Daten und Projekt Artefakte exportiert, importiert, migriert oder gelöscht.

Mit BAMCommand werden auch Data Objects von BAM 11g nach BAM 12c migriert. Dabei werden die Strukturen und die Daten nach 12c migriert. Die Migration erfolgt in 2 Schritten. Als erstes wird die Struktur des Data Objects in BAM 12c importiert und im zweiten Schritt werden die 11g Daten importiert.

Vor dem Starten der Utility sollten (hier unter Windows) die folgenden Umgebungsvariablen gesetzt werden:
set ORACLE_HOME=D:\JDev12c\BPM1213QuickStart
set JAVA_HOME=D:\Javas\jdk760
set PATH=D:\JDev12c\BPM1213QuickStart\soa\bam\bin;%PATH%

Vorausgesetzt wird hier, dass in der Konfigurationsdatei BAMCommandConfig.xml die Parameter für Host, Port, Benutzernamen und Passwörter gesetzt worden sind ( siehe BAM 12c – BAMCommandConfig.xml ).

Einspielen der Struktur
Beim Einspielen eines BAM 11g DOs müssen die 3 folgenden Parameter mitgegeben werden, wobei der Parameter upgrade angibt, dass es sich um eine Migration von BAM 11g Data Objects handelt:
-cmd import
-file path2file\bam11gfile.xml
upgrade 1

Das vollständige Kommando, das in einer Zeile abgesetzt wird, lautet z.B.:
bamcommand -cmd import -file D:\Temp\Urlaubsantrag.xml -upgrade 1

Import der Daten
Beim Import der Daten wird nur der Parameter upgrade gegen den Parameter migrate ausgetauscht.
Das Kommando zum Import der Daten lautet:
bamcommand -cmd import -file D:\Temp\Urlaubsantrag.xml.xml -migrate 1

Konvertierungen beim Upgrade
Beim Upgrade eines BAM 11g Data Objects werden automatisch Änderungen an den Namen und Typen des Data Objects vorgenommen:
1. Die 11g Data Object ID wird konvertiert in den internen Namen des 12c Data Objects. Alle führenden Unterstriche werden entfernt.
2. Pfad und Name des 11g Data Objects werden kombiniert zum 12c Data Object Display Name.
3. Die 11g Column IDs werden konvertiert zu den 12c Column Internal Names. Alle führenden Unterstriche werden entfernt.
4. Die Werte in einer Column vom Typ “auto-incr-integer” werden in der Column BEAM_ID des 12c Data Objects gespeichert.
5. Die Werte in einer Column vom Typ “Timestamp” werden in der Column DATAOBJECT_CREATED des 12c Data Objects gespeichert.
6. Eine 11g Column vom Typ String wird in eine 12c Varchar Column konvertiert mit einer maximalen Länge von 2000 Character.

Infomationen zum Upgrade eines BAM 11g Data Objects nach BAM 12c finden sich hier:
11g to 12c Migration in Oracle BAM 12.1.3

<GS>

Written by fmtechteam

12/03/2015 at 15:25

Veröffentlicht in Uncategorized

Tagged with

BAM 12c – BAMCommandConfig.xml

with one comment

Mit der Utility BAMCommand werden in BAM 12c Metadaten, Daten und Projekt Artefakte exportiert, importiert, migriert oder gelöscht. Beim Aufruf der Utility können Parameter mitgegeben werden wie z.B. der Rechnername oder die Portnummer des BAM Servers.

In der Konfigurationsdatei BAMCommandConfig.xml können Werte für diese Parameter zentral definiert werden. Diese Werte müssen dann beim Aufruf der Utility nicht mehr in der Kommandozeile angegeben werden. Die Datei liegt im Verzeichnis FMW_HOME/soa/bam/bin.

Im folgenden Beispiel werden Host und Port des BAM Servers definiert, Benutzername und Passwort für den WLS Administrator und das SOAINFRA Datenbank Schema, in dem alle BAM Objekte abgelegt werden, sowie die Connection zur Datenbank:

<?xml version=”1.0″ encoding=”UTF-8″ standalone=”yes”?>
<BAMCommandConfig>
<host>localhost</host>
<port>7222</port>
<username>weblogic</username>
<password>7aNP3ayh3UpeTFAKqq+phWfTIJKJaVqntGCnit9mE1I=</password>
<dbpassword>yfDjRGn7SwgukG4HIlhOywK7hIWbTXR15o4/xpJQvKo=</dbpassword>
<dbusername>DEV4TEST_SOAINFRA</dbusername>
<dburl>jdbc:oracle:thin:@localhost:1522:BPMDB12c</dburl>
</BAMCommandConfig>

Parameter, die direkt beim Aufruf der Utility in der Kommandozeile mitgegeben werden, überschreiben die Parameter in der Konfigurationsdatei.

Die Passwörter werden unverschlüsselt eingetragen. Sie werden dann beim nächsten Aufruf der Utility verschlüsselt.

Wenn der Parameter für den Port nicht gesetzt und nicht als Parameter mit übergeben wird, dann wird vorausgesetzt, dass der BAM Server auf dem Port 7001 läuft. Normalerweise ist dies der Port des Admin Servers und deshalb sollte der Port in dieser Datei eingetragen werden, z.B. mit der Nummer 9001.

Dokumentation: 17.1.2 Using the BAMCommand Configuration File

<GS>

Written by fmtechteam

11/03/2015 at 17:19

Veröffentlicht in Uncategorized

BPM 12c Project Properties für die Integration mit BAM 12c

leave a comment »

In einem BPM Projekt müssen einige wenige Einstellungen vorgenommen werden, damit Daten über Prozesse und KPIs an einen BAM Server übertragen werden.

Im Oracle JDeveloper wird der Name des Projektes markiert und über das Mausmenu werden über den Menupunkt BPM die Project Preferences aufgerufen.

OpenProjectProperties

Auf der linken Seite wird der Punkt Project Analytics Summary markiert.

  • Im oberen Bereich unter Process Sampling Points wird festgelegt, ob Daten für alle Aktivitäten oder z.B. nur für alle interaktiven Aktivitäten, d.h. für User Tasks/Human Tasks, gesammelt werden.
  • Im unteren Bereich wird unter den Data Targets festgelegt, ob Daten an einen BAM 12c Server und/oder einen BAM 11g Server übertragen werden sollen, hier z.B. nur an BAM 12c.

BPMProjectPreferences

Mit diesen Einstellungen werden jetzt Prozessdaten an den BAM 12c Server übertragen. Voraussetzung dafür ist aber auch, dass die Properties für die Inegration von BPM 12c und BAM 12c auf dem Server richtig gesetzt wurden (SOA/BPM Properties für die Integration mit BAM12c).

Zur Vorsicht sollte bei den Project Preferences unter Project Info überprüft werden, ob der richtige Projektname eingetragen ist.

ProjectName

Der Projektname ist wichtig, weil nach dem Deployment des BPM Projektes in der BAM 12c Umgebung ein BAM Projekt für den BAM Designer angelegt wird. Der Name dieses Projektes setzt sich zusammen aus dem Prefix BPM_ und dem unter Project Info eingetragenen Projektnamen.
Für das Beispiel aus dem oberen Screenshot wird z.B. das BAM Projekt BPM_BpmProjekt4BAM angelegt.

<GS>

Written by fmtechteam

18/02/2015 at 11:56

Veröffentlicht in Uncategorized

SOA/BPM Properties für die Integration mit BAM12c

with one comment

Für die Integration von Oracle BPM 12c mit Oracle BAM 12c müssen auf dem BPM Server einige Properties gesetzt werden, damit Daten aus und über die Prozesse an den BAM Server zur weiteren Auswertung übergeben werden.

Die Properties werden über den System MBean Browser im Oracle Enterprise Manager gesetzt. Nach der Anmeldung als Administrator (weblogic) wird über das Menu WebLogic Domain der System MBean Browser aufgerufen.
OpenMBeanBrowser

Unter den Application Defined MBeans wird unter oracle.as.soainfra.config–>Server: server_name (z.B. Server: soa_server1)–>BPMNConfig der Eintrag bpmn markiert.
Bei den Properties auf der rechten Seite wird OptimizationEnabled auf true gesetzt.
bpmnOptEnabled

Nach Ändern der Property auf den Button Apply (rechts oben) klicken.

Unter den Application Defined MBeans wird jetzt unter oracle.as.soainfra.config–>Server: server_name (z.B. Server: soa_server1)–>AnalyticsConfig der Eintrag analytics markiert.
Bei den Properties auf der rechten Seite werden DisableAnalytics und DisableProcessMetrics auf false gesetzt.
analytics

Nach Ändern der Properties wieder auf den Button Apply (rechts oben) klicken.

Damit sind die Einstellungen vorgenommen worden, um Prozessdaten, KPis etc. an den BAM 12c Server zu übertragen.

Oracle Dokumentation: 34.1.1 Configuring the BPMN Service Engine for Process Monitoring

<GS>

Written by fmtechteam

17/02/2015 at 11:29

Veröffentlicht in Uncategorized

RESTful Services mit Mobile Persistence Accelerator (AMPA)

leave a comment »

Das Oracle A-Team hat jetzt eine JDeveloper Erweiterung als Open Source Framework veröffentlicht, mit der die Integration von REST Services in Oracle MAF erweitert wird. Insbesondere die Verarbeitung von JSON Daten wird hiermit stark vereinfacht. Der A-Team Mobile Persistence Accelerator, kurz AMPA, liefert einen grafischen Wizard zum Erstellen von JSON DataControls. Der Unterschied zum produktseitigen REST Service DataControl Wizard ist, dass man hiermit überhaupt nativ JSON verarbeiten, die Datenstrukturen des JSON Response erkennen lassen und etwaige Master-Detail Beziehungen definieren kann. Außerdem ist eine Offline Funktion mit eingebaut. Man kann somit ohne Netzverbindung Daten lesen und schreiben und anschließend eine Synchronisation mit dem Backend vornehmen.

AMPA ist, wie bereits genannt, kein offfizielles Oracle Produkt. Daher können Supportanfragen nur über die MAF Community geregelt werden. Warten wir es ab, inwieweit das MAF Development diese Lösung aufgreift und ins Produkt überführt.

Weitere Infos zur JDev Extension sind auf dem A-Team Blog unter http://www.ateam-oracle.com/a-team-mobile-persistence-extension-for-oracle-maf/ zu finden.

<DM>

Written by fmtechteam

14/11/2014 at 10:33

Veröffentlicht in MAF, Mobile

Remote Debugging in der BPM Suite 12c konfigurieren

leave a comment »

Mit der BPM Suite 12c kann aus dem JDeveloper heraus ein Debugging von BPM Prozessen durchgeführt werden. Läuft der BPM Server auf einem anderen Rechner (oder z.B. auch in einer Virtual Box), so muss der WebLogic Server, in dem die BPM/SOA Suite läuft (bei einer Developer Installation z.B. der Admin Server), mit einer zusätzlichen Java Option gestartet werden:

EXTRA_JAVA_PROPERTIES=”${EXTRA_JAVA_PROPERTIES} -Dsoa.debug.config=port=5004″

Die Variable EXTRA_JAVA_PROPERTIES kann auf OS Ebene gesetzt oder in die Skripte zum Starten der Server integriert werden.

<GS>

Written by fmtechteam

03/11/2014 at 17:21

Veröffentlicht in BPM

Folgen

Erhalte jeden neuen Beitrag in deinen Posteingang.