their speed has increased more than 10-million-
fold, and they have been interconnected through
ever-larger bandwidths. Amazingly, our concept
of a program as an implementation of a sequential
algorithm has remained the same. While the shift
to actor-oriented computing is overdue, we need
to start thinking of software systems beyond the
composition of actors.
Actors residing on a single node, even if
mobile, cannot address the inevitable challenges
that will characterize the future of computing.
Computers are increasingly ubiquitous and
embedded in all sorts of devices, from refrigerators and thermostats to automobiles and wheelchairs. The next logical step is for these embedded
computers to be networked, not just in relatively
localized sensor networks but through their connectivity to more powerful computers (base stations) to be globally networked. Such networking
will result in a cyberspace that parallels physical
space and is as pervasive as physical objects in the
real world.
Pervasive cyberspace will consist of computers
with heterogeneous architectures, a variety of
sensing and actuation capabilities, and security
and privacy profiles, many of which turn mechanical things (such as chairs, desks, windows, and
walls) into smart devices. The availability of services and resources on these computers will be
dynamic.
Explicit programming of such an evolving system is not feasible; elements in the pervasive
cyberspace will continue to be added and
removed, and architectures and policies will keep
changing. Moreover, user requirements will continue to evolve. In such an environment, programmers cannot possibly know where all the
resources are or will be or how and when they
may be accessed. Thus software in a complex
environment cannot consist of preprogrammed
sequences of actions.
It is not that programming as such will be
obsolete; certain local behaviors of these computers will continue to be programmed, albeit more-or-less automatically from high-level user-friendly
interfaces and domain-specific libraries, written in