Friday, December 16, 2016

Embedded Integrated Message Stack For CD-OS With Discovery

I first added some minimal support for LAN messaging to assist in autodiscovery of other workstations with zero configuration back in 2002. It worked fairly well but only on platforms supporting the Microsoft SMB network standard. It was not what I would call a really robust, hardcore discovery and messaging system. It worked for a long time in registering URLs for other servers which I could then load resources from using JSONP. It was always sort of a hack pending a better mechanism. The slightest security on a network can block this method.

I think I did an experiment with a UDP broadcast back in 2006 which appeared to work but seemed way too lightweight for what was needed.

In 2010 I worked for a couple months integrating UPNP into Mongoose code. It worked very irregularly and was subject to all kinds of network security blocking it. I tried again to do some hacking at it in 2012 but the general security patches added to UPNP implementations by Microsoft tended to make it extremely unreliable. I decided for this reason I would not touch the code any longer and just work on the server stuff, particularly the client end. I thought if I ruminated for a while I'd come up with something better. A "little while" ended up being 4 years before I even looked at it again. It was still crap when I turned it back on in 2014. Just not the right approach.

I started to experiment with this a few months back :

I have been integrating this since October, doing most of the work during my commute. It is amazing and super compact. It has only added about 60K to the existing server. I have only touched on some of the features and they work astonishingly well. With the client end running Socket.IO (fully supported by fallbacks on IE6), any workstations participating in the CD-OS intranet populate a list box at the right side of the screen and if approved previously by the administrator now constitute links to the front ends of those servers. So you boot one CD-OS server and you can now see your generator room, your inventory pantry, your aboveground weather station, your security center with CCTV feeds. Since every CD-OS has all the functionality built-in of every other workstation, if you want you can just run every single required feature locally without surfing anywhere. A more likely scenario is a server running your shortwave communication radio (connected from that machine to a radio service), one box running your "Memex" with all your PDFs and another running all your IP security camera feeds to distribute some the work around to different decoupled devices in larger retreats and shelters. I need to do more experimenting of my own but I expect the most important feedback will come from when I get it up on Github on just how much you can run on one server without overloading it.

I am going ahead with this 0MQ code for my first Github release. All I know about it is that in the ten hours I have devoted to integrating it I have discovered it to be the best of all at real-time asynchronous discovery in cross platform code. I intend to improve a lot on this, particularly in the area of broadcast alerts for emergencies, global messaging, cron jobs and general alert handling. At present it just works and that is better than the other alternatives I have tried in the past.

Very early shot of "VAULT-OS" from around 2010 or thereabouts.

1 comment:

Texas Cyberthal said...

I beat you onto Github, Grandaddy Thal.