Function Execution Environment Selection for Decomposed Applications

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Decomposing software applications into functions for computing environments like PaaS and FaaS is time-consuming and costly, and developers lack the ability to efficiently select optimal execution environments for these functions, leading to suboptimal resource utilization and increased costs.

Innovation Solution

The introduction of environment selection information into code markers allows developers to specify the execution environment for functions, enabling a controller to determine the best environment based on resource needs and budget, automatically routing function invocations to optimize performance and cost.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If application decomposition is performed manually into functions for PaaS/FaaS environments, then the application can be executed in cloud computing services, but the decomposition process becomes very time-consuming and labor-intensive

Engineering Contradiction:
Improvecloud computing service execution capabilityVSAvoiddecomposition time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system performs preliminary analysis of the monolithic application code to automatically identify candidate functions for decomposition before actual decomposition occurs. This preliminary action includes analyzing code structure, identifying function boundaries, and preparing decomposition plans, which significantly reduces the time required for manual decomposition while maintaining adaptability to cloud computing services.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If application decomposition is performed manually into functions, then the application can be executed in cloud computing services, but the decomposition process becomes costly

Engineering Contradiction:
Improvecloud computing service execution capabilityVSAvoiddecomposition cost
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

Solution Approach 1:

The system enables self-service automated decomposition by analyzing application code and automatically generating decomposition configurations for cloud computing services. This eliminates the need for expensive manual decomposition processes while maintaining the ability to execute applications in PaaS/FaaS environments, thereby reducing decomposition costs significantly.

Inventive Principle:
Principle #25Self-service

3Ease of operation

If the PaaS or FaaS system automatically assigns execution environments for decomposed functions, then environment selection is simplified, but optimal resource utilization cannot be achieved

Engineering Contradiction:
Improveenvironment selection simplicityVSAvoidresource utilization efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system implements feedback mechanisms that monitor resource utilization, performance metrics, and cost data from executed functions. This feedback is used to continuously optimize environment selection decisions, allowing the system to learn from past executions and improve resource allocation. The feedback loop maintains ease of operation while significantly improving productivity and resource utilization efficiency.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system dynamically changes execution environment parameters based on function characteristics, resource availability, and performance requirements. By adjusting parameters such as compute resources, memory allocation, and environment type, the system achieves optimal resource utilization while maintaining simplified environment selection through automated decision-making.

Inventive Principle:
Principle #35Parameter changes

4Productivity

If developers want to specify optimal execution environments for each function, then resource utilization can be optimized, but the system complexity increases

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system introduces an intermediary automated environment selection service that sits between the decomposed functions and the PaaS/FaaS execution environments. This intermediary automatically matches functions to optimal execution environments based on function characteristics and resource requirements, achieving optimized resource utilization without increasing developer workload or system complexity. The intermediary handles the complexity internally while presenting a simple interface to developers.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11748162B2Function execution environment selection for decomposed application
Publication Date: 2023.09.05 EMC IP HLDG CO LLC
  • US11748162B2 patent drawing
  • US11748162B2 patent drawing
  • US11748162B2 patent drawing

AI summary

Techniques for function execution environment selection for a decomposed application are provided. In one example, an apparatus comprises at least one processing platform configured to execute a portion of an application program in a first virtual computing element, wherein the application program comprises one or more portions of marked code, receive a request for execution of one of the one or more portions of marked code, decide whether to execute the portion of marked code identified in the request in the first virtual computing element or in a second virtual computing element, determine an execution environment from one or more execution environments specified in the marked code for the second virtual computing element to execute the marked code, when it is decided to execute the portion of the marked code in the second virtual computing element, and cause the portion of marked code identified in the request to be executed.