【IT168 专稿】
SOA,即面向服务的架构。
SOA的概念
从服务驱动角度看:企业应用是一系列服务通过适当的流程编排或服务编排进行驱动,来满足企业应用的需求。
从开发模式上看:开发分为流程开发和服务开发;在开发或选用适当服务的基础上,以流程编排/服务编排为驱动,满足企业的应用需求。
从分析模式上看:分析分为流程定义、服务识别、和服务定义。一切分析以业务为基础,减少系统分析和业务定义间的模型一致带来的理解差异。
从业务改善上看:通过监控流程的流转效率,为流程/业务改善提供依据。
从数据交换方式上看:提供统一的数据交换平台,通过消息路由和消息寻址,实现统一的数据交换。
从结构模式上看:将服务消费者和服务提供者分离,消费者通过服务寻址来得到需要的服务,服务注册和服务管理将向服务消费者透明。
从管理角度上看:服务注册、服务管理和透明访问,为服务的管理、重用和优化提供了便捷的方式。
搜索引擎的出现改变了传统的信息获取的模式,SOA的架构体系将改变传统软件构件的获取和使用模式,软件集成商和服务提供商的分工将为用户提供更加细致的服务。
从工程发展角度看待SOA
以电子产品的发展过程看:
初始期:大量采用电子管,没有模块化的概念。
中期:集成块的产生,简化了产品的构成,增强了产品的可维护性。
目前:可寻址、热插拔技术的发展日趋成熟,改变了以前通过单一功能齐全的电子产品提供服务的模式,由各项功能简单、专业的产品的集成在一起,提供负责应用成为一种可能,人们可以根据自己的需要选择、更新某一单一功能的电子产品来改善自己的需求。
软件开发方法的发展:
初始期:面向过程的结构化开发,没有对象的概念。
中期:面向对象的开发过程的产生和组件化开发的应用,为基于构建的开发提供了可能。
目前:SOA概念的引入,将控制(流程)、模块(服务)、数据传输(MB)进行了分割。对服务引入了可寻址、可管理的概念,为软件的工程化开发奠定了体系上的基础。
SOA的技术特征
SOA的确切特征还有待探讨,不过一些关键的方面已经得到广泛承认:
SOA是一种分布式组件体系结构。不管在企业内部还是企业外部,SOA组件都是透明的,并且可以通过一系列统一支持的、可互操作远程过程调用和消息传递协议来统一访问。接口定义标准支持开发人员工具之间的互操作性。网络上 (on the wire) 协议互操作性——相对于代码可移植性——是 SOA组件的中心部分,支持统一访问和平台独立。调用方不知道组件的基础实现技术,例如Java 2 Platform、Enterprise Edition (J2EE)、Microsoft .Net和PHP。
SOA组件封装功能,并支持通过业务分析人员和业务模型建模的抽象级别的重用。这使IT功能和它所支持的业务功能之间的映射更加直接,从而提高了可靠性。
声明性的、计算机可处理的约定允许第三方访问SOA组件提供的服务。这些约定显式地声明功能性特征以及非功能性(服务质量或 QoS)特征和需求。SOA组件使用WSDL记录它们的操作。还可以使用用 Web服务的业务流程执行语言(BPEL4WS)来定义组件的有效操作序列。
可以动态地发现、选择、绑定(通过其声明性属性)和集成SOA组件。
SOA方法论和相关技术
SOA & EAI & 工作流
EAI:企业应用集成的应用平台。在EAI模式下,更多考虑的是企业应用间的集成,包括数据的集成。它更多考虑的是支持企业应用的各类数据集成的适配器和对适配器的管理、驱动逻辑,而在下面几个方向并不太强调:
1、识别构成企业应用的服务并为服务的声明、注册、管理、透明访问提供支持。
2、分离企业业务逻辑流转控制的控制流(流程引擎)和提供基础业务支持的构件(服务)。
3、为企业提供统一的数据交换平台、包括可配置的寻址和路由。
工作流:以企业业务执行过程为基础的支持平台。在该模式下,一切都围绕企业业务执行的过程进行调度,在这点上,工作流的和SOA流程引擎的理念比较相似。但工作流不太强调:
1、识别构成企业应用的服务并为服务的声明、注册、管理、透明访问提供支持。
2、服务的定义标准以及和流程的装配关系。
3、为企业提供统一的数据交换平台、包括可配置的寻址和路由。
SOA:面向服务的架构模式。它提供了一套方法和一组支持平台,强调:
1、识别构成企业应用的服务并为服务的声明、注册、管理、透明访问提供支持。
2、分离企业业务逻辑流转控制的控制流(流程引擎)和提供基础业务支持的构件(服务)。
3、服务的定义标准以及和流程的装配关系。
4、为企业提供统一的数据交换平台、包括各类应用适配器、可配置的寻址和路由。
SOA模型
SOA不是一个独立的事物,它由下列几个部分构成:
1、基于SOA的一种分析模式(SOMA)
2、支持SOA应用的基础设施(SOA支持产品)
如果将这两者独立来理解,很难达到SOA描述的效果。
SOA的概念模型
SOA服务模型
基本的企业架构模型
实施SOA
SOA模型下企业应用架构方法
典型的SOA过程
服务集成成熟度模型(SIMM)
SOA的不同迁移方式
SOA路线图
SOA实施过程(步骤、角色、任务)
SOA成熟度和价值评估