Archive for the ‘Application Architecture’ Category

Architectural Patterns and Styles

September 7, 2012 Leave a comment

Architectural Patterns and Styles

Architectural Styles and Patterns are set of principles that shape the application. These styles describe different aspects of applications. For example, some architectural style describe deployment pattern, some describe communication , some describe structural and design issues .therefore, typical applications use a combination of more than one style.

The following table lists the major areas of focus and the corresponding architectural styles

Category Architectural Styles
Communication Service Oriented Architecture (SOA ) – Message Bus
Deployment Client/Server, N-Tier , 3-Tier
Domain Domain Driven Design
Structure Object-Oriented , Layered Architecture , Component – Based

The following table list architectural styles and brief description about of each style

Architecture style Description
Client\Server Segregates the system into 2 applications ,where the clients make requests to the server
Component-Based Architecture Decomposes the application into multiple logical components that expose a well- defined communication interfaces
Domain Driven Design An object-oriented architectural style focused on modeling a business domain and defining business objects based on entities within the business domain.
Layered Architecture Partitions the concerns of the application into stacked layers
Message Bus An architecture style that prescribes use of a software system that can receive and send messages using one or more communication channels, so that applications can interact without needing to know specific details about each other.
N-Tier/3-Tier Segregates functionality into separate segments in much the same way as the layered style, but with each segment being a tier located on a physically separate computer.
Object-Oriented A design paradigm based on division of responsibilities for an application or system into individual reusable and self-sufficient objects, each containing the data and the behavior relevant to the object.
Service-Oriented Architecture( SOA) Refers to applications that expose and consume functionality as a service using contracts and messages.