这个问题不容易问。因此,我会尽我所能清楚地提出要求。我们已经有了一个Enterprise 10G系统。一个小小的过程,我会用这种方式来解释。
使用者->ESB->BPEL->ESB->提供者Webservice
使用者调用我们的ESB流程之一,而ESB流程又将请求提交给BPEL,BPEL再次调用另一个ESB。最后一个ESB调用由我们的提供者提供的外部WebService。
现在让它变得更清楚。
消费者C1--WSDLExt1-->ESB1-->WSDLInt1-->BPEL--WSDLInt1-->ESB2--WSDLExt2-->Provider网络服务
现在问题来了。现在,由于一个奇怪的新需求,我们不得不在WSDLExt2中添加一个新的操作。注意:只有一个新的操作。但扭转来了。1.假设,对于一个新的操作,我定义了新的模型。2.或者我继续使用WSDL中已经存在(定义)的消息来执行这个新操作。
在每种情况下,我是否需要修改WSDLInt1,进而修改BPEL?
简而言之,我的问题是,增加一个新的操作,会不会对以前的进程产生影响?这会导致任何错误吗?
发布于 2012-12-13 00:45:16
ESB的角色/优点之一是保护(例如BPEL )不受此类更改的影响。ESB作为代理在这里工作,在ESB中的BPEL调用中发生的消息路由/中介对BPEL来说是不可见的。
因此,只要您不触及WSDLExt2定义(及其数据类型等),WSDLInt1中的更改就不会影响BPEL。
如果您不打算通过BPEL使用这个新操作,那么您就不需要修改BPEL或WSDLInt1。
当由ESB代理的WSDLInt1中的一个操作也将调用WSDLExt2时,所有这些操作都可以在ESB级别内部处理,并且可以透明地执行,这样BPEL就不会注意到任何更改。在ESB术语中,这可以称为转换和转换/协议转换/服务编排。
https://stackoverflow.com/questions/13493428
复制相似问题