本開示の実施形態は、支払を送信および受信することのスピードおよび信頼性を増加させる統合されたメッセージおよび支払システムを提供する。特に、1つまたは複数の実施形態は、電子支払システムと電子メッセージング・システムとを統合する統合されたメッセージおよび支払システムを提供する。統合されたメッセージおよび支払システムは、2人以上のユーザがメッセージならびに電子支払を送信および受信することを可能にする。たとえば、統合されたメッセージおよび支払システムは、共同ユーザとの電子メッセージの交換も可能にするメッセージング・インターフェースを介してユーザが電子支払を共同ユーザに送信することを可能にする。
電子支払システムとメッセージング・システムを統合することによって、システムは、会話のフローの中で電子支払を送信および受信できることをユーザに提供する。したがって、システムは、ユーザが支払取引について通信し、電子支払に専用の別個のアプリケーションを開く必要もなく取引を行うことを可能にする。システムの1つまたは複数の実施形態によって提供される、メッセージの交換中にシームレスに支払を送信することの容易さおよび効率の上昇は、電子支払の使用の増加および電子支払に対する満足をもたらす。
統合されたメッセージおよび支払システムは、支払取引の処理におけるスピードを提供することができる。具体的には、統合されたメッセージおよび支払システムは、ユーザ間の支払取引を処理し、異なるキューを使用して同じアプリケーション内でメッセージを交換することができる。たとえば、システムは、支払キューでは支払取引を、メッセージ・キューでは支払取引を示すメッセージを送信および受信することができる。支払およびメッセージを処理するために個別のキューを提供することによって、システムは、支払およびメッセージング情報を並行して処理することで、メッセージング・アプリケーション内で支払取引およびメッセージを迅速に処理することができる。
加えて、システムは、ユーザごとに個別の支払/メッセージ・キューのペアを提供し得る。特に、システムは各ユーザの個別の支払キューおよび個別のメッセージ・キューを関連付けて、メッセージング・アプリケーション内で支払取引に関連するメッセージを送信および受信する。たとえば、システムは、システムが更新を見失わず、更新をユーザのデバイスに適時にプッシュできるように、特定のユーザに対応するキューを使用して、支払およびメッセージの両方または一方の更新(たとえば、支払の開始、取消、もしくは修正)を処理することができる。また、各ユーザのデバイスで支払/メッセージを更新するためのユーザ固有のキューは、たとえば、ユーザが一時的にシステムへの接続を失う場合でも、メッセージング・アプリケーションの信頼性を改善することもできる。
メッセージ・キューおよび支払キューのそれぞれは、シーケンスIDに従ってメッセージおよび更新を記憶することができる。したがって、メッセージ・キューおよび支払キューのそれぞれは、シーケンスIDによって順序付けられた取引またはメッセージの履歴の一部を含むことができる。メッセージ・スレッドまたは支払取引は、任意選択でリーセンシーによって順序付けされるので、スレッドまたは取引が変わる場合、シーケンスIDを更新することによってスレッドまたは取引はそれぞれのキューの一番上に移動することができる。このように、スレッドまたは取引に対する変更または更新が生じると、キューは更新/変更のシーケンスIDを増加させることができる。クライアント・デバイスが最初にメッセージまたは支払取引確認を受信する場合、クライアント・デバイスはシーケンスIDを受信することができる。さらにその後の時点で、クライアント・デバイスがキューに接続すると、クライアント・デバイスはシーケンスIDを提供することができる。受信したシーケンスIDに基づいて、キューは、スレッド/取引のどの部分をクライアント・デバイスが受信したかを把握することができる。さらに、キューは、そのシーケンスID以降に起こった変更/更新のすべてを提供することができる。このように、クライアント・デバイスが切断してからキューに再接続したとしても、プロセスを繰り返すことができる。
1つまたは複数の実施形態では、統合されたメッセージおよび支払システムは、メッセージング・スレッド内で関係する支払およびメッセージ(たとえば、支払取引を示すメッセージ)を識別することができる。具体的には、システムは、システムが関係する支払およびメッセージをマッピングすることを可能にする一意の識別子を、支払およびメッセージの両方に割り当てることができる。対応する一意の識別子を使用して、関係する支払およびメッセージをまとめてマッピングすることにより、システムは、支払についての更新情報の受信に応答して、支払の更新および対応するメッセージを提供することができる。したがって、システムは、送信者が受信者に支払を送信したことを受信者に通知するメッセージを、メッセージ・キューを介して受信者クライアント・デバイスに送信することができる。支払のステータスが変わると、支払キューは更新を受信者クライアント・デバイスに送信することができる。受信者クライアント・デバイスは、メッセージ・キューから以前に受信したメッセージを更新することができる。こうして、システムは、メッセージとともに支払が送信されるときを受信者に通知し、さらに支払のステータスが変わるとメッセージのステータスを更新することができる。
1つまたは複数の実施形態では、システムは、メッセージング・スレッド内のメッセージに関連付けられているプッシュ通知または支払取引の更新を提供することができる。特に、システムは、対応する支払キューを介して、各ユーザのクライアント・デバイスに支払ステータス更新をプッシュすることができる。たとえば、システムがある特定の支払取引についてのステータス更新(たとえば、資金移動の成功を示す更新)を受信する場合、システムは、送信者および受信者のクライアント・デバイスにシステムからの更新を要求するよう要求しなくても、送信者および受信者のクライアント・デバイスのそれぞれに更新をプッシュすることができる。このように、ユーザは、メッセージング・スレッド内でリアルタイムで支払ステータスの更新を見ることができる。
本明細書で使用されるとき、「メッセージ(messageまたはmessages)」という用語は、2つ以上のコンピューティング・デバイス間の任意の形の電子通信に及ぶ。メッセージは、テキスト・メッセージ、フォト、ステッカーまたは他のアイコン、映像、音声記録、音楽、音声メールなどを含む。1つまたは複数の実施形態では、メッセージは、リアルタイムで、またはほぼリアルタイムで通信されるインスタント・メッセージである。しかしながら、代替実施形態では、メッセージは、SMSメッセージ、電子メール、またはソーシャル・ネットワークの投稿もしくはコメントなどの電子通信のうちからのいずれかに及ぶ。
加えて、「支払要求」という用語は、システムが支払取引を開始することを可能にする支払情報を含むメッセージに及ぶ。たとえば、支払要求は、支払額、送信者、受信者、支払方法、システムが支払方法をどのように処理するかを示すフォーマット化、オフライン参照、ならびにユーザによりメッセージのために提供されたテキストなどの追加の情報を含むデータ・パッケージを含む。
本明細書で使用されるとき、「支払取引」という用語は、2つ以上のエンティティ間で通貨またはクレジットを交換する任意のタイプの電子取引に及ぶ。たとえば、支払取引は、統合されたメッセージおよび支払システムの2人のユーザ間の金融電子取引とする。別の例では、支払取引は、ユーザと金融機関または他の複数人からなるエンティティとの間の金融電子取引とする。加えて、支払取引は、金銭贈与、借金の支払、ローンの資金供給、品物および/もしくはサービスの購入を考慮した支払、または他の任意のタイプの金銭移動を表す。加えて、支払取引は、1つまたは複数の通貨でなされ、たとえば為替レートに基づいて、1つまたは複数の追加の通貨に変換されることが可能である。
本明細書で使用されるとき、「口座」または「支払クレデンシャル」という用語は、ユーザのデビット・カード口座、銀行口座、クレジット・カード口座、メッセージング口座、ギフト・カード、または金銭が差し引かれ得るもしくは金銭が入金され得る他の任意の口座に及ぶ。上記の用語ならびに追加の用語の意味は、図に関する以下の開示を考慮すると、より明らかになるであろう。
本明細書で使用されるとき、「キュー」という用語は、メッセージング・アプリケーションのユーザに送信されるデータ、およびメッセージング・アプリケーションのユーザから受信するデータを一時的に記憶する通信媒体に及ぶ。たとえば、キューは、クライアント・デバイスから受信したデータおよびクライアント・デバイスに送信することになるデータの両方または一方を一時的に記憶することができる。特に、キューは、支払取引およびメッセージに関連付けられている永続的データを記憶するデータベースとは別にすることができ、そのデータベースと通信することができる。キューは、新しいメッセージ・データまたはメッセージ更新データをデータ到着順に(たとえば、シーケンスIDにより)、支払取引もしくはメッセージの対応識別子に従って、または他の適したタイプの記憶方法に従って記憶することができる。
図1は、1つまたは複数の実施形態による統合されたメッセージングおよび支払システム100を例示する概略図である。システム100の概要が、図1に関係して説明される。その後、システム100の構成要素およびプロセスのより詳細な説明が、残りの図に関係して提供される。
図1によって例示されるように、システム100は、ユーザ102a、ユーザ102b、および任意の数のユーザ102nまで(まとめて「ユーザ」)が、対応する数のクライアント・デバイス104a、104b、104nを使用して対話することを可能にする。図1でさらに例示されるように、クライアント・デバイスは、ネットワーク105を介してサーバ・デバイス108と通信する。加えて、システム100は、ネットワーク105を介してサーバ・デバイス108と通信可能に結合された支払ネットワーク115を含む。図1は、ユーザ、クライアント・デバイス、ネットワーク105、サーバ・デバイス108、および支払ネットワーク115の特定の構成を例示しているが、さまざまな追加の構成が可能である。たとえば、クライアント・デバイス104a、104b、104nは、ネットワーク105をバイパスしてサーバ・デバイス108と直接的に通信し得る。
上記で簡単に言及されたように、図1は、ユーザ102aおよびユーザ102bが、ク
ライアント・デバイス104aおよび104bをそれぞれ使用して、サーバ・デバイス108を介して互いと通信することを示す。たとえば、ユーザ102aとユーザ102bは、テキスト、デジタル・コンテンツ(たとえば、オーディオ、画像、映像)、ロケーション情報、ならびに他の形のデータおよび情報を含む電子メッセージを交換する。たとえば、ユーザ102aは、クライアント・デバイス104aを使用して、ユーザ102bのために意図されたメッセージを構築する。メッセージを構築した後、ユーザ102aは、ユーザ102bのために意図されたメッセージを、ネットワーク105を介してサーバ・デバイス108に対して送信することを、クライアント・デバイス104aに行わせる。サーバ・デバイス108は、意図された受信者としてユーザ102bを識別し、ユーザ102bに関連付けられているクライアント・デバイス104bに対してメッセージを転送する。
ユーザが電子通信を交換することを可能にすることに加えて、システム100は、ユーザが、互いに対しておよび互いから金銭支払を送信および受信することを可能にする。1つまたは複数の実施形態では、システム100は、ユーザが支払メッセージを定義し、別のユーザに対して送信することを可能にする。たとえば、システム100は、ユーザ102aが、サーバ・デバイス108および支払ネットワーク115を介してユーザ102bに対して支払を送信することを可能にする。同様に、ユーザ102bは、支払の告知を受信し、支払を受け入れるまたは拒否する。以下でより詳細に説明されるように、サーバ・デバイス108は、ユーザ(すなわち、ユーザの口座)間の支払を促進する取引を協調させるために、支払ネットワーク115と通信する。
システム100は、ユーザ102aと102bとの間の支払を促進するが、システム100は、ユーザのグループなどの3人以上のユーザ間の支払を促進することもできる。たとえば、ユーザ102aは、ユーザ102b、102nに対して支払を送信し得る。1つまたは複数の実施形態では、以下でさらに詳細に論じられるように、ユーザ102aは、同じ支払取引の中で複数のユーザに対して支払を送信する。そのうえ、1つまたは複数の実施形態では、ユーザのグループは、他のグループもしくは個々のユーザに対してまたはそれからのどちらかで、システム100を通して支払を送信および/または受信できることが提供され得る。
図1は、ユーザを人として例示しているが、ユーザは、会社、政府、または他のエンティティなどの他のエンティティを含み得る。たとえば、ユーザ102aは、システム100を使用して、サービスまたは製品のために会社に対して支払を提供する。たとえば、ユーザ102aは、システム100を介して会社と通信し、その会社から製品またはサービスの購入をすることを最終的に決める。次いで、同じシステム100を使用して、ユーザ102bは、その会社に対して製品またはサービスについて支払を送信する。同様に、会社は、個人エンティティであろうと会社エンティティであろうと、他の会社またはベンダーに対して支払を送信し得る。
上記で言及されたように、および図1が例示するように、ユーザ102aおよび102bはそれぞれ、クライアント・デバイス104aおよび104bと対話する。クライアント・デバイスの例としては、モバイル・デバイス(たとえば、スマートフォン、タブレット)、ラップトップ、デスクトップ、または他の任意のタイプのコンピューティング・デバイスなどのコンピューティング・デバイスがある。図8および対応する説明は、コンピューティング・デバイスに関する追加の情報を提供する。さらに、および上記で言及されたように、クライアント・デバイスは、ネットワーク105を通して通信する。1つまたは複数の実施形態では、ネットワーク105は、インターネットまたはワールド・ワイド・ウェブを含む。しかしながら、以下で図8に関してさらに説明されるように、ネットワークは、さまざまな通信技術およびプロトコルを使用する1つまたは複数のプライベート
・ネットワークおよび/またはパブリック・ネットワークを含む。
上記で簡単に論じられたように、システム100は、ユーザ間での支払の送信および受信を協調させる。たとえば、ユーザ102aは、支払要求を構築し、ユーザ102bに対して送信する。たとえば、ユーザ102aは、支払方法(たとえば、送信者ユーザ102aのクレジット・カード、デビット・カード、口座残高)、支払額、支払通貨、支払の説明、および/またはさまざまな他の支払詳細を定義するために、クライアント・デバイス104aを介して入力を提供する。
ユーザ102aの観点から、たとえば、送信者ユーザ102aは、通信メッセージ(たとえば、テキスト)を送信するのと同様に支払要求を構築し、送信する。たとえば、1つまたは複数の実施形態では、ユーザ102aは、ユーザ102bに対して送信することをユーザ102aが望む支払の支払額を含む支払要求を構築する。支払要求を構築した後、送信者ユーザ102aは、次いで、サーバ・デバイスを介してユーザ102bに対して支払要求を送信する。
1つまたは複数の実施形態では、システム100は、支払ネットワーク115を介して送信者ユーザ102aの1つまたは複数の口座と受信者ユーザ102bの1つまたは複数の口座との間の取引を協調させる。たとえば、送信者ユーザ102aから支払要求を受信したことに応答して、サーバ・デバイス108は、支払ネットワーク115内の1つまたは複数の構成要素を使用して支払を処理するために取引情報を通信する。代替的に、またはこれに加えて、システム100は、1つまたは複数のユーザ口座を直接的に維持することができ、そのため、システム100は、取引、または取引の一部分を協調させる。
図1に例示されるように、支払ネットワーク115は、支払ゲートウェイ・システム118と、支払処理システム120と、カード・ネットワーク・システム122と、発行(イシュアー)銀行システム124とを含む。しかしながら、代替実施形態では、支払ネットワーク115は、システム100の特定の実施形態に応じて、より多いまたはより少ない構成要素を含む。
1つまたは複数の実施形態では、たとえば、システム100は、取引を許可および処理するために、支払ネットワーク115と通信する。たとえば、図1に示されるように、システム100は、支払ゲートウェイ・システム118に対して取引を送信する。支払ゲートウェイ・システム118が取引を受信すると、支払ゲートウェイ・システム118は、支払受信者ユーザのアクワイアラ(acquiring)銀行によって使用されるプロセッサ(たとえば、支払処理システム120)に対して取引を送信する。支払の方法(たとえば、送信者ユーザの口座)に基づいて、支払処理システム120は、適切なカード・ネットワーク・システム122に対して取引を送る。多くの場合、次いで、カード・ネットワーク・システム122は、発行銀行システム124に対して取引を送信する。
発行銀行システム124は、取引を受け入れるまたは拒否するのどちらかであり、その判断をカード・ネットワーク・システム122に対して返送する。次いで、カード・ネットワーク122は、その判断を支払処理システム120に対して送信する。次いで、支払処理システム120は、その判断を支払ゲートウェイ・システム118に対して転送することができ、1つまたは複数の実施形態では、支払ゲートウェイ・システム118は、取引および判断に関係する詳細を維持する。支払処理システム120は、判断をシステム100に対しても送信する。
次いで、アクワイアラ銀行は、預り額を充当するように資金供給要求を支払処理システム120に対して送信することができ、支払処理システム120は、その資金供給要求を
、適切なカード・ネットワーク・システム122に対して渡す。次いで、カード・ネットワーク・システム122は、発行銀行システム124に対して資金供給要求を送信する。発行銀行システム124は、送信者ユーザの口座に対して取引を記し、カード・ネットワーク・システム122に対して資金の放出を渡すことができ、次いで、資金は、支払処理システム120に、次いでアクワイアラ銀行に対して渡される。
1つまたは複数の実施形態によれば、ユーザ102aとユーザ102bとの間の支払取引において支払を許可および受信または許可もしくは受信した後、システム100は、ユーザ102aからユーザ102bに資金を移動することができる。具体的には、システム100は、支払用の資金をユーザ102bの支払口座(たとえば、デビット)へ入金する取引を促進することができる。たとえば、システム100は、ユーザ102bのデビット口座への資金の入金のために移動を促進することができる(たとえば、自動支払処理装置(ACH:Automated Clearing House)、EFT(Electronic Fund Transfer:電子資金移動)または他のデビット・カード移動方法を使用して)。クライアント・デバイス104aは、対応する支払方法に応じて支払要求をフォーマット化し得る。
図2は、システム100の追加の詳細を例示する概略図を例示する。示されるように、システム100は、クライアント・デバイス104aと、104bと、サーバ・デバイス108と、支払ネットワーク115とを含む。一般に、システム100は、クライアント・デバイス104aのユーザが、クライアント・デバイス104bの受信者に対して支払を送信する、またはクライアント・デバイス104bの受信者から支払を受信することを可能にする。加えて、システムは、クライアント・デバイス104aのユーザが、クライアント・デバイス104bのユーザとメッセージを交換することを可能にする。
8 示されるように、システム100は、クライアント・デバイス104a、104b、およびサーバ・デバイス108上にさまざまな構成要素を含む。たとえば、図2は、クライアント・デバイス104a、104bが各々、さまざまな構成要素を有するクライアント・アプリケーション202(たとえば、メッセージング・アプリケーション)を含むことができ、サーバ・デバイス108が、さまざまな構成要素を有するネットワーク・アプリケーション204、支払エンジン206、および、キュー・マネージャ246を含むことを例示する。以下でより詳細に説明されるように、クライアント・アプリケーション202、ネットワーク・アプリケーション204、および支払エンジン206の構成要素は、ユーザが支払を送信し、支払を受信し、メッセージを交換することを可能にするために協働する。
示されるように、クライアント・アプリケーション202は、ユーザ・インターフェース・マネージャ208と、ユーザ入力ディテクタ210と、メッセージング・ハンドラ212と、メッセージ・アナライザ214と、ロケーション・ディテクタ216と、支払要求ジェネレータ218と、データ・マネージャ220とを含む。図2は、ネットワーク・アプリケーション204が、通信マネージャ230と、ステータス・マネージャ232と、メッセージ・データベース234と、プロファイル・データベース236と、リスク計算機238とを含むことを例示する。以下で説明されるように、ネットワーク・アプリケーション204は、任意選択で、ソーシャルグラフ250も含むことができ、ソーシャルグラフ250は、ノード情報252と、エッジ情報254とを含む。図2はまた、支払エンジン206が、支払マネージャ240と、取引データベース242と、口座マネージャ244とを含むことを例示する。構成要素208〜220、230〜246、252、および254の各々は、任意の適切な通信技術を使用して互いと通信する。構成要素208〜220、230〜246、252、および254は、図2では別個であるように示されているが、構成要素208〜220、230〜246、252、および254のいずれも、単一の設備またはモジュールなど、より少ない構成要素へと結合されてもよいし、特定
の実施形態に役立ち得るより多くの構成要素に分割されてもよいことが認識されよう。図2は、一定の構成要素をクライアント・アプリケーション202の一部として、および他の構成要素をネットワーク・アプリケーション204の一部として説明しているが、本開示はそのように限定されない。代替実施形態では、クライアント・アプリケーション202の一部として示される構成要素のうちの1つまたは複数はネットワーク・アプリケーション204の一部とする、またはその逆にする。同様に、ネットワーク・アプリケーション204の一部として示される1つまたは複数の構成要素は支払エンジン206の一部とする、またはその逆にする。
構成要素208〜220、230〜246、252、および254は、ソフトウェア、ハードウェア、または両方を備える。たとえば、構成要素208〜220、230〜246、252、および254は、非一時的コンピュータ可読記憶媒体上に記憶され、クライアント・デバイス104a、104b、またはサーバ・デバイス108の少なくとも1つのプロセッサによって実行可能なコンピュータ命令を備える。少なくとも1つのプロセッサによって実行されるとき、コンピュータ実行可能命令は、本明細書で説明される方法およびプロセスを実行することをクライアント・デバイス200a、200bまたはサーバ・デバイス108に行わせる。代替的に、構成要素208〜220、230〜246、252、および254は、一定の機能または機能のグループを実行するために、特殊目的処理デバイスなどのハードウェアを備える。加えて、または代替的に、構成要素208〜220、230〜246、252、および254は、コンピュータ実行可能命令の組み合わせと、ハードウェアとを備える。
1つまたは複数の実施形態では、クライアント・アプリケーション202は、クライアント・デバイス104a、104bのうちの1つにインストールされたネイティブ・アプリケーションとする。たとえば、クライアント・アプリケーション202は、スマートフォンまたはタブレットなどのモバイル・デバイス上にインストールおよび実行されるモバイル・アプリケーションであってよい。代替的に、クライアント・アプリケーション202は、デスクトップ・アプリケーション、ウィジェット、または他の形のネイティブ・コンピュータ・プログラムとする。代替的に、クライアント・アプリケーション202は、クライアント・デバイスがアクセスする遠隔アプリケーションであってよい。たとえば、クライアント・アプリケーション202は、クライアント・デバイスのウェブ・ブラウザ内で実行されるウェブ・アプリケーションであってよい。
上記で言及されたように、および図2に示されるように、クライアント・アプリケーション202は、ユーザ・インターフェース・マネージャ208を含む。ユーザ・インターフェース・マネージャ208は、ユーザがメッセージを構築する、見る、および送信する、ならびに支払を送信することを可能にするグラフィカル・ユーザ・インターフェース(または単に「ユーザ・インターフェース」)を提供、管理、および/または制御する。たとえば、ユーザ・インターフェース・マネージャ208は、インスタント・メッセージなどのメッセージの構築を促進するユーザ・インターフェースを提供する。同様に、ユーザ・インターフェース・マネージャ208は、他のユーザから受信されたメッセージを表示するユーザ・インターフェースを提供する。
より詳細には、ユーザ・インターフェース・マネージャ208は、(たとえば、クライアント・デバイス104a、104bに関連付けられている表示デバイスによって)ユーザ・インターフェースの表示を促進し得る。たとえば、ユーザ・インターフェースは、ユーザがメッセージまたは支払を構築、送信、および受信することを可能にする複数のグラフィカル・コンポーネント、グラフィカル・オブジェクト、および/またはグラフィカル要素から構成され得る。より詳細には、ユーザ・インターフェース・マネージャ208は、ユーザがメッセージング・スレッドを見ることを可能にするグラフィカル・コンポーネ
ント、グラフィカル・オブジェクト、および/またはグラフィカル要素のグループを表示するようにクライアント・デバイス104a、104bに指示し得る。
加えて、ユーザ・インターフェース・マネージャ208は、メッセージを構築および送信するためのユーザ入力を促進する1つまたは複数のグラフィカル・オブジェクトまたはグラフィカル要素を表示するようにクライアント・デバイス104a、104bに指示し得る。例示するために、ユーザ・インターフェース・マネージャ208は、ユーザがクライアント・アプリケーション202に対してユーザ入力を提供することを可能にするユーザ・インターフェースを提供し得る。たとえば、ユーザ・インターフェース・マネージャ208は、ユーザが1つまたは複数のタイプのコンテンツをメッセージに入力することを可能にする1つまたは複数のユーザ・インターフェースを提供する。本明細書で使用されるとき、「コンテンツ」は、メッセージの一部として含まれることになる任意のデータまたは情報に及ぶ。たとえば、「コンテンツ」という用語は、本明細書では、テキスト、画像、デジタル・メディア、ファイル、ロケーション情報、支払情報、およびメッセージの一部として含まれる他の任意のデータを一般的に説明するために使用される。
上記で論じられたように、メッセージ内に含まれるコンテンツの一例は、送信者ユーザから受信者ユーザへの支払である。1つまたは複数の実施形態では、ユーザ・インターフェース・マネージャ208は、ユーザが容易かつ効率的に支払を定義し、1つまたは複数の他のユーザに対して送信することを可能にするためのユーザ・インターフェースを提供する。たとえば、ユーザ・インターフェース・マネージャ208は、ユーザが支払を作成および送信するために対話する、1つまたは複数の入力フィールドおよび/または1つまたは複数のユーザ選択可能要素を提供する。
前述の内容に加えて、ユーザ・インターフェース・マネージャ208は、クライアント・アプリケーション202の1つまたは複数の構成要素から命令または通信を受信して、更新されたメッセージ情報、更新された支払のステータス、および/または更新された利用可能なアクションを表示する。ユーザ・インターフェース・マネージャ208は、取引プロセス内の特定の時点において特定のオプションが利用可能であるか否かに基づいて、利用可能なオプションを更新する。以下で論じられるように、ユーザ・インターフェース・マネージャ208は、送信者ステータス・メッセージおよび/または受信機ステータス・メッセージ内に、さまざまな他の選択可能アクションを追加、削除、および/または更新する。
ユーザ・インターフェース・マネージャ208は、電子通信またはメッセージ内に含まれることになるテキストまたは他のデータの入力を促進する。たとえば、ユーザ・インターフェース・マネージャ208は、キーボードを含むユーザ・インターフェースを提供する。ユーザは、電子通信内に含まれることになるテキストを選択するために1つまたは複数のタッチ・ジェスチャーを使用してキーボードと対話する。たとえば、ユーザは、キーボードを使用して、メッセージを入力し、電子通信内で1つまたは複数の他のコンテンツ・アイテムに付随させるおよび/またはこれを説明する。テキストに加えて、キーボード・インターフェースを含むユーザ・インターフェースは、さまざまな他の文字、シンボル、アイコン、または他の文字情報の入力を促進する。
図2でさらに例示されるように、クライアント・アプリケーション202は、ユーザ入力ディテクタ210を含む。1つまたは複数の実施形態では、ユーザ入力ディテクタ210は、任意の適切な様式でユーザ入力を検出、受信、および/または促進する。いくつかの例では、ユーザ入力ディテクタ210は、ユーザ・インターフェースに関する1つまたは複数のユーザ対話を検出する。本明細書で参照されるように、「ユーザ対話」は、1つまたは複数の入力デバイスによってユーザから受信される、単一の対話、または対話の組
み合わせを意味する。
たとえば、ユーザ入力ディテクタ210は、キーボード、マウス、タッチ・パッド、タッチスクリーン、および/または他の任意の入力デバイスからのユーザ対話を検出する。クライアント・デバイス104a、104bがタッチスクリーンを含む場合には、ユーザ入力ディテクタ210は、ユーザ対話を形成するユーザからの1つまたは複数のタッチ・ジェスチャー(たとえば、スワイプ・ジェスチャー、タップ・ジェスチャー、ピンチ・ジェスチャー、または逆ピンチ・ジェスチャー)を検出する。いくつかの例では、ユーザは、ユーザ・インターフェースの1つまたは複数のグラフィカル・オブジェクトまたはグラフィカル要素に関係する、および/またはそれに宛てられた、タッチ・ジェスチャーを提供する。
ユーザ入力ディテクタ210は、加えて、または代替的に、ユーザ対話を表すデータを受信し得る。たとえば、ユーザ入力ディテクタ210は、ユーザからの1つもしくは複数のユーザ構成可能パラメータ、ユーザからの1つもしくは複数のユーザ・コマンド、および/または他の任意の適切なユーザ入力を受信し得る。ユーザ入力ディテクタ210は、クライアント・アプリケーション202の1つもしくは複数の構成要素から、クライアント・デバイス104a、104b上のストレージから、または1つもしくは複数の遠隔ロケーション(たとえば、ネットワーク・アプリケーション204)から、入力データを受信し得る。
クライアント・アプリケーション202は、ユーザ入力ディテクタ210がユーザ入力を検出したおよび/または他のデータを受信したことに応答して、1つまたは複数の機能を実行する。一般に、ユーザは、ユーザ入力ディテクタ210が検出する1つまたは複数のユーザ入力を提供することによって、クライアント・アプリケーション202を制御する、その中をナビゲートする、そうでなければ、それを使用する。たとえば、ユーザ入力ディテクタ210がユーザ入力を検出したことに応答して、クライアント・アプリケーション202の1つまたは複数の構成要素は、ユーザが、メッセージの受信者を選択する、メッセージを構築する、メッセージ内に含むコンテンツを選択する、および/または受信者に対してメッセージを送信することを可能にする。加えて、ユーザ入力ディテクタ210がユーザ入力を検出したことに応答して、クライアント・アプリケーション202の1つまたは複数の構成要素は、ユーザが1つまたは複数のユーザ・インターフェースを通してナビゲートして、受信されたメッセージ、連絡先などをレビューすることを可能にする。
1つまたは複数の実施形態では、ユーザ入力ディテクタ210が1つまたは複数のユーザ入力を検出したことに応答して、クライアント・アプリケーション202は、ユーザが支払を作成して、1つまたは複数の他のユーザに対して送信することを可能にする。たとえば、支払を送信したいユーザは、ユーザ・インターフェース内のメニュー上に提供された支払要素と対話する。支払要素とのユーザ対話を検出すると、ユーザ入力ディテクタ210は、支払を作成するためのユーザ・インターフェースを提供することをユーザ・インターフェース・マネージャ208に行わせる。そのため、以下でさらに説明されるように、ユーザ入力ディテクタ210が1つまたは複数のユーザ入力を検出したことに応答して、クライアント・アプリケーション202は、ユーザが、別のユーザに対して送信されることになる支払を定義するカスタマイズされた支払を作成することを可能にする。
図2でさらに例示されるように、クライアント・アプリケーション202は、クライアント・アプリケーション202に対して提供されたまたはそれから送信されたメッセージを管理するメッセージ・ハンドラ210を含む。たとえば、メッセージ・ハンドラ210は、ユーザ・インターフェース・マネージャ208およびユーザ入力ディテクタ210と
対話して、クライアント・アプリケーション202を使用したメッセージの送信および受信を協調させる。メッセージ・ハンドラ210は、複数の参加者間での電子メッセージング・セッションの間にネットワーク・アプリケーション204に対するおよびそれからのメッセージの送信および受信を指示し得る。メッセージ・ハンドラ210は、着信メッセージおよび発信メッセージを編成し、メッセージを表示するようにユーザ・インターフェース・マネージャ208に指示し得る。
1つまたは複数の実施形態では、メッセージ・ハンドラ210は、クライアント・アプリケーション202を介してデータを受信および送信することを促進する。特に、メッセージ・ハンドラ210は、メッセージを送信および受信することを促進する。たとえば、本明細書で説明されるように、メッセージ・ハンドラ210は、メッセージ内に含まれることになるコンテンツをパッケージ化し、適切な通信プロトコルを使用して1つまたは複数の通信チャネルを通して送信可能な任意の必要な形でメッセージをフォーマットする。同様に、メッセージ・ハンドラ210は、クライアント・デバイス204が他のユーザから受信したメッセージを処理する。
クライアント・アプリケーション202に通信機能を提供することに加えて、メッセージ・ハンドラ210は、メッセージ・データへのアクセスを提供する。たとえば、メッセージ・ハンドラ210は、含めることになる連絡先のリスト、または連絡先の1つまたは複数のグループ、およびメッセージに対する受信者を表すデータにアクセスする。例示するために、メッセージ・ハンドラ210は、ユーザが、連絡先リストを検索およびブラウズし、メッセージの受信者として含むことになる個々の連絡先または連絡先のグループを最終的に選択することを可能にするために、連絡先リストを表すデータを取得し、ユーザ・インターフェース・マネージャ208に対して提供する。1つまたは複数の実施形態では、ソーシャル・ネットワーキング・システムは、遠隔連絡先リスト・データ(たとえば、「友達リスト」)を維持することができ、メッセージ・ハンドラ210は、クライアント・アプリケーション202内で使用するためにソーシャル・ネットワーキング・システム上の連絡先リスト・データにアクセスする。
メッセージ・ハンドラ210は、クライアント・アプリケーション202がメッセージを構築、送信、および受信するために使用する他のローカル・データまたは遠隔データへのアクセスを提供することもできる。たとえば、メッセージ・ハンドラ210は、ユーザがメッセージ内に含むファイル、画像、オーディオ、映像、および他のコンテンツへのアクセスを取得する。そのうえ、メッセージ・ハンドラ210は、メッセージ内に含めるコンテンツをキャプチャまたは作成する能力をユーザに提供するように、送信者クライアント・デバイス204の1つまたは複数の機能へのアクセスを提供する。たとえば、メッセージ・ハンドラ210は、カメラ、マイクロホン、またはユーザがコンテンツをキャプチャしてメッセージ内に含めることを可能にする他の機能を起動する。
加えて、メッセージ・ハンドラ210は、支払の送信を促進することができる。特に、図2は、クライアント・アプリケーション202が、支払プロセス/取引を開始するためにメッセージ・ハンドラ210がネットワーク・アプリケーション204に対して送信可能な支払要求を生成することができる支払要求ジェネレータ218を含むことができることを例示する。たとえば、送信者がユーザ・インターフェース上で支払要素を選択すると、支払要求ジェネレータ218は、送信者から受信した支払情報を含むデータ・パッケージを作成することができる。支払要求は、支払取引の一部として送信されることになる金銭の額の標識ならびにネットワーク・アプリケーションが支払取引を実行することを可能にするために必要な任意の情報を含むことができる。1つまたは複数の実施形態によれば、メッセージ・ハンドラ210は、以下さらに詳しく説明するように、ネットワーク・アプリケーション204と直接および/またはキュー・マネージャ246を介して通信する
ことができる。
1つまたは複数の実施形態では、支払要求ジェネレータ218は、支払額、1つまたは複数の送信者識別子、1つまたは複数の受信者識別子、1つまたは複数の支払方法もしくは送信者口座情報、許可情報、通貨情報、メッセージもしくは支払説明、および/または送信者から受信者への支払を促進するために有用であり得る他の任意のデータを含むデータ・パッケージを作成することができる。代替的に、支払要求は、受信者、支払額、および送信者ユーザのクライアント・デバイス104aが送信および受信データの不整合を解決することが可能なオフライン・リファレンスを識別することができる。支払要求ジェネレータ218は、ネットワーク・アプリケーション204に対して送信するために、支払要求(たとえば、支払情報を含むデータ・パッケージ)をメッセージ・ハンドラ210に対して渡すことができる。
支払要求ジェネレータ218はまた、さまざまなソースから支払情報を取得することもできる。たとえば、支払要求ジェネレータ218は、ユーザ入力ディテクタ210を介して送信者から直接的に支払情報を取得することができる。加えて、または代替的に、支払要求ジェネレータは、データ・マネージャ220によってクライアント・デバイス104a、104b上で維持される支払情報へのアクセスを得ることができる。たとえば、クライアント・アプリケーション202は、送信者が、さまざまな支払方法を入力および保存する、ならびに/またはデフォルト支払方法、デフォルト通貨を識別する、ならびに他の形で支払を送信および/もしくは受信することに関係する他のユーザのプリファレンスを規定することを可能にすることができる。
支払要求ジェネレータ218はまた、クライアント・アプリケーション202を介したユーザからの入力に基づいたメッセージのフォーマット化を促進し得る。具体的には、支払要求ジェネレータ218は、対応する支払方法に応じて支払要求をフォーマットすることを促進することができる。たとえば、支払要求ジェネレータ218は、ユーザがデビット取引において共同ユーザに支払う要求と、それに応じて共同ユーザに対する支払要求のフォーマットを入力したことを決定することができる。1つまたは複数の例では、支払要求ジェネレータ218は、支払要求が、支払取引に関連付けられている支払情報もしくは支払クレデンシャルに基づいて、または送信ユーザによる具体的な選択に基づいて、当日処理のためにフォーマットされるべきであることを決定することができる。
1つまたは複数の実施形態では、支払要求ジェネレータ218は、支払要求内のトークンにアクセスし、これを提供することができる。トークンは、ネットワーク・アプリケーション204によって記憶された支払クレデンシャルを参照することができる。たとえば、支払要求ジェネレータ218は、支払要求内にまたはこれとともに含めるトークンを取り出すことができ、支払要求は、ネットワーク・アプリケーション204によって記憶された支払クレデンシャルを使用して支払をすることが許可されるとして送信者および送信者クライアント・デバイス104aの両方または一方を検証する。
上記で言及されたように、クライアント・アプリケーション202は、メッセージ・アナライザ214をさらに含む。メッセージ・アナライザ214は、潜在的なイベントのためにクライアント・アプリケーション202から送信されたおよびこれによって受信されたメッセージを分析する。1つまたは複数の実施形態では、メッセージ・アナライザ214は、ユーザ間で交換された電子メッセージから、交換されたメッセージ内のコンテキスト内容に基づいて、イベントを推測する。具体的には、メッセージ・アナライザ214は、ソーシャル・ネットワーキング・イベントまたは支払の機会を示す一定の語句または文字列を識別する。たとえば、文字列は、2人以上のユーザ間のメッセージング・スレッド内の電子メッセージからの所定の文字列を含む。
クライアント・アプリケーション202は、ロケーション・ディテクタ216をさらに含む。ロケーション・ディテクタ216は、クライアント・デバイス104a、104bからのGPS情報、セル・タワー三角測量、WIFI受信信号強度標識、WIFI無線フィンガープリンティング、無線周波数識別、短距離通信に基づいて、メッセージを分析することによって、または他のソースからのデータに基づいて、クライアント・デバイス104a、104bのロケーションにアクセスまたはこれを識別する。ロケーション・ディテクタ216は、次いで、メッセージ・アナライザ214またはネットワーク・アプリケーション204に対してクライアント・デバイス104a、104bのロケーションを提供する。加えて、ロケーション・ディテクタ216は、ネットワーク・アプリケーション204から他のクライアント・デバイスのロケーションの標識を受信し、それらをメッセージ・アナライザ214に対して提供する。
上記で論じられたように、クライアント・デバイス104aは、図2に例示されるように、データ・マネージャ220を含む。データ・マネージャ220は、ユーザと1人または複数の他のユーザとの間でメッセージを構築、送信、および受信することと関係して使用されるデータを表すメッセージ・データを維持する。たとえば、メッセージ・データは、メッセージ・ログ、連絡先リスト、コンテンツ、過去の通信、およびユーザがクライアント・アプリケーション202を使用して通信できることを提供することと関係してクライアント・アプリケーション202が使用する他の類似のタイプのデータを含む。
データ・マネージャ220はまた、支払要求を生成するために使用される情報を表す支払データを維持し得る。たとえば、支払データは、支払方法データ(すなわち、クレデンシャル)および/または口座データ(たとえば、銀行またはクレジット・カード口座データ)を含み得る。そのうえ、支払データは、支払に関するプリファレンス(たとえば、デフォルト支払方法)を含む。一般に、支払データは、支払要求ジェネレータ218が支払を生成することと関係して使用する任意のデータを含んでよい。
上記で簡単に言及されたように、クライアント・デバイス104a、104bに加えて、システム100は、サーバ・デバイス108上で全部または部分的に実施されるネットワーク・アプリケーション204をさらに含む。本開示の1つまたは複数の実施形態では、ネットワーク・アプリケーション204は、ソーシャル・ネットワーキング・システム(限定されるものではないが、フェースブック(登録商標)など)を備えるが、他の実施形態では、ネットワーク・アプリケーション204は、限定されるものではないが、電子メール・アプリケーション、検索エンジン・アプリケーション、バンキング・アプリケーション、またはユーザ口座を利用する任意の数の他のアプリケーション・タイプを含む別のタイプのアプリケーションを備え得る。
ネットワーク・アプリケーション204がソーシャル・ネットワーキング・システムを備える1つまたは複数の実施形態では、ネットワーク・アプリケーション204は、複数のユーザおよび概念を表し、分析するためのソーシャルグラフ250を含み得る。ソーシャルグラフ250のノードストレージ252は、ユーザ用ノード、概念用ノード、取引用ノード、およびアイテム用ノードを備えるノード情報を記憶する。ソーシャルグラフ250のエッジストレージ254は、ソーシャル・ネットワーキング・システム内で発生するノードおよび/またはアクション間の関係を備えるエッジ情報を記憶する。ソーシャル・ネットワーキング・システム、ソーシャルグラフ、エッジ、およびノードに関するさらなる詳細は、以下で図10に関して提示される。
通信マネージャ230は、クライアント・アプリケーション202から受信されたメッセージを処理する。たとえば、通信マネージャ230は、クライアント・アプリケーショ
ン202のメッセージ・ハンドラ206と対話する。通信マネージャ230は、電子メッセージング・スレッド内のユーザ間でやりとりされるメッセージのディレクタの役割を担う。通信マネージャ230は、クライアント・アプリケーション202からメッセージを受信し、メッセージの意図された受信者を検出して、意図された受信者に関連付けられているクライアント・アプリケーション202(またはデバイス)に対してメッセージを送信し得る。通信マネージャ230が、受信者に関連付けられている複数のクライアント・デバイス(すなわち、ユーザがあるバージョンのクライアント・アプリケーション202をインストールした各デバイス)に対して受信者のためのメッセージを宛てることが理解されるであろう。
加えて、通信マネージャ230は、宛先通信デバイスまたはタイプによって使用されるメッセージング・プロトコルに基づいて、メッセージを再フォーマットするまたは別のやり方でメッセージの内容もしくはフォーマットを修正することもできる。したがって、1つまたは複数の実施形態では、システム100は、異なる通信プラットフォームを使用する参加者がメッセージを交換することを可能にする。たとえば、通信マネージャ230は、第1のプロトコル(SMS、IM、XMPP、APNSなど)によりメッセージを受信し、メッセージを第2のプロトコルへと再フォーマットして、再フォーマットされたメッセージを意図された受信者に対して送信する。
ステータス・マネージャ232は、クライアント・アプリケーション202および/またはクライアント・デバイス104a、104bのユーザのステータスを追跡する。たとえば、ステータス・マネージャ232は、ユーザがいつクライアント・アプリケーション202にログインされるか、ユーザがいつクライアント・アプリケーション202上でアクティブであるか、ユーザまたはユーザ口座に関連付けられているクライアント・デバイス104a、104bがいつオンラインまたはアクティブであるかを識別する。ステータス・マネージャ232は、クライアント・アプリケーション202に対して標識(プッシュ通知など)を送信して、クライアント・アプリケーション202に、ユーザ、デバイス、メッセージ、または支払のステータスを通知する。ユーザ・インターフェース・マネージャ208は、ステータス・マネージャ232から受信された標識に基づいて、ステータス通知を追加、修正、または別のやり方で変更もしくは更新する。たとえば、ステータス・マネージャ232は、別のユーザがメッセージにアクセスしたこと、支払を受信したこと、支払を送信したこと、アクティブであること、共同ユーザがアクティブなデバイスまたはデバイス・タイプ(たとえば、モバイル対ウェブ)などを示す標識をクライアント・アプリケーション202に対して送信する。ユーザ・インターフェース・マネージャ208は、次に、ユーザにステータスを通知するためにユーザ・インターフェースを更新する。
ネットワーク・アプリケーション204は、メッセージ・データベース234も含み得る。メッセージ・データベース234は、複数の参加者間の電子メッセージング・セッションからメッセージの内容を表すメッセージ・データを維持する。メッセージ・データベース234は、上記で言及された、ステータス・マネージャ232が追跡する情報を表すステータス・データを維持し得る。したがって、メッセージ・データベース234は、メッセージング・スレッドのアーカイブを提供することができ、これは、要求に応じて、またはユーザが新しいコンピューティング・デバイスを使用してクライアント・アプリケーション202にログインすると、ネットワーク・アプリケーション204がユーザに対して提供する。
以前に言及されたように、サーバ・デバイス108は、支払マネージャ240を有する支払エンジン206を含む。図2の支払マネージャ240は、支払要求の送信および受信を統合して、支払取引を開始することができ、1つまたは複数のアプリケーション・プロ
グラミング・インターフェース(API)を用い得る。たとえば、通信マネージャ230が支払要求を受信すると、通信マネージャ230は、支払マネージャ240に対してあらゆる支払詳細を送信する。支払マネージャ240は、次いで、支払要求から取り出された支払詳細を使用して、支払ネットワーク115を使用する支払取引を開始する。
1つまたは複数の実施形態によれば、システム100は、ネットワーク・アプリケーション204とは別個の支払エンジン206を維持する。たとえば、システム100は、ネットワーク・アプリケーション204の機能のうちの少なくとも一部(たとえば、リカバリのためにメッセージング・データベースを使用する)とは別個に、支払エンジン206に関連付けられている支払プロセスを実施する。例示するために、システム100は、1つまたは複数のサーバの第1のグループ上で支払エンジン206の機能を、および1つまたは複数のサーバの第2のグループ上でのネットワーク・アプリケーション204の機能を実施する。別個のサーバ上で支払エンジン206およびネットワーク・アプリケーションの機能を実施することは、システム100が、ユーザに関連付けられている金融情報の少なくとも一部は、ネットワーク・アプリケーション204は別として、支払カード業界(PCI)標準に準拠するために維持されることを保証することを可能にする。本明細書で説明される構成以外のサーバおよび/またはソフトウェアの代替構成は、また、システム100がPCI標準に準拠することを可能にし得る。
支払マネージャ240は、支払要求内で定義された支払に対応する取引を協調させる。上記で一般に説明されたように、支払マネージャ240は、支払要求に対応する支払ネットワーク115を介して取引を協調させ、取引のステータスを監視し、取引に関するステータス情報を提供する。より具体的には、上記で図1に関して説明されたように、支払ネットワーク115は、取引を許可し、取引を資金供給し、および/または個々の取引もしくは取引のバッチを決済する。1つまたは複数の実施形態では、支払マネージャ240は、1つまたは複数のアプリケーション・プログラミング・インターフェース(API)を使用して、関係のある情報を支払ネットワーク115と通信する。
追加実施形態または代替実施形態では、クライアント・デバイス104a上のクライアント・アプリケーション202は、ネットワーク・アプリケーション204および支払エンジン206に対して支払要求および/または支払要求に関連付けられているメッセージを並行して送信することをクライアント・デバイス104aに行わせる。より詳細には、クライアント・アプリケーション202が共同ユーザに対してある額を支払うためのユーザによる選択を受信したとき、クライアント・アプリケーション202は、第1のネットワーク・アプリケーション204に対して、および支払エンジン206に対して支払要求を送信することをクライアント・デバイス104aに行わせる。したがって、ネットワーク・アプリケーション204が支払要求を処理する間に、支払エンジン206も、支払要求に関連付けられている支払取引を処理している。代替実施形態では、クライアント・デバイス104aは、ネットワーク・アプリケーション204に関連付けられている1つまたは複数のサーバに対してメッセージを送信することができ、次いで、サーバは、支払エンジン206に対してメッセージを転送する、またはその逆を行う。
取引を完了するために、支払マネージャ240は、受信者についての支払クレデンシャル(入金口座情報、デビット・カード、クレジット・カード、ギフト・カード、電子財布などの)にアクセスするまたはこれを取得する。支払マネージャ240は、さまざまな方法を使用して、受信者の支払クレデンシャル(たとえば、実質的に即時の支払を受信するためのデビット・カード)を取得する。例となる一実施形態では、受信者は、ネットワーク・アプリケーション204を用いて1つまたは複数の入金口座または他の支払クレデンシャルを登録する。ユーザが入金口座または他の支払クレデンシャルを登録すると、ユーザ・プロファイル・データベース236は、支払クレデンシャルを維持する。
支払マネージャ240が支払情報を受信した後、支払マネージャ240は、受信者を識別する。支払マネージャ240は、ユーザ・プロファイル・データベース236内の受信者を調べて、受信者が支払クレデンシャルを登録しているか否かを決定する。この時点で、支払マネージャ240は、取引を開始する。
受信者のユーザ・プロファイルが支払クレデンシャルを含まない場合、または受信者のユーザ・プロファイルが、当日支払をサポートする支払クレデンシャルを含まない場合、支払マネージャ240は、受信者に支払クレデンシャルを提供することを促すメッセージを受信者に送信するように通信マネージャ230に指示する。メッセージは、受信者が支払クレデンシャル詳細を提供することを可能にする1つまたは複数の対話型フィールドを提供することによって、支払クレデンシャルを登録するように受信者に促し得る。加えて、または代替的に、受信者が、登録された支払クレデンシャルを有さないことを決定すると、支払マネージャ240は、一時入金口座を生成する。より詳細には、支払マネージャ240は、口座番号を生成し、その口座番号を受信者のユーザ・プロファイルに関連付ける。1つまたは複数の実施形態では、受信者は、すでに一時口座を有しているかもしれず、そのため、支払マネージャ240は、以前に作成された一時口座を使用して取引を完了する。特に、一時口座は、支払マネージャ240が、送信者または受信者のどちらかの観点から支払プロセスを遅延させることなく取引を処理することに直ちに進むことを可能にする。
口座マネージャ244は、ネットワーク・アプリケーションと関係して1つまたは複数の一時口座を管理する。たとえば、支払の完了時、支払マネージャ240は、一時口座に対して支払額を入金する。1つまたは複数の実施形態では、支払マネージャ240は、支払マネージャ240が受信者の支払クレデンシャルに対して金銭を移動したことを示すメッセージを受信者に送信することを通信マネージャ230に行わせる。たとえば、受信者がデビット口座をすでに登録していた場合、支払マネージャ240は、実質的に即時の支払取引において登録されたデビット口座に対して金銭を移動する。代替的に、受信者が入金口座を登録したくない場合、メッセージ・システムは、一時口座から金銭を引き出す命令を受信者に提供する。
支払ネットワーク115を介して取引を協調させることに加えて、支払マネージャ240は、1つまたは複数のシステム・ユーザ口座に関して取引を協調させることもできる。1つまたは複数の実施形態では、ネットワーク・アプリケーション204は、ギフト・カード口座、キャッシュ・カード口座、または類似のタイプのユーザ口座などのユーザ・キャッシュ口座をサポートする。送信者は、支払の方法として送信者のユーザ・キャッシュ口座を規定することができ、同様に、受信者は、登録された入金口座として受信者のユーザ・キャッシュ口座を設定する。そのため、少なくとも1以上の実施形態では、取引全体、または取引の実質的に全体は、ネットワーク・アプリケーション204内で処理されることが可能である。
1つまたは複数の実施形態では、システム100は、受信者が、資金を受信するために支払クレデンシャルとしてデビット・カード口座を登録することもできる。ユーザのデビット・カードに対して資金を送信するために、支払マネージャ240は、支払額を受信者のデビット・カード口座にクレジット提供するために要求を送信する。1つまたは複数の実施形態では、要求は、未照会払戻(unreferenced refund)要求を含む。未照会払戻要求とは、ユーザのデビット・カード口座との以前の資金供給取引に対して添付されていない払戻要求である。未照会払戻要求を処理することは、受信者デビット・カード口座に対して払戻要求の額をクレジット提供するという結果になる。たとえば、受信者が、デビット・カード口座上でマイナス残高を有する場合、要求額が、そのマイ
ナス残高に充当され得る。同様に、受信者がデビット・カード口座上でゼロ残高を有する場合、要求額は、受信者が使うことができるプラスのデビット・カード口座残高をもたらす。代替的に、要求は、システム100が当日支払を処理するための所有権を有するルーティング方法を介して金銭を移動することを可能にする特定のカード・サービスに対応する請求要求を含み得る。
図2の支払マネージャ240は、通信マネージャ230から受信された情報を協調させることに関係してさまざまな機能を実行して、支払要求を要求および受け入れ、支払プロセスを協調させ得る。たとえば、支払マネージャ240は、支払クレデンシャルを作成および記憶する。より具体的には、ユーザ(たとえば、送信者および受信者)は、ネットワーク・アプリケーションとの口座をすでに有し、したがってすでに、登録されたユーザであるかもしれず、または依然として口座を開設するかもしれない。一実施形態では、ユーザの少なくとも一部はまた、ソーシャル・ネットワーキング・システムのメンバであり、システム100を使用してメッセージするときにも使用されるソーシャルネットワーキング口座に関連付けられている識別子(「ID」)およびユーザ・プロファイルをすでに有する。代替的に、他のユーザが、ソーシャル・ネットワーキング・システムのメンバでなく、口座を作成してシステム100の登録されたメンバになることができる。この例では、支払マネージャ240は、これらのユーザから(クライアント・アプリケーション202を介して)日付を受信して口座を作成し、次いで、これらのユーザのための一意のIDおよびユーザ支払プロファイルを作成することができ、これらは後で支払プロセス中に参照される。場合によっては、支払マネージャ240はまた、欠けているかもしれない支払プロファイル特徴を含むように、以前のソーシャルネットワーキング・ユーザのユーザ・プロファイルを増やしてよい。
口座を開設するまたは増やす際、ユーザは、クレジット・カード、デビット・カード、入金口座または他の銀行口座、ギフト・カード口座、店舗クレジット口座などの1つまたは複数の支払クレデンシャルを提出する。支払の方法を追加するとき、システム100は、カード番号および/または口座番号、有効期限、セキュリティ・コード、移動またはルーティング識別番号、ならびに金銭移動のために使用される銀行情報をユーザに提出するように求めることができる。ユーザは、個人識別番号(PIN)などの許可コードを作成する、または、たとえば単一の支払方法のみを提供するとき、クレジット・カードのセキュリティ・コードを使用する、または、任意の他の許可コードを提供することもできる。ユーザは、支払のデフォルト方法を選択することもできる。
それに応じて、ユーザ・プロファイル・データベース236によって記憶されるユーザ支払プロファイルは、登録された各ユーザ(ソーシャルネットワーキング・ユーザとして、および/またはメッセージング・ユーザとして)のために一意に作成されたユーザ(またはグループ)IDを含む。ユーザ・プロファイル・データベース236は、ネットワーク・アプリケーション204のユーザの支払クレデンシャルのためのストレージを提供する。たとえば、ユーザは、ネットワーク・アプリケーション204との「口座」を作成することができ、これは、ユーザがネットワーク・アプリケーション204に対して支払情報を提供することを可能にする。次いで、ネットワーク・アプリケーション204は、その支払情報をユーザ・プロファイル・データベース236の中に保存する。1つまたは複数の実施形態では、ユーザ・プロファイル・データベース236は、名(ファースト・ネーム)、ミドル・ネーム、姓(ラスト・ネーム)、支払カード番号(たとえば、クレジット・カード、デビット・カード)、支払カードの有効期限(年および/または月)、支払カードのカード・セキュリティ・コード(たとえば、カード検証値(CVVまたはCVV2))、支払カードに関連付けられている請求書送付先住所(通りの名称、家屋番号、都市、州または県、郵便番号、国などを含む)、支払カードに関連付けられている電話番号、1つまたは複数の届け先住所(請求書送付先住所と類似のフィールドを含む)、のうち
の1つまたは複数を、ユーザに関係して記憶する。支払カードがデビット・カードを備えるとき、プロファイル記憶モジュールは、デビット・カードのための個人識別番号(PIN)を記憶することもできる。ネットワーク・アプリケーション204がソーシャル・ネットワーキング・システムを備える一実施形態では、ユーザ・プロファイル・データベース236の中に記憶される支払情報は、ユーザを表すノードストレージ252のノードに関連付けられ得る。
1つまたは複数の追加の実施形態では、支払マネージャ240は、リスク計算機238と通信して、送信者、受信者、および/または特定の支払取引に関連付けられているリスクを決定する。具体的には、リスク計算機238は、詐欺的な支払取引を防止するために、送信者/受信者に関連付けられている情報に基づいて、送信者/受信者が詐欺師であるか否かを決定する。たとえば、リスク計算機238は、ネットワーク・アプリケーションと関係して送信者/受信者に関連付けられているアクティビティまたは情報に基づいて、詐欺アクティビティの可能性を決定する。支払取引に関与するユーザに関連付けられているリスクを決定することは、プッシュツーデビット取引を処理するとき、特に有用である。
たとえば、1つまたは複数の実施形態では、ネットワーク・アプリケーション204は、送信者または受信者に関連付けられているリスクが所定の閾値に達しているか否かを決定する。特に、ネットワーク・アプリケーション204は、「実在度」スコアに基づいて、送信者または受信者が詐欺師である(たとえば、詐欺口座または実在の人物のような態度をとるソフトウェア)か否かを決定する。たとえば、送信者に関連付けられているリスクが所定の閾値を下回る(すなわち、高リスク・レベル)場合、ネットワーク・アプリケーション204は、送信者はおそらく詐欺師であることを決定し、送信者が詐欺師であることを支払エンジン206に通知する。送信者が高リスク・レベルを有する場合、支払エンジン206は、送信者と受信者との間の支払取引を停止する。同様に、受信者に関連付けられているリスクが所定の閾値を下回る場合、ネットワーク・アプリケーション204は、受信者がおそらく詐欺師であることを決定し、受信者が詐欺師であることを支払エンジン206に通知する。
例示するために、ネットワーク・アプリケーション204は、1人または複数の共同ユーザによってソーシャル・ネットワークキング・システムに対して投稿されたメディアにおいてユーザがタグ付けされているか否か、ユーザの共同ユーザがユーザの以前の1回または複数回の誕生日を認識した(すなわち、ユーザに「誕生日おめでとう」と言った)か否か、ネットワーク・アプリケーション204を介してユーザとユーザの共同ユーザとの間で交換されたメッセージの数もしくは量、ユーザの共同ユーザが、ユーザによってなされた投稿に賛同または連帯を示した(すなわち、「いいね」を表明した)か否か、および/またはユーザの共同ユーザがユーザによってなされた投稿に対してコメントしたか否かに基づいて、ユーザのための実在度スコアを決定する。加えて、または代替的に、ネットワーク・アプリケーション204は、ユーザが所定の時間の量にわたってソーシャル・ネットワークキング・システムのメンバであるか否か、あらかじめ受け入れた発信元ロケーションに住んでいるか否か、宛先ロケーションとともに所定のレベルのソーシャル・ネットワーク・アクティビティを有するか否か、閾値実在度スコアを有するか否かなどを決定する。別の例では、ネットワーク・アプリケーション204は、ユーザと共同ユーザがソーシャル・ネットワーキング・システム上で友達であるか否か、ある数の隔たり次数(degree of separation)以内であるか否かなどを含む、ユーザと共同ユーザとの間の関係に基づいて、ユーザに対するリスクを決定する。加えて、ネットワーク・アプリケーション204は、支払取引が詐欺であるか誤っているかを、支払取引についての情報を使用して、支払額(たとえば、非現実的な額を含む支払額)などに基づいて決定する。
追加の実施形態では、送信者および/または受信者に関連付けられているリスクを決定した後、ネットワーク・アプリケーション204は、リスクに関連した1つまたは複数のアクションを実行する。具体的には、ネットワーク・アプリケーション204は、ネットワーク・アプリケーション204がユーザの身元を確認することを可能にするアクションを実行する。たとえば、ネットワーク・アプリケーション204は、ユーザはユーザがそうであると称する人であることを示す情報をユーザに要求する。例示するために、ネットワーク・アプリケーション204は、パスワード入力、ユーザのための登録された支払クレデンシャルのいくつかの数字、個人セキュリティ質問、視覚的識別(たとえば、写真)のアップロード、またはユーザのリスク・レベルもしくは実在度スコアに基づく他の識別機構を要求する。
追加実施形態または代替実施形態では、ネットワーク・アプリケーション204は、ユーザの決定されたリスク・レベルに応答して、支払要求または支払取引に関係する1つまたは複数のアクションを自動的に実行する。具体的には、ネットワーク・アプリケーション204は、ユーザに追加の情報を要求することなく、支払要求または対応する送信者と受信者との間の支払取引に影響するアクションを実行する。たとえば、ネットワーク・アプリケーション204は、支払取引を可能にする、支払取引を(たとえば、ユーザの支払クレデンシャルの銀行による)レビューのために保留中にしておく、支払取引を阻止する、ユーザの口座を使用不能にする、または中間口座を使用することなく(たとえば、送信者の口座から受信者の口座へ直接的に)取引を処理する。
いずれにしても、送信者からの支払要求の受信時、支払マネージャ240は、送信者のユーザ(またはグループ)IDを検出し、そのユーザ(またはエンティティ)についての支払プロファイルを取り出す。支払マネージャ240は、次いで、支払額、送信者、および受信者に関連付けられている取引IDを含む取引パッケージ(たとえば、「支払ドローン(payment drone)」)を生成する。取引IDは、システム100が送信者の口座から、システム内の一時口座または中間口座において、および受信者の口座へ、金銭を追跡する助けとなる。いくつかの例では、システム100は、ユーザに取引IDへのアクセスを提供し、支払取引に対応する中の金銭の動きをたどる。
取引パッケージは、デフォルト支払方法および関係する情報を含むこともできるが、それは、送信者が、代替支払方法を用いて受信者に支払を送信することを選択しない限りであり、その場合、取引パッケージは、代替支払方法についての支払情報を含む。支払マネージャ240は、次いで、支払許可プロセスを開始するために支払ネットワーク115に対して取引パッケージを送信し得る。
支払マネージャ240は、支払プロセスを効果的に管理するために、さまざまな他の追加のステップおよび方法を実行する。1つまたは複数の実施形態では、たとえば、支払要求を受信すると、支払マネージャ240は、取引識別子(または単に「取引ID」)を生成し、この取引識別子を支払要求および/または支払要求内の支払情報に関連付ける。たとえば、取引IDを生成すると、支払マネージャ240は、取引データベース242に対して取引IDおよび支払情報を送信する。取引データベース242は、取引IDにより取引情報を記憶するデータ・テーブルまたは類似のデータ・マトリックスを含む。
図2の取引データベース242は、各取引(グラフ・オブジェクトの形など)、試行または完了した、取引ID、日付、取引の額、使用された支払方法、取引に関連する送信者と受信者との間で相互に交換された関連付けられているメッセージ、および取引に関して収集された他の任意の情報のためのストレージを提供する。この情報を用いて、支払マネージャ240は、要求に応じて、支払要求、拒否された支払、および完了された支払の履
歴として、1つまたは複数の取引の概要をユーザに対して提供する。
1つまたは複数の実施形態では、取引IDが特定の支払要求に関連付けられている後、取引IDは、特定の支払に関係する、システム100内の実質的にすべての通信中に含まれるまたは埋め込まれる。したがって、取引IDは、支払マネージャ240が、編成された様式で多数の支払を管理および処理することを可能にする。たとえば、支払マネージャ240は、クライアント・デバイス104a、104bに対して送信される任意の情報の中に取引IDを含めるための命令を含む。代わりに、メッセージング・ハンドラ210が、支払マネージャ240が、情報が対応する特定の取引を効率的かつ確実に識別することを可能にするために、クライアント・デバイス104a、104bから送信される任意の情報の中に取引IDを含めることもできる。
1つまたは複数の実施形態では、取引IDは、1つまたは複数の送信者識別子、受信者識別子、スレッド識別子(たとえば、送信者と受信者との間のメッセージング・スレッドを識別する)、支払額、支払方法(たとえば、送信者口座)、入金方法(たとえば、受信者口座)、取引履歴、現在の取引ステータス、ならびに他の取引情報に関連付けられる。1つまたは複数の実施形態では、取引データベース242は、取引に関係するあらゆる更新またはアクションとともに更新される1つまたは複数のグラフ・オブジェクトの形で取引情報を維持する。
また、以前に言及されたように、支払エンジン206の口座マネージャ244は、1つまたは複数の中間の口座または一時口座を維持する。一時口座は、送信者の口座からの支払の決済または実際の資金供給の前に受信者口座へなされることになる入金のための資金供給を提供する、あるタイプの「ホットな口座」として機能する。たとえば、いくつかの支払方法を用いれば、支払の資金供給は、金銭が送信者の口座にデビット請求されるのに数時間または数日を要することすらある。しかしながら、支払許可要求は、資金を確認および確保して支払を果たす。したがって、支払許可要求からの成功応答を受信すると、支払マネージャ240は、支払が受信者の口座に到着するのに、より短い時間を提供するために、一時口座から支払額を資金供給する。支払が送信者の口座から資金供給すると、一時口座は、支払の額のために新しくされる。
以前に言及されたように、サーバ・デバイス108は、ユーザ102a、102b、102nのキューを管理するキュー・マネージャ246を含むことができる。具体的には、キュー・マネージャ246は、ユーザ102a、102b、102n間、とネットワーク・アプリケーション204および支払エンジン206との通信を促進するために、ユーザ102a、102b、102nそれぞれの支払キューおよびメッセージ・キューを管理することができる。キュー・マネージャ246は、以下に説明するキューがメッセージおよび更新をどのように受信して処理するかを制御する、ロジックおよび命令のセットならびにハードウェアの両方または一方を備えることができる。特に、キュー・マネージャ246は、キューの着信シーケンス番号を決定するように動作し得る。着信シーケンス番号は、キューの最新のシーケンス番号を決定することにより、決定され得る。キュー・マネージャ246は、着信更新に着信シーケンス番号を割り当てることができる。キュー・マネージャ246は、キューに着信更新を追加することができる。また、キュー・マネージャ246は、着信更新に関連付けられているクライアント・デバイスの現在の更新状態について、現シーケンス番号を決定することができる。次いで、キュー・マネージャ246は、着信受信者シーケンス番号がクライアント・デバイスの現在の更新状態についての現シーケンス番号よりも大きいことを決定することができる。応答して、キュー・マネージャ246は、クライアント・デバイスの現在の更新状態についての現シーケンス番号を、少なくとも着信受信者シーケンス番号になるように更新することができる。キュー・マネージャ246は、着信シーケンス番号がクライアント・デバイスでの現シーケンス番号より
も大きいとの決定に基づいて、着信更新をクライアント・デバイスに送信することができる。
キュー・マネージャ246はさらに、キューに着信更新を追加し、着信更新を受信するメッセージング・エンドポイントを決定するように動作することができる。キュー・マネージャ246は、メッセージング・エンドポイントに関連付けられている1つまたは複数のメッセージング・エンドポイント・パラメータを取り出し、1つまたは複数のメッセージング・エンドポイント・パラメータに従って、着信更新から、カスタマイズされた着信更新を生成することができる。キュー・マネージャ246は、カスタマイズされた着信更新を受信者メッセージングに送信することができる。パラメータは、クライアント・デバイスの現在のシーケンスID、言語、および、クライアント・デバイスのユーザが設定したプリファレンスを備えることができる。
ネットワーク・アプリケーション204、支払エンジン206、またはキュー・マネージャ246がクライアント・デバイスから最初にデータを受信するかどうかは、データのタイプに依存し得る。クライアント・デバイス102a、102b、102nは、あるタイプのデータについてはネットワーク・アプリケーション204または支払エンジン206と直接通信し得るが、他のタイプのデータについてはキュー・マネージャ246と最初に通信し得る。キュー・マネージャ246は、システム100が異なるタイプのデータを異なる方法で処理することを可能にして、ユーザ102a、102b、102nがそれぞれのデバイスで最新の情報をより迅速に閲覧することを可能にする。キュー・マネージャ246は、支払キューおよびメッセージ・キューを備えることができる。図3A〜図3Fおよび図4は、以下に説明するように、キュー・マネージャ246の動作を詳しく例示する。
論じられたように、上記で図1〜図2に関して論じられたシステムおよび構成要素は、メッセージング・システムのユーザが、統合されたメッセージングおよび支払システム100を介して支払を容易に、効果的に、かつ安全に送信および受信することを可能にすることができる。図3A〜図3Fは、上記で論じられたシステム100に実装されるプロセスの1つまたは複数の例となる実施形態の、例となるプロセス図を例示する。図1および図2に例示されるシステム100に整合して、図3A〜図3Fは、(動作のシーケンス・フローに従い)クライアント・アプリケーション202を有する送信者クライアント・デバイス300a、クライアント・アプリケーション202を有する受信者クライアント・デバイス300b、ネットワーク・アプリケーション204および支払エンジン206をサポートするサーバ・デバイス108、支払ネットワーク115、送信者支払キュー302、送信者メッセージ・キュー304、受信者支払キュー306ならびに受信者メッセージ・キュー308を例示する。
1つまたは複数の実施形態では、ユーザがシステム100を介して別のユーザに対して支払を送信するためのプロセスは、送信者クライアント・デバイス300aに関連付けられている送信者ユーザ(または単に「送信者」)がクライアント・アプリケーション202に対してユーザ入力を提供し、支払取引を行う要求を生成することで始めることができる。たとえば、送信者は、送信者が1人または複数の受信者ユーザ(または単に「受信者」)を選択またはその他の形で定義することを可能にする1つまたは複数のユーザ・インターフェース(たとえば、図5Aの連絡先UI504)にアクセスすることができる。次いで、送信者は、受信者に金銭を送信するオプション(たとえば、支払制御部524b)を選択することができる。次いで、送信者は支払額を選択することができる。次いで、ユーザは任意選択で支払クレデンシャルを追加するか、以前に追加した支払クレデンシャルを選択するか、またはデフォルト支払クレデンシャルを使用することができる。図5Gに関して以下説明するように、送信者クライアント・デバイス300aは、送信者と受信者
との間のメッセージング・スレッドに支払額を投入することができる。
支払取引の要求に応答して、送信者クライアント・デバイス300aは、支払開始要求312を支払エンジン206に送信することができる。具体的には、支払開始要求は支払エンジン206に対して、送信者と受信者との間の支払取引を開始するよう要求することができる。送信者クライアント・デバイス300aは、メッセージング・スレッド内に支払額の隣に支払のステータス(すなわち、送信者クライアント・デバイス300aから送信された支払開始要求)を示すグラフィカル要素を提供することができる。
支払開始要求を受信すると、サーバ・デバイス108は、任意選択で、送信者および受信者の両方または一方のリスクを決定するために、リスク・チェック314を行うことができる。たとえば、ネットワーク・アプリケーション204は、詐欺を防止するため、支払エンジン206が支払取引を処理するかどうかを決定するために、送信者、受信者、および/または送信者と受信者との関係に関連付けられている情報を使用することができる。具体的には、ネットワーク・アプリケーション204は、送信者に関連付けられているリスクを決定することができ、そのリスクを支払エンジン206に通知して、支払エンジン206が送信者と受信者との間の支払取引を処理するかどうかを決定することを可能にする。図3Aは、支払取引の処理中のある特定の時点でのリスク・チェックを例示しているが、リスク・チェックは、金銭が中間口座または一時口座にある間など、支払取引中で金銭を受信者の口座に移動する前のいつでも、または複数回行い得る。別の例では、サーバ・デバイス108は、送信者に支払オプションを提供するべきかどうか、または受信者候補に関連して送信者に支払オプションを提供するべきかどうかを決定するためにリスク・チェックを行うことができる。
支払エンジン206はまた任意選択で、支払ネットワーク115を用いて送信者の支払クレデンシャルを許可することができる。具体的には、支払エンジン206は、支払額または別の額(たとえば、0.01ドルまたは100.00ドル)について送信者の支払クレデンシャル(たとえば、送信者のデビット・カード)に対する支払許可要求を支払ネットワーク115に送信する(316)ことができ、支払ネットワーク115は支払許可を承認または拒否することができる。次いで、支払ネットワーク115は、支払クレデンシャル許可応答318を支払エンジン206に送信することができる。任意選択の許可要求が、タイムライン内でより早くまたはより遅く行われ得ることが理解されるであろう。代替実施形態では、支払エンジン206は、支払取引の一部として支払額について送信者の支払クレデンシャルに対する許可要求を送信することができる。
支払エンジン206は任意選択で支払開始応答320を送信者クライアント・デバイス300aに送信して、送信者クライアント・デバイス300aに、支払クレデンシャル許可またはリスク・チェックが通らなかったことを通知することができる。送信者がリスク・チェック314に通らなかったかまたは支払許可が下りない場合、支払開始応答320は、クライアント・デバイス300aに、取引が開始できないことを示すことができる。
1つまたは複数の実施形態では、支払エンジン206は、支払開始要求から情報の少なくとも一部をネットワーク・アプリケーション204に通信することができる。加えて、または代替的に、ネットワーク・アプリケーション204は、支払開始要求に関連して送信者クライアント・デバイス300aから情報を取得することができる。たとえば、ネットワーク・アプリケーション204は、送信者のユーザ・アカウントに関連したリスク・チェック中に、送信者クライアント・デバイス300aに関する情報を取得することができる。
送信者の支払クレデンシャルの認証前または認証時、支払エンジン206は取引ID3
24を生成することができる。上記述べたように、支払エンジン206は、受信した各支払要求に一意の取引ID324を関連付けることができる。支払エンジン206およびネットワーク・アプリケーション204は、さまざまなファイル、オブジェクト、メッセージ、および他の情報内で取引IDを使用するために通信して、ネットワーク・アプリケーション204がネットワーク・アプリケーション204を介して行われた各支払に関するメッセージ、ステータス更新および他の情報を効率的に識別して処理することを可能にすることができる。たとえば、また、上記述べたように、支払エンジン206は、支払要求の処理に対応する情報を維持するグラフ・オブジェクトに取引ID324を関連付けることができる。
加えて、支払エンジン206は、任意選択で、送信者が支払クレデンシャルを支払エンジン206に登録したかどうかを検証する(326)ことができる。1つまたは複数の例では、支払エンジン206が以前に(たとえば、支払ネットワーク115からの肯定許可応答を受信することにより)支払取引を許可したことがない場合、支払エンジン206は、送信者が送信者のユーザ・アカウントに関連付けられている支払クレデンシャルを登録しているかどうかを決定することができる。支払エンジン206はまた、登録された支払クレデンシャルが有効かどうかも検証することができる。送信者がどの支払クレデンシャルも登録していなければ、支払エンジン206は、送信者クライアント・デバイス300aに通知して、有効な支払クレデンシャルを入力するよう送信者に促すことができる。
1つまたは複数の実施形態では、支払エンジン206は、支払ネットワーク115に、送信者の支払クレデンシャルに支払額が請求されるよう要求する(322)支払請求要求を送信する(328)ことができる。支払請求要求に応答して、支払ネットワーク115は、送信者の支払クレデンシャルに請求する(330)ことができ、金銭を送信者の口座から支払エンジン206(たとえば、一時口座)に電子的に移動することにより、送信者から支払を資金供給する(332)。
図3Bに示すように、支払エンジン206は、ネットワーク・アプリケーション204がメッセージIDを生成した後、生成する前、または生成するのと同時に、支払を一時口座に適用する(338)ことができる。たとえば、支払エンジン206は、支払エンジン206が資金を受信者の支払クレデンシャルに移動するために使用する中間口座に支払を適用することができる。1つまたは複数の実施形態では、支払エンジン206は、支払を適用するべき新たな口座を作成することができる。代替的に、支払エンジン206は、各支払に関連付けられている一意の取引IDによって編成および識別されるさまざまな他の支払を含む支払を、マスタ一時口座に対して適用することができる。
支払要求の資金供給に成功した後、支払エンジン206は、請求が成功したこと、および支払取引が有効な取引であることを決定することができる。特に、支払エンジン206は、メッセージング・スレッド内の送信者および受信者の両方または一方に、支払取引を示す1つまたは複数のメッセージに関連したメッセージIDを生成する(334)ように、ネットワーク・アプリケーション204に通知することができる。さまざまな実施形態では、ネットワーク・アプリケーション204は、送信者と受信者との間のメッセージング・スレッド内で関連する支払取引について、クライアント・デバイス302a、302bに送信するためにメッセージIDを生成することができる。1つまたは複数の実施形態によれば、識別子は、クライアント・デバイス302a、302bが支払に関するメッセージを適切に表示すること、ならびにメッセージのステータス更新および更新情報を送信および受信することを可能にすることができる。
この時点で、支払エンジン206は支払開始メッセージを生成することができる。たとえば、支払開始メッセージは、支払取引のオフライン・スレッディングID、スレッド・
キー、取引ID、タイムスタンプおよび送信者を含むことができるが、これだけに限定されない。オフライン・スレッディングIDは、クライアント・デバイス302a、302bがメッセージング・スレッド内の不整合や支払取引に関連する不整合(たとえば、取引の処理中の接続損失の場合)を解決することを可能にすることができる。例示するために、送信者がメッセージを送信し、サーバ・デバイス108との接続が失われ、それからサーバ・デバイス108に再接続する場合、オフライン・スレッディングIDは、クライアント・デバイス302aが、そのメッセージを失敗したとマークするのではなく、メッセージの送信および処理が成功したと判断することを可能にする。スレッド・キーは、メッセージング・スレッド、ならびに支払取引に何人の参加者が関連するのかを決定するためにメッセージング・スレッドの参加者の人数と身元を識別することができる。取引IDは、前述したように、支払取引を識別する。タイムスタンプは、支払取引の開始に関連付けられている時刻、または支払取引を示すメッセージの他のタイミング情報を示すことができる。
述べられたように、スレッド・キーは、グループ・スレッドまたはグループ支払取引に複数の参加者が関っているかどうかを識別することができる。ある支払取引で複数のユーザが1人または複数のユーザに金銭を送信しようとする場合、スレッド・キーは、各ユーザ間の関係、および各ユーザが送信者か受信者かを識別することができる。加えて、クライアント・アプリケーション202は、支払取引およびスレッド・キーに関連付けられている情報を使用して、何人が関与しているか、および支払取引の合計支払額を決定することができる。クライアント・アプリケーション202は、参加者がメッセージング・スレッド内で支払取引のステータスと支払額を簡単に閲覧することを可能にするように、支払額を提示することができる。たとえば、クライアント・アプリケーション202は、簡素化のためにメッセージング・スレッド内の取引の合計支払額を提示することができ、また、支払取引の更新に基づいて必要な場合、支払額を更新することができる。
1つまたは複数の実施形態では、ネットワーク・アプリケーションは、メッセージIDを取引IDにマッピングし、マッピングされたIDをデータベースに記憶することにより、メッセージIDを取引IDに関連付けることができる。メッセージIDを取引IDに関連付けることにより、サーバ・デバイス108は支払取引の更新を識別し、これを、取引を示す対応するメッセージに関連付けることができる。図3Aは、請求成功応答を受信した後に、ネットワーク・アプリケーション204がメッセージIDを生成して、取引IDおよびメッセージIDを送信者クライアント・デバイス300aに送信することを示しているが、ネットワーク・アプリケーション204は、支払取引プロセス中の別の時点(たとえば、請求要求を送信する前)にメッセージIDを生成することもできる。
メッセージIDを生成すると、または支払を一時口座に入れたことに応答して、図3Cに示すように、支払エンジン206は、支払開始メッセージを送信する(340)ことができる。送信者支払キュー302は、送信者の支払取引についての更新を一時的に記憶する。たとえば、送信者支払キュー302は、支払エンジン206から受信される支払開始メッセージを一時的に記憶する。上記述べたように、支払開始メッセージは、取引ID、支払額、送信者、受信者、ステータス、支払取引が開始された時を示すタイムスタンプ、取引の通貨、更新のシーケンスID、および、支払額をフォーマット化するための相殺額を含むことができるが、これだけに限定されない。
ステータスは、番号(たとえば、1〜10)の付いたフィールドを備えることができる。各番号は支払取引のステータスに対応することができる。このように、番号1は支払取引の開始を示すことができる(すなわち、支払が送信者によって資金提供されたこと)。以下に説明するように、支払取引に関連付けられているステータスが変わると、支払キューに更新が送信され得る。更新は、取引IDおよび新たなステータス番号を含むことがで
きる。新たなステータス番号は新たなステータスまたはステータスの変更を意味することができる。たとえば、ステータスは、受領が支払を受信するために支払クレデンシャルを追加したこと、受領が支払を受け入れたこと、受領が支払を拒否したこと、支払の受領への移動が成功したこと等を意味することができる。支払開始メッセージがクライアント・デバイスによって受信されると、支払キューは、変更(すなわち、ステータスの更新)だけをクライアント・デバイスに送信することができる。新たなステータス更新は、支払取引のステータスの変更をクライアント・デバイスに示すことができる。
支払エンジン204が支払開始メッセージを送信するのと並行して、またはその後で、ネットワーク・アプリケーション204は、送信者支払キュー302とは別の送信者メッセージ・キュー304に、支払取引を示すメッセージを送信する(342)ことができる。具体的には、ネットワーク・アプリケーション204は、メッセージIDに関連した支払取引を示すメッセージを生成し、取引を示すメッセージを送信者メッセージ・キュー304に送信することができる。送信者メッセージ・キュー304は、送信者からおよび送信者へのメッセージおよびメッセージの更新を一時的に記憶する。
支払エンジン206から支払開始メッセージを受信した後、送信者支払キュー302は、送信者クライアント・デバイス300aに、支払開始メッセージをプッシュする(344)ことができる。送信者支払キュー302は、支払エンジン206から更新を受信した後、および送信者支払キュー302が送信者クライアント・デバイス300aと通信している間のいつでも、支払開始メッセージをプッシュすることができる。たとえば、送信者支払キュー302は、送信者クライアント・デバイス300aが送信者支払キュー302との接続をいつ確立したかを検出し、送信者クライアント・デバイス300aが最後に送信者支払キュー302と通信したとき以降に受信した更新を送信者クライアント・デバイス300aにプッシュする。たとえば、送信者支払キュー302は、クライアント・デバイスに送信された最後のシーケンスID(すなわち、最後の更新/変更)を維持し、次いで、クライアント・デバイスが受信した最後の更新/変更以降の変更/更新をクライアント・デバイスにプッシュすることができる。代替的に、クライアント・デバイスは、最後のシーケンスIDを支払キューに送信することができる。応答して、支払キューは、シーケンスIDによって示されるように、クライアント・デバイスによって受信された最後の更新/変更以降の変更/更新をプッシュすることができる。
送信者メッセージ・キュー304は、支払取引を示すメッセージを送信者クライアント・デバイス300aにプッシュする(346)ことができる。1つまたは複数の実施形態では、送信者メッセージ・キュー304は、送信者支払キュー302が支払開始メッセージをプッシュした後でなければ、支払取引を示すメッセージをプッシュしない。つまり、送信者クライアント・デバイス300aは最初に支払開始メッセージを受信して、次いで支払取引を示すメッセージを受信することができる。
送信者支払キュー302および送信者メッセージ・キュー304は、取引IDおよびメッセージIDを使用して、支払開始メッセージと取引を示すメッセージとをそれぞれプッシュすることができる。特に、送信者クライアント・デバイス300aは取引IDおよびメッセージIDを有しているので、送信者クライアント・デバイス300aは、メッセージまたは支払取引が更新されるたびに、キューから更新を受信することができる。たとえば、キューは、取引/メッセージIDおよび更新情報を含むことによって、更新をプッシュすることができる。他の実施形態では(たとえば、支払開始メッセージの場合)、更新情報は、1つより多くのステータスの変更(たとえば、タイムスタンプ情報)またはより複雑なステータスの変更を記述する、より多くの情報を含み得る。
代替実施形態では、サーバ・デバイス108が支払要求を生成するのではなく、送信者
クライアント・デバイス300aが支払要求を生成するときに、送信者クライアント・デバイス300aはメッセージング・スレッド内で支払取引を示すメッセージのローカルコピーを生成することができる。送信者の支払クレデンシャルを請求した後、ネットワーク・アプリケーション204は、送信者支払キュー302を介してステータス更新を送信者クライアント・デバイス300aに送信して、送信者クライアント・デバイス300aにすでにあるメッセージを更新することができる。たとえば、ステータスの更新は、支払の請求が成功したことを示す視覚的な合図をメッセージング・スレッド内に含むことができる。
1つまたは複数の実施形態では、支払開始メッセージを送信者クライアント・デバイス300aにプッシュした後、またはその間に、送信者支払キュー302は受信者支払キュー306に、支払開始メッセージを送信する(348)こともできる。たとえば、送信者支払キュー302は、更新を送信者クライアント・デバイス300aにプッシュするのと並行して、支払開始メッセージを受信者支払キュー306に送信することができる。そのため、送信者は、受信者が支払取引に関する情報を受信する前に、支払エンジン206が送信者の支払クレデンシャルの請求に成功したことを閲覧することができ得る。同様に、送信者メッセージ・キュー304は、受信者メッセージ・キュー308に、支払取引を示すメッセージを送信する(350)ことができる。代替的に、送信者支払/メッセージ・キューは、サーバ・デバイス108が受信者に関係する1つまたは複数の追加操作を行った後に、支払開始メッセージ/支払取引を示すメッセージを受信者支払/メッセージ・キューに送信することができる。
受信者支払キュー306が支払開始メッセージを受信すると、受信者支払キュー306は、受信者クライアント・デバイス300bに、支払開始メッセージをプッシュする(352)ことができる。次いで、受信者メッセージ・キュー308は、受信者クライアント・デバイス300bに、支払取引を示すメッセージをプッシュする(354)ことができる。このように、受信者クライアント・デバイス300bは、支払取引を示すメッセージを受信し、支払取引を示すメッセージを送信者と受信者との間のメッセージング・スレッド内に入れる前に、支払開始メッセージを受信する。
1つまたは複数の実施形態では、受信者クライアント・デバイス300bは支払取引に関する情報を以前に受信したことがないので、サーバ・デバイス108は、受信者クライアント・デバイス300aに取引IDおよびメッセージIDを提供することができる。たとえば、サーバ・クライアント・デバイス108は受信者クライアント・デバイス300bと直接通信して、取引IDおよびメッセージIDを送信することができる。したがって、受信者クライアント・デバイス300bはさらに、受信者支払キュー306および受信者メッセージ・キュー308によって、メッセージング・スレッド内の支払取引および対応するメッセージに関してプッシュされた更新情報の受信を始めることができる。代替的に、サーバ・デバイス108は受信者キューを介して支払開始メッセージと一緒に取引IDおよびメッセージIDを送信することができる。
受信者クライアント・デバイス300bは、受信者と送信者との間のメッセージング・スレッドに、支払取引を示すメッセージを追加することができる。支払取引を示すメッセージは、支払取引の額を含むことができる。特に、支払取引を示すメッセージは、支払開始メッセージに支払額へのリンクを含むことができる。したがって、支払開始メッセージから支払額の更新が支払キュー302、306を介して送信されると、メッセージング・スレッド内のメッセージの額は更新を反映するように変わることができる。
同様に、支払キュー302、306から更新を受信すると、クライアント・デバイス300a、300bは、メッセージング・スレッド内の支払取引を示すメッセージを更新す
ることができる。たとえば、以下に説明するように、支払エンジン206から支払キュー302、306を介して支払取引のステータスに関する支払の更新を受信すると、クライアント・デバイスはメッセージング・スレッド内のメッセージを更新することができる。
支払エンジン206が支払取引の資金供給に成功した後、受信者クライアント・デバイス300bが支払開始メッセージおよび対応するメッセージを受信した後、または受信者が支払取引の受け入れを示した後、図3Dに例示されるように、支払エンジン206は、受信者が支払クレデンシャルを有するかどうかを検証する(356)ことができる。たとえば、以前に説明したように、支払エンジン206は受信者が支払クレデンシャルを支払エンジン206に登録しているかどうかを決定し、支払ネットワーク115と通信して、登録されたクレデンシャルが有効かどうかを決定することができる。受信者が有効なクレデンシャルを有していなければ、サーバ・デバイスは任意選択で、受信者クライアント・デバイス300bにクレデンシャルを追加する(359)オプションを送信することができる。
受信者クライアント・デバイス300bが受信者支払キュー306からオプションを受信すると、受信者クライアント・デバイス300bは、受信者が支払クレデンシャル情報を入力することを可能にすることができる。たとえば、オプションは、受信者クライアント・デバイス300bのクライアント・アプリケーション202に、支払クレデンシャル・インターフェースを提示させる通知とすることができる。ユーザは、支払取引から資金を入金するために、入金額のためのクレデンシャル(たとえば、デビット・カード口座)を追加する360ことができる。次いで、受信者クライアント・デバイスは、クレデンシャル情報を支払エンジン206に送信する(360)ことができる。
この時点で、またはその前でも、受信者は支払を受け入れる(361)ことができる。支払受け入れプロセスの一部として、受信者は、上記説明した支払クレデンシャルを選択または追加することができる。受信者が支払を受け入れると、受信者クライアント・デバイス300bは、メッセージング・スレッド内の支払取引を示すメッセージを更新することができる。受信者クライアント・デバイス300bは支払受け入れ更新を生成することもできる。支払受け入れ更新は、取引ID、メッセージID、および支払が受け入れられたことを示す更新番号を備えることができる。受信者クライアント・デバイス300bは、受信者支払キュー306に、支払受け入れ更新を送信する(362)ことができる。受信者支払キュー306は、支払開始メッセージがキューの一番上にくるように、支払開始メッセージのシーケンスIDを更新することができる。受信者支払キュー306は支払開始メッセージのステータス番号も更新する。次いで、受信者支払キュー306は、送信者支払キュー302および支払エンジン206に、支払受け入れ更新をプッシュする(362)ことができる。
送信者支払キュー302は、支払開始メッセージがキューの一番上にくるように、支払開始メッセージのシーケンスIDを更新することができる。送信者支払キュー302は支払開始メッセージのステータス番号も更新する。次いで、送信者支払キュー302は、支払受け入れ更新を送信者クライアント・デバイス300aにプッシュする。支払受け入れ更新に基づいて、送信者クライアント・デバイス300aは、送信者のメッセージング・アプリケーションのメッセージング・スレッド内の支払取引を示すメッセージを更新することができる。これにより、送信者は、メッセージング・スレッド内で支払取引を示すメッセージを閲覧し、受信者が支払を受け入れたことを確認することが可能になる。
図3Dに示されるように、受信者支払キュー306は、送信者支払キュー302および支払エンジン206に同時に、支払受け入れ更新をプッシュする(362)ことができる。これにより、送信者が、支払エンジン206と同時に支払受け入れ更新を受信すること
を可能にすることができる。データベースに読み込まれてから送り出されるサーバ・デバイスに最初に支払受け入れ更新を送信しなくてもよいことから、支払/メッセージ・キューのプロセスは、メッセージおよび更新の速度および効率を上げられることが理解されるであろう。図の残りは、例示しやすいように、支払キューとメッセージ・キューが、同時にではなく、更新またはメッセージを送信またはプッシュすることを例示している。本明細書の開示に鑑みて、キューは、メッセージ/更新を同時にまたは異なる時点で送信/プッシュできることが理解されるであろう。
図3Eが例示するように、受信者による支払の受け入れ後、支払エンジン206は、一時口座から支払取引のための資金をデビット請求する(368)ことができる。支払エンジン206は支払ネットワーク115に支払クレジット要求を送信(370)して、資金を受信者の支払クレデンシャルに入れる。支払クレジット要求を受信すると、支払ネットワーク115は、支払取引に対応する支払額を、受信者の支払クレデンシャルにクレジット提供する(372)ことができる。支払ネットワーク115は、支払エンジン206に、支払ネットワーク115が受信者の支払クレデンシャルへのクレジット提供を成功したことを示す支払クレジット応答を送信する(374)。
支払エンジン206が支払ネットワーク115から支払クレジット提供成功応答を受信した後、支払エンジン206は、受信者支払キュー306に、移動成功更新を送信する(376)ことができる(図3Fに示される)。移動成功更新は、支払取引の取引IDおよび更新されたステータスを含むことができる。たとえば、移動成功更新は、受信者支払クレデンシャルへの資金の移動が成功したことをクライアント・デバイスに示す新たなステータス番号を含むことができる。代替的に、支払取引が成功しなかった場合、支払エンジン206は、成功しなかった取引に対する異なるステータス番号を使用して、移動が成功しなかったことを示すステータス更新を送信することができる。
受信者キューが移動成功更新を受信した後、受信者支払キュー306は、送信者支払キュー302に、移動成功更新を送信する(378)ことができる。受信者支払キュー306は、送信者支払キュー302に更新を送信するのと並行して、受信者クライアント・デバイス300bに支払成功更新をプッシュする(380)こともできる。代替的に、受信者支払キュー306は、更新を送信者支払キュー302に送信する前に、更新を受信者クライアント・デバイス300bにプッシュすることができる。送信者支払キュー302が支払成功更新を受信すると、送信者支払キュー302は、送信者クライアント・デバイス300aに、支払成功更新をプッシュする(382)ことができる。
1つまたは複数の実施形態では、クライアント・デバイス302a、302bが、対応する支払キューから支払取引についてのステータス更新を受信すると、クライアント・アプリケーション202は更新を検出し、メッセージング・スレッドに関連付けられている1つまたは複数の行為を行うことができる。たとえば、図5Nから図5Oに詳しく説明されるように、クライアント・アプリケーション202は更新を識別し、対応するメッセージ・ステータス更新をメッセージング・スレッド内に表示することができる。例示するために、クライアント・アプリケーション202は、メッセージング・スレッド内に、支払取引が新たなステータスを有するというアイコンまたは視覚的標識を表示することができる。代替的に、支払エンジン206はネットワーク・アプリケーション204と通信して、対応するメッセージ・キューを介して更新をクライアント・デバイス302a、302bに送信することができる。
以前に説明したように、ネットワーク・アプリケーション204および支払ネットワーク206は、システム100のユーザ各人のためのキューと通信する。図4は、各ユーザに専用の複数のキューを使用して、支払およびメッセージの送信を促進するシステム10
0の一実施形態を例示する。1つまたは複数の実施形態によると、サーバ・デバイス108はネットワーク・アプリケーション204、支払ネットワーク206、送信者キュー400(すなわち、送信者支払キュー302および送信者メッセージ・キュー304)、および受信者キュー402(すなわち、受信者支払キュー306および受信者メッセージ・キュー308)を含み得る。代替的に、送信者キュー400および受信者キュー402は個別のサーバ・デバイス上にあってもよく、送信者と受信者それぞれが専用のサーバ・デバイス上にあってもよい。
示されるように、サーバ・デバイスは、送信者クライアント・デバイス300aおよび受信者クライアント・デバイス300bと通信状態にある。1つまたは複数の実施形態では、サーバ・デバイス108の構成要素のそれぞれが互いに通信し得る。たとえば、送信者キュー400および受信者キュー402はネットワーク・アプリケーション204と通信して、送信者と受信者との間のメッセージング・スレッド内のメッセージの更新を送信および受信し得る。同様に、送信者キュー400および受信者キュー402は支払エンジン206と通信して、各デバイス上のクライアント・アプリケーション202内の支払取引の更新を送信および受信し得る。
サーバ・デバイス108の構成要素の少なくとも一部はまた、送信者クライアント・デバイス300aおよび受信者クライアント・デバイス300bの両方または一方とも通信し得る。たとえば、送信者キュー400は送信者クライアント・デバイス300aと通信してもよく、受信者キュー402は受信者クライアント・デバイス300bと通信してもよい。あるタイプの通信の場合、支払エンジン206はまた、送信者クライアント・デバイス300aおよび受信者クライアント・デバイス300bと直接通信し得る。例示のために、支払エンジン206は、クライアント・デバイスまたは支払エンジン206がセキュア接続でデータ(たとえば、クレデンシャル情報などの個人情報を含むデータ)を移動するとき、クライアント・デバイスと直接通信することができる。図示していないが、1つまたは複数の実施形態では、ネットワーク・アプリケーション204は、ユーザ・アカウント情報などの機密ユーザ情報(たとえば、ログインのユーザ名/パスワード)を送信または受信するために、クライアント・デバイスと通信し得る。
1つまたは複数の実施形態では、送信者キュー400および受信者キュー402は、クライアント・デバイス302a、302bが常にネットワーク・アプリケーション204および支払エンジン206と直接通信する場合よりも迅速に、システム100がユーザ間でメッセージを処理および交換することを可能にする。たとえば、キューは、永続的な記憶のために最初にメッセージまたは更新をデータベースに書き込まなくても、システムが少なくともいくつかのメッセージまたはメッセージの変更を送信者から受信者に送信することを可能にする。特に、システム100はキューを使用して、メッセージを受信者に送信するのと並行して、ネットワーク・アプリケーション204および支払エンジン206の両方または一方にメッセージを送信することができる。
例示のために、送信者クライアント・デバイス300aがメッセージを送信者キュー400に送信すると、送信者キュー400は、ネットワーク・アプリケーション204および支払エンジン206の両方または一方ならびに受信者キュー402にメッセージを転送することができる。次いで、受信者キュー402は、ネットワーク・アプリケーション204または支払エンジン206が(たとえば、メッセージをデータベースに書き込む、またはメッセージに関連する別の操作を行うことにより)メッセージを処理しているときと本質的には同時に、メッセージを受信者クライアント・デバイス300bにプッシュすることができる。送信者から受信者への、およびその逆のメッセージの配信における直接的な中間ステップとしてネットワーク・アプリケーション204および支払エンジン206の両方または一方を省くことにより、システム100は交換速度を改善する。
ある特定の更新をクライアント・デバイスに配信するべきかどうかを決定するとき(たとえば、接続損失の後)、キューは、更新に関係付けられているシーケンスIDおよびクライアント・デバイスから取得したシーケンスIDに基づいて、クライアント・デバイスがすでに更新を受信しているかどうかを決定することができる。シーケンスIDが更新のシーケンスIDと一致しない場合、キューは、更新および間にある更新をクライアント・デバイスにプッシュし、クライアント・デバイスをキューと同期させることができる。クライアント・デバイスが同期されて、確立された接続をもつようになったら、キューは、クライアント・デバイスからシーケンスIDを要求せずにクライアント・デバイスに新たな更新をプッシュすることができ、クライアント・デバイスに更新を要求するよう要求するのではなく、クライアント・デバイスのユーザが、支払取引についてのステータス更新が起きたときに、かかるステータス更新を閲覧することが可能になる。
加えて、1つまたは複数の実施形態において、キューは、クライアント・デバイスにプッシュするために、所定の量まで一時的に記憶することができる。具体的に、キューは、クライアント・デバイスがサーバ・デバイス108との接続を確立したときにクライアント・デバイスにプッシュするために、更新を記憶する。たとえば、キューのそれぞれは、システム100がクライアント・デバイスにプッシュしたことのない古い更新が消えていくか、またはキューから除去される前に、対応するクライアント・デバイスにプッシュするために、最大1千のメッセージまたは変更を記憶することができる。代替例において、キューは、各更新に関連付けられているタイムスタンプ情報に基づいて、または他の基準もしくは追加の基準に従って、動的な数のメッセージを記憶し得る。
以下でより詳細に説明されるように、図1〜図2および図4に関して説明されるシステム100の構成要素は、他の構成要素とともに、および/または他の構成要素と組み合わせて、1つまたは複数のグラフィカル・ユーザ・インターフェースを提供することができる。特に、構成要素は、ユーザが、さまざまな目的のために表示要素の集合と対話することを可能にすることができる。特に、図5A〜図5Oおよび続く説明は、送信者ユーザが支払を受信者に送信することを可能にするユーザ・インターフェースおよび特徴のさまざまな例となる実施形態を例示する。
たとえば、図5A〜図5Oは、電子メッセージングならびに支払を送信および受信することを促進するためにクライアント・アプリケーション202によって提供されるGUIのさまざまな図を例示する。いくつかの例では、クライアント・デバイス(すなわち、クライアント・デバイス300a、300b)は、システム100の一部またはすべてを実施することができる。たとえば、図5Aは、携帯電話機(たとえば、スマートフォン)などのハンドヘルド・デバイスであるクライアント・デバイス500を例示する。本明細書で使用されるとき、「ハンドヘルド・デバイス」という用語は、ユーザの片手の中で持たれる/操作されるようなサイズおよび構成にされたデバイスに及ぶ。しかしながら、追加例または代替例では、限定されるものではないが、タブレット・デバイス、ハンドヘルド・デバイス、より大型の無線デバイス、ラップトップ・コンピュータもしくはデスクトップ・コンピュータ、パーソナルデジタル・アシスタント・デバイス、および/または他の任意の適切なコンピューティング・デバイスなどの他の任意の適切なコンピューティング・デバイスが、本明細書で説明されるプロセスおよび動作またはプロセスならびに動作のうちの1つまたは複数を実行することができる。
クライアント・デバイス500は、以下で図8のコンピューティング・デバイス800に関連して説明される特徴および構成要素のいずれかを含む。図5Aに例示されるように、クライアント・デバイス500は、ユーザ・インターフェースを表示または提供することができ、それによってユーザ入力が受信および/または検出され得るタッチスクリーン
502を含む。本明細書で使用されるとき、「タッチスクリーン表示」は、タッチスクリーン・デバイスの表示に及ぶ。1つまたは複数の実施形態では、タッチスクリーン・デバイスは、ユーザがタッチ・ジェスチャーを実行し得る少なくとも1つの表面を有するクライアント・デバイス(たとえば、ラップトップ、タブレット・コンピュータ、携帯情報端末、メディア・プレーヤ、携帯電話)であり得る。加えて、または代替的に、クライアント・デバイス500は、タッチ・パッドまたは図8に関連して以下で説明されるデバイスなどの他の任意の適切な入力デバイスを含んでよい。
以前に触れられたように、システム100は、電子メッセージング・システム(たとえば、フェースブック・メッセンジャーなどのメッセージング・アプリケーション)と電子支払システムを統合する。図5Aは、タッチスクリーン502上でユーザ・インターフェース・マネージャ208によって提供される人々または連絡先ユーザ・インターフェース504を例示する。連絡先ユーザ・インターフェース504は、クライアント・デバイス500のユーザ(「ドナルド」)の連絡先のリストを提供する。特に、連絡先ユーザ・インターフェース504は、システム100内でユーザが接続されるまたは関連付けられている「友達」または連絡先506を列挙する。
連絡先ユーザ・インターフェース504は、連絡先506の各々の1つまたは複数のステータスをさらに提供する。たとえば、連絡先ユーザ・インターフェース504は、第1のステータス・インジケータ508を介することによって、所与の連絡先または共同ユーザがアクティブか否か(たとえば、クライアント・アプリケーション202にログインしている、インターネットに接続されている、クライアント・アプリケーション202を使用してアクションを最近実行した)を示す。第1のステータス・インジケータ508は、アイコンなどのグラフィカル・ユーザ・インターフェース・オブジェクトを備える。一実施形態では、第1のステータス・インジケータ508は、アクティブである各共同ユーザの名前の隣に第1の色(たとえば、緑色)のドットを備える。関係して、第1のステータス・インジケータ508は、非アクティブであるユーザの隣に第2の色(たとえば、灰色)のドットも含む。
連絡先ユーザ・インターフェース504は、デバイス・インジケータ510を介して、連絡先または共同ユーザが現在使用しているデバイスのタイプを示す。デバイス・インジケータ510は、アイコンなどのグラフィカル・ユーザ・インターフェース・オブジェクトを備える。たとえば、示されるように、デバイス・インジケータ510は、共同ユーザがアクティブである、またはパーソナル・コンピュータを使用してクライアント・アプリケーション202にログインしていることを示す、「ウェブ」という単語を備える。同様に、デバイス・インジケータ510は、所与の連絡先がアクティブである、または携帯電話などのモバイル・デバイスを使用してクライアント・アプリケーション202にログインしていることを示すために、「モバイル」という単語を含む。加えて、または代替的に、デバイス・インジケータ510は、所与の共同ユーザのクライアント・デバイスのブランドまたはモデルを示す。
所与の共同ユーザのプライバシー設定に応じて、連絡先ユーザ・インターフェース504は、支払ステータス・インジケータ511をさらに含む。支払ステータス・インジケータ511は、所与の共同ユーザが登録されているまたはシステム100を使用して電子支払を受信もしくは送信することが可能であるか否かを示す。たとえば、所与の共同ユーザの名前の隣における支払ステータス・インジケータ511の存在は、所与の共同ユーザが、システム100またはネットワーク・アプリケーション204を用いて共同ユーザの口座またはプロファイルに関連付けられている支払クレデンシャルを有することを示す。支払ステータス・インジケータ511は、アイコンなどのグラフィカル・ユーザ・インターフェース・オブジェクトを備える。たとえば、図5Aによって示されるように、支払ステ
ータス・インジケータ511は、支払取引に一般に関連付けられているドル記号または他のシンボルを備える。
クライアント・アプリケーション202は、ネットワーク・アプリケーション204のステータス・マネージャ232から、クライアント・デバイス500のユーザに関連付けられている連絡先のステータスの通知または標識を受信する。たとえば、クライアント・アプリケーション202は、クライアント・アプリケーション202がいつアクティブまたはオンラインであるかを示すために、ネットワーク・アプリケーション204に対して通知またステータス更新を送信する。次いで、ステータス・マネージャ232は、所与のユーザに関連付けられているクライアント・デバイス104aに対して、所与のユーザに関連付けられている連絡先のステータスを送信する。関係して、ステータス・マネージャ232は、所与のユーザが、所与のユーザのプロファイルに関連付けられている支払クレデンシャルを有するか否かを決定することができ、支払を送信および受信できることを有するユーザの連絡先のクライアント・デバイス500に対して標識を提供する。
本明細書における開示に鑑みて、電子メッセージング・システムと電子支払システムの統合は、従来の支払アプリケーションに勝る大きな利点を提供することが理解されよう。特に、ユーザは、連絡先ユーザ・インターフェース504にアクセスし、どの共同ユーザがアクティブであるか、したがって、支払取引についてチャットするため、または支払の受信を告知するためにすら利用可能であるかを決定する。そのうえ、連絡先ユーザ・インターフェース504は任意選択で、ユーザが、どの共同ユーザが支払クレデンシャルを有するかを知ることを可能にする。したがって、連絡先ユーザ・インターフェース504が、共同ユーザが支払を受信するか否か、またはユーザが共同ユーザを招待して登録するよう尋ねられるか否かをユーザに知らせる。
上記で説明されたように、システム100は、データを受信および送信することを促進する。1つまたは複数の実施形態では、通信マネージャ230は、コンピューティング・デバイス104a、104b、500の間で電子通信を受信および送信することを促進する。また、1つまたは複数の実施形態では、ユーザ・インターフェース・マネージャ208は、通信マネージャ230を介して送信および受信された電子通信を表示する。1つまたは複数の実施形態では、ユーザ・インターフェース・マネージャ208は、メッセージング・スレッド内で通信マネージャ230を介して送信および受信された電子通信をメッセージング・グラフィカル・ユーザ・インターフェース内に表示する。たとえば、ユーザは、連絡先とメッセージを交換することを促進するメッセージング・グラフィカル・ユーザ・インターフェースを開くために、連絡先ユーザ・インターフェース504の連絡先のリスト内の連絡先リストと対話する。たとえば、図5Bは、ユーザが連絡先ユーザ・インターフェース504から「ジョー」という連絡先を選択するとタッチスクリーン502上にユーザ・インターフェース・マネージャ208によって提供されるメッセージング・グラフィカル・ユーザ・インターフェース512を例示する。
示されるように、メッセージング・グラフィカル・ユーザ・インターフェース512は、クライアント・デバイス500のユーザの口座から送信された電子メッセージ516aを含むメッセージング・スレッド514を含む。同様に、メッセージング・スレッド514は、共同ユーザ(すなわち、「ジョー」)の口座によって受信された電子メッセージ516bを含む。1つまたは複数の実施形態では、ユーザ・インターフェース・マネージャ208は、より古いメッセージがメッセージング・スレッド514の上部において表示されるように、新しいメッセージがメッセージング・スレッド514の下部に対して追加されるように、メッセージング・スレッド514を編成する。代替実施形態では、ユーザ・インターフェース・マネージャ208は、メッセージ516a、516b間の時系列の関係または他の関係をユーザに対して示し得る任意の様式で、メッセージ516a、516
bを編成し得る。
ユーザ・インターフェース・マネージャ208は、ユーザがメッセージング・スレッド514内で電子通信を区別する助けとなるために、さまざまな電子通信特性を提供する。たとえば、図5Bに例示されるように、ユーザ・インターフェース・マネージャ208は、メッセージング・グラフィカル・ユーザ・インターフェース512の片側(すなわち、右側)に向けられた、クライアント・デバイス500のユーザの口座から送信された電子メッセージ516aを表示する。一方、ユーザ・インターフェース・マネージャ208は、メッセージング・グラフィカル・ユーザ・インターフェース512の反対側(すなわち、左側)に向けられた、メッセージング・ハンドラ212によって受信された電子メッセージ516bを表示する。1つまたは複数の実施形態では、電子メッセージ516a、516bの位置決めおよび方向は、メッセージング・グラフィカル・ユーザ・インターフェース512内で表示されたさまざまな電子通信の起点のクライアント・デバイス500のユーザに対して明確なインジケータを提供する。
ユーザが電子通信を区別する助けとなるユーザ・インターフェース・マネージャ208によって提供された別の特性は、電子通信の色であり得る。たとえば、図5Bに示されるように、ユーザ・インターフェース・マネージャ208は、送信された電子メッセージ516aを第1の色で、受信された電子メッセージ516bを第2の色で表示する。1つまたは複数の実施形態では、第1の色および第2の色はそれぞれ、逆にされた字面色を有する、黒色および白色であってよい。一代替実施形態では、ユーザ・インターフェース・マネージャ208は、白色の背景および異なる色の輪郭を用いて電子メッセージ516a、516bを表示してよい。
さらに別の代替実施形態では、ユーザ・インターフェース・マネージャ208は、異なるパターンの背景を用いて電子メッセージ516a、516bを表示してもよいし、異なるフォントで表示してもよいし、異なるサイズで表示してもよいし、または送信された電子メッセージ516aと受信された電子メッセージ516bとを区別し得る他の任意の様式で表示してもよい。たとえば、1つまたは複数の実施形態では、ユーザ・インターフェース・マネージャ208は、青色の背景上の白色の字面を用いて、送信された電子メッセージ516aを表示する。同様に、1つまたは複数の実施形態では、ユーザ・インターフェース・マネージャ208は、灰色の背景上の黒色の字面を用いて、受信された電子メッセージ516bを表示する。
上記で言及されたように、ユーザ・インターフェース・マネージャ208は、メッセージ入力制御パレットまたはツールバー522も提供し得る。図5Bに例示されるように、ユーザ・インターフェース・マネージャ208は、メッセージ入力制御パレットまたはツールバー522をメッセージング・グラフィカル・ユーザ・インターフェース512の一部として表示する。1つまたは複数の実施形態では、メッセージ入力制御パレットまたはツール・バー522は、さまざまなメッセージ入力オプションまたは他のオプションをユーザに提供する、さまざまな選択可能なメッセージ入力制御を含む。たとえば、図5Bでは、メッセージ入力制御パレットまたはツールバー522は、テキスト入力制御部524aと、支払制御部524bと、カメラ・ビューファインダ入力制御部524cと、マルチメディア入力制御部524dと、シンボル入力制御部524eと、「いいね」インジケータ制御部524fとを含む。1つまたは複数の代替実施形態では、メッセージ入力制御パレットまたはツールバー522は、異なる順序で入力制御部524a〜524eを提供してもよいし、図5Bで表示されない他の入力制御部を提供してもよいし、図5Bに示される入力制御部524a〜524eのうちの1つまたは複数を省略してもよい。
以下でより詳細に説明されるように、ユーザは、異なるタイプの電子通信を構築および
送信するために、入力制御部524a〜524eのいずれかと対話してよい。たとえば、ユーザがテキスト入力制御部524aと対話する場合、ユーザ・インターフェース・マネージャ208は、メッセージング・グラフィカル・ユーザ・インターフェース512の一部分の中に、ユーザがテキスト・メッセージ520を構築するために利用し得るタッチスクリーン表示キーボード518を提供し得る。同様に、ユーザがマルチメディア入力制御部524dと対話する場合、ユーザ・インターフェース・マネージャ208は、メッセージング・グラフィカル・ユーザ・インターフェース512の一部分の中に、(たとえば、デジタル写真、デジタル映像などを表示するための)マルチメディア・コンテンツ・アイテム表示エリアを提供し得る。同様に、ユーザがカメラ・ビューファインダ入力制御部524cと対話する場合、ユーザ・インターフェース・マネージャ208は、メッセージング・グラフィカル・ユーザ・インターフェース512の一部分の中に、ユーザがメッセージング・スレッド514に対してデジタル写真またはデジタル映像をキャプチャ、送信、および追加するために利用し得るデジタル・カメラ・インターフェースを提供し得る。
ユーザは、メッセージまたは支払を構築し、システム100を介して1つまたは複数の共同ユーザに対して送信するために、メッセージ入力制御部524a〜eのいずれかと対話し得る。たとえば、図5Bでは、支払制御部524bと対話するユーザの指が示されている。1つまたは複数の実施形態では、ユーザ入力ディテクタ210は、支払制御部524bとのユーザの指または他の入力デバイスの対話(たとえば、タップ・タッチ・ジェスチャー)を検出する。ユーザ入力ディテクタ210が支払制御部524b上でタップ・タッチ・ジェスチャーを検出すると、ユーザ・インターフェース・マネージャ208は、図5Cによって示されるように、メッセージング・ユーザ・インターフェース512の一部分の中に支払ユーザ・インターフェース515を表示し得る。
特に、図5Cによって例示されるように、ユーザ・インターフェース・マネージャ208は、メッセージング・ユーザ・インターフェース512の第1の部分(すなわち、上方部分)の中にメッセージング・スレッド514を提供する。ユーザ・インターフェース・マネージャ208は、メッセージング・ユーザ・インターフェース512の第2の部分(すなわち、下方部分)の中に支払ユーザ・インターフェース515を提供する。したがって、ユーザ・インターフェース・マネージャ208は、ユーザがメッセージング・スレッド514および任意の新しいメッセージを閲覧することを可能にしながら、支払取引を開始することも可能にする。代替実施形態では、ユーザ・インターフェース・マネージャ102は、メッセージング・スレッド514および支払ユーザ・インターフェース515を水平に、または垂直構成以外の別の構成で構成する。さらに他の実施形態では、支払ユーザ・インターフェース515は、メッセージング・ユーザ・インターフェース512または別個のユーザ・インターフェースの上にオーバーレイを備える。
本明細書における説明から明らかになるように、支払ユーザ・インターフェース515は、ユーザが支払取引を開始する(支払を送信する、支払を要求するなど)ことを可能にしながら、同時に支払取引に対する1つまたは複数の共同ユーザ・パーティとともにメッセージを閲覧する。たとえば、図5Bおよび図5Cは、デバイス500の送信者ユーザ(「ブラッド」)(以下、送信者という)が、「この前の夜の25ドルを送ってもらえる?」というメッセージをメッセージング・スレッド514内の会話に参加している受信者共同ユーザ(「ジョー」)から受信したことを例示する。応答では、ブラッドが、「もちろん」と応答した。この会話すなわちメッセージング・セッションに応答して、送信者は、受信者に対して支払を送信することを望む。メッセージング・ユーザ・インターフェース512は、送信者がメッセージング・スレッド514またはメッセージング・ユーザ・インターフェース512から離れてナビゲートする必要なしに、そのようにすることを可能にする。代替として、メッセージング・ユーザ・インターフェース512は、分離した支払ユーザ・インターフェース515にナビゲートすることができる。
示されるように、支払インターフェース515aは、所望の数字を順番に入力することによって(すなわち、25ドルに到達するために数字キーパッド538の中で「2」次いで「5」をタップすることによって)ユーザが支払額532を選択することを可能にする数字キーパッド538を含む。支払インターフェースは、選択された数字を表示して、ユーザが、選択された数字が所望の支払額に対応することを確認し、それに応じて選択された数字を修正することを可能にする。本明細書における開示に鑑みて、図5Cの支払インターフェース515は支払インターフェースの一実装形態であることが理解されるであろう。1つまたは複数の実施形態では、ユーザは、複数の異なる支払インターフェースから支払インターフェース515を選択する。
1つまたは複数の実施形態では、送信者が支払要素537を選択したこと、または別のやり方で支払要求を送信させたことに応答して、クライアント・アプリケーション202は、支払エンジン206に対して要求を送信して、送信者が、登録された支払クレデンシャルを有するか否かを決定する、および/または、ユーザの登録された支払クレデンシャルを許可する。図3Aに例示するように、とりわけ、クライアント・アプリケーション202は、支払要求を生成し、支払開始要求を支払エンジン206に送信することができる。送信者が、登録された支払口座に関連付けられない場合、ユーザ・インターフェース・マネージャ208は、図5Dに示されるように、送信者が支払クレデンシャルを登録することを可能にするクレデンシャル・ユーザ・インターフェース534を提示する。代替的に、またはこれに加えて、グラフィカル・インターフェースは、送信者が口座を作成することを必要とすることなく、ワンタイム支払を促進するためにユーザが支払情報を入力する(たとえば、デビット・カード番号またはクレジット・カード番号を入力する)ことを可能にするワンタイム支払オプションを提示する。
クレデンシャル・ユーザ・インターフェース534は、送信者が入力することを選択した支払クレデンシャルのタイプに応じて変化することが理解されるであろう。またはより多くの実施形態では、ユーザ・インターフェース・マネージャ208は、受信者に対して資金を送信するために許容できる支払クレデンシャル(たとえば、クレジット・カード、デビット・カード、ギフト・カード、銀行口座)のリストを提供する。ユーザが支払クレデンシャルのタイプを選択すると、ユーザ・インターフェース・マネージャ208は、適用可能なクレデンシャル・ユーザ・インターフェース534を提供する。たとえば、図5Dは、デビット・カードを入力するためのクレデンシャル・ユーザ・インターフェース534を例示する。示されるように、ユーザは、数字キーパッド538を介して、デビット・カードに関連付けられているデビット・カード番号、有効期限、セキュリティ・コード、および請求書送付先郵便番号コードを入力する。支払情報を入力すると、メッセージング・ハンドラ212は、支払クレデンシャルを記憶するために支払エンジン206に対して支払クレデンシャル情報を送信する。
送信者が支払クレデンシャル詳細を入力した後(自動リマインダによってであれ、受信者からの手動リマインダであれ、または送信者自身のチョイスによってであれ)、システム100は、支払取引を処理し続ける。1つまたは複数の実施形態では、クライアント・アプリケーション202は、将来の支払取引を処理するためにPINまたは他のショートカットを使用するオプションを送信者に対して提供する。たとえば、図5Eに示されるように、クライアント・アプリケーション202は、セキュリティを追加する目的で、送信者が金銭を送信するためにPINを作成したいか否か送信者に尋ねるポップアップ・ウィンドウ540または他の通知を、メッセージング・インターフェース512の中で送信者に対して提示する。
送信者が、将来の支払取引を処理するためにPINを入力することを選択した場合、ク
ライアント・アプリケーション202は、図5Fに示されるように、PINを作成するためのPIN作成インターフェース542を提示する。具体的には、PIN作成インターフェースは、送信者が、送信者の記憶されたクレデンシャルに関連付けられている一意のPINを作成することを可能にする。たとえば、PINは、将来の支払取引を処理することが可能になる前に送信者が数字キーパッド538を介して入力する4桁の番号(または任意の長さの文字列)とする。いくつかの例では、システム100は、PINを作成し、記憶されたクレデンシャルとPINを関連付けるために、PINを再入力することによって、送信者がPINを確かめることを要求することもできる。
将来の支払取引のために、システム100は、送信者がPINを入力するPIN入力インターフェースを提示する。PINを入力することは、システム100が、PINに関連するユーザのために記憶されたクレデンシャルを使用して支払取引を処理することを可能にする。したがって、PINを入力することは、送信者が、送信者がシステム100を介して別のユーザに対して金銭を送信することを望むたびにクレデンシャルを思い出すことなく支払取引を開始および完了することを可能にする。
1つまたは複数の実施形態では、ユーザの支払クレデンシャルを検証するに際し、またはこれを検証した後、送信者クライアント・デバイス500は支払要求を支払エンジン206に送信して、処理し、受信者クライアント・デバイスに配信することができる。以前に説明されたように、支払エンジン206が送信者クライアント・デバイス500から支払要求を受信して、送信者の支払クレデンシャルへの請求に成功した後、支払エンジン206は、送信者クライアント・デバイス500への支払開始メッセージを送信者支払キュー302に送信する。送信者支払キュー302は更新を送信者クライアント・デバイス500にプッシュし、受信者支払キュー306にも更新を送信することができる。
支払開始メッセージに関連して、ネットワーク・アプリケーション204は、会話に関与する送信者と受信者の両方に対して、メッセージング・スレッド514の中で支払額532を提示するために、支払要求を示すメッセージを生成することができる。具体的には、ネットワーク・アプリケーション204は、メッセージを送信者メッセージ・キュー304に送信することができる。次いで、送信者メッセージ・キュー304はメッセージを送信者クライアント・デバイス500にプッシュするとともに、受信者メッセージ・キュー308にもメッセージを転送する。
送信者クライアント・デバイス500がメッセージおよび支払開始メッセージを受信すると、送信者クライアント・デバイス500はメッセージング・スレッド514内にメッセージを表示することができる。以前に述べたように、支払取引に関連付けられている情報をメッセージが示すことができるように、メッセージは、取引IDおよびメッセージIDによって支払取引にリンク付けされていてもよい。たとえば、図5Gは、送信者と受信者との間のメッセージング・スレッド514の中で、支払要求のために支払額532を示す。例示するために、システム100はメッセージング・スレッド514の会話の時間依存フローの中で、メッセージとして支払額532を提示することができる。
図5H〜図5Mは、受信者クライアント・デバイス500aのためのグラフィカル・ユーザ・インターフェースを例示する。図5Hは、送信者が受信者に対して支払額を送信する支払取引を開始した後の、受信者クライアント・デバイス500aにおけるメッセージング・インターフェース512aを例示する。1つまたは複数の実施形態では、システム100は、送信者が支払取引を開始したことを、支払開始メッセージおよび支払取引を示すメッセージを介して受信者に通知することができる。具体的には、受信者支払キュー306が支払開始メッセージを受信すると、受信者支払キュー306は更新を受信者クライアント・デバイス500aにプッシュすることができる。
加えて、受信者メッセージ・キュー308は、対応するメッセージを受信者クライアント・デバイス500aにプッシュすることができる。たとえば、ユーザ・インターフェース・マネージャ208は、送信者の身元に関連付けられているメッセージング・インターフェース512aのメッセージング・スレッド514aの中で支払額を、および支払額532aを有する支払要求の中でテキスト内容(たとえば、「メッセンジャーから送信された」)を、示すことができる。例示するために、ユーザ・インターフェース・マネージャ208は、送信者と受信者との間で交換された他のメッセージとともに、支払額532aをメッセージング・スレッド514aに挿入することができる。加えて、または代替的に、ユーザ・インターフェース・マネージャ208は、別の様式で(たとえば、受信者クライアント・デバイス500aの通知エリア内またはメッセージング・インターフェース512aのオーバーレイ内で通知を提供することによって)支払額532aを提示することができる。
1つまたは複数の実施形態では、ユーザ・インターフェース・マネージャ208は、受信者が支払取引を受け入れることを可能にするために(すなわち、受入要素552などのメッセージング・インターフェース内の要素を選択することによって)受信者に対して確かめ要求を提供することができる。受信者が支払取引を受け入れた後、支払エンジン206は、支払取引を完了し、送信者から受信者へ資金を移動するプロセスを始めることができる。一代替例では、支払要求は、システム100が支払取引を自動的に処理および完了するに際し、単に支払取引の注意を受信者に向けることができる。
1つまたは複数の実施形態では、受信者が支払を受け入れることを選択したとき、または受信者が支払要求を受信した後、クライアント・アプリケーション202は、受信者が認定支払方法をサポートする登録された支払クレデンシャルを受信者が有するか否かを決定するために支払エンジン206に対して要求を送信することができる。受信者が、登録された支払口座に関連付けられていない場合、支払エンジン206は、図5Iに示されるように、受信者が口座を開設し、支払取引のための支払クレデンシャル(たとえば、デビット・カード口座またはクレジット・カード口座)を登録することを可能にするクレデンシャル・ユーザ・インターフェース534を表示するよう受信者クライアント・デバイス500aに通知することができる。代替的に、またはこれに加えて、グラフィカル・インターフェースは、送信者が口座を開設することを必要とすることなく、ワンタイム支払を促進するために受信者が支払情報を入力することを可能にするワンタイム支払オプションを提示することができる。
受信者が支払クレデンシャルを入力した後、受信者クライアント・デバイス500aは、認証/検証のために受信者の支払クレデンシャルを支払エンジン206に送信する。これで、システム100は支払取引を完了することができる。具体的には、システム100は、送信者から受信者へ資金を移動することによって、支払取引を完了することができる。いくつかの例では、送信者から受信者へ資金を移動することは、以前に図3A〜図3Fに関係して説明されたように、対応する金融機関によって取引が受け入れられるまで受信者に関連付けられている一時口座または中間口座に資金を移動することを含むことができる。代替例では、支払取引を完了することは、受信者によって入力された宛先入金口座へ資金を直接的に移動することを含むことができる。
図5Jに示されるように、支払取引を完了した後(または、受信者が支払取引を完了することを選択した後)、システム100は、支払取引が完了したこと、および受信者は一定の時間枠以内に支払を受信するべきであることを受信者に通知する支払完了メッセージ558を表示することができる。たとえば、支払完了メッセージ558は、受信者が一定の期間内に支払を受信するべきであることを受信者に通知することができる。1つまたは
複数の実施形態では、受信者クライアント・デバイス500aは、支払取引が完了したことを示す支払ステータス更新を受信者支払キュー306から受信した後に、完了メッセージ558を表示することができる。
追加の実施形態では、システム100は、受信者のための複数の支払クレデンシャルから1つの支払クレデンシャルを選択することができる。特に、システム100は、受信者が以前に支払エンジン206に登録した複数の支払クレデンシャルを識別し、適切な支払クレデンシャルを選択することができる。たとえば、システム100は、複数の入金口座を識別することができ、ユーザが支払インターフェース515aを介して複数の入金口座から選択することを可能にする。適切な支払クレデンシャルを選択した後、システムは支払取引を完了し(すなわち、受信者の選択した支払クレデンシャルに対して支払額をプッシュし)、受信者に支払完了メッセージ558を提供することができる。
1つまたは複数の実施形態では、支払完了メッセージ558を閉じた後または別のやり方で支払取引を完了した後、システム100は、送信者クライアント・デバイス500上のメッセージング・スレッド514および/または受信者クライアント・デバイス500aのメッセージング・スレッド514aの中の支払額532(および支払要求の他の任意のテキスト)を更新して、システム100が支払取引を処理するのを完了したことを反映する。たとえば、ユーザ・インターフェース・マネージャ208は、メッセージング・スレッド514aの中の支払要求の一定の特性(この場合、支払額532のみを備える)を変更する。例示するために、図5Kでは、ユーザ・インターフェース・マネージャ208は、図5Gに示される薄いものから図5Kに示される濃いものへと、支払要求内の支払額532aによって支払アイコン460の色または陰影を変更する。加えて、または代替的に、ユーザ・インターフェース・マネージャ208は、メッセージング・スレッド514aの中の支払要求の位置、支払要求の境界幅、支払要求の背景色、支払要求のサイズおよびフォント、またはこの目的に適した支払要求の他の任意の特性を変更する。
一例では、ユーザ・インターフェース・マネージャ208は、支払額が確定されたとき、たとえば、支払額をメッセージング・インターフェース512の中で「跳ね返らせる」ことによって、支払額をアニメーションにする。支払額をアニメーションにするとき、ユーザ・インターフェース・マネージャ208は、支払額の中の文字および/または画像を個々に、またはまとめてアニメーションにする。
加えて、または代替的に、ユーザ・インターフェース・マネージャ208は、支払取引に関連付けられている1つまたは複数の動作が完了されるまで、外観を修正する(たとえば、支払額をアニメーションにする)。たとえば、ユーザ・インターフェース・マネージャ208は、受信者が支払額を受け入れる、送信者および/もしくは受信者がクレデンシャルを入力する、またはシステム100が支払取引を完了し、送信者から受信者へ資金を移動するまで、支払額をアニメーションにする。追加実施形態または代替実施形態では、ユーザ・インターフェース・マネージャ208は、支払額が最終的なものになると、時間の量にわたって支払額の外観に対して修正を適用する。加えて、または代替的に、ユーザ・インターフェース・マネージャ208は、支払取引がいつ完了されたか、資金がいつ送信者にとって利用可能になるか、または支払取引が失敗した場合などの他の基準に基づいて、支払額の外観に対して修正を適用する。
1つまたは複数の実施形態によれば、ユーザはメッセージング・スレッド内の支払取引に関する追加情報を閲覧し得る。たとえば、図5Lに示されるように、受信者が(たとえば、メッセージをタップして)メッセージを選択する場合、メッセージング・ユーザ・インターフェース512aはメッセージング・スレッド514a内の支払要求に関連付けられている第2メッセージ550、ポップアップ・ウィンドウ、または他のステータス・イ
ンジケータに現在の支払ステータスを表示することができる。例示するために、支払エンジン206が支払取引を開始したが、支払取引がまだ完了していない場合、第2メッセージ550は取引IDについて受信した情報を取り出して、現在のステータスを「開始済み」と表示することができる。加えて、第2メッセージ550は、支払取引についてのステータス更新のタイムスタンプを表示することができる。
支払取引のステータスが更新する場合、受信者クライアント・デバイス500aは、受信者が支払取引のスタータスを見ている間でも、受信者支払キューからプッシュ通知の更新を受信することができる(たとえば、第2メッセージがリアルタイムで更新する)。図5Mに示されるように、第2メッセージ550は、支払取引が完了したことを示す「完了」へのステータス更新を示すことができる。第2メッセージ550は最新のステータス更新に関連付けられているタイムスタンプも示すことができる。1つまたは複数の例では、第2メッセージ550は、同様に、前のステータス更新を、対応するタイムスタンプとともに示すこともできる。たとえば、第2メッセージ550は追加のユーザ入力(たとえば、メッセージの長押し)に応答して追加情報を示すことができる。図5Lおよび図5Mに示されるステータスは支払の開始および完了について、支払キューから受信したステータス更新を示すが、支払エンジン206は、支払受け入れ、支払クレデンシャルが登録されたこと、支払の取消、および/またはその他を含むが、これだけに限定されない、追加のまたは代替の更新を送信することができる。
追加で、または代替的に、1つまたは複数の実施形態では、支払取引を示すメッセージで示される支払額は、支払取引の更新に応じて変えることができる。たとえば、以前に述べたように、送信者ユーザ(またはグループ支払取引の複数の送信者ユーザ)が受信者への支払額を増減することにより支払額を修正するか、支払を取消すか、または追加の送信者が支払取引に支払額を追加する場合、支払額はリアルタイムで更新し得る。例示するために、グループ支払のあるユーザがそのユーザの受信者への支払を取消す場合、以前の支払から取消された支払額を差し引くことにより、支払額は取消された支払を反映するように更新することができる。同様に、新たなユーザがグループに参加して支払を追加する場合、以前の支払額に新たな支払額を追加することにより、支払額は新たなユーザからの支払を反映するように更新することができる。
同様に、支払額は為替レートに基づいて変動し得る。たとえば、支払取引が複数の通貨を含む場合、通貨の為替レートが変動すると支払額が変動し得る。例示するために、受信者の通貨の為替レートが変動する(たとえば、受信者の通貨価値が減少する)場合、支払額は、修正された為替レートをリアルタイムで反映するように増額できるであろう。
より具体的には、上記述べたように、メッセージ・スレッド514aの中のメッセージ532aに示される支払額は、支払開始メッセージへのリンクを備える。支払キューが(クライアント・デバイスまたは支払エンジン206のいずれかから)支払額を変更する支払更新を受信すると、支払キューは支払更新を支払キューにプッシュして、支払キューに支払開始メッセージ内の支払額を更新させることができる。支払開始メッセージ内の支払額が変わると、メッセージング・スレッド514aの中のメッセージ532aに表示される支払額は、メッセージが支払開始メッセージへのリンクを備えるため、更新することができる。
1つまたは複数の実施形態では、クライアント・アプリケーション202は、支払ステータス更新に関連する支払取引を示すメッセージについて、ステータス更新を提供することができる。図5Nおよび図5Oは、送信者と受信者との間の支払取引についてのステータス更新、および、メッセージ配信/既読更新、の両方または一方に基づく、メッセージ・ステータス更新を例示する。たとえば、送信者クライアント・デバイス500のメッセ
ージング・スレッド514は、支払ステータスが変更したこと、および、送信者がとったアクションに基づいたこと、の両方または一方の視覚的インジケータ(メッセージング・スレッド514の中のメッセージの隣の円により表される)を含むことができる。例示するために、図5Nは、支払エンジン206が支払額について送信者の支払クレデンシャルへの請求に成功したことを送信者に示すメッセージ・ステータス・インジケータ552を示しているが、ステータス・インジケータは他の支払ステータス更新もしくはメッセージ・ステータス更新を示してもよく(たとえば、送信者がメッセージを受信するかもしくは読むとき)、または異なる外観を有していてもよい。
1つまたは複数の実施形態によれば、送信者クライアント・デバイス500上のクライアント・アプリケーション202は、送信者クライアント・デバイスが送信者支払キュー302から支払更新を受信したことを検出し、更新からステータス識別子を決定することができる。支払取引の更新についてのステータス識別子に基づいて、クライアント・アプリケーション202は、支払更新に対応するメッセージ・ステータスを識別し、メッセージング・スレッド514内のメッセージ・ステータスを修正することができる。たとえば、クライアント・アプリケーション202は、支払更新のメッセージ更新へのマッピングに基づいて、対応するメッセージ更新を見つけることができる。代替的に、支払エンジン206が支払ステータス更新をネットワーク・アプリケーション204に通知することができ、ネットワーク・アプリケーション204がメッセージ・ステータス更新を送信者メッセージ・キュー304を介して送信者クライアント・デバイス500に送信することができる。
支払ステータスが更新すると、それに応じてメッセージ・ステータスは更新することができる。たとえば、図5Oは、新たな支払ステータス更新またはメッセージ配信/既読更新に応答して更新されるメッセージ・ステータス・インジケータ552を例示する。例示するために、メッセージ・ステータス・インジケータ552は、更新されると、受信者が支払取引を受け入れたこと、および支払が処理されたことを示すことができる。加えて、または代替的に、メッセージング・スレッドは、メッセージング・スレッド内の支払取引またはメッセージに関連付けられている、より多くのステータス更新またはそれとは異なるステータス更新を示すことができる。たとえば、メッセージ・ステータス・インジケータ552は、受信者が支払取引を示すメッセージを受信したこと、受信者がメッセージを読んだこと、受信者がメッセージを選択することにより支払ステータス情報を閲覧したこと、または受信者の他のアクションを示すことができる。
図5A〜図5Oは、送信者が支払取引を開始する支払取引の一実施形態を例示しているが、システム100は、ユーザがメッセージング・アプリケーションを介して支払を要求することを可能にすることができる。たとえば、ユーザが支払を要求するとき、ユーザのデバイスはユーザの支払キューを介して1人または複数の他のユーザに対する要求をサーバ・デバイス108および他のユーザの支払キューに送信することができる。他のユーザは支払を承認し、それぞれの支払キューを介して承認を送信することができる。
図1〜図5O、対応するテキスト、および例は、統合された電子支払およびメッセージング・システムを使用した支払の送受信を行うための多くの異なるシステムおよびデバイスを提供する。前述のものに加えて、実施形態は、特定の結果を達成するための方法における動作およびステップを含むフローチャートの観点からも説明され得る。例えば、図6および図7は、1つまたは複数の実施形態に係る例示的な方法のフローチャートを例示する。
図6は、支払取引の更新をクライアント・デバイスにプッシュする方法600のフローチャートを例示する。方法600は、支払取引の実施の要求を受信する行為602を含む
。たとえば、行為602は、ユーザに関連付けられている第1のクライアント・デバイス104aから、ユーザから共同ユーザへの支払を送信する要求を受信することを伴い、要求は、支払額を含む。例示するために、行為602は、ユーザと共同ユーザとの間の支払取引に関連付けられている支払額、送信者識別子およびオフライン・リファレンスを備える支払要求を受信することを伴うことができる。加えて、または代替的に、支払取引は、ユーザのグループに関る取引を備えることができる。
方法600は、ユーザの支払クレデンシャルに対して請求要求を送信する行為604も含む。たとえば、行為604は、支払要求の支払額についてユーザの支払クレデンシャルに対する請求要求を、支払ネットワーク115に送信することを伴う。例示するために、行為604は、支払要求からの送信者識別子を使用して、登録された支払クレデンシャルを備えるデータベースからユーザの支払クレデンシャルを決定することを伴うことができる。
加えて、方法600は、請求成功応答を受信する行為606を含む。たとえば、行為606は、請求要求が成功したことを示す請求成功応答を支払ネットワーク115から受信することを伴う。例示するために、行為606は、支払取引の支払額について、支払ネットワークがユーザの支払クレデンシャルへの請求に成功したことを示す請求成功応答を受信することを伴うことができる。
また、方法600は、支払開始メッセージを第1のクライアント・デバイス104aおよび第2のクライアント・デバイス104bにプッシュする行為608を含む。たとえば、行為608は、請求成功応答に応答して、支払開始メッセージを、ユーザに関連付けられている第1のクライアント・デバイス104aおよび共同ユーザに関連付けられている第2のクライアント・デバイス104bにプッシュすることを伴う。加えて、行為608は、請求成功応答に応答して、支払開始メッセージを生成することを伴うことができる。支払開始メッセージは、取引識別子、支払額、送信者識別子、受信者識別子、および支払取引が開始されたことを示すステータスを備えることができる。支払開始メッセージは、支払取引が開始されたときを示すタイムスタンプも備えることができる。
方法600は、ユーザと共同ユーザとの間のメッセージング・スレッド514、514aに入るために、支払を示すメッセージを送信する行為610も含む。たとえば、行為610は、第1のクライアント・デバイス104aおよび第2のクライアント・デバイス104bに対して、ユーザと共同ユーザとの間のメッセージング・スレッド514、514aに入るために、支払を示すとともに、支払に関連付けられている支払額を含むメッセージを送信することを伴う。例示するために、支払を示すメッセージはメッセージング・スレッド514、514a内に支払額を表示することができる。加えて、方法600は、支払開始メッセージをプッシュすることと、並行して支払を示すメッセージを送信することとを含むことができる。たとえば、方法600は、第1キューを介して支払開始メッセージをプッシュすることと、第1キューとは別の第2キューを介して支払を示すメッセージを送信することとを含むことができる。
行為610の一部として、または追加の行為として、方法600は、支払取引についての取引識別子を生成することと、メッセージング・スレッド514、514aに対応するメッセージに取引識別子を関連付けることとを含むことができる。例示するために、取引識別子をメッセージに関連付けることは、メッセージについてのメッセージ識別子を生成することと、メッセージ識別子を取引識別子にマッピングすることとを伴うことができる。
方法600は、支払取引についてのステータス更新を受信する行為612をさらに含む
。たとえば、行為612は、ステータス更新に関連する取引識別子を識別することと、ステータス更新が支払取引に関連付けられていることを決定することとを伴うことができる。例示するために、ステータス更新は取引完了更新を備えることができる。代替的に、ステータス更新は取引取消更新を備えることができる。別の例では、ステータス更新は、受信者による支払取引の受け入れを備えることができる。
加えて、メッセージング・スレッド514、514aに対応するメッセージは、取引識別子に基づいた支払額へのリンクを備えることができる。例示のために、メッセージは、支払取引の支払ステータスに基づき支払額を取得するリンクを備えることができ、メッセージに支払取引からの支払額を表示する。
方法600は、ステータス更新をクライアント・デバイスにプッシュする行為614も含む。たとえば、行為614は、支払取引についてのステータス更新を第1のクライアント・デバイス104aおよび第2のクライアント・デバイス104bにプッシュすることを伴う。例示のために、行為614は、第1のクライアント・デバイス104aとの通信接続を検出することと、検出された第1のクライアント・デバイス104aとの通信接続に応答して、支払取引についてのステータス更新を第1のクライアント・デバイス104aにプッシュすることとを伴うことができる。同様に、行為614は、第2のクライアント・デバイス104bとの通信接続を検出することと、検出された第2のクライアント・デバイス104bとの通信接続に応答して、支払取引についてのステータス更新を第2のクライアント・デバイス104bにプッシュすることとを伴うことができる。行為614は、ステータス更新を第1のクライアント・デバイス104aおよび第2のクライアント・デバイス104bに異なる時点でプッシュすることを伴うこともできる。
行為614の一部として、または追加の行為として、方法600は、支払取引についてのステータス更新に基づいて、メッセージング・スレッド514、514aに対応するメッセージに関連付けられているメッセージ・ステータス更新を、第1のクライアント・デバイス104aおよび第2のクライアント・デバイス104bにプッシュすることをさらに含むことができる。例示するために、方法600は、第1のクライアント・デバイス104aおよび第2のクライアント・デバイス104bにメッセージ・ステータス更新インジケータを表示するために、メッセージ・ステータス更新をプッシュすることを含むことができ、メッセージ・ステータス更新インジケータはメッセージング・スレッド514、514a内で支払取引についてのステータス更新を示す。
図7は、支払取引の更新をクライアント・デバイスにプッシュする別の方法のフローチャートを例示する。方法700は、支払取引の実施要求を受信する行為702を含む。たとえば、行為702は、ユーザに関連付けられている第1のクライアント・デバイス、ユーザから共同ユーザに宛てられた支払要求を受信することを伴い、支払要求はユーザと共同ユーザとの間の支払取引に関連付けられている支払額を含む。例示するために、行為702は、ユーザと共同ユーザとの間の支払取引に関連付けられている支払額、送信者識別子、およびオフライン・リファレンスを備える支払要求を受信することを伴うことができる。加えて、または代替的に、支払取引は、ユーザのグループに関る取引を備えることができる。
方法700は、ユーザの支払クレデンシャルに対する請求要求を送信する行為704も含む。たとえば、行為704は、支払要求の支払額について、ユーザの支払クレデンシャルに対する請求要求を支払ネットワーク115に送信することを伴う。例示するために、行為704は、支払要求からの送信者識別子を使用して、登録された支払クレデンシャルを備えるデータベースからユーザの支払クレデンシャルを決定することを伴うことができる。
方法700は、請求成功応答を受信する行為706をさらに含む。たとえば、行為706は、支払額について支払ネットワーク115からの請求成功応答を、支払ネットワーク115から受信することを伴う。例示するために、行為706は、支払取引の支払額について、支払ネットワークがユーザの支払クレデンシャルに請求に成功したことを示す請求成功応答を受信することを伴うことができる。
加えて、方法700は、支払開始メッセージを送信者支払キュー302に追加する行為708を含む。たとえば、行為708は、請求成功通知に応答して、ユーザに関連付けられている送信者支払キュー302に支払開始メッセージを追加することを伴う。例示するために、行為708は、支払開始メッセージについてのシーケンス識別子を更新することと、支払開始メッセージを送信者支払キュー302に送信することとを伴うことができる。
方法700は、送信者メッセージ・キュー304にメッセージを追加する行為710も含む。たとえば、行為710は、請求成功通知に応答して、ユーザに関連付けられている送信者メッセージ・キュー304に、支払を示すメッセージを追加することを伴う。行為710はまた、請求成功通知に応答して、支払取引についての取引識別子を生成することと、支払を示すメッセージを生成することとを伴うこともできる。
行為710の一部として、または追加の行為として、方法700は、請求成功応答の受信に応答して、支払取引についての取引識別子を生成することを含むことができる。加えて、方法700は、取引識別子を備えるメッセージについてのメッセージ識別子を生成することと、取引識別子をメッセージ識別子にマッピングすることとを含むことができる。方法700は、支払開始ステータス更新を送信者支払キュー302に追加する前に、ユーザのクライアント・デバイスにメッセージ識別子および取引識別子を送信することも含むことができる。
加えて、方法700は、ユーザのクライアント・デバイス104a、受信者支払キュー306、および受信者メッセージ・キュー308を更新する行為712を含む。たとえば、行為712は、送信者支払キュー302からクライアント・デバイスおよび受信者支払キュー306に支払開始メッセージをプッシュし、送信者メッセージ・キュー304からクライアント・デバイス104aおよび受信者メッセージ・キュー308に支払を示すメッセージをプッシュすることによって、ユーザのクライアント・デバイス、受信者支払キュー306および受信者メッセージ・キュー308を更新することを伴う。例示するために、行為712は、送信者支払キュー302とクライアント・デバイス104aとの間の通信接続を検出することと、通信接続の検出に応答して、送信者支払キュー302からクライアント・デバイス104aに支払開始メッセージをプッシュすることとを伴うことができる。行為712は、支払開始ステータス更新が送信者支払キュー302に追加されたことに応答して、送信者支払キュー302から受信者支払キュー306に支払開始メッセージをプッシュすることを伴うこともできる。加えて、行為712は、支払開始メッセージと支払取引を示すメッセージとを並行してプッシュすることを伴うことができる。
方法700は、受信者支払キュー306から共同ユーザのクライアント・デバイス104bに支払開始メッセージをプッシュし、受信者メッセージ・キュー308から共同ユーザのクライアント・デバイス104bに支払を示すメッセージをプッシュすることによって、共同ユーザのクライアント・デバイス104bを更新することをさらに含むことができる。加えて、方法700は、共同ユーザのクライアント・デバイス104bに支払開始メッセージと支払を示すメッセージとを並行してプッシュすることをさらに含むことができる。
追加の行為として、方法700は、支払ネットワークが支払取引の完了に成功したことを示す取引完了応答を支払ネットワークから受信することを含むことができる。方法700は、取引完了応答に応答して、取引識別子に関連する受信者支払キュー306に支払取引についての取引完了ステータス更新をプッシュすることを含むこともできる。方法700は、取引完了ステータス更新に基づいて、取引識別子を備えるメッセージに関連付けられているメッセージ・ステータス更新を受信者メッセージ・キュー308にプッシュすることをさらに含むことができる。
本開示の実施形態では、以下に詳述する通り、たとえば1つまたは複数のプロセッサおよびシステムメモリ等のコンピュータハードウェアを備えた専用または汎用コンピュータを備えるか、または利用するようにしてもよい。また、本開示の発明の範囲内の実施形態には、コンピュータ実行可能な命令および/またはデータ構造を搬送または記憶する物理的なコンピュータ可読媒体および他のコンピュータ可読媒体を含む。とりわけ、本明細書に記載のプロセスのうちの1つまたは複数は、非一時的コンピュータ可読媒体にて具現化され、1つまたは複数のコンピューティング・デバイス(たとえば、本明細書に記載のメディアコンテンツアクセスデバイスのいずれか)により実行可能な命令として、その少なくとも一部が実装されていてもよい。一般的には、プロセッサ(たとえば、マイクロプロセッサ)が非一時的コンピュータ可読媒体(たとえば、メモリ等)から命令を受け取り、これらの命令を実行することによって、本明細書に記載のプロセスのうちの1つまたは複数等、1つまた複数のプロセスを実行する。
コンピュータ可読媒体としては、汎用または専用コンピュータシステムによりアクセス可能な任意の利用可能な媒体が可能である。コンピュータ実行可能な命令を記憶するコンピュータ可読媒体は、非一時的コンピュータ可読記憶媒体(デバイス)である。コンピュータ実行可能な命令を搬送するコンピュータ可読媒体は、伝送媒体である。このように、非限定的な一例として、本開示の実施形態には、非一時的コンピュータ可読記憶媒体(デバイス)および伝送媒体という少なくとも2つの明確に異なるタイプのコンピュータ可読媒体を含み得る。
非一時的コンピュータ可読記憶媒体(デバイス)としては、RAM、ROM、EEPROM、CD−ROM、固体ドライブ(「SSD」)(たとえば、RAMベース)、フラッシュメモリ、相変化メモリ(「PCM」)、他のタイプのメモリ、他の光ディスクストレージ、磁気ディスクストレージ等の磁気ストレージデバイス、またはコンピュータ実行可能な命令もしくはデータ構造の形態の所望のプログラムコード手段の記憶に使用可能であるとともに、汎用もしくは専用コンピュータによりアクセス可能なその他任意の媒体が挙げられる。
「ネットワーク」は、コンピュータシステムおよび/またはモジュールおよび/または他の電子機器間で電子データを伝送可能な1つまたは複数のデータリンクとして定義されている。情報がネットワークまたは別の通信接続(有線、無線、または有線もしくは無線の組み合わせ)上でコンピュータに転送または提供される場合、上記コンピュータは、その接続を厳密に伝送媒体と見なす。伝送媒体としては、コンピュータ実行可能な命令またはデータ構造の形態の所望のプログラムコード手段の搬送に使用可能であるとともに、汎用または専用コンピュータによりアクセス可能なネットワークおよび/またはデータリンクが挙げられる。また、上記の組み合わせについても、コンピュータ可読媒体の範囲に含まれるものとする。
さらに、コンピュータシステムのさまざまな構成要素に到達した際に、コンピュータ実行可能な命令またはデータ構造の形態のプログラムコード手段は、伝送媒体から非一時的
コンピュータ可読記憶媒体(デバイス)へと自動的に転送可能である(その逆も可能である)。たとえば、ネットワークまたはデータリンク上で受信されたコンピュータ実行可能な命令またはデータ構造は、ネットワークインターフェースモジュール(たとえば、「NIC」)内のRAMにバッファリングした後、最終的には、コンピュータシステムRAMおよび/またはコンピュータシステムにおける低揮発性コンピュータ記憶媒体(デバイス)に転送可能である。したがって、非一時的コンピュータ可読記憶媒体(デバイス)は、伝送媒体も(または、主として)利用するコンピュータシステムの構成要素に含み得ることが了解されるものとする。
コンピュータ実行可能な命令としては、たとえばプロセッサで実行された場合に、特定の機能または機能群を汎用コンピュータ、専用コンピュータ、または専用処理デバイスに実行させる命令およびデータが挙げられる。いくつかの実施形態においては、コンピュータ実行可能な命令が汎用コンピュータ上で実行されることにより、上記汎用コンピュータは、本開示の実施形態の要素を実装した専用コンピュータへと変化する。コンピュータ実行可能な命令は、たとえばバイナリ、アセンブリ言語等の中間フォーマット命令、あるいはソースコードであってもよい。以上、構造的特徴および/または方法論的行為に固有の表現で主題を説明したが、添付の特許請求の範囲に規定の主題は、必ずしも上述の特徴または行為に限定されないことが了解されるものとする。むしろ、上記特徴および行為は、特許請求の範囲を実施する例示的な形態として開示している。
当業者であれば、パーソナル・コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、メッセージプロセッサ、携帯機器、マルチプロセッサシステム、マイクロプロセッサベースの家庭用電化製品またはプログラム可能な家庭用電化製品、ネットワークPC、マイクロコンピュータ、メインフレームコンピュータ、携帯電話、PDA,タブレット、ポケベル、ルータ、スイッチ等、さまざまなタイプのコンピュータシステム構成のネットワークコンピュータ環境において本開示が実現されるようになっていてもよいことが認識されよう。また、本開示は、ネットワークを通じて(有線データリンク、無線データリンク、または有線および無線データリンクの組み合わせにより)リンクしたローカルメモリストレージデバイスおよび遠隔コンピュータシステムがともにタスクを実行する分散システム環境において実現されるようになっていてもよい。分散システム環境においては、ローカルメモリストレージデバイスおよび遠隔メモリストレージデバイスの両者にプログラムモジュールが配置されていてもよい。
また、本開示の実施形態は、クラウドコンピュータ環境において実装可能である。本記載において、「クラウドコンピューティング」は、設定可能なコンピュータリソースの共有プールに対するオンデマンドネットワークアクセスを可能とするモデルとして定義されている。たとえば、クラウドコンピューティングは、設定可能なコンピュータリソースの共有プールに対するユビキタスかつ便利なオンデマンドアクセスを提供する市場で採用可能である。設定可能なコンピュータリソースの共有プールは、仮想化によって迅速に開設可能であるとともに、わずかな管理労力またはサービス・プロバイダ対話で解放可能であるため、これに応じてスケーリング可能である。
クラウドコンピューティングモデルは、たとえばオンデマンドセルフサービス、ブロードネットワークアクセス、リソースプーリング、ラピッドエラスティシティ、メジャードサービス等のさまざまな特性で構成可能である。また、クラウドコンピューティングモデルは、たとえばサービス型ソフトウェア(「SaaS」)、サービス型プラットフォーム(「PaaS」)、およびサービス型インフラ(「IaaS」)等のさまざまなサービスモデルを提供可能である。また、クラウドコンピューティングモデルは、プライベートクラウド、コミュニティクラウド、パブリッククラウド、ハイブリッドクラウド等のさまざまな展開モデルを用いて展開可能である。本明細書および特許請求の範囲において、「ク
ラウドコンピュータ環境」は、クラウドコンピューティングを採用する環境である。
図8は、上述のプロセスのうちの1つまたは複数を実行するように構成できる例示的なコンピューティング・デバイス800のブロック図を示している。データコンピューティング・デバイス800などの1つまたは複数のコンピューティング・デバイスが支払システム100を実装することが理解される。図8に示すように、コンピューティング・デバイス800は、通信インフラ712によって通信されるように結合されている、プロセッサ802、メモリ804、ストレージデバイス806、I/Oインターフェース808、および通信インターフェース710を備える。図10には、例示的なコンピューティング・デバイス800を示しているが、図8に示す構成要素は、何ら限定を意図したものではない。他の実施形態においては、付加的または代替的な構成要素を使用するようにしてもよい。さらに、特定の実施形態において、コンピューティング・デバイス800は、図8よりも少ない構成要素を備える。以下、図8に示すコンピューティング・デバイス800の構成要素について、さらに詳しく説明する。
1つまたは複数の実施形態において、プロセッサ802は、コンピュータプログラムを構成する命令等を実行するハードウェアを備えてもよい。非限定的な一例として、プロセッサ802は、命令を実行するため、内部レジスタ、内部キャッシュ、メモリ804、またはストレージデバイス806から命令を取り出す(または、フェッチする)とともに、上記命令を復号化して実行するようにしてもよい。1つまたは複数の実施形態において、プロセッサ802は、データ、命令、またはアドレス用の1つまたは複数の内部キャッシュを備えてもよい。非限定的な一例として、プロセッサ802は、1つまたは複数の命令キャッシュ、1つまたは複数のデータキャッシュ、および1つまたは複数のトランスレーション・ルックアサイド・バッファ(TLB)を備えてもよい。命令キャッシュ中の命令は、メモリ804またはストレージ806中の命令のコピーであってもよい。
メモリ804は、データ、メタデータ、およびプロセッサが実行するプログラムの記憶に使用してもよい。メモリ804は、ランダムアクセスメモリ(「RAM」)、リードオンリーメモリ(「ROM」)、固体ディスク(「SSD」)、フラッシュ、相変化メモリ(「PCM」)、または他のタイプのデータストレージ等、揮発性および不揮発性メモリのうちの1つまたは複数を備えていてもよい。また、メモリ804は、内部メモリであってもよいし、分散メモリであってもよい。
ストレージデバイス806は、データまたは命令を記憶するストレージを備える。非限定的な一例として、ストレージデバイス806は、上述の非一時的記憶媒体を備える。ストレージデバイス806としては、ハードディスクドライブ(HDD)、フロッピー(登録商標)ディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、ユニバーサルシリアルバス(USB)ドライブ、またはこれらのうちの2つ以上の組み合わせが挙げられる。ストレージデバイス806は、必要に応じて、取り外し可能媒体を備えていてもよいし、取り外し可能できない(すなわち、固定)媒体を備えていてもよい。ストレージデバイス806は、コンピューティング・デバイス800の内部であってもよいし、外部であってもよい。1つまたは複数の実施形態において、ストレージデバイス806は、不揮発性の固体メモリである。他の実施形態において、ストレージデバイス806は、リードオンリーメモリ(ROM)を含む。必要に応じて、このROMは、マスクプログラムROM、プログラム可能ROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的書き換え可能ROM(EAROM)、フラッシュメモリ、またはこれらのうちの2つ以上の組み合わせであってもよい。
I/Oインターフェース808によって、ユーザが、入力を提供し、出力を受け取り、あるいはコンピューティング・デバイス800に対してデータを転送しデータを受け取る
ことを可能にする。これらのI/Oインターフェース808は、マウス、キーパッドもしくはキーボード、タッチスクリーン、カメラ、光学スキャナ、ネットワーク・インターフェース、モデル、その他既知のI/Oデバイス、またはこのようなI/Oデバイス/インターフェースの組み合わせを含む。I/Oインターフェース808は、出力をユーザに提示する1つまたは複数の機器を備えていてもよく、グラフィックスエンジン、ディスプレイ(たとえば、表示画面)、1つまたは複数の出力ドライバ(たとえば、ディスプレイドライバ)、1つまたは複数の音声スピーカ、および1つまたは複数の音声ドライバが挙げられるが、これらに限定されない。特定の実施形態において、I/Oインターフェース808は、グラフィックデータをディスプレイに提供して、ユーザに提示するように構成されている。グラフィックデータは、特定の実施態様に役立ち得る1つもしくは複数のグラフィカル・ユーザ・インターフェースおよび/またはその他任意のグラフィックコンテンツを代表するものであってもよい。
通信インターフェース710は、ハードウェア、ソフトウェア、または両者を含み得る。いかなる場合でも、通信インターフェース710は、コンピューティング・デバイスと1つもしくは複数の他のコンピューティング・デバイス800またはネットワークとの間の通信(たとえば、パケットベースの通信等)のための1つまたは複数のインターフェースを提供可能である。非限定的な一例として、通信インターフェース710としては、イーサネット(登録商標)等の有線ネットワークと連通するネットワークインターフェースコントローラ(NIC)もしくはネットワークアダプタまたはWi−Fi等の無線ネットワークと連通する無線NIC(WNIC)もしくは無線アダプタが挙げられる。
加えて、または、代替として、通信インターフェース710は、アドホック・ネットワーク、パーソナルエリアネットワーク(PAN)、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、メトロポリタン・エリア・ネットワーク(MAN)、インターネットの1つもしくは複数の部分、またはこれらのうちの2つ以上の組み合わせと通信を行わせる。これらネットワークのうちの1つまたは複数の1つまたは複数の部分は、有線であってもよいし、無線であってもよい。一例として、通信インターフェース710は、無線PAN(WPAN)(たとえば、Bluetooth(登録商標)WPAN等)、Wi−Fiネットワーク、Wi−MAXネットワーク、携帯電話ネットワーク(たとえば、汎欧州デジタル移動電話通信(GSM(登録商標))ネットワーク等)、他の適当な無線ネットワーク、またはこれらの組み合わせと通信を行わせる。
加えて、通信インターフェース710は、通信さまざまな通信プロトコルを促進し得る。使用され得る通信プロトコルの例としては、限定されるものではないが、データ伝送媒体、通信デバイス、伝送制御プロトコル(「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」)技術、無線通信技術、帯域内シグナリング技術および帯域外シグナリング技術、ならびに他の適切な通信ネットワークおよび技術がある。
通信インフラ712は、コンピューティング・デバイス800の構成要素を互いに結合するハードウェア、ソフトウェア、または両者を備える。非限定的な一例として、通信インフラ712は、アクセラレイテッドグラフィックスポート(AGP)等のグラフィックスバス、拡張業界標準アーキテクチャ(EISA)バス、フロントサイドバス(FSB)、ハイパートランスポート(HT)相互接続、業界標準アーキテクチャ(ISA)バス、インフィニバンド相互接続、ロウピンカウント(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、周辺機器相互接続(PCI)バス、PCIエクスプレス(PCIe)バス、シリアルアドバンストテクノロジーアタッチメント(SATA)バス、ビデオエレクトロニクス標準協会ローカル(VLB)バス、その他適当なバス、またはこれらの組み合わせを含んでいてもよい。
上述の通り、システム100は、ソーシャル・ネットワーキング・システムを含み得る。ソーシャル・ネットワーキング・システムによって、そのユーザ(人または組織など)が、システムに対しておよび互いに対話をすることが可能になる。上述のように、システム100は、ソーシャル・ネットワーキング・システムを備える。ソーシャル・ネットワーキング・システムによれば、そのユーザ(人または組織等)は、システムと、および互いに対話が可能である。ソーシャル・ネットワーキング・システムは、ユーザからの入力により、ユーザに関連付けられているユーザプロフィールを作成して上記ソーシャル・ネットワーキング・システムに記憶するようにしてもよい。ユーザプロフィールには、人口統計学的情報、通信チャンネル情報、およびユーザの個人的関心に関する情報を含んでいてもよい。また、ソーシャル・ネットワーキング・システムは、ユーザからの入力により、上記ユーザのソーシャル・ネットワーキング・システムの他ユーザとの関係のレコードを作成して記憶するとともに、ユーザ間の社会的対話を行わせるサービス(たとえば、ウォール投稿、写真共有、オンライン・カレンダー、イベント統合、メッセージング、ゲーム、または広告)を提供するようにしてもよい。また、ソーシャル・ネットワーキング・システムは、ユーザが、ユーザのプロファイル・ページ(典型的には、「ウォール投稿」もしくは「タイムライン投稿」として知られる)に対して、またはフォト・アルバム内に、写真および他のマルチメディア・コンテンツ・アイテムを投稿することを可能にし得、プロファイル・ページとフォト・アルバムの両方は、ユーザの構成されたプライバシー設定に応じて、ソーシャル・ネットワーキング・システムの他のユーザにとってアクセス可能である。
図9は、ソーシャル・ネットワーキング・システムの例となるネットワーク環境900を例示する。ネットワーク環境900は、ネットワーク904によって互いに接続された、クライアント・システム906と、ソーシャル・ネットワーキング・システム902と、サードパーティ・システム908とを含む。図9は、クライアント・システム906、ソーシャル・ネットワーキング・システム902、サードパーティ・システム908、およびネットワーク904の特定の構成を例示しているが、この開示は、クライアント・システム906、ソーシャル・ネットワーキング・システム902、サードパーティ・システム908、およびネットワーク904の任意の適切な構成を企図したものである。限定としてではなく、一例として、クライアント・システム906、ソーシャル・ネットワーキング・システム902、およびサードパーティ・システム908のうちの2つ以上が、ネットワーク904をバイパスして、直接的に互いに接続されてもよい。別の例として、クライアント・システム906、ソーシャル・ネットワーキング・システム902、およびサードパーティ・システム908のうちの2つ以上が、全体的にまたは部分的に互いと物理的または論理的に共同設置されてもよい。さらに、図9は、特定の数のクライアント・システム906、ソーシャル・ネットワーキング・システム902、サードパーティ・システム908、およびネットワーク904を例示しているが、この開示は、任意の適切な数のクライアント・システム906、ソーシャル・ネットワーキング・システム902、サードパーティ・システム908、およびネットワーク904を企図したものである。
限定としてではなく、一例として、ネットワーク環境900は、複数のクライアント・システム906と、ソーシャル・ネットワーキング・システム902と、サードパーティ・システム908と、ネットワーク904とを含んでよい。
本開示は、任意の適切なネットワーク904を企図したものである。限定としてではなく、一例として、ネットワーク904の1つまたは複数の部分は、アドホック・ネットワーク、イントラネット、エクストラネット、仮想プライベート・ネットワーク(VPN)、ローカル・エリア・ネットワーク(LAN)、無線LAN(WLAN)、ワイド・エリア・ネットワーク(WAN)、無線WAN(WWAN)、メトロポリタン・エリア・ネットワーク(MAN)、インターネットの一部分、公衆交換電話網(PSTN)の一部分、セルラー電話ネットワーク、またはこれらのうちの2つ以上の組み合わせを含んでよい。ネットワーク904は、1つまたは複数のネットワーク904を含み得る。
リンクは、クライアント・システム906、ソーシャル・ネットワーキング・システム902、およびサードパーティ・システム908を通信ネットワーク904に対して、または互いに対して接続し得る。本開示は、任意の適切なリンクを企図したものである。特定の実施形態では、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つ以上のそのようなリンクの組み合わせを含む。リンクは、必ずしもネットワーク環境900全体を通じて同じである必要はない。1つまたは複数の第1のリンクは、1つまたは複数の点において、1つまたは複数の第2のリンクと異なってよい。
特定の実施形態では、クライアント・システム906は、ハードウェア、ソフトウェア、または埋め込まれた論理構成要素、または2つ以上のそのような構成要素の組み合わせを含み、クライアント・システム906によって実施またはサポートされる適切な機能を実行することが可能な電子デバイスであってよい。限定としてではなく、一例として、クライアント・システム906は、上記で図8に関係して論じられたコンピューティング・デバイスのいずれかを含んでよい。クライアント・システム906は、クライアント・システム906におけるネットワーク・ユーザがネットワーク904にアクセスすることを可能にし得る。クライアント・システム906は、そのユーザが他のクライアント・システム906における他のユーザと通信することを可能にし得る。
特定の実施形態では、クライアント・システム906は、MICROSOFT INTERNET EXPLORER、GOOGLE CHROME、またはMOZILLA FIREFOXなどのウェブ・ブラウザ932を含んでよく、1つまたは複数のアドオン、プラグイン、またはツールバーもしくはYAHOOツールバーなどの他の拡張機能を有してよい。クライアント・システム906におけるユーザは、ユニフォーム・リソース・ロケータ(URL)またはウェブ・ブラウザを特定のサーバ(サーバ、またはサードパーティ・システム908に関連付けられているサーバなど)に対して宛てる他のアドレスを入力してよく、ウェブ・ブラウザは、ハイパーテキスト転送プロトコル(HTTP)要求を生成し、HTTP要求をサーバに対して通信し得る。サーバは、HTTP要求を受け入れ、HTTP要求に応答して1つまたは複数のハイパーテキスト・マークアップ言語(H
TML)ファイルをクライアント・システム906に対して通信し得る。クライアント・システム906は、ユーザに対する提示のために、サーバからのHTMLファイルに基づいてウェブページをレンダリングし得る。本開示は、任意の適切なウェブページ・ファイルを企図したものである。限定としてではなく、一例として、ウェブページは、特定のニーズに従って、HTMLファイル、拡張可能ハイパーテキスト・マークアップ言語(XHTML)ファイル、または拡張可能マークアップ言語(XML)ファイルからレンダリングし得る。そのようなページはまた、たとえば、限定されるものではないが、JAVASCRIPT(登録商標)、JAVA(登録商標)、MICROSOFT SILVERLIGHTで記述されたスクリプトなどのスクリプト、AJAX(非同期JAVASCRIPTおよびXML)などのマークアップ言語とスクリプトの組み合わせなどを実行し得る。本明細書では、ウェブページに対する参照は、適切な場合、1つまたは複数の対応するウェブページ・ファイル(ブラウザがウェブページをレンダリングするために使用し得る)を包含し、逆も同様である。
特定の実施形態では、ソーシャル・ネットワーキング・システム902は、オンライン・ソーシャル・ネットワークをホストする、ネットワークアドレス指定可能なコンピューティング・システムであってよい。ソーシャル・ネットワーキング・システム902は、たとえばユーザプロファイル・データ、概念プロファイル・データ、ソーシャルグラフ情報、またはオンライン・ソーシャル・ネットワークに関係する他の適切なデータなどのソーシャルネットワーキング・データを生成、記憶、受信、および送信し得る。ソーシャル・ネットワーキング・システム902は、直接的に、またはネットワーク904を介して、のどちらかで、ネットワーク環境900の他の構成要素によってアクセスされ得る。特定の実施形態では、ソーシャル・ネットワーキング・システム902は、1つまたは複数のサーバを含み得る。各サーバは、単体サーバであってもよいし、複数のコンピュータまたは複数のデータセンタにまたがる分散サーバであってもよい。サーバは、たとえば限定されるものではないが、ウェブ・サーバ、ニュース・サーバ、メール・サーバ、メッセージ・サーバ、広告サーバ、ファイル・サーバ、アプリケーション・サーバ、交換サーバ、データベース・サーバ、プロキシ・サーバ、本明細書で説明される機能もしくはプロセスを実行するのに適した別のサーバ、またはそれらの任意の組み合わせなどの、さまざまなタイプであってよい。特定の実施形態では、各サーバは、ハードウェア、ソフトウェア、または埋め込まれた論理構成要素、またはサーバによって実施もしくはサポートされる適切な機能を実行するための2つ以上そのような構成要素の組み合わせを含んでよい。特定の実施形態では、ソーシャル・ネットワーキング・システム902は、1つまたは複数のデータ・ストアを含み得る。データ・ストアは、さまざまなタイプの情報を記憶するために使用され得る。特定の実施形態では、データ・ストア内に記憶される情報は、具体的なデータ構造に従って編成され得る。特定の実施形態では、各データ・ストアは、リレーショナル・データベース、カラムナ・データベース、相関データベース、または他の適切なデータベースであってよい。本開示は特定のタイプのデータベースを説明または例示しているが、本開示は、任意の適切なタイプのデータベースを企図するものである。特定の実施形態は、クライアント・システム906、ソーシャル・ネットワーキング・システム902、またはサードパーティ・システム908がデータ・ストア内に記憶された情報を管理する、取り出す、修正する、追加する、または削除することを可能にするインターフェースを提供し得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム902は、1つまたは複数のデータ・ストア内に1つまたは複数のソーシャルグラフを記憶し得る。特定の実施形態では、ソーシャルグラフは、複数のユーザ・ノード(各々が特定のユーザに対応する)または複数の概念ノード(各々が特定の概念に対応する)を含み得る複数のノードと、ノードを接続する複数のエッジを含み得る。ソーシャル・ネットワーキング・システム902は、オンライン・ソーシャル・ネットワークのユーザに、他のユーザと通信および対
話できることを提供し得る。特定の実施形態では、ユーザは、ソーシャル・ネットワーキング・システム902を介してオンライン・ソーシャル・ネットワークに加わり、次いで、ユーザが接続されたいソーシャル・ネットワーキング・システム902の何人かの他のユーザに対して接続(たとえば、関係)を追加し得る。本明細書では、「友達」という用語は、ユーザがソーシャル・ネットワーキング・システム902を介して接続、関連付け、または関係を形成した、ソーシャル・ネットワーキング・システム902の他の任意のユーザを指し得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム902は、ソーシャル・ネットワーキング・システム902によってサポートされるさまざまなタイプのアイテムまたはオブジェクトに対してアクションをとることをユーザに提供し得る。限定としてではなく、一例として、アイテムおよびオブジェクトは、ソーシャル・ネットワーキング・システム902のユーザが属し得るグループもしくはソーシャル・ネットワーク、ユーザが興味を抱き得るイベントもしくはカレンダー記載事項、ユーザが使用し得るコンピュータベースのアプリケーション、ユーザがサービスを介してアイテムを購入もしくは販売し得る取引、ユーザが実行し得る広告との対話、または他の適切なアイテムもしくはオブジェクトを含み得る。ユーザは、ソーシャル・ネットワーキング・システム902内で、またはサードパーティ・システム908の外部システムによって表されることが可能なものと対話し得、サードパーティ・システム908は、ソーシャル・ネットワーキング・システム902とは別個であり、ネットワーク904を介してソーシャル・ネットワーキング・システム902に結合される。
特定の実施形態では、ソーシャル・ネットワーキング・システム902は、さまざまなエンティティをリンクすることが可能であり得る。限定としてではなく、一例として、ソーシャル・ネットワーキング・システム902は、ユーザが、互いと対話し、ならびにサードパーティ・システム908もしくは他のエンティティからコンテンツを受信する、またはユーザが、アプリケーション・プログラミング・インターフェース(API)もしくは他の通信チャネルを通して、これらのエンティティと対話できることを可能にし得る。
特定の実施形態では、サードパーティ・システム908は、1つもしくは複数のタイプのサーバ、1つもしくは複数のデータ・ストア、限定されるものではないがAPIを含む1つもしくは複数のインターフェース、1つもしくは複数のウェブ・サービス、1つもしくは複数のコンテンツ・ソース、1つもしくは複数のネットワーク、または、たとえばサーバが通信し得る他の任意の適切な構成要素であり得る。サードパーティ・システム908は、ソーシャル・ネットワーキング・システム902を運用するエンティティからの異なるエンティティによって運用され得る。しかしながら、特定の実施形態では、ソーシャル・ネットワーキング・システム902およびサードパーティ・システム908は、ソーシャル・ネットワーキング・システム902またはサードパーティ・システム908のユーザにソーシャルネットワーキング・サービスを提供するために互いに運用し得る。この意味で、ソーシャル・ネットワーキング・システム902は、サードパーティ・システム908などの他のシステムがインターネット全体にわたってソーシャルネットワーキング・サービスおよび機能をユーザに対して提供するために使用し得るプラットフォームすなわちバックボーンを提供し得る。
特定の実施形態では、サードパーティ・システム908は、サードパーティ・コンテンツ・オブジェクト・プロバイダを含み得る。サードパーティ・コンテンツ・オブジェクト・プロバイダは、クライアント・システム906に対して通信され得るコンテンツ・オブジェクトの1つまたは複数のソースを含み得る。限定としてではなく、一例として、コンテンツ・オブジェクトは、たとえば、映画の上映時間、映画のレビュー、レストランのレビュー、レストランのメニュー、製品情報およびレビュー、または他の適切な情報などの
、ユーザの興味を引く物事またはアクティビティに関する情報を含み得る。限定としてではなく、別の例として、コンテンツ・オブジェクトは、クーポン、割引チケット、商品券、または他の適切な報償となるオブジェクトなどの、報償となるコンテンツ・オブジェクトを含み得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム902は、ソーシャル・ネットワーキング・システム902とのユーザの対話を向上させ得る、ユーザにより生成されたコンテンツ・オブジェクトも含む。ユーザにより生成されたコンテンツは、ユーザがソーシャル・ネットワーキング・システム902に対して追加、アップロード、送信、または「投稿する」ものを含み得る。限定としてではなく、一例として、ユーザが、クライアント・システム906からソーシャル・ネットワーキング・システム902に対して投稿を通信する。投稿としては、ステータス更新もしくは他のテキスト・データ、ロケーション情報、フォト、映像、リンク、音楽、または他の類似のデータもしくはメディアなどのデータがあり得る。コンテンツはまた、ニュースフィードまたはストリームなどの「通信チャネル」を介して、サードパーティによってソーシャル・ネットワーキング・システム902に対して追加され得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム902は、さまざまなサーバと、サブシステムと、プログラムと、モジュールと、ログと、データ・ストアとを含んでよい。特定の実施形態では、ソーシャル・ネットワーキング・システム902は、ウェブ・サーバ、アクション・ロガー、API要求サーバ、関連性およびランキング・エンジン、コンテンツ・オブジェクト分類器、通知コントローラ、アクション・ログ、サードパーティコンテンツ・オブジェクト公開(exposure)ログ、推測モジュール、許可/プライバシー・サーバ、検索モジュール、広告ターゲティング・モジュール、ユーザインターフェース・モジュール、ユーザプロファイル・ストア、接続ストア、サードパーティ・コンテンツ・ストア、またはロケーション・ストアのうちの1つまたは複数を含んでよい。ソーシャル・ネットワーキング・システム902は、ネットワーク・インターフェース、セキュリティ機構、ロード・バランサ、フェイルオーバ・サーバ、管理およびネットワーク運用コンソール、他の適切な構成要素、またはそれらの任意の適切な組み合わせなどの、適切な構成要素も含んでよい。特定の実施形態では、ソーシャル・ネットワーキング・システム902は、ユーザ・プロファイルを記憶するための1つまたは複数のユーザプロファイル・ストアを含んでよい。ユーザ・プロファイルは、たとえば、経歴情報、人口統計学的情報、行動情報、社会情報、または職歴、学歴、趣味もしくは好み、興味、親密度、もしくはロケーションなどの他のタイプの記述情報を含み得る。興味情報は、1つまたは複数のカテゴリに関係する興味を含み得る。カテゴリは、汎用的であってもよいし、具体的であってもよい。限定としてではなく、一例として、ユーザが、靴のブランドについての記事に対して「いいね」を表明する場合、そのカテゴリはブランドであってもよいし、「靴」または「衣類」という汎用的なカテゴリであってもよい。接続ストアは、ユーザについての接続情報を記憶するために使用され得る。接続情報は、類似もしくは共通の職歴、グループ会員資格、趣味、学歴を有する、または、いかなる形であれ関係する、もしくは共通属性を共有するユーザを示してよい。接続情報は、異なるユーザとコンテンツ(内部と外部の両方)との間の、ユーザにより定義された接続も含み得る。ウェブ・サーバは、ネットワーク904を介して1つもしくは複数のクライアント・システム906または1つもしくは複数のサードパーティ・システム908に対してソーシャル・ネットワーキング・システム902をリンクするために使用され得る。ウェブ・サーバは、ソーシャル・ネットワーキング・システム902と1つまたは複数のクライアント・システム906との間でメッセージを受信およびルーティングするためのメール・サーバまたは他のメッセージング機能を含んでよい。API要求サーバは、サードパーティ・システム908が、1つまたは複数のAPIを呼び出すことによって、ソーシャル・ネットワーキング・システム902からの情報にアクセスすることを可能にし得る。アクション・
ロガーは、ソーシャル・ネットワーキング・システム902上またはそれ以外の場所でのユーザのアクションについてウェブ・サーバから通信を受信するために使用され得る。アクション・ログとともに、サードパーティコンテンツ・オブジェクトに対するユーザ公開のサードパーティコンテンツオブジェクト・ログが維持され得る。通知コントローラは、コンテンツ・オブジェクトに関する情報をクライアント・システム906に対して提供し得る。情報は、通知としてクライアント・システム906に対してプッシュされてもよいし、情報は、クライアント・システム906から受信された要求に応答してクライアント・システム906からプルされてもよい。許可サーバは、ソーシャル・ネットワーキング・システム902のユーザの1つまたは複数のプライバシー設定を強制するために使用され得る。ユーザのプライバシー設定は、ユーザに関連付けられている特定の情報がどのように共有可能であるかを決定する。許可サーバは、ユーザが、たとえば、適切なプライバシー設定を設定することなどによって、アクションをソーシャル・ネットワーキング・システム902によってログさせること、または他のシステム(たとえば、サードパーティ・システム908)とともに共有させることに加わる、または加わらない(opt in
to or opt out of)ことを可能にする。サードパーティコンテンツオブジェクト・ストアは、サードパーティ・システム908などのサードパーティから受信されたコンテンツ・オブジェクトを記憶するために使用され得る。ロケーション・ストアは、ユーザに関連付けられているクライアント・システム906から受信されたロケーション情報を記憶するために使用され得る。広告価格設定モジュールは、社会情報、現在の時間、ロケーション情報、または他の適切な情報を組み合わせて、通知の形で関係のある広告をユーザに対して提供し得る。
図10は、例となるソーシャルグラフ1000を例示する。特定の実施形態では、ソーシャル・ネットワーキング・システム902は、1つまたは複数のデータ・ストア内に1つまたは複数のソーシャルグラフ1000を記憶し得る。特定の実施形態では、ソーシャルグラフ1000は、複数のユーザ・ノード1002または複数の概念ノード1004を含み得る複数のノードと、ノードを接続する複数のエッジ1006とを含み得る。図10に例示される例となるソーシャルグラフ1000は、教説的な目的で、2次元の視覚的なマップ表現で示されている。特定の実施形態では、ソーシャル・ネットワーキング・システム902、クライアント・システム906、またはサードパーティ・システム908は、適切なアプリケーションのためのソーシャルグラフ1000および関係するソーシャルグラフ情報にアクセスし得る。ソーシャルグラフ1000のノードおよびエッジは、たとえば、データ・ストア(ソーシャルグラフ・データベースなど)内に、データ・オブジェクトとして記憶され得る。そのようなデータ・ストアは、ソーシャルグラフ1000のノードまたはエッジの1つまたは複数の検索可能またはクエリ可能なインデックスを含み得る。
特定の実施形態では、ユーザ・ノード1002は、ソーシャル・ネットワーキング・システム902のユーザに対応し得る。限定としてではなく、一例として、ユーザは、ソーシャル・ネットワーキング・システム902と、またはその上で対話または通信する、個人(人間ユーザ)、エンティティ(たとえば、企業、会社、もしくはサードパーティ・アプリケーション)、または(たとえば、個人もしくはエンティティの)グループであってよい。特定の実施形態では、ユーザがソーシャル・ネットワーキング・システム902に口座を登録するとき、ソーシャル・ネットワーキング・システム902は、ユーザに対応するユーザ・ノード1002を作成し、1つまたは複数のデータ・ストア内にユーザ・ノード1002を記憶し得る。本明細書で説明されるユーザおよびユーザ・ノード1002は、適切な場合には、登録されたユーザと、登録されたユーザに関連付けられているユーザ・ノード1002を指し得る。加えて、または代替として、本明細書で説明されるユーザおよびユーザ・ノード1002は、適切な場合には、ソーシャル・ネットワーキング・システム902に登録されていないユーザを指し得る。特定の実施形態では、ユーザ・ノ
ード1002は、ユーザによって提供される情報、またはソーシャル・ネットワーキング・システム902を含むさまざまなシステムによって収集された情報に関連付けられ得る。限定としてではなく、一例として、ユーザは、自分の名前、プロファイル・ピクチャ、連絡先情報、誕生日、性別、配偶者の有無、家族構成、職業、学歴、好み、興味、または他の人口統計学的情報を提供し得る。ソーシャルグラフの各ユーザ・ノードは、対応するウェブページ(典型的には、プロファイル・ページとして知られる)を有し得る。ユーザ名を含む要求に応答して、ソーシャル・ネットワーキング・システムは、ユーザ名に対応するユーザ・ノードにアクセスし、名前、プロファイル・ピクチャ、およびユーザに関連付けられている他の情報を含むプロファイル・ページを作り上げる。第1のユーザのプロファイル・ページは、第1のユーザによる1つまたは複数のプライバシー設定および第1のユーザと第2のユーザとの間の関係に基づいて、第1のユーザの情報のすべてまたは一部分を第2のユーザに対して表示し得る。
特定の実施形態では、概念ノード1004は概念に対応し得る。限定としてではなく、一例として、概念は、場所(たとえば、映画館、レストラン、ランドマーク、もしくは都市など)、ウェブサイト(たとえば、ソーシャルネットワーク・システム902に関連付けられているウェブサイト、もしくはウェブアプリケーション・サーバに関連付けられているサードパーティ・ウェブサイトなど)、エンティティ(たとえば、人物、会社、グループ、スポーツ・チーム、もしくは有名人など)、ソーシャル・ネットワーキング・システム902の中もしくはウェブアプリケーション・サーバなどの外部サーバ上に配置され得るリソース(たとえば、オーディオ・ファイル、映像ファイル、デジタル・フォト、テキスト・ファイル、構造化文書、もしくはアプリケーションなど)、物的財産もしくは知的財産(たとえば、彫刻、絵画、映画、ゲーム、歌、アイデア、写真、または著書など)、ゲーム、アクティビティ、アイデア、もしくは理論、別の適切な概念、または2つ以上のそのような概念に対応し得る。概念ノード1004は、ユーザによって提供される概念の情報、またはソーシャル・ネットワーキング・システム902を含むさまざまなシステムによって収集された情報に関連付けられ得る。限定としてではなく、一例として、概念の情報としては、名前もしくはタイトル、1つもしくは複数の画像(たとえば、本のカバー・ページの画像)、ロケーション(たとえば、住所もしくは地理的ロケーション)、ウェブサイト(URLに関連付けられ得る)、連絡先情報(たとえば、電話番号もしくは電子メール・アドレス)、他の適切な概念情報、またはそのような情報の任意の適切な組み合わせがあり得る。特定の実施形態では、概念ノード1004は、概念ノード1004に関連付けられている情報に対応する1つまたは複数のデータ・オブジェクトに関連付けられ得る。特定の実施形態では、概念ノード1004は、1つまたは複数のウェブページに対応し得る。
特定の実施形態では、ソーシャルグラフ1000内のノードは、ウェブページ(「プロファイル・ページ」と呼ばれることがある)を表してもよいし、これによって表されてもよい。プロファイル・ページは、ソーシャル・ネットワーキング・システム902によってホストされてもよいし、これに対してアクセス可能であってもよい。プロファイル・ページはまた、サードパーティ・サーバ908に関連付けられているサードパーティ・ウェブサイト上にホストされ得る。限定としてではなく、一例として、特定の外部のウェブページに対応するプロファイル・ページは特定の外部ウェブページであってよく、プロファイル・ページは特定の概念ノード1004に対応し得る。プロファイル・ページは、他のユーザのすべてまたは選択されたサブセットによって閲覧することができてよい。限定としてではなく、一例として、ユーザ・ノード1002は、対応するユーザがコンテンツを追加し、発表をし、または別のやり方で自分を表現し得る対応するユーザプロファイル・ページを有し得る。限定としてではなく、別の例として、概念ノード1004は、特に概念ノード1004に対応する概念に関係して1つまたは複数のユーザがコンテンツを追加し、発表をし、または別のやり方で自分を表現し得る対応する概念プロファイル・ページ
を有し得る。
特定の実施形態では、概念ノード1004は、サードパーティ・システム908によってホストされるサードパーティ・ウェブページまたはリソースを表し得る。サードパーティ・ウェブページまたはリソースは、要素の中でもとりわけ、アクションまたはアクティビティを表すコンテンツ、選択可能なアイコンもしくは他のアイコン、または他の対話可能なオブジェクト(たとえば、JavaScriptコード、AJAXコード、またはPHPコードで実装され得る)を含んでよい。限定としてではなく、一例として、サードパーティ・ウェブページは、「いいね」、「チェック・イン」、「食べる」、「推奨」、または別の適切なアクションもしくはアクティビティなどの選択可能なアイコンを含み得る。サードパーティ・ウェブページを閲覧するユーザは、アイコンのうちの1つ(たとえば、「食べる」)を選択し、クライアント・システム906に、ユーザのアクションを示すメッセージをソーシャル・ネットワーキング・システム902に対して送信させることによって、アクションを実行し得る。メッセージに応答して、ソーシャル・ネットワーキング・システム902は、ユーザに対応するユーザ・ノード1002とサードパーティ・ウェブページまたはリソースに対応する概念ノード1004との間にエッジ(たとえば、「食べる」エッジ)を作成し、1つまたは複数のデータ・ストア内にエッジ1006を記憶し得る。
特定の実施形態では、ソーシャルグラフ1000内のノードのペアは、1つまたは複数のエッジ1006によって互いに接続され得る。ノードのペアを接続するエッジ1006は、ノードのペアの間の関係を表し得る。特定の実施形態では、エッジ1006は、ノードのペアの間の関係に対応する1つまたは複数のデータ・オブジェクトまたは属性を含み得るまたはこれを表し得る。限定としてではなく、一例として、第1のユーザは、第2のユーザが第1のユーザの「友達」であることを示し得る。この標識に応答して、ソーシャル・ネットワーキング・システム902は、第2のユーザに対して「友達要求」を送信し得る。第2のユーザが「友達要求」を確かめる場合、ソーシャル・ネットワーキング・システム902は、ソーシャルグラフ1000内の第1のユーザのユーザ・ノード1002を第2のユーザのユーザ・ノード1002に対して接続するエッジ1006を作成し、エッジ1006をソーシャルグラフ情報としてデータ・ストアのうちの1つまたは複数に記憶し得る。図10の例では、ソーシャルグラフ1000は、ユーザ「A」とユーザ「B」のユーザ・ノード1002間の友達関係を示すエッジ1006と、ユーザ「C」とユーザ「B」のユーザ・ノード1002間の友達関係を示すエッジとを含む。本開示は、特定のユーザ・ノード1002を接続する、特定の属性を有する特定のエッジ1006を説明または例示しているが、本開示は、ユーザ・ノード1002を接続する、任意の適切な属性を有する任意の適切なエッジ1006を企図するものである。限定としてではなく、一例として、エッジ1006は、友達関係、家族関係、ビジネスすなわち雇用関係、ファン関係、フォロワー関係、ビジター関係、購読者関係、上下関係、相互関係、非相互関係、別の適切なタイプの関係、または2つ以上のそのような関係を表し得る。さらに、本開示は一般に、ノードを、接続されていると説明しているが、本開示は、ユーザまたは概念も、接続されていると説明する。本明細書では、接続されているユーザまたは概念への参照は、適切な場合には、ソーシャルグラフ1000内で1つまたは複数のエッジ1006によって接続されているそれらのユーザまたは概念に対応するノードに及ぶ。
特定の実施形態では、ユーザ・ノード100と概念ノード1004との間のエッジ1006は、概念ノード1004に関連付けられている概念のためにユーザ・ノード1002に関連付けられているユーザによって実行される特定のアクションまたはアクティビティを表し得る。限定としてではなく、一例として、図10に例示されるように、ユーザは、概念に対して「いいね」を表明し、「通学した」、「プレイした」、「聞いた」、「料理した」、「働いた」、または概念を「見た」とする。その各々は、エッジ・タイプまたは
サブタイプに対応し得る。概念ノード1004に対応する概念プロファイル・ページは、たとえば、選択可能な「チェック・イン」アイコン(たとえば、クリック可能な「チェック・イン」アイコンなど)または選択可能な「お気に入りに追加」アイコンを含んでよい。同様に、ユーザがこれらのアイコンをクリックした後、ソーシャル・ネットワーキング・システム902は、それぞれのアクションに対応するユーザのアクションに応答して「お気に入り」エッジまたは「チェック・イン」エッジを作成してよい。限定としてではなく、別の例として、ユーザ(ユーザ「C」)は、特定のアプリケーション(オンライン音楽アプリケーションであるSPOTIFY)を使用して特定の歌(「ランブル・オン」)を聞くことがある。この場合、ソーシャル・ネットワーキング・システム902は、ユーザがその歌を聞き、そのアプリケーションを使用したことを示すため、にユーザに対応するユーザ・ノード1002と歌およびアプリケーションに対応する概念ノード1004との間に「聞いた」エッジ1006および「使用した」エッジ(図10に例示される)を作成し得る。さらに、ソーシャル・ネットワーキング・システム902は、特定の歌が特定のアプリケーションによってプレイ(再生)されたことを示すために、歌およびアプリケーションに対応する概念ノード1004間に「プレイした」エッジ1006(図10に例示される)を作成し得る。この場合、「プレイした」エッジ1006は、外部オーディオ・ファイル(歌「イマジン」)に対して外部アプリケーション(SPOTIFY)によって実行されるアクションに対応する。本開示は、ユーザ・ノード1002および概念ノード1004を接続する、特定の属性を有する特定のエッジ1006を説明しているが、本開示は、ユーザ・ノード1002および概念ノード1004を接続する、任意の適切な属性を有する任意の適切なエッジ1006を企図するものである。そのうえ、本開示は、単一の関係を表す、ユーザ・ノード1002と概念ノード1004との間のエッジを説明しているが、本開示は、1つまたは複数の関係を表す、ユーザ・ノード1002と概念ノード1004との間のエッジを企図する。限定としてではなく、一例として、エッジ1006は、ユーザが特定の概念に対して「いいね」を表明したことと、特定の概念において使用したことの両方を表し得る。代替的に、別のエッジ1006は、ユーザ・ノード1002と概念ノード1004との間の各タイプの関係(または単一の関係の倍数)を表し得る(図10では、ユーザ「E」のユーザ・ノード1002と「SPOTIFY」の概念ノード1004との間に例示される)。
特定の実施形態では、ソーシャル・ネットワーキング・システム902は、ソーシャルグラフ1000内のユーザ・ノード1002と概念ノード1004との間にエッジ1006を作成し得る。限定としてではなく、一例として、(たとえば、ユーザのクライアント・システム906によってホストされるウェブ・ブラウザまたは特殊目的アプリケーションを使用することなどによって)概念プロファイル・ページを閲覧するユーザは、自分は概念ノード1004によって表される概念に対して「いいね」を表明したことを、「いいね」アイコンをクリックまたは選択することによって示し得、それは、ユーザは概念プロファイル・ページに関連付けられている概念に対して「いいね」を表明したことを示すメッセージをソーシャル・ネットワーキング・システム902に対して送信することをユーザのクライアント・システム906に行わせ得る。メッセージに応答して、ソーシャル・ネットワーキング・システム902は、ユーザと概念ノード1004との間の「いいね」エッジ1006によって例示されるように、ユーザに関連付けられているユーザ・ノード1002と概念ノード1004との間にエッジ1006を作成し得る。特定の実施形態では、ソーシャル・ネットワーキング・システム902は、1つまたは複数のデータ・ストアにエッジ1006を記憶し得る。特定の実施形態では、エッジ1006は、特定のユーザ・アクションに応答して、ソーシャル・ネットワーキング・システム902によって自動的に形成され得る。限定としてではなく、一例として、第1のユーザがピクチャをアップロードする、映画を見る、または歌を聞く場合、エッジ1006は、第1のユーザに対応するユーザ・ノード1002とそれらの概念に対応する概念ノード1004との間に形成され得る。本開示は、特定の様式で特定のエッジ1006を形成することを説明してい
るが、本開示は、任意の適切な様式で任意の適切なエッジ1006を形成することを企図するものである。
特定の実施形態では、広告は、テキスト(HTMLリンクであってよい)、1つもしくは複数の画像(HTMLリンクであってよい)、1つもしくは複数の映像、オーディオ、1つもしくは複数のADOBE FLASHファイル、これらの適切な組み合わせ、または1つもしくは複数のウェブページ上で、1つもしくは複数の電子メール内で、もしくはユーザによって要求された検索結果に関係して、提示される任意の適切なデジタル・フォーマットの他の任意の適切な広告であってよい。加えて、または代替として、広告は、1つまたは複数のスポンサー付きストーリー(たとえば、ソーシャル・ネットワーキング・システム902上のニュースフィードまたはティッカー・アイテム)である。スポンサー付きストーリーは、たとえば、ソーシャル・アクションを、ユーザのプロファイル・ページまたは他のページの所定のエリア内に提示させる、広告主に関連付けられている追加の情報とともに提示させる、他のユーザのニュースフィードもしくはティッカー内で衝突させるもしくは別のやり方で目立たせる、または別のやり方でプロモーションさせることによって広告主がプロモーションする、ユーザによるソーシャル・アクション(ページに対して「いいね」を表明する、ページ上の投稿に対して「いいね」を表明するもしくはコメントする、ページに関連付けられているイベントの出欠を返事する、ページ上で投稿された質問に関して投稿する、ある場所にチェック・インする、アプリケーションを使用するもしくはゲームをする、またはウェブサイトを「リンク」もしくは共有するなど)であってよい。広告主は、ソーシャル・アクションをプロモーションさせるために支払うことがある。限定としてではなく、一例として、広告は検索結果ページの検索結果の間に含まれてよく、そこでは、スポンサー付きコンテンツは、スポンサー付きでないコンテンツよりもプロモーションされる。
特定の実施形態では、広告は、ソーシャルネットワーキングシステム・ウェブページ、サードパーティ・ウェブページ、または他のページ内での表示のために要求され得る。広告は、ページの上部のバナー・エリア内、ページの側部のカラム内、ページのGUI内、ポップアップ・ウィンドウ内、ドロップダウン・メニュー内、ページの入力フィールド内、ページのコンテンツの上部の上、またはページに関する他の場所などの、ページの専用部分内に表示され得る。加えて、または代替として、広告はアプリケーション内に表示され得る。広告は、専用ページ内に表示され、ユーザに、ユーザがページにアクセスするまたはアプリケーションを利用する前に広告と対話するまたはこれを見ることを要求し得る。ユーザは、たとえば、ウェブ・ブラウザを通して広告を閲覧してよい。
ユーザは、任意の適切な様式で広告と対話してよい。ユーザは、広告をクリックしてもよいし、または別のやり方で広告を選択してもよい。広告を選択することによって、ユーザは、広告に関連付けられているページ(または、ユーザによって使用されているブラウザもしくは他のアプリケーション)に対して向けられ得る。広告に関連付けられているページでは、ユーザは、広告に関連付けられている製品もしくはサービスを購入する、広告に関連付けられている情報を受信する、または広告に関連付けられているニュースレターを購読するなどの、追加のアクションをとり得る。オーディオまたは映像を有する広告は、(「プレイ・ボタン」などの)広告の構成要素を選択することによってプレイされ得る。代替的に、広告を選択することによって、ソーシャル・ネットワーキング・システム902は、ユーザの特定のアクションを実行または修正し得る。
広告は、ユーザが対話し得るソーシャル・ネットワーキング・システム機能も含み得る。限定としてではなく、一例として、広告は、ユーザが、支持に関連付けられているアイコンまたはリンクを選択することによって広告に対して「いいね」を表明するまたは別のやり方で広告を支持することを可能にし得る。限定としてではなく、別の例として、広告
は、ユーザが、広告主に関連するコンテンツを(たとえば、クエリを実行することによって)検索することを可能にし得る。同様に、ユーザは、別のユーザと(たとえば、ソーシャル・ネットワーキング・システム902を通して)広告を共有し得、または広告に関連付けられているイベントの出欠を(たとえば、ソーシャル・ネットワーキング・システム902を通して)返事し得る。加えて、または代替として、広告は、ユーザに対して向けられたソーシャルネットワーキングシステム・コンテキストを含み得る。限定としてではなく、一例として、広告は、広告の主題に関連付けられているアクションをとった、ソーシャル・ネットワーキング・システム902内のユーザの友達についての情報を表示し得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム902は、互いに対するさまざまなソーシャルグラフ・エンティティのソーシャルグラフ親密度(本明細書では、「親密度」と呼ばれることがある)を決定し得る。親密度は、ユーザ、概念、コンテンツ、アクション、広告、オンライン・ソーシャル・ネットワークに関連付けられている他のオブジェクト、またはそれらの任意の適切な組み合わせなどの、オンライン・ソーシャル・ネットワークに関連付けられている特定のオブジェクト間の関係の強さまたは興味のレベルを表し得る。親密度は、サードパーティ・システム908または他の適切なシステムに関連付けられているオブジェクトに対しても決定され得る。各ユーザ、主題、またはコンテンツのタイプのためのソーシャルグラフ・エンティティの全体的な親密度が確立され得る。全体的な親密度は、ソーシャルグラフ・エンティティに関連付けられているアクションまたは関係の継続モニタリングに基づいて変化し得る。本開示は、特定の様式で特定の親密度を決定することを説明しているが、本開示は、任意の適切な様式で任意の適切な親密度を決定することを企図している。
特定の実施形態では、ソーシャル・ネットワーキング・システム902は、親密度係数(本明細書では、「係数」と呼ばれることがある)を使用してソーシャルグラフ親密度を測定または定量化し得る。係数は、オンライン・ソーシャル・ネットワークに関連付けられている特定のオブジェクト間の関係の強さを表すまたは定量化し得る。係数は、アクションにおけるユーザの興味に基づいてユーザが特定のアクションを実行する予測確率を測定する確率または機能も表し得る。このようにして、ユーザの将来のアクションは、ユーザの前のアクションに基づいて予測され得、係数は、少なくとも部分的にユーザのアクションの履歴計算され得る。係数は、任意の数のアクションを予測するために使用され得、アクションは、オンライン・ソーシャル・ネットワーク内であってもよいし、オンライン・ソーシャル・ネットワークの外部であってもよい。限定としてではなく、一例として、これらのアクションは、メッセージを送信すること、コンテンツを投稿すること、もしくはコンテンツに対してコメントすることなどのさまざまなタイプの通信、プロファイル・ページ、メディア、もしくは他の適切なコンテンツにアクセスもしくは閲覧するなどのさまざまなタイプの観察アクション、同じグループ内にある、同じ写真でタグ付けされている、同じロケーションにチェック・インした、もしくは同じイベントに出席したなどの2つ以上のソーシャルグラフ・エンティティについてのさまざまなタイプの一致情報、または他の適切なアクションを含み得る。本開示は、特定の様式で親密度を測定することを説明しているが、本開示は、任意の適切な様式で親密度を測定することを企図している。
特定の実施形態では、ソーシャル・ネットワーキング・システム902は、さまざまな因子を使用して係数を計算し得る。これらの因子としては、たとえば、ユーザ・アクション、オブジェクト間の関係のタイプ、ロケーション情報、他の適切な因子、またはそれらの任意の組み合わせがあり得る。特定の実施形態では、異なる因子は、係数を計算するとき、異なるように重み付けされ得る。各因子の重みは静的であってもよいし、重みは、たとえば、ユーザ、関係のタイプ、アクションのタイプ、ユーザのロケーションなどに応じて変化してもよい。因子のレーティングは、ユーザの全体的係数を決定するための重みに
応じて組み合わされ得る。限定としてではなく、一例として、特定のユーザ・アクションは、レーティングと重みの両方に対して割り当てられてよく、特定のユーザ・アクションに関連付けられている関係は、レーティングおよび相関重みが割り当てられる(たとえば、そのため、重みは合計100%になる)。特定のオブジェクトに対するユーザの係数を計算するために、ユーザのアクションに対して割り当てられたレーティングは、たとえば、全体的係数の60%を備えることがあり、ユーザとオブジェクトとの間の関係は全体的係数の40%を備えることがある。特定の実施形態では、ソーシャル・ネットワーキング・システム902は、たとえば、情報がアクセスされてからの時間、減衰因子、アクセスの頻度、情報との関係もしくは情報がアクセスされたオブジェクトとの関係、オブジェクトに対して接続されたソーシャルグラフ・エンティティとの関係、ユーザ・アクションの短期もしくは長期の平均、ユーザ・フィードバック、他の適切な変数、またはそれらの任意の組み合わせなどの、係数を計算するために使用されるさまざまな因子に対する重みを決定するとき、さまざまな変数を考慮し得る。限定としてではなく、一例として、係数は、係数を計算するとき、アクションが最近であればあるほど関連度が大きくなるように、特定のアクションによって提供される信号の強さを時間とともに減衰させる減衰因子を含み得る。レーティングおよび重みは、係数が基づくアクションの継続追跡に基づいて連続的に更新され得る。任意のタイプのプロセスまたはアルゴリズムが、各因子および因子に対して割り当てられた重みに対するレーティングを割り当てる、組み合わせる、平均化するなどを行うために用いられてよい。特定の実施形態では、ソーシャル・ネットワーキング・システム902は、履歴アクションおよび過去のユーザ応答、またはさまざまなオプションに対してさらし、応答を測定することによってユーザから得られた(farmed)データに関して訓練された機械学習アルゴリズムを使用して係数を決定し得る。本開示は、特定の様式で係数を計算することを説明しているが、本開示は、任意の適切な様式で係数を計算することを企図している。
特定の実施形態では、ソーシャル・ネットワーキング・システム902は、ユーザのアクションに基づいて係数を計算し得る。ソーシャル・ネットワーキング・システム902は、オンライン・ソーシャル・ネットワーク上で、サードパーティ・システム908上で、他の適切なシステム上で、またはそれらの任意の組み合わせで、そのようなアクションを監視してよい。任意の適切なタイプのユーザ・アクションが追跡または監視されてよい。典型的なユーザ・アクションとしては、プロファイル・ページを閲覧すること、コンテンツを作成または投稿すること、コンテンツと対話すること、グループに加わること、イベントにおける出席をリストし確かめること、ロケーションにチェック・インすること、特定のページに対して「いいね」を表明すること、ページを作成すること、およびソーシャル・アクションを促進する他のタスクを実行することがある。特定の実施形態では、ソーシャル・ネットワーキング・システム902は、特定のタイプのコンテンツとのユーザのアクションに基づいて係数を計算し得る。コンテンツは、オンライン・ソーシャル・ネットワーク、サードパーティ・システム908、または別の適切なシステムに関連付けられ得る。コンテンツとしては、ユーザ、プロファイル・ページ、投稿、ニュース・ストーリー、ヘッドライン、インスタント・メッセージ、チャット・ルームの会話、電子メール、広告、ピクチャ、映像、音楽、他の適切なオブジェクト、またはそれらの任意の組み合わせがある。ソーシャル・ネットワーキング・システム902は、ユーザのアクションを分析して、アクションのうちの1つまたは複数が主題、コンテンツ、他のユーザなどに対して親密度を示すか否かを決定し得る。限定としてではなく、一例として、ユーザが、「コーヒー」またはその変種に関係したコンテンツの投稿を頻繁に行う場合、ソーシャル・ネットワーキング・システム902は、ユーザが「コーヒー」という概念に関して高い係数を有することを決定し得る。特定のアクションまたは特定のタイプのアクションは、計算された全体的係数に影響し得る、他のアクションよりも高い重みおよび/またはレーティングが割り当てられ得る。限定としてではなく、一例として、第1のユーザが第2のユーザに電子メールを出す場合、アクションに対する重みまたはレーティングは、第1のユ
ーザが第2のユーザのためのユーザプロファイル・ページを閲覧するだけの場合よりも高くなり得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム902は、特定のオブジェクト間の関係のタイプに基づいて係数を計算し得る。ソーシャルグラフ1000を参照すると、ソーシャル・ネットワーキング・システム902は、係数を計算するとき、特定のユーザ・ノード1002と概念ノード1004を接続するエッジ1006の数および/またはタイプを分析し得る。限定としてではなく、一例として、配偶者タイプのエッジ(2人のユーザが結婚していることを表す)によって接続されるユーザ・ノード1002は、友達タイプのエッジによって接続されるユーザ・ノード1002よりも高い係数が割り当てられ得る。言い換えれば、特定のユーザのためのアクションおよび関係に対して割り当てられた重みに応じて、全体的親密度は、ユーザの友達についてのコンテンツに対するよりもユーザの配偶者についてのコンテンツに対して高くなるように決定され得る。特定の実施形態では、ユーザが別のオブジェクトと有する関係は、そのオブジェクトに関する係数を計算することに関するユーザのアクションの重みおよび/またはレーティングに影響し得る。限定としてではなく、一例として、コンテンツとタグ付けタイプの関係を有することは、コンテンツと「いいね」タイプの関係を有するよりも高い重みおよび/またはレーティングを割り当てられ得るので、ユーザが第1のフォトでタグ付けされるが、第2のフォトに対しては「いいね」を表明するにすぎない場合、ソーシャル・ネットワーキング・システム902は、ユーザが、第2のフォトよりも第1のフォトに関して高い係数を有することを決定し得る。特定の実施形態では、ソーシャル・ネットワーキング・システム902は、1つまたは複数の第2のユーザが特定のオブジェクトと有する関係に基づいて、第1のユーザに関する係数を計算し得る。言い換えれば、他のユーザがオブジェクトと有する接続および係数は、第1のユーザのオブジェクトに関する係数に影響し得る。限定としてではなく、一例として、第1のユーザが、1つもしくは複数の第2のユーザに対して接続される、またはそれらに関して高い係数を有し、それらの第2のユーザが特定のオブジェクトに接続されるまたはそれに関して高い係数を有する場合、ソーシャル・ネットワーキング・システム902は、第1のユーザも、特定のオブジェクトに関する比較的高い係数も有するべきであることを決定し得る。特定の実施形態では、係数は、特定のオブジェクト間の隔たり次数に基づいてよい。任意の2つのノード間の隔たり次数は、あるノードから他のノードへソーシャルグラフをたどるために必要とされるホップの最小数として定義される。2つのノード間の隔たり次数は、ソーシャルグラフ内の2つのノードによって表されるユーザまたは概念間の関係性の尺度と考えられ得る。たとえば、エッジによって直接的に接続される(すなわち、1次のノードである)ユーザ・ノードを有する2人のユーザは、「接続されたユーザ」すなわち「友達」と説明され得る。同様に、別のユーザ・ノードを通してのみ接続される(すなわち、2次のノードである)ユーザ・ノードを有する2人のユーザは、「友達の友達」と説明され得る。より低い係数は、第1のユーザが、ソーシャルグラフ1000内で第1のユーザに対して間接的に接続されたユーザのコンテンツ・オブジェクトにおいて興味を共有する可能性の減少を表し得る。限定としてではなく、一例として、ソーシャルグラフ1000内でより近い(すなわち、分離次数のより低い)ソーシャルグラフ・エンティティは、ソーシャルグラフ1000内でさらに離れたエンティティよりも高い係数を有し得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム902は、ロケーション情報に基づいて係数を計算し得る。互いに対して地理的により近いオブジェクトは、より遠いオブジェクトよりも互いに対してより関係がある、またはより興味があると考えられ得る。特定の実施形態では、特定のオブジェクトのためのユーザの係数は、ユーザに関連付けられている現在のロケーション(またはユーザのクライアント・システム906のロケーション)に対するオブジェクトのロケーションの近接性に基づき得る。第1のユーザは、第1のユーザに対してより近い他のユーザまたは概念に、より興味があり得る。限
定としてではなく、一例として、ユーザが空港から1.609km(1マイル)、ガソリン・スタンドから3.219km(2マイル)のところにいる場合、ソーシャル・ネットワーキング・システム902は、ユーザに対する空港の近接性に基づいて、ユーザがガソリン・スタンドよりも空港に関して高い係数を有することを決定し得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム902は、係数情報に基づいて、ユーザに関する特定のアクションを実行し得る。係数は、ユーザのアクションへの興味に基づいて、ユーザが特定のアクションを実行するか否かを予測するために使用され得る。係数は、広告、検索結果、ニュース・ストーリー、メディア、メッセージ、通知、または他の適切なオブジェクトなどの任意のタイプのオブジェクトをユーザに対して生成または提示するとき、使用され得る。係数はまた、必要に応じて、そのようなオブジェクトをランキングし、順序付けるために利用され得る。このようにして、ソーシャル・ネットワーキング・システム902は、ユーザの興味および現在の環境に関連のある情報を提供し、興味のあるそのような情報を見つける可能性を増加させ得る。特定の実施形態では、ソーシャル・ネットワーキング・システム902は、係数情報に基づいてコンテンツを生成し得る。コンテンツ・オブジェクトは、ユーザに固有の係数に基づいて提供または選択され得る。限定としてではなく、一例として、ユーザが、ユーザがメディア・オブジェクトに関して高い全体的係数を有するメディアが提示される場合、係数は、ユーザのためのメディアを生成するために使用され得る。限定としてではなく、別の例として、ユーザが、ユーザが広告付きオブジェクトに関して高い全体的係数を有する広告が提示される場合、係数は、ユーザのための広告を生成するために使用され得る。特定の実施形態では、ソーシャル・ネットワーキング・システム902は、係数情報に基づいて検索結果を生成し得る。特定のユーザのための検索結果は、クエリを発行したユーザに対する検索結果に関連付けられている係数に基づいてスコア付けまたはランキングされ得る。限定としてではなく、一例として、より高い係数を有するオブジェクトに対応する検索結果は、検索結果ページ上で、より低い係数を有するオブジェクトに対応する結果よりも高くランキングされ得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム902は、特定のシステムまたはプロセスからの係数の要求に応答して係数を計算し得る。ユーザが所与の状況でとり得る(または、その対象であり得る)可能性があるアクションを予測するために、任意のプロセスは、ユーザに関する計算された係数を要求し得る。要求は、係数を計算するために使用されるさまざまな因子に使用する重みのセットも含み得る。この要求は、オンライン・ソーシャル・ネットワーク上で実行されているプロセスから来ることもあるし、サードパーティ・システム908から(たとえば、APIまたは他の通信チャネルを介して)来ることもあるし、別の適切なシステムから来ることもある。要求に応答して、ソーシャル・ネットワーキング・システム902は、係数を計算し得る(または、係数情報が以前に計算され、記憶されている場合、その係数情報にアクセスし得る)。特定の実施形態では、ソーシャル・ネットワーキング・システム902は、特定のプロセスに関して親密度を測定し得る。さまざまなプロセス(オンライン・ソーシャル・ネットワークに対して内部と外部の両方にある)は、特定のオブジェクトまたはオブジェクトのセットに関する係数を要求し得る。ソーシャル・ネットワーキング・システム902は、親密度の尺度を要求した特定のプロセスに対して関連のある親密度の尺度を提供し得る。このようにして、各プロセスは、プロセスが親密度の尺度を使用する異なるコンテキストに合わせられた親密度の尺度を受信する。
ソーシャルグラフ親密度および親密度係数に関して、特定の実施形態は、その各々が本願明細書に援用される、2006年8月11日に出願された米国特許出願第11/503093号、2010年12月22日に出願された米国特許出願第12/979027号、2010年12月23日に出願された米国特許出願第12/978265号、および20
12年10月01日に出願された米国特許出願第13/642869号に開示されている1つまたは複数のシステム、構成要素、要素、機能、方法、動作、またはステップを利用し得る。
特定の実施形態では、オンライン・ソーシャル・ネットワークのコンテンツ・オブジェクトのうちの1つまたは複数がプライバシー設定に関連付けられ得る。オブジェクトのためのプライバシー設定(または「アクセス設定」)は、たとえば、オブジェクトに関連して、許可サーバ上のインデックス内に、別の適切な様式で、または、それらの任意の組み合わせなどの任意の適切な様式で記憶されてよい。オブジェクトのプライバシー設定は、オブジェクト(またはオブジェクトに関連付けられている特定の情報)が、オンライン・ソーシャル・ネットワークを使用してどのようにアクセス(たとえば、閲覧または共有)され得るかを規定し得る。オブジェクトのためのプライバシー設定は、特定のユーザがそのオブジェクトにアクセスすることを可能にし、オブジェクトは、そのユーザに対して「閲覧可能」と説明され得る。限定としてではなく、一例として、オンライン・ソーシャル・ネットワークのユーザは、ユーザプロファイル・ページのためのプライバシー設定が、ユーザプロファイル・ページ上の職歴情報にアクセスし得るユーザのセットを識別し、したがって、他のユーザを情報にアクセスさせないことを規定し得る。特定の実施形態では、プライバシー設定は、オブジェクトに関連付けられている一定の情報にアクセスすることが可能にされるべきではないユーザの「遮断リスト」を規定し得る。言い換えれば、遮断リストは、オブジェクトが見えない1つまたは複数のユーザまたはエンティティを規定し得る。限定としてではなく、一例として、ユーザは、ユーザに関連付けられているフォト・アルバムにアクセスし得ないユーザのセットを規定し、したがって、それらのユーザをフォト・アルバムにアクセスさせ得ない(がまた、おそらく、ユーザのセットに含まれない一定のユーザはフォト・アルバムにアクセスすることを可能にする)。特定の実施形態では、プライバシー設定は、特定のソーシャルグラフ要素に関連付けられ得る。ノードまたはエッジなどのソーシャルグラフ要素のプライバシー設定は、ソーシャルグラフ要素、ソーシャルグラフ要素に関連付けられている情報、またはソーシャルグラフ要素に関連付けられているコンテンツ・オブジェクトがどのようにしてオンライン・ソーシャル・ネットワークを使用してアクセス可能であるかを規定し得る。限定としてではなく、一例として、特定のフォトに対応する特定の概念ノード1004は、そのフォトは、フォトでタグ付けされたユーザおよびユーザの友達によってのみアクセスされ得ることを規定するプライバシー設定を有し得る。特定の実施形態では、プライバシー設定は、ユーザが、アクションをソーシャル・ネットワーキング・システム902によってログさせること、または他のシステム(たとえば、サードパーティ・システム908)と共有させることに加わる、または加わらないことを可能にする。特定の実施形態では、オブジェクトに関連付けられているプライバシー設定は、任意の適切な粒度の許容されたアクセスまたはアクセスの否定を規定し得る。限定としてではなく、一例として、アクセスまたはアクセスの否定は、特定のユーザ(たとえば、自分のみ、ルームメイト、および上司)、特定の次数以内の隔たりに含まれるユーザ(たとえば、友達、または友達の友達)、ユーザ・グループ(たとえば、ゲーム・クラブ、家族)、ユーザ・ネットワーク(たとえば、特定の雇用者の従業員、学生、または特定の大学の卒業生)、すべてのユーザ(「パブリック」)、ユーザなし(「プライベート」)、サードパーティ・システム908のユーザ、特定のアプリケーション(たとえば、サードパーティ・アプリケーション、外部ウェブサイト)、他の適切なユーザもしくはエンティティ、またはそれらの任意の組み合わせに対して規定され得る。本開示は、特定の様式で特定のプライバシー設定を使用することを説明しているが、本開示は、任意の適切な様式で任意の適切なプライバシー設定を使用することを企図している。
特定の実施形態では、1つまたは複数のサーバは、プライバシー設定を強制するための許可/プライバシー・サーバであってよい。データ・ストア内に記憶された特定のオブジ
ェクトに関するユーザ(または他のエンティティ)からの要求に応答して、ソーシャル・ネットワーキング・システム902は、オブジェクトのためのデータ・ストアに対して要求を送信し得る。要求は、要求に関連付けられているユーザを識別し得、許可サーバが、オブジェクトに関連付けられているプライバシー設定に基づいて、ユーザがオブジェクトにアクセスすることを許可されていることを決定した場合、ユーザ(またはユーザのクライアント・システム906)のみに対して送信され得る。要求元ユーザが、オブジェクトにアクセスすることが許可されていない場合、許可サーバは、要求されたオブジェクトがデータ・ストアから取り出されるのを防止し得る、または、要求されたオブジェクトがユーザに対して送信されるのを防止し得る。検索クエリ・コンテキストでは、クエリ元ユーザが、オブジェクトにアクセスすることが許可されている場合、そのオブジェクトは、検索結果としてのみ生成され得る。言い換えれば、オブジェクトは、クエリ元ユーザに見える可視性を有さなければならない。オブジェクトが、ユーザに見えない可視性を有する場合、オブジェクトは検索結果から除外され得る。本開示は、特定の様式でプライバシー設定を強制することを説明しているが、本開示は、任意の適切な様式でプライバシー設定を強制することを企図したものである。
上記明細は、特定の例示的な実施形態を参照して記載されている。種々実施形態および本開示の様相は、本明細書に記載の詳細を参照して記述され、添付の図面は、これら種々の実施形態を示している。上記説明および図面は、本発明の一例に過ぎず、本発明を制限するものと解釈されるべきではない。多くの具体的詳細の記述によって、本発明の種々の実施形態の十分な理解が得られる。
追加または代替の実施形態は、その主旨または本質的特性から逸脱することなく、他の特定の形態で具現化されるようになっていてもよい。上記実施形態は、あらゆる点において一例に過ぎず、何ら限定的なものではないと解釈されるべきである。したがって、本開示の範囲は、上記説明ではなく、添付の特許請求の範囲によって指定される。特許請求の範囲と同等の意味および範囲に含まれるすべての変更は、上記請求の範囲に包含されるものとする。