Friday, February 13, 2009

Correlations in Open ESB

Introduction

Consider the usual supply-chain situation where a buyer sends a purchase order to a seller. The seller needs to asynchronously return an acknowledgement for the order, and the acknowledgement must be routed to the correct business process instance at the buyer. How do we guarantee that we are talking to the original instance at buyer side? To solve this, the obvious and standard mechanism in BPEL is Correlations. Correlations use key fields of data which may uniquely identify the conversation/instance. Thus correlations enable processes to participate in the stateful conversations. In the above scenario, it carries a business token in the order message (such as a purchase order number) that is copied into the acknowledgement for correlation. The token can be in the message envelope in a header or in the business document (purchase order) itself. In either case, the exact location and type of the token in the relevant messages is fixed and instance independent. Only the value of the token is instance dependent.

Definition: The idea of associating business-application-specific data found in the messages to maintain references to business process instances is termed BPEL Correlations



As Correlation is the key concept in BPEL and OpenESB is an emerging technology, this Sun BluePrints™ explains how to implement BPEL Correlations in Open ESB. The article addresses the following topics.

  • Overview of Correlations

  • Business Case

  • Implementation in Open ESB

This article assumes that you have basic understanding of Open ESB architecture and BPEL constructs. It also assumes that you are familiar with NetBeans 6.0 IDE.

Overview

As the name states, Correlation is simply associating a message with another message via some identifier. Coming to BPEL Correlations, It allows the business process to be waiting until the correlation message arrives. It is basically used in Asynchronous message exchanges.

Click here to view the complete solution http://ravi-blog.googlegroups.com/web/Correlations_OpenESB_Blueprint.pdf

No comments: