System Architectures
Centralization vs. Decentralization
Centralized Organizations
Simple Client-Server Architecture: client server
Request-reply behavior
Multitiered Architectures
two-tiered architecture: client machine and server machine
User interface
Application
Database
three-tiered architecture: a server also acts as a client
Client
Application server
Database server
Decentralized Organizations
Concepts
Vertical Distribution
Placing logically different components on different machines.
Horizontal Distribution
A client or server may be physically split up into logically equivalent parts, but each part is operating on its own share of the complete data set, thus balancing the load.
Peer-to-peer (P2P) systems support horizontal distribution.
Peer-to-Peer (P2P) Systems
The processes that constitute a P2P system are all equal.
Each process will act as a client and a server at the same time (acting as a servant)
Overlay Network
A network in which the nodes are formed by the processes and the links represent the possible communication channels (TCP connections).
Structured Peer-to-Peer Systems
Nodes are organized in an overlay that adheres to a specific, deterministic topology: a ring, a binary tree, a grid, etc.
The topology is used to look up data by its key
Distributed hash table (DHT)
key(data_item) = hash(data_item_value)
existing_node = lookup(key)
Unstructured Peer-to-Peer Systems
Each node maintains an ad hoc list of neighbors.
Data lookup requires searching
Flooding: a node sends the request to all its neighbors (expensive)
Random walks: a node asks a randomly chosen neighbor (takes longer time)
Last updated