Method and apparatus of data exchange using runtime code generator and translator
First Claim
1. A method of dynamically accommodating communication between disparate data formats comprising the steps of:
- at run time, determining an input format description describing a layout of data fields for incoming data, and an output format description describing a layout of data fields used in communicating output data;
supplying a data segment mapping for at least some data fields from said input format description to said output format description; and
generating a set of executable machine instructions for direct processing, said executable machine instructions being generated as a function of said data segment mapping, said input format description and said output format description, said executable machine instructions to translates an input data stream directly into an output data stream.
1 Assignment
0 Petitions
Accused Products
Abstract
A high level transformation method and apparatus for converting data formats in the context of network applications, among other places. A flexible transformation mechanism is provided that facilitates generation of translation machine code on the fly. A translator is dynamically generated by a translator compiler engine. The translator compiler engine implemented according to the present invention uses a pair of formal machine-readable format descriptions (FMRFDs) and a corresponding data map (DMAP) to generate executable machine code native to the translator platform CPU. When fed an input stream, the translator generates an output stream by executing the native object code generated on the fly by the translator compiler engine. In addition, the translator may be configured to perform a bi-directional translation between the two streams as well as translation between two distinct protocol sequences.
301 Citations
17 Claims
-
1. A method of dynamically accommodating communication between disparate data formats comprising the steps of:
-
at run time, determining an input format description describing a layout of data fields for incoming data, and an output format description describing a layout of data fields used in communicating output data;
supplying a data segment mapping for at least some data fields from said input format description to said output format description; and
generating a set of executable machine instructions for direct processing, said executable machine instructions being generated as a function of said data segment mapping, said input format description and said output format description, said executable machine instructions to translates an input data stream directly into an output data stream. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
selecting said input format description, from a pre-configured set of format descriptions, according to an identification of a format used for communication with a first node; and
selecting said output format description, from a pre-configured set of format descriptions, according to an identification of a format used for communication with a second node.
-
-
5. The method of claim 4 in which at least one of said identification of a format used for communication with a first node and said identification of a format used for communication with a second node is determined by an identification criterion selected from the list of manual operator input, automatic discovery of a format, a source node with a known format, a destination node with a known format, recognition of a known protocol or schema, and recognition of a transaction type.
-
6. The method of claim 1 in which said steps of determining said input format description and said output format description and supplying said data segment mapping further compromise the step of interpreting an XSL stylesheet to derive at least one template, where portions of said template correspond to input format description, output format description, and a data segment mapping.
-
7. The method of claim 1 wherein said executable machine instructions comprise binary object code for execution by a computer processor.
-
8. The method of claim 1 wherein said executable machine instructions comprise byte-code executable by an interpreter.
-
9. The method of claim 1 wherein said executable machine instructions comprise encoded inputs for programming of a field-programmable gate array.
-
10. A method of dynamically facilitating translation of data between disparate data formats comprising the steps of:
-
processing an XSL style sheet to determine at least one template, said template including at least one of an Xpath function or an XSLT element;
generating a set of executable machine instructions for execution by a processor according to said processed template, where said executable machine instructions to directly translate an input data stream to an output data stream, receiving information encoded in an XML format; and
executing at least some of said set of executable machine instructions by a processor to produce a stream of output information in a format determined by said XSL stylesheet. - View Dependent Claims (11, 12, 13, 14, 15)
selecting an optimization plan including at least one optimization pass; and
generating optimized machine code according to each of said at least one optimization pass, where the output of each optimization pass which is not a final optimization pass comprises an intermediate format which is input to a succeeding optimization pass, according the said selected optimization plan.
-
-
12. The method of claim 11 in which at least one of said optimization passes includes a schema-driven optimization.
-
13. The method of claim 10 wherein said executable machine instructions comprise binary object code for execution by a computer processor.
-
14. The method of claim 10 wherein said executable machine instructions comprise byte-code executable by an interpreter.
-
15. The method of claim 10 wherein said executable machine instructions comprise encoded inputs for programming of a field-programmable gate array.
-
16. A dynamic translator compiler engine, for run time generation of executable machine code according to an input format description, an output format description, and a data segment map, comprising:
-
a selector for selecting said input format description, said input format description describing a layout of data fields for incoming data, a selector for selecting an output format description;
said output format description describing a layout of data fields used in communicating output data;
a data segment mapping resource adapted for mapping at least some data fields from said input format description to said output format description; and
a code generator for generating a set of executable machine instructions for execution by a processor, said executable machine instructions generated as a function of said data segment mapping, said input format description and said output format description, said executable machine instructions to directly translate an input data stream to an output data stream.
-
-
17. A method of dynamically facilitating translation of data between disparate data formats comprising the steps of:
-
processing an XSL style sheet to determine at least one template, said template including corresponding Xpath functions; and
generating a set of executable machine instructions for execution by a processor, said executable machine instructions generated as a function of said processed template, said executable machine instructions to directly translate an input data stream to an output data stream.
-
Specification