Join Amazon Prime and ship Two-Day for free and Overnight for $3.99. Already a member? Sign in.
Patterns of Enterprise Application Architecture and over 300,000 other books are available for Amazon Kindle – Amazon’s new wireless reading device. Learn more

 

or
Sign in to turn on 1-Click ordering.
 
 
More Buying Choices
73 used & new from $34.00

Have one to sell? Sell yours here
 
   
Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series)
 
 
Start reading Patterns of Enterprise Application Architecture on your Kindle in under a minute.

Don’t have a Kindle? Get yours here.
 
  

Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series) (Hardcover)

by Martin Fowler (Author)
4.4 out of 5 stars See all reviews (61 customer reviews)

List Price: $69.99
Price: $51.99 & this item ships for FREE with Super Saver Shipping. Details
You Save: $18.00 (26%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.

Want it delivered Friday, July 17? Choose One-Day Shipping at checkout. Details
47 new from $35.85 26 used from $34.00
Also Available in: List Price: Our Price: Other Offers:
Kindle Edition (Kindle Book) $46.79

Frequently Bought Together

Customers buy this book with Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions (Addison-Wesley Signature Series) by Gregor Hohpe

Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series) + Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions (Addison-Wesley Signature Series)
Price For Both: $103.98

Show availability and shipping details


Customers Who Bought This Item Also Bought

Domain-Driven Design: Tackling Complexity in the Heart of Software

Domain-Driven Design: Tackling Complexity in the Heart of Software

by Eric Evans
4.3 out of 5 stars (52)  $51.99
Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series)

Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series)

by Erich Gamma
4.5 out of 5 stars (261)  $41.57
Refactoring: Improving the Design of Existing Code (Addison-Wesley Object Technology Series)

Refactoring: Improving the Design of Existing Code (Addison-Wesley Object Technology Series)

by Martin Fowler
4.5 out of 5 stars (138)  $47.99
Code Complete: A Practical Handbook of Software Construction

Code Complete: A Practical Handbook of Software Construction

by Steve McConnell
4.8 out of 5 stars (107)  $31.49
Head First Design Patterns

Head First Design Patterns

by Elisabeth Freeman
4.6 out of 5 stars (275)  $29.67
Explore similar items


Editorial Reviews

Product Description
Noted software engineering expert, Martin Fowler, turns his attention to enterprise application development. He helps professionals understand the complex--yet critical--aspects of architecture. Enables the reader to make proper choices when faced with a difficult design decision.

From the Back Cover

The practice of enterprise application development has benefited from the emergence of many new enabling technologies. Multi-tiered object-oriented platforms, such as Java and .NET, have become commonplace. These new tools and technologies are capable of building powerful applications, but they are not easily implemented. Common failures in enterprise applications often occur because their developers do not understand the architectural lessons that experienced object developers have learned.

Patterns of Enterprise Application Architecture is written in direct response to the stiff challenges that face enterprise application developers. The author, noted object-oriented designer Martin Fowler, noticed that despite changes in technology--from Smalltalk to CORBA to Java to .NET--the same basic design ideas can be adapted and applied to solve common problems. With the help of an expert group of contributors, Martin distills over forty recurring solutions into patterns. The result is an indispensable handbook of solutions that are applicable to any enterprise application platform.

This book is actually two books in one. The first section is a short tutorial on developing enterprise applications, which you can read from start to finish to understand the scope of the book's lessons. The next section, the bulk of the book, is a detailed reference to the patterns themselves. Each pattern provides usage and implementation information, as well as detailed code examples in Java or C#. The entire book is also richly illustrated with UML diagrams to further explain the concepts.

Armed with this book, you will have the knowledge necessary to make important architectural decisions about building an enterprise application and the proven patterns for use when building them.

The topics covered include:

  • Dividing an enterprise application into layers
  • The major approaches to organizing business logic
  • An in-depth treatment of mapping between objects and relational databases
  • Using Model-View-Controller to organize a Web presentation
  • Handling concurrency for data that spans multiple transactions
  • Designing distributed object interfaces


  • 0321127420B10152002

    See all Editorial Reviews

    Product Details


    Look Inside This Book
    Browse Sample Pages:
    Front Cover



    Tags Customers Associate with This Product

     (What's this?)
    Click on a tag to find related items, discussions, and people.
    Check the boxes next to the tags you consider relevant or enter your own tags in the field below.
    (2)

    Your tags: Add your first tag
     
    Help others find this product — tag it for Amazon search
    No one has tagged this product for Amazon search yet. Why not be the first to suggest a search for which it should appear?

     

    Customer Reviews

    61 Reviews
    5 star:
     (41)
    4 star:
     (9)
    3 star:
     (9)
    2 star:
     (1)
    1 star:
     (1)
     
     
     
     
     
    Average Customer Review
    4.4 out of 5 stars (61 customer reviews)
     
     
     
     
    Share your thoughts with other customers:
    Most Helpful Customer Reviews

     
    66 of 71 people found the following review helpful:
    4.0 out of 5 stars Great book, but nothing particularly new, February 20, 2003
    By Joseph A Kauzlarich (Seattle, WA United States) - See all my reviews
    (REAL NAME)      
    I agree wholeheartedly with an above post which pointed out that the subject material is mostly known to the average enterprise developer. I am at best an average developer and found I'd already thought of much of this stuff myself.

    One thing I would like to add is that this book was still excellent reading and skimming through the patterns sparked my creative energies. I find that when I read through it, even if I 'know' the patterns already, it helps me explore their organization and consequences.

    I was disappointed that I wasn't blown away with helpful new concepts, but quite happy with my purchase all the same. Buy this if you want a thorough guide to EAA and maybe some enjoyable afternoon reading.

    (The following was added about 2 months after the original review) After owning this book for awhile, I've found it more and more indispensible. My original review, above, mentions that few of the concepts seem new, however, now that I've read it more thoroughly and applied some of the concepts, I don't think that 'mind-blowing originality' is what I should have been looking for.

    Fowler's 'Refactoring' is another example of a great book without any stunningly original concepts. Like Refactoring, PEAA can serve as a great guide to page through when you're stuck on a project and need to review your options.

    Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)



     
    20 of 20 people found the following review helpful:
    5.0 out of 5 stars The right path to creating enterprise applications., October 3, 2003
    By Charles Ashbacher "(cashbacher@yahoo.com)" (Marion, Iowa United States(cashbacher@yahoo.com)) - See all my reviews
    (TOP 50 REVIEWER)      
    Fowler avoids giving a precise definition of an enterprise application, preferring to list a set of characteristics that most share. In general, they are very large systems, with many user interface screens used to concurrently access and update an enormous amount of data. In nearly all cases, the data must be persistent, in fact it most often is very persistent, meaning that it has to live through iterations of the software, alterations of the operating system, changes in the hardware, and staff and programmer turnover.
    Furthermore, enterprise applications usually must communicate with other applications, which are often just as large and complex. Examples include payroll and patient records, credit card processing, insurance claim processing, banking, and foreign exchange trading. In short, most of the programs that run the modern global economy, which are many of the most complex software projects currently in use. Finally, the programs must be constructed so that they can be "easily and quickly" changed by people who did not create them to adapt to conditions that can change very quickly and often without any input from the programmer. With so much at stake, there must be a set of best practices, which is what is captured in this book.
    The patterns of software construction explained by Fowler are generally in the small, in the sense that they describe specific operations rather than demonstrate a large architectural form. Each of the specific patterns is presented by first listing a one-sentence description of the purpose of the pattern and a UML diagram illustrating the structure. This is followed by sections describing how the pattern works, when to use it and one or more examples demonstrating specific implementations of the pattern using source code skeletons. Both C# and Java are used in the demonstrations, which does not create an understandability problem. The languages and contexts are so similar that anyone who can understand either one will have no problem reading and understanding the code.
    Some examples of the fifty one patterns listed on the inside front cover are:

    Lazy load - where an object will load only the data currently needed, but does maintain links to all other data that may be needed.

    Front controller - a single handler object that consolidates all requests made for a web site. It can then send requests to the specific objects for services such as security, internationalization issues and specific displays targeted for particular users and locations.

    Optimistic offline lock - used to prevent conflicts when concurrent business transactions are executing. The solution is to roll back the transaction when a conflict is detected.

    Server session state - keeps the data for the session stored on a server in a serialized form.

    While the examples are often of necessity extremely simple, they do illustrate some of the most effective and tested solutions to common software development problems. Therefore, this is a book that no builder of software that can be considered an enterprise application should be without. It is hard to believe that there is an enterprise application being constructed anywhere that does not involve the solving of many of the problems listed in this book.
    My only complaint is the occasional bad English that appears. For example, on page 100 there is the phrase, "The only reason I've concentrating on Java . . . " and on page 119 the phrase "One factor that comes into this is comfortable used the development team is . . . " appears. While no book is error free, this type of error is frequent enough to make one wonder about the quality of the final editing.
    There is nothing harder than making effective and efficient software that will run the IT equivalent of forever. That is what enterprise applications are supposed to do and if you are one of the minions tasked with doing your part to build one, then put yourself on the right path and read this book. You and everyone else who interacts with the software will be rewarded with a better experience.

    Published in the online "Journal of Object Technology", reprinted with permission.

    Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)



     
    259 of 310 people found the following review helpful:
    3.0 out of 5 stars Would have been a great book 2-3 years ago, November 23, 2002
    By Jake Well (Windsor, Ontario Canada) - See all my reviews
    First, I'd like to say that I think Marin Fowler is awesome. I've been a long time fan of his and I really enjoy his talks and his books. So when you read this review, you can tell that it pains me to write what I have to say. I don't want to rip apart his book so that he potentially sells fewer copies - that's not my intention at all. By writing 3 books myself, I appreciate that authors don't make a lot of money for developing the book itself. Usually people like Martin write books for the experience and to generally help people.

    That being said, many developers will unfortunately not find this book very useful. Many of the patterns Martin shows us have a lot of dependency on the platform you are using to implement the application. For instance, if you use Microsoft's .NET platform, you are going to be leaning towards a Table Module instead of a Domain Model. If you do not use a Table Module, you will not be able to take advantage of a considerable amount of functionality that is provided for you within the .NET platform. In Java, the same is true; the Table Module doesn't look as appealing if you are using EJBs, JDO or even Hibernate - you won't ever consider it.

    Many of the patterns in the book have this characteristic described above, so architects won't actually learn anything from them. In other words, architects will not be able to take advantage of these alternate design patterns without some initial headaches that are often not worth it because the platform they use restricts and penalizes their usage.

    Another complaint about the book is that many of the patterns are already available as frameworks. For instance, many of the presentation patterns are handled by frameworks like Struts or Webwork. In these cases, learning about the patterns that are associated with these frameworks will provide little value. These patterns have already been discussed many times before in other books like "Advanced Java Server Pages" for example.

    The same could also be said for persistence frameworks of O/R mapping tools. There is literally over a 100 pages (in a 500 page book) that talk about lazy loads, unit of work, locking strategies, metadata patterns and inheritance mappings. Although sometimes they are useful, in most situations the developers would be abstracted away from all these underlying mechanics using a good persistence framework or O/R mapping tool. I realize not all that the this is true, but implementing Martin's suggestions would take a month or two alone if you didn't buy anything off the shelf - that's too much time to waste. Martin should have talked more about these tools and the patterns they currently implemented instead as this is a more pragmatic approach.

    Martin also doesn't talk about the load-on-startup servlet that can be used to store application-scoped values in the ServletContext (for J2EE systems) in his Registry pattern. This was unfortunate because many non-ejb systems use this approach. Considering the book advocates using POJOs, JDO or JDBC instead of EJBs (which is sound advice in practice for most systems), they didn't cover the registry alternates for this approach. Many of us use containers like Resin because they are extremely fast and have no need for EJB development.

    Coming from three different environments myself (PHP, .NET and J2EE), I was disappointed that I didn't learn anything from this book. I had, in fact, learned about many of these patterns on my own, but didn't exactly know what they were called. This left me disappointed, but it's not Martin's fault. I don't mean to build me up that I know everything, but I think I've reached a plateau when it comes to designing and architecting systems - I'm good at it. If you happen to be a good designer too and you think you might want to broaden your knowledge, then this book won't help in those areas. If this book doesn't, I don't think you'll find another book that will either. So again, this isn't Martin's fault.

    Now before you say something, Martin explicitly states in his book that many experienced designers *will not* learn much. He mentions more than a few times that this book is meant to enhance the communication between architects and designers more than anything and that it is meant to be a documented repository of patterns that we know as an industry and use over and over. I completely agree with these statements. Thus, the book has value in these regards and it will definitely help the industry evolve and mature.

    I know I've said some negative things about the book, but let's face it - this is Martin Fowler! The quality and style of the writing is top notch and the organization of the information couldn't have been better. The explanations and examples are very clear and this book is what it claims to be. In this respect, the book should be regarded as the best in its market.

    I would advocate purchasing this book in combination with "EJB Design Patterns" and "Expert One-On-One: J2EE Design and Development" for the J2EE developer. As for you .NET folks, I have no idea. From experience, I suspect that .NET developers will have even less use for this book since Microsoft has limited your choices about design in favour of simplifying the platform. That's one of the major differences between J2EE and .NET, and Martin can't control that either.

    Overall, this is a good book. I give it only 3 stars, however, because of the initial problems described above.

    Comment Comments (4) | Permalink | Was this review helpful to you? Yes No (Report this)


    Share your thoughts with other customers: Create your own review
     
     
    Ad
     
    Most Recent Customer Reviews

    5.0 out of 5 stars A fantastic pattern reference
    Patterns of Enterprise Application Architecture is an absolutely indispensable reference - if you're in the business of writing Enterprise Applications. Read more
    Published 4 days ago by Robert J. Morris

    5.0 out of 5 stars Must have if you want to know
    From the get go this book stands out as a very solid review on the subject. Highly recommend to anyone who needs serious advise on the subject.
    Published 1 month ago by Eugene Kislenko

    1.0 out of 5 stars Crappiest architecture book
    This is one of the stinky and crappiest architecture book I have read.

    The more i read the more I was frustated and reading further. Read more
    Published 1 month ago by William Henry II

    5.0 out of 5 stars Great book
    This is one of the most useful books about patterns I've found. This book was recommended by my lecturer at university and do not regret buying it. Read more
    Published 1 month ago by I. Horm

    5.0 out of 5 stars Excellent book, but is it time for a 2nd edition?
    I want to say first of all that this is an awesome book, one of my favorite books and a must-read for anyone who wants to be involved in enterprise computing... Read more
    Published 2 months ago by Alexei Zheglov

    4.0 out of 5 stars Basic Architecture
    This book is not for beginners. The patterns match many constructs I've built over the years. It is pretty comprehensive and a foundation for the newer patterns of SOA and WOA... Read more
    Published 8 months ago by Jon Baumgardner

    5.0 out of 5 stars An Underrated Subject and Book
    Motivation

    I didn't look at this book for a long time simply because of the word "enterprise." I felt the word was too overloaded to be useful. Read more
    Published 8 months ago by Steve Grubbs

    2.0 out of 5 stars Misses out on the important patterns
    This book is a complete beginner's handbook for enterprise patterns.

    1) The "Mapping to Relational Database Patterns" section discusses patterns that are completely... Read more
    Published 23 months ago by In Vino Veritas

    5.0 out of 5 stars Must have reference for all developers
    Even if you don't do "Enterprise Application" development, this book is a must have in your library. Read more
    Published on July 16, 2007 by Jay R. Wren

    5.0 out of 5 stars Must read
    This is a must read book if you are a developer, architect or in anyway related to technology.
    Published on April 4, 2007 by Mimi

    Only search this product's reviews



    Customer Discussions

     Beta (What's this?)
    New! See all customer communities, and bookmark your communities to keep track of them.
    This product's forum (1 discussion)
      Discussion Replies Latest Post
    Welcome to the Patterns of Enterprise Application Architecture forum 0 November 2005
    See all discussions...  
    Start a new discussion
    Topic:
    First post:
    Prompts for sign-in
      [Cancel]


    Active discussions in related forums
       


    Product Information from the Amapedia Community

    Beta (What's this?)



    Look for Similar Items by Category


    Get Creative with Dremel Power Tools

    Dremel power tools
    Take on your next project with a versatile Dremel power tool. Shop now and save on Dremel power tools and take advantage of FREE Super Saver Shipping to save even more.

    Shop Dremel tools

     

    Big Savings in Books

    Bargain Books
    Find great titles at fantastic prices in our Bargain Books Store.
     

    Tighten to a T

    Shop for Torque Wrenches
    When it's critical to determine the exact tightness of your nuts and bolts, a torque wrench is the tool to use.

    Shop all torque wrenches

     

    Pull It Together

    Shop for drawer pulls
    Well-chosen cabinet and drawer pulls provide unity and charm to your home's look.

    Shop for drawer pulls

     

     

    Feedback

    If you need help or have a question for Customer Service, contact us.
     Would you like to update product info or give feedback on images?
    Is there any other feedback you would like to provide?

    Your comments can help make our site better for everyone.


    Where's My Stuff?

    Shipping & Returns

    Need Help?

    Your Recent History

      (What's this?)
    You have no recently viewed items or searches.

    After viewing product detail pages or search results, look here to find an easy way to navigate back to pages you are interested in.

    Look to the right column to find helpful suggestions for your shopping session.

    Continue shopping: Top Sellers
    Free
    Free by Chris Anderson
    Paranoia
    Paranoia by Joseph Finder
    My Soul to Lose
    My Soul to Lose by Rachel Vincent
    Glenn Beck's Common Sense

    Conditions of Use | Privacy Notice © 1996-2009, Amazon.com, Inc. or its affiliates