Electronic Thesis and Dissertation Repository


Doctor of Philosophy


Computer Science


Dr. Hanan Lutfiyya


In recent years, there has been a huge growth in mobile applications. More mobile users are able to access Internet services via their mobile devices e.g., smartphones ans tablets. Some of these applications are highly interactive and resource intensive. Mobile applications, with limited storage capacity, slow processors and limited battery life, could be connected to the remote servers in clouds for leveraging resources. For example, weather applications use a remote service that collects weather data and make this data available through a well-defined API. This represents a static partitioning of functionality between mobile devices and a remote server that is determined at run-time. Regardless of the network distance between the cloud infrastructure and the mobile device, the use of a remote service is well suited for mobile device applications with relatively little data to be transferred. However, long distances between a mobile device and remote services makes this approach unsuitable for applications that require larger amounts of data to be transferred and/or have a high level of interactiveness with the user. This includes mobile video communications (e.g., Skype, Face-Time, Google-Hangout), gaming applications that require sophisticated rendering and cloud media analysis that can be used to offer more personalized services. The latency incurred with this architecture makes it difficult to support real-time and interactive applications. A related problem is that the static partitioning strategy is not always suitable for all network conditions and inputs. For example, let us consider a speech recognition application. The performance depends on the size of the input and the type of connectivity to the backbone. Another challenge is that the communication medium between the mobile application and the remote service includes wireless links. Wireless links are more error prone and have less bandwidth than wired links. Often a mobile application may be disconnected. One approach to addressing these challenges is the use of a proxy. A proxy is computing power that is located at the network edge. This allows it to address problems with latency. It is possible for a proxy to have services that allow for offloading tasks from either the cloud or the mobile device and to deal with communication challenges between the mobile application and the mobile device. This work proposes a proxy-based system that acts as a middleware between the mobile application and the remote service. The proposed middleware consists of a set of proxies that provide services. The proposed middleware includes services for proxy discovery and selection, mechanisms for dealing with balancing loads on proxies and handoff. A prototype was developed to assess the effectiveness of the proposed proxy-based system.