长风联盟SOA-RA-TF工作组主席
北京东方通科技发展有限责任公司首席构架师
朱律玮
长风联盟围绕SOA(面向服务的架构)成立了三个工作组,SOA-RA-TF工作组的工作主要围绕SOA的基础架构,在前期工作中对SOA技术相关标准和SOA参考架构进行了研究,并正在构建SOA参考架构原型,在此介绍一下SOA-RA-TF工作组的部分工作成果——SOA参考架构。
在本文中将简要介绍SOA参考架构的作用、组成和应用方式,希望对SOA基础技术平台和工具产品的实现,以及SOA应用对基础架构的选择和采用能够起到帮助作用。
1 概述
1.1 SOA基本概念
SOA基本概念已经得到了广泛的宣传,也被众多厂商和用户所接受。SOA作为一种新的软件开发范型,通过松耦合方式更好的实现了软件资产的复用,因而可以很方便地构建业务敏捷的应用系统,以应对不断变化的市场环境和用户需求。SOA的优点大家基本都已经认同,如松耦合、便于复用、架构灵活、节约投资及增强业务敏捷性等,本文不再赘述。
如同采用已有的技术方法实现应用系统一样,采用SOA的思想和方法同样需要考虑系统的分布式问题、可靠性问题、安全问题、QoS(服务质量)问题、控制策略问题和管理问题。
1.2 SOA应用场景
当前最适于采用SOA方法与技术来构建的应用系统主要场景是各种系统间的集成,包括数据集成、流程集成和界面集成。由于技术原因在当前阶段,SOA方法与技术还不适用于单个应用系统的建立。当前可能的主要应用场景包括:
跨部门资产(资源)联合使用
组织内部或组织之间应用整合需要,可以适应未来变化,实现对已有资产(资源)的保护,简化开发
互联网环境下虚拟企业的建立,可以利用互联网上的服务进行组合提供新的业务服务
为用户提供多渠道支持服务,服务接口的统一,有利于服务展现方式和服务渠道的多样化
2 SOA参考架构
一个符合SOA思想的应用系统,其组成元素包括:SOA基础技术平台、实现业务功能的业务服务、各种已经存在的应用系统和数据资源、使用各种业务服务的服务消费者(应用程序),以及建立SOA应用系统和监控系统运行的辅助工具集,当然还需要有建设、使用和维护这些系统的各类人员。
下图给出了SOA参考架构在SOA应用系统中的地位。
SOA参考架构在SOA应用系统中的位置
SOA参考架构是整个SOA应用系统的核心,由基础技术平台和辅助工具组成。在SOA应用系统中还包括已存在的应用系统和数据资源,统称为资源,这些资源通过基础技术平台接入,展现为业务服务供其它应用或服务使用,也可以使用其它应用服务。在SOA应用系统中的应用服务在基础技术平台的支撑下运行,应用服务可以是业务服务提供者,也可以是业务服务消费者,应用服务可以是新编写的程序,也可以是若干服务的组合。几个SOA应用系统也可以互相协作,进行数据交换或实现业务服务的互相调用。与SOA应用系统相关的人员角色包括:系统规划和设计人员,系统开发人员、系统操作使用人员和系统管理维护人员。
2.1 SOA参考架构
长风联盟SOA-RA-TF给出的SOA参考架构主要描述一个SOA应用系统中支撑应用服务运行的基础技术平台及其应用系统建设和管理所需要使用的辅助工具。它给出了支撑SOA应用服务运行的主要服务功能,有了这些核心服务就可以构成一个较完整的基础技术平台,这些核心服务的不同组合应用可以满足不同SOA应用系统的运行需求。SOA参考架构同时也包含了支持SOA应用系统开发生命周期过程的一组辅助工具集。SOA参考架构的总体体系架构如下图所示:
SOA参考架构
SOA参考架构中各核心服务之间满足松散耦合特性,具有定义良好的接口,可通过拆分与组合,可以有针对性地构建满足不同应用场景需求的SOA应用系统。它是SOA基础技术平台产品和辅助工具产品实现的重要参考依据;是开发SOA应用系统时确定系统架构,选用SOA技术的重要指导依据;是保证长风联盟各种SOA支持产品与解决方案实现互操作性的重要基础。
下面将侧重介绍SOA参考架构中各核心服务和辅助工具的作用和应用方式。
2.1.1 适配器
在集成环境中需要复用已有的应用系统和数据资源,通过适配器可以将已有应用系统和数据资源接入到SOA应用系统中。
通过适配器可以实现已有资源与SOA系统中其它服务实现双向通讯和互相调用。首先通过适配器可以实现对已有资源的服务化封装,将已有资源封装为一个服务提供者,可以为SOA应用系统中的服务消费者提供业务和数据服务,其次通过适配器,也可以使已有资源可以消费SOA应用系统中的其它服务。
2.1.2 资源仓库
资源仓库主要功能是提供服务描述信息的存储、分类和查询功能。对于广义的资源仓库而言,除了提供服务类型的资源管理外,还需要提供对其它各种资源的管理能力,可管理对象包括:人员和权限信息、流程定义和描述、资源封装服务、服务实现代码、服务部署和打包内容、以及环境定义和描述信息。
资源仓库首先需要提供服务描述能力,需要能够描述服务的各种属性特征,包括:服务的接口描述、服务的业务特性、服务的质量特征(如:安全、可靠和事务等)以及服务运行的QoS属性。
2.1.3 连通服务
连通服务是SOA基础技术平台中的一个重要核心服务,典型的连通服务就是企业服务总线(Enterprise Service Bus,ESB),它是服务之间互相通信和交互的骨干。连通服务的主要功能是通信代理,如服务消费的双向交互、代理之间的通信、代理之间的通信质量保障以及服务运行管理功能等。
连通服务还需要保证传输效率和传输质量。连通服务一般应用于连接一个自治域内部的各个服务,在自治域内部服务都是相对可控的,所以连通服务更多应该考虑效率问题。
2.1.4 流程服务
流程服务是为业务流程的运行提供支撑的一组标准服务。业务流程是一组服务的集合,可以按照特定的顺序并使用一组特定的规则进行调用。业务流程可以由不同粒度的服务组成,其本身可视为服务。
流程服务是业务流程的运行环境,提供流程驱动,服务调用,事务管理等功能。流程服务需要支持机器自动处理的流程,也需要支持人工干预的任务操作,它支持的业务流程主要适用于对运行处理时间要求不高的,多方合作操作的业务过程。
2.1.5 交互服务
交互服务实现人与服务之间的交互功能。交互服务就是需要提供一组完整的功能,以实现人与服务的便捷交互,既能支持多种交互渠道(如浏览器方式,富客户端方式和移动接入方式等),也能支持多种交互能力(如单点登录、个性化、支持各种资源的统一内容管理等)。
2.1.6 协作服务
协作服务用来解决自治域之间及自治域内部的交互通信。协作服务强调标准的采用,强调平等协作。具体实现技术时将更多的考虑采用WebServices相关技术,以实现流程协同,服务交互,和各种质量属性管理(如事务管理、可靠传输和安全管理等)。
2.1.7 安全服务
像SOA这样强调松散耦合的分布式集成系统,安全性显得尤为重要。安全有时被称为一种“事关全局的考虑”,是全方位的问题,它跨越SOA参考架构模型的各个部分。
安全服务向SOA参考架构模型中其他服务提供基本的安全服务功能,包括:身份验证、访问控制、数据加密、数据完整性和抗抵赖性,以及安全信任、身份联邦、安全会话、安全策略等。
2.1.8 信息服务
信息服务特指为利用上述各种基本的核心服务提供信息管理和使用的服务。具体包括提供元数据管理功能,以一种统一的方式描述SOA系统中所需要使用的各种信息数据。它也提供对各种类型数据(包括结构化数据和非结构化数据),以及分布在不同地方的数据进行统一的访问管理。
信息服务其目标是使应用系统能够统一、透明、高效地访问和操纵位于网络环境中的各种分布、异构的数据资源,为实现全局数据访问、加快应用开发、增强网络应用和方便系统管理提供支持。
2.1.9 集成开发工具
集成开发工具支持SOA应用系统的完整开发过程,如分析和建模阶段,集成开发阶段。
业务分析和建模工具能够帮助用户梳理和分析业务,定义和描述用户的业务服务,数据和业务过程,同时也能够提供模拟工具帮助模拟业务过程执行效果,以便调整和优化业务流程。
集成开发工具支持应用系统的设计,业务流程的组装和定义,新的服务代码的编写和调试,整个系统的集成测试。同时也需要能够支持对环境的定义和描述,系统的打包和部署工作,以支持完整的开发过程。
2.1.10 运行管理工具
运行管理工具提供界面友好的图形化方式的监控和管理工具,提供对各种资源和服务对象的运行管理功能。监控管理工具需要管理核心服务,也需要管理应用服务。可以查看各个服务的运行状态和历史信息,也能对服务进行启动、停止、暂停、恢复、版本升级等管理控制操作,同时需要提供分析和统计功能,可以根据服务运行信息实现对系统的调整和优化操作。
2.2 SOA参考架构给用户带来的价值
长风联盟SOA-RA-TF给出的SOA参考架构,虽然不是一个技术标准,但它可以为用户带来如下好处:
可作为SOA开发实施的蓝图,提供SOA的总体规划建设参考
改善SOA实践,提高SOA实施的成功概率
SOA参考架构各个组成部分定位清晰,松散耦合,便于项目管理
促进SOA参与角色及各方认识一致,推进标准化
促进 IT 与业务的紧密配合
协助企业向重用、团队协作和资源共享的文化迁移