基于SOA的服务库研究与设计

2014-10-21 11:09蔡志峰方伟坚徐军
电子世界 2014年12期
关键词:体系架构

蔡志峰 方伟坚 徐军

【摘要】通过服务库的建设,可以将分散在各个创新主体的普遍通用的服务进行整合和组织,按照统一的标准规范,形成逻辑上集中、物理上分散,可统一管理和服务的服务目录,为使用者提供统一的通用服务发现和定位服务,从而实现主体间信息资源共享交换和信息服务、协同办公。

【关键词】SOA;服务库;体系架构

引言

首先,需要对各个第三方主体现有的服务进行整理和分类,依照国家标准、国际开放技术标准,研究、分析、研发形成服务库,基于SOA为服务提供者提供注册服务、服务消费者发现和调用服务,并形成一套合理、实用的管理机制,为服务库的长效运行提供支撑。这里旨在研究并提出标准性、指导性模型,为创新领域的服务库建设提供重要指导,最终为各主体的资源共享和协同提供支持。

1.基于SOA的资源集成方法

综合不同的角度、不同的着眼点,从总体上和本质上来说,我们将SOA(service-oriented architecture)定义如下:面向服务的体系结构是一个组件模型,它将应用程序的不同功能单元封装为服务,通过服务之间定义良好的接口和契约将这些服务联系起来,接口是采用中立的方式进行定义的,独立于实现服务的硬件平台、操作系统和编程语言,使得构建在各种这样的系统中的服务可以用一种统一和通用的方式进行交互。

SOA也是一种设计方式,它指导业务服务在其生命周期(从构思开始,直至停止使用)中包括创建和使用的各个方面,同时也定义和提供了一种具有以下特征的IT基础设施:允许不同的应用相互交换数据和参与业务流程,无论它们各自背后使用的是何种操作系统或采用了何种编程语言。

在SOA架构中,服务是最核心的抽象手段,业务被划分为一系列粗粒度的服务和流程。服务相对独立、自包含、自描述、模块化、可重用,由一个或者多个分布的系统所实现,而流程由服务组装而来。一个服务定义了一个与业务功能或业务数据相关的接口,以及约束这个接口的契约,如服务质量要求、业务规则、安全性要求等。接口和契约采用中立、基于标准的方式进行定义,它独立于实现服务的硬件平台、操作系统和编程语言。

SOA的基本体系架构由以下四部分组成

(1)服务提供者(Service Provider)

服务提供者是通过网络可以访问的软件实体,它执行和接收来自服务使用者的请求。它的服务和接口契约发布到服务注册中心,服务使用者从而可以发现和访问该服务。

(2)注册机制(Register)

是一个包含可用服务的网络可寻址的目录,它是实体,接收并存储服务契约,供服务消费者定位服务之用,它提供已发布服务提供的查询和服务数据管理功能。

(3)服务消费者(Service Consumer)

服务消费者可以是一个请求服务的应用、服务或者其它类型的软件模块,它从注册机制中定位其需要的服务,然后通过传输机制来绑定该服务,再通过传递契约规定格式的请求来执行服务功能。

(4)服务契约(Contract)

服务契约是服务提供者和服务消费者之间交互方式的规范,指明了服务请求和响应的格式。

2.SOA应用系统架构

SOA从根本上来说是一种软件架构的思想和方法论,是一些抽象的概念。企业实施SOA,必须有一个具有普遍适用性的应用系统体系结构。

SOA应用系统框架大体上可以分为七个部分:系统软件层(Operational System),企业组件层(Enterprise Components),服务层(Services),业务流程编排(Business Process Choreography),展现层(Presentation),集成(Integration Architecture),基础架构(QoS,Security,Management&Monitoring)。

3.服务库总体框架

服务库是以技术标准为前导、服务资源与可重用构件资源为基础、服务管理平台为支撑、服务库注册中心及服务目录为核心、服务门户为展现、管理机制为保障的基础性平台,为此设计出服务库总体框架,如圖3所示。

(1)技术标准

包括传输层、消息机制、编程模型、服务发现和描述、可靠性、事务处理安全和管理等多方面的技术标准和规范。

(2)服务目录

服务目录是将服务按照某种服务分类法进行分类,并进行统一标识,按照元数据方式进行描述,并梳理形成服务目录。

(3)服务库注册中心

用于注册、查询、发现服务和版本化服务描述信息的中心,提供对服务的分类管理能力,能够利用分类能力实现对服务的搜索。应具有很高的可用性,并且是多处备份的。通过服务库注册中心,可以服务资源进行整合和分类管理。服务资源包括可重用的构件、本地服务以及服务提供商提供的注册服务资源。

(4)服务管理平台

服务管理平台由服务管理支撑和服务管理应用组成,其中服务管理支撑为服务管理平台对服务进行综合管理的基础支撑服务。服务管理应用则面向各类用户提供服务注册、访问、质量管理、节点管理、运行管理等应用。通过服务管理可以帮助用户了解服务部署、运行情况,包括生命周期管理服务管理、监控、检查、分析、服务等级协议与策略。通过服务管理,能够灵活的加入运行时控制,如消息处理、生命周期管理访问控制和日志审计等。通过管理控制,可以实现对服务实施进行远程监控管理,实现对应用系统运行管理、日志管理和性能监控等功能,通过友好的用户界面,对服务进行管理,减轻管理人员的管理难度,提高服务管理质量和准确性。

(5)服务门户

建立统一的服务门户,针对不同用户提供不同的服务,用户可以根据自己的需要定制自己的操作界面。服务门户提供服务注册、访问、管理、使用等功能。

(6)管理机制

实现服务管理者、服务提供者、服务消费者在管理制度的管理下,通过登记、注销、结算等管理活动,对服务库进行维护、管理和使用。

(7)应用模式

从服务库的使用用户、建设方、建设目的等几个方面对于服务库的建设、应用和运营模式进行了定义,并对不同的模式进行的比较和分析。

4.服务管理平台

SOA是一种松散的体系架构,按照这种架构开发的系统的基本组成元素是服务,各个服务分布于不同的计算节点上,各计算节点可能属于不同的组织、部门,并处于不同的物理位置。此外,从业务方面,需要管理服务执行的选择状态及进度等问题。因此,在基于SOA的系统运行时,有必要在运行时对服务进行管理。同时,由于基于SOA的系统分布式、松耦合的特性,对管理服务最合适的方式就是采用SOA的方式。即将有关管理服务的功能封装为服务,通过服务接口向外提供。管理者通过调用管理服务的接口实现对服务的管理。服务库管理平台由基础服务支撑和服务管理应用组成,主要提供以下作用:

为服务提供者提供公开和宣传服务产品的渠道。

允许服务消费者查找、访问和调用符合所定义的条件的服务。

为服务管理者提供服务管理、监控、最优调度等管理服务。

本文提出的服务流程是基于三个角色之间的相互作用,主要包括以下角色:

服务提供者:从企业的角度来看它是提供服务的实体,从整个体系的角度来看,它是容纳服务的平台。

服务请求者:从企业的角度来看它是一个寻求一定服务功能的请求者从整个体系的角度来看它也是一个寻找和调用服务的应用程序。服务请求者可以是浏览器(由人操作),也可以是没有用户界面的程序(如另一个Web服务应用程序)。

服务注册处:它是服务提供者发布其服务描述的地方。服务请求者从这里发现服务并且得到绑定信息(包含在服务描述之中)。当然,服务请求者也可以从其它的地方得到服务描述,例如FTP站点、ADS等等。

如果应用程序想要服务,必须要有三个操作:发布服务描述;寻找和发现服务描述;使用服务描述来邦定和调用服务。它们可以单独使用,也可以重复交替使用。

发布:如果要想一个服务能被访问,就必须先发布有关它的服务描述至于它要发布在什么地方则取决于应用程序的要求。

查找:该操作的服务请求者可以直接得到服务描述,亦可以从服务注册处查询所需的服务。服务请求者使用查找操作主要在设计阶段和运行过程中,在设计阶段,使用该操作获得服务的接口描述;运行时使用该操作获得与服务相关的绑定和位置信息。

绑定:运行时,服务请求者利用服务描述中的有关绑定的详细信息来定位、连接和调用一个Web服务。

图4 服务的交互模型

服务的发布和访问过程如下:首先,服务通过WSDL描述,被服务提供者发布到Web上,发布的过程包括向服务注册处注册服务或取消注册;服务请求者可基于UDDI的Web服务注册中心的原型实现以描述所需要的服务,要求服务注册处进行查找,后者则返回匹配的结果;在返回查找结果后,服务请求者使用这些结果绑定到一个实际的服务上,来完成Web服务的調用。

5.结束语

以上几层构成了Web服务的基本协议框架。但是,一个独立的Web服务只能完成单一的工作,而实际的商务活动并非由单一的操作能实现,它需要由一系列操作来协同完成。因此,我们需要将多个Web服务集成在一起,相互协调工作,形成商务工作流(WorkFlow)。这样就提出了更高层的协议:Web服务流语言(WSFL)。其作用是为完成某一商务活动而将多个Web服务进行集成,从而使各Web服务协同工作。这层协议还处在制定中,我们有理由相信,随着Web服务技术的发展,WSFL将成为Web服务的协议标准。

参考文献

[1]曹晓叶,等.基于SOA 的企业应用集成研究与应用[J].微计算机信息,2007,23(12):16.

[2]林怀恭,等.基于SOA 架构的服务集成技术的研究[J].计算机技术与发展,2009,19(7).

[3]茅维华,等.基于SOA 架构的业务协同关键技术平台[J].计算机工程,2009,35(19):280-281.

项目基金:国家科技支撑计划资助项目(课题编号:2012BAH27F03);专业镇中小微企业公共服务平台建设(项目编号:2012B040500045)。

猜你喜欢
体系架构
云计算:体系架构与关键技术
基于SDN的OpenFlow管控标准接口协议研究
基于国产软硬件的行业大数据体系架构研究
关于应急移动通信体系架构及组网技术分析
智慧健康物联网体系架构研究