Packed – Code generator for network protocols
A Portuguese company that operates on the mobile satellite communications market developed a tool that uses a Domain-Specific Language to define network protocols, automatically generating Java source code to encode/decode packets. This tool – Packed – significantly reduces the effort required to implement network communication components where proprietary protocols have been defined.
Although there are many software frameworks related with network communication aspects, usually the details of the binary messages and protocol are generated automatically.
However, there are use-cases where the exact format of each message must be defined with bit precision. For example:
- Legacy/third-party protocols that have been already defined
- Usage in resource-constrained environments, such as low-bandwidth networks or small-scale hardware.
The packed framework defines a domain-specific language to describe network protocols – messages, field types, sizes and wire format, among other properties. A source code generator transforms these protocol definitions into the corresponding Java constructs for creating, sending and receiving messages using the specified wire format.
Additionally, the same protocol definition files can be used to generate Wireshark dissectors. Wireshark is a widely used packet analyzer, used for network troubleshooting and analysis. Using the packed dissector generator, the Wireshark tool can be used to capture and debug messages encoded with proprietary formats.
Innovations & Advantages
The packed framework accelerates the development of software components dealing with proprietary network protocols. The domain specific language provides a very simple way of defining all messages, hiding the cumbersome details of encoding and decoding with the appropriate wire format, which also reduces the opportunity for coding errors.
The above characteristics lead to the reduction of the total costs associated with the development of the corresponding software components: faster development, higher quality and easier maintenance.
Current and Potential Domains of Application
Telecommunications, Data Communications, Networking, Proprietary communication protocols