Patterns of Enterprise Application Architecture

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Developers of enterprise applications (e.g reservation systems, supply chain programs, financial systems, etc.) face a unique set of challenges, different than those faced by their desktop system and embedded system peers. For this reason, enterprise developers must uncover their own solutions. In this new book, noted software engineering expert Martin Fowler turns his attention to enterprise application development. He helps professionals understand the complex -- yet critical -- aspects of architecture. While architecture is important to all application development, it is particularly critical to the success of an enterprise project, where issues such as performance and concurrent multi-user access are paramount. The book presents patterns (proven solutions to recurring problems) in enterprise architecture, and the context provided by the author enables the reader to make the proper choices when faced with a difficult design decision.

Author(s): Martin Fowler
Publisher: Addison-Wesley Professional
Year: 2002

Language: English
Commentary: True PDF
Pages: 560

Contents
Preface
Who This Book Is For
Acknowledgments
Colophon
Introduction
Architecture
Enterprise Applications
Kinds of Enterprise Application
Thinking About Performance
Patterns
The Structure of the Patterns
Limitations of These Patterns
PART 1: The Narratives
Chapter 1: Layering
The Evolution of Layers in Enterprise Applications
The Three Principal Layers
Choosing Where to Run Your Layers
Chapter 2: Organizing Domain Logic
Making a Choice
Service Layer
Chapter 3: Mapping to Relational Databases
Architectural Patterns
The Behavioral Problem
Reading in Data
Structural Mapping Patterns
Building the Mapping
Using Metadata
Database Connections
Some Miscellaneous Points
Further Reading
Chapter 4: Web Presentation
View Patterns
Input Controller Patterns
Further Reading
Chapter 5: Concurrency
Concurrency Problems
Execution Contexts
Isolation and Immutability
Optimistic and Pessimistic Concurrency Control
Transactions
ACID
Patterns for Offline Concurrency Control
Application Server Concurrency
Further Reading
Chapter 6: Session State
The Value of Statelessness
Session State
Ways to Store Session State
Chapter 7: Distribution Strategies
The Allure of Distributed Objects
Remote and Local Interfaces
Where You Have to Distribute
Working with the Distribution Boundary
Interfaces for Distribution
Chapter 8: Putting It All Together
Starting with the Domain Layer
Down to the Data Source Layer
Some Technology-Specific Advice
Other Layering Schemes
PART 2: The Patterns
Chapter 9: Domain Logic Patterns
Transaction Script
Domain Model
Table Module
Service Layer
Further Reading
Example: Revenue Recognition (Java)
Chapter 10: Data Source Architectural Patterns
Table Data Gateway
Row Data Gateway
Active Record
Data Mapper
Chapter 11: Object-Relational Behavioral Patterns
Unit of Work
Identity Map
Lazy Load
Chapter 12: Object-Relational Structural Patterns
Identity Field
Foreign Key Mapping
Association Table Mapping
Dependent Mapping
Embedded Value
Serialized LOB
Single Table Inheritance
Class Table Inheritance
Concrete Table Inheritance
Inheritance Mappers
Chapter 13: Object-Relational Metadata Mapping Patterns
Metadata Mapping
Query Object
Repository
Chapter 14: Web Presentation Patterns
Model View Controller
Page Controller
Front Controller
Template View
Transform View
Two Step View
Application Controller
Chapter 15: Distribution Patterns
Remote Facade
Data Transfer Object
Chapter 16: Offline Concurrency Patterns
Optimistic Offline Lock
Pessimistic Offline Lock
Coarse-Grained Lock
Implicit Lock
Chapter 17: Session State Patterns
Client Session State
Server Session State
Database Session State
Chapter 18: Base Patterns
Gateway
Mapper
Layer Supertype
Separated Interface
Registry
Value Object
Money
Special Case
Plugin
Service Stub
Record Set
References
Index
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X