Generally speaking, contemporary computer technology is designed according to an application- and document-centered model. This model enables users to work with specific, targeted applications that support the manipulation of particular kinds of information and performing specific tasks, like writing a letter or making a budget. This model is deeply embedded in the hardware, operating systems and user interface software, as well as the development frameworks available today. It has proven well-suited for office work at a desktop, but the personal and task-oriented approach provides little support for the aggregation of resources and tools required in carrying out higher-level activities. It is left to the user to aggregate such resources and tools in meaningful bundles according to the activity at hand, and manual reconfiguration of this aggregation is often required when multi-tasking between parallel activities.
For example, when writing a business memo, one would be using a whole set of applications (word processor, spreadsheet, graphical tools, statistical packages, ERP systems, etc.) each using a specific set of data and documents. When shifting to another activity, like doing administrative work, a completely new configuration of applications, documents, and files are needed.
In our research, we have seen how these problems are highly exacerbated when moving out of the office and into a mobile and collaborative working environment like a hospital. Mobile and nomadic work amplify the reconfiguration overhead when users move from one work context to another, potentially using different computers and different types of devices. Thus, mobility introduces yet another obstacle for suspending and resuming activities, since a user's activities are `tied' to his or her personal computer.
To meet these challenges, we are pursuing the concept of activity-based computing (ABC). In activity-based computing, the basic computational unit is no longer the file (e.g. a document) or the application (e.g. MS Word) but the activity of a user. The end-user is directly supported by computational activities which can be initiated, suspended, stored, resumed, and shared on any computing device in the infrastructure at any point in time, handed over to other persons, or shared among several persons. Furthermore, the execution of activities is adapted to the usage context of the users, i.e. making activities context-aware.
Figure 1 is a conceptual illustration of an activity which is a work-related aggregation of services and data. Our initial concept videos illustrates how ABC would support mobile medicine administration and collaborative medical conferences.

We have defined activity-based computing around the following essential principles: