Open Social
Open Social
On December 16, 2014, the W3C issued a press release, "OpenSocial Foundation Moving Standards Work
to W3C Social Web Activity",[3] stating that OpenSocial would no longer exist as a separate entity, and
encouraging the OpenSocial community to continue development work through the W3C Social Web
Activity in the Social Web Working Group and Social Interest Group. The OpenSocial Foundation stated
that "the community will have a better chance of realizing an open social web through discussions at a
single organization, and the OpenSocial Foundation board believes that working as an integrated part of
W3C will help reach more communities that will benefit from open social standards."[4]
Structure
Based on HTML and JavaScript, as
well as the Google Gadgets
framework, OpenSocial includes
multiple APIs for social software
applications to access data and core
functions on participating social
networks.[6] Each API addresses a
different aspect.[7] It also includes APIs Structure of OpenSocial[5]
for contacting arbitrary thirthird-
partyvices on the web using a proxy
system and OAuth for security.
In version 0.9 OpenSocial added support for a tag-based language.[8] This language is referred to as OSML
and allows tag-based access to data from the OpenSocial APIs that previously required an asynchronous
client-side request. It also defined a rich tag template system and adopted an expression language loosely
based on the Java Expression Language.
Starting in version 2.0, OpenSocial adopted support for Activity Streams format.[8]
History
Background
OpenSocial is commonly described as a more open cross-platform alternative to the Facebook Platform, a
proprietary service of the popular social network service Facebook.[9]
Development
OpenSocial was rumored to be part of a larger social networking initiative by Google code-named "Maka-
Maka",[10] which is defined as meaning "intimate friend with whom one is on terms of receiving and
giving freely" in Hawaiian.[11]
Implementation
An open-source project, Shindig, was launched in December 2007, to provide a reference implementation
of the OpenSocial standards. It has the support of Google, Ning, and other companies developing
OpenSocial-related software. The Myspace OpenSocial parser was released as project Negroni in January
2011 and provides a C# based implementation of OpenSocial.
Apache Rave is a lightweight and open-standards based extensible platform for using, integrating and
hosting OpenSocial and W3C Widget related features, technologies and services. It will also provide strong
context-aware personalization, collaboration and content integration capabilities and a high quality out-of-
the-box installation as well as be easy to integrate in other platforms and solutions.[12]
Both Shindig and Apache Rave are no longer in development and have been retired by the Apache
foundation.
Usage
Enterprise websites, such as Friendster, hi5, LinkedIn, MySpace, Orkut, and Salesforce.com are major
users of OpenSocial.[13]
Friendster
Friendster has deployed APIs from version 0.7 of the OpenSocial specification, making it easy for existing
OpenSocial applications using version 0.7 to be launched on Friendster and reach Friendster over 75
million users. Friendster also plans to support additional OpenSocial APIs in the coming months, including
the new 0.8 APIs.[14]
hi5
hi5 taps Widgetbox's support for OpenSocial to get access to the choice of web widgets Widgetbox
provides.[15]
MySpace
Myspace Developer Platform (MDP) is based on the OpenSocial API. It supports social networks to
develop social and interacting widgets. It can be seen as an answer to Facebook's developer platform.[16]
Security issues
Initial OpenSocial support experienced vulnerabilities in security, with a self-described amateur developer
demonstrating exploits of the RockYou gadget on Plaxo, and of Ning social networks using the iLike
gadget.[17] As reported by TechCrunch on November 5, 2007, OpenSocial was quickly cracked. The total
time to crack the OpenSocial-based iLike on Ning was just 20 minutes, with the attacker being able to add
and remove songs on a user's playlist and access the user's friend information.[18]
Häsel and Iacono showed that “OpenSocial specification were far from being comprehensive in respect to
security”.[19] They discussed different security implications in the context of OpenSocial. They introduced
possible vulnerabilities in Message Integrity and Authentication, Message Confidentiality, and Identity
Management and Access Control.
Release versions
Opened to much fanfare in news coverage, OpenSocial did not work well in the beginning; it only ran on
Google-owned Orkut, and only with a limited number of gadgets, returning errors for other gadgets. Other
networks were still looking into implementing the framework.
On December 6, TechCrunch followed up with a report by MediaPops founder Russ Whitman, who said
"While we were initially very excited, we have learned the hard way just how limited the release truly is."
Russ added that "core functionality components" are missing and that "write once, distribute broadly" was
not accurate.[20]
Version 2.5.1
Changes to the REST API were made to address several issues that required changes in the OpenSocial
specifications so it could be used by the Open Mobile Alliance.[21]
Version 2.5.0
Common Containers were added that provided "a set of common services that Container developers can
leverage for features like in-browser Gadget lifecycle event callbacks, Embedded Experiences, selection
handlers, and action handlers."[22] A new Metadata API gives OpenSocial applications the ability to adapt
to the capabilities of different OpenSocial containers. The WAP authentication extension was deprecated.
Version 2.0.1
Version 2.0.0
OpenSocial introduced support for Activity Streams. JSON had emerged as the preferred data format and
support for ATOM was deprecated. The Gadget format was simplified to give the ability to define a
template library within a Gadget specification.[24] While not finalized, the groundwork for OAuth 2.0
support was put in place.
Version 1.1.0
In response to enterprise environment needs, OpenSocial added support for advanced mashup scenarios. It
enabled gadgets to "securely message each other in a loosely coupled manner."[25] This new feature was
called Inter-Gadget Communication.
Version 1.0.0
OpenSocial acknowledged that the "one-size-fits-all" approach it was taking was not going to work for the
diverse type of websites that had adopted the platform. To address this issue, OpenSocial modularized into
four compliance modules: Core API Server, Core Gadget Server, Social API Server, and Social Gadget
Server.[2] This allowed a developer to pick and choose the modules they wanted to use while using other
services that aren't part of OpenSocial. Extensions were introduced to allow developers to extend
OpenSocial containers.
Version 0.9.0
In response to feedback and observation of how developers were using the API, this version focused on
making "application development, testing, and deployment easier and faster, while reducing the learning
curve for new app developers."[26] The OpenSocial Javascript API was streamlined to make it lightweight
while retaining the power of the old Javascript API. Proxied content was introduced to eliminate the need
for developers to work around previous AJAX limitations. Proxied content allows a content to be fetched
from a URL and displayed in a <Content> tag. In response to a common use of sending data to a remote
server immediately after a request, OpenSocial 0.9.0 introduced data pipelining. Data pipelining allows the
developer to specify the social data the application will need and make the data immediately available.
OpenSocial Templates were introduced to create data-driven UI with a separation of markup and
programmatic logic. OpenSocial Markup Language (OSML Markup) is a new set of standardized tags to
accomplish common tasks or safely perform normally unsafe operations within templates. OSML is
extensible. Developers can create a library of their own custom tags.
Version 0.8.1
This minor release placed a major focus on server-to-server protocols as "the Person schema has been
aligned with the Portable Contacts effort, and an optional RPC proposal has been added." [27] JSON-RPC
protocol was added to increase server to server functionality. The RESTful protocol that was introduced in
v0.8.0 underwent a large revision with several fields being added, modified, and deleted.
Version 0.8.0
OpenSocial changed specifications for containers to implement a RESTful API. Many of the OpenSocial
Javascript API changes made this version incompatible with previous versions. Existing gadgets continued
to use v0.7.0. After updating the gadget, it would use v0.8.0. Security improved with the introduction of
OAuth authorization and HTML sanitation, and container lifecycle events.[28] Persistence data was stored
in JSON.
Version 0.7.0
Released as the "first iteration that can fully support rich, social applications."[29] It added several standard
fields for profile information, the ability to send a message to install an application, an Activity template to
control activity notifications about what users have been doing, and a simplified persistence API to use
feeds instead of global and instance-scoped application data. Another major announcement came from
Apache Shindig. Apache Shindig made gadgets open sourced. In coordination with this announcement,
OpenSocial 0.7.0 introduced Gadget Specifications for developers to be able to define their gadgets using
the Gadget API.
Version 0.6.0
Security was a large focus in version 0.6.0. Permission controls were tightened to prevent a gadget from
returning information if it is not authorized to do so. New classes were added, such as the Environment
class to allow a gadget to respond differently according to its environment and the Surface class to support
navigation from one surface to another. The Activities class was simplified based on developer needs and
the Stream class was deprecated.[30]
Version 0.5.0
Google announced the launch of OpenSocial with a pre-release of version 0.5.0. While unstable, this API
introduced "various XML DTDs, Javascript interfaces and other data structures"[31] to the OpenSocial
platform.
References
1. "Google Launches OpenSocial to Spread Social Applications Across the Web – News
announcements – News from Google – Google" (http://googlepress.blogspot.com/2007/11/g
oogle-launches-opensocial-to-spread_01.html). googlepress.blogspot.com. Retrieved
November 23, 2015.
2. Mark Marum (January 1, 2013). "OpenSocial Specification 1.0.0 Release Notes" (https://ope
nsocial.github.io/spec/2.5.1/OpenSocial-Specification-Release-Notes.xml#rfc.section.6).
GitHub. Retrieved November 28, 2015.
3. "OpenSocial Foundation Moving Standards Work to W3C Social Web Activity" (http://www.w
3.org/2014/12/opensocial.html.en). W3C. December 16, 2014. Retrieved December 17,
2014.
4. "OpenSocial Foundation Moves Standards Work to W3C Social Web Activity W3C Blog" (htt
ps://www.w3.org/blog/2014/12/opensocial-foundation-moves-standards-work-to-w3c-social-
web-activity/). W3C. December 16, 2014. Retrieved December 1, 2015.
5. Häsel, Matthias (January 1, 2011). "Opensocial: An Enabler for Social Applications on the
Web". Commun. ACM. 54 (1): 139–144. doi:10.1145/1866739.1866765 (https://doi.org/10.11
45%2F1866739.1866765). ISSN 0001-0782 (https://www.worldcat.org/issn/0001-0782).
S2CID 52805577 (https://api.semanticscholar.org/CorpusID:52805577).
6. "Open Social: a new universe of social applications all over the web" (https://web.archive.or
g/web/20071102041108/http://blog.pmarca.com/2007/10/open-social-a-n.html). November
2, 2007. Archived from the original (http://blog.pmarca.com/2007/10/open-social-a-n.html) on
November 2, 2007. Retrieved November 25, 2015.
7. "OpenSocial Foundation" (https://github.com/opensocial). GitHub. Retrieved November 25,
2015.
8. "OpenSocial Specification Release Notes" (https://web.archive.org/web/20110811204023/ht
tp://opensocial-resources.googlecode.com/svn/spec/2.0/OpenSocial-Specification-Release-
Notes.xml#rfc.section.4). opensocial-resources.googlecode.com. Archived from the original
(http://opensocial-resources.googlecode.com/svn/spec/2.0/OpenSocial-Specification-Relea
se-Notes.xml#rfc.section.4) on August 11, 2011. Retrieved November 23, 2015.
9. Helft, Miguel; Brad Stone (October 31, 2007). "Google and Friends to Gang Up on
Facebook" (https://www.nytimes.com/2007/10/31/technology/31google.html). The New York
Times. Retrieved October 31, 2007.
10. Schonfeld, Erick (October 29, 2007). "Google's Response to Facebook: "Maka-Maka" " (http
s://techcrunch.com/2007/10/29/googles-response-to-facebook-maka-maka/). TechCrunch.
Retrieved October 31, 2007.
11. "maka.maka" (https://web.archive.org/web/20130918182810/http://www.wehewehe.org/gsdl
2.5/cgi%2Dbin/hdict?d%3DD12283). Nā Puke Wehewehe ʻŌlelo Hawaiʻi. Ulukau: The
Hawaiian Electronic Library. Archived from the original (http://www.wehewehe.org/gsdl2.5/cg
i-bin/hdict?d=D12283) on September 18, 2013. Retrieved November 1, 2007.
12. "Open Social Foundation Moves Standards Work to W3C Social Web Activity" (https://www.
w3.org/blog/2014/12/opensocial-foundation-moves-standards-work-to-w3c-social-web-activi
ty/#Container_Information). Retrieved December 2, 2015.
13. "What is OpenSocial? A Webopedia Definition" (http://www.webopedia.com/TERM/O/Open
Social.html). www.webopedia.com. Retrieved November 23, 2015.
14. "Friendster Opens Platform to Developers" (http://www.pcworld.com/article/138956/article.ht
ml). PCWorld. October 28, 2007. Retrieved December 2, 2015.
15. " "hi5 Taps Widgetbox for OpenSocial Support and Access to the World's Widest Selection
of Widgets." Science Letter 9 Sept. 2008: 4265. Academic OneFile. Web" (http://go.galegrou
p.com/ps/i.do?id=GALE%257CA185000528&v=2.1&it=r&p=&sw=w&asid=12ff4338141eb7
d8148c8a27147041a0). go.galegroup.com. Retrieved September 9, 2015.
16. "Let me see my app!" (https://web.archive.org/web/20080209102606/http://developer.myspa
ce.com/Community/blogs/devteam/archive/2008/02/05/let-me-see-my-app.aspx). February
5, 2008. Archived from the original (http://developer.myspace.com/Community/blogs/devtea
m/archive/2008/02/05/let-me-see-my-app.aspx) on February 9, 2008. Retrieved February 5,
2008.
17. Arrington, Michael (November 5, 2007). "OpenSocial Hacked Again" (https://techcrunch.co
m/2007/11/05/opensocial-hacked-again). TechCrunch. Retrieved November 6, 2007.
18. Arrington, Michael (November 5, 2007). "OpenSocial Hacked Again" (https://techcrunch.co
m/2007/11/05/opensocial-hacked-again/). TechCrunch. Retrieved July 24, 2010.
19. Häsel, Matthias; Iacono, Luigi Lo (May 31, 2010). Decker, Bart De; Schaumüller-Bichl, Ingrid
(eds.). Security in OpenSocial-Instrumented Social Networking Services. Lecture Notes in
Computer Science. Springer Berlin Heidelberg. pp. 40–52. doi:10.1007/978-3-642-13241-
4_5 (https://doi.org/10.1007%2F978-3-642-13241-4_5). ISBN 978-3-642-13240-7.
20. Schonfeld, Erick (December 6, 2007). "OpenSocial Still "Not Open for Business" " (https://tec
hcrunch.com/2007/12/06/opensocial-still-not-open-for-business/). TechCrunch. Retrieved
July 24, 2010.
21. Mark Marum (January 1, 2013). "OpenSocial Specification 2.5.1 Release Notes" (https://ope
nsocial.github.io/spec/2.5.1/OpenSocial-Specification-Release-Notes.xml#OpenSocial251).
GitHub. Retrieved November 28, 2015.
22. Mark Marum (January 1, 2013). "OpenSocial Specification 2.5.0 Release Notes" (https://ope
nsocial.github.io/spec/2.5.1/OpenSocial-Specification-Release-Notes.xml#OpenSocial250).
GitHub. Retrieved November 28, 2015.
23. Mark Marum (January 1, 2013). "OpenSocial Specification 2.0.1 Release Notes" (https://ope
nsocial.github.io/spec/2.5.1/OpenSocial-Specification-Release-Notes.xml#OpenSocial201).
GitHub. Retrieved November 28, 2015.
24. Mark Marum (January 1, 2013). "OpenSocial Specification 2.0.0 Release Notes" (https://ope
nsocial.github.io/spec/2.5.1/OpenSocial-Specification-Release-Notes.xml#OpenSocial20).
GitHub. Retrieved November 28, 2015.
25. Mark Marum (January 1, 2013). "OpenSocial Specification 1.1.0 Release Notes" (https://ope
nsocial.github.io/spec/2.5.1/OpenSocial-Specification-Release-Notes.xml#rfc.section.5).
GitHub. Retrieved November 28, 2015.
26. Mark Marum (January 1, 2013). "OpenSocial Specification 0.9.0 Release Notes" (https://ope
nsocial.github.io/spec/2.5.1/OpenSocial-Specification-Release-Notes.xml#rfc.section.7).
GitHub. Retrieved November 28, 2015.
27. Mark Marum (January 1, 2013). "OpenSocial Specification 1.8.1 Release Notes" (https://ope
nsocial.github.io/spec/2.5.1/OpenSocial-Specification-Release-Notes.xml#rfc.section.8).
GitHub. Retrieved November 28, 2015.
28. Mark Marum (January 1, 2013). "OpenSocial Specification 0.8.0 Release Notes" (https://ope
nsocial.github.io/spec/2.5.1/OpenSocial-Specification-Release-Notes.xml#rfc.section.9).
GitHub. Retrieved November 28, 2015.
29. Mark Marum (January 1, 2013). "OpenSocial Specification 0.7.0 Release Notes" (https://ope
nsocial.github.io/spec/2.5.1/OpenSocial-Specification-Release-Notes.xml#rfc.section.10).
GitHub. Retrieved November 28, 2015.
30. Mark Marum (January 1, 2013). "OpenSocial Specification 0.6.0 Release Notes" (https://ope
nsocial.github.io/spec/2.5.1/OpenSocial-Specification-Release-Notes.xml#rfc.section.11).
GitHub. Retrieved November 28, 2015.
31. Mark Hopkins (November 9, 2007). "OpenSocial Container Pre-Release" (http://mashable.c
om/2007/11/09/opensocial-container-pre-released/#M5YlO7xPUaqZ). Mashable. Retrieved
November 28, 2015.