Java on Gizmos:
Special-Purpose Machines Are the Newest Java Deployment Platform
Around the corridors of Sun Microsystems' campus, the phrase "Gizmos by the Billions" keeps popping up-on doors, in office cubicles, and on T-shirts. The phrase represents the latest thrust for Sun in finding new markets and revenue streams for the Java platform, which is now a language with multiple APIs, as well as a set of inter-related operating systems (see sidebar). "Gizmos" in the Sun vernacular describe any client device besides a conventional computer-be it a telephone, fax machine, television settop box or even an oscilloscope. The "gizmo" market, which is more conventionally known as "embedded systems," represents a long-sought-after level playing field in which Microsoft doesn't dominate. At least not yet.
For Sun, Hewlett-Packard, and others, a new generation of smart devices is ripe for Java technology. Until now, if you wanted to upgrade the software on a smart appliance-say, a mobile phone or a photocopier, you had to swap in a new EPROM or even trade in the entire machine for a new one. With Java applets, you simply upgrade the software via disk or the network, much as is done on a PC today.For developers, the advantages of using Java technology are potentially substantial. Not only can programmers apply their Java expertise to new platforms, but the Java Virtual Machine gives programmers a somewhat uniform deployment environment on platforms that can differ radically. Dave Faoro, manager of Software Development for VeriFone, which is using Hewlett-Packard's new Virtual Machine, has said that Java software allows embedded software developers "to define a general software architecture that works across multiple product lines. Applications that require third-party certification could potentially be certified once and used across a family of products. This could speed time to market and simplify the deployment of products at customer sites."
The embedded system market is so large it could-taken as a whole-become the biggest single environment for Java applets. Jim Hebert, general manager of Sun's Embedded Systems Software Group, points to a study by Deutsche Morgan Granfeld estimating that 3.
"What are the recipients for my kind of software?" Hebert asks rhetorically. He pulls out an Ericsson telephone. "This is a digital device with a display connected to the network. That means that there is no reason it can't be used for more than just a phone. It could, for example, without difficulty give me stock quotes and late breaking news."
But the telephone is only the most obvious example. Hebert thinks that Java applets could run on everything from photocopiers to fax machines, gas pumps to microwave ovens. "It used to be that all these devices were free-standing but those days are about over. All Xerox copiers, for example, are now networked so they act as printers and photocopiers. "
Hebert contends that as soon as you connect a device up to a network, things change. "We're talking about billions of devices that won't use browsers and e-mail-the traditional use of the Internet-but will have IP addresses all the same. Consider, for example, what happens when you give a cab driver in Tokyo your destination address. In the old days, drivers used to stock up with maps because in Tokyo, particularly, navigation is difficult-because numbers aren't sequential like they are in most of the rest of the world. Obviously, a flat panel display connected to a CD player could give you information on the streets and buildings much more conveniently. But there's a next step beyond that. What happens if you don't update your CD on a regular basis? The CDs won't know that a bridge you have to go over is closed for repairs, or that there's a terrible traffic jam between you and your destination. So let's imagine that instead of getting data from a CD you get it from an Internet connection that is constantly updated for traffic and construction projects. That's the promise."
Hebert suggests that Internet connections could be used for passengers as well, enabling them to read a newspaper online or do e-mail, or perhaps even download CNN. "For all this you need a display system and a low cost means of broadcast-and one way to do that is to give each cab an IP address."
While much of the Java embedded systems story is still speculation, there are a few concrete examples. One of the first was demonstrated by Tektronix, which has incorporated Java in an oscilloscope. In a press release, Jonathan Schwartz, director of product marketing at JavaSoft, said that the technology will enable Tektronix to "deliver application-specific functionality quickly without requiring customers to make costly investments in new equipment." Tektronix said it already has three specific oscilloscope applications ready for downloading: one for the disk drive industry, another for electronic design engineers dealing with power consumption, and the third that lets customers print multiple screens of test data and facilitates the documentation and review of test information. The fist two Java
applications will be available in mid-June-shipped to customers on floppy disk. The customer inserts the disk into the oscilloscope and the application is copied onto the device's hard drive. The print utility application is installed similarly, but customers will download it from the web.
While working embedded Java applications are still few in number, there is no shortage of ideas in various stages of fruition. Consider the iButton technology from Dallas Semiconductor Corp., which caught the attention of attendees at the recent JavaOne conference. With a ring on their finger, attendees could enter their coffee preferences, then pick up the drink brewed to their specification. (In fact, Java was used to control the entire coffee operation in which beans were loaded in eight "silos" equipped with sensors that sounded an alert when inventory levels are low and need replenishment. The beans traveled through a grinder, then were poured into a metal filter, and brewed with hot water. Java objects handle the manufacturing execution, batch processing, machine positioning, and remote I/
Another example of a Java embedded system is the "network vehicle" demonstrated by Sun, IBM, Netscape and General Motor Corporation's Delphi Delco electronics unit at the CeBIT Fair in Hanover, Germany. IBM Chairman Louis Gerstner told the audience to imagine a car driving down the Autobahn that suddenly develops an engine problem. "Instead of flashing a warning light, it sends a message directly to the manufacturer over a wireless connection to the network." From there, the manufacturer's system analyzes and diagnoses the problem, and perhaps even uploads an electronic fix, perhaps without even having to notify the owner. This joint project was a particularly sweet victory for Sun because Delco originally started the project with Microsoft. "Microsoft wanted to dictate how the automobile industry standard was going to look, and we politely told them to take a hike," said Ed Dilley, senior development engineer for Automotive Electronics at Delco, in a Wall Street Journal article.
Chorus and HP's Java clone
In targeting the embedded systems market, Sun has come full circle. After all, it was back in 1994 that Java's predecessor, Oak, was sold as a platform for interactive television, an idea that has so far failed miserably, luckily for Sun-which matched Java to the much more viable Internet market. In going back to its roots with embedded systems, Sun acquired Chorus Systems, a 10-year old company whose primary business has been to provide real-time systems software to telcom equipment manufacturers-companies that build central office switches and private branch exchanges. Its customers include Alcatel, Nortel, Lucent, Nokia, Zenith and Ericsson.
"The thing about these systems is they operate inside a million dollar piece of equipment that's permitted only two minutes of down time in 40 years," said Sun's Hebert. "That kind of reliability is not thought of as remarkable. It's expected. Chorus has been providing system software for use in these environments and is shipped in central office switches and Cray computers as well." Hebert said that Sun's JavaOS for Consumers is based Chorus and includes a Java Virtual Machine as well as the PersonalJava application development environment.
"You can think of JavaOS for Consumers as Chorus and the Java Virtual Machine married together and made as small as possible," said Hebert. "We've always talked about Java in the context of building boxes to support millions of e-mail users, but now we also build system software that lets us support hundreds of millions of little tiny devices that don't have very much memory-like cellphones or pagers or doorlocks or sensors in an automobile. With the acquisition of Chorus, Sun is now able to redefine scalability to extend to large numbers of very small devices, as well as big boxes that support large numbers of users in a very real-time environment."
And Sun is not alone in eyeing the embedded systems market. Hewlett-Packard recently announced an independently developed, Java-compliant virtual machine. Consuming just half a megabyte, the software is designed specifically for embedded systems. HP developed the product in a clean room environment, meaning that it provided it's programmers with a list of the Java specifications, but insured that none of them had before worked on Java technology itself, and thus knew nothing about Sun's original implementation. That approach differs from other companies, which have built their versions of Java software in cooperation with Sun.
Doing so avoids having to pay licensing fees to Sun, and at this writing Sun has treated the cloning more as the flattery of imitation than as a serious competitive challenge-much the way AMD complements Intel in cloning the Pentium. Jon Kannegaard, vice president of software products at Sun's JavaSoft division, told the Wall Street Journal: "It really signals that Java has arrived when a company as big as Hewlett-Packard decides it's big enough to clone." It is probable, of course, that Sun-as Java's inventor- would prefer not to have HP as a competitor. On the other hand, HP is itself a manufacturer of embedded systems and its move is a clear endorsement of the Java platform for this market. If the language succeeds in this environment, there will be more than enough revenue to make everyone happy.
Indeed, the first licensee of the technology was none other than Microsoft, itself. The company said it would use HP's technology to integrate Java language support into Windows CE and other Microsoft products. Frank Fite, director of Windows CE core technologies at Microsoft said Microsoft was impressed by HP's virtual machine implementation "because it is easily customizable and allows us to integrate Java programming-language support into Windows CE without overwhelming the system requirements of some devices." And why didn't Microsoft license the Java Virtual Machine directly from Sun? Nobody is saying, but it's a reasonable hunch that the enmity between the two companies-if nothing else-made HP's product more enticing. (Sun has meanwhile announced a Windows CE virtual machine of its own.)
Microsoft, as usual, is in the running
One of the biggest attractions of the gizmo market is that is presents a more or less level playing field. While Microsoft is here with Windows CE competing against various flavors of JavaOS, the company is not in its usual role of dominant player. That said, Microsoft is aggressively signing deals, even among companies that have signed on to the Java strategy. GM and Microsoft are still working together. Cable television giant TCI plans to deploy up to 10 million settop boxes using PersonalJava application environment by 1999, but also plans to put CE on 5 million settops.
And then there's Sony. Last March, the company announced it would license PersonalJava technology and incorporate Java applications into its advanced digital AV products. In addition, Sun said it would create PersonalJava software development tools for Sony digital AV products in the home entertainment network environment. In a joint Sony-Sun press release, Akikazu Takeuchi, president of Sony Corporation's Software Platform Development Center, said that Sony would create "an open architecture for the home entertainment network environment where users will be able to enjoy the seamless interaction of computers, AV equipment, and digital TV." He praised Java software as "an excellent cross-platform tool for creating home entertainment network applications."
Then, less than two weeks later, Sony announced plans to license Windows CE "for use in certain future products" while Microsoft announced it would license Sony's Home Networking Module middleware "for use with certain versions of Windows CE." In the announcement, Nobuyuki Idei, president of Sony Corporation, said that "the time has come for the PC industry and the AV [audio-visual] industry to shake hands. Sony supports the establishment of an open architecture that will enable the seamless integration of PC and AV products. The cooperation between Microsoft and Sony will play a key role in making this happen." The companies said that they were joining forces to create a hybrid PC/
"Sony plans to use Windows CE as an operating system in its home networks products, while supporting the development of applications based on PersonalJava for the home network environment. This won't present any problems because PersonalJava applications can be run on Windows CE operating systems in our open architecture-an open architecture supporting more than one operating system."
Meanwhile, the competitive, acrimonious relationship between Sun and Microsoft is unlikely to let up soon. At this writing, Sun has just won a preliminary injunction preventing Microsoft from using the "Java Compatible" logo as part of it's Internet Explorer 4.
Off the legal stage, Sun was also tweaking Microsoft's collective nose. Sun opened the JavaOne Conference with James Gosling, the father of the Java technology, throwing a pie at "Bill Gates," that is, someone wearing a Gates rubber mask. The stunt played off a real-life incident in which the world's richest man got creamed on his way to a speaking engagement. Said Gosling: "I always wanted to do that."
Multiple Java APIs, OSs From Sun
At last April's JavaOne conference, Sun introduced two new Java APIs: EmbeddedJava and PersonalJava, while reminding attendees that at third API, Java Card, has been around since October 1996. Each is a subset of the full Java language, designed for slightly different applications.
EmbeddedJava is for embedded systems: those with limited or no display, and limited memory. Candidate devices include mobile phones, pagers, process control, instrumentation, office peripherals, and networking routers and switches. The API is designed to be easily portable to any real-time operating system, and to run on the major microprocessors in this market.
PersonalJava is designed for network-connectable products used in principally in homes, but also on the road and at work. Candidate devices include settop boxes, game consoles, mobile hand-held computers, web-connected televisions, and smartphones. Sony licensed PersonalJava for what it calls the "home entertainment network environment."
Java Card is designed for smart cards, and has been licensed to companies, including Schlumberger and Gemplus, who deliver 70 percent of the smart cards world-wide. It is the API used by Dallas Semiconductor for iButton.
In addition to these application development environments, Sun also sells a family of Java-based operating systems designed for various embedded devices. JavaOS provides a run-time environment specifically tuned to run Java applications directly on hardware platforms, without requiring a host operating system. Each OS contains the minimal amount of system software needed to support the Java Virtual Machine and an appropriate subset of Java APIs, allowing the software to maintain a very small footprint.
The family includes:
JavaOS for Consumers -- an embedded operating system tuned for the PersonalJava application environment and based on a realtime engine.
JavaOS for Business --which is optimized for the enterprise Java platform and network computing. The OS is being jointly developed and co-marketed with IBM as announced last April.
ChorusOS -- Sun's realtime embedded operating system that is being leveraged widely in the telecommunications market.