Distributed Systems - staff.city.ac.uk

Download Report

Transcript Distributed Systems - staff.city.ac.uk

Distributed Systems
- Revision Christos Kloukinas
Dept. of Computing
City University London
© City University London, Dept. of Computing
Distributed Systems / Revision - 1
How To
 First get the past exam(s), to get a better idea of what the exam
will be like.
 Fast revision: For each session, read:
» Its introduction;
» Its summary; and
» Its summary that is at the beginning of the next session!
 Then read each session and try to come up with questions for
them of your own.
 Answer these questions & those in the past exam(s)
 Feel free to collaborate on this – use Moodle.
» I will be correcting any wrong answers in Moodle (but not
providing correct answers to begin with)
» Won’t post for a few days before the exam – don’t leave it for
too late!
© City University London, Dept. of Computing
Distributed Systems / Revision - 2
Session 1 – Motivation
1.
2.
3.
4.
5.
What is a Distributed System
Why bother with them? Non-Functional Reqs
Examples of Distributed Systems
Common Characteristics
Summary
»
What is a distributed system and how does it
compare to a centralised system?
»
What are the characteristics of distributed
systems?
What are the different dimensions of transparency?
How do they depend on each other?
»
»
© City University London, Dept. of Computing
Distributed Systems / Revision - 3
Session 2 – Distributed SW Eng.
 Distributed Systems consist of multiple
components.
 Components are heterogeneous.
 Components still have to be interoperable.
 There has to be a common model for
components, which expresses
» component states,
» component services, and
» interaction of components with other
components.
© City University London, Dept. of Computing
Distributed Systems / Revision - 4
Session 3 – Communication in DS
 What communication primitives do distributed
systems use?
(OSI stack)
 How are differences between application and
communication layer resolved? (XDR/ASN)
 What quality of service do the client/server
protocols achieve?
(M/LO/MO/EO)
 What quality of services are involved in group
communication?
(Best Eff./K-Rel/Tot. Ord./Atomic)
 The CORBA event management. (Push vs Pull)
© City University London, Dept. of Computing
Distributed Systems / Revision - 5
Session 4 – RMI





Motivation and Introduction to Java RMI
Conceptual Framework
RMI Details
Example Implementation
Summary & Critique of RMI
© City University London, Dept. of Computing
Distributed Systems / Revision - 6
Session 5 – CORBA
 Introduction
 Object Management Architecture
 CORBA Communication
 Implementation, “Hello World” Example
 RMI vs CORBA Comparison
© City University London, Dept. of Computing
Distributed Systems / Revision - 7
Session 6 – Programming in CORBA
1. Poly-lingual applications
2. Standardisation of bindings
3. What bindings need to address
4. An example: IDL/Java
 How does each IDL construct map to Java?
5. Object LifeCycle
© City University London, Dept. of Computing
Distributed Systems / Revision - 8
Session 7 – Naming & Trading
1 Location Transparency: A reminder
2 Naming
3 Trading
 Location Transparency requires other forms of
identification than physical addresses.
 Naming services provide facilities to give external
names to components.
 Trading services match service types requested
by clients to servers that can satisfy them.
© City University London, Dept. of Computing
Distributed Systems / Revision - 9
Session 8 – Concurrency
 Lost updates and inconsistent analysis.
 Pessimistic vs. optimistic concurrency control
» Pessimistic control:
– higher overhead for locking.
+ works efficiently in cases where conflicts are likely
» Optimistic control:
+ small overhead when conflicts are unlikely.
– distributed computation of conflict sets expensive.
– requires global clock.
» Can you compute validation sets and conflicts?
 CORBA uses pessimistic two-phase locking.
© City University London, Dept. of Computing
Distributed Systems / Revision - 10
Session 9 – Transactions
 Transaction concepts:
» ACID – Can’t do without it…
» Transaction commands (begin, (vote), commit, abort)
» Roles of distributed components in transactions
 Two-phase commit
» phase one: voting
» phase two: completion
 CORBA Transaction Service
» implements two-phase commit
» needs resources that are transaction aware.
© City University London, Dept. of Computing
Distributed Systems / Revision - 11
Session 10 – Security
 Threats, Methods of Attack, Infiltration
 Cryptography:
» Symmetric (Secret) Keys (e.g., DES, AES)
» Asymmetric (Public-Private) Keys (e.g., RSA)
 Authentication: Needham/Schroeder Protocol
 Systems:
» Kerberos, CORBA
© City University London, Dept. of Computing
Distributed Systems / Revision - 12