What should people do when they need to orchestrate standard Java code as well as components like EJB, JCA and JMS, in addition to XML Web services?
We are indeed living in a heterogeneous IT system environment where some systems will be wrapped as Web services but other systems will be exposed through JMS, JCA and even Java/EJBs. For example, transactional systems such as CICS often sport a message queueing middleware (such as IBM MQ) as front end, which provides a JMS interface.
You have 2 options to solve this problem:
Option #1: Wrap your existing JMS, Java, EJBs as Web services. With this approach, all your building blocks have a canonical view and share the same security and transaction semantics. This approach normally requires additional data transformation and often calls for evaluation of the added performance load.
Option #2: Use an orchestration solution that has support not only for Web services but also for messaging and adaptor standards such as JMS and JCA. For example, IBM supports an interesting SOAP Java binding through its WSIF that projects all Java components as Web services. Collaxa's BPEL Scenario has also native support for Java, JCA and JMS in addition to synchronous and asynchronous Web services.