
Open Social is a set of social networking application APIs that Google is encouraging all social networks to adopt as their application architecture. Its goal is to standardize social networking apps so that they can be run on more than one social network. It's meant to challenge Facebook's tremendous success with their F8 application platform.
Open Social has generated a lot of buzz, and many social networks have announced that they are "in support" of it, though many of those same social networks are simultaneously pursuing their own application strategy.
It's in early alpha right now. There's limited support in Google's own Orkut social network, Ning, Hi5 and a few others. It's going to be weeks or months before we see robust enough support on any platform such that it gets rolled out to end users.
Open Social has many of the same concepts as Facebook's F8 application architecture, but the technical details are quite different. Here's some of Facebook's notable features and how the Open Social compares.
Overall Architecture
Facebook: Proxied web application.
Open Social: Client-side widget.
Whereas with Facebook you're hooking up your web application to the Facebook servers, an Open Social app is a client-side widget. Step one of making an Open Social app is to make a Google Gadget. If you've ever made a Gadget, you know that it's a set of HTML and Javascript that executes in the browser -- the gadget developer doesn't even need to own a webserver. Gadgets that do talk to a webserver do so through Ajax calls.
Step two: make your gadget social. From within the gadget you make use of Open Social's Javascript APIs for getting friend information and sending activities (a.k.a. news feed stories). Again, you don't even need to own a webserver.
By the way, theoretically a social network could allow use of the Open Social APIs from within a different sort of widget than a Google gadget, but I don't think you'll see any platforms offer that, since the point of Open Social is to make the app run on different platforms.
The User Profile
Facebook: Locked down tight, push model.
Open Social: Client-side widget.
If you've done any Facebook development whatsoever, you know how difficult it is to put interesting stuff in a Facebook user's profile page. You have to push stuff into the profile ahead of time -- you get zero access to the user when they actually view the page. This means, among other things, that you can't auto-play Flash content or run Javascript, you can't serve different content based on the user, can't track impressions, can't cookie the user.
Open Social apps are widgets: they can do all of those things. They use an iFrame-based security model very similar to what Widgetbox does.
There are rumors that some Open Social networks will place restrictions on what a widget can do. We've heard of one that may only allow Flash and plain HTML, no Javascript. Can't confirm this yet, though.
Canvas Page
Facebook: Standard web request-response architecture.
Open Social: Client-side widget.
Facebook has the concept of a Canvas area applications can take users from the profile to a full-page view where the app has more screen real estate to do interesting stuff. It's also where apps can monetize by displaying ads. This is a key part of Facebook's success, having clear boundaries within which developers can make money from their creations.
Open Social has the same concept, but so far it's less compelling:
FBML, FQL
Facebook: Yes.
Open Social: No.
Facebook has a host of HTML-like tags called FBML that help you make an app quickly and securely, and ensure that all the apps on Facebook have a consistent look & feel. They also have a SQL-like query language, FQL, to delve deeper into the social graph.
Open Social has nothing comparable. You can understand why: that would have been a huge additional component to standardize.
User Configuration / Editing
Facebook: Up to each app.
Open Social: Up to each app, or container-supplied.
Both Facebook and Open Social allow the app to paint its own configuration screen (though without access to a canvas page, it's hard for an Open Social app to have a very big configuration screen).
However, Open Social has an additional trick, in that configuration fields can be specified in the app's XML descriptor. These are the standard Google Gadget user prefs. Though the alpha implementations of many platforms don't render an edit screen based on these yet, Orkut does. I'm sure most others will follow.
Security
Facebook: Controlled tightly by Facebook.
Open Social: Responsibility is up to each platform.
Facebook's security model is well-documented and clearly delineates what apps can and can't do.
Many parts of Open Social don't talk about security at all, leaving it up to each social network to implement.
While there may not be anything inherently insecure about Open Social,
we've already seen security holes in several of the alpha
implementations of some platforms. It's an area to keep an eye on -- you'd hope that Google will design a security test that all implementing platforms must pass, similar to such tests in the Java and web service standards world.
Other Resources
On Thursday, November 8th we hosted a talk about OpenSocial. In case you missed it, we've provided the link to the talk below.
https://widgetbox.webex.com/seminar_dewd/275722/play/854362/Widgetbox_08NOV07_FIN.wrf
(To download this file, you need to install the WebEx player. Get it at http://www.webex.com/support/downloads-player.html)
In addition, we have a forum on OpenSocial.
To find out more about how Widgetbox can help you succeed with OpenSocial and join our beta program, send an email to opensocialbeta@widgetbox.com.