Architecture
Zen and the Art of API Management
Chris Aniszczyk
Red Hat
API's are fundamental for designing and maintaining quality components that are meant to last. Eclipse has first-class tooling to support for the design, implementation and maintenance of APIs. Eclipse provides API Tooling to support binary compatibility checking, API usage scanning, migration assistance and version numbering management. Attendees will learn how to apply API Tooling to their projects.
OSGi and the Enterprise: A match made in ... a box?
Holly Cummins
IBM
The Enterprise OSGi specification provides a compelling programming model for creating modular, portable, and dynamic enterprise applications. The Apache Aries project is an open source implementation of this standard. This session will present a overview of the Aries project and give a demonstration of how a simple - but useful - Aries Application can be assembled and dynamically deployed.
Even YOU can write safe concurrent code!
Dierk König
Canoo Engineering AG
For much too long, concurrency has been solely occupied by the propeller-heads. It is high time that we average application programmers learn how to write concurrent code but without the fear of falling for the traps. The trick is to use the right concepts! Check out what is at every Java developer's disposal since recently.
Running your Java EE 6 applications in the Cloud
Arun Gupta
Oracle
GlassFish v3, the Reference Implementation of Java EE 6, can easily run on multiple cloud infrastructures. This talk will provide a brief introduction to Java EE 6 and GlassFish v3. The attendees will learn how to create a simple Java EE 6 sample application and deploy them on GlassFish v3 running locally and then deploy it using Amazon, RightScale, Joyent, and Elastra cloud infrastructures.
Emergent Design
Neal Ford
ThoughtWorks
This session describes the current thinking about emergent design, discovering design in code. The hazard of Big Design Up Front in software is that you don't yet know what you don't know, and design decisions made too early are just speculations without facts. Emergent design techniques allow you to wait until the last responsible moment to make design decisions. This talk covers four areas: emergent design enablers, battling things that make emergent design hard, finding idiomatic patterns, and how to leverage the patterns you find. It includes both proactive (test-driven development) and reactive (refactoring, metrics, visualizations, tests) approaches to discovering design, and discusses the use of custom attributes, DSLs, and other techniques for utilizing them. The goal of this talk is to provide nomenclature, strategies, and techniques for allowing design to emerge from projects as they proceed, keeping your code in sync with the problem domain.
Challenging Requirements
Gojko Adzic
Neuri Ltd
In this presentation, Gojko Adzic talks about common failure patterns with requirements and specifications on agile projects and talks about ideas, patterns and practices for requirements and specifications that lead to much less rework, more consistent specifications with less functional gaps and ultimately happier customers.
CQRS, Fad or Future?
Ian Cooper
Command-Query-Responsibility-Seperation (CQRS) is the new 'hotness' but beyond a desire to use the latest 'fad' what might actually lead you to adopt this approach over a conventional layered architecture. We will look at the business drivers behind command and query separation as well as a technique known as event sourcing. We will also look at steps to begin moving your application to CQRS.
Implementing Evolutionary Enterprise Architecture
Neal Ford
ThoughtWorks
We're drowning in needless complexity in the enterprise architecture space: heavy, bloated tools, complex middleware, just-in-case architectural decisions, and vendor-itus. The side effect of all that complexity drives us furthre from our goals: architecture that is simple, free, supports business goals, loosely coupled, and evolvable. This session describes how to use web technologies (HTTP, REST, hypermedia, etc.) to implement robust, scalable enterprise architecture. This talk is based on original research and development done by ThoughtWorks, and represents the current state of the art in building truly scalable enterprise architectures. This topic combines the subjects of service oriented architecture with web technologies to create a hybrid providing you with the benefits of both approaches. You can build robust, scalable enterprise architecture that allows individual applications to evolve indepentdently and rapidly. This talk describes how to make SOA suck less.
10 years of Web Services - Lessons Learned
Thilo Frotscher
Freelancer
Believe it or not, but there are people who have been using Web Service technology for more than ten years. This session presents best practices gathered in countless projects around the globe. Get answers for the most common questions, learn about typical pitfalls and how to avoid them. And learn how to achieve good interoperability - even with .NET. Suitable for motivated beginners and desperate intermediates alike.
Architectural Katas: Part 1
Ted Neward
Neward & Associates
Fred Brooks said, "How do we get great designers? Great designers design, of course." So how do we get great architects? Great architects architect. But architecting a software system is a rare opportunity for the non-architect. The kata is an ancient tradition, born of the martial arts, designed to give the student the opportunity to practice more than basics in a semi-realistic way. The coding kata, created by Dave Thomas, is an opportunity for the developer to try a language or tool to solve a problem slightly more complex than "Hello world". The architectural kata, like the coding kata, is an opportunity for the student-architect to practice architecting a software system.
Architectural Katas: Part 2
Ted Neward
Neward & Associates
Fred Brooks said, "How do we get great designers? Great designers design, of course." So how do we get great architects? Great architects architect. But architecting a software system is a rare opportunity for the non-architect. The kata is an ancient tradition, born of the martial arts, designed to give the student the opportunity to practice more than basics in a semi-realistic way. The coding kata, created by Dave Thomas, is an opportunity for the developer to try a language or tool to solve a problem slightly more complex than "Hello world". The architectural kata, like the coding kata, is an opportunity for the student-architect to practice architecting a software system.
Developing secure Web service applications
Thilo Frotscher
Freelancer
Web services have become a standard tool for solving integration issues in many organisations. However, developers are often uncertain about the best approach to implement Web service applications. In this hands-on workshop you'll learn how to develop interoperable and secure Web services, using best practices gathered in more than ten years and countless projects.
- Contract first approach
- Implementation and deployment of a service
- Testing the service
- Implementation of a service client
- Securing the communication with SSL and WS-Security
- Building loosely coupled services
A main feature of this workshop are plenty of practical exercises. Bring a laptop with Java SDK 1.6 installed and 1 GByte of disk space. Everything else will be provided on a CD. Exercises are based on Apache Axis2. Suitable for intermediate to advanced Java developers with a good understanding of Web service fundamentals.
Software quality – you know it when you see it
Erik Dörnenburg
ThoughtWorks
Software quality has an obvious external aspect, the software should be bug free and of value to its users, but there is also a more elusive internal aspect to quality, to do with the architecture and the clarity of the design. When pressed for a definition, this is where we usually end up saying “I know it when I see it.” But how can we see quality? This session explains how visualisation concepts can be applied at the right level to present meaningful information about the internal quality of the software, including its architecture. Different visualisations highlight patterns, trends, and outliers. These artefacts are created from existing code, which is especially useful on projects that de-emphasise upfront design and allow architecture to evolve over time. The tools and techniques shown are easy to apply on software projects and will guide the development team towards producing higher quality software.
Learning Lessons on Application Architecture from NoSQL
Neil Robbins
Over the past few years a large number of alternatives to RDBMS products have emerged. Whilst we may not all get to use these, the architectural trade-offs which their authors have made can give valuable lessons to apply to the applications we build, whether in fault-tolerance, scalability, availability, conflict resolution, and dealing with large geographical distribution.
Focus agile development on tasks in Eclipse with P4Mylyn
Ralf Gronkowski
Perforce Software
With P4Mylyn, which is included in the Perforce Plug-in for Eclipse, developers can focus work on given tasks managed in common bugtrackers like Bugzilla easily within Eclipse. Get an overview of a typical Agile developer's workflow using Perforce and Mylyn. See how developers can schedule and manage a task list and how those tasks eventually become completed with a submitted Perforce changelist.
Tracks
Sessions
- Zen and the Art of API Management
- OSGi and the Enterprise: A match made in ... a box?
- Even YOU can write safe concurrent code!
- Running your Java EE 6 applications in the Cloud
- Emergent Design
- Challenging Requirements
- CQRS, Fad or Future?
- Implementing Evolutionary Enterprise Architecture
- 10 years of Web Services - Lessons Learned
- Architectural Katas: Part 1
- Architectural Katas: Part 2
- Developing secure Web service applications
- Software quality – you know it when you see it
- Learning Lessons on Application Architecture from NoSQL
- Focus agile development on tasks in Eclipse with P4Mylyn






