CN102426535B - For promoting the system and method for application virtualization - Google Patents

For promoting the system and method for application virtualization Download PDF

Info

Publication number
CN102426535B
CN102426535B CN201110339452.9A CN201110339452A CN102426535B CN 102426535 B CN102426535 B CN 102426535B CN 201110339452 A CN201110339452 A CN 201110339452A CN 102426535 B CN102426535 B CN 102426535B
Authority
CN
China
Prior art keywords
virtual
assembly
application
access
described process
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.)
Active
Application number
CN201110339452.9A
Other languages
Chinese (zh)
Other versions
CN102426535A (en
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 Technology Licensing LLC
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 Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN102426535A publication Critical patent/CN102426535A/en
Application granted granted Critical
Publication of CN102426535B publication Critical patent/CN102426535B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

This document describes dynamic process virtualization.Can operationally regulate the access to virtual application resource.More specifically, based on context the access at least one virtual application resource can be provided to process.Exemplarily, can the term of execution monitor and analysis process event to determine whether access be supplied to this process.

Description

For promoting the system and method for application virtualization
Technical field
The application relates to virtualization, particularly relates to dynamic process virtualization.
Background technology
Application virtualization is so that software application can disconnect the technology set of coupling from operating system.It is deployed on computers as service through virtualized application, but not to be mounted directly to computer in a conventional manner.But, just look like that it mounted performs on computers through virtualized application.It is applied in some degree to be deceived so that believe its mounted and direct and computer operating system interface.This by application is encapsulated in other operations intercepting file and application and can realize operating to be redirected in the virtual environment or virtualization layer of virtualized position.
Application virtualization has some benefits.Especially, by virtual environment, application each other and and performs to isolate at least to a degree between computer.Correspondingly, it is possible to run multiple application, these multiple application include incompatible or conflict application simultaneously.Additionally, application can run in the environment except the environment that application is designed for it originally.Additionally, other application of insulation blocking and underlying operating system are write or failure code from bad.Similarly, can by application be promoted safety with operating system isolation.
Virtualization applications includes multiple part.Part I is that application occupies or that resource is resident APMB package.This bag includes running the required data of application and metadata on computers.These resources include but not limited to file and bibliographic structure.Operationally, virtual application includes these resources or the NameSpace that run on computers.By virtualizing, resource namespace and local NameSpace can be stitched into together with make to apply the resource that can find it.
Whether the example that can determine process or the application being carrying out according to parent process is virtual.If more specifically, parent process is virtual, then it is virtual that subprocess inherits this.At this, be virtual or through virtualized mean this process access application resource.Such as, text processing application needs to find it to run required file.Application virtualization can redirection file be asked so that its resource of application location.
Summary of the invention
Given below simplification is summarized to scheme to provide the basic comprehension of some aspects to disclosed theme.Present invention is not detailed general view.It is not intended to identify main/key element or describe the scope of theme required for protection.Its unique purpose is to present some concepts in simplified form, as the preamble of the more specifically embodiment presented after a while.
In short, the present invention relates generally to dynamic process virtualization.Operationally can based on context regulate the access to virtual application resource.Such as, process can based on the process event that such as application programming interface (API) calls etc the term of execution be virtualized or be in other words provided the access to virtual resource.Similarly, process can be transformed into the second virtual environment based on context from the first virtual environment or fully remove from virtual environment.Especially, postpone the scope expanding application virtualization when determining until operation about process virtual, and therefore start previous disabled virtualization sight.
In order to for addressing relevant purpose on realizing, describe some illustrative aspect of theme required for protection herein in conjunction with as explained below and accompanying drawing.The instruction of these aspects can realize the various modes of this theme, and all these modes are intended in the scope of theme required for protection.Reading in conjunction with the accompanying detailed description below, other advantages and novel feature may become apparent from.
Accompanying drawing explanation
Fig. 1 is the block diagram promoting application virtualization.
Fig. 2 is the block diagram that representativeness determines assembly.
Fig. 3 is the block diagram of delegate analysis assembly.
Fig. 4 is the representative block diagram accessing assembly.
Fig. 5 is the flow chart of the method promoting application virtualization.
Fig. 6 is the flow chart of the method promoting application virtualization.
Fig. 7 is the flow chart of the method for process virtual.
Fig. 8 is the sequence chart illustrating exemplary service condition.
Fig. 9 is the schematic block diagram of the suitable operating environment illustrating each side for the application.
Detailed description of the invention
The dynamic process virtualization that is generally directed to described in detail below, or in other words, operationally provide the access to virtual application resource.Traditional application virtualization technology utilizes parent process or other are because usually determining whether process is virtual when process creation, and the process that means being wherein virtual accesses the resource through virtualized application.It is assumed hereinafter that virtualized many aspects can be simplified but be applied with some restriction: can by checking that process identification (PID) is need when process creation to access virtual resource by parent process.Such as, depend on the mode that some software is implemented, when process creation, process is added virtual environment to and not always feasible, because information is not useable for determining which virtual environment is process belong to.Additionally, be not that all examples of process are required for being virtualized, and owing to system can exist more than one virtual application, can not determine which virtual application the example of process should be attached to.
In order to solve at least problem above, contrary with when being limited in process creation, when can be merely deferred until operation about virtualized decision.Therefore, virtualized scope is extended, thus starting previous disabled virtualization sight, such as, but not limited to, the virtualization of the operating system process of host applications private code.Additionally, can make about virtualized decision according to the contextual information including process event.Furthermore, various mechanism can be used to determine to realize process virtualization.
With reference now to accompanying drawing, being more fully described the various aspects of the application, wherein similar accompanying drawing labelling refers to similar or corresponding element.However, it is to be appreciated that be not intended as theme required for protection is limited to particular forms disclosed at this involved accompanying drawing and detailed description.On the contrary, the present invention is by all modifications contained in the spirit and scope falling into theme required for protection, equivalents and alternative.
Initial reference Fig. 1, it is shown that promote the system 100 of application virtualization.System 100 includes determining assembly 110 and accessing assembly 120.Determine that assembly 110 is configured to other unit of reception, retrieval or otherwise identification process or calculating, and make the virtualized decision about process.Additionally, determine that assembly 110 is configured to operationally operate, or in other words operate process the term of execution.Additionally, can according to the context such as, but not limited to process event etc by determining that assembly 110 is maked decision.Access assembly 120 to be configured to especially provide the process to specific virtual application resource to access.Such as, once by the decision determining that assembly 110 process of making to be virtualized, access assembly 120 and just can make process virtual or more generally provide the access to virtual application resource to process.
Fig. 2 illustrates in greater detail representative decision assembly 110.Determine that assembly 110 includes context acquiring component 210 and analytic unit 220.Context acquiring component 210 can receive or retrieve the contextual information that can help analytic unit 220.According to an embodiment, context acquiring component 210 can monitor and catch one or more process event or process event stream.Exemplarily but unrestricted, context acquiring component 210 can intercept one or more application programming interface (API) of process and call.Additionally, context acquiring component can receive or contextual information outside retrieval process.In a non-restrictive example, can ask from Local or Remote service and receive context.Analytic unit 220 is configured to analyze the information obtained by context acquiring component 210, to make the virtualization about process, or the virtualized decision of the example more specifically with regard to process.Such as, analytic unit 220 can be determined whether the dynamic virtualization that meets specified conditions or criterion for process.
Turn to Fig. 3, depict delegate analysis assembly 220 in more detail.Such as display, analytic unit 220 is split into two sub-components, namely accesses and determines assembly 310 and environment components 320.Access and determine that assembly 310 is configured to the logic including being used to determine whether make about process the type of any action and action according to such as context.Environment components 320 is available determines that with access the similar information of assembly 310 is to identify at least one environment that action will within it occur.In one embodiment, access determines that assembly 310 can determine that process should be virtualized and environment components 320 can identification process should to its specific environment being virtualized from such as multiple environment.In other words, access and determine that assembly 310 determines that process should be given the access to virtual application resource, and environment components 320 identifies this specific virtual application resource.Subsequently, process can such as be switched to virtual environment.
Additionally, whether analytic unit 220 is not limited to should be virtualized to make about process determine.Also may be made regarding whether to make through whether virtualized process localization (such as, removal virtual environment) or virtual process should be moved to the decision of different virtual environments.Such as, may determine that virtual environment goes wrong or collapses (such as, unexpected fault) and it is desirable to virtual process and do not terminate if based on context, then may decide that process is moved to outside virtual environment.There is some system process that such as cannot terminate when being not resulted in underlying operating system failure.But, if such process is virtualized, then it is useful for can they being removed from virtual environment avoiding this result.Along with mobile virtual process each in virtual environment, if the adaptive life monitor to application is made in service and this service is only capable of mutual with resource when servicing in for virtual environment, then from a virtual environment, such service is moved to another virtual environment is useful.
Fig. 4 depicts representative access assembly 120, and this access assembly 120 is configured to provide the access to the one or more environment including but not limited to virtual environment.At least two mode that access assembly 120 can be represented by moving assembly 410 and Agent components 420 realizes.
Moving assembly 410 is configured to that from first, process is performed context conversion and performs environment to second.In one example, moving assembly can such as by expansion process so that can in virtual environment mutual (such as, hook) by local process (such as, locally-installed and can perform at the top of specific operation system) convert to virtual process (such as, local disposition be the software (SaaS) as service and can with the environment of specific operation system independence in perform).Similarly, the extendible process of moving assembly 410 is so that virtual process can operate in virtual environment peripheral operation or in different virtual environments.
Agent components 420 can provide the function similar with moving assembly 410 in a different manner.Especially, Agent components 420 provides the intermediary computer systems between process and virtual environment or program.Agent components 420 thus can receive from process the request to virtual resource and requested virtual environment interacts and to process return any result.Such as, not being process converts to virtual process make it possible to virtual application resource is conducted interviews, agency can be used for providing the non-virtual process to virtual application resource to access.Additionally, if it is required, then process need not be moved or converts back home environment (such as, according to operating system, primary environment).On the contrary, corresponding agency can be removed simply by process or otherwise depart from from use.Similarly, contrary with process is moved to the second virtual environment from the first virtual environment, different agencies can be used for so that process can use across different virtual environments.Furthermore, and decide whether that moving processes is different, determine it is of concern that whether mutual with agency.
Systems mentioned above, framework, environment etc. are already in connection with being described alternately between some assemblies.Should be appreciated that some in those assemblies or sub-component, the assembly specified or sub-component that such system and assembly can include wherein specifying and/or other assemblies.Sub-component can also be implemented as the assembly being communicably coupled to other assemblies, but not includes the assembly in parent component.Additionally, one or more assemblies and/or sub-component can be incorporated in single component to provide the function of polymerization.The communication between system, assembly and/or sub-component can be realized according to any one pushing away in model and/or draw model.Assembly also can not describe but by other component interactions one or more known to those of skill in the art with in this case brief purpose specially.
In addition, as will be appreciated, system disclosed above and the various piece of following methods can include or comprise artificial intelligence, machine learning or knowledge based or the assembly of rule, sub-component, process, device, method or mechanism (such as, support vector machine, neutral net, specialist system, Bayesian Belief Networks, fuzzy logic, data fusion engines, grader ...).Such assembly especially can automatization some preferred mechanism or process so that each several part of system and method adapts to and effective and intelligent more.Exemplarily but unrestricted, determine that assembly 110 can use such mechanism to consider the offer access to virtual application resource.Such as, determine that assembly 110 can be configured to based on context to determine or whether deduction process should be virtualized.
Consider example described above sexual system, according to the method that subject realizes, the flow chart of reference Fig. 5-7 can be described.While for purposes of simplicity of explanation; each method is shown and described as a series of frame; but it is understood that and understand, theme required for protection is by the restriction of frame order, because some frames can in a different order and/or occur concomitantly with other frame described at this and describe.And, it is achieved methods as described below is not necessarily required to the entirety of the frame explained orally.
With reference to Fig. 5, it is shown that promote the method 500 of application virtualization.At accompanying drawing labelling 510, receive, retrieve or otherwise obtain (such as, by monitoring the source of one or more context) or obtain context.In an example, the one or more process event of observable.Such as, application programming interface (API) can be intercepted call.520, about whether process should be virtualized, or in other words, whether process should have the access to virtual application resource, makes and determining.This is determined can based on many factors.Such as, can need one group of predetermined situation before access is awarded.In the sight that process event is intercepted, for instance, it is determined that can based on the virtualization criterion specified according to one or more events.If 520, for instance owing to not meeting one group of situation, access and ("No") is not awarded, then method 500 is recycled into accompanying drawing labelling 510, wherein can obtain additional context.If determining that process should have access ("Yes") 520, then method 500 proceeds to 530, is virtualized in this process, or in other words, is provided the access to virtual application resource.Further, it is to be appreciated that 520 access determine and/or 530 provide the part accessed can include being designated it to provide the specific virtual environment accessed.Such as, deposit in case in multiple virtual applications or environment, access be provided to suitable environment (such as, about process interact (such as, reading or writing data) through virtualized application).Furthermore, it is noted that method 500 also apply be applicable to determine whether virtual process is virtualized in different environment or accesses different environment.
Fig. 6 is the flow chart of the method 600 promoting application virtualization.At accompanying drawing labelling 610, receive, retrieve or otherwise obtain or obtain context.Such as, such context can about the stability of virtual environment and/or desired state.At labelling 620, whether should keep virtual about process, or in other words, whether process should continue have the access to virtual resource, makes and determining.If determining that access should continue ("Yes") 620, then method 600 terminates.Or, if it is determined that access and should not continue ("No"), then method 600 proceeds to labelling 630, at this, process is terminated the access to virtual application resource.Method 600 thus can make virtual process or have the process of the access to virtual resource and be converted into non-virtual process, or in other words, the access of virtual resource terminated.Such as, it is virtualized in operating system process and can determine based on context or infer that virtual environment soon terminates (such as, unexpected fault), process can be removed from virtual environment unstable to the stopping and possible operating system avoiding process.
Fig. 7 depicts the method 700 of process virtual.At accompanying drawing labelling 710, intercept process event, such as, but not limited to, application programming interface (API) is called or similar calling.720, analysis event determines whether the process event intercepted is important, wherein importance with any can when determining whether virtualization process useful information-related.Except calling itself, for instance, also can check that the parameter called is to determine whether event is important.If event is not important ("No"), then method 700 loops back accompanying drawing labelling 710, intercepts extra process event at this.If event is considered as important ("Yes"), then method 700 proceeds to 730, is recorded or saved computer-readable recording medium in this event.At accompanying drawing labelling 740, whether it is satisfied to make about virtualization criterion and has determined.It is mutual that such criterion can such as be specified with virtual resource.Additionally, such criterion can be specified and same according to one or more process event, determine when can use arbitrarily complicated operation about process virtualization.Determine it addition, can make about the one or more process events at 730 records at accompanying drawing labelling 740.If virtualization criterion is not satisfied ("No"), then method 700 returns accompanying drawing labelling 710, intercepts extra process event at this.But, if virtualization criterion is satisfied ("Yes"), then method 700 advances to labelling 750, is virtualized in this process, or in other words, it is provided that the access (such as, by acting on behalf of) to virtual application resource.
Fig. 8 is the sequence chart illustrating the exemplary service condition being associated with each side required for protection.This sequence chart is the use about Analysis Service or more particularly managed instrument.At this, the class by computational entity or object (such as application) are modeled as in supplier can be passed through assembly instrument is turned to managed entity.Subsequently, can by sending the message to control this managed entity to managed entity.Such as, with managed entity can relate to alternately entity configuration, monitor, diagnosis and task automation etc..
Such as display, management assembly (MGMT) 802 can be the operating system service of management supplier's object.When from such as applying 804 (such as, on Local or Remote machine) etc client computer request enter to perform some action on supplier time, management assembly 802 can call " CoCreateInstance ", should " CoCreateInstance " produce starting by other operating system actions 806 a series of of the process 808 (such as, local process) of master control.Once set up by the process of master control, management assembly 802 can send other orders and load specific supplier.Once supplier is loaded, application 804 can interact its initial request with provider process and submit additional request to.
When managing assembly 802 instruction and being loaded specific supplier by the process 808 of master control, it is possible to make about whether the determination virtualizing this supplier.More specifically, during virtual operation, assembly (VRT) 810 can intercept calling and checking that call parameters is determined and whether should be virtualized by the process 808 of master control and if it is, which virtual environment that should be moved to by the process 808 of master control " coGetClassObject ".If it is determined that should be virtualized by the process 808 of master control, then process such as can be transformed into virtual environment by the hook in startup process for virtualizing by application virtualization agency (AV agency) 812.Then, initial " CoGetClassObject " calling can be returned to management assembly 802.From this point of view, mutual just similar with any other supplier with supplier, except this supplier has been shifted in virtual environment, and it can access virtual resource now.
As used in this, term " assembly " is intended to indicate that, with " system " and their form, the entity that computer is relevant, and it can be hardware, the combination of hardware and software, software or executory software.Such as, assembly can be but not limited to run on a processor process, processor, object, example, can executive item, the thread of execution, program and/or computer.Can be both assembly as explanation, the application run on computers and this computer.One or more assemblies can reside in the thread of process and/or execution, and assembly can localize on one computer and/or be distributed between two or multiple stage computer.
The term " this locality " used at this connected applications, process or other performance elements is intended to broadly refer to the locally-installed executable code of operation on the top of the specific operation system of computer.As used at this combining environmental, " this locality " refers to the software platform of the locally-installed executable code of the support of computer system.Thus, word " this locality " is intended to be contrasted with " virtual ", and wherein executable code is deployed but not is arranged on directly and in the environment of the operating system interface of machine.
Wording " exemplary " or its various forms are used herein to mean that as example, example or explain orally.It is described as any aspect of " exemplary " at this or design is not necessarily to be interpreted to compare other aspects or design more preferably or favorably.Additionally, example provides just to the purpose that is aware and understand, it is no intended to limit or limit the relevant portion of theme required for protection or the application by any way.It is understandable that a large amount of other or the replaceable examples of the scope that can present change, but omits for sake of brevity.
As used herein, term " deduction " or " inference " generally refer to the process of the state of reasoning or inference system, environment and/or user according to the observation collection via event and/or data capture.For example, inference can be adopted to identify concrete context or action, maybe can generate the probability distribution on all states.Inference can be probability namely be based on the consideration to data and event to calculate the probability distribution in state interested.The technology for constituting higher level event from one group of event and/or data can also be referred to.This inference causes constructing new events or action from one group of event observed and/or the event data that stores, and no matter whether these events are closely related in time, and also no matter these events and data originate from one or multiple event and data source.In combinations with perform the automatization relevant to theme required for protection and/or inference operations use various classification schemes and/or system (such as, support vector machine, neutral net, specialist system, Bayesian Belief Networks, fuzzy logic, data fusion engines ...).
In addition, for using term " including ", " containing ", " having " or their deformation in form in description or claims, this term is intended in the similar mode explained during to the term " comprising " transition word in being used as claims for inclusive.
In order to provide brief, the general description of proper environment that the context of theme required for protection, Fig. 9 and following discussion aim to provide the various aspects that wherein can realize this theme.But, this suitable environment is only an example, it is no intended to the scope of use or function is proposed any restriction.
Although system and method disclosed above described in the general context of the computer executable instructions that can run on one or more computers, can person of skill in the art will appreciate that, each side also realizes in combinations with other program module etc..It is said that in general, program module includes performing particular task and/or realizing the routine of particular abstract data type, program, assembly, data structure etc..In addition, it should be appreciated by those skilled in the art that, system above and method can realize in various computer system configurations, including uniprocessor, multiprocessor or polycaryon processor computer system, mini computing equipment, mainframe computer and personal computer, Handheld computing device (such as, personal digital assistant (PDA), phone, wrist-watch ...), based on microprocessor or programmable consumer or industrial electrical equipment etc..Each side can also realize in task is by the distributed computing environment performed by the remote processing devices of communication network links.But, some aspect (if not all aspects) of theme required for protection can realize on stand-alone computers.In a distributed computing environment, program module can be located at one of local and remote memory storage device or both in.
With reference to Fig. 9, it is shown that example general computer 910 or computing equipment (such as, desk-top, on knee, server, consumer hand-held, programmable or industrial electrical equipment, Set Top Box, games system ...).Computer 910 includes one or more processor 920, memorizer 930, system bus 940, massive store 950 and one or more interface module 970.System bus 940 is communicatively coupled at least system above assembly.However it is appreciated that in its simplest form, computer 910 can include the one or more processors 920 being coupled to memorizer 930, and the various computers that these one or more processors perform to be stored in memorizer 930 can perform action, instruction and/or assembly.
Processor 920 can by general purpose processor, digital signal processor (DSP), special IC (ASIC), field programmable gate array (FGPA) or other programmable logic devices, the door of separation or transistor logic, the nextport hardware component NextPort of separation or be designed as any combination performing function described herein and realize.General processor can be microprocessor, but in alternative, and this processor can be any processor, controller, microcontroller or state machine.Processor 920 is also implemented as the combination of computing equipment, for instance one or more microprocessor that DSP cooperates with DSP core with the combination of microprocessor, multi-microprocessor, polycaryon processor or any other this type of configuration.
Computer 910 can include or otherwise promote the control of computer 910 alternately with various computer-readable mediums, to realize one or more aspects of theme required for protection.Computer-readable medium can be any usable medium that can be accessed by computer 910, and comprises volatibility and non-volatile media and removable, irremovable medium.Exemplarily unrestricted, computer-readable medium can include computer-readable storage medium and communication media.
Computer-readable storage medium includes the volatibility that realizes for any method of the information storing such as computer-readable instruction, data structure, program module or other data etc or technology and medium non-volatile, removable and irremovable.Computer-readable storage medium includes but not limited to, storage device is (such as, random access memory (RAM), read only memory (ROM), Electrically Erasable Read Only Memory (EEPROM) ...), magnetic storage apparatus is (such as, hard disk, floppy disk, tape, video-tape ...), CD is (such as, compact disk (CD), digital versatile disc (DVD) ...), and solid-state devices is (such as, solid-state drive (SSD), flash drive is (such as, memory card, memory stick, Keyed actuator ...) ...), or any other media that can be used to store the information wanted and can be accessed by computer 910.
Communication media generally embodies computer-readable instruction, data structure, program module or other data with the modulated message signal of such as carrier wave or other transmission mechanisms, and includes random information transmission medium.Term " modulated message signal " refers to the signal that one or more feature is set in the way of encoding information in the signal or changes.Exemplarily unrestricted, communication media includes such as the wire medium of cable network or directly line connection etc, and such as the wireless medium of acoustics, RF, infrared and other wireless mediums etc.Above any combination also should include in the scope of computer-readable medium.
Memorizer 930 and massive store 950 are the examples of computer-readable recording medium.Depending on exact configuration and the type of computing equipment, memorizer 930 can be volatibility (such as RAM), non-volatile (such as ROM, flash memory ...) or some combination of the two.Exemplarily, basic input/output (BIOS) including the basic routine for transmission information between the element of computer 910 (all as during start-up) can be stored in nonvolatile memory, and volatile storage can be used as the process that external cache especially promotes to be undertaken by processor 920.
Massive store 950 includes removable/nonremovable, volatile/nonvolatile computer storage media for storing substantial amounts of data for memorizer 930.Such as, massive store 950 includes but not limited to, one or more equipment of such as magnetically or optically disk drive, floppy disk, flash memory, solid-state drive or memory stick etc.
Memorizer 930 and massive store 950 can include or can store wherein, operating system 960, one or more application 962, one or more program module 964 and data 966.Operating system 960 is for controlling and distribute the resource of computer 910.Application 962 include one of system and application software or both, and can via operating system 960 by being stored in the management using resource for the program module 964 and data 966 performing one or more action in memorizer 930 and/or massive store 950.Therefore, according to the logic thus provided, general purpose computer 910 can be transformed to special purpose machinery by application 962.
Standard program and/or engineering can be used to realize all or part of to produce software, firmware, hardware or their combination to control computer to realize disclosed function of theme required for protection.Exemplarily unrestricted, determine that assembly 110 and access assembly 120 can be application 962 or its form part, and include being stored in the one or more modules 964 in memorizer and/or massive store 950 and data 966, the function of these one or more modules 964 and data 966 can be realized by one or more processors 920 when being performed.
According to a specific embodiment, processor 920 may correspond to SOC(system on a chip) (SOC) or etc framework, including (or in other words, integrated) both hardware and softwares on single integrated circuit substrate.At this, processor 920 can include at least similar with processor 920 and memorizer 930 one or more processors and memorizer.Conventional processors includes minimal number of hardware and software, and farthest relies on external hardware and software.On the contrary, it is more powerful that the SOC of processor realizes, because within it embedded in hardware and software, enabling realize having the specific function relying on or not relying on external hardware and software that outside hardware and software is minimum.Such as, determine that assembly 110, access assembly 120 and/or the function being associated can be embedded in the hardware in SOC framework.
Computer 910 also includes being communicably coupled to system bus 940 and promotes and mutual one or more interface modules 970 of computer 910.Exemplarily, interface module 970 can be port (such as, serial, parallel, PCMCIA, USB, live wire ...) or interface card (such as, sound, video ...) etc..In an example implementation, interface module 970 can be embodied as user's input/output interface, so that user can pass through one or more input equipments (such as, pointing device, such as mouse, trace ball, instruction pen, touch pads, keyboard, microphone, stick, play handle, satellite dish, scanner, camera, other computers ...) order and information to computer 910 input.In another example implementation, interface module 970 can be embodied as output peripheral interface, with to display (such as, CRT, LCD, plasma ... plasma), speaker, printer and/or other computers output is provided.Furthermore, interface module 970 can be embodied as network interface, to start the communication between other computing equipment (not shown)s, is such as linked by wired or wireless communication.
The content having been described above includes the example of each side of theme required for protection.Certainly; for describe theme required for protection purpose and describe assembly or method each it is contemplated that combination be impossible; but one of ordinary skilled in the art is it should be appreciated that other combination and permutation many of theme required for protection are all possible.Therefore, disclosed theme is intended to the change in all these spirit and scope falling into appended claims, amendment and modification.

Claims (8)

1. the method promoting application virtualization, including:
Use at least one processor being configured to perform storage computer executable instructions in memory, to perform following action:
According to one or more process event non-virtual process the term of execution make the decision whether being virtualized about described process;
After making the decision that described process to be virtualized, described process the term of execution regulate the access to one or more virtual application resources of the described process.
2. the method for claim 1, it is characterised in that farther include to add in virtual environment described process to.
3. the method for claim 1, it is characterised in that farther include to remove described process from virtual environment.
4. the method for claim 1, it is characterised in that farther include from the first virtual environment, described process is moved to the second virtual environment.
5. the method for claim 1, it is characterised in that farther including adjustment mutual with what act on behalf of, described agency makes described process can the one or more virtual application resource be conducted interviews.
6. the method for claim 1, it is characterised in that farther include to monitor one or more process event.
7. method as claimed in claim 6, it is characterised in that monitor that including intercepting the one or more application programming interface (API) made by described process calls.
8. promote a system for application virtualization, including:
Being coupled to the processor of memorizer, described processor is configured to perform storage machine calculated below in which memory can executive module:
First assembly, described first assembly is configured to operationally provide the home environment process to one or more virtual application resources to access;
Second assembly, described second assembly be configured to according to one or more process event non-virtual process the term of execution make the decision whether being virtualized about described process and control the access to the one or more virtual application resource of the described process.
CN201110339452.9A 2010-10-25 2011-10-24 For promoting the system and method for application virtualization Active CN102426535B (en)

Applications Claiming Priority (2)

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

Publications (2)

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

Family

ID=45960524

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110339452.9A Active CN102426535B (en) 2010-10-25 2011-10-24 For promoting the system and method for application virtualization

Country Status (2)

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

Families Citing this family (3)

* 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
US20170139740A1 (en) * 2015-11-12 2017-05-18 Futurewei Technologies, Inc. Systems and Methods for Real Time Context Based Isolation and Virtualization

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7191469B2 (en) * 2002-05-13 2007-03-13 Green Border Technologies Methods and systems for providing a secure application environment using derived user accounts
CN1577251B (en) * 2003-07-28 2012-07-18 国际商业机器公司 Long-distance cooperating method and system for small server program
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
US6959264B2 (en) * 2003-09-30 2005-10-25 International Business Machines Corporation Autonomous computing probe agent
US7574709B2 (en) * 2004-04-30 2009-08-11 Microsoft Corporation VEX-virtual extension framework
US7895594B2 (en) * 2005-03-28 2011-02-22 Freescale Semiconductor, Inc. Virtual machine extended capabilities using application contexts in a resource-constrained device
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
US7685251B2 (en) * 2007-06-21 2010-03-23 International Business Machines Corporation Method and apparatus for management of virtualized process collections
US8862590B2 (en) * 2007-06-29 2014-10-14 Microsoft Corporation Flexible namespace prioritization
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
US8566830B2 (en) * 2008-05-16 2013-10-22 Microsoft Corporation Local collections of tasks in a scheduler
US8434093B2 (en) * 2008-08-07 2013-04-30 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

Also Published As

Publication number Publication date
US20120102505A1 (en) 2012-04-26
CN102426535A (en) 2012-04-25

Similar Documents

Publication Publication Date Title
US10162708B2 (en) Fault tolerance for complex distributed computing operations
CN109597677B (en) Method and apparatus for processing information
US10936350B2 (en) Active drive API
CN103493011A (en) Application compatibility with library operating systems
CN101930449A (en) Client computer, acting server and be used to provide the method for cloud storage
EP4009170B1 (en) Data management
US10817319B1 (en) Compatibility-based configuration of hardware with virtualization software
US20200012572A1 (en) System and method for critical virtual machine protection
CN111049904A (en) Method and equipment for monitoring multiple public cloud resources
CN102426535B (en) For promoting the system and method for application virtualization
US20130311659A1 (en) Controlling access to a shared storage system
US9880849B2 (en) Allocation of load instruction(s) to a queue buffer in a processor system based on prediction of an instruction pipeline hazard
JP2012208752A (en) License management device, license management method, and program
US9924002B1 (en) Managing stateless processes
CN110704851A (en) Public cloud data processing method and device
EP3391208A2 (en) Automatic system response to external field-replaceable unit (fru) process
CN105677481A (en) Method and system for processing data and electronic equipment
TW201133238A (en) Automatic detection of stress condition
CN111868698A (en) Free space direct connection
CN114047976A (en) Plug-in loading method and device, electronic equipment and storage medium
CN112912848B (en) Power supply request management method in cluster operation process
CN110321205B (en) Method and equipment for managing hosted program in hosted program
US11593035B2 (en) Managing client devices associated with storage nodes in a scale-out storage system
KR20110068302A (en) System and method for controlling access based on shell in unix/linux system
AU2015249127B2 (en) Fault tolerance for complex distributed computing operations

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