HTTP Proxy Gateway for Microservice Routing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Microservices architectures face challenges in flexibility and complexity when providing access via HTTP requests, as users are not notified of changes to the suite of microservices, and each microservice must implement authentication and authorization functionality, increasing development and maintenance complexity.

Innovation Solution

A method for proxying HTTP requests to upstream services based on the HTTP method and headers in incoming requests, allowing providers to add or remove microservices without user notification, and enabling individual scaling of services without exposing them directly to users.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If a monolithic application is used to encapsulate service components, then the application structure is simple and easy to manage, but scaling individual service components becomes complicated and requires rebuilding the entire application

Engineering Contradiction:
Improveease of managing application structureVSAvoidscalability of individual service components
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The patent divides the monolithic application into separate microservices that can be independently scaled and deployed. Each service component is extracted as an independent unit that can be managed separately, allowing selective scaling without affecting the entire application structure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a service discovery mechanism and service registry that act as intermediaries between clients and microservices. This intermediary layer enables clients to dynamically discover and invoke services without knowing their physical locations, facilitating flexible scaling and deployment of individual components.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If individual microservices are identified and exposed to users, then flexibility to modify the suite of microservices is improved, but users are disturbed by changes and must be notified of modifications

Engineering Contradiction:
Improveflexibility to modify microservicesVSAvoiduser experience regarding service changes
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent introduces an intermediary layer between users and microservices that handles service discovery and routing. This intermediary absorbs the complexity of service changes and presents a stable interface to users, allowing providers to modify microservices without disturbing users.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements dynamic service discovery where the service registry automatically updates when microservices are added or modified. The system dynamically adapts to changes in the microservice suite while maintaining consistent user interactions, eliminating the need for user notifications.

Inventive Principle:
Principle #15Dynamics

3Reliability

If each microservice implements authentication and authorization functionality, then security is improved, but development and maintenance complexity increases

Engineering Contradiction:
Improvesecurity of microservicesVSAvoidcomplexity of developing and maintaining microservices
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges authentication and authorization functionality into a centralized service that is shared across all microservices. Instead of each microservice implementing its own security logic, the system combines security functions into a single reusable service that reduces overall complexity.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent creates a universal authentication and authorization service that serves multiple microservices. This multi-functional service handles security operations for the entire microservice ecosystem, eliminating redundant security implementations and simplifying maintenance.

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

4Stability of the object's composition

If the entire monolithic application is rebuilt when minor changes are needed, then consistency across service components is maintained, but productivity of development is reduced

Engineering Contradiction:
Improveconsistency of service componentsVSAvoiddevelopment speed
Core Design Contradiction:
Stability of the object's compositionVSProductivity

Solution Approach 1:

The patent segments the application into independent microservices that can be modified and deployed separately. This segmentation allows developers to make minor changes to individual services without triggering a complete rebuild, significantly improving development productivity while maintaining system consistency through the service registry.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11792291B1Proxying hypertext transfer protocol (HTTP) requests for microservices
Publication Date: 2023.10.17 CISCO TECHNOLOGY INC
  • US11792291B1 patent drawing
  • US11792291B1 patent drawing
  • US11792291B1 patent drawing

AI summary

In various embodiments, a gateway application generates an outgoing Hypertext Transmission Protocol (HTTP) request based on an incoming HTTP request. In operation, the gateway application receives the incoming HTTP request and identifies an upstream service based on at least one of an HTTP method and a header included in the incoming HTTP request. Subsequently, the gateway application generates an outgoing HTTP request based on the upstream service and the incoming HTTP request. Finally, the gateway application issues the outgoing HTTP request. The outgoing HTTP request causes the upstream service to perform an action requested in the incoming HTTP request. Advantageously, the gateway application enables underlying upstream services to perform actions specified via incoming HTTP requests without directly exposing the upstream services to users.