Distributed Systems - Assignment 1
will be discussed on November 7
- Give an example of a URL.
- List the three main components
of a URL, stating how their boundaries are denoted and illustrating
each one of your example.
- To what extent is a URL location
- List the three main software
components that may fail when a client process invokes a method in
a server object, giving an example of a failure in each case.
- To what extent are these failures
independent of one another?
- Suggest how the components
can be made to tolerate one another's failures.
- Describe and illustrate the
client-server architecture of one or more major Internet applications
(for example, the Web, email or netnews).
- Distinguish between buffering
- Give some examples of faults
in hardware and software that can/cannot be tolerated by the use of
redundancy in a distributed system.
- To what extent does the use
of redundancy in the appropriate cases make a system fault-tolerant.
- The following picture shows
the overall architecture of a very simple telephony system:
The boxes denote the
different concurrent processes in this system. The environment of the
telephone switch consists of phones A and B. Each one of the phones
has a software process in the switch corresponding to it, called the
phone handler. Assume that the phones communicate with the phone handlers
via message exchanges through a priori unbounded channels, as do the
phone handlers amongst each other. The arrows indicate possible messages
that can flow between the phones and the phone handlers, and between
the phone handlers. Informally, the meaning of these messages is as
We want to focus on an asymmetric
call processing system, i.e., only A can call be, and not vice versa.
Assume that the system is a layered protocol architecture: the messages
exchanged between the switch and the phones correspond to service requests,
while the messages exchanged between processes correspond to a protocol
in order to provide this service. (Actually, this may be a telephony-over-IP
network, and hence the signalling messages between the phones may be
exchanged as TCP messages over an IP network.)
- off_h: a phone goes off
hook (the receiver is being picked up)
- dial_tone: the switch sends
a dial tone to the phone
- dial_B: phone A enters the
phone number of B
- audible_ring: phone A hears
phone B ringing
- busy: the switch applies
a busy signal to the phone
- stop_aud_ring: the switch
stops the audible ringing signal
- on_h: a phone goes on_hook
- note that either one of the phones can go on hook at any time
when it is not already on hook
- ringing: a phone starts
- con_req: one phone handler
requests a connection with another phone handler
- con_conf: the other phone
handler acknowledges the connection request (B is not busy) and
A starts hearing an audible ring tone
- con_establish: B has picked
up and the connection is now established
- dis_req: phone handler B
requests disconnect from phone handler A
- disconnectAB: phone handler
A requests disconnect from phone handler B (Note: in the above Figure
there should be an additional arrow labeled "disconnectAB" from
phone handler A to phone handler B and a "disconnectBA" arrow in
the opposite direction as well as a "busy" arrow from phone handler
B to phone B; B will hear a busy tone when A hangs up, as will A
if B hangs up)
- Using communicating finite
state machines, model the behaviour of the protocol machines in
the phones A and B. Say exactly which parts of the formal definition
given in class corresponds to which set.
- Add the behaviour of the
phones A and B.
- Is any of the communication
channels in the system bounded?
- Can you find a deadlock
situation in the system?