Distributed communications system having garbage collecting virtual processes
First Claim
Patent Images
1. A communications system providing a plurality of services, the communications system comprising:
- at least one memory having a plurality of objects;
a device server executing a first process which during execution uses particular ones of a plurality of free objects from the plurality of objects in the memory to deliver at least one service from the plurality of services;
a first call coordinator executing a second process for receiving and operating on requests from the device server in the delivery of the at least one service of the plurality of services;
a garbage collection process executing a sequence of garbage collection cycles in the communications system for identifying and collecting a plurality of unused objects, the sequence of garbage collection cycles including;
establishing at least three time intervals namely a process execution time interval, a process hibernation time interval, and a garbage collection time interval, such that a particular one of the three time intervals, the process execution time interval, the process hibernation time interval or the garbage collection time interval, is dependent upon the other two time intervals;
defining a third process in a second call coordinator for receiving and operating on requests from the device server in the delivery of the at least one service;
determining whether the second process in the first call coordinator has executed for a time period equal to the process execution time interval, and if so, placing the second process into a hibernation state for a time period equal to the process hibernation time interval such that during the process hibernation time interval the second process accepts no further requests from the device server;
executing, concurrently with the first process and the second process, the third process in the second call coordinator for receiving and operating on all requests from the device server;
traversing, for a time period equal to the garbage collection time interval, the plurality of objects in the memory and collecting particular ones of the plurality of objects that are unused to form a plurality of unused objects, and returning the plurality of unused objects to the plurality of free objects; and
returning, after a time interval equal to a combination of the process hibernation time interval and the garbage collection time interval, execution back to the second process in the first call coordinator for the receiving and the operating on the requests from the device server.
8 Assignments
0 Petitions
Accused Products
Abstract
A communications system for executing distributed processes on garbage collecting virtual machines. More particularly, distributed applications are providing using garbage collection delivered as a function of certain timing variables such as the time until a process will require its next garbage collection cycle, process hibernation time, and the actual total garbage collection time per process. Advantageously, distributed application programs are executed on garbage collecting virtual machines without any adverse processing impact resulting from the garbage collection process.
36 Citations
14 Claims
-
1. A communications system providing a plurality of services, the communications system comprising:
-
at least one memory having a plurality of objects;
a device server executing a first process which during execution uses particular ones of a plurality of free objects from the plurality of objects in the memory to deliver at least one service from the plurality of services;
a first call coordinator executing a second process for receiving and operating on requests from the device server in the delivery of the at least one service of the plurality of services;
a garbage collection process executing a sequence of garbage collection cycles in the communications system for identifying and collecting a plurality of unused objects, the sequence of garbage collection cycles including;
establishing at least three time intervals namely a process execution time interval, a process hibernation time interval, and a garbage collection time interval, such that a particular one of the three time intervals, the process execution time interval, the process hibernation time interval or the garbage collection time interval, is dependent upon the other two time intervals;
defining a third process in a second call coordinator for receiving and operating on requests from the device server in the delivery of the at least one service;
determining whether the second process in the first call coordinator has executed for a time period equal to the process execution time interval, and if so, placing the second process into a hibernation state for a time period equal to the process hibernation time interval such that during the process hibernation time interval the second process accepts no further requests from the device server;
executing, concurrently with the first process and the second process, the third process in the second call coordinator for receiving and operating on all requests from the device server;
traversing, for a time period equal to the garbage collection time interval, the plurality of objects in the memory and collecting particular ones of the plurality of objects that are unused to form a plurality of unused objects, and returning the plurality of unused objects to the plurality of free objects; and
returning, after a time interval equal to a combination of the process hibernation time interval and the garbage collection time interval, execution back to the second process in the first call coordinator for the receiving and the operating on the requests from the device server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
4. The communications system of claim 3 further comprising:
a Java Virtual Machine for executing at least one of the first process, the second process, or the third process.
-
5. The communications system of claim 4 wherein the device server and the call coordinators are coupled in a client-server arrangement.
-
6. The communications system of claim 5 wherein the device server and at least one of the call coordinators exposes a hierarchical namespace.
-
7. The communications system of claim 4 wherein at least one of the call coordinators executes a feature applet.
-
8. The communications system of claim 6 wherein the device server and the call coordinators are coupled together by a network.
-
9. The communications system of claim 2 further comprising:
a transmitter for transmitting a first message to the device server indicating that the second process has entered into the hibernation state, and for transmitting a second message to the device server indicating that the third process has entered into the hibernation state.
-
10. The communications system of claim 9 wherein the device server is an end-point device server.
-
11. The communications system of claim 10 wherein the end-point device server is a phone device server.
-
12. The communications system of claim 9 wherein the service is a call processing service.
-
13. A method of executing distributed processes, the method comprising the steps of:
-
executing a first process on a device server such that the first process during execution uses particular ones of a plurality of free objects from a plurality of objects to deliver at least one service from a plurality of services;
executing a second process on a first call coordinator for receiving and operating on requests from the device server in the delivery of the at least one service of the plurality of services;
executing a garbage collection process for identifying and collecting a plurality of unused objects, the executing the garbage collection process including the steps of;
establishing at least three time intervals namely a process execution time interval, a process hibernation time interval, and a garbage collection time interval, such that a particular one of the three time intervals, the process execution time interval, the process hibernation time interval or the garbage collection time interval, is dependent upon the other two time intervals;
defining a third process in a second call coordinator for receiving and operating on requests from the device server in the delivery of the at least one service;
determining whether the second process in the first call coordinator has executed for a time period equal to the process execution time interval, and if so, placing the second process into a hibernation state for a time period equal to the process hibernation time interval such that during the process hibernation time interval the second process accepts no further requests from the device server;
executing, concurrently with the first process and the second process, the third process in the second call coordinator for receiving and operating on all requests from the device server;
traversing, for a time period equal to the garbage collection time interval, the plurality of objects in the memory and collecting particular ones of the plurality of objects that are unused to form a plurality of unused objects, and returning the plurality of unused objects to the plurality of free objects; and
returning, after a time interval equal to a combination of the process hibernation time interval and the garbage collection time interval, execution back to the second process in the first call coordinator for the receiving and the operating on the requests from the device server. - View Dependent Claims (14)
-
Specification