Module 2a - Architecture Flashcards
What is a component
A modular unit with well-defined interfaces.
Is isolatable and does not rely on the existence of other components to function
What is a connector
A mechanism that mediates communication, coordination, or cooperation among components
What is “software architecture”
The way that software components are organized
What is “system architecture”
Instantiation of software architecture in which software components are placed in real machines
What is an “Autonomic System”
A system which adapts to its environment by monitoring its own behaviour and reacts accordingly
What are the 4 typical architectural styles which distributed software systems conform to?
- Layered
- Object Based
- Data Centered
- Event Based
What is Layered architecture?
Control flows from layer to layer: Requests flow down the hierarchy and responses flow up the hierarchy.

<p></p>
<p></p>
<p></p>
<p>How do primitive client-server patterns work?</p>
<p></p>
<p></p>
<p></p>
<p>A component (client) requests a service from another component (server) and waits for a response (unless it is a asynchronous request)</p>

<p></p>
<p></p>
<p>What are the 3 fundamental layers that enterprise systems typically organized into?</p>
User interface (Client Application / Front End) Application Server (Back End) Database Server
<p></p>
<p></p>
<p>What is Vertical distribution?</p>
<p></p>
<p></p>
<p>When logical layers of a system are organized as separate physical tiers on the same machine</p>
What is Horizontal distribution?
When one logical layer is split across multiple machines. Also known as sharding
What is Object-based Architecture?
When components are organized in as objects
What is Data-centered architecture?
Components communicate by accessing a shared data repository such as a database, storage system, or file system
What is Event-based architecture?
Components communicate by propagating events. Publish/Subscribe systems are used for communicating asynchronous events

What are peer-to-peer (P2P) systems?

They rely on horizontal distribution and are designed to deal with churn (machines joining and leaving).
Processes are organized in an overlay network that defines a set of communication channels
What is a self-managing system
They are systems which are constructed using a feedback control loop that monitors system behaviours and adjusts the systems internal operation based on this
BitTorrent combines client-server and P2P architectures. How does it work?
Client nodes obtain tracker information from a server and then exchange data with peer nodes.
Web server makes API call to File Server which makes API call to tracker service which tracks the state of the network nodes (P2P nodes)