Patent Publication Number: US-6212674-B1

Title: Graphic control process for controlling operations in a network management system

Description:
TECHNICAL FIELD 
     The present invention concerns a method and a control device for graphically controlling operations in a network management system. 
     BACKGROUND OF THE INVENTION 
     In a network management system, operators design programs to create operations for controlling network elements. Such an operation is a sequence of application requests, of control functions, of assignments etc. in the network management system. To create the operations the operators use special script languages which enable an inexperienced programmer to define complex management tasks in a simple and understandable manner. Such script languages are proprietary and converting the statements of the script language into statements of a more comfortable higher programming language for execution of the management tasks requires the development of a special interpreter. 
     It is known from “Do it yourself TMN applications by visual programming methods” by C. Schmidt et al, International Switching Symposium April 1995, Volume 2, B 8.2, that the statements in the script language can be supported by optical programming techniques, such as by means of hypertext structures. In the known programming manner of the above article, predefined blocks (templates) are built and correspond to a statement in the script language. The blocks are displayed in hypertext on a screen and an operator can use a mouse to connect the blocks to each other in the desired manner. The operations for controlling the network elements are constructed in this way. The proposed optical programming technique only provides the operator with an indication of the operation by means of text and graphics. Processing the information of the individual operation steps, i.e. loops, conditions, etc. for linking the operation steps, must be created by the operator himself with the script language. 
     SUMMARY OF THE INVENTION 
     It is the object of the present invention to enable a simple control of network elements by an operator in a network management system. This object is achieved by a method for graphically controlling a process with several operation steps in a network management system, wherein command templates are used to perform the respective operation steps, and control instructions to link the command templates; wherein the control instructions are carried out to build a program flow chart of the process on a display device; wherein those operation steps which can be performed on the basis of a specified process situation are identified; wherein the input for selecting one of the identified operation steps is received, and wherein the specific command template of the selected operation step is subsequently executed. 
     Because of the invention, it is advantageously no longer necessary for the operator to have knowledge of the linkage of the different operation steps to actually perform the operation. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Advantageous embodiments of the invention can be found in the dependent claims. 
     The invention is described for clarification in the following by means of embodiments and FIG. 1 to  3 , wherein: 
     FIG. 1 is a flow diagram of a first embodiment of the invention; 
     FIG. 2 a-b  is a second embodiment of the invention, and 
     FIG. 3 a-d  is a third embodiment of the invention. 
    
    
     BEST MODE FOR CARRYING OUT THE INVENTION 
     The present invention is used in a network management system of a telecommunications network. A network management central therein controls network elements of the telecommunications network. Such network elements are for example switching centers, data bases, access networks, etc. In that case operators create operations for controlling the network elements. Such an operation can be for example setting up a connection line between two switching centers, the installing, changing or deleting a subscriber in a switching center, etc. Such a process is made up of several operation steps. The operator describes the operations with a program in a programming language that includes command templates for performing the respective operation steps, and control instructions for linking the command blocks. In that case the command blocks and the control instructions are advantageously written in the same programming language. A convenient programming language for the present invention is the programming language JAVA. The programming language which is used must have a simply constructed syntax with few data types, so that even an operator with little programming experience is able to formulate instructions in this language. The programming language should have a modular structure and the modules in particular should be dynamically insertable during the program flow. Such modules are independent of each other and each one performs a partial task, such as for example for the graphic control, the man-machine communication, to link data base, etc. It is an advantage that it is possible to insert modules from third party manufacturers. When JAVA is used as the programming language, interpreters are already available. Such a JAVA interpreter can be for example a JAVA-capable worldwide web browser, such as e.g. Netscape 2.0, or a JAVA interpreter such as Applet-Viewer. 
     FIG. 1 shows the flow diagram of the first embodiment of the invention. The process of the invention begins in a step 1. In a step 2 the graphic display of the operation is built up in the form of a program flow chart on a screen of the network management central. To that end the existing control instructions in the program are carried out to link the command templates. During this run of the program the command templates for performing the operation steps are skipped. After the program flow chart is established, a check of whether the program has ended is carried out in a step 3. If this is not the case, the process branches back again to step 2. If this is the case, a step 4 follows in which all the operation steps that can be performed on the basis of the momentary process situation are identified. Such an identification can be for example a color change in the graphic display of the respective performable operation steps in the program flow chart. But it is also possible to use another identification of the performable operation steps. Based on this identification of the performable operation steps, the operator is immediately aware of the control possibilities that exist for the operation, and which operation step could be selected as the next one. In a step 5 the process of the invention waits for the operator to make an operation move. Such a move could be for example a mouse click in the graphic display of the selected operation step in the program flow chart. Subsequently the program is executed again. In that case the commands for building the graphic display of the individual operation steps for the program flow chart are skipped. A check is performed in step 6 as to whether the next command template in the program execution is the command template for performing the selected operation step. If this is the case, this command template and the pertinent operation step selected by the operator is performed in a step 7. If the next command template does not belong to the selected operation step, this command template is skipped in a step 8. A check is performed in step 9 as to whether the end of the program has been reached. If this is not the case, the process of the invention branches back to step 6 in order to execute the program and continue with the checking of the next command template. If it is determined in a step 9 that the end of the program has been reached, a check is performed in step 10 as to whether the last operation step of the process has been reached. If this is not the case, the process of the invention branches back to step 4 and identifies all the operation steps that can be selected by the operator, based on the new process situation which took place after step 5, whereby the command template was selected, was carried out. Steps 5 to 10 are then repeated as described above. If it is determined in step 10 that the last step of the operation has been reached, the process of the invention ends in step 11. 
     FIG. 2 a  and  b  illustrate the second embodiment of the invention. FIG. 2 a  shows an excerpt from a possible program for establishing an operation. FIG. 2 b  shows a program flow chart for this operation. The program excerpt in FIG. 2 a  is written in the programming language JAVA. A control instruction for building a graphic display of a first operation step is defined in line  100 . Box is an object class combining functions which are able to process a predetermined data structure. In that case box.begin is such a function of the object class Box in the programming language JAVA, whereby the graphic display of the first operation step is done in the form of a box as shown in a box  20  of FIG. 2 b . Zero is used to identify the command template assigned to this operation step in the internal display. The indication “step 1” means that the text “step 1” is to be written into the box  20  of FIG. 2 b.  The indication “step 1” represents a designation of the first operation step for display in the program flow chart of FIG. 2 a . The control instruction in line  100  is followed by a command template  1  for performing the first operation step. This command template is not illustrated in detail in FIG. 2 a . A control instruction for building a graphic display of a second operation step in the form of a box  21  according to FIG. 2 b  is defined in line  200 . The number  1  is used to internally identify a command template  2  for performing the second operation step. “Step 2” is a designation to be written into the box  21  of FIG. 2 b  to graphically display the second opetation step in theporgram flow chart. “Step 2” is a designation of this second operation step. The command template  2  for performing the second operation step follows next in FIG. 2 a . FIG. 2 does not illustrate this command template  2  in detail. 
     The operator uses a two-step execution mechanism of the program to carry out the invention. in the present embodiment the function box.begin is used for both the display of the respective operation step in the program flow chart, as well as for the execution of the command template of the respective operation step. The response of the function box.begin depends on the value of a global variable which the function box.begin accesses. Such a global variable can be used for all the functions, in contrast to a local variable the use of which is limited to one function. 
     In the first execution of the program of FIG. 2 a  this global variable, which is not illustrated in FIG. 2 a , has a first value A. In this case the function box.begin builds the box  20  of FIG. 2 b  in accordance with the control instruction in line  100 . This box  20  is internally identified by zero and is designated as “step 1”. The command template  1  assigned to the first operation step is skipped. The same applies respectively to the control instruction in line  200  of FIG. 2 a . After this first execution of the program is completed, a program flow chart of FIG. 2 b  is displayed on the screen of the network management central. Subsequently the program evaluates current data of the network elements in order to determine the current process situation. The performable operation step in the program flow chart is now identified in accordance with this process situation, for example by a color change, and the program awaits an operation move by the operator for selecting the performable operation step. In the present embodiment, the first operation step is the performable operation step. 
     In the second execution of the program, the global variable has a second value B. As soon as the operator selects the first operation step, for example by clicking the mouse on the box  20 , the control instruction in line  100  is carried out so that it again accesses the global variable and executes the command template  1  assigned to the first operation step. In the second operation step, its control instruction for building the graphic display of the second operation step and for executing the command template  2  are skipped. Subsequently the program again evaluates the current data of the network elements after performing the first operation step, in order to determine the current process situation. The now performable operation step, for example the second operation step, is identified and a new input is awaited through an operation move to select the performable operation step. 
     FIG. 3 a  to  3   d  show a third embodiment of the invention. FIG. 3 a  and  3   b  depict a program for defining a process. FIG. 3 d  shows the pertinent program flow chart of this process, and FIG. 3 c  a program for executing the process. The programs are written in the programming language JAVA. 
     In the program for defining the process of FIG. 3 a ,  3   b , a library with the name ‘scman’ is loaded in line  1 . This library contains different object classes. One of these object classes is the class scenario. The class scenario includes functions for the establishment of operations that are able to process the same data structures. In lines  3  and  7  the function ‘perform’ is added to the functions of the class ‘scenario’. The function ‘perform’ establishes the present process. The process contains seven operation steps which are interlinked due to the control instructions in the program for defining the process of FIG. 3 a ,  3   b . A first task  1  is defined in a first operation step. This first task is established in lines  9  to  14  of FIG. 3 a  and is represented as step  2000  in FIG. 3 d  in the form of a box in the program flow chart. A first decision  1  follows as the second operation step, which is established in lines  16  to  20  in FIG. 3 a  and is represented in step  3000  of FIG. 3 d . The second operation step examines a condition. If this condition is fulfilled, a third operation step follows in the form of a second decision  2 , which is established in lines  24  to  28  of FIG. 3 a  and is represented as step  4000  in FIG. 3 d.  This second decision examines a further condition. If this further condition is fulfilled, a fourth operation step follows in the form of a second task  2 , which is established in lines  32  to  35  of FIG. 3 a  and is represented as step  5000  in FIG. 3 d . If the further condition which is examined during the second decision in step  4000  is not fulfilled, the fourth operation step is skipped. This is followed by a fifth operation step in the form of a third task  3 , which is established in lines  39  to  42  of FIG. 3 a  and is represented as step  6000  in FIG. 3 d . The process ends if a third task  3  was carried out. This is represented in a step  9000  in FIG. 3 d . If the condition that was examined during the first decision in the second operation step is not fulfilled, after the second operation step a branch is extended to a sixth operation step. This sixth operation step is a third decision  3  which is established in lines  46  to  50  and is represented as a step  7000  in FIG. 3 d . Another condition is examined in this sixth operation step. If this other condition is fulfilled, a seventh operation step follows in the form of a fourth task  4 . This fourth task  4  is established in lines  51  to  55  and is represented as its step  8000  in FIG. 3 d . After the seventh operation step the process branches again to the sixth operation step by means of the third decision. The process ends if the other condition examined in the sixth operation step is not fulfilled. This is represented in the step  9000  of FIG. 3 d.    
     FIG. 3 c  depicts a part of a program for executing the process. By means of a function ‘parse’, in line  70  of FIG. 3 c , a first execution of the program for building the program flow chart of FIG. 3 d  is started. The graphic display of the start of step  1000  of FIG. 3 d  is produced in the program flow chart by means of the command ‘appendOperator’ in line  100 . In line  102  an internal counter with the designation ‘runningNumber’ is set to 1. In line  103  the value ‘true’ is allocated to a global variable ‘scanning’ . This global variable ‘scanning’ indicates whether the graphic display of the respective operation step is to be produced in the program flow chart during the execution of the program, based on the control instruction in the program for defining the process of FIG. 3 a ,  3   b . The graphic display is produced if the global variable ‘scanning’ has the value ‘true’; the graphic display is not produced if the global variable ‘scanning’ has the value ‘false’, and a decision is made about the execution of the assigned command template. In line  104  the function ‘perform’ is called up whereby the process of FIG. 3 a ,  3   b  is defined. The command BLOCK is called up for the first operation step in line  9  of FIG. 3 a . This command BLOCK is defined in lines  300  to  310  of FIG. 3 c . In lines  302  to  307  the response of the command BLOCK is established in the form of a condition. In line  302  the value of the variable ‘scanning’ is checked. The global variable ‘scanning’ has the value ‘true’ based on the determination in line  103  of FIG. 3 c . The condition in line  302  is therefore fulfilled and the commands in lines  303  and  304  are then executed. By means of line  203  and the command ‘appendOperator’, a new operation step in the form of the box  2000  with the label of task  1  is entered into the program flow chart of FIG. 3 d . A number for the internal display is assigned to this first operation step. In the present case this number corresponds to the value of the internal counter ‘runningNumber’. Since according to line  102  the value of the ‘runningNumber’ is 1, the number of the first operation step for the internal display is 1. In line  304  the value ‘false’ is assigned to a variable ‘execute’. The command in line  307  is not executed since the condition according to line  302  has been fulfilled, because the global variable ‘scanning’ has the value ‘true’. In accordance with line  309  of FIG. 3 c , the value of the internal counter ‘runningNumber’ is subsequently increased by 1 to the value of 2. The program then jumps again to line  9  in FIG. 3 a  and checks the value of the variable ‘execute’. Since the variable ‘execute’ was set to “false” in line  304  of FIG. 3 c , the condition in line  9  of FIG. 3 a  is not fulfilled and the commands in lines  10  to  14  of FIG. 3 a  are skipped. 
     In line  16  of FIG. 3 a  the function  1 F is called up. This function  1 F is defined in lines  400  to  410  of FIG. 3 c  and corresponds broadly to the definition BLOCK in lines  300  to  310  of FIG. 3 c , except that instead of the box for the graphic display of a task in the program flow chart of FIG. 3 d , a rhomboid-shaped graphic display is provided for a decision in the program flow chart. The value of the global variable ‘scanning’ is checked in accordance with line  402 . Since this value is ‘true’ according to the determination in line  103 , the condition of line  402  is fulfilled and the second operation step  3000  is entered into the program flow chart of FIG. 3 d  by means of the command ‘appendOperator’. The internal number 2, which corresponds to the current value of the internal counter ‘runningNumber’, is allocated to the second operation step  3000 . Then the value of the variable ‘execute’ is set to ‘false’ in line  404 , and the command in line  407  is subsequently skipped since the condition in line  402  has been fulfilled. Then the value of the internal counter ‘runningNumber’ is increased by 1 to 3 in line  409 . Subsequently in line  16  of FIG. 3 a  the value of the variable ‘execute’ is checked. Since the variable ‘execute’ has the value ‘false’, the condition is not fulfilled and the commands in lines  18  and  19  of FIG. 3 a  are skipped. Accordingly the third, fourth and fifth operation steps are shown as graphic displays in the program flow chart according to FIG. 3 d  and the instructions in lines  22  to  42  of FIG. 3 a.  In line  46  of FIG. 3 b  a WHILE function is called up. This WHILE function is established in lines  500  to  510  of FIG. 3 c . The establishment of the WHILE function corresponds to that of the BLOCK and IF function. As with the IF function, here a rhomboid-shaped graphic display is built in the program flow chart of FIG. 3 d , in this case for the sixth operation step. In contrast to the IF function, the WHILE function causes the process to branch back to this sixth operation step after the command ENDWHILE in line  57  of FIG. 3 b  is recognized. After the completion of this first execution of the ‘perform’ function, step  106  of FIG. 3 c  builds a graphic display for the end of the process in the program flow chart by means of the command ‘appendOperator’. This graphic display is given the designation ‘stop’. 
     Subsequently the instructions for the evaluation of the data of the network management system, which are not illustrated in FIG. 3 c , are carried out to determine a now available current process situation. In accordance with this evaluation the process of the invention marks those operation steps which can be performed on the basis of the momentary process situation. As already mentioned, such a marking can be a color change in the performable operation step of the program flow chart. The program then waits for an operation move to select one of the performable operation steps. If such an operation move is received in the form of an input, for example a mouse click, the second execution of the program is started in line  200  of FIG. 3 c . In line  201  the internal counter ‘runningNumber’ is again set to 1. In line  202  the value of the variable ‘number’ is allocated to the variable ‘numberToExecute’. This variable ‘number’ has the value of the number of the internal display of the respective operation step that was selected with the operation move. For example if the operation move selected the first operation step  2000 , the variable ‘numberToExecute’ now receives the value of 1, which corresponds to the number of the internal display of the first operation step. Subsequently in line  204  the value ‘false’ is allocated to the global variable ‘scanning’. This means that when the function ‘perform’ is called up in line  205 , the control instructions for building the program flow chart are skipped. When the function ‘perform’ is called up in line  205 , the command BLOCK is again called up in accordance with line  9  in FIG. 3 a.  As already described earlier, this command BLOCK is determined in lines  300  to  310  of FIG. 3 c . The value of the global variable ‘scanning’ is then checked in line  302 . Since ‘scanning’ was set to ‘false’ in line  204 , the condition in line  302  is not fulfilled and the commands in lines  303  and  304  are skipped. The command in line  307  of FIG. 3 c  is now executed. Line  307  either allocates the value ‘true’ or the value ‘false’ to the variable ‘execute’. This depends on whether the momentary value of the internal counter ‘runningNumber’ is identical to the value of the variable ‘numberToExecute’. If the value of the internal counter ‘runningNumber’ is identical to the value of the variable ‘numberToExecute’, the variable ‘execute’ receives the value ‘true’. If the values are not the same, the value ‘false’ is allocated to the variable ‘execute’. Since in line  202  the value 1 was allocated to the internal counter ‘runningNumber’, and in line  203  the number 1 of the internal display of the selected first operation step was allocated to the variable ‘numberToExecute’, the variable ‘execute’ now receives the value ‘true’. Subsequently in line  309  the internal counter ‘runningNumber’ is increased by 1 to 2. Then in line  9  of FIG. 3 a  the value of the variable ‘execute’, is checked. The value ‘true’ was allocated to the variable ‘execute’, the condition in line  9  of FIG. 3 a  is fulfilled and the instructions in lines  11  to  13  of FIG. 3 a  are carried out. This means that the user-specific variables ‘a’ and ‘b’ are respectively allocated the value of 3, and the text ‘performing task  1 ’ is displayed on the operator&#39;s screen in accordance with the instruction in line  13 . In this case the instructions in lines  12  to  14  of FIG. 3 a  correspond to the command template that is assigned to the first operation step. This command template is only executed if in response to the inquiry in line  9  in FIG. 3 a  the variable ‘execute’ has the value ‘true’. However as provided in line  307  of FIG. 3 c , this is only the case if the first operation step was selected through the operation move. 
     Subsequently in line  16  of FIG. 3 a  the function IF is called up again. As already mentioned earlier, this function IF is established in lines  400  to  410  of FIG. 3 c . The in line  402  the value of the global variable ‘scanning’ is checked. Since the global variable ‘scanning’ has the value ‘false’ as established in line  204 , the commands in lines  403  and  404  are skipped and the command in line  407  is executed. The value of the internal counter ‘runningNumber’ now is 2 and does not coincide with the value of the variable ‘numberToExecute’, which is 1 due to the selection of the first operation step. The value ‘false’ is therefore allocated to the variable ‘execute’. Subsequently in line  409  the internal counter ‘runningNumber’ is increased by 1 to 3. In line  16  of FIG. 3 a  the value of the variable ‘execute’ is checked again. Since its value is ‘false’, the condition is not fulfilled and the instructions in lines  18  and  19  are skipped. Since the second operation step  3000  was not selected through the operation move, the command template assigned to this second operation step in lines  18  and  19  of FIG. 3 a  is skipped. The same applies to the command templates of the other operation steps. 
     If the execution of the function ‘perform’ is completed, other operation steps are again marked on the basis of the changed current process situation and an operation move is awaited. If such an operation move is received because of the selection of a performable operation step, the function ‘perform’ is again executed as described earlier in lines  200  to  206  of FIG. 3 c . In that case the program processes all the operation steps defined by the function ‘perform’, but only executes the command template of the particular operation step that was selected through the operation move. The process of the invention ends after the last operation step has been performed. In the present case this is the performance of the fifth operation step with the third task  3 , or the nonfulfillment of the other condition according to the third decision  3  in the sixth operation step. 
     Thus a single command executes both the control instruction for building the graphic display of an operation step in the program flow chart, as well as the command template assigned to the respective operation step. In the present embodiment such commands are BLOCK, IF and WHILE. The response of these commands, i.e. either building the graphic display of the respective operation step or executing the designated command template, depends on the value of the global variable ‘scanning’. The execution of the command template additionally depends on the value of the variable ‘execute’.