SOA是Service Oriented Architecture的简称,中文译为“面向服务的体系架构”。与传统技术相比,SOA从业务着眼,基于标准化的技术手段,以“服务”为基本元素来构建或整合适合于各行业应用需求的信息系统,提高信息系统的开发效率、充分整合和复用IT资源、并使信息系统能灵活快速的响应业务变化需求。
从技术的角度来看,SOA对软件开发的影响是深远的一方面SOA在继承传统的面向对象和组件化(构件化)编程思想的同时,更加强调了软件作为商业资产的可复用、可集成能力,其中软件(组件)的开放性和标准化是SOA的基石,它消除了软件(组件)之间交流和衔接的障碍,是软件实现“积木式”灵活装配的基础,同时,SOA强调了服务的治理,其实是为软件(组件)制定了一个价值衡量标准(或服务分割标准),用以界定软件(组件)的服务价值,这是软件(组件)可复用、按需组装的价值基础;
另一方面,SOA强调了支撑“积木式”编程的统一基础设施环境,包括设计时的服务组装、运行时的服务调度(比如:工作流引擎)、统一的服务通信总线(ESB),这些基础设施提供了随需应变的服务组装能力和可伸缩、低耦合、可靠高效、分布式的服务运行环境,这是对组件化(构件化)编程模式的最新发展和完善。SOA是第一个真正完整、系统的阐述和实现组件化(构件化)编程思想的软件架构,是当前软件系统架构的集大成者。
皓首穷经,十年磨一剑