BT
x Your opinion matters! Please fill in the InfoQ Survey about your reading habits!

A Quick Look at Architectural Styles and Patterns

by Abel Avram on Feb 11, 2009 |

App Arch Guide 2.0 (Microsoft patterns&practices), Chapter 6, talks about architectural styles like Message-Bus, Layered Architecture, SOA. Beside those styles there are numerous architectural patterns like Plug-in, Peer-to-Peer, Publish-Subscribe. Some authors make a difference between architectural styles, patterns and metaphors.

What is an architectural style? According to App Arch Guide, an architectural style is:

A set of principles. You can think of it as a coarse-grained pattern that provides an abstract framework for a family of systems. An architectural style improves partitioning and promotes design reuse by providing solutions to frequently recurring problems.

The authors of the guide list a number of architectural styles:

Architecture style Description
Client-Server Segregates the system into two applications, where the client makes a service request to the server.
Component-Based Architecture Decomposes application design into reusable functional or logical components that are location-transparent and expose well-defined communication interfaces.
Layered Architecture Partitions the concerns of the application into stacked groups (layers).
Message-Bus 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.
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 An architectural style based on division of tasks for an application or system into individual reusable and self-sufficient objects, each containing the data and the behavior relevant to the object.
Separated Presentation Separates the logic for managing user interaction from the user interface (UI) view and from the data with which the user works.
Service-Oriented Architecture (SOA) Refers to Applications that expose and consume functionality as a service using contracts and messages.

Each of those architectural styles are applied to specific areas of interest:

Category Architecture styles
Communication Service-Oriented Architecture (SOA), Message Bus, Pipes and Filters
Deployment Client/server, 3-Tier, N-Tier
Domain Domain Model, Gateway
Interaction Separated Presentation
Structure Component-Based, Object-Oriented, Layered Architecture

J.D. Meier, summarizing a few key points from the book A Practical Guide to Enterprise Architecture by James McGovern, Scott W. Ambler, Michael E. Stevens, James Linn, Vikas Sharan, and Elias K. Jo, noted a subtle difference between architectural styles and patterns:

  • An architectural style is a central, organizing concept for a system.
  • An architectural pattern describes a coarse-grained solution at the level of subsystems or modules and their relationships.
  • A system metaphor is more conceptual and it relates more to a real-world concept over a software engineering concept.

David Calvert made in 1996 a partial list of architectural styles/patterns:

  • Dataflow Systems -- Batch sequential, Pipes and filters.
  • Call-and-return systems -- Main program and subroutines, OO systems, Hierarchical layers.
  • Independent components -- Communicating processes, Event Systems.
  • Virtual Machines -- Interpreters, Rule-based systems.
  • Data-centered systems (repositories) -- Databases, Hypertext system, Blackboards.

Other more modern styles/patterns are: Plugin, Peer-to-Peer, Shared Nothing Architecture, Representational State Transfer (REST), Front-end and back-end. There is a more complete list on Wikipedia.

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

suggestion by ganesh ghag

maybe it would be better to talk about relevant styles in context of a partcular architectural view( like logical, physical, etc). some styles are really peers/choices in the physical view and some in the logical view

Re: suggestion by Ersin Er

The table below "Each of those architectural styles are applied to specific areas of interest:" somehow tries to make such a distinction but it's not of course formally stated with respect to views.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

2 Discuss

Educational Content

General Feedback
Bugs
Advertising
Editorial
InfoQ.com and all content copyright © 2006-2014 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT