The Internet Appliance project integrated several off-the-shelf components with custom development to quickly create a new class of multi-functional Internet Appliance. This appliance, in a single package, and controlled through a web-based interface, contained the following functions:
- Firewall with content filtering
- Wireless and Home Plug connectivity
- File and print servers
- Virtual Private Network (VPN)
- Music & photo players
The project’s objective was to create a functional prototype that was packaged appropriately for the target market. Development time, functionality, and the look and feel were the most important design factors. We created a custom enclosure providing the external look and feel the client desired.
To reduce development time, the core of the unit was comprised of off-the-shelf PC products, combined with custom interface boards and software. The open source nature of Linux made it the obvious choice for the operating system. The challenge with using Linux is that while the open source community is vast, there is no single entity to look to when issues arise. Therefore, testing is critical, as is repeatability in software builds. Although there are daily new releases of many open-source modules, there are no guarantees that the latest releases of each module will work correctly with other modules.
Only by carefully controlled integration and testing can proper operation be verified. To produce reliable software revisions, we developed a standardized configuration and build process, and fully integrated and regression-tested each software change before releasing it. While a high-quality revision control system is critical to the success of any project, the development team must also have the discipline to use it, checking in work on a regular basis. These process steps were critical to creating a working, reliable system in months rather than years.