CN115454454A - 应用部署方法、分布式操作系统、电子设备及存储介质 - Google Patents
应用部署方法、分布式操作系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115454454A CN115454454A CN202110640601.9A CN202110640601A CN115454454A CN 115454454 A CN115454454 A CN 115454454A CN 202110640601 A CN202110640601 A CN 202110640601A CN 115454454 A CN115454454 A CN 115454454A
- Authority
- CN
- China
- Prior art keywords
- capability
- target
- module
- capability module
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 143
- 238000009434 installation Methods 0.000 claims abstract description 132
- 230000006870 function Effects 0.000 claims abstract description 69
- 230000004044 response Effects 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 18
- 238000013461 design Methods 0.000 description 39
- 238000012545 processing Methods 0.000 description 37
- 230000003993 interaction Effects 0.000 description 17
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 238000007726 management method Methods 0.000 description 14
- 239000011521 glass Substances 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 230000003190 augmentative effect Effects 0.000 description 6
- 230000006855 networking Effects 0.000 description 6
- 241001417527 Pempheridae Species 0.000 description 5
- 230000002452 interceptive effect Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 2
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/24—Negotiation of communication capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种应用部署方法、分布式操作系统、电子设备及存储介质,涉及电子设备领域。其中,该方法应用于第一设备,第一设备与第二设备连接;第一设备包括第一应用,第一应用包括可用于安装的多个能力模块;能力模块具有实现一个或多个功能的能力。该方法包括:第一设备根据第二设备的能力信息,从第一应用包括的多个能力模块中确定适合第二设备安装的第一目标能力模块。第一设备向第二设备发送第一目标能力模块。该方法可以大大减少应用安装包在第二设备上所占用的存储资源,而且还可以解决一些无法联网的第二设备的应用部署问题。
Description
技术领域
本申请实施例涉及电子设备领域,尤其涉及一种应用部署方法、分布式操作系统、电子设备及存储介质。
背景技术
分布式操作系统是指由多个物联网(internet of things,IOT)设备通过分布式网络连接组成的新一代全场景操作系统。分布式操作系统中,不同的IOT设备之间可以高效灵活协同工作。分布式操作系统中的各IOT设备之间要实现协同工作,需要每个IOT设备安装相应的应用来支持IOT设备之间的协同功能。
目前,在分布式操作系统中的各IOT设备上安装应用的一种方式为:各IOT设备的厂商在IOT设备出厂前预装相应的应用。但这种方式中,很多IOT设备本身的存储资源有限,无法同时预装大量的应用,而且,IOT设备上预装的应用无法及时更新。
另一种方式为:IOT设备联网从服务器(如应用市场的服务器)中下载相应的应用,但这种方式中部分无法联网的IOT设备无法从服务器下载应用。而且,当分布式操作系统中的IOT设备数量较多时,大量的IOT设备从服务器下载应用还会增加服务器的负载压力。
发明内容
本申请实施例提供一种应用部署方法、分布式操作系统、电子设备及存储介质,可以大大减少应用安装包在IOT设备上所占用的存储资源,还可以解决一些无法联网的IOT设备的应用部署问题。
第一方面,本申请实施例提供一种应用部署方法,所述方法应用于第一设备。第一设备与第二设备连接;第一设备包括第一应用,第一应用包括可用于安装的多个能力模块;每个能力模块具有实现一个或多个功能的能力。所述方法包括:
第一设备根据第二设备的能力信息,从第一应用包括的多个能力模块中确定适合第二设备安装的第一目标能力模块。第一设备向第二设备发送第一目标能力模块。
其中,第一设备和第二设备均为IOT设备。
第一设备可以是设备资源(如CPU资源、内存资源、存储资源等)较为丰富,可独立联网和人机交互的IOT设备,如:第一设备可以是手机、平板电脑、笔记本电脑等IOT设备。
第二设备可以是手机、平板电脑、手写板、可穿戴设备(如手表、手环、耳机)、大屏(如智慧屏)、笔记本电脑、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备(如VR眼镜)、汽车(或车载设备)、摄像头、扫地机、电饭煲、音响、跑步机、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等中的任意一种IOT设备。例如,第二设备可以是相对于第一设备而言,设备资源较少,无法独立联网和/或人机交互的IOT设备,如:第二设备可以是手写板、耳机、VR眼镜、车载设备、电饭煲、音响、跑步机等。或者,第二设备也可以与第一设备相同,是设备资源较为丰富,可独立联网和人机交互的IOT设备。
该方法中,第一设备中的应用安装包按不同维度被拆分为一个或多个能力模块,第一设备与第二设备进行交互,实现在第二设备上部署相应的能力模块,支持第二设备实现对应的功能,一方面可以大大减少应用安装包在第二设备上所占用的存储资源。另一方面,还可以解决一些无法联网的第二设备的应用部署问题。
在一种可能的设计中,所述第一设备根据第二设备的能力信息,从第一应用包括的多个能力模块中确定适合第二设备安装的第一目标能力模块之前,所述方法还包括:
第一设备接收来自第二设备的第一消息,第一消息包括第二设备的能力信息。
本设计中,第二设备的能力信息可以是通过第一消息上报给第一设备的,从而第一设备可以根据第二设备的能力信息,从第一应用包括的多个能力模块中确定适合第二设备安装的第一目标能力模块。
示例性地,第一设备和第二设备中可以分别包括一个分布式网络模块,第二设备接入第一设备所在的分布式网络时,第二设备通过自己的分布式网络模块得知第一设备包括分布式应用安装包,从而,第二设备可以主动向第一设备发送第一消息。其中,分布式网络模块可以是一个单独的芯片,或者,集成在IOT设备中的处理器中的一个软件模块。
可选地,第二设备接入第一设备所在的分布式网络的情况可以包括:第二设备第一次接入第一设备所在的分布式网络,和/或,第二设备与第一设备所在的分布式网络断开连接后再次接入。例如,第二设备掉电或关机后可能会与第一设备所在的分布式网络断开连接,之后,当第二设备再次上电或开机时,第二设备可以向第一设备发送第一消息。
在另一种可能的设计中,所述第一设备接收来自第二设备的第一消息之前,所述方法还包括:
第一设备向第二设备发送查询请求消息,查询请求消息用于查询第二设备的能力信息。
本设计中,第一设备可以主动向第二设备发送查询请求消息,以触发第二设备根据查询请求消息向第一设备返回第一消息。
一些实现方式中,所述第一设备向第二设备发送查询请求消息,包括:
当第二设备与第一设备建立连接时,第一设备向第二设备发送查询请求消息。
本实现方式中,第一设备向第二设备发送查询请求消息的触发条件为:第二设备与第一设备建立连接。例如,当第二设备接入第一设备所在的局域网时,第一设备可以检测到第二设备的接入。第一设备检测到第二设备接入时,可以主动向第二设备发送查询请求消息。
另外一些实现方式中,所述第一设备向第二设备发送查询请求消息,包括:
第一设备显示第一界面,第一界面包括一个或多个第二设备的设备标识;第一设备接收第一操作,第一操作为在第一界面选择第二设备的设备标识的操作;第一设备响应于第一操作,向第二设备发送查询请求消息。
本实现方式中,第一设备向第二设备发送查询请求消息的触发条件为:第一设备接收到第一操作。例如,第一操作为用户主动在第一界面选择向哪个或哪些第二设备发送查询请求消息,第一设备可以响应于用户的第一操作,向用户主动选择的第二设备发送查询请求消息。
一些实施例中,第一应用包括的每个能力模块包括能力模块对应的配置清单;第一设备根据第二设备的能力信息,从第一应用包括的多个能力模块中确定适合第二设备安装的第一目标能力模块,包括:
第一设备根据第二设备的能力信息、以及第一应用包括的每个能力模块对应的配置清单,从第一应用包括的多个能力模块中确定适合第二设备安装的第一目标能力模块。
示例性地,每个能力模块对应的配置清单包括能力模块适合的设备类型、能力模块适合的设备类型对应的最低设备版本要求、能力模块适合的最低设备等级、能力模块所需要的硬件能力要求、能力模块支持的中央处理器应用程序二进制接口CPU-ABI类型、以及能力模块适用的场景类型中的一种或多种。
示例性地,第二设备的能力信息包括第二设备的设备类型、设备版本、设备等级、设备硬件能力、以及CPU-ABI类型中的一种或多种。
其中,设备等级可以是根据IOT设备的资源是否丰富、IOT设备是否可以独立联网和/或人机交互等因素进行划分的。如:可以根据IOT设备的运行内存(random accessmemory,RAM)、存储性内存(read only memory,ROM)、CPU等的能力,将IOT设备划分为零级至五级,分别对应L0至L5,IOT设备的等级越高,性能越强。在此对IOT设备等级的划分方式不作限制。
在一种可能的设计中,所述第一设备向第二设备发送第一目标能力模块之前,所述方法还包括:
第一设备向第二设备发送第一目标能力模块的属性信息;第一设备接收来自第二设备的下载请求消息,下载请求消息包括第一目标能力模块的标识信息。
示例性地,第一目标能力模块的属性信息包括以下一种或多种:第一目标能力模块的能力名称、版本信息、能力类型、第一目标能力模块的大小、第一目标能力模块在第一设备上的使用次数、第一目标能力模块所需要的权限。
本设计中,第二设备可以根据第一目标能力模块的属性信息,决策是否安装第一目标能力模块。当第二设备决策安装第一目标能力模块时,可以向第一设备发送下载请求消息,下载请求消息包括第一目标能力模块的标识信息。第一设备接收到下载请求消息后,可以向第二设备发送第一目标能力模块。
在另一种可能的设计中,所述方法还包括:第一设备显示第二界面,第二界面包括第一目标能力模块的安装提示;第一设备接收第二操作,第二操作为选择安装第一目标能力模块的操作;第一设备响应于第二操作,向第二设备发送第二消息,第二消息用于指示第二设备安装第一目标能力模块。
本设计中,用户可以在第一设备提供的第二界面上选择是否在第二设备上安装第一目标能力模块。第一设备接收到用户选择安装第一目标能力模块的操作(即第二操作)时,可以通过第二消息指示第二设备对第一目标能力模块进行安装。
一些实施例中,第一设备还与第三设备连接;所述方法还包括:第一设备根据第三设备的能力信息,从第一应用包括的多个能力模块中确定适合第三设备安装的第二目标能力模块;第一设备向第三设备发送第二目标能力模块。
可选地,第一目标能力模块和第二目标能力模块相同或不同。
也即,本实施例中,第一设备可以与第二设备、第三设备等多个不同的设备连接。第一设备可以根据与其连接的不同设备的能力信息,从第一应用包括的多个能力模块中确定适合每个设备安装的目标能力模块,并向每个设备发送适合该设备安装的目标能力模块。
可以理解的,第一设备与第三设备,甚至第四设备、第五设备等进行交互的具体实现逻辑,可以参考上述第一设备与第二设备的交互逻辑,在此不再赘述。
第二方面,本申请实施例提供一种应用部署装置,该装置可以应用于第一设备,用于实现上述第一方面所述的应用部署方法。该装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,该装置可以包括:发送单元、接收单元、处理单元等。
其中,发送单元、接收单元、以及处理单元可以用于配合实现上述第一方面中所述的应用部署方法。如:发送单元可以用于向第二设备发送第一目标能力模块。接收单元可以用于接收来自第二设备的第一消息。处理单元可以用于根据第二设备的能力信息,从第一应用包括的多个能力模块中确定适合第二设备安装的第一目标能力模块等。
应当理解,该装置可以用于实现前述第一方面中所述的应用部署方法的全部功能,不再一一赘述。
第三方面,本申请实施例提供一种电子设备,包括:处理器;存储器;以及计算机程序;其中,所述计算机程序存储在所述存储器上,当所述计算机程序被所述处理器执行时,使得所述电子设备实现如第一方面及第一方面的任意一种可能的实现方式中所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备实现如第一方面及第一方面的任意一种可能的实现方式中所述的方法。
第五方面,本申请实施例还提供一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码在电子设备中运行时,使得电子设备实现如第一方面及第一方面的任意一种可能的实现方式中所述的方法。
上述第二方面至第五方面所具备的有益效果,可参考第一方面中所述,在此不再赘述。
第六方面,本申请实施例还提供一种应用部署方法,所述方法应用于第二设备,第二设备与第一设备连接;第一设备包括第一应用,第一应用包括可用于安装的多个能力模块;每个能力模块具有实现一个或多个功能的能力;所述方法包括:
第二设备接收来自第一设备的第一目标能力模块;第一目标能力模块是第一应用包括的多个能力模块中的一个;第二设备安装第一目标能力模块。
第二设备安装了第一目标能力模块后,可以通过第一目标能力模块实现相应的功能。
该方法中,第一设备中的应用安装包按不同维度被拆分为一个或多个能力模块,第一设备与第二设备进行交互,实现在第二设备上部署相应的能力模块,支持第二设备实现对应的功能,一方面可以大大减少应用安装包在第二设备上所占用的存储资源。另一方面,还可以解决一些无法联网的第二设备的应用部署问题。
在一种可能的设计中,所述方法还包括:第二设备向第一设备发送第一消息,第一消息包括第二设备的能力信息。
本设计中,第二设备的能力信息可以是通过第一消息上报给第一设备的,从而第一设备可以根据第二设备的能力信息,从第一应用包括的多个能力模块中确定适合第二设备安装的第一目标能力模块。
在另一种可能的设计中,所述第二设备向第一设备发送第一消息之前,所述方法还包括:
第二设备接收来自第一设备的查询请求消息,查询请求消息用于查询第二设备的能力信息。
本设计中,第二设备可以在接收到来自第一设备的查询请求消息后,再向第一设备发送第一消息。
在又一种可能的设计中,所述第二设备向第一设备发送第一消息,包括:
当第二设备与第一设备建立连接时,第二设备向第一设备发送第一消息。
示例性地,第一设备和第二设备中可以分别包括一个分布式网络模块,第二设备接入第一设备所在的分布式网络时,第二设备通过自己的分布式网络模块得知第一设备包括分布式应用安装包,从而,第二设备可以主动向第一设备发送第一消息。其中,分布式网络模块可以是一个单独的芯片,或者,集成在IOT设备中的处理器中的一个软件模块。
可选地,第二设备接入第一设备所在的分布式网络的情况可以包括:第二设备第一次接入第一设备所在的分布式网络,和/或,第二设备与第一设备所在的分布式网络断开连接后再次接入。例如,第二设备掉电或关机后可能会与第一设备所在的分布式网络断开连接,之后,当第二设备再次上电或开机时,第二设备可以向第一设备发送第一消息。
可选地,第二设备的能力信息包括所述第二设备的设备类型、设备版本、设备等级、设备硬件能力、以及CPU-ABI类型中的一种或多种。
一些实施例中,所述第二设备接收来自所述第一设备的第一目标能力模块之前,所述方法还包括:
所述第二设备向第一设备发送下载请求消息,下载请求消息包括第一目标能力模块的标识信息。
在一种可能的设计中,所述第二设备向第一设备发送下载请求消息,包括:
第二设备接收来自第一设备的第一目标能力模块的属性信息;第二设备根据第一目标能力模块的属性信息,决策是否安装第一目标能力模块;当第二设备决策安装第一目标能力模块时,第二设备向第一设备发送下载请求消息。
本设计中,第二设备可以根据第一目标能力模块的属性信息,决策是否安装第一目标能力模块。当第二设备决策安装第一目标能力模块时,可以向第一设备发送下载请求消息,下载请求消息包括第一目标能力模块的标识信息。第一设备接收到下载请求消息后,可以向第二设备发送第一目标能力模块。
示例性地,第一目标能力模块的属性信息包括以下一种或多种:第一目标能力模块的能力名称、版本信息、能力类型、第一目标能力模块的大小、第一目标能力模块在第一设备上的使用次数、第一目标能力模块所需要的权限。
可选地,第二设备包括预设的决策条件;所述第二设备根据第一目标能力模块的属性信息,决策是否安装第一目标能力模块,包括:
第二设备根据第一目标能力模块的属性信息,确定第一目标能力模块满足决策条件时,决策安装第一目标能力模块。
示例性地,决策条件包括以下一种或多种:第二设备的剩余存储空间大于第一目标能力模块的大小、第二设备的剩余电量大于第一阈值、第二设备当前处于灭屏且充电状态、第一目标能力模块在所述第一设备上的使用次数大于第二阈值、第一目标能力模块所需要的权限中不包括敏感权限。
一些实施例中,所述方法还包括:第二设备响应于对决策条件的设置操作,对决策条件进行修改。
本实施例中,用户可以主动在第一设备或第二设备上对决策条件进行设置,第二设备可以响应于用户对决策条件的设置操作,对决策条件进行修改。之后,第二设备可以根据用户设置的决策条件决策是否安装某个能力模块。
可选地,所述第二设备安装第一目标能力模块,包括:
第二设备显示第三界面,第三界面包括第一目标能力模块的安装提示;第二设备接收第三操作,第三操作为选择安装第一目标能力模块的操作;第二设备响应于第三操作,安装第一目标能力模块。
本设计中,用户可以在第二设备提供的第三界面上选择是否在第二设备上安装第一目标能力模块。第二设备接收到用户选择安装第一目标能力模块的操作(即第三操作)时,可以对第一目标能力模块进行安装。
第六方面中,部分与第一方面所对应的步骤所产生的有益效果可以参考第一方面中所述,未再赘述。
第七方面,本申请实施例提供一种应用部署装置,该装置可以应用于第二设备,用于实现上述第六方面所述的应用部署方法。该装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,该装置可以包括:发送单元、接收单元、处理单元等。
其中,发送单元、接收单元、以及处理单元可以用于配合实现上述第六方面中所述的应用部署方法。如:发送单元可以用于向第一设备发送第一消息。接收单元可以用于接收来自第一设备的第一目标能力模块。处理单元可以用于决策是否安装第一目标能力模块等。
应当理解,该装置可以用于实现前述第六方面中所述的应用部署方法的全部功能,不再一一赘述。
第八方面,本申请实施例提供一种电子设备,包括:处理器;存储器;以及计算机程序;其中,所述计算机程序存储在所述存储器上,当所述计算机程序被所述处理器执行时,使得所述电子设备实现如第六方面及第六方面的任意一种可能的实现方式中所述的方法。
第九方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备实现如第六方面及第六方面的任意一种可能的实现方式中所述的方法。
第十方面,本申请实施例还提供一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码在电子设备中运行时,使得电子设备实现如第六方面及第六方面的任意一种可能的实现方式中所述的方法。
上述第七方面至第十方面所具备的有益效果,可参考第六方面中所述,在此不再赘述。
第十一方面,本申请实施例提供一种分布式操作系统,包括:第一设备和第二设备,第一设备和第二设备连接;第一设备包括第一应用,第一应用包括可用于安装的多个能力模块。第一设备可以根据第二设备的能力信息,从第一应用包括的多个能力模块中确定适合第二设备安装的第一目标能力模块,并向第二设备发送第一目标能力模块;第二设备可以接收并安装第一目标能力模块。
第二设备安装了第一目标能力模块后,可以通过第一目标能力模块实现相应的功能。
其中,第一设备和第二设备均为IOT设备。第一设备可以是设备资源(如CPU资源、内存资源、存储资源等)较为丰富,可独立联网和人机交互的IOT设备,如:第一设备可以是手机、平板电脑、笔记本电脑等IOT设备。
第二设备可以是手机、平板电脑、手写板、可穿戴设备(如手表、手环、耳机)、大屏(如智慧屏)、笔记本电脑、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备(如VR眼镜)、汽车(或车载设备)、摄像头、扫地机、电饭煲、音响、跑步机、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等中的任意一种IOT设备。例如,第二设备可以是相对于第一设备而言,设备资源较少,无法独立联网和/或人机交互的IOT设备,如:第二设备可以是手写板、耳机、VR眼镜、车载设备、电饭煲、音响、跑步机等。或者,第二设备也可以与第一设备相同,是设备资源较为丰富,可独立联网和人机交互的IOT设备。
该分布式操作系统中,第一设备中的应用安装包按不同维度被拆分为一个或多个能力模块,第一设备与第二设备进行交互,实现在第二设备上部署相应的能力模块,支持第二设备实现对应的功能,一方面可以大大减少应用安装包在第二设备上所占用的存储资源。另一方面,还可以解决一些无法联网的第二设备的应用部署问题。
可选地,第二设备可以向第一设备发送第一消息,第一消息包括第二设备的能力信息。第一设备接收到第一消息后,可以根据第一消息中包括的第二设备的能力信息,从第一应用包括的多个能力模块中确定适合第二设备安装的第一目标能力模块。
本设计中,第二设备的能力信息可以是通过第一消息上报给第一设备的,从而第一设备可以根据第二设备的能力信息,从第一应用包括的多个能力模块中确定适合第二设备安装的第一目标能力模块。
在一种可能的设计中,第一设备可以向第二设备发送查询请求消息,查询请求消息用于查询第二设备的能力信息。第二设备接收到来自第一设备的查询请求消息后,可以向第一设备发送第一消息。
本设计中,第一设备可以主动向第二设备发送查询请求消息,以触发第二设备根据查询请求消息向第一设备返回第一消息。
一些实现方式中,当第二设备与第一设备建立连接时,第一设备可以向第二设备发送查询请求消息。
本实现方式中,第一设备向第二设备发送查询请求消息的触发条件为:第二设备与第一设备建立连接。例如,当第二设备接入第一设备所在的局域网时,第一设备可以检测到第二设备的接入。第一设备检测到第二设备接入时,可以主动向第二设备发送查询请求消息。
另外一些实现方式中,第一设备可以显示第一界面,第一界面包括一个或多个第二设备的设备标识;第一设备可以接收第一操作,第一操作为在第一界面选择第二设备的设备标识的操作;第一设备可以响应于第一操作,向第二设备发送查询请求消息。
本实现方式中,第一设备向第二设备发送查询请求消息的触发条件为:第一设备接收到第一操作。例如,第一操作为用户主动在第一界面选择向哪个或哪些第二设备发送查询请求消息,第一设备可以响应于用户的第一操作,向用户主动选择的第二设备发送查询请求消息。
在另一种可能的设计中,当第二设备与第一设备建立连接时,第二设备可以向第一设备发送第一消息。
示例性地,第一设备和第二设备中可以分别包括一个分布式网络模块,第二设备接入第一设备所在的分布式网络时,第二设备通过自己的分布式网络模块得知第一设备包括分布式应用安装包,从而,第二设备可以主动向第一设备发送第一消息。其中,分布式网络模块可以是一个单独的芯片,或者,集成在IOT设备中的处理器中的一个软件模块。
可选地,第二设备接入第一设备所在的分布式网络的情况可以包括:第二设备第一次接入第一设备所在的分布式网络,和/或,第二设备与第一设备所在的分布式网络断开连接后再次接入。例如,第二设备掉电或关机后可能会与第一设备所在的分布式网络断开连接,之后,当第二设备再次上电或开机时,第二设备可以向第一设备发送第一消息。
一些实施例中,第一应用包括的每个能力模块包括能力模块对应的配置清单;第一设备根据第二设备的能力信息,从第一应用包括的多个能力模块中确定适合第二设备安装的第一目标能力模块,包括:第一设备根据第二设备的能力信息、以及第一应用包括的每个能力模块对应的配置清单,从第一应用包括的多个能力模块中确定适合第二设备安装的第一目标能力模块。
示例性地,每个能力模块对应的配置清单包括能力模块适合的设备类型、能力模块适合的设备类型对应的最低设备版本要求、能力模块适合的最低设备等级、能力模块所需要的硬件能力要求、能力模块支持的中央处理器应用程序二进制接口CPU-ABI类型、以及能力模块适用的场景类型中的一种或多种。
示例性地,第二设备的能力信息包括第二设备的设备类型、设备版本、设备等级、设备硬件能力、以及CPU-ABI类型中的一种或多种。
其中,设备等级可以是根据IOT设备的资源是否丰富、IOT设备是否可以独立联网和/或人机交互等因素进行划分的。如:可以根据IOT设备的运行内存(random accessmemory,RAM)、存储性内存(read only memory,ROM)、CPU等的能力,将IOT设备划分为零级至五级,分别对应L0至L5,IOT设备的等级越高,性能越强。在此对IOT设备等级的划分方式不作限制。
在一种可能的设计中,第一设备可以向第二设备发送第一目标能力模块的属性信息;第二设备可以接收来自第一设备的第一目标能力模块的属性信息,并根据第一目标能力模块的属性信息,决策是否安装第一目标能力模块;当第二设备决策安装第一目标能力模块时,第二设备可以向第一设备发送下载请求消息。第一设备可以接收来自第二设备的下载请求消息,下载请求消息包括第一目标能力模块的标识信息。第一设备接收到下载请求消息后,可以根据第一目标能力模块的标识信息向第二设备发送第一目标能力模块。
示例性地,第一目标能力模块的属性信息包括以下一种或多种:第一目标能力模块的能力名称、版本信息、能力类型、第一目标能力模块的大小、第一目标能力模块在第一设备上的使用次数、第一目标能力模块所需要的权限。
本设计中,第二设备可以根据第一目标能力模块的属性信息,决策是否安装第一目标能力模块。当第二设备决策安装第一目标能力模块时,可以向第一设备发送下载请求消息,下载请求消息包括第一目标能力模块的标识信息。第一设备接收到下载请求消息后,可以向第二设备发送第一目标能力模块。
可选地,第二设备包括预设的决策条件;所述第二设备根据第一目标能力模块的属性信息,决策是否安装第一目标能力模块,包括:第二设备根据第一目标能力模块的属性信息,确定第一目标能力模块满足决策条件时,决策安装第一目标能力模块。
示例性地,决策条件包括以下一种或多种:第二设备的剩余存储空间大于第一目标能力模块的大小、第二设备的剩余电量大于第一阈值、第二设备当前处于灭屏且充电状态、第一目标能力模块在所述第一设备上的使用次数大于第二阈值、第一目标能力模块所需要的权限中不包括敏感权限。
一些实施例中,第二设备可以响应于对决策条件的设置操作,对决策条件进行修改。
本实施例中,用户可以主动在第一设备或第二设备上对决策条件进行设置,第二设备可以响应于用户对决策条件的设置操作,对决策条件进行修改。之后,第二设备可以根据用户设置的决策条件决策是否安装某个能力模块。
在另一种可能的设计中,第一设备可以显示第二界面,第二界面包括第一目标能力模块的安装提示;第一设备可以接收第二操作,第二操作为选择安装第一目标能力模块的操作;第一设备可以响应于第二操作,向第二设备发送第二消息,第二消息用于指示第二设备安装第一目标能力模块。
本设计中,用户可以在第一设备提供的第二界面上选择是否在第二设备上安装第一目标能力模块。第一设备接收到用户选择安装第一目标能力模块的操作(即第二操作)时,可以通过第二消息指示第二设备对第一目标能力模块进行安装。
在又一种可能的设计中,第二设备可以显示第三界面,第三界面包括第一目标能力模块的安装提示;第二设备可以接收第三操作,第三操作为选择安装第一目标能力模块的操作;第二设备可以响应于第三操作,安装第一目标能力模块。
本设计中,用户可以在第二设备提供的第三界面上选择是否在第二设备上安装第一目标能力模块。第二设备接收到用户选择安装第一目标能力模块的操作(即第三操作)时,可以对第一目标能力模块进行安装。
一些实施例中,该分布式操作系统还包括:第三设备,第一设备与第三设备连接;第一设备可以根据第三设备的能力信息,从第一应用包括的多个能力模块中确定适合第三设备安装的第二目标能力模块,并向第三设备发送第二目标能力模块;第三设备可以接收并安装第二目标能力模块。
可选地,第一目标能力模块和第二目标能力模块相同或不同。
也即,本实施例中,第一设备可以与第二设备、第三设备等多个不同的设备连接。第一设备可以根据与其连接的不同设备的能力信息,从第一应用包括的多个能力模块中确定适合每个设备安装的目标能力模块,并向每个设备发送适合该设备安装的目标能力模块。
类似地,该分布式操作系统中,第一设备可以用于实现上述第一方面所述的应用部署方法中的全部功能,第二设备可以用于实现上述第六方面所述的应用部署方法中的全部功能,在此不再一一赘述。
上述第十一方面所具备的有益效果,可参考第一方面和第六方面中所述,在此不再赘述。
应当理解的是,本申请中对技术特征、技术方案、有益效果或类似语言的描述并不是暗示在任意的单个实施例中可以实现所有的特点和优点。相反,可以理解的是对于特征或有益效果的描述意味着在至少一个实施例中包括特定的技术特征、技术方案或有益效果。因此,本说明书中对于技术特征、技术方案或有益效果的描述并不一定是指相同的实施例。进而,还可以任何适当的方式组合本实施例中所描述的技术特征、技术方案和有益效果。本领域技术人员将会理解,无需特定实施例的一个或多个特定的技术特征、技术方案或有益效果即可实现实施例。在其他实施例中,还可在没有体现所有实施例的特定实施例中识别出额外的技术特征和有益效果。
附图说明
图1为本申请实施例提供的分布式操作系统的一种实现场景示意图;
图2为本申请实施例提供的应用部署方法的流程示意图;
图3为本申请实施例提供的手机110的设置界面的示意图;
图4为本申请实施例提供的手机110的应用协同界面的示意图;
图5为本申请实施例提供的第一社交软件应用安装包的组成示意图;
图6为本申请实施例提供的手表120决策是否安装文字聊天能力部署包的流程示意图;
图7为本申请实施例提供的第一IOT设备和第二IOT设备的架构示意图;
图8为本申请实施例提供的IOT设备的硬件组成示意图;
图9为本申请实施例提供的应用部署装置的结构示意图;
图10为本申请实施例提供的应用部署装置的另一结构示意图。
具体实施方式
以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本申请以下各实施例中,“至少一个”、“一个或多个”是指一个或两个以上(包含两个)。字符“/”一般表示前后关联对象是一种“或”的关系。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。术语“连接”包括直接连接和间接连接,除非另外说明。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
在本申请实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
分布式操作系统是指由多个物联网(internet of things,IOT)设备通过分布式网络连接组成的新一代全场景操作系统。分布式操作系统中,不同的IOT设备之间可以高效灵活协同工作。
其中,IOT设备可以包括:手机、平板电脑、手写板、可穿戴设备(如手表、手环、耳机)、大屏(如智慧屏)、笔记本电脑、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备(如VR眼镜)、汽车(或车载设备)、摄像头、扫地机、电饭煲、音响、跑步机、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等。
例如,一种可能的实现场景中,用户家中可以包括:手机、冰箱、智慧屏、音响、手表等IOT设备,手机、冰箱、智慧屏、音响、以及手表可以通过局域网(如Wi-Fi网络连接)组成分布式操作系统,该局域网可以称为分布式网络。手机、冰箱、智慧屏、音响、以及手表等IOT设备之间可以基于该分布式网络实现协同工作,如:冰箱可以与手机协同为用户提供购物功能,智慧屏可以与手机协同为用户提供视频播放功能、通话功能,音响可以与手机协同为用户提供音乐播放功能,手表可以与手机协同为用户提供运动健康监测功能等。
分布式操作系统中的各IOT设备之间要实现协同工作,需要每个IOT设备安装相应的应用来支持IOT设备之间的协同功能。例如,上述手机、冰箱、智慧屏、音响、以及手表组成的分布式操作系统中,冰箱需要安装购物应用,智慧屏需要安装视频应用、通话应用,音响需要安装音乐应用,手表需要安装运动健康应用等。
目前,在分布式操作系统中的各IOT设备上安装应用的一种方式为:各IOT设备的厂商在IOT设备出厂前预装相应的应用。但这种方式中,很多IOT设备本身的存储资源有限,无法同时预装大量的应用,而且,IOT设备上预装的应用无法及时更新。
另一种方式为:IOT设备联网从服务器(如应用市场的服务器)中下载相应的应用,但这种方式中部分无法联网的IOT设备无法从服务器下载应用。而且,当分布式操作系统中的IOT设备数量较多时,大量的IOT设备从服务器下载应用还会增加服务器的负载压力。
为此,本申请实施例提供一种应用部署方法,可以应用于分布式操作系统。分布式操作系统包括第一IOT设备、以及至少一个第二IOT设备。
其中,第一IOT设备可以是设备资源(如CPU资源、内存资源、存储资源等)较为丰富,可独立联网和人机交互的IOT设备,如:第一IOT设备可以是手机、平板电脑、笔记本电脑等IOT设备。
第二IOT设备可以是上述任意一种IOT设备。例如,第二IOT设备可以是相对于第一IOT设备而言,设备资源较少,无法独立联网和/或人机交互的IOT设备,如:第二IOT设备可以是手写板、耳机、VR眼镜、车载设备、电饭煲、音响、跑步机等。或者,第二IOT设备也可以与第一IOT设备相同,是设备资源较为丰富,可独立联网和人机交互的IOT设备。
本申请对第二IOT设备和第一IOT设备的具体类型均不作限制。
本申请实施例中,第一IOT设备也可以称为第一设备,第二IOT设备也可以称为第二设备。
一些实施例中,上述设备资源较为丰富,可独立联网和人机交互的IOT设备可以被称为富设备。而设备资源较少,无法独立联网和/或人机交互的IOT设备可以被称为轻设备。本申请实施例中,第一IOT设备可以是富设备,第二IOT设备可以是富设备或轻设备。
可选地,第一IOT设备和/或第二IOT设备的操作系统可以是鸿蒙TM(harmony)系统、安卓TM(android)系统、iosTM系统、windowsTM系统、macTM系统、linuxTM系统、、EMUITM、AndroidWearTM系统、Lite OSTM、TizenTM系统、watch osTM系统等。或者,部分IOT设备也可以没有操作系统,在此均不作限制。
示例性地,图1为本申请实施例提供的分布式操作系统的一种实现场景示意图。如图1所示,在一种可能的实现场景中,分布式操作系统可以包括:手机110、手表120、智慧屏130、音响140、冰箱150。手机110与手表120、智慧屏130、音响140、以及冰箱150之间通过路由器160实现局域网连接。
图1所示的场景中,手机110可以作为第一IOT设备,手表120、智慧屏130、音响140、以及冰箱150可以分别作为第二IOT设备。
本申请实施例中,第一IOT设备可以包括分布式应用安装包。该分布式应用安装包可以包括一个或多个元能力部署包、以及每个元能力部署包的属性信息。每个元能力部署包可以实现相应的功能。作为一种可能的实现,例如可以设计为每个元能力部署包分别实现一个独立功能。每个元能力部署包可以包括该元能力部署包对应的配置清单,以及用于实现该元能力部署包的功能的动态库、资源文件、以及元能力业务代码。作为一种可能的实现,每个元能力部署包可以包括一个或多个代码级安装子包。
例如,分布式应用安装包可以是某个社交软件的安装包,该社交软件的安装包可以包括文字聊天能力部署包、视频通话能力部署包、音频通话能力部署包、购物能力部署包等元能力部署包。其中,文字聊天能力部署包可以实现文字聊天功能,视频通话能力部署包可以实现视频通话功能,音频通话能力部署包可以实现音频通话功能,购物能力部署包可以实现购物功能。
图2为本申请实施例提供的应用部署方法的流程示意图。如图2所示,该方法可以包括S201-S205。
S201、第二IOT设备向第一IOT设备发送第一消息,第一消息包括第二IOT设备的能力信息。
一些实施例中,第二IOT设备可以在接入第一IOT设备所在的分布式网络(如上述局域网)时,主动向第一IOT设备发送第一消息。
示例性地,分布式操作系统中的每个IOT设备中可以包括一个分布式网络模块,接入分布式网络的IOT设备之间可以基于各自的分布式网络模块同步数据和信息。第二IOT设备接入第一IOT设备所在的分布式网络时,第二IOT设备通过自己的分布式网络模块得知第一IOT设备包括分布式应用安装包,从而,第二IOT设备可以主动向第一IOT设备发送第一消息。其中,分布式网络模块可以是一个单独的芯片,或者,集成在IOT设备中的处理器中的一个软件模块。
可选地,第二IOT设备接入第一IOT设备所在的分布式网络的情况可以包括:第二IOT设备第一次接入第一IOT设备所在的分布式网络,和/或,第二IOT设备与第一IOT设备所在的分布式网络断开连接后再次接入。例如,第二IOT设备掉电或关机后可能会与第一IOT设备所在的分布式网络断开连接,之后,当第二IOT设备再次上电或开机时,第二IOT设备可以向第一IOT设备发送第一消息。
另外一些实施例中,当第二IOT设备接入第一IOT设备所在的分布式网络时,第一IOT设备可以向第二IOT设备发送查询请求消息,第二IOT设备接收到该查询请求消息后,可以向第一IOT设备返回第一消息。
还有一些实施例中,第一IOT设备可以提供一个显示界面,该显示界面可以包括与第一IOT设备通过分布式网络连接的一个或多个第二IOT设备的设备标识(如设备名称)。用户可以在分布式应用安装包对应的显示界面,选择第一IOT设备与哪些第二IOT设备之间进行应用协同部署。第一IOT设备可以响应于用户的选择操作,向用户选择的第二IOT设备发送查询请求消息,用户选择的第二IOT设备接收到该查询请求消息后,可以向第一IOT设备返回第一消息。其中,包括与第一IOT设备通过分布式网络连接的一个或多个第二IOT设备的设备标识的显示界面可以称为第一界面,用户可以在该显示界面选择第一IOT设备与哪些第二IOT设备之间进行应用协同部署的操作可以称为第一操作。
例如,以上述图1所示的分布式操作系统的实现场景为例,第一IOT设备为手机110,第二IOT设备为手表120、智慧屏130、音响140、以及冰箱150。图3为本申请实施例提供的手机110的设置界面的示意图,图4为本申请实施例提供的手机110的应用协同界面的示意图。如图3所示,手机110的设置界面可以包括应用协同按钮301(或者,也可以是设备协同按钮),以及其他设置选项(如设置选项1至设置选项6)。当用户点击应用协同按钮301时,手机可以响应于用户点击应用协同按钮301的操作,显示如图4所示的应用协同界面。如图4所示,该应用协同界面可以包括:手表120的名称“手表”、智慧屏130的名称“智慧屏”、音响140的名称“音响”、冰箱150的名称“冰箱”,每个设备名称后边还包括一个开启/关闭按钮。用户可以点击每个设备名称后边的开启/关闭按钮,触发手机110开启或关闭与该设备的应用协同功能。当用户点击某个设备名称后边的开启/关闭按钮,触发手机110开启与该设备的应用协同功能时,该设备名称后的开启/关闭按钮的状态将由关闭切换为开启,开启/关闭按钮的状态被切换为开启的设备即为用户选择的第二IOT设备。手机110可以响应于用户将该设备名称后的开启/关闭按钮的状态将由关闭切换为开启的操作,向对应的该设备发送查询请求消息。如:图4中,用户选择的第二IOT设备为手表120和智慧屏130,手机110可以向手表120和智慧屏130分别发送查询请求消息,手表120和智慧屏130分别接收到查询请求消息后,可以向手机110返回第一消息。可以理解的,手表120返回的第一消息包括手表120的能力信息,智慧屏130返回的第一消息包括智慧屏130的能力信息。
应当理解,上述图3和图4所示的实现方式仅为示例性说明。本申请实施例对第一IOT设备提供显示界面,供用户选择第一IOT设备与哪些第二IOT设备之间进行应用协同部署的具体方式不作限制。例如,第一IOT设备提供的显示界面也可以包括与第一IOT设备通过分布式网络连接的一个或多个第二IOT设备的设备标识(如设备名称、设备型号等),用户可以该显示界面直接点击其中的一个或多个设备标识,第一IOT设备可以响应于用户点击一个或多个设备标识的操作,向用户点击的设备标识对应的第二IOT设备发送查询请求消息。
需要说明的是,本申请实施例中,第二IOT设备向第一IOT设备发送第一消息的触发条件并不限于前述实施例中所述的几种,本申请对第二IOT设备向第一IOT设备发送第一消息的触发条件也不作限制。例如,第二IOT设备与第一IOT设备之间也可以通过“碰一碰”的方式触发上述S201。如:第二IOT设备和第一IOT设备分别可以包括近场通信(near fieldcommunication,NFC)芯片,当第二IOT设备靠近第一IOT设备时,第二IOT设备和第一IOT设备之间可以建立NFC连接,触发上述S201所述的流程。再例如,第二IOT设备可以在首次或重新上线后主动向第一IOT设备发送第一消息。该第一IOT设备的角色可以是局域网内的各IOT设备根据选举规则确定的。
第二IOT设备向第一IOT设备发送第一消息,可以用于向第一IOT设备查询适合第二IOT设备安装的元能力部署包。第一IOT设备接收到第一消息后,可以执行S202和S203。
S202、第一IOT设备根据第二IOT设备的能力信息、以及分布式应用安装包中的每个元能力部署包对应的配置清单,确定适合第二IOT设备安装的目标元能力部署包。
例如,分布式安装包可以是第一应用。
S203、第一IOT设备向第二IOT设备发送目标元能力部署包的属性信息。
相应地,第二IOT设备接收来自第一IOT设备的目标元能力部署包的属性信息。
示例性地,每个元能力部署包的属性信息至少可以包括:元能力名称、版本信息、元能力类型、元能力部署包的大小(即元能力部署包占用的存储空间)、元能力部署包在第一IOT设备上的使用次数、元能力部署包所需要的权限等属性。
S204、第二IOT设备根据接收到的目标元能力部署包的属性信息,决策是否安装目标元能力部署包。
例如,第二IOT设备可能接收到一个或多个目标元能力部署包的属性信息,第二IOT设备可以根据接收到的目标元能力部署包的属性信息,决策安装其中的某一个或多个目标元能力部署包。
S205、第二IOT设备从第一IOT设备中获取决策安装的目标元能力部署包,并进行安装。
例如,当第二IOT设备决策安装某个目标元能力部署包时,可以从第一IOT设备中获取该目标元能力部署包并进行安装。
该方法中,第一IOT设备中的应用安装包按不同维度被拆分为一个或多个元能力部署包,第一IOT设备与第二IOT设备通过局域网交互,实现第二IOT设备上部署相应的元能力部署包,支持第二IOT设备实现对应的功能,一方面可以大大减少应用安装包在第二IOT设备上所占用的存储资源。另一方面,还可以解决一些无法联网的第二IOT设备的应用部署问题。
下面结合上述图1所示的分布式操作系统的实现场景,以第一IOT设备为手机110,第二IOT设备为手表120为例,且手机110包括第一社交软件应用安装包为例,对图2所示的应用部署方法的流程的具体实现进行示例性说明。
示例性地,图5为本申请实施例提供的第一社交软件应用安装包的组成示意图。如图5所示,第一社交软件应用安装包为分布式应用安装包,可以包括:文字聊天能力部署包、视频通话能力部署包、音频通话能力部署包、购物能力部署包,以及包属性信息表(packinfo)。每个元能力部署包可以包括该元能力部署包对应的配置清单,以及用于实现该元能力部署包的功能的动态库、资源文件、以及元能力业务代码。包属性信息表可以包括文字聊天能力部署包的属性信息、视频通话能力部署包的属性信息、音频通话能力部署包的属性信息、以及购物能力部署包的属性信息。
例如,每个元能力部署包对应的配置清单可以命名为“config.json”文件,用于实现元能力部署包的功能的动态库可以命名为“so”,资源文件可以命名为“resource”,元能力业务代码动态库可以命名为“ability”。
其中,文字聊天能力部署包可以独立实现文字聊天功能,视频通话能力部署包可以独立实现视频通话功能,音频通话能力部署包可以独立实现音频通话功能,购物能力部署包可以独立实现购物功能。文字聊天能力可以称为第一社交软件应用的核心(entry)能力,视频通话能力、音频通话能力、以及购物能力可以称为第一社交软件应用的附加能力。
手表120可以向手机110发送第一消息,第一消息包括手表120的能力信息。手表120向手机110发送第一消息的触发条件具体请参见前述实施例中所述。
手机110接收到来自手表120的第一消息后,可以根据第一消息中包括的手表120的能力信息、以及第一社交软件应用安装包中每个元能力部署包对应的配置清单,确定适合手表120安装的目标元能力部署包。
示例性地,手表120的能力信息可以包括手表120的设备类型、设备版本、设备等级、设备硬件能力、中央处理器应用程序二进制接口(central processing unit-application binary interface,CPU-ABI)类型等。
例如,手表120的能力信息中,设备类型可以为手表;设备版本可以为2.0版本或3.0版本;设备等级可以为三级;设备硬件能力可以包括手表120支持横屏、竖屏、声音播放、Wi-Fi、蓝牙、测心跳等能力;CPU-ABI类型可以包括arm64-v8a、armeabi-v7a、X86、X86-64、mips、mips64等。
其中,设备等级可以是根据IOT设备的资源是否丰富、IOT设备是否可以独立联网和/或人机交互等因素进行划分的。如:可以根据IOT设备的运行内存(random accessmemory,RAM)、存储性内存(read only memory,ROM)、CPU等的能力,将IOT设备划分为零级至五级,分别对应L0至L5,IOT设备的等级越高,性能越强。在此对IOT设备等级的划分方式不作限制。
示例性地,第一社交软件应用安装包中每个元能力部署包对应的配置清单可以包括:该元能力部署包适合的设备类型、该元能力部署包适合的设备类型对应的最低设备版本要求、该元能力部署包适合的最低设备等级、该元能力部署包所需要的硬件能力要求、该元能力部署包支持的CPU-ABI类型、该元能力部署包适用的场景类型等信息。
例如,文字聊天能力部署包的配置清单中可以包括:文字聊天能力部署包适合的设备类型为智慧屏、手表、冰箱;文字聊天能力部署包适合的设备类型对应的最低设备版本要求为智慧屏2.0版本、手表3.0版本、冰箱2.0版本;文字聊天能力部署包适合的最低设备等级为三级;文字聊天能力部署包所需要的硬件能力要求为需要屏幕、Wi-Fi、以及输入;文字聊天能力部署包支持的CPU-ABI类型为arm64、arm32架构;文字聊天能力部署包适用的场景类型为聊天场景。
视频通话能力部署包的配置清单中可以包括:视频通话能力部署包适合的设备类型为智慧屏、手表;视频通话能力部署包适合的设备类型对应的最低设备版本要求为智慧屏2.0版本、手表3.0版本;视频通话能力部署包适合的最低设备等级为四级;视频通话能力部署包所需要的硬件能力要求为需要屏幕、麦克风、Wi-Fi;视频通话能力部署包支持的CPU-ABI类型为arm64、arm32架构;视频通话能力部署包适用的场景类型为视频通话场景。
语音通话能力部署包的配置清单中可以包括:语音通话能力部署包适合的设备类型为智慧屏、手表、音响;语音通话能力部署包适合的设备类型对应的最低设备版本要求为智慧屏2.0版本、手表3.0版本、音响1.0版本;语音通话能力部署包适合的最低设备等级为四级;语音通话能力部署包所需要的硬件能力要求为需要麦克风、Wi-Fi;语音通话能力部署包支持的CPU-ABI类型为arm64、arm32架构;语音通话能力部署包适用的场景类型为语音通话场景。
购物能力部署包的配置清单中可以包括:购物能力部署包适合的设备类型为智慧屏、手表、冰箱;购物能力部署包适合的设备类型对应的最低设备版本要求为智慧屏2.0版本、手表3.0版本、冰箱1.0版本;购物能力部署包适合的最低设备等级为三级;购物能力部署包所需要的硬件能力要求为需要麦克风、Wi-Fi;购物能力部署包支持的CPU-ABI类型为arm64、arm32架构;购物能力部署包适用的场景类型为购物场景。
需要说明的是,上述关于手表120的能力信息、以及元能力部署包对应的配置清单的说明仅为示例性说明,并不用于限制。
一些实施例中,手表120的能力信息可以包括前述列举的能力信息中的一种或多种,或者还包括更多类型的能力信息。元能力部署包对应的配置清单中也可以包括前述列举的配置清单所包含的信息中的一种或多种,或者还包括更多类型的信息。
另外,在一些实现方式中,部分元能力部署包适用的场景类型可能包括一种或多种。当元能力部署包适用的场景类型包括多种时,该元能力部署包对应的配置清单中会相应包括该元能力部署包适用的多种场景类型。
可选地,每个元能力部署包还可以包括该元能力部署包的标识信息,如:元能力部署包的名称。
在一种可能的设计中,第一社交软件应用安装包中每个元能力部署包对应的配置清单可以包括多个字段,这些字段可以用于标识元能力部署包适合的设备类型、元能力部署包适合的设备类型对应的最低设备版本要求、元能力部署包适合的最低设备等级、元能力部署包所需要的硬件能力要求、元能力部署包支持的CPU-ABI类型、元能力部署包适用的场景类型等信息。
例如,每个元能力部署包对应的配置清单可以包括:name字段、deviceTypes字段、deviceVersions字段、deviceLevel字段、reqCapabilities字段、supportAbi字段、moduleType字段。其中,name字段可以用于标识元能力部署包的名称;deviceTypes字段可以用于标识元能力部署包适合的设备类型;deviceVersions字段可以用于标识元能力部署包适合的设备类型对应的最低设备版本要求;deviceLevel字段可以用于标识元能力部署包适合的最低设备等级;reqCapabilities字段可以用于标识元能力部署包所需要的硬件能力要求;supportAbi字段可以用于标识元能力部署包支持的CPU-ABI类型;moduleType字段可以用于标识元能力部署包适用的场景类型。
基于上述所述的手表120的能力信息、第一社交软件应用安装包中每个元能力部署包对应的配置清单,手机110根据第一消息中包括的手表120的能力信息、以及第一社交软件应用安装包中每个元能力部署包对应的配置清单,确定适合手表120安装的目标元能力部署包的步骤可以包括:
手机110根据手表120的能力信息,查询文字聊天能力部署包、视频通话能力部署包、音频通话能力部署包、以及购物能力部署包中每个元能力部署包对应的配置清单,确定手表120的能力可以满足哪些元能力部署包的要求。然后,手机110可以将手表120的能力可以满足要求的元能力部署包确定为适合手表120安装的目标元能力部署包。
例如,手机110可以根据手表120的能力信息,查询文字聊天能力部署包对应的配置清单,判断手表120的设备类型是否为文字聊天能力部署包适合的设备类型,手表120的设备版本是否满足(高于或等于)文字聊天能力部署包适合的设备类型对应的最低设备版本要求,手表120的设备等级是否达到文字聊天能力部署包适合的设备类型对应的最低设备版本要求,手表120的设备硬件能力是否满足文字聊天能力部署包所需要的硬件能力要求,手表120的CPU-ABI类型是否满足文字聊天能力部署包支持的CPU-ABI类型等。当前述条件均满足时,手机110可以确定文字聊天能力部署包为适合手表120安装的目标元能力部署包。
类似地,手机110可以分别确定视频通话能力部署包、音频通话能力部署包、以及购物能力部署包是否为适合手表120安装的目标元能力部署包。
可以理解的,手机110最终确定出适合手表120安装的目标元能力部署包可能包括一个或多个。
手机110在确定出适合手表120安装的目标元能力部署包后,可以向手表120发送目标元能力部署包的属性信息。手表120可以根据接收到的目标元能力部署包的属性信息,决策是否安装目标元能力部署包。
可选地,当手机110确定出适合手表120安装的目标元能力部署包为多个时,手机110可以将多个目标元能力部署包的属性信息打包发送给手表120。
示例性地,每个元能力部署包的属性信息至少可以包括:元能力名称、版本信息、元能力类型、元能力部署包的大小(即元能力部署包占用的存储空间)、元能力部署包在手机110(即第一IOT设备)上的使用次数、元能力部署包所需要的权限等属性。
一些实施例中,手表120中可以预设有决策条件,手表120可以根据接收到的目标元能力部署包的属性信息、以及预设的决策条件,确定是否安装目标元能力部署包。
示例性地,决策条件可以包括以下一种或多种:手表120的剩余存储空间大于目标元能力部署包的大小、手表120的剩余电量大于第一阈值、手表120当前处于灭屏且充电状态(灭屏且灭屏的状态下对用户影响最小)、目标元能力部署包在手机110上的使用次数大于第二阈值、目标元能力部署包所需要的权限中不包括敏感权限(如照片获取权限、通讯录获取权限等)。
对任意一个目标元能力部署包,当手表120根据接收到的该目标元能力部署包的属性信息、以及预设的决策条件,确定该目标元能力部署包满足预设的决策条件时,可以确定安装该目标元能力部署包。
以手表120接收到文字聊天能力部署包的属性信息为例,图6为本申请实施例提供的手表120决策是否安装文字聊天能力部署包的流程示意图。如图6所示,手表120根据文字聊天能力部署包的属性信息、以及预设的决策条件,决策是否安装文字聊天能力部署包的流程可以包括S601-S607。
S601、判断手表120的剩余存储空间是否大于文字聊天能力部署包的大小。
若是,则执行S602;若否,则跳转至S607。
S602、判断手表120的剩余电量是否大于第一阈值。
例如,第一阈值可以为30%、50%、60%等,在此对第一阈值的大小不作限制。
若是,则执行S603;若否,则跳转至S607。
S603、判断手表120当前是否处于灭屏且充电状态。
若是,则执行S604;若否,则跳转至S607。
S604、判断文字聊天能力部署包在手机110上的使用次数是否大于第二阈值。
例如,第二阈值可以是5次,10次,18次等,在此对第二阈值的大小也不作限制。
若是,则执行S605;若否,则跳转至S607。
S605、判断文字聊天能力部署包所需要的权限中是否包括敏感权限。
若是,则跳转至S607;若否,则执行S606。
S606、确定安装文字聊天能力部署包。
S607、确定不安装文字聊天能力部署包。
需要说明的是,上述给出的决策条件均为示例性说明,本申请对手表120中预设的决策条件的具体类型和数量并不作限制。例如,手表120中预设的决策条件可以仅包括手表120的剩余存储空间大于目标元能力部署包的大小。又例如,手表120中预设的决策条件可以还可能包括其他决策条件。
也即,本申请实施例中,手表120中预设的决策条件可以包括至少一种。可选地,决策条件可以是基于安全(如用户隐私)、用户体验、安装成功率等多个不同维度所设置的。
另外一些实施例中,用户也可以在手表120上对决策条件进行设置,手表120可以根据用户设置的决策条件确定是否安装目标元能力部署包。例如,用户可以根据分布式操作系统的具体实现场景、自身喜好条件等,在手表120中提前预设触发自动下载安装的元能力部署包的类型、上述第一阈值的大小、上述第二阈值的大小、元能力部署包所需要的权限等。手表120可以响应于对决策条件的设置操作,对决策条件进行修改。手表120可以根据接收到的目标元能力部署包的属性信息、以及用户设置的决策条件,确定是否安装目标元能力部署包。具体判断方式与上述实施例相同或相似,不再赘述。
可选地,用户也可以在手机110上设置手表120的决策条件,手机110可以将用户设置的手表120的决策条件配置给手表120。在此对用户设置手表120的决策条件的方式不作限制。
可选地,部分实施方式中,用户在设置决策条件时,还可以为不同的决策条件设置不同的权重,手表120在根据接收到的目标元能力部署包的属性信息、以及用户设置的决策条件,确定是否安装目标元能力部署包时,可以结合各决策条件对应的权重综合计算是否安装目标元能力部署包。
还有一些实施例中,当手表120包括可与用户进行交互的显示界面时,手表120接收到目标元能力部署包的属性信息后,也可以在显示界面弹出目标元能力部署包的安装提示,用户可以在显示界面上选择是否安装目标元能力部署包。手表120可以响应于用户选择安装目标元能力部署包的操作,确定安装目标元能力部署包。或者,响应于用户选择不安装目标元能力部署包的操作,确定不安装目标元能力部署包。其中,手表120弹出目标元能力部署包的安装提示的显示界面可以称为第三界面;用户在该显示界面选择安装目标元能力部署包的操作可以称为第三操作。
当手表120不包括可与用户进行交互的显示界面时,手表120接收到目标元能力部署包的属性信息后,也可以通过手机110的显示界面弹出目标元能力部署包的安装提示,如:手表120可以向手机110发送一个指示消息,指示手机110在显示界面弹出目标元能力部署包的安装提示。用户可以在手机110的显示界面上选择是否安装目标元能力部署包。手机110可以响应于用户选择安装目标元能力部署包的操作,通知手表120用户选择安装目标元能力部署包(如也可以发送指示消息)。或者,手机110可以响应于用户选择不安装目标元能力部署包的操作,通知手表120用户选择不安装目标元能力部署包。从而,手表120可以根据手机110的通知结果,确定是否安装目标元能力部署包。其中,手机110弹出目标元能力部署包的安装提示的显示界面可以称为第二界面;用户在该显示界面选择安装目标元能力部署包的操作,可以称为第二操作。手机110可以通过第二消息通知手表120用户选择安装目标元能力部署包。
还有一些实施例中,手表120接收到目标元能力部署包的属性信息时,也可以先判断手表120的剩余存储空间是否大于目标元能力部署包的大小,当手表120的剩余存储空间是否大于目标元能力部署包的大小时,手表120在显示界面(或通过手机110的显示界面)弹出目标元能力部署包的安装提示。
可以理解的,手表120可能接收到一个或多个目标元能力部署包的属性信息。当手表120接收到多个目标元能力部署包的属性信息时,手表120可以按照前述实施例所述的方式分别确定每个目标元能力部署包是否安装。
可选地,当手表120接收到某个目标元能力部署包的属性信息时,如果手表120中已经存在该目标元能力部署包,则手表120可以判断手机110中的目标元能力部署包的版本是否高于本地(即手表120)已安装的目标元能力部署包的版本。当手机110中的目标元能力部署包的版本高于本地已安装的目标元能力部署包的版本时,手表120也可以决策安装该目标元能力部署包。当手机110中的目标元能力部署包的版本不高于本地已安装的目标元能力部署包的版本时,手表120可以决策不安装该目标元能力部署包。
也即,本申请实施例中,手表120决策是否安装目标元能力部署包的条件中还可以包括:当手表120本地已安装目标元能力部署包,但手机110中的目标元能力部署包的版本高于本地已安装的目标元能力部署包的版本。
手表120根据接收到的目标元能力部署包的属性信息,决策出需要安装的目标元能力部署包后,可以从手机110中获取决策安装的目标元能力部署包,并进行安装。
可以理解的,对于上述手表120本地已安装目标元能力部署包,但手机110中的目标元能力部署包的版本高于本地已安装的目标元能力部署包的版本的情况,当手表120安装从手机110中获取目标元能力部署包并进行安装时,实质可以采取对本地已安装的目标元能力部署包进行更新的方式进行安装。
下面对手表120从手机110中获取决策安装的目标元能力部署包、并进行安装的过程进行说明。
示例性地,手表120决策出需要安装的目标元能力部署包后,可以向手机110发送下载请求消息,下载请求消息中可以包括手表120决策安装的目标元能力部署包的标识信息。手机110接收到来自手表120的下载请求消息后,可以根据手表120决策安装的目标元能力部署包的标识信息,从第一社交软件应用安装包中提取出相应的目标元能力部署包并发送给手表120。手表120接收到目标元能力部署包后,可以对目标元能力部署包进行安装。
例如,假设手表120决策出需要安装的目标元能力部署包包括:音频通话能力部署包、以及购物能力部署包,则手表120可以向手机110发送下载请求消息,下载请求消息中可以包括音频通话能力部署包的标识信息、以及购物能力部署包的标识信息。手机110接收到来自手表120的下载请求消息后,可以根据音频通话能力部署包的标识信息、以及购物能力部署包的标识信息,从第一社交软件应用安装包中提取(复制)出音频通话能力部署包、以及购物能力部署包并发送给手表120。手表120接收到音频通话能力部署包、以及购物能力部署包后,可以对音频通话能力部署包、以及购物能力部署包进行安装。
一些实施例中,手表120决策安装的目标元能力部署包的标识信息可以是目标元能力部署包的名称或元能力名称,如:手表120可以从接收到的目标元能力部署包的属性信息中提取目标元能力部署包对应的元能力名称,作为目标元能力部署包的标识信息。
另外一些实施例中,手表120决策出需要安装的目标元能力部署包后,也可以将需要安装的目标元能力部署包的全部或部分属性信息打包发送给手机110。手表120发送给手机110的目标元能力部署包的属性信息可以作为目标元能力部署包的标识信息,用于向手机110指示手表120决策安装哪些目标元能力部署包。
可选地,当手表120决策安装的目标元能力部署包包括多个时,手机110可以将多个目标元能力部署包一并打包发送给手表120。
可选地,为保证安全性,手机110向手表120发送目标元能力部署包时,可以提取第一社交软件应用安装包的签名信息,并将签名信息与目标元能力部署包一并分发给手表120。
还有一些实施例中,上述实施例中所述的决策是否在手表120上安装目标元能力部署包的步骤也可以在手机110上实现。例如,手机110中可以预设有上述决策条件,手机110在确定出适合手表120安装的目标元能力部署包后,也可以不向手表120发送目标元能力部署包的属性信息。手机110可以获取手表120的剩余存储空间、剩余电量、手表120当前是否处于灭屏且充电状态等信息,并根据获取的手表120的前述信息、以及目标元能力部署包的属性信息,决策是否安装目标元能力部署包。当手机110决策出需要在手表120上安装的目标元能力部署包后,手机110可以主动向手表120发送这些目标元能力部署包。本申请对此不作限制。
可选地,当决策是否在手表120上安装目标元能力部署包的步骤可以在手机110上实现时,手机110在决策出需要在手表120上安装的目标元能力部署包后,还可以通过一个显示界面向用户显示决策出需要在手表120上安装的目标元能力部署包的标识信息,用户可以在该显示界面点击其中的一个或多个目标元能力部署包的标识信息,触发手机110将用户选择的标识信息对应的目标元能力部署包发送到手表120进行安装。也即,本实施例中,用户可以选择在手表110上安装哪些目标元能力部署包。其中,手机向用户显示决策出需要在手表120上安装的目标元能力部署包的标识信息的显示界面可以称为第二界面;第二界面中显示的目标元能力部署包的标识信息可以称为安装提示,用于提示用户是否安装这些标识信息对应的目标元能力部署包;用户在该显示界面点击其中的一个或多个目标元能力部署包的标识信息的操作可以称为第二操作。手机110接收到第二操作后,可以通过第二消息向将用户选择的标识信息对应的目标元能力部署包发送到手表120进行安装。
以上实施例以图1所示的分布式操作系统的实现场景为例,结合手机110(第一IOT设备)和手表120(第二IOT设备)的交互过程对本申请实施例提供的应用部署方法进行了示例性说明。手机110与智慧屏130、或者手机110与音响140、又或者手机110与冰箱150之间的交互过程可以参考上述手机110与手表120的交互过程,在此不再一一赘述。
另外,本申请实施例中,第一IOT设备中包括的分布式应用部署包可能包括一个或多个(不限于上述第一社交软件应用部署包)。当第一IOT设备中包括的分布式应用部署包的数量为多个时,对每个分布式应用部署包,第一IOT设备均可以按照与前述实施例相似的方式,将该分布式应用部署包中的元能力部署包分发给第二IOT设备。该第二IOT设备的个数可以为多个,第一IOT设备可以将分布式应用部署包中包括的多个元能力部署包分别分发给多个第二IOT设备,以实现多个第二IOT设备在某些场景下的协同。当第一IOT设备根据第二IOT设备发送的能力信息,发现能力可匹配地、可安装某个元能力部署包的多个第二IOT设备时,可以自动决策或提示用户确定需安装该元能力部署包的一个或多个第二IOT设备。本申请实施例对该应用部署方法可以应用的分布式操作系统的实现场景、以及第一IOT设备中包括的分布式应用部署包的数量和类型均不作限制。
例如,一些实现场景中,分布式操作系统可以包括手机、大屏、音响、手写板。手机分别与大屏、音响、手写板连接。其中,手机中预装了厂商A的在线教育应用,在线教育应用包括视频能力部署包、交互能力部署包、音频能力部署包。本申请实施例中,手机可以将视频能力部署包安装到大屏上,将交互能力部署包安装到手写板上,将音频能力部署包安装到音响上。大屏、音响、以及手写板可以基于各自安装的能力模块协同为用户提供在线教育应用的功能。
又例如,另外一些实现场景中,分布式操作系统可以包括手机、大屏、AR眼镜,通过本申请实施例所述的应用部署方法,大屏可以为用户提供直播功能,AR眼镜可以为用户提供试穿功能。或者,分布式操作系统可以包括车机和手机,通过本申请实施例所述的应用部署方法,车机可以为用户提供导航功能,手机可以为用户提供导航声音播放功能。又或者,分布式操作系统可以包括手机、手表、跑步机,通过本申请实施例所述的应用部署方法,手表可以为用户记录跑步时长、运动习惯,跑步机可以自动设置跑步速度等。
本申请实施例提供的该应用部署方法中,第二IOT设备上仅需要安装元能力部署包即可实现相应的功能,应用部署包在第二IOT设备上占用的存储空间可以大大减少。第一IOT设备上向第二IOT设备分发元能力部署包的方式,也大大简化了应用部署的流程,部署方式更加简单、快速、灵活。例如,IOT设备可根据场景随时随地在局域网内完成分布式应用安装、更新和更换部署,甚至可以让用户无感安装过程。
另外,由于第一IOT设备上的分布式应用部署包是由多个元能力部署包组成的,而部分元能力部署包可以实现在不同的第二IOT设备上进行安装。所以,该应用部署方法还可以有效提高应用安装包的复用率,减少第一IOT设备上被占用的内存(存储)空间,实现一次下载,多端部署。例如,上述图5所示的第一社交软件应用安装包中,购物能力部署包既可以被安装在冰箱上,也可以被安装在智慧屏上。
可选地,本申请实施例中,对每种类型的分布式应用安装包,分布式操作系统中只需在某个第一IOT设备上存储一份即可。
需要说明的是,第一IOT设备上的分布式应用部署包,需要第一IOT设备从服务器中进行下载。而其他第二IOT设备只需要从第一IOT设备中获取相应的元能力部署包进行安装即可,因此,服务器端的下载压力也可以更小。
可选地,本申请还有一些实施例中,第一IOT设备中可以预设有第二IOT设备的能力信息,或者,第一IOT设备可以从服务器(如云端)查询到第二IOT设备的能力信息。当第一IOT设备检测到第二IOT设备连接时,第一IOT设备可以自动根据第二IOT设备的能力信息、以及分布式应用安装包中的每个元能力部署包对应的配置清单,确定适合第二IOT设备安装的目标元能力部署包。也即,本实施例中,第二IOT设备也可以无需向第一IOT设备发送第一消息。
可选地,第一IOT设备和第二IOT设备可以分别在各自的基础进程(foundation)中启动一个或多个服务来实现本申请实施例中所述的第一IOT设备和第二IOT设备的交互过程。下面以第一IOT设备和第二IOT设备可以分别在各自的foundation中启动一个服务为例进行示例性说明。
示例性地,图7为本申请实施例提供的第一IOT设备和第二IOT设备的架构示意图。如图7所示,第一IOT设备可以包括分布式应用1、分布式应用2等用于分布式操作系统中完成多设备协同工作的应用。第一IOT设备可以在基础进程启动一个包管理服务。第二IOT设备可以在基础进程启动一个包决策服务。
第一IOT设备可以通过包管理服务实现前述实施例中所述的功能。第二IOT设备可以通过包决策服务实现前述实施例中所述的功能。
例如,包管理服务可以用于实现根据第二IOT设备的能力信息、以及分布式应用安装包中的每个元能力部署包对应的配置清单,确定适合第二IOT设备安装的目标元能力部署包;向向第二IOT设备发送目标元能力部署包的属性信息等功能。包决策服务可以用于实现向第一IOT设备发送第一消息;根据接收到的目标元能力部署包的属性信息,决策是否安装目标元能力部署包;从第一IOT设备中获取决策安装的目标元能力部署包,并进行安装等功能。
可选地,请继续参考图7所示,第一IOT设备和第二IOT设备可以分别包括一个查询下载接口,第一IOT设备和第二IOT设备可以通过彼此的查询下载接口进行交互。
可选地,第一IOT设备和第二IOT设备还可以基于根据是否包括分布式应用来决策各自启动的服务的具体类型。例如,当第二IOT设备上安装有分布式应用3时,第二IOT设备也可以在基础进程启动一个包管理服务,第一IOT设备也可以在基础进程启动一个包决策服务,第二IOT设备启动的包管理服务、以及第一IOT设备启动的包决策服务可以用于配合将分布式应用3中的元能力部署包部署到第一IOT设备上。也即,本申请实施例中,两个IOT设备之间可以根据应用部署的需求(如第一IOT设备向第二IOT设备部署,或者,第二IOT设备向第一IOT设备部署),决定各自启动的服务类型(如包管理服务或包决策服务),本申请对此并不限制。
以上实施例中是以第一IOT设备中包括的第一应用可以被划分为多个能力模块(能力模块也可以称为元能力模块、能力单元等),每个能力模块由一个元能力部署包组成,用于实现一个独立功能为例,对本申请实施例提供的应用部署方法进行了说明。
可选地,还有一些实施例中,第一应用包括的多个能力模块中,部分或全部能力模块也可以由多个元能力部署包组成。当某个能力模块由多个元能力部署包组成时,该能力模块可以用于实现对应的多个功能。
例如,分布式应用安装包可以是某个社交软件的安装包,该社交软件的安装包可以包括文字聊天能力部署包、视频通话能力部署包、音频通话能力部署包、购物能力部署包等元能力部署包。其中,文字聊天能力部署包、视频通话能力部署包、以及音频通话能力部署包可以组成社交能力模块,购物能力部署包可以组成娱乐能力模块等。在此对能力模块的划分方式不作限制。
本申请实施例中,第一IOT设备可以在能力模块的层面,根据第二IOT设备的能力信息,从第一应用包括的多个能力模块中确定适合第二设备安装的目标能力模块(如第一目标能力模块),并向第二IOT设备发送第一目标能力模块。当第一目标能力模块由一个元能力部署包组成时,第二IOT设备安装第一目标能力模块后可以实现第一目标能力模块对应的一个功能。当第一目标能力模块由多个元能力部署包组成时,第二IOT设备安装第一目标能力模块后可以实现第一目标能力模块对应的多个功能。
可选地,第一目标能力模块的数量可以是一个或多个。
类似地,分布式操作系统中还可以包括第三IOT设备(第三IOT设备与第二IOT设备的设备形态相同)。第一IOT设备可以在能力模块的层面,根据第三IOT设备的能力信息,从第一应用包括的多个能力模块中确定适合第三设备安装的目标能力模块(如第二目标能力模块),并向第三IOT设备发送第二目标能力模块。第二目标能力模块可以由一个元能力部署包或多个元能力部署包组成,用于实现一个或多个功能。
可选地,第二目标能力模块的数量可以是一个或多个。
示例性地,以IOT设备为手机为例,图8为本申请实施例提供的IOT设备的硬件组成示意图。
如图8所示,手机可以包括处理器810,外部存储器接口820,内部存储器821,通用串行总线(universal serial bus,USB)接口830,充电管理模块840,电源管理模块841,电池842,天线1,天线2,移动通信模块850,无线通信模块860,音频模块870,扬声器870A,受话器870B,麦克风870C,耳机接口870D,传感器模块880,按键890,马达891,指示器892,摄像头893,显示屏894,以及用户标识模块(subscriber identification module,SIM)卡接口895等。
处理器810可以包括一个或多个处理单元,例如:处理器810可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是手机的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器810中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器810中的存储器为高速缓冲存储器。该存储器可以保存处理器810刚用过或循环使用的指令或数据。如果处理器810需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器810的等待时间,因而提高了系统的效率。
在一些实施例中,处理器810可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,SIM接口,和/或USB接口等。
外部存储器接口820可以用于连接外部存储卡,例如Micro SD卡,实现扩展手机的存储能力。外部存储卡通过外部存储器接口820与处理器810通信,实现数据存储功能。例如将图片、音乐,视频等文件保存在外部存储卡中。
内部存储器821可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器810通过运行存储在内部存储器821的指令,从而执行手机的各种功能应用以及数据处理。例如,手机作为第一IOT设备时,处理器810可以通过运行存储在内部存储器821的指令,执行本申请实施例提供的应用部署方法中第一IOT设备的各种功能。
内部存储器821还可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(如第一社交软件应用)等。存储数据区可存储手机使用过程中所创建的数据(比如图像数据,电话本)等。此外,内部存储器821可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
充电管理模块840用于从充电器接收充电输入。充电管理模块840为电池842充电的同时,还可以通过电源管理模块841为手机供电。电源管理模块841用于连接电池842,充电管理模块840,以及处理器810。电源管理模块841也可接收电池842的输入为手机供电。
手机的无线通信功能可以通过天线1,天线2,移动通信模块850,无线通信模块860,调制解调处理器以及基带处理器等实现。天线1和天线2用于发射和接收电磁波信号。手机中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
可选地,手机可以通过无线功能接入分布式操作系统的分布式网络中。
手机可以通过音频模块870,扬声器870A,受话器870B,麦克风870C,耳机接口870D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
传感器模块880可以包括压力传感器880A,陀螺仪传感器880B,气压传感器880C,磁传感器880D,加速度传感器880E,距离传感器880F,接近光传感器880G,指纹传感器880H,温度传感器880J,触摸传感器880K,环境光传感器880L,骨传导传感器880M等。
显示屏894用于显示图像,视频等。显示屏894包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,手机可以包括1个或N个显示屏894,N为大于1的正整数。例如,显示屏894可以用于显示应用程序界面、或者显示前述实施例中所述的应用部署方法中手机可以显示的任意一个显示界面。
手机通过GPU,显示屏894,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏894和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器810可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
可以理解的是,图8所示的结构并不构成对手机的具体限定。在一些实施例中,手机也可以包括比图8所示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置等。又或者,图8所示的一些部件可以以硬件,软件或软件和硬件的组合实现。
另外,当IOT设备是平板电脑、手写板、可穿戴设备(如手表、手环、耳机)、大屏(如智慧屏)、笔记本电脑、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备(如VR眼镜)、汽车(或车载设备)、摄像头、扫地机、电饭煲、音响、跑步机、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personaldigital assistant,PDA)等其他设备时,这些其他IOT设备的具体结构也可以参考图8所示。示例性地,其他IOT设备可以是在图8给出的结构的基础上增加或减少了组件,在此不再一一赘述。
应当理解,以上各实施例中所述仅为对本申请实施例提供的应用部署方法的示例性说明。在其他一些可能的实现方式中,以上所述的各实施例也可以删减或增加某些执行步骤,或者以上实施例中所述的部分步骤的顺序也可以进行调整,本申请对此均不作限制。
对应于前述实施例中所述的应用部署方法,本申请实施例提供一种应用部署装置,该装置可以应用于第一设备,用于实现前述实施例所述的应用部署方法中第一设备(即第一IOT设备)可以实现的步骤。该装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。
例如,图9为本申请实施例提供的应用部署装置的结构示意图。如图9所示,该装置可以包括:发送单元901、接收单元902、处理单元903;发送单元901、接收单元902、以及处理单元903可以用于配合实现前述实施例所述的应用部署方法中第一设备所执行的步骤。如:发送单元901可以用于向第二设备发送第一目标能力模块。接收单元902可以用于接收来自第二设备的第一消息。处理单元903可以用于根据第二设备的能力信息,从第一应用包括的多个能力模块中确定适合第二设备安装的第一目标能力模块等。
应当理解,该装置还可能包括用于实现前述实施例所述的应用部署方法中第一设备所执行的步骤的其他模块或单元,如:显示单元,在此并未一一示出。
可选地,本申请实施例还提供一种应用部署装置,该装置可以应用于第二设备,用于实现前述方法实施例所述的方法中第二设备(即第二IOT设备)所执行的步骤。该装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。
例如,图10为本申请实施例提供的应用部署装置的另一结构示意图。如图10所示,该装置可以包括:发送单元1001、接收单元1002、处理单元1003;发送单元1001、接收单元1002、以及处理单元1003可以用于配合实现前述实施例所述的应用部署方法中第二设备所执行的步骤。如:发送单元1001可以用于向第一设备发送第一消息。接收单元1002可以用于接收来自第一设备的第一目标能力模块。处理单元1003可以用于决策是否安装第一目标能力模块等。
应当理解,该装置还可能包括用于实现前述实施例所述的应用部署方法中第二设备所执行的步骤的其他模块或单元,如:显示单元,在此并未一一示出。
应理解以上装置中单元(或称为模块)的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且装置中的单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分单元以软件通过处理元件调用的形式实现,部分单元以硬件的形式实现。
例如,各个单元可以为单独设立的处理元件,也可以集成在装置的某一个芯片中实现,此外,也可以以程序的形式存储于存储器中,由装置的某一个处理元件调用并执行该单元的功能。此外这些单元全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件又可以称为处理器,可以是一种具有信号的处理能力的集成电路。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路实现或者以软件通过处理元件调用的形式实现。
在一个例子中,以上装置中的单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个专用集成电路(application specific integrated circuit,ASIC),或,一个或多个数字信号处理器(digital signal process,DSP),或,一个或者多个现场可编辑逻辑门阵列(field programmable gate array,FPGA),或这些集成电路形式中至少两种的组合。
再如,当装置中的单元可以通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,CPU)或其它可以调用程序的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。
在一种实现中,以上装置实现以上方法中各个对应步骤的单元可以通过处理元件调度程序的形式实现。例如,该装置可以包括处理元件和存储元件,处理元件调用存储元件存储的程序,以执行以上方法实施例所述的方法中第一设备或第二设备执行的步骤。存储元件可以为与处理元件处于同一芯片上的存储元件,即片内存储元件。
在另一种实现中,用于执行以上方法的程序可以在与处理元件处于不同芯片上的存储元件,即片外存储元件。此时,处理元件从片外存储元件调用或加载程序于片内存储元件上,以调用并执行以上方法实施例所述的方法中第一设备或第二设备执行的步骤。
例如,本申请实施例还可以提供一种装置,如:电子设备。该电子设备可以包括:处理器;存储器;以及计算机程序;其中,所述计算机程序存储在所述存储器上,当所述计算机程序被所述处理器执行时,使得所述电子设备实现如前述实施例所述的方法中第一设备或第二设备执行的步骤。该存储器可以位于该电子设备之内,也可以位于该电子设备之外。且该处理器包括一个或多个。
示例性地,该电子设备可以是手机、平板电脑、手写板、可穿戴设备(如手表、手环、耳机)、大屏(如智慧屏)、笔记本电脑、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备(如VR眼镜)、汽车(或车载设备)、摄像头、扫地机、电饭煲、音响、跑步机、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等中的任意一种IOT设备。
在又一种实现中,该装置实现以上方法中各个步骤的单元可以是被配置成一个或多个处理元件,这里的处理元件可以为集成电路,例如:一个或多个ASIC,或,一个或多个DSP,或,一个或者多个FPGA,或者这些类集成电路的组合。这些集成电路可以集成在一起,构成芯片。
例如,本申请实施例还提供一种芯片,该芯片可以应用于上述电子设备。芯片包括一个或多个接口电路和一个或多个处理器;接口电路和处理器通过线路互联;处理器通过接口电路从电子设备的存储器接收并执行计算机指令,以实现如前述实施例所述的方法中第一设备或第二设备执行的步骤。
本申请实施例还提供一种计算机程序产品,包括计算机可读代码,当计算机可读代码在电子设备中运行时,使得电子设备实现如前述实施例所述的方法中第一设备或第二设备执行的步骤。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。
基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,如:程序。该软件产品存储在一个程序产品,如计算机可读存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
例如,本申请实施例还可以提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备实现如前述实施例所述的方法中第一设备或第二设备执行的步骤。
可选地,本申请实施例还提供一种分布式操作系统,包括:第一设备和第二设备,第一设备和第二设备连接;第一设备包括第一应用,第一应用包括可用于安装的多个能力模块。第一设备可以根据第二设备的能力信息,从第一应用包括的多个能力模块中确定适合第二设备安装的第一目标能力模块,并向第二设备发送第一目标能力模块;第二设备可以接收并安装第一目标能力模块。第二设备安装了第一目标能力模块后,可以通过第一目标能力模块实现相应的功能。
其中,第一设备和第二设备均为IOT设备。第一设备可以是设备资源(如CPU资源、内存资源、存储资源等)较为丰富,可独立联网和人机交互的IOT设备,如:第一设备可以是手机、平板电脑、笔记本电脑等IOT设备。
第二设备可以是手机、平板电脑、手写板、可穿戴设备(如手表、手环、耳机)、大屏(如智慧屏)、笔记本电脑、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备(如VR眼镜)、汽车(或车载设备)、摄像头、扫地机、电饭煲、音响、跑步机、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等中的任意一种IOT设备。例如,第二设备可以是相对于第一设备而言,设备资源较少,无法独立联网和/或人机交互的IOT设备,如:第二设备可以是手写板、耳机、VR眼镜、车载设备、电饭煲、音响、跑步机等。或者,第二设备也可以与第一设备相同,是设备资源较为丰富,可独立联网和人机交互的IOT设备。
该分布式操作系统中,第一设备中的应用安装包按不同维度被拆分为一个或多个能力模块,第一设备与第二设备进行交互,实现在第二设备上部署相应的能力模块,支持第二设备实现对应的功能,一方面可以大大减少应用安装包在第二设备上所占用的存储资源。另一方面,还可以解决一些无法联网的第二设备的应用部署问题。
可选地,第二设备可以向第一设备发送第一消息,第一消息包括第二设备的能力信息。第一设备接收到第一消息后,可以根据第一消息中包括的第二设备的能力信息,从第一应用包括的多个能力模块中确定适合第二设备安装的第一目标能力模块。
本设计中,第二设备的能力信息可以是通过第一消息上报给第一设备的,从而第一设备可以根据第二设备的能力信息,从第一应用包括的多个能力模块中确定适合第二设备安装的第一目标能力模块。
在一种可能的设计中,第一设备可以向第二设备发送查询请求消息,查询请求消息用于查询第二设备的能力信息。第二设备接收到来自第一设备的查询请求消息后,可以向第一设备发送第一消息。
本设计中,第一设备可以主动向第二设备发送查询请求消息,以触发第二设备根据查询请求消息向第一设备返回第一消息。
一些实现方式中,当第二设备与第一设备建立连接时,第一设备可以向第二设备发送查询请求消息。
本实现方式中,第一设备向第二设备发送查询请求消息的触发条件为:第二设备与第一设备建立连接。例如,当第二设备接入第一设备所在的局域网时,第一设备可以检测到第二设备的接入。第一设备检测到第二设备接入时,可以主动向第二设备发送查询请求消息。
另外一些实现方式中,第一设备可以显示第一界面,第一界面包括一个或多个第二设备的设备标识;第一设备可以接收第一操作,第一操作为在第一界面选择第二设备的设备标识的操作;第一设备可以响应于第一操作,向第二设备发送查询请求消息。
本实现方式中,第一设备向第二设备发送查询请求消息的触发条件为:第一设备接收到第一操作。例如,第一操作为用户主动在第一界面选择向哪个或哪些第二设备发送查询请求消息,第一设备可以响应于用户的第一操作,向用户主动选择的第二设备发送查询请求消息。
在另一种可能的设计中,当第二设备与第一设备建立连接时,第二设备可以向第一设备发送第一消息。
示例性地,第一设备和第二设备中可以分别包括一个分布式网络模块,第二设备接入第一设备所在的分布式网络时,第二设备通过自己的分布式网络模块得知第一设备包括分布式应用安装包,从而,第二设备可以主动向第一设备发送第一消息。其中,分布式网络模块可以是一个单独的芯片,或者,集成在IOT设备中的处理器中的一个软件模块。
可选地,第二设备接入第一设备所在的分布式网络的情况可以包括:第二设备第一次接入第一设备所在的分布式网络,和/或,第二设备与第一设备所在的分布式网络断开连接后再次接入。例如,第二设备掉电或关机后可能会与第一设备所在的分布式网络断开连接,之后,当第二设备再次上电或开机时,第二设备可以向第一设备发送第一消息。
一些实施例中,第一应用包括的每个能力模块包括能力模块对应的配置清单;第一设备根据第二设备的能力信息,从第一应用包括的多个能力模块中确定适合第二设备安装的第一目标能力模块,包括:第一设备根据第二设备的能力信息、以及第一应用包括的每个能力模块对应的配置清单,从第一应用包括的多个能力模块中确定适合第二设备安装的第一目标能力模块。
示例性地,每个能力模块对应的配置清单包括能力模块适合的设备类型、能力模块适合的设备类型对应的最低设备版本要求、能力模块适合的最低设备等级、能力模块所需要的硬件能力要求、能力模块支持的中央处理器应用程序二进制接口CPU-ABI类型、以及能力模块适用的场景类型中的一种或多种。
示例性地,第二设备的能力信息包括第二设备的设备类型、设备版本、设备等级、设备硬件能力、以及CPU-ABI类型中的一种或多种。
其中,设备等级可以是根据IOT设备的资源是否丰富、IOT设备是否可以独立联网和/或人机交互等因素进行划分的。如:可以根据IOT设备的运行内存(random accessmemory,RAM)、存储性内存(read only memory,ROM)、CPU等的能力,将IOT设备划分为零级至五级,分别对应L0至L5,IOT设备的等级越高,性能越强。在此对IOT设备等级的划分方式不作限制。
在一种可能的设计中,第一设备可以向第二设备发送第一目标能力模块的属性信息;第二设备可以接收来自第一设备的第一目标能力模块的属性信息,并根据第一目标能力模块的属性信息,决策是否安装第一目标能力模块;当第二设备决策安装第一目标能力模块时,第二设备可以向第一设备发送下载请求消息。第一设备可以接收来自第二设备的下载请求消息,下载请求消息包括第一目标能力模块的标识信息。第一设备接收到下载请求消息后,可以根据第一目标能力模块的标识信息向第二设备发送第一目标能力模块。
示例性地,第一目标能力模块的属性信息包括以下一种或多种:第一目标能力模块的能力名称、版本信息、能力类型、第一目标能力模块的大小、第一目标能力模块在第一设备上的使用次数、第一目标能力模块所需要的权限。
本设计中,第二设备可以根据第一目标能力模块的属性信息,决策是否安装第一目标能力模块。当第二设备决策安装第一目标能力模块时,可以向第一设备发送下载请求消息,下载请求消息包括第一目标能力模块的标识信息。第一设备接收到下载请求消息后,可以向第二设备发送第一目标能力模块。
可选地,第二设备包括预设的决策条件;所述第二设备根据第一目标能力模块的属性信息,决策是否安装第一目标能力模块,包括:第二设备根据第一目标能力模块的属性信息,确定第一目标能力模块满足决策条件时,决策安装第一目标能力模块。
示例性地,决策条件包括以下一种或多种:第二设备的剩余存储空间大于第一目标能力模块的大小、第二设备的剩余电量大于第一阈值、第二设备当前处于灭屏且充电状态、第一目标能力模块在所述第一设备上的使用次数大于第二阈值、第一目标能力模块所需要的权限中不包括敏感权限。
一些实施例中,第二设备可以响应于对决策条件的设置操作,对决策条件进行修改。
本实施例中,用户可以主动在第一设备或第二设备上对决策条件进行设置,第二设备可以响应于用户对决策条件的设置操作,对决策条件进行修改。之后,第二设备可以根据用户设置的决策条件决策是否安装某个能力模块。
在另一种可能的设计中,第一设备可以显示第二界面,第二界面包括第一目标能力模块的安装提示;第一设备可以接收第二操作,第二操作为选择安装第一目标能力模块的操作;第一设备可以响应于第二操作,向第二设备发送第二消息,第二消息用于指示第二设备安装第一目标能力模块。
本设计中,用户可以在第一设备提供的第二界面上选择是否在第二设备上安装第一目标能力模块。第一设备接收到用户选择安装第一目标能力模块的操作(即第二操作)时,可以通过第二消息指示第二设备对第一目标能力模块进行安装。
在又一种可能的设计中,第二设备可以显示第三界面,第三界面包括第一目标能力模块的安装提示;第二设备可以接收第三操作,第三操作为选择安装第一目标能力模块的操作;第二设备可以响应于第三操作,安装第一目标能力模块。
本设计中,用户可以在第二设备提供的第三界面上选择是否在第二设备上安装第一目标能力模块。第二设备接收到用户选择安装第一目标能力模块的操作(即第三操作)时,可以对第一目标能力模块进行安装。
一些实施例中,该分布式操作系统还包括:第三设备,第一设备与第三设备连接;第一设备可以根据第三设备的能力信息,从第一应用包括的多个能力模块中确定适合第三设备安装的第二目标能力模块,并向第三设备发送第二目标能力模块;第三设备可以接收并安装第二目标能力模块。
可选地,第一目标能力模块和第二目标能力模块相同或不同。
也即,本实施例中,第一设备可以与第二设备、第三设备等多个不同的设备连接。第一设备可以根据与其连接的不同设备的能力信息,从第一应用包括的多个能力模块中确定适合每个设备安装的目标能力模块,并向每个设备发送适合该设备安装的目标能力模块。
类似地,该分布式操作系统中,第一设备可以用于实现前述方法实施例所述的方法中第一设备所实现的全部功能,第二设备可以用于实现上述第六方面所述的方法中第二设备所实现的全部功能,在此不再一一赘述。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (28)
1.一种应用部署方法,其特征在于,所述方法应用于第一设备,所述第一设备与第二设备连接;所述第一设备包括第一应用,所述第一应用包括可用于安装的多个能力模块;所述能力模块具有实现一个或多个功能的能力;所述方法包括:
所述第一设备根据所述第二设备的能力信息,从所述第一应用包括的多个能力模块中确定适合所述第二设备安装的第一目标能力模块;
所述第一设备向所述第二设备发送所述第一目标能力模块。
2.根据权利要求1所述的方法,其特征在于,所述第一设备根据所述第二设备的能力信息,从所述第一应用包括的多个能力模块中确定适合所述第二设备安装的第一目标能力模块之前,所述方法还包括:
所述第一设备接收来自所述第二设备的第一消息,所述第一消息包括所述第二设备的能力信息。
3.根据权利要求2所述的方法,其特征在于,所述第一设备接收来自所述第二设备的第一消息之前,所述方法还包括:
所述第一设备向所述第二设备发送查询请求消息,所述查询请求消息用于查询所述第二设备的能力信息。
4.根据权利要求3所述的方法,其特征在于,所述第一设备向所述第二设备发送查询请求消息,包括:
当所述第二设备与所述第一设备建立连接时,所述第一设备向所述第二设备发送查询请求消息。
5.根据权利要求3所述的方法,其特征在于,所述第一设备向所述第二设备发送查询请求消息,包括:
所述第一设备显示第一界面,所述第一界面包括一个或多个第二设备的设备标识;
所述第一设备接收第一操作,所述第一操作为在所述第一界面选择所述第二设备的设备标识的操作;
所述第一设备响应于所述第一操作,向所述第二设备发送查询请求消息。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述第一应用包括的每个能力模块包括所述能力模块对应的配置清单;
所述第一设备根据所述第二设备的能力信息,从所述第一应用包括的多个能力模块中确定适合所述第二设备安装的第一目标能力模块,包括:
所述第一设备根据所述第二设备的能力信息、以及所述第一应用包括的每个能力模块对应的配置清单,从所述第一应用包括的多个能力模块中确定适合所述第二设备安装的第一目标能力模块。
7.根据权利要求6所述的方法,其特征在于,每个所述能力模块对应的配置清单包括所述能力模块适合的设备类型、所述能力模块适合的设备类型对应的最低设备版本要求、所述能力模块适合的最低设备等级、所述能力模块所需要的硬件能力要求、所述能力模块支持的中央处理器应用程序二进制接口CPU-ABI类型、以及所述能力模块适用的场景类型中的一种或多种。
8.根据权利要求6或7所述的方法,其特征在于,所述第二设备的能力信息包括所述第二设备的设备类型、设备版本、设备等级、设备硬件能力、以及CPU-ABI类型中的一种或多种。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述第一设备向所述第二设备发送所述第一目标能力模块之前,所述方法还包括:
所述第一设备向所述第二设备发送所述第一目标能力模块的属性信息;
所述第一设备接收来自所述第二设备的下载请求消息,所述下载请求消息包括所述第一目标能力模块的标识信息。
10.根据权利要求9所述的方法,其特征在于,所述第一目标能力模块的属性信息包括以下一种或多种:
所述第一目标能力模块的能力名称、版本信息、能力类型、所述第一目标能力模块的大小、所述第一目标能力模块在所述第一设备上的使用次数、所述第一目标能力模块所需要的权限。
11.根据权利要求9所述的方法,其特征在于,所述方法还包括:
所述第一设备显示第二界面,所述第二界面包括所述第一目标能力模块的安装提示;
所述第一设备接收第二操作,所述第二操作为选择安装所述第一目标能力模块的操作;
所述第一设备响应于所述第二操作,向所述第二设备发送第二消息,所述第二消息用于指示所述第二设备安装所述第一目标能力模块。
12.根据权利要求1-11任一项所述的方法,其特征在于,所述第一设备还与第三设备连接;所述方法还包括:
所述第一设备根据所述第三设备的能力信息,从所述第一应用包括的多个能力模块中确定适合所述第三设备安装的第二目标能力模块;
所述第一设备向所述第三设备发送所述第二目标能力模块。
13.一种应用部署方法,其特征在于,所述方法应用于第二设备,所述第二设备与第一设备连接;所述第一设备包括第一应用,所述第一应用包括可用于安装的多个能力模块;所述能力模块具有实现一个或多个功能的能力;所述方法包括:
所述第二设备接收来自所述第一设备的第一目标能力模块;所述第一目标能力模块是所述第一应用包括的多个能力模块中的一个;
所述第二设备安装所述第一目标能力模块。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
所述第二设备向所述第一设备发送第一消息,所述第一消息包括所述第二设备的能力信息。
15.根据权利要求14所述的方法,其特征在于,所述第二设备向所述第一设备发送第一消息之前,所述方法还包括:
所述第二设备接收来自所述第一设备的查询请求消息,所述查询请求消息用于查询所述第二设备的能力信息。
16.根据权利要求14所述的方法,其特征在于,所述第二设备向所述第一设备发送第一消息,包括:
当所述第二设备与所述第一设备建立连接时,所述第二设备向所述第一设备发送第一消息。
17.根据权利要求14-16任一项所述的方法,其特征在于,所述第二设备的能力信息包括所述第二设备的设备类型、设备版本、设备等级、设备硬件能力、以及CPU-ABI类型中的一种或多种。
18.根据权利要求13-17任一项所述的方法,其特征在于,所述第二设备接收来自所述第一设备的第一目标能力模块之前,所述方法还包括:
所述第二设备向所述第一设备发送下载请求消息,所述下载请求消息包括所述第一目标能力模块的标识信息。
19.根据权利要求18所述的方法,其特征在于,所述第二设备向所述第一设备发送下载请求消息,包括:
所述第二设备接收来自所述第一设备的第一目标能力模块的属性信息;
所述第二设备根据所述第一目标能力模块的属性信息,决策是否安装所述第一目标能力模块;
当所述第二设备决策安装所述第一目标能力模块时,所述第二设备向所述第一设备发送所述下载请求消息。
20.根据权利要求19所述的方法,其特征在于,所述第一目标能力模块的属性信息包括以下一种或多种:
所述第一目标能力模块的能力名称、版本信息、能力类型、所述第一目标能力模块的大小、所述第一目标能力模块在所述第一设备上的使用次数、所述第一目标能力模块所需要的权限。
21.根据权利要求19或20所述的方法,其特征在于,所述第二设备包括预设的决策条件;所述第二设备根据所述第一目标能力模块的属性信息,决策是否安装所述第一目标能力模块,包括:
所述第二设备根据所述第一目标能力模块的属性信息,确定所述第一目标能力模块满足所述决策条件时,决策安装所述第一目标能力模块。
22.根据权利要求21所述的方法,其特征在于,所述决策条件包括以下一种或多种:
所述第二设备的剩余存储空间大于所述第一目标能力模块的大小、所述第二设备的剩余电量大于第一阈值、所述第二设备当前处于灭屏且充电状态、所述第一目标能力模块在所述第一设备上的使用次数大于第二阈值、所述第一目标能力模块所需要的权限中不包括敏感权限。
23.根据权利要求21或22所述的方法,其特征在于,所述方法还包括:
所述第二设备响应于对所述决策条件的设置操作,对所述决策条件进行修改。
24.根据权利要求13-23任一项所述的方法,其特征在于,所述第二设备安装所述第一目标能力模块,包括:
所述第二设备显示第三界面,所述第三界面包括所述第一目标能力模块的安装提示;
所述第二设备接收第三操作,所述第三操作为选择安装所述第一目标能力模块的操作;
所述第二设备响应于所述第三操作,安装所述第一目标能力模块。
25.一种分布式操作系统,其特征在于,包括:第一设备和第二设备,所述第一设备和所述第二设备连接;所述第一设备包括第一应用,所述第一应用包括可用于安装的多个能力模块;
所述第一设备根据所述第二设备的能力信息,从所述第一应用包括的多个能力模块中确定适合所述第二设备安装的第一目标能力模块,并向所述第二设备发送所述第一目标能力模块;
所述第二设备接收并安装所述第一目标能力模块。
26.根据权利要求25所述的系统,其特征在于,还包括:第三设备,所述第一设备与所述第三设备连接;
所述第一设备根据所述第三设备的能力信息,从所述第一应用包括的多个能力模块中确定适合所述第三设备安装的第二目标能力模块,并向所述第三设备发送所述第二目标能力模块;
所述第三设备接收并安装所述第二目标能力模块。
27.一种电子设备,其特征在于,包括:处理器;存储器;以及计算机程序;其中,所述计算机程序存储在所述存储器上,当所述计算机程序被所述处理器执行时,使得所述电子设备实现如权利要求1-12任一项所述的方法,或者,如权利要求13-24任一项所述的方法。
28.一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,其特征在于,当所述计算机程序在电子设备上运行时,使得所述电子设备实现如权利要求1-12任一项所述的方法,或者,如权利要求13-24任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110640601.9A CN115454454A (zh) | 2021-06-08 | 2021-06-08 | 应用部署方法、分布式操作系统、电子设备及存储介质 |
EP22819188.8A EP4332756A1 (en) | 2021-06-08 | 2022-04-07 | Application deployment method, distributed operation system, electronic device, and storage medium |
PCT/CN2022/085624 WO2022257583A1 (zh) | 2021-06-08 | 2022-04-07 | 应用部署方法、分布式操作系统、电子设备及存储介质 |
US18/531,317 US20240111595A1 (en) | 2021-06-08 | 2023-12-06 | Application deployment method, distributed operating system, electronic device, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110640601.9A CN115454454A (zh) | 2021-06-08 | 2021-06-08 | 应用部署方法、分布式操作系统、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115454454A true CN115454454A (zh) | 2022-12-09 |
Family
ID=84294494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110640601.9A Pending CN115454454A (zh) | 2021-06-08 | 2021-06-08 | 应用部署方法、分布式操作系统、电子设备及存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240111595A1 (zh) |
EP (1) | EP4332756A1 (zh) |
CN (1) | CN115454454A (zh) |
WO (1) | WO2022257583A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116909582A (zh) * | 2023-09-13 | 2023-10-20 | 云账户技术(天津)有限公司 | 一种可视化大屏业务部署方法、装置及电子设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102402426B (zh) * | 2010-09-10 | 2014-08-06 | 中国移动通信集团公司 | 终端设备以及终端设备中应用程序图形界面显示方法 |
CN102970428A (zh) * | 2012-11-16 | 2013-03-13 | 广东欧珀移动通信有限公司 | 一种移动终端应用分享方法及系统 |
CN103092661A (zh) * | 2013-01-31 | 2013-05-08 | 晨风云(北京)科技有限公司 | 一种智能移动终端的软件安装方法及系统 |
CN104683409B (zh) * | 2013-11-29 | 2019-03-01 | 华为终端(东莞)有限公司 | 终端间应用共享的方法和终端 |
CN104378144A (zh) * | 2014-10-10 | 2015-02-25 | 惠州市博泰通讯设备有限公司 | 蓝牙设备软件安装方法和系统 |
WO2016112527A1 (zh) * | 2015-01-16 | 2016-07-21 | 华为技术有限公司 | 能力信息上报方法、装置和设备 |
US10698671B2 (en) * | 2015-03-30 | 2020-06-30 | Arxan Technologies, Inc. | Processing, modification, distribution of custom software installation packages |
-
2021
- 2021-06-08 CN CN202110640601.9A patent/CN115454454A/zh active Pending
-
2022
- 2022-04-07 EP EP22819188.8A patent/EP4332756A1/en active Pending
- 2022-04-07 WO PCT/CN2022/085624 patent/WO2022257583A1/zh active Application Filing
-
2023
- 2023-12-06 US US18/531,317 patent/US20240111595A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116909582A (zh) * | 2023-09-13 | 2023-10-20 | 云账户技术(天津)有限公司 | 一种可视化大屏业务部署方法、装置及电子设备 |
CN116909582B (zh) * | 2023-09-13 | 2024-01-30 | 云账户技术(天津)有限公司 | 一种可视化大屏业务部署方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US20240111595A1 (en) | 2024-04-04 |
WO2022257583A1 (zh) | 2022-12-15 |
EP4332756A1 (en) | 2024-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021164554A1 (zh) | 通知处理系统、方法以及电子设备 | |
US11818423B2 (en) | Method for outputting audio and electronic device for the same | |
WO2020108356A1 (zh) | 一种应用显示方法及电子设备 | |
WO2021017894A1 (zh) | 一种使用远程sim模块的方法及电子设备 | |
CN114461239B (zh) | 软件升级系统和软件升级方法 | |
CN115297405A (zh) | 一种音频输出方法及终端设备 | |
CN114741008B (zh) | 分布式跨设备协同方法、电子设备及通信系统 | |
CN113821767A (zh) | 应用程序的权限管理方法、装置和电子设备 | |
CN114461240A (zh) | 软件升级方法、软件升级系统及电子设备 | |
US20240111595A1 (en) | Application deployment method, distributed operating system, electronic device, and storage medium | |
WO2022063037A1 (zh) | 一种补丁包安装方法和装置 | |
CN104219372B (zh) | 调整移动终端背光亮度的方法及装置 | |
CN116137639A (zh) | 一种跨设备音频数据传输的方法和电子设备 | |
CN104052801B (zh) | 一种信息处理方法及电子设备 | |
CN115314427B (zh) | 一种协议测试方法、电子设备及芯片系统 | |
KR20210050398A (ko) | 전자 장치와 연결되지 않은 외부 전자 장치로 데이터를 전송하는 전자 장치 및 전자 장치의 동작 방법 | |
CN113286349B (zh) | 个人热点连接方法、装置、终端及存储介质 | |
WO2022052706A1 (zh) | 一种服务的分享方法、系统及电子设备 | |
US20230289432A1 (en) | Application Data Transmission Method, User Equipment, and System | |
CN116795435A (zh) | 兼容性管控方法及相关设备 | |
CN113835802A (zh) | 设备交互方法、系统、设备及计算机可读存储介质 | |
CN116056050A (zh) | 播放音频的方法、电子设备及系统 | |
CN113268210A (zh) | 投屏方法、设备及存储介质 | |
CN114172925B (zh) | 配网方法及设备 | |
WO2023046028A1 (zh) | 用于分布式显示的屏幕识别方法、介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |