CN116467704A - 资源的调用方法及装置 - Google Patents
资源的调用方法及装置 Download PDFInfo
- Publication number
- CN116467704A CN116467704A CN202310319483.0A CN202310319483A CN116467704A CN 116467704 A CN116467704 A CN 116467704A CN 202310319483 A CN202310319483 A CN 202310319483A CN 116467704 A CN116467704 A CN 116467704A
- Authority
- CN
- China
- Prior art keywords
- user
- resource
- sandbox
- application
- address information
- 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 74
- 244000035744 Hura crepitans Species 0.000 claims abstract description 223
- 230000008569 process Effects 0.000 claims description 33
- 230000004044 response Effects 0.000 claims description 19
- 238000013507 mapping Methods 0.000 claims description 12
- 101150053844 APP1 gene Proteins 0.000 description 11
- 101100189105 Homo sapiens PABPC4 gene Proteins 0.000 description 11
- 102100039424 Polyadenylate-binding protein 4 Human genes 0.000 description 11
- 238000002955 isolation Methods 0.000 description 9
- 101800000618 Protein kinase C delta type catalytic subunit Proteins 0.000 description 8
- 102100021004 Protein sidekick-1 Human genes 0.000 description 8
- 230000001419 dependent effect Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 101100055496 Arabidopsis thaliana APP2 gene Proteins 0.000 description 6
- 101000716310 Homo sapiens Protein sidekick-2 Proteins 0.000 description 6
- 102100021005 Protein sidekick-2 Human genes 0.000 description 6
- 101100016250 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) GYL1 gene Proteins 0.000 description 6
- 102100038359 Xaa-Pro aminopeptidase 3 Human genes 0.000 description 4
- 101710081949 Xaa-Pro aminopeptidase 3 Proteins 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 1
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 101000901617 Notophthalmus viridescens Homeobox protein DLX-3 Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Abstract
本说明书提供一种资源的调用方法及装置。所述方法包括:响应于第一用户针对目标资源发起的资源调用请求,确定所述第一用户对应的第一用户沙箱;其中,不同用户分别对应不同的用户沙箱,任一用户沙箱记录有相应用户的可调用资源的地址信息;根据所述目标资源的资源描述信息,在所述第一用户沙箱记录的第一可调用资源的地址信息中查询所述目标资源的目标地址信息,并按照所述目标地址信息进行资源调用。该方法可以对不同用户的个人资源进行隔离,避免不同用户的个人数据互相可见导致的安全隐患,提升资源的安全性。
Description
技术领域
本说明书一个或多个实施例涉及计算机领域,尤其涉及一种资源的调用方法及装置。
背景技术
本地物理机、虚拟机(VM,Virtual Machine)等计算机通常可以实现多用户登录,即多个用户可以同时登录一台计算机,并分别操作该计算机实现相应的功能。
在相关技术中,登录同一台计算的多个用户通常可以分别独立访问该计算机的全部资源,因此可能造成数据安全隐患。以虚拟机为例,在多个用户同时登录至同一台虚拟机的情况下,各个用户产生的个人数据通常都属于该虚拟机。其中任一用户除了可以访问自身的个人数据之外,还可能访问到其他用户的个人数据;换言之,多个用户的个人数据之间互相可见,因此无法实现数据隔离,数据安全性较低。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种资源的调用。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种资源的调用方法,包括:
响应于第一用户针对目标资源发起的资源调用请求,确定所述第一用户对应的第一用户沙箱;其中,不同用户分别对应不同的用户沙箱,任一用户沙箱记录有相应用户的可调用资源的地址信息;
根据所述目标资源的资源描述信息,在所述第一用户沙箱记录的第一可调用资源的地址信息中查询所述目标资源的目标地址信息,并按照所述目标地址信息进行资源调用。
根据本说明书一个或多个实施例的第二方面,提出了一种资源的调用装置,包括:
用户沙箱确定单元,用于响应于第一用户针对目标资源发起的资源调用请求,确定所述第一用户对应的第一用户沙箱;其中,不同用户分别对应不同的用户沙箱,任一用户沙箱记录有相应用户的可调用资源的地址信息
目标资源调用单元,用于根据所述目标资源的资源描述信息,在所述第一用户沙箱记录的第一可调用资源的地址信息中查询所述目标资源的目标地址信息,并按照所述目标地址信息进行资源调用。
根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如第一方面中任一项所述的方法。
根据本说明书一个或多个实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面中任一项所述方法的步骤。
在本方案中,计算机的操作系统为登录该计算机的各个用户分别创建相应的用户沙箱,其中任一用户对应的用户沙箱中记录有该用户的可调用资源的地址信息,从而将该用户可以调用的各个资源(即所述可调用资源)隔离在该用户沙箱中。基于此,该操作系统可以响应于第一用户(同时登录该计算机的多个用户中的任一用户)针对目标资源发起的资源调用请求,确定所述第一用户对应的第一用户沙箱;然后根据目标资源的资源描述信息,在第一用户沙箱记录的第一可调用资源的地址信息中查询所述目标资源的目标地址信息——该地址即为第一用户所需的目标资源的调用地址,从而可以按照该地址对目标资源进行资源调用。
可以理解的是,任一用户对应的用户沙箱中记录有该用户的可调用资源的地址信息,因此在第一用户沙箱中查找到目标地址信息后,按照该地址调用的目标资源必然属于第一用户的可调用资源。另外,第一用户能够调用第一用户沙箱中所记录地址信息指向的、第一用户的可调用资源,而无法调用其他用户沙箱中所记录地址信息指向的、其他用户的可调用资源。可见,本方案通过不同的用户沙箱对不同用户分别可以调用的资源(如个人数据、个人应用等)进行隔离,使得任一用户仅可见自身的个人资源,避免了不同用户的个人资源相互可见导致的安全隐患,提升了资源的安全性。
附图说明
图1是一示例性实施例提供的一种云桌面系统的架构示意图。
图2是一示例性实施例提供的一种资源的调用方法的示意图。
图3是一示例性实施例提供的一种计算机的内部结构示意图。
图4是一示例性实施例提供的一种设备的结构示意图。
图5是一示例性实施例提供的一种资源的调用装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
如前所述,计算机通常可以实现多用户登录,即多个用户可以同时登录一台计算机,并分别操作该计算机实现相应的功能。
在相关技术中,登录同一台计算的多个用户通常可以分别独立访问该计算机的全部资源,因此可能造成数据安全隐患。以虚拟机为例,在多个用户同时登录至同一台虚拟机的情况下,各个用户产生的个人数据通常都属于该虚拟机。其中任一用户除了可以访问自身的个人数据之外,还可能访问到其他用户的个人数据;换言之,多个用户的个人数据之间互相可见,因此无法实现数据隔离,数据安全性较低。
针对相关技术中存在的上述问题,本说明书提出一种资源的调用方法,通过为各个用户分别设置相应的用户沙箱,将各个用户的可调用资源预先进行隔离,使得操作系统可以在第一用户沙箱记录的地址信息中查找该用户请求调用的目标资源的目标地址信息,从而避免该用户访问其他用户的可调用资源,实现不同用户个人资源之间的隔离。下面结合附图对该方法进行详细说明。
本说明书实施例所述资源的调用方法可以应用于计算机,具体应用于计算机的操作系统。所述计算机可以为本地计算机或者虚拟机。以虚拟机为例,任一虚拟机可以独立运行在某一终端设备中,或者也可以与其他虚拟机集中运行在某一服务器中。如任一服务器中可以同时运行多个虚拟机,各个虚拟机分别由相应的操作系统所控制,该服务器的软硬件资源可以被合理分配给各个虚拟机使用。
该计算机在任一时刻可以登录有多个用户,换言之,所述多个用户可以在同一时刻分别登录该计算机,以作为该计算机的用户。具体的,任一用户所登录的用户账号可以是在该计算机的操作系统中预先注册的账号,或者也可以是在该操作系统所关联的其他平台预先注册的账号等,不再赘述。在登录该计算机完成后,这些用户可以被该计算机的操作系统所管理。
针对已登录的各个用户,所述计算机的操作系统可以为这些用户分别创建相应的用户沙箱。例如,操作系统可以在任一用户登录完成后为该用户创建对应的用户沙箱,以及,确定该用户的可调用资源的地址信息并将其记录在该用户沙箱中。
另外,任一用户沙箱中还可以运行该用户指示的应用,以向该用户提供该用户对应的功能。其中,本公开对于任一用户沙箱中运行的应用所能够实现的具体功能并不进行限制,例如,所述用户可以包括办公应用、购物应用、支付应用、即时通信应用和/或音乐应用等,不再赘述。
图1是一示例性实施例提供的一种云桌面系统的架构示意图。该系统可以包括服务器11、存储设备12,若干电子设备,如手机13、手机14和手机15等。其中,所述应用服务器11中可以部署有至少一个虚拟机(图中并未示出)。任一虚拟机通过在本地运行应用可以将自身实现为应用服务端,并为应用客户端提供相应的应用服务。
云桌面又称桌面虚拟化、云电脑等,是替代传统本地计算机的计算模式:用户无需购买电脑主机,主机运行所需的CPU、内存、硬盘等组件可以由云桌面服务器的资源通过虚拟化技术实现并提供。用户可是使用任意形式的终端设备作为云桌面客户端,通过网络连接至所述云桌面服务器,二者相互配合即构成云桌面场景下的完整计算机。在任一虚拟机中部署有云桌面实例的情况下,基于在该实例中运行的应用,该虚拟机可以为手机13~15等电子设备提供云桌面服务。在该场景下,所述任一虚拟机被实现为云桌面服务端,用户使用的所述手机即相当于云桌面客户端。可以理解的是,作为应用客户端的电子设备可以包括控制模组、通信模组、显示器、键盘、鼠标等硬件,以便用户通过上述硬件与应用服务端实现信息交互。
其中,对于任一虚拟机中运行的任一应用而言,其运行所需的数据(程序、代码等)或者运行过程产生的数据(中间数据、数据处理结果、运行记录等)既可以存储在该虚拟机本地,也可以存储在所述存储设备12内。所述虚拟机可以通过虚拟磁盘(VHD,Virtual HardDisk)技术将存储设备12中存储的数据作为VHD挂载至本地,以便在应用运行过程中对该VHD的数据进行远程读写操作,从而无需将应用安装在虚拟机本地,简化虚拟机的应用维护操作并节省虚拟机的本地存储空间。
另外,手机13~15中的任一手机中可以运行有客户端程序,从而将该手机实现为云桌面系统中的云桌面客户端。所述客户端本质上可以为应用程序,该应用程序可以被预先安装在手机上,使得该客户端可以在该终端设备上被启动并运行;当然,当使用诸如HTML5技术的在线“客户端”时,无需在手机上安装相应的应用程序,即可获得并运行该客户端。相应的,服务器11中运行的所述云桌面实例可以视为服务端程序,所述任一虚拟机通过运行该程序将自身实现为云桌面系统中的服务端,不再赘述。
上述任一手机可以对应于相应的用户,如任一用户可以使用自身的用户账号登录手机13中运行的客户端,登录完成后,该用户即可视为手机13对应的用户。其中,手机13在该登录过程中可以与服务器11进行交互,从而可以实现该用户对服务器11中任一虚拟机的登录。另外,手机13~15只是用户可以使用的一种类型的电子设备。用户还可以使用诸如下述类型的电子设备:平板设备、笔记本电脑、掌上电脑(PDAs,Personal DigitalAssistants)、可穿戴设备(如智能眼镜、智能手表等)、VR(Virtual Reality,虚拟现实)设备、AR(Augmented Reality,增强现实)设备等,通过在这些设备上运行云桌面的客户端程序,即可将这些设备实现为云桌面客户端。当然,要将上述任一电子设备实现为云桌面客户端,可能需要在该设备中安装所述客户端程序或者访问在线形式的客户端程序。实际上,用户还可以使用云桌面专用设备,如该设备中可以预装有云桌面客户端,用户只需要为该设备连接相应的输入/输出设备,即可通过实施相应的操作,利用所述云桌面客户端访问相应的云桌面服务端运行的应用,享受该设备提供的云桌面服务。
另外,服务器11可以为包含一独立主机的物理服务器,或者也可以为主机集群承载的虚拟服务器、云服务器等。所述存储设备12可以为任意形式,如可以为结构化或非结构化数据库,也可以为网络附属存储(NAS,Network Attached Storage)设备,本说明书一个或多个实施例并不对此进行限制。
请参见图2,图2是一示例性实施例提供的一种资源的调用方法的流程图。如图2所示,该方法应用于计算机,具体可以应用于计算机的操作系统,可以包括下述步骤202-204。
步骤202,响应于第一用户针对目标资源发起的资源调用请求,确定所述第一用户对应的第一用户沙箱;其中,不同用户分别对应不同的用户沙箱,任一用户沙箱记录有相应用户的可调用资源的地址信息。
本说明书所述计算机的操作系统可以为Windows,或者也可以为iOS、Linux、Unix等,下文以Windows为例进行说明。本说明书所述的计算机可以同时登录多个用户,针对所述多个用户,该计算机的操作系统可以为各个用户分别创建相应的用户沙箱,其中,所述多个用户分别对应于不同的用户沙箱,换言之,完成登录的多个用户与操作系统创建的多个用户沙箱一一对应。其中,本说明书所述任一用户对应的用户沙箱,是用于对该用户的相关数据或资源进行权限隔离/管理的程序、规则或环境,其可以用于记录该用户的可调用资源(即该用户可以调用的软/硬件资源)的地址信息。具体而言,可以对应的记录这些资源的资源描述信息及其在所述计算机中的地址信息,以便后续操作系统可以根据任一资源的资源描述信息查询其地址信息进而进行调用。
另外,任一用户的可调用资源(即该用户可调用的资源)可以包括操作系统提供的系统资源,如内存、CPU等硬件资源,和/或SDK、文件管理等软件资源;还可以包括非系统资源,如该用户的个人数据、底层库、第三方工具包等。任一资源的地址信息用于指示该资源的访问地址,通过该地址可以访问(即调用)该资源。所述地址信息可以为数据的保存地址对应的索引,或者也可以为软硬件资源的调用接口或参数等,本说明书对于其具体形式并不进行限制。示例性的,对于操作系统提供的SDK,其地址信息可以为操作系统为该SDK指定的路径(通过该路径可以调用该SDK)。通过该方式,操作系统可以将不同用户的可调用资源的地址信息分别记录在不同的用户沙箱中,相当于将不同用户的可调用资源分别维护在不同的用户沙箱中,实现对不同用户个人资源的隔离,便于后续各个用户分别实现对个人资源的针对性访问。
本说明书所述第一用户可以为登录所述计算机的多个用户中的任一用户,计算机的操作系统可以在第一用户登录该计算机时为其创建对应的第一用户沙箱。在登录完成后,第一用户即可在该第一用户沙箱中处理事务,如查询数据、编辑文件、运行应用等。在处理上述事务的过程中,需要控制该虚拟机的操作系统调用该用户的可调用资源。本说明书即以第一用户请求操作系统调用目标资源的过程机型说明,所述目标资源即可为第一用户的可调用资源中的至少一个资源。
第一用户在需要调用目标资源时,可以向操作系统发起针对该资源的资源调用请求,以便触发后者响应于该请求进行资源调用。在一实施例中,所述资源的调用方法可以应用于部署有云桌面实例的虚拟机,此时所述第一用户沙箱可以由该虚拟机的操作系统创建并维护,所述资源调用请求可以通过所述云桌面实例向所述操作系统发起。在该场景下,所述虚拟机即相当于云桌面服务端,用户使用的终端设备(可以包括通信模组、显示器、键盘、鼠标等)即可以构成云桌面客户端。
其中,所述云桌面实例中可以运行第一应用,该应用可以被预先发布至云应用平台,此时该虚拟机可以为所述云桌面客户端提供所述云应用平台的应用浏览页面,该页面中可以包含所述第一应用的显示,如第一应用的启动控件、简介内容、详情信息、操作指南、用户评分等。对此,第一用户可以针对第一应用的上述显示实施触发操作,而云桌面客户端可以响应于该触发操作发起针对第一应用的所述启动指令,以便触发所述虚拟机启动所述第一应用。通过该方式,可以以云应用的形式向第一用户提供第一应用,而无需在所述虚拟机中真正的安装所述第一应用,从而不仅有助于简化第一用户对第一应用的部署和维护工作,也有助于节省所述计算机的本地存储空间,提升该计算机的应用运行效率。可以理解的是,所述第一应用沙箱也属于所述云桌面实例,而所述资源调用请求即可在第一用户使用第一应用的过程中,由该应用向操作系统发起(此时仍可将该请求视为第一用户所发起)。
在一实施例中,鉴于计算机为各个用户分别创建有相应的用户沙箱,所以为了准确区分各个用户分别对应的用户沙箱,避免使用阶段产生混乱,操作系统可以维护多种映射关系,相应的,响应于所述资源调用请求,操作系统可以基于上述映射关系采用多种方式确定所述第一用户对应的第一用户沙箱。
例如,操作系统可以维护用户的用户标识与用户沙箱的沙箱标识之间的第一类用户映射关系。基于此,操作系统可以根据该映射关系确定第一用户的用户标识对应的沙箱标识,并将该沙箱标识所表征的用户沙箱确定为所述第一用户沙箱。通过该方式,操作系统可以基于第一用户的用户标识准确地确定出第一用户沙箱。或者,在某些场景下,不同用户可以分别通过不同的会话(Session)连接至虚拟机,即虚拟机处于多会话保持状态。所述多个用户与所述多个会话一一对应,任一用户可视为属于一个会话,而各个会话分别有其相应的会话标识。此时,操作系统可以维护用户所属会话的会话标识与用户沙箱的沙箱标识之间的第二类用户映射关系。基于此,操作系统可以根据该映射关系确定所述第一用户所属会话的第一会话标识对应的沙箱标识,并将该沙箱标识所表征的用户沙箱确定为所述第一用户沙箱。通过该方式,操作系统可以基于第一用户所属会话的会话标识准确地确定出第一用户沙箱。
可以理解的是,确定出的第一用户沙箱中记录有第一用户的可调用资源的地址信息,而目标资源即为至少一个可调用资源,因此目标资源的目标地址信息自然也被记录在可调用资源中。因此,操作系统可以进一步地在所述第一用户沙箱记录的第一可调用资源的地址信息中查询所述目标资源的目标地址信息。
步骤204,根据所述目标资源的资源描述信息,在所述第一用户沙箱记录的第一可调用资源的地址信息中查询所述目标资源的目标地址信息,并按照所述目标地址信息进行资源调用。
其中,本说明书所述目标资源的资源描述信息,是用于描述目标资源的特征的信息,通过该信息可以在可调用资源记录的地址信息中唯一确定目标资源的目标地址信息。示例性的,所述目标资源的资源描述信息可以包括下述至少之一:目标资源的资源标识,资源名称,如文件名、SDK(Software Development Kit,软件开发工具包)名称等;版本号,v1.0、v2.1等;创建时间,保存位置的索引等。另外,所述目标地址信息可以由第一用户或第一用户指定并包含在所述资源调用请求中,也可以由操作系统响应于所述资源调用请求进一步确定,不再赘述。可以理解的是,按照所述目标地址信息进行资源调用,即按照该信息调用相应的目标资源,亦即调用目标地址信息所表征的目标访问地址指向的目标资源。
在本方案中,计算机的操作系统为登录该计算机的各个用户分别创建相应的用户沙箱,其中任一用户对应的用户沙箱中记录有该用户的可调用资源的地址信息,从而将该用户可以调用的各个资源(即所述可调用资源)隔离在该用户沙箱中。基于此,该操作系统可以响应于第一用户(同时登录该计算机的多个用户中的任一用户)针对目标资源发起的资源调用请求,确定所述第一用户对应的第一用户沙箱;然后根据目标资源的资源描述信息,在第一用户沙箱记录的第一可调用资源的地址信息中查询所述目标资源的目标地址信息——该地址即为第一用户所需的目标资源的调用地址,从而可以按照该地址对目标资源进行资源调用。
可以理解的是,任一用户对应的用户沙箱中记录有该用户的可调用资源的地址信息,因此在第一用户沙箱中查找到目标地址信息后,按照该地址调用的目标资源必然属于第一用户的可调用资源。另外,第一用户能够调用第一用户沙箱中所记录地址信息指向的、第一用户的可调用资源,而无法调用其他用户沙箱中所记录地址信息指向的、其他用户的可调用资源。可见,本方案通过不同的用户沙箱对不同用户分别可以调用的资源(如个人数据、个人应用等)进行隔离,使得任一用户仅可见自身的个人资源,避免了不同用户的个人资源相互可见导致的安全隐患,提升了资源的安全性。
在一实施例中,操作系统可以在各个用户沙箱中为相应的用户分别创建各自对应的用户存储空间,任一用户的用户存储空间用于存储该用户的个人数据(如在该用户的个人账户信息、在该用户沙箱中使用应用产生的历史记录等)。其中,任一用户沙箱中的用户存储空间可以为所述计算机的本地存储空间,或者也可以为该计算机可以访问的其他存储空间,如数据库或者在挂载至该计算机的操作系统后被添加至该用户沙箱中的VHD等。如图3所示,计算机中登录有三个用户,即User1、User2和User3;任一用户均存在对应的用户沙箱,即User1对应于Userbox1、User2对应于Userbox2、User3对应于Userbox3。各个用户沙箱中分别包含相应的用户存储空间,即Userbox1中包含Write Layer1、Userbox2中包含WriteLayer2、Userbox3中包含Write Layer3。各个用户沙箱中还可以分别运行有相同或不同的应用,而操作系统可以为各个用户沙箱中运行的应用分别创建相应的应用沙箱,如为Userbox1中运行的APP1、APP2和APP3分别创建对应的Appbox1、Appbox2和Appbox3、为Userbox2中运行的APP1创建Appbox1、为Userbox3中运行的APP1和APP4分别创建对应的Appbox1和Appbox4等。如前所述,不同用户沙箱中可以运行相同或不同的APP:如Userbox1、Userbox2和Userbox3中均可以运行APP1(对应于三者分别包含的Appbox1),Userbox1中可以运行APP2~3(对应于Userbox1中包含的Appbox2~3),Userbox3中可以运行APP4(对应于其中运行的Appbox4)等。
另外,所述OS Layer被单独绘制,用于表征各个用户可以分享计算机的操作系统提供的全部系统资源(如均分内存资源、按照负载状态占用CPU资源、按照资源信息集合的记录调用各自所需版本的SDK等),而不应当理解为系统资源独立于用户沙箱存在。实际上,各个用户沙箱中分别运行的APP分别依赖的相应版本的系统资源(如SDK1和SDK2)均属于OSLayer的一部分。
可以理解的是,任一用户的用户存储空间即相当于该用户的可调用资源,因此操作系统按照所述目标地址信息调用目标资源的过程,可以包括对用户存储空间进行读/写的过程。例如,操作系统可以在第一用户的用户存储空间中确定所述目标地址信息表征的可用存储空间,并将所述资源调用请求指定的待存储数据写入所述可用存储空间——通过该方式,可以实现对用户存储空间的写入操作。其中,所述可用存储空间可以为空(当然未写入任何数据),或者也可以不为空,但该位置当前存储的数据已经被注销,可以直接写入所述待存储数据从而实现对该数据的覆盖。或者,也可以在第一用户的用户存储空间中确定所述目标地址信息表征的已占用存储空间,并读取所述已占用存储空间中的当前数据。其中,被读取的所述当前数据可以为资源调用请求指示的需要读取的数据——通过该方式,可以实现对用户存储空间中已有数据的读取操作。当然,所述资源调用请求可以指定多个数据,响应于该请求,操作系统可以对这些(全部)数据执行上述写入操作;也可以对这些(全部)数据执行上述读取操作;还可以对其中部分数据执行上述写入操作并对另外一部分数据执行上述读取操作,不再赘述。
如前所述,计算机的操作系统可以提供系统资源,这些系统资源可以被登录至该计算机的各个用户所共享。以第一用户为例,第一用户沙箱中记录有第一可调用资源的地址信息,所述第一可调用资源即可包括所述系统资源,即第一用户在登录期间可以调用第一用户沙箱中所记录地址信息表征的系统资源。其中,所述操作系统可能提供多种系统资源,而所述第一用户沙箱中可以记录其中全部或部分种类系统资源的地址信息。
如前所述,第一用户沙箱中可以部署有至少一个应用。基于此,第一用户可以在操作第一用户沙箱中运行的第一应用的过程中,通过该应用生成并发起所述资源调用请求,以触发操作系统调用该应用所需的目标资源。因此,在确定出所述目标地址信息的情况下,操作系统可以针对第一用户沙箱中运行的第一应用,按照所述目标地址信息调用所述第一应用依赖的所述目标资源。承接于前述图3的实施例,若第一用户和第一用户沙箱分别为User1和Userbox1,若第一应用APP1在运行过程中需要调用某一SDK(即目标资源),则其可以向操作系统发起资源调用请求,以便后者按照目标地址信息为其调用该SDK。通过该方式,操作系统可以为各个用户沙箱中运行的应用调用相应的目标资源,从而确保各个应用正常运行,避免因设置用户沙箱对用户所使用应用的运行过程造成不利影响,从而在确保应用正常功能的基础上实现不同用户之间的数据隔离效果。
在一实施例中,第一应用可以为第一用户沙箱中部署的任一应用,操作系统可以在第一用户沙箱中为所述第一应用创建相应的第一应用沙箱。所述第一应用沙箱中可以记录有所述第一应用依赖的系统资源的地址信息,该地址信息即用于调用所述第一应用依赖的系统资源。例如,第一应用沙箱中可以维护第一应用的资源列表,该资源列表用于记录第一应用的资源信息集合中各个资源(即第一应用所依赖的系统资源和/或非系统资源等)的资源标识(如资源名称等)、地址信息等,操作系统可以根据该列表查询第一应用所依赖的任一资源的地址信息。通过该方式,可以将第一应用所依赖的各个资源的地址信息记录在第一应用沙箱中,从而对这些资源实现应用级别的隔离,便于第一应用调用其所依赖的资源。
在所述第一用户沙箱中部署有多个应用的情况下,这些应用分别对应的资源信息集合通常会被按照固定的查询顺序依次加载至操作系统,加载完成的各个资源信息集合形成单向数据结构(如链表),从而操作系统只能按照上述查询顺序在各个资源信息集合中查询任一应用请求的任一系统资源。由于被加载的资源信息集合通常采用资源名称和地址信息的方式记录各个资源,所以对于任一应用请求获取的某一资源名称、某一版本的系统资源,操作系统在按照上述查询顺序根据该资源名称查询时,通常会将查询到的名称匹配的首个资源作为查询结果,但是该资源的实际版本可能并非该应用请求的版本,而是其他应用依赖的其他版本,即查询结果出错,从而可能导致应用运行异常。
针对上述多个应用调用不同版本系统资源可能产生冲突的问题,本说明书提出在用户沙箱中进一步创建应用的方式加以解决。具体而言,操作系统可以为第一用户沙箱中的各个应用分别创建不同的应用沙箱,即所述多个应用与多个应用沙箱一一对应。此时,每一应用沙箱中分别记录有相应应用依赖的系统资源的地址信息,所述第一用户沙箱对应的第一可调用资源包括所述多个应用分别依赖的系统资源,所述资源调用请求可以针对所述第一应用生成,如操作系统本身可以响应于针对第一应用的启动指令生成该请求,以便调用相应的目标系统资源并依赖于这些资源启动第一应用;或者响应于处于运行状态(即启动完成后)的第一应用生成的资源调用请求,调用相应的目标系统资源执行该应用所指示的处理操作。
所述目标资源的资源描述信息可以包括所述资源调用请求中包含的目标系统资源的资源名称,该目标系统资源可以存在多个版本且不同版本的目标系统资源分别被不同的应用所依赖。可以理解的是,第一应用依赖某一版本的目标系统资源,而依赖其他版本的目标系统资源的至少一个应用可能尚未启动、正在启动或启动完成(即已经处于运行状态),本说明书对此并不进行限制。在该场景下,所述操作系统可以通过下述方式在第一用户沙箱记录的第一可调用资源的地址信息中查询所述目标资源的目标地址信息:先确定所述第一应用对应的第一应用沙箱;然后根据所述目标系统资源的资源名称,在所述第一应用沙箱记录的系统资源的地址信息中查询该资源名称对应的所述目标系统资源的目标地址信息。
其中,与前述用户沙箱类似的,本说明书所述任一应用对应的应用沙箱,是用于对该应用的相关数据或资源进行权限隔离/管理的程序、规则或环境,其可以用于记录该应用依赖的(即该应用运行过程中可能需要用到的)各种资源。具体而言,可以对应的记录这些资源的资源名称及其在所述计算机中的地址信息,以便后续操作系统可以根据任一资源的资源名称查询其地址信息进而进行调用。
在一实施例中,第一应用对应的第一应用沙箱可以被预先创建完成,如在安装第一应用时即为该应用创建相应的第一应用沙箱。此后,该应用即可在该应用沙箱中运行,运行产生的数据也相应的存储在该应用沙箱,充分实现所述第一应用与其他应用之间的运行和数据隔离,避免应用之间的相互干扰。
在另一实施例中,第一应用对应的第一应用沙箱也可以由操作系统在第一应用启动时临时创建。例如,操作系统可以响应于针对第一应用的启动指令,为该应用创建所述第一应用沙箱;然后在第一应用沙箱对应的内存空间中执行所述第一应用的可执行文件,以启动所述第一应用,其中,所述资源调用请求可以由所述第一应用在启动完成后发起。所述启动指令可以由所述第一用户发起,在接收到所述启动指令后,操作系统可以在计算机的内存空间中创建所述第一应用沙箱,以便加快与第一应用相关的数据处理速度。所述可执行文件是用于启动第一应用的主程序,即该文件被执行后可以在计算机的内存空间中启动第一应用。本说明书实施例对于所述可执行文件的格式并不进行限制,示例性的,所述可执行文件可以为.exe文件、.sys文件、.com文件、.dll、文件等,不再赘述。
其中,所述第一应用的可执行文件属于第一应用的源文件(该文件用于记录该应用运行所需的主程序、代码等基础数据),所述源文件可以被预先存储在NAS设备中,此时所述操作系统可以通过虚拟磁盘技术将所述可执行文件以VHD的形式挂载至本地,进而将其添加至所述第一应用沙箱,以便后续通过远程访问的方式读取该文件。在第一应用沙箱已经创建完成的情况下,操作系统可以将所述源文件的地址信息记录在所述第一应用沙箱中,此后即可通过远程访问所述源文件的方式读取所述可执行文件。或者,也可以先从所述源文件中确定所述可执行文件的地址信息,再将该地址信息记录在所述第一应用沙箱中,进而通过远程访问的方式从所述NAS的该地址信息处获取所述可执行文件。
当然,由于第一应用的源文件可能是基于某一预设索引生成的,所以为了确保挂载之后的源文件能够正常运行,操作系统可以对所述源文件进行重定向处理。若所述源文件基于“C:\Program Files”文件夹生成,在将该源文件挂载至计算机任一盘符下的任一文件夹中的情况下,操作系统可以将该文件夹的地址信息重定向到“C:\Program Files”,以确保所述源文件中的各个文件能够按照重定向后的索引正常访问并运行。
通过该方式,允许操作系统通过虚拟磁盘技术将第一应用的源文件挂载至本地进而添加至第一应用沙箱。可以理解的是,所述源文件可以被应用的发布方或管理方通过预执行的方式生成,此时操作系统只需要远程访问上述源文件即可启动并运行第一应用,而不需要将第一应用“安装”在计算机的本地,使得第一应用可以实现云应用的运行效果,大大简化用户对第一应用的部署和维护工作量;并且有助于节省所述计算机的本地存储空间,使得计算机可以同时运行更多的应用,提升了该计算机的整体资源利用率。
在又一实施例中,也可以在第一应用启动后的运行过程中,为该应用创建相应的第一应用沙箱。例如,在第一应用运行过程中可能涉及针对资源的调用和对数据操作等,操作系统可以对该应用发出的各个请求进行检查,以识别其中的敏感请求。如在某一请求处理的数据为敏感数据或者其请求调用的资源为敏感资源的情况下,可以将该请求判定为敏感请求。其中,上述敏感数据可以是被其他应用占用或可能占用的资源,上述敏感资源可以是被其他应用调用或可能调用的资源。此时,可以直接为第一应用创建第一应用沙箱,也可以向第一应用返回提示指令,以便第一应用向当前用户展示针对上述敏感数据和/或敏感资源的提示信息,由该用户决定是否为第一应用创建第一应用沙箱。在第一应用沙箱创建完毕后,可以将第一应用启动期间产生的相关数据转移至该沙箱中,进而在该沙箱内响应上述敏感请求,完成对敏感数据的处理或者对敏感资源的调用。通过该方式,可以在必要时再为第一应用创建相应的第一应用沙箱,而在其不需要时则不创建,虽然首个敏感请求的响应时间有所延长,但通过更严格的应用沙箱创建门槛能够为计算机节约更多的资源(因为应用沙箱的创建和维护同样需要消耗计算、存储等资源),特别是在第一应用运行过程并不涉及敏感数据或敏感资源情况下,资源节约效果更加显著。
承接于图3所示实施例,若第一用户和第一用户沙箱分别为User1和Userbox1,可见Userbox1中运行有APP1、APP2和APP3这三个应用,三者分别对应于相应的应用沙箱,如APP1运行在Appbox1中、APP2运行在Appbox2、APP3运行在Appbox3中。
进一步的,各个应用沙箱中可以分别包含相应应用的源文件(User Layer1、UserLayer2和User Layer3)和资源信息集合(Collection1、Collection2和Collection3),图3中并未示出。其中,所述源文件可以通过VHD技术挂载至操作系统本地并被添加至相应的应用沙箱;所述资源信息集合中记录有相应应用依赖的系统资源,如Collection1中记录有User1依赖的SDK1(v1.0)(资源名称为“SDK1”,资源版本为1.0,下同)、SDK2(v1.0)和SDK3(v1.0);Collection2中记录有User2依赖的SDK2(v2.0)和SDK2(v1.0);Collection3中记录有User3依赖的SDK1(v3.0)和SDK2(v3.0)。需要说明的是,虽然图2中为各个SDK标注了相应的资源版本,但是由于资源查询过程并不需要SDK的版本信息,所以为尽量减小资源信息集合的数据量,节省应用沙箱的可用存储空间,所述资源信息中可以不记录该资源版本,而仅记录其资源名称和地址信息。
上述任一SDK可以为系统资源,也可以为非系统资源,如对于APP1依赖的各个SDK:SDK1(v1.0)和SDK2(v1.0)可以为系统资源,SDK3(v1.0)可以为非系统资源。任一应用依赖的任一版本的系统资源,对应的其他版本的系统资源可能被其他应用依赖,对于SDK1而言,APP1依赖其1.0版本,APP2依赖其2.0版本,APP3依赖其3.0版本。当然,任一应用依赖的任一版本的系统资源有可能被其他应用依赖,如对于SDK2而言,APP1和APP2均依赖其1.0版本。而且,任一APP依赖的非系统资源通常由该应用的发布方或管理员提供(并非计算机的操作系统提供)且被该应用独占,因此这类资源仅被该APP依赖,如SDK3仅有1.0版本且仅被APP1依赖。实际上,非系统资源也可以不包含在应用沙箱中,以尽量减少应用沙箱的权限管理负担。
此时,若操作系统接收到任一应用发出的资源调用请求,则可以根据该请求包含的会话标识确定该应用所处的用户沙箱(同时可确定该用户沙箱对应的用户)。进一步的,可以根据维护的应用的应用标识与应用沙箱的沙箱标识之间的第一类应用映射关系,确定所述第一应用的应用标识对应的沙箱标识,并将该沙箱标识所表征的应用沙箱确定为所述第一应用沙箱;或者,在不同应用分别运行在不同的进程的情况下,也可以根据维护的应用所处进程的进程标识与应用沙箱的沙箱标识之间的第二类应用映射关系,确定所述第一应用所处进程的第一进程标识对应的沙箱标识,并将该沙箱标识所表征的应用沙箱确定为所述第一应用沙箱。假设通过上述方式确定出第一用户沙箱为Userbox1,第一应用为其中运行的APP1,则此时可以按照资源调用请求中包含的资源名称从Appbox1的Collection1中查询相应目标资源的目标地址信息。如在资源名称为“SDK1”的情况下,可以将Collection1中记录的SDK1(v1.0)的地址信息确定为目标地址信息,SDK1(v1.0)自然为相应的目标资源。
在一实施例中,在第一应用运行完毕后,操作系统可以响应于针对第一应用的关闭指令,关闭所述第一应用。其中,该关闭指令可以由第一用户主动发起,此时可以按照该用户的意志关闭第一应用;或者,该关闭指令也可以由操作系统按照预设计划自行发起,此时可以按照上述预设计划关闭该应用。具体关闭过程可以参见相关技术中的记载,此处暂不赘述。
在该场景下,除了关闭第一应用之外,操作系统还可以将第一应用运行期间产生的运行结果存储至第一存储设备,以复用于所述第一应用的后续运行过程。如在所述第一应用下次启动过程中,即可从所述NAS设备读取本次存储的所述运行结果,以便用户在第一应用再次启动后查看到上一次的运行结果,便于用户按序开展工作,避免数据丢失为用户带来的困扰。和/或,还可以在第一应用关闭后删除所述第一应用沙箱,以回收被第一应用占用的资源,从而提升上述资源的利用率。
在一实施例中,第操作系统可以响应于针对第一用户发起的退出指令,展示所述第一用户沙箱。或者,也可以响应于所述退出指令将所述第一用户本次登录期间产生的个人数据存储至第二存储设备,以复用于所述第一用户的后续登录过程,并在存储完成后删除所述第一用户沙箱。当然,在删除第一用户沙箱之前,可以先控制第一用户退出登录状态(或称登出)。通过该方式,可以在第一用户退出后及时删除为其创建的第一用户沙箱,实现对计算机的资源回收,提升资源的利用率。另外,所述退出指令可以由所述第一用户主动发起,此时可以按照该用户的意志退出第一用户;或者,该退出指令也可以由操作系统按照预设计划自行发起,此时可以按照上述预设计划控制第一用户强制退出,该预设计划可以按照时间、资费、权限等实际情况进行合理设置,本说明书并不对此进行限制。
其中,上述第一存储设备和第二存储设备中的任一存储设备,可以为所述计算机的本地存储空间,或者也可以为该计算机可以访问的其他存储空间,如数据库或者在挂载至该计算机的操作系统后被添加至该用户沙箱中的VHD等,可以根据实际需要进行设置。
图4是一示例性实施例提供的一种设备的示意结构图。请参考图4,在硬件层面,该设备包括处理器402、内部总线404、网络接口406、内存408以及非易失性存储器410,当然还可能包括其他应用所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器402从非易失性存储器410中读取对应的计算机程序到内存408中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图5,在一软件实施方式中,该资源的调用装置可以包括:
用户沙箱确定单元501,用于响应于第一用户针对目标资源发起的资源调用请求,确定所述第一用户对应的第一用户沙箱;其中,不同用户分别对应不同的用户沙箱,任一用户沙箱记录有相应用户的可调用资源的地址信息
目标资源调用单元502,用于根据所述目标资源的资源描述信息,在所述第一用户沙箱记录的第一可调用资源的地址信息中查询所述目标资源的目标地址信息,并按照所述目标地址信息进行资源调用。
可选的,所述用户沙箱确定单元501具体用于:
根据维护的用户的用户标识与用户沙箱的沙箱标识之间的第一类用户映射关系,确定所述第一用户的用户标识对应的沙箱标识,并将该沙箱标识所表征的用户沙箱确定为所述第一用户沙箱;或者,
根据维护的用户所属会话的会话标识与用户沙箱的沙箱标识之间的第二类用户映射关系,确定所述第一用户所属会话的第一会话标识对应的沙箱标识,并将该沙箱标识所表征的用户沙箱确定为所述第一用户沙箱。
可选的,各个用户的可调用资源分别包括用于存储相应用户的个人数据的用户存储空间,所述目标资源调用单元502具体用于:
在第一用户的用户存储空间中确定所述目标地址信息表征的可用存储空间,并将所述资源调用请求指定的待存储数据写入所述可用存储空间;和/或,
在第一用户的用户存储空间中确定所述目标地址信息表征的已占用存储空间,并读取所述已占用存储空间中的当前数据。
可选的,所述目标资源调用单元502具体用于:
针对所述第一用户沙箱中运行的第一应用,按照所述目标地址信息调用所述第一应用依赖的所述目标资源。
可选的,所述第一用户沙箱中部署有所述第一应用对应的第一应用沙箱,所述第一应用沙箱中记录有所述第一应用依赖的系统资源的地址信息,所述地址信息用于调用所述第一应用依赖的系统资源。
可选的,所述目标资源的资源描述信息包括所述资源调用请求中包含的目标系统资源的资源名称,所述目标系统资源存在多个版本且不同版本的目标系统资源分别被不同的应用所依赖;所述目标资源调用单元502具体用于:
确定所述第一应用对应的第一应用沙箱;
根据所述目标系统资源的资源名称,在所述第一应用沙箱记录的系统资源的地址信息中查询该资源名称对应的所述目标系统资源的目标地址信息。
可选的,还包括:
应用关闭单元503,用于响应于针对所述第一应用的关闭指令,关闭所述第一应用;
存储和删除单元504,用于将所述第一应用运行期间产生的运行结果存储至第一存储设备,以复用于所述第一应用的后续运行过程;和/或,在所述第一应用关闭后删除所述第一应用沙箱。
可选的,还包括:
第一用户退出单元505,用于响应于所述第一用户发起的退出指令,删除所述第一用户沙箱;和/或,
第二用户退出单元506,用于响应于所述第一用户发起的退出指令,将所述第一用户本次登录期间产生的个人数据存储至第二存储设备,以复用于所述第一用户的后续登录过程,并在存储完成后删除所述第一用户沙箱。
可选的,所述装置应用于部署有云桌面实例的虚拟机,其中,
所述第一用户沙箱由所述虚拟机的操作系统创建并维护,所述资源调用请求通过所述云桌面实例向所述操作系统发起。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (12)
1.一种资源的调用方法,包括:
响应于第一用户针对目标资源发起的资源调用请求,确定所述第一用户对应的第一用户沙箱;其中,不同用户分别对应不同的用户沙箱,任一用户沙箱记录有相应用户的可调用资源的地址信息;
根据所述目标资源的资源描述信息,在所述第一用户沙箱记录的第一可调用资源的地址信息中查询所述目标资源的目标地址信息,并按照所述目标地址信息进行资源调用。
2.根据权利要求1所述的方法,所述确定所述第一用户对应的第一用户沙箱,包括:
根据维护的用户的用户标识与用户沙箱的沙箱标识之间的第一类用户映射关系,确定所述第一用户的用户标识对应的沙箱标识,并将该沙箱标识所表征的用户沙箱确定为所述第一用户沙箱;或者,
根据维护的用户所属会话的会话标识与用户沙箱的沙箱标识之间的第二类用户映射关系,确定所述第一用户所属会话的第一会话标识对应的沙箱标识,并将该沙箱标识所表征的用户沙箱确定为所述第一用户沙箱。
3.根据权利要求1所述的方法,各个用户的可调用资源分别包括用于存储相应用户的个人数据的用户存储空间,所述按照所述目标地址信息进行资源调用,包括:
在第一用户的用户存储空间中确定所述目标地址信息表征的可用存储空间,并将所述资源调用请求指定的待存储数据写入所述可用存储空间;和/或,
在第一用户的用户存储空间中确定所述目标地址信息表征的已占用存储空间,并读取所述已占用存储空间中的当前数据。
4.根据权利要求1所述的方法,所述按照所述目标地址信息进行资源调用,包括:
针对所述第一用户沙箱中运行的第一应用,按照所述目标地址信息调用所述第一应用依赖的所述目标资源。
5.根据权利要求4所述的方法,所述第一用户沙箱中部署有所述第一应用对应的第一应用沙箱,所述第一应用沙箱中记录有所述第一应用依赖的系统资源的地址信息,所述地址信息用于调用所述第一应用依赖的系统资源。
6.根据权利要求5所述的方法,所述目标资源的资源描述信息包括所述资源调用请求中包含的目标系统资源的资源名称,所述目标系统资源存在多个版本且不同版本的目标系统资源分别被不同的应用所依赖;所述在所述第一用户沙箱记录的第一可调用资源的地址信息中查询所述目标资源的目标地址信息,包括:
根据所述目标系统资源的资源名称,在所述第一应用沙箱记录的系统资源的地址信息中查询该资源名称对应的所述目标系统资源的目标地址信息。
7.根据权利要求6所述的方法,还包括:
响应于针对所述第一应用的关闭指令,关闭所述第一应用;
将所述第一应用运行期间产生的运行结果存储至第一存储设备,以复用于所述第一应用的后续运行过程;和/或,在所述第一应用关闭后删除所述第一应用沙箱。
8.根据权利要求1所述的方法,还包括:
响应于所述第一用户发起的退出指令,删除所述第一用户沙箱;和/或,
响应于所述第一用户发起的退出指令,将所述第一用户本次登录期间产生的个人数据存储至第二存储设备,以复用于所述第一用户的后续登录过程,并在存储完成后删除所述第一用户沙箱。
9.根据权利要求1所述的方法,所述方法应用于部署有云桌面实例的虚拟机,其中,
所述第一用户沙箱由所述虚拟机的操作系统创建并维护,所述资源调用请求通过所述云桌面实例向所述操作系统发起。
10.一种资源的调用装置,包括:
用户沙箱确定单元,用于响应于第一用户针对目标资源发起的资源调用请求,确定所述第一用户对应的第一用户沙箱;其中,不同用户分别对应不同的用户沙箱,任一用户沙箱记录有相应用户的可调用资源的地址信息
目标资源调用单元,用于根据所述目标资源的资源描述信息,在所述第一用户沙箱记录的第一可调用资源的地址信息中查询所述目标资源的目标地址信息,并按照所述目标地址信息进行资源调用。
11.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-9中任一项所述的方法。
12.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-9中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310319483.0A CN116467704A (zh) | 2023-03-28 | 2023-03-28 | 资源的调用方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310319483.0A CN116467704A (zh) | 2023-03-28 | 2023-03-28 | 资源的调用方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116467704A true CN116467704A (zh) | 2023-07-21 |
Family
ID=87172661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310319483.0A Pending CN116467704A (zh) | 2023-03-28 | 2023-03-28 | 资源的调用方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116467704A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117473556A (zh) * | 2023-12-15 | 2024-01-30 | 荣耀终端有限公司 | Sdk的管理方法、设备及存储介质 |
-
2023
- 2023-03-28 CN CN202310319483.0A patent/CN116467704A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117473556A (zh) * | 2023-12-15 | 2024-01-30 | 荣耀终端有限公司 | Sdk的管理方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200341741A1 (en) | Cross-environment application of tracing information for improved code execution | |
US9380456B1 (en) | System, method and computer program product for dynamically switching operating systems in a virtual mobile device platform | |
US9773102B2 (en) | Selective file access for applications | |
US9614931B2 (en) | Identifying a resource set require for a requested application and launching the resource set in a container for execution in a host operating system | |
US10331505B2 (en) | Application programming interface (API) hub | |
CN110032413B (zh) | 一种桌面虚拟化方法、相关设备及计算机存储介质 | |
US20140007117A1 (en) | Methods and apparatus for modifying software applications | |
JP2008524686A (ja) | コンピュータ装置においてアプリケーションを保守する方法 | |
CN110780930B (zh) | 启动Android系统的方法、装置、电子设备及存储介质 | |
US20210297487A1 (en) | Co-location of storage buckets with containerized applications | |
US20220405385A1 (en) | Secure container construction device and method executable by android application, and computer-readable recording medium on which program thereof is recorded | |
CN110781505B (zh) | 系统构建方法及装置、检索方法及装置、介质和设备 | |
CN114586011A (zh) | 将所有者指定的数据处理流水线插入到对象存储服务的输入/输出路径 | |
CN115374481B (zh) | 数据脱敏处理的方法、装置、存储介质及电子设备 | |
CN116467704A (zh) | 资源的调用方法及装置 | |
CN108293047B (zh) | 由用户访问跨多个分布式计算网络的资源的系统和方法 | |
US11263053B2 (en) | Tag assisted cloud resource identification for onboarding and application blueprint construction | |
US20150007046A1 (en) | Management of an application for an electronic device | |
CA2878759A1 (en) | Methods and systems for providing software applications | |
US20230138668A1 (en) | Dynamic identification of cloud storage destination for multi-user files | |
US11385919B1 (en) | Machine image launch system | |
US20220027220A1 (en) | Invoking a native process as a called procedure by a guest operating environment | |
US20220027457A1 (en) | Native execution by a guest operating environment | |
US11520866B2 (en) | Controlling processor instruction execution | |
CN116382795A (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 |