Avijeet Dash and Satyabrata Dash
We are going to start a new series of Design Pattern articles based on "Patterns of Enterprise Application Architecture" book by Martin Fowler et al.
Let’s refresh the definition of pattern, enterprise application and architecture before we move to content and structure of publication.
Pattern
Let’s revise the definition of pattern before we go to discuss about P of EAA. So what is a Pattern? The well-known 3-part rule inspired by Christopher Alexander to a pattern is that " A pattern is a solution to a problem in context".
Problem: We need to contain global warming.
Context: The ozone layer is depleting.
Solution: Implement stringent emission laws.
But Vlissides in Pattern Hatching insists that a pattern also must have:
Enterprise Application
Enterprise applications are normally characterized with the following similarities:
The challenges of enterprise applications cut through projects and a small subset of that is:
P of EAA has listed a good number of enterprise application examples like payroll, patient records, supply chain, accounting, customer service etc.
Architecture
Booch, Rumbaugh, and Jacobson have explained in "The UML Modeling Language User Guide" that an architecture is the set of significant decisions about the organization of a software system, the selection of the structural elements and their interfaces by which the system is composed, together with their behavior as specified in the collaborations among those elements, the composition of these structural and behavioral elements into progressively larger subsystems, and the architectural style that guides this organization---these elements and their interfaces, their collaborations, and their composition.
Software architecture involves key decisions about the structure of the system and relationship between various components of system. In Pattern Oriented Software Architecture book, you can find mention of several architectural design patterns like
Layered architecture, pipes and filter and blackboard architecture.
P of EAA Series
P of EAA book is organized into two parts. The first part contains a set of narrative chapters on a number of important topics in design of enterprise applications and patterns, with detailed solutions have been recorded in the second part.
Some of the interesting topics in enterprise applications that the book covers are
We will mainly focus on the second part of the book that is patterns although we will summarize the discussion presented in the narratives section of the book. We will discuss one pattern every fortnight from P of EAA book. We will present the pattern in the format specified in Structure section and we will also try to provide as many examples as we can in Java and C# language.
Structure
We have included a new sub-section called Anti Pattern where we will discuss the scenarios when the pattern can become an anti-pattern.The design pattern structure that we will follow is given below.
Pattern Name
Name of the pattern.
Intent
In 30 Seconds
Motivation
Structure
Sample Code
Complexities simplified
Explain the variations of the pattern and simplify any intricacies involved in the pattern.
Related Patterns
Possible scenarios when the pattern becomes an anti-pattern.
Conclusion
We introduced to P of EAA series this time and also outlined the structure that we will be following for our subsequent pattern discussions. We will discuss about Layering and Organizing Domain Logic narratives next time.
Reader feedback is utmost important to us. This is a forum to discuss about P of EAA design patterns and share practical experiences with each other. So if you have opinion or suggestion about the upcoming articles, then write us and we will incorporate them into our publications.
About Authors
Avijeet Dash and Satyabrata Dash can be reached at avijeetd@yahoo.com and satyabrata_dash@yahoo.com respectively.