设备接入方法、数据交换方法、装置、设备及存储介质转让专利

申请号 : CN202210946796.4

文献号 : CN115442083B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄建邦

申请人 : 黄建邦

摘要 :

本申请公开了一种设备接入方法、数据交换方法、装置、设备及存储介质,设备接入方法通过在联网设备与服务端通信连接时,预加载服务端的目标配置信息,目标配置信息包括联网设备在至少一种应用场景下的场景配置信息,场景配置信息包括第一描述符集合和描述符指令集合中的至少一种,第一描述符集合用于定义联网设备的设备类型,从而能够根据目标配置信息重新定义联网设备的设备功能,使得设备功能更加丰富;基于目标场景配置信息,建立与目标设备之间的通信连接,以使联网设备接入到目标设备,通信数据可以不经过计算机主机,有效避免被计算机主机抓包而泄露真实数据源和网络通信数据,以及有效避免被恶意程序破解,保证联网设备和数据的安全性。

权利要求 :

1.一种设备接入方法,其特征在于,应用于联网设备,所述方法包括:

当与服务端通信连接时,预加载目标配置信息,所述服务端存储有至少一种预设配置信息,所述目标配置信息为所述预设配置信息中的一种,所述目标配置信息包括所述联网设备在至少一种应用场景下的场景配置信息,所述场景配置信息包括第一描述符集合和描述符指令集合中的至少一种,所述第一描述符集合用于定义所述联网设备的设备类型;所述服务端存储的场景配置信息为:在预加载目标配置信息之前,基于预设生成策略,通过配置所述联网设备的第一描述符集合和描述符指令集合中的至少一种,以及数据源配置信息生成的;

基于目标场景配置信息,建立与目标设备之间的通信连接,以使所述联网设备接入到所述目标设备,所述目标场景配置信息为所述场景配置信息中的一种。

2.如权利要求1所述的设备接入方法,其特征在于,所述当与服务端通信连接时,预加载目标配置信息,包括:当与服务端通信连接时,向所述服务端发送配置获取请求,所述配置获取请求携带有所述联网设备的标识信息;

接收所述服务端返回的与所述标识信息对应的目标配置信息。

3.如权利要求1所述的设备接入方法,其特征在于,所述联网设备作为与目标设备通信连接的主机设备,所述描述符指令集合包括多种功能指令集,所述功能指令集用于控制所述联网设备与所述目标设备之间的数据交换。

4.如权利要求3所述的设备接入方法,其特征在于,所述基于目标场景描述符信息,建立与目标设备之间的通信连接,包括:基于所述描述符指令集合中的功能指令集,对所述目标设备的第二描述符集合中的多种描述符进行枚举;

若枚举成功,则配置所述联网设备与所述目标设备通信时的目标数据源,所述目标数据源设于所述目标设备。

5.如权利要求4所述的设备接入方法,其特征在于,所述功能指令集包括获取指令集和验证指令集,所述基于所述描述符指令集合中的功能指令集,对所述目标设备的第二描述符集合中的多种描述符进行枚举,包括:基于所述获取指令集,读取所述目标设备的第二描述符集合;

基于所述验证指令集,对所述第二描述符集合中的多种描述符进行验证;

若多种所述描述符满足预设设备要求,则判定枚举成功。

6.如权利要求4所述的设备接入方法,其特征在于,所述功能指令集还包括数据源指令集,所述目标场景配置信息还包括数据源配置信息,所述配置所述联网设备与所述目标设备通信时的目标数据源,包括:基于所述数据源指令集,根据所述数据源配置信息,确定所述联网设备与所述目标设备通信时的目标数据源。

7.如权利要求3所述的设备接入方法,其特征在于,所述联网设备为网络读写控制设备,所述基于目标场景描述符信息,建立与目标设备之间的通信连接,包括:基于所述描述符指令集中的功能指令集,对所述目标设备的第二描述符集合中的多种描述符进行枚举;

若枚举成功,则向所述服务端请求下发与所述目标设备对应的驱动指令集,以完成通信连接,所述驱动指令集用于与所述目标设备进行数据交换。

8.如权利要求3所述的设备接入方法,其特征在于,所述联网设备为网络代理控制设备,所述基于目标场景描述符信息,建立与目标设备之间的通信连接,包括:基于所述描述符指令集合中的功能指令集,对所述目标设备的第二描述符集合中的多种描述符进行枚举;

若枚举成功,则将所述第二描述符集合发送至所述服务端,以使在所述服务端对所述目标设备进行虚拟化,生成所述目标设备对应的虚拟设备,从而建立与所述目标设备之间的通信连接。

9.如权利要求1所述的设备接入方法,其特征在于,所述联网设备作为与目标设备通信连接的从机设备,所述基于目标场景描述符信息,建立与目标设备之间的通信连接,包括:接收所述目标设备发送的枚举请求;

响应于所述枚举请求,向所述目标设备返回所述第一描述符集合,以使所述目标设备对所述第一描述符集合进行枚举,并在枚举成功后,根据数据源配置信息配置所述联网设备与所述目标设备通信时的目标数据源,所述目标数据源设于所述服务端。

10.如权利要求6或9所述的设备接入方法,其特征在于,所述数据源配置信息包括数据源的容量信息,所述容量信息包括数据源的最后逻辑块地址和块容量。

11.如权利要求4或9所述的设备接入方法,其特征在于,所述描述符集合包括设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符和预设的自定义描述符中的至少一种。

12.如权利要求1所述的设备接入方法,其特征在于,所述目标设备包括至少一个第一目标设备和至少一个第二目标设备,所述联网设备作为与所述第一目标设备通信连接的主机设备,以及作为与所述第二目标设备通信连接的从机设备,所述基于目标场景描述符信息,建立与目标设备之间的通信连接,包括:基于所述描述符指令集合中的功能指令集,对所述第一目标设备的第二描述符集合中的多种描述符进行枚举;

若枚举成功,则配置所述联网设备与所述第一目标设备通信时的第一目标数据源,以完成与所述第一目标设备的通信连接,所述第一目标数据源设于所述第一目标设备;

接收所述第二目标设备发送的枚举请求;

响应于所述枚举请求,向所述第二目标设备返回所述第一描述符集合,以使所述第二目标设备对所述第一描述符集合进行枚举,并在枚举成功后,根据数据源配置信息配置所述联网设备与所述第二目标设备通信时的第二目标数据源,所述第二目标数据源设于所述服务端或所述第一目标设备。

13.一种数据交换方法,其特征在于,应用于联网设备,所述联网设备基于权利要求1至

12任一项所述的设备接入方法,与服务端和目标设备建立通信连接,所述方法包括:获取第一目标方发送的数据交换请求;

基于预设处理策略,对所述数据交换请求进行响应,并将目标数据返回至所述第一目标方,所述目标数据为第二目标方发送的数据,其中若所述第一目标方为所述服务端,则所述第二目标方为所述目标设备,若所述第一目标方为所述目标设备,则所述第二目标方为所述服务端。

14.如权利要求13所述的数据交换方法,其特征在于,所述目标设备包括至少一个第一目标设备和至少一个第二目标设备,所述联网设备作为与所述第一目标设备通信连接的主机设备,以及作为与所述第二目标设备通信连接的从机设备,其中若所述第一目标方为所述服务端,则所述第二目标方为所述第一目标设备或所述第二目标设备,若所述第一目标方为所述第二目标设备,则所述第二目标方为所述服务端或所述第一目标设备。

15.如权利要求13或14所述的数据交换方法,其特征在于,所述基于预设处理策略,对所述数据交换请求进行响应,并将目标数据返回至所述第一目标方,包括:响应于所述数据交换请求,将所述数据交换请求转发至所述第二目标方;

接收所述第二目标方响应于所述数据交换请求返回的目标数据,并将所述目标数据转发至所述第一目标方。

16.如权利要求15所述的数据交换方法,其特征在于,所述联网设备为网络USBkey设备,所述目标设备为计算机主机,所述响应于所述数据交换请求,将所述数据交换请求转发至所述第二目标方,包括:响应于所述计算机主机发送的数据交换请求,将所述数据交换请求转发至所述服务端,所述数据交换请求携带有所述网络USBkey设备的凭证信息,以使所述服务端对所述凭证信息进行校验。

17.如权利要求13或14所述的数据交换方法,其特征在于,所述基于预设处理策略,对所述数据交换请求进行响应,并将目标数据返回至所述第一目标方,包括:基于预设处理脚本,对所述数据交换请求进行数据处理,得到数据处理结果;

基于所述数据处理结果,向所述第二目标方发送目标数据获取请求;

接收所述第二目标方响应于所述目标数据获取请求返回的与所述数据处理结果对应的目标数据,并将所述目标数据返回至所述第一目标方。

18.一种设备接入方法,其特征在于,应用于服务端,所述方法包括:

当与联网设备通信连接时,向所述联网设备下发目标配置信息,所述目标配置信息用于所述联网设备建立与目标设备之间的通信连接,所述服务端存储有至少一种预设配置信息,所述目标配置信息为所述预设配置信息中的一种,所述目标配置信息包括所述联网设备在至少一种应用场景下的场景配置信息,所述场景配置信息包括第一描述符集合和描述符指令集合中的至少一种,所述第一描述符集合用于定义所述联网设备的设备类型;所述服务端存储的场景配置信息为:在预加载目标配置信息之前,基于预设生成策略,通过配置所述联网设备的第一描述符集合和描述符指令集合中的至少一种,以及数据源配置信息生成的;

基于目标场景配置信息,建立与目标设备之间的通信连接,以使所述联网设备接入到所述目标设备,所述目标场景配置信息为所述场景配置信息中的一种。

19.一种数据交换方法,其特征在于,应用于服务端,所述服务端基于权利要求18所述的设备接入方法,与联网设备建立通信连接,所述方法包括:向所述联网设备发送数据交换请求,并接收所述联网设备返回的目标数据,所述数据交换请求用于所述联网设备基于预设处理策略对所述数据交换请求进行响应,所述目标数据为目标设备发送的数据;

和/或,根据所述联网设备基于预设处理策略响应的数据交换请求,向所述联网设备发送目标数据,所述目标数据由所述联网设备返回至目标设备,所述数据交换请求由所述目标设备发起。

20.一种设备接入装置,其特征在于,应用于联网设备,所述装置包括:

预加载模块,用于当与服务端通信连接时,预加载目标配置信息,所述服务端存储有至少一种预设配置信息,所述目标配置信息为所述预设配置信息中的一种,所述目标配置信息包括所述联网设备在至少一种应用场景下的场景配置信息,所述场景配置信息包括第一描述符集合和描述符指令集合中的至少一种,所述描述符集合用于定义所述联网设备的设备类型;所述服务端存储的场景配置信息为:在预加载目标配置信息之前,基于预设生成策略,通过配置所述联网设备的第一描述符集合和描述符指令集合中的至少一种,以及数据源配置信息生成的;

第一建立模块,用于基于目标场景配置信息,建立与目标设备之间的通信连接,以使所述联网设备接入到所述目标设备,所述目标场景配置信息为所述场景配置信息中的一种。

21.一种数据交换装置,其特征在于,应用于联网设备,所述联网设备基于权利要求1至

12任一项所述的设备接入方法,与服务端和目标设备建立通信连接,所述装置包括:获取模块,用于获取第一目标方发送的数据交换请求;

响应模块,用于基于预设处理策略,对所述数据交换请求进行响应,并将目标数据返回至所述第一目标方,所述目标数据为第二目标方发送的数据,其中若所述第一目标方为所述服务端,则所述第二目标方为所述目标设备,若所述第一目标方为所述目标设备,则所述第二目标方为所述服务端。

22.一种联网设备,其特征在于,包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至12任一项所述的设备接入方法,或权利要求13至17任一项所述的数据交换方法。

23.一种服务端,其特征在于,所述服务端包括处理器和存储器,所述服务端能够实现如权利要求18所述的设备接入方法,或权利要求19所述的数据交换方法。

24.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至12任一项所述的设备接入方法,或权利要求13至17任一项所述的数据交换方法。

说明书 :

设备接入方法、数据交换方法、装置、设备及存储介质

技术领域

[0001] 本申请涉及数据安全技术领域,尤其涉及一种设备接入方法、数据交换方法、装置、设备及存储介质。

背景技术

[0002] 目前,一些接入设备(如通用串行总线USB设备)的设备功能都是出厂时固定,在出厂后无法改变或者只能以重新写入软件的方式改变其功能。并且当接入设备需要进行应用扩展时,需要在计算机主机中安装驱动等控制软件,导致容易被计算机主机抓包,从而暴露真实数据源和网络通信数据,也可能导致接入设备被恶意程序破解,存在较高的安全风险。

发明内容

[0003] 本申请提供了一种设备接入方法、数据交换方法、装置、设备及存储介质,以解决当前接入设备功能单一且存在较高安全风险的技术问题。
[0004] 为了解决上述技术问题,第一方面,本申请提供了一种设备接入方法,应用于联网设备,方法包括:
[0005] 当与服务端通信连接时,预加载目标配置信息,所述服务端存储有至少一种预设配置信息,所述目标配置信息为所述预设配置信息中的一种,所述目标配置信息包括所述联网设备在至少一种应用场景下的场景配置信息,所述场景配置信息包括第一描述符集合和描述符指令集合中的至少一种,所述第一描述符集合用于定义所述联网设备的设备类型;所述服务端存储的场景配置信息为:在预加载目标配置信息之前,基于预设生成策略,通过配置所述联网设备的第一描述符集合和描述符指令集合中的至少一种,以及数据源配置信息生成的;
[0006] 基于目标场景配置信息,建立与目标设备之间的通信连接,以使联网设备接入到目标设备,目标场景配置信息为场景配置信息中的一种。
[0007] 本申请通过在联网设备与服务端通信连接时,预加载服务端的目标配置信息,服务端存储有多种预设配置信息,目标配置信息为多种预设配置信息中的一种,目标配置信息包括联网设备在至少一种应用场景下的场景配置信息,场景配置信息包括第一描述符集合和描述符指令集合中的至少一种,第一描述符集合用于定义联网设备的设备类型,从而能够根据目标配置信息重新定义联网设备的设备功能,使得设备功能更加丰富;同时通过服务端存储预设配置信息,以便于实时监控,当联网设备丢失后可以在服务端切断与联网设备的通信连接,保证联网设备的数据源安全;最后基于目标场景配置信息,建立与目标设备之间的通信连接,以使联网设备接入到目标设备,从而以服务端获取配置信息并与目标设备建立通信连接的方式,有效避免被计算机主机抓包而泄露真实数据源和网络通信数据,以及有效避免被恶意程序破解,保证联网设备的设备安全性。
[0008] 在第一方面的一些实现方式中,当与服务端通信连接时,预加载目标配置信息,包括:
[0009] 当与服务端通信连接时,向服务端发送配置获取请求,配置获取请求携带有联网设备的标识信息;
[0010] 接收服务端返回的与标识信息对应的目标配置信息。
[0011] 本实现方式以标识信息区分不同联网设备的目标配置信息,从而实现多个联网设备的集中管理,提高信息管理效率。
[0012] 在第一方面的一些实现方式中,联网设备作为与目标设备通信连接的主机设备,描述符指令集合包括多种功能指令集,功能指令集用于控制联网设备与目标设备之间的数据交换。
[0013] 本实现方式通过配置联网设备的指令集合,使得联网设备具备主机功能,改变了原有接入设备只具备从机功能的情况,从而使得联网设备的应用拓展更加广泛,能够适用于更多应用场景,满足不同用户在不同场景的需求。
[0014] 在第一方面的一些实现方式中,基于目标场景描述符信息,建立与目标设备之间的通信连接,包括:
[0015] 基于描述符指令集合中的功能指令集,对目标设备的第二描述符集合中的多种描述符进行枚举;
[0016] 若枚举成功,则配置联网设备与目标设备通信时的目标数据源,目标数据源设于目标设备。
[0017] 本实现方式通过功能指令集结合描述符集合进行主机枚举,以实现联网设备作为主机与目标设备通信连接,同时通过配置目标数据源,以保证联网设备的相应功能能够得以实现。
[0018] 在第一方面的一些实现方式中,功能指令集包括获取指令集和验证指令集,基于描述符指令集合中的功能指令集,对目标设备的第二描述符集合中的多种描述符进行枚举,包括:
[0019] 基于获取指令集,读取目标设备的第二描述符集合;
[0020] 基于验证指令集,对第二描述符集合中的多种描述符进行验证;
[0021] 若多种描述符满足预设设备要求,则判定枚举成功。
[0022] 本实现方式通过多种指令集实现描述符集合获取和验证,实现了联网设备作为主机时的设备连接。
[0023] 在第一方面的一些实现方式中,功能指令集还包括数据源指令集,目标场景配置信息还包括数据源配置信息,配置联网设备与目标设备通信时的目标数据源,包括:
[0024] 基于数据源指令集,根据数据源配置信息,确定联网设备与目标设备通信时的目标数据源。
[0025] 在第一方面的一些实现方式中,联网设备为网络读写控制设备,基于目标场景描述符信息,建立与目标设备之间的通信连接,包括:
[0026] 基于描述符指令集中的功能指令集,对目标设备的第二描述符集合中的多种描述符进行枚举;
[0027] 若枚举成功,则向服务端请求下发与目标设备对应的驱动指令集,以完成通信连接,驱动指令集用于与目标设备进行数据交换。
[0028] 在第一方面的一些实现方式中,联网设备为网络代理控制设备,基于目标场景描述符信息,建立与目标设备之间的通信连接,包括:
[0029] 基于描述符指令集合中的功能指令集,对目标设备的第二描述符集合中的多种描述符进行枚举;
[0030] 若枚举成功,则将第二描述符集合发送至服务端,以使在服务端对目标设备进行虚拟化,生成目标设备对应的虚拟设备,从而建立与目标设备之间的通信连接。
[0031] 在第一方面的一些实现方式中,联网设备作为与目标设备通信连接的从机设备,基于目标场景描述符信息,建立与目标设备之间的通信连接,包括:
[0032] 接收目标设备发送的枚举请求;
[0033] 响应于枚举请求,向目标设备返回第一描述符集合,以使目标设备对第一描述符集合进行枚举,并在枚举成功后,根据数据源配置信息配置联网设备与目标设备通信时的目标数据源,目标数据源设于服务端。
[0034] 在第一方面的一些实现方式中,数据源配置信息包括容量信息,所述容量信息包括数据源的最后逻辑块地址和块容量。
[0035] 在第一方面的一些实现方式中,描述符集合包括设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符和预设的自定义描述符中的至少一种。
[0036] 在第一方面的一些实现方式中,目标设备包括至少一个第一目标设备和至少一个第二目标设备,联网设备作为与第一目标设备通信连接的主机设备,以及作为与第二目标设备通信连接的从机设备,基于目标场景描述符信息,建立与目标设备之间的通信连接,包括:
[0037] 基于描述符指令集合中的功能指令集,对第一目标设备的第二描述符集合中的多种描述符进行枚举;
[0038] 若枚举成功,则配置联网设备与第一目标设备通信时的第一目标数据源,以完成与第一目标设备的通信连接,第一目标数据源设于第一目标设备;
[0039] 接收第二目标设备发送的枚举请求;
[0040] 响应于枚举请求,向第二目标设备返回第一描述符集合,以使第二目标设备对第一描述符集合进行枚举,并在枚举成功后,根据数据源配置信息配置联网设备与第二目标设备通信时的第二目标数据源,第二目标数据源设于服务端或第一目标设备。
[0041] 在第一方面的一些实现方式中,当与服务端通信连接时,预加载目标配置信息之前,还包括:
[0042] 基于预设生成策略,配置联网设备的第一描述符集合和数据源配置信息,以生成场景配置信息,预设生成策略包括自定义创建策略和模板创建策略。
[0043] 第二方面,本申请还提供一种设备接入方法,应用于联网设备,联网设备存储有至少一种应用场景的场景配置信息,方法包括:
[0044] 基于目标场景配置信息,建立与目标设备之间的通信连接,以使联网设备接入到目标设备,目标场景配置信息为场景配置信息中的一种,场景配置信息包括第一描述符集合和描述符指令集合中的至少一种,第一描述符集合用于定义联网设备的设备类型。
[0045] 第三方面,本申请还提供一种数据交换方法,应用于联网设备,联网设备基于第一方面或第二方面的设备接入方法,与服务端和目标设备建立通信连接,方法包括:
[0046] 获取第一目标方发送的数据交换请求;
[0047] 基于预设处理策略,对数据交换请求进行响应,并将目标数据返回至第一目标方,目标数据为第二目标方发送的数据,其中若第一目标方为服务端,则第二目标方为目标设备,若第一目标方为目标设备,则第二目标方为服务端。
[0048] 在第三方面的一些实现方式中,目标设备包括至少一个第一目标设备和至少一个第二目标设备,联网设备作为与第一目标设备通信连接的主机设备,以及作为与第二目标设备通信连接的从机设备,其中若第一目标方为服务端,则第二目标方为第一目标设备或第二目标设备,若第一目标方为第二目标设备,则第二目标方为服务端或第一目标设备。
[0049] 在第三方面的一些实现方式中,基于预设处理策略,对数据交换请求进行响应,并将目标数据返回至第一目标方,包括:
[0050] 响应于数据交换请求,将数据交换请求转发至第二目标方;
[0051] 接收第二目标方响应于数据交换请求返回的目标数据,并将目标数据转发至第一目标方。
[0052] 在第三方面的一些实现方式中,联网设备为网络USBkey设备,目标设备为计算机主机,响应于数据交换请求,将数据交换请求转发至第二目标方,包括:
[0053] 响应于计算机主机发送的数据交换请求,将数据交换请求转发至服务端,数据交换请求携带有网络USBkey设备的凭证信息,以使服务端对凭证信息进行校验。
[0054] 在第三方面的一些实现方式中,基于预设处理策略,对数据交换请求进行响应,并将目标数据返回至第一目标方,包括:
[0055] 基于预设处理脚本,对数据交换请求进行数据处理,得到数据处理结果;
[0056] 基于数据处理结果,向第二目标方发送目标数据获取请求;
[0057] 接收第二目标方响应于目标数据获取请求返回的与数据处理结果对应的目标数据,并将目标数据返回至第一目标方。
[0058] 第四方面,本申请还提供一种设备接入装置,应用于联网设备,装置包括:
[0059] 预加载模块,用于当与服务端通信连接时,预加载目标配置信息,所述服务端存储有至少一种预设配置信息,所述目标配置信息为所述预设配置信息中的一种,所述目标配置信息包括所述联网设备在至少一种应用场景下的场景配置信息,所述场景配置信息包括第一描述符集合和描述符指令集合中的至少一种,所述描述符集合用于定义所述联网设备的设备类型;所述服务端存储的场景配置信息为:在预加载目标配置信息之前,基于预设生成策略,通过配置所述联网设备的第一描述符集合和描述符指令集合中的至少一种,以及数据源配置信息生成的;
[0060] 第一建立模块,用于基于目标场景配置信息,建立与目标设备之间的通信连接,以使联网设备接入到目标设备,目标场景配置信息为场景配置信息中的一种。
[0061] 第五方面,本申请还提供一种设备接入装置,应用于联网设备,联网设备存储有至少一种应用场景的场景配置信息,装置包括:
[0062] 第二建立模块,用于基于目标场景配置信息,建立与目标设备之间的通信连接,以使联网设备接入到目标设备,目标场景配置信息为场景配置信息中的一种,场景配置信息包括第一描述符集合和描述符指令集合中的至少一种,描述符集合用于定义联网设备的设备类型。
[0063] 第六方面,本申请还提供一种数据交换装置,应用于联网设备,联网设备基于第一方面或第二方面的设备接入方法,与服务端和目标设备建立通信连接,装置包括:
[0064] 获取模块,用于获取第一目标方发送的数据交换请求;
[0065] 响应模块,用于基于预设处理策略,对数据交换请求进行响应,并将目标数据返回至第一目标方,目标数据为第二目标方发送的数据,其中若第一目标方为服务端,则第二目标方为目标设备,若第一目标方为目标设备,则第二目标方为服务端。
[0066] 第七方面,本申请还提供一种联网设备,包括处理器和存储器,存储器用于存储计算机程序,计算机程序被处理器执行时实现如第一方面或第二方面的设备接入方法,或第三方面的数据交换方法。
[0067] 第八方面,本申请还提供一种计算机可读存储介质,其存储有计算机程序,计算机程序被处理器执行时实现如第一方面或第二方面的设备接入方法,或第三方面的数据交换方法。
[0068] 需要说明的是,上述第二方面至第八方面的有益效果请参见上述第一方面的相关描述,在此不再赘述。

附图说明

[0069] 图1为本申请实施例示出的设备接入方法的流程示意图;
[0070] 图2为本申请实施例示出的网络U盘的结构示意图;
[0071] 图3为本申请另一实施例示出的设备接入方法的流程示意图;
[0072] 图4为本申请实施例示出的数据交换方法的流程示意图;
[0073] 图5为本申请实施例示出的设备接入装置的流程示意图;
[0074] 图6为本申请另一实施例示出的设备接入装置的流程示意图;
[0075] 图7为本申请实施例示出的数据交换装置的结构示意图;
[0076] 图8为本申请实施例示出的联网设备的结构示意图。

具体实施方式

[0077] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0078] 如相关技术记载,一些接入设备的设备功能都是出厂时固定,在出厂后无法改变或者只能以重新写入软件的方式改变其功能。例如,USB接口的U盘在出厂时规定只能作为存储设备使用,在后续应用过程中,U盘也只能在本地存储数据。一方面设备功能单一,另一方面在与计算机主机连接时无法保障本地数据的数据安全。
[0079] 为此,本申请实施例提供一种设备接入方法,通过在联网设备与服务端通信连接时,预加载服务端的目标配置信息,服务端存储有多种预设配置信息,目标配置信息为多种预设配置信息中的一种,目标配置信息包括联网设备在至少一种应用场景下的场景配置信息,场景配置信息包括描述符集合,描述符集合用于定义联网设备的设备类型,从而能够根据目标配置信息重新定义联网设备的设备功能,使得设备功能更加丰富;同时通过服务端存储预设配置信息,以便于实时监控,当联网设备丢失后可以在服务端切断与联网设备的通信连接,保证联网设备的数据源安全;最后基于目标场景配置信息,建立与目标设备之间的通信连接,以使联网设备接入到目标设备,从而以服务端获取配置信息并与目标设备建立通信连接的方式,有效避免被计算机主机抓包而泄露真实数据源和网络通信数据,以及有效避免被恶意程序破解,保证联网设备的设备安全性。
[0080] 请参照图1,图1为本申请实施例提供的一种设备接入方法的流程示意图。本申请实施例的方法可应用于联网设备,该联网设备包括但不限于具备联网功能的单片机或嵌入式等设备、智能手机或笔记本电脑等终端设备、网络USBkey设备(例如银行U盾、数字证书、加密狗等)、网络代理控制设备(例如多端口转发器)、远程控制器(包括但不限于网络读写控制设备、网络控制器(例如路由器和智能网关等))、通信类设备(Communication Device Class,CDC,例如网卡、调制解调器、ISDN(Integrated Services Digital Network)终端)、人体学接口类设备(Human Interface Device,HID,例如键盘或鼠标)、大容量存储类设备(Mass Storage Device Class,MSC,例如U盘、网络U盘、读卡器、网络读卡器)、打印机类设备(Printer device,例如USB接口的打印机)、静态图像获取类设备(Still Imaging device)、视频类设备(Video device)、音视频类设备(Audio/Video Devices)、智能卡类设备、USB集线器类设备(Universal SerialBus Hub)以及自定义类设备等。
[0081] 可选地,联网设备通过有线或者无线网络(例如双绞线或光纤等以太网接口、WIFI热点、超宽带UWB、蓝牙、4G或5G移动蜂窝网络、LoRa远距离无线电等)与服务端通信连接,服务端包括但不限于个人计算机、笔记本电脑、嵌入式计算机、物理服务器和云服务器。在联网过程中,可以进一步设置虚拟专用网络、使用网络专线等方式加强网络安全性。
[0082] 示例性地,图2示出了联网设备的结构示意图。该联网设备包括但不限于联网单元201、存储单元202、显示单元203、第一接口204和第二接口205,其中联网单元用于与服务端通信连接,显示单元用于与用户交互,第一接口和第二接口用于与目标设备建立通信连接。
第一接口可以使联网设备单独作为从机设备与目标设备(主机)连接,第二接口可以使联网设备单独作为主机设备与目标设备(从机)连接,第一接口和第二接口也可以使联网设备同时作为主机设备和从机设备,分别接入不用的目标设备。例如,第一接口与作为主机的计算机设备通信连接,第二接口与作为从机的存储设备通信连接,以实现计算机设备、联网设备(和服务端)以及存储设备之间的通信连接。
[0083] 需要说明的是,本申请实施例所述的“主机”、“主机设备”和“主机角色”均表示一种设备A相对于另一种设备B时作为主机的一种相对身份关系,并不意味着设备A只能是主机,其相对于又一种设备C还可以是作为从机。同理,本申请实施例所述的“从机”、“从机设备”和“从机角色”均表示一种设备A相对于另一种设备B时作为从机的一种相对身份关系,在此不再赘述。
[0084] 显示单元显示用户预设的多种场景,并可以供用户选择切换不同设备接入场景,其中“*”表示当前所选择的场景。
[0085] 例如,当选择U盘‑64G、U盘‑1024G或U盘‑16G的场景时,联网设备为网络U盘形态,U盘的可用空间分别为64G、1024G和16G,存储的数据不相同,对应格式化的文件系统为FAT32、ExFat或CDFS,分别用于存储工作材料、多媒体素材或操作系统启动引导程序。
[0086] 当选择数字证书场景时,联网设备为USBkey形态,可以用于身份认证。例如,与计算机主机通信连接,当计算机主机需要登录业务系统时,通过USBkey对计算机主机进行近距离或远程身份认证。
[0087] 当选择代理模式场景时,联网设备为网络代理控制形态,可以将第二接口接入的设备虚拟化至服务端或者控制端。
[0088] 当选择通用读写控制模式时,联网设备为网络读写控制设备形态,可以按照服务端指令或者预设的规则,对第二接口接入的设备进行读写等控制。
[0089] 当选择音频增强模式时,联网设备为网络中间控制设备形态,第一接口接入计算机主机、第二接口接入音频播放设备,可以将计算机主机发送的音频数据实时发送至服务端进行计算、或者从服务端下载增强脚本模型的方式在联网设备进行数据处理,将处理得到的音频数据发送至音频播放设备进行音频播放。
[0090] 可选地,所述联网单元201包括但不限于实现上述有线连接的双绞线或光纤等以太网接口单元,以及实现上述无线连接的WIFI单元、蓝牙单元、UWB单元、4G或5G通信单元、LoRa远距离无线电通信单元等。显示单元203包括但不限于显示屏和投影装置等。
[0091] 应理解,在其他实施例中,联网设备还包括更多或更少的组件,例如网络U盘仅有第一接口,而没有第二接口的情况,若第一接口为凸口,用作从机设备时的接口,则在需要作为主机设备时,通过接口转换器将凸口转换为凹口,以作为主机设备时的接口。又例如,联网设备包括多个第一接口或第二接口,以同时接入多个主机设备或从机设备。联网设备也可以无需显示单元,其切换场景的操作在服务端完成,或者联网设备通过Wifi、蓝牙、NFC等方式使用其他终端进行控制。显示单元也可以包括更多或更少的场景,在此不再赘述。
[0092] 如图1所示,本实施例的方法包括步骤S101至步骤S102,详述如下:
[0093] 步骤S101,当与服务端通信连接时,预加载目标配置信息,所述服务端存储有至少一种预设配置信息,所述目标配置信息为所述预设配置信息中的一种,所述目标配置信息包括所述联网设备在至少一种应用场景下的场景配置信息,所述场景配置信息包括第一描述符集合和描述符指令集合中的至少一种,所述第一描述符集合用于定义所述联网设备的设备类型。
[0094] 在本步骤中,场景配置信息为定义联网设备的设备类型(或设备功能)的配置信息,其包括但不限于描述符集合、描述符指令集合、数据源配置信息和设备角色等。描述符集合包括但不限于设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符和自定义描述符等。描述符指令集合为实现联网设备的主机功能的指令集,其包括多种功能指令集,功能指令集但不限于获取符指令集、验证指令集、数据源指令集、交互指令集和自定义指令集,获取指令集用于获取描述符集合,验证指令集用于对描述符集合中的各种描述符进行验证,数据源指令集用于获取数据源配置信息等配置参数,交互指令集用于实现联网设备与其他设备的数据交互,其包括但不限于读取指令、写入指令、创建指令、修改指令、删除指令和设置指令等,自定义指令集用于定义所期望的联网设备功能。设备角色包括主机角色和从机角色,当联网设备作为主机设备时,则设备角色为主机角色,当联网设备作为从机设备时,则设备角色为从机角色。
[0095] 可选地,在联网设备启动时,联网设备与服务端建立通信连接,并预加载服务端存储的目标配置信息。可以理解的是,在其他实施例中,预加载过程可以在联网设备与服务端建立通信连接后的其他时刻进行,通信建立过程也可以在联网设备启动后的其他时刻进行。
[0096] 可选地,联网设备的供电方式包括但不限于:1.联网设备与目标设备连接时,使用目标设备的电源为联网设备供电,例如,联网设备作为从机时,与计算机主机连接,以获取计算机主机的电源;2.联网设备内置有电源设备,以采用内置电源进行供电;3.联网设备通过外接电源进行供电,例如联网设备作为主机时,通过第一接口接入移动电源或充电头获取电能,第二接口连接从机设备,联网设备作为从机时,通过第二接口接入移动电源或充电头获取电能,第一接口连接主机设备。
[0097] 可选地,联网设备与服务端的通信建立过程包括:基于预设服务端配置信息,向服务端发送通信连接请求。其中预设服务端配置信息可以存储于联网设备,其包括但不限于服务端的通信地址(IP地址或域名地址等)、端口、用户名和访问密码等。示例性地,当联网设备通电启动时,读取本地的预设服务端配置信息,基于该预设服务端配置信息,向服务端发送通信连接请求,以建立通信连接。
[0098] 可选地,可以预加载服务端存储的与联网设备对应的全部场景配置信息,也可以预加载联网设备在当前应用场景下的场景配置信息。例如,基于预设应用场景,向服务端预加载该应用场景对应的场景配置信息。
[0099] 可选地,预设应用场景可以在服务端上选择。示例性地,通过用户端(如应用程序或网页浏览器等)访问服务端,用户在用户端上选择需要发送给联网设备的场景配置信息,从而在联网设备与服务端通信连接时,预加载基于用户选择的场景配置信息。可以理解的是,在服务端选择过程可以为实时过程,也可以为非实时过程,即可以在需要预加载场景配置信息时,在服务端上实时选择场景配置信息对应的应用场景,也可以预先选择场景配置信息对应的应用场景,当需要预加载场景配置信息,基于预先选择的应用场景,预加载场景配置信息。
[0100] 可选地,预设应用场景可以在联网设备的显示单元上选择。示例性地,联网设备设有显示单元,在显示单元展示供用户选择应用场景的选项,基于用户的选择操作,确定应用场景,从而在联网设备与服务端通信连接时,预加载基于用户选择的场景配置信息。同样地,在联网设备上的选择过程可以为实时过程,也可以为非实时过程。
[0101] 可选地,预设应用场景还可以在联网设备的物理开关上选择。示例性地,联网设备设有物理开关,通过拨动物理开关以选择当前开关指针对应的应用场景,从而在联网设备与服务端通信连接时,预加载基于用户选择的场景配置信息。
[0102] 可选地,预设应用场景还可以在联网设备自动选择。示例性地,联网设备基于目标设备的预设交互数据(例如描述符内容、描述符指令或者数据通信内容),自动选择对应的应用场景。或者,根据联网设备的GPS模块的位置信息,在特定位置选择对应的应用场景;或者,根据联网设备的本地定时时钟或网络定时时钟,自动选择对应的应用场景。
[0103] 需要说明的是,本申请的目标配置信息可以存储于服务端,以防止联网设备丢失后被恶意逆向破解,同时服务端有利于实现目标配置信息的实时热更新。
[0104] 步骤S102,基于目标场景配置信息,建立与目标设备之间的通信连接,以使所述联网设备接入到所述目标设备,所述目标场景配置信息为所述场景配置信息中的一种。
[0105] 在本步骤中,目标设备可以是作为主机的计算机设备,如笔记本电脑、桌上型计算机、嵌入式主机、工业控制设备和物理服务器等计算机设备;也可以是作为从机的电子设备,如U盘(USB闪存盘)、移动硬盘、硬盘、闪存设备读卡器、SD卡、TF卡和外置光驱等。当目标设备作为主机时,联网设备作为从机与目标设备通信连接;当目标设备为从机时,联网设备作为主机与目标设备通信连接。
[0106] 可选地,当预加载的目标配置信息包括所有应用场景下的场景配置信息时,基于用户在联网设备上选择的当前应用场景,从多个场景配置信息中,确定与当前应用场景对应的目标场景配置信息;基于目标场景配置信息,定义联网设备的设备功能,并与目标设备建立通信连接。
[0107] 可选地,当预加载的目标配置信息仅包括当前应用场景下的场景配置信息时,基于该场景配置信息,定义联网设备的设备功能,并与目标设备建立通信连接。
[0108] 可选地,联网设备与目标设备之间的通信建立方式可以基于握手通信方式实现。其中,当目标设备作为主机,联网设备作为从机时,目标设备向联网设备发送握手请求,目标设备响应于该握手请求,向目标设备返回目标场景配置信息中的通信参数(例如设备描述符等描述符),以达成握手协议,从而建立通信连接。当目标设备作为从机,联网设备作为主机时,由联网设备发起握手请求。可选地,在达成握手协议过程中,可通过枚举方式验证通信参数。
[0109] 需要说明的是,本实施例通过定义联网设备的设备类型,以使联网设备作为主机设备或从机设备,能够适用于更多应用场景,实现联网设备的应用拓展,通信数据可以不经过计算机主机,有效避免被计算机主机抓包而泄露真实数据源和网络通信数据,以及有效避免被计算机主机上的恶意程序破解,保证联网设备的设备安全性和数据安全性;以及在联网设备出售或丢失时,能够通过服务端授权或解除与联网设备的通信关系,进一步保证联网设备的数据源安全性。
[0110] 在一些实施例中,在图1所示实施例的基础上,所述步骤S102之前,还包括:基于预设生成策略,配置所述联网设备的第一描述符集合和数据源配置信息,以生成所述场景配置信息,所述预设生成策略包括自定义创建策略和模板创建策略。
[0111] 可选地,当预设生成策略为自定义创建策略时,基于用户选择的联网设备的设备角色,配置联网设备的第一描述符集合和数据源配置信息。示例性地,若联网设备的设备角色选定为主机角色(即作为与目标设备通信连接的主机),配置用于主机枚举的功能指令集,如获取指令集、验证指令集、设置指令集、交互指令集、数据源指令集和自定义指令集,并配置数据源配置信息,以绑定联网设备与目标设备进行数据交换过程中的数据源,数据源包括但不限于镜像存储文件、特定文件夹、数据库和数据流等。若联网设备的设备角色选定为从机角色(即作为与目标设备通信连接的从机),则配置用于向主机回复的描述符参数、设备类型参数和数据源配置信息。
[0112] 可选地,当预设生成策略为模板创建策略,基于预设场景模板,配置联网设备的第一描述符集合和数据源配置信息。示例性地,若应用场景为联网设备作为大容量存储设备,则基于该应用场景对应的预设场景模板,配置描述符中的厂商、标识信息和字符串信息等,以及配置数据源配置信息。
[0113] 需要说明的是,本实施例通过创建不同应用场景或者设备角色对应的配置信息,以使联网设备能够应用于多种应用场景,提高联网设备的适用性。
[0114] 在一些实施例中,在图1所示实施例的基础上,所述步骤S101,包括:
[0115] 当与服务端通信连接时,向所述服务端发送配置获取请求,所述配置获取请求携带有所述联网设备的标识信息;
[0116] 接收所述服务端返回的与所述标识信息对应的目标配置信息。
[0117] 在本实施例中,由于服务端可能同时连接多个联网设备,所以以联网设备的标识信息与目标配置信息的对应关系,保证联网设备准确获取到的目标配置信息。标识信息为表示联网设备的标识信息,如联网设备的设备编号、联网设备所属用户的用户名称(或用户编号、用户sessionID)等。可选地,预先建立标识信息与目标配置信息之间的对应关系,该对应关系可以在联网设备出厂时固定设置,也可以更改设置。可以理解的是,联网设备的所有配置信息均可以通过用户端访问服务端,以在用户端的页面上进行配置,后续不再赘述。
[0118] 可选地,配置获取请求还携带有联网设备的当前应用场景参数,以根据标识信息和当前应用场景参数,准确获取当前应用场景参数对应的目标场景配置信息。
[0119] 需要说明的是,由于设备之间建立通信连接时,作为主机的设备根据通信协议(如握手协议或控制传输协议等)进行超时判定(通常为毫秒级或微秒级的超时判定),所以为了保证在预设时间内完成通信连接的建立,将功能指令集和描述符集合预加载至联网设备。应理解,在设备之间进行数据传输过程中,其传输协议为批量传输协议或者等时传输协议或者中断传输协议,即具有较长时间的超时判定,所以对于设备交互过程的数据传输,可以无需预加载相关数据。
[0120] 在一些实施例中,所述联网设备作为与目标设备通信连接的主机设备,所述描述符指令集合包括多种功能指令集,所述功能指令集用于控制所述联网设备与所述目标设备之间的数据交换。在图1所示实施例的基础上,所述步骤S102,包括:
[0121] 基于所述描述符指令集合中的功能指令集,对所述目标设备的第二描述符集合中的多种描述符进行枚举;
[0122] 若枚举成功,则配置所述联网设备与所述目标设备通信时的目标数据源,所述目标数据源设于所述目标设备。
[0123] 若枚举不成功,则将获取的描述符集合向服务端提交,经服务端识别后,从服务端下载对应的描述符集合或者功能指令集等,并重新进行枚举。
[0124] 在本实施例中,由于联网设备作为主机时,需要主动发起请求,所以为实现联网设备的主机功能,预先设置开发驱动程序(即功能指令集),并将驱动程序存储于服务端,以保护联网设备的功能指令集数据安全,防止联网设备丢失后被恶意使用设备功能或数据泄露或者被逆向破解。
[0125] 在一些实施例中,枚举过程包括:
[0126] 基于所述获取指令集,读取所述目标设备的第二描述符集合;
[0127] 基于所述验证指令集,对所述第二描述符集合中的多种描述符进行验证;
[0128] 若多种所述描述符满足预设设备要求,则判定枚举成功。
[0129] 在本可选实施例中,描述符集合包括但不限于设备描述符、配置描述符、接口描述符、端点描述符、字符串描述和预设的自定义描述等。预设设备要求为通信协议中的协议要求。示例性地,下表示出了联网设备作为主机设备时通过描述符指令获取的描述符示例,应理解,下表所展示的描述符仅用作示例,在其他实施例中还可以包括更多或更少的描述符,在此不再赘述。
[0130] 指令 描述符指令 描述符说明(从左到右依次说明)类型(主机)
获取 0x80 0x06 0x80表示设备到主机的通信方向,请求为标准请求,请求的接收者为设备;0x06表设备 0x00 0x01 示请求的命令类型为获取描述符类型;0x00和0x01 表示命令参数,其中01表示设描述 0x00 0x00 备描述符; 0x00和0x00表示语言,默认为0;0x12和0x00表示所需要传输的描述符符 0x12 0x00 字节数为12(十六进制表示)。
获取 0x80 0x06 0x80表示设备到主机的通信方向,请求为标准请求,请求的接收者为设备;0x06表配置 0x00 0x02 示请求的命令类型为获取描述符类型;0x00和0x02 表示命令参数,其中02表示配描述 0x00 0x00 置描述符; 0x00和0x00表示语言,默认为0;0x20和0x00表示所需要传输的描述符符 0x20 0x00 字节数为20(十六进制表示)。
获取 0x80 0x06 0x80表示设备到主机的通信方向,请求为标准请求,请求的接收者为设备;0x06表字符 0x00 0x03 示请求的命令类型为获取描述符类型;0x00和0x03 表示命令参数,其中03表示字串描 0x00 0x00 符串描述符; 0x00和0x00表示语言,默认为0;0xFF和0x00表示所需要传输的描述述符 0xFF 0x00 符字节数为FF(十六进制表示)。
[0131] 示例性地,联网设备基于描述符指令集,读取设备描述符、配置描述符和字符串描述符中的以下信息:1.厂商、标识信息和字符串等;2.接口使用的类,例如大容量存储类;3.传输端点,例如端点1表示IN,端点2表示OUT;4.端点传输模式,例如批量传输模式。基于验证指令集,验证接口使用的类、端点和端点传输模式是否符合联网设备的应用场景要求。若符合,则判定枚举成功,若不符合,则判定枚举失败,并向服务端返回连接失败。
[0132] 可选地,功能指令集还包括设置指令集,用于向目标设备发送设置指令。例如,联网设备向从机设备发送一个设置指令,要求从机设备使能相应的端点。需要说明的是,联网设备作为主机设备时,支持接入多个从机设备,并支持对多个从机设备进行枚举。
[0133] 需要说明的是,本实施例将联网设备作为主机设备与目标设备通信连接,对于未知的接入设备(目标设备),能够通过获取该目标设备的描述符,并将该描述符提交至服务端进行识别,以从服务端下载对应的描述符集合或者功能指令集,从而可以充分扩展联网设备应对不同类型目标设备的接入能力。
[0134] 在一些实施例中,目标数据源的配置过程,包括:
[0135] 基于所述数据源指令集,根据所述数据源配置信息,确定所述联网设备的目标数据源。
[0136] 在本可选实施例中,基于联网设备的应用场景,配置联网设备的数据源指令集,以操作目标设备的数据源。例如,联网设备连接大容量存储设备的应用场景,则配置联网设备的对应数据源指令集,以对目标设备数据存储空间进行操作。又例如,联网设备连接键盘设备的应用场景,配置联网设备对应数据源指令集,以读取键盘的输入的键值。以上对目标设备数据源操作的交互数据,可以实时向服务端同步,也可以经过预设脚本或者设置规则的筛选(或者转换),再向服务端同步。
[0137] 可选地,对于联网设备连接大容量存储设备的应用场景,所述数据源配置信息包括但不限于数据源的容量信息,所述容量信息包括数据源的最后逻辑块地址和块容量,(最后逻辑块地址+1)×块容量=容量信息;数据源配置信息还包括最大逻辑单元数,其中最大逻辑单元数表示分区数。
[0138] 示例性地,主机模式下,以读取U盘设备为例:在设备通电前或者通电后,在服务端或者设备本地,将联网设备设置为网络读写控制设备模式。具体包括联网设备通电,插入U盘,联网设备检测到有目标设备接入,通过预设描述符指令进行枚举,如果枚举成功,获得设备类型,并向服务端发送枚举成功的信息(该信息包括设备类型),以建立通信连接;如果枚举失败,则向服务端发送联网设备所能够读取到的描述符信息,并请求服务端发送新的功能指令集(获取描述符指令集等),并在收到新的描述符指令后重新进行枚举。服务端根据设备类型加载相应的驱动程序或者操作软件。驱动程序或者操作软件通过服务端,向联网设备发送相关指令(数据源指令集),并进行计算,以获取U盘的总空间容量、可用空间容量、相关字符串、厂商ID(Vendor ID)、设备ID(Product ID)等,完成枚举和操作准备。服务端或客户端通过软件进行读写操作。用户可以通过服务端软件或者客户端APP、网页浏览器等应用程序对U盘(目标设备)进行操作。例如,用户将客户端的文件写入到U盘、或者读取U盘的文件保存到客户端、或者读取U盘指定扇区位置的数据、或者向U盘指定扇区位置写入数据。
[0139] 需要说明的是,对于需要将存储设备A的数据拷贝至存储设备B的场景(或者服务端的数据下载到存储设备A或B中,或者将存储设备A或B的数据上传到服务端中),当前技术需要将存储设备A和存储设备B连接至电脑进行数据拷贝(或者在计算机设备中安装应用软件才能连接服务端进行操作),导致数据移植过程中被计算机设备抓包而使得数据泄露。而本实施例将联网设备作为主机设备与目标设备通信连接能够很好的解决上述场景问题。由于本实施例无需使用(带有操作系统的)计算机设备,防止数据在拷贝过程中被恶意程序窃取;上传数据直接存储在服务端,防止设备丢失导致的数据丢失或泄露;联网设备直接连接服务端,使得网络流量数据无需经过计算机设备和目标设备,从而降低被网络数据抓包的可能性,保证数据安全性。
[0140] 在一些实施例中,所述联网设备为网络读写控制设备,所述基于目标场景描述符信息,建立与目标设备之间的通信连接,包括:
[0141] 基于所述描述符指令集中的功能指令集,对所述目标设备的第二描述符集合中的多种描述符进行枚举;
[0142] 若枚举成功,则向所述服务端请求下发与所述目标设备对应的驱动指令集,以完成通信连接,所述驱动指令集用于与所述目标设备进行数据交换。
[0143] 在本实施例中,驱动指令集为针对不同设备分别开发的驱动指令集合,其包括但不限于交互指令集和自定义指令集等。描述符枚举过程请参见联网设备作为主机设备时的相关描述,在此不再赘述。本实施例通过向服务端请求下发与目标设备对应的驱动指令集,以根据目标设备的第二描述符集合识别出目标设备的设备类型,从而能够针对不同目标设备的设备类型从服务端加载对应的驱动指令集,以用于联网设备与目标设备进行数据交换,实现多种设备类型的接入和数据交换。
[0144] 需要说明的是,对于网络读写控制设备,其可以根据实际应用需求,配置目标数据源,也可以不配置目标数据源。
[0145] 在一些实施例中,所述联网设备为网络代理控制设备,所述步骤S102,包括:
[0146] 基于所述描述符指令集合中的功能指令集,对所述目标设备的第二描述符集合中的多种描述符进行枚举;
[0147] 若枚举成功,则将所述第二描述符集合发送至所述服务端,以使在所述服务端对所述目标设备进行虚拟化,生成所述目标设备对应的虚拟设备,从而建立与所述目标设备之间的通信连接。
[0148] 在本实施例中,描述符枚举过程请参见联网设备作为主机设备时的相关描述,在此不再赘述。可选地,虚拟化过程可以在服务端内部执行,也可以由控制服务端的计算机前端执行。需要说明的是,对于网络代理控制设备,其可以根据实际应用需求,配置目标数据源,也可以不配置目标数据源。
[0149] 作为示例而非限定,以下提供联网设备作为主机设备时的几种应用场景:
[0150] 1.联网设备作为远程控制器。以自定义驱动实现服务端直接控制程序,而无需虚拟化USB设备(应理解,也可以虚拟化USB设备)。通过自定义驱动的方式开发驱动程序进行控制,即不使用操作系统自带的通用驱动,自行重新开发。
[0151] 例如,一种设置为主机角色的网络读写控制设备(根据自定义的交互指令、脚本,可以进行协议转换),读写USB接口、HDMI接口、SCSI接口、IEEE1394接口、SATA接口、eMMC接口等接口设备的握手协议数据(例如描述符集合等),以基于上述枚举过程对所述目标设备进行枚举,从而建立网络读写控制设备与存储设备之间的通信连接。再基于服务端安装的用于读写操作的驱动指令集,通过用户端控制服务端或者以服务端预设指令的方式,向网络读写控制设备发送交互指令,网络读写控制设备将交互指令经过转换后,发送至存储设备中,以向存储设备写入服务端的数据或者向服务端上传存储设备的数据。
[0152] 同理,网络读写控制设备也可以通过与摄像头和麦克风等传感器设备建立通信连接,并读取传感器设备采集的数据向服务端上传,或者将服务端下发的控制指令(即自定义指令集中的指令),控制摄像头调整方向和角度等,或控制麦克风调节功率等。
[0153] 2.联网设备作为网络代理控制设备,通过联网设备作为代理设备结合原生驱动,通过软件将目标设备虚拟化为本地USB设备,以使服务端或由控制服务端的计算机前端认为目标设备为本地USB设备,从而在不二次开发驱动程序的情况下,能够正常识别并使用目标设备。可选地,对于主机设备同时接入多个目标设备的情况,支持将所有目标设备网络映射到计算机前端或服务端,以在计算机前端或服务端将目标设备虚拟化为本地USB设备。
[0154] 需要说明的是,现有技术的的数据实现是USB设备‑计算机主机1‑网络共享‑计算机主机2‑虚拟USB设备,其存在以下问题:1.数据要经过计算机主机1,而计算机主机1存在未知的风险;2.数据经过计算机主机1容易被抓包,导致被发现数据源地址和数据交互逻辑,存在安全隐患;3.计算机主机1一般为PC、个人笔记本等形式,需要安装操作系统和软件;4.上述数据实现为纯软件的形式。而本申请的网络代理控制设备可以为独立硬件形式,可以无需经过计算机主机,降低安全风险。
[0155] 例如,联网设备以USB接口作为主机接口,向接入的打印机(目标设备)读取基本描述符集合,以基于上述枚举过程对所述目标设备进行枚举,当枚举成功后,联网设备向服务端发送打印机的描述符集合。服务端通过虚拟总线等方式,将接收到的描述符集合在本地计算机生成虚拟的USB设备。打印机的原生驱动程序(即功能指令集)通过操作虚拟的USB设备远程控制被映射的打印机进行打印。即通信关系为:服务端(打印机驱动程序‑虚拟USB设备)‑联网USB设备(主机设备)‑打印机。在其他实施例中,还可以通过计算机前端控制服务端,以在计算机前端可视化服务端的虚拟化过程,以及打印机的待打印数据和打印进度等,在此不再赘述。
[0156] 可以理解的是,在现场将联网设备插入打印机后,通过与联网设备通信连接的远程服务端利用原生打印机驱动程序直接识别到打印机,以控制打印机进行打印,从而可以避免重要文件拷贝到风险未知的计算机而导致数据泄露。
[0157] 可以理解的是,上述应用场景仅用作示例而非限定,在其他场景下可以是多种应用场景的结合,例如同时以场景1和场景2的方式进行开发实现,在此不再赘述。
[0158] 在一些实施例中,在图1所示实施例的基础上,所述联网设备作为与目标设备通信连接的从机设备,所述步骤S102,包括:
[0159] 接收所述目标设备发送的枚举请求;
[0160] 响应于所述枚举请求,向所述目标设备返回所述第一描述符集合,以使所述目标设备对所述第一描述符集合进行枚举,并在枚举成功后,根据数据源配置信息配置所述联网设备与所述目标设备通信时的目标数据源,所述目标数据源设于所述服务端。
[0161] 在本实施例中,类似于联网设备作为主机设备时的通信连接过程,本实施例的联网设备作为从机设备时,目标设备作为枚举请求的发起者,联网设备作为枚举请求的响应者,由目标设备执行如联网设备作为主机设备时的枚举动作,联网设备对目标设备的枚举动作进行回复。联网设备作为从机设备时,支持连接多个主机设备,并支持响应多个主机设备的枚举请求,具体枚举过程可参见联网设备作为主机设备时的实施例,在此不再赘述。
[0162] 示例性地,下表示出了联网设备作为从机设备时回复描述符。
[0163]
[0164] 在一些实施例中,所述目标设备包括至少一个第一目标设备和至少一个第二目标设备,所述联网设备作为与所述第一目标设备通信连接的主机设备,以及作为与所述第二目标设备通信连接的从机设备,所述基于目标场景描述符信息,建立与目标设备之间的通信连接,包括:
[0165] 基于所述描述符指令集合中的功能指令集,对所述第一目标设备的第二描述符集合中的多种描述符进行枚举;
[0166] 若枚举成功,则配置所述联网设备与所述第一目标设备通信时的第一目标数据源,以完成与所述第一目标设备的通信连接,所述第一目标数据源设于所述第一目标设备;
[0167] 接收所述第二目标设备发送的枚举请求;
[0168] 响应于所述枚举请求,向所述第二目标设备返回所述第一描述符集合,以使所述第二目标设备对所述第一描述符集合进行枚举,并在枚举成功后,根据数据源配置信息配置所述联网设备与所述第二目标设备通信时的第二目标数据源,所述第二目标数据源设于所述服务端或所述第一目标设备。
[0169] 在本实施例中,描述符枚举过程和目标数据源的配置过程请参见联网设备作为主机设备或从机设备时的相关描述,在此不再赘述。本实施例的联网设备作为“主机设备+从机设备”同时存在联网设备获取第一目标设备(从机)的第二描述符集合,以完成对第一目标设备的枚举;2.联网设备在第二目标设备(主机)发起枚举请求时,将第一描述符集合转发至第二目标设备,以在第二目标设备中完成枚举,以实现第一目标设备、联网设备(和服务端)以及第二目标设备之间的多设备交互。
[0170] 可选地,联网设备也可以将第二目标设备发送的描述符指令直接转发至第一目标设备,将第一目标设备的响应数据直接转发至第二目标设备,以完成枚举。
[0171] 可选地,服务端对第一目标设备和第二目标设备的数据交换进行日志记录,以用于第一目标设备和第二目标设备的审计;在数据交换的情况下,联网设备或服务端还可以对数据进行修改、替换等操作,以保护第一目标设备和第二目标设备的数据安全。
[0172] 作为示例而非限定,联网设备作为网络USB集线器(USB HUB),本实施例可以对接入的第一目标设备进行监测,检测描述符参数和通信数据。具体地在第一目标设备接入联网设备时,向服务端上传第一目标设备的描述符集合(例如厂商ID(Vendor ID)、设备ID(Product ID)或者设备类型(使用的类、子类、接口命令集、端点传输模式)),经过服务端确定第一目标设备符合条件的厂商ID、设备ID或者设备类型,才允许第一目标设备与联网设备或第二目标设备进行数据交换。
[0173] 可选地,对于联网设备作为大容量存储设备的从机设备时,所述数据源配置信息包括但不限于数据源的容量信息,所述容量信息包括数据源的最后逻辑块地址和块容量,(最后逻辑块地址+1)×块容量=容量信息,数据源配置信息还包括最大逻辑单元数,其中最大逻辑单元数表示分区数。
[0174] 需要说明的是,当前接入设备均是功能单一的存储设备或者外接设备,并且作为存储设备时仅能够在存储设备本地存储数据,其存储容量受到硬件限制,以及数据存储空间能够被计算机设备轻易识别而存在数据被盗取风险。而本实施例将联网设备作为从机设备与目标设备通信连接,基于场景切换可以实现一个设备的多种不同功能形态,并能够很好的解决存储容量受限和数据存储空间容易被识别的风险,提高了数据源安全性。
[0175] 作为示例而非限定,以下提供联网设备作为从机设备时的几种应用场景:
[0176] 1.联网设备作为网络U盘。将联网设备设置为U盘形态(如大容量存储设备类型、批量传输端点),计算机主机获取联网设备的描述符集合,并对所述描述符集合进行枚举,从而建立联网设备与计算机主机之间的通信连接。联网设备基于在服务端建立的镜像文件(例如分盘.dd的磁盘镜像文件或分盘.ISO的光盘镜像文件),与计算机主机之间建立关联关系,以读写联网设备的目标数据源。在数据写入场景下,计算机主机将交互数据写入网络U盘时,网络U盘向服务端上传该交互数据,服务端将该交互数据写入到镜像文件的指定偏移量位置。在数据读取场景下,在服务端中将镜像文件的指定偏移量数据读出,并返回给计算机主机。
[0177] 2.联网设备作为网络USBkey设备(例如银行U盾、数字证书、加密狗等)。将联网设备设置为USBkey形态,接入计算机主机。其中,网络USBkey设备内部包括:1.PIN密码(密码由用户输入或者传感器采集转换的数据),2.算法,3.密钥。对于PIN密码,可以通过联网方式将用户输入或者传感器采集转换的数据发送到服务端进行PIN校验;对于算法,可以通过脚本方式从服务端进行远程下载,即可以随时更新算法或者选择算法;对于密钥,可以将密钥或者组成密钥的部分(例如本地密钥和服务端密钥相结合的加密方式)数据存放于服务端,以提高安全性。可选地,联网设备在服务端在交互过程中,服务端进行日志记录和行为分析,及时阻断可疑行为并预警,防止USBkey的滥用。
[0178] 需要说明的是,1.USBkey本身可以不存储重要数据,例如PIN、算法和密钥,其重要数据在运行过程中,从服务端下载到USBkey的内存,在USBkey断电后重要数据则消除,以提高安全性;2.用户每次使用USBkey时,服务端都能进行使用日志记录,防止滥用。例如虚拟化USB设备的技术可以将USBkey的数据在多个计算机的共享;3.对于丢失的USBkey,可以远程锁定,防止盗用。4.可以加装GPS、北斗等卫星定位模块,在向服务端请求时,报送USBkey的地理位置,当符合预设地理位置条件时,才允许使用USBkey。5.USBkey的数据源存储于服务端,联网通信链路可以不经过主机端,能够保证数据源的数据安全。
[0179] 可以理解的是,上述应用场景仅用作示例而非限定,在其他场景下可以是其他硬件形态,例如键盘等输入器等,在此不再赘述。
[0180] 请参照图3,图3为本申请实施例提供的一种设备接入方法的流程示意图。本申请实施例的方法可应用于联网设备,所述联网设备存储有至少一种应用场景的场景配置信息,该联网设备包括但不限于具备联网功能的单片机或嵌入式等设备、智能手机或笔记本电脑等终端设备、网络USBkey设备(例如银行U盾数字证书、加密狗等)、网络代理控制设备(例如多端口转发器),远程控制器(包括但不限于网络读写控制设备、网络控制器(例如路由器和智能网关等))、通信类设备(Communication Device Class,CDC,例如网卡、调制解调器、ISDN(Integrated Services Digital Network)终端)、人体学接口类设备(Human Interface Device,HID,例如键盘或鼠标)、大容量存储类设备(Mass Storage Device Class,MSC,例如U盘、网络U盘、读卡器、网络读卡器)、打印机类设备(Printer device,例如USB接口的打印机)、静态图像获取类设备(Still Imaging device)、视频类设备(Video device)、音视频类设备(Audio/Video Devices)、智能卡类设备、USB集线器类设备(Universal SerialBus Hub)以及自定义类设备等。
[0181] 可选地,联网设备通过有线或者无线网络(例如双绞线或光纤等以太网接口、WIFI热点、超宽带UWB、蓝牙、4G或5G移动蜂窝网络和LoRa远距离无线电等)与服务端通信连接,服务端包括但不限于个人计算机、笔记本电脑、嵌入式计算机、物理服务器和云服务器等带有网络服务功能的设备。在联网过程中,可以进一步设置虚拟专用网络、使用网络专线等方式加强网络安全性。
[0182] 如图3所示,本实施例的设备接入方法包括:
[0183] 步骤S301,基于目标场景配置信息,建立与目标设备之间的通信连接,以使所述联网设备接入到所述目标设备,所述目标场景配置信息为所述场景配置信息中的一种,所述场景配置信息包括第一描述符集合和描述符指令集合中的至少一种,所述第一描述符集合用于定义所述联网设备的设备类型。
[0184] 在本实施例中,类似于图1所示实施例的设备接入过程,其步骤解释可参见图1实施例的相关描述,在此不再赘述。需要说明的是,本实施例的目标场景配置信息存储于联网设备本地存储空间,而无需从服务端获取,以进一步提高设备接入效率,或限定联网设备的功能范围。
[0185] 请参照图4,图4为本申请实施例提供的一种数据交换方法的流程示意图。本申请实施例的方法可应用于联网设备,所述联网设备上述设备接入方法,与服务端和目标设备建立通信连接,该联网设备包括但不限于具备联网功能的单片机或嵌入式等设备、智能手机或笔记本电脑等终端设备、网络USBkey设备(例如银行U盾、数字证书、加密狗等)、网络代理控制设备(例如多端口转发器等),远程控制器(包括但不限于网络读写控制设备、网络控制器(例如路由器和智能网关等))、通信类设备(Communication Device Class,CDC,例如网卡、调制解调器、ISDN(Integrated Services Digital Network)终端)、人体学接口类设备(Human Interface Device,HID,例如键盘或鼠标)、大容量存储类设备(Mass Storage Device Class,MSC,例如U盘、网络U盘、读卡器、网络读卡器)、打印机类设备(Printer device,例如USB接口的打印机)、静态图像获取类设备(Still Imaging device)、视频类设备(Video device)、音视频类设备(Audio/Video Devices)、智能卡类设备、USB集线器类设备(Universal SerialBus Hub)以及自定义类设备等。
[0186] 如图4所示,本实施例的数据交换方法,所述方法包括步骤S401至步骤S402,详述如下:
[0187] 步骤S401,获取第一目标方发送的数据交换请求;
[0188] 步骤S402,基于预设处理策略,对所述数据交换请求进行响应,并将目标数据返回至所述第一目标方,所述目标数据为第二目标方发送的数据,其中若所述第一目标方为所述服务端,则所述第二目标方为所述目标设备,若所述第一目标方为所述目标设备,则所述第二目标方为所述服务端。
[0189] 在本实施例中,数据交换请求为联网设备与目标设备进行数据交互时的请求,包括服务端发起的第一交换请求和目标设备发起的第二交换请求。预设处理策略为对数据交换请求进行处理的策略,其包括但不限于基于在联网设备本地进行处理的第一策略和基于向服务端转发数据交换请求的第二策略。需要说明的是,联网设备作为主机设备时,支持接入多个从机设备,并支持与多个从机设备进行数据交换;联网设备作为从机设备时,也能够支持连接多个主机设备,并支持与多个主机设备的数据交换。本实施例通过图1或图3所示实施例的设备接入方法连接联网设备、服务端与目标设备,以使联网设备在不同数据交换场景承担不同的交互角色和交互过程,从而联网设备在多种应用场景下的数据交换,提高联网设备的场景适用性。
[0190] 可选地,联网设备作为主机模式,通过获取描述符指令,获得目标设备(USB设备)的数据交互端点信息,其中端点1为IN、端点2为OUT。联网设备通过网络接口,向服务端发起指令查询操作指令请求,等待服务端下发交互指令。当查询到有交互指令时,联网设备下载用于交互操作的交互指令集。例如需要向目标设备发送数据A1,并接收目标设备的返回数据。联网设备将A1数据发送至目标设备的端点2(OUT),并向端点1(IN)发送IN令牌包进行查询数据返回。当联网设备接收到端点1的DATA数据包A2后,向服务端上传。
[0191] 可选地,联网设备作为从机模式,使能端点1为IN、端点2为OUT,并等待计算机主机向上述2个端口发送交互指令数据。联网设备接收到计算机主机向端点2(OUT)发送的A1数据。联网设备通过网络接口,将A1数据上传至服务端。服务端对A1数据进行解析,等待联网设备下载A2数据。联网设备通过网络接口,下载A2数据。当计算机主机向联网设备端点1(IN)发送IN令牌包时,向计算机主机返回DATA数据包A2。
[0192] 可选地,联网设备同时具有从机模式和主机模式。所述目标设备包括至少一个第一目标设备和至少一个第二目标设备,所述联网设备作为与所述第一目标设备通信连接的主机设备,以及作为与所述第二目标设备通信连接的从机设备,其中若所述第一目标方为所述服务端,则所述第二目标方为所述第一目标设备或所述第二目标设备,若所述第一目标方为所述第二目标设备,则所述第二目标方为所述服务端或所述第一目标设备。
[0193] 具体地,联网设备一方面作为从机模式,使能端点1为IN、端点2为OUT,并等待目标设备1(计算机主机)向上述2个端口发送交互指令数据。另一方面作为主机模式,通过获取描述符指令,获得目标设备2(USB设备)的数据交互端点信息,端点1为IN、端点2为OUT。联网设备接收到目标设备1向联网设备端点2(OUT)发送的A1数据。联网设备将A1数据发送至目标设备2的端点2(OUT),并向端点1(IN)发送IN令牌包进行查询数据返回。当联网设备接收到目标设备2端点1的DATA数据包A2后,通过联网设备端点1,向目标设备1返回DATA数据包A2。联网设备通过网络接口,在服务端下载预设规则,对数据交互A1和A2数据进行检测,实现对数据上传至服务端,或者向服务端下载数据以对A1或A2数据进行替换或修改,或者阻断目标设备1或目标设备2的通信。
[0194] 需要说明的是,本申请实施例至少能够解决以下几点问题:
[0195] 容量问题:联网设备以网络U盘场景为例(从机),现有的数据交换是先将服务端的文件(如test.avi文件大小为4GB)全部下载至U盘中,计算机再读取U盘的test.avi数据。
[0196] 而本申请的数据交换方法,在下载过程中直接转发请求或相应的数据包,只需给数据包少量的数据缓冲存储空间即可。例如,在每个扇区512字节的情况下,设置1个512字节的内存缓冲区,计算机主机要读取test.avi文件的首扇区地址数据,则联网设备将读取指令转发至服务端,并从服务端下载响应首扇区地址数据存放至内存缓冲区,再将内存缓冲区的数据转发回复至计算机主机。而后,计算机主机继续读取第二扇区地址乃至test.avi文件的尾扇区地址时,不断将更新至内存缓冲区,服务端和计算机主机交换,实现了以512个字节的存储容量完成4GB文件的传输,传输文件的大小不受联网设备本身存储空间限制。相反,如果联网设备以网络读写控制设备读写U盘的test.avi为例,可以通过512个字节的内存缓冲区,将test.avi上传至服务端。
[0197] 上述的例子仅为示例,在不同的文件系统可能读写方式不同,也可能采用多扇区合并成一个簇进行管理,但均可以应用于这个基本的数据交换原理。在实际交换过程中,为了加快传输效率,也可以将多扇区的请求合并处理,例如缓存空间为128×512个字节,同时以128个扇区进行数据交换等,不再赘述。
[0198] 功能扩展问题:以网络读写控制设备为例(主机),现有技术是作为主机的设备只能先将带有交互指令的程序软件(例如驱动程序、解析程序等等)先行安装在设备中,在有本地设备有驱动的情况下,才能进行对接入设备的控制,所以需要提前安装好驱动,才能控制目标设备,导致设备的功能不容易扩展。
[0199] 而使用本申请的联网设备的数据交换技术,在服务端可以实时下载交互指令。例如,以联网设备连接标准U盘(已装软件)和特殊摄像头(未装软件)为例,在连接U盘的情况下,由于设备本身已安装U盘的读写程序(功能指令集),可以直接进行U盘的读写;在连接摄像头的情况下,由于没有特殊摄像头的功能指令集,获取的描述符无法被识别,无法完成枚举,从而将获取的描述符发送服务端,经过服务端设别后,下发相关功能指令集(获取描述符、校验指令等),设备按照功能指令集重新进行对摄像头进行枚举,以建立连接;服务端直接向联网设备下发读取特殊摄像头数据指令,联网设备将指令转发至特殊摄像头,在摄像头返回数据后,联网设备可以直接显示摄像头画面,或者将画面数据转发至服务端,由服务端进行存储或者共享。
[0200] 安全问题:联网设备的数据缓冲区和下载的功能指令数据可以存放内存之中,设备本身可以不存数据,断电后数据就消失。可以保护重要数据不被窃取。
[0201] 在一些实施例中,在图4所示实施例的基础上,所述步骤S402,包括:
[0202] 响应于所述数据交换请求,将所述数据交换请求转发至所述第二目标方;
[0203] 接收所述第二目标方响应于所述数据交换请求返回的目标数据,并将所述目标数据转发至所述第一目标方。
[0204] 在本实施例中,基于向服务端转发数据交换请求的第二策略,联网设备对数据交换请求进行转发处理。
[0205] 可选地,当联网设备接收到目标设备发起的数据交换请求,联网设备将该数据交换请求转发至服务端,在服务端对该数据交换请求进行解析和处理,并向联网设备返回目标数据,联网设备再将目标数据返回至目标设备。
[0206] 可选地,所述联网设备为网络USBkey设备,所述目标设备为计算机主机,所述响应于所述数据交换请求,将所述数据交换请求转发至所述第二目标方,包括:响应于所述计算机主机发送的数据交换请求,将所述数据交换请求转发至所述服务端,所述数据交换请求携带有所述USBkey设备的凭证信息(凭证信息可以由用户输入或者传感器采集转换得到),以使所述服务端对所述凭证信息进行校验。其中凭证信息包括但不限于PIN文本密码和生物特征信息,生物特征信息包括但不限于指纹信息、虹膜信息、人脸信息和声纹信息。可以理解的是,网络USBkey设备的相关实现原理描述可以参见上述设备接入方法中关于网络USBkey设备的相关描述,在此不再赘述。
[0207] 可选地,当用户在联网设备上操作并发起数据交换请求时,先将数据交换请求发送至服务端进行解析和处理,服务端再向联网设备返回目标数据,联网设备将目标数据返回至目标设备。示例性地,联网设备作为键盘设备,键盘设备以从机角色接入到计算机主机,当用户在计算机前端或服务端点击键盘设备的某个按键(如按键A)以在计算机主机输入“A”,则将点击按键A而触发数据交换请求发送至服务端,服务端通过识别按键A对应的键值“A”,并向键盘设备返回键值“A”,在计算机扫描键盘输入时,键盘设备再将键值“A”发送至计算机主机。从而可以作为一个远程键盘输入场景,对于用户远程向计算机主机输入敏感字符串(例如密码等),无需将敏感字符串告诉现场人员进行输入,提高安全性。应理解,以上键值仅用作示例而非限定,同时键盘设备也同样适用于采用预设处理脚本进行处理的场景,在此不再赘述。
[0208] 示例性地,联网设备作为网络代理控制设备,以主机角色连接到打印机,接收计算机主机发送的待打印数据,对于需要对待打印数据进行优化处理时(例如对图像数据进行增强处理,以提高图像的打印质量),将待打印数据发送至服务端进行优化处理,接收服务端返回的优化数据,并将优化数据发送至打印机进行打印。应理解,以上图像数据仅用作示例而非限定,在其他实施例也可能是其他数据。
[0209] 需要说明的是,通过请求转发方式在服务端进行数据处理,以降低联网设备的硬件压力,从而能够针对部分算力差的联网设备实现高算力的数据处理,从而使得低级别功能的联网设备能够实现高级别功能,提高联网设备的高级应用拓展,同时保护高级功能的程序不在本地被逆向、破解和滥用。
[0210] 在一些实施例中,在图4所示实施例的基础上,所述步骤S402,包括:
[0211] 基于预设处理脚本,对所述数据交换请求进行数据处理,得到数据处理结果;
[0212] 基于所述数据处理结果,向所述第二目标方发送目标数据获取请求;
[0213] 接收所述第二目标方响应于所述目标数据获取请求返回的与所述数据处理结果对应的目标数据,并将所述目标数据返回至所述第一目标方。
[0214] 在本实施例中,预设处理脚本为集成数据处理逻辑的脚本程序,其能够使联网设备在本地处理数据或运行数据逻辑,而无需将所有数据转发服务端执行,只有触发某种条件时才与服务端交互,以提高数据处理效率。
[0215] 示例性地,联网设备作为大容量存储设备(从机角色),基于预设处理脚本处理数据交换请求,例如识别到计算机主机发送的数据交换请求表示需要读取的文件名为test.txt(即数据处理结果),则向服务端请求读取test.txt文件数据,并下载服务端发送的test.txt文件数据(即目标数据),再将test.txt文件数据返回计算机主机。同理,对于数据写入过程,也可以在计算机主机写入test.txt文件时,联网设备将该test.txt文件上传到服务端进行存储,其他文件正常在本地存储。
[0216] 示例性地,联网设备作为网络读写控制设备(主机角色),其自带存储介质,将通用或开源的交互指令的处理逻辑存放在本地存储介质中执行,以提高数据交换速度。将特殊指令存放于服务端,再根据实际需求,从服务端远程加载特殊指令,以防止特殊指令的交互逻辑在本地端被逆向分析,保证数据交换的安全性。基于预设脚本,对接入的大容量存储设备等(例如U盘等)进行数据检索,例如搜索文件名为test.txt的文件、搜索文件首扇区首字节为0xFF的文件等等,并将搜索到的文件数据自动上传至服务端。
[0217] 示例性地,联网设备作为主机角色时的网络代理控制设备,基于预设脚本,通过读取描述符,判断接入设备的厂商ID(Vendor ID)、设备ID(Product ID)或者设备类型(使用的类、子类、接口命令集、端点传输模式)等等,在只有接入的目标设备符合条件的厂商ID、设备ID或者设备类型才允许进行远程映射,以保护服务端或者控制端的安全。
[0218] 示例性地,联网设备作为主机角色时的网络中间控制设备,基于预设脚本或者下载脚本,脚本为多种AI模型或算法。当设备连接音频设备与计算机主机时,切换音频优化增强算法,对计算机主机向音频设备发送的音频数据予以优化,以增强音频设备的声音播放效果;当设备连接摄像头与计算机主机时,切换AI图像识别模型,对摄像头发送至计算机主机的图像数据进行处理,实现物品标记等。
[0219] 需要说明的是,上述大容量存储设备、网络读写控制设备、网络代理控制设备和网络中间控制设备同样适用于请求转发场景,而不在本地利用预设处理脚本进行处理。其他设备类型的数据交换可以参见上述设备接入方法的相关示例描述,在此不再赘述。在一些实施例中,一种设备接入方法应用于服务端,所述方法包括:当与联网设备通信连接时,向所述联网设备下发目标配置信息,所述目标场景配置信息用于所述联网设备建立与目标设备之间的通信连接,所述服务端存储有至少一种预设配置信息,所述目标配置信息为所述预设配置信息中的一种,所述目标配置信息包括所述联网设备在至少一种应用场景下的场景配置信息,所述场景配置信息包括第一描述符集合和描述符指令集合中的至少一种,所述第一描述符集合用于定义所述联网设备的设备类型,以使所述联网设备接入到所述目标设备,所述目标场景配置信息为所述场景配置信息中的一种。在另一些实施例中,一种数据交换方法应用于服务端,所述服务端基于权利要求20所述的设备接入方法,与联网设备建立通信连接,所述方法包括:向所述联网设备发送数据交换请求,并接收所述联网设备返回的目标数据,所述数据交换请求用于所述联网设备基于预设处理策略对所述数据交换请求进行响应,所述目标数据为目标设备发送的数据;和/或,根据所述联网设备基于预设处理策略响应的数据交换请求,向所述联网设备发送目标数据,所述目标数据由所述联网设备返回至目标设备,所述数据交换请求由所述目标设备发起。
[0220] 为了执行上述图1所示方法实施例对应的方法,以实现相应的功能和技术效果。参见图5,图5示出了本申请实施例提供的一种设备接入装置的结构框图。为了便于说明,仅示出了与本实施例相关的部分,本申请实施例提供的设备接入装置,应用于联网设备,所述装置包括:
[0221] 预加载模块501,用于当与服务端通信连接时,预加载目标配置信息,所述服务端存储有多种预设配置信息,所述目标配置信息为多种所述预设配置信息中的一种,所述目标配置信息包括所述联网设备在至少一种应用场景下的场景配置信息,所述场景配置信息包括第一描述符集合和描述符指令集合中的至少一种,所述描述符集合用于定义所述联网设备的设备类型;
[0222] 第一建立模块502,用于基于目标场景配置信息,建立与目标设备之间的通信连接,以使所述联网设备接入到所述目标设备,所述目标场景配置信息为所述场景配置信息中的一种。
[0223] 在一些实施例中,所述预加载模块501,具体用于:
[0224] 当与服务端通信连接时,向服务端发送配置获取请求,配置获取请求携带有联网设备的标识信息;
[0225] 接收服务端返回的与标识信息对应的目标配置信息。
[0226] 在一些实施例中,联网设备作为与目标设备通信连接的主机设备,所述描述符指令集合包括多种功能指令集,所述功能指令集用于控制所述联网设备与所述目标设备之间的数据交换。
[0227] 在一些实施例中,所述第一建立模块502,包括:
[0228] 第一枚举单元,用于基于所述描述符指令集合中的功能指令集,对所述目标设备的第二描述符集合中的多种描述符进行枚举;
[0229] 第一配置单元,用于若枚举成功,则配置所述联网设备与所述目标设备通信时的目标数据源,所述目标数据源设于所述目标设备。
[0230] 在一些实施例中,所述功能指令集包括获取指令集和验证指令集,所述枚举单元,具体用于:
[0231] 基于所述获取指令集,读取所述目标设备的第二描述符集合;
[0232] 基于所述验证指令集,对所述第二描述符集合中的多种描述符进行验证;
[0233] 若多种所述描述符满足预设设备要求,则判定枚举成功。
[0234] 在一些实施例中,功能指令集还包括数据源指令集,目标场景配置信息还包括数据源配置信息,所述配置单元,具体用于:
[0235] 基于数据源指令集,根据数据源配置信息,确定所述联网设备的目标数据源。
[0236] 在一些实施例中,所述联网设备为网络读写控制设备,所述第一建立模块502,包括:
[0237] 第一二枚举单元,用于基于所述描述符指令集中的功能指令集,对所述目标设备的第二描述符集合中的多种描述符进行枚举;
[0238] 请求单元,用于若枚举成功,则向所述服务端请求下发与所述目标设备对应的驱动指令集,以完成通信连接,所述驱动指令集用于与所述目标设备进行数据交换。
[0239] 在一些实施例中,所述联网设备为网络代理控制设备,所述第一建立模块502,包括:
[0240] 第二配置单元,用于基于所述描述符指令集合中的功能指令集,配置所述联网设备与所述目标设备通信时的目标数据源,以及对所述目标设备的第二描述符集合中的多种描述符进行枚举;
[0241] 发送单元,用于若枚举成功,则将所述第二描述符集合发送至所述服务端,以使在所述服务端对所述目标设备进行虚拟化,生成所述目标设备对应的虚拟设备,从而建立与所述目标设备之间的通信连接。
[0242] 在一些实施例中,联网设备作为与目标设备通信连接的从机设备,所述第一建立模块502,包括:
[0243] 第一接收单元,用于接收所述目标设备发送的枚举请求;
[0244] 第一返回单元,用于响应于所述枚举请求,向所述目标设备返回所述第一描述符集合,以使所述目标设备对所述第一描述符集合进行枚举,并在枚举成功后,根据数据源配置信息配置所述联网设备与所述目标设备通信时的目标数据源,所述目标数据源设于所述服务端。
[0245] 在一些实施例中,数据源配置信息包括数据源的容量信息,所述容量信息包括数据源的最后逻辑块地址和块容量。
[0246] 在一些实施例中,所述描述符集合包括设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符和预设的自定义描述符中的至少一种。
[0247] 在一些实施例中,所述目标设备包括至少一个第一目标设备和至少一个第二目标设备,所述联网设备作为与所述第一目标设备通信连接的主机设备,以及作为与所述第二目标设备通信连接的从机设备,所述第一建立模块502,包括:
[0248] 第三枚举单元,用于基于所述描述符指令集合中的功能指令集,对所述第一目标设备的第二描述符集合中的多种描述符进行枚举;
[0249] 第三配置单元,用于若枚举成功,则配置所述联网设备与所述第一目标设备通信时的第一目标数据源,以完成与所述第一目标设备的通信连接,所述第一目标数据源设于所述第一目标设备;
[0250] 第二接收单元,用于接收所述第二目标设备发送的枚举请求;
[0251] 第二返回单元,用于响应于所述枚举请求,向所述第二目标设备返回所述第一描述符集合,以使所述第二目标设备对所述第一描述符集合进行枚举,并在枚举成功后,根据数据源配置信息配置所述联网设备与所述第二目标设备通信时的第二目标数据源,所述第二目标数据源设于所述服务端或所述第一目标设备。
[0252] 在一些实施例中,设备接入装置,还包括:
[0253] 配置模块,用于基于预设生成策略,配置联网设备的第一描述符集合和数据源配置信息,以生成场景配置信息,预设生成策略包括自定义创建策略和模板创建策略。
[0254] 为了执行上述图3所示方法实施例对应的方法,以实现相应的功能和技术效果。参见图6,图6示出了本申请实施例提供的一种设备接入装置的结构框图。为了便于说明,仅示出了与本实施例相关的部分,本申请实施例提供的设备接入装置,应用于联网设备,联网设备存储有至少一种应用场景的场景配置信息,装置包括:
[0255] 第二建立模块601,用于基于目标场景配置信息,建立与目标设备之间的通信连接,以使所述联网设备接入到所述目标设备,所述目标场景配置信息为所述场景配置信息中的一种,所述场景配置信息包括第一描述符集合和描述符指令集合中的至少一种,所述描述符集合用于定义所述联网设备的设备类型。
[0256] 为了执行上述图4所示方法实施例对应的方法,以实现相应的功能和技术效果。参见图7,图7示出了本申请实施例提供的一种数据交换装置的结构框图。为了便于说明,仅示出了与本实施例相关的部分,本申请实施例提供的数据交换装置,应用于联网设备,联网设备基于图1或图3所示的设备接入方法,与服务端和目标设备建立通信连接,装置包括:
[0257] 获取模块701,用于获取第一目标方发送的数据交换请求;
[0258] 响应模块702,用于基于预设处理策略,对数据交换请求进行响应,并将目标数据返回至第一目标方,目标数据为第二目标方发送的数据,其中若第一目标方为服务端,则第二目标方为目标设备,若第一目标方为目标设备,则第二目标方为服务端。
[0259] 在一些实施例中,所述目标设备包括至少一个第一目标设备和至少一个第二目标设备,所述联网设备作为与所述第一目标设备通信连接的主机设备,以及作为与所述第二目标设备通信连接的从机设备,其中若所述第一目标方为所述服务端,则所述第二目标方为所述第一目标设备或所述第二目标设备,若所述第一目标方为所述第一目标设备,则所述第二目标方为所述服务端或所述第二目标设备。
[0260] 在一些实施例中,所述响应模块702,包括:
[0261] 响应单元,用于响应于数据交换请求,将数据交换请求转发至第二目标方;
[0262] 转发单元,用于接收第二目标方响应于数据交换请求返回的目标数据,并将目标数据转发至第一目标方。
[0263] 在一些实施例中,所述联网设备为网络USBkey设备,所述目标设备为计算机主机,响应单元,具体用于:
[0264] 响应于所述计算机主机发送的数据交换请求,将所述数据交换请求转发至所述服务端,所述数据交换请求携带有所述USBkey设备的凭证信息,以使所述服务端对所述凭证信息进行校验。
[0265] 在一些实施例中,所述响应模块702,包括:
[0266] 处理单元,用于基于预设处理脚本,对数据交换请求进行数据处理,得到数据处理结果;
[0267] 发送单元,用于基于数据处理结果,向第二目标方发送目标数据获取请求;
[0268] 返回单元,用于接收第二目标方响应于目标数据获取请求返回的与数据处理结果对应的目标数据,并将目标数据返回至第一目标方。
[0269] 上述的装置可实施上述方法实施例的方法。上述方法实施例中的可选项也适用于本实施例,这里不再详述。本申请实施例的其余内容可参照上述方法实施例的内容,在本实施例中,不再进行赘述。
[0270] 图8为本申请一实施例提供的联网设备的结构示意图。如图8所示,该实施例的联网设备8包括:至少一个处理器80(图8中仅示出一个)处理器、存储器81以及存储在所述存储器81中并可在所述至少一个处理器80上运行的计算机程序82,所述处理器80执行所述计算机程序82时实现上述任意方法实施例中的步骤。
[0271] 所述联网设备8可以是包括但不限于具备联网功能的单片机或嵌入式等设备、智能手机或笔记本电脑等终端设备、网络USBkey设备(例如银行U盾、数字证书、加密狗等)、网络代理控制设备(例如多端口转发器等),远程控制器(包括但不限于网络读卡器、网络读写控制设备、网络控制器(例如路由器和智能网关等))、通信类设备(Communication Device Class,CDC,例如网卡、调制解调器、ISDN(Integrated Services Digital Network)终端)、人体学接口类设备(Human Interface Device,HID,例如键盘或鼠标)、大容量存储类设备(Mass Storage Device Class,MSC,例如U盘、网络U盘、读卡器、网络读卡器)、打印机类设备(Printer device,例如USB接口的打印机)、静态图像获取类设备(Still Imaging device)、视频类设备(Video device)、音视频类设备(Audio/Video Devices)、智能卡类设备、USB集线器类设备(Universal SerialBus Hub)以及自定义类设备等。该联网设备可包括但不仅限于处理器80、存储器81。本领域技术人员可以理解,图8仅仅是联网设备8的举例,并不构成对联网设备8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
[0272] 所称处理器80可以是中央处理单元(Central Processing Unit,CPU),该处理器80还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路 (Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field‑Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0273] 所述存储器81在一些实施例中可以是所述联网设备8的内部存储单元,例如联网设备8的硬盘或内存。所述存储器81在另一些实施例中也可以是所述联网设备8的外部存储设备,例如所述联网设备8上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器81还可以既包括所述联网设备8的内部存储单元也包括外部存储设备。所述存储器81用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器81还可以用于暂时地存储已经输出或者将要输出的数据。
[0274] 另外,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例中的步骤。
[0275] 本申请实施例提供了一种可以运行在单片机、嵌入式设备,或者Window、Linux、iOS、Android、HarmonyOS、等操作系统中的计算机程序产品,当计算机程序产品在联网设备上运行时,使得联网设备执行时实现上述各个方法实施例中的步骤。
[0276] 在本申请所提供的几个实施例中,可以理解的是,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意的是,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。
[0277] 所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台联网设备执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、Flash存储器、磁碟或者光盘等各种可以存储程序代码的介质。
[0278] 以上所述的具体实施例,对本申请的目的、技术方案和有益效果进行了进一步的详细说明,应当理解,以上所述仅为本申请的具体实施例而已,并不用于限定本申请的保护范围。特别指出,对于本领域技术人员来说,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。