While working with enterprise or large-scale applications, have you ever wondered how the architects decide what should be the architecture of the software application? There are n number of enterprise architectural patterns but not everyone solves everything. They work in a specific fashion.
This blog or series of blogs will let you learn the basics of a few Software Enterprise Architectural Patterns. Let’s start.
What is an Architectural Pattern?
According to Wikipedia,
An architectural pattern is a general, reusable solution to a commonly occurring problem in software architecture within a given context. Architectural patterns are similar to software design pattern but have a broader scope.
Here, when we are referring to scope, we want to elaborate the concepts of designing a software rather than classes or objects. Keep in mind that altogether, Design as well as Enterprise patterns help us to achieve code maintainability, reusability, and better solutions.
In this series, I will briefly explain a few architectural patterns along with their uses, pros, and cons.
Layered Pattern
We are pretty much familiar with this pattern with some other name; we call it n-tier pattern. This is the most widespread and most-used pattern. In this, all the layers are physically separated and have their own responsibilities. It can be used to structure the programs that can be decomposed into groups of subtasks, each of which is at a particular level of abstraction. Each layer provides service to the next higher layer. The most common segregation between the layers is as follows -
- Presentation Layer – also known as UI layer
- Application Layer – this is the layer where the services resides; it provides the abstraction between UI and business component.
- Business Layer – this layer is responsible for the core business implementation.
- Data Access Layer – this layer interacts with DB and works as a medium between DB and business layer.
Advantages
Mainly the performance is increased due to off-load from the database tier and the client tier, enabling it to suit medium to high volume industries.
Disadvantages
Due to the componentization of the tiers, the complex structure is difficult to implement or maintain.
Figure 1 Layered Pattern