Friday, 21 August 2015

How Architectural Patterns and Design Patterns are related to each others

Philippe Krutchen’s 4+1 view model is like the 5 different goggles to view the architecture of any software intensive system. All these 5 different views of software collectively yield the notion of architecture of a software intensive system. Different stake holders of the software are interested in different views of software. But architect has to keep all these views in mind while balancing the different forces upon the software system.
For each view of software, we have various architectural patterns. For each architectural pattern we have different design patterns to structure the fine grained elements in a particular view. So firstly, we have to select the architectural patterns for all different views. For example, we selected to structures our application using the Layered Architectural Pattern. Selecting this, automatically select the Architectural Patterns for other views. Now we have to decide what design patterns we can leverage with in layered architecture to further structure our layers in the form of classes and objects and distributes responsibilities among them.
For example, we selected to structures our application using the SOA Architectural Pattern (extension to layered architectural pattern). Selecting this, automatically select the Architectural Patterns for other views. Now we have to decide what SOA design patterns we can leverage with in SOA architecture to further structure our Service Layer in the form of services and distributes responsibilities among them. As SOA is the extension of layered architectural pattern, so all the design patterns related to layered architectural pattern is still related to the SOA pattern to structure other layers than the Service Layer.
SOA decorates the Service Layer on the top of Business Logic Layer. Generally, Service Layer exposes coarse grained operations than the Business Logic Layer those can be accessed by world-wide software applications (if Service Layer is exposed on the internet) or enterprise-wide software applications ( if Service Layer is exposed on the enterprise-wide WAN or LAN). SOA is SaaS.
OO Design Principles are deeply rooted inside the OO Design Patterns, Amazingly, these Design Principles are few and they are extracted by the in-depth rigorous analysis of all OO Design Patterns.
Are there any SOA Design Principles are deeply rooted inside the SOA Design Patterns, Amazingly, these Design Principles should be few and they are extracted by the in-depth rigorous analysis of all SOA Design Patterns?
GOF Book (Programming in small, Design Issues) à Generally about object oriented software, discusses Design Patterns, discusses programming in small, discusses design issues, applies to all architectural patterns those leverage object-orientation.
Martin Fowler EAA (Programming in small, Design Issues)à About enterprise layered + soa architecture applications, mainly concentrates on Design Pattern. Discusses how the layers should be structures internally by classes and objects. How the responsibilities of a layer should be distributed among the various classes and objects. Different design patterns for this.
Microsoft PnP Book (Programming in large, Architectural Issues) à About enterprise layered + soa architecture applications, mainly concentrates on the issues of Layered Architectural Pattern. Discusses the issues of different layers and CCCs of layered + soa architecture applications. It discusses generally on the very high level about the components with in a layer. It also discusses in short and relates the Design Patterns (classic OO + Martin Fowler EAA) while discussing generally about different components within a layer. It also discusses the other 4 views related to the layered + soa architectural pattern and different design patterns related to those views.
SOA Design Pattern Books (Programming in small, Design Issues) Discusses the issues related to the Service Layer decorated on the top of Business Logic Layer in the context of enterprise layered + soa architecture applications. How to decorate the Service Layer on the top of Enterprise Application and expose the enterprise functionality so that different enterprise applications related to different departments collectively talk each other. There may be network in which multiple Enterprise shared the common WAN and their various applications could talk to each other on co-corporate WAN shared among enterprises. Further things could be put on the Internet and Cloud.

POSA (Programming in small, Design Issues, Programming in large, Architectural Issues) à Siemens Guys Books. Codify the design experience of different systems. Discusses generally about architecture, discusses generally about design, discusses generally about patterns, discusses some design patterns, discusses other architectural patterns and also layered architectural patterns, applications of architectural patterns, server component patterns, about pattern languages, network application patterns, concurrent patterns, focus of the book is quite wide and other type of software applications. 

No comments:

Post a Comment