Jul 30, 2008

BPEL MailBox

Its all about how to utilize emails to make better Business Process.

Use Case :
Case 1> A sends a mail to service@fusion.com
with subject : upload to fusion directory

Case 2> B sends a mail to service@fusion.com
with subject : leave request from 10/10/2008 to 13/10/2008

Case 3> C sends a mail to service@fusion.com
with subject : book conference room conf2

Case 4> D sends a mail to service@fusion.com
with subject : <action code>

In above cases, each request says different actions to do using email subject code.

1> Use same email id for each request.

2> Service should authenticate users.

3> Service should be hot-pluggable (meaning more services can be added later on.)

1> Create one BPEL Process which will be initialised by incoming mail.
The inputvariable should be of type mailMessage.
Refer notification based initialization of BPEL process

Message recieved should be passed to ESB Service as :

2> Create ESB service with input type mailMessage again :
Plug all service to be called as action using routing rules with filter expression.
Filter expression will decide the actionable bpel process.
Note : All BPEL process should be asyncronous with input variable type mailMessage.

There is no need to authenticate...as email server will authenticate you...

Thats all...Now u can hot plug your services to this ESB Mail Box....

Nice IDEA...

Jul 29, 2008

Invoking BPEL from Java

1> Import following libraries to project properties -
a> <jdev_home>/intergration/lib
orabpel.jar, orabpel-common.jar, orabpel-thirdparty.jar
b> <jdev_home>/j2ee/home
c> Add J2EE

2> Create Properties, add following properties in java client
Properties props = new java.util.Properties();
//sets target bpel platform, oracle installation, this will be oc4j_10g
//sets jndi factory class, this is used to locate remote RMI server
//sets target url for target rmi server (oc4j
//sets user name for the remote server
//sets password for the remote server

3> Create message to be post to BPEL process
String ssn = "lalit";
// construct the normalized message
String xml = "<input xmlns=\"http://xmlns.oracle.com/HelloWorld\">" + ssn + "</input>";
NormalizedMessage nm = new NormalizedMessage();
//payload is specific to the process you invoke, it is defined in the WSDL used by your BPEL process
nm.addPart("payload", xml );

4> Call BPEL using orabpel api as
Locator locator = new Locator("<domain name>", "<domain password>", props);

DeliveryService deliveryService = (DeliveryService)locator.lookupService(DeliveryService.SERVICE_NAME);

//Invoking bpel process
NormalizedMessage res = deliveryService.request("<bpel process name>", "<operation name>", nm);

//Since we used request, we can retrieve the return message
Map payload = res.getPayload();

Using Map object you can extract payload.

Jul 26, 2008

Error Directory

Small information, but useful
While dealing with File Adapters, if you translation fails in between then you can find the rejected messages in particular directory. Information about that is specified below.

Oracle BPEL Process Manager: The errored records during translation are placed by default in the following directory:


Oracle Enterprise Service Bus: The errored records during translation are placed by default in the following directory:


Happy learning....

Jul 24, 2008

Match made in Heaven

Oracle's aquisition of BEA is making everybody curious. In this post I am going to highlight some of the key features that we will going to see in future - in SOA arena, after BEA addition to the Oracle family.


1) Oracle has integrated WebLogic into both JDeveloper and the Application Server, replacing OC4J. This will be good for performance and stability.

2) Oracle has announced convergence of Oracle ESB and AquaLogic Service Bus towards Oracle Service Bus (will contain strong points of both ESB and AquaLogic-SB.

3) Now JRockit, the world’s leading VM, will be the standard VM for Oracle.

4) Coherence will be the central component for dehydration. So we get zero latency in the VM and unparallelled performance for the dehydration store.

5) Integration of BPM Studio into the BPA Suite is the another good news. I must say that the Oracle BPA Suite, in conjunction with the Oracle SOA Suite (BPEL PM in particular) is the world’s best-of-breed for process management, design and execution. The added functionality from BPM Studio will create a comprehensive set of tools to support both process architecture, design and execution in a fully supported roundtrip engineering environment.

Jul 23, 2008

Oracle and BEA: The road ahead...

Probably no other news has created waves like the news of Oracle acquiring BEA for $8.5 billion in April has done. In a recent web conference, Oracle president Charles Phillips and Oracle Fusion Middleware Senior Vice President Thomas Kurian covered product plans in the SOA, development tools, identity management and other middleware spaces.

Taking cue from what Oracle had to say, it plans to categorize BEA products into three areas:

  1. Strategic products : These will be adopted immediately with limited re-design into the Oracle Fusion Middleware platform.
  2. Continue and converge products : These are BEA products being incrementally re-designed to integrate with Fusion Middleware. These products will continue to be developed and maintained for at least nine years.
  3. Maintenance products : These are the ones that BEA had put on an end-of-life status and will get continued maintenance for five years.
Kurian has promised that BEA customers will not need to make forced migrations on account of this acquisition. Customers who are already using BEA products will not have much of a haggle in terms of new licensing, and will continue to recieve maintainance support.

Oracle shall move in the direction of using BEA WebLogic server as the OC4J container. Oracle Service Registry will serve as a UDDI-compliant registry to publish and register services.

The Oracle Data Integration product continues as Oracle's entry in data integration and Oracle BPEL Process Manager provides SOA service orchestration. For event processing, BEA's Weblogic Event Server will be merged with Oracle Complex Event Processor.

Oracle also plans to strengthen BEA's Tuxedo transaction processing software. Tuxedo is geared for C, C++, and Cobol applications as well as customers looking to migrate off of mainframes.

In business process management, the Oracle BPA (Business Process Analysis) designer will be converged with BEA Aqualogic BPM Designer on a common BPM and BPEL-compliant metadata model to move information between these two tools.

So far as development tools are concerned, Oracle will continue with JDeveloper as its integrated toolset.

Oracle Technology Network, the developer's resource, will merge with BEA Dev2Dev and BEA Arch2Arch programs for developers and architects to provide homogenous repository of resources.

Oracle AIA (Application Integration Architecture)

Oracle AIA combines the power of Oracle’s Fusion Middleware along with a set of best in class application Enterprise Business Objects and Services.

> Enterprise Business Object (EBO)
A data model consisting of standard business data object definitions and reusable data components representing a business object

> Enterprise Business Services (EBS)
The application independent web service definition for performing a business task.

> SOA Governance
- Business Service Repository
Catalog of the objects, messages, and services that compose the integration scenarios in your Oracle Application
- Composite Application Validation System
Test integration web services without the deployed participating applications in place.
- Composite Application Error Management and Resolution
Route the error back to the correct application and to the right application user.

> Reference Architecture
Comprehensive documentation to assist in integration development.

Jul 22, 2008

WSIF - Web Service Invocation Framework

> It supports a simple Java API for invoking Web services, no matter how or where the services are provided.

> The WSIF API allows clients to invoke services focusing on the abstract service description-the portion of WSDL that covers the port types, operations and message exchanges without referring to real protocols.

> The abstract invocations work because they are backed up by protocol-specific pieces of code called providers.

> The decoupling of the abstract invocation from the real provider that does the work results in a flexible programming model that allows dynamic invocation, late binding, clients being unaware of large scale changes to services - such as service migration, change of protocols,etc.

> WSIF also allows new providers to be registered dynamically, so you could enhance your client's capability without ever having to recompile its code or redeploy it.

J2EE Connector architecture

The J2EE Connector architecture defines a standard architecture for connecting the J2EE platform to heterogeneous EIS systems. Examples of EIS systems include ERP, mainframe transaction processing, database systems, and legacy applications not written in the Java programming language. By defining a a set of scalable, secure, and transactional mechanisms, the J2EE Connector architecture enables the integration of EISs with application servers and enterprise applications.

The J2EE Connector architecture enables an EIS vendor to provide a standard resource adapter for its EIS. The resource adapter plugs into an application server, providing connectivity between the EIS, the application server, and the enterprise application. If an application server vendor has extended its system to support the J2EE Connector architecture, it is assured of seamless connectivity to multiple EISs. An EIS vendor needs to provide just one standard resource adapter which has the capability to plug in to any application server that supports the J2EE Connector architecture.

Multiple resource adapters (that is, one resource adapter per type of EIS) are pluggable into an application server. This capability enables application components deployed on the application server to access the underlying EIS systems.

JMS Queue vs Topic

JMS Queue

> A staging area that contains messages that have been sent and are waiting to be read. As the name queue suggests, the messages are delivered in the order sent. A message is removed from the queue once it has been read.

> point-to-point

> Only one consumer will get the message

> The producer does not have to be running at the time the consumer consumes the message, nor does the consumer need to be running at the time the message is sent

> Every message successfully processed is acknowledged by the consumer

JMS Topic

> A distribution mechanism for publishing messages that are delivered to multiple subscribers

> Multiple consumers can get the message

> There is a timing dependency between publishers and subscribers. The publisher has to create a subscription in order for clients to be able to subscribe. The subscriber has to remain continuously active to receive messages, unless it has established a durable subscription. In that case, messages published while the subscriber is not connected will be redistributed whenever it reconnects.

Creating users for Human Workflow

Following steps to create users in Human Workflow -
1> Open file <soa_home>/bpel/system/services/config/users-properties.xml
add user as

2> Go to Administration control for hw_services in Oracle Application Server Control
Click on Security provider

3> Create user -

Thats all...

Jul 21, 2008

Notification based initialization of BPEL Process

Follow following steps to initiate BPEL Process using Email notification :
1> Create async bpel process with inputvariable type : mailMessage

2> add MyAccount.xml to location :

3> Contents of MyAccount.xml

4> add activation agents to bpel.xml after partnerLinkBindings

5> Deploy project

Jul 18, 2008

orabpel schema getting locked

If you have changed the password of orabpel schema, didnt made corresponding changes in Oracle Application Server,
then Oracle Application server locks your orabpel schema.

You need to have system user to unlock orabpel in Oracle Database.

So to prevent your schema from locking, make sure to change passwords on both sides.

Jul 17, 2008

Service Oriented Architecture

When we talk about SOA - Service Oriented Architecture, means everything is revolving around services. To whom am I talking, is a service. When we come in to open standards, the word service becomes a Web Service. Means we are converting our piece of code into a Web service. So that it provides a flexibility, adaptibility, loose coupling. That is why in big organizations when ERP talks to ERP, there comes into picture SOA.
So that business should flow without any loss of revenue.

Key Principles -
> Standards – Compliance to both common and industry specific standards is required for interoperability between heterogeneous applications.

> Abstraction – Reusable, modular coarse-grained business services provide rapid composite application development and easier maintenance.

> Loosely coupled – Minimal dependencies with other applications offer durability and agility.

So Make more profit using SOA