SOA技术体系

1.4  SOA技术概述

1.4.1  SOA技术体系

从技术层面来看,SOA并不是一项技术创新,传统的技术在构建SOA系统时同样能派上用场。实际上,在采用SOA进行系统整合的项目中很多被整合的系统本身就是基于传统技术开发的,但与传统构建系统的方法比较,SOA更强调标准化应用,更加重视系统的层次架构。SOA特性之一的互联互通性就体现在系统中任一个服务能被其他服务甚至是其他系统的服务准确无误地发现及理解,而满足这种特性最直接的方式就是每个服务都遵循一系列统一标准。因此,只要在开发过程中遵循SOA的理念,采用统一的标准,任何现有技术都能用来开发SOA系统。

SOA与传统技术体系的区别在于系统均是基于"服务"构造,"服务"之间的交互和组合采用了一种基于"服务中介平台"的方式实现了松耦合,图1-1是"服务"被提供和使用过程的示意图。

SOA技术体系_第1张图片 
图1-1  SOA系统中服务交互示意图

在图1-1中,服务提供者是一个可以通过网络寻址到的实体,它提供的"服务"是基于IT系统的某个功能或流程;服务请求者调用和使用服务提供者提供的"服务";服务中介平台类似代理的角色,以目录方式存储了大量"服务"资源,一方面可以接受服务提供者提供的各类"服务"信息,另一方面可以通过协调机制把"服务"的请求分配给服务提供者。这样为服务请求者和服务提供者建立了中立的沟通渠道。

上述对服务交互图的描述是为了解释SOA的核心元素"服务"的运行机制。便于对技术有兴趣的用户IT人员了解。下述内容将围绕SOA系统的整体技术体系来进行说明。

在具体的项目中,SOA系统构建没有完全统一的模式,系统的体系架构需要根据用户现状进行分析设计。但在层次和内容上,SOA系统存在一些共性的特征。通常而言,SOA系统的技术体系包含如下几个层次及内容,如图1-2所示。

SOA技术体系_第2张图片 
(点击查看大图)图1-2  SOA系统基本技术体系

1.基础设施层

既包括服务器、网络设备等硬件设施,也包括操作系统、数据库系统等基础软件,作为整个SOA系统运行的基础平台。

2.已有资源层

指用户当前所拥有的IT资源。"已有应用系统资源"和"已有信息或数据资源"是指用户当前运行的应用系统及数据系统中,若干适合抽取出来作为为上层系统提供服务支持的资源。被抽取出来的资源可以是某个系统(指应用系统或数据系统)中的某个模块,可以是某个系统,可以是若干系统的合并及组合,也可以是各类格式的数据资源;"已有的组件/构件资源"即包括原先采用组件/构件系统的用户所拥有的组件/构件资源,例如基于COM/COM+、JavaBean/EJB或者是CORBA开发的技术功能组件或业务功能组件,也包括已有的Web Services服务组件。"基础设施层"与"已有资源层"是服务的具体技术实现层,上层应用使用的服务最终都由这两层提供。

3.服务提供层

本层主要职责是封装下面两层的资源,并以服务的形式展现出来,从而构建整体的应用系统。这是SOA系统最关键的一层,也是SOA系统设计最难的部分,难点在于服务的规划与设计--该如何划分服务及服务的粒度。服务的规划与设计不仅直接影响到SOA系统的性能,也间接影响到SOA系统的扩展能力。但这不仅仅是技术问题,需要从企业战略目标的层次上考虑服务的划分,业务人员的参与也是设计出适合企业使用的服务的关键。具体方法和原则可参见本书第一篇第3章3.2节的相关内容。本层主要由三部分组成--服务、企业服务总线(ESB)、服务资源库,各部分内容说明如下:

服务--主要是与业务需求对齐的各类"业务服务"(与用户业务相关的、实现特定业务功能)、"流程服务"(与用户实际业务流程相关、包含人员与IT系统参与的一个处理过程)、"信息服务"(用于共享的各类数据和信息)、"交互服务"(为最终用户、其他IT系统或服务提供多渠道统一访问入口的服务)以及"其他服务"(包括实现安全规则、管理机制、质量策略等各类构建用户IT系统所需的服务)。

企业服务总线(ESB)--为服务之间间接和动态交互提供支持。ESB具体的功能包括:消息寻址路由(根据请求对服务的描述以及服务在服务资源库中的注册信息,定位具体的服务)、消息验证(检验服务发送的消息是否满足格式要求)、消息格式转换(把消息从一种格式转成另外一种格式)、消息操作(包括增加或删除字符,或把消息中的特定字符进行转换的操作)等。ESB包含了传统消息中间件的"消息代理"(MessageBroker)功能,但其增强了服务的动态路由和交换功能。通过把服务接入ESB,由ESB负责服务消息的流通,用户就可以把注意力全部集中在服务的构建上。此外,由于消息的发送不再在服务间点对点地进行传送,消息原先的直接交换就变成了现在的间接交换,实现了松耦合。

服务资源库--服务资源库里储存的是已注册的服务的描述信息及相关服务元数据描述信息。已注册的服务可以分成两大类,一类是可以直接被使用的、实现具体功能的服务,另一类是在运行时才进行组装的服务。服务的描述信息记录了服务实现的功能、服务该如何调用、服务具体实体所在地以及服务在策略方面作出的规定等。

4.应用接入层

用户在这一层里可以部署各种应用,例如图1-2中所示的在政府、金融、电信等行业的应用。应用依据业务流程,主要由业务人员设计,IT技术人员辅助。应用依靠下层提供的服务及服务的组合具体实现。

5.标准体系

标准体系贯穿SOA系统从最底层到最上层全部四层结构,内容上由若干行业内公认的标准组成,是每层系统规划设计时建议采用的规范,为SOA系统的标准化实施确定了边界,同时便于实现SOA系统间的互操作。

6.开发平台及各类工具集

用于对SOA系统进行规划设计、实施测试、运维管理的软件平台及工具集,涵盖系统各个层次。从系统生命周期角度出发,可划分为如下平台及工具:

规划平台及工具--主要用于做出整个系统的分析与规划,需要进行的工作包括项目管理、需求分析、版本控制以及文档管理等。

设计平台及工具--协助相关人员完成整个系统的设计工作。具体的平台及工具应该包括"业务建模"(模型化企业的业务)、"流程建模"(把业务整理成流程)、"服务组装"(按照一定规则组装流程形成服务或应用)、"服务建模"(模型化整理出来的服务用于服务生成)。这个阶段的平台及工具与传统的开发方法所需的平台与工具有较大区别,体现的是SOA的思想。

开发平台及工具--用于实施SOA系统的开发,所采用的开发语言及开发平台没有限制。

测试平台及工具--用于实施SOA系统的测试。传统的测试平台及测试工具在SOA系统的测试工作中同样可以采用。

注册部署平台及工具--用于实施服务的注册发布以及SOA系统的部署。

监控管理平台及工具--用于SOA系统整个生命周期的监控及管理。这类平台及工具贯穿系统的规划、设计、开发、测试及部署的各个阶段,监测各个阶段SOA系统的实施进展,便于用户及早对意外情况做出反应。

以上是通用的SOA系统技术体系,可用于指导SOA项目的实施。各厂商在实际项目实施中可根据用户需求及产品选型情况,在此技术体系基础上提供个性化的解决方案。



转载 :http://book.51cto.com/art/200810/93524.htm

你可能感兴趣的:(architecture)