Sign In to Follow Application
View All Documents & Correspondence

Method And System For Determining An Optimal Cdn For An End User Device

Abstract: Disclosed subject matter relates to method of determining optimal CDN for playback session in end user device. A CDN management device, receives playback request along with first set of KPIs, third set of KPIs related and fourth set of KPIs, to initiate a playback session. First set of KPIs, third set of KPIs and fourth set of KPIs are captured at end user device. Further, segment identity is determined that identifies segment of end user based on first set of KPIs and second set of KPIs. Thereafter, QoS performance co-efficient of plurality of CDNs is determined based on third set of KPIs, fourth set of KPIs and fifth set of KPIs. Furthermore, initial optimal CDN is determined from plurality of CDNs based on QoS performance co-efficient of each of the plurality of CDNs. Finally, playback session is initiated to stream playback content at end user device through initial optimal CDN. FIG.1

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
08 February 2022
Publication Number
32/2023
Publication Type
INA
Invention Field
COMMUNICATION
Status
Email
Parent Application

Applicants

TATA PLAY LIMITED
3rd Floor, Unit 301 to 305, Windsor, Off C.S.T. Road, Mumbai 400098

Inventors

1. VISHAL ARYA
Tata Play Limited, Unit 301 to 305, 3rd Floor, Windsor, Off C.S.T. Road, Kalina, Santacruz (East), Mumbai 400098, India
2. K PRATHAP CHOWDRY
Tata Sky Technology Centre, Chattarpur Mandi Road, PO – Chattarpur, New Delhi
3. SARABJIT S RUPAAL
Tata Sky Technology Centre, Chattarpur Mandi Road, PO – Chattarpur, New Delhi
4. TAJINDER SINGH
Tata Sky Technology Centre, Chattarpur Mandi Road, PO – Chattarpur, New Delhi

Specification

FORM 2
THE PATENTS ACT 1970
[39 OF 1970]
&
THE PATENTS RULES, 2003
COMPLETE SPECIFICATION
[See section 10; Rule 13]
TITLE: “METHOD AND SYSTEM FOR DETERMINING AN OPTIMAL CDN FOR
AN END USER DEVICE”
Name and Address of the Applicant:
TATA PLAY LIMITED, an Indian company having its registered office at 3rd Floor, Unit 301 to 305,
Windsor, Off C.S.T. Road, Mumbai- 400098, India
Nationality: India
The following specification particularly describes the invention and the manner in which it is to be performed.

TECHNICAL FIELD
The present subject matter relates generally to content delivery network (CDN), and more particularly, but not exclusively to a method and a system for determining an optimal CDN for a playback session in an end user device.
BACKGROUND
A Content Delivery Network (CDN) is a network of interconnected servers which works together to provide fast delivery of the Internet content. The CDN provides fast delivery of internet content such as an audio stream, a video stream, a multimedia content and the like to the end user devices, for example mobile phones, laptops, Television.
For the better experience of end users to view the requested content, in the existing arts, a CDN is determined which would stream the requested content meeting the expectation of the end users. Presently, the CDN selection is performed by the CDN management system and is based on at least plurality of Quality of Service (QoS) parameters associated with each of the plurality of CDNs. The CDN management system determines the QoS parameters based on dynamic monitoring of streaming profiles, historic pattern of consumption of the content and the geospatial parameters. The QoS parameters may include re-buffering ratio, a video start failure rate, a lag ratio, an average bitrate, an error propagation, a video cache miss rate and the like. The CDN management system communicates with one or more CDNs through the communication network and captures the streaming profiles from the edge of the plurality of CDN.
In some embodiments, a content delivery network aggregation system provides content through a network to an end user. The content delivery aggregation system includes a content provider and CDN selector, and a plurality of CDNs. The end user may request for streaming a content from the content providers. Further, the content provider forwards the request to the CDN selector. The CDN selector selects the optimal CDN among the plurality of CDNS of the CDN aggregator system. using heuristically rule based approach to provide the requested content. The CDN selector may use rule-based analytics to intelligently select the optimal CDN using certain rules and information. The CDN selector may use several information that may be included in an incoming IP packet such as source IP address, destination IP address, Type of

service, Time to live and the like to select a particular CDN for streaming the content as requested by the end user. Also, the CDN selector may use the information received from network management systems, time of day, DNS coverage, real time logs, cost, ping time and the like for selecting a particular CDN to stream the requested content by the end user. Finally, the request is forwarded to the selected CDN for streaming the end user requested content.
Thus, in the existing arts, the optimal CDN is determined based on the QoS parameters, and the network parameters which is captured in the proximity of the CDN network or on the edge of the network. In the existing approach, determination of optimal CDN from the CDN edge does not consider the last-mile bottlenecks that is occurred at the end user’s environment. Particularly, in the existing arts the quality of the streaming content is measured and reported by the CDN providers which are mostly situated on the edge of the network. However, the capturing the KPIs from the edge does not consider the last-mile bottlenecks (between the CDN edge and the end users home network) in the content stream delivery. The performance of the last mile public internet may vary with several factors such as Internet Service Provider (ISP) of the user’s vs ISP of the CDN edge, region of the end user, end users relative geo-location, number of heterogenous networks end users connectivity passes through to access the edge server and the like. Thus, it is necessary to consider the last mile delivery factors between the end user environment and the CDN edge for determination of the optimal CDN. Hence there is a need for an improved method and device for determining an optimal CDN for streaming a playback content in the end user device.
SUMMARY
One or more shortcomings of the prior art may be overcome, and additional advantages may be provided through the present disclosure. Additional features and advantages may be realized through the techniques of the present disclosure. Other embodiments and aspects of the disclosure are described in detail herein and are considered a part of the claimed disclosure.
In one non-limiting embodiment of the present disclosure discloses a method of determining an optimal Content Delivery Network (CDN) for a playback session in an end user device. The method includes receiving, by a CDN management device, a playback request to initiate a playback session from an end user device along with a first set of Key Performance Indicators (KPI)s related to the end user device. Further, the method includes determining, by the CDN Management device, a segment identity that uniquely identifies a segment of the end user

requesting the playback session. The segment identity is determined based on at least one of the first set of KPIs and a second set of KPIs derived from the first set of KPIs. Thereafter, the method includes determining, by the CDN management device Quality of Service (QoS) performance co-efficient of plurality of CDNs operating in the segment. The QoS performance co-efficient is determined based on a third set of KPIs, a fourth set of KPIs and a fifth set of KPIs derived from the third set of KPIs and fourth set of KPIs. The first set of KPIs are related to the parameters associated with the end user device and the fourth set of KPIs are related to the parameters related to the playback sessions. Furthermore, the method includes, determining, by the CDN management device, an initial optimal CDN for initiating the playback session from the plurality of CDNs operating in the segment based on the QoS performance co-efficient of each of the plurality of CDNs. Finally, the method includes initiating, by the CDN management device, the playback session through the initial optimal CDN to stream playback content to the end user device.
In an embodiment of the disclosure, the method further includes monitoring, by the CDN management device, the QoS performance co-efficient of the initial optimal CDN and plurality of the CDNs periodically. Thereafter, the method includes, determining, by the CDN management device, a new optimal CDN from the plurality of CDNs based on QoS performance co-efficient of the plurality of CDNs. The determination is performed when the QoS performance co-efficient of the initial optimal CDN degrades to a value below a threshold continuously for a predefined time period. Furthermore, the method includes, switching, by the CDN management device, the playback session from the initial optimal CDN to the new optimal CDN.
In an embodiment of the disclosure, the method further includes determining by the CDN management device, subsequent new optimal CDN for switching based on the periodic monitoring of the QoS performance co-efficient of the plurality of the CDNS operating in the segment.
In an embodiment of the disclosure, wherein the first set of KPIs comprises at least one of an IP address of the end user device, client platform used in the end user device and identity information of the end user device.
In an embodiment of the disclosure, wherein the second set of KPIs comprises at least one of region identification PIN/Zip code of the end user device, Internet Service Provider (ISP)

identification data, end user device details, OS version of the end user device and video player version installed in the end user device.
In an embodiment of the disclosure, wherein the third set of KPIs comprises at least one of latency for manifest fetch, Average Bit Rate (ABR) profile details, latency for transport stream (ts) segments, initial configurations of content player and corresponding buffer, buffer inflow and outflow bit rates, initial startup profile details, content streaming start time and network latency and bandwidth information of the end user device.
In an embodiment of the disclosure, wherein the fourth set of KPIs comprises at least one of current playback profile details, play rate, profile switching, user actions, and stall details.
In an embodiment of the disclosure, wherein the fifth set of KPIs comprises at least one of rebuffering values, stall values, profile insights, and content lag ratio.
In an embodiment of the disclosure, wherein determining the segment identity includes determining, by the CDN management device, a segmentation hash value for the end user device based on at least one of the first set of KPIs and the second set of KPIs. Furthermore, determining, by the CDN management device, the segment identity that uniquely identifies the segment of the end user requesting the playback session by mapping the segmentation hash value with at least one of prestored segments and dynamically identified segments.
In an embodiment of the disclosure, the method further includes determining, by the CDN management device, a session eligibility index indicating eligibility of the end user device to qualify for the determination of at least one of the initial optimal CDN and subsequent new optimal CDNs for initiating the playback session.
In an embodiment of the disclosure, the method further includes determining, by the CDN management device, QoS weightage corresponding to the QoS performance co-efficient of each of the plurality of CDNs operating in the segment based on at least one of the third set of KPIs, a fourth set of KPIs and the fifth set of KPIs, wherein QoS weightage corresponding to the QoS performance co-efficient are determined periodically. Furthermore, the method includes determining, by the CDN management device, an aggregated QoS performance for each of the plurality of CDNs operating in the segment by aggregating the corresponding QoS performance co-efficient and the QoS weightage determined periodically during the playback session.

In another non-limiting embodiment of the present disclosure discloses a method of receiving by an end user device, a playback content from an optimal Content Delivery Network (CDN). The method includes, capturing, by the end user device, a first set of KPIs related to the end user device, a third set of KPIs related to the network associated with the end user device and a fourth set of KPIs related to the session executed in the end user device. Further, the method includes, transmitting, by the end user device, the first set of KPIs, the third set of KPIs and the fourth set of KPIs to a CDN management device for initiation of the playback session. The CDN management device may use the first set of KPIs, the third set of KPIs and the fourth set of KPIs for determining at least one of an initial optimal CDN and new optimal CDN for the playback session in the end user device. Thereafter, the method includes, receiving, by the end user device, a playback content streamed through at least one of the initial optimal CDN and the new optimal CDN from the CDN management device upon initiating the playback session.
In an embodiment of the disclosure, wherein the first set of KPIs, the third set of KPIs and the fourth set of KPIs may be captured using an application installed in the end user device.
In an embodiment of the disclosure, wherein the first set of KPIs, the third set of KPIs, and the fourth set of KPIs are transmitted to the CDN management device periodically.
In an embodiment of the disclosure, the method further includes receiving, by the end user device, a notification from the CDN management device indicating switching of the playback session from the initial optimal CDN to the new optimal CDN.
In yet another non-limiting embodiment of the present disclosure discloses a CDN management device for determining an optimal CDN for a playback session in an end user device. The CDN management device comprises a processor and a memory communicatively coupled to the processor. The memory stores instructions, which, on execution, causes the processor to receive a playback request to initiate a playback session from an end user device along with a first set of Key Performance Indicators (KPI)s related to the end user device. Further, the processor determines a segment identity that uniquely identifies a segment of the end user requesting the playback session based on at least one of the first set of KPIs and a second set of KPIs derived from the first set of KPIs. Thereafter, the processor determines Quality of Service (QoS) performance co-efficient of a plurality of CDNs operating in the segment based on at least one of a third set of KPIs related to network parameters, and a fourth set of KPIs related to the playback session received from the end user device, and a fifth set of KPIs derived from the third set of KPIs, and a fourth set of KPIs. Furthermore, the processor determines an

initial optimal CDN for initiating the playback session from the plurality of CDNs operating in the segment based on the QoS performance co-efficient of each of the plurality of CDNs. Finally, the processor initiates the playback session through the initial optimal CDN to stream playback content to the end user device.
In some non-limiting embodiment of the present disclosure discloses an end user device for receiving by an end user device, a playback content from an optimal Content Delivery Network (CDN). The end user device comprises a processor and a memory communicatively coupled to the processor. The memory stores instructions, which, on execution, causes the processor to dynamically capture a first set of KPIs related to the end user device, a third set of KPIs related to network associated with the end user device, and a fourth set of KPIs related to a playback session. Further the processor transmits a playback request and the first set of KPIs, the third set of KPIs, and the fourth set of KPIs to a CDN management device for initiation of the playback session. The first set of KPIs, the third set of KPIs and the fourth set of KPIs are used by the CDN management device for determining at least one of an initial optimal CDN and new optimal CDN for the playback session. Thereafter, the processor receives a playback content streamed through at least one of the initial optimal CDN and the new optimal CDN from the CDN management device upon initiating the playback session.
In yet another non-limiting embodiment of the present disclosure discloses a system for determining an optimal Content Delivery Network (CDN) for a playback session in an end user device. The system comprises a CDN management device and an end user device. The CDN management device is configured to receive a playback request to initiate a playback session from an end user device along with a first set of Key Performance Indicators (KPI)s related to the end user device. Further, the CDN management device determines a segment identity that uniquely identifies a segment of the end user requesting the playback session based on at least one of the first set of KPIs and a second set of KPIs derived from the first set of KPIs. Thereafter, the CDN management device determines Quality of Service (QoS) performance co-efficient of a plurality of CDNs operating in the segment based on at least one of a third set of KPIs related to network parameters, and a fourth set of KPIs related to the playback session received from the end user device, and a fifth set of KPIs derived from the third set of KPIs, and a fourth set of KPIs. Furthermore, the CDN management device determines an initial optimal CDN for initiating the playback session from the plurality of CDNs operating in the segment based on the QoS performance co-efficient of each of the plurality of CDNs. Finally, the CDN management device initiates the playback session through the initial optimal CDN to

stream playback content to the end user device. The end user device dynamically captures a first set of KPIs related to the end user device, a third set of KPIs related to network associated with the end user device, and a fourth set of KPIs related to a playback session. Further the end user device transmits a playback request and the first set of KPIs, the third set of KPIs, and the fourth set of KPIs to a CDN management device for initiation of the playback session. The first set of KPIs, the third set of KPIs and the fourth set of KPIs are used by the CDN management device for determining at least one of an initial optimal CDN and new optimal CDN for the playback session. Thereafter, the end user device receives a playback content streamed through at least one of the initial optimal CDN and the new optimal CDN from the CDN management device upon initiating the playback session.
The foregoing summary is illustrative only and is not intended to be in any way limiting. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features will become apparent by reference to the drawings and the following detailed description.
BRIEF DESCRIPTION OF THE ACCOMPANYING DIAGRAMS
The accompanying drawings, which are incorporated in and constitute a part of this disclosure, illustrate exemplary embodiments and, together with the description, serve to explain the disclosed principles. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The same numbers are used throughout the figures to reference like features and components. Some embodiments of system and/or methods in accordance with embodiments of the present subject matter are now described, by way of example only, and with reference to the accompanying figures, in which:
FIG.1 shows an exemplary system architecture for receiving by an end user device, a playback content from an optimal Content Delivery Network (CDN) and determining an optimal CDN for the end user device, in accordance with some embodiments of the present disclosure;
FIG.2A shows a detailed block diagram CDN management device used for determining optimal CDN for a playback session in an end user device, in accordance with some embodiments of the present disclosure;

FIG. 2B illustrates an exemplary illustration where different users belonging to the same region are serviced by different Internet Service Providers (ISPs) and a combination of different CDNs, in accordance with some embodiments of the present disclosure;
FIG.3 shows a detailed block diagram of an End Use Device for receiving by an end user device (101), a playback content from an optimal CDN;
FIG.4A shows a flowchart illustrating a method of determining an optimal CDN for a playback session in an end user device, in accordance with some embodiments of the present disclosure;
FIG. 4B shows a flowchart illustrating a method of receiving by an end user device, a playback content from an optimal CDN, in accordance with some embodiments of the present disclosure;
FIG.5 is a block diagram of an exemplary computer system for implementing embodiments consistent with the present disclosure.
It should be appreciated by those skilled in the art that any block diagrams herein represent conceptual views of illustrative systems embodying the principles of the present subject matter. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudo code, and the like represent various processes which may be substantially represented in computer readable medium and executed by a computer or processor, whether or not such computer or processor is explicitly shown.
DETAILED DESCRIPTION
In the present document, the word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment or implementation of the present subject matter described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments.
While the disclosure is susceptible to various modifications and alternative forms, specific embodiment thereof has been shown by way of example in the drawings and will be described in detail below. It should be understood, however that it is not intended to limit the disclosure to the forms disclosed, but on the contrary, the disclosure is to cover all modifications, equivalents, and alternative falling within the scope of the disclosure.
The terms “comprises”, “comprising”, “includes” or any other variations thereof, are intended to cover a non-exclusive inclusion, such that a setup, device or method that includes a list of

components or steps does not include only those components or steps but may include other components or steps not expressly listed or inherent to such setup or device or method. In other words, one or more elements in a system or apparatus proceeded by “comprises… a” does not, without more constraints, preclude the existence of other elements or additional elements in the system or method.
Disclosed herein are a method and a Content Delivery Network (CDN) management device for determining an optimal CDN for a playback session in an end user device. Also, the present disclosure, discloses a method and an end user device receiving by an end user device, a playback content from an optimal CDN. The end user device may dynamically capture one or more KPIs which includes first set of KPIs, third set of KPIs, and fourth set of KPIs using an application installed in the end user device. Further, the end user device may transmit the playback request along with the captured first set of KPIs, third set of KPIs and the fourth set of KPIS to the CDN management device for determining an optimal CDN for the playback request. The CDN management device initially receives a playback request to initiate the playback session from the end user device. Also, the CDN management device receives a first set of KPIs along with the playback request from the end user device. Further, the CDN management device may determine a segment identity that uniquely identifies a segment of the end user requesting the playback session, based on at least the first set of KPIs, and a second set of KPIs derived from the first set of KPIs. Thereafter, the CDN management device, may determine Quality of Service (QoS) performance co-efficient of plurality of CDNs operating in the segment. The QoS performance co-efficient is determined based on at least one of the captured third set of KPIs, fourth set of KPIs and a fifth set of KPIs. The fifth set of KPIs are derived from the third set of KPIs and the fourth set of KPIs. Furthermore, the CDN management device may determine an initial optimal CDN for initiating the requested playback session based on the QoS performance co-efficient of each of the plurality of CDNs. Particularly, the CDN management device may choose the initial optimal CDN from the plurality of CDNs operating in the determined segment, based on QOS performance co¬efficient of each of plurality of CDNs. Finally, the CDN management device, may initiate the playback session through the initial optimal CDN to stream the requested playback content to the end user device.
Thus, in the present disclosure the CDN management device determines an optimal CDN for a playback session in the end user device, based on the one or more KPIs captured directly from

the end user device. The end user device may have an application installed within it, using which the one or more KPIs are dynamically captured. Hence, in the present disclosure the determination of optimal CDN is more accurate since the one or more KPIs are captured directly from the end user device. In the present disclosure, the QoS performance co-efficient is determined based on the one or more KPIs directly captured from the end user device, which leads to the more accurate results in the determination of QoS performance co-efficient and also provides a most optimal CDN through which the playback content is streamed in the end user device. Also, the one or more KPIs captured at the end user device will provide a detailed information regarding the last-mile stream delivery at the end users device from an edge of the CDN. Hence, the determination of optimal CDN may be performed by considering critical last mile delivery parameters at the end users. Thus, the CDN management device of the present disclosure provides the best and the most optimal CDN for the end user device to stream the playback content by directly capturing the one or more KPIs from the end user device.
A description of an embodiment with several components in communication with each other does not imply that all such components are required. On the contrary a variety of optional components are described to illustrate the wide variety of possible embodiments of the invention.
In the following detailed description of the embodiments of the disclosure, reference is made to the accompanying drawings that form a part hereof, and in which are shown by way of illustration specific embodiments in which the disclosure may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the disclosure, and it is to be understood that other embodiments may be utilized and that changes may be made without departing from the scope of the present disclosure. The following description is, therefore, not to be taken in a limiting sense.
FIG.1 an exemplary system architecture for receiving by an end user device, a playback content from an optimal Content Delivery Network (CDN) and determining an optimal CDN for the end user device, in accordance with some embodiments of the present disclosure.
The system architecture 100 includes an end user device 101, a communication network 103 and a Content Delivery Network (CDN) management device 105. The end user device 101 may include a processor 107 (herein after referred to as processor 107 of the end user device101), a memory 111 and an I/O interface 109. The end user device 101 may be any device which is

capable of sending and receiving data through a communication network 103. For example, the end user device 101may be a television, a set-top box, mobile device, laptop, desktop, tablet and the like. Further, the end user device 101 may have one or more application installed in it. The one or more applications may be a software application which may be designed to run on the end user device 101. Thereafter, the processor 107 of the end user device 101 may dynamically capture one or more KPIs using the software application installed in it. The processor 107 of the end user device 101 may capture the one or more KPIs which includes parameters related to the playback content streamed in the end user device 101, the parameters related to the end user device 101, parameters related to the communication network 103 associated with the end user device 101 and the like. The one or more KPIs may include a first set of KPIs, a third set of KPIs and a fourth set of KPIs. The first set of KPIs may be related to the end user device 101, the third set of KPIs may be related to the network associated with the end user device 101 and the fourth set of KPIs may be related to the playback session. Furthermore, the processor 107 of the end user device 101 may transmit a playback request along the with the first set of KPIs, the third set of KPIs and the fourth set of KPIs to the CDN management device 105 through a communication network 103. The processor 107 of the end user device 101 may transmit the playback request to the CDN management device 105 for initiation of the playback session over the optimal CDN. The memory 111 of the end user device 101 may be communicatively coupled with the processor 107 of the end user device 101 to store the one or more captured KPIs. The end user device 101 may transmit the playback request using an I/O interface 109 through a communication network 103 to the CDN management device 105. Finally, the processor 107 of the end user device 101 may receive a playback content from the CDN management device 105 streamed through the determined optimal CDN using an I/O interface 109 of the end user device 101 through a communication network 103.
In an embodiment, the communication network 103 may be at least one of a wired communication network or a wireless communication network.
In the present disclosure, the CDN management device 105 may determine an optimal CDN for a playback session in the end user device 101. For example, the CDN management device 105 may be a server in the CDN network. The CDN management device 105 further includes a processor 113 (hereinafter referred to as processor 113 of the CDN management device 105), an I/O interface 115 and a memory 117 (hereinafter referred to as memory 117 of the CDN

management device105). The processor 113 of the CDN management device 105 may receive a playback request from the end user device 101 along with the first set of KPIs, third set of KPIs and the fourth set of KPIs using an I/O interface 115 of the CDN management device 105. In another embodiment, the processor 113 of the CDN management device 105 may derive a second set of KPIs from the first set of KPIs, and also derive a fifth set of KPIs from the third set of KPIs and the fourth set of KPIS. Further, the first set of KPIs, the second set of KPIs, the third set of KPIs, the fourth set of KPIs and the fifth set of KPIs may be stored in the memory 117 of the CDN management device 105. Upon receiving, the processor 113 of the CDN management device 105 may determine a segment identity that uniquely identifies a segment of the end user device 101 requesting the playback session based on at least one of the first set of KPIs and the second set of KPIs. The segment of the end user device 101 may represent at least one of region of the end user device 101, Internet Service Provider (ISP) of the end user device 101, end user device platform, version of operating system, and content player version of the end user device 101. Further, the processor 113 of the CDN management device 105 may determine Quality of Service (QoS) performance co-efficient of plurality of CDNs operating in the segment of the end user device 101. The processor 113 of the CDN management device 105 may determine QoS performance co-efficient based on at least one of the third set of KPIs, fourth set of KPIs and the fifth set of KPIs. Furthermore, the processor 113 of the CDN management device 105 may determine an initial optimal CDN for initiating the playback session from the plurality of CDNs operating in the segment based on the QoS performance co-efficient of each of the plurality of CDNs. Finally, the processor 113 of the CDN management device 105 may initiate the playback session through the initial optimal CDN to stream playback content to the end user device 101.
FIG.2A shows a detailed block diagram of determining an optimal CDN for a playback session in an end user device, in accordance with some embodiments of the present disclosure.
In some implementations, the CDN management device 105 may include data 203 and modules 205. As an example, the data 203 is stored in the memory 117 configured in the CDN management device 105 as shown in the FIG.2. In one embodiment, the data 203 may include input data 207, derived data 209, segment identity data 211, QoS data 213, CDN data 215 and other data 217. In the illustrated FIG.2, modules 205 are described herein in detail.

In some embodiments, the data 203 may be stored in the memory 117 of the CDN management device 105 in form of various data structures. Additionally, the data 203 can be organized using data models, such as relational or hierarchical data models. The other data 217 may store data, including temporary data and temporary files, generated by the modules 205 for performing the various functions of the CDN management device 105.
In some embodiments, the input data 207 may correspond to the data received from an end user device 101 for initiating the playback session. The input data may be received by the CDN management device 105 for determining an optimal CDN for a playback session in the end user device 101. The input data may include a playback request for initiating the playback session along with one or more Key Performance Indicators (KPI)s captured at the end user device 101. The one or more KPIs may include a first set of KPIs, a third set of KPIs and a fourth set of KPIs. The first set of KPIs may be related to the end user device 101. For example, the first set of KPIs may include at least one of an IP address of the end user device 101, client platform used in the end user device 101, identity information of the end user device 101 and the like. Further, the third set of KPIs may be related to the network associated with the end user device 101. For example, the third set of KPIs may include at least one of latency for manifest fetch (http), Average Bit rate (ABR) profile details, latency for transport stream segments, initial configurations of content player and corresponding buffer, buffer inflow and outflow bit rates, initial start-up profile details, content streaming start time, network latency and bandwidth information of the end user device 101 and the like. Furthermore, the fourth set of KPIs may be related to the playback session. For example, the fourth set of KPIs may include at least one of the current playback profile details, play rate, profile switching details, user actions, stall details and the like. The current playback profile details may include details of the current playback content such as bitrate, resolution, segment size and the like. Also, the play rate refers to the buffer inflow vs outflow bitrate. The profile switching details may further include details such as up/down, bitrates (number of bits processed per unit time), resolution, user bandwidth, buffer details and the like.
In some embodiments, the derived data 209 may correspond to the data derived from the input data 207. The CDN management device 105 may derive one or more additional KPIs from the first set of KPIs, the third set of KPIs and the fourth set of KPIs. The derived data 209 may include a second set of KPIs and a fifth set of KPIs. The second set of KPIs may be derived from the first set of KPIs. For example, the second set of KPIs may include at least one of a region identification (PIN/ZIP) code of the end user device 101, ISP identification data, end

user device details, OS version of the end user device 101, video player version installed in the end user device 101 and the like. Particularly, the region of the end user device 101, ISP of the end user device 101 may be derived from the IP address of the end user device 101. Also, the device details may be derived from the information which are captured as a part of the end user device registration process, similarly the OS version of the end user device 101 may be derived from the device management. Furthermore, the fifth set of KPIs may be derived from the third set of KPIs and the fourth set of KPIs. For example, the fifth set of KPIs may include at least one of the rebuffering values, stall values, profile insights, content lag ratio and the like. Particularly, the rebuffering values may include percentage of rebuffering, frequency of rebuffering and duration of rebuffering. Also, the stall values refer to the slow buffering of a playback content at the end user device 101, where the stall values may include details, such as counts (number of times stalls occurred while streaming the playback content, duration of stalls, statistical mode and median of the stalls, percentage of stalls, frequency of stalls and the like. Moreover, the profile insights may include details such as count of profile switch, percentage playback per profile and the like.
In some embodiments, the segment identity data 211 corresponds to the data which uniquely identifies a segment of the end user device 101. The CDN management device 105 may determine the segment identity data based on the first set of KPIs and the second set of KPIs. The segment identity data 211 may represent a hash value that is determined based on the first set of KPIs and the second set of KPIs. Particularly, the segment identity data 211 may represent a hash value computed by considering region of the end user device 101, Internet Service Provider (ISP) of the end user device 101, end user device platform (For example: Mobile, tablets, web, android TV, smart TVs, ROKU, Apple TV and the like.), end user device 101, Operating System (OS) version of the end user device 101 (For example: Apple MacOS, Microsoft Windows, Googles Android OS, Linux OS, Apple iOS), content player version (For example: MPlayer, mpv, VLC media player, SMPlayer, Amarok and the like) in the end user device 101 and the like.
In some embodiments, the Quality of Service (QoS) data 213 may correspond to a QoS performance co-efficient of a plurality of CDNs operating in the segment of the end user device 101. The QoS performance co-efficient may represent an overall performance of the CDN to guarantee its ability to dependably run high priority application and traffic under limited network capacity. The CDN management device 105 may determine QoS performance co¬efficient of plurality of CDNs based on the third set of KPIs, fourth set of KPIs and the fifth

set of KPIs. The QoS data 213 of plurality of CDNs may be stored in the memory 117 of the CDN management device 105 for future analysis and reference.
In some embodiments, the CDN data 215 may correspond to a plurality of CDNs operating in the segment of the end user device 101. Each of the plurality of CDNs may be associated with the QoS data 213. Further, the CDN management device 105 may refer to the CDN data to determine an optimal CDN for initiating the requested playback session. The CDN data 215 may be used to determine whether the status of each of the plurality of CDNs are known. The status of the CDN may include whether the QoS data 213 is known or not known for a particular CDN among the plurality of CDNs.
In some embodiments, the data 203 may be stored in the memory 117 of the CDN management device 105 may be processed by the modules 205 of the CDN management device 105. The modules 205 may be stored within the memory 117 of the CDN management device 105. In an example, the modules 205 communicatively coupled to the processor 113 configured in the CDN management device 105, may also be present outside the memory 117 as shown in FIG.2 and implemented as hardware. As used herein, the term modules refer to an application specific integrated circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or group) and memory that execute one or more software or firmware programs, a combinational logic circuit, and/or other suitable components that provide the described functionality.
In an embodiment, the modules 205 may include, for example, a receiving module 219, a deriving module 221, a segment identification module 223, a Quality-of-Service determination module 225, QoS monitoring module 227, CDN selection module 229, CDN switching module 231 and other modules 233. The other modules 233 may be used to perform various miscellaneous functionalities of the CDN management device 105. It will be appreciated that such aforementioned modules 205 may be represented as a single module or a combination of different modules.
In some embodiments, the receiving module 219 of the CDN management device 105 may receive an input data 207 for initiating a playback session. Particularly, the receiving module 219 of the CDN management device 105 may receive a playback request along with the first set of KPIs, the third set of KPIs and the fourth set of KPIs for the playback session in the end user device 101. The receiving module 219 may receive the first set of KPIs, the third set of KPIs and the fourth set of KPIs using an I/O interface 115 of the CDN management device 105. Also, the first set of KPIs, the third set of KPIs and the fourth set of KPIs may be directly

captured from the end user device 101. The first set of KPIs may be related to the details of end user device 101, the third set of KPIs may be related to the network associated with the end user device 101 and the fourth set of KPIs may be related to the session parameters of the end user device 101.
In some embodiments, the deriving module 221 of the CDN management device 105, may derive an additional KPIs from the one or more received KPIs. The derived KPIs may include the second set of KPIs and the fifth set of KPIs. The second set of KPIs are particularly derived from the first set of KPIs. For example, the second set of KPIs may include at least one of region identification (PIN/ZIP) code of the end user device 101, ISP identification data, details of end user device 101, OS version of the end user device 101, video player version installed in the end user device 101 and the like. For example, region identification and ISP identification data may be derived from the IP address of the end user device 101, OS version of the end user device 101 may be derived from a device management information of the end user device 101, and further device details such as video player version installed in the end user device 101 may be derived from data being captured during registration of the end user device 101. Also, the fifth set of KPIs are derived from the third set of KPIs and fourth set of KPIs. For example, the fifth set of KPIs may include at least one of rebuffering values, stall values, profile insights, content lag ratio and the like. Also, the fifth set of KPIs may be derived from one or more playback sessions at the end user device 101.
In some embodiments, the segment identification module 221 may identify a segment of the end user device 101 for initiating the playback session. The segment identification module 221 may identify the segment of the end user device 101 by a segment identity data 211. The segment identity data 211 may include a segment identity which uniquely identifies the operating segment of the end user device 101. The segment identification module 221 may determine the segment identity of the end user device 101 based on the received first set of KPIs and the second set of KPIs. The segment identification module 221 may a derive a hash value by applying hash function to the first set of KPIs and the second set of KPIs. The hash value may represent the segment identity that uniquely identifies the segment of the end user device 101. The segment identity may have a value which includes the combination of region, ISP, end user device-platform, end user device 101, OS version, video player version and the like. For example, consider a FIG. 2B which illustrates an exemplary scenario representing multiple users in a network streaming one or more content in the network present in several regions using plurality of CDNs. For example, consider a user 245 is having an ISP-1 and is

present in region A and may have an OS version of Apple MacOS, end user device platform as Apple TV, and content player version as Amarok. The segment identity for the end user device associated with end user 245 may be a hash value derived by combining the (245+ ISP-1+ region A+ Apple MacOS+ Apple TV+ Amarok). The hash value may be a hexadecimal string derived to uniquely determine the segment in which the end user device is operating. In an embodiment, the segment identification module 221 may map the determined hash value with at least one of the prestored hash values or dynamically identified hash values of the segment. If the determined hash value is not present in the prestored hash values, then the segment identification module 221 may add the determined segment identity as a new segment in the memory 117 of CDN management device 105. Hence, in the present disclosure, the segment identification module 221 may perform the segmentation to the most atomic unit which includes the region of the end user device, ISP of the end user device, OS version, content player version and the like, which leads to the determination of the most accurate and optimal CDN for initiating the playback session in the end user device 101.
In some embodiments, the Quality of Service (QoS) determination module 225 may determine the Quality of Service (QoS) performance co-efficient for each of the plurality of CDNs operating in the identified segment based on at least one of the third set of KPIs, fourth set of KPIs and the fifth set of KPIs. In an embodiment, the QoS determination module 225 may determine a session eligibility index, where the segment eligibility index indicates whether the segment associated with the end user device 101 is eligible for the determination of QoS performance co-efficient or not. The QoS determining module 225 may determine a session eligibility index based on third set of KPIs which are related to the network associated with the end user device 101. The QoS determining module 225 may determine whether the end user device 101 has poor performance or poor network issues based on which the session edibility index is determined. The session eligibility index may represent a value that may indicate whether the session at the end user device 101 is eligible for determining the QoS performance coefficient. The session eligibility index may be determined by comparing the network bandwidth, and latency of the end user device 101 with an actual bandwidth needed by the end user device 101 for a streaming a smooth playback content without any latency and for switching between one or more streaming contents in players. The playback content may be a video stream played at the end user device 101 using at least one of Standard Definition (SD), High Definition and Ultra High Definition (UHD). If the session eligibility index is determined to be low, then the end user device 101 may not be eligible for the determination of QoS

performance co-efficient. However, if the eligibility index is higher, then the end user device 101 may be eligible for the determination of the QoS performance co-efficient. Furthermore, if the end user device 101 is determined to be eligible, then the QoS determining module 225 may determine the QoS performance co-efficient of plurality of CDN operating in the segment of the end user device 101. The QoS performance co-efficient may be determined using some of the Machine Learning (ML) algorithms, Artificial Intelligence (AI) techniques and the like. For example, the ML/AI techniques may perform statistical calculations via chaining of multiple jobs, where each job may perform Analytical processing to determine QoS performance co-efficient of plurality of CDNs. For example, data analytics may be performed using one or more data analytic tools such as Apache Spark, Jupyter Notebook, Tableau, and the like. The QoS performance co-efficient is determined by applying a particular function on the third set of KPIs, the fourth set of KPIs and the fifth set of KPIs as shown below:
QoS (Performance co-efficient)=Fn(third set of KPIs, fourth set of KPIS and fifth set of KPIs).
In some embodiments, the QoS determining module 225 may also derive a QoS weightage for the corresponding QoS performance co-efficient based on availability or percentage of availability of at least one of the third set of KPIs, the fourth set of KPIs and fifth set of KPIs at the end user device 101. In some embodiments, the QoS weightage may be derived based on at least one of the third set of KPIs, fourth set of KPIs and fifth set of KPIs used during the determination of the QoS performance co-efficient of the CDN. Further, the QoS determining module 225 may determine an aggregated QoS performance co-efficient for each of the plurality of CDNs operating in the segment by aggregating the corresponding QoS performance co-efficient and QoS weightage determined periodically during the playback session. For example, the aggregated QoS performance co-efficient may be determined by using statistical calculations, where the statistical calculations is applied on the plurality of QoS performance co-efficient of plurality of CDNs operating the same segment as that of the end user device
101.
Hence, the QoS determining module 225 may determine the QoS performance co-efficient based on the third set of KPIs, the fourth set of KPIs and fifth set of KPIs captured at the end user device 101 in real time. Thus, the QoS determining module 225 provides the near real¬time and the most accurate QoS value of the plurality of CDNs operating the segment of the end user device 101.

In some embodiments, the QoS monitoring module 227 may monitor the QoS performance co¬efficient of the plurality of CDNs which may be dynamically stored in the memory 117 of the CDN management device 105 for determining an optimal CDN for the initiating the playback session in the end user device 101. The QoS monitoring module 227 may monitor the QoS performance co-efficient of the plurality of CDNs. The QoS monitoring module 227 may particularly determine whether the QoS performance co-efficient of the plurality of CDNs degrades to a value below a threshold continuously for a predefined time period. The threshold may represent performance of CDN for the particular segment or a region associated with the end user device 101. In some embodiments, the threshold may be a current performance indicator for a given segment or a region, and hence may vary dynamically or periodically. For example, in the morning the lower threshold may be 0.90 and whereas in the evening the determined lower threshold may be 0.75. Hence, the threshold is determined dynamically based on the performance of each of the plurality of CDNs present in the segment of the end user device 101. .
In some embodiments, CDN selection module 229 may select an optimal CDN for initiating the requested playback session. The CDN selection module 229 may select an optimal CDN which may have highest QoS performance co-efficient for the identified segment of the end user device 101 for initiating the playback session. In some embodiments, the CDN selection module 229 may determine if performance co-efficient of each of plurality of CDNs are known. If at least one of the performance co-efficient of a CDN is unknown, then the CDN selection module 229 may select the CDN for which the performance co-efficient is not known for initiating the playback session in the end user device 101. The CDN selection module 229 may maintain a minimum threshold number of end user device 101 to be streaming through each of the plurality of CDNs. Further, based on the minimum number of thresholds the CDN selection module 229 may select at least an optimal CDN or the CDN for which the performance co¬efficient is not known. In yet another embodiment, the CDN selection module 229 may select a new optimal CDN for initiating the playback session in the end user device 101, if it is determined by the QoS monitoring module 227 that the QoS performance co-efficient for a particular CDN degrades below the threshold . The new optimal CDN may be determined based on the QoS performance co-efficient of each of plurality of CDNs operating in the segment of the end user device 101.
In some embodiments, the CDN switching modules 231 may switch from the current operating CDN of the end user device 101 to the new optimal CDN. During monitoring, if the QoS

performance co-efficient of a CDN degrades below the threshold, then the end user device 101 is switched to a new optimal CDN for the playback session requests from the end user device 101. However, when the QoS performance co-efficient of the CDN continues to be greater than the threshold, then the end user device 101 continues to operate in the same CDN as before.
For example, consider a scenario for determining an optimal CDN for a playback session in an end user device 101. Consider FIG. 2B, initially, the receiving module 219 may receive a playback request from an end user device associated with an end user 244. The receiving module 219 may also receive one or more KPIs which include first set of KPIs, third set of KPIs and fourth set of KPIs associated with the end user device of end user 244. For example, the first set of KPIs may include the details related to the end user device such as Internet Protocol address of the end user device, client platform (For example, Mobile) and end user device identity details. Similarly, the third set of KPIs may include at least one of latency for manifest fetch, Average bit rate details, latency for transport stream (ts) segments, initial configurations of content player and corresponding buffer, buffer inflow and outflow bit rates, initial startup profile details, content streaming start time and network latency and bandwidth information of the end user device and the like. Also, the fourth set of KPIs includes at least one of current playback profile details, play rate, profile switching, user actions, and stall details. Further, the deriving module 221 may derive a second set of KPIs from the first set of KPIs. The second set of KPIs may include at least one of region identification (For example, Region A/5611) of the end user device, ISP identification data (For example: Airtel broadband), end user device details, OS version (For example: Microsoft Windows) and the like. Also, the deriving module 221 may derive a fifth set of KPIs from the third set of KPIs and the fourth set of KPIs. The fifth set of KPIs may include at least one of rebuffering values, stall values, profile insights, a content lag ratio and the like. Further, segmentation identification module 223 may determine the segment identity of the end user device associated with the end user 244 using the first set of KPIs and the second set of KPIs. The segment identity may be a hash value determined having a combination of details such as (Mobile, Region A/5611, Airtel Broadband, Microsoft Windows). In some embodiments, the segment identification module 223 may determine whether the segment as determined is already present in the segment identity data stored in the memory 117. If the segment identity is not present, then a new segment is added into the memory 117. Also, for example consider the end user 244 may be currently operating in the CDN-X. The QoS determining module 225 may determine the QoS co-efficient of the CDN-X based on the third set of KPIs, fourth set of KPIs

and the fifth set of KPIs. In some embodiments, the QoS determining module 225 may determine the QoS co-efficient of plurality of CDNs say for example CDN-Y operating in the same segment as that of the end user 244. Further, the QoS monitoring module 227 may monitor the determined QoS coefficient of the CDN-X and CDN-Y. During monitoring, if the QoS-coefficient of CDN-X is determined to degrade below a threshold, then the CDN selection module 229 may select an optimal CDN for the end user device 244. For example, the CDN-Y may be operating well for the determined segment of the end user device 244, then the CDN selection module 229 may select CDN-Y for the end user device associated with the end user 244. Finally, the CDN switching module 231 may switch the end user device associated with end user 244 to the new optimal CDN-Y for streaming the content as requested by the end user device.
In the present disclosure, for example consider a scenario where an end user device associated with the end user 250 present in region B and operating in ISP 1, and having the client platform as Android OS, and Player- which is operating in the CDN-Z. Similarly, the end user device associated with the end user 251 may be present in region B, having ISP-1, and client platform as Android OS which is operating in CDN-X. During monitoring process, the CDN management device 105 may monitor the QoS coefficient of the plurality of CDNS operating the same segment of the end user device. During monitoring, it may be determined that the QoS performance coefficient of the CDN-Z in which the end user device with Android OS version may not be operating well, in such cases, the CDN management device 105 may switch from CDN-Z to CDN-X. The CDN-X may be operating well with the end user device having the Android OS, ISP-1 and region B.
Thus, in the present disclosure the CDN management device 105 may choose an optimal CDN by considering the most atomic features of the end user device 101 which are captured in one or more KPIs directly from the end user device 101. Hence, the CDN management device 105 may determine the most accurate and efficient CDN from the plurality of CDNs operating the same segment as that of the end user device 101.
FIG.3 shows a detailed block diagram of capturing Key Performance Indicators (KPI) from a playback session in an end user device.
In some implementations, the end user device 101 may include data 303 and modules 305. As an example, the data 303 is stored in the memory 111 configured in the end user device 101 as

shown in the FIG.3. In one embodiment, the data 303 may include KPIs data 307, CDN data 309, streaming content data 311, and other data 313. In the illustrated FIG.3, modules 305 are described herein in detail.
In some embodiments, the data 203 may be stored in the memory 111 of the end user device 101 in form of various data structures. Additionally, the data 303 can be organized using data models, such as relational or hierarchical data models. The other data 313 may store data, including temporary data and temporary files, generated by the modules 305 for performing the various functions of the end user device 101.
In some embodiments, the KPIs data 207 may include one or more KPIs captured at the end user device 101. The one or more KPIs may be captured using an application installed in the end user device 101. The one or more KPIs include a first set of KPIs, a third set of KPIs and a fourth set of KPIs. The first set of KPIs captured may be related to the end user device 101, the third set of KPIs may be related to the network associated with the end user device 101 and the fourth set of KPIs may be related to the session executed at the end user device 101. For example, the first set of KPIs may include at least one of an IP address of the end user device 101, client platform used in the end user device 101, identity information of the end user device 101 and the like. Similarly, the third set of KPIs may include at least one of latency for manifest fetch, Average Bitrate Rate (ABR) profile details, latency for transport stream (ts) segments, initial configurations of content player and corresponding buffer, buffer inflow and outflow bit rates, initial startup profile details, content streaming start time, network latency and bandwidth information of the end user device 101 and the like. Furthermore, the fourth set of KPIs may include at least one of current playback profile details, play rate, profile switching, user actions, stall details and the like.
In some embodiments, the CDN data 309 may include an optimal CDN determined for the initiating the playback session at the end user device 101.The end user device 101 may receive a notification from the CDN management device 105 to indicate the optimal CDN through which the end user device 101 may stream the playback content. For example, the notification may be sent in the form of e-mail, message, call and the like which may include details such as an URL to switch to the determined optimal CDN for the end user device 101.
In some embodiments, streaming content data 311 may include a content to be streamed or content streaming in the end user device 101. For example, the streaming content data may

include video data, audio data, image data and the like which are played or displayed in the end user device 101. The end user device 101 may transmit a playback request to the CDN management device 105 for streaming the streaming content data in an optimal CDN.
In some embodiments, the data 303 may be stored in the memory 111 of the end user device 101 may be processed by the modules 305 of end user device 101. The modules 305 may be stored within the memory 111 of the end user device 101. In an example, the modules 305 communicatively coupled to the processor 107 configured in the of the end user device 101, may also be present outside the memory 111 as shown in FIG.3 and implemented as hardware. As used herein, the term modules refer to an application specific integrated circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or group) and memory that execute one or more software or firmware programs, a combinational logic circuit, and/or other suitable components that provide the described functionality.
In an embodiment, the modules 305 may include, for example, a capturing module 315, a transmitting module 317, a receiving module 319 and other modules 321. The other modules 321 may be used to perform various miscellaneous functionalities of the end user device 101. It will be appreciated that such aforementioned modules 305 may be represented as a single module or a combination of different modules.
In some embodiments, the capturing module 315 may capture the KPIs data. Particularly, the capturing module 315 may capture a first set of KPIs related to the end user device 101, a third set of KPIs related to network associated with the end user device 101 and a fourth set of KPIs related to the sessions executed on the end user device 101. The capturing module 315 may capture the first set of KPIs, the third set of KPIs and the fourth set of KPIs using an application installed in the end user device 101.
In some embodiments, the transmitting module 317 may transmit the KPIs data one or more captured KPIs to the CDN management device 105 using an I/O interface of 109 of the end user device 101 through a communication network 103. The transmitting module 317 may transmit the first set of KPIs, the third set of KPIs and the fourth set of KPIs along with the playback request for initiation of the playback session.
In some embodiments, the receiving module 319 of the end user device 101 may receive the playback content streamed through the optimal CDN determined by the CDN management device 105. In some embodiments, the receiving module 319 may receive a notification

regarding the switching the end user device 101 to the optimal CDN for streaming the requested playback content. The notification may include a URL that may switch the end user device 101 to the optimal CDN for streaming the requested playback content in the end user device 101. For example, the notification may be a provided at system level notification in the form of API call to the application (Software Development Kit) installed in the end user device 101.
FIG.4A shows a flowchart illustrating a method of determining an optimal CDN for a playback session in an end user device, in accordance with some embodiments of the present disclosure.
As illustrated in FIG.4A, the method 400A includes one or more blocks illustrating a method of determining an optimal Content Delivery Network (CDN) for a playback session in an end user device 101. The method 400A may be described in the general context of computer executable instructions. Generally, computer executable instructions can include routines, programs, objects, components, data structures, procedures, modules, and functions, which perform functions or implement abstract data types.
The order in which the method 400A is described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method 400A. Additionally, individual blocks may be deleted from the methods without departing from the spirit and scope of the subject matter described herein. Furthermore, the method 400A can be implemented in any suitable hardware, software, firmware, or combination thereof.
At block 401, the method 400A may include receiving, by a processor 113 of a CDN management device 105, a playback request to initiate a playback session from an end user device 101 along with a first set of Key Performance Indicators (KPI)s related to the end user device 101. The first set of KPIs may include, but not limited to at least one of an IP address of the end user device 101, client platform used in the end user device 101 and identity information of the end user device 101.
At block 403, the method 400A may include determining, by the processor 113 of the CDN management device 105, a segment identity that uniquely identifies a segment of the end user device 101 requesting the playback session based on at least one of the first set of KPIs and a second set of KPIs derived from the first set of KPIs. The second set of KPIs may include, but not limited to at least one of region identification PIN/Zip code of the end user device 101, Internet Service Provider (ISP) identification data, device details of end user device 101, OS

version of the end user device 101 and video player version installed in the end user device 101. In some embodiments, the processor 113 of the CDN management device 105 may derive a segmentation hash value for the end user device 101 based on at least one of the first set of KPIs and the second set of KPIs. Further, the segment identity may be determined by mapping the segmentation hash value with at least one or prestored segments and dynamically identified segments. If, a match is found for the derived segmentation hash value with the prestored segments, then the segment identity of the end user device 101 may have the same segment identity as that of the prestored segment. If, there is no match found between the derived segmentation hash value with the prestored segment, then the derived segmentation hash value is added as a new segment within the memory 117 of the CDN management device 105.
At block 405, the method 400A may include, determining, by the processor 113 of the CDN management device 105, Quality of Service (QoS) performance co-efficient of a plurality of CDNs operating in the segment based on at least one of a third set of KPIs related to network parameters, and a fourth set of KPIs related to the playback session received from the end user device 101, and a fifth set of KPIs derived from the third set of KPIs, and a fourth set of KPIs. The third set of KPIs may include but not limited to at least one of latency for manifest fetch, HTTP download details of manifest file and initial segments, Average Bitrate Rate (ABR) profile details such as ABR stream details that user has played and player configuration details in which the stream is initialized, latency for transport stream (ts) segments, initial configurations of content player and corresponding buffer, buffer inflow and outflow bit rates, initial startup profile details, content streaming start time and network latency and bandwidth information of the end user device 101. Further, the fourth set of KPIs may include but not limited to at least one of current playback profile details, play rate, profile switching, user actions, and stall details. Furthermore, the fifth set of KPIs may include but not limited to at least one of rebuffering values, stall values, profile insights, and content lag ratio.
At block 407, the method 400A may include, determining, by the processor 113 of the CDN management device 105, an initial optimal CDN for initiating the playback session from the plurality of CDNs operating in the segment based on the QoS performance co-efficient of each of the plurality of CDNs.
At block 409, the method 400A may include, initiating, by the processor 113 of the CDN management device 105, the playback session through the initial optimal CDN to stream playback content to the end user device 101.

FIG. 4B shows a flowchart illustrating a method of receiving by an end user device, a playback content from an optimal CDN, in accordance with some embodiments of the present disclosure.
As illustrated in FIG.4b, the method 400B includes one or more blocks illustrating a method of receiving by an end user device 101, a playback content from an optimal CDN. The method 400B may be described in the general context of computer executable instructions. Generally, computer executable instructions can include routines, programs, objects, components, data structures, procedures, modules, and functions, which perform functions or implement abstract data types.
The order in which the method 400B is described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method 400B. Additionally, individual blocks may be deleted from the methods without departing from the spirit and scope of the subject matter described herein. Furthermore, the method 400B can be implemented in any suitable hardware, software, firmware, or combination thereof.
At block 411, the method 400B may include capturing dynamically, by a processor 107 of an end user device 101, a first set of KPIs, a third set of KPIs and a fourth set of KPIs. The end user device 101 may capture the first set of KPIs, the third set of KPIs and the fourth set of KPIs using an application installed in the end user device 101. The first set of KPIs are related to the end user device, the third set of KPIs are related to the network associated with the end user device 101 and the fourth set of KPIs are related to the playback session executed at the end user device 101.
At block 413, the method 400B may include transmitting, by the processor 107 of the end user device 101, a playback request and first set of KPIs, the third set of KPIs and the fourth set of KPIs to the CDN management device 105 for initiation of the playback session.
At block 415, the method 400B may include receiving, by the processor 107 of the end user device 101, a playback content streamed through at least one of the initial optimal CDN and the new optimal CDN from the CDN management device 105 upon initiating the playback session.
FIG.5 is a block diagram of an exemplary computer system for implementing embodiments consistent with the present disclosure.

In an embodiment, the computer system 500 can be CDN management device 105 that is used for determining an optimal CDN for a playback session in an end user device 101. The computer system 500 may include a central processing unit (“CPU” or “processor”) 502. The processor 502 may include at least one data processor for executing program components for executing user or system-generated business processes. A user may include a person, a person using a device such as such as those included in this invention, or such a device itself. The processor 502 may include specialized processing units such as integrated system (bus) controllers, memory management control units, floating point units, graphics processing units, digital signal processing units, etc.
The processor 502 may be disposed in communication with one or more input/output (I/O) devices (511 and 512) via I/O interface 501. The I/O interface 501 may employ communication protocols/methods such as, without limitation, audio, analog, digital, stereo, IEEE-1394, serial bus, Universal Serial Bus (USB), infrared, PS/2, BNC, coaxial, component, composite, Digital Visual Interface (DVI), high-definition multimedia interface (HDMI), Radio Frequency (RF) antennas, S-Video, Video Graphics Array (VGA), IEEE 802.n /b/g/n/x, Bluetooth, cellular (e.g., Code-Division Multiple Access (CDMA), High-Speed Packet Access (HSPA+), Global System For Mobile Communications (GSM), Long-Term Evolution (LTE), WiMax, or the like), etc.
Using the I/O interface 501, computer system 500 may communicate with one or more I/O devices (511 and 512).
In some embodiments, the processor 502 may be disposed in communication with a communication network 509 via a network interface 503. The network interface 503 may communicate with the communication network 509. The network interface 503 may employ connection protocols including, without limitation, direct connect, Ethernet (e.g., twisted pair 10/100/1000 Base T), Transmission Control Protocol/Internet Protocol (TCP/IP), token ring, IEEE 802.11a/b/g/n/x, etc. Using the network interface 503 and the communication network 509, the computer system 500 may communicate with end user devices 101. The communication network 509 can be implemented as one of the different types of networks, such as intranet or Local Area Network (LAN) and such within the organization. The communication network 509 may either be a dedicated network or a shared network, which represents an association of the different types of networks that use a variety of protocols, for example, Hypertext Transfer Protocol (HTTP), Transmission Control Protocol/Internet

Protocol (TCP/IP), Wireless Application Protocol (WAP), etc., to communicate with each other. Further, the communication network 509 may include a variety of network devices, including routers, bridges, servers, computing devices, storage devices, etc. The image repository 510 may include, but not limited to, a laptop, a mobile, a tablet and a desktop. In some embodiments, the processor 502 may be disposed in communication with a memory 505 (e.g., RAM, ROM, etc. not shown in FIG.5) via a storage interface 504. The storage interface 504 may connect to memory 505 including, without limitation, memory drives, removable disc drives, etc., employing connection protocols such as Serial Advanced Technology Attachment (SATA), Integrated Drive Electronics (IDE), IEEE-1394, Universal Serial Bus (USB), fibre channel, Small Computer Systems Interface (SCSI), etc. The memory drives may further include a drum, magnetic disc drive, magneto-optical drive, optical drive, Redundant Array of Independent Discs (RAID), solid-state memory devices, solid-state drives, etc.
The memory 505 may store a collection of program or database components, including, without limitation, a user interface 506, an operating system 507, a web browser 508 etc. In some embodiments, the computer system 500 may store user/application data, such as the data, variables, records, etc. as described in this invention. Such databases may be implemented as fault-tolerant, relational, scalable, secure databases such as Oracle or Sybase.
The operating system 507 may facilitate resource management and operation of the computer system 500. Examples of operating systems include, without limitation, Apple Macintosh OS X, UNIX, Unix-like system distributions (e.g., Berkeley Software Distribution (BSD), FreeBSD, NetBSD, OpenBSD, etc.), Linux distributions (e.g., Red Hat, Ubuntu, Kubuntu, etc.), International Business Machines (IBM) OS/2, Microsoft Windows (XP, Vista/7/8, etc.), Apple iOS, Google Android, Blackberry Operating System (OS), or the like. The User interface 506 may facilitate display, execution, interaction, manipulation, or operation of program components through textual or graphical facilities. For example, user interfaces may provide computer interaction interface elements on a display system operatively connected to the computer system 500, such as cursors, icons, check boxes, menus, scrollers, windows, widgets, etc. Graphical User Interfaces (GUIs) may be employed, including, without limitation, Apple Macintosh operating systems’ Aqua, IBM OS/2, Microsoft Windows (e.g., Aero, Metro, etc.), Unix X-Windows, web interface libraries (e.g., ActiveX, Java, Javascript, AJAX, HTML, Adobe Flash, etc.), or the like.

In some embodiments, the computer system 500 may implement the web browser 508 stored program components. The web browser 508 may be a hypertext viewing application, such as Microsoft Internet Explorer, Google Chrome, Mozilla Firefox, Apple Safari, etc. Secure web browsing may be provided using Secure Hypertext Transport Protocol (HTTPS) secure sockets layer (SSL), Transport Layer Security (TLS), etc. Web browsers may utilize facilities such as AJAX, DHTML, Adobe Flash, JavaScript, Java, Application Programming Interfaces (APIs), etc. In some embodiments, the computer system 500 may implement a mail server stored program component. The mail server may be an Internet mail server such as Microsoft Exchange, or the like. The mail server may utilize facilities such as Active Server Pages (ASP), ActiveX, American National Standards Institute (ANSI) C++/C#, Microsoft .NET, CGI scripts, Java, JavaScript, PERL, PHP, Python, WebObjects, etc. The mail server may utilize communication protocols such as Internet Message Access Protocol (IMAP), Messaging Application Programming Interface (MAPI), Microsoft Exchange, Post Office Protocol (POP), Simple Mail Transfer Protocol (SMTP), or the like. In some embodiments, the computer system 400 may implement a mail client stored program component. The mail client may be a mail viewing application, such as Apple Mail, Microsoft Entourage, Microsoft Outlook, Mozilla Thunderbird, etc.
Furthermore, one or more computer-readable storage media may be utilized in implementing embodiments consistent with the present invention. A computer-readable storage medium refers to any type of physical memory on which information or data readable by a processor may be stored. Thus, a computer-readable storage medium may store instructions for execution by one or more processors, including instructions for causing the processor(s) to perform steps or stages consistent with the embodiments described herein. The term “computer-readable medium” should be understood to include tangible items and exclude carrier waves and transient signals, i.e., non-transitory. Examples include Random Access Memory (RAM), Read-Only Memory (ROM), volatile memory, non-volatile memory, hard drives, Compact Disc (CD) ROMs, Digital Video Disc (DVDs), flash drives, disks, and any other known physical storage media.
Advantages of the embodiment of the present disclosure are illustrated herein.
In an embodiment, the present disclosure provides a method and CDN management device for determining an optimal CDN for a playback session in an end user device.

In some embodiments, the present disclosure provides a method and an end user device receiving by an end user device, a playback content from an optimal CDN.
The present disclosure provides a feature wherein the one or more KPIs are directly captured from the end user device using an application installed in the end user device, thereby ensuring the capture of the actual and real time experience of the playback sessions in the end user experience and last mile delivery issues faced at the end user device.
The present disclosure provides a feature wherein a segment identity is determined based on the first set of KPIs and the second set of KPIs. The determination of the segment identity may allow to uniquely identify the segment of the end user device. The segment identity determined using the first set of KPIs and the second set of KPIs may help in determining the most optimal CDN for the end user device by considering the most atomic parameter of the end user device such as OS version of the end user device, Video Player in the end user device, ISP of the end user device and the like.
The present disclosure provides a feature, wherein the most suitable CDN may be determined for the end user device among the plurality of CDNs operating in the segment of the end user device. The Optimal CDN of the end user device is determined based on the third set of KPIs, fourth set of KPIs and fifth set of KPIs. Hence, the most accurate, efficient and optimal CDN is provided for the end user device to stream the requested content. Thus, enabling the end user device to have an improved network experience and improved quality of content while streaming over the internet.
A description of an embodiment with several components in communication with each other does not imply that all such components are required. On the contrary a variety of optional components are described to illustrate the wide variety of possible embodiments of the invention.
When a single device or article is described herein, it will be apparent that more than one device/article (whether or not they cooperate) may be used in place of a single device/article. Similarly, where more than one device or article is described herein (whether or not they cooperate), it will be apparent that a single device/article may be used in place of the more than one device or article or a different number of devices/articles may be used instead of the shown number of devices or programs. The functionality and/or the features of a device may be alternatively embodied by one or more other devices which are not explicitly described as

having such functionality/features. Thus, other embodiments of the invention need not include the device itself.
The specification has described a method and a system for evaluating performance of one or more employees of an organization. The illustrated steps are set out to explain the exemplary embodiments shown, and it should be anticipated that on-going technological development will change the manner in which particular functions are performed. These examples are presented herein for purposes of illustration, and not limitation. Further, the boundaries of the functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternative boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed. Alternatives (including equivalents, extensions, variations, deviations, etc., of those described herein) will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein. Such alternatives fall within the scope and spirit of the disclosed embodiments. Also, the words "comprising," "having," "containing," and "including," and other similar forms are intended to be equivalent in meaning and be open-ended in that an item or items following any one of these words is not meant to be an exhaustive listing of such item or items, or meant to be limited to only the listed item or items. It must also be noted that as used herein and in the appended claims, the singular forms “a,” “an,” and “the” include plural references unless the context clearly dictates otherwise.
Finally, the language used in the specification has been principally selected for readability and instructional purposes, and it may not have been selected to delineate or circumscribe the inventive subject matter. It is therefore intended that the scope of the invention be limited not by this detailed description, but rather by any claims that issue on an application based here on. Accordingly, the embodiments of the present invention are intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.

Referral numerals

Reference Number Description
100 Architecture
101 End user device
103 Communication Network
105 CDN management device
107 Processor of end user device
109 I/O interface of end user device
111 Memory of end user device
113 Processor of CDN management device
115 I/O interface of CDN management device
117 Memory of CDN management device
203 Data of CDN management device
205 Modules of CDN management device
207 Input data
209 Derived data
211 Segment identity data
213 QoS data
215 CDN data
217 Other data
219 Receiving module
221 Deriving module
223 Segment identification module
225 QoS determination module
227 QoS monitoring module
229 CDN selection module
231 CDN switching module
233 Other Modules
303 Data of End user device
305 Modules of end user device
307 KPIs data
309 CDN data
311 Streaming content data
313 Other data
315 Capturing module
317 Transmitting module
319 Receiving module
321 Other modules

We Claim:
1. A method of determining an optimal Content Delivery Network (CDN) for a playback
session in an end user device (101), the method comprises:
receiving, by a CDN management device (105), a playback request to initiate a playback session from an end user device (101) along with a first set of Key Performance Indicators (KPI)s related to the end user device (101);
determining, by the CDN management device (105), a segment identity that uniquely identifies a segment of the end user requesting the playback session based on at least one of the first set of KPIs and a second set of KPIs derived from the first set of KPIs;
determining, by the CDN management device (105), Quality of Service (QoS) performance co-efficient of a plurality of CDNs operating in the segment based on at least one of a third set of KPIs related to network parameters, and a fourth set of KPIs related to the playback session received from the end user device (101), and a fifth set of KPIs derived from the third set of KPIs, and a fourth set of KPIs;
determining, by the CDN management device (105), an initial optimal CDN for initiating the playback session from the plurality of CDNs operating in the segment based on the QoS performance co-efficient of each of the plurality of CDNs; and
initiating, by the CDN management device (105), the playback session through the initial optimal CDN to stream playback content to the end user device (101).
2. The method as claimed in claim 1 further comprises:
monitoring, by the CDN management device (105), the QoS performance co-efficient of the initial optimal CDN and the plurality of CDNs periodically;
determining, by the CDN management device (105), a new optimal CDN from the plurality of CDNs based on the QoS performance co-efficient of the plurality of CDNs when the QoS performance co-efficient of the initial optimal CDN degrades to a value below a threshold continuously for a predefined time period; and
switching, by the CDN management device (105), the playback session from the initial optimal CDN to the new optimal CDN.

3. The method as claimed in claim 2 further comprises, determining, by the CDN management device (105), subsequent new optimal CDNs for switching based on periodic monitoring of the QoS performance co-efficient of the plurality of the CDNs operating in the segment.
4. The method as claimed in claim 1, wherein the first set of KPIs comprises at least one of an IP address of the end user device (101), client platform used in the end user device (101) and identity information of the end user device (101).
5. The method as claimed in claim 1, wherein the second set of KPIs comprises at least one of region identification PIN/Zip code of the end user device (101), Internet Service Provider (ISP) identification data, end user device details, OS version of the end user device (101) and video player version installed in the end user device (101).
6. The method as claimed in claim 1, wherein the third set of KPIs comprises at least one of latency for manifest fetch, Average Bitrate Rate (ABR) profile details, latency for transport stream (ts) segments, initial configurations of content player and corresponding buffer, buffer inflow and outflow bit rates, initial startup profile details, content streaming start time and network latency and bandwidth information of the end user device (101).
7. The method as claimed in claim 1, wherein the fourth set of KPIs comprises at least one of current playback profile details, play rate, profile switching, user actions, and stall details.
8. The method as claimed in claim 1, wherein the fifth set of KPIs comprises at least one of rebuffering values, stall values, profile insights, and content lag ratio.
9. The method as claimed in claim 1, wherein determining the segment identity comprises:
determining, by the CDN management device (105), a segmentation hash value for the end user device (101) based on at least one of the first set of KPIs and the second set of KPIs; and
determining, by the CDN management device (105), the segment identity that uniquely identifies the segment of the end user requesting the playback session by

mapping the segmentation hash value with at least one of prestored segments and dynamically identified segments.
10. The method as claimed in claim 1 further comprises determining, by the CDN management device (105), a session eligibility index indicating eligibility of the end user device (101) to qualify for the determination of at least one of the initial optimal CDN and subsequent new optimal CDNs for initiating the playback session.
11. The method as claimed in claim 1 further comprises:
determining, by the CDN management device (105), QoS weightage corresponding to the QoS performance co-efficient of each of the plurality of CDNs operating in the segment based on at least one of the third set of KPIs, a fourth set of KPIs and the fifth set of KPIs, wherein QoS weightage corresponding to the QoS performance co-efficient are determined periodically; and
determining, by the CDN management device (105), an aggregated QoS performance for each of the plurality of CDNs operating in the segment by aggregating the corresponding QoS performance co-efficient and the QoS weightage determined periodically during the playback session.
12. A method of receiving by an end user device (101), a playback content from an optimal
Content Delivery Network (CDN), the method comprises:
capturing dynamically, by an end user device (101), a first set of KPIs related to the end user device (101), a third set of KPIs related to network associated with the end user device (101), and a fourth set of KPIs related to a playback session;
transmitting, by the end user device (101), a playback request and the first set of KPIs, the third set of KPIs, and the fourth set of KPIs to a CDN management device (105) for initiation of the playback session, wherein the first set of KPIs, the third set of KPIs and the fourth set of KPIs are used by the CDN management device (105) for determining at least one of an initial optimal CDN and new optimal CDN for the playback session; and

receiving, by the end user device (101), a playback content streamed through at least one of the initial optimal CDN and the new optimal CDN from the CDN management device (105) upon initiating the playback session.
13. The method as claimed in claim 12, wherein the first set of KPIs, the third set of KPIs and the fourth set of KPIs are captured using an application installed in the end user device (101).
14. The method as claimed in claim 12, wherein the first set of KPIs, the third set of KPIs, and the fourth set of KPIs are transmitted to the CDN management device (105) periodically.
15. The method as claimed in claim 12, wherein the first set of KPIs comprises at least one of an IP address of the end user device (101), client platform used in the end user device (101) and identity information of the end user device (101).
16. The method as claimed in claim 12, wherein the third set of KPIs comprises at least one of latency for manifest fetch, Average Bitrate Rate (ABR) profile details, latency for transport stream (ts) segments, initial configurations of content player and corresponding buffer, buffer inflow and outflow bit rates, initial startup profile details, content streaming start time and network latency and bandwidth information of the end user device (101).
17. The method as claimed in claim 1, wherein the fourth set of KPIs comprises at least one of current playback profile details, play rate, profile switching, user actions, and stall details.
18. The method as claimed in claim 12 further comprises,
receiving, by the end user device (101), a notification from the CDN management device (105) indicating switching of the playback session from the initial optimal CDN to the new optimal CDN.

19. A Content Delivery Network (CDN) management device (105) for determining an
optimal CDN for a playback session in an end user device (101), the CDN management
device comprising:
a processor (113); and
a memory (117) communicatively coupled to the processor (113), wherein the memory (117) stores instructions, which, on execution, causes the processor (113) to:
receive a playback request to initiate a playback session from an end user device (101) along with a first set of Key Performance Indicators (KPI)s related to the end user device (101);
determine a segment identity that uniquely identifies a segment of the end user requesting the playback session based on at least one of the first set of KPIs and a second set of KPIs derived from the first set of KPIs;
determine Quality of Service (QoS) performance co-efficient of a plurality of CDNs operating in the segment based on at least one of a third set of KPIs related to network parameters, and a fourth set of KPIs related to the playback session received from the end user device (101), and a fifth set of KPIs derived from the third set of KPIs, and a fourth set of KPIs;
determine an initial optimal CDN for initiating the playback session from the plurality of CDNs operating in the segment based on the QoS performance co-efficient of each of the plurality of CDNs; and
initiate the playback session through the initial optimal CDN to stream playback content to the end user device (101).
20. The CDN management device (105) as claimed in claim 19, wherein the processor
(113) is further configured to:
monitor the QoS performance co-efficient of the initial optimal CDN and the plurality of CDNs periodically;
determine a new optimal CDN from the plurality of CDNs based on the QoS performance co-efficient of the plurality of CDNs when the QoS performance co-efficient of the initial optimal CDN degrades to a value below a threshold continuously for a predefined time period; and

switch the playback session from the initial optimal CDN to the new optimal CDN.
21. The CDN management device (105) as claimed in claim 19, wherein the processor
(113) is further configured to:
determine subsequent new optimal CDNs for switching based on periodic monitoring of the QoS performance co-efficient of the plurality of the CDNs operating in the segment.
22. The CDN management device (105) as claimed in claim 19, wherein the first set of KPIs comprises at least one of an IP address of the end user device (101), client platform used in the end user device (101) and identity information of the end user device (101).
23. The CDN management device (105) as claimed in claim 19, wherein the second set of KPIs comprises at least one of region identification PIN/Zip code of the end user device (101), Internet Service Provider (ISP) identification data, end user device details, OS version of the end user device (101) and video player version installed in the end user device (101).
24. The CDN management device (105) as claimed in claim 19, wherein the third set of KPIs comprises at least one of latency for manifest fetch, Average Bitrate Rate (ABR) profile details, latency for transport stream (ts) segments, initial configurations of content player and corresponding buffer, buffer inflow and outflow bit rates, initial startup profile details, content streaming start time and network latency and bandwidth information of the end user device (101).
25. The CDN management device (105) as claimed in claim 19, wherein the fourth set of KPIs comprises at least one of current playback profile details, play rate, profile switching, user actions, and stall details.
26. The CDN management device (105) as claimed in claim 19, wherein the fifth set of KPIs comprises at least one of rebuffering values, stall values, profile insights, and content lag ratio.

27. The CDN management device (105) as claimed in claim 19, wherein determination of
the segment identity by the CDN management device (105) is further configured to:
determine a segmentation hash value for the end user device (101) based on at least one of the first set of KPIs and the second set of KPIs; and
determine the segment identity that uniquely identifies the segment of the end user requesting the playback session by mapping the segmentation hash value with at least one of prestored segments and dynamically identified segments.
28. The CDN management device (105) as claimed in claim 19, wherein the processor
(113) is further configured to:
determine a session eligibility index indicating eligibility of the end user device (101) to qualify for the determination of at least one of the initial optimal CDN and subsequent new optimal CDNs for initiating the playback session.
29. The CDN management device (105) as claimed in claim 19, wherein the processor
(113) is further configured to:
determine QoS weightage corresponding to the QoS performance co-efficient of each of the plurality of CDNs operating in the segment based on at least one of the third set of KPIs, a fourth set of KPIs and the fifth set of KPIs, wherein QoS weightage corresponding to the QoS performance co-efficient are determined periodically; and
determine an aggregated QoS performance for each of the plurality of CDNs operating in the segment by aggregating the corresponding QoS performance co-efficient and the QoS weightage determined periodically during the playback session.
30. An end user device (101) for receiving a playback content from an optimal Content
Delivery Network (CDN), the end user device (101) comprises:
a processor (107); and
a memory (111) communicatively coupled to the processor (107), wherein the memory (117) stores instructions, which, on execution, causes the processor (107) to:
dynamically capture a first set of KPIs related to the end user device (101), a third set of KPIs related to network associated with the end user device (101), and a fourth set of KPIs related to a playback session;

transmit a playback request and the first set of KPIs, the third set of KPIs, and the fourth set of KPIs to a CDN management device (105) for initiation of the playback session, wherein the first set of KPIs, the third set of KPIs and the fourth set of KPIs are used by the CDN management device (105) for determining at least one of an initial optimal CDN and new optimal CDN for the playback session; and
receive a playback content streamed through at least one of the initial optimal CDN and the new optimal CDN from the CDN management device (105) upon initiating the playback session.
31. The end user device (101) as claimed in claim 30, wherein the first set of KPIs, the third
set of KPIs and the fourth set of KPIs are captured using an application installed in the
end user device (101).
32. The end user device (101) as claimed in claim 30, wherein the first set of KPIs, the
third set of KPIs, and the fourth set of KPIs are transmitted to the CDN management
device (105) periodically.
33. The end user device (101) as claimed in claim 30, wherein the first set of KPIs comprises at least one of an IP address of the end user device (101), client platform used in the end user device (101) and identity information of the end user device (101).
34. The end user device (101) as claimed in claim 30, wherein the third set of KPIs comprises at least one of latency for manifest fetch, Average Bitrate Rate (ABR) profile details, latency for transport stream (ts) segments, initial configurations of content player and corresponding buffer, buffer inflow and outflow bit rates, initial startup profile details, content streaming start time and network latency and bandwidth information of the end user device (101).
35. The end user device (101) as claimed in claim 30, wherein the fourth set of KPIs comprises at least one of current playback profile details, play rate, profile switching, user actions, and stall details.
36. The end user device (101) as claimed in claim 30, wherein the processor (107) is further configured to:

receive a notification from the CDN management device (105) indicating switching of the playback session from the initial optimal CDN to the new optimal CDN.
37. The system for determining an optimal Content Delivery Network (CDN) for a playback session in an end user device (101), the system comprises:
a CDN management device (105), wherein the CDN management device is configured to:
receive a playback request to initiate a playback session from an end user device (101) along with a first set of Key Performance Indicators (KPI)s related to the end user device (101);
determine a segment identity that uniquely identifies a segment of the end user requesting the playback session based on at least one of the first set of KPIs and a second set of KPIs derived from the first set of KPIs;
determine Quality of Service (QoS) performance co-efficient of a plurality of CDNs operating in the segment based on at least one of a third set of KPIs related to network parameters, and a fourth set of KPIs related to the playback session received from the end user device (101), and a fifth set of KPIs derived from the third set of KPIs, and a fourth set of KPIs;
determine an initial optimal CDN for initiating the playback session from the plurality of CDNs operating in the segment based on the QoS performance co-efficient of each of the plurality of CDNs; and
initiate the playback session through the initial optimal CDN to stream playback content to the end user device (101); and
an end user device (101), wherein the end user device (101) is configured to:
dynamically capture a first set of KPIs related to the end user device (101), a third set of KPIs related to network associated with the end user device (101), and a fourth set of KPIs related to a playback session;
transmit a playback request and the first set of KPIs, the third set of KPIs, and the fourth set of KPIs to a CDN management device (105) for initiation of the playback session, wherein the first set of KPIs, the third set of KPIs and the fourth set of KPIs are used by the CDN management device (105)

for determining at least one of an initial optimal CDN and new optimal CDN for the playback session; and
receive a playback content streamed through at least one of the initial optimal CDN and the new optimal CDN from the CDN management device (105) upon initiating the playback session.

Documents

Application Documents

# Name Date
1 202121057054-STATEMENT OF UNDERTAKING (FORM 3) [08-12-2021(online)].pdf 2021-12-08
2 202121057054-PROVISIONAL SPECIFICATION [08-12-2021(online)].pdf 2021-12-08
3 202121057054-POWER OF AUTHORITY [08-12-2021(online)].pdf 2021-12-08
4 202121057054-FORM 1 [08-12-2021(online)].pdf 2021-12-08
5 202121057054-DRAWINGS [08-12-2021(online)].pdf 2021-12-08
6 202121057054-DECLARATION OF INVENTORSHIP (FORM 5) [08-12-2021(online)].pdf 2021-12-08
7 202121057054-RELEVANT DOCUMENTS [25-02-2022(online)].pdf 2022-02-25
8 202121057054-RELEVANT DOCUMENTS [25-02-2022(online)]-1.pdf 2022-02-25
9 202121057054-POA [25-02-2022(online)].pdf 2022-02-25
10 202121057054-POA [25-02-2022(online)]-1.pdf 2022-02-25
11 202121057054-FORM 13 [25-02-2022(online)].pdf 2022-02-25
12 202121057054-FORM 13 [25-02-2022(online)]-1.pdf 2022-02-25
13 202121057054-Proof of Right [07-06-2022(online)].pdf 2022-06-07
14 202121057054-PostDating-(08-12-2022)-(E-6-290-2022-MUM).pdf 2022-12-08
15 202121057054-APPLICATIONFORPOSTDATING [08-12-2022(online)].pdf 2022-12-08
16 202121057054-FORM 18 [08-02-2023(online)].pdf 2023-02-08
17 202121057054-DRAWING [08-02-2023(online)].pdf 2023-02-08
18 202121057054-CORRESPONDENCE-OTHERS [08-02-2023(online)].pdf 2023-02-08
19 202121057054-COMPLETE SPECIFICATION [08-02-2023(online)].pdf 2023-02-08
20 Abstract1.jpg 2023-02-27
21 202121057054-FER.pdf 2024-03-22
22 202121057054-OTHERS [19-09-2024(online)].pdf 2024-09-19
23 202121057054-FER_SER_REPLY [19-09-2024(online)].pdf 2024-09-19
24 202121057054-CLAIMS [19-09-2024(online)].pdf 2024-09-19
25 202121057054-US(14)-HearingNotice-(HearingDate-02-12-2025).pdf 2025-11-12

Search Strategy

1 202121057054E_15-03-2024.pdf