(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6178237
(24)【登録日】2017年7月21日
(45)【発行日】2017年8月9日
(54)【発明の名称】ソーシャルプライバシ及びコンタクト関連付け機能を有する個人ディレクトリ
(51)【国際特許分類】
G06F 13/00 20060101AFI20170731BHJP
G06Q 50/10 20120101ALI20170731BHJP
G06F 21/62 20130101ALI20170731BHJP
G06F 21/60 20130101ALI20170731BHJP
【FI】
G06F13/00 650B
G06Q50/10
G06F21/62 354
G06F21/60 360
【請求項の数】18
【全頁数】22
(21)【出願番号】特願2013-524873(P2013-524873)
(86)(22)【出願日】2011年8月11日
(65)【公表番号】特表2013-543607(P2013-543607A)
(43)【公表日】2013年12月5日
(86)【国際出願番号】US2011047335
(87)【国際公開番号】WO2012024146
(87)【国際公開日】20120223
【審査請求日】2014年8月4日
(31)【優先権主張番号】12/857,192
(32)【優先日】2010年8月16日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】508178054
【氏名又は名称】フェイスブック,インク.
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】ウ,チャールズ チュ−シン
【審査官】
坂東 博司
(56)【参考文献】
【文献】
米国特許出願公開第2008/0205655(US,A1)
【文献】
特開2007−328564(JP,A)
【文献】
国際公開第2009/033182(WO,A1)
【文献】
米国特許出願公開第2010/0198820(US,A1)
【文献】
米国特許出願公開第2005/0193054(US,A1)
【文献】
米国特許出願公開第2002/0106066(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/00
G06F 21/60
G06F 21/62
G06Q 50/10
(57)【特許請求の範囲】
【請求項1】
ソーシャルネットワーキングシステムに関連する1以上の計算装置が、発信元ユーザからターゲットユーザのコネクション情報に対するリクエストを受信するステップと、
前記ソーシャルネットワーキングシステムに関連する1以上の計算装置が、前記ターゲットユーザのコネクション情報を前記ターゲットユーザの計算装置の記憶装置における1以上のディレクトリにおいて検索するステップと、
前記ターゲットユーザのコネクション情報が検出されると、前記ソーシャルネットワーキングシステムに関連する1以上の計算装置が、前記ターゲットユーザのコネクション情報が前記発信元ユーザに提供されることを前記ターゲットユーザの1以上のプライバシ設定が許可しているか判断するステップと、
前記ターゲットユーザのコネクション情報が前記発信元ユーザに提供されることを前記プライバシ設定が許可しているとき、前記ソーシャルネットワーキングシステムに関連する1以上の計算装置が、前記ターゲットユーザのコネクション情報を前記発信元ユーザに提供するステップと、
前記ターゲットユーザのコネクション情報が前記発信元ユーザに提供されることを前記プライバシ設定が許可していないとき、前記ソーシャルネットワーキングシステムに関連する1以上の計算装置が、前記プライバシ設定が前記発信元ユーザと前記ターゲットユーザとの間の匿名通信セッションを許可しているか判断し、前記プライバシ設定が匿名通信セッションを許可しているとき、前記発信元ユーザと前記ターゲットユーザとの間の匿名通信セッションを確立するステップであって、前記発信元ユーザのコネクション情報は前記匿名通信セッションにおいて前記ターゲットユーザに提示され、前記ターゲットユーザのコネクション情報は前記匿名通信セッションにおいて前記発信元ユーザから隠される、確立するステップと、
前記匿名通信セッションが終了したことに応答して、前記ソーシャルネットワーキングシステムが、前記ソーシャルネットワーキングシステムにおける前記発信元ユーザとの関係を作成するか、又は前記ソーシャルネットワーキングシステムにおいて前記関係の作成を阻止することを前記ターゲットユーザに促すステップと、
前記ソーシャルネットワーキングシステムにおける前記発信元ユーザと前記ターゲットユーザとの間の関係を作成するか、又は前記ソーシャルネットワーキングシステムにおいて前記関係の作成を阻止するステップと、
を有する方法。
【請求項2】
前記ソーシャルネットワーキングシステムにおける前記発信元ユーザと前記ターゲットユーザとの間の関係を作成するステップは、前記ソーシャルネットワーキングシステムにおける前記ターゲットユーザから前記発信元ユーザに友達要求を送信することを含む、請求項1記載の方法。
【請求項3】
前記ソーシャルネットワーキングシステムは、複数のノードと前記ノードを接続するエッジとを有するソーシャルグラフを有し、
前記ソーシャルグラフにおける少なくとも1つのノードは前記発信元ユーザに対応し、
前記ソーシャルグラフにおける少なくとも1つのノードは前記ターゲットユーザに対応する、請求項1記載の方法。
【請求項4】
前記ソーシャルネットワーキングシステムにおける前記発信元ユーザと前記ターゲットユーザとの間の関係を作成するステップは、前記発信元ユーザに対応する前記ソーシャルグラフにおける前記ノードの少なくとも1つと前記ターゲットユーザに対応する前記ソーシャルグラフにおける前記ノードの少なくとも1つとの間の関係エッジを作成することを含み、
前記ソーシャルネットワーキングシステムにおいて前記ターゲットユーザから前記発信元ユーザを阻止するステップは、前記発信元ユーザに対応する前記ソーシャルグラフにおける前記ノードの少なくとも1つと前記ターゲットユーザに対応する前記ソーシャルグラフにおける前記ノードの少なくとも1つとの間の阻止エッジを作成することを含む、請求項3記載の方法。
【請求項5】
前記プライバシ設定の1以上は、前記ターゲットユーザに対応する前記ソーシャルグラフにおける前記ノードが、エッジ数の閾値の範囲内で前記ターゲットユーザに対応する前記ソーシャルグラフにおける前記ノードの少なくとも1つに接続されるとき、前記ターゲットユーザのコネクション情報が前記発信元ユーザに提供されることを許可する設定を含む、請求項3記載の方法。
【請求項6】
前記プライバシ設定の1以上は、前記ターゲットユーザがある期間内にある地理的位置にいたとき、前記ターゲットユーザのコネクション情報が前記発信元ユーザに提供されることを許可する設定を含む、請求項1記載の方法。
【請求項7】
ソフトウェアを実現する1以上のコンピュータ可読な非一時的媒体であって、前記ソフトウェアは、実行時、
ソーシャルネットワーキングシステムにおいて、発信元ユーザからターゲットユーザのコネクション情報に対するリクエストを受信するステップと、
前記ソーシャルネットワーキングシステムにおいて、前記ターゲットユーザのコネクション情報を前記ターゲットユーザの計算装置の記憶装置における1以上のディレクトリにおいて検索するステップと、
前記ターゲットユーザのコネクション情報が検出されると、前記ソーシャルネットワーキングシステムにおいて、前記ターゲットユーザのコネクション情報が前記発信元ユーザに提供されることを前記ターゲットユーザの1以上のプライバシ設定が許可しているか判断するステップと、
前記ターゲットユーザのコネクション情報が前記発信元ユーザに提供されることを前記プライバシ設定が許可しているとき、前記ソーシャルネットワーキングシステムから、前記ターゲットユーザのコネクション情報を前記発信元ユーザに提供するステップと、
前記ターゲットユーザのコネクション情報が前記発信元ユーザに提供されることを前記プライバシ設定が許可していないとき、前記ソーシャルネットワーキングシステムにおいて、前記プライバシ設定が前記発信元ユーザと前記ターゲットユーザとの間の匿名通信セッションを許可しているか判断し、前記プライバシ設定が匿名通信セッションを許可しているとき、前記ソーシャルネットワーキングシステムにおいて、前記発信元ユーザと前記ターゲットユーザとの間の匿名通信セッションを確立するステップであって、前記発信元ユーザのコネクション情報は前記匿名通信セッションにおいて前記ターゲットユーザに提示され、前記ターゲットユーザのコネクション情報は前記匿名通信セッションにおいて前記発信元ユーザから隠される、確立するステップと、
前記匿名通信セッションが終了したことに応答して、前記ソーシャルネットワーキングシステムが、前記ソーシャルネットワーキングシステムにおける前記発信元ユーザとの関係を作成するか、又は前記ソーシャルネットワーキングシステムにおいて前記関係の作成を阻止することを前記ターゲットユーザに促すステップと、
前記ソーシャルネットワーキングシステムにおける前記発信元ユーザと前記ターゲットユーザとの間の関係を作成するか、又は前記ソーシャルネットワーキングシステムにおいて前記関係の作成を阻止するステップと、
を実行するよう構成される媒体。
【請求項8】
前記ソーシャルネットワーキングシステムにおける前記発信元ユーザと前記ターゲットユーザとの間の関係を作成するステップは、前記ターゲットユーザから前記発信元ユーザに友達要求を送信することを含む、請求項7記載の媒体。
【請求項9】
前記ソーシャルネットワーキングシステムは、複数のノードと前記ノードを接続するエッジとを有するソーシャルグラフを有し、
前記ソーシャルグラフにおける少なくとも1つのノードは前記発信元ユーザに対応し、
前記ソーシャルグラフにおける少なくとも1つのノードは前記ターゲットユーザに対応する、請求項7記載の媒体。
【請求項10】
前記ソーシャルネットワーキングシステムにおける前記発信元ユーザと前記ターゲットユーザとの間の関係を作成するステップは、前記発信元ユーザに対応する前記ソーシャルグラフにおける前記ノードの少なくとも1つと前記ターゲットユーザに対応する前記ソーシャルグラフにおける前記ノードの少なくとも1つとの間の関係エッジを作成することを含み、
前記ソーシャルネットワーキングシステムにおいて前記ターゲットユーザから前記発信元ユーザを阻止するステップは、前記発信元ユーザに対応する前記ソーシャルグラフにおける前記ノードと前記ターゲットユーザに対応する前記ソーシャルグラフにおける前記ノードとの間の阻止エッジを作成することを含む、請求項9記載の媒体。
【請求項11】
1以上のプロセッサと、
前記プロセッサに接続され、前記プロセッサにより実行可能な命令を有するメモリと、
を有する装置であって、前記命令を実行すると、前記プロセッサは、
ソーシャルネットワーキングシステムにおいて、発信元ユーザからターゲットユーザのコネクション情報に対するリクエストを受信するステップと、
前記ソーシャルネットワーキングシステムにおいて、前記ターゲットユーザのコネクション情報を前記ターゲットユーザの計算装置の記憶装置における1以上のディレクトリにおいて検索するステップと、
前記ターゲットユーザのコネクション情報が検出されると、前記ソーシャルネットワーキングシステムにおいて、前記ターゲットユーザのコネクション情報が前記発信元ユーザに提供されることを前記ターゲットユーザの1以上のプライバシ設定が許可しているか判断するステップと、
前記ターゲットユーザのコネクション情報が前記発信元ユーザに提供されることを前記プライバシ設定が許可しているとき、前記ソーシャルネットワーキングシステムから前記ターゲットユーザのコネクション情報を前記発信元ユーザに提供するステップと、
前記ターゲットユーザのコネクション情報が前記発信元ユーザに提供されることを前記プライバシ設定が許可していないとき、前記ソーシャルネットワーキングシステムにおいて、前記プライバシ設定が前記発信元ユーザと前記ターゲットユーザとの間の匿名通信セッションを許可しているか判断し、前記プライバシ設定が匿名通信セッションを許可しているとき、前記ソーシャルネットワーキングシステムにおいて、前記発信元ユーザと前記ターゲットユーザとの間の匿名通信セッションを確立するステップであって、前記発信元ユーザのコネクション情報は前記匿名通信セッションにおいて前記ターゲットユーザに提示され、前記ターゲットユーザのコネクション情報は前記匿名通信セッションにおいて前記発信元ユーザから隠される、確立するステップと、
前記匿名通信セッションが終了したことに応答して、前記ソーシャルネットワーキングシステムが、前記ソーシャルネットワーキングシステムにおける前記発信元ユーザとの関係を作成するか、又は前記ソーシャルネットワーキングシステムにおいて前記関係の作成を阻止することを前記ターゲットユーザに促すステップと、
前記ソーシャルネットワーキングシステムにおける前記発信元ユーザと前記ターゲットユーザとの間の関係を作成するか、又は前記ソーシャルネットワーキングシステムにおいて前記関係の作成を阻止するステップと、
を実行するよう動作可能である装置。
【請求項12】
前記ソーシャルネットワーキングシステムにおける前記発信元ユーザと前記ターゲットユーザとの間の関係を作成するステップは、前記ターゲットユーザから前記発信元ユーザに友達要求を送信することを含む、請求項11記載の装置。
【請求項13】
前記ソーシャルネットワーキングシステムは、複数のノードと前記ノードを接続するエッジとを有するソーシャルグラフを有し、
前記ソーシャルグラフにおける少なくとも1つのノードは前記発信元ユーザに対応し、
前記ソーシャルグラフにおける少なくとも1つのノードは前記ターゲットユーザに対応する、請求項11記載の装置。
【請求項14】
前記ソーシャルネットワーキングシステムにおける前記発信元ユーザと前記ターゲットユーザとの間の関係を作成するステップは、前記発信元ユーザに対応する前記ソーシャルグラフにおける前記ノードと前記ターゲットユーザに対応する前記ソーシャルグラフにおける前記ノードとの間の関係エッジを作成することを含み、
前記ソーシャルネットワーキングシステムにおいて前記ターゲットユーザから前記発信元ユーザを阻止するステップは、前記発信元ユーザに対応する前記ソーシャルグラフにおける前記ノードと前記ターゲットユーザに対応する前記ソーシャルグラフにおける前記ノードとの間の阻止エッジを作成することを含む、請求項13記載の装置。
【請求項15】
前記プライバシ設定の1以上は、前記ターゲットユーザに対応する前記ソーシャルグラフにおける前記ノードが、エッジ数の閾値の範囲内で前記ターゲットユーザに対応する前記ソーシャルグラフにおける前記ノードに接続されるとき、前記ターゲットユーザのコネクション情報が前記発信元ユーザに提供されることを許可する設定を含む、請求項13記載の装置。
【請求項16】
前記プライバシ設定の1以上は、前記ターゲットユーザがある期間内にある地理的位置にいたとき、前記ターゲットユーザのコネクション情報が前記発信元ユーザに提供されることを許可する設定を含む、請求項11記載の装置。
【請求項17】
前記プライバシ設定の1以上は、前記ターゲットユーザに対応する前記ソーシャルグラフにおける前記ノードが、エッジ数の閾値の範囲内で前記ターゲットユーザに対応する前記ソーシャルグラフにおける前記ノードに接続されるとき、前記ターゲットユーザのコネクション情報が前記発信元ユーザに提供されることを許可する設定を含む、請求項9記載の媒体。
【請求項18】
前記プライバシ設定の1以上は、前記ターゲットユーザがある期間内にある地理的位置にいたとき、前記ターゲットユーザのコネクション情報が前記発信元ユーザに提供されることを許可する設定を含む、請求項7記載の媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般にソーシャルプライバシ及びコンタクト関連付け機能を有する個人ディレクトリ及び検索サービスの提供に関する。
【背景技術】
【0002】
ソーシャルネットワーキングウェブサイトなどのソーシャルネットワーキングシステムは、それのユーザがシステムを介しそれと及び互いにやりとりすることを可能にする。ソーシャルネットワーキングシステムは、ユーザに関して、しばしばユーザプロファイルと呼ばれるレコードを生成及び格納する。ユーザプロファイルは、ユーザの地理的情報、通信チャネル情報、個人的興味及びソーシャルネットワーキングシステム内の他のユーザとのユーザのやりとりを含むものであってもよい。ソーシャルネットワーキングシステムはまた、例えば、ユーザが参加するつもりであるソーシャルイベントなどのユーザのイベントのレコードを生成及び格納してもよい。一方、ユーザは、ユーザプロファイル及びイベント情報に関連するプライバシ設定を設定することによって、ユーザの情報が他人と共有されるか制御してもよい。
【0003】
人々に関する情報のディレクトリが知られている。さらに、Lightweight Directory Access Protocolは、ディレクトリサービスを用いてデータを照会及び変更するためのアプリケーションプロトコルである。ディレクトリは、論理的かつ階層的に整理された属性を有するオブジェクトセットとすることができる。シンプルな具体例は、各名前がそれに関連付けされた住所及び電話番号を有する、アルファベット順に整理された(個人又は組織の)名前のリストから構成される電話番号ディレクトリである。
【発明の概要】
【0004】
本開示は、一般に個人ディレクトリ及びコンタクト検索サービスに関する。いくつかの実現形態では、個人ディレクトリ及びコンタクト検索サービスは、ユーザが通信セッションを確立し、ユーザ間の以降の通信のためのコンタクト関連付けを生成し、及び/又はコンタクト情報へのアクセスのための社交的及び時空間的側面を有するプライバシ設定を設定することを可能にする。本開示の上記及び他の特徴、態様及び効果が、以下の図面に関して詳細な説明において以下でより詳細に説明される。
【図面の簡単な説明】
【0005】
【
図1】
図1は、ソーシャルネットワーキングシステム及びそのディレクトリサービスの一例となるシステムを示す。
【
図2】
図2は、以降の通信のためコンタクト関連付けによる一例となる個人検索方法を示す。
【
図3】
図3は、ターゲットユーザと発信元ユーザとの間の以降の通信のためのコンタクト関連付けを生成する一例となる方法を示す。
【
図4】
図4は、時空間的プライバシ特徴を有するディレクトリサービスにより実現される一例となる方法を示す。
【
図5】
図5は、一例となるネットワーク環境を示す。
【
図6】
図6は、一例となるコンピュータシステムを示す。
【発明を実施するための形態】
【0006】
本発明が、添付した図面に示されるようないくつかの実施例を参照して詳細に説明される。以下の説明では、本開示の完全な理解を提供するため、多数の具体的詳細が提供される。しかしながら、本開示がこれらの具体的詳細の一部又は全てを備えることなく実現されてもよいことは、当業者に明らかであろう。他の例として、本開示を不要に不明りょうにしないため、周知の方法ステップ及び/又は構成は説明されていない。さらに、本開示は特定の実施例に関して説明されるが、本説明は開示された実施例に本開示を限定することを意図するものでないことが理解されるべきである。他方、本説明は、添付した請求項により規定されるような本開示の趣旨及び範囲内に含まれる代替、改良及び均等をカバーすることが意図される。
【0007】
ソーシャルネットワーキングウェブサイトなどのソーシャルネットワーキングシステムは、それのユーザがシステムを介しそれと及び互いにやりとりすることを可能にする。典型的には、ソーシャルネットワーキングシステムの登録ユーザになるため、人間又は人間でないエンティティは、ソーシャルネットワーキングシステムにアカウントが登録される。その後、登録ユーザは、例えば、正しいログインID又はユーザネームとパスワードとを提供するなどによって、アカウントを介しソーシャルネットワーキングシステムにログインする。ここで用いられる“ユーザ”とは、このようなソーシャルネットワーキングシステムとやりとり又は通信する個人(人間のユーザ)、エンティティ(企業、会社又はサードパーティアプリケーションなど)又はグループ(個人又はエンティティの)であってもよい。
【0008】
ユーザが最初にソーシャルネットワーキングシステムにアカウントを登録すると、ソーシャルネットワーキングシステムは、ユーザに関する“ユーザプロファイル”としばしば呼ばれるレコードを生成及び格納する。ユーザプロファイルは、ユーザにより提供される情報と、ユーザのアクティビティ又はアクションに関するソーシャルネットワーキングシステムを含む各種システムにより収集される情報とを含むものであってもよい。例えば、ユーザは、ユーザの名前、連絡先、誕生日、性別、結婚歴、家族状況、仕事、学歴、嗜好、興味及びユーザプロファイルに含められるべき他の個人情報を提供するものであってもよい。ユーザは、自分の友人と考えるソーシャルネットワーキングシステムの他のユーザを特定する。ユーザの友人又は一次コンタクトのリストがユーザのプロファイルに含まれる。ソーシャルネットワーキングシステムにおけるコネクションは、双方向又は一方向であってもよい。例えば、BobとJoeとの双方がユーザであり、互いにコネクトしている場合、BobとJoeのそれぞれは他方のコネクションである。他方、BobがSamの投稿されたコンテンツアイテムを閲覧するためSamにコネクトすることを所望するが、SamはBobにコネクトすることを選択しなかった場合、SamがBobのコネクションである一方向のコネクションが形成されるが、BobはSamのコネクションでない。ソーシャルネットワーキングシステムのいくつかの実施例は、コネクションが1以上のコネクションレベル(友人の友人など)を介した間接的なものであることを許容する。コネクションは、例えば、友人になるため特定の他のユーザを選択したユーザなどにより明示的に追加されてもよいし、あるいは、ユーザの共通する特徴(同じ教育機関の卒業生であるユーザなど)に基づきソーシャルネットワーキングシステムにより自動生成されてもよい。ユーザは、自分が頻繁に訪れるウェブサイトやウェブページを特定又はブックマークし、これらのウェブサイト又はウェブページがユーザのプロファイルに含まれてもよい。
【0009】
ユーザは、アカウント登録時又は以降においてユーザの各種特性(連絡先や興味など)に関する情報を提供する。ユーザはまた、任意の時点でユーザのプロファイル情報を更新してもよい。例えば、ユーザが引っ越すときや電話番号を変更するとき、ユーザは連絡先を更新してもよい。さらに、ユーザの興味は、時間の経過に従って変化する可能性があり、ユーザは経時的に自分のプロファイルの興味を更新してもよい。ソーシャルネットワーキングシステム上のユーザのアクティビティ、例えば、システム上の特定の情報へのアクセス頻度などがまた、ユーザのプロファイルに含まれる情報を提供するようにしてもよい。再び、このような情報は、ユーザの最近のアクティビティを反映するよう経時的に更新されてもよい。さらに、他のユーザやユーザのいわゆる友人やコンタクトはまた、ユーザのプロファイルの更新に影響を与える又は引き起こすアクティビティを実行する可能性がある。例えば、コンタクトは、ユーザを友人として追加してもよい(又はユーザを友人として削除してもよい)。コンタクトはまた、ウォール投稿として典型的に知られるユーザのプロファイルページにメッセージを書き込むものであってもよい。
【0010】
ユーザプロファイル情報に加えて、ソーシャルネットワーキングシステムは、ユーザに関する他の情報を追跡又は維持する。例えば、ソーシャルネットワーキングシステムは、ユーザの位置を記録する1以上の位置ベースサービスを提供してもよい。例えば、ユーザは、ユーザのモバイル装置により管理される特定用途クライアントアプリケーションを用いて、ソーシャルネットワーキングシステムにアクセスしてもよい。クライアントアプリケーションは、モバイル装置によりサポートされるGPS(Global Positioning System)又は他のジオロケーション機能に自動的にアクセスしてもよい。さらに、クライアントアプリケーションは、ユーザが様々な場所でチェックインし、当該位置を他のユーザに通信することを可能にするジオソーシャルネットワーキング機能をサポートしてもよい。ユーザはまた、ユーザが関連付けされるイベントを追加、削除又は更新してもよい。例えば、ユーザは、ユーザが参加予定の日時に関するソーシャルイベントを更新するか、又は自分が参加した過去のイベントに関するウォール投稿でコメントしてもよい。
【0011】
他方、ユーザは、他のユーザやサードパーティアプリケーションと自らの情報を共有することを所望するか、又は所望しないかもしれず、あるいは、特定のユーザ又はサードパーティアプリケーションのみと自らの情報を共有することを所望するかもしれない。ユーザは、自らの情報がユーザプロファイルに関するプライバシ設定を介して他のユーザ又はサードパーティアプリケーションと共有されるか制御する。例えば、ユーザは、各ユーザに関するユーザデータについてプライバシ設定を選択してもよい。プライバシ設定は、ユーザデータにアクセス可能なエンティティセット(他のユーザ、ユーザのコネクション、友人の友人、又はサードパーティアプリケーションなど)を規定又は特定する。プライバシ設定は、ソーシャルネットワークにおける特定のエンティティ(他のユーザなど)、ユーザのコネクショングループ、特定タイプのコネクション、ユーザのすべてのコネクション、ユーザのコネクションのすべての1次コネクション、ソーシャルネットワーク全体又はインターネット全体(投稿されたコンテンツアイテムをインターネット上でインデックス可能及びサーチ可能にすることなど)指定するなどによって、各種粒度レベルにより指定されてもよい。ユーザは、投稿されるすべてのユーザデータについてデフォルトのプライバシ設定を選択してもよい。さらに、ユーザは、ユーザデータや特定タイプのユーザデータを閲覧するのに特定のエンティティを具体的に排除してもよい。さらに、ユーザはまた、電話番号や電子メールアドレスなどの通信チャネル情報の1以上の側面のアクセス可能性を制御する1以上のプライバシ設定を設定してもよい。例えば、ユーザは、ユーザの電子メールアドレスへの2次(友人の友人など)アクセスを許可しながら、ユーザの携帯電話番号への1次コンタクトアクセスしか許可しないプライバシ設定を設定してもよい。ユーザの通信チャネル情報の1以上の側面のアクセス可能性を制御するプライバシ設定はまた、ユーザに関する時間及び位置の近接性を考慮する動的な位置ベースの側面を有してもよい。例えば、ユーザは、過去3ヶ月以内にユーザと同じイベントに参加した他のユーザに対してのみ、ユーザの電子メールアドレスへのアクセスを許可するプライバシ設定を設定してもよい。さらなる具体例として、ユーザは、ユーザの現在位置の半径10マイル以内にいる他のユーザに対してのみ、ユーザの携帯電話番号へのアクセスを許可するプライバシ設定を設定してもよい。つまり、非限定的な具体例として、ソーシャルネットワーキングシステムは、ユーザが1)特定のユーザ、コンタクト又は友人、2)離間の程度(1次、2次又は全てなど)、3)過去の共有履歴(同じ会社、同じ学校、同じ故郷)、4)年齢(他のユーザの閾値年齢範囲内のユーザなど)、5)政治的又は他のグループの所属、6)興味、7)参加したイベント、及び8)居住又は存在の現在位置のカテゴリの1以上に沿って情報へのアクセスを制御することを許可してもよい。
【0012】
さらに、ソーシャルネットワーキングシステムは、ユーザが互いにやりとりするための各種通信チャネルを提供する。このため、ソーシャルネットワーキングシステムのユーザは、通信チャネルを介し各種メディアのコンテンツアイテムを送信することによって、互いにやりとりする。特定の実施例では、通信チャネルは、限定することなく、電子メール、インスタントメッセージング、テキスト、音声又はビデオチャット、及びウォール投稿を含むものであってもよい。ソーシャルネットワーキングシステムはまた、外部の電子メールアドレス、電話番号及び物理的住所(“1000 Main Street,San Francisco,CA”など)などの外部のアドレス情報を維持してもよい。ユーザインタラクションを促進し、ソーシャルネットワーキングシステムとのさらなる関わりを増大させるため、ソーシャルネットワーキングシステムは、一般にソーシャルネットワーキングシステム内で登録ユーザを検索し、要求元のユーザが所与の通信チャネルを介しターゲットユーザに到達することを可能にするための連絡先を提供するため、ディレクトリサービスを提供している。ソーシャルネットワーキングシステムは、ディレクトリサービスをソーシャルネットワーキングシステムの外部で利用可能にする。
【0013】
図1は、一例となるソーシャルネットワーキングシステム及びそれのディレクトリサービスを示す。特定の実施例では、ソーシャルネットワーキングシステムは、ユーザプロファイルデータをユーザプロファイルデータベース101に格納する。特定の実施例では、ソーシャルネットワーキングシステムは、ユーザイベントデータをイベントデータベース102に格納する。特定の実施例では、ソーシャルネットワーキングシステムは、プライバシポリシデータをプライバシポリシデータベース103に格納する。特定の実施例では、データベース101,102,103は、ソーシャルネットワーキングシステムのフロントエンド104に動作接続される。特定の実施例では、フロントエンド104は、ネットワーククラウド106を介しクライアント装置105とやりとりする。クライアント装置105は、一般にコンピュータネットワークを介し(遠隔的など)通信するための機能を含むコンピュータ又は計算装置である。クライアント装置105は、デスクトップコンピュータ、ラップトップコンピュータ、PDA(Personal Digital Assistant)、車両内外ナビゲーションシステム、スマートフォン、他のセルラ若しくは携帯電話、モバイルゲーム装置、他の適切な計算装置であってもよい。クライアント装置105は、コンピュータネットワークを介しコンテンツにアクセス及び閲覧するため、ウェブブラウザ(Microsoft Windows Internet Explore、Mozilla Firefox、Apple Safari、Google Chrome、Operaなど)などの1以上のクライアントアプリケーションを実行する。フロントエンド104は、ユーザがソーシャルネットワーキングシステムにアクセスすることを可能にするため、ウェブ又はHTTPサーバ機能と共に他の機能を有する。ネットワーククラウド106は、一般にクライアント装置105がソーシャルネットワーキングシステムにアクセスするためのネットワーク又はネットワークコレクション(インターネット、企業イントラネット又はこれらの組み合わせなど)を表す。
【0014】
ソーシャルネットワーキングシステムは、個人のグループ間の関係により一般に規定できるソーシャルグラフ情報を維持し、ちょっとした知り合いから緊密な家族の繋がりまでの関係を含むものであってもよい。ソーシャルネットワークは、グラフ構造を用いて表現されてもよい。グラフの各ノードは、ソーシャルネットワークのメンバを表す。2つのノードを接続するエッジは、2人のユーザの間の関係を表す。さらに、何れか2つのボードの間の離間の程度は、一方のノードから他方のノードにグラフをトラバースするのに必要な最小ホップ数として規定される。2人のユーザの間の離間の程度は、グラフにおけるノードにより表される2人のユーザの間の関連性の指標とみなすことができる。
【0015】
特定の実施例では、ディレクトリサービス107は、データベース101,102,103に接続される。特定の実施例では、ディレクトリサービス107は、ユーザプロファイルデータ、イベントデータ及びソーシャルネットワーキングサービス内の登録ユーザのプライバシポリシ設定に基づき個人検索サービスを提供する。特定の実施例では、ディレクトリサービス107は、ソーシャルネットワーキングシステムのフロントエンド104を介し個人検索サービスを提供する。特定の実施例では、ディレクトリサービス107は、モバイル装置110との音声通信のため、通信ハンドラ108及び/又はインタラクティブ音声応答システム109を介し個人検索サービスを提供する。特定の実施例では、モバイル装置110は、音声通信可能な装置(電話やパーソナルコンピュータなど)であってもよい。
【0016】
ユーザは、1以上のターゲットユーザに関連する通信チャネル情報を検索するため、ディレクトリサービス107にアクセスする。ユーザは、ファーストネームとラストネームとによりターゲットユーザを特定可能である。ユーザにより提供された情報が複数のターゲットユーザ候補を決定するケースでは、ディレクトリサービス107は、発信元のユーザが知っている可能性が高い検索候補など、同一のソーシャルネットワーク(同じ大学、同じ都市、同じコンサートへの参加など)における友人の友人やユーザなどを選択してもよい。すなわち、ディレクトリサービス107は、キーワードとして名前及び他の情報を用いた第1サーチとユーザ間のコンタクトを含むソーシャルグラフを評価する第2サーチとの間の重複を評価する。例えば、ソーシャルネットワーキングシステムは、ソーシャルグラフに維持されるユーザコネクション情報に基づきユーザが知っている可能性のある検索候補のリストを生成してもよい。要求元のユーザに対してソーシャルグラフにアクセスする検索処理は、ユーザがコネクション示唆をコネクションに積極的に変換する確率を計算することによって、ユーザが知っている可能性のある候補のリストを生成する。確率計算は、限定することなく、ソーシャルグラフにおける離間の程度、個人情報(共通する友人の人数、職歴、学歴又は位置近接性など)、過去の行動データ(候補がコネクト要求を受け入れた回数など)、過去のインタラクションデータ(候補がユーザのビデオを視聴した回数など)、プライバシ設定(候補が特定のソーシャルネットワークグループからのコネクションリクエストをブロックするなど)、及び過去の指示データ(候補が同様のコネクション要求を以前に断ったなど)を含むファクタに基づくものであってもよい。適切なソーシャルグラフ検索処理は、参照することによりここに援用される米国特許第7,069,303号、第7,188,153号及び第7,451,161号に詳述されている。
【0017】
特定の実施例では、ディレクトリサービス107へのアクセスは、モバイル装置110に管理されるモバイルディレクトリサービスクライアントアプリケーションに関連して機能する。いくつかの実現形態では、モバイルディレクトリサービスクライアントアプリケーションは、モバイル装置110にインストールされているアドレスブックアプリケーションへのプラグインとすることができる。特定の実施例では、ディレクトリサービス107は、モバイル装置100に管理されるサードパーティソフトウェアアプリケーション(ウェブブラウザなど)を介しアクセス可能である。特定の実施例では、発信元ユーザは、1)ターゲットユーザの識別情報(ファーストネーム及びラストネーム、登録ユーザID、電子メールアドレス又は電話番号など)、及び2)ターゲットユーザに関する要求される1以上のタイプの通信チャネル情報(電子メールアドレス、携帯電話番号又は他の電話番号など)をディレクトリサービス107に提供することによって、個人検索クエリを送信する。特定の実施例では、モバイルディレクトリサービスクライアントアプリケーションは、発信元ユーザによりディレクトリサービス107に提供されるクエリ情報を通信し、ディレクトリサービス107は、限定することなく、NULLメッセージ(ターゲットユーザ情報が検出されず、又は発信元ユーザはターゲットユーザの情報にアクセスできないなど)、ターゲットユーザのプライバシ設定により許可されるようなターゲットユーザの通信チャネル情報、信頼性レベル指標(ターゲットユーザの通信チャネル情報が1次コンタクトからのものである場合は承認され、そうでない場合には承認されないなど)、及びエラーコード(ディレクトリサービス107は利用可能でないなど)を含む情報によってディレクトリサービスクエリに応答する。特定の実施例では、モバイルディレクトリサービスクライアントアプリケーションとディレクトリサービス107との間の通信は、UDP(User Datagram Protocol)を用いて実現される。さらに、ディレクトリサービス107から返されるレスポンスは、JSON(JavaScript Object Notation)コードアレイによるものであってもよい。他の実施例では、モバイルディレクトリサービスクライアントアプリケーションとディレクトリサービス107との間とディレクトリサービス107との間の通信は、SMS(Short Message Service)プロトコルにより実現されてもよい。特定の実施例では、モバイルディレクトリサービスクライアントアプリケーションは、モバイル装置110に管理される特定のサードパーティソフトウェアアプリケーションからのクライアントアプリケーションを介しディレクトリサービス107へのアクセスを許可するホワイトリストにより設定されてもよい。特定の実施例では、ターゲットユーザは、特定のユーザグループ(友人のみ、友人の友人のみ、又は特定のネットワークのみなど)についてターゲットユーザの通信チャネル情報へのアクセスを許可する1以上のプライバシ設定を設定し、何れの通信チャネル情報(携帯電話番号や電子メールアドレスなど)がモバイルディレクトリサービスクライアントアプリケーションに利用可能にすることができるか制御する。各種実現形態では、クライアントは、クエリ、クライアントからのアイデンティティ及びサーバレスポンスを含む通信チャネルを確立する。クエリ及びレスポンスの符号化は、装置及び伝送媒体に依存する。一例となる実施例は、シンプルなキー値符号化を利用したコネクションレス結果のためにUDPを利用することを含む。他の実施例は、HTTPを介した従来のウェブサービス技術や当該結果のためのSMSを利用する。特定の実施例は、上記の組み合わせを利用してもよい。ここに開示されるサービスは、通信チャネル技術から独立している。
【0018】
図2は、本発明の1つの可能な実現形態によるディレクトリサービスを実現する一例となる方法を示す。開示された実施例では、ソーシャルネットワーキングシステムは、発信元ユーザ(initiating user)とターゲットユーザ(target user)との間の以降の通信を促進するコンタクト関連付け機構を含む個人検索サービスを提供する。特定の実施例では、ディレクトリサービス107は、ターゲットユーザのディレクトリ情報に対する発信元ユーザからの要求を受信する(ステップ201)。当該要求は、ディレクトリサービス107がターゲットユーザを検索及び特定するため、及び/又は発信元ユーザに対するアクセスパーミッションを決定するため利用する1以上の情報属性を含む。当該要求はまた、ターゲットユーザに関するプライバシ設定ルールの1以上を適用するため、ディレクトリサービス107が発信元ユーザを特定することを可能にするために発信元ユーザの情報を特定することを含むものであってもよい。発信元ユーザにより提供されるターゲットユーザに関する情報は、名前、ユーザプロファイル情報及び/又はイベント情報(“ロサンジェルスのJohn Smith”、又は“2009年7月にUC Berkeleyのキャンパスで私が会ったMary Williams”など)を含むものであってもよい。発信元ユーザは、モバイル装置110又はクライアント装置105から要求する。発信元ユーザは、ソーシャルネットワーキングシステム内の登録ユーザであってもよいし、又はそうでなくてもよい。当該要求はまた、電子メールアドレス、チャットユーザ識別子、携帯電話番号、物理的住所など、ターゲットユーザに関連する1以上の通信チャネルに関するデータについてディレクトリサービスに照会してもよい。
【0019】
特定の実施例では、ディレクトリサービス107は、ターゲットユーザを検索する(ステップ202)。特定の実施例では、ディレクトリサービスがターゲットユーザを検出できない場合、ディレクトリサービスは、発信元ユーザに“ユーザ未検出”メッセージを返す(ステップ203)。ディレクトリサービス107がターゲットユーザを検出し、ターゲットユーザのディレクトリ情報へのアクセスが、ターゲットユーザのプライバシ設定による許可される場合、ディレクトリサービス107は、ターゲットユーザのディレクトリ情報を発信元ユーザに提供する(ステップ204)。ディレクトリサービス107は、ターゲットユーザの通信チャネル情報へのアクセスを許可するか決定するため、発信元ユーザがターゲットユーザの友人であるか否か、ターゲットユーザと発信元ユーザとの間の離間の程度、ターゲットユーザと発信元ユーザの居住位置、ターゲットユーザと発信元ユーザのグループ又は所属、ターゲットユーザと発信元ユーザの共通の興味など、発信元ユーザの社交的及び他の属性に対するターゲットユーザのプライバシ設定にアクセスする。例えば、ターゲットユーザは、電子メールアドレスや電話番号などのターゲットユーザの連絡先の1以上の側面に同じ大学に通っていた誰かがアクセスすることを許可するプライバシコンタクト設定を設定済みであってもよい。上述した属性を有する連絡先プライバシ設定の設定可能性は、ユーザディレクトリ情報へのセミパブリックなアクセスを可能にする。
【0020】
特定の実施例では、ターゲットユーザの通信チャネル情報及び匿名のコネクションへのアクセスが、ターゲットユーザのプライバシ設定により許可されない場合、ディレクトリサービス107は、発信元ユーザに“アクセス拒絶”メッセージを返す。匿名のコネクションがターゲットユーザのプライバシ設定により許可される場合、ディレクトリサービス107は、ターゲットユーザと発信元ユーザとの間で匿名コネクションセッションを確立する(ステップ205,206)。匿名コネクションセッションは、匿名電話発信、匿名電子メール通信及び匿名チャットセッションの形態をとり、これらの全てがディレクトリサービス107により仲介される。上述されるように、ディレクトリサービス107は、匿名通信セッションを開始するか否か判断するため、発信元ユーザの社交的及び他の属性に対するターゲットユーザのプライバシ設定にアクセスする。例えば、ターゲットユーザは、2つの離間度により離間されるユーザが匿名通信セッションを介しターゲットユーザにコンタクトすることを可能にする1以上の設定を設定してもよい。プライバシコンフィギュレーション設定はまた、離間度に加えて又は代わりに、現在の住まい、参加したイベント、興味、個人履歴(共通の教育機関や雇用主など)などの他の属性を含むものであってもよい。
【0021】
特定の実施例では、ディレクトリサービス107は、匿名通信セッションが終了したか判断する(ステップ207)。特定の実施例では、匿名通信セッションが終了した後、ディレクトリサービス107は、ターゲットユーザと発信元ユーザとの間の以降の通信のためのコンタクト関連付けを生成するためのオプションを生成し、ターゲットユーザに提供する(ステップ208)。特定の実施例では、ターゲットユーザが当該オプションを受け入れた場合、ソーシャルネットワーキングシステムは、ターゲットユーザと発信元ユーザとの間の以降の通信のためコンタクト関連付けを生成する(ステップ209)。例えば、ディレクトリサービス107が匿名電話発信を仲介する場合、ディレクトリサービス107は、IVR(Interactivce Voice Response)機能を利用して、通話が終了した後、各種コンタクト関連付けオプションについてユーザに照会する。あるいは、ディレクトリサービス107は、各種コンタクト関連付けオプションについてユーザに照会する書式による電子メールをターゲットユーザに送信してもよい。SMS、チャットなどを含む他の通信チャネルマネージャ機能が、コンタクト関連付けオプションについてユーザに照会するのに利用可能である。
【0022】
図3は、ターゲットユーザと発信元ユーザとの間の以降の通信のためコンタクト関連付けを生成する一例となる方法を示す。特定の実施例では、ディレクトリサービス107は、発信元ユーザに友達要求を送信するオプション、発信元ユーザからの以降の通信要求をブロックするオプション、発信元ユーザからの以降の通信要求をホワイトリストするオプション、又はターゲットユーザのプライバシ設定を更新するオプションをターゲットユーザに提供する(ステップ301)。特定の実施例では、ターゲットユーザが発信元ユーザに友達要求を送信するオプションを選択した場合、ソーシャルネットワーキングシステムは、友達要求を生成し、ターゲットユーザから発信元ユーザに送信する(ステップ302)。特定の実施例では、ターゲットユーザが発信元ユーザからの以降の通信要求をブロックするオプションを選択した場合、ソーシャルネットワーキングシステムは、例えば、発信元ユーザをブラックリストに追加するなどによって、発信元ユーザからの以降の通信要求をブロックするため、プライバシデータベース103におけるターゲットユーザのプライバシ設定を更新する(ステップ303)。特定の実施例では、ターゲットユーザが発信元ユーザからの以降の通信要求をホワイトリストに入れるためのオプションを選択した場合、ソーシャルネットワーキングシステムは、ターゲットユーザに関するホワイトリストに発信元ユーザを追加する。ここで、ホワイトリストは、発信元ユーザからターゲットユーザへの以降の直接的な通信セッションを許可するものであってもよいし、あるいは、ターゲットユーザの通信チャネル情報への発信元ユーザのアクセスを許可するものであってもよい(ステップ304)。
【0023】
特定の実施例では、1以上のプライバシ設定は、ターゲットユーザの通信チャネル情報、ユーザプロファイル情報及びイベント情報についてアクセスパラメータを規定する。例えば、ターゲットユーザは、発信元ユーザが特定の通信チャネルにアクセスするのを具体的に阻止するためのプライバシ設定を設定してもよいし、あるいは、発信元ユーザがターゲットユーザのイベント情報にアクセスするのを阻止してもよいし、あるいは、発信元ユーザがターゲットユーザのウォール投稿にアクセスすることを阻止するが、特定の通信チャネルにおける以降の通信を許可してもよい。特定の実施例では、ターゲットユーザがプライバシ設定を更新するオプションを受け入れた場合、ソーシャルネットワーキングシステムは、ターゲットユーザがプライバシポリシデータベース103におけるプライバシ設定を更新することを許可するプライバシ設定更新機構を構成してもよい(例えば、プライバシ設定パラメータをウェブページに含めて、当該ウェブページをターゲットユーザに提示するなど)(ステップ305)。
【0024】
図4は、時空間的プライバシ機能を有するディレクトリサービスの一例となる方法を示す。いくつかの実現形態では、ソーシャルネットワーキングシステムは、1以上のユーザの位置を追跡し、データストアに位置履歴を格納する。例えば、ユーザは、ジオソーシャルネットワーキング機能を利用して、各種位置にチェックインするようにしてもよい。さらに、ユーザのモバイル装置に管理されるモバイルクライアントアプリケーションは、モバイル装置110からソーシャルネットワーキングシステムに送信されるメッセージに、GPSモジュールにより生成される位置情報を添付してもよい。さらに、ユーザは、既知の地理的位置を有するイベントへの招待を受け入れてもよい。後述されるように、この位置履歴は、地理的及び時間的側面による各種プライバシ設定を可能にするため、ディレクトリサービス107と共に利用可能である。
【0025】
特定の実施例では、モバイル装置110上で管理されるモバイルディレクトリサービスクライアントアプリケーションは、ディレクトリサービス107へのアクセスを提供する。特定の実施例では、発信元ユーザは、ターゲットユーザの情報(ファーストネーム及びラストネームなど)及び要求された通信チャネル情報のタイプ(携帯電話番号や電子メールアドレスなど)をモバイルディレクトリサービスに提供することによって、ターゲットユーザのディレクトリ検索を要求する。特定の実施例では、モバイルディレクトリサービスクライアントアプリケーションは、発信元ユーザの位置情報を自動収集する。例えば、発信元ユーザの位置は、発信元ユーザのモバイル装置110のGPSや携帯電話位置追跡機能によって決定可能である。特定の実施例では、モバイルディレクトリサービスクライアントアプリケーションは、ディレクトリサービス107と通信し、ターゲットユーザの情報及び発信元ユーザの現在位置情報を提供する(ステップ401)。特定の実施例では、ディレクトリサービス107が利用可能でない場合、モバイルディレクトリサービスクライアントアプリケーションは、“サービス利用不可”メッセージを発信元ユーザに返す(ステップ402)。特定の実施例では、ディレクトリサービス107がターゲットユーザを検出できない場合、モバイルディレクトリサービスクライアントアプリケーションは、“ユーザ未検出”メッセージを発信元ユーザに返す(ステップ403)。特定の実施例では、ディレクトリサービス107は、ターゲットユーザの現在位置情報を決定する。例えば、ターゲットユーザの位置は、ターゲットユーザのモバイル装置110のGPS機能により決定可能である。例えば、位置情報は、ジオソーシャルネットワーキングサービスにより維持されるチェックインアクティビティのデータストア、ユーザがイベントの参加を設定及び登録することを可能にするイベントサービス、ステータス更新、カレンダ情報などに基づくものとすることができる。
【0026】
特定の実施例では、ターゲットユーザは、ユーザが1以上のプライバシ設定により規定される1以上の社交的、時空間的、地理的及び/又は時間的条件を充足可能なユーザ要求に対してのみ、ターゲットユーザの通信チャネル情報へのアクセスを許可する1以上のプライバシ設定を有する。例えば、ターゲットユーザのプライバシ設定は、ターゲットユーザと同じ周辺(1マイル以内など)に現在いる要求元ユーザに対してのみ、ターゲットユーザの携帯電話番号へのアクセスを許可するものであってもよい。このような実施例では、ディレクトリサービス107は、発信元ユーザとターゲットユーザとの現在位置を比較する。他の実現形態では、ユーザは、ターゲットユーザと“交差パス(crossed path)”を有するユーザに対して連絡先へのアクセスを許可する1以上の時空間側面を含むプライバシ設定を設定する。例えば、ユーザは、要求から測定されるような設定可能なスライドするタイムウィンドウ全体の範囲内(設定可能なタイムウィンドウの範囲内)においてユーザと同時に同一の地理的位置(設定可能な半径のにいたすべてのユーザに連絡先へのアクセスを許可するプライバシポリシを設定してもよい。このようなプライバシ設定は、ユーザが直近にパーティ又は他のソーシャルイベントにおいてターゲットユーザに会った要求元のユーザへの連絡先へのアクセスを許可することを可能にする。さらに、プライバシ設定はまた、それ以上は連絡先が許可されれない最大離間度を指定するなど、ソーシャルサイズを含むことが可能である。例えば、ターゲットユーザのプライバシ設定は、ソーシャルネットワーキングシステムのターゲットユーザの友人に対してのみターゲットユーザの携帯電話番号へのアクセスを許可するが、友人の友人、同じ大学(スタンフォード大学など)に通学していたユーザ、又はターゲットユーザが大学に通学していたときと同じ年度中に大学の同じ都市(カリフォルニア州のPalo Altoなど)にいたユーザのソーシャルネットワーキングシステムのユーザに対してターゲットユーザのインスタントメッセージIDへのアクセスを許可するようにしてもよい。特定の実施例では、発信元ユーザがターゲットユーザのプライバシ設定により規定される社交的、空間的及び時間的条件を充足できないとディレクトリサービス107が判断した場合、モバイルディレクトリサービスクライアントアプリケーションは、“ユーザ未検出”メッセージを発信元ユーザに返す(ステップ405)。特定の実施例では、ターゲットユーザの通信チャネル情報へのアクセスが、ターゲットユーザのプライバシ設定により許可された場合、モバイルディレクトリサービスクライアントアプリケーションは、ターゲットユーザの通信チャネル情報を発信元ユーザに提供する(ステップ406)。
【0027】
図5は、一例となるネットワーク環境500を示す。ネットワーク環境500は、1以上のサーバ520及び1以上のクライアント530を互いに接続するネットワーク510を有する。ネットワーク環境500はまた、1以上のサーバ520にリンクされた1以上のデータストレージ530を有する。特定の実施例は、ネットワーク環境500により実現される。例えば、ディレクトリサービス107及びソーシャルネットワーキングシステムフロントエンド104は、1以上のサーバ520により管理されるソフトウェアプログラムにより記述されてもよい。例えば、イベントデータベース102は、1以上のストレージ540に格納されてもよい。特定の実施例では、ネットワーク510は、イントラネット、エクストラネット、バーチャルプライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、ワイヤレスLAN(WLAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの一部、若しくは他のネットワーク510又はこのような2以上のネットワーク510の組み合わせである。本開示は、何れか適切なネットワーク510を想定する。
【0028】
1以上のリンク550は、サーバ520又はクライアント530とネットワーク510とを接続する。特定の実施例では、1以上のリンク550はそれぞれ、1以上の有線、無線又は光リンク550を有する。特定の実施例では、1以上のリンク550はそれぞれ、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、MAN、インターネットの一部若しくは他のリンク550又はこのような2以上のリンク550の組み合わせを含む。本開示は、サーバ520及びクライアント530をネットワーク510に接続する何れか適切なリンク550を想定する。
【0029】
特定の実施例では、各サーバ520は、単一のサーバであってもよいし、あるいは、複数のコンピュータ又は複数のデータセンタに及ぶ分散サーバであってもよい。サーバ520は、例えば、限定することなく、ウェブサーバ、ニュースサーバ、メールサーバ、メッセージサーバ、公告サーバ、ファイルサーバ、アプリケーションサーバ、交換サーバ、データベースサーバ又はプロキシサーバなどの各種タイプであってもよい。特定の実施例では、各サーバ520は、サーバ520により実現又はサポートされる適切な機能を実行するため、ハードウェア、ソフトウェア若しくは埋め込みロジックコンポーネント又はこのような2以上のコンポーネントの組み合わせを含む。例えば、ウェブサーバは、一般にウェブページを有するウェブサイト又はウェブページの特定の要素を管理可能である。より詳細には、ウェブサーバは、HTMLファイル又は他のファイルタイプを管理してもよいしあるいは、要求に応答してファイルを動的に生成又は構成し、クライアント530からのHTTP又は他の要求に応答してこれらをクライアント530に通信してもよい。メールサーバは、一般に電子メールサービスを各種クライアント530に提供可能である。データベースサーバは、一般に1以上のデータストアに格納されているデータを管理するためのインタフェースを提供可能である。
【0030】
特定の実施例では、1以上のデータストレージ540は、1以上のリンク550を介し1以上のサーバ520に通信接続される。特定の実施例では、データストレージ540は、各種タイプの情報を格納するのに利用されてもよい。特定の実施例では、データストレージ540に格納される情報は、特定のデータ構造に従って構成される。特定の実施例では、各データストレージ540はリレーショナルデータベースであってもよい。特定の実施例は、サーバ520又はクライアント530がデータストレージ540に格納されている情報を抽出、変更、追加又は削除するなど管理することを可能にするインタフェースを提供する。
【0031】
特定の実施例では、各クライアント530は、ハードウェア、ソフトウェア若しくは埋め込みロジックコンポーネント又はこのような2以上のコンポーネントの組み合わせを含み、クライアント530により実現又はサポートされる適切な機能を実行可能な電子装置であってもよい。例えば、限定することなく、クライアント530は、デスクトップコンピュータシステム、ノートブックコンピュータシステム、ネットブックコンピュータシステム、携帯電子装置又はモバイル電話などであってもよい。本開示は、何れか適切なクライアント530を想定する。クライアント530は、クライアント530のネットワークユーザがネットワーク530にアクセスすることを可能にする。クライアント530は、それのユーザが他のクライアント530の他のユーザと通信することを可能にする。
【0032】
クライアント530は、MICROSOFT INTERNET EXPLORE、GOOGLE CHROME又はMOZILLA FIREFOXなどのウェブブラウザ532を有し、TOOLBARやYAHOO TOOLBARなどの1以上のアドオン、プラグイン又は他の拡張を有してもよい。クライアント530のユーザは、ウェブブラウザ532をサーバ520にダイレクトするためURL(Uniform Resource Locator)又は他のアドレスを入力し、ウェブブラウザ532は、HTTP(Hyper Text Transfer Protocol)要求を生成し、HTTP要求をサーバ520に通信してもよい。サーバ520は、HTTP要求を受け付け、当該HTTP要求に応答して、1以上のHTML(Hyper Text Markup Language)ファイルをクライアント530に通信する。クライアント530は、ユーザに提供するため、サーバ520からのHTMLファイルに基づきウェブページをレンダリングする。本開示は、何れか適切なウェブページファイルを想定する。例えば、限定することなく、ウェブページは、HTMLファイル、XHTML(Extensible HTML)ファイル又はXML(Extensible Markup Language)ファイルを特定のニーズに従ってレンダリングしてもよい。このようなページはまた、例えば、限定することなく、JAVASCRIPT、JAVA、MICROSOFT SILVERLIGHT、AJAX(Asynchronous JAVASCRIPT and XML)などのマークアップ言語及びスクリプトの組み合わせにより記述されたものなどのスクリプトを実行する。ここで、ウェブページという表現は、適切である場合、1以上の対応するウェブページファイル(ブラウザがウェブページをレンダリングするのに利用する)を含むものであり、またその反対であってもよい。
【0033】
図6は、本発明のいくつかの実施例により利用可能な一例となるコンピュータシステム600を示す。例えば、ディレクトリサービス107は、1以上のコンピュータシステム600上で管理される1以上のソフトウェアプログラムにより記述されてもよい。例えば、モバイル装置110は、コンピュータシステム600を有してもよい。
【0034】
本開示は、何れか適切な個数のコンピュータシステム600を想定する。本開示は、何れか適切な物理的形態をとりうるコンピュータシステム600を想定する。例えば、限定することなく、コンピュータシステム600は、埋め込みコンピュータシステム、SOC(System−On−Chip)、SBC(SingleBoard Computer system)(例えば、COM(Computer−On−Module)やSOM(System−On−Module)など)、デスクトップコンピュータシステム、ラップトップ若しくはノートブックコンピュータシステム、インタラクティブキオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、PDA(Personal Digital Assistant)、サーバ、又はこれらの2以上の組み合わせであってもよい。適切である場合、コンピュータシステム600は、1以上のコンピュータシステム600を有してもよいし、単一又は分散的であってもよいし、複数の場所に及ぶものであってもよいし、複数のマシーンに及ぶものであってもよいし、1以上のネットワークの1以上のクラウドコンポーネントを含むクラウドにあってもよい。適切である場合、1以上のコンピュータシステム600は、ここに図示又は開示される1以上の方法の1以上のステップを実質的に空間的又は時間的制限なしに実行する。例えば、限定することなく、1以上のコンピュータシステム600は、ここに開示又は図示される1以上の方法の1以上のステップをリアルタイムに又はバッチモードにより実行してもよい。1以上のコンピュータシステム600は、適切である場合、異なる時間又は異なる位置でここに開示又は図示された1以上の方法の1以上のステップを実行する。
【0035】
特定の実施例では、コンピュータシステム600は、プロセッサ602、メモリ604、ストレージ606、入出力(I/O)インタフェース608、通信インタフェース610及びバス612を有する。本開示は特定の構成において特定数の特定のコンポーネントを有する特定のコンピュータシステムを開示及び図示したが、本開示は、何れか適切な構成において何れか適切な個数の何れか適切なコンポーネントを有する何れか適切なコンピュータシステムを想定する。
【0036】
特定の実施例では、プロセッサ602は、コンピュータプログラムを構成するものなど、命令を実行するためのハードウェアを有する。例えば、限定することなく、プロセッサ602は、内部レジスタ、内部キャッシュ、メモリ604又はストレージ606から命令を抽出(又はフェッチ)し、これらを復号化及び実行し、その後に1以上の結果を内部レジスタ、内部キャッシュ、メモリ604又はストレージ606に書き込む。特定の実施例では、プロセッサ602は、データ、命令又はアドレスのための1以上の内部キャッシュを有してもよい。本開示は、適切である場合、何れか適切な個数の何れか適切な内部キャッシュを含むプロセッサ602を想定する。例えば、限定することなく、プロセッサ602は、1以上の命令キャッシュ、1以上のデータキャッシュ及び1以上のTLB(Translation Look−aside Buffer)を有してもよい。命令キャッシュの命令は、メモリ604又はストレージ606における命令のコピーであり、命令キャッシュは、プロセッサ602によるメモリ604の抽出を高速化する。データキャッシュのデータは、動作のためプロセッサ602において実行される命令、プロセッサ602において実行される以降の命令によるアクセスのためプロセッサ602において実行される以前の命令の結果、メモリ604又はストレージ606への書き込み、又は他の適切なデータのため、メモリ604又はストレージ606におけるデータのコピーであってもよい。データキャッシュは、プロセッサ602によるリード又はライト処理を高速化する。TLBは、プロセッサ602のためのバーチャルアドレス変換を高速化する。特定の実施例では、プロセッサ602は、データ、命令又はアドレスのための1以上の内部レジスタを有する。本開示は、適切である場合、何れかの個数の何れか適切な内部レジスタを有するプロセッサ602を想定する。適切である場合、プロセッサ602は、1以上のALU(Arithmetic Logic Unit)を有してもよいし、マルチコアプロセッサであってもよいし、1以上のプロセッサ602を有してもよい。本開示は特定のプロセッサを開示及び図示するが、本開示は何れか適切なプロセッサを想定する。
【0037】
特定の実施例では、メモリ604は、プロセッサ602が実行するためのデータやプロセッサ602が動作するための命令を格納するメインメモリを有する。例えば、限定することなく、コンピュータシステム600は、ストレージ606又は他のソース(他のコンピュータシステム600など)からメモリ604に命令をロードする。その後、プロセッサ602は、メモリ604から内部レジスタ又は内部キャッシュに命令をロードする。命令を実行するため、プロセッサ602は、内部レジスタ又は内部キャッシュから命令を抽出し、それらを復号化する。命令の実行中又は実行後、プロセッサ602は、1以上の結果(中間又は最終結果であってもよい)を内部レジスタ又は内部キャッシュに書き込む。その後、プロセッサ602は、これらの結果の1以上をメモリ604に書き込む。特定の実施例では、プロセッサ602は、1以上の内部レジスタ、内部キャッシュ又はメモリ604(ストレージ606又はその他と対照的に)における命令のみを実行し、1以上の内部レジスタ、内部キャッシュ又はメモリ604(ストレージ606又はその他と対照的に)におけるデータのみについて動作する。1以上のメモリバス(それぞれがアドレスバスとデータバスとを含む)は、プロセッサ602とメモリ604とを接続する。バス612は、後述されるように、1以上のメモリバスを含む。特定の実施例では、1以上のMMU(Memory Management Unit)がプロセッサ602とメモリ604との間にあり、プロセッサ602により要求されたメモリ604へのアクセスを実現する。特定の実施例では、メモリ604は、RAMを有する。当該RAMは、適切である場合、揮発性メモリであってもよい。適切である場合、当該RAMは、DRAM又はSRAMであってもよい。さらに、適切である場合、当該RAMは、シングルポート又はマルチポートRAMであってもよい。本開示は、何れか適切なRAMを想定する。メモリ604は、適切である場合、1以上のメモリ604を有する。本開示は特定のメモリを図示及び開示したが、本開示は、何れか適切なメモリを想定する。
【0038】
特定の実施例では、ストレージ606は、データ又は命令のためのマスストレージを有する。例えば、限定することなく、ストレージ606は、HDD、フロッピー(登録商標)ディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、USB(Univeral Serial Bus)ドライブ又はこれらの2以上の組み合わせを含むものであってもよい。ストレージ606は、適切である場合、着脱可能な又は着脱不可な(又は固定的な)媒体を含む。ストレージ606は、適切である場合、コンピュータシステム600の内部又は外部にあってもよい。特定の実施例では、ストレージ606は、不揮発性ソリッドステートメモリである。適切である場合、当該ROMは、マスクプログラムされたROM、PROM(Programmable ROM)、EPROM(Erasable ROM)、EEPROM(Electrically EPROM)、EAROM(Electrically Alterable ROM)若しくはフラッシュメモリ又はこれらの2以上の組み合わせであってもよい。本開示は、何れか適切な物理的形態をとるマスストレージ606を想定する。ストレージ606は、適切である場合、プロセッサ602とストレージ606との間の通信を実現する1以上のストレージ制御ユニットを含む。適切である場合、ストレージ606は、1以上のストレージ606を有する。本開示は特定のストレージを開示及び図示するが、本開示は、何れか適切なストレージを想定する。
【0039】
特定の実施例では、I/Oインタフェース608は、コンピュータシステム600と1以上のI/O装置との間の通信のための1以上のインタフェースを提供するハードウェア、ソフトウェア又はその両方を含む。コンピュータシステム600は、適切である場合、これらのI/O装置の1以上を含む。これらのI/O装置の1以上は、人間とコンピュータシステム600との間の通信を可能にする。例えば、限定することなく、I/O装置は、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカー、スチルカメラ、スタイラス、タブレット、タッチ画面、トラックボール、ビデオカメラ、他の適切なI/O装置又はこれらの2以上の組み合わせを含む。I/O装置は、1以上のセンサを有してもよい。本開示は、何れか適切なI/O装置と、そのための何れか適切なI/Oインタフェース608とを想定する。適切である場合、I/O装置608は、プロセッサ602がこれらのI/O装置の1以上を駆動することを可能にする1以上のデバイス又はソフトウェアドライバを有する。I/Oインタフェース608は、適切である場合、1以上のI/Oインタフェース608を有する。本開示は特定のI/Oインタフェースを開示及び図示するが、本開示は、何れか適切なI/Oインタフェースを想定する。
【0040】
特定の実施例では、通信インタフェース610は、コンピュータシステム600と1以上の他のコンピュータシステム600又は1以上のネットワークとの間の通信のため(例えば、パケットベース通信などのため)、1以上のインタフェースを提供するハードウェア、ソフトウェア又はその両方を有する。例えば、限定することなく、通信インタフェース610は、Wi−Fiネットワークなどの無線ネットワークと通信するための無線NIC(WNIC)若しくは無線アダプタ、又はイーサネット(登録商標)若しくは他の有線ベースネットワークと通信するためのネットワークインタフェースコントローラ(NIC)若しくはネットワークアダプタを有してもよい。本開示は、何れか適切なネットワークと何れか適切なそのための通信インタフェース610とを想定する。例えば、限定することなく、コンピュータシステム600は、アドホックネットワーク、PAN(Personal Area Network)、LAN(Local Area Network)、WAN(Wide Area Network)、MAN(Metropolitan Area Network)、インターネットの1以上の一部又はこれらの2以上の組み合わせと通信してもよい。これらのネットワークの1以上の1以上の一部は、有線又は無線であってもよい。例えば、コンピュータシステム600は、無線PAN(BLUETOOTH WPANなど)、Wi−Fiネットワーク、Wi−MAXネットワーク、携帯電話ネットワーク(GSM(Global System for Mobile Communications)ネットワークなど)若しくは他の適切な無線ネットワーク又はこれら2つの組み合わせと通信してもよい。コンピュータシステム600は、適切である場合、これらのネットワークの何れかについて何れか適切な通信インタフェース610を有する。通信インタフェース610は、適切である場合、1以上の通信インタフェース610を有する。本開示は特定の通信インタフェースを開示及び図示するが、本開示は、何れか適切な通信インタフェースを想定する。
【0041】
特定の実施例では、バス612は、コンピュータシステム600のコンポーネントを互いに接続するハードウェア、ソフトウェア又はその両方を有する。例えば、限定することなく、バス612は、AGP(Accelerated Graphics Port)若しくは他のグラフィックバス、EISA(Enhanced Industry Standard Architecture)バス、フロントサイドバス(FSB)、HYPERTRANSPORT(HT)インターコネクト、ISA(Industry Standard Architecture)バス、INFINIBANDインターコネクト、LPC(Low−Pin−Count)バス、メモリバス、MCA(Micro Channel Architecture)バス、PCI(Peripheral Component Interconnect)バス、PCI−Express(PCI−X)バス、SATA(Serial Advanced Technology Attachment)バス、VLB(Video Electronics Standard Association local)バス若しくは他の適切なバス又はこれらの2以上の組み合わせを含むものであってもよい。バス612は、適切である場合、1以上のバス612を有する。本開示は特定のバスを開示及び図示するが、本開示は、何れか適切なバス又はインターコネクトを想定する。
【0042】
ここで、コンピュータ可読記憶媒体という表現は、1以上の非一時的な有形のコンピュータ可読記憶媒体処理構造を含む。例えば、限定することなく、コンピュータ可読記憶媒体は、適切である場合、半導体ベース又は他の集積回路(IC)(例えば、FPGA(Field−Programmable Gate Array)又はASIC(Application−Specific IC)など)、ハードディスク、HDD、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピー(登録商標)ディスク、フロッピー(登録商標)ディスクドライブ(FDD)、磁気テープ、ホログラフィック記憶媒体、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタルカード、セキュアデジタルドライブ、若しくは他の適切なコンピュータ可読記憶媒体又はこれらの2以上の組み合わせを含むものであってもよい。ここで、コンピュータ可読記憶媒体という表現は、35 U.S.C.§101の特許保護に適格でない媒体を排除する。ここで、コンピュータ可読記憶媒体という表現は、それらが35 U.S.C.§101の特許保護に適格でない範囲の一時的形態の信号伝送(電気又は電磁信号の伝搬など)を排除する。
【0043】
本開示は、何れか適切なストレージを実現する1以上のコンピュータ可読記憶媒体を想定する。特定の実施例では、コンピュータ可読記憶媒体は、適切である場合、プロセッサ602の1以上の部分(例えば、1以上の内部レジスタ又はキャッシュなど)、メモリ604の1以上の部分、ストレージ606の1以上の部分又はこれらの組み合わせを実現する。特定の実施例では、コンピュータ可読記憶媒体は、RAM又はROMを実現する。特定の実施例では、コンピュータ可読記憶媒体揮発性又は永久メモリを実現する。特定の実施例では、1以上のコンピュータ可読記憶媒体は、ソフトウェアを実現する。ここで、ソフトウェアという表現は、適切である場合、1以上のアプリケーション、バイトコード、1以上のコンピュータプログラム、1以上の実行ファイル、1以上の命令、ロジック、マシーンコード、1以上のスクリプト又はソースコードを含む。特定の実施例では、ソフトウェアは、1以上のAPI(Application Programming Interface)を含む。本開示は、何れか適切なプログラミング言語又はプログラミング言語の組み合わせにより記述又は表現された何れか適切なソフトウェアを想定する。特定の実施例では、ソフトウェアはソースコード又はオブジェクトコードとして表現される。特定の実施例では、ソフトウェアは、C、Perl又はこれらの適切な拡張などのよりハイレベルなプログラミング言語により表現される。特定の実施例では、ソフトウェアは、アセンブリ言語(又はマシーンコード)などのよりローレベルなプログラミング言語により表現される。特定の実施例では、ソフトウェアはJAVAにより表現される。特定の実施例では、ソフトウェアは、HTML(Hyper Text Markup Language)、XML(Extensible Marup Language)又は他の適切なマークアップ言語により表現される。
【0044】
本開示は、当業者が理解する実施例に対するすべての変更、置換、変形、変更及び改良を含む。同様に、適切である場合、添付した請求項は、当業者が理解する実施例に対するすべての変更、置換、変形、変更及び改良を含む。