18.6 Summary
Mobile systems span a broad range of forms and applications, from smartphones and tablets to vehicles such as automobiles and aircraft. We have categorized the differences between mobile systems and fixed systems as being based on five characteristics: energy, connectivity, sensors, resources, and life cycle.
The energy in many mobile systems comes from batteries. Batteries are monitored to determine both the remaining time on the battery and the usage of individual applications. Energy usage can be controlled by throttling individual applications. Applications should be constructed to survive power failures and restart seamlessly when power is restored.
Connectivity means connecting to other systems and the Internet through wireless means. Wireless communication can be via short-distance protocols such as Bluetooth, medium-range protocols such as Wi-Fi protocols, and long-distance cellular protocols. Communication should be seamless when moving from one protocol class to another, and considerations such as bandwidth and cost help the architect decide which protocols to support.
Mobile systems utilize a variety of sensors. Sensors provide readings of the external environment, which the architect then uses to develop a representation within the system of the external environment. Sensor readings are processed by a sensor stack specific to each operating system; these stacks will deliver readings meaningful to the representation. It may take multiple sensors to develop a meaningful representation, with the readings from these sensors then being fused (integrated). Sensors may also become degraded over time, so multiple sensors may be needed to get an accurate representation of the phenomenon being measured.
Resources have physical characteristics such as size and weight, have processing capabilities, and carry a cost. The design choices involve tradeoffs among these factors. Critical functions may require more powerful and reliable resources. Some functions may be shared between the mobile system and the cloud, and some functions may be shut down in certain modes to free up resources for other functions.
Life-cycle issues include choice of hardware, testing, deploying updates, and logging. Testing of the user interface may be more complicated with mobile systems than with fixed systems. Likewise, deployment is more complicated because of bandwidth, safety considerations, and other issues.