Flexible Data Management on Mobile Systems
Abstract
Mobile systems have gradually become the predominant platform for everyday computing, and their capabilities are getting powerful by the day. Apps on mobile systems employ sophisticated data management solutions by making use of cloud syncing services, personal cloud etc., in addition to locally available storage. However, the existing solutions used by mobile apps to manage user data are rigid and do not provide enough flexibility to either developers or users. For instance, the app developers often spend a significant part of their development time in making data management decisions (e.g., where to store the data, what policies to use etc.) on behalf of the end users. This effort is mostly tangential to app logic and repetitive. On the other end, the end user is constrained by the developer’s decisions and has very limited control over their data.In this dissertation research, we explore various techniques to improve data management on modern mobile platforms like Android. First, we enhance the flexibility of mobile systems by designing a pluggable data management solution on Android, called BlueMountain. Our goal is to allow data management mechanisms and policies to be implemented independently of core app logic. Our design allows a user to install data management solutions as apps, install multiple such solutions on a single device, and choose a suitable solution each for one or more apps. It allows app developers to focus their effort on app logic and helps the developers of data management solutions to achieve wider deployability. It also gives increased control of data management to end users and allows them to use different solutions for different apps. Second, we develop various data management solutions, based on previously developed research systems, as user-installable apps for BlueMountain. Third, we propose two novel techniques to dynamically manage data on mobile systems—(1) a context-aware data management system that lets users switch between multiple profiles within an app (e.g., work profile and personal profile for a document editor). (2) a privacy-enhancing data management solution for mobile apps.