(57)【要約】【課題】  接続のための優先度を状況に応じて変化させることで、電子機器間の接続を制御できるようにする。【解決手段】  サーバ装置であって、各ユーザ間で送受信されるチャットメッセージの送受信の頻度を判定する解析部３０２と、前記判定された頻度に基づいて、所定周期で、各ユーザ間の優先度を判定するアクティブ判定部３０３と、機器アクセスメッセージが送信された場合に、該機器アクセスメッセージを送信した機器とその宛先の機器にそれぞれ関連付けられたユーザ間における前記優先度に基づいて、該送信された機器アクセスメッセージが他の機器アクセスメッセージに優先して転送すべきか否かを判定する優先ユーザ判定部３０４と、優先して転送すべきと判定された場合に、前記送信された機器アクセスメッセージを転送する配信処理部３０１とを備える。【選択図】  図３
2013120571.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに送信されたメッセージを転送するサーバ装置であって、
前記ネットワークを介して、各ユーザ間で送受信されるチャットメッセージの送受信の頻度を判定する頻度判定手段と、
前記頻度判定手段により判定された頻度に基づいて、所定周期で、各ユーザ間の優先度を判定する優先度判定手段と、
前記ネットワークに接続された機器を動作させるための機器アクセスメッセージが送信された場合に、該機器アクセスメッセージを送信した機器に関連付けられたユーザと、該機器アクセスメッセージの宛先の機器に関連付けられたユーザとの間の優先度を、前記優先度判定手段より取得し、該取得した優先度に基づいて、該送信された機器アクセスメッセージが他の機器アクセスメッセージに優先して転送すべきか否かを判定する転送判定手段と、
前記転送判定手段により、他の機器アクセスメッセージに優先して転送すべきと判定された場合に、前記送信された機器アクセスメッセージを転送する転送手段と
を備えることを特徴とするサーバ装置。
【請求項２】
前記ネットワークに接続された機器を動作させるための機器アクセスメッセージが送信された場合に、該機器アクセスメッセージの宛先の機器の負荷を判定する負荷判定手段を更に備え、
前記転送判定手段は、
前記負荷判定手段により、前記機器アクセスメッセージの宛先の機器の負荷が所定の閾値以上であった場合に、該送信された機器アクセスメッセージが他の機器アクセスメッセージに優先して転送すべきか否かを判定することを特徴とする請求項１に記載のサーバ装置。
【請求項３】
前記転送手段は、
前記転送判定手段において、前記送信された機器アクセスメッセージが他の機器アクセスメッセージに優先して転送すべきでないと判定された場合には、該送信された機器アクセスメッセージの転送を保留し、該保留の回数が所定の閾値を超えた場合には、前記機器アクセスメッセージを送信した機器に、エラーメッセージを転送することを特徴とする請求項２に記載のサーバ装置。
【請求項４】
前記頻度判定手段は、
前記ネットワークを介して、各ユーザ間で送受信されるチャットメッセージのうち、前記機器に関するキーワードを含むチャットメッセージの送受信の頻度を判定し、
前記優先度判定手段は、前記頻度判定手段により判定された頻度に基づいて、所定周期で、各ユーザ間の優先度を判定することを特徴とする請求項３に記載のサーバ装置。
【請求項５】
ネットワークに送信されたメッセージを転送するサーバ装置における情報処理方法であって、
頻度判定手段が、前記ネットワークを介して、各ユーザ間で送受信されるチャットメッセージの送受信の頻度を判定する頻度判定工程と、
優先度判定手段が、前記頻度判定工程において判定された頻度に基づいて、所定周期で、各ユーザ間の優先度を判定する優先度判定工程と、
転送判定手段が、前記ネットワークに接続された機器を動作させるための機器アクセスメッセージが送信された場合に、該機器アクセスメッセージを送信した機器に関連付けられたユーザと、該機器アクセスメッセージの宛先の機器に関連付けられたユーザとの間の優先度を、前記優先度判定手段より取得し、該取得した優先度に基づいて、該送信された機器アクセスメッセージが他の機器アクセスメッセージに優先して転送すべきか否かを判定する転送判定工程と、
転送手段が、前記転送判定工程において、他の機器アクセスメッセージに優先して転送すべきと判定された場合に、前記送信された機器アクセスメッセージを転送する転送工程と
を備えることを特徴とするサーバ装置の情報処理方法。
【請求項６】
コンピュータを、請求項１乃至４のいずれか１項に記載のサーバ装置の各手段として機能させるためのプログラムを格納したコンピュータ読取可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はサーバ装置及び情報処理方法に関する。
【背景技術】
【０００２】
近年、デジタルカメラやデジタルディスプレイ等の電子機器では、通信機能を搭載したものが一般的となっている。これに伴い、ユーザは、ネットワークを介して接続された他の機器を介して、当該電子機器固有の機能を利用したり、制御したりすることが可能である。更には、そのような電子機器をネットワークに複数台接続することで、当該電子機器間で相互の機能を利用することも可能である。
【０００３】
ネットワーク上に接続される電子機器間で相互の機能を利用するにあたっては、相互のアクセスを適切に制御する必要があり、従来より、種々の方法が提案されている。
【０００４】
例えば、下記特許文献１では、他の機器からの接続を受け付ける電子機器において、許容する接続数を超えた場合に、接続の切断数を抑えつつ、優先する接続要求を受け入れるようにするための接続制御装置が提案されている。
【０００５】
同文献の接続制御装置によれば、複数のユーザ識別子からなるグループごとに、最大接続数と優先的に接続するユーザの端末識別情報とを保持したユーザ管理テーブルを使用する。そして、接続要求を行ったユーザのグループが接続最大数に達した場合に、ユーザ管理テーブルを参照し、ユーザの端末識別情報に基づいて、優先的に接続すべきか否かを決定する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４５４１８４８号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記特許文献１に開示された接続制御装置の場合、接続のための優先度を、ユーザがあらかじめユーザ管理テーブルに設定しておく必要がある。このため、利用シーンによって刻々と変化する接続相手の電子機器との関係やその場の状況に応じて、優先度を変化させたり、接続を制御したりすることができないという問題があった。
【０００８】
本発明は、上記課題に鑑みてなされたものであり、接続のための優先度を状況に応じて変化させることで、電子機器間の接続を制御できるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成するために、本発明に係る情報処理装置は、例えば、以下のような構成を備える。即ち、
ネットワークに送信されたメッセージを転送するサーバ装置であって、
前記ネットワークを介して、各ユーザ間で送受信されるチャットメッセージの送受信の頻度を判定する頻度判定手段と、
前記頻度判定手段により判定された頻度に基づいて、所定周期で、各ユーザ間の優先度を判定する優先度判定手段と、
前記ネットワークに接続された機器を動作させるための機器アクセスメッセージが送信された場合に、該機器アクセスメッセージを送信した機器に関連付けられたユーザと、該機器アクセスメッセージの宛先の機器に関連付けられたユーザとの間の優先度を、前記優先度判定手段より取得し、該取得した優先度に基づいて、該送信された機器アクセスメッセージが他の機器アクセスメッセージに優先して転送すべきか否かを判定する転送判定手段と、
前記転送判定手段により、他の機器アクセスメッセージに優先して転送すべきと判定された場合に、前記送信された機器アクセスメッセージを転送する転送手段とを備える。
【発明の効果】
【００１０】
本発明によれば、接続のための優先度を状況に応じて変化させることで、電子機器間の接続が制御できるようになる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態における、メッセージシステムを示す図である。
【図２】第１の実施形態における、メッセージサーバ、チャットクライアント、機器クライアントの構成を示す図である。
【図３】第１の実施形態における、メッセージサーバのプログラムモジュールの構成、及び、チャットクライアントのプログラムモジュールの構成を示す図である。
【図４】第１の実施形態における、チャットメッセージ及び機器アクセスメッセージを示す図である。
【図５】第１の実施形態における、ユーザ及びクライアントを特定する識別子が記録された識別テーブルを示す図である。
【図６】第１の実施形態における、メッセージイベントの動作事象を示す図である。
【図７】第１の実施形態における、メッセージサーバの配信処理を示すフローチャートである。
【図８】第１の実施形態における、メッセージサーバのメッセージ解析処理を示すフローチャートである。
【図９】第１の実施形態における、チャットメッセージ転送処理を示すフローチャートである。
【図１０】第１の実施形態における、メッセージログ情報を示す図である。
【図１１】第１の実施形態における、アクティブ度判定処理を示すフローチャートである。
【図１２】第１の実施形態における、アクティブ度情報を示す図である。
【図１３】第１の実施形態における、機器アクセスメッセージ転送処理を示すフローチャートである。
【図１４】第１の実施形態における、負荷見積もり対応表及び負荷状態テーブルを示す図である。
【図１５】第１の実施形態における、優先ユーザ判定処理を示すフローチャートである。
【図１６】第１の実施形態における、タイムポイントｔ１６の説明に用いるチャットメッセージ及び機器アクセスメッセージを示す図である。
【図１７】第２の実施形態における、チャットメッセージ転送処理を示すフローチャートである。
【図１８】第２の実施形態における、メッセージログ情報を示す図である。
【図１９】第２の実施形態における、アクティブ度情報を示す図である。
【図２０】第２の実施形態における、優先ユーザ判定処理を示すフローチャートである。
【図２１】第３の実施形態における、チャットメッセージを示す図である。
【図２２】第３の実施形態における、チャットメッセージ転送処理を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の各実施形態について、図面を参照しながら詳細に説明する。
【００１３】
［第１の実施形態］
本実施形態では、機器クライアントにアクセスするためのユーザの優先度を、ユーザ間のチャットメッセージの送受信の頻度により決定するメッセージシステムについて説明する。
【００１４】
＜１．メッセージシステムの構成＞
本実施形態に係るサーバ装置を含むメッセージシステム１００の構成を、図１を用いて説明する。本実施形態に係るサーバ装置は、メッセージサーバ１０１である。
【００１５】
図１に示すように、メッセージサーバ１０１には、チャットクライアント１１１〜１１４と、機器クライアント１２１〜１２４とが、ネットワーク１０２を介して接続されている。本実施形態において、チャットクライアント１１１〜１１４は、それぞれパーソナルコンピュータ（以下、「ＰＣ」という）である。また、機器クライアント１２１はデジタルカメラであり、機器クライアント１２２〜１２４はディスプレイである。
【００１６】
なお、チャットクライアント１１１〜１１４をまとめて、以降「チャットクライアント」と呼ぶ。チャットクライアントは、ユーザとユーザとの会話（チャット）を行うためのメッセージクライアントである。チャットクライアントが他のチャットクライアントを宛先として送信するチャットメッセージは、メッセージサーバ１０１を経由して、宛先のチャットクライアントに転送される。なお、ユーザ間の会話のことを、以降「チャット」と呼ぶ。
【００１７】
また、機器クライアント１２１〜１２４をまとめて、以降「機器クライアント」と呼ぶ。機器クライアントは、それぞれ、他の機器クライアントを介して、機器クライアントが公開しているサービスを利用させる目的で、ネットワーク１０２に接続されている。
【００１８】
機器クライアントが他の機器クライアントを宛先として送信する機器アクセスメッセージは、メッセージサーバ１０１を経由して、宛先の機器クライアントに転送される。機器アクセスメッセージを受信した機器クライアントでは、機器アクセスメッセージの内容に従って、機器クライアントが公開しているサービスを実行する。機器クライアントが公開しているサービスを利用する動作のことを、以降「機器アクセス」と呼ぶ。
【００１９】
本実施形態において、デジタルカメラである機器クライアント１２１は、デジタルカメラの撮影機能を遠隔操作するための機能、及び、映像や画像を遠隔に送信するためのネットワークサービス機能を備えている。また、ディスプレイである機器クライアント１２２〜１２４は、映像や画像を取得・表示したり、デジタルカメラの撮影機能を遠隔操作するためのコマンドを入力したりするユーザインターフェース機能を備えている。
【００２０】
以上のようなメッセージシステム１００のもとで実行される機器アクセスの一例を簡単に説明する。
【００２１】
ディスプレイである機器クライアント１２２から、デジタルカメラである機器クライアント１２１に対して、画像データの送信を要求する機器アクセスメッセージを、メッセージサーバ１０１経由で送信する。機器クライアント１２１では、画像データの送信を要求する機器アクセスメッセージを受信すると、指定された画像データを機器アクセスメッセージに含めて、メッセージサーバ１０１経由で機器クライアント１２２に対して返信する。これにより、機器クライアント１２２では、機器クライアント１２１に格納されている画像データを取得し、画面に表示することができる。
【００２２】
次に、ユーザと、チャットクライアント及び機器クライアント（以降、チャットクライアント及び機器クライアントをまとめて「クライアント」と呼ぶ。）との関係について説明する。
【００２３】
本実施形態では、ユーザＡ（１５１）、ユーザＢ（１５２）、ユーザＣ（１５３）、ユーザＤ（１５４）の４人のユーザがいる。ユーザＡ（１５１）は、チャットクライアント１１１及び機器クライアント１２１の２台のクライアントを使用している。
【００２４】
ユーザＢ（１５２）は、チャットクライアント１１２及び機器クライアント１２２の２台のクライアントを使用している。ユーザＣ（１５３）は、チャットクライアント１１３及び機器クライアント１２３の２台のクライアントを使用している。ユーザＤ（１５４）は、チャットクライアント１１４及び機器クライアント１２４の２台のクライアントを使用している。
【００２５】
＜２．メッセージシステムを構成するメッセージサーバ及びクライアントの機能構成＞
次に、本実施形態のメッセージシステム１００を構成するメッセージサーバ１０１及びクライアント１１１〜１１４、１２１〜１２４の機能構成について説明する。まず、メッセージサーバ１０１の機能構成を、図２（Ａ）を用いて説明する。
【００２６】
＜２．１  メッセージサーバの機能構成＞
メッセージサーバ１０１は、ＣＰＵ２１１、メモリ２１２、操作部２１３及び通信インターフェース２１４がバス２１５を介して接続されている。ＣＰＵ２１１は演算装置であり、後述のメモリ２１２に記憶されたサーバプログラムを読み出して実行する。
【００２７】
メモリ２１２は、ＣＰＵ２１１に実行させるためのサーバプログラムを記憶する（コンピュータ読取可能に記憶する）。メモリ２１２に記憶されるサーバプログラムのモジュール構成は図３（ａ）に示すとおりである。
【００２８】
図３（ａ）において、配信処理部３０１は、メッセージの配信処理（転送手段）及び頻度判定手段等を実現するプログラムモジュールである。配信処理部３０１の動作の詳細は後述する。
【００２９】
解析部３０２は、配信処理部３０１が扱うメッセージを解析する処理を実現するプログラムモジュールである。解析部３０２の動作の詳細は後述する。
【００３０】
アクティブ判定部３０３は、ユーザとユーザとの間のアクティブ度合いを判定する優先度判定手段を実現するプログラムモジュールである。アクティブ判定部３０３の動作の詳細は後述する。
【００３１】
優先ユーザ判定部３０４は、機器クライアントを優先的に利用できるユーザか否かを判定する転送判定手段を実現するプログラムモジュールである。優先ユーザ判定部３０４の動作の詳細は後述する。
【００３２】
負荷判定部３０５は、機器クライアントの動作負荷を見積もり、処理能力を超えるか否かを判断する機能を実現するプログラムモジュールである。負荷判定部３０５の動作の詳細は後述する。
【００３３】
負荷超過判定部３０６は、負荷判定部３０５で見積もった負荷が、機器クライアントにとって超過とみなすか否かを判定する機能を実現するプログラムモジュールである。負荷超過判定部３０６の動作の詳細は後述する。
【００３４】
閾値設定部３０７は、種々の閾値を設定する機能を実現するプログラムモジュールである。
【００３５】
タイムモジュール３０８はイベントが発生したタイムポイントを取得する機能を実現するプログラムモジュールである。該タイムポイントは、メッセージサーバ１０１内の不図示の時計から得られる時刻であってもよいし、メッセージサーバ１０１内の不図示のカウンタから得られる数値であってもよい。
【００３６】
図２（Ａ）に戻る。通信インターフェース２１４は、ネットワーク１０２と接続して、クライアントとの間でメッセージの送受信を行う。操作部２１３は、メッセージサーバ１０１を操作するために用いられる。操作部２１３には、表示器及び操作キーボード等が含まれる。
【００３７】
＜２．２  チャットクライアントの機能構成＞
次に、チャットクライアント１１１の機能構成を、図２（Ｂ）を用いて説明する。チャットクライアント１１１は、ＣＰＵ２３１、メモリ２３２、操作部２３３及び通信インターフェース２３４がバス２３５を介して接続されている。ＣＰＵ２３１は演算装置であり、後述のメモリ２３２に記憶されたチャットクライアントプログラムを読み出して実行する。
【００３８】
メモリ２３２は、ＣＰＵ２３１に実行させるためのチャットクライアントプログラムを記憶する（コンピュータ読取可能に記憶する）。メモリ２３２に記憶されるチャットクライアントプログラムのモジュール構成は図３（ｂ）に示すとおりである。
【００３９】
メッセージ処理部３１０は、メッセージサーバ１０１と接続し、メッセージを送受信する機能を実現するためのプログラムモジュールである。メッセージ処理部３１０の動作の詳細は後述する。
【００４０】
図２（Ｂ）に戻る。通信インターフェース２３４は、ネットワーク１０２と接続して、メッセージサーバ１０１との間でメッセージの送受信を行う。操作部２３３は、チャットクライアント１１１を操作するために用いられる。操作部２３３には、表示器及び操作キーボード等が含まれる。
【００４１】
なお、チャットクライアント１１２〜１１４もチャットクライアント１１１と同様に構成される。
【００４２】
＜２．３  機器クライアントの機能構成＞
次に、機器クライアント１２１の機能構成を、図２（Ｃ）を用いて説明する。機器クライアント１２１は、ＣＰＵ２４１、メモリ２４２、操作部２４３及び通信インターフェース２４４、デジタルカメラ部２４５がバス２４６を介して接続されている。ＣＰＵ２４１は演算装置であり、後述のメモリ２４２に記憶された機器クライアントプログラムを読み出して実行する。
【００４３】
メモリ２４２は、ＣＰＵ２４１に実行させるための機器クライアントプログラムを記憶する（コンピュータ読取可能に記憶する）。メモリ２４２に記憶される機器クライアントプログラムのモジュール構成は、前述のチャットクライアントプログラムのモジュール構成と同じである。
【００４４】
操作部２４３は、機器クライアント１２１を操作するために用いられる。操作部２４３には、表示器及び操作キーボード等が含まれる。
【００４５】
なお、機器クライアント１２２〜１２４は、図２（Ｃ）に示した機器クライアント１２１の構成のうち、デジタルカメラ部２４５がディスプレイ部となるが、その他の構成は機器クライアント１２１と同様に構成される。
【００４６】
＜３．メッセージシステムにおけるチャット動作及び機器アクセス動作の説明＞
次に、メッセージシステム１００において実行される、チャット動作及び機器アクセス動作の概要について説明する。
【００４７】
＜３．１  識別テーブルの構成＞
はじめに、チャット動作時及び機器アクセス動作時に、クライアント１１１〜１１４、１２１〜１２４、及びユーザ１５１〜１５４を識別するためにメッセージサーバ１０１に管理された、識別テーブルについて説明する。
【００４８】
本実施形態において、ユーザ及びクライアントには、それらを一意に特定するための識別子が付与されているものとする。また、以降、ユーザを識別するためにユーザに設定されている識別子をユーザＩＤ、クライアントを識別するためにクライアントに設定されている識別子をクライアントＩＤと呼ぶ。
【００４９】
そして、ユーザＩＤ及びクライアントＩＤは、識別テーブルとして、メッセージサーバ１０１の配信処理部３０１が、メモリ２１２に登録し管理している。本実施形態のユーザに付与されているユーザＩＤを図５の識別テーブル５０１に示す。また、クライアントに設定されているクライアントＩＤを図５の識別テーブル５０２に示す。
【００５０】
クライアントＩＤの文字列には、文字列“／”が含まれ、これより前方の文字列が、そのクライアントを使用しているユーザのユーザＩＤを示す。例えば、チャットクライアント１１１のクライアントＩＤは「ｕｓｅｒＡ＠ｅｘａｍｐｌｅ．ｃｏｍ／ｃｈａｔ」であるので、チャットクライアント１１１を使用しているユーザのユーザＩＤは「ｕｓｅｒＡ＠ｅｘａｍｐｌｅ．ｃｏｍ」である。
【００５１】
＜３．２  チャット動作の説明＞
次に、チャット動作の概要について説明する。チャット動作に際して、本実施形態のメッセージサーバ１０１の配信処理部３０１は、クライアントからメッセージを受信し、メッセージの宛先に指定されているクライアントへ転送するよう動作する。また、チャットクライアントのメッセージ処理部３１０は、メッセージサーバ１０１へのチャットメッセージの送信、及び、メッセージサーバ１０１からのチャットメッセージの受信を実行するよう動作する。チャットの動作の流れは以下のとおりである。
【００５２】
まず、ユーザが、チャットクライアントの操作部２３３を用いて会話の文章を入力し、チャットメッセージの宛先となるチャットクライアントを指定する。チャットクライアントのメッセージ処理部３１０では、宛先となるチャットクライアントのクライアントＩＤ及び入力されたチャットの文章を含むチャットメッセージを、メッセージサーバ１０１に送信する。
【００５３】
メッセージサーバ１０１では、受信したチャットメッセージから宛先のクライアントＩＤを抽出し、該当するクライアントにチャットメッセージを転送する。チャットメッセージを受信したチャットクライアントのメッセージ処理部３１０では、チャットメッセージに含まれる会話の文章を抽出し、操作部２３３を用いて表示する。
【００５４】
なお、チャットにおけるチャットメッセージの内容を図４のチャットメッセージ４１０に示す。チャットメッセージ４１０に含まれる下線の文字列４１２は、チャットメッセージ４１０を送信したメッセージクライアントのクライアントＩＤである。文字列４１１は、チャットメッセージ４１０の宛先であるメッセージクライアントのクライアントＩＤである。文字列４１３は、ユーザが入力した、チャットメッセージである。
【００５５】
＜３．３  機器アクセス動作の説明＞
次に、機器アクセス動作の概要について説明する。機器アクセス動作に際して、機器クライアントのメッセージ処理部３１０は、メッセージサーバ１０１への機器アクセスメッセージの送信、及び、メッセージサーバ１０１からの機器アクセスメッセージの受信を実行する。更に、受信した機器アクセスメッセージの内容に基づいて、機器のサービスを実行する。機器アクセスの動作の流れは以下のとおりである。
【００５６】
まず、ユーザが、機器クライアントの操作部２４３を用いて、サービスを利用する機器クライアントと指定し、利用するサービスの内容を入力する。機器クライアントのメッセージ処理部３１０では、宛先となる機器クライアントのクライアントＩＤ情報及び入力されたサービス内容を含む機器アクセスメッセージを、メッセージサーバ１０１に送信する。
【００５７】
メッセージサーバ１０１では、受信した機器アクセスメッセージに含まれる宛先のクライアントＩＤを抽出し、該当するクライアントに機器アクセスメッセージを転送する。機器アクセスメッセージを受信した機器クライアントのメッセージ処理部３１０では、機器アクセスメッセージに含まれるサービス内容を抽出し、機器のサービスを実行する。
【００５８】
機器アクセスにおける機器アクセスメッセージの内容を図４の機器アクセスメッセージ４２０に示す。機器アクセスメッセージ４２０に含まれる下線の文字列４２２は、機器アクセスメッセージ４２０を送信した機器クライアントのクライアントＩＤである。文字列４２１は、機器アクセスメッセージ４２０の宛先である機器クライアントのクライアントＩＤである。文字列４２３は、ユーザが入力した、写真取得というサービスの実行要求を示すデータ（以下、コマンド名と呼ぶ）である。機器アクセスメッセージ４２０を受け取った機器クライアントは、コマンド名を抽出し、写真を送信する動作を実行する。
【００５９】
＜４．メッセージサーバにおける動作の詳細＞
次に、メッセージシステム１００におけるメッセージサーバ１０１の動作（配信処理、アクティブ度判定処理を含む情報処理）の詳細について説明する。なお、以下、動作の説明に際しては、図６に示す動作事象に対するメッセージサーバ１０１の動作例を示しながら行うものとする。
【００６０】
＜４．１  動作事象の説明＞
はじめに、図６に示す動作事象について説明する。図６（ａ）のテーブル６００は、本実施形態のメッセージシステム１００において、クライアント間で送受信されたメッセージのリストである。テーブル６００の各動作事象には、動作事象の起きたタイムポイント（６０１列）、メッセージの送信元ユーザ（６０２列）、メッセージの送信先ユーザ（６０３列）が含まれる。また、メッセージの種別（チャットメッセージか機器アクセスメッセージか）（６０４列）、機器アクセスメッセージであればそのコマンド名（６０５列）が含まれる。
【００６１】
図６（ｂ）は、テーブル６００のタイムポイントの時間の前後関係を示している。直線６１０は、時間の経過を示す直線であり、右に行くほど時間が経過することを示す。直線６１０上にポイントした「ｔ１」から「ｔ８」及び、「ｔ１１」から「ｔ１６」のタイムポイントは、テーブル６００の６０１列に示しているタイムポイントであり、それぞれのタイムポイントの時間の時間経過における前後関係を示している。
【００６２】
メッセージサーバ１０１の配信処理部３０１では、起動時から所定周期で（本実施形態では５秒）、アクティブ度判定処理を繰り返し実行しながら、以下に示す配信処理を実行する。
【００６３】
＜４．２  配信処理の説明＞
メッセージサーバ１０１の配信処理部３０１では、クライアントからメッセージを受信すると、図７に示す配信処理を実行する。
【００６４】
ステップＳ７０１において、配信処理部３０１では、クライアントからメッセージを受信すると、受信したメッセージを解析する。ステップＳ７０１の動作の詳細は後述する。次に、ステップＳ７０２では、ステップＳ７０１の結果を用いて、メッセージがチャットメッセージであるか否かを判定する。
【００６５】
メッセージがチャットメッセージである場合には（ステップＳ７０２においてＹｅｓの場合には）、ステップＳ７０３に進み、チャットメッセージ転送処理を実行する。なお、ステップＳ７０３の動作の詳細は後述する。一方、メッセージがチャットメッセージでない場合には（ステップＳ７０２においてＮｏの場合には）、ステップＳ７０４に進み、メッセージが機器アクセスメッセージであるか否かを判定する。
【００６６】
メッセージが機器アクセスメッセージである場合には、ステップＳ７０５に進み、機器アクセスメッセージの転送処理を行う。なお、ステップＳ７０５の動作の詳細は後述する。一方、ステップＳ７０４において機器アクセスメッセージでないと判定された場合には（ステップＳ７０４においてＮｏの場合には）、配信処理を終了する。
【００６７】
＜４．３  メッセージ解析処理の流れ＞
次に、ステップＳ７０１のメッセージ解析処理の詳細を説明する。図７のステップＳ７０１において、配信処理部３０１のプログラムモジュールが、解析部３０２のプログラムモジュールを呼び出して実行することにより、解析部３０２が実現する。なお、解析部３０２は、メッセージの解析機能を実現するプログラムモジュールであり、配信処理部３０１がクライアントから受信したメッセージの解析処理を行う。解析部３０２におけるメッセージ解析処理の詳細を図８に示す。
【００６８】
ステップＳ８０１では、配信処理部３０１が受信したメッセージを抽出する。次に、ステップＳ８０２では、ステップＳ８０１で抽出したメッセージを解析し、メッセージを送信したクライアントのクライアントＩＤ及びメッセージの宛先に指定されているクライアントのクライアントＩＤを抽出する。
【００６９】
次に、ステップＳ８０２で抽出したそれぞれのクライアントＩＤから、メッセージを送信したクライアントの利用ユーザ、及び、メッセージの宛先となっているクライアントの利用ユーザのユーザＩＤをそれぞれ抽出する（ステップＳ８０３）。ステップＳ８０３は、図５を用いて説明したクライアントの利用ユーザを識別する方法に基づいて実行される。
【００７０】
次に、ステップＳ８０２で抽出したクライアントＩＤにより、メッセージを送信したクライアント及び受信したクライアントの双方が、チャットクライアントであるか否かを判定する（ステップＳ８０４）。ステップＳ８０４では、クライアントＩＤの文字列「／」以降が、文字列「ｃｈａｔ」であれば、クライアントＩＤが示すクライアントが、チャットクライアントであるとみなす。
【００７１】
ステップＳ８０４において双方がチャットクライアントであると判定した場合には（ステップＳ８０４においてＹｅｓの場合には）、ステップＳ８０５に進む。ステップＳ８０５では、解析したメッセージがチャットメッセージであるという情報を配信処理部３０１に送信し、メッセージ解析処理を終了する。
【００７２】
一方、ステップＳ８０４で、チャットクライアントでないと判定した場合には（ステップＳ８０４においてＮｏの場合には）、ステップＳ８０６に進む。ステップＳ８０６では、ステップＳ８０２で抽出したクライアントＩＤにより、メッセージを送信したクライアント及び受信したクライアントの双方が、機器クライアントであるか否かを判定する。ステップＳ８０６では、クライアントＩＤの文字列「／」以降が、文字列「ｄｉｓｐｌａｙ」または「ｄｓｃ」であれば、クライアントＩＤが示すクライアントが、機器クライアントであるとみなす。
【００７３】
ステップＳ８０６において、双方が機器クライアントであると判定した場合には（ステップＳ８０６においてＹｅｓの場合には）、ステップＳ８０７に進む。ステップＳ８０７では、メッセージに含まれるコマンド名を抽出する。更に、ステップＳ８０８に進み、解析したメッセージが機器アクセスメッセージであるという情報を配信処理部３０１に送信した後、メッセージ解析処理を終了する。
【００７４】
一方、ステップＳ８０６において、双方が機器クライアントでないと判定した場合には（ステップＳ８０６においてＮｏの場合には）、ステップＳ８０９に進む。ステップＳ８０９では、解析したメッセージがチャットメッセージでも機器アクセスメッセージでもないという情報を配信処理部３０１に送信し、メッセージ解析処理を終了する。
【００７５】
＜４．４  チャットメッセージ転送処理の流れ＞
次に、図７のステップＳ７０３のチャットメッセージ転送処理の詳細を、図９を用いて説明する。
【００７６】
ステップＳ９０１では、チャットメッセージ転送処理の実行時のタイムポイント情報を、タイムモジュール３０８から取得する。
【００７７】
続いて、ステップＳ９０２では、ステップＳ８０３で取得したユーザＩＤを組とした情報、及び、ステップＳ９０１で取得したタイムポイント情報を、メッセージログ情報として保持する。メッセージログ情報は、すなわち、ユーザと他のユーザとが、どの時点でチャットメッセージを行ったかを記録した情報である（詳細は後述）。最後に、宛先クライアントにメッセージを転送して（ステップＳ９０３）、チャットメッセージ転送処理を終了する。
【００７８】
本実施形態の動作事象において、ステップＳ９０２で配信処理部３０１が記憶するメッセージログ情報について説明する。
【００７９】
図６（ｂ）に示すタイムポイントｔ８の直後のメッセージログ情報を、図１０のテーブル１００１に示す。
【００８０】
テーブル１００１の１００２列には、二人のユーザを特定する情報として、２つのユーザＩＤが格納されている。テーブル１００１の１００３列には、同じ行の１００２列に格納されているユーザの組が示すユーザどうしの間でチャットメッセージが行われたタイムポイント情報（ステップＳ９０１で取得した情報）が格納されている。
【００８１】
ここで、テーブル１００１に示すメッセージログ情報が記憶されるまでの動作の詳細を、タイムポイントｔ１のチャットの動作事象を例に具体的に説明する。
【００８２】
タイムポイントｔ１の動作事象のメッセージは、先に説明した図４のチャットメッセージ４１０と同じものである。先述の通り、チャットメッセージ４１０の送信ユーザのクライアントＩＤは文字列４１２であり、図５を用いて説明したクライアントの利用ユーザを識別する方法により、利用者のユーザＩＤは「ｕｓｅｒＡ＠ｅｘａｍｐｌｅ．ｃｏｍ」と識別される。また、チャットメッセージ４１０の受信ユーザのユーザＩＤは文字列４１１であり、利用者のユーザＩＤは、「ｕｓｅｒＢ＠ｅｘａｍｐｌｅ．ｃｏｍ」と識別される。
【００８３】
テーブル１００１の１００４行の１００２列には、この２つのユーザＩＤを格納する。さらに、テーブル１００１の１００３列には、タイムポイントである「ｔ１」を格納する。
【００８４】
以降、ユーザＩＤの組が同じ場合は、該当する行にタイムポイント情報を格納する。テーブル１００１の１００４行は、言い換えると、「ｕｓｅｒＡ＠ｅｘａｍｐｌｅ．ｃｏｍ」と「ｕｓｅｒＢ＠ｅｘａｍｐｌｅ．ｃｏｍ」とは、タイムポイントｔ１、ｔ３、ｔ６、ｔ７で、チャットを行ったことを示している。
【００８５】
その他のタイムポイントのチャットについても、同様に処理が行われ、タイムポイントｔ８までの動作事象が起きた時点で、メッセージログ情報は、１００５行から１００７行までが加わり、図１０に示すテーブル１００１の状態となる。
【００８６】
＜４．５  アクティブ度判定処理の流れ＞
次に、配信処理部３０１の動作として、起動時から所定周期で繰り返し実行されるアクティブ度判定処理の詳細を説明する。
【００８７】
アクティブ度判定処理は、配信処理部３０１のプログラムモジュールが、アクティブ判定部３０３のプログラムモジュールを実行することで実現される。
【００８８】
アクティブ判定部３０３は、ユーザとユーザとの関係について、そのアクティブ度合いを判定し、アクティブ度を決定する機能を実現するプログラムモジュールである。本実施形態では、チャットのやり取りの多いユーザ同士を、よりアクティブであると判定する。
【００８９】
なお、アクティブ判定部３０３の動作に先立ち、閾値設定部３０７を用いて、単位時間についての情報として「１０分」という値が予め設定され、メモリ２１２に記憶されるものとする。
【００９０】
アクティブ判定部３０３は、所定周期ごとに、解析部３０２が記憶したメッセージログ情報に記憶されている各ユーザＩＤの組に対するタイムポイントの情報に対して、図１１に示すアクティブ度判定処理をくりかえし実行する。以下、図１１を用いてアクティブ度判定処理の流れを説明する。
【００９１】
まず、メッセージログ情報のタイムポイント情報を参照し、直前の単位時間に含まれるタイムポイントの数をカウントする（ステップＳ１１０１）。次に、ステップＳ１１０１でカウントしたタイムポイントの個数を、対応するユーザＩＤの組情報で示されるユーザ間のアクティブ度として決定する（ステップＳ１１０２）。更に、ユーザＩＤの組情報と、ステップＳ１１０２で決定されたユーザ間のアクティブ度を、アクティブ度情報としてメモリ２１２に記憶する（ステップＳ１１０３）。
【００９２】
アクティブ度情報が記憶されるまでの動作を、図６（ｂ）のタイムポイントｔｘで、この動作が実行されたときの処理を例として、詳細に説明する。なお、図６（ｂ）において、タイムポイントｔｘ（６１１）からタイムポイントｔｙ（６１２）までの期間は、閾値設定部３０７に設定されている単位時間の値である「１０分」の期間である。
【００９３】
ステップＳ１１０１において、アクティブ判定部３０３では、テーブル１００１の、１００４行の１００３列に格納されているタイムポイントである、ｔ１、ｔ３、ｔ６、ｔ７のうち、直近の単位時間に含まれるタイムポイントをカウントする。図６（ｂ）によると、直近の単位時間に含まれるのは、ｔ３、ｔ６、ｔ７の３つである。
【００９４】
次に、ステップＳ１１０２では、ステップＳ１１０１でカウントしたタイムスタンプの個数を、同じ行（１００４行）の１００２列で示されるユーザ間のアクティブ度とする。ここでは、アクティブ度は「３」と決定する。
【００９５】
次に、ステップＳ１１０２で決定した情報を、アクティブ度情報として、メモリ２１２に記憶する（ステップＳ１１０３）。同様に、ステップＳ１１０１からステップＳ１１０３までの処理を、テーブル１００１の、１００５行、１００６行、１００７行に対して実行する。
【００９６】
１００７行まで処理の実行が終了したときの、アクティブ度情報を図１２のテーブル１２０１に示す。テーブル１２０１において１２０２列がユーザの組情報であり、１２０３列が１２０２列のアクティブ度である。
【００９７】
＜４．６  機器アクセスメッセージ転送処理の流れ＞
次に、配信処理部３０１の動作である機器アクセスメッセージ転送処理（ステップＳ７０５）の詳細を図１３を用いて説明する。
【００９８】
ステップＳ１３０１では、配信処理部３０１が、負荷判定部３０５のプログラムモジュールを起動する。負荷判定部３０５は、機器アクセスメッセージからコマンド名を抽出し、それをもとに、サービスを実行する機器クライアントの発生しうるＣＰＵ負荷と実行終了時間の目安となる標準実行時間を見積もるプログラムモジュールである。
【００９９】
なお、負荷判定部３０５では、動作の補助として、機器クライアントごとに負荷見積もり対応表をメモリ２１２に保持している。負荷見積もり対応表は、機器を特定する情報、コマンド名、機器がそのコマンドを実行した場合に発生しうるＣＰＵ負荷レベル、及び、コマンドの標準実行時間を定義した情報を含むデータベースである。本実施形態における機器クライアント１２１（デジタルカメラ）の負荷見積もり対応表を図１４（ａ）のテーブル１４０１に示す。
【０１００】
テーブル１４０１において、１４０２行が機器クライアント１２１を特定する情報（クライアントＩＤ）、１４０３列がコマンド名、１４０４列が標準実行時間、１４０５列が負荷レベルである。例えば、１４０６行は、コマンド名「ｇｅｔＩｍａｇｅ」のサービスを実行したら、機器クライアントのＣＰＵ負荷レベルは「１」と見積もり、標準実行時間は「１秒」と見積もることを示している。
【０１０１】
ステップＳ１３０１の負荷見積もり処理の動作について詳細を説明する。まず、ステップＳ８０２で抽出した機器アクセスメッセージの宛先のクライアントＩＤと、負荷判定部３０５で保持している負荷見積もり対応表のクライアントＩＤとを照合する。そして、負荷判定部３０５が保持している負荷見積もり対応表のうち、該当する機器クライアントの負荷見積もり対応表を選択する。
【０１０２】
次に、選択した負荷見積もり対応表から、コマンド名に対応する負荷レベル、及び標準実行時間を抽出する。更に、ステップＳ８０３で特定した機器アクセスメッセージを送信した機器クライアントを利用しているユーザのユーザＩＤ、及び、抽出した負荷レベル、標準実行時間を組にして、負荷状態テーブル（後述）に格納し、メモリ２１２に記憶する。
【０１０３】
なお、機器アクセスメッセージを送信した機器クライアントを利用しているユーザとは、すなわち、機器アクセスにより機器のサービスを利用しようとしているユーザを意味する。
【０１０４】
本実施形態の動作事象において、図６（ｂ）に示すタイムポイントｔ１２の直後の負荷状態テーブルを図１４（ｂ）のテーブル１４０７に示す。テーブル１４０７の１４０８列は、機器アクセスメッセージの送信ユーザのユーザＩＤであり、１４０９列は、負荷レベルであり、１４１０列は、１４０９列の負荷レベルを発生させる処理の終了予測時間である。
【０１０５】
負荷状態テーブルが記憶されるまでの動作の詳細を、図６（ａ）のテーブル６００に示すタイムポイントｔ１２の機器アクセスの動作事象を例に具体的に説明する。
【０１０６】
タイムポイントｔ１２の動作事象の機器アクセスメッセージは、先に説明した図４の機器アクセスメッセージ４２０と同じものである。先述のとおり、機器アクセスメッセージの送信ユーザのクライアントＩＤは文字列４２２であり、図５を用いて説明したクライアントの利用ユーザを識別する方法により利用者のユーザＩＤは「ｕｓｅｒＢ＠ｅｘａｍｐｌｅ．ｃｏｍ」と識別される。機器アクセスメッセージの宛先となる機器クライアントの利用ユーザのユーザＩＤは、文字列４２１であり、機器クライアントの利用ユーザは、「ｕｓｅｒＡ＠ｅｘａｍｐｌｅ．ｃｏｍ」と識別される。コマンド名は、文字列４２３である。
【０１０７】
負荷判定部３０５は、まず、文字列４２１のクライアントＩＤに対応する負荷見積もり対応表を選択する（１４０２行と文字列４２１が一致することにより、テーブル１４０１が選択される）。次に、テーブル１４０１の１４０３列を参照し、文字列４２３のコマンド名と一致する行を選択する。ここでは、１４０６行が選択される。次に、１４０６行の１４０４列に格納されている標準実行時間情報（ここでは１秒である）、及び、１４０５列に格納されている負荷レベル値を抽出する（ここでは「１」である）。しかる後に、負荷状態テーブルに情報を記憶する。
【０１０８】
図１４の（ｂ）のテーブル１４０７において、タイムポイントｔ１２の動作事象により記憶されたのは、１４１２行である。１４１１行は、タイムポイントｔ１１の事象によるものである。
【０１０９】
なお、負荷判定部３０５は、定期的に負荷状態テーブルを監視し、終了予測時間を過ぎた行を削除する。
【０１１０】
本実施形態のタイムポイントｔ８の直後の負荷状態テーブルの状態を、図１４（ｃ）のテーブル１４１５に示す。テーブル１４１５において、タイムポイントｔ１１の動作事象により記憶された１４１１行のデータは、終了予測時間が経過していないため残っている。一方、タイムポイントｔ１２の動作事象により記憶された１４１２行は終了予測時刻が経過したため、削除されている。また、新たに、タイムポイントｔ１５の動作事象により記憶された１４１３行が追加されている。
【０１１１】
図１３に戻る。ステップＳ１３０２では、負荷超過判定処理を行う。負荷超過判定処理は、配信処理部３０１が負荷超過判定部３０６のプログラムモジュールを起動することにより実現される。なお、負荷超過判定部３０６の動作に際しては、閾値設定部３０７に負荷レベル値として閾値「２０」が設定され、メモリ２１２に記憶されているものとする。
【０１１２】
図６（ｂ）に示すタイムポイントｔ８の直後での動作の詳細を示す。負荷超過判定部３０６が、負荷状態テーブルを図１４（ｃ）のテーブル１４１５の１４０９列の数値の合計値と、閾値設定部３０７に設定された負荷レベル値とを比較する。合計値が閾値以上であれば負荷超過であると判定し、閾値未満であれば負荷超過でないと判定する。ここで、負荷超過とは、機器クライアントのサービス実行に支障がでる可能性がある程度にＣＰＵ負荷が発生している状態をいう。
【０１１３】
次に、ステップＳ１３０３では、ステップＳ１３０２で負荷超過と判定されたか否かで、処理を分岐する。
【０１１４】
ステップＳ１３０２で負荷超過でないと判定した場合には（ステップＳ１３０３においてＮｏの場合には）、ステップＳ１３０６に進む。ステップＳ１３０６では、受信した機器アクセスメッセージを宛先のクライアントＩＤで特定される機器アクセスクライアントに転送し、機器アクセスメッセージ転送処理を終了する。
【０１１５】
一方、ステップＳ１３０２で負荷超過であると判定した場合には（ステップＳ１３０３においてＹｅｓの場合には）、優先ユーザ判定処理（ステップＳ１３０４）を実行する。
【０１１６】
ステップＳ１３０４の優先ユーザ判定処理は、配信処理部３０１が優先ユーザ判定部３０４のプログラムモジュールを起動することによって実現される。なお、優先ユーザ判定部３０４の動作に際しては、閾値設定部３０７に、アクティブ度の閾値「２」が設定され、メモリ２１２に記憶されているものとする。
【０１１７】
ステップＳ１３０４の優先ユーザ判定処理の詳細を図１５に示す。まず、ステップＳ１５０１では、アクティブ判定部３０３が記憶しているアクティブ度情報を参照し、送信元ユーザと送信先ユーザとの間のアクティブ度を抽出する。具体的には、ステップＳ８０３で抽出した機器アクセスメッセージを送信した機器クライアントを利用しているユーザのユーザＩＤ、及び、機器アクセスメッセージの宛先の機器クライアントを利用しているユーザのユーザＩＤに基づいて参照する。
【０１１８】
次に、ステップＳ１５０１で抽出したアクティブ度と、閾値設定部３０７を用いて設定されたアクティブ度とを比較する（ステップＳ１５０２）。ステップＳ１５０１で抽出したアクティブ度が、閾値設定部３０７を用いて設定された閾値以上である場合には（ステップＳ１５０２においてＹｅｓの場合には）、ステップＳ１５０３に進む。ステップＳ１５０３では、機器アクセスメッセージを送信した機器クライアントの利用ユーザを優先ユーザであると判定し、優先ユーザ判定処理を終了する。
【０１１９】
一方、ステップＳ１５０１で抽出したアクティブ度が、閾値設定部３０７を用いて設定された閾値未満である場合には（ステップＳ１５０２においてＮｏの場合には）、ステップＳ１５０４に進む。ステップＳ１５０４では、機器アクセスメッセージを送信した機器クライアントの利用ユーザを優先ユーザでないと判定し、優先ユーザ判定処理を終了する。
【０１２０】
図１３に戻る。ステップＳ１３０５では、ステップＳ１３０４における優先ユーザ判定処理の結果に基づいて、処理を分岐させる。ステップＳ１３０４において、優先ユーザであると判定された場合には、機器アクセスメッセージの宛先のクライアントＩＤで特定されるクライアントに転送し（ステップＳ１３０６）、機器アクセスメッセージ転送処理を終了する。
【０１２１】
一方、ステップＳ１３０４において、優先ユーザでないと判定された場合は、以下、ステップＳ１３０７からステップＳ１３０９の非優先処理が実行される。具体的には、機器アクセスメッセージを宛先の機器クライアントに転送する動作を保留する（ステップＳ１３０７）。保留回数が３回を超えないうちは（ステップＳ１３０８においてＮｏの場合には）、ステップＳ１３０２に戻り、負荷超過判定から再試行する。
【０１２２】
一方、保留回数が３回を超えたら（ステップＳ１３０８においてＹｅｓの場合には）、ステップＳ１３０７に進む。ステップＳ１３０７では、サービスが利用できないことを示すエラーメッセージを、機器アクセスメッセージを送信した機器クライアントに送信し、受信した機器アクセスメッセージを破棄する。最後に、該当する負荷状態テーブルの登録を削除した後に（図１３において不図示）、機器アクセスメッセージ転送処理を終了する。以上で、図７に示した配信処理部３０１の配信処理が終了する。
【０１２３】
＜５．実施例１＞
次に、機器クライアントの能力を超える負荷が発生している状態である、タイムポイントｔ１６における配信処理の実施例について説明する。
【０１２４】
タイムポイントｔ１６における機器アクセスメッセージを図１６の機器アクセスメッセージ１６００に示す。
【０１２５】
機器アクセスメッセージ１６００を送信した機器クライアントのクライアントＩＤは文字列１６０２であり、このクライアントを利用しているユーザのユーザＩＤは、「ｕｓｅｒＤ＠ｅｘａｍｐｌｅ．ｃｏｍ」と識別される。また、機器アクセスメッセージ１６００の宛先のクライアントの機器クライアントＩＤは文字列１６０１であり、その機器クライアントを利用しているユーザのユーザＩＤは、「ｕｓｅｒＡ＠ｅｘａｍｐｌｅ．ｃｏｍ」と識別される。
【０１２６】
まず、メッセージサーバ１０１がメッセージを受信すると、配信処理部３０１が、図７に示す配信処理を実行する。ステップＳ７０１のメッセージ解析処理では、文字列１６０１及び文字列１６０２のクライアントＩＤ及び、その機器クライアントの利用者のユーザＩＤが抽出される。ここでは、抽出されたクライアントＩＤの双方が機器クライアントのものであるため、図８のステップＳ８０４では“Ｎｏ”と判定され、ステップＳ８０６では“Ｙｅｓ”と判定される。
【０１２７】
また、ステップＳ８０７ではコマンド名である文字列１６０３が抽出される。更に、ステップＳ８０８により、機器アクセスメッセージ１６００が機器アクセスメッセージであるという情報が配信処理部３０１に送信される。ゆえに、図７のステップＳ７０２では“Ｎｏ”と判定され、ステップＳ７０４では“Ｙｅｓ”と判定されたうえで、ステップＳ７０５における機器アクセスメッセージ転送処理が実行される。
【０１２８】
以上の場合における、機器アクセスメッセージ転送処理（ステップＳ７０５、図１３のフローチャートに示す処理）について説明する。
【０１２９】
ステップＳ１３０１では、文字列１６０１で特定される機器クライアント（機器クライアント１２１）のＣＰＵ負荷を見積もる。ここでは、ステップＳ８０７で抽出したコマンド名である文字列１６０３、及び、ステップＳ７０１のメッセージ解析処理で抽出したユーザＩＤをもとに、図１４（ａ）のテーブル１４０１の１４０６行を参照し、負荷状態テーブルに情報を記憶する。ステップＳ１３０１においてＣＰＵ負荷を見積もる処理を実行後の負荷状態テーブルを、図１４（ｄ）のテーブル１４１６に示す。テーブル１４１６の１４１４行が、タイムポイントｔ１６の処理で記憶された情報である。
【０１３０】
次に、負荷超過判定処理（ステップＳ１３０２）が実行される。テーブル１４１６において、１４０９列の負荷レベル値の合計は「３１」であり、閾値設定部３０７を用いて設定された負荷レベル値の閾値「２０」以上である。
【０１３１】
ゆえに、ステップＳ１３０２では、負荷が超過している状態であると判定され、ステップＳ１３０３において“Ｙｅｓ”と判定され、優先ユーザ判定処理（ステップＳ１３０４）へと進む。
【０１３２】
タイムポイントｔ１６の機器アクセスメッセージ１６００に対する、ステップＳ１３０４の優先ユーザ判定処理（図１５に示す処理）を説明する。
【０１３３】
タイムポイントｔ１６において、アクティブ判定部３０３が記憶しているアクティブ度情報は、図１２のテーブル１２０１となっている。
【０１３４】
ステップＳ１５０１では、ステップＳ８０３で抽出されたユーザＩＤの組をもとにテーブル１２０１を参照し、１２０４行より、このユーザの組のアクティブ度として「１」を抽出する。次に、ステップＳ１５０２では、閾値設定部３０７を用いて設定されたアクティブ度の閾値「２」と、ステップＳ１５０１で抽出したアクティブ度「１」とを比較する。ステップＳ１５０１で抽出したアクティブ度「１」は、閾値設定部３０７を用いて設定されたアクティブ度の閾値「２」未満であるため、ステップＳ１５０２では“Ｎｏ”と判定される。
【０１３５】
ステップＳ１５０４では、この機器アクセスメッセージを送信した機器クライアントを利用しているユーザは、優先ユーザではないと判定する。ゆえに、図１３のステップＳ１３０５では“Ｎｏ”と判定され、ステップＳ１３０７からの非優先処理が実行される。
【０１３６】
以上、優先ユーザでないと判定されたユーザは、優先ユーザであると判定されるユーザよりも優先的に機器サービスを利用することはできない。
【０１３７】
＜６．実施例２＞
次に、タイムポイントｔ１６で、機器アクセスメッセージを送信した機器クライアントの利用ユーザが、ユーザＣ（１５３）であった場合の配信処理の実施例について説明する。
【０１３８】
このときのメッセージを図１６の機器アクセスメッセージ１６１０に示す。機器アクセスメッセージ１６１０を送信した機器クライアントのクライアントＩＤは文字列１６１２であり、このクライアントを利用しているユーザのユーザＩＤは、「ｕｓｅｒＣ＠ｅｘａｍｐｌｅ．ｃｏｍ」と識別される。また、機器アクセスメッセージ１６１０の宛先の機器クライアントのクライアントＩＤは文字列１６１１であり、この機器クライアントを利用しているユーザのユーザＩＤは、「ｕｓｅｒＡ＠ｅｘａｍｐｌｅ．ｃｏｍ」と識別される。
【０１３９】
機器アクセスメッセージ１６１０の場合も、図８のステップＳ８０８により、機器アクセスメッセージ１６１０が機器アクセスメッセージであるという情報が配信処理部３０１に送信される。ゆえに、図７のステップＳ７０２では“Ｎｏ”と判定され、ステップＳ７０４では“Ｙｅｓ”と判定され、ステップＳ７０５の機器アクセスメッセージ転送処理が実行される。
【０１４０】
ここでは、図１５のステップＳ１５０１において、テーブル１２０１の１２０５行によりユーザ間のアクティブ度として「２」が抽出される。この値は、閾値設定部３０７を用いて設定されたアクティブ度の閾値「２」以上であるため、ステップＳ１５０２において“Ｙｅｓ”と判定され、優先ユーザであると判定される（ステップＳ１５０３）。更に、図１３のステップＳ１３０５では“Ｙｅｓ”と判定され、配信処理部３０１は、機器アクセスメッセージ１６１０を、宛先の機器クライアントに転送する。
【０１４１】
優先ユーザであると判定されたユーザは、メッセージサーバ１０１により機器アクセスメッセージが転送されることにより、機器のサービスを利用することができる。
【０１４２】
以上の説明から明らかなように、本実施形態に係るメッセージサーバ１０１によれば、機器クライアントにアクセスさせるユーザの優先度を、ユーザ間のチャットメッセージの頻度に従って動的に決定することが可能となる。さらに、処理能力を超えるＣＰＵ負荷が発生している機器クライアントに対しては、優先度の高いユーザを、他のユーザよりも優先してアクセスさせることが可能となる。
【０１４３】
＜７．変形例＞
なお、本実施形態では、機器クライアントの負荷が超過しているか否かを判定する動作を、機器アクセスメッセージの内容であるコマンド名及び負荷見積もり対応表と負荷レベル値の閾値とを用いて判定したが、本発明はこれに限定されない。
【０１４４】
例えば、ＣＰＵ負荷が超過しているか否かを判定する手段を機器クライアントに配し、負荷が超過したら、メッセージ処理部３１０により、メッセージサーバ１０１に通知する形態としてもよい。
【０１４５】
この形態によれば、メッセージサーバ１０１の解析部３０２がコマンド名を解析する処理、及び、負荷判定部３０５が負荷を見積もる処理が不要となり、メッセージサーバ１０１の動作を高速化することが可能となる。
【０１４６】
更に、本実施形態では、機器クライアントのＣＰＵ負荷を、サービスにより発生するＣＰＵ負荷により判定したが、本発明はこれに限定されない。
【０１４７】
例えば、メッセージサーバ１０１に、機器クライアントとメッセージサーバ１０１との間のネットワークトラフィックの量を監視する手段を配し、ネットワークトラフィックの大小により、ＣＰＵ負荷状態を判定する形態としてもよい。
【０１４８】
この形態によれば、優先ユーザは、優先でないユーザが発生させるネットワークトラフィックに影響されることなく、機器アクセスを継続することが可能となる。
【０１４９】
また、本実施形態では、閾値設定部３０７を用いて負荷レベル値及びアクティブ度の閾値をあらかじめ設定する構成としたが、本発明はこれに限定されない。
【０１５０】
例えば、負荷レベル値の閾値を、ネットワークトラフィックの混雑度により決定する形態としてもよい。具体的には、メッセージサーバ１０１にネットワークトラフィックの量を監視する手段を配し、機器クライアントとメッセージサーバ１０１との間のネットワークが混雑している場合には、負荷レベル値の閾値を小さくする構成としてもよい。
【０１５１】
これにより、負荷超過と判断されるケースが増加し、優先度の高いユーザしか機器アクセスを利用できなくなる。この結果、優先ユーザにとっては、優先でないユーザが発生させるネットワークトラフィックに影響されることなく、機器アクセスを継続する機会を増大させることが可能となる。
【０１５２】
また別の形態として、機器クライアントに、ネットワークサービス以外の動作が発生させるＣＰＵ負荷を測定する手段を配し、ネットワークサービス以外の動作のＣＰＵ負荷が所定の閾値より大きい場合には、アクティブ度の閾値を増加させる構成としてもよい。
【０１５３】
これにより、機器クライアントを利用しているユーザ本人の利用率が高い場合には、より優先度の高いユーザのみが機器アクセスできるようになる。この結果、より優先度の高いユーザにとっては、優先でないユーザが発生させるＣＰＵ負荷に影響されることなく、機器アクセスを継続することが可能となる。
【０１５４】
なお、本実施形態に示したメッセージサーバ１０１の動作により、以下のような効果もある。すなわち、優先ユーザと判定されたユーザを、その時点でのユーザグループと設定することができる。具体的には、グループに属するユーザの情報（ユーザのリスト）をあらかじめ設定していない場合であっても、ユーザのグルーピングを行うことが可能となる。かかる効果は、ユーザに識別子を付与し、チャットメッセージングを行うシステムにおいては、ユーザのグルーピングをするシーンにおいて特に有効となる。
【０１５５】
［第２の実施形態］
本実施形態では、機器クライアントにアクセスさせるユーザの優先度を決定するにあたり、ユーザ間のチャットメッセージの送信方向の情報を利用するメッセージシステムについて説明する。なお、以下では、上記第１の実施形態の配信処理との相違点を中心に説明する。
【０１５６】
＜１．メッセージサーバにおける動作の詳細＞
＜１．１  チャットメッセージ転送処理の流れ＞
メッセージサーバ１０１において実行される配信処理の、ステップＳ７０３（チャットメッセージ転送処理）について、図１７を用いて説明する。
【０１５７】
図１７において、ステップＳ９０１及びステップＳ９０３は、図９に示したステップＳ９０１及びステップＳ９０３と同じ処理であるため、説明は省略する。
【０１５８】
ステップＳ１７０２では、第１〜第３の項目を含む情報を、メッセージログ情報として保持する。なお、第１の項目とは、ステップＳ８０３で特定した、チャットメッセージを送信したチャットクライアントを利用しているユーザのユーザＩＤ、及び、チャットメッセージの宛先となるチャットクライアントを利用しているユーザのユーザＩＤである。また、第２の項目とは、チャットメッセージを送信した側のチャットクライアントを利用するユーザのユーザＩＤが、送信側であることを示す情報である。更に、第３の項目とは、ステップＳ９０１で取得したタイムポイント情報である。
【０１５９】
ここで、本実施形態の動作事象について、配信処理部３０１がステップＳ１７０２にて記憶するメッセージログ情報について説明する。
【０１６０】
図６（ｂ）に示すタイムポイントｔ８の直後のメッセージログ情報を、図１８のテーブル１８０１に示す。
【０１６１】
テーブル１８０１の１８０２列には、この列に格納されているユーザＩＤが送信側であることが示されたうえで、チャットメッセージを送信したチャットクライアントを利用しているユーザのユーザＩＤが格納されている。また、テーブル１８０１の１８０２列には、チャットメッセージの宛先となるチャットクライアントを利用しているユーザのユーザＩＤが格納されている。テーブル１８０１の１８０４列には、タイムスタンプ情報が格納されている。
【０１６２】
メッセージログ情報が記憶されるまでの動作の詳細を、タイムポイントｔ１のチャットの動作事象を例として具体的に説明する。
【０１６３】
タイムポイントｔ１の動作事象のチャットメッセージは、先に説明した図４のチャットメッセージ４１０と同じものである。先述の通り、チャットメッセージ４１０の送信ユーザのクライアントＩＤは文字列４１２であり、図５を用いて説明したクライアントの利用ユーザを識別する方法により、利用者のユーザＩＤは「ｕｓｅｒＡ＠ｅｘａｍｐｌｅ．ｃｏｍ」と識別される。チャットメッセージ４１０の受信ユーザのユーザＩＤは文字列４１１であり、利用者のユーザＩＤは、「ｕｓｅｒＢ＠ｅｘａｍｐｌｅ．ｃｏｍ」と識別される。
【０１６４】
このため、テーブル１８０１の１８０２列には、チャットメッセージ４１０を送信したチャットクライアントを利用しているユーザのユーザＩＤである「ｕｓｅｒＡ＠ｅｘａｍｐｌｅ．ｃｏｍ」を格納する。また、テーブル１８０１の１８０３列には、チャットメッセージ４１０の宛先のチャットクライアントを利用しているユーザのユーザＩＤである「ｕｓｅｒＢ＠ｅｘａｍｐｌｅ．ｃｏｍ」を格納する。更に、テーブル１８０１の１８０４列には、タイムポイント情報「ｔ１」を格納する。
【０１６５】
以降、チャットメッセージを送信したチャットクライアントを利用しているユーザのユーザＩＤと、チャットメッセージの宛先のチャットクライアントの利用ユーザのユーザＩＤとが同じ場合には、該当する行にタイムポイント情報を格納する。
【０１６６】
テーブル１８０１の１８０５行は、言い換えると、「ｕｓｅｒＡ＠ｅｘａｍｐｌｅ．ｃｏｍ」から「ｕｓｅｒＢ＠ｅｘａｍｐｌｅ．ｃｏｍ」へ、タイムポイントｔ１、ｔ３、ｔ６、ｔ７で、チャットメッセージを送信したことを示している。
【０１６７】
その他のタイムポイントのチャット動作についても、同様に処理が行われ、タイムポイントｔ８までの動作事象が起きた時点で、メッセージログ情報には、１８０６行から１８０９行までが加わり、図１８のテーブル１８０１に示す状態となる。
【０１６８】
＜１．２  アクティブ度判定処理の流れ＞
次に、メッセージサーバ１０１において実行されるアクティブ度判定処理について説明する。なお、本実施形態において実行されるアクティブ度判定処理の流れは、図１１と同様であり、図１１のステップＳ１１０３において記憶されるアクティブ度情報の形式のみが異なる。このため、ここではアクティブ度判定処理により記憶されるアクティブ度情報について説明する。
【０１６９】
本実施形態においては、チャットメッセージを送信したチャットクライアントの利用ユーザと、チャットメッセージの宛先となるチャットクライアントの利用ユーザとを区別する情報を含むアクティブ度情報を記憶する。
【０１７０】
図６（ｂ）のタイムポイントｔｙ（６１２）でのアクティブ度情報を図１９のテーブル１９０１に示す。
【０１７１】
テーブル１９０１において、１９０２列は、チャットメッセージを送信したチャットクライアントを利用しているユーザのユーザＩＤである。１９０３列は、同じ行の１９０２例に対する、チャットメッセージの宛先となっているチャットクライアントを利用しているユーザのユーザＩＤである。１９０４列は、アクティブ度情報である。
【０１７２】
＜１．３  優先ユーザ判定処理＞
次に、図１３の機器アクセスメッセージ転送処理のステップＳ１３０４（優先ユーザ判定処理）の流れについて図２０を用いて説明する。
【０１７３】
まず、ステップＳ２００１では、アクティブ度情報を参照する。具体的には、ステップＳ８０３で特定したユーザＩＤのうち、次の条件を満たす行のアクティブ度を取得する。  ・機器アクセスメッセージの宛先となる機器クライアントの利用ユーザのユーザＩＤが、送信側ユーザとして記憶されている。
【０１７４】
・機器アクセスメッセージを送信した機器クライアントの利用ユーザのユーザＩＤが受信側ユーザとして記憶されている。
【０１７５】
ステップＳ２００１で取得したアクティブ度をもとに、ステップＳ１５０２以降の処理を実行する。なお、図２０において、ステップＳ１５０２は、図１５のステップＳ１５０２と同じ動作であり、また、ステップＳ１５０３及びステップＳ１５０４も、それぞれ、図１５のステップＳ１５０３及びステップＳ１５０４と同じ動作であるため、説明は省略する。
【０１７６】
＜２．実施例１＞
本実施形態に係るメッセージシステム１００の実施例について説明する。なお、以下では、機器クライアントの能力を超える負荷が発生している状態である、タイムポイントｔ１６において、機器クライアント１２２から機器クライアント１２１に対して機器アクセスを行った場合について説明する。
【０１７７】
このときの機器アクセスメッセージは、図４の機器アクセスメッセージ４２０と同じである。機器アクセスメッセージ４２０を送信した機器クライアントのクライアントＩＤは文字列４２２であり、このクライアントを利用しているユーザのユーザＩＤは、「ｕｓｅｒＢ＠ｅｘａｍｐｌｅ．ｃｏｍ」である。また、機器アクセスメッセージ４２０の宛先の機器クライアントのクライアントＩＤは文字列４２１であり、このクライアントを利用しているユーザのユーザＩＤは、「ｕｓｅｒＡ＠ｅｘａｍｐｌｅ．ｃｏｍ」である。
【０１７８】
まず、メッセージサーバ１０１が機器アクセスメッセージ４２０を受信すると、配信処理部３０１が、図７に示す配信処理を実行する。
【０１７９】
ステップＳ７０１のメッセージ解析処理では、文字列４２１及び文字列４２２のクライアントＩＤ、及び、この機器クライアントの利用者のユーザＩＤが抽出される。ここでは、抽出されたクライアントＩＤの双方が機器クライアントであるため、図８のステップＳ８０４では“Ｎｏ”と判定され、ステップＳ８０６では“Ｙｅｓ”と判定される。
【０１８０】
また、ステップＳ８０７では、コマンド名である文字列４２３が抽出される。更に、ステップＳ８０８では、機器アクセスメッセージ４２０が機器アクセスメッセージであるという情報が配信処理部３０１に送信される。ゆえに、ステップＳ７０２では“Ｎｏ”と判定され、ステップＳ７０４では“Ｙｅｓ”と判定され、ステップＳ７０５における機器アクセスメッセージ転送処理が実行される。
【０１８１】
ステップＳ７０５に示す機器アクセスメッセージ転送処理では、図１３のステップＳ１３０４の優先ユーザ判定処理（図２０に示す）が実行される。
【０１８２】
ステップＳ２００１では、アクティブ度情報が格納されたテーブル１９０１からアクティブ度を抽出する。具体的には、機器アクセスメッセージ４２０の宛先の機器クライアントを利用しているユーザＩＤである「ｕｓｅｒＡ＠ｅｘａｍｐｌｅ．ｃｏｍ」が記憶されている列（１９０２）を特定する。更に、機器アクセスメッセージ４２０を送信した機器クライアントを利用しているユーザのユーザＩＤである「ｕｓｅｒＢ＠ｅｘａｍｐｌｅ．ｃｏｍ」が記憶されている列（１９０３）を特定する。そして、特定したこれらの列に基づいて１９０５行を特定し、１９０４列のアクティブ度である「３」を抽出する。
【０１８３】
次に、ステップＳ１５０２では、閾値設定部３０７を用いて設定されたアクティブ度の閾値「２」と、ステップＳ２００１で抽出したアクティブ度「３」とを比較する。ステップＳ２００１で抽出されたアクティブ度「３」は、閾値設定部３０７を用いて設定されたアクティブ度の閾値「２」以上であるため、ステップＳ１５０２では“Ｎｏ”と判定される。また、ステップＳ１５０３では、このメッセージの送信者は優先ユーザであると判定する。この結果、ステップＳ１３０５では、“Ｙｅｓ”と判定され、ステップＳ１３０６において、配信処理部３０１は、宛先となる機器クライアントにメッセージを転送する。以上、優先ユーザであると判定されるユーザは、機器のサービスを利用することができる。
【０１８４】
＜３．実施例２＞
次に、本実施形態に係るメッセージシステム１００の他の実施例について説明する。なお、以下では、機器クライアントの能力を超える負荷が発生している状態である、タイムポイントｔ１６において、機器クライアント１２３から機器クライアント１２１に対して機器アクセスを行った場合について説明する。
【０１８５】
このときの機器アクセスメッセージは、図１６の機器アクセスメッセージ１６１０と同じである。機器アクセスメッセージ１６１０を送信した機器クライアントのクライアントＩＤは文字列１６１２であり、このクライアントを利用しているユーザのユーザＩＤは、「ｕｓｅｒＣ＠ｅｘａｍｐｌｅ．ｃｏｍ」と識別される。また、機器アクセスメッセージ１６１０の宛先の機器クライアントのクライアントＩＤは文字列１６１１であり、このクライアントを利用しているユーザのユーザＩＤは、「ｕｓｅｒＡ＠ｅｘａｍｐｌｅ．ｃｏｍ」と識別される。
【０１８６】
まず、メッセージサーバ１０１が機器アクセスメッセージ１６１０を受信すると、配信処理部３０１では、図７に示す配信処理を実行する。ステップＳ７０１のメッセージ解析処理では、文字列１６１１及び文字列１６１２のクライアントＩＤ、及び、その機器クライアントの利用者のユーザＩＤが抽出される。ここでは、抽出されたクライアントＩＤの双方が機器クライアントであるため、図８のステップＳ８０４では“Ｎｏ”と判定され、ステップＳ８０６では“Ｙｅｓ”と判定される。
【０１８７】
また、ステップＳ８０７では、コマンド名である文字列１６１３が抽出される。更に、ステップＳ８０８では、機器アクセスメッセージ１６１０が機器アクセスメッセージであるという情報が配信処理部３０１に送信される。ゆえに、図７のステップＳ７０２では“Ｎｏ”と判定され、ステップＳ７０４では“Ｙｅｓ”と判定され、ステップＳ７０５における機器アクセスメッセージ転送処理が実行される。ステップＳ７０５に示す機器アクセスメッセージ転送処理の中で、図１３のステップＳ１３０４における優先ユーザ判定処理（図２０に示す）が実行される。
【０１８８】
ステップＳ２００１では、アクティブ度情報が格納されたテーブル１９０１から、アクティブ度を抽出する。具体的には、機器アクセスメッセージ１６１０の宛先となる機器クライアントを利用しているユーザのユーザＩＤである「ｕｓｅｒＡ＠ｅｘａｍｐｌｅ．ｃｏｍ」が記憶されている１９０２列を特定する。また、機器アクセスメッセージ１６１０を送信した機器クライアントを利用しているユーザのユーザＩＤである「ｕｓｅｒＣ＠ｅｘａｍｐｌｅ．ｃｏｍ」が記憶されている１９０３列を特定する。更に、特定されたこれらの列から１９０６行を特定し、１９０４列のアクティブ度である「１」を抽出する。
【０１８９】
次に、ステップＳ１５０２では、閾値設定部３０７を用いて設定されたアクティブ度の閾値「２」と、ステップＳ２００１で抽出したアクティブ度「１」とを比較する。ステップＳ２００１で抽出されたアクティブ度「１」は、閾値設定部３０７を用いて設定されたアクティブ度の閾値「２」未満であるため、ステップＳ１５０２では“Ｎｏ”と判定される。また、ステップＳ１５０４では、機器アクセスメッセージ１６１０を送信した機器クライアントを利用しているユーザは、優先ユーザではないと判定する。この結果、ステップＳ１３０５では“Ｎｏ”と判定され、ステップＳ１３０７からの非優先処理が実行される。
【０１９０】
以上、優先ユーザでないと判定されるユーザは、優先ユーザであると判定されるユーザよりも優先的に機器サービスを利用することができない。
【０１９１】
以上の説明から明らかなように、本実施形態に係るメッセージサーバ１０１によれば、機器アクセスするユーザのうち、より高頻度でチャットメッセージを受け取っているユーザは、それ以外のユーザに優先して機器にアクセスをすることが可能となる。
【０１９２】
また、本実施形態によれば、サービスを提供する機器クライアントを利用しているユーザの意思で、優先ユーザを決定することが可能となる。かかる効果は、例えば、チャットで招待したユーザを、より優先的に機器アクセスができるようにする、といったシーンにおいて有効である。
【０１９３】
［第３の実施形態］
本実施形態では、機器クライアントにアクセスさせるユーザの優先度を決定するにあたり、チャットメッセージの重要度を利用するメッセージシステムについて説明する。なお、以下では、上記第１の実施形態との相違点を中心に説明する。
【０１９４】
＜１．メッセージシステムを構成するメッセージサーバ及びクライアントの機能構成＞
はじめに、本実施形態のメッセージシステム１００を構成するメッセージサーバ１０１及びクライアント１１１〜１１４、１２１〜１２４の機能構成について説明する。
【０１９５】
＜１．１  クライアントの機能構成＞
本実施形態のチャットクライアントは、上記第１の実施形態において説明した機能構成に加え、更に、チャットメッセージに重要度を示す情報を付加する機能を有している。なお、重要度は、チャットメッセージを送信するユーザにより、操作部２３３を介して入力される。重要度が付加されたチャットメッセージを図２１のチャットメッセージ２１００に示す。チャットメッセージ２１００に含まれる文字列２１０１、２１０２は、チャットメッセージの重要度を示す情報を記述するタグである。文字列２１０１、２１０２のタグの間の文字列２１０３はチャットメッセージの重要度を示す情報である。
【０１９６】
＜１．２  メッセージサーバの機能構成＞
本実施形態のメッセージサーバ１０１は、上記第１の実施形態において説明した機能構成に加えて、更に、予め設定されている閾値以上の重要度であるチャットメッセージが送受信された頻度を計測する機能（重要度識別子検出手段）を有する。本機能は、メモリ２１２に記憶され、ＣＰＵ２１１が読みだして実行するプログラムモジュールにより実現される。
【０１９７】
＜２．メッセージサーバにおける動作の詳細＞
＜２．１  チャットメッセージ転送処理の流れ＞
本実施形態のメッセージサーバ１０１の配信処理部３０１の動作のうち、上記第１の実施形態と異なるのは、図７のステップＳ７０３に示すチャットメッセージ転送処理である。本実施形態のステップＳ７０３におけるチャットメッセージ転送処理の動作を、図２２を用いて説明する。なお、本実施形態では、閾値設定部３０７に、重要度の閾値として「３」が設定されているものとする。
【０１９８】
ステップＳ２２０１では、配信処理部３０１が、解析部３０２のプログラムモジュールを呼び出して実行することにより、チャットメッセージを解析し、タグ「Ｐｒｉｏｒｉｔｙ」が含まれているか否かを判定する。
【０１９９】
チャットメッセージにタグ「Ｐｒｉｏｒｉｔｙ」が含まれていない場合には（ステップＳ２２０１において“Ｎｏ”の場合には）、チャットメッセージ転送処理を終了する。一方、含まれている場合には（ステップＳ２２０１において“Ｙｅｓ”の場合には）、その重要度を抽出し（ステップＳ２２０２）、ステップＳ２２０３に進む。
【０２００】
ステップＳ２２０３では、ステップＳ２２０２で抽出した重要度と閾値設定部３０７を用いて設定された重要度の閾値「３」とを比較する。ステップＳ２２０２で抽出した重要度が、閾値設定部３０７を用いて設定された重要度の閾値「３」以上であれば（ステップＳ２２０３において“Ｙｅｓ”の場合には）、ステップＳ９０１に進む。一方、重要度の閾値「３」未満であれば（ステップＳ２２０３において“Ｎｏ”の場合には）、チャットメッセージ転送処理を終了する。
【０２０１】
図２２のステップＳ９０１〜ステップＳ９０３は、それぞれ、図９のステップＳ９０１〜ステップＳ９０３と同じ動作をする。
【０２０２】
本実施形態のメッセージサーバ１０１によれば、重要度の高いチャットメッセージのタイムスタンプのみを記憶するため、重要度の高いチャットメッセージを行っているユーザ間のアクティブ度が高くなる。すなわち、その時点で重要度の高いチャットメッセージを送受信した頻度の高いユーザを、自分が利用する機器クライアントが提供するサービスに優先的にアクセスさせることができる。
【０２０３】
なお、本実施形態のメッセージサーバ１０１を、更に、次のように動作させてもよい。すなわち、メッセージサーバ１０１が、チャットメッセージに含まれる単語を解析し、あらかじめ設定されている単語が含まれるか否かを判定する。そして、機器クライアントにアクセスさせるユーザの優先度を決定するにあたり、あらかじめ設定されている単語を含むチャットメッセージを送受信した頻度の情報を利用する。
【０２０４】
メッセージサーバ１０１では、予約単語データベースとして、機器クライアントの種別を示す情報と、それに関係するキーワードを格納した情報とを保持しておく。具体的には、機器クライアントの種別を示す情報として、「カメラ」、「ディスプレイ」という文字列が格納される。また、それに対応する予約語として、たとえば「カメラ」には、「写真」、「撮影」、「ライブビュー」、「画像リスト」などが格納される。
【０２０５】
さらに、メッセージサーバ１０１では、機器クライアントの種別及びサービスの情報を、クライアントＩＤと関連付けて記憶する。
【０２０６】
メッセージサーバ１０１の配信処理部３０１では、ステップＳ７０３のチャットメッセージ転送処理において、チャットメッセージの中に、メッセージの宛先となる機器クライアントの種別に対応するキーワードが含まれるか否かを判定する。そして、キーワードが含まれる場合にのみ、タイムポイント情報を記憶する。
【０２０７】
以上の動作により、アクセスさせる機器クライアントに関係した話題のチャットメッセージを送受信した頻度の高いユーザを、自分が利用する機器クライアントが提供するサービスに優先的にアクセスさせることが可能となる。
【０２０８】
以上の構成によれば、複数の種別の機器クライアントを同時に利用している場合に、機器クライアントの種別ごとに、優先的に利用させるユーザを決定することが可能となる。例えば、機器クライアントとして、カメラとプリンタを利用している場合、「撮影」というキーワードを含むチャットメッセージの頻度が高いユーザを、カメラへのアクセスの優先ユーザと決定する。しかし、プリンタへのアクセスの優先ユーザとはしない。
【０２０９】
［他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2013120571.tif 000003
【図２】
2013120571.tif 000004
【図３】
2013120571.tif 000005
【図４】
2013120571.tif 000006
【図５】
2013120571.tif 000007
【図６】
2013120571.tif 000008
【図７】
2013120571.tif 000009
【図８】
2013120571.tif 000010
【図９】
2013120571.tif 000011
【図１０】
2013120571.tif 000012
【図１１】
2013120571.tif 000013
【図１２】
2013120571.tif 000014
【図１３】
2013120571.tif 000015
【図１４】
2013120571.tif 000016
【図１５】
2013120571.tif 000017
【図１６】
2013120571.tif 000018
【図１７】
2013120571.tif 000019
【図１８】
2013120571.tif 000020
【図１９】
2013120571.tif 000021
【図２０】
2013120571.tif 000022
【図２１】
2013120571.tif 000023
【図２２】
2013120571.tif 000024