The fourth annual JavaOne conference concluded last week as a roaring success. With over 21,000 attendees at this conference, the event was too big for the Moscone center and had to spread out over several hotels. People were complaining about having to go several blocks for one session and then traipse back for the next one. Even Java University classes, the pre-session tutorials, were sold out well in advance and felt like big university undergraduate classes held in amphitheaters. Sun, the sponsor of the event, recognizes the problem. Master of Ceremonies John Gage suggested that next year they rent the island of Kauai in Hawaii.
Crowding problems aside, the event succeeded in one important area: networking -- of the personal kind, that is. As part of the show, Palm PilotV personal digital assistants (PDA's) were being sold for under $200. Each Palm PilotV had part of a puzzle. By interacting with other people and synchronizing Palm Pilots, participants collected pieces of the puzzle. As usual, there were many parties and after-hours events along with numerous Birds-of-a-Feather meetings to allow people to get acquainted in settings other than educational sessions.
The conference consisted of two main themes --Java on appliances and Java on servers-- in addition to the ongoing activity surrounding Java's implementation on the Web.
Java on appliances is made possible by the K Virtual Machine (KVM), a small-footprint virtual machine that can function in cell phones, pagers, or even ovens. By only including the elements most needed on these devices, the whole operating system can fit on a single chip. For interaction with the outside world, this KVM connects to a server that takes care of the communications and security. Included with the Palm Pilots at the show was a preliminary version of Java for Palm Pilots, as well as a Palm Computing platform development kit.
Another component of Java on appliances is a new technology called JINI. JINI is a distributed computing environment where each object, such as a TV, VCR, and stereo discover who is in their community when they are plugged in and "talk" to each other using Remote Methods Invocation (RMI). This distributed technology will allow people to "plug in" anywhere and get the services they want.
The most concrete example today is PCS cell phone technology. Your cell phone is actually a smart card that you plug into a generic wireless device to set the phone number and other features. Eventually you will not lug around laptops and other essentials from the home or office. When travelling, once you arrive at your destination you will only have to authenticate yourself. The local computer has access to your files and desktop. Your phone number will ring on the local phone, and the entertainment system will have the music and video collection that you have assembled at home.
The other end of Java is Enterprise Java on servers. This is where the computing horsepower is hidden to enable the appliances to get by on less. The Enterprise edition of Java has Java Bean technology, Comprehensive development and debugging environment, and Hotspot performance technology.
Java Beans are preassembled "nuggets" or objects of a program that perform specific tasks. Either by developing their own Java beans or by buying them from someone else, users spare themselves from reinventing the wheel each time they want to develop a program. These beans are slightly analogous to plug-ins for PhotoShop or Quark, only they are easier to create.
This integrated development and debugging environment makes it easier to write quality programs that will last longer. In addition, by allowing people to model, test, and then find their mistakes, it's possible to write programs much faster.
Hotspot technology gives Java a much-needed performance improvement. Because Java is built to run anywhere, it does not try to improve performance on any one system. Unfortunately, this platform independence has makes Java inherently slower, since it must swap more information in order to be understood by all operating systems, rather than streamlining its communications for a specific OS. Hotspot does some of this optimization by recognizing fixed and variable information, as well as variable information that really is fixed. Think of fixed information as being a "cheat sheet" you can take into a test, while variable information is an answer that you must figure out during the test. You can provide answers quicker from the cheat sheet than figuring them out in your head.
In the Web space, Sun licensed its Java server pages to the Apache group. Java server pages encapsulate Java functionality within a Web page, making dynamic Web pages easier to create.
All the conference events and keynotes can be downloaded from http://java.sun.com/javaone/.
A pleasant surprise at the conference was that all the vendor booths fit into hall C of the Moscone center. Rather that having booths the size of parade floats in the Rose Bowl like they do at Comdex, each vendor had small booths clustered 4 per station.
At Apple's station they were showing off Web Objects, QuickTime for Java, and the independent software products CineKit and NetBeans.
WebObjects ( http://www.apple.com/webobjects ) is Apple's cross-platform application server. Included with OS X server, WebObjects allows developers to create programs that allow people to use a Web browser from any platform to run programs and access data without having to install any local applications. Unlike other application servers, WebObjects includes object-oriented frameworks that allow users to model business logic as objects. When conditions mandate a change in business logic, just change the object rather than the whole program.
Think of calculating payroll as an example. This framework also makes it easy to query and access databases as well. Besides allowing access from a Web browser, WebObjects also supports Java clients. Java clients can escape some of the overhead and limitations of Web browsers by talking directly to the WebObjects server and manipulating data and how it is displayed on the end-user machine.
QuickTime for Java allows control of QuickTime movies using the Java programming language, which is planned for inclusion in an upcoming version of QuickTime ( http://www.apple.com/quicktime ).
CineKit from Expresto software ( http://www.expresto.com ) is a Java-powered QuickTime video authoring system that can best be described as a cross between Microsoft's PowerPoint presentation program and QuickTime. It allows users to organize video clips in storyboard or linear fashion, include notes that are either hidden or visible to users, and create transition and titling effects. In addition, CineKit can output directly to streaming QuickTime.
NetBeans ( http://www.netbeans.com ) is an integrated development environment that provides wizards and templates to make forms easier to use, a debugger to find errors, an object browser to keep track of a program's objects, and a compiler. The Developer 3 version doesn't run on the Mac yet, but it does include a database explorer.
Imperial Software Technology ( http://www.ist-inc.com ) demonstrated Visaj 2 (reviewed November 1998) and a beta of Visaj 3. Visaj is a visual application builder with a real-time interface. As users drop controls and objects on a project, a window will display and behave just like the application will.
PointBase ( http://www.pointbase.com ) displayed its database for embedded servers. Their database comes in a mobile, server, and replication edition. Most interesting was the mobile edition, able to operate in 270 -750K of RAM. The different databases have programmable synchronization capabilities as well, creating a database solution ideal for supporting mobile users who need to access corporate mainframe data. Bruce Scott, co-founder of both Oracle and Gupta, created PointBase to bring this scalability to market.
IBM ( http://www.ibm.com/java ) was present to announce that their Visual Age for Java Integrated Development Environment now runs on Linux. Simon Phipps, their Java and XML evangelist explained why XML (eXtensible Markup Language) messaging is built into their DB2 database and WebSphere application server. The problem today, he said, is each additional program written in C becomes dependent on libraries already installed on a system. This creates an interdependent mesh whose complexity increases in geometric proportions. The data structures are dependent on this mesh and have been stripped of their meaning as well. XML keeps the meaning of the data with the data by use of tags, allowing platform-independent data communication. By embracing both Java and XML in their computers, IBM is able to separate services into clean layers of Networking with TCP/IP, Program logic using Java, Data representation using XML, and Display by HTTP.
IBM is even developing a separate XML parser because of the strategic significance attached. It can be used in human-to-human interchange like Web publishing, human-to-computer interchange like online shopping, and computer-to-computer interface, replacing EDI as an e-business medium.
I was also able to see a collaborative program from Nortel Networks ( http://www.nortelnetworks.com ) called Ide@Room. Meeting rooms are created on various servers throughout the company. By logging into a meeting room, people are able to exchange documents or talk to each other in real time. The servers route voice traffic through PBX's.