本開示の実施形態は、セキュアな取引に参加する能力をユーザに提供し、デバイスおよびシステムに依存しない、マーチャントに支払システムとの統合を要求しない支払システムを提供する。たとえば、支払システムは、ユーザに関連付けられているユーザ・クライアント・デバイスに支払トークンを送信することによって、支払トークンを使用して支払取引を開始し、次いで、支払トークンをマーチャント(たとえば、マーチャント・システム)に送信する。支払トークンを、マーチャント・システムではなくユーザ・クライアント・デバイスに送信することにより、支払システムは、ユーザおよびマーチャントが、ユーザ・クライアント・デバイスおよびマーチャント・システムのデバイスまたはオペレーティング・システムに関係なく、支払取引を始められるようにする。
述べたように、支払システムは、ユーザがマーチャントとの電子支払取引を開始できるようにする。具体的には、支払システムは、ユーザ・アカウントに関連付けられているユーザ・クライアント・デバイスから支払トークンの要求を受信する。たとえば、ユーザが支払システムを活用して支払取引を開始するための要求を選択する場合、クライアント・デバイスは、要求を支払システムに送信して、支払トークンを取得する。具体的には、マーチャント・システムは、アプリケーション・インタフェース内に、支払取引を開始するために支払トークンについての支払システムへの要求をクライアント・デバイスに送信させるコードを実装することができる。たとえば、支払システムは、サードパーティ・エンティティが、ユーザ・クライアント・デバイスに支払システムと通信させるコードをアプリケーション・インタフェース内に埋め込めるようにするアプリケーション・プログラム・インタフェース(API)標準を提供することができる。例示するために、ユーザ・クライアント・デバイスは、支払システムの呼び出しを使用して、支払トークンをユーザ・クライアント・デバイスに送信するよう要求することができる。したがって、マーチャント・システムは、マーチャント・システムに支払システムと直接通信させる、支払システムとのディープなAPI統合を提供するようマーチャント・システムに要求しなくても、ユーザが支払システムを使用して支払を行うオプションを提供することができる。
1つまたは複数の実施形態において、支払システムは、支払ネットワークから、支払取引を開始するための支払トークンを取得する。特に、支払システムは、ユーザ・クライアント・デバイスからの呼び出しを通じて支払取引の開始要求を受信したことに応答して、支払トークンを要求する。例示するために、支払システムは、ユーザのユーザ・アカウントに関連付けられている支払許可番号(たとえば、クレジット/デビット・カードの番号)などの支払クレデンシャルを使用して、支払トークンを取得する。たとえば、支払システムは、ユーザ・アカウントに関連付けられている支払許可番号を識別し、支払許可番号に関連付けられているカード・ネットワーク・システムから支払トークンを要求する。支払許可番号に関連付けられているカード・ネットワーク・システムは、ユーザ・アカウントに関連付けられている支払許可番号を表す支払トークンを返す。支払システムは、対応する支払許可番号を使用する代わりに、支払トークンを暗号化し、暗号化された支払トークンをユーザ・クライアント・デバイスに送信して支払取引を開始する。支払トークンを使用して支払取引を開始して処理することにより、支払システムは、支払許可番号を含むエンティティおよび/または通信の数を減らすセキュアな電子支払プロセスを提供する。
支払システムが支払トークンをユーザ・クライアント・デバイスに送信した後、支払システムは、支払取引に関連して支払トークンを再び受信することはない。具体的には、クライアント・デバイスは、支払トークンをマーチャント・システムに転送する。マーチャント・システムは、次いで、通常の支払クレデンシャルを処理するのと同様に、支払トークンを処理する。たとえば、マーチャント・システムは、支払トークンを支払ネットワークに転送して、支払取引を処理することができる。このように、マーチャント・システムは、支払取引中に支払システムと通信しなくてもよい。
支払トークンを支払システムに戻すことに加えて、任意選択で、支払許可番号に関連付けられているカード・ネットワーク・システムは、1回限りの使用の暗号文を返す。代替実施形態において、支払システムは、1回限りの使用の暗号文を生成し、1回限りの使用の暗号文をカード・ネットワーク・システムに送信する。支払システムは、支払ネットワークを通じて現在の支払取引を処理するために、支払トークンとともに、暗号文をマーチャントに送信する。具体的には、支払システムは、支払トークンおよび1回限りの使用の暗号文をマーチャントに提供する。マーチャントは、次いで、支払取引を処理するために、支払トークンおよび1回限りの使用の暗号文を支払ネットワーク内のゲートウェイ・システムまたは他のエンティティに送信することによって、支払取引を開始することができる。
さらに、暗号文は1回限りの使用であるため、支払システムは、将来の支払取引で使用するために暗号文を記憶することはない。むしろ、支払システムは、ユーザ・アカウントに関連付けられている追加の支払取引のたびに新たな1回限りの使用の暗号文を要求する。支払許可番号に関連付けられているカード・ネットワーク・システムは、特定の支払取引のために新たな1回限りの使用の暗号文を支払システムに返す。このように、特定の支払取引について、支払システムは、その特定の支払取引をマーチャントと開始するときに、対応する1回限りの使用の暗号文とともに、記憶されている支払トークンを使用する。
1つまたは複数の実施形態において、支払システムは、将来の支払取引で使用するために支払トークンを記憶する。特に、支払システムは、ユーザ・アカウントに関連して1つまたは複数のサーバ上に支払トークンを記憶する。たとえば、支払システムは、対応する支払許可番号を記憶する代わりに、支払トークンを1つまたは複数のサーバに記憶することができる。支払許可番号を記憶して使用するのではなく、支払取引で使用するための支払トークンを記憶することは、支払システムでまたは支払取引中にユーザの支払情報を露出するリスクを減らす。
述べたように、本明細書で説明される支払システムは、従来の電子支払システムに勝る利点を提供する。具体的には、ユーザ・クライアント・システムの支払トークンをマーチャント・システムに送信するように構成することで、支払システムは、支払システムと統合していないマーチャント・システムとの支払取引を開始できるようになる。たとえば、本明細書で説明される支払システムは、マーチャントに支払システムとの契約関係または他の正式な関係を締結することを要求することなく、マーチャントがユーザ(すなわち、消費者)との支払取引に参加する手段を提供する。支払システムと統合されていないかまたは支払システムに登録されていないマーチャントとの支払取引を可能にすることは、支払取引に関連してサーバ・デバイスが記憶および処理するデータ量を減らすことにより、支払システムに関連付けられているサーバ・デバイスの負担を減らす。
加えて、このような支払取引プロセスは、ユーザ・クライアント・デバイスおよびマーチャント・システムが支払システムとの支払取引を行うために任意の種類のデバイスおよび/またはオペレーティング・システムを使用できるようにする。特に、支払システムは、支払トークンの要求を実施し、JavaScript(または同様なコーディング言語)層で支払システムとの支払取引を開始するよう要求する。コードは、多くの異なるクライアント・デバイスまたはオペレーティング・システムから呼び出されるときに適切に機能することができるので、支払システムは、マーチャント・システムおよびユーザが、特定の機器/デバイスおよびオペレーティング・システムのソフトウェアを必要とすることなく支払取引に参加できるようにする。このことは、マーチャント・システムおよびユーザに、支払取引プロセスにおける柔軟性を提供する。
図1は、1つまたは複数の実施形態による、支払システム110を含む環境100を例示する概略図である。環境の概要は、図1に関係して説明される。その後、支払システムの構成要素およびプロセスならびに環境内の他の構成要素のより詳細な説明が、残りの図に関係して提供される。
図1によって例示されるように、環境100は、ユーザ、ユーザ・クライアント・デバイス104、マーチャント・システム106、支払システム110をホストしているサーバ・デバイス108、および支払ネットワーク112を含むことができる。クライアント・デバイスの例には、モバイル・デバイス(たとえば、スマートフォン、テーブル)、ラップトップ、デスクトップ、または任意の他の種類のコンピューティング・デバイスが含まれる。図6および対応する説明は、コンピューティング・デバイスに関する追加情報を提供する。また、環境100のデバイスは、1つまたは複数のネットワークを通じて互いに通信することができる。1つまたは複数の実施形態において、ネットワークは、インターネットまたはワールド・ワイド・ウェブを含む。しかし、ネットワークは、図7を参照して以下でさらに説明するように、さまざまな通信技術およびプロトコルを使用する1つまたは複数のプライベートおよび/またはパブリック・ネットワークを含むことができる。
ユーザ102は、マーチャント・システム106と対話して購入を行うことができる。具体的には、ユーザ102は、ユーザ・クライアント・デバイス104を使用して、マーチャント・システム106との支払取引を始める。図1に詳しく例示するように、ユーザ・クライアント・デバイス104は、支払システム110をホストしているサーバ・デバイス108と通信することができる。より詳細に以下で説明するように、支払システム110は、支払ネットワーク112のさまざまな構成要素と通信して、ユーザ102とマーチャント・システム106との間の支払を促進する取引を調整する。支払ネットワーク112は、支払ゲートウェイ・システム114、カード・ネットワーク・システム118および発行者120を含むことができる。しかし、他の実施形態では、支払ネットワーク112は、これより多くのアクタまたはこれより少ないアクタを含む。図1は、ユーザ102、ユーザ・クライアント・デバイス104、マーチャント・システム106、支払システム110および支払ネットワーク112の特定の構成を例示しているが、さまざまな追加構成が可能である。
前述したように、また図1が例示するように、ユーザ102は、ユーザ・クライアント・デバイス104を使用してマーチャント・システム106とインターフェースを取ることができる。1つまたは複数の実施形態において、ユーザ102は、マーチャントのクライアント・アプリケーションにアクセスすることができる。クライアント・アプリケーションは、ウェブ・アプリケーションまたはネイティブ・アプリケーションなど、マーチャント・システム106とインターフェースを取るネットワーク・アプリケーションを備えることができる。クライアント・アプリケーションは、ユーザ102に商品および/またはサービスの販売をオファーすることができる。1つまたは複数の実施形態において、より詳細に以下で説明するように、サーバ・デバイスは、ユーザが登録されるネットワーキング・システム(たとえば、ソーシャル・ネットワーキング・システム)を含むことができる。例示するために、クライアント・アプリケーションは、ソーシャル・ネットワーキング・システム内に設けられて、マーチャントが提供する製品およびサービスをユーザが見ることができるようにするマーチャント・ページおよび/またはインターフェースを備えることができる。加えて、マーチャント・システムは、マーチャント・ページおよび/またはインターフェース内から支払システムを使用して製品およびサービスに対する支払を行うオプションを提供することができる。
ユーザ102は、クライアント・アプリケーションを通じてオファーされる1つまたは複数のアイテムまたはサービスを選択することにより、注文を始めてもよい。注文を完了するには、ユーザ102は、従来であれば、ユーザの名、ミドルネーム、姓、ペイメント・カード(クレジット・カード、デビット・カード等)番号、ペイメント・カードの有効期限(年および/または月)、ペイメント・カードに関連付けられている請求先住所(ストリート名、家屋番号、市、州または県、郵便番号、国等を含む)、ペイメント・カードに関連付けられている電話番号、および1つまたは複数の配送先住所(請求先住所と同様なフィールドを含む)など、最大20のさまざまな支払フィールドに入力する必要があっただろう。支払システム110は、ユーザ102の支払情報を記憶することができ、その情報の少なくとも一部をマーチャント・システム106に提供して、ユーザ102の精算体験を簡素化し、セキュリティを高めることができる。より具体的には、クライアント・アプリケーションは、支払システム110によって維持されている支払情報を使用するための選択可能なオプションを表示するか、またはその他の形で提供することができる。ユーザ102が選択可能なオプションを選択する場合、支払システム110は、ユーザ・クライアント・デバイス104がマーチャント・システム106に提供することのできる支払トークンを提供することによって、支払取引を促進することができる。
図1に例示するように、支払ネットワーク112は、支払ゲートウェイ・システム114、カード・ネットワーク・システム118、および支払許可番号の発行者(たとえば、発行者120)を含む。本明細書で使用される場合、「支払ゲートウェイ・システム」という用語は、取引情報を加盟店銀行に送信し、発行銀行からの応答(取引が承認されるか、または拒絶されるかなど)を送信するソフトウェアおよびサーバをいう。したがって、支払ゲートウェイ・システムは、銀行間の通信を促進する。さらに、支払ゲートウェイは、ペイメント・カード業界データ・デバイス・セキュリティ基準(PCI−DSS:Payment Card Industry Data Security StandardまたはPCI)を実施する。支払ゲートウェイ・システムは、通信プロトコルをブリッジするのを助け、マーチャントに代わってセキュリティを提供する。支払ゲートウェイ・システムは、通常、取引ごとの料金を請求する。支払ゲートウェイ・システムのいくつかの例には、Braintree、ドウォーラ(Dwolla)、ペイパル(Paypal)、Authorize.netが含まれる。
本明細書で使用される場合、「カード・ネットワーク・システム」という用語は、クレジット・カードのユーザ、マーチャントおよび発行者間の支払プロセスを促進するエンティティをいう。カード・ネットワーク・システムは、クレジット・カードを使用できる場所を指示し、クレジット・カード取引を許可し、取引を処理し、取引の条件を設定することもできる。カード・ネットワーク・システムのいくつかの例には、ビザ(VISA)、マスターカード(MASTERCARD)、アメリカン・エキスプレス(AMERICAN EXPRESS)およびディスカバー(DISCOVER)が含まれる。
本明細書で使用される場合、「発行者」という用語は、クレジット・カードを消費者に発行して、その口座にサービスを提供する金融機関(たとえば、銀行)をいう。発行者は、カード・ネットワーク・システムまたは支払ゲートウェイ・システムとすることもできる。カード・ネットワーク・システムのいくつかの例には、チェース(CHASE)、バンクオブアメリカ(BANK OF AMERICA)、ウェルズ・ファーゴ(WELLS FARGO)、ユーエスバンク(U.S.BANK)、およびシティバンク(CITIBANK)が含まれる。
本明細書で使用される場合、「支払許可番号」という用語は、対応する決済口座へのアクセスを許可する番号をいう。たとえば、支払許可番号は、クレジット・カード番号またはデビット・カード番号とすることができる。
1つまたは複数の実施形態において、支払システム110は、消費者の支払許可番号に関連付けられているカード・ネットワーク・システム118と通信して、支払トークンを取得する。本明細書で使用される場合、「支払トークン」という用語は、支払許可番号のトークン化されたバージョンをいう。具体的には、ネットワーク支払トークンは、カード・ネットワーク・システム118が特定の支払許可番号にマッピングする、複数の文字を含む支払許可番号のハッシュ化されたバージョンまたはその他の形で難読化されたバージョンを含むことができる。
支払ネットワーク112がサーバ・デバイス108の支払システム110に支払トークンを提供すると、サーバ・デバイス108は、次いで、支払トークンを暗号化してユーザ・クライアント・デバイス104に送信して検証し、マーチャント・システム106に渡して支払取引を開始し、ユーザの購入を処理する。サーバ・デバイス108は、支払トークンに関連してユーザのユーザ情報を収集して、ユーザ・クライアント・デバイス104に送信することもできる。ユーザ情報は、前述したような請求先情報または住所情報など、ユーザに関する識別情報を含むことができる。
少なくともいくつかの実施態様では、カード・ネットワーク・システム118は、支払取引に関連付けられている暗号文も、支払トークンとともにユーザ・クライアント・デバイス104に送信する。本明細書で使用される場合、「暗号文」という用語は、支払取引のために支払トークンの使用の許可で使用するために、支払取引に割り当てられるコードをいう。例示するために、暗号文は、カード・ネットワーク・システム118が、対応する支払取引のために支払トークンの使用の妥当性確認を行える数値コードまたは他の値とすることができる。
ユーザ・クライアント・デバイス104が支払トークンを受信した後、ユーザ・クライアント・デバイス104は、支払トークンをマーチャント・システム106に送信する。マーチャント・システム106は、次いで、他の支払情報ととともに支払トークンを支払ゲートウェイ・システム114に送信して、支払取引を処理する。1つまたは複数の実施形態において、支払ゲートウェイ・システム114は、カード・ネットワーク・システム118とも通信をして、支払情報を送信する。支払トークンを使用して対応する支払許可番号を決定するのが支払ゲートウェイ・システム114なのかまたはカード・ネットワーク・システム118なのかは、支払トークンがゲートウェイ支払トークンであるかまたはネットワーク支払トークンであるかによる。いずれの場合も、支払ネットワーク112は、対応する支払許可番号を識別して、支払取引を許可し、ユーザ102の決済口座からマーチャント・システム106の決済口座に資金を振り替える。
述べたように、図1を参照して上述したシステムおよび構成要素は、ユーザ(すなわち、消費者)が簡単に、効率的に、かつセキュアに、マーチャントとの支払取引に参加できるようにすることができる。図2A〜図2Bは、上述した支払システム110によって実施されるプロセスの1つまたは複数の例示的な実施形態の例示的なプロセス図を示す。図1に例示される環境100に合わせて、図2A〜図2Bは、(動作のシーケンス・フローに従い)ユーザ・クライアント・デバイス104、マーチャント・システム106、サーバ・デバイス108上に実装される支払システム110、および支払ネットワーク112を示す。
1つまたは複数の実施形態において、ユーザがマーチャントとの支払取引を開始するプロセスは、マーチャント・システム106がアプリケーション(たとえば、上記のクライアント・アプリケーション)内のコンテンツをユーザ・クライアント・デバイス104に提供する(200)ことから始めることができる。特に、マーチャント・システム106は、アプリケーション内で、マーチャントに関連付けられている商品またはサービスをユーザがブラウズできるインターフェースを提供する。アプリケーションは、ブラウザ・アプリケーション、モバイル・アプリケーション、デスクトップ・アプリケーション、またはユーザ・クライアント・デバイス104上で実行する他のコンピューティング・アプリケーションを含むことができる。
1つまたは複数の実施形態によると、ユーザ・クライアント・デバイス104は、ユーザがマーチャント・システム106からのコンテンツと対話できるようにする。たとえば、ユーザ・クライアント・デバイス104は、アプリケーションを開くことによって、またはインターフェースにその他の形でナビゲートすることによって、マーチャントに関連付けられている商品またはサービスをブラウズするためのインターフェースをユーザが見られるようにする。例示するために、アプリケーションは、マーチャントによって作成された、および/またはその他の形でマーチャントに関連付けられている専有アプリケーションとすることができる。代替的に、アプリケーションは、ユーザが、インターネットへのアクセスを提供するウェブ・ブラウザなど、異なるエンティティに関連付けられている1つまたは複数の異なるインターフェースを見られるようにするアプリケーションとすることができる。
加えて、ユーザは、マーチャントに関連付けられている商品およびサービスを見るために、コンテンツの1つまたは複数のページまたはインターフェースをナビゲートすることができる。例示するために、ユーザは、ユーザ・クライアント・デバイス104と対話することによって、マーチャントに関連付けられているコンテンツをナビゲートすることができる。ユーザ・クライアント・デバイス104と対話することは、ユーザ・クライアント・デバイス104に、コンテンツを取り出すためにマーチャント・システム106と通信させることもできる。ユーザが購入したい商品またはサービスをユーザが識別した後、ユーザは、ユーザ・クライアント・デバイス104と対話して、サーバ・デバイス108がホストする支払システム110(たとえば、Pay With Facebook(登録商標))を活用して、識別された商品またはサービスを購入するオプションを選択することができる。識別された商品またはサービスを購入するオプションを選択することで、ユーザ・クライアント・システム104に支払メッセージを生成させる(202)。
1つまたは複数の実施形態において、アプリケーション200は、支払システム110を活用して識別された商品またはサービスを購入するオプションのセクションに応答して、ユーザ・クライアント・デバイス104を支払システム110と通信させるコードを含む。具体的には、アプリケーション200のコードは、マーチャント・システム106に利用できる公開済みのAPIプロトコルに基づいて、ユーザ・クライアント・デバイス104にサーバ・デバイス108の呼び出しを行わせることができる。たとえば、コードは、支払トークンおよび任意で情報の1つまたは複数の項目の要求をサーバ・デバイス108に送信するためのJavaScriptコマンドを含むことができる。例示するために、JavaScript(または他の言語)層でコードを実施することで、ユーザ・クライアント・デバイス104に、支払取引を開始するための要求を生成させる。より詳細に以下で説明するように、JavaScript層で要求を実施することは、サーバ・デバイス108にマーチャント・システム106と直接通信することを要求することなく、支払システム110がユーザの支払取引を促進することも可能にする。
支払メッセージを生成することは、ユーザとマーチャントとの間の支払取引に関する支払情報を識別することを含むことができる。たとえば、支払メッセージには、ユーザ識別子、マーチャント識別子、支払額、支払許可番号(または対応する支払許可番号とともに支払方法の指示)、および/または支払システム110に支払取引プロセスを始めさせる他の情報を含むことができる。さまざまな実施例によると、ユーザ・クライアント・デバイス104は、ユーザとマーチャントとの間の対話、ユーザ・クライアント・デバイス104のデータ・マネージャ、および/またはユーザ入力から、支払メッセージに関する支払情報を取得することができる。ユーザ・クライアント・デバイス104は、次いで、支払メッセージを支払システム110に送信する(204)。
ユーザ・クライアント・デバイス104からの支払メッセージの受信に応答して、支払システム110は、ユーザの個人認証番号を識別する(206)。具体的には、支払システム110は、支払メッセージから個人認証番号を識別することができる。たとえば、支払メッセージは、支払システム110に以前に提供された支払許可番号に支払システム110が割り当てた識別子を含むことができる。代替的に、支払メッセージは、支払システム110によって支払許可番号に関連付けられている情報をユーザが保存していなかった場合、支払許可番号を含むことができる。さらに別の実施形態において、支払システム110は、ユーザに支払許可番号を提供するよう促すか、またはユーザに新たな支払許可番号を修正もしくは追加させることができる。述べたように、個人認証番号は、ユーザの決済口座に関連付けられているクレジット・カード番号または他のアカウント番号とすることができる。支払システム110は、支払メッセージに含まれる追加の支払情報も識別する。
支払システム110は、ユーザおよび/または支払許可番号に関連付けられているユーザ情報にもアクセスする(208)。具体的には、支払システム110は、支払メッセージからユーザ識別子に関連付けられているユーザ・アカウント(例、ソーシャル・ネットワーク・アカウント)にアクセスして、支払取引の処理で使用するためにユーザに関する識別情報にアクセスすることができる。たとえば、ユーザ情報は、ユーザの住所、電話番号、および連絡先情報など、ユーザの請求先住所情報を含むことができる。加えて、ユーザ情報は、ユーザがマーチャントとの支払取引に参加できるようにし得る、ユーザに関する追加の識別情報も含むことができる。
支払システム110は、ユーザ・クライアント・デバイス104からの支払メッセージに含まれる支払情報を使用して、トークン要求メッセージを生成する(210)。具体的には、支払システム110は、識別された支払許可番号に関連付けられている支払トークンを要求するためのトークン要求メッセージを生成する。トークン要求メッセージは、カード・ネットワーク・システム118が消費者および/またはトークン要求者(すなわち、支払システム110)の身元を検証できるようにする支払許可番号および識別情報を含む。支払システム110は、カード・ネットワーク・システム118に対して、支払許可番号を使用するのではなく、消費者の支払取引の処理で使用するために支払トークンを提供するよう要求する。
1つまたは複数の実施形態において、トークン要求メッセージに含まれる識別情報は、トークン要求者の識別子を含む。たとえば、トークン要求者の識別子は、カード・ネットワーク・システム118が支払システム110に以前に割り当てた固有の識別子とすることができる。例示するために、トークン要求者の識別子は、12文字の固定長の値でもよい。トークン要求者の識別子は、カード・ネットワーク・システム118がトークン要求メッセージからトークン要求者の身元を決定できるようにする識別子である。
1つまたは複数の実施形態において、支払システム110は、特定の支払許可番号のネットワーク・トークン化が利用できるかどうかも決定することができる。具体的には、支払システム110は、支払許可番号内の1つまたは複数の桁に基づいて(たとえば、銀行識別番号に基づいて)、カードのタイプまたは消費者の登録など、支払許可番号の少なくとも1つの属性を識別することができる。支払システム110は、次いで、支払許可番号の識別された属性に基づいて、支払許可番号に関連付けられているカード・ネットワーク・システム118が支払許可番号の支払トークンを提供するかどうかを決定することができる。たとえば、支払システム110は、一定のカード・ネットワーク・システム118は支払トークンを提供するが、他のカード・ネットワーク・システム118は提供しないと決定することができる。同様に、カード・ネットワーク・システム118からの一定のカードの種類または支払許可トークンはトークン化してもよいが、同じカード・ネットワーク・システム118に関連付けられている他のものはトークン化しなくてもよい。
特定の支払許可番号がカード・ネットワーク・システム118によってトークン化が可能ではない場合、支払システム110は、サードパーティ支払プロセッサからトークンを取得する。たとえば、支払システム110は、現在の支払取引で使用するために、サードパーティ支払プロセッサから1回限りの使用の支払許可番号を要求することができる。
支払システム110は、次いで、トークン要求メッセージをカード・ネットワーク・システム118に送信する(212)。トークン要求メッセージを受信すると、カード・ネットワーク・システム118は、トークン要求メッセージから支払許可番号を識別し、支払許可番号の真正性を検証する。たとえば、カード・ネットワーク・システム118は、カード・ネットワーク・システム118に関連付けられている支払許可番号のデータベース内で支払許可番号を識別する。加えて、カード・ネットワーク・システム118は、消費者の身元、消費者に関連付けられているセキュリティ情報、トークン要求メッセージからの支払取引情報など、サーバ・デバイスによって提供される支払許可番号に関連付けられている追加情報を識別することができる。
1つまたは複数の実施形態において、カード・ネットワーク・システム118は、トークン要求メッセージのトークン要求者の識別子を使用してトークン要求者を検証する(214)。トークン要求者の身元で、カード・ネットワーク・システム118は、カード・ネットワーク・システム118と支払システム110との間で確立される信頼レベルを識別することができる。具体的には、カード・ネットワーク・システム118は、1つまたは複数のトークン要求者と信頼関係を築いてもよい。たとえば、信頼されている各トークン要求者は、追加のセキュリティ情報を要求することなく、カード・ネットワーク・システム118から支払トークンを要求してもよい。
カード・ネットワーク・システム118によって信頼されていない別のエンティティがカード・ネットワーク・システム118から支払トークンを要求しようとする場合、カード・ネットワーク・システム118は、要求を拒絶し得る。トークン要求者との信頼関係を築き、信頼されている要求者にのみトークンを提供することにより、カード・ネットワーク・システム118は、支払トークンの不正要求のリスクを減らすことができる。加えて、信頼されている要求者の使用により、カード・ネットワーク・システム118は、支払取引を許可するために消費者が提供しなければならない識別情報の量を減らすことができる。代替実施形態において、カード・ネットワーク・システム118は、信頼されていない要求者からの要求の真正性を検証するために、追加のセキュリティ情報を要求する。
支払システム110のアイデンティティが検証されたら、カード・ネットワーク・システム118は、次いで、支払取引のために、支払許可番号の支払トークンを、場合によっては暗号文を、生成する(216)。特に、カード・ネットワーク・システム118は、支払取引プロセスに関連付けられているエンティティに対する支払許可番号を表す支払トークンを生成する。たとえば、支払トークンは、所定数の桁の中で可変数の桁をもつ数値とすることができる(たとえば、最大19桁までの可変フィールド)。
1つまたは複数の実施形態において、支払トークンは、支払許可番号と同じ数の桁にして、支払取引プロセスに関連付けられている各エンティティが支払トークンを有効な支払許可番号と見なせるようにする。具体的には、支払トークンは、元々の支払許可番号と同様なまたは同じ銀行識別番号および同様なナンバリング論理を有してもよい。代替的に、桁数は、支払許可番号に基づかずに、支払トークンが支払許可番号とは異なる桁数をもつことができるようにしてもよい。
述べたように、カード・ネットワーク・システム118は、現在の支払取引で使用するための暗号文を生成することができる。具体的には、暗号文は、支払トークンを現在の支払取引につなげるかまたはスコープする、1回限りの使用のコードまたは値である。1つまたは複数の実施形態において、暗号文は、支払額、ドメイン、および/または支払取引を具体的に識別する他の情報などの取引情報を使用して、支払トークンを現在の支払取引にスコープする。暗号文は、カード・ネットワーク・システム118が現在の支払取引で使用するために支払トークンが許可されたことを検証できるようにする。したがって、カード・ネットワーク・システム118は、暗号文がない支払取引を処理するためのマーチャントからの要求を拒否するので、カード・ネットワーク・システム118は、支払トークンの無許可の使用を拒否する。加えて、暗号文は、特定の支払取引に関連付けられているため、暗号文は、1回限りの使用の暗号文であり、他の支払取引で使用することはできない。1つまたは複数の代替実施形態において、支払システム110は、定期購入または他の定期的な支払について、暗号文を複数回使用することを許される。図面は、カード・ネットワーク・システム118を単一エンティティとして示しているが、本明細書の開示に鑑みて、本開示はそのように制限されないことは理解されるであろう。具体的には、カード・ネットワーク・システム118は、支払システム110と同様に、複数の異なるデバイスにわたって実装することができる。たとえば、カード・ネットワーク・システム118は、支払を処理するカード・ネットワーク・システム118の部分ではなく、個別のシステムによってホストされるトークン・プロビジョニング・サービスを備えることができる。1つまたは複数の実施形態において、カード・ネットワーク・システム118のトークン・プロビジョニング・サービスは、支払トークンおよび暗号文を生成することができる。
1つまたは複数の実施形態においては、カード・ネットワーク・システム118ではなく、支払システム110が暗号文を生成する。このような場合、トークン要求メッセージ212は、暗号文を含むことができる。いずれの場合も、カード・ネットワーク・システム118は、発行者120に支払トークンを送信し、任意で暗号文を送信することができる。
カード・ネットワーク・システム118は、次いで、支払システム110に支払トークンを送信し、任意で暗号文を送信する(218)。1つまたは複数の実施形態によると、支払システム110は、支払トークンを、消費者のユーザ・プロフィールまたはユーザ・アカウントに関連付けて記憶する。より詳細に以下で説明するように、支払システム110が消費者の支払トークンを受信したら、その消費者に係わる将来の支払取引は、対応する支払許可番号の代わりに、記憶されている支払トークンを使用することができる。
支払ネットワーク112から支払トークンを受信した後、支払システム110は、支払トークンを暗号化する(220)。たとえば、支払システム110は、ユーザ・クライアント・デバイス104に提供するために支払トークンを暗号化する。具体的には、支払システム110は、暗号鍵を使用して支払トークンを暗号化することができる。加えて、支払システム110は、支払トークンおよび任意で暗号文および/またはユーザ情報(もしくは他の支払情報)を含むデータ・パッケージを暗号化して、ユーザ・クライアント・デバイス104に提供することができる。支払システム110は、支払システム110に関連付けられている鍵を用いて暗号化されたデータ・パッケージに署名して、ユーザ・クライアント・デバイス104がそのパッケージが支払システム110からのものであることを検証できるようにすることもできる。
1つまたは複数の実施形態によると、支払システム110は、支払トークンおよびユーザ情報を、ユーザ・クライアント・デバイス104だけが復号化することのできる暗号鍵を使用して暗号化する。たとえば、支払システム110は、公開/秘密鍵ペアを使用することができる。したがって、ユーザ・クライアント・デバイス104は、次いで、支払トークンおよびユーザ情報を復号化し、その情報を使用してマーチャント・システム106との支払取引を開始することになろう。
代替的に、支払システム110は、マーチャント・システム106も復号化することのできる暗号鍵を使用して支払トークンを暗号化することができる。たとえば、支払システム110は、暗号鍵を使用してデータ・パッケージを暗号化することができ、関連付けられている秘密鍵をマーチャント・システム106に渡す。
いずれのシナリオにおいても、支払システム110は、暗号化された支払トークン(および任意で、ユーザ情報および暗号文)をユーザ・クライアント・デバイス104に送信する(218)。たとえば、支払システム110は、データ・パッケージ内または支払取引メッセージ内の暗号化された支払トークンとユーザ情報とをユーザ・クライアント・デバイス104に送信する。支払システム110は、ユーザに見えないかまたはトランスペアレントであるように、データ・パッケージを送信することができる(すなわち、暗号化されている間は、データ・パッケージの内容にユーザはアクセスできない)。
暗号化されたデータ・パッケージを受信すると、ユーザ・クライアント・デバイス104は、支払トークン(また、該当する場合には、ユーザ情報および暗号文)を復号化する(224)。特に、ユーザ・クライアント・デバイス104は、支払システム110がデータ・パッケージを暗号化するのに使用した暗号鍵に関連付けられている復号化鍵を使用することができる。ユーザ・クライアント・デバイス104は、ユーザがマーチャント・システム106との支払取引を開始できるようにすることに使用するために、復号化鍵を使用して、データ・パッケージから情報を抽出することができる。
加えて、ユーザ・クライアント・デバイス104は、表示デバイスに支払情報のうちの1つまたは複数の項目を提示して、支払情報を検証する(226)ことができる。たとえば、ユーザ・クライアント・デバイス104は、ユーザ情報を、支払許可番号のために選択された支払方法とともに、マーチャント・システム106に関連付けられているインターフェースに表示することができる。例示するために、ユーザ・クライアント・デバイス104は、インターフェース(たとえば、マーチャントが提供する請求フォーム)に支払情報をオートフィルすることができる。このように、サーバ・デバイス108にマーチャント・システム106に直接情報を送信するよう要求することなく、またはユーザ・クライアント・デバイス104に支払システム110に関連付けられているフォームにリダイレクトするよう要求することなく、ユーザ・クライアント・デバイス104は、マーチャント・システム106に関連付けられているインターフェースを活用して、検証のためにユーザに支払情報を提示する。
支払取引に関連付けられている情報を検証するために、ユーザは、インターフェース内の情報を見て、情報が正しいかどうかを判断することができる。述べたように、ユーザ・クライアント・デバイス104は、マーチャント・システム106がクライアント・アプリケーション内でユーザ・クライアント・デバイス104に提供するインターフェースを活用することができる。インターフェース内の入力可能なフォームに情報を表示することで、ユーザがその情報を見られるように、および/または編集できるようにすることができる。例示するために、ユーザは、支払許可番号の省略版(たとえば、支払許可番号の最後の4桁のみを表示する)またはユーザの識別情報(たとえば、氏名、住所、セキュリティ質問等)を見るなどして、支払方法を見て検証することができる。
さまざまな実施例によると、ユーザは、支払方法および/またはユーザの識別情報が正確であると判断して、入力された通りの情報を使用するオプションを選択することができる。代替的に、ユーザは、情報の項目のうちの1つまたは複数が不正確であると判断することができ、情報を編集することができる。情報を編集することで、ユーザ・クライアント・デバイス104に編集済みの情報を支払システム110へ送信させ、支払システム110は、次いで、編集したものをユーザのユーザ・アカウントとともに記憶することができる。
ユーザが支払トークンおよび関連情報を検証したら、ユーザ・クライアント・デバイス104は、マーチャント・システム106がクレジット・カードまたはデビット・カード取引を処理するために採用する支払処理手順に従って、支払トークンおよびユーザ情報をマーチャント・システム106に送信する(228)。
1つまたは複数の実施形態において、支払トークンは、有効な支払許可番号であるように見える、支払許可番号の難読化値を含む。しかし、マーチャント・システム106は、データ・パッケージを復号化した後であっても難読化値しか見ることができないので、マーチャント・システム106が実際の支払許可番号にアクセスすることは決してない。難読化値は、有効な支払許可番号であるように見えるため、マーチャント・システム106は、それでも、実際の支払許可番号で操作するのと同様に支払取引を処理することができる。加えて、暗号文は、コード検証値(「CVV番号」)などのセキュリティ・コードと類似し得るので、マーチャント・システム106は、支払情報を有効であると確認する。
マーチャント・システム106は、次いで、ユーザ・クライアント・デバイス104から提供された情報を使用して、支払取引を開始する(230)。具体的には、マーチャント・システム106は、ユーザ・クライアント・デバイス104からのデータ・パッケージから支払トークンを(また、該当する場合には暗号文も)識別する。加えて、マーチャント・システム106は、支払額、購入情報(たとえば、製品またはサービス)、ユーザ識別情報(たとえば、氏名、住所、配送情報)、および支払取引を処理するための他の情報を識別することができる。ユーザ・クライアント・デバイス104から支払トークンを受信することにより、マーチャント・システム106が、ユーザの決済口座に関連付けられている支払許可番号を受信することまたは見ることは決してない。加えて、支払トークンがJavaScript層で要求されて渡されるので、マーチャント・システム106が支払システム110を統合する必要がない。
マーチャント・システム106は、支払トークンおよびユーザ情報を支払ネットワーク112に送信する(232)。支払ネットワーク112は、支払トークンおよび支払情報をマーチャント・システム106から受信し、支払トークンおよび支払情報をカード・ネットワーク・システムに送信して支払取引を完了させる、支払ゲートウェイ・システムを含むことができる。他の実施形態では、支払ゲートウェイ・システムは、支払トークンを使用して、カード・ネットワーク・システムに提出するための支払許可番号を取得することができる。
いずれの場合も、支払ネットワーク112は、支払許可番号および追加の支払情報(たとえば、暗号文)を決定(234)して、支払取引が有効かどうかを決定する。たとえば、支払ネットワーク112は、データベースにおいて、支払トークンを支払許可番号にマッピングすることができる。支払ネットワーク112は、データベース内で支払トークンを探索して、支払トークンに関連付けられているエントリで支払許可番号を見つけることができる。代替的に、支払トークンは、支払許可番号の暗号化されたバージョン(たとえば、ハッシュ化されたバージョン)にしてもよく、支払ネットワーク112は、支払トークンを復号化して、支払許可番号を取得することができる。
支払許可番号を識別した後、支払ネットワーク112は、支払取引を処理する(236)ことができる。具体的には、支払取引を処理することは、支払許可番号を使用して、支払許可番号に関連付けられている決済口座からマーチャントに関連付けられている決済口座への資金の振替を許可することを伴う。たとえば、支払ネットワーク112は、マーチャントに関連付けられている銀行システムと通信することにより、ユーザの決済口座からマーチャントの決済口座に資金を振り替えることができる。
より具体的には、マーチャント・システム106は、支払トークンおよび暗号文を、必要な支払取引情報とともに、支払ゲートウェイ・システム114に送信する。支払ゲートウェイ・システム114は、次いで、支払トークン、暗号文および支払取引情報をカード・ネットワーク・システム118に送信する。カード・ネットワーク・システム118は、暗号文を検証して、支払取引が有効かどうかを決定する。有効な暗号文は、支払取引が有効であること、信頼されているトークン要求者から開始されたものであること、また任意選択で、検証済みのマーチャントから検証済みの金額に対するものであることをカード・ネットワーク・システム118に示す。
カード・ネットワーク・システム118は、支払トークンに基づいて支払許可番号も決定する。たとえば、カード・ネットワーク・システム118は、データベースにおいてネットワークの支払トークンを支払許可番号にマッピングする。カード・ネットワーク・システム118は、データベース内で支払トークンを探索して、支払トークンに関連付けられているエントリで支払許可番号を見つけることができる。
支払許可番号を識別した後、カード・ネットワーク・システム118は、支払取引を処理することができる。具体的には、支払取引を処理することは、支払許可番号に関連付けられている決済口座からマーチャントの決済口座への資金の振替を発行者が許可することができるように、発行者120に支払許可番号を送信することを伴う。たとえば、発行者120は、マーチャントに関連付けられている銀行システム(取得者)と通信することにより、消費者の決済口座からマーチャントの決済口座に資金を振り替えることができる。
代替的に、カード・ネットワーク・システム118は、支払トークンを発行者120に送信することができる。発行者120は、次いで、支払トークンに基づいて支払許可番号を決定する。たとえば、発行者120は、データベースにおいて支払トークンを支払許可番号にマッピングすることができる。発行者120は、データベース内でネットワークの支払トークンを探索して、ネットワークの支払トークンに関連付けられているエントリで支払許可番号を見つけることができる。発行者120は、支払許可番号に関連付けられている決済口座からマーチャントの決済口座への資金の振替を許可することができる。たとえば、発行者120は、マーチャントに関連付けられている銀行システム(取得者)と通信することにより、消費者の決済口座からマーチャントの決済口座に資金を振り替えることができる。
より詳細に以下で説明するように、図1に関して説明される支払システム110の構成要素は、他の構成要素とともに、および/または他の構成要素と組み合わせて、1つまたは複数のグラフィカル・ユーザ・インターフェースを提供することができる。具体的には、構成要素は、多様な目的のためにユーザがディスプレイ要素の集合と対話できるようにする。具体的には、図3A〜図3Dおよび以下の説明は、ユーザがマーチャントとの支払取引を始められるようにするクライアント・アプリケーションのユーザ・インタフェースおよび特徴のさまざまな例示的な実施形態を示す。
たとえば、図3A〜図3Dは、ユーザとマーチャントとの間の電子的支払を促進するためにクライアント・アプリケーションが提供するGUIのさまざまな図とともにユーザ・クライアント・デバイス300を示す。具体的には、クライアント・アプリケーションは、ユーザがマーチャント・システムによって提供される商品およびサービスに関連する情報を見て、マーチャントとの支払取引を始められるようにする。より詳細に以下で説明するように、ユーザは、マーチャント・システムがクライアント・アプリケーション内で提供するコンテンツを含むインターフェースを見ることができる。加えて、ユーザは、クライアント・アプリケーションを使用して購入を行い、マーチャントとの電子的支払取引に参加することができる。
示すように、ユーザ・クライアント・デバイス300は、ハンドヘルド・デバイスを含む。本明細書で使用されるとき、「ハンドヘルド・デバイス」という用語は、ユーザの片手の中で持たれる/操作されるようなサイズおよび構成にされたデバイスに及ぶ。しかしながら、追加例または代替例では、限定されるものではないが、タブレット・デバイス、ハンドヘルド・デバイス、より大型の無線デバイス、ラップトップ・コンピュータもしくはデスクトップ・コンピュータ、パーソナルデジタル・アシスタント・デバイス、および/または他の任意の適切なコンピューティング・デバイスなどの他の任意の適切なコンピューティング・デバイスが、本明細書で説明されるプロセスおよび動作またはプロセスならびに動作のうちの1つまたは複数を実行することができる。
1つまたは複数の実施形態において、ユーザは、クライアント・アプリケーションの1つまたは複数のユーザ・インタフェース内のディスプレイ要素と対話して、商品またはサービスを購入するためにマーチャントとの支払取引を開始することができる。述べたように、クライアント・アプリケーションは、マーチャント・システムに関連付けられている1つまたは複数のインターフェースを提供する。1つまたは複数の実施形態において、クライアント・アプリケーションは、モバイル・アプリケーション・ストアを通じて入手できるモバイル・アプリケーションなど、マーチャントが提供するアプリケーションである。代替的に、クライアント・アプリケーションは、複数の異なるマーチャントからのコンテンツへのアクセスを提供するウェブ・ブラウザなど、多様なコンテンツにユーザがアクセスできるようにするサードパーティ・アプリケーションとすることができる。
図3Aに例示するように、クライアント・アプリケーションは、マーチャント・インタフェース302を含むことができる。マーチャント・インタフェース302は、本明細書で説明するように、マーチャントが提供し、ユーザが支払システムを使用して購入できる製品(たとえば、商品またはサービス)を表示することができる。1つまたは複数の実施形態によると、マーチャント・インタフェース302は、マーチャントから入手できる複数の製品またはサービスを含む。たとえば、マーチャント・インタフェース302は、製品の一覧を含んでもよく、そのそれぞれが選択可能であり、および/またはそれ自体のマーチャント・ページを有してもよい。特定のアイテムのマーチャント・ページを選択すると、対応する製品に関する詳細が表示される。たとえば、ある特定の製品のマーチャント・ページは、価格304、製品明細306、製品の画像308、およびマーチャントから入手できる関連アイテムを表示し得る。
1つまたは複数の実施形態において、クライアント・アプリケーションは、表示されたアイテムに関してユーザがマーチャントと通信することも可能にする。たとえば、マーチャント・インタフェース302は、マーチャントと通信するための通信オプション310を提示することができる。例示するために、通信オプション310を選択すると、クライアント・アプリケーションに、ユーザがマーチャントと通信できるようにする(たとえば、電子メールによるか、または統合メッセージング・サービスによって)メッセージング・インタフェースを開かせることができる。1つまたは複数の実施形態において、支払システム110に関連付けられているネットワーク・アプリケーションは、メッセージング・アプリケーションを提供し、通信を促進する。ユーザは、表示される製品に関する価格、購入のオプション、配達のオプション、在庫、カスタマイゼーション、および/または他の情報を話し合うことができる。
マーチャントの製品インターフェースは、製品のマーチャント・ページに製品の「カートに追加」オプション312を表示することもできる。「カートに追加」オプション312を選択すると、クライアント・アプリケーションに、仮想買い物カートに製品を追加させること、および/または購入インターフェースを表示させることができる。図3Bは、図3Aに例示される製品を購入するための精算インターフェースまたは仮想買い物カート・インタフェース314を示す。ユーザが「カートに追加」オプション312を選択すると、クライアント・アプリケーションは、選択された製品を仮想買い物カートに追加し、精算インターフェース314を買い物カートの内容とともに表示する。ユーザは、製品を購入する前に、複数の製品を選択して買い物カートに追加することができる。
購入インターフェースは、支払情報を含む購入情報を含む。具体的には、購入情報は、製品の詳細316(製品の数量を含む)、および購入価格318を含む。図3Bは、買い物カートに関連付けられている1組の詳細を例示しているが、精算インターフェース314は、ユーザが購入情報を検証し、入力できるようにする追加の詳細または代替の詳細を含んでもよい。
ユーザは、「注文する」オプション324を選択することができ、選択すると、クライアント・アプリケーションは、請求先住所、配送先住所、クレジット・カード情報等などの支払情報をユーザが入力することができる支払情報インターフェースを開く。残念ながら、「注文する」オプション324を選択することで、ユーザは、詳細な支払情報を提供するよう要求されるおそれがある。多くの場合、ユーザは、最大20の情報フィールドに記入する必要があるだろう。潜在的な消費者が支払情報を入力する手間、時間切れ、またはその他の不明点が、精算プロセスについてのストレスとなるのが一般的である。このようなストレスによって、潜在的消費者が商取引を断念することがしばしばある。コマースの精算プロセスに対するストレスは、小さい画面や大量の情報を入力する手間のために、モバイル・デバイスを使用するときにさらに大きくなることが多い。また、「注文する」オプション324を選択することで、ユーザは、自分の支払許可番号を入力して、それをマーチャントまたはマーチャントの支払ゲートウェイ・ネットワークと共有することを要求されることもある。
上で論じたように、1つまたは複数の実施形態は、選択可能なオプション322を提供して支払システム110との取引を完了させることにより、前述の問題を回避する。支払システム110との取引を完了させるための選択可能なオプション322は、ユーザが支払システム110を利用して仮想カートに入っているアイテムの購入を完了させ得ることを示すグリフ(すなわち、マーク、アイコン、グラフィック、テキストの一部等)を備えることができる。選択可能なオプション322は、精算ユーザ・インタフェース314に提示されるボタン、精算ユーザ・インタフェース314の上に現れる選択可能なオーバーレイ、プラグイン、ポップアップ、または他の選択可能なオプションを備えることができる。たとえば、クライアント・アプリケーションがウェブ・アプリケーションを備えるときなど、1つまたは複数の実施形態では、ウェブページを定義するコードにインライン・フレームが追加されてもよい。加えてまたは代替的に、クライアント・アプリケーションは、選択可能なオプション322をレンダリングするSDK機能を呼び出すことができる。
本明細書の開示に鑑みて、SDK機能またはインライン・フレームの使用は、選択可能なオプション322をレンダリングするまたは呼び出すための方法の2つの例であることは理解されるであろう。しかし、本開示の実施形態は、SDK機能またはインライン・フレームの使用に制限されない。より具体的には、ブラウザ(たとえば、ウェブ・ブラウザ)の状況で動作または実行するプラグイン・ソフトウェア・アプリケーションまたは構造化ドキュメントを使用する他のアプリケーション・クライアントではなく、本明細書で説明する機能は、プラグインであるのとは反対に、ブラウザ・クライアント・アプリケーションに直接組み込むことができる。たとえば、オープン・グラフ・プロトコルは、任意のウェブページがソーシャル・グラフに統合することを可能にする。特定の実施形態では、構造化ドキュメント内の基本メタデータの存在は、構造化ドキュメント内のオブジェクトがグラフ・オブジェクトまたはノードになることを可能にする。ウェブページをグラフ・オブジェクトにするために、ウェブページにオープン・グラフ・プロトコル<meta>タグおよび選択可能なオプション322を含める。オープン・グラフ・プロトコルは、タイトル、タイプ、イメージ、urlの4つの特性を定義する。
さらに別の実施形態においては、選択可能なオプション322(および/または支払情報)を実装し、レンダリングしまたは呼び出すために、XFBMLまたはHTML5を使用してもよい。XFBMLおよびHTML5は、ページがJavascript SDKを呼び出すことを要求してもよく、コードに加えられてもよい。特定の実施形態では、Javascript SDKは、ウェブページが、支払情報および/または選択可能なオプション322の一部もしくは全部にアクセスできるようにする。さらに、クライアント・アプリケーションは、Javascript SDKを使用して、選択可能なオプション322を誰かがクリックするかまたは他の形で選択するときをクライアント・アプリケーションがリアルタイムで把握するように、イベントをリッスンすることができる。
このように、選択可能なオプション322は、任意の数の方法またはプロトコルを使用して実装し、レンダリングしまたは呼び出すことができる。このような方法およびプロトコルの例は、2011年5月26日に出願され、「Social Data Inputs(ソーシャル・データ入力)」と題された米国特許出願第13/116945号明細書の「いいね!ボタン(Like Button)」の項目に、より詳細に説明されている。前述の出願の内容全体は、参照によりその全体が本明細書に援用される。
選択可能なオプション322をユーザが選択すると、ユーザ・クライアント・デバイス300は、支払トークンを要求する支払メッセージを支払システム110に送信する(204)。具体的には、支払トークンの要求は、ユーザが支払システム110との取引を完了させるために選択可能なオプション322を選択したことに応答した、ユーザ・クライアント・デバイス300からのJavaScriptの呼び出しとすることができる。たとえば、選択可能なオプション322は、ユーザとマーチャントとの間の支払取引の支払トークンを要求するためにユーザ・クライアント・デバイス300に支払システム110への要求を送信させるJavaScriptコードまたは他のコードに関連付けることができる。例示するために、JavaScriptの呼び出しは、支払システムが支払取引を開始できるようにする情報を含むことができる。たとえば、JavaScriptの呼び出しは、ユーザ識別子、ユーザ・クライアント・デバイス300のデバイス識別子、およびマーチャントの識別子を含むことができるが、JavaScriptの呼び出しは、ユーザ・クライアント・デバイス300に関して、支払システムに送信する追加情報または異なる情報を含むことができる。
たとえば、クライアント・アプリケーションは、ネットワーク・アプリケーション504のユーザのユーザ識別子を取得するか、識別するか、または他の形で見つけることができる(図5を参照)。たとえば、クライアント・アプリケーションは、ユーザ・クライアント・デバイス300に存在する、ユーザの、難読化された(たとえば、ハッシュ化された、暗号化された、または他の方法でアルゴリズム的に変換された)ユーザ識別子にアクセスすることができる。このユーザ識別子は、ネットワーク・アプリケーション504(たとえば、ソーシャル・ネットワーキング・アプリケーション)のそのユーザのユーザ・プロフィール/アカウントを識別することができる。1つまたは複数の実施形態において、ユーザ識別子は、ネットワーク・アプリケーション504によってアクセスされるかまたは予約される共有メモリの一部からアクセスされ、ユーザが現在ネットワーク・アプリケーション504に「ログオン」している場合にのみ存在し得る。1つまたは複数の他の実施形態では、ユーザ識別子は、ユーザ・クライアント・デバイス300のクッキー(たとえば、ハイパーテキスト転送プロトコル(HTTP)クッキー)から、またはアプリケーション・キャッシュ(たとえば、ハイパーテキスト・マークアップ言語バージョン5(HTML5)アプリケーション・キャッシュ)からアクセスされる。
ユーザ・クライアント・デバイス300上のネットワーク・アプリケーション504のために適切な難読化されたユーザ識別子が存在していることは、ユーザがネットワーク・アプリケーション504によってすでに認証されていることを示すので、クライアント・アプリケーションは、この以前の認証に依拠できるため、このプロセスは、ユーザの認証として働き得る。加えて、精算プロセスのこの時点では、ユーザの詳細のセキュリティまたはプライバシーがクライアント・アプリケーションまたはマーチャントに漏れることはなく、クライアント・アプリケーションまたはマーチャントは、難読化ユーザ識別子のみを有する。
支払メッセージ204が支払トークンを要求したことに応答して、支払システム110は、IDを使用して、支払システム110が記憶しているユーザ102の支払情報を識別することができる。ユーザIDが難読化ユーザ識別子を備える場合、ネットワーク・アプリケーション504は、変換関数を使用してユーザIDを非難読化ユーザ識別子に変換することができ、これには、難読化ユーザ識別子への対照鍵暗号関数の適用、難読化ユーザ識別子への公開鍵(非対称鍵)暗号関数の適用、または難読化ユーザ識別子と非難読化ユーザ識別子にマッピングされている難読化ユーザ識別子のリストとの比較が含まれるが、これだけに限定されない。
JavaScriptの呼び出しに応答して、支払システム110は、支払トークンを取得し、支払トークンを暗号化し、支払トークンをユーザ・クライアント・デバイス300に送信することができる。1つまたは複数の実施形態において、ユーザ・クライアント・デバイス300は、支払トークンを復号化して、支払トークンに関連付けられている情報をユーザが検証できるようにする。たとえば、ユーザ・クライアント・デバイス300は、支払システムから受信したデータを復号化し、支払トークンの支払情報およびペイメント・カード・ラベルを、図3Cに図示する支払情報インターフェースにオートフィルすることができる。
支払情報は、次のものに関して入手できる情報を含むことができる。すなわち、氏名330(たとえば、名、ミドルネーム、姓)、ペイメント・カードの有効期限(年および/または月)、ペイメント・カードに関連付けられている請求先住所332(ストリート名、家屋番号、市、州または県、郵便番号、国等を含む)、ペイメント・カードに関連付けられている電話番号、1つまたは複数の配送先住所(請求先住所と同様なフィールドを含む)。前述したように、支払システム110は、クライアント・アプリケーションにユーザのペイメント・カードの番号を提供しない。代わりに、支払システム110は、支払を表すペイメント・カード・ラベル334を提供する。
前述したように、支払トークンは、クライアント・アプリケーション、ユーザ、金額および/またはカート固有のものにすることができる(すなわち、特定のアプリケーション、ユーザ、金額および/またはカートについてのみ有効)。さらに別の実施形態では、支払トークンは、ユーザ/コマース・アプリケーションの組み合わせに固有のものにすることができる。支払システム110またはカード・ネットワーク・システム118は、任意の数の異なる使用パラメータを関連付けることもできる。たとえば、支払トークンは、1回限りの使用のトークンにすることができる。したがって、支払トークンは、1回使用したら無効にすることができる。加えて、支払システム110またはカード・ネットワーク・システム118は、支払トークンに有効性の期間(たとえば、10分、1時間、1日)を割り当てることができ、その後、支払トークンは無効になる。さらに、電子支払システム110またはカード・ネットワーク・システム118は、任意選択で、支払トークンに有効生存期間(time−to−live)を割り当てることができる。支払システム110またはカード・ネットワーク・システム118は、詳細なカート情報を支払トークンにつなげることができる。これは、支払トークンがカートの購入にのみ有効であることを確実にするのに役立つことができる。
1つまたは複数の実施形態において、支払情報インターフェース328は、支払トークンに関連付けられている情報をユーザが変更できるようにする。たとえば、ユーザは、支払情報インターフェース328内のフィールドを選択して、情報を修正したり、または新たな情報を入力したりすることができる。例示するために、特定の支払クレデンシャルに関連付けられている請求先住所に変更がある場合、ユーザは、支払情報インターフェース328に新たな請求先住所を入力することができる。ユーザ・クライアント・デバイス300は、次いで、変更された情報を支払システムに送信して、支払システム側で(たとえば、ユーザのユーザ・アカウントで)修正する。ユーザが支払取引の支払方法を次回選択するときに、支払システム110は、選択された支払クレデンシャルの支払トークンを取得し、更新されたユーザ情報を支払トークンとともに含めることができる。
クライアント・アプリケーションが支払情報インターフェース328を支払フィールド内に支払情報とともにレンダリングすると、ユーザは、「注文する」オプション338に対して1回クリックまたはユーザ入力をするだけで、注文の購入を確認するか、またはその他の方法で取引を完了することができる。たとえば、要求される支払フィールドのそれぞれについて支払システム110が情報を提供すると、ユーザは、「支払」もしくは「注文」ボタンまたは他の選択可能なオプションを選択して、取引を完了させることができる。代替実施形態では、データが提供されなかった1つまたは複数の支払フィールドに記入するよう、または取引を完了するための他の追加動作を行うようユーザに要求してもよい。
ユーザが注文を確認すると、ユーザ・クライアント・デバイス300は、支払トークンをマーチャント・システムに引き渡す。特に、ユーザ・クライアント・デバイス300が支払トークンと支払トークンに関連付けられているユーザ情報とを復号化したら、ユーザ・クライアント・デバイス300は、支払トークンおよびユーザ情報を再暗号化して、マーチャント・システムに送信することができる。ユーザ・クライアント・デバイス300が支払トークンと支払トークンに関連付けられているユーザ情報とを復号化しなかった場合、ユーザ・クライアント・デバイス300は、暗号化されたトークンを支払システムからマーチャント・システムに渡すことができる。このように、支払システムは、ユーザ・クライアント・デバイス300が支払トークンおよび他の関連支払情報をマーチャント・システムに渡せる構成に応じて、支払システムは、マーチャント・システムと直接通信することなく支払トークンを提供する。加えて、ユーザがマーチャントとの支払取引を始めるたびに、支払システムは、最新の支払情報をユーザ・クライアント・デバイスに提供する。
ユーザ・クライアント・デバイス300が支払トークンおよび他の関連情報をマーチャント・システムに提供した後、マーチャント・システムは、支払トークンを支払ネットワークに送信することによって支払取引を処理する。支払ネットワークは、支払トークンを使用して、支払トークンがゲートウェイ支払トークンかまたはネットワーク支払トークンか(たとえば、支払ゲートウェイ・システムが支払トークンを生成したのかまたはカード・ネットワーク・システムが生成したのか)に基づいて、支払許可番号を決定する。加えて、支払トークンは、ユーザの支払クレデンシャルからマーチャント・システムの支払クレデンシャルに資金を振り替えることにより、支払取引を処理する。
支払取引が成立したことに応答して、ユーザ・クライアント・デバイス300は、支払取引が完了した旨の通知を支払システムから受信し、クライアント・アプリケーションに支払成功メッセージ340を表示させることができる。図3Dに例示されるように、支払成功メッセージ340は、ユーザの決済口座に支払額がきちんと請求されたことを示すことができる。完了した支払取引は、クライアント・アプリケーションにユーザの取引履歴を更新させることもでき、ユーザは、かかる履歴にアクセスして、過去に開始/完了/取消をした支払取引に関する詳細を見てもよい。代替的に、支払取引が成立しない場合、クライアント・アプリケーションは、クライアント・アプリケーション内に支払失敗メッセージを表示することができる。
加えて、支払取引が完了した旨の表示を受信した後、ユーザ・クライアント・デバイス300は、支払取引の成立を示すメッセージを支払システムに送信することができる。支払システムは、その情報をユーザのユーザ・アカウントとともに記憶することができる。支払情報の記憶により、ユーザが要求する場合、支払システムは、購入履歴をユーザに提供できるようになる。
図1〜図3D、対応するテキスト、および実施例は、支払システムを使用して電子支払取引を処理するための多数の異なるシステムおよびデバイスを提供する。前述に加えて、実施形態は、特定の結果に達するための方法における行為およびステップを備えるフローチャートに関して説明することができる。たとえば、図4は、1つまたは複数の実施形態による例示的な方法のフローチャートを示す。
図4は、トークン化した支払クレデンシャルを用いて支払取引を処理する方法400のフローチャートを示す。方法400は、ユーザとマーチャントとの間の支払取引を開始するための要求を受信する行為402を含む。たとえば、行為402は、ユーザに関連付けられているユーザ・クライアント・デバイス104から、ユーザとマーチャントとの間の支払取引を開始するための要求を受信することを伴う。例示するために、行為402は、マーチャント固有のウェブサイトまたはアプリケーションを介してマーチャントが提供する製品またはサービスの購入注文に関連して支払取引を開始するための要求を受信することを伴うことができる。
行為402は、ユーザ・クライアント・デバイス104から、マーチャントに関連付けられているコンテンツを備えるアプリケーション・インタフェースを介して、アプリケーション・プログラム・インタフェースの呼び出しを受信することを伴うことができる。例示するために、行為402は、ユーザ・クライアント・デバイス104から、マーチャントに関連付けられているコンテンツを備えるアプリケーション・インタフェースを介して、JavaScript要求を受信することを伴うことができる。たとえば、行為402は、ユーザに関連付けられている支払許可番号の支払トークンを取得するための命令と、支払トークンをユーザ・クライアント・デバイス104に送信するための命令とを備えるJavaScript要求を受信することを伴うことができる。JavaScript要求は、ユーザ識別子、マーチャント識別子および支払取引の支払許可番号を含む支払情報を含むことができる。
方法400は、支払許可番号を識別する行為404をさらに含む。たとえば、行為404は、ユーザのユーザ・アカウントに関連付けられている支払許可番号を識別することを伴う。行為404は、支払取引の開始要求に支払許可番号を使用する要求を識別することを伴うことができる。たとえば、行為404は、ユーザ・クライアント・デバイス104からのJavaScript要求から支払許可番号を識別することを伴うことができる。加えて、ユーザ・アカウントは、ユーザの支払クレデンシャルの支払許可番号を備えるソーシャル・ネットワーキング・アカウントとすることができる。
行為404の一部として、または追加の行為として、方法400は、支払許可番号に関連付けられているユーザ情報を識別することと、暗号化された支払トークンとともに、ユーザ情報をユーザ・クライアント・デバイス104に送信することとを含む。たとえば、ユーザ情報を識別することは、支払許可番号に関連付けられている請求先情報を識別することを伴うことができる。請求先情報は、ユーザの氏名、ユーザの請求先住所、およびユーザの電話番号を含むことができる。
方法400は、支払許可番号の支払トークンを取得する行為406も含む。たとえば、行為406は、支払取引に対応する支払許可番号を表す支払トークンを取得することを伴う。行為406は、ユーザの支払クレデンシャルに関連する支払許可番号を識別することと、ユーザの支払クレデンシャルに関連付けられている支払ネットワーク112に、支払許可番号を表す支払トークンの要求を送信することと、支払ネットワーク112から、支払許可番号を表す支払トークンを受信することとを伴う。たとえば、支払トークンは、支払ネットワーク112内の支払ゲートウェイ・システム114からのゲートウェイ支払トークンとすることができる。代替的に、支払トークンは、支払ネットワーク112内のカード・ネットワーク・システム118からのネットワーク支払トークンとすることができる。
加えて、方法400は、支払トークンを暗号化する行為408を含む。たとえば、行為408は、1つまたは複数のサーバが、支払許可番号を表す支払トークンを暗号化することを伴うことができる。行為408は、ユーザ・クライアント・デバイス104のオペレーティング・システムに関係なく、ユーザとマーチャントとの間の支払取引を開始するために支払トークンを暗号化することを伴うことができる。行為408は、支払許可番号のフォーマットに従って支払トークンを暗号化することも伴うことができる。たとえば、支払許可番号のフォーマットに従って支払トークンを暗号化することは、支払許可番号に関連付けられているナンバリング・スキームに従う、設定数の数値を有するように支払トークンを暗号化することを含むことができる。
加えて、行為408は、ユーザ・クライアント・デバイスで支払トークンを復号化するために、ユーザ・クライアント・デバイス104に関連付けられている鍵を用いて支払トークンを暗号化することを伴うことができる。たとえば、暗号化鍵は、1つまたは複数のサーバおよびユーザ・クライアント・デバイス104だけがアクセスできる鍵とすることができる。行為408は、ユーザ・クライアント・デバイス104の1つまたは複数のサーバに関連付けられている秘密鍵を用いて、支払トークンに署名することをさらに伴うことができる。
行為408の一部として、または追加の行為として、方法400は、暗号化された支払トークンとユーザ情報とを備える支払メッセージを生成することと、マーチャントに関連付けられているコンテンツを備えるアプリケーションの支払フォームをオートコンプリートするために支払メッセージを送信することとを含むことができる。たとえば、支払メッセージは、ユーザ・クライアント・デバイス104が支払フォームをオートコンプリートするために解釈できるフォーマットでの暗号化された支払トークンとユーザ情報とを含むことができる。加えて、支払フォームは、アプリケーション・インタフェース内に表示するためにマーチャントが生成した支払フォームとすることができる。
方法400は、ユーザ・クライアント・デバイスがマーチャント・システムに提供するために暗号化された支払トークンを送信する行為410も含む。たとえば、行為410は、ユーザ・クライアント・デバイス104が、支払取引に関連してマーチャントに関連付けられているマーチャント・システムに提供するために暗号化された支払トークンを送信することを伴う。行為410は、ユーザ・クライアント・デバイス104が、暗号化された支払トークンに関連して検証するために、暗号化された支払トークンとともに、暗号化されたユーザ情報を送信することも伴うことができる。
行為410の一部として、または追加の行為として、方法400は、暗号化された支払トークンをユーザ・クライアント・デバイス104に送信した後、1つまたは複数のサーバがマーチャントから支払トークンを受信することなく、支払取引を処理することも含むことができる。たとえば、方法400は、1つまたは複数のサーバが支払取引中にマーチャントと通信することなく、ユーザ・クライアント・デバイス104がマーチャントに送信し、マーチャントが支払ネットワーク112に送信して支払取引を処理するために暗号化された支払トークンを備えるデータ・パッケージを構成することを含むことができる。
図5は、支払システム110を含む図1の環境の追加の詳細を例示する概略図を示す。示されるように、環境100は、ユーザ・クライアント・デバイス104と、マーチャント・システム106と、支払システム110を含むサーバ・デバイス108と、支払ネットワーク112とを含むことができる。加えて、支払ネットワーク112は、図1に関連して上で説明したように、支払ゲートウェイ・システム114と、支払許可番号に関連付けられているカード・ネットワーク・システム118と、発行者120とを含む。一般に、支払システム110は、クライアント・デバイス104に関連付けられているユーザが、マーチャント・システム106に関連付けられているマーチャントに支払を送ることができるようにする。
図5は、ユーザ・クライアント・デバイス104がさまざまな構成要素を有するクライアント・アプリケーション502(電子クライアント・アプリケーションまたはウェブ・ブラウザ)を含み、サーバ・デバイス108がさまざまな構成要素を有するネットワーク・アプリケーション504と支払システム110とを含むことを例示する。以下でより詳細に説明されるように、クライアント・アプリケーション502、ネットワーク・アプリケーション504、および支払システム110の構成要素は、ユーザが支払をマーチャントに送信できるようにするために協働することができる。
図5のクライアント・アプリケーション502は、ユーザ・インタフェース・マネージャ508と、ユーザ入力ディテクタ510と、メッセージ・ハンドラ512と、セキュリティ・マネージャ514と、ロケーション・ディテクタ516と、支払要求ジェネレータ518と、データ・マネージャ520とを含む。図5は、ネットワーク・アプリケーション504が、通信マネージャ530と、メッセージ・データベース534と、ユーザ・プロフィール・データベース536と、リスク計算機538とを含むことを例示する。以下で説明されるように、ネットワーク・アプリケーション504は、任意選択で、ソーシャル・グラフ550も含むことができ、ソーシャル・グラフ550は、ノード情報552と、エッジ情報554とを含む。図5は、また、支払システム110が、支払マネージャ540と、取引データベース542と、トークン・マネージャ546とを含むことを例示する。ユーザ・クライアント・デバイス104、マーチャント・システム106およびサーバ・デバイス108の構成要素の各々は、任意の適切な通信技術を使用して、互いに、または構成要素と通信することができる。クライアント・デバイス104および支払システム110の構成要素は、図5では別個であるように示されているが、構成要素のいずれも、単一の設備またはモジュールなど、より少ない構成要素へと結合されてもよいし、または、特定の実施形態に役立ち得る、より多くの構成要素に分割されてもよいことが認識されよう。図5は、一定の構成要素をクライアント・アプリケーション502の一部として、および他の構成要素をネットワーク・アプリケーション504または支払システム110の一部として説明しているが、本開示はそのように限定されない。代替実施形態では、クライアント・アプリケーション502の一部として示される構成要素のうちの1つまたは複数は、ネットワーク・アプリケーション504または支払システム110の一部とすることができ、逆もまた同様である。同様に、ネットワーク・アプリケーション504の一部として示される1つまたは複数の構成要素は、支払システム110の一部とすることができ、逆もまた同様である。
構成要素は、ソフトウェア、ハードウェア、または両方を含むことができる。たとえば、構成要素は、非一時的コンピュータ可読記憶媒体上に記憶され、クライアント・デバイスまたはサーバ・デバイスの少なくとも1つのプロセッサによって実行可能なコンピュータ命令を含むことができる。少なくとも1つのプロセッサによって実行されるとき、コンピュータ実行可能命令は、本明細書で説明される方法およびプロセスを、クライアント・デバイスまたはサーバ・デバイスに行わせることができる。代替的に、構成要素は、一定の機能または機能のグループを実行するために、専用処理デバイスなどのハードウェアを含むことができる。加えて、または代替的に、構成要素は、コンピュータ実行可能命令の組み合わせと、ハードウェアとを含むことができる。
1つまたは複数の実施形態では、クライアント・アプリケーション502は、クライアント・デバイス上にインストールされたネイティブ・アプリケーションとする。たとえば、クライアント・アプリケーション502は、スマートフォンまたはタブレットなどのモバイル・デバイス上にインストールされ、該モバイル・デバイス上で実行されるモバイル・アプリケーションであってよい。別の例では、クライアント・アプリケーション502は、デスクトップ・アプリケーション、ウィジェット、または他の形のネイティブ・コンピュータ・プログラムとすることができる。代替的に、クライアント・アプリケーション502は、クライアント・デバイスがアクセスする遠隔アプリケーションであってよい。たとえば、クライアント・アプリケーション502は、クライアント・デバイスのウェブ・ブラウザ内で実行されるウェブ・アプリケーションであってよい。
上述したように、および図5に示されるように、クライアント・アプリケーション502は、ユーザ・インタフェース・マネージャ508を含むことができる。ユーザ・インタフェース・マネージャ508は、マーチャントに関連付けられているコンテンツをユーザが見る、および/またはマーチャントとの支払取引をユーザが始められるようにするグラフィカル・ユーザ・インターフェース(または単に「ユーザ・インタフェース」)を提供、管理、および/または制御する。たとえば、ユーザ・インタフェース・マネージャ508は、マーチャントからの商品またはサービスのブラウズと購入とに参加するためのユーザ・インタフェースを提供することができる。ユーザ・インタフェース・マネージャ508は、ユーザがクライアント・アプリケーション502またはクライアント・アプリケーション502内のインターフェースによって提供される通信能力に基づいて、マーチャントと通信できるようにすることもできる。
より詳細には、ユーザ・インタフェース・マネージャ508は、(たとえば、対応するクライアント・デバイスに関連付けられている表示デバイスによって)ユーザ・インタフェースの表示を促進し得る。たとえば、ユーザ・インタフェースは、ユーザがメッセージまたは支払を作成、送信、および受信できるようにする複数のグラフィカル・コンポーネント、オブジェクト、および/または要素から構成され得る。より詳細には、ユーザ・インタフェース・マネージャ508は、マーチャントに関連付けられている製品をユーザが見られるようにするグラフィカル・コンポーネント、オブジェクト、および/または要素のグループを表示するようにクライアント・デバイスに指示し得る。加えて、ユーザ・インタフェース・マネージャ508は、ユーザが電子メールまたはインスタント・メッセージングを介してマーチャントと通信できるようにするなど、ユーザが1つまたは複数の通信媒体を介してマーチャントと通信できるようにすることができる。
加えて、ユーザ・インタフェース・マネージャ508は、マーチャントから製品を購入するためのユーザ入力を促進する1つまたは複数のグラフィカル・オブジェクトまたは要素を表示するようにクライアント・デバイスに指示し得る。例示するために、ユーザ・インタフェース・マネージャ508は、ユーザがクライアント・アプリケーション502に対してユーザ入力を提供できるようにするユーザ・インタフェースを提供し得る。たとえば、ユーザ・インタフェース・マネージャ508は、マーチャントに関連付けられているコンテンツをユーザがブラウズできるようにする1つまたは複数のユーザ・インタフェースを提供することができる。
ユーザ・インタフェース・マネージャ508は、支払取引に関連してテキストまたは他のデータの入力を促進することができる。たとえば、ユーザ・インタフェース・マネージャ508は、キーボードを含むユーザ・インタフェースを提供することができる。ユーザは、1つまたは複数のタッチ・ジェスチャを使用してキーボードと対話して、支払取引に関する情報を提供するテキストを選択することができる。たとえば、ユーザは、キーボードを使用して、支払クレデンシャルに関連付けられているユーザ情報または支払情報を入力し、マーチャントからの購入を完了させることができる。テキストに加えて、キーボード・インタフェースを含むユーザ・インタフェースは、さまざまな他の文字、記号、アイコン、または他の文字情報の入力を促進することができる。
図5でさらに例示されるように、クライアント・アプリケーション502は、ユーザ入力ディテクタ510を含む。1つまたは複数の実施形態では、ユーザ入力ディテクタ510は、任意の適切な様式でユーザ入力を検出、受信、および/または促進することができる。いくつかの実施例では、ユーザ入力ディテクタ510は、ユーザ・インタフェースに関する1つまたは複数のユーザ対話を検出することができる。本明細書で言及される場合、「ユーザ対話」は、1つまたは複数の入力デバイスによってユーザから受信される、単一の対話、または対話の組み合わせを意味する。
たとえば、ユーザ入力ディテクタ510は、キーボード、マウス、タッチ・パッド、タッチスクリーン、および/または他の任意の入力デバイスからのユーザ対話を検出することができる。クライアント・デバイスがタッチスクリーンを含む場合には、ユーザ入力ディテクタ510は、ユーザ対話を形成する、ユーザからの1つまたは複数のタッチ・ジェスチャ(たとえば、スワイプ・ジェスチャ、タップ・ジェスチャ、ピンチ・ジェスチャ、または逆ピンチ・ジェスチャ)を検出することができる。いくつかの実施例では、ユーザは、ユーザ・インタフェースの1つまたは複数のグラフィカル・オブジェクトまたはグラフィカル要素に関係するタッチ・ジェスチャ、および/またはそれに向けられたタッチ・ジェスチャを提供することができる。
ユーザ入力ディテクタ510は、加えて、または代替的に、ユーザ対話を表すデータを受信し得る。たとえば、ユーザ入力ディテクタ510は、ユーザからの1つもしくは複数のユーザ構成可能パラメータ、ユーザからの1つもしくは複数のユーザ・コマンド、および/または他の任意の適切なユーザ入力を受信し得る。ユーザ入力ディテクタ510は、クライアント・アプリケーション502の1つもしくは複数の構成要素から、ユーザ・クライアント・デバイス104上のストレージから、または1つもしくは複数の遠隔ロケーション(たとえば、ネットワーク・アプリケーション)から、入力データを受信し得る。
クライアント・アプリケーション502は、ユーザ入力ディテクタ510がユーザ入力を検出したことおよび/または他のデータを受信したことに応答して、1つまたは複数の機能を実行することができる。一般に、ユーザは、ユーザ入力ディテクタ510が検出することのできる1つまたは複数のユーザ入力を提供することによって、クライアント・アプリケーション502を制御し、その中をナビゲートし、また別様にそれを使用することができる。たとえば、ユーザ入力ディテクタ510がユーザ入力を検出したことに応答して、クライアント・アプリケーション502の1つまたは複数の構成要素は、マーチャントによってオファーされる製品に対する支払を支払システム110を介して行う要求をユーザが送信できるようにする。加えて、ユーザ入力ディテクタ510がユーザ入力を検出したことに応答して、クライアント・アプリケーション502の1つまたは複数の構成要素は、ユーザが1つまたは複数のユーザ・インタフェースを通してナビゲートして、受信したメッセージ、連絡先、取引履歴などを確認できるようにする。
1つまたは複数の実施形態では、ユーザ入力ディテクタ510が1つまたは複数のユーザ入力を検出したことに応答して、クライアント・アプリケーション502は、ユーザがマーチャントとの支払取引を始められるようにすることができる。たとえば、ユーザは、ユーザ・インタフェース内に提供された支払要素と対話することができる。支払要素とのユーザ対話を検出すると、ユーザ入力ディテクタ510は、マーチャントとの支払取引を開始するためのユーザ・インタフェースを提供することをユーザ・インタフェース・マネージャ508に行わせることができる。そのため、ユーザ入力ディテクタ510が1つまたは複数のユーザ入力を検出したことに応答して、クライアント・アプリケーション502は、ユーザが、ユーザとマーチャントとの間で支払取引を開始できるようにすることができる。
図5でさらに例示されるように、クライアント・アプリケーション502は、クライアント・アプリケーション502に対して提供されたかまたはクライアント・アプリケーション502から送信されたメッセージを管理するメッセージ・ハンドラ512を含む。本明細書で使用される場合、「メッセージ」という用語は、あるデバイスによって生成されて別のデバイスに情報を送信するための任意の通信を含む。したがって、メッセージまたは支払メッセージは、支払取引を始める要求を含むことができる。たとえば、メッセージ・ハンドラ512は、ユーザ・インタフェース・マネージャ508およびユーザ入力ディテクタ510と対話して、クライアント・アプリケーション502を使用したメッセージの送受信を調整することができる。メッセージ・ハンドラ512は、複数の参加者間での電子メッセージング・セッションの間に、ネットワーク・アプリケーションに対するおよびネットワーク・アプリケーションからのメッセージの送受信を指示し得る。メッセージ・ハンドラ512は、着信メッセージおよび発信メッセージを整理して、メッセージを表示するようにユーザ・インタフェース・マネージャ508に指示し得る。
1つまたは複数の実施形態では、メッセージ・ハンドラ512は、クライアント・アプリケーション502を介したデータの送受信を促進することができる。特に、メッセージ・ハンドラ512は、メッセージの送受信を促進することができる。たとえば、本明細書で説明されるように、メッセージ・ハンドラ512は、メッセージ内に含まれることになるコンテンツをパッケージ化し、適切な通信プロトコルを使用して1つまたは複数の通信チャネルを通して送信可能な任意の必要な形でメッセージをフォーマットすることができる。例示するために、メッセージ・ハンドラ512は、支払取引プロセスのさまざまな段階で支払取引情報をサーバ・デバイスに送信することができる。同様に、メッセージ・ハンドラ512は、クライアント・デバイスが他のユーザから受信したメッセージを処理することができる。
加えて、メッセージ・ハンドラ512は、支払取引に関連付けられている支払の送信を促進することができる。特に、図5は、支払プロセス/取引を開始するためにメッセージ・ハンドラ512がネットワーク・アプリケーションまたは支払システム110に対して送信することのできる支払要求を生成することのできる支払要求ジェネレータ518をクライアント・アプリケーション502が含むことができることを例示する。たとえば、送信者がユーザ・インタフェース上で支払要素を選択すると、支払要求ジェネレータ518は、ユーザから受信した支払情報を含むデータ・パッケージを作成することができる。支払要求は、支払取引の一部として送信されることになる金銭の額の表示ならびにネットワーク・アプリケーションと支払システム110とが支払取引を実行できるようにするために必要な任意の情報を含むことができる。
1つまたは複数の実施形態では、支払要求ジェネレータ518は、支払額、1つもしくは複数のユーザ識別子、1つもしくは複数のマーチャント識別子、1つもしくは複数の支払方法もしくは送信者口座情報(たとえば、支払許可番号)、許可情報、通貨情報、メッセージもしくは支払明細、および/または送信者から受信者への支払を促進するために有用であり得る他の任意のデータを含むデータ・パッケージを作成することができる。支払要求ジェネレータ518は、マーチャント・システム106によって提供されるインターフェースでJavaScriptの呼び出しの命令に基づき、データ・パッケージで提供するべき情報を決定することができる。支払要求ジェネレータ518は、支払システム110に対して送信するために、支払要求(たとえば、支払情報を含むデータ・パッケージ)をメッセージ・ハンドラ512に渡すことができる。
支払要求ジェネレータ518は、さまざまなソースから支払情報を取得することもできる。たとえば、支払要求ジェネレータ518は、ユーザ入力ディテクタ510を介して送信者から支払情報を直接取得することができる。加えて、または代替的に、支払要求ジェネレータ518は、データ・マネージャ520によってクライアント・デバイス上で維持されている支払情報へのアクセスを得ることができる。たとえば、クライアント・アプリケーション502は、ユーザが、さまざまな支払方法を入力および保存する、ならびに/またはデフォルト支払方法、デフォルト通貨を識別する、および他の形で支払を送信および/もしくは受信することに関係する他のユーザのプリファレンスを規定できるようにすることができる。
支払要求ジェネレータ518はまた、クライアント・アプリケーション502を介したユーザからの入力に基づいたメッセージのフォーマット化を促進し得る。具体的には、支払要求ジェネレータ518は、対応する支払方法に従って支払要求をフォーマットすることを促進することができる。たとえば、支払要求ジェネレータ518は、ユーザが支払取引(たとえば、クレジット取引またはデビット取引)でマーチャントに支払を行う要求を入力したと判断することと、それに応じてマーチャントへの支払要求をフォーマットすることができる。
1つまたは複数の実施形態では、支払要求ジェネレータ518は、支払要求内のトークンにアクセスし、これを提供することができる。トークンは、支払システム110によって記憶された支払クレデンシャルを参照するために、サーバ・デバイス108からのトークンとすることができる。たとえば、支払要求ジェネレータ518は、支払要求内にまたは支払要求とともに含めるトークンを取り出すことができ、そのトークンは、送信者および/または送信者のクライアント・デバイスを支払システム110によって記憶された支払クレデンシャルを使用して支払をすることが許可されたものであると検証するものである。あるいは、トークンは、サーバ・デバイス108に記憶されている支払トークンを参照することができる。
上述したように、クライアント・アプリケーション502は、セキュリティ・マネージャ514をさらに含むことができる。セキュリティ・マネージャ514は、セキュアな支払取引に関連して情報を暗号化または復号化することができる。具体的には、セキュリティ・マネージャ514は、支払システム110に関連付けられているセキュリティ鍵にアクセスして、支払取引に関連付けられている情報(たとえば、支払トークン、支払情報)を暗号化または復号化することができる。たとえば、セキュリティ・マネージャ514は、暗号化されたデータ・パッケージを支払システム110から受信し、データ・パッケージを復号化して、支払クレデンシャルに関連付けられている支払トークンおよびユーザ情報などのデータ・パッケージ内の情報をユーザが検証できるようにすることができる。
クライアント・アプリケーション502は、ロケーション・ディテクタ516をさらに含むことができる。ロケーション・ディテクタ516は、クライアント・デバイスからのGPS情報、セル・タワー三角測量、WIFI受信信号強度インジケーション、WIFI無線フィンガープリンティング、無線周波数識別、近距離通信に基づいて、メッセージを分析することによって、または他のソースからのデータに基づいて、クライアント・デバイスのロケーションにアクセスするかまたはこれを識別することができる。ロケーション・ディテクタ516は、次いで、ネットワーク・アプリケーション504または支払システム110に対してクライアント・デバイスのロケーションを提供することができる。
上で論じたように、クライアント・デバイスは、図5に例示されるように、データ・マネージャ520を含むことができる。データ・マネージャ520は、マーチャントとの支払取引への参加に関係して使用されるデータを表すメッセージ・データを維持することができる。たとえば、メッセージ・データは、支払取引ログ、購入履歴、コンテンツ、過去の通信、および、クライアント・アプリケーション502を使用してマーチャントとの支払取引を始めるユーザの能力を提供することと関係してクライアント・アプリケーション502が使用する他の類似のタイプのデータを含むことができる。
データ・マネージャ520はまた、支払要求を生成するために使用される情報を表す支払データを維持し得る。たとえば、支払データは、支払方法データ(すなわち、クレデンシャル)および/または口座データ(たとえば、銀行またはクレジット・カード口座データ)を含み得る。さらに、支払データは、支払のプリファレンス(たとえば、デフォルト支払方法)を含むことができる。一般に、支払データは、支払要求ジェネレータ518が支払の生成に関係して使用することのできる任意のデータを含むことができる。
簡単に上述したように、環境100は、サーバ・デバイス108上で全部または部分的に実施されるネットワーク・アプリケーション504をさらに含むことができる。本開示の1つまたは複数の実施形態では、ネットワーク・アプリケーション504は、ソーシャル・ネットワーキング・システム(限定されるものではないが、FACEBOOK(商標)など)を備えるが、他の実施形態では、ネットワーク・アプリケーション504は、限定されるものではないが、電子メール・アプリケーション、検索エンジン・アプリケーション、バンキング・アプリケーション、またはユーザ・アカウントを利用する任意の数の他のアプリケーション・タイプを含む別のタイプのアプリケーションを備え得る。
ネットワーク・アプリケーション504がソーシャル・ネットワーキング・システムを備える1つまたは複数の実施形態では、ネットワーク・アプリケーションは、複数のユーザと概念とを表し、分析するためのソーシャル・グラフ550を含み得る。ソーシャル・グラフ550のノード・ストレージは、ユーザ用ノード、概念用ノード、取引用ノード、およびアイテム用ノードを備えるノード情報552を記憶することができる。ソーシャル・グラフのエッジ・ストレージは、ソーシャル・ネットワーキング・システム内で発生するノードおよび/またはアクション間の関係を備えるエッジ情報554を記憶することができる。ソーシャル・ネットワーキング・システム、ソーシャル・グラフ、エッジ、およびノードに関するさらなる詳細は、以下で図8に関して提示される。
通信マネージャ530は、クライアント・アプリケーション502から受信したメッセージを処理することができる。たとえば、通信マネージャ530は、クライアント・アプリケーション502のメッセージ・ハンドラ512と対話することができる。通信マネージャ530は、ユーザからの支払要求を受信して管理することができる。通信マネージャ530は、クライアント・アプリケーション502から支払要求を受信し、支払要求に関連付けられている支払情報を検出して、支払システム110に情報を渡し得る。
ネットワーク・アプリケーションは、メッセージ・データベース534も含み得る。メッセージ・データベース534は、支払取引に参加しているユーザまたはマーチャントの身元に関係する支払取引に関連付けられているメッセージ・データを維持することができる。具体的には、メッセージ・データベース534は、ユーザの興味またはプリファレンスの識別に使用するために、1つまたは複数のマーチャントとのユーザのエンゲージメントの履歴を維持することができる。たとえば、メッセージ・データベース534は、ユーザが製品を購入するマーチャントのタイプに基づいて、ユーザの興味を表す情報を維持することができ、ソーシャル・グラフ550は、ユーザのノード情報552またはエッジ情報554に影響を与えるためにかかる情報にアクセスすることができる。メッセージ・データベース534は、支払システム110がネットワーク・アプリケーション504とは別に維持する機密情報(たとえば、支払情報)をリダクトすることもできる。加えて、または代替的に、以下説明するように、このような情報を取引データベース542に維持することができる。
前述したように、サーバ・デバイスは、支払マネージャ540を有する支払システム110を含むことができる。図5の支払マネージャ540は、支払要求の送受信を統合して、支払取引を開始することができ、1つまたは複数のアプリケーション・プログラミング・インタフェース(API)を採用し得る。たとえば、通信マネージャ530が支払要求を受信すると、通信マネージャ530は、支払マネージャ540に対してあらゆる支払詳細を送信することができる。支払マネージャ540は、次いで、支払要求から取り出された支払詳細を使用して、支払ネットワーク112を使用する支払取引を開始することができる。
1つまたは複数の実施形態によれば、サーバ・デバイス108は、ネットワーク・アプリケーション504とは別個の支払システム110を維持することができる。たとえば、サーバ・デバイス108は、ネットワーク・アプリケーションの機能のうちの少なくとも一部とは別個に、支払システム110に関連付けられている支払プロセスを実施することができる(たとえば、リカバリのためにメッセージング・データベースを使用して)。例示するために、サーバ・デバイスは、1つまたは複数のサーバの第1のグループ上で支払システム110の機能を、および1つまたは複数のサーバの第2のグループ上でネットワーク・アプリケーション504の機能を実施することができる。別個のサーバ上で支払システム110およびネットワーク・アプリケーション504の機能を実施することは、ペイメント・カード業界(PCI)基準に準拠するために、ユーザに関連付けられている金融情報の少なくとも一部がネットワーク・アプリケーション504とは別に維持されることを支払システムが保証できるようにする。本明細書で説明される構成以外のサーバおよび/またはソフトウェアの代替構成もまた、サーバ・デバイス108がPCI基準に準拠できるようにし得る。
支払マネージャ540は、支払要求内で定義された支払に対応する取引を調整することができる。上で概説したように、支払マネージャ540は、支払要求に対応する支払ネットワーク112を介して取引を調整し、取引のステータスを監視し、取引に関するステータス情報を提供することができる。より具体的には、支払ネットワーク112は、取引を許可し、取引に資金供給し、および/または個々の取引もしくは取引のバッチを決済することができる。1つまたは複数の実施形態では、支払マネージャ540は、1つまたは複数のアプリケーション・プログラミング・インタフェース(API)を使用して、関連性のある情報を支払ネットワーク112と通信することができる。
追加実施形態または代替実施形態では、ユーザ・クライアント・デバイス104上のクライアント・アプリケーション502は、ネットワーク・アプリケーション504および支払システム110に対して支払要求を並行して送信することをユーザ・クライアント・デバイス104に行わせることができる。具体的には、マーチャントに対してある額を支払うためのユーザによる選択をクライアント・アプリケーション502が受信したとき、クライアント・アプリケーション502は、ネットワーク・アプリケーション504に対して、および支払システム110に対して支払要求を送信することをユーザ・クライアント・デバイス104に行わせることができる。したがって、支払システム110も支払要求に関連付けられている支払取引を処理している間に、ネットワーク・アプリケーション504は支払要求を処理することができる。代替実施形態では、ユーザ・クライアント・デバイス104は、ネットワーク・アプリケーション504に関連付けられている1つまたは複数のサーバに対してメッセージを送信することができ、次いで、サーバは、支払システム110に対してメッセージを転送することができ、逆もまた同様である。
取引を完了するために、支払マネージャ540は、ユーザについての支払クレデンシャルにアクセスするかまたはこれを取得することができる。具体的には、支払マネージャ540は、ユーザの決済口座に関連して、ユーザの支払クレデンシャル(たとえば、支払許可番号または支払トークン)を識別する。支払マネージャ540は、ユーザの1つまたは複数の決済口座または他の支払クレデンシャルをネットワーク・アプリケーション504に登録することができる。追加の実施形態では、支払システム110は、支払システム110と統合するマーチャント・システムと支払取引を直接処理することも可能である。このように、支払システム110は、支払取引をそのマーチャント・システムとともに直接管理することもできる。
ユーザが預金口座または他の支払クレデンシャルを登録すると、ユーザ・プロフィール・データベース536は、ユーザの支払クレデンシャルまたは支払クレデンシャルに関連付けられているユーザ情報を維持することができる。述べたように、ユーザ・プロフィール・データベース536は、ユーザのユーザ・プロフィール情報を記憶する。1つまたは複数の実施形態において、ユーザ・プロフィール情報は、クレジット・カード、デビット・カード、預金口座または他の銀行口座、ギフト・カード口座、店舗クレジット口座等の支払クレデンシャル(たとえば、前述したように、支払許可番号を表す支払トークン)を含む。ユーザ・プロフィール・データベース536は、有効期限、セキュリティ・コード、住所情報、および/または他の情報など、支払クレデンシャルに関連付けられている情報も記憶することができる。ユーザ・プロフィール情報は、1つまたは複数のマーチャントまたは共同ユーザの支払取引の1つまたは複数のデフォルト支払方法も含むことができる。ユーザ・プロフィール情報は、支払マネージャ540が支払取引に関連してユーザ・クライアント・デバイス104に情報を提供できるように、氏名、住所等、ユーザの識別情報も含むことができる。
1つまたは複数の追加の実施形態では、支払マネージャ540は、リスク計算機538と通信して、送信者、受信者、および/または特定の支払取引に関連付けられているリスクを決定することができる。具体的には、リスク計算機538は、詐欺的な支払取引を防止するために、送信者/受信者に関連付けられている情報に基づいて、送信者/受信者が詐欺師であるか否かを判断することができる。たとえば、リスク計算機538は、ネットワーク・アプリケーションと関係して送信者/受信者に関連付けられているアクティビティまたは情報に基づいて、詐欺アクティビティの可能性を決定することができる。支払取引に関与するユーザに関連付けられているリスクを決定することは、特定の支払取引を処理するか否かの決定に際しても有用であり得る。
たとえば、1つまたは複数の実施形態では、ネットワーク・アプリケーションは、特定のユーザに関連付けられているリスクが所定の閾値に達しているか否かを判断することができる。特に、ネットワーク・アプリケーションは、「実在度(リアルネス)」スコアに基づいて、ユーザが詐欺師である(たとえば、実在の人物になりすましている詐欺アカウントまたはソフトウェア)か否かを判断することができる。たとえば、送信者に関連付けられているリスクが所定の閾値を下回る(すなわち、高リスク・レベル)場合、ネットワーク・アプリケーションは、そのユーザがおそらく詐欺師であると判断し、そのユーザが詐欺師であることを支払システム110に通知することができる。ユーザが高リスク・レベルを有する場合、支払システム110は、ユーザとマーチャントとの間の支払取引を停止することができる。
追加の実施形態では、ユーザに関連付けられているリスクを決定した後、ネットワーク・アプリケーション504は、リスクに関連した1つまたは複数のアクションを実行することができる。具体的には、ネットワーク・アプリケーション504は、ネットワーク・アプリケーション504がユーザの身元を確認できるようにするアクションを実行することができる。たとえば、ネットワーク・アプリケーション504は、ユーザが自身をそうであると称している者であるということを示す、ユーザに関連付けられている情報を識別することができる。例示するために、ネットワーク・アプリケーション504は、メッセージ・データベース534またはユーザ・プロフィール・データベース536内のユーザの購入履歴または他の記憶されている情報(ユーザのリスク・レベルまたは実在度スコアに影響することがある)にアクセスすることができる。
追加実施形態または代替実施形態では、ネットワーク・アプリケーション504は、ユーザのリスク・レベルの決定に応答して、支払要求または支払取引に対する1つまたは複数のアクションを自動的に実行することができる。具体的には、ネットワーク・アプリケーション504は、ユーザに追加の情報を要求することなく、支払要求または対応するユーザとマーチャントとの間の支払取引に影響するアクションを実行することができる。たとえば、ネットワーク・アプリケーション504は、支払取引を可能にする(たとえば、支払トークンを取得してユーザ・クライアント・デバイス104に送信することにより)、または支払取引を阻止する(たとえば、ユーザ・クライアント・デバイス104への支払トークンの送信を拒否することにより)、またはネットワーク・アプリケーション504でのユーザのアカウントを使用不能にすることができる。
いずれにしても、ユーザから支払要求を受信すると、支払マネージャ540は、ユーザのユーザ(またはグループ)IDを検出し、そのユーザ(またはエンティティ)についての支払プロフィールを取り出すことができる。支払マネージャ540は、次いで、ユーザの決済口座に関連付けられている支払許可番号を表す支払トークンを取得することができる。具体的には、支払マネージャ540は、支払ネットワーク112への支払許可番号の送信に応答して、支払ネットワーク112と通信して支払トークンを取得することができる。支払トークンの受信後、支払マネージャ540は、支払取引の一部として支払トークンをユーザ・クライアント・デバイス104に送信してもよい。
支払マネージャ540は、支払プロセスを効果的に管理するために、さまざまな他の追加のステップおよび方法を実行することができる。1つまたは複数の実施形態では、たとえば、支払要求を受信すると、支払マネージャ540は、取引識別子(または単に「取引ID」)を生成し、この取引識別子を支払要求および/または支払要求内の支払情報に関連付けることができる。たとえば、取引IDを生成すると、支払マネージャ540は、取引データベース542に対して取引IDおよび支払情報を送信することができる。取引データベース542は、取引IDに応じて取引情報を記憶する、データ・テーブルまたは類似のデータ・マトリックスを含むことができる。
図5の取引データベース542は、試行または完了した各取引(グラフ・オブジェクトの形態などで)、取引ID、日付、取引の額、使用された支払方法、および取引に関して収集された他の任意の情報のためのストレージを提供することができる。取引データベース542は、ユーザに関連付けられている要求および特定の取引に関する条件などの取引情報も記憶することができる。この情報を用いて、支払マネージャ540は、要求に応じて、要求された支払、拒否された支払、および完了された支払の履歴として、1つまたは複数の取引の概要をユーザに対して提供することができる。
1つまたは複数の実施形態では、取引IDが特定の支払要求に関連付けられた後、取引IDを、その特定の支払に関係する、支払システム内の実質的にすべての通信の中に含めるかまたは埋め込むことができる。したがって、取引IDは、支払マネージャ540が多数の支払を体系的に管理および処理できるようにする。たとえば、支払マネージャ540は、クライアント・デバイスに対して送信される任意の情報の中に取引IDを含めるための命令を含むことができる。代わりに、メッセージング・ハンドラ512が、情報が対応する特定の取引を支払マネージャ540に効率的かつ確実に識別させるために、クライアント・デバイスから送信される任意の情報の中に取引IDを含めることもできる。
1つまたは複数の実施形態では、取引IDを、1つまたは複数のユーザ識別子、マーチャント識別子、支払額、支払方法(たとえば、ユーザの口座)、入金方法(たとえば、マーチャントの口座)、取引履歴、現在の取引ステータス、および他の取引情報に関連付けることができる。1つまたは複数の実施形態では、取引データベース542は、取引に対するあらゆる更新またはアクションで更新される1つまたは複数のグラフ・オブジェクトの形態で取引情報を維持する。
述べたように、支払システム110は、トークン・マネージャ546も含むことができる。トークン・マネージャ546は、支払システムのユーザに関連付けられている支払トークンを管理することができる。たとえば、支払マネージャ540がユーザの支払許可番号について支払ネットワーク112から支払トークンを要求して取得した後、トークン・マネージャ546は、その支払トークンをユーザのユーザ・アカウントに関連付けることができる。トークン・マネージャ546は、支払トークンをユーザのユーザ・プロフィールにリンクさせる情報を(たとえば、ユーザ・プロフィール・データベース536に)記憶することにより、ネットワーク支払トークンをユーザのユーザ・プロフィールに関連付けることができる。
支払マネージャ540が新たな支払要求を受信すると、トークン・マネージャ546は、支払マネージャ540およびユーザ・プロフィール・データベース536と通信することができる。具体的には、トークン・マネージャ546は、ユーザのユーザ・プロフィールを識別する支払情報に基づいて、支払要求を送信するユーザのネットワーク支払トークンを識別する。トークン・マネージャ546は、さまざまな実施形態に役立つように、任意のセキュリティ/認証トークンなど、ユーザが支払取引を開始できるようにする、ユーザに関連付けられている他のトークンも識別することができる。
トークン・マネージャ546は、支払取引に関連して支払トークンの暗号化を管理することもできる。特に、ユーザ・クライアント・デバイスが支払取引のためにマーチャント・システムに引き渡すために、支払トークンおよびユーザ情報をユーザ・クライアント・デバイスに提供することは、支払トークンおよびユーザ情報を暗号化することを含むことができる。たとえば、トークン・マネージャ546は、ユーザ・クライアント・デバイスに送信するためのデータ・パッケージ内の支払トークンとユーザ情報とを、暗号化鍵を用いて暗号化することができる。1つまたは複数の実施形態において、トークン・マネージャ546は、支払システム110およびユーザ・クライアント・デバイス104のみがアクセスできる暗号化鍵を使用する。代替的に、トークン・マネージャ546は、マーチャント・システム106がアクセスできる暗号化鍵を使用することができる。トークン・マネージャ546は、マーチャント・システム106が支払許可番号へのアクセスを得なくても、ユーザ・クライアント・デバイス104がマーチャント・システム106にデータ・パッケージを渡せるように、PCI基準に従ってデータ・パッケージを暗号化することができる。
本開示の実施形態では、以下に詳述する通り、たとえば1つまたは複数のプロセッサおよびシステムメモリ等のコンピュータハードウェアを備えた専用または汎用コンピュータを備えるか、または利用するようにしてもよい。また、本開示の発明の範囲内の実施形態には、コンピュータ実行可能な命令および/またはデータ構造を搬送または記憶する物理的なコンピュータ可読媒体および他のコンピュータ可読媒体を含む。とりわけ、本明細書に記載のプロセスのうちの1つまたは複数は、非一時的コンピュータ可読媒体にて具現化され、1つまたは複数のコンピューティング・デバイス(たとえば、本明細書に記載のメディアコンテンツアクセスデバイスのいずれか)により実行可能な命令として、その少なくとも一部が実装されていてもよい。一般的には、プロセッサ(たとえば、マイクロプロセッサ)が非一時的コンピュータ可読媒体(たとえば、メモリ等)から命令を受け取り、これらの命令を実行することによって、本明細書に記載のプロセスのうちの1つまたは複数等、1つまた複数のプロセスを実行する。
コンピュータ可読媒体としては、汎用または専用コンピュータ・システムによりアクセス可能な任意の利用可能な媒体が可能である。コンピュータ実行可能な命令を記憶するコンピュータ可読媒体は、非一時的コンピュータ可読記憶媒体(デバイス)である。コンピュータ実行可能な命令を搬送するコンピュータ可読媒体は、伝送媒体である。このように、非限定的な一例として、本開示の実施形態には、非一時的コンピュータ可読記憶媒体(デバイス)および伝送媒体という少なくとも2つの明確に異なるタイプのコンピュータ可読媒体を含み得る。
非一時的コンピュータ可読記憶媒体(デバイス)としては、RAM、ROM、EEPROM、CD−ROM、固体ドライブ(「SSD」)(たとえば、RAMベース)、フラッシュメモリ、相変化メモリ(「PCM」)、他のタイプのメモリ、他の光ディスクストレージ、磁気ディスクストレージ等の磁気ストレージデバイス、またはコンピュータ実行可能な命令もしくはデータ構造の形態の所望のプログラムコード手段の記憶に使用可能であるとともに、汎用もしくは専用コンピュータによりアクセス可能なその他任意の媒体が挙げられる。
「ネットワーク」は、コンピュータ・システムおよび/またはモジュールおよび/または他の電子機器間で電子データを伝送可能な1つまたは複数のデータリンクとして定義されている。情報がネットワークまたは別の通信接続(有線、無線、または有線もしくは無線の組み合わせ)上でコンピュータに転送または提供される場合、上記コンピュータは、その接続を厳密に伝送媒体と見なす。伝送媒体としては、コンピュータ実行可能な命令またはデータ構造の形態の所望のプログラムコード手段の搬送に使用可能であるとともに、汎用または専用コンピュータによりアクセス可能なネットワークおよび/またはデータリンクが挙げられる。また、上記の組み合わせについても、コンピュータ可読媒体の範囲に含まれるものとする。
さらに、コンピュータ・システムのさまざまな構成要素に到達した際に、コンピュータ実行可能な命令またはデータ構造の形態のプログラムコード手段は、伝送媒体から非一時的コンピュータ可読記憶媒体(デバイス)へと自動的に転送可能である(その逆も可能である)。たとえば、ネットワークまたはデータリンク上で受信されたコンピュータ実行可能な命令またはデータ構造は、ネットワークインターフェースモジュール(たとえば、「NIC」)内のRAMにバッファリングした後、最終的には、コンピュータ・システムRAMおよび/またはコンピュータ・システムにおける低揮発性コンピュータ記憶媒体(デバイス)に転送可能である。したがって、非一時的コンピュータ可読記憶媒体(デバイス)は、伝送媒体も(または、主として)利用するコンピュータ・システムの構成要素に含み得ることが了解されるものとする。
コンピュータ実行可能な命令としては、たとえばプロセッサで実行された場合に、特定の機能または機能群を汎用コンピュータ、専用コンピュータ、または専用処理デバイスに実行させる命令およびデータが挙げられる。いくつかの実施形態においては、コンピュータ実行可能な命令が汎用コンピュータ上で実行されることにより、上記汎用コンピュータは、本開示の実施形態の要素を実装した専用コンピュータへと変化する。コンピュータ実行可能な命令は、たとえばバイナリ、アセンブリ言語等の中間フォーマット命令、あるいはソースコードであってもよい。以上、構造的特徴および/または方法論的行為に固有の表現で主題を説明したが、添付の特許請求の範囲に規定の主題は、必ずしも上述の特徴または行為に限定されないことが了解されるものとする。むしろ、上記特徴および行為は、特許請求の範囲を実施する例示的な形態として開示している。
当業者であれば、パーソナル・コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、メッセージプロセッサ、携帯機器、マルチプロセッサシステム、マイクロプロセッサベースの家庭用電化製品またはプログラム可能な家庭用電化製品、ネットワークPC、マイクロコンピュータ、メインフレームコンピュータ、携帯電話、PDA,タブレット、ポケベル、ルータ、スイッチ等、さまざまなタイプのコンピュータ・システム構成のネットワークコンピュータ環境において本開示が実現されるようになっていてもよいことが認識されよう。また、本開示は、ネットワークを通じて(有線データリンク、無線データリンク、または有線および無線データリンクの組み合わせにより)リンクしたローカルメモリストレージデバイスおよび遠隔コンピュータ・システムがともにタスクを実行する分散システム環境において実現されるようになっていてもよい。分散システム環境においては、ローカルメモリストレージデバイスおよび遠隔メモリストレージデバイスの両者にプログラムモジュールが配置されていてもよい。
また、本開示の実施形態は、クラウドコンピュータ環境において実装可能である。本記載において、「クラウドコンピューティング」は、設定可能なコンピュータリソースの共有プールに対するオンデマンドネットワークアクセスを可能とするモデルとして定義されている。たとえば、クラウドコンピューティングは、設定可能なコンピュータリソースの共有プールに対するユビキタスかつ便利なオンデマンドアクセスを提供する市場で採用可能である。設定可能なコンピュータリソースの共有プールは、仮想化によって迅速に開設可能であるとともに、わずかな管理労力またはサービス・プロバイダ対話で解放可能であるため、これに応じてスケーリング可能である。
クラウドコンピューティングモデルは、たとえばオンデマンドセルフサービス、ブロードネットワークアクセス、リソースプーリング、ラピッドエラスティシティ、メジャードサービス等のさまざまな特性で構成可能である。また、クラウドコンピューティングモデルは、たとえばサービス型ソフトウェア(「SaaS」)、サービス型プラットフォーム(「PaaS」)、およびサービス型インフラ(「IaaS」)等のさまざまなサービスモデルを提供可能である。また、クラウドコンピューティングモデルは、プライベートクラウド、コミュニティクラウド、パブリッククラウド、ハイブリッドクラウド等のさまざまな展開モデルを用いて展開可能である。本明細書および特許請求の範囲において、「クラウドコンピュータ環境」は、クラウドコンピューティングを採用する環境である。
図6は、上述のプロセスのうちの1つまたは複数を実行するように構成できる例示的なコンピューティング・デバイス600のブロック図を示している。データコンピューティング・デバイス600などの1つまたは複数のコンピューティング・デバイスが支払システム110を実装することが理解される。図6に示すように、コンピューティング・デバイス600は、通信インフラ712によって通信されるように結合されている、プロセッサ602、メモリ604、ストレージデバイス606、I/Oインターフェース608、および通信インターフェース710を備える。図8には、例示的なコンピューティング・デバイス600を示しているが、図6に示す構成要素は、何ら限定を意図したものではない。他の実施形態においては、付加的または代替的な構成要素を使用するようにしてもよい。さらに、特定の実施形態において、コンピューティング・デバイス600は、図6よりも少ない構成要素を備える。以下、図6に示すコンピューティング・デバイス600の構成要素について、さらに詳しく説明する。
1つまたは複数の実施形態において、プロセッサ602は、コンピュータ・プログラムを構成する命令等を実行するハードウェアを備えてもよい。非限定的な一例として、プロセッサ602は、命令を実行するため、内部レジスタ、内部キャッシュ、メモリ604、またはストレージデバイス606から命令を取り出す(または、フェッチする)とともに、上記命令を復号化して実行するようにしてもよい。1つまたは複数の実施形態において、プロセッサ602は、データ、命令、またはアドレス用の1つまたは複数の内部キャッシュを備えてもよい。非限定的な一例として、プロセッサ602は、1つまたは複数の命令キャッシュ、1つまたは複数のデータキャッシュ、および1つまたは複数のトランスレーション・ルックアサイド・バッファ(TLB)を備えてもよい。命令キャッシュ中の命令は、メモリ604またはストレージデバイス606中の命令のコピーであってもよい。
メモリ604は、データ、メタデータ、およびプロセッサが実行するプログラムの記憶に使用してもよい。メモリ604は、ランダムアクセスメモリ(「RAM」)、リードオンリーメモリ(「ROM」)、固体ディスク(「SSD」)、フラッシュ、相変化メモリ(「PCM」)、または他のタイプのデータストレージ等、揮発性および不揮発性メモリのうちの1つまたは複数を備えていてもよい。また、メモリ604は、内部メモリであってもよいし、分散メモリであってもよい。
ストレージデバイス606は、データまたは命令を記憶するストレージを備える。非限定的な一例として、ストレージデバイス606は、上述の非一時的記憶媒体を備える。ストレージデバイス606としては、ハードディスクドライブ(HDD)、フロッピー(登録商標)ディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、ユニバーサルシリアルバス(USB)ドライブ、またはこれらのうちの2つ以上の組み合わせが挙げられる。ストレージデバイス606は、必要に応じて、取り外し可能媒体を備えていてもよいし、取り外し可能できない(すなわち、固定)媒体を備えていてもよい。ストレージデバイス606は、コンピューティング・デバイス600の内部であってもよいし、外部であってもよい。1つまたは複数の実施形態において、ストレージデバイス606は、不揮発性の固体メモリである。他の実施形態において、ストレージデバイス606は、リードオンリーメモリ(ROM)を含む。必要に応じて、このROMは、マスクプログラムROM、プログラム可能ROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的書き換え可能ROM(EAROM)、フラッシュメモリ、またはこれらのうちの2つ以上の組み合わせであってもよい。
I/Oインターフェース608によって、ユーザが、入力を提供し、出力を受け取り、あるいはコンピューティング・デバイス600に対してデータを転送しデータを受け取ることを可能にする。これらのI/Oインターフェース608は、マウス、キーパッドもしくはキーボード、タッチスクリーン、カメラ、光学スキャナ、ネットワーク・インターフェース、モデル、その他既知のI/Oデバイス、またはこのようなI/Oデバイス/インターフェースの組み合わせを含む。I/Oインターフェース608は、出力をユーザに提示する1つまたは複数の機器を備えていてもよく、グラフィックスエンジン、ディスプレイ(たとえば、表示画面)、1つまたは複数の出力ドライバ(たとえば、ディスプレイドライバ)、1つまたは複数の音声スピーカ、および1つまたは複数の音声ドライバが挙げられるが、これらに限定されない。特定の実施形態において、I/Oインターフェース608は、グラフィックデータをディスプレイに提供して、ユーザに提示するように構成されている。グラフィックデータは、特定の実施態様に役立ち得る1つもしくは複数のグラフィカル・ユーザ・インターフェースおよび/またはその他任意のグラフィックコンテンツを代表するものであってもよい。
通信インターフェース610は、ハードウェア、ソフトウェア、または両者を含み得る。いかなる場合でも、通信インターフェース610は、コンピューティング・デバイスと1つもしくは複数の他のコンピューティング・デバイス600またはネットワークとの間の通信(たとえば、パケットベースの通信等)のための1つまたは複数のインターフェースを提供可能である。非限定的な一例として、通信インターフェース610としては、イーサネット(登録商標)等の有線ネットワークと連通するネットワークインターフェースコントローラ(NIC)もしくはネットワークアダプタまたはWi−Fi等の無線ネットワークと連通する無線NIC(WNIC)もしくは無線アダプタが挙げられる。
加えて、または、代替として、通信インターフェース610は、アドホック・ネットワーク、パーソナルエリアネットワーク(PAN)、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、メトロポリタン・エリア・ネットワーク(MAN)、インターネットの1つもしくは複数の部分、またはこれらのうちの2つ以上の組み合わせと通信を行わせる。これらネットワークのうちの1つまたは複数の1つまたは複数の部分は、有線であってもよいし、無線であってもよい。一例として、通信インターフェース710は、無線PAN(WPAN)(たとえば、Bluetooth(登録商標)WPAN等)、Wi−Fiネットワーク、Wi−MAXネットワーク、携帯電話ネットワーク(たとえば、汎欧州デジタル移動電話通信(GSM(登録商標))ネットワーク等)、他の適当な無線ネットワーク、またはこれらの組み合わせと通信を行わせる。
加えて、通信インターフェース610は、通信さまざまな通信プロトコルを促進し得る。使用され得る通信プロトコルの例としては、限定されるものではないが、データ伝送媒体、通信デバイス、伝送制御プロトコル(「TCP」)、インターネット・プロトコル(「IP」)、ファイル転送プロトコル(「FTP」)、Telnet、Hypertext Transfer Protocol(「HTTP」)、Hypertext Transfer Protocol Secure(「HTTPS」)、セッション開始プロトコル(「SIP」)、Simple Object Access Protocol(「SOAP」)、拡張マークアップ言語(「XML」)およびその変種、簡易メール転送プロトコル(「SMTP」)、リアルタイム転送プロトコル(「RTP」)、ユーザ・データグラム・プロトコル(「UDP」)、Global System for Mobile Communications(「GSM」)技術、符号分割多元接続(「CDMA」)技術、時分割多元接続(「TDMA」)技術、ショート・メッセージ・サービス(「SMS」)、マルチメディア・メッセージ・サービス(「MMS」)、無線周波数(「RF」)シグナリング技術、Long Term Evolution(「LTE」)技術、無線通信技術、帯域内シグナリング技術および帯域外シグナリング技術、ならびに他の適切な通信ネットワークおよび技術がある。
通信インフラ612は、コンピューティング・デバイス600の構成要素を互いに結合するハードウェア、ソフトウェア、または両者を備える。非限定的な一例として、通信インフラ612は、アクセラレイテッドグラフィックスポート(AGP)等のグラフィックスバス、拡張業界標準アーキテクチャ(EISA)バス、フロントサイドバス(FSB)、ハイパートランスポート(HT)相互接続、業界標準アーキテクチャ(ISA)バス、インフィニバンド相互接続、ロウピンカウント(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、周辺機器相互接続(PCI)バス、PCIエクスプレス(PCIe)バス、シリアルアドバンストテクノロジーアタッチメント(SATA)バス、ビデオエレクトロニクス標準協会ローカル(VLB)バス、その他適当なバス、またはこれらの組み合わせを含んでいてもよい。
上述の通り、支払システム110は、ソーシャル・ネットワーキング・システムを含み得る。ソーシャル・ネットワーキング・システムによって、そのユーザ(人または組織など)が、システムに対しておよび互いに対話をすることが可能になる。ソーシャル・ネットワーキング・システムは、ユーザからの入力により、ユーザに関連付けられているユーザ・プロフィールを作成して上記ソーシャル・ネットワーキング・システムに記憶するようにしてもよい。ユーザ・プロフィールには、人口統計学的情報、通信チャンネル情報、およびユーザの個人的関心に関する情報を含んでいてもよい。また、ソーシャル・ネットワーキング・システムは、ユーザからの入力により、上記ユーザのソーシャル・ネットワーキング・システムの他ユーザとの関係のレコードを作成して記憶するとともに、ユーザ間の社会的対話を行わせるサービス(たとえば、ウォール投稿、写真共有、オンライン・カレンダー、イベント統合、メッセージング、ゲーム、または広告)を提供するようにしてもよい。また、ソーシャル・ネットワーキング・システムは、ユーザが、ユーザのプロファイル・ページ(典型的には、「ウォール投稿」もしくは「タイムライン投稿」として知られる)に対して、またはフォト・アルバム内に、写真および他のマルチメディア・コンテンツ・アイテムを投稿することを可能にし得、プロファイル・ページとフォト・アルバムの両方は、ユーザの構成されたプライバシー設定に応じて、ソーシャル・ネットワーキング・システムの他のユーザにとってアクセス可能である。
図7は、ソーシャル・ネットワーキング・システムの例となるネットワーク環境700を例示する。ネットワーク環境700は、ネットワーク704によって互いに接続された、クライアント・システム706と、ソーシャル・ネットワーキング・システム702と、サードパーティ・システム708とを含む。図7は、クライアント・システム706、ソーシャル・ネットワーキング・システム702、サードパーティ・システム708、およびネットワーク704の特定の構成を例示しているが、この開示は、クライアント・システム706、ソーシャル・ネットワーキング・システム702、サードパーティ・システム708、およびネットワーク704の任意の適切な構成を企図したものである。限定としてではなく、一例として、クライアント・システム706、ソーシャル・ネットワーキング・システム702、およびサードパーティ・システム708のうちの2つ以上が、ネットワーク704をバイパスして、直接的に互いに接続されてもよい。別の例として、クライアント・システム706、ソーシャル・ネットワーキング・システム702、およびサードパーティ・システム708のうちの2つ以上が、全体的にまたは部分的に互いと物理的または論理的に共同設置されてもよい。さらに、図7は、特定の数のクライアント・システム706、ソーシャル・ネットワーキング・システム702、サードパーティ・システム708、およびネットワーク704を例示しているが、この開示は、任意の適切な数のクライアント・システム706、ソーシャル・ネットワーキング・システム702、サードパーティ・システム708、およびネットワーク704を企図したものである。限定としてではなく、一例として、ネットワーク環境700は、複数のクライアント・システム706と、ソーシャル・ネットワーキング・システム702と、サードパーティ・システム708と、ネットワーク704とを含んでよい。
本開示は、任意の適切なネットワーク704を企図したものである。限定としてではなく、一例として、ネットワーク704の1つまたは複数の部分は、アドホック・ネットワーク、イントラネット、エクストラネット、仮想プライベート・ネットワーク(VPN)、ローカル・エリア・ネットワーク(LAN)、無線LAN(WLAN)、ワイド・エリア・ネットワーク(WAN)、無線WAN(WWAN)、メトロポリタン・エリア・ネットワーク(MAN)、インターネットの一部分、公衆交換電話網(PSTN)の一部分、セルラー電話ネットワーク、またはこれらのうちの2つ以上の組み合わせを含んでよい。ネットワーク704は、1つまたは複数のネットワーク704を含み得る。
リンクは、クライアント・システム706、ソーシャル・ネットワーキング・システム702、およびサードパーティ・システム708を通信ネットワーク704に対して、または互いに対して接続し得る。本開示は、任意の適切なリンクを企図したものである。特定の実施形態では、1つまたは複数のリンクとしては、1つまたは複数のワイヤライン・リンク(たとえば、デジタル加入者線(DSL)またはData Over Cable
Service Interface Specification(DOCSIS)など)、無線リンク(たとえば、Wi−FiまたはWorldwide Interoperability for Microwave Access(WiMAX)など)、または光リンク(たとえば、同期型光ネットワーク(SONET)または同期デジタル・ハイアラーキ(SDH)など)がある。特定の実施形態では、1つまたは複数のリンクは各々、アドホック・ネットワーク、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、WWAN、MAN、インターネットの一部分、PSTNの一部分、セルラー技術ベースのネットワーク、衛星通信技術ベースのネットワーク、別のリンク、または2つ以上のそのようなリンクの組み合わせを含む。リンクは、必ずしもネットワーク環境700全体を通じて同じである必要はない。1つまたは複数の第1のリンクは、1つまたは複数の点において、1つまたは複数の第2のリンクと異なってよい。
特定の実施形態では、クライアント・システム706は、ハードウェア、ソフトウェア、または埋め込まれた論理構成要素、または2つ以上のそのような構成要素の組み合わせを含み、クライアント・システム706によって実施またはサポートされる適切な機能を実行することが可能な電子デバイスであってよい。限定としてではなく、一例として、クライアント・システム706は、上記で図6に関係して論じられたコンピューティング・デバイスのいずれかを含んでよい。クライアント・システム706は、クライアント・システム706におけるネットワーク・ユーザがネットワーク704にアクセスすることを可能にし得る。クライアント・システム706は、そのユーザが他のクライアント・システム706における他のユーザと通信することを可能にし得る。
特定の実施形態では、クライアント・システム706は、MICROSOFT INTERNET EXPLORER、GOOGLE CHROME、またはMOZILLA FIREFOXなどのウェブ・ブラウザ932を含んでよく、1つまたは複数のアドオン、プラグイン、またはツールバーもしくはYAHOOツールバーなどの他の拡張機能を有してよい。クライアント・システム706におけるユーザは、ユニフォーム・リソース・ロケータ(URL)またはウェブ・ブラウザを特定のサーバ(サーバ、またはサードパーティ・システム708に関連付けられているサーバなど)に対して宛てる他のアドレスを入力してよく、ウェブ・ブラウザは、ハイパーテキスト転送プロトコル(HTTP)要求を生成し、HTTP要求をサーバに対して通信し得る。サーバは、HTTP要求を受け入れ、HTTP要求に応答して1つまたは複数のハイパーテキスト・マークアップ言語(HTML)ファイルをクライアント・システム706に対して通信し得る。クライアント・システム706は、ユーザに対する提示のために、サーバからのHTMLファイルに基づいてウェブページをレンダリングし得る。本開示は、任意の適切なウェブページ・ファイルを企図したものである。限定としてではなく、一例として、ウェブページは、特定のニーズに従って、HTMLファイル、拡張可能ハイパーテキスト・マークアップ言語(XHTML)ファイル、または拡張可能マークアップ言語(XML)ファイルからレンダリングし得る。そのようなページはまた、たとえば、限定されるものではないが、JAVASCRIPT(登録商標)、JAVA(登録商標)、MICROSOFT SILVERLIGHTで記述されたスクリプトなどのスクリプト、AJAX(非同期JAVASCRIPTおよびXML)などのマークアップ言語とスクリプトの組み合わせなどを実行し得る。本明細書では、ウェブページに対する参照は、適切な場合、1つまたは複数の対応するウェブページ・ファイル(ブラウザがウェブページをレンダリングするために使用し得る)を包含し、逆も同様である。
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、オンライン・ソーシャル・ネットワークをホストする、ネットワークアドレス指定可能なコンピューティング・システムであってよい。ソーシャル・ネットワーキング・システム702は、たとえばユーザプロファイル・データ、概念プロファイル・データ、ソーシャル・グラフ情報、またはオンライン・ソーシャル・ネットワークに関係する他の適切なデータなどのソーシャルネットワーキング・データを生成、記憶、受信、および送信し得る。ソーシャル・ネットワーキング・システム702は、直接的に、またはネットワーク704を介して、のどちらかで、ネットワーク環境700の他の構成要素によってアクセスされ得る。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、1つまたは複数のサーバを含み得る。各サーバは、単体サーバであってもよいし、複数のコンピュータまたは複数のデータセンタにまたがる分散サーバであってもよい。サーバは、たとえば限定されるものではないが、ウェブ・サーバ、ニュース・サーバ、メール・サーバ、メッセージ・サーバ、広告サーバ、ファイル・サーバ、アプリケーション・サーバ、交換サーバ、データベース・サーバ、プロキシ・サーバ、本明細書で説明される機能もしくはプロセスを実行するのに適した別のサーバ、またはそれらの任意の組み合わせなどの、さまざまなタイプであってよい。特定の実施形態では、各サーバは、ハードウェア、ソフトウェア、または埋め込まれた論理構成要素、またはサーバによって実施もしくはサポートされる適切な機能を実行するための2つ以上そのような構成要素の組み合わせを含んでよい。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、1つまたは複数のデータ・ストアを含み得る。データ・ストアは、さまざまなタイプの情報を記憶するために使用され得る。特定の実施形態では、データ・ストア内に記憶される情報は、具体的なデータ構造に従って編成され得る。特定の実施形態では、各データ・ストアは、リレーショナル・データベース、カラムナ・データベース、相関データベース、または他の適切なデータベースであってよい。本開示は特定のタイプのデータベースを説明または例示しているが、本開示は、任意の適切なタイプのデータベースを企図するものである。特定の実施形態は、クライアント・システム706、ソーシャル・ネットワーキング・システム702、またはサードパーティ・システム708がデータ・ストア内に記憶された情報を管理する、取り出す、修正する、追加する、または削除することを可能にするインターフェースを提供し得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、1つまたは複数のデータ・ストア内に1つまたは複数のソーシャル・グラフを記憶し得る。特定の実施形態では、ソーシャル・グラフは、複数のユーザ・ノード(各々が特定のユーザに対応する)または複数の概念ノード(各々が特定の概念に対応する)を含み得る複数のノードと、ノードを接続する複数のエッジを含み得る。ソーシャル・ネットワーキング・システム702は、オンライン・ソーシャル・ネットワークのユーザに、他のユーザと通信および対話できることを提供し得る。特定の実施形態では、ユーザは、ソーシャル・ネットワーキング・システム702を介してオンライン・ソーシャル・ネットワークに加わり、次いで、ユーザが接続されたいソーシャル・ネットワーキング・システム702の何人かの他のユーザに対して接続(たとえば、関係)を追加し得る。本明細書では、「友達」という用語は、ユーザがソーシャル・ネットワーキング・システム702を介して接続、関連付け、または関係を形成した、ソーシャル・ネットワーキング・システム702の他の任意のユーザを指し得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、ソーシャル・ネットワーキング・システム702によってサポートされるさまざまなタイプのアイテムまたはオブジェクトに対してアクションをとることをユーザに提供し得る。限定としてではなく、一例として、アイテムおよびオブジェクトは、ソーシャル・ネットワーキング・システム702のユーザが属し得るグループもしくはソーシャル・ネットワーク、ユーザが興味を抱き得るイベントもしくはカレンダー記載事項、ユーザが使用し得るコンピュータベースのアプリケーション、ユーザがサービスを介してアイテムを購入もしくは販売し得る取引、ユーザが実行し得る広告との対話、または他の適切なアイテムもしくはオブジェクトを含み得る。ユーザは、ソーシャル・ネットワーキング・システム702内で、またはサードパーティ・システム708の外部システムによって表されることが可能なものと対話し得、サードパーティ・システム708は、ソーシャル・ネットワーキング・システム702とは別個であり、ネットワーク704を介してソーシャル・ネットワーキング・システム702に結合される。
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、さまざまなエンティティをリンクすることが可能であり得る。限定としてではなく、一例として、ソーシャル・ネットワーキング・システム702は、ユーザが、互いと対話し、ならびにサードパーティ・システム708もしくは他のエンティティからコンテンツを受信する、またはユーザが、アプリケーション・プログラミング・インターフェース(API)もしくは他の通信チャネルを通して、これらのエンティティと対話できることを可能にし得る。
特定の実施形態では、サードパーティ・システム708は、1つもしくは複数のタイプのサーバ、1つもしくは複数のデータ・ストア、限定されるものではないがAPIを含む1つもしくは複数のインターフェース、1つもしくは複数のウェブ・サービス、1つもしくは複数のコンテンツ・ソース、1つもしくは複数のネットワーク、または、たとえばサーバが通信し得る他の任意の適切な構成要素であり得る。サードパーティ・システム708は、ソーシャル・ネットワーキング・システム702を運用するエンティティからの異なるエンティティによって運用され得る。しかしながら、特定の実施形態では、ソーシャル・ネットワーキング・システム702およびサードパーティ・システム708は、ソーシャル・ネットワーキング・システム702またはサードパーティ・システム708のユーザにソーシャルネットワーキング・サービスを提供するために互いに運用し得る。この意味で、ソーシャル・ネットワーキング・システム702は、サードパーティ・システム708などの他のシステムがインターネット全体にわたってソーシャルネットワーキング・サービスおよび機能をユーザに対して提供するために使用し得るプラットフォームすなわちバックボーンを提供し得る。
特定の実施形態では、サードパーティ・システム708は、サードパーティ・コンテンツ・オブジェクト・プロバイダを含み得る。サードパーティ・コンテンツ・オブジェクト・プロバイダは、クライアント・システム706に対して通信され得るコンテンツ・オブジェクトの1つまたは複数のソースを含み得る。限定としてではなく、一例として、コンテンツ・オブジェクトは、たとえば、映画の上映時間、映画のレビュー、レストランのレビュー、レストランのメニュー、製品情報およびレビュー、または他の適切な情報などの、ユーザの興味を引く物事またはアクティビティに関する情報を含み得る。限定としてではなく、別の例として、コンテンツ・オブジェクトは、クーポン、割引チケット、商品券、または他の適切な報償となるオブジェクトなどの、報償となるコンテンツ・オブジェクトを含み得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、ソーシャル・ネットワーキング・システム702とのユーザの対話を向上させ得る、ユーザにより生成されたコンテンツ・オブジェクトも含む。ユーザにより生成されたコンテンツは、ユーザがソーシャル・ネットワーキング・システム702に対して追加、アップロード、送信、または「投稿する」ものを含み得る。限定としてではなく、一例として、ユーザが、クライアント・システム706からソーシャル・ネットワーキング・システム702に対して投稿を通信する。投稿としては、ステータス更新もしくは他のテキスト・データ、ロケーション情報、フォト、映像、リンク、音楽、または他の類似のデータもしくはメディアなどのデータがあり得る。コンテンツはまた、ニュースフィードまたはストリームなどの「通信チャネル」を介して、サードパーティによってソーシャル・ネットワーキング・システム702に対して追加され得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、さまざまなサーバと、サブシステムと、プログラムと、モジュールと、ログと、データ・ストアとを含んでよい。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、ウェブ・サーバ、アクション・ロガー、API要求サーバ、関連性およびランキング・エンジン、コンテンツ・オブジェクト分類器、通知コントローラ、アクション・ログ、サードパーティコンテンツ・オブジェクト公開(exposure)ログ、推測モジュール、許可/プライバシー・サーバ、検索モジュール、広告ターゲティング・モジュール、ユーザインターフェース・モジュール、ユーザプロファイル・ストア、接続ストア、サードパーティ・コンテンツ・ストア、またはロケーション・ストアのうちの1つまたは複数を含んでよい。ソーシャル・ネットワーキング・システム702は、ネットワーク・インターフェース、セキュリティ機構、ロード・バランサ、フェイルオーバ・サーバ、管理およびネットワーク運用コンソール、他の適切な構成要素、またはそれらの任意の適切な組み合わせなどの、適切な構成要素も含んでよい。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、ユーザ・プロファイルを記憶するための1つまたは複数のユーザプロファイル・ストアを含んでよい。ユーザ・プロファイルは、たとえば、経歴情報、人口統計学的情報、行動情報、社会情報、または職歴、学歴、趣味もしくは好み、興味、親密度、もしくはロケーションなどの他のタイプの記述情報を含み得る。興味情報は、1つまたは複数のカテゴリに関係する興味を含み得る。カテゴリは、汎用的であってもよいし、具体的であってもよい。限定としてではなく、一例として、ユーザが、靴のブランドについての記事に対して「いいね」を表明する場合、そのカテゴリはブランドであってもよいし、「靴」または「衣類」という汎用的なカテゴリであってもよい。接続ストアは、ユーザについての接続情報を記憶するために使用され得る。接続情報は、類似もしくは共通の職歴、グループ会員資格、趣味、学歴を有する、または、いかなる形であれ関係する、もしくは共通属性を共有するユーザを示してよい。接続情報は、異なるユーザとコンテンツ(内部と外部の両方)との間の、ユーザにより定義された接続も含み得る。ウェブ・サーバは、ネットワーク704を介して1つもしくは複数のクライアント・システム706または1つもしくは複数のサードパーティ・システム708に対してソーシャル・ネットワーキング・システム702をリンクするために使用され得る。ウェブ・サーバは、ソーシャル・ネットワーキング・システム702と1つまたは複数のクライアント・システム706との間でメッセージを受信およびルーティングするためのメール・サーバまたは他のメッセージング機能を含んでよい。API要求サーバは、サードパーティ・システム708が、1つまたは複数のAPIを呼び出すことによって、ソーシャル・ネットワーキング・システム702からの情報にアクセスすることを可能にし得る。アクション・ロガーは、ソーシャル・ネットワーキング・システム702上またはそれ以外の場所でのユーザのアクションについてウェブ・サーバから通信を受信するために使用され得る。アクション・ログとともに、サードパーティコンテンツ・オブジェクトに対するユーザ公開のサードパーティコンテンツオブジェクト・ログが維持され得る。通知コントローラは、コンテンツ・オブジェクトに関する情報をクライアント・システム706に対して提供し得る。情報は、通知としてクライアント・システム706に対してプッシュされてもよいし、情報は、クライアント・システム706から受信された要求に応答してクライアント・システム706からプルされてもよい。許可サーバは、ソーシャル・ネットワーキング・システム702のユーザの1つまたは複数のプライバシー設定を強制するために使用され得る。ユーザのプライバシー設定は、ユーザに関連付けられている特定の情報がどのように共有可能であるかを決定する。許可サーバは、ユーザが、たとえば、適切なプライバシー設定を設定することなどによって、アクションをソーシャル・ネットワーキング・システム702によってログさせること、または他のシステム(たとえば、サードパーティ・システム708)とともに共有させることに加わる、または加わらない(opt in to or opt out of)ことを可能にする。サードパーティコンテンツオブジェクト・ストアは、サードパーティ・システム708などのサードパーティから受信されたコンテンツ・オブジェクトを記憶するために使用され得る。ロケーション・ストアは、ユーザに関連付けられているクライアント・システム706から受信されたロケーション情報を記憶するために使用され得る。広告価格設定モジュールは、社会情報、現在の時間、ロケーション情報、または他の適切な情報を組み合わせて、通知の形で関係のある広告をユーザに対して提供し得る。
図8は、例となるソーシャル・グラフ800を例示する。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、1つまたは複数のデータ・ストア内に1つまたは複数のソーシャル・グラフ800を記憶し得る。特定の実施形態では、ソーシャル・グラフ800は、複数のユーザ・ノード802または複数の概念ノード804を含み得る複数のノードと、ノードを接続する複数のエッジ806とを含み得る。図8に例示される例となるソーシャル・グラフ800は、教説的な目的で、2次元の視覚的なマップ表現で示されている。特定の実施形態では、ソーシャル・ネットワーキング・システム702、クライアント・システム706、またはサードパーティ・システム708は、適切なアプリケーションのためのソーシャル・グラフ800および関係するソーシャル・グラフ情報にアクセスし得る。ソーシャル・グラフ800のノードおよびエッジは、たとえば、データ・ストア(ソーシャルグラフ・データベースなど)内に、データ・オブジェクトとして記憶され得る。そのようなデータ・ストアは、ソーシャル・グラフ800のノードまたはエッジの1つまたは複数の検索可能またはクエリ可能なインデックスを含み得る。
特定の実施形態では、ユーザ・ノード802は、ソーシャル・ネットワーキング・システム702のユーザに対応し得る。限定としてではなく、一例として、ユーザは、ソーシャル・ネットワーキング・システム702と、またはその上で対話または通信する、個人(人間ユーザ)、エンティティ(たとえば、企業、会社、もしくはサードパーティ・アプリケーション)、または(たとえば、個人もしくはエンティティの)グループであってよい。特定の実施形態では、ユーザがソーシャル・ネットワーキング・システム702に口座を登録するとき、ソーシャル・ネットワーキング・システム702は、ユーザに対応するユーザ・ノード802を作成し、1つまたは複数のデータ・ストア内にユーザ・ノード802を記憶し得る。本明細書で説明されるユーザおよびユーザ・ノード802は、適切な場合には、登録されたユーザと、登録されたユーザに関連付けられているユーザ・ノード802を指し得る。加えて、または代替として、本明細書で説明されるユーザおよびユーザ・ノード802は、適切な場合には、ソーシャル・ネットワーキング・システム702に登録されていないユーザを指し得る。特定の実施形態では、ユーザ・ノード802は、ユーザによって提供される情報、またはソーシャル・ネットワーキング・システム702を含むさまざまなシステムによって収集された情報に関連付けられ得る。限定としてではなく、一例として、ユーザは、自分の名前、プロファイル・ピクチャ、連絡先情報、誕生日、性別、配偶者の有無、家族構成、職業、学歴、好み、興味、または他の人口統計学的情報を提供し得る。ソーシャル・グラフの各ユーザ・ノードは、対応するウェブページ(典型的には、プロファイル・ページとして知られる)を有し得る。ユーザ名を含む要求に応答して、ソーシャル・ネットワーキング・システムは、ユーザ名に対応するユーザ・ノードにアクセスし、名前、プロファイル・ピクチャ、およびユーザに関連付けられている他の情報を含むプロファイル・ページを作り上げる。第1のユーザのプロファイル・ページは、第1のユーザによる1つまたは複数のプライバシー設定および第1のユーザと第2のユーザとの間の関係に基づいて、第1のユーザの情報のすべてまたは一部分を第2のユーザに対して表示し得る。
特定の実施形態では、概念ノード804は概念に対応し得る。限定としてではなく、一例として、概念は、場所(たとえば、映画館、レストラン、ランドマーク、もしくは都市など)、ウェブサイト(たとえば、ソーシャルネットワーク・システム702に関連付けられているウェブサイト、もしくはウェブアプリケーション・サーバに関連付けられているサードパーティ・ウェブサイトなど)、エンティティ(たとえば、人物、会社、グループ、スポーツ・チーム、もしくは有名人など)、ソーシャル・ネットワーキング・システム702の中もしくはウェブアプリケーション・サーバなどの外部サーバ上に配置され得るリソース(たとえば、オーディオ・ファイル、映像ファイル、デジタル・フォト、テキスト・ファイル、構造化文書、もしくはアプリケーションなど)、物的財産もしくは知的財産(たとえば、彫刻、絵画、映画、ゲーム、歌、アイデア、写真、または著書など)、ゲーム、アクティビティ、アイデア、もしくは理論、別の適切な概念、または2つ以上のそのような概念に対応し得る。概念ノード804は、ユーザによって提供される概念の情報、またはソーシャル・ネットワーキング・システム702を含むさまざまなシステムによって収集された情報に関連付けられ得る。限定としてではなく、一例として、概念の情報としては、名前もしくはタイトル、1つもしくは複数の画像(たとえば、本のカバー・ページの画像)、ロケーション(たとえば、住所もしくは地理的ロケーション)、ウェブサイト(URLに関連付けられ得る)、連絡先情報(たとえば、電話番号もしくは電子メール・アドレス)、他の適切な概念情報、またはそのような情報の任意の適切な組み合わせがあり得る。特定の実施形態では、概念ノード804は、概念ノード804に関連付けられている情報に対応する1つまたは複数のデータ・オブジェクトに関連付けられ得る。特定の実施形態では、概念ノード804は、1つまたは複数のウェブページに対応し得る。
特定の実施形態では、ソーシャル・グラフ800内のノードは、ウェブページ(「プロファイル・ページ」と呼ばれることがある)を表してもよいし、これによって表されてもよい。プロファイル・ページは、ソーシャル・ネットワーキング・システム702によってホストされてもよいし、これに対してアクセス可能であってもよい。プロファイル・ページはまた、サードパーティ・サーバ708に関連付けられているサードパーティ・ウェブサイト上にホストされ得る。限定としてではなく、一例として、特定の外部のウェブページに対応するプロファイル・ページは特定の外部ウェブページであってよく、プロファイル・ページは特定の概念ノード804に対応し得る。プロファイル・ページは、他のユーザのすべてまたは選択されたサブセットによって閲覧することができてよい。限定としてではなく、一例として、ユーザ・ノード802は、対応するユーザがコンテンツを追加し、発表をし、または別のやり方で自分を表現し得る対応するユーザプロファイル・ページを有し得る。限定としてではなく、別の例として、概念ノード804は、特に概念ノード804に対応する概念に関係して1つまたは複数のユーザがコンテンツを追加し、発表をし、または別のやり方で自分を表現し得る対応する概念プロファイル・ページを有し得る。
特定の実施形態では、概念ノード804は、サードパーティ・システム708によってホストされるサードパーティ・ウェブページまたはリソースを表し得る。サードパーティ・ウェブページまたはリソースは、要素の中でもとりわけ、アクションまたはアクティビティを表すコンテンツ、選択可能なアイコンもしくは他のアイコン、または他の対話可能なオブジェクト(たとえば、JavaScriptコード、AJAXコード、またはPHPコードで実装され得る)を含んでよい。限定としてではなく、一例として、サードパーティ・ウェブページは、「いいね」、「チェック・イン」、「食べる」、「推奨」、または別の適切なアクションもしくはアクティビティなどの選択可能なアイコンを含み得る。サードパーティ・ウェブページを閲覧するユーザは、アイコンのうちの1つ(たとえば、「食べる」)を選択し、クライアント・システム706に、ユーザのアクションを示すメッセージをソーシャル・ネットワーキング・システム702に対して送信させることによって、アクションを実行し得る。メッセージに応答して、ソーシャル・ネットワーキング・システム702は、ユーザに対応するユーザ・ノード802とサードパーティ・ウェブページまたはリソースに対応する概念ノード804との間にエッジ(たとえば、「食べる」エッジ)を作成し、1つまたは複数のデータ・ストア内にエッジ806を記憶し得る。
特定の実施形態では、ソーシャル・グラフ800内のノードのペアは、1つまたは複数のエッジ806によって互いに接続され得る。ノードのペアを接続するエッジ806は、ノードのペアの間の関係を表し得る。特定の実施形態では、エッジ806は、ノードのペアの間の関係に対応する1つまたは複数のデータ・オブジェクトまたは属性を含み得るまたはこれを表し得る。限定としてではなく、一例として、第1のユーザは、第2のユーザが第1のユーザの「友達」であることを示し得る。この標識に応答して、ソーシャル・ネットワーキング・システム702は、第2のユーザに対して「友達要求」を送信し得る。第2のユーザが「友達要求」を確かめる場合、ソーシャル・ネットワーキング・システム702は、ソーシャル・グラフ800内の第1のユーザのユーザ・ノード802を第2のユーザのユーザ・ノード802に対して接続するエッジ806を作成し、エッジ806をソーシャル・グラフ情報としてデータ・ストアのうちの1つまたは複数に記憶し得る。図8の例では、ソーシャル・グラフ800は、ユーザ「A」とユーザ「B」のユーザ・ノード802間の友達関係を示すエッジ806と、ユーザ「C」とユーザ「B」のユーザ・ノード802間の友達関係を示すエッジとを含む。本開示は、特定のユーザ・ノード802を接続する、特定の属性を有する特定のエッジ806を説明または例示しているが、本開示は、ユーザ・ノード802を接続する、任意の適切な属性を有する任意の適切なエッジ806を企図するものである。限定としてではなく、一例として、エッジ806は、友達関係、家族関係、ビジネスすなわち雇用関係、ファン関係、フォロワー関係、ビジター関係、購読者関係、上下関係、相互関係、非相互関係、別の適切なタイプの関係、または2つ以上のそのような関係を表し得る。さらに、本開示は一般に、ノードを、接続されていると説明しているが、本開示は、ユーザまたは概念も、接続されていると説明する。本明細書では、接続されているユーザまたは概念への参照は、適切な場合には、ソーシャル・グラフ800内で1つまたは複数のエッジ806によって接続されているそれらのユーザまたは概念に対応するノードに及ぶ。
特定の実施形態では、ユーザ・ノード80と概念ノード804との間のエッジ806は、概念ノード804に関連付けられている概念のためにユーザ・ノード802に関連付けられているユーザによって実行される特定のアクションまたはアクティビティを表し得る。限定としてではなく、一例として、図8に例示されるように、ユーザは、概念に対して「いいね」を表明し、「通学した」、「プレイした」、「聞いた」、「料理した」、「働いた」、または概念を「見た」とする。その各々は、エッジ・タイプまたはサブタイプに対応し得る。概念ノード804に対応する概念プロファイル・ページは、たとえば、選択可能な「チェック・イン」アイコン(たとえば、クリック可能な「チェック・イン」アイコンなど)または選択可能な「お気に入りに追加」アイコンを含んでよい。同様に、ユーザがこれらのアイコンをクリックした後、ソーシャル・ネットワーキング・システム702は、それぞれのアクションに対応するユーザのアクションに応答して「お気に入り」エッジまたは「チェック・イン」エッジを作成してよい。限定としてではなく、別の例として、ユーザ(ユーザ「C」)は、特定のアプリケーション(オンライン音楽アプリケーションであるSPOTIFY)を使用して特定の歌(「ランブル・オン」)を聞くことがある。この場合、ソーシャル・ネットワーキング・システム702は、ユーザがその歌を聞き、そのアプリケーションを使用したことを示すため、にユーザに対応するユーザ・ノード802と歌およびアプリケーションに対応する概念ノード804との間に「聞いた」エッジ806および「使用した」エッジ(図8に例示される)を作成し得る。さらに、ソーシャル・ネットワーキング・システム702は、特定の歌が特定のアプリケーションによってプレイ(再生)されたことを示すために、歌およびアプリケーションに対応する概念ノード804間に「プレイした」エッジ806(図8に例示される)を作成し得る。この場合、「プレイした」エッジ806は、外部オーディオ・ファイル(歌「イマジン」)に対して外部アプリケーション(SPOTIFY)によって実行されるアクションに対応する。本開示は、ユーザ・ノード802および概念ノード804を接続する、特定の属性を有する特定のエッジ806を説明しているが、本開示は、ユーザ・ノード802および概念ノード804を接続する、任意の適切な属性を有する任意の適切なエッジ806を企図するものである。そのうえ、本開示は、単一の関係を表す、ユーザ・ノード802と概念ノード804との間のエッジを説明しているが、本開示は、1つまたは複数の関係を表す、ユーザ・ノード802と概念ノード804との間のエッジを企図する。限定としてではなく、一例として、エッジ806は、ユーザが特定の概念に対して「いいね」を表明したことと、特定の概念において使用したことの両方を表し得る。代替的に、別のエッジ806は、ユーザ・ノード802と概念ノード804との間の各タイプの関係(または単一の関係の倍数)を表し得る(図8では、ユーザ「E」のユーザ・ノード802と「SPOTIFY」の概念ノード804との間に例示される)。
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、ソーシャル・グラフ800内のユーザ・ノード802と概念ノード804との間にエッジ806を作成し得る。限定としてではなく、一例として、(たとえば、ユーザのクライアント・システム706によってホストされるウェブ・ブラウザまたは特殊目的アプリケーションを使用することなどによって)概念プロファイル・ページを閲覧するユーザは、自分は概念ノード804によって表される概念に対して「いいね」を表明したことを、「いいね」アイコンをクリックまたは選択することによって示し得、それは、ユーザは概念プロファイル・ページに関連付けられている概念に対して「いいね」を表明したことを示すメッセージをソーシャル・ネットワーキング・システム702に対して送信することをユーザのクライアント・システム706に行わせ得る。メッセージに応答して、ソーシャル・ネットワーキング・システム702は、ユーザと概念ノード804との間の「いいね」エッジ806によって例示されるように、ユーザに関連付けられているユーザ・ノード802と概念ノード804との間にエッジ806を作成し得る。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、1つまたは複数のデータ・ストアにエッジ806を記憶し得る。特定の実施形態では、エッジ806は、特定のユーザ・アクションに応答して、ソーシャル・ネットワーキング・システム702によって自動的に形成され得る。限定としてではなく、一例として、第1のユーザがピクチャをアップロードする、映画を見る、または歌を聞く場合、エッジ806は、第1のユーザに対応するユーザ・ノード802とそれらの概念に対応する概念ノード804との間に形成され得る。本開示は、特定の様式で特定のエッジ806を形成することを説明しているが、本開示は、任意の適切な様式で任意の適切なエッジ806を形成することを企図するものである。
特定の実施形態では、広告は、テキスト(HTMLリンクであってよい)、1つもしくは複数の画像(HTMLリンクであってよい)、1つもしくは複数の映像、オーディオ、1つもしくは複数のADOBE FLASHファイル、これらの適切な組み合わせ、または1つもしくは複数のウェブページ上で、1つもしくは複数の電子メール内で、もしくはユーザによって要求された検索結果に関係して、提示される任意の適切なデジタル・フォーマットの他の任意の適切な広告であってよい。加えて、または代替として、広告は、1つまたは複数のスポンサー付きストーリー(たとえば、ソーシャル・ネットワーキング・システム702上のニュースフィードまたはティッカー・アイテム)である。スポンサー付きストーリーは、たとえば、ソーシャル・アクションを、ユーザのプロファイル・ページまたは他のページの所定のエリア内に提示させる、広告主に関連付けられている追加の情報とともに提示させる、他のユーザのニュースフィードもしくはティッカー内で衝突させるもしくは別のやり方で目立たせる、または別のやり方でプロモーションさせることによって広告主がプロモーションする、ユーザによるソーシャル・アクション(ページに対して「いいね」を表明する、ページ上の投稿に対して「いいね」を表明するもしくはコメントする、ページに関連付けられているイベントの出欠を返事する、ページ上で投稿された質問に関して投稿する、ある場所にチェック・インする、アプリケーションを使用するもしくはゲームをする、またはウェブサイトを「リンク」もしくは共有するなど)であってよい。広告主は、ソーシャル・アクションをプロモーションさせるために支払うことがある。限定としてではなく、一例として、広告は検索結果ページの検索結果の間に含まれてよく、そこでは、スポンサー付きコンテンツは、スポンサー付きでないコンテンツよりもプロモーションされる。
特定の実施形態では、広告は、ソーシャルネットワーキングシステム・ウェブページ、サードパーティ・ウェブページ、または他のページ内での表示のために要求され得る。広告は、ページの上部のバナー・エリア内、ページの側部のカラム内、ページのGUI内、ポップアップ・ウィンドウ内、ドロップダウン・メニュー内、ページの入力フィールド内、ページのコンテンツの上部の上、またはページに関する他の場所などの、ページの専用部分内に表示され得る。加えて、または代替として、広告はアプリケーション内に表示され得る。広告は、専用ページ内に表示され、ユーザに、ユーザがページにアクセスするまたはアプリケーションを利用する前に広告と対話するまたはこれを見ることを要求し得る。ユーザは、たとえば、ウェブ・ブラウザを通して広告を閲覧してよい。
ユーザは、任意の適切な様式で広告と対話してよい。ユーザは、広告をクリックしてもよいし、または別のやり方で広告を選択してもよい。広告を選択することによって、ユーザは、広告に関連付けられているページ(または、ユーザによって使用されているブラウザもしくは他のアプリケーション)に対して向けられ得る。広告に関連付けられているページでは、ユーザは、広告に関連付けられている製品もしくはサービスを購入する、広告に関連付けられている情報を受信する、または広告に関連付けられているニュースレターを購読するなどの、追加のアクションをとり得る。オーディオまたは映像を有する広告は、(「プレイ・ボタン」などの)広告の構成要素を選択することによってプレイされ得る。代替的に、広告を選択することによって、ソーシャル・ネットワーキング・システム702は、ユーザの特定のアクションを実行または修正し得る。
広告は、ユーザが対話し得るソーシャル・ネットワーキング・システム機能も含み得る。限定としてではなく、一例として、広告は、ユーザが、支持に関連付けられているアイコンまたはリンクを選択することによって広告に対して「いいね」を表明するまたは別のやり方で広告を支持することを可能にし得る。限定としてではなく、別の例として、広告は、ユーザが、広告主に関連するコンテンツを(たとえば、クエリを実行することによって)検索することを可能にし得る。同様に、ユーザは、別のユーザと(たとえば、ソーシャル・ネットワーキング・システム702を通して)広告を共有し得、または広告に関連付けられているイベントの出欠を(たとえば、ソーシャル・ネットワーキング・システム702を通して)返事し得る。加えて、または代替として、広告は、ユーザに対して向けられたソーシャルネットワーキングシステム・コンテキストを含み得る。限定としてではなく、一例として、広告は、広告の主題に関連付けられているアクションをとった、ソーシャル・ネットワーキング・システム702内のユーザの友達についての情報を表示し得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、互いに対するさまざまなソーシャルグラフ・エンティティのソーシャル・グラフ親密度(本明細書では、「親密度」と呼ばれることがある)を決定し得る。親密度は、ユーザ、概念、コンテンツ、アクション、広告、オンライン・ソーシャル・ネットワークに関連付けられている他のオブジェクト、またはそれらの任意の適切な組み合わせなどの、オンライン・ソーシャル・ネットワークに関連付けられている特定のオブジェクト間の関係の強さまたは興味のレベルを表し得る。親密度は、サードパーティ・システム708または他の適切なシステムに関連付けられているオブジェクトに対しても決定され得る。各ユーザ、主題、またはコンテンツのタイプのためのソーシャルグラフ・エンティティの全体的な親密度が確立され得る。全体的な親密度は、ソーシャルグラフ・エンティティに関連付けられているアクションまたは関係の継続モニタリングに基づいて変化し得る。本開示は、特定の様式で特定の親密度を決定することを説明しているが、本開示は、任意の適切な様式で任意の適切な親密度を決定することを企図している。
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、親密度係数(本明細書では、「係数」と呼ばれることがある)を使用してソーシャル・グラフ親密度を測定または定量化し得る。係数は、オンライン・ソーシャル・ネットワークに関連付けられている特定のオブジェクト間の関係の強さを表すまたは定量化し得る。係数は、アクションにおけるユーザの興味に基づいてユーザが特定のアクションを実行する予測確率を測定する確率または機能も表し得る。このようにして、ユーザの将来のアクションは、ユーザの前のアクションに基づいて予測され得、係数は、少なくとも部分的にユーザのアクションの履歴で計算され得る。係数は、任意の数のアクションを予測するために使用され得、アクションは、オンライン・ソーシャル・ネットワーク内であってもよいし、オンライン・ソーシャル・ネットワークの外部であってもよい。限定としてではなく、一例として、これらのアクションは、メッセージを送信すること、コンテンツを投稿すること、もしくはコンテンツに対してコメントすることなどのさまざまなタイプの通信、プロファイル・ページ、メディア、もしくは他の適切なコンテンツにアクセスもしくは閲覧するなどのさまざまなタイプの観察アクション、同じグループ内にある、同じ写真でタグ付けされている、同じロケーションにチェック・インした、もしくは同じイベントに出席したなどの2つ以上のソーシャルグラフ・エンティティについてのさまざまなタイプの一致情報、または他の適切なアクションを含み得る。本開示は、特定の様式で親密度を測定することを説明しているが、本開示は、任意の適切な様式で親密度を測定することを企図している。
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、さまざまな因子を使用して係数を計算し得る。これらの因子としては、たとえば、ユーザ・アクション、オブジェクト間の関係のタイプ、ロケーション情報、他の適切な因子、またはそれらの任意の組み合わせがあり得る。特定の実施形態では、異なる因子は、係数を計算するとき、異なるように重み付けされ得る。各因子の重みは静的であってもよいし、重みは、たとえば、ユーザ、関係のタイプ、アクションのタイプ、ユーザのロケーションなどに応じて変化してもよい。因子のレーティングは、ユーザの全体的係数を決定するための重みに応じて組み合わされ得る。限定としてではなく、一例として、特定のユーザ・アクションは、レーティングと重みの両方に対して割り当てられてよく、特定のユーザ・アクションに関連付けられている関係は、レーティングおよび相関重みが割り当てられる(たとえば、そのため、重みは合計100%になる)。特定のオブジェクトに対するユーザの係数を計算するために、ユーザのアクションに対して割り当てられたレーティングは、たとえば、全体的係数の60%を備えることがあり、ユーザとオブジェクトとの間の関係は全体的係数の40%を備えることがある。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、たとえば、情報がアクセスされてからの時間、減衰因子、アクセスの頻度、情報との関係もしくは情報がアクセスされたオブジェクトとの関係、オブジェクトに対して接続されたソーシャルグラフ・エンティティとの関係、ユーザ・アクションの短期もしくは長期の平均、ユーザ・フィードバック、他の適切な変数、またはそれらの任意の組み合わせなどの、係数を計算するために使用されるさまざまな因子に対する重みを決定するとき、さまざまな変数を考慮し得る。限定としてではなく、一例として、係数は、係数を計算するとき、アクションが最近であればあるほど関連度が大きくなるように、特定のアクションによって提供される信号の強さを時間とともに減衰させる減衰因子を含み得る。レーティングおよび重みは、係数が基づくアクションの継続追跡に基づいて連続的に更新され得る。任意のタイプのプロセスまたはアルゴリズムが、各因子および因子に対して割り当てられた重みに対するレーティングを割り当てる、組み合わせる、平均化するなどを行うために用いられてよい。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、履歴アクションおよび過去のユーザ応答、またはさまざまなオプションに対してさらし、応答を測定することによってユーザから得られた(farmed)データに関して訓練された機械学習アルゴリズムを使用して係数を決定し得る。本開示は、特定の様式で係数を計算することを説明しているが、本開示は、任意の適切な様式で係数を計算することを企図している。
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、ユーザのアクションに基づいて係数を計算し得る。ソーシャル・ネットワーキング・システム702は、オンライン・ソーシャル・ネットワーク上で、サードパーティ・システム708上で、他の適切なシステム上で、またはそれらの任意の組み合わせで、そのようなアクションを監視してよい。任意の適切なタイプのユーザ・アクションが追跡または監視されてよい。典型的なユーザ・アクションとしては、プロファイル・ページを閲覧すること、コンテンツを作成または投稿すること、コンテンツと対話すること、グループに加わること、イベントにおける出席をリストし確かめること、ロケーションにチェック・インすること、特定のページに対して「いいね」を表明すること、ページを作成すること、およびソーシャル・アクションを促進する他のタスクを実行することがある。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、特定のタイプのコンテンツとのユーザのアクションに基づいて係数を計算し得る。コンテンツは、オンライン・ソーシャル・ネットワーク、サードパーティ・システム708、または別の適切なシステムに関連付けられ得る。コンテンツとしては、ユーザ、プロファイル・ページ、投稿、ニュース・ストーリー、ヘッドライン、インスタント・メッセージ、チャット・ルームの会話、電子メール、広告、ピクチャ、映像、音楽、他の適切なオブジェクト、またはそれらの任意の組み合わせがある。ソーシャル・ネットワーキング・システム702は、ユーザのアクションを分析して、アクションのうちの1つまたは複数が主題、コンテンツ、他のユーザなどに対して親密度を示すか否かを決定し得る。限定としてではなく、一例として、ユーザが、「コーヒー」またはその変種に関係したコンテンツの投稿を頻繁に行う場合、ソーシャル・ネットワーキング・システム702は、ユーザが「コーヒー」という概念に関して高い係数を有することを決定し得る。特定のアクションまたは特定のタイプのアクションは、計算された全体的係数に影響し得る、他のアクションよりも高い重みおよび/またはレーティングが割り当てられ得る。限定としてではなく、一例として、第1のユーザが第2のユーザに電子メールを出す場合、アクションに対する重みまたはレーティングは、第1のユーザが第2のユーザのためのユーザプロファイル・ページを閲覧するだけの場合よりも高くなり得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、特定のオブジェクト間の関係のタイプに基づいて係数を計算し得る。ソーシャル・グラフ800を参照すると、ソーシャル・ネットワーキング・システム702は、係数を計算するとき、特定のユーザ・ノード802と概念ノード804を接続するエッジ806の数および/またはタイプを分析し得る。限定としてではなく、一例として、配偶者タイプのエッジ(2人のユーザが結婚していることを表す)によって接続されるユーザ・ノード802は、友達タイプのエッジによって接続されるユーザ・ノード802よりも高い係数が割り当てられ得る。言い換えれば、特定のユーザのためのアクションおよび関係に対して割り当てられた重みに応じて、全体的親密度は、ユーザの友達についてのコンテンツに対するよりもユーザの配偶者についてのコンテンツに対して高くなるように決定され得る。特定の実施形態では、ユーザが別のオブジェクトと有する関係は、そのオブジェクトに関する係数を計算することに関するユーザのアクションの重みおよび/またはレーティングに影響し得る。限定としてではなく、一例として、コンテンツとタグ付けタイプの関係を有することは、コンテンツと「いいね」タイプの関係を有するよりも高い重みおよび/またはレーティングを割り当てられ得るので、ユーザが第1のフォトでタグ付けされるが、第2のフォトに対しては「いいね」を表明するにすぎない場合、ソーシャル・ネットワーキング・システム702は、ユーザが、第2のフォトよりも第1のフォトに関して高い係数を有することを決定し得る。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、1つまたは複数の第2のユーザが特定のオブジェクトと有する関係に基づいて、第1のユーザに関する係数を計算し得る。言い換えれば、他のユーザがオブジェクトと有する接続および係数は、第1のユーザのオブジェクトに関する係数に影響し得る。限定としてではなく、一例として、第1のユーザが、1つもしくは複数の第2のユーザに対して接続される、またはそれらに関して高い係数を有し、それらの第2のユーザが特定のオブジェクトに接続されるまたはそれに関して高い係数を有する場合、ソーシャル・ネットワーキング・システム702は、第1のユーザも、特定のオブジェクトに関する比較的高い係数も有するべきであることを決定し得る。特定の実施形態では、係数は、特定のオブジェクト間の隔たり次数に基づいてよい。任意の2つのノード間の隔たり次数は、あるノードから他のノードへソーシャル・グラフをたどるために必要とされるホップの最小数として定義される。2つのノード間の隔たり次数は、ソーシャル・グラフ内の2つのノードによって表されるユーザまたは概念間の関係性の尺度と考えられ得る。たとえば、エッジによって直接的に接続される(すなわち、1次のノードである)ユーザ・ノードを有する2人のユーザは、「接続されたユーザ」すなわち「友達」と説明され得る。同様に、別のユーザ・ノードを通してのみ接続される(すなわち、2次のノードである)ユーザ・ノードを有する2人のユーザは、「友達の友達」と説明され得る。より低い係数は、第1のユーザが、ソーシャル・グラフ800内で第1のユーザに対して間接的に接続されたユーザのコンテンツ・オブジェクトにおいて興味を共有する可能性の減少を表し得る。限定としてではなく、一例として、ソーシャル・グラフ800内でより近い(すなわち、分離次数のより低い)ソーシャルグラフ・エンティティは、ソーシャル・グラフ800内でさらに離れたエンティティよりも高い係数を有し得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、ロケーション情報に基づいて係数を計算し得る。互いに対して地理的により近いオブジェクトは、より遠いオブジェクトよりも互いに対してより関係がある、またはより興味があると考えられ得る。特定の実施形態では、特定のオブジェクトのためのユーザの係数は、ユーザに関連付けられている現在のロケーション(またはユーザのクライアント・システム706のロケーション)に対するオブジェクトのロケーションの近接性に基づき得る。第1のユーザは、第1のユーザに対してより近い他のユーザまたは概念に、より興味があり得る。限定としてではなく、一例として、ユーザが空港から1.609km(1マイル)、ガソリン・スタンドから3.219km(2マイル)のところにいる場合、ソーシャル・ネットワーキング・システム702は、ユーザに対する空港の近接性に基づいて、ユーザがガソリン・スタンドよりも空港に関して高い係数を有することを決定し得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、係数情報に基づいて、ユーザに関する特定のアクションを実行し得る。係数は、ユーザのアクションへの興味に基づいて、ユーザが特定のアクションを実行するか否かを予測するために使用され得る。係数は、広告、検索結果、ニュース・ストーリー、メディア、メッセージ、通知、または他の適切なオブジェクトなどの任意のタイプのオブジェクトをユーザに対して生成または提示するとき、使用され得る。係数はまた、必要に応じて、そのようなオブジェクトをランキングし、順序付けるために利用され得る。このようにして、ソーシャル・ネットワーキング・システム702は、ユーザの興味および現在の環境に関連のある情報を提供し、興味のあるそのような情報を見つける可能性を増加させ得る。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、係数情報に基づいてコンテンツを生成し得る。コンテンツ・オブジェクトは、ユーザに固有の係数に基づいて提供または選択され得る。限定としてではなく、一例として、ユーザが、ユーザがメディア・オブジェクトに関して高い全体的係数を有するメディアが提示される場合、係数は、ユーザのためのメディアを生成するために使用され得る。限定としてではなく、別の例として、ユーザが、ユーザが広告付きオブジェクトに関して高い全体的係数を有する広告が提示される場合、係数は、ユーザのための広告を生成するために使用され得る。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、係数情報に基づいて検索結果を生成し得る。特定のユーザのための検索結果は、クエリを発行したユーザに対する検索結果に関連付けられている係数に基づいてスコア付けまたはランキングされ得る。限定としてではなく、一例として、より高い係数を有するオブジェクトに対応する検索結果は、検索結果ページ上で、より低い係数を有するオブジェクトに対応する結果よりも高くランキングされ得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、特定のシステムまたはプロセスからの係数の要求に応答して係数を計算し得る。ユーザが所与の状況でとり得る(または、その対象であり得る)可能性があるアクションを予測するために、任意のプロセスは、ユーザに関する計算された係数を要求し得る。要求は、係数を計算するために使用されるさまざまな因子に使用する重みのセットも含み得る。この要求は、オンライン・ソーシャル・ネットワーク上で実行されているプロセスから来ることもあるし、サードパーティ・システム708から(たとえば、APIまたは他の通信チャネルを介して)来ることもあるし、別の適切なシステムから来ることもある。要求に応答して、ソーシャル・ネットワーキング・システム702は、係数を計算し得る(または、係数情報が以前に計算され、記憶されている場合、その係数情報にアクセスし得る)。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、特定のプロセスに関して親密度を測定し得る。さまざまなプロセス(オンライン・ソーシャル・ネットワークに対して内部と外部の両方にある)は、特定のオブジェクトまたはオブジェクトのセットに関する係数を要求し得る。ソーシャル・ネットワーキング・システム702は、親密度の尺度を要求した特定のプロセスに対して関連のある親密度の尺度を提供し得る。このようにして、各プロセスは、プロセスが親密度の尺度を使用する異なるコンテキストに合わせられた親密度の尺度を受信する。
ソーシャル・グラフ親密度および親密度係数に関して、特定の実施形態は、その各々が本願明細書に援用される、2006年8月11日に出願された米国特許出願第11/503093号、2010年12月22日に出願された米国特許出願第12/977027号、2010年12月23日に出願された米国特許出願第12/978265号、および2012年10月01日に出願された米国特許出願第13/642869号に開示されている1つまたは複数のシステム、構成要素、要素、機能、方法、動作、またはステップを利用し得る。
特定の実施形態では、オンライン・ソーシャル・ネットワークのコンテンツ・オブジェクトのうちの1つまたは複数がプライバシー設定に関連付けられ得る。オブジェクトのためのプライバシー設定(または「アクセス設定」)は、たとえば、オブジェクトに関連して、許可サーバ上のインデックス内に、別の適切な様式で、または、それらの任意の組み合わせなどの任意の適切な様式で記憶されてよい。オブジェクトのプライバシー設定は、オブジェクト(またはオブジェクトに関連付けられている特定の情報)が、オンライン・ソーシャル・ネットワークを使用してどのようにアクセス(たとえば、閲覧または共有)され得るかを規定し得る。オブジェクトのためのプライバシー設定は、特定のユーザがそのオブジェクトにアクセスすることを可能にし、オブジェクトは、そのユーザに対して「閲覧可能」と説明され得る。限定としてではなく、一例として、オンライン・ソーシャル・ネットワークのユーザは、ユーザプロファイル・ページのためのプライバシー設定が、ユーザプロファイル・ページ上の職歴情報にアクセスし得るユーザのセットを識別し、したがって、他のユーザを情報にアクセスさせないことを規定し得る。特定の実施形態では、プライバシー設定は、オブジェクトに関連付けられている一定の情報にアクセスすることが可能にされるべきではないユーザの「遮断リスト」を規定し得る。言い換えれば、遮断リストは、オブジェクトが見えない1つまたは複数のユーザまたはエンティティを規定し得る。限定としてではなく、一例として、ユーザは、ユーザに関連付けられているフォト・アルバムにアクセスし得ないユーザのセットを規定し、したがって、それらのユーザをフォト・アルバムにアクセスさせ得ない(がまた、おそらく、ユーザのセットに含まれない一定のユーザはフォト・アルバムにアクセスすることを可能にする)。特定の実施形態では、プライバシー設定は、特定のソーシャル・グラフ要素に関連付けられ得る。ノードまたはエッジなどのソーシャル・グラフ要素のプライバシー設定は、ソーシャル・グラフ要素、ソーシャル・グラフ要素に関連付けられている情報、またはソーシャル・グラフ要素に関連付けられているコンテンツ・オブジェクトがどのようにしてオンライン・ソーシャル・ネットワークを使用してアクセス可能であるかを規定し得る。限定としてではなく、一例として、特定のフォトに対応する特定の概念ノード804は、そのフォトは、フォトでタグ付けされたユーザおよびユーザの友達によってのみアクセスされ得ることを規定するプライバシー設定を有し得る。特定の実施形態では、プライバシー設定は、ユーザが、アクションをソーシャル・ネットワーキング・システム702によってログさせること、または他のシステム(たとえば、サードパーティ・システム708)と共有させることに加わる、または加わらないことを可能にする。特定の実施形態では、オブジェクトに関連付けられているプライバシー設定は、任意の適切な粒度の許容されたアクセスまたはアクセスの否定を規定し得る。限定としてではなく、一例として、アクセスまたはアクセスの否定は、特定のユーザ(たとえば、自分のみ、ルームメイト、および上司)、特定の次数以内の隔たりに含まれるユーザ(たとえば、友達、または友達の友達)、ユーザ・グループ(たとえば、ゲーム・クラブ、家族)、ユーザ・ネットワーク(たとえば、特定の雇用者の従業員、学生、または特定の大学の卒業生)、すべてのユーザ(「パブリック」)、ユーザなし(「プライベート」)、サードパーティ・システム708のユーザ、特定のアプリケーション(たとえば、サードパーティ・アプリケーション、外部ウェブサイト)、他の適切なユーザもしくはエンティティ、またはそれらの任意の組み合わせに対して規定され得る。本開示は、特定の様式で特定のプライバシー設定を使用することを説明しているが、本開示は、任意の適切な様式で任意の適切なプライバシー設定を使用することを企図している。
特定の実施形態では、1つまたは複数のサーバは、プライバシー設定を強制するための許可/プライバシー・サーバであってよい。データ・ストア内に記憶された特定のオブジェクトに関するユーザ(または他のエンティティ)からの要求に応答して、ソーシャル・ネットワーキング・システム702は、オブジェクトのためのデータ・ストアに対して要求を送信し得る。要求は、要求に関連付けられているユーザを識別し得、許可サーバが、オブジェクトに関連付けられているプライバシー設定に基づいて、ユーザがオブジェクトにアクセスすることを許可されていることを決定した場合、ユーザ(またはユーザのクライアント・システム706)のみに対して送信され得る。要求元ユーザが、オブジェクトにアクセスすることが許可されていない場合、許可サーバは、要求されたオブジェクトがデータ・ストアから取り出されるのを防止し得る、または、要求されたオブジェクトがユーザに対して送信されるのを防止し得る。検索クエリ・コンテキストでは、クエリ元ユーザが、オブジェクトにアクセスすることが許可されている場合、そのオブジェクトは、検索結果としてのみ生成され得る。言い換えれば、オブジェクトは、クエリ元ユーザに見える可視性を有さなければならない。オブジェクトが、ユーザに見えない可視性を有する場合、オブジェクトは検索結果から除外され得る。本開示は、特定の様式でプライバシー設定を強制することを説明しているが、本開示は、任意の適切な様式でプライバシー設定を強制することを企図したものである。
上記明細は、特定の例示的な実施形態を参照して記載されている。種々実施形態および本開示の様相は、本明細書に記載の詳細を参照して記述され、添付の図面は、これら種々の実施形態を示している。上記説明および図面は、本発明の一例に過ぎず、本発明を制限するものと解釈されるべきではない。多くの具体的詳細の記述によって、本発明の種々の実施形態の十分な理解が得られる。
追加または代替の実施形態は、その主旨または本質的特性から逸脱することなく、他の特定の形態で具現化されるようになっていてもよい。上記実施形態は、あらゆる点において一例に過ぎず、何ら限定的なものではないと解釈されるべきである。したがって、本開示の範囲は、上記説明ではなく、添付の特許請求の範囲によって指定される。特許請求の範囲と同等の意味および範囲に含まれるすべての変更は、上記請求の範囲に包含されるものとする。