BPM Integration with OSGi: JAX-RS and JPA

[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]

Forward

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

Very well contained and managed components

Deployments never require a server restart

Strong version control (Websphere also provides a console for on-the-fly version switching between deployments)

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