The new version is an effort by Sun to lay down clear rules for using Java on heavy-duty servers. But the constantly shifting sands of the Java landscape have some developers frustrated.
"The pace of change with Java has been so significant that...Sun has been asked to slow it down by developers and users," said Tim Sloane, an analyst with the Aberdeen Group. "It's pretty clear it's been difficult for the market to keep up with all the changes that have been happening. That makes it tough for market adoption."
At the JavaOne conference next week, where Sun will describe Java 2 Enterprise Edition, Sun will tell its developers that that pace will relax, said Tom Dwyer, another Aberdeen analyst. "They will reaffirm that they're going to let Java 2 settle in for at least a year, maybe as much as 18 months," Dwyer said.
With Java 2 Enterprise Edition, Sun now has defined Java on computing environments as tiny as credit cards and as large as multiprocessor mainframes computers. Several companies, most notably IBM, but also Compaq Computer and Hewlett-Packard, have signed on to Sun's idea of using Java to give companies a new way to allow sophisticated interactions with back-end systems such as databases.
But in the process of spreading Java so far and wide, Sun has spawned a Java jargon jungle, a forest of acronyms including the letter J.
Java 2 EE essentially gives Sun a way to get a handle on some of those acronyms, guaranteeing that a minimum set of basic components are in place on a server, according to Anne Thomas, an analyst at Patricia Seybold Group. While many of those components already exist, they were optional extensions, and a company writing Java software couldn't be sure that a given server would have them.
"By defining an enterprise platform, Sun provides a mechanism to certify that a system supports a complete Java environment that contains the Enterprise Java API based on interoperable protocols," Thomas wrote in a white paper on Java 2 EE.
Sloane agreed with Sun for the need to define a larger set of Java technologies. The initial definition of Java as "100 percent Java compliant"--a Java virtual machine and accompanying software called class libraries--just wasn't sufficient for sophisticated programs. There was no standard way to make sure the Java programs could interact with other software.
Enterprise Java Beans at the heart
The heart of Java 2 EE is Enterprise Java Beans (EJBs), a standard for reusable pieces of software that run within Java-enabled servers, Thomas said. EJBs run on an application server, a technology that fetches information from back-end systems such as databases, then formats that information and delivers it to clients who requested it.
As reported earlier, Java 2 EE is Sun's effort to create the parameters for software developers to build applications using EJBs, Java Server Pages (JSPs), which allow developers to add dynamic content to Web pages, and Java servlets, small Java programs that run on the server-side.
In the past, different Java application server vendors have supported EJBs in different ways. The goal of Java 2 EE is to ensure software developed on IBM's WebSphere application server can run just as well on the BEA Systems WebLogic app server.
Paul Ambrose, vice president of strategic planning at BEA WebXpress said Java 2 EE is a step toward that goal. All the app server vendors have to ensure they support all the facets of Java 2 EE, he said. Right now, app server makers are in different stages of support. "The goal is interoperability, but at this point, it's crawling before you can run type of thing," he said.
Bob Bickel, Bluestone Software's senior vice president of products, said he's a big supporter of Sun's Java and their goal of making improvements to the technology, but he's concerned that Sun makes too many changes from one iteration of EJBs to another, which hurts the goal of "write once, run anywhere."
"They put something out and deprecate it," said Bickel, whose company supports EJB in its application server.
But others believe the changes that come with Java 2 EE are relatively minor, saying it's not as difficult as trying to translate a C++ program into Visual Basic, for example. Analyst Martin Marshall of Zona Research said the changes developers need to make are simply moving from one version of EJBs to another. The byte code stays mostly the same, he said.
"There is some rewriting to be done. It's a pain, but people realize they would have to deal with that with an evolving technology," Marshall said.
One Java developer agrees, saying that changes that came with the standard edition of Java 2 in December are good, because Sun has improved the graphical interface components and made the security more powerful and flexible.
Praise for "Swing"
"[The Swing technology] was a big change, because there was not a good library before that. People moved from AWT, which they hated, to Swing, which was well designed," said Larry Podmolik, vice president and chief technology officer of Strategic Technology Resources, in Chicago. "With security, people complained it was too restrictive, so Sun responded with more options for flexibility. You can now specify fine grain permissions to applications and particular chunks of code within an application."
Java's Swing technology lets developers write Java programs that more easily mimic the user's native operating systems, such as Windows or MacOS, by controlling the appearance of items like check boxes, icons, menus, and scroll bars.
Of the three pieces in Java 2 EE, JSPs will be the most widely used by developers, experts say. JSP, which lets developers add in Java code and Beans while writing their HTML, is important because Java finally has an answer to Microsoft's Active Server Pages, they say. For example, a Bean, prewritten Java code, that can serve as a navigation bar on a Web site could be dropped into an HTML page without the developer having to write all the code.
Bickel, of Bluestone, said JSP will be the most popular element of J2 EE because it's the easiest technology to create Web applications with. "The next one down is servlets, because it lets you create Web-based app, but it's all programming at a Java API level," he said. "EJBs can't make Web-based apps directly, but it's the business logic behind a Web-based app."
App server vendors and analysts say people can develop using Java 2 EE right now, even though some maturing still needs to be done.
Despite the ongoing need for improvements, Marshall said he was impressed with Java 2 EE. "It's a significant step in the maturation process," he said.