Pacific Northwest Software Symposium

September 21 - 23, 2007 - Seattle, WA


Redmond Marriott Town Center
7401 164th Avenue NE
Redmond, WA   98052
Map »

Mark Richards

SOA and Integration Architect, Author of Java Message Service

Mark Richards is a Director and Senior Architect at Collaborative Consulting, LLC, a Boston-based Business and Architecture Consulting Firm, where he is involved in the architecture, design, and implementation of SOA, EDA, messaging, and other architectures, primarily in the Java platform. Prior to joining Collaborative Mark was an Executive IT Architect with IBM, where he worked as an SOA and enterprise architect in the financial services area. He has been involved in the software industry since 1984 and has many battle scars to show for it. Mark served as the President of the Boston Java User Group in 1997 and 1998, and the President of the New England Java Users Group from 1999 thru 2003. Mark is the author of the book Java Message Service (2nd edition) from O'Reilly. He is also the author of Java Transaction Design Strategies, contributing author of the book 97 Things Every Software Architect Should Know from O'Reilly, contributing author of NFJS Anthology Volume 1, and contributing author of NFJS Anthology Volume 2. Mark has many architect and developer certifications, including those from IBM, Sun, The Open Group, and Oracle. He is a regular conference speaker at the No Fluff Just Stuff Symposium Series and speaks at other conferences and user groups around the world. When he is not working Mark can usually be found hiking with his wife and two daughters in the White Mountains or along the Appalachian Trail.



Presentations

Making Architecture Work Through Agility

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.

Agenda: - Introduction - Part One: Applying Agility to Architecture (Interactive) - Part Two: Agile Methodologies - FDD - Part Three: Agility and Architectural Refactoring

Java Persistence: Approaching the Silver Bullet

Java Persistence has come along way since the days of straight JDBC coding and custom framework development. We have at our disposal several outstanding open source frameworks such as Hibernate, Toplink, iBatis, and OpenJPA (just to name a few), and we now have a promising and emerging standards-based solution called Java Persistence API (JPA). However, all to often we find in the Java persistence space that it is a world of one-size-does-not-fit-all. We continually struggle with traditional ORM solutions like Hibernate when it comes to reporting queries, complex queries, complex relationships, and stored procedures, and we also struggle with managing the enormous amount of SQL required for solutions such as iBATIS or JDBC-based frameworks. In this coding-intensive session we will take a detailed look at identifying and overcoming the challenges we face when using frameworks such as Hibernate, iBATIS, and JPA, and how to combine the various persistence frameworks to create an effective Java persistence solution that approaches (but of course does not reach) the silver bullet.

Agenda: - Introduction - Framework Differences - Brief Overview of iBatis - Brief Overview of JPA - Aspect Analysis - Inserts and Updates - Reporting Queries - Stored Procedures - Complex SQL - Debugging and Testing Techniques - The Fast Lane Reader Pattern - Combining ORM and SQL Mapping Frameworks - Summary and Q&A

Intro to Java Persistence API (JPA)

In addition to providing a simplified API, the new EJB3 specification (JSR-220) defines a standard ORM Java Persistence API (JPA) that is rapidly gaining in popularity. As you will see in this session, JPA bears a striking resemblance to popular ORM solutions like Hibernate and Toplink. In this session we will explore in detail the new Java Persistence API offered by JSR-220. We will start by discussing the overall design and architecture of the JPA and how the major components within JPA interact. We will then look at defining mapping objects (entities) and how to use the EntityManager to manage these entities. Through interactive coding examples we will investigate the pros and cons of detached entities and merging, how to map and use entity relationships (1-1, 1-N, N-1, and N-N), discuss Lazy Loading, and finally see how to use XML mappings rather than annotations. More advanced features of JPA will be covered in a separate session.

Agenda - Introduction - JPA Framework Overview - Defining and Mapping Entity Objects - Managing Entity Objects (EntityManager) - Detached Entities and Merging - Entity Relationships - Lazy Loading - Using XML Mappings - Summary

Advanced Java Persistence API (JPA)

This session picks up where the Intro to JPA session left off and covers some of the more advanced topics in the Java Persistence API. Some of the topics covered in this session include switching persistence providers, versioning, compound keys, entity inheritance, and finally handling both simple and complex stored procedures. Some knowledge of JPA is recommended for this session as I will not be covering the basics of JPA (that is covered in a separate Intro to JPA session). Through a combination of slides and interactive coding I will demonstrate these advanced topics using both Hibernate and Toplink JPA.

Agenda - Introduction - Switching Providers - Versioning - Compound Keys - Entity Inheritance - Handling Stored Procedures - Summary and Discussion

Books

by Mark Richards, Richard Monson-Haefel, and David A Chappell

Java Message Service Buy from Amazon
List Price: $39.99
Price: $26.25
You Save: $13.74 (34%)
  • The Java Message Service (JMS) provides a way for the components of a distributed application to talk asynchronously, or for welding together legacy enterprise systems. Think of it as application-to-application e-mail. Unlike COM, JMS uses one or more JMS servers to handle the messages on a store-and-forward basis, so that the loss of one or more components doesn't bring the whole distributed application to a halt.

    JMS consists of a set of messaging APIs that enable two types of messaging, publish-and-subscribe (one-to-many) and point-to-point (one-to-one). The highly lucid explanation of the ways in which these work makes the technical content a lot more approachable. In practice, however, Java Message Service is still a book for Java programmers who have some business programming experience. You need the background.

    After a simple JMS demonstration in which you create a chat application using both messaging types, the authors dissect JMS message structures, explore both types in detail, and then move on to real-world considerations. These include reliability, security, deployment, and a rundown of various JMS server providers. The appendices list and describe the JMS API, and provide message reference material.

    Considering the complexity and reach of the subject matter, Java Message Service does a great job of covering both theory and practice in a surprisingly efficient manner. It's easy to see why JMS has become so popular so quickly. Recommended. --Steve Patient, Amazon.co.uk


by

97 Things Every Software Architect Should Know: Collective Wisdom from the Experts Buy from Amazon
List Price: $34.99
Price: $22.88
You Save: $12.11 (35%)
  • In this truly unique technical book, today's leading software architects present valuable principles on key development issues that go way beyond technology. More than four dozen architects -- including Neal Ford, Michael Nygard, and Bill de hOra -- offer advice for communicating with stakeholders, eliminating complexity, empowering developers, and many more practical lessons they've learned from years of experience. Among the 97 principles in this book, you'll find useful advice such as:

    • Don't Put Your Resume Ahead of the Requirements (Nitin Borwankar)
    • Chances Are, Your Biggest Problem Isn't Technical (Mark Ramm)
    • Communication Is King; Clarity and Leadership, Its Humble Servants (Mark Richards)
    • Simplicity Before Generality, Use Before Reuse (Kevlin Henney)
    • For the End User, the Interface Is the System (Vinayak Hegde)
    • It's Never Too Early to Think About Performance (Rebecca Parsons)

    To be successful as a software architect, you need to master both business and technology. This book tells you what top software architects think is important and how they approach a project. If you want to enhance your career, 97 Things Every Software Architect Should Know is essential reading.


by Neal Ford

No Fluff, Just Stuff Anthology: The 2007 Edition Buy from Amazon
List Price: $32.95
Price: $24.05
You Save: $8.90 (27%)
  • Twenty-seven weekends a year, the No Fluff, Just Stuff conference rolls into another town, featuring the world's best technical speakers and writers. Up until now, you had to go to one of the shows to soak up their collective wisdom. Now, you can hold it in the palm of your hand. The No Fluff, Just Stuff Anthology represents topics presented on the tour, written by the speakers who created it. This book allows the authors the chance to go more in depth on the subjects for which they are passionate. It is guaranteed to surprise, enlighten, and broaden your understanding of the technical world in which you live.

    The No Fluff, Just Stuff Symposium Series is a traveling conference series for software developers visiting 27 cities a year. No Fluff has put on over 75 symposia throughout the U.S. and Canada, with more than 12,000 attendees so far. Its success has been a result of focusing on high quality technical presentations, great speakers, and no marketing hype. Now this world-class material is available to you in print for the first time.


by Mark Richards

Java Transaction Design Strategies Buy from Amazon
List Price: $25.00
Price: $22.04
You Save: $2.96 (12%)
  • Understanding how transaction management works in Java and developing an effective transaction design strategy can help to avoid data integrity problems in your applications and databases and ease the pain of inevitable system failures. This book is about how to design an effective transaction management strategy using the transaction models provided by Java-based frameworks such as EJB and Spring. Techniques, best practices, and pitfalls with each transaction model will be described. In addition, transaction design patterns will bring all these concepts and techniques together and describe how to use these models to effectively manage transactions within your EJB or Spring-based Java applications. The book covers: - The local transaction model - The programmatic transaction model - The declarative transaction model - XA Transaction Processing - Transaction Design Patterns