Efficient inter-process object and interface pinging
First Claim
1. A computer system comprising:
- a plurality of client processes;
a server process;
the server process having a plurality of interfaces which it creates dynamically in response to demand for said interfaces by the client processes, the server process destroying the interfaces when there is no further demand for them, each created interface being simultaneously held for use during at least a portion of its lifetime by more than one of the client processes;
one or more ping managers, each client process being registered with an associated one of the ping managers, wherein each client process registers with its associated ping manager any server interfaces which it is holding for use;
each ping manager monitoring whether any of its registered client processes have terminated, and automatically unregistering the interfaces held by any such client processes which have terminated;
an individual one of the ping managers periodically sending a single inter-process message destined for the server process, said single inter-process message containing a set of keep-alive signals corresponding to only those server process interfaces which remain registered with said individual ping manager;
wherein a particular client process notifies its associated ping manager of interfaces being held for use only at pre-defined intervals.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer system includes a plurality of client processes executing in respective address spaces and at least one server process executing in a different address space than the client processes. The server process has one or more available server objects for potential use by the client processes. The server objects are accessible by the client processes through a plurality of server object interfaces dynamically created in response to demand for said interfaces by the client processes. The server object interfaces are destroyed when there is no further demand for them. Each object interface can be simultaneously held for use during at least a portion of its lifetime by more than one of the client processes. The computer system further includes one or more client-side ping managers and at least one server-side ping manager. Each client process registers interfaces it is holding for use with an associated client-side ping manager. The server-side ping manager is associated with the server process and stores one or more interface lists indicating server object interfaces held for use by client processes. The server-side ping manager has a ping manager object interface available to the client-side ping managers. Each client-side ping manager accesses the server-side ping manager through the ping manager object interface to maintain an interface list with the server-side ping manager indicating server object interfaces which are registered with the client-side ping manager. Each client-side ping manager monitors whether any of its registered client processes have terminated, and automatically unregisters the interfaces of any such client processes which have terminated. The server-side ping manager notifies the server process of any server object interfaces which are no longer included in the interface lists of the server-side ping manager so that those interfaces can be destroyed.
-
Citations
29 Claims
-
1. A computer system comprising:
-
a plurality of client processes;
a server process;
the server process having a plurality of interfaces which it creates dynamically in response to demand for said interfaces by the client processes, the server process destroying the interfaces when there is no further demand for them, each created interface being simultaneously held for use during at least a portion of its lifetime by more than one of the client processes;
one or more ping managers, each client process being registered with an associated one of the ping managers, wherein each client process registers with its associated ping manager any server interfaces which it is holding for use;
each ping manager monitoring whether any of its registered client processes have terminated, and automatically unregistering the interfaces held by any such client processes which have terminated;
an individual one of the ping managers periodically sending a single inter-process message destined for the server process, said single inter-process message containing a set of keep-alive signals corresponding to only those server process interfaces which remain registered with said individual ping manager;
wherein a particular client process notifies its associated ping manager of interfaces being held for use only at pre-defined intervals. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer system comprising:
-
a plurality of client processes;
a server process;
the server process having a plurality of interfaces which it dynamically creates in response to demand for said interfaces by the client processes, the server process potentially destroying the interfaces when there is no further demand for them, each created interface being simultaneously held for use during at least a portion of its lifetime by more than one of the client processes;
one or more ping managers, each client process being registered with an associated one of the ping managers, wherein each client process registers with its associated ping manager any interfaces which it is holding for use;
the server process being associated with a particular one of the ping managers, wherein said particular one of the ping managers keeps track of which server process interfaces are being held for use by one or more client processes;
each ping manager monitoring whether any of its registered client processes have terminated, and automatically unregistering the interfaces held by any such client processes which have terminated;
each ping manager maintaining a list of server process interfaces which remain registered with the ping manager, an individual ping manager periodically sending a single inter-process message to the ping manager associated with the server process, said single inter-process message indicating any changes in the list of server process interfaces which remain registered with said individual ping manager;
the ping manager associated with the server process notifying the server process of any server process interfaces which are no longer held for use by one or more client processes. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A computer system comprising:
-
a plurality of client processes;
a server process having one or more available server objects for potential use by the client processes;
the server objects being accessible by the client processes through a plurality of server object interfaces dynamically created in response to demand for said interfaces by the client processes, the server object interfaces being potentially destroyed when there is no further demand for them, each created server object interface being simultaneously held for use during at least a portion of its lifetime by more than one of the client processes;
one or more client-side ping managers, each client process being registered with an associated one of the client-side ping managers, wherein each client process registers interfaces it is holding for use with the associated client-side ping manager;
each client-side ping manager monitoring whether any of its registered client processes have terminated, and automatically unregistering the interfaces of any such client processes which have terminated;
a server-side ping manager, wherein the server-side ping manager stores one or more interface lists indicating server object interfaces held for use by client processes;
the server-side ping manager having a ping manager object interface available to the client-side ping managers, each client-side ping manager accessing the server-side ping manager through the ping manager object interface to maintain an interface list with the server-side ping manager indicating server object interfaces which remain registered with the client-side ping manager;
the server-side ping manager notifying the server process of any server object interfaces which are no longer included in the interface lists of the server-side ping manager. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A method of monitoring interface use, comprising the following steps:
-
executing a plurality of client processes;
executing a server process;
dynamically creating a plurality of server process interfaces in response to demand for said interfaces by the client processes;
more than one of the client processes simultaneously holding each of said created interfaces for use during at least a portion of its lifetime;
executing one or more ping managers;
registering each client process and interfaces being held by said client process with an associated ping manager;
each ping manager monitoring whether any of its registered client processes have terminated, and automatically unregistering the interfaces of any such client processes which have terminated;
an individual ping manager composing a single inter-process message destined for the server process, said inter-process message containing a set of keep-alive signals corresponding to only those server process interfaces which remain registered with said individual ping manager;
wherein the step of registering interfaces being held by the client processes is performed only at pre-defined intervals. - View Dependent Claims (20, 21, 22)
connecting at least two computers for data communications;
executing the server process on a different computer than the client processes;
registering the interfaces of each client process executing on a particular computer with a single ping manager executing on that particular computer.
-
-
22. A method as recited in claim 19 wherein the step of registering interfaces being held by the client processes is performed only when such interfaces have been held for a minimum time period.
-
23. A method of monitoring interface use, comprising the following steps:
-
executing a plurality of client processes;
executing a server process having one or more available server objects for potential use by the client processes;
exposing the server objects through a plurality of server object interfaces that are dynamically created in response to demand for said interfaces by the client processes;
more than one of the client processes simultaneously holding each created server object interface for use during at least a portion of its lifetime;
executing one or more client-side ping managers;
registering each client process and server object interfaces held by said client process with an associated one of the client-side ping managers;
executing a server-side ping manager;
exposing a server-side ping manager interface for use by client-side ping managers, said interface allowing the client-side ping managers to maintain interface lists with the server-side ping manager indicating server object interfaces which remain registered with the client-side ping managers;
maintaining such interface lists from the client-side ping managers;
notifying the server process of server object interfaces that are no longer included in the interface lists of the server-side ping manager;
periodically, at selected ping periods, sending a keep-alive signal to the server-side ping manager from each client-side ping manager that has registered client processes holding server object interfaces;
including in said keep-alive signal a designation of any desired changes in the interface list maintained by the client-side ping manager with the server-side ping manager;
destroying the interface list maintained by a particular client-side ping manager if a keep-alive signal is not received from said particular client-side ping manager during a pre-defined time-out period;
wherein the step of registering interfaces being held by the client processes is performed only at pre-defined intervals which are approximately equal to the selected ping periods.
-
-
24. A method of monitoring interface use, comprising the following steps:
-
executing a plurality of client processes;
executing a server process having one or more available server objects for potential use by the client processes;
exposing the server objects through a plurality of server object interfaces that are dynamically created in response to demand for said interfaces by the client processes;
more than one of the client processes simultaneously holding each created server object interface for use during at least a portion of its lifetime;
executing one or more client-side ping managers;
registering each client process and server object interfaces held by said client process with an associated one of the client-side ping managers;
executing a server-side ping manager;
exposing a server-side ping manager interface for use by client-side ping managers, said interface allowing the client-side ping managers to maintain interface lists with the server-side ping manager indicating server object interfaces which remain registered with the client-side ping managers;
maintaining such interface lists from the client-side ping managers;
notifying the server process of server object interfaces that are no longer included in the interface lists of the server-side ping manager;
wherein registering interfaces being held by the client processes is performed only at pre-defined intervals. - View Dependent Claims (25, 26, 27, 28, 29)
periodically sending a keep-alive signal to the server-side ping manager from each client-side ping manager that has registered client processes holding server object interfaces;
destroying the interface list maintained by a particular client-side ping manager if a keep-alive signal is not received from said particular client-side ping manager during a pre-defined time-out period.
-
-
26. A method as recited in claim 24 and further comprising:
-
periodically sending a keep-alive signal to the server-side ping manager from each client-side ping manager that has registered client processes holding server object interfaces;
including in said keep-alive signal a designation of any desired changes in the interface list maintained by the client-side ping manager with the server-side ping manager;
destroying the interface list maintained by a particular client-side ping manager if a keep-alive signal is not received from said particular client-side ping manager during a pre-defined time-out period.
-
-
27. A method as recited in claim 24 further comprising:
-
periodically sending a keep-alive signal to the server-side ping manager from each client-side ping manager that has registered client processes holding server object interfaces;
including administrative messages between client processes and the server process in said keep-alive signal.
-
-
28. A method as recited in claim 24 wherein the step of registering interfaces being held by the client processes is performed only when such interfaces have been held for a minimum time period.
-
29. A method as recited in claim 24 further comprising:
-
connecting at least two computers for data communications;
executing the server process on a different computer than the client processes registering each client process executing on a particular computer with a single client-side ping manager executing on that particular computer;
registering server processes executing on an individual computer with a single server-side ping manager executing on said individual computer.
-
Specification