|
Guest Opinion
November 2000
TANSTAAFL
Embedding the Internet isn’t easy, and designers must make intelligent tradeoffs.
Bill Weinberg, MontaVista Software
Today's pervasive applications integrate Internet connectivity as a matter of course. PDAs, smart mobile phones, home-networked appliances, audio systems, office equipment, and even automotive consoles offer up category-breaking features like Web access, email, and browser-based configuration. The most taxing technical challenges to "wiring" these devices come from the need to embed the hardware/software "stack" that formerly resided only on resource-rich workstations, desktops, and servers.
This is a multi-faceted problem. Let's climb through the stack to review key pervasive-networking technologies, and the challenges each presents to IA (Internet appliance) developers.
Physical layer: Modems and LANs provide convenient desktop Internet connections, but support for such connections is nontrivial in IAs. An IA may require a custom device driver or even a full "soft modem" to leverage high-integration SOC (system-on-chip) technologies. Wireless connectivity (e.g., Bluetooth), while focused on portable IA designs, is also new, and both interface hardware and device drivers are only now becoming available for embedded OSs and CPUs. When device drivers don't exist, embedded-platform vendors can charge $30,000 to $50,000 and take up to three months to develop one.
Protocols: With the physical layer in place, IA vendors require software protocols for Internet support, starting with TCP/IP. For modem connections, the IA may also require some switched-network protocols. Most embedded OSs include some form of TCP/IP stack. But most networking applications and indeed software developers expect to use industry-standard APIs, like BSDLite (sockets) or a WinSock interface. Many embedded-networking offerings do not follow these standards, instead employing proprietary APIs. Embedded Linux can avoid such issues by providing open-standard APIs.
Applications/services: Even with available hardware interfaces and protocol stacks, IA developers must still build or acquire the applications and middleware needed to implement their device designs. Let's consider the two broadest categories of devices.
First, server appliances, like home gateways or even wired consumer appliances, require network software including a Web server. The world's most popular Web server, Apache, offers rich functionality, but needs a robust OS and lots of memory. Smaller, embedded daemons and servers exist, but they sacrifice flexibility and options for interactive CGI (common gateway interface) applications.
Second, client appliances, like PDAs and smart phones, require browser and email applications, but lack desktop user and network interfaces. Most IA platforms will not run Netscape or Internet Explorer. The few embedded browsers available today are limited in terms of HTML version support, Javascript capabilities, multimedia plug-in support, security, and Java integration. The situation is improving, with better Web clients and open-source browser products promising to catch up to their desktop cousins in the next 12 to 18 months.
The moral is that embedding the Internet isn't easy, and designers must make intelligent tradeoffs—There Ain't No Such Thing As A Free Lunch (TANSTAAFL). The good news is that tens of thousands of engineers in the consumer-electronics field and in the open-source community are expending time and energy in meeting the above challenges. Stay tuned for a richer embedded Internet experience.
Author information
Bill Weinberg is the Director of Marketing at
MontaVista Software.
|