这个问题不好问。所以我会尽力问清楚。我们已经有一个企业 SOA 套件 10G 系统正在运行。一个小过程,我就这样解释。
Consumer->ESB->BPEL->ESB->Provider Webservice
消费者调用我们的一个 ESB 流程,该流程又将请求转发给 BPEL,BPEL 再次调用另一个 ESB。这个最终的 ESB 调用由我们的提供者提供的外部 WebService。
现在让它更清楚。
Consumer C1--WSDLExt1-->ESB1-->WSDLInt1-->BPEL--WSDLInt1-->ESB2--WSDLExt2-->Provider Webservice
- 为了解释这一点,Consumer 是 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 吗?
总之,我的问题是,增加一个新的操作,会对之前调用它的流程有影响吗?这会导致任何故障吗?