在关于企业级面向服务的体系结构 (SOA) 系列我的第一篇文章,“使用多重 SOA 来消除企业系统之间的差异”(参阅参考资料)中,通过说明如何重用一个或多个 SOA 中的 Web 服务(以数据为中心 (data-centric) 和业务逻辑),然后将他们联合到一个受组织控制的组合应用程序中,讨论了使用 SOA 缩小企业系统差异的方案。
当 Web 服务不受组织所控制时,需要确保它们在外部可以彼此互操作,来共享语义和契约职责。语义的误解(例如所有权)和契约漏洞(例如多平台间的区别)会影响外部企业 Web 服务之间的互操作性问题。
在本文中,我展示了四个实现制造资源规划 (Manufacturing Resource Planning,MRP) 和客户关系管理 (Customer Relationship Management,CRM) 服务的实例,如下所示:
企业以前的应用程序
到外部 Web 服务的动态链接
请求外部 Web 服务的 REpresentational State Transfer/Simple Object Access Protocol (REST/SOAP) 共存
使用 IBM?WebSphere? Application Server 和 Microsoft? Visual Studio .Net 的 Web 服务互操作性
考虑各种交易时,确定系统可以负载的可互操作的 SOA 的数量非常重要,这样可以避免 SOA 过载。
企业以前的应用程序
假设企业以前的应用程序(参见图 1)被分成业务流程的模块化组件。该应用程序的两个重要组件(MRP 和 CRM)要求不断发生变化且重新编译长期运行的应用程序。
图 1. 企业以前的应用程序