Over a million developers have joined DZone.

XML/RPC driver as JCA Scala connector

DZone's Guide to

XML/RPC driver as JCA Scala connector

· Java Zone
Free Resource

Navigate the Maze of the End-User Experience and pick up this APM Essential guide, brought to you in partnership with CA Technologies

Interoperability and reusability are key features of SOA architecture.  

The Java EE Connector architecture defines a standard architecture for connecting the Java EE platform to heterogeneous EISs. This article presents an XML/RPC  adapter using a Scala JCA outbound connector to an IN/AIR legacy system.

JCA and integration

"For enterprise application integration, bi-directional connectivity between enterprise applications and EIS is essential. The Java EE Connector architecture defines standard contracts that allow bi-directional connectivity between enterprise applications and EISs. It also formalizes the relationships, interactions, and the packaging of the integration layer, thus enabling enterprise application integration." 
JCA 1.6 p 35

The connector architecture defines a set of scalable, secure, and transactional mechanisms that enable the integration of EISs with application servers and enterprise application.

 ESB and JCA
Using a UCIP JCA connector rather than using an XML/RPC raw driver lets you:

  1. Hide connection complexity.
  2. Use connection pooling and scalability.
  3. Use a standard adapter that can be deployed with any JEE 6 server from an m x n integration problem to an m + n solution


The use of a JCA resource adapter inside a JEE solution is the same as interacting with a database or queue: protocol communication and wire negotiation... are hidden to the final user.  

Two interfaces are presented to a customer:

1) A factory trait:

trait AirConnectorFactory extends Referenceable with Function0[AirConnector] 
2) The connector trait:
trait AirConnector {
   def fire(elem : Elem) : Option[Elem]
As an outbound communication where the resource adapter allows an ESB or EE application server to connect to an IN/AIR node and perform work. All communication is initiated by the application. The Air connector factory should be injected as any resource and used like the following.
var airConnectorFactory : AirConnectorFactory = _

val output = airConnectorFactory().fire(input)

Thrive in the application economy with an APM model that is strategic. Be E.P.I.C. with CA APM.  Brought to you in partnership with CA Technologies.


Opinions expressed by DZone contributors are their own.


Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.


{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}