Method and apparatus to automate configuration of network entities

A method and apparatus for automating the configuration of network entities with a network management system. More particularly, a graphical user interface incorporates a template to allow administrators to configure attributes of network entities. The graphical user interface and template reduce the number of blocks required to configure network entities and also minimize user errors. The graphical user interface also allows an administrator to add and manage templates for future use. The method and apparatus are also for monitoring the progress of configuring network entities and generating an operation log.

BACKGROUND

Example aspects of the present invention generally relate to a method and apparatus for configuring network entities. More particularly, example aspects of the present invention relate to using a graphical user interface incorporating a template to automate the configuration of network entities with a network management system and a template handler that implements the business logic.

2. Related Art

One or more network management systems may reside in between networks or on any given network. Network management systems are a combination of hardware and software components used to monitor, control, and configure network participants. Each network participant communicates with the network using a network entity called a network interface. Hereinafter, network participants will be referred to as network elements.

Network elements can reside within a network or across several different networks and can include, but are not limited to, routers, access servers, switches, bridges, hubs, computer hosts, and printers. Network elements collect and store information available to network management systems using agents.

An agent is a network management software module that resides in a network element and has local knowledge of management information. The agent translates the local management information into a form that is compatible with a network management system so that the network management system may use the network element's local information. The agent can also receive management information, such as configuration requests, from the network management system.

Network entities can constitute the network elements themselves or components of network elements such as network cards, ports, channels, or interfaces. It is often necessary in industries, such as the telecommunications industry, to configure various network entities for different protocols to accommodate changes in a network. For example, it might be necessary to configure network entities for different multi-service interfaces such as IP, MPLS, PPP/POS, HDLC, ATM, EoS (X.86), GFP, and TDM. However, making such configuration changes is often time consuming and error-prone due to the large number of network entities on a given network.

Network entities are traditionally configured individually by an administrator with a command line interface on the network elements or with a craft terminal provided by a network management system. This manual process can be error-prone due to the large number of entries required at the command line interface for each network entity. The process of configuring each network entity individually is also time consuming, especially when there are a large number of network entities. Many of these network entities often require similar configurations.

Network entities can also be configured by writing and executing scripts. Scripts are written by an administrator to make configuration changes and are interpreted by a computer program one command at a time. Administrators often repetitively copy, paste, and execute scripts for configuring similar network entities. Like the manual process of configuring network entities individually at a command line terminal, scripting is also time consuming and error-prone. The scripting approach requires time to write and execute each script and also requires administrators to check the configuration of the network entity after a script is executed.

BRIEF DESCRIPTION

An example embodiment of the present invention addresses the concerns above and presents a method and apparatus for automating the configuration of network entities. More particularly, an example embodiment of the present invention uses a graphical user interface incorporating a graphical template to reduce the number of blocks required to configure network entities and to minimize administrator errors. The graphical template has administrator modifiable areas corresponding to template attributes. The template attributes are extracted by a template handler that sends messages to agents of network elements on the network, which configure attributes of the network entities to match the extracted template attributes.

In a further example aspect of the present invention, the graphical user interface includes a graphical template management menu facilitating the addition and management of graphical templates. The graphical template management menu allows an administrator to add a new graphical template by selecting a template type corresponding to network entities to be configured. The graphical user interface then allows an administrator to modify the new graphical template and apply the graphical template to selected network entities.

The graphical template management menu also allows an administrator to copy and modify an existing template to create a new template. New templates can then be saved and managed by the administrator to reduce time in making similar configurations in the future.

In another example aspect of the present invention, extracted template attributes are checked so that only a valid configuration is applied to network entities. This feature aids in minimizing user errors.

In yet another example aspect of the present invention, the graphical user interface displays a graphical progress dialog for monitoring the application of the extracted template attributes to the network entities based on messages sent by the template handler and confirmations received by the template handler. In addition, the network management system generates an operation log based on the messages sent by the template handler and confirmations received by the template handler. The operation log can then help troubleshoot possible problems that develop in the network.

The template handler implements the business logic by processing and displaying templates and performing operations such as template creation, deletion, and modification of templates. Further, when processing the templates, the template handler monitors an apply operation for the application of existing templates or new templates created by the administrator. The template handler communicates the progress of the template application to the graphical user interface as described above.

Additional advantages and features of various example embodiments of the present invention will become apparent to those skilled in the art upon an examination of the following detailed description of example embodiments.

DETAILED DESCRIPTION

FIG. 1is a block diagram of a network services system100in which a network management system160according to an example embodiment of the present invention is operable. In the illustrated example embodiment, the network services system100comprises an Internet Protocol (IP)/Multi-Protocol Label Switching (MPLS) Backbone101, core networks102,103, and104, and customer premises106,107,108, and109. The network services system100further comprises two metropolitan networks IP Metro110and MPLS Metro120, multi-service routers114and124, and means for business and consumer access through Ethernet networks such as the Ethernet Access Ring130, Gigabit Ethernet140, and means for communication access such as the Access Network150. As illustrated in the example embodiment, the IP Metro110and the MPLS Metro120include multi-service routers, such as multi-service routers111,112, and113and121,122, and123, respectively. Moreover, the Ethernet Access Ring130includes Ethernet access nodes, such as nodes131,132,133, and134.

Traditionally, various types of interconnecting mechanisms may be employed for interconnecting the above components such as, for example, optical fibers, wires, cables, switches, wireless interfaces, routers, modems, and/or other types of communication equipment, as can be readily appreciated by one skilled in the art, although, for brevity, all such mechanisms are not explicitly identified inFIG. 1.

As part of the core of the network services system100, the IP/MPLS Backbone101provides a path for the exchange of information between different networks, such as core networks102,103,104, and metropolitan networks IP Metro110and MPLS Metro120. The IP/MPLS Backbone101can be used to carry many different kinds of traffic including, for example, IP packets, native Asynchronous Transfer Mode (ATM), SONET, and Ethernet frames. Both of the multi-service routers114and124direct the path of the traffic between networks, such as102,103, and104and the IP/MPLS Backbone101. The multi-service routers114and124support many kinds of traffic including, for example, business class IP, Frame Relay, ATM, Ethernet, and Time Division Multiplexing (TDM)/Private Line Services.

According to the illustrated example embodiment, network103is the Public Switch Telephone Network (PSTN) that is a network of public circuit-switched telephone networks, the network102operates in accordance with ATM technology and/or Frame Relay technology, and the network104represents the Internet, adhering to TCP/IP protocols. Further, the IP Metro110and the MPLS Metro120networks are constructed of multi-service routers111,112, and113and121,122, and123, respectively, that can operate at the Provider's Edge or as an aggregation device that feeds into the edge of the IP/MPLS Backbone101. The multi-service routers111,112,113,121,122, and123can aggregate many different services such as, for example, ATM, Ethernet, Frame Relay, and TDM services and perform interworking services among these same services, either through the IP/MPLS Backbone101or in native form. It should be made clear, however, that an example embodiment of the present invention should not be construed as being limited for use only with one or more particular types of networks.

As illustrated in the example embodiment, the Ethernet Access Ring130consists of multiple Ethernet access nodes, such as131,132,133, and134, that enable delivery of simultaneous telephony, business and entertainment video, broadband data and Internet services using Ethernet over fiber optics and copper wire to customer premises such as, for example, customer premises106,107,108, and109. The Gigabit Ethernet140provides similar services as the Ethernet Access Ring130, however, the Gigabit Ethernet140transmits Ethernet frames at a rate of one gigabit per second.

The network services system100, when managed by the network management system160, enables many services such as, for example, the customer premise106representing Point-to-Point Ethernet, the customer premise107that functions as Multipoint Ethernet, the customer premise108allowing internet access, and customer premise109representing Off-net TDM Access and TDM over Ethernet as provided by, for example, the Access Network150. Other services enabled by the network services system100are, for example, Transparent LAN Service (TLS), Virtual Private LAN Service (VPLS), Internet Protocol Virtual Private Networks (IPVPNs), Voice over Internet Protocol (VoIP), and Video.

Network management system160is a computer or farm of computers connected to one or more network elements (shown inFIG. 2) that facilitate the transmission, storage, and reception of information between different points, such as between networks102,103, and104and metropolitan networks110and120. From a hardware standpoint, a network management system160typically includes one or more clients and servers (shown inFIG. 2), for performing the arithmetic and/or logical operations required for program execution, and disk storage media, such as one or more disk drives for program and data storage, and a random access memory, for temporary data and program instruction storage. From a software standpoint, network management system160typically includes client and server software residents on disk storage media, which, when executed, directs the network management system160in performing transmission, reception, and storage functions. The disk storage media is a computer readable medium such as any of a flexible disk (floppy disk), a hard disk, an optical disk, a magneto-optical disk, a compact disc (CD), a digital versatile disc (DVD), a read only memory (ROM), random access memory (RAM), erasable programmable read only memory (EPROM), and the like.

The server software runs on an operating system stored on the disk storage media, such as, for example, UNIX or Windows NT. As is well known in the art, server computers can run different operating systems, and can contain different types of server software, each type devoted to a different function, such as handling and managing data/information from a particular source, or transforming data/information from one format into another format. It should thus be clear that the teaching of an example embodiment of this invention is not to be construed as being limited for use with any particular type of server computer, and that any other suitable type of device for facilitating the exchange and storage of information may be employed instead.

FIG. 2illustrates an example of network management system160coupled to network elements204A,204B, and204C suitable for practicing an example embodiment of the present invention. The network elements204A,204B, and204C could correspond to multi-service routers111,112,113,121,122,123,114, or124inFIG. 1. The network elements204A,204B, and204C could also correspond to, but are not limited to, access servers, switches, bridges, hubs, computer hosts, or printers within networks102,103,104and metropolitan networks IP Metro110and MPLS Metro120.

The network elements204A,204B, and204C may reside within the same network as the network management system160or may reside in a different network than the network management system160. The various network elements204A,204B, and204C may also reside in different networks from each other, such as networks102,103,104, IP Metro110, and MPLS Metro120.

The network management system160may reside outside of the networks102,103, and104, as inFIG. 1, or may also reside within a network, such as networks102,103, and104. Each network may also accommodate multiple network management systems.

The example of network management system160inFIG. 2includes a client201, a server202, and a database203. A network management system, however, could also comprise multiple clients, servers, and databases.

The client201includes a graphical user interface205to communicate with an administrator and to allow the administrator to input network management information into the network management system160. The client201also includes several components such as a topology component206, a template handler component207, and a services component208. The topology component206processes and displays network topology such as network element204creation or deletion. The template handler component207processes and displays templates and performs operations such as template creation, deletion, and modification in accordance with an example embodiment of the present invention. The services component208processes and displays network services such as circuit provisioning or label switched path (LSP) provisioning.

The server202can include components such as a discovery component209, a managed objects model component210, a fault component211, and a configuration component212. Each of these are described below.

The discovery component209retrieves, processes, and stores inventory information about network entities213. Network entities213are components of network elements204, such as, for example, network cards, ports, channels, or interfaces.

The managed objects model component210synchs the attributes of the network entities213in the cache with the attributes stored in the database203. The attributes of the network entities213are cached in the managed objects model component210as managed objects.

The fault component211receives and processes traps214sent by SNMP agents216that indicate changes at the network elements204. The fault component211translates the traps214into alarms or events. The fault component211also stores the event or alarm in the database203if needed.

The configuration component212services requests from the client201to configure and provision network entities213by constructing and submitting requests to the COMM layer215.

The COMM layer215submits the requests constructed by the configuration component212as SNMP requests217to the appropriate network element's SNMP agent216. The COMM layer215, however, could also communicate with network element agents using other protocols such as FTP or SFTP, and the use of an example embodiment of the present invention is not limited to only using SNMP to communicate with network elements204.

Each network element204A,204B, and204C includes an SNMP agent216. The SNMP agent216is a network management software module that resides at a network element and has local knowledge of management information. The SNMP agent216translates local management information into a form that is compatible for use by the network management system160. The SNMP agent216can also receive management information, such as SNMP requests217, from the COMM layer215.

The SNMP requests217can include requests such as setting an attribute for a network entity213or getting local management information from the network element204. After performing the SNMP request217, the SNMP agent216sends a response218to the COMM layer215. A typical response218could include management information requested by the network management system160or a confirmation that a network entity213was successfully configured by an SNMP request217.

A response218indicating that a network entity213was successfully configured is handled by the configuration module212after the response is received by the COMM layer215. The message broker220then sends a confirmation225to the component, included in the client201, that sent the message224. In this example, the message broker220would send a confirmation225to the template handler207that the network entity213was successfully configured because the template handler207sent the message224.

The client201communicates with the server202through the request gateway (RG) layer219, message broker220, and indication broker221. The communication protocol between the client201and the server202could be, for example, Java RMI.

The RG layer219composes a list of application programming interfaces (APIs) for the client201to retrieve data from the database203. The client201retrieves data using a get request222to the RG layer219, and the RG layer219returns a result223to the client201.

The message broker220processes client messages224for such functions as adding, deleting or modifying network entities213. The message broker220also sends confirmations225to whichever of the components, the topology component206, template handler207, or services component208, that sends the message224, confirming that a particular client message224has been successfully performed.

The indication broker221forwards indications226to the client201that may include indications of changes at the network elements204. Network changes are indicated from network elements204with traps214. When the fault component211receives a trap214, it determines whether the trap214corresponds to an event or an alarm and updates the database203accordingly. Once the database203has been updated, an indication226is sent to a subscribing client201by the indication broker221.

The client201is connected to a display unit227for displaying the graphical user interface205. The client201is also connected to a keyboard228and a mouse229to allow the administrator to input information to the client201.

A flowchart illustrating an apply operation of an example embodiment of the present invention is shown inFIGS. 3A,3B, and3C. The apply operation can be initiated by an administrator in block S301, for example, by the administrator selecting an apply button in the graphical user interface205with the mouse229.

After the administrator initiates the apply operation, the template handler207checks in block S302whether an apply operation for the template being applied is already in-progress. If the template is already in-progress, the administrator is notified that the template is in-progress at block S303and the apply operation ends at block S325.

If the template is not already in-progress, the template handler207updates the status of the template to “In-Progress” in block S304. This status can be shown in various template status fields as further discussed in the following example embodiments of a graphical user interface. The status fields could either show, for example, “In-Progress” or “Ready” in accordance with block S304.

After block S304, the template handler207proceeds to block S305to display a progress dialog for monitoring the apply operation. The progress dialog can display, for example, notification of stages throughout the apply operation and the success or failure of sent configuration requests.

After displaying the progress dialog, the template handler207then progresses in block S306to a preparation stage for the apply operation. The template handler207in block S307first compiles a list of entities selected by the administrator in the graphical user interface205.

If the list of entities to apply is empty, the template handler207proceeds to block S313to start the apply operation stage. If the list of entities to apply is not empty, the template handler207proceeds to block S309and retrieves the attributes of the first network entity on the list of entities to apply from the database203via the RG layer219. The template handler207then compares the attributes of the first network entity with the template attributes configured in the graphical user interface205. This comparison can check the configuration entered by the administrator to ensure that the first network entity213can accept the template attributes.

If the template handler207determines in block S310that the template attributes are permissible based upon the comparison in block S309, the template handler207proceeds to block S311. If the template attributes are not permissible, the template handler207skips the first selected entity and proceeds to validate the next selected network entity in block S309if the template handler207determines in block S312that there are more selected entities in the list of entities to apply.

Once a template is determined to be permissible for application to a network entity213, the template handler207in block S311constructs a request for transmission and sends it to the message broker220as a message224. The request in this example would include all of the template attributes for application to a selected network entity213.

When the template handler207has either constructed a request or has determined that the template is not permissible for each selected entity on the list of entities to apply, the template handler207proceeds to the start apply operation stage in block S313.

In block S314, the template handler207collects the requests constructed in block S311into a request list and proceeds to block S315. If the request list is determined to be empty in block S315, the template handler207proceeds to block S324.

If the request list is not empty, the template handler207in block S316sends the first request as a message224to the message broker220and marks the request as sent. The template handler207then proceeds to block S317and updates an operation log and may also update the progress dialog displayed in block S305.

After updating the status of the sent request, the template handler207in block S318determines whether there are more requests to send from the request list. If there are more requests to send, the template handler207returns to block S316. If there are no more requests left, the template handler207proceeds to block S319to wait for a confirmation225received from the message broker220corresponding to a sent request.

When a confirmation225corresponding to a sent request is received in block S320, the template handler207proceeds to block S321to mark the request confirmed. In block S322, the template handler207then updates the operation log and may also update the progress dialog displayed in block S305.

The template handler207then proceeds to block S323and determines whether there are confirmations225corresponding to sent requests that are still left to be received. If so, the template handler207returns to block S319to wait for the remaining confirmations225.

If there are no more confirmations225left to be received, the template handler207updates the template status to “Ready” in block S324. The template handler207then proceeds to block S325ending the apply operation. After the apply operation ends, the administrator may then copy or save the operation log.

FIG. 4shows the blocks performed by an administrator in configuring a template and applying template attributes to network entities213using example embodiments of the present invention. The blocks inFIG. 4include creating a template in block S400; deciding whether to revise the template in block S401, modifying the template content in block S402, selecting network entities213for application of the template attributes in block S402, saving the template in block S404, starting the apply operation in block S405, deciding whether to abort the apply operation in block S406, viewing the apply operation output in block S407, determining whether the apply operation was successful in block S408, and saving an operation log before exiting in block S409. Each block is described in further detail in the following discussion of example embodiments of a graphical user interface as shown inFIG. 5AthroughFIG. 9.

FIG. 5Ashows a network management system window that enables an administrator to launch the template summary500. To open the template summary500, the administrator left-clicks with the mouse229the administration501on the menu bar. The administrator then selects network503from the administration pull-down menu502. Lastly, the administrator selects template505from the network menu504, launching the template summary500.

FIG. 5Bis an example of one embodiment of the present invention's graphical user interface205as displayed at the display unit227. The template summary500allows an administrator to manage templates and has six columns that are dynamically updated by the template handler207. Columns514through519provide examples of template information including a template name column514, template type column515, access mode column516, status column517, owner column518, and description column519.

The following process corresponds to creating a template in block S400ofFIG. 4. To create a new template from the template summary500, an administrator first brings up a template management menu507by right-clicking with the mouse229in the template summary500. The administrator then selects add508from the template management menu507to create a new template from a list of saved template types509. Each template type509corresponds to a type of network entity213and may include default settings for a particular type of network entity213. The list of template types509in the present example embodiment is not exhaustive and can be expanded to accommodate additional types of network entities213.

The template types509also correspond to template objects stored in the database203. The template objects stored in the database203are templates created by the administrator.

The template management menu507also allows an administrator to configure a saved template by selecting a template row510and selecting modify511, or by double-clicking with the mouse229on a template row510. When a template row510is selected or modified, the template handler207sends a get request222to the RG layer219in order to retrieve a saved template object corresponding to the entity row510selected by the administrator. The server202then retrieves the associated saved template object from the database203and sends the template object as a result223to the client201so that the template handler207can form and display the saved template. This saved template is already populated with saved template attributes.

An administrator may also delete a given template row510from the template summary500by selecting the template row510and then selecting delete512on the template management menu507. The template handler207will then remove the template row510from the template summary500. The template handler may also construct a message224that is sent to the message broker220instructing the server202to delete a saved template object from the database203. After the saved template object has been deleted from the database203, the message broker then sends a confirmation225to the client201and the template handler207removes the corresponding template row510from the template summary500.

Table 1 lists example template object interfaces that can be implemented with JAVA software code in network management system160. The template handler207can use template object interfaces, such as those listed in Table 1, to add, delete, retrieve, or modify template objects in the messages224or get requests222described above.

The example of template600inFIG. 6allows an administrator to configure template attributes604. The following description corresponds to the template configuration blocks S401, S402, S403, and S404inFIG. 4.

InFIG. 6, an administrator enters a template name in the name field601and a template description in the description field602. The administrator also enters other general template content such as whether access to the template is restricted in the access mode field605. Other general template content also includes an owner field606and a status field603. The owner field606indicates the administrator who created the template and the status field603indicates whether the template600is in the process of being applied to network entities213. The administrator also selects an apply mode607that indicates whether a particular template should replace attributes or append to attributes already configured at network entities213. The apply mode607varies with different template types509.

The template600also includes a detail panel608that allows the administrator to configure template attributes604. After setting template attributes604in the detail panel608, the administrator can save the configured template to the database203by selecting the save button609. This corresponds to saving a template in block S404ofFIG. 4.

After the administrator selects the save button609, the template handler207constructs a template object from the template content. The template object is then sent as a message224to the message broker220. The server202then saves the template object in the database203and returns a confirmation225via the message broker220that the template object was saved. The template handler207then adds a template row510corresponding to the saved template.

Template items correspond to template content such as template attributes604that are stored as part of a template object. When modifying only part of a previously saved template, the template handler constructs template items corresponding to the modified template content rather than constructing an entire template object as described above. The template items are then sent as a message224to the message broker220so that the server202can overwrite the modified template items in the database203.

After a template is saved, the detail panel608can be refreshed with template items from the saved template object stored in the database203by selecting the refresh button610. The template handler207refreshes template content by sending a get request222to the RG layer219and the server202then retrieves the associated saved template items from the database203. The RG layer219then sends the template items to the client201and the template handler207then replaces displayed template content with template content from the retrieved template items. However, not all template content may be refreshed. Some template content such as a list of selected entities, as discussed in reference to the entity rows702ofFIG. 7, may not be refreshed.

The template600also includes a modification history field611that indicates when the template was last modified and which administrator last modified the template. The modification history field is also shown inFIG. 7as field707.

Table 2 lists example interfaces for template items that can be implemented with JAVA software code in network management system160. The template handler207can use template item interfaces, such as those listed in Table 2, to add, delete, retrieve, or modify template items in the messages224or get requests222described above.

FIG. 7shows the select panel700that is accessed in this example embodiment by selecting the select interface tab612inFIG. 6. The select panel700allows the administrator to select network entities213for applying the template attributes604. The following description corresponds to selecting entities to apply in block S403ofFIG. 4.

The administrator selects the add button701to pick a network entity213for application. A select entity dialog800as shown inFIG. 8is brought up by the template handler207which retrieves a list of network entities213from the database203via the RG layer219. The list of network entities is filtered based on the template type509selected by the administrator. The administrator then selects network entities213for application of the template attributes604from an entity list801in the select entity dialog800. After the administrator selects network entities213from the entity list801, the administrator selects the OK button802and the select panel700is populated with the entity rows702corresponding to network entities213selected from the entity list801. The administrator can continue to add entity rows702to the select panel700in the same fashion or may delete an entity row702by selecting the entity row702and selecting the delete button703.

The entity rows702comprise the list of entities to apply referred to in block S307ofFIG. 3. The list of entities to apply in this example embodiment, however, would not include entity rows702with an apply status705of “Successful.”

The apply status705indicates the success of previous apply operations of the template to particular network entities213. Once a template has been modified, the apply status705of the entity rows702are changed to “None” since the new modifications have not been applied. Similarly, when a new entity row702is added to the select panel700of an existing template, its apply status is also “None.” After an apply operation, as discussed in reference toFIG. 3, only network entities213corresponding to entity rows702with apply status705of “None,” “Partial,” or “Failed” will be affected by a subsequent application using the same unmodified template. During the apply operation, the apply status705can be updated with each confirmation225as discussed in reference to block S322ofFIG. 3. The select panel700also includes an entity status summary704that indicates the overall apply status705for all of the entity rows702.

Once the select panel700is populated with at least one entity row702, the administrator may begin the apply operation, as shown in detail inFIG. 3, by selecting the apply button706. The following description corresponds to application blocks S405and S406, and application monitoring blocks S407, S408, and S409ofFIG. 4.

After the administrator selects the apply button706, the progress dialog900is brought up by the template handler207. This example of a progress dialog900includes an operation log901and a progress bar902.

The top half of the operation log901displays general template information903about the template being applied such as its name, type, owner, apply mode, and description. The top half of the operation log901also displays configuration information904indicating the template attributes604being applied to network entities213during the apply operation.

The bottom half of the operation log901displays status information including request status905and configuration status906of the apply operation.

During the apply operation, the administrator may select the cancel button907in the progress dialog900to stop the application of template attributes604to the selected network entities213. This block corresponds to aborting the apply operation in block S406ofFIG. 4.

If the administrator does not select the cancel button907, the apply operation continues until it reaches block S325inFIG. 3. The graphical user interface then asks the administrator if they want to copy or save the operation log901. After saving the operation log, for example as a text file at the client201, the template handler207returns the graphical user interface205to the template summary500.

FIG. 10is a logical diagram of modules in accordance with an example embodiment of the present invention. The modules may be of a data processing system, which, according to an example embodiment, can form individual ones of template handler207, network management system160, and/or any other type of a network device supporting a network management protocol (e.g., SNMP). The modules may be implemented using hardcoded computational modules or other types of circuitry, or a combination of software and circuitry modules.

Communication interface module1000controls client201by processing interface commands. Interface commands may be, for example, commands to send data, commands to communicatively couple with another device, or any other suitable type of interface command.

Storage module1020stores and retrieves data (e.g., attributes of network entities, events or alarms, and template objects) in response to requests from processing module1010.

In the case of at least the template handler207, processing module1010performs the procedures as described above in connection withFIGS. 3A,3B, and3C for the template handler207. Processing module1010checks whether an apply operation for the template being applied is already in-progress. If a template in not already in-progress, processing module1010updates the template status to in-progress. After updating the template status, processing module1010displays a progress dialog for monitoring the apply operation. After displaying the progress dialog, the processing module1010prepares for the apply operation. The processing module1010starts by compiling a list of entities received from the communication interface module1000. If the list of entities to apply is empty, the processing module1010starts the apply operation, as described above inFIG. 3A.

If the list of entities to apply is not empty, the processing module1010retrieves the first or next entity and validates the entity against template content. If the processing module1010finds that the entity is not valid, the processing module1010proceeds to check the validity of the next entity. Once an entity is found to be valid, the processing module1010constructs a request for transmission and sends it to communication interface module1000, as described above inFIG. 3B.

Once the processing module1010has either constructed a request or has determined that the each selected entity on the list of entities is not valid, the processing module1010collects the requests constructed into a request list. If the request list is not empty, the processing module1010retrieves and sends the first request and marks the request sent. The processing module1010then updates an operation log and the progress dialog. After updating the status of the sent request, the processing module1010determines whether there are more requests to send. If there are no more requests left, the processing module1010waits for a confirmation from the communication interface module1000corresponding to the sent request. When a confirmation is received, the processing module1010marks the request confirmed and updates the operation log and progress dialog. If there are no more confirmations to be received, processing module1010ends the operation, as described above inFIG. 3C.

In the case of at least the network management system160, processing module1010follows direction from an administrator and performs the procedures as described above in connection withFIG. 4for the network management system. At the direction of an administrator, the processing module1010creates a template and either revises the template or does not revise the template. If the administrator chooses to revise the template, the processing module1010modifies the template content and selects entities to apply. If the administrator then chooses to save the template, the processing module1010starts the apply operation. The administrator may choose to cancel the apply operation, and if so, the processing module1010aborts the apply operation, saves the operation log, and exits. If the administrator does not cancel the operation, the processing module1010views the operation output and determines whether the apply operation is successful. If the apply operation was successful, the processing module1010saves the operation log and exits, as described above inFIG. 4.

In addition, it should be understood that the figures illustrated in the attachments, which highlight the functionality and advantages of the present invention, are presented for example purposes only. The architecture of the present invention is sufficiently flexible and configurable, such that it may be utilized (and navigated) in ways other than that shown in the accompanying figures.