New England Software Symposium

March 9 - 11, 2007 - Boston, MA


Sheraton Ferncroft
50 Ferncroft Road
Danvers, MA   01923
Map »

Ron Bodkin

Chief Software Architect, Quantcast

Ron Bodkin is the chief software architect of Quantcast, an open ratings service for Web sites. Ron is also the founder of New Aspects of Software, which provides consulting and training on aspect-oriented software development and effective architectures for Java. Ron is also the leader of the open source Glassbox application performance troubleshooting project.

Previously, Ron led the first implementation projects and training efforts for customers of the AspectJ group at Xerox PARC. Prior to that, Ron was a founder and the CTO of C-bridge, a consultancy that delivered enterprise applications using Java frameworks.



Presentations

Using Aspects to Work with Annotations

In this session, you will learn how to use Aspect-Oriented Programming (AOP) as a tool to avoid annotation hell by working effectively with Java 5 annotations (such as @Remote ). You will see simple and more advanced techniques to process custom annotations in a higher-level Java-like language, and how this compares to lower-level approaches like the Java Annotation Processing Tool. You will also see techniques for simplifying annotations, by providing application-specific default values and by deriving standard annotations used by frameworks like EJB 3, JAX-WS, and the Spring Framework from higher-level domain-specific annotations using AOP.

The session includes a short refresher on AspectJ, Spring AOP, and JBoss AOP and what AOP does more generally as an introduction to how it is useful when working with annotations, even with Java 1.4. It also concludes with an analysis of where and how you can use annotations with and without AOP.

Effective AOP

Aspect-Oriented Programming (AOP) allows better application architectures by centralizing scattered and tangled code for prolems like security, error handling, testing, policy enforcement and feature variations across a product line. The recent releases of Spring 2.0 and AspectJ 5 illustrate the maturing options for Java projects.

This session looks at how you can improve your development process and technology with aspects. You will learn the concepts of aspect-orientation, how it applies to enterprise systems, how to design with aspects, the architectural options for working with aspects, and strategies for effective team adoption. In this talk, I illustrate the concepts with practical examples of using AspectJ and Spring AOP to handle metering, feature variations, security, error handling and testing. Both Spring and AspectJ are freely available and open source.

AJAX Performance and Scalability

You know AJAX can improve Web application usability, but only if designed properly. How do you deploy and manage responsive rich client networked applications that scale? If you are using services from multiple sources, how can you identify bottlenecks?

In this session, we look at the architectural changes implied by AJAX and other networked rich clients, with an overview of the major technologies and how they impact applications. You will learn about the key performance, scalability and reliability challenges as well as how to avoid them. We then review how noninvasive monitoring and JMX management data can be integrated to better understand and quickly resolve production problems. You will learn how to integrate low overhead effective monitoring without needing to "bake in" instrumentation up front. You will also learn how to troubleshoot problems in Java-based applications quickly, with illustrations of how these apply to common issues in AJAX applications.

Glassbox: Open Source Monitoring and Troubleshooting

In this session, you will learn how the Glassbox open source troubleshooting and monitoring agent supports low overhead monitoring and troubleshooting without needing to "bake in" instrumentation up front. Glassbox provides an easy to use AJAX interface, an automated installer, and concise summaries of common problems such as database failures, and slow operations caused by thread contention and excessive distributed calls. Glassbox also supports customization and detailed analysis for deeper investigation.

Under the covers, Glassbox uses JMX and aspect-oriented programming to discover applications, track performance, and automatically diagnose common problems in Java applications. You will see how Glassbox can be extended easily with XML, AspectJ, and Spring AOP, providing a useful foundation for customized application monitoring. See also http://www.glassbox.com/ for more information.

You will learn: Common failure scenarios for Java applications, Techniques to quickly diagnose problems, How to build custom Glassbox monitors to gather new data, How to plug in new operations and analysis concepts with Glassbox, How to use Glassbox to plug into existing systems monitoring infrastructures, A foundation to effectively incorporate Glassbox into solutions.