US7017144B2 - Combined image views and method of creating images - Google Patents

Combined image views and method of creating images Download PDF

Info

Publication number
US7017144B2
US7017144B2 US10/173,297 US17329702A US7017144B2 US 7017144 B2 US7017144 B2 US 7017144B2 US 17329702 A US17329702 A US 17329702A US 7017144 B2 US7017144 B2 US 7017144B2
Authority
US
United States
Prior art keywords
image
file
software
data
file data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US10/173,297
Other versions
US20030233363A1 (en
Inventor
Jason Cohen
Ryan Burkhardt
Bruce L. Green
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
Assigned to MICROSOFT CORPORATION reassignment MICROSOFT CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BURKHARDT, RYAN, COHEN, JASON
Priority to US10/173,297 priority Critical patent/US7017144B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Assigned to MICROSOFT CORPORATION reassignment MICROSOFT CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GREEN, BRUCE L.
Priority to US10/603,453 priority patent/US7464176B2/en
Priority to US10/608,350 priority patent/US7120786B2/en
Priority to US10/641,798 priority patent/US20040034849A1/en
Publication of US20030233363A1 publication Critical patent/US20030233363A1/en
Priority to US11/319,886 priority patent/US20060130017A1/en
Publication of US7017144B2 publication Critical patent/US7017144B2/en
Application granted granted Critical
Priority to US11/459,560 priority patent/US7664944B2/en
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
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Definitions

  • the present invention relates to the field of disk imaging.
  • this invention relates to a system and method for collapsing multiple individual images into a single combined image from which each of the individual images may be re-created.
  • the invention includes, in one aspect, a software image combining method that collapses multiple individual software programs (images) into a single operational, combined image file from which each of the individual programs can be recreated.
  • the invention provides a solution to the problems in the prior art by creating a single operational, combined image from multiple individual images by (1) separating the descriptive data (e.g., metadata) describing the files within each individual image from the actual data of the files themselves, and (2) separating data within each individual image that is common across multiple images.
  • Each of the descriptive data of each individual image is included in the combined image whereas only a single copy of the common data is included in the combined image. This reduces the size of the combined image because the common data is not duplicated.
  • the new combined image contains descriptive data (metadata) distinguishing each image within a single image file as well as a store of bits distinguishing common files and files unique to each image.
  • One implementation of the invention is to minimize the storage requirements of individual, different applications that run on a common operating system version. According to the invention, these individual, different applications can be combined or collapsed into a single, combined image.
  • the combined image permits the mounting, modifying, updating, or restoring the image view of each of the individual, different applications as if each was individually, separately stored.
  • the software functionality of the invention allows multiple single file images to be combined into one image file to take advantage of single instance storage of the common files.
  • the invention comprises a computer-readable medium having stored thereon a first image of a data structure of a first software.
  • the first image can be combined with one or more other images having the same data structure into a combined image so that the first image and/or any of the one or more other images of the combined image can each be re-created by imaging from the combined image.
  • the first image comprises an image of descriptive data of the first software and an image of file data of the first software.
  • the invention comprises a method of converting a first software into a first image having a data structure which can be combined with one or more other images having the same data structure to form a combined image from which the first image and/or any one or more of the other images of the combined image can each be re-created by imaging from the combined image.
  • Metadata of the first image and a hash list of the first image are generated.
  • Each file data of the first software is read.
  • a hash for each file data of the first software is generated.
  • Each file data is added to the first image and the metadata and the hash list of the first image are updated if the hash for each file data is not in the hash list.
  • the invention comprises a combined image including a first image of a first software and including a second image of a second software.
  • the combined image comprises a header of the combined image; a first metadata of the first image; a second metadata of the second image; a first file data of file data of the first image and not of the second image; a second file data of file data of the second image and not of the first image; a common file data of file data of both the first image and the second image; and a signature of the combined image whereby the first image and/or the second image can be imaged from said combined image and whereby the size of the combined image is less than the total size of the first image and the second image.
  • the invention comprises a method comprising creating a first image from a first software, creating a second image from a second software, combining the first image and the second image into a combined image.
  • the first image includes first descriptive data corresponding to descriptive data of the first software and includes first file data corresponding to file data of the first software.
  • the second image includes second descriptive data corresponding to descriptive data of the second software and includes second file data corresponding to file data of the second software.
  • the invention comprises a method of combining a first image including a first software and a second image including a second software, wherein the first and second images include common file data, into a single combined image from which the first image and the second image can each be re-created by imaging.
  • the common file data is identified in both the first image and the second image.
  • the first image is separated into a first header, a first metadata, a first file data, the common file data and a first signature.
  • the second image is separated into a second header, a second metadata, a second file data, the common file data and a second signature.
  • the first metadata, the second metadata, the first file data, the second file data, and the common file data are combined into a single image which comprises the single combined image having a header and a signature.
  • the invention comprises a method of combining a first software and a second software into a single combined image from which a first image of the first software and a second image of the second software can each be re-created by imaging.
  • the first software is converted into a base image having metadata pointing to file data.
  • a combined digest of identifiers of all files identified by the metadata of the base image is generated.
  • the second software is converted into a second image having metadata pointing to file data.
  • a first file of the second image is read.
  • An identifier of the read first file of the second image is generated.
  • the first file is added to the files of the base image and the combined digest and the metadata of the base image are updated if the identifier of the read first file of the second image is not in the combined digest.
  • a next file of the second image is read; an identifier of the next read file of the second image is generated; and the next read file is added to the files of the combined image and the combined digest and the metadata of the base image are updated if the identifier of next read file of the second image is not in the combined digest.
  • the invention may comprise various other methods and apparatuses.
  • FIG. 1 is an exemplary diagram illustrating the conversion of a first software to a first image according to the invention.
  • FIG. 2 is an exemplary flow chart illustrating operation of one method according to the invention for creating a first image for use as a combined image.
  • FIG. 3 is an exemplary embodiment of the invention illustrating schematically the layout of image 1 and of image 2 which may be combined into a combined image.
  • FIG. 4 is an exemplary flow chart illustrating operation of a method according to the invention for creating a combined image.
  • FIG. 5 is a block diagram illustrating an exemplary computer-readable medium on which the combined image may be stored so that image 1 can be restored by imaging to a separate computer-readable medium and so that image 2 can be restored by imaging to another separate computer-readable medium, according to the invention.
  • FIG. 6 is a block diagram of an image server storage system according to the prior art wherein each disk image is separately and independently stored on a computer readable medium.
  • FIG. 7 is a block diagram of an image server storage system according to the invention wherein combined disk images are stored in memory.
  • FIG. 8 is a block diagram illustrating one example of a suitable computing system environment in which the invention may be implemented.
  • each individual software program 101 is converted into an image 151 including an image of descriptive data of the first software 101 and an image of the file data of the first software 101 .
  • Images” and “imaging” as used herein is also referred to as “disk images,” “disk imaging,” “volume images” and/or “volume imaging.”
  • the descriptive data of the first software 101 includes information representing the layout of the image 151 and is referred to as metadata 153 .
  • metadata is all information needed for a file or file system such as a file directory to represent the file.
  • the metadata may include any one or more of the following: file names (short or long), attributes, file times (e.g., create/access/modify), compression formats, locations (e.g., directories), directory structures, security information (e.g., access control list (ACL)) and/or stream names.
  • metadata may be defined to include any information which is not file data and may be viewed as including a header, an offset table and/or a signature. In this disclosure, the header, offset table and signature are separately illustrated for clarity.
  • the file data 155 includes any binary file data that is not metadata including but not limited to the following: the actual binary data of a particular file, stream data and/or any data of significant size.
  • the image 151 is stored on a computer-readable medium as a data structure of the software 101 .
  • one purpose of the image 151 is so that it can be combined with one or more other images having the same data structure into a combined image so that the first image 151 and/or any of the one or more other images of the combined image can be restored by imaging from the combined image.
  • the medium on which image 151 is stored may include one or more other images comprising a second image of descriptive data of a second software and a second image of file data of the second software.
  • Image 151 also includes a header 156 identifying the image 151 and a signature 159 corresponding to the image 151 .
  • the image 151 includes an offset table 161 including the following information for each file: a unique identification, location, size, any flags relating to the file and an optional hash of the file, as described below.
  • the metadata 153 points to the offset table 161 and the offset table 161 points to the file data 155 .
  • the metadata 153 has the unique identifier that can be found in the offset table 161 .
  • the offset table 161 includes the offset of the location of the file data in the image.
  • the metadata 153 is positioned between the file data 155 and the offset table 161 , which is one preferred embodiment of the layout of the image 151 according to the invention.
  • the remaining figures illustrate the metadata between the header and the file data for convenience. In general, it is contemplated that the various information may be located in various places within the image so that the invention is not intended to be limited to the locations illustrated.
  • FIG. 2 illustrates a method of converting the first software 101 into the first image 151 having a data structure which can be combined with one or more other images having the same data structure to form a combined image to which the first image 151 and/or any one or more of the other images of the combined image can be recreated by imaging from the combined image.
  • the method 200 of converting begins with generating metadata 152 of the first software at 202 .
  • an offset table 161 of the first image 151 including a hash for each file is generated at 204 .
  • the hash list of the offset table 161 is a list of identifiers or other short unique descriptors of each of the files which are presently in the first image 151 . Initially, the hash list would be empty since no files have yet been added to the first image 151 .
  • a first file, called file A, of the first software 101 is read and at 208 a hash of the read file A is generated.
  • the hash of file A is an identifier of the information in the file A.
  • a search in the offset table 161 for the hash and size of file A is conducted to determine whether or not the hash for file A (and its size) is within the offset table 161 . If found at 212 , this indicates that file A is already a part of image 151 and does not have to be added to the image 151 .
  • the metadata 152 is updated to include the unique identification (ID.) of file A which is already in the first image 151 .
  • the method proceeds to 216 to add file A to the first image 151 and at 218 the hash and size of file A are added to the offset table 161 of the first image 151 .
  • the new location of the file A in the first image 151 is determined and at 222 the offset table 161 of the first image 151 is updated to include the new file location of file A.
  • the method proceeds from 222 to 214 to update the metadata 152 of the first image 151 to include the unique identification of file A. Proceeding to 224 , a determination is made as to whether anymore files need to be read from the first software 101 .
  • the method returns to 206 to read the next file of the first software 101 .
  • A equals A+1 for each iteration of file reading.
  • A equaled 1 so that file 1 of the first software 101 was read.
  • A equals 2 so the second file is read and so on until all of the N files of the first software 101 are read.
  • the method proceeds to 226 to create a header and signature for the image 151 and then ends.
  • the method of FIG. 2 may be performed manually or with the aid of a tool or performed automatically with a tool programmed to provide the process of FIG. 2 .
  • the hash of the offset table 161 is optional for several reasons. First of all, it is not necessary to employ a hash list to determine what file data is a part of the image 151 . However, using hash identifiers in a hash list simplifies and speeds up the process of determining whether or not an additional file needs to be copied to an image. Second, the hash list need not be a part of the image 151 and could be a temporary list used only during the process of converting the first software 101 into the first image 151 .
  • the metadata 152 and offset table 161 for image 151 are created in memory and saved to a file which is added to image 151 . If hash identifiers are to be part of the offset table 161 , the hash identifiers are added to the table when it is created in memory.
  • a combined image 300 includes a first image 302 of a first software and the second image 304 of a second software.
  • the combined image includes a header 306 of the combined image 300 , a first metadata 308 corresponding to the first image 302 , a second metadata 310 corresponding to the second image 304 , a first file data 312 of file data of the first image 302 and not of the second image 304 , a second file data 314 of file data of the second image 304 and not of the first image 302 , and an offset table 320 and a signature 316 of the combined image 300 .
  • the size of the combined image 300 is less than the total size of the first image 302 and the second image 304 .
  • One advantage of the combined image 300 is that the first image 302 and/or the second image 304 can be restored from the combined image 300 , as will be described below in greater detail with respect to FIG. 5 .
  • a method of creating the combined image 300 includes first creating the first image 302 from the first software, and creating the second image 304 from the second software followed by combining the first image 302 and the second image 304 into the combined image 300 .
  • the first image 302 includes first descriptive data (metadata 1 ) corresponding to descriptive data of the first software which points to the offset table (offset table 1 ) which points to first file data corresponding to file data of the first software.
  • the second image 304 includes second descriptive data (metadata 2 ) corresponding to descriptive data of the second software which points to the offset table (offset table 2 ) which points to second file data corresponding to file data of the second software.
  • the combined image 300 includes only one copy of the common file data 318 .
  • the common file data of both the first and second images would be identified.
  • the first image 302 would be separated into a first header, a first metadata, a first file data, the common file data, a first offset table and a first signature.
  • the second image 304 would be separated into a second header, a second metadata, a second file data, the common file data, a second offset table and a second signature.
  • the combined image 300 includes first descriptive data (metadata 1 ) corresponding to descriptive data of the first software which points to the offset table (offset table 1 ) which points to first file data and the common file data corresponding to file data of the first software.
  • first descriptive data metadata 1
  • offset table 2 second descriptive data
  • second descriptive data metadata 2
  • a list of identifiers such as a hash of each of the files may be created and used in the process of combining the first image 302 and the second image 304 .
  • a list of identifiers e.g., a hash
  • a file data of the second image 304 would be read and for each read file an identifier would be associated with each of the read files based on the contents of the file data.
  • the read file data would be combined or added to the combined image 300 when the identifier of the read file is not in the list of identifiers of the combined image 300 .
  • the descriptive data (metadata 1 and/or metadata 2 ) would be updated to include the identification of the new file data which was added to the combined image 300 and the offset table would be updated to include the new location of the new file data.
  • the identification of each file must be unique so that it does not collide with the identification of other files. In this regard, each file identification is verified as unique and modified to be unique if it is not before the metadata is updated.
  • a method is illustrated of combining a first software and a second software into a single combined image 300 from which a first image 302 of the first software and a second image 304 of the second software can each be recreated by imaging.
  • the first software is converted into a base image having metadata pointing to its file data at 402 .
  • the base image is the image to which files will be added and may be a pre-existing image or a newly created image
  • preexisting image 302 may be viewed as the base image to which image 304 would be added.
  • a combined offset table including the hash list of identifiers of all the files identified by the metadata of the base image is next generated at 404 .
  • the second software is converted into a second image 304 .
  • the remainder of the substantive portion of adding the second image 304 to the base image 302 of the method illustrated in FIG. 4 corresponds to the substantive portion of the method of FIG. 2 .
  • a hash for each file is generated, and a search for the hash and size of the read file is made within the hash list of the offset table of the base image. If the hash and size of the read file are in the offset table indicating that the file data is part of the base image, the metadata of the base image is updated to include the unique identification of the file in the base image.
  • the file is added to the base image, the hash and size of the file are added to the offset table of the base image, the new location of the file is determined and the offset table of the base image is updated to include the new location of the new file.
  • the metadata of the second image is updated to reflect the unique identification of the base image. This is done for each file of the second image 304 .
  • a header and signature of the base image is created and the base image now becomes the combined image at 408 from which the first and second images can be recreated.
  • FIG. 4 also illustrates at 410 that file data of the combined image can be modified, updated or restored.
  • first file data of the first image may be modified, updated or restored and an offset table of the first image may be modified to point to the modified, updated or restored first file data.
  • second file data of the second image may be modified, updated or restored and an offset table of the second image may be modified to point to the modified, updated or restored second file data.
  • common file data of the combined image may be modified, updated or restored and offset tables of the common image may be modified to point to the modified, updated or restored common file data.
  • One advantage to the latter aspect is that common data need only be modified, updated or restored once for all images (e.g., the first and second images). This is in contrast to the past wherein the first and second images were separately stored and the common data would have to be updated in the first image and also updated in the second image.
  • this diagram illustrates one advantage according to the invention of creating a combined image 500 so that a first image 502 can be restored from the combined image 500 and/or a second image 504 can be restored from the combined image 500 .
  • This advantage may be applicable is a software application which has different SKUs and/or editions for use with different operating systems. To a large extent, these various editions of software have a large amount of common data. However, it has been the practice in the past to image each one of these editions separately. Thus, a vendor that was selling these various editions would be required to inventory each one of the editions separately on a separate computer-readable medium.
  • these various editions of the software may be combined into a single combined image 500 from which any one of the editions 502 , 504 may be recreated.
  • the combined image 500 may be used with an executable file 506 is part of an external set-up program or other tool for extracting an image.
  • the file 506 when executed, extracts a particular one of the images used to create the combined image.
  • the executable file may operate in response to a product key (P.K.) or an identifier (I.) associated with the software which is input by a user.
  • reference character 1100 refers to a image server store having a plurality of disk images 1102 – 1118 separately and independently stored on a computer readable medium (CRM). Many of these images may have common data.
  • images 1102 – 1106 correspond to versions A, B and C of the same program (image 1 ), respectively.
  • images 1108 – 1112 correspond to versions A, B and C of another program (image 2 ).
  • images 1114 – 1118 correspond to versions A, B and C of another program (image 3 ).
  • each image is separately stored so that it can be copied to a destination device such as a destination device # 1 through destination device #N.
  • the image server store 1100 is selectively linked to the plurality of destination devices # 1 through #N.
  • This linking may be a physical interconnection such as a hardware connection or a fiber optic line.
  • this linking may be a wireless interconnection such as a radio frequency (RF) or infrared (IR) transmission.
  • RF radio frequency
  • IR infrared
  • the purpose of this linking is to allow a selected one or more of the images 1102 – 1118 to be imaged from the image server store 1100 to a selected destination device. For example, if image 1102 of image 1 version A is to be loaded onto destination device # 2 , image 1102 would be copied to destination device # 2 via link 1120 .
  • this setup allows any one or more images 1102 – 1118 to be selectively copied to any one or more destination devices # 1 through #N via link 1120 .
  • one disadvantage of the prior art system illustrated in FIG. 6 is that a large amount of CRM is needed for each of the images 1102 – 1118 .
  • each image is 450 megabytes (MB) in size
  • 9 ⁇ 450 MB or 4050 MB of CRM would be needed to accommodate each of the nine (9) images on the server store 1100 .
  • reference character 1200 refers to a image server store having an integrated or combined image 1202 separately and independently stored on CRM.
  • Each integrated image is a combination of various images which share common file data, as will be described in detail below. Common data is only copied once into the integrated image.
  • integrated image 1202 is a combination of versions A, B and C of image 1 and versions A, B and C of image 2 and versions A, B and C of image 3 , each of which may be different image editions of the same software program.
  • the integrated image includes a header, metadata files for versions 1 A through metadata 3 C, file data files specific to versions 1 A to 3 C, offset tables for versions 1 A through 3 C, common data shared by all versions and a signature.
  • other integrated images may be part of the image server store 1200 .
  • Each integrated image 1202 is separately stored so that the image or selected portion of the image, as noted below, can be copied to a destination device.
  • the image server store 1200 is selectively linked to a plurality of destination devices # 1 through #N.
  • This linking may be a physical interconnection such as a hardware connection or a fiber optic line.
  • this linking may be a wireless interconnection such as an RF or IR transmission. The purpose of this linking is to allow a selected one or more or part of one or more of the image 1202 or other images on the server store to be imaged from the image server store 1200 to a selected destination device.
  • image 1 version A For example, if image 1 version A is to be loaded onto destination device # 2 , the portions of image 1202 corresponding to image 1 version A (i.e., image 1102 in FIG. 6 ) would be copied to destination device # 2 via link 1208 .
  • this setup allows any one or more or portions of one or more of the integrated image 1202 to be selectively copied to any one or more destination devices # 1 through #N via link 1208 .
  • one advantage of the system illustrated in FIG. 7 is that a much smaller amount of disk capacity (or volume) is needed for each of the integrated image 1202 as compared to the disk capacity needed for images 1102 – 118 .
  • This makes it easier to sync up with other image servers over low bandwidth connections (where as before every new image replicated, now only the data that is unique to the new image or the delta to the image needs to be replicated). For example, suppose each of the images 1102 – 118 includes 350 MB of common filed data and 100 MB of unique data. As a result, the integrated image 1202 , which is a combination of 9 images (images 1102 – 118 of FIG.
  • the image server store 1100 requires 4050 MB of disk capacity to store 9 images from which any one or more of the 9 images may be copied to a destination device whereas the image server store 1200 requires 1600 MB of disk capacity to store 2 combined images from which any one or more of the 9 images may be copied to a destination device.
  • image server store 1200 has more available storage (e.g., 2450 MB of disk capacity) as compared to image server store 1100 , both of which store information from which 9 images may be imaged to a destination device.
  • a system for manipulation by a computer (not shown) of the integrated image 1202 is contemplated.
  • the integrated image includes multiple software programs stored on the server store and has common files shared by the plurality of the software programs and unique files unique to a particular one of the software programs.
  • the computer and the image store are connected to a data communication system.
  • the system would include a driver executing on the computer to provide access to the server store via the data communication system.
  • the driver comprises one or more components for manipulating the common files and/or the unique files.
  • a method for manipulation by a computer of the integrated image of multiple software programs stored on a server store is provided. The method comprises accessing the server store and independently manipulating the common files and/or the unique files.
  • FIG. 8 shows one example of a general purpose computing device in the form of a computer 130 .
  • a computer such as the computer 130 is suitable for use in the other figures illustrated and described herein.
  • Computer 130 has one or more processors or processing units 132 and a system memory 134 on which a combined image according to the invention may stored and/or individual images recreated from a combined image may be stored.
  • a system bus 136 couples various system components including the system memory 134 to the processors 132 .
  • the bus 136 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures.
  • such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus.
  • ISA Industry Standard Architecture
  • MCA Micro Channel Architecture
  • EISA Enhanced ISA
  • VESA Video Electronics Standards Association
  • PCI Peripheral Component Interconnect
  • the computer 130 typically has at least some form of computer readable media.
  • Computer readable media which include both volatile and nonvolatile media, removable and non-removable media, may be any available medium that can be accessed by computer 130 .
  • Computer readable media comprise computer storage media and communication media.
  • Computer storage media include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
  • computer storage media include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and that can be accessed by computer 130 .
  • Communication media typically embody computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media. Those skilled in the art are familiar with the modulated data signal, which has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
  • Wired media such as a wired network or direct-wired connection
  • wireless media such as acoustic, RF, infrared, and other wireless media
  • communication media such as acoustic, RF, infrared, and other wireless media
  • the system memory 134 includes computer storage media in the form of removable and/or non-removable, volatile and/or nonvolatile memory.
  • system memory 134 includes read only memory (ROM) 138 and random access memory (RAM) 140 .
  • ROM read only memory
  • RAM random access memory
  • BIOS basic input/output system
  • RAM 140 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 132 .
  • FIG. 8 illustrates operating system 144 , application programs 146 , other program modules 148 , and program data 151 .
  • the computer 130 may also include other removable/non-removable, volatile/nonvolatile computer storage media.
  • FIG. 8 illustrates a hard disk drive 154 that reads from or writes to non-removable, nonvolatile magnetic media.
  • FIG. 8 also shows a magnetic disk drive 156 that reads from or writes to a removable, nonvolatile magnetic disk 158 , and an optical disk drive 160 that reads from or writes to a removable, nonvolatile optical disk 162 such as a CD-ROM or other optical media.
  • removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like.
  • the hard disk drive 154 , and magnetic disk drive 156 and optical disk drive 160 are typically connected to the system bus 136 by a non-volatile memory interface, such as interface 166 .
  • the drives or other mass storage devices and their associated computer storage media discussed above and illustrated in FIG. 8 provide storage of computer-readable instructions, data structures, program modules and other data for the computer 130 .
  • hard disk drive 154 is illustrated as storing operating system 170 , application programs 172 , other program modules 174 , and program data 176 .
  • operating system 170 application programs 172 , other program modules 174 , and program data 176 .
  • these components can either be the same as or different from operating system 144 , application programs 146 , other program modules 148 , and program data 151 .
  • Operating system 170 , application programs 172 , other program modules 174 , and program data 176 are given different numbers here to illustrate that, at a minimum, they are different copies.
  • a user may enter commands and information into computer 130 through input devices or user interface selection devices such as a keyboard 180 and a pointing device 182 (e.g., a mouse, trackball, pen, or touch pad).
  • Other input devices may include a microphone, joystick, game pad, satellite dish, scanner, or the like.
  • processing unit 132 through a user input interface 184 that is coupled to system bus 136 , but may be connected by other interface and bus structures, such as a parallel port, game port, or a Universal Serial Bus (USB).
  • a monitor 188 or other type of display device is also connected to system bus 136 via an interface, such as a video interface 190 .
  • computers often include other peripheral output devices (not shown) such as a printer and speakers, which may be connected through an output peripheral interface (not shown).
  • the computer 130 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 194 .
  • the remote computer 194 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to computer 130 .
  • the logical connections depicted in FIG. 8 include a local area network (LAN) 196 and a wide area network (WAN) 198 , but may also include other networks.
  • LAN local area network
  • WAN wide area network
  • Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and global computer networks (e.g., the Internet).
  • computer 130 When used in a local area networking environment, computer 130 is connected to the LAN 196 through a network interface or adapter 186 . When use d in a wide area networking environment, computer 130 typically includes a modem 178 or other means for establishing communications over the WAN 198 , such as the Internet.
  • the modem 178 which may be internal or external, is connected to system bus 136 via the user input interface 184 , or other appropriate mechanism.
  • program modules depicted relative to computer 130 may be stored in a remote memory storage device (not shown).
  • FIG. 8 illustrates remote application programs 192 as residing on the memory device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
  • the data processors of computer 130 are programmed by means of instructions stored at different times in the various computer-readable storage media of the computer.
  • Programs and operating systems are typically distributed, for example, on floppy disks or CD-ROMs. From there, they are installed or loaded into the secondary memory of a computer. At execution, they are loaded at least partially into the computer's primary electronic memory.
  • the invention described herein includes these and other various types of computer-readable storage media when such media contain instructions or programs for implementing the steps described below in conjunction with a microprocessor or other data processor.
  • the invention also includes the computer itself when programmed according to the methods and techniques described herein.
  • the invention is operational with numerous other general purpose or special purpose computing system environments or configurations.
  • the computing system environment is not intended to suggest any limitation as to the scope of use or functionality of the invention.
  • the computing system environment should not be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment.
  • Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
  • the invention may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices.
  • program modules include, but are not limited to, routines, programs, objects, components, and data structures that perform particular tasks or implement particular abstract data types.
  • the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
  • program modules may be located in both local and remote computer storage media including memory storage devices.
  • computer 130 executes computer-executable instructions such as the executable file 506 .
  • Windows brand XP Home and Windows brand XP Pro are different SKU numbers for applications with are very similar and which share a large amount of common data.
  • the Home version is approximately 355 MB and the Pro version is approximately 375 MB. If both editions are separately copied onto a single media, about 730 MB would be required.
  • imaging the two editions as a single combined image results in a single combined image of about 390 MB.
  • the combined image saves over 300 MB of disk/media.
  • both the Home and Pro editions may be offered with or without Microsoft Office.

Abstract

A first image of a first software which can be combined with other images of other software such that any one or more of the images can be restored from the combined image, and methods relating thereto. The method of making the combined image comprises creating a first image from a first software, creating a second image from the second software, and combining the first image and the second image into the combined image. Each image includes first descriptive data (metadata) corresponding to descriptive data of its software and includes file data corresponding to file data of its software.

Description

TECHNICAL FIELD
The present invention relates to the field of disk imaging. In particular, this invention relates to a system and method for collapsing multiple individual images into a single combined image from which each of the individual images may be re-created.
BACKGROUND OF THE INVENTION
Individual software images each include a large amount of data. In general, software images are increasing in size and take up increasingly large amounts of persistent and/or non-persistent storage space for a given computer. Historically, this size has grown at an exponential rate. For example, in certain cases there is a need to capture a copy of an installed operating system, applications, utilities, or other data (sometimes referred to as “capturing a volume”). One purpose of the captured copy is for creating an image including data that can be reused at a later date, such as by being redistributed to other computers. Frequently, there is a tremendous amount of space taken up by the captured copy and its data. Usually, multiple images are copied onto a single computer-readable media. These multiple images on the same media differ typically in only certain respects, e.g., based on the language of the installed OS, which applications (and versions of those applications) are included on that image, etc. Some multiple images are merely different SKUs or editions of the same program. The result is that the majority of the data in those multiple images is common, creating a large amount of redundant space across images on the same media, which space could be used for other information.
For these reasons, a system and method for reducing the amount of redundant space is desired to address one or more of these and other disadvantages.
SUMMARY OF THE INVENTION
The invention includes, in one aspect, a software image combining method that collapses multiple individual software programs (images) into a single operational, combined image file from which each of the individual programs can be recreated. In another aspect, the invention provides a solution to the problems in the prior art by creating a single operational, combined image from multiple individual images by (1) separating the descriptive data (e.g., metadata) describing the files within each individual image from the actual data of the files themselves, and (2) separating data within each individual image that is common across multiple images. Each of the descriptive data of each individual image is included in the combined image whereas only a single copy of the common data is included in the combined image. This reduces the size of the combined image because the common data is not duplicated. The new combined image contains descriptive data (metadata) distinguishing each image within a single image file as well as a store of bits distinguishing common files and files unique to each image.
One implementation of the invention is to minimize the storage requirements of individual, different applications that run on a common operating system version. According to the invention, these individual, different applications can be combined or collapsed into a single, combined image. The combined image permits the mounting, modifying, updating, or restoring the image view of each of the individual, different applications as if each was individually, separately stored. The software functionality of the invention allows multiple single file images to be combined into one image file to take advantage of single instance storage of the common files.
In one form, the invention comprises a computer-readable medium having stored thereon a first image of a data structure of a first software. The first image can be combined with one or more other images having the same data structure into a combined image so that the first image and/or any of the one or more other images of the combined image can each be re-created by imaging from the combined image. The first image comprises an image of descriptive data of the first software and an image of file data of the first software.
In another form, the invention comprises a method of converting a first software into a first image having a data structure which can be combined with one or more other images having the same data structure to form a combined image from which the first image and/or any one or more of the other images of the combined image can each be re-created by imaging from the combined image. Metadata of the first image and a hash list of the first image are generated. Each file data of the first software is read. A hash for each file data of the first software is generated. Each file data is added to the first image and the metadata and the hash list of the first image are updated if the hash for each file data is not in the hash list.
In another form, the invention comprises a combined image including a first image of a first software and including a second image of a second software. The combined image comprises a header of the combined image; a first metadata of the first image; a second metadata of the second image; a first file data of file data of the first image and not of the second image; a second file data of file data of the second image and not of the first image; a common file data of file data of both the first image and the second image; and a signature of the combined image whereby the first image and/or the second image can be imaged from said combined image and whereby the size of the combined image is less than the total size of the first image and the second image.
In another form, the invention comprises a method comprising creating a first image from a first software, creating a second image from a second software, combining the first image and the second image into a combined image. The first image includes first descriptive data corresponding to descriptive data of the first software and includes first file data corresponding to file data of the first software. The second image includes second descriptive data corresponding to descriptive data of the second software and includes second file data corresponding to file data of the second software.
In another form, the invention comprises a method of combining a first image including a first software and a second image including a second software, wherein the first and second images include common file data, into a single combined image from which the first image and the second image can each be re-created by imaging. The common file data is identified in both the first image and the second image. The first image is separated into a first header, a first metadata, a first file data, the common file data and a first signature. The second image is separated into a second header, a second metadata, a second file data, the common file data and a second signature. The first metadata, the second metadata, the first file data, the second file data, and the common file data are combined into a single image which comprises the single combined image having a header and a signature.
In another form, the invention comprises a method of combining a first software and a second software into a single combined image from which a first image of the first software and a second image of the second software can each be re-created by imaging. The first software is converted into a base image having metadata pointing to file data. A combined digest of identifiers of all files identified by the metadata of the base image is generated. The second software is converted into a second image having metadata pointing to file data. A first file of the second image is read. An identifier of the read first file of the second image is generated. The first file is added to the files of the base image and the combined digest and the metadata of the base image are updated if the identifier of the read first file of the second image is not in the combined digest. For each of the remaining files of the second image: a next file of the second image is read; an identifier of the next read file of the second image is generated; and the next read file is added to the files of the combined image and the combined digest and the metadata of the base image are updated if the identifier of next read file of the second image is not in the combined digest.
Alternatively, the invention may comprise various other methods and apparatuses.
Other features will be in part apparent and in part pointed out hereinafter.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is an exemplary diagram illustrating the conversion of a first software to a first image according to the invention.
FIG. 2 is an exemplary flow chart illustrating operation of one method according to the invention for creating a first image for use as a combined image.
FIG. 3 is an exemplary embodiment of the invention illustrating schematically the layout of image 1 and of image 2 which may be combined into a combined image.
FIG. 4 is an exemplary flow chart illustrating operation of a method according to the invention for creating a combined image.
FIG. 5 is a block diagram illustrating an exemplary computer-readable medium on which the combined image may be stored so that image 1 can be restored by imaging to a separate computer-readable medium and so that image 2 can be restored by imaging to another separate computer-readable medium, according to the invention.
FIG. 6 is a block diagram of an image server storage system according to the prior art wherein each disk image is separately and independently stored on a computer readable medium.
FIG. 7 is a block diagram of an image server storage system according to the invention wherein combined disk images are stored in memory.
FIG. 8 is a block diagram illustrating one example of a suitable computing system environment in which the invention may be implemented.
Corresponding reference characters indicate corresponding parts throughout the drawings.
DETAILED DESCRIPTION OF THE INVENTION
Referring first to FIG. 1, in order to permit combining of various related and/or unrelated software items (herein referred to as programs), each individual software program 101 is converted into an image 151 including an image of descriptive data of the first software 101 and an image of the file data of the first software 101. “Images” and “imaging” as used herein is also referred to as “disk images,” “disk imaging,” “volume images” and/or “volume imaging.”
The descriptive data of the first software 101 includes information representing the layout of the image 151 and is referred to as metadata 153. Essentially, metadata is all information needed for a file or file system such as a file directory to represent the file. The metadata may include any one or more of the following: file names (short or long), attributes, file times (e.g., create/access/modify), compression formats, locations (e.g., directories), directory structures, security information (e.g., access control list (ACL)) and/or stream names. By some definitions and in certain contexts, metadata may be defined to include any information which is not file data and may be viewed as including a header, an offset table and/or a signature. In this disclosure, the header, offset table and signature are separately illustrated for clarity.
The file data 155 includes any binary file data that is not metadata including but not limited to the following: the actual binary data of a particular file, stream data and/or any data of significant size. In general, the image 151 is stored on a computer-readable medium as a data structure of the software 101. As will be noted below in greater detail, one purpose of the image 151 is so that it can be combined with one or more other images having the same data structure into a combined image so that the first image 151 and/or any of the one or more other images of the combined image can be restored by imaging from the combined image. For example, the medium on which image 151 is stored may include one or more other images comprising a second image of descriptive data of a second software and a second image of file data of the second software. In some cases, at least part of the file data of the first image 151 is the same as at least part of the file data of the second image so that the image 151 may be combined with the other images, as will be discussed in greater detail below. Image 151 also includes a header 156 identifying the image 151 and a signature 159 corresponding to the image 151.
In addition, the image 151 includes an offset table 161 including the following information for each file: a unique identification, location, size, any flags relating to the file and an optional hash of the file, as described below. As illustrated in FIG. 1, the metadata 153 points to the offset table 161 and the offset table 161 points to the file data 155. In particular, the metadata 153 has the unique identifier that can be found in the offset table 161. The offset table 161 includes the offset of the location of the file data in the image.
As shown in FIG. 1, the metadata 153 is positioned between the file data 155 and the offset table 161, which is one preferred embodiment of the layout of the image 151 according to the invention. The remaining figures illustrate the metadata between the header and the file data for convenience. In general, it is contemplated that the various information may be located in various places within the image so that the invention is not intended to be limited to the locations illustrated.
FIG. 2 illustrates a method of converting the first software 101 into the first image 151 having a data structure which can be combined with one or more other images having the same data structure to form a combined image to which the first image 151 and/or any one or more of the other images of the combined image can be recreated by imaging from the combined image. The method 200 of converting begins with generating metadata 152 of the first software at 202. Next, an offset table 161 of the first image 151 including a hash for each file is generated at 204. The hash list of the offset table 161 is a list of identifiers or other short unique descriptors of each of the files which are presently in the first image 151. Initially, the hash list would be empty since no files have yet been added to the first image 151.
At 206, a first file, called file A, of the first software 101 is read and at 208 a hash of the read file A is generated. The hash of file A is an identifier of the information in the file A. At 210, a search in the offset table 161 for the hash and size of file A is conducted to determine whether or not the hash for file A (and its size) is within the offset table 161. If found at 212, this indicates that file A is already a part of image 151 and does not have to be added to the image 151. At this point at 214, the metadata 152 is updated to include the unique identification (ID.) of file A which is already in the first image 151.
If it is determined at 212 that the hash and size of file A are not in the offset table 161 of the first image, the method proceeds to 216 to add file A to the first image 151 and at 218 the hash and size of file A are added to the offset table 161 of the first image 151. Next, at 220 the new location of the file A in the first image 151 is determined and at 222 the offset table 161 of the first image 151 is updated to include the new file location of file A. The method proceeds from 222 to 214 to update the metadata 152 of the first image 151 to include the unique identification of file A. Proceeding to 224, a determination is made as to whether anymore files need to be read from the first software 101. If there is more than one file as part of the first software 101, the method returns to 206 to read the next file of the first software 101. In the general case, A equals A+1 for each iteration of file reading. In the first iteration, A equaled 1 so that file 1 of the first software 101 was read. In the second iteration, A equals 2 so the second file is read and so on until all of the N files of the first software 101 are read. After all the files are read, the method proceeds to 226 to create a header and signature for the image 151 and then ends.
The method of FIG. 2 may be performed manually or with the aid of a tool or performed automatically with a tool programmed to provide the process of FIG. 2. As noted above and as illustrated in FIG. 1, the hash of the offset table 161 is optional for several reasons. First of all, it is not necessary to employ a hash list to determine what file data is a part of the image 151. However, using hash identifiers in a hash list simplifies and speeds up the process of determining whether or not an additional file needs to be copied to an image. Second, the hash list need not be a part of the image 151 and could be a temporary list used only during the process of converting the first software 101 into the first image 151. However, there are some advantages to maintaining a hash list of each mounted image so that as additional information is added to an image, or as an image is modified or updated, an up to date hash list of the image can be checked to determine whether or not the information that is being changed is redundant with other information that is already part of the image. In general, the metadata 152 and offset table 161 for image 151 are created in memory and saved to a file which is added to image 151. If hash identifiers are to be part of the offset table 161, the hash identifiers are added to the table when it is created in memory.
One reason for converting the first software into a first image is so that the first image can be combined with other images to create a combined image. For example, as shown in FIG. 3, a combined image 300 includes a first image 302 of a first software and the second image 304 of a second software. The combined image includes a header 306 of the combined image 300, a first metadata 308 corresponding to the first image 302, a second metadata 310 corresponding to the second image 304, a first file data 312 of file data of the first image 302 and not of the second image 304, a second file data 314 of file data of the second image 304 and not of the first image 302, and an offset table 320 and a signature 316 of the combined image 300. In cases where the first image 302 and the second image 304 have some of the same file data, such common data 318 is only copied once to the combined image. As a result, the size of the combined image 300 is less than the total size of the first image 302 and the second image 304. One advantage of the combined image 300 is that the first image 302 and/or the second image 304 can be restored from the combined image 300, as will be described below in greater detail with respect to FIG. 5.
As illustrated in FIG. 3, a method of creating the combined image 300 includes first creating the first image 302 from the first software, and creating the second image 304 from the second software followed by combining the first image 302 and the second image 304 into the combined image 300. As noted above and as illustrated in FIG. 3, the first image 302 includes first descriptive data (metadata 1) corresponding to descriptive data of the first software which points to the offset table (offset table 1) which points to first file data corresponding to file data of the first software. Similarly, the second image 304 includes second descriptive data (metadata 2) corresponding to descriptive data of the second software which points to the offset table (offset table 2) which points to second file data corresponding to file data of the second software. In cases where the first and second images both include at least some common file data 318, the combined image 300 includes only one copy of the common file data 318.
In a case where two images or more than two images are to be combined and it is known that the images have common file data, the following approach may be employed. Initially, the common file data of both the first and second images would be identified. The first image 302 would be separated into a first header, a first metadata, a first file data, the common file data, a first offset table and a first signature. Similarly, the second image 304 would be separated into a second header, a second metadata, a second file data, the common file data, a second offset table and a second signature. In order to create the combined image, the following would be combined: the first metadata, the second metadata, the first file data, the second file data, and the common file data into a single image which comprises the single combined image. A header, an offset table and a signature would then be added to the combined image 300. As a result, the combined image 300 includes first descriptive data (metadata 1) corresponding to descriptive data of the first software which points to the offset table (offset table 1) which points to first file data and the common file data corresponding to file data of the first software. In addition, the combined image 300 includes second descriptive data (metadata 2) corresponding to descriptive data of the second software which points to the offset table (offset table 2) which points to second file data and the common file data corresponding to file data of the second software.
Although not illustrated in FIG. 3, it is contemplated that a list of identifiers such as a hash of each of the files may be created and used in the process of combining the first image 302 and the second image 304. Initially, a list of identifiers (e.g., a hash) of the files in the combined image 300 would be created. For each of the file data in the first image 302, a file data of the first image 302 would be read and an identifier would be associated with each read file based on the contents of the file data. For each of the file data of the second image, a file data of the second image 304 would be read and for each read file an identifier would be associated with each of the read files based on the contents of the file data. In this situation, the read file data would be combined or added to the combined image 300 when the identifier of the read file is not in the list of identifiers of the combined image 300. As a new file is added to the combined image 300, the descriptive data (metadata 1 and/or metadata 2) would be updated to include the identification of the new file data which was added to the combined image 300 and the offset table would be updated to include the new location of the new file data. The identification of each file must be unique so that it does not collide with the identification of other files. In this regard, each file identification is verified as unique and modified to be unique if it is not before the metadata is updated.
Referring to FIG. 4, a method is illustrated of combining a first software and a second software into a single combined image 300 from which a first image 302 of the first software and a second image 304 of the second software can each be recreated by imaging. Initially, the first software is converted into a base image having metadata pointing to its file data at 402. In general, the base image is the image to which files will be added and may be a pre-existing image or a newly created image For example, preexisting image 302 may be viewed as the base image to which image 304 would be added. A combined offset table including the hash list of identifiers of all the files identified by the metadata of the base image is next generated at 404. Next at 406, the second software is converted into a second image 304.
The remainder of the substantive portion of adding the second image 304 to the base image 302 of the method illustrated in FIG. 4 corresponds to the substantive portion of the method of FIG. 2. In particular, for each file the second image has read, a hash for each file is generated, and a search for the hash and size of the read file is made within the hash list of the offset table of the base image. If the hash and size of the read file are in the offset table indicating that the file data is part of the base image, the metadata of the base image is updated to include the unique identification of the file in the base image. If the hash of the read file is not in the hash list, the file is added to the base image, the hash and size of the file are added to the offset table of the base image, the new location of the file is determined and the offset table of the base image is updated to include the new location of the new file. Next, the metadata of the second image is updated to reflect the unique identification of the base image. This is done for each file of the second image 304. When all the files have been considered, a header and signature of the base image is created and the base image now becomes the combined image at 408 from which the first and second images can be recreated.
FIG. 4 also illustrates at 410 that file data of the combined image can be modified, updated or restored. In particular, first file data of the first image may be modified, updated or restored and an offset table of the first image may be modified to point to the modified, updated or restored first file data. In addition, second file data of the second image may be modified, updated or restored and an offset table of the second image may be modified to point to the modified, updated or restored second file data. Furthermore, common file data of the combined image may be modified, updated or restored and offset tables of the common image may be modified to point to the modified, updated or restored common file data. One advantage to the latter aspect is that common data need only be modified, updated or restored once for all images (e.g., the first and second images). This is in contrast to the past wherein the first and second images were separately stored and the common data would have to be updated in the first image and also updated in the second image.
Referring next to FIG. 5, this diagram illustrates one advantage according to the invention of creating a combined image 500 so that a first image 502 can be restored from the combined image 500 and/or a second image 504 can be restored from the combined image 500. One example where this advantage may be applicable is a software application which has different SKUs and/or editions for use with different operating systems. To a large extent, these various editions of software have a large amount of common data. However, it has been the practice in the past to image each one of these editions separately. Thus, a vendor that was selling these various editions would be required to inventory each one of the editions separately on a separate computer-readable medium. According to one aspect of the invention, these various editions of the software may be combined into a single combined image 500 from which any one of the editions 502, 504 may be recreated. It is also contemplated that the combined image 500 may be used with an executable file 506 is part of an external set-up program or other tool for extracting an image. The file 506, when executed, extracts a particular one of the images used to create the combined image. It is further contemplated that the executable file may operate in response to a product key (P.K.) or an identifier (I.) associated with the software which is input by a user.
One particular application of the invention relates to an image server storage system. Referring first to FIG. 6, a block diagram of an image server storage system according to the prior art is illustrated. In general, reference character 1100 refers to a image server store having a plurality of disk images 11021118 separately and independently stored on a computer readable medium (CRM). Many of these images may have common data. For example, images 11021106 correspond to versions A, B and C of the same program (image 1), respectively. As another example, images 11081112 correspond to versions A, B and C of another program (image 2). As another example, images 11141118 correspond to versions A, B and C of another program (image 3). However, each image is separately stored so that it can be copied to a destination device such as a destination device # 1 through destination device #N.
The image server store 1100 is selectively linked to the plurality of destination devices # 1 through #N. This linking, as indicated by arrows 1120, may be a physical interconnection such as a hardware connection or a fiber optic line. In addition or alternatively, this linking may be a wireless interconnection such as a radio frequency (RF) or infrared (IR) transmission. The purpose of this linking is to allow a selected one or more of the images 11021118 to be imaged from the image server store 1100 to a selected destination device. For example, if image 1102 of image 1 version A is to be loaded onto destination device # 2, image 1102 would be copied to destination device # 2 via link 1120. Thus, this setup allows any one or more images 11021118 to be selectively copied to any one or more destination devices # 1 through #N via link 1120.
As noted above, one disadvantage of the prior art system illustrated in FIG. 6 is that a large amount of CRM is needed for each of the images 11021118. For example, if each image is 450 megabytes (MB) in size, 9×450 MB or 4050 MB of CRM would be needed to accommodate each of the nine (9) images on the server store 1100.
Referring next to FIG. 7, a block diagram of an image server storage system employing combined or integrated images according to the invention is illustrated wherein combined disk images are stored on CRM. In general, reference character 1200 refers to a image server store having an integrated or combined image 1202 separately and independently stored on CRM. Each integrated image is a combination of various images which share common file data, as will be described in detail below. Common data is only copied once into the integrated image. In this example, integrated image 1202 is a combination of versions A, B and C of image 1 and versions A, B and C of image 2 and versions A, B and C of image 3, each of which may be different image editions of the same software program. File data common to versions A, B and C of images 1, 2 and 3 would only appear once within the integrated image 1202. Thus, the integrated image includes a header, metadata files for versions 1A through metadata 3C, file data files specific to versions 1A to 3C, offset tables for versions 1A through 3C, common data shared by all versions and a signature. Similarly, other integrated images, not shown, may be part of the image server store 1200.
Each integrated image 1202 is separately stored so that the image or selected portion of the image, as noted below, can be copied to a destination device. The image server store 1200 is selectively linked to a plurality of destination devices # 1 through #N. This linking, as indicated by arrows 1208, may be a physical interconnection such as a hardware connection or a fiber optic line. In addition or alternatively, this linking may be a wireless interconnection such as an RF or IR transmission. The purpose of this linking is to allow a selected one or more or part of one or more of the image 1202 or other images on the server store to be imaged from the image server store 1200 to a selected destination device. For example, if image 1 version A is to be loaded onto destination device # 2, the portions of image 1202 corresponding to image 1 version A (i.e., image 1102 in FIG. 6) would be copied to destination device # 2 via link 1208. Thus, this setup allows any one or more or portions of one or more of the integrated image 1202 to be selectively copied to any one or more destination devices # 1 through #N via link 1208.
As noted above, one advantage of the system illustrated in FIG. 7 is that a much smaller amount of disk capacity (or volume) is needed for each of the integrated image 1202 as compared to the disk capacity needed for images 1102118. This makes it easier to sync up with other image servers over low bandwidth connections (where as before every new image replicated, now only the data that is unique to the new image or the delta to the image needs to be replicated). For example, suppose each of the images 1102118 includes 350 MB of common filed data and 100 MB of unique data. As a result, the integrated image 1202, which is a combination of 9 images (images 1102118 of FIG. 6), would be 1250 MB (e.g., 350 MB of common data plus 9×100 MB or 900 MB of unique data from the 6 images). Thus, in the FIG. 7 system according to the invention, only 1250 MB of disk capacity is needed to accommodate the first and second combined images from which any one or more of the 9 images may be imaged to the destination devices. In contrast, as noted above, since each image is 450 MB in size, 4050 MB of disk capacity is needed to accommodate each of the 9 images on the prior art server store 1100 of FIG. 6. As a result, the image server store 1100 requires 4050 MB of disk capacity to store 9 images from which any one or more of the 9 images may be copied to a destination device whereas the image server store 1200 requires 1600 MB of disk capacity to store 2 combined images from which any one or more of the 9 images may be copied to a destination device. Thus, image server store 1200 has more available storage (e.g., 2450 MB of disk capacity) as compared to image server store 1100, both of which store information from which 9 images may be imaged to a destination device.
In one aspect of the invention of the image server store 1200 of FIG. 7, a system for manipulation by a computer (not shown) of the integrated image 1202 is contemplated. As noted above, the integrated image includes multiple software programs stored on the server store and has common files shared by the plurality of the software programs and unique files unique to a particular one of the software programs. In this system, it is contemplated that the computer and the image store are connected to a data communication system. The system would include a driver executing on the computer to provide access to the server store via the data communication system. The driver comprises one or more components for manipulating the common files and/or the unique files. Thus, a method for manipulation by a computer of the integrated image of multiple software programs stored on a server store is provided. The method comprises accessing the server store and independently manipulating the common files and/or the unique files.
FIG. 8 shows one example of a general purpose computing device in the form of a computer 130. In one embodiment of the invention, a computer such as the computer 130 is suitable for use in the other figures illustrated and described herein. Computer 130 has one or more processors or processing units 132 and a system memory 134 on which a combined image according to the invention may stored and/or individual images recreated from a combined image may be stored. In the illustrated embodiment, a system bus 136 couples various system components including the system memory 134 to the processors 132. The bus 136 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus.
The computer 130 typically has at least some form of computer readable media. Computer readable media, which include both volatile and nonvolatile media, removable and non-removable media, may be any available medium that can be accessed by computer 130. By way of example and not limitation, computer readable media comprise computer storage media and communication media. Computer storage media include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. For example, computer storage media include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and that can be accessed by computer 130. Communication media typically embody computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media. Those skilled in the art are familiar with the modulated data signal, which has one or more of its characteristics set or changed in such a manner as to encode information in the signal. Wired media, such as a wired network or direct-wired connection, and wireless media, such as acoustic, RF, infrared, and other wireless media, are examples of communication media. Combinations of the any of the above are also included within the scope of computer readable media.
The system memory 134 includes computer storage media in the form of removable and/or non-removable, volatile and/or nonvolatile memory. In the illustrated embodiment, system memory 134 includes read only memory (ROM) 138 and random access memory (RAM) 140. A basic input/output system 142 (BIOS), containing the basic routines that help to transfer information between elements within computer 130, such as during start-up, is typically stored in ROM 138. RAM 140 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 132. By way of example, and not limitation, FIG. 8 illustrates operating system 144, application programs 146, other program modules 148, and program data 151.
The computer 130 may also include other removable/non-removable, volatile/nonvolatile computer storage media. For example, FIG. 8 illustrates a hard disk drive 154 that reads from or writes to non-removable, nonvolatile magnetic media. FIG. 8 also shows a magnetic disk drive 156 that reads from or writes to a removable, nonvolatile magnetic disk 158, and an optical disk drive 160 that reads from or writes to a removable, nonvolatile optical disk 162 such as a CD-ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. The hard disk drive 154, and magnetic disk drive 156 and optical disk drive 160 are typically connected to the system bus 136 by a non-volatile memory interface, such as interface 166.
The drives or other mass storage devices and their associated computer storage media discussed above and illustrated in FIG. 8, provide storage of computer-readable instructions, data structures, program modules and other data for the computer 130. In FIG. 8, for example, hard disk drive 154 is illustrated as storing operating system 170, application programs 172, other program modules 174, and program data 176. Note that these components can either be the same as or different from operating system 144, application programs 146, other program modules 148, and program data 151. Operating system 170, application programs 172, other program modules 174, and program data 176 are given different numbers here to illustrate that, at a minimum, they are different copies.
A user may enter commands and information into computer 130 through input devices or user interface selection devices such as a keyboard 180 and a pointing device 182 (e.g., a mouse, trackball, pen, or touch pad). Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are connected to processing unit 132 through a user input interface 184 that is coupled to system bus 136, but may be connected by other interface and bus structures, such as a parallel port, game port, or a Universal Serial Bus (USB). A monitor 188 or other type of display device is also connected to system bus 136 via an interface, such as a video interface 190. In addition to the monitor 188, computers often include other peripheral output devices (not shown) such as a printer and speakers, which may be connected through an output peripheral interface (not shown).
The computer 130 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 194. The remote computer 194 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to computer 130. The logical connections depicted in FIG. 8 include a local area network (LAN) 196 and a wide area network (WAN) 198, but may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and global computer networks (e.g., the Internet).
When used in a local area networking environment, computer 130 is connected to the LAN 196 through a network interface or adapter 186. When use d in a wide area networking environment, computer 130 typically includes a modem 178 or other means for establishing communications over the WAN 198, such as the Internet. The modem 178, which may be internal or external, is connected to system bus 136 via the user input interface 184, or other appropriate mechanism. In a networked environment, program modules depicted relative to computer 130, or portions thereof, may be stored in a remote memory storage device (not shown). By way of example, and not limitation, FIG. 8 illustrates remote application programs 192 as residing on the memory device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
Generally, the data processors of computer 130 are programmed by means of instructions stored at different times in the various computer-readable storage media of the computer. Programs and operating systems are typically distributed, for example, on floppy disks or CD-ROMs. From there, they are installed or loaded into the secondary memory of a computer. At execution, they are loaded at least partially into the computer's primary electronic memory. The invention described herein includes these and other various types of computer-readable storage media when such media contain instructions or programs for implementing the steps described below in conjunction with a microprocessor or other data processor. The invention also includes the computer itself when programmed according to the methods and techniques described herein.
For purposes of illustration, programs and other executable program components, such as the operating system, are illustrated herein as discrete blocks. It is recognized, however, that such programs and components reside at various times in different storage components of the computer, and are executed by the data processor(s) of the computer.
Although described in connection with an exemplary computing system environment, including computer 130, the invention is operational with numerous other general purpose or special purpose computing system environments or configurations. The computing system environment is not intended to suggest any limitation as to the scope of use or functionality of the invention. Moreover, the computing system environment should not be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
The invention may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices. Generally, program modules include, but are not limited to, routines, programs, objects, components, and data structures that perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
In operation, computer 130 executes computer-executable instructions such as the executable file 506.
The following examples illustrate the invention. Windows brand XP Home and Windows brand XP Pro are different SKU numbers for applications with are very similar and which share a large amount of common data. The Home version is approximately 355 MB and the Pro version is approximately 375 MB. If both editions are separately copied onto a single media, about 730 MB would be required. On the other hand, imaging the two editions as a single combined image results in a single combined image of about 390 MB. Thus, the combined image saves over 300 MB of disk/media. As an example of an OEM scenario, both the Home and Pro editions may be offered with or without Microsoft Office. If the editions are separately copied, Home without Office would require 355 MB, Home with Office would require 505 MB, Pro without Office would require 375 MB and Pro with Office would require 525 MB, for a total of 1760 MB. On the other hand, imaging the four different offerings as a single combined image results in a single combined image of about 540 MB. Thus, the combined image saves over 1100 MB of disk/media.
This savings of disk/media translates into many advantages, as noted above. For example, the transmission or replication of images or a network or other link can be accomplished with less time or with reduced bandwidth.
When introducing elements of the present invention or the embodiment(s) thereof, the articles “a,” “an,” “the,” and “said” are intended to mean that there are one or more of the elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements.
In view of the above, it will be seen that the several objects of the invention are achieved and other advantageous results attained.
As various changes could be made in the above constructions, products, and methods without departing from the scope of the invention, it is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense.

Claims (13)

1. A computer implemented method executing on a computer comprising:
creating a first image from a first software, said first image including first descriptive data corresponding to descriptive data of the first software and including first file data corresponding to file data of the first software;
creating a second image from a second software, said second image including second descriptive data corresponding to descriptive data of the second software and including second file data corresponding to file data of the second software;
combining the first image and the second image into a combined image;
creating a list of identifiers of the file data in the combined image;
wherein, for each of the file data of the first image, said creating a first image comprises reading a file data of the first image, and associating each read file with an identifier based on contents of the file data;
wherein, for each of the file data of the second image, said creating a second image comprises reading a file data of the second image, and associating each read file with an identifier based on the contents of the file data; and
wherein said combining comprises copying the read file data to the combined image when the identifier of the read file is not in the list of the identifiers of the combined image.
2. The method of claim 1 wherein the descriptive data comprises metadata including one or more of the following: file names, attributes, file times, compression formats, locations and streams.
3. The method of claim 1 wherein the file data comprises any binary file data or any other data other than metadata.
4. The method of claim 1 further comprising modifying, updating or restoring file data and/or modifying the descriptive data to point to any modified, updated or restored file data.
5. The method of claim 1 wherein the first and second images both include at least some common file data and wherein the combined image includes only one copy of at least some of the common file data.
6. The method of claim 1 further comprising updating the descriptive data as a function of a location of the file data in the combined image.
7. A computer implemented method executing on a computer of combining a first software and a second software into a single combined image from which a first image of the first software and a second image of the second software can each be re-created by imaging, the method comprising:
converting the first software into a base image having metadata pointing to file data;
generating a combined digest of identifiers of all files identified by the metadata of the base image;
converting the second software into a second image having metadata pointing to file data;
reading a first file of the second image;
generating an identifier of the read first file of the second image;
adding the first file to the files of the base image and updating the combined digest and the metadata of the base image if the identifier of the read first file of the second image is not in the combined digest; and
for each of the remaining files of the second image:
reading a next file of the second image;
generating an identifier of the next read file of the second image; and
adding the next read file to the files of the combined image and updating the combined digest and the metadata of the base image if the identifier of next read file of the second image is not in the combined digest.
8. The method of claim 7 wherein the metadata comprises one or more of the following: file names, attributes, file times, compression formats, locations and streams.
9. The method of claim 7 wherein the file data comprises any binary file data or any other data other than metadata.
10. The method of claim 7 further comprising modifying, updating or restoring file data and/or modifying the metadata of the first image to point to any modified, updated or restored file data.
11. The method of claim 7 wherein the first software or the second software includes an operating system, an application program or both.
12. The method of claim 7 wherein the first software and the second software are similar applications, wherein the first software is for use with a first operating system and wherein the second software is for use with a second operating system.
13. The method of claim 7 wherein the first image and the second image include common file data.
US10/173,297 2002-06-17 2002-06-17 Combined image views and method of creating images Active 2024-07-31 US7017144B2 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
US10/173,297 US7017144B2 (en) 2002-06-17 2002-06-17 Combined image views and method of creating images
US10/603,453 US7464176B2 (en) 2002-06-17 2003-06-25 Multicast system and method for deploying multiple images simultaneously
US10/608,350 US7120786B2 (en) 2002-06-17 2003-06-27 Booting from a compressed image
US10/641,798 US20040034849A1 (en) 2002-06-17 2003-08-15 Volume image views and methods of creating volume images in which a file similar to a base file is stored as a patch of the base file
US11/319,886 US20060130017A1 (en) 2002-06-17 2005-12-28 Combined image views and methods of creating images
US11/459,560 US7664944B2 (en) 2002-06-17 2006-07-24 Booting from a compressed image

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/173,297 US7017144B2 (en) 2002-06-17 2002-06-17 Combined image views and method of creating images

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US10/172,953 Continuation-In-Part US6947954B2 (en) 2002-06-17 2002-06-17 Image server store system and method using combined image views

Related Child Applications (5)

Application Number Title Priority Date Filing Date
US10/172,953 Continuation-In-Part US6947954B2 (en) 2002-06-17 2002-06-17 Image server store system and method using combined image views
US10/603,453 Continuation-In-Part US7464176B2 (en) 2002-06-17 2003-06-25 Multicast system and method for deploying multiple images simultaneously
US10/608,350 Continuation-In-Part US7120786B2 (en) 2002-06-17 2003-06-27 Booting from a compressed image
US10/641,798 Continuation-In-Part US20040034849A1 (en) 2002-06-17 2003-08-15 Volume image views and methods of creating volume images in which a file similar to a base file is stored as a patch of the base file
US11/319,886 Continuation US20060130017A1 (en) 2002-06-17 2005-12-28 Combined image views and methods of creating images

Publications (2)

Publication Number Publication Date
US20030233363A1 US20030233363A1 (en) 2003-12-18
US7017144B2 true US7017144B2 (en) 2006-03-21

Family

ID=29733303

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/173,297 Active 2024-07-31 US7017144B2 (en) 2002-06-17 2002-06-17 Combined image views and method of creating images
US11/319,886 Abandoned US20060130017A1 (en) 2002-06-17 2005-12-28 Combined image views and methods of creating images

Family Applications After (1)

Application Number Title Priority Date Filing Date
US11/319,886 Abandoned US20060130017A1 (en) 2002-06-17 2005-12-28 Combined image views and methods of creating images

Country Status (1)

Country Link
US (2) US7017144B2 (en)

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040001631A1 (en) * 2002-06-28 2004-01-01 Microsoft Corporation Generation of metadata for acquired images
US20040015536A1 (en) * 2002-06-17 2004-01-22 Microsoft Corporation Multicast system and method for deploying multiple images simultaneously
US20040073581A1 (en) * 2002-06-27 2004-04-15 Mcvoy Lawrence W. Version controlled associative array
US20040177343A1 (en) * 2002-11-04 2004-09-09 Mcvoy Lawrence W. Method and apparatus for understanding and resolving conflicts in a merge
US20060026567A1 (en) * 2004-07-27 2006-02-02 Mcvoy Lawrence W Distribution of data/metadata in a version control system
US20060130017A1 (en) * 2002-06-17 2006-06-15 Microsoft Corporation Combined image views and methods of creating images
US20060253505A1 (en) * 2005-05-09 2006-11-09 Konica Minolta Business Technologies, Inc. Image data transmitting apparatus and image data transmitting method
US20060259754A1 (en) * 2002-06-17 2006-11-16 Microsoft Corporation Booting from a compressed image
US20070150887A1 (en) * 2005-12-22 2007-06-28 Shapiro Alan J Apparatus and method for selectively dispensing soft assets
US20070234302A1 (en) * 2006-03-31 2007-10-04 Prowess Consulting Llc System and method for deploying a virtual machine
US20070234337A1 (en) * 2006-03-31 2007-10-04 Prowess Consulting, Llc System and method for sanitizing a computer program
US20080082558A1 (en) * 2006-09-29 2008-04-03 Brother Kogyo Kabushiki Kaisha Communication system and network storage device therefor
US20090043890A1 (en) * 2007-08-09 2009-02-12 Prowess Consulting, Llc Methods and systems for deploying hardware files to a computer
US20090198731A1 (en) * 2008-01-31 2009-08-06 Prowess Consulting, Llc Method and system for modularizing windows imaging format
US20100312805A1 (en) * 2009-05-08 2010-12-09 Noonan Iii Donal Charles System and method for capturing, managing, and distributing computer files
US20110113416A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Network-Enhanced Control Of Software Updates Received Via Removable Computer-Readable Medium
US20110113415A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Multiple Invocation Points In Software Build Task Sequence
US20110113070A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Software Stack Building Using Logically Protected Region Of Computer-Readable Medium
US20110113422A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Programmatic Creation Of Task Sequences From Manifests
US20110113413A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Software Updates Using Delta Patching
US20110113418A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Cross-Updating Of Software Between Self-Service Financial Transaction Machines
US20110113424A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Distribution Of Software Updates
US20110238572A1 (en) * 2010-03-25 2011-09-29 Bank Of America Corporation Remote Control Of Self-Service Terminal
US8245185B2 (en) 2005-12-22 2012-08-14 Alan Joshua Shapiro System and method for software delivery
US9582513B2 (en) 2013-12-08 2017-02-28 Microsoft Technology Licensing, Llc Accessing data in a compressed container through dynamic redirection
US9740473B2 (en) 2015-08-26 2017-08-22 Bank Of America Corporation Software and associated hardware regression and compatibility testing system
US10298596B2 (en) 2004-01-14 2019-05-21 Jose J. Picazo, Jr. Separate Property Trust Method and apparatus for trusted branded email

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4235441B2 (en) * 2002-12-20 2009-03-11 キヤノン株式会社 Document processing program, document processing method and apparatus
GB0412906D0 (en) * 2004-06-09 2004-07-14 Capture Ltd Data compilation apparatus and method
US7818350B2 (en) 2005-02-28 2010-10-19 Yahoo! Inc. System and method for creating a collaborative playlist
US7523089B2 (en) * 2005-09-30 2009-04-21 Microsoft Corporation Offline servicing of image files
US7844820B2 (en) * 2005-10-10 2010-11-30 Yahoo! Inc. Set of metadata for association with a composite media item and tool for creating such set of metadata
US10298834B2 (en) 2006-12-01 2019-05-21 Google Llc Video refocusing
US8559705B2 (en) * 2006-12-01 2013-10-15 Lytro, Inc. Interactive refocusing of electronic images
US8607226B2 (en) * 2008-01-22 2013-12-10 International Business Machines Corporation Solution for locally staged electronic software distribution using secure removable media
US20100016074A1 (en) * 2008-03-20 2010-01-21 Gdi Game Domain International Plc Apparatus and methods for game conversion
EP2356563B1 (en) * 2008-10-24 2018-06-27 Citrix Systems, Inc. Methods and systems for providing a modifiable machine base image with a personalized desktop environment in a combined computing environment
WO2010065344A1 (en) 2008-11-25 2010-06-10 Refocus Imaging, Inc. System of and method for video refocusing
WO2010077625A1 (en) 2008-12-08 2010-07-08 Refocus Imaging, Inc. Light field data acquisition devices, and methods of using and manufacturing same
US8908058B2 (en) * 2009-04-18 2014-12-09 Lytro, Inc. Storage and transmission of pictures including multiple frames
JP5460702B2 (en) * 2009-05-14 2014-04-02 パナソニック株式会社 Video data packet transmission method
US8749620B1 (en) 2010-02-20 2014-06-10 Lytro, Inc. 3D light field cameras, images and files, and methods of using, operating, processing and viewing same
JP5137995B2 (en) * 2010-04-27 2013-02-06 京セラドキュメントソリューションズ株式会社 Image reading / transferring apparatus and image forming apparatus
US8768102B1 (en) 2011-02-09 2014-07-01 Lytro, Inc. Downsampling light field images
US9298501B2 (en) * 2011-05-19 2016-03-29 Globalfoundries Inc. Concurrent management console operations
WO2012170111A1 (en) * 2011-06-08 2012-12-13 Lytro, Inc. Storage and transmission of pictures including multiple frames
US9184199B2 (en) 2011-08-01 2015-11-10 Lytro, Inc. Optical assembly including plenoptic microlens array
US9420276B2 (en) 2012-02-28 2016-08-16 Lytro, Inc. Calibration of light-field camera geometry via robust fitting
US8831377B2 (en) 2012-02-28 2014-09-09 Lytro, Inc. Compensating for variation in microlens position during light-field image processing
US8995785B2 (en) 2012-02-28 2015-03-31 Lytro, Inc. Light-field processing and analysis, camera control, and user interfaces and interaction on light-field capture devices
US8948545B2 (en) 2012-02-28 2015-02-03 Lytro, Inc. Compensating for sensor saturation and microlens modulation during light-field image processing
US8811769B1 (en) 2012-02-28 2014-08-19 Lytro, Inc. Extended depth of field and variable center of perspective in light-field processing
US9858649B2 (en) 2015-09-30 2018-01-02 Lytro, Inc. Depth-based image blurring
US10129524B2 (en) 2012-06-26 2018-11-13 Google Llc Depth-assigned content for depth-enhanced virtual reality images
US9607424B2 (en) 2012-06-26 2017-03-28 Lytro, Inc. Depth-assigned content for depth-enhanced pictures
US8997021B2 (en) 2012-11-06 2015-03-31 Lytro, Inc. Parallax and/or three-dimensional effects for thumbnail image displays
US9001226B1 (en) 2012-12-04 2015-04-07 Lytro, Inc. Capturing and relighting images using multiple devices
US10334151B2 (en) 2013-04-22 2019-06-25 Google Llc Phase detection autofocus using subaperture images
GB2531993B (en) * 2014-10-14 2018-04-25 Canon Kk Description of image composition with HEVC still image file format
US10567464B2 (en) 2015-04-15 2020-02-18 Google Llc Video compression with adaptive view-dependent lighting removal
US10341632B2 (en) 2015-04-15 2019-07-02 Google Llc. Spatial random access enabled video system with a three-dimensional viewing volume
US10469873B2 (en) 2015-04-15 2019-11-05 Google Llc Encoding and decoding virtual reality video
US10412373B2 (en) 2015-04-15 2019-09-10 Google Llc Image capture for virtual reality displays
US10275898B1 (en) 2015-04-15 2019-04-30 Google Llc Wedge-based light-field video capture
US10540818B2 (en) 2015-04-15 2020-01-21 Google Llc Stereo image generation and interactive playback
US10419737B2 (en) 2015-04-15 2019-09-17 Google Llc Data structures and delivery methods for expediting virtual reality playback
US11328446B2 (en) 2015-04-15 2022-05-10 Google Llc Combining light-field data with active depth data for depth map generation
US10565734B2 (en) 2015-04-15 2020-02-18 Google Llc Video capture, processing, calibration, computational fiber artifact removal, and light-field pipeline
US10444931B2 (en) 2017-05-09 2019-10-15 Google Llc Vantage generation and interactive playback
US10440407B2 (en) 2017-05-09 2019-10-08 Google Llc Adaptive control for immersive experience delivery
US10546424B2 (en) 2015-04-15 2020-01-28 Google Llc Layered content delivery for virtual and augmented reality experiences
US9979909B2 (en) 2015-07-24 2018-05-22 Lytro, Inc. Automatic lens flare detection and correction for light-field images
US9639945B2 (en) 2015-08-27 2017-05-02 Lytro, Inc. Depth-based application of image effects
US10275892B2 (en) 2016-06-09 2019-04-30 Google Llc Multi-view scene segmentation and propagation
US10679361B2 (en) 2016-12-05 2020-06-09 Google Llc Multi-view rotoscope contour propagation
US10594945B2 (en) 2017-04-03 2020-03-17 Google Llc Generating dolly zoom effect using light field image data
US10474227B2 (en) 2017-05-09 2019-11-12 Google Llc Generation of virtual reality with 6 degrees of freedom from limited viewer data
US10354399B2 (en) 2017-05-25 2019-07-16 Google Llc Multi-view back-projection to a light-field
US10545215B2 (en) 2017-09-13 2020-01-28 Google Llc 4D camera tracking and optical stabilization
US10965862B2 (en) 2018-01-18 2021-03-30 Google Llc Multi-camera navigation interface

Citations (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142680A (en) 1989-04-26 1992-08-25 Sun Microsystems, Inc. Method for loading an operating system through a network
US5155594A (en) * 1990-05-11 1992-10-13 Picturetel Corporation Hierarchical encoding method and apparatus employing background references for efficiently communicating image sequences
US5267330A (en) * 1984-06-19 1993-11-30 Canon Kabushiki Kaisha Image processing apparatus
US5467441A (en) * 1993-07-21 1995-11-14 Xerox Corporation Method for operating on objects in a first image using an object-based model data structure to produce a second contextual image having added, replaced or deleted objects
US5469573A (en) 1993-02-26 1995-11-21 Sytron Corporation Disk operating system backup and recovery system
US5555416A (en) 1992-09-20 1996-09-10 Sun Microsystems, Inc. Automated software installation and operating environment configuration for a computer system based on classification rules
US5574906A (en) 1994-10-24 1996-11-12 International Business Machines Corporation System and method for reducing storage requirement in backup subsystems utilizing segmented compression and differencing
US5634052A (en) 1994-10-24 1997-05-27 International Business Machines Corporation System for reducing storage requirements and transmission loads in a backup subsystem in client-server environment by transmitting only delta files from client to server
US5694201A (en) * 1992-05-28 1997-12-02 Ricoh Company, Ltd. Control device for controlling a plurality of image forming apparatuses
US5713024A (en) 1994-06-10 1998-01-27 Exabyte Corporation Cold boot data backup system
US5732265A (en) 1995-11-02 1998-03-24 Microsoft Corporation Storage optimizing encoder and method
US5794052A (en) 1995-02-27 1998-08-11 Ast Research, Inc. Method of software installation and setup
US5813008A (en) 1996-07-12 1998-09-22 Microsoft Corporation Single instance storage of information
US5933842A (en) 1996-05-23 1999-08-03 Microsoft Corporation Method and system for compressing publication documents in a computer system by selectively eliminating redundancy from a hierarchy of constituent data structures
US5983239A (en) 1997-10-29 1999-11-09 International Business Machines Corporation Storage management system with file aggregation supporting multiple aggregated file counterparts
US6016400A (en) 1996-01-11 2000-01-18 International Business Machines Corporation Preloading software onto a computer system
US6021415A (en) 1997-10-29 2000-02-01 International Business Machines Corporation Storage management system with file aggregation and space reclamation within aggregated files
US6080207A (en) 1998-06-04 2000-06-27 Gateway 2000, Inc. System and method of creating and delivering software
US6138179A (en) 1997-10-01 2000-10-24 Micron Electronics, Inc. System for automatically partitioning and formatting a primary hard disk for installing software in which selection of extended partition size is not related to size of hard disk
US6167562A (en) * 1996-05-08 2000-12-26 Kaneko Co., Ltd. Apparatus for creating an animation program and method for creating the same
US6188779B1 (en) 1998-12-30 2001-02-13 L&H Applications Usa, Inc. Dual page mode detection
US6247128B1 (en) 1997-07-22 2001-06-12 Compaq Computer Corporation Computer manufacturing with smart configuration methods
US6262726B1 (en) 1998-10-09 2001-07-17 Dell U.S.A., L.P. Factory installing desktop components for an active desktop
US6282711B1 (en) 1999-08-10 2001-08-28 Hewlett-Packard Company Method for more efficiently installing software components from a remote server source
US6343265B1 (en) 1998-07-28 2002-01-29 International Business Machines Corporation System and method for mapping a design model to a common repository with context preservation
US6377958B1 (en) 1998-07-15 2002-04-23 Powerquest Corporation File system conversion
US6385766B1 (en) 1999-05-20 2002-05-07 Dell Usa L.P. Method and apparatus for windows-based installation for installing software on build-to-order computer systems
US6453413B1 (en) 1998-12-18 2002-09-17 Inventec Corp. Method for pre-installing software programs which allows customizable combinations of configurations
US20020174329A1 (en) 1999-04-28 2002-11-21 Bowler Richard A. Method and system for automatically transitioning files among computer systems
US20020188941A1 (en) 2001-06-12 2002-12-12 International Business Machines Corporation Efficient installation of software packages
US20020194398A1 (en) 2001-06-15 2002-12-19 Bentley Keith C. System and method for building a target operating system from a source operating system
US6532474B2 (en) 1997-11-13 2003-03-11 Sharp Kabushiki Kaisha Apparatus and method for carrying out data linkage among a plurality of applications
US6598223B1 (en) 1999-10-06 2003-07-22 Dell Usa, L.P. Method and system for installing and testing build-to-order components in a defined configuration computer system
US20030233379A1 (en) 2002-06-17 2003-12-18 Microsoft Corporation System and method for splitting an image across multiple computer readable media
US6681323B1 (en) 1999-11-29 2004-01-20 Toshiba America Information Systems, Inc. Method and system for automatically installing an initial software configuration including an operating system module from a library containing at least two operating system modules based on retrieved computer identification data
US6701513B1 (en) * 2000-01-14 2004-03-02 Measurement Computing Corporation Program-development environment for use in generating application programs
US6711624B1 (en) 1999-01-13 2004-03-23 Prodex Technologies Process of dynamically loading driver interface modules for exchanging data between disparate data hosts
US6721002B1 (en) * 1997-06-13 2004-04-13 Sanyo Electric Co., Ltd. Method for recording image data and digital camera using same adapted to composite a plurality of image data and record the composite image data into a memory
US20040070678A1 (en) 2001-10-09 2004-04-15 Kentaro Toyama System and method for exchanging images
US6751357B2 (en) * 1997-07-10 2004-06-15 Matsushita Electric Industrial Co., Ltd. Data structure for image transmission, image coding method, and image decoding method
US6763150B1 (en) * 2000-08-29 2004-07-13 Freescale Semiconductor, Inc. Image processing system with multiple processing units
US6763515B1 (en) * 2000-06-05 2004-07-13 National Instruments Corporation System and method for automatically generating a graphical program to perform an image processing algorithm
US6782402B1 (en) * 1999-05-06 2004-08-24 Seiko Epson Corporation Network management system, computer system, copy server, file server, network copy file management method, and computer readable medium
US20040218902A1 (en) * 2000-02-07 2004-11-04 Noboru Yanagita Image processing apparatus, image processing method, and recording medium
US6868539B1 (en) * 2000-06-28 2005-03-15 Microsoft Corp. System and method providing single application image
US6877154B2 (en) * 1996-06-28 2005-04-05 Fujitsu Limited Object-oriented programming apparatus, object-oriented programming supporting apparatus, component builder apparatus, object-oriented program storage medium, program storage medium for use in object-oriented programming, component storage medium, and object-between-network display method
US6938211B1 (en) * 1999-11-24 2005-08-30 University of Pittsburgh of the Common Wealth System of Higher Education Methods and apparatus for an image transfer object
US6944865B1 (en) * 2000-09-08 2005-09-13 Corel Corporation Method and apparatus for saving a definition for automated data processing
US6947659B2 (en) * 1997-10-31 2005-09-20 Matsushita Electric Industrial Co., Ltd. Image signal, decoding method, decoding apparatus, data storage medium, and computer program implementing a display cycle identifier

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5485606A (en) * 1989-07-10 1996-01-16 Conner Peripherals, Inc. System and method for storing and retrieving files for archival purposes
US5499294A (en) * 1993-11-24 1996-03-12 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Digital camera with apparatus for authentication of images produced from an image file
US6272631B1 (en) * 1997-06-30 2001-08-07 Microsoft Corporation Protected storage of core data secrets
US6381742B2 (en) * 1998-06-19 2002-04-30 Microsoft Corporation Software package management
KR100421845B1 (en) * 1998-09-26 2004-04-17 엘지전자 주식회사 optical recording medium and method for managing a defective area
US7222235B1 (en) * 1999-03-30 2007-05-22 Oki Electric Industry Co., Ltd. Image processing system utilizing digital watermarks in predetermined regions
JP4075203B2 (en) * 1999-04-09 2008-04-16 株式会社日立製作所 Data backup system
US6948069B1 (en) * 1999-07-02 2005-09-20 Time Certain, Llc Method and system for determining and maintaining trust in digital image files with certifiable time
US6772192B1 (en) * 2000-02-29 2004-08-03 Hewlett-Packard Development Company, L.P. Software download and distribution via image building and multicast
US7035867B2 (en) * 2001-11-28 2006-04-25 Aerocast.Com, Inc. Determining redundancies in content object directories
TWI242160B (en) * 2002-04-01 2005-10-21 Shun-Tang Hsu Method and tools to downsize existing operating systems for embedded applications
US6947954B2 (en) * 2002-06-17 2005-09-20 Microsoft Corporation Image server store system and method using combined image views
US7017144B2 (en) * 2002-06-17 2006-03-21 Microsoft Corporation Combined image views and method of creating images
US7120786B2 (en) * 2002-06-17 2006-10-10 Microsoft Corporation Booting from a compressed image

Patent Citations (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5267330A (en) * 1984-06-19 1993-11-30 Canon Kabushiki Kaisha Image processing apparatus
US5142680A (en) 1989-04-26 1992-08-25 Sun Microsystems, Inc. Method for loading an operating system through a network
US5155594A (en) * 1990-05-11 1992-10-13 Picturetel Corporation Hierarchical encoding method and apparatus employing background references for efficiently communicating image sequences
US5694201A (en) * 1992-05-28 1997-12-02 Ricoh Company, Ltd. Control device for controlling a plurality of image forming apparatuses
US5555416A (en) 1992-09-20 1996-09-10 Sun Microsystems, Inc. Automated software installation and operating environment configuration for a computer system based on classification rules
US5469573A (en) 1993-02-26 1995-11-21 Sytron Corporation Disk operating system backup and recovery system
US5467441A (en) * 1993-07-21 1995-11-14 Xerox Corporation Method for operating on objects in a first image using an object-based model data structure to produce a second contextual image having added, replaced or deleted objects
US5713024A (en) 1994-06-10 1998-01-27 Exabyte Corporation Cold boot data backup system
US5634052A (en) 1994-10-24 1997-05-27 International Business Machines Corporation System for reducing storage requirements and transmission loads in a backup subsystem in client-server environment by transmitting only delta files from client to server
US5574906A (en) 1994-10-24 1996-11-12 International Business Machines Corporation System and method for reducing storage requirement in backup subsystems utilizing segmented compression and differencing
US5813017A (en) 1994-10-24 1998-09-22 International Business Machines Corporation System and method for reducing storage requirement in backup subsystems utilizing segmented compression and differencing
US5794052A (en) 1995-02-27 1998-08-11 Ast Research, Inc. Method of software installation and setup
US5732265A (en) 1995-11-02 1998-03-24 Microsoft Corporation Storage optimizing encoder and method
US6016400A (en) 1996-01-11 2000-01-18 International Business Machines Corporation Preloading software onto a computer system
US6167562A (en) * 1996-05-08 2000-12-26 Kaneko Co., Ltd. Apparatus for creating an animation program and method for creating the same
US5933842A (en) 1996-05-23 1999-08-03 Microsoft Corporation Method and system for compressing publication documents in a computer system by selectively eliminating redundancy from a hierarchy of constituent data structures
US6877154B2 (en) * 1996-06-28 2005-04-05 Fujitsu Limited Object-oriented programming apparatus, object-oriented programming supporting apparatus, component builder apparatus, object-oriented program storage medium, program storage medium for use in object-oriented programming, component storage medium, and object-between-network display method
US5813008A (en) 1996-07-12 1998-09-22 Microsoft Corporation Single instance storage of information
US6721002B1 (en) * 1997-06-13 2004-04-13 Sanyo Electric Co., Ltd. Method for recording image data and digital camera using same adapted to composite a plurality of image data and record the composite image data into a memory
US6751357B2 (en) * 1997-07-10 2004-06-15 Matsushita Electric Industrial Co., Ltd. Data structure for image transmission, image coding method, and image decoding method
US6247128B1 (en) 1997-07-22 2001-06-12 Compaq Computer Corporation Computer manufacturing with smart configuration methods
US6138179A (en) 1997-10-01 2000-10-24 Micron Electronics, Inc. System for automatically partitioning and formatting a primary hard disk for installing software in which selection of extended partition size is not related to size of hard disk
US5983239A (en) 1997-10-29 1999-11-09 International Business Machines Corporation Storage management system with file aggregation supporting multiple aggregated file counterparts
US6021415A (en) 1997-10-29 2000-02-01 International Business Machines Corporation Storage management system with file aggregation and space reclamation within aggregated files
US6947659B2 (en) * 1997-10-31 2005-09-20 Matsushita Electric Industrial Co., Ltd. Image signal, decoding method, decoding apparatus, data storage medium, and computer program implementing a display cycle identifier
US6532474B2 (en) 1997-11-13 2003-03-11 Sharp Kabushiki Kaisha Apparatus and method for carrying out data linkage among a plurality of applications
US6080207A (en) 1998-06-04 2000-06-27 Gateway 2000, Inc. System and method of creating and delivering software
US6377958B1 (en) 1998-07-15 2002-04-23 Powerquest Corporation File system conversion
US6343265B1 (en) 1998-07-28 2002-01-29 International Business Machines Corporation System and method for mapping a design model to a common repository with context preservation
US6262726B1 (en) 1998-10-09 2001-07-17 Dell U.S.A., L.P. Factory installing desktop components for an active desktop
US6512526B1 (en) 1998-10-09 2003-01-28 Dell Usa, L.P. User specific execution of programs
US6453413B1 (en) 1998-12-18 2002-09-17 Inventec Corp. Method for pre-installing software programs which allows customizable combinations of configurations
US6188779B1 (en) 1998-12-30 2001-02-13 L&H Applications Usa, Inc. Dual page mode detection
US6711624B1 (en) 1999-01-13 2004-03-23 Prodex Technologies Process of dynamically loading driver interface modules for exchanging data between disparate data hosts
US20020174329A1 (en) 1999-04-28 2002-11-21 Bowler Richard A. Method and system for automatically transitioning files among computer systems
US6782402B1 (en) * 1999-05-06 2004-08-24 Seiko Epson Corporation Network management system, computer system, copy server, file server, network copy file management method, and computer readable medium
US6385766B1 (en) 1999-05-20 2002-05-07 Dell Usa L.P. Method and apparatus for windows-based installation for installing software on build-to-order computer systems
US6282711B1 (en) 1999-08-10 2001-08-28 Hewlett-Packard Company Method for more efficiently installing software components from a remote server source
US6598223B1 (en) 1999-10-06 2003-07-22 Dell Usa, L.P. Method and system for installing and testing build-to-order components in a defined configuration computer system
US6938211B1 (en) * 1999-11-24 2005-08-30 University of Pittsburgh of the Common Wealth System of Higher Education Methods and apparatus for an image transfer object
US6681323B1 (en) 1999-11-29 2004-01-20 Toshiba America Information Systems, Inc. Method and system for automatically installing an initial software configuration including an operating system module from a library containing at least two operating system modules based on retrieved computer identification data
US6701513B1 (en) * 2000-01-14 2004-03-02 Measurement Computing Corporation Program-development environment for use in generating application programs
US20040218902A1 (en) * 2000-02-07 2004-11-04 Noboru Yanagita Image processing apparatus, image processing method, and recording medium
US6763515B1 (en) * 2000-06-05 2004-07-13 National Instruments Corporation System and method for automatically generating a graphical program to perform an image processing algorithm
US6868539B1 (en) * 2000-06-28 2005-03-15 Microsoft Corp. System and method providing single application image
US6763150B1 (en) * 2000-08-29 2004-07-13 Freescale Semiconductor, Inc. Image processing system with multiple processing units
US6944865B1 (en) * 2000-09-08 2005-09-13 Corel Corporation Method and apparatus for saving a definition for automated data processing
US20020188941A1 (en) 2001-06-12 2002-12-12 International Business Machines Corporation Efficient installation of software packages
US20020194398A1 (en) 2001-06-15 2002-12-19 Bentley Keith C. System and method for building a target operating system from a source operating system
US20040070678A1 (en) 2001-10-09 2004-04-15 Kentaro Toyama System and method for exchanging images
US20030233379A1 (en) 2002-06-17 2003-12-18 Microsoft Corporation System and method for splitting an image across multiple computer readable media

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
TITLE: An Object-Oriented Model of Software Configuration Management, author: Render et al, ACM, 1991. *
TITLE: Image Retrieval agent: integrating image content and text, author: Favelu et al, Oct., 1999. *
White Paper, "Microsoft Windows 2000 Server-Remote Operating System Installation," Microsoft Corporation, pp.:i-iv, 1-41, 1999, U.S.A.
Zhang et al., "A Modeling Perspective of Image-Based Installation," Dell White Paper, pp. 1-13, Mar., 2002, U.S.A.

Cited By (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060130017A1 (en) * 2002-06-17 2006-06-15 Microsoft Corporation Combined image views and methods of creating images
US20040015536A1 (en) * 2002-06-17 2004-01-22 Microsoft Corporation Multicast system and method for deploying multiple images simultaneously
US7664944B2 (en) * 2002-06-17 2010-02-16 Microsoft Corporation Booting from a compressed image
US7464176B2 (en) * 2002-06-17 2008-12-09 Microsoft Corporation Multicast system and method for deploying multiple images simultaneously
US20060259754A1 (en) * 2002-06-17 2006-11-16 Microsoft Corporation Booting from a compressed image
US20040073581A1 (en) * 2002-06-27 2004-04-15 Mcvoy Lawrence W. Version controlled associative array
US20040001631A1 (en) * 2002-06-28 2004-01-01 Microsoft Corporation Generation of metadata for acquired images
US20060077461A1 (en) * 2002-06-28 2006-04-13 Microsoft Corporation Generation of metadata for acquired images
US7162053B2 (en) * 2002-06-28 2007-01-09 Microsoft Corporation Generation of metadata for acquired images
US7197158B2 (en) * 2002-06-28 2007-03-27 Microsoft Corporation Generation of metadata for acquired images
US7421089B2 (en) 2002-06-28 2008-09-02 Microsoft Corporation Generation of metadata for acquired images
US20040177343A1 (en) * 2002-11-04 2004-09-09 Mcvoy Lawrence W. Method and apparatus for understanding and resolving conflicts in a merge
US10951629B2 (en) 2004-01-14 2021-03-16 Jose J. Picazo, Jr. Separate Property Trust Method and apparatus for trusted branded email
US10298596B2 (en) 2004-01-14 2019-05-21 Jose J. Picazo, Jr. Separate Property Trust Method and apparatus for trusted branded email
US11711377B2 (en) 2004-01-14 2023-07-25 Jose J. Picazo, Jr. Separate Property Trust Method and apparatus for trusted branded email
US20060026567A1 (en) * 2004-07-27 2006-02-02 Mcvoy Lawrence W Distribution of data/metadata in a version control system
US8429241B2 (en) * 2005-05-09 2013-04-23 Konica Minolta Business Technologies, Inc. Image data transmitting apparatus and image data transmitting method
US20060253505A1 (en) * 2005-05-09 2006-11-09 Konica Minolta Business Technologies, Inc. Image data transmitting apparatus and image data transmitting method
US7398524B2 (en) 2005-12-22 2008-07-08 Alan Joshua Shapiro Apparatus and method for subtractive installation
US7712094B2 (en) 2005-12-22 2010-05-04 Alan Joshua Shapiro Method and apparatus for replicating a panoplex onto a storage medium from a master
US20080141242A1 (en) * 2005-12-22 2008-06-12 Alan Joshua Shapiro Method and apparatus for delivering percepta
US20070150889A1 (en) * 2005-12-22 2007-06-28 Shapiro Alan J Method and apparatus for panoplex generation and gryphing
US20070150891A1 (en) * 2005-12-22 2007-06-28 Shapiro Alan J Method and apparatus for dispensing on a data-storage medium customized content comprising selected assets
US20070150890A1 (en) * 2005-12-22 2007-06-28 Shapiro Alan J Method and apparatus for gryphing a data storage medium
US20070150888A1 (en) * 2005-12-22 2007-06-28 Shapiro Alan J Method and apparatus for replicating a panoplex onto a storage medium from a master
US9176971B2 (en) 2005-12-22 2015-11-03 Alan Joshua Shapiro Method and apparatus for subtractive installation
US20070150886A1 (en) * 2005-12-22 2007-06-28 Shapiro Alan J Apparatus and method for subtractive installation
US8099437B2 (en) 2005-12-22 2012-01-17 Alan Joshua Shapiro Method and apparatus for selective file erasure using metadata modifications
US9171005B2 (en) 2005-12-22 2015-10-27 Alan Joshua Shapiro System and method for selective file erasure using metadata modifcations
US8935658B2 (en) 2005-12-22 2015-01-13 Alan Joshua Shapiro Digital asset delivery system and method
US8782089B2 (en) 2005-12-22 2014-07-15 Alan Joshua Shapiro Selective file erasure using metadata modifications and apparatus
US8661406B2 (en) 2005-12-22 2014-02-25 Alan Joshua Shapiro Method and system for software delivery
US8521781B2 (en) 2005-12-22 2013-08-27 Alan Joshua Shapiro Apparatus and method for selective file erasure using metadata modifications
US20070150887A1 (en) * 2005-12-22 2007-06-28 Shapiro Alan J Apparatus and method for selectively dispensing soft assets
US8321859B2 (en) 2005-12-22 2012-11-27 Alan Joshua Shapiro Method and apparatus for dispensing on a data-storage medium customized content comprising selected assets
US8286159B2 (en) 2005-12-22 2012-10-09 Alan Joshua Shapiro Method and apparatus for gryphing a data storage medium
US8266615B2 (en) 2005-12-22 2012-09-11 Alan Joshua Shapiro Method and apparatus for delivering percepta
US8245185B2 (en) 2005-12-22 2012-08-14 Alan Joshua Shapiro System and method for software delivery
US20070234337A1 (en) * 2006-03-31 2007-10-04 Prowess Consulting, Llc System and method for sanitizing a computer program
US20070234302A1 (en) * 2006-03-31 2007-10-04 Prowess Consulting Llc System and method for deploying a virtual machine
US9547485B2 (en) 2006-03-31 2017-01-17 Prowess Consulting, Llc System and method for deploying a virtual machine
US20080082558A1 (en) * 2006-09-29 2008-04-03 Brother Kogyo Kabushiki Kaisha Communication system and network storage device therefor
US7836075B2 (en) * 2006-09-29 2010-11-16 Brother Kogyo Kabushiki Kaisha Communication system and network storage device therefor
US20090043890A1 (en) * 2007-08-09 2009-02-12 Prowess Consulting, Llc Methods and systems for deploying hardware files to a computer
US10055415B2 (en) 2007-08-09 2018-08-21 Prowess Consulting, Llc Methods and systems for deploying hardware files to a computer
US8671166B2 (en) 2007-08-09 2014-03-11 Prowess Consulting, Llc Methods and systems for deploying hardware files to a computer
US8423591B2 (en) * 2008-01-31 2013-04-16 Prowness Consulting, LLC Method and system for modularizing windows imaging format
US8051111B2 (en) * 2008-01-31 2011-11-01 Prowess Consulting, Llc Method and system for modularizing windows imaging format
US20120117126A1 (en) * 2008-01-31 2012-05-10 Prowess Consulting, Llc Method and System for Modularizing Windows Imaging Format
US20090198731A1 (en) * 2008-01-31 2009-08-06 Prowess Consulting, Llc Method and system for modularizing windows imaging format
US20100312805A1 (en) * 2009-05-08 2010-12-09 Noonan Iii Donal Charles System and method for capturing, managing, and distributing computer files
US20110113419A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Programmatic Creation Of Task Sequences From Manifests
US9128799B2 (en) 2009-11-09 2015-09-08 Bank Of America Corporation Programmatic creation of task sequences from manifests
US20110113070A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Software Stack Building Using Logically Protected Region Of Computer-Readable Medium
US8584113B2 (en) * 2009-11-09 2013-11-12 Bank Of America Corporation Cross-updating of software between self-service financial transaction machines
US20110113415A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Multiple Invocation Points In Software Build Task Sequence
US8671402B2 (en) 2009-11-09 2014-03-11 Bank Of America Corporation Network-enhanced control of software updates received via removable computer-readable medium
US20110113417A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Network-Enhanced Control Of Software Updates Received Via Removable Computer-Readable Medium
US20110113416A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Network-Enhanced Control Of Software Updates Received Via Removable Computer-Readable Medium
US20110113413A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Software Updates Using Delta Patching
US8972974B2 (en) 2009-11-09 2015-03-03 Bank Of America Corporation Multiple invocation points in software build task sequence
US9122558B2 (en) 2009-11-09 2015-09-01 Bank Of America Corporation Software updates using delta patching
US20110113422A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Programmatic Creation Of Task Sequences From Manifests
US20110113418A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Cross-Updating Of Software Between Self-Service Financial Transaction Machines
US20110113424A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Distribution Of Software Updates
US9176898B2 (en) 2009-11-09 2015-11-03 Bank Of America Corporation Software stack building using logically protected region of computer-readable medium
US20110113421A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Programmatic Creation Of Task Sequences From Manifests
US20110113226A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Distribution Of Software Updates
US20110113414A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Software Updates Using Delta Patching
US20110113420A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Distribution Of Software Updates
US20110238572A1 (en) * 2010-03-25 2011-09-29 Bank Of America Corporation Remote Control Of Self-Service Terminal
US9582513B2 (en) 2013-12-08 2017-02-28 Microsoft Technology Licensing, Llc Accessing data in a compressed container through dynamic redirection
US9740473B2 (en) 2015-08-26 2017-08-22 Bank Of America Corporation Software and associated hardware regression and compatibility testing system

Also Published As

Publication number Publication date
US20060130017A1 (en) 2006-06-15
US20030233363A1 (en) 2003-12-18

Similar Documents

Publication Publication Date Title
US7017144B2 (en) Combined image views and method of creating images
US7461095B2 (en) Image server store system and method using combined image views
US7395453B2 (en) System and method for splitting an image across multiple computer readable media
US20040034849A1 (en) Volume image views and methods of creating volume images in which a file similar to a base file is stored as a patch of the base file
KR101075388B1 (en) Peripheral device driver maintenance scheme for networked peripheral device clients
US8380672B2 (en) Backup control apparatus and method eliminating duplication of information resources
US7676481B2 (en) Serialization of file system item(s) and associated entity(ies)
KR20040050855A (en) Managed file system filter model and architecture
US20010032199A1 (en) Method for optimizing the performance of a database
US20030220930A1 (en) System and method for translating to and from hierarchical information systems
US7127472B1 (en) Data processing method and data processing device
US8539497B2 (en) Method for organizing software so the set of extensions for an extendable application can be run securely
JP4095971B2 (en) Using virtual targets to create and process requests for server-free data transfer operations
US6973447B1 (en) System apparatus and method for supporting multiple partitions including multiple systems in boot code
JP2005531066A (en) View for software atomization
JPH1097449A (en) Multivalued localized string
US6687819B1 (en) System, apparatus and method for supporting multiple file systems in boot code
US20060020572A1 (en) Computer, storage system, file management method done by the computer, and program
US7213029B2 (en) Quiescing work bounded by application transactions consisting of multiple relational database transactions
JP4268141B2 (en) Database replication program and database replication apparatus
JPH0844609A (en) Data backup method
JP2006004024A (en) Program for execution by directory server
US20040267811A1 (en) Host initiated display, host initiated display application program interface, and host initiated display method
JPH11184889A (en) Image data management device
JP2005222434A (en) Archive deployment management apparatus and program

Legal Events

Date Code Title Description
AS Assignment

Owner name: MICROSOFT CORPORATION, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:COHEN, JASON;BURKHARDT, RYAN;REEL/FRAME:013017/0228;SIGNING DATES FROM 20020613 TO 20020614

AS Assignment

Owner name: MICROSOFT CORPORATION, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GREEN, BRUCE L.;REEL/FRAME:013926/0244

Effective date: 20030326

STCF Information on status: patent grant

Free format text: PATENTED CASE

CC Certificate of correction
FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034541/0477

Effective date: 20141014

MAFP Maintenance fee payment

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

Year of fee payment: 12