Extension Points for Web Application Plugin Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Enterprise customizations to remote network management platform interfaces and components are often overwritten or refactored during platform upgrades, leading to difficulties in maintaining custom operations and security, especially when upgrades address security issues.

Innovation Solution

Implementing a flexible mechanism with extension points in the platform code to support user-defined plugins, allowing enterprises to define and store plugins separately, ensuring they are not overwritten during upgrades, and enabling invocation of these plugins during operation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If enterprises modify or build upon platform-provided interfaces and components to suit their needs, then customization capability is improved, but platform upgrade compatibility deteriorates

Engineering Contradiction:
Improvecustomization capabilityVSAvoidplatform upgrade compatibility
Core Design Contradiction:
Adaptability or versatilityVSStability of the object's composition

Solution Approach 1:

The system segments the platform into core platform components and customizable extension components. Extensions are separated from the core platform code, allowing them to be independently managed, stored in a database, and invoked through extension points without being overwritten during platform upgrades.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Extension points act as intermediaries between the core platform and custom extensions. The platform code contains placeholders (extension points) that invoke external extension scripts, allowing custom functionality to be integrated without modifying or overwriting the core platform code during upgrades.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If enterprises undertake effort to make customizations work properly on upgraded platforms, then customization functionality is maintained, but maintenance complexity increases

Engineering Contradiction:
Improvecustomization functionalityVSAvoidmaintenance complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system enables self-upgrading of customizations through the extension mechanism. Since extensions are stored separately in a database and invoked through extension points rather than being hard-coded, they automatically remain compatible with platform upgrades without requiring manual refactoring or maintenance effort.

Inventive Principle:
Principle #25Self-service

3Stability of the object's composition

If enterprises refrain from installing platform upgrades to preserve customizations, then customization stability is maintained, but security improvements are lost

Engineering Contradiction:
Improvecustomization stabilityVSAvoidsecurity vulnerabilities
Core Design Contradiction:
Stability of the object's compositionVSObject-affected harmful factors

Solution Approach 1:

By segmenting customizations into separate extension components stored in a database, the system allows the core platform to be upgraded to receive security fixes while extensions remain intact and continue to function with the upgraded platform through the extension point interface.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11061696B2Extension points for web-based applications and services
Publication Date: 2021.07.13 SERVICENOW INC
  • US11061696B2 patent drawing
  • US11061696B2 patent drawing
  • US11061696B2 patent drawing

AI summary

A web-based application is executable on one or more computing devices, where execution of the web-based application involves invocation of at least one extension point. The one or more computing devices are configured to: (i) receive, by the web-based application and from a client device, a request for web-based content; (ii) receive, by an extension point service, a call to a particular extension point, where the particular extension point is related to the web-based content, (iii) request and receive, by the extension point service and in communication with a database, one or more implementations corresponding to the particular extension point, and (iv) transmit, by the extension point service and in response to the call to the particular extension point, one or more user-defined plugin scripts included in the one or more implementations, output from which is incorporated in the web-based content as displayed by the client device.