摘要:分析了当前发布订阅系统的主要类型和存在的问题。基于发布订阅系统的主要设计模型,采用分层与插件相结合的动态体系结构设计方法,设计和实现了可配置和可扩展的发布订阅系统act-ps(act-publish/subscribe system),支持基于应用需求的配置和扩展。在具体的
电子政务数据交换系统当中的配置运行表明,act-ps系统为通过可配置和可扩展的方式建立发布订阅系统提供了新的途径。
关键词:可配置;发布订阅;可扩展;体系结构
发布订阅(publish/subscribe,ps)通信模式因其反映了广域网络中应用系统间动态和松耦合通信的本质特征,成为当前研究热点。发布订阅系统的应用分布在数据交换、工作流[1]、协同工作、移动应用等多个领域[2]。虽然目前基于发布订阅服务的中间件研究有了一些实验和商业系统,但是这些系统采用的配置和扩展模式已经不能很好地适应快速变化的应用需求。针对这一问题,本文研究并设计了一种新的发布订阅中间件系统act-ps,解决了基于特定应用领域需求配置发布订阅服务系统的问题。
1相关工作
目前发布订阅中间件系统主要有三种类型,即通用商业系统、专用系统和微内核系统。通用商业系统中面向对象通知服务系统corba notification service是最常见的一种。这些系统通常提供了比较全面的功能,传输效率和可靠性高。但其对发布订阅的事件模型和订阅模型等均作出了严格的限制,很难基于具体应用场景进行扩展和配置[3]。专用发布订阅系统则采用了面向需求建立ps应用的策略。这种系统解决了各个领域中具体的需求,实现效率比较高,但很难重用,如cassius[3]和yeast系统。
目前流行的发布订阅系统是通过微内核的事件(事件具有两种形式:消息和调用。本文特指消息)代理和事件路由技术将发布订阅服务扩展到广域网,如elvin[4]、gryphon[5]、siena[6]等。这些系统具有特定的订阅语言、事件模型、路由算法,以及固定的底层传输协议。该系统具有较强的可伸缩的能力,但系统内部也不能进行配置,类似于一种面向特定领域的系统。
以上系统在构建面向特定领域的发布订阅通信系统过程当中存在不同程度的问题。本文采用了分层、插件和动态配置等软件体系结构技术,设计并实现了一种可配置和可扩展的发布订阅系统act-ps(act-publish/subscribe system),提供发布订阅系统关键设计模型的配置和扩展能力,如订阅语言、事件模型等设计模型。通过面向电子政务信息交换领域的系统应用,表明act-ps能够有效地解决当前发布订阅系统可配置和可扩展性的问题,为类似系统的建立提供了有效的途径。
2act-ps系统设计分析
文献[7,8]分析了发布订阅系统主要设计模型。rosenblum[8]模型是其中较为典型的一种,它使用对象模型描述发布订阅系统主要的参与对象;事件模型描述事件的表示方法;通知模型描述事件分发到订阅者的方式;观察模型描述与订阅方式和兴趣分布相关内容;时间模型描述事件之间的因果关系和时态;资源模型描述发布订阅计算资源在系统中的分布;命名模型描述对象的定位和标志方式。此外,目前很多附加功能和与网络相关的特征已经成为面向广域网络的发布订阅系统的重要组成,如安全、移动、内容过滤、事件路由等。上述对于发布订阅系统不同的设计模型描述中,关键的设计模型包括:
(1)事件模型。其中最普遍的形式是主题、元组和类型[1]。为了配置和扩展该模型,系统中的事件解析和构造机制必须可扩展。
(2)订阅模型。订阅描述方式主要包括自定义的订阅语言、xpath、类sql语言等。订阅信息通常描述了事件的过滤策略、事件观察划分和分布策略等。订阅管理应当能够对不同订阅语言的语法和语义识别实现扩展。
(3)通知模型。目前常用的通知模式包括推、拉以及两者混合的方式。这些模式可以通过一种策略描述机制描述,通知模型的扩展与订阅模型类似。
(4)资源模型。应用需求或者相关协议可能要求发布订阅相关处理在服务器与客户端之间的动态分布,或者在发布方客户端与订阅方客户端之间分布。通过这种方式减少了服务器的负载和复杂性。因此,系统应当提供功能和协议以实现分布处理并进行交互的机制。
(5)协议模型。其中包括发布订阅系统的传输协议、路由协议以及附加协议的扩展。这三种协议是不同层次的协议,在系统中应当通过分层机制实现这些协议的可插拔,以便扩展和配置。
由于关键的设计模型决定了发布订阅中间件系统的主要的设计特征。act-ps的设计采用了针对少数关键设计模型和成熟应用实例进行扩展和配置的策略,避免了多设计模型之间的隐含冲突[9]所带来的高复杂性计算问题。
3act-ps体系结构
3.1概念体系结构
act-ps中间件系统逻辑上可以划分为消息传输网络(mtn)和事件代理网络(edn)两层层叠网络,如图 1所示。
层叠网络的设计优化了系统的可扩展特性。mtn提供了消息传输服务并屏蔽了异构网络类型和协议。edn在mtn之上实现发布订阅通信服务。edn中的对象及其交互过程如图 2所示。其中:①发布者向edn发布事件;②订阅者向edn订阅事件;③edn匹配事件和订阅,并选择目的订阅者集合;④edn完成事件的路由转发;⑤订阅者的接入代理通知订阅者。事件代理的体系结构是发布订阅通信处理的关键。设计中将其分为五层结构,如图 3所示。
网络基础设施和传输服务层构成了mtn。核心层主要提供基本的发布订阅处理服务,如消息路由、事件匹配等。扩展服务层提供了基于核心层实现的发布订阅系统的附加协议服务的扩展机制,如内容过滤、安全和移动协议等。服务表示层支持对act-ps事件代理的可编程或gui操作,满足中间件的可用性。管理工具提供了体系结构组成部分的配置和管理功能,满足中间件可管理性的要求。安全控制体系主要处理在发布订阅通信过程中各个层次的安全机制。事件代理和发布订阅客户端以及基于相关协议的连接构成了发布订阅系统,如图4所示。发布订阅客户端封装了事件代理服务器的部分处理逻辑,根据应用场景能够有效地实现相关计算的分配和分布。后续主要介绍事件代理体系结构各个组成部分的设计。
3.2管理工具
管理工具的内部组成结构如图5所示。其中,体系结构管理器提供了整个系统动态部署时和运行时的管理功能,负责不同管理功能插件的更新、注销、激活和钝化,是整个管理工具的核心。通过体系结构管理器,发布订阅系统能够实现对已有功能和扩展配置功能的有效管理。
插件是实现了act-ps中一种功能的模块。每个插件具有一个配置文件,描述了其功能和接口信息。插件注册库记录了已注册插件的相关信息及其相互依赖关系。服务注册器负责检查系统中新增加的插件,并将其注册到插件注册库。服务装载器负责根据插件配置文件装载和初始化、实例化插件。管理工具在部署时通过体系结构管理器将已有插件注册;在运行时,根据系统配置文件中的信息,如环境变量、插件装载顺序等,确定系统运行的流程并查找和加载相应的插件。
3.3发布订阅核心层
本文原文
发布订阅核心层主要是扩展和配置对象。其内部结构和处理流程如图 6所示。
消息解析和消息构造模块负责与底层消息基础传输设施交互,提供消息报文的解析和构造服务。通过配置和扩展该模块可以实现对多种事件模型的扩展。事件队列用于缓存到达的事件。发布管理器从事件队列中获得当前事件,并进行两方面处理:①适配,解决异构事件模型的语义兼容性问题;②匹配,即将事件发送给订阅管理器进行匹配并获得结果。
订阅管理器是核心层中的主要部件。它负责处理订阅事件的解析、注册、退订、匹配、查询、订阅信息库的管理等。订阅信息库保存并提供对订阅信息的增、删、改、查的操作接口。订阅管理和订阅信息库与发布订阅系统的订阅模型相关联,实现了对不同订阅语言及其语义判定的配置和扩展,如类sql和xpath订阅语言。通过改变订阅管理器的配置可以完成匹配算法的扩展。
路由管理器接收带有目的地址的事件,然后由系统配置信息中获得相关的路由协议和算法,计算下一跳的地址。通知管理器接收路由管理器处理完毕的事件,然后由系统配置信息中获得当前的通知策略,如推数据或者拉数据,并将构造完成的通知报文加入通知队列。消息构造模块将通知构造为传输层格式报文,完成事件在核心层的处理过程。
核心层流程举例如下:消息解析将传输层报文解析为当前事件模型结构,并构造上下文信息;发布管理首先进行相应的适配,例如扩展基于主题模型支持类型属性,然后调用订阅管理,基于订阅信息库中已注册订阅信息匹配该事件目的地址;路由管理器基于事件的目的地址计算路由;通知管理基于当前通知策略,将事件加入相应的通知队列;消息构造将事件及其上下文信息构造为报文交付消息传输层,如果是订阅消息,则订阅管理将其加入信息库;或者调用路由管理将其路由到目的代理服务器。
3.4扩展服务层
扩展服务层主要功能在于基于发布订阅核心层配置和扩展附加功能和协议,如图7所示。其中协议描述xml文件记录了附加功能和协议的需求,体系结构管理器基于该描述文件,选择装载相应的功能插件进行配置和扩展。协议描述为一组原语消息及其序列关系。每个协议由一个功能插件处理,接收发布订阅核心层对该协议的请求并作出响应。可插拔的上层应用服务则基于插件功能实现。
3.5act-ps客户端
act-ps客户端的主要作用是支持异构应用系统接入act-ps中间件系统。它由消息和协议适配器以及消息传输服务组成,如图8所示。消息适配主要解决上层应用与act-ps系统之间消息格式的转换问题,如事件模型和订阅描述方式。协议适配主要解决上层应用系统与act-ps系统交互的部分协议处理,不同的协议适配可以调整客户端和事件代理服务器端之间的协议处理分布。如由发布客户端处理部分的事件匹配或者路由操作。消息传输服务实现了客户端与事件代理网络的可靠消息发送和接收。这种结构提供了资源模型的扩展和配置机制。此外,动态配置的客户端实现发布订阅处理的动态分布,如集中式或分布式结构的扩展。
一个简单客户端的事件处理流程描述如下:在一般数据库应用系统中,首先将其数据格式转换为xml/soap的数据格式,数据内容以事件或者订阅的数据结构描述,在事件中加入发布订阅交互协议内容,然后通过消息传输服务交付act-ps事件代理网络处理发布订阅通信请求并异步等待接收响应。
3.6小结
本节基于发布订阅系统的设计分析提出了act-ps系统的体系结构及其主要组成。act-ps的主要配置和扩展机制概括为:
(1)层叠网络结构提供了消息传输中间件和发布订阅通信中间件组合配置、扩展机制。
(2)事件代理的分层结构和插件机制实现了发布订阅基本处理和附加功能的松耦合交互和集成。
(3)发布订阅核心层实现了关键设计模型的配置和扩展机制。
(4)扩展服务层实现了附加协议的扩展,路由管理实现了路由协议的扩展,消息传输网络实现了底层网络协议的扩展。
(5)体系结构管理器基于配置信息装载服务和插件形成了功能扩展框架。
4act-ps应用
act-ps系统已经在黑龙江省电子政务信息交换系统中运行,实现了异构分布式应用之间的发布订阅信息交换。
4.1应用场景
为了协作完成统一任务和共享数据,分散在连接因特网的异构应用系统中的电子政务数据源需要进行发布订阅数据交换,如工商、税务和公安的数据库应用系统。异构数据源之间需要进行发布订阅松耦合异步通信和交换。为了便于更好地监控和管理,事件代理网络通过树状结构连接。mtn集成了北京航空航天大学自主开发的soap消息中间件系统act-iip,提供soap消息可靠、持久和异步传输服务。
4.2edn主要流程和实现策略
edn中的事件流程如图9所示。发布者通过事件代理网络向上发布事件内容信息;订阅者则逐层向上浏览已经发布的内容并基于浏览结果向发布者订阅;发布者的接入代理根据事件订阅者集合通知订阅。
系统中的事件模型采用了基于主题的方式。使用soap报文作为消息的载体。路由算法利用层次拓扑结构,采用了向上发布和浏览、向下订阅的策略。发布路由、订阅路由和浏览路由、通知路由的流程如图9所示。扩展服务附加了主题内容的过滤机制,并实现了自动关键字过滤。客户端提供了异构数据转换适配器,支持异构应用数据接入。服务表示层提供了可编程api。体系结构管理器在部署时根据系统配置文件确定功能的加载顺序,并通过服务装载器装载相应的插件;在运行时,基于插件描述文件更新功能插件。系统配置文件的主要描述内容包括:①环境变量;②系统功能加载顺序;③插件目录;④命名规则;⑤各种功能资源配置信息。插件描述文件集中描述了插件的基本信息(如插件的名字、类型、实现类的类名、组合和依赖关系等)。
5结束语
act-ps解决了可配置和可扩展发布订阅通信的一些初步问题,并在实际数据交换系统中进行了配置和扩展实现,为一般的发布订阅中间件系统的建立提供了参考。目前可配置发布订阅系统的研究仍然是一个新的领域,后续的工作是进一步深入研究设计模型之间的语义冲突和发布订阅系统安全控制问题。
参考文献:
[1]cugola g,nitto e d,fuggetta jedi event-based infrastructure and its application to the development of the opss wfms[j].ieee transaction on software engineering,2001,27(9):827-850.
[2]eugster p t,feller p,guerraoui many faces of publish/subscribe[j].acm computing surveys,2003,35(2):114-131.
[3]souza c r b,basaveswara s d,redmiles d event notification servers to support application awareness:international conference on software engineering and applications[c].new york: ieee press,2002:521-526.
[4]fitzpatrick g, kaplan s, mansfield t. supporting public availability and accessibility with elvin: experiences and reflections[j].computer supported cooperative work,2002,11(3): 447-474.
[5]ibm n:publish/subscribe over public networks[r].yorktown:ibm tj watson research center, 2001.
[6]carzaniga a,rosenblum d s,wolf a and evaluation of a wide-area event notification service[j].acm transactions on computer systems,2001,19(3):332-383.
[7]barrett d j,clarke l a,tarr p l,et al.a framework for event-based software integration[j].acm transactions on software engineering and methodology,1996,5(4): 378 -421.
[8]carzaniga a,rosenblum d s,wolf a and evaluation of a wide-area event notification service[j].acm transaction on computer systems, 2001,19(3):332-383.
[9]carzaniga a, rosenblum d s,wolf a l. challenges for distributed event services: scalability siveness: edd’99[c].new york: ieee press,1999:72-77.
本文链接:http://www.qk112.com/lwfw/jsjlw/jisuanjiyingyong/244332.html