Architectural Patterns: Overview and Analysis for Software Design

Verified

Added on  2022/09/08

|11
|991
|46
Report
AI Summary
This report provides an in-depth overview of architectural patterns, which are reusable solutions to common problems in software architecture. It covers ten distinct patterns, including the layered pattern, client-server pattern, master-slave pattern, pipe-filter pattern, broker pattern, peer-to-peer pattern, event-bus pattern, model-view-controller pattern, blackboard pattern, and interpreter pattern. Each pattern is explained with its usage scenarios and examples, such as e-commerce web applications for the layered pattern, online applications for the client-server pattern, and speech recognition for the blackboard pattern. The report also outlines the advantages and disadvantages of the discussed architectural types, providing a comprehensive understanding of their application in software design and development. This resource is valuable for students seeking to understand and apply architectural patterns in their projects.
Document Page
ARCHITECTURAL PATTERN
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
Some of the most common architectural patterns are:
1. Layered pattern
This pattern can be used to structure programs that can be decomposed into groups of
subtasks, each of which is at a particular level of abstraction. Each layer provides services
to the next higher layer.
The most commonly found 4 layers of a general information
system are as follows.
Presentation layer (also known as UI layer)
Application layer (also known as service layer)
Business logic layer (also known as domain layer)
Data access layer (also known as persistence layer)
Usage
General desktop applications.
E commerce web applications.
Layer Pattern
tabler-icon-diamond-filled.svg

Secure Best Marks with AI Grader

Need help grading? Try our AI Grader for instant feedback on your assignments.
Document Page
2. Client-server pattern
This pattern consists of two parties; a server and multiple clients. The server component
will provide services to multiple client components. Clients request services from the
server and the server provides relevant services to those clients. Furthermore, the server
continues to listen to client requests.
Usage
Online applications such as email, document sharing and banking.
Client-server pattern
Document Page
3. Master-slave pattern
This pattern consists of two parties; master and slaves. The master component
distributes the work among identical slave components, and computes a final result from
the results which the slaves return.
Usage
In database replication, the master database is regarded as the authoritative
source, and the slave databases are synchronized to it.
Peripherals connected to a bus in a computer system (master and slave drives).
Master-salve pattern
Document Page
4. Pipe-filter pattern
This pattern can be used to structure systems which produce and process a stream of
data. Each processing step is enclosed within a filter component. Data to be processed is
passed through pipes. These pipes can be used for buffering or for synchronization
purposes.
Usage
Compilers. The consecutive filters perform lexical analysis, parsing, semantic
analysis, and code generation.
Workflows in bioinformatics.
Pipe-filter pattern
tabler-icon-diamond-filled.svg

Secure Best Marks with AI Grader

Need help grading? Try our AI Grader for instant feedback on your assignments.
Document Page
5. Broker pattern
This pattern is used to structure distributed systems with decoupled components. These
components can interact with each other by remote service invocations.
A broker component is responsible for the coordination of communication
among components.
Servers publish their capabilities (services and characteristics) to a broker. Clients
request a service from the broker, and the broker then redirects the client to a suitable
service from its registry.
Usage
Message broker software such as Apache ActiveMQ, Apache
Kafka, RabbitMQ and Jboss Messaging
Broker pattern
Document Page
6. Peer-to-peer pattern
In this pattern, individual components are known as peers. Peers may function both as
a client, requesting services from other peers, and as a server, providing services to other
peers. A peer may act as a client or as a server or as both, and it can change its role
dynamically with time.
Usage
File-sharing networks such as Gnutella and G2)
Multimedia protocols such as P2PTV and PDTP.
Cryptocurrency-based products such as Bitcoin and Blockchain
Peer-to-peer pattern
Document Page
7. Event-bus pattern
This pattern primarily deals with events and has 4 major components; event
source, event listener, channel and event bus. Sources publish messages to particular
channels on an event bus. Listeners subscribe to particular channels. Listeners are
notified of messages that are published to a channel to which they have subscribed
before.
Usage
Android development
Notification services
Event-bus pattern
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
8. Model-view-controller pattern
This pattern, also known as MVC pattern, divides an interactive application in to 3 parts
as,
1. model — contains the core functionality and data
2. view — displays the information to the user (more than one view may be defined)
3. controller — handles the input from the user
This is done to separate internal representations of information from the ways
information is presented to, and accepted from, the user. It decouples components and
allows efficient code reuse.
Usage
Architecture for World Wide Web applications in major programming languages.
Web frameworks such as Django and Rails.
Model-view-controller pattern
Document Page
9. Blackboard pattern
This pattern is useful for problems for which no deterministic solution strategies are
known. The blackboard pattern consists of 3 main components.
blackboard — a structured global memory containing objects from the solution
space
knowledge source — specialized modules with their own representation
control component — selects, configures and executes modules.
All the components have access to the blackboard. Components may produce new data
objects that are added to the blackboard. Components look for particular kinds of data on
the blackboard, and may find these by pattern matching with the existing knowledge
source.
Usage
Speech recognition
Vehicle identification and tracking
Protein structure identification
Sonar signals interpretation.
Blackboard pattern
Document Page
10. Interpreter pattern
This pattern is used for designing a component that interprets programs written in a
dedicated language. It mainly specifies how to evaluate lines of programs, known as
sentences or expressions written in a particular language. The basic idea is to have a clas
for each symbol of the language.
Usage
Database query languages such as SQL.
Languages used to describe communication protocols.
Interpreter pattern
tabler-icon-diamond-filled.svg

Secure Best Marks with AI Grader

Need help grading? Try our AI Grader for instant feedback on your assignments.
Document Page
Advantages and Disadvantages of the above mentioned architectural types
Submitted by,
20MIS1072,
Ganasala Sri Sai Prasanna.
chevron_up_icon
1 out of 11
circle_padding
hide_on_mobile
zoom_out_icon
logo.png

Your All-in-One AI-Powered Toolkit for Academic Success.

Available 24*7 on WhatsApp / Email

[object Object]