Derek Ashmore - The java ee Architects' Handbook

Java EE Architect's Handbook
Second Edition

The Java EE Architect's Handbook is a concise guide to assuming the role of application architect for Java EE applications. Whether you are about to architect your first Java EE application or are looking for ways to keep your projects on-time and on-budget, you will refer to this handbook again and again.

Available Now!


The Java EE Architect's Handbook is a concise guide to assuming the role of application architect for Java EE applications. It will guide the application architect through the entire Java EE project including identifying business requirements, performing use-case analysis, object and data modeling, and guiding a development team during construction. It will provide tips and techniques for communicating with project managers and management. It will provide strategies for making your application easier and less costly to support. Whether you are about to architect your first Java EE application or are looking for ways to keep your projects on-time and on-budget, you will refer to this handbook again and again.

The Java EE Architect's Handbook is the second edition of the J2EE Architect's Handbook published in 2004. In 2006, the term J2EE was deprecated and replaced with Java Platform, Enterprise Edition (Java EE).

What you'll learn

You'll discover how

  • Design Java EE applications so that they are robust, extensible, and easy to maintain.
  • Assume the role of application architect on Java EE projects.
  • Apply commonly used design patterns effectively.
  • Identify and address application architectural issues before they hinder the development team.
  • Document and communicate the application design so that the development team's work is targeted.
  • Avoid common mistakes that derail project budgets and timelines.
  • Guide the development team through the design and construction process.
  • Setup effective procedures and guidelines that increase stability and decrease defect reports.
  • Avoid common mistakes that make Java EE applications overly complex and hard to support.
  • Effectively estimate needed resources and timelines.

Who this book is for

  • Senior Java EE developers looking to assume an architect role.
  • Junior Java EE application architects looking to improve their skills.

Table of Contents

  • Preface
    • How the Book Is Organized
    • Common Resources
    • Feedback
    • About the Author
    • Acknowledgments
  • Section I: Planning Java EE Applications
    • Chapter 1: Project Development Team and Project Life Cycle
      • Project Development Team: Roles and Responsibilities
        • Application Architect
        • Product Manager
        • Project Manager
        • Business Analyst
        • Solution Architect
        • Graphic Designer
        • Presentation-Tier Developer
        • Business Logic Developer
        • Data Modeler
        • Database Administrator
        • Data Migration Specialist
        • Infrastructure Specialist
        • Testing Specialist
        • Testing Automation Specialist
        • Project Life Cycle Approaches
          • Waterfall Approach
          • Agile Approaches
          • Rational Unified Process
        • Which Approach Is Most Popular?
        • What I Think
        • Further Reading
    • Chapter 2: Defining the Project
      • Identifying Project Scope
      • Identifying the Actors
      • Writing User Stories
      • Writing Use Cases
      • Common Mistakes
      • Prototyping
      • Swim-lane Diagrams
      • Non-functional Requirements
      • Improving your Analysis Skills
      • Further Reading
    • Chapter 3: Scope Definition and Estimation
      • Defining Scope
      • Basics of Estimating
      • Tracking the Estimate
      • Non-functional Requirement Considerations
      • Further Reading
    • Chapter 4: Designing External Application Interfaces
      • Strategies for Consuming External Application Data
      • Reading External Application Databases Directly
      • Utilizing Web Services
      • Utilizing RESTful Web Services
      • Utilizing Messaging Services
      • Utilizing Enterprise Java Beans
      • Common Mistakes
      • Determining a Data Structure
      • Error-Handling Requirements
      • Error Notification Procedures
      • Retry Procedures
      • External Interface Guidelines
  • Section II: Designing Java EE Applications
    • Chapter 5: A Layered Approach to Java EE Design
      • Overview of the Layering Concept
      • Data Access Object Layer
      • Choosing a Database Persistence Method
      • Simplified Data Access Pattern
      • Supporting Multiple Databases
      • Entity Object Layer
      • Value Object Layer
      • Common Patterns
      • Business Logic Layer
      • Common Patterns
      • Deployment Layer
      • Common Patterns
      • Further Reading
    • Chapter 6: Creating Object Models
      • Identifying Objects
      • Object Identification Example
      • Turning Objects into Classes
      • Determining Relationships
      • Identifying Attributes
      • Identifying Methods
      • Shortcuts
      • Example: Admin4J
      • Further Reading
    • Chapter 7: Creating the Data Model
      • Key Terms and Concepts
      • Design Practices and Normal Form
      • Creating Database Schema Definitions
      • Common Mistakes
      • Improving your Data Modeling Skills
      • Creating XML Document Formats
      • Common Mistakes
      • Further Reading
    • Chapter 8: Planning Construction
      • Task Order and Dependencies
      • Critical Path
      • Common Mistakes
      • Improving your Project Plans and Estimates
      • Further Reading
  • Section III: Building Java EE Applications
    • Chapter 9: Coding Value Objects and Entities
      • Implementation Tips and Techniques
      • Value Objects Made Easy
      • Common Mistakes
      • Example: Admin4J
      • Differences from the 1st Edition
    • Chapter 10: Building Data Access Objects
      • Transaction Management Strategies
      • Data Access Object Coding Guidelines
      • A JDBC Example
      • XML Access Object Coding Guidelines
      • An XAO Example
      • Further Reading
    • Chapter 11: Building Business Objects
      • Business Object Coding Patterns
      • Business Object Coding Guidelines
      • A Business Layer Class Example
      • An Admin4J Business Layer Example
      • Further Reading
    • Chapter 12: Building the Deployment and Presentation Layers
      • Supporting Mobile Devices
      • Coding Guidelines
      • Common Mistakes
    • Chapter 13: Making Technology Product Selections
      • Product Decision Criteria
      • Making a Product Decision
    • Chapter 14: Building Architectural Components
      • Component Quality
      • Making Components Easy to Use
      • Making Components Easy to Configure and Control
      • Open Source Alternatives
      • Resolving Technical Issues
      • Mitigating Political Risk
      • Component Usage Guidelines
    • Chapter 15: Application Architecture Strategies
      • Logging Strategies
      • Sample Logging Strategy
      • Exception-handling Strategies
      • Sample Exception Handling Strategy
      • Asynchronous Task Strategies
      • Sample Asynchronous Task Strategy
      • Configuration Management Strategies
      • Sample Configuration Guidelines
      • Caching Strategies
      • Further Reading
  • Section IV: Testing and Maintaining Java EE Applications
    • Chapter 16: Testing Guidelines and Strategy
      • Unit Testing Guidelines
      • Automated Testing
      • Unit Testing Best Practices
      • Integration Testing
      • System Integration Testing
      • User Acceptance Testing
      • Performance Testing
      • Performance Testing Tips and Guidelines
      • Measuring Performance under Load
      • Memory Leaks Defined
      • Identifying Memory Leaks
      • Investigating Performance Problems
    • Chapter 17: Making Java EE Applications Supportable
      • Application Support Objectives
      • Streamlining Investigations for Application Defects
      • Streamlining Investigations for Unplanned Outages
      • Investigating Memory Shortages
      • Investigating Java Contention Issues
      • Investigating Performance Issues
      • Assessing Application Quality
      • Identifying Refactoring Opportunities
    • Chapter 18: Finding your way when technologies change
      • Simpler is better
      • Reuse - Don't Reinvent
      • Enforce Separation of Concerns
      • Swim with the Stream
      • Catch Errors Earlier Rather than Later
      • Functional Requirements are the Highest Priority

Source code for examples in the book can be downloaded here.


  • Location Paperback (page 35), Kindle (location 39)
  • Replace ...estimate spending 600 × (1.20) 4 = 1,244 hours to code and unit test. Incidentally, it’s a good idea to round that number to 3,500...
  • With ...estimate spending 2,600 x (1 + (4 x 0.20)) = 4,680 hours to code and unit test. Incidentally, it’s a good idea to round that number to 4,500...
  • Location Paperback (page 35), Kindle (location 39)
  • Replace ...This means that project delivery would be approximately two to three months out....
  • With ...This means that project delivery would be approximately seven to eight months out....

About Derek Ashmore

Derek Ashmore, Author

Derek Ashmore is a senior technology expert with over 25 years of experiences in a wide variety of technologies and industries; and he is currently focusing on microservice architectures, cloud computing, and performance tuning. His past roles include Application Architect, Cloud Architect, Project Manager, and many others.

Get in touch

To retain consulting services of the author for your Java project, please contact

Derek blogs at Additionally, he can be reached the following ways:


Derek Ashmore has assembled a 'must have' book for anyone working with Java and/or Java EE applications. Mr. Ashmore covers all the bases in this 'how to' approach to designing/developing/testing/and implementing Java EE applications using Java with frequent references to XML, JDBC libraries, SOAP, relational database access (using SQL), and references various useful tools when relevant. This book clearly illustrates Derek's expertise in the Java world...thank you for sharing your knowledge to the IT community with such a useful book.
Dan Hotka -- Author/Instructor/Oracle Expert

This book is very well crafted and explains everything you really need to know in order to be a successful and productive Java EE architect. It is an excellent book, which offers a full and detailed coverage of the topic of Java EE architecture and can be used as a handbook by the novice or as a reference tool for the experienced architect. The straightforward writing style and good visuals make for quick and comprehensive learning experience. If Java is your primary programming language, and you're currently working as a Java EE architect or considering it as a future career, this book should be in your library.
Ian Ellis, Vice President and Chief Information Officer, IESAbroad

[Derek has written] an in-depth and comprehensive resource for the Java 2 architect! The book provides a concise roadmap for real-world Java EE development. The approach is practical and straight-forward, based on a wealth of experience. All aspects of project management, application and data design, and Java development are covered. This book avoids the "dry style" and over-abstraction (over-simplification) common to so many books in this subject area. An awesome book, I keep it on my "A" shelf!
Jim Elliott, CTO, West Haven Systems, Inc.

Clear reading and bridges the gap between professionals and professors. I've read many technical books in my 30 year career where the author spends more time tossing around the current buzz words and fails to get the point across. Derek's book really connects with the hard core developer. Practical, knowledgeable, excellent examples.
John R Mull, President, Systech Software Products, Inc.