Case Studies

Case Studies: Front-line Java

Explore the challenges associated with building large-scale, mission-critical applications. Case studies give us examples of what works and what doesn't work in the real world. Browse all of our case study sessions or select a title from below:

Check out these other sessions if you are interested in case studies.


Sessions

Anti-Patterns and Pitfalls in JSF with Dennis Byrne, Iteration Manager, ThoughtWorks

As enterprises continue to adopt JSF, it is important to leverage the learning experiences of those who have gone before.  Avoiding mistakes is more important than making all the right decisions. 

This session will offers a dozen case studies (or war stories) demonstrating what NOT to do with JavaServer Faces. 

Drawing from the Apache Myfaces issue tracker and years of experience as technical lead on JSF projects, the patterns presented in this session will touch on third party library integration, vendor lock-in, performance, tight coupling, cache management, thread safety, security, interoperability and test-driven development.  Solutions to each anti-pattern will be discussed.

In this session, you will learn:

• Dependency injection options with JSF;

• How to practice test driven development for JSF;

• How to effectively integrate JSF with third party libraries;

• What 3rd party libraries (including Tomahawk, Facelets, Seam, Shale and Spring) offer to counter pitfalls of JSF Web development;

• How to reduce vendor lock-in;

• How to achieve attractive front ends and effective applications with JSF, while avoiding XML hell.

It's suggested that you are familiar with the Servlet API, JSF request processing lifecycle, JSF configuration, dependency injection and facelets. 


• Enterprise Application Development with OSGi at Statistics South Africa with Aslam Khan, Technical Director, PBT Group

The implementation covered in this case study addresses 3 large-scale enterprise application development challenges:

1) Application partitioning (vertical or horizontal) used to manage dependencies between parts spiraling out of control. 

2) Deploying multiple versions and ensuring backward compatibility of components of an enterprise application that have different development roadmaps (Compounded when the services of these components are consumed by client applications over which you have little control).

3) The downtime of rolling out new releases, given the care that must be taken when planning a roll-back procedure.

In this session, Aslam presents the underlying architecture of a statistical production system developed for Statistics South Africa. The architecture is based in OSGi. Aslam will give a brief introduction to OSGi, explain why it was selected as the architecture platform, and present real code examples on the core packages (bundles) within the solution. 

This session will also look at Spring-OSGi simplified development, focusing on POJO-based development, where the Spring Framework shields developers from OSGi internals. Included will be coverage of unit and integration testing of OSGi bundles. 

This session will include a demonstration of the solution, focusing on the flexibility gained from the OSGi platform, especially in terms of versioning of bundles and run-time swapping of bundles.

General knowledge of the Spring framework and unit testing practices will be an advantage, but not essential. 

In this session, you will learn:

• Principles and practical implementation of modularity in application design to manage dependencies;

• How the OSGi platform can be used to have multiple versions living concurrently in a run-time environment with minimal side effects; 

• How to achieve a healthier, more manageable run-time ecosystem;

• Basic features of the OSGi platform, Apache Felix OSGi project and Spring-OSGi project;

• How to perform unit testing and integration testing of OSGi bundles;

• How to use service orientation concepts in application design without having a full blown SOA;

• How to improve class loading in Java (R.I.P ClassNotFound Exception).


• Event Processing in Java - A Financial Services Case Study with Thomas Bernhardt, Founder/Project Lead, Esper

This session introduces the audience to event processing, a key building block of event-driven architectures. Event processing is fundamental in today's service-centric and distributed architectures.

Event Stream Processing (ESP) and Complex Event Processing (CEP) are fundamentally different from request/reply or stateless push-oriented systems - They bring time and causality between events as first class citizens. ESP/CEP can be thought of as turning a database upside-down so that data is streamed against registered queries and listeners in what's called continuous queries - Allowing for massive scalability with predictable latency. This opens up a wide range of use cases that can’t be traditionally addressed.

This session outlines the core concepts and vocabulary of ESP and CEP, focusing on infinite event streams and event causality, and will showcase primary use cases in the fields of trading, RFID, SLA, and network management - Addressing key challenges these industries deal with as they handle more than 100,000 events per second and complex statements combining multiple streams.

Offering a concrete example with code and demonstration, this case study from the financial services industry illustrates key capabilities of Esper, an open source Java ESP/CEP container.  Esper is the leading Java ESP/CEP framework. It is open-source, commercially supported and freely available at http://esper.codehaus.org.

The session concludes with a discussion of early adoption challenges and successes, how the technology is evolving, open challenges for standardization, high-availability, hard real-time behavior and hardware assisted processing.

In this session, you will learn:

• The key concept and capabilities of ESP/CEP platform;

• How to do real-time computation and pattern detection over event streams (moving averages and aggregations, causality / happen before relationships);

• How to implement continuous queries;

• How to provide smarter monitoring;

• Tips for automatic trading, fraud detections, and a number of other business critical issues that are hard to solve by hand. 


• Next Generation Payment Systems Using SCA (Service Component Architecture) with Jeremy Boynes, Founder, Apache Geronimo, Meeraj Kunnumpurath, Lead Technologist, Voca and Jim Marino, Director of Technology, BEA Systems

Over the past couple of years. SOA has evolved into one of the most prominent terms in building enterprise class applications. However, despite its increasing popularity, the concept remains vague as an architectural principle and pattern. Service Component Architecture (SCA) makes SOA a realistic proposition to enterprise architects, designers and developers by defining a prescriptive standards-based method for implementing enterprise systems using compositional service-oriented principles. With its backing from most of the prominent vendors from the industry, SCA will play a significant role in building next generation enterprise applications.

The session will cover how Voca, one of the leading payments experts in the industry, have used SCA to build the next generation payment platform for building payment solutions for a variety of international and European customers. The session will cover the fundamentals of SCA as a standard and technology for building service-oriented systems, Voca Generic Payments Platform (GPP) architecture using SCA and the use of the OSS SCA implementation and distributed service-provisioning framework, Fabric3, for implementing the SCA-based payment system.

In this session, you will learn:

• How to apply service-oriented principles and patterns for building large-scale enterprise applications;

• How SCA can assist your development efforts as standard and technology for realizing SOA;

• Principles of distributed service provisioning and bottom up governance.


Scaling Your Spring Application on the Cloud with Nati Shalom, CTO/founder, Gigaspaces

Cloud computing has the potential to revolutionize the way we build and deploy applications - We don't need to worry about provisioning of hardware resources, and it provides economic flexibility when it comes to setting up a working environment. Cloud computing also provides an easy path to growth - when it is needed.

Amazon provides a cloud computing service called the Elastic Compute Cloud (EC2), which enables running applications on a utility computing environment with on-demand resources and a pay-per-use model. EC2 also provides common infrastructure for those who wish to offer their applications as Internet services.

In this session, you will learn:

• How to design and deploy enterprise applications in a cloud computing platform;

• How to OpenSpaces, a Spring-based development framework from GigaSpaces, to develop, test and deploy applications on the cloud;

• The differences between a cloud computing environment and classic IT environments, specifically regarding architecture, network configuration, and multicast behavior;

• What to take into account while developing or deploying applications on the cloud.


Other sessions we recommend: