用于设备间服务的访问方法、配置方法及装置与流程

文档序号:11205829阅读:354来源:国知局
用于设备间服务的访问方法、配置方法及装置与流程

本申请涉及服务访问技术,具体涉及一种用于设备间服务的访问方法及装置。本申请同时涉及一种用于设备间服务的配置方法及装置,以及一种设备间的信息广播方法及装置。



背景技术:

随着计算机和网络技术的发展,个人电脑、智能手机等电子设备都得到了广泛的应用。这些电子设备上不仅可以安装应用程序,为用户提供丰富的服务功能,例如:播放音乐、存储数据等;还可以具有通过特定的访问接口为应用程序提供服务的服务提供方,所述服务提供方可以是应用程序,也可以是系统程序。

在具体应用中,为了便于应用程序之间、以及应用程序与系统程序之间的互通,满足不同程序之间的服务访问需求,出现了很多ipc(interprocesscommunication进程间通信)机制,用来实现程序进程之间的通信,d-bus就是其中一种,其主要用途是在linux桌面环境为进程提供通信,同时能将linux桌面环境和linux内核事件作为消息传递到进程,并能够实现各种复杂的进程间通信任务。

但是d-bus的应用仅仅局限于一个设备内部,对于设备之间服务的访问需求则无法满足。例如在车载系统中包括智能手机、wifi音箱等多个电子设备,各个设备提供的功能彼此独立,如果用户希望欣赏某个电子设备(例如:智能手机)中的乐曲,而该电子设备由于音频硬件设施发生故障无法实现音频播放功能,那么用户或者放弃欣赏,或者需要手动将待播放曲目复制到wifi音箱的存储介质中才能播放。由此可见,现有各设备之间提供的服务功能彼此独立,不便于用户使用,影响用户的使用体验。



技术实现要素:

本申请实施例提供一种用于设备间服务的访问方法和装置,以解决现有设备之间提供的服务功能彼此独立、不便于用户使用的问题。本申请实施例还提供用于设备间服务的配置方法及装置,以及一种设备间的信息广播方法及装置。

本申请提供一种用于设备间服务的访问方法,包括:

第一程序对特定服务的访问请求由运行所述第一程序的源设备发出、并通过设备间的联接传送到提供所述特定服务的目标设备;

所述目标设备将接收到的所述访问请求转发给在其上运行的第二程序,并由所述第二程序执行相应的服务功能;

其中,所述设备间的联接包括:不同设备分别通过主设备提供的联接端口与所述主设备建立的联接。

可选的,所述设备间的联接是通过如下方式预先建立的:

所述主设备创建用于与其他设备建立联接的联接端口;

当所述源设备为非主设备的从设备时,所述源设备向所述联接端口发送联接请求,所述主设备根据接收到的联接请求,建立主设备和源设备之间的数据连接,以完成源设备和主设备之间的联接过程;

当所述目标设备为非主设备的从设备时,所述目标设备向所述联接端口发送联接请求,所述主设备根据接收到的联接请求,建立主设备和目标设备之间的数据连接,以完成目标设备和主设备之间的联接过程。

可选的,所述主设备创建联接端口、以及根据接收到的联接请求与从设备建立数据连接的操作,由所述主设备上的总线控制模块执行;

所述从设备通过发送联接请求与主设备建立数据连接的操作,由所述从设备上的总线客户端模块执行。

可选的,所述第一程序对特定服务的访问请求由运行所述第一程序的源设备发出、并通过设备间的联接传送到提供所述特定服务的目标设备,包括:

所述源设备根据预先存储的服务配置信息封装访问请求并将其发出,所述访问请求通过设备间的联接、依照其包含的所述目标设备标识传送到提供所述特定服务的目标设备;所述访问请求中至少包含所述第一程序访问的所述特定服务的服务标识和所述目标设备标识;

所述目标设备将接收到的所述访问请求转发给在其上运行的第二程序,并 由所述第二程序执行相应的服务功能,包括:

目标设备根据预先存储的服务配置信息,将所述访问请求转发给在其上运行的所述第二程序,并由所述第二程序执行相应的服务功能。

可选的,所述源设备的服务配置信息包括至少具有以下信息的远程服务配置项:所述目标设备标识,以及所述特定服务的服务标识;所述服务标识包括:服务名称;

所述目标设备的服务配置信息包括至少具有以下信息的本地服务配置项:所述特定服务的服务标识,以及提供所述特定服务的第二程序进程的标识。

可选的,所述源设备的服务配置信息的生成方式包括如下所述的服务挂载过程:

至少包含所述目标设备标识以及所述特定服务的服务标识的服务挂载请求由所述目标设备发出,并通过所述设备间的联接传送给至少包括所述源设备的各设备;

所述源设备根据接收到的服务挂载请求,生成至少包含所述目标设备标识以及所述特定服务的服务标识的远程服务配置项,并将所述远程服务配置项添加到自己的服务配置信息中。

可选的,所述目标设备通过如下方式生成所述服务挂载请求:

所述第二程序将自己提供的所述特定服务注册到目标设备的服务配置信息中,以在所述服务配置信息中生成相应的本地服务配置项;

根据所述本地服务配置项中包含的所述特定服务的服务标识以及所述目标设备标识,生成所述服务挂载请求。

可选的,当所述源设备为主设备时,所述源设备根据预先存储的服务配置信息封装访问请求并将其发出,所述访问请求通过设备间的联接、依照其包含的所述目标设备标识传送到提供所述特定服务的目标设备,包括:

所述源设备通过查询预先存储的服务配置信息封装访问请求,所述访问请求中至少包含所述第一程序访问的所述特定服务的服务标识和所述目标设备标识;

所述源设备根据封装后的访问请求包含的目标设备标识,利用已与所述目标设备建立的联接,将所述访问请求发送给所述目标设备。

可选的,当所述目标设备为主设备时,所述源设备根据预先存储的服务配置信息封装访问请求并将其发出,所述访问请求通过设备间的联接、依照其包含的所述目标设备标识传送到提供所述特定服务的目标设备,包括:

所述源设备通过查询预先存储的服务配置信息封装访问请求,所述访问请求中至少包含所述第一程序访问的所述特定服务的服务标识和所述目标设备标识;

所述源设备利用已与所述目标设备建立的联接,将封装后的访问请求发送给所述目标设备。

可选的,当所述源设备以及所述目标设备都不为主设备时,所述源设备根据预先存储的服务配置信息封装访问请求并将其发出,所述访问请求通过设备间的联接、依照其包含的所述目标设备标识传送到提供所述特定服务的目标设备,包括:

所述源设备通过查询预先存储的服务配置信息封装访问请求,所述访问请求中至少包含所述第一程序访问的所述特定服务的标识和所述目标设备标识;

所述源设备利用已与所述主设备建立的联接,将封装后的访问请求发送给所述主设备;

所述主设备根据接收到的所述访问请求包含的目标设备标识,利用已与所述目标设备建立的联接,将所述访问请求发送给所述目标设备。

可选的,所述目标设备根据预先存储的服务配置信息,将所述访问请求转发给在其上运行的所述第二程序,并由所述第二应用程序执行相应的服务功能,包括:

所述目标设备接收所述访问请求后执行解封装操作,并获取被访问的服务标识;

所述目标设备根据所述被访问的服务标识查找服务配置信息中的本地服务配置项,获取提供相应服务的第二程序进程的标识;

所述目标设备根据所述第二程序进程的标识,将解封装后的访问请求转发给所述第二程序,由所述第二程序执行相应的服务功能。

可选的,所述源设备的服务配置信息中的、对应于所述特定服务的远程服务配置项中的信息还包括:代理标识,其对应的代理是在生成所述远程服务配置项时生成的、负责为访问所述特定服务提供至少包括封装功能的代理服务;

所述源设备通过查询预先存储的服务配置信息封装访问请求,所述访问请求中至少包含所述第一程序访问的所述特定服务的服务标识和所述目标设备标识,包括:

所述第一程序根据所述特定服务的服务标识查询服务配置信息,获取为访问所述特定服务提供代理服务的代理标识;

所述第一程序根据所述代理标识,将包含所述特定服务的服务标识的访问请求发送给相应的代理,并由所述代理为所述访问请求封装所述目标设备标识。

可选的,所述第一程序根据所述特定服务的服务标识查询服务配置信息,获取为访问所述特定服务提供代理服务的代理标识,包括:

所述第一程序根据所述特定服务的服务标识查询服务配置信息;

当服务配置信息中存在两个或者两个以上与所述特定服务的服务标识相对应的远程服务配置项时,则按照预设的优先级规则选择其中一个远程服务配置项中的代理标识作为为访问所述特定服务提供代理服务的代理标识。

可选的,所述主设备在非主设备的从设备间转发消息、在本设备与从设备间转发消息、以及提供代理服务的操作,由主设备上的总线控制模块执行;

从设备在本设备与主设备间转发消息、以及提供代理服务的操作,由从设备上的总线控制模块执行。

可选的,在第一程序对特定服务的访问请求由运行所述第一程序的源设备发出、并通过设备间的联接传送到提供所述特定服务的目标设备的过程中,包括:所述主设备根据预设的消息转发规则,判断是否可以利用设备间的联接转发所述访问请求,并在可以时执行相应的转发操作。

可选的,所述目标设备将接收到的所述访问请求转发给在其上运行的第二程序后,还包括:

第二程序针对所述访问请求的应答信息由所述目标设备发出、并通过所述设备间的联接传送给所述源设备;

所述源设备将接收到的所述应答信息返回给所述第一程序。

可选的,所述主设备的数目大于1,各主设备之间彼此级联,非主设备的设备分别从属于一个主设备;

所述设备间的联接包括:不同设备分别通过其主设备提供的联接端口与所 述主设备建立的联接,以及主设备之间的级联联接。

可选的,所述联接端口包括:tcp端口,或者udp端口。

可选的,所述方法应用于车载系统中,所述特定服务包括:音频播放服务,所述源设备包括:智能手机,所述目标设备包括:车载音响设备;

所述第一程序对特定服务的访问请求由运行所述第一程序的源设备发出、并通过设备间的联接传送到提供所述特定服务的目标设备,包括:第一程序对音频播放服务的访问请求由运行所述第一程序的智能手机发出、并通过设备间的联接传送到提供所述音频播放服务的车载音响设备;

所述目标设备将接收到的所述访问请求转发给在其上运行的第二程序,并由所述第二程序执行相应的服务功能,包括:所述车载音响设备将接收到的所述访问请求转发给在其上运行的音频播放程序,并由所述音频播放程序执行相应的音频播放功能。

可选的,所述方法应用于车载系统中,所述特定服务包括:视频播放服务,所述源设备包括:智能手机,所述目标设备包括:车载dvd;

所述第一程序对特定服务的访问请求由运行所述第一程序的源设备发出、并通过设备间的联接传送到提供所述特定服务的目标设备,包括:第一程序对视频播放服务的访问请求由运行所述第一程序的智能手机发出、并通过设备间的联接传送到提供所述视频播放服务的车载dvd;

所述目标设备将接收到的所述访问请求转发给在其上运行的第二程序,并由所述第二程序执行相应的服务功能,包括:所述车载dvd将接收到的所述访问请求转发给在其上运行的视频播放程序,并由所述视频播放程序执行相应的视频播放功能。

可选的,所述方法应用于车载系统中,所述特定服务包括:数据存储服务,所述源设备包括:智能手机,所述目标设备包括:车载硬盘机;

所述第一程序对特定服务的访问请求由运行所述第一程序的源设备发出、并通过设备间的联接传送到提供所述特定服务的目标设备,包括:第一程序对数据存储服务的访问请求由运行所述第一程序的智能手机发出、并通过设备间的联接传送到提供所述数据存储服务的车载硬盘机;

所述目标设备将接收到的所述访问请求转发给在其上运行的第二程序,并由所述第二程序执行相应的服务功能,包括:所述车载硬盘机将接收到的所述 访问请求转发给在其上运行的数据存储程序,并由所述数据存储程序执行相应的数据存储功能。

可选的,所述方法应用于家庭娱乐系统中,所述特定服务包括:视频播放服务,所述源设备包括:智能手机,所述目标设备包括:智能电视或者平板电脑;

所述第一程序对特定服务的访问请求由运行所述第一程序的源设备发出、并通过设备间的联接传送到提供所述特定服务的目标设备,包括:第一程序对视频播放服务的访问请求由运行所述第一程序的智能手机发出、并通过设备间的联接传送到提供所述视频播放服务的智能电视或者平板电脑;

所述目标设备将接收到的所述访问请求转发给在其上运行的第二程序,并由所述第二程序执行相应的服务功能,包括:所述智能电视或者平板电脑将接收到的所述访问请求转发给在其上运行的视频播放程序,并由所述视频播放程序执行相应的视频播放功能。

相应的,本申请还提供一种用于设备间服务的访问装置,包括:

访问请求传送单元,用于第一程序对特定服务的访问请求由运行所述第一程序的源设备发出、并通过设备间的联接传送到提供所述特定服务的目标设备;

目标服务提供单元,用于所述目标设备将接收到的所述访问请求转发给在其上运行的第二程序,并由所述第二程序执行相应的服务功能。

可选的,所述装置包括:

联接端口创建单元,用于所述主设备创建用于与其他设备建立联接的联接端口;

源设备联接单元,用于当所述源设备为非主设备的从设备时,所述源设备向所述联接端口发送联接请求,所述主设备根据接收到的联接请求,建立主设备和源设备之间的数据连接,以完成源设备和主设备之间的联接过程;

目标设备联接单元,用于当所述目标设备为非主设备的从设备时,所述目标设备向所述联接端口发送联接请求,所述主设备根据接收到的联接请求,建立主设备和目标设备之间的数据连接,以完成目标设备和主设备之间的联接过程。

可选的,所述访问请求传送单元具体用于,所述源设备根据预先存储的服务配置信息封装访问请求并将其发出,所述访问请求通过设备间的联接、依照 其包含的所述目标设备标识传送到提供所述特定服务的目标设备;所述访问请求中至少包含所述第一程序访问的所述特定服务的服务标识和所述目标设备标识;

所述目标服务提供单元具体用于,目标设备根据预先存储的服务配置信息,将所述访问请求转发给在其上运行的所述第二程序,并由所述第二程序执行相应的服务功能。

可选的,所述装置包括:

目标设备服务挂载请求传送单元,用于至少包含所述目标设备标识以及所述特定服务的服务标识的服务挂载请求由所述目标设备发出,并通过所述设备间的联接传送给至少包括所述源设备的各设备;

源设备服务配置信息存储单元,用于所述源设备根据接收到的服务挂载请求,生成至少包含所述目标设备标识以及所述特定服务的服务标识的远程服务配置项,并将所述远程服务配置项添加到自己的服务配置信息中。

可选的,所述装置还包括:

本地服务注册单元,用于所述第二程序将自己提供的所述特定服务注册到目标设备的服务配置信息中,以在所述服务配置信息中生成相应的本地服务配置项;

服务挂载请求生成单元,用于根据所述本地服务配置项中包含的所述特定服务的标识以及所述目标设备标识,生成所述服务挂载请求。

可选的,所述访问请求传送单元包括:

访问请求封装子单元,用于所述源设备通过查询预先存储的服务配置信息封装访问请求,所述访问请求中至少包含所述第一程序访问的所述特定服务的服务标识和所述目标设备标识;

第一访问请求发送子单元,用于所述源设备根据封装后的访问请求包含的目标设备标识,利用已与所述目标设备建立的联接,将所述访问请求发送给所述目标设备。

可选的,所述访问请求传送单元包括:

访问请求封装子单元,用于所述源设备通过查询预先存储的服务配置信息封装访问请求,所述访问请求中至少包含所述第一程序访问的所述特定服务的服务标识和所述目标设备标识;

第二访问请求发送子单元,用于所述源设备利用已与所述目标设备建立的联接,将封装后的访问请求发送给所述目标设备。

可选的,所述访问请求传送单元包括:

访问请求封装子单元,用于所述源设备通过查询预先存储的服务配置信息封装访问请求,所述访问请求中至少包含所述第一程序访问的所述特定服务的服务标识和所述目标设备标识;

第三访问请求发送子单元,用于所述源设备利用已与所述主设备建立的联接,将封装后的访问请求发送给所述主设备;

访问请求转发子单元,用于所述主设备根据接收到的所述访问请求包含的目标设备标识,利用已与所述目标设备建立的联接,将所述访问请求发送给所述目标设备。

可选的,所述目标服务提供单元包括:

访问请求接收子单元,用于所述目标设备接收所述访问请求后执行解封装操作,并获取被访问的服务标识;

目标进程查找子单元,用于所述目标设备根据所述被访问的服务标识查找服务配置信息中的本地服务配置项,获取提供相应服务的第二程序进程的标识;

目标服务提供子单元,用于所述目标设备根据所述第二程序进程的标识,将解封装后的访问请求转发给所述第二程序,由所述第二程序执行相应的服务功能。

可选的,所述访问请求封装子单元包括:

代理标识获取子单元,用于所述第一程序根据所述特定服务的服务标识查询服务配置信息,获取为访问所述特定服务提供代理服务的代理标识;

代理服务封装子单元,用于所述第一程序根据所述代理标识,将包含所述特定服务的服务标识的访问请求发送给相应的代理,并由所述代理为所述访问请求封装所述目标设备标识。

可选的,所述装置还包括:

应答信息传送单元,用于当所述目标服务提供单元执行完毕其功能后,第二程序针对所述访问请求的应答信息由所述目标设备发出、并通过所述设备间的联接传送给所述源设备;

应答信息返回单元,用于所述源设备将接收到的所述应答信息返回给所述第一程序。

此外,本申请还提供一种用于设备间服务的配置方法,包括:

至少包含第一设备所提供服务的服务标识以及第一设备标识的服务挂载请求由所述第一设备发出、并通过设备间的联接传送到与主设备互联的各设备;

除所述第一设备之外的各设备根据接收到的服务挂载请求,生成至少包含所述第一设备标识以及第一设备所提供服务的服务标识的远程服务配置项,并将所述远程服务配置项添加到自己的服务配置信息中。

其中,所述设备间的联接包括:不同设备分别通过主设备提供的联接端口与所述主设备建立的联接。

可选的,所述第一设备通过如下方式生成所述服务挂载请求:

在第一设备上运行的应用程序将各自提供的服务注册到第一设备的服务配置信息中,以在所述服务配置信息中生成本地服务配置项;

根据所述本地服务配置项中包含的服务标识以及第一设备的设备标识,生成所述服务挂载请求。

可选的,在所述除所述第一设备之外的各设备将所述远程服务配置项添加到自己的服务配置信息中后,还包括:

至少包含被卸载服务的服务标识的服务卸载请求由所述第一设备发出、并通过设备间的联接传送到与主设备互联的各设备;

除所述第一设备之外的各设备根据接收到的服务卸载请求,从自己的服务配置信息中删除包含所述服务标识的远程服务配置项。

可选的,当所述第一设备不是主设备时,在所述除所述第一设备之外的各设备将所述远程服务配置项添加到自己的服务配置信息中后,还包括:

所述第一设备向主设备发送设备断开请求,所述请求中至少携带第一设备标识;

所述主设备通过其与各设备之间的联接、将所述设备断开请求转发给各设备;

除所述第一设备之外的各设备根据接收到的设备断开请求,从自己的服务配置信息中删除包含所述第一设备标识的所有远程服务配置项。

相应的,本申请还提供一种用于设备间服务的配置装置,包括:

挂载请求传送单元,用于至少包含第一设备所提供服务的服务标识以及第一设备标识的服务挂载请求由所述第一设备发出、并通过设备间的联接传送到与主设备互联的各设备;

服务配置存储单元,用于除所述第一设备之外的各设备根据接收到的服务挂载请求,生成至少包含所述第一设备标识以及第一设备所提供服务的服务标识的远程服务配置项,并将所述远程服务配置项添加到自己的服务配置信息中。

可选的,所述装置包括:

卸载请求传送单元,用于在所述服务配置存储单元完成远程服务配置项的添加操作后,至少包含被卸载服务的服务标识的服务卸载请求由所述第一设备发出、并通过设备间的联接传送到与主设备互联的各设备;

第一服务配置删除单元,用于除所述第一设备之外的各设备根据接收到的服务卸载请求,从自己的服务配置信息中删除包含所述服务标识的远程服务配置项。

可选的,所述装置包括:

设备断开请求发送单元,用于在所述服务配置存储单元完成远程服务配置项的添加操作后,所述第一设备向主设备发送设备断开请求,所述请求中至少携带第一设备标识;

设备断开请求转发单元,用于所述主设备通过其与各设备之间的联接、将所述设备断开请求转发给各设备;

第二服务配置删除单元,用于除所述第一设备之外的各设备根据接收到的设备断开请求,从自己的服务配置信息中删除包含所述第一设备标识的所有远程服务配置项。

此外,本申请还提供一种用于设备间的信息广播方法,包括:

第一应用程序的广播请求由运行所述第一应用程序的第一设备发出,并通过设备间的联接传送到与主设备互联的各设备;

除所述第一设备之外的各设备将接收到的广播请求发送给各自承载的应用程序;

其中,所述设备间的联接包括:不同设备分别通过主设备提供的联接端口 与所述设备建立的联接。

相应的,本申请还提供一种用于设备间的信息广播装置,包括:

广播请求传送单元,用于第一应用程序的广播请求由运行所述第一应用程序的第一设备发出,并通过设备间的联接传送到与主设备互联的各设备;

广播请求上报单元,用于除所述第一设备之外的各设备将接收到的广播请求发送给各自承载的应用程序。

与现有技术相比,本申请具有以下优点:

本申请提供的用于设备间的服务访问方法,第一程序对特定服务的访问请求由运行所述第一程序的源设备发出、并通过设备间的联接传送到提供所述特定服务的目标设备,所述目标设备将接收到的所述访问请求转发给在其上运行的第二程序,并由所述第二程序执行相应的服务功能,其中,所述设备间的联接包括:不同设备分别通过主设备提供的联接端口与所述主设备建立的联接。

采用本申请提供的上述方法,由于各设备通过主设备提供的联接端口与主设备建立联接,相当于在各设备之间形成了虚拟的设备总线,并可以基于所述设备总线实现跨设备的服务访问功能,从而单个设备的部分能力可以成为标准化的功能模块为其他设备服务,使设备间的功能组合成为可能,进而形成更为复杂和灵活的功能系统。

附图说明

图1是本申请的一种设备间服务的访问方法的实施例的流程图;

图2是本申请实施例提供的源设备为主设备时的架构示意图;

图3是本申请实施例提供的源设备为主设备时、访问请求传送至目标设备的处理流程图;

图4是本申请实施例提供的目标设备为主设备时的架构示意图;

图5是本申请实施例提供的目标设备为主设备时、访问请求传送至目标设备的处理流程图;

图6是本申请实施例提供的源设备和目标设备都不为主设备时的架构示意图;

图7是本申请实施例提供的源设备和目标设备都不为主设备时、访问请求传送至目标设备的处理流程图;

图8是本申请实施例提供的目标设备将访问请求转发给第二程序的处理流程图;

图9是本申请的一种用于设备间服务的访问装置的实施例的示意图;

图10是本申请的一种用于设备间服务的配置方法的实施例的流程图;

图11是本申请的一种用于设备间服务的配置装置的实施例的示意图;

图12是本申请的一种用于设备间的信息广播方法的实施例的流程图;

图13是本申请的一种用于设备间的信息广播装置的实施例的示意图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是,本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此,本申请不受下面公开的具体实施的限制。

在本申请中,分别提供了一种用于设备间服务的访问方法及装置,一种用于设备间服务的配置方法及装置,以及一种用于设备间的信息广播方法及装置。在下面的实施例中逐一进行详细说明。

本实施例提供一种用于设备间服务的访问方法的具体实施方式,所述方法的核心在于:主设备提供联接端口,相当于对外提供了虚拟设备总线的接入插槽,为其他设备提供服务或者需要跨设备访问服务的从设备,可以通过所述联接端口实现与主设备之间的联接,即:接入设备总线;某一设备上的第一程序的服务访问请求可以通过设备总线(设备间的联接)传送给提供所述服务的另一设备,并由该设备上的第二程序执行相应的服务功能,从而实现跨设备的服务访问功能。而且由于主设备提供了设备总线,对外提供服务或者需要跨设备访问服务的新增设备,可以通过向主设备联接端口发送请求的方式快捷地接入到设备总线上、实现与设备总线上各个设备的互相访问,而不必与其他各设备分别进行联接,可以降低组网复杂度,简化操作过程,提高执行效率。

从维护设备总线的角度出发,本技术方案中涉及的设备可以划分为主设备 和从设备,主设备是创建设备总线的设备,从设备是接入设备总线的设备。在实施本实施例的方法之前,可以先建立主设备和从设备之间的联接,具体实现可以是:主设备创建用于与从设备建立联接的联接端口,创建联接端口相当于创建了设备总线;从设备向所述联接端口发送接入设备总线的联接请求,主设备则根据接收到的联接请求与所述从设备建立数据连接,并可以将每条数据连接与从设备的设备标识相对应,从而完成从设备和主设备之间的联接过程(也可以称为从设备联接到总线上)。此后,从设备可以通过与主设备间的联接与主设备进行消息传送,主设备则可以根据消息携带的目标设备标识,利用已建立的相应联接,进行消息的转发。

这里对本实施例中的“联接”以及“数据连接”的表述进行说明,对于本技术方案的实现来说,两种表述方式的含义是一致的,只是表述角度不同,其中,联接侧重表达的是以主设备为中心的连接,数据连接则是侧重表达两点之间的连接。

在具体实施时,为了保证只有可靠设备才能接入设备总线,主设备可以预设联接凭据,例如密码,从设备也可以预置所述联接凭据,当从设备向联接端口发送联接请求时需要携带联接凭据,主设备验证联接凭据正确后,才能够与从设备建立联接关系。类似的道理,主设备在建立与从设备的联接关系后,可以向从设备返回联接成功应答,并在应答中携带自己的身份信息,例如:身份证书等,从而从设备可以确认主设备的身份,并可以在后续的操作中向主设备发送各种消息,例如:服务挂载请求、访问请求等。

需要说明的是,主设备和从设备之间的数据连接,可以采用tcp或者udp协议建立,所述联接端口可以为预设的tcp端口或者udp端口,也可以采用其他网络协议建立,只要能够在主设备和从设备之间建立数据连接,就同样可以实现本申请的技术方案。

在本技术方案中,针对一次设备间服务的访问过程,将其中提供服务的程序所在的设备称为目标设备,将发出访问请求的程序所在设备称为源设备。具体实施时,主设备上也可以运行应用程序,因此对于一次设备间服务访问过程来说,可能存在源设备为主设备的情况,目标设备为主设备的情况,以及源设备和目标设备都不是主设备的情况。

本实施例提供的用于设备间服务的访问方法,包括以下步骤:第一程序对 特定服务的访问请求由运行所述第一程序的源设备发出、并通过设备间的联接传送到提供所述特定服务的目标设备;所述目标设备将接收到的所述访问请求转发给在其上运行的第二程序,并由所述第二程序执行相应的服务功能。其中,发起所述访问请求的第一程序通常为应用程序,提供所述特定服务的第二程序可以是应用程序、也可以是系统程序。

下面对于访问请求通过设备间的联接传送到目标设备的过程作简要说明。如果源设备是主设备,那么源设备(主设备)可以从已与其建立的众多联接中选择与目标设备建立的联接将访问请求发送给目标设备;如果目标设备是主设备,那么源设备可以利用已与目标设备(主设备)建立的联接将访问请求发送给目标设备;如果源设备和目标设备都不是主设备,那么源设备可以利用已与主设备建立的联接将访问请求发送给主设备,主设备利用已与目标设备建立的联接将访问请求转发给目标设备。

可以考虑如下的相对简单的应用场景:在通过设备总线互联的各设备中,仅有所述目标设备上的第二程序对外提供所述特定服务,那么需要访问所述特定服务的源设备上的第一程序发起访问请求后,所述访问请求无需封装目标设备标识以及特定服务的标识,即可按照预设的固定方式通过设备间的联接传送到目标设备,并由目标设备触发第二程序执行相应的服务功能。

在具体实施时,应用场景通常更为复杂,例如可以由一个以上设备上的多个程序提供多个服务,并且各设备上的应用程序可以根据需要访问不同的服务,在这种情况下,可以在各设备中预先存储服务配置信息。对于某一设备来说,服务配置信息中可以包括两类服务配置项:本地服务配置项和远程服务配置项,其中,本地服务配置项中的信息至少包括:提供服务的本地程序进程的标识(例如:进程句柄)以及其提供服务的服务标识(用于区分本设备上的不同服务,例如:服务名称或者服务序号);远程服务配置项中的信息至少包括:其他设备的设备标识、以及所述其他设备提供服务的服务标识,由于这类服务不是本地程序提供的,而是由其他设备提供的,因此在本实施例中称为远程服务,相应的服务配置信息项称为远程服务配置项。在本地服务配置项和远程服务配置项中还可以包括关于相应服务的描述信息等。

通过服务配置信息,源设备可以根据被访问服务的服务标识获知提供所述服务的目标设备标识,并可以将该信息封装在访问请求中;在利用设备间的联接传送所述访问请求时,主设备可以根据访问请求携带的目标设备标识决定执 行设备间转发或者是执行设备内外间转发,从而将所述访问请求传送给目标设备;目标设备接收所述访问请求后,通过服务配置信息可以获知提供服务的程序进程标识,并将所述访问请求转发给正确的程序进程。在具体实施时,设备上的服务配置信息可以由设备管理人员通过配置接口进行配置,也可以通过读取配置文件等方式生成。

优选地,为了更为灵活地生成设备上的服务配置信息,真实地反映通过设备总线互联的各设备所提供的服务信息,本实施例提供通过设备总线动态挂载服务的实施方式,即:通过设备总线互联的设备,可以将其提供的服务信息通过设备总线传送给设备总线上的其他设备。

在本实施例中,在目标设备上运行的第二程序可以将其提供的服务注册到目标设备的服务配置信息中,从而在目标设备的服务配置信息中生成本地服务配置项;随后可以根据目标设备的标识以及所述本地服务配置项中包含的特定服务的服务标识生成服务挂载请求。目标设备将服务挂载请求发出,所述服务挂载请求通过设备间的联接传送到与主设备互联的各设备,例如:当目标设备不是主设备时,其可以将服务挂载请求发送给主设备,主设备通过设备总线(即:其与各设备建立的联接)将所述挂载请求转发给其他各设备,相当于一次广播发送的过程。除所述目标设备之外的各设备,其中包括本实施例所述的源设备,根据接收到的服务挂载请求,生成至少包含所述目标设备标识以及所述特定服务标识的远程服务配置项,并将所述远程服务配置项添加到自己的服务配置信息中。

类似的,如果目标设备是主设备,那么目标设备可以直接将服务挂载请求通过设备总线广播给其他各设备,从而所述各设备(包括源设备)可以在自己的服务配置信息中生成相应的远程服务配置项。

主设备以及与主设备互联的各个设备可以通过上述方式,将本地程序提供的服务信息以服务挂载的方式通知给设备总线上的其他设备,从而设备总线上的各设备都可以获知其他设备提供的服务。在具体实施时,对于服务配置信息的管理可以由专门的模块负责,例如:服务管理器模块(servicemanager—简称sm),各设备可以有自己的sm,该模块负责根据本地程序的注册生成服务配置信息中的本地服务配置项,并发起服务挂载请求;还负责根据来自其他设备的服务挂载请求,生成服务配置信息中的远程服务配置项,并可以提供对服务配置信息的查询功能,例如:对于本实施例中的源设备,可以根据特定服务的服 务标识查询对应的目标设备标识,对于目标设备,则可以根据接收到的访问请求中包含的所述特定服务的服务标识查询对应的第二程序进程的标识。

在具体实施时,可以由sm检测到服务配置信息中增加本地服务配置项后,发起服务挂载请求,例如:目标设备上的各程序启动后通常会将其提供的服务向sm注册,当目标设备与主设备建立联接后,sm可以根据本地服务配置项中的服务信息发起服务挂载请求,从而以全量的形式将本地服务信息广播给总线上的其他设备;此外,如果目标设备启动新的程序、或者某个已启动程序提供新的服务,同样会向sm注册,sm检测到新增的本地服务配置项后,同样可以发起服务挂载请求,以增量的方式将新的服务信息广播给总线上的其他设备。需要说明的是,程序向sm注册服务时,还可以携带服务是否可以对外提供的属性,从而sm可以仅针对可对外提供的服务信息发起服务挂载请求。

在具体实施时,为了向上层应用屏蔽设备总线的细节,可以将主设备和从设备执行的与设备总线相关的操作,分别封装在特定的功能模块中实现。例如:可以在主设备中封装总线控制模块(也称bushost模块),负责创建联接端口、根据接收到的联接请求与从设备建立数据连接,以及利用已建立的联接在不同设备间转发消息、在本设备与其他设备间转发消息;可以在从设备中封装总线客户端模块(也称busclient模块),负责通过向联接端口发送联接请求与主设备建立数据连接、以及利用已建立的联接在本设备与主设备间转发消息。所述消息包括:服务挂载消息、访问消息等。

对于主设备来说,其上的各程序、sm模块、以及总线控制模块,通常是以进程的形式运行,在本实施例中,各个进程之间通过本地总线,例如:d-bus进行消息转发等交互操作。在其他实施方式中,也可以采用其他ipc机制实现进程间通信,本申请对此不作具体限定。

在本实施例中,通过上面描述的服务挂载过程,所述源设备的服务配置信息包括具有以下信息的远程服务配置项:所述目标设备标识,以及所述特定服务的服务标识;所述目标设备的服务配置信息包括具有以下信息的本地服务配置项:所述特定服务的服务标识,以及提供所述特定服务的第二程序进程的标识。在此基础上,就可以执行本实施例提供的方法,由源设备上的第一程序访问目标设备上的第二程序提供的服务。下面基于采用服务配置信息的优选实施方式,对上述设备间服务的访问过程的具体实施方式作详细说明。

请参考图1,其为本申请的一种用于设备间服务的访问方法的实施例的流程图。所述方法包括如下步骤:

步骤101、第一程序对特定服务的访问请求由运行所述第一程序的源设备发出、并通过设备间的联接传送到提供所述特定服务的目标设备。

本步骤中,所述源设备根据预先存储的服务配置信息封装访问请求并将其发出,所述访问请求通过设备间的联接、依照其包含的所述目标设备标识传送到提供所述特定服务的目标设备;所述访问请求中至少包含所述第一程序访问的所述特定服务的服务标识和所述目标设备标识。

考虑到在具体实施时可能存在三种情况:发起访问请求的源设备为主设备、提供特定服务的目标设备为主设备、源设备和目标设备都不是主设备。下面针对这三种情况分别进行描述。

(一)源设备为主设备。

请参见图2,其为源设备为主设备时的架构示意图。其中,访问请求传送到目标设备的处理过程包括以下步骤101-1-1至101-1-2,下面结合图3进行说明。

步骤101-1-1、所述源设备通过查询预先存储的服务配置信息封装访问请求,所述访问请求中至少包含所述第一程序访问的所述特定服务的服务标识和所述目标设备标识。

源设备上的第一程序可以生成对特定服务的访问请求,所述访问请求中包含所述特定服务的服务标识(例如:服务名称),随后向sm发起查询请求,sm根据第一程序提供的特定服务的服务标识查找服务配置信息,在其远程服务配置项中找到与所述服务标识对应的目标设备标识,并将其返回给第一程序,第一程序可以为其访问请求封装所述目标设备标识,还可以按照所述目标设备可以识别的消息格式进行相应的封装。此后,第一程序可以将封装好的访问请求通过本地总线发送给总线控制模块。

优选地,为了简化应用程序的代码设计,尽可能实现代码的复用,本实施例提供将封装功能从应用程序中剥离出来、交由代理完成的优选实施方式。采用这种方式,应用程序不会感知服务的位置,相当于对应用程序屏蔽了访问本地服务和远程服务的差异。

为了实施上述优选实施方式,接收到服务挂载请求的设备可以针对其中每个服务生成相应的代理。对于源设备为主设备的情况,在之前描述的服务挂载 过程中,源设备在生成包含所述特定服务的服务标识以及目标设备标识的远程服务配置项时,还可以在总线控制模块中生成相应的代理(如果源设备不是主设备,则可以在其总线客户端模块中生成相应的代理),用于为所述特定服务提供至少包括封装功能的代理服务。因此所述源设备的服务配置信息中的、对应于所述特定服务的远程服务配置项还可以包括以下信息:对应代理的标识(例如:代理的句柄)。

因此本步骤的实施过程可以包括:源设备上的第一程序在发起对特定服务的访问请求前,向sm发起查询请求,sm根据第一程序提供的特定服务的服务标识(例如:服务名称)查找服务配置信息,在其远程服务配置项中找到与所述服务标识对应的代理标识,并将其返回给第一程序,第一程序根据所述代理标识,将包含所述特定服务的服务标识的访问请求通过本地总线发送给总线控制模块中的相应代理,并由所述代理为所述访问请求封装所述目标设备标识。在具体实施时,所述代理还可以执行其他封装操作,例如:将所述访问请求封装成所述目标设备可以识别的消息格式等。

优选地,如果sm根据第一程序提供的特定服务的服务标识查找服务配置信息时,找到了两个或者两个以上与所述服务标识相对应的远程服务配置项,那么sm可以按照预设的优先级规则选择其中一个远程服务配置项中的代理标识返回给第一程序。

举例说明,第一程序用特定服务的名称serv1查询sm,sm如果找到两个远程服务配置项,说明有两个设备都提供名称为serv1的服务,此时sm可以按照预设的优先级规则进行选择。例如,按照服务挂载时间优先进行选择,即:选择挂载时间较早的远程服务配置项,然后将所选配置项中的代理标识返回给第一程序。

步骤101-1-2、所述源设备根据封装后的访问请求包含的目标设备标识,利用已与所述目标设备建立的联接,将所述访问请求发送给所述目标设备。

所述源设备的总线控制模块,根据封装后的访问请求包含的目标设备标识,利用已与所述目标设备建立的联接(即:与所述目标设备标识对应的数据连接),将所述访问请求发送给所述目标设备的总线客户端模块。

优选地,为了对设备总线上的消息转发功能进行控制,可以为所述主设备预设消息转发规则,明确指定可以在哪些设备间转发消息。那么本步骤,由于 源设备是主设备,因此总线控制模块在转发所述访问请求之前,可以从所述访问请求中提取目标设备标识,并根据所述消息转发规则判断是否可以将来自源设备内部的所述访问请求发送给目标设备,并在可以时执行相应的转发操作,否则可以向第一程序返回访问失败应答,并且不再执行后续的操作。

(二)目标设备为主设备。

请参见图4,其为目标设备为主设备时的架构示意图。其中,访问请求传送到目标设备的处理过程包括以下步骤101-2-1至101-2-2,下面结合图5进行说明,其中与上述(一)中内容相同的部分不再赘述。

步骤101-2-1、所述源设备通过查询预先存储的服务配置信息封装访问请求,所述访问请求中至少包含所述第一程序访问的所述特定服务的服务标识和所述目标设备标识。

如果由所述第一程序自行进行封装,那么第一程序可以将封装后的所述访问请求通过本地总线发送给总线客户端模块;如果采用基于代理的优选实施方式,那么由总线客户端模块中的代理最终完成所述访问请求的封装操作。

步骤101-2-2、所述源设备利用已与所述目标设备建立的联接,将封装后的访问请求发送给所述目标设备。

源设备的总线客户端模块,利用已与所述目标设备建立的联接(即:源设备与主设备之间的数据连接),将所述访问请求发送给所述目标设备的总线控制模块。

目标设备(主设备)的总线控制模块接收所述访问请求后,根据所述访问请求携带的目标设备标识,判断出本设备即为所述访问请求的目标设备,因此不再向其他设备转发所述访问请求。

此外,由于目标设备是主设备,因此总线控制模块可以根据预设的消息转发规则,判断是否可以将从源设备接收到的所述访问请求发送给目标设备,即:通过本地总线传递到目标设备内部,如果不可以,则向源设备返回访问失败应答,并且不再执行后续的操作。

(三)源设备和目标设备都不是主设备。

请参见图6,其为源设备和目标设备都不是主设备时的架构示意图。其中,访问请求传送到目标设备的处理过程包括以下步骤101-3-1至101-3-3,下面结合图7进行说明,其中与上述(一)或(二)中内容相同的部分不再赘述。

步骤101-3-1、所述源设备通过查询预先存储的服务配置信息封装访问请求,所述访问请求中至少包含所述第一程序访问的所述特定服务的标识和所述目标设备标识。

如果由所述第一程序自行进行封装,那么第一程序可以将封装后的所述访问请求通过本地总线发送给总线客户端模块;如果采用基于代理优选实施方式,那么由总线客户端模块中的代理最终完成所述访问请求的封装操作。

步骤101-3-2、所述源设备利用已与所述主设备建立的联接,将封装后的访问请求发送给所述主设备。

源设备的总线客户端模块,利用已与主设备建立的联接(即:源设备与主设备之间的数据连接),将所述访问请求发送给主设备的总线控制模块。

步骤101-3-3、所述主设备根据接收到的所述访问请求包含的目标设备标识,利用已与所述目标设备建立的联接,将所述访问请求发送给所述目标设备。

主设备的总线控制模块接收所述访问请求后,可以利用已与目标设备建立的联接(即:与所述目标设备标识对应的数据连接),将所述访问请求转发给目标设备的总线客户端模块。

同样的道理,主设备的总线控制模块在执行上述转发操作之前,可以从所述访问请求中提取目标设备标识,并根据预设的消息转发规则,判断是否可以将从源设备接收到的所述访问请求转发给目标设备,如果可以执行相应的转发操作,否则可以向源设备返回访问失败应答,并且不再执行后续的操作。

步骤102、所述目标设备将接收到的所述访问请求转发给在其上运行的第二程序,并由所述第二程序执行相应的服务功能。

在本步骤中,目标设备可以根据预先存储的服务配置信息,将所述访问请求转发给在其上运行的所述第二程序,并由所述第二程序执行相应的服务功能。

在具体实现时可以包括以下步骤102-1至102-3,下面结合图8进行说明。

步骤102-1、所述目标设备接收所述访问请求后执行解封装操作,并获取被访问的服务标识。

如果目标设备为主设备,由总线控制模块接收所述访问请求,如果目标设备为从设备,由总线客户端模块接收所述访问请求。为了便于描述,将这两个模块统称为总线接口模块,总线接口模块针对接收到的访问请求执行解封装操作,并获取其携带的被访问的服务标识,即:第一程序访问的所述特定服务的 服务标识。

步骤102-2、所述目标设备根据所述被访问的服务标识查找服务配置信息中的本地服务配置项,获取提供相应服务的第二程序进程的标识。

总线接口模块通过本地总线查询sm,sm根据查询请求中携带的服务标识在本地服务配置项中找到与所述服务标识对应的进程标识,即:提供所述特定服务的第二程序进程的标识,例如:进程句柄。

步骤102-3、所述目标设备根据所述第二程序进程的标识,将解封装后的访问请求转发给所述第二程序,由所述第二程序执行相应的服务功能。

总线接口模块根据第二程序进程的标识,通过本地总线将解封装后的访问请求发送给所述第二程序,第二程序接收所述访问请求后,执行相应的操作提供所述特定服务。

在具体实施时,当第二程序接收来自第一程序的所述访问请求后,可以将相应的应答信息返回给所述第一程序,以便于第一程序执行相应的处理。以目标设备为主设备为例,应答信息的返回过程可以包括:第二程序将应答信息发送给总线控制模块,总线控制模块通过源设备和目标设备之间的联接,将应答信息发送给源设备的总线客户端模块,源设备的总线客户端模块将所述应答信息发送给第一程序。

至此,通过步骤101-步骤102,对本实施例提供的用于设备间服务的访问方法的实施方式进行了详细说明。在具体应用中,还可以对本实施例描述的实施方式通过多个主设备之间的级联作进一步扩展,即:主设备的数目大于1,各主设备之间彼此级联,非主设备的设备分别从属于一个主设备;所述设备间的联接包括:不同设备分别通过其主设备提供的联接端口与所述主设备建立的联接,以及主设备之间的级联联接。在上述级联架构下,便于接入以及管理更多的设备,并且同样可以实现设备间服务的访问。

例如:设备a通过启动联接端口创建设备总线abus成为主设备,其他若干个设备联接到abus上;设备b也启动联接端口、创建以b为主设备的设备总线bbus,其他若干个设备联接到bbus上;设备b可以通过设备a的联接端口也联接到abus上,即:设备a与设备b级联联接,在设备b上可以设置消息转发规则,从而实现设备总线abus和bbus之间的消息转发(包括:转发服务挂载请求、转发服务访问请求等)。在此基础上,联接到abus总线的设 备可以访问bbus总线上的设备提供的服务,联接到bbus总线的设备也可以访问abus总线上的设备提供的服务,从而在级联架构下实现跨设备的服务访问过程。

在具体应用中,本实施例提供的方法可以应用于有跨设备服务访问需求的场景中,特别是可以在部署于有限空间的系统中应用,从而能够为用户提供更为直观、便捷的服务功能,例如可以应用于车载系统或者家庭娱乐系统中,下面对这两种应用场景分别进行说明。

在车载系统中,车载控制设备可以作为主设备创建设备总线,智能手机、车载音响设备、车载硬盘机、车载dvd等设备都联接到设备总线上,那么各设备就可以互相访问彼此提供的服务功能。例如:车载音响设备提供音频播放服务,智能手机上的某应用程序需要访问音频播放服务,智能手机可以通过设备总线向车载音响设备发送访问请求,并在请求中携带待播放音频的相关数据,例如:音频数据文件,或者相关的资源地址信息等,该访问请求通过设备间的联接传送到车载音响设备,车载音响设备将接收到的该访问请求转发给在其上运行的音频播放程序,由音频播放程序执行相应的音频播放功能,从而为接入车载系统的智能手机提供了音频播放服务。同样的道理,智能手机也可以访问车载dvd设备提供的视频播放服务以及车载硬盘机提供的数据存储服务等,基本的访问过程与上述音频播放服务类似,此处不再赘述。

在家庭娱乐系统中,智能电视可以作为主设备创建设备总线,智能手机、平板电脑等设备都联接到设备总线上,那么各设备就可以互相访问彼此提供的服务功能。例如:智能电视提供视频播放服务,智能手机上的某应用程序需要访问视频播放服务,智能手机可以通过设备总线向智能电视发送访问请求,并在请求中携带待播放视频的相关数据,例如:视频数据文件,或者相关的资源地址信息等,该访问请求通过设备间的联接传送到智能电视,智能电视将接收到的该访问请求转发给在其上运行的视频播放程序,由视频播放程序执行相应的视频播放功能,从而为接入家庭娱乐系统的智能手机提供了视频播放服务。

综上所述,本实施例提供的用于设备间服务的访问方法,各设备通过主设备提供的联接端口与主设备建立联接,相当于在各设备之间形成了虚拟的设备总线,并可以基于所述设备总线实现跨设备的服务访问功能,从而单个设备的部分能力可以成为标准化的功能模块为其他设备服务,使设备间的功能组合成为可能,进而形成更为复杂和灵活的功能系统。

特别是,在部署于有限空间的系统(例如:车载系统或者家庭娱乐系统)中应用本方法,在基于设备总线实现跨设备服务访问体系的基础上,一方面由于接入设备的数量有限,从而能够较好地保护用户隐私,为跨设备服务访问提供安全性保障,另一方面,由于各设备都处于有限空间内,能够为用户提供更为直观的、近距离的服务体验,例如:更佳的视音频播放效果,从而显著提升用户的使用体验。

在上述的实施例中,提供了一种用于设备间服务的访问方法,与之相对应的,本申请还提供一种用于设备间服务的访问装置。请参看图9,其为本申请的一种用于设备间服务的访问装置实施例的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。

本实施例的一种用于设备间服务的访问装置,包括:访问请求传送单元901,用于第一程序对特定服务的访问请求由运行所述第一程序的源设备发出、并通过设备间的联接传送到提供所述特定服务的目标设备;目标服务提供单元902,用于所述目标设备将接收到的所述访问请求转发给在其上运行的第二程序,并由所述第二程序执行相应的服务功能。

可选的,所述装置包括:

联接端口创建单元,用于所述主设备创建用于与其他设备建立联接的联接端口;

源设备联接单元,用于当所述源设备为非主设备的从设备时,所述源设备向所述联接端口发送联接请求,所述主设备根据接收到的联接请求,建立主设备和源设备之间的数据连接,以完成源设备和主设备之间的联接过程;

目标设备联接单元,用于当所述目标设备为非主设备的从设备时,所述目标设备向所述联接端口发送联接请求,所述主设备根据接收到的联接请求,建立主设备和目标设备之间的数据连接,以完成目标设备和主设备之间的联接过程。

可选的,所述访问请求传送单元具体用于,所述源设备根据预先存储的服务配置信息封装访问请求并将其发出,所述访问请求通过设备间的联接、依照其包含的所述目标设备标识传送到提供所述特定服务的目标设备;所述访问请 求中至少包含所述第一程序访问的所述特定服务的服务标识和所述目标设备标识;

所述目标服务提供单元具体用于,目标设备根据预先存储的服务配置信息,将所述访问请求转发给在其上运行的所述第二程序,并由所述第二程序执行相应的服务功能。

可选的,所述装置包括:

目标设备服务挂载请求传送单元,用于至少包含所述目标设备标识以及所述特定服务的服务标识的服务挂载请求由所述目标设备发出,并通过所述设备间的联接传送给至少包括所述源设备的各设备;

源设备服务配置信息存储单元,用于所述源设备根据接收到的服务挂载请求,生成至少包含所述目标设备标识以及所述特定服务的服务标识的远程服务配置项,并将所述远程服务配置项添加到自己的服务配置信息中。

可选的,所述装置还包括:

本地服务注册单元,用于所述第二程序将自己提供的所述特定服务注册到目标设备的服务配置信息中,以在所述服务配置信息中生成相应的本地服务配置项;

服务挂载请求生成单元,用于根据所述本地服务配置项中包含的所述特定服务的标识以及所述目标设备标识,生成所述服务挂载请求。

可选的,所述访问请求传送单元包括:

访问请求封装子单元,用于所述源设备通过查询预先存储的服务配置信息封装访问请求,所述访问请求中至少包含所述第一程序访问的所述特定服务的服务标识和所述目标设备标识;

第一访问请求发送子单元,用于所述源设备根据封装后的访问请求包含的目标设备标识,利用已与所述目标设备建立的联接,将所述访问请求发送给所述目标设备。

可选的,所述访问请求传送单元包括:

访问请求封装子单元,用于所述源设备通过查询预先存储的服务配置信息封装访问请求,所述访问请求中至少包含所述第一程序访问的所述特定服务的服务标识和所述目标设备标识;

第二访问请求发送子单元,用于所述源设备利用已与所述目标设备建立的联接,将封装后的访问请求发送给所述目标设备。

可选的,所述访问请求传送单元包括:

访问请求封装子单元,用于所述源设备通过查询预先存储的服务配置信息封装访问请求,所述访问请求中至少包含所述第一程序访问的所述特定服务的服务标识和所述目标设备标识;

第三访问请求发送子单元,用于所述源设备利用已与所述主设备建立的联接,将封装后的访问请求发送给所述主设备;

访问请求转发子单元,用于所述主设备根据接收到的所述访问请求包含的目标设备标识,利用已与所述目标设备建立的联接,将所述访问请求发送给所述目标设备。

可选的,所述目标服务提供单元包括:

访问请求接收子单元,用于所述目标设备接收所述访问请求后执行解封装操作,并获取被访问的服务标识;

目标进程查找子单元,用于所述目标设备根据所述被访问的服务标识查找服务配置信息中的本地服务配置项,获取提供相应服务的第二程序进程的标识;

目标服务提供子单元,用于所述目标设备根据所述第二程序进程的标识,将解封装后的访问请求转发给所述第二程序,由所述第二程序执行相应的服务功能。

可选的,所述访问请求封装子单元包括:

代理标识获取子单元,用于所述第一程序根据所述特定服务的服务标识查询服务配置信息,获取为访问所述特定服务提供代理服务的代理标识;

代理服务封装子单元,用于所述第一程序根据所述代理标识,将包含所述特定服务的服务标识的访问请求发送给相应的代理,并由所述代理为所述访问请求封装所述目标设备标识。

可选的,所述装置还包括:

应答信息传送单元,用于当所述目标服务提供单元执行完毕其功能后,第二程序针对所述访问请求的应答信息由所述目标设备发出、并通过所述设备间的联接传送给所述源设备;

应答信息返回单元,用于所述源设备将接收到的所述应答信息返回给所述第一程序。

此外,本申请还提供一种用于设备间服务的配置方法。请参考图10,其为本申请提供的用于设备间服务的配置方法的实施例的流程图,本实施例与上述方法实施例步骤相同的部分不再赘述,下面重点描述不同之处。本申请提供的一种用于设备间服务的配置方法包括:

步骤1001、至少包含第一设备所提供服务的服务标识以及第一设备标识的服务挂载请求由所述第一设备发出、并通过设备间的联接传送到与主设备互联的各设备。

其中,所述设备间的联接包括:不同设备分别通过主设备提供的联接端口与所述主设备建立的联接。

所述第一设备可以通过如下方式生成所述服务挂载请求:在第一设备上运行的程序将各自提供的服务注册到第一设备的服务配置信息中,以在所述服务配置信息中生成本地服务配置项;根据所述本地服务配置项中包含的服务标识以及第一设备的设备标识,生成所述服务挂载请求。

步骤1002、除所述第一设备之外的各设备根据接收到的服务挂载请求,生成至少包含所述第一设备标识以及第一设备所提供服务的服务标识的远程服务配置项,并将所述远程服务配置项添加到自己的服务配置信息中。

通过执行本步骤,联接在主设备创建的设备总线上的各个设备(除第一设备外)都针对第一设备提供的服务生成了远程服务配置项,即获知了第一设备对外提供的服务信息,从而在各设备上运行的应用程序就可以访问第一设备提供的相应服务了。

在此之后,还可以执行以下服务卸载流程、以及设备断开流程,下面分别进行说明。

(一)服务卸载流程

根据具体需求,第一设备上的某个程序可能需要对外停止或者暂停提供某个服务功能,这种情况下,至少包含被卸载服务的服务标识的服务卸载请求由所述第一设备发出、并通过设备间的联接传送到与主设备互联的各设备;除所述第一设备之外的各设备根据接收到的服务卸载请求,从自己的服务配置信息 中删除包含所述服务标识的远程服务配置项。

在具体实施时,在第一设备上运行的、需要停止或者暂停服务的程序可以先向sm注销其提供的服务,sm删除相应的本地服务配置项,并根据本地服务配置项的变更生成包含被卸载服务的服务标识的服务卸载请求。当第一设备为主设备时,第一设备的sm将服务卸载请求发送给总线控制模块,当第一设备为从设备时,第一设备的sm将服务卸载请求发送给总线客户端模块,总线客户端模块将服务卸载请求发送给主设备的总线控制模块。总线控制模块利用设备总线以广播方式将服务卸载请求发送给各个设备,除第一设备之外的各个设备将接收到的服务卸载请求发送给本设备上的sm,sm从服务配置信息中删除包含被卸载服务的服务标识的远程服务配置项,如果之前已针对所述被卸载服务生成了相应的代理,则sm可以触发删除相应代理的操作。

(二)设备断开流程

当第一设备不是主设备时,第一设备可以向主设备发送设备断开请求,所述请求中至少携带第一设备标识;所述主设备通过其与各设备之间的联接、将所述设备断开请求转发给各设备;除所述第一设备之外的各设备根据接收到的设备断开请求,从自己的服务配置信息中删除包含所述第一设备标识的所有远程服务配置项。

在具体实施时,通常由用户或者系统向第一设备下达设备断开指令,第一设备的总线客户端模块向主设备的总线控制模块发送设备断开请求,所述请求中至少携带第一设备标识;主设备的总线控制模块通过其与各设备之间的联接、采用广播的方式将所述设备断开请求转发给设备总线上的各设备;除所述第一设备之外的各设备的总线客户端模块接收所述设备断开请求后,将所述设备断开请求发送给各自的sm,各设备的sm从服务配置信息中删除与第一设备相关的远程服务配置项,即:删除包含所述第一设备标识的所有远程服务配置项,如果之前已针对第一设备提供的各服务生成了相应的代理,则sm可以通知总线客户端模块删除相应的代理。

此外,在具体应用中,还可以注销设备总线。当第一设备是主设备时,第一设备接收总线注销指令后,利用设备总线采用广播发送的方式将所述总线注销指令发送给各设备;所述各设备根据接收到的总线销毁指令,从自己的服务配置信息中删除全部远程服务配置项。

在具体实施时,通常由用户或者系统向主设备发送总线销毁指令,第一设备(主设备)的总线控制模块将所述总线销毁指令广播给设备总线上个各设备,各设备的总线客户端模块将接收到的总线销毁指令发送给sm,sm删除服务配置信息中的全部远程服务配置项,如果被删除的远程服务配置项存在对应的代理,则sm可以通知总线控制模块删除相应的代理。此后,第一设备可以删除联接端口,从而完成设备总线的销毁流程。

对于多主设备级联的实施方式,服务配置信息中的远程服务配置项中还可以包含设备总线标识(例如:设备总线名称),用于表明提供相应服务的设备总线,总线销毁指令中可以携带第一设备所创建总线的总线标识,从而各个设备上的sm可以根据接收到的总线销毁指令,从服务配置信息中删除与所述总线标识相关的远程服务配置项(并通知总线控制模块删除相应的代理)。

至此对基于设备总线的服务配置过程进行了说明,实际应用中,本实施例中的第一设备可以为设备总线上的任意一个设备,即:联接到设备总线上的每个设备都可以根据自己的实际情况执行挂载服务、卸载服务、或者断开设备的操作,对于主设备还可以销毁设备总线。通过上述方式,可以基于设备总线实现服务配置信息的实时更新,使得设备总线上的各设备都可以正确获知其他设备提供的服务信息,从而可以为跨设备访问服务提供可靠依据。

在上述的实施例中,提供了一种用于设备间服务的配置方法,与之相对应的,本申请还提供一种用于设备间服务的配置装置。请参看图11,其为本申请的一种用于设备间服务的配置装置的实施例的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。

本实施例的一种用于设备间服务的配置装置,包括:挂载请求传送单元1101,用于至少包含第一设备所提供服务的服务标识以及第一设备标识的服务挂载请求由所述第一设备发出、并通过设备间的联接传送到与主设备互联的各设备;服务配置存储单元1102,用于除所述第一设备之外的各设备根据接收到的服务挂载请求,生成至少包含所述第一设备标识以及第一设备所提供服务的服务标识的远程服务配置项,并将所述远程服务配置项添加到自己的服务配置信息中。

可选的,所述装置包括:

服务卸载请求传送单元,用于在所述服务配置存储单元完成远程服务配置项的添加操作后,至少包含被卸载服务的服务标识的服务卸载请求由所述第一设备发出、并通过设备间的联接传送到与主设备互联的各设备;

第一服务配置删除单元,用于除所述第一设备之外的各设备根据接收到的服务卸载请求,从自己的服务配置信息中删除包含所述服务标识的远程服务配置项。

可选的,所述装置包括:

设备断开请求发送单元,用于在所述服务配置存储单元完成远程服务配置项的添加操作后,所述第一设备向主设备发送设备断开请求,所述请求中至少携带第一设备标识;

设备断开请求转发单元,用于所述主设备通过其与各设备之间的联接、将所述设备断开请求转发给各设备;

第二服务配置删除单元,用于除所述第一设备之外的各设备根据接收到的设备断开请求,从自己的服务配置信息中删除包含所述第一设备标识的所有远程服务配置项。

此外,本申请还提供一种用于设备间的信息广播方法。请参考图12,其为本申请提供的一种用于设备间的信息广播方法的实施例的流程图,本实施例与上述方法实施例步骤相同的部分不再赘述,下面重点描述不同之处。本申请提供的一种用于设备间的信息广播方法包括:

步骤1201、第一应用程序的广播请求由运行所述第一应用程序的第一设备发出,并通过设备间的联接传送到与主设备互联的各设备。

其中,所述设备间的联接包括:不同设备分别通过主设备提供的联接端口与所述设备建立的联接。下面以第一设备不是主设备为例进行说明。

第一应用程序需要向其他设备上的应用程序广播信息,此时可以向总线客户端模块发送广播请求,广播请求中可以携带被广播的信息。第一设备的总线客户端模块将广播请求发送给主设备的总线控制模块,主设备的总线控制模块采用广播发送的方式,将广播请求发送给设备总线上的各设备。

步骤1202、除所述第一设备之外的各设备将接收到的广播请求发送给各自承载的应用程序。

除第一设备之外的各设备(包括主设备以及各从设备)通过总线控制模块或者总线客户端模块接收所述广播请求后,将所述广播请求发送给各自承载的应用程序进程,各应用程序进程可以根据自己的需要处理所述广播请求,例如:可以从中提取广播信息,或者直接将所述广播请求丢弃。

至此,对基于设备总线的信息广播方法进行了描述,通过上述描述可以看出,上述方法提供了一种弱耦合的通讯方式,便于某一设备上的应用程序向其他设备上的应用程序申明信息或者发送通知,是设备间的信息交互方式的有益补充。

在上述的实施例中,提供了一种用于设备间的信息广播方法,与之相对应的,本申请还提供一种用于设备间的信息广播装置。请参看图13,其为本申请的一种用于设备间的信息广播装置的实施例的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。

本实施例的一种用于设备间的信息广播装置,包括:广播请求传送单元1301,用于第一应用程序的广播请求由运行所述第一应用程序的第一设备发出,并通过设备间的联接传送到与主设备互联的各设备;广播请求上报单元1302,用于除所述第一设备之外的各设备将接收到的广播请求发送给各自承载的应用程序

本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1