Cross-Device Application Mobility: Investigating and showcasing the feasibility of a generic, cross-Device Session Mobility Platform for Applications (2013)

Today, cross-device capabilities has become the de facto standard among most applications, enabling users to access an application, and in some cases, resume their previous session, from a various of devices. While this allows the user to run the same application on different devices, there still exists no widespread solution providing the ability to transfer an ongoing application session from one device to another, continuing the ongoing session immediately. As users we?ve asked have considered such functionality to be of potential great value, this is definitely something worth exploring. In this thesis, we have investigated and proved that a generic, cross-device session mobility platform is possible and feasible, but not without a certain level of application modification, which we believe is a reasonable requirement. A truly generic cross-device session mobility platform should work with any application, irrespective of the type of the application and the type of terminal it is running on. This becomes a challenge, considering that the nature of an application may vary a lot from application to application. Our proposed solution, the Migration Platform (MP), is realized as a centralized peer-to-peer architecture. It consists of two entities; the Migration Server (MS) and the Migration Client (MC), the latter installed as a software on each device. Together, the MS and MC will provide any application with cross-device session mobility capabilities. Upon switching device (i.e. upon a migration), a direct data channel between source and target device is established. The state of the application about to be migrated is transferred over this data channel, and passed to the application on the target device. This enables the application to resume the application session from where it was left off on the source device. By suggesting a workaround, we also make this scheme viable for real-time communication applications.The applications that are to utilize the capabilities provided by the MP need to implement an interface to the MC, as well as a user interface enabling the user to trigger migration functions from the application. This way, the application can invoke migration functions provided by the MC, and the MC can invoke the application-specific functions specified in the interface. By having the application developers implement the required functions, we provide them with complete freedom when it comes to how they want to apply the migration functionalities, both when it comes to behavior and appearance.We implemented a proof of concept in the web environment, primarily based on the bleeding edge technology, WebRTC, an API currently being drafted, enabling browser to browser communication. Using the exact same generic scripts, we implement session mobility features in four, arguably different, demo applications; a HTML5 video streaming application, a YouTube streaming application, a videochat application and a Chrome browsing extension. With this, we showcased the behavior of the session mobility features, as well as proved the viability of our proposed solution.