Quarantine API for Isolated Native Code Execution in JVM
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
Data Source
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.


