Remote Procedure Call Marshaling for Automatic Test Equipment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing automatic test equipment (ATE) systems face challenges in implementing remote procedure calls (RPCs) for testing electronic devices, particularly when using programming languages that do not support type introspection, requiring cumbersome source code generation and manual intervention.

Innovation Solution

A system is developed that enables RPCs between client and server devices using a marshaling convention, allowing parameter data collection, code location, execution, and output handling without requiring type introspection, utilizing complementary software modules on both devices to automate the RPC process, even when the programming languages do not support type introspection.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If type introspection is used to enable remote procedure calls, then ease of operation is improved, but device complexity increases due to additional framework requirements

Engineering Contradiction:
Improveease of implementing RPCsVSAvoidcomplexity of programming language framework
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent introduces a marshaling convention as an intermediary mechanism between the client and server. This convention handles the complex tasks of parameter data collection, type information extraction, code location, and data type conversion without requiring the programming language itself to support type introspection. The marshaling convention acts as a mediator that bridges the gap between simple language syntax and complex RPC requirements.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If source code generation is used to support RPCs in languages without type introspection, then adaptability is improved, but loss of time increases due to manual intervention requirements

Engineering Contradiction:
Improveadaptability to different programming languagesVSAvoidtime for manual source code generation
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent implements self-service through automated parameter data collection and marshaling. The system automatically extracts type information from function signatures, collects parameter data, determines data types, and generates the necessary marshaling code without requiring manual intervention. The client and server devices autonomously handle the complex RPC setup process, eliminating the need for manual source code generation while maintaining adaptability across different programming languages.

Inventive Principle:
Principle #25Self-service

3Device complexity

If manual intervention is required for RPC implementation, then device complexity is reduced, but productivity decreases due to manual setup requirements

Engineering Contradiction:
Improvesimplicity of system architectureVSAvoidspeed of RPC implementation
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent performs preliminary actions by pre-defining the marshaling convention and preparing the infrastructure for automated RPC handling. The client and server devices are equipped with the necessary components to automatically collect parameter data, extract type information, and generate marshaling code before actual RPC calls are made. This preliminary setup enables rapid, automated RPC implementation without requiring manual intervention during operation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8701130B2Implementing remote procedure calls
Publication Date: 2014.04.15 TERADYNE INC
  • US8701130B2 patent drawing
  • US8701130B2 patent drawing
  • US8701130B2 patent drawing

AI summary

A first computing device is programmed to perform operations (i) to collect parameter data for use by a remote function, and (ii) to pass information, including the parameter data, to a second computing device. The second computing device is programmed to perform operations (i) to build a stack based on the parameter data, (ii) to use the information to locate code for the function on the second computing device, (iii) to execute the code for the function on the second computing device, where the function uses the parameter data on the stack, (iv) to obtain output values from execution of the code for the function, and (v) to pass parameter data, including the output values, to the first computing device.