Oracle's Steven Harris on Performance-Oriented Architecture

Interviews from JavaOne 2007

by Frank Sommers and Bill Venners
May 18, 2007

As part of our ongoing mini-series of interviews from JavaOne 2007, today we speak with Steven Harris, Vice President of the Java Platform Group at Oracle. In this brief interview, Harris points out why developers should consider application performance from the very early stages of architecting an application, and about the architectural implications of performance-oriented design.

The third installment of the Artima JavaOne interview series visits with Steven Harris, Vice President of Oracle's Java Platform Group. In this interview, Harris challenges developers to re-think how they architect enterprise applications with a view to ensuring the long-term performance requirements of an application.

One school of thought, says Harris, dictates that developers initially not worry much about performance: Just architect an application so that it meets its initial requirements well, and consider performance as an optimization step. A different philosophy, by contrast, considers performance as a key factor in architecting an application from the outset.

According to Harris, experience shows that in many domains, incremental performance optimization cannot scale to meet an application's long-term performance needs. In those cases, an application sometimes has to be re-architected with performance in mind:

There is a school of thought that says, "Architect things correctly, and think about performance later." I think ... people need to think pragmatically about the performance aspects of what they're building. For example, is the data you're managing going to be limited to the memory of a single JVM? ... The dataset you're going against can be larger than the memory available in a single JVM. It's actually a shared service distributed across a set of nodes, and can be very large, just as a database can be very large.

In a lot of areas, like financial services, gaming, betting..., you're seeing this tremendous scalability gap. The way you address that gap are, in a lot of cases, fundamental architectural changes. Instead of just buying faster hardware, you have to think about architecting your application in a different way.

Click to download audio Steven Harris, Vice President of the Java Platform Group at Oracle talks about the importance of considering an application's long-term performance requirements from the earliest stages of design. (3:22 minutes)

To what extent, and in what situations, do you consider the ability to scale an application's performance when making initial architectural decisions or when choosing an enterprise framework? Have you encountered situations when an application had to be re-architected because the old architecture could no longer scale?

Post your opinion in the discussion forum.

Talk back!

Have an opinion? Readers have already posted 1 comment about this article. Why not add yours?

About the authors

Frank Sommers is Editor-in-Chief of Artima Developer. He also serves as chief editor of the IEEE Technical Committee on Scalable Computing's newsletter, and is an elected member of the Jini Community's Technical Advisory Committee. Prior to joining Artima, Frank wrote the Jiniology and Web services columns for JavaWorld.

Bill Venners is president of Artima, Inc. He is author of the book, Inside the Java Virtual Machine, a programmer-oriented survey of the Java platform's architecture and internals. His popular columns in JavaWorld magazine covered Java internals, object-oriented design, and Jini. Bill has been active in the Jini Community since its inception. He led the Jini Community's ServiceUI project, whose ServiceUI API became the de facto standard way to associate user interfaces to Jini services. Bill also serves as an elected member of the Jini Community's initial Technical Oversight Committee (TOC), and in this role helped to define the governance process for the community.