Link BPEL-ESB to new operation in WSDL?

This question is not easy to ask. Therefore, I will try to do everything to ask more clearly. We already have Enterprise SOA Suite 10G. A small process, I will explain in this way.

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

The user invokes one of our ESB processes, which in turn invokes a BPEL request, which again invokes another ESB. This last ESB calls an external WebService, which is provided by our provider.

Now let's make it even more understandable.

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

  • To explain this, the consumer is C1, and our first ESB is ESB1. The WSDL used between them is WSDLExt1.
  • ESB1, after conversion, sends a BPEL request. BPEL then redirects the request to ESB2. Since ESB2 and BPEL use the same WSDLInt1, there is no conversion to BPEL
  • ESB2 then converts the request and sends it to the Provider Webservice. The WSDL used between ESB2 and the Provider Webservice is WSDLExt2.

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

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

In short, my question is, will adding a new operation affect the previous process called? Will this lead to any error?

+4
source share
1 answer

One of the roles / benefits of an ESB is to protect, for example, BPEL from such changes. The ESB acts as a proxy here, the message routing / mediation that occurs with the BPEL call inside the ESB is not visible to the BPEL.

Therefore, changing WSDLExt2 will not affect BPEL unless you are defining WSDLInt1 definitions (and its data types, etc.).

If you are not going to use this new BPEL operation, you do not need to modify BPEL or WSDLInt1 .

The case when one of the operations in WSDLInt1 , which is the ESB Proxy, will also call WSDLExt2 , all this can be processed at the ESB level inside, and can be done transparently so that BPEL does not notice any changes. In ESB terminology, this can be called Translation and Conversion / Protocol Conversion / Service Spelling .

+1
source

Source: https://habr.com/ru/post/1447476/


All Articles