Companies still trying to decide whether Java is ready for the desktop should take a serious look at Version 1.3 of Sun Microsystems' Java 2 Standard Edition (J2SE). The new version offers enough performance improvements, enterprise interoperability, graphical enhancements and security features to satisfy even the most discriminating developer.
Obviously, J2SE will appeal to shops that have already invested in Java technology, but its many upgrades should also attract companies reluctant to take the Java plunge because of performance or security concerns.
A slew of updates have been made to the blend of products that constitute J2SE, including the Standard Edition Java 2 SDK (software developer's kit) and the J2SE Runtime Environment. As a result, the new version provides everything you need for building and deploying secure applications that can scale up from the PC to the workgroup server. The dramatic performance enhancements, courtesy of the Java HotSpot client Virtual Machine (VM), are probably the most alluring enhancements to the package. The VM was designed to make client-side Java applets and applications run faster by reducing start-up time, shrinking the memory footprint, improving memory allocation for objects, and speeding up garbage collection. Sun has also removed some of the lag time often seen in large, memory-intensive applications, breaking them up into smaller pause segments when "cleaning house". J2SE also offers improved thread synchronisation - something previous releases sorely lacked - resulting in better performance in shared-memory, multiprocessor systems.
In my tests, the enhanced performance was clearly noticeable when I upgraded a few old Java 1.03 applications, removed the deprecated or obsolete methods, and recompiled them using the new VM. These speed gains alone should be enough to persuade companies to adopt Java.
Users involved in Web deployment will also appreciate J2SE's tweaks. In addition to letting you cache applets independently of the browser - something necessary for full-featured deployment in time-sensitive environments - Sun has also added support for the automatic deployment of optional packages such as the Java Media Framework and JavaHelp.
J2SE also lets you specify both a version number and the URL of the latest package version, thereby letting you give your customers up-to-date information without additional desktop visits or programmatic changes.
Moreover, J2SE offers significant improvements in its enterprise interoperability. Sun's new IDL (interface definition language) compiler enhances J2SE's Corba support by offering RMI (Remote Method Invocation) over IIOP (Internet Inter-Orb Protocol). This development brings huge benefits to shops that must communicate with objects written in other languages: you no longer have to choose between RMI and Corba/IIOP for distributed programming. In addition to generating standard IDL from RMI-enabled classes, you can also convert existing RMI applications with minimal effort. Consequently, developers can now make the switch to a more enterprise-accepted protocol faster and with less possibility of error.
Another new feature is Java Naming and Directory Interface (JNDI) support. As its name suggests, this feature lets developers add naming and directory functionality to both new and existing applications. Sun provides out-of-the-box support for service providers such as LDAP, Corba COS (Common Object Services), and RMI Registry Services, along with additional providers and advanced features available on the Sun Web site.
Once you have the JNDI framework in place, you can enable multiple service providers, including Novell and Network Information Service. If you want to use the LDAP server residing on your Sun box for all authentication operations, for example, JNDI makes quick work of it. Of course, JNDI has long been available, but it was always a separate component that required a separate installation. With Version 1.3 of J2SE, it's all part of the package.
Finally, the new version boasts a slew of new features and development tools that let developers create faster, more powerful applications with the least amount of effort. Chief among these new gadgets is the robot API, which facilitates automatic testing of the Abstract Windows Toolkit and Swing graphical environments. When invoked, the robot API generates native system input events such as key presses and mouse clicks for the purpose of test automation, but in a pinch, it could also be used for self-running demos and other applications that rely on mouse and keyboard control.
Finally, Sun has added muscle to J2SE's security model. New enhancements include support for RSA Security's electronic signing, including standard VeriSign and Thawte RSA certificates; X.509 certificates, featuring enhanced support for multiple attribute/value assertions within a relative distinguished name; and Netscape signed file verification, to name only a few. These new features help keep your applications as secure as your code.
Overall, my opinion of the new J2SE was extremely favourable. The enhanced speed, security, and integration features are enough to warrant the upgrade. Moreover, although J2SE currently runs only on Windows platforms, Sun has promised that Linux and Solaris support will be available later this year, making enterprise integration even easier. So is Java finally ready for the desktop? I'd say it is. wFlavours of Java 2Anything good always seems to come in various flavours, and Java is no exception. But with three different editions of the Java 2 platform, it's not always easy to decide which is the best fit for your company. Just remember that, regardless of your choice or need, what's written in one edition can scale to another - as can your developers' skills.
Java 2 Standard Edition, a development and deployment platform, provides all the necessary functionality for programming desktop and workstation applications. The latest version provides substantial performance gains and improved Web deployment for enterprise, client-side Java applets and applications. Also new are strong interoperability support and enhanced security features.
The Java 2 Micro Edition was created to address the needs of consumer devices - from smart cards to telephones. As an underlying technology, J2ME provides a complete, end-to-end solution for creating state-of-the-art networked consumer products and embedded applications. Its small footprint is perfect for resource-constrained devices, and it can also distribute functionality between the client and server.
If you're dealing with heavy-duty server systems or enterprise-available applications, Java 2 Enterprise Edition is your best bet. The Enterprise Edition takes advantage of the many features of J2SE, such as the Java Database Connectivity (JDBC) API for database access and Corba support, but it also adds full support for Enterprise JavaBeans, Java Servlets, and JavaServer Page technologies.
Java 2 Standard Edition 1.3
Business case: in addition to huge performance gains, J2SE features all the tools needed for a scalable, secure, and extendable application. Improved Web deployment features make it even more attractive for dotcom shops.
Technology case: the new release offers improved testability and integration opportunities with LDAP, Corba, and other standard conventions.
+ Strong interoperability
+ Significantly enhanced performance
+ Support for RMI over IIOP
+ Improved security features
+ Scalable from the desktop to the small server+ Automated testing of Java platform implementationsCons:
- Currently limited platform support
Platform(s): Windows 95/98/2000, Windows NT