Cross-platform peer-to-peer connectivity for mobile applications  [Plan A]

Context

Mobile software applications are increasingly becoming popular thanks to the growing use of smartphones. One of the challenges faced by the developers of mobile applications is the existence of different mobile platforms (e.g., Android and iOS) each requiring specific developed tools and programming languages. In response to this challenge, a number of cross-platform tools (e.g., Phonegap, QT and JQuery Mobile) have emerged to provide support for developers to write mobile applications that can be seamlessly ported to different platforms. However, cross-platform peer-to-peer communication among mobile applications remains an issue.  With peer-to-peer communication, devices can discover and connect to each other allowing applications to "talk" to each other in a peer-to-peer fashion without a centralised infrastructure (e.g., Internet). Example applications include multi-player peer-to-peer games and information sharing applications.  However, this functionality is only possible for mobile applications running on the same platform. Currently, communication between mobile applications running on different platforms is achieved using client-server model. Example applications that follow the client-server model are Whatsapp and Facebook messengers. The aim of this research is make it possible for mobile applications running on different platforms to discover and "talk" to each other just like their peer-to-peer mobile applications running on the same platform. At the technical level this involves objects of different programming languages running on different platforms discovering each other and exchanging messages as though they were on the same platform and in the same programming language.

Goal & Research Activities

The goal of this masters research is to investigate programming language support for cross-platform peer-to-peer connectivity. This research will build on top of exisiting peer-to-peer platform-specific frameworks (e.g., multipeer connectivity for iOS; and Wi-Fi P2P and Unclouded for Android). This research is also expected take some inspirations from the research on ambient-oriented programming. Other supporting research may include programming language symbiosis (i.e., ability of different programming langauges to exchange messages -- invoke each other's methods and exchange data). The research activities will include: study of suitable abstractions for cross-platform peer-to-peer service discovery and communication, implementation of a language extension or reusable framework and development of a case study application that using the framework/extension. At least two mobile platforms will be investigated.

This research will be carried out under the research team of Mobile, Cloud and Internet of Things (MCI). The student will be required to participate in the team's research activities and present progress at the team's research presentations.

Pre-requisites

This project requires the student to have (or develop) good programming skills. Knowledge of mobile applications programming; distributed programming; and peer-to-peer networks is a plus.

References

  1. Android Wi-Fi P2P
  2. iOS Multipeer Connectivity
  3. Ambient-oriented Programming  and Ambient-oriented Programming for Scheme
  4. Unclouded for Android  
  5. Programming language symbiosis

Supervisor(s)

Engineer Bainomugisha < baino at cis dot mak dot ac dot ug >