Proxy-Based Bytecode Generation for Cloud Application Deployment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Generating intermediate representations, such as Java bytecode, at runtime is complex and difficult for developers to implement, requiring extensive knowledge of JVM internals and making it challenging to integrate and optimize application deployment in cloud environments.

Innovation Solution

The system uses proxy-based action recorders to record invocations on real objects and generate bytecode at build time, allowing for pre-generation of bytecode that can be executed at runtime, reducing the need for direct bytecode generation and optimizing resource usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If bytecode is generated at runtime using traditional methods, then application functionality is complete, but implementation complexity is high and requires extensive JVM internals knowledge

Engineering Contradiction:
Improveease of bytecode generationVSAvoidbytecode generation complexity
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary bytecode generation system that sits between the application code and the JVM. This intermediary automatically generates and manages bytecode without requiring developers to have deep JVM internals knowledge, thus reducing implementation complexity while maintaining functionality.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system enables self-service bytecode generation where the bytecode management system automatically handles generation, optimization, and execution without manual intervention. This eliminates the need for developers to manually craft or deeply understand bytecode, simplifying the manufacturing process.

Inventive Principle:
Principle #25Self-service

2Productivity

If traditional runtime bytecode generation is used, then application functionality is maintained, but resource usage increases and startup time is delayed

Engineering Contradiction:
Improveapplication startup speedVSAvoidruntime memory usage
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent implements preliminary bytecode generation and caching mechanisms that prepare bytecode before runtime execution. By pre-generating and caching bytecode, the system reduces runtime memory usage and accelerates startup times, as the bytecode is already available when the application needs to start.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically changes bytecode parameters and optimization levels based on runtime conditions. This allows the bytecode to be generated with appropriate memory and performance characteristics, reducing overall resource usage while maintaining functionality.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11789762B2Application deployment using reduced overhead bytecode
Publication Date: 2023.10.17 RED HAT LLC
  • US11789762B2 patent drawing
  • US11789762B2 patent drawing
  • US11789762B2 patent drawing

AI summary

A system includes a memory, a processor in communication with the memory, and a recorder. The recorder is configured to obtain a proxy for each respective real object. Each respective real object is related to a respective service. The recorder is also configured to record a sequence of each invocation on each respective proxy and generate an intermediate representation of an application that is configured to invoke the sequence of each invocation on each real object associated with each respective proxy.