(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0023】
各図は、開示される技術の様々な実施形態を例証の目的のみで描いており、これらの図は、同じ要素を識別するのに、同じ参照番号を使用する。本明細書に記載の開示される技術の原理を逸脱することなく、図示の構造および方法の代替実施形態が採用されてもよいことは、当業者なら後続の考察から容易に認識するであろう。
【0024】
対話式メディア・コンテンツ交換
人々はしばしば、コンピューティング・デバイス(またはシステム)を使用して、通信するかまたは情報を交換する。コンピューティング・デバイスを通じて通信するための従来のアプローチは、ショート・メッセージ・サービス(SMS)やマルチメディア・メッセージング・サービス(MMS)など、テキスト・メッセージングを含む可能性がある。例えば、従来のアプローチの下で、第1のコンピューティング・デバイスが、テキスト、画像、オーディオ、および/または映像などを含む通信を、セルラまたはローカルネットワークを通じて第2のコンピューティング・デバイスに対して送信することができる。第2のコンピューティング・デバイスは、通信を受信し、即座に(またはほぼ即座に)、通信に含まれるコンテンツを閲覧すること、コンテンツにアクセスすること、または他の方法でコンテンツと対話することができる。
【0025】
これらの従来の通信アプローチに関連付けられているコンテンツは、コンテンツの受信側が、コンテンツを受信すると、どんな大きな労力もなしに、コンテンツへのアクセス、コンテンツの閲覧、またはコンテンツとの対話を行うことができるという点で、「無料で」提供されると考えられ得る。例えば、受信側コンピューティング・デバイスが画像を受信したとき、コンピューティング・デバイスのユーザは、画像を選択、クリック、またはタップするなどして、画像を閲覧および/またはダウンロードすることができる。
【0026】
したがって、従来のアプローチは一般に、送信相手が、コンテンツを作成または制作し、次いで、作成または制作されたコンテンツを受信相手に対して送ることを伴う。受信相手は、コンテンツを受信して消費する(例えば、使用する、閲覧する、アクセスする、対話する、など)。しかし、通信を提供するためのこれらのタイプおよび他の類似するタイプの従来のアプローチは、退屈であり、面白くなく、かつ/または十分に対話式でない、という可能性がある。本開示の様々な実施形態は、コンピューティング・デバイス(またはシステム)を利用して、メディア・コンテンツを対話式に交換するのを可能にすることができる。
【0027】
図1Aは、本開示の一実施形態による、メディア・コンテンツを対話式に交換するのを可能にするように構成された例示的なシステム100を示す。例示的なシステム100は、メディア・サーバ110と、1つまたは複数のコンピューティング・デバイス(例えば、コンピューティング・デバイスA120、コンピューティング・デバイスB130、
図10のコンピュータ・システム1000など)とを含むことができる。いくつかの実施形態では、メディア・サーバ110は、少なくとも1つのプロセッサ112と、少なくとも1つのデータ・ストア114とを備えることができる。少なくとも1つのプロセッサ112は、メディア・サーバ110の様々なタスクを実施するのを容易にするように構成されてよい。少なくとも1つのデータ・ストア114は、メディア・コンテンツなど、様々なタイプのデータおよび情報を記憶するように構成されてよい。
【0028】
図1Aの例では、1つまたは複数のコンピューティング・デバイスは、第1のコンピューティング・デバイス(例えばコンピューティング・デバイスA)120と、第2のコンピューティング・デバイス(例えばコンピューティング・デバイスB)130とを含むことができる。コンピューティング・デバイスA120は、少なくとも1つのプロセッサ122と、少なくとも1つのディスプレイ124と、少なくとも1つのセンサ126と、少なくとも1つのデータ・ストア128とを備えることができる。同様に、コンピューティング・デバイスB130もまた、少なくとも1つのプロセッサ132と、少なくとも1つのディスプレイ134と、少なくとも1つのセンサ136と、少なくとも1つのデータ・ストア138とを備えることができる。各コンピューティング・デバイス(例えば、コンピューティング・デバイスA120、コンピューティング・デバイスB130など)に関して、少なくとも1つのプロセッサ(例えば、プロセッサ122、プロセッサ132など)は、それぞれのデバイスの様々な動作を容易にすることができる。ディスプレイ要素124および134のそれぞれは、視覚的コンテンツを表示または提示するように構成されてよい。センサ126および136のそれぞれは、データを取得、収集、決定、および/または検出するように構成されてよい。いくつかの場合では、センサ126および136のそれぞれは、タッチ・センサ(例えばタッチ・ディスプレイ)、オーディオ・センサ(例えばマイクロフォン)、または画像センサ(例えばカメラ)、加速度計、ジャイロスコープ、ロケーション・センサ(例えばGPS)などのうちの少なくとも1つを含むことができる(ただしこれらに限定されない)。さらに、データ・ストア128および138は、コンピューティング・デバイスの動作に関連付けられている情報を記憶するように構成されてよい。
【0029】
本開示の様々な実施形態は、コンテンツを対話式に共有または交換するための「対価制(pay−to−play)」アプローチを提供することができる。例えば、受信された通信に含まれるコンテンツの受信側は、受信された通信の中のコンテンツに完全にアクセスするためには、受信された通信に対する返信の中で追加コンテンツを提供するなどによって、「コストを支払う」かまたは何らかの指定された労力を割かなければならない。
【0030】
図1Aを参照すると、いくつかの実施形態では、コンピューティング・デバイスA120に備わる対話式コンテンツ交換モジュール/構成要素129が、コンピューティング・デバイスA120に、少なくとも1つのセンサ126(例えばカメラ)を使用して第1のメディア・コンテンツ・アイテム(例えば、画像、映像など)を取得することを行わせることができる。例えば、コンピューティング・デバイスA120のユーザは、対話式コンテンツ交換構成要素129を開始および利用して、コンピューティング・デバイスA120上の前向きのおよび/または後ろ向きのカメラに写真または映像を撮影させることができる。取得された第1のメディア・コンテンツ・アイテム(例えば、写真、映像など)は、第1のメディア・コンテンツ・アイテムの元の、フル解像度の、かつ/または不明瞭化されていない(例えば、ほぼ明確な、未改変の、など)バージョンに対応してよい。いくつかの実装形態では、対話式コンテンツ交換モジュール129は、コンピューティング・デバイスA120に、不明瞭化されていないバージョンに基づいて第1のメディア・コンテンツ・アイテムの不明瞭化された(例えば、画素化された、ぼかされた、検閲された、見えにくいように遮られた、縮小された、視覚的に不明確な、などの)バージョンを生成することを行わせることができる。いくつかの実装形態では、対話式コンテンツ交換モジュール129は、コンピューティング・デバイスA120に、第1のメディア・コンテンツ・アイテムの不明瞭化されていない(および/またはフル解像度の)バージョンをメディア・サーバ110に対して送信することを行わせることができ、メディア・サーバ110は、不明瞭化されていないバージョンに基づいて、第1のメディア・コンテンツ・アイテムの不明瞭化されたバージョンを生成することができる。
【0031】
さらに、対話式コンテンツ交換モジュール129は、コンピューティング・デバイスA120に、第1のメディア・コンテンツ・アイテムの不明瞭化されたバージョンおよび不明瞭化されていないバージョンをコンピューティング・デバイスB130に対して送信することを行わせることができる。いくつかの実施形態では、第1のメディア・コンテンツ・アイテムの不明瞭化されたバージョンおよび不明瞭化されていないバージョンをコンピューティング・デバイスA120からコンピューティング・デバイスB130に対して送信することは、メディア・サーバ110を通じて実施されてよい。例えば、メディア・サーバ110は、コンピューティング・デバイスA120とコンピューティング・デバイスB130との間で、コンテンツを含む通信を中継することができる。
【0032】
コンピューティング・デバイスB130が、第1のメディア・コンテンツ・アイテムの不明瞭化された(例えば、画素化された、縮小された、などの)バージョンおよび不明瞭化されていない(例えば、ほぼ明確な、フル解像度の、などの)バージョンを受信したとき、対話式コンテンツ交換モジュール/構成要素139は、コンピューティング・デバイスB130が、第1のメディア・コンテンツ・アイテムの不明瞭化されたバージョンへのアクセスを提供するとともに第1のメディア・コンテンツ・アイテムの不明瞭化されていないバージョンへのアクセスを防止できるようにすることができる。第1のメディア・コンテンツ・アイテムの不明瞭化されたバージョンは、第1のコンテンツ・アイテムの不明瞭化されていない(かつ/またはフル解像度の)バージョンの、画素化された、縮小された、サムネイルのプレビューに対応してよい。しばしば、不明瞭化されたバージョンは、第1のメディア・コンテンツ・アイテムの不明瞭化されていない(例えば、フル解像度の、ほぼ明確な、元の、などの)バージョンにユーザがアクセスするのを許可することなく、コンピューティング・デバイスB130のユーザの関心および/または注意を留めておくかまたは掴むことができる。したがって、コンピューティング・デバイスB130のユーザは、第1のメディア・コンテンツ・アイテムの不明瞭化されていないバージョンを見たいと思う可能性がある。
【0033】
第1のメディア・コンテンツ・アイテムの不明瞭化されていないバージョンにアクセスするために、対話式コンテンツ交換モジュール139は、コンピューティング・デバイスB130のユーザが少なくとも1つのセンサ136(例えば、前向きのカメラ、後ろ向きのカメラなど)を利用して第2のメディア・コンテンツ・アイテム(例えば、画像、映像など)を取得できるようにすることができ、この第2のメディア・コンテンツ・アイテムは、不明瞭化されていない(例えば、フル解像度の、元の、未改変の、などの)バージョンに対応してよい。対話式コンテンツ交換モジュール139は、コンピューティング・デバイスB130(またはメディア・サーバ110)に、不明瞭化されていないバージョンに基づいて第2のメディア・コンテンツ・アイテムの不明瞭化されたバージョンを生成することを行わせることができる。コンピューティング・デバイスB130のユーザは、第2のメディア・コンテンツ・アイテムの不明瞭化されていないバージョンおよび不明瞭化されたバージョンをコンピューティング・デバイスA120に対して(例えばメディア・サーバ110を通じて)送り返すことを選ぶことができる。第2のメディア・コンテンツ・アイテムをコンピューティング・デバイスA120に対して送るのに応答して、対話式コンテンツ交換モジュール139は、コンピューティング・デバイスBが第1のメディア・コンテンツ・アイテムの不明瞭化されていないバージョンへのアクセスを提供できるようにすることができる。不明瞭化されたコンテンツを受信し、後続の応答においてコンテンツを送り、次いで不明瞭化されていないコンテンツへのアクセスを受信する、というプロセスが繰り返される。例えば、コンピューティング・デバイスA120のユーザが第2のメディア・コンテンツ・アイテムの不明瞭化されていないバージョンを閲覧するためには、コンピューティング・デバイスA120のユーザは、第3のメディア・コンテンツ・アイテムを取得して、これをコンピューティング・デバイスB130(またはコンピューティング・デバイスB130のユーザ)に対して送らなければならない。
【0034】
図1Bは、本開示の一実施形態による、メディア・コンテンツを対話式に交換するのを可能にするように構成された例示的なシステム150を示す。例示的なシステム150は、コンピューティング・デバイスA120およびコンピューティング・デバイスB130など、1つまたは複数のコンピューティング・デバイスを含むことができる。いくつかの実施形態では、複数のコンピューティング・デバイスが、互いに通信するように構成されてよい。例えば、
図1Bに示されるように、コンピューティング・デバイスA120は、情報を中継するために
図1Aのメディア・サーバ110に必ずしも依存せずに、コンピューティング・デバイス130Bと通信しメディア・コンテンツを交換することができる。
【0035】
したがって、いくつかの実施形態では、
図1Aのメディア・サーバ110は任意選択とすることができる。ある例示的なシナリオでは、対話式コンテンツ交換構成要素129は、コンピューティング・デバイスA120に元の画像を取り込ませることができ、この元の画像は、フル解像度であってよく、ほぼ明確であってよい。対話式コンテンツ交換構成要素129は、コンピューティング・デバイスA120に、1つまたは複数の不明瞭化技法を元の画像に適用して画像の不明瞭化された(例えば、画素化された、縮小された、などの)バージョンを制作することを行わせることができる。対話式コンテンツ交換構成要素129はさらに、コンピューティング・デバイスA120に、画像の不明瞭化されていないバージョンおよび不明瞭化されたバージョンをコンピューティング・デバイスB130に対して送ることを行わせることができる。画像の不明瞭化されていないバージョンおよび不明瞭化されたバージョンがコンピューティング・デバイスBによって受信されると、対話式コンテンツ交換構成要素139は、コンピューティング・デバイスB130に、画像の不明瞭化されたバージョンのみへのアクセスを提供することを行わせることができる。画像の不明瞭化されていないバージョンにアクセスするためには、コンピューティング・デバイスB130はさらに、別の画像を取得し、この別の画像を不明瞭化し、この別の画像の不明瞭化されていないバージョンおよび不明瞭化されたバージョンをコンピューティング・デバイスA120に対して送信し返さなければならない。このプロセスが一定期間にわたって繰り返され、その結果、複数のメディア・コンテンツ・アイテムが「対価制」方式で対話式に交換される。
【0036】
図2は、本開示の一実施形態による、メディア・コンテンツを対話式に交換するのを可能にするように構成された例示的なコンピューティング・デバイス202を示す。例示的なコンピューティング・デバイス202(例えば、
図10のコンピュータ・システム1000)は、前向きの画像センサ(例えば前向きのカメラ)204および後ろ向きの画像センサ(例えば後ろ向きのカメラ)206など、1つまたは複数のセンサを備えることができる。例示的なコンピューティング・デバイス202はまた、視覚的コンテンツを提示するように構成されたディスプレイ要素(例えば、ディスプレイ・スクリーン、タッチ・スクリーンなど)208を備えることもできる。
【0037】
いくつかの実施形態では、コンピューティング・デバイス202は、対話式コンテンツ交換アプリケーションを実行するように構成されてよい。いくつかの場合では、対話式コンテンツ交換アプリケーションは、対話式コンテンツ交換構成要素(例えば、
図1Aおよび
図1Bの対話式コンテンツ交換モジュール129または対話式コンテンツ交換モジュール139)に関連してよい。一例では、対話式コンテンツ交換アプリケーションは、カメラ・モードを開始することができる。カメラ・モードは、選択されたカメラ(例えば、前向きのカメラ204、後ろ向きのカメラ206など)が現在「見ている」かまたは検出するイメージが何であれ、そのイメージのビュー210を提供することができる。
【0038】
図2に示されるように、対話式コンテンツ交換アプリケーションのカメラ・モードは、様々なユーザ・インタフェース要素を提供することができ、これらのユーザ・インタフェース要素は、フラッシュを構成するためのアイコン(またはボタン)212、記録するためのアイコン214、およびカメラを切り替えるためのアイコン216を含む(ただしこれらに限定されない)。いくつかの場合では、フラッシュを構成するためのアイコン(またはボタン)212は、テキスト「フラッシュ」を含むテキスト・アイコンに対応してよい。記録するためのアイコン214は、画像または映像の記録を開始および停止することができる。いくつかの場合では、カメラを切り替えるためのアイコン216は、テキスト「セルフィー」を含むテキスト・アイコンに対応してよく、「セルフィー」は、自分自身の写真を指す用語とすることができる。いくつかの実装形態では、「セルフィー」アイコンまたはボタン216を押すか、タップするか、または他の方法でそれと対話することで、現在使用されているカメラを、例えば後ろ向きのカメラ206から前向きのカメラ204に切り替えることができる。
【0039】
一例では、不明瞭化されたメディア・コンテンツ・アイテムを含む通信が別のコンピューティング・デバイスから受信されたとき、通知218が、対話式コンテンツ交換アプリケーションによって提示されてよい。
図2では、通知218は、通信(「ショット」と呼ばれることも可能である)が「ジョー」という名前のユーザから受信されることを示すことができる。いくつかの場合では、通知218は、メディア・コンテンツ・アイテムの不明瞭化されたバージョンと不明瞭化されていないバージョンの両方が受信された(例えば完全にダウンロードされた)ときに提示されてよい。この例を続けるが、コンピューティング・デバイス202のユーザは、「ジョー」からの通信(例えば「ショット」)に関するより多くの情報を得るために、通知218および/またはデバイス202をタップするか、クリックするか、または他の方法でそれと対話することができる。
【0040】
図3は、本開示の一実施形態による、メディア・コンテンツを対話式に交換するのを可能にするように構成された例示的なコンピューティング・デバイス302(例えば、
図10のコンピュータ・システム1000)を示す。
図2に関して上で考察されたように、ユーザは、受信された通信(例えば「ショット」)に関するより多くの情報を得るために、通信が受信されたことを示す通知と対話することができる。
図3では、ユーザが通知と対話すると、対話式コンテンツ交換アプリケーションは、ユーザによってまだ完全にアクセスされていない1つまたは複数の受信された通信を表示することができる。これらの1つまたは複数の受信された通信は、完全にアクセス可能となるようにはまだ許可されていない。これらの1つまたは複数の受信された通信は、例えば、アクセス可能(例えば、閲覧可能、表示可能)なメディア・コンテンツ・アイテムの不明瞭化されたバージョン、および、まだアクセス可能でないメディア・コンテンツ・アイテムの不明瞭化されていないバージョンを含む可能性がある。いくつかの事例では、これらの1つまたは複数の受信された通信は、「未解決ショット」または「新しいショット」と呼ばれることが可能である。
【0041】
図3の例では、4つの未解決ショットが示されている。未解決ショットは、例えば、一番最近に受信されたものから一番過去に受信されたものへと(またはその逆に)表示または列挙されてよい。この例では、第1の未解決ショットは、ジョン・ドー312から受信された第1のメディア・コンテンツ・アイテム(例えば、画像、映像など)の不明瞭化された(例えば画素化された)バージョン310を含むことができる。第1の未解決ショットはまた、第1のメディア・コンテンツ・アイテム(および/または第1の未解決ショット)が作成された日付(または時刻)314など、メタデータに関連してもよい。
【0042】
第2の未解決ショットは、ジェーン・ドー322から受信された(またはジェーン・ドー322によって送られた)第2のメディア・コンテンツ・アイテムの不明瞭化されたバージョン320を含むことができる。第2の未解決ショットは、第2のメディア・コンテンツ・アイテム(および/または第2の未解決ショット)が特定のロケーション(例えば、カリフォルニア州サンフランシスコ324)で作成されたことを示す情報を含むことができる。
【0043】
図3の例を続けるが、第3の未解決ショットは、ジョー・シュモー332から受信された第3のメディア・コンテンツ・アイテムの不明瞭化されたバージョン330と、キャプション(例えば「ハッピーでいてね!」334)とを含むことができる。さらに、第4の未解決ショットは、フレッド・ブロッグズ342から受信された第4のメディア・コンテンツ・アイテムの不明瞭化されたバージョン340と、第4のメディア・コンテンツ・アイテム(および/または第4の未解決ショット)がジョー・ブロッグズに関連付けられていることを示すタグ344とを含むことができる。
【0044】
いくつかの実施形態では、ショットは他の情報に関連してもよく、これら他の情報は、プロパティ、ショットを送った送信側コンピューティング・デバイスの識別子、ショットが作成されたときに送信側コンピューティング・デバイスが移動していたかもしくは移動されていた速度、ショットが作成されたときに送信側コンピューティング・デバイスが受けていた加速度、ショットが作成されたときに送信側コンピューティング・デバイスが向いていた方向、ショットが作成されたときの送信側コンピューティング・デバイスの周囲の気象条件、および/または、ショットが作成されたときに送信側コンピューティング・デバイスによってアクセスされていたメディア(例えば、再生されていた曲)のタイトル、などを含む(ただしこれらに限定されない)。
【0045】
上で考察されたように、4つの未解決ショットは、まだ完全にアクセス可能ではない。言い換えれば、コンピューティング・デバイス302(または、コンピューティング・デバイス302上で実行中の対話式コンテンツ交換アプリケーション)のユーザは、未解決ショットのメディア・コンテンツ・アイテムの不明瞭化された(例えば、画素化された、縮小された、サムネイル、などの)バージョンにアクセスするかまたはそれを閲覧することしかできず、メディア・コンテンツ・アイテムの不明瞭化されていない(例えば、画素化されていない、拡大された、フル解像度の、元の、などの)バージョンにはまだアクセスすることができない。メディア・コンテンツ・アイテムの不明瞭化されたバージョンは、メディア・コンテンツ・アイテムに対するユーザの関心を誘発するように意図されてよい(例えば、それによりユーザは、メディア・コンテンツ・アイテムの不明瞭化されていないバージョンを閲覧したいと思うであろう)。不明瞭化されていないバージョンにアクセスするには、ユーザは、未解決ショットのそれぞれの送信側に対して送信されることになる自分自身のメディア・コンテンツ・アイテムを作成しなければならない。
【0046】
図4は、本開示の一実施形態による、メディア・コンテンツを対話式に交換するのを可能にするように構成された例示的なコンピューティング・デバイス402(例えば、
図10のコンピュータ・システム1000)を示す。前に考察されたように、通信のための「対価制」アプローチに従って、ユーザは、受信された通信(例えばショット)に含まれるメディア・コンテンツ・アイテムの不明瞭化されていないバージョンにアクセスする(例えば、閲覧する、再生する、など)ためには、受信された通信のそれぞれの送信側に対して送信されることになる自分自身のメディア・コンテンツ・アイテムを制作または作成しなければならない。したがって、未解決ショット(
図3に関して記述されたような)に含まれるメディア・コンテンツ・アイテムの不明瞭化されていないバージョンにアクセスするために、ユーザは、対話式コンテンツ交換アプリケーションのカメラ・モードを作動させることができる。対話式コンテンツ交換アプリケーションのカメラ・モードは、ユーザが、未解決ショットを送った人に対して送信されることになる自分自身のメディア・コンテンツ・アイテムを作成できるようにすることができる。
【0047】
図4の例に示されるように、対話式コンテンツ交換アプリケーションを実行するコンピューティング・デバイス402は、カメラ・モードで動作中であってよい。この例では、ユーザは現在、ピザレストランにいるものとすることができる。ユーザは、ピザの画像の形でメディア・コンテンツ・アイテムを作成すると決定することができる。ユーザは、例えばコンピューティング・デバイス402上の後ろ向きのカメラ406を使用して、ピザの画像410を取り込むことができる。取り込まれた画像410は、画像の不明瞭化されていない(例えば、フル解像度の、未改変の、元の、などの)バージョンに対応してよい。いくつかの実施形態では、コンピューティング・デバイス402は、不明瞭化されていないバージョンに基づいて、画像410の不明瞭化されたバージョンを生成することができる。いくつかの実施形態では、コンピューティング・デバイス402は、不明瞭化されていないバージョンを遠隔サーバ(例えば、
図1Aのメディア・サーバ110)に対して提供することができ、遠隔サーバにおいて、不明瞭化されていないバージョンに基づいて、不明瞭化されたバージョンが生成されてよい。
【0048】
図5は、本開示の一実施形態による、メディア・コンテンツを対話式に交換するのを可能にするように構成された例示的なコンピューティング・デバイス502(例えば、
図10のコンピュータ・システム1000)を示す。ユーザは、メディア・コンテンツ・アイテムの不明瞭化されていないバージョン510(例えば、
図4のピザのフル解像度画像410)を取得する(例えば取り込む)のに続いて、ショット514の送り先となる1つまたは複数の受信側を選択することができ、このショット514は、メディア・コンテンツ・アイテムの不明瞭化されていないバージョン510、ならびにメディア・コンテンツ・アイテムの不明瞭化されたバージョン512を含むことができる。この場合も、不明瞭化されたバージョン512は、不明瞭化されていないバージョン510に1つまたは複数の不明瞭化技法(例えば画素化アルゴリズム)を適用することに基づいて生成されてよい。
【0049】
図5の例に示されるように、コンピューティング・デバイス502のユーザは、ユーザのショット514の送り先となる受信側を選択することができる。いくつかの事例では、ユーザは、未解決ショットへの完全なアクセスを得たい(例えば、未解決ショットに含まれるメディア・コンテンツ・アイテムの不明瞭化されていないバージョンにアクセスしたい)と思う場合がある。したがって、ユーザは、ジョン・ドーやジェーン・ドーなど、未解決ショットをユーザに送った人に対して、自分のショット514を送信することを選択することができる。いくつかの事例では、ユーザは、他の連絡先との会話を開始または再開したいと思う場合がある。
図5の例に示されるように、会話相手となる可能性のある連絡先を含む「最近」リストがあってよい。連絡先は、例えば、コンピューティング・デバイス502のユーザが一番最近にコンテンツを受信した相手から、ユーザが一番過去にコンテンツを受信した相手への順で(またはその逆で)リストされてよい。さらに、いくつかの場合では、連絡先は、ユーザがいつコンテンツを彼らに対して送信したかに基づいてリストされてもよい。
【0050】
図5の例では、コンピューティング・デバイス502のユーザは、ジョン・ドーおよびジェーン・ドーによって送られた未解決ショットに含まれるメディア・コンテンツ・アイテムの不明瞭化されていないバージョンを閲覧したいと思う。したがって、この例では、ユーザは、ジョン・ドーおよびジェーン・ドーを含めるように、自分のショット514の受信側を選択することができる。ショット514を送ると、ユーザは、すぐに(または許容可能な期間内に)、ジョン・ドーおよびジェーン・ドーによって送られたショットに含まれるメディア・コンテンツ・アイテムの不明瞭化されていないバージョンへのアクセスを得ることができる(
図6および
図7参照)。
【0051】
同様に、ジョン・ドーおよびジェーン・ドーはそれぞれ、ユーザのショット514を受信することができ、含まれるメディア・コンテンツ・アイテムの不明瞭化されたバージョン512にアクセスすることができるが、不明瞭化されていないバージョン510にはまだアクセスすることができない。ジョン・ドーおよびジェーン・ドーのそれぞれが不明瞭化されていないバージョン510にアクセスするためには、それぞれが別のショットをユーザに対して送信し返さなければならない。このプロセスが繰り返され、その結果、ユーザらはショットとショットを交換する。
【0052】
図6は、本開示の一実施形態による、メディア・コンテンツを対話式に交換するのを可能にするように構成された例示的なコンピューティング・デバイス602(例えば、
図10のコンピュータ・システム1000)を示す。
図6の例では、コンピューティング・デバイス602のユーザは、ジョン・ドーおよびジェーン・ドーなど、他のユーザにショット(例えば、
図5のショット514)を送っており、これら他のユーザは、前に第1のショット(例えば、
図3の第1の未解決ショット)および第2のショット(例えば、
図3の第2の未解決ショット)をユーザに対して送った。したがって、コンピューティング・デバイス602(または、デバイス602上で実行中の対話式コンテンツ交換アプリケーション)は、すぐに、または許容可能な期間内に、ジョン・ドーからの第1のショットおよびジェーン・ドーからの第2のショットに含まれるメディア・コンテンツ・アイテムの不明瞭化されていないバージョンへのアクセスを、ユーザに提供することができる。
図6の例では、不明瞭化されていないバージョンへのアクセスは、一番過去に受信されたものから一番最近に受信されたものへとソートされてよい。したがって、第1のショットと第2のショットとの間では、最初に、ジェーン・ドーからの第2のショット(例えば、
図3の第2の未解決ショット)に含まれるメディア・コンテンツ・アイテムの不明瞭化されていない(例えば、フル解像度の、画素化されていない、などの)バージョンへのアクセスが、ユーザに提供されてよい。
【0053】
図7は、本開示の一実施形態による、メディア・コンテンツを対話式に交換するのを可能にするように構成された例示的なコンピューティング・デバイス702(例えば、
図10のコンピュータ・システム1000)を示す。いくつかの実施形態では、複数のコンテンツ・アイテムの不明瞭化されていないバージョンへのアクセスが提供されるとき、複数の不明瞭化されていないバージョンは、例えば、一番過去に受信されたものから一番最近に受信されたものへと(またはその逆に)順序付けられてよい。いくつかの実施形態では、複数の不明瞭化されていないバージョンは、仮想スタック中で提示されてよい。例えば、それぞれのメディア・コンテンツ・アイテムの不明瞭化されていない各バージョンが、仮想スタックのそれぞれの(仮想)レイヤ中の表示表現として提示されてよい。
【0054】
上で考察されたように、ユーザは、ジョン・ドーからの第1のショットおよびジェーン・ドーからの第2のショットに含まれるメディア・コンテンツ・アイテムの不明瞭化されていないバージョンへのアクセスを得ることができる。
図7の例では、ジェーン・ドーからのメディア・コンテンツ・アイテム(例えば木の画像)の不明瞭化されていないバージョン710は、仮想スタックの第1の(上方の)レイヤ中の表示表現として提示されてよく、ジョン・ドーからのメディア・コンテンツ・アイテム(例えば風景の画像)の不明瞭化されていないバージョン720は、仮想スタックの第2の(下方の)レイヤ中の表示表現として提示されてよい。
【0055】
この例を続けるが、コンピューティング・デバイス702(または、コンピューティング・デバイス702上で実行中の対話式コンテンツ交換アプリケーション)は、ジェーン・ドーからの不明瞭化されていないバージョン710の表示表現を移動するためのユーザ対話を受信する。ユーザ対話は、不明瞭化されていないバージョン710の表示表現が、ユーザ対話(例えば、タッチベースのドラッグ)に関連付けられている1つまたは複数の動きに基づいて移動するようにすることができる。
図7に示されるように、不明瞭化されていないバージョン710の表示表現が移動されると、ジョン・ドーからの不明瞭化されていないバージョン720の表示表現が、下の(仮想)レイヤ中で見えるようにされてよい。
【0056】
さらに、いくつかの実装形態では、1つまたは複数の動きは、フリックするジェスチャ、スワイプするジェスチャ、投げるジェスチャ、およびトスするジェスチャのうちの少なくとも1つに関連してよい。いくつかの場合では、第1のレイヤ中のジェーン・ドーの不明瞭化されていないバージョン710の表示表現は、コンピューティング・デバイス702のディスプレイ・スクリーンの外に移動されてよく、ジェーン・ドーの不明瞭化されていないバージョン710のインスタンスが、コンピューティング・デバイス702から永続的に除去されてよい(例えば、ジェーン・ドーからの第2のショットは、もはや未解決とは見なされず、削除されてよい)。さらに、ジョン・ドーからの不明瞭化されていないバージョン720の表示表現が、ディスプレイ・スクリーン上で、フル・ビューで提示されてよい。したがって、いくつかの実施形態では、仮想スタックの次のレイヤ中の不明瞭化されていないバージョンは、現在の(例えば一番上の)レイヤ中の不明瞭化されていないバージョンがスワイプで移動されたとき、または除去されたとき(その結果、関連付けられているショットが永続的に削除されてよい)にのみ、フル・ビューでアクセス可能とすることができる。
【0057】
いくつかの実施形態では、メディア・コンテンツ・アイテムの不明瞭化されていないバージョンの表示表現について、スワイプで移動されているときまたは除去されているときに、1つまたは複数のアニメーションがあってよい。いくつかの実施形態では、ユーザが仮想スタック中のメディア・コンテンツ・アイテムのすべてのアクセス可能なまたは利用可能な不明瞭化されていないバージョンをスワイプで移動した後、コンピューティング・デバイス702は、カメラ・モード(例えば、カメラが現在「見ている」かまたは検出するイメージが何であれ、そのイメージのビューを含む)を提供することができる。
【0058】
この場合も、いくつかの実施形態では、不明瞭化されていないバージョンが仮想スタック中で提示される順序は、変更、切替え、および/または逆転されてもよいことを理解されたい(例えば、一番最近に受信されたものが仮想スタックの一番上にあり、一番過去に受信されたものが仮想スタックの一番下にある)。
【0059】
図8Aは、本開示の一実施形態による、メディア・コンテンツを対話式に交換するための例示的な方法800を示す。別段の指定がない限り、様々な実施形態の範囲内で、類似のもしくは代替の順序でまたは並行して実施される、追加の、より少ない、または代替のステップがあってもよいことを理解されたい。
【0060】
ステップ802で、例示的な方法800は、第1のコンピューティング・システム(またはデバイス)が、第1のメディア・コンテンツ・アイテムの不明瞭化されたバージョンを第2のコンピューティング・システムから受信することができる。ステップ804は、第1のコンピューティング・システムが、第1のメディア・コンテンツ・アイテムの不明瞭化されたバージョンへのアクセスを提供することを含むことができる。
【0061】
ステップ806は、第1のコンピューティング・システムが、第1のメディア・コンテンツ・アイテムの不明瞭化されていないバージョンへのアクセスを防止することを含むことができる。ステップ808で、第1のコンピューティング・システムが、第1のコンピューティング・システムの少なくとも1つのセンサを使用して、第2のメディア・コンテンツ・アイテムの不明瞭化されていないバージョンが取得されてよい。
【0062】
ステップ810は、第1のコンピューティング・システムが、第2のメディア・コンテンツ・アイテムの不明瞭化されていないバージョン、および第2のメディア・コンテンツ・アイテムの不明瞭化されていないバージョンに基づいて生成された第2のメディア・コンテンツ・アイテムの不明瞭化されたバージョンのうちの少なくとも一方を、第2のコンピューティング・システムに対して送信することを含むことができる。いくつかの実装形態では、第2のメディア・コンテンツ・アイテムの不明瞭化されたバージョンは、第1のコンピューティング・システム、第2のコンピューティング・システム、メディア・サーバなど、および/またはこれらの任意の組合せによって生成されてよい。いくつかの事例では、第2のメディア・コンテンツ・アイテムの不明瞭化されたバージョンが最初に送信されてよく、第2のメディア・コンテンツ・アイテムの不明瞭化されていないバージョンが後続の時点で送信されてよい。いくつかの場合では、第1のコンピューティング・システムは、第2のメディア・コンテンツ・アイテムの不明瞭化されていないバージョンのみを送信することができ、したがって、メディア・サーバおよび/または第2のコンピューティング・システムが、第2のメディア・コンテンツ・アイテムの不明瞭化されていないバージョンに基づいて、第2のメディア・コンテンツ・アイテムの不明瞭化されたバージョンを生成することができる。
【0063】
ステップ812は、第1のコンピューティング・システムが、第1のメディア・コンテンツ・アイテムの不明瞭化されていないバージョンへのアクセスを提供することを含むことができる。いくつかの実施形態では、第1のメディア・コンテンツ・アイテムの不明瞭化されていないバージョンへのアクセスを提供することは、第1のメディア・コンテンツ・アイテムの不明瞭化されていないバージョンを一定期間にわたって提示することを含むことができる。例えば、第1のメディア・コンテンツ・アイテムが映像に対応する場合は、再生ループ方式または繰り返される方式などで、映像が継続的に再生されてよい(例えば、スワイプで移動されるまで、除去されるまで、デバイスのスクリーンロックが有効にされるまで、および/または、デバイスのスクリーンセーバが有効にされるまで、など)。
【0064】
図8Bは、本開示の一実施形態による、メディア・コンテンツを対話式に交換するための例示的な方法850を示す。この場合も、別段の指定がない限り、様々な実施形態の範囲内で、類似のもしくは代替の順序でまたは並行して実施される、追加の、より少ない、または代替のステップがあってもよいことを理解されたい。
【0065】
例示的な方法850は、ステップ852で、第1のコンピューティング・システムが、第2のメディア・コンテンツ・アイテムの不明瞭化されたバージョンを第2のコンピューティング・システムに対して送信する前に、第3のメディア・コンテンツ・アイテムの不明瞭化されたバージョンを第3のコンピューティング・システムから受信することができる。ステップ854は、第1のコンピューティング・システムが、第3のメディア・コンテンツ・アイテムの不明瞭化されたバージョンへのアクセスを提供することを含むことができる。
【0066】
ステップ856で、第1のコンピューティング・システムは、第3のメディア・コンテンツ・アイテムの不明瞭化されていないバージョンへのアクセスを防止することができる。ステップ858で、第1のコンピューティング・システムは、第2のメディア・コンテンツ・アイテムの不明瞭化されていないバージョン、および第2のメディア・コンテンツ・アイテムの不明瞭化されたバージョンのうちの少なくとも一方を、第3のコンピューティング・システムに対して送信することができる。ステップ860は、第2のメディア・コンテンツ・アイテムの不明瞭化されていないバージョン、および第2のメディア・コンテンツ・アイテムの不明瞭化されたバージョンのうちの少なくとも一方が第3のコンピューティング・システムに対して送信されたときから許容可能な期間内に、第3のメディア・コンテンツ・アイテムの不明瞭化されていないバージョンへのアクセスを提供することを含むことができる。
【0067】
メディア・コンテンツを対話式に交換することに関連付けられている様々な他の実施形態、実装形態、利用、および/または応用が可能であってよい。いくつかの事例では、メディア・コンテンツは、「ラウンドロビン」方式で対話式に交換されてよい。一例では、「ラウンドロビン」のグループは、ユーザA、ユーザB、およびユーザCを含むことができる。ユーザAは、第1のショットをユーザBに対して送ることができる。ユーザBが第1のショットに完全にアクセスする(例えば、第1のショットに含まれる不明瞭化されていないメディア・コンテンツ・アイテムを閲覧する)ために、ユーザBは、第2のショットをユーザCに対して送ることができる。ユーザCが第2のショットへの完全なアクセスを得るために、ユーザCは、第3のショットをユーザAに対して送ることができる等である。
【0068】
いくつかの実施形態では、メディア・コンテンツは、グループ間で対話式に交換されてよい。例えば、第1のグループは、コンピューティング・システムの第1のセットに関連してよく、第2のグループは、コンピューティング・システムの第2のセットに関連してよい。この例では、第1のグループの1人または複数のメンバが、第2のグループの1人または複数のメンバに対して、第1のショットを送ることができる。第2のグループの少なくとも1人のメンバが第1のグループの少なくとも1人のメンバに対して第2のショットを送り返したとき、第2のグループのすべてのメンバは、第1のショットに完全にアクセスすることができる。いくつかの場合では、第1のグループおよび第2のグループは、異なる家族、法人、または組織に対応してよい。
【0069】
いくつかの実装形態では、第1のユーザが複数のショットを第2のユーザから受信した場合、第1のユーザは、第1のユーザが少なくとも1つのショットを第2のユーザに対して送り返したときに、複数のショットに完全にアクセスすることができる。いくつかの事例では、第1のユーザが複数のユーザからショットを受信した場合は、第1のユーザは、第1のユーザが少なくとも1つのショットを複数のユーザに対して送り返したときに、ショットに完全にアクセスすることができる。
【0070】
いくつかの実施形態では、ユーザは、対話式コンテンツ交換構成要素を利用するためのアカウントを作成することができる。一例では、ユーザは、電話番号、名前、ユーザ名など、および/またはこれらの任意の組合せを使用して、アカウントを作成することができる。別の例では、ユーザは、サードパーティ・エンティティ(例えば、ソーシャル・ネットワーキング・サービス、ソーシャル・メディア・サービス、フォーラム・サービスなど)との既存のアカウントに基づいて、アカウントを作成することができる。いくつかの実装形態では、SMS通信に基づく認証または検証ステップがあってもよい。
【0071】
いくつかの実施形態では、第1のユーザは、第1のユーザの連絡先リストまたはアドレス帳に現在含まれていない少なくとも1人の第2のユーザとの間で、ショットを送受信することができる。一例では、第1のユーザは、一般大衆とショットを交換することができる。別の例では、第1のユーザは、機械によって選択された(例えばランダムな)ユーザとショットを交換することができる。
【0072】
いくつかの実施形態では、ユーザは、送信および/または受信されるショットについての保存機能を管理することができる。例えば、ユーザは、自分が送信するショットのみを保存することを選ぶことができる。
【0073】
いくつかの場合では、本開示の様々な実施形態は、ソフトウェア、ハードウェア、および/またはこれらの任意の組合せとして実装されてよい。例えば、本開示の様々な実施形態は、1つまたは複数のコンピューティング・デバイス(および/またはシステム)上でインストールおよび実行されることになる1つまたは複数のアプリケーションとの関連で、実装されてよい。
【0074】
さらに、本開示の様々な実施形態に関連する、多くの他の使用、応用、実装形態、および/または変形があり得ることも企図される。
ソーシャル・ネットワーキング・システム−例示的な実装形態
図9は、本開示の一実施形態による、向上したビデオ符号化のための様々な実施形態で利用され得る例示的なシステム900のネットワーク図を示す。システム900は、1つまたは複数のユーザ・デバイス910と、1つまたは複数の外部システム920と、ソーシャル・ネットワーキング・システム930と、ネットワーク950とを含む。一実施形態では、前述の実施形態との関連で論じられたソーシャル・ネットワーキング・サービス、プロバイダ、および/またはシステムは、ソーシャル・ネットワーキング・システム930として実装されてよい。例示の目的のために、
図9によって示される、システム900の実施形態は、単一の外部システム920と、単一のユーザ・デバイス910とを含む。ただし、他の実施形態において、システム900は、より多くのユーザ・デバイス910、および/または、より多くの外部システム920を含んでもよい。特定の実施形態において、ソーシャル・ネットワーキング・システム930は、ソーシャル・ネットワーク・プロバイダによって運営されるのに対して、外部システム920は、異なるエンティティによって運営され得るという点で、ソーシャル・ネットワーキング・システム930とは別個のものである。しかしながら、様々な実施形態において、ソーシャル・ネットワーキング・システム930および外部システム920は、共に動作して、ソーシャル・ネットワーキング・システム930のユーザ(またはメンバー)に対してソーシャル・ネットワーキング・サービスを提供する。この意味において、ソーシャル・ネットワーキング・システム930は、外部システム920などの他のシステムがインターネット上のユーザに対してソーシャル・ネットワーキング・サービスおよび機能を提供するために使用し得るプラットフォームまたはバックボーンを提供する。
【0075】
ユーザ・デバイス910は、ユーザから入力を受信し、ネットワーク950を通じてデータを送受信することができる1つまたは複数のコンピューティング・デバイスを備える。一実施形態において、ユーザ・デバイス910は、例えば、マイクロソフト・ウィンドウズ(登録商標)と互換性のあるオペレーティング・システム(OS)、Apple OS X、および/またはLinux(登録商標)ディストリビューションを実行する従来のコンピュータ・システムである。別の実施形態において、ユーザ・デバイス910は、スマートフォン、タブレット、携帯情報端末(PDA:personal digital assistant)、携帯電話等などのコンピュータ機能を有するデバイスであってもよい。ユーザ・デバイス910は、ネットワーク950を通じて通信するように構成される。ユーザ・デバイス910は、アプリケーション、例えば、ユーザ・デバイス910のユーザがソーシャル・ネットワーキング・システム930と相互作用することを可能にするブラウザ・アプリケーションを実行することができる。別の実施形態において、ユーザ・デバイス910は、iOSおよびANDROID(登録商標)などの、ユーザ・デバイス910のネイティブ・オペレーティング・システムによって提供されるアプリケーション・プログラミング・インタフェース(API)を通じてソーシャル・ネットワーキング・システム930を相互作用する。ユーザ・デバイス910は、ネットワーク950を通じて外部システム920およびソーシャル・ネットワーキング・システム930と通信するように構成される。ネットワーク950は、有線通信システムおよび/または無線通信システムを使用する、ローカル・エリア・ネットワークおよび/または広域ネットワークの任意の組み合わせを備え得る。
【0076】
1つの実施形態において、ネットワーク950は、標準的な通信技術およびプロトコルを使用する。したがって、ネットワーク950は、イーサネット(登録商標)、902.11、マイクロ波アクセスのための世界的相互運用性(WiMAX:worldwide
interoperability for microwave access)、3G、4G、CDMA、GSM(登録商標)、LTE、デジタル加入者線(DSL:digital subscriber line)等などの技術を使用するリンクを含み得る。同様に、ネットワーク950上で使用されるネットワーキング・プロトコルは、マルチプロトコル・ラベル・スイッチング(MPLS:multiprotocol label switching)、送信制御プロトコル/インターネット・プロトコル(TCP/IP)、ユーザ・データグラム・プロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)、簡易メール転送プロトコル(SMTP:simple mail transfer protocol)、ファイル転送プロトコル(FTP)などを含み得る。ネットワーク950上で交換されるデータは、ハイパーテキスト・マークアップ言語(HTML)および拡張マークアップ言語(XML)を含む技術および/またはフォーマットを使用して表現され得る。また、全部または一部のリンクは、セキュア・ソケット・レイヤ(SSL)、トランスポート・レイヤ・セキュリティ(TLS)、およびインターネット・プロトコル・セキュリティ(IPsec)などの従来の暗号化技術を使用して暗号化され得る。
【0077】
1つの実施形態において、ユーザ・デバイス910は、外部システム920から、およびソーシャル・ネットワーキング・システム930から受信されるマークアップ言語文書914を、ブラウザ・アプリケーション912を使用して処理することによって、外部システム920からのコンテンツおよび/またはソーシャル・ネットワーキング・システム930からのコンテンツを表示し得る。マークアップ言語文書914は、コンテンツと、そのコンテンツのフォーマッティングまたは表示方法を記述する1つまたは複数の命令とを識別する。マークアップ言語文書914内に含まれる命令を実行することによって、ブラウザ・アプリケーション912は、マークアップ言語文書914によって記述されたフォーマットまたは表示方法を使用して、識別されたコンテンツを表示する。例えば、マークアップ言語文書914は、外部システム920およびソーシャル・ネットワーキング・システム930から得られたテキストおよび/または画像データを含む複数のフレームを有するウェブ・ページを生成および表示するための命令を含む。様々な実施形態において、マークアップ言語文書914は、拡張マークアップ言語(XML)データ、拡張ハイパーテキスト・マークアップ言語(XHTML)データ、または、他のマークアップ言語データを含むデータ・ファイルを備える。また、マークアップ言語文書914は、外部システム920とユーザ・デバイス910との間のデータ交換を容易にするためのジャバスクリプト・オブジェクト・ノーテーション(JSON:JavaScript(登録商標)Object Notation)データ、パディング付きのJSON(JSONP:JSON with padding)データ、およびジャバスクリプト・データを含み得る。ユーザ・デバイス910上のブラウザ・アプリケーション912は、ジャバスクリプト・コンパイラを使用して、マークアップ言語文書914を復号し得る。
【0078】
マークアップ言語文書914は、FLASH(商標)アプリケーションまたはUnity(商標)アプリケーション、SilverLight(商標)アプリケーション・フレームワーク等などの、アプリケーションまたはアプリケーション・フレームワークも含み、または、これらに対してもリンクし得る。
【0079】
1つの実施形態において、ユーザ・デバイス910は、ユーザ・デバイス910のユーザがソーシャル・ネットワーキング・システム930へログインしたかを示すデータを含む、1つまたは複数のクッキー916も含む。クッキー916は、ソーシャル・ネットワーキング・システム930からユーザ・デバイス910へ通信されるデータのカスタム化を可能にし得る。
【0080】
外部システム920は、1つまたは複数のウェブ・ページ924a、924bを含む、1つまたは複数のウェブ・サーバを含む。1つまたは複数のウェブ・ページ924a、924bは、ネットワーク950を使用して、ユーザ・デバイス910へ通信される。外部システム920は、ソーシャル・ネットワーキング・システム930とは別個である。例えば、外部システム920は、第1のドメインに対して関連付けられるが、ソーシャル・ネットワーキング・システム930は、別個のソーシャル・ネットワーキング・ドメインに対して関連付けられる。外部システム920に含まれるウェブ・ページ924a、924bは、コンテンツを識別し、識別されたコンテンツのフォーマッティングおよび表示方法を特定する命令を含むマークアップ言語文書914を備える。
【0081】
ソーシャル・ネットワーキング・システム930は、複数のユーザを含み、ソーシャル・ネットワークのユーザに対して、ソーシャル・ネットワークの他のユーザと通信および相互作用するための能力を提供する、ソーシャル・ネットワークのための1つまたは複数のコンピューティング・デバイスを含む。さらに詳細に説明されるように、ソーシャル・ネットワークは、グラフ、すなわち、エッジとノードとを含むデータ構造によって表現され得る。データベース、オブジェクト、クラス、メタ要素、ファイル、または任意の他のデータ構造を含むが、これらに限定されない、他のデータ構造も、ソーシャル・ネットワークを表現するために使用され得る。ソーシャル・ネットワーキング・システム930は、オペレータによって監督、管理、または制御されてよい。ソーシャル・ネットワーキング・システム930のオペレータは、ソーシャル・ネットワーキング・システム930内でコンテンツを管理し、ポリシを統制し、使用メトリクスを収集するための、人間、自動化されたアプリケーション、または一連のアプリケーションであってよい。任意のタイプのオペレータが使用されてよい。
【0082】
ユーザは、ソーシャル・ネットワーキング・システム930に加入し、次いで、そのユーザがつなげられることを望む、ソーシャル・ネットワーキング・システム930の任意の数の他のユーザへのつながりを追加し得る。本明細書において、「友達」という用語は、ユーザがソーシャル・ネットワーキング・システム930を通じてつながり、関連、または関係を形成した、ソーシャル・ネットワーキング・システム930の任意の他のユーザに及ぶ。例えば、一実施形態において、ソーシャル・ネットワーキング・システム930内のユーザが、ソーシャル・グラフ内のノードとして表現される場合、「友達」という用語は、2つのユーザ・ノード間に形成され、かつ、2つのユーザ・ノードを直接的に接続するエッジを指し得る。
【0083】
つながりは、ユーザによって明示的に追加されても、または、ユーザの共通の特性(例えば、同じ教育機関の卒業生であるユーザ)に基づいて、ソーシャル・ネットワーキング・システム930によって自動的に作成されてもよい。例えば、第1のユーザは、友達になりたい特定の他のユーザを具体的に選択する。ソーシャル・ネットワーキング・システム930におけるつながりは、通常は双方向であるが、双方向である必要はなく、そのため、「ユーザ」および「友達」という用語は、枠組みに依存する。ソーシャル・ネットワーキング・システム930のユーザ間のつながりは、通常は、双務的(「二方向」)または「相互的」であるが、つながりは、片務的、または「一方向」であってもよい。例えば、ボブおよびジョーの両者が、ソーシャル・ネットワーキング・システム930のユーザであり、互いにつながっている場合、ボブおよびジョーは、互いのつながりである。他方で、ボブは、ジョーによってソーシャル・ネットワーキング・システム930へ通信されたデータを見るためにジョーとつながることを欲するが、ジョーは、相互的なつながりを形成することを欲しない場合、片務的なつながりが確立され得る。ユーザ間のつながりは、直接的なつながりであり得る。ただし、ソーシャル・ネットワーキング・システム930のいくつかの実施形態は、つながりが、1つまたは複数のつながりのレベルまたは分離度を通じた間接的なものとなることを可能にする。
【0084】
ユーザ間のつながりを確立および維持し、ユーザ間の相互作用を可能にすることに加えて、ソーシャル・ネットワーキング・システム930は、ソーシャル・ネットワーキング・システム930によってサポートされる様々なタイプのアイテムに対してアクションを行うための能力をユーザに対して提供する。こうしたアイテムは、ソーシャル・ネットワーキング・システム930のユーザが所属し得るグループまたはネットワーク(すなわち、人々、エンティティ、およびコンセプトのソーシャル・ネットワーク)、ユーザが興味を持ち得るイベントまたはカレンダー入力、ユーザがソーシャル・ネットワーキング・システム930を通じて使用し得るコンピュータベースのアプリケーション、ソーシャル・ネットワーキング・システム930によって提供されるサービスを通じてまたはソーシャル・ネットワーキング・システム930を通じてユーザがアイテムを購入または販売することを可能にする取引、ならびにユーザがソーシャル・ネットワーキング・システム930内外で実行し得る広告との相互作用を含み得る。これらは、ユーザがソーシャル・ネットワーキング・システム930上で作用を与え得るアイテムのわずかな例にすぎず、多くの他の例が可能である。ユーザは、ソーシャル・ネットワーキング・システム930において、または、ソーシャル・ネットワーキング・システム930とは別個の外部システム920もしくはネットワーク950を通じてソーシャル・ネットワーキング・システム930に対して結合される外部システム920において表現されることが可能なありとあらゆるものと相互作用し得る。
【0085】
ソーシャル・ネットワーキング・システム930は、多様なエンティティとリンクすることも可能である。例えば、ソーシャル・ネットワーキング・システム930は、ユーザが互いに相互作用すること、および、API、ウェブ・サービス、または他の通信チャネルを通じて外部システム920または他のエンティティと相互作用することを可能にする。ソーシャル・ネットワーキング・システム930は、複数のエッジによって相互接続された複数のノードを備える「ソーシャル・グラフ」を生成および維持する。ソーシャル・グラフ内の各ノードは、別のノードに対して作用を与え得るエンティティおよび/または別のノードによって作用を与えられ得るエンティティを表現し得る。ソーシャル・グラフは、様々なタイプのノードを含み得る。ノードのタイプの例は、ユーザ、人間以外のエンティティ、コンテンツ・アイテム、ウェブ・ページ、グループ、アクティビティ、メッセージ、コンセプト、およびソーシャル・ネットワーキング・システム930内のオブジェクトによって表現され得る任意の他のものを含む。ソーシャル・グラフ内の2つのノード間のエッジは、ノード関係から、またはノードのうちの一方によって他方に対して実行されたアクションから生じ得る、2つのノード間の特定の種類のつながり、または関連を表現し得る。いくつかのケースでは、ノード間のエッジは、重み付けされ得る。エッジの重みは、ノード間のつながりまたは関連の強度などの、そのエッジに対して関連付けられている属性を表現し得る。異なるタイプのエッジが、異なる重みと共に提供され得る。例えば、あるユーザが別のユーザに対して「いいね」を表明するときに作成されるエッジには、ある重みが与えられてよく、ユーザが別のユーザと友達になるときに作成されるエッジには、異なる重みが与えられてよい。
【0086】
例として、第1のユーザが第2のユーザを友達として識別した場合、第1のユーザを表すノードと、第2のユーザを表す第2のノードとを接続するソーシャル・グラフ中のエッジが生成される。様々なノードが互いに関係するかまたは対話するのに伴い、ソーシャル・ネットワーキング・システム930は、関係および対話を反映するように、様々なノードを接続するエッジを修正する。
【0087】
ソーシャル・ネットワーキング・システム930は、ユーザによるソーシャル・ネットワーキング・システム930との相互作用を高める、ユーザにより生成されたコンテンツも含む。ユーザにより生成されたコンテンツは、ユーザがソーシャル・ネットワーキング・システム930に対して追加し、アップロードし、送信し、または「投稿し」得るあらゆるものを含み得る。例えば、ユーザは、ユーザ・デバイス910からソーシャル・ネットワーキング・システム930への投稿を通信する。投稿は、ステータス・アップデートもしくは他の文字情報などのデータ、位置情報、写真などの画像、映像、リンク、音楽、または、他の同様のデータおよび/もしくはメディアを含み得る。コンテンツも、第三者によってソーシャル・ネットワーキング・システム930に対して追加され得る。コンテンツ「アイテム」は、ソーシャル・ネットワーキング・システム930においてオブジェクトとして表現される。このようにして、ソーシャル・ネットワーキング・システム930のユーザは、様々な通信チャネルを通じて様々なタイプのテキストおよびコンテンツ・アイテムを投稿することによって、互いに通信することを促される。そのような通信は、ユーザ同士の相互作用を増加させ、ユーザがソーシャル・ネットワーキング・システム930と相互作用する頻度を増加させる。
【0088】
ソーシャル・ネットワーキング・システム930は、ウェブ・サーバ932と、API要求サーバ934と、ユーザ・プロファイル・ストア936と、つながりストア938と、アクション・ロガー940と、アクティビティ・ログ942と、認証サーバ944とを含む。本発明の一実施形態において、ソーシャル・ネットワーキング・システム930は、様々なアプリケーションのための追加的な構成要素、より少ない構成要素、または異なる構成要素を含み得る。ネットワーク・インタフェース、セキュリティ機構、負荷分散装置、フェイルオーバ・サーバ、管理およびネットワーク操作コンソールなどの他の構成要素は、本システムの詳細を曖昧にしないように、図示されていない。
【0089】
ユーザ・プロファイル・ストア936は、ユーザによって申告され、またはソーシャル・ネットワーキング・システム930によって推測された職歴、学歴、趣味または嗜好、住所などの経歴的情報、人口学的情報、および他のタイプの記述的情報を含む、ユーザ・アカウントに関する情報を維持する。この情報は、各ユーザが一意に識別されるように、ユーザ・プロファイル・ストア936内に記憶される。ソーシャル・ネットワーキング・システム930は、異なるユーザ間の1つまたは複数のつながりを記述するデータも、つながりストア938内に記憶する。つながり情報は、同様または共通の職歴、グループ・メンバーシップ、趣味、または学歴を有するユーザを示し得る。また、ソーシャル・ネットワーキング・システム930は、ユーザの他のユーザとの関係をユーザが特定することを可能にする、異なるユーザ間におけるユーザによって定義されたつながりを含む。例えば、ユーザによって定義されたつながりは、友達、同僚、パートナー等などの、ユーザの実生活の関係と並行する、他のユーザとの関係をユーザが生成することを可能にする。ユーザは、予め定義されたタイプのつながりから選択しても、またはユーザ自身のつながりタイプを必要に応じて定義してもよい。非人間エンティティ、バケット、クラスタ・センタ、画像、興味、ページ、外部システム、コンセプト等などの、ソーシャル・ネットワーキング・システム930内の他のノードとのつながりも、つながりストア938内に記憶される。
【0090】
ソーシャル・ネットワーキング・システム930は、ユーザが相互作用し得るオブジェクトに関するデータを維持する。このデータを維持するために、ユーザ・プロファイル・ストア936およびつながりストア938は、ソーシャル・ネットワーキング・システム930によって維持されるオブジェクトの対応するタイプのインスタンスを記憶する。各オブジェクト・タイプは、オブジェクトのタイプに適した情報を記憶するのに適した情報フィールドを有する。例えば、ユーザ・プロファイル・ストア936は、ユーザのアカウントおよびユーザのアカウントに関連した情報を記述するのに適したフィールドを有するデータ構造を含む。特定のタイプの新たなオブジェクトが作成される場合、ソーシャル・ネットワーキング・システム930は、対応するタイプの新たなデータ構造を初期化し、その新たなデータ構造に対して一意のオブジェクト識別子を割り当て、必要に応じて、そのオブジェクトに対してデータを追加することを開始する。これは、例えば、ユーザがソーシャル・ネットワーキング・システム930のユーザになった場合に発生し、ソーシャル・ネットワーキング・システム930は、ユーザ・プロファイル・ストア936内にユーザ・プロファイルの新たなインスタンスを生成し、ユーザ・アカウントに対して一意の識別子を割り当て、ユーザによって提供される情報をユーザ・アカウントのフィールドへ投入し始める。
【0091】
つながりストア938は、他のユーザに対するユーザのつながり、外部システム920に対するつながり、または他のエンティティに対するつながりを記述するのに適したデータ構造を含む。つながりストア938は、つながりタイプもユーザのつながりと関連付け得る。つながりタイプは、ユーザのプライバシー設定と共に使用されて、ユーザに関する情報に対するアクセスを規制し得る。本発明の一実施形態において、ユーザ・プロファイル・ストア936およびつながりストア938は、連合データベースとして実装され得る。
【0092】
つながりストア938、ユーザ・プロファイル・ストア936、およびアクティビティ・ログ942内に記憶されるデータは、ノードを使用して、ノードを接続する様々なオブジェクトおよびエッジを識別して、異なるオブジェクト間の関係を識別するソーシャル・グラフをソーシャル・ネットワーキング・システム930が生成することを可能にする。例えば、第1のユーザが、ソーシャル・ネットワーキング・システム930内で第2のユーザとのつながりを確立する場合、ユーザ・プロファイル・ストア936からの第1のユーザおよび第2のユーザのユーザ・アカウントは、ソーシャル・グラフ内のノードとして動作し得る。つながりストア938によって記憶される、第1のユーザと第2のユーザとの間のつながりは、第1のユーザおよび第2のユーザに対して関連付けられるノード間のエッジである。この例を続けると、第2のユーザは、次いで、第1のユーザに対して、ソーシャル・ネットワーキング・システム930内でメッセージを送信し得る。メッセージを送信するアクションは、第1のユーザおよび第2のユーザを表現する、ソーシャル・グラフ内の2つのノード間の別のエッジであり、メッセージを送信するアクションは、記憶され得る。また、メッセージ自体が、第1のユーザを表現するノードおよび第2のユーザを表現するノードに対して接続される別のノードとして、ソーシャル・グラフにおいて識別され、ソーシャル・グラフに含まれ得る。
【0093】
別の例において、第1のユーザは、ソーシャル・ネットワーキング・システム930によって維持される画像において(または、代替的に、ソーシャル・ネットワーキング・システム930の外部の別のシステムによって維持される画像において)第2のユーザをタグ付けし得る。画像は、それ自体がソーシャル・ネットワーキング・システム930内のノードとして表現され得る。このタグ付けアクションは、ユーザの各々と画像との間にエッジを作成するだけでなく、第1のユーザと第2のユーザとの間のエッジも作成し得る。画像もソーシャル・グラフ内のノードである。また別の例において、ユーザが、イベントへ参加することを確かめる場合、そのユーザおよびそのイベントは、ユーザ・プロファイル・ストア936から取得されるノードであり、そのイベントへの参加は、アクティビティ・ログ942から得られ得るノード間のエッジである。ソーシャル・グラフを生成および維持することによって、ソーシャル・ネットワーキング・システム930は、多くの異なるタイプのオブジェクトを記述するデータ、ならびに、それらのオブジェクト間の相互作用およびつながりを含み、社会的に関連する情報の豊富なソースを提供する。
【0094】
ウェブ・サーバ932は、ソーシャル・ネットワーキング・システム930を、ネットワーク950を通じて、1つもしくは複数のユーザ・デバイス910および/または1つもしくは複数の外部システム920に対してリンクする。ウェブ・サーバ932は、ウェブ・ページ、およびJava(登録商標)、JavaScript、Flash、XMLなどの他のウェブ関連コンテンツを供給する。ウェブ・サーバ932は、メール・サーバを含み、または、ソーシャル・ネットワーキング・システム930と1つもしくは複数のユーザ・デバイス910との間のメッセージを受信およびルーティングするための他のメッセージング機能を含み得る。メッセージは、インスタント・メッセージ、キュー・メッセージ(例えば、電子メール)、テキストおよびSMSメッセージ、または任意の他の適切なメッセージング・フォーマットであり得る。
【0095】
API要求サーバ934は、1つまたは複数の外部システム920およびユーザ・デバイス910が、1つまたは複数のAPI関数を呼び出すことによって、ソーシャル・ネットワーキング・システム930からのアクセス情報を呼び出すことを可能にする。API要求サーバ934は、外部システム920が、APIを呼び出すことによって、ソーシャル・ネットワーキング・システム930に対して情報を送信することも可能にし得る。外部システム920は、1つの実施形態において、ネットワーク950を通じてソーシャル・ネットワーキング・システム930へAPI要求を送信し、API要求サーバ934は、そのAPI要求を受信する。API要求サーバ934は、API要求に対して関連付けられているAPIを呼び出すことによって要求を処理して、適当な応答を生成する。API要求サーバ934は、その適当な応答を、ネットワーク950を通じて外部システム920へ通信する。例えば、API要求に応答して、API要求サーバ934は、外部システム920に対してログインしたユーザのつながりなどの、ユーザに対して関連付けられているデータを収集し、収集されたデータを外部システム920へ通信する。別の実施形態において、ユーザ・デバイス910は、外部システム920と同じ手法で、APIを通じてソーシャル・ネットワーキング・システム930と通信する。
【0096】
アクション・ロガー940は、ソーシャル・ネットワーキング・システム930内での、および/またはソーシャル・ネットワーキング・システム930外でのユーザ・アクションに関する通信をウェブ・サーバ932から受信することが可能である。アクション・ロガー940は、ユーザ・アクションに関する情報をアクティビティ・ログ942へ投入し、ソーシャル・ネットワーキング・システム930の内部で、およびソーシャル・ネットワーキング・システム930の外部で、そのユーザによって行われた様々なアクションをソーシャル・ネットワーキング・システム930が発見することを可能にする。特定のユーザが、ソーシャル・ネットワーキング・システム930上の別のノードに関して行う任意のアクションは、アクティビティ・ログ942内または同様のデータベースもしくは他のデータ・レポジトリ内で維持される情報を通じて、各ユーザのアカウントに対して関連付けられ得る。識別および記憶される、ソーシャル・ネットワーキング・システム930内でユーザによって行われるアクションの例は、例えば、別のユーザに対するつながりを追加すること、別のユーザへメッセージを送信すること、別のユーザからのメッセージを読むこと、別のユーザに対して関連付けられるコンテンツを視聴すること、別のユーザによって投稿されたイベントに参加すること、画像を投稿すること、画像を投稿しようと試行すること、または、別のユーザもしくは別のオブジェクトと相互作用する他のアクションを含み得る。ユーザが、ソーシャル・ネットワーキング・システム930内でアクションを行う場合、そのアクションは、アクティビティ・ログ942内に記録される。一実施形態において、ソーシャル・ネットワーキング・システム930は、アクティビティ・ログ942をエントリのデータベースとして維持する。アクションが、ソーシャル・ネットワーキング・システム930内で行われる場合、そのアクションについてのエントリが、アクティビティ・ログ942に対して追加される。アクティビティ・ログ942は、アクション・ログと称され得る。
【0097】
また、ユーザ・アクションは、ソーシャル・ネットワーキング・システム930とは別個の外部システム920などの、ソーシャル・ネットワーキング・システム930の外部のエンティティ内で発生するコンセプトおよびアクションに対して関連付けられ得る。例えば、アクション・ロガー940は、ユーザによる外部システム920との相互作用を記述するデータを、ウェブ・サーバ932から受信し得る。この例において、外部システム920は、ソーシャル・グラフにおける構造化されたアクションおよびオブジェクトに従って、ユーザによる相互作用を報告する。
【0098】
ユーザが外部システム920と相互作用するアクションの他の例は、ユーザが外部システム920もしくは別のエンティティにおいて興味を表現すること、外部システム920もしくは外部システム920内のウェブ・ページ922aと議論するソーシャル・ネットワーキング・システム930に対してユーザがコメントを投稿すること、ユーザがソーシャル・ネットワーキング・システム930に対してユニフォーム・リソース・ロケータ(URL)もしくは外部システム920に対して関連付けられる他の識別子を投稿すること、ユーザが外部システム920に対して関連付けられるイベントへ参加すること、または、外部システム920に関連する、ユーザによる任意の他のアクションを含む。したがって、アクティビティ・ログ942は、ソーシャル・ネットワーキング・システム930のユーザと、ソーシャル・ネットワーキング・システム930とは別個の外部システム920との間の相互作用を記述するアクションを含み得る。
【0099】
認証サーバ944は、ソーシャル・ネットワーキング・システム930のユーザの1つまたは複数のプライバシー設定を強化する。ユーザのプライバシー設定は、ユーザに対して関連付けられる特定の情報がどのように共有され得るかを決定する。プライバシー設定は、ユーザに対して関連付けられる特定の情報の仕様、および情報が共有され得る1つまたは複数のエンティティの仕様を備える。情報が共有され得るエンティティの例は、他のユーザ、アプリケーション、外部システム920、または、その情報に潜在的にアクセスし得る任意のエンティティを含み得る。ユーザによって共有され得る情報は、プロフィール写真などのユーザ・アカウント情報、ユーザに対して関連付けられる電話番号、ユーザのつながり、つながりを追加すること、ユーザ・プロフィール情報を変更することなどのユーザによって行われるアクション等を備える。
【0100】
プライバシー設定仕様は、異なるレベルの粒度で提供され得る。例えば、プライバシー設定は、他のユーザと共有されるべき具体的な情報を識別し得る。プライバシー設定は、職場電話番号、または、プロフィール写真、自宅電話番号、およびステータスを含む個人情報などの関連情報の具体的なセットを識別する。代替的に、プライバシー設定は、ユーザに対して関連付けられる全ての情報に対して適用されてもよい。特定の情報にアクセスすることができるエンティティのセットの仕様も、様々なレベルの粒度で特定され得る。情報が共有され得るエンティティの様々なセットは、例えば、ユーザの全ての友達、友達の全ての友達、全てのアプリケーション、または全ての外部システム920を含み得る。1つの実施形態は、エンティティのセットの仕様がエンティティの一覧表を備えることを可能にする。例えば、ユーザは、一定の情報に対してアクセスすることを許可される外部システム920のリストを提供し得る。別の実施形態は、情報に対してアクセスすることを許可されない例外と共にエンティティのセットを仕様が備えることを可能にする。例えば、ユーザは、全ての外部システム920がユーザの職場情報に対してアクセスすることを許可し得るが、職場情報に対してアクセスすることを許可されない外部システム920のリストを特定し得る。一定の実施形態は、一定の情報に対してアクセスすることを許可されない例外のリストを「ブロック・リスト」と呼ぶ。ユーザによって特定されるブロック・リストに所属する外部システム920は、プライバシー設定において特定される情報に対してアクセスすることをブロックされる。情報の仕様の粒度と、情報が共有されるエンティティの仕様の粒度との様々な組み合わせが可能である。例えば、全ての個人情報は、友達と共有され得るのに対して、全ての職場情報は、友達の友達と共有され得る。
【0101】
認証サーバ944は、ユーザに対して関連付けられる一定の情報がユーザの友達、外部システム920、ならびに/または他のアプリケーションおよびエンティティによってアクセスされ得るかを決定するためのロジックを含む。外部システム920は、ユーザの職場電話番号などの、ユーザのより個人的かつ機密的な情報に対してアクセスするために、認証サーバ944からの認証を必要とし得る。ユーザのプライバシー設定に基づいて、認証サーバ944は、別のユーザ、外部システム920、アプリケーション、または別のエンティティが、ユーザによって行われるアクションに関する情報を含む、ユーザに対して関連付けられる情報に対してアクセスすることを許可されているかを決定する。
【0102】
ソーシャル・ネットワーキング・システム930は、メディア・サーバ946を備えることができる。いくつかの実施形態では、メディア・サーバ946は、
図1のメディア・サーバ110として実装されてよい。メディア・サーバ946は、メディア・コンテンツを対話式に交換するのを容易にするように構成されてよい。例えば、メディア・サーバ946は、メディア・コンテンツの対話式交換に携わる1つまたは複数のコンピューティング・デバイス(例えば、ユーザ・デバイス910、
図10のコンピュータ・システム1000)間で情報を中継するように構成されてよい。さらに、いくつかの実施形態では、ユーザ・デバイス910は、対話式コンテンツ交換構成要素918を備えることができる。対話式コンテンツ交換構成要素918は、メディア・コンテンツを対話式に交換することに関連付けられている様々な動作を容易にするように構成されてよい。例えば、対話式コンテンツ交換構成要素918は、
図1Aおよび
図1Bの対話式コンテンツ交換アプリケーション129および139に対応してよい。
【0103】
ハードウェア実装形態
前述のプロセスおよび特徴は、多種多様なマシンおよびコンピュータ・システム・アーキテクチャによって、ならびに、多種多様なネットワークおよびコンピューティング環境において実装され得る。
図10は、本発明に応じて本明細書に記載された1つまたは複数の実施形態を実装するために使用され得るコンピュータ・システム1000の例を例示する。コンピュータ・システム1000は、コンピュータ・システム1000に対して、本明細書において議論されるプロセスおよび特徴を実行させるための命令のセットを含む。コンピュータ・システム1000は、他のマシンへ接続され(例えば、ネットワーク化され)得る。ネットワーク化された配置において、コンピュータ・システム1000は、クライアント/サーバ・ネットワーク環境内のサーバ・マシンもしくはクライアント・マシンの資格において動作し、または、ピア・ツー・ピア(もしくは分散)・ネットワーク環境内のピア・マシンとして動作し得る。本発明の一実施形態において、コンピュータ・システム1000は、ソーシャル・ネットワーキング・システム1030、ユーザ・デバイス910、外部システム1020、またはこれらの構成要素であってもよい。本発明の一実施形態において、コンピュータ・システム1000は、ソーシャル・ネットワーキング・システム1030の全てまたは部分を構成する多くのサー間のうちの1つのサーバであってもよい。
【0104】
コンピュータ・システム1000は、プロセッサ1002と、キャッシュ1004と、コンピュータ読取可能な媒体上に記憶され、本明細書において説明されるプロセスおよび特徴へ向けられた、1つまたは複数の実行可能なモジュールおよびドライバとを含む。また、コンピュータ・システム1000は、高性能入出力(I/O)バス1006と、標準I/Oバス1008とを含む。ホスト・ブリッジ1010は、プロセッサ1002を高性能I/Oバス1006に対して結合する一方で、I/Oバス・ブリッジ1012は、2つのバス1006および1008を互いに結合する。システム・メモリ1014および1つまたは複数のネットワーク・インタフェース1016は、高性能I/Oバス1006へ結合される。コンピュータ・システム1000は、ビデオ・メモリと、ビデオ・メモリに対して結合される表示デバイスとをさらに含んでもよい(図示せず)。マス・ストレージ1018およびI/Oポート1020は、高性能I/Oバス1008へ結合される。コンピュータ・システム1000は、バス1008に対して結合される、キーボードおよびポインティング・デバイス、表示デバイス、または他の入出力デバイス(図示せず)を随意的に含んでもよい。全体的に、これらの要素は、カリフォルニア州サンタ・クララのインテル・コーポレーション社(Intel Corporation)によって製造されるx86互換性のあるプロセッサ、カリフォルニア州サニーベルのアドバンスト・マイクロ・デバイス社(AMD:Advanced Micro Devices,Inc)によって製造されるx86互換性のあるプロセッサ、および任意の他の適切なプロセッサを含むが、これらに限定されない、広範なカテゴリのコンピュータ・ハードウェア・システムを表現することが意図される。
【0105】
オペレーティング・システムは、ソフトウェア・アプリケーション(図示せず)へのデータの入力およびソフトウェア・アプリケーションからのデータの出力を含む、コンピュータ・システム1000の動作を管理および制御する。オペレーティング・システムは、システム上で実行されているソフトウェア・アプリケーションと、システムのハードウェア構成要素との間のインタフェースを提供する。任意の適切なオペレーティング・システム、例えば、LINUXオペレーティング・システム、カリフォルニア州クパチーノのアップル・コンピュータ社(Apple Computer,Inc.)から市販されているアップル・マッキントッシュ・オペレーティング・システム、UNIX(登録商標)オペレーティング・システム、マイクロソフト(登録商標)ウィンドウズ(登録商標)オペレーティング・システム、BSDオペレーティング・システム等などが使用され得る。他の実装も可能である。
【0106】
コンピュータ・システム1000の要素は、下記においてより詳細に説明される。具体的には、ネットワーク・インタフェース1016は、コンピュータ・システム1000と、幅広いネットワークのうちの任意のもの、例えば、イーサネット(例えば、IEEE802.3)・ネットワーク、バックプレーン等などとの間の通信を提供する。マス・ストレージ1018は、上記に識別されたそれぞれのコンピューティング・システムによって実装される上述されたプロセスおよび特徴を実行するためのデータおよびプログラミング命令のための永続的なストレージを提供するのに対して、システム・メモリ1014(例えば、DRAM)は、プロセッサ1002によって実行される場合のデータおよびプログラミング命令のための一時的なストレージを提供する。I/Oポート1020は、コンピュータ・システム1000へ結合され得る付加的な周辺デバイス間の通信を提供する、1つまたは複数のシリアル通信ポートおよび/またはパラレル通信ポートであり得る。
【0107】
コンピュータ・システム1000は、多様なシステム・アーキテクチャを含むことができ、コンピュータ・システム1000の様々な構成要素は、再配置されてもよい。例えば、キャッシュ1004は、プロセッサ1002と共にチップ上に実装されてもよい。代替的に、キャッシュ1004およびプロセッサ1002は、「プロセッサ・モジュール」としてまとめられて、プロセッサ1002が「プロセッサ・コア」と称されてもよい。さらに、本発明の一定の実施形態は、上記構成要素の全部を必要としなくても、または、含まなくてもよい。例えば、標準I/Oバス1008へ結合される周辺デバイスは、高性能I/Oバス1006へ結合されてもよい。また、いくつかの実施形態において、単一のバスのみが存在して、コンピュータ・システム1000の構成要素が、その単一のバスへ結合されてもよい。さらに、コンピュータ・システム1000は、付加的なプロセッサ、記憶デバイス、またはメモリなどの付加的な構成要素を含んでもよい。
【0108】
一般に、本明細書において説明されるプロセスおよび特徴は、オペレーティング・システムの一部もしくは特定のアプリケーション、構成要素、プログラム、オブジェクト、モジュール、または「プログラム」と称される一連の命令として実装され得る。例えば、1つまたは複数のプログラムは、本明細書において説明される具体的なプロセスを実行するために使用され得る。プログラムは、典型的には、1つまたは複数のプロセッサによって読み出され、実行される場合に、コンピュータ・システム1000に対して、本明細書において説明されるプロセスおよび特徴を実行するための動作を実行させる、1つまたは複数の命令を、コンピュータ・システム1000内の様々なメモリおよび記憶デバイスにおいて備える。本明細書において説明されるプロセスおよび特徴は、ソフトウェア、ファームウェア、ハードウェア(例えば、特定用途向け集積回路)、または、これらの任意の組み合わせにおいて実装され得る。
【0109】
1つの実装において、本明細書において説明されるプロセスおよび特徴は、分散コンピューティング環境において個々にまたはまとめて、コンピュータ・システム1000によって実行される一連の実行可能なモジュールとして実装される。前述のモジュールは、ハードウェア、コンピュータ読取可能な媒体(もしくはマシン読取可能な媒体)上に記憶される実行可能なモジュール、または、両者の組み合わせによって実現され得る。例えば、モジュールは、プロセッサ1002などの、ハードウェア・システム内のプロセッサによって実行されるべき複数の命令または一連の命令を備え得る。まず、一連の命令は、マス・ストレージ1018などの記憶デバイス上に記憶され得る。ただし、一連の命令は、任意の適切なコンピュータ読取可能な記憶媒体上に記憶されてもよい。さらに、一連の命令は、局所的に記憶される必要はなく、ネットワーク上のサーバなどの遠隔記憶デバイスからネットワーク・インタフェース1016を通じて受信されてもよい。命令は、マス・ストレージ1018などの記憶デバイスからシステム・メモリ1014内へコピーされ、次いで、プロセッサ1002によってアクセスされ、実行される。様々な実施形態において、1つまたは複数のモジュールは、並列処理環境内の複数のサーバなどの、1つまたは複数の位置における、1つまたは複数のプロセッサによって実行され得る。
【0110】
コンピュータ読取可能な媒体の例は、揮発性メモリ・デバイスおよび不揮発性メモリ・デバイスなどの記録可能なタイプの媒体、ソリッド・ステート・メモリ、フロッピー(登録商標)ディスクおよび他の取り外し可能なディスク、ハード・ディスク・ドライブ、磁気媒体、光ディスク(例えば、コンパクト・ディスク読取専用メモリ(CD ROMS)、デジタル多用途ディスク(DVD))、他の同様の非一時的で(もしくは一時的で)、有形の(もしくは無形の)記憶媒体、または、本明細書において説明されるプロセスおよび特徴のうちの任意の1つもしくは複数を実行すべく、コンピュータ・システム1000による実行のために一連の命令を記憶し、符号化し、もしくは担持するのに適切な任意のタイプの媒体を含むが、これらに限定されない。
【0111】
説明の目的のために、多くの具体的な詳細が、本説明の完全な理解を提供するために述べられている。しかしながら、こうした具体的な詳細なしに本開示の実施形態が実施され得ることは、当業者には明らかであろう。いくつかの例において、モジュール、構造、プロセス、特徴、およびデバイスは、本説明を曖昧にすることを回避するために、ブロック図の形式で示される。他の例において、機能ブロック図およびフロー図は、データおよび論理フローを表現するために示される。ブロック図およびフロー図の構成要素(例えば、モジュール、ブロック、構造、デバイス、特徴等)は、本明細書において明示的に説明および図示されたような手法以外の手法で、様々に組み合わされ、分離され、除去され、順序を並べ替えられ、置換されてもよい。
【0112】
この明細書における、「1つの実施形態」、「一実施形態」、「他の実施形態」、「一連の実施形態」、「いくつかの実施形態」、「様々な実施形態」等への言及は、実施形態に関連して説明される特定の特徴、設計、構造、または特性が本開示の少なくとも1つの実施形態に含まれることを意味する。本明細書内の様々な部分における「1つの実施形態において」または「別の実施形態」という句の出現は、必ずしも全て同じ実施形態に言及するものとは限らず、別個の実施形態または代替的な実施形態は、他の実施形態と相互排他的ではない。さらに、「実施形態」等への明示的な言及が存在しても存在しなくても、様々な特徴が説明され、様々な特徴は、いくつかの実施形態において様々に組み合わされ、含まれ得るが、他の実施形態においては様々に省略され得る。同様に、いくつかの実施形態にとっては選好事項または要件であり得るが、他の実施形態にとっては選好事項または要件ではない、様々な特徴が説明される。
【0113】
本明細書において使用される文言は、主に、読みやすさと教育的目的のために選択されており、発明の主題の輪郭を描くため、または境界線を描くために選択されたものではない。そのため、本発明の範囲は、この詳細な説明によって限定されるのではなく、むしろ、本明細書に基づく出願について発行される任意の請求項によって限定されることが意図される。したがって、本発明の実施形態の開示は、本発明の範囲の例示とはなるが、限定とはならないことが意図され、本発明の範囲は、下記の特許請求の範囲において述べられる。