(57)【要約】グループベース通信システムにおいてプッシュベース通信コネクションが存在しない場合に最小のインタフェース機能を維持するための方法、システム、および装置が提供される。
2021515504.tif 000002
【特許請求の範囲】
【請求項１】
グループベース通信システムにおいて最小のインタフェース機能を維持するための装置であって、少なくとも１つのプロセッサと、命令を記憶している少なくとも１つの非一時性ストレージ媒体とを備え、前記命令が、前記プロセッサによって実行されると、前記装置に、
グループベース通信インタフェースオブジェクトとの電子インタラクションを表すユーザインタラクション入力を受けることであって、前記グループベース通信インタフェースオブジェクトとの前記電子インタラクションが、後続のグループベース通信インタフェースをレンダリングするための更新オブジェクトデータを必要とし、前記電子インタラクションが、１つ以上のオブジェクト識別子に関連付けられている、ことと、
第１のリモートサーバとの第１の通信コネクションを確立することであって、前記第１のリモートサーバが、クライアントデバイスによってサブスクライブされ、グループベース通信インタフェースオブジェクトに関連付けられたイベントを表す更新オブジェクトデータをリアルタイムで送信するように構成されており、前記更新オブジェクトデータが、前記第１のリモートサーバから前記クライアントデバイスにプッシュされる、ことと、
第２のリモートサーバとの第２の通信コネクションを確立することであって、前記第２の通信コネクションが、クライアントプルベースの通信コネクションであり、前記クライアントデバイスによって、前記第２のリモートサーバからテールデータペイロードを要求および受信するように構成されている、ことと、
前記第２のリモートサーバにポーリング要求を送信することであって、前記ポーリング要求が、前記１つ以上のオブジェクト識別子を含み、前記ポーリング要求が、前記１つ以上のオブジェクト識別子それぞれのためのテールデータペイロードの要求を表している、ことと、
前記第２のリモートサーバから、前記１つ以上のオブジェクト識別子それぞれのための前記テールデータペイロードを受信することと、
前記１つ以上のオブジェクト識別子に関連付けられた更新オブジェクトデータをローカルデータストレージに照会することと、
前記１つ以上のオブジェクト識別子に関連付けられた前記更新オブジェクトデータが、前記クライアントデバイスのローカルデータストレージにおいて利用可能でなく、かつ前記１つ以上のオブジェクト識別子に関連付けられた前記更新オブジェクトデータが、前記第１のリモートサーバから受信されていないと判断すると、前記第１の通信コネクションのインタラプトを検出することと、
第１のテールデータペイロードの部分集合を使用して、前記後続のグループベース通信インタフェースを表示のためにレンダリングすることであって、前記第１のテールデータペイロードの部分集合が、前記電子インタラクションに関連付けられた必要とされる前記更新オブジェクトデータに基づいて前記テールデータペイロードから選択される、ことと、
を行わせる、装置。
【請求項２】
第２のテールデータペイロードの部分集合が、前記後続のグループベース通信インタフェースにおける表示のために、更新コンテンツ識別子に関連付けられた更新オブジェクトデータの集合をレンダリングするために利用される、請求項１記載の装置。
【請求項３】
更新コンテンツ識別子が、タイムスタンプ、単調に増分される修正番号、およびコンテンツまたはコンテンツハッシュの一方から導出された識別子のうちの１つ以上を含む、請求項２記載の装置。
【請求項４】
各オブジェクト識別子の前記テールデータペイロードが、Ｎ個のレコードを有する更新オブジェクトデータの集合を含み、各レコードが、前記ポーリング要求に関連付けられたポーリング要求タイムスタンプよりも前のタイムスタンプを有する、請求項１記載の装置。
【請求項５】
前記第１の通信コネクションが、アクティブなウェブソケットコネクションである、請求項１記載の装置。
【請求項６】
前記１つ以上のオブジェクト識別子が、グループベース通信チャネル識別子である、請求項１記載の装置。
【請求項７】
電子インタラクションが、表示されたグループベース通信チャネル名の選択である、請求項１記載の装置。
【請求項８】
前記表示されたグループベース通信チャネル名の前記選択が、マウスクリックまたはタッチスクリーン選択の一方によって受けられる、請求項１記載の装置。
【請求項９】
前記ポーリング要求が、ウェブアプリケーションプログラミングインタフェース（ＡＰＩ）への要求メッセージの送信である、請求項１記載の装置。
【請求項１０】
前記要求メッセージが、ハイパーテキスト転送プロトコル（ＨＴＴＰ）要求である、請求項９記載の装置。
【請求項１１】
グループベース通信システムにおいて最小のインタフェース機能を維持するための方法であって、
クライアントデバイスによって、グループベース通信インタフェースオブジェクトとの電子インタラクションを表すユーザインタラクション入力を受けることであって、前記グループベース通信インタフェースオブジェクトとの前記電子インタラクションが、後続のグループベース通信インタフェースをレンダリングするための更新オブジェクトデータを必要とし、前記電子インタラクションが、１つ以上のオブジェクト識別子に関連付けられている、ことと、
前記クライアントデバイスによって、第１のリモートサーバとの第１の通信コネクションを確立することであって、前記第１のリモートサーバが、前記クライアントデバイスによってサブスクライブされ、グループベース通信インタフェースオブジェクトに関連付けられたイベントを表す更新オブジェクトデータをリアルタイムで送信するように構成されており、前記更新オブジェクトデータが、前記第１のリモートサーバから前記クライアントデバイスにプッシュされる、ことと、
前記クライアントデバイスによって、第２のリモートサーバとの第２の通信コネクションを確立することであって、前記第２の通信コネクションが、クライアントプルベースの通信コネクションであり、前記クライアントデバイスによって、前記第２のリモートサーバからテールデータペイロードを要求および受信するように構成されている、ことと、
前記クライアントデバイスによって、前記第２のリモートサーバにポーリング要求を送信することであって、前記ポーリング要求が、前記１つ以上のオブジェクト識別子を含み、前記ポーリング要求が、前記１つ以上のオブジェクト識別子それぞれのためのテールデータペイロードの要求を表している、ことと、
前記クライアントデバイスによって、前記第２のリモートサーバから、前記１つ以上のオブジェクト識別子それぞれのための前記テールデータペイロードを受信することと、
前記クライアントデバイスによって、前記１つ以上のオブジェクト識別子に関連付けられた更新オブジェクトデータを前記クライアントデバイスのローカルデータストレージに照会することと、
前記クライアントデバイスによって、前記１つ以上のオブジェクト識別子に関連付けられた前記更新オブジェクトデータが、前記クライアントデバイスのローカルデータストレージにおいて利用可能でなく、かつ前記１つ以上のオブジェクト識別子に関連付けられた前記更新オブジェクトデータが、前記第１のリモートサーバから受信されていないと判断すると、前記第１の通信コネクションのインタラプトを検出することと、
前記クライアントデバイスによって、第１のテールデータペイロードの部分集合を使用して、前記後続のグループベース通信インタフェースを表示のためにレンダリングすることであって、前記第１のテールデータペイロードの部分集合が、前記電子インタラクションに関連付けられた必要とされる前記更新オブジェクトデータに基づいて前記テールデータペイロードから選択される、ことと、
を含む方法。
【請求項１２】
第２のテールデータペイロードの部分集合が、前記後続のグループベース通信インタフェースにおける表示のために、更新コンテンツ識別子に関連付けられた更新オブジェクトデータの集合をレンダリングするために利用される、請求項１１記載の方法。
【請求項１３】
更新コンテンツ識別子が、タイムスタンプ、単調に増分される修正番号、およびコンテンツまたはコンテンツハッシュの一方から導出された識別子のうちの１つ以上を含む、請求項１２記載の方法。
【請求項１４】
各オブジェクト識別子の前記テールデータペイロードが、Ｎ個のレコードを有する更新オブジェクトデータの集合を含み、各レコードが、前記ポーリング要求に関連付けられたポーリング要求タイムスタンプよりも前のタイムスタンプを有する、請求項１１記載の方法。
【請求項１５】
前記第１の通信コネクションが、アクティブなウェブソケットコネクションである、請求項１１記載の方法。
【請求項１６】
前記１つ以上のオブジェクト識別子が、グループベース通信チャネル識別子である、請求項１１記載の方法。
【請求項１７】
電子インタラクションが、表示されたグループベース通信チャネル名の選択である、請求項１１記載の方法。
【請求項１８】
前記表示されたグループベース通信チャネル名の前記選択が、マウスクリックまたはタッチスクリーン選択の一方によって受けられる、請求項１１記載の方法。
【請求項１９】
前記ポーリング要求が、ウェブアプリケーションプログラミングインタフェース（ＡＰＩ）への要求メッセージの送信である、請求項１１記載の方法。
【請求項２０】
前記要求メッセージが、ハイパーテキスト転送プロトコル（ＨＴＴＰ）要求である、請求項１９記載の方法。
【請求項２１】
命令を記憶している少なくとも１つの非一時性ストレージ媒体を備えるコンピュータプログラム製品であって、前記命令が、プロセッサによって実行されると、前記プロセッサに、
グループベース通信インタフェースオブジェクトとの電子インタラクションを表すユーザインタラクション入力を受けることであって、前記グループベース通信インタフェースオブジェクトとの前記電子インタラクションが、後続のグループベース通信インタフェースをレンダリングするための更新オブジェクトデータを必要とし、前記電子インタラクションが、１つ以上のオブジェクト識別子に関連付けられている、ことと、
第１のリモートサーバとの第１の通信コネクションを確立することであって、前記第１のリモートサーバが、クライアントデバイスによってサブスクライブされ、グループベース通信インタフェースオブジェクトに関連付けられたイベントを表す更新オブジェクトデータをリアルタイムで送信するように構成されており、前記更新オブジェクトデータが、前記第１のリモートサーバから前記クライアントデバイスにプッシュされる、ことと、
第２のリモートサーバとの第２の通信コネクションを確立することであって、前記第２の通信コネクションが、クライアントプルベースの通信コネクションであり、前記クライアントデバイスによって、前記第２のリモートサーバからテールデータペイロードを要求および受信するように構成されている、ことと、
前記第２のリモートサーバにポーリング要求を送信することであって、前記ポーリング要求が、前記１つ以上のオブジェクト識別子を含み、前記ポーリング要求が、前記１つ以上のオブジェクト識別子それぞれのためのテールデータペイロードの要求を表している、ことと、
前記第２のリモートサーバから、前記１つ以上のオブジェクト識別子それぞれのための前記テールデータペイロードを受信することと、
前記１つ以上のオブジェクト識別子に関連付けられた更新オブジェクトデータをローカルデータストレージに照会することと、
前記１つ以上のオブジェクト識別子に関連付けられた前記更新オブジェクトデータが、前記クライアントデバイスのローカルデータストレージにおいて利用可能でなく、かつ前記１つ以上のオブジェクト識別子に関連付けられた前記更新オブジェクトデータが、前記第１のリモートサーバから受信されていないと判断すると、前記第１の通信コネクションのインタラプトを検出することと、
第１のテールデータペイロードの部分集合を使用して、前記後続のグループベース通信インタフェースを表示のためにレンダリングすることであって、前記第１のテールデータペイロードの部分集合が、前記電子インタラクションに関連付けられた必要とされる前記更新オブジェクトデータに基づいて前記テールデータペイロードから選択される、ことと、
を行わせる、コンピュータプログラム製品。
【請求項２２】
第２のテールデータペイロードの部分集合が、前記後続のグループベース通信インタフェースにおける表示のために、更新コンテンツ識別子に関連付けられた更新オブジェクトデータの集合をレンダリングするために利用される、請求項２１記載のコンピュータプログラム製品。
【請求項２３】
更新コンテンツ識別子が、タイムスタンプ、単調に増分される修正番号、およびコンテンツまたはコンテンツハッシュの一方から導出された識別子のうちの１つ以上を含む、請求項２２記載のコンピュータプログラム製品。
【請求項２４】
各オブジェクト識別子の前記テールデータペイロードが、Ｎ個のレコードを有する更新オブジェクトデータの集合を含み、各レコードが、前記ポーリング要求に関連付けられたポーリング要求タイムスタンプよりも前のタイムスタンプを有する、請求項２１記載のコンピュータプログラム製品。
【請求項２５】
前記第１の通信コネクションが、アクティブなウェブソケットコネクションである、請求項２１記載のコンピュータプログラム製品。
【請求項２６】
前記１つ以上のオブジェクト識別子が、グループベース通信チャネル識別子である、請求項２１記載のコンピュータプログラム製品。
【請求項２７】
電子インタラクションが、表示されたグループベース通信チャネル名の選択である、請求項２１記載のコンピュータプログラム製品。
【請求項２８】
前記表示されたグループベース通信チャネル名の前記選択が、マウスクリックまたはタッチスクリーン選択の一方によって受けられる、請求項２１記載のコンピュータプログラム製品。
【請求項２９】
前記ポーリング要求が、ウェブアプリケーションプログラミングインタフェース（ＡＰＩ）への要求メッセージの送信である、請求項２１記載のコンピュータプログラム製品。
【請求項３０】
前記要求メッセージが、ハイパーテキスト転送プロトコル（ＨＴＴＰ）要求である、請求項２９記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本願は、２０１８年１１月５日に出願された「（グループベース通信システムにおいてプッシュベース通信コネクションが存在しない場合の最小のインタフェース機能の維持）MAINTAINING MINIMUM INTERFACE FUNCTIONALITY IN AN ABSENCE OF A PUSH-BASED COMMUNICATIONS CONNECTION IN A GROUP-BASED COMMUNICATION SYSTEM」と題する米国仮出願第６２／７５５，６９１号に対する優先権を主張し、その内容全体を参照によって本明細書に援用するものとする。
【背景技術】
【０００２】
プッシュベース通信コネクションによってクライアントデバイスとサーバとの間でインタラクションするためのシステムが提供されている。応用的な努力、創意工夫、および革新により、そのようなシステムの多くの欠陥が、本発明の実施形態による解決手段を開発することによって解決されてきており、その多くの例が、本明細書に詳述される。
【発明の概要】
【０００３】
様々な実施形態が、グループベース通信サーバへのリアルタイムメッセージング通信コネクション（例えば、アクティブなウェブソケットコネクション）のインタラプトにもかかわらず、クライアントデバイスにてグループベース通信インタフェースオブジェクトをほぼリアルタイムで表現する役割を果たす。様々な実施形態は、リアルタイムのメッセージング通信コネクションが存在しない場合に、グループベース通信インタフェースが最小レベルの機能またはサービス品質を維持することを保証する。グループベース通信サーバは、（グループベース通信プラットフォームまたは他の集中型データ分散コンピューティングプラットフォームなどの）リモートコンピューティングプラットフォームに関連付けられる。実施形態では、クライアントデバイスが、グループベース通信インタフェースオブジェクトに関連付けられたイベントをサブスクライブし、それにより、リアルタイムメッセージング通信用に構成されたグループベース通信サーバが、クライアントデバイスによってサブスクライブされたグループベース通信インタフェースオブジェクトに関連付けられた更新オブジェクトデータが利用可能になるとすぐに、更新オブジェクトデータを送信するようになっている。
【０００４】
第１のグループベース通信サーバとのリアルタイムメッセージング通信コネクションの確立に加えて、クライアントデバイスは、テールデータペイロードを要求するポーリングのために、異なるグループベース通信サーバ（例えば、ウェブＡＰＩ）との第２の通信コネクションを確立する。リアルタイムメッセージング通信コネクションのインタラプトの期間が不明であるため、クライアントデバイスが、通常であればクライアントデバイスにプッシュされたであろうよりも多くの更新オブジェクトデータを異なるグループベース通信サーバに要求すること、よってテールデータペイロードを要求することが好ましい。リアルタイムメッセージング通信コネクションが維持されている間、テールデータペイロードが破棄される。
【０００５】
しかし、クライアントデバイスと、リアルタイムメッセージング通信用に構成されたグループベース通信サーバとの間のリアルタイムメッセージング通信コネクションがインタラプトされた場合、様々な実施形態が、テールデータペイロードの全てまたは一部を使用して、後続のグループベース通信インタフェースをレンダリングする。後続のグループベース通信インタフェースは、更新オブジェクトデータが存在しない場合に、完全に機能を失うのとは対照的に、テールデータペイロードを使用して最小レベルの機能をサポートし得る。最小レベルの機能（または最小のインタフェース機能）には、メッセージを送信する（すなわち、特定のグループベース通信チャネルインタフェースにおける表示を目的としたメッセージをグループベース通信プラットフォーム／システムに送信する）、グループベース通信チャネルを読み取る（すなわち、クライアントデバイスに表示するためにグループベース通信チャネルインタフェースをレンダリングするように構成されたグループベース通信インタフェースを受信する）、かつ未読のグループベース通信チャネルを閲覧する（すなわち、クライアントデバイスがまだアクセスしていないグループベース通信チャネルに関連付けられたメッセージを有するグループベース通信チャネルのデジタル表現を含むグループベース通信インタフェースを、クライアントデバイスに表示するためにレンダリングするように構成されたグループベース通信インタフェースを受信する）能力が含まれ得る。
【０００６】
実施形態では、グループベース通信システムにおいて最小のインタフェース機能を維持するための装置が、少なくとも１つのプロセッサと、命令を記憶している少なくとも１つの非一時性ストレージ媒体とを備え、命令が、プロセッサによって実行されると、装置に、グループベース通信インタフェースオブジェクトとの電子インタラクションを表すユーザインタラクション入力を受けさせる。実施形態では、グループベース通信インタフェースオブジェクトとの電子インタラクションが、後続のグループベース通信インタフェースをレンダリングするための更新オブジェクトデータを必要とする。実施形態では、電子インタラクションが、１つ以上のオブジェクト識別子に関連付けられている。
【０００７】
実施形態では、装置にさらに、第１のリモートサーバとの第１の通信コネクションを確立させる。実施形態では、第１のリモートサーバが、クライアントデバイスによってサブスクライブされ、グループベース通信インタフェースオブジェクトに関連付けられたイベントを表す更新オブジェクトデータをリアルタイムで送信するように構成されている。実施形態では、更新オブジェクトデータが、第１のリモートサーバからクライアントデバイスにプッシュされる。
【０００８】
実施形態では、装置にさらに、第２のリモートサーバとの第２の通信コネクションを確立させる。実施形態では、第２の通信コネクションが、クライアントプルベースの通信コネクションであり、クライアントデバイスによって、第２のリモートサーバからテールデータペイロードを要求および受信するように構成されている。
【０００９】
実施形態では、装置にさらに、第２のリモートサーバにポーリング要求を送信させる。実施形態では、ポーリング要求が、１つ以上のオブジェクト識別子を含む。実施形態では、ポーリング要求が、１つ以上のオブジェクト識別子それぞれのためのテールデータペイロードの要求を表している。
【００１０】
実施形態では、装置にさらに、第２のリモートサーバから、１つ以上のオブジェクト識別子それぞれのためのテールデータペイロードを受信させる。
【００１１】
実施形態では、装置にさらに、１つ以上のオブジェクト識別子に関連付けられた更新オブジェクトデータをクライアントデバイスのローカルデータストレージに照会させる。
【００１２】
実施形態では、装置にさらに、１つ以上のオブジェクト識別子に関連付けられた更新オブジェクトデータが、クライアントデバイスのローカルデータストレージにおいて利用可能でなく、かつ１つ以上のオブジェクト識別子に関連付けられた更新オブジェクトデータが、第１のリモートサーバから受信されていないと判断すると、第１の通信コネクションのインタラプトを検出させる。
【００１３】
実施形態では、装置にさらに、第１のテールデータペイロードの部分集合を使用して、後続のグループベース通信インタフェースを表示のためにレンダリングさせる。実施形態では、第１のテールデータペイロードの部分集合が、電子インタラクションに関連付けられた必要とされる更新オブジェクトデータに基づいてテールデータペイロードから選択される。
【図面の簡単な説明】
【００１４】
ここで、必ずしも縮尺に従って描かれていない添付図面が参照される。
【図１】本開示の実施形態による、クライアントデバイスと通信するグループベース通信プラットフォームの概略図である。
【図２Ａ】本開示の実施形態によって使用するための装置の概略図である。
【図２Ｂ】本開示の実施形態によって使用するためのクライアントデバイスの概略図である。
【図３Ａ】本開示の実施形態による、クライアントデバイスとグループベース通信プラットフォームまたはシステムとの間のデータ伝送の概略図である。
【図３Ｂ】本開示の実施形態による、クライアントデバイスとグループベース通信プラットフォームまたはシステムとの間のデータ伝送を示すフローチャートである。
【発明を実施するための形態】
【００１５】
本開示は、添付図面を参照して様々な実施形態について、より十分に記述する。全てではなく、いくつかの実施形態について、本明細書に示し、記述することを理解されたい。したがって、実施形態は実際には多くの異なる形態をとり得るが、本開示は、本明細書に記載する実施形態に限定されるものと解釈されるべきではない。むしろ、これらの実施形態は、適用され得る法的要件を本開示が満たすように提示される。同様の数字が、全体を通して同様の要素を指す。
【００１６】
［概略］
グループベース通信システムでは、クライアントデバイスが、グループベース通信サーバからのデータ伝送を受信し、受信されたデータに基づいてグループベース通信インタフェースをレンダリングする。グループベース通信インタフェース、したがってグループベース通信システムに関連付けられたオブジェクトが、急速に変化し、クライアントデバイスにおける任意のオブジェクトデータが直ぐに「古く」なったり「陳腐化」したりする場合がある。したがって、グループベース通信システムが、各クライアントデバイスによって更新が要求されたオブジェクトに基づいて、リアルタイムで更新されたオブジェクトデータをクライアントデバイスに提供するために、リアルタイムメッセージング（ＲＴＭ）通信コネクションに依存する場合がある。
【００１７】
リアルタイムメッセージング通信コネクションが何らかの理由でインタラプトされると、クライアントデバイスにおけるオブジェクトデータが、古くなったり、陳腐化したりする場合があり、クライアントデバイスは、グループベース通信インタフェースと積極的にインタラクトし得ない場合がある。本開示の実施形態は、この問題に対する解決手段を提供する。
【００１８】
グループベース通信システムのクライアントデバイスによるポーリングは、リアルタイムメッセージングコネクションの代わりに恒常的に、理想的なパフォーマンス（すなわち待ち時間）を提供し得ないが、クライアントデバイスが、更新オブジェクトデータを受信し、かつクライアントデバイス上のグループベース通信インタフェースとの動作およびインタラクションをサポートし得る、信頼性の高いバックアップメカニズムを提示する。
【００１９】
本発明者らは、グループベース通信システムに関連付けられた更新オブジェクトデータをクライアントデバイスによって受信するためにリアルタイムメッセージングコネクション（例えば、アクティブなウェブソケットコネクション）にのみ依存することにより、クライアントデバイス上で最新のオブジェクトデータが欠如し、結果としてアプリケーション機能の低下につながり（例えば、グループベース通信インタフェースが、意図されたように実行または機能しない場合があり）、クライアントデバイスによるコンピューティングリソースの効率的な使用を低減させる（すなわち、キャッシュ／メモリ内の過剰な古いデータ、インタフェースの過度なリフレッシュ、画面の場所の不適切な割り当てその他）と判断した。
【００２０】
したがって、本明細書に提示するのは、グループベース通信サーバへのリアルタイムメッセージング通信コネクション（例えば、アクティブなウェブソケットコネクション）のインタラプトにもかかわらず、グループベース通信インタフェースオブジェクトをほぼリアルタイムでクライアントデバイスにて表現することに向けられた実施形態である。実施形態は、１つ以上のオブジェクト識別子に関連付けられた更新オブジェクトデータが、クライアントデバイスのローカルデータストレージにおいて利用可能でなく、かつ１つ以上のオブジェクト識別子に関連付けられた更新オブジェクトデータが第１のリモートサーバから受信されていないと判断すると、リアルタイムメッセージング通信コネクションのインタラプトを検出することを含む。クライアントデバイスはまた、（例えば、ウェブＡＰＩを介して）異なるグループベース通信サーバとの第２の通信コネクションを確立し、１つ以上のオブジェクト識別子に関連付けられたオブジェクトそれぞれのためのテールデータペイロードを要求している。通常の動作条件では、クライアントデバイスが、更新オブジェクトデータがローカルデータストレージにおいて利用可能であること、および／または更新オブジェクトデータが第１のリモートサーバから受信されていることを確認すると、クライアントデバイスは、テールデータペイロードを破棄する。
【００２１】
実施形態では、リアルタイムメッセージング通信コネクションがインタラプトされており、したがって、更新オブジェクトデータがリアルタイムメッセージング通信コネクションによって受信されていないと判断すると、クライアントデバイスは、テールデータペイロードを（破棄するのではなく）使用して後続のグループベース通信インタフェースをレンダリングする。テールデータペイロードは、リアルタイムメッセージング通信コネクションによって受信されたであろうデータ（すなわち、第１のリモートサーバからクライアントデバイスにプッシュされる更新オブジェクトデータ）よりも多くのデータを含むことが理解されよう。
【００２２】
次いで、クライアントデバイスは、受信されたテールデータペイロードの全てまたは部分集合に基づいて、後続のグループベース通信インタフェースをレンダリングすることができる。したがって、グループベース通信インタフェースは、ほぼリアルタイムで更新されたオブジェクトデータによって最小の機能を提供し得る。
【００２３】
［定義］
本明細書において、用語「データ」、「コンテンツ」、「情報」、および類似の用語は、本発明の実施形態によって送信、受信、および／または記憶できるデータを指すために交換可能に使用され得る。それゆえ、そのようないかなる用語の使用も、本発明の実施形態の趣旨および範囲を限定するものと解釈されるべきではない。さらに、コンピューティングデバイスが別のコンピューティングデバイスからデータを受信するように、本明細書で記述する場合、データは、別のコンピューティングデバイスから直接受信されてもよく、または例えば、１つ以上のサーバ、リレー、ルータ、ネットワークアクセスポイント、基地局、ホスト、および／もしくはその他の、１つ以上の中間コンピューティングデバイスを介して間接的に受信されてもよいことが理解されよう。同様に、コンピューティングデバイスが別のコンピューティングデバイスにデータを送信するように、本明細書で記述する場合、データは、別のコンピューティングデバイスに直接送信されてもよく、または例えば、１つ以上のサーバ、リレー、プロキシ、ルータ、ネットワークアクセスポイント、基地局、ホスト、および／もしくはその他の、１つ以上の中間コンピューティングデバイスを介して間接的に送信されてもよいことが理解されよう。
【００２４】
用語「ユーザ」は、個人、個人のグループ、事業所、組織その他を指すことを理解されたい。ユーザは、クライアントデバイスを使用してグループベース通信システムまたはメッセージングシステムにアクセスし得る。本明細書では、「グループベース」は、定義されたユーザグループのみがアクセスできるように十分なセキュリティを有する、システム、チャネル、メッセージ、または仮想環境を指すために使用される。グループは、組織または商業企業のアクセス資格情報などの共通のアクセス資格情報によって定義され得る。あるグループメンバーユーザによって別の非メンバーユーザに送信される、参加への検証済み要求または参加への招待により、アクセスがさらに容易となり得る。（以下で定義する）グループ識別子が、データ、情報、メッセージなどを特定のグループに関連付けるために使用される。
【００２５】
用語「ユーザプロファイル」、「ユーザアカウント」、および「ユーザアカウント詳細」は、例えば、ユーザ識別子、ユーザがアクセスを許可された通信チャネル（例えばグループベース通信チャネル）に関連付けられた１つ以上の通信チャネル識別子（例えばグループベース通信チャネル識別子）、ユーザが関連付けられたグループの１つ以上のグループ識別子、ユーザが任意のグループベース通信チャネルの所有者であるかどうかの識別表示、ユーザが任意のグループベース通信チャネル制限を有しているかどうかの識別表示、複数のメッセージ、複数の絵文字、複数の会話、複数の会話トピック、アバター、電子メールアドレス、実名（例えば、Ｊｏｈｎ  Ｄｏｅ）、ユーザ名（例えばｊｄｏｅ）、パスワード、タイムゾーン、ステータスその他を含む、ユーザに関連付けられた情報を指す。ユーザアカウント詳細は、例えば、ユーザのユーザ名およびパスワードを含むユーザのログイン情報など、ユーザ資格情報の部分集合の指定を含むことができる。
【００２６】
用語「クライアントデバイス」は、１つ以上のサーバによって利用可能とされた１つ以上のサービスにアクセスするように構成されたコンピュータハードウェアおよび／またはソフトウェアを指す。サーバは、（常にではないが）多くの場合に別のコンピュータシステム（例えば、グループベース通信プラットフォームなどのコンピューティングプラットフォーム）上にあり、この場合、クライアントデバイスは、ネットワークを介してサービスにアクセスする。クライアントデバイスが、ユーザが属するグループ（例えばユーザグループ）を示唆する電子的な識別表示であるグループ識別表示に関連付けられ得る。クライアントデバイスが、非限定的に、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、ウェアラブル機器、パーソナルコンピュータ、企業コンピュータその他を含み得る。
【００２７】
コンピューティングプラットフォームのサービスにアクセスするために、クライアントデバイスおよび／またはコンピューティングプラットフォームは、個々の接続セッションとして実施されたネットワークコネクション（例えば「通信コネクション」）をそれらの間に確立する。単一のクライアントデバイスが、一定期間にわたるデータ転送のために、コンピューティングプラットフォームとの複数の接続セッションを利用し得る。本明細書で説明するように、特定のクライアントデバイスに関連するデータ（例えば、特定のオブジェクトの更新）は、（クライアントデバイスがコンピューティングプラットフォームから切断されている間に）接続セッション間でコンピューティングプラットフォームによって生成し（またはコンピューティングプラットフォームに提供し）続けることができ、そのようなデータは、後続の接続セッション中にクライアントデバイスに提供することができる。
【００２８】
実施形態では、通信コネクションが、アクティブなウェブソケットコネクション（例えば、「リアルタイムメッセージング」（ＲＴＭ）コネクション、「プッシュ」コネクション、またはサーバによって開始されるコネクション）、非ＲＴＭコネクション（例えば、「プル」コネクション、またはクライアントによって開始されるコネクション）その他であり得る。クライアントデバイスが、アクティブなウェブソケットコネクションによってＲＴＭサーバ（例えば、リアルタイムメッセージング通信用に構成されたグループベース通信サーバ）と通信し得る。クライアントデバイスが、加えてまたは代わりに、（例えば、ＨＴＴＰ要求メッセージの利用によって）非ＲＴＭコネクションによって非ＲＴＭサーバ（例えば、リアルタイムメッセージング通信用に構成されていないグループベース通信サーバ）と通信し得る。
【００２９】
用語「グループベース通信システム」および「グループベース通信プラットフォーム」は、複数のグループベース通信インタフェースおよび全ての関連する機能をサポートおよび維持するように構成された、通信ソフトウェアプラットフォームおよび関連するハードウェアを指す。グループベース通信システムのユーザが、組織グループ（例えば、異なる会社の従業員が、別個の組織グループとなり得る）に編成され、各グループが、それぞれのグループベース通信インタフェースを介してシステムとインタラクトする。例えば、グループベース通信システムはとりわけ、Slack Corporation社のグループベース通信インタフェースおよびACME Corporation社のグループベース通信インタフェースをサポートし得る。グループベース通信システムの例が、支援サーバ、クライアントデバイス、および外部アプリケーションサーバを備える。
【００３０】
用語「グループベース通信チャネル」は、チャネルメンバー（例えば、クライアントデバイスを使用して環境にアクセスしている検証済みユーザ）によって投稿された、グループのメンバーのみが閲覧可能なグループベースメッセージを表示するように構成された仮想の通信環境またはフィードを指す。グループベース通信チャネルの形式は、グループベース通信チャネルの異なるメンバーにとって異なるように見える場合があるが、グループベース通信チャネルのコンテンツ（すなわちグループベースメッセージ）は、グループベース通信チャネルの各メンバーに対して表示される。例えば、グループベース通信チャネルインタフェースのコンテンツ（すなわち、グループベースのメッセージ）が、グループベース通信チャネルのメンバーごとに変化しないように、それぞれのグループベース通信チャネルの各メンバーに対して共通のグループベースメッセージセットが表示される。しかし、実施形態では、グループベース通信チャネルインタフェースのコンテンツは、各メンバーに関連付けられた様々な権限に基づいてグループベース通信チャネルのメンバーごとに異なる場合がある（例えば、第１のメンバーが、ファイルと共にメッセージをチャネルに投稿することができ、メッセージは第２のメンバーに対して表示することができるが、ファイルには第２のメンバーによってアクセスすることができない場合があり、この場合、ファイルの表示は、第１のメンバーに対するファイルの表示とは異なり得る）。
【００３１】
複数の通信チャネルは、１つ以上のコンピューティングデバイスのそれぞれで機能することができ、したがって、通信チャネル識別子を通信チャネルに割り当てることができ、通信チャネル識別子は、その通信チャネルの関連するデータが記憶されているデータベース内の物理アドレスを示すとともに、通信チャネル上で交換されるデータを受信するために通信チャネルに参加するクライアントデバイスを識別するために利用される。したがって、通信チャネル識別子は、複数の通信チャネルに関連付けられたコンピューティングデバイス上でも通信チャネルが個別かつ別個のままであることを保証する。
【００３２】
通信チャネルは「パブリック」であってよく、この通信チャネルは、任意のクライアントデバイスが通信チャネルを介して情報共有に参加および関与することを可能にし得る。通信チャネルは「プライベート」であってよく、この通信チャネルは、通信チャネル内のデータ通信を特定のクライアントデバイスおよび／またはユーザに制限し得る。
【００３３】
用語「グループベース通信チャネルインタフェース」は、チャネルメンバー（例えば、クライアントデバイスを使用して環境にアクセスしている検証済みユーザ）によって投稿された、グループのメンバーのみが閲覧可能なメッセージング通信を表示するように構成された仮想の通信環境またはフィードを指す。グループベース通信チャネルインタフェースの形式は、グループベース通信チャネルの異なるメンバーにとって異なるように見える場合があるが、グループベース通信チャネルインタフェースのコンテンツ（すなわちメッセージング通信）は、グループベース通信チャネルの各メンバーに対して表示される。例えば、グループベース通信チャネルインタフェースのコンテンツ（すなわちメッセージング通信）が、グループベース通信チャネルのメンバーごとに変化しないように、共通のグループベースメッセージング通信セットが、それぞれのグループベース通信チャネルの各メンバーに対して表示される。
【００３４】
特定の実施形態では、グループベース通信インタフェースは、例えば、表示ウィンドウ内に複数の可視ペインを含み得る。特定の実施形態では、各表示ペインが、特定のデータ形式を表示するように構成され得る。例えば、左端のペインが、ユーザが利用可能なチャネルおよび／または直接メッセージの一覧を提示することができ、右端の（または３ペイン構成の中央ペイン）が、メッセージが交換される特定のチャネルのコンテンツを表示することができる（それらの表示されたメッセージを全て表示することを含む）。中央ペインのコンテンツは、特定の実施形態ではスクロール可能なフィードとして提示され得る。メイン表示ウィンドウが３つのペインを備える実施形態では、右端のペインは、特定の選択されたメッセージ、チャネル、および／またはその他に関する追加データを含み得る。
【００３５】
本明細書において、用語「メッセージング通信」および「メッセージ」は、クライアントデバイスを使用するユーザによって提供され、かつグループベース通信インタフェース内に表示するように構成された、電子的に生成された任意のデジタルコンテンツオブジェクトを指す。メッセージ通信が、（クライアントデバイスを使用する）ユーザによって提供される任意のテキスト、画像、ビデオ、オーディオ、またはそれらの組み合わせを含み得る。例えば、ユーザは、メッセージのコンテンツとしてテキストならびに画像およびビデオをメッセージ内に含むメッセージング通信を提供し得る。そのような場合、テキスト、画像、およびビデオは、メッセージング通信またはデジタルコンテンツオブジェクトを構成する。グループベース通信システムの通信チャネル（例えばグループベース通信チャネル）に送信または投稿された各メッセージは、送信側ユーザ識別子、メッセージ識別子、メッセージコンテンツ、オブジェクト識別子、グループ識別子、および／またはグループベース通信チャネル識別子を含む、メタデータを含む。前述の識別子のそれぞれは、ＡＳＣＩＩテキスト、ポインタ、メモリアドレスその他を含み得る。メッセージは、グループベース通信インタフェースの個々のペイン（単一のペインが特定の表示ウィンドウ内で視認可能である）内で生成および／または編集することができ、かつ／またはメッセージは、別個の表示ウィンドウ内で生成および／または編集することができる（例えば、別個の表示ウィンドウが、通信チャネル内で共有される投稿を生成するために、かつ／または他のユーザとの通話を開始するために、利用され得る）。
【００３６】
本明細書で使用される用語「オブジェクト」は、そのための更新が１つ以上のクライアントデバイスに提供および発信され得る、任意のコンテンツソースを指し得る。特定のユーザを他のユーザにとってのオブジェクトと見なすことができ、特定のユーザの特性および／または活動に関する更新を他のクライアントデバイスに発信できるようになっている。特定の実施形態では、オブジェクトをファイルとしても実施することができ、ファイルに対する更新を個々のクライアントデバイスに発信できるようになっている。特定の実施形態では、オブジェクトをチャネルとしても実施することができ、チャネルに対する更新を個々のクライアントデバイスに発信できるようになっている。特定のオブジェクトに関連する更新が、更新に関連する特定のオブジェクトを識別する追加のメタデータ（本明細書ではオブジェクト識別子と呼ばれる）を含み得るメッセージとしてグループベース通信プラットフォームから個々のクライアントデバイスに発信され得る。これらのオブジェクト識別子により、クライアントデバイスが、適切なオブジェクトに関連して更新を表示すること、および／または適切なオブジェクトに関連してクライアントデバイス上のローカルデータストレージ内に更新を記憶することが可能になる。特定の実施形態では、オブジェクト識別子は、オブジェクトに関連するオブジェクト形式（例えば、ユーザオブジェクト、ファイルオブジェクト、および／またはその他）を示すデータを含み、加えてまたは代わりに、（例えば、全てのオブジェクトから、または特定のオブジェクト形式の全てのオブジェクトから）オブジェクトを一意に識別する一意の文字列（例えば、一意の数値、一意の英数文字列、および／またはその他）を示すデータを含み得る。実施形態では、グループベース通信インタフェースが、オブジェクトの表現のグラフィカルユーザインタフェース（ＧＵＩ）におけるレンダリングとなるように、グループベース通信インタフェースオブジェクトが、オブジェクトに関連付けられる。
【００３７】
オブジェクト更新（または「更新オブジェクトデータ」）が、クライアントデバイスに提供され得る。クライアントデバイスのローカルデータストレージ内に記憶されたデータを、グループベース通信プラットフォームなどのコンピューティングプラットフォームから受信されたオブジェクト更新を反映した新しいデータによって置換および／または補足することにより、クライアントデバイス上のローカルデータストレージ内にローカルに記憶されたオブジェクト（例えば、コンピューティングプラットフォームに反映されたローカルに記憶されたオブジェクトのコピー）が更新される。例えば、更新オブジェクトデータが、グループベース通信インタフェースオブジェクト（例えばチャネル）に関連付けられ、クライアントデバイスがサブスクライブしたイベント（例えば、ウェブソケットイベントのサブスクリプション）を表し得る。
【００３８】
データストレージ内にローカルに記憶されたオブジェクトは、クライアントデバイスで実行される１つ以上のアプリケーション、コンピュータプログラム、または他のローカル処理インスタンスによって利用され得る。これらのローカル処理インスタンスは、オブジェクトを表示するための１つ以上のグラフィカルユーザインタフェース、オブジェクトを入力として取り込むように構成された１つ以上の実行可能プログラム、および／またはその他を含み得る。ローカルに記憶されたオブジェクトは、ローカルデータストレージからオブジェクトを取得して１つ以上のローカル処理インスタンスに渡す「ｇｅｔ」プロセスにより、ローカルデータストレージから取得され得る。例では、ローカルに記憶されたオブジェクトは、クライアントデバイス上のグループベース通信インタフェースを表示のために生成する際に利用される。
【００３９】
用語「グループ識別子」または「チーム識別子」は、グループベース通信システム内のグループを識別し得る１つ以上のデータ項目を指す。例えば、グループ識別子が、ＡＳＣＩＩテキスト、ポインタ、メモリアドレスその他を含み得る。
【００４０】
用語「グループベース通信チャネル識別子」または「チャネル識別子」は、グループベース通信チャネルを識別し得る１つ以上のデータ項目を指す。例えば、グループベース通信チャネル識別子が、ＡＳＣＩＩテキスト、ポインタ、メモリアドレスその他を含み得る。特定の実施形態では、（パブリックかプライベートかにかかわらず）通信チャネルが共通のグループ／チームのユーザ（およびそれらの関連するクライアントデバイス）間での使用に利用可能であり得るが、グループ間の通信チャネルが、別個のチームのユーザに関連付けられたクライアントデバイス間で利用可能であり得る。それゆえ、チャネル識別子が、特定の通信チャネルに関連するデータ／メッセージが記憶されている場所を具体的に特定するために１つ以上のグループ識別子と共に提供され得る。
【００４１】
用語「グループベース通信インタフェース」は、グループベース通信システムとのユーザインタラクションを容易にするように構成された仮想通信環境を指す。各グループベース通信インタフェースは、事業所または組織の従業員グループなど、選択されたユーザグループにとってアクセス可能かつ閲覧可能である（例えば、Slack Corp.社のインタフェースは、Slack社の従業員にとってアクセス可能かつ閲覧可能であるが、ACME Corporation社のグループベース通信インタフェースは、インタフェースが共有指定されていない限り、Slack社の従業員にとってアクセス可能でも閲覧可能でもない）。グループベース通信インタフェースは、以下に定義する複数のグループベース通信チャネル（例えば、営業チャネル、販売チャネル、会計チャネルなど）を含む。
【００４２】
「送信側ユーザ識別子」が、特定のユーザ（すなわち、特定のユーザに関連付けられたクライアントデバイス）によって送信されるメッセージの集合に関連付けられる。これらのメッセージは、ユーザに関するコンテキストを決定するために分析され得る（例えば、トピックにおけるユーザの専門知識または関心は、そのようなメッセージ内でのトピックまたはトピックに関連付けられたキーワードについての言及の頻度に基づいて決定され得る）。
【００４３】
グループベース通信システムのユーザが、組織グループ（例えば、各会社の従業員が、別個の組織グループとなり得る）に編成され、各組織グループは、ユーザが割り当てられ得るか、またはユーザが参加し得る、１つ以上の通信チャネル（例えばグループベース通信チャネル）を有し得る（例えば、グループベース通信チャネルが、部門、オフィスなどの地理的位置、製品ライン、ユーザの関心、トピック、案件、および／またはその他を表し得る）。グループ識別子が、メッセージに対するアクセス制御を容易にするために使用され得る（例えば、検索クエリに応答する検索結果の一部としてメッセージ返信を有するなど、メッセージへのアクセスが、ユーザプロファイルに関連付けられたグループ識別子を有するユーザに制限され得る）。グループ識別子は、メッセージのコンテキストを決定するために使用され得る（例えば、組織の名称および／または組織の簡単な説明などのグループの説明が、グループ識別子に関連付けられ得る）。
【００４４】
グループベース通信システムのユーザが、通信チャネル（例えばグループベース通信チャネル）に参加することができ、または通信チャネルを作成することができる。いくつかのグループベース通信チャネルが、ユーザプロファイルに関連付けられた特定の組織グループ識別子を有するユーザ（すなわち、組織のメンバーであるユーザ）にとってグローバルにアクセス可能であり得る。いくつかのグループベース通信チャネルへのアクセスは、指定されたグループのメンバーに制限することができ、それにより、グループベース通信チャネルは、ユーザプロファイルに関連付けられた特定のグループ識別子を有するユーザにとってアクセス可能である。グループベース通信チャネル識別子は、メッセージに対するアクセス制御を容易にするために使用され得る（例えば、検索クエリに応答する検索結果の一部としてメッセージ返信を有するなど、メッセージへのアクセスが、ユーザプロファイルに関連付けられたグループベース通信チャネル識別子を有するユーザ、またはグループベース通信チャネルに参加する能力を有するユーザに制限され得る）。グループベース通信チャネル識別子は、メッセージのコンテキストを決定するために使用され得る（例えば、グループベース通信チャネルにおいて議論されるプロジェクトの説明など、グループベース通信チャネルの説明が、グループベース通信チャネル識別子に関連付けられ得る）。グループベース通信チャネルが、グループベース通信インタフェースに表示され得る、グループベース通信チャネルに関連付けられた名称（グループベース通信チャネル名）を有することができ、それにより、クライアントデバイスを有するユーザが、表示された名称を選択するためにインタフェースとインタラクトし得るようになっている。
【００４５】
用語「プライベートグループベース通信チャネル」は、一般的にグループベース通信システムの他のメンバーによってアクセス可能および／または検索可能とならないようにアクセスが制限されたグループベース通信チャネルを指す。例えば、プライベートグループベース通信チャネルの情報およびプライベートグループベース通信チャネルにアクセスする権限（例えば、ユーザが検証／認証された後にプライベートグループベース通信チャネル用のグループベース通信チャネル識別子が、ユーザプロファイルに関連付けられる）を有するユーザまたは管理者のみが、プライベートグループベース通信チャネルのコンテンツを閲覧し得る。
【００４６】
特定の実施形態を参照して本明細書で説明する「グループベース通信サーバ」または「リモートサーバ」は、（例えば、インタフェースコンピューティングエンティティを介して）クライアントデバイス間でオブジェクト更新および／または他のメッセージを受信および／または発信するために、様々なクライアントデバイスとインタラクトするように構成されたコンピューティングデバイスである。グループベース通信サーバが、（例えば、関連するクライアントデバイスを介して）ユーザから受信されたメッセージおよび／またはユーザに発信されたメッセージを受信、生成、（関連するデータベースに）記憶、および／または誘導するように構成され得る。グループベース通信サーバの機能は、共通の機能を有する単一のサーバまたはサーバ群によって提供されてもよく、またはグループベース通信サーバの機能は、グループベース通信サーバの記述した機能の部分集合を実行する複数のサーバまたはサーバ群の間でセグメント化されてもよい。
【００４７】
グループベース通信サーバまたはリモートサーバは、様々なクライアントデバイスとの接続セッションを維持するように構成され得る。具体的には、１つ以上のサーバが、グループベース通信プラットフォームのグループベース通信サーバとそれぞれのクライアントデバイスとの間でメッセージ（例えばオブジェクト更新）および対応するメタデータ（例えば、オブジェクト識別子を含む）をリアルタイムで送信するために、複数のクライアントデバイスのそれぞれによって開始されたウェブソケットコネクション（例えば、アクティブなウェブソケットコネクション）を維持するように構成され得る。
【００４８】
用語「サーバプッシュベースの通信コネクション」は、情報の送信要求がサーバまたはパブリッシャによって開始されるネットワークコネクションを指す。実施形態では、「サーバプッシュベースの通信コネクション」が、クライアントデバイスによって事前にサーバに対して表明された情報選好に基づくものであり得る。実施形態では、サーバプッシュベースの通信コネクションがまた、クライアントデバイスに関連付けられたユーザ識別子に関連付けられた情報に基づくものであり得る。実施形態では、クライアントデバイスが、特定のオブジェクト識別子に関連付けられたイベントをサブスクライブし、それにより、特定のオブジェクト識別子のための更新オブジェクトデータが利用可能である（すなわち、イベントが発生した）場合に常に、サーバが更新オブジェクトデータをクライアントデバイスにプッシュする。
【００４９】
用語「クライアントプルベースの通信コネクション」は、情報の送信要求がクライアントデバイスまたは要求者によって開始され、サーバまたはパブリッシャによって応答される、ネットワークコネクションを指す。
【００５０】
用語「リアルタイム」は、コンピューティングアプリケーションにアクセスしているユーザによって要求されると迅速に応答するコンピューティングアプリケーションを記述するために使用される。例えば、リアルタイムメッセージングが、送信側クライアントデバイスから受信側クライアントデバイスへのメッセージのリアルタイムまたはライブ送信を提供するグループベース通信インタフェースを備え得る。「リアルタイム」が、コンピューティングの制約内で「過度の遅延なしに」または「可能な限り瞬時に」と見なされ得ることが理解されよう。
【００５１】
用語「ユーザインタラクション入力」は、クライアントデバイスに通信可能に結合された入力デバイスとのユーザインタラクションの結果としてクライアントデバイスによって受けられる入力を指す。例えば、ユーザインタラクション入力が、マウスクリックおよび／またはタッチスクリーン選択を含み得る。
【００５２】
用語「電子インタラクション」は、ユーザインタラクション入力の電子的な表現を指す。例えば、マウスクリックの形式のユーザインタラクションが、タイムスタンプ、オブジェクト識別子、およびインタラクション形式（例えば、選択／クリック）によって表され得る。
【００５３】
用語「テールデータペイロード」は、オブジェクト識別子に関連付けられ、かつテールデータペイロードのポーリング要求に関連付けられたタイムスタンプよりも前のタイムスタンプに関連付けられた、複数のデータレコードを指す。例えば、テールデータペイロードが、オブジェクト識別子（例えばグループベース通信チャネル識別子）に関連付けられた、既定数（例えば、Ｎ、２０など）の「最近の」オブジェクトイベント（例えば、メッセージ、リアクション、編集、削除）を表し得る。
【００５４】
用語「インタラプト」は、ネットワーク／通信コネクションの障害を指す。
【００５５】
用語「ポーリング要求」は、クライアントデバイスによってグループベース通信サーバからデータを取得するための、クライアントデバイスからグループベース通信サーバに送信されるメッセージを指す。例では、ポーリング要求が、オブジェクト識別子、クライアントデバイス識別子、およびタイムスタンプを含み得る。
【００５６】
用語「テールデータペイロードの部分集合」は、テールデータペイロードに含まれるデータの部分集合を指す。
【００５７】
用語「更新コンテンツ識別子」は、更新コンテンツのインスタンスのデジタル表現を指す。例えば、更新コンテンツ識別子が、タイムスタンプ、単調に増分される修正番号、およびコンテンツまたはコンテンツハッシュの一方から導出された識別子であり得る。更新コンテンツ識別子は、コンテンツの変更が生じたことをクライアントデバイスに示すことが理解されよう。
【００５８】
用語「タイムスタンプ」は、特定の発生に関連付けられたネットワーク時間における、ポーリング要求またはメッセージ送信などのインスタンスのデジタル表現を指す。例えば、タイムスタンプが以下：「<timestamp+2020-12-31 23:59:59+</timestamp>」のようになり得る。実施形態では、タイムスタンプがウォールクロック（例えば、２０２０−１２−３１）に関連する。実施形態では、タイムスタンプが、変更の比較（すなわち、より古い変更またはより新しい変更）をサポートする単調に増加する識別子（例えば、インスタンスが一意に識別され得る１つ以上のデータ項目）である。実施形態では、タイムスタンプが、インスタンスまたはコンテンツの発生が以前のインスタンスまたは発生とは異なることを表すコンテンツアドレス識別子（例えば、コンテンツの変更が一意に識別され得る１つ以上のデータ項目）である。
【００５９】
ウォールクロックに関連するタイムスタンプ、および単調に増加する識別子であるタイムスタンプが、時間の経過によってデータが更新されたことをクライアントデバイスに示すことが理解されよう。コンテンツアドレス識別子としてのタイムスタンプは、時間の経過によってデータが異なっていることをクライアントデバイスに示すことがさらに理解されよう。上述のタイムスタンプの全ての例の１つまたは組み合わせが、任意の時点または任意のモジュールにて本開示の実施形態に使用され得ることが理解されよう。
【００６０】
用語「ポーリング要求タイムスタンプ」は、特定のポーリング要求がクライアントデバイスによって送信された時、またはグループベース通信サーバによって受信された時に関連付けられたタイムスタンプを指す。
【００６１】
用語「レコード」は、特定のオブジェクト識別子に関連付けられたオブジェクトデータを含むデータ構造を指す。実施形態では、オブジェクトデータは、タイムスタンプに関連付けられる。実施形態では、レコードは、タイムスタンプに関連付けられる。
【００６２】
用語「マウスクリック」は、通信可能に結合されたハンドヘルド式ポインティングデバイスからクライアントデバイスによって受けられた入力を指す。実施形態では、マウスクリックが、グループベース通信インタフェースに表示された複数のオブジェクトのうちの１つの電子的選択を示す。実施形態では、マウスクリックが、１つ以上のオブジェクト識別子に関連付けられる。
【００６３】
用語「タッチスクリーン選択」は、クライアントデバイスの電子視覚表示装置に重ねられた入力デバイス（例えば画面）からクライアントデバイスによって受けられた入力を指す。実施形態では、タッチスクリーン選択が、グループベース通信インタフェースのオブジェクトが表示されている画面の「タッチ」を示す。実施形態では、タッチスクリーン選択が、１つ以上のオブジェクト識別子に関連付けられる。
【００６４】
用語「ウェブＡＰＩ」は、グループベース通信プラットフォームと、グループベース通信プラットフォームにアクセスしているクライアントまたは他のデバイスとの間でインタラクションが生じる定義された一連のインタフェースを指す。例では、ウェブＡＰＩが、ハイパーテキスト転送プロトコル（ＨＴＴＰ）要求メッセージなどの一連の仕様と、例えば、ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）形式の一連の応答メッセージである。
【００６５】
用語「ＨＴＴＰ要求」は、クライアントデバイスによってグループベース通信サーバからデータを取得するための、クライアントデバイスからグループベース通信サーバに送信されるＨＴＴＰメッセージを指す。実施形態では、ＨＴＴＰ要求は、ＧＥＴまたはＰＯＳＴ要求であり得る。
【００６６】
特定の実施形態では、インタフェースコンピューティングエンティティおよび／またはメッセージ配信サーバの１つ以上が、例えば、１つ以上のコンピューティングエンティティに地理的に近接するクライアントデバイスにサービスを提供するために、地理的に分散され得る。しかし、特定の実施形態では、（インタフェースコンピューティングエンティティおよび／またはメッセージ配信サーバを含む）様々なコンピューティングエンティティが、一元的に配置され得る。
【００６７】
［システムアーキテクチャの例］
本発明の方法、装置、およびコンピュータプログラム製品は、様々なデバイスのいずれかによって実施することができる。例えば、実施形態の例の方法、装置、およびコンピュータプログラム製品は、１つ以上のクライアントデバイスなどの１つ以上のデバイスと通信するように構成された、サーバまたは他のネットワークエンティティなどのネットワークデバイスによって実施することができる。いくつかの好ましい非限定的な実施形態では、コンピューティングデバイスは、パーソナルコンピュータまたはコンピュータワークステーションなどの固定型のコンピューティングデバイスを含み得る。またさらに、実施形態の例は、携帯型デジタルアシスタント（ＰＤＡ）、携帯電話、スマートフォン、ラップトップコンピュータ、タブレットコンピュータ、ウェアラブル機器、または前述のデバイスの任意の組み合わせなど、様々なモバイルデバイスのいずれかによって実施することができる。
【００６８】
図１は、本発明の実施形態が機能し得るコンピューティングシステムの例を示す。ユーザは、クライアントデバイス１０１Ａ〜１０１Ｎを用いて通信ネットワーク１０４を介してグループベース通信プラットフォーム１０５にアクセスし得る。
【００６９】
通信ネットワーク１０４は、例えば、有線または無線のローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、ワイドエリアネットワーク（ＷＡＮ）その他を含む、有線または無線の通信ネットワークと、それを実装するために必要な任意のハードウェア、ソフトウェア、および／またはファームウェア（例えばネットワークルータなど）とを含み得る。例えば、通信ネットワーク１０４は、携帯電話、８０２．１１、８０２．１６、８０２．２０、および／またはＷｉＭａｘのネットワークを含み得る。さらに、通信ネットワーク１０４は、インターネットなどのパブリックネットワーク、イントラネットなどのプライベートネットワーク、またはそれらの組み合わせを含むことができ、非限定的にＴＣＰ／ＩＰベースのネットワークプロトコルを含む、現在利用可能であるか、または後に開発される、様々なネットワークプロトコルを利用し得る。本明細書で説明するように、ネットワークプロトコルは、ウェブソケット通信によってデータ伝送を可能にするように構成されている。例えば、ネットワークプロトコルは、グループベース通信システムのニーズに合わせてカスタマイズされ得る。いくつかの実施形態では、プロトコルは、ウェブソケットチャネルによって送信されるＪＳＯＮオブジェクトのカスタムプロトコルである。いくつかの実施形態では、データが、ＪＳＯＮ  ｏｖｅｒ  ＲＰＣ、ＪＳＯＮ  ｏｖｅｒ  ＲＥＳＴ／ＨＴＴＰその他の複数のプロトコルによって伝送され得る。
【００７０】
図示の実施形態では、グループベース通信プラットフォーム１０５は、複数のグループベース通信リポジトリ１０７と、通信ネットワーク１０３を介してアクセス可能な複数のグループベース通信サーバ１０６＿１〜１０６Ｎとを含む。集合的に、グループベース通信サーバ１０６＿１〜１０６Ｎは、１つ以上のクライアントデバイス１０１Ａ〜１０１Ｎから送信されたメッセージを受信し、（該当する場合に）オブジェクト更新を示すメッセージを生成および／または受信し、適切なクライアントデバイス１０１Ａ〜１０１Ｎにメッセージを送信するように構成されている。
【００７１】
クライアントデバイス１０１Ａ〜１０１Ｎは、上で定義したような任意のコンピューティングデバイスであり得る。グループベース通信サーバ１０６＿１〜１０６Ｎとクライアントデバイス１０１Ａ〜１０１Ｎとの間で交換される電子メッセージデータが、様々な形式および様々な方法で提供され得る。
【００７２】
いくつかの好ましい非限定的な実施形態では、クライアントデバイス１０１Ａ〜１０１Ｎの１つ以上が、スマートフォンまたはタブレットなどのモバイルデバイスである。１つ以上のクライアントデバイスは、「アプリ」または他の実行可能なローカル処理インスタンスを実行して、グループベース通信サーバ１０６＿１〜１０６Ｎとインタラクトし得る。そのようなアプリは典型的に、スマートフォンまたはタブレットなどのモバイルデバイス上で実行されるように設計されている。例えば、ｉＯＳ（登録商標）、Ａｎｄｒｏｉｄ（登録商標）、またはＷｉｎｄｏｗｓ（登録商標）などのモバイルデバイスオペレーティングシステム上で実行されるアプリが提供され得る。これらのプラットフォームは典型的に、アプリが互いに通信でき、またモバイルデバイスの特定のハードウェア構成要素およびソフトウェア構成要素と通信できるようにする、フレームワークを提供する。例えば、名前を挙げたモバイルオペレーティングシステムはそれぞれ、ロケーションサービス回路、有線および無線のネットワークインタフェース、ユーザの連絡先、ならびに他のアプリケーションとインタラクトするためのフレームワークを提供する。アプリの外部で実行されるハードウェアモジュールおよびソフトウェアモジュールとの通信が典型的に、モバイルデバイスオペレーティングシステムによって提供されるアプリケーションプログラミングインタフェース（ＡＰＩ）を介して提供される。このように、クライアントデバイス１０１Ａ〜１０１Ｎ上で実行されるアプリによって、これらのクライアントデバイス１０１Ａ〜１０１Ｎは、１つ以上のウェブソケットコネクションまたは他の通信コネクションを介してグループベース通信プラットフォーム１０５と通信するように構成されている。
【００７３】
いくつかの好ましい非限定的な実施形態では、クライアントデバイス１０１Ａ〜１０１Ｎは、ウェブブラウザによってグループベース通信サーバ１０６＿１〜１０６Ｎとインタラクトし得る。クライアントデバイス１０１Ａ〜１０１Ｎはまた、グループベース通信サーバ１０６＿１〜１０６Ｎとインタラクトするように設計された様々なハードウェアまたはファームウェアを含み得る。重ねて、クライアントデバイス１０１Ａ〜１０１Ｎのブラウザによって、クライアントデバイス１０１Ａ〜１０１Ｎは、１つ以上のウェブソケットコネクションまたは他の通信コネクションを介してグループベース通信プラットフォーム１０５と通信するように構成されている。
【００７４】
例示的なグループベース通信プラットフォーム１０５のいくつかの実施形態では、メッセージまたはメッセージング通信が、クライアントデバイス１０１Ａ〜１０１Ｎからグループベース通信プラットフォーム１０５に送信され得る。様々な実装では、メッセージが、クライアントデバイス１０１Ａ〜１０１Ｎの１つによって直接、通信ネットワーク１０４を介してグループベース通信プラットフォーム１０５に送信され得る。メッセージは、メッセージサーバおよび／またはその他の中継を介してグループベース通信プラットフォーム１０５に送信され得る。例えば、クライアントデバイス１０１Ａ〜１０１Ｎは、クライアントアプリケーション（例えばグループベース通信アプリ）が実行されている、デスクトップ、ラップトップ、タブレット、スマートフォン、および／またはその他であり得る。一実装では、メッセージは、メッセージ識別子、送信側ユーザ識別子、グループ識別子、グループベース通信チャネル識別子、メッセージコンテンツ（例えば、テキスト、絵文字、画像、リンク）、添付ファイル（例えばファイル）、メッセージ階層データ（例えば、メッセージは、別のメッセージへの返信であり得る）、サードパーティメタデータ、および／またはその他などのデータを含み得る。一実施形態では、クライアントデバイス１０１Ａ〜１０１Ｎは、以下のメッセージの例を実質的に、以下に提示するような拡張マークアップ言語（「ＸＭＬ」）書式化データを含む（セキュアな）ハイパーテキスト転送プロトコル（「ＨＴＴＰ（Ｓ）」）ＰＯＳＴメッセージの形式で提供し得る。
2021515504.tif 000003
【００７５】
2021515504.tif 000004
【００７６】
2021515504.tif 000005
【００７７】
2021515504.tif 000006
【００７８】
図示の実施形態では、グループベース通信プラットフォーム１０５は、チャネル識別子および／またはグループ識別子によって識別されるチャネル内の複数のクライアントデバイス１０１Ａ〜１０１Ｎとの間で送信されるメッセージをおよび／または複数のクライアントデバイスに送信されるメッセージを受信および／または発信するように、かつ通信チャネルのメンバーシップを集合的に形成するクライアントデバイス１０１Ａ〜１０１Ｎの間でのそれらのメッセージの発信を容易にするように構成された、複数のグループベース通信サーバ１０６＿１〜１０６Ｎを備える。
【００７９】
いくつかの実施形態では、上で定義したオブジェクト識別子が、特定のメッセージが特定のオブジェクトに関連するオブジェクト更新として実施されていることを示すためにメッセージに関連付けられ得る。
【００８０】
いくつかの実施形態では、応答を示すデータが、メッセージに関連付けられ得る。例えば、メッセージへの他のユーザによる応答が、リアクション（例えば、メッセージに関連付けられた絵文字の選択、メッセージに関連付けられた「いいね」ボタンの選択）、メッセージに埋め込まれたハイパーリンクのクリック、メッセージへの返信（例えば、メッセージに応答してグループベース通信チャネルインタフェースにメッセージを投稿すること）、メッセージに関連付けられたファイルのダウンロード、あるグループベース通信チャネルから別のグループベース通信チャネルへのメッセージの共有、メッセージのピン止め、メッセージの星付け、および／またはその他を含み得る。一実装では、メッセージへの他のユーザによる応答に関するデータが、メッセージに含まれてよく、メッセージは、応答を決定するために（例えば、ＰＨＰコマンドを用いて）解析され得る。別の実装では、メッセージへの応答に関するデータが、データベースから取得され得る。例えば、メッセージへの応答に関するデータが、以下のようなＭｙＳＱＬデータベースコマンドによって取得され得る。
2021515504.tif 000007
【００８１】
例えば、メッセージへの応答に関するデータが、メッセージのコンテキスト（例えば、あるユーザの観点によるメッセージのソーシャルスコア）を決定するために使用され得る。別の例では、メッセージへの応答に関するデータが、ユーザに関するコンテキストを決定するために分析され得る（例えば、トピックにおけるユーザの専門知識が、トピックに関するユーザのメッセージへの応答に基づいて決定され得る）。
【００８２】
実施形態では、添付ファイルが、メッセージに含まれ得る。添付ファイルがある場合には、ファイルをメッセージに関連付けることができ、これらのファイルは、特定の実施形態では、対応するオブジェクト識別子を有するオブジェクトとして別個に識別され得る。一実装では、メッセージは、添付ファイルのファイル名を決定するために（例えば、ＰＨＰコマンドを用いて）解析され得る。例えば、ファイルコンテンツが、メッセージのコンテキストを決定するために分析され得る（例えば、特許方針の文書が、メッセージがトピック「特許」に関連付けられることを示し得る）。
【００８３】
実施形態では、会話プリミティブが、メッセージに関連付けられ得る。一実装では、会話プリミティブが、メッセージの分析、インデクス化、記憶、および／またはその他に使用される要素である。例えば、メッセージは、それ自体で分析することができ、それ独自の会話プリミティブを形成し得る。別の例では、メッセージは、会話を構成する他のメッセージと共に分析することができ、会話を構成するメッセージは、会話プリミティブを形成し得る。一実装では、会話プリミティブは、メッセージ、指定された数（例えば２個）の前のメッセージ、および指定された数（例えば２個）の後のメッセージとして決定され得る。別の実装では、会話プリミティブは、メッセージおよび（例えばチャネル内の）他のメッセージにおいて議論されるトピック、ならびに／またはこれらのメッセージの近接性（例えば、メッセージ送信順序の近接性、メッセージ送信時間の近接性）の分析に基づいて決定され得る。
【００８４】
実施形態では、上述のように決定された様々なメタデータ、および／またはメッセージコンテンツが、（例えば、会話プリミティブを用いて）メッセージをインデクス化するために、かつ／または様々な検索のファセット（すなわち、グループベース通信サーバ１０６＿１〜１０６Ｎから結果を返す検索クエリ）を容易にするために使用され得る。メッセージに関連付けられたメタデータを決定することができ、メッセージは、グループベース通信サーバ１０６＿１〜１０６Ｎにおいてインデクス化され得る。一実施形態では、メッセージは、会社のメッセージとグループのメッセージとが、（例えば、グループおよび／または会社に関連付けられ、他のグループおよび／または会社と共有されない別個のインデクスで）別個にインデクス化されるように、インデクス化され得る。一実装では、メッセージが、（例えば、セキュリティ目的のデータ分離を容易にするために）別個の分散リポジトリにてインデクス化され得る。メッセージに関連付けられた添付ファイルがある場合、関連付けられたファイルのファイルコンテンツが、そのようなファイルの検索を容易にするようにインデクス化するために、グループベース通信サーバ１０６＿１〜１０６Ｎにおいて使用され得る。一実施形態では、ファイルは、会社のファイルまたはグループのファイルが別個の分散リポジトリにてインデクス化されるように、インデクス化され得る。
【００８５】
１つ以上のクライアントデバイス１０１Ａ〜１０１Ｎとグループベース通信プラットフォーム１０５との間における電子情報交換の例について、図１を参照して以下に記述する。
【００８６】
図１に示すように、グループベース通信プラットフォーム１０５は、個々のクライアントデバイス１０１Ａ〜１０１Ｎが、様々なメッセージを互いに交換すること、および／またはグループベース通信プラットフォーム１０５から発信されたオブジェクト更新を取得することを可能にする。そのようなメッセージを交換するために、個々のクライアントデバイス１０１Ａ〜１０１Ｎが、通信プロトコルによって（例えば、ウェブソケット、非ＲＴＭ（非リアルタイムメッセージング）プロトコル、および／またはその他によって）メッセージ（例えば、テキストベースのメッセージ、ファイル、ビデオおよび／またはオーディオストリーム、および／またはその他）を送信する。それらのメッセージは、最終的に１つ以上のグループベース通信サーバ１０６＿１〜１０６Ｎに提供され、グループベース通信サーバは、メッセージをインデクス化し、それらのメッセージをメッセージの意図された受信者（例えばクライアントデバイス１０１Ａ〜１０１Ｎ）に配信する。オブジェクト更新が同様に、グループベース通信サーバ１０６＿１〜１０６Ｎに提供されるが、そのようなオブジェクト更新は、クライアントデバイス１０１Ａ〜１０１Ｎから送出され得ない。代わりに、オブジェクト更新が、１つ以上の外部システム（例えばファイル管理システム）から提供されてもよく、またはオブジェクト更新は、グループベース通信プラットフォーム１０５内の１つ以上のコンピューティングエンティティによって生成されてもよい。配信メッセージは、グループベース通信サーバ１０６＿１〜１０６Ｎによって受信側クライアントデバイス１０１Ａ〜１０１Ｎに提供され、グループベース通信サーバは、メッセージの個々の受信側クライアントデバイス１０１Ａ〜１０１Ｎとのウェブソケットコネクションを維持する。
【００８７】
図１の実施形態によれば、クライアントデバイス１０１Ａ〜１０１Ｎは、受信されたメッセージを、クライアントデバイス１０１Ａ〜１０１Ｎのユーザが利用可能なコンテキスト関連ユーザインタフェースに表示するように構成されている。例えば、グループベース通信チャネルの一部である第１のクライアントデバイス１０１から送信されたメッセージが、グループベース通信チャネルの他のメンバーに関連付けられたクライアントデバイス１０１Ａ〜１０１Ｎ上のユーザインタフェース表示ウィンドウに表示される。本明細書で説明するように、特定のオブジェクト更新を示すメッセージが、それらのメッセージを、適切なユーザ表示要素などの適切なコンテキストと共におよび／または該当するオブジェクトに関連付けて表示するために、受信側クライアントデバイス１０１Ａ〜１０１Ｎによって使用可能なオブジェクト識別子と共に送信される。その上、オブジェクト識別子は、本明細書で説明するようなオブジェクトサブスクリプションに基づく特定のクライアントデバイス１０１Ａ〜１０１Ｎ宛てのメッセージをフィルタリングするために、グループベース通信サーバ１０６＿１〜１０６Ｎの様々なサーバによって使用可能であり得る。
【００８８】
個々のクライアントデバイス１０１Ａ〜１０１Ｎにメッセージを配信するために、メッセージは、クライアントデバイス１０１Ａ〜１０１Ｎのそれぞれに宛てられた全てのメッセージを誘導し、それらのメッセージの全てを適切なコネクション（例えば、ウェブソケットコネクションまたは非ＲＴＭコネクション）によってクライアントデバイス１０１Ａ〜１０１Ｎに送信する、グループベース通信サーバ１０６＿１〜１０６Ｎから送信される。
【００８９】
［様々な実施形態によって利用される装置の例］
各グループベース通信サーバ１０６は、図２Ａに示す装置２００などの１つ以上のコンピューティングシステムによって実施することができる。装置２００は、プロセッサ２０２、メモリ２０４、入力／出力回路２０６、通信回路２０８、およびグループベース通信回路２１０を含み得る。装置２００は、本明細書に記述する動作を実行するように構成され得る。これらの構成要素２０２〜２１０については、機能的な限定事項に関して記述するが、特定の実装は、特定のハードウェアの使用を必ず含むものと理解されたい。また、これらの構成要素２０２〜２１０のいくつかが類似または共通のハードウェアを含み得ることを理解されたい。例えば、２組の回路が共に、各組の回路のために重複するハードウェアが必要とされないように、それらの関連する機能を実行するために同一のプロセッサ、ネットワークインタフェース、ストレージ媒体その他を活用し得る。
【００９０】
いくつかの実施形態では、プロセッサ２０２（および／またはコプロセッサ、もしくはプロセッサを支援するかもしくはプロセッサに関連付けられた任意の他の処理回路）は、装置の構成要素間で情報を渡すためのバスを介してメモリ２０４と通信し得る。メモリ２０４は、非一時的なものであり、例えば、１つ以上の揮発性および／または不揮発性のメモリを含み得る。言い換えると、例えば、メモリ２０４は、電子記憶装置（例えばコンピュータ可読ストレージ媒体）であり得る。メモリ２０４は、本発明の実施形態の例に従って装置が様々な機能を実行することを可能にするための情報、データ、コンテンツ、アプリケーション、命令その他を記憶するように構成され得る。
【００９１】
プロセッサ２０２は、いくつかの異なる方法で実施することができ、例えば、独立して動作するように構成された１つ以上の処理装置を含み得る。いくつかの好ましい非限定的な実施形態では、プロセッサ２０２は、命令、パイプライン、および／またはマルチスレッドの独立した実行を可能にするようにバスを介して並列に構成された１つ以上のプロセッサを含み得る。用語「処理回路」の使用は、装置内部のシングルコアプロセッサ、マルチコアプロセッサ、マルチプロセッサ、および／またはリモートプロセッサすなわち「クラウド」プロセッサを含むものと理解され得る。
【００９２】
いくつかの好ましい非限定的な実施形態では、プロセッサ２０２は、メモリ２０４に記憶されている命令またはプロセッサ２０２がアクセス可能な命令を実行するように構成され得る。いくつかの好ましい非限定的な実施形態では、プロセッサ２０２は、ハードコードされた機能を実行するように構成され得る。このように、ハードウェアもしくはソフトウェアの方法またはそれらの組み合わせによって構成されているかにかかわらず、プロセッサ２０２は、適宜に構成され、本発明の実施形態による動作を実行し得る、（例えば、回路に物理的に実施された）エンティティを表し得る。代わりに、別の例として、プロセッサ２０２がソフトウェア命令の実行器として実施される場合、命令は、命令が実行されると、本明細書に記述したアルゴリズムおよび／または動作を実行するようにプロセッサ２０２を具体的に構成してもよい。
【００９３】
単なる一例として、プロセッサ２０２は、複数のクライアントデバイス１０１Ａ〜１０１Ｎを接続する１つ以上の通信チャネルを、クライアントデバイスの間でのメッセージ共有／発信を可能にするように維持するように構成され得る。プロセッサ２０２は、特定の通信チャネル内のクライアントデバイス１０１Ａ〜１０１Ｎ間で交換することを意図したメッセージが、クライアントデバイス１０１Ａ〜１０１Ｎによって提供されるそれぞれの表示ウィンドウ内に表示するために、それらのクライアントデバイス１０１Ａ〜１０１Ｎに適切に発信されることを保証する。
【００９４】
その上、プロセッサ２０２は、特定の通信チャネル上で交換されるメッセージを、プロセッサにおいてメッセージを記憶および／またはインデクス化するためのデータベースと同期するように構成され得る。特定の実施形態では、プロセッサ２０２は、記憶および／またはインデクス化されたメッセージを、クライアントデバイス１０１Ａ〜１０１Ｎに発信するためのインタフェースコンピューティングエンティティ１０９に提供し得る。
【００９５】
いくつかの実施形態では、装置２００は、ユーザに出力を提供するために、いくつかの実施形態では、またユーザ入力の指示を受けるために、プロセッサ２０２と通信し得る入力／出力回路２０６を含み得る。入力／出力回路２０６は、ユーザインタフェースを備えてもよく、ディスプレイを含んでもよく、ウェブユーザインタフェース、モバイルアプリケーション、クライアントデバイス、キオスクその他を備えてもよい。いくつかの実施形態では、入力／出力回路２０６はまた、キーボード、マウス、ジョイスティック、タッチスクリーン、タッチ領域、ソフトキー、マイク、スピーカ、または他の入力／出力機構を含み得る。プロセッサおよび／またはプロセッサを備えるユーザインタフェース回路は、プロセッサがアクセス可能なメモリ（例えば、メモリ２０４および／またはその他）に記憶されたコンピュータプログラム命令（例えば、ソフトウェアおよび／またはファームウェア）によって１つ以上のユーザインタフェース要素の１つ以上の機能を制御するように構成され得る。
【００９６】
通信回路２０８は、装置２００と通信するネットワークおよび／または任意の他のデバイス、回路、もしくはモジュールとの間でデータを送受信するように構成され、ハードウェアまたはハードウェアとソフトウェアとの組み合わせのいずれかで実施された、デバイスまたは回路などの任意の手段であり得る。この点に関して、通信回路２０８は、例えば、有線または無線の通信ネットワークとの通信を可能にするためのネットワークインタフェースを含み得る。例えば、通信回路２０８は、１つ以上のネットワークインタフェースカード、アンテナ、バス、スイッチ、ルータ、モデム、ならびに支援ハードウェアおよび／もしくはソフトウェア、またはネットワークを介した通信を可能にするのに適した任意の他のデバイスを含んでもよい。加えてまたは代わりに、通信回路２０８は、１つ以上のアンテナとインタラクトして、１つ以上のアンテナを介して信号を送信するための、または１つ以上のアンテナを介して受信される信号の受信を処理するための回路を含み得る。
【００９７】
グループベース通信回路２１０は、分割データベースに基づいて、１つ以上のクライアントデバイス１０１Ａ〜１０１Ｎから受信される電子メッセージおよび関連するメタデータを受信し、他のクライアントデバイス１０１Ａ〜１０１Ｎに配信するように構成されたハードウェアを含む。グループベース通信回路２１０は、プロセッサ２０２などの処理回路を利用して、これらのアクションを実行し得る。しかし、いくつかの実施形態では、グループベース通信回路２１０は、本明細書に記述する動作を実行するための、別個のプロセッサ、特別に構成されたフィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または特定用途向け集積回路（ＡＳＩＣ）を含み得ることも理解されたい。グループベース通信回路２１０は、これらの計画された機能を実装するためのハードウェアまたはソフトウェアのいずれかによって構成された、装置のハードウェア構成要素を用いて実装され得る。
【００９８】
また、本明細書で説明する情報の全てまたは一部は、装置２００の１つ以上の構成要素によって受信、生成および／または維持されるデータに基づくものであり得ることも留意されたい。いくつかの実施形態では、（リモートクラウドコンピューティングシステムおよび／またはデータストレージシステムなどの）１つ以上の外部システムがまた、本明細書で説明する機能の少なくとも一部を提供するために活用され得る。
【００９９】
図２Ｂの図示の実施形態では、クライアントデバイス１０１は、装置２２０を含む１つ以上のコンピューティングシステムによって実施されている。図示の装置２２０は、プロセッサ２１２、メモリ２１１、入力／出力回路２１３、および通信回路２１５を含む。装置２２０は、本明細書に記述する動作を実行するように構成され得る。これらの構成要素２１１、２１２、２１３、２１５については、機能的な限定事項に関して記述するが、特定の実装は、特定のハードウェアの使用を必ず含むものと理解されたい。また、これらの構成要素２１１、２１２、２１３、２１５のいくつかが類似または共通のハードウェアを含み得ることも理解されたい。例えば、２組の回路が共に、各組の回路のために重複するハードウェアが必要とされないように、それらの関連する機能を実行するために同一のプロセッサ、ネットワークインタフェース、ストレージ媒体その他を活用し得る。
【０１００】
いくつかの実施形態では、プロセッサ２１２（および／またはコプロセッサ、もしくはプロセッサを支援するかもしくはプロセッサに関連付けられた任意の他の処理回路）は、装置の構成要素間で情報を渡すためのバスを介してメモリ２１１と通信し得る。メモリ２１１は、非一時的なものであり、例えば、１つ以上の揮発性および／または不揮発性のメモリを含み得る。言い換えると、例えば、メモリ２１１は、電子記憶装置（例えばコンピュータ可読ストレージ媒体）であり得る。メモリ２１１は、本発明の実施形態の例に従って装置２２０が様々な機能を実行することを可能にするための情報、データ、コンテンツ、アプリケーション、命令その他を記憶するように構成され得る。例えば、メモリ２１１は、１つ以上のグループベース通信チャネル上で交換されるメッセージをキャッシュするように構成することができ、それにより、プロセッサ２１２は、（例えば、必要または要求に応じて）様々なメッセージをクライアントデバイスに提供し得る。
【０１０１】
プロセッサ２１２は、いくつかの異なる方法で実施することができ、例えば、独立して動作するように構成された１つ以上の処理装置を含み得る。いくつかの好ましい非限定的な実施形態では、プロセッサ２１２は、命令、パイプライン、および／またはマルチスレッドの独立した実行を可能にするようにバスを介して並列に構成された１つ以上のプロセッサを含み得る。
【０１０２】
いくつかの好ましい非限定的な実施形態では、プロセッサ２１２は、メモリ２１１に記憶された命令、またはプロセッサ２１２がアクセス可能な命令を実行するように構成され得る。いくつかの好ましい非限定的な実施形態では、プロセッサ２１２は、ハードコードされた機能を実行するように構成され得る。このように、ハードウェアもしくはソフトウェアの方法またはそれらの組み合わせによって構成されているかにかかわらず、プロセッサ２１２は、適宜に構成され、本発明の実施形態による動作を実行し得る、（例えば、回路に物理的に実施された）エンティティを表し得る。代わりに、別の例として、プロセッサ２１２がソフトウェア命令の実行器として実施される場合、命令は、命令が実行されると、本明細書に記述したアルゴリズムおよび／または動作を実行するようにプロセッサ２１２を具体的に構成してもよい。
【０１０３】
いくつかの実施形態では、装置２２０は、ユーザに出力を提供するために、いくつかの実施形態では、またユーザ入力の指示を受けるために、プロセッサ２１２と通信し得る入力／出力回路３０５を含み得る。入力／出力回路２１３は、ユーザインタフェースを備えてもよく、ディスプレイを含んでもよく、ウェブユーザインタフェース、モバイルアプリケーション、クライアントデバイス、キオスクその他を備えてもよい。いくつかの実施形態では、入力／出力回路２１３はまた、キーボード、マウス、ジョイスティック、タッチスクリーン、タッチ領域、ソフトキー、マイク、スピーカ、または他の入力／出力機構を含み得る。
【０１０４】
通信回路２１５は、装置２２０と通信するネットワークおよび／または任意の他のデバイス、回路、またはモジュールとの間でデータを送受信するように構成され、ハードウェアまたはハードウェアとソフトウェアとの組み合わせのいずれかで実施された、デバイスまたは回路などの任意の手段であり得る。この点に関して、通信回路２１５は、例えば、有線または無線の通信ネットワークとの通信を可能にするためのネットワークインタフェースを含み得る。例えば、通信回路２１５は、１つ以上のネットワークインタフェースカード、アンテナ、バス、スイッチ、ルータ、モデム、ならびに支援ハードウェアおよび／もしくはソフトウェア、またはネットワークを介した通信を可能にするのに適した任意の他のデバイスを含んでもよい。加えてまたは代わりに、通信回路２１５は、１つ以上のアンテナとインタラクトして、１つ以上のアンテナを介して信号を送信するための、または１つ以上のアンテナを介して受信される信号の受信を処理するための回路を含み得る。
【０１０５】
また、本明細書で説明する情報の全てまたは一部は、装置２２０の１つ以上の構成要素によって受信、生成および／または維持されるデータに基づくものであり得ることも留意されたい。いくつかの実施形態では、（リモートクラウドコンピューティングシステムおよび／またはデータストレージシステムなどの）１つ以上の外部システムがまた、本明細書で説明する機能の少なくとも一部を提供するために活用され得る。
【０１０６】
用語「回路」は、ハードウェアを含むものとして、いくつかの実施形態では、またハードウェアを構成するためのソフトウェアを含むものとして、広く理解されたい。したがって、各装置２００、２２０の構成要素に関して、本明細書で使用する用語「回路」は、本明細書に記述する特定の回路に関連付けられた機能を実行するように構成された特定のハードウェアを含むものとして理解されたい。例えば、いくつかの実施形態では、「回路」は、処理回路、ストレージ媒体、ネットワークインタフェース、入力／出力装置その他を含み得る。いくつかの実施形態では、装置２００の他の要素が、特定の回路の機能を提供または補足し得る。例えば、プロセッサ２０２は、処理機能を提供することができ、メモリ２０４は、ストレージ機能を提供することができ、通信回路２０８は、ネットワークインタフェース機能を提供し得るなどである。同様に、装置２２０の他の要素が、特定の回路の機能を提供または補足し得る。例えば、プロセッサ２１２は、処理機能を提供することができ、メモリ２１１は、ストレージ機能を提供し、通信回路２１５は、ネットワークインタフェース機能を提供し得るなどである。
【０１０７】
理解されるように、そのようないかなるコンピュータプログラム命令および／または他の形式のコードも、コンピュータ、プロセッサ、または他のプログラマブル装置の回路にロードされて、マシン上でコードを実行するコンピュータ、プロセッサ、または他のプログラマブル回路が本明細書に記述するものを含む様々な機能を実装するための手段を作成するようなマシンを作り出し得る。
【０１０８】
上述のように、また本開示に基づいて理解されるように、本発明の実施形態が、方法、モバイルデバイス、バックエンドネットワークデバイスその他として構成され得る。したがって、実施形態が、完全にハードウェアであるか、またはソフトウェアとハードウェアとの任意の組み合わせである、様々な手段を備え得る。さらに、実施形態が、ストレージ媒体内に実施されたコンピュータ可読プログラム命令（例えばコンピュータソフトウェア）を有する少なくとも１つの非一時性コンピュータ可読ストレージ媒体上のコンピュータプログラム製品の形態を取り得る。非一時性ハードディスク、ＣＤ−ＲＯＭ、フラッシュメモリ、光記憶装置、または磁気記憶装置を含む、任意の適切なコンピュータ可読ストレージ媒体が利用され得る。
【０１０９】
その上、図示しないが、グループベース通信プラットフォームの様々な実施形態が、様々なグループベース通信チャネル内で交換されるメッセージを記憶および／またはインデクス化するように構成された１つ以上のデータベースを備え得る。
【０１１０】
［データフローの例］
図３Ａおよび図３Ｂは、本開示の実施形態による、ほぼリアルタイムで更新されたオブジェクトデータをグループベース通信システム内で提供または維持するための例示的なデータフローを示す。
【０１１１】
実施形態では、クライアントデバイスが、グループベース通信インタフェースオブジェクトとの電子インタラクションを表すユーザインタラクション入力を受ける３０１。実施形態では、グループベース通信インタフェースオブジェクトとの電子インタラクションが、後続のグループベース通信インタフェースをレンダリングするための更新オブジェクトデータを必要とする。実施形態では、電子インタラクションが、１つ以上のオブジェクト識別子に関連付けられている。
【０１１２】
実施形態では、クライアントデバイス（例えば、１０１Ａ〜１０１Ｎ）が、第１のリモートサーバ（例えば、リアルタイムメッセージング通信用に構成されたグループベース通信サーバ）との第１の通信コネクション（例えば、アクティブなウェブソケットコネクション）を確立する３０２。実施形態では、第１のリモートサーバが、クライアントデバイスによってサブスクライブされ、グループベース通信インタフェースオブジェクトに関連付けられたイベントを表す更新オブジェクトデータをリアルタイムで送信するように構成されている。実施形態では、更新オブジェクトデータが、第１のリモートサーバからクライアントデバイスにプッシュされる。
【０１１３】
実施形態では、クライアントデバイスが、第２のリモートサーバ（例えば、リアルタイムメッセージング通信用に構成されていないグループベース通信サーバ）との第２の通信コネクション（例えば非ＲＴＭ）を確立する３０３。実施形態では、第２の通信コネクションが、クライアントプルベースの通信コネクションであり、クライアントデバイスによって、第２のリモートサーバからテールデータペイロードを要求および受信するように構成されている。
【０１１４】
実施形態では、クライアントデバイスが、第２のリモートサーバに、１つ以上のオブジェクト識別子を含むポーリング要求を送信する３０４。実施形態では、ポーリング要求が、１つ以上のオブジェクト識別子それぞれのためのテールデータペイロードの要求（例えば、ＨＴＴＰ  ＧＥＴ）を表している。
【０１１５】
実施形態では、クライアントデバイスが、要求されたテールデータペイロードを受信する３０５。
【０１１６】
実施形態では、クライアントデバイスが、１つ以上のオブジェクト識別子に関連付けられた更新オブジェクトデータをクライアントデバイスのローカルデータストレージに照会する３０６。１つ以上のオブジェクト識別子に関連付けられた更新オブジェクトデータが、ローカルデータストレージにおいて利用可能であるかまたは第１のリモートサーバから受信されている場合、クライアントデバイスが、テールデータペイロードを破棄する。
【０１１７】
更新オブジェクトデータが、ローカルデータストレージにおいて利用可能でないと判断する、かつ／または更新オブジェクトデータが、第１のリモートサーバから受信されていないと判断すると、クライアントデバイスが、第１の通信コネクションのインタラプトを検出する３０７。
【０１１８】
実施形態では、クライアントデバイスが、次いで、テールデータペイロードの部分集合を使用して、後続のグループベース通信インタフェースを表示のためにレンダリングする３０８。実施形態では、テールデータペイロードの部分集合が、電子インタラクションに関連付けられた必要とされる更新オブジェクトデータに基づいてテールデータペイロードから選択される。その場合、後続のグループベース通信インタフェースは、第１の通信コネクションの停止中またはインタラプト中に、最小レベルのサービスおよびデータ鮮度を提供する。
【０１１９】
実施形態では、テールデータペイロードのうちの第２のテールデータペイロードの部分集合が、後続のグループベース通信インタフェースにおける表示のために、更新コンテンツ識別子に関連付けられた更新オブジェクトデータの集合をレンダリングするために利用される。
【０１２０】
実施形態では、各オブジェクト識別子のテールデータペイロードが、Ｎ個のレコードを有する更新オブジェクトデータの集合を含み、各レコードが、ポーリング要求に関連付けられたポーリング要求タイムスタンプよりも前にレコードが作成されたことを示す更新コンテンツ識別子を有する。そのような実施形態では、テールデータペイロードは、オブジェクト識別子に関連付けられたオブジェクトに対するＮ個の最新の更新（例えば、チャネルに投稿された５０個の最新のメッセージ、メッセージへの１０個の最新のリアクション等）を表す。
【０１２１】
実施形態では、第１の通信コネクションが、アクティブなウェブソケットコネクションである。
【０１２２】
実施形態では、１つ以上のオブジェクト識別子が、グループベース通信チャネル識別子である。
【０１２３】
実施形態では、電子インタラクションが、表示されたグループベース通信チャネル名の選択である。例えば、グループベース通信インタフェースの領域との電子インタラクションが、グループベース通信チャネル識別子に関連付けられる。そのような例では、領域は、グループベース通信チャネル名を表すテキストのデジタル表示を含み得る。
【０１２４】
実施形態では、表示されたグループベース通信チャネル名の選択が、マウスクリックまたはタッチスクリーン選択の一方によって受けられる。
【０１２５】
実施形態では、ポーリング要求が、ウェブアプリケーションプログラミングインタフェース（ＡＰＩ）への要求メッセージの送信である。
【０１２６】
実施形態では、要求メッセージが、ハイパーテキスト転送プロトコル（ＨＴＴＰ）要求である。実施形態では、ＨＴＴＰ要求は、ＧＥＴまたはＰＯＳＴ要求であり得る。
【０１２７】
実施形態では、更新コンテンツ識別子が、タイムスタンプ、単調に増分される修正番号、およびコンテンツまたはコンテンツハッシュの一方から導出された識別子のうちの１つ以上を含む。
【０１２８】
［結論］
前述の説明および関連する図面に提示された教示の利益を有する、本開示に関係する当業者には、多くの変更および他の実施形態が思い浮かぶであろう。したがって、本開示が開示した特定の実施形態に限定されるものではなく、また、変更および他の実施形態が添付の特許請求の範囲内に含まれることが意図されることが理解されるべきである。具体的な用語を本明細書で用いているが、それらは、一般的かつ記述的な意味でのみ使用するものであり、限定する目的で使用されるものではない。
【図１】
2021515504.tif 000008
【図２Ａ】
2021515504.tif 000009
【図２Ｂ】
2021515504.tif 000010
【図３Ａ】
2021515504.tif 000011
【図３Ｂ】
2021515504.tif 000012
【手続補正書】
【提出日】令和2年10月20日(2020.10.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
グループベース通信システムにおいて最小のインタフェース機能を維持するための装置であって、少なくとも１つのプロセッサと、命令を記憶している少なくとも１つの非一時性ストレージ媒体とを備え、前記命令が、前記プロセッサによって実行されると、前記装置に、
グループベース通信インタフェースオブジェクトとの電子インタラクションを表すユーザインタラクション入力を受けることであって、前記グループベース通信インタフェースオブジェクトとの前記電子インタラクションが、後続のグループベース通信インタフェースをレンダリングするための更新オブジェクトデータを必要とし、前記電子インタラクションが、１つ以上のオブジェクト識別子に関連付けられている、ことと、
第１のリモートサーバとの第１の通信コネクションを確立することであって、前記第１のリモートサーバが、クライアントデバイスによってサブスクライブされ、グループベース通信インタフェースオブジェクトに関連付けられたイベントを表す更新オブジェクトデータをリアルタイムで送信するように構成されており、前記更新オブジェクトデータが、前記第１のリモートサーバから前記クライアントデバイスにプッシュされる、ことと、
第２のリモートサーバとの第２の通信コネクションを確立することであって、前記第２の通信コネクションが、クライアントプルベースの通信コネクションであり、前記クライアントデバイスによって、前記第２のリモートサーバからテールデータペイロードを要求および受信するように構成されている、ことと、
前記第２のリモートサーバにポーリング要求を送信することであって、前記ポーリング要求が、前記１つ以上のオブジェクト識別子を含み、前記ポーリング要求が、前記１つ以上のオブジェクト識別子それぞれのためのテールデータペイロードの要求を表している、ことと、
前記第２のリモートサーバから、前記１つ以上のオブジェクト識別子それぞれのための前記テールデータペイロードを受信することと、
前記１つ以上のオブジェクト識別子に関連付けられた更新オブジェクトデータをローカルデータストレージに照会することと、
前記１つ以上のオブジェクト識別子に関連付けられた前記更新オブジェクトデータが、前記クライアントデバイスのローカルデータストレージにおいて利用可能でなく、かつ前記１つ以上のオブジェクト識別子に関連付けられた前記更新オブジェクトデータが、前記第１のリモートサーバから受信されていないと判断すると、前記第１の通信コネクションのインタラプトを検出することと、
第１のテールデータペイロードの部分集合を使用して、前記後続のグループベース通信インタフェースを表示のためにレンダリングすることであって、前記第１のテールデータペイロードの部分集合が、前記電子インタラクションに関連付けられた必要とされる前記更新オブジェクトデータに基づいて前記テールデータペイロードから選択される、ことと、
を行わせる、装置。
【請求項２】
第２のテールデータペイロードの部分集合が、前記後続のグループベース通信インタフェースにおける表示のために、更新コンテンツ識別子に関連付けられた更新オブジェクトデータの集合をレンダリングするために利用される、請求項１記載の装置。
【請求項３】
更新コンテンツ識別子が、タイムスタンプ、単調に増分される修正番号、およびコンテンツまたはコンテンツハッシュの一方から導出された識別子のうちの１つ以上を含む、請求項２記載の装置。
【請求項４】
各オブジェクト識別子の前記テールデータペイロードが、Ｎ個のレコードを有する更新オブジェクトデータの集合を含み、各レコードが、前記ポーリング要求に関連付けられたポーリング要求タイムスタンプよりも前のタイムスタンプを有する、請求項１記載の装置。
【請求項５】
前記第１の通信コネクションが、アクティブなウェブソケットコネクションである、請求項１記載の装置。
【請求項６】
前記１つ以上のオブジェクト識別子が、グループベース通信チャネル識別子である、請求項１記載の装置。
【請求項７】
電子インタラクションが、表示されたグループベース通信チャネル名の選択である、請求項１記載の装置。
【請求項８】
前記表示されたグループベース通信チャネル名の前記選択が、マウスクリックまたはタッチスクリーン選択の一方によって受けられる、請求項１記載の装置。
【請求項９】
前記ポーリング要求が、ウェブアプリケーションプログラミングインタフェース（ＡＰＩ）への要求メッセージの送信である、請求項１記載の装置。
【請求項１０】
前記要求メッセージが、ハイパーテキスト転送プロトコル（ＨＴＴＰ）要求である、請求項９記載の装置。
【請求項１１】
グループベース通信システムにおいて最小のインタフェース機能を維持するための方法であって、
クライアントデバイスによって、グループベース通信インタフェースオブジェクトとの電子インタラクションを表すユーザインタラクション入力を受けることであって、前記グループベース通信インタフェースオブジェクトとの前記電子インタラクションが、後続のグループベース通信インタフェースをレンダリングするための更新オブジェクトデータを必要とし、前記電子インタラクションが、１つ以上のオブジェクト識別子に関連付けられている、ことと、
前記クライアントデバイスによって、第１のリモートサーバとの第１の通信コネクションを確立することであって、前記第１のリモートサーバが、前記クライアントデバイスによってサブスクライブされ、グループベース通信インタフェースオブジェクトに関連付けられたイベントを表す更新オブジェクトデータをリアルタイムで送信するように構成されており、前記更新オブジェクトデータが、前記第１のリモートサーバから前記クライアントデバイスにプッシュされる、ことと、
前記クライアントデバイスによって、第２のリモートサーバとの第２の通信コネクションを確立することであって、前記第２の通信コネクションが、クライアントプルベースの通信コネクションであり、前記クライアントデバイスによって、前記第２のリモートサーバからテールデータペイロードを要求および受信するように構成されている、ことと、
前記クライアントデバイスによって、前記第２のリモートサーバにポーリング要求を送信することであって、前記ポーリング要求が、前記１つ以上のオブジェクト識別子を含み、前記ポーリング要求が、前記１つ以上のオブジェクト識別子それぞれのためのテールデータペイロードの要求を表している、ことと、
前記クライアントデバイスによって、前記第２のリモートサーバから、前記１つ以上のオブジェクト識別子それぞれのための前記テールデータペイロードを受信することと、
前記クライアントデバイスによって、前記１つ以上のオブジェクト識別子に関連付けられた更新オブジェクトデータを前記クライアントデバイスのローカルデータストレージに照会することと、
前記クライアントデバイスによって、前記１つ以上のオブジェクト識別子に関連付けられた前記更新オブジェクトデータが、前記クライアントデバイスのローカルデータストレージにおいて利用可能でなく、かつ前記１つ以上のオブジェクト識別子に関連付けられた前記更新オブジェクトデータが、前記第１のリモートサーバから受信されていないと判断すると、前記第１の通信コネクションのインタラプトを検出することと、
前記クライアントデバイスによって、第１のテールデータペイロードの部分集合を使用して、前記後続のグループベース通信インタフェースを表示のためにレンダリングすることであって、前記第１のテールデータペイロードの部分集合が、前記電子インタラクションに関連付けられた必要とされる前記更新オブジェクトデータに基づいて前記テールデータペイロードから選択される、ことと、
を含む方法。
【請求項１２】
第２のテールデータペイロードの部分集合が、前記後続のグループベース通信インタフェースにおける表示のために、更新コンテンツ識別子に関連付けられた更新オブジェクトデータの集合をレンダリングするために利用される、請求項１１記載の方法。
【請求項１３】
更新コンテンツ識別子が、タイムスタンプ、単調に増分される修正番号、およびコンテンツまたはコンテンツハッシュの一方から導出された識別子のうちの１つ以上を含む、請求項１２記載の方法。
【請求項１４】
各オブジェクト識別子の前記テールデータペイロードが、Ｎ個のレコードを有する更新オブジェクトデータの集合を含み、各レコードが、前記ポーリング要求に関連付けられたポーリング要求タイムスタンプよりも前のタイムスタンプを有する、請求項１１記載の方法。
【請求項１５】
前記第１の通信コネクションが、アクティブなウェブソケットコネクションである、請求項１１記載の方法。
【請求項１６】
前記１つ以上のオブジェクト識別子が、グループベース通信チャネル識別子である、請求項１１記載の方法。
【請求項１７】
電子インタラクションが、表示されたグループベース通信チャネル名の選択である、請求項１１記載の方法。
【請求項１８】
前記表示されたグループベース通信チャネル名の前記選択が、マウスクリックまたはタッチスクリーン選択の一方によって受けられる、請求項１１記載の方法。
【請求項１９】
前記ポーリング要求が、ウェブアプリケーションプログラミングインタフェース（ＡＰＩ）への要求メッセージの送信である、請求項１１記載の方法。
【請求項２０】
前記要求メッセージが、ハイパーテキスト転送プロトコル（ＨＴＴＰ）要求である、請求項１９記載の方法。
【請求項２１】
命令を記憶している少なくとも１つの非一時性ストレージ媒体を備えるコンピュータプログラム製品であって、前記命令が、プロセッサによって実行されると、前記プロセッサに、
グループベース通信インタフェースオブジェクトとの電子インタラクションを表すユーザインタラクション入力を受けることであって、前記グループベース通信インタフェースオブジェクトとの前記電子インタラクションが、後続のグループベース通信インタフェースをレンダリングするための更新オブジェクトデータを必要とし、前記電子インタラクションが、１つ以上のオブジェクト識別子に関連付けられている、ことと、
第１のリモートサーバとの第１の通信コネクションを確立することであって、前記第１のリモートサーバが、クライアントデバイスによってサブスクライブされ、グループベース通信インタフェースオブジェクトに関連付けられたイベントを表す更新オブジェクトデータをリアルタイムで送信するように構成されており、前記更新オブジェクトデータが、前記第１のリモートサーバから前記クライアントデバイスにプッシュされる、ことと、
第２のリモートサーバとの第２の通信コネクションを確立することであって、前記第２の通信コネクションが、クライアントプルベースの通信コネクションであり、前記クライアントデバイスによって、前記第２のリモートサーバからテールデータペイロードを要求および受信するように構成されている、ことと、
前記第２のリモートサーバにポーリング要求を送信することであって、前記ポーリング要求が、前記１つ以上のオブジェクト識別子を含み、前記ポーリング要求が、前記１つ以上のオブジェクト識別子それぞれのためのテールデータペイロードの要求を表している、ことと、
前記第２のリモートサーバから、前記１つ以上のオブジェクト識別子それぞれのための前記テールデータペイロードを受信することと、
前記１つ以上のオブジェクト識別子に関連付けられた更新オブジェクトデータをローカルデータストレージに照会することと、
前記１つ以上のオブジェクト識別子に関連付けられた前記更新オブジェクトデータが、前記クライアントデバイスのローカルデータストレージにおいて利用可能でなく、かつ前記１つ以上のオブジェクト識別子に関連付けられた前記更新オブジェクトデータが、前記第１のリモートサーバから受信されていないと判断すると、前記第１の通信コネクションのインタラプトを検出することと、
第１のテールデータペイロードの部分集合を使用して、前記後続のグループベース通信インタフェースを表示のためにレンダリングすることであって、前記第１のテールデータペイロードの部分集合が、前記電子インタラクションに関連付けられた必要とされる前記更新オブジェクトデータに基づいて前記テールデータペイロードから選択される、ことと、
を行わせる、コンピュータプログラム製品。
【国際調査報告】
2021515504.tif 000013
2021515504.tif 000014