Client-Side Analytics Data Collection via Thread Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developers of mobile applications face challenges in gaining insights into the runtime behavior and user interaction with their applications due to limited client-side data collection capabilities, which are essential for improving application functionality and user experience, while also needing to conserve battery power and reduce performance impact on portable devices.

Innovation Solution

A portable computing device with methodologies for client-side analytic data collection, involving event logging, serialization, encryption, compression, and secure storage in volatile and non-volatile memory, with separate threads for log rotation and upload to minimize performance impact and conserve battery life.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If client-side analytic data collection is implemented in mobile applications, then developers gain insight into application behavior and user interaction, but device performance is impacted and battery power is consumed

Engineering Contradiction:
Improveapplication behavior insightVSAvoiddevice performance
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The patent segments the data collection process into separate threads (log rotation thread and data upload thread) that operate independently from the main application threads. This segmentation allows analytic data collection to proceed without blocking or significantly impacting the performance of user-facing application functions, thereby resolving the contradiction between gaining application behavior insight and maintaining device performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary analytics system that collects, buffers, and processes data locally before uploading. This intermediary layer (comprising the analytics module, log rotation thread, and upload thread) acts as a buffer between the application and the data collection overhead, minimizing the direct performance impact on the main application while still enabling comprehensive data gathering.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of information

If client-side analytic data collection is implemented in mobile applications, then developers gain insight into application behavior and user interaction, but battery power is consumed

Engineering Contradiction:
Improveapplication behavior insightVSAvoidbattery power
Core Design Contradiction:
Loss of informationVSUse of energy by moving object

Solution Approach 1:

The patent implements periodic action through the log rotation thread that operates at scheduled intervals rather than continuously. The thread rotates log files periodically and uploads data in batches rather than continuously transmitting, reducing the overall power consumption while still maintaining comprehensive data collection capabilities.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The analytics system performs self-service by automatically managing its own data collection, rotation, and upload operations through dedicated background threads. This self-managing approach optimizes resource usage by only activating data upload operations when appropriate conditions are met, thereby reducing unnecessary battery consumption while maintaining data collection effectiveness.

Inventive Principle:
Principle #25Self-service

3Loss of information

If analytic data is stored and processed on the device, then application behavior can be analyzed, but device memory and processing resources are consumed

Engineering Contradiction:
Improveruntime behavior dataVSAvoidmemory and processing resources
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent extracts the heavy processing and storage operations into separate background threads that run independently from the main application. By taking out the data collection, rotation, and upload operations into dedicated threads, the system manages memory and processing resources more efficiently without compromising the main application's performance or user experience.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8996889B2Portable computing device with methodologies for client-side analytic data collection
Publication Date: 2015.03.31 DROPBOX INC
  • US8996889B2 patent drawing
  • US8996889B2 patent drawing
  • US8996889B2 patent drawing

AI summary

A portable computing device with methodologies for client-side analytic data collection are described. In one embodiment, for example, a method performed by a portable computing device having volatile and non-volatile memory includes obtaining a plurality of events to be logged; serializing the events to be logged; storing the serialized events in the volatile memory; encrypting the serialized events to produce serialized and encrypted events; storing the serialized and encrypted events in the non-volatile memory; decrypting the serialized and encrypted events to produce serialized and decrypted events; storing the serialized and decrypted events in the volatile memory; compressing the serialized and decrypted events to produce compressed, serialized, and decrypted events; encrypting the compressed, serialized, and decrypted events to produce encrypted, compressed, and serialized events and storing the encrypted, compressed, and serialized events in the non-volatile memory.