Quarantine API for Isolated Native Code Execution in JVM

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing Java Virtual Machines are limited in executing multiple copies of native code due to resource sharing and process restrictions, preventing simultaneous execution of legacy code instances, especially in distributed environments where native code is restricted to a single process.

Innovation Solution

A Quarantine API is introduced, allowing multiple copies of native code to run in separate processes by providing a class that dispatches operations and manages instances, enabling each copy to have exclusive resource access through remote execution containers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If native code is restricted to running in a single process to maintain stability and resource management, then system reliability is improved, but the ability to execute multiple copies of the same native code is lost

Engineering Contradiction:
Improvesystem stabilityVSAvoidmultiple code execution capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent segments the execution environment by creating separate remote execution containers for each native code instance. Each container operates in isolation with its own process space, allowing multiple copies of the same native code to execute simultaneously without interfering with each other or the host JVM, thus resolving the contradiction between system stability and multiple execution capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a remote execution container as an intermediary layer between the Java Virtual Machine and the native code. This container acts as a mediator that enables native code execution in isolated processes while maintaining controlled communication with the JVM, allowing multiple code copies to run without compromising system reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If multiple copies of native code are executed in the same process to improve resource utilization, then productivity is improved, but resource conflicts and instability occur

Engineering Contradiction:
Improveexecution efficiencyVSAvoidsystem stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent divides the execution environment into separate remote execution containers, each hosting its own process. This segmentation allows multiple native code copies to execute in parallel without sharing process resources, eliminating conflicts while maintaining high productivity through concurrent execution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from a single-dimension execution model (one process) to a multi-dimensional model by introducing remote execution containers as an additional layer. This dimensional change enables simultaneous execution of multiple code copies in isolated spaces while maintaining system stability through controlled inter-container communication.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Reliability

If separate processes are used for each native code copy to eliminate resource conflicts, then system reliability is improved, but process management complexity increases

Engineering Contradiction:
Improveexecution isolationVSAvoidprocess management overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent creates a universal remote execution container framework that can host multiple native code copies with identical execution models. This universal approach simplifies management by providing consistent interfaces and standardized processes for creating, monitoring, and controlling all code instances, reducing overall complexity despite running multiple processes.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The remote execution containers are designed to be self-managing units that handle their own execution contexts, resource allocation, and isolation. This self-service capability reduces the burden on external process management mechanisms, allowing multiple isolated processes to run without proportionally increasing management complexity.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8813051B2Running multiple copies of native code in a Java Virtual Machine
Publication Date: 2014.08.19 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8813051B2 patent drawing
  • US8813051B2 patent drawing
  • US8813051B2 patent drawing

AI summary

A method for running multiple copies of the same native code in a Java Virtual Machine is described. In one embodiment, such a method includes providing a class to enable segregating multiple copies of the same native code. The method defines, within the class, a native method configured to dispatch operation of the native code. The method further includes generating first and second instances of the class. Calling the native method in the first instance causes a first copy of the native code to run in a first remote execution container (e.g., a first process). Similarly, calling the native method in the second instance causes a second copy of the native code to run in a second remote execution container (e.g., a second process) separate from the first remote execution container. A corresponding computer program product is also disclosed.