IP Library Granted Patent US 7,376,951
Granted Patent B1
US 7,376,951 · App. 10/236,403 · Granted May 20, 2008

Method and apparatus for controlling process dependencies

Assignee: Extreme Networks
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,376,951
App. No.
10/236,403
Granted
May 20, 2008
Kind
B1
Abstract

A method and system is provided to control and check run-time process dependencies. When a process manager receives a request to start a new process, the process manager accesses a configuration file to check if the new process depends on any other processes to be running and what versions of these prerequisite processes are required. If an exact version is specified in the configuration file, the prerequisite process version must match the exact version specified to be compatible with the new process. If a range of acceptable versions is specified in the configuration file, the prerequisite process version must fall within the range of acceptable versions to be compatible with the new process. If a minimum acceptable version is specified in the configuration file, then the prerequisite process version must be greater than or equal to the minimum acceptable version specified. If a maximum acceptable version is specified in the configuration file, then the prerequisite process version must be less than or equal to the maximum acceptable version specified. If the prerequisite processes are not running or the versions of the running prerequisite processes are not compatible with the new process, then the new process is not started. If the new process does not depend on any processes or all the prerequisite are running with compatible versions, then the new process may be started.

Claims (61)

1. A method for starting a dependent process in a network device, comprising:

starting one or more processes in the network device;

registering the one or more processes with a process manager running in the network device;

receiving, after the one or more processes are running in the network device, a request to start a second process in the network device;

accessing a configuration file to determine if the second process is dependent on one or more prerequisite processes that must be running before the second process can be started, the configuration file further identifying a version of each prerequisite process required by the dependent process;

if there is a prerequisite process of the second process defined in the configuration file, comparing the one or more prerequisite processes with the one or more registered running processes to determine if each of the one or more prerequisite processes is running in the network device and whether the second process is compatible with the version identifier of each of the one or more running prerequisite processes; and

starting the second process only if every prerequisite process of the second process is running and the second process is compatible with the version identifier of each of the one or more running prerequisite processes.

2. The method of claim 1 , wherein the configuration file is accessed by the process manager and contains one or more dependency entries for a dependent process, each dependency entry defining the prerequisite process of the dependent process and the version of the prerequisite process required by the dependent process.

3. The method of claim 2 , wherein determining whether the second process is compatible with the version identification of each of the one or more prerequisite processes comprises:

obtaining, from the configuration file, a version requirement of the second process for each prerequisite process;

comparing the version requirement for each prerequisite process to the version identifier registered by each prerequisite process; and

determining whether the version identifier registered by each prerequisite process satisfies the version requirement of the second process, wherein the version requirement is that the prerequisite process be an exact match of a particular version.

4. The method of claim 2 , wherein determining whether the second process is compatible with the version identification of each of the one or more prerequisite processes comprises:

obtaining, from the configuration file, a version requirement of the second process for each prerequisite process;

comparing the version requirement for each prerequisite process to the version identifier registered by each prerequisite process; and

determining whether the version identifier registered by each prerequisite process satisfies the version requirement of the second process, wherein the version requirement is that the prerequisite process be within a range of acceptable versions.

5. The method of claim 2 , wherein determining whether the second process is compatible with the version identification of each of the one or more prerequisite processes comprises:

obtaining, from the configuration file, a version requirement of the second process for each prerequisite process;

comparing the version requirement for each prerequisite process to the version identifier registered by each prerequisite process; and

determining whether the version identifier registered by each prerequisite process satisfies the version requirement of the second process, wherein the version requirement is that the prerequisite process be greater than or equal to a minimum acceptable version.

6. The method of claim 2 , wherein determining whether the second process is compatible with the version identification of each of the one or more prerequisite processes comprises:

obtaining, from the configuration file, a version requirement of the second process for each prerequisite process;

comparing the version requirement for each prerequisite process to the version identifier registered by each prerequisite process; and

determining whether the version identifier registered by each prerequisite process satisfies the version requirement of the second process, wherein the version requirement is that the prerequisite process be less than or equal to a maximum acceptable version.

7. The method of claim 1 , wherein the network device is a router and the second process is a route manager application process to be run on the active Router Protocol (RP).

8. A system for controlling process dependency in a network device comprising:

a process manager to be run in the network device;

one or more processes to be started in the network device and to be registered with the process manager;

a second process to be run in the network device after the one or more processes are running in the network device;

data in a configuration file identifying the second process as dependent on one or more prerequisite processes that must be running before the second process can be started the data also identifying a version of each prerequisite process required by the dependent process; and

a processor to compare the data in the configuration file with the one or more running processes registered with the process manager to determine if each of the one or more prerequisite processes is running in the network device and that the second process is compatible with the version identifier of each of the one or more running prerequisite processes, and to start the second process only after determining that every prerequisite processes is running and each is of a compatible version.

9. The system of claim 8 , wherein the configuration file is accessed by the process manager and the data contains one or more dependency entries for a dependent process, each dependency entry defining the prerequisite process of the dependent process and defining the version of the prerequisite process required by the dependent process.

10. The system of claim 8 , wherein each of the one or more prerequisite processes is compatible with the second process if the prerequisite process version registered with the process manager matches the version identifier defined by the configuration file data.

11. The system of claim 8 , wherein the version identifier specifies an earliest acceptable version and wherein the second process is compatible with each of the one or more prerequisite processes if the version of each prerequisite process registered with the process manager matches or is later than the earliest acceptable version specified.

12. The system of claim 8 , wherein the version identifier specifies a latest acceptable version and wherein the second process is compatible with each of the one or more prerequisite processes if the version of each prerequisite process registered with the process manager matches or is earlier than the latest acceptable version specified.

13. The system of claim 8 , wherein the version identifier specifies a range of acceptable versions and wherein the second process is compatible with each of the one or more prerequisite processes if the version of each prerequisite process registered with the process manager falls within the range of acceptable versions specified.

14. The system of claim 8 , wherein the network device is a router and the second process is a route manager application process to be run on the active Router Protocol (RP).

15. A computer-readable storage media with instruction stored thereon, which when executed, causes a computer to perform the method comprising:

starting one or more processes in the network device;

registering the one or more processes with a process manager running in the network device;

receiving, after the one or more processes are running in the network device, a request to start a second process in the network device;

accessing a configuration file to determine if the second process is dependent on one or more prerequisite processes that must be running before the second process can be started, the configuration file further identifying a version of each prerequisite process required by the dependent process;

if there is a prerequisite process of the second process defined in the configuration file, comparing the one or more prerequisite processes with the one or more registered running processes to determine if each of the one or more prerequisite processes is running in the network device and whether the second process is compatible with the version identifier of each of the one or more running prerequisite processes; and

starting the second process only if every prerequisite process of the second process is running and the second process is compatible with the version identifier of each of the one or more running prerequisite processes.

16. The media of claim 15 , wherein the configuration file is accessed by the process manager and contains one or more dependency entries for a dependent process, each dependency entry defining the prerequisite process of the dependent process and defining the version of the prerequisite process required by the dependent process.

17. The media of claim 15 , wherein determining whether the second process is compatible with the version identification of each of the one or more prerequisite processes comprises:

obtaining, from the configuration file, a version requirement of the second process for each prerequisite process;

comparing the version requirement for each prerequisite process to the version identifier registered by each prerequisite process; and

determining whether the version identifier registered by each prerequisite process satisfies the version requirement of the second process, wherein the version requirement is that the prerequisite process be an exact match of a particular version.

18. The media of claim 15 , wherein determining whether the second process is compatible with the version identification of each of the one or more prerequisite processes comprises:

obtaining, from the configuration file, a version requirement of the second process for each prerequisite process;

comparing the version requirement for each prerequisite process to the version identifier registered by each prerequisite process; and

determining whether the version identifier registered by each prerequisite process satisfies the version requirement of the second process, wherein the version requirement is that the prerequisite process be within a range of acceptable versions.

19. The media of claim 15 , wherein determining whether the second process is compatible with the version identification of each of the one or more prerequisite processes comprises:

obtaining, from the configuration file, a version requirement of the second process for each prerequisite process;

comparing the version requirement for each prerequisite process to the version identifier registered by each prerequisite process; and

determining whether the version identifier registered by each prerequisite process satisfies the version requirement of the second process, wherein the version requirement is that the prerequisite process be greater than or equal to a minimum acceptable version.

20. The media of claim 15 , wherein determining whether the second process is compatible with the version identification of each of the one or more prerequisite processes comprises:

obtaining, from the configuration file, a version requirement of the second process for each prerequisite process;

comparing the version requirement for each prerequisite process to the version identifier registered by each prerequisite process; and

determining whether the version identifier registered by each prerequisite process satisfies the version requirement of the second process, wherein the version requirement is that the prerequisite process be less than or equal to a maximum acceptable version.

Assignments (9)
RELEASE OF PATENT AND TRADEMARK SECURITY INTEREST AT REEL/FRAME NO. 46050/0546 Recorded Jul 30, 2026
From: BANK OF MONTREAL, AS AGENT
To: EXTREME NETWORKS, INC.
Reel/Frame 076081/0088 →
AMENDED SECURITY AGREEMENT Recorded Aug 18, 2023
From: EXTREME NETWORKS, INC.; AEROHIVE NETWORKS, INC.
To: BANK OF MONTREAL
Reel/Frame 064782/0971 →
RELEASE OF SECURITY INTEREST Recorded May 1, 2018
From: SILICON VALLEY BANK
To: EXTREME NETWORKS, INC.
Reel/Frame 046051/0775 →
SECURITY INTEREST Recorded May 1, 2018
From: EXTREME NETWORKS, INC.
To: BANK OF MONTREAL
Reel/Frame 046050/0546 →
THIRD AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Oct 31, 2017
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 044639/0300 →
SECOND AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Jul 14, 2017
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 043200/0614 →
AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Oct 31, 2016
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 040521/0762 →
SECURITY AGREEMENT Recorded Jul 27, 2015
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 036189/0284 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2002
From: YIP, MICHAEL; BERENBERG, ANNA
To: EXTREME NETWORKS
Reel/Frame 013278/0737 →