The embodiments described herein relate to an apparatus and method for identifying network object groups, for example network object groups from a plurality of network objects forming part of a communications network.
A network object group refers a group of network objects, for example cells, ENodeBs, or other network elements that have strong physical or logical relations or connectivity in a communication network. The communication networks can be traditional physical networks, or logical networks in virtual or cloud environments. The network objects can also be logical objects such as virtual ENodeBs, as well as being physical objects, such as physical ENodeBs.
Discovering or determining network object groups can be beneficial for many network management tasks, such as resource management tasks, service monitoring, event correlation, and root-cause analysis.
For example, if a cloud resource allocation management system is considered as an example, a customized resource allocation setting can be used for a group of virtual network nodes having similar resource usage modelling. In another example relating to a policy based control loop system, an expert defined resource allocation action policy can be applied for a group of network objects which have similar resource usage patterns for network resource slicing.
In yet another example relating to fault management, generally, a single fault in a network will cause a large amount of alarm signals from different interrelated network nodes. Knowledge about nodes which are strongly interrelated, i.e. a group with network objects that are strongly interconnected, is critical to correlate these alarms in a single network incident, so that noisy or secondary alarms can be reduced, and the root cause of the alarm pinpointed quickly.
Thus, from the above it will be appreciated that it is very beneficial to find the interaction or relationship between network objects for many network management tasks. Existing approaches to identifying a group of network objects depend on the physical topology information of networks. If network objects are connected together or geographically close, then interactions between network objects can be identified.
However, since the nature of networks is becoming more and more dynamic, with a growing trend of network virtualization, for example with software defined networking (SDN), then manually keeping track of topology information is becoming a daunting and impossible task.
Much work is therefore being undertaken to focus on automatic topology discovery. For example, some network vendors propose topology discovery protocols, such as, Cisco Discovery Protocol (CDP), Juniper Discovery Protocol (JDP) and Link Layer Discovery Protocol (LLDP). However, these protocols are generally not supported by all network vendors. Furthermore, they do not support multi-vendor networks. Some approaches use standard IP protocols, such as a simple network management protocol (SNMP), however, these protocols are applied to an IP network, and do not work for heterogeneous network objects.
One prior art technique for finding connectivity for heterogeneous networks or systems attempts to statistically map (i.e. correlate) traffic patterns observed between input/output ports of network elements to find links of network topology. If the statistical distribution of an output (e.g. package rate) of an element A is similar to the input of an element B, then such a prior art technique assumes that elements A and B are likely to be connected. Another known prior art technique uses a distance function between elements to compare values of a measurement between two devices over time to determine the mutual interaction between two elements of a system.
Furthermore, in a network, a policy-based management system contains policies and rules that govern or manage network resources, such as network elements or services. The policy managed resources are defined as policy targets. For example, a network interface card, an IP address can be selected as a policy target. However, when there is a large amount of network resources (e.g. millions of user requirements (UEs) in a network), it is impossible or difficult to select different policies for each network resource individually. Some policy models allow a policy target to be defined for a group of network resources, or a policy target group to be defined, for example based on network device types, IP ranges, resource locations, etc. However, these approaches do not work for network resources having inexplicit identifiers, dynamic or unknown characteristics, such as based on traffic patterns, busy hours, resource usage patterns, and so on.
From the above it can be seen that identifying a group of network objects is becoming more problematic as technology changes.
It is an aim of the present embodiments to provide a method and apparatus which obviate or reduce at least one or more of the disadvantages mentioned above.
According to a first aspect there is provided a method of identifying a network object group from a plurality of network objects of a communications network. The method comprises grouping network objects based on a function of a plurality of key performance indicators, KPIs, which are common to the plurality of network objects.
According to another aspect there is provided an apparatus for identifying a network object group from a plurality of network objects of a communications network. The apparatus comprises a processor and a memory, said memory containing instructions executable by said processor. The apparatus is operative to group network objects based on a function of a plurality of key performance indicators, KPIs, which are common to the plurality of network objects.
For a better understanding of examples of the present invention, and to show more clearly how the examples may be carried into effect, reference will now be made, by way of example only, to the following drawings in which:
The following sets forth specific details, such as particular embodiments for purposes of explanation and not limitation. But it will be appreciated by one skilled in the art that other embodiments may be employed apart from these specific details. In some instances, detailed descriptions of well known methods, nodes, interfaces, circuits, and devices are omitted so as not obscure the description with unnecessary detail.
The embodiments herein will be described in terms of identifying a group of network objects in a communication network. It is noted that the network objects may comprise any form of network object, including physical and logical objects, or a combination of both (including for example virtual objects, e.g. virtual ENodeBs or cells, or physical objects, e.g. physical ENodeBs or cells). Likewise, the communications network may be a traditional physical communications network, or a logical communications network in a virtual or cloud environment, or a combination of both.
As will be described further herein, the embodiments group network objects which have strong logic relations. The strength of relations is determined based on a function of a plurality of key performance indicators, KPIs, which the network objects have in common.
In one embodiment, grouping network objects based on a function of a plurality of KPIs comprises representing network objects of the plurality of network objects x1 to xM using a respective set of data vectors, wherein a set of data vectors relates to the KPIs available at a network object. For example, for a network object x1, having KPIs k1 to kN, its set of data vectors can be represented as k1_x1 to kN_x1. Likewise, for a network object xM, having KPIs k1 to kN, its set of data vectors can be represented as k1_xM to kN_xM. It is noted that different network objects may have different numbers of KPIs.
The method comprises comparing at least one data vector between a plurality of network objects x1 to xM to determine a relation value r. This may comprise, for example, comparing a particular data vector between the plurality of network objects, or comparing a sub-set of corresponding data vectors between a plurality of network objects. The method comprises identifying a network object group at a first hierarchical level if the network objects have a relation value r above a first threshold value. As such, network objects having a relation value r above a first threshold can be grouped within the same network object group.
In one example a relation value is a value representing the value of a particular KPI of one network object compared or correlated with a value of the same KPI of another network object. For example, if a KPI being compared between network objects is a Up Link Throughput (UL_TPT) KPI, the relation value may be a value for a relation determined based on throughput on the uplink. As such, in an example which uses this KPI to identify a group of network objects, this KPI from different network objects can be compared to determine a relation value, and the relation value compared against a first threshold level, such that network objects having a relation value, based on the KPI UL_PT, which is above this first threshold level then being identified as forming part of the same network object group. Different algorithms may be used to determine a relation value, as will be described later in the application.
In this way the method finds network object groups having strong relationships (i.e. connectivity, similarity, interactivity) automatically based on the available KPIs of network objects. The method does not require special protocols, such as topology discovery protocols, or special network probes. The method can also be used with heterogeneous and homogeneous network objects.
In one embodiment, the step of comparing at least one data vector between a plurality of network objects comprises comparing a data vector relating to a single KPI common to the plurality of network objects.
In an alternative embodiment, the step of comparing at least one data vector between a plurality of network objects comprises comparing a sub-set of data vectors relating to a sub-set of KPIs common to the plurality of network objects. It is noted that a sub-set of KPIs may comprise any number of KPIs, from two KPIs in common to all of the KPIs which are common to the network objects.
Grouping network objects as described above can be considered as grouping network objects at a first hierarchical level. A plurality of different network object groups may therefore be identified, whereby the different network object groups are formed based on different criteria for grouping the network objects, for example by selecting which KPIs to compare when determining a relation value between network objects.
For example, network objects can be grouped in one or many aspects for different network management use cases. For example, grouping based on similar resource usage modelling for resource allocations. Grouping based on strong interrelations for alarm handling and root cause analysis to discovery inexplicit affinity.
By grouping network objects in different groups in this way, different network objects having strong relations in a particular group can be managed together. For example, an expert cell parameter setting can be used for cells having similar service or activity patterns. Network capacity provisioning or other expert management policy can be designed on for network nodes groups. It reduces network management complexity by managing object groups rather than each individual network object, which saves time and labour for network engineers or operators.
In addition to grouping network objects into network object groups at a first hierarchical level (e.g. a child level), according to another aspect two or more network object groups may themselves be grouped together at a second hierarchical level (e.g. a parent level).
Thus, according to another embodiment the method comprises grouping two or more network object groups at a second hierarchical level.
In one example, grouping two or more network object groups comprises grouping according to the strongest relationship between any network object of a first network object group with any network object of a second network object group.
In an alternative example, grouping two or more network object groups comprises grouping according to an average relation function between network objects of a first network object group and network objects of a second network object group.
By having some network object groups formed at a first hierarchical level, and other network object groups formed at a second hierarchical level, this can enable network management tasks to be performed in a more detailed level, for example for network objects which are more closely related in the child network object groups, and network management tasks performed at a second less detailed level for network objects which are less closely related in a parent group.
It is noted that in some embodiments two or more parent network object groups may be further grouped at a third hierarchical level, and so on.
It is noted that, in the embodiments described herein, different relation measure functions can be used to determine object groups in different hierarchical levels. For example, a first relation measure function (e.g. a Kolmogorov-Smirnov test) may be used to group objects in different big groups as parent groups, while a second relation measure function (e.g. a Pearson correlation) may be used to group objects in smaller groups for objects in each parent group. This allows more accurate hierarchical level grouping to be provided for the same network cases. This also means that it is not necessary to have different relation threshold values for the same measure function to determine hierarchical levels.
It is also noted that, in the embodiments described herein, different sets of KPIs can be used to determine object groups in different hierarchical levels. For example, KPIs k1, k2, k3 may be used to determine a parent group, while KPIs k1, k4, k5, k6 may be used to determine the smaller groups inside the parent group. This provides flexibility and enables more accurate hierarchical level grouping for same network cases.
According to one embodiment, grouping network objects based on a function of a plurality of KPIs comprises: weighting different KPIs using respective weighting factors; computing relation strength values between network objects using a plurality of weighted KPIs; and grouping network objects at a first hierarchical level if a relation strength value between the network objects is above a first threshold value.
Further details will now be provided using examples of how various network objects may be grouped as described above.
The system of
Using the received KPI information from the KPI monitor 21, the grouping processor 20 is configured to group network objects into one or more network object groups at a first hierarchical level, and/or one or more groups of network object groups at a second hierarchical level, for example as described above. In the example of
Once the grouping processor 20 has grouped network objects into one or more network object groups at a first hierarchical level (e.g. network object groups 25, 26, 27 and 28 in
For example, the information in the group knowledge base 23 may be used by an application module 25, for example a fault management application, or a policy based management application, for controlling or configuring or monitoring each network object group 25, 26, 27, 28. In this way different network object groups may be managed in different ways, if desired.
In one embodiment the information in the group knowledge base 3 may be used by a group graph builder module 24, for example to build pictorial graphs of the network object groups, which may be used for example by network engineers and the like.
It is noted that, in one example, the group knowledge base 23 and/or KPI monitor 21 form part of the grouping processor 20. It is noted that the grouping processor 20, and/or KPI monitor, and/or group knowledge base 23 may comprise a physical node or nodes, or form part of a cloud based system, or a combination of both.
Thus, in the example of
There are a large number, e.g. hundreds of counters or KPIs available for metrics from managed network objects of networks. In the system of
Below are listed some examples of standard KPIs relating to network objects (e.g. for a Cell) that may be used for identifying network object groups, although it is noted that other KPIs may also be used:
SUMOHOATT: Sum of Internal Handover Attempts (Outgoing Handover)
SUMEOHOATT: Sum of External Handover Attempts (Outgoing Handover)
PMACTIVEUEDISUM: Sum the number of user devices considered active in the downlink direction
DL_TPT: Down link throughput
UL_TPT: Up link throughput
CELL_AVL: Cell availability
It is noted that, in some examples, derived KPIs or metrics based on network events can also be used. It is noted that derived KPIs are KPIs which do not necessarily exist in the original network data, but are KPIs which are calculated, i.e. derived, based on network data. Examples of such derived KPIs include for example:
Freq_Loss_of_Cell_Delineation: Occurrence frequency count of loss_of_cell_delineation alarms
Freq_PIU_restarted: Occurrence frequency count of PIU_restarted alarms
It is noted that any KPIs relating to network objects may be used for network object grouping, and those listed above are just a few examples of KPIs relating to radio cells.
Further details will now be provided in connection with the steps that may be performed by the grouping processor 20 of
In step 301, the grouping processor is configured to transform and align selected KPIs for the plurality of network objects x1 to xM. The transformation and alignment is carried out in order to bring a set of KPIs into a common format between different network objects. The alignment may comprise, for example, aligning according to time stamps or time windows.
In step 303 the method comprises computing relations tree(s) between network objects, further details of which are described later. In step 305 the method comprises determining the constraints of groups. For example, this may include selecting a group size in order to determine how closely related the network objects within that group should be. Further details of this step are provided later. The method comprises assigning each object to different groups, step 307. Again, further details are provided later.
Once objects have been assigned to groups, the method may comprise determining one or more parent groups, step 309. The one or more parent groups may then be used, for example, to build targets for policy target groups, step 311.
Referring back to step 301 of
The grouping process is based on a function based on a plurality of KPIs common between the network objects x1 to xM. For example, if a KPI relating to availability of a network object is selected for the grouping process, then other network objects from the plurality of network objects x1 to xM also require the availability KPI in order to enable the group processing to be performed for this KPI.
The availability KPI values for the plurality of network objects x1 to xM are aligned. For example, if a network object A has seven numeric values for the availability KPI, i.e. one for each day of a week, then the other network objects from the plurality of network objects x1 to xM will be aligned to also have seven availability values for a week.
In this way, representing network objects using a set of data vectors comprises correlating data vectors between a plurality of network objects, to align the data vectors into a common format between the plurality of network objects.
A set of correlated data vectors represent the final or combined KPIs of every network object x1 to xM.
For example, for the network object x1, then k1, k2, . . . kN are a set of KPIs of the network object x1.
k1_x1={v1, v2, . . . , vn} is a data vector of the KPI k1 of network object x1.
k2_x1={v1, v2 . . . , vn} is another data vector of the KPI k2 of network object x1.
The network object x1 can therefore be represented as a set of KPI data vectors, which represent a function of a plurality of KPIs:
x1={k1_x1, k2_x1, . . . , kN_x1}
This set of KPI data vectors represents behaviors, traffic patterns, etc., and different aspects of a network object depending upon which KPIs k1 to kN are used.
In a similar manner, another network object x2, as a consequence, may have a set of data vectors correlated with the network object x1, such that:
x2={k1_x2, k2_x2, . . . , kN_x2}.
The plurality of network objects x1 xM can be represented by a set of correlated data vectors which is constituted by KPI values. The number of KPIs selected and used to represent a network object depends on the types of network objects and use cases. For example, for root cause analysis in a fault management application, KPIs relating to alarm and availability may be used. For physical topology link reasoning, KPIs related to traffic may be used. For example, in the following matrix of Table 1 below, four downlink throughput and four cell availability KPI values at different time stamps are used to established the data vectors of cell network objects comprising Cell_01, Cell_02 and Cell_03.
Referring again to
For example, the relationship between data vector sets is computed based on a set of relation strength comparison functions, examples of which are listed below.
According to one embodiment, the strength of relations is computed between one KPI. The function below is an example of how a relation strength may be computed between data vectors of one KPI.
Assume k is one KPI selected to represent every network object of the plurality of network objects x1 to xM. k_x1 and k_x2 are first and second data vectors of the KPI k, i.e. corresponding to the KPIs of a first network object x1 and second network object x2, respectively. The strength of relation between the first and second network objects x1, x2 for KPI k may be based on a correlation function, for example based on a Pearson correlation coefficient as shown below:
It is noted that the function described above is merely an example of the type of function that may be used. Other functions, including for example an absolute function (e.g. r_k=|r_k|), negative function (e.g. r_k=1−r_k) or other transformation functions may be applied depending on the KPI selected.
Examples of alternatives to the Pearson correlation coefficient include other relationship functions for the data vectors, for example such as Dynamic Time Wrapping, Spearman correlation, Euclidean distance (e.g. where data is compared on the same scale), or Cohen's d (e.g. to indicate a standardized difference between two means), and so on.
It is noted that, data vectors k_x1, k_x2 may be transformed before applying a relationship measure function for same cases. For example, a density estimation function may first be applied to data vectors to obtain probability density functions for each data vector. Then, for example, a Kolmogorov-Smirnov test relationship measure function may be used to compute a relation between probability density functions.
As an alternative to computing a strength of relations between network objects based on one KPI from the plurality of KPIs, according to another embodiment the strength of relations is computed based on a set of KPIs.
Computing a strength of relations between a set of KPIs is based on relations of each KPI of the set.
If k1, k2, . . . , kN is a set of selected KPIs to represent network objects x1 to xM, and r_k_1, r_k_2, . . . r_k_i are computed relation strength values between network objects for each KPI, then the relationship between network objects may be a weighted average of the relationship of each KPI.
where w_i is a weight assigned for KPI ki.
In one embodiment, as a default setting all KPIs can be set to have equal weight.
In addition to computing strength of relations between network objects to form a network object group, “g” (i.e. at the first architectural level mentioned earlier), according to another aspect it is possible to compute strength of relations between network object groups themselves (i.e. at the second architectural level mentioned earlier).
Computing the relation between network object groups is based on relations of network objects in groups. i.e. the r_x (x1, x2) function described above.
If a first network object group, g1, is assumed to contain z number of network objects, then:
g1={g1_x1, g1_x2, . . . , g1_xz}
If a second network object group, g2, is assumed to contain y number of network objects, then:
g2={g2_x1,g2_x2, . . . , g2_xy}
According to one example the relation between the first network object group g1 and the second network object group g2 may defined as the strongest relation between any network object of g1and any network object of g2, such that:
r_g(g1,g2)=max{r_x(g1_x,g2_x): g1_x∈g1,g2_x∈g2}
According to an alternative example, an average relation function is used between network objects of groups, as per the following:
It is noted that, in other examples, other similar functions to those shown above may be used.
Referring back to step 303 of
Referring back to step 305 of
A first threshold or configuration, such as a minimal strength of relations for network objects within a group, or/and minimal number network objects within a group can be used as constrains to determining the number of groups.
For example, in
Thus, when performing the step of assigning network objects to different groups, as per step 307 of
After network objects are assigned to different groups, the grouping results can be stored, for example in a group knowledge base, e.g. group knowledge base 23 of
As mentioned previously, in addition to forming groups of network objects at a first hierarchical level (or child level), in some examples, different levels of groups may be needed. For example, a fine tuned policy may apply to a smaller group, e.g. at a child level, while a general policy may apply to a larger group, e.g. at a parent level. The larger groups can be parent groups comprising a set of smaller children groups.
Parent groups contain smaller or children groups. As a result, a network object can be in multiple groups depending on use cases.
Therefore, parent groups may be determined as per step 309 of
Referring to
As mentioned previously in the system of
Once one or more network object groups have been identified according to one of the embodiments described above, application modules are then able, for example, to build targets of policy target groups, step 311 of
For example, in a scenario having three different resource priority policies and three different network object groups based on resource usage patterns, the system can receive IDs of network objects inside a group or using network object group ID as the target of a policy target group. As a result, a group of network objects can be managed by the same policy.
From the above it can be seen that the embodiments described herein group network objects based on a function of a plurality of KPIs of the network objects. This may involve computing a relation between network objects based on a set of common KPIs of objects. This may also involve computing a relation tree based on relation between network objects, and determining network object groups based on such relation trees. In some examples parent groups are also determined. The network object group ID can then be used as a target of a policy target group. Other applications of use cases include, for example: Fault diagnostic based on object groups, etc.
The processor 201 may be operative to perform other method steps as defined in the embodiments herein.
In a preferred embodiment the apparatus, 20, comprises an interface 205 for communication with other elements of the communications network.
The grouping module 701 may be adapted to perform the method as defined in any one of the embodiments herein.
In a preferred embodiment the apparatus, 70, comprises an interface 703 for communication with other elements of the communications network.
In the embodiments above the network object grouping is based on KPIs which are observed or monitored in relation to the network objects.
The embodiments described above do not target on the physical topology or link discovery of a communications network (although it is noted that the embodiments could in turn be used to inference out topology groups based on KPIs relating to traffic, etc.). The network objects can be grouped in many different aspects depending on what KPIs are selected for logical connectivity/relations. For example, based on resource usage models (e.g. power consummation, bandwidth usage).
From the embodiments described above it can be seen that network objects, for example every network object, is represented by a data vector of its available KPIs. The data vectors are compared to determine the strength of relationship between network objects. Network objects having strong relationships can be grouped together to form basic and/or parent groups.
Object group knowledges can be used for various use cases of network management tasks. It also can be plotted as group graph for visualization.
The embodiments described herein for identifying network objects can be self-learning and adaptive, for example whereby network objects can be grouped and updated online in real or near real time.
Those skilled in the art will appreciate that the functions described above may be implemented in one or more nodes using hardware circuitry (e.g., analog and/or discrete logic gates interconnected to perform a specialized function, ASICs, PLAs, etc.) and/or using software programs and data in conjunction with one or more digital microprocessors or general purpose computers. Nodes that communicate using the air interface also have suitable radio communications circuitry. Moreover, where appropriate the technology can additionally be considered to be embodied entirely within any form of computer-readable memory, such as solid-state memory, magnetic disk, or optical disk containing an appropriate set of computer instructions that would cause a processor to carry out the techniques described herein.
Hardware implementation may include or encompass, without limitation, digital signal processor (DSP) hardware, a reduced instruction set processor, hardware (e.g., digital or analog) circuitry including but not limited to application specific integrated circuit(s) (ASIC) and/or field programmable gate array(s) (FPGA(s)), and (where appropriate) state machines capable of performing such functions.
In terms of computer implementation, a computer is generally understood to comprise one or more processors, one or more processing units, one or more processing modules or one or more controllers, and the terms computer, processor, processing unit, processing module and controller may be employed interchangeably. When provided by a computer, processor, processing unit, processing module or controller, the functions may be provided by a single dedicated computer, processor, processing unit, processing module or controller, by a single shared computer, processor, processing unit, processing module or controller, or by a plurality of individual computers, processors, processing units, processing modules or controllers, some of which may be shared or distributed. Moreover, these terms also refer to other hardware capable of performing such functions and/or executing software, such as the example hardware recited above.
It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. The word “comprising” does not exclude the presence of elements or steps other than those listed in a claim, “a” or “an” does not exclude a plurality, and a single processor or other unit may fulfil the functions of several units recited in the claims. Any reference signs in the claims shall not be construed so as to limit their scope.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2016/082660 | 12/23/2016 | WO | 00 |