Event Details

Location

Sheraton Reston
11810 Sunrise Valley Drive
Reston, VA 20191
View Map
NOTE: You are viewing details about a past event. We will be back in Reston November 3 - 5, 2006. You may view the event details here ».

Session Highlights

Don't miss your chance to attend more than forty education and solutions sessions:

  • Seating is Limited
  • In-depth Discussions
  • Peer Exchange
  • Access to Speakers
  • Expert Panel Discussions
  • Hands-on Code Examples
  • Best Practices
  • Birds of a Feather Session
  • Insight on Cutting-Edge Tools

Featured Sessions

By Andy Hunt

Does creating software have to be so hard?

By Andy Hunt

Software development happans in your head; not in an editor, IDE, or design
tool. We're well educated on how to work with software and hardware, but what
about wetware -- our own brains?

By Brian Goetz

Performance myths about the Java platform abound, from the general "Java is slow", to the more specific "reflection is slow", "allocation is slow", "synchronization is slow", "garbage collection is slow", etc. Many of these myths have their root in fact (in JDK 1.0, everything was slow); today, not only are many of these statements not true, but Java performance has surpassed that of C in many areas, such as memory management.

By Brian Goetz

Does your program have bugs, despite unit tests, integration tests, and code reviews? You bet. Are you using static analysis as part of your QA process? If not, you're probably missing out on some bugs that can be caught before they bite your customers.

By Brian Sletten

REST sounds like such a simple thing. But, what is it really? How do you convince your boss to let you try it when she has been sold on the equation SOAP = SOA + P(rofit)? How do you go about building, deploying, publishing and orchestrating web services without the (Un)Holy Trinity of SOAP, WSDL and UDDI?

By Brian Sletten

Imagine the simplicity of REST married to the power of Unix pipes with the benefits of a loosely-coupled, logically-layered architecture. If that is hard to imagine, it may because the architectures available to you today are convoluted accretions of mismatched technologies, languages, abstractions and data models.

NetKernel is a disruptive technology that changes the game. It has been quietly gaining mind share in the past several years; people who are exposed to it don't want to go back to the tired and blue conventions of J2EE and .NET. Not only does it make building the kinds of systems you are building today easier, it does it more efficiently, with less code and a far more scalable runway to allow you to take advantage of the emerging multi-core, multi-CPU hardware that is coming our way.

Come see how this open source / commercial product can change the way you think about building software.

By Ed Burns

In this 90 minute session, Ed Burns will clear up the fog that sometimes
surrounds people's understanding of this Web Application Development
Framework. Ed is well suited to the task, having helped shape the
design of JSF from its inception up to the present day. Upon leaving
this session, the participant will know what JSF is good for, why it is
good for these things, and how to be productive using it.

By Ed Burns

This presentation will demonstrate how JSF and AJAX are perfect together. We begin with an insight into the design heritage of JSF, and how that heritage puts JSF in good stead to be productive in the AJAX world.

By Jason Hunter

Java's new Metadata facility introduced in J2SE 5.0 defines a way to attach decorations to classes, fields, methods, and even packages that can be extracted by the compiler or runtime tools to provide advanced functionality. Think of metadata as an extended @deprecated flag, or think of XDoclet++. In this tutorial session you'll learn how Metadata fits in the Java platform (and how it compares to the C# platform). We'll cover how to use the metadata attributes provided in the core J2SE libraries and how to write your own. We'll also show a bit of what's coming in JSR-181, tasked to define standard metadata attributes for web services.

By Jason Hunter

Web Caching is very important for high traffic, high performance web site but few people know all the professional-level strategies. In this talk I'll share some of the tricks of the trade, including advanced tips from Yahoo's Mike Radwin.

We'll start with the basics: using client-side caches, conditional get, and proxies. Then we'll talk about more advanced features: how best to handle personalized content, setting up an image caching server, using a cookie-free domain for static content, and using randomization in URLs for accurate hit metering or sensitive content.

By Mark Richards

As companies continue to change the way they do business, so must the IT systems that support the business. Changes due to regulatory requirements, competitive advantage, mergers, acquisitions, and industry trends require flexible IT systems to meet the demands of the business. Software Architects must therefore make their architectures more agile to meet the flexible demands of today's business. Through real-world examples and scenarios we will explore some of the challenges facing Software Architecture and discuss several concrete techniques for applying agility to both the architecture process and the technical architecture itself. We will also look at various architecture refactoring techniques, and discuss the pros and cons of each. By attending this session you will learn how to apply various agile techniques to improve your architectures and overcome some of the challenges facing software architecture in today's ever-changing market.

By Mark Richards

Hibernate has evolved as the de facto standard for persistence in most Java-based applications. However, many people are turning to iBATIS as an open source persistence alternative. iBATIS is a powerful open source persistence framework that is rapidly gaining in popularity, particularly within the Spring community. In this session you will learn why iBATIS is becoming so popular, how iBATIS differs from Hibernate and JPA (JSR-220), and how to use iBATIS. Through interactive coding examples I will demonstrate how to configure iBATIS within Spring and also as standalone, how to map SQL statements, and how to map Stored Procedures. I will also discuss and demonstrate techniques for dynamic SQL using iBATIS, using XML with iBATIS, and finally the various caching strategies available within iBATIS. We will end this session by discussing various techniques and best practices for using iBATIS in small and large-scale applications.

By Neal Ford

This session delivers 10 techniques for improving your code, whether you are freshly graduated or a grizzled veteran.

By Neal Ford

This session describes the use and workings of Selenium, the open source web user interface testing tool.

By Pete Behrens

"YAGNI (You Ain't Gonna Need It)" and "Doing the simplest thing possible" are mantras of agile development. A white board, sticky notes, and flip chart paper are by far the best tools for individual teams. However, when coordinating work across 10 - 50 teams across 12 time zones, more tooling is required. Learn how agile enterprises are leveraging tooling to manage their portfolios, projects and products.

By Pete Behrens

Are you overrunning your architectural runway? Many companies struggle with their ability to retain their architectural integrity when they transition to agile methods. Emergent Architecture (the other EA) can lead to cowboy coding and ad-hoc design decisions that emerge into a poor overall architecture.

Enterprise Architecture (EA) has been a tried and true approach to address these architectural needs throughout the organization, yet this approach often leads to a heavy-handed, document-rich, control-oriented culture lacking ability to keep pace with today's dynamic business environment.

Attempting to integrate an agile process with an Enterprise Architecture approach can be like mixing oil and water - they just don't work together. This session evaluates alternatives in balancing Agility and EA and proposes an architectural approach to build an Agile Enterprise Architecture into your organization.

By Ramnivas Laddad

A lot is happening in the field of Aspect-oriented programming (AOP). AspectJ and AspectWerkz, the two leading AOP implementations, have merged, bringing in their respective strengths. The merged version, AspectJ 5, adds many new features aimed at simplifying writing and deploying aspects. The new features include an annotation-based and XML-based syntax to define aspects, support for new Java 5 concepts, and load-time weaving. The tools support for AOP continues to improve, as well. Further, the most popular IOC framework, Spring, enables integrating aspects written in AspectJ. There is also serious discussion and preliminary work going on to support AOP right into the VM itself. All in all, there is a lot to learn about the changes in the exciting field of AOP. This session is designed to help you get up to date with all these changes.

By Ramnivas Laddad

Domain Driven Design (DDD) suggests dealing with complex software system using a domain model and preserving the model in implementation. Since domain model entities have rich behavior, so should their software implementation artifacts. A direct mapping between domain model and software artifacts create simple-to- understand, inexpensive-to-implement, and easy-to-evolve systems.

While the idea behind DDD isn't new and the value is easily understood, many implementations do not adhere to its principles. This disconnection may be due to many obstacles in implementing it. Combining Dependency Injection (DI) with a full-fledged aspect-oriented programming (AOP) system such as AspectJ help overcome many obstacles.

By Scott Davis

Mark Twain once said, "Everyone talks about the weather, but nobody does anything about it." Do you feel the same way about Unit Testing? Are you actively testing your code, or are you just thinking about testing your code... some day... once you get some more free time...

By Scott Davis

This is the year of the dynamic scripting language. Ruby (and Rails) has won the hearts and minds of many independent software developers. JavaScript is experiencing a renaissance thanks to the wild success of AJAX and websites like Google Maps. And Groovy (JSR-241) brings the same level of excitement and "scripting goodness" to the Java platform.


By Steve Metsker

Learn the basics of refactoring –- improving the internal health of your code –- and start honing your skills immediately in this hands-on session.


By Stuart Halloway

Ajax applications have unique architectural challenges and opportunities. This presentation will show you how to take advantage of the Ajax's strengths, and work around its quirks.

By Stuart Halloway

Learn to simplify Ajax development with Prototype through a series of real-world examples. Along the way, learn to code in Prototype's modern JavaScript style, taking advantage of Prototype's extensions to JavaScript's object model

By Stuart Halloway

Spring offers developers a simpler, more robust method for configuring applications. These benefits extend to security through the ACEGI framework. ACEGI makes the otherwise daunting task of securing your application logical and straightforward. More importantly, through its support for single sign-on provision through Yale's CAS system and its ability to provide instance-level authorization, Spring extends the common security model of most J2EE apps beyond what they are traditionally capable of.

By Ted Neward

If you've ever gotten a ClassCastException and just knew the runtime was wrong about it, or found yourself copying .jar files all over your production server just to get your code to run, then you probably find the Java ClassLoader mechanism to be deep, dark, mysterious, and incomprehensible. Take a deep breath, and relax--ClassLoaders aren't as bad as they seem at first, once you understand a few basic rules regarding their operation, and have a bit more tools in your belt to diagnose ClassLoader problems. And once you've got that, and hear about ClassLoaders' ability to run multiple versions of the same code at the same time, and to provide isolation barriers inside your application, or even compile code on the fly from source form, you might just find that you like ClassLoaders after all... maybe.

By Ted Neward

Tired of writing object-table mappings? For years, Java developers have wrestled with the problems of storing objects into relational format and retrieving them back again; for all that Hibernate and JDO and other O/R tools make it easier (though not easy) to do, isn't there another way? In this presentation, we'll explore an alternative approach, real object persistence, using the db4o toolkit (www.db4objects.com).

By Ted Neward

Want to get the soup-to-nuts story on Java annotations? In this presentation, we'll first talk about what annotations provide to the Java language. After setting ourselves a conceptual basis to operate from, we'll look at the language definition for Java annotations, from how to use them to how to define them. Finally, we'll take a look at the other side of annotations, consuming them at source-level (using "apt", the annotation processing tool), class-level (using a bytecode toolkit such as BCEL), and at runtime (using enhancements to the Reflection API made in Java5).

By Venkat Subramaniam

Test Driving Development is a valuable technique that has several benefits. However, unit testing is hard when your code has dependencies-this often becomes a quick excuse to give up on TDD. This example driven Zero Powerpoint (ZePo) presentation will help you spring into unit test your Spring applications. We will look at techniques to realize good unit testing, and focus on effective use of mock objects and frameworks to help you toss mock objects for your spring application.

By Venkat Subramaniam

Rule based programming allows us to develop applications using declarative rules. These can simplify development in applications where such rules based knowledge is used for decision making.

By Venkat Subramaniam

Inspired by the Ruby on Rails project, Grails brings the ease of web development and "convention over configuration" to the Java platform. We will learn how to create web applications using Grails, how to integrate it with Hibernate, and how to Ajax it, all using the built in features of Grails. This section assumes that you are familiar with Groovy or you have attended the “Groovy for Java Programmers” session. The session will be example driven with live coding where we will build a web application from scratch.