API Gateway Connection Pooling for Dynamic Resource Adaptability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In on-demand computing environments, maintaining state information for customer applications is challenging due to the dynamic provisioning of computing resources, leading to frequent loss of application state and the need for costly and time-consuming database reconnections.

Innovation Solution

An API gateway service that manages application programming interfaces (APIs) by facilitating connection pooling, caching, and secure session management, allowing for efficient reuse of active connections and cached results across invocations, thereby reducing the overhead of database reconnections and improving performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If connection pooling is implemented within the application, then database connection efficiency is improved, but the ability to make use of dynamically provisioned computing resources is interfered with

Engineering Contradiction:
Improvedatabase connection efficiencyVSAvoiddynamic computing resource utilization
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent introduces an intermediary connection pooling service that operates between the application and the database. This service manages connection pooling at a system level rather than within the application itself, allowing dynamic computing resources to access the pooled database connections efficiently. The intermediary service maintains the connection pool and handles connection allocation, enabling both connection efficiency and adaptability to dynamic environments.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If database connections are reestablished for each function invocation, then adaptability to dynamic computing environments is maintained, but connection cost and time consumption increase

Engineering Contradiction:
Improvedynamic computing environment compatibilityVSAvoidconnection establishment time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by pre-establishing and maintaining a pool of database connections before they are needed. The connection pooling service keeps connections in a ready state, so when a function is invoked in a dynamically provisioned environment, an available connection can be immediately allocated without requiring time-consuming connection establishment. This preliminary preparation of connection resources resolves the contradiction between adaptability and connection time.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If state information is maintained within the application, then application functionality is improved, but the complexity of managing state in dynamic environments increases

Engineering Contradiction:
Improveapplication state maintenanceVSAvoidstate management complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent employs an intermediary state management service that handles state information maintenance separately from the application logic. This service manages connection pooling, caching, and state persistence at a system level, abstracting these complexities away from the application. The application simply interacts with the state service through standardized interfaces, maintaining ease of operation while reducing the complexity burden on the application code itself.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10476860B1Credential translation
Publication Date: 2019.11.12 AMAZON TECH INC
  • US10476860B1 patent drawing
  • US10476860B1 patent drawing
  • US10476860B1 patent drawing

AI summary

An API provides a frontend interface to one or more backend services. Access to an API is controlled by a set of frontend credentials, and access to the one or more backend services is controlled by a set of backend credentials. A credential-translation table maintained within the API links each backend credential to one or more frontend credentials. Links between frontend and backend credentials may be managed by an administrator of the API. The API uses the translation table to translate frontend credentials provided with an API call into backend credentials used to access backend services. The API provides users with the ability to update the backend credentials in the credential-translation table based at least in part on the frontend credentials provided by the user. The API may limit the ability to extract backend credentials to administrative users.