早在2002年Gartner就预测,到2008年,SOA将成为占有绝对优势的软件工程实践方法,它将结束传统的整体软件体系架构长达40年的统治地位,届时,将有70%的企业在进行企业IT建设时会转向SOA。从技术上讲,SOA并不是一个新概念,早在20世纪90年代中期,Gartner就提出了SOA的概念,但当时的软件技术发展和信息化水平还不足以使它走入实用阶段。进入21世纪,随着Web服务等相关标准的出现和成熟,SOA开始从概念走向实用。
SOA不是某个产品,也不是某个技术,而是一种软件设计架构和方法。SOA要求开发者从服务集成的角度来设计应用软件,它将应用程序的不同功能组件定义为“服务”,通过“服务”之间的良好接口联系起来。(也就是“服务”之间的松耦合。)接口是采用中立方式进行定义的,独立于实现“服务”的硬件平台、操作系统和编成语言。而且这些构建在各种各样系统中的“服务”可以以一种统一和通用方式进行交互。保证系统灵活性,另外,还可以保证“服务”的重复利用。
由此可以看出,SOA的核心概念是“重用”和“互操作”,从而使企业的IT系统拥有极大的灵活性。SOA的另一层意义就是整合,它将企业的IT资源整合成标准的、可操作的服务,使其能被重新组合和应用。在这种架构下,IT系统的复杂性并没有增加,相反,随着系统的不断完善,整个系统的架构将变得更加清晰。
现在随着网络技术的发展,企业在信息化建设中产生了大量为满足产品或服务需要的软件系统,如:ERP、CRM、OA、SCM等一系列IT软件系统。但这些系统一般都是单独实施、独立存在的,由于数据标准不统一,接口不一致,系统间往往缺少联系与合作,这也就导致了一个系统成为一个“孤岛”。而基于SOA的理念,则使企业在需要改变IT系统时的灵活性大为增加。
SOA架构定义了搭建企业软件架构的一种新方法,它的出现使所有应用在交换数据和处理过程中,不需要考虑应用软件是用什么编程语言开发的或在什么操作系统下运行。在这种模式下,一个应用或应用的一部分其实是一种服务,其他的应用和客户都可以在无需编写大量代码的情况下使用这些服务,这一切都使一些大企业或在地理上分布范围比较广的开发队伍能够更好地合作,因为这些SOA架构下的中间件业务模块都能够被重新配置或以新方式优化来满足新的需求。正是SOA的重用性和互操作性所带来的灵活性实现了企业IT资源整合,使企业IT资源真正面向于服务。
SOA作为一种概念虽然已经成熟,并得到了国内外主流软件开发商和企业客户的认可,目前主流软件厂商均已经完成了基于SOA的改造,但在客户端大规模的应用还有许多事情要做。首先,它包括一系列技术和规范,面临诸多挑战,尤其在项目开发初始,付出的代价要比传统软件项目大得多。其次,实现SOA的Web服务技术尚不成熟,标准还处在发展之中。目前,很多企业对于SOA的认识还仅限于一种“整合”IT技术的概念,人们对于SOA认识的误区还有很多。