Lecture 15 - Architectural Styles 2
Lecture 15 - Architectural Styles 2
Lecture 15 - Architectural Styles 2
>
Architectural Styles
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
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.
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)
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