technology. The technology is available. Wireless is here as well as the necessary light devices. Batteries are improving. Laptops are becoming more functional, if not lighter, and so on.
Nomadicity is multidisciplinary. There are no Renaissance people around who can deal with all the technologies involved here. You have to start off with nanotechnology and move all the way up to multimedia applications, including everything in between, to deal with this world. A multi-institutional effort or, at least, a multidepartmental effort, is required. Almost anything you do will be good because everything right now is bad.
You thought interoperability was a problem before. Now, however, people move around and suddenly appear 5,000 miles from where they last appeared on the net. Now what do you do with them? Who are they? Are they who they say they are?
Middleware is an area in which a lot of improvement is needed. Many people think of nomadic computing as wireless support alone, but this is just one component. You have all the problems and the fascination of nomadic computing without wireless ever entering the picture. Most vendors are putting out products that work in little niche markets and do not interoperate. I think that former Computer Science and Telecommunications Board (CSTB) member David Farber can attest to this. He always has a new device. These things do not interoperate. What is the mean lifetime of a device that you own before you replace it with something else, David? Two months. That is a David Farber unit, a DFU.
Since a lot of new research problems have emerged, anything you do will be of immediate, practical use. There are many reasons for getting excited about this field and understanding what is going on. In essence, the nomadic environment—your computing, communications, and storage functionality—should automatically adjust to everything you do in a way that is basically transparent to you. What components should be transparent? It should track you, for example, wherever you are. What you do should not depend on where you are located. You should always see a similar image.
What communications device do you have? Is it a PCMCIA card, a modem, or an asynchronous transfer mode (ATM) connection? Again, you should not have to think too hard at the user level. The system should adjust itself to your circumstances. How much communications bandwidth do you have? This is one of the biggest variables in the nomadic world. It goes from zero up to gigabits, and this can happen very quickly. It is not smooth in time or in number. The system has to understand this. You might see a difference in performance, but not necessarily a difference in what you have to do with the keyboard, or in your head, or with wires, plugs, configuration, or rebooting.
The ability of the user to be disconnected is one of the main attributes of nomadicity. You have to understand you are going to be disconnected, but you should not have to do much about it. You should act as if you are still connected. This would be the ideal. It requires that the necessary systems support be provided.
Also, you should be able to perform operations now, behave as if they are happening now, but have them actually happen later. For example, if I update a file, it may not actually happen for 10 minutes or 4 hours, but I have updated it as far as my operations are concerned. It should be independent of the particular computing platform that I have and, of course, whether or not I am moving.
This is where wireless comes into the picture. If I want to use computing and communications while I am moving, I need something like wireless. All the other issues come into play and have an impact without the need for wireless. Suppose I am sitting at my desktop computer, and I make a simple move and walk to my conference table and sit down at a laptop computer. I have now made a fundamental nomadic move. My platform is different. My communications are different. My screen is different. The keyboard might be different. Yet the environment that I would like to see should not change that dramatically. I should not have to say, "Oh, now I am in this operating system, and I have a different thing to do here." It should travel with me. Notice it is a 10-foot move from my desk to my conference table. How many elements on Charles Seitz's world map would that be? How many transistors cross over in 10 feet? Less than one, and yet it is a nomadic move. I would like that to operate not only in an office, but worldwide. I should be able to move around and have all the functionality follow me.
If you change your view, today's systems treat radically changing connectivity and latency as a mistake. This is a failure of the system, an exception. We design our systems to handle it as an exception. In a nomadic environment, this is the usual case, and you have to design your systems from the beginning to handle it. You have to assume you are going to be disconnected or facing radically changing latency often.