Why developers and IT professionals should consider migrating existing systems to Java 2 next year
At the recent JavaOne conference, Sun announced its redefined architecture for the Java platform, aptly named Java 2. The three products that make up the Java 2 Platform — Enterprise Edition (J2EE), Standard Edition (J2SE), and Micro Edition (J2ME) — encompass a number of new features. The differences between the editions mark Sun’s attempt to target specific Java-using markets. J2EE, the edition of most interest to the majority of JavaOne attendees, is optimized for use on high-end, heavy-duty servers in an enterprise environment. J2SE offers many of the same features of J2EE, but its smaller package and lower cost mark it as intended for use on individual desktops or small workgroup servers. Most intriguing to developers for vertical consumer and embedded markets is J2ME, which is optimized for small, limited-memory applications. Each of these editions is composed of a Java virtual machine (JVM), Java programming language, technologies and features that are core to each product, and optionally-available features. Below, you’ll find overviews of J2EE, J2SE, and J2ME. The J2EE section contains some interesting ideas from a few industry leaders about this new product’s potential.
J2EE
Both JavaOne attendees and Sun itself are taking the Enterprise Edition of the Java 2 Platform very seriously. J2EE not only had its own technical track at the conference, but some of the individual sessions were so popular that they were repeated for the benefit of those who couldn’t get into the presentation halls the first time around.
At the JavaOne J2EE overview session, Sun Senior Staff Engineer Mark Hapner and Distinguished Engineer Bill Shannon explained how J2EE will allow developers the flexibility to implement as many third-party applications and components as they want. The architecture of J2EE enables the use of containers — the technology found in the platform — and components, which are presentation, business logic, and data access applications executed upon, or from, the containers. Containers represent specific types of Java technology with the J2EE platform, such as applets, applications, Web services, and Enterprise JavaBeans (EJB). With Java as the common language amongst all containers and components, it’s possible to use the native JDBC API as a container to manipulate SQL data, the JavaMail API to support e-commerce Web sites, and the Java Transaction API to manage transactions — all interacting with the same database on the back end.
During the more in-depth J2EE birds-of-a-feather (BOF) meeting, Mala Chandra, director of engineering at Sun, said that the team that developed J2EE had two main goals in mind. The first was for J2EE to work with third-party application vendors in order to layer a single, consistent Java persona on top of a multivendor system that spans multiple platforms. The second was to make it easier for J2EE users to develop enterprise applications on multitiered systems; the goal would be to allow the seamless transfer of information from an enterprise database through security middleware to clients like desktops, pagers, and personal digital assistants (PDAs) — and the transfer new information through the same chain of devices in the opposite direction. One example of an important use of J2EE, according to Chandra, is to avoid having to set up and manage a proprietary transaction system.
Mark Herring, director of product marketing for Forte Software, agreed with Chandra. According to Herring, J2EE has the potential to transition shadow e-commerce — that is, electronic commerce that encompasses the wide gap between what a Web-based transaction system is telling a customer and the reality of what’s occurring in a warehouse or shipping department — to deep ecommerce, in which the existing infrastructure is leveraged by and fully integrated into the new transaction system.
According to Bill Roth, product manager at Sun Microsystems and host of the BOF meeting, the Java 2 Platform is the “unified field theory of Java computing,” in the sense that it promises to bring together the wide-ranging Java technology already sold by vendors. What defines J2EE, he says, is a set of specifications, a reference implementation, an application programming model, and compatibility/compliance testing. So far, J2EE supports a variety of popular third-party tools, including Inprise JBuilder 3, Symantec Visual Café 3.0, and Metrowerks CodeWarrior for Java 4.0.
Some IT professionals at the BOF meeting expressed their fear of the “lock-in/lock-out” conundrum, whereby embracing a large-scale technology like J2EE might lock an enterprise team into a proprietary system, and conversely lock it out of innovative new technologies. GemStone Vice President of Marketing Doug Pollack responded, “Paradoxically, embracing a standard like Java 2 — once edified in the industry — ends up protecting developers from lock-in/lock-out.” Implementing a well-accepted standard with lots of industry support, Pollack said, gives a developer the freedom to experiment with technology from a 0 billion company, like IBM, or that of a 0 million company with more innovative — but risky — applications.
J2SE
Java programmers may be interested in J2SE because it offers all the benefits of the Java 2 Platform without the migration struggles (and high cost) that typically accompany an enterprise-wide upgrade. J2SE, optimized to run on individual desktops and workstations, includes the Java Foundation Classes (JFC) API, Java plug-in software, internationalization support, CORBA support, a 2D API, a new security model, and the Java HotSpot performance engine. A key component of J2SE is the Java 2 SDK, Standard Edition v. 1.2, which is based on JDK 1.2. The Java 2 SDK is supposed to offer a richer development environment, including a more polished JFC API, the standard Java look-and-feel, and drag-and-drop functionality. In addition, it allows reusable coding with a new collections API, support for the JDBC 2.0 API, and third-party interoperability with CORBA. Other important components include the Java 2 Runtime Environment, Standard Edition, v. 1.2, which promises easier deployment, and Java HotSpot for faster performance.
J2SE promises a lot, and it’s not clear whether Sun can deliver everything a good programmer needs. John Brewer, proprietor of Jera Design and winner of the 1999 JavaOne “Most Visionary App” Hackathon award, says his “big beef” with Sun is Java’s narrow clipboard support. Copying text into the clipboard buffers works fine, Brewer explains, but there’s no way to temporarily store graphics or any other type of information on the clipboard. This presents an annoying and difficult problem for many Java programmers who specialize in — or simply want to exploit — the graphical user interface (GUI) programming capabilities of Java. Programmers might expect this issue to be resolved in the 2D API of J2SE, but Sun hasn’t specifically commented on it yet; the 2D API is merely supposed to provide “improved graphics and printing.”
The first maintenance release of J2SE is due next month; the major feature release isn’t due until the fourth quarter of 2001.
J2ME
The Java 2 Platform, Micro Edition, a complementary technology to J2EE and J2SE, is primarily of interest to Java developers in the consumer and embedded markets. J2ME is a runtime environment optimized for very small and limited-memory devices, such as cellular phones, pagers, personal digital assistants, screenphones, digital set-top boxes, and automobile navigation systems. J2ME’s key component is the tiny-footprint K virtual machine (KVM). Developers are excited about the possibility of using J2ME to connect small devices with desktop and large enterprise systems.
JavaOne attendees were impressed with the robust capabilities of KVM on small consumer devices like the Motorola PageWriter 2000X and the Palm V, which were showcased and sold in massive numbers at the conference.