BACKGROUND OF THE INVENTION
[0001] Systems and methods for delivering content to a user via a content distribution network
(CDN) are known. Solutions for selecting one CDN among different available CDNs are
likewise known. However, the known solutions are not able to deliver content in a
manner that is suited to the circumstances.
SUMMARY OF THE INVENTION
[0002] One of the objects of the present invention is to improve the prior art, or at least
to remedy some of the problems present therein.
[0003] According to
a first aspect A1, a method for determining a rank index for a content distribution
network, CDN, included in a system comprising a plurality of CDNs (CDN1 ... CDNk)
and at least one aggregate of addresses associated with users (S1 ... Sq), the method
comprising steps of:
- receiving (S110) telemetry data relating to one or more services delivered, in a given
time interval (Δt), by means of each CDN of said plurality of CDNs (CDN1 ... CDNk)
to users of said at least one aggregate of addresses (S1 ... Sq);
- determining (S120), based on said telemetry data, a set of CDN-aggregate performance
indexes (KPI.,.,Δt) indicating a level of performance shown by a CDN in providing
one or more services to users associated with an aggregate of addresses, for each
combination of a CDN of said plurality of CDNs and said at least one aggregate of
addresses;
- determining (S130), based on the set of CDN-aggregate performance indexes, a performance
rank index (KPI*k,q,Δt) for a given CDN (CDNk) of said plurality of CDNs with respect
to said at least one aggregate of addresses, said rank index indicating a rank level
of the CDN-aggregate index of said predetermined CDN relative to the rank indexes
of the CDN of said plurality of CDNs. In other words, step S120 determines, based
on said telemetry data, a set of CDN-aggregate performance indexes (KPI.,.,Δt), wherein
each CDN-aggregate performance index indicates a level of performance shown by a CDN
in providing one or more services to users associated with an aggregate of addresses,
and wherein the set of CDN-aggregate performance indexes comprises the CDN-aggregate
performance indexes for each combination of a CDN of said plurality of CDNs and said
at least one aggregate of addresses.
(Aspect A2) . The method according to aspect A1, wherein said system comprises a plurality
of aggregates of addresses, and wherein the step of determining a set of CDN-aggregate
performance indexes (KPI.,.,Δt) comprises determining a set of CDN-aggregate performance
indexes for each combination of a CDN of said plurality of CDNs and of each aggregate
of said plurality of aggregates of addresses.
(Aspect A3) . The method according to aspect A1 or A2, wherein determining said rank
index comprises determining said rank index on the basis of the number of times a
CDN-aggregate performance index for the given CDN indicates a better performance compared
to the CDN-aggregate performance indexes of said set.
(Aspect A4) . The method according to one of the preceding aspects, wherein determining
said rank index comprises determining said rank index on the basis of the number of
times the CDN-aggregate performance index is in a predetermined relationship with
respect to each of the CDN-aggregate indexes of said set.
(Aspect A5). The method according to one of the preceding aspects, comprising
determining a plurality of specific CDN-aggregate performance indexes (KPIi,.,Δt),
each relating to a respective QoS parameter,
determining a plurality of specific rank indexes, each relating to a QoS parameter
and on the basis of a respective specific performance index, and
determining the rank index (Index of formula 3.1) for the given CDN on the basis of
said specific rank indexes.
(Aspect A6) . The method according to one of the preceding aspects, further comprising
the step of:
- in response to a request to provide a service to a user belonging to an aggregate
of addresses, selecting, among the CDNs suitable for providing services to said aggregate,
a CDN having a higher performance index than other CDNs suitable for providing services
to said aggregate of addresses.
(Aspect A7) . The method according to any one of the preceding aspects, wherein said
at least one aggregate of addresses contains a number of addresses associated with
respective users, wherein said number is preferably modifiable in correspondence with
an event.
(Aspect A8) . The method according to one of the preceding aspects, further comprising
the step of determining that a CDN of said plurality is in an inactive state in correspondence
with an absence of respective telemetry data, and wherein the step of determining
a rank index comprises determining a rank index for the CDN in an inactive state on
the basis of a predetermined value, wherein the predetermined value preferably depends
on the total number of CDNs of said plurality of CDNs.
(Aspect A9) . The method according to one of the preceding aspects, comprising the
step of determining a probability of assigning a CDN in an inactive state to a given
aggregate of addresses based on a predetermined value, and of determining a probability
of assigning each active CDN of said plurality of CDNs by distributing the remaining
probability of assignment on the basis of the rank indexes of each active CDN of said
plurality of CDNs, wherein a CDN is inactive in correspondence with an absence of
respective telemetry data and active in correspondence with a presence of respective
telemetry data.
(Aspect A10). The method according to aspect A9, comprising the step of assigning
to the inactive CDN an assignment probability level equal to the lowest assignment
probability among the active CDNs, and of recalculating the assignment probabilities
for the active CDNs, except for the one having the lowest assignment probability,
based on the remaining probability.
(Aspect A11). A computer program containing instructions which, when executed on a
computer, cause the computer to execute the method according to any one of the aspects
A1 to A9.
(Aspect A12). An apparatus (400) for determining a rank index for a content distribution
network, CDN, included in a system comprising a plurality of CDNs (CDN1 ... CDNk)
and at least one aggregate of addresses associated with users (S1 ... Sq), the apparatus
comprising:
- an interface (410) configured to receive telemetry data relating to services provided,
in a given time interval (Δt), by means of each CDN of said plurality of CDNs (CDN1
... CDNk) to users of said at least one aggregate of addresses (S1 ... Sq) ;
- a processor (420) configured to determine, based on said telemetry data, a set of
CDN-aggregate performance indexes (KPI.,.,Δt) indicating a level of performance shown
by a CDN in providing one or more services to users associated with an aggregate of
addresses, for each combination of a CDN of said plurality of CDNs and said at least
one aggregate of addresses;
- wherein the processor (420) is further configured to determine, based on the set of
CDN-aggregate performance indexes, a performance rank index (KPI*k,q,Δt) for a given
CDN (CDNk) of said plurality of CDNs with respect to said at least one aggregate of
addresses, said rank index indicating a rank level of the CDN-aggregate index of said
predetermined CDN relative to the CDN-aggregate indexes of said set.
(Aspect A13). The apparatus according to aspect A12, wherein said system comprises
a plurality of aggregates of addresses, and wherein the processor is further configured
to determine a set of CDN-aggregate performance indexes for each combination of a
CDN of said plurality of CDNs and of each aggregate of said plurality of aggregates
of addresses.
(Aspect A14). The apparatus according to aspect A12 or A13, wherein the processor
is further configured to determine said rank index on the basis of the number of times
a CDN-aggregate performance index for the given CDN indicates a better performance
compared to CDN-aggregate performance indexes of said set.
(Aspect 15). The apparatus according to one of aspects A12 to A14, wherein the processor
is further configured to determine said rank index on the basis of the number of times
the CDN-aggregate performance index is in a predetermined relationship with respect
to each of the CDN-aggregate indexes of said set.
(Aspect A16). The apparatus according to one of aspects A12 to A15, wherein the processor
is further configured to
determine a plurality of specific CDN-aggregate performance indexes (KPIi,.,Δt), each
relating to a respective QoS parameter,
determine a plurality of specific rank indexes, each relating to a QoS parameter and
on the basis of a respective specific performance index, and
determine the rank index (Index of formula 3.1) for the given CDN on the basis of
said specific rank indexes.
(Aspect A17). The apparatus according to one of aspects A12 to A16, wherein the processor
is further configured to:
in response to a request to provide a service to a user belonging to an aggregate
of addresses, select, among the CDNs suitable for providing services to said aggregate,
a CDN having a higher performance index than other CDNs suitable for providing services
to said aggregate of addresses.
(Aspect A18). Apparatus according to one of apparatuses A12 to A17, wherein said at
least one aggregate of addresses contains a number of addresses associated with respective
users, wherein said number is preferably modifiable in correspondence with an event.
(Aspect A19). The apparatus according to one of aspects A12 to A18, wherein the processor
is further configured to determine that a CDN of said plurality is in an inactive
state in correspondence with an absence of respective telemetry data, and to determine
a rank index for the CDN in an inactive state on the basis of a predetermined value,
wherein this predetermined value preferably depends on the total number of CDNs of
said plurality of CDNs.
(Aspect A20). The apparatus according to one of apparatuses A12 to A19, wherein the
processor is further configured to determine a probability of assigning a CDN in an
inactive state to a given aggregate of addresses based on a predetermined value, and
to determine a probability of assigning each active CDN of said plurality of CDNs
by distributing the remaining probability of assignment based on the rank indexes
of each active CDN of said plurality of CDNs, wherein a CDN is inactive in correspondence
with an absence of respective telemetry data and active in correspondence with a presence
of respective telemetry data.
(Aspect A21). The apparatus according to aspect A20, wherein the processor is further
configured to assign to the inactive CDN an assignment probability level equal to
the lowest assignment probability among the active CDNs, and to recalculate the assignment
probabilities for the active CDNs, except for the one having the lowest assignment
probability, based on the remaining probability.
(Aspect A22). A system comprising an apparatus for determining a rank index according
to one of aspects A12 to A21, and an apparatus for collecting telemetry data.
LIST OF FIGURES
[0004]
Figure 1 is a block diagram of a system to which the present invention can be applied;
Figure 2 is a block diagram of a method according to one embodiment of the present
invention;
Figure 3 is a block diagram of a computer capable of executing a program according
to one embodiment of the present invention;
Figure 4 is a block diagram of an apparatus according to the embodiment of the present
invention;
Figure 5a represents time windows used in determining the rank indexes;
Figure 5b represents time windows used in a specific example of CDN allocation according
to the present invention.
DETAILED DESCRIPTION
[0005] A system to which what is described herein can be applied is illustrated by way of
example in figure 1, which represents various content distribution networks CDN-1
(10-1), ..., CDN-k (10-k), ...CDN-N (10-N), and various aggregates of addresses IP-A1
(20-1), ..., IP-Aq (20-q) , ..., IP-Ana (20-Na) . Each aggregate of addresses represents
a set of addresses associated with respective users, for example IP addresses through
which each user can communicate on the Internet. The IP addresses and the Internet
are only illustrative examples, as what is described can in fact be equally applied
to other types of addresses or other types of communication networks. Furthermore,
any type of CDN can be used, as known to the person skilled in the art. Each CDN can
be capable of delivering one or more services to any user present in any of the aggregates
of addresses. Similarly, each user belonging to one of the aggregates can receive
one or more services from any of the CDNs illustrated. If, for example, a user requests
a new service, it is provided by means of the CDN that is selected among the plurality
of CDNs. The system in figure 1 also comprises a monitor apparatus 30 capable of collecting
telemetry data relating to the services received by one or more users, and delivered
for example via one of the CDNs illustrated. The telemetry data are preferably telemetry
data picked up in the CDN in relation to services provided to a given aggregate of
addresses (in other words, they are not telemetry data provided or picked up by users,
but rather picked up in the CDN). It may be observed that the addresses or aggregates
of addresses discussed herein are different from other parameters such as ASNs (autonomous
system numbers), since the latter solely provide a code identifying how some parts
of the network are divided and administered, whereas the addresses and/or groups (aggregates)
of IP addresses are directly representative of users and/or groups of users that are
connected. In particular, an aggregate of addresses represents a group of addresses
of a network, and thus not all the addresses of that network; in the event that the
network is represented by a CDN, the aggregate therefore represents a group (subset)
of all the addresses to which that CDN distributes content.
[0006] In such a system, however, it is difficult to make an automatic allocation of a CDN
to a user in such a way as to maximise the quality perceived by the user (quality
of experience), and/or to do so in real time, that is, taking into account the conditions
of service quality currently present in the network, and/or to do so in a predictive
manner.
[0007] Based on the considerations of the inventors, the solution proposed makes it possible,
among other things, to optimise the distribution of content to each user in real time,
also taking account of the quality of delivery of the service itself, thus increasing
the probability of providing services with a high quality perceived by the user. As
illustrated further below in detail, the solution envisages collecting telemetry data
relating to the provision of services and, on the basis of these data, calculating
a rank index for each CDN with respect to an aggregate of addresses. The rank index
can be calculated for different CDNs with respect to a same aggregate. The rank index
of a certain CDN thus indicates an expected or predicted level of service provision
by that certain CDN to that aggregate of addresses. Therefore, if a user requests
a new service, it will be possible to select a CDN based on rank indicators among
different CDNs capable of serving an aggregate of addresses to which the user belongs;
for example, the CDN having a higher rank index among all of the CDNs capable of serving
the same user can be selected. Similarly, the allocation of a CDN can be modified
over time, when, for example, the rank indexes are recalculated on the basis of updated
telemetry data. On the basis of this rank indicator, it is optionally also possible
to establish how many users or what percentage of users (clients) will be allocated
to the CDN in proportion to the value of the rank index. Furthermore, again rationally,
it is possible to take account of active or inactive CDNs in the process of allocating
the client to a CDN, where inactive CDN means a CDN for which updated telemetry data
are not available (sufficient).
[0008] With reference to figure 2, one embodiment relating to a method for determining a
rank index for a content distribution network (CDN) included in a system comprising
a plurality of CDNs and at least one aggregate of addresses associated with users
will now be described. An example of this system is illustrated in figure 1, in the
particular case in which there is a single aggregate of addresses. This is in fact
the general case in which the rank indexes are calculated for a plurality of CDNs
(CDN-1 ... CDN-k, ...) with respect to a same aggregate (IP-q), for example in the
case where the ranks are meant to be used for determining the allocation of one or
more users belonging to that aggregate.
[0009] In a step S110 of this method, telemetry data are collected which relate to one or
more services delivered, in a given time interval Δt, by means of each CDN of the
plurality of CDNs to one or more users of at least one aggregate of addresses 10-Aq.
Service means one among or a combination of audio, video and/or data services; therefore,
the service allows the user to enjoy audio and/or video and/or data-based content
(for example content provided by an application). The given time interval is a time
interval during which the telemetry data relating to the provision of services during
the same interval are collected. The given time interval Δt is preferably a time interval
adjacent to the instant of time at which the rank indexes are determined (for the
sake of simplicity, calculation instant); adjacent means that the given interval ends
at the calculation instant, or is separated from the latter by a given delay interval
Δd determined on the basis of the time necessary for measurements and/or for collecting
and/or sending the data. With reference to the time interval Δt or Δd, given means
that it can be fixed once and for all, modified according to need, and/or modified
dynamically, e.g. according to the network conditions, the telemetry measurement system,
etc. In other words, it can be said that the interval Δt is attached to or near the
calculation instant. The temporal nearness or adjacency of the telemetry data to the
calculation instant ensures that the rank of the CDN can be obtained substantially
in real time, thus increasing the quality delivered to the user. Telemetry data means
any type of data relating to the measurement of quality parameters tied to the provision
of one or more services by a CDN to one or more users. Examples of such telemetry
data, which will also be provided further below, are represented for example by any
one or a combination of bitrates, available network bandwidth, number of errors, total
rebuffering time, number of rebuffering events, etc. The telemetry data can be received
by any system or apparatus capable of collecting them, as known in the art, where
the device 30 in figure one represents solely an example.
[0010] In step S120, based on the telemetry data received, a set of CDN-aggregate performance
indexes is determined which indicates a level of performance shown by a certain CDN
in providing one or more services to one or more users associated with a certain aggregate
of addresses. Therefore, "CDN-aggregate" means that the performance index relates,
for example, to a CDN k and to an aggregate of addresses q. The set of performance
indexes determined in step S120 thus contains the performance indexes with respect
to the aggregate of addresses k for each of the CDNs that are capable of serving the
aggregate k.
[0011] In step S130, based on the set of CDN-aggregate performance indexes determined, for
example, in step S120, a performance rank index is determined for a given CDN (CDN-k)
with respect to an aggregate of services IP-q. The rank index thus indicates a rank
level (ranking, or priority, or classification level) of a predetermined CDN k relative
to the rank indexes of other CDNs capable of serving the same aggregate q. The rank
can be calculated for one or more of the CDNs of the plurality of CDNs, and not necessarily
for all the CDNs of the plurality and not necessarily for all the CDNs that serve
an aggregate.
[0012] In other words, the performance index is an indication tied to the telemetry data,
whereas the rank index of a CDN k is a relative index, in that it indicates the quality
delivered by the CDN k to the aggregate q relative to the other indexes (performance
indexes, but also rank indexes, as the latter depend on the performance index) of
the other CDNs capable of serving the same aggregate q. The rank index can be determined
on the basis of a single metric and/or respective performance index, or on the basis
of a combination of several metrics and/or performance indexes, as is evident, and
will also be illustrated further below with reference to examples.
[0013] Therefore, thanks to the rank index, it is possible to simply determine at any instant
in time which CDN is capable of most reliably providing a service to a user belonging
to a certain aggregate, among multiple CDNs capable of serving the same aggregate
(and therefore the same user). It is noted that the solution takes the addresses,
and the telemetry data relating to the addresses, directly into consideration, so
that it is possible to take into consideration the actual conditions of quality of
delivery of a service. In this manner it is possible, for example, to select the CDN
that is most appropriate at the moment of starting delivery of a service, or selecting
a different CDN during the delivery of a service should another CDN come to be in
the conditions for a better delivery of the service.
[0014] Optionally, the method according to the present embodiment can also be applied to
a system in which there exists a plurality of aggregates of addresses 20-1 ... 20-q
... 20-Na. In such a case, the step of determining a set of CDN-aggregate performance
indexes comprises determining a set of CDN-aggregate performance indexes for each
combination of a CDN of the plurality of CDNs and of each aggregate of the plurality
of aggregates of addresses. In symbols, the set of performance indexes will count
the performance indexes for all of the pairs (CDNi, IP-Aj), wherein i and j each represent
the CDN and the aggregates respectively included in the system. Accordingly, the rank
indexes for each of these pairs can be determined; furthermore, in calculating the
rank index of all the CDNs in relation to a single aggregate (in symbols, calculating
the performance indexes for (CDN, IP-Aq) means all the CDNs that can serve the aggregate
of IP addresses-Aq), all the performance indexes also of aggregates other than those
to which the rank index refers can also be taken into consideration. It is noted,
in fact, that although the method works by calculating the indexes of all the CDNs
with respect to a single aggregate (as illustrated with reference to figure 2), it
has been observed that it can be advantageous to calculate the rank index for a CDN
in relation to the aggregate q also taking account of the performance indexes of all
the pairs (CDNi, IP-Aj), i.e. taking into consideration the performance indexes in
relation to aggregates other than the aggregate q. In fact, the inventors have found
that calculating the rank index in relation to an aggregate q taking account of all
the CDN-aggregate combinations leads to a more complete representation of the network
in a certain moment, and therefore a better allocation or reallocation of new clients.
In other words, though it could be sufficient to consider only the behaviour of all
the CDNs towards the set of addresses to which a user belongs, also considering other
addresses helps to represent the network better, and possible indirect conditioning
of other IP aggregates other than the aggregate to which the user belongs.
[0015] Optionally, in the method according to the present embodiment, determining the rank
index comprises determining the rank index on the basis of the number of times a CDN-aggregate
performance index for the given CDN indicates a better performance compared to the
CDN-aggregate performance indexes of said set. In this manner, it is possible to calculate
a rank index relying on simple counting operations, convenient to obtain also in real
time. Optionally, the count can be compared against the total number of CDNs serving
an aggregate, or all the valid CDN-aggregate combinations in the system. In this manner,
one is able to easily obtain a normalised index.
[0016] Optionally, in the method according to the present embodiment, determining the rank
index comprises determining the rank index on the basis of the number of times the
performance index for a pair, for example CDN k - aggregate q, is in a predetermined
relation (expressed, for example, in mathematical terms, or in terms of the magnitude
of the respective values) with respect to each of the CDN-aggregate indexes of said
set. As illustrated further below, for example, a determination is made of the number
of times in which a parameter, such as, for example, the bitrate of a CDN k towards
an aggregate q, is greater than the bitrates shown by the other CDN-aggregate combinations.
Similarly, or also in combination, a determination can be made of the number of times
in which a parameter, such as, for example, the rebuffering time of the CDN k - aggregate
q pair, is less than the rebuffering time of the other CDN-aggregate pairs (or greater,
if the inverse of those values is used).
[0017] Optionally, the method of the first embodiment can comprise: determining a plurality
of specific CDN-aggregate performance indexes (KPIi,.,Δt), each relating to a respective
QoS parameter; determining a plurality of specific rank indexes, each relating to
a QoS parameter (quality of service, e.g. bitrate, rebuffering, etc.; see also the
examples provided further below), and based on a respective specific performance index;
determining the rank index (see also the formula 1.1 in the example further below)
for the given CDN on the basis of said specific rank indexes. In other words, it is
possible to obtain a rank index on the basis of specific rank indexes, each obtained
on the basis of a respective specific performance index. In still other words, the
granularity of the method can be increased by combining together different QoS factors,
optionally suitably weighted.
[0018] Optionally, the method according to the first embodiment can comprise the step of,
in response to a request to provide a service to a user belonging to an aggregate
of addresses, selecting, from among the CDNs suitable for providing services to said
aggregate, a CDN having a higher rank index than the other CDNs (or, in other words,
higher compared to the respective performance ranks of other CDNs) that can serve
the same aggregate.
[0019] Optionally, in the method according to the first embodiment, an aggregate of addresses
with respect to which the degree of performance is determined comprises a number of
addresses associated with respective users, wherein this number is preferably modifiable
in correspondence with an event. The event can be represented, for example, by a predetermined
instant in time, and/or by an instant in correspondence with a given interval, and/or
by a command, for example from a network management device. In another example, alternatively
or in combination, the event can be represented by the fact that addresses comprised
in the aggregate start to manifest quality parameters differing greatly from one another;
in this case, it could be preferable to divide the addresses of the aggregate into
two or more new aggregates of addresses in order to increase the level of granularity
with which the large are determined (where one of the new aggregates could be the
original one, but with a reduced number of addresses; the excess addresses could therefore
be distributed into new aggregates). Similarly, addresses of two or more pre-existing
aggregates could be grouped together in a new aggregate (or in one of the pre-existing
aggregates), for example when the individual addresses present in the various pre-existing
aggregates show similar or identical quality. This therefore allows the granularity
of the system to be adjusted in relation to the complexity of calculation, thus optimising
the quality provided to users.
Optionally, the method according to the first embodiment can comprise the further
step of determining that a CDN is in an inactive state in correspondence with an absence
of respective telemetry data, for example because of a malfunction or the fact that
the collection of telemetric data is not envisaged for that CDN. In this case, the
step of determining a rank index comprises determining a rank index for the CDN in
an inactive state on the basis of a predetermined value. The predetermined value can
preferably depend on the total number of CDNs of said plurality of CDNs, or it can
be a value established on the basis of statistical models, and/or on the basis of
historical telemetry data. In this manner, it is possible to ensure that new users
continue to be assigned to the inactive CDN (but only from a telemetric viewpoint);
the predetermined value can therefore enable the continuous exploitation of the inactive
CDN, and be selected so as not to overload it in view of the fact that it is not possible
at the moment to monitor its operating conditions and load. Furthermore, alternatively
or in combination, the predetermined value can preferably depend on the total number
of CDNs of the plurality of CDNs, as will also be illustrated in an example further
below.
[0020] Optionally, the method according to the first embodiment can comprise the step of
determining a probability of assigning a CDN in an inactive state to a given aggregate
of addresses based on a predetermined value, and of determining a probability of assigning
each active CDN to a respective aggregate of addresses by distributing the remaining
probability of assignment based on the rank indexes of each active CDN. As noted earlier,
a CDN is inactive in correspondence with an absence of respective telemetry data,
and active in correspondence with a presence of respective telemetry data. In this
manner, the users can be appropriately balanced even if telemetric data are not available
for one or more CDNs; regarding the probability value to be assigned to the inactive
CDN, what was illustrated above applies. Remaining probability means the difference
between the value 1 and the probability assigned to one or more inactive CDNs.
[0021] Optionally, the method according to the first embodiment comprises the step of assigning
to the inactive CDN an assignment probability level equal to the lowest assignment
probability among the active CDNs, and of recalculating the assignment probabilities
for the active CDNs, except for the one having the lowest assignment probability,
based on the remaining probability.
[0022] Optionally, the method according to the first embodiment comprises determining a
probability of assigning new users to a CDN based on the priority ranking (for example,
the inverse of the rank, optionally using correction factors, or calculating an average
of its rank index relative to all the rank indexes of all the other active CDNs),
therefore of assigning to an inactive CDN the lowest probability of assignment among
the active CDNs. At this point, this variant envisages redetermining the probability
of assignment for the remaining active CDNs (that is, excluding the CDN having the
lowest probability) based on the remaining probability, for example by once again
using the rank indexes. The method according to this variant can be iterated if necessary,
for example if a lower probability than originally calculated results from the redistribution
of properties.
[0023] It shall be observed that what was illustrated above regarding the method or the
variants thereof also applies for the other embodiments or examples described in the
present description; the considerations set forth above will thus not be repeated.
[0024] With reference to figure 3, a second embodiment will now be illustrated, relating
to a computer program containing instructions which, when executed on a computer,
cause the computer to execute the method according to the first embodiment or any
optional step thereof, or any method step described herein, also in combination. Figure
3 illustrates a structure of a computer capable of executing such a method on the
basis of respective instructions. In particular, figure 3 illustrates a block diagram
of a computer 300, which comprises a processor 320, a memory 330, and an interface
IF 310, wherein the processor 320 is capable of exchanging data with the memory and
with the interface. The interface is moreover capable of exchanging data with external
units and/or with a user. The aforesaid instructions can be stored in the memory 330
and executed by the processor 330 as needed. The telemetric data can be provided to
the processor via the interface, and optionally stored in the memory 330, although
this is not strictly necessary, as the processor can process the data without having
to store them in the memory 330, for example in the event that processing on the fly
is possible, or by storing only small portions of the data in an internal cache of
the processor while they are being received from the outside.
[0025] According to a third embodiment, not illustrated, there is provided a medium (for
example a flash memory, ROM, RAM or EPROM, in which to store the instructions; or
also a wireless signal or a signal transmitted via a cable, which therefore represents
a medium capable of transmitting the instructions to an entity that executes them;
etc.) suitable for containing instructions configured to execute, by means of a computer
(such as the one illustrated in figure 3 for example), one or more of the steps, also
in any combination, of the method or methods described herein.
[0026] With reference to figure 4, a fourth embodiment will now be described, relating to
an apparatus (400) for determining a rank index for a content distribution network,
CDN, included in a system comprising a plurality of CDNs and at least one aggregate
of addresses associated with users. Such a system can be, for example, as illustrated
in figure 1, noting that in fact the system need not necessarily contain multiple
aggregates, but rather, in its basic configuration it can contain a single aggregate
represented by a number of IP addresses, this number preferably being a subset of
the IP addresses/users present in the system. The number can be selected on the basis
of a series of parameters, for example in such a way that they are geographically
near, and/or show comparable quality (telemetry data), etc. The apparatus 400 comprises
an interface 410, and a processor 420. We shall limit ourselves to describing the
main aspects; reference may be made to other parts of the description for further
details, including optional ones, which are equally applicable to the apparatus 400.
[0027] The interface (410) is configured to receive telemetry data relating to services
provided, in a given time interval (Δt), by means of each CDN of the plurality of
CDNs (CDN-1 ... CDN-k ... CDN-N), to users of the at least one aggregate of addresses
(IP-1 ... IP-q ... IP-Na). Any type of interface can be used, such as, for example
a chipset capable of engaging in wireless or optical communication, communication
via a coaxial cable, etc. The processor (420) is configured to determine, on the basis
of the telemetry data, a set of CDN-aggregate performance indexes (indicated in the
examples further below, also with KPI.,.,Δt) indicating a level of performance shown
by a CDN in providing one or more services to users associated with an aggregate of
addresses, for each combination of a CDN of said plurality of CDNs and said at least
one aggregate of addresses. In other words, performance indexes are calculated for
all the combinations between an aggregate and all the CDNs capable of serving the
aggregate. A variety of processors or combinations thereof can be used for this purpose,
for example a generic processor, an RISC, a DSP, either in a single unit or various
components (all situated on a single circuit board or in different interconnected
devices, including remote ones), etc. Furthermore, the processor (420) is configured
to determine, based on the set of CDN-aggregate performance indexes, a performance
rank index (of which KPI*k,q,Δt is an example, as illustrated further below) for a
given CDN (CDN-k) of the plurality of CDNs with respect to the at least one aggregate
of addresses, said rank index indicating a rank level of the CDN-aggregate index of
the predetermined CDN relative to the rank indexes CDN-aggregate of said set.
[0028] According to a fifth embodiment, there is provided a system comprising an apparatus
for determining a rank index according to the third embodiment, and an apparatus for
collecting telemetry data. The telemetry apparatus can for example be the apparatus
30 in figure 1. The system is therefore capable of generating a priority list of the
various CDNs that serve a given aggregate, and the list can be used for managing users,
for example for assigning new requests for services, and/or redistributing the load,
etc. The system can optionally comprise a network management device (not illustrated)
configured to control the provision of one or more services to one or more users based
on the CDN ranking information. The ranking information comprises information indicating
the ranking of each CDN of the plurality, and/or a probability for each CDN which
indicates the probability that a CDN is used in the control process. This control
comprises the allocation of a new user and/or service to a CDN based on the ranking
information, and/or the reallocation of a user and/or service to another CDN.
[0029] In order to illustrate the operation of the invention and the embodiments thereof,
non-limiting examples of the invention will now be taken into consideration. What
was said earlier applies for the following examples, and vice versa; repetitions will
thus be avoided.
[0030] According to one example, the following three steps are envisaged:
- 1. 4 KPIs (key performance indicators) are calculated for each CDN in relation to
4 metrics, based on the data collected, relating to the last five minutes of available
data, for a given subclass of IP addresses. Each of the KPIs represents an example
of the specific performance index; the four KPIs can be combined to obtain a performance
index as illustrated above. The 4 metrics (which can represent examples of QoS parameters)
are: available network bandwidth, number of errors, total rebuffering time, and number
of rebuffering events. The KPIs can be standardised so as to have values comprised
between 0 and 1 (for example by counting how many times the KPI of a CDN-aggregate
pair is in a certain relation with respect to other CDN-aggregate pairs). With regard
to the information relating to the bitrate, the analysis can also be done in a predictive
manner in order to estimate the value of the KPIs in the near future of interest (e.g.
10 minutes) . In the latter case, the data collected relating to the last five minutes
for a given subclass of IP addresses are used as input to the predictive model and
subsequently standardised;
- 2. In order to have a single global indicator that evaluates each CDN, the 4 KPIs
are combined in a single index (as said earlier, an example of the performance index)
by weighting them: 60% bitrate KPI, 10% number of errors KPI, 10% rebuffering time
KPI, and 20% number of rebuffering events KPI;
- 3. From the global indicator for every subclass of IP addresses, for every CDN, one
derives the percentage of clients that will be allocated to that CDN (this is an example
of the rank indicator described above, or in general of rank information) for that
subclass of IP addresses in proportion to the value of the indicator; in the calculation
of this percentage, account will also be taken of the difference between active and
inactive CDNs.
[0031] On the basis of the information obtained, it is therefore possible to allocate new
users/services, and/or to reallocate existing ones, in an optimal manner. In particular,
the solution as illustrated by the example is capable of optimising the distribution
of content by assigning to every user, in real time, the distribution technology that
is best, from a quality standpoint, for the delivery of the content itself, thus increasing
the probability of a high bitrate and stability thereof, as well as minimising the
probability of rebuffering events and errors and improving the general quality of
experience. Furthermore, optimising the selection of a CDN enables the best quality
of content to be delivered to users, increasing their satisfaction and decreasing
the problems tied to retransmissions due to poor quality or, more in general, tied
to user dissatisfaction (churn, calls to CRM, etc) .
[0032] A detailed example illustrating a possible mathematical design of the ranking and
allocation method of the content distribution network (CDN) for routing user requests
for content (content that may be enjoyed on a TV, smartphone, tablet, etc.) to the
best available CDN is presented below. The general objective is to define a logic
based on quality of service (QoS) so as to order the CDNs based on their actual QoS
with the aim of allocating clients to the CDNs with the best performance at any given
moment and thereby of also improving over-the-top (OTT) service delivery. In the following
example, a rank is also provided to CDNs that are not capable of serving a given IP
or aggregate of IP; the ranking in any case makes it possible to have a comprehensive
view of the behaviour of the whole network. In fact, based on the telemetry (not available
for that IP, given that it is not serving addresses in that range) it can be expected
that that CDN will be positioned with a low index. Despite this, the ranking thereof
makes it possible to have a complete picture of the network in a certain moment in
view of possible allocations in different areas/aggregates of addresses, and therefore
to have better overall balancing.
1. Illustration of the example
[0033] In the present example, the mathematical details and the logic at the basis of the
construction of a holistic QoS index are specified in sub-sections 1.1-1.2, and the
logic of the allocation of client requests in sub-section 1.3. The first is the main
metric used to attribute a score to the various CDNs on the basis of the QoS delivered
by them and to rank them, whilst the second is the actual logic of the allocation
of client requests to the CDNs once a scored ranking is available.
1.1 Parameterisation of the CDN ranking and assignment algorithm
[0034] The CDN ranking and assignment algorithm routes a specific client request originating
from a given IP aggregation (for example IP / 20) to the best CDN available. It is
based on a series of configurable parameters that govern the weight, direction and
quality of the statistical metrics calculated by the body of the algorithm/method.
These parameters are:
- a) the number and nature of the QoS information items considered in the ranking. This
parameter defines which QoS KPIs are used in the ranking (bitrate, errors, rebuffering,
etc.);
- b) the relative weight of each QoS information item in determining the level of the
final QoS index. This parameter allows optimising, for example, the importance of
rebuffering events relative to error events;
- c) the "correlation" of each QoS information item to the final QoS index. For example,
an increase in the average bitrate should positively correlate with the final QoS
index, whilst an increase in the number of errors should be negatively correlated
with the final QoS index;
- d) The delay considered necessary for the extraction of data from the telemetric data
recording system (for example, a system known as Cassandra can be used). Let it be
assumed, for example, that the time interval between the realisation of a KPI and
the registration thereof in the telemetric recording system is 5 minutes; therefore,
in the ranking, the method will consider the data only from t-5 (this notation means
time t, expressed for example in minutes, optionally sec, etc. minus 5 minutes) backwards
when at t (when it is at time t) to give the system the time necessary for producing
the data;
- e) The calculation time. This is the actual time window in which the index is calculated.
For example, if there is a delay of 5 minutes in writing the data into the telemetric
system and we want to calculate the index over 3 minutes, the calculation time will
be comprised from t-5 to t-7, including both;
- f) The recalculation frequency in the ranking. This parameter configures the ranking
recalculation frequency (for example every minute);
- g) The level of IP aggregation. This parameter allows the desired level of IP aggregation
to be configured (for example IP / 20). Hereinafter, we will use "IP aggregation"
and "IP" interchangeably for the sake of illustrative clarity.
[0035] The timeline in figure 55 illustrates the time windows considered in the ranking
for an example parameterisation.
1.2 Design of the holistic QoS metric and CDN ranking
[0036] In order to rank the CDNs based on the QoS delivered by them, it is necessary to
define an aggregate, global measure of the QoS by combining different information
on the QoS. The type of information included in this aggregate measure of QoS refers
at present to bitrate events, rebuffering events and errors: we refer to the "final"
QoS index as this present selection of QoS information. However, as noted earlier
in Sub-section 1.1, the overall algorithm is designed so that it can be expanded in
this respect to include further QoS metrics that are available or can be recovered
by the telemetry system (for example the start time; it is noted, however, that the
invention also works with a single metric, or with any other combination of metrics).
3.2.1 Formulation of the index
[0037] The final QoS index (an example of the rank index discussed elsewhere) is a weighted
average of the QoS information (an example of the performance indexes discussed elsewhere).
The CDNs are therefore ranked from the highest to the lowest based on the value taken
on by this final QoS index. Now we shall go through every step of the formulation
of the QoS index. Formally, for a given CDN k, a given IP q, a given calculation window
Δt and a given set of QoS parameters I, the QoS index is given by:

where w
i is the weight of the i-th QoS parameter and,

[0038] Therefore, the final QoS index calculated in (1.1) is comprised between 0 and 1.
As explained in sub-section 1.1, the weight of the different KPIs used is one of the
parameters of the ranking algorithm. We shall define the current weighting of the
KPIs in the paragraphs below. The function h () in the formula (1.2) is a standardisation
function used to render the QoS information on different scales comparable by reducing
them to between 0 and 1 (for example the number of error events and the rebuffering
time have different scales, h () reduces both of them to between 0 and 1). This function
is defined as:

[0039] Equation (1.4) represents an example of counting how many times a performance index
of a CDN is measured in relation to a respective performance index of other CDNs.
The two cases are applied, respectively: (A) when KPIi is positively correlated with
the QoS index (e.g. in the case of bitrate) and (B) when KPIi is negatively correlated
with the QoS index (e.g. in the case of rebuffering) . n
i, ., ., Δt is the number of CDN-IP combinations in Δt (the number of KPI
is, ., .,
Δt).
[0040] Therefore, in case (A) h() is substantially the percentage of times that KPIi in
Δt, for any CDN and any IP, is less than the realisation of KPIi on a given CDN k
and a given IP q under examination. The greater this percentage is, the better KPIi
has manifested itself on that CDN in that IP compared to the overall population of
KPIi's on any CDN and any IP in Δt. This specification of h() is suitable, for example,
for the bitrate, as an increase in the bitrate must be positively correlated with
the QoS index.
[0041] In case (B), by contrast, h() is the percentage of times that KPIi in Δt, for any
CDN and any IP, is greater than the realisation of KPIi on CDN k and IP q. The lower
this percentage is, the better KPIi has been on that CDN in that IP compared to the
overall population of KPIi's on any CDN and any IP in Δt. This specification of h()
is suitable, for example, for the rebuffering time, as an increase in the rebuffering
time must be negatively correlated with the QoS index.
1.2.2 Calculation of QoS KPIs
[0042] An example for constructing every KPIi that contributes to equation (1.1) will now
be described. In the present example, the algorithm takes account of three types of
bitrate, errors and rebuffering relating to the QoS information. This information
is transmitted by a series of "information functions" γi (one for every KPIi) applied
on "raw" QoS metrics m
i extracted from every SSTT event by the telemetry system (e.g. Cassandra). When they
are applied to the "raw" QoS metrics, these functions return the various KPIi's introduced
in Section 1.2.1. In symbols:

where r is the index of the SSTT row in the example in which the telemetry system
is represented by Cassandra.
[0043] The first metrics (also raw metrics) m
i considered now in the present example are:
Bitrate, calculated as the ratio between the total number of bytes downloaded and
the downloading time;
Number of error events;
Total rebuffering time;
Number of rebuffering events.
[0044] Each of the information functions γi (in relation to the metric m
i) that produces the different KPI
i, k, q, Δt used to evaluate the CDN can be defined in a variety of ways.
[0045] If there are no data in the telemetry system for a given combination of CDN-IP times,
all the corresponding KPI*
i, kq, Δt for i = 1, ..., I cannot be calculated and the final QoS index will be NA (not available,
missing). Details on the functions γi and m
i will be omitted; we observe that the person skilled in the art will be able to choose
the appropriate one according to the circumstances and note that the use of such functions
is optional, as the method in fact works all the same if they are omitted (for example,
the "raw" data can be used directly or processed only marginally with simple correction
factors).
1.3 Design of the CDN assignment logic
1.3.1 Proportional allocation
[0046] Sub-section 1.1 described the construction of an aggregate QoS index for assigning
scores (a rank index) to the CDNs in a given aggregation and time window. Once a ranking
is produced, the algorithm must manage the allocation of clients to each CDN by setting
the probability (another example of a rank index, i.e. a rank index expressed in probability
terms) that a client will be assigned to the first CDN in the ranking, to the second
CDN in the ranking and so on. The general method for allocating clients to the CDNs
is to give a "probability of assignment" proportional to the strength of the relative
QoS index of a CDN compared to the general ranking. In symbols:

so:

[0047] This logic works well when we have telemetry data on every possible CDN for a given
IP so as to actually provide a QoS index score to each of them. When this is not the
case, the allocation logic must be optimised to give every CDN the possibility of
being in the ranking; therefore, managing "active" and "inactive" CDNs becomes important.
1.3.2 Managing "active" and "inactive" CDNs
[0048] In some cases, for a given CDN k and a given IP q in Δt, it may occur that there
are not any data in the telemetry system (for example Cassandra) for actually producing
the index. This could be due to a request for content originating from a new IP or
to general technical errors that prevented the data from being recorded in Cassandra.
These circumstances essentially render a CDN "inactive" from a ranking perspective
(i.e. it was not "active" in the recent past and therefore did not produce telemetry
data; hence, no QoS index is calculated). Ideally, this should not discriminate against
a CDN by excluding it from the ranking, as it might be the best in terms of QoS. In
order to manage it, we statically assign a share of allocation probability to active
and inactive CDNs according to table 1.
Table 1 - Probability of allocation of assignments to active CDNs
| Number of Active CDNs |
Share of Allocation Probability to Active CDNs |
Share of Allocation Probability to Inactive CDNs |
| 0 |
0% |
100% |
| 1 |
50% |
50% |
| 2 |
80% |
20% |
| > 2 |
90% |
10% |
| Equal to number of all CDNs |
100% |
0% |
[0049] Clearly, this implies that (in the most frequent case, there are more than 2 active
CDNs):


where
Ǩ is the set of "active" CDNs and K is the set of "inactive" CDNs. Let
nǨ be the number of active CDNs and
nǨ the number of inactive CDNs.
[0050] The active CDNs will thus receive an allocation probability proportional to their
strength in terms of the QoS index as in Equation (1.8): the sum of these amounts
to 0.9 (in the most frequent case, i.e. there are more than 2 active CDNs). The remaining
0.1 is assigned in even proportions to the inactive CDNs: 0.1 to the sole inactive
CDN, if there is only one, 0.05 (= 0.1 / 2) to each if there are two inactive CDNs,
0.0333 (= 0.1 / 3) to each CDN if there are three inactive CDNs and so on.
[0051] However, this method can result in unfair allocations to inactive CDNs in the event
that a probability is assigned which is higher than the probability assigned to the
last active CND. In symbols, this occurs when:

[0052] It should be noted that max(
pǩ,a,Δt) =
pǩ,a,Δt for every k, as they are all equal to the share of probability of allocation to inactive
CDNs divided by the number of inactive CDNs. A workaround for obtaining a fair CDN
allocation consists in distributing among the active CDNs the global quantity
nǨ · (max(
pǩ,a,Δt) - min(
pǩ,a,Δt)) (i.e. a sort of "unfair surplus") in proportion to their strength in terms of the
QoS index and, at the same time, setting the allocation probability of inactive CDNs
equal to the allocation probability of the last active CND in the ranking. This "unfair
surplus" can be defined as:

[0053] therefore, a fraction of
εq,Δt proportional to its strength in terms of the QoS index is assigned to every active
CND. This means that, for a given active CND
k, we add the following quantity to the current allocation probability:

[0054] The final assignment of a CDN ranking results from the redistribution of
εq,Δt with respect to the active CDNs and giving inactive CDNs the (same) lowest allocation
probability. This ensures that the active CDNs obtain a share of clients that is proportional
to their QoS index and always higher than that of inactive CDNs. At the same time,
inactive CDNs also have the possibility of obtaining assigned users/clients, producing
telemetry data and introducing the active part of the ranking into the subsequent
recalculation of the ranking in that IP.
1.4 Example of the operation of the ranking and allocation algorithm
[0055] In this sub-section we shall explain the operation of the ranking and allocation
algorithm by means of a concrete routing example. In order to provide a detailed presentation
of the algorithm, we shall assume that the present date is 12 March and we wish to
calculate the ranking of a CDN and its client allocation at 15:18 for clients who
arrive from 15:19 to 15:23 (i.e. the algorithm should carry out and publish the ranking
in 60 seconds and be run every 4 minutes). Let us further suppose that a 3-minute
interval is necessary to write data into Cassandra and make them available for calculation.
Furthermore, let us set the time window for calculating the QoS index equal to 5 minutes,
i.e. the index on the basis of which the CDNs are evaluated is calculated using available
data spanning the last 5 minutes. For the sake of illustrative clarity, let us set
the IP granularity of the ranking equal to IP / 20 (however, the algorithm is flexible
and may accommodate more granular IP aggregations such as IP / 24, or other values).
Let us consider IP / 20 37.227.9 and see how clients will be assigned on this this
IP / 20. The weights specified in this example for every QoS KPI are the example ones
also discussed above, therefore, 60% for the bitrate, 10% for the number of errors,
10% for the rebuffering time and 20% for rebuffering events of the numbers. Therefore,
our assumptions are summarised in table 2.
Table 2 - Parameterisation of the ranking and allocation algorithm in this routing
example
| Parameter of the Algorithm |
Value in this example |
| Calculation time |
h. 15:18, March 12, 2017 |
| Data recording time lag |
3 mins |
| Calculation time window |
5 mins |
| Validity of the ranking |
4 mins |
| IP granularity |
IP /20 |
| wBR |
60% |
| wERR |
10% |
| wRBT |
10% |
| wRBN |
20% |
[0056] Figure 5b clarifies the time windows considered. Based on the available telemetry
data, let us now assume that the following ranking indexes (QoS Index) are produced:
| CDN |
Number of SSTT events used in the calculations |
QoS Index |
| CND-1 |
22 |
0.6630 |
| CDN-2 |
18 |
0.5549 |
| CDN-3 |
46 |
0.5345 |
| CDN-4 |
1 |
0.4000 |
| CDN-5 |
73 |
0.2187 |
| CDN-6 |
0 |
NA |
[0057] This example presents a case of data not available on CDN-6. The following paragraph
will explain the treatment of CDNs without data that allows a fair allocation of clients
also to CDNs without data.
1.4.2 Procedures of client allocation to CDNs
[0058] Once a CDN ranking is available, the algorithm calculates the probability of assigning
a client to each CDN or, alternatively, the fraction of clients obtained by a CDN,
based on the QoS index thereof. In this case, CDN-1, CDN-2, CDN-3, CDN-4 and CDN-5
represent "active CDNs", whereas CDN-6 is the only CDN that is "inactive", as no data
are available for the timespace IP combination. Therefore, the active CDNs initially
obtain a total 90% probability of being assigned to a given client, whereas the remaining
10% is left to the inactive CDN-5. The 90% probability of assignment is distributed
among active CDNs in a manner that is proportional to their QoS. For example, OSCDN
will have a probability of assignment equal to:

[0059] The complete redistribution is provided in table 4:
| CDN |
Number of SST events used in the calculations |
QoS Index |
First allocation |
| CDN-1 |
22 |
0.6630 |
0.2516 |
| CDN-2 |
18 |
0.5549 |
0.2106 |
| CDN-3 |
46 |
0.5345 |
0.2029 |
| CDN-4 |
1 |
0.4000 |
0.1518 |
| CDN-5 |
73 |
0.2187 |
0.0830 |
| CDN-6 |
0 |
NA |
0.1000 |
[0060] In this case, CDN-6 (the only inactive CDN) obtains a higher probability of first
allocation than CDN-5 (the last active CND in the ranking). It is debatable whether
this allocation is fair or unfair, as no data was produced by this CDN and therefore
we do not have a basis for giving it a probability of assignment based on a higher
QoS than an active CDN. In order to make these assignments fair, the algorithm calculates
the difference between the first allocation probability of CDN-6 and that of CDN-5,
i.e. 0.0170, and sets the two first allocation probabilities of these CDNs equal to
each other. The remaining surplus (i.e. Equation (1.10) is redistributed over active
CDNs in proportion to their QoS index, in the same manner as Equation (1.11)).
[0061] The resulting ranking and the assignment of the assignment, which will be used from
15:19:00 to 15:22:59 of 12 March 2017 is shown in table 5.
| CDN |
Number of SST events used in the calculation s |
QoS Index |
First Allocation |
Final Allocati on |
| CDN-1 |
22 |
0.6630 |
0.2516 |
0.2564 |
| CDN-2 |
18 |
0.5549 |
0.2106 |
0.2146 |
| CDN-3 |
46 |
0.5345 |
0.2029 |
0.2067 |
| CDN-4 |
1 |
0.4000 |
0.1518 |
0.1547 |
| CDN-5 |
73 |
0.2187 |
0.0830 |
0.0846 |
| CDN-6 |
0 |
NA |
0.1000 |
0.0830 |
[0062] As noted earlier, the detailed example is only illustrative and provided for the
sake of completeness, but it does not limit the invention as defined by the claims.
[0063] The devices, apparatus and the components thereof illustrated in the present description
can be realised by means of software, hardware, firmware or any combination thereof.
Furthermore, such devices, apparatus and the components thereof can be realised in
a concentrated manner (i.e. in a single physical entity) or be distributed (for example
into multiple physical entities, also remote from one another and interconnected via
a network). Furthermore, what has been illustrated for a method applies equally for
a corresponding device, computer program, system, signal, and vice versa.
[0064] Naturally, the above description of embodiments and examples applying the principles
recognised by the inventors is given solely for the purpose of exemplifying such principles
and must therefore not be construed as a limitation of the invention or of the teachings
set forth herein or which may be derived by the person skilled in the art.
1. Method for determining a rank index for a content distribution network, CDN, included
in a system comprising a plurality of CDNs (CDN1 ... CDNk) and at least one aggregate
of addresses associated with users (S1 ... Sq), the method comprising the steps of:
- receiving (S110) telemetry data relating to one or more services delivered, in a
given time interval (Δt), by means of each CDN of said plurality of CDNs (CDN1 ...
CDNk) to users of said at least one aggregate of addresses (S1 ... Sq);
- determining (S120), based on said telemetry data, a set of CDN-aggregate performance
indexes (KPI.,.,Δt) indicating a level of performance shown by a CDN in providing
one or more services to users associated with an aggregate of addresses, for each
combination of a CDN of said plurality of CDNs and said at least one aggregate of
addresses;
- determining (S130), based on the set of CDN-aggregate performance indexes, a performance
rank index (KPI*k,q,Δt) for a given CDN (CDNk) of said plurality of CDNs with respect
to said at least one aggregate of addresses, said rank index indicating a rank level
of the CDN-aggregate index of said predetermined CDN relative to the rank indexes
of the CDNs of said plurality of CDNs.
2. Method according to claim 1, wherein said system comprises a plurality of aggregates
of addresses, and wherein the step of determining a set of CDN-aggregate performance
indexes (KPI.,.,Δt) comprises determining a set of CDN-aggregate performance indexes
for each combination of a CDN of said plurality of CDNs and of each aggregate of said
plurality of aggregates of addresses.
3. Method according to one of the preceding claims, wherein determining said rank index
comprises determining said rank index on the basis of the number of times that the
CDN-aggregate performance index is in a predetermined relationship with respect to
each of the CDN-aggregate indexes of said set.
4. Method according to one of the preceding claims, comprising:
determining a plurality of specific CDN-aggregate performance indexes (KPIi,.,Δt),
each relating to a respective QoS parameter,
determining a plurality of specific rank indexes, each relating to a QoS parameter
and on the basis of a respective specific performance index, and
determining the rank index for the given CDN on the basis of said specific rank indexes.
5. Method according to one of the preceding claims, further comprising the step of:
- in response to a request to provide a service to a user belonging to an aggregate
of addresses, selecting, among the CDNs suitable for providing services to said aggregate,
a CDN having a higher performance index than other CDNs suitable for providing services
to said aggregate of addresses.
6. Method according to any one of the preceding claims, wherein said at least one aggregate
of addresses contains a number of addresses associated with respective users, and
wherein said number is preferably modifiable in correspondence with an event.
7. Method according to one of the preceding claims, further comprising the step of determining
that a CDN of said plurality is in an inactive state in correspondence with an absence
of respective telemetry data, and wherein the step of determining a rank index comprises
determining a rank index for the CDN in an inactive state on the basis of a predetermined
value, wherein this predetermined value preferably depends on the total number of
CDNs of said plurality of CDNs.
8. Method according to one of the preceding claims, comprising the step of determining
a probability of assigning a CDN in an inactive state to a given aggregate of addresses
based on a predetermined value, and of determining a probability of assigning each
active CDN of said plurality of CDNs by distributing the remaining probability of
assignment on the basis of the rank indexes of each active CDN of said plurality of
CDNs, wherein a CDN is inactive in correspondence with an absence of respective telemetry
data and active in correspondence with a presence of respective data of telemetry.
9. Method according to claim 8, comprising the step of assigning to the inactive CDN
an assignment probability level equal to the lowest assignment probability among the
active CDNs, and of recalculating the assignment probabilities for the active CDNs,
except for the one having the lowest assignment probability, based on the remaining
probability.
10. Computer program containing instructions which, when executed on a computer, cause
the computer to execute the method according to any one of claims 1 to 9.
11. Apparatus (400) for determining a rank index for a content distribution network, CDN,
included in a system comprising a plurality of CDNs (CDN1 ... CDNk) and at least one
aggregate of addresses associated with users (S1 ... Sq), the apparatus comprising:
- an interface (410) configured to receive telemetry data relating to services provided,
in a given time interval (Δt), by means of each CDN of said plurality of CDNs (CDN1
... CDNk) to users of said at least one aggregate of addresses (S1 ... Sq) ;
- a processor (420) configured to determine, based on said telemetry data, a set of
CDN-aggregate performance indexes (KPI.,.,Δt) indicating a level of performance shown
by a CDN in providing one or more services to users associated with an aggregate of
addresses, for each combination of a CDN of said plurality of CDNs and said at least
one aggregate of addresses;
- wherein the processor (420) is also configured to determine, based on the set of
CDN-aggregate performance indexes, a performance rank index (KPI*k,q,Δt) for a given
CDN (CDNk) of said plurality of CDNs with respect to said at least one aggregate of
addresses, said rank index indicating a rank level of the CDN-aggregate index of said
predetermined CDN relative to the CDN-aggregate indexes of said set.
12. System comprising an apparatus for determining a rank index according to claim 11,
and an apparatus for collecting telemetry data.