OpenSocial: Difference between revisions
Spelling and grammar correction |
Citation bot (talk | contribs) Altered template type. Add: magazine, date. Removed parameters. Some additions/deletions were parameter name changes. | Use this bot. Report bugs. | Suggested by Whoop whoop pull up | Category:Application programming interfaces | #UCB_Category 115/232 |
||
(16 intermediate revisions by 15 users not shown) | |||
Line 1: | Line 1: | ||
{{short description|Public specification aimed at social networking applications}} |
{{short description|Public specification aimed at social networking applications}} |
||
{{Advert|date=October 2019}} |
{{Advert|date=October 2019}} |
||
{{Use American English|date=December 2022}} |
|||
{{Use mdy dates|date=December 2022}} |
|||
{{Infobox software |
{{Infobox software |
||
| name = OpenSocial |
| name = OpenSocial |
||
Line 9: | Line 11: | ||
| released = {{start date and age|2007|11|1}} |
| released = {{start date and age|2007|11|1}} |
||
| latest release version = 2.5.1 |
| latest release version = 2.5.1 |
||
| latest release date = {{ |
| latest release date = {{Start date|mf=yes|2013|08|30}} |
||
| programming language = [[Java (programming language)|Java]], [[PHP]], [[C Sharp (programming language)|C#]], [[JavaScript]], [[HTML]] |
| programming language = [[Java (programming language)|Java]], [[PHP]], [[C Sharp (programming language)|C#]], [[JavaScript]], [[HTML]] |
||
| genre = [[Web application framework]] |
| genre = [[Web application framework]] |
||
Line 16: | Line 18: | ||
}} |
}} |
||
'''OpenSocial''' is a public specification that |
'''OpenSocial''' is a public specification that outlines a set of common [[application programming interface]]s (APIs) for [[web application]]s. Initially designed for [[Social network service|social network applications]], it was developed collaboratively by [[Google]], [[MySpace]] and other social networks. It has since evolved into a [[runtime environment]] that allows third-party components, regardless of their trust level, to operate within an existing web application. |
||
The OpenSocial Foundation has integrated or supported various [[Open Web]] technologies, including [[OAuth]] and [[OAuth 2.0]], [[Activity Streams (format)|Activity Streams]], and [[Portable Contacts]]. Since its inception on November 1, 2007,<ref>{{Cite web|title = Google Launches OpenSocial to Spread Social Applications Across the Web – News announcements – News from Google – Google|url = http://googlepress.blogspot.com/2007/11/google-launches-opensocial-to-spread_01.html|website = googlepress.blogspot.com|access-date = November 23, 2015}}</ref> applications that implement the OpenSocial APIs can [[interoperability|interoperate]] with any social network system that supports them. |
|||
Applications implementing the OpenSocial APIs are [[interoperability|interoperable]] with any social network system that supports them. At launch, OpenSocial took a one-size-fits-all approach to development. As it became more robust and the user-base expanded, OpenSocial modularized the platform to allow developers to only include the parts of the platform it needed.<ref name="OS100" /> |
|||
OpenSocial initially adopted a universal approach to development. As the platform matured and the user base expanded, it was modularized, allowing developers to include only necessary components of the platform.<ref name="OS100" /> [[Orkut]], a Google client, was the first to support OpenSocial.<ref>{{Cite web |title=OpenSocial opens new can of worms |url=https://www.cnet.com/tech/tech-industry/opensocial-opens-new-can-of-worms/ |access-date=2023-11-08 |website=CNET |language=en}}</ref> |
|||
On December 16, 2014 the [[W3C]] issued a press release, "OpenSocial Foundation Moving Standards Work to W3C Social Web Activity",<ref name="press release-move">{{cite web |url=http://www.w3.org/2014/12/opensocial.html.en|title=OpenSocial Foundation Moving Standards Work to W3C Social Web Activity |access-date=2014-12-17 |date=2014-12-16 |publisher=[[W3C]] }}</ref> stating that OpenSocial would no longer exist as a separate entity, and encouraging the OpenSocial community to continue development work through the [http://www.w3.org/Social/ W3C Social Web Activity] in the [http://www.w3.org/Social/WG Social Web Working Group] and [http://www.w3.org/Social/IG 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."<ref name="newHomepage">{{cite web |url=https://www.w3.org/blog/2014/12/opensocial-foundation-moves-standards-work-to-w3c-social-web-activity/ |title=OpenSocial Foundation Moves Standards Work to W3C Social Web Activity W3C Blog |access-date=2015-12-01 |date=2014-12-16 |publisher=[[W3C]] }}</ref> On January 1, 2015, [http://www.opensocial.org opensocial.org] began redirecting all page requests to https://www.w3.org/blog/2014/12/opensocial-foundation-moves-standards-work-to-w3c-social-web-activity/.<ref name="newHomepage" /> |
|||
On December 16, 2014, the [[World Wide Web Consortium]] (W3C) announced that the OpenSocial Foundation would transition its standards work to the W3C Social Web Activity.<ref name="press release-move">{{cite web |url=http://www.w3.org/2014/12/opensocial.html.en|title=OpenSocial Foundation Moving Standards Work to W3C Social Web Activity |access-date=December 17, 2014 |date=December 16, 2014 |publisher=[[W3C]] }}</ref> This effectively integrated OpenSocial into the W3C’s Social Web Working Group and Social Interest Group, thereby dissolving OpenSocial as a separate entity. |
|||
⚫ | |||
⚫ | [[File:Opensocial.jpg|thumb|Structure of OpenSocial<ref>{{Cite journal|title = Opensocial: An Enabler for Social Applications on the Web|journal = Commun. ACM|date = 2011 |
||
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 network]]s.<ref>{{Cite web|title=Open Social: a new universe of social applications all over the web |url=http://blog.pmarca.com/2007/10/open-social-a-n.html |date=2007-11-02 |access-date=2015-11-25 |url-status=dead |archive-url=https://web.archive.org/web/20071102041108/http://blog.pmarca.com/2007/10/open-social-a-n.html |archive-date=November 2, 2007 }}</ref> Each API addresses a different aspect.<ref>{{Cite web|title = OpenSocial Foundation|url = https://github.com/opensocial|website = GitHub|access-date = 2015-11-25}}</ref> It also includes APIs for contacting arbitrary thirthird-partyvices on the web using a [[Proxy server|proxy]] system and OAuth for security. |
|||
⚫ | |||
⚫ | In |
||
⚫ | [[File:Opensocial.jpg|thumb|Structure of OpenSocial<ref>{{Cite journal|title = Opensocial: An Enabler for Social Applications on the Web|journal = Commun. ACM|date = January 1, 2011|issn = 0001-0782|pages = 139–144|volume = 54|issue = 1|doi = 10.1145/1866739.1866765|first = Matthias|last = Häsel|s2cid = 52805577}}</ref>|400x400px]] |
||
⚫ | In its 0.9 version, OpenSocial incorporated support for a [[Markup language|tag-based language]].<ref name=":0" /> known as OSML. This language facilitates tag-based access to data from the OpenSocial [[API|APIs]], which previously necessitated an asynchronous client-side request. Additionally, it established a comprehensive tag template system and adopted an expression language that is loosely based on the [[Java (programming language)|Java]] [[Unified Expression Language|Expression Language]]. |
||
From version 2.0 onwards, OpenSocial began supporting the [[Activity Streams (format)|Activity Streams]] format.<ref name=":0">{{Cite web|title = OpenSocial Specification Release Notes|url = http://opensocial-resources.googlecode.com/svn/spec/2.0/OpenSocial-Specification-Release-Notes.xml#rfc.section.4|website = opensocial-resources.googlecode.com|access-date = November 23, 2015|archive-url = https://web.archive.org/web/20110811204023/http://opensocial-resources.googlecode.com/svn/spec/2.0/OpenSocial-Specification-Release-Notes.xml#rfc.section.4|archive-date = August 11, 2011|url-status = dead}}</ref> |
|||
==History== |
==History== |
||
===Background=== |
===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]].<ref name="NY Times">{{cite news |url=https://www.nytimes.com/2007/10/31/technology/31google.html |title=Google and Friends to Gang Up on Facebook |access-date= |
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]].<ref name="NY Times">{{cite news |url=https://www.nytimes.com/2007/10/31/technology/31google.html |title=Google and Friends to Gang Up on Facebook |access-date=October 31, 2007 |last=Helft |first=Miguel |author2=Brad Stone |date=October 31, 2007 |work=[[The New York Times]] }}</ref> |
||
===Development=== |
===Development=== |
||
OpenSocial was rumored to be part of a larger social networking initiative by Google code-named "Maka-Maka",<ref name="Makamaka">{{cite web |url=https://techcrunch.com/2007/10/29/googles-response-to-facebook-maka-maka/ |title=Google's Response to Facebook: "Maka-Maka" |access-date= |
OpenSocial was rumored to be part of a larger social networking initiative by Google code-named "Maka-Maka",<ref name="Makamaka">{{cite web |url=https://techcrunch.com/2007/10/29/googles-response-to-facebook-maka-maka/ |title=Google's Response to Facebook: "Maka-Maka" |access-date=October 31, 2007 |last=Schonfeld |first=Erick |date=October 29, 2007 |work=[[TechCrunch]] }}</ref> <ref>{{Cite magazine |last=Sloane |first=Julie |title=Will Google's "Maka-Maka" Turn the Web Into a Social Network? |url=https://www.wired.com/2007/10/will-googles-ma/ |access-date=2024-05-20 |magazine=Wired |language=en-US |issn=1059-1028}}</ref>which is defined as meaning an "intimate friend with whom one is in terms of receiving and giving freely" in [[Hawaiian language|Hawaiian]].<ref name="makamaka meaning">{{cite web|url=http://www.wehewehe.org/gsdl2.5/cgi-bin/hdict?d=D12283|title=maka.maka|access-date=November 1, 2007|work=Nā Puke Wehewehe ʻŌlelo Hawaiʻi|publisher=Ulukau: The Hawaiian Electronic Library|archive-url=https://web.archive.org/web/20130918182810/http://www.wehewehe.org/gsdl2.5/cgi%2Dbin/hdict?d%3DD12283|archive-date=September 18, 2013|url-status=dead}}</ref> |
||
===Implementation=== |
===Implementation=== |
||
An [[open-source software|open-source]] project, [[Shindig (software)|Shindig]], was launched in December 2007 |
An [[open-source software|open-source]] project, [[Shindig (software)|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 Sharp (programming language)|C#]]--based implementation of OpenSocial. |
||
Apache Rave is a lightweight and open-standards |
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 into other platforms and solutions.<ref>{{cite web|url=https://www.w3.org/blog/2014/12/opensocial-foundation-moves-standards-work-to-w3c-social-web-activity/#Container_Information |title=Open Social Foundation Moves Standards Work to W3C Social Web Activity |date=December 16, 2014 | access-date=December 2, 2015}}</ref> |
||
Both Shindig and Apache Rave are no longer in development and have been retired by the Apache |
Both Shindig and Apache Rave are no longer in development and have been retired by the Apache Foundation. |
||
== Usage == |
== Usage == |
||
Enterprise websites, such as [[Friendster]], [[hi5]], [[LinkedIn]], [[Myspace|MySpace]], [[Orkut]], and [[Salesforce.com]] are major users of OpenSocial.<ref>{{Cite web|title = What is OpenSocial? A Webopedia Definition|url = http://www.webopedia.com/TERM/O/OpenSocial.html|website = www.webopedia.com|access-date = |
Enterprise websites, such as [[Friendster]], [[hi5]], [[LinkedIn]], [[Myspace|MySpace]], [[Orkut]], and [[Salesforce.com]] are major users of OpenSocial.<ref>{{Cite web|title = What is OpenSocial? A Webopedia Definition|url = http://www.webopedia.com/TERM/O/OpenSocial.html|website = www.webopedia.com|access-date = November 23, 2015}}</ref> |
||
===Friendster=== |
===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.<ref>{{Cite web|title = Friendster Opens Platform to Developers|url = http://www.pcworld.com/article/138956/article.html|website = PCWorld|date = |
[[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.<ref>{{Cite web|title = Friendster Opens Platform to Developers|url = http://www.pcworld.com/article/138956/article.html|website = PCWorld|date = October 28, 2007|access-date = December 2, 2015}}</ref> |
||
=== hi5 === |
=== hi5 === |
||
[[hi5]] taps [[Widgetbox]] |
[[hi5]] taps [[Widgetbox]] support for OpenSocial to get access to the choice of web widgets Widgetbox provides.<ref>{{Cite web|title = "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.|url = http://go.galegroup.com/ps/i.do?id=GALE%257CA185000528&v=2.1&it=r&p=&sw=w&asid=12ff4338141eb7d8148c8a27147041a0|website = go.galegroup.com|access-date = September 9, 2015}}</ref> |
||
=== MySpace === |
=== MySpace === |
||
Line 59: | Line 60: | ||
==Security issues== |
==Security issues== |
||
Initial OpenSocial support experienced vulnerabilities in security, with a self-described amateur developer demonstrating [[exploit (computer security)|exploits]] of the [[RockYou]] gadget on [[Plaxo]], and |
Initial OpenSocial support experienced vulnerabilities in security, with a self-described amateur developer demonstrating [[exploit (computer security)|exploits]] of the [[RockYou]] gadget on [[Plaxo]], and [[Ning (website)|Ning]] social networks using the [[iLike]] gadget.<ref name="theharmonyguy">{{cite web |url=https://techcrunch.com/2007/11/05/opensocial-hacked-again |title=OpenSocial Hacked Again |access-date=November 6, 2007 |last=Arrington |first=Michael |author-link=Michael Arrington |date=November 5, 2007 |publisher=[[TechCrunch]] }}</ref> As reported by [[TechCrunch]] on November 5, 2007, OpenSocial was quickly cracked. The total time to crack the OpenSocial-based iLike on Ning was 20 minutes, with the attacker being able to add and remove songs on a user's playlist and access the user's friend information.<ref>{{cite web |url=https://techcrunch.com/2007/11/05/opensocial-hacked-again/ |title=OpenSocial Hacked Again |access-date=July 24, 2010 |last=Arrington |first=Michael |date=November 5, 2007 |work=[[TechCrunch]] }}</ref> |
||
Häsel and Iacono showed that “OpenSocial |
Häsel and Iacono showed that “OpenSocial specifications were far from being comprehensive in respect to security”.<ref>{{Cite book|title = Security in OpenSocial-Instrumented Social Networking Services|publisher = Springer Berlin Heidelberg|date = May 31, 2010|isbn = 978-3-642-13240-7|pages = 40–52|series = Lecture Notes in Computer Science|doi = 10.1007/978-3-642-13241-4_5|first1 = Matthias|last1 = Häsel|first2 = Luigi Lo|last2 = Iacono|editor-first = Bart De|editor-last = Decker|editor-first2 = Ingrid|editor-last2 = Schaumüller-Bichl}}</ref> 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== |
==Release versions== |
||
===Criticism of initial release=== |
===Criticism of initial release=== |
||
Despite the initial fanfare & news coverage, OpenSocial encountered many issues initially; it only ran on the Google-owned [[Orkut]], and only with a limited number of devices, with multiple errors reported on other devices. 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 |
On December 6, [[TechCrunch]] followed up with a report by MediaPops founder Russ Whitman, who said, "While [they] were initially very excited, [they] 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.<ref>{{cite web |url=https://techcrunch.com/2007/12/06/opensocial-still-not-open-for-business/ |title=OpenSocial Still "Not Open for Business" |access-date=July 24, 2010 |last=Schonfeld |first=Erick |date=December 6, 2007 |work=[[TechCrunch]] }}</ref> |
||
'''Legend: ''' |
'''Legend: ''' |
||
Line 80: | Line 81: | ||
!style="width:200px"|Release notes |
!style="width:200px"|Release notes |
||
|- |
|- |
||
|style="background:#3d4;"|'''2.5.1<ref name="OS251">{{cite web| title = OpenSocial Specification 2.5.1 Release Notes | publisher=[[GitHub]] | author=Mark Marum | date=2013 |
|style="background:#3d4;"|'''2.5.1<ref name="OS251">{{cite web| title = OpenSocial Specification 2.5.1 Release Notes | publisher=[[GitHub]] | author=Mark Marum | date=January 1, 2013 | access-date = November 28, 2015 | url = https://opensocial.github.io/spec/2.5.1/OpenSocial-Specification-Release-Notes.xml#OpenSocial251}}</ref>''' |
||
|{{Start date |2013|08|30}} |
|{{Start date |2013|08|30}} |
||
|[[#Version 2.5.1|View Release Notes]] |
|[[#Version 2.5.1|View Release Notes]] |
||
|- |
|- |
||
|style="background:#ffdead;"|'''2.5.0<ref name="OS250">{{cite web| title = OpenSocial Specification 2.5.0 Release Notes | publisher=[[GitHub]] | author=Mark Marum | date=2013 |
|style="background:#ffdead;"|'''2.5.0<ref name="OS250">{{cite web| title = OpenSocial Specification 2.5.0 Release Notes | publisher=[[GitHub]] | author=Mark Marum | date=January 1, 2013 | access-date = November 28, 2015 | url = https://opensocial.github.io/spec/2.5.1/OpenSocial-Specification-Release-Notes.xml#OpenSocial250}}</ref>''' |
||
|{{Start date |2012|08|28}} |
|{{Start date |2012|08|28}} |
||
|[[#Version 2.5.0|View Release Notes]] |
|[[#Version 2.5.0|View Release Notes]] |
||
|- |
|- |
||
|style="background:#ffdead;"|'''2.0.1<ref name="OS201">{{cite web| title = OpenSocial Specification 2.0.1 Release Notes | publisher=[[GitHub]] | author=Mark Marum | date=2013 |
|style="background:#ffdead;"|'''2.0.1<ref name="OS201">{{cite web| title = OpenSocial Specification 2.0.1 Release Notes | publisher=[[GitHub]] | author=Mark Marum | date=January 1, 2013 | access-date = November 28, 2015 | url = https://opensocial.github.io/spec/2.5.1/OpenSocial-Specification-Release-Notes.xml#OpenSocial201}}</ref>''' |
||
|{{Start date |2011|11|23}} |
|{{Start date |2011|11|23}} |
||
|[[#Version 2.0.1|View Release Notes]] |
|[[#Version 2.0.1|View Release Notes]] |
||
|- |
|- |
||
|style="background:#ffdead;"|'''2.0.0<ref name="OS200">{{cite web| title = OpenSocial Specification 2.0.0 Release Notes | publisher=[[GitHub]] | author=Mark Marum | date=2013 |
|style="background:#ffdead;"|'''2.0.0<ref name="OS200">{{cite web| title = OpenSocial Specification 2.0.0 Release Notes | publisher=[[GitHub]] | author=Mark Marum | date=January 1, 2013 | access-date = November 28, 2015 | url = https://opensocial.github.io/spec/2.5.1/OpenSocial-Specification-Release-Notes.xml#OpenSocial20}}</ref>''' |
||
|{{Start date |2011|08|18}} |
|{{Start date |2011|08|18}} |
||
|[[#Version 2.0.0|View Release Notes]] |
|[[#Version 2.0.0|View Release Notes]] |
||
|- |
|- |
||
| style="background:#ffdead;"|'''1.1.0<ref name="OS110">{{cite web| title = OpenSocial Specification 1.1.0 Release Notes | publisher=[[GitHub]] | author=Mark Marum | date=2013 |
| style="background:#ffdead;"|'''1.1.0<ref name="OS110">{{cite web| title = OpenSocial Specification 1.1.0 Release Notes | publisher=[[GitHub]] | author=Mark Marum | date=January 1, 2013 | access-date = November 28, 2015 | url = https://opensocial.github.io/spec/2.5.1/OpenSocial-Specification-Release-Notes.xml#rfc.section.5}}</ref>''' |
||
|{{Start date |2010|11|18}} |
|{{Start date |2010|11|18}} |
||
|[[#Version 1.0.0|View Release Notes]] |
|[[#Version 1.0.0|View Release Notes]] |
||
|- |
|- |
||
| style="background:#ffdead;"|'''1.0.0<ref name="OS100">{{cite web| title = OpenSocial Specification 1.0.0 Release Notes | publisher=[[GitHub]] | author=Mark Marum | date=2013 |
| style="background:#ffdead;"|'''1.0.0<ref name="OS100">{{cite web| title = OpenSocial Specification 1.0.0 Release Notes | publisher=[[GitHub]] | author=Mark Marum | date=January 1, 2013 | access-date = November 28, 2015 | url = https://opensocial.github.io/spec/2.5.1/OpenSocial-Specification-Release-Notes.xml#rfc.section.6}}</ref>''' |
||
|{{Start date |2010|03|09}} |
|{{Start date |2010|03|09}} |
||
|[[#Version 1.0.0|View Release Notes]] |
|[[#Version 1.0.0|View Release Notes]] |
||
|- |
|- |
||
| style="background:#ffdead;"|'''0.9.0<ref name="OS090">{{cite web| title = OpenSocial Specification 0.9.0 Release Notes | publisher=[[GitHub]] | author=Mark Marum | date=2013 |
| style="background:#ffdead;"|'''0.9.0<ref name="OS090">{{cite web| title = OpenSocial Specification 0.9.0 Release Notes | publisher=[[GitHub]] | author=Mark Marum | date=January 1, 2013 | access-date = November 28, 2015 | url = https://opensocial.github.io/spec/2.5.1/OpenSocial-Specification-Release-Notes.xml#rfc.section.7}}</ref>''' |
||
|{{Start date |2009|04|15}} |
|{{Start date |2009|04|15}} |
||
|[[#Version 0.9.0|View Release Notes]] |
|[[#Version 0.9.0|View Release Notes]] |
||
|- |
|- |
||
|style="background:#ffdead;"|'''0.8.1<ref name="OS081">{{cite web| title = OpenSocial Specification 1.8.1 Release Notes | publisher=[[GitHub]] | author=Mark Marum | date=2013 |
|style="background:#ffdead;"|'''0.8.1<ref name="OS081">{{cite web| title = OpenSocial Specification 1.8.1 Release Notes | publisher=[[GitHub]] | author=Mark Marum | date=January 1, 2013 | access-date = November 28, 2015 | url = https://opensocial.github.io/spec/2.5.1/OpenSocial-Specification-Release-Notes.xml#rfc.section.8}}</ref>''' |
||
|{{Start date |2008|09|25}} |
|{{Start date |2008|09|25}} |
||
|[[#Version 0.8.1|View Release Notes]] |
|[[#Version 0.8.1|View Release Notes]] |
||
|- |
|- |
||
|style="background:#ffdead;"|'''0.8.0<ref name="OS080">{{cite web| title = OpenSocial Specification 0.8.0 Release Notes | publisher=[[GitHub]] | author=Mark Marum | date=2013 |
|style="background:#ffdead;"|'''0.8.0<ref name="OS080">{{cite web| title = OpenSocial Specification 0.8.0 Release Notes | publisher=[[GitHub]] | author=Mark Marum | date=January 1, 2013 | access-date = November 28, 2015 | url = https://opensocial.github.io/spec/2.5.1/OpenSocial-Specification-Release-Notes.xml#rfc.section.9}}</ref>''' |
||
|{{Start date |2008|05|27}} |
|{{Start date |2008|05|27}} |
||
|[[#Version 0.8.0|View Release Notes]] |
|[[#Version 0.8.0|View Release Notes]] |
||
|- |
|- |
||
|style="background:#ffdead;"|'''0.7.0<ref name="OS070">{{cite web| title = OpenSocial Specification 0.7.0 Release Notes | publisher=[[GitHub]] | author=Mark Marum | date=2013 |
|style="background:#ffdead;"|'''0.7.0<ref name="OS070">{{cite web| title = OpenSocial Specification 0.7.0 Release Notes | publisher=[[GitHub]] | author=Mark Marum | date=January 1, 2013 | access-date = November 28, 2015 | url = https://opensocial.github.io/spec/2.5.1/OpenSocial-Specification-Release-Notes.xml#rfc.section.10}}</ref>''' |
||
|{{Start date |2008|01|25}} |
|{{Start date |2008|01|25}} |
||
|[[#Version 0.7.0|View Release Notes]] |
|[[#Version 0.7.0|View Release Notes]] |
||
|- |
|- |
||
|style="background:#ffdead;"|'''0.6.0<ref name="OS060">{{cite web| title = OpenSocial Specification 0.6.0 Release Notes | publisher=[[GitHub]] | author=Mark Marum | date=2013 |
|style="background:#ffdead;"|'''0.6.0<ref name="OS060">{{cite web| title = OpenSocial Specification 0.6.0 Release Notes | publisher=[[GitHub]] | author=Mark Marum | date=January 1, 2013 | access-date = November 28, 2015 | url = https://opensocial.github.io/spec/2.5.1/OpenSocial-Specification-Release-Notes.xml#rfc.section.11}}</ref>''' |
||
|{{Start date |2007|12|21}} |
|{{Start date |2007|12|21}} |
||
|[[#Version 0.6.0|View Release Notes]] |
|[[#Version 0.6.0|View Release Notes]] |
||
|- |
|- |
||
|style="background:#ffdead;"|'''0.5.0<ref name="OS050">{{cite web| title = OpenSocial Container Pre-Release | publisher = [[Mashable]] | author=Mark Hopkins | date=2007 |
|style="background:#ffdead;"|'''0.5.0<ref name="OS050">{{cite web| title = OpenSocial Container Pre-Release | publisher = [[Mashable]] | author=Mark Hopkins | date=November 9, 2007 | access-date = November 28, 2015 | url = http://mashable.com/2007/11/09/opensocial-container-pre-released/#M5YlO7xPUaqZ}}</ref>''' |
||
|{{Start date |2007|11|09}} |
|{{Start date |2007|11|09}} |
||
|[[#Version 0.5.0|View Release Notes]] |
|[[#Version 0.5.0|View Release Notes]] |
||
Line 130: | Line 131: | ||
===Version 2.5.1=== |
===Version 2.5.1=== |
||
Changes to the REST API were made to address several issues that required changes in the OpenSocial specifications so |
Changes to the [[REST API]] were made to address several issues that required changes in the OpenSocial specifications so the [[Open Mobile Alliance]] could use it..<ref name="OS251" /> |
||
===Version 2.5.0=== |
===Version 2.5.0=== |
||
Line 139: | Line 140: | ||
===Version 2.0.0=== |
===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.<ref name="OS200" /> While not finalized, the groundwork for OAuth 2.0 support was put in place. |
OpenSocial introduced support for [[Activity Streams]]. JSON had emerged as the preferred data format and support for [[Atom (web standard)|ATOM]] was deprecated. The Gadget format was simplified to give the ability to define a template library within a Gadget specification.<ref name="OS200" /> While not finalized, the groundwork for OAuth 2.0 support was put in place. |
||
===Version 1.1.0=== |
===Version 1.1.0=== |
||
Line 145: | Line 146: | ||
===Version 1.0.0=== |
===Version 1.0.0=== |
||
OpenSocial acknowledged that the "one-size-fits-all" approach it was taking was not going to work for the diverse |
OpenSocial acknowledged that the "one-size-fits-all" approach it was taking was not going to work for the diverse types of websites that had adopted the platform. To address this issue, OpenSocial is modularized into four compliance modules: Core API Server, Core Gadget Server, Social API Server, and Social Gadget Server.<ref name="OS100" /> 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=== |
===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."<ref name="OS090" /> 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 |
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."<ref name="OS090" /> 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 (programming)|AJAX]] limitations. Proxied content allows 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 custom tags. |
||
===Version 0.8.1=== |
===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."<ref name="OS081" /> [[JSON-RPC]] protocol was added to increase server |
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."<ref name="OS081" /> [[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=== |
===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.<ref name="OS080" /> Persistence data was stored in [[JSON]]. |
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.<ref name="OS080" /> Persistence data was stored in [[JSON]]. |
||
===Version 0.7.0=== |
===Version 0.7.0=== |
||
Released as the "first iteration that can fully support rich, social applications."<ref name="OS070" /> 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 |
Released as the "first iteration that can fully support rich, social applications."<ref name="OS070" /> 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 are 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=== |
===Version 0.6.0=== |
||
Line 163: | Line 164: | ||
===Version 0.5.0=== |
===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"<ref name="OS050" /> to the OpenSocial platform. |
Google announced the launch of OpenSocial with a pre-release of version 0.5.0. While unstable, this API introduced "various XML DTDs, [[JavaScript|Javascript]] interfaces and other data structures"<ref name="OS050" /> to the OpenSocial platform. |
||
==References== |
==References== |
||
{{reflist|2}} |
{{reflist|2}} |
||
⚫ | |||
==External links== |
|||
*[http://shindig.apache.org/ Shindig] Shindig was an open source implementation of the OpenSocial specification and gadgets specification. |
|||
⚫ | |||
{{Online social networking}} |
{{Online social networking}} |
||
Latest revision as of 22:06, 20 November 2024
This article contains promotional content. (October 2019) |
Initial release | November 1, 2007 |
---|---|
Stable release | 2.5.1
/ August 30, 2013 |
Written in | Java, PHP, C#, JavaScript, HTML |
Type | Web application framework |
License | Apache License 2.0 |
Website | opensocial |
OpenSocial is a public specification that outlines a set of common application programming interfaces (APIs) for web applications. Initially designed for social network applications, it was developed collaboratively by Google, MySpace and other social networks. It has since evolved into a runtime environment that allows third-party components, regardless of their trust level, to operate within an existing web application.
The OpenSocial Foundation has integrated or supported various Open Web technologies, including OAuth and OAuth 2.0, Activity Streams, and Portable Contacts. Since its inception on November 1, 2007,[1] applications that implement the OpenSocial APIs can interoperate with any social network system that supports them.
OpenSocial initially adopted a universal approach to development. As the platform matured and the user base expanded, it was modularized, allowing developers to include only necessary components of the platform.[2] Orkut, a Google client, was the first to support OpenSocial.[3]
On December 16, 2014, the World Wide Web Consortium (W3C) announced that the OpenSocial Foundation would transition its standards work to the W3C Social Web Activity.[4] This effectively integrated OpenSocial into the W3C’s Social Web Working Group and Social Interest Group, thereby dissolving OpenSocial as a separate entity.
Structure
[edit]In its 0.9 version, OpenSocial incorporated support for a tag-based language.[6] known as OSML. This language facilitates tag-based access to data from the OpenSocial APIs, which previously necessitated an asynchronous client-side request. Additionally, it established a comprehensive tag template system and adopted an expression language that is loosely based on the Java Expression Language.
From version 2.0 onwards, OpenSocial began supporting the Activity Streams format.[6]
History
[edit]Background
[edit]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.[7]
Development
[edit]OpenSocial was rumored to be part of a larger social networking initiative by Google code-named "Maka-Maka",[8] [9]which is defined as meaning an "intimate friend with whom one is in terms of receiving and giving freely" in Hawaiian.[10]
Implementation
[edit]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 into other platforms and solutions.[11]
Both Shindig and Apache Rave are no longer in development and have been retired by the Apache Foundation.
Usage
[edit]Enterprise websites, such as Friendster, hi5, LinkedIn, MySpace, Orkut, and Salesforce.com are major users of OpenSocial.[12]
Friendster
[edit]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.[13]
hi5
[edit]hi5 taps Widgetbox support for OpenSocial to get access to the choice of web widgets Widgetbox provides.[14]
MySpace
[edit]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.[15]
Security issues
[edit]Initial OpenSocial support experienced vulnerabilities in security, with a self-described amateur developer demonstrating exploits of the RockYou gadget on Plaxo, and Ning social networks using the iLike gadget.[16] As reported by TechCrunch on November 5, 2007, OpenSocial was quickly cracked. The total time to crack the OpenSocial-based iLike on Ning was 20 minutes, with the attacker being able to add and remove songs on a user's playlist and access the user's friend information.[17]
Häsel and Iacono showed that “OpenSocial specifications were far from being comprehensive in respect to security”.[18] 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
[edit]Criticism of initial release
[edit]Despite the initial fanfare & news coverage, OpenSocial encountered many issues initially; it only ran on the Google-owned Orkut, and only with a limited number of devices, with multiple errors reported on other devices. 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 [they] were initially very excited, [they] 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.[19]
Legend: Discontinued Current
Version | Release date | Release notes |
---|---|---|
2.5.1[20] | August 30, 2013 | View Release Notes |
2.5.0[21] | August 28, 2012 | View Release Notes |
2.0.1[22] | November 23, 2011 | View Release Notes |
2.0.0[23] | August 18, 2011 | View Release Notes |
1.1.0[24] | November 18, 2010 | View Release Notes |
1.0.0[2] | March 9, 2010 | View Release Notes |
0.9.0[25] | April 15, 2009 | View Release Notes |
0.8.1[26] | September 25, 2008 | View Release Notes |
0.8.0[27] | May 27, 2008 | View Release Notes |
0.7.0[28] | January 25, 2008 | View Release Notes |
0.6.0[29] | December 21, 2007 | View Release Notes |
0.5.0[30] | November 9, 2007 | View Release Notes |
Version 2.5.1
[edit]Changes to the REST API were made to address several issues that required changes in the OpenSocial specifications so the Open Mobile Alliance could use it..[20]
Version 2.5.0
[edit]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."[21] 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
[edit]OAuth 2.0 support was finalized in this version of OpenSocial.[22]
Version 2.0.0
[edit]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.[23] While not finalized, the groundwork for OAuth 2.0 support was put in place.
Version 1.1.0
[edit]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."[24] This new feature was called Inter-Gadget Communication.
Version 1.0.0
[edit]OpenSocial acknowledged that the "one-size-fits-all" approach it was taking was not going to work for the diverse types of websites that had adopted the platform. To address this issue, OpenSocial is 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
[edit]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."[25] 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 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 custom tags.
Version 0.8.1
[edit]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."[26] 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
[edit]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.[27] Persistence data was stored in JSON.
Version 0.7.0
[edit]Released as the "first iteration that can fully support rich, social applications."[28] 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 are 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
[edit]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.[29]
Version 0.5.0
[edit]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"[30] to the OpenSocial platform.
References
[edit]- ^ "Google Launches OpenSocial to Spread Social Applications Across the Web – News announcements – News from Google – Google". googlepress.blogspot.com. Retrieved November 23, 2015.
- ^ a b c Mark Marum (January 1, 2013). "OpenSocial Specification 1.0.0 Release Notes". GitHub. Retrieved November 28, 2015.
- ^ "OpenSocial opens new can of worms". CNET. Retrieved November 8, 2023.
- ^ "OpenSocial Foundation Moving Standards Work to W3C Social Web Activity". W3C. December 16, 2014. Retrieved December 17, 2014.
- ^ 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. ISSN 0001-0782. S2CID 52805577.
- ^ a b "OpenSocial Specification Release Notes". opensocial-resources.googlecode.com. Archived from the original on August 11, 2011. Retrieved November 23, 2015.
- ^ Helft, Miguel; Brad Stone (October 31, 2007). "Google and Friends to Gang Up on Facebook". The New York Times. Retrieved October 31, 2007.
- ^ Schonfeld, Erick (October 29, 2007). "Google's Response to Facebook: "Maka-Maka"". TechCrunch. Retrieved October 31, 2007.
- ^ Sloane, Julie. "Will Google's "Maka-Maka" Turn the Web Into a Social Network?". Wired. ISSN 1059-1028. Retrieved May 20, 2024.
- ^ "maka.maka". Nā Puke Wehewehe ʻŌlelo Hawaiʻi. Ulukau: The Hawaiian Electronic Library. Archived from the original on September 18, 2013. Retrieved November 1, 2007.
- ^ "Open Social Foundation Moves Standards Work to W3C Social Web Activity". December 16, 2014. Retrieved December 2, 2015.
- ^ "What is OpenSocial? A Webopedia Definition". www.webopedia.com. Retrieved November 23, 2015.
- ^ "Friendster Opens Platform to Developers". PCWorld. October 28, 2007. Retrieved December 2, 2015.
- ^ ""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". go.galegroup.com. Retrieved September 9, 2015.
- ^ "Let me see my app!". February 5, 2008. Archived from the original on February 9, 2008. Retrieved February 5, 2008.
- ^ Arrington, Michael (November 5, 2007). "OpenSocial Hacked Again". TechCrunch. Retrieved November 6, 2007.
- ^ Arrington, Michael (November 5, 2007). "OpenSocial Hacked Again". TechCrunch. Retrieved July 24, 2010.
- ^ 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. ISBN 978-3-642-13240-7.
- ^ Schonfeld, Erick (December 6, 2007). "OpenSocial Still "Not Open for Business"". TechCrunch. Retrieved July 24, 2010.
- ^ a b Mark Marum (January 1, 2013). "OpenSocial Specification 2.5.1 Release Notes". GitHub. Retrieved November 28, 2015.
- ^ a b Mark Marum (January 1, 2013). "OpenSocial Specification 2.5.0 Release Notes". GitHub. Retrieved November 28, 2015.
- ^ a b Mark Marum (January 1, 2013). "OpenSocial Specification 2.0.1 Release Notes". GitHub. Retrieved November 28, 2015.
- ^ a b Mark Marum (January 1, 2013). "OpenSocial Specification 2.0.0 Release Notes". GitHub. Retrieved November 28, 2015.
- ^ a b Mark Marum (January 1, 2013). "OpenSocial Specification 1.1.0 Release Notes". GitHub. Retrieved November 28, 2015.
- ^ a b Mark Marum (January 1, 2013). "OpenSocial Specification 0.9.0 Release Notes". GitHub. Retrieved November 28, 2015.
- ^ a b Mark Marum (January 1, 2013). "OpenSocial Specification 1.8.1 Release Notes". GitHub. Retrieved November 28, 2015.
- ^ a b Mark Marum (January 1, 2013). "OpenSocial Specification 0.8.0 Release Notes". GitHub. Retrieved November 28, 2015.
- ^ a b Mark Marum (January 1, 2013). "OpenSocial Specification 0.7.0 Release Notes". GitHub. Retrieved November 28, 2015.
- ^ a b Mark Marum (January 1, 2013). "OpenSocial Specification 0.6.0 Release Notes". GitHub. Retrieved November 28, 2015.
- ^ a b Mark Hopkins (November 9, 2007). "OpenSocial Container Pre-Release". Mashable. Retrieved November 28, 2015.