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.
|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.
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.
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.