Architectural Patterns to Consider for Building Enterprise Applications
Through this article I’ll be explaining the different architectural patterns using which enterprise applications can be designed. Before major software development starts, we have to choose a suitable architecture. This is going to provide us with the desired functionality and quality attributes. So, it’s important to understand different architectural patterns before we can apply them to a new enterprise application design.
Understanding Architectural Patterns:
An architectural pattern is a general, reusable solution to a common occurring problem in software architecture within a given context. Architectural patterns are similar to software design pattern but have a broader scope. -- Wikipedia
Architectural patterns to consider for building enterprise applications:
Some of the architectural patterns that can be used to re-create a new enterprise application are as follows:
Layered pattern
Client - server pattern
Broker pattern
Model - view - controller pattern.
Interpreter Pattern.
1. Layered Pattern
A layered pattern architecture organizes a system into a set of layers each of which provide a set of services to the layer “above”.
Some of the layers of a general information system are as follows.
Presentation layer: It’s also known as UI layer.
Application layer: It’s also known as service layer.
Business logic layer: It’s also known as domain layer.
Data access layer: It’s also known as persistence layer.
Where it’s used?
This pattern is used for general desktop applications and ecommerce web applications.
2. Client - server pattern
Client server pattern is a network architecture that consist of a server and multiple clients. Servers are powerful and it will provide service to multiple client components.
Clients rely on servers for resources such as files, devices & processing power.
Where it’s used?
This pattern is commonly used for online applications such as file sharing, email & banking.
3. Broker pattern
Broker pattern is used to structure distributed system with decoupled components.The components can interact with each other or by remote service invocation. A broker component is responsible for the coordination of communication among components.
Where it's used?
This pattern is used for message broker software such as Apache ActiveMQ, Apache Kafka, RabbitMQ & Jboss Messaging.
4. Model-view-controller pattern
Model-view-controller pattern is commonly known as MVC, it classifies an application in to 3 parts:
Model: A model contains the core functionality and data.
View: View displays the information to the user.
Controller: Controllers handle the input from the user.
Where it’s used?
This pattern is used by web frameworks such as Django and Rails. It’s the Architecture for World Wide Web (WWW) applications in major programing languages.
5. Interpreter pattern
The interpreter design pattern is very powerful in building the rules in a very logical manner. Most of the examples uses a programming language grammer as the rules.These rules can be applied to any streams of input or objects.
Where it’s used?
This pattern is used by database query languages such as SQL and by languages used to describe communication protocols.
For a large enterprise application design a combination of such pattern can be used. Besides these there are several other architectural pattern those can be considered when selecting Architectural pattern.
Hope this article helps in building and designing several applications.
Happy coding!!