(57)【特許請求の範囲】
【請求項１】
フロートアウトメッセージを制御するための方法であって、
受信者への送信の準備ができたフロートアウトメッセージがある場合に、前記フロートアウトメッセージの前記受信者の現在のステータスを判定し、
前記受信者の前記現在のステータスがオンラインである場合に、１または複数のプロセッサを用いて、前記受信者の識別値および前記受信者に送信されるべき１または複数の他のフロートアウトメッセージの１または複数の優先レベルに対する前記フロートアウトメッセージの優先レベルに少なくとも部分的に基づいて前記フロートアウトメッセージが前記受信者に送信されるべきか否かを判定し、前記フロートアウトメッセージが前記受信者に送信されるべきであるか否かの判定は、前記受信者の前記識別値が疲労期間内の閾値に達しているか否かを判定することを含み、前記識別値は、前記受信者が現在疲労状態にあると見なされるか否か、または、前記受信者が持つと見なされる疲労のレベルを示すために用いられ、前記受信者に関する前記フロートアウトメッセージの効果は、前記受信者が疲労状態にあるか否か、または、前記受信者が持つと見なされる前記疲労のレベルに少なくとも一部依存し、
前記識別値が前記閾値に達していない場合に、前記受信者がフロートアウトを利用できるように前記フロートアウトメッセージを前記受信者にプッシュ通知し、
前記識別値が前記閾値に達していることに少なくとも部分的に基づいて、現在は前記フロートアウトメッセージが前記受信者に送信されるべきでないと判定された場合に、前記フロートアウトメッセージを前記受信者に対して後に送信されるべきフロートアウトメッセージのキューに加え、
単位時間内に前記受信者に送信されるべきフロートアウトメッセージ数の制限に基づいて前記識別値を更新すること、
を備える、方法。
【請求項２】
請求項１に記載の方法であって、さらに、前記受信者によって受信されたフロートアウトメッセージの数を記録することを備える、方法。
【請求項３】
請求項１に記載の方法であって、さらに、フロートアウトメッセージが前記受信者に送信される準備ができており、前記フロートアウトメッセージの前記受信者の前記現在のステータスがオフラインである場合に、前記フロートアウトメッセージを格納することを備える、方法。
【請求項４】
請求項３に記載の方法であって、さらに、
前記識別値の更新の前に、前記疲労期間、前記疲労期間内のフロートアウトメッセージ数の制限、および、前記フロートアウトメッセージの優先レベルを設定し、
前記フロートアウトメッセージの前記受信者の前記現在のステータスがオフラインであった後の最初のログイン時に、前記受信者の前記識別値が前記閾値に達しているか否かを判定し、
前記識別値が前記閾値に達していない場合に、前記メッセージの優先レベルと、前記疲労期間内の前記フロートアウトメッセージ数の制限とに従って、前記フロートアウトメッセージを前記受信者に送信し、前記識別値は、前記受信者が現在疲労状態にないと見なされることを示すこと、
を備える、方法。
【請求項５】
請求項１に記載の方法であって、さらに、
前記フロートアウトメッセージのログを記録することを備え、前記ログは、前記フロートアウトメッセージの有効期間を決定するために用いられる時間情報を含み、
前記フロートアウトメッセージの前記ログの前記時間情報が前記有効期間内にあるか否かを判定すること、
を備え、
前記受信者の前記識別値が前記閾値に達しているか否かの判定は、前記フロートアウトメッセージが前記有効期間内にある場合に実行される、方法。
【請求項６】
請求項１に記載の方法であって、さらに、
前記フロートアウトメッセージのログを記録し、前記ログは、前記フロートアウトメッセージのフロートアウトが強制的であるか否かを示すために用いられる強制情報を含み、
前記フロートアウトメッセージの前記ログの前記強制情報が、前記フロートアウトメッセージのフロートアウトが強制的であることを示すか否かを判定し、
前記フロートアウトメッセージが強制的でないことを前記強制情報が示す場合に、前記受信者の前記識別値が前記閾値に達しているか否かを判定すること、
を備える、方法。
【請求項７】
請求項２に記載の疲労制御ベース・メッセージフロートアウト方法であって、さらに、
前記識別値の更新の前に、前記疲労期間、および、前記疲労期間内のフロートアウトメッセージ数の制限を設定することを備え、
前記識別値の更新は、
前記受信者によって受信されたフロートアウトメッセージの前記記録された数が前記メッセージ数の制限に達している場合に、前記識別値を更新し、
前記受信者によって受信されたフロートアウトメッセージの前記記録された数が前記メッセージ数の制限に達していない場合に、前記疲労期間が終了しているか否かを判定し、
前記疲労期間が終了している場合に、前記識別値を更新すること、
を備える、方法。
【請求項８】
請求項７に記載の疲労制御ベース・メッセージフロートアウト方法であって、前記識別値の更新は、定期的にトリガされる、または、前記フロートアウトメッセージを前記受信者にプッシュ通知した後に送信成功応答を受信した際にトリガされる、方法。
【請求項９】
フロートアウトメッセージを制御する方法であって、
インスタントメッセージシステムと関連するインスタントメッセージングクライアントによってフロートアウトメッセージが受信された場合に、１または複数のプロセッサを用いて、識別値が疲労期間内の閾値に達しているか否かを判定し、前記識別値は、前記フロートアウトメッセージの受信者が現在疲労状態にあると見なされるか否か、または、前記受信者が持つと見なされる疲労のレベルを示すために用いられ、前記受信者に関する前記フロートアウトメッセージの効果は、前記受信者が疲労状態にあるか否か、または、前記受信者が持つと見なされる前記疲労のレベルに少なくとも一部依存し、
前記識別値が前記閾値に達していない場合に、前記フロートアウトメッセージをフロートアウトし、前記識別値は、前記受信者が現在疲労状態にないことを示し、
前記識別値が前記閾値に達していることに少なくとも部分的に基づいて、現在は前記フロートアウトメッセージが前記受信者に送信されるべきでないと判定された場合に、前記フロートアウトメッセージを前記受信者に対して後に送信されるべきフロートアウトメッセージのキューに加え、
単位時間内に前記受信者に送信されるべきフロートアウトメッセージ数の制限に基づいて前記識別値を更新すること、
を備える、方法。
【請求項１０】
請求項９に記載の方法であって、さらに、受信されたフロートアウトメッセージの数を記録することを備える、方法。
【請求項１１】
請求項９に記載の方法であって、さらに、
前記識別値の更新の前に、前記疲労期間、前記疲労期間内のフロートアウトメッセージ数の制限、および、前記フロートアウトメッセージの優先レベルを設定し、
前記識別値の更新後に、前記優先レベルと、前記疲労期間内の前記フロートアウトメッセージ数の制限とに従って、前記格納されたフロートアウトメッセージをフロートアウトすること、
を備える、方法。
【請求項１２】
請求項１０に記載の方法であって、さらに、
前記識別値の更新の前に、前記疲労期間、および、前記疲労期間内のフロートアウトメッセージ数の制限を設定することを備え、
前記識別値の更新は、
前記インスタントメッセージングクライアントによって前記受信されたフロートアウトメッセージの前記記録された数が前記疲労期間内の前記フロートアウトメッセージ数の制限に達している場合に、前記識別値を更新し、前記フロートアウトメッセージ数の制限に達した前記受信されたフロートアウトメッセージの前記記録された数は、前記受信者が現在疲労状態にあると見なされることを示し、
前記インスタントメッセージングクライアントによって前記受信されたフロートアウトメッセージの前記記録された数が前記疲労期間内の前記フロートアウトメッセージ数の制限に達していない場合に、前記疲労期間が終了しているか否かを判定し、
疲労期間が終了している場合に、前記識別値を更新すること、
を含む、方法。
【請求項１３】
請求項１２に記載の方法であって、前記識別値の更新は、定期的にトリガされる、または、前記フロートアウトメッセージの前記フロートアウト後にトリガされる、方法。
【請求項１４】
フロートアウトメッセージを制御するためのシステムであって、
少なくとも１つのプロセッサであって、
受信者への送信の準備ができたフロートアウトメッセージがある場合に、前記フロートアウトメッセージの前記受信者の現在のステータスを判定し、
前記受信者の前記現在のステータスがオンラインである場合に、前記受信者の識別子および前記受信者に送信されるべき１または複数の他のフロートアウトメッセージの１または複数の優先レベルに対する前記フロートアウトメッセージの優先レベルに少なくとも部分的に基づいて前記フロートアウトメッセージが前記受信者に送信されるべきか否かを判定し、前記フロートアウトメッセージが前記受信者に送信されるべきであるか否かの判定は、前記受信者の前記識別値が疲労期間内の閾値に達しているか否かを判定することを含み、前記識別値は、前記受信者が現在疲労状態にあると見なされるか否か、または、前記受信者が持つと見なされる疲労のレベルを示すために用いられ、前記受信者に関する前記フロートアウトメッセージの効果は、前記受信者が疲労状態にあるか否か、または、前記受信者が持つと見なされる前記疲労のレベルに少なくとも一部依存し、
前記識別値が前記閾値に達していない場合に、前記受信者がフロートアウトを利用できるように、前記フロートアウトメッセージを前記受信者にプッシュ通知し、
前記識別値が前記閾値に達していることに少なくとも部分的に基づいて、現在は前記フロートアウトメッセージが前記受信者に送信されるべきでないと判定された場合に、前記フロートアウトメッセージを前記受信者に対して後に送信されるべきフロートアウトメッセージのキューに加え、
単位時間内に前記受信者に送信されるべきフロートアウトメッセージ数の制限に基づいて前記識別値を更新するよう構成されている、少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに接続され、前記少なくとも１つのプロセッサに命令を提供するよう構成されているメモリと、
を備える、システム。
【請求項１５】
フロートアウトメッセージを制御するためのインスタントメッセージングクライアントであって、
少なくとも１つのプロセッサであって、
フロートアウトメッセージを受信した場合に、識別値が疲労期間内の閾値に達しているか否かを判定し、前記識別値は、前記フロートアウトメッセージの受信者が現在疲労状態にあると見なされるか否か、または、前記受信者が持つと見なされる疲労のレベルを示すために用いられ、前記受信者に関する前記フロートアウトメッセージの効果は、前記受信者が疲労状態にあるか否か、または、前記受信者が持つと見なされる前記疲労のレベルに少なくとも一部依存し、
前記識別値が前記閾値に達していない場合に、前記フロートアウトメッセージをフロートアウトし、前記識別値は、前記受信者が現在疲労状態にないことを示し、
前記識別値が前記閾値に達している場合に、前記フロートアウトメッセージを前記受信者に対して後に送信されるべきフロートアウトメッセージのキューに加え、
単位時間内に前記受信者に送信されるべきフロートアウトメッセージ数の制限に基づいて前記識別値を更新するよう構成されている、少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに接続され、前記少なくとも１つのプロセッサに命令を提供するよう構成されているメモリと、
を備える、インスタントメッセージングクライアント。
【請求項１６】
フロートアウトメッセージを制御するためのコンピュータプログラムであって、
受信者への送信の準備ができたフロートアウトメッセージがある場合に、前記フロートアウトメッセージの前記受信者の現在のステータスを判定するための機能と、
前記受信者の前記現在のステータスがオンラインである場合に、前記受信者の識別子および前記受信者に送信されるべき１または複数の他のフロートアウトメッセージの１または複数の優先レベルに対する前記フロートアウトメッセージの優先レベルに少なくとも部分的に基づいて前記フロートアウトメッセージが前記受信者に送信されるべきか否かを判定するための機能と、前記フロートアウトメッセージが前記受信者に送信されるべきであるか否かの判定は、前記受信者の前記識別値が疲労期間内の閾値に達しているか否かを判定することを含み、前記識別値は、前記受信者が現在疲労状態にあると見なされるか否か、または、前記受信者が持つと見なされる疲労のレベルを示すために用いられ、前記受信者に関する前記フロートアウトメッセージの効果は、前記受信者が疲労状態にあるか否か、または、前記受信者が持つと見なされる前記疲労のレベルに少なくとも一部依存し、
前記識別値が前記閾値に達していない場合に、前記受信者がフロートアウトを利用できるように、前記フロートアウトメッセージを前記受信者にプッシュ通知するための機能と、
前記識別値が前記閾値に達していることに少なくとも部分的に基づいて、現在は前記フロートアウトメッセージが前記受信者に送信されるべきでないと判定された場合に、前記フロートアウトメッセージを前記受信者に対して後に送信されるべきフロートアウトメッセージのキューに加えるための機能と
単位時間内に前記受信者に送信されるべきフロートアウトメッセージ数の制限に基づいて前記識別値を更新するための機能と、
をコンピュータによって実現させる、コンピュータプログラム。
【請求項１７】
フロートアウトメッセージを制御するためのコンピュータプログラムであって、
インスタントメッセージシステムと関連するインスタントメッセージングクライアントによってフロートアウトメッセージが受信された場合に、識別値が疲労期間内の閾値に達しているか否かを判定するための機能と、前記識別値は、前記フロートアウトメッセージの受信者が現在疲労状態にあると見なされるか否か、または、前記受信者が持つと見なされる疲労のレベルを示すために用いられ、前記受信者に関する前記フロートアウトメッセージの効果は、前記受信者が疲労状態にあるか否か、または、前記受信者が持つと見なされる前記疲労のレベルに少なくとも一部依存し、
前記識別値が前記閾値に達していない場合に、前記フロートアウトメッセージをフロートアウトするための機能と、前記識別値は、前記受信者が現在疲労状態にないことを示し、
前記識別値が前記閾値に達していることに少なくとも部分的に基づいて、現在は前記フロートアウトメッセージが前記受信者に送信されるべきでないと判定された場合に、前記フロートアウトメッセージを前記受信者に対して後に送信されるべきフロートアウトメッセージのキューに加えるための機能と
単位時間内に前記受信者に送信されるべきフロートアウトメッセージ数の制限に基づいて前記識別値を更新するための機能と、
をコンピュータによって実現させる、コンピュータプログラム。
【請求項１８】
請求項１に記載の方法はさらに、
前記疲労期間が終了すると前記識別値をリセットすることを備える、方法。
【請求項１９】
請求項１に記載の方法において、前記疲労状態は、前記疲労期間の終了の後に前記受信者にプッシュされるために前記受信者に対して送信されるべきフロートアウトメッセージが格納されている状態に対応する、方法。
【請求項２０】
請求項１９に記載の方法はさらに、
前記疲労期間が終了し、前記受信者の現在のステータスがオンラインである場合に、前記格納されている前記フロートアウトメッセージに対応する各優先度に応じて、前記格納されているフロートアウトメッセージをプッシュすることを備える、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
他の出願の相互参照
本願は、全ての目的のために参照により本明細書に組み込まれる、２０１１年１２月３０日出願の発明の名称を「Ａ  ＦＡＴＩＧＵＥ  ＣＯＮＴＲＯＬ−ＢＡＳＥＤ  ＭＥＳＳＡＧＥ  ＦＬＯＡＴ−ＯＵＴ  ＭＥＴＨＯＤ，  ＳＥＲＶＥＲ  ＡＮＤ  ＩＮＳＴＡＮＴ  ＭＥＳＳＡＧＩＮＧ  ＣＬＩＥＮＴ（疲労制御ベースのメッセージフロートアウト方法、サーバ、および、インスタントメッセージングクライアント）」とする中国特許出願第２０１１１０４５４３５０．１号に基づく優先権を主張する。
【０００２】
本願は、疲労制御ベースのメッセージフロートアウト方法、システム、および、インスタントメッセージングクライアントを含む。
【背景技術】
【０００３】
一般に、インスタントメッセージングシステムでのメッセージのフロートアウトは、メインのインスタントメッセージングウィンドウの一部でメッセージをユーザに積極的にプッシュ通知することを含む。メッセージの表示フォーマットはユーザによって受動的に受信されるので、メッセージフロートアウトは、効果的な販促手段であり、ニュース、通知、および、広告情報を掲載するために広く用いられ、迅速かつ正確に情報をユーザに伝えることができる。
【０００４】
既存のインスタントメッセージングシステムにおけるメッセージのフロートアウトについては、インスタントメッセージングサーバが、複数のフロートアウトメッセージをプッシュ通知し、フロートアウトメッセージがプッシュ通知された時にフロートアウトメッセージの有効期間を初期化する。インスタントメッセージングサーバは、有効期間が超過すると、フロートアウトメッセージを破棄し、そうでなければ、ユーザがログイン時にフロートアウトメッセージを受信する。
【０００５】
したがって、既存のインスタントメッセージングシステムにおけるメッセージのフロートアウトは、通例、効果的な技術制御を欠いている。ユーザは、通常、フロートアウトメッセージを受動的にしか受信することができない。換言すると、既存のインスタントメッセージングシステムにおけるメッセージのフロートアウトは、ユーザの迷惑になり、ユーザ体験に悪影響を及ぼしうる。ユーザは、フロートアウトメッセージを選択的に受信することはできない。例えば、いくつかの重要なフロートアウトメッセージが、しばしば、あまり重要でない大量のメッセージの中に隠されることで、重要なメッセージを受信するユーザの能力に影響を与える。さらに、ログイン中のユーザがコンピュータを離れた時に、複数のフロートアウトメッセージがユーザのいない間に生成されることがあり、それら複数のフロートアウトメッセージは、通例、一度に全部がプッシュ通知されるため、ユーザ体験を低下させる。
【図面の簡単な説明】
【０００６】
以下の詳細な説明と添付の図面において、本発明の様々な実施形態を開示する。
【０００７】
【図１】疲労制御ベース・メッセージフロートアウトシステムを示す概略図。
【０００８】
【図２】疲労制御ベース・メッセージフロートアウト方法の一実施形態を示すフローチャート。
【０００９】
【図３】疲労制御ベース・メッセージフロートアウト方法の一実施形態を示すフローチャート。
【００１０】
【図４】疲労制御ベース・メッセージフロートアウトサーバの一実施形態を示す概略図。
【００１１】
【図５】疲労制御ベース・インスタントメッセージングクライアントの一実施形態を示す概略図。
【発明を実施するための形態】
【００１２】
本発明は、処理、装置、システム、物質の組成、コンピュータ読み取り可能な格納媒体上に具現化されたコンピュータプログラム製品、および／または、プロセッサ（プロセッサに接続されたメモリに格納および／またはそのメモリによって提供される命令を実行するよう構成されたプロセッサ）を含め、様々な形態で実装されうる。本明細書では、これらの実装または本発明が取りうる任意の他の形態を、技術と呼ぶ。一般に、開示された処理の工程の順序は、本発明の範囲内で変更されてもよい。特に言及しない限り、タスクを実行するよう構成されるものとして記載されたプロセッサまたはメモリなどの構成要素は、ある時間にタスクを実行するよう一時的に構成された一般的な構成要素として、または、タスクを実行するよう製造された特定の構成要素として実装されてよい。本明細書では、「プロセッサ」という用語は、１または複数のデバイス、回路、および／または、コンピュータプログラム命令などのデータを処理するよう構成された処理コアを指すものとする。
【００１３】
以下では、本発明の原理を示す図面を参照しつつ、本発明の１または複数の実施形態の詳細な説明を行う。本発明は、かかる実施形態に関連して説明されているが、どの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定されるものであり、多くの代替物、変形物、および、等価物を含む。以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。これらの詳細事項は、例示を目的としたものであり、本発明は、これらの具体的な詳細事項の一部または全てがなくとも特許請求の範囲に従って実施可能である。簡単のために、本発明に関連する技術分野で周知の技術要素については、本発明が必要以上にわかりにくくならないように、詳細には説明していない。
【００１４】
ユーザ疲労の評価に基づいてフロートアウトメッセージを制御するための技術を開示する。本明細書で用いられているように、ユーザ疲労とは、ユーザが多くのフロートアウトメッセージを受信するほどフロートアウトメッセージの効果が減少することを指す。ユーザは、例えば、受信したフロートアウトメッセージの数が単位時間内で所定の閾値を超えた場合に疲労したとみなされる。疲労期間が、単位時間と一致しうる。以下の開示は、疲労期間と、疲労期間内のフロートアウトメッセージ数の制限とを予め設定し、疲労レベルを示すために用いられる識別値を設定することに関する。例えば、識別値は、受信者が現在疲労状態にあると見なされるか否か、または、受信者が持つと見なされる疲労のレベルを示すために用いることができる。識別値は、単位時間内のフロートアウトメッセージ数の制限に基づいて更新され、単位時間内のフロートアウトメッセージ数の制限は、受信されたフロートアウトメッセージの数、疲労期間、および、メッセージ数の制限に基づいて決定される。したがって、各フロートアウトタスク中に、ユーザに対してメッセージフロートアウトの疲労制御を実施するために、ユーザが現在疲労状態にあると見なされるか否かの判定が、識別値に基づいてなされる。
【００１５】
疲労制御ベース・メッセージフロートアウト方法を開示するために、疲労制御ベース・メッセージフロートアウトシステムの構成を開示する。この構成は、本願の記載を助けるよう意図されているに過ぎず、本願の範囲を限定するものではない。
【００１６】
図１は、ユーザ疲労の評価に基づいてメッセージフロートアウトを制御するメッセージングシステムの一実施形態を示す概略図である。システム１００は、ネットワーク１５０を通してサーバ１１０に接続されたインスタントメッセージングクライアント１２０を含む。サーバ１１０は、サーバ疲労制御モジュール１３０を備え、インスタントメッセージングクライアント１２０は、クライアント疲労制御モジュール１４０を備える。
【００１７】
いくつかの実施形態では、管理者が、サーバ１１０上の管理インターフェースを用いて、個々のユーザの疲労期間、疲労期間内のフロートアウトメッセージ数の制限、フロートアウトメッセージの優先レベル、フロートアウトメッセージの具体的内容、および／または、その他の適切な構成パラメータを設定できる。いくつかの実施形態において、管理者は、サーバ１１０以外のマシンからリモートで、個々のユーザの疲労期間、疲労期間内のフロートアウトメッセージ数の制限、フロートアウトメッセージの優先レベル、フロートアウトメッセージの具体的内容、および／または、その他の適切な構成パラメータを設定できる。いくつかの実施形態において、管理者は、フロートアウトメッセージに関連するユーザクリックおよび閲覧情報を用いて、疲労期間、疲労期間内のフロートアウトメッセージ数の制限、フロートアウトメッセージの優先レベル、および、フロートアウトメッセージの具体的内容を決定することもできる。例えば、管理者は、フロートアウトメッセージがアクセスされた時に記録されたアクセスログを見て、ユーザがフロートアウトメッセージに関心を示す典型的な時間の長さ、および、ユーザが関心を示すフロートアウトメッセージの種類を決定する。このように、管理者は、関連する疲労期間、疲労期間内のフロートアウトメッセージ数の制限、および、フロートアウトメッセージの優先レベルを設定できる。関連する疲労期間、疲労期間内のフロートアウトメッセージ数の制限、および、フロートアウトメッセージの優先レベルは、メッセージデータベースに格納されうる。
【００１８】
初期化時に、サーバ１１０上のサーバ疲労制御モジュール１３０は、ユーザが制御モジュール１３０によって現在疲労状態にあると見なされるか否かを示す識別値を設定する。ユーザの識別値は、データベース内のフィールドに格納されてよく、識別値は、設定された疲労期間、フロートアウトメッセージ数の制限、および、すでに受信済みのフロートアウトメッセージの数に基づいて更新される。例えば、識別値は、単位時間内のフロートアウトメッセージ数の制限に基づいて更新される。サーバ１１０は、フロートアウトメッセージをプッシュ通知するのに望ましい受信者の属性に基づいて、フロートアウトメッセージをプッシュ通知される受信者を選択し、サーバ疲労制御モジュール１３０によって更新された識別値に基づいて、フロートアウトメッセージを受信者にプッシュ通知する。
【００１９】
サーバ１１０上で実行される疲労制御は、インスタントメッセージングクライアント１２０でも実行されうることがわかる。換言すると、インスタントメッセージングクライアント１１０のユーザは、疲労期間（例えば、時間の長さ）、および、インスタントメッセージングクライアント１１０での疲労期間内のフロートアウトメッセージ数の制限を設定できる。初期化後に、インスタントメッセージングクライアント１２０の疲労制御モジュール１４０は、疲労レベル値を示す識別値を設定できる。例えば、識別値は、ユーザが現在疲労状態にあるか否かを示す。その後、識別値は、設定された疲労期間、フロートアウトメッセージ数の制限、および、すでに受信済みのフロートアウトメッセージの数に基づいて更新される。例えば、識別値は、単位時間内のフロートアウトメッセージ数の制限に基づいて更新される。フロートアウトメッセージがプッシュ通知されるごとに、疲労制御モジュール１４０は、フロートアウトメッセージがプッシュ通知される前に、識別値に基づいて、フロートアウトメッセージ数の制限に達しているか否かを判定する。
【００２０】
図２は、疲労制御ベース・メッセージフロートアウト方法の一実施形態を示すフローチャートである。システム１００は、疲労制御ベース・メッセージフロートアウト方法２００を実施するために利用できる。この実施形態において、フロートアウトメッセージは、疲労期間内にあると仮定され、ユーザに対して表示される必要のない任意選択的なメッセージである（例えば、広告、推奨投稿など）。したがって、疲労制御ベース・メッセージフロートアウト方法２００を実行するサーバが、以下の工程を実行しうる。
【００２１】
工程２２０では、サーバは、特定のフロートアウトメッセージのフロートアウトメッセージプッシュ要件を満たすユーザを選択する。換言すると、ユーザは、送信を待つフロートアウトメッセージの受信者になる。サーバは、ユーザへの送信待機中のフロートアウトメッセージを有しており、ユーザは、現在のフロートアウトメッセージがプッシュ通知される受信者の属性に基づいて、メッセージプッシュ通知受信者データベースから選択される。
【００２２】
工程２２５では、サーバは、ユーザの現在のステータスを判定する。換言すると、サーバは、ユーザがオンラインかオフラインかを判定する。
【００２３】
工程２３０では、ユーザの現在のステータスがオンラインである場合、サーバは、識別値が閾値に達しているか否かを判定する。識別値は、受信者（すなわち、ユーザ）が現在疲労状態にあるか否かを判定するために用いられ、識別値は、単位時間内のフロートアウトメッセージ数の制限に基づいて更新される。
【００２４】
いくつかの実施形態において、識別値は、予め設定されたデータベース内のフィールドであり、受信者が現在疲労状態にあるか否かを示すために用いられる。識別値の初期化時に、識別値は、例えば０に設定されてよく、閾値は、例えば３に予め設定されてよい。
【００２５】
工程２４５では、識別値が閾値に達している場合、識別値は、受信者が現在疲労状態にあることを示すため、サーバは、フロートアウトメッセージをプッシュ通知せず、そのフロートアウトメッセージをサーバデータベースに格納する。
【００２６】
工程２３５では、識別値が閾値に達していない場合、識別値は、受信者が現在疲労状態にないことを示すため、サーバは、フロートアウトメッセージを受信者にプッシュ通知し、その結果、フロートアウトメッセージは、受信者に利用できるようになる。
【００２７】
この時、さらに、サーバは、例えば１だけ識別値をインクリメントする。例えば、識別値は１から２に増分され、サーバは、工程２４０において、受信者によって受信されたフロートアウトメッセージの数を更新する。例えば、受信者によって受信されたフロートアウトメッセージの更新後の数は、現在２である。
【００２８】
いくつかの実施形態では、各ユーザが、識別値の閾値を有する。識別値が閾値に達した場合（閾値は３などの特定の数である）、識別値は、ユーザが現在疲労状態にあり、さらなるタスクメッセージを全く受信することができず、さらなるメッセージを受信する前に次の疲労期間まで待たなければならないことを示唆する。例えば、識別値が１だけインクリメントされた後に３になった場合、識別値は、閾値である３に達しているため、ユーザが疲労状態にあり、フロートアウトメッセージを受信できないことを示唆する。その後、疲労期間が終わった後、識別値は、単位時間内のフロートアウトメッセージ数の制限に基づいて、サーバ上の疲労制御モジュールによって確認された通りに、０にリセットされる。
【００２９】
工程２４０では、サーバは、単位時間内のフロートアウトメッセージ数の制限に基づいて、識別値を更新する。工程２４０に記載した識別値の更新は、以下を含む。
【００３０】
受信者によって受信されたフロートアウトメッセージの格納済みの数が疲労期間内のフロートアウトメッセージ数の制限にすでに達していることをサーバが発見した場合、ユーザは、疲労状態に達していると見なされ、識別値が更新される。識別値は、次の疲労期間に、０にリセットされうる。受信者によって受信されたフロートアウトメッセージの記録された数が疲労期間内のフロートアウトメッセージ数の制限に達していない場合、サーバは、疲労期間が終了しているか否かを判定する。疲労期間が終了している場合、識別値は、例えば、識別値を０にリセットすることによって更新される。そうでない場合、識別値は更新されない。
【００３１】
上述した識別値の更新工程の順序は、上述の記載によって限定されない。識別値の更新は、他の工程の後または実質的に同時に実行されてよい。識別値の更新は、定期的にトリガされてもよいし、受信者へのフロートアウトメッセージの送信後に受信者から送信成功応答を受信した際にトリガされてもよい。例えば、工程２３５が実行された後、サーバは、クライアントからプッシュ成功応答を受信しうる。その後、サーバは、上述の方法（工程２４０）で、識別値を更新し、この時点で受信者によって受信されたフロートアウトメッセージの数が疲労期間内のフロートアウトメッセージ数の制限に達しているか否かを判定し、疲労期間が終了しているか否かを判定する。疲労期間が終了していない場合、サーバは、識別値を更新せず、識別値は、現在の値（例えば、１）であり続ける。したがって、サーバ疲労制御モジュール１３０は、サーバによるフロートアウトメッセージの各プッシュ成功後に識別値が更新されうるか否かを判定してもよいし、一定の時間間隔で識別値が更新されうるか否かを判定してもよい。
【００３２】
疲労期間および疲労期間内のフロートアウトメッセージ数の制限はいずれも、サーバ上で予め設定されうることがわかる。いくつかの実施形態において、疲労期間は、動的な時間の値であってよい。いくつかの実施形態において、疲労期間は、予め設定された値に設定されてよい。例えば、疲労期間は、１２時間または２４時間に設定できる。
【００３３】
したがって、以下の工程が、工程２２０の前に実行されてよい。
【００３４】
工程２１０では、サーバは、ユーザの疲労期間、フロートアウトメッセージ数の制限、および、フロートアウトメッセージの優先レベルを予め設定する。また、フロートアウトメッセージの具体的内容も、予め設定されうる。
【００３５】
管理者は、サーバ管理インターフェースを通して、各ユーザに対する疲労期間およびフロートアウトメッセージ数の制限、各フロートアウトメッセージのフロートアウトメッセージ優先レベル、ならびに、各フロートアウトメッセージの具体的内容を設定できる。例えば、このタスクにおけるフロートアウトメッセージについて、疲労期間を１２時間に設定することができ、疲労期間内のフロートアウトメッセージ数の制限を３に設定することができる。フロートアウトメッセージは、特定の商品の宣伝広告、新しい販売業者に関する情報、ディスカウント情報などであってよい。フロートアウトメッセージの情報は、メッセージデータベースに格納されうる。
【００３６】
工程２１５では、サーバは、各ユーザの疲労レベルを示す識別値を示すためのデータベースフィールドを設定する。例えば、識別値は、最初に０に設定されうる。
【００３７】
サーバのユーザデータベースの管理者インターフェースにおいて、管理者は、ユーザが現在疲労状態にあるか否かを示す疲労レベルを表すための識別値を設定できる。例えば、初期化時に、識別値は、０に設定できる。識別値は、０である場合、ユーザが現在疲労状態にないことを示す。メッセージの各フロートアウトが送信された後、または、周期的な時間の経過後、サーバ疲労制御モジュールは、疲労期間、各ユーザに対するフロートアウトメッセージ数の制限、および、ユーザに対してすでにフロートアウトされたフロートアウトメッセージの数に基づいて、ユーザデータベース内でユーザの疲労レベルを示す識別値を更新することができる。疲労期間が終了している場合、サーバは、識別値を０にリセットすることによって識別値を更新できる。
【００３８】
疲労期間、すでに受信されたフロートアウトメッセージの数、フロートアウトメッセージ数の制限の間の対応関係が格納され、識別値および閾値がサーバに記録されうることに注意されたい。疲労レベルを表す識別値も、前述の情報と対応関係を有する。
【００３９】
上記の説明は、サーバがフロートアウト待ちのフロートアウトメッセージを有すると共に受信者がログオンしている状況に関連している。以下は、受信者がログインしていないまたはオフラインである状況の説明である。引き続き図２を参照すると、サーバは、さらに、以下の工程を実行しうる。
【００４０】
工程２５０では、受信者の現在のステータスがオフラインであり、フロートアウトメッセージがフロートアウトまたはプッシュ通知の待機中である場合、サーバは、フロートアウトメッセージをデータベースに格納する。
【００４１】
工程２５５では、サーバは、ユーザがログオンしているか否かを判定する。この工程は、ユーザがログオンするまで繰り返されうる。フロートアウトメッセージプッシュ要件を満たしたユーザがその後にインスタントメッセージングツールにログオンした場合、方法は、以下の工程を含みうる。
【００４２】
工程２６０では、サーバは、ユーザの識別値が閾値に達しているか否かを判定する。
【００４３】
工程２６５では、識別値が閾値に達している場合、フロートアウトメッセージは、フロートアウトまたはプッシュ通知されず、サーバは、フロートアウトメッセージをデータベースに格納し続ける。
【００４４】
工程２７０では、識別値が閾値に達していない場合、識別値は、ユーザが現在疲労状態にないことを示し、サーバは、優先レベルに従って、疲労期間内のフロートアウトメッセージ数の制限に基づいて、フロートアウトメッセージを抽出する。例えば、疲労期間内のフロートアウトメッセージ数の制限が３メッセージであり、ユーザによってすでに受信されたフロートアウトメッセージの記録数が２メッセージであるとする。そうすると、この例においては、まだプッシュ通知できるフロートアウトメッセージの数は１メッセージであるため、１つのフロートアウトメッセージがユーザにプッシュ通知される。
【００４５】
上述の工程において、フロートアウトメッセージは、有効期間内にフロートアウトされ、強制的ではないと仮定する。工程２２５の実行前に、サーバは、フロートアウトメッセージに含まれる時間情報が有効期間内であるか否かを判定してもよい。フロートアウトメッセージが有効期間内である場合、受信者の識別値が閾値に達しているか否かを判定するために、工程２２５および工程２３０が実行される。サーバは、フロートアウトメッセージのログを記録しており、ログは、フロートアウトメッセージの有効期間を示すために用いられる時間情報を含むことが理解される。例えば、有効期間は、１週間、３日間、１日、または、１時間に設定されうる。
【００４６】
さらに、フロートアウトメッセージの記録されたログは、フロートアウトメッセージのフロートアウトが強制的であるか否かを示す強制情報も含みうる。工程２２５の後、サーバは、フロートアウトメッセージのフロートアウトが強制的であるか否かを示す情報をフロートアウトメッセージが含むか否かを判定してもよい。例えば、特別割引または重大ニュースなど、特別な提示が受信者になされる場合、メッセージが強制的であると示唆されうる。フロートアウトメッセージのフロートアウトが強制的でない場合、サーバは、受信者の識別値が閾値に達しているか否かを判定する。逆に、フロートアウトメッセージのフロートアウトが強制的である場合、サーバは、識別値にかかわらずフロートアウトメッセージをプッシュ通知する。
【００４７】
ユーザに送信されるフロートアウトメッセージはすべて、有効期間と、フロートアウトメッセージが強制的であるか否かを示す情報とを有しうる。フロートアウトメッセージの特徴は、工程２１０中に管理者によって設定されうる。フロートアウトメッセージが有効期間内にあり、強制的でない場合、工程２３０後の工程を実行できる。フロートアウトメッセージが有効期間内にない場合、フロートアウトメッセージはフロートアウトされず、また、フロートアウトメッセージが強制的なメッセージである場合、サーバは、フロートアウトメッセージを直接フロートアウトし、疲労制御に対応する工程は実行されない。フロートアウトメッセージが有効期間内にあるか否か、および、強制的でないメッセージであるか否かに関する上述の判定は周知であるため、簡単のためにさらに議論はしない。
【００４８】
工程２４５および２６５については、識別値がすでに閾値に達しており、受信者が現在疲労状態にあることを示唆しているので、サーバは、受信者が次の疲労期間に入った時に受信者にフロートアウトされるのを待つメッセージを格納する。例えば、サーバは識別値を定期的に更新し、識別値が更新された後、ユーザの現在のステータスがオンラインであるとサーバが判定した場合、サーバは、フロートアウトメッセージの優先レベルおよび疲労期間内のフロートアウトメッセージ数の制限に従って、フロートアウトメッセージをプッシュ通知する。例えば、高い優先レベルを有するメッセージは、中程度または低い優先レベルを有するメッセージより前にプッシュ通知される。
【００４９】
一貫してオンラインではないユーザについて、２つの状況を説明した。一定期間より長くオンライン状態である長期オンラインユーザについて、サーバ疲労制御モジュールは、ユーザの疲労レベルを決定するために、ユーザデータベースから識別値を定期的に読み出す。識別値が０にリセットされた後、サーバは、フロートアウトメッセージをユーザにプッシュ通知する。
【００５０】
したがって、疲労制御ベース・メッセージフロートアウト方法は、フロートアウトメッセージの受信者に対する疲労期間と疲労期間内のフロートアウトメッセージ数の制限との設定に基づいて、ユーザに対してフロートアウトメッセージの疲労制御を実施すると共に、ユーザがオフラインである間に受信すべき複数のフロートアウトメッセージがあった場合、許容疲労期間内に、関心のあるおよび／または重要なフロートアウトメッセージをユーザが受信することを可能にするために、フロートアウトメッセージの優先レベルを用いる。
【００５１】
メッセージフロートアウトの疲労制御は、上述のようにサーバによって実施されてよく、また、疲労制御はインスタントメッセージングクライアント上で実施されてもよい。
【００５２】
図３は、疲労制御ベース・メッセージフロートアウト方法の一実施形態を示すフローチャートである。疲労制御ベース・メッセージフロートアウト方法３００は、インスタントメッセージングクライアントを対象とする。インスタントメッセージングクライアントの起動後、インスタントメッセージングクライアントは、以下の工程を実施する。
【００５３】
工程３１０では、インスタントメッセージングクライアントは、フロートアウトメッセージを受信する。
【００５４】
工程３２０では、インスタントメッセージングクライアントは、識別値が閾値に達しているか否かを判定する。識別値は、受信者が現在疲労状態にあるか否かを示すために用いられ、疲労期間内のフロートアウトメッセージ数の制限に基づいて更新される。
【００５５】
識別値は、ユーザの疲労レベルを示すフィールドであることが理解される。フィールドは、ユーザがインスタントメッセージングクライアントを登録した時にすでに設定済みでありうる。例えば、インスタントメッセージングクライアントの登録時に、識別値に対応するフィールドは０に設定されうる。識別値は、０である時、ユーザが現在疲労状態にないことを示す。各フロートアウトメッセージがプッシュ通知された後、または、定期的に、インスタントメッセージングクライアントのクライアント疲労制御モジュールは、疲労期間、疲労期間内のフロートアウトメッセージ数の制限、および、ユーザによってすでに受信されたフロートアウトメッセージ数に基づいて、ユーザの疲労を示す識別値を更新する。疲労期間の終了後、識別値の更新は、例えば、０に識別値をリセットする。
【００５６】
また、疲労期間および疲労期間内のフロートアウトメッセージ数の制限は、インスタントメッセージングクライアント上でユーザによって予め設定されうることが理解される。例えば、インスタントメッセージングクライアントが初期化された後、ユーザが、適切であると考えられる疲労期間（例えば、１０時間）を設定し、ユーザが１０時間の疲労期間中に受信できるフロートアウトメッセージ数の制限が、例えば、３メッセージであるとする。換言すると、フロートアウトメッセージ数の制限は、疲労期間中に受信されるフロートアウトメッセージの最大数が３であることを示しており、識別値の更新は、疲労期間内のフロートアウトメッセージ数の制限に基づいて実行される。識別値の閾値は、対応するフロートアウトメッセージ数の制限に従って設定される。例えば、閾値は、２に設定されうる。
【００５７】
工程３５０では、識別値が閾値に達していない場合、識別値は、受信者が現在疲労状態にないことを示し、フロートアウトメッセージは、受信者にフロートアウトされる。
【００５８】
工程３５０の完了後、インスタントメッセージングクライアントは、識別値に値（例えば、１）を加算し、すでに受信されたフロートアウトメッセージの数を記録する。
【００５９】
例えば、インスタントメッセージングクライアントが、これまでに１つのフロートアウトメッセージを受信したとする。疲労期間、すでに受信されたフロートアウトメッセージ、フロートアウトメッセージ数の制限の間の対応関係が格納されており、それに応じて識別値および閾値がクライアントに記録されていることに注意されたい。この識別値と上述の情報との間の対応関係も存在する。
【００６０】
例えば、識別値の初期値は０である。現時点で、フロートアウトメッセージが受信されているので、識別値はインクリメントされる。識別値に１が加算された後、識別値は１になる。同時に、インスタントメッセージングクライアントは、受信したフロートアウトメッセージの数（すなわち、１）も記録する。クライアント疲労制御モジュールは、メッセージの各フロートアウトの後に識別値を更新するか否かを判定するので、この時、クライアント疲労制御モジュールは、この疲労期間に受信したフロートアウトメッセージの数（すなわち、１）がフロートアウトメッセージ数の制限（例えば、３）に達していないと判定する。したがって、識別値は、更新される必要がない。
【００６１】
工程３３０では、識別値が閾値に達している場合、識別値は、受信者が現在疲労状態にあることを示し、フロートアウトメッセージは、ローカルデータベースに格納される。
【００６２】
例えば、インスタントメッセージングクライアントは、識別値が２であり、閾値に達していると判定し、したがって、フロートアウトメッセージをローカルデータベースに格納する。その後、インスタントメッセージングクライアントは、クライアント疲労制御モジュールによる識別値の更新を待つ。例えば、インスタントメッセージングクライアントは、次の疲労期間を待つことができる。次の疲労期間に入るのを待つ間に、クライアントが３つのさらなるフロートアウトメッセージを受信すると仮定する。換言すると、この時点で、インスタントメッセージングクライアントは、フロートアウトに向けて格納された合計４つのフロートアウトメッセージを持つ。本方法の実施中、クライアント疲労制御モジュールは、フロートアウトメッセージが受信されるごとに、疲労期間が終了したか否かを判定するようトリガされうる、もしくは、疲労期間が終了したか否かを定期的に判定しうる。例えば、クライアント疲労制御モジュールは、疲労期間が終了したか否かを５分間隔で判定してよい。疲労期間が終了した場合、識別値は、０にリセットされるよう更新され、方法は、次の疲労期間に入る。この時点で、方法が次の疲労期間に入ると、フロートアウトメッセージの数は０と記録され、メッセージ数の制限は３であり、識別値は０である。新たに次の疲労期間に入ると、インスタントメッセージングクライアントは、さらに以下の工程を実行しうる。
【００６３】
工程３４０では、格納されたフロートアウトメッセージは、メッセージの優先レベルと、疲労期間内のフロートアウトメッセージ数の制限とに従ってフロートアウトされる。
【００６４】
フローアウトメッセージは、優先レベル情報を含んでおり、インスタントメッセージングクライアントは、フロートアウトメッセージの優先レベルに基づいて、疲労期間内のフロートアウトメッセージの制限の範囲内で、優先レベルに従ってフロートアウトメッセージをフロートアウトする。この例では、現在、４つのメッセージがフロートアウトの待機中であるが、この疲労期間の単位時間中にフロートアウトを許可されているのは３つのメッセージのみであるため、上位の優先レベルを持つ３つのメッセージが、優先レベルに従ってフロートアウトされ、最下位の優先レベルを持つフロートアウトメッセージは保存または消去される。インスタントメッセージングクライアントによって各フロートアウトメッセージがフロートアウトされると、識別値が更新されるべきか否かを、クライアント疲労制御モジュールが判定することが理解される。また、この時、インスタントメッセージングクライアントは、すでにフロートアウトされたフロートアウトメッセージの数を記録し、メッセージがフロートアウトされるごとに、例えば１を識別値に加算する。この方法は、クライアントがオンラインである間、同様に繰り返される。
【００６５】
このように、フロートアウトメッセージの更新は、定期的にトリガされてもよいし、フロートアウトメッセージのフロートアウト後にトリガされてもよい。工程３６０で、インスタントメッセージングクライアントは、工程３５０でフロートアウトメッセージをフロートアウトした後に識別値を更新する。識別値の更新は、疲労期間内のフロートアウトメッセージ数の制限に基づいて実行される。別の例において、識別値の更新は以下を含む：受信されたフロートアウトメッセージの数が疲労期間内のフロートアウトメッセージ数の制限にすでに達している場合、ユーザは疲労状態にあり、識別値が更新される。逆に、受信されたフロートアウトメッセージの数がメッセージ数の制限に達していない場合、インスタントメッセージングクライアントは、疲労期間が終了しているか否かを判定する。疲労期間が終了している場合、識別値は更新される。疲労期間が終了していない場合、識別値は更新されない。
【００６６】
したがって、疲労制御ベース・メッセージフロートアウト方法は、インスタントメッセージングクライアントに対する疲労制御の積極的な設定を実施し、それにより、ユーザは、疲労期間と、疲労期間内のフロートアウトメッセージ数の制限とを設定できる。疲労期間と、フロートアウトメッセージ数の制限とを設定することにより、ユーザが一定期間内に受信できるフロートアウトメッセージの数を制御できるようになる。また、ユーザがインスタントメッセージングクライアントにログオンした時に、複数のフロートアウトメッセージがフロートアウトに向けて受信される必要がある場合、フロートアウトメッセージの優先レベルを用いて、フロートアウトメッセージの優先レベルに基づいて重要および関心のあるメッセージがフロートアウトされる。
【００６７】
図４は、疲労制御ベースメッセージフロートアウトサーバの一実施形態を示す概略図である。疲労制御ベース・メッセージフロートアウトサーバ４００は、疲労判定ユニット４１０と、フロートアウトユニット４２０と、疲労制御ユニット４３０と、データベース４４０と、更新ユニット４５０と、を備える。
【００６８】
疲労判定ユニット４１０は、フロートアウトメッセージがフロートアウトの待機中であり、フロートアウトメッセージの受信者の現在のステータスがオンラインである場合に、受信者の識別値が閾値に達しているか否かを判定するよう構成されている。識別値は、受信者が現在疲労状態にあるか否かを示すために用いられ、単位時間内のフロートアウトメッセージ数の制限に基づいて更新される。単位時間は、疲労期間でありうる。
【００６９】
フロートアウトユニット４２０は、識別値が閾値に達していない場合に、フロートアウトメッセージを受信者に送信して、フロートアウトメッセージを受信者がフロートアウトできるようにするよう構成されている。閾値に達していない識別値は、受信者が現在疲労状態にないことを示す。
【００７０】
疲労制御ベースメッセージフロートアウトサーバは、さらに、疲労制御ユニット４３０を備えうる。疲労制御ユニット４３０は、単位時間内のフロートアウトメッセージ数の制限に基づいて、識別値を更新するよう構成されている。単位時間は、疲労期間でありうる。
【００７１】
管理者は、疲労制御ベースメッセージフロートアウトサーバ上のデータベース４４０内の疲労期間、各ユーザのフロートアウトメッセージ数の制限、各フロートアウトメッセージの優先レベル、および、各フロートアウトメッセージの具体的内容を予め設定できる。例えば、メッセージの疲労期間は１２時間に設定されてよく、フロートアウトメッセージ数の制限は３に設定されてよく、フロートアウトメッセージの具体的内容は、特定の商品の宣伝広告、新しい販売業者に関する情報、または、ディスカウント情報であってよい。具体的内容は、データベース４４０に格納されうる。データベース４４０内には、疲労のレベルを表す識別値が格納されてよく、サーバは、データベース４４０内に各ユーザの疲労レベルを示す識別値を格納する。例えば、初期化時に、フィールド値は、０に設定される。識別値は、０である時には、ユーザが現在疲労状態にないことを示し、更新ユニット４５０は、疲労期間、フロートアウトメッセージ数の制限、および、ユーザに対してすでにフロートアウトされたフロートアウトメッセージの数に基づいて、識別値を更新するよう構成されている。例えば、更新ユニット４５０は、識別値を０にリセットする。
【００７２】
ユーザに対してすでにフロートアウトされたフロートアウトメッセージの数がフロートアウトメッセージ数の制限に達したと、疲労制御ユニット４３０が判定した場合、その後に、疲労期間に達すると、更新ユニット４５０は、例えば０に疲労値を更新する。ユーザに対してすでにフロートアウトされたフロートアウトメッセージの数は、ユーザによって受信されたフロートアウトメッセージの数であり、各フロートアウトメッセージがフロートアウトされた後に疲労制御ベース・メッセージフロートアウトサーバによってデータベースに記録される。ユーザに対してすでにフロートアウトされたフロートアウトメッセージの数がフロートアウトメッセージ数の制限に達していない場合、疲労制御ユニット４３０は、ユーザの疲労期間が終了しているか否かを判定する。疲労期間が終了している場合、疲労期間は更新される。例えば、識別値は、０にリセットされる。疲労期間が終了していない場合、識別値は更新されない。
【００７３】
疲労制御ユニット４３０は、さらに、受信されたフロートアウトメッセージの記録された数が疲労期間内のフロートアウトメッセージ数の制限にすでに達している場合、ユーザが疲労状態にあると判定されるため、識別値を更新するよう構成されている。受信されたフロートアウトメッセージの記録された数がメッセージ数の制限に達していない場合、疲労制御ユニット４３０は、疲労期間が終了しているか否かを判定する。疲労期間が終了している場合、疲労制御ユニット４３０は、識別値を更新する。疲労期間が終了していない場合、疲労制御ユニット４３０は、識別値を更新しない。
【００７４】
いくつかの実施形態において、疲労制御ユニット４３０は、定期的にトリガされる。いくつかの実施形態において、疲労制御ユニット４３０は、フロートアウトユニット４２０がフロートアウトメッセージを受信者に送信した後に、送信成功応答を受信した際にトリガされる。
【００７５】
疲労期間の持続時間は、動的な値であってよく、疲労期間は、例えば、１２時間または２４時間などの持続時間を有してよい。例えば、疲労期間が１２時間に設定された場合、疲労期間は、動的な１２時間の期間である。
【００７６】
各ユーザに対して、識別値の閾値が設定される。識別値が閾値に達した場合、ユーザは現在疲労状態にあり、さらなるメッセージを全く受信することができない。疲労制御ベースメッセージフロートアウトサーバ４００は、次の疲労期間を待って、格納されたメッセージを送信する。例えば、識別値が、１を加算することによって更新され、現在３になった場合、その識別値は、ユーザが現在疲労状態にあり、タスクメッセージを受信できないことを示す。次の疲労期間の初めに、疲労制御ベースメッセージフロートアウトサーバ４００は、識別値を０にリセットすることによって識別値を更新し、疲労制御ユニット４３０は、疲労期間内のフロートアウトメッセージ数の制限に基づいて、識別値を確認する。
【００７７】
疲労判定ユニット４１０は、さらに、識別値が閾値に達している（この時、識別値は、受信者が現在疲労状態にあることを示す）場合に、フロートアウトメッセージを格納するよう構成されている。別の例において、フロートアウトメッセージがフロートアウトの待機中であり、フロートアウトメッセージの受信者の現在のステータスがオフラインである場合に、疲労制御ベースメッセージフロートアウトサーバ４００は、フロートアウトメッセージを格納する。
【００７８】
さらに、疲労判定ユニット４１０は、フロートアウトメッセージの受信者の現在のステータスがオフラインであった後の最初のログインの際に、受信者の識別値が閾値に達しているか否かを判定するよう構成されている。
【００７９】
フロートアウトユニット４２０は、識別値が閾値に達していない場合に、フロートアウトメッセージの優先レベルと、疲労期間内のフロートアウトメッセージ数の制限とに従ってフロートアウトメッセージをフロートアウトするよう構成されている。その識別値は、受信者が現在疲労状態にないことを示す。
【００８０】
さらに、疲労判定ユニット４１０は、フロートアウトメッセージのログに含まれる時間情報が有効期間内であるか否かを最初に判定するよう構成されている。時間情報が有効期間内である場合、疲労制御ベースメッセージフロートアウトサーバ４００は、受信者の識別値が閾値に達しているか否かを判定する。疲労制御ベース・メッセージフロートアウトサーバ４００は、フロートアウトメッセージのログを保持しており、ログは、フロートアウトメッセージの有効期間と比較されるために用いられる時間情報を含むことが理解される。
【００８１】
さらに、フロートアウトメッセージのログは、フロートアウトメッセージのフロートアウトが強制的であるか否かを判定するために用いられる強制情報も含む。疲労判定ユニット４１０は、さらに、フロートアウトメッセージのフロートアウトが強制的であるか否かについての情報をフロートアウトメッセージが含むか否かを最初に判定するよう構成されている。フロートアウトメッセージのフロートアウトが強制的でない場合、疲労判定ユニット４１０は、受信者の識別値が閾値に達しているか否かを判定するよう構成されている。
【００８２】
したがって、疲労期間、フロートアウトメッセージの優先レベル、および、フロートアウトメッセージ数の制限に基づいて、ユーザのためにフロートアウトメッセージの疲労制御を実行することにより、本願は、ユーザが、許容疲労期間内に、関心のあるおよび重要なフロートアウトメッセージを受信することを可能にする。
【００８３】
図５は、疲労制御ベース・インスタントメッセージングクライアントの一実施形態を示す概略図である。疲労制御ベース・インスタントメッセージングクライアント５００は、疲労判定ユニット５１０と、フロートアウトユニット５２０と、疲労制御ユニット５３０と、データベース５４０と、を備える。
【００８４】
疲労判定ユニット５１０は、フロートアウトメッセージが受信された場合に、識別値が閾値に達しているか否かを判定するよう構成されている。識別値は、フロートアウトメッセージの受信者が現在疲労状態にあるか否かを示し、単位時間内のフロートアウトメッセージ数の制限に基づいて更新される。
【００８５】
フロートアウトユニット５２０は、識別値が閾値に達していない場合に、フロートアウトメッセージをフロートアウトするよう構成されている。閾値に達していない識別値は、受信者が現在疲労状態にないことを示す。
【００８６】
フロートアウトユニット５２０は、さらに、例えば１を識別値に加算すると共に、受信されたフロートアウトメッセージの数を記録するよう構成されている。
【００８７】
この時、疲労制御ベース・インスタントメッセージングクライアント５００は、疲労期間内にすでに受信されたフロートアウトメッセージの数（例えば、１つのフロートアウトメッセージがこれまでに受信されているとする）を記録する。疲労期間、すでに受信されたフロートアウトメッセージの数、フロートアウトメッセージ数の制限の間の対応関係が格納され、それに従って、識別値および閾値が疲労制御ベース・インスタントメッセージングクライアント５００に記録されていることに注意されたい。この識別値と上述の情報との間の対応関係も存在する。
【００８８】
例えば、識別値の初期値は、例えば０である。フロートアウトメッセージが受信されているので、１を加算した後、識別値は１になる。同時に、疲労制御ベース・インスタントメッセージングクライアント５００は、さらに、受信したフロートアウトメッセージの数を１と記録する。疲労判定ユニット５１０は、メッセージの各フロートアウト後に識別値が更新されるべきか否かを判定するので、疲労制御ユニット５１０は、疲労期間中に受信された１つのフロートアウトメッセージがフロートアウトメッセージ数の制限に達したと判定する。例えば、フロートアウトメッセージ数の制限は３であってよい。したがって、識別値は、更新される必要がない。
【００８９】
疲労制御ユニット５３０は、単位時間内のフロートアウトメッセージ数の制限に基づいて、識別値を更新するよう構成されている。例えば、単位時間は、疲労期間でありうる。
【００９０】
疲労判定ユニット５１０は、さらに、識別値が閾値に達している場合に、フロートアウトメッセージを格納するよう構成されている。閾値に達した識別値は、受信者が現在疲労状態にあることを示す。
【００９１】
例えば、疲労判定ユニット５１０は、識別値が２であり、すでに閾値に達していると判定する。したがって、疲労判定ユニット５１０は、フロートアウトメッセージを一時的にローカルデータベース５４０に格納し、疲労制御ユニット５３０による識別値の更新を待つ。換言すると、疲労制御ユニット５３０は、識別値を更新する前に、次の疲労期間に入るのを待つ。次の疲労期間を待つ間に、疲労制御ベース・インスタントメッセージングクライアント５００が、フロートアウトすべきさらなる３つのフロートアウトメッセージを受信すると仮定する。疲労制御ベース・インスタントメッセージングクライアント５００は、現在、４つのフロートアウトメッセージを格納している。疲労制御ユニット５３０は、別のフロートアウトメッセージが受信されるごとに、疲労期間が終了したか否かを判定するようトリガされうる、もしくは、疲労制御ユニット５３０は、疲労期間が終了したか否かを定期的に（例えば、５分ごとに）判定しうる。疲労期間が終了した場合、識別値は更新（例えば０にリセット）され、次の疲労期間に入る。この時、すでに受信されたフロートアウトメッセージの記録された数は０であり、疲労期間中のフロートアウトメッセージ数の制限は３であり、識別値は０である。
【００９２】
したがって、フロートアウトユニット５２０は、さらに、識別値が更新された後に、フロートアウトメッセージの優先レベルと、疲労期間内のフロートアウトメッセージ数の制限とに従って、格納されたフロートアウトメッセージをフロートアウトするよう構成されている。
【００９３】
疲労制御ユニット５３０は、さらに、受信されたフロートアウトメッセージの記録された数が疲労期間内のフロートアウトメッセージ数の制限にすでに達している場合、識別値を更新するよう構成されている。疲労期間中のフロートアウトメッセージ数の制限に達することにより、受信されたフロートアウトメッセージの記録された数は、ユーザが疲労状態にあることを示す。受信されたフロートアウトメッセージの記録された数がメッセージ数の制限に達している場合、疲労制御ユニット５３０は、受信者が疲労状態にあると判定し、フロートアウトメッセージを格納する。疲労期間がすでに終了している場合、識別値は更新される。疲労期間が終了していない場合、識別値は更新されない。
【００９４】
いくつかの実施形態において、疲労制御ユニット５３０は、定期的にトリガされる。いくつかの実施形態において、疲労制御ユニット５３０は、フロートアウトユニット５２０がフロートアウトメッセージをフロートアウトした後に、クライアントから送信成功応答を受信した際にトリガされる。
【００９５】
識別値は、ユーザの疲労レベルを示すために用いられるフィールド値であり、ユーザがインスタントメッセージングクライアントを登録した時にすでに設定されていることが理解される。例えば、登録時に、識別値は、０に設定される。識別値は、０である時、ユーザが現在疲労状態にないことを示す。メッセージの各フロートアウトの後、または、定期的に、インスタントメッセージングクライアントの疲労制御５３０は、疲労期間、疲労期間内のフロートアウトメッセージ数の制限、および、ユーザによってすでに受信されたフロートアウトメッセージ数に基づいて、疲労レベルを示す識別値を更新する。識別値の更新は、初期値を０にリセットしうる。
【００９６】
また、疲労期間および疲労期間内のフロートアウトメッセージ数の制限は、インスタントメッセージングクライアント上でユーザによって予め設定されうることが理解される。例えば、疲労期間および疲労期間内のフロートアウトメッセージ数の制限は、インスタントメッセージングクライアントがインストールされた後に設定されうる。ユーザは、適切であると考えられる疲労期間（例えば、１０時間）を設定し、ユーザが１０時間の疲労期間中に受信できるフロートアウトメッセージ数の制限は、例えば、３メッセージである。換言すると、ユーザが疲労期間中に受診できるフロートアウトメッセージ数の制限は、疲労期間中に受信されるフロートアウトメッセージの最大数が３であることを示しており、識別値の更新は、疲労期間内のフロートアウトメッセージ数の制限に基づいて実行される。識別値の閾値は、フロートアウトメッセージ数の制限に従って設定される。例えば、閾値は、２に設定される。
【００９７】
したがって、疲労制御ベース・インスタントメッセージングクライアント５００は、疲労制御の積極的な設定を実施できる。ユーザは、疲労期間および疲労期間内のフロートアウトメッセージ数の制限を設定して、特定の単位時間内に受信するフロートアウトメッセージの数を制御できる。ユーザがインスタントメッセージングクライアントにログインした際に、フロートアウトに向けて受信すべき複数のフロートアウトメッセージがあれば、フロートアウトメッセージは、フロートアウトメッセージの優先レベルに基づいてフロートアウトされる。優先レベルは、重要および関心のあるメッセージをフロートアウトするために用いられる。
【００９８】
上述のユニットは、１または複数の汎用プロセッサ上で実行されるソフトウェアコンポーネントとして、特定の機能を実行するよう設計されたプログラム可能論理デバイスおよび／または特定用途向け集積回路などのハードウェアとして、もしくは、それらの組み合わせとして実装することができる。いくつかの実施形態において、ユニットは、コンピュータデバイス（パーソナルコンピュータ、サーバ、ネットワーク装置など）に本発明の実施形態に記載された方法を実行させるための複数の命令など、不揮発性記憶媒体（光学ディスク、フラッシュ記憶装置、携帯用ハードディスクなど）に格納することができるソフトウェア製品の形態で具現化されてよい。ユニットは、単一のデバイス上に実装されてもよいし、複数のデバイスにわたって分散されてもよい。ユニットの機能は、互いに統合されてもよいし、複数のサブユニットにさらに分割されてもよい。
【００９９】
本明細書に開示の実施形態に照らして説明した方法またはアルゴリズム工程は、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、または、両方の組み合わせを用いて実施されうる。ソフトウェアモジュールは、ランダムアクセスメモリ（ＲＡＭ）、メモリ、読み出し専用メモリ（ＲＯＭ）、電気的プログラム可能ＲＯＭ、電気的消去可能プログラム可能ＲＯＭ、レジスタ、ハードドライブ、リムーバブルディスク、ＣＤ−ＲＯＭ、または、任意の他の形態の当業者に周知の記憶媒体内にインストールされてよい。
【０１００】
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供された詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示された実施形態は、例示であり、限定を意図するものではない。
適用例１：フロートアウトメッセージを制御するための方法であって、受信者への送信の準備ができたフロートアウトメッセージがある場合に、前記フロートアウトメッセージの前記受信者の現在のステータスを判定し、前記受信者の前記現在のステータスがオンラインである場合に、１または複数のプロセッサを用いて、前記受信者の識別値が閾値に達しているか否かを判定することを含む前記フロートアウトメッセージが前記受信者に送信されるべきか否かの判定を行い、前記識別値は、前記受信者が現在疲労状態にあると見なされるか否か、または、前記受信者が持つと見なされる疲労のレベルを示すために用いられ、前記識別値が前記閾値に達していない場合に、前記受信者がフロートアウトできるように前記フロートアウトメッセージを前記受信者にプッシュ通知し、前記識別値を更新すること、を備える、方法。
適用例２：適用例１に記載の方法であって、さらに、前記識別値が前記閾値に達している場合に、前記フロートアウトメッセージを格納することを備える、方法。
適用例３：適用例１に記載の方法であって、さらに、前記受信者によって受信されたフロートアウトメッセージの数を記録することを備える、方法。
適用例４：適用例１に記載の方法であって、さらに、フロートアウトメッセージが前記受信者に送信される準備ができており、前記フロートアウトメッセージの前記受信者の前記現在のステータスがオフラインである場合に、前記フロートアウトメッセージを格納することを備える、方法。
適用例５：適用例４に記載の方法であって、さらに、前記識別値の更新の前に、疲労期間、前記疲労期間内のフロートアウトメッセージ数の制限、および、前記フロートアウトメッセージの優先レベルを設定し、前記フロートアウトメッセージの前記受信者の前記現在のステータスがオフラインであった後の最初のログイン時に、前記受信者の前記識別値が前記閾値に達しているか否かを判定し、前記識別値が前記閾値に達していない場合に、前記メッセージの優先レベルと、前記疲労期間内の前記フロートアウトメッセージ数の制限とに従って、前記フロートアウトメッセージを前記受信者に送信し、前記識別値は、前記受信者が現在疲労状態にないと見なされることを示すこと、を備える、方法。
適用例６：適用例１に記載の方法であって、さらに、前記フロートアウトメッセージのログを記録し、前記ログは、前記フロートアウトメッセージの有効期間を表すために用いられる時間情報を含み、前記フロートアウトメッセージの前記ログの前記時間情報が前記有効期間内にあるか否かを判定すること、を備え、前記受信者の前記識別値が前記閾値に達しているか否かの判定は、前記フロートアウトメッセージが前記有効期間内にある場合にが実行される、方法。
適用例７：適用例１に記載の方法であって、さらに、前記フロートアウトメッセージのログを記録し、前記ログは、前記フロートアウトメッセージのフロートアウトが強制的であるか否かを示すために用いられる強制情報を含み、前記フロートアウトメッセージの前記ログの前記強制情報が、前記フロートアウトメッセージのフロートアウトが強制的であることを示すか否かを判定し、前記フロートアウトメッセージが強制的でないことを前記強制情報が示す場合に、前記受信者の前記識別値が前記閾値に達しているか否かを判定すること、を備える、方法。
適用例８：適用例３に記載の疲労制御ベース・メッセージフロートアウト方法であって、さらに、前記識別値の更新の前に、疲労期間、および、前記疲労期間内のフロートアウトメッセージ数の制限を設定することを備え、前記識別値の更新は、前記受信者によって受信されたフロートアウトメッセージの前記記録された数が前記メッセージ数の制限に達している場合に、前記識別値を更新し、前記受信者によって受信されたフロートアウトメッセージの前記記録された数が前記メッセージ数の制限に達していない場合に、前記疲労期間が終了しているか否かを判定し、前記疲労期間が終了している場合に、前記識別値を更新すること、を備える、方法。
適用例９：適用例８に記載の疲労制御ベース・メッセージフロートアウト方法であって、前記識別値の更新は、定期的にトリガされる、または、前記フロートアウトメッセージを前記受信者にプッシュ通知した後に送信成功応答を受信した際にトリガされる、方法。
適用例１０：フロートアウトメッセージを制御する方法であって、フロートアウトメッセージが受信された場合に、１または複数のプロセッサを用いて、識別値が閾値に達しているか否かを判定し、前記識別値は、前記フロートアウトメッセージの受信者が現在疲労状態にあると見なされるか否か、または、前記受信者が持つと見なされる疲労のレベルを示すために用いられ、前記識別値が前記閾値に達していない場合に、前記フロートアウトメッセージをフロートアウトし、前記識別値は、前記受信者が現在疲労状態にないことをし、前記識別値を更新すること、を備える、方法。
適用例１１：適用例１０に記載の方法であって、さらに、前記識別値が前記閾値に達している場合に、前記フロートアウトメッセージを格納することを備える、方法。
適用例１２：適用例１０に記載の方法であって、さらに、受信されたフロートアウトメッセージの数を記録することを備える、方法。
適用例１３：適用例１１に記載の方法であって、さらに、前記識別値の更新の前に、疲労期間、前記疲労期間内のフロートアウトメッセージ数の制限、および、前記フロートアウトメッセージの優先レベルを設定し、前記識別値の更新後に、前記優先レベルと、前記疲労期間内の前記フロートアウトメッセージ数の制限とに従って、前記格納されたフロートアウトメッセージをフロートアウトすること、を備える、方法。
適用例１４：適用例１２に記載の方法であって、さらに、前記識別値の更新の前に、疲労期間、および、前記疲労期間内のフロートアウトメッセージ数の制限を設定することを備え、前記識別値の更新は、前記受信フロートアウトメッセージの前記記録された数が前記疲労期間内の前記フロートアウトメッセージ数の制限に達している場合に、前記識別値を更新し、前記フロートアウトメッセージ数の制限に達した前記受信フロートアウトメッセージの前記記録された数は、前記受信者が現在疲労状態にあると見なされることを示し、前記受信フロートアウトメッセージの前記記録された数が前記疲労期間内の前記フロートアウトメッセージ数の制限に達していない場合に、前記疲労期間が終了しているか否かを判定し、疲労期間が終了している場合に、前記識別値を更新すること、を含む、方法。
適用例１５：適用例１４に記載の方法であって、前記識別値の更新は、定期的にトリガされる、または、前記フロートアウトメッセージの前記フロートアウト後にトリガされる、方法。
適用例１６：  フロートアウトメッセージを制御するためのシステムであって、少なくとも１つのプロセッサであって、受信者への送信の準備ができたフロートアウトメッセージがある場合に、前記フロートアウトメッセージの前記受信者の現在のステータスを判定し、前記受信者の前記現在のステータスがオンラインである場合に、前記受信者の識別値が閾値に達しているか否かを判定して、前記フロートアウトメッセージが前記受信者に送信されるべきか否かを判定し、前記識別値は、前記受信者が現在疲労状態にあると見なされるか否か、または、前記受信者が持つと見なされる疲労のレベルを示すために用いられ、前記識別値が前記閾値に達していない場合に、前記受信者がフロートアウトできるように、前記フロートアウトメッセージを前記受信者にプッシュ通知し、前記識別値を更新するよう構成されている、少なくとも１つのプロセッサと、前記少なくとも１つのプロセッサに接続され、前記少なくとも１つのプロセッサに命令を提供するよう構成されているメモリと、を備える、システム。
適用例１７：フロートアウトメッセージを制御するためのインスタントメッセージングクライアントであって、少なくとも１つのプロセッサであって、フロートアウトメッセージが受信された場合に、識別値が閾値に達しているか否かを判定し、前記識別値は、前記フロートアウトメッセージの受信者が現在疲労状態にあると見なされるか否か、または、前記受信者が持つと見なされる疲労のレベルを示すために用いられ、前記識別値が前記閾値に達していない場合に、前記フロートアウトメッセージをフロートアウトし、前記識別値は、前記受信者が現在疲労状態にないことを示し、前記識別値を更新するよう構成されたている、少なくとも１つのプロセッサと、前記少なくとも１つのプロセッサに接続され、前記少なくとも１つのプロセッサに命令を提供するよう構成されているメモリと、を備える、インスタントメッセージングクライアント。
適用例１８：フロートアウトメッセージを制御するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、持続性で有形のコンピュータ読み取り可能な記憶媒体内に具現化され、受信者への送信の準備ができたフロートアウトメッセージがある場合に、前記フロートアウトメッセージの前記受信者の現在のステータスを判定するためのコンピュータ命令と、前記受信者の前記現在のステータスがオンラインである場合に、前記受信者の識別値が閾値に達しているか否かを判定することを含む、前記フロートアウトメッセージが前記受信者に送信されるべきか否かを判定するためのコンピュータ命令と、前記識別値は、前記受信者が現在疲労状態にあると見なされるか否か、または、前記受信者が持つと見なされる疲労のレベルを示すために用いられ、前記識別値が前記閾値に達していない場合に、前記受信者がフロートアウトできるように、前記フロートアウトメッセージを前記受信者にプッシュ通知するためのコンピュータ命令と、前記識別値を更新するためのコンピュータ命令と、を備える、コンピュータプログラム製品。
適用例１９：フロートアウトメッセージを制御するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、持続性で有形のコンピュータ読み取り可能な記憶媒体内に具現化され、フロートアウトメッセージが受信された場合に、識別値が閾値に達しているか否かを判定するためのコンピュータ命令と、前記識別値は、前記フロートアウトメッセージの受信者が現在疲労状態にあると見なされるか否か、または、前記受信者が持つと見なされる疲労のレベルを示すために用いられ、前記識別値が前記閾値に達していない場合に、前記フロートアウトメッセージをフロートアウトするためのコンピュータ命令と、前記識別値は、前記受信者が現在疲労状態にないことを示し、前記識別値を更新するためのコンピュータ命令と、を備える、コンピュータプログラム製品。
【図１】
0006031119.tif 000002
【図２】
0006031119.tif 000003
【図３】
0006031119.tif 000004
【図４】
0006031119.tif 000005
【図５】
0006031119.tif 000006