Entry Date:
January 19, 2017

Model-Based, Event Driven Scalable Programming for the Mobile Cloud

Principal Investigator Daniel Jackson

Project Start Date September 2014

Project End Date
 August 2017


Applications running on mobile devices backed by cloud servers and storage (mobile cloud apps) are an important paradigm that is not well supported by current programming technology. Although cloud computing technology makes massive computational resources readily available, current frameworks for developing applications provide no simple and flexible way to map user-level application code to these resources. The intellectual merits of this project are to develop a new methodology for building mobile cloud applications that can leverage cloud resources in a scalable way while dramatically simplifying the development effort. The project's broader significance and importance are that it will provide a method for software development teams to build and deploy distributed mobile applications that exploit massive concurrency and data storage with less effort than is required to build simple web applications today.

Applications built following the proposed methodology have two distinct levels: a user level specifying the semantics of user interaction, and an architecture level specifying the allocation of computational resources. At each level, behavior can be expressed in a simple but powerful language thus providing modularity. The research project involves: (a) developing these languages; (b) devising automatic semantics-preserving translation from the user to the architecture level that allows the developer to adjust the application semantics and tune performance independently; (c) building a toolset that enables a range of analyses (including new forms of testing, model checking, and static analysis) that are less costly and more effective than traditional testing.