US20070038998A1 - Archiving data in a virtual application environment - Google Patents

Archiving data in a virtual application environment Download PDF

Info

Publication number
US20070038998A1
US20070038998A1 US11/205,590 US20559005A US2007038998A1 US 20070038998 A1 US20070038998 A1 US 20070038998A1 US 20559005 A US20559005 A US 20559005A US 2007038998 A1 US2007038998 A1 US 2007038998A1
Authority
US
United States
Prior art keywords
virtual
data
application environment
computer system
application
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
US11/205,590
Other versions
US7434218B2 (en
Inventor
Robert Fries
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
Priority to US11/205,590 priority Critical patent/US7434218B2/en
Assigned to MICROSOFT CORPORATION reassignment MICROSOFT CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: FRIES, ROBERT M
Priority to EP06787917.1A priority patent/EP1915680B1/en
Priority to NZ565717A priority patent/NZ565717A/en
Priority to CNA2006800295904A priority patent/CN101243395A/en
Priority to RU2008105764/08A priority patent/RU2409838C2/en
Priority to MX2008000754A priority patent/MX2008000754A/en
Priority to JP2008526942A priority patent/JP4871359B2/en
Priority to AU2006280333A priority patent/AU2006280333B2/en
Priority to PCT/US2006/028111 priority patent/WO2007021435A2/en
Priority to ZA200800964A priority patent/ZA200800964B/en
Priority to BRPI0612115-2A priority patent/BRPI0612115B1/en
Publication of US20070038998A1 publication Critical patent/US20070038998A1/en
Priority to IL188705A priority patent/IL188705A/en
Priority to NO20080275A priority patent/NO337819B1/en
Priority to KR1020087002118A priority patent/KR101343200B1/en
Publication of US7434218B2 publication Critical patent/US7434218B2/en
Application granted granted Critical
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC reassignment MICROSOFT TECHNOLOGY LICENSING, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT CORPORATION
Active legal-status Critical Current
Adjusted 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
    • 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/45537Provision of facilities of other operating environments, e.g. WINE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Definitions

  • Losing data is an unfortunate reality for many computer users. Data can be lost under a variety of conditions and circumstances. Hardware failure, malicious or accidental deletion are common culprits for data loss. To compensate or protect oneself against loss in these circumstances, many computer users wisely create duplicate, backup copies of important data and/or programs.
  • data may be stored by a proprietary database and then archived.
  • the proprietary database program or the operating system that supports that database program, or the hardware upon which that operating system runs
  • the proprietary database program is no longer available or in use.
  • the database has been maintained as a valid archive, the contents of the database are inaccessible.
  • a computer system suitable for archiving data with a corresponding application program in a virtual application environment includes a processor, a memory, and a storage.
  • the computer system also includes an operating system, data to be archived, and an application program that correspond to the data, such that the application program can operate on the data.
  • the computer system also includes a virtual application environment generator.
  • An example of a virtual application environment generator is Microsoft Corporation's Virtual Server Migration Tool.
  • the virtual application environment generator In response to an instruction to archive the data, the virtual application environment generator generates a virtual application environment.
  • the virtual application environment comprises the data, the corresponding application program, and the operating system.
  • a computer-readable medium bearing computer-executable instructions When executed on a computer system, the computer-executable instructions carry out a method for archiving data in a virtual application environment.
  • the method comprises receiving a request to archive the data.
  • a virtual application environment is then generated.
  • the virtual application environment includes the data, an application program suitable for operating on the data, and an operating system suitable for supporting the execution of the application program.
  • the virtual application environment is the stored in storage.
  • a method for archiving data in a virtual application environment comprises receiving a request to archive data.
  • a virtual application environment is then generated.
  • the virtual application environment includes the data, an application program suitable for operating on the data, and an operating system suitable for supporting the execution of the application program.
  • the virtual application environment is the verified to determine whether it is suitable for execution on a virtual machine corresponding to a computer system upon which the operating system and the application program can function. If the virtual application environment is suitable for execution on the virtual machine, the virtual application environment is then stored in a storage.
  • FIG. 1 is a block diagram illustrating an exemplary operating environment suitable for implementing aspects of the present invention
  • FIG. 2 is a block diagram illustrating an exemplary computer system suitable for archiving data into a virtual operating environment
  • FIG. 3 is a flow diagram illustrating an exemplary routine for archiving data according to aspects of the present invention.
  • FIG. 4 is a flow diagram illustrating an exemplary routine for retrieving archived data from an virtual application environment.
  • FIG. 1 is a block diagram illustrating an exemplary operating environment 100 suitable for implementing aspects of the present invention.
  • the exemplary operating environment 100 includes a computer system 102 , shown in FIG. 1 in logical layers for illustration purposes.
  • the exemplary computer system 102 includes a hardware layer 104 , an operating system layer 106 , and an application layer 108 .
  • the hardware layer 104 includes components such as the processor, memory, mass storage (such as hard drives, optical drives, and the like), graphics display subsystems, and the like.
  • the operating system layer 106 includes the operating system which supports the application layer 108 . This layer also typically includes configuration settings, including user preferences and program settings for application programs in the application layer.
  • the application layer 108 includes software programs and/or services such as application programs 110 and 112 , as well as the supporting files, user created data ( 114 and 116 ), and the like.
  • FIG. 1 illustrates the applications 110 and 112 as single modules
  • application programs are typically not monolithic bodies of code. Instead, application programs are typically comprised of various components, including code modules, text modules, data files, resources, configuration files, and the like.
  • code modules including code modules, text modules, data files, resources, configuration files, and the like.
  • illustration of application programs 110 and 112 (and others throughout the following discussion) as single component entities should be viewed as a logical construct for illustration purposes, and should not be viewed as limiting upon the present invention.
  • data files 114 and 116 are typically what is most important to the user. More particularly, the application program, if corrupted or deleted from a computer system, can typically be restored from the media with which the user was provided when the application program was purchased.
  • the data files created by the application programs such as data files 114 and 116 , are the product of user interactions and creations, and as such, are unique and should be preserved against accidental, malicious, or inadvertent loss.
  • the data files are archived in a virtual operating environment 122 which can be stored on media such as optical disks, hard drives, or other backup services such as online storage.
  • the virtual operating environment 122 includes the operating system and application programs necessary to operate on the co-archived data files.
  • the virtual operating environment 122 is generated such that it can be executed on a virtual machine.
  • a virtual machine is an abstraction of computer hardware, implemented in software, that can then be executed on other computer hardware.
  • Generating and using virtual machine technology is known in the art.
  • Microsoft Corporation's Virtual Server Migration Tool is one example of a product that generates a virtual machine.
  • the virtual machine 124 is generated by a virtual machine generator 126 . While not shown, the virtual machine 124 may be stored on any number of backup or storage targets including, but not limited to, magnetic tape, hard disk storage, optical media, and the like.
  • the virtual operating environment By generating the virtual operating environment to run on a virtual machine, such as virtual machine 124 , it is no longer necessary to maintain the computer hardware 104 in order to access the data generated by obsolete application programs. Thus, after years have passed and the hardware, the operating system, and the application programs are no longer commercially available, the archived data, such as data file 114 or 116 , is still accessible.
  • the virtual machine technology implementing a virtual machine 124 corresponding to the hardware from which the virtual operating environment 122 was generated, the data is accessible on virtually any computer hardware running any operating system.
  • the virtual operating environment includes information identifying the virtual machine platform, i.e., the corresponding computer hardware from which the virtual operating environment was generated.
  • the virtual operating environment 122 is created using a virtual operating environment generator 118 that converts the data files, the application program or programs, and the operating system into the virtual operating environment 122 .
  • virtual operating environment generator 118 determines which components (especially with regard to a particular application program) need to be included in the virtual operating environment 122 such that the application program corresponding to the subject matter data file can operate.
  • the virtual operating environment generator 118 includes all application programs and the operating system on the computer system 102 into the virtual application environment 122 , thereby ensuring that all components of the application program corresponding to the subject matter data file are included.
  • the virtual operating environment generator 118 uses an application manifest 120 that identifies the components of an application program that should be included in the virtual application environment 122 .
  • other information may also be used to determine the components of an application program, such as installation manifests, operating system registry information, and the like.
  • the virtual application environment 122 is generated such that it operates as a bootable device.
  • he virtual application environment 122 can function as the boot device of actual computer hardware, or of a virtual machine.
  • FIG. 2 is a block diagram illustrating an exemplary computer system 200 suitable for archiving data into a virtual operating environment 122 .
  • the computer system 200 includes computer hardware 104 , an operating system 106 , one or more application programs 110 and 112 , as well as corresponding data files 114 and 116 .
  • the computer hardware includes a processor 202 , a memory 204 , and a storage 206 .
  • these hardware components are illustrative of the many components that make up the computer hardware, and should not be viewed as limiting upon the present invention.
  • the exemplary computer system 200 also includes a virtual application environment generator 118 .
  • the virtual application environment generator 118 combines the data file, such as data file 114 , with its corresponding application program and the operating system operating on the computer hardware 104 , into a virtual application environment 122 ( FIG. 1 ).
  • the virtual application environment generator 118 is illustrated as residing upon the exemplary computer system 200 , in an alternative embodiment, the virtual application environment generator is on an external computer system, and configured to operated remotely on the exemplary computer system 202 .
  • FIG. 3 is a flow diagram illustrating an exemplary routine 300 for archiving data in a virtual application environment 122 according to aspects of the present invention.
  • a request to archive a data file is received.
  • the application program (or programs) associated with the data file, its components and associated files, are identified.
  • the application program's components may be identified using an application manifest 120 , using computer system settings such as registry entries, using installation manifests, and the like.
  • a request to archive a volume may be received.
  • a volume may include any number of data files, some of which created by disparate application programs.
  • an exemplary routine would identify, for each data file in the volume to be archived, the corresponding application program (or programs) for inclusion in the virtual application environment 122 .
  • the virtual application environment 122 including the identified application program components, the data file, and an operating system capable of operating the application program is generated.
  • the virtual application environment 122 may also include information identifying the virtual machine or actual computer hardware upon which the virtual application environment can execute.
  • the virtual application environment 122 is optionally validated to determine whether it can be executed on a virtual machine corresponding to the computer hardware from which the components of the virtual application environment were generated. If the virtual application environment 122 proves invalid, at block 310 an error is reported, and thereafter the routine 300 terminates.
  • the routine terminates.
  • routine 300 treats the data file as a single object, in fact the data to be archived may comprise a plurality of files and components, and the present invention should not be construed as limited to archiving a single data file in the virtual application environment 122 .
  • FIG. 4 is a flow diagram illustrating an exemplary routine 400 for retrieving archived data from a virtual application environment 122 .
  • a request to restore data from a virtual application environment 122 is received.
  • the virtual application environment 122 is obtained.
  • the virtual machine 124 corresponding to virtual application environment 122 is executed (if it is not already executing).
  • the virtual application environment 122 may be executed on a virtual machine 124 , or alternatively, on computer hardware (not shown) corresponding to the original computer hardware on which the virtual application environment 122 was generated.
  • Executing the virtual application environment 122 may involve booting the virtual application environment upon the virtual machine.
  • the virtual application environment 122 should be configured to operate as a bootable device.
  • the application program corresponding to the data file which is to be retrieved is executed.
  • the data is extracted using the corresponding application program, either in an automated manner, or at the direction of a computer user. Thereafter, the routine 400 terminates.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Feedback Control In General (AREA)
  • Bridges Or Land Bridges (AREA)
  • Cleaning In Electrography (AREA)

Abstract

A computer system suitable for archiving data with a corresponding application program in a virtual application environment is presented. The computer system includes a processor, a memory, and a storage. The computer system also includes an operating system, data to be archived, and an application program that correspond to the data, such that the application program can operate on the data. The computer system also includes a virtual application environment generator. In response to an instruction to archive the data, the virtual application environment generator generates a virtual application environment. The virtual application environment comprises the data, the corresponding application program, and the operating system.

Description

    BACKGROUND OF THE INVENTION
  • Losing data is an unfortunate reality for many computer users. Data can be lost under a variety of conditions and circumstances. Hardware failure, malicious or accidental deletion are common culprits for data loss. To compensate or protect oneself against loss in these circumstances, many computer users wisely create duplicate, backup copies of important data and/or programs.
  • Unfortunately, there are also many ways in which data may become lost irrespective of whether a valid backup copy of the data has been made and is available. In particular, over time the programs, the operating systems, and/or the hardware become no longer available. When this occurs, a computer user cannot access critical data, even when an otherwise viable backup copy of that data exists.
  • For example, data may be stored by a proprietary database and then archived. At some time later, when that data is needed, the proprietary database program (or the operating system that supports that database program, or the hardware upon which that operating system runs) is no longer available or in use. Thus, even though the database has been maintained as a valid archive, the contents of the database are inaccessible.
  • There are, of course, niche markets that specialize in retrieving data created by and/or stored on archaic computer systems or software. Their techniques vary widely. One technique is to maintain old computer hardware, operating systems, and software. Another, widely divergent technique involves “cracking open” the data stored by proprietary systems, extracting it using sophisticated software techniques and expertise. In all cases, there is a substantial expense for retrieving data that has been archived but whose corresponding programs, operating systems, or hardware is no longer readily available.
  • SUMMARY OF THE INVENTION
  • According to aspects of the present invention, a computer system suitable for archiving data with a corresponding application program in a virtual application environment is presented. The computer system includes a processor, a memory, and a storage. The computer system also includes an operating system, data to be archived, and an application program that correspond to the data, such that the application program can operate on the data. The computer system also includes a virtual application environment generator. An example of a virtual application environment generator is Microsoft Corporation's Virtual Server Migration Tool. In response to an instruction to archive the data, the virtual application environment generator generates a virtual application environment. The virtual application environment comprises the data, the corresponding application program, and the operating system.
  • According to additional aspect of the present invention, a computer-readable medium bearing computer-executable instructions is presented. When executed on a computer system, the computer-executable instructions carry out a method for archiving data in a virtual application environment. The method comprises receiving a request to archive the data. A virtual application environment is then generated. The virtual application environment includes the data, an application program suitable for operating on the data, and an operating system suitable for supporting the execution of the application program. The virtual application environment is the stored in storage.
  • According to yet further aspects of the present invention, a method for archiving data in a virtual application environment is presented. The method comprises receiving a request to archive data. A virtual application environment is then generated. The virtual application environment includes the data, an application program suitable for operating on the data, and an operating system suitable for supporting the execution of the application program. The virtual application environment is the verified to determine whether it is suitable for execution on a virtual machine corresponding to a computer system upon which the operating system and the application program can function. If the virtual application environment is suitable for execution on the virtual machine, the virtual application environment is then stored in a storage.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The foregoing aspects and many of the attendant advantages of this invention will become more readily appreciated as the same become better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein:
  • FIG. 1 is a block diagram illustrating an exemplary operating environment suitable for implementing aspects of the present invention;
  • FIG. 2 is a block diagram illustrating an exemplary computer system suitable for archiving data into a virtual operating environment;
  • FIG. 3 is a flow diagram illustrating an exemplary routine for archiving data according to aspects of the present invention; and
  • FIG. 4 is a flow diagram illustrating an exemplary routine for retrieving archived data from an virtual application environment.
  • DETAILED DESCRIPTION
  • FIG. 1 is a block diagram illustrating an exemplary operating environment 100 suitable for implementing aspects of the present invention. The exemplary operating environment 100 includes a computer system 102, shown in FIG. 1 in logical layers for illustration purposes. In particular, the exemplary computer system 102 includes a hardware layer 104, an operating system layer 106, and an application layer 108.
  • The hardware layer 104 includes components such as the processor, memory, mass storage (such as hard drives, optical drives, and the like), graphics display subsystems, and the like. The operating system layer 106, as the name suggests, includes the operating system which supports the application layer 108. This layer also typically includes configuration settings, including user preferences and program settings for application programs in the application layer. The application layer 108 includes software programs and/or services such as application programs 110 and 112, as well as the supporting files, user created data (114 and 116), and the like.
  • While FIG. 1 illustrates the applications 110 and 112 as single modules, those skilled in the art will appreciate that almost all application programs are typically not monolithic bodies of code. Instead, application programs are typically comprised of various components, including code modules, text modules, data files, resources, configuration files, and the like. Thus, the illustration of application programs 110 and 112 (and others throughout the following discussion) as single component entities should be viewed as a logical construct for illustration purposes, and should not be viewed as limiting upon the present invention.
  • In addition to application program components, as a product of using most application programs, users typically create data files 114 and 116. In fact, such data files are typically what is most important to the user. More particularly, the application program, if corrupted or deleted from a computer system, can typically be restored from the media with which the user was provided when the application program was purchased. However, the data files created by the application programs, such as data files 114 and 116, are the product of user interactions and creations, and as such, are unique and should be preserved against accidental, malicious, or inadvertent loss.
  • According to aspects of the present invention, in order to preserve the data files such that they can be used at a future time when the application program, operating system, and/or hardware is no longer available or useable, the data files are archived in a virtual operating environment 122 which can be stored on media such as optical disks, hard drives, or other backup services such as online storage. The virtual operating environment 122 includes the operating system and application programs necessary to operate on the co-archived data files.
  • According to aspects of the present invention, the virtual operating environment 122 is generated such that it can be executed on a virtual machine. As those skilled in the art will appreciate, a virtual machine is an abstraction of computer hardware, implemented in software, that can then be executed on other computer hardware. Generating and using virtual machine technology is known in the art. For example, Microsoft Corporation's Virtual Server Migration Tool is one example of a product that generates a virtual machine. As shown in FIG. 1, the virtual machine 124 is generated by a virtual machine generator 126. While not shown, the virtual machine 124 may be stored on any number of backup or storage targets including, but not limited to, magnetic tape, hard disk storage, optical media, and the like.
  • By generating the virtual operating environment to run on a virtual machine, such as virtual machine 124, it is no longer necessary to maintain the computer hardware 104 in order to access the data generated by obsolete application programs. Thus, after years have passed and the hardware, the operating system, and the application programs are no longer commercially available, the archived data, such as data file 114 or 116, is still accessible. Using the virtual machine technology, implementing a virtual machine 124 corresponding to the hardware from which the virtual operating environment 122 was generated, the data is accessible on virtually any computer hardware running any operating system.
  • In order to ensure that the virtual operating environment 122 can later be executed, in one embodiment, the virtual operating environment includes information identifying the virtual machine platform, i.e., the corresponding computer hardware from which the virtual operating environment was generated.
  • The virtual operating environment 122 is created using a virtual operating environment generator 118 that converts the data files, the application program or programs, and the operating system into the virtual operating environment 122. In particular, virtual operating environment generator 118 determines which components (especially with regard to a particular application program) need to be included in the virtual operating environment 122 such that the application program corresponding to the subject matter data file can operate.
  • According to one embodiment, the virtual operating environment generator 118 includes all application programs and the operating system on the computer system 102 into the virtual application environment 122, thereby ensuring that all components of the application program corresponding to the subject matter data file are included. Alternatively, the virtual operating environment generator 118 uses an application manifest 120 that identifies the components of an application program that should be included in the virtual application environment 122. Of course, other information may also be used to determine the components of an application program, such as installation manifests, operating system registry information, and the like.
  • In at least one embodiment of the present invention, the virtual application environment 122 is generated such that it operates as a bootable device. In other words, he virtual application environment 122 can function as the boot device of actual computer hardware, or of a virtual machine.
  • FIG. 2 is a block diagram illustrating an exemplary computer system 200 suitable for archiving data into a virtual operating environment 122. In particular, the computer system 200 includes computer hardware 104, an operating system 106, one or more application programs 110 and 112, as well as corresponding data files 114 and 116. As shown in FIG. 2, the computer hardware includes a processor 202, a memory 204, and a storage 206. Of course, as those skilled in the art will appreciate, these hardware components are illustrative of the many components that make up the computer hardware, and should not be viewed as limiting upon the present invention.
  • The exemplary computer system 200 also includes a virtual application environment generator 118. As indicated above, the virtual application environment generator 118 combines the data file, such as data file 114, with its corresponding application program and the operating system operating on the computer hardware 104, into a virtual application environment 122 (FIG. 1). However, it should be appreciated that while the virtual application environment generator 118 is illustrated as residing upon the exemplary computer system 200, in an alternative embodiment, the virtual application environment generator is on an external computer system, and configured to operated remotely on the exemplary computer system 202.
  • FIG. 3 is a flow diagram illustrating an exemplary routine 300 for archiving data in a virtual application environment 122 according to aspects of the present invention. Beginning at block 302, a request to archive a data file is received. At block 304, the application program (or programs) associated with the data file, its components and associated files, are identified. As discussed above, the application program's components may be identified using an application manifest 120, using computer system settings such as registry entries, using installation manifests, and the like.
  • In an alternative embodiment, a request to archive a volume may be received. As those skilled in the art will appreciate, a volume may include any number of data files, some of which created by disparate application programs. Thus, similar to the logic described above, an exemplary routine would identify, for each data file in the volume to be archived, the corresponding application program (or programs) for inclusion in the virtual application environment 122.
  • At block 306, the virtual application environment 122, including the identified application program components, the data file, and an operating system capable of operating the application program is generated. The virtual application environment 122 may also include information identifying the virtual machine or actual computer hardware upon which the virtual application environment can execute.
  • At decision block 308, the virtual application environment 122 is optionally validated to determine whether it can be executed on a virtual machine corresponding to the computer hardware from which the components of the virtual application environment were generated. If the virtual application environment 122 proves invalid, at block 310 an error is reported, and thereafter the routine 300 terminates.
  • If the virtual application environment 122 is properly validated, at block 312, the virtual application environment is stored. Thereafter, the routine terminates.
  • It should be appreciated that while the above description of routine 300 treats the data file as a single object, in fact the data to be archived may comprise a plurality of files and components, and the present invention should not be construed as limited to archiving a single data file in the virtual application environment 122.
  • FIG. 4 is a flow diagram illustrating an exemplary routine 400 for retrieving archived data from a virtual application environment 122. Beginning at block 402, a request to restore data from a virtual application environment 122 is received. At block 404, the virtual application environment 122 is obtained.
  • At block 406, information regarding the virtual machine 124 corresponding to and necessary to support the virtual application environment 122 is obtained. At block 408, the virtual machine 124 corresponding to virtual application environment 122 is executed (if it is not already executing). Of course, as discussed earlier, the virtual application environment 122 may be executed on a virtual machine 124, or alternatively, on computer hardware (not shown) corresponding to the original computer hardware on which the virtual application environment 122 was generated.
  • Executing the virtual application environment 122 may involve booting the virtual application environment upon the virtual machine. In such cased, the virtual application environment 122 should be configured to operate as a bootable device.
  • Once the virtual application environment 122 is executing, at block 410, the application program corresponding to the data file which is to be retrieved is executed. At block 412, the data is extracted using the corresponding application program, either in an automated manner, or at the direction of a computer user. Thereafter, the routine 400 terminates.
  • While the preferred embodiment of the invention has been illustrated and described, it will be appreciated that various changes can be made therein without departing from the spirit and scope of the invention.

Claims (20)

1. A computer system for archiving data with its corresponding application program in a virtual application environment, the computer system comprising:
a processor;
a memory; and
a storage;
wherein the computer system includes an operating system, data to be archived, and a corresponding application program suitable for operating on the data;
and wherein the computer system also includes a virtual application environment generator that, in response to a instruction to archive the data, generates a virtual application environment comprising the data, the corresponding application, and the operating system.
2. The computer system of claim 1, wherein the virtual application environment is generated to operate on a virtual machine corresponding to the computer system.
3. The computer system of claim 2, wherein the virtual application environment is further generated to operate as a bootable device on a virtual machine corresponding to the computer system.
4. The computer system of claim 2, wherein the virtual application environment includes information that identifies the virtual machine upon which the virtual application environment can operate.
5. The computer system of claim 1, wherein the computer system further includes a plurality of application programs, and wherein the virtual application environment is generated to include all of the application programs from the computer system.
6. The computer system of claim 1, wherein the computer system further includes a plurality of application programs, and wherein the virtual application environment generator generates the virtual application environment such that only the corresponding application program is included with the operating system and data.
7. The computer system of claim 6, wherein virtual application environment generator determines which of the plurality of application programs is the corresponding application program according to an application manifest.
8. The computer system of claim 7, wherein the corresponding application program comprises a plurality of components distributed on the computer system, and where the virtual application environment generator identifies the components of the corresponding application program and includes them as the corresponding application program in the virtual application environment.
9. A computer-readable medium bearing computer-executable instructions which, when executed on a computer system, carry out a method for archiving data in a virtual application environment, the method comprising:
receiving a request to archive data;
generating a virtual application environment, wherein the virtual application environment includes the data, an application program suitable for operating on the data, and an operating system suitable for supporting the execution of the application program; and
storing the virtual application environment in a storage.
10. The computer-readable medium of claim 9, wherein the virtual application environment is generated for execution on a virtual machine corresponding to the computer system.
11. The computer-readable medium of claim 10, wherein the virtual application environment is further generated to operate as a bootable device when executed on a virtual machine corresponding to the computer system.
12. The computer-readable medium of claim 12, wherein the virtual application environment is further generated to include information for identifying the virtual machine upon which the virtual application environment may be executed.
13. The computer-readable medium claim 9, wherein the method further comprises verifying whether the generated virtual application environment is executable on a virtual machine corresponding to the computer system.
14. The computer-readable medium of claim 9, wherein the virtual application environment is generated to include a plurality of application programs installed on the computer system, and wherein at least one of the plurality of application programs is suitable for operating on the data.
15. The computer-readable medium claim 9, wherein the method further comprises identifying an application program suitable for operating on the data according to an application manifest, and including the identified application program in the virtual application environment.
16. A method for archiving data in a virtual application environment, the method comprising:
receiving a request to archive data;
generating a virtual application environment, wherein the virtual application environment includes the data, an application program suitable for operating on the data, and an operating system suitable for supporting the execution of the application program;
verifying whether the virtual application environment is suitable for execution on a virtual machine corresponding to a computer system upon which the operating system and the application program can function; and
storing the virtual application environment in a storage if the virtual application environment is suitable for execution on the virtual machine.
17. The method of claim 16, wherein the virtual application environment is further generated to operate as a bootable device when executed on a virtual machine corresponding to the computer system.
18. The method of claim 17, wherein the virtual application environment is generated to include a plurality of application programs installed on the computer system, and wherein at least one of the plurality of application programs is suitable for operating on the data.
19. The method of claim 17 further comprising identifying an application program suitable for operating on the data according to an application manifest, and including the identified application program in the virtual application environment as the application program suitable for operating on the data.
20. The method of claim 16 wherein the data to be archived comprises a plurality of data files corresponding to at least two distinct application programs, and wherein the method further comprises for each data file in the data to be archived, identifying a corresponding application program suitable for operating on the data file, and wherein generating the virtual application environment further comprises generating the virtual application environment to include the identified application programs suitable for operating on each data file in the data to be archived.
US11/205,590 2005-08-15 2005-08-15 Archiving data in a virtual application environment Active 2026-02-10 US7434218B2 (en)

Priority Applications (14)

Application Number Priority Date Filing Date Title
US11/205,590 US7434218B2 (en) 2005-08-15 2005-08-15 Archiving data in a virtual application environment
PCT/US2006/028111 WO2007021435A2 (en) 2005-08-15 2006-07-19 Archiving data in a virtual application environment
BRPI0612115-2A BRPI0612115B1 (en) 2005-08-15 2006-07-19 "COMPUTER SYSTEM FOR ARCHIVING USER-CREATED DATA IN A VIRTUAL APPLICATION ENVIRONMENT, COMPUTER-READABLE MEDIA STORING A USER-CREATED DATA METHOD IN A VIRTUAL APPLICATION ENVIRONMENT, VIRTUAL APPLICATION "
CNA2006800295904A CN101243395A (en) 2005-08-15 2006-07-19 Archiving data in a virtual application environment
RU2008105764/08A RU2409838C2 (en) 2005-08-15 2006-07-19 Archiving data in virtual application enviroinment
MX2008000754A MX2008000754A (en) 2005-08-15 2006-07-19 Archiving data in a virtual application environment.
JP2008526942A JP4871359B2 (en) 2005-08-15 2006-07-19 Archiving data in a virtual application environment
AU2006280333A AU2006280333B2 (en) 2005-08-15 2006-07-19 Archiving data in a virtual application environment
EP06787917.1A EP1915680B1 (en) 2005-08-15 2006-07-19 Archiving data in a virtual application environment
ZA200800964A ZA200800964B (en) 2005-08-15 2006-07-19 Archiving data in a virtual application environment
NZ565717A NZ565717A (en) 2005-08-15 2006-07-19 Archiving data in a virtual application environment
IL188705A IL188705A (en) 2005-08-15 2008-01-10 Archiving data in a virtual application environment
NO20080275A NO337819B1 (en) 2005-08-15 2008-01-16 Archiving data in a virtual application environment
KR1020087002118A KR101343200B1 (en) 2005-08-15 2008-01-25 Archiving data in a virtual application environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/205,590 US7434218B2 (en) 2005-08-15 2005-08-15 Archiving data in a virtual application environment

Publications (2)

Publication Number Publication Date
US20070038998A1 true US20070038998A1 (en) 2007-02-15
US7434218B2 US7434218B2 (en) 2008-10-07

Family

ID=37744005

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/205,590 Active 2026-02-10 US7434218B2 (en) 2005-08-15 2005-08-15 Archiving data in a virtual application environment

Country Status (14)

Country Link
US (1) US7434218B2 (en)
EP (1) EP1915680B1 (en)
JP (1) JP4871359B2 (en)
KR (1) KR101343200B1 (en)
CN (1) CN101243395A (en)
AU (1) AU2006280333B2 (en)
BR (1) BRPI0612115B1 (en)
IL (1) IL188705A (en)
MX (1) MX2008000754A (en)
NO (1) NO337819B1 (en)
NZ (1) NZ565717A (en)
RU (1) RU2409838C2 (en)
WO (1) WO2007021435A2 (en)
ZA (1) ZA200800964B (en)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060010227A1 (en) * 2004-06-01 2006-01-12 Rajeev Atluri Methods and apparatus for accessing data from a primary data storage system for secondary storage
US20070271304A1 (en) * 2006-05-19 2007-11-22 Inmage Systems, Inc. Method and system of tiered quiescing
US20070271428A1 (en) * 2006-05-19 2007-11-22 Inmage Systems, Inc. Method and apparatus of continuous data backup and access using virtual machines
US20070282921A1 (en) * 2006-05-22 2007-12-06 Inmage Systems, Inc. Recovery point data view shift through a direction-agnostic roll algorithm
US20080059542A1 (en) * 2006-08-30 2008-03-06 Inmage Systems, Inc. Ensuring data persistence and consistency in enterprise storage backup systems
US20090199175A1 (en) * 2008-01-31 2009-08-06 Microsoft Corporation Dynamic Allocation of Virtual Application Server
US20090228589A1 (en) * 2008-03-04 2009-09-10 International Business Machines Corporation Server and storage-aware method for selecting virtual machine migration targets
WO2009151875A1 (en) * 2008-06-13 2009-12-17 Microsoft Corporation Synchronizing virtual machine and application life cycles
US20100023797A1 (en) * 2008-07-25 2010-01-28 Rajeev Atluri Sequencing technique to account for a clock error in a backup system
US7698401B2 (en) 2004-06-01 2010-04-13 Inmage Systems, Inc Secondary data storage and recovery system
US20100169281A1 (en) * 2006-05-22 2010-07-01 Rajeev Atluri Coalescing and capturing data between events prior to and after a temporal window
US20100169591A1 (en) * 2005-09-16 2010-07-01 Rajeev Atluri Time ordered view of backup data on behalf of a host
US20100169592A1 (en) * 2008-12-26 2010-07-01 Rajeev Atluri Generating a recovery snapshot and creating a virtual view of the recovery snapshot
US20100169587A1 (en) * 2005-09-16 2010-07-01 Rajeev Atluri Causation of a data read against a first storage system to optionally store a data write to preserve the version to allow viewing and recovery
US20100169452A1 (en) * 2004-06-01 2010-07-01 Rajeev Atluri Causation of a data read operation against a first storage system by a server associated with a second storage system according to a host generated instruction
US20100169466A1 (en) * 2008-12-26 2010-07-01 Rajeev Atluri Configuring hosts of a secondary data storage and recovery system
US20100169282A1 (en) * 2004-06-01 2010-07-01 Rajeev Atluri Acquisition and write validation of data of a networked host node to perform secondary storage
US7979656B2 (en) 2004-06-01 2011-07-12 Inmage Systems, Inc. Minimizing configuration changes in a fabric-based data protection solution
US8392373B1 (en) * 2009-03-26 2013-03-05 Symantec Corporation Systems and methods for retaining an executable environment during a data archive process
US8527470B2 (en) 2006-05-22 2013-09-03 Rajeev Atluri Recovery point data view formation with generation of a recovery view and a coalesce policy
US8949395B2 (en) 2004-06-01 2015-02-03 Inmage Systems, Inc. Systems and methods of event driven recovery management
US20150040132A1 (en) * 2011-04-13 2015-02-05 Netapp, Inc. Identification of virtual applications for backup in a cloud computing system
US9128803B2 (en) 2010-12-15 2015-09-08 Microsoft Technology Licensing, Llc Application model for implementing composite applications
US20160077855A1 (en) * 2013-05-06 2016-03-17 China Unionpay Co., Ltd. Stateless virtual machine in cloud computing environment and application thereof
US9558078B2 (en) 2014-10-28 2017-01-31 Microsoft Technology Licensing, Llc Point in time database restore from storage snapshots
US10210949B2 (en) * 2007-10-17 2019-02-19 Dispersive Networks, Inc. Selective access to medical symptom tracking data using dispersive storage area network (SAN)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8024732B2 (en) 2008-07-28 2011-09-20 Microsoft Corporation State separation for application changes
US8150801B2 (en) * 2008-08-20 2012-04-03 Microsoft Corporation Recovery of a computer that includes virtual disks
US20100174894A1 (en) * 2009-01-07 2010-07-08 Lenovo (Singapore) Pte, Ltd. Method, Apparatus, and System for Configuring an Operating System on a Target Computer
US8086808B2 (en) * 2009-04-23 2011-12-27 Hitachi, Ltd. Method and system for migration between physical and virtual systems
RU2633985C2 (en) * 2014-09-30 2017-10-20 Общество С Ограниченной Ответственностью "Яндекс" Data processing method and system
RU2642365C1 (en) * 2016-07-21 2018-01-24 Олег Александрович Кузнецов Method of telemechanical control and management of remote objects

Citations (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5206951A (en) * 1987-08-21 1993-04-27 Wang Laboratories, Inc. Integration of data between typed objects by mutual, direct invocation between object managers corresponding to object types
US5896531A (en) * 1993-02-26 1999-04-20 International Business Machines Corporation Method and system for managing environments with a data processing system
US6105074A (en) * 1995-07-14 2000-08-15 Sony Corporation Data processing method and device
US6463535B1 (en) * 1998-10-05 2002-10-08 Intel Corporation System and method for verifying the integrity and authorization of software before execution in a local platform
US6633892B1 (en) * 1998-11-30 2003-10-14 International Business Machines Corporation Archiving tool
US6725373B2 (en) * 1998-03-25 2004-04-20 Intel Corporation Method and apparatus for verifying the integrity of digital objects using signed manifests
US6748591B1 (en) * 2000-09-14 2004-06-08 International Business Machines Corporation Method, system, program, and data structures for loading programs into a runtime environment
US6766353B1 (en) * 2000-07-11 2004-07-20 Motorola, Inc. Method for authenticating a JAVA archive (JAR) for portable devices
US20050076326A1 (en) * 2002-11-18 2005-04-07 Mcmillan John Virtual OS computing environment
US20050125513A1 (en) * 2003-12-08 2005-06-09 Monica Sin-Ling Lam Cache-based system management architecture with virtual appliances, network repositories, and virtual appliance transceivers
US20050267920A1 (en) * 2004-05-13 2005-12-01 Fabrice Helliker System and method for archiving data in a clustered environment
US20050278278A1 (en) * 2004-05-28 2005-12-15 Petev Petio G Class loading jar operation optimizations
US7028305B2 (en) * 2001-05-16 2006-04-11 Softricity, Inc. Operating system abstraction and protection layer
US20060080521A1 (en) * 2004-09-23 2006-04-13 Eric Barr System and method for offline archiving of data
US20060085625A1 (en) * 2004-10-18 2006-04-20 Cheston Richard W Computer disposal apparatus, system, and method
US7069554B1 (en) * 1998-05-06 2006-06-27 Sun Microsystems, Inc. Component installer permitting interaction among isolated components in accordance with defined rules
US20060155674A1 (en) * 2005-01-07 2006-07-13 Microsoft Corporation Image server
US20060155735A1 (en) * 2005-01-07 2006-07-13 Microsoft Corporation Image server
US7093086B1 (en) * 2002-03-28 2006-08-15 Veritas Operating Corporation Disaster recovery and backup using virtual machines
US20060184937A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method for centralized software management in virtual machines
US20060184653A1 (en) * 2005-02-16 2006-08-17 Red Hat, Inc. System and method for creating and managing virtual services
US7107463B2 (en) * 2001-11-16 2006-09-12 Microsoft Corporation Manifest-based trusted agent management in a trusted operating system environment
US7127526B1 (en) * 2000-03-20 2006-10-24 Nortel Networks Limited Method and apparatus for dynamically loading and managing software services on a network device
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7158972B2 (en) 2001-12-11 2007-01-02 Sun Microsystems, Inc. Methods and apparatus for managing multiple user systems
CA2481687A1 (en) * 2002-04-11 2003-10-23 Linuxcare, Inc. Managing multiple virtual machines
US7478387B2 (en) * 2002-09-25 2009-01-13 International Business Machines Corporation System and method for creating a restartable non-native language routine execution environment

Patent Citations (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5206951A (en) * 1987-08-21 1993-04-27 Wang Laboratories, Inc. Integration of data between typed objects by mutual, direct invocation between object managers corresponding to object types
US5896531A (en) * 1993-02-26 1999-04-20 International Business Machines Corporation Method and system for managing environments with a data processing system
US6105074A (en) * 1995-07-14 2000-08-15 Sony Corporation Data processing method and device
US6725373B2 (en) * 1998-03-25 2004-04-20 Intel Corporation Method and apparatus for verifying the integrity of digital objects using signed manifests
US7069554B1 (en) * 1998-05-06 2006-06-27 Sun Microsystems, Inc. Component installer permitting interaction among isolated components in accordance with defined rules
US6463535B1 (en) * 1998-10-05 2002-10-08 Intel Corporation System and method for verifying the integrity and authorization of software before execution in a local platform
US6633892B1 (en) * 1998-11-30 2003-10-14 International Business Machines Corporation Archiving tool
US7127526B1 (en) * 2000-03-20 2006-10-24 Nortel Networks Limited Method and apparatus for dynamically loading and managing software services on a network device
US6766353B1 (en) * 2000-07-11 2004-07-20 Motorola, Inc. Method for authenticating a JAVA archive (JAR) for portable devices
US6748591B1 (en) * 2000-09-14 2004-06-08 International Business Machines Corporation Method, system, program, and data structures for loading programs into a runtime environment
US7028305B2 (en) * 2001-05-16 2006-04-11 Softricity, Inc. Operating system abstraction and protection layer
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US7107463B2 (en) * 2001-11-16 2006-09-12 Microsoft Corporation Manifest-based trusted agent management in a trusted operating system environment
US7305553B2 (en) * 2001-11-16 2007-12-04 Microsoft Corporation Manifest-based trusted agent management in a trusted operating system environment
US7257707B2 (en) * 2001-11-16 2007-08-14 Microsoft Corporation Manifest-based trusted agent management in a trusted operating system environment
US7137004B2 (en) * 2001-11-16 2006-11-14 Microsoft Corporation Manifest-based trusted agent management in a trusted operating system environment
US7093086B1 (en) * 2002-03-28 2006-08-15 Veritas Operating Corporation Disaster recovery and backup using virtual machines
US20050076326A1 (en) * 2002-11-18 2005-04-07 Mcmillan John Virtual OS computing environment
US20050125513A1 (en) * 2003-12-08 2005-06-09 Monica Sin-Ling Lam Cache-based system management architecture with virtual appliances, network repositories, and virtual appliance transceivers
US7373451B2 (en) * 2003-12-08 2008-05-13 The Board Of Trustees Of The Leland Stanford Junior University Cache-based system management architecture with virtual appliances, network repositories, and virtual appliance transceivers
US20050267920A1 (en) * 2004-05-13 2005-12-01 Fabrice Helliker System and method for archiving data in a clustered environment
US20050278278A1 (en) * 2004-05-28 2005-12-15 Petev Petio G Class loading jar operation optimizations
US20060080521A1 (en) * 2004-09-23 2006-04-13 Eric Barr System and method for offline archiving of data
US7337310B2 (en) * 2004-10-18 2008-02-26 Lenovo Pte Ltd Computer disposal apparatus, system, and method
US20060085625A1 (en) * 2004-10-18 2006-04-20 Cheston Richard W Computer disposal apparatus, system, and method
US20060155735A1 (en) * 2005-01-07 2006-07-13 Microsoft Corporation Image server
US20060155674A1 (en) * 2005-01-07 2006-07-13 Microsoft Corporation Image server
US20060184937A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method for centralized software management in virtual machines
US20060184653A1 (en) * 2005-02-16 2006-08-17 Red Hat, Inc. System and method for creating and managing virtual services

Cited By (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7698401B2 (en) 2004-06-01 2010-04-13 Inmage Systems, Inc Secondary data storage and recovery system
US8055745B2 (en) 2004-06-01 2011-11-08 Inmage Systems, Inc. Methods and apparatus for accessing data from a primary data storage system for secondary storage
US7979656B2 (en) 2004-06-01 2011-07-12 Inmage Systems, Inc. Minimizing configuration changes in a fabric-based data protection solution
US8224786B2 (en) 2004-06-01 2012-07-17 Inmage Systems, Inc. Acquisition and write validation of data of a networked host node to perform secondary storage
US9098455B2 (en) 2004-06-01 2015-08-04 Inmage Systems, Inc. Systems and methods of event driven recovery management
US8949395B2 (en) 2004-06-01 2015-02-03 Inmage Systems, Inc. Systems and methods of event driven recovery management
US20100169282A1 (en) * 2004-06-01 2010-07-01 Rajeev Atluri Acquisition and write validation of data of a networked host node to perform secondary storage
US20060010227A1 (en) * 2004-06-01 2006-01-12 Rajeev Atluri Methods and apparatus for accessing data from a primary data storage system for secondary storage
US20100169452A1 (en) * 2004-06-01 2010-07-01 Rajeev Atluri Causation of a data read operation against a first storage system by a server associated with a second storage system according to a host generated instruction
US9209989B2 (en) 2004-06-01 2015-12-08 Inmage Systems, Inc. Causation of a data read operation against a first storage system by a server associated with a second storage system according to a host generated instruction
US8683144B2 (en) 2005-09-16 2014-03-25 Inmage Systems, Inc. Causation of a data read against a first storage system to optionally store a data write to preserve the version to allow viewing and recovery
US20100169591A1 (en) * 2005-09-16 2010-07-01 Rajeev Atluri Time ordered view of backup data on behalf of a host
US20100169587A1 (en) * 2005-09-16 2010-07-01 Rajeev Atluri Causation of a data read against a first storage system to optionally store a data write to preserve the version to allow viewing and recovery
US8601225B2 (en) 2005-09-16 2013-12-03 Inmage Systems, Inc. Time ordered view of backup data on behalf of a host
US20070271428A1 (en) * 2006-05-19 2007-11-22 Inmage Systems, Inc. Method and apparatus of continuous data backup and access using virtual machines
US8868858B2 (en) * 2006-05-19 2014-10-21 Inmage Systems, Inc. Method and apparatus of continuous data backup and access using virtual machines
US20070271304A1 (en) * 2006-05-19 2007-11-22 Inmage Systems, Inc. Method and system of tiered quiescing
US8554727B2 (en) 2006-05-19 2013-10-08 Inmage Systems, Inc. Method and system of tiered quiescing
US7676502B2 (en) 2006-05-22 2010-03-09 Inmage Systems, Inc. Recovery point data view shift through a direction-agnostic roll algorithm
US20070282921A1 (en) * 2006-05-22 2007-12-06 Inmage Systems, Inc. Recovery point data view shift through a direction-agnostic roll algorithm
US20100169281A1 (en) * 2006-05-22 2010-07-01 Rajeev Atluri Coalescing and capturing data between events prior to and after a temporal window
US8838528B2 (en) 2006-05-22 2014-09-16 Inmage Systems, Inc. Coalescing and capturing data between events prior to and after a temporal window
US8527470B2 (en) 2006-05-22 2013-09-03 Rajeev Atluri Recovery point data view formation with generation of a recovery view and a coalesce policy
US7634507B2 (en) 2006-08-30 2009-12-15 Inmage Systems, Inc. Ensuring data persistence and consistency in enterprise storage backup systems
US20080059542A1 (en) * 2006-08-30 2008-03-06 Inmage Systems, Inc. Ensuring data persistence and consistency in enterprise storage backup systems
US10210949B2 (en) * 2007-10-17 2019-02-19 Dispersive Networks, Inc. Selective access to medical symptom tracking data using dispersive storage area network (SAN)
US20090199175A1 (en) * 2008-01-31 2009-08-06 Microsoft Corporation Dynamic Allocation of Virtual Application Server
US20090228589A1 (en) * 2008-03-04 2009-09-10 International Business Machines Corporation Server and storage-aware method for selecting virtual machine migration targets
US8230069B2 (en) 2008-03-04 2012-07-24 International Business Machines Corporation Server and storage-aware method for selecting virtual machine migration targets
WO2009151875A1 (en) * 2008-06-13 2009-12-17 Microsoft Corporation Synchronizing virtual machine and application life cycles
US8161479B2 (en) 2008-06-13 2012-04-17 Microsoft Corporation Synchronizing virtual machine and application life cycles
US20090313620A1 (en) * 2008-06-13 2009-12-17 Microsoft Corporation Synchronizing virtual machine and application life cycles
US8028194B2 (en) 2008-07-25 2011-09-27 Inmage Systems, Inc Sequencing technique to account for a clock error in a backup system
US20100023797A1 (en) * 2008-07-25 2010-01-28 Rajeev Atluri Sequencing technique to account for a clock error in a backup system
US20100169466A1 (en) * 2008-12-26 2010-07-01 Rajeev Atluri Configuring hosts of a secondary data storage and recovery system
US8527721B2 (en) 2008-12-26 2013-09-03 Rajeev Atluri Generating a recovery snapshot and creating a virtual view of the recovery snapshot
US20100169592A1 (en) * 2008-12-26 2010-07-01 Rajeev Atluri Generating a recovery snapshot and creating a virtual view of the recovery snapshot
US8069227B2 (en) 2008-12-26 2011-11-29 Inmage Systems, Inc. Configuring hosts of a secondary data storage and recovery system
US8392373B1 (en) * 2009-03-26 2013-03-05 Symantec Corporation Systems and methods for retaining an executable environment during a data archive process
US9128803B2 (en) 2010-12-15 2015-09-08 Microsoft Technology Licensing, Llc Application model for implementing composite applications
US9710233B2 (en) 2010-12-15 2017-07-18 Microsoft Technology Licensing, Llc Application model for implementing composite applications
US9507622B2 (en) * 2011-04-13 2016-11-29 Netapp, Inc. Identification of virtual applications for backup in a cloud computing system
US20150040132A1 (en) * 2011-04-13 2015-02-05 Netapp, Inc. Identification of virtual applications for backup in a cloud computing system
US20160077855A1 (en) * 2013-05-06 2016-03-17 China Unionpay Co., Ltd. Stateless virtual machine in cloud computing environment and application thereof
US9965305B2 (en) * 2013-05-06 2018-05-08 China Unionpay Co., Ltd. Stateless virtual machine in cloud computing environment and application thereof
US9558078B2 (en) 2014-10-28 2017-01-31 Microsoft Technology Licensing, Llc Point in time database restore from storage snapshots

Also Published As

Publication number Publication date
KR101343200B1 (en) 2013-12-19
BRPI0612115B1 (en) 2018-05-29
MX2008000754A (en) 2008-03-13
JP4871359B2 (en) 2012-02-08
KR20080043765A (en) 2008-05-19
RU2409838C2 (en) 2011-01-20
IL188705A0 (en) 2008-08-07
BRPI0612115A2 (en) 2010-10-19
NZ565717A (en) 2010-07-30
IL188705A (en) 2011-10-31
EP1915680A4 (en) 2013-05-01
CN101243395A (en) 2008-08-13
US7434218B2 (en) 2008-10-07
AU2006280333A1 (en) 2007-02-22
BRPI0612115A8 (en) 2017-10-03
EP1915680A2 (en) 2008-04-30
ZA200800964B (en) 2009-06-24
EP1915680B1 (en) 2014-03-26
NO337819B1 (en) 2016-06-27
AU2006280333B2 (en) 2011-03-17
WO2007021435A2 (en) 2007-02-22
RU2008105764A (en) 2009-08-20
JP2009505278A (en) 2009-02-05
WO2007021435A3 (en) 2007-08-30
NO20080275L (en) 2008-05-14

Similar Documents

Publication Publication Date Title
US7434218B2 (en) Archiving data in a virtual application environment
US10417098B2 (en) File level access to block level incremental backups of a virtual disk
US7827150B1 (en) Application aware storage appliance archiving
US7885938B1 (en) Techniques for granular recovery of data from local and remote storage
US6618736B1 (en) Template-based creation and archival of file systems
US8489552B1 (en) Generic granular restore of application data from a volume image backup
US8489830B2 (en) Implementing read/write, multi-versioned file system on top of backup data
US7634627B1 (en) System and method for performing extent level backups that support single file restores
JP5756394B2 (en) Computer program, system, and method for restoring a restore set of files from backup objects stored in a sequential backup device
US10353636B2 (en) Write filter with dynamically expandable overlay
US20060200639A1 (en) System and method for computer backup and recovery using incremental file-based updates applied to an image of a storage device
US7917902B2 (en) Archive stream based install
JP5938615B2 (en) Computer program, system, and method for restoring deduplicated data objects from sequential backup devices
US8041676B2 (en) Backup and restore of file system objects of unknown type
US9645897B2 (en) Using duplicated data to enhance data security in RAID environments
US20200250158A1 (en) Cohort management for version updates in data deduplication
WO2009031157A2 (en) Method and apparatus for grid based data recovery
US8819657B1 (en) Method and apparatus for maintaining data consistency in a virtualized application during software update installation
US11442822B1 (en) Providing an efficient preview capability for restoring emails backed up to an object storage
US10467187B1 (en) System and method for restoration of MICROSOFT exchange server mail
US10303782B1 (en) Method to allow multi-read access for exclusive access of virtual disks by using a virtualized copy of the disk
US9015432B1 (en) Establishing a mapping to a virtual disk
US20210141560A1 (en) Supporting file exclusions and commits in disk-based write filters
Both Back Up Everything–Frequently
US20110314108A1 (en) Data migration between disparate data structures

Legal Events

Date Code Title Description
AS Assignment

Owner name: MICROSOFT CORPORATION, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FRIES, ROBERT M;REEL/FRAME:016548/0289

Effective date: 20050812

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034543/0001

Effective date: 20141014

FPAY Fee payment

Year of fee payment: 8

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 12