Unit 12 Flashcards
Exercise 1
Even if the system is not mobile, wireless sensor networks are usually ad-hoc. Why?
Being ad-hoc allows the network to automatically accommodate the addition and removal of sensors. Moreover, ad-hoc networks are more robust to node failure, which in this case means that routing can dynamically bypass any sensors that are not working.
Exercise 2
Recalling what you learned in Unit 10, can you think of a security problem related to the mobile node’s transmission of its new care-of address to the home agent?
One security problem is authentication, in order to assure the home agent that the new address is indeed coming from the mobile node. Otherwise, a hostile node could pose as the mobile node and transmit its own address to the home agent and therefore start getting all communication intended for the mobile node.
Exercise 3
Discuss whether Via Verde, the London congestion charge system and active badges
fit our definitions of mobile systems and mobile computing.
All of these systems are mobile in the general sense because essential components
(i.e. the vehicles and badges) do not have a fixed location. In particular, the systems
detect when those components enter a controlled area, be it a motorway, central
London or an office. However, no computation takes place in the mobile components:
even in the case of Via Verde, the RFID device just receives and transmits a small
amount of data. And in the case of the congestion charge system, there is not even
wireless communication: it is definitely not a mobile computing system. Neither are active badges, due to the lack of any data processing on the badge. However,
Via Verde may be considered on the borderline, depending on whether we view
RFID devices capable of data input and output as computational devices.
SAQ 2
Mobile code has already appeared in previous units. Give an example.
A typical example of mobile code is an applet (Unit 9, Subsection 3.1), which is
transferred from the server to the client’s machine and executed there.
Exercise 4
Can you explain in more detail what is meant by computation requiring the co-location of execution unit, code and resources?
A distributed system consists of multiple execution units (processes and threads)
executing concurrently in different hosts. However, each process or thread can only
execute local code on local data. If the data is not available, usually the process sends
a request to another execution unit and suspends while the other execution unit
computes the necessary data. In the example mentioned, the application in the server
machine does not manipulate directly the database tables in the other host. Instead,
the application sends queries to a database manager, which executes them locally on
the database and returns the results. The application then continues the computation
with a local representation of the data, e.g. entities (Unit 7, Subsection 4.3)
SAQ 3
Briefly skim again the computation engine example presented in Unit 7, Subsection
it allowed tasks, like the computation of the factorial, to be submitted to the server.
Instead of implementing all possible tasks beforehand, the server just defined an
interface Task with a method compute, delegating the implementation to the client,
according to its needs. The computation engine consists of a single generic
remote method execute that takes a Task object as parameter and calls the compute method on the object. In the example, the client implements the interface
through the class Factorial, instantiates it for a particular value, and then passes the
Factorial object as an argument of the remote call to execute. Explain why the
computation engine and its clients are an instance of the remote evaluation paradigm.
This is a typical remote evaluation scenario, because the task’s methods are defined by
the client but executed by the computation engine on the server. In the concrete
example, when the computation engine receives a Factorial object for the first time,
it loads the class (i.e. the methods’ code) into the server’s JVM, using the codebase
property to locate the Factorial class on the client. Now the computation engine
is able to run locally the compute method of the class Factorial and return the result to
the client.
Exercise 5
Does the classification of class loading as code on demand contradict the answer to SAQ 3?
No, because the classification of an interaction depends on the scope of the interaction
and, more importantly and as the figures above show, which side is starting it. In the case of the computation engine example, the overall interaction between the client
and the server is a remote evaluation, but it includes a code on demand interaction.
In fact, once the server gets the first request, it has to get the Factorial code
from the client: server and client switch roles temporarily, the server initiating the
dynamic class loading and the client providing the code. Put in other words, at
a conceptual level the computation engine example is an instance of remote evaluation,
but at the implementation level it uses code on demand to ‘pull’ the Factorial class
from the client to the server
Exercise 6
From what you learnt in Unit 4, do you think that the JVM implements strong mobility?
We have seen in Unit 4 that the JVM has common memory areas for storing all the code
and all the objects (the heap), and a per-thread area to store the program counter,
registers and activation stack. However, the only mechanisms to transfer information
across JVMs are object serialisation and class loading. Threads (execution units)
can hence not be transferred from one JVM to another, which means that only weak
mobility is supported.
Exercise 7
Can you think of some reasons why smartphones are better suited than desktop
machines to developing countries?
Smartphones are battery operated, and battery chargers may be solar powered,
making them independent of any electric power network. Smartphones have wireless
network access, and it is easier and faster to install a network of transceivers than a
network of cables, especially in large countries like India and Mozambique.
Smartphones are simpler to use and maintain than PCs; for example, because no
complex software installation and configuration is required. Smartphones are cheaper
than PCs.
SAQ 4
In which way do mobile systems reinforce this fallacy?
Mobile systems often use wireless communication, which is less reliable than wired
communication. For example, a simple movement of a device may interrupt its
line-of-sight infra-red communication with another device. Also, radio signals can be
subject to interference and be simply cut off, e.g. when going underground.
SAQ 5
How does the ‘Bandwidth is infinite’ fallacy relate to mobile systems?
Again, the relationship is due to wireless communication, which has lower bandwidth
than wired connections. Moreover, bandwidth is shared among devices in the same cell
(Subsection 2.1). As such, the actual bandwidth for each user might be just a small
fraction of the overall available bandwidth.
List the eight fallacies of distributed systems
- The network is reliable
- Latency is zero
- Bandwidth is infinite
- The network is secure
- Topology doesn’t change
- There is one administrator
- Transport cost is zero.
- The network is homogeneous.