Thursday, April 29, 2010

Why JCA? What's the benefit and cost?

Benefit:
- An application component provider can focus on the development of business and presentation logic for application components and need not get involved in the system-level issues related to EIS integration

- It leads to an easier and faster cycle for the development of scalable, secure, and transactional enterprise applications that require connectivity with multiple EISes.

- The connector architecture reduces the integration effort from an (m * n) problem to an (m + n) problem, where ‘m’ is the number of application servers and ‘n’ the number of EISs to be integrated

- Provides a common programming interface model for interacting with EIS via resource adapters

- standard. Can be deployed to multiple J2EE servers

- better tool support

- easy for the lifecycle management.


- Connection & transaction management and security

Ref:
Oracle® Fusion Middleware Programming Resource Adapters for Oracle WebLogic Server
11g Release 1 (10.3.1)
http://download.oracle.com/docs/cd/E15523_01/web.1111/e13732/toc.htm

new stuff in Oracle 11g Service bus

I have used AquaLogic Service Bus 2.6 before..now it is Oracle 11g Service Bus. This is a note about the new features I noticed:

1) JCA support
Oracle SOA Suite lets you integrate with back-end Enterprise Information Systems (EIS) using J2EE Connector Architecture (JCA) adapters. Using Oracle JDeveloper and other supported JCA development environments, you configure the adapters and create the JCA adapter resources (.jca files and abstract WSDLs) used for the back-end integration.

2) Routing table abstracted from proxy services, that enables modification of routes
without having to re-configure proxy service definitions

3) Identity-based routing, to classify clients into user-defined groups and apply
routing policies based on these groups

4) Database Lookup from Proxy Services
Oracle Service Bus provides a database lookup function using a new XQuery function
in the Oracle XQuery engine. It is implemented using the execute-sql() function to make a JDBC call to a database to perform simple database reads.

5) JEJB transport
The JEJB transport also lets you invoke services through Oracle Service Bus with plain old Java objects (POJOs)

6) Proxy services developed in Oracle Service Bus can be published to a UDDI registry. Service definitions in Oracle Service Bus can be synchronized (both ways) with those in UDDI.

7) Oracle Service Bus provides the ability to deploy new versions of services and allows you to have multiple versions of message resources such as WSDLs and schemas

Add HTTP headers into Axis Web Service Client

From http://markmail.org/message/q37pmtznlbypuhse

...

We created our own handler which is derived from the
org.apache.axis.transport.http.HttpSender.
In this handler we implemented the following:
We overwrote the method invoke and called the handleRequest-Method.
We registered the handler by changing the client-config.wsdd:

from

to


In the stub of the application we set the required header by using the
setProperty of the call-Object.

call.setProperty("PROP_KEY", "some value");

this is the derived handler:

public class MyHTTPHandler extends HTTPSender
{
public void invoke(MessageContext msgContext) throws AxisFault {

handleRequest(msgContext);
super.invoke(msgContext);

}

public boolean handleRequest( MessageContext context )
{

Hashtable headers = ( Hashtable )
context.getProperty( HTTPConstants.REQUEST_HEADERS );
if ( headers == null )
{
headers = new Hashtable();
context.setProperty( HTTPConstants.REQUEST_HEADERS, headers );
}
String value = (String ) context.getProperty( "PROP_KEY" );
headers.put( "MyHeader", value );
return true;
}
}

difference between Esb and aqualogic service bus

--from http://forums.oracle.com/forums/thread.jspa?messageID=4096324 --

Oracle Service Bus (OSB) is the new name for AquaLogic Service Bus (ALSB). Oracle Enterprise Service Bus (ESB) is the 'old' Oracle product.
ESB is currently better integrated with BPEL due to fast path connections between the two (don't use web services if they don't need to) and also uses the same adapter framework.
OSB is more functional than ESB, providing better monitoring and dashboard capabilities. It also allows richer message routing, throttling and message enrichment.
OSB in the next release will have support for the Oracle adapter framework (JCA based). This will give OSB access to the same range of adapter as BPEL and ESB, in addition to its existing adapter set. This will give OSB greater connectivity than BPEL or ESB as the current OSB has better Java and JMS connectivity than the existing Oracle SOA adapters. Certification of individual adapters with OSB may take a while. This release should also have fastpath connectivity support between BPEL and OSB.
In the 11g timeframe expect to see a merging of functions from ESB 11g into OSB, particularly to support the SCA framework.
Hope this clarifies things.
Note the above are based on my understanding and should not be construed as an official Oracle position statement