Patent Publication Number: US-6707795-B1

Title: Alarm correlation method and system

Description:
FIELD OF THE INVENTION 
     The invention relates generally to the processing and management of alarms in communications networks, and more particularly to an alarm correlation method and system. 
     BACKGROUND OF THE INVENTION 
     Any large telecommunications network is subject to occasional and/or frequent faults which result in alarms being raised. Finding the original cause of a particular fault can be an arduous task. Naturally, the time spent finding and fixing a fault depends on how the alarms occur and also on the level of experience of an assigned operator. If the fault is particularly complex then the resulting time loss can be significant. 
     In order to quickly diagnose a problem that occurs in a network, a network operator must be knowledgeable with respect to alarm reporting mechanisms, network element operations, and connection and configuration dependencies. 
     Even if the operator is experienced with the above, some difficulty in analysing network faults will still exist due to the manner by which alarms are reported in the network. For example, alarm flooding may occur in which case one fault causes many alarms to occur at once which can suddenly overwhelm the network operator. The network operator has to manually filter the alarm flooding-reports to find the direct failure alarm that is hidden in the alarm flood. In another example, referred to as Alarm Toggling (Alarm Streaming), alarms are constantly raising and clearing because of an intermittent fault. Related alarms to the fault can also toggle, and such alarm toggling may become confusing to the network operator. As an example, if the alarms are rapidly toggling (e.g. raising and clearing every second) the operator may have to take a snap-shot of the alarms at an instance in time to understand what may be happening in the network. If alarms are slowly toggling (e.g. raising and clearing every 5 minutes), the operator may miss a diagnosis if the alarm is currently in a clear state. 
     The biggest problem in network diagnosis deals with the time involved to locate a fault&#39;s point of origin in the network. If. the network operator can quickly locate a failure, services can be restored quicker and chances are reduced that a small failure will develop into a bigger network problem. 
     In order to help the network operator view faults in a network, root-cause analysis systems have been developed. Some such systems may show an alarm correlation by presenting alarms that have been correlated into groups consisting of a direct detected alarm together with symptomatic alarm messages. This correlation greatly reduces the amount of time that the network operator has to spend in manually filtering the alarm messages. In addition, such systems may provide the customer with a view of problems found in the network. This will shift the network operator&#39;s attention from viewing alarms to viewing problems in the network. Furthermore, some such systems are capable of providing a brief probable cause description of the problem and providing a reference that can be used to help identify the problem. 
     The correlation methods used in existing tools rely on an exhaustive search of the network to find symptomatic alarms for the root-cause alarm. This means that every alarm on every network element in the network is examined in order for correlation. This is very expensive in terms of computing power and execution time. To overcome this problem, such methods have limited themselves to certain types of alarms. From a flood of alarms, they select a certain type of alarms, reject the rest, and perform the exhaustive search for alarms of the selected type only. The selected alarms are usually the alarms raised at the line layer and these typically constitute roughly 20% of the total alarms. Although these limited correlation capabilities are practical for small networks, applying them would not be practical for larger more complicated networks. 
     SUMMARY OF THE INVENTION 
     It is an object of the invention to obviate or mitigate one or more of the above identified disadvantages. 
     The invention is composed of two elements, namely a network modelling scheme and a correlation process. The network modelling scheme models a set of network elements in a network as a hierarchy of TTPs (transport termination points) and creates several layers of connected TTPs. In the new correlation process, the network of connected TTPs is traversed once a root-cause alarm is raised and a problem object is created. A traversed TTP keeps its association with the problem object. In this manner a symptomatic alarm raised on the TTP is correlated with the associated problem(s) without the need for a repeated search of the network. 
     More specifically, in the new network modelling scheme provided by the invention, a network element is modelled as a hierarchy of virtual server-client TTPs. A TTP at a lower layer is served by a TTP at a higher layer. The whole network is then modelled by establishing connections between these TTPs. Since the TTPs are arranged in a hierarchy, the whole network will conform to a hierarchy. The connectivity of TTPs at the highest layer models the connectivity of network elements themselves. The connectivity of TTPs at lower layers represents the network at various topology/termination layers (e.g. optical, section, line, path, etc.). A network at a lower layer is served by a network at the higher layer. The alarms in the new model are considered to be raised on TTPs and not on network elements. 
     The correlation process is devised in harmony with the network modelling scheme. The correlation process determines a new alarm to be either a root-cause alarm or a symptomatic alarm. If it is a root-cause alarm then it is associated with a problem object with a generic attribute called correlation state. The correlation state of the problem is used to correlate symptomatic alarms to the problem. Once a problem (and hence the correlation state) is created on a TTP at a certain layer, the directly connected TTPs at the same layer and all the client TTPs at the lower layers served by the problem&#39;s TTP are traversed in search of correlatable symptomatic alarms. On each traversal the symptomatic alarms on the TTPs are examined by an inference engine and added to the problem if correlatable. More generally, all the alarms on TTPs which satisfy certain predetermined criteria are considered for correlation. Any TTP traversed will keep its association with the correlation state. Therefore when a symptomatic alarm arrives later on that TTP, it is readily examined against any associated correlation state(s). This method of correlation alleviates the need for searching the network every time an alarm arrives. It greatly reduces the processing time of correlation since the majority of alarms are of symptomatic types and traversing of the network is only performed upon arrival of a root-cause alarm. 
     The correlation method presented here is technology independent and allows the correlation of alarms at all layers of the network with a significantly improved performance. 
     Using this method, the number of alarms considered for correlation is significantly increased due to participation of all the layers in the correlation process. The performance of the correlation process is also improved dramatically by eliminating the need for searching the network for a root-cause alarm when a symptomatic alarm is raised. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Preferred embodiments of the invention will now be described with reference to the attached drawings in which: 
     FIG. 1 is a block diagram of a network to be managed and a network management device including an alarm correlator according to an embodiment of the invention; 
     FIG. 2 is a logical block diagram of the alarm correlator of FIG. 1; 
     FIG. 3 is an example of a hierarchical network model according to an embodiment of the invention; 
     FIG. 4 is another example of a hierarchical network model which shows connections between transport termination points; 
     FIG. 5 is a flowchart for the processing of alarms by the inference engine of FIG. 2; 
     FIG. 6 is a graphical view of an example network in an alarm scenario; 
     FIG. 7 is a hierarchical network model for the network of FIG. 6; and 
     FIG. 8 is an illustration of various rule sets which can be applied by the inference engine of FIG.  2 . 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Referring to FIG. 1, an alarm correlator according to an embodiment of the invention is indicated at  10 . In a preferred implementation, the alarm correlator forms part of a NMD (network management device) such as generally indicated by  13 . The alarm correlator  10  (or the NMD  13 ) is connected to a network which is generally indicated by  11  through one or more network management links  12 . In the illustrated example the network  11  consists of three network elements  14 , 15 , 17  connected to each other through links  16 . The alarm correlator  10  is shown connected to each of the network elements  14 , 15 , 17  through a respective network management link  12 , but this need not be the case in general. Through the network management links  12  or through any other appropriate input, the alarm correlator  10  receives all alarm messages generated by the network elements  14 , 15 , 17 . 
     A functional block diagram for the alarm correlator  10  of FIG. 1 is shown in FIG.  2 . There are two main blocks, namely a hierarchical network model  21 , and an inference engine  23 . The hierarchical network model  21  is a model of a network being managed, for example the network  11  of FIG. 1, which is designed specifically for alarm correlation. The hierarchical network model  21  receives new alarms from the network or from the network management device  13  and forwards alarm postings to the inference engine  23 . The inference engine  23  processes the alarm postings and may send messages to the hierarchical network model  21 . Also shown in FIG. 3 is an optional rule sets block  25  consisting of one or more rule sets which are then taken into account by the inference engine  23  when processing alarm postings. As will be described in detail below, the intelligence of the alarm correlator  10  is distributed across both the hierarchical network model  21  and the inference engine  23 . 
     To begin, as part of the hierarchical network model  21 , a logical hierarchical model of each network element is generated and maintained. Each network element is modelled as a hierarchy of virtual server-client TTPs (transport termination points). TTPs are the terminals on a network element which terminate a signal, and these signals are at different rates and hence different layers. One network element usually terminates many signals, not one. For example an OC48 network element may terminate 48 signals at the DS1 level, or 4 signals at OC12 layers, or 12 signals at the OC3 level or a combination of these. Therefore on such a network element there would be up to 48 TTPs at the DS3 layer, up to 4 TTPS at the OC12 layer, and so on. A TTP at a lower layer is served by a TTP at a higher layer. This can be better described with reference to the example in FIG. 3 which is a graphical representation of an example logical hierarchial model for a single network element. The top layer of the hierarchy is a block labelled NE 1  representing a network element per se. This network element might be an ATM switch for example. 
     The next layer of the hierarchy consists of TTPs served by the higher layer TTP. In this case, the next layer will consist of TTPs for each line/section card forming part of the network element NE 1 . In the illustrated example, there are three line/section layer TTPs labelled S 1 ,S 2 ,S 3 . 
     The next layer of the hierarchical model consists of a model of high order paths. A TTP is included for each high order path terminated by a given line/section. In the illustrated example, S 1  is shown serving TTPs H 1 ,H 2 ,H 3 , S 2  is shown serving H 4 ,H 5 ,H 6 , and S 3  is shown serving H 7 ,H 8 ,H 9 . 
     The last layer of the hierarchical model consists of a model of low order paths. A TTP is included in this layer for each low order path terminated by a given high order path. In the illustrated example, H 1  is shown serving TTPs L 1 ,L 2 ,L 3 , H 5  is shown serving L 4 ,L 5 ,L 6 , and H 6  is shown serving L 7 ,L 8 , and L 9 . 
     As an example, on a OC192 NE, there are two TTPS at the OC192 signal rate, and each of these might serve 4 TTPs at the OC48 rate which in turn might serve 4 OC12 TTPs, which each might serve 4 TTPS at the OC3 rate which in turn each might serve 3 TTPs at DS1 rate. This is just an example which applies to SONET. The signal division is different but similar in an SDH or ATM domain. 
     This hierarchical model can be stored in any convenient manner. For example it may be stored in the form of a linked list, with a top layer entry for each network element, and then with links to lower layer TTPs and so on. 
     In the illustrated example, the hierarchical model Ad includes four layers. However, it is to be understood that the invention can be applied with a fewer or greater number of layers. 
     The above described hierarchical model of the network elements is used to develop a connectivity model of the entire network and more particularly to develop a different connectivity model for each layer in the model. An example of such a connectivity model is given in FIG.  4 . This model might correspond with the example physical network of FIG.  1 . In this example, the hierarchical model for each of three network elements is shown, with the model for the first network element  14  generally indicated by  20 , the model for the second network element  16  generally indicated by  22 , and the model for the third network element  17  generally indicated by  24 . In the illustrated example, the section layer includes TTPs S 1 ,S 2 ,S 3  served by NE 1 , S 4 ,S 5 ,S 6  served by NE 2 , and S 7 ,S 8 ,S 9  served by NE 3 . The high order path layer includes TTPs H 1 ,H 2 , H 3  served by S 3 , H 4 ,H 5 ,H 6  served by S 4 , H 7 ,H 8 ,H 9  served by S 5 , and H 10 ,H 11 ,H 12  served by S 7 . Finally, the low order path layer includes TTPs L 1 ,L 2 ,L 3  served by H 3 , L 4 ,L 5 ,L 6  served by H 4 , and L 7 ,L 8 ,L 9  served by H 10 . 
     The connectivity model for a given layer of the model includes connections between TTPs within that layer. The top level connectivity model of the network is maintained by identifying physical connections between network elements and mapping these to connections between associated TTPs. In the physical model of FIG. 1, network element  14  is connected to network elements  15 , 17  so NE 1  representative of network element  14  is shown connected to NE 2 ,NE 3  which are representative of network elements  15 , 17  respectively. A i similar connectivity model is maintained for lower layers. Connections are shown between pairs of TTPs in the line/section layer, pairs of TTPs in the high order path layer, and pairs of TTPs in the low order path layer. These connections are illustrated graphically by lines connecting the TTPs representing the network elements. The graphical representation of FIG. 4 is convenient for the purpose of understanding. However, the information can easily be stored in any convenient format, for example using a linked list format or a tabular format which captures both the hierarchical models of the network elements and the connectivity models. For the illustrated example, the top layer model may consist of a table of the form shown in Table 1 below. 
     Any mechanism capable of capturing both a system&#39;s hierarchy and its connectivity may be used, such a system generally being referred to as a hierarchical connectivity model. 
     
       
         
           
               
               
               
               
               
             
               
                   
                 TABLE 1 
               
               
                   
                   
               
               
                   
                   
                 Pointers to 
                 Pointers to 
                 Alarms and Links 
               
               
                   
                   
                 Connected 
                 Served 
                 to correlation 
               
               
                   
                 NE 
                 NEs 
                 TTPs 
                 States 
               
               
                   
                   
               
             
            
               
                   
               
            
           
           
               
               
               
               
            
               
                   
                 NE1 
                 NE2, NE3 
                 S1 ,S2, S3 
               
               
                   
                 NE2 
                 NE1, NE3 
                 S4, S5, S6 
               
               
                   
                 NE3 
                 NE1, NE2 
                 S7, S8, S9 
               
               
                   
                   
               
            
           
         
       
     
     The table includes a row for each network element in the network element layer. Thus, there is a row for each of the three network elements labelled NE 1 , NE 2 , and NE 3 . Next, there is a column labelled “Pointers to Connected NEs” which lists the NEs directly connected to the network element identified in the first column (or pointers to these NEs). The next column is entitled “Pointers to Served TTPs”, and includes an identification of (or a pointer to) any TTPs in a next lower layer which are directly served by the network element identified in the first column. For example, since S 1 , S 2 , and S 3  are served by NE 1 , these are identified as served TTPs in the table. Each row in the table can be an object if an object oriented approach is employed. Also shown is a column entitled “Alarms and Pointers to Correlation States” which is simply representative of memory allocated in each record to store alarms raised on that network element, and to store pointers to correlation states, as described in further detail below. 
     The connectivity model for the line/section TTPs can be summarized by Table 2 below which is similar to Table 1 except that each record is for a TTP rather than an NE, and pointers in the second column are to connected TTPs rather than connected NEs. 
     
       
         
           
               
               
               
               
               
             
               
                   
                 TABLE 2 
               
               
                   
                   
               
               
                   
                   
                 Pointers to 
                 Pointers to 
                 Alarms and Links to 
               
               
                   
                   
                 Connected 
                 Served 
                 Correlation 
               
               
                   
                 TTP 
                 TTPs 
                 TTPs 
                 States 
               
               
                   
                   
               
             
            
               
                   
               
            
           
           
               
               
               
               
            
               
                   
                 S1 
                   
                   
               
               
                   
                 S2 
                 S8 
               
               
                   
                 S3 
                 S4 
                 H1, H2, H3 
               
               
                   
                 S4 
                 S3 
                 H4, H5, H6 
               
               
                   
                 S5 
                   
                 H7, H8, H9 
               
               
                   
                 S6 
                 S7 
               
               
                   
                 S7 
                 S6 
                 H10, H11, H12 
               
               
                   
                 S8 
                 S2 
               
               
                   
                 S9 
               
               
                   
                   
               
            
           
         
       
     
     The connectivity model for the high order path layer TTPs can be summarized by Table 3 below. 
     
       
         
           
               
               
               
               
               
             
               
                   
                 TABLE 3 
               
               
                   
                   
               
               
                   
                   
                 Pointers to 
                 Pointers to 
                 Alarms and Links to 
               
               
                   
                   
                 Connected 
                 Served 
                 Correlation 
               
               
                   
                 TTP 
                 TTPs 
                 TTPs 
                 States 
               
               
                   
                   
               
             
            
               
                   
               
            
           
           
               
               
               
               
            
               
                   
                 H1 
                   
                   
               
               
                   
                 H2 
                 H8, H1 
               
               
                   
                 H3 
                 H4 
                 L1, L2, L3 
               
               
                   
                 H4 
                 H3 
                 L4, L5, L6 
               
               
                   
                 H5 
               
               
                   
                 H6 
               
               
                   
                 H7 
               
               
                   
                 H8 
                 H2 
               
               
                   
                 H9 
                 H12 
                 L7, L8, L9 
               
               
                   
                 H10 
                   
                 L7, L8, L9 
               
               
                   
                 H11 
                 H2 
               
               
                   
                 H12 
                 H9 
               
               
                   
                   
               
            
           
         
       
     
     Finally, the connectivity model for the low order path layer TTPs can be summarized by Table 4 below. 
     
       
         
           
               
               
               
               
               
             
               
                   
                 TABLE 4 
               
               
                   
                   
               
               
                   
                   
                 Pointers to 
                 Pointers to 
                 Alarms and Links 
               
               
                   
                   
                 Connected 
                 Served 
                 to Correlation 
               
               
                   
                 TTP 
                 TTPs 
                 TTPs 
                 States 
               
               
                   
                   
               
             
            
               
                   
               
            
           
           
               
               
               
            
               
                   
                 L1 
                 L9 
               
               
                   
                 L2 
                 L5 
               
               
                   
                 L3 
                 L7 
               
               
                   
                 L4 
               
               
                   
                 L5 
                 L2 
               
               
                   
                 L6 
                 L8 
               
               
                   
                 L7 
                 L3 
               
               
                   
                 L8 
                 L6 
               
               
                   
                 L9 
                 L1 
               
               
                   
                   
               
            
           
         
       
     
     The above tables completely summarize the connectivity of the network at all layers. These tables need to be dynamically maintained such that new links to TTPs are added as connections are newly generated. Existing network management devices include self discovery features which allow them to be constantly aware of the state of the network and these can be used to keep the connectivity model accurate. 
     The alarm correlator  10  has a “root-cause determiner”, this being either information or capabilities, for example a list of one or more constraints which allow it to make a determination of whether a given alarm is a root-cause alarm or a symptomatic alarm. This may simply consist of a list of alarm types which are root-cause alarms for example. 
     The alarm correlator  10  has the capability to generate and manage a set of problem objects. Each problem has a root-cause alarm and a list of symptomatic alarms which have been correlated with the root-cause alarm. A problem object is created upon identification of a root-cause alarm. Problem objects, once created and filled in as described below, are forwarded to a network management GUI for consideration by network management and troubleshooting personal. The problem object has a structure which consists of a header containing all the information necessary to uniquely identify a problem object and a list of correlated alarms. For example it might have the following structure: 
     Problem Header—includes Problem Identifier, Root-cause Alarm, Problem Reason, Network Element Identifier, acknowledgment information, and any other information needed to complete a problem objects identity. 
     CorrelatedAlarmList—a list of all correlated alarms. 
     A correlation state is an object which is created together with a problem object upon the identification of a root-cause alarm which can be passed around to different TTPs to correlate their alarms. A correlation state preferably has the following structure the purpose of which will be described in detail below: 
     StateText—a string that is used by the inference engine  23  to correlate alarms. It is assigned by the inference engine  23  when the correlation state is created and it typically is text from the root-cause alarm. 
     OriginalTTP—a pointer to the original TTP on which the correlation state&#39;s root-cause alarm was raised. 
     CurrentTTP—a pointer to the current TTP which is posting the correlation state to the engine. 
     Impact—an attribute which indicates whether the CurrentTTP is the OriginalTTP or is an Impact TTP. Possible values are Internal and External. 
     RootCauseAlarm—a pointer to the root-cause alarm. 
     ExpectedAlarmList—a list of expected correlated symptomatic alarms for the current TTP. 
     Problem—a pointer to its correlated problem object. 
     The steps performed by the alarm correlator  10  each time it receives a new alarm through one of the network management links  12  will be described with reference to the flowchart of FIG.  5 . 
     To begin, the alarm is examined and an association with one of the TTPs is identified. Each alarm record contains some detail information, including for example the network element identifier of the network element which raised the alarm, the shelf location, the slot and subslot location, the signal rate of the network element, etc. All the information needed to associate an alarm with a particular TTP is part of the alarm record and is used to allocate an alarm to a TTP. This alarm is then stored in memory in association with the TTP thus identified, for example as part of the TTP object. 
     The alarm is then posted to the inference engine for a determination of whether the alarm is a root-cause alarm or not. In the event that the alarm is a root-cause alarm, the inference engine creates a new problem object for that alarm in association with the TTP which raised it. A correlation state object as described above is created at the same time. The correlation state indeed represents the collective states of a group of interrelated objects which might have an impact on each other. The raising of a root-cause alarm causes the inference engine to generate a correlation state on the TTP which posted the alarm. 
     The StateText forming part of the correlation state which is typically the root-cause alarm text is used by the inference engine to correlate symptomatic alarms with the root-cause alarm during traversal as detailed below. 
     Next, the correlation state object traverses all the TTPs which could possibly be related to the problem. This group of TTP&#39;s is referred to as the “impact group” of TTP&#39;s. The impact group is determined by examining the physical and logical connectivity of network elements as defined in the hierarchial network model and the connectivity model. This impact group can be defined in several ways. Preferably it includes the TTPs directly connected to the problem&#39;s TTP in the same model layer. The impact group also includes all TTPs served by the problem&#39;s TTP. This may include TTPs in multiple layers below the problem&#39;s TTP. Finally, the impact group also includes all TTPs directly connected to TTPs served by the problem&#39;s TTP. More specifically, after the correlation state is generated it is consecutively passed on to the TTPs in the impact group. It is first passed to TTP objects in the same layer and then to lower layer TTPs. Each TTP object modifies the CurrentTTP and Impact attributes of the correlation state accordingly, and posts the correlation state to the inference engine. More specifically, the CurrentTTP field is filled in to point at the TTP which is currently posting the correlation state, the “Impact” is set to “External” if the TTP is not the original TTP, and is set to “Internal” if the CurrentTTP is the original TTP. The CurrentTTP contains all the information about the layer, rate and other equipment related data required for the correlation. 
     At each traversed TTP, the correlation state does two things. Firstly, it determines if the TTP has any symptomatic alarms correlatable to the root-cause alarm. If it does, then these symptomatic alarms are added to the problem. When the inference engine receives a correlation state from a TTP, it determines the expected alarms on the TTP based on the StateText, CurrentTTP and Impact attributes of the correlation state and passes these to the TTP in the ExpectedAlarmList parameter of the correlation state. The TTP then examines its alarm list and adds any alarms found which are expected alarms to the associated problem object. Once the circulation of the correlation state is complete, this associated problem object is reported to interested clients. There might still be some outstanding expected alarms. Whenever they are raised at a later time, they will be added to the problem object. 
     Secondly, in the process of TTP traversal, a link is established between the TTP and the correlation state. This may simply be a pointer to the correlation state, for example. The link may also include a list of expected alarms which have not yet been raised on the TTP. Preferably links are only established in the event that a given TTP has expected alarms which have not yet been received on the TTP. 
     In the event the alarm is not a root-cause alarm, the alarm is first stored as a symptomatic alarm in association with the TTP which raised it for possible future association with root-cause alarms which have yet to be raised. In addition, the TTP is examined to determine if there has been one or more previously established links between that TTP and respective correlation states. If there are, then these correlation states are examined for possible correlation with the symptomatic alarm, and the symptomatic alarm is added to the associated problem object(s) if appropriate. If an expected alarm list has been stored by the TTP then a very rapid correlation can be performed by simply determining if the symptomatic alarm is part of this list. 
     The new correlation model presents a new way of interacting among the objects in the hierarchial network model structure and the inference engine. In this model objects control the flow if information and as a result fewer queries are posted to the engine. 
     To further clarify the above described correlation model consider the example illustrated in FIG.  6 . FIG. 6 shows a SONET ring composed of four network elements labelled NE  5 , NE  6 , NE  7 , and NE  8  respectively. Suppose a path layer DS3 signal is added at NE  5  and dropped at NE  7  as indicated by the dashed line  30 . Suppose there is fiber cut between the NE  5  and NE  6  as depicted by the “X”  32 . Some of the alarms which are typically raised on the NEs are shown in the Figure. NE  6  has raised an OC12 alarm entitled OC12G1 “Loss of Signal”. NE  5  has raised an OC12 alarm entitled OC12G2 “RxAIS”, and NE  7  has raised a DS3 alarm entitled DS3G51 “Loss of Signal”. The two OC12 alarms are at the line layer and the DS3 alarm is at the path layer. The new alarm correlation algorithm will be described by way of example for this network. 
     The network of FIG. 6 is represented by the alarm correlator as a hierarchical network model shown in FIG.  7 . Irrelevant links and objects are not shown in the figure for the sake of clarity and simplification. 
     At the network element layer there are three TTP&#39;s labelled NE  5 , NE  6 , and NE  7 . At the line layer there are three TTP&#39;s labelled TTP 1 , TTP 2 , and TTP 3 . The connections between these TTP&#39;s represent the OC12 connections between the network elements. In the high order path layer there are three TTP&#39;s labelled TTP 4 , TTP 5  and TTP 6 . TTP 5  and TTP 6  are the TTPs for the DS3 connection between NE  5  and NE  7  which is a higher order path connection. The three alarms identified above are illustrated in the FIG. 7 view in three alarm bubbles labelled “Alarm 1 ”, “Alarm 2 ”, and “Alarm 3 ” attached to TTP 2 , TTP 1  and TTP 6  respectively. The correlation state object and the problem to which it points are also indicated in bubbles. 
     In FIG. 7 suppose Alarm 1  on TTP 2  of NE 6  is a root-cause alarm which can be correlated to Alarm 2  on TTP 1  of NE 5  and Alarm 3  on the path layer TTP 1  of NE 7 . Once Alarm 1  is raised, it is posted to the inference engine by TTP 2 . The inference engine determines that it is a root-cause alarm, creates a problem object and generates a correlation state on that TTP and passes the correlation state back to the TTP for traversal. The TTP 2  then sets the Current TTP field of the correlation state to OriginalTTP and also sets the Impact to “internal” and posts the correlation state to the inference engine. The inference engine examines the StateText and other attributes of the correlation states and fills out the expected alarms list of the correlation state for that TTP and returns the correlation state to TTP 2 . TTP 2  in this example finds no other alarm on itself that can be correlated. TTP 2  then passes the correlation state to TTP 1  on NE 5  because it is in its impact group at the same layer. This TTP in turn sets the CurrentTTP attribute of the Correlation State and its Impact attribute to external, and posts the correlation state to the engine. The engine then determines the expected alarms on the TTP of NE 5  (based on the current correlation state attributes). In this example an alarm of the same type as Alarm 2  is in the ExpectedAlarmList. TTP 1  compares its alarms to the ExpectedAlarmList and discovers this fact. Consequently Alarm 2  is added to the problem object as a symptomatic alarm. 
     The correlation state is then sent to the lower layer TTPs for further correlation. The lower layer TTPs which are first examined are TTP 4  and TTP 5  which are direct clients of TTP 1  of NE 5 . Then all the TTPs in their impact group are examined which include TTP 6  of NE 7 . 
     Alarm 3  on this TTP can be correlated to the problem and therefore it is added to the problem object. After the circulation of the correlation state is complete the generated problem object on TTP 2  of NE 6  (the originalTTP) is reported. In the circulation process described above every time the Expected Alarm List on a traversed TTP is not empty, a pointer will be established between the TTP and the correlation state. Therefore when an expected alarm arrives later, it will be added to be respective problem immediately. 
     Preferably, the system is capable of determining probable problems for an alarm if it can not be correlated to a root-cause alarm. 
     INFERENCE ENGINE 
     The inference engine processes alarms posted by TTPs. As alarms enter the engine for correlation, various rules are applied in determining how the alarm is processed, and these alarms are preferably arranged in rule sets, with specific rule sets applied to alarms satisfying particular criteria. For example, there might be a different rule set for each network element type which is used in processing alarms generated by network elements of that type. This particular approach makes it easier to introduce new network element types. 
     The inference engine is a software program which preferably examines the rules and executes a rule if it is applicable. The rules may for example be if then clauses that embed the knowledge about the equipment and alarms. These rules should be written by experts who know the equipment and alarms, and can associate an alarm with a root-cause alarm. In other words, all the knowledge required for alarm correlation is embedded in the rules which are written by equipment experts. 
     In a preferred embodiment, alarm postings are processed according to two basic patterns. The first pattern of rules are considered the “equipment alarm” rule sets. If the alarm is a root-cause alarm, it&#39;s alarm reason is examined and the state of the affected TTP is determined. A correlation state will be created by the rules and placed on the TTP which raised the alarm. The creation of a correlation state will also start the second pattern of rule sets. If the alarm is a symptomatic alarm, rules will fire to continue the second pattern of rule sets. 
     The second pattern of rules are considered the “equipment state” rule sets. These rules act upon the states at the TTPs that are generated by the engine during the first pattern of rule sets. The correlation state rules fire corresponding to the correlation state object&#39;s type and they act upon the Correlation manager&#39;s model to generate problems in the network. 
     Alarm clear events are also forwarded to the engine. The clear events are not queued but act upon the correlation model immediately by removing alarm events and updating the correlations status of the correlation states located in the engine. 
     RULE SETS 
     Preferably, the alarm correlator  10  allows for the separation of the rule sets into specific network element type rule sets as shown in FIG. 8 where separate rule sets for OC-12, OC-192, and TN-16X are illustrated. This separation provides easier manageability of the rule sets and allows for delivery of rule sets independent the alarm correlator&#39;s operation: 
     1. As customers order new equipment software releases for a given network element, only the respective rule set needs to be updated and delivered to reflect changes in the network element&#39;s software. 
     2. As new equipment components are delivered (e.g., new card types), only the rules for the equipment need to be updated and delivered to reflect the changes. There would be no need to update the entire inference engine. 
     3. Customer Defined Rules could be isolated to a separate rule set that would not interfere with the operation of the “delivered” rule sets. 
     4. As new Network Elements are delivered, the rules for these Network Elements could be delivered as a separate package. 
     Numerous modifications and variations of the present invention are possible in light of the above teachings. It is therefore to be understood that within the scope of the appended claims, the invention may be practised otherwise than as specifically described herein. 
     For example, the above examples have focussed on alarm correlation for correlating network alarms. In another embodiment, a similar approach may be used to correlate events of a more general nature in any system which can be modelled using a hierarchical connectivity model of model elements. In this case each event would have a corresponding event indicator which might be a root event indicator depending upon root event criteria.