本发明专利技术公开了一种通知消息接收方法、装置及系统。该方法包括:AJ客户路由模块接收客户端应用APP注册的过滤条件,并获取过滤条件中的接收频率参数,其中,接收频率参数中携带了客户端APP在检测周期内能够接收通知消息的最大数目;AJ客户路由模块进行周期性检测,根据过滤条件和接收频率参数判断是否将接收到的通知消息发送给客户端APP。借助于本发明专利技术的技术方案,能够极大的节约客户端APP所在设备的资源。
【技术实现步骤摘要】
本专利技术涉及物联网领域,特别是涉及一种通知消息接收方法、装置及系统。
技术介绍
AllJoyn(简称为AJ)是一个合作的开源软件框架,程序员可以很方便的编写出搜索附近设备的应用程序,并且无论对方的品牌、类别、系统都可以在不需要云环境的情况下连接。AllJoyn框架是非常灵活,能使物联网实现愿景。AllJoyn采用“分布式软件总线”,总线是AllJoyn应用通过应用程序编程接口(Applicat1n Programming Interface,简称为API)进行通信的“媒介”,应用可以是微处理器的固件、移动设备的应用(Applicat1n,简称为APP)、或个人计算机(Personal Computer,简称为PC)上的应用程序。在AllJoyn中,发布API的应用是服务器(service),消费的是客户端(client),应用可以既是service又是client,这使得AllJoyn成为了点对点(P2P)系统。此外,通信传递的消息直接映射高级编程语言实现的API。总线形成采用自组织方式,基于应用/服务发现,抽象了特定连接的发现机制。AllJoyn采用独立于网络的协议,网络协议是基于对D-Bus协议的扩展,可运行于 W1-F1、Wi_Fi Direct、Ethernet、PLC 和 Bluetooth。AllJoyn 应用都是路由器(Router)的客户端。Client Library是开发人员所面对的AllJoyn软件开发工具包(SoftwareDevelopment Kit,简称为SDK)的API,Client Library有两种实现:标准客户端(SC)和瘦客户端(TC),其中,标准客户端目标为运行在高级操作系统(HLOS)上的应用,瘦客户端目标为运行在嵌入式设备上的应用。AllJoyn应用通过对象实现的API对外暴露功能(object),多数应用仅暴露一个对象,根据应用模型需要可支持分级对象,对象实现一个或多个接口(interface),服务发现和连接建立之后,便可发现API。其接口由成员组成,三类成员为:方法(Method)、信号(Signal)、属性(Property)。关于属性(Property)的分类:一般情况下,不同的对象代表不同的实体(设备),接口中的Property—般代表了实体对外可见的状态。如热水器的温度等。因此作为对象的观察者(client app)是可以通过Property来了解实体的状态的。根据org.freedesktop.DBus.Property.EmitsChangedSignal 的标注值(annotat1n value) Property 可以分为三类:当标注值为True:当 Property 发生变化时,updateing Property org.freedesktop.DBus.Properties.PropertiesChanged 信号携带 Property 的新值被发送。当标注值为False:当Property发生变化时,不会发送non-cacheable propertyorg.freedesktop.DBus.Properties.PropertiesChanged 信号。当标注值为invalidates:当 Property 发生变化时,invalidating propertyorg.freedesktop.DBus.Properties.PropertiesChanged 信号发送,不携带 Property 的新值。上述消息都是时域(sess1n)内的广播发送,也就是说同一个sess1n内的App都可能接到上述消息。App需要选择是否接收上述消息,具体地:客户端APP如何接受消息:如图1所示,通过addmatch方法向router内注册一个过滤条件。当router接到上述属性(Property)变化的消息后,会根据上述过滤条件,判定是否需要为APP发送上述请求消息。具体消息如下:org.freedesktop.DBus.AddMatch(bus_proxy, 〃type = ’signal’,name = ’org.example.App’,path_namespace=’/org/example/App’ 〃),其中,addmatch 的参数包括如下:type (消息类型),sender (Bus名或者连接唯一名),interface (接口名),member (方法名或者信号名称),path(对象路径),pathnamespace (对象路径命名空间),destinat1n (目的地)。当AJ客户路由模块(consumer AJ Router)收到信号后会根据上述条件进行判断是否需要把Property的新值发送给客户端APP (前提条件是客户端APP通过addmatch方法向router注册了对应其的过滤条件)。在现有技术中,当提供者(Provider)APP的Property变化的频率特别高而且该 Property 对应的 org.freedesktop.DBus.Property.EmitsChangedSignal 的标注值设定为 TURE 或者 invalidates,即需要生成对应的 org.freedesktop.DBus.Properties.PropertiesChanged信号时,订阅该信号的客户端APP可能需要相同频率解析上述信号,这样可能严重消耗客户端APP所在设备的资源,造成设备的过载、宕机、失控等问题。
技术实现思路
鉴于现有技术中提供者APP高频发送请求消息,造成客户端APP处理过载的问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的通知消息接收方法、装置及系统。本专利技术提供一种通知消息接收方法,包括:AJ客户路由模块接收客户端应用APP注册的过滤条件,并获取过滤条件中的接收频率参数,其中,接收频率参数中携带了客户端APP在检测周期内能够接收通知消息的最大数目;AJ客户路由模块进行周期性检测,根据过滤条件和接收频率参数判断是否将接收到的通知消息发送给客户端APP。优选地,AJ客户路由模块接收客户端APP注册的过滤条件之前,客户端APP中的应用程序根据设备的性能和/配置确定单位时间内能够接收通知消息的最大数目;应用程序向客户端APP中的AJ核心模块注册信号处理函数时,将接收频率参数发送给AJ核心模块。优选地,AJ客户路由模块接收客户端APP注册的过滤条件,并获取过滤条件中的接收频率参数具体包括:AJ客户路由模块接收AJ核心模块注册的过滤条件,并获取过滤条件中的接收频率参数。优选地,AJ客户路由模块进行周期性检测,根据过滤条件和接收频率参数判断是否将接收到的通知消息发送给客户端APP具体包括:AJ客户路由模块进行周期性检测,如果判断接收到的通知消息均符合过滤条件和接收频率参数,则将通知消息发送给客户端APP,否则,禁止将通知消息发送给客户端APP。优选地,判断接收到的通知消息符合接收频率参数具体包括:计算在该检测周期内接收通知消息的数目,如果在该检测周期内接收的通知消息未超过接收频率参数中的最大数目,则确定该通知消息符合接收频率参数。本专利技术还提供了一种通知消息接收装置,本文档来自技高网...
【技术保护点】
一种通知消息接收方法,其特征在于,包括:AJ客户路由模块接收客户端应用APP注册的过滤条件,并获取所述过滤条件中的接收频率参数,其中,所述接收频率参数中携带了所述客户端APP在检测周期内能够接收通知消息的最大数目;AJ客户路由模块进行周期性检测,根据所述过滤条件和所述接收频率参数判断是否将接收到的通知消息发送给客户端APP。
【技术特征摘要】
【专利技术属性】
技术研发人员:吕小强,
申请(专利权)人:青岛海尔智能家电科技有限公司,
类型:发明
国别省市:山东;37
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。