I’ve discovered a pretty incredible binary format for the messages – after trying about everything else on the planet. Seems to be working pretty good and it results in very tiny packets of information, the minimal you could imagine in fact.
ZCM : Zero Communications & Marshalling
It has the precise generation syntax of ASN.1, the minuscule size of CBOR, the ease of use and portability of JSON and the fine parser type checking of XML. I can’t see it getting any better.
This is all a very hot topic nowadays but we were thinking of microservices implemented in a heterogeneous environment handled by a universal message format back in 2006. I guess it took this long to settle on the best way to do it.
It’s also very good at sending structured binary data … images, maps, streaming video frames, etc. … there were lots of weaknesses in those other formats that don’t exist in this one. It could be possible to send all kinds of stuff between CD-OS monitoring stations and from microservices using this message syntax that were just not practical with things like JSON, XML or even ASN.1 and related binary formats.
So far I have replaced all the basic messages that were working in previous formats which is good enough for the prototype right now. I am very enthusiastic about this approach because I can see in the future with upgrades it will be capable of doing incredible things between work stations. I was experimenting with the BEOWULF AI system about two years ago and it works off sharing in a constant conversation between parallel processors that is a very good way for a poor man to build a super computer. The day could come when you would have multiple nodes of AI logic running all inside your shelter that would talk whenever they wanted to over the network at any time to request more information or ask for data specifically related to a current concern. This message structure would support those kinds of requests pretty easily.
It scales well from a PIC-32 chip right up to a parallel supercomputer so I think this ZCM will be the final answer to this problem going forward.