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.