CN102710593B - 一种图形聚合中的消息分发方法及装置、系统 - Google Patents

一种图形聚合中的消息分发方法及装置、系统 Download PDF

Info

Publication number
CN102710593B
CN102710593B CN201210073225.0A CN201210073225A CN102710593B CN 102710593 B CN102710593 B CN 102710593B CN 201210073225 A CN201210073225 A CN 201210073225A CN 102710593 B CN102710593 B CN 102710593B
Authority
CN
China
Prior art keywords
message
module
event
widget
data source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201210073225.0A
Other languages
English (en)
Other versions
CN102710593A (zh
Inventor
程渤
章洋
陈俊亮
李强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN201210073225.0A priority Critical patent/CN102710593B/zh
Publication of CN102710593A publication Critical patent/CN102710593A/zh
Application granted granted Critical
Publication of CN102710593B publication Critical patent/CN102710593B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种图形聚合中的消息分发装置,所述装置包括:发布订阅关系表,用于保存已定义的数据源与Widget应用端各Widget组件之间的订阅关系;数据源连接模块,用于接收数据源发送的消息,并传送给所述事件驱动模块;事件驱动模块,用于对所述消息进行解析,获得所述消息的名称和发布者信息,并基于所述消息的名称和发布者信息在所述发布订阅关系表中查询对应所述消息的订阅关系,根据所查询到的订阅关系,将所述消息通过所述消息推送模块推送给相应Widget应用端的指定Widget组件。相应的,本发明还公开了一种图形Mashup中的消息分发系统及方法,降低了Widget应用端和逻辑层、数据源之间的耦合性,并且提高了系统的信息获取性能和可维护性。

Description

一种图形聚合中的消息分发方法及装置、系统
技术领域
本发明涉及电信和计算机相关技术领域,尤其涉及一种图形聚合(Mashup)中的消息分发方法及装置、系统。
背景技术
聚合(Mashup)在局域网络环境(如企业的局域网)中代表着整合不同来源的内容以提供统一完整体验的WEB站点或应用程序,已经成为了快速组装新的应用程序的一种趋势。WEB2.0技术的应用,成为Mashup数据源展现的主要方式。
在局域网的数据源通过Mashup后,要将其友好的展现给用户,才能达到数据进行Mashup的目的,因此,微技(Widget)作为WEB2.0的具体展现手段,迅速发展。Widget是信息或内容以独立Web应用的形式在用户侧的呈现,它通过和远端服务器互动,在客户端上自动显示和更新本地和远端的数据。Widget本身上并不是一种新的技术,而是已有技术应用的改良,本质上是“JavaScript+Html5+CSS”的组合应用。移动Widget是将Widget的理念移植到移动终端,以Widget的形式将移动增值业务部署到移动终端上,通过调用Mashup整合后的数据,将有价值的信息迅速通过良好的方式展示给移动用户。对于移动用户来说,具有业务体验统一,获取和使用方便等优点;对于服务提供商(SP)来说具有业务开发敏捷,测试简单,业务流程调整灵活的等特点。Widget的出现,以及移动Widget的较大范围应用,也给很多诸如煤矿等传统工业的生产监控提供了安全生产决策的便利,并大大其监控效率。
Widget技术和Mashup技术正在逐渐融合使用,生成能为用户提供更大信息量的应用。
图形Mashup的含义包括以下两个方面:一、将需要的Widget组件拼装放置在新的应用页面上;二、图形Mashup通过连接数据源,进行图形Mashup:即对来自底层数据源的消息进行Mashup后,发送到业务逻辑处理平台,业务逻辑处理平台根据相应的业务逻辑流程进行处理,并将处理后的消息分发给Widget组件。其中,消息如何发送到指定的Widget组件是图形Mashup中的一个关键问题。但是现有的方式在Widget应用端获取消息数据时,需要Widget组件通过定时的轮询方式获取数据源消息,但是这种方式存在缺陷,首先,其耦合程度较大,Widget应用包含表现层、业务逻辑层、数据源连接等功能,对于移动终端来说会耗费较多资源,同时,后期的升级和维护成本较高;其次,采取传统的轮询方式进行通信,如果数据源的消息数据的产生频率比较低,那么每次的轮询通信就不一定获取到所需的消息数据,其效率明显降低,耗费了移动网络通信资源。
发明内容
有鉴于此,本发明的主要目的在于提供一种图形聚合中的消息分发方法及系统,能够将来自数据源的消息主动推送给相应Widget应用端的指定Widget组件,降低Widget应用端和逻辑层、数据源之间的耦合性。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种图形Mashup中的消息分发装置,所述装置包括:发布订阅关系表、事件驱动模块、数据源连接模块和消息推送模块;其中,
发布订阅关系表,用于保存已定义的数据源与Widget应用端各Widget组件之间的订阅关系;
数据源连接模块,用于接收数据源发送的消息,并传送给所述事件驱动模块;
事件驱动模块,用于对所述数据源连接模块传送的消息进行解析,获得所述消息的名称和发布者信息,并基于所述消息的名称和发布者信息在所述发布订阅关系表中查询对应所述消息的订阅关系,根据所查询到的订阅关系,将所述消息通过所述消息推送模块推送给相应Widget应用端的指定Widget组件。
在上述方案中,所述装置还包括:预定配置的包含有事件规则的事件规则定义表,所述事件规则,表示对指定消息的逻辑处理规则;
事件驱动模块,还用于从所查询到的订阅关系中提取所述消息的订阅者信息,并基于所述消息的名称、发布者信息和订阅者信息,查询所述事件规则定义表,如果存在与所述消息的名称、发布者信息和订阅者信息相符合的事件规则,则基于所述事件规则对所述消息进行逻辑处理后,通过所述消息推送模块推送给相应Widget应用端ID的指定Widget组件;如果不存在与所述消息的名称、发布者信息和订阅者信息相符合的事件规则,则直接将所述消息通过消息推送模块推送给相应Widget应用端ID的指定Widget组件。
在上述方案中,所述装置还包括:消息接收模块,用于接收来自Widget应用端各Widget组件的消息,并传送给所述事件驱动模块;
所述事件驱动模块,还用于对所述消息接收模块传送的消息进行解析,获得所述消息的名称和订阅者信息,并基于所述消息的名称和订阅者信息在所述发布订阅关系表中查询对应所述消息的订阅关系,根据所查询到的订阅关系,将所述消息通过所述数据源连接模块发送给指定的数据源。
在上述方案中,所述装置还包括:发布订阅注册请求模块和订阅者注册模块;其中,
发布订阅注册请求模块,用于接收操作人员输入的需注册订阅关系的相关信息,将需注册订阅关系的相关信息按照预定格式打包,生成订阅请求并发送给所述订阅者注册模块;
订阅者注册模块,用于接收所述发布订阅注册请求模块发送的订阅请求,并将所述订阅请求中的订阅关系注册到所述发布订阅关系表。
在上述方案中,所述装置还包括:发布订阅管理模块;
发布订阅注册请求模块,用于接收操作人员输入的需取消订阅关系的相关信息,将需取消订阅关系的相关信息按照预定格式打包,生成取消订阅请求并发送给所述发布订阅管理模块;
发布订阅管理模块,用于接收所述发布订阅注册请求模块发送的取消订阅请求,并将所述订阅请求中的订阅关系从所述发布订阅关系表中删除。
本发明还提供了一种图形Mashup中的消息分发系统,所述系统包括:如权利要求1至5任一项所述图形Mashup中的消息分发装置和设置在Widget应用端的至少一个消息接口,一个消息接口连接一个Widget组件;
所述消息接口包括消息接收接口,用于接收所述消息推送模块推送给相应Widget组件的消息。
在上述方案中,所述消息接口还包括消息发送接口,用于将相应Widget组件的消息发送给所述消息分发装置的消息接收模块。
本发明还提供了一种图形Mashup中的消息分发方法,所述方法包括:
将已定义的数据源与Widget应用端各Widget组件之间的订阅关系保存到发布订阅关系表;
数据源连接模块接收数据源发送的消息,并传送给事件驱动模块;
事件驱动模块对所述数据源连接模块传送的消息进行解析,获得所述消息的名称和发布者信息;
事件驱动模块基于所述消息的名称和发布者信息在所述发布订阅关系表中查询对应所述消息的订阅关系,根据所查询到的订阅关系,将所述消息通过消息推送模块推送给相应Widget应用端的指定Widget组件。
在上述方案中,所述方法还包括:预定配置的包含有事件规则的事件规则定义表,所述事件规则,表示对指定消息的逻辑处理规则;
所述根据所查询到的订阅关系,将所述消息通过消息推送模块推送给相应Widget应用端的指定Widget组件,包括:事件驱动模块从所查询到的订阅关系中提取所述消息的订阅者信息,并基于所述消息的名称、发布者信息和订阅者信息,查询所述事件规则定义表,如果存在与所述消息的名称、发布者信息和订阅者信息相符合的事件规则,则基于所述事件规则对所述消息进行逻辑处理后,通过所述消息推送模块推送给相应Widget应用端ID的指定Widget组件;如果不存在与所述消息的名称、发布者信息和订阅者信息相符合的事件规则,则直接将所述消息通过消息推送模块推送给相应Widget应用端ID的指定Widget组件。
在上述方案中,所述方法还包括:消息接收模块接收来自Widget应用端各Widget组件的消息,并传送给事件驱动模块;
事件驱动模块对所述消息接收模块传送的消息进行解析,获得所述消息的名称和订阅者信息,并基于所述消息的名称和订阅者信息在所述发布订阅关系表中查询对应所述消息的订阅关系,根据所查询到的订阅关系,将所述消息通过所述数据源连接模块发送给指定的数据源。
在上述方案中,所述将已定义的数据源与Widget应用端各Widget组件之间的订阅关系保存到发布订阅关系表,包括:
发布订阅注册请求模块接收操作人员输入的需注册订阅关系的相关信息,将需注册订阅关系的相关信息按照预定格式打包,生成订阅请求并发送给订阅者注册模块;
订阅者注册模块接收所述发布订阅注册请求模块发送的订阅请求,并将所述订阅请求中的订阅关系注册到所述发布订阅关系表。
在上述方案中,所述方法还包括:发布订阅注册请求模块接收操作人员输入的需取消订阅关系的相关信息,将需取消订阅关系的相关信息按照预定格式打包,生成取消订阅请求并发送给所述发布订阅管理模块;
发布订阅管理模块接收所述发布订阅注册请求模块发送的取消订阅请求,并将所述订阅请求中的订阅关系从所述发布订阅关系表中删除。
本发明图形Mashup中的消息分发方法及装置、系统,能够根据预先定义的订阅关系,将来自数据源的消息主动推送给相应Widget应用端的指定Widget组件,通过消息分发装置及系统和逻辑层、数据源进行交互处理,将Widget应用端和逻辑层、数据源之间的关系进行解耦合,Widget应用端只负责表现层的功能,不再参与和逻辑层之间的运算逻辑流程以及与底层数据源之间的交互,将Widget应用端普遍存在的高耦合现象消除,降低了Widget应用端和逻辑层、数据源之间的耦合性,为使用Widget组件生成的图形Mashup应用提供良好的后台数据连接支持,并且还提高了系统的信息获取性能。
此外,本发明的消息分发装置及系统,将各个逻辑层进行平台化,各层平台之间只通过简单的接口和通用的消息方式进行通信连接,从而使得系统趋于分层的平台化,使得各个分层平台之间耦合度极低,任何一层平台的改造都与系统的其他部分完全无关联,提高了系统的可维护性。
附图说明
图1为本发明实施例一中消息分发系统的组成结构示意图;
图2为本发明实施例一中事件规则的XML格式示意图;
图3为本发明实施例二中消息分发方法的实现流程图;
图4为本发明实施例二将所述订阅关系注册到发布订阅关系表的实现流程图;
图5为本发明实施例二事件驱动模块基于事件规则对消息进行逻辑处理的实现流程图;
图6为本发明实施例二Widget应用端的消息发送接口向事件驱动模块发送消息的实现流程图;
图7为本发明实施例二事件驱动模块向Widget应用端的消息接收接口发送消息的实现流程图。
具体实施方式
本发明的基本思想是:提供一种图形Mashup中的消息分发方法及装置、系统,应用于基于Widget组件的图形Mashup中,连接在数据源与Widget应用端之间,能够将来自数据源的消息直接并主动的推送给Widget应用端的指定Widget组件。
实施例一
本实施例中,图形Mashup中的消息分发系统,如图1所示,该系统主要包括:位于服务器端的消息分发装置、以及位于Widget应用端的消息接口,其中,消息分发装置可以包括发布订阅注册请求模块、发布订阅注册中心、消息事件驱动处理单元,发布订阅注册中心可以包括:订阅者注册模块、发布订阅管理模块和发布订阅关系表,消息事件驱动处理单元包括消息接收模块、消息推送模块、数据源连接模块、事件驱动模块、事件规则定义表和内存数据库;位于Widget应用端侧的消息接口,一个消息接口包括一个消息发送接口和一个消息接收接口,消息接口可以是至少一个,一个消息接口对应一个Widget组件,可以由Widget应用端的Widget组件数量来决定。
发布订阅注册请求模块是消息分发装置提供给获得权限的普通用户或者订阅关系管理者的接口,获得权限的普通用户或者订阅关系管理者可以通过该接口将需要注册或取消的订阅关系在消息分发装置的发布订阅注册中心进行订阅关系的注册或取消。具体地,发布订阅注册请求模块主要用于接收操作人员输入的需注册订阅关系的相关信息,将需注册订阅关系的相关信息按照预定格式打包,生成订阅请求并发送给所述订阅者注册模块;此外,还用于接收操作人员输入的需取消订阅关系的相关信息,将需取消订阅关系的相关信息按照预定格式打包,生成取消订阅请求并发送给所述发布订阅管理模块;
这里,订阅关系的相关信息主要可以包括订阅者信息、发布者信息、以及需订阅或需取消订阅的消息。其中,发布者即为数据源,发布者信息可以包括数据源的地址、标识等,订阅者即为Widget组件,订阅者信息可以包括Widget组件的唯一标识。每个Widget组件都有一个唯一标识,这个唯一标识可以使用Java的java.util.UUID。
在整个消息分发装置的架构中,发布订阅注册中心,主要用于处理所有连接到消息分发装置的Widget应用端各Widget组件和数据源之间的订阅关系,各Widget组件和数据源之间的订阅关系都由发布订阅注册中心进行管理并记录在本地的发布订阅关系表中。
其中,订阅者注册模块,用于接收所述发布订阅注册请求模块发送的订阅请求,并将所述订阅请求中的订阅关系注册到所述发布订阅关系表。具体地,接收发布订阅注册请求模块发送的订阅请求,查询所述发布订阅关系表,如果所述订阅请求中的订阅关系在所述发布订阅关系表中不存在,则将所述订阅请求中包含的订阅关系写入到发布订阅关系表中,在消息分发装置进行订阅关系的注册;如果所述订阅请求中的订阅关系在所述发布订阅关系表中存在,则不写入。
发布订阅管理模块,用于接收所述发布订阅注册请求模块发送的取消订阅请求,并将所述订阅请求中的订阅关系从所述发布订阅关系表中删除。具体地,接收发布订阅注册请求模块发送的取消订阅请求,查询所述发布订阅关系表,如果所述取消订阅请求中的订阅关系在所述发布订阅关系表中不存在,则不动作;如果所述取消订阅请求中的订阅关系在所述发布订阅关系表中存在,则将所述取消订阅请求中包含的订阅关系从发布订阅关系表中删除,在消息分发装置进行订阅关系的取消。
实际应用中,发布订阅注册请求模块发出的订阅请求可以是一个TCP数据包,该TCP数据包中的订阅关系可以是预定义的“X订阅了Y的Z消息”的形式,其中,X表示的订阅者,Y表示的是发布者,Z表示订阅的相关信息。发布订阅注册请求模块使用Java Socket将订阅请求发送到发布订阅注册中心的订阅者注册模块;订阅者注册模块监听并接收订阅请求,将所述订阅请求拆包,获得其中的订阅关系并写入到发布订阅关系表中。发布订阅注册请求模块发出的取消订阅请求也可以是一个TCP数据包,该TCP数据包中的订阅关系可以是预定义的“X取消订阅Y的Z消息”的形式,其中,X表示的订阅者,Y表示的是发布者,Z表示订阅的相关信息。发布订阅注册请求模块使用JavaSocket将取消订阅请求发送到发布订阅注册中心的发布订阅管理模块;发布订阅管理模块监听并接收取消订阅请求,将所述取消订阅请求拆包,获得需取消的订阅关系,并将所述需取消的订阅关系从发布订阅关系表中删除。
这里,发布订阅关系表包含有各Widget组件和各数据源之间的订阅关系。
消息事件驱动处理单元,主要用于根据发布订阅注册中心中的发布订阅关系表,传递数据源与Widget应用端之间交互的消息。
其中,事件驱动模块主要用于实现两部分功能:一是,对于来自Widget应用端的消息,通过查询发布订阅关系表,将所述消息通过数据源连接模块发送给指定的数据源。二是,对于来自数据源的消息进行逻辑处理后通过消息推送模块将所述消息推送给相应Widget应用端的指定Widget组件。
具体地,事件驱动模块通过消息接收模块接收来自Widget应用端的消息,对所述消息进行解析,获取所述消息的特征(包括所述消息的名称、以及对应的Widget应用端ID和订阅者信息);读取发布订阅关系表,基于所述消息的特征在所述发布订阅关系表中查询相应的订阅关系,进一步获得所述消息的特征(包括所述消息的发布者信息);并将所述消息通过数据源连接模块发送给相应的数据源。这里,事件驱动模块将所述消息及所述消息的发布者信息一起发送给数据源连接模块,数据源连接模块可以根据所述消息的发布者信息,将所述消息发送给相应的数据源。
具体地,事件驱动模块通过数据源连接模块接收来自数据源的消息,对所述消息进行解析,获取所述消息的特征(包括所述消息的名称和发布者信息);读取发布订阅关系表,基于所述消息的特征在所述发布订阅关系表中查询相应的订阅关系,进一步获得所述消息的特征(包括所述消息对应的Widget应用端ID、和订阅者信息);基于所述消息的特征,查询事件规则定义表,如果存在与所述消息的特征相符合的事件规则,则基于所述事件规则对所述消息进行逻辑处理后,通过所述消息推送模块推送给相应Widget应用端ID的指定Widget组件;如果不存在与所述消息的特征相符合的事件规则,则无需进行逻辑处理,直接将所述消息通过消息推送模块推送给相应Widget应用端ID的指定Widget组件。这样,通过事件驱动模块实现了对指定消息的逻辑处理,满足了复杂工业应用中的业务逻辑处理需求。这里的逻辑处理具体可以是按照预设的逻辑顺序对相应的消息进行短暂存储并顺序发送,也可以是对相应的消息进行综合业务逻辑处理。这里,事件驱动模块将所述消息及所述消息的订阅者信息一起发送给消息推送模块,消息推送模块可以根据所述消息的订阅者信息,将所述消息发送给相应Widget应用的Widget组件。
这里,所述消息的特征可以包括所对应Widget应用的ID、订阅者即Widget组件的信息(如名称等)、发布者即数据源的信息(如名称等)、以及所述消息的名称等。
事件规则定义表包含事件规则,存储在消息事件驱动处理单元,事件规则表示对指定消息的逻辑处理规则。事件规则定义表采用XML文件的形式实现,其中事件规则定义的格式如图2所示。其中,<rules>表示所定义的多种事件规则,<rule>表示一条具体的事件规则,<widgetid>表示相应Widget应用的ID,<widgetpub>表示指定消息的发布者即数据源的信息,<widgetsub>表示指定消息的订阅者即Widget组件的信息,<messagenaem>表示指定消息的名称,<processclass>是对于指定消息需要调用的处理类的类名,<method>表示处理类的方法名。实际应用中,事件驱动模块基于事件规则对指定消息进行逻辑处理时,通过Java反射机制实现。具体地,事件驱动模块读取事件规则中处理该消息需要调用的处理类的类名和方法名,使用Java反射机制,对该处理类进行实例化后,调用该处理类的方法名,将消息作为参数传递给该处理类进行相应的逻辑处理,并获取返回的消息内容。
事件驱动模块,还可以用于将未能及时发出的消息写入内存数据库中进行保存。例如,可以在连接中断(如消息推送模块和Widget应用端连接超时、或数据源连接模块与数据源之间连接超时)等情况下,事件驱动模块将要发出的消息发出写入到内存数据库中进行保存。在连接正常后,再读取所述内存数据库中的消息并按照上述的方式发出。
内存数据库用于存储未能及时发出的消息。具体地,对于每一条消息,内存数据库均保存有该消息的有效时间,内存数据库基于各消息的有效时间,定期清除无效的消息。具体地,内存数据库定期基于各消息的有效时间判断该消息是否有效,对于有效的消息继续保存,对于无效的消息删除。
数据源连接模块用于在数据源与事件驱动模块之间进行消息传递。具体地,数据源连接模块,用于将来自不同数据源的消息以轮询的方式读取出来,并将读取出来的消息传送给事件驱动模块;以及接收事件驱动模块发送的消息及所述消息对应的发布者信息,并基于所述消息对应的发布者信息将所述消息发送给相应的数据源。
消息接收模块用于接收来自Widget应用端的消息,并传递给事件驱动模块。实际应用中,消息接收模块可以使用Java Socket方式实现,在与Widget应用端建立连接后,随时接收来自Widget应用端各Widget组件的消息。
消息推送模块,用于主动将来自事件驱动模块的消息推送给相应Widget应用端的指定Widget组件。具体地,接收事件驱动模块发送的消息及所述消息对应的Widget应用端ID、和订阅者信息,并基于所述消息对应的Widget应用端ID、和订阅者信息将所述消息推送给相应Widget应用端的指定Widget组件。实际应用中,消息推送模块可以使用IBM提供的MQTT消息发布订阅协议的开源框架实现,和Widget应用端建立长连接并通过该长连接将来自事件驱动模块的消息实时推送给相应Widget应用端的指定Widget组件。
Widget应用端的消息发送接口,连接消息分发装置的消息接收模块,将Widget组件要发出的、命令或者返回确认等形式的消息发送给消息分发装置的消息接收模块,以通过消息分发装置传递给数据源。Widget应用端的消息接收接口,和消息分发装置的消息推送模块建立长连接,用于接收消息分发装置的消息推送模块所推送的消息。
实际应用中,Widget应用端的消息发送接口可以使用Java Socket在Android平台上进行实现,调用Android平台上提供的底层网络连接功能即如图1所示的应用平台底层SDK,和消息分发装置的消息接收模块进行连接,消息接收模块同样使用Java Socket技术实现。具体地,Widget应用端的消息发送接口与消息分发装置的消息接收模块之间建立TCP连接后,将消息通过该TCP连接发送给消息接收模块。
实际应用中,Widget应用端的消息接收接口和消息分发装置的消息推送模块保持一个长连接,以心跳检测作为二者之间的连接保障。Widget应用端的消息接收接口与消息分发装置的消息推送模块都可以用IBM的MQTT协议提供的开源框架jar进行实现,以保障二者之间的长连接状态并使得消息总线的消息推送模块能够顺利推送数据。
上述的数据源可以是传感器、文件、数据库、Web服务等,Widget应用端的Widget组件可以由柱状图、曲线图、饼状图和表格组成。
实施例二
本实施例,对于图形Mashup中的消息分发方法做详细说明。
如图3所示,一种图形Mashup中的消息分发方法,包括:
步骤301:将已定义的数据源与Widget应用端各Widget组件之间的订阅关系保存到发布订阅关系表;
步骤302:数据源连接模块接收数据源发送的消息,并传送给事件驱动模块;
步骤303:事件驱动模块对所述数据源连接模块传送的消息进行解析,获得所述消息的名称和发布者信息,基于所述消息的名称和发布者信息在所述发布订阅关系表中查询对应所述消息的订阅关系,根据所查询到的订阅关系,将所述消息通过消息推送模块推送给相应Widget应用端的指定Widget组件。
这里,所述方法还包括:预定配置的包含有事件规则的事件规则定义表,所述事件规则,表示对指定消息的逻辑处理规则;
所述根据所查询到的订阅关系,将所述消息通过消息推送模块推送给相应Widget应用端的指定Widget组件,具体过程可以包括:事件驱动模块从所查询到的订阅关系中提取所述消息的订阅者信息,并基于所述消息的名称、发布者信息和订阅者信息,查询所述事件规则定义表,如果存在与所述消息的名称、发布者信息和订阅者信息相符合的事件规则,则基于所述事件规则对所述消息进行逻辑处理后,通过所述消息推送模块推送给相应Widget应用端ID的指定Widget组件;如果不存在与所述消息的名称、发布者信息和订阅者信息相符合的事件规则,则直接将所述消息通过消息推送模块推送给相应Widget应用端ID的指定Widget组件。
这里,所述将已定义的数据源与Widget应用端各Widget组件之间的订阅关系保存到发布订阅关系表,包括:发布订阅注册请求模块接收操作人员输入的需注册订阅关系的相关信息,将需注册订阅关系的相关信息按照预定格式打包,生成订阅请求并发送给订阅者注册模块;订阅者注册模块接收所述发布订阅注册请求模块发送的订阅请求,并将所述订阅请求中的订阅关系注册到所述发布订阅关系表。
这里,所述方法还包括:发布订阅注册请求模块接收操作人员输入的需取消订阅关系的相关信息,将需取消订阅关系的相关信息按照预定格式打包,生成取消订阅请求并发送给所述发布订阅管理模块;发布订阅管理模块接收所述发布订阅注册请求模块发送的取消订阅请求,并将所述订阅请求中的订阅关系从所述发布订阅关系表中删除。
其中,所述方法还可以包括:消息接收模块接收来自Widget应用端各Widget组件的消息,并传送给事件驱动模块;事件驱动模块对所述消息接收模块传送的消息进行解析,获得所述消息的名称和订阅者信息,并基于所述消息的名称和订阅者信息在所述发布订阅关系表中查询对应所述消息的订阅关系,根据所查询到的订阅关系,将所述消息通过所述数据源连接模块发送给指定的数据源。
下面对上述消息分发方法的具体实现过程做进一步详细说明。
具体地,发布订阅注册请求模块与订阅者注册模块之间交互,将所述订阅关系注册到所述发布订阅关系表的具体处理流程如图4所示,包括如下步骤:
步骤401:发布订阅注册请求模块通过Java Socket TCP连接到发布订阅注册中心,与发布订阅注册中心的订阅者注册模块建立TCP连接;
步骤402:验证是否建立连接成功,如果否,则返回执行步骤401,如果是,则继续步骤403;
步骤403:发布订阅请求模块发送订阅请求给订阅者注册模块;
具体地,发布订阅请求模块将需注册的订阅关系相关消息按照预定格式进行组装,组装成订阅请求发送给发布订阅注册中心的订阅者注册模块。
消息分发装置运行中,获得权限的普通用户或者订阅关系管理者将需注册的订阅关系相关信息输入到发布订阅请求模块,发布订阅请求模块将需注册的订阅关系相关信息按照预定格式进行打包,生成订阅请求,并通过与订阅关系注册模块之间已建立的TCP连接,将所述订阅请求发送给订阅者注册模块。
步骤404:验证是否发送成功,如果否,则返回执行步骤403,如果是,则继续步骤405;
步骤405:订阅者注册模块接收所述订阅请求,并对所述订阅请求进行解析,获得需注册的订阅关系;
步骤406:订阅者注册模块将所述需注册的订阅关系写入发布订阅关系表。
具体地,事件驱动模块基于事件规则对消息进行逻辑处理的具体处理流程如图5所示,包括如下步骤:
步骤501:数据源连接模块将来自数据源的消息传送给事件驱动模块,事件驱动模块接收来自数据源的消息;
步骤502:事件驱动模块对所述消息进行拆包解析,获得所述消息的名称和发布者信息;
步骤503:事件驱动模块基于所述消息的名称和发布者信息,查询发布订阅关系表,从查询到的订阅关系中获得所述消息的订阅者信息;
步骤504:事件驱动模块基于所述消息的名称、发布者信息和订阅者信息,查询事件规则定义表,验证是否存在与所述消息相匹配的事件规则,如果是,则继续步骤505,否则,继续步骤506;
这里,事件驱动模块验证是否存在与所述消息相匹配的事件规则,即验证是否存在包含有所述消息的名称、发布者信息和订阅者信息的事件规则,如果是,则存在与所述消息相匹配的事件规则,否则,不存在与所述消息相匹配的事件规则。
步骤505:事件驱动模块采用Java反射机制,调用与所述消息相匹配的事件规则中定义的处理类,对所述消息进行逻辑处理;
步骤506:事件驱动模块通过消息推送模块将所述消息推送给相应Widget应用端ID的指定Widget组件。
具体地,以智能手机的Widget应用为例,Widget应用端的消息发送接口通过消息接收模块向事件驱动模块发送消息,可以通过Android平台底层SDK来实现,具体实现流程如图6所示,包括如下步骤:
步骤601:Widget应用端的消息发送接口调用Android平台底层功能的请求;
步骤602:Android底层SDK向Widget应用端的消息发送接口返回调用响应,Widget应用端的消息发送接口调用Android平台底层功能成功;
步骤603:Widget应用端的消息发送接口通过Android底层SDK向消息分发装置的消息接收模块发送建立TCP连接的请求;
步骤604:消息分发装置的消息接收模块通过Android底层SDK向Widget应用端的消息发送接口返回建立TCP连接成功的响应;
步骤605:Widget应用端的消息发送接口通过Android底层SDK向消息分发装置的消息接收模块发送消息;
步骤606:消息分发装置的消息接收模块通过Android底层SDK向Widget应用端的消息发送接口返回发送消息成功的响应;
步骤607:消息分发装置的消息接收模块将所述消息传送给事件驱动模块;
步骤608:事件驱动模块接收所述消息,向消息接收模块返回传送消息成功的响应。
具体地,以智能手机的Widget应用为例,事件驱动模块通过消息推送模块向Widget应用端的消息接收接口发送消息,也可以由Android平台底层SDK来实现,具体实现流程如图7所示,包括如下步骤:
步骤701:事件驱动模块向消息推送模块发送需推送的消息;
步骤702:消息推送模块接收所述消息,向事件驱动模块返回发送消息成功的响应;
步骤703-704:消息推送模块通过Android底层SDK向Widget应用端的消息接收接口发送心跳检测请求;
步骤705-706:Widget应用端的消息接收接口通过Android底层SDK向消息推送模块返回表示心跳检测成功的心跳检测响应;
步骤707-708:消息推送模块通过Android底层SDK向Widget应用端的消息接收接口发送所述需推送的消息;
步骤709-810:Widget应用端的消息接收接口通过Android底层SDK向消息推送模块返回发送消息成功的响应。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (12)

1.一种图形聚合中的消息分发装置,其特征在于,所述装置包括:发布订阅关系表、事件驱动模块、数据源连接模块和消息推送模块;其中,
发布订阅关系表,用于保存已定义的数据源与Widget应用端各Widget组件之间的订阅关系;
数据源连接模块,用于接收数据源发送的消息,并传送给所述事件驱动模块;
事件驱动模块,用于对所述数据源连接模块传送的消息进行解析,获得所述消息的名称和发布者信息,并基于所述消息的名称和发布者信息在所述发布订阅关系表中查询对应所述消息的订阅关系,根据所查询到的订阅关系,将所述消息通过所述消息推送模块推送给相应Widget应用端的指定Widget组件。
2.根据权利要求1所述图形聚合中的消息分发装置,其特征在于,所述装置还包括:预定配置的包含有事件规则的事件规则定义表,所述事件规则,表示对指定消息的逻辑处理规则;
事件驱动模块,还用于从所查询到的订阅关系中提取所述消息的订阅者信息,并基于所述消息的名称、发布者信息和订阅者信息,查询所述事件规则定义表,如果存在与所述消息的名称、发布者信息和订阅者信息相符合的事件规则,则基于所述事件规则对所述消息进行逻辑处理后,通过所述消息推送模块推送给相应Widget应用端ID的指定Widget组件;如果不存在与所述消息的名称、发布者信息和订阅者信息相符合的事件规则,则直接将所述消息通过消息推送模块推送给相应Widget应用端ID的指定Widget组件。
3.根据权利要求1所述图形聚合中的消息分发装置,其特征在于,所述装置还包括:
消息接收模块,用于接收来自Widget应用端各Widget组件的消息,并传送给所述事件驱动模块;
所述事件驱动模块,还用于对所述消息接收模块传送的消息进行解析,获得所述消息的名称和订阅者信息,并基于所述消息的名称和订阅者信息在所述发布订阅关系表中查询对应所述消息的订阅关系,根据所查询到的订阅关系,将所述消息通过所述数据源连接模块发送给指定的数据源。
4.根据权利要求1所述图形聚合中的消息分发装置,其特征在于,所述装置还包括:发布订阅注册请求模块和订阅者注册模块;其中,
发布订阅注册请求模块,用于接收操作人员输入的需注册订阅关系的相关信息,将需注册订阅关系的相关信息按照预定格式打包,生成订阅请求并发送给所述订阅者注册模块;
订阅者注册模块,用于接收所述发布订阅注册请求模块发送的订阅请求,并将所述订阅请求中的订阅关系注册到所述发布订阅关系表。
5.根据权利要求4所述图形聚合中的消息分发装置,其特征在于,所述装置还包括:发布订阅管理模块;
发布订阅注册请求模块,用于接收操作人员输入的需取消订阅关系的相关信息,将需取消订阅关系的相关信息按照预定格式打包,生成取消订阅请求并发送给所述发布订阅管理模块;
发布订阅管理模块,用于接收所述发布订阅注册请求模块发送的取消订阅请求,并将所述订阅请求中的订阅关系从所述发布订阅关系表中删除。
6.一种图形聚合中的消息分发系统,其特征在于,所述系统包括:如权利要求1至5任一项所述图形Mashup中的消息分发装置和设置在Widget应用端的至少一个消息接口,一个消息接口连接一个Widget组件;
所述消息接口包括消息接收接口,用于接收所述消息推送模块推送给相应Widget组件的消息。
7.根据权利要求6所述图形聚合中的消息分发系统,其特征在于,所述消息接口还包括消息发送接口,用于将相应Widget组件的消息发送给所述消息分发装置的消息接收模块。
8.一种图形聚合中的消息分发方法,其特征在于,所述方法包括:
将已定义的数据源与Widget应用端各Widget组件之间的订阅关系保存到发布订阅关系表;
数据源连接模块接收数据源发送的消息,并传送给事件驱动模块;
事件驱动模块对所述数据源连接模块传送的消息进行解析,获得所述消息的名称和发布者信息;
事件驱动模块基于所述消息的名称和发布者信息在所述发布订阅关系表中查询对应所述消息的订阅关系,根据所查询到的订阅关系,将所述消息通过消息推送模块推送给相应Widget应用端的指定Widget组件。
9.根据权利要求8所述图形聚合中的消息分发方法,其特征在于,
所述方法还包括:预定配置的包含有事件规则的事件规则定义表,所述事件规则,表示对指定消息的逻辑处理规则;
所述根据所查询到的订阅关系,将所述消息通过消息推送模块推送给相应Widget应用端的指定Widget组件,包括:事件驱动模块从所查询到的订阅关系中提取所述消息的订阅者信息,并基于所述消息的名称、发布者信息和订阅者信息,查询所述事件规则定义表,如果存在与所述消息的名称、发布者信息和订阅者信息相符合的事件规则,则基于所述事件规则对所述消息进行逻辑处理后,通过所述消息推送模块推送给相应Widget应用端ID的指定Widget组件;如果不存在与所述消息的名称、发布者信息和订阅者信息相符合的事件规则,则直接将所述消息通过消息推送模块推送给相应Widget应用端ID的指定Widget组件。
10.根据权利要求8所述图形聚合中的消息分发方法,其特征在于,所述方法还包括:
消息接收模块接收来自Widget应用端各Widget组件的消息,并传送给事件驱动模块;
事件驱动模块对所述消息接收模块传送的消息进行解析,获得所述消息的名称和订阅者信息,并基于所述消息的名称和订阅者信息在所述发布订阅关系表中查询对应所述消息的订阅关系,根据所查询到的订阅关系,将所述消息通过所述数据源连接模块发送给指定的数据源。
11.根据权利要求8所述图形聚合中的消息分发方法,其特征在于,所述将已定义的数据源与Widget应用端各Widget组件之间的订阅关系保存到发布订阅关系表,包括:
发布订阅注册请求模块接收操作人员输入的需注册订阅关系的相关信息,将需注册订阅关系的相关信息按照预定格式打包,生成订阅请求并发送给订阅者注册模块;
订阅者注册模块接收所述发布订阅注册请求模块发送的订阅请求,并将所述订阅请求中的订阅关系注册到所述发布订阅关系表。
12.根据权利要求11所述图形聚合中的消息分发方法,其特征在于,所述方法还包括:
发布订阅注册请求模块接收操作人员输入的需取消订阅关系的相关信息,将需取消订阅关系的相关信息按照预定格式打包,生成取消订阅请求并发送给所述发布订阅管理模块;
发布订阅管理模块接收所述发布订阅注册请求模块发送的取消订阅请求,并将所述订阅请求中的订阅关系从所述发布订阅关系表中删除。
CN201210073225.0A 2012-03-19 2012-03-19 一种图形聚合中的消息分发方法及装置、系统 Expired - Fee Related CN102710593B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210073225.0A CN102710593B (zh) 2012-03-19 2012-03-19 一种图形聚合中的消息分发方法及装置、系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210073225.0A CN102710593B (zh) 2012-03-19 2012-03-19 一种图形聚合中的消息分发方法及装置、系统

Publications (2)

Publication Number Publication Date
CN102710593A CN102710593A (zh) 2012-10-03
CN102710593B true CN102710593B (zh) 2015-05-27

Family

ID=46903151

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210073225.0A Expired - Fee Related CN102710593B (zh) 2012-03-19 2012-03-19 一种图形聚合中的消息分发方法及装置、系统

Country Status (1)

Country Link
CN (1) CN102710593B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103037000B (zh) * 2012-12-21 2015-07-08 北京邮电大学 一种发布订阅系统及其通知消息处理方法
CN103905521B (zh) * 2012-12-31 2018-05-18 中国移动通信集团公司 一种用于网络服务的信息处理系统和方法
CN104077116B (zh) * 2013-03-26 2017-09-22 富士通株式会社 创建基于安卓系统的混搭应用的方法和设备
CN105099882B (zh) * 2015-07-09 2018-07-10 杭州电子科技大学 一种基于mqtt的云推送方法和系统
CN105376589A (zh) * 2015-10-27 2016-03-02 上海斐讯数据通信技术有限公司 基于mqtt的智能电视消息的推送装置及方法
CN107634929A (zh) * 2016-07-18 2018-01-26 中兴通讯股份有限公司 业务处理方法及装置
CN108289118A (zh) * 2017-12-12 2018-07-17 北京奇艺世纪科技有限公司 一种分布式消息流的管理方法和装置
CN108512940A (zh) * 2018-04-20 2018-09-07 济南浪潮高新科技投资发展有限公司 一种物联网云平台终端通知推送方法
CN108924653B (zh) * 2018-07-19 2021-01-01 武汉斗鱼网络科技有限公司 弹幕消息分发方法、装置、设备和存储介质
CN109286675B (zh) * 2018-10-15 2022-02-18 上海赛治信息技术有限公司 Fc-ae-asm网络数据通讯方法及系统
CN110708362B (zh) * 2019-09-19 2021-02-05 贝壳找房(北京)科技有限公司 调用关系确定方法、装置、存储介质及电子设备
CN111212135A (zh) * 2019-12-31 2020-05-29 北京金山云网络技术有限公司 消息订阅方法、装置、系统、电子设备及存储介质
CN113315689B (zh) * 2020-02-27 2022-10-21 美的集团股份有限公司 信息处理方法、系统、电子设备和可读存储介质
CN117520021B (zh) * 2024-01-08 2024-04-16 成都安世赛斯特软件技术有限公司 一种Java系统消息推送方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101548531A (zh) * 2006-08-24 2009-09-30 曲姆比工业股份有限公司 在网络化应用共享系统中使用的可配置个人视听设备
CN101815265A (zh) * 2010-02-10 2010-08-25 播思通讯技术(北京)有限公司 微技信息传输方法及系统
CN101827123A (zh) * 2010-03-29 2010-09-08 北京掌中宽途科技有限公司 实现具有SNS功能的移动Widget引擎的方法和系统
WO2012034080A1 (en) * 2010-09-09 2012-03-15 Headwater Partners I Llc Wireless network service interfaces

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101548531A (zh) * 2006-08-24 2009-09-30 曲姆比工业股份有限公司 在网络化应用共享系统中使用的可配置个人视听设备
CN101815265A (zh) * 2010-02-10 2010-08-25 播思通讯技术(北京)有限公司 微技信息传输方法及系统
CN101827123A (zh) * 2010-03-29 2010-09-08 北京掌中宽途科技有限公司 实现具有SNS功能的移动Widget引擎的方法和系统
WO2012034080A1 (en) * 2010-09-09 2012-03-15 Headwater Partners I Llc Wireless network service interfaces

Also Published As

Publication number Publication date
CN102710593A (zh) 2012-10-03

Similar Documents

Publication Publication Date Title
CN102710593B (zh) 一种图形聚合中的消息分发方法及装置、系统
CN108270855B (zh) 一种物联网平台接入设备的方法
CN103944924B (zh) 一种基于RESTful的泛在网发布订阅中间件模型的方法
EP2106647B1 (en) Web services and telecom network management unification
CN112788074B (zh) 数据发送方法、处理方法、接收方法及其设备、存储介质
EP2779583B1 (en) Telecommunication method and system
US20100217852A1 (en) Wireless Terminal Device and Server Therefor
US20170279688A1 (en) Method, device and system for providing device application software management service in internet of things
CN103995906A (zh) 一种异常处理方法和装置
EP2621243A1 (en) Method and system for configuring and managing third party software, and management server
US20130290983A1 (en) System and method for clustered transactional interoperability of proprietary non-standard features of a messaging provider using a connector mechanism
CN112711635A (zh) 一种分布式物联设备跨区域数据一致性的方法和服务集群
CN101277212A (zh) 资源管理平台及资源管理方法
CN110287266A (zh) 一种分布式系统及数据处理方法
CN104410556A (zh) 一种基于iec61970标准的双向互动终端集成架构
CN107609086B (zh) 一种app推送方法及其引擎系统
CN113658591A (zh) 一种面向智能家居的语音交互适配系统
EP1872256B1 (en) System and method of waste management
CN116319732A (zh) 一种基于RabbitMQ的消息队列集中配置管理系统及方法
CN113315689B (zh) 信息处理方法、系统、电子设备和可读存储介质
CN102831179A (zh) 网页处理方法及装置
CN110620819B (zh) 区块链交互方法、装置、计算机设备及可读存储介质
US10750356B2 (en) Configuration management method, apparatus, and system for terminal in internet of things
KR20140037605A (ko) Cim 스키마 및 시스템 토폴로지 정보를 이용한 ami의 동적 운영 방법
CN102904739A (zh) 一种实现事件转发的方法及通用信息模型cim服务器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150527