UI Rendering Engine Decoupling Application Logic

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional user interface (UI) development for electronic devices is cumbersome and resource-intensive, leading to compromised user experiences due to application-specific UIs that lack consistency and scalability, with each application responsible for rendering and updating its own UI, resulting in inefficient data flow and maintenance challenges.

Innovation Solution

A UI framework that separates UI visualization, logic, and data, allowing for a seamless and rich UI experience by decoupling UI rendering from application logic, with a single UI rendering engine supporting multiple client engines, enabling independent data flow and asynchronous data transmission, and allowing UI designers to create scenarios without accounting for specific applications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If each application is responsible for rendering and updating its own UI, then application-specific UI control is improved, but device complexity and maintenance difficulty increase

Engineering Contradiction:
ImproveUI controlVSAvoidsystem complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

A UI rendering engine is introduced as an intermediary component that receives UI update requests from multiple applications and centralizes the rendering process. This mediator handles the complexity of UI rendering independently, allowing applications to interact through a standardized interface while the rendering engine manages the actual rendering and updates, thereby reducing overall system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If a single UI rendering engine supports multiple client engines, then scalability is improved, but data flow complexity increases

Engineering Contradiction:
ImprovescalabilityVSAvoiddata flow complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system is segmented into distinct functional modules: multiple UI client engines that generate UI data, a central UI rendering engine that processes rendering requests, and a scene graph data structure that organizes UI elements. This segmentation allows each component to operate independently with well-defined interfaces, improving scalability while managing data flow complexity through modular architecture.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The UI rendering engine is designed as a universal component that can serve multiple UI client engines simultaneously. It implements a standardized interface that accepts UI data from different applications and renders them consistently, enabling the system to scale by adding new client engines without increasing the fundamental complexity of the rendering mechanism.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Adaptability or versatility

If UI rendering is decoupled from application logic, then UI scalability is improved, but implementation complexity increases

Engineering Contradiction:
ImproveUI scalabilityVSAvoidimplementation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

UI rendering functionality is extracted from application logic and placed into a dedicated UI rendering engine. Applications no longer need to contain rendering code; instead, they submit UI update requests to the rendering engine, which handles all rendering operations. This extraction improves UI scalability by creating a separate, reusable rendering system while managing implementation complexity through clear separation of concerns.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

A scene graph data structure serves as an intermediary layer between application logic and the rendering engine. Applications populate the scene graph with UI element data, and the rendering engine consumes this structured data to perform rendering. This intermediary abstraction simplifies the decoupling process by providing a standardized data interface that bridges the gap between logic and rendering without requiring complex direct integration.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP2584462B1Method of rendering a user interface
Publication Date: 2019.03.27 BLACKBERRY LTD
  • EP2584462B1 patent drawingFigure 1
  • EP2584462B1 patent drawingFigure 2
  • EP2584462B1 patent drawingFigure 3

AI summary

A user interface (UI) is presented in which a UI client engine is associated with an application, and a UI rendering engine is associated with the client engine. The UI client engine processes a client thread to manage a scene graph. The UI rendering engine receives the scene graph and data items associated with elements of the scene graph, and processes a rendering thread to render a UI in accordance with the scene graph and the data items, independently of further input from the client UI engine.