# US 10,313,410 B2 · Systems and methods using binary dynamic rest messages

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,313,410 B2
- Document ID: US10313410B2
- Status: Granted
- Kind: B2
- Application number: 15/127,896
- Filed: 2015-03-20
- Published: 2017-04-06
- Granted: 2019-06-04
- Earliest claimed: 2014-03-21
- Assignees: PTC Inc.
- Applicants: Ptc Inc.
- Inventors: Rick Bullotta; John Canosa; Bob Deremer; Mike Mahoney
- Web page: https://patentgrep.com/patent/US10313410B2

## CPC

- H04L 65/60: Network streaming of media packets
- G06F 16/907: Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 69/10: Streamlined, light-weight or high-speed protocols, e.g. express transfer protocol [XTP] or byte stream
- H04L 69/22: Parsing or analysis of headers
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system and method of a communication device including a port configured to receive a plurality of binary data streams having a binary header and a binary body. The device includes a memory storing a first message structure description of the binary header and the binary body, and a second message structure description of a metadata construct of the message. The device includes a processor configured to parse a received binary data stream using the first message structure description to determine the binary header and the binary body. The processor parses the binary body using the second message structure description to determine the one or more groups of description values forming the metadata construct. The processor uses a portion of the determined description values of the metadata construct to determine the one or more groups of data values of the message construct.

## Claims

### Claim 1

A computer-implemented method for receiving data structured according to a second communication protocol and transmitting the data structured according to a first communication protocol in a network, wherein the second communication protocol is different from the first communication protocol, the method comprising:
providing an associative mapping between the first communication protocol and the second communication protocol in a memory of a first computing device,
wherein a control message structured according to the first communication protocol comprises a first control code of a plurality of control codes corresponding to HTTP-based status code definitions, and
wherein a data message structured according to the first communication protocol comprises i) a second control code of the plurality of control codes corresponding to a HTTP request type message based on an HTTP framework, including a “GET” request, a “POST” request, or a “PUT” request and ii) a serialized-binary message having a self-describing schema in which the serialized-binary message comprises:
a) a data set comprising data values, and
b) a metadata construct that includes one or more description values of the data set;
in response to receiving, at a port of the first computing device, from a second computing device, a first data message transmitted according to the second communication protocol, generating, at the first computing device, according to the associative mapping, a second message structured according to the first communication protocol and transmitting the second data message to a third computing device in the network,
wherein in response to the receipt of the second data message, the third computing device generates and transmits a first control message structured according to the first communication protocol to the first computing device to provide a status of the transmission of the second data message, wherein the first control message comprises one or more HTTP-based status code definitions.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the first data message comprises data values originating from a connected device.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the first data message is received from a wireless connection comprises a network selected from the group consisting of Zigbee, Bluetooth, WiMax (WiMAX Forum Protocol), Wi-Fi (Wi-Fi Alliance Protocol), GSM (Global System for Mobile Communication), PCS (Personal Communications Services protocol), D-AMPS (Digital-Advanced Mobile Phone Service Protocol), 6LoWPAN (IPv6 Over Low Power Wireless Personal Area Networks Protocol), Ant (ANT network protocol), DASH7 (DASH7 Alliance Protocol), EnOcean, INSTEON, NeuRF ON, Senceive, WirelessHART (Wireless Highway Addressable Remote Transducer Protocol), Contiki, TinyOS (Tiny OS Alliance Protocol), GPRS (General Packet Radio Service), TCP/IP (Transmission Control Protocol and Internet Protocol), CoAP (Constrained Application Protocol), MQTT (Message Queuing Telemetry Transport), TR-50 (Engineering Committee TR-50 Protocol), OMA LW M2M (Open Mobile Alliance LightWeight machine-to-machine Protocol), and ETSI M2M (European Telecommunication Standards Institute machine-to-machine Protocol).

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the first computing device transmits the second data message to the third computing device over a Web Socket connection.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein the associative mapping between the first communication protocol and the second communication protocol is stored in persistent memory.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein the plurality of control codes of the control message and the data message are based on (Hypertext Transfer Protocol-based) RESTful (REpresentational State Transfer) application programming interfaces (APIs).

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein the plurality of control codes of the control message and the data message are each represented, in the control message and the data message, as an encoded symbol.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein a second control message structured according to the first communication protocol comprises a binding control code associated with establishment of a binding path of the second computing device in the network.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, wherein a third control message structured according to the first communication protocol comprises an authentication control code associated with authentication of the second computing device in the network.

### Claim 10 (depends on 1)

The computer-implemented method of claim 1, wherein the first data message comprises data values originating from a connected device selected from the group consisting of a sensor or a machinery at an industrial complex; a construction equipment or a vehicle; a power generation or distribution equipment; a power substation or transmission equipment, and a building meter.

### Claim 11 (depends on 1)

The computer-implemented method of claim 1, wherein the first data message comprises data values originating from a connected device selected from the group consisting of a server or an office equipment and a networking or routing equipment.

### Claim 12 (depends on 1)

The computer-implemented method of claim 1, wherein the first data message comprises data values originating from a connected device selected from the group consisting of a medical device or a prosthesis device, a medical diagnostic device, and a hospital equipment.

### Claim 13 (depends on 1)

The method of claim 1, wherein the metadata construct is separately defined from the data set within the serialized-binary message.

### Claim 14 (depends on 13)

The method of claim 13, wherein the metadata construct precedes, in its entirety, the data set in the serialized-binary message.

### Claim 15

A non-transitory computer readable medium having instructions stored thereon,
wherein the instructions comprise an associative mapping between a first communication protocol and a second communication protocol, the first communication protocol being different from the second communication protocol,
wherein a control message structured according to the first communication protocol comprises a first control code of a plurality of control codes corresponding to HTTP-based status code definitions, and
wherein a data message structured according to the first communication protocol comprises i) a second control code of the plurality of control codes corresponding to a HTTP request type message based on an HTTP framework, including a “GET” request, a “POST” request, or a “PUT” request and ii) a serialized-binary message having a self-describing schema in which the serialized-binary message comprises:
a) a data set comprising data values, and
b) a metadata construct that includes one or more description values of the data set; and
wherein the instructions, when executed by a processor, cause the processor to:
in response to receiving, from a second computing device, a first data message transmitted according to the second communication protocol, generate a second data message structured according to the first communication protocol and transmit the second data message to a third computing device in the network,
wherein in response to the receipt of the second data message, the third computing device generates and transmits a first control message structured according to the first communication protocol to the one or more network ports to provide a status of the transmission of the second data message, wherein the first control message comprises one or more HTTP-based status code definitions.

### Claim 16 (depends on 15)

The computer readable medium of claim 15, wherein the plurality of control codes of the control message and the data message are each represented, in the control message and the data message, as an encoded symbol.

### Claim 17 (depends on 15)

The computer readable medium of claim 15,
wherein a second control message structured according to the first communication protocol comprises a binding control code associated with establishment of a binding path of the second computing device in the network, and
wherein a third control message structured according to the first communication protocol comprises an authentication control code associated with authentication of the second computing device in the network.

### Claim 18 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein the metadata construct is separately defined from the data set within the serialized-binary message.

### Claim 19 (depends on 18)

The non-transitory computer readable medium of claim 18, wherein the metadata construct precedes, in its entirety, the data set in the serialized-binary message.

### Claim 20

A system for receiving data structured according to a second communication protocol and transmitting the data structured according to a first communication protocol in a network, wherein the second communication protocol is different from the first communication protocol, the system comprising:
a processor;
one or more network ports; and
a memory having instructions stored thereon, wherein the instructions comprise an associative mapping between the first communication protocol and the second communication protocol,
wherein a control message structured according to the first communication protocol comprises a first control code of a plurality of control codes corresponding to HTTP-based status code definitions, and
wherein a data message structured according to the first communication protocol comprises i) a second control code of the plurality of control codes corresponding to a HTTP request type message based on an HTTP framework, including a “GET” request, a “POST” request, or a “PUT” request and ii) a serialized-binary message having a self-describing schema in which the serialized-binary message comprises:
a) a data set comprising data values, and
b) a metadata construct that includes one or more description values of the data set; and
wherein the instructions, when executed by the processor, cause the processor to:
in response to receiving, at the one or more ports, from a second computing device, a first data message transmitted according to the second communication protocol, generate, according to the associative mapping, a second data message structured according to the first communication protocol and transmit the second data message to a third computing device in the network,
wherein in response to the receipt of the second data message, the third computing device generates and transmits a first control message structured according to the first communication protocol to the one or more network ports to provide a status of the transmission of the second data message, wherein the first control message comprises one or more HTTP-based status code definitions.

### Claim 21 (depends on 20)

The system of claim 20, wherein the one or more network ports are configured to establish a wireless connection.

### Claim 22 (depends on 20)

The system of claim 20, wherein the one or more network ports are configured to establish a Web Socket connection with the third computing device.

### Claim 23 (depends on 20)

The system of claim 20, wherein the plurality of control codes of the control message and the data message are each represented, in the control message and the data message, as an encoded symbol.

### Claim 24 (depends on 20)

The system of claim 20,
wherein a second control message structured according to the first communication protocol comprises a binding control code associated with establishment of a binding path of the second computing device in the network, and
wherein a third control message structured according to the first communication protocol comprises an authentication control code associated with authentication of the second computing device in the network.

### Claim 25 (depends on 20)

The system of claim 20, wherein the metadata construct is separately defined from the data set within the serialized-binary message.

### Claim 26 (depends on 25)

The system of claim 25, wherein the metadata construct precedes, in its entirety, the data set in the serialized-binary message.
