With the invention of the PC and emergence of the network, we realized we need new concepts and capabilities to program networks of computers. Standards such as TCP/IP and IEEE 802 played a major role in transforming the first computer network concept (Arpanet) to the Internet we know today. However, we also had to invent new computing models such as the client-server model, transactions, distributed objects, Web services, disconnected operation, and computing grids. Furthermore, we had to invent various middleware to support these emerging models, hiding the underlying system's complexity and presenting a more programmable view to software and application developers. Today, with the advent of sensor networks and pinhead-size computers, we're moving much closer to realizing the vision of ubiquitous and pervasive computing. However, as we create pervasive spaces, we must think ahead to consider how we program them, just as we successfully programmed the mainframe and, later on, the Internet.
['Sumi Helal']
Programming pervasive spaces