The little-known Java Server Faces will provide a standard way to build user interfaces for Java Web applications and open the way for highly customized and specialized components to be plugged into applications. Java Server Faces is still being hammered out, and its first specification is expected "late this year or early in 2004," says Ed Burns, Sun Microsystems staff engineer and co-chair of the Java Server Faces expert group of the Java Community Process. The Java Community Process is an industry consortium for extending the Java platform, organized by Sun.
Java is the dominant language for applications on Web servers, and moving to a standard way to build user interfaces will ease the developer skills required and the expense of building applications with more-sophisticated user interactions, Burns says. However, Java's success on Web servers hasn't been matched by its use on clients. Java includes its own user interface elements, called Swing, but developers tend to implement Swing in a variety of ways. Client machines also tend to use a variety of Java virtual machines for running Java applets, and applets have to be targeted to a specific virtual machine, compounding developer headaches.
Tools supporting Java Server Faces will move the difficult task of building Java applications to a process closer to working with the drag-and-drop process of building Microsoft Visual Basic applications, says Dennis MacNeil, Sun's senior product manager, Java 2 Enterprise Edition. "We're closing the gap," he adds.
Java Server Faces will specify how one element of a user interface may interact with another, such as the Oracle JDeveloper tool's current ability to show the user a list of customers and then show a table of orders for that customer when a name is highlighted. If the order data were more than a few hours old, the user interface would know to go to a server and get fresh data without disturbing other elements of the page, something that's difficult to do with HTML pages, says Oracle's Ted Farrell, application development tools architect.
Another standard, the first version of the Basic Profile for Web Services, was issued in mid-August by the Web Services Interoperability Organization. By following its recommendations, Web services built on one platform using XML documents and Simple Object Access Protocol messaging will work with those developed on another. Data from a Web service generated by a Sun Solaris server could be combined with data collected from a Web service generated by a Microsoft Windows server because both companies are supporting the Basic Profile, MacNeil says.
Toolmakers such as Sun, Oracle, IBM, BEA Systems, and Borland are expected to implement support for both the Basic Profile and Java Server Faces in future versions of their tools. IBM's WebSphere Studio 5.1, released earlier this month, supports Basic Profile, and the Page Designer included in it has been geared to support Java Server Faces as its specification becomes final, says Bernie Spang, director of WebSphere Studio marketing.