Few would dispute that Java was a great idea, but it takes years for even the biggest brainstorm to evolve into a technology ecosystem. A decade is none too long. Sun Microsystems Inc.s 10th annual JavaOne conference, held in San Francisco at the end of last month, combined that level of maturity with a surprising vigor of continuing growth.
This years JavaOne showed off an impressive array of robust products—not just technology demos—attesting to the leverage that technology providers have gained from Javas original core design decisions.
During conference keynotes and show-floor briefings, eWEEK Labs had an opportunity to evaluate significant Java-based offerings in the key areas of software performance improvement, application integration and virtualization of computing resources—creating the scalable and cost-effective platforms required for the high peak-to-average workloads of the Web services world.
One of the fondest hopes of object-oriented technology has been the prospect of introspection and reflection—that is, of enabling software modules to offer the rest of the world a simple means of determining what they do and how to make them do it.
Javas reflection interfaces, added in the now-ancient times of the 1.1 release, allow a program to ask an object run-time questions about its class, its supported methods and its internal data fields.
Missing from that picture, though, has been the ability to ask crucial questions about the use of time and memory and other key resources in production environments as control moves from Java code through the virtual machine into the operating system and back.
That information is vital, said Sun Solaris Kernel Engineer Adam Leventhal during a JavaOne keynote demo, because Java developers are “sitting on top of a huge tower of abstraction, and a small thing at the top can trigger a hurricane of work at the lower levels of memory use or disk I/O.”
Developers have long recognized the double-edged nature of objects powerful abstractions. A minor change in the manner of using an object, with its self-managing infrastructure, can substantially alter application performance.
Leventhal demonstrated a well-received improvement in the analysis of such effects, extending Suns DTrace dynamic measurement technology to offer information about internal Java calls all the way down into underlying software layers.
DTrace is not a cosmetically appealing visual tool but rather a decidedly command-line experience based on a C-like language called D. The foundation is there, however, for third-party toolmakers to build visual shells, while developers enjoy immediate opportunities to answer previously vexing questions about what their Java code is doing.
The biggest hit of the 10th JavaOne, as measured by session attendance, was the rollout of the Java Community Process JBI (Java Business Integration) 1.0 specification, previously dubbed JSR-208. (Actually, JSR-000208, but perhaps we need not worry about the implication that there could be more than 999,000 Java Specification Requests still to come.)
The JBI specification comprises 240 pages, but its core purpose is concisely summarized as establishing a standard interface for interaction and management of services. These are mediated by an environment that provides—indeed, based on eWEEK Labs reading, assures—asynchronous interaction to preserve loose coupling and avoid platform dependence in SOAs (service-oriented architectures).
Dave Chappell, vice president and chief technology evangelist at Sonic Software Corp. and a member of the JBI Expert Group, described JBI to eWEEK Labs as enabling third-party components “to plug together into an SOA-based environment.”
Giving developers more flexibility than the Enterprise JavaBeans technology, JBI standardizes a basic service container: “Its dramatically going to reduce the burden of coding to different proprietary code,” said Chappell.
The decoupling provided by the JBI environment, it appears to the Labs, will deliver the additional resilience thats needed to move from Web services as a mere model of modularity to an enterprise-class SOA. An interoperability demo at JavaOne successfully integrated services created separately by each of several participating vendors; a demo of Sonics Continuous Availability Architecture actually shut down a machine in the middle of processing purchase order messages between Java- and .Net-based services, transferring the task to a backup server without disrupting services or transactions.
The Labs JavaOne tour of maturing innovation moved from the inside out, beginning with tools for the internal analysis of running code and then expanding our view to the vendor-neutral JBI infrastructure for managing the interaction of multiple classes.
The final step of the journey made the transition from software to hardware: We found significant developments that strengthen the entire execution environment of an enterprise-class Java-based installation.
The first of these offerings was a robust implementation of the JavaSpaces technology originated by Sun in 1997.
JavaSpaces enables dynamic networked computing, making opportunistic use of available processor cycles while still preserving the manageability and reliability required for commercial IT operations.
The second was a realization of the JVM (Java virtual machine) in a multiprocessor hardware environment, giving substantial performance and reliability benefits with remarkably little space or power consumption.
JavaSpaces is a simple concept for providing a distributed persistence and object exchange mechanism: Objects dont communicate directly with one another; rather, an object writes a message into a virtual space, “with the expectation that someone, somewhere, at some time will take the object,” said Sun Java Technology Analyst Sang Shin in a March 2002 presentation.
The result is decoupling in time and space. Properly implemented, the concept offers enterprise-class reliability, as GigaSpaces showed at JavaOne, where the company released Version 5.0 of its JavaSpaces-based Enterprise Application Grid.
GigaSpaces demonstrated Version 5.0 at JavaOne on a diverse collection of small machines—two Macintosh Minis and a Windows laptop, each running the lightweight GigaSpaces software agent.
With GigaSpaces visual management tools, we were able to relocate processes from one machine to another or abruptly disconnect a machine from the network without disrupting work in progress.
It appeared to the Labs that, critically, an application stack will not need to be reworked to enjoy these benefits: “You can use any middleware API out there—you write the way you write. You write JDBC [Java Database Connectivity], you put in a GigaSpaces JDBC driver,” said GigaSpaces CEO Yaron Benvenisti.
GigaSpaces was subsequently honored at a JavaOne general session with one of Suns annual Dukes Choice Awards (a “Dukie”) for its contribution to enterprise application performance, scalability and reliability.
We ended our JavaOne tour by meeting with Azul Systems Inc., winner of an eWEEK Excellence Award earlier this year for its Azul Compute Appliance, a network-attached engine with as many as 384 processing cores running a fully managed Java-based utility computing environment.
The speed with which Azul has developed its product, since its founding in 2002, validates the notion of a collaborating Java community. “We only invent what we have to,” said Azul Software Engineering Vice President Shyam Pillalamarri. “Everywhere, we leverage what we can.”
That leverage, across the exhibit floor and at all levels of the IT stack, was clearly on display as Java turned 10.
Technology Editor Peter Coffee can be reached at [email protected].