These are thoughts about some new issues on the computing horizon. I believe a fun-damentally new model of computation has been brewing in the shadow of the WorldWide Web, and very little foundational work exists to back it up. The foundationalwork that exists does not directly apply, although hopefully much current knowledgecan be adapted.
Looking back a few years, we may notice that we finally got rid of assembly lan-
guages. How did that happen? It was partially because of improvements in compliertechnology and hardware speed, but mostly because assembly languages are not com-pile-time portable
. That is, one simply cannot recompile assembly code for a different ar-chitecture. Moreover, new architectures have been emerging faster than one canrecode.
As an interesting parallel, then, notice that none of the currently popular languag-
es are run-time portable
. Even though programs can be recompiled for different archi-tectures, one cannot take a running program and port it to a different architecture whilethe program is running. This, however, is precisely what must happen with computa-tions over the Web, where connections to unknown architectures are established fasterthan one can recompile. Existing languages and compiler technology are not well suit-ed to this kind of environment.
There is a certain inevitability that comes with exponential growth. Out of the dra-
matic expansion of the Web will inevitably emerge a new generation of languages withradically different implementation characteristics but also, of more interest to us, withunusual semantic properties. What is the meaning of taking a running computationand moving it to an unknown network site? In most current languages, it makes verylittle sense. But, in order to program the Web, we must invent languages and semanticswhere this kind of activity makes sense.
2 Programming the Web
The Web is the single global computer we use to read about in science fiction novels.
Now we have it; how do we program it? Apart from the general intellectual challenge,we need to understand the intended application domain, since there are already com-mercial interests involved.
The commercial players are the content providers
(any business who wants to show-
case and sell a product) and the clients
(anybody with an Internet connection and a
credit card). Content providers want to present their products to clients according totheir own unique, highly customized look. To improve the speed and quality of clientinteraction, they need to download code which runs on client machines. Moreover,they want this code to keep interacting with their servers (i.e., this is not the one-timedownload of a demo program). Clients, on the other hand, want to interact with mul-tiple servers simultaneously, and combine and compare the answers they are getting.
All this means not only a lot of communication, but also frequent and sophisticatedmovement of computation over the network: virtually at every mouse click.
Until now, content providers have not been able to adopt this model. Their options
include setting up areas on America Online, Compuserve, and Bulletin Board Systems.
They use the standardized slow-round-trip interfaces provided by those services, orwrite their own customized gateways at great expense.
Already, the World Wide Web hypertext facilities are changing all that, with con-
tent providers opening shop on the internet in large numbers. But hypertext is not pro-grammable, and does not support well the interactive content
that both contentproviders and clients require.
Because of the limitation of hypertext, mobile computation promises to be a strong
attraction for content providers, and a crucial component for making the Web the
placewhere electronic commerce is conducted. Otherwise, the Web may remain simply abrowsing tool, with commerce being conducted out of centralized services (which,anyway, will eventually have to come up with their own mobile computation solutionsto improve client interaction.)
3 How Computation Moves
There are at the moment four relatively distinct implementation models for movingcode and computation. They differ in what kind of entities are transmitted over the net-work.
¥ Moving text (represented by Tcl ). Source text is sent over the network and
interpreted remotely; a good property is that text is architecture independent.
This is the simplest and least ÒconnectedÓ model: when text moves, connectionsthat the computation had at the originating site vanish, and must be reestab-lished at the destination site. Most languages based on this model have poor se-mantic properties: typically the meaning of a piece of text dependsunpredictably and unsafely on the environment in which it runs.
¥ Moving bytecode (represented by Java ). Bytecode is processed (compiled)
code but which is still architecture-independent. The processing can establishcertain important guarantees, both at the server and client end, and improveperformance of transmission and execution. Still, bytecode is just another wayof presenting program text: it is inherently disconnected. (Java supports com-fortably one continuing connection between a client and a server.)
¥ Moving closures (represented by Obliq ). Not just code, but also the context
in which the code operates is transmitted. The pair of code and dynamic contextis called a closure. The context may include already established network con-nections, which are preserved on transmission. Therefore, live, active, computa-tion can move, and their intrinsic meaning is preserved upon transmission.
¥ Moving agents (represented by Telescript ). Agents are similar to closures in
that they carry their context with them as they move from location to location.
Agents, however, are meant to be completely self-contained and resource-limit-ed. They do not communicate remotely with other locations; rather the move toother locations and communicate locally when they get there.
4 Foundational Issues
I conclude by listing some basic questions that have not been given a clear answer yet.
This is the simple issue of meaning. It is has been typical to take an existing im-plementation model and extend it to the network with little regard for clean andconsistent semantics. What are the consistent models mobile computation?
To even ask the question of what mobile computations do, one must take the no-tion of multiple execution location as fundamental.
The notion of multiple execution location has been rarely considered in high-level models of computation. Where computation happens should have a visi-ble influence (when appropriate) on behavior and resource usage.
Locations are important because one must reason about the relative costs ofcomputation and communication. Is it cheaper to perform a task here, or tomove the code for the task elsewhere? Can one make this reasoning formal?
¥ What's the user model (language) for mobile computation?
Many people have a ready answer: Actors, Network Objects, Threads, Closures,Continuations, Agents, etc. In fact, the user model should be tested against theunusual reality of Web programming, and is unlikely to turn out to be exactlyany of the above.
The main obstacle to the acceptance of mobile computation for commercial ap-plications is the issue of security. The basic technology is well known, but it isnot clear how to deploy it into languages. What is the syntax, static checking, se-mantics, and logic of security?
Cardelli, L., A language with distributed scope
. Computing Systems, 8
(1), 27-59. MIT
Gosling, J., Java
. Sun Microsystems. 1995.
Ousterhout, J.K., Tcl and the Tk toolkit
. Addison-Wesley. 1994.
White, J.E., Telescript technology: the foundation for the electronic marketplace
White Paper. General Magic, Inc. 1994.
TITLE 35. STATE DEPARTMENT OF AGRICULTURE CHAPTER 2. FEES SUBCHAPTER 3. FEE SCHEDULES (FY14) 35:2-3-2. Schedules of laboratory fees (a) The following schedules of laboratory testing fees shall apply to all samples submitted to the Oklahoma Department of Agriculture, (b) Fees, as listed, are for standard analysis times according to the methods utilized and the workload of the L
Patient Travel Questionnaire Please complete this questionnaire and return it as soon as possible. You may need travel vaccinations depending on the country or countries you intend to visit. Asthe vaccines are not immediately effective, please ask about them as soon as you havebooked, ideally at least 4 weeks before travelling. Please fill in this form and hand it in to thereceptionist. Afte