MobiCloud - Cloud Mobile Hybrid Application Generation
Resources
Overview
Lately there have been interesting changes at both ends of the spectrum of computing power. On one end there has been a boom in mobile computing devices, fueled by fast growing communication networks. On the other end, there has been substantial growth in high-end data centers that offer cheap, on-demand and virtually unlimited computing resources, popularly named Cloud computing. In the backdrop of these advances in computing and the growth of data intensive domains such as social networks, a new class of applications has emerged taking advantage of not only on-demand scalability of computing clouds but also the sophistication of current mobile computing devices. This class of applications, named cloud-mobile hybrids, are characterized by the need for heavy computations on the back-end but only simple user interfaces on the front-end. An example of this class of applications is an implementation of the Privacy Score algorithm. Privacy score is a numerical indicator of the level of private details exposed by an individual in a social network. This score is a relative measure and requires substantial computations that can be done in parallel. Presenting the score to the user however requires only a simple UI that may be implemented on a mobile device. With the popularity of social networks and micro-blogging services, a vast amount of data is being collected everyday that provides a plethora of opportunities to implement similar types of data and compute intensive applications.
Figure 1 : Cloud Mobile Hybrid Applications
Harnessing the power of this new computing landscape however, is still a challenge. This challenge needs to be overcome on three fronts:- The multitude of existing Clouds offer different paradigms, programming environments and persistence storage. The heterogeneity present in the core Cloud services effectively locks the developers to a particular vendor.
- The heterogeneity in the mobile application platforms stem from different development environments, Application Programming Interfaces (API) and programming languages. Fragmentation of APIs even within a single platform forces mobile application developers to focus on only specific platforms and versions. The current practice in the industry is to concentrate the development efforts on selected mobile platforms, leaving out a significant portion of various devices and platforms.
- There is difficulty in managing the communication interfaces. The front-end and back-end separation that requires Remote Procedure Calls (RPC) makes the whole development process tedious, even with an arsenal of sophisticated tools at a developer's disposal. The separation of the front-end and the back-end is also a source of version conflicts with Clients and Services where the service API has to be maintained at the level of the least capable client. Introducing changes to the service API would break the existing clients requiring frequent updates, a common problem faced by many of the mobile application vendors.
Back