具体实施方式
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。其他实施方案可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,本发明的这些实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。
图1示出了本发明实施例的控制服务端的方法的流程示意图,
如图1所示,在一些说明性的实施例中,所述方法,可以应用于网络控制设备,包括以下几个步骤:
步骤S101,接收客户端发送的通用接口调用请求消息;
通用接口是为客户端和服务端进行通信而预置的或用户设置的接口;该通用接口可以解决因底层传输技术不同而导致的客户端和服务端无法直接通信的问题,提供了统一的通信方式;此外相同的底层传输技术的客户端和服务端除了可以直接通信外,客户端也可以通过该通用接口实现由网络控制设备对各服务端进行统一的调用和控制;在所述通用接口调用请求消息中携带按照通用接口的通信协议封装后的通用接口的服务接口参数和目标服务端的服务接口参数;
本文中的网络控制设备是指支持多种底层传输技术,同时处于至少两个网络之中,能够分别与各网络中的设备通信的一系列设备,例如服务器、网关;所述客户端是指安装有为用户提供本地服务的程序的一系列装置或设备,例如手机、平板电脑、个人电脑等用户终端,或者,安装了客户端的各种家电设备等等;所述目标服务端是指可以为客户端提供服务,但与所述客户端支持的底层传输技术不同的装置或设备;
步骤S102,根据通用接口的通信协议解析所述通用接口调用请求消息,获得目标服务端的地址及控制信息;
解析出的通用接口调用请求消息中的参数,除了通用接口的服务接口信息(包括:通用接口的地址、控制方式以及相关的参数),还包括调用目标服务端的服务接口信息(包括:目标服务端的地址和控制信息);
所述通用接口调用请求消息中包括一个或多个目标服务端,例如在当前网络中共有10个服务端,但客户端只需要控制其中的3个服务端,则这3个服务端即为目标服务端,通用接口调用请求消息中则包括这3个服务端的各服务端的地址和控制信息;
在一些说明性的实施例中,所述控制信息包括所述目标服务端的调用方式;或,所述控制信息包括所述目标服务端的调用方式和与该目标服务端的调用方式配合使用的至少一个相关参数;
举例对目标服务端的控制信息进行说明:
若目标服务端是音箱,用户通过客户端(手机)向网络控制设备(网关)发送用于控制音箱停止播放音乐的指令,则音箱的控制信息仅包括音箱的地址和音箱的调用方式(停止“stop”);若用户想控制音箱将当前播放的曲目快进到某位置时,则控制信息不仅包括音箱的地址、音箱的调用方式(快进“FF(FastForward)”),还必须包括与快进指令相对应的位置参数(如3分20秒);
步骤S103,根据目标服务端所支持的通信协议将获取到的所述控制信息进行封装,得到符合所述目标服务端所支持的通信协议的控制请求消息,并根据所述目标服务端的地址将所述控制请求消息发送给所述目标服务端;
上述过程可以是:当解析出目标服务端的控制信息后,根据目标服务端所支持的通信协议将控制信息进行二次封装,得到所述控制请求消息,然后将控制请求消息发送给所述目标服务端,以使目标服务端根据控制请求消息中的控制信息,执行相应的操作;
其中,目标服务端所支持的通信协议是预先获取的;
举例:假设解析出的目标服务端为2个,分别是音箱和电视,其中音箱支持的通信协议为蓝牙BT,而电视支持的通信协议为无线WIFI,则分别根据各目标服务端所支持的通信协议对控制信息进行二次封装,即转化为各目标服务端能识别的格式,生成控制请求消息,并分别发送给相应的目标服务端;
在一些说明性的实施例中,在所述将获取到的所述控制信息进行封装,具体包括:
判断此次调用请求是否合法;若是,则进行所述封装。
在一些说明性的实施例中,还包括:如果不合法,则反馈请求非法响应并终止后续操作;
在一些说明性的实施例中,接收所述通用接口调用请求消息前,还包括:发送所述通用接口的相关信息(如通用接口的服务接口信息)到所述客户端和所述目标服务端;其中,所述通用接口的相关信息包括通用接口的总线地址、通用接口的调用方式及其相关参数;发送通用接口的相关信息的目的是为了让客户端根据所述通用接口的相关信息对通用接口进行调用;这里的参数是必须的,可以是一段用于表达接口信息的字符串;
所述发送所述通用接口的相关信息可以通过广播、单播或者组播等方式将通用接口的服务接口信息告知所维护的或周围的客户端和服务端(包括目标服务端);
在一些说明性的实施例中,接收所述通用接口调用请求消息前,还包括:将所述目标服务端的地址和控制信息发送到所述客户端;此处的发送方式可以是广播、组播或单播;获取的所述服务端的服务接口信息,可能是通过接收服务端的广播获取,或者,通过接收来自服务端的消息获取,在此处不进行限定;
例如:通过广播的形式将所有注册的至少一个服务端(包括目标服务端)的服务接口信息(包括:各服务器的地址和控制信息)告知网络中的所有设备,包括所述客户端。
图2示出了本发明实施例的控制服务端的方法的流程示意图,
如图2所示,在一些说明性的实施例中,所述方法,可以应用于目标服务端,包括以下几个步骤:
步骤S201,将目标服务端的地址及控制信息按通用接口的通信协议进行封装,得到通用接口调用请求消息;
在一些说明性的实例中,在步骤S201之前,还包括:
接收所述网络控制设备侧发送的所述通用接口的相关信息;所述通用接口为所述网络控制设备所提供的为客户端和服务端进行通信而预置的或用户设置的接口;其中,所述通用接口的相关信息包括通用接口的总线地址、通用接口的调用方式及相关参数;
在一些说明性的实施例中,在步骤S201之前,还包括:获取目标服务端的地址及控制信息;
所述目标服务端可以是一个或多个,若需要同时控制多个服务端,则所述目标服务端是多个;
在一些说明性的实施例中,所述目标服务端由所述网络控制设备维护,所述获取目标服务端的地址及控制信息,包括:
通过所述网络控制设备,查询并获得所述目标服务端的地址及控制信息;
可选的,也可以通过网络控制设备的广播,获取所述至少一个目标服务端的地址及控制信息;
在一些说明性的实施例中,所述控制信息包括所述目标服务端的调用方式;或,若所述目标服务端的调用方式需要与至少一个相关参数配合使用,则所述控制信息包括所述目标服务端的调用方式和与该目标服务端的调用方式配合使用的至少一个相关参数;
在一些说明性的实施例中,若所述控制信息包括所述目标服务端的调用方式,以及所述至少一个相关参数;则所述按网络控制设备的通用接口的通信协议进行封装各所述目标服务端的地址及相应的控制信息,包括:
将所述至少一个相关参数封装于同一个通用接口参数中;
在一些说明性的实施例中,所述通用接口调用请求消息包括通用接口参数,则步骤S201具体包括:
将所述目标服务端的地址及控制信息全部封装于一个通用接口参数中;或,按照信息类型,将所述目标服务端的地址及控制信息封装于不同的通用接口参数中;
下面进行举例对上述封装过程进行说明:
若所述目标服务端为一个,封装于多个通用接口参数的情况:若目标服务端的控制信息包括所述目标服务端的调用方式和相应的至少一个参数,则将目标服务端的地址封装于通用接口参数A,将目标服务端的调用方式封装于通用接口参数B,将目标服务端的与调用方式相对应的至少一个参数统一封装于通用接口参数C中;封装于一个通用接口参数的情况:将上述目标服务端的地址、目标服务端的调用方式和相应的至少一个参数,均封装于通用接口参数D中;
类似的,若所述目标服务端为多个,将所述至少一个目标服务端的地址及相应的控制信息全部封装于一个通用接口参数中;或,按照信息类型,将所述至少一个目标服务端的地址及相应的控制信息封装于不同的通用接口参数中;例如:按照信息类型(目标服务端的地址、目标服务端的调用方式和参数)分三类,将所述至少一个目标服务端的地址、各所述目标服务端的调用方式和参数分别分装于相应通用接口参数中;步骤S202,将所述通用接口调用请求消息发送给所述网络控制设备;
将所述通用接口调用请求发送给所述网络控制设备的目的是:以使所述网络控制设备对解析该接口调用请求消息得到的所述控制信息进行封装,得到符合所述目标服务端所支持的通信协议的控制请求消息,并将所述控制请求消息发送给所述目标服务端。
图3示出了本发明实施例的控制服务端的方法的流程示意图,
如图3所示,在一些说明性的实施例中,所述方法包括如下几个步骤:
步骤S301,用户终端(客户端)获取execute(通用接口)的服务接口信息及入网家电(服务端)的服务接口信息;
所述execute接口是网关(网络控制设备)的接口,所述execute服务接口信息包括地址、所述通用接口的调用方式和其相关的参数;所述入网家电,即能够与网关通信的家电设备并提供至少一种服务;所述服务接口信息包括:各入网家电的地址、入网家电提供的至少一种服务的调用方式、以及与入网家电的调用方式相应的至少一个参数;其中,参数为可选,因为有些入网家电的调用方式无需参数;
步骤S302,用户终端选择目标服务,进行信息封装;
用户终端根据接收到的入网家电的服务接口信息,选择需要的服务(一个或多个),并相应的选择出提供该服务的相应的入网家电;并根据入网家电的服务接口信息,和execute的服务接口信息,进行相应的信息封装,获得远程调用请求;
步骤S303,用户终端发送远程调用请求到execute接口;
步骤S304,网关解析远程调用请求中的信息;
网关解析远程调用请求,获取其中关于调用家电设备的信息(地址、家电设备的调用方式、参数);
步骤S305,网关将远程调用请求中的信息发送到家电设备;
将调用请求中的信息转换成家电设备可识别的通信协议的消息,并发送给家电设备;
步骤S306,家电设备处理请求,执行相关操作;
家电设备收到上述消息后,根据消息中的信息,执行相应的操作。
下面以一个具体的实施例来说明本方案,如图4所示,在该实施例中涉及手机、网关、LED(灯)和音箱;用户利用手机(客户端)可以通过网关(网络控制设备)对家庭网络中的家电设备(服务端,包括LED和音箱)进行控制;
假设家庭网络中各设备的通信关系如图5所示,在应用层上,手机通过提供客户端的应用程序APP1,向网关的应用程序Trans发送调用请求,再由网关将该调用请求中的指令发送给家电设备(LED)的提供灯光控制服务的应用程序APP2上;事实上,设备之间是基于C/S架构点对点的通信框架进行通信,包括BusDaemon(BUS,总线守护进程)和终端节点(应用程序),各设备的BUS连接起来构成一个连通的点对点网络通信***的总线;在各设备总线层的下面,***还提供了一个抽象层,包括相应的通信协议的接口;从图5可以看出,手机支持蓝牙BT,LED支持无线WiFi,网关支持上述两种通信协议,手机通过BT向网关发送消息,网关再通过WiFi与LED进行通信(音箱与LED相同,在此处不进行累述);
手机通过网关获取execute服务接口信息和网关所维护的家电设备(包括LED和音箱)的服务接口信息;上述服务接口信息如下表所示:
其中,地址用来标识目的设备上的服务接口;调用请求发送到网络中便可以根据地址找到所调用的目标设备的相应接口;调用方式表示调用请求所要执行的操作;参数为执行操作所需传入的必要数据;表中第一行是调用网关的execute接口所需的服务接口信息;表中第二行和第三行描述的是家电设备的服务接口信息;
下面结合图4,对整个通信过程进行阐述:
步骤S401,手机封装LED和音箱的服务接口信息;
若手机分别对LED和音箱的服务接口信息进行封装,形成两个调用请求,并分别发送给网关进行控制,则封装的过程可以如下:
以控制音箱为例:
方式1:将音箱的服务接口信息封装成一个execute接口参数;
网关execute接口的调用除了必要的地址、execute接口的调用方式外,可能包含一个execute接口参数,形式如下:
MethodCall(“com.producer.gateway:sd77as”,“execute”,args);
其中,args是execute接口参数,包含被调用的音箱的接口地址,音箱的调用方式的名称,相关参数等信息;如通过手机调用音箱以循环方式播放一首乐曲,args可以是一下的形式:
方式2:将音箱的服务接口信息封装成多个execute接口参数;
网关execute接口的调用也可以包含多个参数,如用三个参数分别封装音箱的接口地址、音箱的调用方式的名称和相关参数:
MethodCall(“com.producer.gateway:sd77as”,“execute”,appAddress,methodName,methodArgs);
其中,appAddress包含目标设备应用地址,methodName包含所调用的方式的名称,methodArgs包含所调用的参数;仍以上面调用音箱以循环方式播放一首乐曲为例,appAddress可以是”com.producer.audio:sdsd90”;methodName可以是”play”;methodArgs可以是下面的形式:
可选的,无论上述何种形式,在家电服务接口信息中包含不止一个参数时,多个参数需要结合在一起封装在同一个execute接口参数中;
若手机需要同时对LED和音箱的服务接口信息进行封装,即仅形成一个调用请求,并发送给网关进行控制,则封装的过程可以如下:
方式1:将LED和音箱的服务接口信息均封装于同一个execute接口参数中;
假设网关execute接口的调用采用MethdCall(“com.producer.gateway:sd77as”,“execute”,args)的形式;手机将LED亮度调节以及音箱播放的地址、调用方式和相关参数封装为网关execute接口的参数args;args形式可以如下:
方式2:将LED和音箱的服务接口信息封装于多个execute接口参数中;
若网关execute接口的调用采用MethdCall(“com.producer.gateway:sd77as”,“execute”,appAddress,methodName,methodArgs)的形式;则appAddress可以是数组的形式,第一项appAddress[0]为”com.producer.lighting:ds89sd”,第二项appAddress[1]为“com.producer.audio:sdsd90”;methodName对应地也可为数组,第一项methodName[0]为“intensity”,第二项methodName[1]为“play”。methodArgs可以为下面的形式:
此时,网关解析时需能够将第一个<device>标签所含的参数与appAddress[0]、methodName[0]进行对应关联,将第二个<device>标签所含的参数与appAddress[1]、methodName[1]进行对应关联;
步骤S402,手机调用网关的execute接口;
若客户选择同时对LED和音箱进行控制,则向所述网关发送调用请求,所述调用请求携带封装后的execute接口的服务接口信息、以及LED和音箱的服务接口信息;
步骤S403,网关解析出LED和音箱的接口信息;
网关解析execute接口,在execute接口参数中解析出LED和音箱的接口信息;
步骤S404,网关判断调用请求是否合法;
网关查询存储的规则库,判断用户手机控制LED和音箱是合法的;
步骤S405,网关向手机返回接口响应;
网关返回给手机一个响应,表示已收到调用请求并开始执行,之后触发步骤S406和S407,这两个步骤没有必然的顺序关系;
步骤S406,网关与LED建立会话;
步骤S407,网关与音箱建立会话;
步骤S408,网关调用LED亮度调节接口;
网关根据获得的LED的地址、LED的调用方式、相关参数调用LED的对应接口,生成LED可识别的通信协议的消息,发送给LED;
步骤S409,网关调用音箱播放接口;
网关根据获得的音箱的地址、音箱的调用方式、相关参数调用音箱的对应接口,生成音箱可识别的通信协议的消息,发送给LED;其中,步骤S408、S409没有必然的顺序关系;
步骤S410,LED向网关反馈亮度调节接口响应;
LED执行调节亮度的操作后,向网关发送反馈消息,告知网关已完成相应的操作;
步骤S411,音箱向网关反馈播放接口响应。
音箱执行播放音乐的操作后,向网关发送反馈消息,告知网关已完成相应的操作;其中,步骤S408、S409没有必然的顺序关系;
可选的,网关在收到LED或音箱的反馈消息后,也会向手机发送反馈确认,告知用户已完成对LED或音箱的服务控制;
可选的,网关会对上述过程中用户手机调用LED和音箱的过程进行记录,并将手机与LED和音箱做关联;例如在网关中会设置一个设备关联表,每次客户端(如手机)通过网关调用服务端(LED或音箱)后,网关都会在设备关联表中进行记录,并将客户端与服务端做关联。
图6示出了本发明实施例的一种控制服务端的装置600的结构示意图,
在一些说明性的实施例中,所述装置600,包括:
接收单元601,用于接收客户端发送的通用接口调用请求消息;
解析单元602,用于按通用接口的通信协议解析所述通用接口调用请求消息,获得目标服务端的地址及控制信息;
第一发送单元603,用于根据目标服务端所支持的通信协议将获取到的所述控制信息进行封装,得到符合所述目标服务端所支持的通信协议的控制请求消息,并根据所述目标服务端的地址将所述控制请求消息发送给所述目标服务端;
在一些说明性的实施例中,所述控制信息包括所述目标服务端的调用方式;
或,所述控制信息包括所述目标服务端的调用方式和与该目标服务端的调用方式配合使用的至少一个相关参数;
在一些说明性的实施例中,所述装置600,所述第一发送单元603包括:
判断单元6031,用于判断所述通用接口调用请求消息是否合法;
若是,则将获取到的所述控制信息进行封装;
在一些说明性的实施例中,所述装置600,还包括:
第二发送单元604,用于所述接收单元601接收所述通用接口调用请求消息前,发送所述通用接口的相关信息到所述客户端和所述目标服务端;
其中,所述通用接口的相关信息包括通用接口的总线地址、通用接口的调用方式及相关参数;
在一些说明性的实施例中,所述装置600,还包括:
第三发送单元605,用于所述接收单元601接收所述通用接口调用请求消息前,将所述目标服务端的地址和控制信息发送到所述客户端。
图7示出了本发明实施例的一种控制服务端的装置700的结构示意图,
在一些说明性的实施例中,所述装置700,包括:
封装单元701,用于将目标服务端的地址及相应的控制信息按通用接口的通信协议进行封装,得到通用接口调用请求消息;
控制单元702,用于将所述通用接口调用请求消息给所述网络控制设备;
在一些说明性的实施例中,所述目标服务端的地址及控制信息通过所述网络控制设备查询并获取得到;
在一些说明性的实施例中,所述装置700,还包括:
接收单元703,用于所述封装单元701将目标服务端的地址及控制信息按通用接口的通信协议进行封装,得到通用接口调用请求消息之前,接收所述网络控制设备侧发送的所述通用接口的相关信息;
其中,所述通用接口的相关信息包括通用接口的总线地址、通用接口的调用方式及其相关参数;
在一些说明性的实施例中,所述通用接口调用请求消息包括通用接口参数,所述封装单元701,包括:
第一封装子单元7011,用于将所述目标服务端的地址及控制信息全部封装于一个通用接口参数中;或,按照信息类型,将所述目标服务端的地址及控制信息封装于不同的通用接口参数中;
在一些说明性的实施例中,所述控制信息包括所述目标服务端的调用方式;
或,所述控制信息包括所述目标服务端的调用方式和与该目标服务端的调用方式配合使用的至少一个相关参数;
在一些说明性的实施例中,若所述控制信息包括所述目标服务端的调用方式和与该目标服务端的调用方式配合使用的至少一个相关参数,则所述封装单元701,包括:
第二封装子单元7012,用于将所述至少一个相关参数封装于同一个通用接口参数中。
采用上述实施例,可达到以下效果:
使得客户端可以通过网络控制设备调用网络控制设备所能连接的任意服务端;服务端无需具备调用网络控制设备服务的客户端;
客户端和服务端无需事先与网络控制设备建立会话,降低了设备的运行负载,节省能耗。
本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个***所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。