Introduction to COMP0133
UCL Course COMP0133: Distributed Systems and Security LEC-00
Distributed Systems
Disadvantages of Centralized System
- 
    Single point of failure 
- 
    Finite resource \( \implies \) Overload 
One Reason for Distributed System: Avaliability
Method: Replicate data on several servers
Aims:
- 
    Reachability: increasing possibility to access one usable server independent probabilities of a single failure 
Problems:
- 
    Consistency? - What if servers have different data, client should choose which one to trust? 
- 
    Latency? - What if replicas are made far apart? (long round trip time \( \implies \) poor user experience) 
- 
    Partition Resilience? - What if one seat remain on plane is bought twice due to partition? 
Trade-off between Availability and Consistency
Another reason for Distributed System: Scalable Capacity
Method: Spread users across several servers
Aims:
- Linear Scaling: \( U \) users per box \( \implies \) \( N \) boxes support \( NU \) users
Problems:
- 
    Bottlenecks? What if all users’ inbox are set on one server? 
- 
    Scaling? How to close to linear? 
- 
    Load Balance? What if some users get more emails than others? 
Hard to Design Distributed Systems
- 
    Failure: Hosts, Network … (which one fails?) 
- 
    Heterogeneity 多相性: Different data representations (Big Endian or Little Endian) 
- 
    Need consistency (specific definitions for different applications) 
- 
    Need concurrency for preformance (waiting synchronously \( \implies \) resource idle) 
Security
Before Internet
- 
    Encryption and Authentication using cryptography 
- 
    Communication between parties known each other 
Internet Era
- 
    Potential attackers all over the Internet 
- 
    Parties have no prior relationship 
- 
    Cryptography will not enough to solve all problems (e.g., software vulnerabilities…) 
