1. 为什么不同的人对SOA有不同的解释?

SOA 的定义取决于你在组织业务中的角色。

对于业务执行人员,SOA创建了企业希望向其客户和合作伙伴或组织的其他部分公开的一组服务。对于IT架构师,SOA是一种体系结构样式,此样式至少需要有服务提供者、请求者和服务描述。对于程序员,SOA是一个由标准、工具和Web服务等技术加以补充的编程模型。

当然,企业信息技术系统及流程管理人员之所以存在似是而非的SOA概念,还可能因为软件厂商没有向企业用户解释清楚SOA的含义。比如,SOA中的服务(Service)并非我们理解的传统企业服务,而是软件开发的专业用语,指技术层面的、细颗粒度的功能模块,还远未达到与企业业务流程直接对应的程度。软件厂商在强调SOA给企业带来巨大商业价值的同时,并没有具体阐释这一点。

  2. 业务流程管理(BPM)和SOA是何关系?

BPM与SOA既可以单独部署,也可以组合使用。

如果企业的IT系统比较简单,企业规模比较小,用同样的一组IT人员就可以控制所有IT系统,那么,部署一个不使用SOA的BPM套件,就可以获得快速创建、执行和监控/管理业务流程的能力,而不必部署SOA。但是,如果BPM套件由一个IT小组部署,而同时使用来自另一个IT小组的系统服务,那么SOA就可以帮上忙了。

如果企业的IT系统足够复杂,可以考虑将BPM和SOA组合使用,通常在SOA上实施BPM解决方案可以获得更大的业务灵活性。如果BPM项目达到一定的范围和规模时效果才能显现,最好先开发出BPM,而将SOA组件留待以后考虑。

最好一开始就让业务流程团队和IT架构团队保持持续良好沟通,针对未来进行可行性规划。例如,BPM套件本身应该能够提供丰富的连通性,以便无需全面应用完善的SOA来使得BPM运行,不要让BPM与SOA成为互不连通的两套系统。