与面向对象的技术架构不同,SOA架构所需要的服务模块可以分布在更为广泛的分布环境中,而不必像面向对象技术架构那样,需要使用大块的可重用去构建一个全新的系统。通过合理的部署,SOA系统可以改善原有的IT系统效率,使得原有的那些应用系统更具有柔性。
SOA架构的革命性思路是在传统的业务层和技术层之间增加一个服务层,服务层通过一套协议或规范把应用程序从底层技术层调出来,加以封装,再根据业务层需求灵活组合。
服务层不依附于任何特定技术平台,能够在业务层和技术层之间沟通、组合,业务应用系统就变成了"松耦合结构",想用什么功能就调用什么功能,需要什么功能就装配什么功能,改动调整非常方便。而且这些构建在各种各样系统中的"服务"可以以一种统一和通用方式进行交互。保证系统灵活性,另外,还可以保证"服务"的重复利用。
SOA让二次开发成本降低为零
在笔者参与的项目中,有一个架构设计小组和两个开发小组,其中一个开发小组主要开发面向客户的应用服务,另一个开发小组主要开发核心系统服务。经过一段时间的工作,我们发现那些在业务流程中最基本最通用的功能是可以抽取出来,使用SOA架构进行重构。并且,系统的开发部署时间以及系统的性能这两个检验系统是否成功的两个关键标准都得到极大的改善。
①SOA降低成本。我们成功构建了一个通用的服务功能模块,在下一次开发时,我们可以直接调用这一功能模块。从这个意义上讲,第二次开发时的开发成本为零。
②SOA架构使管理统一。对于SOA系统而言,要想成功实施一个系统,必须从企业整体来通盘考虑,成立专门的架构设计小组,确定整个企业业务流程运作的最佳路径。这样整个业务流程及信息系统的管理将会实现统一管理,改变过去各部门、各业务环节脱节的现象。
③SOA架构从一开始就显示出ROI(投资回报率),因为SOA反对四处出击,是按成本受益顺序确定服务开发的优先级。通过仔细的规划,启动成本就能限制在现有预算内。经过一段时间后,服务模块的重用会确保以后每个新业务应用程序的启动成本很低。在实施开始时设置好基线,确保可测量性,避免临时修路的效果。