Define the two types of portability/mobility.
Physical portability (ability to easily carry and move a computing device from one physical location to another) and application portability (ability to adapt an application to a different platform).
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.
In which way do mobile systems reinforce the fallacy that '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 the fallacy of 'infinite bandwidth' relate to mobile systems?
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.
Name at least 4 of the fallacies of distributed computing.
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.
Name 4 types of wireless communication.
WiFi, WiMax, Bluetooth, ZigBee
Why are wireless sensor networks usually ad-hoc?
Allows the network to automatically accommodate the addition and removal of sensors. More robust to node failure - routing can dynamically bypass any sensors that are not working.
What are the two main issues involved in developing software for physically mobile systems?
Application portability and context awareness. Application portability is important because there is a wide range of models with differing features, and we would like the same application to work on all models that include the required features. Context awareness is important as applications will only take advantage of mobility if they are aware of the current context of operation (e.g. turning off alarms if a mobile phone is in ‘silent mode’)
What are the three mobile code paradigms?
Remote evaluation, code on demand, mobile agent.
What are some of the advantages and disadvantages of mobile agents and code on demand?
Mobile agents can be used for sophisticated systems, but they are complex, have a bigger overheard, do not have good scalability, are hard to design and test, and require tight security. Code on demand requires only weak mobility, while mobile agents require strong mobility. Code on demand is more scalable, and applications using code on demand are easier to design and test than a mobile agent.
Describe the economic impact of mobile systems.
Mobile systems allow people to work anywhere at any time; potential economic advantage of increased productivity, but potential social disadvantage of a decrease in work–life balance. There are advantages for businesses that require their employees to visit clients. For example, an engineer recording details about repairs whilst on-site about times, parts, etc - recorded information could help the company detect recurrent problems, manage stock more efficiently, target staff development, etc - more efficient to use a mobile device than paper.
Describe some social impacts of mobile systems.