Pre-starting Services via Directed Graph Traversal in Serverless Java
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Loss of time
If services are pre-started before needed, then start-up delays are reduced, but system resource consumption increases
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.
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.
3Productivity
If Java services are optimized for long-running applications, then application performance is improved, but adaptability to serverless computing environments deteriorates
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.
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.
Data Source
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.


