Web Application Integration via HTML5 Messaging and Bootloader Handshake

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Integration of web applications with different deployment and release cycles poses version conflicts and restricts code exchange due to browser security policies, particularly in scenarios where container-specific code needs to be executed by hosted components, with existing solutions failing to address iframe-specific issues and cross-origin policies.

Innovation Solution

A method involving a bootloader and a library of code files using HTML5 Messaging Module for communication between container and component applications, allowing for dynamic loading of code files and version management, while adhering to browser security policies through a handshake protocol and data-URL encoding.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If web applications are integrated using iframe isolation for security, then security is improved, but code exchange capability deteriorates

Engineering Contradiction:
ImprovesecurityVSAvoidcode exchange capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent introduces a message passing mechanism as an intermediary between isolated iframe applications. The container application and component application communicate through structured messages containing data, type information, and mode indicators, enabling code exchange capabilities while maintaining iframe security isolation. This mediator allows business logic and type information to be transmitted without breaking the security sandbox.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If different versions of programming tools are used for interoperability, then deployment flexibility is improved, but version conflicts occur

Engineering Contradiction:
Improvedeployment flexibilityVSAvoidinteroperability stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent implements version management by changing the parameter of tool version identification. Each application includes version information in its metadata, and the system tracks and manages compatibility between different versions of programming tools. This allows multiple versions to coexist while ensuring interoperability stability through version-aware communication protocols.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If container-specific code is injected into hosted components, then functionality is improved, but browser security policies are violated

Engineering Contradiction:
ImprovefunctionalityVSAvoidcross-origin policy violations
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The patent uses a message passing intermediary to transfer container-specific code and business logic to hosted components without direct injection. The code is transmitted as serialized data within messages, executed in the component's context, and results are returned through the same message channel. This approach maintains browser security policies while achieving the functionality of code injection.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Reliability

If entire components are loaded upfront, then availability is improved, but performance is deteriorated due to loading overhead

Engineering Contradiction:
ImproveavailabilityVSAvoidloading performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by pre-defining the component structure, interface contracts, and available functionality metadata before runtime. The actual component code is loaded on-demand when needed, rather than loading entire components upfront. This preliminary preparation enables fast instantiation and reduces initial loading overhead while maintaining availability of defined interfaces.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11755353B2Method for reciprocally integrating applications, in particular web applications
Publication Date: 2023.09.12 SIEMENS AG
  • US11755353B2 patent drawing

AI summary

A method for operating at least a container application and a component application. The container is an application hosting the component application. The method includes the following: providing a library of code files, a bootloader and further executable code files, wherein the component creates a probing message to the container application, and the container creates a response message containing references to code files to be loaded by the component.