★ wanayoo — archive 1999 http://developer.java.sun.com/developer/technicalArticles/javaone00/developer/Nouvelle recherche | Portail wanayoo
Java Technology Home Page
A-Z Index

Java Developer Connection(SM)
Technical Articles

Downloads, APIs, Documentation
Java Developer Connection
Tutorials, Tech Articles, Training
Online Support
Community Discussion
News & Events from Everywhere
Products from Everywhere
How Java Technology is Used Worldwide
Print Button
 
Articles Index

JavaOneSM 2000--One Programmer's View

By Michael D. Meloan
(July 2000)

Page 1 | Page 2 | Page 3 | Page 4

JavaOneSM has style. I knew it from my first trip down the escalator where there was a large screen projection of a psychedelic dog wearing sunglasses and a wild cowboy hat. It had a strange animated mouth that chattered about the day's activities. All-in-all, JavaOne was a four day separate reality--a zone of high technology and fun.

Once into the conference sessions, it was like drinking from a fire hydrant of interesting and informative technical information. The hard part was deciding what sessions to attend. Five clones would have come in handy.

The world of JavaTM technology is expanding exponentially. Wireless technologies are proliferating, Java enterprise technologies continue to show strong growth, and core technologies like J2SETM have been optimized and enhanced.

Since there have been a number of articles in the JDC about JavaServer PagesTM, Servlets, and wireless technologies (and more to come), I chose to cover some topics representing refinements of core technologies, a new product announcement, and a tutorial on Java based OO design patterns. Here are my topics:

  1. Java 2 Platform, Standard Edition, Overview and Update
  2. What's Coming in Java Foundation Classes (JFC/Swing) Technology
  3. Introducing Java Web StartTM Technology
  4. Design Patterns in Java Technology

This article offers an overview of these sessions. The Java Web Start section recaps the conference session and offers detail taken from the Java Network Launcher Protocol and API Specification, Version 1.0. The JFC/Swing section offers session highlights and some code segments illustrating the use of new components and capabilities that will become available with the release of version 1.4. The Design Patterns section offers code examples and discussions of some leading edge object oriented design techniques.

Java 2 Platform, Standard Edition, Overview and Update

Sun's Blake Connell introduced this session.

Java 2 Platform Edition Review

The diagram below illustrates the range of Java editions.

Image1

The Micro Edition is targeted for a wide range of handheld devices and evolving technologies.

The Standard Edition is designed for the desktop and laptop environment. The Standard Edition continues to evolve over the years and is really the grandfather of the Java platform.

The Enterprise Edition is a superset of the Standard Edition, designed for large back end systems that typically involve transaction processing, message queuing, and Enterprise JavaBeans.

Java 2 Standard Edition (J2SE) Deliverables

  • Java 2 Software Development Kit, Standard Edition (SDK)
  • Java 2 Runtime Environment, Standard Edition (JRE)

The Java 2 Standard Edition SDK includes tools, runtimes, and APIs for developers writing, compiling, and running applets and applications. It also includes earlier Java Development Kit versions JDK 1.1 and JRE 1.1.

The Java 2 Runtime Environment (JRE) consists of the Java virtual machine, the Java platform core classes, and supporting files. It is the runtime part of the Java 2 SDK, but without the development tools such as compilers and debuggers.

The JRE is packaged with the Java Plug-in software that enables widely-deployed web browsers to use the Java 2 Runtime Environment to run applets.

J2SE Version 1.3 Release Update
  • Windows -- Available Now (released May 2000)
  • Solaris Production-- Beta available now, FCS September 2000
  • Linux Production--Beta available now, FCS October 2000
  • Maintenance release version 1.3.1--targeted first quarter CY 2001
Server-side Java Technology (Server Java) Focus
  • Java HotSpot 2.0 virtual machine performance
  • Solaris platform
  • Linux platform

Java HotSpot Server VM, Version 2.0

  • 30% faster on Server (vs. version 1.0)
  • HotSpot 2.0 Schedule
  • Windows shipping now (May 2000)
  • Solaris FCS (part of version 1.3) September 2000
  • Linux FCS (part of version 1.3) October 2000

The Java HotSpot Server VM (known as the Java HotSpot Performance Engine in earlier versions) delivers high performance to the server. Version 2.0 of the Java HotSpot Server VM contains the Java HotSpot runtime environment and the server compiler and supports the JavaTM 2 Platform, Standard Edition version 1.2.2 and version 1.3. This configuration delivers performance and reliability to the server environment.

It is currently available for download free of charge on Windows. This includes the permission to redistribute the Java HotSpot Server VM with your product. See the license for details on redistribution.

Production releases of the Java HotSpot Server VM supporting SolarisTM SPARCTM, Solaris Intel and Linux operating environments will be released this fall (2000). The reference version of the Java HotSpot Server VM 1.0.1 for Solaris SPARC is still available.

Primary Themes of Java 2 Version 1.3

  • Performance
  • Improving Web deployment

In addition, version 1.3 enhances enterprise interoperability and security.

Version 1.3 Performance

  • Tuned core class libraries
  • Java HotSpot Client VM as default JVM
  • Tuned for client performance
  • Reduced Startup time
  • Reduced memory footprint
  • Overall client application usability

"One of the significant tuning efforts for version 1.3 was the Java Foundation Classes (JFC/Swing)," noted Sun Product Line Manager Blake Connell. "Also the default virtual machine is now the high performance HotSpot Client VM. These changes have resulted in a significant reduction in start-up time and a reduction in the amount of memory applications use. "

The new version has been benchmarked using a performance measure called SwingMark, which uses JFC/Swing applications. Using frequently occurring Swing components such as JTable and JTree, performance has improved by as much as 30%. And raw scrolling is up to three times faster.

"In-house studies were performed in Sun's usability lab," said Connell. "Subjects were video taped using various applications and asked to compare and contrast. Tests were conducted at various milestones during the version 1.3 development process and all subjects preferred the version 1.3 products."

Performance testing was conducted on very minimal hardware to approximate a lowest common denominator machine type. A 166 MHz Pentium machine with 32MB of RAM was used.

The start-up times depicted below are based on a typical JFC/Swing application.

Image2.gif

As the graph below shows, version 1.3 has realized very large reductions in memory footprint. The larger sizes over SDK 1.1 reflects the addition of JFC/Swing, the new security model, and many other functionality additions.

Image3.gif

Version 1.3 Ease of Web Deployment

  • Java Plug-in Applet Caching
  • Deploy applets that remain on a local drive until updated (one time download)
  • Reduce applet download frequency
  • Java Optional Package Installation
  • Deliver Java Optional Packages to client systems automatically
  • Increases the number of possible solutions offered

Connell pointed out that Java has had applet caching in the past, but it relied on the browser cache. Since the user can configure and manipulate the browser cache, the environment is very unpredictable.

"Now there is a caching mechanism controlled from within the Java Plug-in," he said. "This allows the applet to be downloaded and stored on the local system, if desired. This, of course, reduces network traffic and lag time." This one time download makes applets more compelling to deploy.

The Java 2 platform can be extended using Java Optional Packages, which enable technologies such as Java Media Framework (JMF) and XML. Many people have commented that they like the notion of Java Optional Packages, but they are confused about deploying them. With this new functionality, developers are able to customize the installation process and automatically deliver optional packages to client systems.

Version 1.3 also includes a powerful new API for capturing, processing, and playing back audio and MIDI (Musical Instrument Digital Interface) data. This API is supported by an efficient sound engine which guarantees high-quality audio mixing and MIDI synthesis capabilities.

In addition, internationalization has been enhanced, with below-the-spot text editing and right-to-left text entry, which is useful in Chinese speaking locales.

Version 1.3 Enterprise Interoperability

  • JDBCTM API
  • CORBA -- RMI/ IIOP
  • Java Naming and Directory InterfaceTM (JNDI)--LDAP version 3, COS, other directory services

The JDBC (Database) API 2.1 and 2.0 extension focuses primarily on portable enterprise applications, distributed transactions, connection pooling, and so on.

With Common Object Request Broker Architecture (CORBA), the ability to use Remote Method Invocation (RMI) over the Internet Inter-ORB Protocol (IIOP) is now facilitated.

The Java Naming and Directory Interface (JNDI) was previously a stand alone package, now it is part of the version 1.3 platform. The JNDI architecture consists of an API and an SPI (Service Provider Interface). Java applications use this API to access a variety of naming and directory services. The SPI enables use of naming and directory services to be plugged in transparently, allowing the Java application using the JNDI API to access their services.

There is also support for the Lightweight Directory Access Protocol (LDAP), which is used to create client applications that can obtain information from directory structures.

Security Enhancements

  • RSA signature support
  • Enhanced support for X.509 certificates--greater usability

Security Background

When Java 2 code is loaded, it is assigned "permissions" based on the security policy currently in effect. Each permission specifies a permitted access to a particular resource (such as "read" and "write" access to a specified file or directory, "connect" access to a given host and port, and so on). The policy, specifying which permissions are available for code from various signers/locations, can be initialized from an external configurable policy file. Unless a permission is explicitly granted to code, it cannot access the resource that is guarded by that permission.

These concepts of permission and policy enable the Java 2 Platform to offer fine-grain, highly configurable, flexible, and extensible access control. Such access control can not only be specified for applets, but also for all Java code, including applications, beans, and servlets.

Certificate interfaces for parsing and managing certificates, and X.509 version 3 implementation of the certificate interfaces are available.

These tools are also available:

  • keytool is used to create public/private keys; to display, import, and export certificates; and to generate X.509 version 1 self-signed certificates.
  • jarsigner signs JAR (Java Archive Format) files and verifies the signature(s) of signed JAR files.
  • policytool creates and modifies the external policy configuration files that define your installation's Java security policy.

Why Upgrade to Version 1.3?

  • Significantly faster Java client application execution
  • Reduced memory footprint
  • Enhanced Web deployment features
  • Compatible and stable
  • Bundled with IDE tools

J2SE Version 1.3 Release OS Adoption

  • Apple
  • Be Inc.
  • BSDI BSD OS and FreeBSD
  • Compaq
  • HP
  • IBM
  • Linux
  • Sun

J2SE version1.4 Platform Planning

version 1.4 "Merlin"

  • Java Community Process (JCP) has begun--public draft in next couple of weeks
  • Feature planning almost complete
  • Target FCS end of CY2001
  • Synchronize Solaris, Linux, and Windows platforms

Reference URLs

Java 2 Platform Standard Edition

Presentation Slides

Page 1 | Page 2 | Page 3 | Page 4

Coffecup Logo

About the Author

Michael Meloan a frequent contributor to the Java Developer ConnectionSM, began his professional career writing IBM mainframe and DEC PDP-11 assembly languages. He went on to code in PL/I, APL, C and Java. In addition, his fiction has appeared in WIRED, BUZZ, Chic, L.A. Weekly, and on National Public Radio.


Reader Feedback

Tell us what you think of this article.

Duke

Very worth reading Worth reading Not worth reading

If you have other comments or ideas for future articles, please type them here:


Print Button
[ This page was updated: 2-Jan-2001 ]
Products & APIs | Developer Connection | Docs & Training | Online Support
Community Discussion | Industry News | Solutions Marketplace | Case Studies
Glossary | Feedback | A-Z Index
For more information on Java technology
and other software from Sun Microsystems, call:
(800) 786-7638
Outside the U.S. and Canada, dial your country's AT&T Direct Access Number first.
Sun Microsystems, Inc.
Copyright © 1995-2001 Sun Microsystems, Inc.
All Rights Reserved. Terms of Use. Privacy Policy.