Methods and apparatus for managing computer processes
First Claim
1. A daemon process for use on a computer system in a distributed object operating environment, said distributed object operating environment including a plurality of distributed objects which are intended to reside in a corresponding plurality of server processes, said daemon process operable to manage that portion of said plurality of distributed objects which reside on said computer system and that portion of said plurality of server processes which execute on said computer system, said daemon process including:
- an active server table arranged to maintain entries regarding a plurality of server processes, said entries including a server identifier, a server process state, and server process addressing information, wherein each server process that is active on said computer system has an entry in said active server table and a first active server process has at least one target object capable of providing service; and
a locator service operable to access said active server table to provide server process addressing information for said plurality of server processes, said locator service further operable to register a server process in said active server table, wherein a client residing on a remote computer system, when requesting services of said target object, invokes said target object indirectly by invoking a surrogate object corresponding to said target object, said surrogate object residing on said remote computer system, said surrogate object operable to establish a connection with said daemon process in order to obtain addressing information of said first active server process from said daemon process.
0 Assignments
0 Petitions
Accused Products
Abstract
A number of methods, apparatus, and data structures are disclosed for managing computer processes. In one aspect, a daemon process which manages server processes includes an active server table and a locator service. The locator service can look up and register server processes in the active server table. Furthermore, the locator service can start up server processes. In some embodiments, the locator service includes a look-up object and a server process registration object which perform the tasks of the locator service. In other embodiments, methods for managing server process such as starting and registering the server processes are taught. In one specific method, a daemon process performs a variety of steps in response to receiving a look-up call for a target object. These steps include obtaining a server identifier for the target object, determining the state of a server process, and returning addressing information corresponding to the server process under which the target object will activate. In related method aspects the daemon process will start the server process if it isn'"'"'t running and/or wait until the server process is running to return the addressing information. In a separate method aspect, a server process self-starts; receiving an object reference for a desired target object, receiving a server process identification number, creating a communications port for itself, forming addressing information for itself, obtaining an object reference for a server process registration object, and registering itself by calling the server process registration object to invoke a register new process operation.
40 Citations
34 Claims
-
1. A daemon process for use on a computer system in a distributed object operating environment, said distributed object operating environment including a plurality of distributed objects which are intended to reside in a corresponding plurality of server processes, said daemon process operable to manage that portion of said plurality of distributed objects which reside on said computer system and that portion of said plurality of server processes which execute on said computer system, said daemon process including:
-
an active server table arranged to maintain entries regarding a plurality of server processes, said entries including a server identifier, a server process state, and server process addressing information, wherein each server process that is active on said computer system has an entry in said active server table and a first active server process has at least one target object capable of providing service; and
a locator service operable to access said active server table to provide server process addressing information for said plurality of server processes, said locator service further operable to register a server process in said active server table, wherein a client residing on a remote computer system, when requesting services of said target object, invokes said target object indirectly by invoking a surrogate object corresponding to said target object, said surrogate object residing on said remote computer system, said surrogate object operable to establish a connection with said daemon process in order to obtain addressing information of said first active server process from said daemon process. - View Dependent Claims (2, 3, 4, 5)
a plurality of target object identifiers;
a plurality of server identifiers, each server identifier corresponding to at least one of said plurality of target object identifiers; and
a plurality of object references, each object reference corresponding to one of said plurality of target object identifiers.
-
-
3. A daemon process as described in claim 1 wherein said locator service includes a locator object arranged to perform said operation of accessing said active server table to provide server process addressing information, said operation performed in response to a request from a client.
-
4. A daemon process as described in claim 1 wherein said locator service includes a server process registration object arranged to perform said operation of registering a server process in the active server table.
-
5. A distributed object operating environment comprising:
-
a plurality of computer systems;
a computer network interconnecting said plurality of computer systems; and
at least one daemon process as recited in claim 1.
-
-
6. A computer system for use in a distributed object operating environment, said computer system comprising:
-
a central processing unit;
a memory accessible by said central processing unit, said memory including a plurality of distributed objects; and
a locator service implemented on said computer system that manages said plurality of distributed objects and a plurality of server processes which may be implemented on said computer system, said locator service operable to initiate startup of said plurality of server processes, wherein a first client residing on a remote computer system, when requesting services of a first target object being a one of said distributed objects, invokes said target object indirectly by invoking a surrogate object corresponding to said target object, said surrogate object residing on said remote computer system, said surrogate object operable to establish a connection with said locator service in furtherance of establishing communication with said target object and, if a first server process wherein said target object is intended to reside is not yet active, said locator service initiates startup of said first server process. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
a computer implemented receiver for receiving a look-up call for a target object from a client, said look-up call received via said input/output device;
a computer implemented mechanism for obtaining a server identifier for said target object;
a computer implemented evaluator for determining a state of a server process corresponding to said target object, said server process uniquely defined within said computer system by said server identifier, said state of server process being one of the group consisting of running, starting, and not active; and
a computer implemented transmitter for returning addressing information corresponding to said server process to said client, said addressing information returned via said input/output device.
-
-
8. A computer system as recited in claim 7 wherein said transmitter is arranged to operate immediately upon said evaluator determining that said state is running.
-
9. A computer system as recited in claim 7 further including a wait device operable to wait until said state transitions from starting to running.
-
10. A computer system as recited in claim 7 wherein said mechanism for obtaining a server identifier for said target object is operable to access a first database stored in said memory to obtain said server identifier.
-
11. A method as recited in claim 10 wherein said first database is an object adapter database.
-
12. A computer system as recited in claim 10 wherein said evaluator is operable to look up said state in a second database stored in said memory.
-
13. A computer system as recited in claim 12 wherein said second database is an active server table.
-
14. A computer system as recited in claim 12 wherein said first and second database are the same database.
-
15. A computer system as recited in claim 12 further including:
-
a computer implemented creator for creating a server process entry in said second database, said server process entry including a server identifier and a server process state;
a computer implemented marking device for marking said server process state as starting in said second database;
a computer implemented accessing device for accessing said first database to get an execdef for said target object;
a computer implemented starter for starting said server process using said execdef for target object; and
a computer implemented wait device operable to wait until said server process state for said server process transitions from starting to running.
-
-
16. A computer system as recited in claim 15 wherein said server process includes:
-
a second computer implemented receiver for receiving a server process identification number from an operating system of said computer system;
a computer implemented communications port creator for creating a communications port for said server process;
a computer implemented address device for forming addressing information for said server process;
a second computer implemented transmitter for calling a server process registration object resident in said daemon process, said call operable to invoke a register server operation, said call passing said addressing information, said server process identification number, and said server identifier to said server process registration object.
-
-
17. A computer system as recited in claim 16 wherein said server process registration object includes:
-
a register server operation receiver for receiving a call invoking said register server operation;
a database device for storing said addressing information in said second database; and
a state marking device for marking said server process state entry as running.
-
-
18. A distributed object operating environment comprising:
-
a plurality of computer systems wherein at least one of said plurality of computer systems is a computer system as recited in claim 6; and
a computer network interconnecting said plurality of computer systems.
-
-
19. A computer system for use in a distributed object operating environment, said distributed object operating environment providing clients access to the services of remote distributed objects through the use of surrogate objects, said computer system comprising:
-
a central processing unit;
a memory accessible by said central processing unit;
a forking mechanism to fork a new thread of execution from a thread of execution executing on said computer system;
a daemon process implemented on said computer system, said daemon process including a server process registration object and an active server table, wherein said server process registration object is operable to perform a register server operation including registering a new server process in said active server table; and
a server process implemented on said computer system, said server process including;
a first device for receiving a server process identification number from an operating system of said computer system;
a second device for creating a communications port for said server process;
an address device for forming addressing information for said server process; and
a register server transmitter for calling the server process registration object to invoke said register server operation, said call passing said addressing information, said server process identification number, and said server identifier to said server process registration object.
-
-
20. A computer implemented method for managing a plurality of server processes which are intended to execute on a computer system, said computer system for use in a distributed object operating environment, said distributed object operating environment providing clients access to the services of remote distributed objects through the use of surrogate objects, said method performed by a daemon process resident on said computer system, said method comprising the steps of:
-
receiving under computer control a look-up call for a target object, said look-up call originating from a client, wherein when said client resides on a remote computer system, said client originates said look-up call indirectly by invoking a surrogate object corresponding to said target object, said surrogate object residing on said remote computer system;
determining under computer control a state of a server process corresponding to said target object, said server process uniquely defined within said computer system by said server identifier; and
returning under computer control addressing information corresponding to said server process to said client, wherein when said client resides on a remote computer, said surrogate object is the recipient of said addressing information. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
creating under computer control a server process entry in said second database, said server process entry including a server identifier and a server process state;
marking under computer control said server process state as starting in said second database;
accessing under computer control said first database to get an execdef for said target object;
starting under computer control said server process using said execdef for target object; and
waiting under computer control until said server process state for said server process transitions from starting to running.
-
-
29. A method as recited in claim 28 wherein said server process responds to said step of starting said server process by performing the steps of:
-
receiving under computer control a server process identification number from an operating system of said computer system;
creating under computer control a communications port for said server process;
forming under computer control addressing information for said server process;
calling under computer control a server process registration object resident in said daemon process, said call operable to invoke a register server operation, said call passing said addressing information, said server process identification number, and said server identifier to said server process registration object.
-
-
30. A method as recited in claim 29 wherein said server process registration object performs the steps of:
-
receiving under computer control a call invoking said register server operation;
storing under computer control said addressing information in said second database; and
marking under computer control said server process state entry as running.
-
-
31. A computer implemented method for a server process executing on a computer system, said server process having a server identifier, said computer system for use in a distributed object operating environment, said distributed object operating environment capable of providing clients access to the services of remote distributed objects through the use of surrogate objects, said method comprising the steps of:
-
receiving under computer control a server process identification number from an operating system of said host computer;
creating under computer control a communications port for said server process;
forming under computer control addressing information for said server process;
calling under computer control a server process registration object resident in a certain process executing on said computer system, said call operable to invoke a register server operation, said call passing said addressing information, said server process identification number, and said server identifier to said server process registration object, wherein when said server process is registered due to said invocation of said register server object, said certain process provides a mechanism enabling clients of said server process to obtain said addressing information, said server process identification number, and said server identifier upon request.
-
-
32. A computer implemented method for registering an active server process, said method performed by a server process registration object resident in a certain process executing on a computer system, said computer system for use in a distributed object operating environment, said distributed object operating environment providing clients access to the services of remote distributed objects through the use of surrogate objects, said method comprising the steps of:
-
receiving under computer control a call invoking a register server operation operable to register the active server process in an active server table, said call including a server process identification number, a server identifier corresponding to said server process identification number, and addressing information corresponding to said server identifier;
storing under computer control said addressing information in a database; and
marking under computer control a server process state entry in said database as running, wherein when said active server process is registered due to said invocation of said register server process, said certain process provides a mechanism enabling clients of said server process to obtain said addressing information, said server process identification number, said server identifier, and said server process state entry.
-
-
33. A computer implemented self-start and provide service method for a server process executing on a computer system, said computer system for use in a distributed object operating environment, said distributed object operating environment providing clients access to the services of remote distributed objects through the use of surrogate objects, said server process working in conjunction with a daemon process executing on said computer system, said method comprising the computer controlled steps of:
-
receiving at said server process a become server invocation from a first client;
receiving at said server process an object reference for a target object;
receiving at said server process a server process identification number from an operating system of said computer system;
creating with said server process a communications port for said server process;
forming with said server process addressing information for said server process;
obtaining with said server process an object reference for a server process registration object from an object request broker, said server process registration object residing in said daemon process;
calling with said server process said server process registration object, said call operable to invoke a register new server operation, said call passing said addressing information, said server process identification number, and said object reference for said target object to said server process registration object;
receiving at said server process a server identifier corresponding to said server process receiving at said daemon process a look-up call for said target object, said look-up call originating from a second client, wherein when said second client resides on a remote computer system, said second client originates said look-up call indirectly by invoking a surrogate object corresponding to said target object, said surrogate object residing on said remote computer system;
determining with said daemon process a state of said server process corresponding to said target object, said server process uniquely defined within said computer system by said server identifier, and returning under computer control addressing information corresponding to said server process to said client, wherein when said client resides on a remote computer, said surrogate object is the recipient of said addressing information. - View Dependent Claims (34)
obtaining under computer control a server identifier from an object adapter database;
creating under computer control a server process entry in an active server table;
storing under computer control said addressing information in said active server table;
marking under computer control a server process state entry in said active server table as running; and
sending under computer control said server identifier to said server process.
-
Specification