Shared Memory Remote Procedure Call for Virtual Machine Communication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems face performance bottlenecks due to local TCP/IP connections when running multiple virtual machines, particularly in resource-constrained platforms like mobile devices, which restrict data flow and reduce overall system performance.

Innovation Solution

Implementing a method and system that allows multiple virtual machines to run in a single process using a remote procedure call (RPC) mechanism, where applications share memory to communicate, and an application emulator maps user inputs and outputs between a general-purpose computer and a resource-constrained platform, enabling efficient communication and emulation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If local TCP/IP connections are used for communication between virtual machines, then system isolation and security are maintained, but data flow is restricted and system performance deteriorates

Engineering Contradiction:
Improvesystem isolationVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent introduces a shared memory region as an intermediary communication channel between virtual machines. Instead of using traditional TCP/IP network connections, the system allocates a shared memory space that multiple virtual machines can access directly, enabling high-speed data exchange while maintaining logical isolation through memory management structures and access control mechanisms.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent merges the communication infrastructure by allowing multiple virtual machines to share a common memory space within a single process. This consolidation eliminates the need for separate network stacks and communication protocols for each virtual machine, reducing overhead and improving inter-VM communication efficiency while maintaining system isolation through virtualization mechanisms.

Inventive Principle:
Principle #5Merging (Combining)

2Reliability

If multiple virtual machines run in separate processes, then system stability and isolation are improved, but communication efficiency and data flow deteriorate

Engineering Contradiction:
Improvesystem stabilityVSAvoidcommunication efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent combines multiple virtual machines into a single process address space, allowing them to share memory resources directly. This merging enables efficient inter-VM communication through shared memory regions while maintaining logical isolation and stability through virtualization management structures that control access to shared resources.

Inventive Principle:
Principle #5Merging (Combining)

3Adaptability or versatility

If application emulator maps user inputs and outputs between general-purpose computer and resource-constrained platform, then cross-platform operability is improved, but system complexity and configuration difficulty increase

Engineering Contradiction:
Improvecross-platform operabilityVSAvoidsystem configuration
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a universal application emulator that can execute applications designed for resource-constrained platforms on general-purpose computers. The emulator provides a standardized interface layer that handles input/output mapping between different platform types, allowing the same application to run across multiple platforms without modification while abstracting away platform-specific complexities.

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

Data Source

PatentUS7886304B1Method and system implementing efficient remote procedure call and emulation system therefor
Publication Date: 2011.02.08 ORACLE AMERICAN INC
  • US7886304B1 patent drawing
  • US7886304B1 patent drawing
  • US7886304B1 patent drawing

AI summary

A method of implementing in a general purpose computer system, a remote procedure call between an application and a target application is described. The target application is one of a plurality of second applications. The first application generates a first message, the first message having a message body and a thread ID of the target application. The first application writes the first message to a shared memory. The target application to polls the shared memory, and reads the first message from the shared memory. The target application generates a second message, the second message having a message body and a thread ID of the target application. The target application writes the second message to the shared memory. The first application polls the shared memory and reads the second message from the shared memory. The first message may be sent in response to the second message, vice versa, or asynchronously.