| ★ wanayoo — archive 1999 http://developer.java.sun.com/developer/technicalArticles/javaone00/developer/ | Nouvelle recherche | Portail wanayoo |
|
|
|
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:
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 UpdateSun's Blake Connell introduced this session.Java 2 Platform Edition ReviewThe diagram below illustrates the range of Java editions.
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
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
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
In addition, version 1.3 enhances enterprise interoperability and security. Version 1.3 Performance
"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 "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.
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.
Version 1.3 Ease of Web Deployment
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
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
Security BackgroundWhen 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:
Why Upgrade to Version 1.3?
J2SE Version 1.3 Release OS Adoption
J2SE version1.4 Platform Planningversion 1.4 "Merlin"
Reference URLsJava 2 Platform Standard Edition
About the AuthorMichael 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 FeedbackTell us what you think of this article.
|