WO2025196799A1 - A system and method for synchronizing and storing video test results data - Google Patents
A system and method for synchronizing and storing video test results dataInfo
- Publication number
- WO2025196799A1 WO2025196799A1 PCT/IN2025/050221 IN2025050221W WO2025196799A1 WO 2025196799 A1 WO2025196799 A1 WO 2025196799A1 IN 2025050221 W IN2025050221 W IN 2025050221W WO 2025196799 A1 WO2025196799 A1 WO 2025196799A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- test results
- video test
- results data
- video
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4408—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream encryption, e.g. re-encrypting a decrypted video stream for redistribution in a home network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23103—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion using load balancing strategies, e.g. by placing or distributing content on different disks, different memories or different servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25808—Management of client data
- H04N21/25841—Management of client data involving the geographical location of the client
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4431—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6156—Network physical structure; Signal processing specially adapted to the upstream path of the transmission network
- H04N21/6181—Network physical structure; Signal processing specially adapted to the upstream path of the transmission network involving transmission via a mobile phone network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6582—Data stored in the client, e.g. viewing habits, hardware capabilities, credit card number
Definitions
- 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).
- JPL Jio Platforms Limited
- 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.
- the embodiments of the present disclosure generally relate to field of telecommunication.
- the present disclosure relates to systems and methods for synchronizing and storing video test results data.
- Video test results data refers to performance metrics and information collected during the evaluation of video playback quality and user experience on mobile devices.
- Load balancer module refers to a component that distributes incoming network traffic or computational tasks across multiple servers to ensure optimal resource utilization and prevent overload.
- Backend servers refer to the server infrastructure that processes, analyses, and stores the video test results data received from mobile devices.
- Data processing module refers to a component responsible for manipulating, transforming, and analyzing the received video test results data.
- Mapping module refers to a component that associates processed video test results data with geographical or network-related location information of the user.
- Database refers to a structured collection of data specifically designed to store and manage video test results and associated information.
- Encryption refers to the process of encoding information in such a way that only authorized parties can access it, ensuring data security during transmission.
- Structured file format refers to a standardized way of organizing data that makes it easily readable and processable by various applications. Common examples include CSV (Comma-Separated Values) format.
- Virtual machine process refers to a software-based emulation of a computer system that can perform tasks in isolation from the host operating system.
- Non-relational database system refers to a database that does not use the traditional table-based relational database structure, often providing more flexibility in data storage and retrieval.
- Distributed computing framework refers to a system that uses multiple computers to solve large-scale computational problems, improving processing efficiency and scalability.
- REST API Real State Transfer Application Programming Interface
- REST API represents an architectural style for designing networked applications, typically used for web services that are lightweight, maintainable, and scalable.
- JVM Java Virtual Machine
- Java Virtual Machine refers to a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are compiled to Java bytecode.
- Cell ID refers to a unique number used to identify each base transceiver station or sector of a base station within a cellular network.
- MCC Mobile Country Code
- MNC Mobile Network Code
- MNC Mobile Network Code
- MCC Mobile Country Code
- HDFS Hadoop Distributed File System
- OAuth 2.0 refers to an authorization framework that enables applications to obtain limited access to user accounts on an HTTP service.
- AES Advanced Encryption Standard
- Round-robin algorithm refers to a simple load balancing method that distributes client requests to a group of servers sequentially.
- NoSQL (Not Only SQL) database refers to a type of database that provides a mechanism for storage and retrieval of data that is modelled in means other than the tabular relations used in relational databases.
- HBASE refers to a distributed, scalable, big data store designed to support large table-like data structures. It is part of the Apache Hadoop ecosystem and provides real-time read/write access to large datasets.
- Dropwizard server refers to a Java framework for developing high- performance, RESTful web services. It integrates several stable and mature libraries to provide a robust platform for building web applications.
- YouTube spark job refers to a specific data processing task executed using Apache Spark, typically used for analyzing or processing large-scale data related to YouTube video performance or metrics.
- App event refers to a specific action or occurrence within a mobile application that can be tracked or measured, such as a user interaction, system event, or application state change.
- Byte format refers to a data format where information is stored or transmitted as a sequence of 8-bit bytes. This format is commonly used for efficient data storage and transfer in computer systems.
- Hit in the context of web analytics, refers to a single file request in a web server log. Each image, video, or other resource loaded as part of a web page typically generates a separate hit.
- Background API call refers to an API (Application Programming Interface) request made by an application without direct user interaction, often used for tasks such as data synchronization or background updates.
- API Application Programming Interface
- Scalability is another critical issue faced by existing video testing systems. As the number of mobile devices and video applications continues to grow, testing platforms struggle to handle the large influx of data generated by simultaneous video tests. This limitation often results in processing delays or system failures, hampering the efficiency and reliability of the testing process. The inability to scale effectively restricts the capacity to conduct comprehensive tests across a wide range of devices and network conditions, leading to potential gaps in quality assurance. [0036] Furthermore, the scope of video testing is often limited by connectivity constraints. Many existing solutions rely heavily on constant internet connectivity, making it challenging to conduct tests in areas with limited or no internet access. This limitation significantly restricts the comprehensiveness of testing procedures, as it fails to account for real-world scenarios where users might experience poor or intermittent connectivity.
- Cloud-based platforms offer some solutions for remote testing capabilities, but they raise their own set of security concerns regarding the storage of sensitive data on remote servers.
- local storage on mobile devices provides a more secure offline option but suffers from limited capacity. This restriction not only constrains the amount of data that can be captured but also complicates the process of aggregating and analyzing test results across multiple devices.
- the invention aims to overcome the limitations of existing solutions by offering a robust framework that can handle large volumes of test data while maintaining data integrity and enabling thorough performance analysis across various network conditions.
- a system for synchronizing and storing video test results data comprises a memory and one or more processors configured to execute a set of instructions stored in the memory.
- the processors are configured to receive encrypted video test results data from a mobile device.
- the processors distribute, using a load balancer module, the received encrypted video test results data to one or more backend servers.
- the processors process, using a data processing module, the distributed encrypted video test results data.
- the processing includes decryption of the video test results data
- the processors map, using a mapping module, the processed video test results data with location information of a user.
- the processors store the mapped video test results data in a database.
- the one or more processors are further configured to receive the encrypted video test results data via an application programming interface (API) unit of the mobile device.
- API application programming interface
- the encrypted video test results data is generated by the mobile device.
- the mobile device is configured to initiate, via a user interface, a video test to evaluate performance of a web application.
- the mobile device captures the video test results data from the initiated video test.
- the mobile device encrypts, using an encryption module, the captured video test results data.
- the mobile device stores, using a storage module, the encrypted video test results data in a structured file format.
- the load balancer module distributes the received encrypted video test results data using a predetermined distribution algorithm.
- processing the distributed encrypted video test results data comprises inserting the encrypted video test results data into a message queue.
- the processing further comprises consuming the inserted encrypted video test results data from the message queue using the data processing module.
- processing the distributed encrypted video test results data further comprises decrypting the distributed encrypted video test results data using a virtual machine process of the data processing module.
- mapping the processed video test results data with location information of the user comprises determining the location information based on at least one of geographical coordinate data or cellular network identification data received from the mobile device.
- the geographical coordinate data comprises latitude and longitude data.
- the cellular network identification data comprises at least one of Cell ID data, Mobile Country Code (MCC) data, or Mobile Network Code (MNC) data.
- MCC Mobile Country Code
- MNC Mobile Network Code
- the database is a non-relational database system.
- the one or more processors are further configured to generate reports and visualizations based on the stored mapped video test results data. [0051] In some embodiments, the one or more processors are further configured to process the video test results data using a distributed computing framework to analyze performance metrics of the web application.
- a method for synchronizing and storing video test results data comprises receiving encrypted video test results data from a mobile device.
- the method distributes, using a load balancer module, the received encrypted video test results data to one or more backend servers.
- the method processes, using a data processing module, the distributed encrypted video test results data.
- the processing includes decryption of the video test results data.
- the method maps, using a mapping module, the processed video test results data with location information of a user.
- the method stores the mapped video test results data in a database.
- the method further comprises receiving the encrypted video test results data via an application programming interface (API) unit of the mobile device.
- API application programming interface
- the encrypted video test results data is generated by the mobile device.
- the method further comprises initiating, via a user interface, a video test to evaluate performance of a web application.
- the method captures video test results data from the initiated video test.
- the method encrypts, using an encryption module, the captured video test results data.
- the method stores, using a storage module, the encrypted video test results data in a structured file format.
- distributing the received encrypted video test results data comprises using a predetermined distribution algorithm.
- processing the distributed encrypted video test results data comprises inserting the encrypted video test results data into a message queue.
- the processing further comprises consuming the inserted encrypted video test results data from the message queue using the data processing module.
- processing the distributed encrypted video test results data further comprises decrypting the distributed encrypted video test results data using a virtual machine process of the data processing module.
- mapping the processed video test results data with location information of the user comprises determining the location information based on at least one of geographical coordinate data or cellular network identification data received from the mobile device.
- the geographical coordinate data comprises latitude and longitude data.
- the cellular network identification data comprises at least one of Cell ID data, Mobile Country Code (MCC) data, or Mobile Network Code (MNC) data.
- the database is a non-relational database system.
- the method further comprises generating reports and visualizations based on the stored mapped video test results data.
- the method further comprises processing the video test results data using a distributed computing framework to analyze performance metrics of the web application.
- a non-transitory computer- readable medium storing instructions.
- the instructions When executed by one or more processors of a system for synchronizing and storing video test results data via a network, the instructions cause the one or more processors to perform operations.
- the operations comprise receiving encrypted video test results data from a mobile device.
- the operations distribute, using a load balancer module, the received encrypted video test results data to one or more backend servers.
- the operations process, using a data processing module, the distributed encrypted video test results data.
- the processing includes decryption of the video test results data.
- the operations map, using a mapping module, the processed video test results data with location information of a user.
- the operations store the mapped video test results data in a database.
- a mobile device communicatively coupled to a system for synchronizing and storing video test results data via a network comprises a memory and one or more processors configured to execute a set of instructions stored in the memory to perform the method.
- the method comprises receiving encrypted video test results data from a mobile device.
- the method distributes, using a load balancer module, the received encrypted video test results data to one or more backend servers.
- the method processes, using a data processing module, the distributed encrypted video test results data.
- the method maps, using a mapping module, the processed video test results data with location information of a user.
- the method stores the mapped video test results data in a database.
- An object of the present disclosure is to synchronize video test results data in the backend system. This includes capturing video test results from mobile devices and securely transferring them to the backend servers for processing.
- An object of the present disclosure is to streamline the synchronization process to ensure that maximum data is captured and stored in a readable format for subsequent analytics and reporting.
- An object of the present disclosure is to mitigate the risk of data leakage during the synchronization process.
- An object of the present disclosure is to reduce the likelihood of unauthorized access to sensitive video test results data.
- An object of the present disclosure is to provide a scalable system for handling large volumes of video test results data from multiple mobile devices simultaneously.
- An object of the present disclosure is to enable efficient distribution of received video test results data across multiple backend servers using a load balancing mechanism.
- An object of the present disclosure is to process encrypted video test results data securely, maintaining data integrity throughout the system.
- An object of the present disclosure is to associate processed video test results data with relevant location information, enhancing the context and usefulness of the collected data.
- An object of the present disclosure is to store processed and mapped video test results data in a manner that facilitates easy retrieval and analysis.
- An object of the present disclosure is to provide a comprehensive solution for video performance testing that evaluates the speed and reliability of web applications across various network conditions.
- FIG. 1 illustrates an exemplary network architecture of a system, in accordance with embodiments of the present disclosure.
- FIG. 2 illustrates an exemplary micro service-based architecture of a system, in accordance with embodiments of the present disclosure.
- FIG. 3 illustrates an exemplary block diagram of the network architecture for securely synchronizing and storing video test results data, in accordance with embodiments of the present disclosure.
- FIG. 4 illustrates an exemplary a flow diagram for synchronizing and storing video test results data, in accordance with embodiments of the present disclosure.
- FIG. 5 illustrates an exemplary illustration of flow diagram for synchronizing and storing video test results data, in accordance with embodiments of the present disclosure.
- FIG. 6 illustrates an exemplary flow diagram of a method for synchronizing and storing video test results data, in accordance with embodiments of the present disclosure.
- FIG. 7 illustrates an exemplary computer system in which or with which embodiments of the present disclosure may be implemented.
- individual embodiments may be described as a process which 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.
- exemplary and/or “demonstrative” is used herein to mean serving as an example, instance, or illustration.
- the subject matter disclosed herein is not limited by such examples.
- 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.
- 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.
- the aspects of the present disclosure are directed to a system and method for synchronizing and securely storing video test results data from mobile devices.
- the invention provides a scalable and efficient solution for capturing, processing, and analyzing video performance data to evaluate the speed and reliability of web applications.
- Another aspects include the secure transmission of encrypted test data from mobile devices to backend servers, the use of load balancing for efficient data distribution, and the mapping of processed data with user location information. This comprehensive approach enables thorough analysis of video performance across various network conditions while maintaining data security and integrity throughout the testing process.
- one or more mobile devices may be connected to a system (102) for video test results data synchronization through a network (104).
- a person of ordinary skill in the art will understand that the one or more mobile devices (108-1, 108-2...108-N) may be collectively referred to as mobile devices (108) and individually referred to as a mobile device (108).
- One or more users may provide video test results data to the system (102) through various tests performed on the mobile device (108).
- the mobile device (108) may include, but not be limited to, a mobile phone, a tablet, etc. Further, the mobile device (108) may include capabilities for conducting video performance tests and capturing related metrics. Furthermore, the mobile device (108) may include a smartphone, virtual reality (VR) devices, augmented reality (AR) devices, a general-purpose computer, a desktop, a personal digital assistant, and a laptop computer.
- VR virtual reality
- AR augmented reality
- the network (104) 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 (104) 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 2G network, a 3G network, a 4G network, a 5G network, a 6G network, or some combination thereof.
- the system (102) may be connected to backend servers.
- the system (102) may receive encrypted video test results data from a selected mobile device (108) when a video test is initiated.
- the load balancer module (212) may then distribute the received encrypted video test results data to one or more backend servers.
- the data processing module (214) may process the distributed encrypted video test results data.
- the mapping module (216) may map the processed video test results data with location information of a user.
- the database (210) may store the mapped video test results data for further analysis and reporting.
- FIG. 1 shows exemplary components of the network architecture (100)
- the network architecture (100) may include fewer components, different components, differently arranged components, or additional functional components than depicted in FIG. 1. Additionally, or alternatively, one or more components of the network architecture (100) may perform functions described as being performed by one or more other components of the network architecture (100).
- FIG. 2 illustrates an example block diagram (200) of a proposed system (102) for video test results data synchronization and storage, in accordance with an embodiment of the present disclosure.
- the system (102) may include one or more processor(s) (202).
- the one or more processor(s) (202) 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.
- the one or more processor(s) (202) may be configured to fetch and execute computer-readable instructions stored in a memory (204) of the system (102).
- the memory (204) 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 synchronize and store video test results data.
- the memory (204) 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.
- the system (102) may include an interface(s) (206).
- the interface(s) (206) may comprise a variety of interfaces, for example, interfaces for data input and output devices (I/O), storage devices, and the like.
- the interface(s) (206) may facilitate communication through the system (102).
- the interface(s) (206) may also provide a communication pathway for one or more components of the system (102).
- processing module(s) 208
- a database for storing synchronized video test results data.
- processing module(s) (208) may include a load balancer module (212), a data processing module (214), a mapping module (216), and other modules (218).
- the other module(s) (218) may encompass various additional functionalities that support the overall operation of the system (102) for video test results data synchronization and storage. These may include, but are not limited to, a security module for data encryption, a data compression module, a reporting module for generating performance reports, and a network analysis module. These modules work in concert with the primary modules to enhance the robustness, efficiency, and reliability of the video test results data synchronization and storage system.
- the load balancer module (212) may distribute the received encrypted video test results data to one or more backend servers.
- the data processing module (214) may process the distributed encrypted video test results data, including decryption and data formatting.
- the mapping module (216) may map the processed video test results data with location information of a user.
- the database (210) may store the mapped video test results data for further analysis and reporting.
- the processing module(s) (208) may be implemented as a combination of hardware and programming (for example, programmable instructions) to implement one or more functionalities of the processing module(s) (208).
- programming for the processing module(s) (208) may be processorexecutable instructions stored on a non-transitory machine-readable storage medium and the hardware for the processing module(s) (208) may comprise a processing resource (for example, one or more processors), to execute such instructions.
- the machine-readable storage medium may store instructions that, when executed by the processing resource, implement the processing module(s) (208).
- system 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 and the processing resource.
- processing module(s) (208) may be implemented by electronic circuitry.
- FIG. 2 shows exemplary components of the system (102), in other embodiments, the system (102) may include fewer components, different components, differently arranged components, or additional functional components than depicted in FIG. 2. Additionally, or alternatively, one or more components of the system (102) may perform functions described as being performed by one or more other components of the system (102).
- the system (102) for synchronizing and storing video test results data may comprise a memory (204) and one or more processors (202) configured to execute a set of instructions stored in the memory (204).
- the memory (204) may be any form of non-transitory computer-readable storage medium, such as RAM, ROM, or flash memory, capable of storing instructions and data for execution by the processors (202).
- the processors (202) may be implemented as microprocessors, microcontrollers, or other suitable processing units capable of executing the stored instructions.
- the system (102) may be designed to receive encrypted video test results data from a mobile device (108).
- a mobile device (108) refers to any portable electonic device capable of conducting video tests and capturing relevant performance data. Examples of mobile devices (108) may include smartphones, tablets, laptops, or specialized testing devices.
- the encryption of the video test results data ensures that sensitive performance information remains secure during transmission from the mobile device (108) to the system (102).
- the system (102) may utilize a load balancer module (212) to distribute the data to one or more backend servers.
- a load balancer module (212) may be configured to distributes incoming network traffic or computational tasks across multiple servers. This distribution mechanism allows the system (102) to handle large volumes of incoming data from multiple mobile devices (108) simultaneously, enhancing the scalability and performance of the overall system (102).
- the load balancer module (212) may employ various distribution algorithms to ensure efficient utilization of server resources and optimal data processing. For example, it might use a round-robin algorithm, which cycles through the list of servers and assigns each new request to the next server in line. Alternatively, it could use more sophisticated algorithms that consider server load, response time, or other performance metrics to make distribution decisions.
- the load balancer module (212) employs specific predetermined distribution algorithms to efficiently distribute encrypted video test results data across backend servers. These algorithms include several well-defined approaches. For instance, in a round-robin distribution algorithm, if there are three backend servers (A, B, and C), the load balancer sequentially distributes incoming requests: the first data packet goes to Server A, the second to Server B, the third to Server C, then back to Server A, maintaining this cyclic pattern. Another example is the leastconnection algorithm, where the load balancer tracks active connections to each server and routes new requests to the server handling the fewest connections. For example, if Server A has 100 active connections, Server B has 50, and Server C has 75, a new data transmission would be directed to Server B.
- the system may also employ a weighted round-robin algorithm, where servers are assigned different processing weights based on their capabilities. For instance, if Server A has a weight of 5, Server B has 3, and Server C has 2, out of 10 consecutive data transmissions, 5 would be routed to Server A, 3 to Server B, and 2 to Server C.
- the load balancer may use an IP hash algorithm, where the distribution decision is based on a hash of the client's IP address, ensuring that data from the same mobile device consistently goes to the same backend server for processing.
- These distribution algorithms can be dynamically selected based on factors such as current server load, network conditions, and the type of video test being performed.
- the distributed encrypted video test results data may then be processed using a data processing module (214).
- This data processing module (214) is a component responsible for performing various operations on the received data to prepare it for further analysis and storage. The processing step may involve tasks such as data validation, formatting, aggregation, or other transformations necessary to make the data suitable for analysis and storage.
- the system (102) may employ a mapping module (216) to associate the processed video test results data with location information of a user (110).
- This mapping process provides valuable context to the test results, allowing for more comprehensive analysis of video performance across different geographical locations.
- the location information may be derived from various sources, such as GPS coordinates, cell tower triangulation, or IP address geolocation.
- the system (102) may store this information in a database (210).
- the database (210) may be a structured collection of data organized for efficient retrieval and management.
- the database (210) may be specifically designed to handle large volumes of video test results data and associated metadata.
- the database (210) used in this system may be a NoSQL (Not Only SQL) database, which is well-suited for handling large-scale, distributed data sets.
- NoSQL databases include: i. Apache HBase: A column-oriented database that provides real-time read/write access to large datasets. It's particularly effective for storing and managing video test results data due to its ability to handle high write and update rates.
- Apache Cassandra A highly scalable, distributed NoSQL database that can manage large amounts of structured data across multiple commodity servers. It's ideal for storing time-series data, such as video performance metrics over time.
- MongoDB A document-oriented database that can store complex data structures in a flexible, JSON-like format. This flexibility makes it suitable for storing varied video test results and associated metadata.
- the database (210) in this system is structured to efficiently store and retrieve various types of data related to video testing, such as: i. Video playback metrics (e.g., buffering time, playback quality, frame rate) ii. Network performance data (e.g., bandwidth, latency, packet loss) iii. Device information (e.g., device model, operating system version) iv. Geographical data (e.g., GPS coordinates, cell tower information) v. Timestamp information for each test vi. User interaction data (e.g., play/pause actions, seek events)
- Video playback metrics e.g., buffering time, playback quality, frame rate
- Network performance data e.g., bandwidth, latency, packet loss
- Device information e.g., device model, operating system version
- Geographical data e.g., GPS coordinates, cell tower information
- Timestamp information for each test vi.
- User interaction data e.g., play/pause actions, seek events
- This structured approach allows for quick and efficient querying of the data for analysis, reporting, and visualization purposes, enabling the system to provide valuable insights into video performance across various conditions and locations.
- the system (102) may be configured to receive the encrypted video test results data via an application programming interface (API) unit of the mobile device (108).
- API application programming interface
- the API is a set of protocols, routines, and tools for building software applications.
- the API unit may provide a standardized method for the mobile device (108) to communicate with the system (102), ensuring consistent and secure data transmission.
- the mobile device (108) may be configured to initiate a video test to evaluate the performance of a web application.
- a web application in this context, refers to any application software that runs on a web server and is accessed through a web browser. Examples could include streaming platforms, online video conferencing tools, or interactive web-based video content.
- the performance evaluation of a web application typically involves measuring various parameters. These parameters may include, but are not limited to: i. Initial Loading Time: The time taken for the web application to load and become interactive. Example: A video streaming application takes 2.5 seconds to load and display the main interface. ii. Video Start Time: The duration between a user's play action and the start of video playback. Example: After clicking play, the video begins playing in 0.8 seconds. iii. Buffering Frequency: The number of times video playback pauses to buffer during a session. Example: During a 10-minute video, buffering occurs 3 times. iv. Buffering Duration: The total time spent buffering during video playback.
- Video Quality The resolution and clarity of the video, often measured in pixels (e.g., 720p, 1080p, 4K).
- Frame Rate The number of frames displayed per second during video playback.
- Bit Rate The amount of data processed per unit of time, typically measured in bits per second.
- Network Performance Metrics related to the network connection, such as bandwidth, latency, and packet loss.
- Error Rate The frequency of playback errors or failures during the test.
- User Interaction Response Time The time taken for the application to respond to user actions like play, pause, or seek.
- the system can comprehensively evaluate the performance of web applications, particularly those involving video content, across various network conditions and device types.
- the mobile device (108) may initiate the video test via a user interface (302).
- This user interface (302) could be a graphical interface on the mobile device (108) that allows the user (110) to start the test, select test parameters, and view results. Examples of test parameters that a user might select through the interface may include: i. Video Source: The user may choose between different video sources, such as: -A pre-loaded test video stored on the device
- Video Quality The user might select the desired video quality for testing, such as: Auto (allowing the application to adjust quality based on network conditions)
- Network Condition The user could specify the network environment for testing:
- Test Duration The user might set how long the test should run, for example: -30 seconds
- the mobile device (108) may then capture video test results data from the initiated test, providing real-time performance metrics such as load time, buffering instances, video quality, and playback smoothness.
- the mobile device (108) may encrypt the captured video test results data using an encryption module (304). Encryption is the process of encoding information in such a way that only authorized parties can access it.
- the encryption module (304) may use various encryption algorithms such as AES (Advanced Encryption Standard) or RSA (Rivest-Shamir-Adleman) to secure the data.
- the mobile device (108) may store the data in a structured file format using a storage module (306).
- a structured file format organizes data in a predefined way, making it easier to process and analyze. Examples of structured file formats include CSV (Comma-Separated Values), JSON (JavaScript Object Notation), or XML (extensible Markup Language).
- the processing of distributed encrypted video test results data may involve several steps. Initially, the data may be inserted into a message queue.
- a message queue is a component used in inter-process communication or inter-thread communication. In this system (102), it may help manage high volumes of incoming data, ensuring orderly processing even during peak load periods.
- Peak load periods refer to time intervals when the system experiences the highest volume of incoming data or processing requests, significantly above the average or baseline load.
- peak load periods are characterized by: i. High Concurrency: Many mobile devices simultaneously sending video test results data to the system.
- Examples of scenarios that might lead to peak load periods in this system include: i. New Product Launches: When a new mobile device or major software update is released, many users might run video tests simultaneously to evaluate performance. ii. Popular Event Streaming: During globally significant events (e.g., major sports events, breaking news), numerous users might test video streaming performance concurrently. iii. Scheduled Mass Testing: If an organization conducts coordinated, large-scale video performance testing across multiple devices or locations simultaneously. iv. Time-zone Based Peaks: Regular daily peaks that occur when users in certain geographical regions are most active. v. Marketing Campaign Effects: A surge in system usage following a marketing campaign that promotes the video testing feature.
- Managing peak load periods is crucial for maintaining system performance and reliability.
- the message queue along with other scalable architecture components, helps the system handle these high-demand periods by buffering incoming data and allowing for flexible, on-demand scaling of processing resources.
- the system (102) may decrypt the distributed encrypted video test results data. This decryption process may be carried out using a virtual machine process of the data processing module (214).
- a virtual machine is a software-based emulation of a computer system, providing an
- Examples of decryption algorithms that might be employed in this system include: i. AES (Advanced Encryption Standard): A symmetric encryption algorithm widely used for secure data transmission. It supports key sizes of 128, 192, and 256 bits. Example usage: AES-256 in GCM (Galois/Counter Mode) for both encryption and authentication. ii. RSA (Rivest-Shamir-Adleman): An asymmetric encryption algorithm used for secure data transmission and digital signatures. It uses two keys: a public key for encryption and a private key for decryption. Example usage: RSA-2048 for key exchange in combination with AES for data encryption. iii.
- Elliptic Curve Cryptography An asymmetric encryption algorithm based on elliptic curve theory. It can offer the same level of security as RSA with smaller key sizes.
- Blowfish A symmetric block cipher designed as a fast, free alternative to existing encryption algorithms. It uses a variablelength key, from 32 bits to 448 bits.
- Example usage Blowfish with a 128-bit key for encrypting video metadata.
- Twofish A symmetric key block cipher with a block size of 128 bits and key sizes up to 256 bits. It was one of the finalists of the Advanced Encryption Standard contest.
- decryption algorithm would depend on factors such as the required level of security, computational efficiency, and compatibility with the encryption method used on the mobile devices.
- the virtual machine process could be configured to support multiple decryption algorithms, allowing flexibility in handling different types of encrypted data.
- the decryption process within the virtual machine might follow these steps: i. Receive the encrypted data from the message queue. ii. Identify the encryption algorithm used (this information might be included in the metadata). iii. retrieve the appropriate decryption key (stored securely and separately from the encrypted data). iv. Apply the corresponding decryption algorithm to the data. v. Verify the integrity of the decrypted data (e.g., using a checksum). vi. Pass the decrypted data back to the main system for further processing and analysis.
- the mapping of processed video test results data with user location information may involve determining the location based on geographical coordinate data or cellular network identification data received from the mobile device (108).
- Geographical coordinate data typically comprises latitude and longitude information, providing precise location details.
- Cellular network identification data may include Cell ID (a unique number used to identify each Base Transceiver Station), Mobile Country Code (MCC, used to identify the country of a mobile subscriber), or Mobile Network Code (MNC, used to identify a mobile phone operator or carrier).
- the system (102) may utilize a non-relational database system for storing the mapped video test results data.
- a non-relational database also known as a NoSQL database, is a type of database that doesn't use the traditional tablebased relational database structure. Instead, it may use a document-based, keyvalue, wide-column, or graph format. Examples of non-relational databases include MongoDB, Cassandra, or Amazon DynamoDB.
- the system (102) may be configured to generate reports and visualizations based on the mapped video test results. These could include heat maps showing video performance across different geographical areas, trend lines illustrating performance over time, or comparative charts analyzing performance across different devices or network conditions.
- the system (102) may also employ a distributed computing framework to process the video test results data and analyze performance metrics of the web application.
- Distributed computing refers to a model in which components of a software system are shared among multiple computers to improve efficiency and performance. Examples of distributed computing frameworks include Apache Hadoop, Apache Spark, or Google Cloud Dataflow.
- the system (102) provides a comprehensive solution for evaluating and improving web application video performance, leveraging advanced technologies to ensure security, scalability, and in-depth analysis capabilities.
- a non-transitory computer-readable medium may store instructions that, when executed by one or more processors (202) of a system (102), cause the processors to perform operations for synchronizing and storing video test results data via a network (104). These operations may include receiving encrypted video test results data from a mobile device (108), which may contain performance metrics of video playback tests. The received data may then be distributed to one or more backend servers using a load balancer module (212), potentially optimizing server utilization. A data processing module (214) may process the distributed encrypted data, which may involve decryption and data formatting. The processed data may be mapped with user location information using a mapping module (216), potentially providing geographical context to the test results. Finally, the mapped video test results data may be stored in a database (210), allowing for future analysis and retrieval. This approach may enable secure, efficient, and contextually rich handling of video test results data from mobile devices.
- FIG. 3 illustrates a block diagram (300) of the network architecture for securely synchronizing and storing video test results data.
- the network architecture comprises: i. Mobile Device(s) (108): User Interface (UI) (302): Allows users to initiate video tests and view results.
- Encryption Module (304) Secures the video test results data before transmission.
- Storage Module (306) Temporarily stores encrypted test data locally.
- API Unit (308) Facilitates communication between the mobile device and the backend system.
- ii. Network (104) Connects the mobile devices to the backend system.
- iii. System (102) The backend infrastructure for processing and storing video test results data, including: Load Balancer Module (212): Distributes incoming data across backend servers.
- the network architecture comprises a mobile device(s) (108).
- the mobile device (108) may be configured to initiate a video test and capture video test results data.
- the mobile device (108) may include a mobile application having a User Interface (UI) (302), an encryption module (304), a storage module (306) and an application programming interface (API) unit (308).
- UI User Interface
- API application programming interface
- the system (102) further comprises a backend server module (310) that provides robust support for data processing, storage, and management.
- the backend server module (310) consists of a collection of servers and software components designed to handle the vast volumes of video test data transmitted from mobile devices (108).
- the backend server module (310) plays a critical role in the overall system architecture, serving as the central hub for data processing and analysis. It further comprises several key components: a data processing module (214) for handling and analyzing the received data, a mapping module (216) for associating the processed data with geographical information, and a database (210) for storing the processed and mapped data.
- This modular structure of the backend server module (310) allows for efficient handling of large-scale data processing tasks and enables scalability to accommodate growing data volumes and user bases.
- the system (102) operates through a mobile application, or the UI (302) installed on mobile device (108) of the user (110).
- the UI (302) serves as the primary interface for initiating video tests, capturing test results data, and facilitating data synchronization with the backend server module (310).
- the encryption module (304) is integrated into the mobile device (108) to ensure the security of video test results data.
- the encryption module (304) employs custom encryption methods to encrypt the captured test data before transmission, preventing unauthorized access or interception during data transfer. This encryption process is crucial for maintaining the confidentiality of potentially sensitive performance data as it travels from the mobile device (108) to the backend servers.
- the mobile device (108) includes the storage module (306) responsible for storing the encrypted video test results data.
- the storage module (306) stores the data in a structured file format locally on the mobile device (108), providing a temporary storage solution until the data can be synchronized with the backend server module (310). This local storage capability allows for offline testing and data collection, enhancing the system's versatility in various network conditions.
- the mobile device (108) is equipped with the API unit (308) to facilitate seamless data synchronization.
- the API unit (308) allows the mobile application to communicate with the backend server infrastructure securely.
- the API unit (308) enables the transmission of formatted video test results data from the mobile device (108) to the backend server module (310) over the internet. This standardized communication interface ensures compatibility and efficient data transfer between the mobile application and the backend systems.
- a load balancer module (212) may be employed.
- the load balancer module (212) receives data synchronization requests from the mobile application means and distributes them across one or more backend server modules (310) within the backend server infrastructure.
- the load balancer module (212) ensures optimal resource utilization and load distribution, which is crucial for maintaining system performance during peak usage periods or when processing large volumes of test data from numerous devices.
- the backend server module (310) provides robust support for data processing, storage, and management. Comprising a collection of servers and software components, the backend server module (310) plays a critical role in handling the vast volumes of video test results data transmitted from mobile devices (108).
- the backend server module (310) further comprises a data processing module (214), a mapping module (216), and a database (210).
- the data processing module (214) handles the storage and processing of formatted video test result data received from mobile devices (108).
- the data processing module (214) is responsible for processing the formatted video test result data received from the mobile application.
- the data processing module (214) comprises several components, including a message queue and virtual machine processes.
- a message queue for streaming the formatted video test result data between the mobile application and the backend server infrastructure may be used.
- the message queue uses a stream processing topic to ensure reliable and scalable communication between producers (mobile devices) and consumers (data processing module). This queuing mechanism helps manage the flow of incoming data, ensuring that all test results are processed in an orderly manner without overwhelming the system.
- the virtual machine processes are instances running on the backend servers. These processes are employed to read the formatted video test result data from the streaming topic. These processes run within the backend server environment and are responsible for consuming the data streams from the data streaming topic, performing any necessary processing tasks, and forwarding the processed data to the next stage.
- the use of virtual machines provides an additional layer of security and flexibility in data processing.
- the virtual machine processes act as a decryption module responsible for decrypting the encrypted video test result data received from mobile devices (108).
- the decryption module may apply decryption processes and methods to reverse the encryption process, thereby transforming the data back into its original, readable format.
- the decryption process ensures that the video test result data can be effectively processed, analyzed, and stored in the backend server module (310).
- the decryption module ensures that the integrity and confidentiality of the information are maintained throughout the synchronization process.
- the decryption module plays a crucial role in data security, as it verifies the authenticity of the decrypted data before further processing or storage. Overall, this module serves as a vital component in ensuring the seamless and secure synchronization of video test result data between the mobile device (108) and the backend server module (310).
- the mapping module (216) maps the decrypted video test result data with the user (110) location information received from the mobile device (108).
- the mapping module (216) associates each set of test results with the corresponding location of the mobile device (108), enabling geographic analysis and insights generation.
- the mapping module (216) may perform a mapping process where it correlates the video test results with the geographical coordinates or other location identifiers provided by the mobile device (108). This correlation enables the system (102) to contextualize the test results based on the physical locations where the tests were conducted.
- the mapping module (216) may match the decrypted data with the corresponding locations of the user (110) accurately.
- the mapping module (216) may utilize various location-based services, databases, or geospatial data sources to retrieve and validate the user (110) location information. Once the mapping process is complete, the mapping module (216) generates associations between the video test results and their respective locations, creating a cohesive dataset that integrates spatial context with test data. This location-based analysis can provide valuable insights into how video performance varies across different geographical areas or network conditions.
- the database (210) may be configured to store the processed and mapped video test results in a structured format.
- the database (210) provides a persistent storage solution for the data, allowing for efficient retrieval and querying during analytics and reporting tasks. This structured storage approach facilitates complex data analysis and enables the generation of comprehensive performance reports.
- the database (210) may also be configured to store program instructions.
- the database (210) is configured to store the processed and mapped video test results.
- the database (210) may be configured to store pre-processed data, and the predefined set of parameters.
- the database (210) may include any computer-readable medium known in the art including, for example, volatile memory, such as Static Random Access Memory (SRAM) and Dynamic Random Access Memory (DRAM) and/or non-volatile memory, such as Read Only Memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes.
- volatile memory such as Static Random Access Memory (SRAM) and Dynamic Random Access Memory (DRAM)
- non-volatile memory such as Read Only Memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes.
- ROM Read Only Memory
- ROM erasable programmable ROM
- flash memories hard disks, optical disks, and magnetic tapes.
- FIG. 4 illustrates an exemplary flow chart illustrating a method (400) or a process (400) for synchronizing and securely storing video test results data, in accordance with an embodiment of the present disclosure.
- the method (400) begins with a user (110) initiating a video test using a User Interface (UI) (302) on the mobile device(s) (108).
- UI User Interface
- the UI (302) allows the user (110) to select the parameters for the test, such as the video to be streamed and the resolution settings.
- the UI (302) may be part of a dedicated mobile application or potentially integrated into the mobile operating system itself.
- the UI (302) provides options for the user (110) to initiate a video test. This might involve selecting a specific video source (e.g., pre-downloaded video, online streaming platform) or customizing test parameters (e.g., video resolution, bitrate).
- the user might choose to test a 4K video stream from a popular streaming service, or a 1080p video file stored locally on the device.
- the UI (302) triggers the mobile device (108) to begin the video test. This may involve playing a test video stored on the mobile device (108), connecting to a specific streaming service, or initiating a download of a test video file.
- the mobile device (108) may be configured to capture the relevant data, including information about the video stream quality, network performance, and any buffering or playback issues encountered during the test.
- This captured data may include metrics such as initial buffering time, rebuffering events, video start time, video resolution changes, network type and strength, and overall playback quality. For instance, the device might record that the video took 2 seconds to start playing, experienced 3 rebuffering events lasting a total of 5 seconds, and maintained an average bitrate of 5 Mbps.
- the mobile device (108) may be configured to utilize the encryption module (304).
- the encryption module (304) employs custom encryption methods to transform the data into an unreadable format. This ensures that even if the data is intercepted during transmission, it remains confidential and unusable without the decryption key.
- the encryption process might use advanced algorithms such as AES (Advanced Encryption Standard) with a 256-bit key, providing a high level of security for the test data.
- AES Advanced Encryption Standard
- the mobile device (108) may be configured to store the now-encrypted video test results data in a structured file format in the storage module (306).
- This format is chosen for its efficiency in storing and transmitting data, as each data point is separated in a structured manner, making it easily readable by various applications.
- the data might be stored in a JSON (JavaScript Object Notation) format, which allows for hierarchical data representation and is widely supported across different platforms and programming languages.
- the mobile device (108) may be configured to utilize the integrated API unit (308) to establish communication with the backend server module (310).
- the API unit (308) acts as a communication bridge between the mobile application and the backend server module (310).
- the mobile device (108) may transmit the encrypted file containing the video test results data to the backend server module (310) using the established API unit (308) connection. Further, the API unit (308) is authenticated by using a security key. This could involve OAuth 2.0 authentication protocol, ensuring that only authorized devices can transmit data to the server.
- the backend server module (310) utilizes a load balancer module (212)
- the incoming data transmission request from the mobile device (108) is first directed to the load balancer module (212).
- the load balancer module (212) may be configured to analyze the current workload distribution across various backend servers within the infrastructure.
- the load balancer module (212) efficiently distributes the data transmission request to the backend server module (310), ensuring optimal server utilization and preventing any single server from becoming overloaded when handling a high volume of data.
- This load balancing might use algorithms such as least connection method or round robin to distribute incoming requests evenly.
- the backend server module (310) receives the data transmission request (containing the encrypted file) from the mobile device (108) after the API unit (308) is authenticated.
- a data processing module (214) is provided within the backend server module (310).
- the backend server module (310) Upon receiving the data transmission request (containing the encrypted file) from the load balancer, the backend server module (310) might perform basic validation checks on the received data to ensure its integrity before further processing or/and store the encrypted file in a temporary location on the server's storage system for further processing.
- the system (102) utilizes a stream processing platform topic, a message queueing system. Further, message queueing systems often support a streaming approach to data processing. This means data may be processed as it arrives in the queue, allowing for real-time or near-real-time processing.
- the system might use Apache Kafka as a distributed streaming platform, allowing for high-throughput, fault-tolerant handling of incoming data streams.
- the encrypted video test results data are decrypted using a virtual machine process.
- This process restores the data to its original, readable format, allowing for further analysis and manipulation.
- the virtual machine process acts as a consumer within the backend server module (310).
- the virtual machine process subscribes to a specific stream processing platform topic where the mobile device (108) publishes messages containing the encrypted files with video test results data. Whenever a new message arrives on the subscribed topic, the virtual machine process actively retrieves the message content.
- the retrieved message content from stream processing platform topic represents the encrypted file transmitted by the mobile device (108).
- the virtual machine process may perform some basic pre-processing steps on the retrieved data before decryption such as checking the data for errors or inconsistencies to ensure its integrity before further processing or removing irrelevant or redundant information from the captured data points to improve efficiency.
- the virtual machine process may be configured to decrypt the retrieved data using the custom decryption methods employed within the system (102). This decryption transforms the encrypted video test results data back into its original, readable format.
- the decrypted video test results data is then mapped with the user (110) location information received from the mobile device (108) in a mapping module (216).
- This mapping process associates each data point with the geographical location where the test was conducted, providing valuable context for analysis. For instance, the system might use GPS coordinates or cell tower triangulation data to determine that a particular test was conducted in downtown New York City, allowing for analysis of video performance in specific urban environments.
- the processed and mapped video test results data is stored in a database (210).
- the database (210) serves as a centralized repository for all video test results data, allowing for easy access, retrieval, and analysis by authorized users or applications. This might be implemented using a NoSQL database like MongoDB, which can efficiently handle large volumes of unstructured or semi-structured data and provide powerful querying capabilities for complex data analysis.
- FIG. 5 illustrates an exemplary flow diagram (500) for processing video test results data and web performance test (WPT) data, in accordance with an embodiment of the present disclosure.
- the method (500) assumes a mobile application or UI (302) that transmits video test results data to the backend server module (310).
- This step represents the initiation of the data flow from the user's mobile device (108) to the backend infrastructure.
- the mobile application through its user interface, allows users to conduct video tests and collect performance data.
- This data may include various metrics related to video playback quality and network performance. Examples of metrics that might be collected include:
- Video Playback Quality Metrics i. Video Start Time: The time taken for the video to begin playing after the user initiates playback (e.g., 1.5 seconds). ii. Initial Buffering Time: The duration of buffering before the video starts playing (e.g., 2.3 seconds). iii. Rebuffering Instances: The number of times playback pauses for buffering during the video (e.g., 3 times in a 10-minute video). iv. Rebuffering Duration: The total time spent rebuffering during playback (e.g., 7.5 seconds total). v. Video Resolution: The quality of the video displayed (e.g., 1080p, 720p, 480p). vi.
- Resolution Changes The number of times video quality changes during playback (e.g., 2 switches from 1080p to 720p).
- Frame Rate The number of frames displayed per second (e.g., consistent 30 fps, or dropping to 24 fps).
- Video Bitrate The amount of video data transferred per second (e.g., average 5 Mbps).
- Audio Sync Whether the audio remains in sync with the video (e.g., 20ms delay observed).
- Network Performance Metrics i.
- Network Type The type of network connection used (e.g., WiFi, 4G LTE, 5G).
- Signal Strength The strength of the network signal (e.g., -65 dBm for WiFi).
- Bandwidth The available network bandwidth during the test (e.g., 25 Mbps download speed).
- Latency The time taken for data to travel from the source to the destination (e.g., 50ms round trip time).
- Packet Loss The percentage of data packets that fail to reach their destination (e.g., 0.5% packet loss).
- Jitter The variation in latency over time (e.g., 15ms jitter). vii.
- DNS Domain Name System
- Resolution Time The time taken to resolve domain names (e.g., 20ms for DNS lookup).
- TCP Transmission Control Protocol
- Connection Time The time taken to establish a TCP connection (e.g., 75ms for connection setup).
- the load balancer module (212) distributes the incoming data from the mobile application(s) across the backend server infrastructure.
- the load balancer (212) plays a crucial role in ensuring efficient utilization of server resources by evenly distributing incoming requests. It may employ various algorithms such as round-robin, least connections, or IP hash to determine how to allocate incoming data across available servers. This step is vital for maintaining system performance and scalability, especially when dealing with high volumes of incoming test data from multiple devices simultaneously.
- the API unit (308) receives the video test results data from the load balancer (212).
- the API unit (308) serves as the entry point for data into the backend system, providing a standardized interface for communication between the mobile applications and the server infrastructure. It may handle tasks such as request validation, authentication, and initial data parsing.
- the data processing module (214) may be configured to receive the formatted video test results data through the UI (302). At this point, the data flow splits into two paths, allowing for parallel processing of different types of performance data.
- data captured by the mobile device (108) specifically related to video playback performance is processed.
- This data might include metrics like bitrate (e.g., average bitrate of 5 Mbps), frame rate (e.g., 30 fps), buffering duration (e.g., initial buffering time of 2 seconds), resolution (e.g., 1080p), and device information (e.g., device model, OS version).
- the processing may involve data normalization, statistical analysis, and trend identification. Further, reports and visualizations for video performance insights may be generated. These could include graphs showing bitrate fluctuations over time, heat maps of buffering events across different network conditions, or comparative charts of video quality across different device types.
- WPT Web Performance Test
- the data could include metrics like page load times (e.g., average load time of 3 seconds), response times (e.g., server response time of 200ms), resource loading speeds (e.g., image loading time of 500ms), and network performance (e.g., average latency of 50ms).
- WPT data provides a broader view of the web application's performance beyond just video playback, offering insights into how the entire web ecosystem is functioning for the user.
- both video test results data and WPT data are stored in the database (210) for further analysis and retrieval.
- the database (210) serves as a centralized repository for all performance data, allowing for comprehensive analysis and long-term trend tracking.
- the storage process may involve data indexing for efficient querying, data compression to optimize storage space, and the implementation of data retention policies.
- the dual-path processing approach allows the system to handle both specific video performance metrics and broader web application performance data, providing a comprehensive view of the user's experience.
- the stored data can be used for various purposes such as identifying performance bottlenecks, informing content delivery optimizations, and guiding future development efforts to enhance overall user experience.
- FIG. 6 illustrates an exemplary flow diagram of a method (600) for synchronizing and storing video test results data, in accordance with embodiments of the present disclosure.
- the method (600) includes receiving encrypted video test results data from a mobile device (108).
- the video test results data encompasses a comprehensive set of metrics and measurements collected during video playback testing. At the fundamental level, this data includes critical video quality metrics that directly reflect the viewing experience. These metrics capture resolution data, such as successful playback at 1080p, 720p, or 4K quality levels, along with frame rate measurements that indicate whether the video maintains a consistent 30 frames per second or experiences drops to lower rates like 24 fps.
- the system also records bitrate information, typically showing measurements such as an average bitrate of 5 Mbps or peak bitrates reaching 8 Mbps, as well as video codec performance data for encodings like H.264 or H.265.
- Buffering performance represents another crucial aspect of the collected data.
- the system measures initial buffering duration, recording how long it takes for playback to begin - for instance, 2.5 seconds from the moment a user initiates playback.
- the system tracks rebuffering frequency, noting instances such as three buffering events occurring within a 10- minute video.
- Buffer health measurements provide insight into the stability of playback, with metrics like an average buffer length of 15 seconds, while stall duration metrics might show total playback interruption time, such as 4.2 seconds of stalling during a session.
- Network performance metrics form a vital component of the test results data, encompassing bandwidth utilization that might show average throughput of 10 Mbps, along with network type identification specifying whether the connection is 4G, 5G, or Wi-Fi.
- the system monitors connection stability through metrics such as packet loss rate, which might be measured at 0.1%, and network latency measurements showing average delays of 50 milliseconds. These network metrics provide crucial context for understanding video delivery performance.
- User experience data captures the interactive aspects of video playback. This includes measurements of time to first frame, which might be 1.8 seconds from a play request to visible content, and play/pause response times averaging 200 milliseconds.
- the system records seek time measurements, such as 500 milliseconds required to jump to a new position in the video, and tracks quality switches, for instance noting two resolution changes during a single playback session.
- Device context information provides essential background for analyzing video test results data.
- the system records device specifications such as whether the test was conducted on an iPhone 13 Pro or Samsung Galaxy S21, along with operating system details like iOS 15.2 or Android 12.
- Screen specifications including display resolution of 2532 x 1170 pixels are logged, as well as hardware performance metrics showing CPU usage at 25% and memory consumption of 1.2GB during playback.
- Error and debug information rounds out the collected data, providing crucial diagnostic capabilities.
- the system logs playback errors such as codec initialization failures, connection errors like CDN timeouts, and recovery attempts including the number of automatic retries.
- Each error is recorded with specific error codes and timestamps, such as Error #1003 occurring at 15:30:45 GMT, enabling detailed troubleshooting and performance optimization.
- this comprehensive data collection enables detailed analysis of video streaming performance. For example, in a typical test scenario, the system might record that a 4K video stream initially loaded in 2.3 seconds, maintained an average bitrate of 15 Mbps, experienced two quality switches due to network fluctuations, and had a total stall time of 0.8 seconds over a 5-minute playback period. This granular level of data collection allows organizations to thoroughly analyze their video delivery systems and optimize the viewing experience across different devices, networks, and conditions.
- the process of receiving encrypted video test results data involves several sequential steps executed by the system. Initially, the mobile device establishes a secure connection with the backend server using Transport Layer Security (TLS) version 1.3 protocol. This connection is authenticated using OAuth 2.0 tokens, ensuring that only authorized devices can transmit data to the system. Once the secure channel is established, the mobile device initiates the data transmission process by sending an HTTP POST request to a predefined endpoint, typically following the format "https://api.videotest.domain/vl/results". The request headers include authentication tokens, device identifiers, and test session information.
- TLS Transport Layer Security
- the receiving process implements a multi-stage verification system.
- the system validates the incoming request's authentication credentials against its secure token store.
- the system performs a preliminary validation of the data format, ensuring that the encrypted payload matches the expected structure and size limitations. For example, the system verifies that the encrypted data package includes required metadata fields such as test timestamp, device identifier, and encryption version.
- the actual data reception occurs in chunks of 16KB, with each chunk being validated for integrity using SHA-256 checksums before being reassembled in the system's memory.
- the receiving process implements a robust retry mechanism. If a data transmission is interrupted, the system maintains a partial reception state for up to 30 minutes, allowing the mobile device to resume transmission from the last successfully received chunk. This mechanism includes acknowledgment packets sent back to the mobile device for each successfully received chunk, enabling reliable data transmission even in unstable network conditions.
- the mobile devices supported by the system encompass a wide range of modern smartphones and tablets. These include mini devices such as the iPhone 14 Pro Max with iOS 16 or later, iPhone 13 series running iOS 15 or above, and iPhone 12 models with minimum iOS 14.5.
- the system supports devices such as the Samsung Galaxy S23 Ultra running Android 13, Google Pixel 7 Pro with Android 13 or later, and OnePlus 10 Pro with OxygenOS based on Android 12 or above.
- Tablet devices include the iPad Pro (Ml and M2 models) running iPadOS 16 or later, Samsung Galaxy Tab S8 series with Android 12 or above, and Microsoft Surface Pro devices running Windows 11.
- Each supported device undergoes compatibility testing to ensure proper implementation of the video test data collection and transmission protocols. For instance, an iPhone 14 Pro Max might transmit test data showing 4K video playback capabilities with HDR support, while a mid-range Android device might report 1080p maximum resolution with standard dynamic range.
- the system adapts its receiving process based on device capabilities, adjusting buffer sizes and processing parameters accordingly. For example, when receiving data from a high- end device like the Samsung Galaxy S23 Ultra, the system might allocate larger buffer sizes to accommodate the more detailed performance metrics and higher resolution video test data.
- the receiving process also includes device-specific optimizations.
- iOS devices the system implements specific handling for background data transmission limitations imposed by iOS, ensuring reliable data reception even when the testing application enters the background state.
- Android devices the system accounts for various manufacturer- specific modifications to the Android operating system, adapting its receiving protocols to maintain compatibility with devices from different manufacturers such as Samsung, Google, OnePlus, and Huawei.
- This step may involve the system receiving data that has been encrypted on the mobile device to ensure security during transmission.
- the encrypted video test results data may be received via an application programming interface (API) unit of the mobile device (108). This API unit may facilitate secure and standardized communication between the mobile device and the backend system, ensuring efficient data transfer and compatibility.
- API application programming interface
- Different encryption techniques that might be used for securing the video test results data include: i. Symmetric Encryption: AES (Advanced Encryption Standard): A widely used block cipher that supports key sizes of 128, 192, and 256 bits. Example: AES-256 in GCM (Galois/Counter Mode) for both encryption and authentication. ChaCha20: A high-speed stream cipher, often paired with the Polyl305 authenticator. Example: ChaCha20-Polyl305 for efficient encryption on mobile devices. ii. Asymmetric Encryption: RSA (Rivest-Shamir-Adleman): Uses separate keys for encryption and decryption.
- Attribute-Based Encryption Incorporates attributes or policies into the encryption process for fine-grained access control.
- vii. Format-Preserving Encryption Encrypts data while maintaining its original format.
- the method (600) includes distributing, using a load balancer module (212), the received encrypted video test results data to one or more backend servers. This distribution may be performed using a predetermined distribution algorithm, which could be designed to optimize server utilization and ensure efficient processing of the incoming data.
- the load balancer module (212) may analyze current server loads and distribute the data accordingly, preventing any single server from becoming overwhelmed.
- the distribution process executed by the load balancer module (212) follows a sophisticated sequence of steps to ensure optimal allocation of incoming video test data.
- the load balancer module first performs a preliminary analysis of the incoming data packet size, current server loads, and network conditions. This analysis occurs within 50 milliseconds and determines the most efficient distribution path. For example, when receiving a 50MB video test results package, the load balancer calculates server capacity and current processing loads before making a distribution decision.
- the actual distribution process begins with a health check of all available backend servers.
- the load balancer maintains continuous TCP connections with each server, sending periodic heartbeat signals every 30 seconds to verify server availability and response times. For instance, if a backend server fails to respond to two consecutive heartbeat signals, it is temporarily marked as unavailable and removed from the distribution pool.
- this health checking becomes particularly crucial to maintain system stability.
- the load balancer applies its distribution algorithm. In a typical scenario, if Server A reports a current load of 75% CPU utilization, Server B shows 45%, and Server C indicates 60%, the load balancer would direct new incoming data to Server B. The distribution decision also considers network latency between the load balancer and each server. For example, if Server B has 45% CPU utilization but shows a network latency of 100ms, while Server C has 60% CPU utilization but only 20ms latency, the load balancer might prefer Server C for time- sensitive video test data.
- the backend server infrastructure consists of multiple server types optimized for different aspects of video test data processing.
- Primary processing servers typically configured with 32-core CPUs, 128GB RAM, and NVMe SSDs, handle the bulk of data decryption and initial processing.
- a primary processing server might be an AWS EC2 instance of type r6g.8xlarge, equipped with ARM-based processors optimized for encryption operations. These servers can each handle approximately 1,000 concurrent video test processing tasks while maintaining response times under 100ms.
- Secondary analysis servers configured with 64-core CPUs and 256GB RAM, focus on deep analysis of processed data. These might be implemented as Google Cloud Platform's n2-standard-64 instances, each capable of performing complex statistical analysis on video test results from up to 5,000 unique test sessions simultaneously. For instance, a secondary analysis server can process detailed performance metrics, generating insights about video quality variations across different network conditions within 200ms per analysis task.
- Storage-optimized servers form another crucial component of the backend infrastructure. These servers, equipped with arrays of high-speed SSDs in RAID 10 configuration, provide temporary storage for incoming encrypted data and processed results.
- a typical storage server might utilize AMD EPYC processors with 128 PCIe lanes, supporting up to 100TB of NVMe storage with write speeds exceeding lOGB/s. This configuration allows each storage server to handle simultaneous write operations from up to 2,000 concurrent test sessions while maintaining sub-millisecond latency.
- the distribution process also includes intelligent routing based on data characteristics. For example, when receiving video test results from high- resolution 4K streaming tests, which typically generate larger data packages of lOOMB or more, the load balancer automatically routes these to servers with enhanced memory and storage capabilities. Similarly, when processing data from bandwidth-intensive tests involving multiple simultaneous video streams, the load balancer selects servers with optimal network interface configurations, such as those equipped with lOOGbps network cards and
- the method (600) includes processing, using a data processing module (214), the distributed encrypted video test results data. This processing step may involve several sub-steps.
- the process begins with the mobile device (108) establishing a secure API connection to the system.
- the API unit implements REST architecture using HTTPS protocols and OAuth 2.0 authentication.
- Each mobile device is assigned a unique client identifier and secret key pair during initial registration. For example, when a device first connects, it must complete a device registration process that generates a unique device_id like "dev_7a9b3c2d" and corresponding authentication credentials. These credentials are securely stored in the device's encrypted keychain storage.
- the initiation of a video test follows a systematic process that begins when a user accesses the testing interface.
- the system supports testing across multiple application types, including but not limited to web applications, native mobile applications, streaming platforms, and video conferencing systems.
- web applications the test might involve loading a video player on websites like YouTube or Netflix.
- native applications the test could evaluate video playback in apps like Instagram or TikTok.
- Video conferencing platforms such as Zoom or Microsoft Teams can also be evaluated for their real-time video transmission capabilities.
- Test initiation involves several precise steps.
- the user interface (302) presents a configuration screen where test parameters are selected. These parameters include video quality settings (ranging from 480p to 4K), network condition simulations (such as bandwidth throttling or packet loss simulation), and test duration. For example, a user might configure a test to evaluate 1080p video playback under simulated 4G network conditions with 1% packet loss over a 5- minute duration.
- the interface provides real-time validation of selected parameters to ensure they form a valid test configuration.
- the capturing process implements a multi-layered approach to collect comprehensive test data.
- the system captures raw network packets using libpcap libraries, allowing for detailed network performance analysis.
- the application level it monitors video player events through a custom event listener framework. For example, when a video player initiates a quality switch, the system captures the exact timestamp, previous quality level, new quality level, and the reason for the switch (e.g., "bandwidth_decrease” or "user_selected”).
- the system captures data points at multiple sampling rates depending on the metric type:
- Event-based metrics quality switches, buffering events, user interactions
- the encryption process employs a sophisticated multi-step approach to secure the captured data. Initially, the system generates a unique 256-bit test session key using a cryptographically secure random number generator. This session key is then used with the AES-256-GCM encryption algorithm to encrypt the captured data. The encryption process occurs in real-time as data is captured, with each data block being encrypted independently to allow for parallel processing.
- the encryption procedure includes:
- the encrypted data is then stored in a structured file format that includes:
- the distributed encrypted video test results data may be inserted into a message queue.
- the message queue is a form of asynchronous service-to- service communication used in serverless and microservices architectures. It temporarily stores messages (in this case, encrypted video test results data) until they are processed by a consuming application.
- Examples of message queue includes: i. Apache Kafka: A distributed streaming platform that can handle high-throughput data pipelines. ii. RabbitMQ: A message broker that supports multiple messaging protocols. iii. Amazon SQS (Simple Queue Service): A fully managed message queuing service. iv. Google Cloud Pub/Sub: A messaging service for independent applications to publish and subscribe to asynchronous events.
- This queue can help manage the flow of incoming data, especially during high traffic periods.
- the data processing module (214) then consumes the inserted encrypted video test results data from the message queue.
- the data may be decrypted using a virtual machine process of the data processing module (214).
- the decryption process may include below sub steps: i.
- the virtual machine retrieves the encrypted data from the message queue. ii. It identifies the encryption algorithm used (this information might be included in the metadata).
- iii. The appropriate decryption key is securely fetched from a key management system.
- the decryption algorithm is applied to the data. Decryption Algorithm Example: AES-256 in GCM mode
- This decryption step restores the data to its original, readable format for further analysis.
- the readable format refers to the original, unencrypted structure of the video test results data, typically in a standardized data format that can be easily parsed and analyzed by the system. Examples of Readable Format includes: JSON (JavaScript Object Notation, CSV (Comma-Separated Values), XML (extensible Markup Language).
- JSON JavaScript Object Notation, CSV (Comma-Separated Values), XML (extensible Markup Language).
- the data processing module executes a sophisticated sequence of operations to handle the distributed encrypted video test results data. The processing begins with a preliminary validation phase where the module verifies the integrity of received data packages using SHA-256 hash verification. For example, when a 50MB encrypted data package arrives, the module first confirms that its hash value matches the original hash generated at the time of encryption on the mobile device, ensuring no data corruption occurred during transmission.
- the initial stage of processing involves segregating the encrypted data into manageable chunks of 16MB each. These chunks are temporarily stored in a high-speed memory buffer using a ring buffer architecture, which allows for efficient processing of large datasets. For instance, when processing a video test result file containing two hours of playback data, the system might create approximately 200 chunks, each containing a specific time segment of the test results. The module assigns each chunk a unique identifier and tracks its processing status through a distributed state management system.
- the decryption process begins with key retrieval from a secure key management service.
- the module maintains a secure connection to a Hardware Security Module (HSM) that stores the master keys.
- HSM Hardware Security Module
- the module first requests the appropriate decryption key using a key identifier embedded in the encrypted data's metadata. For example, if the data was encrypted using AES-256-GCM, the module retrieves the corresponding 256-bit key from the HSM, using a secure channel encrypted with TLS 1.3.
- the actual decryption operation processes each data chunk sequentially using a multi-threaded approach.
- the module spawns multiple worker threads, typically one thread per available CPU core, to parallel process the chunks. For a server with 32 cores, this means 32 chunks can be decrypted simultaneously.
- Each thread performs the decryption using the AES-NI hardware acceleration when available, achieving decryption speeds of approximately 3GB per second per thread.
- the module maintains strict memory management during this process, securely wiping decrypted data from memory once it has been processed and written to secure storage.
- Post-decryption processing involves several critical steps.
- the module first validates the decrypted data's structure against predefined schemas. For instance, it verifies that all required fields such as timestamp, device identifier, and video metrics are present and properly formatted.
- the module then performs data normalization, converting various time formats to UTC, standardizing units of measurement, and ensuring consistent formatting of numerical values. For example, if different mobile devices report bandwidth in different units (Mbps vs. Kbps), the module converts all measurements to a standardized unit (Mbps) for consistency.
- the module implements sophisticated error handling throughout the processing pipeline. If decryption fails for any chunk, the module initiates a retry mechanism with exponential backoff, attempting up to three retries with increasing delays (100ms, 200ms, 400ms) between attempts. Failed chunks are logged with detailed error information, including the specific encryption parameters used, chunk identifiers, and error codes. For instance, if a chunk fails decryption due to an invalid initialization vector, the module logs this specific error along with the chunk's metadata for later analysis.
- the module performs preliminary analysis of the data. This includes calculating basic statistical metrics such as average bitrate, buffering ratio, and quality switch frequency. For example, when processing a one-hour video test session, the module might compute metrics like average playback bitrate every 10 seconds, creating 360 data points for temporal analysis. These processed results are then prepared for storage, with the module adding metadata tags indicating the processing timestamp, server identifier, and processing version for full auditability. [00223]
- the final stage of processing involves data optimization for storage and retrieval.
- the module compresses the processed data using industry-standard algorithms like LZ4, achieving compression ratios of approximately 4:1 while maintaining sub-millisecond decompression times.
- the compressed data is then organized into a columnar format optimized for analytical queries, with frequently accessed metrics stored in separate columns for efficient retrieval. For instance, common query parameters like device type, network conditions, and video quality metrics are stored in dedicated columns with appropriate indexing.
- the method (600) includes mapping, using a mapping module (216), the processed video test results data with location information of a user (110).
- This mapping process may involve determining the location information based on at least one of geographical coordinate data or cellular network identification data received from the mobile device (108).
- the determination of location information follows a multi-tiered process implemented by the mapping module (216).
- the mapping module 216.
- the system first attempts to use high-precision GPS coordinates. These coordinates typically arrive in standard decimal degree format, such as latitude 40.7128°N (40.7128) and longitude 74.0060°W (-74.0060) for a device located in New York City. In optimal conditions with clear sky view, GPS accuracy can reach within 5-10 meters of the actual device location.
- the location determination process implements a fallback hierarchy when high-precision GPS data is unavailable.
- the system attempts to use assisted GPS (A-GPS) data, which combines satellite signals with cell tower information to improve location accuracy in urban environments. For example, in a dense urban area like Tokyo (35.6762°N, 139.6503 °E), where tall buildings might impair GPS signals, A-GPS can still provide accuracy within 15-20 meters by triangulating between multiple data sources.
- A-GPS assisted GPS
- the system falls back to cellular network identification data.
- This process involves triangulating location using multiple data points: Cell ID (a unique identifier for each cell tower, such as "12345”), Mobile Country Code (MCC, such as “310” for the United States), and Mobile Network Code (MNC, such as "120” for Sprint). For instance, if a device connects to three cell towers with IDs “45678", “45679”, and “45680” in San Francisco (37.7749°N, 122.4194°W), the system can triangulate location within 50- 100 meters accuracy by calculating signal strengths and known tower positions.
- MCC Mobile Country Code
- MNC Mobile Network Code
- the system maintains a comprehensive database of geographical reference points to enhance location accuracy.
- This database includes:
- Wi-Fi access point mappings e.g., SSID "Airport-WiFi” at 1.3521°N, 103.9198°E in Singapore
- the system implements a weighted averaging algorithm. For example, when a device in Sydney (-33.8688°S, 151.2093°E) provides both GPS coordinates and cell tower data, the system might weight GPS data at 80% and cell tower data at 20% based on reported accuracy levels. This weighted approach helps mitigate individual sensor errors and provides more reliable location determination.
- the location determination process also accounts for movement during video testing. For instance, if a user is testing video performance while traveling on a train from Berlin (52.5200°N, 13.4050°E) to Hamburg (53.5511°N, 9.9937°E), the system captures location updates every 30 seconds to track performance variations along the journey. This dynamic location tracking helps correlate video performance with changing network conditions across different geographical areas.
- the system stores location data with varying levels of precision based on privacy settings and regulatory requirements. For example, in densely populated areas like Mumbai (19.0760°N, 72.8777°E), the system might store precise coordinates, while in rural areas, it might reduce precision to a 1km grid to maintain user privacy while still providing meaningful location-based analysis.
- the geographical coordinate data may comprise latitude and longitude data, providing precise location information.
- the cellular network identification data may include Cell ID data, Mobile Country Code (MCC) data, or Mobile Network Code (MNC) data, which can be used to approximate the user's location when GPS data is unavailable.
- MCC Mobile Country Code
- MNC Mobile Network Code
- the method (600) includes storing the mapped video test results data in a database (210).
- This database may be a non-relational database system, chosen for its ability to handle large volumes of unstructured or semistructured data efficiently.
- the use of a non-relational database can provide flexibility in data storage and retrieval, which is particularly useful for the varied types of data collected during video performance tests.
- Examples of non-relational database systems that could be used for storing video test results data include: i. Apache HBase: A column-oriented, distributed NoSQL database built on top of the Hadoop Distributed File System (HDFS).
- Example usage Storing time-series data of video performance metrics, where each row represents a test instance, and columns represent different metrics. ii.
- MongoDB A document-oriented NoSQL database that stores data in flexible, JSON-like documents.
- Example usage Storing complete test results as individual documents, allowing for easy addition of new fields without schema changes.
- Cassandra A wide-column store NoSQL database designed to handle large amounts of data across many commodity servers.
- Example usage Storing video test results with a focus on write performance and scalability.
- the method (600) may further include generating reports and visualizations based on the stored mapped video test results data.
- These reports may include: i. Executive Summaries: High-level overviews of video performance metrics across the entire system. ii. Detailed Performance Reports: In-depth analyses of specific metrics such as buffering rates, video start times, and playback quality. iii. Device-Specific Reports: Breakdowns of performance metrics by device type, operating system, or model. iv. Geographical Performance Reports: Analyses of video performance across different regions or countries. v. Network Condition Reports: Comparisons of video performance across various network types (e.g., 4G, 5G, Wi-Fi) and strengths. vi. Trend Reports: Analyses of how video performance metrics change over time. vii. Anomaly Reports: Highlighting instances of unusual or suboptimal performance for further investigation.
- Heat Maps Graphical representations of data where values are depicted by color. Example: A geographical heat map showing average video start times across different regions, with red indicating slower start times and green indicating faster ones. Use: Quickly identify problematic areas or patterns in video performance across different dimensions (e.g., geography, time, device type).
- Trend Charts Line graphs that show how specific metrics change over time. Example: A line chart showing the average bitrate of video playback over the past 6 months. Use: Identify long-term patterns, cyclical trends, or the impact of specific changes or events on video performance. iii.
- Comparative Analyses Visual or tabular representations that directly compare performance metrics across different categories.
- the method (600) may include processing the video test results data using a distributed computing framework to analyze performance metrics of the web application.
- Distributed Computing Frameworks may include: i. Apache Hadoop: An open-source framework that allows for the distributed processing of large data sets across clusters of computers. ii. Apache Spark: A unified analytics engine for large-scale data processing, capable of handling batch processing, real-time streaming, machine learning, and graph computation. iii. Apache Flink: A stream processing framework that provides precise control of time and state for stateful computations. iv. Google Clo ud Dataflow: A fully managed service for executing Apache Beam pipelines within the Google Cloud Platform ecosystem.
- the performance metrics are quantifiable measures used to assess the efficiency and effectiveness of a web application, particularly in terms of video delivery and playback quality.
- Performance Metrics may include: i. Video Start Time: The time taken for a video to begin playing after a user initiates playback. ii. Buffering Ratio: The proportion of time spent buffering compared to total video duration. iii. Average Bitrate: The average amount of data processed per unit of time during video playback. iv. Video Quality Switches: The number of times video resolution changes during playback. v. Error Rate: The percentage of video playback attempts that result in errors. vi. User Engagement: Metrics like watch time, completion rate, and interaction rate.
- This distributed computing approach allows for efficient processing of large datasets, enabling complex analyses that can reveal deeper insights into video performance and user experience.
- the complex analyses refer to sophisticated data processing techniques that go beyond simple aggregations or summaries. These may include: i. Time Series Analysis: Examining how video performance metrics change over time, identifying seasonal patterns or trends. ii. Multivariate Analysis: Investigating the relationships between multiple performance metrics simultaneously. iii. Predictive Modeling: Using machine learning algorithms to forecast future performance based on historical data. iv. Anomaly Detection: Identifying unusual patterns or outliers in performance data that may indicate issues. v. Cohort Analysis: Grouping users based on shared characteristics and analyzing their video performance experiences. vi. Funnel Analysis: Tracking user progression through different stages of video interaction to identify drop-off points.
- Deeper insights refer to more nuanced and actionable understandings of video performance and user experience, often uncovered through advanced analytics. Examples include: i. Performance Bottlenecks: Identifying specific network conditions, device types, or geographical locations that consistently experience suboptimal video performance. ii. User Behavior Patterns: Uncovering how different performance metrics correlate with user engagement or retention rates. iii. Quality of Experience (QoE) Modeling: Developing comprehensive models that quantify overall user experience based on multiple performance metrics. iv. Predictive Maintenance: Anticipating potential issues in video delivery infrastructure before they impact users. v. Personalization Opportunities: Identifying user segments that might benefit from tailored video delivery strategies. vi. Root Cause Analysis: Tracing performance issues back to their source, whether it's in content encoding, network infrastructure, or client-side rendering.
- QoE Quality of Experience
- the encrypted video test results data is generated by the mobile device (108) through a series of steps. Initially, a video test is initiated via a user interface (302) to evaluate the performance of a web application. This test may involve playing a video under various network conditions or device states. The mobile device then captures video test results data from the initiated test, which may include metrics such as buffering time, playback quality, and network performance. This captured data is then encrypted using an encryption module (304) to ensure its security. Finally, the encrypted video test results data is stored in a structured file format using a storage module (306) on the mobile device, ready for transmission to the backend system.
- a user device (108) for participating in video performance testing may be equipped with a user interface (302) for initiating video tests, an encryption module (304) for securing test data, a storage module (306) for locally storing encrypted test results, and an API unit for communicating with the backend system.
- the encryption module (304) secures test data through the following process: i. Data Collection: The device collects raw video performance data during the test. ii. Data Preparation: The collected data is formatted into a structured format (e.g., JSON or XML) for encryption. iii. Key Generation: A unique encryption key is generated for each test session.
- Encryption Process The formatted data is encrypted using the generated key. For example: Using AES-256 in GCM (Galois/Counter Mode) for symmetric encryption v. Metadata Attachment: Encryption metadata (e.g., algorithm used, key identifiers) is attached to the encrypted data.
- Key Security The encryption key is securely stored or transmitted separately from the encrypted data, possibly using key management systems or secure enclaves on the device.
- Integrity Protection Additional measures like digital signatures or message authentication codes (MACs) are applied to ensure data integrity. viii.
- Secure Storage The encrypted data is stored locally in the storage module (306) until it can be transmitted to the backend system.
- Secure Transmission When transmitting to the backend, the API unit uses secure protocols (e.g., HTTPS with Transport Layer Security (TLS) version 1.3 for an additional layer of protection.
- TLS Transport Layer Security
- This process ensures that the video test results data remains confidential and tamper-proof both while stored on the device and during transmission to the backend system.
- This user device (108) plays a crucial role in generating and securely transmitting video test results data, enabling comprehensive analysis of video performance across various real-world conditions.
- the encryption process allows for the collection of sensitive performance data without compromising user privacy or data integrity, thus providing a reliable foundation for in-depth analysis of video streaming performance in diverse scenarios.
- the present disclosure provides technical advancement related to video performance testing and analysis. This advancement addresses the limitations of existing solutions by offering a secure, scalable, and comprehensive method for collecting, processing, and analyzing video test results data.
- the disclosure involves encrypted data transmission, distributed processing, and location-based mapping, which offer significant improvements in data security, processing efficiency, and contextual analysis.
- the disclosed invention enhances the ability to evaluate and optimize video performance across diverse network conditions and geographical locations, resulting in improved user experience and more efficient resource utilization for video content delivery.
- FIG. 7 illustrates an example computer system (700) in which or with which the embodiments of the present disclosure may be implemented.
- the computer system (700) may include an external storage device (710), a bus (720), a main memory (730), a read-only memory (740), a mass storage device (750), a communication port(s) (760), and a processor (770).
- the processor (770) may include various modules associated with embodiments of the present disclosure.
- the communication port(s) (760) 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 fibre, a serial port, a parallel port, or other existing or future ports.
- the communication ports(s) (760) 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 (700) connects.
- LAN Local Area Network
- WAN Wide Area Network
- the main memory (730) may be Random Access Memory (RAM), or any other dynamic storage device commonly known in the art.
- the read-only memory (740) 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 (770).
- the mass storage device (750) 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).
- PATA Parallel Advanced Technology Attachment
- SATA Serial Advanced Technology Attachment
- USB Universal Serial Bus
- the bus (720) may communicatively couple the processor(s) (770) with the other memory, storage, and communication blocks.
- the bus (720) may be, e.g. a Peripheral Component Interconnect PCI) / PCI Extended (PCLX) bus, Small Computer System Interface (SCSI), Universal Serial Bus (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 (770) to the computer system (700).
- PCI Peripheral Component Interconnect
- PCLX PCI Extended
- SCSI Small Computer System Interface
- USB Universal Serial Bus
- operator and administrative interfaces e.g., a display, keyboard, and cursor control device may also be coupled to the bus (720) to support direct operator interaction with the computer system (700).
- Other operator and administrative interfaces can be provided through network connections connected through the communication port(s) (760).
- the method and system of the present disclosure may be implemented in a number of ways.
- the methods and systems of the present disclosure may be implemented by software, hardware, firmware, or any combination of software, hardware, and firmware.
- the above-described order for the steps of the method is for illustration only, and the steps of the method of the present disclosure are not limited to the order specifically described above unless specifically stated otherwise.
- the present disclosure may also be embodied as programs recorded in a recording medium, the programs including machine-readable instructions for implementing the methods according to the present disclosure.
- the present disclosure also covers a recording medium storing a program for executing the method according to the present disclosure.
- the present disclosure ensures that video test results data remains secure and protected from unauthorized access or tampering through the implementation of custom encryption methods on the mobile device and secure transmission protocols. [00254] The present disclosure enables the system to efficiently handle large volumes of video test results data from multiple mobile devices simultaneously by utilizing a load balancer module and distributed backend server infrastructure.
- the present disclosure enhances the accuracy and relevance of video performance analysis by mapping test results to specific geographical locations, providing context-rich insights into user experience across different regions and network conditions.
- the present disclosure improves the scalability and processing efficiency of the system through the use of a message queue and virtual machine processes, allowing for real-time or near-real-time data processing even during peak load periods.
- the present disclosure facilitates comprehensive performance evaluation by combining video test results data with web performance test data, offering a holistic view of both video playback and overall web application performance.
- the present disclosure enables flexible and efficient data storage and retrieval through the use of a non-relational database system, accommodating the diverse and potentially unstructured nature of video test results data.
- the present disclosure enhances the analytical capabilities of the system by employing distributed computing frameworks for processing video test results, allowing for complex analyses and the identification of performance trends across large datasets.
- the present disclosure improves the usability and actionability of test results by generating visual reports and analytics, enabling stakeholders to quickly identify issues and make data-driven decisions for performance optimization.
- the present disclosure ensures the integrity and confidentiality of test data throughout its lifecycle, from capture on the mobile device to storage and analysis in the backend system, through end-to-end encryption and secure decryption processes.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Graphics (AREA)
- Library & Information Science (AREA)
- Software Systems (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
Abstract
The present disclosure provides systems and methods for secure collection, synchronization, and analysis of video test results data from mobile devices (108) Video testing on mobile devices (108) often faces challenges with data security, scalability, and comprehensive testing capabilities. The disclosed solution implements encrypted data transmission through an encryption module (306), load- balanced processing architecture via a load balancer module (212), and location- aware analysis using a mapping module (216) to overcome these limitations. Test results from mobile video applications are securely captured through a user interface (302), encrypted at the source, and transmitted through authenticated channels using a REST API unit (110). A distributed backend server module (310) processes this encrypted data while maintaining data integrity. The system (102) employs a data processing module (214) to process the encrypted data and correlates results with geographical and network contexts through the mapping module (216), enabling performance analysis across different locations and conditions.
Description
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 THE DISCLOSURE
[0002] The embodiments of the present disclosure generally relate to field of telecommunication. In particular, the present disclosure relates to systems and methods for synchronizing and storing video test results data.
DEFINITION
[0003] As used in the present disclosure, the following terms are generally intended to have the meaning as set forth below, except to the extent that the context in which they are used to indicate otherwise.
[0004] Video test results data refers to performance metrics and information collected during the evaluation of video playback quality and user experience on mobile devices.
[0005] Load balancer module refers to a component that distributes incoming network traffic or computational tasks across multiple servers to ensure optimal resource utilization and prevent overload.
2
[0006] Backend servers refer to the server infrastructure that processes, analyses, and stores the video test results data received from mobile devices.
[0007] Data processing module refers to a component responsible for manipulating, transforming, and analyzing the received video test results data.
[0008] Mapping module refers to a component that associates processed video test results data with geographical or network-related location information of the user.
[0009] Database refers to a structured collection of data specifically designed to store and manage video test results and associated information.
[0010] Encryption refers to the process of encoding information in such a way that only authorized parties can access it, ensuring data security during transmission.
[0011] Structured file format refers to a standardized way of organizing data that makes it easily readable and processable by various applications. Common examples include CSV (Comma-Separated Values) format.
[0012] Virtual machine process refers to a software-based emulation of a computer system that can perform tasks in isolation from the host operating system.
[0013] Non-relational database system refers to a database that does not use the traditional table-based relational database structure, often providing more flexibility in data storage and retrieval.
[0014] Distributed computing framework refers to a system that uses multiple computers to solve large-scale computational problems, improving processing efficiency and scalability.
[0015] REST API (Representational State Transfer Application Programming Interface) refers to an architectural style for designing networked applications, typically used for web services that are lightweight, maintainable, and scalable.
[0016] JVM (Java Virtual Machine) process refers to a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are compiled to Java bytecode.
[0017] Cell ID refers to a unique number used to identify each base transceiver station or sector of a base station within a cellular network.
[0018] MCC (Mobile Country Code) refers to a three-digit number used in combination with a Mobile Network Code (MNC) to uniquely identify a mobile network operator.
[0019] MNC (Mobile Network Code) refers to a two or three-digit number used in combination with a Mobile Country Code (MCC) to uniquely identify a mobile network operator.
[0020] HDFS (Hadoop Distributed File System) refers to a distributed file system designed to run on commodity hardware, providing high-throughput access to application data.
[0021] OAuth 2.0 refers to an authorization framework that enables applications to obtain limited access to user accounts on an HTTP service.
[0022] AES (Advanced Encryption Standard) refers to a symmetric encryption algorithm widely used to secure sensitive information.
[0023] Round-robin algorithm refers to a simple load balancing method that distributes client requests to a group of servers sequentially.
[0024] NoSQL (Not Only SQL) database refers to a type of database that provides a mechanism for storage and retrieval of data that is modelled in means other than the tabular relations used in relational databases.
[0025] HBASE refers to a distributed, scalable, big data store designed to support large table-like data structures. It is part of the Apache Hadoop ecosystem and provides real-time read/write access to large datasets.
[0026] Dropwizard server refers to a Java framework for developing high- performance, RESTful web services. It integrates several stable and mature libraries to provide a robust platform for building web applications.
[0027] YouTube spark job refers to a specific data processing task executed using Apache Spark, typically used for analyzing or processing large-scale data related to YouTube video performance or metrics.
[0028] App event refers to a specific action or occurrence within a mobile application that can be tracked or measured, such as a user interaction, system event, or application state change.
[0029] Byte format refers to a data format where information is stored or transmitted as a sequence of 8-bit bytes. This format is commonly used for efficient data storage and transfer in computer systems.
[0030] Hit, in the context of web analytics, refers to a single file request in a web server log. Each image, video, or other resource loaded as part of a web page typically generates a separate hit.
[0031] Background API call refers to an API (Application Programming Interface) request made by an application without direct user interaction, often used for tasks such as data synchronization or background updates.
BACKGROUND OF THE DISCLOSURE
[0032] The following description of 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 be used only to enhance the understanding of the reader with respect to the present disclosure, and not as admissions of prior art.
[0033] Mobile video applications have become ubiquitous, playing a crucial role in various sectors such as entertainment, education, and social media. To ensure the quality and performance of these applications, efficient video testing methodologies are essential. However, traditional video testing on mobile devices often faces significant challenges in terms of data security, scalability, and comprehensive testing capabilities.
[0034] One of the primary concerns in mobile video testing is data security. The transfer of video test results, which may contain sensitive information, poses a risk of data leakage. Unencrypted test data can be intercepted during transmission, potentially leading to privacy breaches and misuse of information. This vulnerability exposes users and companies to significant security risks, undermining the integrity of the testing process.
[0035] Scalability is another critical issue faced by existing video testing systems. As the number of mobile devices and video applications continues to grow, testing platforms struggle to handle the large influx of data generated by simultaneous video tests. This limitation often results in processing delays or system failures, hampering the efficiency and reliability of the testing process. The inability to scale effectively restricts the capacity to conduct comprehensive tests across a wide range of devices and network conditions, leading to potential gaps in quality assurance.
[0036] Furthermore, the scope of video testing is often limited by connectivity constraints. Many existing solutions rely heavily on constant internet connectivity, making it challenging to conduct tests in areas with limited or no internet access. This limitation significantly restricts the comprehensiveness of testing procedures, as it fails to account for real-world scenarios where users might experience poor or intermittent connectivity.
[0037] Cloud-based platforms offer some solutions for remote testing capabilities, but they raise their own set of security concerns regarding the storage of sensitive data on remote servers. On the other hand, local storage on mobile devices provides a more secure offline option but suffers from limited capacity. This restriction not only constrains the amount of data that can be captured but also complicates the process of aggregating and analyzing test results across multiple devices.
[0038] These limitations collectively hinder the ability to conduct thorough, secure, and scalable video testing on mobile devices. The lack of a comprehensive solution that addresses security, scalability, and testing scope simultaneously leaves a significant gap in the field of mobile video application quality assurance.
[0039] It is therefore an objective of the present invention to provide a system for synchronizing and storing video test results data that enhances security through encryption, improves scalability via efficient data distribution and processing, and enables comprehensive testing by facilitating secure data storage and analysis. The invention aims to overcome the limitations of existing solutions by offering a robust framework that can handle large volumes of test data while maintaining data integrity and enabling thorough performance analysis across various network conditions.
[0040] Conventional systems and methods face difficulty in ensuring secure, scalable, and comprehensive video testing for mobile applications,
particularly in managing large volumes of sensitive test data across diverse network conditions. There is, therefore, a need in the art to provide a method and a system that can overcome the shortcomings of the existing prior arts.
SUMMARY OF THE DISCLOSURE
[0041] In an exemplary embodiment, a system for synchronizing and storing video test results data is described. The system comprises a memory and one or more processors configured to execute a set of instructions stored in the memory. The processors are configured to receive encrypted video test results data from a mobile device. The processors distribute, using a load balancer module, the received encrypted video test results data to one or more backend servers. The processors process, using a data processing module, the distributed encrypted video test results data. The processing includes decryption of the video test results data The processors map, using a mapping module, the processed video test results data with location information of a user. The processors store the mapped video test results data in a database.
[0042] In some embodiments, the one or more processors are further configured to receive the encrypted video test results data via an application programming interface (API) unit of the mobile device.
[0043] In some embodiments, the encrypted video test results data is generated by the mobile device. The mobile device is configured to initiate, via a user interface, a video test to evaluate performance of a web application. The mobile device captures the video test results data from the initiated video test. The mobile device encrypts, using an encryption module, the captured video test results data. The mobile device stores, using a storage module, the encrypted video test results data in a structured file format.
[0044] In some embodiments, the load balancer module distributes the received encrypted video test results data using a predetermined distribution algorithm.
[0045] In some embodiments, processing the distributed encrypted video test results data comprises inserting the encrypted video test results data into a message queue. The processing further comprises consuming the inserted encrypted video test results data from the message queue using the data processing module.
[0046] In some embodiments, processing the distributed encrypted video test results data further comprises decrypting the distributed encrypted video test results data using a virtual machine process of the data processing module.
[0047] In some embodiments, mapping the processed video test results data with location information of the user comprises determining the location information based on at least one of geographical coordinate data or cellular network identification data received from the mobile device.
[0048] In some embodiments, the geographical coordinate data comprises latitude and longitude data. The cellular network identification data comprises at least one of Cell ID data, Mobile Country Code (MCC) data, or Mobile Network Code (MNC) data.
[0049] In some embodiments, the database is a non-relational database system.
[0050] In some embodiments, the one or more processors are further configured to generate reports and visualizations based on the stored mapped video test results data.
[0051] In some embodiments, the one or more processors are further configured to process the video test results data using a distributed computing framework to analyze performance metrics of the web application.
[0052] In another exemplary embodiment, a method for synchronizing and storing video test results data is described. The method comprises receiving encrypted video test results data from a mobile device. The method distributes, using a load balancer module, the received encrypted video test results data to one or more backend servers. The method processes, using a data processing module, the distributed encrypted video test results data. The processing includes decryption of the video test results data. The method maps, using a mapping module, the processed video test results data with location information of a user. The method stores the mapped video test results data in a database.
[0053] In some embodiments, the method further comprises receiving the encrypted video test results data via an application programming interface (API) unit of the mobile device.
[0054] In some embodiments, the encrypted video test results data is generated by the mobile device. The method further comprises initiating, via a user interface, a video test to evaluate performance of a web application. The method captures video test results data from the initiated video test. The method encrypts, using an encryption module, the captured video test results data. The method stores, using a storage module, the encrypted video test results data in a structured file format.
[0055] In some embodiments, distributing the received encrypted video test results data comprises using a predetermined distribution algorithm.
[0056] In some embodiments, processing the distributed encrypted video test results data comprises inserting the encrypted video test results data into a
message queue. The processing further comprises consuming the inserted encrypted video test results data from the message queue using the data processing module.
[0057] In some embodiments, processing the distributed encrypted video test results data further comprises decrypting the distributed encrypted video test results data using a virtual machine process of the data processing module.
[0058] In some embodiments, mapping the processed video test results data with location information of the user comprises determining the location information based on at least one of geographical coordinate data or cellular network identification data received from the mobile device.
[0059] In some embodiments, the geographical coordinate data comprises latitude and longitude data. The cellular network identification data comprises at least one of Cell ID data, Mobile Country Code (MCC) data, or Mobile Network Code (MNC) data.
[0060] In some embodiments, the database is a non-relational database system.
[0061] In some embodiments, the method further comprises generating reports and visualizations based on the stored mapped video test results data.
[0062] In some embodiments, the method further comprises processing the video test results data using a distributed computing framework to analyze performance metrics of the web application.
[0063] In yet another exemplary embodiment, a non-transitory computer- readable medium storing instructions is described. When executed by one or more processors of a system for synchronizing and storing video test results data via a network, the instructions cause the one or more processors to perform operations.
The operations comprise receiving encrypted video test results data from a mobile device. The operations distribute, using a load balancer module, the received encrypted video test results data to one or more backend servers. The operations process, using a data processing module, the distributed encrypted video test results data. The processing includes decryption of the video test results data. The operations map, using a mapping module, the processed video test results data with location information of a user. The operations store the mapped video test results data in a database.
[0064] In a further exemplary embodiment, a mobile device communicatively coupled to a system for synchronizing and storing video test results data via a network is described. The system comprises a memory and one or more processors configured to execute a set of instructions stored in the memory to perform the method. The method comprises receiving encrypted video test results data from a mobile device. The method distributes, using a load balancer module, the received encrypted video test results data to one or more backend servers. The method processes, using a data processing module, the distributed encrypted video test results data. The method maps, using a mapping module, the processed video test results data with location information of a user. The method stores the mapped video test results data in a database.
[0065] The foregoing general description of the illustrative embodiments and the following detailed description thereof are merely exemplary aspects of the teachings of this disclosure and are not restrictive.
OBJECTS OF THE DISCLOSURE
[0066] Some of the objects of the present disclosure, which at least one embodiment herein satisfies are as listed herein below.
[0067] An object of the present disclosure is to synchronize video test results data in the backend system. This includes capturing video test results from
mobile devices and securely transferring them to the backend servers for processing.
[0068] An object of the present disclosure is to streamline the synchronization process to ensure that maximum data is captured and stored in a readable format for subsequent analytics and reporting.
[0069] An object of the present disclosure is to mitigate the risk of data leakage during the synchronization process.
[0070] An object of the present disclosure is to reduce the likelihood of unauthorized access to sensitive video test results data.
[0071] An object of the present disclosure is to provide a scalable system for handling large volumes of video test results data from multiple mobile devices simultaneously.
[0072] An object of the present disclosure is to enable efficient distribution of received video test results data across multiple backend servers using a load balancing mechanism.
[0073] An object of the present disclosure is to process encrypted video test results data securely, maintaining data integrity throughout the system.
[0074] An object of the present disclosure is to associate processed video test results data with relevant location information, enhancing the context and usefulness of the collected data.
[0075] An object of the present disclosure is to store processed and mapped video test results data in a manner that facilitates easy retrieval and analysis.
[0076] An object of the present disclosure is to provide a comprehensive solution for video performance testing that evaluates the speed and reliability of web applications across various network conditions.
BRIEF DESCRIPTION OF DRAWINGS
[0077] The accompanying drawings, which are incorporated herein, and constitute a part of this disclosure, illustrate exemplary embodiments of the disclosed methods and systems in 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.
[0078] FIG. 1 illustrates an exemplary network architecture of a system, in accordance with embodiments of the present disclosure.
[0079] FIG. 2 illustrates an exemplary micro service-based architecture of a system, in accordance with embodiments of the present disclosure.
[0080] FIG. 3 illustrates an exemplary block diagram of the network architecture for securely synchronizing and storing video test results data, in accordance with embodiments of the present disclosure.
[0081] FIG. 4 illustrates an exemplary a flow diagram for synchronizing and storing video test results data, in accordance with embodiments of the present disclosure.
[0082] FIG. 5 illustrates an exemplary illustration of flow diagram for synchronizing and storing video test results data, in accordance with embodiments of the present disclosure.
[0083] FIG. 6 illustrates an exemplary flow diagram of a method for synchronizing and storing video test results data, in accordance with embodiments of the present disclosure.
[0084] FIG. 7 illustrates an exemplary computer system in which or with which embodiments of the present disclosure may be implemented.
[0085] The foregoing shall be more apparent from the following more detailed description of the disclosure.
LIST OF REFERENCE NUMERALS
100 - Network architecture
102 - System
104- Network
106 - Centralized server
108-1, 108-2... 108-N - Mobile device(s)
110-1, 110-2...110-N - Users
202 - One or more processor(s)
204- Memory
206 - I/O interface(s)
208 - Processing module(s)
210 - Database
212- Load balancer module
214- Data processing module
216-Mapping module
218- Other module(s)
300- Block diagram
400-Flow diagram
500-Flow diagram
600- Flowchart
710 - External Storage Device
720 - Bus
730 - Main Memory
740 - Read Only Memory
750 - Mass Storage Device
760 - Communication Port
770- Processor
DETAILED DESCRIPTION OF THE DISCLOSURE
[0086] 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.
[0087] 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.
[0088] 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 in order to avoid obscuring the embodiments.
[0089] Also, it is noted that individual embodiments may be described as a process which 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.
[0090] 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.
[0091] 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.
[0092] 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 clearly 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.
[0093] The aspects of the present disclosure are directed to a system and method for synchronizing and securely storing video test results data from mobile devices. The invention provides a scalable and efficient solution for capturing, processing, and analyzing video performance data to evaluate the speed and reliability of web applications. Another aspects include the secure transmission of encrypted test data from mobile devices to backend servers, the use of load balancing for efficient data distribution, and the mapping of processed data with user location information. This comprehensive approach enables thorough analysis of video performance across various network conditions while maintaining data security and integrity throughout the testing process.
[0094] The various embodiments throughout the disclosure will be explained in more detail with reference to FIGS. 1-7.
[0095] As illustrated in FIG. 1, one or more mobile devices (108-1, 108- 2...108-N) may be connected to a system (102) for video test results data
synchronization through a network (104). A person of ordinary skill in the art will understand that the one or more mobile devices (108-1, 108-2...108-N) may be collectively referred to as mobile devices (108) and individually referred to as a mobile device (108). One or more users may provide video test results data to the system (102) through various tests performed on the mobile device (108).
[0096] In an embodiment, the mobile device (108) may include, but not be limited to, a mobile phone, a tablet, etc. Further, the mobile device (108) may include capabilities for conducting video performance tests and capturing related metrics. Furthermore, the mobile device (108) may include a smartphone, virtual reality (VR) devices, augmented reality (AR) devices, a general-purpose computer, a desktop, a personal digital assistant, and a laptop computer.
[0097] In an embodiment, the network (104) 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 (104) 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 2G network, a 3G network, a 4G network, a 5G network, a 6G network, or some combination thereof. The system (102) may be connected to backend servers.
[0098] In an embodiment, the system (102) may receive encrypted video test results data from a selected mobile device (108) when a video test is initiated. The load balancer module (212) may then distribute the received encrypted video test results data to one or more backend servers. The data processing module (214) may process the distributed encrypted video test results data. The mapping module (216) may map the processed video test results data with location information of a
user. The database (210) may store the mapped video test results data for further analysis and reporting.
[0099] Although FIG. 1 shows exemplary components of the network architecture (100), in other embodiments, the network architecture (100) may include fewer components, different components, differently arranged components, or additional functional components than depicted in FIG. 1. Additionally, or alternatively, one or more components of the network architecture (100) may perform functions described as being performed by one or more other components of the network architecture (100).
[00100] FIG. 2 illustrates an example block diagram (200) of a proposed system (102) for video test results data synchronization and storage, in accordance with an embodiment of the present disclosure.
[00101] Referring to FIG. 2, in an embodiment, the system (102) may include one or more processor(s) (202). The one or more processor(s) (202) 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) (202) may be configured to fetch and execute computer-readable instructions stored in a memory (204) of the system (102). The memory (204) 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 synchronize and store video test results data. The memory (204) 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.
[00102] In an embodiment, the system (102) may include an interface(s) (206). The interface(s) (206) may comprise a variety of interfaces, for example, interfaces for data input and output devices (I/O), storage devices, and the like. The interface(s) (206) may facilitate communication through the system (102). The interface(s) (206) may also provide a communication pathway for one or more components of the system (102). Examples of such components include, but are not limited to, processing module(s) (208), and a database (210) for storing synchronized video test results data. Further, the processing module(s) (208) may include a load balancer module (212), a data processing module (214), a mapping module (216), and other modules (218).
[00103] The other module(s) (218) may encompass various additional functionalities that support the overall operation of the system (102) for video test results data synchronization and storage. These may include, but are not limited to, a security module for data encryption, a data compression module, a reporting module for generating performance reports, and a network analysis module. These modules work in concert with the primary modules to enhance the robustness, efficiency, and reliability of the video test results data synchronization and storage system.
[00104] The load balancer module (212) may distribute the received encrypted video test results data to one or more backend servers. The data processing module (214) may process the distributed encrypted video test results data, including decryption and data formatting. The mapping module (216) may map the processed video test results data with location information of a user. The database (210) may store the mapped video test results data for further analysis and reporting.
[00105] In an embodiment, the processing module(s) (208) may be implemented as a combination of hardware and programming (for example, programmable instructions) to implement one or more functionalities of the
processing module(s) (208). In examples described herein, such combinations of hardware and programming may be implemented in several different ways. For example, the programming for the processing module(s) (208) may be processorexecutable instructions stored on a non-transitory machine-readable storage medium and the hardware for the processing module(s) (208) 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 module(s) (208). In such examples, the system 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 and the processing resource. In other examples, the processing module(s) (208) may be implemented by electronic circuitry.
[00106] Although FIG. 2 shows exemplary components of the system (102), in other embodiments, the system (102) may include fewer components, different components, differently arranged components, or additional functional components than depicted in FIG. 2. Additionally, or alternatively, one or more components of the system (102) may perform functions described as being performed by one or more other components of the system (102).
[00107] The system (102) for synchronizing and storing video test results data may comprise a memory (204) and one or more processors (202) configured to execute a set of instructions stored in the memory (204). The memory (204) may be any form of non-transitory computer-readable storage medium, such as RAM, ROM, or flash memory, capable of storing instructions and data for execution by the processors (202). The processors (202) may be implemented as microprocessors, microcontrollers, or other suitable processing units capable of executing the stored instructions.
[00108] The system (102) may be designed to receive encrypted video test results data from a mobile device (108). In this context, a mobile device (108) refers to any portable electonic device capable of conducting video tests and capturing relevant performance data. Examples of mobile devices (108) may include smartphones, tablets, laptops, or specialized testing devices. The encryption of the video test results data ensures that sensitive performance information remains secure during transmission from the mobile device (108) to the system (102).
[00109] Upon receiving the encrypted video test results data, the system (102) may utilize a load balancer module (212) to distribute the data to one or more backend servers. A load balancer module (212) may be configured to distributes incoming network traffic or computational tasks across multiple servers. This distribution mechanism allows the system (102) to handle large volumes of incoming data from multiple mobile devices (108) simultaneously, enhancing the scalability and performance of the overall system (102).
[00110] The load balancer module (212) may employ various distribution algorithms to ensure efficient utilization of server resources and optimal data processing. For example, it might use a round-robin algorithm, which cycles through the list of servers and assigns each new request to the next server in line. Alternatively, it could use more sophisticated algorithms that consider server load, response time, or other performance metrics to make distribution decisions.
[00111] The load balancer module (212) employs specific predetermined distribution algorithms to efficiently distribute encrypted video test results data across backend servers. These algorithms include several well-defined approaches. For instance, in a round-robin distribution algorithm, if there are three backend servers (A, B, and C), the load balancer sequentially distributes incoming requests: the first data packet goes to Server A, the second to Server B, the third to Server C, then back to Server A, maintaining this cyclic pattern. Another example is the leastconnection algorithm, where the load balancer tracks active connections to each
server and routes new requests to the server handling the fewest connections. For example, if Server A has 100 active connections, Server B has 50, and Server C has 75, a new data transmission would be directed to Server B. The system may also employ a weighted round-robin algorithm, where servers are assigned different processing weights based on their capabilities. For instance, if Server A has a weight of 5, Server B has 3, and Server C has 2, out of 10 consecutive data transmissions, 5 would be routed to Server A, 3 to Server B, and 2 to Server C. Additionally, the load balancer may use an IP hash algorithm, where the distribution decision is based on a hash of the client's IP address, ensuring that data from the same mobile device consistently goes to the same backend server for processing. These distribution algorithms can be dynamically selected based on factors such as current server load, network conditions, and the type of video test being performed.
[00112] The distributed encrypted video test results data may then be processed using a data processing module (214). This data processing module (214) is a component responsible for performing various operations on the received data to prepare it for further analysis and storage. The processing step may involve tasks such as data validation, formatting, aggregation, or other transformations necessary to make the data suitable for analysis and storage.
[00113] After processing, the system (102) may employ a mapping module (216) to associate the processed video test results data with location information of a user (110). This mapping process provides valuable context to the test results, allowing for more comprehensive analysis of video performance across different geographical locations. The location information may be derived from various sources, such as GPS coordinates, cell tower triangulation, or IP address geolocation.
[00114] Once the video test results data has been processed and mapped, the system (102) may store this information in a database (210). The database (210) may be a structured collection of data organized for efficient retrieval and
management. In this system (102), the database (210) may be specifically designed to handle large volumes of video test results data and associated metadata.
[00115] The database (210) used in this system may be a NoSQL (Not Only SQL) database, which is well-suited for handling large-scale, distributed data sets. Examples of suitable NoSQL databases include: i. Apache HBase: A column-oriented database that provides real-time read/write access to large datasets. It's particularly effective for storing and managing video test results data due to its ability to handle high write and update rates. ii. Apache Cassandra: A highly scalable, distributed NoSQL database that can manage large amounts of structured data across multiple commodity servers. It's ideal for storing time-series data, such as video performance metrics over time. iii. MongoDB: A document-oriented database that can store complex data structures in a flexible, JSON-like format. This flexibility makes it suitable for storing varied video test results and associated metadata.
[00116] The database (210) in this system is structured to efficiently store and retrieve various types of data related to video testing, such as: i. Video playback metrics (e.g., buffering time, playback quality, frame rate) ii. Network performance data (e.g., bandwidth, latency, packet loss) iii. Device information (e.g., device model, operating system version) iv. Geographical data (e.g., GPS coordinates, cell tower information) v. Timestamp information for each test vi. User interaction data (e.g., play/pause actions, seek events)
[00117] This structured approach allows for quick and efficient querying of the data for analysis, reporting, and visualization purposes, enabling the system to
provide valuable insights into video performance across various conditions and locations.
[00118] In some implementations, the system (102) may be configured to receive the encrypted video test results data via an application programming interface (API) unit of the mobile device (108). The API, is a set of protocols, routines, and tools for building software applications. In this context, the API unit may provide a standardized method for the mobile device (108) to communicate with the system (102), ensuring consistent and secure data transmission.
[00119] The mobile device (108) may be configured to initiate a video test to evaluate the performance of a web application. A web application, in this context, refers to any application software that runs on a web server and is accessed through a web browser. Examples could include streaming platforms, online video conferencing tools, or interactive web-based video content.
[00120] The performance evaluation of a web application, particularly in the context of video testing, typically involves measuring various parameters. These parameters may include, but are not limited to: i. Initial Loading Time: The time taken for the web application to load and become interactive. Example: A video streaming application takes 2.5 seconds to load and display the main interface. ii. Video Start Time: The duration between a user's play action and the start of video playback. Example: After clicking play, the video begins playing in 0.8 seconds. iii. Buffering Frequency: The number of times video playback pauses to buffer during a session. Example: During a 10-minute video, buffering occurs 3 times. iv. Buffering Duration: The total time spent buffering during video playback. Example: In a 30-minute video, the total buffering time is 8 seconds.
v. Video Quality: The resolution and clarity of the video, often measured in pixels (e.g., 720p, 1080p, 4K). Example: The video maintains 1080p quality for 95% of the playback duration. vi. Frame Rate: The number of frames displayed per second during video playback. Example: The video consistently maintains 30 frames per second. vii. Bit Rate: The amount of data processed per unit of time, typically measured in bits per second. Example: The video streams at an average bit rate of 5 Mbps. viii. Network Performance: Metrics related to the network connection, such as bandwidth, latency, and packet loss. Example: The application performs with a network latency of 50ms and 0.1% packet loss. ix. Error Rate: The frequency of playback errors or failures during the test. Example: The video player encounters errors in 1 out of every 100 play attempts. x. User Interaction Response Time: The time taken for the application to respond to user actions like play, pause, or seek. Example: The seek function responds within 0.3 seconds of user input.
[00121] By measuring these parameters, the system can comprehensively evaluate the performance of web applications, particularly those involving video content, across various network conditions and device types.
[00122] The mobile device (108) may initiate the video test via a user interface (302). This user interface (302) could be a graphical interface on the mobile device (108) that allows the user (110) to start the test, select test parameters, and view results. Examples of test parameters that a user might select through the interface may include: i. Video Source: The user may choose between different video sources, such as:
-A pre-loaded test video stored on the device
-A specific YouTube video uniform resource allocator (URL) -A live streaming channel ii. Video Quality: The user might select the desired video quality for testing, such as: Auto (allowing the application to adjust quality based on network conditions)
-480p -720p -1080p -4K iii. Network Condition: The user could specify the network environment for testing:
-Wi-Fi
-4G LTE
-5G
-3G (for testing in low bandwidth scenarios) iv. Test Duration: The user might set how long the test should run, for example: -30 seconds
-1 minute
-5 minutes
-Custom duration v. Background App State: The user could choose whether to run the test with: -No other apps running in the background
-Specific apps running in the background to simulate real-world conditions vi. Device Orientation: The user might specify whether to test in:
-Portrait mode
-Landscape mode -Both orientations
[00123] The mobile device (108) may then capture video test results data from the initiated test, providing real-time performance metrics such as load time, buffering instances, video quality, and playback smoothness.
[00124] To ensure data security during transmission, the mobile device (108) may encrypt the captured video test results data using an encryption module (304). Encryption is the process of encoding information in such a way that only authorized parties can access it. The encryption module (304) may use various encryption algorithms such as AES (Advanced Encryption Standard) or RSA (Rivest-Shamir-Adleman) to secure the data.
[00125] Once encrypted, the mobile device (108) may store the data in a structured file format using a storage module (306). A structured file format organizes data in a predefined way, making it easier to process and analyze. Examples of structured file formats include CSV (Comma-Separated Values), JSON (JavaScript Object Notation), or XML (extensible Markup Language).
[00126] The processing of distributed encrypted video test results data may involve several steps. Initially, the data may be inserted into a message queue. A message queue is a component used in inter-process communication or inter-thread communication. In this system (102), it may help manage high volumes of incoming data, ensuring orderly processing even during peak load periods.
[00127] Peak load periods refer to time intervals when the system experiences the highest volume of incoming data or processing requests, significantly above the average or baseline load. In the context of this video test results system, peak load periods are characterized by: i. High Concurrency: Many mobile devices simultaneously sending video test results data to the system.
ii. Data Volume Spikes: Sudden, substantial increases in the amount of incoming data, often several times higher than normal operational levels. iii. Increased Processing Demands: The system faces heightened requirements for data processing, analysis, and storage during these periods.
[00128] Examples of scenarios that might lead to peak load periods in this system include: i. New Product Launches: When a new mobile device or major software update is released, many users might run video tests simultaneously to evaluate performance. ii. Popular Event Streaming: During globally significant events (e.g., major sports events, breaking news), numerous users might test video streaming performance concurrently. iii. Scheduled Mass Testing: If an organization conducts coordinated, large-scale video performance testing across multiple devices or locations simultaneously. iv. Time-zone Based Peaks: Regular daily peaks that occur when users in certain geographical regions are most active. v. Marketing Campaign Effects: A surge in system usage following a marketing campaign that promotes the video testing feature.
[00129] Managing peak load periods is crucial for maintaining system performance and reliability. The message queue, along with other scalable architecture components, helps the system handle these high-demand periods by buffering incoming data and allowing for flexible, on-demand scaling of processing resources.
[00130] As part of the processing step, the system (102) may decrypt the distributed encrypted video test results data. This decryption process may be carried out using a virtual machine process of the data processing module (214). A virtual machine is a software-based emulation of a computer system, providing an
30
additional layer of abstraction and control. Using a virtual machine for decryption may enhance security by isolating the decryption process from the rest of the system (102).
[00131] Examples of decryption algorithms that might be employed in this system include: i. AES (Advanced Encryption Standard): A symmetric encryption algorithm widely used for secure data transmission. It supports key sizes of 128, 192, and 256 bits. Example usage: AES-256 in GCM (Galois/Counter Mode) for both encryption and authentication. ii. RSA (Rivest-Shamir-Adleman): An asymmetric encryption algorithm used for secure data transmission and digital signatures. It uses two keys: a public key for encryption and a private key for decryption. Example usage: RSA-2048 for key exchange in combination with AES for data encryption. iii. Elliptic Curve Cryptography (ECC): An asymmetric encryption algorithm based on elliptic curve theory. It can offer the same level of security as RSA with smaller key sizes. Example usage: ECDH (Elliptic Curve Diffie-Hellman) for key exchange, combined with AES for data encryption. iv. Blowfish: A symmetric block cipher designed as a fast, free alternative to existing encryption algorithms. It uses a variablelength key, from 32 bits to 448 bits. Example usage: Blowfish with a 128-bit key for encrypting video metadata. v. Twofish: A symmetric key block cipher with a block size of 128 bits and key sizes up to 256 bits. It was one of the finalists of the Advanced Encryption Standard contest. Example usage: Twofish- 256 for encrypting large volumes of video test data.
[00132] The choice of decryption algorithm would depend on factors such as the required level of security, computational efficiency, and compatibility with the
encryption method used on the mobile devices. The virtual machine process could be configured to support multiple decryption algorithms, allowing flexibility in handling different types of encrypted data.
[00133] The decryption process within the virtual machine might follow these steps: i. Receive the encrypted data from the message queue. ii. Identify the encryption algorithm used (this information might be included in the metadata). iii. Retrieve the appropriate decryption key (stored securely and separately from the encrypted data). iv. Apply the corresponding decryption algorithm to the data. v. Verify the integrity of the decrypted data (e.g., using a checksum). vi. Pass the decrypted data back to the main system for further processing and analysis.
[00134] By performing these operations within a virtual machine, the system adds an extra layer of security, containing any potential vulnerabilities within the isolated environment.
[00135] The mapping of processed video test results data with user location information may involve determining the location based on geographical coordinate data or cellular network identification data received from the mobile device (108). Geographical coordinate data typically comprises latitude and longitude information, providing precise location details. Cellular network identification data may include Cell ID (a unique number used to identify each Base Transceiver Station), Mobile Country Code (MCC, used to identify the country of a mobile subscriber), or Mobile Network Code (MNC, used to identify a mobile phone operator or carrier).
[00136] The system (102) may utilize a non-relational database system for storing the mapped video test results data. A non-relational database, also known as a NoSQL database, is a type of database that doesn't use the traditional tablebased relational database structure. Instead, it may use a document-based, keyvalue, wide-column, or graph format. Examples of non-relational databases include MongoDB, Cassandra, or Amazon DynamoDB.
[00137] To derive actionable insights from the stored data, the system (102) may be configured to generate reports and visualizations based on the mapped video test results. These could include heat maps showing video performance across different geographical areas, trend lines illustrating performance over time, or comparative charts analyzing performance across different devices or network conditions.
[00138] The system (102) may also employ a distributed computing framework to process the video test results data and analyze performance metrics of the web application. Distributed computing refers to a model in which components of a software system are shared among multiple computers to improve efficiency and performance. Examples of distributed computing frameworks include Apache Hadoop, Apache Spark, or Google Cloud Dataflow.
[00139] By combining these various components and processes, the system (102) provides a comprehensive solution for evaluating and improving web application video performance, leveraging advanced technologies to ensure security, scalability, and in-depth analysis capabilities.
[00140] In an exemplary embodiment, a non-transitory computer-readable medium may store instructions that, when executed by one or more processors (202) of a system (102), cause the processors to perform operations for synchronizing and storing video test results data via a network (104). These operations may include receiving encrypted video test results data from a mobile device (108), which may
contain performance metrics of video playback tests. The received data may then be distributed to one or more backend servers using a load balancer module (212), potentially optimizing server utilization. A data processing module (214) may process the distributed encrypted data, which may involve decryption and data formatting. The processed data may be mapped with user location information using a mapping module (216), potentially providing geographical context to the test results. Finally, the mapped video test results data may be stored in a database (210), allowing for future analysis and retrieval. This approach may enable secure, efficient, and contextually rich handling of video test results data from mobile devices.
[00141] FIG. 3 illustrates a block diagram (300) of the network architecture for securely synchronizing and storing video test results data. The network architecture comprises: i. Mobile Device(s) (108): User Interface (UI) (302): Allows users to initiate video tests and view results. Encryption Module (304): Secures the video test results data before transmission. Storage Module (306): Temporarily stores encrypted test data locally. API Unit (308): Facilitates communication between the mobile device and the backend system. ii. Network (104): Connects the mobile devices to the backend system. iii. System (102): The backend infrastructure for processing and storing video test results data, including: Load Balancer Module (212): Distributes incoming data across backend servers. Backend Server Module (310): Comprises multiple servers for data processing and storage, including: Data Processing Module (214): Handles decryption and processing of test data. Mapping Module (216): Associates test results with geographical information. Database (210): Stores processed and mapped test results.
[00142] The network architecture comprises a mobile device(s) (108). The mobile device (108) may be configured to initiate a video test and capture video test results data. The mobile device (108) may include a mobile application having a User Interface (UI) (302), an encryption module (304), a storage module (306) and an application programming interface (API) unit (308).
[00143] The system (102) further comprises a backend server module (310) that provides robust support for data processing, storage, and management. The backend server module (310) consists of a collection of servers and software components designed to handle the vast volumes of video test data transmitted from mobile devices (108). The backend server module (310) plays a critical role in the overall system architecture, serving as the central hub for data processing and analysis. It further comprises several key components: a data processing module (214) for handling and analyzing the received data, a mapping module (216) for associating the processed data with geographical information, and a database (210) for storing the processed and mapped data. This modular structure of the backend server module (310) allows for efficient handling of large-scale data processing tasks and enables scalability to accommodate growing data volumes and user bases.
[00144] The system (102) operates through a mobile application, or the UI (302) installed on mobile device (108) of the user (110). The UI (302) serves as the primary interface for initiating video tests, capturing test results data, and facilitating data synchronization with the backend server module (310).
[00145] In an embodiment, the encryption module (304) is integrated into the mobile device (108) to ensure the security of video test results data. The encryption module (304) employs custom encryption methods to encrypt the captured test data before transmission, preventing unauthorized access or interception during data transfer. This encryption process is crucial for maintaining the confidentiality of potentially sensitive performance data as it travels from the mobile device (108) to the backend servers.
[00146] In an embodiment, the mobile device (108) includes the storage module (306) responsible for storing the encrypted video test results data. The storage module (306) stores the data in a structured file format locally on the mobile device (108), providing a temporary storage solution until the data can be synchronized with the backend server module (310). This local storage capability allows for offline testing and data collection, enhancing the system's versatility in various network conditions.
[00147] In an embodiment, the mobile device (108) is equipped with the API unit (308) to facilitate seamless data synchronization. The API unit (308) allows the mobile application to communicate with the backend server infrastructure securely. The API unit (308) enables the transmission of formatted video test results data from the mobile device (108) to the backend server module (310) over the internet. This standardized communication interface ensures compatibility and efficient data transfer between the mobile application and the backend systems.
[00148] Further, in scenarios where multiple mobile devices (108) interact with the system (102) simultaneously, a load balancer module (212) may be employed. The load balancer module (212) receives data synchronization requests from the mobile application means and distributes them across one or more backend server modules (310) within the backend server infrastructure. The load balancer module (212) ensures optimal resource utilization and load distribution, which is crucial for maintaining system performance during peak usage periods or when processing large volumes of test data from numerous devices.
[00149] The backend server module (310) provides robust support for data processing, storage, and management. Comprising a collection of servers and software components, the backend server module (310) plays a critical role in handling the vast volumes of video test results data transmitted from mobile devices
(108). The backend server module (310) further comprises a data processing module (214), a mapping module (216), and a database (210).
[00150] In an embodiment, the data processing module (214) handles the storage and processing of formatted video test result data received from mobile devices (108). The data processing module (214) is responsible for processing the formatted video test result data received from the mobile application. The data processing module (214) comprises several components, including a message queue and virtual machine processes.
[00151] In an embodiment, a message queue for streaming the formatted video test result data between the mobile application and the backend server infrastructure may be used. The message queue uses a stream processing topic to ensure reliable and scalable communication between producers (mobile devices) and consumers (data processing module). This queuing mechanism helps manage the flow of incoming data, ensuring that all test results are processed in an orderly manner without overwhelming the system.
[00152] In an embodiment, the virtual machine processes are instances running on the backend servers. These processes are employed to read the formatted video test result data from the streaming topic. These processes run within the backend server environment and are responsible for consuming the data streams from the data streaming topic, performing any necessary processing tasks, and forwarding the processed data to the next stage. The use of virtual machines provides an additional layer of security and flexibility in data processing.
[00153] In an embodiment, the virtual machine processes act as a decryption module responsible for decrypting the encrypted video test result data received from mobile devices (108). Upon receiving the encrypted data, the decryption module may apply decryption processes and methods to reverse the encryption process, thereby transforming the data back into its original, readable format. The decryption
process ensures that the video test result data can be effectively processed, analyzed, and stored in the backend server module (310). By decrypting the data, the decryption module ensures that the integrity and confidentiality of the information are maintained throughout the synchronization process. Additionally, the decryption module plays a crucial role in data security, as it verifies the authenticity of the decrypted data before further processing or storage. Overall, this module serves as a vital component in ensuring the seamless and secure synchronization of video test result data between the mobile device (108) and the backend server module (310).
[00154] In an embodiment, the mapping module (216) maps the decrypted video test result data with the user (110) location information received from the mobile device (108). The mapping module (216) associates each set of test results with the corresponding location of the mobile device (108), enabling geographic analysis and insights generation. Upon receiving the decrypted data, the mapping module (216) may perform a mapping process where it correlates the video test results with the geographical coordinates or other location identifiers provided by the mobile device (108). This correlation enables the system (102) to contextualize the test results based on the physical locations where the tests were conducted. The mapping module (216) may match the decrypted data with the corresponding locations of the user (110) accurately. The mapping module (216) may utilize various location-based services, databases, or geospatial data sources to retrieve and validate the user (110) location information. Once the mapping process is complete, the mapping module (216) generates associations between the video test results and their respective locations, creating a cohesive dataset that integrates spatial context with test data. This location-based analysis can provide valuable insights into how video performance varies across different geographical areas or network conditions.
[00155] In an embodiment, the database (210) may be configured to store the processed and mapped video test results in a structured format. The database (210) provides a persistent storage solution for the data, allowing for efficient retrieval
and querying during analytics and reporting tasks. This structured storage approach facilitates complex data analysis and enables the generation of comprehensive performance reports.
[00156] The database (210) may also be configured to store program instructions. The database (210) is configured to store the processed and mapped video test results. The database (210) may be configured to store pre-processed data, and the predefined set of parameters. The database (210) may include any computer-readable medium known in the art including, for example, volatile memory, such as Static Random Access Memory (SRAM) and Dynamic Random Access Memory (DRAM) and/or non-volatile memory, such as Read Only Memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes. The choice of storage medium may depend on factors such as data access speed requirements, storage capacity needs, and overall system architecture.
FIG. 4 illustrates an exemplary flow chart illustrating a method (400) or a process (400) for synchronizing and securely storing video test results data, in accordance with an embodiment of the present disclosure.
[00157] At step 402, the method (400) begins with a user (110) initiating a video test using a User Interface (UI) (302) on the mobile device(s) (108). The UI (302) allows the user (110) to select the parameters for the test, such as the video to be streamed and the resolution settings. The UI (302) may be part of a dedicated mobile application or potentially integrated into the mobile operating system itself. The UI (302) provides options for the user (110) to initiate a video test. This might involve selecting a specific video source (e.g., pre-downloaded video, online streaming platform) or customizing test parameters (e.g., video resolution, bitrate). For example, the user might choose to test a 4K video stream from a popular streaming service, or a 1080p video file stored locally on the device. Once the user (110) confirms, the UI (302) triggers the mobile device (108) to begin the video test. This may involve playing a test video stored on the mobile device (108),
connecting to a specific streaming service, or initiating a download of a test video file.
[00158] At step 404, once the video test is initiated, the mobile device (108) may be configured to capture the relevant data, including information about the video stream quality, network performance, and any buffering or playback issues encountered during the test. This captured data may include metrics such as initial buffering time, rebuffering events, video start time, video resolution changes, network type and strength, and overall playback quality. For instance, the device might record that the video took 2 seconds to start playing, experienced 3 rebuffering events lasting a total of 5 seconds, and maintained an average bitrate of 5 Mbps.
[00159] At step 406, after capturing the video test results data, the mobile device (108) may be configured to utilize the encryption module (304). The encryption module (304) employs custom encryption methods to transform the data into an unreadable format. This ensures that even if the data is intercepted during transmission, it remains confidential and unusable without the decryption key. The encryption process might use advanced algorithms such as AES (Advanced Encryption Standard) with a 256-bit key, providing a high level of security for the test data.
[00160] At step 408, the mobile device (108) may be configured to store the now-encrypted video test results data in a structured file format in the storage module (306). This format is chosen for its efficiency in storing and transmitting data, as each data point is separated in a structured manner, making it easily readable by various applications. For example, the data might be stored in a JSON (JavaScript Object Notation) format, which allows for hierarchical data representation and is widely supported across different platforms and programming languages.
[00161] At step 410, the mobile device (108) may be configured to utilize the integrated API unit (308) to establish communication with the backend server module (310). The API unit (308) acts as a communication bridge between the mobile application and the backend server module (310). The mobile device (108) may transmit the encrypted file containing the video test results data to the backend server module (310) using the established API unit (308) connection. Further, the API unit (308) is authenticated by using a security key. This could involve OAuth 2.0 authentication protocol, ensuring that only authorized devices can transmit data to the server.
[00162] In an embodiment, if the backend server module (310) utilizes a load balancer module (212), the incoming data transmission request from the mobile device (108) is first directed to the load balancer module (212). Further, the load balancer module (212) may be configured to analyze the current workload distribution across various backend servers within the infrastructure. The load balancer module (212) efficiently distributes the data transmission request to the backend server module (310), ensuring optimal server utilization and preventing any single server from becoming overloaded when handling a high volume of data. This load balancing might use algorithms such as least connection method or round robin to distribute incoming requests evenly.
[00163] At step 412, the backend server module (310) receives the data transmission request (containing the encrypted file) from the mobile device (108) after the API unit (308) is authenticated. A data processing module (214) is provided within the backend server module (310). Upon receiving the data transmission request (containing the encrypted file) from the load balancer, the backend server module (310) might perform basic validation checks on the received data to ensure its integrity before further processing or/and store the encrypted file in a temporary location on the server's storage system for further processing.
[00164] Instead of directly storing the data on the server, the system (102) utilizes a stream processing platform topic, a message queueing system. Further, message queueing systems often support a streaming approach to data processing. This means data may be processed as it arrives in the queue, allowing for real-time or near-real-time processing. For example, the system might use Apache Kafka as a distributed streaming platform, allowing for high-throughput, fault-tolerant handling of incoming data streams.
[00165] Further in an embodiment, the encrypted video test results data are decrypted using a virtual machine process. This process restores the data to its original, readable format, allowing for further analysis and manipulation. The virtual machine process acts as a consumer within the backend server module (310). The virtual machine process subscribes to a specific stream processing platform topic where the mobile device (108) publishes messages containing the encrypted files with video test results data. Whenever a new message arrives on the subscribed topic, the virtual machine process actively retrieves the message content. The retrieved message content from stream processing platform topic represents the encrypted file transmitted by the mobile device (108). Depending on the system design, the virtual machine process may perform some basic pre-processing steps on the retrieved data before decryption such as checking the data for errors or inconsistencies to ensure its integrity before further processing or removing irrelevant or redundant information from the captured data points to improve efficiency. The virtual machine process may be configured to decrypt the retrieved data using the custom decryption methods employed within the system (102). This decryption transforms the encrypted video test results data back into its original, readable format.
[00166] At step 414, the decrypted video test results data is then mapped with the user (110) location information received from the mobile device (108) in a mapping module (216). This mapping process associates each data point with the geographical location where the test was conducted, providing valuable context for
analysis. For instance, the system might use GPS coordinates or cell tower triangulation data to determine that a particular test was conducted in downtown New York City, allowing for analysis of video performance in specific urban environments.
[00167] At step 416, finally, the processed and mapped video test results data is stored in a database (210). The database (210) serves as a centralized repository for all video test results data, allowing for easy access, retrieval, and analysis by authorized users or applications. This might be implemented using a NoSQL database like MongoDB, which can efficiently handle large volumes of unstructured or semi-structured data and provide powerful querying capabilities for complex data analysis.
[00168] FIG. 5 illustrates an exemplary flow diagram (500) for processing video test results data and web performance test (WPT) data, in accordance with an embodiment of the present disclosure.
[00169] At step 502, the method (500) assumes a mobile application or UI (302) that transmits video test results data to the backend server module (310). This step represents the initiation of the data flow from the user's mobile device (108) to the backend infrastructure. The mobile application, through its user interface, allows users to conduct video tests and collect performance data. This data may include various metrics related to video playback quality and network performance. Examples of metrics that might be collected include:
Video Playback Quality Metrics: i. Video Start Time: The time taken for the video to begin playing after the user initiates playback (e.g., 1.5 seconds). ii. Initial Buffering Time: The duration of buffering before the video starts playing (e.g., 2.3 seconds). iii. Rebuffering Instances: The number of times playback pauses for buffering during the video (e.g., 3 times in a 10-minute video).
iv. Rebuffering Duration: The total time spent rebuffering during playback (e.g., 7.5 seconds total). v. Video Resolution: The quality of the video displayed (e.g., 1080p, 720p, 480p). vi. Resolution Changes: The number of times video quality changes during playback (e.g., 2 switches from 1080p to 720p). vii. Frame Rate: The number of frames displayed per second (e.g., consistent 30 fps, or dropping to 24 fps). viii. Video Bitrate: The amount of video data transferred per second (e.g., average 5 Mbps). ix. Audio Sync: Whether the audio remains in sync with the video (e.g., 20ms delay observed).
Network Performance Metrics: i. Network Type: The type of network connection used (e.g., WiFi, 4G LTE, 5G). ii. Signal Strength: The strength of the network signal (e.g., -65 dBm for WiFi). iii. Bandwidth: The available network bandwidth during the test (e.g., 25 Mbps download speed). iv. Latency: The time taken for data to travel from the source to the destination (e.g., 50ms round trip time). v. Packet Loss: The percentage of data packets that fail to reach their destination (e.g., 0.5% packet loss). vi. Jitter: The variation in latency over time (e.g., 15ms jitter). vii. DNS (Domain Name System) Resolution Time: The time taken to resolve domain names (e.g., 20ms for DNS lookup). viii. TCP (Transmission Control Protocol) Connection Time: The time taken to establish a TCP connection (e.g., 75ms for connection setup).
[00170] These metrics provide a comprehensive view of both the video playback experience and the underlying network conditions, allowing for detailed analysis of video streaming performance on mobile devices.
[00171] At step 504, the load balancer module (212) distributes the incoming data from the mobile application(s) across the backend server infrastructure. The load balancer (212) plays a crucial role in ensuring efficient utilization of server resources by evenly distributing incoming requests. It may employ various algorithms such as round-robin, least connections, or IP hash to determine how to allocate incoming data across available servers. This step is vital for maintaining system performance and scalability, especially when dealing with high volumes of incoming test data from multiple devices simultaneously.
[00172] At step 506, the API unit (308) receives the video test results data from the load balancer (212). The API unit (308) serves as the entry point for data into the backend system, providing a standardized interface for communication between the mobile applications and the server infrastructure. It may handle tasks such as request validation, authentication, and initial data parsing.
[00173] At step 508, the data processing module (214) may be configured to receive the formatted video test results data through the UI (302). At this point, the data flow splits into two paths, allowing for parallel processing of different types of performance data.
[00174] At step 510, data captured by the mobile device (108) specifically related to video playback performance is processed. This data might include metrics like bitrate (e.g., average bitrate of 5 Mbps), frame rate (e.g., 30 fps), buffering duration (e.g., initial buffering time of 2 seconds), resolution (e.g., 1080p), and device information (e.g., device model, OS version). The processing may involve data normalization, statistical analysis, and trend identification. Further, reports and
visualizations for video performance insights may be generated. These could include graphs showing bitrate fluctuations over time, heat maps of buffering events across different network conditions, or comparative charts of video quality across different device types.
[00175] At step 514, data collected from Web Performance Test (WPT) may be handled, which measure overall website or application performance from the user (110) perspective. The data could include metrics like page load times (e.g., average load time of 3 seconds), response times (e.g., server response time of 200ms), resource loading speeds (e.g., image loading time of 500ms), and network performance (e.g., average latency of 50ms). WPT data provides a broader view of the web application's performance beyond just video playback, offering insights into how the entire web ecosystem is functioning for the user.
[00176] At steps 512 and 516, after processing, both video test results data and WPT data are stored in the database (210) for further analysis and retrieval. The database (210) serves as a centralized repository for all performance data, allowing for comprehensive analysis and long-term trend tracking. The storage process may involve data indexing for efficient querying, data compression to optimize storage space, and the implementation of data retention policies.
[00177] The dual-path processing approach allows the system to handle both specific video performance metrics and broader web application performance data, providing a comprehensive view of the user's experience. The stored data can be used for various purposes such as identifying performance bottlenecks, informing content delivery optimizations, and guiding future development efforts to enhance overall user experience.
[00178] FIG. 6 illustrates an exemplary flow diagram of a method (600) for synchronizing and storing video test results data, in accordance with embodiments of the present disclosure.
[00179] At step (602), the method (600) includes receiving encrypted video test results data from a mobile device (108). The video test results data encompasses a comprehensive set of metrics and measurements collected during video playback testing. At the fundamental level, this data includes critical video quality metrics that directly reflect the viewing experience. These metrics capture resolution data, such as successful playback at 1080p, 720p, or 4K quality levels, along with frame rate measurements that indicate whether the video maintains a consistent 30 frames per second or experiences drops to lower rates like 24 fps. The system also records bitrate information, typically showing measurements such as an average bitrate of 5 Mbps or peak bitrates reaching 8 Mbps, as well as video codec performance data for encodings like H.264 or H.265.
[00180] Buffering performance represents another crucial aspect of the collected data. The system measures initial buffering duration, recording how long it takes for playback to begin - for instance, 2.5 seconds from the moment a user initiates playback. During the viewing session, the system tracks rebuffering frequency, noting instances such as three buffering events occurring within a 10- minute video. Buffer health measurements provide insight into the stability of playback, with metrics like an average buffer length of 15 seconds, while stall duration metrics might show total playback interruption time, such as 4.2 seconds of stalling during a session.
[00181] Network performance metrics form a vital component of the test results data, encompassing bandwidth utilization that might show average throughput of 10 Mbps, along with network type identification specifying whether the connection is 4G, 5G, or Wi-Fi. The system monitors connection stability through metrics such as packet loss rate, which might be measured at 0.1%, and network latency measurements showing average delays of 50 milliseconds. These network metrics provide crucial context for understanding video delivery performance.
[00182] User experience data captures the interactive aspects of video playback. This includes measurements of time to first frame, which might be 1.8 seconds from a play request to visible content, and play/pause response times averaging 200 milliseconds. The system records seek time measurements, such as 500 milliseconds required to jump to a new position in the video, and tracks quality switches, for instance noting two resolution changes during a single playback session.
[00183] Device context information provides essential background for analyzing video test results data. The system records device specifications such as whether the test was conducted on an iPhone 13 Pro or Samsung Galaxy S21, along with operating system details like iOS 15.2 or Android 12. Screen specifications including display resolution of 2532 x 1170 pixels are logged, as well as hardware performance metrics showing CPU usage at 25% and memory consumption of 1.2GB during playback.
[00184] Error and debug information rounds out the collected data, providing crucial diagnostic capabilities. The system logs playback errors such as codec initialization failures, connection errors like CDN timeouts, and recovery attempts including the number of automatic retries. Each error is recorded with specific error codes and timestamps, such as Error #1003 occurring at 15:30:45 GMT, enabling detailed troubleshooting and performance optimization.
[00185] In practice, this comprehensive data collection enables detailed analysis of video streaming performance. For example, in a typical test scenario, the system might record that a 4K video stream initially loaded in 2.3 seconds, maintained an average bitrate of 15 Mbps, experienced two quality switches due to network fluctuations, and had a total stall time of 0.8 seconds over a 5-minute playback period. This granular level of data collection allows organizations to
thoroughly analyze their video delivery systems and optimize the viewing experience across different devices, networks, and conditions.
[00186] The process of receiving encrypted video test results data involves several sequential steps executed by the system. Initially, the mobile device establishes a secure connection with the backend server using Transport Layer Security (TLS) version 1.3 protocol. This connection is authenticated using OAuth 2.0 tokens, ensuring that only authorized devices can transmit data to the system. Once the secure channel is established, the mobile device initiates the data transmission process by sending an HTTP POST request to a predefined endpoint, typically following the format "https://api.videotest.domain/vl/results". The request headers include authentication tokens, device identifiers, and test session information.
[00187] The receiving process implements a multi-stage verification system. First, the system validates the incoming request's authentication credentials against its secure token store. Upon successful authentication, the system performs a preliminary validation of the data format, ensuring that the encrypted payload matches the expected structure and size limitations. For example, the system verifies that the encrypted data package includes required metadata fields such as test timestamp, device identifier, and encryption version. The actual data reception occurs in chunks of 16KB, with each chunk being validated for integrity using SHA-256 checksums before being reassembled in the system's memory.
[00188] To handle potential network interruptions, the receiving process implements a robust retry mechanism. If a data transmission is interrupted, the system maintains a partial reception state for up to 30 minutes, allowing the mobile device to resume transmission from the last successfully received chunk. This mechanism includes acknowledgment packets sent back to the mobile device for each successfully received chunk, enabling reliable data transmission even in unstable network conditions.
[00189] The mobile devices supported by the system encompass a wide range of modern smartphones and tablets. These include flagship devices such as the iPhone 14 Pro Max with iOS 16 or later, iPhone 13 series running iOS 15 or above, and iPhone 12 models with minimum iOS 14.5. In the Android ecosystem, the system supports devices such as the Samsung Galaxy S23 Ultra running Android 13, Google Pixel 7 Pro with Android 13 or later, and OnePlus 10 Pro with OxygenOS based on Android 12 or above. Tablet devices include the iPad Pro (Ml and M2 models) running iPadOS 16 or later, Samsung Galaxy Tab S8 series with Android 12 or above, and Microsoft Surface Pro devices running Windows 11.
[00190] Each supported device undergoes compatibility testing to ensure proper implementation of the video test data collection and transmission protocols. For instance, an iPhone 14 Pro Max might transmit test data showing 4K video playback capabilities with HDR support, while a mid-range Android device might report 1080p maximum resolution with standard dynamic range. The system adapts its receiving process based on device capabilities, adjusting buffer sizes and processing parameters accordingly. For example, when receiving data from a high- end device like the Samsung Galaxy S23 Ultra, the system might allocate larger buffer sizes to accommodate the more detailed performance metrics and higher resolution video test data.
[00191] The receiving process also includes device-specific optimizations. For iOS devices, the system implements specific handling for background data transmission limitations imposed by iOS, ensuring reliable data reception even when the testing application enters the background state. For Android devices, the system accounts for various manufacturer- specific modifications to the Android operating system, adapting its receiving protocols to maintain compatibility with devices from different manufacturers such as Samsung, Google, OnePlus, and Xiaomi.
[00192] This step may involve the system receiving data that has been encrypted on the mobile device to ensure security during transmission. The encrypted video test results data may be received via an application programming interface (API) unit of the mobile device (108). This API unit may facilitate secure and standardized communication between the mobile device and the backend system, ensuring efficient data transfer and compatibility.
[00193] Different encryption techniques that might be used for securing the video test results data include: i. Symmetric Encryption: AES (Advanced Encryption Standard): A widely used block cipher that supports key sizes of 128, 192, and 256 bits. Example: AES-256 in GCM (Galois/Counter Mode) for both encryption and authentication. ChaCha20: A high-speed stream cipher, often paired with the Polyl305 authenticator. Example: ChaCha20-Polyl305 for efficient encryption on mobile devices. ii. Asymmetric Encryption: RSA (Rivest-Shamir-Adleman): Uses separate keys for encryption and decryption. Example: RSA-2048 for key exchange, combined with AES for data encryption. Elliptic Curve Cryptography (ECC): Offers equivalent security to RSA with smaller key sizes. Example: ECDH (Elliptic Curve Diffie-Hellman) for key exchange, paired with AES for data encryption. iii. Hybrid Encryption: Combining asymmetric and symmetric encryption for enhanced security and efficiency. Example: Using RSA to encrypt an AES key, which is then used to encrypt the actual data. iv. End-to-End Encryption: Ensuring that data remains encrypted from the mobile device all the way to the backend server. v. Homomorphic Encryption: Allows computations on encrypted data without decrypting it. Example: Partial homomorphic encryption to perform specific operations on encrypted test results.
vi. Attribute-Based Encryption: Incorporates attributes or policies into the encryption process for fine-grained access control. Example: Encrypting test results with attributes like "test type" or "device model" to control data access. vii. Format-Preserving Encryption: Encrypts data while maintaining its original format. Example: Encrypting device identifiers while preserving their length and format for compatibility with existing systems.
[00194] The choice of encryption technique would depend on factors such as the required level of security, computational resources of the mobile device, and the nature of the data being transmitted. The system might also employ multiple encryption layers or techniques for different types of data within the video test results.
[00195] At step (604), the method (600) includes distributing, using a load balancer module (212), the received encrypted video test results data to one or more backend servers. This distribution may be performed using a predetermined distribution algorithm, which could be designed to optimize server utilization and ensure efficient processing of the incoming data. The load balancer module (212) may analyze current server loads and distribute the data accordingly, preventing any single server from becoming overwhelmed.
[00196] The distribution process executed by the load balancer module (212) follows a sophisticated sequence of steps to ensure optimal allocation of incoming video test data. When encrypted data arrives from a mobile device, the load balancer module first performs a preliminary analysis of the incoming data packet size, current server loads, and network conditions. This analysis occurs within 50 milliseconds and determines the most efficient distribution path. For example, when receiving a 50MB video test results package, the load balancer calculates server capacity and current processing loads before making a distribution decision.
[00197] The actual distribution process begins with a health check of all available backend servers. The load balancer maintains continuous TCP connections with each server, sending periodic heartbeat signals every 30 seconds to verify server availability and response times. For instance, if a backend server fails to respond to two consecutive heartbeat signals, it is temporarily marked as unavailable and removed from the distribution pool. During peak hours, when the system might be processing data from 10,000 concurrent video tests, this health checking becomes particularly crucial to maintain system stability.
[00198] Once server health is confirmed, the load balancer applies its distribution algorithm. In a typical scenario, if Server A reports a current load of 75% CPU utilization, Server B shows 45%, and Server C indicates 60%, the load balancer would direct new incoming data to Server B. The distribution decision also considers network latency between the load balancer and each server. For example, if Server B has 45% CPU utilization but shows a network latency of 100ms, while Server C has 60% CPU utilization but only 20ms latency, the load balancer might prefer Server C for time- sensitive video test data.
[00199] The backend server infrastructure consists of multiple server types optimized for different aspects of video test data processing. Primary processing servers, typically configured with 32-core CPUs, 128GB RAM, and NVMe SSDs, handle the bulk of data decryption and initial processing. For example, a primary processing server might be an AWS EC2 instance of type r6g.8xlarge, equipped with ARM-based processors optimized for encryption operations. These servers can each handle approximately 1,000 concurrent video test processing tasks while maintaining response times under 100ms.
[00200] Secondary analysis servers, configured with 64-core CPUs and 256GB RAM, focus on deep analysis of processed data. These might be implemented as Google Cloud Platform's n2-standard-64 instances, each capable
of performing complex statistical analysis on video test results from up to 5,000 unique test sessions simultaneously. For instance, a secondary analysis server can process detailed performance metrics, generating insights about video quality variations across different network conditions within 200ms per analysis task.
[00201] Storage-optimized servers form another crucial component of the backend infrastructure. These servers, equipped with arrays of high-speed SSDs in RAID 10 configuration, provide temporary storage for incoming encrypted data and processed results. A typical storage server might utilize AMD EPYC processors with 128 PCIe lanes, supporting up to 100TB of NVMe storage with write speeds exceeding lOGB/s. This configuration allows each storage server to handle simultaneous write operations from up to 2,000 concurrent test sessions while maintaining sub-millisecond latency.
[00202] The distribution process also includes intelligent routing based on data characteristics. For example, when receiving video test results from high- resolution 4K streaming tests, which typically generate larger data packages of lOOMB or more, the load balancer automatically routes these to servers with enhanced memory and storage capabilities. Similarly, when processing data from bandwidth-intensive tests involving multiple simultaneous video streams, the load balancer selects servers with optimal network interface configurations, such as those equipped with lOOGbps network cards and
[00203] At step (606), the method (600) includes processing, using a data processing module (214), the distributed encrypted video test results data. This processing step may involve several sub-steps.
[00204] The process begins with the mobile device (108) establishing a secure API connection to the system. The API unit implements REST architecture using HTTPS protocols and OAuth 2.0 authentication. Each mobile device is assigned a unique client identifier and secret key pair during initial registration. For
example, when a device first connects, it must complete a device registration process that generates a unique device_id like "dev_7a9b3c2d" and corresponding authentication credentials. These credentials are securely stored in the device's encrypted keychain storage.
[00205] The initiation of a video test follows a systematic process that begins when a user accesses the testing interface. The system supports testing across multiple application types, including but not limited to web applications, native mobile applications, streaming platforms, and video conferencing systems. For web applications, the test might involve loading a video player on websites like YouTube or Netflix. For native applications, the test could evaluate video playback in apps like Instagram or TikTok. Video conferencing platforms such as Zoom or Microsoft Teams can also be evaluated for their real-time video transmission capabilities.
[00206] Test initiation involves several precise steps. First, the user interface (302) presents a configuration screen where test parameters are selected. These parameters include video quality settings (ranging from 480p to 4K), network condition simulations (such as bandwidth throttling or packet loss simulation), and test duration. For example, a user might configure a test to evaluate 1080p video playback under simulated 4G network conditions with 1% packet loss over a 5- minute duration. The interface provides real-time validation of selected parameters to ensure they form a valid test configuration.
[00207] The evaluation of performance is critical for ensuring optimal video delivery and user experience. The system evaluates multiple performance aspects: 1) Video Playback Performance:
- Start-up time (time from request to first frame)
- Frame rate stability
- Resolution adaptation
- HDR/SDR rendering accuracy
2) Network Performance:
- Bandwidth utilization
- Connection stability
- CDN response times
- Edge server performance
3) User Experience Metrics:
- Interface responsiveness
- Quality switch smoothness
- Audio-video synchronization
- Interactive feature performance
[00208] The capturing process implements a multi-layered approach to collect comprehensive test data. At the lowest level, the system captures raw network packets using libpcap libraries, allowing for detailed network performance analysis. At the application level, it monitors video player events through a custom event listener framework. For example, when a video player initiates a quality switch, the system captures the exact timestamp, previous quality level, new quality level, and the reason for the switch (e.g., "bandwidth_decrease" or "user_selected").
[00209] The system captures data points at multiple sampling rates depending on the metric type:
- High-frequency metrics (every 100ms): buffer level, instantaneous bitrate
- Medium-frequency metrics (every Is): frame rate, CPU usage, memory consumption
- Low-frequency metrics (every 5s): aggregate quality statistics, error counts
- Event-based metrics: quality switches, buffering events, user interactions
[00210] The encryption process employs a sophisticated multi-step approach to secure the captured data. Initially, the system generates a unique 256-bit test session key using a cryptographically secure random number generator. This
session key is then used with the AES-256-GCM encryption algorithm to encrypt the captured data. The encryption process occurs in real-time as data is captured, with each data block being encrypted independently to allow for parallel processing.
The encryption procedure includes:
1) Session key generation using CSPRNG
2) Data serialization into a standardized binary format
3) Chunking of data into 1MB blocks for efficient processing
4) Generation of unique initialization vectors for each block
5) Parallel encryption of blocks using hardware-accelerated AES instructions
6) Calculation of authentication tags for each encrypted block
[00211] For example, if a test captures lOOMB of raw data over 5 minutes, the encryption process:
- Divides the data into 100 blocks of 1MB each
- Processes each block with a unique IV
- Generates 100 authentication tags
- Produces an encrypted output with associated metadata
[00212] The encrypted data is then stored in a structured file format that includes:
- Encrypted data blocks
- Initialization vectors
- Authentication tags
- Test metadata (encrypted separately)
- Format version identifier
- Timestamp information
[00213] Initially, the distributed encrypted video test results data may be inserted into a message queue. The message queue is a form of asynchronous service-to- service communication used in serverless and microservices architectures. It temporarily stores messages (in this case, encrypted video test
results data) until they are processed by a consuming application. Examples of message queue includes: i. Apache Kafka: A distributed streaming platform that can handle high-throughput data pipelines. ii. RabbitMQ: A message broker that supports multiple messaging protocols. iii. Amazon SQS (Simple Queue Service): A fully managed message queuing service. iv. Google Cloud Pub/Sub: A messaging service for independent applications to publish and subscribe to asynchronous events.
[00214] This queue can help manage the flow of incoming data, especially during high traffic periods. The data processing module (214) then consumes the inserted encrypted video test results data from the message queue. As part of the processing, the data may be decrypted using a virtual machine process of the data processing module (214). The decryption process may include below sub steps: i. The virtual machine retrieves the encrypted data from the message queue. ii. It identifies the encryption algorithm used (this information might be included in the metadata). iii. The appropriate decryption key is securely fetched from a key management system. iv. The decryption algorithm is applied to the data. Decryption Algorithm Example: AES-256 in GCM mode
[00215] This decryption step restores the data to its original, readable format for further analysis. The readable format refers to the original, unencrypted structure of the video test results data, typically in a standardized data format that can be easily parsed and analyzed by the system. Examples of Readable Format includes: JSON (JavaScript Object Notation, CSV (Comma-Separated Values), XML (extensible Markup Language).
[00216] The data processing module (214) executes a sophisticated sequence of operations to handle the distributed encrypted video test results data. The processing begins with a preliminary validation phase where the module verifies the integrity of received data packages using SHA-256 hash verification. For example, when a 50MB encrypted data package arrives, the module first confirms that its hash value matches the original hash generated at the time of encryption on the mobile device, ensuring no data corruption occurred during transmission.
[00217] The initial stage of processing involves segregating the encrypted data into manageable chunks of 16MB each. These chunks are temporarily stored in a high-speed memory buffer using a ring buffer architecture, which allows for efficient processing of large datasets. For instance, when processing a video test result file containing two hours of playback data, the system might create approximately 200 chunks, each containing a specific time segment of the test results. The module assigns each chunk a unique identifier and tracks its processing status through a distributed state management system.
[00218] The decryption process begins with key retrieval from a secure key management service. The module maintains a secure connection to a Hardware Security Module (HSM) that stores the master keys. When decrypting data, the module first requests the appropriate decryption key using a key identifier embedded in the encrypted data's metadata. For example, if the data was encrypted using AES-256-GCM, the module retrieves the corresponding 256-bit key from the HSM, using a secure channel encrypted with TLS 1.3.
[00219] The actual decryption operation processes each data chunk sequentially using a multi-threaded approach. The module spawns multiple worker threads, typically one thread per available CPU core, to parallel process the chunks. For a server with 32 cores, this means 32 chunks can be decrypted simultaneously. Each thread performs the decryption using the AES-NI hardware acceleration when available, achieving decryption speeds of approximately 3GB per second per
thread. The module maintains strict memory management during this process, securely wiping decrypted data from memory once it has been processed and written to secure storage.
[00220] Post-decryption processing involves several critical steps. The module first validates the decrypted data's structure against predefined schemas. For instance, it verifies that all required fields such as timestamp, device identifier, and video metrics are present and properly formatted. The module then performs data normalization, converting various time formats to UTC, standardizing units of measurement, and ensuring consistent formatting of numerical values. For example, if different mobile devices report bandwidth in different units (Mbps vs. Kbps), the module converts all measurements to a standardized unit (Mbps) for consistency.
[00221] The module implements sophisticated error handling throughout the processing pipeline. If decryption fails for any chunk, the module initiates a retry mechanism with exponential backoff, attempting up to three retries with increasing delays (100ms, 200ms, 400ms) between attempts. Failed chunks are logged with detailed error information, including the specific encryption parameters used, chunk identifiers, and error codes. For instance, if a chunk fails decryption due to an invalid initialization vector, the module logs this specific error along with the chunk's metadata for later analysis.
[00222] Following successful decryption and normalization, the module performs preliminary analysis of the data. This includes calculating basic statistical metrics such as average bitrate, buffering ratio, and quality switch frequency. For example, when processing a one-hour video test session, the module might compute metrics like average playback bitrate every 10 seconds, creating 360 data points for temporal analysis. These processed results are then prepared for storage, with the module adding metadata tags indicating the processing timestamp, server identifier, and processing version for full auditability.
[00223] The final stage of processing involves data optimization for storage and retrieval. The module compresses the processed data using industry-standard algorithms like LZ4, achieving compression ratios of approximately 4:1 while maintaining sub-millisecond decompression times. The compressed data is then organized into a columnar format optimized for analytical queries, with frequently accessed metrics stored in separate columns for efficient retrieval. For instance, common query parameters like device type, network conditions, and video quality metrics are stored in dedicated columns with appropriate indexing.
[00224] At step (608), the method (600) includes mapping, using a mapping module (216), the processed video test results data with location information of a user (110). This mapping process may involve determining the location information based on at least one of geographical coordinate data or cellular network identification data received from the mobile device (108).
[00225] The determination of location information follows a multi-tiered process implemented by the mapping module (216). When location data arrives from a mobile device, the system first attempts to use high-precision GPS coordinates. These coordinates typically arrive in standard decimal degree format, such as latitude 40.7128°N (40.7128) and longitude 74.0060°W (-74.0060) for a device located in New York City. In optimal conditions with clear sky view, GPS accuracy can reach within 5-10 meters of the actual device location.
[00226] The location determination process implements a fallback hierarchy when high-precision GPS data is unavailable. First, the system attempts to use assisted GPS (A-GPS) data, which combines satellite signals with cell tower information to improve location accuracy in urban environments. For example, in a dense urban area like Tokyo (35.6762°N, 139.6503 °E), where tall buildings might impair GPS signals, A-GPS can still provide accuracy within 15-20 meters by triangulating between multiple data sources.
[00227] When GPS or A-GPS data is insufficient, the system falls back to cellular network identification data. This process involves triangulating location using multiple data points: Cell ID (a unique identifier for each cell tower, such as "12345"), Mobile Country Code (MCC, such as "310" for the United States), and Mobile Network Code (MNC, such as "120" for Sprint). For instance, if a device connects to three cell towers with IDs "45678", "45679", and "45680" in San Francisco (37.7749°N, 122.4194°W), the system can triangulate location within 50- 100 meters accuracy by calculating signal strengths and known tower positions.
[00228] The system maintains a comprehensive database of geographical reference points to enhance location accuracy. This database includes:
- Major metropolitan coordinates (e.g., Paris at 48.8566°N, 2.3522°E)
- Known cell tower locations (e.g., Tower ID "67890" at 51.5074°N, 0.1278°W in London)
- Wi-Fi access point mappings (e.g., SSID "Airport-WiFi" at 1.3521°N, 103.9198°E in Singapore)
[00229] In cases where multiple location data sources are available, the system implements a weighted averaging algorithm. For example, when a device in Sydney (-33.8688°S, 151.2093°E) provides both GPS coordinates and cell tower data, the system might weight GPS data at 80% and cell tower data at 20% based on reported accuracy levels. This weighted approach helps mitigate individual sensor errors and provides more reliable location determination.
[00230] The location determination process also accounts for movement during video testing. For instance, if a user is testing video performance while traveling on a train from Berlin (52.5200°N, 13.4050°E) to Hamburg (53.5511°N, 9.9937°E), the system captures location updates every 30 seconds to track performance variations along the journey. This dynamic location tracking helps correlate video performance with changing network conditions across different geographical areas.
[00231] The system stores location data with varying levels of precision based on privacy settings and regulatory requirements. For example, in densely populated areas like Mumbai (19.0760°N, 72.8777°E), the system might store precise coordinates, while in rural areas, it might reduce precision to a 1km grid to maintain user privacy while still providing meaningful location-based analysis.
[00232] The geographical coordinate data may comprise latitude and longitude data, providing precise location information. The cellular network identification data may include Cell ID data, Mobile Country Code (MCC) data, or Mobile Network Code (MNC) data, which can be used to approximate the user's location when GPS data is unavailable.
[00233] At step (610), the method (600) includes storing the mapped video test results data in a database (210). This database may be a non-relational database system, chosen for its ability to handle large volumes of unstructured or semistructured data efficiently. The use of a non-relational database can provide flexibility in data storage and retrieval, which is particularly useful for the varied types of data collected during video performance tests. Examples of non-relational database systems that could be used for storing video test results data include: i. Apache HBase: A column-oriented, distributed NoSQL database built on top of the Hadoop Distributed File System (HDFS). Example usage: Storing time-series data of video performance metrics, where each row represents a test instance, and columns represent different metrics. ii. MongoDB: A document-oriented NoSQL database that stores data in flexible, JSON-like documents. Example usage: Storing complete test results as individual documents, allowing for easy addition of new fields without schema changes. iii. Cassandra: A wide-column store NoSQL database designed to handle large amounts of data across many commodity servers.
Example usage: Storing video test results with a focus on write performance and scalability.
[00234] In some embodiments, the method (600) may further include generating reports and visualizations based on the stored mapped video test results data. These reports may include: i. Executive Summaries: High-level overviews of video performance metrics across the entire system. ii. Detailed Performance Reports: In-depth analyses of specific metrics such as buffering rates, video start times, and playback quality. iii. Device-Specific Reports: Breakdowns of performance metrics by device type, operating system, or model. iv. Geographical Performance Reports: Analyses of video performance across different regions or countries. v. Network Condition Reports: Comparisons of video performance across various network types (e.g., 4G, 5G, Wi-Fi) and strengths. vi. Trend Reports: Analyses of how video performance metrics change over time. vii. Anomaly Reports: Highlighting instances of unusual or suboptimal performance for further investigation.
[00235] These reports and visualizations can provide valuable insights into video performance across different locations, devices, and network conditions, insights refer to meaningful, actionable interpretations of the video test results data that can inform decision-making and guide improvements in video delivery and user experience. Examples of Insights may include: i. Video start times are 20% slower on average in rural areas compared to urban centers, suggesting a need for improved content delivery network (CDN) coverage in these regions. ii. Devices running OS version X.Y experience 30% more buffering events than those on version X.Z, indicating a potential compatibility issue that needs addressing.
iii. Peak hour traffic (8-10 PM local time) sees a 15% increase in video resolution downgrades, pointing to a need for increased bandwidth allocation during these times. iv. Users on 5G networks experience 40% fewer buffering events compared to 4G users, highlighting the importance of continuing 5G infrastructure investments. v. There's a strong correlation between video start times exceeding 3 seconds and user session abandonment, suggesting that optimizing initial load times could significantly improve user retention.
[00236] They may include heat maps, trend charts, and comparative analyses that can help identify areas for improvement in video delivery and playback. i. Heat Maps: Graphical representations of data where values are depicted by color. Example: A geographical heat map showing average video start times across different regions, with red indicating slower start times and green indicating faster ones. Use: Quickly identify problematic areas or patterns in video performance across different dimensions (e.g., geography, time, device type). ii. Trend Charts: Line graphs that show how specific metrics change over time. Example: A line chart showing the average bitrate of video playback over the past 6 months. Use: Identify long-term patterns, cyclical trends, or the impact of specific changes or events on video performance. iii. Comparative Analyses: Visual or tabular representations that directly compare performance metrics across different categories. Example: A bar chart comparing the average number of buffering events across different device models or OS versions. Use: Highlight performance disparities between different segments (e.g., devices, networks, regions) to prioritize areas for improvement.
These visualizations help in: i. Identifying patterns: Recognizing recurring issues or trends that might not be apparent in raw data.
ii. Prioritizing improvements: Highlighting the most significant or widespread issues affecting video performance. iii. Communication: Presenting complex data in an easily understandable format for stakeholders across different departments. iv. Decision making: Providing clear, visual evidence to support strategic decisions about infrastructure investments, content delivery optimizations, or application updates.
[00237] Additionally, the method (600) may include processing the video test results data using a distributed computing framework to analyze performance metrics of the web application. Examples of Distributed Computing Frameworks may include: i. Apache Hadoop: An open-source framework that allows for the distributed processing of large data sets across clusters of computers. ii. Apache Spark: A unified analytics engine for large-scale data processing, capable of handling batch processing, real-time streaming, machine learning, and graph computation. iii. Apache Flink: A stream processing framework that provides precise control of time and state for stateful computations. iv. Google Clo ud Dataflow: A fully managed service for executing Apache Beam pipelines within the Google Cloud Platform ecosystem.
[00238] The performance metrics are quantifiable measures used to assess the efficiency and effectiveness of a web application, particularly in terms of video delivery and playback quality. Examples of Performance Metrics may include: i. Video Start Time: The time taken for a video to begin playing after a user initiates playback. ii. Buffering Ratio: The proportion of time spent buffering compared to total video duration.
iii. Average Bitrate: The average amount of data processed per unit of time during video playback. iv. Video Quality Switches: The number of times video resolution changes during playback. v. Error Rate: The percentage of video playback attempts that result in errors. vi. User Engagement: Metrics like watch time, completion rate, and interaction rate.
[00239] This distributed computing approach allows for efficient processing of large datasets, enabling complex analyses that can reveal deeper insights into video performance and user experience. The complex analyses refer to sophisticated data processing techniques that go beyond simple aggregations or summaries. These may include: i. Time Series Analysis: Examining how video performance metrics change over time, identifying seasonal patterns or trends. ii. Multivariate Analysis: Investigating the relationships between multiple performance metrics simultaneously. iii. Predictive Modeling: Using machine learning algorithms to forecast future performance based on historical data. iv. Anomaly Detection: Identifying unusual patterns or outliers in performance data that may indicate issues. v. Cohort Analysis: Grouping users based on shared characteristics and analyzing their video performance experiences. vi. Funnel Analysis: Tracking user progression through different stages of video interaction to identify drop-off points.
[00240] Deeper insights refer to more nuanced and actionable understandings of video performance and user experience, often uncovered through advanced analytics. Examples include: i. Performance Bottlenecks: Identifying specific network conditions, device types, or geographical locations that consistently experience suboptimal video performance.
ii. User Behavior Patterns: Uncovering how different performance metrics correlate with user engagement or retention rates. iii. Quality of Experience (QoE) Modeling: Developing comprehensive models that quantify overall user experience based on multiple performance metrics. iv. Predictive Maintenance: Anticipating potential issues in video delivery infrastructure before they impact users. v. Personalization Opportunities: Identifying user segments that might benefit from tailored video delivery strategies. vi. Root Cause Analysis: Tracing performance issues back to their source, whether it's in content encoding, network infrastructure, or client-side rendering.
[00241] These deeper insights enable more informed decision-making about infrastructure investments, content delivery optimizations, and application development priorities, ultimately leading to improved video performance and user satisfaction.
[00242] It's important to note that the encrypted video test results data is generated by the mobile device (108) through a series of steps. Initially, a video test is initiated via a user interface (302) to evaluate the performance of a web application. This test may involve playing a video under various network conditions or device states. The mobile device then captures video test results data from the initiated test, which may include metrics such as buffering time, playback quality, and network performance. This captured data is then encrypted using an encryption module (304) to ensure its security. Finally, the encrypted video test results data is stored in a structured file format using a storage module (306) on the mobile device, ready for transmission to the backend system.
[00243] In another exemplary embodiment, a user device (108) for participating in video performance testing is described. The user device (108) may be equipped with a user interface (302) for initiating video tests, an encryption
module (304) for securing test data, a storage module (306) for locally storing encrypted test results, and an API unit for communicating with the backend system. The encryption module (304) secures test data through the following process: i. Data Collection: The device collects raw video performance data during the test. ii. Data Preparation: The collected data is formatted into a structured format (e.g., JSON or XML) for encryption. iii. Key Generation: A unique encryption key is generated for each test session. This could be a symmetric key for algorithms like AES, or a public key for asymmetric encryption. iv. Encryption Process: The formatted data is encrypted using the generated key. For example: Using AES-256 in GCM (Galois/Counter Mode) for symmetric encryption v. Metadata Attachment: Encryption metadata (e.g., algorithm used, key identifiers) is attached to the encrypted data. vi. Key Security: The encryption key is securely stored or transmitted separately from the encrypted data, possibly using key management systems or secure enclaves on the device. vii. Integrity Protection: Additional measures like digital signatures or message authentication codes (MACs) are applied to ensure data integrity. viii. Secure Storage: The encrypted data is stored locally in the storage module (306) until it can be transmitted to the backend system. ix. Secure Transmission: When transmitting to the backend, the API unit uses secure protocols (e.g., HTTPS with Transport Layer Security (TLS) version 1.3 for an additional layer of protection. x. This process ensures that the video test results data remains confidential and tamper-proof both while stored on the device and during transmission to the backend system.
[00244] This user device (108) plays a crucial role in generating and securely transmitting video test results data, enabling comprehensive analysis of video performance across various real-world conditions. The encryption process allows for the collection of sensitive performance data without compromising user privacy or data integrity, thus providing a reliable foundation for in-depth analysis of video streaming performance in diverse scenarios.
[00245] The present disclosure provides technical advancement related to video performance testing and analysis. This advancement addresses the limitations of existing solutions by offering a secure, scalable, and comprehensive method for collecting, processing, and analyzing video test results data. The disclosure involves encrypted data transmission, distributed processing, and location-based mapping, which offer significant improvements in data security, processing efficiency, and contextual analysis. By implementing a combination of mobile device testing, secure data transmission, and distributed backend processing, the disclosed invention enhances the ability to evaluate and optimize video performance across diverse network conditions and geographical locations, resulting in improved user experience and more efficient resource utilization for video content delivery.
[00246] FIG. 7 illustrates an example computer system (700) in which or with which the embodiments of the present disclosure may be implemented.
[00247] As shown in FIG. 7, the computer system (700) may include an external storage device (710), a bus (720), a main memory (730), a read-only memory (740), a mass storage device (750), a communication port(s) (760), and a processor (770). A person skilled in the art will appreciate that the computer system (700) may include more than one processor and communication ports. The processor (770) may include various modules associated with embodiments of the present disclosure. The communication port(s) (760) 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 fibre, a serial port, a parallel port, or other existing or future ports. The communication ports(s) (760) 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 (700) connects.
[00248] In an embodiment, the main memory (730) may be Random Access Memory (RAM), or any other dynamic storage device commonly known in the art. The read-only memory (740) 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 (770). The mass storage device (750) 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).
[00249] In an embodiment, the bus (720) may communicatively couple the processor(s) (770) with the other memory, storage, and communication blocks. The bus (720) may be, e.g. a Peripheral Component Interconnect PCI) / PCI Extended (PCLX) bus, Small Computer System Interface (SCSI), Universal Serial Bus (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 (770) to the computer system (700).
[00250] In another embodiment, operator and administrative interfaces, e.g., a display, keyboard, and cursor control device may also be coupled to the bus (720) to support direct operator interaction with the computer system (700). Other operator and administrative interfaces can be provided through network connections connected through the communication port(s) (760). Components described above are meant only to exemplify various possibilities. In no way should
the a forementioned exemplary computer system (700) limit the scope of the present disclosure.
[00251] The method and system of the present disclosure may be implemented in a number of ways. For example, the methods and systems of the present disclosure may be implemented by software, hardware, firmware, or any combination of software, hardware, and firmware. The above-described order for the steps of the method is for illustration only, and the steps of the method of the present disclosure are not limited to the order specifically described above unless specifically stated otherwise. Further, in some embodiments, the present disclosure may also be embodied as programs recorded in a recording medium, the programs including machine-readable instructions for implementing the methods according to the present disclosure. Thus, the present disclosure also covers a recording medium storing a program for executing the method according to the present disclosure.
[00252] 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 to be implemented merely as illustrative of the disclosure and not as limitation.
ADVANTAGES OF THE PRESENT DISCLOSURE
[00253] The present disclosure ensures that video test results data remains secure and protected from unauthorized access or tampering through the implementation of custom encryption methods on the mobile device and secure transmission protocols.
[00254] The present disclosure enables the system to efficiently handle large volumes of video test results data from multiple mobile devices simultaneously by utilizing a load balancer module and distributed backend server infrastructure.
[00255] The present disclosure enhances the accuracy and relevance of video performance analysis by mapping test results to specific geographical locations, providing context-rich insights into user experience across different regions and network conditions.
[00256] The present disclosure improves the scalability and processing efficiency of the system through the use of a message queue and virtual machine processes, allowing for real-time or near-real-time data processing even during peak load periods.
[00257] The present disclosure facilitates comprehensive performance evaluation by combining video test results data with web performance test data, offering a holistic view of both video playback and overall web application performance.
[00258] The present disclosure enables flexible and efficient data storage and retrieval through the use of a non-relational database system, accommodating the diverse and potentially unstructured nature of video test results data.
[00259] The present disclosure enhances the analytical capabilities of the system by employing distributed computing frameworks for processing video test results, allowing for complex analyses and the identification of performance trends across large datasets.
[00260] The present disclosure improves the usability and actionability of test results by generating visual reports and analytics, enabling stakeholders to quickly identify issues and make data-driven decisions for performance optimization.
73
[00261] The present disclosure ensures the integrity and confidentiality of test data throughout its lifecycle, from capture on the mobile device to storage and analysis in the backend system, through end-to-end encryption and secure decryption processes.
74
Claims
1. A system (102) for synchronizing and storing video test results data, comprising: a memory (204); one or more processors (202) configured to execute a set of instructions stored in the memory (204) to: receive encrypted video test results data from a mobile device (108); distribute, using a load balancer module (212), the received encrypted video test results data to one or more backend servers; process, using a data processing module (214), the distributed encrypted video test results data, where the processing includes decryption of the video test results data; map, using a mapping module (216), the processed video test results data with location information of a user (110); and store the mapped video test results data in a database (210).
2. The system (102) of claim 1, wherein the encrypted video test results data is generated by the mobile device (108), the mobile device (108) being configured to: receive the encrypted video test results data via an application programming interface (API) unit of the mobile device (108); initiate, via a user interface (302), a video test to evaluate performance of a web application; capture the video test results data from the initiated video test; encrypt, using an encryption module (304), the captured video test results data; and store, using a storage module (306), the encrypted video test results data in a structured file format.
75
3. The system (102) of claim 1, wherein the load balancer module (212) is configured to: distributes the received encrypted video test results data using a predetermined distribution algorithm; inserting the encrypted video test results data into a message queue; and consuming the inserted encrypted video test results data from the message queue using the data processing module (214).
4. The system (102) of claim 3, wherein processing the distributed encrypted video test results data further comprises: decrypting the distributed encrypted video test results data using a virtual machine process of the data processing module (214).
5. The system (102) of claim 1, wherein mapping the processed video test results data with location information of the user (110) comprises: determining the location information based on at least one of geographical coordinate data or cellular network identification data received from the mobile device (108).
6. The system (102) of claim 5, wherein: the geographical coordinate data comprises latitude and longitude data; and the cellular network identification data comprises at least one of Cell ID data, Mobile Country Code (MCC) data, or Mobile Network Code (MNC) data.
7. The system (102) of claim 1, wherein the one or more processors (202) are further configured to: generate reports and visualizations based on the stored mapped video test results data; and
process the video test results data using a distributed computing framework to analyze performance metrics of a web application.
8. A method (600) for synchronizing and storing video test results data, the method comprising: receiving (602) encrypted video test results data from a mobile device (108); distributing (604), using a load balancer module (212), the received encrypted video test results data to one or more backend servers; processing (606), using a data processing module (214), the distributed encrypted video test results data, where the processing includes decryption of the video test results data; mapping (608), using a mapping module (216), the processed video test results data with location information of a user (110); and storing (610) the mapped video test results data in a database (210).
9. The method (600) of claim 8, wherein the encrypted video test results data is generated by the mobile device (108), the method further comprising: receiving the encrypted video test results data via an application programming interface (API) unit of the mobile device (108); initiating, via a user interface (302), a video test to evaluate performance of a web application; capturing the video test results data from the initiated video test; encrypting, using an encryption module (304), the captured video test results data; and storing, using a storage module (306), the encrypted video test results data in a structured file format.
10. The method (600) of claim 8, wherein: distributing the received encrypted video test results data comprises using a predetermined distribution algorithm;
inserting the encrypted video test results data into a message queue; and consuming the inserted encrypted video test results data from the message queue using the data processing module (214).
11. The method (600) of claim 10, wherein processing the distributed encrypted video test results data further comprises: decrypting the distributed encrypted video test results data using a virtual machine process of the data processing module (214).
12. The method (600) of claim 8, wherein mapping the processed video test results data with location information of the user (110) comprises: determining the location information based on at least one of geographical coordinate data or cellular network identification data received from the mobile device (108).
13. The method (600) of claim 12, wherein: the geographical coordinate data comprises latitude and longitude data; and the cellular network identification data comprises at least one of Cell ID data, Mobile Country Code (MCC) data, or Mobile Network Code (MNC) data.
14. The method (600) of claim 8, further comprising: generating reports and visualizations based on the stored mapped video test results data; and processing the video test results data using a distributed computing framework to analyze performance metrics of a web application.
15. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors (202) of a system (102) for
78
synchronizing and storing video test results data via a network (104), cause the one or more processors (202) to perform operations comprising: receiving encrypted video test results data from a mobile device (108); distributing, using a load balancer module (212), the received encrypted video test results data to one or more backend servers; processing, using a data processing module (214), the distributed encrypted video test results data, where the processing includes decryption of the video test results data; mapping, using a mapping module (216), the processed video test results data with location information of a user (110); and storing the mapped video test results data in a database (210).
16. A mobile device (108) communicatively coupled to a system (102) for synchronizing and storing video test results data via a network (104), wherein the system (102) comprises: a memory (204); one or more processors (202) configured to execute a set of instructions stored in the memory (204) to perform the method (600) as claimed in claim 8.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| IN202421022231 | 2024-03-22 | ||
| IN202421022231 | 2024-03-22 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025196799A1 true WO2025196799A1 (en) | 2025-09-25 |
Family
ID=97138639
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/IN2025/050221 Pending WO2025196799A1 (en) | 2024-03-22 | 2025-02-14 | A system and method for synchronizing and storing video test results data |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025196799A1 (en) |
-
2025
- 2025-02-14 WO PCT/IN2025/050221 patent/WO2025196799A1/en active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9998340B2 (en) | Method and system to monitor a network | |
| US20250274510A1 (en) | Method and System for Federated Over-the-Top Content Delivery | |
| Dimopoulos et al. | Measuring video QoE from encrypted traffic | |
| WO2021103647A1 (en) | Information processing method and apparatus | |
| US9325742B1 (en) | Adding an encryption policy in a streaming environment | |
| US20140188801A1 (en) | Method and system for intelligent load balancing | |
| CN109521956B (en) | Cloud storage method, device, equipment and storage medium based on block chain | |
| Mangla et al. | VideoNOC: Assessing video QoE for network operators using passive measurements | |
| Akter et al. | Performance analysis of personal cloud storage services for mobile multimedia health record management | |
| CN103281594A (en) | Monitoring over-the-top adaptive video streaming in a network | |
| US20250358273A1 (en) | Web tokens for enhanced microservice obervability | |
| CN110263579A (en) | A kind of data processing method, system and relevant device | |
| Pan et al. | QoE assessment of encrypted YouTube adaptive streaming for energy saving in Smart Cities | |
| US20250055916A1 (en) | Telemetry over quic | |
| US11194839B2 (en) | System and method for aggregating subscriber perspective data | |
| WO2025196799A1 (en) | A system and method for synchronizing and storing video test results data | |
| US9614891B1 (en) | Assembling communications based on captured packets | |
| Gorton et al. | Gridoptics (tm) a novel software framework for integrating power grid data storage, management and analysis | |
| Keshvadi et al. | Movie: A measurement tool for mobile video streaming on smartphones | |
| Abane et al. | A Data Collection Platform for Network Management | |
| WO2025196802A1 (en) | System and method for web performance testing | |
| CN113312637A (en) | Proxy server and method for matching encrypted subscription with event | |
| WO2025196783A2 (en) | System for performing speed test in a network and a method thereof | |
| US20240160629A1 (en) | System and method for accessing data across multiple data sources in a data ecosystem | |
| CN120281806B (en) | Financial information reporting method, device, computer equipment and readable storage medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 25773953 Country of ref document: EP Kind code of ref document: A1 |