关于SOA目的意义,IBM如是说:
SOA的根本目的是业务的敏捷性,如何理解敏捷性呢,是从两个方面来理解的,一是IT在业务提出变化之后的一个恰当的时间段里响应这种变化;二是IT所做出的变化能够恰当的反映出业务的需求。
微软如是说:
The architectural concepts associated with SOA enable loose coupling. Loose coupling is the fundamental principle behind SOA, enabling us to summarize up the benefit of SOA in a single word: agility .
王文京如是说:
(用友软件董事长)
对当今企业来说,快速反应和快速变化越来越变成成功的关键因素,“灵活性”越来越成为CIO和企业用户需要从IT系统那里得到的最重要的东西。把企业内部和外部的流程、人员、信息实时连接起来,灵活快速的响应变化,是企业信息化的关键目标,而SOA(面向服务架构)正是帮助企业实现这一目标的IT架构和方法。
灵活性,或者称为敏捷性、Agility等,成为了SOA最核心的目的和最根本的推动力,这是由当前全球化浪潮和业务竞争本质所决定的。
正如Thomas Erl在《SOA概念、技术与设计》中所说:
用最小的付出获得最大的收益,这是竞争性业务对公司策略目标的要求,持续浪费资源的低效组织将会落后。组织的业务自动化方式是决定其运营效率的根本因素,从而也是对其敢于冒险的奖励。
这就是SOA
的价值所在。通过面向服务形成自动业务逻辑,能够保护现有投资,有助于智能化表达业务,进而表现其内在的自动敏捷性。当与Web
服务技术平台联合时,SOA
提供了一个重要的潜在现实效益,从而改变组织的技术与发展前景。
除了灵活性之外,
SOA还能够为企业带来如下切实效益:
1、 改进的架构和方案。
2、 建立标准的XML数据表示。
3、 聚焦通信基础设施投资。
4、 改良的集成(及内在的互操作性)。
5、 内在的复用。
6、 保护现有投资和遗留资产。
7、 “最优供给”可替代。
面向服务的价值(摘自WCF编程一书)
由于客户端与服务之间的交互是基于行业标准的,这个行业标准包括了保障调用安全的方式、传播事务流的方式以及管理可靠性的方式等等。我们也可以使用现有的这些公共基础功能的实现。这就保证了应用程序的可维护性,因为应用程序与准确性无关。即使公共基础功能发生演化,应用程序也不会受到影响。面向服务的应用程序是健壮的,因为开发者能够使用可用的、已验证的、通过测试的公共基础功能。同时也提高了开发者的效率,因为他们可以将更多的时间投入到功能特性的实现,而不是这些公共基础功能。面向服务的真正价值就是:允许开发者从代码中抽取出公共基础功能的实现,更多地关注业务逻辑和需要的功能特性。
面向服务还包括许多广受欢迎的价值,例如跨技术的互操作性,就是核心价值的体现。虽然不借助于服务,我们也能够实现互操作性,但直到面向服务的诞生,才能够应用到实践中。两者的区别在于后者能够通过已有的公共基础功能为开发者提供互操作性。编写服务时,通常不用考虑客户端执行在什么平台上,因为面向服务完全实现了无缝的互操作性。面向服务应用程序所能提供的不仅仅是互操作性,它还允许系统跨越边界。其中一种边界就是技术与平台的边界,跨越这样的边界则完全体现了互操作性。但是,边界可能还存在于客户端与服务之间,例如安全与信任边界、地域边界、组织边界、时区边界、事务边界,甚至是业务模型边界。无缝地跨越这些边界是可能的,原因在于基于消息的交互标准。例如,保障消息安全的标准,建立客户端与服务安全交互的标准,即使交互双方存在于不具有直接信赖关系的域(或站点)中。事务标准允许客户端的事务管理器将事务传递到服务端的事务管理器,并让服务参与到事务中,即使两个事务管理器从来没有直接登记彼此的事务。