Design and run-time bandwidth contracts for pervasive computing middleware Peter Rigole Department of Computer Science K.U.Leuven Celestijnenlaan 200A, B-3001 Leuven, Belgium peter.rigole@cs.kuleuven.ac.be, http://www.cs.kuleuven.ac.be/˜peterri Yolande Berbers and Tom Holvoet Department of Computer Science K.U.Leuven Celestijnenlaan 200A, B-3001 Leuven, Belgium {yolande.berbers, tom.holvoet}@cs.kuleuven.ac.be Abstract An important requirement for pervasive computing applications is to inform their middleware about the resources they need in order to perform their tasks. In this paper, we give our vision about the use of resource contracts in pervasive systems. After giving a state of the art description about the SEESCOA architecture and the Quality Objects framework, we propose the use of design and run-time contracts on the software components composing an application. These contracts must be agreed upon by the middleware before the components can be deployed and they must be monitored constantly during application execution. As an example case, we describe how bandwidth contracts can be used in a concrete scenario. 1 Vision The general idea behind pervasive computing is to make the computing power disappear in the environment so that it becomes invisible, but still always there whenever needed. The applications are flexible in that they coop- erate spontaneously across many (often embedded) de- vices in order to help the user performing his task. Such flexible and invisible computing capabilities, however, shed a whole new light on the way software architec- tures must be engineered. The challenge lies in com- bining the vision of pervasive computing to build flex- ible computing environments (applications and middle- ware) with the restrictions of the host platforms that sup- port the software architecture. An example scenario may help to clarify the chalenges of this vision: John is laying the last hand on his presentation at home when he is suddenly reminded by his agenda that he should leave to arrive in the office on time to present the presentation. As he leaves, he takes his PDA 1 with him to proceed working on his presentation on the train. Considering John’s actions, the intelligent system au- tomatically decides to transfer the presentation editing application he was using to his PDA. Unfortunately, the embedded device is not powerfull enough to handle the entire application, so it decides to leave out certain op- tional parts such as the spell checker and the drawing components. In the train wagon, John’s PDA wirelessly explores the environment (trains of the future will have a liberal supply of computing power in the paintwork) and it discovers available computing resources, so it decides to reinitialize the previously removed parts of the appli- cation on the available devices. From that moment on, John is able again to use all features of the application. As he arrives in the meeting room, his digital assistant automatically discovers the projector he has at his ser- vice and uses it to project his slides. John is happy, since he did not have to worry about the availability of his ap- plication during his trip, nor about the availability of the data he was working on. The application on John’s home computing system was broken into fragments and only the parts that were