OpenSocialは、 Webアプリケーション向けの共通アプリケーションプログラミングインターフェース(API)のセットを概説する公開仕様です。当初はソーシャルネットワークアプリケーション向けに設計され、Google、MySpace、その他のソーシャルネットワークが共同で開発しました。その後、信頼レベルに関係なく、サードパーティコンポーネントが既存のWebアプリケーション内で動作できるようにするランタイム環境へと進化しました。
OpenSocial Foundationは、 OAuthおよびOAuth 2.0、アクティビティストリーム、ポータブルコンタクトなど、さまざまなオープンウェブ技術を統合またはサポートしてきました。2007年11月1日の設立以来[ 1 ] 、 OpenSocial APIを実装するアプリケーションは、それらをサポートするあらゆるソーシャルネットワークシステムと相互運用できます。
OpenSocialは当初、開発にユニバーサルなアプローチを採用しました。プラットフォームが成熟し、ユーザーベースが拡大するにつれて、モジュール化され、開発者はプラットフォームの必要なコンポーネントのみを含めることができるようになりました。[ 2 ] GoogleクライアントであるOrkutが、OpenSocialを最初にサポートしました。[ 3 ]
2014年12月16日、ワールドワイドウェブコンソーシアム(W3C)は、OpenSocial Foundationが標準化作業をW3Cソーシャルウェブ活動に移行すると発表した。[ 4 ]これにより、OpenSocialはW3Cのソーシャルウェブワーキンググループとソーシャルインタレストグループに事実上統合され、OpenSocialは独立した組織として解散した。

OpenSocialはバージョン0.9で、タグベースの言語であるOSMLのサポートを組み込みました。[ 6 ]この言語により、以前は非同期のクライアント側リクエストが必要だったOpenSocial APIからのデータへのタグベースのアクセスが容易になりました。さらに、包括的なタグテンプレートシステムを確立し、 Java式言語を緩やかにベースとした式言語を採用しました。
バージョン2.0以降、OpenSocialはアクティビティストリーム形式をサポートするようになりました。[ 6 ]
OpenSocialは、人気のソーシャルネットワークサービスであるFacebookの独自サービスであるFacebook Platformよりもオープンなクロスプラットフォーム代替サービスとして一般的に説明されています。[ 7 ]
OpenSocialは、Googleによる「Maka-Maka」というコードネームのより大規模なソーシャルネットワーキングイニシアチブの一部であると噂されていた[ 8 ] [ 9 ]。Maka -Makaはハワイ語で「自由に受けたり与えたりできる親密な友人」を意味する[ 10 ]。
オープンソースプロジェクトであるShindigは、OpenSocial標準のリファレンス実装を提供するために2007年12月に開始されました。Google、Ning、およびOpenSocial関連ソフトウェアを開発する他の企業がShindigを支援しています。Myspace OpenSocialパーサーは、プロジェクトNegroniとして2011年1月にリリースされ、C#ベースのOpenSocial実装を提供しています。
Apache Rave は、OpenSocial および W3C ウィジェット関連の機能、技術、サービスの使用、統合、ホスティングのための軽量でオープン標準ベースの拡張可能なプラットフォームです。また、コンテキスト認識型の強力なパーソナライゼーション、コラボレーション、コンテンツ統合機能、高品質なすぐに使えるインストール機能を提供し、他のプラットフォームやソリューションへの統合も容易です。[ 11 ]
ShindigとApache Raveはどちらも開発が終了しており、Apache Foundationによってサービスが終了されています。
Friendster、hi5、LinkedIn、MySpace、Orkut、Salesforce.comなどの企業ウェブサイトは、OpenSocialの主要ユーザーです。[ 12 ]
FriendsterはOpenSocial仕様のバージョン0.7のAPIを導入しており、バージョン0.7を使用している既存のOpenSocialアプリケーションをFriendster上で簡単に起動し、7500万人以上のFriendsterユーザーに届けることができる。Friendsterは今後数か月以内に、新しい0.8 APIを含む追加のOpenSocial APIもサポートする予定である。[ 13 ]
hi5はOpenSocialのWidgetboxサポートを利用して、Widgetboxが提供するWebウィジェットの選択肢にアクセスします。[ 14 ]
Myspace開発者プラットフォーム(MDP)はOpenSocial APIに基づいています。ソーシャルネットワークがソーシャルウィジェットやインタラクションウィジェットを開発することをサポートします。Facebookの開発者プラットフォームへの回答と見なすことができます。[ 15 ]
OpenSocialの初期サポートではセキュリティ上の脆弱性が見られ、自称アマチュア開発者がPlaxoのRockYouガジェットのエクスプロイトを実証し、NingソーシャルネットワークはiLikeガジェットを使用していた。[ 16 ] TechCrunchが2007年11月5日に報じたように、OpenSocialはすぐにクラックされた。NingのOpenSocialベースのiLikeをクラックするのにかかった時間はわずか20分で、攻撃者はユーザーのプレイリストに曲を追加したり削除したり、ユーザーの友達情報にアクセスしたりすることができた。[ 17 ]
ヘーゼルとイアコノは、「OpenSocialの仕様はセキュリティに関して包括的とは程遠い」ことを示した。[ 18 ]彼らはOpenSocialの文脈でさまざまなセキュリティ上の影響について議論した。彼らはメッセージの完全性と認証、メッセージの機密性、ID管理とアクセス制御における潜在的な脆弱性を紹介した。
当初は大きな注目を集め、メディアでも大きく取り上げられたものの、OpenSocialは当初多くの問題に直面した。Google傘下のOrkutでしか動作せず、対応デバイスも限られており、他のデバイスでは多数のエラーが報告された。他のネットワークも、このフレームワークの導入を検討中だった。
12月6日、TechCrunchはMediaPopsの創設者であるRuss Whitman氏のレポートを続報した。同氏は「当初は非常に興奮していたが、リリースが実際にはどれほど限定的であるかを痛感した」と述べた。Russ氏はさらに、「コア機能コンポーネント」が欠けており、「一度書いて広く配布する」という表現は正確ではないと付け加えた。[ 19 ]
凡例:販売終了品 現行品
REST APIの変更は、Open Mobile Alliance が使用できるように OpenSocial 仕様の変更を必要とするいくつかの問題に対処するために行われました。 [ 20 ]
共通コンテナが追加され、「コンテナ開発者がブラウザ内ガジェットライフサイクルイベントコールバック、組み込みエクスペリエンス、選択ハンドラ、アクションハンドラなどの機能に活用できる共通サービスのセット」が提供されるようになりました。[ 21 ] 新しいメタデータAPIにより、OpenSocialアプリケーションはさまざまなOpenSocialコンテナの機能に適応できるようになりました。WAP認証拡張機能は非推奨になりました。
OpenSocialのこのバージョンでOAuth 2.0のサポートが完成しました。[ 22 ]
OpenSocial はアクティビティ ストリームのサポートを導入しました。JSON が推奨データ形式として登場し、ATOMのサポートは非推奨となりました。ガジェット形式は簡素化され、ガジェット仕様内でテンプレート ライブラリを定義できるようになりました。[ 23 ]最終決定はされていませんが、OAuth 2.0 サポートの基礎が築かれました。
企業環境のニーズに応えて、OpenSocialは高度なマッシュアップシナリオのサポートを追加しました。これにより、ガジェットが「疎結合方式で安全にメッセージをやり取りする」ことが可能になりました。[ 24 ]この新機能は、ガジェット間通信と呼ばれています。
OpenSocial は、これまで採用してきた「万能型」のアプローチでは、プラットフォームを採用した多様なタイプの Web サイトには対応できないことを認識していました。この問題に対処するため、OpenSocial は Core API Server、Core Gadget Server、Social API Server、Social Gadget Server の 4 つのコンプライアンス モジュールにモジュール化されました。[ 2 ]これにより、開発者は OpenSocial の一部ではない他のサービスを使用しながら、使用したいモジュールを選択できるようになりました。開発者が OpenSocial コンテナを拡張できるように、拡張機能が導入されました。
開発者が API をどのように使用しているかについてのフィードバックと観察に応えて、このバージョンでは「アプリケーションの開発、テスト、および展開をより簡単かつ迅速にし、新しいアプリ開発者の学習曲線を短縮する」ことに重点が置かれました。[ 25 ] OpenSocial Javascript API は、古い Javascript API のパワーを維持しながら軽量化するように合理化されました。プロキシ コンテンツが導入され、開発者が以前のAJAX の制限を回避する必要がなくなりました。プロキシ コンテンツを使用すると、URL からコンテンツを取得して <Content> タグで表示できます。リクエストの直後にリモート サーバーにデータを送信する一般的な使用に対応して、OpenSocial 0.9.0 ではデータ パイプラインが導入されました。データ パイプラインを使用すると、開発者はアプリケーションに必要なソーシャル データを指定し、データをすぐに使用できるようになります。OpenSocial テンプレートが導入され、マークアップとプログラム ロジックを分離してデータ駆動型 UI を作成できるようになりました。OpenSocial マークアップ言語 (OSML マークアップ) は、テンプレート内で一般的なタスクを実行したり、通常は安全でない操作を安全に実行したりするための新しい標準化されたタグ セットです。OSML は拡張可能です。開発者は独自のタグのライブラリを作成できます。
このマイナーリリースでは、サーバー間プロトコルに重点が置かれ、「Person スキーマが Portable Contacts の取り組みと整合し、オプションの RPC 提案が追加された」[ 26 ]とされています。JSON -RPCプロトコルが追加され、サーバー間機能が強化されました。v0.8.0 で導入された RESTful プロトコルは大幅に改訂され、いくつかのフィールドが追加、変更、削除されました。
OpenSocial は、RESTful APIを実装するためにコンテナの仕様を変更しました。OpenSocial Javascript API の変更点の多くは、このバージョンを以前のバージョンと互換性のないものにしました。既存のガジェットは引き続き v0.7.0 を使用しました。ガジェットを更新すると、v0.8.0 を使用するようになります。セキュリティは、OAuth 認証とHTMLサニタイズ、およびコンテナのライフサイクル イベントの導入により向上しました。[ 27 ]永続データはJSONに保存されました。
「リッチなソーシャル アプリケーションを完全にサポートできる最初のイテレーション」としてリリースされました。[ 28 ]プロファイル情報用の標準フィールド、アプリケーションをインストールするためのメッセージを送信する機能、ユーザーが行っていることに関するアクティビティ通知を制御するアクティビティ テンプレート、グローバル スコープおよびインスタンス スコープのアプリケーション データの代わりにフィードを使用する簡素化された永続化 API が追加されました。もう 1 つの大きな発表はApache Shindigからでした。Apache Shindig で作成されたガジェットはオープンソースです。この発表と連携して、OpenSocial 0.7.0 では、開発者が Gadget API を使用してガジェットを定義できるように、ガジェット仕様が導入されました。
バージョン 0.6.0 ではセキュリティが大きな焦点となりました。ガジェットが権限のない情報を返すことを防ぐために、権限制御が強化されました。環境に応じてガジェットの応答が異なるようにする Environment クラスや、あるサーフェスから別のサーフェスへのナビゲーションをサポートする Surface クラスなど、新しいクラスが追加されました。Activities クラスは開発者のニーズに基づいて簡素化され、Stream クラスは非推奨になりました。[ 29 ]
Googleは、バージョン0.5.0のプレリリース版でOpenSocialのローンチを発表しました。不安定ではありましたが、このAPIはOpenSocialプラットフォームに「さまざまなXML DTD、JavaScriptインターフェース、その他のデータ構造」[ 30 ]を導入しました。