In this article let's discuss about the various architecture pattern available
in this programming world.
Before getting into the main picture, we need to know why we need patterns.
Why Patterns?
Each pattern describes a problem that occurs over and over again in our
environment and then describes the core of the solution to that problem in such
a way that you can use this solution a million times over without ever doing it
the same way twice.
- Christopher Alexander
What is Architectural Patterns?
We can simply define it as a design technique at a larger context where it
influences the organization or the structure of the sub systems. It establishes
the relationships, defines the responsibilities, and provides the rules and the
guidelines of the overall architecture.
Focus Areas of Architectural Pattern
The architectural pattern can be organized by their focus areas as below.
- Communication
o Service Oriented Architecture
o Message Bus
- Deployment
o Client/Server, N-Tier, 3-Tier
- Domain
o Domain Driven Design
- Structure
o Component Based
o Object Oriented
o Layered Architecture
Let's discuss about the simple definition of
each architecture pattern listed above.
Service Oriented Architecture
Service Oriented Architecture can be defined as a collection of services. These
services communicate with each other. It generally refers to Applications that
expose and consume functionality as a service using contracts and messages.
SOA makes it possible for a business to add new features and services without
having to create them from scratch. Instead, they can be added or modified as
needed, making it simple and efficient to expand the business.
Message Bus
Message Bus can be defined as a software system that can receive and send
messages that are based on a set of known formats, so that systems can
communicate with each other without needing to know the actual recipient.
Above diagram shows an integration solution that uses a message bus. An
application that sends messages through the bus must prepare the messages so
that the messages comply with the type of messages the bus expects. Similarly,
an application that receives messages must be able to understand the message
types. If all applications in the integration solution implement the bus
interface, adding applications or removing applications from the bus incurs no
changes.
Let's discuss about the remaining architecture pattern in my next article. Hope
this session helped you to understand about an overview of Architectural
Pattern.