IP Library Granted Patent US 7,689,999
Granted Patent B2
US 7,689,999 · App. 11/000,800 · Granted Mar 30, 2010

Sharing dynamically changing resources in software systems

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,689,999
App. No.
11/000,800
Granted
Mar 30, 2010
Kind
B2
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.

Claims (43)

1. 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.

2. The computer-implemented method of claim 1 wherein the resource is one or more of the following: source code, a file, a document, a library, an archive, an object, a data structure, a database, a process, a service, and a deployment descriptor.

3. The computer-implemented method of claim 1 , further comprising: deleting the version of the resource if no processes in the plurality of processes require access to it.

4. The computer-implemented method of claim 1 , wherein the notifying is dynamic.

5. The computer-implemented method of claim 1 , wherein a first process and a second process in the plurality of processes can require access to the same resource.

6. The computer-implemented method of claim 1 , wherein a process in the plurality of processes is part of an integrated development environment.

7. 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.

8. The computer system of claim 7 , further comprising: persistent storage capable of saving the state of one or more of the version manager and the resource manager.

9. The computer system of claim 7 , wherein the resource is one or more of the following: source code, a file, a document, a library, an archive, an object, a data structure, a database, a process, a service, and a deployment descriptor.

10. The computer system of claim 7 , further comprising: deleting the version of the resource if no processes in the plurality of processes require access to it.

11. The computer system of claim 7 , wherein the notifying is dynamic.

12. The computer system of claim 7 , wherein a first process and a second process in the plurality of processes can require access to the same resource.

13. The computer system of claim 7 , wherein a process in the plurality of processes is part of an integrated development environment.

14. 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.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 1, 2010
From: BEA SYSTEMS, INC.
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 025084/0470 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2004
From: GARMS, JESS; PIEHLER, BRITTON WORTH
To: BEA SYSTEMS, INC.
Reel/Frame 016044/0097 →