Hierarchical process management in an intelligent call processing system
First Claim
Patent Images
1. A method of operating a customer interaction center server, comprising:
- establishing a network data structure, comprising;
a plurality of nodes, each comprising startup information relating to a different one of a number of communication subsystems; and
a plurality of relationships, each between at least two of the plurality of nodes, and each comprising;
a reference to a superior node selected from the plurality of nodes;
a reference to a subordinate node selected from the plurality of nodes, wherein the subsystem to which the subordinate node'"'"'s startup information relates depends on the subsystem to which the superior node'"'"'s startup information relates;
processing each of the plurality of nodes by starting the subsystem to which the node'"'"'s startup information relates; and
maintaining a heartbeat monitor that monitors a set of target processes comprising at least one of the number of telephony subsystem processes;
where said processing is done so that, for each relationship in the plurality of relationships, the subsystem to which the superior node'"'"'s startup information relates is started before the subsystem to which the subordinate node'"'"'s startup information relates.
5 Assignments
0 Petitions
Accused Products
Abstract
A novel customer interaction center server, and a novel method of operating a customer interaction center server, are disclosed. In one embodiment, a network of nodes (each representing one or more subsystem processes) and dependency relationships (indicating which processes depend on what other processes) is used to start the server, and the processes are monitored. In some of these embodiments, a failure of a particular process in the set of target processes is detected and logged and/or handled by implementing a selective shutdown and restart of only a subset of the processes represented in the network, based on the dependency information therein.
79 Citations
19 Claims
-
1. A method of operating a customer interaction center server, comprising:
-
establishing a network data structure, comprising;
a plurality of nodes, each comprising startup information relating to a different one of a number of communication subsystems; and
a plurality of relationships, each between at least two of the plurality of nodes, and each comprising;
a reference to a superior node selected from the plurality of nodes;
a reference to a subordinate node selected from the plurality of nodes, wherein the subsystem to which the subordinate node'"'"'s startup information relates depends on the subsystem to which the superior node'"'"'s startup information relates;
processing each of the plurality of nodes by starting the subsystem to which the node'"'"'s startup information relates; and
maintaining a heartbeat monitor that monitors a set of target processes comprising at least one of the number of telephony subsystem processes;
where said processing is done so that, for each relationship in the plurality of relationships, the subsystem to which the superior node'"'"'s startup information relates is started before the subsystem to which the subordinate node'"'"'s startup information relates. - View Dependent Claims (2, 3, 4, 5, 6)
storing the network data structure in program logic.
-
-
4. The method of claim 1, wherein
each target process in the said of target processes has a CPU usage; - and
said maintaining comprises monitoring the CPU usage by at least one process from said set of target processes.
- and
-
5. The method of claim 1, wherein said maintaining comprises monitoring an amount of memory used by at least one process from said set of target processes.
-
6. The method of claim 1, wherein said maintaining comprises monitoring a thread count for at least one process from said set of target processes.
-
7. A method of operating an intelligent call processing server, comprising:
-
establishing a dependency tree, comprising references to;
a first telephony subsystem process;
a plurality of second telephony subsystem processes, each dependent on one or more processes selected from a process group consisting of the first telephony subsystem process and the plurality of second telephony subsystem processes; and
a telephony subsystem process dependent on the first telephony subsystem process and the plurality of second telephony subsystem processes;
starting a control process;
starting the first telephony subsystem process;
after said starting the control process and said starting the first telephony subsystem process, starting the plurality of second telephony subsystem processes such that each second telephony subsystem process is started after the one or more processes on which the particular second telephony subsystem process depends are started;
starting the telephony system process; and
maintaining a heartbeat monitor that monitors a set of target telephony processes comprising at least one of the plurality of second telephony subsystem processes. - View Dependent Claims (8, 9, 10, 11, 12, 13)
storing the dependency tree in a configuration registry.
-
-
9. The method according to claim 7, wherein said establishing comprises:
storing the dependency tree in program logic.
-
10. The method according to claim 7, wherein
each target process in the set of target processes has a CPU usage; - and
said maintaining comprises monitoring the CPU usage by at least one process from said set of target telephony processes.
- and
-
11. The method according to claim 7, wherein said maintaining comprises monitoring an amount of memory used by at least one process from said set of target processes.
-
12. The method according to claim 7, wherein said maintaining comprises monitoring a thread count for at least one process from said set of target processes.
-
13. The method according to claim 7, further comprising:
-
detecting a failure of a failed process in the set of target telephony processes; and
maintaining in a running state the remainder of the processes in the set of target telephony processes while;
stopping the telephony subsystem processes that depend on the failed process according to the dependency tree;
restarting the failed process; and
thenrestarting the telephony subsystem processes that, according to the dependency tree, depend on the failed process.
-
-
14. An apparatus, comprising:
-
a first memory storing a tree data structure corresponding to;
a root node representing a telephony server control process; and
a plurality of subordinate nodes, each representing a different one of a number of telephony subsystem processes process or process groups and referring to one or more superior nodes, wherein each said superior node is either said root node or another of said plurality of subordinate nodes, and wherein said telephony subsystem processes are each dependent upon one or more of the processes or process groups represented by said one or more superior nodes;
a controller in communication with said first memory; and
a computer-readable medium encoded with instructions executable by said controller to;
start said processes in accordance with said tree data structure; and
detect a failure of at least one of said processes. - View Dependent Claims (15, 16, 17, 18, 19)
shut down said telephony subsystem processes represented by said plurality of subordinate nodes; and
when said telephony subsystem processes have been shut down, ending said telephony server control process.
-
Specification