Distributed Systems : Exercise 1

1. Describe in your own words what the concept of (distribution) transparency
means within the context of this course. Study the different transparency
categories (as categorized in the RM-ODP standard, lecture slide 13 in slide
chapter 1).

For each category, give an example situation where that kind of transparency is
beneficial to user experience. Can you think of situations where the particular
kind of transparency could be problematic or costly to implement?

2. When distributing an application, horizontal distribution would involve
replicating the data (and storing each replicate on a different server), while
vertical distribution would involve partitioning it (and storing different parts
of the data on different servers).

As an example, consider the service provided by the Domain Name System (DNS):
translating Internet names to their numeric addresses. What would be the
advantages and disadvantages of horizontal or vertical distribution from the
points of view of
a) availability,
b) reliability (what would be a good definition of 'reliability' in this case?)
c) performance (in terms of updating and reading), and
d) scalability?

3. Among other things, distribution aims to make resources easily accessible and
shareable to users in a scalable and fault tolerant way. Consider the impact
that distribution as an approach has had on file sharing as a service.

What are the main differences to the traditional approach of having a single
centralized server serve the files? Identify some real-world examples of
more or less centralized and distributed services.

Can you identify any patterns between environment, design requirements and
assumptions for a given file sharing service and the choice between centralized,
distributed (or partially distributed) system implementation?

4. The IRC (Internet Relay Chat) distributed system consists of multiple servers
and clients connected to them. Within a given network (e.g. IRCnet), all clients
subscribed to the same channel (e.g. #distsys) receive the same messages in the
same order when the system operates normally, independent of which IRC server
they are connected to.

For further information see e.g. http://en.wikipedia.org/wiki/IRC

Analyze the benefits and downsides of a distributed IRC in comparison to the
theoretical situation that its ca. 500 000 users were connecting to a single
centralized chat server in terms of
a) scalability and performance,
b) availability and reliability,
c) openness, security and user acceptance.

5. Peter Deutsch formulated 8 common false assumptions that everyone makes when
developing a distributed application for the first time (course book page 16,
slide 24 from set 1).

For each assumption, describe an example where a system designed based on these
assumptions can spectacularly fail to provide the intended quality of
service. In short: What can go wrong?