Method and apparatus for dynamically loading and managing software services on a network device
First Claim
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.
11 Assignments
0 Petitions
Accused Products
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.
122 Citations
44 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
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. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
-
-
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. - View Dependent Claims (36, 37, 38, 39, 40, 41, 42)
-
-
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.
-
Specification