即使应用程序架构是单块式的,也可以将基于应用程序的新产品快速地推向市场。然而困难之处在于这样做的同时还要将服务质量维持在客户期望的水平。组件之间紧密耦合的应用程序往往很脆弱,您很难做到改变其中一部分而不破坏其他部分。由于 SOA 具有高度抽象的特点,它让服务消费程序的开发人员不必关心底层系统和数据结构,对服务提供端的改变不会影响服务消费程序。您可以改变数据库模式,改变程序的语言,改变服务器平台 — 这都不会改变服务消费程序中的东西。
SOA 还通过数据自治提高了质量。原子级服务被组合成服务 “节点”,每个服务组都有自己的一组数据库表(如果应用程序使用一个数据库 — 注意,“属于” 不同服务节点的表只能是逻辑上分开的,它们实际上还是在一个物理数据库中。)规则如下:如果要访问属于服务组 ABC 的一个表中的数据,那么只能通过服务组 ABC 中的某个服务来访问它。有了这种方法,当数据库模式发生变化时,需要修改的程序就会少一些。
成本效益。是的,SOA 可以增加服务器利用率,但是它还为将不同的应用程序服务平台与数据服务平台有效地组合起来交付服务提供了便利,这使得企业可以真正使用正确(价格适宜)的工具来做正确的事情。在此基础上,服务器硬件和软件的购买成本只是与企业应用程序相关的花费的一部分。另外还有代码维护和升级成本,作为 SOA 一个关键方面的技术抽象确实有积极的影响。