A Virtual Cloud Computing Provider for Mobile Devices Gonzalo Huerta-Canepa Dongman Lee • • • • • • • • • • Introduction Proposed Approach Related work Motivation and Scenario Benefits Design Considerations Architecture Current implementation Preliminary evaluation And Discussion Conclusions and future work Introduction • • • • Mobile Phones are becoming pervasive. One mobile phone every two person in the world Mobiles are no longer a luxury, but a must. User expects to execute any application on top of a mobile devices. • But lacks in terms of resource. Mobile Cloud computing: • It allows resources in cloud computing platforms • Examples: Amazon EC2,Microsoft Azure and Google AppEngine • Management of mobile devices and jobs is done at a coordinator located on the infrastructure • This hinder a user from enjoying cloud services if connection is unavailable or too expensive Proposed approach • It presents guidelines for a framework to create virtual mobile cloud computing providers. • The framework detects nearby nodes that are in a stable mode. • If nodes in that state are found, then the target provider for that application is changed. • This approach also allows avoiding a connection to infrastructure-based cloud providers. Related Work • Christensen presents general requirements and key technologies to achieve the vision of mobile cloud computing. • Luo introduces the idea of using cloud computing to enhance the capabilities of mobile devices. • Giurgiu et al. use the cloud as the container for mobile applications. • Chun and Maniatis explore the use of cloud computing to execute mobile applications in behalf of the device. Related Work(Contd..) • Marinelli introduce Hyrax, a mobile cloud computing client that allows mobile devices to use cloud computing platforms. • Black and Edgar demonstrate the feasibility of using mobile devices as part of a grid. Motivation • Offloading to devices with similar Characteristics. • Overall performance of the task will be worse than running it on single device. • Accessing cloud computing providers is associated with two cost: 1. The cost of networking 2. The cost of using providers resource. Motivation(Contd..) On technical side, there are several benefits to consider 1)Preserve conventional offloading. Example: if memory is not enough then creating instances of those objects on any remote device will allow the application to be executed. 2)Performance, can be enhanced if the execution sequence of an application can be reordered for increasing the level of parallelism. Scenario • "Peter is visiting South Korea. He takes a city tour that will visit several museums and places in companion of a group of foreigners. At one museum he becomes intrigued with some form of art from ancient times, but he cannot get more information since the description of this picture is in Korean. Fortunately he has a translator on his mobile phone that is able to handle Korean. He takes a picture of the text and passes it through OCR software. However his mobile phone is not capable of processing the whole text. He could connect to Internet and use a remote server to process it, but the cost of roaming for data is prohibited to him. Instead he checks for other users that are also interested in reading the material, and request resources from their mobile devices. The other users - realizing that the common processing is useful for them - create an ad hoc network with Peter. He is now able to translate the text, and stores the information on his mobile device to share with the other users when they need it." Design Considerations • Resource monitoring and management • Seamless integration with the existing cloud APIs. • A partition and offloading scheme suitable for mobile devices. • Activity detection to find users of the same or similar goals. • Spontaneous interaction network support. • A memory cache scheme to save intermediate results. • Lightweight and resource friendly architecture. Architecture • It consists of five features. 1. 2. 3. 4. 5. Application manager Resource manager Context manager P2P component Offloading manager Architecture(Contd..) • The Application Manager is in charge of launching and intercepting an application at loading time and modifying an application to add features required for offloading – proxy creation. • The Resource Manager is in charge of application profiling and resource monitoring on a local device. • The Context Manager wields and synchronizes contextual information from context widgets and makes it available in some way for other processes. • Two basic contexts are of utter importance: the location and number of nearby devices. • P2P component gives number of nodes information. • The Offloading manager component is in charge of sending and managing jobs from the node to other remote devices, plus receiving and processing jobs sent from them. Current Implementation • They implemented a prototype of framework in Java. • This project consists of two sub-implementations 1. Cloud computing provider client 2. Ad Hoc mobile cloud framework Cloud computing provider client: • Used Retroweaver to port a client of Hadoop to Java 1.4, ensuring that it will run on top the PhoneME, Mysaifu and JamVM, the selected target VMs for the mobile devices. Ad Hoc mobile cloud framework: • It exploit the Hadoop’s API and create our own implementation. • Most of the classes and interfaces related to the file system were replaced by direct downloads from the source mobile device, • The map/reduce framework calls were replaced to RPC methods implemented using the Jabber RPC extension. Main Issues • Modifications of applications in order to intercept and replace references to infrastructure-based clouds with mobile ones. • A personalized version of Javassist was utilized for this purpose. • Communication between devices is based on the Extensible Messaging and Presence Protocol Yaja • XMPP client implemented in Java Benefits: • Easy to use • Easy to extend • Computationally/memory efficient. • Thread safe • Stable/bugless. Yaja(Contd..) • The modifications allow us to be able to execute Yaja on mobile devices. • Incorporate two extensions for XMPP, Serverless Messaging and Jabber RPC. • Serverless Messaging is based on mDNS and ZeroConf, and allows for the discovery and messaging among devices without the need of an infrastructure • Jabber RPC is a scheme based on XML-RPC using XMPP as the transport protocol, and it is utilized to execute the remote tasks associated with a cloud job. Preliminary Evaluation and Discussion Conclusion • It presents the motivation and preliminary design for a framework to create Ad Hoc cloud computing providers. • This framework takes advantage of the pervasiveness of mobile devices. • Creating cloud among the devices in the vicinity, allowing them to execute jobs between the devices • The work presented here is preliminary, and creates the foundation for future work. Future Work • The usage of mobility traces will be considered to create stable communities and not only places. • Usage of context awareness for fault tolerance must be introduced. • For instance, replication of jobs based on the instability of the nodes in the network.