I have a design scenario wherein there are two separate web services (WS1 and WS2). Both these web services have business scenarios wherein they need to be consumed as silos. There is a new business scenario wherein I have to integrate the output of WS1 and pass it as an input to WS2.
I want to keep the web services as is and don't want to make changes to their structure or inner workings. I want to create some sort of a wrapper on top of these web services where in the incoming request hit this wrapper layer and then coordinates the task of integrating WS1 and WS2.
The client told me they have an ESB in place. Is the ESB the right candidate for such type of an integration task or if you know about better ideas please suggest.
Basically, you need an application that will properly respond to the incoming request.
You can call this an "application", you can call it a "component", you can call it a "wrapper layer", you can call it a "composite service", whatever. What you call it really does not mean anything.
The application will execute web service 1 and pass the returned results to web service 2. There is no need to alter the mechanisms of either service for this.
In terms of an enterprise service bus (ESB), there are many different implementations for each ESB product. Typically, an ESB is for efficiently locating and managing services only. A business process server is the tool that will integrate business services, not an ESB. You need to evaluate the client's particular ESB product to see if it can satisfy your requirements without developing an application.
If I had to make a bet, I would say that you will need to develop a new application for this business logic, and that it is not possible with their ESB product. See if they have a business process server in action. Also check out the Business Process Modelling Language (BPML) for more insight on how to efficently integrate services.
The ESB at the client place is Oracle ESB which I understand is the same as the recently acquired BEA Aqua Logic Service Bus.
The client currently does not have a BPEL or Process Server capabilities.
Say If i have to design a composite service component in java (or any other better way) which coordinates the below mentioned 2 web services and then call that composite service component from the Oracle ESB.
What are the best practices for designing this composite service component in the absence of OOTB utilities like BPEL or Process server.