(57)【要約】【課題】クライアント間でリアルタイム性の高いメッセージ交換を可能とし、且つ、通信の効率化を図ることができる管理サーバを提供する。【解決手段】管理サーバ１３は、ＨＴＴＰ等のリクエスト／レスポンス型の通信プロトコルによりクライアントと通信において、クライアント１１からのリクエスト情報を受信し、リクエスト情報の送信元のクライアントについて、次のリクエスト情報を送信させるまでのポーリング時間を算出し、算出したポーリング時間の情報を、リクエスト情報に対するレスポンス情報に含めてクライアント１１に返信する。ポーリング時間は、例えば、リクエスト情報の送信元のユーザに関する通信記録（イベント情報）に基づいて算出される。【選択図】　図１
2004080187.tif 000002
【特許請求の範囲】
【請求項１】
リクエスト／レスポンス型の通信プロトコルによりクライアントと通信を行う管理サーバであって、
クライアントからのリクエスト情報を受信する手段と、
前記リクエスト情報の送信元のクライアントについて、次のリクエスト情報を送信させるまでのポーリング時間を算出する算出手段と、
算出したポーリング時間の情報を、前記リクエスト情報に対するレスポンス情報に含めて返信する手段と、
を備えることを特徴とする管理サーバ。
【請求項２】
前記算出手段は、前記リクエスト情報の送信元のユーザに関する通信記録に基づいて、前記ポーリング時間を算出する、
ことを特徴とする請求項１に記載の管理サーバ。
【請求項３】
前記通信プロトコルにより定められたセッションタイムと、所定イベントの発生の有無と、の少なくとも一方に基づいて、前記レスポンス情報の送信タイミングを制御する、
ことを特徴とする請求項１又は２に記載の管理サーバ。
【請求項４】
各クライアントの通信状態を示すステータス情報を記憶する記憶手段と、
クライアントからの通信要求に応じて、前記クライアントが次の通信要求を送信するまでのポーリング時間を前記クライアントに通知する手段と、
前記クライアントに通知した時間内に通信要求を受信したかを判別し、受信しなかった場合に、前記記憶手段における前記クライアントのステータス情報に、当該クライアントが第１の通信不能状態である旨を設定する手段と、
前記記憶手段におけるステータス情報に、当該クライアントが第１の通信不能状態である旨が設定されたクライアントについて、所定時間内に当該クライアントから通信要求を受信したかを判別し、受信した場合には、前記クライアントのステータス情報に、当該クライアントが通信可能状態である旨を設定し、受信しなかった場合には、前記クライアントのステータス情報に、当該クライアントが第２の通信不能状態である旨を設定して当該クライアントとのセッションを終了する手段と、
前記記憶手段に記憶されているステータス情報を出力する手段と、
を備えることを特徴とする管理サーバ。
【請求項５】
前記ステータス情報に、当該クライアントが第１の通信不能情報である旨が設定されたクライアントに対するメッセージを受信した場合、前記メッセージを保持し、当該クライアントとの通信が再開したときに、前記保持したメッセージを前記クライアントに供給する、
ことを特徴とする請求項４に記載の管理サーバ。
【請求項６】
前記クライアントは、携帯端末と、携帯電話機と、の少なくとも一方を含む、
ことを特徴とする請求項４又は５に記載の管理サーバ。
【請求項７】
コンピュータを、
請求項１乃至６のいずれか１つに記載の管理サーバとして機能させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、クライアント間でメッセージ等のデータをやり取りするためのネットワーク通信システム等に関する。
【０００２】
【従来の技術】
従来、例えばＨＴＴＰ等のリクエスト／レスポンス型の通信プロトコルによってデータ通信を行うネットワークシステムにおいて、クライアント同士でサーバを介してメッセージ等のデータをやり取りする場合、クライアントがサーバに所定時間毎にアクセスして更新情報の有無を確認していた。この所定時間毎にクライアントがサーバにアクセスして情報を取得・更新等する方式は一般にポーリング方式等と呼ばれる。
【０００３】
例えば、クライアントＡとクライアントＢの間でメッセージを交換するという場面を例に説明すると、クライアントＢがサーバに時刻Ｔ１にリクエストを送信した後に、クライアントＡがクライアントＢに対するメッセージデータをサーバに登録した場合、クライアントＢは、次のアクセス時刻Ｔ２（＝時刻Ｔ１＋Δｔ）に、サーバにリクエストを送信して、サーバに登録されているメッセージデータを取得する。
【０００４】
【発明が解決しようとする課題】
上記のようなシステムにおいて、クライアント間のデータのやり取りを、よりリアルタイムに近いものとして実現しようとすると、クライアントからサーバへのリクエストを頻繁に発生させることになる。この場合、通信パケット量が増大し、ネットワーク負荷が大きくなってしまうという問題があった。また、サーバ側で情報が更新されていないときでも通信が発生するため、無駄なパケット（空振りパケット）の発生により通信効率が低下する虞があった。
【０００５】
また、クライアント間におけるリアルタイム性の高いデータ通信（メッセージ交換）を可能とするインターネット機能の１つとしてインスタントメッセージ機能等がある。インスタントメッセージは、ネットワークに接続状態にあるクライアント間のメッセージ交換を可能とする性質から、主にパーソナルコンピュータで利用されており、状況によって通信不能状態となる携帯端末、携帯電話機等での利用には適していなかった。例えば、携帯端末等が通信圏外にあってオフライン状態になっている場合にはメッセージの送受信ができないため、その携帯端末等のユーザに対して発信されたメッセージが無駄になってしまうという問題等があった。
【０００６】
この発明は、上記実状に鑑みてなされたものであり、クライアント間でリアルタイム性の高いメッセージ交換を可能とし、且つ、通信の効率化を図ることができる管理サーバを提供することを目的とする。
また、この発明は、リクエスト／レスポンス型の通信プロトコルを用いたネットワークシステムにおいて、クライアント間のデータのやり取りにおけるリアルタイム性を高め、且つ、ネットワーク負荷を軽減することができる管理サーバ等を提供することを他の目的とする。
また、この発明は、インスタントメッセージ等のリアルタイムな通信機能の利用を携帯端末等の間で可能にする管理サーバ等を提供することを他の目的とする。
【０００７】
【課題を解決するための手段】
上記目的を達成するため、この発明の第１の観点に係る管理サーバは、
リクエスト／レスポンス型の通信プロトコルによりクライアントと通信を行う管理サーバであって、
クライアントからのリクエスト情報を受信する手段と、
前記リクエスト情報の送信元のクライアントについて、次のリクエスト情報を送信させるまでのポーリング時間を算出する算出手段と、
算出したポーリング時間の情報を、前記リクエスト情報に対するレスポンス情報に含めて返信する手段と、
を備えることを特徴とする。
【０００８】
この発明によれば、管理サーバが、リクエスト情報を発信したクライアントについて、次のリクエスト情報の好適な送信タイミングを算出して通知することにより、クライアント間でのメッセージ交換等のデータ通信におけるリアルタイム性を高めるとともに、通信効率を向上させることができる。
【０００９】
前記算出手段は、前記リクエスト情報の送信元のユーザに関する通信記録に基づいて、前記ポーリング時間を算出してもよい。
【００１０】
前記通信プロトコルにより定められたセッションタイムと、所定イベントの発生の有無と、の少なくとも一方に基づいて、前記レスポンス情報の送信タイミングを制御してもよい。
【００１１】
この発明の第２の観点に係る管理サーバは、
各クライアントの通信状態を示すステータス情報を記憶する記憶手段と、
クライアントからの通信要求に応じて、前記クライアントが次の通信要求を送信するまでのポーリング時間を前記クライアントに通知する手段と、
前記クライアントに通知した時間内に通信要求を受信したかを判別し、受信しなかった場合に、前記記憶手段における前記クライアントのステータス情報に、当該クライアントが第１の通信不能状態である旨を設定する手段と、
前記記憶手段におけるステータス情報に、当該クライアントが第１の通信不能状態である旨が設定されたクライアントについて、所定時間内に当該クライアントから通信要求を受信したかを判別し、受信した場合には、前記クライアントのステータス情報に、当該クライアントが通信可能状態である旨を設定し、受信しなかった場合には、前記クライアントのステータス情報に、当該クライアントが第２の通信不能状態である旨を設定して当該クライアントとのセッションを終了する手段と、
前記記憶手段に記憶されているステータス情報を出力する手段と、
を備えることを特徴とする。
【００１２】
この発明によれば、クライアントの通信状態を管理サーバで把握・管理することができるため、通信状態が変化するクライアントでもリアルタイムなデータ通信機能を利用することができる。また、通信状態を示すステータス情報を出力して、他のクライアント等に供給することができるため、無駄なメッセージ送信等を削減することができる。
【００１３】
前記ステータス情報に、当該クライアントが第１の通信不能情報である旨が設定されたクライアントに対するメッセージを受信した場合、前記メッセージを保持し、当該クライアントとの通信が再開したときに、前記保持したメッセージを前記クライアントに供給してもよい。
【００１４】
前記クライアントは、携帯端末と、携帯電話機と、の少なくとも一方を含んでもよい。
【００１５】
この発明の第３の観点に係るプログラムは、
コンピュータを、
上述のいずれか１つに記載の管理サーバとして機能させることを特徴とする。
【００１６】
【発明の実施の形態】
以下、本発明に係る実施の形態について図面を参照して説明する。
【００１７】
（第１の実施形態）
図１はこの発明の第１の実施形態に係るネットワーク通信システムの構成を示す図である。
図示するように、このネットワーク通信システムは、ネットワーク１０を介して相互に接続されるクライアント１１と、管理サーバ１３と、を備えている。
【００１８】
ネットワーク１０は、移動体通信網、電話回線、インターネット等から構成され、クライアント１１と管理サーバ１３との間で情報の送受信を可能とするためのものである。
【００１９】
クライアント１１は、制御部１１１、記憶部１１２、表示部１１３、入力部１１４、通信制御部１１５等を備える携帯端末、携帯電話機、パーソナルコンピュータ等から構成され、ネットワーク１０を介して管理サーバ１３等との間で通信を行う。
クライアント１１の制御部１１１は、図２に示すように、記憶部１１２に記憶される動作プログラム等を実行することにより、ブラウザ部１１１ａ、リクエスト制御部１１１ｂ、を論理的に実現する。
【００２０】
ブラウザ部１１１ａは、従来のブラウザ機能を有し、また、リクエスト制御部１１１ｂと連動して、サーバへのリクエスト情報を送信する処理やサーバからのレスポンス情報を受信する処理等を行う。
リクエスト制御部１１１ｂは、管理サーバ１３から受信したレスポンス情報に含まれる所定情報（ポーリング間隔情報）を参照し、その情報が示すポーリング間隔で次回のリクエスト情報を管理サーバ１３に送信するようブラウザ部１１１ａを制御する。
【００２１】
クライアント１１から管理サーバ１３に送信されるリクエスト情報の一例を図３に示す。このリクエスト情報は、例えば、プロトコルバージョン、リクエストコマンド、制御フラグ、受信可能イベント数、ＡｃｋＩＤ、要求イベント等のデータを含む。このうち、制御フラグは、リクエストに対応するレスポンスを即時にリターンするか否かを示す即時リターンフラグを含む。例えば、レスポンスが即時に返されることが望ましいリクエスト（例えば、「ログイン要求」、「設定変更要求」等）については即時リターンフラグが「オン」に設定され、それ以外のリクエストについては即時リターンフラグが「オフ」に設定される。
【００２２】
記憶部１１２、制御部１１１が実行する動作プログラムや、処理に必要な各種のデータを記憶する。
表示部１１３、ＣＲＴ、液晶ディスプレイ等の表示装置を含み、制御部１１１からの指示に従って種々の画面表示を行う。
入力部１１４、マウス、キーボード等の入力装置を含み、入力されたデータを制御部１１１に通知する。
通信制御部１１５は、ネットワーク１０を介して管理サーバ１３等との間でデータ通信を行うためのものである。
【００２３】
管理サーバ１３は、例えば図４に示すように、制御部１３１と、記憶部１３２と、通信制御部１３３と、を備えるコンピュータ等から構成される。
【００２４】
制御部１３１は、記憶部１３２に記憶される動作プログラム等を実行することにより、ウェブサーバ部１３１ａ、レスポンス制御部１３１ｂ等を論理的に実現する。
【００２５】
ウェブサーバ部１３１ａは、従来のウェブサーバと同様の機能を有し、また、レスポンス制御部１３１ｂと連動して、クライアント１１に対して次のポーリング間隔を指示するためのポーリング間隔情報を含むレスポンス情報を送信する処理を行う。また、ウェブサーバ部１３１ａは、リクエスト情報を受信したとき、これに対するレスポンス情報を即時に返信せずに、所定のイベントが発生したとき又はタイムアウト直前等の所定のタイミングでレスポンス情報をクライアント１１に送信する。なお、レスポンス情報を即時に返信するよう設定されているリクエスト情報については、レスポンス情報をすぐに返信する。
【００２６】
また、ウェブサーバ部１３１ａは、各クライアント１１において発生したイベント（各種キー操作等）について、発生日時、イベント内容等を示すイベント情報（通信記録）を記憶部１３２のイベントデータベース１３２ａに記憶する。
【００２７】
レスポンス制御部１３１ｂは、クライアント１１からのリクエスト情報の受信に応じて、そのクライアント１１に通知するポーリング間隔を決定し、これを示すポーリング間隔情報をウェブサーバ部１３１ａに渡す。ポーリング間隔の決定方法は、例えば、イベントデータベース１３２ａに記憶されているイベント情報を参照し、リクエスト送信元のクライアント１１におけるイベント発生頻度や、リクエスト送信元のクライアントの通信相手のイベント発生頻度等の情報に基づいて、オペレーションズリサーチ等により通信効率の良い時間間隔を算出する。例えば、ユーザの過去の利用パターンについて多変量解析を行い、その結果を用いて最適なポーリング間隔を決定してもよい。
【００２８】
管理サーバ１３からクライアント１１に送信されるレスポンス情報の一例を図５に示す。このレスポンス情報は、例えば、レスポンスＩＤ、レスポンスコード、ポーリング間隔情報、セッションＩＤ長、セッションＩＤ、イベント／要求結果数、イベント／要求結果等のデータを含む。
【００２９】
記憶部１３２は、制御部１３１が実行する動作プログラムや、処理に必要な各種のデータを記憶する。また、記憶部１３２は、各クライアントにおいて発生したイベントの情報（イベント情報）を記憶するイベントデータベース１３２ａを有する。
【００３０】
通信制御部１３３は、ネットワーク１０を介してクライアント１１等との間でデータ通信を行うためのものである。
【００３１】
次に、この第１の実施形態に係るネットワーク通信システムの動作について本発明の特徴部分を中心に説明する。
【００３２】
初めに、クライアント１１におけるリクエスト送信処理について図６のフローチャートを参照して説明する。
まず、クライアント１１は、ユーザの入力操作に応じたリクエスト情報を生成し、管理サーバ１３に送信する（ステップＳ１）。
【００３３】
そして、送信したリクエスト情報に対応するレスポンス情報を管理サーバ１３から受信すると、そのレスポンスに含まれているポーリング間隔情報を記憶部の所定領域に記憶する（ステップＳ２）。
そして、受信したレスポンス情報の内容に応じた処理（例えば、レスポンス情報にＨＴＭＬデータが付されている場合には、それを表示する等）を行う（ステップＳ３）。
【００３４】
そして、ポーリング間隔情報が示すポーリング時間が経過した後（ステップＳ４）、ステップＳ１に戻って、次のリクエスト情報を生成して管理サーバ１３に送信する等の処理を繰り返す（ステップＳ１〜Ｓ４）。
【００３５】
なお、このリクエスト送信処理の開始、終了のタイミングは任意であり、例えば、管理サーバ１３へのログイン時や所定の入力操作（例えば操作メニューから「メッセージ交換」を選択等）時に開始してもよく、また、ログアウトや所定の入力操作（例えば操作メニューから「メッセージ交換の終了」を選択等）時に終了してもよい。
【００３６】
次に、管理サーバ１３におけるレスポンス送信処理について図７のフローチャートを参照して説明する。
管理サーバ１３は、クライアント１１からリクエスト情報を受信すると、そのリクエスト情報に含まれる即時リターンフラグを参照し（ステップＳ１０）、設定内容が「オフ」であると判別した場合には、要求元に通知すべきイベントが既に有るかを判別する。
そして、通知すべきイベントがない場合には（ステップＳ１１：Ｎ）、ＨＴＴＰのセッションタイムアウトの直前まで、所定のイベント（例えば、通信相手によるデータ更新等）の発生を待つ（ステップＳ１２）。
【００３７】
ステップＳ１１において、通知すべきイベントが有ると判別された場合、又は、ステップＳ１２において、タイムアウト直前になった場合には、要求元のクライアントについてのポーリング時間を計算する処理を行う（ステップＳ１３）。そして、計算したポーリング時間を示すポーリング間隔情報を含むリクエスト情報を要求元のクライアント１１に送信して（ステップＳ１４）、本処理を終了する。
【００３８】
また、ステップＳ１０において、リクエスト情報に含まれる即時リターンフラグが「オン」に設定されている場合には、ポーリング間隔の計算処理を続けて行い（ステップＳ１３）、レスポンス情報を返信する処理を行って（ステップＳ１４）、本処理を終了する。
【００３９】
次に、本システムにおける各装置間の処理の流れについて、ユーザＡとユーザＢがメッセージ交換を行う場合を例に図８を参照して説明する。
まず、例えば、ユーザＢがクライアント１１Ｂを用いて管理サーバ１３にログイン要求ｒｅｑ１を送信する（Ｌ１）。
管理サーバ１３は、クライアント１１Ｂからログイン要求ｒｅｑ１を受信すると、クライアント１１Ｂに対するポーリング間隔ｔｄ０を計算し、この情報を含むログイン完了通知ｒｅｓ１をクライアント１１Ｂに送信する（Ｌ２）。
【００４０】
一方、ユーザＡもクライアント１１Ａを用いて管理サーバ１３にログイン要求ｒｅｑ２を送信する（Ｌ３）。
管理サーバ１３は、クライアント１１Ａに対するポーリング間隔ｔｄ１を算出し、この情報を含むログイン完了通知ｒｅｓ２をクライアント１１Ａに送信する（Ｌ４）。例えば、このとき、ユーザＢがログイン中であることもユーザＡに通知される。
【００４１】
また、クライアント１１Ｂ側では、通知されたポーリング間隔ｔｄ０が経過すると、リクエスト情報ｒｅｑ３が管理サーバ１３に送信される（Ｌ５）。
管理サーバ１３は、受信したリクエストｒｅｑ３に対するレスポンスをすぐに返さずに、イベントが発生するまで、又は、タイムアウト直前まで待つ。
【００４２】
このとき、例えば、ポーリング間隔ｔｄ１が経過する前に、クライアント１１Ａが、ユーザＡによる入力操作に従い（又は、自動的に）プレゼンス変更要求ｒｅｑ４を管理サーバ１３に送信する（Ｌ６）。
管理サーバ１３は、クライアント１１Ａからプレゼンス変更要求ｒｅｑ４を受信すると、ポーリング間隔ｔｄ２を算出し、この情報を含む変更完了通知ｒｅｓ４をクライアント１１Ａに送信する（Ｌ７）とともに、このイベント（ユーザＡのプレゼンス変更）を通知するレスポンス情報ｒｅｓ３（リクエストｒｅｑ３に対応）をクライアント１１Ｂに送信する（Ｌ８）。なお、このレスポンスｒｅｓ３は、ポーリング間隔ｔｄ３の情報を含む。
【００４３】
次に、クライアント１１Ａが、ユーザＡによる入力操作に従って、ユーザＢへのメッセージｒｅｑ５を送信したとする（Ｌ９）。管理サーバ１３は、ユーザＡによるユーザＢへのメッセージの情報を更新／記憶する。また、管理サーバ１３は、受信したリクエストｒｅｑ５に対するレスポンスをすぐに返さずに、イベントが発生するまで、又は、タイムアウト直前まで待つ。
【００４４】
また、クライアント１１Ｂ側では、通知されたポーリング間隔ｔｄ３が経過すると、リクエスト情報ｒｅｑ６が管理サーバ１３に送信される（Ｌ１０）。
このとき、クライアント１１Ｂに通知すべきイベント（ユーザＡからのメッセージ）が既に発生しているため、管理サーバ１３は、メッセージの送信完了通知ｒｅｓ５（リクエストｒｅｑ５に対応、ポーリング間隔ｔｄ４の情報を含む）をクライアント１１Ａに送信するとともに（Ｌ１１）、ユーザＡからのメッセージｒｅｓ６（ポーリング間隔ｔｄ５の情報を含む）をクライアント１１Ｂに送信する（Ｌ１２）。
【００４５】
そして、クライアント１１Ａ側では、通知されたポーリング間隔ｔｄ４が経過すると、リクエスト情報ｒｅｑ７が管理サーバ１３に送信される（Ｌ１３）。また、クライアントＣＢ側では、通知されたポーリング間隔ｔｄ５が経過すると、リクエスト情報ｒｅｑ８が管理サーバ１３に送信される（Ｌ１４）。管理サーバ１３は、これらのリクエストを受信し、対応するレスポンスを各クライアント１１Ｂ、１１Ｃに送信する。
以後、通信が終了するまで、クライアント１１Ａ、１１Ｂと管理サーバ１３間で上記のようなリクエストとレスポンスのやり取りが続行される。
【００４６】
以上のように、本発明の第１の実施形態によれば、管理サーバ１３がクライアント１１に対して好適なポーリング間隔を指示し、この時間間隔でクライアント１１にリクエストを発信させ、また、管理サーバ１３において、レスポンスをイベント発生やタイムアウト直前等のタイミングで発信するようにすることにより、クライアント間のデータ通信のリアルタイム性を高めつつ、ネットワーク負荷を軽減し、通信効率を向上させることができる。
【００４７】
なお、第１の実施形態におけるリクエスト、レスポンスのデータ構成は一例であり、これに限定されず任意である。
また、ポーリング間隔の決定方法は任意であり、種々の計算方法、解析方法等を適用可能である。
また、クライアント１１において、通知されたポーリング時間に基づくリクエストＲｎを送信する前に、ユーザがリクエストを生成して管理サーバ１３に送信した場合には、リクエストＲｎの送信をやめるようにしてもよい。
【００４８】
（第２の実施形態）
次に、本発明の第２の実施形態に係るネットワーク通信システムについて説明する。このネットワーク通信システムは、インターネットに接続した端末同士で直接メッセージをやりとりするためのシステムである。なお、このようなメッセージ交換機能は一般的にインスタントメッセージと呼ばれている。
【００４９】
図９はこの発明の第２の実施形態に係るネットワーク通信システムの構成を示す図である。
図示するように、このネットワーク通信システムは、ネットワーク１５を介して相互に接続されるクライアント１６と、管理サーバ１７と、を備えている。
【００５０】
ネットワーク１５は、移動体通信網、電話回線、インターネット等から構成され、クライアント１６と管理サーバ１７との間で情報の送受信を可能とするためのものである。
【００５１】
クライアント１６は、制御部１６１、記憶部１６２、表示部１６３、入力部１６４、通信制御部１６５等を備える携帯端末、携帯電話機等から構成され、ネットワーク１５を介して管理サーバ１７等との間で通信を行う。
【００５２】
クライアント１６の制御部１６１は、図１０に示すように、記憶部１６２に記憶される動作プログラム等を実行することにより、メッセージ送受信部１６１ａ、セッション管理部１６１ｂ、を論理的に実現する。
【００５３】
メッセージ送受信部１６１ａは、ユーザによる入力操作に従って、他のユーザ宛のメッセージを生成し、生成したメッセージを管理サーバ１７に送信するメッセージ送信や、管理サーバ１７からそのユーザ宛のメッセージを受信するメッセージ受信処理等を行う。
【００５４】
セッション管理部１６１ｂは、ユーザによる入力操作に従って、管理サーバ１７にログインした後、管理サーバ１７から通知される、ポーリング間隔値とセッションタイムアウト値等の情報を記憶部１６２に記憶し、そのポーリング間隔値が示すポーリング間隔で次の通信要求を管理サーバ１７に送信する。また、セッション管理部１６１ｂは、セッションタイムアウト値が示す時間内に、少なくとも一度は管理サーバ１７と通信を行う。
【００５５】
記憶部１６２は、制御部１６１が実行する動作プログラムや、処理に必要な各種のデータを記憶する。
表示部１６３は、ＣＲＴ、液晶ディスプレイ等の表示装置を含み、制御部１６１からの指示に従って種々の画面表示を行う。
入力部１６４は、マウス、キーボード等の入力装置を含み、入力されたデータを制御部１６１に通知する。
通信制御部１６５は、ネットワーク１５を介して管理サーバ１７との間でデータ通信を行うためのものである。
【００５６】
管理サーバ１７は、例えば図１１に示すように、制御部１７１と、記憶部１７２と、通信制御部１７３と、を備えるコンピュータ等から構成される。
【００５７】
制御部１７１は、記憶部１７２に記憶される動作プログラム等を実行することにより、メッセージ交換制御部１７１ａ、接続状態チェック部１７１ｂ等を論理的に実現する。
【００５８】
メッセージ交換制御部１７１ａは、ログインユーザ間でメッセージをやり取りさせるための処理を行う。具体的には、ログインユーザから他のログインユーザ宛のメッセージを受け付け、他のログインユーザ（メッセージ宛先のユーザ）からの通信要求等に応じてそのメッセージを供給する処理等を行う。
このメッセージ交換処理において、メッセージ交換制御部１７１ａは、記憶部１７２の接続状態データベース１７２ａに記憶される各ユーザ（クライアント１６）の接続状態情報を参照して、宛先ユーザの通信状態をチェックする。
【００５９】
この接続状態情報は、例えば、図１２に示すように、各ユーザについて、ユーザＩＤ、ステータス、ログイン時刻、最終通信時刻、一時不能時刻（ステータスが「一時不能状態」に設定された時刻）等のデータを含む。このうち、ステータスには、例えば、「通信可」、「一時不能状態」、「通信不能状態」等のクライアント１６の通信状態を示す情報が設定される。また、最終通信時刻は、クライアント１６から通信要求がある毎に更新される。
【００６０】
そして、メッセージ交換制御部１７１ａは、メッセージの宛先ユーザのステータスが「一時不能状態」である場合には、メッセージを記憶部１７２の所定領域にユーザ毎にキューイングする。そして、「一時不能状態」ステータスが解消された場合に、キューイングされていたメッセージをそのユーザのクライアント１６に供給する。また、「一時不能状態」ステータスが「通信不能状態（オフライン）」に変更された場合には、ユーザにより事前に設定された対処内容に従って、「メッセージを電子メールにより転送する」、「送信者にメッセージの再送を促す」等の所定の処理を行う。
【００６１】
接続状態チェック部１７１ｂは、各ユーザのクライアント１６の接続状態をチェックして管理するための処理を行う。具体的には、管理サーバ１７にログインした各クライアント１６に対して、ポーリング間隔値及びセッションタイム値を通知する。また、各ログインユーザについて、通信要求がある度に、接続状態情報における最終通信時刻を更新する。また、各ログインユーザについて、最終通信時からポーリング間隔値が示す時間内に管理サーバ１７に対して通信要求があるかをチェックし、ポーリング時間内に通信要求がない場合には、そのユーザのステータスを「一時不能状態」に設定する。また、接続状態チェック部１７１ｂは、各ログインユーザについて、ステータスが「一時不能状態」に設定された場合、セッションタイム値が示す時間内に管理サーバ１７に対して通信要求があるかをチェックし、セッションタイム時間内に通信要求がない場合には、そのクライアント１６のログインセッションを終了するとともに、そのユーザのステータスを「通信不能状態」に設定する。また、接続状態チェック部１７１ｂは、ステータスが「一時不能状態」であるユーザのクライアント１６から通信要求があった場合には、ステータスを「通信可」に戻す。
【００６２】
また、接続状態チェック部１７１ｂは、ログインユーザの接続状況情報におけるステータス等の情報を、管理サーバ１７に対して通信要求を発したクライアント１６に供給する。このステータスの供給方法は任意であり、例えば、ステータスの問い合わせ要求をユーザの指定とともに受け付け、その指定されたログインユーザのステータスを要求元のクライアント１６に供給するようにしてもよく、また、例えば同一グループに属する複数のユーザのステータスを、そのグループに属するユーザからの通信要求に応答して通知するようにしてもよい。
【００６３】
記憶部１７２は、制御部１７１が実行する動作プログラムや、処理に必要な各種のデータを記憶する。
また、記憶部１７２は、接続状態情報（図１２）を記憶する接続状態データベース１７２ａと、所定のユーザ情報（ユーザＩＤ、ユーザ名、メールアドレス等）を記憶するユーザデータベース１７２ｂと、を有する。
【００６４】
通信制御部１７３は、ネットワーク１０を介してクライアント１６等との間でデータ通信を行うためのものである。
【００６５】
以下に、この第２の実施形態に係るネットワーク通信システムの動作について本発明の特徴部分を中心に説明する。
まず、管理サーバ１７が、各ログインユーザについて接続状態をチェックする接続状態チェック処理について図１３のフローチャートを参照して説明する。なお、本処理は例えば所定時間毎等のタイミングで実行される。
【００６６】
管理サーバ１７は、接続状態データベース１７２ａから、一のログインユーザの接続状態情報を読み出す（ステップＳ２１）。
そして、読み出した接続状態情報のステータスを判別し（ステップＳ２２）、例えば「通信可」である場合には、最終通信時刻からポーリング時間が経過したかを判別し（ステップＳ２３）。ポーリング時間が経過した場合には、そのステータスを「一時不能状態」に変更する（ステップＳ２４）。
【００６７】
また、ステップＳ２２において、読み出した接続状態情報のステータスが「一時不能状態」である場合、管理サーバ１７は、一時不能時刻からセッションタイムアウト時間が経過したかを判別し（ステップＳ２５）、経過した場合には、クライアント１６のログインセッションを終了するとともに、そのステータスを「通信不能状態」に変更する（ステップＳ２６）。
【００６８】
また、ステップＳ２３においてポーリング時間が経過していないと判別された場合、ステップＳ２４においてステータスが変更された後、ステップＳ２５においてセッションタイムアウト時間が経過していないと判別された場合、ステップＳ２６においてステータスが変更された後に、全ログインユーザについて処理が完了したかを判別し（ステップＳ２７）、全ログインユーザについて処理が完了するまで、上記ステップＳ２１〜Ｓ２７の処理を繰り返す。
この接続状態チェック処理により、管理サーバ１７において、全ログインユーザの通信状態を把握することができる。
【００６９】
次に、あるログインユーザＡのクライアント１６Ａの通信状態を管理サーバ１７が把握する場合における具体的な処理の流れを図１４を参照して説明する。
例えばユーザＡがクライアント１６Ａにユーザ名とパスワードを入力し、所定のログインボタンを押下すると、これに応じて、クライアント１６Ａは、入力データに基づくログイン情報を管理サーバ１７に送信する（Ｌ２１）。
【００７０】
管理サーバ１７は、クライアント１６からのログイン情報を受信して、所定のログイン認証を行い、クライアント１６Ａとのセッションを開始する。そして、管理サーバ１７は、ログイン成功応答とともに、セッションタイムアウト値、ポーリング値等の情報をクライアント１６Ａに通知する（Ｌ２２）。
【００７１】
クライアント１６Ａは、管理サーバ１７から受信したセッションタイムアウト値、ポーリング値を記憶する。そして、クライアント１６Ａは、通知されたポーリング時間が経過すると、更新情報（例えばユーザＡ宛の新たなメッセージ等）を取得するための通信要求を管理サーバ１７に送信する（Ｌ２３）。
【００７２】
管理サーバ１７は、クライアント１６Ａからの通信要求に応じて、接続状態データベース１７２ａにおけるそのクライアント１６Ａの接続状態情報の最終通信時を更新するとともに、ユーザＡに関する更新情報と、次のポーリングのためのポーリング値等をクライアント１６Ａに通知する（Ｌ２４）。
【００７３】
クライアント１６Ａは、管理サーバ１７から受信したポーリング値を記憶する。そして、通知されたポーリング時間の経過後、通信要求を管理サーバ１７に送信しようとしたが、例えば通信圏外にいたため、管理サーバ１７と通信できなかったこととする。
管理サーバ１７は、クライアント１６Ａについて、前回の通信時からポーリング時間内に通信要求がないため、その接続状態情報におけるステータスを「一時不能状態」に設定する（Ｌ２５）。そして、例えば、通信要求があった他のユーザにクライアント１６Ａが「一時不能状態」であることを通知してもよい。
【００７４】
そして、例えば、クライアント１６Ａが通信圏内にいるときに、通信のリトライを行い、通信要求がセッションタイムアウト前に管理サーバ１７に送信されたこととする（Ｌ２６）。
管理サーバ１７は、クライアント１６Ａがセッションタイムアウト前にポーリングしてきたため、クライアント１６Ａのステータスを「通信可」に変更し（Ｌ２７）、次のポーリングのためのポーリング値をクライアント１６Ａに通知する（Ｌ２８）。
【００７５】
次に、クライアント１６Ａは、例えば、再び通信圏外にいたため、管理サーバ１７と通信できなかったこととする。
管理サーバ１７は、クライアント１６Ａについて、前回の通信時からポーリング時間内に通信要求がないため、その接続状態情報におけるステータスを「一時不能状態」に設定する（Ｌ２９）。そして、通信要求がないままセッションタイムアウトとなった場合には、クライアント１６Ａのステータスを「通信不能状態」に設定するとともに、セッションを終了する（Ｌ３０）。
【００７６】
このようにして、本発明の第２の実施形態によれば、クライアント１６の通信状態を管理サーバ１７で把握・管理することができるため、通信状態が変化する携帯端末等でもインスタントメッセージ機能等のリアルタイムなデータ通信機能を利用することができる。また、各ユーザは相手の通信状態を確かめてメッセージを送信することができるため、無駄なメッセージ送信を削減することができる。
【００７７】
なお、上記の第２の実施形態ではインスタントメッセージ機能を利用するシステムについて説明したが、本発明の適用範囲はこれに限定されず、種々のリアルタイムなデータ通信機能を利用するシステムに適用可能である。
また、クライアント１６は、携帯端末、携帯電話機等に限定されず、パーソナルコンピュータ等も含んでも良い。
また、接続状態情報のデータ構成は一例であり、これに限定されず任意である。
【００７８】
また、上記第１と第２の実施形態において、各装置やＤＢの構成は、任意に変更可能である。
また、各サーバは、協働して動作する複数台のコンピュータシステムから構成されてもよく、各サーバの機能を１台のコンピュータシステムで統合して実現してもよい。
【００７９】
なお、この発明のシステムは、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、上述の動作を実行するためのプログラムをコンピュータ読み取り可能な記録媒体（ＦＤ、ＣＤ−ＲＯＭ、ＤＶＤ等）に格納して配布し、該プログラムをコンピュータにインストールすることにより、上述の処理を実行する各クライアント、管理サーバ等を構成してもよい。また、インターネット等のネットワーク上のサーバ装置が有するディスク装置に格納しておき、例えば搬送波に重畳してコンピュータにダウンロード等するようにしてもよい。
また、上述の機能を、ＯＳが分担又はＯＳとアプリケーションの共同により実現する場合等には、ＯＳ以外の部分のみを媒体に格納して配布してもよく、また、搬送波に重畳してコンピュータにダウンロード等してもよい。
【００８０】
【発明の効果】
この発明によれば、クライアント間でのメッセージ交換等のデータ通信におけるリアルタイム性を高めるとともに、通信効率を向上させることができる。
【図面の簡単な説明】
【図１】この発明の第１の実施形態に係るネットワーク通信システムの構成を示す図である。
【図２】図１のネットワーク通信システムで使用されるクライアントの構成を示す図である。
【図３】リクエスト情報のデータ構造の一例を示す図である。
【図４】図１のネットワークシステムで使用される管理サーバの構成を示す図である。
【図５】レスポンス情報のデータ構造の一例を示す図である。
【図６】クライアントにおけるリクエスト送信処理を説明するためのフローチャートである。
【図７】管理サーバにおけるレスポンス送信処理を説明するためのフローチャートである。
【図８】第１の実施形態に係るシステムにおける各装置間の処理の流れを具体的に説明するための図である。
【図９】この発明の第２の実施形態に係るネットワーク通信システムの構成を示す図である。
【図１０】図９のネットワーク通信システムで使用されるクライアントの構成を示す図である。
【図１１】図９のネットワークシステムで使用される管理サーバの構成を示す図である。
【図１２】接続状態情報のデータ構造の一例を示す図である。
【図１３】管理サーバにおける接続状態チェック処理を説明するためのフローチャートである。
【図１４】第２の実施形態に係るシステムにおける各装置間の処理の流れを具体的に説明するための図である。
【符号の説明】
１０、１５　　　　ネットワーク
１１、１６　　　　クライアント
１３、１７　　　　管理サーバ
１１１、１６１　　制御部
１１２、１６２　　記憶部
１１３、１６３　　表示部
１１４、１６４　　入力部
１１５、１６５　　通信制御部
１１１ａ　　　　　ブラウザ部
１１１ｂ　　　　　リクエスト制御部
１６１ａ　　　　　メッセージ送受信部
１６１ｂ　　　　　セッション管理部
１３１、１７１　　制御部
１３２、１７２　　記憶部
１３３、１７３　　通信制御部
１３１ａ　　　　　ウェブサーバ部
１３１ｂ　　　　　レスポンス制御部
１３２ａ　　　　　イベントＤＢ
１７１ａ　　　　　メッセージ交換制御部
１７１ｂ　　　　　接続状態チェック部
１７２ａ　　　　　接続状態ＤＢ
１７２ｂ　　　　　ユーザＤＢ
【図１】
2004080187.tif 000003
【図２】
2004080187.tif 000004
【図３】
2004080187.tif 000005
【図４】
2004080187.tif 000006
【図５】
2004080187.tif 000007
【図６】
2004080187.tif 000008
【図７】
2004080187.tif 000009
【図８】
2004080187.tif 000010
【図９】
2004080187.tif 000011
【図１０】
2004080187.tif 000012
【図１１】
2004080187.tif 000013
【図１２】
2004080187.tif 000014
【図１３】
2004080187.tif 000015
【図１４】
2004080187.tif 000016