一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于代理服务的设备调用方法、电子设备及可读存储介质与流程

2022-03-01 22:10:04 来源:中国专利 TAG:


1.本技术涉及电子设备领域,尤其涉及一种基于代理服务的设备调用方法、电子设备及计算机可读存储介质。


背景技术:

2.现有的消费类电子设备可以大致分为两类:富设备与瘦设备。富设备是指内存充裕、存储空间充裕的设备,一般能够支持rpc(remote procedure call,远程过程调用)/ipc(inter process communication,进程间通信),比如手机、液晶电视、车机、平板电脑、个人电脑等。瘦设备是指内存少、存储空间少的设备,一般只能通过发送消息的方式来支持远程通信的设备,比如,低端手表、耳机、智能眼镜、冰箱等设备。
3.由于产品硬件的不同导致提供给开发者的api(application programming interface,应用程序接口)亦不一样。比如,手机跟液晶电视通信,手机可以通过液晶电视提供的aidl(android interface definition language,android接口定义语言)接口启动液晶电视的显示组件,但是低端手表对开发者提供的接口可能是消息发送,晦涩难懂。如图1所示,开发者通过两套接口分别跟瘦设备与富设备进行通信。


技术实现要素:

4.有鉴于此,有必要提供一种基于代理服务的设备调用方法,其能将不同类型的电子设备的分布式服务接口进行统一,为开发者提供统一的api接口。
5.本技术实施例第一方面公开了一种基于代理服务的设备调用方法,应用于第一电子设备中,所述第一电子设备预先安装代理服务进程,所述代理服务进程兼容第一通信接口和第二通信接口,所述设备调用方法包括:当所述第一电子设备与第二电子设备组网成功时,接收所述第二电子设备的第一信息,所述第一信息包括所述第二电子设备的服务能力;基于所述第二电子设备的第一信息及所述第一电子设备的接口信息构建映射表,所述映射表包括所述第一电子设备的多个接口函数与所述第二电子设备的多个服务能力的映射关系;当发起对所述第二电子设备的服务能力调用请求时,获取与所述服务能力调用请求对应的接口函数;根据所述映射表与获取到的接口函数确定所述第二电子设备被调用的服务能力;从所述服务能力调用请求的参数意图中获取所述第二电子设备的设备id,并根据所述设备id确定所述第二电子设备的设备类型;若所述第二电子设备为第一类型设备,则使用所述第一通信接口的通信机制将所述参数意图传送至所述第二电子设备;若所述第二电子设备为第二类型设备,则对所述参数意图进行协议转换,并使用所述第二通信接口的通信机制将转换后的参数意图传送至所述第二电子设备;其中,所述第一电子设备为所述第一类型设备,所述参数意图包括一用来指定所述第二电子设备被调用的服务能力的参数。
6.通过采用该技术方案,可以将不同类型的电子设备的分布式服务接口进行统一,进而在进行分布式服务调度开发时可以不用在意被调用设备的设备类型,通过采用统一的
接口来访问不同类型的电子设备的设备服务,可以减少软件开发工具包种类的接入,降低开发门槛,提升开发体验。
7.在一种可能的实现方式中,所述设备调用方法还包括:当所述第一电子设备与所述第二电子设备组网成功时,根据预设设备id生成规则为所述第一电子设备与所述第二电子设备分配相应的设备id;其中,所述预设设备id生成规则包括第一生成规则及第二生成规则,所述第一生成规则用于进行所述第一类型设备的设备id生成,所述第二生成规则用于进行所述第二类型设备的设备id生成。通过采用该技术方案,为不同类型的电子设备分配不同类型的设备id,以实现通过设备id区分备类型。
8.在一种可能的实现方式中,所述当所述第一电子设备与第二电子设备组网成功时,接收所述第二电子设备的第一信息,包括:当所述第一电子设备与所述第二电子设备组网成功且监测到所述第二电子设备上线时,接收所述第二电子设备发送的第一信息。通过采用该技术方案,实现对被调用端进行上线监测。
9.在一种可能的实现方式中,所述第一电子设备包括用于与所述第二电子设备进行跨设备通信的第一软总线,所述第二电子设备包括用于与所述第一电子设备进行跨设备通信的第二软总线,所述接收所述第二电子设备发送的第一信息,包括:利用所述第一软总线接收由所述第二软总线发送过来的第一信息。通过采用该技术方案,利用软总线来实现设备间的数据传输。
10.在一种可能的实现方式中,所述第一信息还包括所述第二电子设备的设备id,所述设备调用方法还包括:基于所述第二电子设备的设备id与服务能力构建所述第二电子设备的服务能力的使能信息表;其中,所述使能信息表包括所述第二电子设备的每一服务能力的使能情形。通过采用该技术方案,构建被调用端的服务能力的使能信息表,实现将不同类型的电子设备的分布式服务接口进行统一。
11.在一种可能的实现方式中,所述根据所述映射表与获取到的接口函数确定所述第二电子设备被调用的服务能力的步骤之后,还包括:基于所述使能信息表判断所述第二电子设备被调用的服务能力是否使能;若所述第二电子设备被调用的服务能力是非使能,则返回调用异常提示信息。通过采用该技术方案,可实现判断是否能成功发起对被调用端的指定服务能力的调用。
12.在一种可能的实现方式中,所述基于所述第二电子设备的第一信息及所述第一电子设备的接口信息构建映射表,包括:将所述第二电子设备的多个服务能力与所述第一电子设备的多个接口函数建立一一对应的映射关系。通过采用该技术方案,构建被调用端的服务能力与调用发起端接口函数的映射关系,实现将不同类型的电子设备的分布式服务接口进行统一。
13.在一种可能的实现方式中,所述发起对所述第二电子设备的服务能力调用请求,包括:利用所述第一通信接口对所述代理服务进程发起分布式调度,以通过所述代理服务进程发起对所述第二电子设备的服务能力调用请求。通过采用该技术方案,利用代理服务进程来发起对被调用端的服务能力的调用,实现将不同类型的电子设备的分布式服务接口进行统一。
14.在一种可能的实现方式中,所述第一电子设备预先安装第一应用程序,所述利用所述第一通信接口对所述代理服务进程发起分布式调度,包括:
15.当所述第一应用程序请求对所述第二电子设备发起所述服务能力调用请求时,调用所述第一通信接口对所述代理服务进程发起分布式调度。通过采用该技术方案,对于不同类型的被调用端,开发者利用统一接口调用至代理服务进程,以发起分布式调用。
16.在一种可能的实现方式中,所述对所述参数意图进行协议转换,并使用所述第二通信接口的通信机制将转换后的参数意图传送至所述第二电子设备,包括:对所述参数意图中的多个指定参数进行格式转换,并使用sendmessage通信机制将转换后的多个所述指定参数传送至所述第二电子设备。通过采用该技术方案,利用代理服务进程实现将不同类型的被调用端的分布式服务接口进行统一。
17.在一种可能的实现方式中,多个所述指定参数包括服务id参数、指令id参数、身份id参数、调用发起端包名参数、被调用端包名参数、调用发起端签名参数及被调用端元能力名参数,其中,所述服务id参数用于指定所述第二电子设备的分布式服务,所述指令id参数用于指定所述第二电子设备被调用的服务能力,所述身份id参数用于进行发起端的身份鉴权,所述调用发起端包名参数用于指定所述第一电子设备上的调用发起应用的包名,所述被调用端包名参数用于指定所述第二电子设备上的被调用应用的包名,所述调用发起端签名参数用于指定所述第一电子设备的调用发起应用的签名信息,所述被调用端元能力名参数用于指定所述第二电子设备上的被调用应用的元能力名。通过采用该技术方案,利用代理服务进程实现将不同类型的电子设备的分布式服务接口进行统一。
18.在一种可能的实现方式中,所述对所述参数意图中的多个指定参数进行格式转换,包括:对所述参数意图中的多个所述指定参数进行tlv编码;将编码后的多个所述指定参数转换成restful格式。通过采用该技术方案,代理服务进程调用restful接口对第二类型设备进行分布式调用。
19.在一种可能的实现方式中,所述将编码后的多个所述指定参数转换成restful格式,包括:对编码后的多个所述指定参数进行加密;将加密后的多个所述指定参数转换成restful格式。通过采用该技术方案,代理服务进程调用restful接口对第二类型设备进行分布式调用,且对传输给第二类型设备的数据进行加密,提高数据传输安全。
20.在一种可能的实现方式中,所述使用sendmessage通信机制将转换后的多个所述指定参数传送至所述第二电子设备的步骤之后,包括:等待所述第二电子设备针对接收到多个所述指定参数返回的响应消息。通过采用该技术方案,代理服务进程与第二类型设备采用同步通信机制进行通信。
21.在一种可能的实现方式中,所述对所述参数意图进行协议转换,并使用所述第二通信接口的通信机制将转换后的参数意图传送至所述第二电子设备,包括:对所述参数意图中的多个指定参数进行格式转换,并使用postmessage通信机制将转换后的多个所述指定参数传送至所述第二电子设备。通过采用该技术方案,代理服务进程与第二类型设备采用异步通信机制进行通信。
22.在一种可能的实现方式中,所述使用所述第一通信接口的通信机制将所述参数意图传送至所述第二电子设备,包括:使用rpc通信机制将所述参数意图传送至所述第二电子设备。通过采用该技术方案,代理服务进程采用rpc机制与第一类型设备进行通信。
23.在一种可能的实现方式中,所述第一通信接口为aidl接口,所述第二通信接口为restful接口。通过采用该技术方案,代理服务进程采用不同的通信接口与不同类型的被调
用端进行通信。
24.第二方面,本技术实施例提供一种计算机可读存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如第一方面所述的基于代理服务的设备调用方法。
25.第三方面,本技术实施例提供一种电子设备,所述电子设备中至少安装代理服务进程,所述电子设备包括处理器和存储器,所述存储器用于存储指令,所述处理器用于调用所述存储器中的指令,使得所述电子设备执行如第一方面所述的基于代理服务的设备调用方法。
26.第四方面,本技术实施例提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面所述的基于代理服务的设备调用方法。
27.第五方面,提供一种装置,该装置具有实现上述第一方面所提供的方法中第一电子设备行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。
28.可以理解地,上述提供的第二方面所述的计算机可读存储介质,第三方面所述的电子设备,第四方面所述的计算机程序产品,第五方面所述的装置均与上述第一方面的方法对应,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
29.图1为现有技术中的分布式服务调用机制的场景示意图;
30.图2为本技术一实施例提供的基于代理服务进程实现跨设备调用的场景示意图;
31.图3a为本技术一实施例提供的第一电子设备对第三电子设备进行分布式调度的交互示意图;
32.图3b为本技术另一实施例提供的第一电子设备对第二电子设备进行分布式调度的交互示意图;
33.图4a为本技术一实施例提供的第一电子设备与第二电子设备的软件架构的组成示意图;
34.图4b为本技术另一实施例提供的第一电子设备与第三电子设备的软件架构的组成示意图;
35.图5为本技术一实施例提供的代理服务进程的功能模块示意图;
36.图6为本技术一实施例提供的第一电子设备与第三电子设备之间的数据交互图;
37.图7为本技术一实施例提供的第一电子设备对第三电子设备进行分布式调度的场景示意图;
38.图8为本技术另一实施例提供的第一电子设备对第二电子设备进行分布式调度的场景示意图;
39.图9为本技术实施例提供的一种基于代理服务的设备调用方法的流程示意图;
40.图10为本技术实施例提供的一种可能的第一电子设备的结构示意图。
具体实施方式
41.需要说明的是,本技术中“至少一个”是指一个或者多个,“多个”是指两个或多于两个。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。本技术的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不是用于描述特定的顺序或先后次序。
42.为了便于理解,示例性的给出了部分与本技术实施例相关概念的说明以供参考。
43.个人电脑、手持设备(如手机)、智能手表、智能眼镜等电子设备可以通过无线局域网络(wireless local area network,wlan)进行通信连接,例如,本技术实施例中的无线局域网络可以是wi-fi。
44.下面结合图2示例性的介绍本发明实施例提供的基于代理服务的设备调用场景图。
45.第一电子设备100预先安装有代理服务进程110,第一电子设备100为第一类型设备。当第一电子设备100与另一电子设备(例如,图2中的第二电子设备200、第三电子设备300)组网成功时,第一电子设备100可以通过代理服务进程110调用该电子设备。该电子设备可以是第一类型设备,也可以是第二类型设备。
46.在一些实施例中,第一类型设备可以是指内存充裕、存储空间充裕的电子设备,第一类型设备一般可以通过rpc(remote procedure call,远程过程调用)或ipc(inter process communication,进程间通信)来实现进程间通信,第一类型设备具有第一通信接口,比如第一通信接口为aidl(android interface definition language,android接口定义语言)接口。第一类型设备可以包括手机、液晶电视、车机、平板电脑、个人电脑等。
47.第二类型设备可以是指内存少、存储空间少的电子设备,第二类型设备一般只能通过发送消息(比如sendmessage/postmessage)的方式来实现进程间通信,第二类型设备具有第二通信接口,比如第二通信接口为restful(representational state transfer,表现层状态转换)接口。第二类型设备可以包括低端智能手表、无线耳机、智能眼镜、智能冰箱等。
48.在一些实施例中,代理服务进程110可以被封装成软件安装包并在第一电子设备100上进行安装与运行,第一电子设备100利用代理服务进程110可以实现代理服务,例如,支持aidl接口以及restful接口的调用。当第一电子设备100需调用该电子设备上的一个服务功能时,第一电子设备100可以通过aidl接口调用代理服务进程110,再由代理服务进程110调用该电子设备的相应接口,并将对该服务功能的调用请求转发至该电子设备。因此,开发者仅需采用一种类型的通信接口与代理服务进程通信即可实现对具备不同类型接口的电子设备中的服务功能进行调用,无需在进行服务功能调用前,先识别另一电子设备(例如,第二电子设备200、第三电子设备300)的设备类型,也无需准备多种设备类型的api。
49.如图2所示,假设第一电子设备100和第二电子设备200均为第一类型设备,第三电子设备300为第二类型设备。当第一电子设备100和第二电子设备200组网成功且第一电子设备100需调用第二电子设备200上的服务功能时,第一电子设备100采用aidl接口调用代理服务进程110,代理服务进程110再以aidl接口调度第二电子设备200。当第一电子设备100和第三电子设备300组网成功且第一电子设备100需调用第三电子设备300上的服务功
能时,第一电子设备100采用aidl接口调用代理服务进程110,代理服务进程110再以restful接口调度第三电子设备300。
50.下面结合图3a与3b示例性的介绍本发明实施例提供的基于代理服务的设备调用交互过程。
51.为便于下文描述,在下文所述的应用场景中,第一电子设备100预先安装有代理服务进程110,第一电子设备100为第一类型设备,第三电子设备300为第二类型设备,第一电子设备100还安装有第一应用程序,第三电子设备300安装有第二应用程序。如图3a所示,第一电子设备100通过代理服务进程110调度第三电子设备300的过程具体可包括:
52.11、第一电子设备100与第三电子设备300进行组网(比如处于同一局域网下),在第一电子设备100与第三电子设备300组网成功后,第三电子设备300发送上线消息至第一电子设备100的代理服务进程110。
53.12、第三电子设备300将第一信息传送给第一电子设备100的代理服务进程110,第一信息包含有第三电子设备300可对外提供的服务能力。
54.13、代理服务进程110基于第三电子设备300的第一信息及第一电子设备100的接口信息构建映射表,该映射表包括第一电子设备100的多个接口函数与第三电子设备300的多个服务能力的映射关系。
55.14、当第一电子设备100上的第一应用程序发起对第三电子设备300上的第二应用程序的分布式调度时,第一应用程序通过aidl接口调用代理服务进程110。
56.15、代理服务进程110获取与本次分布式调度匹配的接口函数,并根据映射表与获取到的接口函数确定第三电子设备300本次被调用的服务能力。
57.16、代理服务进程110从本次分布式调度的参数意图中获取第三电子设备300的设备id,并根据第三电子设备300的设备id确定第三电子设备300为第二类型设备。
58.17、代理服务进程110对参数意图中的多个参数进行参数配置,包括将参数意图中的多个参数转换成restful格式。
59.18、代理服务进程110使用restful接口的通信机制(如sendmessage)将配置后的参数意图传送至第三电子设备300。
60.在另一种场景下,第一电子设备100预先安装有代理服务进程110,第一电子设备100与第二电子设备200均为第一类型设备,第一电子设备100与第二电子设备200还均安装有第二应用程序。如图3b所示,第一电子设备100通过代理服务进程110分布调度第二电子设备200的过程为:
61.21、第一电子设备100与第二电子设备200进行组网,在第一电子设备100与第二电子设备200组网成功后,第二电子设备200发送上线消息至第一电子设备100。
62.22、第二电子设备200将第一信息传送给第一电子设备100的代理服务进程110,第一信息包含有第二电子设备200可对外提供的服务能力。
63.23、代理服务进程110基于第二电子设备200的第一信息及第一电子设备100的接口信息构建映射表,该映射表包括第一电子设备100的多个接口函数与第二电子设备200的多个服务能力的映射关系。
64.24、当第一电子设备100上的第一应用程序发起对第二电子设备200上的第一应用程序的分布式调度时,第一电子设备100上的第一应用程序通过aidl接口调用代理服务进
程110。
65.25、代理服务进程110获取与本次分布式调度匹配的接口函数,并根据映射表与获取到的接口函数确定第二电子设备200本次被调用的服务能力。
66.26、代理服务进程110从本次分布式调度的参数意图中获取第二电子设备200的设备id,并根据第二电子设备200的设备id确定第二电子设备200为第一类型设备。
67.27、代理服务进程110使用aidl接口的通信机制(如rpc)将参数意图传送至第二电子设备200。
68.本技术通过调用发起端(例如上文所述的第一电子设备100)上安装的代理服务进程来统一不同类型的设备的服务接口,由代理服务进程来转发调用请求至被调用端(例如上文所述的第二电子设备200),无需先区分被调用端的设备类型。
69.请参考图4a,为本技术一实施例提供的第一电子设备100对第二电子设备200进行分布式调度的软件架构示意图。
70.第一电子设备100与第二电子设备200均为第一类型设备。第一电子设备100包括代理服务进程110、第一应用程序111、第一分布式调度单元112及第一软总线113,第二电子设备200包括代理服务进程110、第二应用程序114、第二分布式调度单元115及第二软总线116。
71.代理服务进程110可以提供统一的跨设备分布式api,使得开发者无需关注被调用的电子设备的设备类型,实现通过统一的分布式api来完成跨设备交互。第一应用程序111与第二应用程序114可以根据实际的应用需求进行确定,在此不作限定,比如第一应用程序111与第二应用程序114可以是地图类app、外卖类app、电商类app等。第一分布式调度单元112与第二分布式调度单元115可以实现设备启动、跨设备服务调用等。第一软总线113与第二软总线116可以提供跨设备通信、设备上线监测、设备下线监测、设备信息查询等功能。
72.当第一电子设备100上的第一应用程序111发起对第二电子设备200上的第二应用程序114的分布式调度时,第一应用程序111输出的分布式调度请求可以通过第一分布式调度单元112传递至第一电子设备100上的代理服务进程110,代理服务进程110可以将该分布式调度请求的参数意图通过第一软总线113传送至第二电子设备200,比如第一软总线113将参数意图通过rpc传送至第二软总线116。第二软总线116可以将接收到的参数意图通过第二分布式调度单元115传递至第二应用程序114,使得第二应用程序114可以响应第一应用程序111发起的分布式调度。
73.相应地,当第二电子设备200上的第二应用程序114发起对第一电子设备100上的第一应用程序111的分布式调度时,第二应用程序114输出的分布式调度请求可以通过第二分布式调度单元115传递至第二电子设备200上的代理服务进程110,代理服务进程110可以将该分布式调度请求的参数意图通过第二软总线116传送至第一电子设备100,比如第二软总线116将参数意图通过rpc传送至第一软总线113。第一软总线113可以将接收到的参数意图通过第一分布式调度单元112传递至第一应用程序111,使得第一应用程序111可以响应第二应用程序114发起的分布式调度。
74.在一些实施例中,当第一电子设备100与第二电子设备200组网成功时,第一软总线113与第二软总线116可以根据预设设备id生成规则分别为第一电子设备100与第二电子设备200分配相应的设备id。所述预设设备id生成规则可以包括第一生成规则及第二生成
规则,所述第一生成规则用于进行第一类型设备的设备id生成,所述第二生成规则用于进行第二类型设备的设备id生成,进而后续可以实现根据获取到的设备id来判断被调用端是第一类型设备还是第二类型设备。比如,所述第一生成规则用于为第一类型设备的电子设备生成两位数的设备id,所述第二生成规则用于为第二类型设备的电子设备生成三位数的设备id。
75.请参考图4b,为本技术一实施例提供的第一电子设备100对第三电子设备300进行分布式调度的软件架构示意图。
76.第一电子设备100为第一类型设备,第三电子设备300为第二类型设备。第一电子设备100包括代理服务进程110、第一应用程序111、第一分布式调度单元112及第一软总线113,第三电子设备300包括第二应用程序114、第二分布式调度单元115及第二软总线116。
77.当第一电子设备100上的第一应用程序111发起对第三电子设备300上的第二应用程序114的分布式调度时,第一应用程序111输出的分布式调度请求可以通过第一分布式调度单元112传递至第一电子设备100上的代理服务进程110,代理服务进程110可以对该分布式调度请求的参数意图进行参数配置,并通过第一软总线113将经过参数配置处理后的参数意图传送至第三电子设备300,比如,第一软总线113将经过参数配置处理后的参数意图通过sendmessage传送至第二软总线116。第二软总线116可以将接收到的参数意图通过第二分布式调度单元115传递至第二应用程序114,使得第二应用程序114可以响应第一应用程序111发起的分布式调度。
78.本技术通过在第一类型设备上设置代理服务进程来执行代理服务机制,被调用端的设备服务能力由第一类型设备代理,开发者仅需使用aidl接口与代理服务进程进行通信,最终由代理服务进程选择采用aidl形式与被调用端(被调用端为第一类型设备)进行通信,或者采用restful形式与被调用端(被调用端为第二类型设备)进行通信。
79.如图5所述,代理服务进程110可以被分割成服务同步单元1101、函数映射单元1102、调用转发单元1103及协议转换单元1104。
80.当第一电子设备100与第二电子设备200组网成功且第一电子设备100利用第一软总线113监测到第二电子设备200上线(即加入组网环境中)时,第二电子设备200通过第二软总线116将服务能力与设备id传送至第一电子设备100的代理服务进程110,服务同步单元1101可以基于第二电子设备200的设备id与服务能力构建第二电子设备200的服务能力的使能信息表。
81.例如,第二电子设备200的设备id为id11,第二电子设备200的服务能力包括启动应用能力(startfa)、停止应用能力(stopfa)、更新应用能力(updatefa)、安装应用能力(installfa)。服务同步单元1101可以为第二电子设备200构建的服务能力的使能信息表为:“id11:startfa:1;stopfa:1;updatefa:1;installfa:1”。“startfa:1”表示启动fa能力是使能的。
82.又如,第三电子设备300的设备id为id12,第三电子设备300的服务能力包括启动应用能力、停止应用能力、更新应用能力。服务同步单元1101可以为第三电子设备300构建的服务能力的使能信息表为:“id12:startfa:1;stopfa:1;updatefa:1;installfa:0”。“installfa:0”表示安装应用能力是非使能的。代理服务进程110在响应针对该第三电子设备300的分布式调度请求时,可以通过查询该使能信息表即可得知被调用端的服务能力的
使能情形,并判断第三电子设备300是否能成功响应该分布式调度请求。
83.在一些实施例中,当第一电子设备100发起对第三电子设备300的服务能力sa1的分布式调度时,代理服务进程110可以先基于该使能信息表判断第三电子设备300的服务能力sa1是否使能。若第三电子设备300的服务能力sa1是使能的,则代理服务进程110可以继续执行后续的调用操作,比如从参数意图中获取第三电子设备300的设备id。若第三电子设备300的服务能力sa1是非使能的,表明第三电子设备300无法响应服务能力sa1的分布式调度,可以直接返回调用异常提示信息。比如,可以在第一电子设备100的显示屏上输出调用异常提示。
84.函数映射单元1102可以基于第二电子设备200的第一信息及第一电子设备100的接口信息构建映射表。该映射表可以包括第一电子设备100的多个接口函数与第二电子设备200的多个服务能力的映射关系。第二电子设备200的多个服务能力与第一电子设备100的多个接口函数可建立一一对应的映射关系。比如,第二电子设备200包括4个服务能力,函数映射单元1102将第二电子设备200的4个服务能力与第一电子设备100的4个接口函数建立一一对应的映射关系。
85.可以理解,函数映射单元1102同样可以基于第三电子设备300的第一信息及第一电子设备100的接口信息构建映射表。
86.举例而言,第一电子设备100对外提供的aidl接口信息定义为:
87.interface distributescheduleinterface{
88.void startfa(intent intent)
89.void stopfa(intent intent)
90.void updatefa(intent intent)
91.void installfa(intent intent)
92.}。
93.函数映射单元1102可以根据第一电子设备100的aidl接口信息及第二电子设备200的服务能力构建得到包括如下映射关系的映射表:
94.functionmap_[start_fa]=&distributedschedstub::startfa;
[0095]
functionmap_[stop_fa]=&distributedschedstub::stopfa;
[0096]
functionmap_[update_fa]=&distributedschedstub::updatefa;
[0097]
functionmap_[install_fa]=&distributedschedstub::installfa。
[0098]
当第一电子设备100发起对第二电子设备200的服务能力的分布式调度时,调用转发单元1103可以根据函数映射单元1102构建的映射表确定第二电子设备200被调用的服务能力。调用转发单元1103还可以从本次分布式调度请求的参数意图中获取第二电子设备200的设备id,进而可以基于第二电子设备200的设备id确定第二电子设备200是第一类型设备还是第二类型设备。由于第二电子设备200是第一类型设备,则调用转发单元1103可以直接使用第一通信接口的通信机制与第二电子设备200通信,比如采用dbinder的rpc与第二电子设备200进行通信。
[0099]
当第一电子设备100发起对第三电子设备300的服务能力的分布式调度时,由于第三电子设备300是第二类型设备,第一电子设备100无法使用rpc与第三电子设备300通信,需先通过协议转换单元1104对传送给第三电子设备300的参数意图进行协议转换,再使用
第二通信接口的通信机制与第三电子设备300通信,比如采用sendmessage与第三电子设备300进行通信。
[0100]
在一些实施例中,所述协议转换可以包括:对参数意图中的多个参数进行反序列化处理及将经过反序列化处理的参数转换成restful格式。比如,可以使用xml格式或者json格式定义来将经过反序列化处理的参数转换成restful格式。所述参数意图中的每一参数的定义可以如下表1所示:
[0101]
表1
[0102][0103][0104]
在上表1中,datapayload参数可以是指参数意图中除了序号1-8参数以外的其他信息。
[0105]
在一些实施例中,协议转换单元1104可以将所述参数意图中的多个指定参数转换为restful格式,该多个转换为restful格式的参数可以通过sendmessage通信机制传送至属于第二类型设备的电子设备。该多个指定参数可以包括serviceid参数、commandid参数、uid参数、callingpkgname参数、calledpkgname参数、signatureinfo参数及abilityname参数。
[0106]
如图6所示,为第一电子设备100与第三电子设备300之间的数据交互图。第一电子设备100为第一类型设备,第三电子设备300为第二类型设备。第一电子设备100与第三电子设备300之间的数据交互过程为:
[0107]
31、当用户在第一电子设备100的应用a上选择分布式调度第三电子设备300的应用b时,例如,该分布式调度为启动第三电子设备300的应用b,触发调用startfa。
[0108]
32、应用a通过aidl接口的ipc通信机制调用代理服务进程110。
[0109]
33、代理服务进程110接收此次调用并获取应用a的uid。
[0110]
34、通过uid从包管理服务中获取应用a的包名(callingpkgname)。
[0111]
35、通过映射表获取commandid与serviceid。
[0112]
36、从包管理服务中获取应用a的签名信息(signatureinfo)。
[0113]
37、从参数意图中解析出deviceid、calledpkgname及abilityname。
[0114]
38、利用tlv(type,length,value)编码算法对上述参数(uid、callingpkgname、commandid、serviceid、signatureinfo、deviceid、calledpkgname及abilityname)进行编码。
[0115]
39、对编码后的参数进行加密并且将加密参数转换为restful格式。
[0116]
40、调用消息传递函数传送restful格式的参数至第三电子设备300。
[0117]
41、对接收到的消息进行解密。
[0118]
42、利用tlv解码算法对解密得到的参数进行解码。
[0119]
43、进行uid鉴权及包名白名单鉴权,获取应用b的签名信息,并跟应用a的签名信息进行比较实现签名鉴权。
[0120]
44、当上述鉴权(uid鉴权、包名白名单鉴权及签名鉴权)均通过时,表明第三电子设备300可以响应该分布式调度,此时调用startfa函数启动第三电子设备300的应用b。
[0121]
在一些实施例中,uid鉴权的策略可以是判断uid是否小于或等于1000,以确定应用a是否是调用发起端的系统应用,如果uid小于或等于1000,则uid鉴权通过;包白名单名鉴权的策略可以是判断应用的包名是否预设白名单内的应用,若处于预设白名单内,则该应用为拥有特权的第三方应(比如可以发起分布式调度的应用),则包名白名单鉴权通过;签名鉴权的策略可以是分布式调用发起端的发起应用的签名信息是否与被调用端的被调用应用的签名信息相同,如果相同,则签名鉴权通过。
[0122]
在一些实施例中,数据交换过程步骤44中也可以仅进行uid鉴权、包名白名单鉴权及签名鉴权中的一种或两种鉴权。
[0123]
在一些实施例中,可以根据实际需求来选定对编码后的参数进行加密的加密算法及对接收到的消息进行解密的解密算法。当编码后的参数不包含有敏感信息(需进行保密的信息)时,还可省去对编码后的参数进行加、解密的操作。
[0124]
在一些实施例中,对参数进行tlv进行编码可以包括:设置参数的类型名称、读取字段长度及设置参数的类型值,比如,若参数的类型是string,可以将string16转换成string8。对解密得到的参数进行tlv解码可以包括:读取参数的类型名称、读取字段长度及读取参数的类型值。
[0125]
在一些实施例中,若消息传递函数是采用同步通信方式来传送restful格式的参数至第三电子设备300,则在将消息传送至第三电子设备300后,需等待第三电子设备300针对接收到restful格式的参数返回的响应消息。比如,若使用sendmessage函数将restful格式的参数传送至第三电子设备300后,需继续等待第三电子设备300针对接收到restful格式的参数返回的响应消息。
[0126]
若消息传递函数是采用异步通信方式来传送restful格式的参数至第三电子设备300,则在将消息传送至第三电子设备300后,无需等待响应消息。比如,若使用postmessage函数将restful格式的参数传送至第三电子设备300,则无需等待响应消息。
[0127]
实施例一
[0128]
在实施例一中,第一电子设备100为第一类型设备,第三电子设备300为第二类型设备。如图7所示,第一电子设备100为手机,第三电子设备300为智能手表。手机中安装有代理服务进程110及地图应用b1,智能手表安装有地图应用b2,实施例一可以实现手机与智能手表的联动导航,包括,但不限于:启动地图应用b1进行导航、更新导航信息及结束导航。具体地,手机与智能手表进行联动导航的过程可以包括:
[0129]
51、手机与智能手表组网成功,手机的软总线与智能手表的软总线分别生成各自的设备id。
[0130]
52、智能手表将自身的服务能力通过软总线同步到手机的代理服务进程110中。
[0131]
53、代理服务进程110基于智能手表的服务能力构建映射表,该映射表包括手机的多个接口函数与智能手表的多个服务能力的映射关系。
[0132]
54、用户打开手机上的地图应用b1并点击地图应用b1上的导航互助图标发起对智能手表的分布式导航调度。
[0133]
55、手机调用startfa。
[0134]
56、代理服务进程根据映射表与startfa确定智能手表本次被调用的服务能力。
[0135]
57、代理服务进程对参数意图进行协议转换。
[0136]
58、代理服务进程调用restful接口启动智能手表的导航应用b2。
[0137]
59、随着地理位置信息的不断变化,手机调用updatefa更新导航界面信息。
[0138]
60、代理服务进程根据映射表与updatefa确定智能手表本次被调用的服务能力。
[0139]
61、代理服务进程对参数意图进行协议转换。
[0140]
62、代理服务进程调用restful接口更新智能手表的导航应用b2的显示信息。
[0141]
63、用户导航结束,点击手机中地图应用b1的导航结束图标。
[0142]
64、手机调用stopfa。
[0143]
65、代理服务进程根据映射表与stopfa确定智能手表本次被调用的服务能力。
[0144]
66、代理服务进程对参数意图进行协议转换。
[0145]
67、代理服务进程调用restful接口关闭智能手表的导航应用b2。
[0146]
实施例二
[0147]
在实施例二中,第一电子设备100与第二电子设备200均为第一类型设备。如图8所示,第一电子设备100为手机,第二电子设备200为智能电视。手机中安装有代理服务进程110及聊天应用c1,智能电视安装有聊天应用c2,实施例二可以实现手机投屏至智能电视。具体地,手机与智能电视进行实时投屏显示的过程可以包括:
[0148]
71、手机与智能电视组网成功,手机的软总线与智能电视的软总线分别生成各自的设备id。
[0149]
72、智能电视将自身的服务能力通过软总线同步到手机的代理服务进程110中。
[0150]
73、代理服务进程110基于智能电视的服务能力构建映射表,该映射表包括手机的多个接口函数与智能电视的多个服务能力的映射关系。
[0151]
74、用户打开手机上的聊天应用c1并点击聊天应用c1上的投屏互助图标发起对智能电视的分布式投屏调度。
[0152]
75、手机调用startfa。
[0153]
76、代理服务进程根据映射表与startfa确定智能电视本次被调用的服务能力。
[0154]
77、代理服务进程调用aidl接口启动智能电视的聊天应用c2。
[0155]
78、随着聊天应用的聊天窗口内容更新,手机调用updatefa更新聊天窗口信息。
[0156]
79、代理服务进程根据映射表与updatefa确定智能电视本次被调用的服务能力。
[0157]
80、代理服务进程调用aidl接口更新智能电视的聊天应用c2的显示信息。
[0158]
81、用户会话结束,点击手机中聊天应用c1的会话结束图标。
[0159]
82、手机调用stopfa。
[0160]
83、代理服务进程根据映射表与stopfa确定智能电视本次被调用的服务能力。
[0161]
84、代理服务进程调用aidl接口关闭智能电视的聊天应用c2。
[0162]
参照图9所示,本技术实施例提供的一种基于代理服务的设备调用方法,应用于第一电子设备100中,该第一电子设备100可以支持局域网络,第一电子设备100为第一类型设备,该第一电子设备100中至少安装有代理服务进程110。代理服务进程110兼容第一通信接口和第二通信接口。本实施例中,基于代理服务的设备调用方法包括:
[0163]
901、当第一电子设备100与第二电子设备200组网成功时,接收第二电子设备200的第一信息,所述第一信息包括第二电子设备200的服务能力。
[0164]
902、基于第二电子设备200的第一信息及第一电子设备100的接口信息构建映射表,所述映射表包括第一电子设备100的多个接口函数与第二电子设备200的多个服务能力的映射关系。
[0165]
903、当发起对第二电子设备200的服务能力调用请求时,获取与所述服务能力调用请求对应的接口函数。
[0166]
904、根据所述映射表与获取到的接口函数确定第二电子设备200被调用的服务能力。
[0167]
905、从所述服务能力调用请求的参数意图中获取第二电子设备200的设备id,并根据所述设备id确定第二电子设备200的设备类型。所述参数意图包括用来指定第二电子设备200本次被调用的服务能力的参数。若第二电子设备200为第一类型设备,则执行s906。若第二电子设备200为第二类型设备,则执行s907。
[0168]
906、使用第一通信接口的通信机制将所述参数意图传送至第二电子设备200。
[0169]
907、对所述参数意图进行协议转换,并使用第二通信接口的通信机制将转换后的参数意图传送至第二电子设备200。
[0170]
请参考图10,为本技术实施例提供的第一电子设备100的硬件结构示意图。如图10所示,第一电子设备100可以包括处理器1001、存储器1002及通信总线1003。存储器1002用于存储一个或多个计算机程序1004。一个或多个计算机程序1004被配置为被该处理器1001执行。该一个或多个计算机程序1004包括指令,上述指令可以用于执行上述实施例中第一电子设备执行的各个步骤,以实现在第一电子设备中执行基于代理服务的设备调用方法。
[0171]
可以理解的是,本实施例示意的结构并不构成对第一电子设备100的具体限定。在另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。
[0172]
处理器1001可以包括一个或多个处理单元,例如:处理器1001可以包括应用处理器(application processor,ap),调制解调器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,视频编解码器,数字信号
处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
[0173]
处理器1001中还可以设置有存储器,用于存储指令和数据。在一些实施例中,处理器1001中的存储器为高速缓冲存储器。该存储器可以保存处理器1001刚用过或循环使用的指令或数据。如果处理器1001需要再次使用该指令或数据,可从该存储器中直接调用。避免了重复存取,减少了处理器1001的等待时间,因而提高了系统的效率。
[0174]
在一些实施例中,处理器1001可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,i2c)接口,集成电路内置音频(inter-integrated circuit sound,i2s)接口,脉冲编码调制(pulse code modulation,pcm)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,uart)接口,移动产业处理器接口(mobile industry processor interface,mipi),通用输入输出(general-purpose input/output,gpio)接口,sim接口,和/或usb接口等。
[0175]
在一些实施例中,存储器1002可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0176]
本实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的基于代理服务的设备调用方法。
[0177]
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的基于代理服务的设备调用方法。
[0178]
另外,本技术的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的基于代理服务的设备调用方法。
[0179]
其中,本实施例提供的第一电子设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
[0180]
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
[0181]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0182]
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0183]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0184]
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0185]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献