Batched Item Action Processing for Responsive User Interfaces

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computing scenarios where an action is applied to an item set stored by an item server, long-running operations can exhaust resources and violate constraints, leading to reduced performance for other users and processes, and existing solutions like stateful configurations or user interface suspensions are resource-intensive or undesirable.

Innovation Solution

A process is initiated on a user device to apply the action in batches to the item set, monitoring progress and adjusting batch size, allowing the action to be completed without overloading the item server and maintaining a responsive user interface.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the action is applied to the entire item set as an uninterruptible transaction, then the action can be completed without inconsistency, but computing resources are depleted and other processes are deprived of access

Engineering Contradiction:
Improvedata consistencyVSAvoidserver resource availability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The item set is divided into multiple batches, and the action is applied to each batch separately. This allows the server to process items in smaller increments, releasing resources between batches and making them available to other processes, while still completing the entire action eventually.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The action is executed periodically on batches of items rather than as a single continuous transaction. The server can pause between batches to service other requests, and resume processing the next batch, maintaining periodic progress toward completion.

Inventive Principle:
Principle #19Periodic action

2Productivity

If the item server executes the action under a constraint, then other processes can access computing resources, but the action may be suspended or terminated before completion

Engineering Contradiction:
Improveserver resource availabilityVSAvoidaction completion
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

By segmenting the item set into batches that fit within server constraints, each batch can be fully processed without exceeding resource limits. This ensures reliable completion of each batch while maintaining overall server availability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The item set is pre-divided into batches before processing begins. This preliminary segmentation ensures that each subsequent processing step can proceed to completion within constraint limits, preventing suspension or termination.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If a stateful configuration is used to execute the action periodically, then the action can be applied to large item sets, but the server becomes resource-intensive and complex

Engineering Contradiction:
Improveprocessing capacityVSAvoidserver configuration complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The client device performs the batching and manages the periodic execution of actions locally. The server simply receives requests to apply actions to specific batches without needing stateful configuration or complex processing logic, maintaining server simplicity.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The client device acts as an intermediary that handles the complexity of batching and periodic execution management. It mediates between the user's request and the server, translating a single action request into multiple batched requests that the server can process simply.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If the user interface issues requests to perform the action on subsets of items, then the action can be applied within server constraints, but the user interface becomes unresponsive and may be terminated early

Engineering Contradiction:
Improveconstraint complianceVSAvoiduser interface responsiveness
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

A background process acts as an intermediary between the user interface and the server. The user interface initiates the action once and remains responsive, while the background process handles the complex batching logic and communicates progress back to the interface without blocking it.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The batching and request management logic is extracted from the user interface and placed in a separate background process. This allows the user interface to remain simple and responsive while the background process handles the resource-intensive coordination of batched requests.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8849929B2Applying actions to item sets within a constraint
Publication Date: 2014.09.30 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8849929B2 patent drawing
  • US8849929B2 patent drawing
  • US8849929B2 patent drawing

AI summary

Items of an item set may be stored by an item server (e.g., mail messages comprising a mailbox stored by a mail server) that supports the application of actions, but only within a constraint (e.g., a maximum duration or computational resources consumed by the action). The application of complex actions to large item sets may exceed the constraint if performed in one request. Moreover, the request may be made by a user interface of a user device, but the user interface may stall while interoperating with the item server to perform the action. Instead, a background process may issue a sequence of requests applying the action to respective batches of items within the constraint. This architecture may enable the user interface to remain responsive to the user while the action is performed, and even to be terminated without jeopardizing the completion of the action upon the item set.