IP Library Granted Patent US 7,127,526
Granted Patent B1
US 7,127,526 · App. 09/709,830 · Granted Oct 24, 2006

Method and apparatus for dynamically loading and managing software services on a network device

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,127,526
App. No.
09/709,830
Granted
Oct 24, 2006
Kind
B1
Abstract

The present invention relates to an apparatus and method for dynamically loading and managing software services on a network device. A service environment ported to the network device includes a service environment kernel and a virtual machine. The service environment kernel continually operates on the network device and manages the downloading of services from a remote location onto the network device. In accordance with a request from a remote client such as a network manager, the service environment kernel causes instructions corresponding to the downloaded service to be provided to the virtual machine for execution on the network device. Associated with the service are service relationships. The service environment kernel manages these relationships by maintaining a registry of services and their dependencies on other services. The service environment kernel also controls the execution of services in accordance with the service relationships.

Claims (75)

1. A method for performing a service on a network device, comprising the steps of:

loading the service on the network device from another location, the service having a corresponding set of service relationships, wherein the loading includes downloading a file corresponding to the service and containing program code operable to perform the service;

checking the service relationships of the loaded service against a stored service registry, wherein the service registry includes indications of services and indications of dependencies of services on other services, and wherein the checking the service relationships of the loaded service includes determining whether all other services the loaded service depends on are available; and

causing the service to be executed on the network device only if all other services the loaded service depends on are determined to be available.

2. A method according to claim 1 , further comprising the step of:

updating the stored service registry with information corresponding to the executed service.

3. A method according to claim 1 , wherein the step of causing the service to be executed includes the step of providing instructions corresponding to the service to a virtual machine that is ported to the network device.

4. A method according to claim 1 , further comprising the step of:

causing another service to be executed on the network device in accordance with a result of the step of checking the service relationships.

5. A method according to claim 1 , wherein the network device is one of a router, a switch, and a hub.

6. A method according to claim 5 , wherein the service comprises accessing a MIB on the network device.

7. A method according to claim 1 , wherein the network device comprises a packet switching fabric.

8. A method according to claim 7 , wherein the network device comprises a control plane and a forwarding plane including the packet switching fabric, the loading, checking and causing steps being performed in the control plane without interruption of the forwarding plane.

9. A method according to claim 8 , further comprising the step of interfacing with embedded hardware and software to cause forwarding rules referred to by the packet switching fabric to be adjusted.

10. A method according to claim 7 , wherein the service comprises accessing a MIB on the network device.

11. A method according to claim 1 , further comprising the step of:

communicating with a remote client to receive an identifier corresponding to the service to be performed.

12. A method according to claim 11 , wherein the another location corresponds to an application server that stores a plurality of services, and wherein the identifier comprises a URL pointing to the application server.

13. A method according to claim 12 , wherein the step of loading includes the step of downloading the file corresponding to the service from the application server in accordance with the URL.

14. A method according to claim 13 , wherein the step of downloading includes the step of communicating with the application server using the HTTP protocol.

15. A method according to claim 1 , wherein the another location corresponds to an application server that stores a plurality of services.

16. A method according to claim 11 , wherein the step of communicating includes the step of providing a telnet interface that allows the remote client to provide the identifier in association with a predefined command requesting the service to be performed.

17. A method according to claim 1 , further comprising the step of interfacing with embedded hardware and software to perform tasks associated with the service.

18. A network device, comprising

means for loading a service on the network device from another location, the service having a corresponding set of service relationships, wherein the loading includes downloading a file corresponding to the service and containing program code operable to perform the service;

means for checking the service relationships of the loaded service against a stored service registry, wherein the service registry includes indications of services and indications of dependencies of services on other services, and wherein the checking the service relationships of the loaded service includes determining whether all other services the loaded service depends on are available; and

means for causing the service to be executed on the network device only if all other services the loaded service depends on are determined to be available.

19. A network device according to claim 18 , further comprising:

means for updating the stored service registry with information corresponding to the executed service.

20. A network device according to claim 18 , wherein the means for causing the service to be executed includes means for providing instructions corresponding to the service to a virtual machine that is ported to the network device.

21. A network device according to claim 18 , further comprising:

means for causing another service to be executed on the network device in accordance with a result from the means for checking the service relationships.

22. A network device according to claim 18 , wherein the network device is one of a router, a switch, and a hub.

23. A network device according to claim 22 , wherein the service comprises accessing a MIB on the network device.

24. A network device according to claim 18 , wherein the network device comprises a packet switching fabric.

25. A network device according to claim 24 , wherein the network device comprises a control plane and a forwarding plane including the packet switching fabric, the means for loading, means for checking and means for causing being operable in the control plane without interruption of the forwarding plane.

26. A network device according to claim 25 , further comprising means for interfacing with native hardware and software to cause forwarding rules referred to by the packet switching fabric to be adjusted.

27. A network device according to claim 24 , wherein the service comprises accessing a MIB on the network device.

28. A network device according to claim 18 , further comprising:

means for communicating with a remote client to receive an identifier corresponding to the service to be performed.

29. A network device according to claim 28 , wherein the another location corresponds to an application server that stores a plurality of services, and wherein the identifier comprises a URL pointing to the application server.

30. A network device according to claim 29 , wherein the means for loading includes means for downloading the file corresponding to the service from the application server in accordance with the URL.

31. A network device according to claim 30 , wherein the mean for downloading includes means for communicating with the application server using the HTTP protocol.

32. A network device according to claim 28 , wherein the means for communicating includes means for providing a telnet interface that allows the remote client to provide the identifier in association with a predefined command requesting the service to be performed.

33. A network device according to claim 18 , wherein the another location corresponds to an application server that stores a plurality of services.

34. A network device according to claim 18 , further comprising means for interfacing with native hardware and software to perform tasks associated with the service.

35. A network device for locally performing a service, comprising:

a network interface adapted to load the service on the network device from another location, by downloading a file corresponding to the service and containing program code operable to perform the service, the service having a corresponding set of service relationships;

a service registry, wherein the service registry includes indications of services and indications of dependencies of services on other services;

a service manager coupled to the network interface and the service registry that is adapted to check the service relationships of the loaded service against the service registry, wherein the checking the service relationships of the loaded service includes determining whether all other services the loaded service depends on are available; and

a service launcher coupled to the service manager that is adapted to cause the service to be executed on the network device only if all other services the loaded service depends on are determined to be available.

36. A network device according to claim 35 , wherein the network device is one of a router, a switch, and a hub.

37. A network device according to claim 35 , further comprising a packet switching fabric.

38. A network device according to claim 37 , further comprising:

a control plane including the network interface, the service registry, the service manager and the service launcher; and

a forwarding plane including the packet switching fabric, the network interface, the service manager and the service launcher being operable in the control plane without interruption of the forwarding plane.

39. A network device according to claim 38 , further comprising API extensions through which the service interfaces with native hardware and software to cause forwarding rules referred to by the packet switching fabric to be adjusted.

40. A network device according to claim 35 , wherein the network interface is further adapted to communicate with a remote client to receive an identifier corresponding to the service to be performed.

41. A network device according to claim 40 , wherein the network interface includes a telnet interface that allows the remote client to provide the identifier in association with a predefined command requesting the service to be performed.

42. A network device according to claim 35 , further comprising API extensions through which the service interfaces with native hardware and software to perform tasks associated with the service.

43. A network device for locally performing a service, comprising:

a control plane including:

an embedded CPU and operating system,

a service environment ported to the embedded CPU and operating system, the service environment having:

a network interface adapted to load the service on the network device from another location, by downloading a file corresponding to the service and containing program code operable to perform the service, the service having a corresponding set of service relationships,

a service registry, wherein the service registry includes indications of services and indications of dependencies of services on other services,

a service manager coupled to the network interface and the service registry that is adapted to check the service relationships of the loaded service against the service registry, wherein the checking the checking the service relationships of the loaded service includes determining whether all other services the loaded service depends on are available, and

a service launcher coupled to the service manager that is adapted to cause the service to be executed on the network device only if all other services the loaded service depends on are determined to be available, and

a forwarding plane including a packet switching fabric, the service environment being operable in the control plane without interruption of the forwarding plane.

44. A method for updating one of a plurality of functionalities of a network device, comprising the steps of:

providing a service environment that executes in a runtime environment of the network device;

providing code corresponding to the updated one of the functionalities to the service environment from another location on a network coupled to the network device by downloading a file corresponding to the service and containing program code operable to perform the service;

providing header information indicating relationships required by the updated one of the functionalities to the service environment;

checking the relationships required by the updated one of the functionalities against a stored service registry, wherein the service registry includes indications of services and indications of dependencies of services on other services, wherein the checking the relationships required by the updated one of the functionalities includes determining whether all services required by the updated one of the functionalities are available; and

executing the code corresponding to the updated one of the functionalities only if all other services required by the updated one of the functionalities are determined to be available.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 48612/0598) Recorded May 18, 2023
From: GOLDMAN SACHS BANK USA., AS COLLATERAL AGENT
To: AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC. (FORMER NAME OF AVAYA CLOUD INC.); HYPERQUALITY, INC.; HYPERQUALITY II, LLC; CAAS TECHNOLOGIES, LLC; AVAYA MANAGEMENT L.P.
Reel/Frame 063691/0294 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 53955/0436) Recorded May 18, 2023
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063705/0023 →
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL 48612/FRAME 0582 Recorded Apr 26, 2023
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: AVAYA HOLDINGS CORP.; AVAYA INC.; AVAYA MANAGEMENT L.P.
Reel/Frame 063456/0428 →
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL 57700/FRAME 0935 Recorded Apr 26, 2023
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: AVAYA HOLDINGS CORP.; AVAYA INC.; AVAYA MANAGEMENT L.P.
Reel/Frame 063458/0303 →
SECURITY INTEREST Recorded Oct 4, 2021
From: AVAYA MANAGEMENT LP
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 057700/0935 →
SECURITY INTEREST Recorded Sep 25, 2020
From: AVAYA INC.; AVAYA MANAGEMENT L.P.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 053955/0436 →
SECURITY INTEREST Recorded Mar 15, 2019
From: AVAYA MANAGEMENT L.P.
To: CITIBANK, N.A.
Reel/Frame 048612/0582 →
SECURITY INTEREST Recorded Mar 15, 2019
From: AVAYA MANAGEMENT L.P.
To: GOLDMAN SACHS BANK USA
Reel/Frame 048612/0598 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2019
From: AVAYA HOLDINGS LIMITED
To: AVAYA MANAGEMENT L.P.
Reel/Frame 048577/0492 →