HomeDigital EditionSys-Con RadioSearch Java Cd
Advanced Java AWT Book Reviews/Excerpts Client Server Corba Editorials Embedded Java Enterprise Java IDE's Industry Watch Integration Interviews Java Applet Java & Databases Java & Web Services Java Fundamentals Java Native Interface Java Servlets Java Beans J2ME Libraries .NET Object Orientation Observations/IMHO Product Reviews Scalability & Performance Security Server Side Source Code Straight Talking Swing Threads Using Java with others Wireless XML

I'd like to start this month's article with some of my impressions of JavaOne '99. Last year was far more exciting with promises of new magic kits and potions handed out in abundance. This year there was a definite touch of reality in the air with less sleight of hand and more live rabbits actually jumping out of the hat and onto the stage. The smoke and mirrors were still there, but there was some substance behind them.

The "real" feel to JavaOne is due to the fact that Sun seems to have finally gotten its story straight in terms of what "ubiquitous" really means. When you look at WORA (write once, run anywhere), the promise still holds true. However, what is it that you end up running anywhere? Is it the same Java? I don't know about you, but I feel more comfortable knowing that the Java that's going to run on my pager isn't the same one that runs my banking application.

The Java platform has been segregated into three platform editions. Sun's Web site explains their strategy: "Recognizing that 'one size doesn't fit all,' Sun has regrouped its innovative Java technologies into three editions: Micro (J2ME), Standard (J2SE) and Enterprise (J2EE)."

A detailed discussion on the purpose of each edition of the Java platform is best left for another time. This month I'd like to focus on some of the application areas of the Java 2 Micro Edition - specifically, the 3Com PalmPilot consumer device and how it leverages the features of the Java platform. We'll also look at why the PalmPilot may be the killer application Java has been looking for.

Consumer Devices and Java
Java started out as a language for embedded consumer devices, specifically for set-top boxes like the toaster and the television. Over the last four years, Java has made its impact on the enterprise as the language and platform of choice for designing distributed, enterprise-level business solutions. Indeed, Java is one of the key enablers for the rapidly evolving areas of e-commerce.

One of these areas is the world of intelligent consumer devices where the intelligence is built into the network. The various devices, such as cell phones, pagers and smart cards, need to be able to access the network via a common computing platform. The J2ME edition of Java attempts to provide such an environment. The most practical requirement on a software platform that can be embedded in these consumer devices is its footprint, which must be extremely small. One of the main features of the J2ME is its tiny footprint.

Sun has been giving away the Java language and associated APIs for free, but that doesn't bring the money in. With the acceptance of Java as the common platform for consumer devices, Sun has a foot in the door of an extremely large market. Now they can really start collecting on their investment in Java.

Java 2 Micro Edition
J2ME bundles the APIs for software development in the consumer space. This includes devices ranging from rings, smart cards and pagers to more intelligent PDAs like the PalmPilot and cell phones - all the way up to appliances with set-top boxes such as TVs. With J2ME Java provides a complete end-to-end solution for creating networked products and applications for the consumer and embedded markets.

The J2ME framework further segregates the major types of consumer devices by grouping them into a limited number of categories with varying levels of built-in intelligence. To help content developers, each category has a profile; it's defined in the form of a specification of the minimum set of APIs useful for a particular product, and a specification of the Java Virtual Machine functions required to support those APIs.

The PalmPilot - Java's Saving Grace?
Back to JavaOne -another obvious thing was the change in what Sun was peddling this year. Last year it was all about network computers. The NC was going to be the ultimate consumer-end device; everything else would reside on the network. Another thing I noted -there wasn't much talk about rings and buttons.

This year, though the message -"The Network Is the Computer" -was still the same, the vehicle for conveying it was radically different. It seems that the ultimate device for taking Java to the streets has been identified as 3COM's PalmPilot. I see this as a smart move. Sun is tapping into the large market the Palm has and will have in the future.

My take on the alliance is that the Palm has given Java the home it was desperately looking for. Even though Java was finding applicability in other consumer devices, it wasn't making a significant impact. Over the last two years Sun has introduced tailored JVM technology to serve products in the consumer and embedded markets. These include Personal Java technology targeted at screen phones, high-end PDAs and set-top boxes, and Java Card technology targeted at smart cards, the Java Ring, I-Button, etc., which have yet to get the buy-in from consumer-oriented vendors. A more intelligent device was needed that would do a lot more than allow you to brew your coffee. The Palm comes with a large set of application suites, so it already has the beginnings of industry verticals stemming from it.

KVM -The Palm's Keys to "Ubiquity"
The relationship between the Palm and Java is going to be one of symbiosis. The market for one feeds the market for the other. To increase its lead in the marketplace, specifically against the CE, the Palm needs to have an open, nonproprietary interface for working with other devices. This is made possible by Sun's Java KVM, which forms the core of J2ME.

The KVM is so named because its size is measured in the tens of kilobytes, around 80-100K. It fits in the tiniest handheld devices such as pagers, and needs to run on an underlying operating system. In the case of the PalmPilot, this operating system is the PalmOS. The KVM is a new Java runtime environment built from the ground up to make an extremely lean implementation of the JVM.

The KVM has been developed by Sun in collaboration with other industry partners, such as service providers. These partners are crucial for making sure the KVM can truly enable mobile network devices such as digital cellular phones, pagers, mainstream personal digital assistants, low-end analog set-top boxes and small retail payment terminals.

The KVM binary code will be available in prerelease form for 3Com's Palm II and Palm V. Sun anticipates that a wide range of wireless devices containing the KVM will become available early in 2000.

PalmOS -Java's Gateway to the Consumer?
As mentioned above, the KVM needs an OS to run on. The PalmOS software will serve as a primary reference platform for application development using KVM. Sun and 3COM are collaborating to provide an end-to-end solution for delivering content and Java applications to Palm computing platform devices via Sun's software products. The next level of integration will involve joining Java with 3Com's Palm.net service, the recently announced wireless service for the Palm VIII.

Rubbing the Magic Lamp...
Another enabler for this new world of consumer devices is Java's Jini technology, which allows a device on the network to discover other devices and query them for the services they offer. The Palm will be another such device. With Jini, the Palm can become truly network-enabled and leverage services from a plethora of computers, appliances, enterprise-level systems and consumer devices.

Putting It in the Commerce Perspective
J2ME and the KVM help solidify Sun's vision of "providing the dot in the .com" networking world. This ties in with the e-business model of service-based businesses on the Web. The current commerce market is rapidly shifting from a product-based paradigm to a service-based one. This means that instead of installing software products, organizations are shifting toward a model in which the products are hosted at remote locations and their services are available across the network. All the necessary software can be downloaded across the Internet.

This isn't a reality yet, but Java enables this business model because of its rich support for networking, dynamic nature and portability. The Palm is one of the many devices that can play in this area. Once the underlying infrastructure is in place, these devices can play more substantial roles in e-commerce transactions. For example, the Palm can act as a kiosk for purchasing goods, quoting services, auctioning products and so on.

Cross-Device Portability
It looks like Java and the Palm have entered into a marriage made in heaven. However, fidelity isn't necessarily a precondition for this relationship. One of Java's greatest claims to fame is its portability. In the consumer device segment, i.e., using J2Me, it translates to portability across these devices. The Palm is one of the many consumer devices that will support an edition of the Java VM. Indeed, several other consumer devices already support Java on their operating systems. Basically, Java allows them to speak the same lingo.

Trading Places
The market for e-business is expected to grow to over a trillion dollars by 2003. My contention is that in about 10 years the only kind of commerce that will exist in this world is e-commerce. Programming languages come and go, but the applications they give birth to last a long time. Devices like the Palm are introducing completely new suites of applications that will help define the end-user interface in the world of e-commerce. The combination of the Palm and Java creates a powerful, exciting platform that's revolutionizing the way e-business is conducted today.

Author Bio
Ajit Sagar, a member of the technical staff at i2Technologies in Dallas, Texas, holds an MS in computer science and a BS in electrical engineering. He focuses on Web-based e-commerce applications and architectures. Ajit is a Sun-certified Java programmer with nine years of programming experience, including two and a half in Java. He can be reached at: [email protected]


All Rights Reserved
Copyright ©  2004 SYS-CON Media, Inc.
  E-mail: [email protected]

Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.