  In this paper, we present the design, implementation and our year-long
maintenance experience of SNSAPI, a Python-based middleware which unifies the
interfaces and data structures of heterogeneous Social Networking Services
(SNS). Unlike most prior works, our middleware is user-oriented and requires
zero infrastructure support. It enables a user to readily conduct online social
activities in a programmable, cross-platform fashion while gradually reducing
the dependence on centralized Online Social Networks (OSN). More importantly,
as the SNSAPI middleware can be used to support decentralized social networking
services via conventional communication channels such as RSS or Email, it
enables the deployment of Decentralized Social Networks (DSN) in an
incremental, ad hoc manner. To demonstrate the viability of such type of DSNs,
we have deployed an experimental 6000-node SNSAPI-based DSN on PlanetLab and
evaluate its performance by replaying traces of online social activities
collected from a mainstream OSN. Our results show that, with only mild resource
consumption, the SNSAPI-based DSN can achieve acceptable forwarding latency
comparable to that of a centralized OSN. We also develop an analytical model to
characterize the trade-offs between resource consumption and message forwarding
delay in our DSN. Via 20 parameterized experiments on PlanetLab, we have found
that the empirical measurement results match reasonably with the performance
predicted by our analytical model.
