MarketOrder needed to move existing users from an obsolete legacy ordering system to an updated seamless ordering system. The seamless ordering system would be implemented in two versions: one that used new hardware and one that used the existing legacy hardware. New users would receive the ordering system and the new hardware. Existing users could use their existing legacy hardware with the new seamless ordering application.
The goal was to provide a smooth transition to the new ordering system and slowly replace the legacy hardware as it reached end-of-life. This would spread the cost of upgrading hardware over a longer period of time and ease the financial burden to the company. Upgrading all of the legacy devices would have been cost prohibitive. MarketOrder needed to make the legacy hardware operate on the new seamless ordering platform. The challenge was to implement the functionality of the seamless ordering system on the legacy DOS-based handheld devices.
MarketOrder.Com (Seattle, WA)
I was the project lead for this application and designed the application, implemented the user interface, implemented the custom database, and managed a very skilled junior engineer who implemented the TCP/IP interface that linked the terminal to the server. The terminal required a “from scratch” database engine that could handle up to 100,000 item records in less than 4M of RAM. The database required extremely fast record access and update capability. It used a double-hashing algorithm to store and retrieve the records, required no index or directory, included multiple data integrity checks, and could do limited data correction. These measures were required since the battery operated terminal could crash at any time due to the device being dropped, having battery problems, etc. The eDisk memory was battery backed-up but the main RAM was not. This database engine was successfully implemented years before on a different system.
This project was within a month or two of completion when the company lost venture capital funding and went bankrupt. The handheld portion of this project was nearly complete (both for new and legacy hardware) but the backend servers needed a few months to complete.
This application would have provided a bridge between the existing legacy system and the new Pocket PC application that was being constructed. Existing customers could have used existing hardware to communicate with the new servers. Customers could then use this system while transitioning their equipment to the future Pocket PC application.
The prototype application used the following: