Remote API Version Compatibility via Handshake Protocol

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current remote or remoting method invocations, such as RMI and web services, face challenges in ensuring versioning compatibility between client and server applications, leading to difficulties in communication when using different application versions.

Innovation Solution

A method and apparatus are introduced to provide version compatibility by exchanging version information between remoting clients and servers, using a single API for network-based invocations, and employing wire versioning to ensure backward compatibility, allowing clients and servers to adjust their versions for seamless communication.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If a single API is used for network-based invocations, then ease of operation is improved, but version compatibility between different application versions deteriorates

Engineering Contradiction:
Improveease of operationVSAvoidversion compatibility
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The protocol is segmented into multiple version-specific implementations (JRMP, IIOP, HTTP) that can be selected based on the application version. Each version has its own protocol handler, allowing the system to maintain a single unified API while internally routing to version-appropriate protocol implementations, thus resolving the contradiction between ease of operation and version compatibility.

Inventive Principle:
Principle #1Segmentation

2Reliability

If version information is exchanged between client and server, then version compatibility is improved, but device complexity increases

Engineering Contradiction:
Improveversion compatibilityVSAvoiddevice complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Version information is exchanged during the connection establishment phase, before any actual remote method invocations occur. The client and server perform a version handshake that determines the appropriate protocol version to use for subsequent communications. This preliminary action ensures version compatibility without adding complexity to the core invocation mechanism.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10120733B2Remote procedure call supporting multiple versions
Publication Date: 2018.11.06 RED HAT INC
  • US10120733B2 patent drawing
  • US10120733B2 patent drawing
  • US10120733B2 patent drawing

AI summary

A remoting client and a remoting server are described. In one embodiment, the remoting client has a client remote access application, a client invoker, a marshaller, and an unmarhaller. The client remote access application provides a version indicator of the client remote access application and receives a version indicator of a server remote access application. The client invoker generates an invocation request including the version indicator of the client remote access application. The client remote access application determines a compatible version between the client remote access application and the server remote access application based on the version indicator of the client remote access application and the version indicator of the server remote access application.