Remember Sun Java's tag line "Write once, run anywhere"? Google has introduced similar concept to their social platform, OpenSocial. Developers write social application on top of the social platform, which is hosted on major social network sites.
Which social network sites contain OpenSocial? Click here for an impressive list of OpenSocial SNS containers.
Let's take Friendster as an example, social application's area is being boxed in red as below:
In this example, social application is communicating with your external server to store and retrieve information, such as member's profile, game status etc. In this case, you have to rely on REST for communication method since the application is an IFrame within the Friendster page.
In brief, OpenSocial allows you to write your application communicating with your server (optional) and Friendster server (to request Friendster user-related data). Architectural overview of OpenSocial is illustrated as below:
I hope this will give you a simple yet clear introduction to OpenSocial. For more technical implementation details, do visit the official Google OpenSocial site.
Few common issues to take note though while delivering social applications:
- UI Design: Application might look less "integrated" within container. In Friendster case, you can refer to its common CSS styles.
- Performance: You can follow various best practices for web development, such as caching, reducing number of fetches etc.
- Scaling: There are bandwidth and storage issues once your application is really successful. You can focus on your application at the same time discarding your server, and let the cloud (such as Google App Engine, Amazon S3) handle all the service infrastructure issues.