A method is described for creating a self-extracting executable program by compressing an executable program into itself. In an exemplary environment, an executable program comprises the code, data, and resources. The code comprises one or more code segments. The data comprises one or more data segments. The resources comprise one or more resources for the program, such as menus, icons, bitmaps, strings, dialogs, user-defined resources, and the like. One or more code segments from code are transferred to the self-extracting executable program such that its code section comprises one or more uncompressed code segments--that is, the original code segments taken from the code section of executable program. Similarly, one or more data segments from the data section of the executable program are transferred to data section of the self-extracting executable program, as uncompressed data segment(s). Resources from the resource section of the executable program are transferred to the resource section. These are uncompressed resources (i.e., uncompressed by the compressor program). Other code, data, and/or resources of the executable program can be compressed into the program as follows. Code segments of the code section which are not initially needed (e.g., during installation) are compressed into the resource section, as compressed code segments. In a like manner, data from the data section is compressed into the resource section, as compressed data segments. In this manner, a program can be compressed into itself so that the program itself maintains control over its own decompression. The program is not compressed into non-executable data which is appended to an unrelated decompressor program.
A data compression system enables user-level applications to compress and decompress files to save storage space even for user-level applications that are not modified to use compressed files. User preferences associated with a user terminal are established for the compression of data, e.g. video data, wherein the user preferences comprise selective enablement of compression for at least one file type. An exemplary system determines the type of a digital data file, e.g. a digital video data file, being output from an application or input to an application, and performs transparent file-type-based compression or decompression of the digital data file, if enabled by the established user preferences. Files of the selected file types are stored with compressed formats and may even have different names, but are shown to user-level applications to have the same file names and file sizes as original uncompressed files. Therefore, the existing applications can perform operations without any disruptions. The transparent compression can be implemented within a variety of dedicated and/or distributed network configurations, as well as on a single workstation.
A method of distributing software files resident on a network server to a network client. To effectuate the distribution, the network client issues an HTTP formatted request message to the network server which requests that certain software files resident on the network server be downloaded to the network client. The HTTP formatted request message may include information indicative of one or more of the operating system or processor architecture associated with the network client that the network server can use as an aide in determining which software files to return to the network client. The software files are bundled into a cabinet file by the network server and returned to the network client which, in turn, automatically unbundles the cabinet file, checks the authenticity of certain of the individual software files, and installs the software files in an appropriate memory location associated with the network client. In this manner, a world wide distributed printing solution is provided that is capable of working transparently on intranets and the Internet.
The computer programs in redundant, high-reliability systems can be updated in real-time, without a service outage by performing a memory-to-memory data transfer. Old data structures from the primary computer are assembled into a predetermined block of data that is transferred to the secondary, redundant computer. The organization of the transferred block of data is known by the second computer program which disassembles the block of data into new data structures required by the new computer program running on the redundant computer. The memory-to-memory data precludes any system outage attributable to lost data.
An information processing apparatus is provided with a executable instruction extracting unit which is reconfigured by means of a executable instruction extracting unit reconfiguration unit with reference to a compressed/executable instruction correspondence table optimized for the respective executable program, which has been made up with an compressed instruction. The compressed instruction is extended into the corresponding executable instructions by means of the executable instruction extracting unit as reconfigured.
The present invention provides to a user parameter-specific information. In one embodiment, a server receives from a client a parameter-specific information request, which identifies at least one parameter corresponding to the requested parameter-specific information. A file processing program is then invoked to process a first information file. The file processing program reads from the first information file code segments, including both client-displayable segments and segments executable by the file processing program ("FPP-executable code segments"). If the code segment is client-displayable, the file processing program sends to the client the client-displayable code from the client-displayable code segment. On the other hand, if the code segment is FPP-executable, the file processing program executes the FPP-executable code. In doing so, it sends to the client additional client-displayable code in response to the at least one parameter identified in the information request. The client-displayable code sent to the client is then displayed by the client as its parameter specific information.