Web Application Plugin Discovery via Cross-Document Messaging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for adding new functionality to web applications often require modifying server-side resources, leading to administrative overhead, potential destabilization, and security concerns, especially when users need to wait for administrators to implement new plugins, which can cause outages and compromise user privacy.

Innovation Solution

A method that initiates a client-side component to discover and install web application plugins by using cross-document messaging to communicate metadata about plugin capabilities, allowing plugins to be installed without modifying the origin server, thus bypassing the single origin policy and maintaining security and privacy.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If new functionality is installed on the origin server, then the web application gains new capabilities, but the risk of server destabilization and administrative overhead increases

Engineering Contradiction:
Improvenew functionalityVSAvoidserver stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent segments the web application into modular components: the origin server, the plugin server, and client-side components. Each operates independently with well-defined interfaces, allowing new functionality to be added as separate plugins without modifying or risking the stability of the core origin server.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a plugin server as an intermediary component that sits between the origin server and client-side components. This mediator handles plugin installation, activation, and communication, isolating the origin server from direct interactions with plugins and preventing potential destabilization.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If administrators manage plugin installation on the origin server, then new functionality is added, but the time required for users to access new features increases

Engineering Contradiction:
Improvenew functionalityVSAvoiddeployment time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent enables self-service plugin installation where users can directly install and activate plugins on their own client-side environments without requiring administrator intervention. The system provides automated plugin management capabilities that allow users to independently add new functionality to their web applications.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent implements preliminary actions by pre-configuring plugin metadata, capabilities, and installation protocols on the origin server. This allows the plugin server to automatically handle installation and configuration processes without requiring real-time administrator involvement, significantly reducing deployment time.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If the origin server acts as a proxy to another server for new functionality, then extensibility is achieved, but administrative overhead and complexity increase

Engineering Contradiction:
ImproveextensibilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a dedicated plugin server as an intermediary component that sits between the origin server and client-side components. This mediator handles plugin installation, activation, and communication, isolating the origin server from direct interactions with plugins and preventing potential destabilization.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a universal plugin architecture that can accommodate various types of functionality through a standardized interface. The plugin server provides multi-functional capabilities including installation, activation, deactivation, and communication management, reducing the need for separate specialized systems.

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

4Adaptability or versatility

If server-side resources are modified to add plugins, then new capabilities are enabled, but security and privacy risks increase

Engineering Contradiction:
Improvenew functionalityVSAvoidsecurity and privacy risks
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The patent segments the system architecture to isolate plugin execution from the origin server. Plugins run in separate client-side components or sandboxed environments, preventing direct access to or modification of server-side resources. This segmentation maintains security boundaries while enabling functional extensibility.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements isolation mechanisms analogous to flexible shells, where client-side components and sandboxed environments act as protective layers between plugins and the origin server. These isolation boundaries allow controlled communication while preventing unauthorized access or modification of server resources.

Inventive Principle:
Principle #30Flexible shells and thin films

Data Source

PatentUS8839233B2Discovering and installing web application plugins
Publication Date: 2014.09.16 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8839233B2 patent drawing
  • US8839233B2 patent drawing
  • US8839233B2 patent drawing

AI summary

A method for discovering and installing web application plugins is disclosed. In one embodiment, such a method includes initiating a client-side component of a server-based web application. The client side-component hosts a first document. The method opens an inline frame, such as an IFrame or Web Worker, within the first document that hosts a second document. The method uses cross-document messaging to communicate, from the second document to the first document, metadata describing a plugin's capabilities and metadata describing an API to access the plugin's capabilities via cross-document messaging. The method utilizes the capabilities of the plugin using cross-document messaging in accordance with the API. A corresponding system and computer program product are also disclosed.