摘要:
Described is a technology by which encrypted content is pre-distributed to recipients during a pre-distribution timeframe, for example to distribute protected content to many clients in a controlled manner. At a release moment, a key for decrypting the encrypted content is released. For example, a software update may be pre-distributed in this manner, whereby many clients may receive the updates over time but the update cannot be analyzed for hacking purposes, e.g., to use the update to figure out a prior vulnerability. By rapidly and widely disseminating the key at the release moment, the update is installed on a large percentage of client systems before those systems can be exploited. The content may be allowed to expire before the key is released, or may be canceled or replaced. The content may include a complete file, and/or a delta file that changes another file into a resultant piece of content.
摘要:
Mechanisms for updating an address book. A first computing system generates an address book update file format and provides the file to a second computing system. The file format contains several data fields. One of the data fields consists of a configurable list of attribute property identifications. These property identifications represent address book information such as e-mail address, phone number, first name, surname, and the like. A second data field comprises contact data that includes at least some of the properties identified by the configurable list. Changes to the information contained in the address book update may be made by simply adding or deleting attribute property identifications. This has the effect of allowing modifications to the address book file format without having to generate a new file format.
摘要:
A data compressor uses data known to exist on a destination computer for compressing an input data stream by encoding portions of the input data stream as references to matching portions of the known data. The known data is preprocessed to better correlate with the input data stream. The preprocessing includes identifying and modifying internal references in the known data, such as relative offsets and addresses of jump and call instructions in executable code or cross references and hyperlinks in documents. The preprocessing is driven by generating a set of data that describes specific individual modifications or alternatively indicates relationships between the known data and the input data stream, such as code or data block motion, from which individual modifications can be deterministically made. This generated descriptive data is included with the compressed data stream so that identical preprocessing can be applied to the known data at the destination computer based on the generated descriptive data prior to decompression. Preprocessing the known data improves compression of the input data stream since changed internal references that interrupt matches of the input data stream to the known data can be eliminated.
摘要:
A software package manager uses a distribution unit containing components for a software package and a manifest file that describes the distribution unit to manage the installation, execution, and uninstallation of software packages on a computer. Information in the manifest file pertaining to a software package is stored in a code store data structure upon installation of the package. The manifest file also contains information that permits the software package manager to resolve any software dependencies upon installation. The software package manager uses the code store data structure to locate the required components when the software is executed and to remove the components appropriately when the software is uninstalled.
摘要:
Compression of streaming data is described. In an implementation, a method includes compressing data for communication in a terminal services environment by finding an index in a lookup table that matches an initial sequence in data. The lookup table includes a plurality of entries. Each of the entries is discoverable utilizing a particular one of a plurality of the indices. Each entry references whether a corresponding index is located in a history buffer, and if so, further references one or more locations of the corresponding index in the history buffer. If the corresponding entry of the matching index references a plurality of locations, for each location, a sequence having the matching index is compared with a sequence in the data that includes the initial sequence. A matching sequence is derived from the comparison based on a length and the location of the sequence at each of the locations. The matching sequence is represented using a representation that includes the length and the location of the matching sequence in the history buffer.
摘要:
A system and method for updating one or more files on a computing device are provided. A client computing device obtains update information including an index identifying particular delta patches with specific versions of installed files. Upon selecting which of the applicable updates will be implemented, an update agent on the client computing device performs an inventory to identify which version a file to be updated is installed on the machine. The update agent selects a corresponding delta patch and transmits the request to an update service.
摘要:
Rather than comparing an old file with a new file to generate a set of patching instructions, and then compressing the patching instructions to generate a compact patch file for transmission to a user, a patch file is generated in a single operation. A compressor is pre-initialized in accordance with the old version of the file (e.g. in an LZ77 compressor, the history window is pre-loaded with the file). The pre-initialized compressor then compresses the old file, producing a patch file from which the new file can be generated, as a single process. At the user's computer, a parallel process is performed, with the user's copy of the old file being used to pre-initialize a decompressor to which the patch file is then input. The output of the decompressor is the new file, again produced as a single process. The patch files generated and used in these processes are of significantly reduced size when compared to the prior art.
摘要:
A method and system for downloading software update data for installing a revised software product on a client computer minimizes the amount of update data to be transmitted over the network by downloading only those files needed to put the client computer in the state for installing the product. In the beginning of the downloading process, the client computer obtains from a setup server an initial setup package that includes a setup program and a list of files required for installing the software product. The setup program running on the client computer then determines whether some current or earlier versions of those files required for installation already exist on the client computer, and compiles a request list of files needed for updating the client computer. The client computer sends the request list to a download server, which maintains a collection of update files and patches. In response to the request list, the download server downloads updating files to the client. Depending of the availability of the requested files or other factors, the downloaded files may or may not be exactly those requested. Using the downloaded files, the setup program updates the existing files to provide the set of installation files on the client computer. The desired revised software product is then installed on the client computer.
摘要:
Rather than comparing an old file with a new file to generate a set of patching instructions, and then compressing the patching instructions to generate a compact patch file for transmission to a user, a patch file is generated in a single operation. A compressor is pre-initialized in accordance with the old version of the file (e.g. in an LZ77 compressor, the history window is pre-loaded with the file), or other reference file available on the user's computer for purpose other than serving as a decompression aid. The pre-initialized compressor then compresses the old file, producing a patch file from which the new file can be generated. At the user's computer, a parallel process is performed, with the user's copy of the old file being used to pre-initialize a decompressor to which the patch file is then input. The output of the decompressor is the new file. The patch files generated and used in these processes are of significantly reduced size when compared to the prior art.
摘要:
Rather than comparing an old file with a new file to generate a set of patching instructions, and then compressing the patching instructions to generate a compact patch file for transmission to a user, a patch file is generated in a single operation. A compressor is pre-initialized in accordance with the old version of the file (e.g. in an LZ77 compressor, the history window is pre-loaded with the file). The pre-initialized compressor then compresses the old file, producing a patch file from which the new file can be generated. At the user's computer, a parallel process is performed, with the user's copy of the old file being used to pre-initialize a decompressor to which the patch file is then input. The output of the decompressor is the new file. The patch files generated and used in these processes are of significantly reduced size when compared to the prior art. Variations between copies of the old file as installed on different computers are also addressed, so that a single patch file can be applied irrespective of such variations. By so doing, the need for a multi-version patch file to handle such installation differences is eliminated, further reducing the size of the patch file when compared with prior art techniques. Such variations are addressed by “normalizing” the old file prior to application of the patch file. A temporary copy of the old file is typically made, and locations within the file at which the data may be unpredictable due to idiosyncrasies of the file's installation are changed to known or predictable values.