Patent ID: 7689999

Claim:
A computer-implemented method for sharing a set of resources among a plurality of processes, comprising: for each resource in the set of resources, creating a version of a resource for each one of the plurality of processes that requires access to the resource wherein a version of the resource is one of: 1) a representation of the resource at a particular point in time; and 2) a transformation of the resource; making each of the created versions available to the plurality of processes; and notifying a process in the plurality of processes when a resource in the set of resources upon which the process requires access is updated, wherein the creating the version of the resource further comprises: receiving a resource list from a process of the plurality of processes, selecting a resource from the resource list, when a version of the resource does not already exist, creating a new version of the resource, and setting a reference count corresponding to the new version to a first value, when the version of the resource already exists but is not a latest version of the resource, creating the new version of the resource, decrementing a value of a reference count corresponding to the version of the resource, and setting the reference count corresponding to the new version to the first value, when the version of the resource already exists and is a latest version of the resource, incrementing the value of the reference count corresponding to the version of the resource and not creating the new version of the resource, and adding the version of the resource to a version list that is sent to the process.