BPM Integration with OSGi: JAX-RS and JPA

Gary Samuelson
Next Post
Previous Post

Click here for Gary’s Original Post 

[Editor’s note: Today we’re taking a departure from markets and Apple and BPM vendors, to talk about something purely technical.  Gary has been a contributor to our blog over the last few years, bringing his unique blend of technical and business acumen to the subject]

Multi-part Series:

  1. (this article)  BPM Integration with OSGI: JAX-RS and JPA
  2. JPA OSGi Bundle Delivers (Java) Business Domain Objects
  3. JSON Formatted Business Information through DOSGi (JAX-RS ReST Services)
  4. BPM dojo Widget Consumes JSON/ReST Response

Forward

Why Integrate BPM with OSGI?

… Because it’s one of the best technologies available today for managing SOAP and ReST services:

  1. Very well contained and managed components
  2. Deployments never require a server restart
  3. Strong version control (Websphere also provides a console for on-the-fly version switching between deployments)
  4. Dovetails into Service Component Architecture (SCA)

What this means… basically, is that I worry less when enforcing OSGi technology requirements for BPM integration adapters and resource providers. Additionally, better encapsulation and version control means MORE deployments. And “more deployments” clears the path for agile methodology. Leading both BPM and integration teams towards a perfectly amicable relationship while struggling to keep up with the constantly changing demands of value-driven development.

BPM Integration with OSGi: JAX-RS and JPA

Process and UI implementation examples are from IBM’s BPM. I chose Websphere Server and Rational Application Developer (RAD) because IBM uses Aries Blueprint, openJPA, and SCA. Websphere also nicely encapsulates OSGI deployments from each other to help avoid potential collisions between bundles. And this is an important feature given that I chose to use CXF’s DOSGI as the JAX-RS implementation.

I also have an earlier version of this OSGI demonstration using Websphere Liberty. And, I did manage to get everything working… except for DOSGI (swapping out CXF for Wink). For Wesbsphere Server though… CXF’s DOSGI was just too irresistible a feature to leave behind. I’ll reference both Websphere and Liberty implementations to show the difference.

Platform and tools include:

  • Rational Application Developer – for building and deploying OSGI bundles for Websphere
  • Eclipse (Juno) – for building and deploying OSGi bundles for Websphere Liberty
  • Websphere Application Server – server platform
  • Websphere Liberty – server platform used for demonstrating Eclipse (Juno) tools
  • IBM-BPM – Business Process development and hosting environment

We’ll first start at the ORM/database layer with JPA object mapping before working our way up through JAX-RS.

 

 

Tags: