New book is out: Design Principles for Process-driven Architectures Using Oracle BPM and SOA Suite 12c

A design handbook to orchestrate and manage flexible process-driven systems with Oracle BPM and SOA Suite 12c.

This book was written in a joined approach by several experts from the Oracle ACE and ACE director team, three of them from OPITZ CONSULTING: Matjaz B. Juric, Sven Bernhardt, Hajo Normann, Danilo Schmiedel, Guido Schmutz, Mark Simpson, Torsten Winterberg.


  • Learn key principles to model business processes with BPMN and BPEL, and execute them in an SOA environment.
  • Use best practices for composite applications, including service design and human interactions, and apply them in your daily projects.
  • Design, implement, and optimize business processes with real-world examples illustrating all key concepts

Who This Book Is For

This book is intended for BPM and SOA architects, analysts, developers, and project managers who are responsible for, or involved in, business process development, modelling, monitoring, or the implementation of composite, process-oriented applications. The principles are relevant for the design of on-premise and cloud solutions.

What You Will Learn

  • Design principles to model business processes and business architectures
  • Best practices to produce executable business processes in BPMN
  • Principles when designing reusable services and composite applications
  • Advanced approaches to human interactions in business processes, including patterns and Adaptive Case Management
  • Business rules management and principles for rule design and implementation, including using rules in BPMN and BPEL processes
  • Prepare process applications for mobile and multichannel/omnichannel
  • Explore the best practices and principles of Business Activity Monitoring to define and monitor Key Performance Indicators
  • Extend the processes to Internet of Things devices and processing complex events

In Detail

This book is a design handbook and provides skills to successfully design, implement, and optimize business processes on top of SOA. Starting with business process modeling, it shows design principles to architect sound process architectures. It presents best practices for modeling business processes using BPMN, together with design principles for services and composite applications. It provides detailed coverage of how to prepare business processes for execution. An in-depth explanation of human interactions is given and also principles and best practices for using rules.

Moving on, Adaptive Case Management principles are explained, along with the reach of business processes to mobile devices and ensuring multichannel interactions. Business activity monitoring, event-driven architectures, complex event processing in relation to business processes, and enabling integration with events and IoT devices are explained. The design principles and best practices are demonstrated in a practical way on a rental car use case.

Veröffentlicht unter BPM, English, IoT, Mobile, Oracle BPM Suite, Oracle FMW, Oracle SOA Suite, SOA | Kommentar hinterlassen

Get an Oracle E-Mail notification via User Messaging Service Running before your coffee gets cold

I often get asked to help developers with setting up UMS, but in fact mostly focusing on the SMTP server.

In the next steps I will show how you can setup a HelloWorld notification Service with reviewing the results in less than five minutes.


Installed SOA or BPM Quickstart. See Danilos post for details :

Get FakeSMTP.jar on your development machine:

Step 1 – Start WLS

Start the IntegratedWebLogicServer

Step 2 – Start the Fake SMTP

Enter in the command line:

java -jar fakeSMTP-2.0.jar

After the Application has started up click the “Start Server” button.




Step 3 – Configure UMS in the Enterprise Manager

Log into EM

Edit the Email Driver Properties


Create a new Configuration with the name localhost and the outgoing mail server localhost and save it.


Step 4 – HelloWorld Notification Composite

Create a new SOA Application with a SOA Project


Create a Synchronous BPEL with standard settings



Add an UMS as a reference, add only outbound notification details, set Message as String type and wire it to the BPEL



Edit the BPEL Flow

Add an invoke of the UMS reference and create a new input variable for the UMS reference.


Add an Assign before the Invoke and map the BPEL input string to the message payload.


Deploy the composite to the application server and test your service via EM

And there you go.






Veröffentlicht unter Uncategorized | Kommentar hinterlassen

Resolve JCA connection error in Oracle EBS to SAP integration with OSB 11g

Doing a Oracle EBS to SAP integration with Oracle Service Bus 11g (OSB) I noticed a strange exception at runtime. During the establishment of a connection to the SAP system via the iWay SAP adapter the following error occurs in the adapter logs:

servicebus:/WSDL/ebs2sap-data-integration/Sap/v2.0/jca/BAPI_ORACLE_SYNCHRO_RESPONSE_invoke [ BAPI_ORACLE_SYNCHRO_RESPONSEPortType::BAPI_ORACLE_SYNCHRO_RESPONSE(input_BAPI_ORACLE_SYNCHRO_RESPONSE,output_BAPI_ORACLE_SYNCHRO_RESPONSE) ] – : The JCA Binding Component was unable to establish an outbound JCA CCI connection due to the following issue: java.lang.IllegalArgumentException: Adapter ‘MySAP’ not available. Names are case sensitive.
Please make sure that the JCA connection factory and any dependent connection factories have been configured with a sufficient limit for max connections. Please also make sure that the physical connection to the backend EIS is available and the backend itself is accepting connections.

At first glance I suspect a typo or a general error within the connection configuration of the adapter to be responsible for this error. After double checking the configuration I wasn’t able to detect a configuration issue, everything seems to be fine. I restarted the servers, the complete domain – nothing changed, the exception remains.

So I decided to double check the general adapter setup. Walking through all setup steps, I finally discovered the root of all evil: I simply forgot to copy the SAP JCO libraries to the $MW_HOME/user_projects/osb_domain/lib folder. After placing the libraries at the corresponding place and restarting the domain, everything worked as intended. Now the data could be transmitted to SAP without any problems.

Small cause, big effect – it takes me some time to find the root cause of the reported exception, whose message is really misleading in my opinion. I would expect to find something like a ClassNotFoundException, if needed libraries cannot be found in the classpath. But never mind, finally it worked.

I hope I can save you some time with the post, if you are facing similar or the same error, when using SAP adapter in an Oracle Service Bus 11g or Oracle SOA Suite 11g environment.

Veröffentlicht unter Integration, Oracle Service Bus, Quicktipp, SAP | Verschlagwortet mit , , , , | Kommentar hinterlassen

Whitepaper Serie: Integration

(english version see below)

Mit den diversifizierenden Trends Mobile und Cloud Computing hat das Thema Integration noch mehr an Bedeutung gewonnen. Deshalb haben wir eine Whitepaper Serie speziell zu diesem Thema entwickelt. In dem folgenden Whitepaper dieser Serie wird in die Thematik eingeführt und ein Gesamtüberblick gegeben

Das Whitepaper beschreibt an einem konkreten UseCase (Closed-Loop Order Management) die diversen Aspekte der Integration. Dabei wird mit Absicht eine sehr hohe Abstraktionsebene genutzt mit Fokus auf den fachlichen Nutzen. Für die mehr technisch Interessierten Leser gibt es zusätzlich den folgenden Blog

in dem die Integration eines onPremise SAP Systems mit der Cloud Application Salesforce auf Basis der Oracle SOA Suite 12c detailliert beschrieben wird.

— English Version —-

Whitepaper Series: Integration

With the diversification trends mobile and cloud computing the importance of integration has significantly increased. Therefore we dedicated a whitepaper series to this topic. Unfortunately the whitepapers are currently only available in German. As soon they are available in English I will repost it here.

However, a more technical description of a sample how to integrate an onPremise SAP system with the cloud application Salesforce is available in this blog

Veröffentlicht unter Uncategorized | Kommentar hinterlassen

Ansätze für das Datenbankschema-Management oder wie geht Continuous Integration für die Datenbank

Das Problem mit der Datenbank…

Für Anwendungscode ist es inzwischen die normale Vorgehensweise: Codeänderungen werden regelmäßig in einem Nightly Build gebaut, getestet und häufig auch direkt deployt. Das nennt man Continuous Integration (CI). Ziel ist, dass die neue Version der Anwendung in jeder beliebigen Umgebung lauffähig ist. Das ist sie aber nur dann, wenn der Zustand der Datenbank zur Anwendungsversion passt. Wie geht man aber mit Datenbankänderungen um, ohne den Grundgedanken von CI zu verletzen? Und was ist an der Datenbank eigentlich anders als an normalem Programmcode?

Das besondere an Datenbanktabellen ist, dass die in ihnen gespeicherten Daten beim Deployment einer neuen Version erhalten bleiben müssen. Während normaler Programmcode einfach vollständig neu deployt wird, verlangt die Datenbank eine Behandlung, die den Ist-Zustand des Zielsystems berücksichtigt und unter Erhalt der bestehenden Daten nur die notwendigen Änderungen zum Erreichen des Soll-Zustands durchführt. Mit anderen Worten: die Skripte, die ausgeführt werden müssen, hängen vom Zielsystem ab. Mit der Definition des Sollzustands ist es nicht getan, um ans Ziel zu kommen, brauchen wir auch das Delta zwischen Ist und Soll. Und das kann für jedes Zielsystem ein anderes sein.

Die herkömmliche Vorgehensweise

Normalerweise begegnet man dem Problem einfach damit, dass die Migrationsskripte für jedes konkrete Deployment per Hand geschrieben und vor dem Deployment ausgeführt werden. Häufig greift man dabei auf Toolunterstützung, z. B. durch die bekannten Produkte Liquibase oder Flyway zurück. Damit ist es dann möglich, Skripte für verschiedene Zielumgebungen zu verwalten, und nachzuhalten, welche Skripte auf welchen Umgebungen schon gelaufen sind. Abgesehen davon, dass man die Skripte für jede Änderung manuell erstellen muss, hat das Vorgehen noch einen wichtigen Nachteil: der Zustand der Datenbank ergibt sich nur als Summe aller Migrationsskripte. Es gibt keine Dateien in unserem Sourcecode-Repository, die den Zustand der Datenbanktabellen zu einer beliebigen Softwareversion darstellen würden.

Unser Lösungsansatz: CI für die Datenbank

An dieser Stelle tritt unser Framework Orcas auf den Plan. Zunächst ermöglicht es uns, den Zustand von Tabellen in einer Oracle-Datenbank mit einer SQL-ähnlichen Syntax zu beschreiben, wie in folgendem Beispiel.

create table orders
   ordr_id number(15) not null,
   version number(15) default “0” not null,
   bpar_id number(15) not null,
   orderdate date not null,
   tracking_number varchar2(20) not null,

   constraint ordr_pk primary key (ordr_id),
   constraint ordr_uc unique (tracking_number),
   constraint ordr_bpar_fk foreign key (bpar_id) references business_partners (bpar_id)

Diese Syntax beschreibt einen Zustand, nämlich den gewünschten Sollzustand der Tabelle. Den Rest erledigt nun Orcas für uns indem es das Delta des Ist-Zustands in der Datenbank zu diesem Soll-Zustand ermittelt und dafür ein Migrationsskript generiert. Dieses Migrationsskript überführt die Datenbank unter Erhaltung aller Daten vom Ist-Zustand in den Soll-Zustand. Orcas kann die Skripte direkt ausführen oder auch für ein späteres Deployment im Dateisystem bereitstellen. Damit schließt es die Lücke, die uns noch von CI für die Datenbank trennte. Unser Sourcecode-Repository enthält nun unsere Orcas-Skripte, die wir genau wie normalen Programmcode einer Versionsverwaltung unterziehen können. Um auf einem Zielsystem eine bestimmte Version unserer Software zu installieren, muss nur ein Aufruf von Orcas mit der entsprechenden Version der Tabellenskripte in den Deployment-Prozess integriert werden. Einen Preis müssen wir für diese Vorteile zahlen. Da Orcas auf das Data Dictionary der Oracle Datenbank zugreift um den Ist-Zustand zu ermitteln, sind wir auf die Benutzung von Oracle RDMS eingeschränkt.

Orcas ist bei Github als Open Source veröffentlicht. Jeder ist eingeladen, es zu verwenden und sich an seiner Weiterentwicklung zu beteiligen.

Veröffentlicht unter Agile, Software | Kommentar hinterlassen

Social Media Analytics – Kategorisierung von Textbeiträgen?

Im Zeitalter der sozialen Medien ist es für Unternehmen äußerst interessant, die allgemeine Wahrnehmung von Marken, Produkten oder Personen regelmäßig zu beobachten. Durch die Vielfalt an Meinungen fällt es jedoch in der Regel schwer, zwischen Einzelmeinungen und der generellen Meinung zu unterscheiden. Der hier vorgestellte Ansatz zum „Social Media Monitoring“ schaut genau auf Beiträge großer Plattformen und erkennt durch eine automatisierte Themenzuordnung sofort Schwerpunkte in der Vielfalt an Meinungen. Auf diese Weise gelangt man in die komfortable Lage, Trends frühzeitig erkennen zu können, um jederzeit darauf reagieren zu können. Dies stellt für den Anwender einen klaren Wettbewerbsvorteil dar.


Angenommen, man interessiert sich dafür, wie eine Marke, eine Person oder ein bekanntes Produkt in der Öffentlichkeit, und damit auch in den sozialen Medien, wahrgenommen und besprochen wird. Also: „Wer schreibt was, und vor allem wo, darüber?“ Unregelmäßige und zufällige Checks sind hierbei wenig zielführend, da sich praktisch jede erdenkliche Meinung an irgendeiner Stelle finden lässt. Wie lässt sich also das Meinungsbild in seiner Gänze einfangen, zusammenfassen und quantifizieren, vielleicht sogar dessen zeitlicher Verlauf beobachten? Hierzu soll im Folgenden sehr kurz eine Lösung präsentiert werden, die den individuellen Wünschen des Anwenders so weit wie möglich entgegenkommt.

Kurzvorstellung des Ansatzes

Die wesentlichen Elemente und Features:

  • entdeckt, was zum Suchbegriff geschrieben wird
  • bewertet die Herkunft des Beitrags
  • klassifiziert die Inhalte automatisiert nach Themen
  • identifiziert die Top-Themen
  • .. und visualisiert die Ergebnisse in Ihrem zeitlichen Verlauf

Auf diese Weise behält man konstant den Überblick über Relevanz und Lokalität von Meinungen und Trends und kann entsprechend frühzeitig gegensteuern.


Um zum Ziel zu gelangen, werden gängige Verfahren des Text Mining, wie etwa das Entfernen von Sonderzeichen oder die Wortstammreduzierung, verwendet. Zusätzlich sind verschiedene Gewichtungen zur besseren Relevanz-Bewertung der Wortbausteine in die Lösung integriert. Auf diese Weise entsteht eine auswertbare Datengrundlage. Das Ganze wurde in R konzipiert und geschrieben.

Aufbereitung und Analyse

Die Ergebnisse zum Suchbegriff werden zur besseren Übersicht in einer Word-Cloud grafisch aufbereitet. Auf diese Weise so erscheinen die häufigsten Begriffe in Relation am größten. Weitere Schritte sind nun für eine automatisierte Themen-Zuordnung notwendig. Dies wird – vereinfacht dargestellt – über Worthäufigkeiten und den Abstand einzelner Wörter zueinander erreicht. So kann man über mathematische Verfahren, wie Zerlegung in Hauptkomponenten und Clusterzuordnung, bestimmte Themenblöcke extrahieren, um zu sehen, in welchem unterschiedlichen Kontext die Suchbegriffe genannt werden. Die Folge sind Unter-Themen zum Suchbegriff, die auf logische Themen-Einheiten zusammengefasst werden. Beispielsweise lässt sich häufig eine Unterscheidung in News, Werbung und individuelle User-Meinungen (positiv/ negativ) beobachten, die im Einzelnen und je nach Suchbegriff weiter logisch unterteilt werden können.

Der Mehrwert

Führt man die oben beschriebenen Arbeitsschritte beispielsweise mehrmals am Tag durch und integriert die Ergebnisse in die jeweiligen Reportings, so lassen sich frühzeitig Trends, Phänomene, aber auch Feedback zu Produkten oder Unternehmensstrategien beobachten. Ein rechtzeitiges Handeln oder Gegensteuern kann durch diese Impulse initiiert werden, was dem Unternehmen Geld und Aufwand erspart, denn es gilt: hat sich der Image-Schaden durch negative Presse, aber auch durch ein Nicht-Gegensteuern erst einmal in den sozialen Medien etabliert, ist dies nur schwer wieder rückgängig zu machen.

Veröffentlicht unter Analytics, Big Data | Verschlagwortet mit , | Kommentar hinterlassen

VirtualBox Image not starting up

I often have the situation that I get a pre-installed VirtualBox image with some new Oracle stuff to test. Sometimes these images don’t start with this error message:

“This kernel requires an x86-64 CPU, but only detected an i686 CPU. Unable to boot – please use a kernel appropriate for your CPU”

The solution here is not to “Enable Intel VT-x/AMD-V from BIOS”. But this is a necessary option, too.

The solution is to change the setting of the vm before starting and switch it from e.g. “Ubuntu 32bit” to “Ubuntu 64bit”.

Veröffentlicht unter Oracle FMW, Quicktipp, Uncategorized | Verschlagwortet mit | Kommentar hinterlassen