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 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 after a predetermined time period. The repository can be
pre-limited to a maximum size and shared among multiple client computer
software programs.