Patent Publication Number: US-6041342-A

Title: Low traffic network management method using estimated process execution time for manager-agent synchronization

Description:
TITLE OF THE INVENTION 
     Low Traffic Network Management Method Using Estimated Process Execution Time for Manager-Agent Synchronization 
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates generally to the management of communication networks, and more specifically to synchronization of timing events between multiple management stations and a single agent station when the latter is sequentially executing processes requested by the management stations at the same time. 
     2. Description of the Related Art 
     In a communication network, SNMP (simple network management protocol) is the well known protocol for the management of the network elements, or agent stations such as hosts and routers under control of a management station, using attributes of management information base (MIB) in which management information of the network is stored. When the management station sequentially issues requests to an agent station to execute a number of processes, or &#34;tasks&#34;, the agent station executes them serially. Since the time taken to execute a process varies for a number of reasons, the management station should know, in some way or other, the end timing of the execution of each process. To this end, a mechanism known as &#34;synchronization&#34; is used between management and agent functions. 
     According to one prior art method, an MIB attribute is defined to indicate the end timing of the execution of a process. After sending a process execution message to an agent station, the requesting management station confirms that the requested process has been executed by repeatedly polling the agent station with a confirmation message. If the execution is still in progress, the agent station returns an &#34;in-progress&#34; message, and replies with the end-timing MIB attribute if the process has been executed at the moment a confirmation message is received. However, since the management station is required to repeatedly interrogate the agent station to determine the current status of the process being executed, the network has to bear the burden of carrying increased traffic between management stations and an agent station. 
     According to another prior art as disclosed in Japanese Laid-Open Patent Specification Hei-8-274784, the agent station uses an MIB &#34;trap&#34; attribute as an end timing indication. No polling messages are sent from the management station after an initial request message has been sent to the agent station. However, if the trap message is lost, the management station has no way of ascertaining the end timing of the requested process. 
     SUMMARY OP THE INVENTION 
     It is therefore an object of the present invention to provide a network management method that performs manager-agent synchronization with reduced traffic. 
     According to the present invention, a management method is provided for a communication network wherein a management station is connected to at least one agent station. A process execution request message is first transmitted from the management station to the agent station for requesting the agent station to execute a process. Responsive to the execution request message, the agent station estimates a length of time taken to execute the process and transmits a first reply message to the management station, indicating the estimated length of time, and subsequently estimates a length of time remaining to execute the process. The management station sets a timer according to the length of time contained in the first reply message and starts the timer. When the timer expires, the management station transmits a time request message to the agent station. Responsive to the time request message, the agent station transmits a second reply message indicating the estimated length of remaining time. The management station responds to the second reply message by determining that the requested process has been executed if the second reply message indicates that the remaining time is zero, or setting the timer according to the second reply message if the remaining time is nonzero, starting the timer, and determining that the requested process has been executed when the timer expires. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The present invention will be described in further detail with reference to the accompanying drawings, in which: 
     FIG. 1 is a block diagram of a communication network which operates on a management process according to the present invention; 
     FIG. 2 is a flowchart illustrating a manager process of the present invention; 
     FIG. 3 is a flowchart of a timer interrupt routine associated with the flowchart of FIG. 2; 
     FIG. 4 is a flowchart illustrating an agent process of the present invention; and 
     FIGS. 5A and 5B are sequence diagrams of the operations of a management station and an agent station. 
    
    
     DETAILED DESCRIPTION 
     Referring now to FIG. 1, there is shown a communication network of the present invention. The network is formed of a plurality of management stations 1 and a plurality of managed nodes, or agent stations 2, interconnected via a transmission medium 3. Agent stations 2 include a variety of network elements such as host computers, ATM multiplexers, PBXs, time-division multiplexers and routers. Each management station 1 includes a manager 6 which is connected to a processor 7 and a management information base (MIB) 8 in which management information of the network is stored. A timer 9 is connected to the manager 6. Manager 6 exchanges information with the agent stations via a line interface 10 connected to the transmission medium 3. Each agent station 2 includes an agent 11 connected to a processor 12 and a memory 13. Agent 11 exchanges information with the manager 6 via a line interface 14 connected to the transmission medium 3. 
     The operation of the manager 6 of each management station is illustrated in FIG. 2. At step 20, a flag F is initially set equal to 0. Manager constantly monitors the processor 7 at step 21. If the manager 6 initially receives a process execution request from the processor 7, it proceeds to step 22 to set the flag F to 1 and then to step 23 to send a process execution request message to an agent station (node) indicated by the processor to request the agent station to execute a given process. Flow proceeds to step 24 to check to see if a reply message is received from the agent node. If no reply message is returned within a predetermined interval, flow returns from step 24 to step 23 to retransmit the process request message. At step 25, the manager 6 sets the timer 9 according to time data contained in the reply message. This time data indicates an estimated length of time which will be taken by the agent 11 to execute the requested process, and starts the timer 9. 
     Flow proceeds to step 26 to determine whether the timer has expired. If so, the manager 6 proceeds to step 27 to send a time request message to the agent node (step 28) and waits for a reply message which contains time data indicating an estimated time remaining to execute the process. If no reply message is returned within a predetermined interval, flow returns from step 28 to step 27 to retransmit the rime request message to the agent station. 
     If the manager receives a reply message at step 28, it checks to see if the remaining time is zero or nonzero (step 29). If the remaining time is zero, it is determined that the whole process has been executed and flow returns to the starting point of the routine to reset the flag F to 0. Otherwise, flow proceeds to step 30 to set the timer 9 according to the nonzero remaining time data contained in the reply message and start the timer. When the timer 9 expires (step 31), the manager 6 determines that the process has been executed at the agent station and returns to the starting point of the routine. 
     A periodic intervals, the main routine is interrupted and a timer interrupt routine, shown in FIG. 3, is run. When flag F is 1 indicating that there is a process being executed (step 35) and there is also a subsequent request from the processor (step 36), flow proceeds to step 37 to return a reject indication to the processor, and then returns to the main routine. 
     The operation of the agent 11 of each managed node starts with step 40, as shown in FIG. 4, when it receives a process execution message from the manager 6. At step 41, the agent 11 estimates the amount of time which will be taken by the processor 12 to execute the requested process. Flow proceeds to step 42 to store the estimated time value into the memory 13, and commands the processor 12 to begin processing the requested process (step 43) and sends a reply to the manager 6, containing the estimated processing time (step 44). Flow then returns to the starting point of the routine. 
     When no request message is received from the manager 6, the agent 11 proceeds from step 40 to step 45 to determine if a time request message is received from the manager. Immediately following the transmission of the initial time data message, the agent 11 still has not received a time request message, so the decision at step 45 yields a negative answer. Flow proceeds to step 47 where the agent 11 inquires the processor 12 to determine the amount of remaining process and re-estimates the amount of time necessary to complete the execution of the remaining process (step 48). At step 49, the agent 11 updates the memory 13 with the estimated remaining time value and returns to the starting point of the routine. Steps 47 to 49 are executed at intervals as long as the agent 11 receives no request messages. As a result, the precision of the estimated time data increases as the processor 12 approaches the end of the task. 
     When the agent 11 receives a time request message from the manager 6 at step 45, flow proceeds to step 46 to read the updated time data from the memory 13 and proceeds to step 44 to send the retrieved time data to the manager 6. 
     A time sequence diagram of FIG. 5A illustrates an operation of the manager 6 and the agent 11 when the manager 6 sends a time request message immediately after the agent 11 has completed the requested task. Specifically, the manager initially sends a process execution message to the agent, requesting it to process a task. In response, the agent replies with an estimate amount of time taken to execute the task. The manager responds to the reply from the agent by setting the timer 9 according to the initial time value and starting it. When the timer expires, the manager sends a time request message to the agent (step 27). Because of the nature of estimation, the initial time value may not be precise. Thus, the manager is likely to transmit a time request message after the end of the process and the agent replies with a zero remaining time (step 28). With the remaining time being equal to zero, the manager determines that the requested task has been executed (step 29) and resets the flag to zero. 
     A time sequence diagram of FIG. 5B illustrates an operation of the manager 6 and the agent 11 when the manager 6 sends a time request message immediately before the agent 11 has completed the requested task. Specifically, the manager initially sends a process execution message to the agent, requesting it to process a task. In response, the agent replies with an estimated time taken to complete the task. The manager responds to this reply by setting the timer 9 according to the initial time value and starting it. When the timer expires before the agent completes the execution of the task the manager sends a time request message to the agent (step 27), which replies with a nonzero remaining time (step 28). The manager responds to this reply by setting the timer 9 according to the nonzero remaining time and restarting it (step 30). When the timer expires again (step 31), the manager knows that the execution of the process at the agent is completed and resets the flag to zero.