RMI-IIOP Encoding Selection via Java Serialization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing RMI-IIOP implementations face inefficiencies in data encoding, as they rely on conventional CORBA CDR, which can have overheads, and lack flexibility in switching between encoding types during message exchanges.

Innovation Solution

Implementing Java serialization as an alternative or additional encoding format for RMI-IIOP messages, allowing dynamic selection between Java serialization and CDR, while maintaining the GIOP protocol, and using Interoperable Object References (IORs) to indicate supported encoding types for clients and servers to adapt accordingly.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional CORBA CDR encoding is used for RMI-IIOP messages, then compatibility with existing systems is maintained, but communication performance and efficiency deteriorate due to overhead

Engineering Contradiction:
Improvecommunication performanceVSAvoidencoding overhead
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent changes the encoding parameter from conventional CDR to Java serialization format, improving communication performance by eliminating CDR-specific overhead while maintaining RMI-IIOP functionality through dynamic encoding selection

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If a single encoding type is used for RMI-IIOP messages, then implementation simplicity is maintained, but flexibility in message exchanges deteriorates

Engineering Contradiction:
Improveflexibility in message exchangesVSAvoidencoding selection mechanism
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic encoding selection where the ORB can switch between CDR and Java serialization formats based on runtime conditions, client capabilities, and message requirements, making the encoding mechanism adaptive rather than static

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The ORB is designed to support multiple encoding types (both CDR and Java serialization) simultaneously, allowing it to function as a universal message handler that can process different encoding formats through a unified interface

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Productivity

If Java serialization is adopted as an alternative encoding format, then efficiency is improved, but compatibility with older versions deteriorates unless multiple encoding types are supported

Engineering Contradiction:
Improvedata encoding efficiencyVSAvoidbackward compatibility
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent modifies the encoding parameter to accept multiple values (CDR or Java serialization) based on client capabilities and server support, enabling efficient Java serialization for capable clients while maintaining CDR compatibility for older systems

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7574710B1Method and apparatus for determining data encoding format in RMI-IIOP messages
Publication Date: 2009.08.11 ORACLE AMERICAN INC
  • US7574710B1 patent drawing
  • US7574710B1 patent drawing
  • US7574710B1 patent drawing

AI summary

Method and apparatus for determining data encoding format in RMI-IIOP messages. Embodiments may provide a mechanism to use Java serialization rather than, or as an alternative to, CORBA Common Data Representation (CDR), for the marshaling and unmarshaling of data in RMI-IIOP message exchanges. In one embodiment, a server-side Object Request Broker (ORB) may be configured to support the encoding of data in RMI-IIOP messages in accordance with CDR encoding and Java serialization encoding. In one embodiment, an Interoperable Object References (IOR) published by the server may include information that indicates which encoding type(s) are supported by the server-side ORB on the server that hosts the associated object. A client-side ORB may optionally use Java serialization or CDR as the data encoding format for RMI-IIOP messages to invoke the associated object on the server. Each RMI-IIOP message may include an indication of which encoding type is used in the message.