Write once, run everywhere -- no kidding

Primed for business, Oracle 10g AS Release 2 frees Java apps from traditional server binds

As free servers continue to rack up rapid gains in the installed base, Oracle hopes to hang on to its third-place position among vendors selling commercial J2EE-certified app servers. To boost AS (Application Server) 10g’s attractiveness alongside freeware alternatives, Oracle tries to split the difference between the cost benefits of free and the feature-richness of branded by making the entire server stack and tools free for development use.

I’m extremely impressed with AS 10g Release 2 as a commercial product. Oracle has designed a valuable feature set built on top of J2EE 1.3, optimizing it for SOAs (service-oriented architectures), BPEL (Business Process Execution Language), BPM, pervasive support of XML, and real-time business intelligence, among many, many other things.

But I’m just as impressed with the clear emphasis Oracle has placed on complying not only with the letter of Java server standards, but with their “write once, run anywhere” spirit. You get to choose whether you want to bind yourself to Oracle’s extras. AS 10g Release 2 permits, and even automates, deployment to and management of non-Oracle Java app servers that adhere to the J2EE 1.3 standard. And if you do this, there are no subtle glitches meant to prod you toward paying for Oracle’s server.

After several weeks of living with AS 10g Release 2, I found that Oracle’s added value is nothing short of spectacular for enterprise applications and well worth paying for.

Call It 10.5

AS 10g Release 2 is no service pack. It’s a new edition with, according to Oracle, more than 400 added features, many of which put business events in control of application flow. I’d make myself crazy trying to document all of them, so I’ll dig into a few that really grabbed me.

AS 10g’s holistic approach to BPM, which revolves around the BPEL standard, is exceptional. It rivals the capabilities of stand-alone and costly add-in business-process services and exceeds its mission by implementing connectivity with non-Java back ends in ways that make it easy to put your current assets at your Java solution’s disposal.

AS 10g minimizes the sense -- present in other servers -- that constructing a business process is like wiring together a massive entertainment system in which no two components come from the same manufacturer. The JCA (J2EE Connector Architecture) standard gives all Java app servers a foundation for getting integration right, but Oracle goes a step further with a healthy selection of standard connectors (including PeopleSoft, SAP, and Siebel), a smartly design front end, and a Web-based console that lets you monitor and debug business processes while they’re running.

As is the case across most of Oracle AS 10g’s plentiful console and dashboard interfaces, business process drill-down is a matter of clicking hyperlinks, and I’m amazed by the number of hyperlinked items shown on server management and report pages.

The drill-down information would make no sense if it were presented only symbolically. For those full AS 10g implementations that share a LAN segment with one or more Oracle 10g database servers, AS 10g maintains a centralized metadata repository that associates the arbitrary symbols embedded in Java code with plain language terms and processes specific to the application.

With metadata mappings, business processes are debugged by businessmen, not developers. Your developer will need direction from business staff to create an initial geek-to-English (or whatever the local language is) translation during design, but after deployment you won’t need Java jockeys with magic decoder rings to make sense of your solution’s processes and data. Filling the metadata becomes an easy, integrated part of best-practices-based development and deployment.

AS 10g executes BAM (business activity monitoring) perfectly. The beauty is, once again, the ability to put the businessman in the driver’s seat. The elements you’d expect from a BAM implementation, such as a rules engine and a notification profile, are present, of course. I got hooked on the accessibility of the interface and on the cleverness, flexibility, and efficiency of Oracle’s approach. Agents on server nodes maintain connections to a hub (which is in turn connected to the metadata repository) that handles process orchestration and coalesces inbound data from AS 10g servers. The agent/hub approach simplifies after-the-fact BI analysis of data and transactions by obviating the need to know which specific server did the work, or even where the data landed. That helps to enable the grid support built into AS 10g Release 2, but the agents also feed BAM.

The hub and agents work together to watch for the data changes and trends that users and applications -- through Web services, Java code, connectors, and other means -- have selected for real-time notification. There’s no need for message queue taps or hand-coded database triggers.

Oracle wins points for the portability and consistency of its user interfaces, both of which deepen AS 10g’s overall feel of tight integration.

Further, Oracle’s JDeveloper IDE has an embedded OC4J (Oracle Containers for Java) implementation, which is largely based on open source software. You could certainly install and configure the open software yourself, but Oracle has assembled its core Java server from validated parts, wired in ready-to-run configurations, and combined everything into a one-click (at least on my Mac systems) install. OC4J lacks the enterprise scalability and connectivity of AS 10g and other full-blown J2EE servers, but I found JDeveloper’s embedded OC4J to be a blessing not only during development, but also in testing.

High Visibility

JDeveloper, which we recently reviewed, is a marvel. I’ll let our review handle the details, but there’s one trait of JDeveloper worthy of special mention: one-step deployment. If you color within the generous lines of J2EE 1.3 or 1.4, the IDE will perform a fully automated deployment to the Java server of your choice. It reached out to my Xserve-hosted JBoss and Tomcat/OC4J with ease, in both cases leaving me with apps that were ready to run.

The sample apps I built and deployed across Windows, Linux, and OS X demonstrated the portability, interoperability, and application intelligence that Oracle brings to large-scale Java server apps. But I may have learned the most from a trivial inventory control application I built to simulate a narrow range of b-to-b interactions.

The application walked its way from JSP to a secure portal and Web services. XSLT (XSL Transformation), which is integrated into JDeveloper as well as the run time, translated my partners’ native data representation to mine. A partner submits an order by calling into a Web service on my servers. This kicks off a business process that checks inventory level, tests to see if the customer’s account is in good order, sends the order to the warehouse, and notifies the partner. An associated BAM rule alerts me if I’m at risk of running out of stock. Moving from stage to stage wasn’t as easy as flipping switches or dragging rectangles around in a GUI, but I was constantly surprised by how little Java server knowledge -- or even Java knowledge -- was required to incorporate advanced features.

There’s one facility in AS 10g Release 2 that ties things together: No action of consequence goes unnoticed or is obscured from your sight. AS 10g’s instrumentation visibility reaches down closer to the metal than I’ve seen in other app servers. This is a tremendous aid to debugging and performance profiling, but the instrumentation is part of an invisibly integrated whole that combines AS 10g’s deep knowledge of its inner workings with derived knowledge of the architecture and structure of your application to build the potential for new breeds of Java server applications. And if you value freedom more than tight integration and polished functionality, Oracle lets you have your way and even helps you jump ship, if that’s your choice.

The myth of “write once, run anywhere” has been turned on its head. With AS 10g Release 2, Oracle has delivered on that age-old promise as well as a software giant can.

InfoWorld Scorecard
Scalability (15.0%)
Value (10.0%)
Manageability (20.0%)
Reliability (10.0%)
Interoperability (15.0%)
Integration (15.0%)
Performance (15.0%)
Overall Score (100%)
Oracle Application Server 10g Release 2 9.0 8.0 10.0 8.0 8.0 9.0 8.0 8.7