Abstract: The present disclosure provides a system and a method for determining per-user data usage in a session during offloading/onloading of content. The system receives a Buffer Status Report (BSR) from at least one User Equipment (UE). The system determines whether an offload of the content is performed in response to receiving the BSR. The system determines the per-user data usage based on a particular time and a buffer time during the session, in response to a negative determination. Further, the system determines the per-user data usage based on the particular time, the buffer time during the session, a buffer time of a previously stored segment before the offload of the content, and an end of window (EoW) of the previously stored segment before the offload of the content, in response to a positive determination.
DESC:RESERVATION OF RIGHTS
[0001] A portion of the disclosure of this patent document contains material, which is subject to intellectual property rights such as but are not limited to, copyright, design, trademark, integrated circuit (IC) layout design, and/or trade dress protection, belonging to Jio Platforms Limited (JPL) or its affiliates (hereinafter referred as owner). The owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all rights whatsoever. All rights to such intellectual property are fully reserved by the owner.
FIELD OF INVENTION
[0002] The embodiments of the present disclosure generally relate to a field of wireless communication, and specifically to a system and a method for determining data usage on a per-user basis for a given session across multiple data paths during offloading/onloading of content.
BACKGROUND OF INVENTION
[0003] The following description of the related art is intended to provide background information pertaining to the field of the disclosure. This section may include certain aspects of the art that may be related to various features of the present disclosure. However, it should be appreciated that this section is used only to enhance the understanding of the reader with respect to the present disclosure, and not as admissions of the prior art.
[0004] Broadcast/multicast service commonly known as BMS is a method to share media content across a set of users using a common set of resources. Multiple similar solutions exist in 3rd Generation Partnership Project (3GPP), 3GPP2, Advanced Television Systems Committee (ATSC) standards, Digital Video Broadcasting-Handheld (DVB-H), and the like, to share the media content across the set of users. In existing methods, when operators deploy one or more broadcast systems along with traditional unicast wireless systems, there is a need to occasionally switch the users between unicast and broadcast systems, especially when more users in each area are watching the same content.
[0005] Further, when switching the users from one media to another media, it is noted that a media path may be from different service providers, for example, a cellular broadcast service provider and a broadcast service provider, which may be different business entities. A content provider/multicast broadcast source may provide discrete and continuous media, and service descriptions and control data flow to a Broadcast Multicast–Service Centre (BM-SC) to offer multiple services at a time instance. During the transfer of the media content, data quantum that traverses each of the media providers for a broadcast service may not be monitored, leading to low quality of service for end users. Furthermore, the data usage on a per-user basis for a given session across multiple data paths may not be determined and shared with the service providers in the existing methods, which may lead to loss of radio resources.
[0006] There is, therefore, a need in the art to provide an improved system and a method to determine per-user data usage in a session during offloading/onloading of content by overcoming the deficiencies of the prior art(s).
OBJECTS OF THE INVENTION
[0007] Some of the objects of the present disclosure, which at least one embodiment herein satisfies are listed herein below.
[0008] It is an object of the present disclosure to provide a system and a method to determine data usage on a per-user basis for a given session across multiple data paths during offloading/onloading of content.
[0009] It is an object of the present disclosure to provide a system and a method to reset the per-user data usage after each session.
[0010] It is an object of the present disclosure to provide a system and a method to extract the data usage of each user in real time.
[0011] It is an object of the present disclosure to provide a system and a method that facilitates better Quality of Service (QoS) for end-user experience.
SUMMARY
[0012] This section is provided to introduce certain objects and aspects of the present disclosure in a simplified form that are further described below in the detailed description. This summary is not intended to identify the key features or the scope of the claimed subject matter.
[0013] In an aspect, the present disclosure relates to a system for determining per-user data usage in a session during offloading/onloading of content. The system includes a processor, and a memory operatively coupled to the processor, where the memory stores instructions to be executed by the processor. The processor is configured to receive a Buffer Status Report (BSR) from at least one User Equipment, determine whether an offload of the content is performed in response to receiving the BSR, in response to a negative determination, determine the per-user data usage based on a plurality of first parameters, and in response to a positive determination, determine the per-user data usage based on a plurality of second parameters.
[0014] In an embodiment, the memory includes processor-executable instructions, which on execution, may cause the processor to reset the per-user data usage after each session.
[0015] In an embodiment, the BSR may include at least one of a view time and a buffer time during the session.
[0016] In an embodiment, the plurality of first parameters may include at least one of a particular time and the buffer time during the session.
[0017] In an embodiment, the plurality of second parameters may include at least one of a particular time, a buffer time during the session, a buffer time of a previously stored segment before the offload of the content, and an end of window (EoW) of the previously stored segment before the offload of the content.
[0018] In an embodiment, the processor may determine the per-user data usage based on the plurality of first parameters by being configured to aggregate the particular time and the buffer time during the session.
[0019] In an embodiment, the processor may determine the per-user data usage based on the plurality of second parameters by being configured to determine if the offload of the content is performed to a broadcast/multicast network or a unicast network. If the offload of the content is performed to the broadcast/multicast network, the processor may determine a sum of the particular time and the buffer time during the session, and a difference of the buffer time of the previously stored segment before the offload of the content, and an end of window (EoW) of the previously stored segment before the offload of the content, and estimate a difference between an output of the sum and an output of the difference to determine the per-user data usage. If the offload of the content is performed to the unicast network, the processor may determine a sum of particular time and buffer time during the session to determine the per-user data usage.
[0020] In an embodiment, the processor may determine and extrapolate a data usage report from the BSR based on the view time and the buffer time during switching of the at least one UE between two network paths.
[0021] In an embodiment, the processor may extract data usage per user from the data usage report across multiple network paths during the offloading/onloading of the content.
[0022] In an embodiment, the session may be one of a unicast session, a multicast session, and a broadcast session.
[0023] In an aspect, the present disclosure relates to a method for determining per-user data usage in a session during offloading/onloading of content. The method includes receiving, by a processor associated with a system, a Buffer Status Report (BSR) from at least one User Equipment (UE), determining, by the processor, whether an offload of the content is performed in response to receiving the BSR, determining, by the processor, the per-user data usage based on a plurality of first parameters, in response to a negative determination, and determining, by the processor, the per-user data usage based on a plurality of second parameters, in response to a positive determination.
[0024] In an embodiment, the method may include resetting, by the processor, the per-user data usage after each session.
[0025] In an embodiment, the BSR may include at least one of a view time and a buffer time during the session.
[0026] In an embodiment, the plurality of first parameters may include at least one of the particular time and the buffer time during the session.
[0027] In an embodiment, the plurality of second parameters may include at least one of the particular time, a buffer time during the session, a buffer time of a previously stored segment before the offload of the content, and an end of window (EoW) of the previously stored segment before the offload of the content.
[0028] In an embodiment, determining, by the processor, the per-user data usage based on the plurality of first parameters by aggregating the particular time and the buffer time during the session.
[0029] In an embodiment, determining, by the processor, the per-user data usage based on the plurality of second parameters may include determining, by the processor, if the offload of the content is performed to a broadcast/multicast network or a unicast network. If the offload of the content is performed to the broadcast/multicast network, the method may include determining, by the processor, a sum of the particular time and the buffer time during the session, and a difference of the buffer time of the previously stored segment before the offload of the content, and an end of window (EoW) of the previously stored segment before the offload of the content, and estimating, by the processor, a difference between an output of the sum and an output of the difference to determine the per-user data usage. If the offload of the content is performed to the unicast network, the method may include determining, by the processor, a sum of the particular time and the buffer time during the session to determine the per-user data usage.
[0030] In an embodiment, the method may include determining and extrapolating, by the processor, a data usage report from the BSR based on the view time and the buffer time during switching of the at least one UE between two network paths.
[0031] In an embodiment, the method may include extracting, by the processor, data usage per user from the data usage report across multiple network paths during the offloading/onloading of the content.
[0032] In an aspect, a user equipment (UE) includes a processor and a memory operatively coupled to the processor. The memory includes processor-executable instructions, which on execution, cause the processor to send a Buffer Status Report (BSR) to a system. The processor is communicatively coupled with the system, and the system is configured to receive the BSR from the UE, determine whether an offload of the content is performed in response to receiving the BSR, determine the per-user data usage based on a plurality of first parameters, in response to a negative determination, and determine the per-user data usage based on a plurality of second parameters, in response to a positive determination.
BRIEF DESCRIPTION OF DRAWINGS
[0033] The accompanying drawings, which are incorporated herein, and constitute a part of this disclosure, illustrate exemplary embodiments of the disclosed methods and systems which like reference numerals refer to the same parts throughout the different drawings. Components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure. Some drawings may indicate the components using block diagrams and may not represent the internal circuitry of each component. It will be appreciated by those skilled in the art that disclosure of such drawings includes the disclosure of electrical components, electronic components, or circuitry commonly used to implement such components.
[0034] FIG. 1 illustrates an exemplary block diagram (100) of a Multimedia Broadcast Multicast Services (MBMS)-based service delivery system.
[0035] FIG. 2 illustrates an exemplary architecture (200) for implementing content delivery from a content provider towards a content receiver via an MBMS client associated with a User Equipment (UE).
[0036] FIG. 3 illustrates an exemplary end-to-end evolved MBMS (eMBMS) architecture (300) for a fourth-generation (4G) network.
[0037] FIG. 4 illustrates an exemplary end-to-end eMBMS architecture (400) for a fifth-generation (5G) network.
[0038] FIG. 5 illustrates an exemplary representation (500) depicting a dynamic switch between unicast and broadcast systems.
[0039] FIG. 6 illustrates an exemplary network architecture (600) for implementing a proposed system, in accordance with an embodiment of the present disclosure.
[0040] FIG. 7 illustrates an exemplary block diagram (700) of a proposed system (608), in accordance with an embodiment of the present disclosure.
[0041] FIG. 8 illustrates an exemplary architecture (800) of a proposed system (608), in accordance with an embodiment of the present disclosure.
[0042] FIG. 9 illustrates an exemplary block diagram (900) of a system to offload/on-load common media application, in accordance with an embodiment of the present disclosure.
[0043] FIG. 10 illustrates an exemplary block diagram (1000) of a system for offloading media content from one system to another system, in accordance with an embodiment of the present disclosure.
[0044] FIG. 11 illustrates an exemplary representation (1100) depicting a method for determining per-user data usage in the session, in accordance with an embodiment of the present disclosure.
[0045] FIG. 12 illustrates an exemplary sequential diagram (1300) for implementing a proposed method, in accordance with an embodiment of the present disclosure.
[0046] FIG. 13 illustrates an exemplary computer system (1300) in which or with which embodiments of the present disclosure may be implemented.
[0047] The foregoing shall be more apparent from the following more detailed description of the disclosure.
DETAILED DESCRIPTION
[0048] In the following description, for the purposes of explanation, various specific details are set forth in order to provide a thorough understanding of embodiments of the present disclosure. It will be apparent, however, that embodiments of the present disclosure may be practiced without these specific details. Several features described hereafter can each be used independently of one another or with any combination of other features. An individual feature may not address all of the problems discussed above or might address only some of the problems discussed above. Some of the problems discussed above might not be fully addressed by any of the features described herein.
[0049] The ensuing description provides exemplary embodiments only and is not intended to limit the scope, applicability, or configuration of the disclosure. Rather, the ensuing description of the exemplary embodiments will provide those skilled in the art with an enabling description for implementing an exemplary embodiment. It should be understood that various changes may be made in the function and arrangement of elements without departing from the spirit and scope of the disclosure as set forth.
[0050] Specific details are given in the following description to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific details. For example, circuits, systems, networks, processes, and other components may be shown as components in block diagram form in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail to avoid obscuring the embodiments.
[0051] Also, it is noted that individual embodiments may be described as a process that is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed but could have additional steps not included in a figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination can correspond to a return of the function to the calling function or the main function.
[0052] The word “exemplary” and/or “demonstrative” is used herein to mean serving as an example, instance, or illustration. For the avoidance of doubt, the subject matter disclosed herein is not limited by such examples. In addition, any aspect or design described herein as “exemplary” and/or “demonstrative” is not necessarily to be construed as preferred or advantageous over other aspects or designs, nor is it meant to preclude equivalent exemplary structures and techniques known to those of ordinary skill in the art. Furthermore, to the extent that the terms “includes,” “has,” “contains,” and other similar words are used in either the detailed description or the claims, such terms are intended to be inclusive in a manner similar to the term “comprising” as an open transition word without precluding any additional or other elements.
[0053] Reference throughout this specification to “one embodiment” or “an embodiment” or “an instance” or “one instance” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present disclosure. Thus, the appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
[0054] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used herein, the singular forms “a”, “an”, and “the” are intended to include the plural forms as well, unless the context indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.
[0055] FIG. 1 illustrates an exemplary block diagram (100) of a Multimedia Broadcast Multicast Services (MBMS)-based service delivery system.
[0056] With reference to FIG. 1, the MBMS-based service delivery system may include three distinct functional layers defined for delivering an MBMS-based service. The three distinct functional layers may include one or more bearers (106) which include, but not limited to, unicast bearers and MBMS bearers, one or more delivery layers (104), and a user service/application (102).
[0057] The bearers (106) may provide a mechanism by which Internet Protocol (IP) data is transported. The MBMS bearers may be used to transport multicast and broadcast traffic in an efficient one-to-many manner and may be a foundation of MBMS-based services. The MBMS bearers may be used jointly with unicast Packet Data Protocol (PDP) contexts in offering complete service capabilities.
[0058] When delivering MBMS content to a receiving application (106), one or more delivery layers (104) may be used. The delivery layers (104) may provide functionalities such as security and key distribution, reliability control by means of forward-error-correction techniques, and associated delivery procedures such as file repair, delivery verification, and the like. Four delivery methods, namely download, streaming, transparent, and group communication, may be provided and defined for delivering the MBMS content. The delivery methods may use the MBMS bearers and may make use of point-to-point bearers through a set of MBMS-associated procedures.
[0059] An MBMS user service may enable the delivery of applications (102). Different applications (102) may impose different requirements when delivering the content to MBMS subscribers, and use different MBMS delivery methods. For example, a messaging application such as a Multimedia Messaging Service (MMS) may use a download delivery method, while a streaming application such as Packet Switch Stream (PSS) may use a streaming delivery method, and a group communications application such as a Mission-Critical Push-To-Talk (MCPTT) may use a group communication delivery method. The MBMS user service may use one or several MBMS delivery methods simultaneously.
[0060] FIG. 2 illustrates an exemplary architecture (200) for implementing content delivery from a content provider towards a content receiver via an MBMS client associated with a User Equipment (UE).
[0061] With respect to FIG. 2, the architecture (200) may include a xMB reference point. Using the xMB reference point, a content provider (208) may invoke procedures supported by Broadcast Multicast–Service Centre(s) (BM-SC(s)) (206) to set up and manage an MBMS user service from the BM-SC (206) to an MBMS client (204). The BM-SC (206) may define an endpoint with all supported procedures on an xMB interface, which may be converted to SGmb procedures for acting as an interface between the BM-SC (206) and an MBMS gateway (MBMS-GW). The BM-SC (206) may forward the content received from the content provider (208) to the content receiver (202) and to unicast delivery (210) for performing appropriate functions (e.g., MBMS user service fallback).
[0062] FIG. 3 illustrates an exemplary end-to-end evolved MBMS (eMBMS) architecture (300) for a fourth-generation (4G) network.
[0063] With respect to FIG. 3, a UE modem (306) may access a content provider (320) via an MBMS-aware application (302) configured in an MBMS client (304). The content provider (320) may communicate with a BMSC (316) via a service capabilities exposure function (SCEF) (318) and interfaces (XMB-C, XMB-U). The BMSC (316) may further access a multimedia broadcast multicast services gateway (MBMS-GW) (314) via an SGmb and an SGi-mb. Further, the MBMS-GW (314) may be connected to various base stations in an evolved universal terrestrial radio access network (E-UTRAN) (308), a multi-cell/multicast coordination entity (MCE) (310), and a mobility management entity (MME) (312). The UE modem (306) may be connected to the E-UTRAN (308). Further, the E-UTRAN (308) may be connected to the MME (312) via the interfaces (M2, M3) and the MCE (310), and to the MBMS-GW (314) via the interface (M1). The MBMS-GW (314) may be connected to the MME (312) via the interface (Sm). The UE modem (306) may be connected to the MBMS-aware application (302) via the MBMS client (304).
[0064] FIG. 4 illustrates an exemplary end-to-end eMBMS architecture (400) for a fifth-generation (5G) network. A person skilled in the art may understand that the various modules mentioned in FIG. 4 may be similar to the corresponding modules in FIG. 3 in their functionality and may not be described again for the sake of brevity.
[0065] With reference to FIG. 4, a base station (408) may be connected to an access and mobility management function (AMF) (412) via the interfaces (M2, M3) and the MCE (410). Further, the base station (408) may be connected to the MBMS-GW (414). The MBMS-GW (414) may be connected to the AMF (412) via the interface Sm.
[0066] In an existing 3rd Generation Partnership Project (3GPP) broadcast solution, the service provider (420) may need to reserve a subset of licensed spectrum bought over for a specific purpose, for example, in 4G, 5MHz of the licensed spectrum needs to be reserved for eMBMS purpose which means the bandwidth available for regular mobile broadband users may be limited. The reservation of the licensed spectrum or radio resources at times may be expensive as it may affect Quality of Service (QoS) for the existing mobile broadband unicast users. Thus, especially when multiple types of broadcast/multicast systems exist, there is a need for a system to intelligently and seamlessly offload certain users from one broadcast/multicast system to another. By offloading certain users from one broadcast/multicast system to the other broadcast/multicast system, efficient usage of licensed radio resources may be ensured, radio bandwidth may be saved, and better QoS for end-user experience may be achieved.
[0067] FIG. 5 illustrates an exemplary representation (500) depicting a dynamic switch between unicast and broadcast systems.
[0068] With respect to FIG. 5, a broadcast on-demand service as provided by 3GPP (also referred to as Multicast Operations on Demand (MooD)) may be subject to intelligence at a network. The MooD may decide if the user in a unicast session has to be moved into a broadcast session, or to dynamically switch the user from the unicast session to the broadcast session. The switch between the unicast session and the broadcast session may have to be performed without any disruption of the user service. Thus, there is a need to determine per-user data usage in the session during offloading/onloading of the content.
[0069] The present disclosure provides a system and a method to determine the per-user data usage in the session during offloading/onloading of the content. The proposed system may receive a Buffer Status Report (BSR) from at least one User Equipment (UE). The BSR includes a view time and a buffer time during the session. The system may determine whether an offload of the content is performed in response to receiving the BSR. The system may determine the per-user data usage based on a particular time and a buffer time during the session, in response to a negative determination.
[0070] In an embodiment, the system may determine if the offload of the content is performed to a broadcast/multicast network or a unicast network in response to a positive determination, i.e., if the offload of the content is performed. The system may determine a sum of the particular time and a buffer time during the session, and a difference between a buffer time of a previously stored segment before the offload of the content, and an end of window (EoW) of the previously stored segment before the offload of the content, and estimate a difference between an output of the sum and an output of the difference to determine the per-user data usage, if the offload of the content is performed to the broadcast/multicast network. The system may determine a sum of the particular time and the buffer time during the session to determine the per-user data usage if the offload of the content is performed to the unicast network. Further, the system may reset the per-user data usage after each session.
[0071] The various embodiments throughout the disclosure will be explained in more detail with reference to FIGs. 6-13.
[0072] FIG. 6 illustrates an exemplary network architecture (600) of a proposed system, in accordance with an embodiment of the present disclosure.
[0073] As illustrated in FIG. 6, the network architecture (600) may include a system (608). The system (608) may be connected to one or more computing devices (604-1, 604-2…604-N) via a network (606). The one or more computing devices (604-1, 604-2…604-N) may be interchangeably specified as a user equipment (UE) (604) and be operated by one or more users (602-1, 602-2...602-N). Further, the one or more users (602-1, 602-2…602-N) may be interchangeably referred as a user (602) or users (602). The system (608) may include or be associated with a data usage management entity, in accordance with embodiments of the present disclosure.
[0074] In an embodiment, the computing devices (604) may include, but not be limited to, a mobile, a laptop, etc. Further, the computing devices (604) may include a smartphone, virtual reality (VR) devices, augmented reality (AR) devices, a general-purpose computer, a desktop, a personal digital assistant, a tablet computer, and a mainframe computer. Additionally, input devices for receiving input from the user (602) such as a touchpad, touch-enabled screen, electronic pen, and the like may be used. A person of ordinary skill in the art will appreciate that the computing devices (604) may not be restricted to the mentioned devices and various other devices may be used.
[0075] In an embodiment, the network (606) may include, by way of example but not limitation, at least a portion of one or more networks having one or more nodes that transmit, receive, forward, generate, buffer, store, route, switch, process, or a combination thereof, etc. one or more messages, packets, signals, waves, voltage or current levels, some combination thereof, or so forth. The network (606) may also include, by way of example but not limitation, one or more of a wireless network, a wired network, an internet, an intranet, a public network, a private network, a packet-switched network, a circuit-switched network, an ad hoc network, an infrastructure network, a Public-Switched Telephone Network (PSTN), a cable network, a cellular network, a satellite network, a fiber optic network, or some combination thereof. The network (606) may include, by way of example but not limitation, a unicast network, a multicast network, or a broadcast network.
[0076] In an embodiment, the data usage management entity included in the system (608) may monitor and record data usage for a given user (602) across different unicast/multicast/broadcast mediums during an ongoing session. The data usage management entity may record data usage across different paths (i.e., over 3gpp-based unicast, or 3gpp or non-3gpp-based multicast/broadcast medium.
[0077] In an embodiment, the data usage management entity may extract the usage data per user (602) during the session using two methods, namely a relay method and a transparent method.
[0078] In the relay method, the system (608) itself may relay the data via a specific network technology and may perform data usage calculations. Since the data is being relayed by the system (608), the data used per user (602) in each session in a specific path, and the aggregated data may be made available.
[0079] In the transparent method, the data may not be relayed by the system (608). The system (608) may not have any direct way to keep track of the number of packets sent over a given path for a given user (602). Thus, the system (608) may need to gain access to the data in an indirect way from various components in an entire ecosystem, such as from a middleware residing in the UE (604), a content provider (e.g., content delivery network (CDN) servers), and other analytics functions/modules present in the 3gpp or non-3gpp architectural components.
[0080] Since the system (608) has no idea about the data that is being shared across different networks at different points in time once the offload/onload decision is made, the system (608) may have to collect the data usage from different network elements and from the UE (604) to be the data aggregator so that a revenue sharing model may be established. The system (608) may perform data usage sharing to achieve the revenue sharing model across different service providers serving the given UE (604) for an efficient and continuous service.
[0081] In an embodiment, the system (608) may configure the UE (604) for receiving Buffer Status Report (BSR). The BSR may include a view time V(t) and a buffer time B(t) during the session. The system (608) may determine whether an offload of the content is performed in response to receiving the BSR. The system (608) may determine the per-user data usage by computing a sum of the particular time and the buffer time during the session in response to a negative determination.
[0082] In an embodiment, the system (608) may determine if the offload of the content is performed to a broadcast/multicast network or a unicast network in response to a positive determination, i.e., if the offload of the content is performed. The system (608) may determine a sum of the particular time and the buffer time during the session, and a difference between a buffer time of a previously stored segment before the offload of the content, and an end of window (EoW) of the previously stored segment before the offload of the content. The buffer time of the previously stored segment before the offload of the content, and the EoW of the previously stored segment before the offload of the content may be stored in the system (608). Further, the system (608) may estimate a difference between an output of the sum and an output of the difference to determine the per-user data usage, if the offload of the content is performed to the broadcast/multicast network.
[0083] In an embodiment, the system (608) may determine a sum of the particular time and the buffer time during the session to determine the per-user data usage, if the offload of the content is performed to the unicast network. The particular time may be interchangeably referred to as a data usage till time T.
[0084] Therefore, the system (608) may calculate the per-user data usage based on a below formula:
a. If offload not happened till now –
i. Data_Usage = Data_Usage_till_time_T + B(t)
b. Else if offload is done to a broadcast/multicast network, then –
i. Data_Usage = Data_Usage_till_time_T + B(t) – [B(t)’ – EoW’]
c. Else if offload is done to another unicast network, then –
i. Data_Usage = Data_Usage_till_time_T + B(t)
Where, B(t)’ – B(t) of the previously stored segment number just before the offload as stored by the system (608), and
EoW’ – End of Window (EoW) of the previously stored segment number just before the offload as stored by the system (608).
[0085] B(t)’ – EoW’ may be performed, because for few users, depending on the bandwidth and throughput, the buffered data may vary between different users. Once the offload is performed, the data transfer in a new network path (multicast/broadcast network) may start from the EoW. The amount of data transferred per user (602) may have to be adjusted so that the user (602) may not be charged for repeated packets. Therefore, the number of segments transmitted post EoW just before offload/onload may be subtracted from the buffer time of the previously stored segment number just before the offload.
[0086] In an embodiment, the system (608) may reset the per-user data usage after each session.
[0087] In an embodiment, the system (608) may include a filtering mechanism to ensure that there are no duplicate packets/segments recorded to have wrong data usage report per user (602) especially due to a cross-over scenario when the offload/onload is performed while the data usage is being recorded.
[0088] Although FIG. 6 shows exemplary components of the network architecture (600), in other embodiments, the network architecture (600) may include fewer components, different components, differently arranged components, or additional functional components than depicted in FIG. 6. Additionally, or alternatively, one or more components of the network architecture (600) may perform functions described as being performed by one or more other components of the network architecture (600).
[0089] FIG. 7 illustrates an exemplary block diagram (700) of a proposed system (608), in accordance with an embodiment of the present disclosure.
[0090] Referring to FIG. 7, the system (608) may comprise one or more processor(s) (702) that may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, logic circuitries, and/or any devices that process data based on operational instructions. Among other capabilities, the one or more processor(s) (702) may be configured to fetch and execute computer-readable instructions stored in a memory (704) of the system (608). The memory (704) may be configured to store one or more computer-readable instructions or routines in a non-transitory computer-readable storage medium, which may be fetched and executed to create or share data packets over a network service. The memory (704) may comprise any non-transitory storage device including, for example, volatile memory such as random-access memory (RAM), or non-volatile memory such as erasable programmable read-only memory (EPROM), flash memory, and the like.
[0091] In an embodiment, the system (608) may include an interface(s) (706). The interface(s) (706) may include a variety of interfaces, for example, interfaces for data input and output (I/O) devices, storage devices, and the like. The interface(s) (706) may also provide a communication pathway for one or more components of the system (608). Examples of such components include, but are not limited to, processing engine(s) (708) and a database (710), where the processing engine(s) (708) may include, but not be limited to, a configuration engine (712), a receiving engine (714), a determination engine (716), and other engine(s) (718). The other engine(s) (718) may include, but not limited to, a monitoring engine, and the like.
[0092] In an embodiment, the processing engine(s) (708) may be implemented as a combination of hardware and programming (for example, programmable instructions) to implement one or more functionalities of the processing engine(s) (708). In examples described herein, such combinations of hardware and programming may be implemented in several different ways. For example, the programming for the processing engine(s) (708) may be processor-executable instructions stored on a non-transitory machine-readable storage medium and the hardware for the processing engine(s) (708) may comprise a processing resource (for example, one or more processors), to execute such instructions. In the present examples, the machine-readable storage medium may store instructions that, when executed by the processing resource, implement the processing engine(s) (708). In such examples, the system (608) may comprise the machine-readable storage medium storing the instructions and the processing resource to execute the instructions, or the machine-readable storage medium may be separate but accessible to the system (608) and the processing resource. In other examples, the processing engine(s) (708) may be implemented by electronic circuitry.
[0093] In an embodiment, the processor (702), associated with a data usage management entity, may configure the UE (604) for receiving the BSR via the configuration engine (712).
[0094] In an embodiment, the processor (702) may receive the BSR including a view time V(t) and a buffer time B(t) from the UE (604) via the receiving engine (714).
[0095] In an embodiment, the processor (702) may determine whether an offload of the content is performed in response to receiving the BSR via the determination engine (716). The processor (702) may, in response to a negative determination, determine the per-user data usage based on data usage till time T and the buffer time during the session via the determination engine (716).
[0096] In an embodiment, the processor (702) may, in response to a positive determination, determine if the offload of the content is performed to a broadcast/multicast network or a unicast network via the determination engine (716).
[0097] In an embodiment, if the offload of the content is performed to the broadcast/multicast network, the processor (702), via the determination engine (716), may determine the per-user data usage based on the data usage till time T, the buffer time during the session, the buffer time of a previously stored segment before the offload of the content, and an end of window (EoW) of the previously stored segment before the offload of the content.
[0098] In an embodiment, if the offload of the content is performed to the unicast network, the processor (702), via the determination engine (716), may determine the per-user data usage based on the data usage till time T and the buffer time during the session.
[0099] Although FIG. 7 shows exemplary components of the system (608), in other embodiments, the system (608) may include fewer components, different components, differently arranged components, or additional functional components than depicted in FIG. 7. Additionally, or alternatively, one or more components of the system (608) may perform functions described as being performed by one or more other components of the system (608).
[00100] FIG. 8 illustrates an exemplary system architecture (800) of a proposed system (608), in accordance with an embodiment of the present disclosure.
[00101] With respect to FIG. 8, the proposed system (608) may include a converged UE (802), a network (804), and a media-agnostic common platform (806). The converged UE (802) may include a common media application, a common middleware including a data usage management entity, a service continuity and offload management entity, a data controller, and a content insertion management entity. The converged UE (802) may also include a modem and a physical and smart card. The network (804) may be any one of a 3gpp-based network, a non-3gpp-based terrestrial network, and a non-terrestrial broadcast/multicast network. Further, the media agnostic common platform (806) may include the data usage management entity, the service continuity and offload management entity, the data controller, and the content insertion management entity.
[00102] The data usage management entity may be provided inside a service offloading entity. The converged UE (802) may be bi-directionally connected to the media-agnostic common platform (806), via the network (804) i.e., a radio access network (RAN) and a core network (CN). The common media application may be executed (offloaded/on-loaded) on multiple content providers (808-1, 808-2,…,808-N) and an advertisement content provider (810).
[00103] FIG. 9 illustrates an exemplary block diagram (900) of a system to offload/on-load common media application (902), in accordance with an embodiment of the present disclosure.
[00104] With respect to FIG. 9, a common media application/content provider (902) may be bi-directionally connected to a middleware (904) of the UE (604). The middleware (904) of the UE (604) may include an offload/on-load management entity, an advertisement insertion management entity, a data collector controller, a data usage management entity, and a back channel linking entity. A terminal/smart card (908) may be associated with the middleware (904) of the UE (604) via a connectivity medium/modem (906) on the common media application. The connectivity medium/modem (906) may include networks such as a BN-1 (3gpp), a BN-2 (non-3gpp), BN-N (non-terrestrial networks (NTN)), and a unicast network. The connectivity medium/modem (906) may be connected to the terminal/smart card (908).
[00105] FIG. 10 illustrates an exemplary block diagram (1000) of a system for offloading media content from one system to another system, in accordance with an embodiment of the present disclosure.
[00106] With respect to FIG. 10, a service offloading entity may be defined as a software entity that resides in the system (608), for example, a broadcast/multicast offload system. The service offloading entity may make a decision on whether the media content has to be offloaded to another dedicated broadcast/multicast system or move back to bi-directional unicast data transfer, referred to as on-load service. The system (608) may perform offloading via two methods, namely a relay method and a transparent method.
[00107] The relay method may be used for routing one or more data packets via the system (608) leading to one or more data packets being relayed, when an offload decision is made for offloading the data from the broadcast system to the multicast system, or vice versa. The data may be offloaded from the broadcast system to the multicast system, or vice versa, by either routing the one or more data packets or alternatively performing Internet Protocol (IP)-in-IP encapsulation.
[00108] The transparent method may be used for transparently transferring the one or more data packets from the broadcast system to the multicast system, or vice versa without knowledge of the system (608), once the offload decision is made for offloading the data. After establishing the right route based on traffic needs, the system (608) may communicate an end point node IP to the content provider (610). Further, a CP server may start data packet transmission and manage the data packet transmission until the next communication on routing is obtained from the system (608).
[00109] The relay method or the transparent method may be selected based on the service provider’s implementation and may be implemented under a policy enforcement module.
[00110] FIG. 11 illustrates an exemplary representation (1100) depicting a method for determining per-user data usage in the session, in accordance with an embodiment of the present disclosure.
[00111] With respect to FIG. 11, for few users, depending on the bandwidth and throughput, buffered data may vary between different users (602-1–602-3). Once the offload is done, the data transfer in a new network path (multicast/broadcast network) may start from EoW. The amount of data transferred per user (e.g., 602-1) may have to be adjusted, so that extra charge for the user (e.g., 602-1) for repeated packets may be avoided. Thus, while determining the per-user data usage in the session, the number of segments transmitted post EoW just before offload/onload may be subtracted from the buffer time of the previously stored segment just before the offload, i.e., Bt’-EoW’.
[00112] FIG. 12 illustrates an exemplary sequential diagram (1300) for implementing a proposed method, in accordance with an embodiment of the present disclosure.
[00113] With respect to FIG. 12, the steps for determining the per-user data usage in the session are illustrated.
[00114] In an embodiment, a data usage management entity associated with the system (608) may perform data collection and trigger for offload/onload of the content. Further, the UE (604) may send a data usage report periodically, or per session level to the data usage management entity associated with the system (608).
[00115] In an embodiment, once the data usage management entity associated with the system (608) receives the data usage report, the data usage management entity may calculate the data usage on a per-user basis.
[00116] In an embodiment, the data usage management entity may store the calculated data usage and share the data usage with the content providers (902) in a secure way.
[00117] In an embodiment, the data usage management entity may reset the data usage for each session.
[00118] FIG. 13 illustrates an exemplary computer system (1300) in which or with which embodiments of the present disclosure may be implemented.
[00119] As shown in FIG. 13, the computer system (1300) may include an external storage device (1310), a bus (1320), a main memory (1330), a read-only memory (1340), a mass storage device (1350), a communication port(s) (1360), and a processor (1370). A person skilled in the art will appreciate that the computer system (1300) may include more than one processor and communication ports. The processor (1370) may include various modules associated with embodiments of the present disclosure. The communication port(s) (1360) may be any of an RS-232 port for use with a modem-based dialup connection, a 10/100 Ethernet port, a Gigabit or 10 Gigabit port using copper or fiber, a serial port, a parallel port, or other existing or future ports. The communication ports(s) (1360) may be chosen depending on a network, such as a Local Area Network (LAN), Wide Area Network (WAN), or any network to which the computer system (1300) connects.
[00120] In an embodiment, the main memory (1330) may be Random Access Memory (RAM), or any other dynamic storage device commonly known in the art. The read-only memory (1340) may be any static storage device(s) e.g., but not limited to, a Programmable Read Only Memory (PROM) chip for storing static information e.g., start-up or basic input/output system (BIOS) instructions for the processor (1370). The mass storage device (1350) may be any current or future mass storage solution, which can be used to store information and/or instructions. Exemplary mass storage solutions include, but are not limited to, Parallel Advanced Technology Attachment (PATA) or Serial Advanced Technology Attachment (SATA) hard disk drives or solid-state drives (internal or external, e.g., having Universal Serial Bus (USB) and/or Firewire interfaces).
[00121] In an embodiment, the bus (1320) may communicatively couple the processor(s) (1370) with the other memory, storage, and communication blocks. The bus (1320) may be, e.g., a Peripheral Component Interconnect PCI) / PCI Extended (PCI-X) bus, Small Computer System Interface (SCSI), (USB), or the like, for connecting expansion cards, drives, and other subsystems as well as other buses, such a front side bus (FSB), which connects the processor (1370) to the computer system (1300).
[00122] In another embodiment, operator and administrative interfaces, e.g., a display, keyboard, and cursor control device may also be coupled to the bus (1320) to support direct operator interaction with the computer system (1300). Other operator and administrative interfaces can be provided through network connections connected through the communication port(s) (1360). Components described above are meant only to exemplify various possibilities. In no way should the aforementioned exemplary computer system (1300) limit the scope of the present disclosure.
[00123] While considerable emphasis has been placed herein on the preferred embodiments, it will be appreciated that many embodiments can be made and that many changes can be made in the preferred embodiments without departing from the principles of the disclosure. These and other changes in the preferred embodiments of the disclosure will be apparent to those skilled in the art from the disclosure herein, whereby it is to be distinctly understood that the foregoing descriptive matter is to be implemented merely as illustrative of the disclosure and not as a limitation.
ADVANTAGES OF THE INVENTION
[00124] The present disclosure provides a system and a method to determine data usage on a per-user basis for a given session across multiple data paths during offloading/onloading of content.
[00125] The present disclosure provides a system and a method to reset the per-user data usage after each session.
[00126] The present disclosure provides a system and a method to extract the data usage of each user in real time.
[00127] The present disclosure provides a system and a method that facilitates better Quality of Service (QoS) for end-user experience.
,CLAIMS:1. A system (608) for determining per-user data usage in a session during offloading/onloading of content, the system (608) comprising:
a processor (702); and
a memory (704) operatively coupled with the processor (702), wherein said memory (704) stores instructions which, when executed by the processor (702), cause the processor (702) to:
receive a Buffer Status Report (BSR) from at least one User Equipment (UE) (604);
determine whether an offload of content is performed in response to receiving the BSR;
in response to a negative determination, determine per-user data usage based on a plurality of first parameters; and
in response to a positive determination, determine the per-user data usage based on a plurality of second parameters.
2. The system (608) as claimed in claim 1, wherein the memory (704) comprises processor-executable instructions, which on execution, cause the processor (702) to reset the per-user data usage after each session.
3. The system (608) as claimed in claim 1, wherein the BSR comprises at least one of: a view time and a buffer time during the session.
4. The system (608) as claimed in claim 1, wherein the plurality of first parameters comprises at least one of: a particular time and a buffer time during the session.
5. The system (608) as claimed in claim 1, wherein the plurality of second parameters comprises at least one of: a particular time, a buffer time during the session, a buffer time of a previously stored segment before the offload of the content, and an end of window (EoW) of the previously stored segment before the offload of the content.
6. The system (608) as claimed in claim 1, wherein the processor (702) is to determine the per-user data usage based on the plurality of first parameters by being configured to aggregate a particular time and a buffer time during the session.
7. The system (608) as claimed in claim 1, wherein the processor (702) is to determine the per-user data usage based on the plurality of second parameters by being configured to:
determine if the offload of the content is performed to a broadcast/multicast network or a unicast network;
if the offload of the content is performed to the broadcast/multicast network:
determine a sum of a particular time and a buffer time during the session, and a difference between a buffer time of a previously stored segment before the offload of the content and an end of window (EoW) of the previously stored segment before the offload of the content; and
estimate a difference between an output of the sum and an output of the difference to determine the per-user data usage;
if the offload of the content is performed to the unicast network:
determine a sum of a particular time and a buffer time during the session to determine the per-user data usage.
8. The system (608) as claimed in claim 1, wherein the processor (702) is to determine and extrapolate a data usage report from the BSR based on a view time and a buffer time during switching of the at least one UE (604) between two network paths.
9. The system (608) as claimed in claim 8, wherein the processor (702) is to extract data usage per user (602) from the data usage report across multiple network paths during the offloading/onloading of the content.
10. The system (608) as claimed in claim 1, wherein the session is one of: a unicast session, a multicast session, and a broadcast session.
11. A method for determining per-user data usage in a session during offloading/onloading of content, the method comprising:
receiving, by a processor associated with a system, a Buffer Status Report (BSR) from at least one User Equipment (604);
determining, by the processor, whether an offload of content is performed in response to receiving the BSR;
in response to a negative determination, determining, by the processor, per-user data usage based on a plurality of first parameters; and
in response to a positive determination, determining, by the processor, the per-user data usage based on a plurality of second parameters.
12. The method as claimed in claim 11, comprising resetting, by the processor, the per-user data usage after each session.
13. The method as claimed in claim 11, wherein the BSR comprises at least one of: a view time and a buffer time during the session.
14. The method as claimed in claim 11, wherein the plurality of first parameters comprises at least one of: a particular time and a buffer time during the session.
15. The method as claimed in claim 11, wherein the plurality of second parameters comprises at least one of: a particular time, a buffer time during the session, a buffer time of a previously stored segment before the offload of the content, and an end of window (EoW) of the previously stored segment before the offload of the content.
16. The method as claimed in claim 11, wherein determining, by the processor, the per-user data usage based on the plurality of first parameters comprises aggregating, by the processor, a particular time and a buffer time during the session.
17. The method as claimed in claim 11, wherein determining, by the processor, the per-user data usage based on the plurality of second parameters comprises:
determining, by the processor, if the offload of the content is performed to a broadcast/multicast network or a unicast network;
if the offload of the content is performed to the broadcast/multicast network:
determining, by the processor, a sum of a particular time and a buffer time during the session, and a difference between a buffer time of a previously stored segment before the offload of the content and an end of window (EoW) of the previously stored segment before the offload of the content, and
estimating, by the processor, a difference between an output of the sum and an output of the difference to determine the per-user data usage;
if the offload of the content is performed to the unicast network:
determining, by the processor, a sum of a particular time and a buffer time during the session to determine the per-user data usage.
18. The method as claimed in claim 11, comprising:
determining and extrapolating, by the processor, a data usage report from the BSR based on a view time and a buffer time during switching of the at least one UE (604) between two network paths.
19. The method as claimed in claim 18, comprising:
extracting, by the processor, data usage per user (602) from the data usage report across multiple network paths during offloading/onloading of the content.
20. A user equipment (UE) (604), comprising:
a processor; and
a memory operatively coupled to the processor, wherein the memory comprises processor-executable instructions, which on execution, cause the processor to:
send a Buffer Status Report (BSR) to a system (608),
wherein the processor is communicatively coupled with the system (608), and wherein the system (608) is configured to:
receive the BSR from the UE (604);
determine whether an offload of content is performed in response to receiving the BSR;
in response to a negative determination, determine per-user data usage based on a plurality of first parameters; and
in response to a positive determination, determine the per-user data usage based on a plurality of second parameters.
| # | Name | Date |
|---|---|---|
| 1 | 202221061990-STATEMENT OF UNDERTAKING (FORM 3) [31-10-2022(online)].pdf | 2022-10-31 |
| 2 | 202221061990-PROVISIONAL SPECIFICATION [31-10-2022(online)].pdf | 2022-10-31 |
| 3 | 202221061990-POWER OF AUTHORITY [31-10-2022(online)].pdf | 2022-10-31 |
| 4 | 202221061990-FORM 1 [31-10-2022(online)].pdf | 2022-10-31 |
| 5 | 202221061990-DRAWINGS [31-10-2022(online)].pdf | 2022-10-31 |
| 6 | 202221061990-DECLARATION OF INVENTORSHIP (FORM 5) [31-10-2022(online)].pdf | 2022-10-31 |
| 7 | 202221061990-ENDORSEMENT BY INVENTORS [31-10-2023(online)].pdf | 2023-10-31 |
| 8 | 202221061990-DRAWING [31-10-2023(online)].pdf | 2023-10-31 |
| 9 | 202221061990-CORRESPONDENCE-OTHERS [31-10-2023(online)].pdf | 2023-10-31 |
| 10 | 202221061990-COMPLETE SPECIFICATION [31-10-2023(online)].pdf | 2023-10-31 |
| 11 | 202221061990-FORM 18 [17-01-2024(online)].pdf | 2024-01-17 |
| 12 | 202221061990-FORM-8 [19-01-2024(online)].pdf | 2024-01-19 |
| 13 | Abstract1.jpg | 2024-02-15 |