Patterns of Enterprise Application Architecture and over one million other books are available for Amazon Kindle. Learn more



or
Sign in to turn on 1-Click ordering
Sell Us Your Item
For a $25.12 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Start reading Patterns of Enterprise Application Architecture on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.
Sorry, this item is not available in
Image not available for
Color:
Image not available

To view this video download Flash Player

 

Patterns of Enterprise Application Architecture [Hardcover]

Martin Fowler
4.4 out of 5 stars  See all reviews (81 customer reviews)

Buy New
$47.83 & FREE Shipping. Details
Rent
$21.25
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.
In Stock.
Want it Friday, June 21? Choose One-Day Shipping at checkout. Details
Free Two-Day Shipping for College Students with Amazon Student

Sell Back Your Copy for $25.12
No matter where you bought them, get up to 70% back when you sell your books at Amazon.com.
Used Price$29.99
Trade-in Price$25.12
Price after
Trade-in
$4.87

Book Description

November 15, 2002 0321127420 978-0321127426 1

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


Frequently Bought Together

Patterns of Enterprise Application Architecture + Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions + Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services
Price for all three: $136.64

Buy the selected items together


Editorial Reviews

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

    About the Author

    Martin Fowler is an independent consultant who has applied objects to pressing business problems for more than a decade. He has consulted on systems in fields such as health care, financial trading, and corporate finance. His clients include Chrysler, Citibank, UK National Health Service, Andersen Consulting, and Netscape Communications. In addition, Fowler is a regular speaker on objects, the Unified Modeling Language, and patterns.



    0321127420AB07242003

    Product Details

    • Hardcover: 560 pages
    • Publisher: Addison-Wesley Professional; 1 edition (November 15, 2002)
    • Language: English
    • ISBN-10: 0321127420
    • ISBN-13: 978-0321127426
    • Product Dimensions: 7.7 x 1.3 x 9.4 inches
    • Shipping Weight: 2.3 pounds (View shipping rates and policies)
    • Average Customer Review: 4.4 out of 5 stars  See all reviews (81 customer reviews)
    • Amazon Best Sellers Rank: #12,803 in Books (See Top 100 in Books)

    More About the Author

    For all of my career I've been interested in the design and architecture of software systems, particularly those loosely classed as Enterprise Applications. I firmly believe that poor software design leads to software that is difficult to change in response to growing needs, and encourages buggy software that saps the productivity of computer users everywhere.
    I'm always trying to find out what designs are effective, what approaches lead people into trouble, how we can organize our work to do better designs, and how to communicate what I've learned to more people. My books and website are all ways in which I can share what I learn and I'm glad I've found a way to make a living doing this.

    Customer Reviews

    Apart from that though, the book is very well organised. Thing with a hook  |  17 reviewers made a similar statement
    This book is a must have for developers that are new to Enterprise Architecture. Jesse A Ezell  |  18 reviewers made a similar statement
    I will be reading this book a second time just to burn the concepts into my brain. Jesse Greathouse  |  16 reviewers made a similar statement
    Most Helpful Customer Reviews
    101 of 109 people found the following review helpful
    4.0 out of 5 stars Great book, but nothing particularly new February 20, 2003
    Format:Hardcover
    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.

    Was this review helpful to you?
    30 of 31 people found the following review helpful
    5.0 out of 5 stars The right path to creating enterprise applications. October 3, 2003
    Format:Hardcover
    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.
    ...
    Comment | 
    Was this review helpful to you?
    36 of 39 people found the following review helpful
    5.0 out of 5 stars Best J2EE / .Net Design Pattern Book December 13, 2002
    Format:Hardcover
    This is the best book I've found on J2EE and .Net patterns. I think it's destined to become a classic. I found the discussions on when to distrbute ('sell your favorite grandmother first'), Unit Of Work, Domain Model and Data Mapper patterns extremely useful. It has changed the way I think about enterprise applications.

    I think it fits somewhere between the original 'Design Patterns' book, by Gamma, et al, and a book like 'J2EE Patterns' in terms of its scope. 'Design Patterns' describes existing patterns that are applicable to any kind of application. 'J2EE Patterns' describes patterns in terms of one platform (although many of them apply to other platforms as well.) Fowler's book describes a set of patterns that work with a certain kind of application, business apps, but that are applicable to more than one platform.

    It's better than the 'J2EE Patterns' book, which doesn't do a good job explaining which parts of J2EE to avoid, and which 'patterns' are in fact workarounds for problems in the platform itself. (For example, the 'Composite Entity' pattern.)

    I have to strongly disagree with the first reviewer. Fowler does explain which patterns work best on which platform. The first section of the book gives a good road map for deciding which set of patterns to use for your app. He mentions explicitly that .Net pulls you in the direction of Table Module, but that with J2EE you would be less likely to use that pattern.

    As far as the patterns being available in frameworks, I still find it useful to know about the patterns the framework implements. That way you know which framework to select. We recently went through an O/R mapping tool selection process. Reading the Unit Of Work, Data Mapper, Repository, Lazy Load and Identity Map chapters helped *immensely* in that process....

    Finally, the idea that because the book 'just' collects and names patterns that already exist somehow decreases its value is hogwash. These are tried and true patterns that many developers have found useful. Naming and clearly describing common patterns is very helpful. This is exactly what the original 'Design Patterns' book did. By this logic, I guess the original reviewer would have given 'Design Patterns' only 3 stars.

    It's a great book. Read more ›

    Comment | 
    Was this review helpful to you?
    296 of 362 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
    Format:Hardcover
    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....

    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. Read more ›

    Was this review helpful to you?
    Most Recent Customer Reviews
    5.0 out of 5 stars Excellent book
    A must read for all the professional working in enterprise java related technologies.
    This has got lot of references. it covers most of the patterns.
    Published 1 month ago by rudra
    5.0 out of 5 stars Rock solid basics, worth reading even in 2013
    What can possibly a rather young kid such as myself learn from 11 years book /as of 2013/ on architecture of enterprise applications? Well as it turns out, a lot. Read more
    Published 1 month ago by vrto
    5.0 out of 5 stars Great
    Cover is hard and protective, pages are floppy and easily turned, doesn't require too much muscle power to get to the next page. Could use more pictures of kittens. Read more
    Published 1 month ago by Elizabeth Hofmann-Hicks
    5.0 out of 5 stars A must have for all coders
    One of the best books I have ever read. i had the actual book but wanted this one for my e-reader. This is a book you will want to read more than once. Read more
    Published 4 months ago by David Marta
    5.0 out of 5 stars Very good book
    I actually read part of this book couple of years ago, but never had an opportunity to read it all.
    If you are serious about programming, this is a 'must have' piece.
    Published 4 months ago by Victor Farazdagi
    5.0 out of 5 stars Great book
    I buy this for a friend and is a really good book that goes deep on the subject of the enterprise patterns
    Published 4 months ago by Andres Serrano Garcia
    5.0 out of 5 stars Excellent read for any medium or large scale project
    I found this book to be a great resource for understanding many of the prominent frameworks like ORM, ESB and MVC work. Read more
    Published 6 months ago by Jason Meckley
    2.0 out of 5 stars Outdated & Overly complex
    I didn't think much of this book. Martin uses really complicated words to explain simple concepts. He literally drowns in his own verbage. Read more
    Published 8 months ago by jamieb22
    5.0 out of 5 stars Great book about enterprise application development
    I had read the Microsoft® .NET: Architecting Applications for the Enterprise by Dino Esposito.
    It is good book for beginner enterprise developers. Read more
    Published 11 months ago by ge1serf
    2.0 out of 5 stars Not much more than a good history book
    Given the date this book was written, I understand the many positive reviews.
    Offcourse we now are almost 2012 and 10 years of evolution in IT makes a vast difference which... Read more
    Published 18 months ago by Nico VB
    Search Customer Reviews
    Only search this product's reviews


    Forums

    There are no discussions about this product yet.
    Be the first to discuss this product with the community.
    Start a new discussion
    Topic:
    First post:
    Prompts for sign-in
     



    So You'd Like to...


    Create a guide


    Look for Similar Items by Category