Lecture 15 - Architectural Styles 2

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 14

1

>

Architectural Styles

Dr. Anıl Koyuncu


>Plugin
The architecture defines explicit
extension points so that the system
can be customized or even
dynamically composed out of plugins

Static (deployment/installation) vs
Dynamic (without restarting the
system)

2
>Plugin
Recursive: Plugins get extended by
other plugins
Ecosystem: the system becomes a
platform where alternative plugins
compete
Qualities:
• Dynamic Extensibility, High
Customizability, Lower Security
Examples:
• Browser Extensions, Eclipse, Game Mods

3
>Event-Driven
Elements communicate by producing
events and reacting to produced by other
elements

Messages: events that carry data


Signals: events that transfer control
Qualities: Loose Coupling
Examples: Sensor Monitoring, Complex
Event Processing

4
>Publish/Subscribe
Event Driven system where
elements are coupled by
subscriptions and receive
notifications when some
interesting event happens.

5
>Publish/Subscribe
Subscription Models: Queues/Topics
or Content
Message delivery: Push or Pull
Qualities:
• Loose Coupling, (Limited) Scalability
Examples:
• Email, Financial News Tickers, Twitter,
RSS Feeds

6
>Client/Server
One or more clients send requests
to the server, which processes them
before sending them back to a
response.

Client = Active, Server = Passive


Layering: 2-Tier, 3-Tier, N-Tier

7
>Client/Server
Clients are closer to the user, Servers are
closer to the data

Qualities:
• Scalability, Security, Availability

Examples:
• Web Browsers/Servers, Databases, File
Servers, SVN,

8
>Peer to Peer (P2P)
There is no central server as all elements
can both act as client and server and send
one another requests and response
messages.

9
>Peer to Peer (P2P)
Churn: peers may join and leave the system at
any time
Qualities:
• Scalability, Dependability (No single point of failure)
Examples:
• File Sharing, Communication, Distributed Hash
Tables, Bitcoin

10
>Data Centric
The system store and manages its persistent
state using some king of database (layered)

A database is used to share state among


multiple elements (blackboard)

Qualities:
• Persistence, Consistency
Examples:
• Relational DBs, Key-Values Stores, XML DBs,
Graph DBs
11
>Virtual Machine
Layered system where the
virtual machine layer
completely hides the real
execution environment to
ensure the portability of the
layers above.

Synonyms:
• Virtualization, Hypervisor

12
>Virtual Machine
Software packaging and
delivery mechanism:
• VM images, virtual appliances

Qualities:
• Portability, Dynamic Migration,
Security (Sandboxing, Isolation)
Examples:
• JavaVM, VirtualBox,
Infrastructure-as-a-Service
Clouds

13
>Rule Based
Layered system where events are handled
by following rules which can be
dynamically triggered from external
elements or from the rules themselves.

Qualities:
• Evolvability
Examples:
• Expert Systems, Automated Reasoners,
Business Rule Engines

14

You might also like