Klikk på tall for å vise stripe
Toon 1Toon 2Toon 3Toon 4Toon 5Toon 6Toon 7Toon 8Toon 9Toon 10 JavaZone JavaZone

Top 10 Patterns for Scaling Out Java Applications

0608a8e5-9293-4063-a4a8-4cdd595a7fbf
View video  Presentation
Abstract
This presentation explores the challenges and solution patterns for managing data and compute tasks in scale-out environments. It is based on experiences with using a wide assortment of software solutions for compute and data management in scale-out environments, including newer scale-out technologies such as data grids and compute grids as well as getting the best results out of traditional database and messaging solutions.
Outline
In the past two years I presented the talks “The Top 10 Ways to Botch an Enterprise Java Technology-Based Application” and “The Top 10 Ways to Botch Enterprise Java Technology-Based Application Scalability and Reliability”. Now that people have plenty of expertise on how to botch their applications, I wanted to shift focus from anti-patterns to patterns. The "Top 10" theme remains as it keeps a quick pace and enforces a quick distillation of complex topics into simple concepts for the audience to remember.
In this presentation I will use real world examples to demonstrate the challenges, solutions, and unexpected discoveries architects find when building scalable Java applications. I will site actual scenarios where each pattern has been used, and explain what the driving forces were behind these choices. (This talk consciously steers clear of discussing website scaling via content caching, as this is a topic well-covered by many whitepapers, presentations and other conferences.
A few examples:
For example, working on an ultra-low-latency JavaSpaces-based trading application was one of our first exposures to Recovery-Oriented Computing (ROC) for transaction processing in a production environment. The ROC concept can be used to achieve otherwise impossible results by selectively persisting only critical system state. Prior to this, we had generally steered clear of non-replicated in-memory data. But applying the ROC concept allowed us to achieve an order-of-magnitude latency improvement over what even the most efficient replicated-memory approach would have allowed, without compromising system availability.
Likewise, working with a high-volume clearing application, a partner discovered that while serializable database isolation was required from a business perspective, and their database of choice enforced this optimistically, performing initial locking in-memory minimized the number of transaction rollbacks, substantially increasing system throughput.
Much of this experience was acquired while working with customers in the usual early-adopter sectors: websites for retail, travel and hospitality; transaction processing and compute grids in investment banks; and more recently, the rush of so-called "Web 2.0" startups. While in most of these cases, the primary reason for being onsite with the customer was the Coherence product that I am involved with, many of the more interesting lessons came from working with 3rd party products from dozens of vendors and open source communities, and learning alternate solutions to common problems from the people involved with those products.
Required experience
Some experience with enterprise application development
Expected audience
Developers, IT Managers, Architects
  • Photo of Cameron Purdy
    Cameron Purdy
    Cameron Purdy is Vice President of Development at Oracle. Prior to joining Oracle, Mr. Purdy was the CEO of Tangosol, whose revolutionary Coherence Data Grid product provides reliable and scalable data management across the enterprise. Mr. Purdy has over ten years of experience with Java™ and Java-related technology. As a software visionary and industry leader, Mr. Purdy is a frequent presenter at industry conferences and has received a number of awards in recognition of his contribution to the Java community, including twice being named as a JavaOne RockStar and being recognized in TheServerSide’s “Who’s Who in Enterprise Java”. He regularly participates in industry standards development and is a specification lead for the Java Community Process.