Monolithic Program Clustering for Distributed Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computer programs, often monolithic and decades-old, limit efficiency in distributed computing infrastructures like cloud or serverless environments due to their monolithic properties, requiring costly rewriting and struggling with understanding interdependencies.

Innovation Solution

A system that maps monolithic computer programs into clusters of functions by tracking memory objects, threads, and function calls, allowing these clusters to be executed in distributed environments with minimal context enforcement, avoiding unnecessary resource access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If monolithic computer programs are executed in distributed computing infrastructures, then execution efficiency is improved, but the monolithic properties of legacy programs prevent effective utilization of distributed environments

Engineering Contradiction:
Improveexecution efficiencyVSAvoidadaptability to distributed infrastructure
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The system automatically segments monolithic computer programs into functional clusters by analyzing interdependencies between functions, data structures, and control flow. This segmentation enables distributed execution of independent function clusters across multiple computing nodes while maintaining program correctness, thereby resolving the contradiction between execution efficiency and adaptability to distributed infrastructure.

Inventive Principle:
Principle #1Segmentation

2Productivity

If legacy programs are rewritten to take advantage of distributed infrastructure, then efficiency is improved, but time and capital costs increase significantly

Engineering Contradiction:
Improveexecution efficiencyVSAvoidrewriting time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs automatic program analysis and transformation without requiring manual rewriting by developers. The automated interdependency analysis and functional clustering processes enable the system to self-service the transformation of legacy monolithic programs into distributed-execution-ready formats, significantly reducing both time and capital costs while maintaining execution efficiency improvements.

Inventive Principle:
Principle #25Self-service

3Adaptability or versatility

If functions are separated into clusters for distributed execution, then scalability is improved, but understanding interdependencies within programs becomes more difficult

Engineering Contradiction:
ImprovescalabilityVSAvoidinterdependency analysis difficulty
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The system employs automated interdependency analysis that tracks data flows, control flows, and resource sharings between functions to identify clustering opportunities. This feedback-driven approach systematically reveals interdependencies rather than obscuring them, enabling both improved scalability through functional clustering and maintained understandability through automated analysis tools that visualize and document the dependency relationships.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11635948B2Systems and methods for mapping software applications interdependencies
Publication Date: 2023.04.25 VFUNCTION INC
  • US11635948B2 patent drawing
  • US11635948B2 patent drawing
  • US11635948B2 patent drawing

AI summary

Systems and methods method for mapping between function calls and entities of the computer program. The method includes executing a computer program in a first computing environment; determining a first entity of the computer program to track; assigning an identifier to the first entity; determining the first entity has been accessed by at least one function call; and mapping the at least one function call with the identifier of the first entity; generating a cluster including the at least one function, wherein the cluster may be executed independently from the rest of the computer program.