Recipe-Driven DDS Data Sample Interpreter

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing Data Distribution Service (DDS) systems face challenges in maintaining performance and code size while efficiently manipulating data samples, as they either suffer from large code generation and maintainability issues with functional data sample manipulation or performance inefficiencies with type-description-driven interpreted approaches.

Innovation Solution

The method involves generating recipes for bidirectional conversion between memory and network representations of data samples using TypeDescriptions and language binding information, allowing for optimized data sample manipulation that is independent of target language bindings and capable of handling different network representations and optimization levels.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If functional data sample manipulation is used, then performance is improved, but code size and maintainability deteriorate

Engineering Contradiction:
Improvedata sample manipulation performanceVSAvoidcode size and maintainability
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent segments the data sample manipulation process into two distinct phases: code generation phase (where type-specific functions are created) and execution phase (where pre-generated functions are called). This segmentation allows the system to achieve functional manipulation performance during execution while keeping the actual code generation logic separate and manageable, thus reducing maintainability burden.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies preliminary action by generating type-specific manipulation functions before the actual data sample processing occurs. The code generator creates optimized functions during a preliminary phase, and these pre-generated functions are then executed during runtime. This eliminates the need for complex runtime code generation, improving both performance and maintainability.

Inventive Principle:
Principle #10Preliminary action

2Device complexity

If type-description-driven interpreted data sample manipulation is used, then code size and maintainability are improved, but performance deteriorates

Engineering Contradiction:
Improvecode size and maintainabilityVSAvoiddata sample manipulation performance
Core Design Contradiction:
Device complexityVSSpeed

Solution Approach 1:

The patent generates type-specific manipulation functions during a preliminary code generation phase, then executes these pre-generated functions during runtime. This preliminary action eliminates the need for complex runtime interpretation, achieving both small code size and high performance by having optimized functions ready before execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses code generation to create copies of optimized manipulation functions for each data type. Instead of interpreting a generic type description at runtime, the system has pre-generated specific functions that mirror the optimal implementation for each type, thus achieving functional performance with maintained code simplicity.

Inventive Principle:
Principle #26Copying

3Reliability

If existing DDS systems use traditional data sample manipulation, then reliability is maintained, but execution time and communication latency increase

Engineering Contradiction:
Improvedata sample manipulation reliabilityVSAvoidexecution time and communication latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent generates optimized type-specific manipulation functions during a preliminary phase, then executes these pre-generated functions during runtime. This preliminary code generation eliminates runtime interpretation overhead, reducing execution time and communication latency while maintaining the reliability of type-safe data manipulation through generated functions that directly implement the type structure.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11157248B2Recipe-driven interpreter for data sample manipulation for DDS topic types
Publication Date: 2021.10.26 REAL TIME INNOVATIONS
  • US11157248B2 patent drawing
  • US11157248B2 patent drawing
  • US11157248B2 patent drawing

AI summary

A bidirectional conversion method is provided between a memory representation and a network representation of data samples associated with a DDS type in a system using an Object Management Group DDS and a Real-Time Publish Subscribe (RTPS) protocol that is more potent, maintainable, and with a smaller footprint. A first conversion recipe is generated using a type description and a language binding information that transforms any data sample associated with the type description from a first memory representation to a network representation, and this first conversion recipe is generated only once. A second conversion recipe is generated using a type description and language binding information that transforms any data sample associated with the type description from the network representation to a second memory representation, and this second conversion recipe is generated only once. Both generated first and second conversion recipes are then executed on all data samples.