The immense popularity of social networking services such as Facebook, Twitter, and Google Plus has increased the demand for social networking applications. Currently, the majority of social networking applications uses the common client-server model due to its design simplicity and controllability. However, centralized social networking applications need a substantial amount of costly infrastructure in order to service a large number of users. The centralized approach also suffers two other well-known shortcomings: lack of privacy and single point of failure.;This dissertation develops a peer-to-peer architecture which provides a trusted social messaging layer that developers can utilize to design and deploy their social networking applications. In this environment, social peers are able to share content directly with each other rather than through a centralized backend. The goal is to create an architecture that simplifies the development of social networking applications while leveraging the benefits of peer-to-peer networking. This approach provides users with self-sustaining social networking services that can run entirely on their own personal devices.;This dissertation makes several contributions in the area of virtual private networking. It is the first to integrate social networking (e.g. Facebook, Google Hangouts) with virtual networking to enable seamless establishment of encrypted end-to-end virtual IP links. This approach, dubbed SocialVPN, reuses XMPP overlays to bootstrap trusted connections using both structured and unstructured P2P libraries. By exposing the Berkeley sockets API as the basis for communication, my research enables design simplicity for social application development that is unavailable in traditional P2P frameworks. Beyond IP connectivity, this work also demonstrates the design of a decentralized domain naming system called SocialDNS. This naming service is designed specifically for P2PVPNs, such as SocialVPN. SocialDNS allows nodes to set their own domain names, perform lookups on each other's DNS caches, and resolves domain name conflicts using a social ranking heuristic. Finally, there is Litter, a P2P microblogging system implemented to show the applicability of leveraging SocialVPN for the deployment of P2P social networking applications.
展开▼