We are interested in those capabilities that must be put in place to support nomadicity. The desirable characteristics for nomadicity include independence of location, motion, computing platform, communication device, and communication bandwidth, and widespread presence of access to remote files, systems, and services. The notion of independence does not refer here to the quality of service, but rather to the perception of a computing environment that automatically adjusts to the processing, communications, and access available at the moment. For example, the bandwidth for moving data between a user and a remote server could easily vary from a few bits per second (in a noisy wireless environment) to hundreds of megabits per second (in a hard-wired ATM environment); or the computing platform available to the user could vary from a low-powered personal digital assistant while traveling to a powerful supercomputer in a science laboratory. Indeed, today's systems treat radically changing connectivity or bandwidth/latency values as exceptions or failures; in the nomadic environment, these must be treated as the usual case. Moreover, the ability to accept partial or incomplete results is an option that must be made available because of the uncertainties of the informatics infrastructure.
The ability to automatically adjust all aspects of the user's computing, communication, and storage functionality in a transparent and integrated fashion is the essence of a nomadic environment.
Some of the key system parameters of concern include bandwidth, latency, reliability, error rate, delay, storage, processing power, interference, version control, file synchronization, access to services, interoperability, and user interface. These are the usual concerns for any computer-communication environment, but what makes them of special interest for us is that the values of these parameters change dramatically as the nomad moves from location to location. In addition, some totally new and primary concerns arise for the nomad such as weight, size, and battery life of the portable devices as well as unpredictability and wide variation in the communication devices and channels. The bottom line consideration in many nomadic applications is, of course, cost.
Many of the key parameters above focus on the lower levels of the architecture, and they have received the most attention from industry and product development to date. This is natural since hardware devices must focus on such issues. However, there is an enormous effort that must be focused on the middleware services if nomadicity is to be achieved. We identify a number of such services below, but we must recognize that they are in the early stages of identification and development.
There are a number of reasons why nomadicity is of interest. For example, nomadicity is clearly a newly emerging technology that already surrounds the user. Indeed, this author judges it to be a paradigm shift in the way computing will be done in the future. Information technology trends are moving in this direction. Nomadic computing and communications is a multidisciplinary and multi-institutional effort. It has a huge potential for improved capability and convenience for the user. At the same time, it presents at last as huge a problem in interoperability at many levels. The contributions from any investigation of nomadicity will be mainly at the middleware level. The products that are beginning to roll out have a short-term focus; however, there is an enormous level of interest among vendors (from the computer manufacturers, the networking manufacturers, the carriers, and so on) for long-range development and product planning, much of which is now under way. Whatever work is accomplished now will certainly be of immediate practical use.
There are fundamental new research problems that arise in the development of a nomadic architecture and system. Let us consider a sampling of such problems, which we break out into systems issues and wireless networking issues.
One key problem is to develop a full system architecture and set of protocols for nomadicity. These should provide for a transparent view of the user's dynamically changing computing and communications environment. The protocols must satisfy the following kinds of requirements: