4

This question is not easy to ask. So I will try my best to ask in a clear way. We have an Enterprise SOA Suite 10G system already running in place. A small process, I will explain in this way.

Consumer->ESB->BPEL->ESB->Provider Webservice

A consumer calls one of our ESB process, which in turn forwrds the request to BPEL, which again calls another ESB. This final ESB calls an external WebService which is supplied by our provider.

Now to make it even clearer.

Consumer C1--WSDLExt1-->ESB1-->WSDLInt1-->BPEL--WSDLInt1-->ESB2--WSDLExt2-->Provider Webservice

  • To explain this, Consumer is C1, and our first ESB is ESB1. The WSDL used between them is WSDLExt1.
  • ESB1, after transformation forwards the request to BPEL. BPEL then forwards the request to ESB2. As ESB2 and BPEL use the same WSDLInt1, there is no transformation in BPEL
  • ESB2 then transforms the request and sends it to Provider Webservice. The WSDL used between ESB2 and Provider Webservice is WSDLExt2.

Now here comes the question. Now due to a strange new requirement, we have to add a new operation in WSDLExt2. NOTE: Only a new operation. But here comes the twist. 1. Suppose, for a new operation, I define new mesages. 2. Or I continue using already existing(defined) messages in the WSDL for this new operation.

In each situation, will I need to modify WSDLInt1 and in turn, modify BPEL?

In short, my question is, will the addition of a new operation, have effects on the previous process that call it? Will this result in any fault?

1 Answers1

1

One of the roles/advantages of ESB is to shield e.g. BPEL from such changes. ESB works as a proxy here, the message routing/mediation that happens with the BPEL invocation inside the ESB is not visible to BPEL.

Therefore, the change in WSDLExt2 is not going to affect BPEL as long as you do not touch the WSDLInt1 definitions (and its datatypes, etc).

If your are not going to use this new operation by BPEL, then you do not need to modify BPEL nor WSDLInt1.

The case when one of the operations in WSDLInt1, which is Proxied by ESB, is going to invoke also the WSDLExt2, this can all be handled at the ESB level internally, and can be done transparently so that BPEL does not notice any change. In the ESB terminology, this can be referred to as Translation and Transformation/Protocol conversion/Service Orchestration.

Aleš
  • 8,896
  • 8
  • 62
  • 107