This year's JavaOne was about Java technology moving in three directions, which I classify as the Big, the Small, and the Cool. The Big is Java Web Services, which is Java's challenge to Microsoft's .NET strategy. The Small is Java on cell phones, PDAs, and convergent devices that will be your cell phone, PDA, GPS, camera, and multimedia player. The Cool, as if having a single convergent device is not cool enough already, is that Java technology is going to be everywhere and in everything.
Java Web Services is all about systems integration and interface standardization. The goal of Java Web Services is to provide a service-oriented architecture (SOA) that can tie together distributed systems using platform-neutral technologies. The motivation behind Java Web Services is the growing shift in Web transactions--from person-to-machine transactions to machine-to-machine transactions. HTML is great for person-to-machine transactions, but these machine-to-machine transactions need a more concise interface. This interface is provided by Web Services Description Language (WSDL), which is an XML-based description of a service. WSDL tells you how to pass and receive parameters as well as what protocols to bind your requests to.
Transactions are also going to be made across the Web and potentially through firewalls, so transactions must be wrapped in envelopes that let them travel across the Web and through firewalls. The technology that makes this possible is Simple Object Access Protocol (SOAP). SOAP provides the packaging so that requests can be made using HTTP, SMTP, or FTP. SOAP also provides interoperability between J2EE and .NET implementations.
For person-to-machine transactions, a variety of search engines can help users locate what they are looking for; to enable machine-to-machine transactions, users need directories of available Web services. Universal Description, Discovery, and Integration (UDDI) categorizes and describes available Web services. Companies can publish their available Web services to UDDI so that other companies can use them. Locating UDDI registries can be very dynamic because UDDIs allow for loose coupling of systems. For example, if you need a service provided by several different companies, you could use one company's Web service as your primary, another's as your failover, and still another's to meet special terms or criteria, such as discounts or response time.
Java and object-oriented programming (OOP) in general have always supported code reuse and dynamic binding. The Java Web Services product is all about functional reuse and dynamic binding. Web services in general just provide an interface. This interface does not require Java; however, Java Web Services simplifies implementing these interfaces with Java because of the Java-based tools that support Web Services. But since Web services are just interface specifications, what lurks under the interface could be anything from a J2EE server to Perl scripts or even a legacy COBOL system. The hardware and software implementations don't matter to the consumer of the Web service. To help you get started with Java Web Services, Sun has put together the Java Web Services Developer Pack.
(Photo for Sun Microsystems by Charlotte Fiorito, Mast Photography, Inc., San Francisco) (www.mastphotography.com)
The television screen forever changed us; it brought visions of the world around us to our living rooms. Then came the computer screen and connections to the Web, so whether at home or the office, information and entertainment were just a click away. Now, the 3rd screen will change our lives. Cell phones and wireless devices are poised to take over. These devices will be trained to know who we are, where we are, and what we like. There will be a great convergence of phones, cameras, PDAs, GPSs, music players, and movie players into single, multifunction devices. The bad news is that they aren't here yet, but they are closer than you think.
If you are in the market for a new cell phone, wait just a little bit longer. The first step to the great convergence is the Java-enabled phone; in fact, the first generation is already here. NTT DoCoMo, Inc., LG Telecom, and Nextel have already collectively deployed 3 million J2ME-enabled handsets and expect that number to grow to 20 million by the end of the year. In addition, Cingular Interactive, Far EasTone, J-Phone, KDDI, Omnitel, One2One, SmarTone, Sprint PCS, Telefonica, and Vodafone all plan on having handsets and other Java-enabled devices and services in the marketplace by the end of the year.
While Java-enabled devices are compelling with their integration of communication, PDA tools, and just about anything else that has buttons and batteries, unless they are hooked to the Web, all you have saved is some space on your belt or in your purse. The true power of these devices will be realized through high-bandwidth connections with personalized portals that will push information to you based on your preferences and geographic location. By 2004, the cell phone industry hopes to have a nationwide 3Mb data network. So will you buy one? The ARC Group, an industry consulting and advisory service that spends a lot of its time researching this sort of thing, thinks you will. The ARC Group estimates that by 2006 there will be over 1.1 billion Java-enabled handsets in the world.
This all sounds great, especially if you're a handset manufacturer or a wireless carrier, but there may be a down side. Most of the carriers at JavaOne were already talking about micro charges for bandwidth and applications. The idea is that you would pay anywhere from a few cents to a couple of dollars to download games and a per-kb charge for data transfers when accessing the Web. This is a business model that hasn't succeeded before on the Web because of the logistics involved in micro charges, but then again these people built a multi-billion-dollar industry on charges that average less than a dollar. An interesting side effect of this micro charge industry is the opportunity for developers to take part in it directly. Both Nextel and Sprint have programs that allow developers to market their Java applications directly to Nextel and Sprint customers. In exchange for hosting and cataloging a product, Nextel and Sprint take a set percent, but the rest goes straight to the developer, who even gets to set the final price.
Of course, at JavaOne, there were lots of hands-on demonstrations of Java technology available today. Most years, JavaOne features a technology showcase item that is a cutting-edge, Java-enabled device that they sell to conference attendees at a greatly reduced price. This year's item was the Sharp Zaurus, a 32MB, color, palm-sized device that runs Linux and comes preloaded with a Java Virtual Machine (JVM). The retail price of the Zaurus is around $500, but conference attendees could buy them for $200. They also sold wireless networking compact flash cards for $100 and had most of the convention hall area covered with wireless networking hubs, so you could surf the Web, check email, or take notes while walking around the convention center.
A JavaOne tradition that seems to grow in popularity every year is the hack-a-thon, which is basically a contest to see who can come up with the coolest game, utility, or application for the device featured in the technology showcase. The winners were a mapping system to help you find your way around JavaOne and an application that allowed the Zaurus to act as a wireless mouse and keyboard. In addition, this year Sun sponsored the "What Time Is It?" contest in which developers were challenged to write a Java application that could find analog clocks in pictures and tell what time the clocks indicated.
Another popular diversion was Java Sumo, which pitted a conference attendee's remote control robot against the real-time, Java-powered JavaNator for control of a circular arena. The JavaNator, although not creative, reacted quickly and seemed to win about half the time.
My personal pick for the coolest of the cool was a company called Alien Technology. Although not actually present at the conference, Alien Technology was mentioned in the keynote by Paul Saffo, director of the Institute for the Future. Alien Technology has developed something they call Fluidic Self-Assembly (FSA), which allows them to cheaply manufacture extremely small electronic devices. Early applications will be for Radio Frequency Identification (RFID), small tags that can be used to track inventory. In addition, FSA can be used to make small, flexible displays for applications like smart cards.
So how will the world change if we can put a Java chip in everything? I think we are going to find out.
JavaOne is a near-religious experience for developers who want to get together, learn from each other, and challenge and inspire one another. Whether it is creating something as powerful as Web Services from simple technologies like XML and SOAP or trying to determine what application a billion people would want to run on their cell phone or figuring out a use for a trillion microscopic Java chips, JavaOne always leaves you with another year's worth of things to think about.
Links To More Information
Java Web Services
Universal Description, Discovery, and Integration (UDDI)
ARC Advisory Group
For those of you who prefer "Death by Powerpoint," visit the official JavaOne site, where you can download the slides from 307 sessions.