(57)【要約】  複数のプロファイルが、非同期メッセージングシステム内で、第１ユーザアカウントに関連して受信される。関連プロファイルは、ローカルコピーとして格納するために、他のユーザアカウントに関連するユーザクライアントへ送信される。関連性は、第１ユーザのコンタクトリスト内、または、他のユーザのコンタクトリスト内に含むことを有する。関連するプロファイルは、メッセージが第１アカウントから他のユーザクライアントへ送信されるとき、または、プロファイルが作成されるかまたは更新されたときに、送信される。パブリックプロファイルは、パブリックプロファイルが更新されたときに更新されるバージョン識別子を有する。他のユーザクライアントにおけるパブリックプロファイルのローカルコピーの更新は、関連するバージョン識別子のローカルコピーが、ローカルプロファイルが期限切れであることを示したときにのみ生じる。
2019510324.tif 000002
【特許請求の範囲】
【請求項１】
非同期メッセージングシステム内の第１ユーザアカウントに関連する複数のユーザプロファイルを管理するコンピュータ実行可能な方法であって、
ａ）前記第１ユーザアカウントに関連する複数のユーザプロファイルに対するそれぞれのプロファイル仕様を、前記第１ユーザアカウントの認証に関連して、前記非同期メッセージングシステムのサーバーで受信し、格納する工程であって、前記複数のユーザプロファイルは、第１ユーザプロファイル、および、前記第１ユーザプロファイルと異なる第２ユーザプロファイルを有する工程と、
ｂ）前記第１のユーザプロファイルのローカルコピーとして前記第２ユーザクライアントにおいて格納するために、前記第１ユーザプロファイルを、前記非同期メッセージングシステム内で第２ユーザアカウントと関連する第２ユーザクライアントへ送信する工程と、
ｃ）前記第２ユーザプロファイルのローカルコピーとして第３ユーザクライアントにおいて格納するために、前記第２ユーザプロファイルを、非同期メッセージングシステム内の第３ユーザアカウントと関連する第３ユーザクライアントに、前記サーバーによって送信する工程と
を備える方法。
【請求項２】
ａ１）前記第１ユーザアカウントから前記第２ユーザアカウントへメッセージを送信するための入力を前記サーバーにおいて受信する工程をさらに備え、
前記工程ｂ）は、工程ａ１）に応答して実行される、ことを特徴とする請求項１に記載の方法。
【請求項３】
ａ２）前記第１ユーザアカウントから前記第３ユーザアカウントへメッセージを送信するための入力を前記サーバーにおいて受信する工程をさらに備え、
前記工程ｃ）は、前記工程ａ２）に応答して実行される、ことを特徴とする請求項２に記載の方法。
【請求項４】
ａ２）工程ａ１）に応答して、工程ｂ）において前記第２ユーザアカウントに関連する前記第２ユーザクライアントへ送信するために、前記第１ユーザプロファイルをランダムに選択する工程をさらに備える請求項２に記載の方法。
【請求項５】
ａ０．１）前記第２ユーザアカウントを同定するグループ定義を前記サーバーにおいて受信する工程をさらに備え、
前記工程ａ１）において、前記第１ユーザアカウントから前記サーバーにおいて受信される前記入力は、前記グループを同定し、前記ステップａ１）は、前記グループ定義が前記第２ユーザアカウントを同定することを判定する工程をさらに有する、ことを特徴とする請求項２に記載の方法。
【請求項６】
ａ１）前記第１ユーザプロファイルに関連する第２ユーザアカウントを同定する第２ユーザアカウントエントリーを、前記第１ユーザアカウントに関連する第１ユーザコンタクトリスト内に、前記サーバーで生成しかつ格納することに応答して、前記非同期メッセージングシステム内の第１ユーザプロファイルおよび前記第２ユーザアカウントを同定する入力を、前記第１ユーザアカウントに対する認証に関連して、前記サーバーにおいて受信する工程をさらに備え、
前記工程ｂ）は、工程ａ１）に応答して実行される、ことを特徴とする請求項１に記載の方法。
【請求項７】
ａ１）前記第１ユーザプロファイルの更新済みプロファイル仕様を前記サーバーで生成しかつ格納することに応答して、前記第１ユーザアカウントに対する認証に関連する前記第１ユーザプロファイルの前記プロファイル仕様の更新を前記サーバーにおいて受信する工程と、
ａ２）前記第１ユーザアカウントに関連する第１ユーザコンタクトリストが、前記第１ユーザプロファイルに関連する前記第２ユーザアカウントを同定する第２ユーザアカウントエントリーを有することを前記サーバーにより判定する工程と
をさらに備え、
前記工程ｂ）は、前記工程ａ１）および工程ａ２）に応答して実行され、前記第２ユーザクライアントに送信された前記第１ユーザプロファイルは、前記第１ユーザプロファイルの更新済みのプロファイル仕様を有する、ことを特徴とする請求項１に記載の方法。
【請求項８】
ａ１）前記第１ユーザプロファイルの更新済みプロファイル仕様を前記サーバーにおいて生成し格納することに応答して、前記第１ユーザプロファイルの前記プロファイル仕様の更新を、前記第１ユーザアカウントに対する認証に関連して、前記サーバーにおいて受信する工程と、
ａ２）前記第２ユーザアカウントに関連する第２ユーザコンタクトリストが、前記第１ユーザアカウントを同定する第１ユーザアカウントエントリーを有することを、前記サーバーによって判定する工程と
をさらに備え、
前記工程ｂ）は、前記工程ａ１）およびａ２）に応答して実行され、前記第２ユーザクライアントに送信された前記第１ユーザプロファイルは、前記第１ユーザプロファイルの前記更新済みプロファイル仕様を有する、ことを特徴とする請求項１に記載の方法。
【請求項９】
前記第１ユーザアカウントに関連する第１ユーザコンタクトリストは、前記第２ユーザアカウントを同定するいずれのエントリーも含まない、ことを特徴とする請求項８に記載の方法。
【請求項１０】
前記第１ユーザアカウントの前記第１ユーザコンタクトリストは、前記第１ユーザプロファイルを同定するいずれのエントリーも含まない、ことを特徴とする請求項８に記載の方法。
【請求項１１】
ｂ１）前記第２ユーザプロファイルの更新済みプロファイル仕様を生成しかつ格納することに応答し、かつ、前記第２ユーザプロファイルの更新済みプロファイル仕様バージョン識別子を、前記第２ユーザプロファイルに関連して、前記サーバーにおいて生成しかつ格納することに応答して、前記第２ユーザプロファイルの前記プロファイル仕様の更新を、前記第１ユーザアカウントに対する認証に関連して、前記サーバーにおいて受信する工程と、
ｂ２）前記第１ユーザアカウントから前記第３ユーザアカウントへメッセージを送信するべく、前記サーバーにおいて入力を受信する工程と、
ｂ３）前記更新済みプロファイル仕様バージョン識別子を、前記第２ユーザアカウントに関連する前記第３ユーザクライアントに、前記サーバーによって送信する工程と、
ｂ４）前記第３ユーザクライアントにおいて格納された前記第２ユーザプロファイルの前記ローカルコピーに関連するローカルプロファイル仕様バージョン識別子が、前記更新済みプロファイル仕様バージョン識別子と異なることを示す信号を、前記サーバーにおいて前記第３ユーザクライアントから受信する工程と
をさらに備え、
前記工程ｃ）は、前記工程ｂ４）に応答して実行され、前記第３ユーザクライアントへ送信された前記第２ユーザプロファイルは、前記第２ユーザプロファイルの前記更新済みプロファイル仕様を有する、ことを特徴とする請求項１に記載の方法。
【請求項１２】
ｂ１．１）前記第１ユーザアカウントに関連する第１ユーザコンタクトリストは、前記第３ユーザアカウントを同定するいずれのエントリーも含まないことを、前記サーバーにより判定する工程
をさらに備え、
前記工程ｂ３）およびｂ４）は、工程ｂ１．１）に応答して実行される、ことを特徴とする請求項１１に記載の方法。
【請求項１３】
ｂ１．２）前記第３ユーザアカウントに関連する第３ユーザコンタクトリストは、前記第１ユーザアカウントを同定するいずれのエントリーも含まないことを、前記サーバーにより判定する工程をさらに備え、
前記工程ｂ３）およびｂ４）は、前記工程ｂ１．１）およびｂ１．２）に応答して実行される、ことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記工程ｂ１．２）は、前記工程ｂ１．１）に応答して実行される、ことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記第１ユーザアカウントに前記第１ユーザコンタクトリストは、前記第２ユーザプロファイルを同定するいずれのエントリーも含まない、ことを特徴とする請求項１２に記載の方法。
【請求項１６】
ｂ１）前記第２ユーザプロファイルの更新済みプロファイル仕様を前記サーバーにより生成しかつ格納することに応答して、前記第２ユーザプロファイルの前記プロファイル仕様の更新を、前記第１ユーザアカウントに対する認証に関連して、前記サーバーにおいて受信する工程と、
前記第１ユーザアカウントに関連する前記第１ユーザコンタクトリストが、前記第２ユーザプロファイルに関連して前記第３ユーザアカウントを同定する第３ユーザアカウントエントリーを含むことを、前記サーバーにより判定する工程と
をさらに備え、
前記工程ｃ）は、前記工程ｂ１）およびｂ２）に応答して実行され、前記第３ユーザクライアントに送信された前記第２ユーザプロファイルは、前記第２ユーザプロファイルの更新されたプロファイル仕様を有する、ことを特徴とする請求項７に記載の方法。
【請求項１７】
ｂ１）前記第２ユーザプロファイルの更新済みプロファイル仕様を前記サーバーにより生成しかつ格納することに応答して、前記第２ユーザプロファイルの前記プロファイル仕様の更新を、前記第１ユーザアカウントに対する認証に関連して、前記サーバーにおいて受信する工程と、
ｂ２）前記第３ユーザアカウントに関連する第３ユーザコンタクトリストが、前記第１ユーザアカウントを同定する第１ユーザアカウントエントリーを有することを前記サーバーによって判定する工程と
をさらに備え、
前記工程ｃ）は、前記工程ｂ１）およびｂ２）に応答して実行され、前記第３ユーザクライアントに送信された前記第２ユーザプロファイルは、前記第２ユーザプロファイルの前記更新済みのプロファイル仕様を有する、ことを特徴とする請求項７に記載の方法。
【請求項１８】
ｄ）前記第３ユーザプロファイルの更新されたプロファイル仕様を前記サーバーによって生成しかつ格納することに応答し、前記第３ユーザプロファイルの更新ずみプロファイル仕様バージョン識別子を、前記第３ユーザプロファイルに関連して前記サーバーによって生成しかつ格納することに応答して、前記第１ユーザプロファイルおよび前記第２ユーザプロファイルの両方と異なる第３ユーザプロファイルのプロファイル仕様の更新を、前記第１ユーザアカウントに対する認証に関連して前記サーバーにおいて受信する工程と、
ｅ）前記非同期メッセージングシステム内で、前記第１ユーザアカウントから第４ユーザアカウントへ、メッセージを送信するための入力を、前記サーバーにおいて受信する工程であって、前記第４ユーザアカウントは、前記第２ユーザアカウントおよび前記第３ユーザアカウントの両方と異なる、ところの工程と、
ｆ）前記更新済みプロファイル仕様バージョン識別子を、前記第４ユーザアカウントと関連する第４ユーザクライアントへ前記サーバーにより送信する工程と、
ｇ）前記第４ユーザクライアントにおいて格納された第２ユーザプロファイルのローカルコピーに関連するローカルプロファイル仕様バージョン識別子が、更新済みのプロファイル仕様バージョン識別子と異なることを示す、前記第４ユーザクライアントからの信号を、前記サーバーにおいて受信する工程と、
ｈ）前記第３ユーザプロファイルのローカルコピーとして前記第４ユーザクライアントにおいて格納するために前記第４ユーザアカウントに関連する前記第４ユーザクライアントへ、前記第３ユーザプロファイルを前記サーバーにより送信する工程であって、前記第４ユーザクライアントへ送信される前記第３ユーザプロファイルは、前記第３ユーザプロファイルの更新ずみプロファイル仕様を有する、ところの工程と
をさらに備える請求項１７に記載の方法。
【請求項１９】
ｅ１）前記第１ユーザアカウントに関連する第１ユーザコンタクトリストは、前記第４ユーザアカウントを同定するいずれのエントリーも含まず、かつ、前記第４ユーザアカウントに関連する第４ユーザコンタクトリストは、前記第１ユーザアカウントを同定するいずれのエントリーも含まないことを前記サーバーにより判定する工程
をさらに備え、
前記工程ｆ）、ｇ）およびｈ）は、前記工程ｅ１）に応答して実行される、ことを特徴とする請求項１８に記載の方法。
【請求項２０】
各ユーザプロファイルは、画像、アニメ画像、ビデオ、文字、またはそれらの組みあわせを含む、ことを特徴とする請求項１から１９のいずれか一項に記載の方法。
【請求項２１】
非同期メッセージングシステム内で第１ユーザアカウントに関連する複数のユーザプロファイルを管理するシステムであって、当該システムは、
プロセッサと、
通信インターフェースと、
前記通信インターフェースを使って、請求項１から２０のいずれか一項に記載の方法を実行する前記プロセッサによって実行可能なコンピュータ実行可能インストラクションを符号化するメモリと、
を備えるシステム。
【請求項２２】
通信インターフェースを使って、請求項１から２０のいずれか一項に記載の方法を実行するプロセッサによって実行可能なコンピュータ実行可能インストラクションを符号化する非一過性コンピュータ読み取り可能媒体。 
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピュータネットワークを通じた非同期メッセージングに関する。
【背景技術】
【０００２】
非同期通信は、送信者および受信者の両方に対して同期したあるクロックに従うのではなく、そのスケジュール許可として読み取りかつ応答することにより、通信ネットワーク内のデバイスでメッセージを交換するものである。非同期メッセージング環境において、通信は、２つ以上のアプリケーション、デバイスまたはシステムの間で生じる。それにより、システムは、メッセージキュー内にメッセージを配置し、処理を継続するための応答を待つ必要はない。送信者および受信者の両方は、同時に有効またはオンラインである必要はなく、むしろ、そのスケジュールおよび要求が許す際に、読み取りかつ応答する。例として、ｅメール、ディスカッションチャット、および、フォーラム等、および、携帯電話を通じたテキストメッセージングが含まれる。メッセージ送信および応答の期間は、受信者がオンラインになるときに応じて、数秒、数分または数日である。それらが同時にオンラインであることを要求しないため、これは、送信者および受信者にとってより便利である。
【０００３】
携帯電話に対する現在のメッセージングアプリケーションにおいて、非同期通信方法が、テキストデータを送信し、高速でマルチメディアをアップロードおよびダウンロードし、多数の同時ユーザーアクセスをサポートするのにしばしば採用される。現在の非同期メッセージングアプリケーションは、ＷｅｂＳｏｃｋｅｔプロトコル、リクエスト／レスポンスのような、予め定められたメッセージパターンを有しない双方向プロトコルのような非同期通信プロトコルを通常採用している。ＷｅｂＳｏｃｋｅｔプロトコルは、クライアントおよびサーバーの両方に、互いを待つことなくメッセージを送信することを許可し、したがって、全二重、真の非同期通信をサポートし、スケーラビリティーを増加させ、リアルタイム双方向アプリケーションを確立する。非同期メッセージングアプリケーションの例として、ＷｈａｔｓＡｐｐ（商標）メッセンジャー、Ｔｅｌｅｇｒａｍ（商標）メッセンジャー、ＬＩＮＥ（商標）メッセンジャー、ＷｅＣｈａｔ（商標）メッセンジャー、Ｆａｃｅｂｏｏｋ（商標）メッセンジャー、および、Ｇｏｏｇｌｅ  Ｈａｎｇｏｕｔｓ（商標）メッセンジャーが含まれる。ＷｈａｔｓＡｐｐは、米国カリフォルニア州マウンテンビューにあるＷｈａｔｓＡｐｐインコーポレイションの商標である。Ｔｅｌｅｇｒａｍは、米国デラウエア州ウィルミントンにあるＴｅｌｅｇｒａｍＬＬＣの商標である。ＬＩＮＥは、日本国東京にあるＬＩＮＥコーポレーションの商標である。Ｇｏｏｇｌｅ  Ｈａｎｇｏｕｔｓは、米国カリフォルニア州マウンテンビューにあるＧＯＯＧＬＥインコーポレイテッドによって開発された。
【０００４】
現在のメッセージングアプリケーションは、また、同期通信が音声またはビデオデータを送信するために使用される場合、メッセージングアプリケーションが音声コールまたはビデオコールを提供するときに、同期通信方法をしばしばサポートする。同期メッセージングまたはダイレクト通信は、２つ以上のアプリケーション、デバイスまたはシステム間で通信が生じたとき、システムが、メッセージキューの内部にメッセージを配置し、かつ、処理を継続する前にメッセージレスポンスを待つものである。情報は、クロック信号を使って同期され、通信に関与するすべてのパーティーは、同時に存在しなければならない。電話会話、ビデオ会議、および、インスタントメッセージングは、データ通信が生じている間に、データ転送がリアルタイムで生じ、送信者および受信者の両方のパーティーが同時に有効でありかつオンラインであるような同期メッセージングの使用の例である。同期会議の例として、オンラインチャットと呼ばれるものが含まれ、それは、音声／ビデオ会議、または、複数ユーザのオンラインチャット用のテキストベースメッセージングを提供するインスタントメッセージングを含むように拡張される。同期会議プロトコルの例は、インターネットリレイチャット（ＩＲＣ）、同期会議用プロトコル（ＰＳＹＣ）、セキュア・インターネット・ライブ・カンファレンシング・プロトコル（ＳＩＬＣ）、エクステンシブル・メッセージング・プレゼンス・プロトコル（ＸＭＰＰ）、および、インスタントメッセージング用ＳＩＰおよびプレゼンス・レバレッジング・エクステンション・プロトコル（ＳＩＭＰＬＥ）を含む。
【０００５】
典型的な非同期メッセージアプリケーションにおいて、送信者ユーザは、ひとりのユーザまたは複数の受信者ユーザへメッセージを送信し、メッセージリクエストは、メッセージボディおよび受信者ユーザ識別子または複数ユーザ識別子を有する。メッセージは、サーバーコンピュータに送信され、それは、メッセージを格納し、かつ、受信者ユーザが有効になったときに、受信者ユーザにメッセージを送る。メッセージは、テキストデータ、画像、音声、および／またはビデオ等のマルチメディアであってよい。各ユーザは通常、ユーザに関する識別情報を含むプロファイルを有する。プロファイルは、名前、短い説明、および、アバターとして知られる画像を含む。プロファイルは、メッセージ送信の前または近くで非同期メッセージングの他のユーザへ送信される。残りのユーザは、ときおりユーザプロファイルを見ることができる。
【０００６】
非同期メッセージングシステムにおいて通常、ユーザは、登録の際にプロファイルを作成しかつ登録する。システムは、すべてのユーザコンタクトを読み取り、かつ、ユーザプロファイルを登録したユーザコンタクトに送信する。登録済みユーザコンタクトは、ユーザプロファイルを受信し、それをユーザに関連するユーザデバイスまたはコンピュータのメモリまたはストレージ内に局所的に格納する。ユーザが他のユーザにメッセージを送信する際、他のユーザはメッセージを受信し、かつ、非同期メッセージングクライアントは、メッセージのコンテンツとともに受信者のユーザローカルデバイスまたはコンピュータメモリに格納された送信者ユーザプロファイルを表示する。システムの特性が非同期なので、メッセージコンテンツの送信前に受信者ユーザのデバイスにおいてユーザプロファイルが送信されかつ有効になるということが保証されない。したがって、送信者ユーザプロファイルのサブセットは、送信者ユーザプロファイルが完全に送信されるまで、メッセージとともに送信可能である。
【０００７】
非同期メッセージングシステムにおいて通常、ユーザは、パーソナルコンタクト、プロフェッショナルコンタクト、および他の非分類コンタクトのようなコンタクトごとに異なる分類を指定可能である。既知の非同期メッセージングシステムは、概して、ユーザに、単一のプロファイルを作成することを可能にするが、それは、最終的にユーザのすべてのコンタクトに送信される。
【０００８】
このようなシステムにおいて通常、ユーザがときおりプロファイルを更新することが可能である。更新が完了するとすぐに、非同期メッセージクライアントがサーバーへ更新済みプロファイルを送信し、サーバーは更新済みプロファイルを格納し、かつ、それが使用可能となったとき他のユーザに更新済みプロファイルを送信する。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
既知の非同期メッセージングシステム内のユーザプロファイルの実行から生じるひとつの問題は、ユーザが自分のプロファイル内に含ませたいコンテンツが、自分のコンタクトの分類のいくつか内の他のユーザにより見られるのに適している（例えば、個人的情報）が、コンタクトが友人または家族として分類される場合、自分のコンタクトの他の分類の他のユーザによって見られたくないコンテントである（例えば、使用者、従業者、または顧客などの職業的コンタクト）という場合である。したがってユーザは、コンテンツを含ませるために自身のプライバシープレファレンスを構成するか、自身のプロファイルを検閲するかを選択しなければならない。
【００１０】
プロファイル更新から生じる他の問題は、ユーザグループの使用に関連する。多くの非同期メッセージングシステムは、ユーザに対して、複数のユーザへメッセージを送ることを許す。典型的に、複数のユーザは、グループに参加するように割り当てられるかまたは招待される。その識別子は、サーバーコンピュータにおいて割り当てられたユーザの識別子とともに格納される。メッセージが特定のグループ識別子に送信されるとき、メッセージは、サーバーコンピュータによって受信され、サーバーコンピュータは、メッセージを格納し、かつ、それらが利用可能となったときグループの割り当てられたユーザへメッセージを送信する。非同期メッセージングアプリケーションの広範囲の使用は、システムに対して、時間プロファイルの更新が困難となる、より大きなグループサイズ（数千のオーダーのユーザ）に適応する必要性を要求する。
【００１１】
ある同期会議システムは、複数のプロファイルを採用または使用する。例えば、ここに参考文献として組み込む、米国特許第８，３３２，７６１号は、複数のプロファイルを管理するための同期会議システムであって、送信者および受信者の両方のパーティーがコネクション情報を取得するために同期会議サーバーにログインしなければならず、送信者および受信者の各パーティーは、メッセージおよびプロファイルを直接交換することができ、かつ、オンラインでなければならない、ところのシステムを開示する。この装置の問題は、送信者および受信者の両方のユーザがオンラインであることを要求されず、かつ、独立に双方向通信する非同期メッセージングシステムに対する解決策を与えないことである。
【課題を解決するための手段】
【００１２】
したがって、既知の技術の上述した制限を克服し、非同期メッセージング環境において複数のユーザプロファイルを提供し、かつ可能にする解決手段には価値がある。
【図面の簡単な説明】
【００１３】
実施形態は、添付する図面を参照して例示的に説明される。
【図１】図１は、システムが使用可能な環境を含む非同期メッセージングシステムのブロック図である。
【図２】図２は、非同期メッセージングシステム用の非同期メッセージングサーバーのブロック図である。
【図３】図３は、非同期メッセージングサーバーのデータ構造のデータ関連性の例を略示したブロック図である。
【図４】図４は、異なる受信者ユーザクライアントへ異なるプロファイルを送信する一般的なプロセスのフローチャートである。
【図５】図５は、メッセージがクライアントに送信されたとき、異なる受信者ユーザクライアントに異なるプロファイルを送信するプロセスのフローチャートである。
【図６】図６は、複数のプロファイルを有する新しい非同期アカウントの登録プロセスのフローチャートである。
【図７】図７は、自身のプロファイルを更新する非同期アカウントのプロセスのフローチャートである。
【図８】図８は、コンタクトリスト検索および逆コンタクトリスト検索に基づき、異なる受信ユーザクライアントに異なるプロファイルを送信するプロセスのフローチャートである。
【図９】図９は、期限切れになったときのみ、更新済みパブリックプロファイルをユーザクライアントに送信するプロセスのフローチャートである。
【発明を実施するための形態】
【００１４】
図面において、特徴または要素は、概して、数字の符号（例えば、“１０”）を使って識別される。ひとつ以上の文字が数字に続く参照番号（例えば、“１０Ａ”または“１０Ｂ”）は、数字のみによって広く指定された特徴または要素の特定の例を指すものである（例えば、“１０Ａ”または“１０Ｂ”は、特徴または要素“１０”の特定の例を指す）。したがって、そのように参照されたとき、このような特定の例により生じる任意の特徴は、より一般的な特徴または要素のすべての例によって必ずしも保有される必要はない。
【００１５】
非同期メッセージング環境において、単一アカウントで複数のプロファイルを管理するための技術が開示される。当該技術は、ユーザに、複数のプロファイルのコンテンツおよびその意図した受信者に対する制御を与える。当該技術は、ユーザグループ内の非常に多くのユーザを有する非同期メッセージングシステムにおいて、プロファイルに対する更新の伝達に関する技術的困難性を解決するものである。また、当該システムは、地理的に分布した複数のサーバーに対するサービスの分配に関連する。当該技術は、さまざまな方法および形式によって実行可能である。
【００１６】
図１は、当該システムが使用される環境を含む非同期メッセージングシステム１０の略示図である。システム１０は、非同期メッセージングサーバー２０（または、単に“サーバー”）、ひとつ以上の非同期メッセージングクライアント３０（または、単に“クライアント”）、およびひとつ以上のコンピュータネットワーク４０（そのいずれかはインターネットを含む）を有し、メッセージ、および、メッセージインストラクションは通信リンクを通じて送信される。それは、光学または電子通信リンクなどの有線リンクであるか、無線リンクであってもよい。システムは、ひとつ以上の非同期メッセージングクライアント３０を有し、それは、任意の適当なタイプのおよび形式のユーザデバイスを含む。それは、携帯式または固定式であり、ハードウエアプロセッサ、メモリ、および通信ネットワークとインターフェースするための通信インターフェースを有し、メモリはここに開示する機能を実行するためにプロセッサにより実行可能なインストラクションを格納する。非同期メッセージングクライアント３０は、例えば、コンピュータ非同期メッセージングクライアント３０Ａ、携帯電話またはスマートフォンメッセージングクライアント３０Ｂ、３０Ｃ、３０Ｄ、および、デバイスタブレット非同期メッセージングクライアント３０Ｅを有する。しかし、他のタイプまたは数の非同期メッセージングクライアントおよび他の構成も可能であることが理解されよう。
【００１７】
非同期メッセージングサーバー２０は、ネットワーク４０を介した有線または無線リンクを通じて非同期メッセージクライアント３０間で、メッセージおよびメッセージインストラクションを受信し、格納し、かつ送信するような中央非同期機能を実行するように構成されている。
【００１８】
非同期メッセージングサーバー２０は、論理的または物理的、地理的に、一緒に配置されるかまたは分散した、単一サーバーまたは複数のサーバーを有し、ここで説明する機能を提供するようにネットワーク４０を通じてリンクを通じて通信するように構成されている。ひとつ以上のサーバーの各々は、ひとつ以上の通信インターフェースを使って、メモリ内に格納された非同期メッセージングおよびメッセージインストラクションを実行するためのハードウエアプロセッサを有する。それはさらに、データベース８５のような一つ以上のコンピュータ読み取り可能格納媒体と直接的または間接的にインターフェースする。それは、サーバー２０に直接またはネットワーク４０を介して接続される。ひとつ以上のコンピュータ読み取り可能な格納媒体は、非同期アカウント用のさまざまなデータおよび情報を含むデータベース構造を格納する。非同期メッセージングサーバー２０は、データベース８５内に、各非同期メッセージングクライアント３０と対応する非同期ユーザアカウントとの間の関連性を格納し、それは、一対一または多対一の対応関係である。
【００１９】
各非同期メッセージングクライアント３０は、コンタクトを表示し、非同期メッセージングサーバー２０との通信セッションを確立し、非同期メッセージングサーバー２０と、メッセージングおよびメッセージングインストラクションを交換するような、非同期メッセージング機能を実行するように構成されている。非同期メッセージングクライアント３０は、コンタクトリストとの間で、メッセージを送受信するためのユーザインターフェースを与える。非同期メッセージングクライアント３０のユーザは、メッセージングチャットを開始するために、コンタクトリスト（レシーバクライアント）から非同期メッセージングアカウントを選択する。非同期メッセージングユニット３０は、非同期メッセージングサーバー２０へメッセージおよびメッセージインストラクションを送信してよい。非同期メッセージングサーバー２０は、メッセージを分配するのにレシーバの有効性を評価してよい。レシーバクライアントがオンラインでかつ接続されていれば、非同期メッセージングサーバー２０はレシーバクライアントへメッセージをプッシュしてよい。さもなければ、非同期メッセージングサーバー２０は、レシーバクライアント３０が有効になったときレシーバクライアント３０に分配されるまで、コンピュータ読み取り可能格納媒体にメッセージを格納してよい。特に、非同期メッセージサーバー２０は、レシーバクライアント３０が所定の時間間隔の間有効でなくなれば、当該メッセージを期限切れとしかつ破棄する。
【００２０】
図２は、非同期メッセージングシステム１０内で複数プロファイルを実行するのに使用される非同期メッセージングサーバー２０の概略的構成のブロック図である。サーバー２０は、通信レイヤー９０、認証レイヤー１００、格納および送信レイヤー１１０、および、データ構造１２０を有する。これらのコンポーネントの各々は、本願の文脈に応用可能なハードウエアおよびソフトウエアの任意の適当な組みあわせを使って、任意の適当な方法で実装されてよい。概して、通信レイヤー９０、認証レイヤー１００、および、格納および送信レイヤー１１０は、上述したハードウエアプロセッサ、メモリおよび／またはサーバー２０のひとつ以上の通信インターフェースを含むかまたはインターフェースするハードウエアおよび／またはソフトウエアを有する。データベース、データ格納、リポジトリ、および他のタイプの構造を含むデータ構造１２０を実装するためにさまざまな技術が使用可能である。上述したように、データ構造１２０は、サーバー２０に対してローカルなコンピュータ読み取り可能媒体内に実装されてよく、または、代替的にサーバー２０によりアクセス可能なひとつ以上のデータベース８５において実装されてもよい。
【００２１】
データ構造１２０は、システム１０内の各非同期ユーザアカウントに対して複数のプロファイル用のさまざまなデータおよび情報を含む。データ構造１２０は、データを同定しかつセグメントするためのカラムを有してよい。各非同期アカウントは、ユーザのプロファイルデータ情報の構造に関連するデータおよび識別設定を保持する。プロファイル情報は、アバター、アニメなどの画像、記述文字、フリーテキスト、音、オーディオ、ビデオ、および／または他のタイプのメディアなどを有してよい。データ構造１２０は、アカウントデータベース内に格納された複数の非同期アカウント１３０、プロファイルデータベース内に格納された複数のユーザプロファイル１４０、コンタクトデータベース内に格納された複数のユーザコンタクトリスト１５０、およびグループデータベース内に格納された複数のユーザアカウントグループ定義１６０のひとつ以上を有する。ユーザアカウントグループは、グループディスカッションを共通の利害関係者と一緒にするための複数のユーザアカウントからなるリストである。ユーザアカウントグループリスト定義は、グループリストデータベース内に格納されている。
【００２２】
非同期メッセージングクライアント３０は、通信レイヤー９０において非同期メッセージングサーバー２０と通信を確立し、その認証クレデンシャルを与える。クライアント３０とサーバー２０との間の通信は、非同期プロトコルを使用してよい。通信が確立されると、非同期メッセージングサーバー２０は、データ構造１２０の非同期アカウント１３０内のユーザアカウント情報を検索し、認証レイヤー１００においてユーザ非同期メッセージングクライアントクレデンシャルと一致させる。非同期メッセージングクライアント３０が非同期メッセージングサーバー２０によって認証されるとすぐに、非同期メッセージングクライアント３０は、メッセージおよびメッセージインストラクションの送受信を開始し、それらは格納および送信レイヤー１１０で扱われる。格納および送信レイヤー１１０および認証レイヤー１００は、問いあわせおよび更新のためにデータベース構造１２０へアクセスする。
【００２３】
アカウントデータベース１３０は、プライマリーキーとしての非同期アカウント識別子および、シークレットＰＩＮ、ＭＳＩＳＤＮ、プッシュ通知識別子、および、クライアントデバイスを同定するデバイス識別子などの他のユーザデータを有してよい。プロファイルデータベース１４０は、各ユーザアカウントに対して定義されるべき複数のプロファイルをあたえる、プロファイル識別子、および、合成プライマリーキーとしてのアカウント識別子、並びに、プロファイル名、短文記述およびアバターとして知られる画像などの他の情報を有してよい。コンタクトデータベース１５０は、２つのユーザアカウント間の関係を定義する。それは、２つのユーザアカウント識別子の合成キー、および、第１ユーザアカウント用のプロファイル識別子を含んでよい。グループデータベース１６０は、プライマリーキーとしてのグループ識別子、グループ名、短文記述、および、グループアバターとして知られる画像を有する。グループデータベース１６０は、第１外部キーとしてのグループ識別子、および、第２外部キーとしてのアカウント識別子を有してよい。
【００２４】
図３は、データ構造１２０内に格納された情報の関連性の例を略示した非制限的実施形態のデータ構造１７０のブロック図を示す。データ構造１２０において多くの異なる方法でこの概略的関連性に到達可能であることは当業者の知るところである。例えば、アカウントデータベース１３０は、アカウントＡ（１８０）、アカウントＢ（１８２）、アカウントＣ（１８４）、アカウントＤ（１８６）、および、アカウントＥ（１８８）を含む、多くのユーザアカウント１３１を定義するか関連するエントリーを格納する。各アカウント１３１は、クライアント３０Ａ、３０Ｂ、３０Ｃ、３０Ｄおよび３０Ｅなどの関連し、かつそれぞれ対応するクライアント３０を同定する情報を格納する。ユーザプロファイルデータベース１４０は、対応するアカウントに関連し、かつ同定するプロファイル仕様を含むプロファイル情報を格納する。例えば、アカウントＡ（１８０）は、プロファイルＩ（１９１）、プロファイルＩＩ（１９２）、プロファイルＩＩＩ（１９３）および、パブリックプロファイル１９４を含む４つの異なるプロファイル１９０を有し、それは、以下で説明するバージョン番号１９５を含む。異なるプロファイル１９１、１９２、１９３、１９４は互いに異なる。特に、それぞれのプロファイル仕様は異なる。例えば、プロファイルＩ（１９１）は、家族コンタクト構成に適した識別情報を含み、プロファイルＩＩ（１９２）は、友人コンタクト構成に適した識別情報を含み、プロファイルＩＩＩ（１９３）は、ビジネスおよび同僚コンタクト構成に適した識別情報を含む職場プロファイルであり、パブリックプロファイル１９４は、他の構成には当てはまらないか、または、ユーザアカウントと以前に関係を有しない他の構成に適した識別情報を含む。こうして、異なるプロファイル１９０は、与えられた情報の性質に関連する異なるカテゴリー（例えば、家族、友人、職場、パブリック）と関連するか、または、プロファイルにアクセス可能である。
【００２５】
したがって図４に示すように、本願発明を実施する一般的方法７００において、サーバー２０は、プロファイル仕様を受信しかつ格納する。それは、異なるユーザプロファイルごとに特定のユーザアカウントに対する認証に関連するプロファイル仕様を受信および格納し（ステップ７１０）、異なるユーザプロファイルのローカルコピーとしてユーザクライアント３０において格納するために非同期メッセージングシステムで異なる関連ユーザアカウントの対応する異なるユーザクライアント３０へ異なるユーザプロファイルを送信する（ステップ７２０）。図３に示すように、ここに記載する方法により、アカウントＢ（１８２）、アカウントＣ（１８４）、アカウントＤ（１８６）およびアカウントＥ（１８８）を含む他のアカウントは、そのアカウントに関連するそれぞれ異なるユーザクライアント３０Ｂ、３０Ｃ、３０Ｄ、３０Ｅにおいて、アカウントＡ（１８０）の複数のプロファイルの異なるものをそれぞれ受信し、非同期メッセージングシステムの使用の一部として、そのクライアントにおいて表示するために、プロファイルのローカルコピーとしてのクライアントにおいて格納する。例えば、クライアントＢ（３０Ｂ）は、プロファイルＩＩ（１９２）のローカルコピー１９７を受信および格納し、クライアントＤ（３０Ｄ）は、パブリックプロファイル１９４のローカルコピー１９８を受信および格納し、クライアントＥ（３０Ｅ）はパブリックプロファイル１９４のローカルコピー１９９を受信および格納する。各非同期メッセージングクライアント３０は、対応するアカウントＡプロファイルオフラインのそれぞれのローカルコピーを見るためのユーザインターフェースを与え、かつ、受信したプロファイル情報によってアカウントＡを同定する。したがって、アカウントＢ（１８２）のクライアント３０Ｂのユーザは、受信したプロファイルＩ（１９１）情報（例えば、家族プロファイル）によってアカウントＡ（１８０）を見て同定してよく、アカウントＣ（１８４）のクライアント３０Ｃのユーザは、受信したプロファイルＩＩ（１９２）情報（例えば、友人プロファイル）によって、アカウントＡ（１８０）を見て同定してよく、アカウントＤのクライアント３０ＤのユーザおよびアカウントＥ（１８８）のクライアント３０Ｅのそれぞれのユーザは、受信したパブリックプロファイル１９４情報によってアカウントＡ（１８０）を見て同定してよい。各非同期メッセージングクライアント３０は、それが更新するための他のメッセージインストラクションを受信するか、または、アカウントＡ（１８０）のプロファイル情報を変更するまで、受信したプロファイル情報によりアカウントＡ（１８０）を見て同定し続けてよい。
【００２６】
本願発明の技術は、特定のユーザアカウントに関連して受信されかつ格納された複数の異なるプロファイルが他のユーザアカウントにそれぞれ関連づけられ、および／または、その複数の異なるプロファイルのローカルコピーとして格納するために他のユーザアカウントと関連したクライアントへ送信される、ところの多くの異なる方法を含む。
【００２７】
例えば、図５の方法８００に示すように、サーバー２０がそれぞれ異なるユーザプロファイルに対してユーザアカウントに関連して異なるプロファイル仕様を受信しかつ格納すると、メッセージが第１のユーザによって対応する他のユーザアカウントへ送信されるとき、異なるプロファイルが異なるユーザクライアントに送信されるか、または、利用可能となる。例えば、サーバー２０は、図３に示すようなプロファイルＩ（１９１）、および、プロファイルＩＩ（１９２）のような、異なるユーザプロファイル毎に異なるプロファイル仕様をアカウントＡに関連して受信しかつ格納する（ステップ８１０）。サーバー２０は、その後、アカウントＢ（１８２）にメッセージを送信するべくアカウントＡ（１８０）に対する認証に関連する入力を受信する（ステップ８２０）。サーバー２０は、その後、プロファイルＩ（１９１）のローカルコピー１９６として、クライアントＢ（３０Ｂ）において格納するために、システム１０でアカウントＢ（１８２）に関連するクライアントＢ（３０Ｂ）へプロファイル１９１を送信する（ステップ８３０）。同様に、サーバー２０は、メッセージをアカウントＣ（１８４）に送信するべく、アカウントＡ（１８０）に対する認証に関連する入力を受信する（ステップ８４０）。サーバー２０は、その後、プロファイルＩＩ（１９２）のローカルコピー１９７として、クライアントＣ（３０Ｃ）において格納するために、システム１０でアカウントＣ（１８４）に関連するクライアントＣ（３０Ｃ）へプロファイルＩＩ（１９２）を送信する（ステップ８５０）。クライアントＢ（３０Ｂ）へ送信するためのサーバー２０によるプロファイルＩ（１９１）の選択は、プロファイルＩ（１９１）のコピーがアカウントＢ（１８２）に関連するクライアントＢ（３０Ｂ）に送信されるように、メッセージに関連してプロファイルＩ（１９１）の識別子を含むように、アカウントＡ（１８０）（例えば、クライアントＡ（３０Ａ）を使って）のユーザによる手動選択に応答してよい。代替的に、サーバー２０によるプロファイルＩ（１９１）の選択は、データ構造１７０が、アカウントＢ（１８２）を同定し、かつ、アカウントＢ（１８２）に関連するプロファイルＩ（１９１）の識別子２４３を含むエントリー２４１をアカウントＡのコンタクトリスト２４０に含むことのサーバー２０による判定に応答してよい。クライアントＣ（３０Ｃ）へ送信するためのサーバー２０によるプロファイルＩＩ（１９２）の選択は、プロファイルＩＩ（１９２）のコピーがアカウントＣ（１８４）のクライアントＣ（３０Ｃ）に送信されるように、メッセージに関連してプロファイルＩＩ（１９２）の識別子を含むよう、アカウントＡ（１８０）（例えば、クライアントＡ（３０Ａ）を使って）のユーザによる手動選択に応答してよい。代替的に、サーバー２０によるプロファイルＩＩ（１９２）の選択は、データ構造１７０が、アカウントＡ（１８０）のコンタクトリスト２４０内に、アカウントＣ（１８４）を同定し、かつ、アカウントＣ（１８４）に関連してプロファイルＩＩ（１９２）の識別子２４４を含むエントリー２４２を有することのサーバー２０による判定に応答してもよい。
【００２８】
システム２０は、他の任意の適当な方法によって、受信クライアント３０へ送信すべきプロファイルを選択するように構成されてよい。例えば、データ構造１７０は、特定のアカウントの各プロファイルに関連して、重み値を格納してよく、サーバーがアカウントのユーザ、例えばアカウントに関連するクライアントからの入力を受信し、他のアカウントへメッセージを送信するとき、サーバー２０は送信者のアカウントに関連して格納されたプロファイルのひとつをランダムに選択してよく、そのランダムな選択は格納された重み値によって重みづけされてよい。
【００２９】
非同期メッセージングクライアント３０のユーザは、非同期メッセージングサーバー２０への接続を確立する前に登録することを要求される。非同期メッセージングサーバー３０のユーザは、登録のために非同期メッセージングサーバー２０への接続を確立する。非同期メッセージングクライアント３０のユーザは、ＭＳＩＳＤＮ、固有デバイスＩＤ（ＵＤＩＤ）、および／またはプッシュ通知識別子などの登録識別子を送信してよい。登録識別子が受信されると、非同期メッセージングサーバー２０は非同期メッセージングアカウントを作成し、非同期メッセージングクライアントクレデンシャルと呼ばれるアカウント識別子および秘密ＰＩＮを、非同期メッセージングクライアント３０にリターンする。それは、非同期メッセージングクライアント３０においてコンピュータ読み取り可能格納媒体に格納される。登録処理を完成させるために、非同期メッセージングクライアント３０は、アカウントに関連する複数のプロファイルを非同期メッセージングサーバー２０に送信する。非同期メッセージングクライアント３０は、コンタクトリストＭＳＩＳＤＮｓを、非同期メッセージングサーバー３０に送信してもよい。非同期メッセージングサーバー２０は、コンタクトリストＭＳＩＳＤＮｓを検証し、利用可能な関連する登録済みの非同期アカウントおよびそのプロファイルの識別子を非同期メッセージングクライアント３０へリターンする。非同期メッセージングクライアント３０は、ＭＳＩＳＤＮｓ、およびそれに関連する非同期アカウントおよびそのプロファイルデータ情報（まとめて、コンタクトリストと呼ばれる）を格納する。非同期メッセージングクライアント３０は、コンピュータ読み取り可能格納媒体にコンタクトリストを格納してよい。
【００３０】
したがって、図６は、複数のプロファイルを有する新規な非同期アカウント登録のプロセス３００を示す。特に、いくつかの実施形態において、複数のユーザプロファイルは、新しく受信者アカウント識別子リストを追加する時に送信されか、または、複数のユーザプロファイルが、複数の受信者アカウント識別子リストに対するユーザプロファイルの割り当てを変更する時に、送信される。図示する実施形態において、ユーザは、登録のためのリクエストを送信するために非同期メッセージングクライアント３０を使用してよい（ステップ３１０）。非同期メッセージングサーバー２０は、非同期アカウントを作成し、非同期メッセージングクライアントクレデンシャルデータ情報として知られる秘密ＰＩＮとともに非同期アカウント識別子を非同期メッセージングクライアント３０へリターンする（ステップ３２０）。非同期メッセージングクライアント３０は、続く認証のために、非同期メッセージングクライアントクレデンシャルデータ情報を格納する。非同期メッセージングクライアント３０は、非同期メッセージングサーバー２０に接続し、かつ、認証し、登録を完成させるべく複数のプロファイル情報を送信する（ステップ３３０）。非同期メッセージングサーバー２０は、ユーザのプロファイルを格納し、それを、認証済みのユーザ非同期アカウントへリンクさせる（ステップ３４０）。非同期メッセージングクライアント３０は、ユーザクライアント３０を使ってＭＳＩＳＤＮｓまたは他の携帯コンタクト番号などのコンタクト識別子のリストを非同期メッセージングサーバー２０に送信する（ステップ３５０）。非同期メッセージングサーバー２０は、受信したＭＳＩＳＤＮｓを格納し、それを認証済みのユーザ非同期アカウント識別子へリンクする（ステップ３６０）。非同期メッセージングサーバー２０は、受信したＭＳＩＳＤＮｓをチェックし、その非同期アカウント識別子を検索し、関連する非同期アカウント識別子、および、関連するパブリックプロファイルデータ情報とともに受信したＭＳＩＳＤＮｓを非同期メッセージングクライアント３０へリターンする（ステップ３７０）。非同期メッセージングクライアント３０は、ＭＳＩＳＤＮｓを格納し、その関連する非同期アカウント識別子およびそのプロファイルデータ情報（まとめてコンタクトリストとして知られる）を格納してよい。非同期メッセージングサーバー２０は、そのコンタクトリスト内に新しく登録された非同期アカウントを宣言するすべての非同期アカウントのリストをチェックしかつ取得する。非同期メッセージングサーバーは、新規の非同期アカウント識別子およびそのパブリックプロファイルとともにメッセージインストラクションを取得した非同期アカウントリストへプッシュしてよい。この演算は、逆コンタクトリスト検索として知られる。メッセージインストラクションが格納され、それがオンラインになるとすぐに逆コンタクト非同期アカウントに対して送信される。この演算処理の最後に、非同期メッセージングサーバーは、それ自身のコンタクトリストへ新しい非同期ユーザプロファイルを送信し、新規な非同期アカウントへコンタクトリストプロファイルを送信する（ステップ３８０）。図示した例は、複数のプロファイルが非同期メッセージングシステム内でどのように分配され、管理されるかを示す。
【００３１】
上述したように、ユーザコンタクトリストデータベース１５０は、各ユーザアカウントのコンタクトを同定する情報を格納する。換言すれば、それは他のユーザアカウントを同定する。例として図３に示すように、データ構造１７０は、アカウントＢ（１８２）およびアカウントＣ（１８４）をそれぞれ同定する情報を含むコンタクトエントリー２４１、２４２を有するアカウントＡ（１８０）に対するコンタクトリスト２４０を格納する。アカウントＢ（１８２）を同定するコンタクトエントリー２４１は、アカウントＢ（１８２）に関連するプロファイル、すなわちプロファイルＩ（１９２）の識別子２４３を含み、コンタクトエントリー２４２は、アカウントＣ（１８４）に関連する、異なるプロファイル、すなわちプロファイルＩＩ（１９２）の識別子２４４を含む。代替的に、データ構造１７０は、異なる他のアカウントを、対応する異なるプロファイルと間接的に関連づける。例えば、アカウントＡ（１８０）のコンタクトリストは、ひとつ以上のコンタクトエントリー内で、カテゴリーと関連づけかつ同定する。データ構造１７０は、その各カテゴリーに関連して、対応するプロファイル識別子を格納する。したがって、例えば、アカウントＡ（１８０）のコンタクトエントリーの各々は、家族、友人、職場、およびパブリックのひとつの識別子を有するか、または、それに関連づけられる。その場合、データ構造１７０はカテゴリー毎に、対応するプロファイル、例えば、上述したように、それぞれ家族プロファイル、友人プロファイル、職場プロファイル、およびパブリックプロファイルである、プロファイルＩ（１９１）、プロファイルＩＩ（１９２）、プロファイルＩＩＩ（１９３）、および、パブリックプロファイル１９４の識別子を格納するか、またはそれぞれ関連づけられる。
【００３２】
ユーザアカウントＡ（１８０）の非同期メッセージングクライアント３０Ａは、非同期メッセージングサーバー２０へ関連するプロファイルマッピングとともに、コンタクトリスト２４０を送信する。非同期メッセージングサーバー２０は、対応するプロファイル情報とともにアカウントＡの対応するプロファイルの任意の局所的に格納されたコピーを更新するべく、アカウントＡ（１８０）のコンタクトリスト２４０内のすべての非同期アカウントにメッセージインストラクションを送信する。非同期メッセージングサーバー２０はメッセージインストラクションを格納し、受信者非同期アカウントがオンラインとなるとすぐに、メッセージインストラクションを送信しかつ分配する。例えば、アカウントＢ（１８２）は、アカウントＡ（１８０）のプロファイルＩ（１９１）を受信し、アカウントＣ（１８４）は、アカウントＡ（１８０）のプロファイルＩＩ（１９２）を受信してよい。アカウントＢ（１８２）、アカウントＣ（１８４）のそれぞれの非同期メッセージングクライアント３０Ｂ、３０Ｃは、これらのアカウントにそれぞれ関連するクライアント３０Ｂ、３０Ｃに含まれるユーザデバイスのコンピュータ読み取り可能媒体に、アカウントＡ（１８０）の受信したプロファイル情報を格納する。
【００３３】
図７は、そのプロファイルを更新する非同期アカウントのプロセス４００を示す。図示される例において、ユーザは、自身のプロファイルを更新するべく非同期メッセージングクライアント３０を使用する。非同期メッセージングクライアント３０は、非同期メッセージングサーバー２０を認証する（ステップ４１０）。非同期メッセージングクライアント３０は、それ自身の複数のプロファイルを更新するべくユーザインターフェースを与える。非同期メッセージングクライアント３０は、更新済みプロファイルを非同期メッセージングサーバー２０へ送信する（ステップ４２０）。非同期メッセージングサーバー２０は、更新済みプロファイルを格納する（ステップ４３０）。非同期メッセージングサーバー２０は、コンタクトリスト内の更新済みプロファイルにリンクするアカウントのリストを検索して取得し（ステップ４４０）、非同期アカウント識別子およびその更新済みプロファイルとともに取得した非同期アカウントリストへメッセージインストラクションをプッシュする（ステップ４５０）。この演算は、コンタクトリスト検索として知られる。メッセージインストラクションは格納され、それがオンラインになるとすぐに、コンタクトリストアカウント内の各アカウントに対して送信される。更新されたプロファイルがパブリックプロファイルであれば（判定４６０）、非同期メッセージングサーバー２０が更新済みのパブリックプロファイル用の追跡バージョンナンバーを生成する。非同期メッセージングサーバー２０は、格納するために、非同期メッセージングクライアント３０へパブリックプロファイルバージョンナンバーをリターンする。非同期メッセージングサーバー２０は、非同期メッセージングクライアント３０から受信者アカウントへ送信されたすべてメッセージとともに、格納済みのパブリックプロファイルバージョンナンバーを格納する（ステップ４７０）。受信者がメッセージを受信するとすぐに、それは送信者パーティーの関連するパブリックプロファイルバージョンナンバーを使用してそれを格納済みの値と比較する。パブリックプロファイルが期限切れであれば、受信者は、送信者パーティーの更新済みのパブリックプロファイルを要求し受信する。
【００３４】
このプロセスの結果は、非同期メッセージングサーバー２０がそれ自身のコンタクトリストに更新済みの非同期アカウントプロファイルを送信したが、非同期アカウントと無関係の他のアカウントが非同期アカウントからの新しいメッセージの受信時に更新されたことを示す。図示する例は、更新済みの複数のプロファイルが非同期メッセージングシステムでどのように分配され管理されるかを示す。
【００３５】
したがって、図８の方法９００に示すように、サーバー２０がユーザアカウントと関連して、それぞれ異なるアカウントプロファイル毎に異なるプロファイル仕様を受信しかつ格納すると、第１のユーザコンタクトリストが他のユーザを同定したとき、異なる他のユーザクライアントに異なるプロファイルが送信されるかまたは利用可能となる。逆もまた同様である。例えば、サーバー２０は、図３に示すようなプロファイルＩ（１９１）およびプロファイルＩＩ（１９２）のような異なるアカウントプロファイルに対する異なるプロファイル仕様を、ユーザアカウントＡ（１８０）に関連して受信しかつ格納する。システム２０は、オリジナルのクリエイションを含むプロファイルＩ（１９１）の更新を受信し、更新されたプロファイル仕様を生成しかつ格納する（ステップ９１０）。サーバー２０は、その後、アカウントＡ（１８０）のコンタクトリスト２４０が、アカウントＢ（１８２）を同定し、アカウントＢ（１８２）と関連づけるためのプロファイルＩ（１９１）の識別子２４３を含むコンタクトリストエントリー２４１を有することを判定する。この判定に応答して、サーバー２０は、プロファイルＩ（１９１）のローカルコピー１９６としてクライアントＢ（３０Ｂ）において格納するために、アカウントＢ（１８２）に関連するクライアントＢ（３０Ｂ）へ更新済みのプロファイルＩ（１９１）を送信する（ステップ９２０）。別々に、または、同じシステム１０の実行および演算中に、サーバー２０は、プロファイルＩＩ（１９２）の更新を受信してよい。それは、オリジナルクリエイションを含み、更新済みのプロファイル仕様を生成しかつ格納する（ステップ９２５）。その後サーバー２０は、アカウントＡ（１８０）のコンタクトリスト２４０が、アカウントＣ（１８４）を同定しかつアカウントＣ（１８４）に関連づけるためのプロファイルＩＩ（１９２）の識別子２４４を含むコンタクトリストエントリー２４２を有することを判定する（ステップ９３０）。この判定に応答して、サーバー２０は、プロファイルＩＩ（１９２）のローカルコピー１９７としてクライアントＣ（３０Ｃ）において格納するためにアカウントＣ１８４と関連するクライアントＣ（３０Ｃ）に更新済みプロファイルＩＩ（１９２）を送信する（ステップ９３５）。別々に、または、同じシステム１０の実行および演算中に、サーバー２０は、オリジナルクリエイションを含むパブリックプロファイル１９４の更新を受信し、更新済みのプロファイル仕様を生成しかつ格納する（ステップ９４０）。サーバー２０は、その後、アカウントＤ（１８６）のコンタクトリスト２６０がアカウントＡ（１８０）を同定するコンタクトリストエントリー２６１を有することを判定する（ステップ９４５）。任意で、最初にサーバー２０は、アカウントＡ（１８０）のコンタクトリスト２４０が、アカウントＤ（１８６）を同定する任意のエントリーを含まないことを判定してもよい。この判定、または場合によって複数の判定に応答して、サーバー２０は、パブリックプロファイル１９４のローカルコピー１９８としてクライアントＤ（３０Ｄ）において格納するために、アカウントＤ（１８６）に関連するクライアントＤ（３０Ｄ）へ更新済みのパブリックプロファイル１９４を送信してよい（ステップ９５０）。換言すれば、他のアカウントのコンタクトリストがアカウントＡ（１８０）を同定するとき、システムは、クライアントにおいてパブリックプロファイル１９４のローカルコピーとして格納するために、アカウントＡ（１８０）のパブリックプロファイル１９４のコピーを、他のアカウントに関連するクライアントへ送信する。こうして、アカウントＡ（１８０）のパブリックプロファイル１９４は、アカウントＡ（１８０）がそのコンタクトリスト内でこの他のアカウントを同定しないかまたはこの他のアカウントによって関連づけられ、受信されるプロファイルのひとつを同定しないとき、アカウントＡ（１８０）のパブリックプロファイル１９４は他のアカウントのクライアントへ送信されるべきデフォルトのプロファイルとして機能する。
【００３６】
２つの異なるアカウントのコンタクトリストのいずれもが他のアカウントを同定するいずれのエントリーも有しないとき、２つのアカウントは、無関係であると呼ばれる。図３を参照して、限定しない例として、アカウントＥ（１８８）は、アカウント１８０を同定するコンタクトリストを有せず、アカウントＡ（１８０）のコンタクトリスト２４０は、アカウントＥ（１８８）を同定するエントリーを有しない。したがって、これらの２つのアカウントは、無関係である。この場合、第１アカウントのプロファイルのコピーは、メッセージが第１アカウントから第２アカウントへ送信されたときにのみ、第２アカウントに関連するクライアントへ送信される。この場合、プロファイルは、パブリックプロファイルのようなデフォルトプロファイルであってよい。
【００３７】
ある場合において、第１アカウントからのメッセージは、第１アカウントへ直接でなく、間接的にアドレスされる。換言すれば、ある場合において、第１アカウントのユーザは、第２アカウントへメッセージを明確にアドレスしない。これが生じるひとつの状況は、システム１０がアカウントグループを画成しかつ演算する場合である。その場合、システム１０の複数のアカウントが特定のグループに属するとして同定され、そのグループへ送信されるメッセージは、送信者を除くグループのすべてのメンバーに伝達される。したがって、図３に示すように、データ構造１７０は、グループ２７０を画成し、特に対応するグループ定義が、上述したように、グループデータベース１６０内に格納される。限定しない例において、グループリスト２７０は、グループ１（２７１）に属するとしてアカウントＡ（１８０）およびアカウントＥ（１８８）を同定する識別子２７４を有するグループ１（２７１）を画定する。データ構造１７０は、グループ１に属するとしてさらなるアカウントを同定してもよく、また、グループ２（２７２）、グループ３（２７３）のような付加的なグループを画定してもよい。図３に示すように、アカウントＡ（１８０）およびアカウントＥ（１８８）はいずれも他のアカウントを同定するコンタクトリストエントリーを有しない。したがって、２つのアカウントは、グループ１（２７１）内の２つのアカウントの共通メンバーを除き無関係であると考えられる。
【００３８】
サーバー２０は、アカウントＡ（１８０）のパブリックプロファイル１９４または他のデフォルトプロファイルが作成されるか、更新されたとき、アカウントＡ（１８０）が属する任意のグループプロファイル２７０のすべてのメンバーへそれがプッシュされるように構成されてもよいが、グループのメンバー数が多くかつ生成されるネットワークトラフィックが同様に大きいとき、この構成は所望されない。その場合、パブリックプロファイル１９４のローカルコピーを更新するための異なるメカニズムが好ましい。
【００３９】
したがって、図９の方法６００に示すように、サーバー２０は、例えばアカウントＡ（１８０）の第１ユーザアカウントに関連して、異なるアカウントプロファイル１９０に対する異なるプロファイル仕様を受信し格納する（ステップ６０５）。例えば、異なるアカウントプロファイルは、パブリックプロファイル１９４を有してよい。システム２０は、その後、そのクリエイションを含むパブリックプロファイル１９４の更新を受信し、更新済みのプロファイル仕様を生成しかつ格納する（ステップ６１０）。システム２０はその後、更新済みのパブリックプロファイル仕様バージョン識別子１９５を生成し格納する（ステップ６１５）。システム２０は、その後、アカウントＡ（１８０）から入力を受信し、メッセージをアカウントＥ（１８８）である他のユーザアカウントへ送信する（ステップ６２０）。図３に示すように、他のアカウントを同定するエントリーを含むコンタクトリストをいずれのアカウントも有していない点で、アカウントＡ（１８０）およびアカウントＥ（１８８）は、無関係である。しかし、図３に示すように、データ構造１７０は、グループ１（２７１）に属するとしてアカウントＡ（１８０）およびアカウントＥ（１８８）を同定する識別子を含むグループ１（２７１）を画定する。この場合、アカウントＥ（１８８）へメッセージを送るべくアカウントＡ（１８０）からの入力は、グループ１（２７１）を同定してよい。換言すれば、グループ１（２７１）のメンバーであるすべてのアカウントへメッセージを送信するために、メッセージを受信するべくアカウントＥ（１８８）を間接的に同定する。サーバー２０は、その後、アカウントＥ（１８８）に関連するクライアントＥ（３０Ｅ）へ更新済みのパブリックプロファイル仕様バージョン識別子１９５を送信する。クライアントＥ（３０Ｅ）は、その後、クライアントＥ（３０Ｅ）に局所的に格納されたパブリックプロファイルコピー２９９に対する任意のローカルパブリックプロファイル仕様バージョン識別子２８０が、受信した更新済パブリックプロファイル仕様バージョン識別子１９５と一致するか否かを判定する。もし一致しなければ、クライアント３０Ｅは、クライアント３０Ｅに格納されたローカルバージョン識別子２８０が期限切れであることを指示する信号をサーバー２０に送信し、サーバー２０がその信号を受信する（ステップ６３０）。この場合、おそらくその場合のみであるが、サーバー２０はパブリックプロファイル１９４のローカルコピーとしてクライアントＥ（３０Ｅ）において格納するために、アカウントＥ（１８６）に関連するクライアントＥ（３０Ｅ）へ更新済みのパブリックプロファイル１９４を送信する。クライアントＥ（３０Ｅ）は、このローカルコピー１９９と関連するローカル仕様バージョン識別子２８０も更新する。それ以外、ローカルバージョン識別子２８０が、パブリックプロファイル１９４のローカルコピー１９９が更新されたことを示せば、サーバー２０はパブリックプロファイル１９４を送信しない。任意で、サーバー２０は、最初に、アカウントＡ（１８０）のコンタクトリスト２４０がアカウントＥ（１８８）を同定する任意のエントリーを有しないことを判定してもよく、また、アカウントＥ（１８８）のコンタクトリストがアカウントＡ（１８０）を同定する任意のエントリーを有しないことを同定してもよい。そうでなければ、更新済みプロファイルは、上述した方法９００により、自動的にクライアントＥ（３０Ｅ）へプッシュされてもよい。
【００４０】
上述した方法６００は、特に、関連するアカウントおよび受信アカウントが無関係である場合のデフォルトプロファイルとしてパブリックプロファイルが使用されるところのパブリックプロファイルの使用とともに説明されているが、ここで説明した任意の異なる方法と関連する他の技術が使用可能であることが理解されよう。例えば、アカウントのコンタクトリストは、他のアカウントを同定するエントリー、および、この他のアカウントに関連する第１アカウントのプロファイルを有する場合、他のアカウントと関連するクライアントにおいてプロファイルのローカルコピーを与えるか更新するとき、サーバー２０は実質的に方法６００を実行する。換言すれば、プロファイルのローカルコピーが期限切れであるかまたは異なり、そのローカルバージョン識別子が示す受信クライアントから信号が受信された場合のみ、サーバーはプロファイルに関連するバージョン識別子を維持し、受信クライアントにバージョン識別子を送信し、プロファイルを送信する。上述したように、プロファイルが逆検索に応答して送信される場合に、類似の方法が適用可能である。
【００４１】
上記した技術は、非同期メッセージングシステムのユーザに対して、コンタクトの異なるカテゴリーを有する使用および非同期メッセージングシステムの他のユーザとともに使用するための複数の異なるプロファイルを作成しかつ格納する能力を与える。この方法において、他の特定のカテゴリーのユーザまたは個人のユーザは、メッセージングシステムの使用に関して受信し、見ることができる情報を選択することができ、こうしてユーザは、この他のユーザに適した情報を選択することができる。この能力は、ユーザに対して、例えば、職場カテゴリー内のユーザから、自身のプライバシーを保護することを可能にし、同時に、例えば、家族または友人カテゴリーなどの他のカテゴリー内の他のユーザに対して適当な情報を自由に共有することを可能にする。多数のユーザを有するグループの使用、プロファイルの追加、更新、および伝達に関連するネットワークトラフィックの増加の問題は、バージョン識別子の使用によって解決される。それによれば、他のユーザのプロファイルの受信ローカルコピーは期限切れである場合にのみ更新され、それにより、グループのすべてのメンバーにすぐに全プロファイルをプッシュすることから生じるネットワークトラフィックを減少させることができる。
【００４２】
上述した説明において、説明の都合上、実施形態の理解を与えるべく多くの説明がなされた。しかし、これらの特定の詳細な説明は、必ずしも要求されないことは当業者の知るところである。特に、図面に示すさまざまな付加的な特徴は、本明細書において要求されるように特定的に同定されなければ、概して任意であることは当業者の知るところである。上述した実施形態は、例示することを意図したものにすぎない。当業者は、特定の実施形態に対する代替、修正および変更が可能である。
【００４３】
ある例において、周知のハードウエアおよびソフトウエアコンポーネント、モジュール、および機能が、本願発明を曖昧にしないようにブロック図の形式で示された。例えば、ここで説明した実施形態が、ソフトウエアルーチン、ハードウエア回路、ファームウエア、またはそれらの組みあわせとして実装されるか否かに関して特定の詳細な説明は与えられない。
【００４４】
実施形態は、機械読み取り可能媒体（コンピュータ読み取り可能媒体、プロセッサ読み取り可能媒体、または、実行されるコンピュータ読み取り可能プログラムコードを有するコンピュータ使用可能媒体ともいう）内に格納されるソフトウエアプロダクトとして実装されてよい。機械読み取り可能媒体は、例えば、磁気、光学、ディスケットを含む電気格納媒体、コンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、メモリデバイス（揮発性または不揮発性）、または、同様の記憶媒体メカニズムを含む、任意の適当な有形媒体である。機械読み取り可能媒体は、さまざまなインストラクションのセット、コードシーケンス、コンフィギュレーション情報、または、実行されたときにプロセッサに本願発明の実施形態に従うステップを実行させるその他の情報を含む。当業者は、説明した実施形態を実行するために必要な他のインストラクションおよびオペレーションもまた機械読み取り可能媒体内に格納可能であることを理解するであろう。機械読み取り可能媒体からのソフトウエア実行は、記述タスクを実行するための回路とインターフェースする。
【００４５】
特許請求の範囲の範囲は、ここに記載した特定の実施形態によって制限されず、明細書全体と整合する方法で解釈されるべきである。
【先行技術文献】
【特許文献】
【００４６】
【特許文献１】米国特許第８，３３２，７６１号明細書
【図１】
2019510324.tif 000003
【図２】
2019510324.tif 000004
【図３】
2019510324.tif 000005
【図４】
2019510324.tif 000006
【図５】
2019510324.tif 000007
【図６】
2019510324.tif 000008
【図７】
2019510324.tif 000009
【図８】
2019510324.tif 000010
【図９】
2019510324.tif 000011
【手続補正書】
【提出日】平成30年4月24日(2018.4.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
非同期メッセージングシステムにおいて、第１ユーザアカウントに関連する複数のユーザプロファイルを管理するコンピュータ実行可能な方法であって、
ａ）第１のユーザアカウントに関連する複数のユーザプロファイルに対するそれぞれのプロファイル仕様を、前記第１ユーザアカウントに対する認証に関連して、前記非同期メッセージングシステムのサーバーにおいて受信しかつ格納する工程であって、前記複数のユーザプロファイルは、第１ユーザプロファイル、および前記第１ユーザプロファイルと異なる第２ユーザプロファイルを有する、工程と、
ｂ）前記第１ユーザアカウントに関連する第１入力を前記サーバーにおいて受信し、かつ、前記非同期メッセージングシステムにおいて第２ユーザアカウントに対する前記第１ユーザプロファイルの関連性を判定する工程と、
ｃ）前記工程ｂ）に応答して、前記第ユーザプロファイルのローカルコピーとして第２ユーザクライアントにおいて格納するために、前記第２ユーザアカウントに関連する前記第２ユーザクライアントへ、前記第１ユーザプロファイルを前記サーバーによって送信する工程と、
ｄ）前記第１ユーザアカウントに関連する第２入力を前記サーバーにおいて受信し、かつ、前記非同期メッセージングシステムにおいて第３ユーザアカウントに対する前記第２ユーザプロファイルの関連性を判定する工程と、
ｅ）前記工程ｄ）に応答して、前記第２ユーザプロファイルのローカルコピーとして、第３ユーザクライアントにおいて格納するために、前記第３ユーザアカウントに関連する前記第３ユーザクライアントへ、前記第２ユーザプロファイルを前記サーバーにより送信する工程と
を備える方法。
【請求項２】
前記第１入力は、前記第１ユーザアカウントから前記第２ユーザアカウントへメッセージを送信するための入力を有する、ことを特徴とする請求項１に記載の方法。
【請求項３】
前記第２入力は、前記第１ユーザアカウントから前記第３ユーザアカウントへメッセージを送信するための入力を有する、ことを特徴とする請求項２に記載の方法。
【請求項４】
前記工程ｂ）は、前記工程ｃ）において前記第２ユーザアカウントに関連する第２ユーザクライアントへ送信するために前記第１ユーザプロファイルをランダムに選択する工程を有する、ことを特徴とする請求項２に記載の方法。
【請求項５】
ａ．１）前記第２ユーザアカウントを同定するグループ定義を前記サーバーにおいて受信する工程をさらに備え、
前記工程ｂ）において、前記第１ユーザアカウントから前記サーバーにおいて受信した前記第１入力が前記グループを同定し、
前記工程ｂ）は、前記グループ定義が前記第２ユーザアカウントを同定することを決定する工程を有する、ことを特徴とする請求項２に記載の方法。
【請求項６】
前記工程ｂ）は、
前記非同期メッセージングシステムにおいて、前記第１ユーザプロファイルおよび前記第２ユーザアカウントを同定する前記第１入力を、前記第１ユーザアカウントに対する認証に関連して前記サーバーにおいて受信する工程、および、
前記第１ユーザプロファイルに関連して前記第２ユーザアカウントを同定する第２ユーザアカウントエントリーを、前記サーバーにおいて生成し、かつ、前記第１ユーザアカウントに関連する第１ユーザコンタクトリスト内に格納することに応答する工程を有する、ことを特徴とする請求項１に記載の方法。
【請求項７】
前記工程ｂ）は、
前記第１ユーザプロファイルの前記プロファイル仕様の更新を、前記第１ユーザアカウントに対する認証に関連して、前記サーバーにおいて受信し、かつ、前記第１ユーザプロファイルの更新済みプロファイル仕様を前記サーバーにおいて生成しかつ格納することに応答する工程、および
前記第１ユーザアカウントに関連する第１ユーザコンタクトリストが、前記第１ユーザプロファイルに関連して前記第２ユーザアカウントを同定する第２ユーザアカウントを含むことを、前記サーバーにより判定する工程を有し、
前記第２ユーザクライアントに送信された前記第１ユーザプロファイルは、前記第１ユーザプロファイルの更新済みプロファイル仕様を有する、ことを特徴とする請求項１に記載の方法。
【請求項８】
前記工程ｂ）は、
前記第１ユーザプロファイルの前記プロファイル仕様の更新を、前記第１ユーザアカウントに対する認証に関連して、前記サーバーにおいて受信し、かつ、前記第１ユーザプロファイルの更新済みプロファイル仕様を、前記サーバーにおいて生成しかつ格納することに応答する工程、および
前記第２ユーザアカウントに関連する第２ユーザコンタクトリストが前記第１ユーザアカウントを同定する第１ユーザアカウントエントリーを含むことを、前記サーバーにより判定する工程を有し、
前記第２ユーザクライアントへ送信された前記第１ユーザプロファイルは、前記第１ユーザプロファイルの更新済みプロファイル仕様を有する、ことを特徴とする請求項１に記載の方法。
【請求項９】
前記第１ユーザアカウントに関連する第１ユーザコンタクトリストは、前記第２ユーザアカウントを同定するいずれのエントリーも含まない、ことを特徴とする請求項８に記載の方法。
【請求項１０】
前記第１ユーザアカウントの第１ユーザコンタクトリストは、前記第１ユーザプロファイルを同定するいずれのエントリーも含まない、ことを特徴とする請求項８に記載の方法。
【請求項１１】
ｃ．１）前記第２ユーザプロファイルの前記プロファイル仕様の更新を、前記第１ユーザアカウントに対する認証に関連して前記サーバーにおいて受信し、前記第２ユーザプロファイルの更新済みプロファイル仕様を生成しかつ格納することに応答し、かつ、前記第２ユーザプロファイルの更新済みプロファイル仕様バージョン識別子を、前記第２ユーザプロファイルに関連して前記サーバーにおいて生成しかつ格納することに応答する工程をさらに備え、
前記工程ｄ）は、前記第１ユーザアカウントから前記第３ユーザアカウントへメッセージを送信するために入力を、前記サーバーにおいて受信する工程を有し、
当該方法は、
ｄ．１）前記更新済みプロファイル仕様バージョン識別子を、前記第３ユーザアカウントに関連する前記第３ユーザクライアントへ前記サーバーによって送信する工程と、
ｄ．２）前記第３ユーザクライアントに格納された前記第２ユーザプロファイルのローカルコピーに関連するローカルプロファイル仕様バージョン識別子が、更新済みプロファイル仕様バージョン識別子と異なることを指示する前記第３ユーザクライアントからの信号を、前記サーバーにおいて受信する工程と
をさらに備え、
前記工程ｅ）は、前記工程ｄ．２）に応答して実行され、前記第３ユーザクライアントへ送信される前記第２ユーザプロファイルは、前記第２ユーザプロファイルの更新済みプロファイル仕様を有する、ことを特徴とする請求項１に記載の方法。
【請求項１２】
ｄ．０．１）前記第１ユーザアカウントに関連する第１ユーザコンタクトリストは、前記第３ユーザアカウントを同定するいずれのエントリーも含まないことを前記サーバーにより判定する工程をさらに備え、
前記工程ｄ．１）およびｄ．２）は、前記工程ｄ．０．１）に応答して実行される、ことを特徴とする請求項１１に記載の方法。
【請求項１３】
ｄ．０．２）前記第３ユーザアカウントに関連する第３ユーザコンタクトリストは、前記第１ユーザアカウントを同定するいずれのエントリーも含まないこと前記サーバーによって決定する工程をさらに備え、
前記工程ｄ．１）およびｄ．２）は、前記工程ｄ．０．１）およびｄ．０．２）に応答して実行される、ことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記工程ｄ．０．２）は、工程ｄ．０．１）に応答して実行される、ことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記第１ユーザアカウントの前記第１ユーザコンタクトリストは、前記第２ユーザプロファイルを同定するいずれのエントリーも含まない、ことを特徴とする請求項１２に記載の方法。
【請求項１６】
前記工程ｄ）は、
前記第２ユーザプロファイルの前記プロファイル仕様の更新を、前記第１ユーザアカウントに対する認証に関連して前記サーバーにおいて受信し、前記第２ユーザプロファイルの更新済みプロファイル仕様を前記サーバーによって生成しかつ格納することに応答する工程、および
前記第１ユーザアカウントに関連する前記第１ユーザコンタクトリストが、前記第２ユーザプロファイルに関連して前記第３ユーザアカウントを同定する第３ユーザアカウントエントリーを含むことを、前記サーバーにより判定する工程を有し、
前記第３ユーザクライアントに送信される前記第２ユーザプロファイルは、前記第２ユーザプロファイルの更新済みプロファイル仕様を有する、ことを特徴とする請求項７に記載の方法。
【請求項１７】
前記工程ｄ）は、
前記第２ユーザプロファイルの前記プロファイル仕様の更新を、前記第１ユーザアカウントに対する認証に関連して前記サーバーにおいて受信し、かつ、前記第２ユーザプロファイルの更新済みプロファイル仕様を前記サーバーにより生成しかつ格納することに応答する工程、および
前記第３ユーザアカウントに関連する第３ユーザコンタクトリストが、前記第１ユーザアカウントを同定する第１ユーザアカウントエントリーを含むことを、前記サーバーにより判定する工程を有し、
前記第３ユーザクライアントへ送信された前記第２ユーザプロファイルは、前記第２ユーザプロファイルの更新済みプロファイル仕様を有する、ことを特徴とする請求項７に記載の方法。
【請求項１８】
ｆ）前記第１ユーザプロファイルおよび前記第２ユーザプロファイルの両方と異なる第３ユーザプロファイルのプロファイル仕様の更新を、前記第１ユーザアカウントに対する認証に関連して前記サーバーにおいて受信し、前記第３ユーザプロファイルの更新済みプロファイル仕様を前記サーバーによって生成しかつ格納することに応答し、かつ、前記第３ユーザプロファイルの更新済みプロファイル仕様バージョン識別子を、前記第３ユーザプロファイルと関連して前記サーバーにより生成しかつ格納することに応答する工程と、
ｇ）前記非同期メッセージングシステムにおいて、前記第１ユーザアカウントから第４ユーザアカウントへメッセージを送信するための入力を前記サーバーにおいて受信する工程であって、前記第４ユーザアカウントは、前記第２ユーザアカウントおよび前記第３ユーザアカウントの両方と異なる、工程と、
ｈ）更新済みのプロファイル仕様バージョン識別子を、前記第４ユーザアカウントに関連する第４ユーザクライアントへ、前記サーバーにより送信する工程と、
ｉ）前記第４ユーザクライアントにおいて格納された第３ユーザプロファイルのローカルコピーに関連するローカルプロファイル仕様バージョン識別子が、更新済みプロファイル仕様バージョン識別子と異なることを指示する前記第４ユーザクライアントからの信号を前記サーバーにおいて受信する工程と、
ｊ）前記第３ユーザプロファイルのローカルコピーとして、前記第４ユーザクライアントにおいて格納するために、前記第４ユーザアカウントに関連する前記第４ユーザクライアントへ前記第３ユーザプロファイルを、前記サーバーによって送信する工程であって、前記第４ユーザクライアントに送信される前記第３ユーザプロファイルは、前記第３ユーザプロファイルの更新済みプロファイル仕様を有する、工程と
をさらに備える請求項１７に記載の方法。
【請求項１９】
ｇ．１）前記第１ユーザアカウントに関連する第１ユーザコンタクトリストは、前記第４ユーザアカウントを同定するいずれのエントリーも含まず、かつ、前記第４ユーザアカウントに関連する第４ユーザコンタクトリストは、前記第１ユーザアカウントを同定するいずれのエントリーも含まないことを、前記サーバーによって判定する工程をさらに備え、
前記工程ｈ）、ｉ）およびｊ）は、前記工程ｇ．１）に応答して実行される、ことを特徴とする請求項１８に記載の方法。
【請求項２０】
非同期メッセージングシステムにおいて、第１ユーザアカウントに関連するユーザプロファイルを管理するコンピュータ実行可能な方法であって、当該方法は、
ａ）前記第１ユーザアカウントに関連する前記ユーザプロファイルに対するプロファイル仕様を、前記第１ユーザアカウントに対する認証に関連して、前記非同期メッセージングシステムのサーバーにおいて受信しかつ格納する工程と、
ｂ）前記ユーザプロファイルの前記プロファイル仕様の更新を、前記第１ユーザアカウントに対する認証に関連して、前記サーバーにおいて受信し、かつ、前記ユーザプロファイルの更新済みプロファイル仕様を前記サーバーにおいて生成しかつ格納する工程と、
ｃ）前記第２ユーザアカウントに関連する第２ユーザコンタクトリストが、前記第１ユーザアカウントを同定する第１ユーザアカウントエントリーを含むことを前記サーバーにより判定する工程と、
ｄ）前記工程ｂ）およびｃ）に応答して、前記第１ユーザプロファイルのローカルコピーとして前記第２ユーザクライアントにおいて格納するために、前記第２ユーザアカウントに関連する第２ユーザクライアントへ、更新済みプロファイル仕様を有する前記ユーザプロファイルを、前記サーバーにより送信する工程と
を備える方法。
【請求項２１】
前記第１ユーザアカウントに関連する第１ユーザコンタクトは、前記第２ユーザアカウントを同定するいずれのエントリーも含まない、ことを特徴とする請求項２０に記載の方法。
【請求項２２】
前記第１ユーザアカウントの第１ユーザコンタクトリストは、前記ユーザプロファイルを同定するいずれのエントリーも含まない、ことを特徴とする請求項２０に記載の方法。
【請求項２３】
非同期メッセージングシステムにおいて第１ユーザアカウントに関連するユーザプロファイル管理するコンピュータ実行可能な方法であって、
ａ）前記第１ユーザアカウントに関連する前記ユーザプロファイルに対するプロファイル仕様を、前記第１ユーザアカウントに対する認証と関連して、前記非同期メッセージングシステムのサーバーにおいて、受信しかつ格納する工程と、
ｂ）前記ユーザプロファイルの前記プロファイル仕様の更新を、前記第１ユーザアカウントに対する認証に関連して、前記サーバーにおいて受信し、前記ユーザプロファイルの更新済みプロファイル仕様を生成および格納することに応答し、かつ前記ユーザプロファイルの更新済みプロファイル仕様を、前記ユーザプロファイルに関連して前記サーバーにおいて生成しかつ格納することに応答する工程と、
ｃ）前記第１ユーザアカウントから前記第２ユーザアカウントへメッセージを送信するための入力を前記サーバーにおいて受信する工程と、
ｄ）更新済みプロファイル仕様バージョン識別子を、前記第２ユーザアカウントに関連する第２ユーザクライアントへ前記サーバーによって送信する工程と、
ｅ）前記第２ユーザクライアントに格納された前記ユーザプロファイルのローカルコピーに関連するローカルプロファイル仕様バージョン識別子が、更新済みプロファイル仕様バージョン識別子と異なることを指示する前記第２ユーザクライアントからの信号を、前記サーバーにおいて受信する工程と、
ｆ）前記工程ｅ）に応答して、前記ユーザプロファイルの前記ローカルコピーとして前記第２ユーザクライアントに格納するために、前記同期メッセージングシステムにおいて、前記第２ユーザアカウントに関連する前記第２ユーザクライアントへ、更新済みプロファイル仕様を有する前記ユーザプロファイルを、前記サーバーにより送信する工程と
を備える方法。
【請求項２４】
ｂ．１）前記第１ユーザアカウントに関連する第１ユーザコンタクトリストが、前記第２ユーザアカウントを同定するいずれのエントリーも含まないことを、前記サーバーによって判定する工程をさらに備え、
前記工程ｄ）およびｅ）は、前記工程ｂ．１）に応答して実行される、ことを特徴とする請求項２３に記載の方法。
【請求項２５】
ｂ．２）前記第２ユーザアカウントに関連する第２ユーザコンタクトリストが、前記第１ユーザアカウントを同定するいずれのエントリーも含まないことを前記サーバーによって判定する工程をさらに備え、
前記工程ｄ）およびｅ）は、工程ｂ．１）およびｂ．２）に応答して実行される、ことを特徴とする請求項２４に記載の方法。
【請求項２６】
前記工程ｂ．２）は、前記工程ｂ．１）に応答して実行される、ことを特徴とする請求項２５に記載の方法。
【請求項２７】
前記第１ユーザアカウントの前記第１ユーザコンタクトリストは、前記ユーザプロファイルを同定するいずれのエントリーも含まない、ことを特徴とする請求項２４に記載の方法。
【請求項２８】
各ユーザプロファイルは、画像、アニメ画像、ビデオ、文字、またはそれらの組みあわせを有する、ことを特徴とする請求項１から２７のいずれか一項に記載の方法。
【請求項２９】
非同期メッセージングシステムにおいて、第１ユーザアカウントに関連する複数のユーザプロファイルを管理するシステムであって、
プロセッサと、
通信インターフェースと、
前記通信インターフェースを使って、請求項１から２７のいずれか一項に記載の方法を実行する前記プロセッサによって実行可能なコンピュータ実行可能インストラクションを符号化するメモリと
を備えるシステム。
【請求項３０】
通信インターフェースを使って、請求項１から２７のいずれか一項に記載の方法を実行するプロセッサによって実行可能なコンピュータ実行可能インストラクションを符号化する非一過性コンピュータ読み取り可能媒体。
【国際調査報告】
2019510324.tif 000012
2019510324.tif 000013