Architecture styles

 As an architect you design for the present, with an awareness of the past, for a future which is essentially unknown

An architectural style is a set of principles and an architecture style is a family of architectures that share certain characteristics. For example, N-tier is a common architecture style. More recently, microservice architectures have started to gain favor. Architecture styles don't require the use of particular technologies, but some technologies are well-suited for certain architectures.

An architectural style improves partitioning and promotes design reuse by providing solutions to frequently recurring problems. Architectural styles provide several benefits. The most important of these benefits is that they provide a common language.

Another benefit is that they provide a way to have a conversation that is technology-agnostic.

This allows you to facilitate a higher level of conversation that is inclusive of patterns and principles, without getting into the specifics. For example, by using architecture styles, you can talk about client-server versus N-Tier


Key Architectural Styles in SE

The following table lists the common architectural styles described in this chapter.

  • 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) such as presentation layer, business layer, data layer, and services layer.
  • 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.


A combination of architecture styles will be useful if you are building a public-facing Web application. Employ effective separation of concerns by using the layered architecture style.

This will separate your presentation logic from your business logic and your data access logic.

Your organization’s security requirements might make you deploy the application using either the 3-tier deployment or a deployment of more than three tiers.

The presentation tier may be deployed in the perimeter network, which sits between an organization’s internal network and an external network.

On your presentation tier (Web server), you might decide on a separated presentation architecture style for your interaction model, such as MVC. From a communication standpoint between your Web server and application server, you might choose an SOA architecture style and implement message-based communication


Choosing an Architectural Style

There’s several factors that influence the architectural styles that you choose.

  • Some factors include the capacity of your organization for design and implementation; the capabilities and experience of developers; and the hardware and deployment scenarios available.
  • The architecture styles are related, so effectively you will be choosing a mix of architecture for your scenario. For example, when choosing a layered architecture, you may also choose to use an object-oriented or component-based design.



Comments

Popular posts from this blog

Email Sending through O365 using OAuth Protocol

IISRESET vs App Pool Recycling ?

Deploy .Net6.0 Web api with docker