自适应的实时消息订阅与发布系统及方法

文档序号:7665405阅读:204来源:国知局
专利名称:自适应的实时消息订阅与发布系统及方法
技术领域
本发明涉及一种消息订阅与发布的系统及方法,属计算机通信领域。
技术背景分布式实时应用所要求的通信模式不同于传统的对象引用模式,通过网络 连接的多个控制系统或者结点需要实时地进行消息的通信,从而了解应用环境中的状态变化并及时做出反应。传统的同步对象接口调用如CORBA或者RMI 是点对点的通信方式,而分布式应用需要周期性地数据通信以及时了解环境的 变化,因此基于订阅/发布模型的消息通信机制非常适合这类应用系统。但是, 实时消息订阅/发布系统必须解决消息的过滤、消息传输的实时性与可靠性的 均衡,即实时消息通信在满足消息的实时性的同时,必须能够根据消息的类型 自动调整传输参数,来适应数据流的多种需求以及不同需求之间的均衡。消息的订阅与发布机制是经过多年研究、已经成熟的消息通讯方式。这种 传统的消息订阅与发布机制可以大大提高消息通讯的可靠性,并能很好地适应 大型分布式网络体系结构。文章《基于WS-N的发布订阅消息模式的研究》 (卢传富,钱兴华.计算机与数字工程,第34巻)中详细描述了的一种传统的 消息订阅与发布机制,这种机制首先要保证的是消息的必达性一一即首先要保 证一定要把消息送达,而不考虑消息本身的实时性一一即消息从其产生开始, 持续一定时间间隔后,是否还具有实际意义;这就造成了以下问题在实时系 统中, 一旦某个消息在传输过程中因为种种原因造成了延迟,其所在队列中的 所有后续消息都会在这个延迟的基础上继续发生延迟,直到此队列的注销才结 束。这些发生了延迟的消息,往往在未被送达前就已经失去了实际意义。宝贵 的网络资源和消息緩沖区就这样被大量无意义的数据所占据,进入了 "在延迟 的基础上继续延迟"的恶性循环。
中国专利申请200410077269.6、发明名称 一种基于即时通讯平台的消 息订阅方法和系统,申请人腾讯科技(深圳)有限公司,公开了一种即时通 讯的消息订阅方法。该方法也只考虑了消息的必达性,而没有考虑消息本身的 实时性。中国专利申请200510116641.4、发明名称 一种呈现信息的通知方法和 系统,申请人华为技术有限公司,公开了一种观察体的订阅策略处理流程。 这个流程中每个订阅者都具有一个订阅有效期,这个有效期是指订阅者在特定 时间区间内接收特定种类消息的属性,如果消息产生时间已经超越了这个特定 的时间区间,该订阅者就不会收到该类消息了。这种订阅的有效性只是保证在 非有效期限内,订阅者不会收到特定的消息,没有考虑实际消息发布过程中消 息是否过期等情况。中国专利申请200610106654.8、发明名称基于会话发起协议的订阅方 法及其系统和装置,申请人华为技术有限公司,公开了另一种实现订阅者有 效期的方法。这种订阅的有效性只是保证在非有效期限内,订阅者不会收到特 定的消息,没有考虑实际消息发布过程中消息是否过期等情况。中国专利申请200610034191.9、发明名称对通讯网络中的SIP消息进 行过路的方法、设备及系统,申请人华为技术有限公司,公开了一种使用消 息过滤服务器的消息过滤方法。该方法中消息过滤器的位置集中位于消息过滤 服务器上,消息过滤器的这种位置需要将所有的消息都在本地代理中发布后才 进行过滤,没有在消息的发布过程中对消息进行过滤,占用了大量的网络资源, 且该方法中公布的过滤条件为全局统一的,灵活性不高。中国专利申请200510135949.3、发明名称 一种具有信息消息过滤功能 的移动通信系统及其方法,申请人乐金电子(中国)研究开发中心有限公司, 公开了 一种使用密码标识订阅者的消息过滤方法。该方法中通过发送密码标识 实现特定条件的消息过滤,即将未经订阅者确认来源的消息进行过滤,对于确 定来源的消息全部进行发布,没有考虑确定来源消息中消息的过期、实时性等
问题,占用了大量的网络资源,灵活性不高。通过检索未发现国外与本发明相似的公开出版物及专利。 发明内容本发明的技术解决问题是克服现有技术的不足,提供一种自适应的实时 消息订阅与发布系统及方法,该系统及方法通过原语解析转换为订阅对象与触 发规则从而实现有条件的消息传输与发布;通过釆用事件-条件-发布形式的 发布规则,实现自适应消息通信机制。本发明的技术解决方案是自适应的实时消息订阅与发布系统,包括客户 服务接口、原语解析器、消息管理器、订阅管理器、事件监一见器、条件评估器、 消息接收线程、消息发布线程、消息传送线程,其中原语解析器,接收客户发送的消息注册原语、注销原语、订阅原语和发布 原语,将接收的原语解析后,将注册消息、注销消息和发布消息发送给消息管 理器,将订阅消息发送给订阅管理器;消息管理器,将接收的注册消息进行注册;将接收的注销消息进行注销; 根据接收的发布消息更新发布消息列表,触发事件监测器;消息接收线程,接收外部的订阅或发布消息,并将接收的订阅或发布消息 发送给订阅管理器;订阅管理器,根据接收的原语解析器发送的订阅消息更新订阅消息列表, 将订阅消息发送给消息发布线程;接收消息接收线程发送的订阅消息,根据接 收的消息接收线程发送的订阅消息更新订阅消息列表,并触发事件监测器;接 收消息接收线程发送的发布消息,并根据订阅消息列表查询本地订阅者,通过 客户服务接口发送相应本地订阅者;事件监测器,根据消息管理器或订阅管理器触发的事件,将与所述事件相 关的条件发送给条件评估器;条件评估器,根据接收的事件监测器发送的条件进行评估,若条件为真, 触发消息发布线程;若条件为假,中止消息发布;
消息发布线程,接收通过条件评估器评估的发布消息,或订阅管理器发送的订阅消息;给消息设定优先级,并按优先级将消息放入消息队列;消息传送线程,从消息队列中读取消息,并发送。所述的消息接收线程与消息传送线程之间可以进行消息确认,消息接收线 程接收外部代理中消息传送线程发送的确认信息,经该确认信息发送给消息发 布线程,由消息发布线程从消息队列中将确认的消息删除,若指定时间内,消 息接收线程没有接收到确认信息,本地消息发布线程将消息队列中的该消息重 新发送,直至消息确认或失效。自适应的实时消息订阅与发布方法,包括消息订阅和消息发布两部分,其中消息发布实现过程为(1 )将客户发送的消息发布原语进行解析,解析后更新消息发布列表,触 发消息发布事件,查询该消息是否存在订阅者,若存在订阅者,转步骤(2), 否则,中止该消息发布;(2) 按照订阅者定义的条件对消息进行评估,将满足条件的消息设定优先 级,并緩存到消息队列,从消息队列中依顺序发布给步骤(1)中订阅者所在的 代理;将不满足条件的消息中止发布;(3) 订阅者所在代理接收消息,判断消息是否需要确认,若需要确认,转 步骤(4),否则,通知所述代理中的消息订阅者;(4 )订阅者所在代理对消息进行确认,并将确认消息发送给消息发布代理, 消息发布代理将确认的消息从消息队列中删除;若订阅者所在代理对消息在指 定时间内没有进行确认,消息发布代理将该消息重新发布,直至消息确认或失 效;消息订阅实现过程为(5)将客户发送的消息订阅原语进行解析,解析后更新消息订阅列表,同 时将该订阅消息传送给其他结点;
(6)所有结点触发消息订阅事件,查询是否存在有效消息,若存在有效消 息,转步骤(2),否则,等待步骤(1)中的消息发布。 本发明与现有技术相比有益效果为(1 )本发明通过原语规范消息订阅与发布,并通过原语解析转换为订阅对 象与触发规则,与现有技术直接进行消息订阅与发布流程控制相比,本发明可 以灵活的改进、扩展消息订阅与发布机制。(2) 本发明在消息发布过程中针对实时发布的每条消息进行过滤,考虑客 户要求的发送条件、消息的优先级等对消息进行排序后发布,节约了网络资源 并提高了消息发布及订阅的灵活性、可靠性。(3) 本发明在对消息进行优先级设定的时候考虑消息的截止期、消息的可 信度、消息的关键程度进行优先级设定,与现有技术只考虑消息的截止期或关 键程度相比,更全面的考虑了各个消息发布过程中的各个方面,增强系统的过 载处理能力,从而保证关键的消息在任何负载情况下都能够及时送达。(4) 本发明将较大的数据包处理成具有统一大小的数据报文,可以防止一 个较长的数据包的发送影响紧急的数据包发送,出现优先级反转的现象。


图1为本发明物理环境示意图; 图2为本发明客户与代理连接示意图; 图3为本发明系统组成示意图; 图4为本发明消息发布流程图; 图5为本发明消息订阅流程图。
具体实施方式
实施例如图1所示,为本发明物理环境示意图。*支_没物理环境中有多个结点通过 网络联结,每个结点可能包含若干个传感器与致动器,这些结点之间需要互相 了解环境相关的信息,即结点A通过传感器获得的环境状态信息s可能是结点
B进行控制动作a所需要的,而结点B所进行的控制动作a又需要反馈到结点 A,从而协调两者之间的动作。A需要发布消息s,而订阅者是结点B,同样结 点B需要发布消息a,而订阅者是结点A;另外系统可能还存在其它一些相关 结点如C、 D等需要及时了解来自A与B的所有信息。图2为上面所述的物理 环境中的单个节点客户与本地代理之间的连接示意图。所述的本地代理即本发明的实时消息订阅与发布系统组成框图如图3所 示,本发明系统包括实时消息订阅与发布服务(以下简记为RTPS)连接点、 客户服务接口、原语解析器、消息管理器、订阅管理器、事件监视器、条件评 估器、消息接收线程、消息发布线程、消息传送线程;RTPS连接点允许客户 建立与本地代理之间的连接,从而能够实现RTPS客户与本地代理之间的双向 交互,实现消息的订阅与发布。RTPS连接点支持以事件方式通知RTPS客户 新的消息与相关的原语执行结果。客户服务接口负责管理本地RTPS客户与代 理之间的连接,区分不同客户订阅的消息并通过相应的连接点通知客户。原语 解析器,接收客户发送的消息注册原语,将接收的注册原语解析后,向消息管 理器注册该消息;或接收客户发送的消息注销原语,将接收的注销原语解析后, 向消息管理器注销该消息;或接收客户发送的订阅原语,将订阅原语进行解析, 解析后将该订阅消息发送给订阅管理器;订阅管理器,接收原语解析器发送的 订阅消息,更新本地订阅信息表,生成相应的订阅消息,并将生成的消息发送 给消息发布线程,由消息发布线程将该消息送入消息队列,由消息传送线程发 送给消息源结点;消息源结点处消息接收线程接收该消息,并将该消息发送给 订阅管理器,由订阅管理器更新订阅消息列表,并触发事件监测器,由事件监 测器根据订阅消息中的事件与条件触发消息发布,将满足事件与条件的消息发 送给条件评估器,由条件评估器将满足发布条件的消息发送给消息发布线程, 由消息发布线程将该消息送入消息队列,由消息传送线程发送给订阅者;当原 语解析器接收的是客户发送的消息发布原语,将消息发布原语进行解析,解析 后将发布消息发送给消息管理器,消息管理器更新消息发布列表后触发事件监测器,事件监测器调用条件评估器进行条件评估,将满足条件的消息发送到消 息发布线程,由消息发布线程设定优先级,并将消息按优先级緩存到消息队列 中,由消息传送线程从消息队列中读取消息进行发送。
消息接收线程与消息传送线程之间可以进行消息确认,消息接收线程接收 外部代理中消息传送线程发送的确认信息,经该确认信息发送给消息发布线程, 由消息发布线程从消息队列中将确认的消息删除,若指定时间内,消息接收线 程没有接收到确认信息,本地消息发布线程将消息队列中的该消息重新发送, 直至消息确认或失效。
如图4、 5所示,为本发明消息发布与订阅方法流程图,方法具体实现步 骤如下消息发布流程实现过程如下(1) 将客户发送的消息发布原语进行解析,解析后更新消息发布列表,触 发消息发布事件,查询该消息是否存在订阅者,若存在订阅者,转步骤(2), 否则,中止该消息发布;(2) 按照订阅者定义的条件对消息进行评估,将满足条件的消息设定优先 级,并緩存到消息队列,从消息队列中依顺序发布给步骤(1)中订阅者所在的 代理;将不满足条件的消息中止发布;(3) 订阅者所在代理接收消息,判断消息是否需要确认,若需要确i人,转 步骤(4),否则,通知所述代理中的消息订阅者;(4 )订阅者所在代理对消息进行确认,并将确认消息发送给消息发布代理, 消息发布代理将确认的消息从消息队列中删除;若订阅者所在代理对消息在指 定时间内没有进行确认,消息发布代理将该消息重新发布,直至消息确-认或失 效;消息订阅实现过程为(5)将客户发送的消息订阅原语进行解析,解析后更新消息订阅列表,同 时将该订阅消息传送给其他结点;
(6)所有结点触发消息订阅事件,查询是否存在有效消息,若存在有效消 息,转步骤(2),否则,等待步骤(1)中的消息发布上面所述的本发明系统与方法中设定优先级考虑消息的截止期、消息的可 信度、消息的关键程度采用优先级表方法进行设定,设定方法可参照软件学报, 2004年第15巻第3期,名称"基于优先级表的实时调度算法及其实现"。下面具体介绍本发明实现实时消息订阅与发布服务(简记为RTPS)的基础原语。在实时消息订阅与发布系统中,每个客户程序都可以成为消息的生产者,也可以成为消息的消费者。对于消息的生产者来说,必须使用消息注册原语向系统注册消息,该原语语法如下尺eg/ste厂/77sg一A ame (Type, T7f/e, Soiv厂ce, Deacf〃A7e, ConZ/cfence, 〖afM/)〃te7, affAy/)"te2,…刀;同一个消息可以由多个发布者注册,每次注册导致消息的参考计数适当增 加。所有消息都具有下面的缺省属性,包括消息名称(/T sgLA aA77e)、消息类型 (7"ype)、消息标题(77f/e)、消息的来源(Sowrce)、消息的截止期(Deacf/// e)、 消息的可信度(CoA7/)'cfeA7ce)。而消息的其它属性都是用户定义的,包括消息内 容及其各个子内容。同样,当消息的生产者不再发布消息时,应该向系统注销消息,以免影响 订阅者有效地获取消息。消息注销的原语语法如下 1// 厂eg/'ste/" msg一A aA77e;每当一个消息被注销,则消息的参考计数适当减少,当参考计数为0时, 则消息被注销并从消息列表中删除,即该消息已经没有来源。实时消息订阅与发布系统采用命名方式发布数据,每个订阅对象(Tag) 具有一个全局唯一的名称,标识了消息发布者与订阅者之间的一类消息。实时 消息的特点是内容随着时间过去会失效,因此要求周期性地刷新,例如工厂过 程控制中的反应炉温度、股市行情等等。为了实现自适应的消息订阅,首先定 义两个原i吾St/ibscA7jbe与Ptyjb//'s/7 。
订阅原语的语法如下/b厂/f/ca/"ess, //7 i7"/'casf acfcfress/ /joo/t"订阅原语表明了 一个订阅对象可以订阅消息对象的部分属性,而不是全部 属性,例如订阅者只对消息的标题感兴趣,则只需在属性列表中指定标题属性。订阅原语的OA 子句定义了消息发布的触发事件,这些事件包括MSG—REGISTER (消息被注册时)、MSG—UNREGISTER (消息被注销时)、 MSG—UPDATE (消息被更新时)、MSG一SUBSCR旧ED (当消息被订阅时)、 MSG—LOST_VALIDITY (当消息失去有效性时)等,并且这些事件的参数可以 是任意的消息。订阅原语的/f子句定义了消息的过滤条件,釆用逻辑表达式的 形式,例如订阅者指定只有当消息的可信度大于0.8是才对这个消息感兴趣, 则表达式为msg-r aA77e.Co/7行cfe/ ce〉0.8,这样保证用户只是得到自己想要的消 息而不是所有的消息。消息订阅原语中的1/Wf/ 子句定义了一些与消息发布相关 的属性,包括消息的重要程度cA7'f/ca/A ess表达了订阅者对这个消息的期望程 度,可选参数多点播送地址与端口适用于一组订阅者,能够提高一对多与多对 多的消息传输效率。ACX与A/OACX选项用于设置消息发布是是否需要接收方 确认,从而提供消息传输的可靠性。当一个客户对所订阅的消息不再感兴趣时, 可以通过DEAC7"A/;A7E选项取消订阅,语法如下 St/ibsc厂/jbe teg一name DEAC77醇E;消息发布原语用于消息发布者发布最新的消息版本,其语法如下消息发布原语促使系统更新消息内容,产生新的消息版本,并才艮据定义的 订阅对象进行消息发布。 一个消息可以具有多个发布者,但是发布的消息可能
具有不同的可信度与截止期,系统总是在使用有效截止期内可信度最高的消息。 本发明消息订阅通过解析把原语转换为订阅对象与触发规则从而实现有条 件的消息传输与发布。消息的订阅与发布原语转换为下面所述的订阅对象与规则关键代码如下c/ass steg—o/Vecf/" 〃 请对,^:乂〃^《,S"ibsc厂必e ^絲鞋颠;t乂 ...aff〃Me7,-… aff厂/jbt/te2;c〃f/ca//'f>v c^ar* a7 ty/f/casfacfc/; /'/ f port;〃 请纽拟麟#〃n/cecf"sf <sl/jbsc〃jber> sL/jbsc〃jber//'sf; /A>7^^,/^pt/jb//s/7(7nf parameter=/\CK|A/CWC/g; 〃^于^,感发才的才法 sujbsc厂/jbe〖opf/oA a/joa/"ameter=DEAC77W\TiE " 〃y^于》H-;^贿W才法 ;;De/)y e ru/e steg_n7/e 〃^r贿魂/yW定乂 Oa ...7T7en sfag—ofci/ecf-p""*"..."本发明未公开技术属本领域技术人员公知常识。
权利要求
1、自适应的实时消息订阅与发布系统,其特征在于包括客户服务接口、原语解析器、消息管理器、订阅管理器、事件监视器、条件评估器、消息接收线程、消息发布线程、消息传送线程,其中原语解析器,接收客户发送的消息注册原语、注销原语、订阅原语和发布原语,将接收的原语解析后,将注册消息、注销消息和发布消息发送给消息管理器,将订阅消息发送给订阅管理器;消息管理器,将接收的注册消息进行注册;将接收的注销消息进行注销;根据接收的发布消息更新发布消息列表,触发事件监测器;消息接收线程,接收外部的订阅或发布消息,并将接收的订阅或发布消息发送给订阅管理器;订阅管理器,根据接收的原语解析器发送的订阅消息更新订阅消息列表,将订阅消息发送给消息发布线程;接收消息接收线程发送的订阅消息,根据接收的消息接收线程发送的订阅消息更新订阅消息列表,并触发事件监测器;接收消息接收线程发送的发布消息,并根据订阅消息列表查询本地订阅者,通过客户服务接口发送相应本地订阅者;事件监测器,根据消息管理器或订阅管理器触发的事件,将与所述事件相关的条件发送给条件评估器;条件评估器,根据接收的事件监测器发送的条件进行评估,若条件为真,触发消息发布线程;若条件为假,中止消息发布;消息发布线程,接收通过条件评估器评估的发布消息,或订阅管理器发送的订阅消息;给消息设定优先级,并按优先级将消息放入消息队列;消息传送线程,从消息队列中读取消息,并发送。
2、 根据权利要求1所述的自适应的实时消息订阅与发布系统,其特征在于 所述的消息接收线程与消息传送线程之间可以进行消息确认,消息接收线程接 收外部代理中消息传送线程发送的确认信息,经该确认信息发送给消息发布线 程,由消息发布线程从消息队列中将确认的消息删除,若指定时间内,消息接 收线程没有接收到确认信息,本地消息发布线程将消息队列中的该消息重新发 送,直至消息确认或失效。
3、 根据权利要求1或2所述的自适应的实时消息订阅与发布系统,其特征 在于所述的设定优先级考虑消息的截止期、消息的可信度、消息的关键程度 釆用优先级表方法进行设定。
4、 根据权利要求1或2所述的自适应的实时消息订阅与发布系统,其特征 在于所述的消息发布线程将接收的大于预先设定长度的消息进行拆分,保证 该消息后面的优先级高的消息不会^^皮大的消息阻塞。
5、 自适应的实时消息订阅与发布方法,其特征在于包括消息订阅和消息发 布两部分,其中消息发布实现过程为(1) 将客户发送的消息发布原语进行解析,解析后更新消息发布列表,触 发消息发布事件,查询该消息是否存在订阅者,若存在订阅者,转步骤(2), 否则,中止该消息发布;(2) 按照订阅者定义的条件对消息进行评估,将满足条件的消息设定优先 级,并緩存到消息队列,从消息队列中依顺序发布给步骤(1)中订阅者所在的 代理;将不满足条件的消息中止发布;(3) 订阅者所在代理接收消息,判断消息是否需要确认,若需要确认,转 步骤(4),否则,通知所述代理中的消息订阅者;(4 )订阅者所在代理对消息进行确认,并将确认消息发送给消息发布代理, 消息发布代理将确认的消息从消息队列中删除;若订阅者所在代理对消息在指 定时间内没有进行确认,消息发布代理将该消息重新发布,直至消息确认或失 效;消息订阅实现过程为(5)将客户发送的消息订阅原语进行解析,解析后更新消息订阅列表,同时将该订阅消息传送给其他结点;(6)所有结点触发消息订阅事件,查询是否存在有效消息,若存在有效消 息,转步骤(2),否则,等待步骤(1)中的消息发布。
6、根据权利要求5所述的自适应的实时消息订阅与发布方法,其特征在于 所述的设定优先级考虑消息的截止期、消息的可信度、消息的关键程度采用优 先级表方法进行设定。
全文摘要
本发明涉及一种自适应的实时消息订阅与发布系统及方法,该系统包括客户服务接口、原语解析器、消息管理器、订阅管理器、事件监视器、条件评估器、消息接收线程、消息发布线程、消息传送线程。本发明克服现有技术的不足,通过原语解析转换为订阅对象与触发规则从而实现有条件的消息传输与发布;通过采用事件-条件-发布形式的发布规则,实现自适应消息通信机制,且本发明在消息发布过程中针对实时发布的每条消息进行过滤,考虑客户要求的发送条件、消息的优先级等对消息进行排序后发布,节约了网络资源并提高了消息发布及订阅的灵活性、可靠性。
文档编号H04L12/58GK101159711SQ20071017813
公开日2008年4月9日 申请日期2007年11月27日 优先权日2007年11月27日
发明者锐 张, 戴涧峰, 王崇羽, 王志勇, 媛 袁 申请人:航天东方红卫星有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1