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 Service and Web-client Consumers for JSON over ReST


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.

Next: JPA OSGi Bundle Delivers (Java) Business Domain Objects