RMI Tunneling Over HTTP Persistent Connections

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Firewalls typically block Java Remote Method Protocol (JRMP) traffic, necessitating frequent creation and destruction of socket connections for multiple RMI calls over HTTP tunneling, which is inefficient and resource-intensive.

Innovation Solution

Implementing RMI tunneling over HTTP by encapsulating RMI messages within HTTP requests, allowing for parsing, execution, and queuing of messages, and using adaptive ping timeouts to manage network traffic and reduce overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If RMI calls are tunneled over HTTP by encapsulating RMI messages within HTTP requests, then firewall compatibility is improved, but socket connection creation and destruction overhead increases for multiple calls

Engineering Contradiction:
Improvefirewall compatibilityVSAvoidsocket connection creation and destruction time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent encapsulates RMI protocol messages within HTTP request bodies, nesting one protocol inside another. The RMI call data is embedded as the HTTP request body, allowing RMI communication to traverse firewalls that block direct JRMP traffic but allow HTTP traffic. This nesting approach resolves the firewall compatibility issue while maintaining the underlying RMI message structure.

Inventive Principle:
Principle #7Nested doll (Nesting)

Solution Approach 2:

The patent establishes a persistent HTTP connection before RMI communication begins and maintains it throughout the session. This preliminary action of creating the HTTP tunnel beforehand eliminates the need to repeatedly create and destroy socket connections for each RMI call, reducing connection overhead while maintaining firewall compatibility.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If HTTP tunneling is used for RMI communication, then protocol blocking by firewalls is circumvented, but network resource consumption increases due to repeated connection operations

Engineering Contradiction:
Improveprotocol blocking circumventionVSAvoidnetwork resource consumption
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

Solution Approach 1:

The patent maintains a continuous HTTP connection throughout the RMI communication session, allowing multiple RMI calls to be transmitted over the same persistent connection. This continuity eliminates the need to repeatedly establish and terminate connections, reducing network resource consumption while continuing to circumvent firewall blocking of direct RMI traffic.

Inventive Principle:
Principle #20Continuity of useful action

3Reliability

If socket connections are created for each RMI call over HTTP, then firewall policy compliance is maintained, but communication efficiency decreases

Engineering Contradiction:
Improvefirewall policy complianceVSAvoidcommunication efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent establishes an HTTP connection beforehand and reuses it for multiple RMI calls. This preliminary establishment of the HTTP tunnel maintains compliance with firewall policies that require HTTP traffic, while the persistent nature of the connection significantly improves communication efficiency by eliminating repeated connection setup and teardown operations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8898220B2Remote method invocation tunneling over hypertext transfer protocol
Publication Date: 2014.11.25 SAP SE
  • US8898220B2 patent drawing
  • US8898220B2 patent drawing
  • US8898220B2 patent drawing

AI summary

Various embodiments of systems and methods for remote method invocation (RMI) tunneling over hypertext transfer protocol (HTTP) are described herein. RMI client uses HTTP client to send a protocol message in the body of an HTTP request to a special application on a server. The application dispatches the content of the message to RMI service of the server to handle remote call. RMI response may be sent in the HTTP response of the same HTTP request or some of the further requests. RMI callbacks initiated from the server back to the client are also delivered in an HTTP response of a client's HTTP request.