Architectural Pattern (computer Science)

An architectural pattern is a general, reusable solution to a commonly occurring problem in software architecture within a given context.[1] Architectural patterns are similar to software design patterns but have a broader scope. The architectural patterns address various issues in software engineering, such as computer hardware performance limitations, high availability and minimization of a business risk. Some architectural patterns have been implemented within software frameworks.

Definition

Even though an architectural pattern conveys an image of a system, it is not an architecture. An architectural pattern is a concept that solves and delineates some essential cohesive elements of a software architecture. Countless different architectures may implement the same pattern and share the related characteristics. Patterns are often defined as "strictly described and commonly available".[2][3]

Architectural style

Following traditional building architecture, a 'software architectural style' is a specific method of construction, characterized by the features that make it notable".

Some treat architectural patterns and architectural styles as the same,[5] some treat styles as specializations of patterns. What they have in common is both patterns and styles are idioms for architects to use, they "provide a common language"[5] or "vocabulary"[4] with which to describe classes of systems.

The main difference is that a pattern can be seen as a solution to a problem, while a style is more general and does not require a problem to solve for its appearance.

Examples

Here is a list of architecture patterns, and corresponding software design patterns and solution patterns.

Sub-domain area Architecture pattern Software design patterns Solution patterns Related patterns
Data integration/SOA
  • One-way
  • Synchronous request/response
  • Basic callback
  • Claim check
Data architecture
  • Custom applications databases
  • Packaged application databases
  • ETL
  • EAI
  • SOA
Analytics and business intelligence
  • Transactional reporting
  • Operational analytics
  • Business analytics
  • Predictive analytics
  • Prescriptive analytics
  • Streaming analytics
  • Data science and advanced analytics
  • NLP
  • Transactional reporting data access
  • Operational reporting data access
  • Analytical reporting data access
  • Analytical dashboard data access
  • Operational dashboard data access
  • Data mining
  • ETL
  • EAI
  • TDS
  • Operational data store
  • Data mart
Master data management
  • Master data hub
  • Master data replication
  • Master data services
  • Master data synchronization
Data modeling
  • Modeling standards
  • Naming conventions
Artificial intelligence
  • Decision management
  • Speech recognition
  • Text analytics and NLP
  • Natural language generation
  • Classic machine learning
  • Deep learning
  • Robotic process automation
  • Image and video analysis

Some additional examples of architectural patterns:

See also

References

  1. ^ a b R. N. Taylor, N. Medvidovi? and E. M. Dashofy, Software architecture: Foundations, Theory and Practice. Wiley, 2009.
  2. ^ Chang, Chih-Hung; Lu, Chih-Wei; Lin, Chih-Hao; Yang, Ming-Feng; Tsai, Ching-Fu (June 2008). "An Experience of Applying Pattern-based Software Framework to Improve the Quality of Software Development: 4. The Design and Implementation of OS2F". Journal of Software Engineering Studies, Vol. 2, No. 6. the Third Taiwan Conference on Software Engineering (TCSE07). pp. 185-194. Archived from the original on 2011-09-22. Retrieved . 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.
  3. ^ "Architectural Patterns: Definition". AAHN INFOTECH (INDIA) PVT. LTD. Archived from the original on 2012-06-23. Retrieved . 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 solves and delineates some essential cohesive elements of a software architecture. Countless different architectures may implement the same pattern and thereby share the related characteristics. Furthermore, patterns are often defined as something "strictly described and commonly available".
  4. ^ a b M. Shaw and D. Garlan, Software architecture: perspectives on an emerging discipline. Prentice Hall, 1996.
  5. ^ a b http://msdn.microsoft.com/en-us/library/ee658117.aspx

Bibliography

  • Avgeriou, Paris; Uwe Zdun (2005). "Architectural patterns revisited:a pattern language". 10th European Conference on Pattern Languages of Programs (EuroPlop 2005), Irsee, Germany, July.
  • Bass L.; Clements P.; Kazman R. (2005). Software Architecture in Practice: Second Edition. Addison-Wesley.

  This article uses material from the Wikipedia page available here. It is released under the Creative Commons Attribution-Share-Alike License 3.0.



Software AG Government Solutions is a trusted IT partner of government, Aerospace and Defense CIOs. Enterprise solutions include: API Management for Open Data | Application Acceleration | ARIS Business Process Analysis | Enterprise Integration | IT Portfolio Management | Rapid Application Development | Mainframe Applications Modernization | Enterprise Architecture Management | IT Digital Transformation Tools

Architectural_pattern_(computer_science)
 

Manage research, learning and skills at IT1me. Create an account using LinkedIn to manage and organize your IT knowledge. IT1me works like a shopping cart for information -- helping you to save, discuss and share.


  Contact Us  |  About IT1me.com |  IT Training & References |  IT Careers |  IT Hardware |  IT Software |  IT Books