Abstract:
To report the time distribution of a succession of specified events such as occurrences of particular data elements in telecommunications equipment, the method comprises an initialization of a sampling quantity consisting of a positive integer and several successive iterations of a scheme comprising the following steps: detection of a number of events equal to the sampling quantity and metering of a sampling time taken to detect said number of events; quantization of the sampling time metered in the previous step so as to output coding data representing a quantized value of the metered sampling time; and updating of the sampling quantity as a function of parameters including the quantized value of this sampling time.

Description:
BACKGROUND OF THE INVENTION  
         [0001]    The present invention relates to techniques for detecting and sampling events occurring repetitively.  
           [0002]    It finds a particular, non-exclusive application in operation, administration and maintenance (OAM) facilities with which certain telecommunications equipment is equipped.  
           [0003]    A large number of data elements circulate in telecommunications networks. Analysis of the occurrences of specified types of data elements is useful to the operators for improving or optimizing the operation of their networks and for detecting any malfunctions therein.  
           [0004]    By way of example, in an ATM (“Asynchronous Transfer Mode”) network, the data elements whose occurrences are analyzed may be the ATM cells transmitted along a particular virtual connection, thereby making it possible to analyze the bit rate behavior of the source of the cells and/or the response of the network with regard to this source.  
           [0005]    As another exemplary application of the invention, mention may be made of protocol analyzers. The relevant data elements may then correspond to particular type messages of a signaling protocol.  
           [0006]    During the deployment of a network, the configuring of the equipment allows it a priori to meter the occurrences of various types of data elements. It is merely necessary to make provision for the appropriate software resources in this equipment. The elements to be detected in a given situation are defined by means of the OAM facilities of the network, which activate the software resources in question and then collect the results of the observations.  
           [0007]    The customary observation mechanisms are based on counters which cater for operations such as enumeration of events over given periods, calculation of aggregate values, averages, minima, maxima, etc. Although they provide interesting information, these counters do not make it possible to evaluate a traffic profile over a given observation period. In particular, they do not make it possible to evaluate the more or less bursty nature of the traffic observed. For example, it is quite obvious that the traffic profiles illustrated, in arbitrary units, by the curves of FIGS. 1 and 2 correspond to very different behaviors of the network, although they give rise to similar values for the maximum value (MAX) and the average value (AVE) of the observed traffic load.  
           [0008]    To evaluate a traffic profile, i.e. the time distribution of the events detected over a given observation period, use is customarily made of a sampling method consisting in recording the number k i  of events occurring during a given time unit. For example, a byte is used every millisecond to record the number of events detected in the course of the previous millisecond. The time unit adopted is fixed before the start of the observation period, as is the number of bits employed for recording each number of events. A drawback of this method is that zeros are recorded needlessly when the traffic observed has regions of silence.  
           [0009]    In another sampling method, the sampling quantity (number of events detected) is constant, i.e. k 1 =k 2 = . . . =k, and the data recorded represent the sampling times T i  taken to detect k new occurrences of the event. This method prevents the sampling from generating data in the regions of silence. It generally involves an approximation when the times metered are represented in the form of integers.  
           [0010]    The two above-mentioned methods do not behave satisfactorily in the presence of large variations in the rate of the detected events. With the first method, an increase in the rate may cause overflow because the space provided for recording the number k i  may become insufficient, while an increase in this space increases the needless consumption of memory or of bandwidth in the regions of silence. With the second method, an increase in the rate involves the production of abundant data for representing short sampling times. In both cases, the volume of data generated by the sampling method is not optimal.  
           [0011]    This type of traffic profile analysis thus poses difficulties when it pertains to the time distribution of very frequent occurrences. The relevant data elements are typically manipulated by a processor or by logic circuits supervised by a processor. The enumeration of their occurrences and the coding of the data k i  or T i  are carried out by this processor. The coding data being relatively abundant, they are often stored in a local memory before being transmitted for analysis. The processor is then invoked to write the data to disk as it goes along and then to read them and transmit them to a remote OAM server. The coding data produced therefore mobilize considerable resources of the processor (CPU time) in order to be written to disk and then read therefrom and/or transmitted. However, the resources of the processor are relatively valuable, especially in the case where the events taken into account are very frequent since the processor&#39;s performance constraints are then more severe.  
           [0012]    An object of the present invention is to remedy the above difficulties by proposing an efficient sampling method making it possible to control the amount of data generated in reporting the observations.  
         SUMMARY OF THE INVENTION  
         [0013]    The invention thus proposes a method for reporting the time distribution of a succession of specified events, comprising an initialization of a sampling quantity consisting of a positive integer and a plurality of successive iterations of a scheme comprising the steps of:  
           [0014]    detecting a number of events equal to the sampling quantity and metering a sampling time taken to detect said number of events;  
           [0015]    quantizing the sampling time metered in the preceding step to output coding data representing a quantized value of said sampling time; and  
           [0016]    updating the sampling quantity as a function of parameters including said quantized value of the sampling time.  
           [0017]    The method uses sampling quantities k i+1  adaptable as a function of the quantized values of the sampling times T i  previously observed (i=1, 2, 3, . . . ).  
           [0018]    The instantaneous rate of the detected events is thus taken into account, implicitly or explicitly, whereby the variations in this rate are properly tracked. When this rate is low, k i  is taken relatively high. When it increases, the update decreases the quantity k i . This allows a certain predictability of the sampling time T i , and hence efficient coding of this parameter, so that the amount of coding data generated by the method is controlled.  
           [0019]    The OAM server, which processes the coding data, is capable of initializing the sampling quantity k 1  in the same way as the sending unit which detected the events. It associates therewith the quantized value t 1 , recovered based on the coding data, of the first sampling time T 1  and it deduces therefrom the sampling quantity k 2  through the same updating relation which was used by the sending unit. By recurrence, the i-th coding data define a quantized value t i  of the sampling time T i  and make it possible to calculate k i+1 . The successive reading of the coding data thus allows the OAM server to determine all the pairs (k i , t i ) which, according to requirements, may be reprocessed to produce traffic histograms (with a constant time step) with small approximations, or to calculate all kinds of statistical quantities (average, variance, minima, maxima, etc.).  
           [0020]    In a particular implementation of the method, an event rate is estimated explicitly in each iteration of the scheme. The updating of the sampling quantity then comprises the calculation of an estimated event rate as a function of parameters including the preceding sampling quantity and the quantized value of the sampling time. The updated sampling quantity is subsequently deduced from the estimated rate.  
           [0021]    The updated sampling quantity is typically an integer substantially proportional to the estimated event rate. This integer can in particular be ┌Z.λ.n/S┐, where Z is a predefined total duration of observation, λ is the estimated event rate, n is a number of bits used to form the coding data representing a quantized time value, S is a predefined data size expressed as a number of bits. In the above notation, for a number y, ┌y┐ represents the integer equal to or immediately greater than y.  
           [0022]    The estimated event rate is advantageously calculated in the form (1−x).λ+x.K/t, where x is a weighting coefficient lying between 0 and 1, λ is the estimated event rate in force before the current iteration, K is the preceding sampling quantity and t is the quantized value of the sampling time of the current iteration.  
           [0023]    The number x makes it possible to select the sensitivity of the rate estimator. A value close to zero restricts the variations in λ and hence the adaptive nature of the method, while a value close to 1 can cause abrupt variations of the estimator.  
           [0024]    In an advantageous embodiment of the method, the quantization of the sampling time comprises the production of coding data including at least one index of n bits, n being a predefined integer larger than 3, and the production of these coding data comprises the steps of:  
           [0025]    determining a prediction time interval;  
           [0026]    if the sampling time is below the prediction interval, outputting an index having a first value and replacing the prediction interval by a new time interval situated immediately below the preceding interval;  
           [0027]    if the sampling time is above the prediction interval, outputting an index having a second value distinct from the first value and replacing the prediction interval by a new time interval situated immediately above the preceding interval; and  
           [0028]    if the sampling time is within the prediction interval, outputting an index having a value distinct from the first and second values and representative of the position of the sampling time in the prediction interval.  
           [0029]    The prediction time interval initially determined is typically positioned with respect to a prediction value equal to the ratio of the sampling quantity to the estimated event rate.  
           [0030]    To optimize the accuracy of the method, it is possible to use a shifting parameter initialized to zero and then updated in each iteration of the scheme as a function of the difference between the metered sampling time and the quantized value of this sampling time. In at least some of the iterations (preferably all), this shift parameter is taken into account in counting down the sampling time.  
           [0031]    Another aspect of the invention relates to telecommunication equipment, comprising means for transmitting and/or receiving traffic including successive data elements, means for detecting occurrences of data elements of a particular type in said traffic and coding means for outputting coding data reporting the time distribution of the occurrences detected, wherein the coding means are arranged to implement a method as defined hereinabove.  
           [0032]    A third aspect of the invention concerns a computer program, loadable into a memory associated with a processor, and comprising code portions for implementing a method as defined hereinabove in the execution of said program by the processor. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0033]    [0033]FIGS. 1 and 2, previously discussed, are graphs illustrating two exemplary traffic profiles.  
         [0034]    [0034]FIG. 3 is a schematic diagram of an exemplary telecommunication infrastructure to which the invention is applicable.  
         [0035]    [0035]FIG. 4 is a flowchart of operations performed in an exemplary method in accordance with the invention.  
         [0036]    [0036]FIG. 5 is a flowchart of a procedure for quantizing the sampling times which can be used in the method according to FIG. 4.  
         [0037]    [0037]FIG. 6 is a flowchart of a procedure for decoding the data generated by a method according to FIGS. 4 and 5.  
         [0038]    [0038]FIG. 7 is a flowchart of a procedure which can be used in conjunction with that of FIG. 6 for restoring traffic histograms with a constant time step. 
     
    
     DESCRIPTION OF PREFERRED EMBODIMENTS  
       [0039]    With reference to FIG. 3, the invention is illustrated in its application to the OAM facilities of a UMTS (“Universal Mobile Telecommunications System”) type third-generation radio communication cellular network. In a known manner, such a network comprises switches  10 , of MSC (“Mobile Switching Centre”) type for the circuit mode or GSN (“GPRS Support Node”) type for the packet mode, and a radio access network (RAN). The RAN comprises radio network controllers (RNC)  11  each linked to an MSC, and units  12  referred to as “node B” each linked to an RNC. Each node B  12  comprises one or more base stations providing radio links with the radio terminals  13 .  
         [0040]    Each unit  10 - 12  of the network is associated with an operation and maintenance server  15 - 17  (OMC, “Operation and Maintenance Centre”) having in particular the role of configuring it. In the example of FIG. 1, these servers  15 - 17  are called OMC-s for the MSCs  10 , OMC-R for the RNCs  11  and OMC-B for the nodes B  12 . For tracking the performance, the OMCs  15 - 17  are linked with a server  18  called the PM (“Performance Monitoring”) server which processes the data collected with a view to their utilization by the network administrator. The OAM architectures and the corresponding interfaces in the UMTS networks are known and described in the technical specifications 3G TS 32.102 v3.2.0 (“3G Telecom Management Architecture, Release 1999”), 3G TS 32.104 v3.4.0 (“Telecommunication Management; 3G Performance Management, Release 1999”), and 3G TS 32.106-1 v3.1.0 (“Telecommunication Management; Configuration Management; Part 1: 3G Configuration Management: Concept and Requirements Release 1999”) published by the 3GPP (“Third Generation Partnership Project”).  
         [0041]    The network elements, in particular the MSCs  10 , RNCs  11  and nodes B  12 , each comprise processors (CPU)  20  responsible among other things for network operating system functions (OSF). These processors  20  are configurable by the servers  15 - 17  for effecting the detection of a certain number of particular events, which may for example be occurrences of protocol data units (PDU) or of signaling messages of particular types, sent or received by the network element  10 - 12 .  
         [0042]    These processors  20  may be associated with local storage units  21  used in particular for the temporary recording of coding data generated in the course of the observation of the particular events, so as to subsequently report the time distribution of these events to the OAM servers  15 - 18 .  
         [0043]    The processing performed by the processor  20  of a network element  10 - 12  in order to structure the data to be provided to the OAM servers so as to report the detected events is for example in accordance with the procedure illustrated in FIG. 4.  
         [0044]    This procedure uses an estimation λ of the rate of the events, from which the sampling quantities k i  are calculated. If the user (network administrator) has some idea of the overall average rate of the events to be detected, this value can be assigned to the parameter λ during initialization  30 . Otherwise, the estimated rate λ is initialized to a low (but not zero) arbitrary value so that the estimation model adapts fairly rapidly.  
         [0045]    The procedure of FIG. 4 also uses a shift parameter Δ serving to sharpen the accuracy of the measured sampling times. This shift parameter Δ is initialized to zero in step  31 .  
         [0046]    In step  32 , the sampling quantity K (=k i  during the i-th iteration) is calculated as a function of the current estimated event rate λ:  
           K=f (λ)  (1)  
         [0047]    Preferably, this quantity K is proportional to the estimated rate λ, to within rounding errors. The function f can in particular be defined by:  
           f (λ)=┌ Z.λ.n/S┐   (2)  
         [0048]    where the parameters Z, n and S are fixed by the user and provided to the processor  20  by the OAM server  15 - 17  when execution of the method is instigated. The parameter Z is a total duration of observation of the events by the processor  20 . The parameter n is a number of bits used to form the coding data representing a quantized value of the sampling time (for example n=8 for quantization on one byte). The parameter S represents a target for the size of file to be generated during the observation period Z, expressed as a number of bits (for example S=8192 (bits) for a target size of 1 kilobyte).  
         [0049]    Before the first iteration of the loop represented in FIG. 4, the steps  30  and  32  lead to initializing the sampling quantity K=k 1 . Each iteration leads to recalculating an estimated event rate λ, from which the next sampling quantity k i+1  will be updated by reapplying the function f in step  32 .  
         [0050]    In each of these iterations, the variables T (sampling time) and k (event counter) are initialized to zero in step  33 . The processor  20  then waits for the next event to be detected (step  34 ). When this next event occurs, after a measured duration d following the previous event, the variable T is increased by this duration d and the integer k is incremented by one unit in step  35 . The processor then compares the integer k with the sampling quantity K (=k i ) during the test  36 . If k&lt;K, the procedure does not immediately require any other calculations and the processor simply returns to standby in expectation of the next event in step  34 .  
         [0051]    When k=K during test  36 , the expected number of events has been reached, so that the processor  20  produces data for coding the metered sampling time. This sampling time is equal to the amount T+Δ, unless the latter is negative. If T+Δ&gt;0 in test  37 , the time T is therefore increased by Δ in step  38 , and the same amount is temporarily assigned to the shift Δ in step  39 . If T+Δ≦0 in test  37 , the value of T (&gt;0) is not modified and that of the shift Δ (&lt;0) is replaced by Δ+T in step  40 . The sampling time T is then quantized in step  41 .  
         [0052]    In the example of FIG. 4, the quantized value t of the sampling time T is calculated by applying a function g to the three variables T, K and λ. An example thereof will be described hereinbelow with reference to FIG. 5. The quantization step  41  comprises the production of coding data which characterize the quantized value t.  
         [0053]    In the next step  42  of the loop, the shift parameter Δ is updated by deducting the quantized value t of the metered sampling time T from the temporary value of this parameter Δ as determined in step  39  or  40 .  
         [0054]    The event rate λ is re-estimated in step  43  with the aid of a function h of three variables which consist of the previous value of the estimated rate λ, the current sampling quantity K and the quantized value t of the sampling time which has just been calculated in step  41 . The processor updates the sampling quantity K in step  32  after this re-estimation  43  of the event rate λ.  
         [0055]    An advantageous expression for the function h is:  
           h (λ,  K, t )=(1− x ).λ+ x.K/t   (3)  
         [0056]    where the weighting coefficient x is such that 0&lt;x≦1. This coefficient x is for example provided to the processor  20  with the parameters defining the observation conditions. It may also be a coefficient which can be adapted as a function of the variability of the metered sampling times. Smaller values of x decrease the sensitivity of the estimator of the rate λ. In the limit case where x=1, which leads to taking λ=K/t, only the traffic of the current iteration is taken into account in estimating λ, this possibly leading to abrupt variations of the estimator. By way of example, the coefficient x can be taken as equal to 0.1.  
         [0057]    It should be noted that other methods of estimating the event rate λ may be used in step  43 . For example, if the processor  20  holds in memory the aggregate sum  
         S   i     =       ∑     j   =   1     i          k   j                             
 
         [0058]    of the sampling quantities k j  used successively in iterations j=1, 2, . . . , i as well as the aggregate sum  
         S   i   ′     =       ∑     j   =   1     i          t   j                             
 
         [0059]    of the quantized values t j  of the corresponding sampling times, it can then calculate the event rate λ=λ i+1  at the end of the i-th iteration in the form:  
         λ i+1   =S   i   /S′   i   (4)  
         [0060]    The estimator (3) is however preferable since it allows better tracking of the variations in the model while allowing its sensitivity to be adjusted.  
         [0061]    Various methods can be used to quantize the sampling times T in step  39 . A method which is simple but rather wasteful of memory space consists in outputting, as coding data, a floating point number representing a quantized value t equal to the metered sampling time T. In this case, a shift parameter Δ does not need to be taken into account.  
         [0062]    [0062]FIG. 5 shows a preferred mode of quantizing the sampling times, which relies on a prediction time interval [T min , T max [ positioned initially with respect to a prediction value θ=K/λ.  
         [0063]    The quantization using n-bit indices, the prediction interval [T min , T max [ is divided into 2 n −2 equidistributed segments of length:  
             α   =         T   max     -     T   min           2   n     -   2               (   5   )                               
 
         [0064]    When the sampling time T falls between T min  and T max , it is quantized by an n-bit index representing a number q lying between 1 and 2 n −2, representative of the position of the time T in the prediction interval. This number q is given by:  
             q   =     1   +     ⌊       T   -     T   min       α     ⌋               (   6   )                               
 
         [0065]    where, for a number y, └y┘ represents the integer equal to or immediately less than y. The corresponding quantized value t, which achieves an approximation of the sampling time T, is then given by:  
             t   =       T   min     +       (     q   -     1   2       )     ·   α               (   7   )                               
 
         [0066]    When the sampling time T is less than T min , the prediction interval [T min , T max [ is shifted leftwards and the index q=0 is output. When the sampling time T is greater than T max , the prediction interval [T min , T max [ is shifted rightwards and the index q=2 n −1 is output.  
         [0067]    With reference to FIG. 5, this procedure for quantizing the sampling time T commences in step  50  with the calculation of the prediction value τ=K/λ, from which are deduced the bounds of the initial prediction interval: T min =c m .θ and T max =c M .θ (step  51 ). By way of example, we can take c M =1/c m =5.  
         [0068]    In test  52 , the sampling time T to be quantized is compared with the lower bound T min  of the prediction interval. If T&lt;T min , the prediction interval is replaced by a new time interval situated immediately below the preceding interval, it being possible to do this by replacing T max  by T min  in step  53  then by taking T min =T max /τ in step  54 . The index q=0 is then output in step  55  before carrying out test  52  again. When T≧T min  in test  52 , another test  57  is performed to compare the sampling time T with the upper bound T max  of the prediction interval. If T≧T max , the prediction interval is replaced by a new time interval situated immediately above the preceding interval, it being possible to do this by replacing T min  by T max  in step  58  then by taking T max =T min .τ in step  59 . The index q=2 n −1 is then output in step  60  before carrying out test  57  again. The number τ is for example equal to 5.  
         [0069]    When T min ≦T&lt;T max , the number α is calculated according to relation (5) in step  61 , then the index q is calculated according to relation (6) in step  62 . This index q is output in step  63 , after which the quantized value t is calculated according to relation (7) in step  64 . This value t=g(T, K, λ) is returned in step  65  so as to terminate execution of the function of step  41  of FIG. 4. The execution of this function has produced one or more values of the index q which characterize the quantization value t once the prediction value τ=K/λ is known. This or these indices q are written successively by the processor  20  to the associated memory  21 .  
         [0070]    On completion of the procedure of FIG. 4, which terminates when the specified duration Z has elapsed, the coding data file is composed of a succession of n-bit values representing the string of indices q. With the initialization value k 1 =f(λ 1 ), this string makes it possible to retrieve the set of pairs (k i , t i ).  
         [0071]    The recovery of this information is typically performed by the PM server  18  to which the file containing the string of indices q is addressed. The corresponding procedure is illustrated by FIG. 6.  
         [0072]    This procedure commences with the initialization of the number K=k 1 . Firstly, (step  70 ), the estimated rate λ=λ 1  is initialized in the same way as in step  30  of FIG. 4, then in step  71 , the sampling quantity K=f(λ) is calculated as in step  32  of FIG. 4.  
         [0073]    The prediction value θ of the sampling time T is calculated in step  72  according to θ=K/λ then, in step  73 , the bounds of the prediction interval are determined: T min =c m .θ and T max =c M .θ.  
         [0074]    The next index q of the file is then read in step  74 . If this index q is equal to θ (test  75 ), the prediction interval is shifted leftwards by replacing T max  by T min  in step  76 , then T min  by T max /τ in step  77 , after which the scheme returns to step  74  to read the next value of the index q. If q=2 n −1 (test  78 ), the prediction interval is shifted rightwards by replacing T min  by T max  in step  79 , then T max  by T min .τ in step  80 , after which the scheme returns to step  74  to read the next value of the index q.  
         [0075]    When 1≦q≦2 n −2, the quantities α and t are calculated in steps  81  and  82  respectively according to relations (5) and (7). Accordingly, the PM server has available the pair (k i , t i )=(K, t), K having been calculated in step  71  and t in step  82 . This pair (K, t) forms the subject of a processing in step  83 . Various types of possible processing are set forth hereinbelow. In step  84 , the estimated event rate λ is recalculated in the same way as in step  43  of FIG. 4, then the scheme of FIG. 6 returns to the aforesaid step  71 . This scheme stops when the file of indices q is exhausted.  
         [0076]    The processing of a pair (K, t) in step  83  can consist simply in storing this pair with a view to subsequent calculations. It can also consist in calculating aggregate values making it possible, at the end of the decoding of the file, to obtain statistical indicators such as averages, variances, etc.  
         [0077]    This processing can also consist in recompiling a traffic histogram with a uniform time step T′. FIG. 7 illustrates the corresponding operations performed within step  83  of FIG. 6.  
         [0078]    This processing consists essentially in performing linear interpolations of the sampling quantities k i  when the successive intervals of duration t i  are not aligned with the regular intervals of duration T′. It uses an interpolation variable ε≧0 which, in the course of the i-thiteration of the procedure of FIG. 6, represents the time shift  
           ∑     j   =   1       i   -   1            t   j       -       T   ′     ·       ⌊       ∑     j   =   1       i   -   1              t   j     /     T   ′         ⌋     .                             
 
         [0079]    The regular time intervals of duration T′ are enumerated by an index p. The event counter is denoted k′ in the procedure of FIG. 7. The quantities ε, p and k′ are set to zero in the initialization step  70  of the procedure of FIG. 6.  
         [0080]    At the start of the processing  83  (step  90  of FIG. 7), a corrected time t′=t+ε is determined. This corrected time t′ is compared with the time step T′ during test  91 . If t′&lt;T′, the processing  83  consists simply in increasing the counter k′ by K (step  92 ), then in assigning the value of the time t′ to the variable ε (step  93 ).  
         [0081]    If t′≧T′ during test  91 , the counter k′ is increased by a fraction of the sampling quantity K, i.e. by K.(T′−ε)/t, and the index p is incremented by one unit in step  95 . In the next step  96 , the p-th value of the histogram is output as being the current value of the counter k′. This counter k′ then receives the value K.T′/t in step  97 . In the next step  98 , the time step of the histogram T′ is subtracted from the corrected time t′. After this subtraction, if t′≧T′ (test  99 ), the index p is incremented by one unit in step  100 , then the p-th value of the histogram is output in step  101  as being k′=K.T′/t. After this step  101 , the scheme returns to the aforesaid step  98 .  
         [0082]    When t′&lt;T′ in test  99 , there is no longer any histogram value to be output in the course of the current iteration. The counter k′ is updated by assigning it the value K.t′/t in step  102 , then the value of the time t′ is assigned to the variable ε in step  93 .