Pre-starting Services via Directed Graph Traversal in Serverless Java

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Java Enterprise Edition (JEE) is not well-suited for serverless computing environments due to its optimization for long-running applications, resulting in inefficiencies when frequently starting and stopping applications, which has led to low adoption in serverless computing models like WebSphere Application Server.

Innovation Solution

A method using a directed graph to map service calls and events, associating traversal probabilities and pre-start times to pre-start services before they are needed, optimizing the process flow and reducing start-up delays by applying decision logic based on real-time data and learning from application execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Use of energy by moving object

If Java Enterprise Edition (JEE) applications are frequently started and stopped in serverless computing environments, then the services can be provided on demand rather than continuously, but the time penalty for application start-up reduces efficiency

Engineering Contradiction:
Improveenergy efficiencyVSAvoidapplication start-up time
Core Design Contradiction:
Use of energy by moving objectVSLoss of time

Solution Approach 1:

The patent pre-activates services before they are actually needed by analyzing the directed graph of service dependencies and predicting which services will be required. This preliminary action allows services to be started in advance during low-utilization periods, so when events occur and services are needed, they are already active and ready to process requests immediately, eliminating the start-up time penalty.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system continuously monitors service utilization patterns and event triggers, using this feedback to dynamically adjust which services should be pre-activated. By analyzing historical data and real-time metrics, the system learns which services are likely to be needed and optimizes pre-activation decisions, improving efficiency over time while minimizing unnecessary service running.

Inventive Principle:
Principle #23Feedback

2Loss of time

If services are pre-started before needed, then start-up delays are reduced, but system resource consumption increases

Engineering Contradiction:
Improveservice start-up delayVSAvoidsystem resource consumption
Core Design Contradiction:
Loss of timeVSUse of energy by moving object

Solution Approach 1:

Services are pre-activated in advance based on predicted demand patterns derived from the directed graph analysis. By performing this action preliminarily during periods of low system utilization, the system ensures services are ready when needed without requiring continuous operation of all services, thus reducing start-up delays while controlling resource consumption.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system applies partial pre-activation by selectively activating only those services that are predicted to be needed based on event patterns and dependency analysis, rather than activating all services. This partial action approach reduces resource consumption compared to full pre-activation while still achieving the benefit of reduced start-up delays for the specific services that are pre-started.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If Java services are optimized for long-running applications, then application performance is improved, but adaptability to serverless computing environments deteriorates

Engineering Contradiction:
Improveapplication performanceVSAvoidadaptability to serverless environment
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The system dynamically adjusts service activation states based on real-time demand signals and predicted event patterns. Rather than maintaining a static long-running or completely stopped state, services transition dynamically between inactive and active states based on the directed graph analysis and current system conditions, allowing Java services to adapt to the serverless environment while maintaining performance when active.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the operational parameters of Java services by pre-adjusting configuration settings and resource allocation before services are activated. By preparing services with optimized parameters in advance based on the specific event patterns they are expected to handle, the system maintains high performance while enabling frequent start-stop cycles suitable for serverless computing.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10887202B2Pre-starting services based on traversal of a directed graph during execution of an application
Publication Date: 2021.01.05 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10887202B2 patent drawing
  • US10887202B2 patent drawing
  • US10887202B2 patent drawing

AI summary

A method and system for which a service call is referred to as an event and processing the service call is referred to as an action. Traversal of a directed graph is monitored for an application during execution of the application. Traversal probabilities for events in the directed graph which may still occur during the execution of the application are continually revised. Decision logic is applied during the execution of the application to decide whether to pre-start one service in the directed graph that may still be called prior to an event in the directed graph calling the one service. The one service decided upon by the decision logic is pre-started.