PERSISTENT DATA STORAGE FOR CLIENT COMPUTER SOFTWARE PROGRAMS
Persistent data storage for client computer software programs is provided using a repository that enables client computer software programs to store data securely on a client computer system, subsequently retrieve that data, and optionally share the data in a controlled fashion with authorized client computer software programs. The present invention can be used by both trusted and untrusted client computer software programs that either reside locally on the client computer system or are downloaded from a server computer system. A benefit of the present invention is that it allows untrusted applets to have access to persistent storage without compromising the integrity of the client computer system. Since the present invention controls persistent storage space, not the programmer of the client computer software program, the burden of insuring storage integrity and security is removed from the programmer. In addition to basic integrity and security features, the present invention provides automatic data format conversion for a client computer software programs reading/writing data in the data repository, a commit operation to force in-memory repository data to disk, and automatic expiration to delete the repository data to disk, and automatic expiration to delete the repository after a predetermined time period. The repository can be pre-limited to a maximum size and shared among multiple client computer software programs.