一种家电服务调用请求转发方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种家电服务调用请求转发方法及装置。
背景技术
目前,为了更好的支持智能家居场景,智能家居服务(Smart home service)提出了集中式管理的概念,即Smart Home service运行在网关上,其它家电设备向网关注册自己提供的服务。控制设备通过网关提供的通用接口实现对家电服务接口的调用,从而将点对点的分布式通信模式扩展为集中式通信模式。
在网关上实现的通用接口可以使控制设备在将目标家电的相应接口名称、方法名称、参数等输入的情况下,便可将其转化为对该家电设备的调用指令。然而,上述智能家居服务集中式的通信模式仅在基于所有设备事先注册到同一网关上的前提条件下,设备间才能进行通信。但由于无线网络的信号具有限制范围,许多家庭网络中存在两个以上这种网关设备,尽管网关之间的联通能使所有家庭联网设备处于同一网络内,但在不同网关上注册的设备之间也无法采用上述集中式通信方式进行接口调用,因而,控制设备不能同时控制家庭中全部家电设备,为用户的使用带来了不便。
发明内容
本发明提供一种家电服务调用请求转发方法及装置,用于解决现有技术中在集中式通信模式中,处于同一家庭网络中的控制设备无法同时控制家庭网络中注册于不同网关上的家电设备的问题。
根据本发明的一个方面,提供了一种家电服务调用请求转发方法,包括:第一网关接收家电服务的调用请求;判断调用请求中请求调用的家电服务对应的家电设备是否已在第一网关上注册,如果是,则根据调用请求将调用请求转发至与家电服务对应的家电设备,如果否,则根据调用请求中携带的调用请求经过的网关记录信息将调用请求转发至已注册在第一网关上的其他网关,以使其他网关将调用请求转发至注册有上述家电设备的网关。
进一步的,上述网关记录信息记录有调用请求经过的各网关以及经过各网关的次数,方法还包括:在第一网关接收家电服务的调用请求之后,在网关记录信息中为调用请求经过第一网关的次数加一。
其中,根据调用请求中携带的调用请求经过的网关记录信息将调用请求转发至已注册在第一网关上的其他网关,包括:在第一网关在判断调用请求中请求调用的家电服务对应的家电设备未在第一网关上注册后,将经过更新的网关记录信息携带在调用请求中转发至网关记录信息中调用请求经过次数最少的网关。
进一步的,上述方法还包括:在第一网关接收到家电服务调用响应信息时,判断响应信息所对应的控制设备是否注册在第一网关上,如果是,则将响应信息转发至控制设备,如果否,则将响应消息转发至注册在第一网关的其他网关上。
进一步的,上述方法还包括:在第一网关接收家电服务的调用请求之前,第一网关接收来自家电设备以及第二网关的注册消息;根据家电设备的注册信息以及第二网关的注册信息分别对家电设备以及第二网关进行注册;第一网关将自身的注册信息发送至第二网关,以使第一网关在第二网关上进行注册。
根据本发明的另一个方面,提供了一种家电服务调用请求转发装置,包括:第一接收模块,用于通过第一网关接收家电服务的调用请求;第一判断模块,用于判断调用请求中请求调用的家电服务对应的家电设备是否已在第一网关上注册;第一转发模块,用于在第一判断模块的判断结果为是时,则根据调用请求将调用请求转发至与家电服务对应的家电设备;第二转发模块,用于在第一判断模块的判断结果为否时,则根据调用请求中携带的调用请求经过的网关记录信息将调用请求转发至已注册在第一网关上的其他网关,以使其他网关将调用请求转发至注册有上述家电设备的网关。。
其中,网关记录信息记录有调用请求经过的各网关以及经过各网关的次数,装置还包括:更新模块,用于在在第一网关接收家电服务的调用请求之后,在网关记录信息中为调用请求经过第一网关的次数加一。
其中,上述第二转发模块包括:转发单元,用于在第一网关在判断调用请求中请求调用的家电服务对应的家电设备未在第一网关上注册后,将经过更新的网关记录信息携带在调用请求中转发至网关记录信息中调用请求经过次数最少的网关。
进一步的,上述装置还包括:第二判断模块,用于在第一网关接收到家电服务调用响应信息时,判断响应信息所对应的控制设备是否注册在第一网关上;第三转发模块,用于在第二判断模块的判断结果为是时,则将响应信息转发至控制设备;第四转发模块,用于在第二判断模块的判断结果为否时,则将响应消息转发至注册在第一网关的其他网关上。
进一步的,上述装置还包括:第二接收模块,用于在第一网关接收家电服务的调用请求之前,通过第一网关接收来自家电设备以及第二网关的注册消息;注册模块,用于根据家电设备的注册信息以及第二网关的注册信息分别对家电设备以及第二网关进行注册;发送模块,用于通过第一网关将自身的注册信息发送至第二网关,以使第一网关在第二网关上进行注册。
本发明实施例提供的方案,根据调用请求中携带调用请求经过的网关记录信息可以确定调用请求将要转发的网关,以使家电服务调用请求被转发至注册有家电服务对应的家电设备的网关,从而实现了基于一个控制终端控制注册于不同网关的家电设备的目的,方便了用户使用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1中涉及到的点对点通信的家庭网络组网图;
图2是本发明实施例1中家电服务调用请求转发方法的流程图;
图3是本发明实施例2中网关以及家电设备注册到网关的信令流程图;
图4是本发明实施例2中的家电服务调用请求转发方法的信令流程图;
图5是本发明实施例3中家电服务调用请求转发装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本实施例提供一种家电服务调用请求转发方法,该方法用于在家庭网络中实现通过控制终端来控制分别注册在不同网关上的家电设备,其中,本实施例中所涉及的家庭网络可以是一个点对点通信家庭网络,该网络中存在多个网关设备,家庭网络中的其他设备,如电视、手机、空调等,连接到任一家庭网关上。如图1所示,各网关之间互相连接,形成了一张家庭网络。网络中的每台设备都可通过网关路由连接到任意其他家庭设备。网关对外广播自身的服务接口。家电设备启动后,首先寻找网关服务,找到任一网关服务后,调用网关的注册接口进行注册,之后,家电将自身所提供的服务接口上报该网关。同样地,网关启动后也寻找其他网关服务,并进行注册。网关注册完成后,被注册网关发起反向注册,即,网关之间互相注册。每个网关都负责维护注册到自身的设备及其服务。
如图2所示,该方法包括如下步骤:
步骤201:第一网关接收家电服务的调用请求;
步骤202:判断调用请求中请求调用的家电服务对应的家电设备是否已在第一网关上注册,如果是,执行步骤203:根据调用请求将调用请求转发至与调用请求中请求调用的家电服务对应的家电设备,如果否,执行步骤204:根据调用请求中携带的调用请求经过的网关记录信息将调用请求转发至已注册在第一网关上的其他网关,以使其他网关将调用请求转发至注册有与调用请求中请求调用的家电设备的网关。
其中,上述网关记录信息记录有调用请求经过的各网关以及经过各网关的次数,基于此,上述方法还可以包括:在第一网关接收家电服务的调用请求后,在网关记录信息中为调用请求经过第一网关的次数加一,即更新调用记录中对第一网关的记录。
其中,根据调用请求中携带的调用请求经过的网关记录信息将调用请求转发至已注册在第一网关上的其他网关,具体可以包括:
在第一网关在判断调用请求中请求调用的家电服务对应的家电设备未在第一网关上注册后,将经过更新的网关记录信息携带在调用请求中转发至网关记录信息中调用请求经过次数最少的网关。
在家电设备接收到服务调用请求,并根据服务调用请求执行指定操作后,家电设备可以通过其注册的网关向控制设备反馈家电服务调用的响应消息,基于此,上述方法还包括:在第一网关接收到家电服务调用响应信息时,判断响应信息所对应的控制设备是否注册在第一网关上,如果是,则将响应信息转发至控制设备,如果否,则将响应消息转发至注册在第一网关的其网关上。
在网关对家电设备的服务调用请求进行转发之前,要想实现通过网关转发调用请求的方式来控制家庭网络中的家电设备,家庭网络中的家电设备以及各网关可以按照如图3所示的方式进行注册:
在第一网关接收家电服务的调用请求之前,第一网关接收来自家电设备以及第二网关的注册消息(服务接口信息);根据家电设备的注册信息、第二网关的注册信息对家电设备、第二网关进行注册,第一网关将自身的注册信息发送至第二网关,以使第一网关在第二网关上进行注册,需要说明的是,此处的第二网关可以是与家庭网络中的任意待注册到第一网关的网关。
实施例2
本实施例通过在一个用户通过手机调节空调将温度设置到25度的场景中,来对本发明提供的家电服务调用请求转发方法进行进一步说明,如图4所示,该方法主要包括如下处理:
用户手机发现网关1,连接并注册到网关1。手机将空调的温度调节接口的指令、参数信息进行封装,并将封装好的数据通过调用网关1的服务接口发送给网关1。
发送给网关1的调用请求除了封装空调的温度调节接口的指令、参数信息之外,还包括一个网关计数表,来记录调用请求所经过的网关。初始时,记录表为空,当网关1收到手机发来的调用请求后,解析出家电的服务接口信息,以及记录表,网关1将记录表中网关1对应记录数加1。
表1
GW1 |
GW2 |
GW3 |
GW4 |
GW5 |
1 |
0 |
0 |
0 |
0 |
网关1判断该空调未注册在本网关上,便查找注册在本网关的其他网关,例如,查询到网关2。网关1调用网关2的服务接口将封装好的空调调用数据及新的记录表发送给网关2。
网关2收到网关1发来的调用请求后,解析出家电的服务接口信息,以及记录表,将记录表中网关2对应记录数加1,更新后的标如下表2。
表2
GW1 |
GW2 |
GW3 |
GW4 |
GW5 |
1 |
1 |
0 |
0 |
0 |
网关2判断该空调未注册在本网关,便查找注册在本网关的其他网关,例如,查询到网关1、网关3和网关4。网关2查看记录表中的计数,得到网关1、网关3和网关4中计数最小的网关为网关3和网关4。网关2任意选择其中一个,将封装好的空调调用数据及新的记录表通过人选的网关的调用服务接口发出,此时存在两种情况:
情况1:发给网关4
网关4收到网关2发来的调用请求后,解析出家电的服务接口信息,以及记录表。网关4将记录表网关4对应记录数加1,更新后的标如下表3。
表3
GW1 |
GW2 |
GW3 |
GW4 |
GW5 |
1 |
1 |
0 |
1 |
0 |
网关4判断该空调未注册在本网关,便查找注册在本网关的其他网关,查找到网关2和网关5。网关4查看记录表中的计数,得到网关2和网关5中计数最小的网关为网关5。网关4将封装好的空调调用数据及新的记录表通过调用服务接口发送给网关5。
网关5收到网关4发来的调用请求后,解析出家电的服务接口信息,以及记录表,网关5将记录表网关5对应记录数加1,更新后的标如下表4。
表4
GW1 |
GW2 |
GW3 |
GW4 |
GW5 |
1 |
1 |
0 |
1 |
1 |
网关5判断该空调已经注册在本网关,根据空调的服务接口重新封装调用请求,将调用请求发送给空调。
空调收到网关5发来的调用请求后,执行相应的操作将温度设置为25度。之后,返回响应给网关5。网关5收到响应后,将其返回给网关4。网关4收到响应后,将其返回给网关2。网关2收到响应后,将其返回给网关1。网关1收到响应后,将其返回给手机,通知用户执行结果。
情况2:发给网关3
网关3收到网关2发来的调用请求后,解析出家电的服务接口信息,以及记录表。网关3将记录表网关3对应记录数加1,更新后的标如下表5。
表5
GW1 |
GW2 |
GW3 |
GW4 |
GW5 |
1 |
1 |
1 |
0 |
0 |
网关3判断该空调未注册在本网关,便查找注册在本网关的其他网关,此处为网关2。网关3将封装好的空调调用数据及新的记录表通过调用服务接口发送给网关2。
网关2收到网关3发来的调用请求后,解析出家电的服务接口信息,以及记录表。网关2将记录表网关2对应记录数加1,更新后的标如下表6。
表6
GW1 |
GW2 |
GW3 |
GW4 |
GW5 |
1 |
2 |
1 |
0 |
0 |
网关2判断该空调未注册在本网关,便查找注册在本网关的其他网关,此处为网关1、网关3和网关4。网关2查看记录表中的计数,得到网关1、网关3和网关4中计数最小的网关为网关4。网关2将封装好的空调调用数据及新的记录表通过调用服务接口发送给网关4。
网关4收到网关2发来的调用请求后,解析出家电的服务接口信息,以及记录表。网关4将记录表网关4对应记录数加1,更新后的标如下表7。
表7
GW1 |
GW2 |
GW3 |
GW4 |
GW5 |
1 |
2 |
1 |
1 |
0 |
网关4判断该空调未注册在本网关,便查找注册在本网关的其他网关,此处为网关2和网关5。网关4查看记录表中的计数,得到网关2和网关5中计数最小的网关为网关5。网关4将封装好的空调调用数据及新的记录表通过调用execute接口发送给网关5。
网关5收到网关4发来的调用请求后,解析出家电的服务接口信息,以及记录表。网关5将记录表网关5对应记录数加1,更新后的标如下表8。
表8
GW1 |
GW2 |
GW3 |
GW4 |
GW5 |
1 |
2 |
1 |
1 |
1 |
网关5判断该空调已经注册在本网关,根据空调的服务接口重新封装调用请求,将调用请求发送给空调。
空调收到网关5发来的调用请求后,执行相应的操作将温度设置为25度。之后,返回响应给网关5。网关5收到响应后,将其返回给网关4。网关4收到响应后,将其返回给网关2。网关2收到响应后,将其返回给网关3。网关3收到响应后,将其返回给网关2。网关2收到响应后,将其返回给网关1。网关1收到响应后,将其返回给手机,通知用户执行结果。
实施例3
本实施例提供一种家电服务调用请求转发装置,该装置可以设置于网关上,该装置用于实现本发明实施例1以及实施例2提供的家电服务调用请求转发方法,如图5所示,该装置50包括如下组成部分:
第一接收模块51,用于通过第一网关接收家电服务的调用请求;
第一判断模块52,用于判断调用请求中请求调用的家电服务对应的家电设备是否已在第一网关上注册;
第一转发模块53,用于在第一判断模块的判断结果为是时,则根据调用请求将调用请求转发至与家电服务对应的家电设备;
第二转发模块54,用于在第一判断模块的判断结果为否时,则根据调用请求中携带的调用请求经过的网关记录信息将调用请求转发至已注册在第一网关上的其他网关。
其中,上述网关记录信息记录有调用请求经过的各网关以及经过各网关的次数,基于此,上述装置50还可以包括:更新模块,用于在在所述第一网关接收家电服务的调用请求之后,在网关记录信息中为调用请求经过第一网关的次数加一。
进一步的,第二转发模块具体可以包括:
转发单元,用于在第一网关在判断调用请求中请求调用的家电服务对应的家电设备未在第一网关上注册后,将经过更新的网关记录信息携带在调用请求中转发至网关记录信息中调用请求经过次数最少的网关。
上述装置50还可以包括:第二判断模块,用于在第一网关接收到家电服务调用响应信息时,判断响应信息所对应的控制设备是否注册在第一网关上;第三转发模块,用于在第二判断模块的判断结果为是时,则将响应信息转发至控制设备;第五转发模块,用于在第二判断模块的判断结果为否时,则将响应消息转发至注册在第一网关的其网关上。
进一步地,上述装置50还可以包括:第二接收模块,用于在第一网关接收家电服务的调用请求之前,第一从网关接收来自家电设备以及第二网关的注册消息;注册模块,用于根据家电设备的注册信息、第二网关的注册信息对家电设备、第二网关进行注册;发送模块,用于通过第一网关将自身的注册信息发送至第二网关,以使第一网关在第二网关上进行注册。
本发明实施例提供的方案,在家庭网络中存在多个网关的情况下,控制设备能够通过所注册网关的通用接口调用网络中任意家电设备,不需要事先与目标设备或接口进行关联,实现了任意数量的网关级联,且在有多个网关时与仅有一个网关时采用相同的接口调用方式,无需对现有接口调用方式进行修改。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。