02 Lecture-02-Architectural Styles
02 Lecture-02-Architectural Styles
Architecture Styles
123-9475775 84775.99 …
Data Structure Data Model
01010101 0xFFFFEBAAA …
System Pattern: presents the macroscopic system pattern for software applications, such as batch
processing system, Web service architecture, SOA, cloud computing architecture, mobile application
system, etc.
Architecture Pattern: the architectural patterns used to design and build the software
applications/systems, such as filter-pipe, C/S, B/S, MVC, broker, three-tier arch, etc.
Component Pattern (design pattern): the design reuse of class/module that carries certain
type of structure and behavior
Data Model: the abstraction of data records through data structure design that can be used for further
processing and manipulation
1. Client Server
-- scalability is an issue at the server
Three tier architecture
-- Split the server
-- server-> web server-> application server
Client
Multi-tier architecture
Applications
•Web Applications - client is a web browser and the server is a web server that provides data
and services to the client.
•Database Systems - a database client application and the server is a database server that
provides data storage and retrieval services to the client.
•Gaming Systems - the client is a game client application and the server is a game server that
provides game logic and data to the client.
•Messaging Systems - the client is a messaging client application and the server is a
messaging server that provides message storage and delivery services to the client.
•File Sharing Systems - such as FTP and BitTorrent, where the client is a file transfer client
application and the server is a file transfer server that provides file storage and retrieval
services to the client.
Applications
Domain-Specific
Services
Common
Middleware Services
Distribution
Middleware
Host Infrastructure
Middleware
Hardware Layer
layered architecture
Layered architecture
3. Pipe-Filter
• Every functional unit has a group of input/output interface.
• functional blocks: Filters
• output/input connections: Pipes
• Filter is an independent unit that has no interactions with other filters
• Filter is also an stateless running unit that does not have impact to
other filter’s state.
Application
•Compiler Design - to break down the compilation process into a series of independent
steps, such as lexical analysis, syntax analysis, and code generation.
Applications
•Embedded Systems - such as automotive systems, medical devices, and industrial control
systems, where reliability, safety, and real-time performance are critical.
•Operating Systems - such as QNX and MINIX, to provide a modular and extensible platform
for building complex systems.
•Cloud Computing - such as OpenStack and Cloud Foundry, to provide a flexible and scalable
infrastructure for deploying and managing applications.
•Mobile Devices - such as Android and iOS, to provide a secure and efficient platform for
running applications.
•Network Infrastructure - such as routers and switches, to provide a modular and scalable
platform for handling network traffic.
Request-based model
Broker topology
Trade-off of the broker topology
• The broker communicates the event notification directly to the event processors. Since
nothing is asynchronous, no event queue is required. At the end of each process,
notification of completion is issued by the event processors.
Mediator topology
• The choice between the broker and mediator topology essentially comes down to a trade-
off between workflow control and error handling capability versus high performance and
scalability.
• For example at Fort Knox, many things must happen instantly and some
later on. These include a complex series of time-critical events such as
alerts to enforcement personnel, shutting of emergency doors, lights
coming on, and warning siren.
Getinet Y. and Rebira G. 44
Architecture Styles
Some of the application areas of event-driven software architecture include:
1. Internet of Things (IoT) - used in IoT applications to handle the large volume
of data generated by sensors and devices.
2. Financial Services - used in financial services to handle real-time trading, risk
management, and fraud detection.
3. E-commerce - used in e-commerce applications to handle real-time inventory
management, order processing, and payment processing.
4. Healthcare - used in healthcare applications to handle real-time patient
monitoring, alerting, and diagnosis.
5. Gaming - is used in gaming applications to handle real-time game events, such
as player movements, actions, and interactions.
6. Social Media - used in social media applications to handle real-time user
interactions, such as likes, comments, and shares.
Getinet Y. and Rebira G. 45
Architecture Styles
Thanks !