Car registration process: A BPMN real-life use-case

Lately I faced the challenge to transfer my car registration from Austria to Poland. In other words, I wanted to register my car in Poland which has been registered in Austria previously.

It took quite a lot of time and effort to figure out how all the steps work together, however the visualization I created throughout this little “private project” helped a lot in understanding. This BPMN process is the result. I showed it to a bunch of people not acquainted with BPMN and without domain knowledge. It was amazing to see how these people immediately comprehended the process and felt confident to solve the problem.

Perhaps someone might benefit from it. Although the process may slightly differ to other countries when it comes to necessary kinds of documents, the basic steps remain the same.

Car registration BPMN process

Kategorien:English, Uncategorized

Was ist neu in camunda BPM 7.1?

Am 21. März war es endlich soweit und die neue camunda BPM 7.1 Version wurde vorgestellt. In einem einstündigen Live Webinar haben Jakob Freund und Daniel Meyer die neuesten Features der Version 7.1 vorgestellt. Nach einem kurzen Einstieg und Überblick über das camunda BPM Ökosystem inklusive eines interessanten Rückblicks über die letzten zwölf Monate camunda BPM ging es auch direkt an’s Eingemachte!

Neue Features

Damit Prozesse ganz im Sinne des Rapid Prototyping möglichst schnell ausprobiert werden können besteht für die User Tasks die Möglichkeit sich auf einfache Art und Weise Formulare generieren zu lassen und diese nach dem Gewinn neuer Erkenntnisse weiter anzupassen.

Der Eclipse basierte camunda Modeler wird kontinuierlich verbessert und hat einige interessante und das effiziente Prozessdesign sehr stark unterstützende Features bekommen. Der Modeler ist für mich kaum noch vergleichbar mit dem Modeler für den wir Anfang 2012 noch den einen oder anderen Feature-Request oder Bugreport eingestellt haben.

Ein weiteres spannendes Feature ist die Job Suspension, um laufende Instanzen an einer bestimmten Stelle anzuhalten (beispielsweise beim Ausfall einer Schnittstelle) und später aktiv wieder anzustarten. Spannendes Detail an der Stelle: Die Job Suspension ist auch über die neue Java API erreich- und steuerbar und damit lässt sich dann auch programmatisch auf bestimmte Situationen in der eigenen Prozessanwendung reagieren.

Und besonders beim Betrieb von camunda BPM basierten Prozessanwendungen hilft auch die verbesserte Process History weiter, mit der über einzelne und alle Prozessinstanzen Abfragen möglich sind und damit Prozessdurchläufe analysiert werden können – natürlich inklusive grafischer Darstellung im camunda cockpit. Kleiner Wermutstropfen: Dieses Feature ist nur in der Enterprise Edition verfügbar.

Mit dem neuen Support für JBoss AS 7.2 und JBoss EAP 6.1 / 6.2 werden nun in Summe sechs verschiedene Container und sechs verschiedene Datenbanken als Laufzeitumgebung für die camunda BPM Process Engine unterstützt.

Bei so vielen neuen Features stellt sich der Softwareentwickler natürlich die Frage, ob sich diese Verbesserungen negativ auf die Performance niederschlagen. Doch auch an dieser Baustelle wurde die camunda BPM Engine optimiert und profitiert nun noch mehr von Multi-Threading und reduziert für diverse BPM-Elemente die Anzahl der erforderlichen Datenbankzugriffe.

Ausprobieren

Der Einstieg in die Entwicklung von Prozessanwendungen mit camunda BPM wird durch die mittlerweile vielen Ressourcen wie der umfangreiche User Guide, die vielen Tutorials und Beispiele möglichst einfach gemacht. Wer dennoch den Erstkontakt scheut dem kann von camunda selber oder einem der Partnerunternehmen Unterstützung bei der Einführung durch Workshops oder einen Proof of Concept (“Nicht wir sondern Sie machen das und es läuft nicht bei uns sondern auf Ihrer eigenen Maschine!”) angeboten werden.

Ferner gibt es noch das camunda BPM network, wo man sich mit anderen BPM Interessierten vernetzen kann, diverse Community Meetings und natürlich die BPMCon 2014 in Berlin, die schon im letzten Jahr viele Anwender und Interessierte begeistern konnte.

Ausblick

Im anschließenden Q&A sind die beiden Sprecher noch auf viele der gestellten Fragen eingegangen. So auch die Frage zur weiteren Entwicklung der camunda BPM Process Engine. Auf der Roadmap stehen gerade neben vielen kleinen Optimierungen und Weiterentwicklungen drei große Themen:

  • Weitere Verbesserung der Tasklist
  • Implementierung von Adaptive Case Management
  • Programmiermodell zur Transformation von XML- und JSON-Datenströmen

Die Stunde war viel zu schnell rum und für mich bleibt ein sehr gelungenes und interessantes Live Webinar mit wenigen aber informativen Folien und einer Menge echter Demos und Code-Beispiele in Erinnerung.

Die neuen Features machen das nächste BPM Projekt mit der camunda BPM Process Engine noch um einiges interessanter als Projekte dieser Art bisher schon waren!

Kategorien:camunda BPM, German Schlagworte: , , ,

IT-Security (Part 3): WebLogic Server and Java Security Features

WebLogic Server and Java Security Features [1]

WebLogic Server supports the Java SE and Java EE Security to protect the resources of whole system. The resources could be Web applications, Uniform Resource Locator (URL), Enterprise JavaBeans (EJBs), and Connector components.

Java SE capabilities: Security APIs

Java uses APIs to access security features and functionality and its architecture contains a large set of application programming interfaces (APIs), tools, and implementations of commonly-used security algorithms, and protocols. This delivers the developer a complete security framework for writing applications and enables them to extend the platform with new security mechanisms.[2]

Java Authentication and Authorization Services (JAAS)

WebLogic Server uses the Java Authentication and Authorization Service (JAAS) classes to consistently and securely authenticate to the client. JAAS is a part of Java SE Security APIs and a set of Java packages that enable services to authenticate and enforce access controls upon users and /or fat-client authentication for applications, applets, Enterprise JavaBeans (EJB), or servlets.

JAAS uses a Pluggable Authentication Module (PAM) framework, and permits the use of new or updated authentication technologies without requiring modifications to the application. Therefore, only developers of custom Authentication providers and developers of remote fat client applications need to be involved with JAAS directly. Users of thin clients or developers of within-container fat client applications do not require the direct use or knowledge of JAAS.

JAAS LoginModules

All LoginModules are responsible for authenticating users within the security realm (we are going to discuss about that later) and for populating a subject with the necessary principals (users/groups). LoginModules contains necessary methods for Login Context, Accounts, Credentials, configuration of them, and different ways to exception handling. Each Authentication providers will be configured in a security realm, its LoginModules will store principals within the same subject too. I try to present that with an example: Via WebLogic Server Admin Console: Home >myDomain > Domain Structure click on Security Realms and then create a new realm “Moh_Realm-0” and then click on “OK”

p3_realm_1

Figure 1 create a new Realm

Select new realm and then click on tab “provider”, and then click on “New”, in order to create a new provider:

p3_realm_2

Figure 2 open the new Realm

In this use case, we select type: “WebLogic Authentication Provider” and give a name e.g. “DefAuthN”, then “OK”.  The WebLogic Authentication provider is configured in the default security realm (myrealm). The WebLogic Authentication provider allows you to edit, list, and manage users, groups, and group membership. User and group information is stored in the embedded LDAP server.[3]

p3_AuthenticationProvider_3

 Figure 3 create a new Authentication Provider

After define “Provider”, we have to restart Admin Server. Now, we can check and compare users of new realm (Moh_Realm-0) with default realm (myrealm) of WebLogic. For myrealm, Icreated a new user named “userDOAG” and we see the following list there (Home >Summary of Security Realms >myrealm >Users and Groups)

p3_users_4

Figure 4 users of myrealm

But I didn’t create same user for Moh_Realm-0 (Home >DefAuthN>Summary of Security Realms >Moh_Realm-0 >Users and Groups):

p3_users_5

Figure 5 users of Moh_Realm-0

It shows, that we can use security provider in different gatherings und expand our security realm with additional user, groups, and security providers. We are working on it in next part of this article.

JAAS Control Flags

The JAAS Control Flag attribute determines how the LoginModule for the WebLogic Authentication provider is used in the login sequence. The values for the Control Flag attribute are as follows: Home >Summary of Security Realms > Moh_Realm-0 >Providers > DefAuthN

 p3_JAAS_ControlFlag_6

Figure 6 Control flags via Admin Consol

  • REQUIRED – This LoginModule must succeed. Even if it fails, authentication proceeds down the list of LoginModules for the configured Authentication providers. This setting is the default.
  • REQUISITE – This LoginModule must succeed. If other Authentication providers are configured and this LoginModule succeeds, authentication proceeds down the list of LoginModules. Otherwise, return control to the application.
  • SUFFICIENT – This LoginModule needs not succeed. If it does succeed, return control to the application. If it fails and other Authentication providers are configured, authentication proceeds down the LoginModule list
  • OPTIONAL – The user is allowed to pass or fail the authentication test of these Authentication providers. However, if all Authentication providers configured in a security realm have the JAAS Control Flag set to OPTIONAL, the user must pass the authentication test of one of the configured providers.[4]

Now, we can focus on two important JAAS-tasks: authentication and authorization of users…[5]

References


[4] Oracle Fusion Middleware: Understanding Security for Oracle WebLogic Server 12c Release 1, (12.1.1), E24484-02, January 2012: http://docs.oracle.com/cd/E24329_01/web.1211/e24484.pdf

OPITZ CONSULTING tritt Enterprise BPM Alliance bei

Seit dem 1. Dezember 2013 sind wir Teil der Enterprise Business Process Management Alliance (EBPMA). In der neuen Vereinigung stellen unabhängige BPM-Anwender ihre praktischen Erfahrungen und ihr Know-how in einer offenen Methodik für BPM bereit. Wir freuen uns, dem Netzwerk künftig unsere Erfahrungen zur Verfügung zu stellen und weitere Unternehmen mit ins Boot zu holen: „Wir möchten unseren Kunden schon in Strategie-Phasen die richtigen Impulse ermöglichen. Die neue Alliance mit ihrer gebündelten Erfahrung und ihrem präzise aufbereiteten Know-how ist dafür der perfekte Partner!“

logo_ebpma

Auch Dirk Slama, Mitgründer und Vorstand der BPM-Alliance ist davon überzeugt, dass Business Process Management in all seinen Facetten einen ganz wesentlichen Beitrag zum Unternehmenserfolg leistet: „Die Ausprägungen reichen von strategischen BPM-Initiativen in Verbindung mit Enterprise Architecture Management (EAM) bis hin zur Realisierung von Geschäftsprozessautomati-sierungen mit Process Engines in einer global verbundenen und mobilen Welt der Systeme und Dinge.“
Als Grundlage für ihre Arbeit dient der Alliance das Business Process Management Frame-work (BPMF) sowie das Buch „Enterprise BPM“, an dem sich Anwender bei der Durchfüh-rung von Projekten orientieren können. Die Mitglieder der BPM Alliance profitieren von der Erfahrung und dem Wissen anderer Anwender durch den regelmäßigen Erfahrungsaus-tausch im Vereinsnetzwerk. Darüber hinaus erhalten sie durch den Zugriff auf aktuelle Dokumentationen aus dem BPM-Framework Wissen aus erster Hand und können Fragen direkt mit den „Machern“ klären.
Aktuelle Informationen stellt das Bündnis auf seiner Website, im Blog und via Newsletter bereit. Die Alliance veranstaltet regelmäßig Workshops in Arbeitsgruppen und präsentiert die Arbeitsergebnisse und Erkenntnisse auf verschiedenen Konferenzen. Link: http://enterprise-bpm.org/alliance/

Kategorien:BPM, German, News

OPITZ CONSULTING gewinnt ORACLE BPM Partner Community Award

Pressemitteilung:

Beim Oracle Fusion Middleware Partner Forum am 18.2.2014 auf Malta zeichnete Oracle den Beitrag von OPITZ CONSULTING zur BPM-Community mit seinem „Oracle BPM Community Award für Outstanding BPM Contribution 2014“ aus. Maßgeblich für diese Entscheidung war, dass die Experten der IT-Beratung ihre Erfahrungen aus Projekten im Bereich Business Process Management mit den Systemen Oracle SOA Suite und Oracle BPM Suite regelmäßig in Blogeinträgen, Artikeln und Konferenzbeiträgen mit der Community teilen. Zudem würdigt der Preis die zahlreichen Kontributionen im Umfeld der noch recht neuen BPM-Disziplin des „Adaptiven Case Managements (ACM)“, wie zum Beispiel ein Poster mit einer Übersicht zum Thema ACM, zahlreiche Fachartikel und Vorträge sowie Beiträge zu Büchern (Link zum ACM-Poster).

BPM Award 2014

Alistair Hopkins, VP Sales & Strategy Technology Solutions bei Oracle, lobt die Verdienste des Beratungshauses mit den folgenden Worten: “OPITZ CONSULTING is established as a leading Oracle Fusion Middleware Partner in Germany with a focus on BPM, SOA and integration projects. With their experience from many successful customer projects and with their quest for high quality delivery of solutions OPITZ CONSULTING is a strong implementation partner for our customers. The label  “Specialized Partner” has been achieved for SOA, BPM, Business Intelligence , Application Grid and Application Development Framework (ADF ) as well as several DB specializations e.g. Exadata, RAC, etc. and shows the technical Oracle power OPITZ CONSULTING has built. This underlies their outstanding position in the German market significantly. Oracle wishes to reward this investment and the outstanding projects delivered through the presentation of the Oracle EMEA BPM Partner Community Award and wishes OPITZ CONSULTING an ongoing success”

Torsten Winterberg verantwortet im Business Development & Innovation bei OPITZ CONSULTING das Thema BPM und legte immer schon großen Wert auf die Community-Arbeit seiner Berater. Er statiert: „Das Erarbeiten und Teilen von Fachwissen bringt nicht nur unsere eigenen Experten weiter, sondern hilft auch grundsätzlich dabei, wichtige Marktthemen weiterzuentwickeln. Das kommt letztlich unseren Kunden zugute, die zu Recht „State-of-the-Art“-Leistungen von uns erwarten und diese aufgrund des hohen Engagements vieler auch geliefert bekommen. Umso mehr freuen wir uns daher über den Gewinn des Community-Awards. Ich möchte mich bei der SOA- und BPM-Community von Oracle für das zurückgespiegelte Vertrauen in Form des Preises herzlich bedanken, insbesondere bei Jürgen Kress, der die Gemeinschaft führend aufgebaut hat und das kontinuierliche Wachstum und die Weiterentwicklung der Community treibt. Gemeinsam sind wir stärker. Danke!“

Kategorien:BPM, German, News

Dynamic endpoint binding in Oracle SOA Suite

Why is dynamic endpoint binding needed?

Sometimes a BPEL process instance has to determine at run-time which implementation of a web service interface is to be called. We’ll show you how to achieve that using dynamic endpoint binding.

Let’s imagine the following scenario: we’re running a car rental agency called RYLC (Rent Your Legacy Car) which operates different locations. The process of renting a car is basically identical for all locations except for the determination which cars are currently available. This is depicted in the following diagram:

get_available_cars

There are three different implementations of the GetAvailableCars service. But how can we achieve calling them dynamically at run-time using Oracle SOA Suite?

How to dynamically set the service endpoint

There are just a couple of implementation steps we need to perform to enable dynamic endpoint binding:

  • create a new SOA project in JDeveloper
  • add a CarRental BPEL process
  • add an external reference to the GetAvailableCars service within the composite
  • create a DVM file containing the URI’s by which the services for the different locations can be accessed
  • set the endpointURI property on the Invoke component calling the GetAvailableCars service (value is taken from the DVM file)

Those steps are described in more detail here: http://sgrosjean.blogspot.de/2013/01/how-to-set-endpointuri-dynamically-in.html

The composite view should now be similar to this:

ohne_mock_carrental

Decouple composite design from specific endpoints

We need to allocate a concrete implementation of the GetAvailableCars service to the composite when deploying it. We could use the implementation of any of the location specific services (e.g. the Berlin service) but that is generally not a good idea as once the particular service is unavailable the composite can no longer be deployed.

Therefore we decouple the CarRental composite from any specific endpoint by adding the GetAvailableCars interface as an exposed service:

mit_mock_carrental

The mocked GetAvailableCars process is just there for decoupling a certain location from the caller during deployment time. During run-time the mock will not be called but replaced with one of the services configured in the DVM. However, if the dynamic call fails the mocked GetAvailableCars process returns an appropriate error message.  

In the config plan used for deploying the composite we must set the location of the external reference so that the composite seems to be calling itself:

configplan

Thereby we don’t have any dependencies on location specific services while deploying the composite. At run-time, however, the endpointURI property will override the deployed settings.

For the sake of completeness we must not forget that the dynamic call as described here (using Oracle SOA Suite only) could also be achieved using the Oracle Service Bus (OSB) and its Dynamic Routing component. In scenarios where no service bus is available, however, our approach is certainly worth consideration.

IT-Security (Part 2): WebLogic Server and Oracle Platform Security Services (OPSS)

OPSS Architecture

As we discussed (http://modj.org/home/aktueles/it-security-weblogic-server-and-oracle-platform-security-services-opss/e17330b741d0e387ead1a36591466a7c.html), OPSS is Oracle proposals regarding enterprise security services. It is as a framework that provides a comprehensive set of security services. These services based on Java technologies and have a consistent approach for design and apply security policies to Java EE and resources. We look at OPSS architecture from two different perspectives, which are connected to each other very closely. I try to review the advantages of OPSS for developers and administrators from Application’s perspective and present the cooperating of technology components such as LDAP, Application Server and Oracle Fusion Middleware from Component’s perspective. Thereby, we can determine the main OPSS’s benefits that Oracle says:

  • Allows developers to focus on application and domain problems
  • Supports enterprise deployments
  • Supports several LDAP servers and SSO systems
  • Is certified on the Oracle WebLogic Server
  • Pre-integrates with Oracle products and technologies

Application’s point of view

Oracle Platform Security Services (OPSS) is both a security framework exposing security services and APIs, and a platform offering concrete implementation of security services. It includes these elements:

  • Common Security Services (CSS), the internal security framework on which Oracle WebLogic Server is based
  • Oracle Platform Services
  • User and Role APIs
  • Oracle Fusion Middleware Audit Framework

Figure 1 Application’s perspective  illustrations OPSS‘s architecture from application point of view. Such architecture allows OPSS to support different security and identity systems without changing the APIs. OPSS is integrated with Oracle Fusion Middleware‘s management tools to administrate and monitor the security policies implemented in the underlying identity management infrastructure.  Therefore, OFM technologies such as Oracle SOA, Oracle WebCenter Suite, Oracle Application Development Framework (ADF), Oracle Web Services Manager (OWSM) and… could use OPSS capacities.

OPSS offers abstraction layer APIs those isolate developers from security and identity management implementation details. In this way, developer can invoke the services provided by OPSS directly from the development environment (e.g. JDeveloper) using wizards. Admin can configure the services of OPSS into the WLS. As you see in Figure, the uppermost layer consists of Oracle WebLogic Server and the components and Java applications running on the server; below this is the API layer consisting of Authentication, Authorization, CSF (Credential Store Framework), and User and Role APIs, followed by the Service Provider Interface (SPI) layer and the service providers for authentication, authorization, and others. The final and bottom layer consists of repositories including LDAP and database servers.

Figure 1 Application's perspective

Figure 1 Application’s perspective

 OFM-Component’s point of view

Figure 2 OFM-Component’s perspective shows the various security components as layers. The top layer includes the OPSS security services; the next layer includes the service providers, and the bottom layer includes the OPSS security store with a repository of one of three kinds. OPSS provides auditing capabilities for components too.

The second layer [Security Services Provider Interface (SSPI)] has the capability that works with Java EE container security – named Java Authorization Contract for Containers (JACC) mode and in resource-based (non-JACC) mode, and resource-based authorization for the environment.

SSPI is a set of APIs for implementing pluggable security providers. A module implementing any of these interfaces can be plugged into SSPI to provide a particular type of security service. Therefore, OPSS has a consistent structure and is able to meet the requirements for integrating JEE Applications generally and specially OFM-Components and Oracle Security technologies, such as OAM, OID and so on.

Figure 2 OFM-Component's perspective

Figure 2 OFM-Component’s perspective

References

Follow

Erhalte jeden neuen Beitrag in deinen Posteingang.