Example embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
Other features of the present embodiments will be apparent from the accompanying drawings and from the detailed description that follows.
A method and apparatus of an unintrusive plug and play application virtualization platform is disclosed. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the various embodiments. It will be evident, however, to one skilled in the art that the various embodiments may be practiced without these specific details.
In one embodiment, a method includes capturing dependencies (e.g., dependencies 106 of
In another embodiment, a method, includes capturing a host state of a host system immediately prior to directly installing an application program to a removable device (e.g., a mobile device 110 of
In yet another embodiment, a removable device includes an installation module (e.g., an installation module 208 of
The application program 104 may be a program designed to perform a specific function for the user and/or for another application program. For example, the application program 104 may be a word processor, a database program, a web browser, a development tool, a drawing, paint, and/or image editing program and/or a communication program. The dependencies 106 may allow the user to control the circumstances under which an application may be installed and/or an action may be executed. The desktop environment 108 may offer a graphical user interface to the host system 102 typically providing icons, windows, toolbars, folders, wallpapers, and drag and drop features on the host system 102.
The mobile device 110 may be a USB drive (e.g., an optical disk such as a CD, a laser disk, a mini disk, a DVD, a blue-ray disk, etc.) with a flash memory for launching the application program 104 on the guest system 114. The application virtualization platform 112 may be a platform on which the virtual application program 116 runs. The guest system 114 may be a guest computer, a guest laptop, a guest PDA, and/or other device that acts as a client to the host system. The virtual application program 116 may be an application program of the mobile device 110 that runs on the guest system 114. The virtual dependencies 118 may allow the user to control circumstances on the guest computer on which the virtual application program 116 may be executed.
The virtual desktop environment 120 may offer a virtual graphical user interface of the virtual application program 116 on the guest system 114 through providing the icons, windows, toolbars, folders, wallpapers, and/or drag and drop features. The guest application program 122 may be a program designed to perform a specific function directly for the user and/or another application program supporting the virtual application program 116. The guest desktop environment 124 may be a graphical user interface of the guest system 114 which features icons, windows, toolbars, folders, wallpapers, and/or a drag and/or drop function.
In example embodiment illustrated in
For example, dependencies (e.g., the dependencies 106) of an application program (e.g., the application program 104) associated with a host system (e.g., the host system 102) may be captured. The application program, a desktop environment (e.g., the desktop environment 108) of the host system, and the dependencies may be directly replicated on a removable device (e.g., the mobile device 110). In addition, the dependencies may be resurrected to run the application program under the desktop environment agnostic to a guest operating system (OS) of the guest system (e.g., the guest system 114 of
Furthermore, the desktop element of the host system may be duplicated to the desktop environment of the removable device, wherein the at least one desktop element to include at least one of the icon, the toolbar, the wall paper, and/or the document. Also, a user name and a password associated with the removable device may be stored to access the desktop environment when the removable device is coupled to the guest system.
Moreover, the application program may be executed faster on the guest system than on the host system by at least 20% through a performance tuning (e.g., the performance tuning may be obtained through at least one of a code optimization, a load balancing, a caching strategy, and a distributed computing) of an application program interface (API) of the application program embedded in the removable device. The desktop environment of the removable device and/or the desktop environment of the guest system may be switched.
Furthermore, the application program of the removable device may be isolated from any application program of the guest system to prevent any conflict between the application program of the removable device and the any application program (e.g., the guest application program 122) of the guest system. In addition, the host system and the guest system may be a personal computer and the removable device may be a USB drive with a flash memory.
Also, the host state (e.g., which may include a state of a registry and/or a state of a file system) of the host system may be captured immediately prior to directly installing the application program to the removable device. Also, the host state and changes of the host state to the removable device may be replicated based on the changes of the host state captured during the installing the application program to the removable device. The changes may be deleted and the dynamically linked library (DLL) of the host state may be reinstated to the host system to restore the host state to the host system.
Furthermore, a guest state (e.g., which may include at least a state of a registry and a state of a file system) of a guest system may be captured immediately prior to coupling the removable device to the guest system and changes of the guest state during the coupling. Also, the changes may be deleted and the dynamically linked library (DLL) of the guest state may be reinstated to the guest system to restore the guest state to the guest system.
In addition, the changes of the registry of the host system and the changes of the registry of the guest system may be captured through turning on a security auditing and capturing the changes of the file system of the host system and the changes of the file system of the guest system thorough activating a file system watcher. Moreover, the changes to the removable device may be replicated when the removable device is decoupled from the guest system.
The installation module 202 may replicate to the removable device through the host system (e.g., the host system 102 of
The acquisition module 206 may detect and/or capture the dependencies (e.g., the dependencies 106 of
The layer module 214 may create a rule based virtualization layer through hooking the application program interface (API) of the application program and installing at least one handler associated with the application program. The virtualization module 216 may create the virtual environment through virtualizing calls associated with a registry, a file system, and the API of the application program such that the application program operates under the virtual environment using the at least one handler.
In example embodiment illustrated in
For example, an installation module (e.g., the installation module 202) of an application virtualization platform (e.g., the application virtualization platform 112 of
In addition, a customization module (e.g., the customization module 204) may selectively replicate the desktop environment of the host system to the removable device through enabling a user of the removable device to selectively import a plurality of desktop elements to the removable device. Furthermore, an acquisition module (e.g., the acquisition module 206) of the installation module may detect and capture any one of the dependency of the application program. Also, an interface detection module (e.g., the interface detection module 210) of the link module to determine at least one of a coupling and a decoupling of the removable device from the guest system.
A layer module (e.g., the layer module 214) of the execution module may create a rule based virtualization layer through hooking the application program interface (API) of the application program and installing at least one handler associated with the application program. Moreover, a virtualization module (e.g., the virtualization module 216) of the execution module to create the virtual environment through virtualizing calls associated with a registry, a file system, and the API of the application program such that the application program operates under the virtual environment using the at least one handler.
In operation 310, a state of the host system (e.g., which hosts the desktop environment and/or the application program) may be saved. In operation 312, the host system to capture dependencies (e.g., the dependencies 106 of
In one example embodiment, the user name and the password communicated to the removable device may be matched to authenticate a user of the removable device when the removable device is coupled to the guest system.
In operation 504, calls associated with a registry, a file system, and an API of each of the one or more application program may be virtualized such that the one or more application programs run on a virtual environment using the one or more handlers. In operation 506, multiple types of documents may be embedded using an object linking and embedding (OLE). In operation 508, one or more application program may be isolated to run on the virtual environment such that the one or more application programs do not conflict with other application of the guest system.
The internet explorer favorites 610 may enable a user to add a page as one of the user's favorites. My documents 614 may be a special folder on a computer hard drive that is commonly used to store the user's documents (e.g., my music 620, my picture 620, my skype pictures 620, my videos 620, Symantec 620, and other files). The select none 616 and select all 618 may be an option to select a choice of the user. The option back 622 may enable the user to view a previous page of the mobileinstaller 602. The next 624 may enable the user to view subsequent pages of the mobileinstaller 602. The option cancel 626 may enable the user to exit from the mobileinstaller 602.
The diagrammatic system view 700 may indicate a personal computer and/or a data processing system in which one or more operations disclosed herein are performed. The processor 702 may be microprocessor, a state machine, an application specific integrated circuit, a field programmable gate array, etc. (e.g., Intel® Pentium® processor). The main memory 704 may be a dynamic random access memory and/or a primary memory of a computer system.
The static memory 706 may be a hard drive, a flash drive, and/or other memory information associated with the data processing system. The bus 708 may be an interconnection between various circuits and/or structures of the data processing system. The video display 710 may provide graphical representation of information on the data processing system. The alpha-numeric input device 712 may be a keypad, keyboard and/or any other input device of text (e.g., a special device to aid the physically handicapped). The cursor control device 714 may be a pointing device such as a mouse.
The drive unit 716 may be a hard drive, a storage system, and/or other longer term storage subsystem. The signal generation device 718 may be a bios and/or a functional operating system of the data processing system. The network interface device 720 may be a device that may perform interface functions such as code conversion, protocol conversion and/or buffering required for communication to and from a network. The machine readable medium 722 may provide instructions on which any of the methods disclosed herein may be performed. The instructions 724 may provide source code and/or data code to the processor 702 to enable any one/or more operations disclosed herein.
In example embodiment illustrated in
In operation 908, the dependencies may be resurrected to run the application program under the desktop environment agnostic to a guest operating system (OS) of the guest system while the removable device is coupled to the guest system. In operation 910, the application of the removable device may be isolated from any application program of the guest system to prevent any conflict between the application program of the removable device and the any application program of the guest system.
In operation 1008, a guest state of the guest system (e.g., the guest system 114 of
Although the present embodiments have been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the various embodiments. For example, the various devices, modules, analyzers, generators, etc. described herein may be enabled and operated using hardware circuitry (e.g., CMOS based logic circuitry), firmware, software and/or any combination of hardware, firmware, and/or software (e.g., embodied in a machine readable medium).
For example the installation module 202, the customization module 204, the acquisition module 206, the link module 208, the interface detection module 210, the execution module 212, the layer module 214, the virtualization module 216 and other modules of
In addition, it will be appreciated that the various operations, processes, and methods disclosed herein may be embodied in a machine-readable medium and/or a machine accessible medium compatible with a data processing system (e.g., a computer system), and may be performed in any order (e.g., including using means for achieving the various operations). Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.
This application claims priority form provisional application 60,823,635 titled “Application Virtualization for Application Portability with Plug and Play” filed on Aug. 25, 2006
Number | Date | Country | |
---|---|---|---|
60823635 | Aug 2006 | US |