Wednesday, September 17, 2008

Vault-OS : Redundancy Architecture

I have three embedded PCs under development right now and this is my plan to cover all my bases for redundancy and fault-proof operation for at least 10+ years before mean time of failure. All PCs used are rated for at least 99000 hours of continuous uptime but there is no reason you could not replace any of the devices below with a cheap 386 laptop in it's place.

1. A fanless, low current x86 embedded box running on DR. DOS 7.0 with a text mode only application (PowerBasic 3.5) that supports all automated process control (TSR doing realtime I2C sharing data with main program) using very simple text window interface to also run apps for inventory, personnel, logging and calendar/scheduling. This hardware is 90%, software 50% finished as of right now. This is the root bedrock "neverfail" device that is supposed to run no matter what. This has a 400 MB compact flash card for storage and 64 mb of SDRAM running a 16 bit environment with Ethernet terminal-to-terminal communication with IPX packets. Nothing to crash or fail, ever, if I make it solid enough. With any luck, running in 20 years like a top. This will feature document archiving and retrieval with PDF viewer but it is discouraged to use this if #2 is available.

2. The Vault-OS Thinkboy running BreadBox Ensemble (GEOs) in a full windowed environment with complete redundancy of all the functions above and the capacity to take over from the #1 box at any time. This will look to shelter dwellers like the primary device but in reality it will always run primarily as a mirror of #1 above unless #1 fails at which time all jacks can be plugged into #2 and it will immediately take over. Obviously if #2 fails, there is always #1. This will probably be 128 MB SDRAM and a 2 gigabyte compact flash card for disk storage. This device will feature synthesized voice and an onscreen radio/TV monitoring window in addition to CD-ROM music playback. Most of this is being written as a GEOS NewBasic application with a few C++ supporting programs for the nitty-gritty realtime controller threads. This environment will of course have PDF viewer and HTML browser if required with document archiver in addition to all the functionality of #1 above running independently. This device is hardware 95%, software 30% finished.

3. For security camera monitoring, voice recognition and speech synthesis command dispatch, this machine will be running a scaled down version of Windows '98 (XP if available) that will communicate primarily with boxes #1 and #2 through the network and issue commands to the two devices through IPX packets. It may or may not be running in .NET 2.0, if it is it may be using the VG.NET library for all interface displays. Eventually it is planned that this device will incorporate all the functionality of both devices #1 and #2 and be able to take over completely from them at any time if they fail. It should be noted that for $12.00 USD you can get a security CCD card off Ebay that will permit you to plug'n'play up to 16 cameras at once with ease running motion detection on all of them through software. Again, it might appear this machine will be the primary device in the shelter when in fact it will just be mirroring #1 or #2 until it is needed to cover for a failure. Right now I have got a really good laptop running XP I will store in the shelter that will be this device, so hardware is 100% finished. If I can afford a powerful enough embedded PC for this computer it may be a dedicated box like #1 & #2 someday. The best aspect of this device will be realtime voice commands of the entire Vault-OS system through the Microsoft Speech API. In terms of software, all I have written to date is a shell desktop that looks similar to the "Shelter OS" in the game Penumbra Overture. It does nothing but pop up prototype windows from icons for various functions. I'd say only 10% of this software is finished.

My biggest compromise here is figuring out how long it will take me to write security camera software through the interrupts in GEOS and realizing that both this task and speech recognition are just too easily implemented through Windows 98/2000/Me/XP now for me to reinvent the wheel. I feel my time spent right now on #1 is very productive and I am not going to waste weeks trying to build things to run in DOS or GEOS that are just too ambitious when I can do it in ten lines of code in Win 98/2000/Me/XP.

P.S. This is the serial barcode printer I am using which I got off BGMicro for a song. I am debugging #1 to output these labels with barcodes for inventory which I already built a scanner for about three years ago (using surplus Panasonic BCS-84). I highly recommend it, they won't last long at that price on BGMicro and normally sell for about $300.00 USD. Vault-OS running on device #1 will have a specific driver to output barcode labels to this device for inventory control. The big cheap barcode scanner to hack nowadays is the CueCat if you're looking for one around $3 bucks in surplus.

No comments: