Table of contents
Protocol Buffers is a highly efficient method of data serialisation. You first define your message types, and the fields you wish to express, and then use the Google compiler to create the code. See the official Google project site for information.
message vehicle
{
optional string _type = 1;
optional string _make = 2;
optional string _model = 3;
optional string _registration = 4;
optional uint32 _odometer = 5;
optional string _transmition = 6;
optional string _fuelType = 7;
optional string _engine = 8;
optional string _colour = 9;
optional string _contents = 10;
optional bool _towingATrailer = 11;
optional float _grossMass = 12;
optional string _trim = 13;
}
Turbo Dispatch defines string fields, but there is no definition as to which fields you can use with which message type (except for some examples).
When using our Google Protocol Buffers implementation, the messages are built into classes that an IDE (e.g Visual Studio), can inteliseance, prompting which fields are available. This make development easier, and reduces the possibility of mistakes.
Backward/Forward compatibly.
Extending the data structures is trivial, and does not break applications that have already been deployed. We compile the message structures into our .NET DLL connector, so keeping up to date with changes, is juat a metter of downloading the latest DLL.
Compatibility with Turbo Dispatch
Our .NET DLL connector has a compatibility layer that converts from TD to Protocol Buffers and back again. Since TD does not define which fields can be contained in each message, there is the possibility this convention will fail. Under such a situation, the message will be sent in the original TD format, and providing the destination is accepting TD formatted messages, will get though.
We have tested all known messages, but if there is a situation where the conversion wont take place, we will do the work necessary to fix it.
