Abstract:
POE is a suite of programs that enables a user to retain program, data, and environment settings across multiple windows or unix based environments. POE enables a user to take programs, data, environmental and registry settings from a windows or unix environment and utilize them from a remote storage source.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS  
       [0001]     This application claims priority from U.S. Provisional Application 60/504,565 filed on Sep. 18, 2003. This application also claims priority from U.S. Provisional Application 60/541,877 filed on Feb. 4, 2004. 
     
    
     BACKGROUND AND SUMMARY OF THE INVENTION  
       [0002]     This application relates to the Portable Operating Environment (hereafter referred to as POE). POE is a suite of programs that enables a user to retain program, data, and environment settings across multiple windows or unix based environments.  
         [0003]     POE enables a user to take programs, data, environmental and registry settings from a windows or unix environment and utilize them from a remote storage source.  
         [0004]     The user is assumed to have installed programs on their default windows or unix machine as well as data and any configuration or default settings and alterations they so desire.  FIG. 1  illustrates how the user may then use POE in order to:  
         [0005]     Store settings, programs, and data to a remote or portable drive.  
         [0006]     Create an instance of the user&#39;s stored environment on a local windows machine.  
         [0007]     Remove an instance of the user&#39;s stored environment and restore to previous registry settings and environment.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0008]      FIG. 1  is an illustration of the POE functional layout.  
         [0009]      FIG. 2  is a flowchart of the POE configuration and setup.  
         [0010]      FIG. 3  is a flowchart of the POE Environment Capture.  
         [0011]      FIG. 4  is a flowchart of the POE Invoke Environment.  
         [0012]      FIG. 5  is an illustration of the system registry before invoking POE environment.  
         [0013]      FIG. 6  is an illustration of the system registry after invoking POE environment.  
         [0014]      FIG. 7  is an illustration of the POE Restore Environment.  
         [0015]      FIG. 8  is an illustration of the potential use of POE. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [heading-0016]     POE Configuration and Setup  
         [0017]     The POE configuration and setup is illustrated as a flowchart in  FIG. 2 . The user installs the POE software and invokes the POE configuration utility. The POE configuration utility allows the user to select programs to copy over to a removable or remote storage location.  
         [0018]     In the POE configuration utility, the preferred selection method is somewhat similar to the “Add/Remove Program” selection in Windows: the user simply selects an installed programs, and the POE configuration utility then looks up (using installation and registry information) which files to move or copy. The files needed can include programs, DLLs, and/or configuration or program data information. POE will either move or make a copy of these programs and the related registry and environmental settings to the desired location as well as the POE suite of programs.  
         [0019]     The copy or move method is ordinary and can optionally include a zip or tar technology to minimize size of programs before move or copy. Where a single data module or location is regularly used for POE, the copy process can optionally be shortened to a mere updating process.  
         [0020]     Optionally, the user can take control of program installation at the target location and simply use POE to store and retrieve registry settings.  
         [0021]     Normally, the user is expected to copy his/her own data over to the target location. Alternatively, the POE software can be configured so that the user has the option for POE to search out all files on the machine of the corresponding file types to the selected programs and automatically (after providing a list for user selection) move or copy to the target location. Removable storage media can be, for example, a flash memory module (e.g. with USB, PCMCIA, CompactFlash, or memory stick connector configuration). Other removable media can optionally include a Zip drive (or other removable disk) or a multimedia disk (e.g. R/W DVDROM). Remote storage can be, for example, a network drive, a remote SAN network drive, an Internet location, or any type of storage media.  
         [heading-0022]     POE Environment Capture  
         [0023]     The POE Environment Capture is illustrated as a flowchart in  FIG. 3 . The user can use the POE Environment Capture to capture all registry settings pertaining to their desired suite of programs and data on the targeted storage media. This allows the user to capture, update, or remove registry settings pertaining to all programs on one or more storage medias that the user has selected.  
         [0024]     All registry information will be copied to the target location.  
         [heading-0025]     POE Invoke Environment  
         [0026]     The POE Invoke Environment is illustrated as a flowchart in  FIG. 4 . When the user selects to invoke the POE environment, they must have access to their POE captured environment, programs and data identified in the captured environment, and the POE suite of programs. When invoked with the appropriate information, POE will backup the local registry, environment, and applicable DLLs on local disk machine disk in temporary storage space and on the targeted media, update the local system registry and environment to point to the programs and data on the targeted media. The targeted programs will not need to be copied locally. This method assumes that the connectivity to the targeted drive is high speed (a high speed network connection, a high speed USB connection or some method that allows relatively high speed loading of programs and DLLs).  
         [0027]     At this point, the user may now use the system as they would on their default machine, and they will have access to all of their programs and data on their targeted media. POE&#39;s update of the system registry and environment will ensure that the user has their own versions of software, data, and configuration.  
         [0028]     Registry updates, program updates, or environmental updates made while on the local machine will be captured to the stored environment on the targeted remote storage media.  
         [0029]     POE Invoke Environment can use any of the following methods to create the environment for the user:  
         [0030]     1. Merge user specific registry information and environmental information into the local registry.  
         [0031]     2. Create a new user with user specific registry information and environmental information in local system and registry.  
         [0032]     3. For dynamic use, allow hotkey toggling between registry and environments between user specific and local user information (which can allow multiple program suites and versions to run simultaneously—DLL version conflicts can exist with this method).  
         [0033]      FIGS. 5 and 6  depict an example of the system registry before and after invoking the POE environment. This example assumes that a local system has programs A and Z installed on the system, and that the POE user has program A installed on their target media with the POE environment. This shows how POE alters the registry to point to the user&#39;s target programs during a POE invoked environment.  
         [heading-0034]     POE Environment Restoration  
         [0035]     The POE Restore Environment is illustrated as a flowchart in  FIG. 7 . When POE Environment Restoration is invoked (automatically when target drive can no longer be detected or invoked by user before leaving local machine), it will restore the local machine&#39;s registry to the settings stored by POE Invoke Environment. This will restore DLLs, registry settings, and environment and will clean up temporary files that were created while on the local machine.  
         [heading-0036]     Technical Limitations  
         [0037]     Device drivers and hardware dependent software will not necessarily work across multiple machine environments.  
         [heading-0038]     Potential Media Supported  
         [0039]     The targeted remote media can be any of the following (but is not limited by hardware type): 
        USS storage device     Network drive     SAN storage drive. 
 
 Potential Uses 
       
 
         [0044]      FIG. 8  illustrates the potential use of POE. POE may be used (but is not limited to) the following example uses:  
         [0045]     1. A user may use POE to backup all programs and data from their home or main office machine onto a USB stick or USB drive. They may then travel across the world or to any desired location and sit down on another user&#39;s machine and pull up their data and programs without worry about version conflicts.  
         [0046]     2. A company can use POE to ensure that users do not permanently alter local computer configurations by totally isolating user programs and data to a separate location.  
         [0047]     3. A company may also use POE to ensure that a user&#39;s program and data are controlled, up to date, and version controlled by controlling the user registry and program version with the POE configuration and setup program.  
         [0048]     4. A user may be able to travel worldwide and reach their data across a network from any machine in the world. This would allow them to walk into any cyber café and reach their programs and data anywhere in the world.  
         [0049]     5. A user can count on using their programs and data on a system without a network connection by keeping all programs and data on a portable storage media device.  
         [heading-0050]     Terminology  
         [0051]     DDL: Dynamic Link Library  
         [0052]     POE: Portable Operating Environment