Virtualization Layer for Java Resource Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current virtual machine environments lack effective hardware virtualization and resource management, limiting the ability to efficiently allocate processing power and resources across multiple Java Virtual Machines (JVMs) on lower-cost PC-based servers, which hinders the deployment of high-performance Java applications.
Innovation Solution
A system and method that introduces a software layer between the virtual machine and hardware to provide hardware virtualization and resource management, comprising a lower-level execution environment replacing the operating system and a higher-level resource broker to allocate and monitor resources, allowing for machine-independent processing allocation and supporting multiple JVMs on a single physical machine.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a software layer is introduced between the virtual machine and hardware to provide hardware virtualization and resource management, then resource allocation efficiency and server utilization are improved, but system complexity increases
Solution Approach 1:
The patent introduces a virtualization layer as an intermediary component between the hardware and the Java Virtual Machines. This layer includes virtual device drivers and resource management modules that mediate resource allocation, providing hardware virtualization capabilities without requiring changes to the existing JVM or application code. The intermediary layer abstracts hardware resources and presents virtualized interfaces, thereby improving resource allocation efficiency while managing system complexity through modular design.
2Adaptability or versatility
If hardware virtualization is implemented to support multiple JVMs on PC-based servers, then cost-effectiveness and platform versatility are improved, but performance and reliability may deteriorate
Solution Approach 1:
The patent implements local quality by providing hardware-specific virtual device drivers tailored to each type of physical hardware resource (CPU, memory, I/O devices). These drivers are optimized for their specific hardware targets while maintaining a unified virtualization interface. This approach allows the system to support multiple JVMs across different PC-based server platforms with varying hardware configurations, achieving platform versatility while maintaining performance reliability through hardware-optimized driver implementations.
3Ease of operation
If resource management is centralized at the virtual machine level, then resource allocation control is improved, but system overhead and processing time increase
Solution Approach 1:
The patent implements preliminary action by pre-configuring resource allocation parameters and virtual device driver settings during system initialization and JVM startup. Resource management policies, including CPU time slices, memory allocation limits, and I/O priorities, are established in advance rather than being determined dynamically during runtime. This approach provides centralized resource allocation control while minimizing processing time overhead during actual JVM execution, as the virtualization layer can directly apply pre-determined resource allocation decisions without extensive runtime computation.
Data Source
Figure 1~2
Figure 3~4
Figure 5~6
AI summary
A system and method for providing hardware virtualization and resource management in a virtual machine environment. In accordance with an embodiment, an application server environment includes a computer system, application server, and virtual machine (for example, a Java Virtual Machine or JVM). In accordance with an embodiment, a virtualization layer is provided at each physical machine, including a hypervisor for partitioning virtual machines over the machine. An execution layer runs a single Java-based application, focusing on running that application as efficiently as possible. In accordance with another embodiment, the system comprises two main components: a lower-level, execution environment that replaces the usual operating system; and a higher-level, resource broker that is responsible for handing out new virtual machines to the above layers, and for monitoring the current resource usage of the running virtual machines.