Schema-based dynamic parse/build engine for parsing multi-format messages
First Claim
1. A method for parsing messages into a common canonical internal message format, comprising:
- receiving a message comprising a plurality of fields;
storing a number of bytes of the received message as an offset;
providing a plurality of handlers, each handler being code for parsing at least one of said fields using grammar for said field, each said handler being separately compiled;
determining one or more schemas for the fields of the message, each schema pointing to one of said handlers and containing a grammar definition for one or more fields;
translating the one or more fields of the message into said common canonical internal message format using said handlers, wherein said common canonical internal message format comprises a hierarchical structure of possible fields, and wherein said parsing is only done for the one or more fields in said message, and only corresponding fields in said common canonical internal message format are populated; and
decrementing the offset as said handlers are used, wherein the translation is complete when the decremented offset equals a defined value.
1 Assignment
0 Petitions
Accused Products
Abstract
A parse/build engine that can handle multi-format financial messages. The engine converts the different format messages into a common format, and the common format message is then processed by the business service application. A parser examines the message and determines an appropriate schema for the particular format of message received. The schema is a data structure in a schema registry that includes a grammar structure for the received format as well as pointers to handlers for converting the different fields of the message into the internal message format using the grammar structure (the “grammar” can include field sequence, field type, length, character encoding, optional and required fields, etc.). The handlers are individually compiled. As formats change, new formats or changes to old formats can be dynamically added to the parse/build engine by loading new schema and handlers.
106 Citations
17 Claims
-
1. A method for parsing messages into a common canonical internal message format, comprising:
-
receiving a message comprising a plurality of fields; storing a number of bytes of the received message as an offset; providing a plurality of handlers, each handler being code for parsing at least one of said fields using grammar for said field, each said handler being separately compiled; determining one or more schemas for the fields of the message, each schema pointing to one of said handlers and containing a grammar definition for one or more fields; translating the one or more fields of the message into said common canonical internal message format using said handlers, wherein said common canonical internal message format comprises a hierarchical structure of possible fields, and wherein said parsing is only done for the one or more fields in said message, and only corresponding fields in said common canonical internal message format are populated; and decrementing the offset as said handlers are used, wherein the translation is complete when the decremented offset equals a defined value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for parsing messages into a common canonical internal message format, comprising:
-
receiving a message comprising a plurality of fields; storing a number of bytes of the received message as an offset; providing a plurality of handlers, each handler being code for parsing at least one of said fields using grammar for said field, each said handler being separately compiled; determining one or more schemas for the fields of the message, each schema pointing to one of said handlers and containing a grammar definition for one or more fields, wherein each message field included in said schema is identified by an object ID, said object ID being an index pointing to a particular location in said common canonical internal message format; translating the one or more fields of the message into said common canonical internal message format using said handlers; and decrementing the offset as said handlers are used, wherein the translation is complete when the decremented offset equals a defined value.
-
-
12. A computer readable storage medium comprising instructions for an engine configured to parse/build messages, the engine comprising:
-
a plurality of handlers, each handler being code for parsing at least one of the fields of a received message using grammar for said field, each said handler being separately compiled; a plurality of schemas for different types of messages, each schema pointing to one of said handlers and containing a grammar definition for one or more fields of a message; a common canonical internal message format object, said handlers being configured to populate the common canonical internal message format object with only fields found in the message and/or required fields, wherein said common canonical internal message format comprises a hierarchical structure of possible fields; and a parser that maintains an offset indicating a number of bytes of the received message, wherein the parser component decrements the offset as the handlers populate the common canonical internal message format, the parse being complete when the decremented offset equals a defined value. - View Dependent Claims (13, 14)
-
-
15. A method for parsing messages into a common canonical internal message format, comprising:
-
receiving a message comprising a plurality of fields; storing a number of bytes of the received message as an offset; providing a plurality of handlers, each handler being code for parsing at least one of said fields using grammar for said field, each said handler being separately compiled; determining one or more schemas for the fields of the message, each schema pointing to one of said handlers and containing a grammar definition for one or more fields; translating all of the one or more fields of the message into said common canonical internal message format using said handlers, wherein said common canonical internal message format contains at least all of the fields of said received message and said common canonical internal message format comprises a hierarchical structure of possible fields; and decrementing the offset as said handlers are used, wherein the translation is complete when the decremented offset equals a defined value. - View Dependent Claims (16, 17)
-
Specification