络控制设备。
[0082]在一些说明性的实施例中,每个设备都运行着一个Alljoyn Bus Daemon (点对点通信总线服务),当设备启动或Alljoyn (是一种基于客户端/服务架构的设备之间通信框架)功能开启后,各设备上的Bus Daemon(总线守护进程或总线服务)将会进行广播,通过服务广播将连接在自己上的应用程序的相关信息(服务和/或客户端)广播出去;其中,Alljoyn是由Bus Daemon和终端节点组成,所述终端节点可以是一个应用程序,每个应用程序需要注册到Bus Daemon上,Bus Daemon负责终端节点之间的消息路由和服务发现等功能;此外,在基于Alljoyn的通信模式下时,当某设备(如设备I)需要某服务时,或,设备上提供的服务发生变化时,设备I会进行广播;图3是所述实施例中一种点对点服务更新方法的流程示意图,所述方法可以包括以下几个步骤:
[0083]步骤S301,设备I上电后或Alljoyn功能开启后,设备I上的Bus Daemon进行服务广播,所述服务广播携带其应用程序的相关信息(服务和/或客户端);
[0084]步骤S302,设备I判断网络中是否存在网络控制设备(如网关),或者,判断网络中是否存在集中式服务路由信息管理的服务;如果不包含网关或所述服务,则执行Alljoyn现有的通信流程,否则执行步骤S303 ;这里的网关是指运行All joyn Bus Daemon,具有服务路由信息管理功能的网络控制设备;
[0085]设备I发现是否存在网关或服务,可以包括以下两种方式:
[0086](I)网关的 Bus Daemon 具有特殊的名称,如 org、all joyn、gateway 等;
[0087](2)网关的Bus Daemon上运行着服务路由信息管理的服务,该服务具有特殊的服务名称,如 org、all joyn > service、router 等;
[0088]设备I通过识别上述特殊的名称来判断网络中是否存在具有服务路由信息管理功能的网关或服务;另外,需要注意的是,网关只是做一个举例,所述集中式路由服务管理功能可能运行在其它设备上,如电视,冰箱等;
[0089]步骤S303,设备I停止服务广播,即停止现有技术中Alljoyn的流程;
[0090]步骤S304,设备I的Alljoyn Bus Daemon向网关发送注册信息(所述注册信息包括服务和/或客户端信息);此处,因为网关可能之前通过网络中包括设备I的各设备发送的服务广播,获取各设备的服务和/或客户端信息,因此步骤S304可选;
[0091]步骤S305,网关根据获取到的各设备的服务和/或客户端信息生成路由表,所述路由表也可以是Bus Daemon上运行着的路由维护服务,用于维护所有设备的服务路由信息;这里需要注意的是,路由表中也可以包含客户端信息;
[0092]步骤S306,当设备I的客户端Cl想使用服务S4时,因此设备I向网关发送查询服务消息,请求查询哪些设备可以提供服务S4 ;
[0093]步骤S307,网关根据所述查询服务消息,在路由表中查询S4所在的至少一个服务设备的设备信息,如服务设备的Bus Daemon的名称、IP地址等等;
[0094]步骤S308,网关通过发送服务消息,将全部或部分上述服务设备的设备信息发送给设备I ;
[0095]步骤S309,设备I根据接收到的服务消息,将至少一个服务设备的设备信息添加到自己的路由表中;在这个过程中,若设备I接收到多个服务设备的设备信息,然而设备I只需要I台服务设备提供服务S4,那么设备I可以按照预置的策略或者随机选I台作为目标服务设备,将该设备的设备信息添加到路由表中;
[0096]步骤S310,设备I根据服务设备的设备信息与所述服务设备进行互动,如向服务设备发送获取服务的请求,服务设备在收到请求后,向设备I提供服务S4 ;
[0097]步骤S311,当设备2的至少一个服务发生更新(如服务的删除、变化等)时,设备2向网关发送服务更新通知;假设设备2上的服务S4发生变化,网关收到服务更新通知后获取设备2上服务S4的服务变动信息,或者,网关通过检测获知设备2上提供的服务发生变化,并生成设备2的服务变动信息;所述服务变动信息可以包括至少一个服务标识,所述服务标识用于标记设备2上服务S4 ;
[0098]步骤S312,可选的,网关会根据上述设备2的服务变动信息,更新路由表中设备2的服务信息;
[0099]步骤S313,网关维护一个关联表,关联表中存放着设备I上客户端Cl查询过服务S4的查询记录,通过查询关联表中可以获知设备I是需要通知其进行服务更新的设备;此处,网关也有可能查到设备3也曾查询过服务S4,则设备3也是需要发送更新通知的设备;
[0100]步骤S314,网关向与设备2的服务S4有关的至少一个设备(如设备I和设备3)发送第一更新通知,所述第一更新通知携带设备2的设备标识和服务服务S4的服务变动信息;
[0101]步骤S315,设备I在接收到第一更新通知后,更新路由表中设备2的服务信息;
[0102]步骤S316,若设备I还提供至少一个服务,当设备I上的服务发生变化时(例如服务S5和S6被删除),触发步骤S317 ;
[0103]步骤S317,向网关发送第二更新通知,所述第二更新通知携带设备I的设备标识和服务变动信息,此处,所述服务变动信息是服务S5和S6被删除;
[0104]步骤S318,可选的,网关接收到第二更新通知后,会根据设备I的服务变动信息,更新路由表中设备I的服务信息,即将设备I提供的服务S5和S6删除;
[0105]步骤S319,网关通过查询关联表获知设备I曾向设备3提供过服务S5,设备I曾向设备4提供过服务S6,并且也有可能查到设备5曾同时获取过设备I的服务S5和S6 ;
[0106]步骤S320,网关向设备3、设备4和设备5分别发送第三更新通知,所述第一更新通知携带设备I的设备标识和服务S4和S5的服务变动信息,通知其更新路由表中设备I的相应服务信息。
[0107]图4是实施例中一种点对点服务更新设备400的结构示意图。
[0108]在一些说明性的实施例中,所述设备400,应用于网络控制设备侧,包括:
[0109]第一单元401,用于获知第一服务设备的服务变化情况;
[0110]第二单元402,用于查询到至少一个第一用户设备;其中,所述第一用户设备是曾查询过所述第一服务设备上服务的设备;
[0111]第三单元403,用于向所述至少一个第一用户设备发送第一更新通知,所述第一更新通知携带所述第一服务设备的设备标识和第一变动信息,通知所述第一用户设备更新所述第一服务设备的服务信息,所述第一变动信息是所述第一服务设备上服务的变动信息。
[0112]在一些说明性的实施例中,所述第一单元401包括:
[0113]第一接收单元4011,用于接收所述第一服务设备发来的第二更新通知,所述第二更新通知携带所述第一变动信息;或,
[0114]检测单元4012,用于通过检测获知所述第一服务设备上提供的服务发生变化,并生成所述第一变动信息。
[0115]在一些说明性的实施例中,所述设备400,所述第一变动信息包括至少一个服务标识,所述服务标识用于标记所述第一服务设备上发生变动的服务。
[0116]在一些说明性的实施例中,所述设备400,还包括:
[0117]第四单元404,用于所述第一单元401获知第一服务设备的服务变化情况之后,根据所述第一服务设备的服务变化情况,更新本地保存的所述第一服务设备的服务信息。
[0118]在一些说明性的实施例中,所述设备400,还包括:用于查询服务的第五单元405,所述第五单元405包括:
[0119]第二接收单元4051,用于接收第二用户设备发来的用于获取第一服务的查询服务请求;
[0120]提取单元4052,用于提取至少一个第二服务设备的设备信息,所述第二服务设备具有提供所述第一服务的能力;
[0121]发送单元4053,用于向所述第二用户设备发送服务消息,所述服务消息中包括至少一个所述第二服务设备的设备信息。
[0122]在一些说明性的实施例中,所述查询服务请求携带所述第一服务的服务标识和所述第二用户设备的设备标识,所述第二服务设备的设备信息包括第二服务设备的设备标识;
[0123]所述第五单元405还包括:<