CN102426535A - 动态进程虚拟化 - Google Patents

动态进程虚拟化 Download PDF

Info

Publication number
CN102426535A
CN102426535A CN2011103394529A CN201110339452A CN102426535A CN 102426535 A CN102426535 A CN 102426535A CN 2011103394529 A CN2011103394529 A CN 2011103394529A CN 201110339452 A CN201110339452 A CN 201110339452A CN 102426535 A CN102426535 A CN 102426535A
Authority
CN
China
Prior art keywords
virtual
assembly
visit
environment
virtual environment
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.)
Granted
Application number
CN2011103394529A
Other languages
English (en)
Other versions
CN102426535B (zh
Inventor
J·东克尔
N·雅各布森
K·雷厄森
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102426535A publication Critical patent/CN102426535A/zh
Application granted granted Critical
Publication of CN102426535B publication Critical patent/CN102426535B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox

Abstract

本文描述了动态进程虚拟化。可在运行时调节对虚拟应用资源的访问。更具体地,可根据上下文向进程提供对至少一个虚拟应用资源的访问。作为示例,可在执行期间监视并分析进程事件以确定是否应该将访问提供给该进程。

Description

动态进程虚拟化
技术领域
本申请涉及虚拟化,尤其涉及动态进程虚拟化。
背景技术
应用虚拟化是使得软件应用能够从操作系统断开耦合的技术集合。经虚拟化的应用被部署在计算机上作为服务,而非以传统方式直接安装到计算机。然而,经虚拟化的应用就好像其被安装在计算机上那样执行。应用在某些程度上被愚弄,使得相信其被安装并且直接与计算机操作系统接口。这可通过将应用封装在截取文件和应用的其他操作并将操作重定向到经虚拟化的位置的虚拟环境或虚拟化层中来实现。
应用虚拟化有若干益处。尤其,借助虚拟环境,应用相互之间以及与执行计算机之间隔离至少到一个程度。相应地,可以同时运行多个应用,这多个应用包括不兼容或冲突应用。此外,应用可以在除应用原本针对其而被设计的环境之外的环境内运行。此外,隔离保护其他应用和底层操作系统免受不好地写或故障代码。类似地,可通过将应用与操作系统隔离来提升安全。
虚拟化应用包括多个部分。第一部分是应用所占有的或资源所驻留的包文件。该包包括在计算机上运行应用所需的数据和元数据。这些资源包括但不限于文件和目录结构。在运行时,虚拟应用包括在计算机上运行的这些资源或命名空间。通过虚拟化,资源命名空间和本地命名空间可以被缝合到一起使得应用能找到它的资源。
可以根据父进程来确定正在执行的进程或应用的实例是否是虚拟的。更具体地,如果父进程是虚拟的,那么子进程继承该虚拟性。在此,是虚拟的或经虚拟化的意味着该进程访问应用资源。例如,文字处理应用需要找到其运行所需的文件。应用虚拟化可以重定向文件请求,使得应用定位它的资源。
发明内容
以下给出简化概述以图提供对所公开的主题的一些方面的基本理解。本发明内容不是详尽的概览。其不旨在标识主要/关键元素或描绘所要求保护的主题的范围。其唯一的目的是以简化形式呈现一些概念,作为稍后呈现的更具体实施方式的序言。
简言之,本发明一般涉及动态进程虚拟化。可在运行时根据上下文来调节对虚拟应用资源的访问。例如,进程可基于诸如应用编程接口(API)调用之类的进程事件在执行期间被虚拟化或换言之被提供对虚拟资源的访问。类似地,进程可基于上下文从第一虚拟环境转换到第二虚拟环境或完全地从虚拟环境中移除。尤其,延迟关于进程虚拟化的决定直到运行时扩大了应用虚拟化的范围,并因此启动先前不可用的虚拟化情景。
为了为实现上述及相关目的,本文结合下面的描述和附图来描述所要求保护的主题的某些说明性方面。这些方面指示可实现本主题的各种方式,所有这些方式旨在所要求保护的主题的范围内。结合附图阅读下面的具体实施方式,其他优点和新颖特征可变得显而易见。
附图说明
图1是促进应用虚拟化的框图。
图2是代表性确定组件的框图。
图3是代表性分析组件的框图。
图4是代表性访问组件的框图。
图5是促进应用虚拟化的方法的流程图。
图6是促进应用虚拟化的方法的流程图。
图7是进程虚拟化的方法的流程图。
图8是示出示例性使用情况的序列图。
图9是示出用于本申请的各方面的合适操作环境的示意框图。
具体实施方式
以下详细描述一般针对动态进程虚拟化,或换言之,在运行时提供对虚拟应用资源的访问。传统的应用虚拟化技术利用父进程或其他因素来确定进程在进程创建时是否是虚拟的,其中是虚拟的意味着进程访问经虚拟化的应用的资源。以下假设能简化虚拟化的多个方面但施加了某些限制:能通过检查父进程来将进程标识为在进程创建时需要访问虚拟资源。例如,取决于某些软件实施的方式,在进程创建时将进程添加到虚拟环境并非总是可行的,因为信息不可用于确定进程属于哪个虚拟环境。此外,不是进程的所有实例都需要被虚拟化,并且由于系统上可以存在一个以上的虚拟应用,并不能确定进程的实例应该附连到哪个虚拟应用。
为了解决至少以上问题,与限制在进程创建时相反,关于虚拟化的决定可以被延迟直到运行时。因此,虚拟化的范围被扩大,从而启动先前不可用的虚拟化情景,诸如但不限于,主控应用专用代码的操作系统进程的虚拟化。此外,可根据包括进程事件的上下文信息来作出关于虚拟化的决定。再者,可使用各种机制来实现进程虚拟化决定。
现在参考附图来更详细地描述本申请的各种方面,其中相似的附图标记指相似或相应的元素。然而应该理解,在此所涉及的附图和详细描述并不旨在将所要求保护的主题限制为所公开的特定形式。相反,本发明将涵盖落入所要求保护的主题的精神和范围内的所有修改、等效方案和替换方案。
初始参考图1,示出了促进应用虚拟化的系统100。系统100包括决定组件110和访问组件120。决定组件110被配置为接收、检索或以其他方式标识进程或计算的其他单元,并作出关于过程的虚拟化的决定。此外,决定组件110被配置成在运行时操作,或换言之在进程执行期间操作。此外,可根据诸如但不限于进程事件之类的上下文由决定组件110作出决定。访问组件120被配置成尤其提供对特定虚拟应用资源的进程访问。例如,一旦由决定组件110作出进程要被虚拟化的决定,访问组件120就可使得进程虚拟或更一般地向进程提供对虚拟应用资源的访问。
图2更详细地示出了代表性决定组件110。决定组件110包括上下文获取组件210和分析组件220。上下文获取组件210可接收或检索能帮助分析组件220的上下文信息。根据一实施例,上下文获取组件210能监视并捕捉一个或多个进程事件或进程事件流。作为示例但非限制,上下文获取组件210可截取进程的一个或多个应用编程接口(API)调用。此外,上下文获取组件能接收或检索进程外部的上下文信息。在一非限制示例中,能从本地或远程服务请求并接收上下文。分析组件220被配置成分析由上下文获取组件210获得的信息,以作出关于进程的虚拟化,或更特定地关于进程的实例的虚拟化的决定。例如,分析组件220可确定是否满足特定条件或准则以供进程的动态虚拟化。
转向图3,更详细地描绘了代表性分析组件220。如显示的,分析组件220被分裂成两个子组件,即访问确定组件310和环境组件320。访问确定组件310被配置成包括被用于根据例如上下文确定是否应该关于进程作出任何动作以及动作的类型的逻辑。环境组件320可利用与访问确定组件310类似的信息来标识动作将在其内发生的至少一个环境。在一实施例中,访问确定组件310可确定进程应该被虚拟化并且环境组件320可从例如多个环境中标识进程应该对其被虚拟化的特定环境。换言之,访问确定组件310确定进程应该被给予对虚拟应用资源的访问,并且环境组件320标识该特定虚拟应用资源。随后,进程能例如被转换到虚拟环境。
此外,分析组件220不限于关于进程是否应该被虚拟化作出确定。也可作出关于是否使经虚拟化的进程本地化(例如,移出虚拟环境)或虚拟进程是否应该被移动到不同的虚拟环境的决定。例如,如果基于上下文可以确定虚拟环境出问题或崩溃(例如,突然的故障)并且理想的是虚拟进程不终止,则可以决定进程被移动到虚拟环境外部。存在例如在不导致底层操作系统失败的情况下无法终止的某些系统进程。然而,如果这样的进程被虚拟化,则能够将它们从虚拟环境中移除对避免这种结果而言是有益的。随着在虚拟环境中每次移动虚拟进程,如果服务作出对应用的寿命监视并且该服务仅能在当服务出于虚拟环境中时与资源交互,那么将这样的服务从一个虚拟环境移动到另一虚拟环境是有益的。
图4描绘了代表性访问组件120,该访问组件120被配置成提供对包括但不限于虚拟环境的一个或多个环境的访问。访问组件120可以由移动组件410和代理组件420表示的至少两种方式来实现。
移动组件410被配置成将进程从第一执行环境转换到第二执行环境。在一实例中,移动组件能例如通过扩充进程以使得能在虚拟环境中交互(例如,挂钩)来将本地进程(例如,本地安装的并能在特定操作系统的顶部执行的)转换成虚拟进程(例如,本地部署为作为服务的软件(SaaS)并且可在与特定操作系统独立的环境中执行的)。类似地,移动组件410可扩充进程以使得虚拟进程能在虚拟环境外部操作或在不同的虚拟环境中操作。
代理组件420可以不同的方式提供与移动组件410类似的功能。尤其,代理组件420提供进程和虚拟环境之间的中间计算机系统或程序。代理组件420由此能接收来自进程的对虚拟资源的请求、与所请求的虚拟环境进行交互、以及向进程返回任何结果。例如,不是将进程转换成虚拟进程来使得能够对虚拟应用资源进行访问,代理可被用于提供对虚拟应用资源的非虚拟进程访问。此外,如果需要,则不必将进程移动或转换回本地环境(例如,依据操作系统的,主环境)。相反,相应的代理能被进程简单地移除或以其他方式从使用中脱离。类似地,与将进程从第一虚拟环境移动到第二虚拟环境相反,不同的代理可被用于使得进程能跨不同的虚拟环境使用。再者,与决定是否移动进程不同,决定关心的是是否与代理交互。
以上提到的系统、架构、环境等已经关于若干组件之间的交互被描述。应当理解,这样的系统和组件可包括其中指定的那些组件或子组件、指定的组件或子组件中的一些、和/或其他组件。子组件也可以被实现为通信地耦合到其他组件的组件,而非包括在父组件内的组件。此外,一个或多个组件和/或子组件可被组合到单个组件中以提供聚合的功能。可根据推模型和/或拉模型中的任一种来实现系统、组件和/或子组件之间的通信。组件还可与在此为了简要的目的没有专门描述、但被本领域的技术人员所知的一个或多个其他组件交互。
此外,如将理解的,以上揭示的系统和以下方法的各个部分可包括或包含人工智能、机器学习、或基于知识或规则的组件、子组件、过程、装置、方法、或机制(例如,支持向量机、神经网络、专家系统、贝叶斯信任网络、模糊逻辑、数据融合引擎、分类器......)。这样的组件尤其能自动化某些优选的机制或过程,从而使得系统和方法的各部分更加适应以及有效和智能。作为示例但非限制,决定组件110能使用这样的机制来考虑提供对虚拟应用资源的访问。例如,决定组件110可被配置成根据上下文确定或推断进程是否应该被虚拟化。
考虑到以上描述的示例性系统,可根据所公开主题来实现的方法将参考图5-7的流程图来描述。尽管出于说明简单的目的,各方法被显示和描述为一系列框,但应该理解和领会,所要求保护的主题不受框次序的限制,因为一些框能够以不同的次序和/或与在此描绘和描述的其它框并发地发生。而且,实现以下描述的方法不一定需要所解说的框的全体。
参考图5,示出了促进应用虚拟化的方法500。在附图标记510,接收、检索或以其他方式(例如,通过监视一个或多个上下文的源)获得或获取上下文。在一个实例中,可观察一个或多个进程事件。例如,可截取应用编程接口(API)调用。在520,关于进程是否应该被虚拟化,或换言之,进程是否应该具有对虚拟应用资源的访问,作出确定。该确定可基于许多因素。例如,在访问被授予前可需要发生预定的一组情况。在进程事件被截取的情景中,例如,确定可基于根据一个或多个事件的发生指定的虚拟化准则。如果在520,例如由于没有满足一组情况,访问没有被授予(“否”),则方法500可循环回附图标记510,其中能获取附加的上下文。如果在520确定进程应该具有访问(“是”),则方法500继续到530,在此进程被虚拟化,或换言之,被提供对虚拟应用资源的访问。此外,可以理解的是,在520的访问确定和/或在530的提供访问的一部分可包括标识为其提供访问的特定虚拟环境。例如,在多个虚拟应用或环境存在的情况下,访问应该被提供给适当的环境(例如,关于进程与之交互(例如,读或写数据)的经虚拟化的应用)。再者,注意的是,方法500也可应用于确定虚拟进程是否在不同的环境内被虚拟化或访问不同的环境。
图6是促进应用虚拟化的方法600的流程图。在附图标记610,接收、检索或以其他方式获得或获取上下文。例如,这样的上下文可关于虚拟环境的稳定性和/或期望的状态。在标记620,关于进程是否应该保持虚拟,或换言之,进程是否应该继续具有对虚拟资源的访问,作出确定。如果在620确定访问应该继续(“是”),则方法600终止。或者,如果确定访问不应该继续(“否”),则方法600继续到标记630,在此对进程终止对虚拟应用资源的访问。方法600由此可使得虚拟进程或具有对虚拟资源的访问的进程被转换成非虚拟进程,或换言之,对虚拟资源的访问终止。例如,在操作系统进程被虚拟化并且能基于上下文确定或推断出虚拟环境快要终止了(例如,突然的故障),可从虚拟环境中移除进程来避免进程的停止以及可能的操作系统不稳定。
图7描绘了进程虚拟化的方法700。在附图标记710,截取进程事件,诸如但不限于,应用编程接口(API)调用或类似的调用。在720,分析事件来确定所截取的进程事件是否是重要的,其中重要性与任何可在确定是否虚拟化进程时有用的信息有关。除了调用本身,例如,也能检查调用的参数来确定事件是否是重要的。如果事件不是重要的(“否”),则方法700循环回附图标记710,在此截取额外的进程事件。如果事件被认为是重要的(“是”),则方法700继续到730,在此事件被记录或保存到计算机可读存储介质。在附图标记740,关于虚拟化准则是否已经被满足作出确定。这样的准则能例如指定与虚拟资源的交互。此外,这样的准则能根据一个或多个进程事件来指定并且同样的,可关于进程虚拟化使用任意复杂的运行时决定。另外,在附图标记740能关于在730记录的一个或多个处理事件作出确定。如果虚拟化准则没有被满足(“否”),则方法700返回附图标记710,在此截取额外的进程事件。然而,如果虚拟化准则被满足(“是”),则方法700行进到标记750,在此进程被虚拟化,或换言之,提供对虚拟应用资源的访问(例如,通过代理)。
图8是示出与所要求保护的各方面相关联的一个示例性使用情况的序列图。该序列图是有关分析服务或更特别的受管仪器的使用。在此,可通过将计算实体或对象(诸如应用)建模为提供者内的类来将组件仪器化为受管实体。随后,可通过向受管实体发送消息来控制该受管实体。例如,与受管实体的交互可涉及实体配置、监视、诊断、以及任务自动化等等。
如显示的,管理组件(MGMT)802可以是管理提供者对象的操作系统服务。当来自诸如应用804(例如,在本地或远程机器上)之类的客户机的请求进入以在提供者上执行某些动作时,管理组件802能调用“CoCreateInstance”,该“CoCreateInstance”将启动产生被主控的进程808(例如,本地进程)的一系列其他操作系统动作806。一旦建立被主控的进程,管理组件802可发送其他命令来加载特定的提供者。一旦提供者被加载,应用804可与提供者进程进行交互以完成它的初始请求以及提交附加请求。
当管理组件802指令被主控的进程808加载特定的提供者时,可以作出关于是否虚拟化该提供者的确定。更具体地,虚拟运行时组件(VRT)810可截取对“coGetClassObject”的调用并检查调用参数来确定被主控的进程808是否应该被虚拟化并且如果是,被主控的进程808应该被移到的哪个虚拟环境。如果决定被主控的进程808应该被虚拟化,则应用虚拟化代理(AV代理)812可例如通过启动进程中的挂钩以供虚拟化来将进程转换到虚拟环境。接着,初始“CoGetClassObject”调用可被返回到管理组件802。从这点来说,与提供者的交互正与任何其他提供者类似,除了该提供者已经被移动到虚拟环境中,并且它现在能访问虚拟资源。
如在此所使用的,术语“组件”和“系统”以及它们的形式旨在表示计算机相关的实体,其可以是硬件、硬件和软件的组合、软件、或者执行中的软件。例如,组件可以是但不限于在处理器上运行的进程、处理器、对象、实例、可执行件、执行的线程、程序、和/或计算机。作为说明,在计算机上运行的应用和该计算机两者都可以是组件。一个或多个组件可驻留在进程和/或执行的线程内,并且组件可局部化在一台计算机上和/或分布在两台或多台计算机之间。
在此结合应用、进程或其他执行单元使用的术语“本地”旨在广泛地指在计算机的特定操作系统的顶部上运行的本地安装的可执行代码。如在此结合环境使用的,“本地”指计算机系统的支持本地安装的可执行代码的软件平台。由此,单词“本地”旨在与“虚拟”形成对比,其中可执行代码被部署而非安装在不直接与机器的操作系统接口的环境中。
措辞“示例性”或其各种形式在本文中用于表示用作示例、实例、或解说。在此被描述为“示例性”的任何方面或设计并不一定要被解释为相比其他方面或设计更优选或有利。此外,示例仅仅为了清楚和理解的目的而提供,并不旨在以任何方式限制或限定所要求保护的主题或本申请的相关部分。可以理解的是可以呈现变化的范围的大量其他或可替换实例,但是出于简要的目的而省略。
如本文中所使用的,术语“推断”或“推论”一般是指根据经由事件和/或数据捕捉的观测集而推理或推断系统、环境、和/或用户的状态的过程。举例而言,可采用推论来标识出具体的上下文或动作,或可生成诸状态之上的概率分布。推论可以是概率的——即,基于对数据和事件的考虑来计算感兴趣的状态上的概率分布。也可以指用于从一组事件和/或数据构成更高级事件的技术。这种推论导致从一组观察到的事件和/或存储着的事件数据构建出新事件或动作,无论这些事件在时间上是否紧密相关,也无论这些事件和数据是来自一个还是多个事件和数据源。可结合执行与所要求保护的主题相关的自动化和/或推断操作来使用各种分类方案和/或系统(例如,支持向量机、神经网络、专家系统、贝叶斯信任网络、模糊逻辑、数据融合引擎......)。
此外,就在说明书或权利要求书中使用术语“包括”、“含有”、“具有”或它们在形式上的变形而言,这一术语旨在以与术语“包含”在被用作权利要求书中的过渡词时所解释的相似的方式为包含性的。
为了提供所要求保护的主题的上下文,图9以及以下讨论旨在提供其中可实现本主题的各个方面的合适环境的简要、一般的描述。然而,该合适的环境仅仅是一示例,并不旨在对使用或功能的范围提出任何限制。
尽管以上揭示的系统和方法可以在可在一个或多个计算机上运行的计算机可执行指令的一般上下文中描述,本领域的技术人员将认识到,各方面也可结合其它程序模块等来实现。一般而言,程序模块包括执行特定任务和/或实现特定抽象数据类型的例程、程序、组件、数据结构等。此外,本领域的技术人员将理解,以上系统和方法能在各种计算机系统配置中实现,包括单处理器、多处理器或多核处理器计算机系统、迷你计算设备、大型计算机、以及个人计算机、手持式计算设备(例如,个人数字助理(PDA)、电话、手表......)、基于微处理器或可编程的消费者或工业电子设备等。各方面还能在任务由通过通信网络链接的远程处理设备来执行的分布式计算环境中实现。然而,所要求保护的主题的某些方面(如果不是所有方面)可以在独立计算机上实现。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备之一或两者中。
参考图9,示出了示例通用计算机910或计算设备(例如,台式、膝上型、服务器、手持、可编程的消费者或工业电子设备、机顶盒、游戏系统......)。计算机910包括一个或多个处理器920、存储器930、系统总线940、大容量存储950、以及一个或多个接口组件970。系统总线940通信地耦合至少以上系统组件。然而可以理解的是在其最简单的形式中,计算机910可包括耦合到存储器930的一个或多个处理器920,该一个或多个处理器执行存储在存储器930中的各种计算机可执行动作、指令、和/或组件。
处理器920可由通用目的处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FGPA)或其他可编程逻辑设备、分离的门或晶体管逻辑、分离的硬件组件、或设计为执行此处描述的功能的任何组合来实现。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何的处理器、控制器、微控制器、或状态机。处理器920还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、多核处理器、与DSP核协作的一个或更多个微处理器、或任何其他此类配置。
计算机910可包括或以其他方式与各种计算机可读介质交互来促进计算机910的控制,以实现所要求保护的主题的一个或多个方面。计算机可读介质可以是能由计算机910访问的任何可用介质,并包含易失性和非易失性介质以及可移动、不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,存储设备(例如,随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)......)、磁存储设备(例如,硬盘、软盘、磁带、录像带......)、光盘(例如,压缩盘(CD)、数字多功能盘(DVD)......)、以及固态器件(例如,固态驱动器(SSD)、闪存驱动器(例如,记忆卡、记忆棒、钥匙驱动器......)......)、或任何能被用于存储想要的信息并可由计算机910访问的其他介质。
通信介质通常以诸如载波或其他传输机制的已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任意信息传送介质。术语“已调制数据信号”指的是一个或多个特征以在信号中编码信息的方式被设定或更改的信号。作为示例而非限制,通信介质包括如有线网络或直接线连接之类的有线介质,以及如声学、RF、红外及其他无线介质之类的无线介质。以上的任何组合也应包括在计算机可读介质的范围内。
存储器930和大容量存储950是计算机可读存储介质的示例。取决于计算设备的确切配置和类型,存储器930可以是易失性的(诸如RAM)、非易失性的(诸如ROM、闪存......)或是两者的某种组合。作为示例,包括用于在计算机910的元件之间传输信息(诸如在启动期间)的基本例程的基本输入/输出系统(BIOS)可被存储在非易失性存储器中,而易失性存储可用作外部高速缓存存储器来尤其促进由处理器920进行的处理。
大容量存储950包括可移动/不可移动、易失性/非易失性计算机存储介质以供相对于存储器930而言存储大量的数据。例如,大容量存储950包括但不限于,诸如磁或光盘驱动器、软盘驱动器、闪存、固态驱动器或存储器棒之类的一个或多个设备。
存储器930和大容量存储950可包括或可在其中存储,操作系统960、一个或多个应用962、一个或多个程序模块964和数据966。操作系统960用于控制并分配计算机910的资源。应用962包括系统和应用软件之一或两者,并可经由操作系统960通过存储在存储器930和/或大容量存储950内的用于执行一个或多个动作的程序模块964和数据966来使用资源的管理。因此,根据由此提供的逻辑,应用962可将通用计算机910变换为专用机器。
可使用标准编程和/或工程技术来实现所要求保护的主题的全部或部分以产生软件、固件、硬件、或它们的结合来控制计算机以实现所揭示的功能。作为示例而非限制,决定组件110和访问组件120可以是应用962或其形式部分,并包括存储在存储器和/或大容量存储950中的一个或多个模块964和数据966,当由一个或多个处理器920执行时可实现该一个或多个模块964和数据966的功能。
根据一特定的实施例,处理器920可对应于片上系统(SOC)或之类的架构,包括(或换言之,集成)在单个集成电路基板上的硬件和软件两者。在此,处理器920可包括至少与处理器920和存储器930类似的一个或多个处理器以及存储器。传统处理器包括最少数量的硬件和软件,并最大程度地依赖外部硬件和软件。相反,处理器的SOC实现是更加强大的,因为在其内嵌入了硬件和软件,使得能够实现具对外部硬件和软件最小的依赖或不依赖于外部硬件和软件的特定功能。例如,决定组件110、访问组件120和/或相关联的功能能被嵌入到SOC架构中的硬件内。
计算机910也包括通信地耦合到系统总线940并促进与计算机910的交互的一个或多个接口组件970。作为示例,接口组件970可以是端口(例如,串行、并行、PCMCIA,USB,火线......)或接口卡(例如,声音、视频......)等等。在一示例实现中,接口组件970可被体现为用户输入/输出接口,以使得用户能通过一个或多个输入设备(例如,定点设备,诸如鼠标、轨迹球、指示笔、触摸垫、键盘、话筒、操纵杆、戏手柄、圆盘式卫星天线、扫描仪、相机、其他计算机......)向计算机910输入命令和信息。在另一示例实现中,接口组件970能被体现为输出外围接口,以向显示(例如,CRT、LCD、等离子......等离子)、扬声器、打印机、和/或其他计算机提供输出。再者,接口组件970可被体现为网络接口,以启动与其他计算设备(未显示)之间的通信,诸如通过有线或无线通信链接。
以上所已经描述的内容包括所要求保护的主题的各方面的示例。当然,出于描绘所要求保护的主题的目的而描述组件或方法的每一个可以想到的组合是不可能的,但本领域内的普通技术人员应该认识到,所要求保护的主题的许多其他组合和排列都是可能的。因此,所揭示的主题旨在涵盖所有这些落入所附权利要求书的精神和范围内的更改、修改和变型。

Claims (10)

1.一种促进应用虚拟化的方法,包括:
使用被配置成执行存储在存储器中的计算机可执行指令的至少一个处理器,以执行以下动作:
根据上下文在运行时调节进程对一个或多个虚拟应用资源的访问。
2.如权利要求1所述的方法,其特征在于,进一步包括将所述进程添加到虚拟环境中。
3.如权利要求1所述的方法,其特征在于,进一步包括将所述进程从虚拟环境中移除。
4.如权利要求1所述的方法,其特征在于,进一步包括将所述进程从第一虚拟环境移动到第二虚拟环境。
5.如权利要求1所述的方法,其特征在于,进一步包括调节与代理的交互,所述代理使得能够对所述一个或多个虚拟应用资源进行访问。
6.如权利要求1所述的方法,其特征在于,进一步包括监视一个或多个进程事件。
7.如权利要求6所述的方法,其特征在于,监视包括截取由所述进程作出的一个或多个应用编程接口(API)调用。
8.一种促进应用虚拟化的系统,包括:
耦合到存储器的处理器,所述处理器被配置成执行存储在所述存储器中的以下计算机可执行组件:
第一组件,所述第一组件被配置成在运行时提供对一个或多个虚拟应用资源的本地环境进程访问。
9.如权利要求8所述的系统,其特征在于,进一步包括第二组件,所述第二组件被配置成根据上下文控制访问。
10.如权利要求8所述的系统,其特征在于,所述进程被配置为提供者进程,所述提供者进程对计算实体进行建模以使得能够收集来自实体的信息。
CN201110339452.9A 2010-10-25 2011-10-24 用于促进应用虚拟化的系统和方法 Active CN102426535B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/911,577 US20120102505A1 (en) 2010-10-25 2010-10-25 Dynamic process virtualization
US12/911,577 2010-10-25

Publications (2)

Publication Number Publication Date
CN102426535A true CN102426535A (zh) 2012-04-25
CN102426535B CN102426535B (zh) 2016-07-13

Family

ID=45960524

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110339452.9A Active CN102426535B (zh) 2010-10-25 2011-10-24 用于促进应用虚拟化的系统和方法

Country Status (2)

Country Link
US (1) US20120102505A1 (zh)
CN (1) CN102426535B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017080350A1 (en) * 2015-11-12 2017-05-18 Huawei Technologies Co., Ltd. Systems and methods for real time context based isolation and virtualization

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9811364B2 (en) * 2013-06-13 2017-11-07 Microsoft Technology Licensing, Llc Thread operation across virtualization contexts
EP3113092B1 (en) * 2015-07-03 2021-12-01 Huawei Technologies Co., Ltd. Method and apparatus for managing virtual execution environments using contextual information fragments

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030233544A1 (en) * 2002-05-13 2003-12-18 Ulfar Erlingsson Methods and systems for providing a secure application environment using derived user accounts
CN1577251A (zh) * 2003-07-28 2005-02-09 国际商业机器公司 小服务器程序的远程协作方法和系统
CN1607505A (zh) * 2003-09-30 2005-04-20 国际商业机器公司 用于监视计算机系统中的资源的方法和系统
US20050246718A1 (en) * 2004-04-30 2005-11-03 Microsoft Corporation VEX-virtual extension framework
US20060218536A1 (en) * 2005-03-28 2006-09-28 Viatcheslav Kirilline Virtual machine extended capabilities using application contexts in a resource-constrained device
US20080320122A1 (en) * 2007-06-21 2008-12-25 John Richard Houlihan Method and apparatus for management of virtualized process collections
US20090288086A1 (en) * 2008-05-16 2009-11-19 Microsoft Corporation Local collections of tasks in a scheduler
US20100037235A1 (en) * 2008-08-07 2010-02-11 Code Systems Corporation Method and system for virtualization of software applications
CN101689181A (zh) * 2007-06-29 2010-03-31 微软公司 对命名空间灵活地区分优先级
US20100138829A1 (en) * 2008-12-01 2010-06-03 Vincent Hanquez Systems and Methods for Optimizing Configuration of a Virtual Machine Running At Least One Process

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7437734B2 (en) * 2003-08-12 2008-10-14 Hewlett-Packard Development Company, L.P. Propagating web transaction context into common object model (COM) business logic components
US7966599B1 (en) * 2006-08-29 2011-06-21 Adobe Systems Incorporated Runtime library including a virtual file system
AU2008202532A1 (en) * 2007-06-18 2009-01-08 Pc Tools Technology Pty Ltd Method of detecting and blocking malicious activity
US8171483B2 (en) * 2007-10-20 2012-05-01 Citrix Systems, Inc. Method and system for communicating between isolation environments
US8387075B1 (en) * 2008-03-28 2013-02-26 Emc Corporation Common scheduling and synchronization primitives
US20090265719A1 (en) * 2008-04-18 2009-10-22 Microsoft Corporation Application macro recording utilizing method interception

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030233544A1 (en) * 2002-05-13 2003-12-18 Ulfar Erlingsson Methods and systems for providing a secure application environment using derived user accounts
CN1577251A (zh) * 2003-07-28 2005-02-09 国际商业机器公司 小服务器程序的远程协作方法和系统
CN1607505A (zh) * 2003-09-30 2005-04-20 国际商业机器公司 用于监视计算机系统中的资源的方法和系统
US20050246718A1 (en) * 2004-04-30 2005-11-03 Microsoft Corporation VEX-virtual extension framework
US20060218536A1 (en) * 2005-03-28 2006-09-28 Viatcheslav Kirilline Virtual machine extended capabilities using application contexts in a resource-constrained device
US20080320122A1 (en) * 2007-06-21 2008-12-25 John Richard Houlihan Method and apparatus for management of virtualized process collections
CN101689181A (zh) * 2007-06-29 2010-03-31 微软公司 对命名空间灵活地区分优先级
US20090288086A1 (en) * 2008-05-16 2009-11-19 Microsoft Corporation Local collections of tasks in a scheduler
US20100037235A1 (en) * 2008-08-07 2010-02-11 Code Systems Corporation Method and system for virtualization of software applications
US20100138829A1 (en) * 2008-12-01 2010-06-03 Vincent Hanquez Systems and Methods for Optimizing Configuration of a Virtual Machine Running At Least One Process

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017080350A1 (en) * 2015-11-12 2017-05-18 Huawei Technologies Co., Ltd. Systems and methods for real time context based isolation and virtualization

Also Published As

Publication number Publication date
CN102426535B (zh) 2016-07-13
US20120102505A1 (en) 2012-04-26

Similar Documents

Publication Publication Date Title
CN107885762B (zh) 智能大数据系统、提供智能大数据服务的方法和设备
CN110297689B (zh) 智能合约执行方法、装置、设备及介质
CN101930449B (zh) 客户机、代理服务器和用于提供云存储器的方法
CN103493011A (zh) 与库操作系统的应用兼容性
CN102236578A (zh) 分布式工作流执行
CN102541661B (zh) 实现等待地址同步接口的方法和设备
CN101416214A (zh) 用于基于延续的元运行时环境的抽象执行模型
CN102708121A (zh) 异构源上的动态分布式查询执行
CN108958729B (zh) 一种数据处理方法、装置及存储介质
US7865901B2 (en) Managing memory resident objects to optimize a runtime environment
CN103455431A (zh) 移动装置的存储器管理方法和系统
CN102385513A (zh) 反应式编程的编程语言支持
US8918776B2 (en) Self-adapting software system
US8973117B2 (en) Propagating security identity information to components of a composite application
CN105637470A (zh) 混合驱动器的脏数据管理
CN109951553B (zh) 数据处理方法、系统、电子设备以及计算机可读存储介质
CN102567044A (zh) 代码部署协助
CN102591925A (zh) 以多维数据为中心的服务协议
CN102736954A (zh) 通过禁用应用来解决系统退化
CN102591710B (zh) 共享对象表示
CN105009089A (zh) 用于促进对在计算系统处的软件程序中指令原子性违反行为的动态和高效管理的机构
CN102426535A (zh) 动态进程虚拟化
JP2012208752A (ja) ライセンス管理装置、ライセンス管理方法、及びプログラム
CN105308566A (zh) 请求式可扩展定时器轮
US20160170876A1 (en) Managed runtime cache analysis

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150720

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150720

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant