CN102158526A - 池组件配置的管理 - Google Patents

池组件配置的管理 Download PDF

Info

Publication number
CN102158526A
CN102158526A CN2011100082065A CN201110008206A CN102158526A CN 102158526 A CN102158526 A CN 102158526A CN 2011100082065 A CN2011100082065 A CN 2011100082065A CN 201110008206 A CN201110008206 A CN 201110008206A CN 102158526 A CN102158526 A CN 102158526A
Authority
CN
China
Prior art keywords
user
capsule
virtual desktop
file
pond
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
Application number
CN2011100082065A
Other languages
English (en)
Inventor
德米特里·巴伯伊
阿纳托利·卡尔达什
罗曼·利史蒂耶夫
米哈伊尔·亚夫尼洛维奇
里奥尼德·史蒂尔曼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Viewfinity Inc
Original Assignee
Viewfinity Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US12/684,727 external-priority patent/US20100211663A1/en
Application filed by Viewfinity Inc filed Critical Viewfinity Inc
Publication of CN102158526A publication Critical patent/CN102158526A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及池组件配置的管理,以及一种用于从池向池组件的用户提供虚拟桌面图像的系统,包括服务器子系统,与多个池组件进行数据通信,所述服务器子系统被配置为:从用户接收由所述池登入第一池组件的请求;取来虚拟桌面图像以供所述第一池组件使用;检查与所述用户相应的用户策略;将所述虚拟桌面图像修改为与所述用户策略一致;以及向所述第一池组件提供所述虚拟桌面。

Description

池组件配置的管理
相关申请的交叉引用
本申请是在2010年1月8日递交的美国专利申请第12/684,727号(其为在2008年7月28日递交的美国专利申请第12/180,749号的部分继续申请)的部分继续申请。通过参考将上述两个申请的全部内容合并于本申请中。
技术领域
本申请的披露涉及多个计算装置构成的池(pool),尤其涉及管理与使用这种池内的池组件的个人用户相关联的持久性。
背景技术
大型机构(organization)通常包括多个台式电脑的池,每个台式电脑在这里均被称为“池组件(pool member)”。员工一进入工作就登入这些池组件中的一个。然而,不能保证特定员工总是登入同一个池组件。
机构的信息技术(IT)设施(infrastructure)可支持各种级别的计算装置。在企业层面,机构的IT设施可支持具有专用功能的服务器计算装置,例如网络服务器、打印服务器以及数据库服务器。在终端用户层面,机构的IT设施可支持实体用户计算装置(例如台式电脑、手提电脑、上网本、平板电脑和手提电脑)以及虚拟用户计算装置(如在共享服务器计算装置上执行的虚拟机)。
在本说明书中,术语“池组件”一般指的是可由机构的IT设施内的终端用户(如机构的员工)操作的任意用户计算装置(实体或虚拟)。在某些情况下,池组件是标准配置的实体计算装置,其配备有一套已经安装并配置为以某些标准方式运行的程序。在其它一些情况下,池组件指的是例如在用户会话(session)之前或之后可随意具体呈现和毁掉的虚拟计算装置。在另一些情况下,池组件是从共享主图像和特定用户的个人数据文件所生成的实体或虚拟计算装置。在其它再一些情况下,瘦客户端(thin client)及其相应虚拟机计算装置的组合可共同称作“池组件”。
池组件经常通过网络彼此交互和/或通过网络与一个或多个服务器计算装置交互。每个池组件被认为符合“基线图像”,该“基线图像”可以本地方式在实体用户计算装置中或在远程服务器处的虚拟用户计算装置中具体呈现。使用统一的“基线图像”能够相当大地简化软件维护和故障排除任务。每个池组件维持相同基线图像的池被认为是“同质池”(homogeneous pool)。
不同的员工可能具有不同的工作职责,其相应需要接入不同的应用程序和数据。例如,客户服务员工可能具有与客户账户数据的接口,该数据将对技术支持员工不可用。反之,技术支持员工可能具有对他负责支持的软件应用程序的所有较早版本的接口,从而他可以更好的再创作调用者的经验。
因此,显然不同的用户将具有不同的软件需求。然而,由于每个池组件执行相同的基线图像,从而保证不同用户仅具有与他们需要的应用程序的接口存在困难。
在使用特定池组件的过程中,第一用户可对他们的环境做出某些变化。在某些情况下,保存这些变化,从而登入同一实体池组件的第二用户将经历这些变化的效果。在这种情况下,将第一用户所做出的变化判定为“持久性的”。在其它情况下,当第一用户退出时丢弃这些变化。将第一用户所做出的这种变化判定为“非持久性的”。
持久性的变化可导致由特定池组件所执行的基线图像的变化。当此情况发生时,池中所有池组件的图像将不再是统一的。结果是,池不再是“同质”池。代替地,其变为“异质”池。
对于这些负责软件维护和故障排除的基线图像,异质池更为棘手。在维护池的同质的努力过程中,已知的方式是使任意用户变化是非持久性的。在这种情况下,当用户退出时用户做出的任意变化是白做的(undone)。这使得计算机的池保持同质,因此更容易维护。
另一方面,可能有应使得某些用户的变化是持久性的情况。因此可期望使得某些用户能够变为持久性的而不会在软件维护上施加不必要的困难,这些困难可能是台式电脑具有非均质池所引起的。
由于现在电脑操作系统包括复杂的文件系统模式,从而经常引起维护的困难。例如,微软视窗(Microsoft Windows)的各种体现例如通过使用环境变量来使用包括与各种其它文件夹前后关联的特定文件夹名称的文件夹路径。某些操作系统还使用配置数据库。例如,微软视窗的大多数变量使用用于附加数据的注册,包括配置细节。应用程序对可用的文件系统模式做出不同的使用。当在单个计算环境中安装多个应用程序时,多个应用程序之间的文件系统应用可能会重叠。这导致冲突和意外覆写。
在应用程序的简单安装过程中,将单个可执行文件放置在文件系统中。而不需要附加的准备。在更复杂的安装过程中,可能需要将附加文件放置在文件系统中,并且可能需要其它配置和准备步骤。例如,当执行某些可执行文件时,将附加文件装载到操作存储器(例如,动态链接库,或“DLL”)中。这些库中的某些库可含在操作系统中并通常在安装过程中共享。其它库可以是为应用程序所写的标准库并包括在可执行文件中。使用大量静态数据(如语言词典或图形的集合)的可执行文件可使用与可执行文件分离的附加数据文件。某些可执行文件可引用附加可执行文件,例如用于处理后台任务或提高嵌套支持。安装过程还可生成新的文件。例如,处理可能生成包含标准化信息或文件库地址的文件,用于伴随任意操作标志和配置元数据可适当的执行文件。这种处理的一实例是微软视窗快捷方式。这种安装过程可能使得快捷方式文件放置在共享位置中,例如用于向菜单上的用户显示的快捷方式的目录。具有多种还可包括在安装过程中的附加类型的文件。
复杂的应用程序安装可包括大量写给各种不同位置的文件。某些位置可与其它安装过程共享。这增加了文件可能被另一安装过程覆写的可能性。除了放置文件之外,安装过程例如还可通过放置微软视窗操作表中的信息来修改操作系统表与数据库。在某些应用程序中,例如使用微软视窗安装程序(“MSI”)对安装和准备处理加注了脚本,这取决于知道在何处放置文件并更新注册的安装包。MSI安装数据还包括用于卸载包的信息;也通过操作系统来存储此信息。微软安装程序存在不完善的做法。不是所有的应用程序都使用该系统。一旦安装了应用程序,则如果例如用户手动移动了文件,该应用程序可从卸载信息中取消同步。
发明内容
在一个方案中,本发明主要描述了一种用于从池向池组件的用户提供虚拟桌面图像的系统。这种系统包括:服务器子系统,与多个池组件进行数据通信。所述服务器子系统被配置为从用户接收由所述池登入第一池组件的请求;取来虚拟桌面图像以供所述第一池组件使用;检查与所述用户相应的用户策略;将所述虚拟桌面图像修改为与所述用户策略一致;以及向所述第一池组件提供所述虚拟桌面。
在另一方案中,本发明主要描述了一种计算机实施的方法,该方法绑定于特定计算机系统,从而使得计算机系统向池组件的用户提供虚拟桌面图像。该计算机实施方法包括:从用户接收由所述池登入第一池组件的请求;取来虚拟桌面图像以供所述第一池组件使用;检查用户策略;将所述虚拟桌面图像修改为与所述用户策略一致;以及向所述第一池组件提供所述虚拟桌面。
在某些替代实践中,该方法还包括从所述用户接收登入第二池组件的请求。所述第二池组件与所述第一池组件不同。该方法还包括取来虚拟桌面图像以供所述第一池组件使用;检查所述用户策略;将所述虚拟桌面修改为与所述用户策略一致;以及向所述第二池组件提供所述虚拟桌面。
其它替代实践包括如下内容:其中修改所述虚拟桌面包括基于各种原因拒绝所述用户接入应用程序。示例性原因包括:登入时间、所述用户基于尝试登入的位置、以及用户身份。
另一些替代实践包括如下内容:其中修改所述虚拟桌面包括合并由所述用户于在前的会话时做出的所选择的变化。可在与用户当前使用的池组件相同的池组件处或在与用户当前使用的池组件不同的池组件处发生在前的会话。
其它实践包括实施持久性策略,在该持久性策略中某些用户变化被视为持久性的并且某些其它用户变化被视为非持久性的。
另一些实践包括如下内容:其中修改所述虚拟桌面图像包括封装所选择的在所述图像中可用的应用程序。
在本发明的实践中,包括如下内容:在远程数据存储系统中存储多个用户档案,每个用户档案包括表示由用户对虚拟桌面图像做出的配置变化的元数据。
在另一方案中,本发明主要描述了一种制品,包括计算机实施介质,该计算机实施介质具有其上编程的软件,使得计算机系统向池组件的用户提供虚拟桌面图像,所述软件包括用于如下功能的计算机可执行指令:从用户接收由所述池登入第一池组件的请求;取来虚拟桌面图像以供所述第一池组件使用;检查用户策略;将所述虚拟桌面图像修改为与所述用户策略一致;以及向所述第一池组件提供所述虚拟桌面。
在某些替代实施例中,在制品上编程的软件还包括用于如下功能的指令:从所述用户接收登入第二池组件的请求。所述第二池组件与所述第一池组件不同。该制品还包括取来所述虚拟桌面图像以供所述第二池组件使用;检查所述用户策略;将所述虚拟桌面修改为与所述用户策略一致;以及向所述第二池组件提供所述虚拟桌面。
其它实施例包括如下内容:其中用于修改所述虚拟桌面的指令包括用于基于各种原因拒绝所述用户接入应用程序的指令。示例性原因包括:登入时间、所述用户基于尝试登入的位置、以及用户身份。
另一些实施例包括如下内容:其中用于修改所述虚拟桌面的指令包括用于合并由所述用户于在前的会话时做出的所选择的变化的指令。可在与用户当前使用的池组件相同的池组件处或在与用户当前使用的池组件不同的池组件处发生在前的会话。
其它实施例包括如下内容:其中软件包括用于实施持久性策略的指令,在该持久性策略中某些用户变化被视为持久性的并且某些其它用户变化被视为非持久性的。
另一些实施例包括如下内容:其中用于修改所述虚拟桌面图像的指令包括用于封装所选择的在所述图像中可用的应用程序的指令。
在本发明的实施例中包括如下内容:其中在制品上编程的软件包括用于在远程数据存储系统中存储多个用户档案的指令,每个用户档案包括表示由用户对虚拟桌面图像做出的配置变化的元数据。
从下文的描述中以及从权利要求中,本发明的其它特征和优点是显然地。
附图说明
图1是连接到服务器计算装置的池组件的示意图;
图2是示出用于用户登入图1的池组件的用户指定策略的实施方式的示意图;
图3是在来自图1所示的池的池组件上执行运行时间软件(run-timesoftware)的方框图;
图4是文件系统层级树的线型图;
图5是示出用于特定文件分配的囊(capsule)的示例图的方框图;
图6是一组文件系统层级树的线型图;
图7是示出截取文件或注册请求之后的处理步骤的流程图;以及
图8是连接到池组件的多个服务器的示意图。
具体实施方式
用于管理用户计算装置的池中的一个或多个特定池组件的配置的一个计算机实施方法是基于用户的身份来进行管理。这种方法绑定于(tied to)一个或多个特定池组件或一个特定服务器计算装置,该方法包括控制什么应用程序(application)可以被特定用户看到或使用,以及控制由该用户做出的什么变化将被认为是持久性的(persistent)。
能够通过向每个用户维持对池组件选择性部署的应用程序或成套软件的各部件(element)之间的联系以及关于所选择的、由用户做出的变化的信息,来执行这种配置控制。这种部件包括可执行文件、DLL、配置文件、注册项(registry entry)、用户生成的文件、以及应用程序所使用的任意其它文件或系统状态。作为一个整体进行管理的应用程序部件的集合在本说明书中称为“囊(capsule)”。集合应用程序部件的处理在本说明书中称为“应用程序封装(application encapsulation)”或简称为“封装”,其生成的状态称为“封装的应用程序”。在某些情况下,多个应用程序作为单个囊进行管理。
这种封装的一个结果一方面是应用程序、配置和用户变化之间的分离,以及它们与底层操作系统之间的分离。这种分离使得:当特定用户通过根据包括用户身份的因素以基线图像(baseline image)开始并遮蔽该基线图像的选择部分而开始在用户会话中使用池组件时,特定用户的虚拟桌面能够在特定池组件处“即时(on the fly)”重建。这使得用户仅可接入所选择的应用程序和数据。这些准许的应用程序和数据被认为是用户配置的“持久性的”部分,而在重建的图像中不可用的其它应用程序和数据被认为是“非持久性的”。
哪些应用程序、设置以及数据文件是持久性的而哪些是非持久性的的选择存储在该用户的用户策略(user policy)中。在用户策略中所表现的持久性级别可跨越全部持久性、全部非持久性以及部分持久性之间的整个范围,在全部持久性中在会话期间由用户执行的所有配置变化在该会话之后持续,在全部非持久性中在特定会话期间由用户执行的任何变化都不会持续超出该会话,在部分持久性中维持选择的应用程序和数据而隐藏或放弃了其它应用程序和数据。部分持久性策略可包括如下情况,在该情况下仅在所选择的时间或仅从所选择的位置,所选择的应用程序是可用的。
图1示出不同用户使用的类似池组件711的池710。所有的池组件711通过计算机网络713与特定服务器机器712(在下文中将其称为“服务器”)进行通信。联系图3来讨论与单个池组件711相关联的软件的逻辑结构以及其配置的方式。
绑定于服务器712的是这样一种软件,其包括计算机可执行指令以使其与存储基线图像716和用户档案7181、7182、718n的外部数据存储系统714进行通信。每个用户档案718i包括关于与特定用户U-i关联的台式电脑711的配置的信息。一般而言,服务器712可管理多个池210,每个池具有其自己的基线图像以及相应池组件711。
如在此处所使用的,如附图中所使用的下标“i”意图指明确示出的多个结构中的任意一个结构。
一般而言,每个池组件711相应于登入该池组件的用户U1,U2,...Un来执行图像I1,I2,...In。图像可存储并具体呈现(instantiate)在池组件711自身处,如相应于用户U1的图像I1的情况。或者,在池组件711包括瘦客户组件(或远程终端组件)的情况下,图像可存储在外部数据存储系统714中并在服务器712上具体呈现,如图像I2和In的情况。
在任一种情况下,图像I1、I2、...In基于基线图像716以及存储在用于特定用户U-i的用户档案718i中的信息而“即时”构成。
用于特定用户U-i的用户档案718i包括用于生成该用户的虚拟桌面的信息。由服务器代理(server agent)132(其是基线图像716的一部分)收集此信息。结果是,服务器代理132在池710中的每个池组件711上是标准的。
一旦检测到软件包(例如由管理员预配置为包括所选择应用程序的包,或包括用户指定应用程序的包)的安装开始,服务器代理132就识别被安装的包。接着,其监测系统的变化,并将任意这种变化记录到基线图像。这些变化包括:新文件以及删除的文件,对现存的应用程序以及文件的变化,以及对用户个人设置的变化。
当在基于MS-视窗(MS-Windows)的系统上安装软件包时,服务器代理132监测文件系统和注册表两者的任意变化。当这样做时,其生成元数据以归纳对文件系统和注册表两者所做出的变化。为了执行这些功能,服务器代理132典型包括注册表驱动器以及微筛选器文件系统驱动器(mini-filterfile system driver)。
一经出现触发事件,服务器代理132就将元数据发送回服务器712。这使得在外部数据存储系统714中更新用户档案718i,所更新的是:关于新安装的应用程序的信息,和/或关于安装在基线图像中的应用程序的个人终端用户设置、关于这种应用程序的数据文件以及OS个人设置(例如打印机、收藏夹、桌面项、映射驱动器等)的信息。此外,在外部数据存储系统714中复制已经认为具有持久性的任意新文件或注册信息。在某些情况下,新安装的软件还被发送到服务器712以包括在基线图像716中。
用于触发元数据传输的适当触发事件是会话的结束,其由用户的退出(logoff)进行标记。然而,其它触发事件也是可以的。例如,在安装完成时或在会话内的规律间隔处,一经退出应用程序、保存数据文件或变化应用程序/视窗设置,则可发生元数据传输。此外,可由人工干预(例如通过池组件自身或通过系统管理员)来生成触发事件。
当用户U-i下一次登入池710内的任意一个池组件711(其可与用户之前登入的池组件相同或不同)时,参考(consult)用户档案718i。基于存储在用户档案718i中的信息,执行或具体呈现用户的虚拟桌面Ii,并且合并了用户先前对图像的变化,至少到使用户做出的任意变化根据该策略而被认为是持久性的程度。
参见图2,在某些情况下,可期望控制用户的图像。例如,可能希望向某些用户提供接入在基线图像716上可用的某些(而不是所有)应用程序。或者,可能希望容许使得某些(而不是所有)用户执行的变化成为持久性的。基于关联用户身份的用户策略802i,做出对特定应用程序的可接入性和变化的持久性两者的这种控制。
用户策略802i存储在外部数据存储系统714中,用于由在服务器712上执行的图像管理器803实施。图像管理器803能够通过识别容许选择的用户或用户群看到的这些应用程序和数据,哪些将被筛选,并识别容许什么变化为持久性的,来将用户策略802i施加于用户。反之,图像管理器803能够通过识别容许看到特定应用程序和/或数据的这些用户,来将用户策略802i施加于应用程序和/或数据上。
除了具有个人维度之外,用户策略802i还能够具有时间和/或空间维度。例如,用户策略802i可限定某些应用程序对用户U-i不可用的时间。或者,用户策略可限定个人OS设置,以控制哪些资源(如打印机、映射驱动器以及扫描仪)对特定用户可用以及这些资源何时可用。或者,用户策略802i可限定某些应用程序和/或资源对用户U-i不可用的位置。此外,用户策略802i可具有网络维度。这包括可用性取决于服务器712和池组件711之间的网络连接的某些特性的情况。例如,如果网络连接缺乏足够的安全性,则用户策略802i可拒绝接入一个、某些或所有选择的资源和/或应用程序。
为了实施用户策略802i,如下文所述并联系图3等,可封装所选择的应用程序和数据,接着限定使得对特定用户可用的这些囊。接着,根据用户身份,图像管理器803导致能够使得适当遮蔽的图像Ii对该用户可用,而不论该用户曾登入的特定池组件711。
用户一经登入特定池组件711,图像管理器803识别用户策略802i或与该用户相关和/或与在该池组件中存在的应用程序相关的策略。接着,图像管理器803向特定池组件上执行或绑定于特定池组件的服务器代理132提供这些用户策略802i。接着,服务器代理132使此处描述的封装系统通过生成适当的遮蔽图像Ii来实施所识别的策略。
与不变地(constantly)将软件添加到基线图像716,之后对选择的用户选择性地隐藏所选择的软件相关的困难在于,基线图像716会变大且难以使用(unwieldy)。这相应地会在登入过程期间趋于增加等待时间(latency)。
在克服这一困难的努力过程中,某些实施方式构成“基于要求(on-demandbasis)”的虚拟桌面的部分。在这种实施方式中,仅当用户实际需要软件或数据时,才在虚拟桌面图像中包括该数据或软件。实施这种方案的一个方式是提供用户文件名与位于外部数据存储系统714处的实际文件之间的链接。结果是,期望接入文件的用户可以以通常方式来执行接入,而不需要知道该文件事实上是位于外部数据存储系统714中。响应于对文件的请求,外部数据存储系统714能够将文件流注(stream)给用户。可替代地,即使在接收到明确的请求之前,外部数据存储系统也能够预期用户对文件的需求并在后台流注该文件。
一旦用户登入池710中的任意池组件711,不论该用户的位置在哪里,囊管理器130都自动实施用于该用户的用户策略802i
图3示出图1中所示的池710中的示例性池组件100。在示例性池组件100中,在硬件110上执行的操作系统120管理用户、软件以及硬件之间的交互。在硬件上存驻(hosted)的文件系统190提供硬件上的数据的排列,用于存储与每个用户账户相关联的安装应用程序文件与用户文件。典型的操作系统包括系统应用程序122(例如管理设备、执行工具以及简单的文本和图像编辑器)、共享系统文件124(例如硬件驱动器)、以及操作系统配置数据125(例如存储在注册表中的设置)。
在示例性池组件100中,能够在单个实体计算机中具体呈现各种组成软件部件。可替代地,例如在池组件100为瘦客户端的情况下,可能存在用于具体呈现远程服务器(例如图1中的服务器712)上的一个或多个组成软件部件的虚拟桌面设施。因此,图3意图为用于与操作池组件100相关联的软件部件的构成的逻辑表示,而不表示软件部件的实例的物理位置。
示例性池组件100还包括生成并管理囊的囊管理器130。囊管理器130管理系统囊140、用于每个应用程序或成套应用程序的应用程序囊(例如用于应用程序X的囊150和用于应用程序Y的囊160)、以及与用户账户相关联的用于每个用户的个人设置囊(例如个人设置囊180)。
此处描述的封装方案使得用户能够登入任意池组件711并重新生成如同在他最后一次登入另一池组件711时所存在的他的环境的一些或全部,而不论该用户的位置在哪里。有效地,在此处描述的封装方案使得用户的计算机能够和他一起“在云端(on the cloud)”旅行。用户的计算机随用户一起“在云端”旅行的程度(extent)取决于系统管理员所创建的策略。根据这些策略,将再生成用户的个人环境的某些方面,而可省略其它方面。
囊管理器130生成囊、管理应用程序及其囊之间的关系、管理应用程序之间的交互、以及提供通过使用封装而使能的(enabled)附加特征。囊管理器130所执行的动作对于应用程序而言一般是透明的(transparent)。即,每个应用程序的存在是以文件系统为目的(with a view ofthe file system),如果存在的话,则注册表与不具有囊管理器130而存在的的普通视图相一致。不需要以适应囊管理器130的使用的方式来修改或开发应用程序。
封装应用程序包括将涉及应用程序的文件和设置关联到相关联的囊。封装文件管理系统封装了应用程序并将应用程序与底层操作系统分离。与操作系统和其它应用程序之间的交互相分离地管理每个应用程序或应用程序组。每个囊包括应用程序可执行文件以及任意关联文件。某些囊包括多个应用程序可执行文件(例如软件套装),以适于应用程序或应用程序组。同时,系统容许并能够在不同封装的(和/或未封装的)应用程序之间共享文件。以修改后的形式在第二囊内封装了来自第一囊(或根本不在囊中)的文件,该文件被第二囊内的应用程序所修改。这样在第一囊内留下了在第一囊内未经修改的最初版本。由囊管理器130追踪文件版本,从而在某些实例中,文件的后续使用总是来自最近的版本,而不论囊是哪一个。
系统囊140例如以增量文件(delta file)144以及操作系统日志文件145的形式来封装对初始操作系统安装的改变。系统囊140还可包括某些类型的系统应用程序,并将其他系统应用程序看作放置在囊中的孤立应用程序。例如,微软
Figure BSA00000419614600111
公司通常用它们的操作系统来打包(bundle)文本编辑器(notepad.exe)。
在某些实施例中,分离的囊用于管理某些打包应用程序(例如用于微软
Figure BSA00000419614600112
的打包文本编辑器的记事簿囊)的活性(activity)。个人设置囊180管理用户文件182。这种文件182能够包括与当用户一经登入他的账户与对他可用的封装应用程序不关联的文件。这种用户文件包括由用户复制到系统中的文件以及用户指定的操作系统设置184(例如打印机配置和显示器设置)。
实际上,囊管理器130可用于使得某些用户能够仅仅看到某些所选择的应用程序。这使得囊管理器130能够限定用户的类别,每个类别能够接入不同的应用程序。
一般而言,并未保证重建图像所需的软件和数据在特定计算机上可用。结果是,当限定了与位置无关的图像时,如上文所述,能够变为需要快速传递所选择的软件和其它数据,以避免在登入期间的等待时间。为了减少等待时间,囊管理器130检查元数据以确定特定软件或数据在计算机中是否为不可用的。如果任意这种软件或数据是不可用的,则囊管理器130根据需要使得某些软件和数据被提供给计算机。这避免了对预安装数据或软件的需求。
上述方法和用于执行这种方法的系统,与跟重复数据删除(de-duplication)相关联使用的相应方法和系统不同。在重复数据删除系统中,要搜索重复块。反之,囊管理器130搜索重复应用程序。
在某些情况下,登入他的账户的用户还能够使用一个应用程序(如应用程序X)来与来自另一应用程序(如应用程序Y)的应用程序文件一起操作。在这种情况下,由应用程序X所读取的任意文件155保留在应用程序Y囊中。由应用程序X修改的任意文件158保存在应用程序X囊150内。留下这些文件的初始版本(例如应用程序Y用户文件155)不加以修改。由于仅当修改时复制文件,将其称为“写时拷贝”。可通过首先拷贝文件接着变化拷贝件,或者更有效的是通过将修改写入新版本的文件而不需要拷贝文件,来处理对写时拷贝策略中的修改。以与文件接入相同的方式来管理特定用户账户内的注册接入,且根据需要复制注册表键(registry key)。
在某些实施例中,囊管理器130从每个请求处理截取每个注册或文件系统请求,并用来自适于请求的应用程序的封装文件系统图式(schema)的注册表键和文件路径来取代请求中的注册表键和文件路径。囊管理器130确定用于请求的处理的正确的囊视图,并且作为请求的文件或注册表键、请求的处理以及适当系统视图的函数(function)。囊管理器130进一步确定用于在置换中使用的本地(native)文件路径或注册表键。替代请求被传送到操作系统120或存储硬件110。接着请求响应能够发送到初始处理(originating process)。在某些实施方式中,使用内核级驱动器来截取请求。在另一些实施方式中,请求响应通过囊管理器130。在再一些实施方式中,囊管理器130与硬件110直接交互,而并未使用操作系统120。
参见图4,单个卷标200上的典型操作系统文件系统图式开始于根目录290,例如“C:\”。在根目录组中具有多个目录以及相关的子目录。典型配置包括操作系统树292(例如“C:\WINDOWS\”)和一个或多个应用程序树294(例如“C:\Program Files\”)。大多数操作系统包括附加软件,例如配置设备(utility)、系统监测器以及其它基础应用程序。本软件典型被收集到“bin”目录中或扩展到多个目录中(例如分到OS树292和应用程序树294之间)。在本实例中,在设备目录222中的OS树292中将这种附加软件收集到一起。在OS树292中还存在用于附加库224(例如DLL)的目录以及用于配置数据225的目录。某些系统还包括用户文件树295(例如“C:\Documents and Settings\”)。支持多个用户的系统典型包括用于每个用户(例如用户285和另一用户288)的用户文件树中的目录。
当应用程序安装在不具有囊管理器130的系统中时,安装处理典型生成应用程序树294中的目录并把文件加入到OS树292中的文件夹中(例如把附加DLL加入库目录224中)。在某些情况下,安装还将文件或特殊子目录加入到每个用户账户的文件树中。例如,通过增加包括可执行文件252和附加应用程序文件253的应用程序X目录251,从而应用程序X的安装扩张了应用程序树294。应用程序X的安装还在库目录224中加入了DLL 254,在配置目录225中加入了配置数据255,并在每个用户目录中加入了用户文件(显示为初始实例用户285下的文件255以及另一用户288下的文件258)。这些文件一般对于登入任意用户账户的任意用户可用。
应用程序的每个后续安装还增大了目录结构并将文件加入OS树292中的目录中。例如,通过加入包括可执行文件252和附加应用程序文件253的应用程序Y目录251,应用程序Y的安装扩张了应用程序树294。应用程序Y的安装还在库目录224中加入了DLL 254,在配置目录225中加入了配置数据255,并在每个用户目录中加入了用户文件(显示为初始实例用户285下的文件255以及另一用户288下的文件258)。
当在具有囊管理器130的系统中安装应用程序时,本地目录结构维持为用于用户调用的处理的文件系统的视图。然而,囊管理器130截取每个文件系统请求。一经这么做,囊管理器130记录(journal)该请求从而对存储于外部数据存储系统714中的数据执行任意文件接入操作。可替代地,囊管理器130用适于请求的应用程序的封装文件系统图式的路径和文件位置取代了请求中的路径和文件位置,如上文所述。由囊管理器130来管理路程变更(rerouting),其对于每个应用程序(包括如用户外壳)存在囊指定文件系统视图,例如用户一经登入他的账户就可看到的视图。如下文所解释的,为了确定视图的目的具有两种囊:独立(isolated)囊和通用(general)囊。独立囊中的应用程序仅具有存储在囊内的文件的视图以及不在独立囊内的文件的最新版本。通用囊中的应用程序具有不在独立囊内的每个文件的最新版本的统一视图(unified view)。不在囊中管理的应用程序存在相同的统一视图,好像应用程序在通用囊中一样。将视图转化为囊图式,通过囊管理器130将文件放置在下层本地文件系统中。
在某些实施方式中,囊管理器130生成囊树230以用作囊图式(capsuleschema)的根目录。在系统囊240中捕获对操作系统做出的修改和/或使用工具目录222中的软件做出的修改。生成的所有文件或关于应用程序的所有文件位于与应用程序相关联的囊中。例如,安装应用程序X生成应用程序X囊250。将对存储在应用程序树\应用程序X 251中的文件的接入进行路程变更210,以替代性地接入应用程序X囊250中的文件。此外,用户级别上的操作系统配置存储在个人设置囊280中。配置数据被存储到经由文件系统不能接入的注册表中时,使用注册项的特殊囊树以相同方式管理注册表接入。
其它实施例和实施方式以其它格式存储囊内容和数据。例如,在替代实施方式中,代替使用特殊目录,使数据位于数据库中。在另一实例中,使用特殊存档文件。在某些实施方式中,囊管理器130使用记录途径(journalingapproach)以归档管理。在记录途径中,囊管理器130使用本地目录图式结合囊记录。能够在本地机处或者在维持多个本地机的基线图像的服务器处维持囊记录。在为囊维持的记录中记录囊中的文件的参考。一个囊中的文件名与另一囊中的文件名冲突时,囊管理器130对一个文件或这两个文件供应假名。例如,由应用程序X修改的文件“sample.dat”可被命名为“sample.dat.Capsule_X”。应用程序Y做出的后来的修改可被命名为“sample.dat.Capsule_Y”。在某些实例中,版本信息还被并入文件名中。配置数据被存储到经由文件系统不能接入的注册表中时,使用囊命名注册表项以相同方式管理注册表接入。
参见图5,在某些实施方式中,同一文件的不同版本存储在不同位置。五个实例文件使用三个文件位置302足以示范文件视图观点。在未封装的目录中,具有文件1.0、文件2.0、文件3.0的初始文件版本,其中“文件N.M”是“文件N,版本M”的缩写。在囊A的囊目录下,具有文件4.0和文件5.0的初始文件版本,以及修改后的文件版本文件2.1和文件3.1。在囊B的囊目录下,具有修改后的文件版本文件3.2和文件5.1。示出每个文件最新版本的这些文件的统一视图304包括文件1.0、文件2.1、文件3.2、文件4.0以及文件5.1。
独立囊(isolated capsule)具有存储在囊内的文件的视图,以及不具有存储在囊内的版本的文件的仅最新版本。例如,囊A的视图,其中囊A是独立囊306,包括文件1.0、文件2.1、文件3.1、文件4.0以及文件5.0。从而独立囊可能够用于根据特定用户策略802i封装仅从该特定用户账户能接入的应用程序,并隐藏不期望对此用户账户可用的那些应用程序。
通用囊(general capsule)具有跨过所有通用囊和未封装文件的统一视图,包括在独立囊中不具有的每个文件的最新版本。例如,囊A的外部的统一视图(其中囊A为独立囊308)包括文件1.0、文件2.0、文件3.2以及文件5.1。包括文件2.0来代替存储在独立囊A中的文件2.1,这是由于文件2.0是未存储在独立囊中的最新版本。类似的,不包括仅存储在独立囊A中的文件4.0,这是由于在独立囊的外部不存在该文件的版本。通用囊(例如囊B)具有统一视图。所有的通用囊具有相同视图。从而,通用囊适于封装意图可从所有用户账户接入的应用程序。
囊内的应用程序接入到囊外部的文件并未改变外部文件。每个囊使用用于修改的文件的本地拷贝。在某些实施例中,当具有囊的应用程序打开用于写入接入的文件以及在囊中不存在文件时,文件首先被拷贝到囊中。接着,这种内囊拷贝被打开以用于修改。在某些情况下,在囊中写新的文件比拷贝文件更有效。例如,在整个文件将被覆写的情况下写入新的文件。以相同方式处理注册表接入。在囊内维持所有文件或注册表的变化。然而,要注意的是,该操作系统文件和存储器管理文件(如页面文件)留在操作系统囊中。
对于为只读接入打开的文件,打开在囊视图内可用的版本。结果是,当多个版本可能存在于文件系统内时,每个版本与相同文件路径相关联,之前解释的视图系统仅揭示了最新版本,并打开最新版本以用于读取。
参见图7,通过截取请求510开始解决注册表接入或文件系统请求的处理。接着确定请求可执行文件520。例如其可以通过使用视窗的PSAPI.DLL功能GetProcessImageFileName()来完成。如果封装了应用程序,则可执行路径将指示囊524。如果找到囊530,则该囊用于解决请求532。如果没有找到囊,则生成囊534。
请求应用程序的囊确定应用程序可执行文件所使用的视图。如果囊为独立的540,则使用独立视图542。否则使用通用的统一视图544。上文讨论了多个视图之间的差别。使用适当的视图,来放置请求的目标545。基于请求是读取请求还是写入请求对搜索的结果进行处理550。如果请求是读取请求或是非修改请求,则处理取决于找到目标560。如果没有找到目标,则返回错误562。如果找到目标,则其用于满足请求,即读取目标564。
如果请求是写入请求,或修改请求,则处理取决于目标的囊状态570。如果在囊中不存在目标,则在囊中生成目标572。接着根据请求修改囊内的目标574。在某些情况下,通过复制囊外部的目标来生成目标572。例如,基于修改数据库中的部件的请求,可完成此内容。在其它情况下,例如如果修改将会覆写目标,则不需要复制目标。在这种情况下,生成目标意味着生成新文件或注册表键。
当接收到删除不具有其它版本的文件的指令时,删除文件。如果存在其它版本,则某些特殊处理用于维持文件删除的记录。在该情况下,删除被视作本地化到囊的修改。例如,将删除的文件记录保留在囊内。由于记录是最新版本的文件,从而其将从系统的名称空间有效删除。在某些实施例中,没有实际删除文件的最后版本。在类似情况下,当存在文件的多个版本并由囊对文件重新命名时,将文件的旧名称版本标记为删除的,并生成具有新名称的文件的新版本。以相同方式来处理注册表修改。
囊管理器130存在的文件系统视图并不包括已经停用或删除的囊。停用囊与删除囊并不相同。当停用囊时,仍保留了常驻数据,但是囊终止了参与到文件系统中。当停用囊时,终止囊内的运行可执行文件的所有处理,并且文件变对文件系统视图不可见,就如同囊被隔离。然而,囊的内容保留在存储器中并且之后可被重新激活。在某些实施方式中,基于自动触发器来激活囊或停用囊。例如,管理器可配置计算机系统,从而某些应用程序囊仅在某些时间内可用,停用如使在工作时间期间使用大量网络带宽的用用程序的囊。或者,例如,仅当机器连接到安全企业数据网络时,可激活存储在特定机器上的灵敏的囊。以类似方式,关联图2进行讨论的用户指定用户策略802i还可包括能够如上所述进行加强的临时元件。
当删除囊时,也删除了囊的内容。随着所有的应用程序文件、配置数据以及囊中包含的任意其它内容也删除了囊中的任意应用程序。在某些实施方式中,在删除囊的内容之前,将某些文件(例如用户文件)复制到另一囊或复制到文件的视图明显位置处的本地文件系统。以此方式融合文件降低了删除囊时的数据损失。
为了删除囊而不会删除其内容,即为了不封装应用程序,则囊中的所有文件融入到另一囊中或融入到本地文件系统中,从而仅删除了空囊。实际上,删除了囊但是将囊的内容移动到其本地位置,正如同安装了应用程序并在计算机中使用了应用程序而并未封装。
在每个囊内,每个文件与本地文件系统地址相关联。独立囊可包括映射到相同外部地址的文件,如图5示出的和上文描述的不同文件版本所示。类似地,在某些实施方式中,一个囊可包括映射到同一地址的多个文件版本。触发事件使得囊的内容是只读的,从而囊内的将来写入尝试指的是囊内的新位置。在某些实施方式中,将对只读文件的修改保存为具有适当映射文件(例如对部分大的数据库文件的修改)的文件块。实例的触发包括:系统重启;具体呈现应用程序;如果文件之前的版本在囊外生成则修改囊内的文件;计划好的事件;安装完成;囊输入或输出(在下文中更详细披露);或与另一囊融合。
参见图6,在一个实例中,囊内的多个子目录用于分离只读文件,其中一个目录分配用于激活写入而其它目录分配用于只读囊的之前版本。具有根目录囊T 470的初始囊树402具有包含可写入文件的激活目录(activedirectory)472,例如文件1 410、文件2 420以及文件3 430。这些文件是对应用程序可见的文件,如箭头所示。
触发事件导致激活写入目录变为只读,并且还导致建立用于进一步激活写入的新的目录。例如,第一事件404之后的囊树具有包括之前在激活目录472中的文件的初始版本的只读目录474。激活目录472包括这些文件的任意修改(例如文件2 421以及文件3 431)以及任意新的文件(如文件4 440)。囊的视图仍示出每个文件的最新版本,而不论其子目录为何,如箭头所示。
可以重复进行前述处理。例如,第二事件406之后的囊树具有包括之前在激活目录472中的文件的版本的初始只读目录474以及新的只读目录476。激活目录472包括任意文件修改(例如文件3 432)以及任意新的文件。囊的视图仍示出每个文件的最新版本,而不论其子目录为何,如箭头所示。
囊能够回退到任意触发事件的时间。在合并描述的子目录路径的一个实施方式中,将在目标触发事件之后填入的只读和激活目录从囊视图中排除。从而系统管理器能够通过囊的历史经由排除和/或包括目录进行回退并前进。新的激活目录用于在前向修改。
在某些实施方式中,操作系统修改和配置与用户文件分离,例如,操作系统使用注册表。在这些实施方式中,每个囊合并用于囊的注册表树。注册表树包括用于在囊内进行使用的键/值对。与用文件相同的方式来管理此数据,包括生成只读组键的能力以及回退的能力。在某些实施方式中,在注册表内回退与在用户文件中回退相分离。这允许完成一个回退,无论是否具有另一个回退。在某些实施方式中,对应用程序的管理明显与应用程序数据不同,其配置可包括注册表项与配置文件的混合体。在这些实施方式中,能够与数据回退相分离地处理配置的回退。
在某些实施方式中,每个囊包括用于关联的应用程序的所有组件,并未对操作系统做出外部修改。封装的应用程序能够干净地并完整地从系统移除。如上文所述,删除囊完整地移除了所有文件,如果可用,则可移除囊内的注册表项。这包括对文件系统和/或注册表引起的囊内的应用程序的所有变化。类似地,重新存储囊完整地重新存储了应用程序。囊的备份拷贝能够用于重新存储囊的每个部件,包括设置、可执行文件以及数据文件。这还能够用于调配应用程序的拷贝以通过拷贝应用程序囊来使计算机系统多样化。例如,参见图1,能够通过拷贝存储在外部数据存储系统714上的适当应用程序囊来在池710的所有池组件711之间调配应用程序的拷贝。在下文中关联图8来更详细地描述这一进程。
应用程序的不同版本能够在单个计算机系统中共存,每个版本在其自己的囊中。例如,分离囊内的应用程序的第一版本对分离囊中的应用程序的第二版本不可见。或者在另一实例中,停用的囊内的应用程序的第一版本对分离囊中的应用程序的第二版本不可见。从而系统管理器能够测试新的安装而不需要移除之前的安装。多个囊的用户文件能够之后被融合。
在某些情况下,能够移除应用程序安装,随着通过拷贝囊将其关联的配置数据和用户文件从一个计算机到另一个计算机。封装的应用程序能够被网络驱动、USB驱动或任意其它便携式介质转移,并由网络驱动、USB驱动或任意其它便携式介质使用或经由网络713由接入的外部数据存储系统714使用,如图1所示。囊可被经由数据网络(如因特网)流动到连接的数据服务器,或从数据服务器流动到囊。在某些实施方式中,囊管理器130不下载整个囊。替代地,例如当接入部分囊时,管理器根据需要下载这些部分。能够迁移应用程序以及应用程序设置和用户数据,而不需要在每个激活的囊系统中运行应用程序安装设备。
参见图8,装备有网络囊管理器620的实例计算系统610将囊数据680a与其经由数据网络690所连接到的网络囊服务器650a交换。囊服务器650a储存可接入囊服务器650a的存储器660a上的囊数据。安装在计算系统610上的囊管理器620将囊数据680a流动到网络囊服务器650a并从网络囊服务器650a流动囊数据680a。
囊数据680a包括一个或多个完整的囊或囊的一部分。能够流动任意种类的囊,包括操作系统囊和用户指定囊。具有网络囊管理器620的计算机510的用户能够从网络囊服务器650a流动应用程序,使用位于计算机610中的应用程序,并将修改上传到囊返回网络囊管理器650a,例如发送回用户文件修改。在某些实施方式中,管理器能够修改存储在网络存储器660a中的囊,例如激活管理器以更新应用程序软件、安装补丁或实施用户策略802i
在某些实施方式中,网络囊管理器620使用囊缓存630以降低网络使用。仅对流动的囊的更新在随后的使用中流动。在某些实施方式中,仅根据需要流动囊的更新或丢失部分。囊缓存(capsule cache)630以及关联的囊数据存储在位于计算系统610中的存储器640中。在某些实施方式中,应用程序使用两个囊,一个囊用于相对温度的应用程序数据(如可执行行及其关联的库),并且第二个囊用于更频繁地更改的数据(如用户文件)。
在某些实施方式中,使用多个囊服务器650a-c,如可分配一个服务器650a用于服务操作系统囊(其可为只读的),可分配另一服务器650b用于应用程序囊(其可为只读的),以及可分配第三服务器650c用于用户囊(其可支持上传修改)。使用多个囊服务器,计算系统610能够将囊数据680a与第一囊服务器650a相交换,且将其它囊数据580-c与第三囊服务器650c相交换。
使用用于囊分配的网络化做法,多个计算机能够存在对用户的相同或类似的计算环境。例如,使用囊的办公设置中的计算机用户也能够将囊传送到第二计算机(如家庭计算机)。能由便携式介质(如便携式存储卡)经由网络(如因特网)或以任意其它可用方式来传送囊。可传送整个囊或可仅传送部分囊。
在某些实施例中,一个或多个囊服务器存储操作系统囊、个人设置囊以及应用程序囊。用户启动本地计算机系统,该系统接着从囊服务器传输一个或多个操作系统。这些操作系统囊接着用作本地计算机系统的操作系统。还从服务器传递个人设置和应用程序并本地使用个人设置和应用程序。在某些实施方式中,将在本地计算机系统修改的囊传递回主机。在某些实施方式中,使变化同步以解决囊的多个实例之间的变化冲突。例如,能够在用户会话的起始或结束时发生同步。在某些实施方式中,本地系统仅为瘦客户端,并且仅根据需要从服务器流动图像(如屏幕图像)。例如,可从服务器流动操作系统本身。在某些实施例中使用流动做法,整个操作系统还驻留在本地计算机以支持离线工作。一旦机器被重新引入网络,则执行用户囊的同步。
在某些实施方式中,计算机系统能从安装有应用程序而不具有囊的系统转换成每个应用程序在关联的囊中的封装系统。在一个实例中,当安装有囊管理器时,例如可通过MSI的分析(视窗安装程序,也成为微软安装程序或达尔文(Darwin))安装记录来列举并分析所有存在的之前安装的应用程序。基于此分析,囊管理器130能够对每个应用程序组成在安装期间生成/更新的文件列表和注册表值。能够根据此列表来执行应用程序封装。然而,MIS记录不总是完整的,例如不包括在应用程序运行时间(相对于安装时间)更新的文件/注册表值。在某些实施例中,转换成封装系统并不移动之前存在的文件或注册表项。更进一步,之前存在的应用程序文件和注册表项羽新的囊相关联,并且囊仅包括在封装后生成或修改的文件和注册表项。
在另一实例中,囊管理器能够模拟应用程序不安装的过程,而并未实际变化本地文件系统或注册表。例如,能够捕捉文件和注册表请求的模块(例如部分囊管理器)捕捉不安装请求并模拟不安装的正确响应。在此过程期间所请求的文件/注册表值的列表用作应用程序封装的基础。过程是用户难以追踪的,这是由于安装对话框保持不可见并清理了安装程序日志。生成的囊包括本应被卸载程序移除的所有文件和注册表装置。
在另一实例中,在预安装的应用程序是公知的情况下,囊管理器使用知识基库(base)来决定囊中所包括的文件和注册表设置。此做法考虑了计算机系统的环境(例如操作系统、服务包或补丁级别以及其它应用程序上的附属物)。知识基库能够包括已知用于在应用程序运行时间更新的配置单元。
在另一实例中,其中封装了操作系统,具有每个空间均填充有一个或多个囊的三个空间:操作系统空间、应用程序空间以及用户空间。通过从每个空间选择一个或多个囊来生成计算环境。在某些实施方式中,从一个计算机到另一个计算机流动操作系统囊和/或应用程序囊。将流动的囊看作只读的,限制对用户囊的用户修改。在某些情况下,用户囊还从一个计算机流动到另一个计算机,例如存储能够从其它计算机系统接入的数据服务器上的用户囊。在流动源上执行维持并修改操作系统囊和/或应用程序囊,从而简化打补丁或升级。能够以多种方式来完成对这种系统的实施,包括基于虚拟机的实施方式,以及基于将地送到操作系统的桌面分离图像的驱动器的实施方式。
在另一实例中,能够以多种模式来配置系统。例如,以两种模式来配备手提电脑,一种模式用于“工作”而另一种模式用于“家庭”。“工作”模式停用支持非商业应用程序(例如游戏)的囊并激活工作应用程序(例如用于接入公司网络的软件)。“家庭”模式将激活倒转,激活非商业应用程序并停用工作专用应用程序(例如限制未授权的接入公司网络)。在某些实例中,可通过管理器远程激活/停用这些模式。在另一实例中,可通过由管理器采取的远程行为来分别激活或禁能一个或多个囊。如上文所述为实施具有时间维度的用户策略的实例。
例如,系统可为便携式的(例如膝上型电脑或笔记本电脑),并配置有一系列授权的商业囊。当便携式系统连接到企业网络时(如当其登入虚拟私人网络VPN时),仅激活授权的商业囊。当便携式系统不连接到企业网络时,用户能够激活其它囊,这些囊在便携式系统位于企业网络上时可能是失效的。以此方式,使用企业手提电脑的人可在断开连接时(即在家时或在开会时)安装应用程序,但是当系统连接到企业网络时系统操作为好像从未安装这些未授权的应用程序。通过删除未授权的应用程序囊还可容易地移除未授权的应用程序。如上所述,这些为实施具有网络维度的用户策略的实例。
在另一实例中,计算机系统可被配置为例如通过在一个或多个只读囊中放置操作系统和/或其配置来防止用户修改环境设置。期望对计算机的管理权的应用程序(包括变化操作系统或其配置的能力)放置在具有操作系统本地化视图的囊中。在囊内做出的修改并未反映囊的外部,并且能够通过恢复到较早快照(如初始优选状态快照或“基线状态”)而并未完成。在某些实施方式中,应用程序具有管理许可,但是应用程序修改系统的能力受限。在某些实施方式中,囊在每次使用的开始或结束时总是恢复到基线状态。
可将囊管理器实施为抗撞击。例如,囊管理器可通过使用文件系统检查点来维持囊活性的记录。在失败之后,系统可回转到之前的检查点(例如最近的检查点),以已知的稳定状态来放置系统,或能够完成进行中的业务。在囊管理器与网络化囊主机通信的实施方式中,记录还可包括网络激活。这保证了仅完成的囊变化对系统的冲击并简化了撞击的恢复。
在说明书中,有时将应用程序描述为提出被囊管理器130所截取的请求。要知道,在某些实例中,通过可执行文件的处理(其的可执行文件与封装的应用程序相关联),生成被囊管理器截取的请求。可实施囊管理器130以基于一组映射(如从PID到可执行文件、从可执行文件到应用程序以及从应用程序到囊)来解决到囊标识号的请求过程的过程标识号(PID)。
能够在数字电路中或在计算机硬件、固件、软件或这些的组合中实施此处描述的技术。可将技术实施为在信息载体中,如在机器可读存储装置(例如磁盘或磁带或光盘)或计算机可读介质中,切实体现的计算机可执行指令,用于由数据处理设备(如可编程处理器、计算机、或多台电脑)执行或用于控制数据处理设备的操作。能够以任意形式的编程语言(包括编译语言和解释型语言)来写入计算机程序,可能够以任意形式(包括作为独立程序或作为模块、组件、子程序或适合在计算环境中使用的其它单元)来配置计算机程序。可由一个特定计算机或在一个站点处的多个特定计算机上或分布在多个站点处的多个特定计算机上进行配置、限制或执行计算机程序,并通过通信网络进行相互连接。
应可理解执行计算机可读指令导致对计算机中的存储器位置的实际和有形的变化。这些变化包括电荷和电流的移动、和因而导致的对装置附近的电磁场的扭曲和变化。能够通过适当测量装置(包括示波器、现场探头和电压表)来测量这种变化。在某些情况下,此处描述的计算机执行软件指令能够导致与附近装载的电磁干扰并使周围的区域变热。这种变化均体现了物质的切实与可测量变化。
能够由一个或多个可编程处理器执行计算机程序来执行此处描述的技术的方法步骤,以通过操作输入数据并生成输出来执行本发明的功能。还能够由特定目的逻辑电路,如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来执行方法步骤,并且能够将本发明的设备实施为特定目的逻辑电路。模块能够指实施该功能性的计算机程序和/或处理器/特定电路的部分。
通过实例的方式,适于执行计算机程序的处理器包括通用和专用目的微处理器两项以及任意种类数字计算机中的一个或多个处理器。通常而言,处理器将从只读存储器或从随机存取存储器或从这两者中接收指令和数据。计算机的基本部件为用于执行指令的处理器与用于存储指令和数据的一个或多个存储器装置。通常而言,计算机还将包括用于存储数据的一个或多个大容量存储装置(如磁盘、磁光盘或光盘),或可操作地耦接至一个或多个大容量存储装置以从一个或多个大容量存储装置接收数据或将数据发送到一个或多个大容量存储装置或接收和发送数据两者。适于具体体现计算机程序指令和数据的信息载体包括所有形式的非易失存储器,包括实例半导体存储器装置(如EPROM、EEPROM以及闪存装置)、磁盘(如内置硬盘或移动盘)、磁光盘以及CD-ROM和DVD-ROM盘的方式。能够通过特定目的逻辑电路来补充处理器和存储器或能够将处理器和存储器与特定目的逻辑电路集成。
为了提供与用户的交互,此处描述的技术能够在具有用于对用户显示信息的显示装置(如CRT(阴极射线管)或LCD(液晶显示器)屏幕)、键盘、以及用户能够向计算机提供输入(例如,如通过点按定点装置(pointingdevice)上的按钮与用户界面部件交互)的这种定点装置(如鼠标或追踪球)的计算机上实施。其它种类的装置还能够用于提供与用户的交互;如,提供到用户的反馈能够为任意形式的感官反馈(如视觉反馈或触觉反馈);以及能够以任意形式(包括声学、讲话或触觉输入)接收从用户的输入。
能够在包括后端组件(如应用程序服务器)、和/或前端组件(如具有图形用户接口的客户端计算机和/或用户能够与本发明的实施方式相交互的网络服务器)、或这种后端、中间、或前端组件的任意组合的分布式计算系统中实施此处描述的技术。系统的组件能够通过任意形式或介质的数字数据通信(如通信网络)互连。通信网络的实例包括本地局域网(“LAN”)以及例如因特网的广域网(“WAN”),并包括有线网络和无线网络两种。
计算系统能够包括客户端和服务器。客户端和服务器一般彼此相隔较远,并典型地经由通信网络进行交互。客户端和服务器的关系是靠在各计算机上运行并彼此具有客户端-服务器关系的计算机程序引起的。
要知道,前述的描述意图示出本发明的范围而不限于此,本发明的范围由所附权利要求的范围所限定。其它实施例在所附权利要求的范围之内。

Claims (21)

1.一种计算机实施的方法,用于使计算机系统向池组件的用户提供虚拟桌面图像,所述方法包括如下步骤:
从用户接收由池登入第一池组件的请求;
取来虚拟桌面图像以供所述第一池组件使用;
检查用户策略;
将所述虚拟桌面图像修改为与所述用户策略一致;以及
向所述第一池组件提供所述虚拟桌面。
2.根据权利要求1所述的方法,还包括如下步骤:
从所述用户接收登入第二池组件的请求,所述第二池组件与所述第一池组件不同;
取来所述虚拟桌面图像以供所述第二池组件使用;
检查所述用户策略;
将所述虚拟桌面修改为与所述用户策略一致;以及
向所述第二池组件提供所述虚拟桌面。
3.根据权利要求1所述的方法,其中修改所述虚拟桌面包括基于用户的身份拒绝所述用户接入应用程序。
4.根据权利要求1所述的方法,其中修改所述虚拟桌面包括基于登入的时间拒绝所述用户接入应用程序。
5.根据权利要求1所述的方法,其中修改所述虚拟桌面包括基于尝试登入的位置拒绝所述用户接入应用程序。
6.根据权利要求1所述的方法,其中修改所述虚拟桌面包括合并所选择的、由所述用户于在前的会话时在池组件上做出的变化。
7.根据权利要求1所述的方法,其中修改所述虚拟桌面包括合并所选择的、由所述用户于在前的会话时在与所述第一池组件不同的池组件上做出的变化。
8.根据权利要求1所述的方法,其中修改所述虚拟桌面包括实施持久性策略,在该持久性策略中某些用户变化被视为持久性的并且某些其它用户变化被视为非持久性的。
9.根据权利要求1所述的方法,还包括在远程数据存储系统中存储多个用户档案,每个用户档案包括表示由用户对虚拟桌面图像做出的配置变化的元数据。
10.根据权利要求1所述的方法,其中修改所述虚拟桌面图像包括封装所选择的在所述图像中可用的应用程序。
11.一种制品,包括计算机实施介质,该计算机实施介质上编码有软件,用于使计算机系统向池组件的用户提供虚拟桌面图像,所述软件包括用于如下功能的计算机可执行指令:
从用户接收由池登入第一池组件的请求;
取来虚拟桌面图像以供所述第一池组件使用;
检查用户策略;
将所述虚拟桌面图像修改为与所述用户策略一致;以及
向所述第一池组件提供所述虚拟桌面。
12.根据权利要求11所述的制品,其中所述软件还包括用于如下功能的指令:
从所述用户接收登入第二池组件的请求,所述第二池组件与所述第一池组件不同;
取来所述虚拟桌面图像以供所述第二池组件使用;
检查所述用户策略;
将所述虚拟桌面修改为与所述用户策略一致;以及
向所述第二池组件提供所述虚拟桌面。
13.根据权利要求11所述的制品,其中用于修改所述虚拟桌面的指令包括用于基于用户的身份拒绝所述用户接入应用程序的指令。
14.根据权利要求11所述的制品,其中用于修改所述虚拟桌面的指令包括用于基于登入的时间拒绝所述用户接入应用程序的指令。
15.根据权利要求11所述的制品,其中用于修改所述虚拟桌面的指令包括用于基于尝试登入的位置拒绝所述用户接入应用程序的指令。
16.根据权利要求11所述的制品,其中用于修改所述虚拟桌面的指令包括用于合并所选择的、由所述用户于在前的会话时在池组件上做出的变化的指令。
17.根据权利要求11所述的制品,其中用于修改所述虚拟桌面的指令包括用于合并所选择的、由所述用户于在前的会话时在与所述第一池组件不同的池组件上做出的变化的指令。
18.根据权利要求11所述的制品,其中用于修改所述虚拟桌面的指令包括用于实施持久性策略的指令,在该持久性策略中某些用户变化被视为持久性的并且某些其它用户变化被视为非持久性的。
19.根据权利要求11所述的制品,其中该软件还包括用于在远程数据存储系统中存储多个用户档案的指令,每个用户档案包括表示由用户对虚拟桌面图像做出的配置变化的元数据。
20.根据权利要求11所述的制品,其中用于修改所述虚拟桌面图像的指令包括用于封装所选择的在所述图像中可用的应用程序的指令。
21.一种用于从池向池组件的用户提供虚拟桌面图像的系统,所述方法包括:
服务器子系统,与多个池组件进行数据通信,所述服务器子系统具有至少一个处理器,以及可操作地耦接至所述处理器的存储器部件,所述子系统被配置为:
从用户接收由池登入第一池组件的请求;
取来虚拟桌面图像以供所述第一池组件使用;
检查与所述用户相应的用户策略;
将所述虚拟桌面图像修改为与所述用户策略一致;以及
向所述第一池组件提供所述虚拟桌面。
CN2011100082065A 2010-01-08 2011-01-10 池组件配置的管理 Pending CN102158526A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US12/684,727 US20100211663A1 (en) 2008-07-28 2010-01-08 Management of pool member configuration
US12/684,727 2010-01-08
US29510310P 2010-01-14 2010-01-14
US61/295,103 2010-01-14

Publications (1)

Publication Number Publication Date
CN102158526A true CN102158526A (zh) 2011-08-17

Family

ID=43663937

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011100082065A Pending CN102158526A (zh) 2010-01-08 2011-01-10 池组件配置的管理

Country Status (2)

Country Link
CN (1) CN102158526A (zh)
GB (1) GB2476878A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609299A (zh) * 2012-01-13 2012-07-25 深圳市深信服电子科技有限公司 虚拟化系统及其创建方法、装置
CN103248668A (zh) * 2012-02-10 2013-08-14 中兴通讯股份有限公司 虚拟桌面服务参数的协商方法、装置及系统
WO2013149473A1 (zh) * 2012-04-05 2013-10-10 华为技术有限公司 虚拟桌面的实现方法、装置和系统
CN105141659A (zh) * 2015-07-23 2015-12-09 浪潮(北京)电子信息产业有限公司 一种云桌面分配方法和系统
CN107894928A (zh) * 2016-09-29 2018-04-10 联想企业解决方案(新加坡)有限公司 基于热分析的计算设备和/或非易失性存储设备的重新配置
WO2023246442A1 (zh) * 2022-06-22 2023-12-28 中兴通讯股份有限公司 基于个性化漫游数据的池化桌面启动方法和云桌面系统

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9098378B2 (en) 2012-01-31 2015-08-04 International Business Machines Corporation Computing reusable image components to minimize network bandwidth usage
US8880638B2 (en) 2012-06-18 2014-11-04 International Business Machines Corporation Distributed image cache for servicing virtual resource requests in the cloud
US10909271B2 (en) 2017-09-28 2021-02-02 Citrix Systems, Inc. Policy based persistence

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070234356A1 (en) * 2006-03-31 2007-10-04 Martins Fernando C System and method for support of personal computing in a public computing infrastructure
US20090006537A1 (en) * 2007-06-29 2009-01-01 Microsoft Corporation Virtual Desktop Integration with Terminal Services

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070234356A1 (en) * 2006-03-31 2007-10-04 Martins Fernando C System and method for support of personal computing in a public computing infrastructure
US20090006537A1 (en) * 2007-06-29 2009-01-01 Microsoft Corporation Virtual Desktop Integration with Terminal Services

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609299A (zh) * 2012-01-13 2012-07-25 深圳市深信服电子科技有限公司 虚拟化系统及其创建方法、装置
CN103248668A (zh) * 2012-02-10 2013-08-14 中兴通讯股份有限公司 虚拟桌面服务参数的协商方法、装置及系统
CN103248668B (zh) * 2012-02-10 2020-06-23 中兴通讯股份有限公司 虚拟桌面服务参数的协商方法、装置及系统
WO2013149473A1 (zh) * 2012-04-05 2013-10-10 华为技术有限公司 虚拟桌面的实现方法、装置和系统
US9246992B2 (en) 2012-04-05 2016-01-26 Huawei Technologies Co., Ltd. Virtual desktop implementation method, apparatus, and system
CN105141659A (zh) * 2015-07-23 2015-12-09 浪潮(北京)电子信息产业有限公司 一种云桌面分配方法和系统
CN107894928A (zh) * 2016-09-29 2018-04-10 联想企业解决方案(新加坡)有限公司 基于热分析的计算设备和/或非易失性存储设备的重新配置
CN107894928B (zh) * 2016-09-29 2021-04-20 联想企业解决方案(新加坡)有限公司 基于热分析的配置的装置、方法和存储介质
WO2023246442A1 (zh) * 2022-06-22 2023-12-28 中兴通讯股份有限公司 基于个性化漫游数据的池化桌面启动方法和云桌面系统

Also Published As

Publication number Publication date
GB2476878A (en) 2011-07-13
GB201100259D0 (en) 2011-02-23

Similar Documents

Publication Publication Date Title
CN102158526A (zh) 池组件配置的管理
US20100211663A1 (en) Management of pool member configuration
US11288053B2 (en) Conversion and restoration of computer environments to container-based implementations
US11829742B2 (en) Container-based server environments
US20150039658A1 (en) Encapsulated file management systems
EP3428811B1 (en) Database interface agent for a tenant-based upgrade system
US10089183B2 (en) Method and apparatus for reconstructing and checking the consistency of deduplication metadata of a deduplication file system
US7716377B2 (en) Clustering server providing virtual machine data sharing
Zheng et al. Wharf: Sharing docker images in a distributed file system
US6618736B1 (en) Template-based creation and archival of file systems
US11442742B2 (en) Method and system for constructing lightweight container-based user environment (CUE), and medium
US8543641B2 (en) Method and system of application delivery through application template to client device
US8615501B2 (en) Hypervisor service to provide image version control support
US8433948B2 (en) Method and apparatus for realizing application high availability
US8943501B1 (en) System and method for hierarchical interception with isolated environments
US9600269B1 (en) Deployment of database objects
US10445186B1 (en) Associating a guest application within a virtual machine to create dependencies in backup/restore policy
US9996330B2 (en) Deployment process plugin architecture
US20100332629A1 (en) Secure custom application cloud computing architecture
US10721125B2 (en) Systems and methods for update propagation between nodes in a distributed system
US10715594B2 (en) Systems and methods for update propagation between nodes in a distributed system
US10671485B2 (en) Image management for desktop virtualization
CN110134489A (zh) 应用迁移方法及装置、系统、存储介质、应用上云工具
CN110494849A (zh) 用于确定跨平台应用迁移的成功的系统和方法
Warke et al. Storage service orchestration with container elasticity

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20110817