Upgrading Programming for Mobile Cloud
While many mobile device applications are backed by cloud servers and storage, the current programming technology is tedious and potentially error prone. According to CS Professor Gul Agha, developing individual application parts is not difficult, but developing an entire system is far more challenging and there’s currently no way to map user-level application code to the computational resources available in a flexible way.
Agha, along with CS Associate Professor Darko Marinov, proposes a new methodology for building mobile cloud applications that can leverage cloud resources in a scalable way, while dramatically simplifying the development effort. Their project, titled “Model-based, Event-Driven Scalable Programming for the Mobile Cloud,” aims to develop a high-end interface language that’s simple for programmers, while back-end programming could still be done using an actors model, which is optimal for scaling and was developed by Agha in 1985. This will make it easier to program web applications without compromising their efficiency and scalability in execution, using the actors model. The project, a collaboration with Daniel Jackson at MIT, recently received a three-year NSF grant for $1 million to fund the project, of which two-thirds is allocated to Illinois.
“Programmers often want to do simpler operations that are domain specific and to do it easily,” said Agha, who is a researcher in the Coordinated Science Lab. “This work will help translate a high-level user language for web applications into something that’s very parallel. While more sophisticated programmers can still use actors for programming, such a translation will allow for a simpler interface that less sophisticated application programmers can use.”
Agha said the challenge has been getting translations that are correct and efficient while creating an interface that’s very intuitive.
“We are trying to make programming very simple in a complex environment,” he said. “We are abstracting the complexity, but trying not to lose the efficiency.”
He added that there are lots of software errors and they’re very expensive and time consuming to correct.
“Fifty to eighty percent of the effort in programming goes into stitching software components together and debugging the integrated system,” Agha said. “So if you are programming in a model that’s a lot friendlier for composition, that problem becomes a lot easier. That’s why the actor model has been used for large-scale parallel and distributed applications such as Twitter, LinkedIn and Facebook Chat, but doing so now requires a lot of sophistication.”
Agha hopes that because of this research, in the future, a development team would be able to build and deploy a distributed mobile application that uses cloud resources (massive data storage and concurrency) with far less effort than is required today.