Dynamic RESTful Endpoint Management via Modular Proxy

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for exposing RESTful endpoints, such as through EAR or WAR file uploads, pre-define endpoints at compilation time, limiting dynamic management and requiring server restarts or recompilation for changes.

Innovation Solution

A dynamic application server system with modular components like REST proxy, handler container, and helpers that allow for adding, removing, or modifying REST endpoints without restarting or recompiling, using heuristic matching and modular frameworks like OSGi to manage and route requests dynamically.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If RESTful endpoints are pre-defined during code compilation through static applications, then the system structure is simple and stable, but the system lacks dynamic management capability and requires server restarts or recompilation for changes

Engineering Contradiction:
Improvedynamic management capabilityVSAvoidsystem structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system is divided into modular components including a proxy component, handler container, and helper components. Each module can be independently deployed, managed, and updated without affecting the entire system, enabling dynamic endpoint management while maintaining overall system stability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic configuration where RESTful endpoints can be added, removed, or modified at runtime without recompilation or server restart. The handler container dynamically loads and manages helper components based on incoming requests, allowing the system to adapt to changing requirements in real-time.

Inventive Principle:
Principle #15Dynamics

2Productivity

If endpoints are modified by stopping and restarting the application server, then system stability is maintained, but productivity and response time deteriorate

Engineering Contradiction:
Improveendpoint modification speedVSAvoidservice availability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system enables hot-swapping of endpoint configurations and helper components without server restart. The modular architecture allows individual components to be updated, added, or removed while the application server continues to operate, maintaining service availability while improving deployment productivity.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The proxy component acts as an intermediary between clients and the handler container. It manages the dynamic routing and component selection, allowing configuration changes to be applied without interrupting the core service functionality, thus maintaining reliability during modifications.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If static applications are used to expose RESTful endpoints, then ease of manufacture is improved, but adaptability and dynamic management capability deteriorate

Engineering Contradiction:
Improveendpoint flexibilityVSAvoiddeployment complexity
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The system separates endpoint management into discrete, deployable modules. Each helper component can be independently developed, tested, and deployed as a separate unit, making the system more adaptable while maintaining manageable deployment complexity through standardized module interfaces.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The handler container provides universal functionality by dynamically selecting and coordinating multiple helper components to handle different types of RESTful requests. This multi-functional approach increases adaptability while keeping the core infrastructure simple and easy to deploy.

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

4Adaptability or versatility

If resource information is not reused across multiple routers, then system complexity is reduced, but adaptability and resource efficiency deteriorate

Engineering Contradiction:
Improveresource sharing capabilityVSAvoidrouting management
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The handler container serves as a universal resource that can be shared across multiple proxy components and routing paths. Resource information and helper components are centralized and can be reused by different routers, increasing adaptability while the container manages the complexity of coordinating these shared resources.

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

Solution Approach 2:

Instead of duplicating resource information across multiple routers, the system creates references or copies of helper component handles that point to the same underlying resources. This allows multiple routers to access and reuse the same resource information without actually duplicating it, enhancing adaptability while minimizing complexity.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9893936B2Dynamic management of restful endpoints
Publication Date: 2018.02.13 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9893936B2 patent drawing
  • US9893936B2 patent drawing
  • US9893936B2 patent drawing

AI summary

Embodiments of the present invention disclose methods, systems, and program products for dynamically managing RESTful endpoints. In one embodiment, an application server provides dynamic management of RESTful endpoint, including the ability to re-use the same resource information for multiple endpoints across multiple routers, allowing for applications aliases or sharing routing capability between applications. Yet other embodiments of the present invention can provide a high availability application server system and/or failover support for routers and resources, as well as the ability to remotely add new containers and resources to the application server.