Shared Rendering Engine for Web Content

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing browser technologies require multiple instances of rendering engines for each application, leading to inefficiencies such as memory leaks, resource starvation, and priority inversions, and lack secure inter-process communication for rendering web content.

Innovation Solution

Implementing a shared rendering engine architecture where a single master process controls multiple sandboxed rendering engines, with inter-process communication for efficient resource management and authentication, allowing for secure sharing of image resources and prioritization based on application states.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple copies of rendering engine are instantiated for each application, then each application can independently render web content, but memory resources are wasted and memory leaks occur

Engineering Contradiction:
Improveindependent rendering capabilityVSAvoidmemory resources
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges multiple rendering engine instances into a single shared rendering process that serves multiple applications. The host application creates one rendering process that can handle rendering requests from multiple client applications, eliminating the need for each application to have its own separate rendering engine copy. This sharing approach reduces memory consumption while maintaining rendering independence through process isolation and authentication mechanisms.

Inventive Principle:
Principle #5Merging (Combining)

2Quantity of substance

If multiple rendering processes share the same binary code, then memory usage is reduced, but resource starvation and priority inversions occur

Engineering Contradiction:
Improvememory usageVSAvoidresource management
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent segments the rendering system into a host application that manages resource allocation and multiple sandboxed rendering processes that execute rendering tasks. The host application maintains control over resource distribution and can prioritize different rendering requests based on application states, preventing resource starvation and priority inversions while keeping memory usage low through code sharing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The host application acts as an intermediary between multiple client applications and the shared rendering process. It receives rendering requests from various applications, manages the rendering queue, allocates resources appropriately, and coordinates the execution of rendering tasks, thereby preventing resource starvation and priority inversions in the shared memory environment.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Quantity of substance

If a shared rendering process is used, then resource efficiency improves, but secure inter-process communication for rendering web content is compromised

Engineering Contradiction:
Improveresource efficiencyVSAvoidsecure communication
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent implements sandboxing that creates distinct security contexts for different rendering requests while using a shared rendering process. Each client application's rendering requests are processed with appropriate authentication and authorization checks, ensuring that each application can only access resources it is entitled to. This local quality control maintains security while allowing resource sharing.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11089081B1Inter-process rendering pipeline for shared process remote web content rendering
Publication Date: 2021.08.10 AMAZON TECH INC
  • US11089081B1 patent drawing
  • US11089081B1 patent drawing
  • US11089081B1 patent drawing

AI summary

A system, method, and computer readable storage medium for inter-process rendering pipeline for shared process remote web content rendering. The method includes obtaining an image rendering request through an inter-process communication channel established by an application in which the image rendering request including a content area. The method further includes selecting a content rendering engine based on one or more image resources needed to generate web content as specified in the image rendering request, determining the one or more image resources corresponding to the image rendering request by using the content rendering engine, and generating the web content on the content area based at least in part on the one or more image resources.