그 이름, Martin Fowler !! 2000년대 초반에 나온 고전(?)이긴 하지만 현재 기업에서 사용되고 있는 엔터프라이즈 아키텍처에 대해서 정리하고 싶다면 이 책을 보면 되지 않을까 싶다. 이 책의 부분들을 조합하면 대부분의 기업들의 아키텍처는 만들어 질 수 있을 것으로 보인다.
저자 Martin Fowler외
목차를 옮기려 하니 꽤 길다. 휴~~
Introduction
Architecture
Enterprise Application
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
Mapping Relationships
Inheritance
Building the Mapping
Double 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
Preventing Inconsistent Reads
Deadlocks
Transactions
ACID
Transactional Resources
Reducing Transaction Isolation for Liveness
Business and System Transactions
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
Data Source for Transaction Script(110)
Data Source for Table Module(125)
Data Source for Domain Model(116)
The Presentation Layer
Some Technology-Specific Advice
Java and J2EE
.NET
Stored Procedures
Web Services
Other Layering Schemes
PART 2: The Patterns
Chapter 9: Domain Logic Patterns
Transaction Script
The Revenue Recognition Problem
Example: Revenue Recognition(Java)
Domain Model
Example: Revenue Recognition( Java )
Table Module
Example: Revenue Recognition with a Table Module(C#)
Service Layer(by Radndy Stafford)
Example: Revenue Recognition( Java )
Chapter 10: Data Source Architectural Patterns
Table Data Gateway
Example: Person Gateway(C#)
Example: Using ADO.NET Data Sets(C#)
Row Data Gateway
Example: A Person Record(Java)
Example: A Data Holder for a Domain Object( Java )
Active Record
Example: A Simple Person(Java )
Data Mapper
Example: A Simple Database Mapper( Java )
Example: Separating the Finders( Java )
Example : Creating an Empty Object( java )
Chapter 11: Object-relational Behavioral Patterns
Unit of Work
Example : Unit of Work with Object Registration( Java)( by David Rice )
Identity Map
Example: Methods for an Identity Map(Java)
Lazy Load
Example: Lazy Initialization(Java)
Example: Virtual Proxy(Java)
Example: Using a Value Holder(Java)
Example: Using Ghosts(C#)
Chapter 12: Object-Relational Structural Patterns
Identity Field
Example: Integral Key( C#)
Example: Using a Key Table(Java )
Example: Using a Compound Key( Java)
Foreign Key Mapping
Example: Single-Valued Reference( Java )
Example: Multitable Find(Java)
Example: Collection of References(C#)
Association Table Mapping
Example: Employees and Skills( C#)
Example: Using Direct SQL( Java )
Example: Using s Single Query for Multiple Employees(Java )( by Matt Foemmel and Martin Fowler)
Dependent Mapping
Example: Albums and Tracks(Java)
Embedded Value
Example: Simple Value Objejct(Java)
Serialized LOB
Example: Serializing a Department Hierarchy in XML(Java)
Single Table Inheritance
Example : A Single Table for Players(C#)
Loading an Object from the Database
Class Table Inheritance
Example: Players and Their Kin(C#)
Concrete Table Inheritance
Example: Concrete Players(C#)
Inheritance Mappers
Chapter 13: Object-Relational Metadata Mapping Patterns
Metadata Mapping
Example: Using Metadata and Reflection(Java)
Query Object
Example: A Simple Query Object(Java)
Repository( by Edward Hieatt and Rob Mee)
Example: Finding a Person's Dependents( Java )
Example: Swapping Repository Strategies(Java )
Chapter 14: Web Presentation Patterns
Model View Controller
Page Controller
Example: Simple Display with a Servlet Controller and a JSP View( java )
Example Using a JSP as a Handler(Java)
Example: Page Handler with a Code Behind( C#)
Front Controller
Example: Simple Display(Java)
Template View
Example: Using a JSP as a View with a Separate Controller(Java)
Example: ASP.NET Server Page(C#)
Transform View
Example: Simple Transform(Java)
Two Step View
Example: Tow Stage XSLT(XSLT)
Example: JSP and Custom Tags(Java)
Application Controller
Example: State Model Application Controller(Java)
Chapter 15: Distribution Patterns
Remote Facade
Example: Using a Java Session Bean as a Remote Facade(Java)
Example: Web Service( C#)
Data Transfer Object
Example: Transferring Information About Albums(Java)
Example: Serializing Using XML(Java)
Chapter 16: Offline Concurrency Patterns
Optimistic Offline Lock(by David Rice)
Example: Domain Layer with Data Mappers(165)(Java)
Pessimistic Offline Lock( by David Rice)
Example: Simple Lock Manager(Java)
Coarse-Grained Lock(by David Rice and Matt Foemmel)
Example: Shared Optimistic Offline Lock(416)(Java)
Example: Shared Pessimistic Offline Lock(426)(Java)
Example: Root Optimistic Offline Lock(416)(Java)
Implicit Lock( by David Rice)
Example: Implicit Pessimistic Offline Lock(426)(Java)
Chapter 17: Session State Patterns
Client Session State
Server Session State
Database Session State
Chapter 18: base Patterns
Gateway
Example: A Gateway to a Proprietary Messaging Service(Java)
Mapper
Layer Supertype
Example: Domain Object(Java)
Separated Interface
Registry
Example: A Singleton Registry(Java)
Example: Thread-Safe Registry(Java)( by Matt Foemmel and Martin Fowler)
Value Object
Money
Example: A Money Class(Java)( by Matt Foemmel and Martin Fowler)
Special Case
Example: A Simple Null Object( C#)
Plugin( by David Rice and Matt Foemmel)
Example: An Id Generator( Java )
Service Stub( by David Rice)
Example: Sales Tax Service(Java)
Record Set
'IT 살이 > 04. 기술 - 아키텍처' 카테고리의 다른 글
책상정리 #5 - 엔터프라이즈급 애자일 개발 (0) | 2015.07.19 |
---|---|
책상정리 #3 - 서비스 디자인 패턴 (0) | 2015.07.18 |
책상정리 #2 - Software Architecture In Practice (0) | 2015.07.18 |