Midterm:
1 Characterization of distributed systems
1.1 Write a definition of a distributed system!
1.2 How to characterize a distributed system? (name 3 key properties)
1.3 Give some examples of distributed systems! (5 examples, upto 1 sentence to describe each)
1.4 Name the shared resources in distributed systems? Give examples!
1.5 What are the main challenges with distributed systems? (Just name them, please here!)
1.6 What is the most important property of an open system?
1.7 What are the three components in security?
1.8 Describe, what is quality of service (QoS)? Main nonfunctional properties of systems that affect QoS.
1.9 Case study: The World Wide Web as a Distributed System
2 System models
2.1 What are the three basic ways to describe distributed systems?
2.2 What are difficulties and threats for distributed systems?
2.3 Give an overview of physical models
2.4 Overview of architectural models -- architectural elements
2.5 Overview of architectural models -- architectural patterns
2.6 Define platform for a distributed system
2.7 Define distributed system middleware
2.8 Describe two-tier and three-tier architectures (You can draw 2 pictures, for example...)
2.9 What is a Thin client?
2.10 What is the proxy pattern?
2.11 Describe the Reflection pattern?
2.12 Name the three fundamental models of distributed systems!
2.13 Give a description of the interaction model!
2.14 Give a description of the failure model!
2.15 Give a description of the security model!
3 Networking and internetworking
3.1 Give an overview of distributed systems from the historical perspective of development of network technologies!
3.2 Networking issues for distributed systems: Performance, Scalability, Reliability, Security, Mobility, Quality of Service (Describe each of these with up to 3 sentences!)
3.3 Name and describe the types of networks
3.4 How are IP, TCP and UDP related to each other?
4 Interprocess communication
4.1 Describe UDP datagram communication
4.2 Describe TCP stream communication
4.3 Describe in general external data representation and marshalling
4.4 Describe Extensible Markup Language (XML)!
4.5 Describe Multicast communication!
4.6 Give a short overview of MPI (The Message Passing Interface)! (description, 4 types of MPI calls, MPI basic subroutines (6), blocking vs. non-blocking operations)
5 Remote invocation
5.1 Descibe failure model of the request-reply protocol using UDP datagrams!
5.2 Descibe failure model of the request-reply protocol using TCP streams!
5.3 What are the design issues with remote procedure call (RPC)?
5.4 How is RMI (Remote Method Invocation) related to RPC?
5.5 What are the main issues when going from the object model to distributed object model? (... + replication, migration, remote interfaces...)
5.6 Describe the role of proxy, dispatcher and skeleton in remote method invocation (you can also draw a picture in addition to the descriptions...)
5.7 Describe Java RMI!
6 Indirect communication
6.1 What is Space uncoupling and time uncoupling in case of indirect communication?
6.2 What are the main issues with group communication?
6.3 Give an overview of publish-subscribe systems! (+ applications of publish-subscribe systems; the programming model; subscription (filter) model, ...)
6.4 Describe the Message queues system!
6.5 Describe the distributed shared memory abstraction!
6.6 Describe the tuple space communication (What are tuples, tuple space, Linda, JavaSpaces, ...)
7 Operating systems support
7.1 Describe the multithreading, give examples.
7.2 Describe the multiprocessing, give examples.
7.3 What is the difference between thread and process.
7.4 Describe the synchronization and data sharing.
7.5 What are the main differences in synchronization for threads and processes.
7.6 What thread programming patterns you know? how they are different ?
Be also prepared to draw interaction diagrams -- for example for client-server with steteful/stateless protocol, producer-consumer/delegation pattern etc.
Final Exam:
9 Web Services
9.1 Give a general overview of Web Services!
9.2 Describe SOAP based Web Services!
9.3 Give an overview of RESTful Web Services!
9.4 What is WSDL?
10 Peer-to-peer Systems
10.1 Give a short description of a peer-to-peer system!
10.2 Describe centralized vs decentralized P2P systems!
10.3 Elaborate on functional and non-functional requirements of P2P middleware!
10.4 What is DHT ? what problem does it solve ?
10.5 What is an overlay network ? Bring examples.
10.6 How the complex network topology can affect the peer-to-peer system ?
11 Security
11.1 What are the three broad classes of security threats. Name and define them!
11.2 What are the methods of attack towards message channels? Name (5) and define/describe each of them separately!
11.3 What is non-repudiation?
11.4 Name the six worst-case assumptions and design guidelines for secure distributed systems!
11.5 What is the difference in performance of public-key encryption algorithms compared with secret-key algorithms?
11.6 Describe (or draw a diagram of action) a scenario of secret communication with a shared key! (2 steps) Name two problems that one can face with this scenario!
11.7 Describe (or draw a diagram of action) a scenario of authenticated communication with a server! (5 steps)
11.8 Describe (or draw a diagram of action) a scenario of authenticated communication with public keys to enable Bob and Alice to establish a shared secret key K_{AB}! (3 steps)
11.9 What is a certificate?
11.10 How to describe symmetric cryptographic algorithms?
11.11 How to describe asymmetric cryptographic algorithms?
11.12 What are block ciphers?
11.13 What is cipher block chaining (CBC)? (Describe what is done during encription and decryption!)
11.14 What is the functional property of a stream cipher?
11.15 Describe the Shannon's principles of confusion and diffusion (to conceal the content of a ciphertext block M, combining it with a key K of a sufficient size to render it proof against brute-force attacks)!
11.16 Name some symmetric-key algorithms!
11.17 Outline the (three) key steps in RSA public-key algorithm!
11.18 Draw an outline of Kerberos system architecture!
12 Distributed File Systems
12.1 Elaborate on distributed file system requirements
12.2 Outline a distributed file service architecture
12.3 Describe Sun Network File System
13 Name Services
13.1 What is a Name Space ? What are the features of a Name Space ?
13.2 What is a Name Service ? What are the typical operations on it ?
13.3 What issues are solved by applying the hierarchy in the name space ?
13.4 What is the difference between iterative lookup and recursive lookup in terms of DNS ?
13.5 What is caching in terms of DNS ?
13.6 What is the feature of LDAP which makes it more advanced Name Service (if compared to NIS or DNS)
14 Coordination and agreement
14.1 Time and global state: Discussion on Physical clocks
14.2 Time and global state: Describe Logical clocks; Lamport clocks
14.3 Time and global state: Describe Global state, why do we need it? Snapshot algorithm of "Chandy and Lamport"
14.4 Coordination and agreement: Distributed mutual exclusion using multicast and logical clocks + example
14.5 Coordination and agreement: Elections; Describe the bully algorithm for mutual exclusion + an example.
14.6 Coordination and agreement: Consensus; Byzantine generals problem.
14.7 Distributed transactions: Describe Transactions. Two phase commit protocol + example
15 Case study: Google
15.1 What are the Google general choice policies for distributed systems and services
15.2 Describe Google GFS
15.3 Describe Google Chubby
15.4 Describe Google Bigtable
15.5 Give an overview of Google's distributed computation services
16. Big data
16.1 When can you say that you are facing Big Data problem?
16.2 What is the characteristic of stored data nowadays?
16.3 What are the four “V” Characterizations of Big Data?
16.4 Describe MapRedcue process?