In the early days of OpenSocial, its sole intention was to offer developers portability between containers and the ability to build gadgets to run on many different containers simultaneously. This works well if all of the containers, sites, and companies implementing OpenSocial have the same goals.
As OpenSocial implementers became more diverse, exploring new realms such as moving the social experience into enterprise-level software, this narrow definition no longer sufficed. Because the ways in which people used the OpenSocial specification were changing, the specification itself needed to change to meet the community’s needs.
As of OpenSocial 1.0, the specification offers five models that define differing levels of integration and provide, in most cases, a subset of features from the global specification:
A subset implementation for containers that want to provide a method for exposing their data through standard web services
Enables a container to render gadgets, but does not provide functionality for accessing social details
A subset implementation for containers that want to provide a method for exposing their social data through standard web services
A subset implementation that allows a container to render gadgets and grants those gadgets access to social information from the container
A fully implemented social container that includes the ...