Bob Brewin, a Sun Distinguished Engineer and chief technology officer
for software, is a surfer dude. Beginning the general technical
session titled "Evolutionary Java: Open Possibilities," Brewin showed
off a Java technology T-shirt designed especially for him. The
shirt displayed Duke, Sun's avatar, surfing a pretty large wave.
Well, a pretty large wave is sweeping through the Java platform,
making it faster and richer, yet simpler. In this session, Brewin took a
virtual ride -- what he called "a little journey" -- catching the Java
wave and giving a large and enthusiastic audience a view of where
that wave is headed.
Though it is a little journey to Brewin's way of thinking, the session
covered the entire spectrum of the Java platform, from Java Platform,
Standard Edition (Java SE), to Java Platform, Mobile Edition (Java
ME), to Java Platform, Enterprise Edition (Java EE). Spicing up the
talk were a number of really cool demos.
New and Powerful Capabilities in the Java Platform
Danny Coward, the platform lead for Java SE, joined Brewin onstage to
talk about some of the key developments in the platform. Coward
started off by saying that "It's been a really busy year for the SE
team." Earlier this year, the team released Java SE 6. In the few
months it's been out, Java SE 6 has been downloaded millions of
times, clearly illustrating that the platform has been adopted at a
faster rate than any previous release.
The Java SE 6 release adds some notable APIs to the platform,
including web services-related APIs, such as the Java API for
XML-based Web Services (JAX-WS) and Java Architecture for XML Binding
(JAXB). Significantly, the platform supports scripting languages. It
does this by providing a framework in which scripting engines can
access Java classes. Sun's implementation of Java SE 6 also includes
a Rhino scripting engine.
There are also highly useful additions in the Swing area, such as a
SwingWorker utility, which aids in Swing-related threading, and
enhancements in monitoring and management, such as attach-on-demand
support. Attach on demand means that developers can attach the
jConsole diagnostic tool to any application.
But perhaps the most significant enhancement in the Java SE 6 release
is the platform's performance gains. Java SE 6 performs dramatically
better than did previous releases of the platform. Coward
showed a performance chart that compared the SpecJBB2000 business
benchmark running in J2SE versions 1.3, 1.4.2, 5.0, and Java SE 6.
The graph showed a performance improvement of more than seven times
since J2SE 1.2. Coward followed the SpecJBB2000 chart with a
SwingMark client benchmark chart that showed more than a doubling in
performance of client applications across the Java SE releases.
As far as plans for the Java SE 7 release, Coward said that a main
objective is modularization, something critical for robust design and
deployment. A key element of that objective applies to the Java
Runtime Environment (JRE). The vision is to have a modular JRE that
installs only the pieces that an application needs. This would make
for extremely fast desktop application startup.
Two other key features in Java SE 7 relate to packaging:
- A new packaging format for Java code and related resources. The
format, informally called super JARs, adds some significant
capabilities that were lacking in the current JAR packaging approach,
such as version control and dependency declaration. Coward said that
the Expert Group for this feature is looking into making the new
packaging format integrable with other packaging formats.
- A new language feature that allows developers to declare a
hierarchically organized packaging structure for an application --
essentially a package of packages, called a superpackage. The
packaging hierarchy allows for a much finer level of access control
to packages.
OpenJDK -- OpenTCK
Coward also underscored the key role that the OpenJDK community plays
in the evolution of the Java SE platform. In late 2006, Sun
established the OpenJDK community for the ongoing development of
Sun's open-source implementation of Java SE. At that time, Sun open
sourced a number of JDK components to the community. Coward restated
an announcement that Sun executive vice president Rich Green made
earlier today: "Today a fully buildable JDK is being released
under the GPL v2 license." Coward also reiterated some other parts of
Green's earlier OpenJDK announcement:
- Creation of an interim JDK governance board drawn from luminaries in the Java community
- Institution of a charter to build an OpenJDK constitution
- Plans for an OpenTCK, a test suite for the OpenJDK platform
A technology compatibility kit (TCK) is a suite of tests and tools
that determines whether a product complies with a particular Java
technology specification. With the availability of an OpenTCK,
developers have a tool to ensure compatibility of OpenJDK
distributions.
Ramp Up to the Internet
After Coward left the stage, Brewin transitioned to the world of the
web. The use of cell phones has grown explosively, and that has
fueled an almost equally explosive burgeoning in Internet
connections. The growth trend is almost exponential, driven by new
types of clients that range from Blu-ray media players to sensing
devices in cars.
Paralleling this growth has been a revolution in the ways users
interact with the Internet. No longer a static information-retrieval
mechanism, the Internet is moving quickly into a new stage, commonly
called Web 2.0, with users collaborating in creating and sharing web
site content. The huge popularity of web sites such as Flickr and
YouTube attests to the success of that revolution.
The Java platform is moving in pace with this change, and to
demonstrate that, Brewin called Sun engineers Charles Nutter and Tor
Norbye to the stage.
What Nutter and Norbye showed could be termed "Mephisto meets
NetBeans" or the "Ruby of Java." First, Nutter took Mephisto, a
popular blogging and publishing application built on the Ruby and
Rails web application framework, and opened it as a NetBeans IDE
project. Through the IDE, he created a web archive (WAR) file for the
application, deployed it to the GlassFish application server, and
then ran the application in JRuby. Not only did this demo illustrate
some cool support for Web 2.0 -- Mephisto is definitely a Web 2.0
application -- but it also demonstrated the Java platform's support
for dynamically typed languages -- Ruby is a scripting language, and
JRuby is the Ruby implementation in the JVM.*
Then Norbye demonstrated how easy it is to use the NetBeans IDE to add
features to the Ruby application.
Tailoring a Web Application Fast
The theme of quick-and-easy application customization continued into
the next demo. After Nutter and Norbye left the stage, Brewin called
Sun technology evangelist Arun Gupta to join him onstage. Using
NetBeans plugins for two scripting-friendly, open-source web
application frameworks, jMaki (a client-side framework) and Phobos (a
server-side framework), Gupta quickly tailored a web application that
tracked code bugs over time -- what Gupta called a developer
dashboard -- and quickly added a Yahoo! calendar.
GlassFish Version 3
Community participation in the development of the Java platform is
certainly not limited to Java SE. For a number of years, an active
Java community has been developing an open-source implementation of a
Java EE 5-compatible application server. This is the GlassFish
community, and its open-source application server implementation is
called GlassFish.
The community is also working on various web services technologies
apart from the effort to develop the application server. The work on
GlassFish has significance for other Java EE 5 application server
implementations. Both the Java EE 5 SDK, the Reference Implementation
for Java EE 5, and the Sun Java System Application Server -- Sun's
commercial implementation of Java EE 5 -- are derived from the
GlassFish code.
A beta release of GlassFish version 2 (v2) is currently available.
However, the community is already planning for version 3 (v3). Jerome
Dochez, the engineering lead for GlassFish, said that the v3 roadmap
will "change the way you think about application servers." One of the
significant things on the drawing board is a more modular design of
the GlassFish code.
Similar to what Danny Coward said about the modularity of Java SE 7,
a more modular GlassFish would allow the operating system to load
only the parts of GlassFish that are needed for an application. It
would also make for much faster GlassFish startup. The modular core
of GlassFish v3, called HK2 -- for Hundred Kb Kernel -- has already
been tested: It starts in less than a second. In fact, when Dochez
started GlassFish onstage, it took only 463 milliseconds. Brewin
exclaimed, "That's the fastest app server startup I've ever seen!"
Plans are in the works to include more Web 2.0 support by
incorporating frameworks such as jMaki, Phobos, and PHP. This would
enable developers to run Ruby on Rails, among other things, using
JRuby, Phobos, and PHP. Another objective for v3 would make GlassFish
embeddable so that it could run in the same JVM as an IDE. This would
give developers a big productivity boost in building web
applications.
Rich Clients
Brewin spent a significant amount of the session discussing rich
clients, both of the desktop and web-based variety. Two desktop demos
in this segment got lots of oohs and ahs from the audience. The first
was a desktop application called NASA World Wind. Patrick Hogan,
program manager for NASA World Wind, gave an overview of World Wind,
and Sun engineer Kenneth Russell gave the demo. And what a demo it
was! Imagine being able to zoom in from a satellite and see any place
on earth -- and see it in 3D! That's what the application does,
albeit virtually.
The application has been available for a number of years. But Hogan
announced a new Java technology version of the application built in
collaboration with Sun that will be open sourced to the Java
community. Beyond that, the application is embeddable in Java
applications, extensible through Java code, and can be started
through Java Web Start software or Java applets. Hogan challenged the
audience by saying, "The onus is now on you to come up with new and
innovative ways of using this technology."
It's easy to envision a wide range of Java web applications that
combine, or mash up, their data with NASA World Wind planetary
images. In fact, the F-16 flight simulator, the second of the two
rich client demos, performs this type of mashup with World Wind.
Showing this demo was Darren Humphrey, the CEO of Distributed
Simulation, Inc. (DiSTI). The company owns the GL Studio line of
products, used to build a variety of simulators and other
human-machine interface applications. GL Studio for Java was used to
develop a F-16 flight simulator. Needless to say, with a fully
interactive model of an F-16 cockpit and lifelike images of the Earth
generated by World Wind, this was a pretty impressive application.
On the web side, Sun engineers Richard Bair, Jasper Potts, and
Kenneth Russell demonstrated Iris, an online photo editor and viewer
developed by SwingLabs. SwingLabs is an open-source laboratory for
advanced Swing technology, sponsored by Sun Microsystems. The web
application allows users to arrange Flickr photos in a viewer, edit
them, and share them with others. What was really surprising about
this graphical and high-performance web application was the Java
applet perched at the bottom of its user interface. To move an image
to the web page, all a user has to do is drag and drop the image to
the applet -- a simple and fast operation. Russell pointed out that
the application is fully interoperable with Web 2.0 applications, has
powerful security features, and can be extended to include 3D
graphics and 3D audio through OpenGL and OpenAL, respectively.
Rich Clients Made Easy -- JavaFX Technology
Perhaps the most interesting part of the session was the segment on
JavaFX technology, which Green announced earlier in the day.
This new software product family is designed to make it
simple to build compelling, rich-client applications, including
Flash-like applications. The products will comprise a set of pure
Java runtimes, widgets, development tools, and a scripting
environment.
To show how easy it is to build a rich-client application using
JavaFX technology, Brewin called Sun engineer Nandini Ramani to join
him onstage. A key part of JavaFX is its scripting language, JavaFX
Script. In the earlier Rich Green talk, Chris Oliver, the developer
of an alpha version of JavaFX Script, showed a graphically rich
web site called studio moto and said that he created the site --
complete with all its animated effects -- using JavaFX Script in
just three days. Ramani did a deep dive into Oliver's code, focusing
on one component in the interface. She demonstrated how compact the
code is and how quickly a developer could change the characteristics
of interface components.
The plans for JavaFX technology call for a full-fledged JavaFX
scripting language, a Java FX design tool called JavaFX Designer (an
early prototype plug-in is available in the NetBeans IDE), and
widgets and applications built with JavaFX.
Brewin said that what's driving the Java FX technology announcement
is the need of many developers -- particularly content developers --
to easily and quickly develop and deploy rich Internet applications
that run on the spectrum of clients from browsers to mobile devices
to TV.
An especially important target for JavaFX technology is mobile
devices such as cell phones. Recently, Sun announced the acquisition
of SavaJe, a provider of mobile Java application development tools.
Sun will build on the base of SavaJe's Java software to create an
open-source, JavaFX-based product for mobile devices called JavaFX
Mobile.
The product will empower developers to create network-centric,
rich-client applications for cell phones. To give folks a future glimpse
of what JavaFX on mobile devices can do, Larry Rau, Sun chief
technologist for consumer solutions, showed the product on various
mobile devices. Brewin opined that it's "really cool to get a
full-fledged Java (that is, JavaFX) on different consumer devices."
A Great Session
All in all, this was an interesting and entertaining session replete
with major announcements and compelling demos. The session should
stimulate attendees to try out some of the new and exciting things
happening in the Java platform.
It's time to get the surfboards out, dudes, and ride that wave!
* As used in this document, the terms "Java virtual machine" or "JVM" mean a virtual machine for the Java platform.
For More Information
Project jMaki
Project Phobos
NetBeans IDE
GlassFish Community
NASA World Wind
Distributed Simulation, Inc. (DiSTI)
IRIS
JavaFX Technology
|