ing and communications devices, exacerbating the problems of large-scale systems.
Information appliances allow computing capabilities to be embedded in small devices, often portable, that realize single functions or small numbers of dedicated applications.11 Information appliances will greatly increase the number of devices connected to the network, increasing the scalability problem. They will also magnify problems of mobility. As users roam, all the while accessing their standard suite of applications, their connectivity (in both the topological and performance dimensions) shifts with them. From an application perspective, the infrastructure becomes much more dynamic, creating a need to adapt in various ways.
These applications exemplify a technology infrastructure strained by current and evolving requirements. Obviously, many systems are fielded and used to good effect. But as the requirements and level of sophistication grow, old approaches for coping and compensating when problems arise become less effective if they remain feasible at all.12 This situation—a proliferation of systems and of interconnections among them—calls for better understanding and greater rigor in the design of large-scale systems to better anticipate and address potential problems and to maximize the net potential for benefit to society. Achieving that understanding and rigor will require research—research that will develop a better scientific basis for understanding large-scale IT systems and new engineering methodologies for constructing them. The high cost of failures suggests that even modest improvements in system design and reliability could justify substantial investments in research (the federal government's budget for IT research totaled $1.7 billion in fiscal year 2000). Of course, the goal of further systems research should be more than just modest improvements—it should be no less than a revolution in the way such large-scale systems are designed.
Why are large-scale systems so difficult to design, build, and operate? As evidenced by their many failures, delays, and cost overruns, large-scale systems present a number of technical challenges that IT research has not yet resolved. These challenges are related to the characteristics of the systems themselves—largeness of scale, complexity, and heterogeneity —and those of the context in which they operate, which demands extreme flexibility, trustworthiness, and distributed operation and administration. Although the characteristics may be identified with specific application requirements, they are common across a growing number of systems