(57)【要約】  画面情報を送信するアプリケーションサーバ２と、画面情報を受信するクライアント端末３との間の通信を中継する中継装置１を提供する。中継装置１は、アプリケーションサーバ２から画面情報を受信する画面情報受信部１２と、画面情報を記憶する周期画面記憶部１６と、画面情報が周期的に変化する場合に、その変化の周期を第１の周期情報として検出する周期検出部１４と、第１の周期情報を第２の周期情報へ変換する周期変換部１５と、第２の周期情報に基づくタイミングにおいて、周期画面記憶部１６から画面情報を取得し、クライアント端末３に向けて画面情報を送信する画面情報送信部１３とを備える。
2011033572.tif 000002
【特許請求の範囲】
【請求項１】
画面情報を送信するサーバと、前記画面情報を受信するクライアントとの間の通信を中継する中継装置であって、
前記サーバから前記画面情報を受信する受信部と、
前記画面情報を記憶する記憶部と、
前記画面情報が周期的に変化する場合に、その変化の周期を第１の周期情報として検出する検出部と、
前記第１の周期情報を第２の周期情報へ変換する変換部と、
前記第２の周期情報に基づくタイミングにおいて、前記記憶部から前記画面情報を取得し、前記クライアントに向けて前記画面情報を送信する送信部と
を備えることを特徴とする中継装置。
【請求項２】
前記受信部が前記サーバから周期的に変化する複数種類の画面情報を受信する場合に、
前記記憶部は、前記複数種類の画面情報を記憶し、
前記検出部は、前記複数種類の画面情報それぞれについて前記第１の周期情報を検出し、
前記変換部は、前記第１の周期情報それぞれを前記第２の周期情報へ変換し、
前記送信部は、それぞれの前記第２の周期情報に基づくタイミングにおいて、前記記憶部から対応する前記画面情報を取得し、前記クライアントに向けて送信する
ことを特徴とする請求項１に記載の中継装置。
【請求項３】
前記記憶部は、前記画面情報の送信開始の基準となる時刻をさらに記憶し、
前記送信部は、前記送信開始の基準となる時刻から前記第２の周期情報に応じた時間が経過した時に、前記画面情報を前記クライアントに向けて送信する
ことを特徴とする請求項２に記載の中継装置。
【請求項４】
前記検出部は、前記受信部が受信した画面情報と、前記記憶部に記憶されている画面情報とを比較し、両者が類似すると判定した場合に、前記記憶部の画面情報を前記受信した画面情報で上書きすること
を特徴とする請求項３に記載の中継装置
【請求項５】
（第２の実施形態）
前記変換部は、前記複数種類の画面情報それぞれの前記第２の周期情報を、互いに同期するように設定する
ことを特徴とする請求項４に記載の中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継装置に関する。
【背景技術】
【０００２】
アプリケーションサーバからクライアント端末へ画面転送を行うシステムでは、転送する画面のデータ量、アプリケーションサーバあるいはクライアント端末の処理負荷量、ネットワーク状況などの要因で、クライアント端末における画面データの到着時刻にずれが生じる。このため、周期的に同じ画面が現れる（例えば、点滅などの表示）場合、アプリケーションサーバでは規則正しく周期的に表示されている画面が、クライアント端末においては周期的に表示されないことがあった。【０００３】
これを解決するための技術として、周期的に同じ画面が現れることを検知した場合には、アプリケーションサーバはクライアント端末への画面転送を停止し、クライアント端末は記憶している画面を周期的に表示するシステムが発明されている。（例えば、非特許文献１参照。）
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】C. Aksoy and A. Helal, "Optimising Thin Clients for Wireless Active-media Applications," Proceedings of the Third IEEE Workshop on Mobile Computing Systems and Applications (WMCSA'00), held in Monterey, CA, Dec 7-8, 2000.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
非特許文献１に記載のシステムでは、アプリケーションサーバ及びクライアント端末の双方に、周期的に画面を表示するための機能を有する必要があった。このため、システムが高価なものとなる問題があった。【０００６】
本発明の目的は、アプリケーションサーバ及びクライアント端末に周期的に画面を表示するための特別な機能を持たせなくても、クライアント端末において周期的に画面を表示することができる中継装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の中継装置は、画面情報を送信するサーバと、前記画面情報を受信するクライアントとの間の通信を中継する中継装置であって、前記サーバから前記画面情報を受信する受信部と、前記画面情報を記憶する記憶部と、前記画面情報が周期的に変化する場合に、その変化の周期を第１の周期情報として検出する検出部と、前記第１の周期情報を第２の周期情報へ変換する変換部と、前記第２の周期情報に基づくタイミングにおいて、前記記憶部から前記画面情報を取得し、前記クライアントに向けて前記画面情報を送信する送信部とを備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、アプリケーションサーバ及びクライアント端末に周期的に画面を表示するための特別な機能を持たせなくても、クライアント端末において周期的に画面を表示することができる。
【図面の簡単な説明】
【０００９】
【図１（ａ）】本発明の第１の実施形態に係る画面転送システムを示す図。
【図１（ｂ）】同実施形態に係る中継装置１の構成を示すブロック図。
【図２（ａ）】同実施形態に係るアプリケーションサーバ２にて生成される画面の時間変化を示す図。
【図２（ｂ）】同実施形態に係るアプリケーションサーバ２が中継装置１に送信する画面情報を示す図。
【図３】同実施形態に係る画面転送システムにおける初期状態の画面転送シーケンス例。
【図４】同実施形態に係る周期検出部１４の周期検出機能に関する内部処理のフローチャート。
【図５（ａ）】同実施形態に係るアプリケーションサーバ２において生成される画面、中継装置１において検出される更新部分、および、受信時間を時系列に示す図。
【図５（ｂ）】同実施形態に係る周期情報テーブルの例を示す図。
【図６（ａ）】同実施形態に係る画面における更新部分の座標の例を示す図。
【図６（ｂ）】同実施形態に係る更新部分の画素情報を記憶するメモリの例を示す図。
【図７】同実施形態に係る周期検出部１４の周期算出機能に関する内部処理のフローチャート。
【図８（ａ）】同実施形態に係る受信周期時間テーブルの例を示す図。
【図８（ｂ）】同実施形態に係る受信周期時間テーブルの例を示す図。
【図９（ａ）】同実施形態に係る更新部分毎の受信時間を示す図。
【図９（ｂ）】同実施形態に係る周期情報テーブルと受信周期時間テーブルの例を示す図。
【図９（ｃ）】同実施形態に係る調整周期時間テーブルの例を示す図。
【図１０】同実施形態に係る画面情報送信部１３における処理を説明するフローチャート。
【図１１（ａ）】本発明の第２の実施形態に係る更新部分毎の受信時間と周期時間を説明する図。
【図１１（ｂ）】同実施形態に係る周期情報テーブルと受信周期時間テーブルの例を示す図。
【図１２（ａ）】同実施形態に係る調整周期時間テーブルの例を示す図。
【図１２（ｂ）】同実施形態に係る調整周期時間テーブルの例を示す図。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら本発明の実施形態について詳細に説明する。
【００１１】
（第１の実施形態）
図１（ａ）は、本発明の第１の実施形態に係る中継装置が適用される画面転送システムを示す図である。この画面転送システムは、中継装置１とアプリケーションサーバ２とクライアント端末３のそれぞれがネットワーク接続されている。なお、ここでいうネットワーク接続とはLAN接続あるいはインターネット接続等であるとする。
【００１２】
アプリケーションサーバ２では、アプリケーションが起動されている。本実施形態では、このアプリケーションサーバ２に画面送信機能を組み込み、アプリケーションサーバ２が生成した画面データを中継装置１へネットワークを介して送信する。また、本実施形態では、アプリケーションサーバ２と中継装置１間における画面データの送受信のために、プル型の画面転送プロトコルを用いる。プル型の画面転送プロトコルの一例がＲＦＢ(Remote Framebuffer)プロトコルがあり、これを用いた画面転送方式としてVNC (Virtual Network Computing)がある。
【００１３】
ＲＦＢプロトコルでは、画面受信側（ここでは中継装置１）から画面データ取得要求(Frame buffer Update Request)を画面送信側（ここではアプリケーションサーバ２）へ送信すると、画面送信側から画面受信側に画面データをFrame buffer Updateとして応答する。アプリケーションサーバ２は、ＶＮＣのＲＦＢプロトコルを用いて画面データを送信するので、アプリケーションサーバ２では「VNCサーバ」ソフトウェアを起動している。
【００１４】
中継装置１は、アプリケーションサーバ２から画面データを受信し、受信した画面データに対し復号等の処理を行った後に、クライアント端末３へ処理済みの画面データを送信する。中継装置１は、ＶＮＣのＲＦＢプロトコルを用いてアプリケーションサーバ２から画面データを受信するので、中継装置１では「VNCクライアント」ソフトウェアを起動している。
【００１５】
一方、中継装置１とクライアント端末３間の画面データの送受信を行うために、本実施形態では、プッシュ型の画面転送プロトコルを用いる。プッシュ型の画面転送プロトコルとは、画面受信側（ここではクライアント端末３）からの画面データ取得要求は必要とせずに、画面送信側（ここでは中継装置１）から一方的に画面受信側に画面情報を送信するものである。プッシュ型の画面転送プロトコルの一例としては、東芝のネットワークディスプレイ（ND）プロトコルがある。NDプロトコルでは「NDサーバ」ソフトウェアを起動しているマシンから、「NDクライアント」ソフトウェアを起動しているマシンに対し、画面データをプッシュ型で送信することができる。中継装置１は、NDプロトコルを用いて画面データを送信するので、中継装置１では「NDサーバ」ソフトウェアを起動している。
【００１６】
クライアント端末３は、中継装置１から画面データを受信する。クライアント端末３は、受信した画面データから表示するための画面を生成し、ディスプレイ部（図示せず）に表示する。クライアント端末３は、NDプロトコルを用いてアプリケーションサーバ２から画面データを受信するので、クライアント端末３では「NDクライアント」ソフトウェアを起動している。
【００１７】
以上のとおり、図１（ａ）に示した画面転送システムでは、アプリケーションサーバ２内のアプリケーションにより生成された画面が、中継装置１にて処理された後、クライアント端末３のディスプレイ部に表示される。
【００１８】
なお、本実施形態では、アプリケーションサーバ２のアプリケーションは、画面の全体、あるいは、画面の一部または複数部分が周期的に規則正しく変化する画面を生成するものとする。周期的に規則正しく変化する画面とは、画面上において、同じ表示内容が同じ場所に周期的に表れることを意味する。例えば、警告ランプのようなものが画面に表示され、その警告ランプが一定の時間間隔で点滅する場合などである。
【００１９】
図２（ａ）に、アプリケーションサーバ２にて生成される画面の時間変化を示す。図２（ａ）において、時間の経過と共に、画面の一部がA、B、Cと変化している。このA、B、Cの部分が、例えば警告ランプであり、A（緑色）→B（黄色）→C（赤色）と変化する。なお、この例では、「A→B→C→A→B→C→A→」、というように３パターンで変化しているとするが、A（緑色）→C（赤色）の２パターンでも、A（緑色）→B（黄色）→C（赤色）→Ｄ（青色）の４パターンでもよい。
【００２０】
また、図２（ｂ）に、アプリケーションサーバ２から中継装置１へ送信される画面の時間変化を示す。アプリケーションサーバ２は、図２（ａ）のようにＡ，Ｂ，Ｃの送信時に毎回、全ての画面情報を中継装置１に送信するのではなく、図２（ｂ）のように画面情報の差分のみを、中継装置１に送信してもよい。
【００２１】
図１（ｂ）は、本実施形態に係る中継装置１の構成を示すブロック図である。中継装置１は、画面取得要求送信部１１、画面情報受信部１２、画面情報送信部１３、周期検出部１４、周期変換部１５、周期画面記憶部１６、管理テーブル記憶部１７を備える。
【００２２】
画面取得要求送信部１１は、アプリケーションサーバ２に対し、画面取得要求を送信する。画面取得要求は、定期的に送信される。もしくは、画面取得要求は、画面情報受信部１２から受信完了通知が入力されると、それを契機にして送信される。
【００２３】
画面情報受信部１２は、アプリケーションサーバ２から画面情報を受信する。画面情報が圧縮されている場合には、画面情報受信部１２は画面情報を伸張する。そして、周期検出部１４に出力する。また、画面情報受信部１２は、受信完了通知を画面取得要求送信部１１へ出力する。なお、本実施形態では、画面取得要求送信部１１と画面情報受信部１２とが、VNCクライアントの機能に相当する。
【００２４】
周期検出部１４は、画面情報受信部１２から画面情報が入力されると、その画面情報をフレームバッファ（図示せず）に書き込む。周期検出部１４は、フレームバッファに書き込まれた画面情報について、以前に受信した画面情報からの更新の有無を検出する。画面情報の更新があった場合には、更新部分の位置を示す領域情報とともにその画面情報の受信時間を、管理テーブル記憶部１７に記録する。更新部分の画素情報（画面情報の一部）は、周期画面記憶部１６に記憶される。
【００２５】
さらに、周期検出部１４は、記録した領域情報と受信時間から、その更新部分における更新の周期時間を算出する。周期時間とは、同じ更新部分に対して同じ画素情報を繰り返し受信する場合に、その受信間隔の時間長であると定義する。周期検出部１４が持つこれらの機能については、後ほど詳述する。
【００２６】
周期変換部１５は、周期検出部１４が算出した周期時間を調整する機能を備えている。すなわち周期変換部１５は、周期検出部１４が算出した周期時間を、別の周期時間に変換する。また、周期的に変化する画面（以下、周期画面という）が存在することを画面情報送信部１３へ通知する。周期変換部１５が持つこれらの機能についても後ほど詳述する。
【００２７】
周期画面記憶部１６は、周期検出部１４が検出した更新部分の画素情報を記憶する。管理テーブル記憶部１７は、後述する各種管理テーブルを記憶する。
【００２８】
画面情報送信部１３は、初期状態において前述のフレームバッファに書き込まれている画面情報をクライアント端末３へ送信する。一方、画面情報送信部１３は、周期変換部１５から周期画面が存在することを通知された後には、周期変換部１５によって調整された周期時間を利用し、そのタイミングにて対応する画素情報を周期画面記憶部１６から取得する。そして、取得した画素情報を、画面情報として、クライアント端末３へ送信する。
【００２９】
なお、本実施形態では、画面情報送信部１３はNDサーバの機能に相当する。中継装置１のNDサーバが、NDプロトコルを利用して差分の画面情報をクライアント端末３へ送信すれば、「NDクライアント」ソフトウェアでは既知の画面情報に受信した差分情報を組み合わせて画面を生成し、それを描画する。
【００３０】
以下、周期検出部１４、周期変換部１５、および画面情報送信部１３の動作を、詳細に説明する。図１（ｂ）において、画面情報受信部１２から出力された画面情報がフレームバッファ（図示せず）に書き込まれ、画面情報送信部１３がフレームバッファに書き込まれている画面情報をクライアント端末３へ送信する場合を考える。
【００３１】
図３は、図１（ａ）の画面転送システムにおいて、初期状態の画面転送の信号シーケンスを示している。図３において、アプリケーションサーバ２で動作するアプリケーションは、周期画面を生成している。アプリケーションサーバ２では、画面＃１生成後、T0_1秒後に画面＃２を生成、更にT0_2秒後に画面＃３というように順に画面を生成している。ここで、T0_N（N＞１とする）がすべてT0_1に等しいならば、周期的に規則正しいといえる。例えば、警告ランプのようなものが画面に表示されており、その警告ランプが、緑色、黄色、赤色、と順に規則正しく変化する場合などである。
【００３２】
しかし、アプリケーションサーバ２にて周期画面を生成していても、中継装置１が画面情報をアプリケーションサーバ２から受信し、それをクライアント端末３へ送信する際に周期が大きく乱れてしまう場合がある。
【００３３】
例えば、図３において、アプリケーションサーバ２は、まず、中継装置１から画面取得要求１を受信すると、自身において画面＃１への画面更新を検出してからT1_1秒後に、画面情報＃１を中継装置１へ送信する。中継装置１では、画面情報＃１受信してからT2_1秒後に、次の画面取得要求２をアプリケーションサーバ２へ送信すると共に、T3_１秒後に画面情報＃１をクライアント端末３へ送信する。
【００３４】
次に、アプリケーションサーバ２は中継装置１から画面取得要求２を受信すると、自身において画面＃２への画面更新を検出してからT1_2秒後に、画面情報＃２を中継装置１へ送信する。中継装置１では、画面情報＃２受信してからT2_2秒後に次の画面取得要求２をアプリケーションサーバ２へ送信すると共に、T3_2秒後に画面情報＃２をクライアント端末３へ送信する。
【００３５】
これらの処理において、ネットワークを介して画面情報等を送受信する時間がすべて等しく、また、内部処理の時間がすべて等しい場合であれば、中継装置１からクライアント端末３へ送信する画面情報＃１と画面情報＃２の時間間隔T4_1は、アプリケーションサーバ２での画面＃１と画面＃２の時間間隔T0_1と等しくなることが期待できる。その結果、中継装置１からクライアント端末３に対して、周期的に規則正しく画面情報を送信できる。画面情報等を送受信する時間がすべて等しい場合とは、画面取得要求１の伝送時間＝画面情報取得要求２の伝送時間、画面情報＃１の伝送時間＝画面情報＃２の伝送時間を意味する。内部処理の時間がすべて等しい場合とは、例えば、T1_1=T1_2、T2_1=T2_2、T3_1=T3_2を意味する。
【００３６】
しかし、図３に示すように、画面情報＃３の伝送時間の遅延、画面取得要求５の伝送時間の遅延や、それに伴う画面情報＃５の抜けが発生することがある。この場合、内部処理時間が全て等しいとしても、中継装置１からクライアント端末３へ送信する画面情報の時間間隔T4_2、T4_3、T4_4等は、アプリケーションサーバ２での画面更新の時間間隔T0_1と異なるものになる。
【００３７】
また、画面情報＃５の抜けが発生すると、前述の例で、緑色（画面情報＃１、＃４）、黄色（画面情報＃２、＃５）、赤色（画面情報＃３、＃６）と順に変化する場合に、黄色（画面情報＃５）の画面が中継装置１からクライアント端末３へ送信されないことになる。
【００３８】
本実施形態の中継装置１は、このような問題を解決するため、周期検出部１４、周期変換部１５、および画面情報送信部１３が、周期的に規則正しく画面情報をクライアント端末３に送信するための処理を行う。以下に、周期検出部１４、周期変換部１５、および画面情報送信部１３を詳細に説明する。
【００３９】
［周期検出部１４]
まず、周期検出部１４を説明する。周期検出部１４は、周期検出機能と周期算出機能を有している。周期検出機能とは、周期検出部１４が受信した画面情報から周期画面を検出し、周期情報テーブルを作成する処理である。一方、周期算出機能とは、周期検出機能において作成した周期情報テーブルを元に、同一画面の受信周期（以下、受信周期時間という）を計算し、受信周期時間テーブルを作成する処理である。
【００４０】
＜周期検出機能＞
まず、周期検出機能について説明する。図４は、周期検出部１４の周期検出機能に関する内部処理のフローチャートである。周期検出部１４は、周期情報受信部１２から画面情報を受信する（ステップＳ１０１）、その画面情報について、以前に受信した画面情報からの更新の有無を確認する（ステップＳ１０２）。
【００４１】
図２（ａ）に示すように、アプリケーションサーバ２が画面情報の差分ではなく、画面全体の画面情報を送信する場合には、周期検出部１４は前回受信した画面情報と今回受信した画面情報のピクセル値を比較することで更新の有無を判断する。また、ピクセル値を比較する過程で、周期検出部１４は更新部分の位置を特定する。一方、画面情報として、アプリケーションサーバ２が図２（ｂ）に示すように、画面情報の差分のみを送信する場合には、周期検出部１４はその差分により更新の有無を判断する。
【００４２】
次に、画面情報の更新がある場合には（ステップＳ１０２のＹｅｓ）、周期検出部１４は、更新部分の位置を示す領域情報を基に、更新部分の領域が新規領域であるか否かを判定する。新規領域である場合には（ステップＳ１０３のＹｅｓ）、ＩＤ番号を発行する（ステップＳ１０４）。そして、ＩＤ番号と共に更新部分の領域情報、受信時間、更新部分の画素情報を後述する周期情報テーブルとして、管理テーブル記憶部１７に記憶する（ステップＳ１０５）。
【００４３】
一方、新規領域でない場合には（ステップＳ１０３のＮｏ）、更新部分の画素情報と、周期画面記憶部１６に記憶されている同じ領域の画素情報とのピクセル値を比較する(ステップＳ１０６)。その結果、あらかじめ定めた閾値Ｓ％以上のピクセルが一致すれば、両者は同じ画面と判定する。反対に、Ｓ％以下であれば、今回受信した画面情報は新規画面であると判定する。一例として、閾値Ｓを９５％という値に設定する。
【００４４】
同じ画面と判定した場合は（ステップＳ１０７のＹｅｓ）、今回受信した画面情報は前回すでに周期情報テーブルに登録されている。そこで、対応するＩＤ番号の諸情報に今回の受信時間を追記して記憶する（ステップＳ１０８）。また、画素情報を、今回受信した画素情報で上書きする（ステップＳ１０９）。その後、ステップＳ１０１へ戻り、次の画像情報を処理する。
【００４５】
一方、異なる画面と判定した場合は（ステップＳ１０７のＮｏ）、新規のＩＤ番号を発行する（ステップＳ１０４）。そして、ＩＤ番号と共に更新部分の領域情報、受信時間、および画素情報を、管理テーブル記憶部１７の周期情報テーブルに記憶する（ステップＳ１０５）。その後、ステップＳ１０１へ戻り、次の画像情報を処理する。
【００４６】
次に、図５（ａ）、図５（ｂ）、図６（ａ）、および図６（ｂ）を用いて、周期検出部１４による周期情報テーブルの作成および更新の動作を説明する。図５（ａ）は、アプリケーションサーバ２において生成される画面情報と、中継装置１において検出される更新部分の変化を時系列に示している。また、図５（ｂ）は、図５（ａ）の場合に、周期検出部１４が作成する周期情報テーブルの例である。
【００４７】
図５（ａ）に示すように、中継装置１が時刻t1に、２つの更新部分「Ａ」「ａ」を受信した場合、それが初回の受信であれば、中継装置１の周期検出部１４は、ステップＳ１０４の処理で新規のＩＤ番号（「１」と「２」）をそれぞれに発行する。
【００４８】
また、図５（ｂ）の周期情報テーブルに示すように、更新部分の領域情報は、例えば、座標で表される。周期検出部１４は、更新部分「Ａ」と「ａ」の位置を、例えば図６（ａ）に示す座標でそれぞれ取得する。ここでは、更新部分「Ａ」や「ａ」の右上と左下の座標を利用して(x11,y11)〜(x12,y12)、(x21,y21)〜(x22,y22)とそれぞれ表している。
【００４９】
また、図６（ｂ）は、更新部分の画素情報を記憶する周期画面記憶部１６のイメージを示す。更新部分「Ａ」と「ａ」の画素情報は、周期情報テーブルとは別に、図６（ｂ）のように周期画面記憶部１６に格納される。
【００５０】
そして、図５（ｂ）に示すように、周期情報テーブルの新規ＩＤ番号が「１」の行には、更新部分「Ａ」の領域情報（(x11,y11)〜(x12,y12)）、画素情報（周期画面記憶部１６に記憶された画素情報Ａへのポインタ）、受信時間（ｔ１）が記録される。ここでは、周期情報テーブルに記憶させる画素情報は、画素情報そのものではなく、その画素情報を記憶させているメモリのアドレスである。同様に、周期情報テーブルの新規のＩＤ番号が「２」の行には、更新部分「ａ」の領域情報（(x21,y21)〜(x22,y22)）、画素情報（周期画面記憶部１６に記憶された画素情報ａへのポインタ）、受信時間（ｔ１）が記録される。
【００５１】
次に、図５（ａ）に示すように、中継装置１は時刻t２に、更新部分「Ｂ」を受信する。更新部分「Ｂ」の領域は、更新部分「Ａ」と同じであるが、画素情報のピクセル値が異なる。そのため、中継装置１の周期検出部１４は、更新部分「Ｂ」は新規の更新部分であると判定し、新規のＩＤ番号（「３」）を発行する。そして、図５（ｂ）に示すように、周期情報テーブルの新規のＩＤ番号が「３」の行には、更新部分「Ｂ」の領域情報（(x11,y11)〜(x12,y12)）、画素情報（周期画面記憶部１６に記憶された画素情報Ｂへのポインタ）、受信時間（ｔ２）が記憶される。以降、図５（ａ）における更新部分「ｂ」「Ｃ」については同様の処理を実行する。
【００５２】
次に、図５（ａ）に示すように、中継装置１が時刻t４に、更新部分「Ａ」を２回目に受信する。この場合、更新部分「Ａ」は過去に受信しているので、すでに周期情報テーブルに記憶されている。そこで、中継装置１の周期検出部１４は、図５（ｂ）に示すように、ＩＤ番号が「１」の行に受信時間（ｔ４）を追加して受信時間（t1,ｔ4）する。そして、図６（ｂ）に示す周期画面記憶部１６の画素情報Ａに更新部分「Ａ」を上書きする。
【００５３】
以上のようにして、中継装置１の周期検出部１４は、図５（ｂ）に示すような周期情報テーブルを作成する。
【００５４】
＜周期算出機能＞
次に、周期検出部１４の周期算出機能を説明する。図７は、周期検出部１４の周期算出機能についての内部処理のフローを示す。周期検出部１４は、周期情報テーブルに複数の情報が登録されている場合、ＩＤ番号で管理されている情報毎に以下の処理を行う。
【００５５】
まず、ＩＤ＝Ｘの情報として記憶されている受信時間の数を確認する（ステップＳ２０１）。記憶されている受信時間の数がＮ個以上の場合（ステップＳ２０２のＹｅｓ）、それらの受信時間から周期時間を算出する。Ｎは、あらかじめ定めた閾値である。そして、その周期時間を受信周期時間テーブルに記憶して（ステップＳ２０３）、終了する。一方、受信時間の数がＮ個以下の場合（ステップＳ２０２のＮｏ）、ステップＳ２０１へ戻り受信時間の数がＮ個以上になるまで確認処理（ステップＳ２０１）を繰り返す。
【００５６】
なお、受信時間の数の確認処理を繰り返す場合、例えば１秒ごとというように一定の時間で繰り返し行い、例えば、１０秒以上処理を繰り返しても受信時間の数に変化がない場合には、周期画面ではないと判定する。そして、周期情報テーブルからＩＤ＝Ｘのエントリー情報を削除する。また、周期画面記憶部１６からもＩＤ＝Ｘに対応する画素情報を削除する。
【００５７】
図８（ａ）は、受信周期時間テーブルの例である。周期検出部１４は、管理テーブル記憶部１７に受信周期時間テーブルを作成し、ＩＤ番号と算出した周期時間（T_ID1、T_ID2等）を記憶する。
【００５８】
また、図８（ｂ）は、受信周期時間テーブルの別の例である。図８（ｂ）の場合、図７に示すステップＳ２０１のＮの値を４とし、４つの受信時間を利用して、受信時間間隔の平均値を算出している。例えば、図５（ｂ）の周期情報テーブルを見ると、ＩＤ＝１の更新部分については、４つの受信時間がt1、t4、t7、t11である。従って、受信時間間隔はそれぞれ(t4-t1)、(t7-t4)、(t11-t7)となる。この３つの時間間隔の平均値を計算すると、ＩＤ＝１の更新部分の周期時間はT_ID = ((t4-t1)+(t7-t4)+(t11-t7))/3と算出される。なお、周期時間の算出方法は平均値の計算に限られず、例えば、(t4-t1)、(t7-t4)、(t11-t7)という３つの値からいずれか一つを選ぶという方法でもよい。また、例えば、Ｎの値を６とし、５つの時間間隔のうちから最大値と最小値を除いた３つの時間間隔の平均としてもよい。
【００５９】
以上の周期時間の算出処理を、図５（ｂ）の場合はID=１、ID=2、…、ID=5の５つについて行う。
【００６０】
なお、図９（ａ）は、画面の一部がA、Bというように繰り返し変化する画面の様子と、それを中継装置１が受信する時刻を示している。図９（ｂ）は、図９（ａ）に対応した周期情報テーブルと受信周期時間テーブルとを、一つのテーブルにまとめたものである。
【００６１】
図９（ｂ）においては、受信時間情報をｍ＋１個利用して、周期情報は平均値を計算することで算出している。平均値を計算するにあたり、例えば、常に受信時間情報には最近受信した４つの受信時間情報のみが記憶されるようにし、周期情報は最新の４つの受信時間情報を利用して算出するなどして、動的に算出値が変化するようにしてもよい。
【００６２】
［周期変換部１５]
次に、周期変換部１５について説明する。周期変換部１５は、受信周期時間テーブルに登録されている受信周期時間を調整した後に、調整周期時間テーブルにＩＤ番号と調整後の周期時間（以後、調整周期時間という）を記録する。
【００６３】
図９（ｃ）に、調整周期時間テーブルの例を示す。調整周期時間テーブルは、ＩＤ番号毎に調整周期時間（AT_ID1、AT_ID2、‥等）を記憶するために用いられる。
【００６４】
ところで、周期検出部１４によって算出される受信周期時間は、必ずしもアプリケーションサーバ２における画面の周期時間とは一致はしていない。以降に説明する周期変換部１５は、アプリケーションサーバ２における周期時間を再現するのではなく、中継装置１、あるいはクライアント端末３の処理負荷の観点から適切な周期時間へ調整することを特徴とする。例えば、中継装置１やクライアント端末３で管理するタイマー数を減らすことや、また、画面情報量が大きい場合に画像処理が追いつかずに周期が乱れることを防ぐことを考慮して、周期時間を調整する。周期変換部１５は、以下のいずれかの方法、あるいは、これらの組み合わせにより、周期時間を調整する。
【００６５】
・調整例１：例えば、受信周期時間が1.13秒、2.41秒、3.56秒のように小数点２以下の数値を含む場合は、小数点２以下を四捨五入する。その結果、それぞれの調整周期時間は1.1秒、2.4秒、3.6秒となる。
【００６６】
・調整例２：例えば、調整周期時間を0,2の倍数に一番近い値に変換する。受信周期時間が1.13秒、2.41秒、3.56秒の場合には、それぞれの調整周期時間は1.2秒、2.4秒、3.6秒となる。
【００６７】
・調整例３：例えば、受信周期時間が0.1秒以下のもの（0.01秒、0.09秒等）は調整周期時間を0.1秒とする。
【００６８】
・調整例４：更新部分のサイズがある閾値以上のサイズであれば、調整周期時間がＺ秒以上になるようにする。例えば、Ｚ=２.0秒とすると、更新部分のサイズが640x480ピクセル以上のものについての受信周期時間が1.1秒、1.8秒、3.4秒の場合、それぞれの調整周期時間を2.0秒、2.0秒、3.4秒とする。
【００６９】
・調整例５：調整周期時間を、中継装置１とクライアント端末３間のネットワーク帯域や品質を考慮して決定する。例えば、中継装置１とクライアント端末３間で10Mbps以上の通信が不可能であれば、調整周期時間を1.0秒以上とする。なお、周期時間の調整は上述した調整例に限らず他の調整例についても適用できる。
【００７０】
周期変換部１５は、調整周期時間をＩＤ毎に調整周期時間テーブルに記憶する。以上の処理を図５（ｂ）、図８（ｂ）の場合はID=1、ID=2、…、ID=5の５つについて行う。
【００７１】
周期変換部１５は、調整周期時間を調整周期時間テーブルに一つ記憶した時点で、周期画面が存在すること示す周期画面存在通知を周期画面送信部１３へ通知する。また、周期変換部１５は、調整周期時間が調整周期時間テーブルから削除された結果、調整周期時間テーブルに登録されている調整周期時間の数が０個となった場合には、終了通知を周期画面送信部１３へ通知する。
【００７２】
以上に説明した通り、周期検出部１４と周期変換部１５によって、周期画面記憶部１６に周期的に変化する画素情報が記憶され、また、管理テーブル記憶部１７の周期情報テーブル、受信周期時間テーブル、調整周期時間テーブルに周期時間に関する情報が記憶される。
【００７３】
なお、周期検出部１４はさらに、画面情報が周期的に更新されているか否かを定期的に確認する機能を備えてもよい。例えば、ID=Xについて受信周期時間算出後、その受信周期時間間隔で２回連続して画面情報の更新を検出しなかった場合には、周期検出部１４は周期情報テーブルと受信周期時間テーブルからID=Xのエントリー情報を削除する。それと共に、周期検出部１４は、周期画面記憶部１６からもID=Xに対応する画素情報を削除する。また、周期検出部１４は、周期算出部１５に対してもID=Xの情報削除を通知するなどして、調整周期時間テーブルからもID=Xのエントリー情報を削除する。
【００７４】
［画面情報送信部１３]
画面情報送信部１３が、周期画面記憶部１６に記憶された周期画面の画素情報を、周期的にクライアント端末３に送信する処理について説明する。図１０は、画面情報送信部１３が、周期画面記憶部１６に記憶された画素情報を周期的にクライアント端末３に送信する処理のフローを示している。
【００７５】
画面情報送信部１３は、周期変換部１５から周期画面の存在が通知されると、更新部分毎（ＩＤ番号毎）に、以下の処理を行う。
【００７６】
まず、画面情報送信部１３は、周期情報テーブル、受信周期時間テーブル、調整周期時間テーブルを参照し、ID=Xのエントリー情報がそれぞれのテーブルに存在することを確認する（ステップＳ３０１）。
【００７７】
調整周期時間テーブルにID=Xの情報が存在する（すなわち、周期時間が調整済みである）場合、（ステップＳ３０２のＹｅｓ）、画面情報送信部１３は、さらに周期情報テーブルを参照する。そして、画面情報送信部１３は、周期情報テーブルに記憶されたID=Xの更新部分の受信時間のうち、最後にその更新部分を受信した時間（以下、最終時間という）を確認する（ステップＳ３０３）。
【００７８】
画面情報送信部１３は、確認した最終時間から、調整周期時間（AT_IDx）の経過後に、ID=Xに対応する画素情報を周期画面記憶部１６から取得する。そして、その画素情報を、画面情報としてクライアント端末３へ送信する（ステップＳ３０４）。
【００７９】
その後は、調整周期時間（AT_IDx）の経過毎に（ステップＳ３０５）、ID=Xに対応する画素情報を周期画面記憶部１６から取得し、クライアント端末３へ送信する（ステップＳ３０６）処理を繰り返す。
【００８０】
なお、画面情報送信部１３は、周期変換部１５から終了通知が通知されれば、クライアント端末３への周期的な画面情報の送信を終了する（ステップＳ３０７、またはステップＳ３０８）。ここで終了検出の判定は、先に記したように周期情報テーブル、受信周期時間テーブル、調整周期時間テーブルにてID=Xのエントリー情報が削除されたことで終了と判定してもよい。
【００８１】
以上の処理を、例えば、図５（ｂ）、図８（ｂ）、図９（ｃ）の各テーブルの場合は、ID=1、ID=2、…、ID=5の５つについて行う。
【００８２】
以上の処理により、中継装置１からクライアント端末３へと、調整周期時間に従って画面情報が送信される。  
このように、本実施形態によれば、中継装置１は、アプリケーションサーバ２から周期画面を受信する受信時間を基に、画面を更新する周期時間を調整し、調整した周期時間に従って規則正しく画面情報をクライアント端末３へ送信することができる。
【００８３】
例えば、アプリケーションサーバ２にて、事故などの状況を表示する監視アプリケーションが動作しており、その画面において事故発生箇所が１秒周期で点滅している場合を考える。従来の手法では、クライアント端末３において、点滅の周期の乱れや、点滅の抜けが発生することがあった。これに対して、本実施形態では、クライアント端末３において点滅の乱れや抜けが発生することなく、規則正しい周期で点滅する画面を表示することができる。
【００８４】
なお、本実施形態で具体的な数値を示しているものについては、一例として示したものであり、この数値に限るものではない。
【００８５】
また、本実施形態では、アプリケーションサーバ２と中継装置１間でプル型の画面転送プロトコルを用いた例を示したが、プッシュ型の画面転送プロトコルを用いて実現することも可能である。
【００８６】
さらに、本実施形態では、中継装置１とクライアント端末３間でプッシュ型の画面転送プロトコルを用いた例を示したが、例えば、クライアント端末３から繰り返し画面取得要求が送信されているのであれば、プル型の画面転送プロトコルを用いて実現することも可能である。
【００８７】
（第２の実施形態）
第２の実施形態として、画面の一部分が例えば「Ａ」、「Ｂ」、「Ｃ」というように複数の表示パターンで変化する場合を説明する。具体的には、第１の実施形態に記載の中継装置１は、「Ａ」に対する調整周期時間、「Ｂ」に対する調整周期時間、「Ｃ」に対する調整周期時間を各々独立に管理していたが、第２の実施形態では、これらを互いに関連づけて管理する。
【００８８】
本実施形態における中継装置１は、第１の実施形態とほぼ同様のものである。ただし、周期変換部１５によって調整周期時間テーブルを作成する動作が、第１の実施形態とは異なる。従って、主に周期変換部１５の動作を、以下に述べる。
【００８９】
図１１（ａ）に、画面の一部が「Ａ」、「Ｂ」、「Ｃ」という３つの表示パターンで同じ周期により変化する様子と、中継装置１における画面情報の受信時間を示す。図１１（ａ）に示すように、中継装置１は、時刻t_A1、t_A2、t_A3に更新部分「Ａ」を、時刻t_B1、t_B2、t_B3に更新部分「Ｂ」を、時刻t_C1、t_C2、t_C3に更新部分「Ｃ」を受信する。
【００９０】
図１１（ｂ）に、図１１（ａ）に示すケースにおける周期情報テーブルおよび受信周期時間テーブルの例を示す。まず、第１の実施形態（図７）と同様の処理により、周期検出部１４は、図１１（ｂ）に示すような周期情報テーブルおよび受信周期時間テーブルを作成する。なお、図１１（ｂ）では、周期情報テーブルと受信周期時間テーブルを1つにまとめたテーブル示している。また、本実施形態では、第１の実施形態（図７）で説明した周期検出部１４の周期算出の処理において、ステップＳ２０１のNの値を３とする。Ｎの値が３なので、図１１（ｂ）にはＩＤ＝１〜３の３つのデータが記憶される。
【００９１】
次に、周期変換部１５が、図１１（ｂ）の周期情報テーブルおよび受信周期時間テーブルを参照し、調整周期時間テーブルを作成する。調整周期時間テーブルの作成手順を以下に記す。
【００９２】
［手順１]
周期変換部１５は、周期情報テーブルおよび受信周期時間テーブルに登録されたデータのうち、領域情報が同じデータを同一グループとし、ＩＤ番号で区別される各データをメンバーとする。本実施形態の調整周期時間テーブルには、同一グループのメンバーであることがわかる識別子を新たに付与する。図１１（ｂ）の場合は、ID=1,2,3が同一グループ（第１グループ）である。そこで、図１２（ａ）に示す調整周期時間テーブルでは、ID=1,2,3の他に、新たな識別子NewID=100,101,102を付与する。このNewIDにより、これらのデータが同一グループであることを示す。仮に、他のグループ（第２グループ）が存在するときには、第２グループの各データにNewID=200,201,202を付与することで、百の位の数字により第１グループと区別する。
【００９３】
［手順２]
周期変換部１５は、識別子(NewID)毎に、周期情報テーブルおよび受信周期時間テーブルにおける各データのＩＤ番号と、算出対象期間内における受信開始時間を、調整周期時間テーブルに記入する。受信開始時間とは、そのデータを中継装置１が初めて受信した時刻である。すなわち、周期情報テーブルにデータ毎に記載されている受信時刻のうち、最も早い時刻である。例えば、図１２（ａ）に示すように、NewID=100の行には、ＩＤ番号として１を、受信開始時間としてt_A1を記入する。
【００９４】
［手順３]
周期変換部１５は、同一グループ内で、受信開始時間が一番早いメンバーを選出する。図１２（ａ）の場合は、NewID=100が選出される。
【００９５】
［手順４]
周期変換部１５は、同一グループに属する各メンバーの調整周期時間として、手順３で選出したメンバーの受信周期時間を用いる。そして、周期変換部１５は、選出されたメンバーの受信周期時間を全メンバーの調整周期時間として、調整周期時間テーブルに記入する。例えば図１２（ａ）の場合は、NewID=100のメンバーの受信周期時間T_Aが、NewID=100,101,102の調整周期時間として用いられる。
【００９６】
［手順５]
周期変換部１５は、調整周期時間テーブルに、同一グループに属する各メンバーのオフセット時間を記入する。オフセット時間は、手順３で選出したメンバーの受信開始時間と、他のメンバーの受信開始時間の差である。例えば、図１２（ａ）に示すように、NewID=100のオフセット時間としてt_A1-t_A1( = 0)を記入し、NewID=101のオフセット時間としてt_B1-t_A1を記入する。
【００９７】
以上の手順により、図１１（ｂ）の周期情報テーブルおよび受信周期時間テーブルから、図１２（ａ）のような調整周期時間テーブルが作成される。
【００９８】
次に、画面情報送信部１３が、周期画面記憶部１６に記憶された周期画面の画素情報を周期的にクライアント端末３に送信する処理について説明する。
【００９９】
あるグループにおいて、オフセット時間が０のメンバー（図１２（ａ）の場合はNewID=100）については、図１０で示した処理のフローに従ってクライアント端末３に画面情報を送信する。なお、図１０で「ＩＤ番号」と記載しているところを「NewID」に置き換えるものとする。
【０１００】
一方、あるグループにおいて、オフセット時間が０でないメンバー（図１２（ａ）の場合はNewID=101と102）については、図１０の処理ステップＳ３０３の代わりに、「同一グループにてオフセット時間が０に対応する最終受信時間を確認し、そこにオフセット時間を加えた時刻を基準時間とする（ステップＳ３０３’）」とする。また、図１０の処理ステップＳ３０４の代わりに、「基準時間から調整された周期時間（AT_IDX）経過後にＩＤ番号＝Ｘの画素情報をクライアント端末３に送信（ステップＳ３０４’）」とする。その他は図１０で示した処理フローに従って、クライアント端末３に画面情報を送信する。
【０１０１】
本実施形態における調整周期時間テーブルの一例として、図１２（ｂ）に、図５（ｂ）の周期情報テーブルおよび図８（ｂ）の受信周期時間テーブルから作成した調整周期時間テーブルを示す。図１２（ｂ）は、画面の２箇所が、それぞれ３種類、あるいは、２種類の表示パターンで変化する場合について、前述の手順により作成した調整周期時間テーブルである。
【０１０２】
ここで、NewID=100,101,102のグループの調整周期時間と、NewID=200,201のグループの調整周期時間に対して、第１の実施形態で示した調整例２のような処理（0.2秒の倍数値に一番近い値に変換）を施してもよい。さらに、この場合は、オフセット時間についても同様の処理（0.2秒の倍数値に一番近い値に変換）を施してもよい。また、NewID=100の画面情報とNewID=200の画面情報とを送信するタイミング（それぞれ図１０で示した処理のフローのステップＳ３０４）が一致するように調整周期時間やオフセットを設定してもよい。このようにグループ間での調整周期時間や、グループ内でのオフセット時間を調整し、さらに送信タイミングをあわせることで、画面の複数の部分にて変化する表示パターンを同期させることも可能となる。
【０１０３】
第１の実施形態では、画面の同一部分が例えば「Ａ」、「Ｂ」、「Ｃ」と変化する場合に、「Ａ」に対する調整周期時間、「Ｂ」に対する調整周期時間、「Ｃ」に対する調整周期時間を別々に扱っていた。そのため、「Ａ」と「Ｂ」の時間間隔、「Ｂ」と「Ｃ」の時間間隔、「Ｃ」と「Ａ」の時間間隔がずれていく可能性があった。一方、第２の実施形態では同一部分が「Ａ」、「Ｂ」、「Ｃ」と変化する場合には、「Ａ」、「Ｂ」、「Ｃ」をグループ化し、「Ａ」、「Ｂ」、「Ｃ」の調整周期時間を統一し、さらにオフセット時間を使用する。これにより、「Ａ」と「Ｂ」、「Ｂ」と「Ｃ」、「Ｃ」と「Ａ」のそれぞれの時間間隔がずれることを防ぐことかできる。すなわち、本実施形態によれば、画面の同一箇所にて複数の表示パターンで変化する画面情報を、調整した周期にて規則正しくクライアント端末３へ送信することができる。
【０１０４】
尚、本発明は上記実施形態をそのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【０１０５】
１・・・中継装置
２・・・アプリケーションサーバ
３・・・クライアント端末
１１・・・画面取得要求送信部
１２・・・画面情報受信部
１３・・・画面情報送信部
１４・・・周期検出部
１５・・・周期変換部
１６・・・周期画面記憶部
１７・・・管理テーブル記憶部
【図１（ａ）】
2011033572.tif 000003
【図１（ｂ）】
2011033572.tif 000004
【図２（ａ）】
2011033572.tif 000005
【図２（ｂ）】
2011033572.tif 000006
【図３】
2011033572.tif 000007
【図４】
2011033572.tif 000008
【図５（ａ）】
2011033572.tif 000009
【図５（ｂ）】
2011033572.tif 000010
【図６（ａ）】
2011033572.tif 000011
【図６（ｂ）】
2011033572.tif 000012
【図７】
2011033572.tif 000013
【図８（ａ）】
2011033572.tif 000014
【図８（ｂ）】
2011033572.tif 000015
【図９（ａ）】
2011033572.tif 000016
【図９（ｂ）】
2011033572.tif 000017
【図９（ｃ）】
2011033572.tif 000018
【図１０】
2011033572.tif 000019
【図１１（ａ）】
2011033572.tif 000020
【図１１（ｂ）】
2011033572.tif 000021
【図１２（ａ）】
2011033572.tif 000022
【図１２（ｂ）】
2011033572.tif 000023
【国際調査報告】
2011033572.tif 000024
2011033572.tif 000025