当前位置 : 主页 > 大数据 > 区块链 >

BPEL-ESB链接中断了WSDL中的新操作?

来源:互联网 收集:自由互联 发布时间:2021-06-22
这个问题不容易问.所以我会尽力以明确的方式提问. 我们已经在运行企业SOA套件10G系统. 一个小小的过程,我将以这种方式解释. Consumer- ESB- BPEL- ESB- Provider Webservice 消费者调用我们的ESB进
这个问题不容易问.所以我会尽力以明确的方式提问.
我们已经在运行企业SOA套件10G系统.
一个小小的过程,我将以这种方式解释.

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

消费者调用我们的ESB进程之一,然后将该请求转发给BPEL,BPEL再次调用另一个ESB.最终的ESB调用由我们的提供者提供的外部WebService.

现在让它更清晰.

消费者C1 – WSDLExt1 – > ESB1 – > WSDLInt1 – > BPEL – WSDLInt1 – > ESB2 – WSDLExt2 – >提供者Web服务

>为了解释这一点,消费者是C1,我们的第一个ESB是ESB1.它们之间使用的WSDL是WSDLExt1.
> ESB1,转换后将请求转发给BPEL.然后,BPEL将请求转发给ESB2.由于ESB2和BPEL使用相同的WSDLInt1,因此BPEL中没有转换
> ESB2然后转换请求并将其发送到Provider Webservice. ESB2和Provider Webservice之间使用的WSDL是WSDLExt2.

现在问题来了.
现在由于一个奇怪的新要求,我们必须在WSDLExt2中添加一个新操作.注意:只有新操作.但这就是扭曲.
1.假设,对于新操作,我定义了新的消息.
2.或者我继续在WSDL中使用已存在的(已定义的)消息来执行此新操作.

在每种情况下,我是否需要修改WSDLInt1,然后修改BPEL?

总之,我的问题是,是否会增加一个新的操作,对之前的进程有什么影响呢?这会导致任何错误吗?

ESB的一个角色/优点是屏蔽例如BPEL来自这种变化. ESB在此处充当代理,BPEL内部的BPEL调用发生的消息路由/中介对BPEL不可见.

因此,只要不触及WSDLInt1定义(及其数据类型等),WSDLExt2中的更改就不会影响BPEL.

如果您不打算通过BPEL使用此新操作,则无需修改BPEL或WSDLInt1.

当WSDLInt1中的一个操作(由ESB代理)也要调用WSDLExt2时,这可以在内部处理ESB级别,并且可以透明地完成,以便BPEL不会注意到任何更改.在ESB术语中,这可以称为翻译和转换/协议转换/服务编排.

网友评论