The official PGP user's guide
A general approach for run-time specialization and its application to C
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Designing the MDVM-Stub and memory estimator
IWDC'04 Proceedings of the 6th international conference on Distributed Computing
Designing mobile distributed virtual memory system
CIT'04 Proceedings of the 7th international conference on Intelligent Information Technology
Hi-index | 0.00 |
As we move closer to world-wide networking and the merger of computing and communications, truly mobile computing---computing while on the move---will become as unexceptional as truly mobile communication (using cellular telephones) is today. However, mobile computing poses new challenges for both system and application designers. Unlike telephony, where a new communications and terminal infrastructure was created to provide a well-understood service (peer-to-peer voice communication), and inter-operability was maintained at the central office, to realize the vision of mobile computing we need to adapt existing applications, and inter-operability must be provided for between peer applications and systems.Almost all of the computer applications that have been built to date make the assumption that their environment is invariant over a significant period of time. Previous generations of bespoke applications were designed around assumptions of computer speed, memory, network bandwidth, communications latency and user interface; changes in these assumptions may have necessitated a new design. Current mass-market ("shrink-wrapped") applications more commonly interrogate their environment when they are initialized, but then assume that nothing changes until after they terminate. Even a modest dynamic change, such as reducing the bit-depth of the available display (as might occur when a laptop is unplugged from a stationary monitor), is more than many applications can handle. Similarly, while operating systems are now often built to ascertain at boot time which network devices are available, and to initialize the appropriate drivers, they are typically unable to handle dynamic changes in these same attributes.The challenge of mobile computing is that many attributes of the application environment vary as the computer is moved from place to place. Moreover, the degree of variability is enormous. For example, available network bandwidth may vary by five orders of magnitude. Adapting to this variability is the shared responsibility of the application program and the operating system. We do not believe that there is a "silver bullet" that will automatically make all applications mobile. But we do believe that the use of the Synthetix specialization methodology will both make the problem tractable and will provide a framework for dividing between the application and the system the responsibility for adapting to change.The remainder of this position paper will describe in more detail the kind of variability that mobile applications will often encounter, and will then outline how we envisage adapting applications and systems to accommodate it.