Automated Application Porting via Semantic Code Separation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for porting software applications to new architectures or platforms often result in non-conforming semantics, leading to potential breaks in functionality and reliability issues, particularly when migrating from one software architecture to another, such as from client-server to web-based systems, due to the lack of effective semantic preservation during the porting process.

Innovation Solution

The approach involves automated code transformations that separate code into components corresponding to a target architecture while ensuring semantic equivalence, using abstract syntax trees and transformational rules to generate output code that preserves the original application's behavior, and employing code separation techniques to identify and map components correctly across different architectures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a full rewrite is performed to port an application to a new architecture or platform, then the application can be migrated to the new architecture, but the semantics of the rewritten code may not conform to the original application behavior

Engineering Contradiction:
Improveapplication portabilityVSAvoidsemantics preservation
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent creates a virtual copy of the original application's abstract syntax tree and transformation rules to generate the ported application. This virtual copying mechanism allows the new architecture to be built by transforming the original code structure rather than rewriting it, thereby preserving semantics while achieving portability.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent introduces an intermediary transformation layer that acts as a mediator between the original application code and the target architecture. This intermediary layer, represented by the transformation rules and abstract syntax tree, translates and adapts the original code to the new architecture while maintaining semantic equivalence.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If code refactoring is performed during porting, then the application can be adapted to new architecture, but the functionality may change and cause breaking changes in interfacing applications

Engineering Contradiction:
Improvearchitecture adaptabilityVSAvoidfunctionality conformity
Core Design Contradiction:
Adaptability or versatilityVSManufacturing precision

Solution Approach 1:

The patent segments the application code into distinct components represented by the abstract syntax tree nodes. This segmentation allows selective transformation of specific code portions while maintaining the integrity of other parts, ensuring that functionality is preserved in the transformed segments while achieving architectural adaptability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes parameters such as programming language, platform-specific APIs, and architectural patterns while maintaining the underlying semantic structure. By transforming parameters at the syntax level rather than altering the semantic logic, the patent achieves architecture adaptability without changing functionality.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If automated code transformation is used for porting, then the porting process can be streamlined, but semantic equivalence cannot be guaranteed

Engineering Contradiction:
Improveporting efficiencyVSAvoidsemantic equivalence
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent incorporates feedback mechanisms that validate the transformed code against the original abstract syntax tree. This feedback loop ensures that the automated transformation process maintains semantic equivalence by continuously comparing the original and transformed code structures and correcting deviations.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent performs preliminary analysis of the original application code to build the abstract syntax tree and transformation rules before actual code generation. This preliminary action ensures that all semantic relationships are captured and encoded in the transformation rules, guaranteeing semantic equivalence in the automated porting process.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9459862B2Automated porting of application to mobile infrastructures
Publication Date: 2016.10.04 SNOWFLAKE INC
  • US9459862B2 patent drawing
  • US9459862B2 patent drawing
  • US9459862B2 patent drawing

AI summary

Techniques to automatically port applications to a mobile infrastructure using code separation with semantic guarantees are disclosed. Porting enterprise applications from to a target architecture another is effected via separating code into constituent layers of the target architecture. To preserve semantics, code transformations are enforced via an abstract syntax tree structure. The generated code may have various code wrappers and/or infrastructure elements so the ported application will operate in the target architecture. Various techniques are disclosed regarding specific code wrappers and/or infrastructure elements to address operating issues including, but not limited to, architectural issues, network latency, framework changes, regulatory issues.