Virtualized Approach Towards Achieving Seamless Mobility Dushmanta Mohapatra , Umakishore Ramachandran Georgia Institute of Technology {dmpatra,rama}@cc.gatech.edu Xiang Song Microsoft Corporation songxiang@gmail.com Jatin Kumar nVIDIA Corporation jatinkumar@gmail.com Sang Bum Suh Samsung Electronics sbuk.suh@samsung.com Abstract The advent of the genre of personal computing and its gradual evolution into the ‘state of the art’ pervasive and ubiquitous computing era has resulted in the general user having access to a multitude of computing devices (PCs, Laptops, PDAs and cell phones). And with the increase in computing and storage capabilities of small hand-held devices, people have started using them for internet and multimedia related services. Add to that the increasing mobility of users and the difference in resource avail- ability of different devices; and there is a need to provide mechanisms for service migration from one machine to another. However the heterogeneity and varying capability of I/O components (in different devices), makes seamless service mobility very difficult to achieve. There is a need for service customization in accordance with the chang- ing environment. This could happen at the application layer or (in case the application does not support) it could happen inside operating system. In this paper we present an integrated approach towards achieving seamless mo- bility, using service state virtualization at the application layer and device state virtualization and capability adap- tation inside operating system. We use Xen VMM for device interface virtualization and have devised a mech- anism for inducing situation dependent capability adap- tors into the IO data path 1 Introduction Many visions of the future predict a world with perva- sive computing, where computing services and resources permeate the environment. In these visions, people will want to execute a service on any available device with- out worrying about whether the service has been tailored for the device. As a concrete realization of this vision, people nowadays tend to use their mobile devices to en- able them to work at any place at any time. However, mobile devices are usually constrained by their limited power, storage, display etc. But with the advancement of technology, it is becoming increasingly feasible for users carrying mobile devices to take advantage of nearby re- sources in the environment to enhance their experience [2]. In addition to using the environment provided re- sources, mobile users may also want to seamlessly mi- grate their work from place to place. A person watching a movie at the lounge, and unable to not finish it before boarding, might want to migrate his movie (some how) to the small monitor in front of his seat on the plane and to continue it without worrying about where he left off. However the difficulties in achieving the above tech- nicalities are many. It is getting increasingly difficult to create services that can execute well on the wide variety of devices being developed at present, primarily because of problems with diversity and resource constraints. An- other important issue for such migrations is that the IO devices at source and destination might be differing in their internal configurations. Output devices may have different sizes/resolutions, color settings. Input devices may also be different in the keyboard mapping, mouse accuracy or keypad functions. A good migration system has to take these heterogeneities into consideration and thus there is need for a mechanism to adapt according to these changing IO device characteristics. Some research projects address this problem by appli- cation or middleware level adaptation. The main idea of these approaches is that the applications know the configuration of physical devices and can tune the out- put according to the configuration[8, 5, 4]. However,a drawback of these approaches is that it requires the ap- plication developer to understand physical device speci- fications and make necessary changes in the output with that information. Therefore, legacy applications will not work without being modified and recompiled. Further complications arise when the application developer does not have access to device specification or cannot adjust