CN115114637A - 基于权限传递的访问控制方法、相关装置及系统 - Google Patents
基于权限传递的访问控制方法、相关装置及系统 Download PDFInfo
- Publication number
- CN115114637A CN115114637A CN202210221759.7A CN202210221759A CN115114637A CN 115114637 A CN115114637 A CN 115114637A CN 202210221759 A CN202210221759 A CN 202210221759A CN 115114637 A CN115114637 A CN 115114637A
- Authority
- CN
- China
- Prior art keywords
- permission
- access request
- callee
- access
- instance
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供了基于权限传递的访问控制方法、相关装置及系统。在该方法中,客体设备接收到多个用于调用同一被调用者的访问请求后,可以创建多个该被调用者的实例。并且,主体设备可以请求用户授予访问请求所需的权限,并将用户授予的权限信息发送给客体设备。客体设备可以根据该权限信息运行对应的被调用者的实例,以响应该主体设备发起的访问请求。实施该方法,客体设备够获取到访问请求所需的权限,从而实现设备间的资源调用,满足用户的实际需求。此外,多实例提供服务的形式,可以避免权限扩大化,保证客体设备中的数据安全,防止数据滥用及泄露。
Description
本申请要求于2021年3月23日提交的申请号为202110310734.X、申请名称为“基于权限传递的访问控制方法、相关装置及系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机及通信技术领域,尤其涉及基于权限传递的访问控制方法、相关装置及系统。
背景技术
在包含单个设备的单机场景中,该设备中的各个应用程序(application,APP)之间可以相互调用,并可以访问该设备中的各类资源。随着智能终端的发展,用户生活中的设备种类及数量也越来越多,各个设备互通互联的分布式场景正在逐渐实现。在分布式场景中,设备之间互相共享资源,例如共享计算能力、存储资源、网络资源等等,将成为未来的趋势。
为了保护用户隐私,相关技术要求被调用的电子设备必须获取访问敏感信息的权限,并在权限检查通过后,才可以访问该敏感信息。
在调用过程中,如何保证被调用的电子设备获取到准确的权限,并且保证电子设备能够对该调用操作做可靠、安全的权限检查,从而保护电子设备中的数据安全,保护用户隐私,是当前亟需解决的问题。
发明内容
本申请提供了基于权限传递的访问控制方法、相关装置及系统,可以使得客体设备获取访问请求所需的权限,从而实现设备间的资源调用,满足用户的实际需求。此外,还可以避免权限扩大化,保证客体设备中的数据安全,防止数据滥用及泄露。
第一方面,本申请实施例提供了一种基于权限传递的访问控制方法,该方法应用于包含第一设备、第二设备和第三设备的通信系统,第一设备中安装有第一调用者,第二设备中安装有第二调用者、第三设备中安装有被调用者;第一调用者、第二调用者、被调用者为应用程序APP或功能组件;APP为实现多个功能的程序实体,功能组件为实现单一功能的程序实体。
第一方面的方法包括:第一设备向第三设备发送第一访问请求,第一访问请求用于第一调用者调用被调用者以访问第三设备中的第一资源;第二设备向第三设备发送第二访问请求,第二访问请求用于第二调用者调用被调用者以访问第一资源;第一设备向第三设备发送第一权限信息,第一权限信息指示用户授予的第一权限,第一权限包括调用被调用者的权限,和/ 或,访问第一资源的权限;第二设备向第三设备发送第二权限信息,第二权限信息指示用户授予的第二权限,第二权限包括调用被调用者的权限,和/或,访问第一资源的权限;第三设备响应于第一访问请求,根据第一权限运行被调用者的第一实例,以访问第一资源;第三设备响应于第二访问请求,根据第二权限运行被调用者的第二实例,以访问第一资源。其中,第二实例不同于第一实例,第一实例、第二实例为随机存取存储器RAM中运行的进程或线程,第一实例和第二实例相互隔离。
在第一方面的方法中,第一设备、第二设备也可以称为主体设备,第三设备可以称为客体设备。
实施第一方面提供的方法,无论客体设备或者被调用者是否具备授权条件,只要主体设备或调用者具备授权条件,客体设备就能够获取访问请求所需的权限,从而保障调用者发起的访问请求能够被成功响应,实现设备间的资源调用,满足用户的实际需求。
并且,第一方面的方法通过主体设备来获取访问请求所需的权限,而不依赖被调用者来获取该权限,也不依赖于被调用者来对调用者进行安全认证,因此该方法对被调用者没有任何限制。无论被调用者是第三方应用还是系统应用,实施上述方法都能够获取访问请求所需的权限,并能够保证只有在调用者具备访问请求所需的权限的情况下,该调用者发起的访问请求能够被成功响应,从而实现设备间的资源调用,满足用户的实际需求。也即是说,该方法可以提供系统级别的访问控制。
此外,第一方面提供的方法中,客体设备以多实例为多个调用者分别提供服务的形式,可以保证一个调用者的权限只会给到和该调用者对应的被调用者的实例,可以避免权限混用、权限扩大化问题,从而保证客体设备中的数据安全,防止数据滥用及泄露。
结合第一方面,在一些实施方式中,第一权限信息还指示第一权限的时效,时效为以下任意一项:一次有效、在第一时间内有效、在第一区域内有效或者永久有效。第三设备可以根据该时效来运行第一实例。
具体的,在第三设备根据第一权限信息运行第一实例,以访问第一资源之后,第一设备还可以向第三设备发送第三访问请求,第三访问请求用于第一调用者调用被调用者以访问第一资源。如果时效为一次有效,则第三设备拒绝响应第三访问请求。如果时效为在第一时间内有效,并且第三设备接收到第一权限信息的时长不超过第一时间;或者,如果时效为在第一区域内有效,并且第三设备位于第一区域内;或者,如果时效为永久有效,则第三设备响应于第三访问请求,根据第一权限信息运行第一实例,以访问第一资源。
通过上一实施方式,客体设备只在该权限的时效期限内,利用该权限运行为主体设备中的调用者创建的被调用者的实例,以响应该主体设备发起的访问请求。这样可以精准地控制用户授予的权限,避免潜在的权限扩大化问题,从而保证客体设备中的数据安全,防止数据滥用及泄露。
结合第一方面,在一些实施方式中,第一设备向第三设备发送第一访问请求,第一访问请求携带有第一权限信息。这样可以减少主客体设备之间的交互频率,提高分布式系统中的资源调度效率。
结合第一方面,在一些实施方式中,第三设备接收到第一设备发送的访问请求之后,如果第三设备中不存在被调用者的第一实例,则第三设备响应于第一访问请求,创建被调用者的第一实例。
结合第一方面,在一些实施方式中,第一设备向第三设备发送第一权限信息之前,可以输出提示信息,提示信息用于提示第一权限。第一设备可以响应于接收到的第一操作,向第三设备发送第一权限信息。这样,用户可以通过在第一设备上输入用户操作来授予第一权限。
结合第一方面,在一些实施方式中,第一设备输出提示信息之前,第三设备可以响应于第一访问请求,向第一设备发送授权请求,授权请求用于请求用户授予第一权限。在另一些实施方式中,第一设备也可以在向第三设备发送第一访问请求之前,请求用户授予第一权限。
结合上一实施方式,第一操作包括以下一项或多项:作用于显示屏的用户操作、预设的人脸图像、预设的指纹、预设的语音指令,或者,作用于按键的用户操作。
结合上一实施方式中,第一设备可以显示第一用户界面,第一用户界面中显示有提示信息和第一控件;第一操作包括作用于第一控件的用户操作。
结合第一方面,在一些实施方式中,第一权限具体包括:第一设备调用被调用者的权限,和/或,第一设备访问第一资源的权限;和/或,调用者调用被调用者的权限,和/或,调用者访问第一资源的权限。当第一权限包含第一设备和/或第一调用者的信息时,用户可以获知关于第一访问请求所需的权限的更加细致、详细的信息,从而决定是否授予第一权限。这样可以保证用户在充分了解访问请求所需的权限的情况下,再执行授权操作,可以避免用户误操作或者误授权,保证客体设备中的数据安全。
结合第一方面,在一些实施方式中,第一资源包括:隐私程度高于阈值的资源。例如,第一资源可包括被泄露后会对用户隐私造成较大风险的资源。这样可以保证客体设备中的敏感资源被访问时,可以获取用户的授权,从而保证用户数据的安全。
第二方面,本申请实施例提供了一种基于权限传递的访问控制方法,该方法应用于电子设备,电子设备中安装有被调用者;被调用者为应用程序APP或功能组件,APP为实现多个功能的程序实体,功能组件为实现单一功能的程序实体。
第二方面提供的方法包括:电子设备接收到第一设备发送的第一访问请求,第一访问请求用于第一设备中的第一调用者调用被调用者以访问电子设备中的第一资源,第一调用者为 APP或功能组件;电子设备接收到第二设备发送的第二访问请求,第二访问请求用于第二设备中的第二调用者调用被调用者以访问第一资源,第二调用者为APP或功能组件;电子设备接收到第一设备发送的第一权限信息,第一权限信息指示用户授予的第一权限,第一权限包括调用被调用者的权限,和/或,访问第一资源的权限;电子设备接收到第二设备发送的第二权限信息,第二权限信息指示用户授予的第二权限,第二权限包括调用被调用者的权限,和/ 或,访问第一资源的权限;电子设备响应于第一访问请求,根据第一权限运行被调用者的第一实例,以访问第一资源;电子设备响应于第二访问请求,根据第二权限运行被调用者的第二实例,以访问第一资源。其中,第二实例不同于第一实例,第一实例、第二实例为随机存取存储器RAM中运行的进程或线程,第一实例和第二实例相互隔离。
实施第二方面提供的方法,电子设备能够获取访问请求所需的权限,从而保障调用者发起的访问请求能够被成功响应,实现设备间的资源调用,满足用户的实际需求。
并且,第二方面的方法通过主体设备来获取并传递访问请求所需的权限,而不依赖被调用者来获取该权限,也不依赖于被调用者来对调用者进行安全认证,因此该方法对被调用者没有任何限制。无论被调用者是第三方应用还是系统应用,实施上述方法都能够获取访问请求所需的权限,并能够保证只有在调用者具备访问请求所需的权限的情况下,该调用者发起的访问请求能够被成功响应,从而实现设备间的资源调用,满足用户的实际需求。也即是说,该方法可以提供系统级别的访问控制。
此外,第二方面提供的方法中,电子设备以多实例为多个调用者分别提供服务的形式,可以保证一个调用者的权限只会给到和该调用者对应的被调用者的实例,可以避免权限混用、权限扩大化问题,从而保证电子设备中的数据安全,防止数据滥用及泄露。
第二方面提供的方法中,电子设备所执行的各项操作,可参考第一方面提供的方法中关于第三设备侧的相关描述,这里不再赘述。
第三方面,本申请实施例提供了一种基于权限传递的访问控制方法,该方法应用于电子设备,电子设备中安装有第一调用者、第二调用者和被调用者;第一调用者、第二调用者、被调用者为应用程序APP或功能组件;APP为实现多个功能的程序实体,功能组件为实现单一功能的程序实体。
第三方面提供的方法包括:电子设备生成第一访问请求,第一访问请求用于第一调用者调用被调用者以访问电子设备中的第一资源;电子设备生成第二访问请求,第二访问请求用于第二调用者调用被调用者以访问第一资源;电子设备获取第一权限,第一权限包括调用被调用者的权限,和/或,访问第一资源的权限;电子设备获取第二权限,第一权限包括调用被调用者的权限,和/或,访问第一资源的权限;电子设备响应于第一访问请求,根据第一权限运行被调用者的第一实例,以访问第一资源;第一设备响应于第二访问请求,根据第二权限信息运行被调用者的第二实例,以访问第一资源。其中,第二实例不同于第一实例,第一实例、第二实例为随机存取存储器RAM中运行的进程或线程,第一实例和第二实例相互隔离。
实施第三方面提供的方法,通过电子设备中的调用者来获取访问请求所需的权限,而不依赖被调用者来获取该权限,也不依赖于被调用者来对调用者进行安全认证,因此该方法对被调用者没有任何限制。无论被调用者是第三方应用还是系统应用,实施上述方法都能够获取访问请求所需的权限,并能够保证只有在调用者具备访问请求所需的权限的情况下,该调用者发起的访问请求能够被成功响应,从而实现单机设备内的资源调用,满足用户的实际需求。
此外,在单机设备中,电子设备以多实例为多个调用者分别提供服务的形式,可以保证一个调用者的权限只会给到和该调用者对应的被调用者的实例,可以避免权限混用、权限扩大化问题,从而保证电子设备中的数据安全,防止数据滥用及泄露。
第一方面或第二方面或上述任意一种实施方式中,由第一设备或第二设备或第三设备执行的操作,在第三方面提供的方法中,均由同一个电子设备执行,并且,第一设备或第二设备和第三设备之间的交互可以省略,具体可参考前文相关描述,这里不再赘述。
第四方面,本申请实施例提供了一种电子设备,包括:存储器、一个或多个处理器;存储器与一个或多个处理器耦合,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,一个或多个处理器调用计算机指令以使得电子设备执行如第二方面或第二方面任意一种实施方式的方法。
第五方面,本申请实施例提供了一种电子设备,包括:存储器、一个或多个处理器;存储器与一个或多个处理器耦合,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,一个或多个处理器调用计算机指令以使得电子设备执行如第三方面或第三方面任意一种实施方式的方法。
第六方面,本申请实施例提供了通信系统,包括第一设备、第二设备和第三设备,第三设备用于执行如第二方面或第二方面任意一种实施方式的方法。
第七方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当指令在电子设备上运行时,使得电子设备执行如第二方面或第二方面任意一种实施方式的方法
第八方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行第二方面或第二方面任意一种实施方式的方法。
第九方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当指令在电子设备上运行时,使得电子设备执行如第三方面或第三方面任意一种实施方式的方法。
第十方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行第三方面或第三方面任意一种实施方式的方法。
实施本申请提供的技术方案,客体设备够获取到访问请求所需的权限,从而实现设备间的资源调用,满足用户的实际需求。此外,多实例提供服务的形式,可以避免权限扩大化,保证客体设备中的数据安全,防止数据滥用及泄露。
附图说明
图1为一种授予权限以及检查权限的方式示意图;
图2A为本申请实施例提供的通信系统10的结构示意图;
图2B为本申请实施例提供的一种分布式场景;
图3A为本申请实施例提供的电子设备的硬件结构图;
图3B为本申请实施例提供的电子设备的软件结构图;
图4为本申请实施例提供的基于权限传递的访问控制方法的流程图;
图5A-图5B为本申请实施例提供的主体设备200上实现的一组用户界面;
图5C-图5E为本申请实施例提供的主体设备300上实现的一组用户界面;
图5F为本申请实施例提供的客体设备100上实现的用户界面;
图6A为本申请实施例提供的客体设备100上实现的用户界面;
图6B本申请实施例提供的主体设备300上实现的用户界面;
图7A为本申请实施例提供的主体设备的软件结构图;
图7B为本申请实施例提供的客体设备的软件结构图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清楚、详尽地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请以下实施例中的术语“用户界面(user interface,UI)”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面是通过java、可扩展标记语言(extensible markuplanguage,XML)等特定计算机语言编写的源代码,界面源代码在电子设备上经过解析,渲染,最终呈现为用户可以识别的内容。用户界面常用的表现形式是图形用户界面(graphicuser interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的文本、图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
在包含多个电子设备的分布式系统中,如果被访问的电子设备不具备授权条件,或者,被调用的应用不具备授权条件,则该电子设备无法获取用户授予的访问资源的权限,因此不能实现单机设备中或者设备间的资源调用,不能满足用户的实际需求。电子设备具备授权条件是指,电子设备支持一种或多种授权方式以供用户授权。授权方式可包括但不限于:弹框授权、指纹验证授权、人脸验证授权、语音指令授权、按键授权等等,这里不做限制。应用不具备授权条件是指,该应用不能使用电子设备提供的各种授权方式。例如,应用不提供用户界面时,该应用不支持弹框授权。
在有多个应用程序(例如APP1、APP2)同时调用一个应用程序(例如APP3)时,APP3会以单实例的形式同时为APP1和APP2提供服务。在这种情况下,APP1和APP2所拥有的权限可能会被APP3的单实例混用,造成权限扩大化问题,不能保证数据及用户隐私安全。
如图1所示,图1示出了一种授予权限以及检查权限的方式。
如图1所示,APP1调用APP3,APP3为电子设备所信任的系统应用,因此电子设备可以将敏感资源的访问权限直接开放给APP3。APP1调用APP3的权限,可以由电子设备向用户请求得到。APP3接收到APP1发起的访问请求后,需要做以下两次权限检查:1,首先APP3 检查APP1是否具备调用APP3的权限。2,然后系统检查APP3是否具备访问APP1发起的访问请求所要访问的资源的权限。在两次权限检查通过后,APP3可以访问对应的资源,为 APP1提供服务。
可见,图1所示的方案,只适用于APP3是受信任的系统应用的情况。如果实际调用过程中被调用的应用不是受信任的系统应用,则该应用不能获取到访问对应资源的权限,也就不能成功访问该资源。
此外,在图1所示的方案中,依赖于受信任的系统应用APP3来检查APP1是否具备调用APP3的权限。但是,实际调用过程中被调用的应用不一定是受信任的系统应用,依赖该应用对调用的发起方进行安全认证,不能保证安全认证结果的可靠性和准确性,也就无法保证调用过程中的数据安全。
为了解决上述问题,本申请以下实施例提供了一种基于权限传递的访问控制方法,该访问控制方法可以应用于单机设备,也可以应用于包含多个电子设备的分布式系统。
该方法应用于分布式系统时,如果客体设备接收到多个用于调用同一被调用者的访问请求,该客体设备可以创建多个该被调用者的实例,一个被调用者的实例用于响应一个调用者发起的访问请求。并且,调用者所在的主体设备还可以请求用户授予自身发起的访问请求所需的权限,并将用户授予的权限信息发送给客体设备。之后,客体设备可以根据该权限信息,运行为该主体设备中的调用者创建的被调用者的实例,以响应该主体设备发起的访问请求。
通过上述方法,无论客体设备或者被调用者是否具备授权条件,只要主体设备或调用者具备授权条件,客体设备就能够获取访问请求所需的权限,从而保障调用者发起的访问请求能够被成功响应,实现设备间的资源调用,满足用户的实际需求。
并且,上述方法通过主体设备来获取访问请求所需的权限,而不依赖被调用者来获取该权限,也不依赖于被调用者来对调用者进行安全认证,因此该方法对被调用者没有任何限制。无论被调用者是第三方应用还是系统应用,实施上述方法都能够获取访问请求所需的权限,并能够保证只有在调用者具备访问请求所需的权限的情况下,该调用者发起的访问请求能够被成功响应,从而实现设备间的资源调用,满足用户的实际需求。也即是说,该方法可以提供系统级别的访问控制。
此外,客体设备以多实例为多个调用者分别提供服务的形式,可以保证一个调用者的权限只会给到和该调用者对应的被调用者的实例,可以避免权限混用、权限扩大化问题,从而保证客体设备中的数据安全,防止数据滥用及泄露。
在一些实施例中,主体设备请求用户授予的访问请求所需的权限可以具有时效性,例如临时有效、在一定时间内有效或永久有效等等。这样,客体设备只在该权限的时效期限内,利用该权限运行为该主体设备中的调用者创建的被调用者的实例,以响应该主体设备发起的访问请求。这样可以精准地控制用户授予的权限,避免潜在的权限扩大化问题,从而保证客体设备中的数据安全,防止数据滥用及泄露。
在上述方法中,客体设备接收到的多个访问请求可以来自一个主体设备,也可以来自多个主体设备。
本申请实施例提供的访问控制方法应用于单机设备时,如果电子设备生成多个用于调用同一被调用者的访问请求,该电子设备可以创建多个该被调用者的实例,一个被调用者的实例用于响应一个调用者发起的访问请求。并且,该电子设备还可以在运行调用者时请求用户授予自身发起的访问请求所需的权限,并可以根据该权限信息,运行为该访问请求中的调用者创建的被调用者的实例,以响应该访问请求。
在单机设备中,上述方法通过电子设备中的调用者来获取访问请求所需的权限,而不依赖被调用者来获取该权限,也不依赖于被调用者来对调用者进行安全认证,因此该方法对被调用者没有任何限制。无论被调用者是第三方应用还是系统应用,实施上述方法都能够获取访问请求所需的权限,并能够保证只有在调用者具备访问请求所需的权限的情况下,该调用者发起的访问请求能够被成功响应,从而实现单机设备内的资源调用,满足用户的实际需求。
此外,在单机设备中,电子设备以多实例为多个调用者分别提供服务的形式,可以保证一个调用者的权限只会给到和该调用者对应的被调用者的实例,可以避免权限混用、权限扩大化问题,从而保证电子设备中的数据安全,防止数据滥用及泄露。
单机设备中,电子设备请求用户授予的访问请求所需的权限也可以具有时效性,具体可参考前文相关描述。
在本申请实施例中,实例是运行态的APP或功能组件。实例可以指进程,也可以指线程。进程是应用程序在计算机上的一次执行活动。线程是应用程序执行中一个单一的顺序控制流程。一个进程可以包括多个线程。
实例与实例之间相互隔离。电子设备会以进程为单位为不同的实例分配随机存取存储器 (random access memory,RAM)中的物理地址。电子设备在需要运行实例时,将根据虚拟地址找到RAM中对应分配给该实例的空间,并在该空间中运行该实例。其中,该虚拟地址与电子设备分配给实例的物理地址相映射,其映射关系存储在电子设备的控制器中。也就是说,实例是通过虚拟地址来实现找到内存数据的实际存储位置的。在这样的机制下,不同的实例之间通过自身的虚拟地址只能访问自身的虚拟地址对应的物理地址,即不能访问对方在 RAM中的物理空间,因此实例之间相互隔离。
主体设备、客体设备、调用者、被调用者的定义可参考后文实施例的相关描述。
下面,首先介绍本申请实施例提供的通信系统。
如图2A所示,本申请实施例提供了通信系统10。通信系统10包括:多个电子设备。通信系统10也可以称为分布式系统10。
分布式系统10中包含的多个电子设备均为智能终端设备,可以为各种类型,本申请实施例对该多个电子设备的具体类型不作限制。例如,该多个电子设备包括手机,还可以包括平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、智慧屏、可穿戴式设备、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence,AI)设备、车机、智能耳机,游戏机,还可以包括物联网(internet of things,IOT) 设备或智能家居设备如智能热水器、智能灯具、智能空调等等。不限于此,分布式系统10中的多个设备还可以包括具有触敏表面或触控面板的膝上型计算机(laptop)、具有触敏表面或触控面板的台式计算机等非便携式终端设备等等。
分布式系统10中的多个电子设备均为部署在家庭中的设备时,分布式系统10也可被称为家庭分布式系统。
分布式系统10中的多个电子设备之间可以通过登录相同的账号进行连接。例如,多个电子设备可以登录同一华为账号,并通过服务器来远程连接并通信。
分布式系统10中的多个电子设备也可以登录不同账号,但通过绑定的方式进行连接。一个电子设备登录账号后,可以在设备管理应用中,绑定登录不同账号或未登录的其他电子设备,之后这些电子设备之间可以通过该设备管理应用通信。
分布式系统10中的多个电子设备还可以通过扫描二维码、近场通信(near fieldcommunication,NFC)碰一碰、搜索蓝牙设备等方式建立连接,这里不做限制。
总的来说,分布式系统10中的多个电子设备之间建立的通信连接可包括但不限于:有线连接、无线连接例如蓝牙(bluetooth,BT)连接、无线局域网(wireless local areanetworks, WLAN)例如无线保真点对点(wireless fidelity point to point,Wi-Fi P2P)连接、近距离无线通信(near field communication,NFC)连接,红外技术(infrared,IR)连接,以及远程连接(例如通过服务器建立的连接)等等。
此外,分布式系统中的多个电子设备也可以结合上述任意几种方式来连接并通信,本申请实施例对此不做限制。
在本申请实施例中,分布式系统10中的各个设备可以安装传统的应用程序(application, APP),例如相机应用、图库应用、设置应用等等。后续实施例中,传统APP可以简称为APP。
此外,本申请实施例提供的分布式系统10可以安装分布式应用(distributedapplication)。该分布式应用可以为系统应用,也可以为第三方应用,这里不做限制。系统应用是指电子设备的生产商所提供或研发的应用,第三方应用是指非电子设备的生产商所提供或研发的应用。电子设备的生产商可以包括该电子设备的制造商、供应商、提供商或运营商等。制造商可以是指以自制或采购的零件及原料来加工制造电子设备的生产厂商。供应商可以是指提供该电子设备的整机、原料或零件的厂商。运营商可以是指负责该电子设备的经销的厂商。
与包含多种能力(ability)的APP不同,分布式应用支持以单一能力(ability)为单位进行部署。一个分布式应用包括一个或多个功能组件。
功能组件是电子设备中可独立运行的最小能力单元,是对单一能力进行抽象封装的概念。APP将多个功能集合在一起,而功能组件将各个功能作为单独的服务化基础能力,独立存在。即,功能组件是实现单一功能的程序实体。
每个功能组件都可以独立下载、安装并运行。组成同一个分布式应用的多个功能组件,可以部署在分布式系统10中的同一个电子设备中,也可以部署在不同电子设备中。
功能组件只是本实施例中所使用的一个词语,其代表的含义在本实施例中已经记载,其名称并不能对本实施例构成任何限制。另外,在本申请其他一些实施例中,功能组件也可以称为系统组件、系统服务、业务功能等其他名词。本申请后续实施例统一以“功能组件”进行描述。
(1)feature ability,FA。
FA是包含一组或若干组UI的功能组件,可以提供与用户交互的能力。例如,地图应用中的导航界面、即时通讯应用中的视频通话界面等,可以实现为FA。
在一些实施例中,FA基于MVVM(model-view-view-model)模式开发,将视图UI和业务逻辑分离,业务逻辑代码和视图UI代码分开部署。例如,一个电子设备可以将业务逻辑代码和其他APP集成在一起安装,而视图UI代码则可以安装到其他电子设备中。视图UI代码所在设备,可以和业务逻辑代码所在设备通信,以获取到展示UI所需要的数据。
FA支持page模板的能力,例如Empty Ability,Login Ability,Setting Ability等。FA采用脚本语言(java script,JS)提供声明式开发模式,采用类HTML和层叠样式表(cascading style sheet,CSS)声明式编程语言作为页面布局和页面样式的开发语言,并支持ECMAScript 规范的JS语言提供页面业务逻辑。
FA具有免安装、独立运行、跨设备UI迁移、跨设备二进制迁移等能力。FA还具有多端部署、分布执行的特性。
FA可以调用AA或APP,实现更多、更复杂的功能。
(2)particle ability,PA。
PA是无UI的功能组件,可以为FA提供支持,例如PA可以作为后台服务提供计算能力,或作为数据仓库提供数据访问能力。例如,美颜功能、定位功能、音视频编解码功能等,可以封装为PA。
PA同样具有多端部署、分布式执行等特性。PA仅对系统服务有依赖关系,和其他PA之间不存在依赖关系。
PA实际上将远程虚拟化、远程调用、PA管理、跨平台兼容、安全等实现做封装,对开发者开放跨设备的服务使能和唤起,以供其他设备调用本设备的计算能力,协同其他设备完成计算工作。PA支持Service Ability,Data Ability等。Service Ability用于提供后台运行任务的能力。Data Ability用于对外部提供统一的数据访问抽象。
PA可以调用FA或APP,实现更多、更复杂的功能。
可以理解的是,“FA”、“PA”只是本实施例中所使用的一个词语,在本申请其他一些实施例中,其还可以被称为其他名词。例如,“PA”、“FA”也可以被称为例如原子能力(atomicability, AA)、原子应用、元能力、原子化服务、特性能力等其他名词。
组成一个分布式应用的多个功能组件可以由同一个开发者来开发或提供,可以由多个开发者分别开发或提供,这里不做限制。不同开发者共同开发功能组件,可以提高分布式应用的开发效率。
在本申请实施例中,功能组件对外提供标准化的接口,以供调用。APP可调用功能组件。在一些情况下,功能组件也可以调用其他功能组件或APP。此外,被调用的功能组件也可以继续调用另外的功能组件或APP,这样多级调用的方式可称为链式调用。
分布式系统10中的各个设备建立通信连接后,各个设备将同步分布式系统中其他设备的功能组件信息以及APP信息。具体的,各个设备可以将自身安装的功能组件及APP的名称同步给其他设备,以供后续在分布式系统10中调用其他设备的FA、PA等功能组件。在其他一些实施例中,各个设备还可以将自己的设备标识、设备类型等等同步给分布式系统中的其他设备。
参考图2B,图2B示例性示出了一种可能的分布式的远程教学业务场景。
如图2B所示,分布式系统包含智能手机、平板电脑、智慧屏等电子设备。分布式系统中的各个设备两两相互连接。智能手机、平板电脑、智慧屏可以配置不同的软件操作系统(operatingsystem,OS),例如智能手机和平板电脑可以配置系统,智慧屏可以配置系统。
智能手机中安装有“在线课堂”。“在线课堂”是一款安装于电子设备中、为老师和学生提供远程上课所需的各项功能的应用程序,本申请实施例对其名称不做限制。“在线课堂”可以包括以下几个功能组件:黑板功能组件、白板功能组件、音视频编解码功能组件、网络连接功能组件。其中,黑板功能组件、白板功能组件属于FA,音视频编解码功能组件、网络连接功能组件属于PA。黑板功能组件提供远程讲解课程的功能。白板功能组件提供远程回答问题的功能。音视频编解码功能组件提供视频音编解码功能。
在老师侧,老师在智能手机上使用“在线课堂”时,可以将黑板功能组件迁移或切换到智慧屏上,从而在智慧屏上讲解课程。
在学生侧,学生在智能手机上使用“在线课堂”时,可以将白板功能组件迁移或切换到平板电脑上,从而在平板电脑上回答问题。
将功能组件由一个设备A迁移或切换至另一设备B,可以包括以下两种:1,UI迁移。在FA的视图UI和业务逻辑分离时,设备A可以运行业务逻辑代码时,可以触发设备B运行该视图UI的代码,用户看来就好像是将功能组件从设备A迁移到了设备B中。2,整体迁移。整体迁移是指设备B从设备A处或者从网络中下载并安装该功能组件后,运行该功能组件并提供相应的功能。
在该远程教学业务场景中,“在线课堂”为调用者,平板电脑中的白板功能组件、智慧屏中的黑板功能组件为被调用者。
图2B还示出了另一种可能的分布式视频通话业务场景。
如图2B所示,智能手机还可以安装有其他分布式应用,例如即时通讯应用。即时通讯应用可以提供视频通话、语音通话及其他通信功能。即时通信应用可以包括以下功能组件:视频通话功能组件、音视频编解码功能组件、网络连接功能组件。
用户在智能手机上使用即时通讯应用时,可以将该应用的视频通话功能组件迁移或者切换到智慧屏上,从而利用智慧屏的摄像头和显示屏来进行视频通话。
上述“在线课堂”中的黑板功能组件,和,即时通讯应用中的视频通话功能组件,可以是同一个功能组件。也就是说,智慧屏中的该功能组件可以被智能手机上安装的“在线课堂”和即时通讯应用分别调用。
在该视频通话业务场景中,即时通讯应用为调用者,智慧屏中的视频通话功能组件(即视频通话功能组件)为被调用者。
需要说明的是,如图2B所示的业务场景仅用于辅助描述本申请实施例的技术方案。在实际业务场景中,图2B所示的分布式系统可以包括更多的终端设备,各个设备中可以部署更多或更少的功能组件,各分布式应用可以包括更多或更少的功能组件。
通过图2A所示的分布式系统10,以及,图2B所示的分布式场景,可以整合不同设备的软硬件能力,实现智慧化的全场景体验。
在一些实施例中,分布式系统10中的各个设备建立通信连接后,各个设备将同步分布式系统中其他设备的功能组件信息以及APP信息。具体的,各个设备可以将自身安装的功能组件及APP的名称同步给其他设备,以供后续在分布式系统10中调用其他设备的APP、功能组件等等。
在本申请后续实施例中:发起调用功能组件或APP的一方,可以称为调用者。调用者例如可以为APP、FA或PA。整个调用链的初始发起者,可以称为首调者。首调者例如可以为APP或FA。举例来说,调用链为:APP1调用PA1,PA1调用PA2,PA2调用FA1,则APP1 为首调者。再举例来说,调用链为:FA1调用PA1,PA1调用PA2,则FA1为首调者。
在整个调用链中,中间被调用的一方以及最后被调用的一方,都可以称为被调用者。被调用者例如可以为APP、FA或PA。
在本申请一些实施例中,调用者也可以称为主体应用,被调用者还可以称为客体应用。
在调用链中,调用者,以及,被调用者,可以部署在同一个电子设备中,也可以部署在不同的电子设备中。
调用者所在设备称为主体设备,被调用者所在设备称为客体设备。
本申请以下实施例所称的应用,可以包括APP,也可以包括功能组件。
在本申请实施例提供的分布式系统10中:
各个电子设备之间建立通信连接后,各个设备将相互同步自身开放给其他设备的能力信息。其中,电子设备开放给其他设备的能力包括可供调用的APP、功能组件或者资源等等。电子设备开放给其他设备的能力信息用于指示上述能力,例如可包括:该电子设备开放给其他设备以供调用的APP以及功能组件的标识、该电子设备开放给其他设备以供访问的资源的标识等等。
一个电子设备开放给其他设备的能力,可以由该电子设备预先设定,也可以由用户设置,这里不做限制。例如,电子设备可以将机密性较低或敏感度较低的APP或功能组件开放给其他设备,如电子设备可以将相机应用、图库应用等开放给其他设备,而不将银行类应用开放给其他设备。
同一个电子设备开放给不同的其他电子设备的能力,可以相同,也可以不同,这里不做限制。
电子设备将自身开放给其他设备的能力信息同步给其他设备后,后续分布式系统10中的其他设备可以根据该能力信息来调用该电子设备中的APP或功能组件。
在一些实施例中,分布式系统10中的客体设备接收到多个用于调用同一被调用者的访问请求时,该客体设备可以创建多个该被调用者的实例,一个被调用者的实例用于响应一个调用者发起的访问请求。并且,调用者所在的主体设备还可以请求用户授予自身发起的访问请求所需的权限,并将用户授予的权限信息发送给客体设备。之后,客体设备可以根据该权限信息,运行为该主体设备中的调用者创建的被调用者的实例,以响应该主体设备发起的访问请求。其中,主体设备请求用户授予的访问请求所需的权限可以具有时效性,例如临时有效、在一定时间内有效或永久有效等等。
在一些实施例中,主体设备和客体设备为同一个电子设备时,如果该电子设备生成多个用于调用同一被调用者的访问请求,该电子设备可以创建多个该被调用者的实例,一个被调用者的实例用于响应一个调用者发起的访问请求。并且,该电子设备还可以请求用户授予自身发起的访问请求所需的权限,并可以根据该权限信息,运行为该访问请求中的调用者创建的被调用者的实例,以响应该访问请求。该电子设备请求用户授予的访问请求所需的权限也可以具有时效性。
关于分布式系统10中的各个电子设备所执行的操作的具体实现,可参考后续方法实施例的相关描述,这里不赘述。
参考图3A,图3A为本申请实施例提供的电子设备的硬件结构示意图。该电子设备可以为图1所示分布式系统10中的任意一个电子设备。该电子设备可以为主体设备,也可以为客体设备,还可以同时为主体设备和客体设备。
如图3A所示,该电子设备可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM) 卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器 180M等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备的具体限定。在本申请另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit, NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110 中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
电子设备的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块 150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150 的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号解调以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备的天线1和移动通信模块150耦合,天线2和无线通信模块 160耦合,使得电子设备可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access, CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址 (time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE), BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统 (global positioning system,GPS),全球导航卫星系统(global navigation satellite system, GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统 (quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems, SBAS)。
电子设备通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(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个显示屏194,N为大于1的正整数。
电子设备可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体 (complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备可以支持一种或多种视频编解码器。这样,电子设备可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
内部存储器121可以包括一个或多个随机存取存储器(random access memory,RAM) 和一个或多个非易失性存储器(non-volatile memory,NVM)。
随机存取存储器可以包括静态随机存储器(static random-access memory,SRAM)、动态随机存储器(dynamic random access memory,DRAM)、同步动态随机存储器(synchronous dynamic random access memory,SDRAM)、双倍资料率同步动态随机存取存储器(double data rate synchronous dynamic random access memory,DDR SDRAM,例如第五代DDR SDRAM一般称为DDR5 SDRAM)等;非易失性存储器可以包括磁盘存储器件、快闪存储器(flash memory)。
随机存取存储器可以由处理器110直接进行读写,可以用于存储操作系统或其他正在运行中的程序的可执行程序(例如机器指令),还可以用于存储用户及应用程序的数据等。
非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器110直接进行读写。
外部存储器接口120可以用于连接外部的非易失性存储器,实现扩展电子设备的存储能力。外部的非易失性存储器通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部的非易失性存储器中。
电子设备可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110 中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。电子设备可以设置至少一个麦克风170C。在另一些实施例中,电子设备可以设置两个麦克风 170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
指纹传感器180H用于采集指纹。电子设备可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备可以接收按键输入,产生与电子设备的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。
触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备的表面,与显示屏194所处的位置不同。
当图3A所示的电子设备为主体设备时:
移动通信模块150或无线通信模块160,可用于和分布式系统10中的其他电子设备(例如客体设备)建立通信连接,建立通信连接的具体方式可参考图2A中的相关描述。
移动通信模块150或无线通信模块160,还可用于在和其他电子设备建立通信连接后,接收其他电子设备同步的开放给该主体设备的能力信息。
移动通信模块150或无线通信模块160,还可用于向客体设备发送用于调用客体设备中被调用者的访问请求,该访问请求所要访问的被调用者以及资源均在该客体设备开放给该主体设备的能力之内。
显示屏194、指纹传感器180H、摄像头193、音频模块170、按键190等模块,可用于提供各类授权方式,以请求用户授予该主体设备发起的访问请求所需的权限。处理器110可响应于上述几个模块接收到的用户操作,获取用户授予的访问请求所需的权限。
移动通信模块150或无线通信模块160,还可用于将获取到的访问请求所需的权限,发送给客体设备。在一些实施例中,移动通信模块150或无线通信模块160,还可用于将访问请求所需的权限的时效信息发送给客体设备。
显示屏194还可用于显示后续实施例提供的在主体设备上显示的用户界面。
内部存储器121可以用于存储分布式系统10中其他电子设备同步过来的开放的能力信息。
内部存储器121还可用于存储主体设备中调用者和客体设备中被调用者之间的调用关系。该调用关系包括:调用关系ID、调用者的信息,和,被调用者的信息。该调用关系的具体内容可参考后续实施例的相关描述。
当图3A所示的电子设备为客体设备时:
移动通信模块150或无线通信模块160,可用于和分布式系统10中的其他电子设备(例如主体设备)建立通信连接,建立通信连接的具体方式可参考图2A相关描述。
移动通信模块150或无线通信模块160,还可用于和其他电子设备建立通信连接后,向其他电子设备同步开放给其他电子设备的能力信息。
移动通信模块150或无线通信模块160,还可用于接收到多个主体设备发送的用于调用同一被调用者的访问请求,该访问请求所要访问的被调用者以及资源均在该客体设备开放给该主体设备的能力之内。
移动通信模块150或无线通信模块160,还可用于接收到主体设备发送的用户授予的访问请求所需的权限信息。在一些实施例中,移动通信模块150或无线通信模块160,还可用于接收到主体设备发送的访问请求所需的权限的时效信息。
处理器110可以用于响应接收到的多个主体设备发送的访问请求,创建多个该被调用者的实例,一个被调用者的实例用于响应一个调用者发起的访问请求。
处理器110还可用于根据主体设备发送的权限信息,运行为该主体设备中的调用者创建的被调用者的实例,以响应该主体设备发起的访问请求。
显示屏194还可用于显示后续实施例提供的在客体设备上显示的用户界面。
内部存储器121可以用于存储各个主体设备发送的访问请求所需的权限信息、时效信息等等。
内部存储器121还可用于存储客体设备中被调用者和主体设备中调用者之间的调用关系。该调用关系包括:调用关系ID、被调用者的实例信息,和,调用该实例的各个调用者信息。该调用关系的具体内容可参考后续实施例的相关描述。
当图3A所示的电子设备同时为主体设备和客体设备时,上述主体设备以及客体设备中各个模块执行的操作均由该电子设备执行,并且,主体设备和客体设备之间的通信步骤可以省略。该电子设备中各个模块所执行的操作,可参考前文相关描述,这里不赘述。
参考图3B,图3B为本申请实施例提供的电子设备的软件结构示意图。该电子设备可以为图1所示分布式系统10中的任意一个电子设备。该电子设备可以为主体设备,也可以为客体设备,还可以同时为主体设备和客体设备。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图3B所示,应用程序包可以包括APP,例如相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。应用程序层还可包括功能组件,例如FA、 PA等等。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图3B所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
基于图2A所示的分布式系统10,图3A所示的电子设备的硬件结构,图3B所示的电子设备的软件结构,下面详细介绍本申请实施例提供的基于权限传递的访问控制方法。
参考图4,图4为本申请实施例提供的基于权限传递的访问控制方法的流程示意图。图4 所示的方法以主体设备调用客体设备中的资源为例进行说明。
如图4所示,该方法可包括如下步骤:
S101,客体设备和主体设备建立连接,主体设备的数量为一个或多个。
客体设备的数量为一个,客体设备可以为分布式系统10中的任意一个电子设备。
主体设备的数量可以为一个,也可以为多个。主体设备可以为分布式系统10中的任意电子设备。
本申请实施例对客体设备和主体设备建立通信连接的方式不做限定,例如可通过登录相同账号、绑定设备、扫描二维码等方式来建立通信连接等。本申请实施例对主体设备和客体设备之间建立的通信连接的类型不做限定,例如可包括有线连接、无线连接例如蓝牙连接、 Wi-Fi P2P连接、NFC连接,IR连接,以及远程连接等等。具体可参考图2A中的相关描述。
在一些实施例中,客体设备和主体设备建立连接后,客体设备可以向主体设备发送自身安装的可供调用的功能组件信息以及APP信息,例如标识等等。可供调用的功能组件或APP 由开发者在开发阶段声明或者定义,这里的可供调用仅仅是指功能组件或APP可以被调用者调用,并非是指开放或授权给某个设备调用。
在一些实施例中,客体设备和主体设备建立连接后,客体设备可以向主体设备发送开放给该主体设备的能力信息,该能力信息指示了客体设备开放给主体设备以供调用的APP、功能组件、资源等等。这里,开放给主体设备的能力信息是指对应的APP、功能组件、资源可以被该主体设备调用。客体设备开放给主体设备的能力,可以由该客体设备预先设定,也可以由用户设置。客体设备开放给不同主体设备的能力,可以相同,也可以不同,这里不做限制。
S102,主体设备生成访问请求,并向客体设备发送该访问请求,该访问请求用于主体设备中的调用者调用客体设备中的被调用者,以访问第一资源。
在本申请实施例中,主体设备中安装有调用者,客体设备中安装有被调用者。调用者、被调用者均可以为APP或功能组件。APP、功能组件的定义可参考前文相关描述。
主体设备生成的访问请求可以包括:调用者的标识、被调用者的标识以及第一资源的标识。在一些实施例中,该访问请求还可以包括:主体设备的标识、客体设备的标识。
主体设备或客体设备的标识可以为设备类型、设备型号、设备名称等等,本申请实施例对此不做限制。这里的设备类型可以从设备功能来看,例如可包括手机、平板电脑、只能耳机、IOT设备或智能家居设备等等。
调用者的标识、被调用者的标识,可以为应用标识(APP ID)。
在本申请实施例中,第一资源可以为软件资源或硬件资源。硬件资源例如可包括该设备具备的摄像头、指纹传感器、音频设备、显示屏、马达、闪光灯等等。软件资源例如可包括该设备具备的内存资源、计算能力(例如美颜算法能力、音视频编解码能力)、网络能力、定位功能等等。第一资源可以包括一个或多个资源,这里不做限定。
在一些情况下,被调用者的标识和第一资源的标识可以相同。例如,第一资源为摄像头时,该被调用者的标识也可以是该摄像头的标识,用于指示该被调用者为相机应用。
在本申请实施例中,每一个访问请求,都对应有访问请求的发起设备(即主体设备)、调用者、被调用者以及要求访问的第一资源。不同访问请求对应的被调用者和第一资源均相同,不同访问请求对应的主体设备、调用者可以不同。
在一些实施例中,主体设备可以在运行调用者的过程中,响应于接收到的用户操作,生成访问请求。
下面以主体设备200和主体设备300各自生成针对客体设备100的访问请求为例进行说明。主体设备200可以为智能手机。主体设备300可以为平板电脑。客体设备100可以为智慧屏。
参考图5A,图5A展示了主体设备200(例如智能手机)在运行即时通讯应用时展示的一个用户界面51,该用户界面51为视频通话界面。
用户界面51中显示有:主体设备200端用户的图像,和主体设备200端用户进行视频通话的其他用户的图像,一个或多个设备选项501。一个或多个设备选项501可对应于分布式系统10中,可以提供摄像头资源来满足主体设备200的视频通话需求的设备,例如智慧屏、平板电脑等等。
如图5A所示,主体设备200可以检测到作用于设备选项501的用户操作,并响应于该用户操作,生成一个访问请求,该访问请求用于主体设备200中的即时通讯应用调用该设备选项501对应的智慧屏(即客体设备100)中的视频通话功能组件(FA)和摄像头资源。
参考图5C,图5C展示了主体设备300(例如平板电脑)在运行“在线课堂”应用时展示的一个用户界面53,该用户界面53用于远程教学。主体设备300和主体设备200的用户可以不同。
用户界面52可以是学生侧使用“在线课堂”时的用户界面。用户界面52中显示有:黑板功能组件提供的页面503,白板功能组件提供的页面504。黑板功能组件、白板功能组件的定义可参考图2B中的相关描述。
页面503显示有:老师侧的图像503a、参与远程教学的一个或多个学生侧的图像503b。一个或多个学生侧的图像503b可以包括主体设备300侧用户的图像,例如图5C中示出的显示屏顶部一排图像中的第二张图像503b。图像503a、图像503b均是实时图像,从而实现远程教学的功能。
页面504显示有:练习题、输入框、输入控件等等。
此外,用户界面52中还可显示有一个或多个设备选项505。一个或多个设备选项505可对应于分布式系统10中,可以提供摄像头资源来满足主体设备300的远程教学功能的设备,例如智慧屏等等。
如图5C所示,主体设备300可以检测到作用于设备选项505的用户操作,并响应于该用户操作,生成一个访问请求,该访问请求用于主体设备300中的“在线课堂”应用调用该设备选项505对应的智慧屏(即客体设备100)中的黑板功能组件和摄像头资源。
其中,客体设备100中的黑板功能组件和视频通话功能组件,为同一个功能组件。也就是说,主体设备200和主体设备300均生成了针对客体设备100的访问请求,主体设备200 生成的访问请求用于即时通讯应用调用客体设备100中的视频通话功能组件(FA),并访问摄像头,主体设备300生成的访问请求用于“在线课堂”应用调用客体设备100中的视频通话功能组件(FA),并访问摄像头。
在另一些实施例中,主体设备也可以在运行调用者的过程中,在一些情况下自主地生成针对客体设备的访问请求。例如,主体设备可以在每次进行视频通话时,都默认生成用于主体设备中的即时通讯应用调用智慧屏(即客体设备100)中的视频通话功能组件和摄像头资源的访问请求。
在一些实施例中,主体设备在生成访问请求之后,可以首先查询客体设备是否开放了访问该访问请求中的被调用者以及第一资源的权限给主体设备。若是,则主体设备可以进一步向查询是否具备该访问请求所需的权限。在两次查询结果均为是的情况下,主体设备才向客体设备发送该访问请求。如果第二次查询结果为否,则主体设备可以向用户申请该访问请求所需的权限,主体设备申请权限的具体方式、访问请求所需权限的定义,可参考后文相关描述,这里暂不赘述。当然,主体设备也可以仅执行第一次查询,并在第一次查询结果为是的情况下,向客体设备发送该访问请求。
执行上述实施例中的第一次查询操作,可以保证主体设备在客体设备开放给该主体设备的能力中,发起的访问请求,而不会在该开放能力范围外发起访问请求,可以提高该访问请求被响应的概率,降低设备之间的无效沟通。
执行上述实施例中的第二次查询操作,可以保证主体设备在获取访问请求所需的权限之后,再发起访问请求,可以保证整个调用过程的安全性。
在另一些实施例中,主体设备也可以在生成访问请求之后,直接向客体设备发送该访问请求。
在一些实施例中,客体设备接收到访问请求后,可以直接执行后续的S103-S105。
在另一些实施例中,客体设备接收到访问请求后,可以在确认被调用者和/或第一资源为敏感资源的前提下,执行后续的S103-S105。这样可以保证客体设备中的敏感资源被访问时,可以获取用户的授权,从而保证用户数据的安全。敏感资源可以是指,被泄露后会对用户隐私造成较大风险的资源,例如隐私程度高于阈值的资源。敏感资源可以包括电子设备中的硬件资源、软件资源以及存储的数据。硬件资源例如可包括摄像头、音频设备、显示屏等等。软件资源例如可包括内存资源、计算能力(例如美颜算法能力、音视频编解码能力)、网络能力、定位功能、高机密性的APP(例如银行类APP)等等。存储的数据例如可包括存储的用户信息、照片、视频、用户登录到应用程序的密码等等。
可选步骤S103,客体设备响应于接收到的访问请求,创建并运行多个被调用者的实例。
具体的,客体设备接收到多个访问请求后,可以根据以下一项或多项来启用不同的实例:调用者、主体设备、调用者的开发者、调用者所属用户或主体设备的账号等等。在上述一项或多项不相同时,客体设备可以启用不同的被调用者实例来为对应的调用者提供服务。
在一些实施例中,如果客体设备中存在为主体设备中的调用者提供服务的被调用者的实例,即客体设备之前已经创建过该实例,则客体设备无需执行S103重新创建该实例。如果客体设备中不存在为主体设备中的调用者提供服务的被调用者的实例,则客体设备执行S103 以创建该实例。
例如,主体设备200中标识为“ID2”的应用、主体设备300中标识为“ID3”的应用,同时调用客体设备100中标识为“ID1”的应用,客体设备100创建了两个实例,分别为两个调用者提供服务。
又例如,主体设备300中标识为“ID3”的应用、主体设备400中标识为“ID4”的应用,同时调用客体设备100中标识为“ID1”的应用,由于两个调用者的开发者相同,客体设备100创建了一个实例,同时为两个调用者提供服务。
参考前文图5A及图5C中的实例,客体设备100将创建两个视频通话功能组件(FA)的实例,分别为主体设备200和主体设备300提供服务。
在一些实施例中,客体设备中可以提前安装被调用者。在另一些实施例中,客体设备可以在接收到客体设备发送的访问请求之后,从网络中下载并安装该被调用者,或者直接从主体设备处下载并安装该被调用者。
客体设备创建被调用者的实例时,可以为该实例分配UID和PID。在一些实施例中,客体设备可以为被调用者的不同实例分配不同的UID。在一些实施例中,客体设备可以为被调用者的不同实例分配不同的PID。因此,客体设备可以通过UID或者PID来区分同一个被调用者的不同实例。
在一些实施例中,客体设备创建该被调用者的实例后,可以保存调用者和该被调用者的实例组成的调用关系,该调用关系的具体内容可参考前文相关描述。客体设备还可以将该调用关系中的部分内容,例如调用关系ID、为主体设备中的调用者创建的被调用者实例的UID、 PID等等,同步给主体设备,便于主体设备存储该调用关系。
可选步骤S104,客体设备查询是否拥有主体设备发送的访问请求所需的权限。
访问请求所需的权限包括:调用客体设备中的被调用者的权限,和/或,访问客体设备中第一资源的权限。
在一些实施例中,该访问请求所需的权限具体包括:主体设备调用客体设备中被调用者和/或访问第一资源的权限。
在一些实施例中,该访问请求所需的权限具体包括:调用者调用客体设备中被调用者和/ 或访问第一资源的权限。
在一些实施例中,该访问请求所需的权限具体包括:主体设备中的调用者调用客体设备中被调用者和/或访问第一资源的权限。
若不执行S104,则客体设备可以在每次接收到主体设备发送的访问请求之后执行S105。若执行S105,则客体设备在没有主体设备发送的访问请求所需的权限的情况下,才执行S105 以通过主体设备向用户申请权限,这样可以减少主客体设备之间的交互,提高分布式系统中跨设备调用资源的效率。
S105,客体设备向主体设备发送授权请求,该授权请求用于请求该主体设备向用户申请该主体设备发送的访问请求所需的权限。
访问请求所需的权限可参考S104中的相关描述。
在一些实施例中,客体设备可以根据存储的调用关系,找到访问请求对应的主体设备,并向该主体设备发送授权请求。
S106,主体设备请求用户授予该主体设备发送的访问请求所需的权限。
当电子设备支持一种或多种授权方式以供用户授权时,该电子设备具备授权条件。当调用者支持一种或多种授权方式以供用户授权时,该调用者具备授权条件。
授权方式可包括但不限于:弹框授权、指纹验证授权、人脸验证授权、语音指令授权、按键授权等等,这里不做限制。
电子设备是否具备授权条件以及支持的授权方式的种类,取决于该电子设备的硬件和/或软件配置。例如,支持弹框授权需要电子设备配置显示屏。支持指纹验证授权,需要电子设备配置指纹传感器。支持人脸验证授权,需要电子设备配置摄像头以及人脸识别算法。支持语音指令授权,需要电子设备配置麦克风或其他拾音设备。支持按键授权,需要电子设备配置物理按键。
调用者是否具备授权条件,取决于该调用者本身的功能。例如,调用者能够提供用户界面时,该调用者可以支持弹框授权。又例如,调用者能够调用指纹传感器时,该调用者可以支持指纹验证授权。
在S106中,主体设备可以在运行调用者的过程中,使用主体设备和调用者均支持的授权方式,来请求用户授予自身发送的访问请求所需的权限。下面对不同的授权方式分别进行介绍。
主体设备支持弹框授权时,可以在显示屏上输出提示信息,该提示信息用于提示该访问请求所需的权限。之后,主体设备可以检测到作用于显示屏的用户操作,并响应于该用户操作,获取到该访问请求所需的权限。
参考图5B,图5B示例性示出了主体设备200使用弹框授权的方式来请求用户授权时,所显示的用户界面52。
用户界面52显示有窗口502。窗口502中包括:提示信息502a,控件502b,控件502c,控件502d。提示信息502a用于提示用户授予主体设备200发起的访问请求所需的权限。提示信息502a例如可以为文本““即时通讯应用”需要访问您的摄像头,授权后,有以下应用将使用该权限:视频通话功能组件(FA)”,其中,“即时通讯应用”指示了调用者,“视频通话功能组件(FA)”指示了调用者,“摄像头”指示了第一资源为摄像头资源。结合当前用户界面52的提供设备,用户在图5A中选择的设备选项501,用户还可获知主体设备为智能手机,客体设备为智慧屏。在其他一些实施例中,提示信息502a可以包括主体设备和客体设备的信息。
也就是说,提示信息502a用于提示用户授予智能手机中的即时通讯应用,调用智慧屏中的视频通话功能组件(FA),并访问摄像头资源的权限。
不限于提示信息502a所示的形式,提示信息502a的具体内容取决于访问请求所需的权限,这里不做限制。
控件502b可用于监听用户操作,主体设备200响应于该用户操作,获知当前未能获取到主体设备200发送的访问请求所需的权限。
控件502c可用于监听用户操作,主体设备200响应于该用户操作,成功获取到主体设备 200发送的访问请求所需的权限,并且,该权限的时效为一次。即,主体设备200获取到的该访问请求所需的权限一次性有效,在该访问请求被响应之后,主体设备200不再具备该权限。
控件502d可用于监听用户操作,主体设备200响应于该用户操作,成功获取到主体设备 200发送的访问请求所需的权限,并且,该权限的时效为永久。即,主体设备200获取到的该访问请求所需的权限永久有效。
如图5B所示,主体设备200接收到作用于控件502b的用户操作,未能获取到主体设备 200发送的访问请求所需的权限。
参考图5D,图5D示例性示出了主体设备300使用弹框授权的方式来请求用户授权时,所显示的用户界面54。用户界面54中包含的窗口506可参考图5B所述用户界面52中的窗口502,这里不赘述。
如图5D所示,主体设备300可以接收到作用于控件506a的用户操作,主体设备300响应于该用户操作,成功获取到主体设备300发送的访问请求所需的权限,并且,该权限的时效为永久。
主体设备支持指纹验证授权时,可以通过指纹传感器采集用户的指纹,并将采集到的指纹和预置的指纹进行比对,若两个指纹一致,则主体设备获取到访问请求所需的权限。在一些实施例中,主体设备可以预置多个指纹,并在采集到不同的预置指纹时,获取到具有不同的时效的访问请求所需的权限。
主体设备支持人脸验证授权时,可以通过摄像头采集用户的人脸图像,并将采集到的人脸图像和预置的人脸图像进行比对,若两者一致,则主体设备获取到访问请求所需的权限。
主体设备支持语音指令授权时,可以通过麦克风、受话器或者其他拾音设备来采集用户输入的语音指令,并将采集到的语音指令和预置的语音指令进行比对,若两者一致,则主体设备获取到访问请求所需的权限。在一些实施例中,主体设备可以预置多个语音指令,并在采集到不同的预置语音指令时,获取到具有不同的时效的访问请求所需的权限。
主体设备支持按键授权时,可以通过物理按键采集用户的按压操作,如果在物理按键上采集到了预设的按压操作(例如一次按压操作、长按操作、连续两次按压操作等等),则主体设备获取到访问请求所需的权限。在一些实施例中,主体设备可以预置多个按压操作,并在采集到不同的预置按压操作时,获取到具有不同的时效的访问请求所需的权限。
在本申请实施例中,主体设备请求用户授予该主体设备发送的访问请求所需的权限时,如果访问请求所需的权限包含主体设备和/或调用者的信息时,用户可以获知关于当前客体设备接收到的访问请求所需的权限的更加细致、详细的信息,从而决定是否授予该权限。这样可以保证用户在充分了解访问请求所需的权限的情况下,再执行授权操作,可以避免用户误操作或者误授权,保证客体设备中的数据安全。
可见,在S106中,主体设备可以响应于接收到的用户操作,获取到用户授予的该主体设备发送的访问请求所需的权限,并且用户授予的权限具有时效性。该权限的时效可以包括多种,不限于上述图5B或图5D中示出的一次生效、永久有效,还可以有更多的情况,例如一周内有效,一个月内有效,在某个区域内有效等等,这里不做限制。
S107,主体设备将获取到的访问请求所需的权限信息发送给客体设备。
权限信息指示了以下一项或多项:主体设备是否获取到该访问请求所需的权限,主体设备获取到的该访问请求所需的权限,主体设备获取到的权限的时效。
示例性地,参考图5B,主体设备200未能获取到主体设备200发送的访问请求所需的权限。
示例性地,参考图5D,主体设备300获取到主体设备300发送的访问请求所需的权限,并且,该权限的时效为永久。
在一些实施例中,主体设备可以根据存储的调用关系,找到访问请求对应的客体设备,并向该客体设备发送获取到的访问请求所需的权限信息。
在一些实施例中,主体设备执行S107之后,还可以记录或者存储客体设备中的被调用者获取到访问资源的权限信息。参考表1,表1示例性示出了主体设备300记录的一种权限信息。
表1
如表1所示,该主体设备中的“在线课堂”应用授予视频通话应用(FA)使用摄像头和麦克风的权限,外卖类APP授予定位FA使用定位服务的权限。这里,主体设备中的调用者授予权限都是在用户操作下触发的。
S108,客体设备接收到主体设备获取到的访问请求所需的权限信息,并将该权限信息指示的权限,赋予为该主体设备中的调用者创建的被调用者的实例。
具体的,客体设备获取到主体设备发送的权限信息后,将该权限信息指示的权限赋予为该主体设备中的调用者创建的被调用者的实例。如果权限信息还指示的权限的时效,则可以将该时效同时赋予该主体设备中的调用者创建的被调用者的实例。
示例性地,参考图5A-图5B,主体设备200向客体设备100发送获取到的权限信息后,客体设备100确定为即时通讯应用创建的视频通话功能组件(FA)的实例,不具备该主体设备200发送的访问请求所需的权限,该权限的具体内容可参考前文相关描述。
示例性地,参考图5C-图5D,主体设备300向客体设备100发送获取到的权限信息后,客体设备100确定为“在线课堂”应用创建的视频通话功能组件(FA)的实例,具备该主体设备300发送的访问请求所需的权限,该权限的具体内容可参考前文相关描述,并且该权限的时效为一次有效。
在一些实施例中,客体设备执行S108之后,还可以记录或者存储客体设备中的被调用者获取到访问资源的权限信息。参考表2,表2示例性示出了客体设备100记录的一种权限信息。
表2
如表2所示,该客体设备中的视频通话应用(FA)获取到了“在线课堂应用”授予的使用摄像头和麦克风的权限,以及,定位FA获取到了外卖类APP授予的使用定位服务的权限。这里,主体设备中的调用者授予权限都是在用户操作下触发的。
在本申请其他一些实施例中,S102中主体设备向客体设备发送访问请求之前,可以先主动执行S106-S107的步骤,而不必由客体设备通过S105触发。
在一些实施例中,如果S102中主体设备向客体设备发送访问请求之前执行了S106,即请求用户授予该访问请求所需的权限,则主体设备可以将获取到的权限信息携带在访问请求中,一起发送给客体设备。
在本申请其他一些实施例中,客体设备可以在S107之后,即在接收到主体设备获取到的访问请求所需的权限信息之后,再执行S103中创建实例的操作。进一步地,客体设备可以在接收到主体设备获取到的访问请求所需的权限信息,并且确认该主体设备获取到访问请求所需的权限之后,再执行S103中创建实例的操作。这样可以提高访问请求被响应的概率,降低设备之间的无效沟通。
S109,客体设备根据主体设备发送的权限信息,决定是否响应该主体设备发送的访问请求。
如果主体设备发送的权限信息表明主体设备未获取到该主体设备发送的访问请求所需的权限,则客体设备将拒绝响应该访问请求。具体的,客体设备可以拒绝为该主体设备中的调用者创建被调用者的实例,或者,拒绝运行为该主体设备中的调用者创建的被调用者的实例。
示例性地,参考图5A-图5B,主体设备200向客体设备100发送获取到的权限信息后,客体设备100可以拒绝为即时通讯应用创建的视频通话功能组件(FA)的实例,或者,拒绝运行为即时通讯应用创建的视频通话功能组件(FA)的实例。
如果主体设备发送的权限信息指示了主体设备获取到的该主体设备发送的访问请求所需的权限,则客体设备可以根据该权限响应该访问请求,运行为调用者创建的被调用者的实例,访问第一资源。在其他一些实施例中,客体设备还可以查询访问被调用者和/或访问第一资源的权限是否开放给主体设备,在是的情况下,才会响应该访问请求。
在一些实施例中,客体设备响应访问请求,具体可包括以下一项或多项:
1,客体设备运行为调用者创建的被调用者的实例,访问第一资源以执行一系列操作,例如通过显示屏显示视频通话界面、通过摄像头采集图像、执行计算操作、获取位置信息等等。
2,客体设备将访问第一资源的访问结果发送给主体设备,例如将摄像头采集的图像发送给主体设备,以供主体设备发送给和其进行视频通话的另一端设备,又例如将计算结果、获取到的位置信息发送给主体设备等等。
3,客体设备接收主体设备发送的数据,并利用该数据来访问第一资源,例如客体设备可以接收主体设备发送的其进行视频通话的另一端设备采集的图像,将该图像显示在显示屏的视频通话界面中。
示例性地,参考图5C-图5D,主体设备300向客体设备100发送获取到的权限信息后,客体设备100可以为“在线课堂”应用创建的视频通话功能组件(FA)的实例,并响应主体设备300发送的访问请求,运行该视频通话功能组件(FA)的实例,访问客体设备100的摄像头。
参考图5F,图5F为客体设备100响应主体设备300发送的访问请求时所显示的用户界面56。用户界面56包括黑板功能组件提供的页面,用户界面56显示有:老师侧的图像503a、参与远程教学的一个或多个学生侧的图像503b。一个或多个学生侧的图像503b可以包括主体设备300侧用户的图像。其中,主体设备300侧用户的图像由客体设备100的摄像头采集得到,其他学生侧的图像503b、老师侧的图像503a可以由主体设备300获取到后发送给该客体设备。客体设备100通过摄像头采集图像后,还可以将该图像发送给主体设备300,以使得主体设备300将该图像发送给其他学生侧和老师侧的设备。这样能够实现将白板功能组件提供的页面迁移到客体设备100的功能。由于主体设备300和客体设备100显示屏的尺寸可能不同,和主体设备300上展示的黑板功能组件提供的页面相比,图5F中所展示页面的各个元素的布局可以有变化。
对比图5F和图5C,图5C中主体设备300侧用户的图像由主体设备300采集,图5F中主体设备300侧用户的图像由客体设备100采集,由于主体设备300和客体设备100处于不同位置,因此两者采集到的主体设备300侧用户的图像不同。例如,图5C和图5F中示出的显示屏顶部一排图像中的第二张图像503b不同。
在一些实施例中,用户界面56还可以显示有提示信息509和控件510。提示信息509用于提示用户当前主体设备300(例如平板电脑)正在访问客体设备100(例如智慧屏)的摄像头资源。控件510可以监听用户操作,客体设备100可以响应于该用户操作,停止响应主体设备300发送的访问请求。
不限于图5F所示的场景,具体实现中,客体设备响应访问请求的形式可以有其他类型,这取决于访问请求的具体内容,本申请实施例对此不做限制。
参考图5E,图5E为客体设备100响应主体设备300发送的访问请求后,主体设备300所显示的用户界面55。用户界面55包括白板功能组件提供的页面,该页面的内容可参考图5C所示用户界面53中的相关描述。
在一些实施例中,用户界面55还可以显示有提示信息507和控件508。提示信息507用于提示用户当前黑板功能组件(FA)已迁移到智慧屏中。控件508可以监听用户操作,主体设备300可以响应于该用户操作,停止将黑板功能组件(FA)迁移到智慧屏中,并重新显示迁移之前的用户界面,例如图5C所示的用户界面53。
如果主体设备发送的权限信息还指示了主体设备获取到的访问请求所需的权限的时效,则客体设备会根据该时效来运行为该主体设备中的调用者创建的实例。具体的,如果该时效为一次有效,则客体设备拒绝响应该主体设备后续发送的和该访问请求具备相同作用的访问请求。如果该时效为在第一时间内有效,并且客体设备在接收到主体设备发送的权限信息的时长不超过所述第一时间时;或者,如果该时效为在第一区域内有效,并且客体设备位于第一区域内;或者,如果该时效为永久有效,则客体设备将响应该主体设备后续发送的和该访问请求具备相同作用的访问请求,根据所述第一权限信息运行所述第一实例,以访问所述第一资源。这里,主体设备后续发送的和该访问请求具备相同作用的访问请求,可以称为第三访问请求。
例如,参考图5D,主体设备300获取到的访问请求所需的权限的时效为一次有效,客体设备100运行为“在线课堂”应用创建的视频通话功能组件(FA)的实例以访问摄像头之后,若用户指示停止访问,例如用户在图5F中的控件510上输入用户操作,则客体设备100停止运行该实例,并且该实例不再具备主体设备300获取到的权限。之后,如果主体设备300再次向客体设备100发送相同作用的访问请求,则客体设备100、主体设备300需要重新执行上述步骤S104-S109,重新向用户申请获取该访问请求所需的权限。
又例如,如果主体设备300获取到的访问请求所需的权限的时效为永久有效,并且该权限具体为主体设备300调用客体设备100中的视频通话功能组件(FA)以访问摄像头的权限时,客体设备100运行为“在线课堂”应用创建的视频通话功能组件(FA)的实例以访问摄像头之后,若用户指示停止访问,例如用户在图5F中的控件510上输入用户操作,则客体设备100停止运行该实例,但该实例持续具备主体设备300获取到的权限。之后,如果主体设备300再次向客体设备100发送相同作用的访问请求,例如,主体设备300中的即时通讯应用发起的访问请求,则客体设备100、主体设备300无需重新执行上述步骤S104-S108,可以直接根据之前的权限信息,响应该访问请求。
在本申请实施例中,主体设备或客体设备均可以提供用户界面,以供用户查看自身安装的各个应用拥有的权限信息,以及,各个应用授予给被调用者的权限信息。
各个应用拥有的权限信息可包括该应用拥有的权限、该权限的状态、授予方、授予设备、时效等等。
参考图6A,图6A示例性示出了客体设备100中各个应用拥有的权限信息。
如图6A所示,客体设备100中的视频通话应用(FA)拥有“在线课堂”授予的摄像头权限和麦克风权限,还包括自身拥有的网络权限,不具备访问短信服务、电话服务、相册、定位服务等权限。此外,客体设备100中的外卖类APP拥有定位FA授予的访问定位服务的权限,还包括自身拥有的网络权限,但不具备访问相册的权限。
在图6A所示的用户界面中,用户可以点击权限状态图标,以更高客体设备100中各个应用拥有的权限。
各个应用授予给被调用者的权限信息可包括该应用授予的权限、该权限的状态、授予的被调用者、授予的设备、时效等等。
参考图6B,图6B示例性示出了主体设备300中各个应用授予给被调用者的权限信息。
如图6B所示,主体设备300中“在线课堂”应用授予了视频通话应用(FA)摄像头权限和麦克风权限,外卖类APP授予了定位FA访问定位服务的权限。用户可以点击权限状态图标,以更改主体设备300中各个应用授予的权限。
在本申请实施例中,客体设备可以管理为主体设备中的调用者创建的被调用者的实例的生命周期。在一些实施例中,客体设备可以在运行该实例并成功响应访问请求后,停止运行或销毁该实例,也可以在经过预设时间后停止运行或销毁该实例,还可以在运行中的实例经过一定时长均未访问客体设备中的资源时,停止运行或销毁该实例。停止运行实例是指客体设备中仍然存在该实例,但该实例并未处于运行状态。销毁实例是指客体设备将该实例相关的所有数据删除,该客体设备中不再存在该实例。
在图4所示的访问控制方法中:
客体设备100可以被称为第三设备,一个主体设备(例如主体设备300)可以被称为第一设备,另一个主体设备(例如主体设备400)可以被称为第二设备。
第一设备中的调用者可以被称为第一调用者,第二设备中的调用者可以被称为第二调用者。
第一设备向第三设备发送的访问请求,可以被称为第一访问请求。第二设备向第三设备发送的访问请求,可以被称为第二访问请求。
第一设备向第三设备发送的权限信息,可以被称为第一权限信息。第二设备向第三设备发送的权限信息,可以被称为第二权限信息。调用被调用者的权限,和/或,访问所述第一资源的权限,可以被称为第一权限,也可以被称为第二权限。
第三设备响应于第一访问请求所运行的被调用者的实例,可称为第一实例。第三设备响应于第二访问请求所运行的被调用者的实例,可称为第二实例。
S106中,主体设备300设备接收到的用于授予第一权限的操作,可以称为第一操作。该第一操作的示例例如可包括:图5D中作用于显示屏显示的控件506a的用户操作、摄像头采集到的预设的人脸图像、指纹传感器采集到的预设的指纹、拾音设备采集到的预设的语音指令,或者,作用于按键的用户操作。该第一操作的具体实现可参考图4中S106的相关描述。
S106中,主体设备300提供的用于接收第一操作的用户界面可以称为第一用户界面,例如图5D所示的用户界面54。用户界面54中的控件506a可以称为第一控件。
通过上述图4所示的基于权限传递的访问控制方法,客体设备为主体设备中的调用者创建的实例,只具有该主体设备传递过来的权限。客体设备只能利用主体设备传递过来的权限运行为该主体设备中的调用者创建的实例,从而为该主体设备中的调用者提供服务,而不能利用该权限运行为其他主体设备中的调用者创建的实例,不能利用该权限为其他主体设备中的调用者提供服务。这样以多实例的形式,可以保证一个调用者的权限只会给到和该调用者对应的被调用者的实例,可以避免权限混用、权限扩大化问题,从而保证客体设备中的数据安全,防止数据滥用及泄露。
并且,通过上述方法,无论客体设备是否具备授权条件,只要主体设备具备授权条件,客体设备就能够获取访问请求所需的权限,从而保障调用者发起的访问请求能够被成功响应,实现设备间的资源调用,满足用户的实际需求。
此外,上述方法通过主体设备来获取访问请求所需的权限,而不依赖被调用者来获取该权限,也不依赖于被调用者来对调用者进行安全认证,因此该方法对被调用者没有任何限制。无论被调用者是第三方应用还是系统应用,实施上述方法都能够获取访问请求所需的权限,并能够保证只有在调用者具备访问请求所需的权限的情况下,该调用者发起的访问请求能够被成功响应,从而实现设备间的资源调用,满足用户的实际需求。也即是说,该方法可以提供系统级别的访问控制。
不限于上述示例性列举的分布式系统,图4所示的方法还可以应用于单个电子设备中。例如,该电子设备中安装有多个调用者和被调用者,该电子设备既是主体设备,也是客体设备。该电子设备可以生成多个用于调用同一被调用者的访问请求,该访问请求用于调用者调用被调用者以访问该电子设备中的第一资源。该访问请求的生成时机以及方式,可参考图4 的S102中客体设备生成访问请求的相关描述。该电子设备生成访问请求之后,可以执行图4 所示方法中的S103-S109,不同之处在于图4中客体设备和主体设备之间的通信过程可以省略。单个电子设备如何执行本申请实施例提供的访问控制方法,可参考图4的相关描述,这里不再赘述。
单个电子设备实施上述访问控制方法时,通过电子设备来获取访问请求所需的权限,而不依赖被调用者来获取该权限,也不依赖于被调用者来对调用者进行安全认证,因此该方法对被调用者没有任何限制。无论被调用者是第三方应用还是系统应用,实施上述方法都能够获取访问请求所需的权限,并能够保证只有在调用者具备访问请求所需的权限的情况下,该调用者发起的访问请求能够被成功响应,从而实现单机设备内的资源调用,满足用户的实际需求。
此外,在单机设备中,电子设备以多实例为多个调用者分别提供服务的形式,可以保证一个调用者的权限只会给到和该调用者对应的被调用者的实例,可以避免权限混用、权限扩大化问题,从而保证电子设备中的数据安全,防止数据滥用及泄露。
在单机设备中执行本申请实施例提供的基于权限传递的访问控制方法时,电子设备中的一个调用者可以被称为第一调用者,另一个调用者可以被称为第二调用者。电子设备运行第一调用者时生成的用于调用被调用者并访问第一资源的访问请求,可以被称为第一访问请求。电子设备运行第二调用者时生成的用于调用被调用者并访问第一资源的访问请求,可以被称为第二访问请求。
电子设备运行第一调用者时获取到的调用被调用者的权限,和/或,访问第一资源的权限,可以称为第一权限。电子设备运行第二调用者时获取到的调用被调用者的权限,和/或,访问第一资源的权限,可以称为第二权限。
电子设备响应于第一访问请求所运行的被调用者的实例,可称为第一实例。第三设备响应于第二访问请求所运行的被调用者的实例,可称为第二实例。
参考图7A,图7A为本申请实施例提供的主体设备的软件结构示意图。该主体设备可以是图4实施例中的主体设备200或主体设备300。
如图7A所示,主体设备可包括如下几个模块:应用信息管理模块、分布式应用权限管理模块、本地应用权限管理模块、分布式权限信息库、本地权限信息库、权限申请模块、权限传递模块、调用关系管理模块、调用关系库、访问控制模块。其中:
应用信息管理模块,用于管理主体设备所安装的各个APP、功能组件的信息,例如名称等等。应用信息管理模块还用于将本机的APP、功能组件的信息同步到其他设备中,同时接收其他设备(例如客体设备)同步的APP、功能组件的信息。
分布式应用权限管理模块,用于同步分布式系统10中其他设备(例如客体设备)开放给主体设备的能力信息,还可用于将主体设备开放给其他设备的能力信息同步到其他电子设备中。
分布式权限信息库,用于存储分布式系统10中其他设备(例如客体设备)开放给主体设备的能力信息,还可用于存储主体设备开放给其他设备的能力信息。
权限申请模块,用于请求用户授予主体设备向客体设备发送的访问请求所需的权限。
本地应用权限管理模块,用于管理主体设备中的各个应用(包括APP和功能组件)对分布式系统10中的其他设备的能力的使用权限。该权限的获取方式,具体可参考权限申请模块以及前文方法实施例的相关描述,这里暂不赘述。
本地权限信息库,用于存储主体设备中的各个应用(包括APP和功能组件)对分布式系统10中的其他设备的能力的使用权限信息。在一些实施例中,本地权限信息库还可用于存储主体设备中的各个应用对其他设备的能力的使用权限的时效信息。
权限传递模块,用于根据调用关系,将权限申请模块申请到的权限信息,发送给客体设备。
调用关系管理模块,负责维护调用者、为该调用者提供服务的被调用者实例组成的调用关系,并将其存储到调用关系库中。
调用关系库,用于存储调用者和被调用者实例组成的调用关系。该调用关系包括:调用关系ID、被调用者的实例信息,和,调用该实例的各个调用者信息。
调用关系ID可以由主体设备分配。针对同一个调用关系,客体设备和主体设备可以共享同一个调用关系ID,该调用关系ID可以被携带在发送给客体设备的访问请求中,由主体设备分配后发送给客体设备。
被调用者的实例信息可包括以下一项或多项:客体设备的设备标识(device ID)、被调用者的APP ID、该实例的用户标识(user ID,UID)和进程标识(process identifier,PID)。PID 是实例的身份标识,电子设备运行一个实例即会给该实例分配一个唯一的PID。PID、UID可以由客体设备同步到主体设备中。
调用者信息包括调用者的应用标识(APP ID),还可包括以下一项或多项:主体设备的设备标识(device ID)、调用者的开发者签名、调用者的用户标识(user ID,UID)、主体设备的账户(account ID)。其中:
APP ID,用于标识APP或功能组件。
device ID,用于标识设备。device ID例如可以是设备的名称、序列号、媒体访问控制(media access control,MAC)地址等等。
开发者签名,用于标识开发者。
UID,用于标识APP或功能组件所属用户。通常情况下,电子设备会为安装的不同APP 或功能组件分配不同的UID,以作区分。在一些实施例中,电子设备可能为同一开发者开发的各个APP或功能组件分配相同的UID。同一个APP或功能组件在不同电子设备中,可能拥有不同的UID。
account ID,用于标识当前登录到电子设备的用户,例如可以是华为账号。
参考表3-表5,其示例性示出了3个主体设备的调用关系库中各自存储的调用关系。
表3
表4
表5
电子设备200可以为前文方法实施例中的主体设备200,例如可以为智能手机。电子设备300可以为前文方法实施例中提及的主体设备300,例如可以为平板电脑。电子设备100 可以为前文方法实施例中的客体设备100,例如可以为智慧屏。
从表3-表5可知,3个主体设备(电子设备200、电子设备300和电子设备400)同时调用客体设备(电子设备100)中标识为“ID1”的APP或功能组件,客体设备创建了2个实例,一个实例为电子设备200中的调用者提供服务,另一个实例为电子设备300和电子设备400 中由同一开发者开发的两个调用者提供服务。
访问控制模块,用于在主体设备向客体设备发起访问请求时,首先通过分布式应用权限管理模块查询客体设备是否开放了该访问请求所需的权限给主体设备,然后通过本地应用权限管理查询发起该访问请求的调用者是否具有该访问请求所需的权限。在通过上述两次查询结果均为是时,访问控制模块确认主体设备向该客体设备可以发起该访问请求。
图7A仅为示意性举例,本申请实施例提供的主体设备还可以包括更多或更少的模块,这里不做限制。
图7A提及的主体设备中的各个模块,可以位于图3B所示的电子设备中的应用程序层、应用程序框架层、系统服务层、内核层等等,这里不做限制。
参考图7B,图7B为本申请实施例提供的客体设备的软件结构示意图。该客体设备可以是图4实施例中的客体设备100。
如图7B所示,客体设备可包括如下几个模块:应用信息管理模块、分布式应用权限管理模块、本地应用权限管理模块、分布式权限信息库、本地权限信息库、实例管理模块、权限传递模块、调用链管理模块、调用关系库、访问控制模块。其中:
应用信息管理模块,用于管理客体设备所安装的各个APP、功能组件的信息,例如名称等等。应用信息管理模块还用于将本机的APP、功能组件的信息同步到其他设备中,同时接收其他设备(例如主体设备)同步的APP、功能组件的信息。
分布式应用权限管理模块,用于将客体设备开放给其他设备(例如主体设备)的能力信息同步到其他电子设备中,还用于同步分布式系统10中其他设备(例如主体设备)开放给客体设备的能力信息。
分布式权限信息库,用于存储客体设备开放给其他设备的能力信息,还可用于存储分布式系统10中其他设备(例如主体设备)开放给客体设备的能力信息。
实例管理模块,负责根据调用者的信息,动态启用被调用者的实例,为该调用者提供服务。具体的,实例管理模块可以为不同的调用者启用不同的被调用者的实例。
权限传递模块,用于接收主体设备发送的该主体设备发起的访问请求所需的权限信息。
本地应用权限管理模块,用于管理客体设备中的应用(包括APP和功能组件)的各个实例对自身资源的使用权限。本地应用权限管理模块可用于将权限传递模块接收到的主体设备发起的访问请求所需的权限信息,赋予客体设备为该主体设备中的调用者创建的被调用者的实例。
本地权限信息库,用于存储客体设备中应用(包括APP和功能组件)的各个实例对自身资源的使用权限信息。该权限的获取方式,具体可参考权限申请模块以及前文方法实施例的相关描述,这里暂不赘述。
调用链管理模块,负责维护调用者、为该调用者提供服务的被调用者实例组成的调用关系,并将其存储到调用关系库中。
调用关系库,用于存储调用者和被调用者实例组成的调用关系。该调用关系包括:调用关系ID、被调用者的实例信息,和,调用该实例的各个调用者信息。该调用关系的具体内容可参考图7A中主体设备的相关描述。
参考表6,表6示例性示出了客体设备存储的一种调用关系。
表6
从表6可知,客体设备(电子设备100)中标识为“ID1”的APP或功能组件同时被3个主体设备(电子设备200、电子设备300和电子设备400)调用,客体设备创建了2个实例,一个实例为电子设备200中的调用者提供服务,另一个实例为电子设备300和电子设备400中由同一开发者开发的两个调用者提供服务。
访问控制模块,用于在接收到主体设备向客体设备发起的访问请求时,首先通过分布式应用权限管理模块查询客体设备是否开放了该访问请求所需的权限给该主体设备。在客体设备开放了权限给该主体设备时,访问控制模块可以通过本地应用权限管理模块,检查为该主体设备中的调用者创建的被调用者的实例,是否具有该访问请求所要求的权限。若有,则访问控制模块确认该客体设备可以运行该实例,从而响应该访问请求。若没有,访问控制模块可以根据调用链管理模块维护的调用关系,找到调用者所在的主体设备,并向主体设备申请访问请求所需的权限。
图7B仅为示意性举例,本申请实施例提供的客体设备还可以包括更多或更少的模块,这里不做限制。
图7B提及的客体设备中的各个模块,可以位于图3B所示的电子设备中的应用程序层、应用程序框架层、系统服务层、内核层等等,这里不做限制。
本申请的各实施方式可以任意进行组合,以实现不同的技术效果。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solidstate disk,SSD)) 等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体 RAM、磁碟或者光盘等各种可存储程序代码的介质。
总之,以上所述仅为本申请技术方案的实施例而已,并非用于限定本申请的保护范围。凡根据本申请的揭露,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (27)
1.一种基于权限传递的访问控制方法,其特征在于,所述方法应用于包含第一设备、第二设备和第三设备的通信系统,所述第一设备中安装有第一调用者,所述第二设备中安装有第二调用者、所述第三设备中安装有被调用者;所述第一调用者、所述第二调用者、所述被调用者为应用程序APP或功能组件;所述APP为实现多个功能的程序实体,所述功能组件为实现单一功能的程序实体;
所述方法包括:
所述第一设备向所述第三设备发送第一访问请求,所述第一访问请求用于所述第一调用者调用所述被调用者以访问所述第三设备中的第一资源;
所述第二设备向所述第三设备发送第二访问请求,所述第二访问请求用于所述第二调用者调用所述被调用者以访问所述第一资源;
所述第一设备向所述第三设备发送第一权限信息,所述第一权限信息指示用户授予的第一权限,所述第一权限包括调用所述被调用者的权限,和/或,访问所述第一资源的权限;
所述第二设备向所述第三设备发送第二权限信息,所述第二权限信息指示用户授予的第二权限,所述第二权限包括调用所述被调用者的权限,和/或,访问所述第一资源的权限;
所述第三设备响应于所述第一访问请求,根据所述第一权限运行所述被调用者的第一实例,以访问所述第一资源;
所述第三设备响应于所述第二访问请求,根据所述第二权限运行所述被调用者的第二实例,以访问所述第一资源;
其中,所述第二实例不同于所述第一实例,所述第一实例、所述第二实例为随机存取存储器RAM中运行的进程或线程,所述第一实例和所述第二实例相互隔离。
2.根据权利要求1所述的方法,其特征在于,所述第一权限信息还指示所述第一权限的时效,所述时效为以下任意一项:一次有效、在第一时间内有效、在第一区域内有效或者永久有效;
所述第三设备根据所述第一权限信息运行所述第一实例,以访问所述第一资源之后,所述方法还包括:
所述第一设备向所述第三设备发送第三访问请求,所述第三访问请求用于所述第一调用者调用所述被调用者以访问所述第一资源;
如果所述时效为一次有效,则所述第三设备拒绝响应所述第三访问请求;
如果所述时效为在所述第一时间内有效,并且所述第三设备接收到所述第一权限信息的时长不超过所述第一时间;或者,如果所述时效为在第一区域内有效,并且所述第三设备位于所述第一区域内;或者,如果所述时效为永久有效,则所述第三设备响应于所述第三访问请求,根据所述第一权限信息运行所述第一实例,以访问所述第一资源。
3.根据权利要求1或2所述的方法,其特征在于,所述第一设备向所述第三设备发送第一访问请求,所述第一设备向所述第三设备发送第一权限信息,具体包括:
所述第一设备向所述第三设备发送第一访问请求,所述第一访问请求携带有第一权限信息。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述第三设备根据所述第一权限运行所述被调用者的第一实例,以访问所述第一资源之前,所述方法还包括:
所述第三设备响应于所述第一访问请求,创建所述被调用者的第一实例。
5.根据权利要求1-4任一项所述的方法,其特征在于,
所述第一设备向所述第三设备发送第一权限信息之前,所述方法还包括:所述第一设备输出提示信息,所述提示信息用于提示所述第一权限;
所述第一设备向所述第三设备发送第一权限信息,具体包括:所述第一设备响应于接收到的第一操作,向所述第三设备发送第一权限信息。
6.根据权利要求5所述的方法,其特征在于,所述第一设备输出提示信息之前,所述方法还包括:
所述第三设备响应于所述第一访问请求,向所述第一设备发送授权请求,所述授权请求用于请求用户授予所述第一权限。
7.根据权利要求5或6所述的方法,其特征在于,所述第一操作包括以下一项或多项:作用于显示屏的用户操作、预设的人脸图像、预设的指纹、预设的语音指令,或者,作用于按键的用户操作。
8.根据权利要求5-7任一项所述的方法,其特征在于,所述第一设备输出提示信息,具体包括:
所述第一设备显示第一用户界面,所述第一用户界面中显示有提示信息和第一控件;所述第一操作包括作用于所述第一控件的用户操作。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述第一权限具体包括:
所述第一设备调用所述被调用者的权限,和/或,所述第一设备访问所述第一资源的权限;
和/或,
所述调用者调用所述被调用者的权限,和/或,所述调用者访问所述第一资源的权限。
10.根据权利要求1-9任一项所述的方法,其特征在于,
所述第一资源包括:隐私程度高于阈值的资源。
11.一种基于权限传递的访问控制方法,其特征在于,所述方法应用于电子设备,所述电子设备中安装有被调用者;所述被调用者为应用程序APP或功能组件,所述APP为实现多个功能的程序实体,所述功能组件为实现单一功能的程序实体;
所述方法包括:
所述电子设备接收到第一设备发送的第一访问请求,所述第一访问请求用于所述第一设备中的第一调用者调用所述被调用者以访问所述电子设备中的第一资源,所述第一调用者为所述APP或所述功能组件;
所述电子设备接收到第二设备发送的第二访问请求,所述第二访问请求用于所述第二设备中的第二调用者调用所述被调用者以访问所述第一资源,所述第二调用者为所述APP或所述功能组件;
所述电子设备接收到所述第一设备发送的第一权限信息,所述第一权限信息指示用户授予的第一权限,所述第一权限包括调用所述被调用者的权限,和/或,访问所述第一资源的权限;
所述电子设备接收到所述第二设备发送的第二权限信息,所述第二权限信息指示用户授予的第二权限,所述第二权限包括调用所述被调用者的权限,和/或,访问所述第一资源的权限;
所述电子设备响应于所述第一访问请求,根据所述第一权限运行所述被调用者的第一实例,以访问所述第一资源;
所述电子设备响应于所述第二访问请求,根据所述第二权限运行所述被调用者的第二实例,以访问所述第一资源;
其中,所述第二实例不同于所述第一实例,所述第一实例、所述第二实例为随机存取存储器RAM中运行的进程或线程,所述第一实例和所述第二实例相互隔离。
12.根据权利要求11所述的方法,其特征在于,所述第一权限信息还指示所述第一权限的时效,所述时效为以下任意一项:一次有效、在第一时间内有效、在第一区域内有效或者永久有效;
所述电子设备根据所述第一权限信息运行所述第一实例,以访问所述第一资源之后,所述方法还包括:
所述电子设备接收到所述第一设备发送的第三访问请求,所述第三访问请求用于所述第一调用者调用所述被调用者以访问所述第一资源;
如果所述时效为一次有效,则所述电子设备拒绝响应所述第三访问请求;
如果所述时效为在所述第一时间内有效,并且所述电子设备接收到所述第一权限信息的时长不超过所述第一时间;或者,如果所述时效为在第一区域内有效,并且所述电子设备位于所述第一区域内;或者,如果所述时效为永久有效,则所述电子设备响应于所述第三访问请求,根据所述第一权限信息运行所述第一实例,以访问所述第一资源。
13.根据权利要求11或12所述的方法,其特征在于,所述电子设备接收到第一设备发送的第一访问请求,所述电子设备接收到所述第一设备发送的第一权限信息,具体包括:
所述电子设备接收到第一设备发送的第一访问请求,所述第一访问请求携带有第一权限信息。
14.根据权利要求11-13任一项所述的方法,其特征在于,所述电子设备根据所述第一权限运行所述被调用者的第一实例,以访问所述第一资源之前,所述方法还包括:
所述电子设备响应于所述第一访问请求,创建所述被调用者的第一实例。
15.根据权利要求11-14任一项所述的方法,其特征在于,所述电子设备接收到所述第一设备发送的第一权限信息之前,所述方法还包括:
所述电子设备响应于所述第一访问请求,向所述第一设备发送授权请求,所述授权请求用于请求用户授予所述第一权限。
16.根据权利要求11-15任一项所述的方法,其特征在于,所述第一权限具体包括:
所述电子设备调用所述被调用者的权限,和/或,所述电子设备访问所述第一资源的权限;
和/或,
所述调用者调用所述被调用者的权限,和/或,所述调用者访问所述第一资源的权限。
17.根据权利要求11-16任一项所述的方法,其特征在于,
所述第一资源包括:隐私程度高于阈值的资源。
18.一种电子设备,其特征在于,包括:存储器、一个或多个处理器;所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:
接收到第一设备发送的第一访问请求,所述第一访问请求用于所述第一设备中的第一调用者调用所述电子设备中的被调用者以访问所述电子设备中的第一资源;所述第一调用者、所述被调用者为APP或功能组件,所述APP为实现多个功能的程序实体,所述功能组件为实现单一功能的程序实体;
接收到第二设备发送的第二访问请求,所述第二访问请求用于所述第二设备中的第二调用者调用所述被调用者以访问所述第一资源,所述第二调用者为所述APP或所述功能组件;
接收到所述第一设备发送的第一权限信息,所述第一权限信息指示用户授予的第一权限,所述第一权限包括调用所述被调用者的权限,和/或,访问所述第一资源的权限;
接收到所述第二设备发送的第二权限信息,所述第二权限信息指示用户授予的第二权限,所述第二权限包括调用所述被调用者的权限,和/或,访问所述第一资源的权限;
响应于所述第一访问请求,根据所述第一权限运行所述被调用者的第一实例,以访问所述第一资源;
响应于所述第二访问请求,根据所述第二权限运行所述被调用者的第二实例,以访问所述第一资源;
其中,所述第二实例不同于所述第一实例,所述第一实例、所述第二实例为随机存取存储器RAM中运行的进程或线程,所述第一实例和所述第二实例相互隔离。
19.根据权利要求18所述的电子设备,其特征在于,所述第一权限信息还指示所述第一权限的时效,所述时效为以下任意一项:一次有效、在第一时间内有效、在第一区域内有效或者永久有效;所述一个或多个处理器还用于调用所述计算机指令以使得所述电子设备执行:
根据所述第一权限信息运行所述第一实例,以访问所述第一资源之后,接收到所述第一设备发送的第三访问请求,所述第三访问请求用于所述第一调用者调用所述被调用者以访问所述第一资源;
如果所述时效为一次有效,则拒绝响应所述第三访问请求;
如果所述时效为在所述第一时间内有效,并且所述电子设备接收到所述第一权限信息的时长不超过所述第一时间;或者,如果所述时效为在第一区域内有效,并且所述电子设备位于所述第一区域内;或者,如果所述时效为永久有效,则响应于所述第三访问请求,根据所述第一权限信息运行所述第一实例,以访问所述第一资源。
20.根据权利要求18或19所述的电子设备,其特征在于,所述一个或多个处理器具体用于调用所述计算机指令以使得所述电子设备执行:
接收到第一设备发送的第一访问请求,所述第一访问请求携带有第一权限信息。
21.根据权利要求18-20任一项所述的电子设备,其特征在于,所述一个或多个处理器还用于调用所述计算机指令以使得所述电子设备执行:
根据所述第一权限运行所述被调用者的第一实例,以访问所述第一资源之前,响应于所述第一访问请求,创建所述被调用者的第一实例。
22.根据权利要求18-21任一项所述的电子设备,其特征在于,所述一个或多个处理器还用于调用所述计算机指令以使得所述电子设备执行:
接收到所述第一设备发送的第一权限信息之前,响应于所述第一访问请求,向所述第一设备发送授权请求,所述授权请求用于请求用户授予所述第一权限。
23.根据权利要求18-22任一项所述的电子设备,其特征在于,所述第一权限具体包括:
所述电子设备调用所述被调用者的权限,和/或,所述电子设备访问所述第一资源的权限;
和/或,
所述调用者调用所述被调用者的权限,和/或,所述调用者访问所述第一资源的权限。
24.根据权利要求18-23任一项所述的电子设备,其特征在于,
所述第一资源包括:隐私程度高于阈值的资源。
25.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求11-17中任一项所述的方法。
26.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得计算机执行如权利要求11-17中任一项所述的方法。
27.一种通信系统,其特征在于,所述通信系统包括:第一设备、第二设备和第三设备,所述第三设备用于执行如权利要求11-17中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110310734 | 2021-03-23 | ||
CN202110310734X | 2021-03-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115114637A true CN115114637A (zh) | 2022-09-27 |
Family
ID=83324577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210221759.7A Pending CN115114637A (zh) | 2021-03-23 | 2022-03-07 | 基于权限传递的访问控制方法、相关装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115114637A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116702100A (zh) * | 2022-10-21 | 2023-09-05 | 荣耀终端有限公司 | 权限管理方法和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150149543A1 (en) * | 2013-11-28 | 2015-05-28 | Call Gate Co., Ltd. | Method for contents sharing service and server applied to the same |
CN105991614A (zh) * | 2015-03-03 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 一种开放授权、资源访问的方法及装置、服务器 |
CN110637449A (zh) * | 2017-09-29 | 2019-12-31 | 华为技术有限公司 | 一种访问设备标识符的方法及装置 |
-
2022
- 2022-03-07 CN CN202210221759.7A patent/CN115114637A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150149543A1 (en) * | 2013-11-28 | 2015-05-28 | Call Gate Co., Ltd. | Method for contents sharing service and server applied to the same |
CN105991614A (zh) * | 2015-03-03 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 一种开放授权、资源访问的方法及装置、服务器 |
CN110637449A (zh) * | 2017-09-29 | 2019-12-31 | 华为技术有限公司 | 一种访问设备标识符的方法及装置 |
Non-Patent Citations (2)
Title |
---|
SHOHEI KAKEI等: "Cross-Certification Towards Distributed Authentication Infrastructure: A Case of Hyperledger Fabric", 《IEEE ACCESS》, vol. 8, 22 July 2020 (2020-07-22), pages 135742 - 135757, XP011801834, DOI: 10.1109/ACCESS.2020.3011137 * |
任兵飞: "基于资源访问控制的Android平台隐私保护方法研究", 《中国博士学位论文全文数据库》, 31 August 2019 (2019-08-31), pages 138 - 13 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116702100A (zh) * | 2022-10-21 | 2023-09-05 | 荣耀终端有限公司 | 权限管理方法和电子设备 |
CN116702100B (zh) * | 2022-10-21 | 2024-04-16 | 荣耀终端有限公司 | 权限管理方法和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4002108B1 (en) | Application start method and electronic device | |
WO2020155014A1 (zh) | 智能家居设备分享系统、方法及电子设备 | |
US20240232428A9 (en) | Access control method, electronic device, and system | |
CN115238299A (zh) | 基于安全等级的访问控制方法、相关装置及系统 | |
WO2022253158A1 (zh) | 一种用户隐私保护方法及装置 | |
WO2022247626A1 (zh) | 基于应用身份的访问控制方法、相关装置及系统 | |
WO2020107463A1 (zh) | 一种电子设备的控制方法及电子设备 | |
WO2022199499A1 (zh) | 一种访问控制的方法、电子设备及系统 | |
WO2023284555A1 (zh) | 安全调用服务的方法、安全注册服务的方法及装置 | |
WO2022199672A1 (zh) | 精准撤销权限的访问控制方法、相关装置及系统 | |
CN115114637A (zh) | 基于权限传递的访问控制方法、相关装置及系统 | |
WO2022188683A1 (zh) | 灵活授权的访问控制方法、相关装置及系统 | |
CN115268710A (zh) | 应用程序的登录方法、相关装置和系统 | |
CN115426122B (zh) | 基于权限适配的访问控制方法、相关装置及系统 | |
WO2022194156A1 (zh) | 分布式的访问控制方法、相关装置及系统 | |
CN115203731A (zh) | 基于安全敏感度的访问控制方法、相关装置及系统 | |
CN115203716A (zh) | 权限同步方法、相关装置及系统 | |
CN114996667A (zh) | 跨设备的访问控制方法、相关装置及系统 | |
WO2022068578A1 (zh) | 文件共享方法和电子设备 | |
CN115146305A (zh) | 基于访问策略的访问控制方法、相关装置及系统 | |
WO2022267656A1 (zh) | 组件访问方法和装置、计算机可读存储介质以及芯片 | |
CN116048685B (zh) | 杂志锁屏的显示方法、图形界面及电子设备 | |
WO2024041456A1 (zh) | 一种应用数据保存方法及电子设备 | |
EP4507355A1 (en) | Device security processing method and electronic devices | |
CN115017536A (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 |