Deserialization service
Abstract
Approaches described relate to the management of messages in an electronic environment. In particular, various approaches provide for analyzing messages of different message types to efficiently process those messages in a service environment, such as a multi-tenant environment. The messages can include one or more message fields, allowing for a plurality of different message types. The messages can be analyzed to identify known message types, and processing of messages of the same type can be expedited, e.g., by more quickly deserializing that message using cached message offset information associated with that message type. For example, a message that includes message data and an identifier can be received. The identifier can be matched to an entry associated with the identifier and message offset information. The message offset information can be utilized to determine positions in the received message that are associated with message data and the message data can be obtained without having to build up a reference structure around the structure of the message. Thereafter, a deserialized message can be generated using the message data retrieved using the message offset information.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A system, comprising:
at least one processor; and memory including instructions that, when executed by the at least one processor, cause the system to: receive a serialized message, the serialized message including a first hash value and a message field associated with message data; analyze a table to determine that the first hash value matches a second hash value; determine a position in the serialized message that includes the message data using message offset information associated with the second hash value; obtain the message data; and generate a deserialized data object that includes the message data.
2 . The system of claim 1 , wherein the instructions when executed further cause the system to:
receive a second serialized message at a client device in a provider environment, the second serialized message including a plurality message fields in an ordered arrangement; use a hashing technique to generate a third hash value based at least in part on the plurality of message fields and the ordered arrangement of the plurality of message fields; and update the second serialized message to include the third hash value.
3 . The system of claim 1 , wherein the instructions when executed further cause the system to:
receive a second serialized message, the second serialized message including a plurality of message fields in an ordered arrangement; determine a message type associated with the second serialized message based at least in part on the ordered arrangement of the plurality of message fields; determine second message offset information for the message type; and store the second message offset information of the message type.
4 . A system, comprising:
at least one processor; and memory including instructions that, when executed by the at least one processor, cause the system to: receive a serialized message that includes message data and an identifier, match the identifier to an entry in a table, the entry including message offset information; determine a position in the serialized message that includes the message data using the message offset information; and generate a deserialized data object based at least in part on the message data and the message offset information.
5 . The system of claim 4 , wherein the message data includes binary data, and wherein the instructions when executed further cause the system to write the binary data into a string table of the table.
6 . The system of claim 5 , wherein the instructions when executed to further cause the system to analyze the string table to determine the message offset information.
7 . The system of claim 4 , wherein the instructions when executed further cause the system to:
receive a second serialized message at a client device in a provider environment, the second serialized message including a first data field type and a second data field type; generate a third identifier based at least in part on the first data field type and the second data field type; and update the second serialized message to include the third identifier.
8 . The system of claim 7 , wherein the third identifier is further based at least in part on an ordered arrangement of the first data field type and the second data field type.
9 . The system of claim 4 , wherein the instructions when executed further cause the system to:
determine an amount of memory to maintain the table; determine an amount of processing power to maintain the table; and remove entries in the table based at least in part on the amount of memory and the amount of processing power.
10 . The system of claim 4 , wherein a number of entries in the table is based at least in part on one of a frequency of receiving a particular identifier, an amount of memory to maintain the table, an amount of processing power to maintain the table, a number of entries in the table, an amount of time to search for an entry in the table, or an importance indicator associated with entries in the table.
11 . The system of claim 4 , wherein the serialized message is one of a JavaScript Object Notation (JSON) message format, an ION message format, a protobuf message format, a messagpack message format, or a concise binary object representation (CBOR) message format.
12 . The system of claim 4 , wherein the instructions when executed further cause the system to:
receive a second serialized message that includes second message data, a first portion of the second message data associated with a first data field type and a second portion of the second message data associated with a second data field type; determine an order of the first data field type and the second data field type in the second serialized message; and match the order to a second entry in the table that includes second message offset information, the second message offset information used to determine a first position in the second serialized message that includes the first portion of the message data and a second position in the message that includes the second portion of the second message data.
13 . The system of claim 12 , wherein the instructions when executed further cause the system to:
generate a second deserialized data object based at least in part on the second message data and the second message offset information.
14 . The system of claim 4 , wherein the serialized message includes a key-value pair and an ordered list of values, and wherein the key-value pair is realized as one of an object, a record, a struct, a dictionary, a hash table, a keyed list, or an associative array, and wherein the ordered list of values is realized as one of an array, a vector, a list, or a sequence.
15 . A computer-implemented method, comprising:
receiving a serialized message that includes message data and an identifier, matching the identifier to an entry in a table, the entry including message offset information; determining a position in the serialized message that includes the message data using the message offset information; and generating a deserialized data object based at least in part on the message data and the message offset information.
16 . The computer-implemented method of claim 15 further comprising:
receiving a second serialized message that includes second message data, a first portion of the second message data associated with a first data field type and a second portion of the second message data associated with a second data field type;
determining an order of the first data field type and the second data field type in the second serialized message;
matching the order to a second entry in the table that includes second message offset information, the second message offset information used to determine a first position in the second serialized message that includes the first portion of the second message data and a second position in the second serialized message that includes the second portion of the second message data; and
generating a second deserialized data object based at least in part on the second message data and the second message offset information.
17 . The computer-implemented method of claim 15 , further comprising:
determining an amount of memory to maintain the table; determining an amount of processing power to maintain the table; and removing entries in the table based at least in part on the amount of memory and the amount of processing power.
18 . The computer-implemented method of claim 15 , wherein the first message data includes binary data, the method further comprising:
writing the binary data into a string table of the table; and analyzing the string table to determine the message offset information.
19 . The computer-implemented method of claim 15 , wherein the serialized message is one of a JavaScript Object Notation (JSON) message format, an ION message format, a protobuf message format, a messagpack message format, or a concise binary object representation (CBOR) message format.
20 . The computer-implemented method of claim 15 , wherein the serialized message includes a key-value pair and an ordered list of values, and wherein the key-value pair is realized as one of an object, a record, a struct, a dictionary, a hash table, a keyed list, or an associative array, and wherein the ordered list of values is realized as one of an array, a vector, a list, or a sequence.Join the waitlist — get patent alerts
Track US2019372880A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.