You can view the original version of this page in the Archive.org Wayback Machine
The following entry provides an open source social networking infrastructure inspired by my earlier post, “Breaking Open Facebook with Open Source Software – Part 1”.
The architecture below provides a high level overview, not a detailed requirements specification. I invite your comments and feedback, especially in areas where I may have missed existing open source infrastructure that may be useful.
My proposed open source social networking architecture includes a core module and several optional components. Click the image below to enlarge.
The core module provides the basic services necessary to enable a hosted, distributed social network community. The core module is to be installed widely by open source advocates and anyone who wishes to host their own profile privately or start their own online community.
The core module provides services that link these new open source networks together and offer consumers the ability to choose one service to host their profile, while still interacting and connecting with friends on other services. Whereas today, consumers are locked in to using proprietary social networks where most of their friends gather, this architecture would allow consumers to choose their own profile service while still interacting with friends on other services.
The core module is made up of four elements:
1. Profile Host. The core module provides the ability to host one or more member profiles and publishing these publicly or privately on the Web and to directories such as the Friend Finder below (or search engines).
2. Profile Editor. The Profile Editor is a Web-based profile builder like Facebook’s own or Friend of a Friend (FOAF). The editor makes it easy for members to build and update their profiles with personal information.
3. Friend Finder. The Friend Finder is both a Web-based user interface and a Web service for browsing and finding friends across this new distributed network of open source social networks. Using the Friend Finder, members can associate with friends from many distributed networks into their profile.
4. Social Networking Web Services. This is a web services layer that can be bundled with the Profile Host and Profile Plugins (below). These web services will become the primary social operating system platform supplanting proprietary interfaces such as the Facebook Developers API. This API will support building and managing friend networks with the Friend Finder (perhaps using XFN or FOAF), status updates/microblogging and messaging. It will also generate feeds such as the XML profile site map for search engines, RSS activity feeds and any friendship network feeds that are needed. Additionally, it will provide services for registering or deleting members from various profile directories. It also provides an API for Widget and third party application developers to access data related to members’ profiles. In some cases, Widgets will just be gathering data the member wants to make public whereas in other cases, the API will be used to modify and access private data. It should make use of OpenID or other authentication methods to establish sessions and securely share data as chosen by the member.
The optional modules accomplish a number of other important goals including the ability to link proprietary social networks such as Facebook with the new open source social networks and also to extend existing open source platforms such as WordPress and Drupal to provide basic social networking features and participate in these new networks. The optional modules also allow for third party widgets, Web sites and desktop applications that connect with Web services in the core module to make use of community data in new ways.
Optional elements include:
* Profile Plug-ins. Profile Plug-ins would be offered for Drupal, WordPress, Plone and OpenID to expand the profile hosting capabilities of these services using the social networking web services layer; essentially, these plug-ins would extend existing open source platforms to optionally link their member profiles into this new distributed open source network of social communities. These plug-ins will help extend the usefulness of these services into the social network space and jumpstart participation of the overall effort. e.g. a WordPress user could extend their blog to offer a full profile listed in the open source Friend Finder and integrated with other members of those networks.
* Bridge Layers for Proprietary Social Networks. Different Bridge Layers would need to be offered for each existing proprietary service. For example, a Facebook application might be needed to allow Facebook users to find, associate and synchronize feeds with friends in the new open source social network community. Over time, if the open source social network effort grows, Facebook and other proprietary providers might have to integrate the open source web services into their native friend finders allowing full interoperability between services. Any proprietary provider with a stated commitment to open standards such as Google or Plaxo would probably support this effort from the beginning.
* Widgets. Developers would build a variety of open source Widgets for use on profile pages, blogs, Web sites and even in desktop applications. For example, Widgets could allow members to monitor the activity of their friends on their iGoogle start page or share a news feed on their profile or blog.
* Third party Web sites and desktop applications. As the open source social networks grow, more Web sites and desktop applications will integrate their services with this open source social networking web service, providing more flexibility and advanced capabilities to members.
So, will the open source software community respond to counter Facebook’s growing dominance in our online world? I hope so. I do think it’s important for socially aware software developers to begin thinking about how to provide alternative services to proprietary social networks. While I acknowledge this is a very high level description scarce on implementation details, I hope that it spurs some spirited discussions and future innovation.
One of my friends thinks a cultural backlash away from time online and towards greater privacy will ultimately weaken Facebook. Maybe increased competition alone will lead to more open, consumer-friendly social networking services. Perhaps Facebook will buckle under its own growth. I’m not so sure. I hope these posts help continue the conversation. I welcome your comments and feedback.