APP下载

一种基于消息的异步服务访问框架应用研究

2013-09-16任月鸥汲雪飞张莹莹王明倩

科学时代·上半月 2013年9期
关键词:消息

任月鸥 汲雪飞 张莹莹 王明倩

【摘 要】采用面向服务架构的项目在具体实施过程中的关键问题之一是服务访问。根据SOA在信息整合领域的应用需求,针对SOA架构下三类服务访问问题、即异步服务访问、综合服务访问和可靠服务访问,提出了一种基于消息的异步服务访问框架,阐述了该框架的基本架构、核心组件及工作模式。同时,结合该框架在科技信息资源共享服务平台项日中的具体应用,讨论了该框架的使用效果。

【关键词】SOA;异步访问;消息

l.引言

面向服务的体系结构(SOA)是目前信息技术领域的热点,是未来具有分布、协作共享特征软件的首选体系结构。由于SOA所具有的松耦合、可灵活支持业务流群重构、广泛应用标准等特点,可以更加有效地满足信息整合领域的应用需求。基于SOA实现信息整台,通过将信息资源封装为服务,基于对这些服务的使用来方便地满足各种信息整合的需求。然而在基于SOA实施信息整合过程中的一个主要内容就是服务的访问,因此如何提供有效的服务访问以支持在信息整合过程中方便的使用服务资源就成为个关键问题,特别是以下3类服务访问问题:

(1)异步服务访问:信息用户发出一个资源请求,一般不能得到即时处理,如何使系统能异步处理大量并发请求;

(2)综合服务访问:一个信息资源请求对应一个或多个提供者(服务),如何实现请求的组织、分发,返回结果的汇聚、综合;

(3)可靠服务访问:服务与请求方可能处于不同的运行环境,不能保证相同的可用性;服务是基于网络的,网络状况的变化为随机事件,如何保证请求和响应都能传送到目的地,并都能得到处理。

2.异步服务访问

在远程访问模型中,请求端驱动所有的事情,服务端是被动的,只响应请求。远程访问有同步和异步两种方式。同步的工作方式下,请求方发出一个访问请求后,将堵塞等待服务结果,结果返回继续执行。异步访问可分为通知消息、发送/回调、发布/订阅和广播四种。异步的服务访问通讯双方以相互独立操作的方式实现,无需堵塞等待,通过相互发送消息完成。本文后面所述框架中服务的访问将采用异步方式。

3.基于消息的异步服务访问框架

本文以Web Service的相关标准和工具为基础,增加信息整合需要的特定组件,在服务请求方和服务间添加一个异步服务访问框架,框架的设计基于如下思路:

(1)能将一个信息请求进行解析对应一个或多个服务,这多个服务的调用结果汇聚综合,形成对请求的响应;

(2)具有消息缓存功能,在一方不可用或网络状况不好的情况下,能避免消息丢失;

(3)同一个信息资源在服务高峰期,将有大量的请求消息,需要提供消息管理能力;由于一个请求对应一个或多个服务,请求/响应比单个服务的调用复杂,需要保证多个服务的调用、调用结果的综合、请求的应答等效率。

3.1服务访问请求

信息整合应用中服务访问与简单的Web Service调用不同,需要更丰富的功能。本文的上下文中,“服务访问”是指资源用户通过“调用”Web Service完成对资源的获取、利用,一 个“访问”对应一个或多个“调用”。

3.2服务

在Web Service架构中,UDDI 用于查找、发布服务,与此类似,我们建立了服务社区,服务杜区为用户提供服务注册、浏览、检索等功能。资源提供者在服务社区中注册其能提供的资源共享服务,资源用户通过这些服务访问资源。注册服务的时候需要提供服务对应资源的描述信息。

3.3服务请求处理

以下将按照消息传递和处理经过的组件对框架的原理和工作模式作介绍:

(1)排队组织器

客户端将访问请求消息“发布”到消息中间件(MOM),排队组织器从这里“订阅”请求,对请求进行排队。排队算法综台考虑剑请求优先级和等待时间。

(2)请求解析

请求解析器从请求队列中取出位于队列最前端的访问请求,进行权限验证。依据资源访问请求和服务注册信息中含有相同的字段业务主题代码和资源目录条目,在服务社区中查找资源交换服务,得到一个资源交换服务集合,交给服务访问代理调用。

(3)服务访问代理

服务访问代理是服务的真正调用单元。利用请求解析器的解析结果,使用服务调用引擎调用服务。服务访问代理可以实现对多个服务的并发调用。对于每个资源请求对应的一个喊多个服务,为每个服务生成一个服务调用引擎实例。

(4)结果池

结果池是结果包的集合,结果包是单个访问请求对应的多个服务的结果汇聚地。由于同一个访问请求的多个服务的返回时间存在差异,结果包设定等待时间阀值,超时的调用结果将抛弃。

(5)结果封装返回器

结果封装返回器的作用是对结果池中的结果包进行处理并将结果发送到服务访问请求端。

4.应用实例

随着我国科技信息化建没的不断深入,各级各类科技管理部门和科研机构已经建设了大量科技网站及科技信息资源库。为了更有效地利用这些资源,需要整合现有各类信息资源,形成统一的网络科技信息资源库(虚拟网络科技信息中心)。我们建立了科技信息资源共享服务平台。

在平台中,服务资源社区接受各资源节点的服务注册,管理各节点的服务,为用户提供服务浏览检索等功能。在资源目录上开发各种资源应用,如资源交换、资源检索等。上文所述框架处于服务社区和资源应用之间。

平台目标是全国科技信息服务网体系下各资源节点可以将其所拥有的科技信息资源加入全国科技信息服务网,同时还可以在全网资源目录的辅助下,从其它资源节点获取其所需要的资源。

基于SOA的系统,系统中的功能组件以服务的形式存在。平台中存在如下几类主要服务:

(1)资源提交服务位于资源节点处。对资源节点中的资源进行处理,向总结点提交资源描述信息。

(2)资源交换服务位于资源节点处。上述(l)中的资源节点向总节点提交的是资源的描述信息,此服务是访问请求的实际处理单元。

(3)资源共享服务位于总节点处。当用户有信息服务的请求时,调用总节点的资源共享服务,它将触发总节点,调用各资源节点的资源交换服务,新的资源节点加入系统需要向总节点提交“资源提交服务”,并在服务社区中注册“资源交换服务”。总节点定时调用“资源交换服务”更新资源目录。

当用户需要信息服务时,可以浏览全网资源目录,点击相应资源,客户端将用户这一资源需求进行解析,封装为访问请求。请求发送到服务访问框架,框架解析请求,调用“资源共享股务”,这服务将触发一个或多个“资源交换服务”,服务返同数据在调用框架处汇聚发送到请求用户端。

5.结束语

针对使用SOA实现信息整合中的三类服务访问问题,本文提出了个基于消息的异步服务访问框架。

这一框架在国家科技信息资源共享服务平台中得到了具体应用并取得良好效果。接下来的工作包括通过改进排队和凋度算法,提高消息传递的效率;增加通用的异常处理的能力。另外这种集中的队列机制可能成为系统性能的瓶颈,将近一步研究框架的使用模式、通过完善组件提高性能等。

参考文献:

[1]刘洁,基于SOA构建全业务网络-电信科学,2009年第三期.

[2]Manheshwari P, Tang H, Liang R. Enhancing web service with message-oriented middleware. Proceedings of the IEEE international conference on Web Services(ICWS'04).2007:524~531.

猜你喜欢

消息
一张图看5G消息
过年啦!
晚步见道旁花开
惊人的消息