A CONTROLLER SYSTEM FOR MANAGING A DISTRIBUTED NETWORK

Abstract: A control system for controlling a distributed intelligent network, the system comprising a digital processor, input means for receiving input commands, analysis means for carrying out lexical and syntactical analysis on input commands to generate target code, means defining a syntax tree having a plurality of nodes which are traversed by a syntactically and semantically correct input command to generate target code, means for detecting an error occurring at one of said nodes, and means for generating an error lexeme distinct from the lexemes of the grammar of syntactically and semantically correct input commands but which is recognisable by said analysis means, means for appending said error lexeme to the current input command which generated the error situation, and means for feeding the combination of said current input command and said lexeme to the input means.

Description: A Controller System For Managing a Distributed Network The present invention concerns controller systems by means of which an operator can control or interrogate a complex system such as part of a telecommunications network. The control or interrogation of such a system will be referred to hereinafter as management of the system. The invention is particularly concerned with an interactive controller system which enables its operator to manage a system which exists in a distributed environment. Such a system can comprise a plurality of individual intelligent nodes each having a different interface. In order to control or interrogate the distributed system a user has to supply target code which is both lexically and syntactically correct and the generation of such code involves detailed knowledge of the structure of the system. A concern of the present invention is to provide a controller system which enables a user to manage a system which exists in a distributed environment and which is capable of handling error situations in a simple and effective manner. Accordingly, in accordance with a first aspect of the present invention there is provided a control system for controlling a distributed intelligent network, the system comprising a digital processor, input means for receiving input commands, analysis means for carrying out lexical and syntactical analysis on input commands to generate target code, means defining a syntax tree having a plurality of nodes which are traversed by a syntactically and semantically correct input command to generate target code, means for detecting an error occurring at one of said nodes, and means for generating an error lexeme distinct from the lexemes of the grammar of syntactically and semantically correct input commands but which is recognisable by said analysis means, means for appending said error lexeme to the current input command which generated the error situation, and means for feeding the combination of said current input command and said lexeme to the input means . In accordance with a second aspect there is provided a method of controlling a distributed intelligent network utilising a system comprising a digital processor having input means for receiving input commands and analysis means for carrying out lexical and syntactical analysis on input commands to generate target code, the method comprising defining a syntax tree having a plurality of nodes which are traversed by a syntactically and semantically correct input command to generate target code, detecting an error occurring at one of said nodes, and generating an error lexeme distinct from the lexemes of the grammar of syntactically and semantically correct input commands but which is recognisable by said analysis means , appending said error lexeme to the current input command which generated the error situation, and feeding the combination of said current input command and said lexeme to the input means . In order that the present invention may be more readily understood, an embodiment thereof will now be described by way of example and with reference to the accompanying drawings, in which: Figure 1 is an overview of a digital telecommunications network; Figure 2 is a diagram of part of the network of Figure 1 showing an additional intelligence platform; Figure 3 is a diagram illustrating a processor shown in Figure 2; Figure 4 is a diagram showing the inter-relationship between a control system in accordance with the present invention and the intelligence platform shown in Figure 2; Figure 5 is a diagram showing a syntax tree; Figure 6 shows a syntax tree with a feedback loop; Figure 7 is a flow chart showing one mode of operation of the syntax tree shown in Figure 6; Figure 8 is a second flow chart showing operation of the syntax tree of Figure 6 in accordance with the control system of Figure 4; Figures 9 and 10 are illustrations of a syntax tree incorporating error handling in accordance with the present invention; and Figure 11 is a flow diagram illustrating the operation of the syntax tree of Figure 9. Referring now to the accompanying drawings , the digital telecommunications network shown in Figure 1 comprises a plurality of digital main switching units (DMSU) interlinked by appropriate telecommunication lines 2. Each DMSU 1 is connected to a plurality of digital local exchanges (DLE) 3 which can in turn can be connected to individua] subscribers or local substations via appropriate links, which have not been shown. Associated with the DMSU's 1 are signal relay processing (SPR) nodes 5. Each SPR is connected to the DMSU's 1 by means of links 6. A DMSU 1 can be connected to more than one SPR 5. The network shown in Figure 1 is completed by the addition of network intelligence platforms (NIP) 10 of the kind shown in Figure 2 of the accompanying drawings . Each NIP 10 is, in this embodiment, associated with more than one SPR's. Referring now to Figure 2 , in the present embodiment each NIP 10 comprises a pair of front-end processors 11 and a pair of back-end processors 12 interconnected by an FDDI dual-ring 13. The numbers of front end and back end processors can readily be varied. In Figure 2 the single SPR 5 is shown connected only to a single DMSU 5 in the interest of simplicity. One of the front processors 11 shown in Figure 2 is shown in slightly greater detail in Figure 3 of the accompanying drawings and comprises a digital dual CPU symmetric multi-processor known as the AlphaServer 4100 having 512Mb RAM and a 2.1Gb system disc. Associated with this processor are four terminal cards 14 known as digital El cards, there being one card for each of the SPR's serviced by the network intelligence platform. In current telecommunications systems, such as the PSTN run by British Telecommunications public limited company (hereinafter referred to as BT), there are numerous occasions when the software running the network which is proprietary to BT has to interface at various functional levels with the products of other companies which interface with the PSTN network . An example of this is the Digital DEC SS7 which provides signalling connections to the PSTN for intelligent network nodes and which resides in the NIP's described herein with regard to Figure 2 of the accompanying drawings . The DEC SS7 system complies with ITU-TQ.700 series of recommendations and provides a complete signalling stack for a distributed array of Digital Alphaservers of the kind described with reference to the NIP shown in Figure 2 and the front end processor described with reference to Figure 3. The embodiment of the present invention which is being described provides a control system which enables a user to manage at least some of the functions of an NIP such as an NIP 10 shown in Figure 2. The problem faced by a user is that systems such as the DEC SS7 are insufficiently abstract. Accordingly a user has to know and understand the complete syntax of every command including where every parameter and qualifier has to be placed in order to be able to create a command successfully. Thus the user is given no guidance on the nature of the configuration that he is attempting to manage . The environment in which the control system 15 operates will now be described with reference to Figure 4 of the accompanying drawings in which the control system which embodies the present invention is indicated at 15. The control system 15 incorporates a digital processor 21 in which appropriate software is stored in a suitable manner, i.e. on a hard disc or a computer readable optical medium with which a user can communicate by means of standard devices such as a keyboard or a mouse . In operation the control system 15 is invoked and driven by a user 20 so that the interface can interact and use a master configuration file 22. The master configuration file contains a plurality of individual configuration files 23 and the interface 15 can interrogate and interact with these files via a shell script 24 which uses a temporary work file 25. Temporary results are stored in a temporary results file 26. The output of the interface 15 is connected, in the present embodiment, to a control system 30 controlling operations in the NTP described with respect to Figures 2 and 3 of the drawings . This control system is the already described Digital SS7 system which in turn communicates with SS7 hardware 31. The control system 30 has its own interface 32 which will expect commands with appropriate syntax and configuration, this interface 32 corresponding to a terminal card 14 of the kind described with relation to Figures 2 and 3. An overall supervisor is shown at 32 with the ability to check on the operation of the system. The control system 15 responds to commands input by the user 20 to generate as target code the commands expected by the system 30 and to input these commands to interface 32. Thus control system 15 includes a compiler. Compiler writing tools such as LEX (trademark) and YACC (trademark) are known and allow a user to specify a syntax tree of the kind which is shown in Figure 5. By using a compiler and a syntax tree a user can issue a command and if the command is recognised traverse the syntax tree in a left-recursive manner until a leaf is reached. Once a leaf has been reached the control system 15 may generate and optionally execute target code on behalf of the user appropriate to the system being controlled, in this case system 30, so as to carry out the required management function. However, known compilers when supplied with a partial command are only capable of generating an error condition from which it may or may not be able to recover. Thus, if information is missing the compiler will be unable to supply the information with the result that the partial command/statement will be ignored. The syntax tree shown in Figure 5 comprises a root 50 connected to a plurality of nodes 51. The root 50 is the point at which a user inputs his commands. Each node can be connected to a plurality of further nodes, or a node or nodes 51 and a leaf 52 or to a leaf 52. Each leaf represents the situation where a correct command has been entered, the interface has recognised the command with the final outcome that the user has arrived at a leaf . By means of its arrival at a leaf the control system 15 has sufficient information to generate and to then issue target code to the interface 32 of the system 30 being managed. Results of these commands are made visible to the user on an appropriate display. The flow diagram of Figure 7 shows normal operation of the syntax tree of Figure 5 when a correct command has been received . At SI a user inputs a command. At S2 and S3 this command is analysed both syntactically and lexically and if it is syntactically and lexically correct target code is generated and executed at S3. The sequence is continued until the user is finished. If at step S2 the analysis indicated that the command was either incomplete or incorrect then the only outcome would be the generation of an error message as is shown at E. The control system 15 is interactive in that it enables the user to enter partial commands as well as full commands. Thus the control system 15 is capable of dealing with the following three situations in response to inputs from a user. The first situation is where the user types in, or otherwise suitably enters, no command but just "carriage return" . The second case is when the user enters part of a command, and the third case is when the user enters the entire command. It is possible for this entire command to be of the type required by the control system 15. However a function of the control system 15 is to be able to generate a command (appropriate for system 30) at a leaf from a command entered by a user which has a different syntax and grammar from the language expected by the system being managed. It is only the third case which would be expected by a normal interface having a compiler and using writing tools such as LEX (trademark) and YACC (trademark) as already discussed. However, the control system 15 is capable of dealing with both of the first and second options as well as the third option. One possible course of action in dealing with the problem of partial commands would be to ensure that at each node additional code is written to prompt the user for more information, and then to write the code required to take the user from that point to a leaf . This option has the additional problem that it will be necessary to have additional code at every node and that this additional code is sufficient to enable the user to get to a leaf even if only a partial command is supplied initially. These problems are avoided in the embodiment being described by providing the syntax tree shown in Figure 5 with feedback loops 53 from each of the nodes 51. The provision of the feedback loops transforms the syntax tree into a directed graph in which at each iteration a user goes one level deeper into the graph until a leaf is reached or the user returns to a previous level. This is what is shown in Figure 6. How this is achieved will now be described with reference to the flow diagram shown in Figure 8. Referring now to Figure 8, this shows the flow sequence of Figure 7 with the addition of the just mentioned feedback loop. The effect of this feedback loop is as follows. When the partial command reaches a node and can go no further, the user is offered a choice of two actions. This is indicated by the prompt P at S3 with the two actions available indicated at Cl and C2. The first choice is Cl and is whether or not the user wishes to have additional information regarding possible nodes deeper in the syntax tree presented to him/her. Thus if the user elects the Cl route and makes a choice from the information presented. The additional data is appended to the current partial input, which was of course sufficient to reach the node, so as to generate a further command. This further command will consist of the original input, the user choice and any relevant external information. This further command is returned to the input and the interface is made to forget the original input by rewinding the file description pointer. The lexical and syntactical analysis stages 2 and 3 are carried out again and the result will be that the command will inevitably proceed to a deeper level in the syntax tree. By this process the user will always end at a leaf so that target code can be generated. On the other hand if the user chooses C2 the user is presented with the choice of returning further up the syntax tree of Figure 6. In most cases the user will be returned to the node which precedes the node at which the partial command halted. Thus if C2 is selected the user is then shown the range of possibilities at the preceding node. In effect data has been removed from the partial command (the data which was insufficient for further progress) and the user is presented with a fresh range of choices from which to make a selection. A simple example can now be given of the two possible paths in operation. If, for example, the partial command "show linkset" has been entered the control system will be unable to generate the relevant code. The command is incomplete as it does not specify which linkset. As described in relation to Cl, as the command has reached the node beyond which it cannot progress, the user will in this case be given a list of all know linksets so that a choice can be made. If linkset 6 is selected from the list the original command "show linkset" becomes "show linkset 6" and in this way the next node is reached. If on the other hand C2 is chosen the data "linkset" is deleted and the user moves backwards to the previous node "show" . At this node the user is offered the entities which can be selected. These can include, for example, data-link, link, linkset, fep, bep etc. It is of course possible to go backwards repeatedly in this manner. The embodiment just described provides a number of advantages over the arrangement in which at each node additional code is provided to enable a user to be taken directly from that node to a leaf . Firstly the amount of code involved is less . Code does not have to be written which explicitly goes from each node down through all remaining levels to a leaf and then generate target code. Thus target code is only generated at a leaf. This makes it easier to debug the code. The management interface as described provides an abstraction of a management system such as the Digital SS7. It enables a user to manage a system in a distributed environment without having to deal with each interface which is generally in the form of a network card. Thus the user is presented with an abstraction and is given a command syntax which allows the user to: express a requirement in an abstract syntax, constrain that requirement, get feedback on whether that requirement was successfully executed or not by an underlying collection of interface cards spread across a collection of machines. One problem which occurs in the system just described is that it is still possible for errors to occur at the nodes of the syntax trees shown in Figures 5 and 6. Amongst the errors which can arise when the input command or partial input command has arrived at a node of the syntax tree shown in Figure 6 is if the input file from which the user is to be offered a choice does not exist, or is empty, or does not have any records which match the selection criteria. It would accordingly normally be necessary to incorporate relatively complex error handling processes at each node . However in the embodiment being described the following procedure is carried out in the control system 15 which provides greatly simplified error handling. When an error is detected an error lexeme is generated which is distinct from the lexemes that form the grammar of the normal input commands. Nevertheless, the generated lexeme is recognisable by the lexical analyzer. For example, the error lexeme could have the general form " <identifier> : <identifier> " . No other lexeme will have this form. This lexeme is appended to the current user input and the combined original input and error lexemes are fed back to the input of the control system as shown by the feed-back loop 53'. In this manner the error condition is trapped because the stream of tokens from the lexical analysis stage does not match the grammar. As a result of this no additional error handling code is required at each of the nodes of the syntax tree. This is what is shown in the syntax trees of Figures 9 and 10. Figure 11 is a flow diagram of the error trapping procedure. The syntax trees shown in Figures 9 and 10 are in principal similar to those of Figures 5 and 6 and can also incorporate the feed back loop 53 of Figure 6. In Figures 9 and 10 nodes which have been seen by a command are indicated at 51'. In a typical system a user could have a choice of 27 commands with upto 13 entity types per command. Of the entity types 6 have one identifier, 5 have two identifiers and 2 have three identifiers. Referring now to Figure 9 it is assumed that an erroneous command has been input at the root 50 and this command has reached node 51" via nodes 51'. If the system incorporates the features disclosed in Figures 6 and 8 the system will examine the command in order to offer the user a choice of options. However, if for the reasons already given, no option is available the "special error" lexeme is generated and the command with the added error lexeme returned via the feed back loop 53'. This is what is shown in the flow diagram of Figure 11. Here at step SI a command is input. At step S2 the decision is made as to whether or not the command contains an error. If no error the command continues along the syntax at step S3. If an error is detected the error lexeme is added at step S4 and returned to the input for display to the user. Figure 10 illustrates how the error is trapped in the tree. Thus as shown in this figure the erroneous command has again reached node 51. From this node the following nodes 51 specify the "grammar" , but the special lexeme has resulted in the generation of a "special token". This token is not part of the grammar. Hence it is trapped using the existing error mechanism as shown by box 54.

Claims: CLAIMS 1. A control system for controlling a distributed intelligent network, the system comprising a digital processor, input means for receiving input commands, analysis means for carrying out lexical and syntactical analysis on input commands to generate target code, means defining a syntax tree having a plurality of nodes which are traversed by a syntactically and semantically correct input command to generate target code, means for detecting an error occurring at one of said nodes, and means for generating an error lexeme distinct from the lexemes of the grammar of syntactically and semantically correct input commands but which is recognisable by said analysis means, means for appending said error lexeme to the current input command which generated the error situation, and means for feeding the combination of said current input command and said lexeme to the input means . 2. A control system according to claim 1 and including means for responding to a partial command to generate data signals indicative of a range of options, and means responsive to a chosen option from the indicated range to cause the analysis means to re-analyse the original command together with the chosen option so as to generate a further set of data signals indicative of a set of further options . 3. A control system according to claim 1 or claim 2 and including means for responding to a partial command to generate data signals indicative of a range of options, and means responsive to a chosen option from the indicated range to cause the analysis means to re-analyse the original command so as to generate a further set of data signals indicative of a set of further options . 4. A control system as claimed in claim 3, wherein the digital processor includes storage files storing data representing the nodes of a syntax tree and wherein at at least a plurality of the nodes a chosen option can be added to an input command previously received at said input means and returned as a new command to said analysis means wherein the user is forced down a level of the syntax tree. 5. A control system according to claim 3 or claim 4, wherein one option which can be selected is an option of deleting data relevant to the node reached by the partial command so that the command is returned up a level of the syntax tree to the preceding node, and of displaying a range of options available for selection at said preceding node, the control system being adapted to generate a further command in response to the option selected at said preceding node. 6. A method of controlling a distributed intelligent network utilising a system comprising a digital processor having input means for receiving input commands and analysis means for carrying out lexical and syntactical analysis on input commands to generate target code, the method comprising defining a syntax tree having a plurality of nodes which are traversed by a syntactically and semantically correct input command to generate target code, detecting an error occurring at one of said nodes, and generating an error lexeme distinct from the lexemes of the grammar of syntactically and semantically correct input commands but which is recognisable by said analysis means , appending said error lexeme to the current input command which generated the error situation, and feeding the combination of said current input command and said lexeme to the input means . 7. A method according to claim 3 and including responding to a partial command to generate data signals indicative of a range of options, and means responsive to a chosen option from the indicated range to cause the analysis means to re-analyse the original command together with the chosen option so as to generate a further set of data signals indicative of a set of further options.

Inventors: HILL ANDREW, JOHNSTON MICHAEL, HILL, ANDREW, JOHNSTON, MICHAEL
Applicants: BRITISH TELECOMM, HILL ANDREW, JOHNSTON MICHAEL, BRITISH TELECOMMUNICATIONS PUBLIC LIMITED COMPANY, HILL, ANDREW, JOHNSTON, MICHAEL
Application year: 1998
Main classification: H04L12
IPC codes: H04Q3