当设计系统或开发模块时,将中间模块置于某个模块和它正在调用的外部服务之间,有时会获得一些好处。如果您正在使用 SCA 绑定,则只能使用此处描述的方法。
使用中间模块的一个好处是:可在不中断的情况下更改应用程序调用的外部服务或应用程序。此示例使用 Web service 导入来说明该概念。
下面的第一个图显示了具有导入的模块 A 通过直接连接来调用远程服务。如果想让模块 A 调用其他远程服务,则需要更新逻辑。还需要停止旧版本的模块并从服务器中卸载它。然后,您才可以安装并启动新版本的模块。在此过程期间,模块 A 的服务会中断。
如果在应用程序中使用中间模块并将它连接至具有 SCA 绑定的模块 A,您将拥有更大灵活性。下图显示了该配置。模块 A 具有的导入连接至中间模块或调解模块(模块 B)的导出。这些模块均必须拥有匹配接口。在本主题所描述的场景中,它们必须具有 SCA 绑定。模块 B 调用服务。模块 B 是外观模块;模块 A 包含真正的业务逻辑。
该图还显示了另一个服务:远程 Web service 2。为了准备使用该服务,已构建模块 C 及其 Web service 导入且已使用 WebSphere 测试环境进行测试。
当准备就绪可部署新模块时,您可以使用 WebSphere Process Server 管理控制台,将模块 A 中的 SCA 导入从旧的目标模块(模块 B)指向新模块(模块 C)中的 SCA 导出,从而无缝转换至已更新的服务。下图显示了新的部署。此方法允许您更新应用程序而不会引起服务中断。
以上模式还可以用于外部导出。例如,模块可通过 Web service 导出来提供服务。通常,如果需要更新模块的逻辑,则会导致服务中断。但是,如果将外观模块用于 Web service 导出,则可在不中断服务的情况下更新业务逻辑。
此设计原理在 WebSphere Process Server 的文档中作了更为详细的说明;请参阅隔离模块和目标以及更改目标的指示信息。