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
- Android Wi-Fi P2P
- iOS Multipeer Connectivity
- Ambient-oriented Programming and Ambient-oriented Programming for Scheme
- Unclouded for Android
- Programming language symbiosis
Supervisor(s)
Engineer
Bainomugisha < baino at cis dot mak dot ac dot ug >