Dynamic Shared Memory for Secure Application Data Exchange

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for data communication between software applications from different sources, such as device drivers and operating systems, face inefficiencies due to static memory allocation and resource-intensive direct data transmission, particularly when dealing with untrusted applications like third-party device drivers.

Innovation Solution

Implementing a dynamic shared memory system with metadata and signal registers allows for efficient data communication by configuring the data region's size and access based on the applications' needs, using key-value pairs for metadata and interrupt handling for synchronized data transfer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a static shared storage space is allocated for data communication between applications, then security is improved by limiting access, but memory efficiency deteriorates when data volume exceeds the allocated space

Engineering Contradiction:
ImprovesecurityVSAvoidmemory efficiency
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent implements a dynamic shared storage space where the memory allocation is not fixed but can be adjusted based on actual communication needs. The system allows the shared storage space to expand or contract dynamically, enabling it to accommodate varying data volumes while maintaining security boundaries between applications.

Inventive Principle:
Principle #15Dynamics

2Speed

If direct data transmission is used between applications, then communication speed is improved, but resource consumption and algorithm complexity increase

Engineering Contradiction:
Improvecommunication speedVSAvoidresource consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The patent introduces a shared storage space as an intermediary mechanism between applications for data communication. Instead of direct application-to-application transmission, data is written to and read from the shared storage space, which acts as a buffer. This approach maintains efficient communication while reducing the computational complexity and resource consumption associated with direct transmission protocols.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10860397B1Communication of data between software applications
Publication Date: 2020.12.08 AMAZON TECH INC
  • US10860397B1 patent drawing
  • US10860397B1 patent drawing
  • US10860397B1 patent drawing

AI summary

A computer system has a memory configured for sharing data between a first application and a second application. The memory includes a metadata region and a data region. The metadata region includes metadata that indicates how data being communicated between the first application and the second application is to be interpreted. The metadata also indicates whether the data can be found in the metadata itself or in a particular location in the data region. Each application can be assigned its own memory location containing a flag that can be set in order to indicate to the other application that the memory is ready to be accessed by the other application. The memory location can be implemented using a hardware register or in memory, either the same memory that includes the metadata and data regions or on a separate memory.