Layout Service for Micro-Frontend Composition

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Complex web applications with multiple components developed by different teams face challenges in efficient execution, reliable testing, and consistent release due to disparate components and monolithic interface backends, leading to increased computational complexity, resource utilization, and delayed testing.

Innovation Solution

The implementation of technology-agnostic user interface micro-services that compose web applications from multiple micro-frontends, allowing independent development and deployment of micro-services by different teams, using a layout service to onboard and render micro-frontends without inline frames, and caching resources to reduce network requests.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If inline-frames are used to integrate micro-services into a single web application interface package, then the user interface can be composed of multiple micro-services developed by different teams, but the release cycle of the parent container web application is negatively impacted and the system becomes dependent on a monolithic interface back-end

Engineering Contradiction:
ImproveAbility to integrate micro-services from different teamsVSAvoidDependency on monolithic interface back-end
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts the interface rendering logic from the monolithic back-end and places it in the client's web browser. The layout service generates HTML code that the browser executes locally, eliminating the dependency on a centralized monolithic interface back-end while maintaining the ability to compose multiple micro-services in the user interface.

Inventive Principle:
Principle #2Taking out (Extraction)

2Adaptability or versatility

If inline-frames are used to integrate micro-services, then multiple micro-services can be rendered in a larger user interface, but testing becomes challenging because individual components can only be tested once the full web application has been assembled

Engineering Contradiction:
ImproveAbility to render multiple micro-services in unified interfaceVSAvoidTesting delay until full application assembly
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The layout service performs preliminary actions by generating the HTML structure and resource references before the actual micro-service components are fully assembled. This allows early validation of the interface composition logic and resource loading strategy, enabling testing of the integration mechanism itself without requiring all micro-services to be complete.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If multiple micro-services are integrated using traditional methods, then different teams can develop independently, but computational complexity and resource utilization increase

Engineering Contradiction:
ImproveIndependent development by multiple teamsVSAvoidComputational complexity and resource utilization
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Instead of loading and executing multiple separate micro-service applications, the system creates a single HTML representation that references the necessary resources. The browser then renders this unified view, eliminating the computational overhead of managing multiple concurrent application contexts while preserving independent development capabilities.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11170065B2Technology agnostic UI microservices
Publication Date: 2021.11.09 CITRIX SYSTEMS INC
  • US11170065B2 patent drawing
  • US11170065B2 patent drawing
  • US11170065B2 patent drawing

AI summary

Described embodiments provide systems and methods for providing a web application composed of micro-frontends. The systems and methods can receive a request to access a micro-frontend of a user interface for a web-application from a client application executing on a client device. The systems and methods can retrieve one or more user interface specifications corresponding to a micro-service that provides the micro-frontend. The systems and methods can identify a plurality of resources used by the micro-service corresponding to the user interface specification. The systems and methods can add a plurality of tags to a web page based on the plurality of resources. The systems and methods can load the plurality of resources to establish data objects for the micro-service, in response to adding the plurality of tags to the web page, to construct a document object model for rendering via the client application executing on the client device.