Thursday, December 10, 2009

Building Simple Social Network Applications with Google Friend Connect

Within the academic community, there has been a push by various groups to provide a "Facebook for Scientists", a "Facebook for Scholars", or similar things.  This is to sell you something, of course. I am skeptical of this approach, since we already have Facebook, and I don't want to join and contribute to yet another social network, especially if I don't know its long term sustainability.

Let's try to follow a systematic approach.  As a starting point, I would like to point you to a nice submission by Roger Curry, Cameron Kiddle and Rob Simmonds to our recent GCE09 workshop. The authors looked at using Facebook, Ning, and Elgg as three social networking platforms.  You know Facebook, and you probably know that Ning is a social networking hosting service.  Elgg was new to me: it is a downloadable software package, like Drupal or Mambo.  Unlike Drupal, however, Elgg is designed from the beginning to be a social networking platform rather than a content management system. 

Curry, Kiddle, and Simmonds's paper presents three detailed case studies.  I would add some additional remarks on requirements.  First, a new social networking site should be compatible with existing social networks and related standards.  I should be able to import in my existing profile and social networking information.  I should also be able to reuse my identity from another site.  I don't want to remember yet another password.  Similarly, I should be able to export my social networking information.  I don't want to get locked in. OpenID, OpenSocial, OAuth, and related standards may make it easier to share one's identity and information across social networking services.

Second, development flexibility is important.  Of the three social networks Curry et al reviewed, Ning's hosted service was generally the least favored. Part of this was because of the advertisements, but it was also noted that access to Ning source code was limited.  If you are considering a hosted service, you need also to consider the development framework that you will be required to use, its strengths, and its weaknesses.

Third, I want to use the best available implementation of a capability, which may not be the one that comes in the software. For example, there are many wikis and calendaring tools.  I want the ability to easily import these tools into a social networking framework.  I don't want to rely upon the wiki or calendar plugin that comes with some particular framework.

For these reasons, I have become very interested in Google Friend Connect (GFC) as a way to build social networking science gateways (and credit goes to Raminder Singh and Gerald Guo in our lab for introducing this to me).  Gadgets are particularly interesting in that they are a client-side technology: any Web development framework can be used to develop gadgets.  We have developed an open source gadget container (see http://www.collab-ogce.org/ogce/index.php/OGCE_Gadget_Container) that can be used to host your own gadgets.   We discuss these things in more detail and provide an implementation case study in our own workshop paper.

I have advocated using Open Social and Google Gadgets for some time (see for example http://grids.ucs.indiana.edu/ptliupages/publications/INGRIDFinal.pdf), but the JavaScript API is not particularly simple, and of course Facebook (the biggest US social networking site) doesn't participate in Open Social.  Thus, while Open Social provides a nice and well documented interface, it is likely that the social network information that it can access is lower quality than Facebook's (at least for US users).

GFC solves those two problems. First, the developer API, although still in JavaScript, is much simpler than Open Social's. The GFC site provides a number of basic capabilities (chat, comment, rating, polling, etc) that have generated HTML and JavaScript code.  You can build up more complicated applications by cutting and pasting these capabilities into a single mash-up, add them to an existing HTML page, or make them into a gadget.  Second, GFC applications are linked to Google's single sign-on system.  Google may not have the social networking depth of Facebook, but they do have untold millions of accounts through GMail, Groups, and other popular online tools.  This allows you to create miniature social networks for a particular GFC application out of your gmail contact list.  Each GFC application is associated with a particular URL (and generated site ID), so you can create multiple networks out of the pool of Google accounts.

In subsequent posts, I'll look at GFC in a little more detail to examine its potential for science gateway social networks.

4 comments:

Cameron Kiddle said...

Thanks for the reference to our work. I think that the work you have been doing with Open Social and Google gadgets is quite interesting. Looking forward to following your progress in this area.

Marlon Pierce said...

No problem. I really enjoyed the paper and presentation. Unfortunately the ACM link to the paper is not open to everyone for free. If you have an alternative URL to it, you can post it here.

Cameron Kiddle said...

Don't have an alternative URL to the ACM link, but if anyone is interested in our paper on "Social Networking and Scientific Gateways" feel free to contact me and I will send you a copy. The slides for our presentation are available from the GCE 09 Workshop Website or from SlideShare

Sami Shalabi said...

Dear Marlon.

I am one of the co-founders of Google Friend Connect. Would love to hear your comments about how we can make the product better.

Best,
Sami
shalabi [at] google.com