Unified Data Marshaller for COBOL-Java Integration
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The generation of large amounts of marshaller code for each data structure or class leads to slow JIT compilation and memory wastage, resulting in deteriorated system performance due to the shortage of compile time and JIT code area, especially when dealing with COBOL data types converted to JAVA™.
Innovation Solution
A method and system for compact data marshaller generation that unify data marshallers for multiple data types with the same memory layout, reducing code size by replacing consecutive data definitions with calls to a new class and eliminating type errors through mechanisms like sun.misc.Unsafe, thereby reducing the number of marshallers and improving data marshalling efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Manufacturing precision
If specialized marshaller code is prepared for each data structure or class, then data marshalling accuracy is improved, but code size increases and system performance deteriorates
Solution Approach 1:
The patent creates a universal marshaller that can handle multiple data types through runtime type checking and dynamic dispatch. Instead of having separate specialized marshallers for each data type, a single marshaller instance is designed to adapt its behavior based on the actual type of data being marshalled, using type information stored in data structure headers to route to appropriate handling logic.
Solution Approach 2:
The patent merges multiple specialized marshallers into a single unified marshaller by combining their functionality into one class. The unified marshaller contains multiple handler methods for different data types (INTEGER, FLOAT, STRING, etc.) and uses type checking to determine which handler to invoke, thereby consolidating what would have been many separate classes into one.
2Manufacturing precision
If specialized marshaller code is prepared for each data structure or class, then data marshalling accuracy is improved, but JIT compilation time increases
Solution Approach 1:
The universal marshaller reduces JIT compilation time by compiling a single marshaller class rather than many specialized ones. The runtime type checking and dynamic dispatch mechanisms are compiled once into the universal marshaller, eliminating the need to compile and load multiple specialized marshaller classes into the JIT code cache.
Solution Approach 2:
By merging multiple specialized marshallers into one unified marshaller, the total amount of code subject to JIT compilation is dramatically reduced. This single consolidated marshaller takes up less space in the JIT code area and compiles faster than the aggregate of many separate specialized marshallers.
3Manufacturing precision
If specialized marshaller code is prepared for each data structure or class, then data marshalling accuracy is improved, but memory usage increases
Solution Approach 1:
The universal marshaller reduces memory usage by implementing a single marshaller instance that serves multiple data types. The type information is stored compactly in data structure headers, and the marshaller uses this information to dynamically select the appropriate handling logic, avoiding the need to instantiate and store multiple specialized marshaller objects in memory.
Solution Approach 2:
The patent merges the functionality of multiple specialized marshallers into a single unified marshaller class, thereby reducing the total memory footprint. Instead of having separate marshaller objects for each data type occupying memory simultaneously, one unified marshaller object handles all types, significantly reducing memory consumption.
Data Source
AI summary
A method for compact data marshaller generation includes determining a plurality of data types having a same memory layout from data to be marshalled using a processor, each of the plurality of data types being associated with one or more separate data marshallers. The one or more separate data marshallers are unified to provide a single data marshaller for the plurality of data types for compact data marshaller generation.


