
George Forman. Workshop on Computing and Communication in the Presence of Mobility, April 1998. Available online as HP Labs Tech Report HPL-98-15, Hewlett-Packard Labs, 1998. A short version is published in "Mobility: Processes, Computers and Agents," eds. Fred Douglis, Dejan Milojicic, and Rick Wheeler, Addison Wesley, 1999. I presented material along a similar line as an invited panelist at the 20th International Conference on Software Engineering.
Abstract: Applications running in networked mobile computing environments are prone to a great deal of variability in the response time they experience from system services, such as an (implicitly distributed) file system or (explicit) networking. The range of variability is much greater than in traditional computing environments and changes dynamically. Without special programming considerations, such applications will exhibit unacceptable user responsiveness when resources are slow. Therefore, applications need to be flexible about their resource demands if they are to remain usable through periods of degraded service. There exist known techniques to cope with resource variability, including incremental (multi-resolution) results, concurrency, and dynamic resource allocation. However, their programming cost is substantial, and infrastructure support is weak. This raises the need for general-purpose software frameworks and mechanisms to support these techniques. The author briefly describes such a framework. Through the use of annotated futures, it implicitly constructs a data-flow graph of outstanding concurrent tasks, which affords a degree of meta-level reasoning. The experimental implementation capitalizes on this graph by automating some resource allocation activities.
![]()
Dept. of Computer Science & Engineering, University of Washington, Autumn 1996. 141 pages. postscript. See also the (now defunct) demo page or the video tape. Advisor: John Zahorjan.
Abstract: This research addresses the problem of building software that can be responsive even in environments with widely variable or unknown resource availability. Application programmers' efforts to ensure responsiveness are rendered increasingly difficult by a number of trends in modern computing environments that increase service variability, including:
The confluence of these trends calls for broadly applicable programming support to create applications that ensure good responsiveness in the face of widely variable service times at little or no increase in programming effort relative to the existing technology (which cannot provide this level of responsiveness). The work described here provides the design of such support, and furnishes a proof of concept that it is effective where (a) portions of the application can be decomposed into concurrent tasks, and (b) the application can produce and present its results incrementally, i.e., can trade the quality of the response against the delay required to provide it, such as with multi-resolution techniques.
The key to this approach is the runtime construction of a global dependence graph that relates tasks to each other through their input and output dependencies. This graph is constructed by an application-independent system with minimal programmer effort, and is used at runtime to provide useful services, including:
The combined effect is that it is easier to write applications that provide good responsiveness across a wide and unpredictable range of service variability.
![]()
George Forman, John Zahorjan. IEEE Computer Journal, vol.27, no.4, pp.38-47, April 1994. postscript UW TR version Also published in "Mobility: Processes, Computers and Agents," eds. Fred Douglis, Dejan Milojicic, and Rick Wheeler, Addison Wesley, 1999.
Abstract: The technical challenges that mobile computing must surmount to achieve its potential are hardly trivial. Some of the challenges in designing software for mobile computing systems are quite different from those involved in the design of software for today's stationary networked systems. The authors focus on the issues pertinent to software designers without delving into the lower level details of the hardware realization of mobile computers. They look at some promising approaches under investigation and also consider their limitations. The many issues to be dealt with stem from three essential properties of mobile computing: communication, mobility, and portability. Of course, special-purpose systems may avoid some design pressures by doing without certain desirable properties. For instance portability would be less of a concern for mobile computers installed in the dashboards of cars than with hand-held mobile computers. However, the authors concentrate on the goal of large-scale, hand-held mobile computing as a way to reveal a wide assortment of issues.
George Forman,
click to reveal email address@hpl.hp.com
Spam robots may
prefer to send to gforman4@hpl.hp.com.