Architecture styles and patterns as sets of principles that shape an application. This following table describes and discusses architecture styles and principles commonly used for applications today. For each style, you will find an overview, with example and information that will help you choose the appropriate architectural styles for your application
Category | Architecture styles | Description | Example |
Deployment
|
Client/Server
|
Segregates the system into two applications, where the client makes requests to the server. In many cases, the server is a database with application logic represented as stored procedures.
|
When a bank customer accesses online banking services with a web browser (the client), the client initiates a request to the bank's web server. The customer's login credentials may be stored in a database, and the web server accesses the database server as a client. An application server interprets the returned data by applying the bank's business logic, and provides the output to the web server. Finally, the web server returns the result to the client web browser for display.
In each step of this sequence of client–server message exchanges, a computer processes a request and returns data. This is the request-response messaging pattern. When all the requests are met, the sequence is complete and the web browser presents the data to the customer.
Source: https://en.wikipedia.org/wiki/Client%E2%80%93server_model
Consider the client/server architectural style if:
|
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.
|
In the web development field, three-tier is often used to refer to websites, commonly electronic commerce websites, which are built using three tiers:
A front-end web server serving static content, and potentially some cached dynamic content. In web based application, Front End is the content rendered by the browser. The content may be static or generated dynamically.
A middle dynamic content processing and generation level application server (e.g., ASP.NET, Ruby on Rails, Django (web framework), Laravel, Spring Framework, CodeIgniter, Symfony, Flask (web framework))
A back-end database or data store, comprising both data sets and the database management system software that manages and provides access to the data.
Consider the 3-tier architectural style if:
Consider using more than three tiers if:
| |
Structure
|
Component-Based Architecture
|
Decomposes application design into reusable functional or logical components that expose well-defined communication interfaces.
|
e.g., financial applications or business software, Salesforce’s Lightning Design System.
Consider the component-based architectural style if:
|
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 behaviour relevant to the object.
|
E.g. system of the automatic teller machine, an order processing application
Consider the object-oriented architectural style if:
| |
Layered Architecture
|
Partitions the concerns of the application into stacked groups (layers).
|
E.g. 1. Line of business (LOB) applications, such as accounting and customer-management systems.
2. Enterprise Web-based applications and Web sites.
3. Application for restaurant
The main actors are: the customer, the waiter and the Chef
They all have different responsibilities. It is good idea to build your site / application using Layered architecture if following principles are met
| |
Communication
|
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.
|
D-Bus is an open source unix-based tool for inter process communication (IPC) that utilizes the message bus architecture. D-Bus was designed to address communication between applications in the same desktop session, and between a desktop session and the operating system. D-Bus uses both the call-and-return and event-based varieties of message passing [19] between applications to facilitate these concerns
Consider the message-bus architectural style if:
|
Service-Oriented Architecture (SOA)
|
Refers to applications that expose and consume functionality as a service using contracts and messages.
|
E.g.
Consider the SOA style if:
| |
Domain
|
Domain Driven Design
|
An object-oriented architectural style focused on modelling a business domain and defining business objects based on entities within the business domain.
|
Consider the DDD style if:
|
References/Sources:
No comments:
Post a Comment