Rangachari Anand
May 28 2004
I recently discovered manageability.org the web site of Carlos Perez, a former colleague from my days at IBM Research. Carlos was one of the experts on object oriented programming in our e-commerce group (we were working in the area of e-marketplaces). There is a lots of great stuff about Java in the enterprise on this site and its definitely worth a visit.There is one particular article that caught my attention - about the possibility of using hardware as a distribution mechanism for software. This is a topic of great interest to me since I have been working on such network appliances at a startup, for the past four years. We are essentially a software company but do not sell our software directly to customers. Instead, it is packaged along with hardware in the form of an appliance. There are several reasons for taking this approach and they include:
- For high-end applications, our software runs on a standard x86
platform but the hardware requirements are quite specific. For example,
our software requires four Ethernet interfaces with each interface is
used for a particular purpose. Now, a customer could potentially
install our software on his own system but after installation, it would
take some complex probing to identify the function of each interface.
Instead by buying a box preinstalled with our system, they get a
convenient, easy-to-use box with all the interfaces on the front panel
with clear labels indicating their intended purpose.
- On the low-end, our software can run on diskless Geode based systems from vendors such as Soekris and SnapGear. However, simply getting the software installed on these boxes requires the use of PXE which is probably far beyond the ability of most average customers.
- Hardware and firmware quality is variable: A small but significant number of boxes have suffered hardware failure and have to be replaced. Since we sell the box, we are responsible for both hardware and software failures we have to keep spares available at all times.
- Numerous logistical problems with the hardware vendors, who are
all located in Taiwan and China. We have to spend extra effort to
ensure that the vendor preloads the software properly and tests the
boxes before shipping.
- Hardware will change with time: One can not count on having exactly the same hardware and firmware (such as BIOS) available forever. In order to ensure hat our software continues to work on older shipped boxes, we need to maintain a sort of a "museum" of all the old equipment that we have shipped.
Network appliances usually do not include a CD ROM so they must be updated over the network. Getting software upgrades to work properly has been one of the main challenges that we have faced. In general, flash or disk must be structured into multiple partitions so that the live code does not have to be touched. The new version of the software is written into another partition and when properly installed, the box is changed to boot from the new code.
Copyright © 2004 Rangachari Anand, All Rights Reserved.