从集成的角度看,传统的应用是“竖井”(Silo)型的,每个应用独立运行,所运
行的 IT 环境也是异构的,难以进行互通。SOA 则可以方便地进行应用的集成,
可以在保持各个系统的独立性的同时使其相互之间有效地集成起来。SOA 特别
适合于跨越多个系统的、异构环境中的集成,当企业中各个不同的应用是独立
进行开发和维护,各自采用不同的环境和编程模型时,SOA 可以为其集成提供
便捷的机制。比如在企业之间或内部进行并购(mergers and acquisitions)时,需要
对已有的系统进行整合,这些系统可能是运行于不同的平台、采用不同的语言
开发的,而 SOA 则正擅长于异构系统的集成,可以简化并购时的集成工作。因
此,很多 SOA 项目会由企业并购而提出来。所以,如果企业的业务模式是通过
兼并和收购来扩大市场份额,SOA 可以为兼并后的企业的业务整合提供便利。
此外,当企业中多种应用之间的通过点对点进行集成时成本不断增长,集成所
带来的投资回报(ROI)不足以缓解这种增长,则可以通过 SOA 降低集成的成
本。通过估算老的集成方式的成本以及使用 SOA 消息机制进行集成的成本可以
计算出 ROI。如果企业的业务需要依赖业务合作伙伴提供非核心业务功能,通
过 SOA 可以将业务伙伴的功能方便地集成到自己的业务流程,并能与业务伙伴
进行高效率的协作。当企业中的数据分布在各个不同的地点和部门,SOA 可以
使得数据和使用数据的应用靠近在一起,而不是相距很远,然后通过将应用封
装为服务来提供给别的系统访问。
对于以上问题,SOA 能够很好地加以解决,因此,当企业面临这些问题时,
应该考虑采纳 SOA。
反过来,如果企业中集成活动的预算很少,或者系统数量很少,没有集成的
需求,或者已有的系统都是使用同一种平台与技术开发的,则 SOA 的优势就很
难得到体现。SOA 适用于较为复杂的 IT 架构,尤其是经常需要与外部复杂的
IT 环境交互,并且需要快速地应对频繁发生的业务变化的场合。如果企业的 IT
环境规模很小,足以灵活地应对变化,不需要与其他的异构 IT 环境频繁交互,
那么 SOA 带来的好处就不足以抵消它给你带来的系统复杂性。不过,即使你的
内部 IT 架构本身并不是基于 SOA 的,还是可以将某个业务以服务的形式发布
到某个外部 SOA 平台上供别人使用,作为第三方 SOA 平台的一个服务提供者
(Service Provider)存在。
此外,SOA 中的流程是自动执行的,如果当前的流程大部分是手工的或以文
档为中心的,则不适合。另外,由于 SOA 采用异步通信、松耦合,在实时性方
面是弱项,因此如果企业的主要业务涉及海量的事务处理,且这些事务对同步
性和实时性要求非常高,则 SOA 也不适合。比如汽车中的嵌入式系统常需要毫
秒级的响应速度,响应慢了将影响驾车安全,这类系统就不适合使用 SOA。
SOA 评估
SOA 治理团体在实施 SOA 时,第一步应该进行 SOA 准备情况和风险评估,
判断企业是否适合 SOA。在评估时可以通过 SOA 评估框架给出的评估标准和