daptive behavior is a recurring theme in pervasive computing. The need for adaptation arises when a significant mis-match exists between a resource's supply and demand. Often, the mismatch is in a low-level system resource such as network bandwidth, residual energy in a battery, CPU cycles, or memory. Sometimes it is a resource related to interaction such as display size or input modality. Or, in a context aware system, it might be a high-level resource such as user attention or short-term memory. ORIGIN Why does the mismatch arise? Most frequently, it is due to mobility. For example , a user might move from one location where certain resources are plentiful to another location where they are scarce, or vice versa. Wireless network band-width is perhaps the resource most sensitive to physical location, since coverage is rarely uniform over a large area. The availability of nearby compute servers or data-staging servers is also location-dependent and therefore affects techniques such as cyber foraging. 1 In the case of code mobility, it is the application rather than the user that moves. In that case, both low-level resources and interactive resources such as display quality might vary widely between the source and destination systems. Resource variation can arise even when the user and code are static. Network bandwidth, for example, can vary widely depending on the actions of other users in the neighborhood. Sometimes just the passage of time causes a change in resource level. For example, energy becomes less plentiful for a laptop as its battery drains. Regardless of cause, we can't simply ignore a gross mismatch between resource supply and demand. Doing so will result in an unsatisfactory user experience, usually because of sluggish system performance. Severe performance degradation can raise user frustration so much that it leads to increased human error, further increasing frustration. Sometimes, attributes other than system performance are affected. For example, a desktop application that has migrated to a handheld computer might present output that is unreadable on a small screen. As another example, ignoring the device's battery level could result in the user having to stop work prematurely. In all these examples, a system's proactive behavior—or " adaptation " —could improve the total user experience. Adaptation is also important in the other direction, when resource levels improve. Otherwise, the user will be paying an opportunity cost by working in a " lean and mean " computing environment rather …
[1]
Jason Flinn,et al.
Energy-aware adaptation for mobile applications
,
1999,
SOSP.
[2]
Jerome H. Saltzer,et al.
End-to-end arguments in system design
,
1984,
TOCS.
[3]
Eric A. Brewer,et al.
Adapting to network and client variability via on-demand dynamic distillation
,
1996,
ASPLOS VII.
[4]
David Garlan,et al.
Project Aura: Toward Distraction-Free Pervasive Computing
,
2002,
IEEE Pervasive Comput..
[5]
Mahadev Satyanarayanan,et al.
Pervasive computing: vision and challenges
,
2001,
IEEE Wirel. Commun..
[6]
D. L. Parnas,et al.
On the criteria to be used in decomposing systems into modules
,
1972,
Software Pioneers.
[7]
Douglas B. Terry.
Caching Hints in Distributed Systems
,
1987,
IEEE Transactions on Software Engineering.
[8]
Mahadev Satyanarayanan,et al.
Agile application-aware adaptation for mobility
,
1997,
SOSP.