I thought I would post this here, to get people's thoughts.
THE FUTURE OF SOCIAL NETWORKING
0. Introduction.
Almost three years ago, I started the Appleseed Project as a way to
start experimenting with the idea of distributed social networking.
Armed with enough hubris and naivete to think I could build it alone,
I coded and coded until I got to the point I am now: With a project
that stands at around 75% complete, it functions as a sort of proof-of-
concept for distributed social networking in general. I've learned a
lot, however, about the technological hurdles and impact that a truly
open and distributed social networking platform could provide.
I'm writing this as a way to present my ideas and what I've learned in
the hopes that an open and distributed solution becomes the direction
that social networking takes. Although I would be happiest to see
Appleseed succeed, I'd be excited to see any open and distributed
social networking solution be adopted and replace the walled gardens
that currently dot the internet landscape.
1. The Problem With Walled Gardens.
The current crop of social networking sites (Myspace, Friendster,
Facebook, etc) all operate as "walled gardens", where content is
exclusive to the site, and most importantly, the sites provide very
little interaction with the outside internet. A user on Myspace has no
way to interact with a user on Facebook, despite the design of the
internet having historically favored the concept of interaction
between internet locations. There is no technological reason for why a
user on Myspace wouldn't be able to add a user on Friendster or
Facebook to their friends list. At the very least, there is no reason
why the same Myspace user couldn't send a message to that same
Facebook or Friendster user.
While building Appleseed, I realized just how simple it was to get two
"nodes" to communicate. It became a matter of a simple behind-the-
scenes request which returned a small XML file. It became apparent to
me that the reason that we don't have communication between social
networking sites had nothing to do with technological constrants, and
was a purely economic decision on the part of existing sites. Almost
all major social networking sites business models are centered on
having the largest userbase possible, and user lock-in is a major part
of that. By restricting your ability to interact with outside sites,
they also restrict your ability to choose another site and still
maintain your relationships and ability to contact your friends.
The whole situation we're in makes no sense in the context of the way
the internet was meant to operate. Concentrating user bases into
centralized locations and locking them in seems more like the early
90's and the way Compuserve, AOL, and the like attempted to use walled
gardens to monopolize the internet. The natural evolution is an open,
distributed standard. A sort of SMTP for social networking, which
allows any node to fully connect to any other node. Would people put
up with an email address at
gmail.com which could only email other
gmail.com users? Of course not, and the same standard should be
applied to social networking.
2. Why "glue" doesn't work.
One of the solutions proposed is to use aggregation services which act
as "glue" to hold together the current systems. This is a
fundamentally flawed solution, because it ultimately relies on no
single standard for communication between sites. Site A, B, and C
might work with the aggregation service, but brand new Site D will
require that the aggregation service supports their system. And what
happens when sites change their format? The result becomes a constant
process of modifying and extending the aggregation service when new
sites and formats arise.
Oddly enough, when it comes to making sense of multiple walled
gardens, the best we've come up with is to glue them together and hope
it holds. But this is hardly a solution, and really shouldn't be
advocated by those who want to see social networking properly evolve.
3. The Distributed Solution.
The solution is actually pretty simple. Especially considering things
like OpenID already solve the problem of distributed logins. A user
has a home node, which provides them with a social networking address,
much like an email address. I'm currently
'
michael...@appleseedproject.org'. This also becomes their OpenID
identity, and allows them to log in to other Appleseed (and
potentially any OpenID site) nodes. Communication between sites exists
as a simple http request from one node to another. Friend requests,
messaging, all types of interaction between users becomes easily
distributed while functioning seamlessly as far as the end user is
concerned.
The result is that instead of having one Myspace or one Friendster,
each with millions of users on it, we have thousands of sites which
range from a few dozen to hundreds of thousands of users. Except they
all exist in a network of nodes which communicate between each other.
The importance of distributed social networking can be outlined in the
advantage that the user gains: Freedom to choose between any
compatible node without losing access to their contacts.
4. Privacy And Trust In A Socially Networked World.
It's a whole new ball game when you're dealing with a distributed
social networking model. No longer provided the protection of a walled
garden, it's important to think of the system from the ground up in
terms of "Privacy" and "Trust."
Privacy means that the home node of a user should never give out any
information that isn't explicitly stated to be publicly available.
Because nodes are querying other nodes about information about users,
the assumption is always on the side of privacy, lacking any further
data otherwise. Although you cannot achieve full privacy in a socially
networked world, most social networks today function as unlocked glass
houses, providing very few, if any, privacy options for the user. In a
world that is increasingly socially networked, where social networks
will very likely include one's boss, parents, landlord, and more, it's
important to be able to provide strong mechanisms for restricting
access. Tthe user should have as much granular control over who in
their immediate network can see what as practically possible.
Trust is the concept of utilizing social networks to determine
relationships with strangers, much like in the real world. If you sit
alone in a public place, and a stranger comes up and begins talking to
you, you have very little trust between you and that person. However,
if you sit with a good friend, and that good friend introduces you to
that same stranger, a trust relationship has been established. Social
networking must recognize this basic aspect of human social
interaction, and find strong and intuitive methods for implementing it
on a software level. This not only can help with the random friend
requests that many on MySpace get, but also can help to eliminate
spam, and even possible provide for a social network where everyone
can participate as safely as real life, using their trust networks to
evaluate new relationships.
5. Technological Hurdles And Considerations.
Most importantly, it must be stated that social networking works best
when the concerns of the users are considered to be greater than the
concerns of the developers. Many open source social networking
solutions break too much from the current social networking convention
in what may be interesting technologically, but can be off-putting to
users who have grown accustomed to sites such as MySpace. Being at the
birth of a new paradigm provides a lot of opportunities to experiment
technologically, but when this is done without usability kept in mind,
or when it solves a problem that only really exists for the developer,
it serves as a deterrent to building a large userbase, which is the
only real purpose of social networking.
Balancing this consideration with the technological problems that
distributed social networking creates can be very difficult. For
instance, the issue of spam messages, while easily guarded against
from within a walled garden with active administration, becomes a much
more difficult task during decentralization. One of the solutions that
Appleseed has used is a simplified version of the IM2000 protocol
(
http://www.im2000.org/), which is a sender-stores system, as opposed
to the receiver-stores system of SMTP. This provides the most
important protection against spam: Accountability. In order to send a
message, your node must maintain it's existence and identity on the
internet until the message is "read" (downloaded). Without going too
far into this idea, the balance between this system and the previous
concern of usability is that users will be reluctant to adopt this new
system unless it feels incredibly similar to a standard email
application.
Other hurdles include scaling outward (as opposed to upwards, like
current walled gardens do), and how to perform searches in such a
distributed environment. Maintaining that distributed system, from a
development and API standpoint, is probably the most difficult task.
Error checking for downed nodes, allowing for variable speeds in
response times, etc., all become huge issues, and unlike a walled
garden, a social networking node cannot control anything outside of
it's own server. Fortunately, these are issues inherent in the
distributed nature of the internet, and have been solved in varying
degrees plenty of times before. The issue is simply to apply those
solutions in the best manner possible.
6. Conclusion.
Eventually, Myspace and Facebook, no matter what fancy features they
may add, will seem as archaic as Compuserve and Prodigy do now. The
acceptance of a distributed social networking model is, as the
internet has shown, an inevitability. All proprietary walled gardens
have given way to distributed models, and social networking is the
next frontier. And just like open, distributed protocols before it,
social networking requires an open API in order to function properly.
Since many walled gardens are based on amassing as many users as
possible, in order to maximize ad revenue, adopting a distributed
model goes against their business plan. Therefore, it's up to the open
source community to come up with a real distributed social networking
solution.