Supervisors info:
Μέμα Ρουσσοπούλου, Αναπληρώτρια Καθηγήτρια, Τμήμα Πληροφορικής και Τηλεπικοινωνιών, Ε.Κ.Π.Α.
Summary:
With the advent of cloud computing, all data flows among users of applications follows a de facto route, through third party services. In fact, data, before reaching their recipient, are stored in cloud storage, even though not always needed. Additionally, services on the internet always try to lock-in their users and their friends. In this thesis we present the design, implementation and evaluation of Generic Connectivity Service (GCS), a middle- ware service facilitating peer-to-peer connection establishment among applications run- ning on users’ devices. Simultaneously, GCS aims to give back to users the management of their contacts list. Thus, decoupling applications from handling each users’ friends-list.
Our system comprises a network of GCS nodes and a daemon running on each user’s device. Users connect to GCS network, thus rendering their devices available for con- nection requests. Applications running on a user’s device request a connection towards one of her friends through the daemon component. In sequence, the daemon forwards a connection request to GCS and if callee accepts the connection, more control messages are exchanged, necessary for connection establishment. Once a peer-to-peer channel is established, the two applications can communicate without their data flowing through GCS nor a third party cloud service.
We have provided both a centralized and a distributed version of our system. The latter of course, mitigates a single point of failure, thus improving our system’s availability and fault tolerance. In the distributed version of our system, GCS nodes form a Distributed Hash Table which is used as a routing layer for control messages. Finally, an enticing property of our system is that it allows connection establishment among users even behined NATs and firewalls.