Client-Side UI Framework Rendering via JSON Component Definitions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing UI frameworks are limited in their ability to provide flexible and efficient rendering of long-lasting pages in multi-tenant database environments, where user interfaces need to dynamically update and manage changing data and components over time, often requiring server-centric approaches that are not optimized for client-side processing.

Innovation Solution

The development of a UI framework that allows for client-side rendering and processing using JavaScript, where JSON structures are used to render pages dynamically, enabling user interfaces to respond to user input without traditional server post-backs and allowing for efficient management of component trees and data binding, with tools for developers to write code in various languages and shift rendering responsibilities from the server to the client.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If server-centric rendering is used, then data consistency and control are improved, but system responsiveness and user interaction speed deteriorate

Engineering Contradiction:
Improvedata consistencyVSAvoidsystem responsiveness
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent divides the rendering system into server-side component generation and client-side component rendering. The server generates JSON component definitions and renders them once, then the client device renders subsequent component instances locally without constant server communication. This segmentation allows data consistency to be maintained through initial server rendering while achieving fast local rendering performance for user interactions.

Inventive Principle:
Principle #1Segmentation

2Speed

If client-side rendering is implemented, then system responsiveness and user interaction speed are improved, but server load and data management complexity increase

Engineering Contradiction:
Improveuser interaction speedVSAvoiddata management complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent introduces JSON component definitions as an intermediary format between the server and client. The server renders components into JSON definitions that capture the component structure and data binding information, which are then transmitted to the client. The client uses these JSON definitions to render components locally without requiring complex server communication logic, thus reducing server load while maintaining manageable data flow through the standardized JSON intermediary.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If traditional server post-backs are used, then data validation and security control are improved, but page update efficiency and user experience deteriorate

Engineering Contradiction:
Improvedata validationVSAvoidpage update efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs data validation and security checks during the initial server-side component definition generation phase. The server validates data binding expressions and component configurations when creating the JSON definitions, before transmitting them to the client. This preliminary validation ensures data security and correctness while allowing the client to render and update components efficiently without requiring repeated server post-backs for each update operation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10048949B2Methods and systems for providing a user interface
Publication Date: 2018.08.14 SALESFORCE INC
  • US10048949B2 patent drawing
  • US10048949B2 patent drawing
  • US10048949B2 patent drawing

AI summary

Methods, devices and systems for providing a user interface in an on-demand software service environment are described. Some implementations involve receiving an indication of a component definition to instantiate. The component definition may be a portion of a component definition data structure. Such implementations may also involve instantiating the provided component, instantiating all remaining attributes of the component definition data structure to produce a component instance data structure and transmitting an intermediate representation of the indicated component to a client device. The intermediate representation may comprise a version of the component instance data structure. The intermediate representation may allow the client device to create an instance of the component in memory.