architectural-pattern-featured
Development

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:

  1. Layered pattern

  2. Client - server pattern

  3. Broker pattern

  4. Model - view - controller pattern.

  5. 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.

ap-layered-pattern


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.

ap-client-server


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.

ap-broker


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.

ap-mvc


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.

ap-interpreter


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!!