Sharing dynamically changing resources in software systems
AssigneeBEA Systems, Inc.
InventorsJess Garms, Britton Worth Piehler
Life of this patent
Estimating the term…
Abstract
A system and method for sharing a set of resources among a plurality of processes, comprising 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.
Claims14
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.
A computer system for sharing a set of resources among a plurality of clients, comprising:
- a version manager capable of 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;
- and
- a resource manager capable of registering the set of resources 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 version manager is further configured to:
- receive a resource list from a process of the plurality of processes,
- select a resource from the resource list,
- when a version of the resource does not already exist, create a new version of the resource, and set 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, create the new version of the resource, decrement a value of a reference count corresponding to the version of the resource, and set 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, increment the value of the reference count corresponding to the version of the resource and not create the new version of the resource, and
- add the version of the resource to a version list that is sent to the process.
A machine readable storage medium having instructions stored thereon to cause a computer system to:
- for each resource in a set of resources, create a version of a resource for each one of a 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;
- make each of the created versions available to the plurality of processes;
- and
- notify 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 a 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.
Dependencies are inferred from the claim text.