US20060080424A1 - A Generic framework for deploying EMS provisioning services - Google Patents

A Generic framework for deploying EMS provisioning services Download PDF

Info

Publication number
US20060080424A1
US20060080424A1 US10/866,067 US86606704A US2006080424A1 US 20060080424 A1 US20060080424 A1 US 20060080424A1 US 86606704 A US86606704 A US 86606704A US 2006080424 A1 US2006080424 A1 US 2006080424A1
Authority
US
United States
Prior art keywords
service
instance
generic
ems
network element
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US10/866,067
Other versions
US7660882B2 (en
Inventor
Jiong Sun
Niraj Gopal
Satyanarayana Raju
Sai Ramamoorthy
Prasad Yerneni
David Ward
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cisco Technology Inc filed Critical Cisco Technology Inc
Priority to US10/866,067 priority Critical patent/US7660882B2/en
Assigned to CISCO TECHNOLOGY, INC. reassignment CISCO TECHNOLOGY, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: RAJU, SATYANARAYANA, YERNENI, PRASAD, GOPAL, NIRAJ, RAMAMOORTHY, SAI V., SUN, JIONG, WARD, DAVID D.
Priority to CN2005800190768A priority patent/CN101268450B/en
Priority to PCT/US2005/020057 priority patent/WO2005122720A2/en
Priority to EP05758585.3A priority patent/EP1782215B1/en
Priority to CA2569665A priority patent/CA2569665C/en
Publication of US20060080424A1 publication Critical patent/US20060080424A1/en
Application granted granted Critical
Publication of US7660882B2 publication Critical patent/US7660882B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/084Configuration by using pre-existing information, e.g. using templates or copying from other elements
    • H04L41/0843Configuration by using pre-existing information, e.g. using templates or copying from other elements based on generic templates

Definitions

  • the present invention relates to implementing an element management system (EMS) framework for provisioning one or more services between an EMS server and one or more EMS clients.
  • EMS element management system
  • an EMS client may provision a service on a network element, such as a router.
  • the EMS server is a server that is responsible for administering a service on a network element.
  • the EMS client which is operationally connected to the EMS server, allows an administrator to manage and configure the service being provisioned by the EMS server on the network element. For instance, if an administrator wishes to deploy a particular service, such as Voice Over IP (VoIP), on a particular router, the administrator may use an EMS client to communicate with an EMS server. After configuring the service using the EMS client, the administrator may deploy the service on the particular router by sending instructions from the EMS client to the EMS server to cause the EMS server to provision the service as configured on the particular router.
  • VoIP Voice Over IP
  • an EMS server A significant amount of customized development is required for an EMS server to support the provisioning of a new service. For example, an interface between the EMS client and the EMS server for the new service must be defined. Also, software controlling how the EMS server persistently stores and retrieves data relating to the new service must be created and implemented on the EMS server. The EMS server also needs to be modified to support the conversion of data associated with the new service. Additionally, the EMS server must be configured to facilitate the communication of data related to the new service to the network elements.
  • FIG. 1 is a block diagram illustrating the architecture of a system in accordance with an embodiment
  • FIG. 2 is a flowchart illustrating the high level functional steps of an embodiment
  • FIG. 3 is a block diagram of an EMS server according to an embodiment
  • FIG. 4 is a flowchart illustrating the functional steps in adding a new service module to the generic framework of an EMS server
  • FIG. 5 is a flowchart illustrating the functional steps involved in retrieval of the configuration information of one or more network elements according to an embodiment
  • FIG. 6 is a block diagram that illustrates a computer system upon which an embodiment may be implemented.
  • a generic framework for an EMS server enables communications exchanged between EMS clients and the EMS server to be processed similarly by the EMS server using the same generic framework, even if those communications involve different services. New services can be added to a list of services supported by the EMS server without any modification to the generic framework of the EMS server.
  • a communication to administer a particular service on a network element is transmitted from an EMS client to an EMS server.
  • the communication contains service data that describes a particular service to be administered on the network element.
  • the EMS server After receiving the communication, the EMS server constructs an instance of a generic record that stores the service data that was contained in the communication. By storing service data in an instance of a generic record, all services that are supported by the EMS server may be processed using the same generic components.
  • the EMS server selects a service module to process the instance of the generic record based on which service is associated with the service data stored in the instance.
  • the selected service module that the EMS selects to process the instance is configured to process instances of the generic record storing service data associated with the particular service being administered. For example, if the service data stored in the instance of the generic record is directed to Voice over IP service, then the selected service module is a module that is configured to provision the Voice over IP service.
  • the selected service module provisions the service on the network element.
  • the result of provisioning the service on the network device is stored in result data that describes the result of processing the service data at the network element.
  • the EMS server then stores the result data in a persistent store, such as a database.
  • FIG. 1 is a block diagram illustrating the architecture of a system 100 in accordance with an embodiment.
  • System 100 includes one or more network elements, one or more EMS servers, one or more EMS clients, one or more network management stations (NMS), and one or more communications links.
  • NMS network management stations
  • a network element such as network elements 102 , 104 , and 106 as shown in FIG. 1 , refers to any hardware component that is capable of being the subject of a service that is being provisioned by the EMS server.
  • Non-limiting, illustrative examples of a network element include a router, a firewall, and a server. While FIG. 1 illustrates an embodiment comprising three network elements, embodiments of the invention may comprise one or more network elements.
  • An EMS Server such as EMS server 110 and 112 as shown in FIG. 1 , refers to any functional component that is capable of provisioning a service to one or more network elements. While FIG. 1 depicts a system comprising two EMS servers; embodiments of the invention may comprise one or more EMS servers.
  • An EMS server may provision one or more services to one or more network elements, regardless of what type each network element is or the type of service being provisioned. In other words, an EMS server in an embodiment may provision any service that the EMS server supports to any network element, even if the EMS server is provisioning the same service to multiple network elements having a different manufacturer type or model type.
  • An EMS Server comprises a generic framework. Components of the generic framework will be described with reference to FIG. 3 , which is a block diagram of an EMS server according to an embodiment.
  • FIG. 3 depicts EMS server 110 having a generic framework 310 .
  • Generic framework 310 refers to a set of functional components within an EMS server that enable communications exchanged between EMS clients and the EMS server to be processed similarly by the EMS server, even if those communications involve different services. The processing performed by generic framework 310 shall be described in greater detail below.
  • the generic framework comprises a generic interface 320 , a generic engine 330 , service modules 340 , 342 , 344 , and a database manager 350 .
  • a generic interface such as generic interface 320 , refers to any generic interface that allows each EMS client to exchange communications with EMS server using the same interface regardless of which service is associated with the communication. The operation of generic interface 320 shall be described in further detail below.
  • a generic engine such as generic engine 330 , refers to any functional component that creates and stores instances of a generic record. Instances of a generic record are used by embodiments to store service data contained within communications from EMS clients. Service data is data that describes a particular service to be administered on the network element. The operation, of the generic engine 330 shall be described in further detail below.
  • a service module such as service modules 340 , 342 , and 344 , refers to any functional component capable of processing instances of a generic record.
  • the service module processes instances of the generic record to obtain the service data contained therein.
  • the service module exchanges XML documents with a network element that contains either service data or result data.
  • Result data is data that describes the result of processing the service data at the network element. The operation of the service module shall be described in further detail below.
  • a database manager such as database manager 350 , refers to any functional component that allows components of the generic framework 310 to store data in a database.
  • An EMS client such as EMS client 120 and 122 as shown in FIG. 1 , refers to any software or hardware component that is capable of communicating with an EMS server and is capable of instructing the EMS server to administer a service on a network element. While only two EMS clients, namely EMS client 120 and 122 , are depicted if FIG. 1 , in various embodiments any number of EMS clients may be operationally connected to a particular EMS server. An EMS client may be, but need not be, configured to instruct the EMS to administer a different service on a network element than another EMS client.
  • a NMS Server such as NMS server 130 as shown in FIG. 1 , refers to any hardware or software component that is capable of monitoring an operational status of one or more EMS servers.
  • An administrator may use an NMS server to monitor the status of one or more EMS servers as well as any network element that is the subject of a service which one of the EMS servers is provisioning. Thus, the administrator may use an NMS server to monitor the status of an entire system. While FIG. 1 depicts only one NMS server, namely NMS server 130 , embodiments may deploy any number of NMS servers, including zero NMS servers.
  • Communications links 140 and 142 may be implemented by any medium or mechanism that provides for the exchange of data between a NMS server and an EMS server.
  • Communications links 150 and 152 may be implemented by any medium or mechanism that provides for the exchange of data between an EMS client and an EMS server.
  • Communications links 160 , 162 , and 164 may be implemented by any medium or mechanism that provides for the exchange of data between an EMS server and a network element. Examples of communications links 140 , 142 , 150 , 152 , 160 , 162 , and 164 include, without limitation, a network such as a Local Area Network (LAN), Wide Area Network (WAN), Ethernet or the Internet, or one or more terrestrial, satellite or wireless links.
  • LAN Local Area Network
  • WAN Wide Area Network
  • Ethernet or the Internet
  • FIG. 2 is a flowchart 200 illustrating the high level functional steps of an embodiment.
  • an EMS server may process communications exchanged between the EMS server and one or more EMS clients that involve different services similarly using the same generic framework.
  • An EMS server configured to perform the functional steps illustrated in FIG. 2 may have its operation modified to provision a new service on one or more network elements without any change to the generic framework of the EMS server.
  • FIG. 3 is a block diagram of an EMS server according to an embodiment.
  • a communication to administer a particular service on a network element is received at an EMS server from an EMS client.
  • the EMS server may be configured to provision one or more services onto one or more network elements.
  • EMS server 110 may receive a communication to administer a particular service, such as Voice over IP, on network element 102 from EMS client 120 .
  • EMS server 110 may also be currently provisioning several other services on network element 102 .
  • the EMS server provides a generic interface using an exposed API to facilitate communicate between each EMS client and the EMS server.
  • EMS server 110 may provide generic interface 320 that exposes an API to each EMS client that allows each EMS client 120 to exchange communications with EMS server 110 using the CORBA protocol.
  • each EMS client 120 exchanges communications with the EMS server 110 using generic interface 320
  • each EMS client 120 may exchange communications with the EMS server 110 in the same fashion regardless of which service is associated with the communication.
  • the communication received by the EMS server in step 210 is transmitted using the CORBA protocol.
  • generic interface 320 is configured to receive communications from EMS clients using a variety of transport protocols, e.g., CORBA, HTTP, or SSH.
  • the communication received in step 210 contains service data that describes the particular service to be administered on the network element. For example, if the particular service to be administered on the network element is Voice over IP, then the service data contains data that describes the Voice over IP service and describes how it is to be deployed on the network element. After the performance of step 210 , processing proceeds to step 220 .
  • an instance of a generic record that stores the service data contained within the communication received in step 210 is created and stored.
  • a generic record is any record that is capable of storing service data associated with any service.
  • a generic record may be embodied in the following pseudocode: struct Request ⁇ string clientName; OperationTag operation; RecordList configRecordList; ⁇ ;
  • clientName identifies which client transmitted the service data to the EMS server, operation identifies the operation of the service to be performed, and configRecordList refers to the set of name/value pairs that store data relating to the operation.
  • the above pseudocode is merely illustrative, as other embodiments may create generic records using a different format or structure.
  • the instance of the generic record that stores the service data contained within the communication received in step 210 is created by generic engine 330 .
  • the particular instance of the generic record created by generic engine 330 is a new generic record that conforms with the structure of the generic record.
  • the generic record may be embodied in a class, and the instance may be embodied in a new instance of the generic record class.
  • Generic engine 330 may employ a constructor to create the instance of the generic record.
  • a constructor is any functional component that is capable of creating instances of a generic record. The operation of the constructor will be discussed in further detail below.
  • generic engine 330 After constructing the instance of the generic record, generic engine 330 then stores the service data that was contained with the communication received in step 210 in the newly created instance of the generic record. Thereafter, generic engine 330 stores the instance with the service data, either in volatile or non-volatile memory.
  • the generic record may be constructed to include one or more specific methods.
  • the one or more specific methods may be used for performing special processing for service data of a certain type that does not need to be performed on service data of other types. For example, if a service of type XYZ requires that a special operation be performed, but no other service requires that operation to be performed, then the constructor constructs the instance of the generic record, which stores the service data, with the one or more specific methods that perform the operation. Thus, the operation may be performed on the service data associated with service type XYZ by performing the one or more specific methods comprised in the instance. Special methods that are defined in an instance of the generic record may be executed by various components of the generic framework 310 as necessary.
  • the generic engine 330 may construct the one or more specific methods using the constructor.
  • the constructor determines an object type associated with the service data.
  • the object type identifies what type of service is associated with the service data, as each service has service data of a different object type.
  • the constructor may construct the instance to include the one or more specific methods if it is determined that the object type associated with the service data requires the addition of the one or more specific methods.
  • the constructor may use other attributes contained within the service data to identify the service associated with the service data and/or base a determination as to whether to construct the instance with one or more specific methods.
  • the service data may contain data, such as a label, that identifies that one or more specific methods should be included in the instance constructed to store the service data.
  • generic engine 330 performs a validation check on the service data to ensure that the service data conforms to a set of validation rules.
  • the validation rules may be stored in a persistent store located at the generic engine 330 or at a location accessible to generic engine 330 .
  • the validation check may be performed to ensure that the service data received in the communication in step 210 is valid. If the service data does not pass one or more validation rules, then the EMS client that transmitted the communication that contained the service data may be notified by the EMS server that the service data contains one or more errors.
  • processing proceeds to step 230 .
  • step 230 generic processing is performed on the instance. Note that step 230 is optional, and certain embodiments do not perform step 230 , but rather after the performance of step 220 , processing proceeds directly to step 240 . In embodiments that do perform step 230 , the same generic processing is performed on any instance of the general record created in step 220 regardless of which service is associated with service data stored by the instance. In other words, if two different instances each contain service data associated with different services, then the same generic processing is still performed on both instances. In an embodiment, generic engine 330 performs step 230 .
  • the generic processing performed in step 230 includes logging information about the instance to a persistent store.
  • the information logged about the instance includes any information about the receipt or content of the instance that may be of use at a later date.
  • the information logged about the instance may include, but is not limited to, when the instance was received, which EMS client transmitted the communication containing the service data stored within the instance, and the contents of the service data stored within the instance.
  • the information may be logged to any persistent store accessible to the generic engine 330 .
  • the generic engine may communicate with the database manager 350 to log the information in a database 360 .
  • the generic processing performed in step 230 includes performing error handling on any errors associated with the instance.
  • the generic processing performed in step 230 includes performing one or more security checks on the instance. For example, a set of permissions that are associated with the user who transmitted the communication received in step 210 may be checked to determine if the user has sufficient privilege to transmit the communication containing the service data received in step 210 .
  • the generic processing performed in step 230 may include one or more of the above discussed operations.
  • the generic processing of step 230 may include logging information about the instance to a persistent store, performing one or more security checks on the instance, and performing error handling on any errors associated with the instance. After the performance of step 230 , processing proceeds to step 240 .
  • a service module is selected to process the instance created in step 220 based on which service is associated with the service data stored in the instance.
  • the service module selected in step 240 is configured to process instances of the generic record storing service data associated with the same service that is associated with the service data stored in the instance. For example, if the instance of the general record created in step 220 stores service data associated with the Voice over IP service, then the service module selected in step 240 is configured to process instances of the generic record storing service data associated with the Voice over IP service.
  • generic framework 310 of EMS server 110 may include any number of service modules 340 - 344 , in order for EMS server to provision the service associated with the service data stored within the instance, the EMS server must have a service module configured to process instances of the generic record storing service data of the same type as the instance to be processed. In other words, if the instance of the general record created in step 220 stores service data associated with service ABC, then EMS server 110 must comprise a service module configured to process instances of the generic record storing service data associated with service ABC to provision service ABC to network elements.
  • step 240 the service module selected to process the instance created in step 220 is based on the type of network element associated with the service data stored in the instance.
  • a particular service module processes all generic records associated with a particular type of network element.
  • a particular service module is able to process generic records associated with a plurality of services for a particular type of network element.
  • the instance is processed at the service module selected in step 240 to produce result data that describes the result of processing the service data at the network element.
  • the selected service module transmits information to one or more network elements identified in the service data stored in the instance.
  • the information transmitted to the one or more network elements enables each of the one or more network elements to receive the service.
  • the service data identifies which of the one or more network elements in the system 100 should receive the service associated with the service data.
  • information is maintained by generic engine 330 that identifies which of the one or more network elements in the system 100 should receive each service supported by EMS server 110 .
  • the selected service module processes the instance by creating an outbound XML document containing the service data stored within the instance.
  • the outbound XML document is transmitted to the one or more network elements identified to receive the service.
  • a network element receiving the outbound XML document reads the service data from the outbound XML document and processes the service data. Thereafter, a network element that processed the service data creates a responsive XML document that contains result data that describes the result of processing the service data at the network element. Thereafter, the network element that created the responsive XML document transmits the responsive XML document to the EMS server.
  • the EMS server receives the response XML document and reads the result data from the responsive XML document.
  • the EMS server creates a new instance of the generic record, and thereafter, stores the result data in the instance of the generic record that was just created.
  • the result data that describes the result of processing any service at a network element can be processed by the generic framework 310 , since the structure of the generic record is known to the components of the generic framework 310 .
  • step 260 the result data produced in step 250 is stored.
  • the instance created in step 250 to store the result data is processed to retrieve the result data.
  • the selected service module stores the result data by communicating with the database manager 350 to instruct the database manager 350 to store the result data in the database 360 .
  • Database 360 which may be used to store the result data, refers to any persistent store that is capable of durably storing data.
  • Non-limiting, illustrative examples of database 360 include a relational database, a hierarchical database, an object oriented database, and a multi-dimensional database.
  • database manager 350 stores result data in the database 360 by consulting a set of information that maps fields of the generic record to specific columns and tables in database 360 .
  • the database manager 350 determines how to store the result data in the database 360 based upon the consulted set of information.
  • the database manager 350 can automatically construct the SQL queries needed to retrieve or store data from the database 360 based upon the consulted set of information.
  • the set of information may be stored at the database manager 350 or at a location accessible to the database manager 350 .
  • While the steps depicted in FIG. 2 have been described above with reference to a single communication to administer a particular service on a network element, other embodiments may process any number of communications from any number of EMS clients to the EMS server.
  • an administrator may use EMS client 122 to transmit one or more communications to EMS server 110 to cause EMS server to provision multiple services to network element 102 .
  • an administrator may use EMS client 122 to transmit one or more communications to EMS server 110 to cause EMS server to provision the same services to multiple network elements, such as network elements 102 , 104 , and 106 .
  • EMS server 110 may be configured to provision a service to any network element in system 100 , regardless of the type, model, or manufacturer of network element, because the generic framework 310 of the EMS server 110 may comprise a particular service module 340 that is configured to provision the service to the network element with those characteristics. Additional description of how the generic framework 310 of the EMS server can support the provisioning of any service to any network element is described below in the section entitled “Adding a New Service to the EMS Server.”
  • FIG. 4 is a flowchart illustrating the functional steps in adding a new service to the generic framework of an EMS server. Note that the sequence of steps in flowchart 400 is merely illustrative; other embodiments may perform the sequence of steps illustrated in FIG. 4 in any order.
  • Step 410 the name of the new service is added to a list of services supported by the EMS server.
  • Step 410 may be performed by a user transmitting a communication from an EMS client to the EMS server that instructs the EMS server to add a new service with a name contained within the communication.
  • the list of services supported by the EMS server is maintained by the EMS server at the generic engine 330 .
  • the list of services supported by the EMS server is used by the EMS server during initialization of the EMS server. Initialization of the EMS server is described in further detail below.
  • step 420 a new service module that processes instances of the generic record containing service data associated with the new service is added to the generic framework of the EMS server.
  • step 420 may be performed by a user transmitting a communication from an EMS client to the EMS server that instructs the EMS server to add a new service module in accordance with information contained in the communication.
  • a service module processes instances of a generic record for a specific service and for a specific type of network element, e.g., a type of network element may include a particular manufacturer, model, or kind of network element.
  • a new service module is created in the generic framework of an EMS server for each new service that the EMS server supports and for each specific type of network element to which the new service may be provisioned.
  • a user associated with EMS client 120 wishes to add a new service XYZ to EMS server 110 , and the user wishes network elements 102 , 104 , and 106 to receive the service.
  • network elements 102 and 104 are of the same type, but network element 106 is a different type than network elements 102 and 104 . Consequently, two new service modules will need to be added to the generic framework 310 of EMS server 110 because (a) one service module is needed to provision service XYZ to network elements 102 and 104 , and (b) another service module is needed to provision service XYZ to network element 106 .
  • a database is updated to accommodate data associated with the new service.
  • Step 430 may be performed by adding tables to database 360 that have one or more columns which are configured to store data associated with the new service.
  • Database manager 350 may perform step 430 based upon information contained in a received communication from a user that describes the data requirements for the new service.
  • step 440 a set of information that maps fields of the generic record to specific tables in the database is updated to reflect where result data for the new service is stored in the database.
  • the set of information may be stored at database manager 350 or at a location accessible to the database manager 350 .
  • Database manager 350 may perform step 440 based upon information contained in a received communication from a user that describes the data requirements for the new service.
  • step 450 if the new service requires that instances of the generic record that contain service data associated with the new service comprise one or more special methods, then the constructor is updated to create instances of the generic record with the one or more special methods. Step 450 may be performed by generic engine 330 in accordance with information contained in a communication received by the EMS server sent from an EMS client.
  • the generic framework 310 enables the EMS server 110 to automatically discover the configuration information for any network element, and store the discovered configuration information in the database 360 .
  • the EMS server 110 may perform automatic discovery when EMS server 110 is initially turned on to populate database 360 with configuration information for each network element to which EMS server 110 provides a service. In other words, prior to performing the functional steps illustrated in FIG. 2 , the EMS server has automatically discovered the configuration information for any network element to which the EMS server provides a service.
  • FIG. 5 is a flowchart illustrating the functional steps involved in retrieval of the configuration information for one or more network elements according to an embodiment. Note that the sequence of steps in flowchart 500 is merely illustrative; other embodiments may perform the sequence of steps illustrative in FIG. 5 in any order.
  • the EMS server uses a list of supported services to determine what services does the EMS server support.
  • the list of supported services also describes which network elements in system 100 are associated with each of the set of services that the EMS server supports.
  • the generic engine 330 maintains the list of supported services.
  • the EMS server transmits a request for configuration information to each network element to which the EMS server provisions a service. After receipt, the request is processed at each network element receiving the request. After a network element processes the request, the network element transmits the configuration information that describes the current operational configuration of the network element to the EMS server.
  • the EMS server receives, from at least one network element, configuration information that describes the current operational configuration of the network element that sent the configuration information.
  • the EMS server receives configuration information that describes the current operational configuration from at lease one network element to which the EMS server requested configuration information from in step 520 .
  • the received configuration information describing the current operational configuration for each network element is stored in the database.
  • the received configuration information may be stored in database 360 .
  • the EMS server may retrieve the current operational configuration of that particular network element by consulting database 360 .
  • FIG. 6 is a block diagram that illustrates a computer system 600 upon which an embodiment of an EMS server 110 may be implemented.
  • Computer system 600 includes a bus 602 or other communication mechanism for communicating information, and a processor 604 coupled with bus 602 for processing information.
  • Computer system 600 also includes a main memory 606 , such as a random access memory (RAM) or other dynamic storage device, coupled to bus 602 for storing information and instructions to be executed by processor 604 .
  • Main memory 606 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 604 .
  • Computer system 600 further includes a read only memory (ROM) 608 or other static storage device coupled to bus 602 for storing static information and instructions for processor 604 .
  • ROM read only memory
  • a storage device 610 such as a magnetic disk or optical disk, is provided and coupled to bus 602 for storing information and instructions.
  • Computer system 600 may be coupled via bus 602 to a display 612 , such as a cathode ray tube (CRT), for displaying information to a computer user.
  • a display 612 such as a cathode ray tube (CRT)
  • An input device 614 is coupled to bus 602 for communicating information and command selections to processor 604 .
  • cursor control 616 is Another type of user input device
  • cursor control 616 such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 604 and for controlling cursor movement on display 612 .
  • This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
  • the invention is related to the use of computer system 600 for implementing the techniques described herein. According to one embodiment of the invention, those techniques are performed by computer system 600 in response to processor 604 executing one or more sequences of one or more instructions contained in main memory 606 . Such instructions may be read into main memory 606 from another machine-readable medium, such as storage device 610 . Execution of the sequences of instructions contained in main memory 606 causes processor 604 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
  • machine-readable medium refers to any medium that participates in providing data that causes a machine to operation in a specific fashion.
  • various machine-readable media are involved, for example, in providing instructions to processor 604 for execution.
  • Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media.
  • Non-volatile media includes, for example, optical or magnetic disks, such as storage device 610 .
  • Volatile media includes dynamic memory, such as main memory 606 .
  • Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 602 . Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications.
  • Machine-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punchcards, papertape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.
  • Various forms of machine-readable media may be involved in carrying one or more sequences of one or more instructions to processor 604 for execution.
  • the instructions may initially be carried on a magnetic disk of a remote computer.
  • the remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem.
  • a modem local to computer system 600 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal.
  • An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 602 .
  • Bus 602 carries the data to main memory 606 , from which processor 604 retrieves and executes the instructions.
  • the instructions received by main memory 606 may optionally be stored on storage device 610 either before or after execution by processor 604 .
  • Computer system 600 also includes a communication interface 618 coupled to bus 602 .
  • Communication interface 618 provides a two-way data communication coupling to a network link 620 that is connected to a local network 622 .
  • communication interface 618 may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line.
  • ISDN integrated services digital network
  • communication interface 618 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN.
  • LAN local area network
  • Wireless links may also be implemented.
  • communication interface 618 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
  • Network link 620 typically provides data communication through one or more networks to other data devices.
  • network link 620 may provide a connection through local network 622 to a host computer 624 or to data equipment operated by an Internet Service Provider (ISP) 626 .
  • ISP 626 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet” 628 .
  • Internet 628 uses electrical, electromagnetic or optical signals that carry digital data streams.
  • the signals through the various networks and the signals on network link 620 and through communication interface 618 which carry the digital data to and from computer system 600 , are exemplary forms of carrier waves transporting the information.
  • Computer system 600 can send messages and receive data, including program code, through the network(s), network link 620 and communication interface 618 .
  • a server 630 might transmit a requested code for an application program through Internet 628 , ISP 626 , local network 622 and communication interface 618 .
  • the received code may be executed by processor 604 as it is received, and/or stored in storage device 610 , or other non-volatile storage for later execution. In this manner, computer system 600 may obtain application code in the form of a carrier wave.

Abstract

A method and apparatus for deploying EMS provisioning services is provided. A communication to administer a particular service on a network element is transmitted from an EMS client to an EMS server. The communication contains service data that describes a particular service to be administered on the network element. The EMS server constructs an instance of a generic record that stores the service data. The EMS server selects a service module to process the instance based on which service is associated with the service data stored in the instance. The instance is processed to produce result data that describes the result of processing the service data at the network element. The EMS server stores the result data in a persistent store. This generic framework enables communications between EMS clients and the EMS server involving different services to be processed similarly. New services are added without modification to the generic framework.

Description

    RELATED APPLICATIONS
  • This application is related to co-pending U.S. patent application Ser. No. ______, Attorney Docket Number 50325-0889, filed Jun. 10, 2004, invented by Mark Freskos et al, entitled “Transport-Independent Pluggable Operation Type Handler Framework For Servicing XML Management Requests,” the entire disclosure of which is hereby incorporated by reference as if fully set forth herein.
  • This application is also related to co-pending U.S. patent application Ser. No. ______, Attorney Docket Number 50325-0891, filed Jun. 10, 2004, invented by Mark Freskos et al, entitled “Two-Stage Network Device Configuration Process,” the entire disclosure of which is hereby incorporated by reference as if fully set forth herein.
  • This application is also related to co-pending U.S. patent application Ser. No. ______, Attorney Docket Number 50325-0927, filed Jun. 10, 2004, invented by Kapil Jain et al, entitled “Configuration Commit Database Approach And Session Locking Approach In A Two-Stage Network Device Configuration Process,” which is a continuation of co-pending U.S. patent application Ser. No. ______, Attorney Docket Number 50325-0891, the entire disclosure of which is hereby incorporated by reference as if fully set forth herein.
  • This application is also related to co-pending application U.S. patent application Ser. No. ______, Attorney Docket Number 50325-0928, filed Jun. 10, 2004, invented by Mark Freskos et al, entitled “Protocol For Efficient Exchange Of XML Documents With A Network Device,” the entire disclosure of which is hereby incorporated by reference as if fully set forth herein.
  • FIELD OF THE INVENTION
  • The present invention relates to implementing an element management system (EMS) framework for provisioning one or more services between an EMS server and one or more EMS clients.
  • BACKGROUND
  • Using a network element management system (EMS) server, an EMS client may provision a service on a network element, such as a router. The EMS server is a server that is responsible for administering a service on a network element. The EMS client, which is operationally connected to the EMS server, allows an administrator to manage and configure the service being provisioned by the EMS server on the network element. For instance, if an administrator wishes to deploy a particular service, such as Voice Over IP (VoIP), on a particular router, the administrator may use an EMS client to communicate with an EMS server. After configuring the service using the EMS client, the administrator may deploy the service on the particular router by sending instructions from the EMS client to the EMS server to cause the EMS server to provision the service as configured on the particular router.
  • A significant amount of customized development is required for an EMS server to support the provisioning of a new service. For example, an interface between the EMS client and the EMS server for the new service must be defined. Also, software controlling how the EMS server persistently stores and retrieves data relating to the new service must be created and implemented on the EMS server. The EMS server also needs to be modified to support the conversion of data associated with the new service. Additionally, the EMS server must be configured to facilitate the communication of data related to the new service to the network elements.
  • The large amount of customized development required for an EMS server to support a new service is disadvantageous for a variety of reasons. First, as each new service requires a significant portion of software to be created from scratch, there is a real possibility of introducing one or more bugs into the customized software. Second, the great degree of customization increases the amount of time and cost of development. Finally, the customized interfaces created for each provisioned service in the EMS create a large number of interfaces between the EMS client and the EMS server. The large number of interfaces makes the user experience more complex as well as increases the amount of interfaces that must be maintained and supported by IT administrators. Based on the foregoing, there is a need in the art to support the provisioning of a new service by an EMS server without incurring the disadvantages of the above-described approaches.
  • The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Description of embodiments is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
  • FIG. 1 is a block diagram illustrating the architecture of a system in accordance with an embodiment;
  • FIG. 2 is a flowchart illustrating the high level functional steps of an embodiment;
  • FIG. 3 is a block diagram of an EMS server according to an embodiment;
  • FIG. 4 is a flowchart illustrating the functional steps in adding a new service module to the generic framework of an EMS server;
  • FIG. 5 is a flowchart illustrating the functional steps involved in retrieval of the configuration information of one or more network elements according to an embodiment; and
  • FIG. 6 is a block diagram that illustrates a computer system upon which an embodiment may be implemented.
  • DETAILED DESCRIPTION
  • In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the embodiments described herein. It will be apparent, however, that embodiments may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the descriptions of the various embodiments described herein.
  • Functional Overview
  • A generic framework for an EMS server enables communications exchanged between EMS clients and the EMS server to be processed similarly by the EMS server using the same generic framework, even if those communications involve different services. New services can be added to a list of services supported by the EMS server without any modification to the generic framework of the EMS server.
  • In an embodiment, a communication to administer a particular service on a network element is transmitted from an EMS client to an EMS server. The communication contains service data that describes a particular service to be administered on the network element.
  • After receiving the communication, the EMS server constructs an instance of a generic record that stores the service data that was contained in the communication. By storing service data in an instance of a generic record, all services that are supported by the EMS server may be processed using the same generic components.
  • The EMS server then selects a service module to process the instance of the generic record based on which service is associated with the service data stored in the instance. The selected service module that the EMS selects to process the instance is configured to process instances of the generic record storing service data associated with the particular service being administered. For example, if the service data stored in the instance of the generic record is directed to Voice over IP service, then the selected service module is a module that is configured to provision the Voice over IP service.
  • The selected service module provisions the service on the network element. The result of provisioning the service on the network device is stored in result data that describes the result of processing the service data at the network element. The EMS server then stores the result data in a persistent store, such as a database.
  • Architecture Overview
  • FIG. 1 is a block diagram illustrating the architecture of a system 100 in accordance with an embodiment. System 100 includes one or more network elements, one or more EMS servers, one or more EMS clients, one or more network management stations (NMS), and one or more communications links.
  • A network element, such as network elements 102, 104, and 106 as shown in FIG. 1, refers to any hardware component that is capable of being the subject of a service that is being provisioned by the EMS server. Non-limiting, illustrative examples of a network element include a router, a firewall, and a server. While FIG. 1 illustrates an embodiment comprising three network elements, embodiments of the invention may comprise one or more network elements.
  • An EMS Server, such as EMS server 110 and 112 as shown in FIG. 1, refers to any functional component that is capable of provisioning a service to one or more network elements. While FIG. 1 depicts a system comprising two EMS servers; embodiments of the invention may comprise one or more EMS servers. An EMS server according to an embodiment may provision one or more services to one or more network elements, regardless of what type each network element is or the type of service being provisioned. In other words, an EMS server in an embodiment may provision any service that the EMS server supports to any network element, even if the EMS server is provisioning the same service to multiple network elements having a different manufacturer type or model type.
  • An EMS Server according to embodiments of the invention comprises a generic framework. Components of the generic framework will be described with reference to FIG. 3, which is a block diagram of an EMS server according to an embodiment. FIG. 3 depicts EMS server 110 having a generic framework 310. Generic framework 310 refers to a set of functional components within an EMS server that enable communications exchanged between EMS clients and the EMS server to be processed similarly by the EMS server, even if those communications involve different services. The processing performed by generic framework 310 shall be described in greater detail below.
  • As shown in FIG. 3, the generic framework comprises a generic interface 320, a generic engine 330, service modules 340, 342, 344, and a database manager 350. A generic interface, such as generic interface 320, refers to any generic interface that allows each EMS client to exchange communications with EMS server using the same interface regardless of which service is associated with the communication. The operation of generic interface 320 shall be described in further detail below.
  • A generic engine, such as generic engine 330, refers to any functional component that creates and stores instances of a generic record. Instances of a generic record are used by embodiments to store service data contained within communications from EMS clients. Service data is data that describes a particular service to be administered on the network element. The operation, of the generic engine 330 shall be described in further detail below.
  • A service module, such as service modules 340, 342, and 344, refers to any functional component capable of processing instances of a generic record. The service module processes instances of the generic record to obtain the service data contained therein. The service module exchanges XML documents with a network element that contains either service data or result data. Result data is data that describes the result of processing the service data at the network element. The operation of the service module shall be described in further detail below.
  • A database manager, such as database manager 350, refers to any functional component that allows components of the generic framework 310 to store data in a database.
  • An EMS client, such as EMS client 120 and 122 as shown in FIG. 1, refers to any software or hardware component that is capable of communicating with an EMS server and is capable of instructing the EMS server to administer a service on a network element. While only two EMS clients, namely EMS client 120 and 122, are depicted if FIG. 1, in various embodiments any number of EMS clients may be operationally connected to a particular EMS server. An EMS client may be, but need not be, configured to instruct the EMS to administer a different service on a network element than another EMS client.
  • A NMS Server, such as NMS server 130 as shown in FIG. 1, refers to any hardware or software component that is capable of monitoring an operational status of one or more EMS servers. An administrator may use an NMS server to monitor the status of one or more EMS servers as well as any network element that is the subject of a service which one of the EMS servers is provisioning. Thus, the administrator may use an NMS server to monitor the status of an entire system. While FIG. 1 depicts only one NMS server, namely NMS server 130, embodiments may deploy any number of NMS servers, including zero NMS servers.
  • Communications links 140 and 142 may be implemented by any medium or mechanism that provides for the exchange of data between a NMS server and an EMS server. Communications links 150 and 152 may be implemented by any medium or mechanism that provides for the exchange of data between an EMS client and an EMS server. Communications links 160, 162, and 164 may be implemented by any medium or mechanism that provides for the exchange of data between an EMS server and a network element. Examples of communications links 140, 142, 150, 152, 160, 162, and 164 include, without limitation, a network such as a Local Area Network (LAN), Wide Area Network (WAN), Ethernet or the Internet, or one or more terrestrial, satellite or wireless links.
  • Generic EMS Framework
  • FIG. 2 is a flowchart 200 illustrating the high level functional steps of an embodiment. In performing the steps illustrated in flowchart 200, an EMS server may process communications exchanged between the EMS server and one or more EMS clients that involve different services similarly using the same generic framework. An EMS server configured to perform the functional steps illustrated in FIG. 2 may have its operation modified to provision a new service on one or more network elements without any change to the generic framework of the EMS server. The high level functional steps of FIG. 2 shall be explained below with reference to FIG. 3, which is a block diagram of an EMS server according to an embodiment.
  • While the steps depicted in FIG. 2 may be used to process any number of communications from any number of EMS clients to the EMS server, the processing of a single communication to administer a particular service on a network element shall now be described. In step 210, a communication to administer a particular service on a network element is received at an EMS server from an EMS client. The EMS server may be configured to provision one or more services onto one or more network elements. For example, with reference to FIG. 3, EMS server 110 may receive a communication to administer a particular service, such as Voice over IP, on network element 102 from EMS client 120. EMS server 110 may also be currently provisioning several other services on network element 102.
  • In an embodiment, the EMS server provides a generic interface using an exposed API to facilitate communicate between each EMS client and the EMS server. For example, EMS server 110 may provide generic interface 320 that exposes an API to each EMS client that allows each EMS client 120 to exchange communications with EMS server 110 using the CORBA protocol. As each EMS client 120 exchanges communications with the EMS server 110 using generic interface 320, each EMS client 120 may exchange communications with the EMS server 110 in the same fashion regardless of which service is associated with the communication.
  • In an embodiment, the communication received by the EMS server in step 210 is transmitted using the CORBA protocol. In another embodiment, generic interface 320 is configured to receive communications from EMS clients using a variety of transport protocols, e.g., CORBA, HTTP, or SSH.
  • The communication received in step 210 contains service data that describes the particular service to be administered on the network element. For example, if the particular service to be administered on the network element is Voice over IP, then the service data contains data that describes the Voice over IP service and describes how it is to be deployed on the network element. After the performance of step 210, processing proceeds to step 220.
  • In step 220, an instance of a generic record that stores the service data contained within the communication received in step 210 is created and stored. A generic record is any record that is capable of storing service data associated with any service. For example, a generic record may be embodied in the following pseudocode:
    struct Request
    {
    string clientName;
    OperationTag operation;
    RecordList configRecordList;
    };

    In the above pseudocode example, clientName identifies which client transmitted the service data to the EMS server, operation identifies the operation of the service to be performed, and configRecordList refers to the set of name/value pairs that store data relating to the operation. The above pseudocode is merely illustrative, as other embodiments may create generic records using a different format or structure.
  • In an embodiment, the instance of the generic record that stores the service data contained within the communication received in step 210 is created by generic engine 330. The particular instance of the generic record created by generic engine 330 is a new generic record that conforms with the structure of the generic record. For example, if object-oriented technology is used in the performance step 220, then the generic record may be embodied in a class, and the instance may be embodied in a new instance of the generic record class. Generic engine 330 may employ a constructor to create the instance of the generic record. A constructor is any functional component that is capable of creating instances of a generic record. The operation of the constructor will be discussed in further detail below.
  • After constructing the instance of the generic record, generic engine 330 then stores the service data that was contained with the communication received in step 210 in the newly created instance of the generic record. Thereafter, generic engine 330 stores the instance with the service data, either in volatile or non-volatile memory.
  • In an embodiment, the generic record may be constructed to include one or more specific methods. The one or more specific methods may be used for performing special processing for service data of a certain type that does not need to be performed on service data of other types. For example, if a service of type XYZ requires that a special operation be performed, but no other service requires that operation to be performed, then the constructor constructs the instance of the generic record, which stores the service data, with the one or more specific methods that perform the operation. Thus, the operation may be performed on the service data associated with service type XYZ by performing the one or more specific methods comprised in the instance. Special methods that are defined in an instance of the generic record may be executed by various components of the generic framework 310 as necessary.
  • The generic engine 330 may construct the one or more specific methods using the constructor. The constructor determines an object type associated with the service data. The object type identifies what type of service is associated with the service data, as each service has service data of a different object type. The constructor may construct the instance to include the one or more specific methods if it is determined that the object type associated with the service data requires the addition of the one or more specific methods. In other embodiments, the constructor may use other attributes contained within the service data to identify the service associated with the service data and/or base a determination as to whether to construct the instance with one or more specific methods. For example, the service data may contain data, such as a label, that identifies that one or more specific methods should be included in the instance constructed to store the service data.
  • In an embodiment, in the performance of step 220, generic engine 330 performs a validation check on the service data to ensure that the service data conforms to a set of validation rules. The validation rules may be stored in a persistent store located at the generic engine 330 or at a location accessible to generic engine 330. The validation check may be performed to ensure that the service data received in the communication in step 210 is valid. If the service data does not pass one or more validation rules, then the EMS client that transmitted the communication that contained the service data may be notified by the EMS server that the service data contains one or more errors. After the performance of step 220, processing proceeds to step 230.
  • In step 230, generic processing is performed on the instance. Note that step 230 is optional, and certain embodiments do not perform step 230, but rather after the performance of step 220, processing proceeds directly to step 240. In embodiments that do perform step 230, the same generic processing is performed on any instance of the general record created in step 220 regardless of which service is associated with service data stored by the instance. In other words, if two different instances each contain service data associated with different services, then the same generic processing is still performed on both instances. In an embodiment, generic engine 330 performs step 230.
  • In an embodiment, the generic processing performed in step 230 includes logging information about the instance to a persistent store. The information logged about the instance includes any information about the receipt or content of the instance that may be of use at a later date. For example, the information logged about the instance may include, but is not limited to, when the instance was received, which EMS client transmitted the communication containing the service data stored within the instance, and the contents of the service data stored within the instance. The information may be logged to any persistent store accessible to the generic engine 330. For example, the generic engine may communicate with the database manager 350 to log the information in a database 360.
  • In an embodiment, the generic processing performed in step 230 includes performing error handling on any errors associated with the instance. In another embodiment, the generic processing performed in step 230 includes performing one or more security checks on the instance. For example, a set of permissions that are associated with the user who transmitted the communication received in step 210 may be checked to determine if the user has sufficient privilege to transmit the communication containing the service data received in step 210.
  • Note that in embodiments of the invention, the generic processing performed in step 230 may include one or more of the above discussed operations. Thus, in an embodiment, the generic processing of step 230 may include logging information about the instance to a persistent store, performing one or more security checks on the instance, and performing error handling on any errors associated with the instance. After the performance of step 230, processing proceeds to step 240.
  • In step 240, a service module is selected to process the instance created in step 220 based on which service is associated with the service data stored in the instance. In an embodiment, the service module selected in step 240 is configured to process instances of the generic record storing service data associated with the same service that is associated with the service data stored in the instance. For example, if the instance of the general record created in step 220 stores service data associated with the Voice over IP service, then the service module selected in step 240 is configured to process instances of the generic record storing service data associated with the Voice over IP service. Thus, while generic framework 310 of EMS server 110 may include any number of service modules 340-344, in order for EMS server to provision the service associated with the service data stored within the instance, the EMS server must have a service module configured to process instances of the generic record storing service data of the same type as the instance to be processed. In other words, if the instance of the general record created in step 220 stores service data associated with service ABC, then EMS server 110 must comprise a service module configured to process instances of the generic record storing service data associated with service ABC to provision service ABC to network elements.
  • In another embodiment, in step 240, the service module selected to process the instance created in step 220 is based on the type of network element associated with the service data stored in the instance. In such an embodiment, a particular service module processes all generic records associated with a particular type of network element. Thus, a particular service module is able to process generic records associated with a plurality of services for a particular type of network element. After the performance of step 240, processing proceeds to step 250.
  • In step 250, the instance is processed at the service module selected in step 240 to produce result data that describes the result of processing the service data at the network element. The selected service module transmits information to one or more network elements identified in the service data stored in the instance. The information transmitted to the one or more network elements enables each of the one or more network elements to receive the service. In an embodiment, the service data identifies which of the one or more network elements in the system 100 should receive the service associated with the service data. In another embodiment, information is maintained by generic engine 330 that identifies which of the one or more network elements in the system 100 should receive each service supported by EMS server 110.
  • In an embodiment, the selected service module processes the instance by creating an outbound XML document containing the service data stored within the instance. The outbound XML document is transmitted to the one or more network elements identified to receive the service. A network element receiving the outbound XML document reads the service data from the outbound XML document and processes the service data. Thereafter, a network element that processed the service data creates a responsive XML document that contains result data that describes the result of processing the service data at the network element. Thereafter, the network element that created the responsive XML document transmits the responsive XML document to the EMS server.
  • The EMS server receives the response XML document and reads the result data from the responsive XML document. The EMS server creates a new instance of the generic record, and thereafter, stores the result data in the instance of the generic record that was just created. By storing the result data in an instance of the generic record, the result data that describes the result of processing any service at a network element can be processed by the generic framework 310, since the structure of the generic record is known to the components of the generic framework 310. After the performance of step 250, processing proceeds to step 260.
  • In step 260, the result data produced in step 250 is stored. In an embodiment, the instance created in step 250 to store the result data is processed to retrieve the result data. In an embodiment, the selected service module stores the result data by communicating with the database manager 350 to instruct the database manager 350 to store the result data in the database 360. Database 360, which may be used to store the result data, refers to any persistent store that is capable of durably storing data. Non-limiting, illustrative examples of database 360 include a relational database, a hierarchical database, an object oriented database, and a multi-dimensional database.
  • In an embodiment, database manager 350 stores result data in the database 360 by consulting a set of information that maps fields of the generic record to specific columns and tables in database 360. The database manager 350 determines how to store the result data in the database 360 based upon the consulted set of information. The database manager 350 can automatically construct the SQL queries needed to retrieve or store data from the database 360 based upon the consulted set of information. The set of information may be stored at the database manager 350 or at a location accessible to the database manager 350.
  • While the steps depicted in FIG. 2 have been described above with reference to a single communication to administer a particular service on a network element, other embodiments may process any number of communications from any number of EMS clients to the EMS server. In an embodiment, an administrator may use EMS client 122 to transmit one or more communications to EMS server 110 to cause EMS server to provision multiple services to network element 102.
  • In another embodiment, an administrator may use EMS client 122 to transmit one or more communications to EMS server 110 to cause EMS server to provision the same services to multiple network elements, such as network elements 102, 104, and 106. EMS server 110 may be configured to provision a service to any network element in system 100, regardless of the type, model, or manufacturer of network element, because the generic framework 310 of the EMS server 110 may comprise a particular service module 340 that is configured to provision the service to the network element with those characteristics. Additional description of how the generic framework 310 of the EMS server can support the provisioning of any service to any network element is described below in the section entitled “Adding a New Service to the EMS Server.”
  • As the generic framework 310 processes instances of the generic record, many advantages are yielded due to the commonality of processing. Database interactions involving the storage or retrieval of data from or to an instance of the generic record may be automated because the database manager 350 is configured to read and write data from an instance of the generic record. Likewise, data conversions, error handling, and request/response handling can be automated because all service data is stored in an instance of the generic record, regardless of which service is associated with the service data.
  • Adding a New Service to The EMS Server
  • The generic framework 310 allows one to configure an EMS server to support the provisioning of a new service with relative ease, minimal time requirements, and without changing the generic framework 310. FIG. 4 is a flowchart illustrating the functional steps in adding a new service to the generic framework of an EMS server. Note that the sequence of steps in flowchart 400 is merely illustrative; other embodiments may perform the sequence of steps illustrated in FIG. 4 in any order.
  • Initially, in step 410, the name of the new service is added to a list of services supported by the EMS server. Step 410 may be performed by a user transmitting a communication from an EMS client to the EMS server that instructs the EMS server to add a new service with a name contained within the communication. In an embodiment, the list of services supported by the EMS server is maintained by the EMS server at the generic engine 330. The list of services supported by the EMS server is used by the EMS server during initialization of the EMS server. Initialization of the EMS server is described in further detail below.
  • In step 420, a new service module that processes instances of the generic record containing service data associated with the new service is added to the generic framework of the EMS server. In an embodiment, step 420 may be performed by a user transmitting a communication from an EMS client to the EMS server that instructs the EMS server to add a new service module in accordance with information contained in the communication.
  • In an embodiment, a service module processes instances of a generic record for a specific service and for a specific type of network element, e.g., a type of network element may include a particular manufacturer, model, or kind of network element. A new service module is created in the generic framework of an EMS server for each new service that the EMS server supports and for each specific type of network element to which the new service may be provisioned.
  • To illustrate, assume a user associated with EMS client 120 wishes to add a new service XYZ to EMS server 110, and the user wishes network elements 102, 104, and 106 to receive the service. Further assume that network elements 102 and 104 are of the same type, but network element 106 is a different type than network elements 102 and 104. Consequently, two new service modules will need to be added to the generic framework 310 of EMS server 110 because (a) one service module is needed to provision service XYZ to network elements 102 and 104, and (b) another service module is needed to provision service XYZ to network element 106.
  • In step 430, a database is updated to accommodate data associated with the new service. Step 430 may be performed by adding tables to database 360 that have one or more columns which are configured to store data associated with the new service. Database manager 350 may perform step 430 based upon information contained in a received communication from a user that describes the data requirements for the new service.
  • In step 440, a set of information that maps fields of the generic record to specific tables in the database is updated to reflect where result data for the new service is stored in the database. The set of information may be stored at database manager 350 or at a location accessible to the database manager 350. Database manager 350 may perform step 440 based upon information contained in a received communication from a user that describes the data requirements for the new service.
  • In step 450, if the new service requires that instances of the generic record that contain service data associated with the new service comprise one or more special methods, then the constructor is updated to create instances of the generic record with the one or more special methods. Step 450 may be performed by generic engine 330 in accordance with information contained in a communication received by the EMS server sent from an EMS client.
  • Initializing the EMS Server
  • The generic framework 310 enables the EMS server 110 to automatically discover the configuration information for any network element, and store the discovered configuration information in the database 360. The EMS server 110 may perform automatic discovery when EMS server 110 is initially turned on to populate database 360 with configuration information for each network element to which EMS server 110 provides a service. In other words, prior to performing the functional steps illustrated in FIG. 2, the EMS server has automatically discovered the configuration information for any network element to which the EMS server provides a service.
  • FIG. 5 is a flowchart illustrating the functional steps involved in retrieval of the configuration information for one or more network elements according to an embodiment. Note that the sequence of steps in flowchart 500 is merely illustrative; other embodiments may perform the sequence of steps illustrative in FIG. 5 in any order.
  • In step 510, prior to receiving the communication received in step 210, the EMS server uses a list of supported services to determine what services does the EMS server support. The list of supported services also describes which network elements in system 100 are associated with each of the set of services that the EMS server supports. In an embodiment, the generic engine 330 maintains the list of supported services.
  • In step 520, the EMS server transmits a request for configuration information to each network element to which the EMS server provisions a service. After receipt, the request is processed at each network element receiving the request. After a network element processes the request, the network element transmits the configuration information that describes the current operational configuration of the network element to the EMS server.
  • In step 530, the EMS server receives, from at least one network element, configuration information that describes the current operational configuration of the network element that sent the configuration information. In other words, the EMS server receives configuration information that describes the current operational configuration from at lease one network element to which the EMS server requested configuration information from in step 520.
  • In step 540, the received configuration information describing the current operational configuration for each network element is stored in the database. For example, the received configuration information may be stored in database 360. Thereafter, when an EMS client makes a configuration change to a particular network element or the EMS server requires the current operational configuration of a particular network element to deploy a service on that particular network element, the EMS server may retrieve the current operational configuration of that particular network element by consulting database 360.
  • Implementing Mechanisms
  • FIG. 6 is a block diagram that illustrates a computer system 600 upon which an embodiment of an EMS server 110 may be implemented. Computer system 600 includes a bus 602 or other communication mechanism for communicating information, and a processor 604 coupled with bus 602 for processing information. Computer system 600 also includes a main memory 606, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 602 for storing information and instructions to be executed by processor 604. Main memory 606 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 604. Computer system 600 further includes a read only memory (ROM) 608 or other static storage device coupled to bus 602 for storing static information and instructions for processor 604. A storage device 610, such as a magnetic disk or optical disk, is provided and coupled to bus 602 for storing information and instructions.
  • Computer system 600 may be coupled via bus 602 to a display 612, such as a cathode ray tube (CRT), for displaying information to a computer user. An input device 614, including alphanumeric and other keys, is coupled to bus 602 for communicating information and command selections to processor 604. Another type of user input device is cursor control 616, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 604 and for controlling cursor movement on display 612. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
  • The invention is related to the use of computer system 600 for implementing the techniques described herein. According to one embodiment of the invention, those techniques are performed by computer system 600 in response to processor 604 executing one or more sequences of one or more instructions contained in main memory 606. Such instructions may be read into main memory 606 from another machine-readable medium, such as storage device 610. Execution of the sequences of instructions contained in main memory 606 causes processor 604 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
  • The term “machine-readable medium” as used herein refers to any medium that participates in providing data that causes a machine to operation in a specific fashion. In an embodiment implemented using computer system 600, various machine-readable media are involved, for example, in providing instructions to processor 604 for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 610. Volatile media includes dynamic memory, such as main memory 606. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 602. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications.
  • Common forms of machine-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punchcards, papertape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.
  • Various forms of machine-readable media may be involved in carrying one or more sequences of one or more instructions to processor 604 for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 600 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 602. Bus 602 carries the data to main memory 606, from which processor 604 retrieves and executes the instructions. The instructions received by main memory 606 may optionally be stored on storage device 610 either before or after execution by processor 604.
  • Computer system 600 also includes a communication interface 618 coupled to bus 602. Communication interface 618 provides a two-way data communication coupling to a network link 620 that is connected to a local network 622. For example, communication interface 618 may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 618 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 618 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
  • Network link 620 typically provides data communication through one or more networks to other data devices. For example, network link 620 may provide a connection through local network 622 to a host computer 624 or to data equipment operated by an Internet Service Provider (ISP) 626. ISP 626 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet” 628. Local network 622 and Internet 628 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 620 and through communication interface 618, which carry the digital data to and from computer system 600, are exemplary forms of carrier waves transporting the information.
  • Computer system 600 can send messages and receive data, including program code, through the network(s), network link 620 and communication interface 618. In the Internet example, a server 630 might transmit a requested code for an application program through Internet 628, ISP 626, local network 622 and communication interface 618.
  • The received code may be executed by processor 604 as it is received, and/or stored in storage device 610, or other non-volatile storage for later execution. In this manner, computer system 600 may obtain application code in the form of a carrier wave.
  • In the foregoing specification, embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. Thus, the sole and exclusive indicator of what is the invention, and is intended by the applicants to be the invention, is the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction. Any definitions expressly set forth herein for terms contained in such claims shall govern the meaning of such terms as used in the claims. Hence, no limitation, element, property, feature, advantage or attribute that is not expressly recited in a claim should limit the scope of such claim in any way. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.

Claims (76)

1. A machine-implemented method, comprising:
receiving, at a network element management system (“EMS”) server from an EMS client, a communication to administer a particular service on a network element, wherein the communication contains service data that describes the particular service to be administered on the network element, and wherein the particular service is one of a set of services;
creating and storing an instance of a generic record that comprises the service data;
determining a selected service module from a set of service modules to process the instance based on which service is associated with the service data stored in the instance, and wherein the selected service module is configured to process instances of the generic record storing service data associated with the particular service; and
processing the instance at the selected service module to produce result data that describes the result of processing the service data at the network element.
2. The method of claim 1, further comprising:
storing the result data in a persistent store.
3. The method of claim 1, further comprising:
performing generic processing on the instance, wherein the same generic processing is performed on any instance of the generic record regardless of which service is associated with service data stored by the instance.
4. The method of claim 3, wherein performing generic processing comprises:
logging information about the instance to a persistent store.
5. The method of claim 3, wherein performing generic processing comprises:
performing one or more security checks on the instance.
6. The method of claim 3, wherein performing generic processing comprises:
performing error handling on any errors associated with the instance.
7. The method of claim 3, wherein performing generic processing comprises:
logging information about the instance to a persistent store;
performing one or more security checks on the instance; and
performing error handling on any errors associated with the instance.
8. The method of claim 1, wherein the EMS client is one of a set of EMS clients, and wherein each EMS client in the set of EMS clients administers a different service in the set of services on the network element.
9. The method of claim 1, wherein creating and storing the instance of the generic record further comprises:
determining an object type of the service data; and
constructing the instance to include one or more specific methods based upon the object type.
10. The method of claim 1, wherein creating and storing the instance of the generic record further comprises:
performing a validation check on the service data to ensure that the service data confirms to a set of validation rules.
11. The method of claim 1, wherein the instance is a first instance, and wherein the processing step further comprises:
creating an outbound XML document containing the service data stored within the first instance;
transmitting the outbound XML document to the network element;
receiving a responsive XML document from the network element, wherein the responsive XML document contains the result data; and
at the EMS server, constructing a second instance containing the result data.
12. The method of claim 11, wherein storing the result data in a database comprises:
processing the second instance to retrieve the result data from the second instance.
13. The method of claim 1, wherein storing comprises:
consulting a set of information that maps fields of the generic record to specific tables in the database; and
determining how to store the result data based upon the set of information.
14. The method of claim 1, further comprising:
configuring the EMS server to support a new service in the set of services by performing:
adding a new service module to the EMS that processes instances of the generic record containing service data associated with the new service;
updating a database to accommodate data associated with the new service;
if the new service requires that instances of the generic record that contain service data associated with the new service comprise one or more special methods, then adding a constructor that creates instances of the generic record with the one or more special methods; and
updating a set of information that maps fields of the generic record to specific tables in the database to reflect where result data for the new service is stored in the database.
15. The method of claim 1, further comprising:
configuring the EMS server to support a new service by adding the new service to a list of supported services by the EMS server.
16. The method of claim 1, wherein the network element is one of one or more network elements, and further comprising:
prior to receiving the communication, the EMS server using a list of supported services to determine which services in the set of services are supported by the EMS server, wherein the list of supported services also describes which network elements in the set of one or more network elements are associated with each of the set of services;
transmitting, from the EMS server to each of the one or more network elements, a request for configuration information of the recipient of the request;
receiving, from at least one of the one or more network elements, configuration information that describes the current operational configuration of the network element which sent the configuration information; and
storing the received configuration information in the database.
17. The method of claim 1, further comprising:
defining a customizable method to process an instance storing service data associated with a specific service in the set of services.
18. The method of claim 17, further comprising:
determining if the instance stores service data associated with the specific service; and
executing the customizable method on the instance only upon determining that the instance stores service data associated with the specific service.
19. A method for provisioning a service to a network element, comprising:
deploying the service on the network element using an EMS server,
wherein the EMS server comprises a generic framework which stores service data received from an EMS client in an instance of a generic record, wherein the generic framework comprises a generic engine and a set of service modules,
wherein the EMS server using the generic engine to process the instance regardless of which service is associated with the service data, wherein the generic engine logs information about the instance, and
wherein the EMS server selects a particular service module from the set of service modules to process the instance based on which service is associated with the service data stored in the instance.
20. A machine-readable medium carrying one or more sequences of instructions, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
receiving, at a network element management system (“EMS”) server from an EMS client, a communication to administer a particular service on a network element, wherein the communication contains service data that describes the particular service to be administered on the network element, and wherein the particular service is one of a set of services;
creating and storing an instance of a generic record that comprises the service data;
determining a selected service module from a set of service modules to process the instance based on which service is associated with the service data stored in the instance, and wherein the selected service module is configured to process instances of the generic record storing service data associated with the particular service; and
processing the instance at the selected service module to produce result data that describes the result of processing the service data at the network element.
21. The machine-readable medium of claim 20, wherein execution of the one or more sequences of instructions by the one or more processors further causes the one or more processors to perform the step of:
storing the result data in a persistent store.
22. The machine-readable medium of claim 20, wherein execution of the one or more sequences of instructions by the one or more processors further causes the one or more processors to perform the step of:
performing generic processing on the instance, wherein the same generic processing is performed on any instance of the generic record regardless of which service is associated with service data stored by the instance.
23. The machine-readable medium of claim 22, wherein performing generic processing comprises:
logging information about the instance to a persistent store.
24. The machine-readable medium of claim 22, wherein performing generic processing comprises:
performing one or more security checks on the instance.
25. The machine-readable medium of claim 22, wherein performing generic processing comprises:
performing error handling on any errors associated with the instance.
26. The machine-readable medium of claim 22, wherein performing generic processing comprises:
logging information about the instance to a persistent store;
performing one or more security checks on the instance; and
performing error handling on any errors associated with the instance.
27. The machine-readable medium of claim 20, wherein the EMS client is one of a set of EMS clients, and wherein each EMS client in the set of EMS clients administers a different service in the set of services on the network element.
28. The machine-readable medium of claim 20, wherein creating and storing the instance of the generic record further comprises:
determining an object type of the service data; and
constructing the instance to include one or more specific methods based upon the object type.
29. The machine-readable medium of claim 20, wherein creating and storing the instance of the generic record further comprises:
performing a validation check on the service data to ensure that the service data confirms to a set of validation rules.
30. The machine-readable medium of claim 20, wherein the instance is a first instance, and wherein the processing step further comprises:
creating an outbound XML document containing the service data stored within the first instance;
transmitting the outbound XML document to the network element;
receiving a responsive XML document from the network element, wherein the responsive XML document contains the result data; and
at the EMS server, constructing a second instance containing the result data.
31. The machine-readable medium of claim 30, wherein storing the result data in a database comprises:
processing the second instance to retrieve the result data from the second instance.
32. The machine-readable medium of claim 20, wherein storing comprises:
consulting a set of information that maps fields of the generic record to specific tables in the database; and
determining how to store the result data based upon the set of information.
33. The machine-readable medium of claim 20, further comprising:
configuring the EMS server to support a new service in the set of services by performing:
adding a new service module to the EMS that processes instances of the generic record containing service data associated with the new service;
updating a database to accommodate data associated with the new service;
if the new service requires that instances of the generic record that contain service data associated with the new service comprise one or more special methods, then adding a constructor that creates instances of the generic record with the one or more special methods; and
updating a set of information that maps fields of the generic record to specific tables in the database to reflect where result data for the new service is stored in the database.
34. The machine-readable medium of claim 20, wherein execution of the one or more sequences of instructions by the one or more processors further causes the one or more processors to perform the step of:
configuring the EMS server to support a new service by adding the new service to a list of supported services by the EMS server.
35. The machine-readable medium of claim 20, wherein the network element is one of one or more network elements, and wherein execution of the one or more sequences of instructions by the one or more processors further causes the one or more processors to perform the steps of:
prior to receiving the communication, the EMS server using a list of supported services to determine which services in the set of services are supported by the EMS server, wherein the list of supported services also describes which network elements in the set of one or more network elements are associated with each of the set of services;
transmitting, from the EMS server to each of the one or more network elements, a request for configuration information of the recipient of the request;
living, from at least one of the one or more network elements, configuration information that describes the current operational configuration of the network element which sent the configuration information; and
storing the received configuration information in the database.
36. The machine-readable medium of claim 20, wherein execution of the one or more sequences of instructions by the one or more processors further causes the one or more processors to perform the step of:
defining a customizable method to process an instance storing service data associated with a specific service in the set of services.
37. The machine-readable medium of claim 36, wherein execution of the one or more sequences of instructions by the one or more processors further causes the one or more processors to perform the steps of:
determining if the instance stores service data associated with the specific service; and
executing the customizable method on the instance only upon determining that the instance stores service data associated with the specific service.
38. A machine-readable medium carrying one or more sequences of instructions for provisioning a service to a network element, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the step of:
deploying the service on the network element using an EMS server,
wherein the EMS server comprises a generic framework which stores service data received from an EMS client in an instance of a generic record, wherein the generic framework comprises a generic engine and a set of service modules,
wherein the EMS server using the generic engine to process the instance regardless of which service is associated with the service data, wherein the generic engine logs information about the instance, and
wherein the EMS server selects a particular service module from the set of service modules to process the instance based on which service is associated with the service data stored in the instance.
39. An apparatus, comprising:
means for receiving, at a network element management system (“EMS”) server from an EMS client, a communication to administer a particular service on a network element, wherein the communication contains service data that describes the particular service to be administered on the network element, and wherein the particular service is one of a set of services;
means for creating and storing an instance of a generic record that comprises the service data;
means for determining a selected service module from a set of service modules to process the instance based on which service is associated with the service data stored in the instance, and wherein the selected service module is configured to process instances of the generic record storing service data associated with the particular service; and
means for processing the instance at the selected service module to produce result data that describes the result of processing the service data at the network element.
40. The apparatus of claim 39, further comprising:
means for storing the result data in a persistent store.
41. The apparatus of claim 39, further comprising:
means for performing generic processing on the instance, wherein the same generic processing is performed on any instance of the generic record regardless of which service is associated with service data stored by the instance.
42. The apparatus of claim 41, wherein the means for performing generic processing comprises:
means for logging information about the instance to a persistent store.
43. The apparatus of claim 41, wherein the means for performing generic processing comprises:
means for performing one or more security checks on the instance.
44. The apparatus of claim 41, wherein the means for performing generic processing comprises:
means for performing error handling on any errors associated with the instance.
45. The apparatus of claim 41, wherein the means for performing generic processing comprises:
means for logging information about the instance to a persistent store;
means for performing one or more security checks on the instance; and
means for performing error handling on any errors associated with the instance.
46. The apparatus of claim 39, wherein the EMS client is one of a set of EMS clients, and wherein each EMS client in the set of EMS clients administers a different service in the set of services on the network element.
47. The apparatus of claim 39, wherein the means for creating and storing the instance of the generic record further comprises:
means for determining an object type of the service data; and
means for constructing the instance to include one or more specific methods based upon the object type.
48. The apparatus of claim 39, wherein the means for creating and storing the instance of the generic record further comprises:
means for performing a validation check on the service data to ensure that the service data confirms to a set of validation rules.
49. The apparatus of claim 39, wherein the instance is a first instance, and wherein the means for processing further comprises:
means for creating an outbound XML document containing the service data stored within the first instance;
means for transmitting the outbound XML document to the network element;
means for receiving a responsive XML document from the network element, wherein the responsive XML document contains the result data; and
means for constructing, at the EMS server, a second instance containing the result data.
50. The apparatus of claim 49, wherein the means for storing the result data in a database comprises:
means for processing the second instance to retrieve the result data from the second instance.
51. The apparatus of claim 39, wherein the means for storing comprises:
means for consulting a set of information that maps fields of the generic record to specific tables in the database; and
means for determining how to store the result data based upon the set of information.
52. The apparatus of claim 39, further comprising:
means for configuring the EMS server to support a new service in the set of services by performing:
adding a new service module to the EMS that processes instances of the generic record containing service data associated with the new service;
updating a database to accommodate data associated with the new service;
if the new service requires that instances of the generic record that contain service data associated with the new service comprise one or more special methods, then adding a constructor that creates instances of the generic record with the one or more special methods; and
updating a set of information that maps fields of the generic record to specific tables in the database to reflect where result data for the new service is stored in the database.
53. The apparatus of claim 39, further comprising:
means for configuring the EMS server to support a new service by adding the new service to a list of supported services by the EMS server.
54. The apparatus of claim 39, wherein the network element is one of one or more network elements, and further comprising:
means for, prior to receiving the communication, using a list of supported services to determine which services in the set of services are supported by the EMS server, wherein the list of supported services also describes which network elements in the set of one or more network elements are associated with each of the set of services;
means for transmitting, from the EMS server to each of the one or more network elements, a request for configuration information of the recipient of the request;
means for receiving, from at least one of the one or more network elements, configuration information that describes the current operational configuration of the network element which sent the configuration information; and
means for storing the received configuration information in the database.
55. The apparatus of claim 39, further comprising:
means for defining a customizable method to process an instance storing service data associated with a specific service in the set of services.
56. The apparatus of claim 55, further comprising:
means for determining if the instance stores service data associated with the specific service; and
means for executing the customizable method on the instance only upon determining that the instance stores service data associated with the specific service.
57. An apparatus for provisioning a service to a network element, comprising:
means for deploying the service on the network element using an EMS server,
wherein the EMS server comprises a generic framework which stores service data received from an EMS client in an instance of a generic record, and wherein the generic framework comprises a generic engine and a set of service modules;
means for processing the instance regardless of which service is associated with the service data;
means for logging information about the instance, and
means for selecting a particular service module from the set of service modules to process the instance based on which service is associated with the service data stored in the instance.
58. An apparatus comprising a memory storing instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of:
receiving, at a network element management system (“EMS”) server from an EMS client, a communication to administer a particular service on a network element, wherein the communication contains service data that describes the particular service to be administered on the network element, and wherein the particular service is one of a set of services;
creating and storing an instance of a generic record that comprises the service data;
determining a selected service module from a set of service modules to process the instance based on which service is associated with the service data stored in the instance, and wherein the selected service module is configured to process instances of the generic record storing service data associated with the particular service; and
processing the instance at the selected service module to produce result data that describes the result of processing the service data at the network element.
59. The apparatus of claim 58, wherein the memory further comprises one or more additional instructions which, when executed by the one or more processors, cause the one or more processors to perform the step of:
storing the result data in a persistent store.
60. The apparatus of claim 58, wherein the memory further comprises one or more additional instructions which, when executed by the one or more processors, cause the one or more processors to perform the step of:
performing generic processing on the instance, wherein the same generic processing is performed on any instance of the generic record regardless of which service is associated with service data stored by the instance.
61. The apparatus of claim 60, wherein performing generic processing comprises:
logging information about the instance to a persistent store.
62. The apparatus of claim 60, wherein performing generic processing comprises:
performing one or more security checks on the instance.
63. The apparatus of claim 60, wherein performing generic processing comprises:
performing error handling on any errors associated with the instance.
64. The apparatus of claim 60, wherein performing generic processing comprises:
logging information about the instance to a persistent store;
performing one or more security checks on the instance; and
performing error handling on any errors associated with the instance.
65. The apparatus of claim 58, wherein the EMS client is one of a set of EMS clients, and wherein each EMS client in the set of EMS clients administers a different service in the set of services on the network element.
66. The apparatus of claim 58, wherein creating and storing the instance of the generic record further comprises:
determining an object type of the service data; and
constructing the instance to include one or more specific methods based upon the object type.
67. The apparatus of claim 58, wherein creating and storing the instance of the generic record further comprises:
performing a validation check on the service data to ensure that the service data confirms to a set of validation rules.
68. The apparatus of claim 58, wherein the instance is a first instance, and wherein the processing step further comprises:
creating an outbound XML document containing the service data stored within the first instance;
transmitting the outbound XML document to the network element;
receiving a responsive XML document from the network element, wherein the responsive XML document contains the result data; and
at the EMS server, constructing a second instance containing the result data.
69. The apparatus of claim 59, wherein storing the result data in a database comprises:
processing the second instance to retrieve the result data from the second instance.
70. The apparatus of claim 58, wherein storing comprises:
consulting a set of information that maps fields of the generic record to specific tables in the database; and
determining how to store the result data based upon the set of information.
71. The apparatus of claim 58, wherein the memory further comprises one or more additional instructions which, when executed by the one or more processors, cause the one or more processors to perform the step of:
configuring the EMS server to support a new service in the set of services by performing:
adding a new service module to the EMS that processes instances of the generic record containing service data associated with the new service;
updating a database to accommodate data associated with the new service;
if the new service requires that instances of the generic record that contain service data associated with the new service comprise one or more special methods, then adding a constructor that creates instances of the generic record with the one or more special methods; and
updating a set of information that maps fields of the generic record to specific tables in the database to reflect where result data for the new service is stored in the database.
72. The apparatus of claim 58, wherein the memory further comprises one or more additional instructions which, when executed by the one or more processors, cause the one or more processors to perform the step of:
configuring the EMS server to support a new service by adding the new service to a list of supported services by the EMS server.
73. The apparatus of claim 58, wherein the network element is one of one or more network elements, and wherein the memory further comprises one or more additional instructions which, when executed by the one or more processors, cause the one or more processors to perform the steps of:
prior to receiving the communication, the EMS server using a list of supported services to determine which services in the set of services are supported by the EMS server, wherein the list of supported services also describes which network elements in the set of one or more network elements are associated with each of the set of services;
transmitting, from the EMS server to each of the one or more network elements, a request for configuration information of the recipient of the request;
receiving, from at least one of the one or more network elements, configuration information that describes the current operational configuration of the network element which sent the configuration information; and
storing the received configuration information in the database.
74. The apparatus of claim 58, wherein the memory further comprises one or more additional instructions which, when executed by the one or more processors, cause the one or more processors to perform the step of:
defining a customizable method to process an instance storing service data associated with a specific service in the set of services.
75. The apparatus of claim 74, wherein the memory further comprises one or more additional instructions which, when executed by the one or more processors, cause the one or more processors to perform the steps of:
determining if the instance stores service data associated with the specific service; and
executing the customizable method on the instance only upon determining that the instance stores service data associated with the specific service.
76. An apparatus for provisioning a service to a network element comprising a memory storing instructions which, when executed by one or more processors, cause the one or more processors to perform the step of:
deploying the service on the network element using an EMS server,
wherein the EMS server comprises a generic framework which stores service data received from an EMS client in an instance of a generic record, wherein the generic framework comprises a generic engine and a set of service modules,
wherein the EMS server using the generic engine to process the instance regardless of which service is associated with the service data, wherein the generic engine logs information about the instance, and
wherein the EMS server selects a particular service module from the set of service modules to process the instance based on which service is associated with the service data stored in the instance.
US10/866,067 2004-06-10 2004-06-10 Deploying network element management system provisioning services Active 2028-11-05 US7660882B2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US10/866,067 US7660882B2 (en) 2004-06-10 2004-06-10 Deploying network element management system provisioning services
CN2005800190768A CN101268450B (en) 2004-06-10 2005-06-06 Method and device for deploying EMS provisioning services
PCT/US2005/020057 WO2005122720A2 (en) 2004-06-10 2005-06-06 A generic framework for deploying ems provisioning services
EP05758585.3A EP1782215B1 (en) 2004-06-10 2005-06-06 A generic framework for deploying ems provisioning services
CA2569665A CA2569665C (en) 2004-06-10 2005-06-06 A generic framework for developing ems provisioning services

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/866,067 US7660882B2 (en) 2004-06-10 2004-06-10 Deploying network element management system provisioning services

Publications (2)

Publication Number Publication Date
US20060080424A1 true US20060080424A1 (en) 2006-04-13
US7660882B2 US7660882B2 (en) 2010-02-09

Family

ID=35510203

Family Applications (1)

Application Number Title Priority Date Filing Date
US10/866,067 Active 2028-11-05 US7660882B2 (en) 2004-06-10 2004-06-10 Deploying network element management system provisioning services

Country Status (5)

Country Link
US (1) US7660882B2 (en)
EP (1) EP1782215B1 (en)
CN (1) CN101268450B (en)
CA (1) CA2569665C (en)
WO (1) WO2005122720A2 (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030051049A1 (en) * 2001-08-15 2003-03-13 Ariel Noy Network provisioning in a distributed network management architecture
US20060007944A1 (en) * 2004-06-10 2006-01-12 Yassin Movassaghi Managing network device configuration using versioning and partitioning
US20060020686A1 (en) * 2004-07-22 2006-01-26 Liss Jonathan M Distributed messaging system and method for sharing network status data
US20060031427A1 (en) * 2004-06-10 2006-02-09 Kapil Jain Configuration commit database approach and session locking approach in a two-stage network device configuration process
US20080084877A1 (en) * 2006-10-10 2008-04-10 Comcast Cable Holdings, Llc Provisioning network elements
US20090271607A1 (en) * 2008-04-24 2009-10-29 Alexei Arun Karve Method and Apparatus for Dynamic Provisioning in Data Processing Environment
US7853676B1 (en) 2004-06-10 2010-12-14 Cisco Technology, Inc. Protocol for efficient exchange of XML documents with a network device
US8832235B1 (en) * 2009-03-10 2014-09-09 Hewlett-Packard Development Company, L.P. Deploying and releasing logical servers
US10341438B2 (en) * 2017-03-17 2019-07-02 Verizon Patent ad Licensing Inc. Deploying and managing containers to provide a highly available distributed file system
US11360694B2 (en) 2019-05-08 2022-06-14 Distech Controls Inc. Method providing resilient execution of a service on a computing device
US11379249B2 (en) * 2019-05-08 2022-07-05 Distech Controls Inc. Computing device providing fail-safe execution of a service

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10423559B2 (en) * 2016-09-23 2019-09-24 Intel Corporation System for selectively upgradeable disaggregated server components
US10462010B2 (en) * 2017-06-13 2019-10-29 Cisco Technology, Inc. Detecting and managing recurring patterns in device and service configuration data
CN111371684B (en) * 2020-03-02 2022-08-09 中国邮政储蓄银行股份有限公司 Routing processing method and device and double-activity data center system

Citations (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5359593A (en) * 1993-08-26 1994-10-25 International Business Machines Corporation Dynamic bandwidth estimation and adaptation for packet communications networks
US5594792A (en) * 1994-01-28 1997-01-14 American Telecorp Methods and apparatus for modeling and emulating devices in a network of telecommunication systems
US5928331A (en) * 1997-10-30 1999-07-27 Matsushita Electric Industrial Co., Ltd. Distributed internet protocol-based real-time multimedia streaming architecture
US5970064A (en) * 1997-06-12 1999-10-19 Northern Telecom Limited Real time control architecture for admission control in communications network
US5968176A (en) * 1997-05-29 1999-10-19 3Com Corporation Multilayer firewall system
US6009081A (en) * 1997-09-03 1999-12-28 Internap Network Services Private network access point router for interconnecting among internet route providers
US6021439A (en) * 1997-11-14 2000-02-01 International Business Machines Corporation Internet quality-of-service method and system
US6021263A (en) * 1996-02-16 2000-02-01 Lucent Technologies, Inc. Management of ATM virtual circuits with resources reservation protocol
US6028842A (en) * 1996-12-23 2000-02-22 Nortel Networks Corporation Dynamic traffic conditioning
US6047322A (en) * 1997-05-27 2000-04-04 Ukiah Software, Inc. Method and apparatus for quality of service management
US6046980A (en) * 1996-12-09 2000-04-04 Packeteer, Inc. System for managing flow bandwidth utilization at network, transport and application layers in store and forward network
US6061725A (en) * 1996-09-10 2000-05-09 Ganymede Software Inc. Endpoint node systems computer program products for application traffic based communications network performance testing
US6104700A (en) * 1997-08-29 2000-08-15 Extreme Networks Policy based quality of service
US6118760A (en) * 1997-06-30 2000-09-12 Sun Microsystems, Inc. Management of entries in a network element forwarding memory
US6134603A (en) * 1998-03-20 2000-10-17 Sun Microsystems, Inc. Method and system for deterministic hashes to identify remote methods
US6154878A (en) * 1998-07-21 2000-11-28 Hewlett-Packard Company System and method for on-line replacement of software
US6154776A (en) * 1998-03-20 2000-11-28 Sun Microsystems, Inc. Quality of service allocation on a network
US6167445A (en) * 1998-10-26 2000-12-26 Cisco Technology, Inc. Method and apparatus for defining and implementing high-level quality of service policies in computer networks
US6169748B1 (en) * 1998-10-27 2001-01-02 Fujitsu Network Communications, Inc. Frame based quality of service
US6170009B1 (en) * 1998-07-17 2001-01-02 Kallol Mandal Controlling devices on a network through policies
US6212184B1 (en) * 1998-07-15 2001-04-03 Washington University Fast scaleable methods and devices for layer four switching
US6286052B1 (en) * 1998-12-04 2001-09-04 Cisco Technology, Inc. Method and apparatus for identifying network data traffic flows and for applying quality of service treatments to the flows
US6301253B1 (en) * 1997-04-18 2001-10-09 Nec Corporation ATM cell buffer circuit and priority order allocating method at ATM switching system
US6301613B1 (en) * 1998-12-03 2001-10-09 Cisco Technology, Inc. Verifying that a network management policy used by a computer system can be satisfied and is feasible for use
US6324184B1 (en) * 1996-03-18 2001-11-27 General Instrument Corporation Dynamic bandwidth allocation for a communication network
US6327618B1 (en) * 1998-12-03 2001-12-04 Cisco Technology, Inc. Recognizing and processing conflicts in network management policies
US20020016814A1 (en) * 2000-08-07 2002-02-07 International Business Machines Corporation Method, system, and program for invoking stored procedures and accessing stored procedure data
US20020019874A1 (en) * 1997-12-05 2002-02-14 Andrea Borr Multi-protocol unified file-locking
US6363429B1 (en) * 1999-04-20 2002-03-26 3Com Corporation Method and system for automatic determination of priority data streams on computer networks
US6393473B1 (en) * 1998-12-18 2002-05-21 Cisco Technology, Inc. Representing and verifying network management policies using collective constraints
US20020065907A1 (en) * 2000-11-29 2002-05-30 Cloonan Thomas J. Method and apparatus for dynamically modifying service level agreements in cable modem termination system equipment
US6401240B1 (en) * 1995-11-28 2002-06-04 Hewlett-Packard Company System and method for profiling code on symmetric multiprocessor architectures
US6424659B2 (en) * 1998-07-17 2002-07-23 Network Equipment Technologies, Inc. Multi-layer switching apparatus and method
US6430154B1 (en) * 1999-08-13 2002-08-06 Fujitsu Network Communications, Inc. Supporting multiple application traffic types over connection oriented networks
US6442151B1 (en) * 1999-04-06 2002-08-27 Ericsson Inc. System and method for variable reassignment of transmission channels
US6463470B1 (en) * 1998-10-26 2002-10-08 Cisco Technology, Inc. Method and apparatus of storing policies for policy-based management of quality of service treatments of network data traffic flows
US6466984B1 (en) * 1999-07-02 2002-10-15 Cisco Technology, Inc. Method and apparatus for policy-based management of quality of service treatments of network data traffic flows by integrating policies with application programs
US6473793B1 (en) * 1994-06-08 2002-10-29 Hughes Electronics Corporation Method and apparatus for selectively allocating and enforcing bandwidth usage requirements on network users
US6483805B1 (en) * 1998-12-28 2002-11-19 Nortel Networks Limited Internet differentiated services service for transaction applications
US6484261B1 (en) * 1998-02-17 2002-11-19 Cisco Technology, Inc. Graphical network security policy management
US20020174207A1 (en) * 2001-02-28 2002-11-21 Abdella Battou Self-healing hierarchical network management system, and methods and apparatus therefor
US6490564B1 (en) * 1999-09-03 2002-12-03 Cisco Technology, Inc. Arrangement for defining and processing voice enabled web applications using extensible markup language documents
US20030051008A1 (en) * 2001-08-29 2003-03-13 Gorthy Scott B. System and method for generating a configuration schema
US6539425B1 (en) * 1999-07-07 2003-03-25 Avaya Technology Corp. Policy-enabled communications networks
US6570875B1 (en) * 1998-10-13 2003-05-27 Intel Corporation Automatic filtering and creation of virtual LANs among a plurality of switch ports
US20030101240A1 (en) * 2001-11-26 2003-05-29 Mike Courtney System and method for generating a representation of a configuration schema
US6577644B1 (en) * 1999-06-22 2003-06-10 Lucent Technologies Inc. Quality of service (QoS) enhancement to multilink point-to-point protocol (PPP)
US6584508B1 (en) * 1999-07-13 2003-06-24 Networks Associates Technology, Inc. Advanced data guard having independently wrapped components
US20030120678A1 (en) * 2001-12-13 2003-06-26 Microsoft Corporation Prototyping model for components of a software program
US6594268B1 (en) * 1999-03-11 2003-07-15 Lucent Technologies Inc. Adaptive routing system and method for QOS packet networks
US6601082B1 (en) * 1999-07-30 2003-07-29 Intel Corporation System and method for managing actions provided by a network using a policy tree
US6601110B2 (en) * 1998-03-17 2003-07-29 Sun Microsystems, Inc. System and method for translating file-level operations in a non-door-based operating system to door invocations on a door server
US6611863B1 (en) * 2000-06-05 2003-08-26 Intel Corporation Automatic device assignment through programmable device discovery for policy based network management
US6611864B2 (en) * 1999-09-10 2003-08-26 Intel Corporation Extensible policy-based network management architecture
US6622170B1 (en) * 1999-09-10 2003-09-16 International Business Machines Corporation System and method for DEN/LDAP client database access with a backoff capability
US6621793B2 (en) * 2000-05-22 2003-09-16 Telefonaktiebolaget Lm Ericsson (Publ) Application influenced policy
US6625657B1 (en) * 1999-03-25 2003-09-23 Nortel Networks Limited System for requesting missing network accounting records if there is a break in sequence numbers while the records are transmitting from a source device
US6651191B1 (en) * 2000-09-12 2003-11-18 Hewlett-Packard Development Company, L.P. Testing of policy prior to deployment in a policy-based network management system
US20030229665A1 (en) * 2002-06-10 2003-12-11 International Business Machines Corporation Systems, methods and computer programs for implementing and accessing web services
US6671724B1 (en) * 2000-03-21 2003-12-30 Centrisoft Corporation Software, systems and methods for managing a distributed network
US6684244B1 (en) * 2000-01-07 2004-01-27 Hewlett-Packard Development Company, Lp. Aggregated policy deployment and status propagation in network management systems
US6718379B1 (en) * 2000-06-09 2004-04-06 Advanced Micro Devices, Inc. System and method for network management of local area networks having non-blocking network switches configured for switching data packets between subnetworks based on management policies
US6760761B1 (en) * 2000-03-27 2004-07-06 Genuity Inc. Systems and methods for standardizing network devices
US20040139179A1 (en) * 2002-12-05 2004-07-15 Siemens Information & Communication Networks, Inc. Method and system for router misconfiguration autodetection
US6826597B1 (en) * 1999-03-17 2004-11-30 Oracle International Corporation Providing clients with services that retrieve data from data sources that do not necessarily support the format required by the clients
US6839766B1 (en) * 2000-01-14 2005-01-04 Cisco Technology, Inc. Method and apparatus for communicating cops protocol policies to non-cops-enabled network devices
US20050033805A1 (en) * 2001-09-14 2005-02-10 Hideharu Fujiyama Network information processing system and information processing method
US20050108387A1 (en) * 2003-10-31 2005-05-19 Bingjun Li System and apparatus for a network management system using presence and instant message techniques
US20050204186A1 (en) * 2004-03-09 2005-09-15 Rothman Michael A. System and method to implement a rollback mechanism for a data storage unit
US6952703B1 (en) * 1999-10-12 2005-10-04 Cisco Technology, Inc. Subsystem application notification method in a centralized router database
US6959332B1 (en) * 2000-07-12 2005-10-25 Cisco Technology, Inc. Basic command representation of quality of service policies
US20050246687A1 (en) * 2004-05-03 2005-11-03 Scott Jeffrey B Determination of the status of an object in a source control system and a method to automatically check-in an object when its definition is provided from an external source
US20060031427A1 (en) * 2004-06-10 2006-02-09 Kapil Jain Configuration commit database approach and session locking approach in a two-stage network device configuration process
US7054901B2 (en) * 2001-05-31 2006-05-30 Juniper Networks, Inc. Network management interface with selective rendering of output
US7096256B1 (en) * 2001-02-26 2006-08-22 Juniper Network, Inc. Applying configuration group information to target configuration information
US7111206B1 (en) * 2001-09-19 2006-09-19 Juniper Networks, Inc. Diagnosis of network fault conditions
US7146414B1 (en) * 2002-11-06 2006-12-05 Unisys Corporation Object bridge for providing access to operations-level control of a data processing system
US7233975B1 (en) * 2002-08-19 2007-06-19 Juniper Networks, Inc. Private configuration of network devices
US7305658B1 (en) * 2001-05-07 2007-12-04 Microsoft Corporation Method and system for application partitions
US7363351B1 (en) * 2001-05-31 2008-04-22 Juniper Networks, Inc. Network router management interface with API invoked via login stream

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272559B1 (en) * 1997-10-15 2001-08-07 Sun Microsystems, Inc. Deferred reconstruction of objects and remote loading for event notification in a distributed system
AU5448500A (en) * 1999-05-26 2000-12-28 Alok Batra Network element management system
DE19957251A1 (en) * 1999-11-27 2001-05-31 Alcatel Sa Method and device for generating customer-specific configuration data records for network elements of a telecommunication system
US7114008B2 (en) 2000-06-23 2006-09-26 Cloudshield Technologies, Inc. Edge adapter architecture apparatus and method
US8141144B2 (en) * 2001-05-10 2012-03-20 Hewlett-Packard Development Company, L.P. Security policy management for network devices
US6766364B2 (en) * 2002-01-15 2004-07-20 Telcordia Technologies, Inc. Template based configuration and validation of a network for enabling a requested service to be compatible with the previously enabled services
US20030172141A1 (en) * 2002-03-06 2003-09-11 Adtran, Inc. Element management system and method utilizing provision templates
US20040172412A1 (en) * 2002-07-19 2004-09-02 Kirby Files Automated configuration of packet routed networks
US7506337B2 (en) 2003-04-11 2009-03-17 Microsoft Corporation System and method for providing service of automated creation of computer software production images

Patent Citations (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5359593A (en) * 1993-08-26 1994-10-25 International Business Machines Corporation Dynamic bandwidth estimation and adaptation for packet communications networks
US5594792A (en) * 1994-01-28 1997-01-14 American Telecorp Methods and apparatus for modeling and emulating devices in a network of telecommunication systems
US6473793B1 (en) * 1994-06-08 2002-10-29 Hughes Electronics Corporation Method and apparatus for selectively allocating and enforcing bandwidth usage requirements on network users
US6401240B1 (en) * 1995-11-28 2002-06-04 Hewlett-Packard Company System and method for profiling code on symmetric multiprocessor architectures
US6021263A (en) * 1996-02-16 2000-02-01 Lucent Technologies, Inc. Management of ATM virtual circuits with resources reservation protocol
US6324184B1 (en) * 1996-03-18 2001-11-27 General Instrument Corporation Dynamic bandwidth allocation for a communication network
US6061725A (en) * 1996-09-10 2000-05-09 Ganymede Software Inc. Endpoint node systems computer program products for application traffic based communications network performance testing
US6046980A (en) * 1996-12-09 2000-04-04 Packeteer, Inc. System for managing flow bandwidth utilization at network, transport and application layers in store and forward network
US6028842A (en) * 1996-12-23 2000-02-22 Nortel Networks Corporation Dynamic traffic conditioning
US6301253B1 (en) * 1997-04-18 2001-10-09 Nec Corporation ATM cell buffer circuit and priority order allocating method at ATM switching system
US6047322A (en) * 1997-05-27 2000-04-04 Ukiah Software, Inc. Method and apparatus for quality of service management
US5968176A (en) * 1997-05-29 1999-10-19 3Com Corporation Multilayer firewall system
US5970064A (en) * 1997-06-12 1999-10-19 Northern Telecom Limited Real time control architecture for admission control in communications network
US6118760A (en) * 1997-06-30 2000-09-12 Sun Microsystems, Inc. Management of entries in a network element forwarding memory
US6104700A (en) * 1997-08-29 2000-08-15 Extreme Networks Policy based quality of service
US6009081A (en) * 1997-09-03 1999-12-28 Internap Network Services Private network access point router for interconnecting among internet route providers
US5928331A (en) * 1997-10-30 1999-07-27 Matsushita Electric Industrial Co., Ltd. Distributed internet protocol-based real-time multimedia streaming architecture
US6021439A (en) * 1997-11-14 2000-02-01 International Business Machines Corporation Internet quality-of-service method and system
US20020019874A1 (en) * 1997-12-05 2002-02-14 Andrea Borr Multi-protocol unified file-locking
US6484261B1 (en) * 1998-02-17 2002-11-19 Cisco Technology, Inc. Graphical network security policy management
US6601110B2 (en) * 1998-03-17 2003-07-29 Sun Microsystems, Inc. System and method for translating file-level operations in a non-door-based operating system to door invocations on a door server
US6134603A (en) * 1998-03-20 2000-10-17 Sun Microsystems, Inc. Method and system for deterministic hashes to identify remote methods
US6154776A (en) * 1998-03-20 2000-11-28 Sun Microsystems, Inc. Quality of service allocation on a network
US6212184B1 (en) * 1998-07-15 2001-04-03 Washington University Fast scaleable methods and devices for layer four switching
US6170009B1 (en) * 1998-07-17 2001-01-02 Kallol Mandal Controlling devices on a network through policies
US6424659B2 (en) * 1998-07-17 2002-07-23 Network Equipment Technologies, Inc. Multi-layer switching apparatus and method
US6154878A (en) * 1998-07-21 2000-11-28 Hewlett-Packard Company System and method for on-line replacement of software
US6570875B1 (en) * 1998-10-13 2003-05-27 Intel Corporation Automatic filtering and creation of virtual LANs among a plurality of switch ports
US6463470B1 (en) * 1998-10-26 2002-10-08 Cisco Technology, Inc. Method and apparatus of storing policies for policy-based management of quality of service treatments of network data traffic flows
US6167445A (en) * 1998-10-26 2000-12-26 Cisco Technology, Inc. Method and apparatus for defining and implementing high-level quality of service policies in computer networks
US6718380B1 (en) * 1998-10-26 2004-04-06 Cisco Technology, Inc. Method and apparatus for storing policies for policy-based management of network quality of service
US6169748B1 (en) * 1998-10-27 2001-01-02 Fujitsu Network Communications, Inc. Frame based quality of service
US6301613B1 (en) * 1998-12-03 2001-10-09 Cisco Technology, Inc. Verifying that a network management policy used by a computer system can be satisfied and is feasible for use
US6327618B1 (en) * 1998-12-03 2001-12-04 Cisco Technology, Inc. Recognizing and processing conflicts in network management policies
US6286052B1 (en) * 1998-12-04 2001-09-04 Cisco Technology, Inc. Method and apparatus for identifying network data traffic flows and for applying quality of service treatments to the flows
US6393473B1 (en) * 1998-12-18 2002-05-21 Cisco Technology, Inc. Representing and verifying network management policies using collective constraints
US6483805B1 (en) * 1998-12-28 2002-11-19 Nortel Networks Limited Internet differentiated services service for transaction applications
US6594268B1 (en) * 1999-03-11 2003-07-15 Lucent Technologies Inc. Adaptive routing system and method for QOS packet networks
US6826597B1 (en) * 1999-03-17 2004-11-30 Oracle International Corporation Providing clients with services that retrieve data from data sources that do not necessarily support the format required by the clients
US6625657B1 (en) * 1999-03-25 2003-09-23 Nortel Networks Limited System for requesting missing network accounting records if there is a break in sequence numbers while the records are transmitting from a source device
US6442151B1 (en) * 1999-04-06 2002-08-27 Ericsson Inc. System and method for variable reassignment of transmission channels
US6363429B1 (en) * 1999-04-20 2002-03-26 3Com Corporation Method and system for automatic determination of priority data streams on computer networks
US6577644B1 (en) * 1999-06-22 2003-06-10 Lucent Technologies Inc. Quality of service (QoS) enhancement to multilink point-to-point protocol (PPP)
US6466984B1 (en) * 1999-07-02 2002-10-15 Cisco Technology, Inc. Method and apparatus for policy-based management of quality of service treatments of network data traffic flows by integrating policies with application programs
US6539425B1 (en) * 1999-07-07 2003-03-25 Avaya Technology Corp. Policy-enabled communications networks
US6584508B1 (en) * 1999-07-13 2003-06-24 Networks Associates Technology, Inc. Advanced data guard having independently wrapped components
US6601082B1 (en) * 1999-07-30 2003-07-29 Intel Corporation System and method for managing actions provided by a network using a policy tree
US6430154B1 (en) * 1999-08-13 2002-08-06 Fujitsu Network Communications, Inc. Supporting multiple application traffic types over connection oriented networks
US6490564B1 (en) * 1999-09-03 2002-12-03 Cisco Technology, Inc. Arrangement for defining and processing voice enabled web applications using extensible markup language documents
US6611864B2 (en) * 1999-09-10 2003-08-26 Intel Corporation Extensible policy-based network management architecture
US6622170B1 (en) * 1999-09-10 2003-09-16 International Business Machines Corporation System and method for DEN/LDAP client database access with a backoff capability
US6952703B1 (en) * 1999-10-12 2005-10-04 Cisco Technology, Inc. Subsystem application notification method in a centralized router database
US6684244B1 (en) * 2000-01-07 2004-01-27 Hewlett-Packard Development Company, Lp. Aggregated policy deployment and status propagation in network management systems
US6839766B1 (en) * 2000-01-14 2005-01-04 Cisco Technology, Inc. Method and apparatus for communicating cops protocol policies to non-cops-enabled network devices
US6671724B1 (en) * 2000-03-21 2003-12-30 Centrisoft Corporation Software, systems and methods for managing a distributed network
US6760761B1 (en) * 2000-03-27 2004-07-06 Genuity Inc. Systems and methods for standardizing network devices
US6621793B2 (en) * 2000-05-22 2003-09-16 Telefonaktiebolaget Lm Ericsson (Publ) Application influenced policy
US6611863B1 (en) * 2000-06-05 2003-08-26 Intel Corporation Automatic device assignment through programmable device discovery for policy based network management
US6718379B1 (en) * 2000-06-09 2004-04-06 Advanced Micro Devices, Inc. System and method for network management of local area networks having non-blocking network switches configured for switching data packets between subnetworks based on management policies
US6959332B1 (en) * 2000-07-12 2005-10-25 Cisco Technology, Inc. Basic command representation of quality of service policies
US20020016814A1 (en) * 2000-08-07 2002-02-07 International Business Machines Corporation Method, system, and program for invoking stored procedures and accessing stored procedure data
US6651191B1 (en) * 2000-09-12 2003-11-18 Hewlett-Packard Development Company, L.P. Testing of policy prior to deployment in a policy-based network management system
US20020065907A1 (en) * 2000-11-29 2002-05-30 Cloonan Thomas J. Method and apparatus for dynamically modifying service level agreements in cable modem termination system equipment
US7096256B1 (en) * 2001-02-26 2006-08-22 Juniper Network, Inc. Applying configuration group information to target configuration information
US20020174207A1 (en) * 2001-02-28 2002-11-21 Abdella Battou Self-healing hierarchical network management system, and methods and apparatus therefor
US7305658B1 (en) * 2001-05-07 2007-12-04 Microsoft Corporation Method and system for application partitions
US7054901B2 (en) * 2001-05-31 2006-05-30 Juniper Networks, Inc. Network management interface with selective rendering of output
US7363351B1 (en) * 2001-05-31 2008-04-22 Juniper Networks, Inc. Network router management interface with API invoked via login stream
US20030051008A1 (en) * 2001-08-29 2003-03-13 Gorthy Scott B. System and method for generating a configuration schema
US20050033805A1 (en) * 2001-09-14 2005-02-10 Hideharu Fujiyama Network information processing system and information processing method
US7111206B1 (en) * 2001-09-19 2006-09-19 Juniper Networks, Inc. Diagnosis of network fault conditions
US20030101240A1 (en) * 2001-11-26 2003-05-29 Mike Courtney System and method for generating a representation of a configuration schema
US20030120678A1 (en) * 2001-12-13 2003-06-26 Microsoft Corporation Prototyping model for components of a software program
US20030229665A1 (en) * 2002-06-10 2003-12-11 International Business Machines Corporation Systems, methods and computer programs for implementing and accessing web services
US7233975B1 (en) * 2002-08-19 2007-06-19 Juniper Networks, Inc. Private configuration of network devices
US7146414B1 (en) * 2002-11-06 2006-12-05 Unisys Corporation Object bridge for providing access to operations-level control of a data processing system
US20040139179A1 (en) * 2002-12-05 2004-07-15 Siemens Information & Communication Networks, Inc. Method and system for router misconfiguration autodetection
US20050108387A1 (en) * 2003-10-31 2005-05-19 Bingjun Li System and apparatus for a network management system using presence and instant message techniques
US20050204186A1 (en) * 2004-03-09 2005-09-15 Rothman Michael A. System and method to implement a rollback mechanism for a data storage unit
US20050246687A1 (en) * 2004-05-03 2005-11-03 Scott Jeffrey B Determination of the status of an object in a source control system and a method to automatically check-in an object when its definition is provided from an external source
US20060031427A1 (en) * 2004-06-10 2006-02-09 Kapil Jain Configuration commit database approach and session locking approach in a two-stage network device configuration process

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030051049A1 (en) * 2001-08-15 2003-03-13 Ariel Noy Network provisioning in a distributed network management architecture
US7765283B2 (en) 2001-08-15 2010-07-27 Cisco Technology, Inc. Network provisioning in a distributed network management architecture
US7853676B1 (en) 2004-06-10 2010-12-14 Cisco Technology, Inc. Protocol for efficient exchange of XML documents with a network device
US20060007944A1 (en) * 2004-06-10 2006-01-12 Yassin Movassaghi Managing network device configuration using versioning and partitioning
US20060031427A1 (en) * 2004-06-10 2006-02-09 Kapil Jain Configuration commit database approach and session locking approach in a two-stage network device configuration process
US8090806B1 (en) 2004-06-10 2012-01-03 Cisco Technology, Inc. Two-stage network device configuration process
US7640317B2 (en) 2004-06-10 2009-12-29 Cisco Technology, Inc. Configuration commit database approach and session locking approach in a two-stage network device configuration process
US7779404B2 (en) 2004-06-10 2010-08-17 Cisco Technology, Inc. Managing network device configuration using versioning and partitioning
US20060020686A1 (en) * 2004-07-22 2006-01-26 Liss Jonathan M Distributed messaging system and method for sharing network status data
US8180882B2 (en) * 2004-07-22 2012-05-15 Tyco Electronics Subsea Communications Llc Distributed messaging system and method for sharing network status data
WO2008045859A3 (en) * 2006-10-10 2008-08-14 Comcast Cable Holdings Llc Provisioning network elements
US20080084877A1 (en) * 2006-10-10 2008-04-10 Comcast Cable Holdings, Llc Provisioning network elements
US8265073B2 (en) 2006-10-10 2012-09-11 Comcast Cable Holdings, Llc. Method and system which enables subscribers to select videos from websites for on-demand delivery to subscriber televisions via a television network
US11184189B2 (en) 2006-10-10 2021-11-23 Comcast Cable Communications, Llc Provisioning network elements
US20090271607A1 (en) * 2008-04-24 2009-10-29 Alexei Arun Karve Method and Apparatus for Dynamic Provisioning in Data Processing Environment
US8601253B2 (en) * 2008-04-24 2013-12-03 International Business Machines Corporation Dynamic provisioning in data processing environment
US8832235B1 (en) * 2009-03-10 2014-09-09 Hewlett-Packard Development Company, L.P. Deploying and releasing logical servers
US10341438B2 (en) * 2017-03-17 2019-07-02 Verizon Patent ad Licensing Inc. Deploying and managing containers to provide a highly available distributed file system
US10855770B2 (en) 2017-03-17 2020-12-01 Verizon Patent And Licensing Inc. Deploying and managing containers to provide a highly available distributed file system
US11360694B2 (en) 2019-05-08 2022-06-14 Distech Controls Inc. Method providing resilient execution of a service on a computing device
US11379249B2 (en) * 2019-05-08 2022-07-05 Distech Controls Inc. Computing device providing fail-safe execution of a service

Also Published As

Publication number Publication date
EP1782215A2 (en) 2007-05-09
EP1782215A4 (en) 2012-02-01
CN101268450B (en) 2011-06-22
US7660882B2 (en) 2010-02-09
CN101268450A (en) 2008-09-17
WO2005122720A3 (en) 2007-03-22
CA2569665A1 (en) 2005-12-29
WO2005122720A2 (en) 2005-12-29
CA2569665C (en) 2012-02-07
EP1782215B1 (en) 2013-11-20

Similar Documents

Publication Publication Date Title
CA2569665C (en) A generic framework for developing ems provisioning services
US8090806B1 (en) Two-stage network device configuration process
US7926033B2 (en) Method for supporting new network element software versions in an element management system without upgrading
US7529825B1 (en) Server-side XML-based development environment for network device management applications
US11582091B2 (en) Provisioning network devices using a vendor-neutral platform
US6253243B1 (en) Automated trap control for a distributed network management system
US7363351B1 (en) Network router management interface with API invoked via login stream
US8713177B2 (en) Remote management of networked systems using secure modular platform
US7596623B2 (en) Configurable connector
US7814114B2 (en) Tree-based information query model
US6968553B1 (en) Element manager common gateway architecture system and method
US9331902B2 (en) Apparatus and method providing unified network management
US7580936B2 (en) Extendable discovery of network device information
US20150149604A1 (en) Content switch management
BRPI0903299A2 (en) enhanced network adapter framework
US7054926B1 (en) Method and apparatus for managing network devices using a parsable string that conforms to a specified grammar
US20060235968A1 (en) Command line interface processor
US20170270157A1 (en) TCP/IP Network Automation and Orchestration Tools
US9634883B2 (en) Verifying information stored on a managed network device
US20040025142A1 (en) Method and apparatus for managing objects in a CIM environment
US8880664B1 (en) Method and apparatus for generating a network profile and device profile
US7853676B1 (en) Protocol for efficient exchange of XML documents with a network device
WO1999034557A1 (en) Method and system for software version management in a network management system
US8655998B1 (en) Client-side XML-based development environment for network device management applications
US20070162577A1 (en) System for providing managed computing service

Legal Events

Date Code Title Description
AS Assignment

Owner name: CISCO TECHNOLOGY, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SUN, JIONG;GOPAL, NIRAJ;RAJU, SATYANARAYANA;AND OTHERS;REEL/FRAME:015941/0159;SIGNING DATES FROM 20041018 TO 20041026

Owner name: CISCO TECHNOLOGY, INC.,CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SUN, JIONG;GOPAL, NIRAJ;RAJU, SATYANARAYANA;AND OTHERS;SIGNING DATES FROM 20041018 TO 20041026;REEL/FRAME:015941/0159

STCF Information on status: patent grant

Free format text: PATENTED CASE

CC Certificate of correction
FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 12