Client Side Navigation Compositor for Web Apps

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

As web applications become more complex and are factored into multiple smaller pieces for maintenance, maintaining navigation consistency across these pieces becomes challenging, especially when updates are required, as existing methods often necessitate simultaneous updates to all pages or reduce control over rendering.

Innovation Solution

Implementing a navigation composition system that inserts navigation mechanisms at the client rather than the server, using a client 110, proxy 120, navigation service address repository 130, application server 140, and navigation engine 150, where the client executes code to retrieve and insert navigation services 165 into application 145, allowing for decentralized updates and reduced testing costs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If navigation mechanisms are inserted at the server side, then navigation consistency can be maintained, but update costs increase and control over rendering is reduced

Engineering Contradiction:
Improvenavigation consistencyVSAvoidupdate cost
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The navigation mechanism is extracted from the server-side rendering process and inserted into the client-side browser environment. This allows the navigation placeholder and service insertion to occur locally in the user's browser, eliminating the need for server-side stitching and reducing update costs while maintaining navigation consistency across application pieces.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

A navigation placeholder acts as an intermediary element embedded in application pieces, which later receives the actual navigation service through client-side code execution. This placeholder mechanism enables decoupling of navigation concerns from server-side rendering, allowing independent updates and reducing testing requirements.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of manufacture

If application is factored into multiple smaller pieces, then maintenance cost decreases, but maintaining coordinated look-and-feel becomes challenging

Engineering Contradiction:
Improvemaintenance costVSAvoidcoordinated look-and-feel
Core Design Contradiction:
Ease of manufactureVSStability of the object's composition

Solution Approach 1:

The navigation service is designed as a universal component that can be inserted into multiple different application pieces through a common placeholder mechanism. This universal navigation service ensures consistent look-and-feel across all factored application components, allowing them to be maintained independently while presenting a unified user experience.

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

Solution Approach 2:

The navigation placeholder is copied into each application piece, creating a standardized entry point for navigation functionality. This copying approach ensures that all factored components can receive the same navigation service, maintaining coordinated appearance while allowing independent development and maintenance of each piece.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10834167B1Client side navigation compositor
Publication Date: 2020.11.10 AMAZON TECH INC
  • US10834167B1 patent drawing
  • US10834167B1 patent drawing
  • US10834167B1 patent drawing

AI summary

In some embodiments, a system includes a proxy and an application server. The proxy is operable to intercept a request to download application content from an application server, insert an address of a navigation service into the request to yield an augmented request, and transmit the augmented request to the application server. The application server is operable to receive the augmented request, generate an application in response to the augmented request, the application comprising the application content, a navigation placeholder, and code to access the navigation service at the address, the navigation placeholder representing a portion of the application where the navigation service may be inserted, and transmit the application for receipt by the client.