Caching system for nested archives
View Patent ↗A representation of nested electronic data archives permitting archived resources to be efficiently accessed during use is disclosed. A method and system is disclosed which selectively expands and efficiently stores the contents of an archive during use. In a preferred embodiment, the system comprises a nested associative data structure to store compressed and uncompressed portions of a nested archive.
1. A method for caching nested archives, comprising the steps of: generating a first associative data structure;
in the first associative data structure, associating data representing an unexpanded archive with a string representing the name of the archive;
accessing the unexpanded archive using the name of the archive and the first associative data structure;
expanding the archive;
generating a second associative data structure;
in the second associative data structure, associating one or more resources contained in the archive with one or more names of the one or more resources;
in the first associative data structure, associating data representing the second associative data structure with the string representing the name of the archive; and
wherein, for each expanded archive in said nested archive that is represented as a new associative data structure, a new entry is inserted in said first associative data structure using a name of the new archive as a key and a pointer or reference to the new archive as a value.
2. The method of claim 1 , wherein the data representing an unexpanded archive comprises a pointer to an archive file.
3. The method of claim 1 , wherein the data representing the second associative data structure comprises an object reference to the second associative data structure.
4. The method of claim 1 , wherein the unexpanded archive comprises a Java jar.
5. The method of claim 1 , wherein the unexpanded archive comprises a tape archive.
6. A method for caching nested archives comprising the steps of:
storing data representing an unexpanded nested archive in a top-level hash map;
expanding the unexpanded nested archive the first time a resource contained within the unexpanded nested archive is accessed; and
replacing the data representing the unexpanded nested archive in the top-level hash map with data representing at least one expanded portion of the archive; and
for each new archive that is expanded and represented by a new hash map, inserting a new entry in said top-level hash map using a name of the new expanded archive as a key and a pointer or reference to said new hash map.
7. The method of claim 1 , wherein the resource name is an URL.