Binary Dynamic REST Messages for Low-Latency IoT Communication
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current communication protocols for connected devices, such as HTTP RESTful APIs, face challenges in scalability and operability due to unidirectional communication limitations and high bandwidth consumption, particularly in environments with security mechanisms like firewalls and Network Address Translation.
Innovation Solution
The use of binary dynamic REST messages over WebSocket protocols enables low-latency bidirectional communication by serializing data and metadata using a self-describing schema, allowing for efficient transmission and decoding of messages, even in the presence of security measures, while maintaining compatibility with standard formats like JSON or XML.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If HTTP RESTful API with open standard formats (JSON/XML) is used, then flexibility and open standard compatibility are improved, but bandwidth consumption and message verbosity increase
Solution Approach 1:
The patent changes the parameter of data format from human-readable text (JSON/XML) to binary format. This transformation reduces the size of data transmitted over the network while maintaining the ability to represent the same information, thereby reducing bandwidth consumption without sacrificing compatibility through the use of standardized binary protocols
Solution Approach 2:
The patent substitutes the mechanical/text-based representation system (JSON/XML text formats) with a binary representation system. This substitution eliminates the verbosity inherent in text-based formats while preserving the structured data representation capabilities needed for interoperability
2Adaptability or versatility
If HTTP polling is used to overcome unidirectional communication, then two-way communication capability is improved, but reply-message latency responsiveness and server utilization worsen
Solution Approach 1:
The patent inverts the traditional HTTP polling approach where the client repeatedly asks for updates. Instead, it uses WebSocket persistent connections where the server can push updates to the client whenever data changes, eliminating the need for continuous client requests and reducing latency
Solution Approach 2:
The patent establishes a continuous persistent connection through WebSocket that remains open between client and server. This continuous connection allows immediate transmission of data as soon as it becomes available, eliminating the intermittent nature of HTTP polling and ensuring real-time responsiveness
3Adaptability or versatility
If HTTP polling is used for two-way communication, then communication bidirectionality is improved, but bandwidth consumption and server utilization increase
Solution Approach 1:
The patent inverts the communication pattern from client-initiated polling to server-initiated push notifications. The server maintains a persistent connection and actively pushes data to clients when updates occur, eliminating the wasteful repeated requests characteristic of HTTP polling
Solution Approach 2:
The persistent WebSocket connection maintains a continuous state between client and server, allowing data to be transmitted immediately when needed without the overhead of establishing and tearing down connections repeatedly as in HTTP polling
Data Source
AI summary
A system and method thereof of a communication device. The device includes 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 structural description of the binary header and the binary body and a second structural description of a metadata construct of the message. The device includes a processor configured to parse a received binary data stream using the first structural description to determine the binary header and the binary body. The processor parses the binary body using the second structural description to determine the one or more groups of description values forming the metadata construct where 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.


