Summary of some concepts about Software Architecture, based on the book "Modern Software Engineering" - Marco Tulio Valente (https://engsoftmoderna.info/)
Architecture is about the important stuff. Whatever that is. – Ralph Johnson
🔍 What do you find here?
It refers to any application architecture with more than one tier. But applications with more than three layers are rare, because additional layers offer few benefits and can make the application slower, harder to manage and more expensive to run.
Three-tier architecture, which separates applications into three logical and physical computing tiers, is the predominant software architecture for traditional client-server applications.
<aside> 👉 Presentation tier: the user interface and communication layer of the application, where the end-user interacts with the application. Its main purpose is to display information to and collect information from the user. This top-level tier can run on a web browser, as a desktop application, or a graphical user interface (GUI), for example.
Application tier: also known as the logic tier or middle tier, is the heart of the application. In this tier, information collected in the presentation tier is processed - sometimes against other information in the data tier - using business logic, a specific set of business rules. The application tier can also add, delete or modify data in the data tier.
Data tier: sometimes called database tier, data access tier, or back-end, is where the information processed by the application is stored and managed. This can be a relational database management system such as PostgreSQL, MySQL, MariaDB, Oracle or in a NoSQL Database server such as Cassandra, CouchDB or MongoDB.
</aside>
It consisting of a presentation tier and a data tier; the business logic lives in the presentation tier, the data tier, or both. In two-tier architecture the presentation tier - and consequently the end-user - has direct access to the data tier, and the business logic is often limited.
The Model-View-Controller (MVC) framework is an architectural pattern that separates an application into three main logical components Model, View, and Controller
<aside> 👉 View: is that part of the application that represents the presentation of data. They are created by the data collected from the model data. A view requests the model to give information so that it resents the output presentation to the user.
Controller: is that part of the application that handles the user interaction. It sends commands to the model to update its state and also sends commands to its associated view to change the view's presentation.
Model: stores data and its related logic. It represents data that is being transferred between controller components or any other related business logic.
</aside>