Architectural pattern (computer science)
From Wikipedia, the free encyclopedia
Architectural patterns are software patterns that offer well-established solutions to architectural problems in software engineering. It gives description of the elements and relation type together with a set of constraints on how they may be used. An architectural pattern expresses a fundamental structural organization schema for a software system, which consists of subsystems, their responsibilities and interrelations. In comparison to design patterns, architectural patterns are larger in scale.
Even though an architectural pattern conveys an image of a system, it is not an architecture as such. An architectural pattern is rather a concept that captures essential elements of a software architecture. Countless different architectures may implement the same pattern and thereby share the same characteristics. Furthermore, patterns are often defined as something "strictly described and commonly available". For example, layered architecture is a call-and-return style, when it defines an overall style to interact. When it is strictly described and commonly available, it is a pattern.
One of the most important aspects of architectural patterns is that they embody different quality attributes. For example, some patterns represent solutions to performance problems and others can be used successfully in high-availability systems. In the early design phase, a software architect makes a choice of which architectural pattern(s) best provide the system's desired qualities.
Examples of architectural patterns include the following:
- Layers
- Presentation-abstraction-control
- Three-tier
- Pipeline
- Implicit invocation
- Blackboard system
- Peer-to-peer
- Service-oriented architecture
- Naked objects
- Model-View-Controller
[edit] References
Avgeriou, Paris; Uwe Zdun (2005). "Architectural patterns revisited:a pattern language". 10th European Conference on Pattern Languages of Programs (EuroPlop 2005), Irsee, Germany, July. http://wi.wu-wien.ac.at/home/uzdun/publications/ArchPatterns.pdf.
Buschmann F., Meunier R., Rohnert H. & Sommerlad P. & Stal M. (1996). Pattern-Oriented Software Architecture: A System of Patterns. John Wiley & Sons. http://www.wiley.com/WileyCDA/WileyTitle/productCd-0471958697.html.