Application Partitioning via Source Code Logic Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional application partitioning technologies face challenges in maximizing application performance as they treat functions defined by developers as single logics, leading to suboptimal performance and increased development burdens due to the need for developers to consider various performance indexes during development.

Innovation Solution

An application partitioning apparatus and method that acquires source code, identifies functions, determines if they can be further partitioned based on predefined rules, and allocates these functions to multiple information processing apparatuses for optimal distributed arrangement, allowing for further partitioning of functions into multiple logics without relying on developer-defined function forms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a function defined by a developer is treated as a single logic in conventional partitioning methods, then the partitioning process is simpler, but application performance cannot be maximized because the function may not have an optimal form for distributed execution

Engineering Contradiction:
Improveapplication performanceVSAvoidpartitioning complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent automatically segments a developer-defined function into multiple finer-grained logics by analyzing the source code and identifying independent processing units. This segmentation enables optimal distributed arrangement across multiple machines, maximizing application performance without requiring developers to manually partition functions.

Inventive Principle:
Principle #1Segmentation

2Productivity

If developers are requested to make functions have optimal forms for maximizing application performance, then application performance can be improved, but the development burden increases as developers must pay attention to various performance indexes

Engineering Contradiction:
Improveapplication performanceVSAvoiddevelopment ease
Core Design Contradiction:
ProductivityVSEase of manufacture

Solution Approach 1:

The patent implements a self-service mechanism where the automatic partitioning system analyzes the developer's source code, identifies functions, and automatically determines optimal partitioning and distributed arrangement. This eliminates the need for developers to manually optimize function forms for performance, reducing development burden while achieving optimal application performance.

Inventive Principle:
Principle #25Self-service

3Productivity

If a function is further partitioned into multiple logics based on source code analysis, then optimal distributed arrangement can be achieved, but the partitioning process becomes more complex

Engineering Contradiction:
Improvedistributed arrangement optimizationVSAvoidpartitioning process complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent replaces manual mechanical partitioning processes with automated computer-based analysis. The system uses source code parsing, dependency graph construction, and algorithmic optimization to automatically partition functions into logics and determine their optimal distributed arrangement, reducing human effort and complexity in the partitioning process.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS11269623B2Application division device, method and program
Publication Date: 2022.03.08 NIPPON TELEGRAPH & TELEPHONE CORP
  • US11269623B2 patent drawing
  • US11269623B2 patent drawing
  • US11269623B2 patent drawing

AI summary

A function defined in source code of an application is further partitioned into a plurality of logics without depending on function definition performed by a developer. An application partitioning apparatus (1) for partitioning an application distributively processed by a plurality of information processing apparatuses into a plurality of logics includes an acquisition unit (121) which acquires source code of the application, a first partitioning unit (122) which identifies a plurality of functions defined in the source code and partitioning the source code into the plurality of functions, a determination unit (123) which determines whether each of the partitioned functions can be further partitioned according to rules set in advance, and a second partitioning unit (124) which, when it is determined that each of the partitioned function can be partitioned, partitions the function into a plurality of functions including one or a plurality of rows.