Unit 12 Flashcards
The term ‘portability’ has occurred previously in this course, but with a different meaning. Which one?
Portability also means the ability to easily adapt an application in order to make it run on various platforms. We encountered this term in Unit 4 in the context of the portability of applications written to run on top of a virtual machine. Normally, the different usages of ‘portability’ should be clear from the context, but to avoid any misunderstandings, we will use in this unit the terms physical portability and application portability.
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.
Briefly skim again the computation engine example presented in Unit 7, Subsection2.4: 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.
In which way do mobile systems reinforce this fallacy?
The network is reliable
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.
How does this fallacy relate to mobile systems?
Bandwidth is infinite
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.