1. What is the definition of a distributed system?
1. A distributed system is a collection of independent
computers that appears to its users as a single
2. What are the four goals should be met when
you design a distributed system?
– The four important goals are
• A distributed system should easily connect users to
• It should hide the fact that resources are distributed across
• It should be open.
• It should be scalable
3. Explain what is meant by distribution
transparency, and give examples of
different types of transparency.
See Tanenbaum’s book (2002 version) page
Hide differences in data representation and how a
resource is accessed
Location Hide where a resource is located
Migration Hide that a resource may move to another location
Hide that a resource may be moved to another
location while in use
Replication Hide that a resource may be replicated
Hide that a resource may be shared by several
Failure Hide the failure and recovery of a resource
Hide whether a (software) resource is in memory or
Different forms of transparency in a distributed system.
Definition: A DS that is able to present itself to users and applications as if it
were only a single computer system is said to be transparent
4. What is an open distributed system and
what benefits does openness provide?
• An open distributed system is a system that offers
services according to standard rules that describe the
syntax and semantics of those services.
• Openness means that the system can easily be
extended and modified.
• To facilitate the openness, the system should have a
well defined and well-documented interfaces. These
interface must declare the services that a component
offers. And these interfaces are often described in an
Interface Define Language (IDL)
• A service is an operation that a component performs on
behalf of a user or another component.
• The interface definition should be complete and neutral.
– Complete means that everything that is necessary to make an
implementation has indeed been specified.
5. What is the difference between a
multiprocessor and multi-computer?
See Tanenbaum’s book (2002 version) page
28, second paragraph
6. What is the difference between a distributed operating
system and a network operating system?
See Tanenbaum’s book (2002 version) page 36. Here you can
find the main difference is that the Network OS provide the
collection of independent computers, but does not provide the
transparency, vice versa Distributed OS provide the
transparency but not the collection of independent computers.
7. What is a three-tiered client-server architecture?
8. What is the difference between a vertical distribution
and a horizontal distribution?
See Tanenbaum’s book (2002 version) page 50~53 to find
the answers of last two questions.
Multitiered Architectures (2)
• An example of a server acting as a client.
• An example of horizontal distribution of a Web service.
9. The client-server application is used to be
divided into three levels, what are they? Give
See Tanenbaum’s book (2002 version) page 46~50,
especially page 49.
10. For the two-tiered architecture of client-server
model, list the possible alternative
organizations. Can you give an example for
See Tanenbaum’s book (2002 version) page 50~51.
• The general organization of an Internet
search engine into three different layers
11. Name five reasons why to build distributed
Scalability, openness, heterogeneity, fault-tolerance
and resource access and sharing.
12. What is the difference between a client/server
and a distributed system
In a client/server model, clients use the services
offered by the server components. In a distributed
system a server component can be the client
component of another server component, leading to
a n-tier architecture.
13. Is a three-tier architecture a distributed system
14. Why do we not build every system as a distributed
Not all systems are distributed by nature. In some cases the
hardware and the implementation language are completely
homogenous and are all physically based in the same location.,
in which case no advantages would be gained by building it as a
15. What is the relationship between requirements
engineering and distributed systems?
Requirements engineering is the first step of software
development for distributed systems. It specifies all the
functional and non-functional requirements of the application.
16. What are the eight dimensions of
transparency in distributed systems?
Access, Location, Migration, Concurrency,
Replication, Failure, Performance,
17. What can the transparency dimensions
be used for?
It hides the complexities of distributed
systems, offering the user a single
19. What is the difference between location and access
Access transparency states that method invocations to local
and remote objects interfaces must seem identical to the user.
Location transparency states that components should be able to
be identified in a manner non-dependent on their physical
20. What are the differences between performance and
Performance transparency is viewed from the perspective of a
single request, whereas scalability transparency considers how
the system behaves if more components and more concurrent
requests are introduced.