Designing new systems for mobile/cloud applications.

The applications that users interact with today no longer run on a single user's desktop computer. Unlike applications of the past, modern mobile/cloud applications are widely distributed, massively multi-user and eternally persistent. These new characteristics of mobile/cloud applications require a radical re-design of traditional operating system abstractions.

Mobile/cloud applications are distributed over users' mobile devices and across back-end cloud servers around the world. As a consequence, application programmers now face deployment decisions that were visible only to designers of large-scale distributed systems in the past. These is decisions include where data and computation should be located, what data should be replicated or cached and what data consistency level is needed. We are working on how to separate deployment from applications, while still giving application programmers control over performance trade-offs in the Sapphire project

Mobile/cloud applications are multi-user and focus on allowing users to share data between devices or with each other. As a consequence, application programmers must now cope with user management and protection, previously provided by the OS. Mobile/cloud applications facilitate sharing between users, so policies are often application-specific. This coupling between application-level concepts and security has made it difficult to implement traditional protection mechanisms, like access control and sandboxing, separate from the application. We are working on providing flexible, fine-grained protection for mobile/cloud applications in the Agate project.

Mobile/cloud applications are reactive, so they need to continuously synchronize user data stored in many locations: back-end storage systems, front-end servers, caches and mobile devices. As a consequence, application programmers must now manage consistency and concurrency control across nodes that are accessing shared data at the same time and may fail or be unavailable. We are working on providing transactional data management and storage for mobile/cloud applications in the Diamond project



Sapphire is supported by the National Science Foundation and generous gifts from Google.