(57)【要約】【課題】複数のアプリケーション（以下、アプリという）を同時に提供するサーバ装置において、各アプリが提供している各サービスレベルを制御可能とする。【解決手段】サーバ装置１０は、複数のアプリを同時実行するアプリケーション実行部２と、同時実行中に所定のアプリを指定する通信データを受信し指定のアプリに中継し、かつ、各アプリから所定の機器を指定する通信データを受信し指定の機器に中継する中継部１と、各アプリの稼動状況を測定して測定値を生成する稼動状況測定部３と、サービスレベル定義値を格納するサービスレベル定義情報格納部４と、測定値とサービスレベル定義値とからアプリ毎に満足度を計算し、満足度に基づき中継制御の対象となるアプリと中継制御方式とを決定し、決定結果を制御指示信号として生成して中継部１に出力する制御指示部５とを備え、中継部１は制御指示信号に従って、該当するアプリの通信データの中継を制御する。【選択図】図３
2008167338.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが所定のサービスを提供する複数のアプリケーションプログラムを同時に実行するアプリケーション実行部と、
前記アプリケーション実行部が前記複数のアプリケーションプログラムを同時に実行している場合にいずれかの前記アプリケーションプログラムを指定するアプリ指定通信データを受信し、受信した前記アプリ指定通信データを指定に係る前記アプリケーションプログラムに中継するとともに、前記アプリケーション実行部が前記複数のアプリケーションプログラムを同時に実行している場合に前記複数のアプリケーションプログラムのそれぞれから所定の外部装置を指定する装置指定通信データを受信し、受信した前記装置指定通信データを指定に係る前記外部装置に中継する中継部と、
前記アプリケーション実行部が同時に実行している前記複数のアプリケーションプログラムのそれぞれについて所定の稼動状況を測定し、測定した前記所定の稼動状況ごとに測定値を生成する稼動状況測定部と、
前記複数のアプリケーションプログラムのそれぞれについて前記アプリケーションプログラムが提供する前記サービスのうちの所定の項目に関するサービスレベルを数値として定義したサービスレベル定義値を含むサービスレベル定義情報を格納するサービスレベル定義情報格納部と、
前記稼動状況測定部が前記複数のアプリケーションプログラムのそれぞれについて生成した前記測定値と前記サービスレベル定義情報格納部が格納する前記サービスレベル定義情報に含まれる前記サービスレベル定義値とから、所定の計算式に基づいて前記アプリケーションプログラムごとに前記アプリケーションプログラムが提供している前記サービスのレベルの指標である満足度を計算し、前記アプリケーションプログラムごとに計算した前記満足度に基づいて前記複数のアプリケーションプログラムの中から中継制御の対象となるべき前記アプリケーションプログラムを制御対象アプリケーションプログラムとして決定し、かつ、決定した前記制御対象アプリケーションプログラムから送信された前記外部装置に中継するべき前記装置指定通信データと、前記制御対象アプリケーションプログラムに中継するべき前記アプリ指定通信データとの少なくともいずれかの通信データに対する中継の制御方式を決定し、決定した前記中継の制御方式を指示する制御指示信号を前記中継部に出力する制御指示部と
を備え、
前記中継部は、
前記制御指示部が出力した前記制御指示信号を入力すると、入力した前記制御指示信号に従って、前記制御対象アプリケーションプログラムに関する前記アプリ指定通信データと前記装置指定通信データとのうち該当する通信データの中継の制御を実行することを特徴とするサーバ装置。
【請求項２】
前記制御指示部は、前記中継の制御方式として、
前記制御対象アプリケーションプログラムから送信された前記外部装置に中継するべき前記装置指定通信データと、前記制御対象アプリケーションプログラムに中継するべき前記アプリ指定通信データとの少なくともいずれかの通信データを、即時に中継せずに予め設定された所定の期間が経過した後に中継すべきことを指示する前記制御指示信号を前記中継部に出力し、
前記中継部は、
前記制御指示部が出力した前記制御指示信号を入力すると、入力した前記制御指示信号に従って、前記制御対象アプリケーションプログラムに関する前記アプリ指定通信データと前記装置指定通信データとのうち該当する通信データの中継を遅延させる制御を実行することを特徴とするサーバ装置。
【請求項３】
前記制御指示部は、前記中継の制御方式として、
前記制御対象アプリケーションプログラムから送信された前記外部装置に中継するべき前記装置指定通信データと、前記制御対象アプリケーションプログラムに中継するべき前記アプリ指定通信データとの少なくともいずれかの通信データを廃棄すべきことを指示する前記制御指示信号を前記中継部に出力し、
前記中継部は、
前記制御指示部が出力した前記制御指示信号を入力すると、入力した前記制御指示信号に従って、前記制御対象アプリケーションプログラムに関する前記アプリ指定通信データと前記装置指定通信データとのうち該当する通信データを破棄する制御を実行することを特徴とするサーバ装置。
【請求項４】
それぞれが所定のサービスを提供する複数のアプリケーションプログラムを同時に実行するアプリケーション実行部と、
中継部と、
稼動状況測定部と、
前記複数のアプリケーションプログラムのそれぞれについて前記アプリケーションプログラムが提供する前記サービスのうちの所定の項目に関するサービスレベルを数値として定義したサービスレベル定義値を含むサービスレベル定義情報を格納するサービスレベル定義情報格納部と、
制御指示部と
を備えたサーバ装置が実行する中継データ制御方法において、
前記中継部は、
前記アプリケーション実行部が前記複数のアプリケーションプログラムを同時に実行している場合にいずれかの前記アプリケーションプログラムを指定するアプリ指定通信データを受信し、受信した前記アプリ指定通信データを指定に係る前記アプリケーションプログラムに中継するとともに、前記アプリケーション実行部が前記複数のアプリケーションプログラムを同時に実行している場合に前記複数のアプリケーションプログラムのそれぞれから所定の外部装置を指定する装置指定通信データを受信し、受信した前記装置指定通信データを指定に係る前記外部装置に中継し、
前記稼動状況測定部は、
前記アプリケーション実行部が同時に実行している前記複数のアプリケーションプログラムのそれぞれについて所定の稼動状況を測定し、測定した前記所定の稼動状況ごとに測定値を生成し、
前記制御指示部は、
前記稼動状況測定部が前記複数のアプリケーションプログラムのそれぞれについて生成した前記測定値と前記サービスレベル定義情報格納部が格納する前記サービスレベル定義情報に含まれる前記サービスレベル定義値とから、所定の計算式に基づいて前記アプリケーションプログラムごとに前記アプリケーションプログラムが提供している前記サービスのレベルの指標である満足度を計算し、前記アプリケーションプログラムごとに計算した前記満足度に基づいて前記複数のアプリケーションプログラムの中から中継制御の対象となるべき前記アプリケーションプログラムを制御対象アプリケーションプログラムとして決定し、かつ、決定した前記制御対象アプリケーションプログラムから送信された前記外部装置に中継するべき前記装置指定通信データと、前記制御対象アプリケーションプログラムに中継するべき前記アプリ指定通信データとの少なくともいずれかの通信データに対する中継の制御方式を決定し、決定した前記中継の制御方式を指示する制御指示信号を前記中継部に出力し、
前記中継部は、
前記制御指示部が出力した前記制御指示信号を入力すると、入力した前記制御指示信号に従って、前記制御対象アプリケーションプログラムに関する前記アプリ指定通信データと前記装置指定通信データとのうち該当する通信データの中継の制御を実行することを特徴とする中継データ制御方法。
【請求項５】
それぞれが所定のサービスを提供する複数のアプリケーションプログラムを同時に実行するとともに、前記複数のアプリケーションプログラムのそれぞれについて前記アプリケーションプログラムが提供する前記サービスのうちの所定の項目に関するサービスレベルを数値として定義したサービスレベル定義値を含むサービスレベル定義情報を格納するサービスレベル定義情報格納部を備えたコンピュータであるサーバ装置に以下の処理を実行させることを特徴とする中継データ制御プログラム
（１）前記複数のアプリケーションプログラムを同時に実行している場合にいずれかの前記アプリケーションプログラムを指定するアプリ指定通信データを受信し、受信した前記アプリ指定通信データを指定に係る前記アプリケーションプログラムに中継するとともに、前記複数のアプリケーションプログラムを同時に実行している場合に前記複数のアプリケーションプログラムのそれぞれから所定の外部装置を指定する装置指定通信データを受信し、受信した前記装置指定通信データを指定に係る前記外部装置に中継する処理
（２）同時に実行している前記複数のアプリケーションプログラムのそれぞれについて所定の稼動状況を測定し、測定した前記所定の稼動状況ごとに測定値を生成する処理
（３）前記複数のアプリケーションプログラムのそれぞれについて生成した前記測定値と前記サービスレベル定義情報格納部が格納する前記サービスレベル定義情報に含まれる前記サービスレベル定義値とから、所定の計算式に基づいて前記アプリケーションプログラムごとに前記アプリケーションプログラムが提供している前記サービスのレベルの指標である満足度を計算し、前記アプリケーションプログラムごとに計算した前記満足度に基づいて前記複数のアプリケーションプログラムの中から中継制御の対象となるべき前記アプリケーションプログラムを制御対象アプリケーションプログラムとして決定し、かつ、決定した前記制御対象アプリケーションプログラムから送信された前記外部装置に中継するべき前記装置指定通信データと、前記制御対象アプリケーションプログラムに中継するべき前記アプリ指定通信データとの少なくともいずれかの通信データに対する中継の制御方式を決定し、決定した前記中継の制御方式を指示する制御指示信号を生成する処理
（４）生成した前記制御指示信号に従って、前記制御対象アプリケーションプログラムに関する前記アプリ指定通信データと前記装置指定通信データとのうち該当する通信データの中継の制御を実行する処理。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、それぞれが所定のサービスを提供する複数のアプリケーションプログラムを実行するサーバ装置の負荷を低減する技術に関する。
【背景技術】
【０００２】
サーバのアプリケーションの負荷を制御するために、アプリケーションが処理するデータの流入を制限することにより、間接的にアプリケーションの負荷を制御することが考えられる。このデータの流入の制限方法として、帯域制御装置（例えば、帯域監視及び帯域監視装置機能を備えたパケット転送装置の技術）がある（例えば、特許文献１）。特許文献１の先行技術は、別途定義したユーザ毎の許容帯域範囲に従い、入力パケットを、帯域監視部および廃棄判定回路等にて、許容範囲をオーバしていれば破棄し、範囲にある場合は優先パケットとして処理することにより、ユーザ毎の帯域を制御するものである。
【特許文献１】特開２００５−０３９３９０号公報、「帯域監視方法及び帯域監視機能を備えたパケット転送装置」
【発明の開示】
【発明が解決しようとする課題】
【０００３】
特許文献１の技術は、サーバと端末間のパケットの帯域制御をしているだけであり、レスポンス時間などのアプリケーションのサービスレベルの制御まではできない。この発明は、アプリケーションがシステムに及ぼしている負荷を測定し、測定した負荷に基づきアプリケーションの提供できているサービスレベルを算出し、その算出結果に基づき、パケットの中継を制御する。このフィードバックをかけ続けることによって、アプリケーションのサービスレベルを制御することを目的とする。
【課題を解決するための手段】
【０００４】
この発明のサーバ装置は、
それぞれが所定のサービスを提供する複数のアプリケーションプログラムを同時に実行するアプリケーション実行部と、
前記アプリケーション実行部が前記複数のアプリケーションプログラムを同時に実行している場合にいずれかの前記アプリケーションプログラムを指定するアプリ指定通信データを受信し、受信した前記アプリ指定通信データを指定に係る前記アプリケーションプログラムに中継するとともに、前記アプリケーション実行部が前記複数のアプリケーションプログラムを同時に実行している場合に前記複数のアプリケーションプログラムのそれぞれから所定の外部装置を指定する装置指定通信データを受信し、受信した前記装置指定通信データを指定に係る前記外部装置に中継する中継部と、
前記アプリケーション実行部が同時に実行している前記複数のアプリケーションプログラムのそれぞれについて所定の稼動状況を測定し、測定した前記所定の稼動状況ごとに測定値を生成する稼動状況測定部と、
前記複数のアプリケーションプログラムのそれぞれについて前記アプリケーションプログラムが提供する前記サービスのうちの所定の項目に関するサービスレベルを数値として定義したサービスレベル定義値を含むサービスレベル定義情報を格納するサービスレベル定義情報格納部と、
前記稼動状況測定部が前記複数のアプリケーションプログラムのそれぞれについて生成した前記測定値と前記サービスレベル定義情報格納部が格納する前記サービスレベル定義情報に含まれる前記サービスレベル定義値とから、所定の計算式に基づいて前記アプリケーションプログラムごとに前記アプリケーションプログラムが提供している前記サービスのレベルの指標である満足度を計算し、前記アプリケーションプログラムごとに計算した前記満足度に基づいて前記複数のアプリケーションプログラムの中から中継制御の対象となるべき前記アプリケーションプログラムを制御対象アプリケーションプログラムとして決定し、かつ、決定した前記制御対象アプリケーションプログラムから送信された前記外部装置に中継するべき前記装置指定通信データと、前記制御対象アプリケーションプログラムに中継するべき前記アプリ指定通信データとの少なくともいずれかの通信データに対する中継の制御方式を決定し、決定した前記中継の制御方式を指示する制御指示信号を前記中継部に出力する制御指示部と
を備え、
前記中継部は、
前記制御指示部が出力した前記制御指示信号を入力すると、入力した前記制御指示信号に従って、前記制御対象アプリケーションプログラムに関する前記アプリ指定通信データと前記装置指定通信データとのうち該当する通信データの中継の制御を実行することを特徴とする。
【発明の効果】
【０００５】
この発明により、サーバ装置において、複数のアプリケーションが提供している各サービスレベルを制御することができる。
【発明を実施するための最良の形態】
【０００６】
実施の形態１．
図１〜図９を用いて実施の形態１を説明する。実施の形態１は、複数のアプリケーションのそれぞれがシステムに及ぼしている負荷を測定し、測定した負荷に基づき各アプリケーションの提供できているサービスレベルを算出し、その算出結果に基づき、パケットの中継を制御し、このフィードバックをかけ続けることによって、アプリケーションのサービスレベルを制御するサーバ装置に関する。
【０００７】
図１は、コンピュータであるサーバ装置１０の外観の一例を示す図である。図１において、サーバ装置１０は、システムユニット８３０、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）やＬＣＤ（液晶）の表示画面を有する表示装置８１３、キーボード８１４（Ｋｅｙ・Ｂｏａｒｄ：Ｋ／Ｂ）、マウス８１５、ＦＤＤ８１７（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・  Ｄｒｉｖｅ）、コンパクトディスク装置８１８（ＣＤＤ：Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｄｒｉｖｅ）、プリンタ装置８１９などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
【０００８】
システムユニット８３０は、コンピュータであり、また、ネットワークに接続されている。ネットワークには、例えば携帯電話である制御機器２０−１と、例えばエアコンあるいはＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｋ）レコーダである被制御機器３０−１が接続されている。サーバ装置１０は、ネットワークを介して制御機器２０−１、被制御機器３０−１と通信可能である。
【０００９】
図２は、実施の形態１におけるサーバ装置１０のハードウェア資源の一例を示す図である。図２において、サーバ装置１０は、プログラムを実行するＣＰＵ８１０（中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ８１０は、バス８２５を介してＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）８１１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８１２、表示装置８１３、キーボード８１４、マウス８１５、通信ボード８１６、ＦＤＤ８１７、ＣＤＤ８１８、プリンタ装置８１９、磁気ディスク装置８２０、及び図３で後述するアプリケーション運転状況測定部３と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置８２０の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
【００１０】
ＲＡＭ８１２は、揮発性メモリの一例である。ＲＯＭ８１１、ＦＤＤ８１７、ＣＤＤ８１８、磁気ディスク装置８２０等の記憶媒体は、不揮発性メモリの一例である。これら、揮発性メモリ及び不揮発性メモリは、記憶装置あるいは記憶部、格納部の一例である。通信ボード８１６、キーボード８１４、ＦＤＤ８１７などは、入力部、入力装置の一例である。また、通信ボード８１６、表示装置８１３、プリンタ装置８１９などは、出力部、出力装置の一例である。また通信ボード８１６はネットワークに接続されており、後述する中継部の一例である。
【００１１】
磁気ディスク装置８２０には、オペレーティングシステム８２１（ＯＳ）、ウィンドウシステム８２２、プログラム群８２３、ファイル群８２４が記憶されている。プログラム群８２３のプログラムは、ＣＰＵ８１０、オペレーティングシステム８２１、ウィンドウシステム８２２により実行される。
【００１２】
上記プログラム群８２３には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラム及びアプリケーションプログラムが記憶されている。これらのプログラムは、ＣＰＵ８１０により読み出され実行される。
【００１３】
ファイル群８２４には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の算出結果」、「〜の抽出結果」、「〜の生成結果」、「〜の処理結果」として説明する情報や、データや信号値や変数値やパラメータなど、あるいは、後述するサービスレベル定義情報やアプリケーション運転状況測定部３の測定した測定値、あるいはフラグが「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ８１０によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００１４】
また、以下に述べる実施の形態の説明においては、データや信号値は、ＲＡＭ８１２のメモリ、ＦＤＤ８１７のフレキシブルディスク、ＣＤＤ８１８のコンパクトディスク、磁気ディスク装置８２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バス８２５や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００１５】
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「手段」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ＲＯＭ８１１に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ８１０により読み出され、ＣＰＵ８１０により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【００１６】
図３は、制御機器２０−１等からアプリケーションプログラム２−１等を経由して被制御機器３０−１等をリモート制御するリモート制御システム１００を示している。また図３は本実施の形態１におけるサーバ装置１０のブッロク構成を示している。ここで「制御機器」とは、例えば携帯電話であり、「被制御機器」とは、エアコンやＤＶＤレコーダなどである。すなわち、図３は、携帯電話からサーバ装置１０（アプリケーションプログラム）を介して、エアコン等を遠隔制御するシステムを示している。制御機器２０−１等は、サーバ装置１０の備えるペーシング部１を経由してアプリケーションプログラム２−１等（以下アプリケーションプログラムをアプリケーションという場合がある）と通信データの送受信をすることができる。また、被制御機器３０−１等も同様に、サーバ装置１０の備えるペーシング部１を経由してアプリケーション２−１等と通信データの送受信をすることができる。
【００１７】
サーバ装置１０は、ペーシング部１（中継部）と、アプリケーション実行部２と、アプリケーション運転状況測定部３（稼動状況測定部）と、サービスレベル定義情報格納部４と、制御指示部５とを備える。
【００１８】
アプリケーション実行部２は、それぞれが所定のサービスを提供する複数のアプリケーションプログラム２−１、２−２、・・・２−Ｎを同時に実行する。
【００１９】
ペーシング部１は、アプリケーション実行部２が複数のアプリケーションプログラム２−１等を同時に実行している場合にいずれかのアプリケーションプログラムを指定する「アプリ指定通信データ」を受信し、このアプリ指定通信データを指定に係るアプリケーションプログラムに中継する。図３において、「アプリ指定通信データ」とは、制御機器２０−１等から送信された通信データ６１、及び被制御機器３０−１等から送信された通信データ５１との２種類が存在する。また、ペーシング部１は、アプリケーション実行部２が複数のアプリケーションプログラム２−１等を同時に実行している場合に複数のアプリケーションプログラムのそれぞれから所定の外部装置を指定する「装置指定通信データ」を受信し、この装置指定通信データを指定に係る前記外部装置に中継する。図３において「所定の外部装置」とは制御機器２０−１等、及び被制御機器３０−１等が該当する。そして「装置指定通信データ」とは、それぞれのアプリケーションが制御機器２０−１等に向けて送信する通信データ６２と、それぞれのアプリケーションが被制御機器３０−１等に向けて送信する通信データ５２との２種類が存在する。
【００２０】
アプリケーション運転状況測定部３は、アプリケーション実行部２が同時に実行している複数のアプリケーションプログラム２−１等のそれぞれについて所定の運転状況（稼動状況）を測定し、測定した稼動状況ごとに測定値を生成する。この測定値については、図４の説明で後述する。
【００２１】
サービスレベル定義情報格納部４は、複数のアプリケーションプログラム２−１等のそれぞれについてそれぞれのアプリケーションプログラムが提供するサービスのうちの所定の項目に関するサービスレベルを数値として定義した「サービスレベル定義値」を含むサービスレベル定義情報を格納している。この「サービスレベル定義情報」は、図５の説明で後述する。
【００２２】
制御指示部５は、アプリケーション運転状況測定部３が複数のアプリケーションプログラムのそれぞれについて測定し、生成した「測定値」と、サービスレベル定義情報格納部４が格納している「サービスレベル定義値」とから、アプリケーションプログラムｉごとに後述の満足度Ｓｉを計算し、アプリケーションプログラムｉごとに計算した満足度Ｓｉに基づいて複数のアプリケーションプログラムの中から中継制御の対象となるべきアプリケーションプログラムを制御対象アプリケーションプログラムとして決定する。また、制御指示部５は、満足度Ｓｉに基づいて、この制御対象アプリケーションプログラムから送信された外部装置に中継するべき装置指定通信データ（通信データ５２、通信データ６２）と、制御対象アプリケーションプログラムに中継するべきアプリ指定通信データ（通信データ５１、通信データ６１）との少なくともいずれかの通信データに対する中継の制御方式を決定し、決定した中継の制御方式を指示する制御指示信号を生成してペーシング部１に出力する。ペーシング部１は、制御指示部５が出力した御指示信号を入力すると、入力した制御指示信号に従って、制御対象アプリケーションプログラムに関するアプリ指定通信データと装置指定通信データとのうち該当する通信データの中継の制御を実行する。この場合、制御指示部５は、次のように、通信データ５１等を制御する。すなわち、制御指示部５は、アプリケーション毎に中継制御するべき通信データが設定されている制御テーブル（図示していない）を有している。制御指示部５は、その制御テーブルの設定に従って、中継制御を実行する。例えば、アプリケーションがアプリケーション１〜アプリケーション３の３つであるとすれば、制御テーブルには、
（１）アプリケーション１：通信データ５１、
（２）アプリケーション２：通信データ５１、５２、６２、
（３）アプリケーション３：通信データ５１、５２、６１、６２
の（１）〜（３）の３つの関係が記載されている。これにより、制御指示部５は、アプリケーション１については通信データ５１を中継制御し、アプリケーション２については通信データ５１、５２、６２を中継制御し、アプリケーション３については通信データ５１、５２、６１、６２を制御する。もちろん通信データの設定は例示であり、選択テーブルでは、アプリケーション毎に、通信データ５２，６２，５１，６１のいずれか（あるいは組み合わせ、あるいは全部）を指定することが可能である。このように、制御指示部５は、選択テーブルに従って、アプリケーション毎に通信データを制御する。
【００２３】
図４は、アプリケーション運転状況測定部３が測定する運転状況測定項目７０の一例を示す図である。アプリケーション運転状況測定部３は、アプリケーション毎のレスポンス時間Ａ’、アプリケーション毎のＣＰＵ利用率Ｂ’、アプリケーション毎のメモリ利用サイズＣ’、アプリケーション毎の利用ネットワーク帯域Ｄ’、アプリケーション毎の利用同時接続数Ｅ’（同時オープンソケット数など）、アプリケーション毎の接続拒絶数Ｆ’などの項目を測定する。いずれの項目を測定するかについては、実装により決定する。図４のＸａ１等は、測定値であることを示している。
【００２４】
図５は、サービスレベル定義情報格納部４が格納しているサービスレベル定義情報８０を示す図である。サービスレベル定義情報８０としては、図５に示すように、アプリケーション毎の許容可能なレスポンスの最大時間Ａ（あるいは、その時間を満たす割合）、アプリケーション毎の利用可能な最低ＣＰＵ利用率Ｂ、アプリケーション毎の利用可能なメモリ利用サイズＣ（あるいは最低メモリ利用率）、アプリケーション毎の利用可能な最低ネットワーク帯域Ｄ、アプリケーション毎の利用可能な最低同時接続数Ｅ（同時オープンソケット数など）、あるいは、接続拒絶率Ｆなどである。図５のＭａ１等は、「サービスレベル定義値」を示している。どのような「サービスレベル定義値」を格納するかについては、図４の測定値と同様に、実装による。すなわち、後述のように、制御指示部５が、図４に示した測定値と、図５に示したサービスレベル定義値とを用いて、後述の満足度Ｓｉを計算するが、満足度Ｓｉを算出する式により、測定するべき測定値と格納するべきサービスレベル定義値とが決まる。即ち、制御指示部５は、アプリケーション運転状況測定部３とサービスレベル定義情報格納部４とから測定値、定義値を入力し、アプリケーションｉごとに満足度Ｓｉを計算する。そして、制御指示部５は、計算した満足度Ｓｉに基づきペーシング部１に対する制御内容を決定して、制御指示信号としてペーシング部１に送信する。
【００２５】
図６は、制御指示部５の動作概要を示すフローチャートである。図６を用いて、制御指示部５の動作概要を説明する。
【００２６】
ステップＳ１において、まず、制御指示部５は、サービスレベル定義情報格納部４から、アプリケーション毎に所定のサービスレベル定義情報のサービスレベル定義値を取得する。
【００２７】
ステップ２において、制御指示部５は、アプリケーション運転状況測定部３から、アプリケーション毎の所定の運転状況の測定値を取得する（ステップＳ２）。前記のように、制御指示部５が、どのようなサービスレベル定義値、あるいは測定値を取得するかは、設定されている満足度の算出式による。
【００２８】
なお、ステップＳ１とステップＳ２との順序は逆でもよいし、同時でも構わない。あるいは、ステップＳ１は、システムの起動時に一度だけ実施し、あとは、サービスレベル定義情報８０の更新されたイベントを待って、サービスレベル定義値を再取得してもよい。
【００２９】
ステップＳ３において、制御指示部５は、後述する図７のフローチャートに従って、サービスレベル定義値と運転状況の測定値とから、制御すべきアプリケーションとその制御内容とを決定する。
【００３０】
ステップ４において、制御指示部５は、制御するべきアプリケーションの存在の有無を判定する。制御するべきアプリケーションが無い場合、処理はステップＳ１に戻る。
【００３１】
制御するべきアプリケーションが存在する場合は（Ｓ４のＹＥＳ）、ステップＳ５において、制御指示部５は、ペーシング部１に制御の対象である制御対象アプリケーションの識別情報を含んだ制御命令（制御指示信号）を通知する。この制御命令は、制御するべきアプリケーションとそのアプリケーションに対する制御内容とを含む。その後、処理は、ステップＳ１に戻る。
【００３２】
次に、図７のフローチャートを用いて、制御指示部５のステップＳ３の動作の詳細を説明する。図７は、制御指示部５の動作を示すフローチャートである。
【００３３】
（ステップ３−１：満足度Ｓｉの算出）
まず最初に、制御指示部５は、入力としてサービスレベル定義情報格納部４から取得したサービスレベル定義値とアプリケーション運転状況測定部３から取得した測定値とから、次の様にして、アプリケーションｉごとに満足度Ｓｉを求める（ステップＳ３−１）。ここで「満足度Ｓｉ」とは、所定のサービスを提供するアプリケーションプログラムｉ（アプリケーションプログラムｉは、Ｎ個のアプリケーションプログラム２−１、２−２・・・２−Ｎのうちのいずれか）が提供している前記サービスのレベルの指標である。
【００３４】
満足度は、例えば、以下の式（所定の計算式の例）により求めることができる。図８は、満足度評価項目情報９０（ｉ＝１の場合を示す）の図である。
アプリケーションｉの満足度の満足度評価項目ｊ（ｊ＝１．．ｎ）の重みをＷｉ［ｊ］、
満足度評価項目ｊに関する充足度をＣｉ［ｊ］とする。
また、未充足個数＝Ｎｉとした場合、アプリケーションｉの満足度Ｓｉは、次のとする。
ｉｆ  （Ｎｉ＝＝０）  ｔｈｅｎ  Ｓｉ＝（ΣＷｉ＊Ｃｉ）／ｎ＝（ΣＷｉ［ｊ］＊Ｃｉ［ｊ］）／ｎ
ｅｌｓｅ  Ｓｉ＝−１００＊ΣＮｉ  
このように、「満足度」は、充足度からなる。「満足度」は、アプリケーションごとに決定される値であり、「充足度」は、アプリケーションのサービスレベル定義値毎に決定される値である。つまり、アプリケーション全体としてのサービスレベルをどれだけ満足しているか示す指標を「満足度」としている。また、各サービスレベルの評価項目（レスポンス時間など）のサービスレベルをどれだけ満足しているかを示す指標を「充足度」としている。したがって、評価項目が一つの場合は、「満足度＝充足度」となる（評価項目が１つのなので、重みに意味がないため、重みを１とした場合）。
したがって、基本としては、
満足度＝Σ充足度
であり、これに各サービスレベルの評価項目の重みＷを考慮したものが、上記「満足度Ｓｉ」の式となっている。
【００３５】
（ｊ＝１の例）
アプリケーションｉの満足度Ｓｉを求める。具体的な場合として、ｊ＝１の場合（サービスレベルの評価項目がただ一つの場合）を想定する。また、そのただ一つのサービスレベルの評価項目として、アプリケーション毎の許容可能なレスポンスの最大時間［Ｍ］と、その時間を満たす割合［Ｐ］を考える。これらの数値は、図５（サービスレベル定義情報８０）の「レスポンスの最大時間とその時間を満たす割合」を示す項目Ａに該当する。例えば、実際のアプリケーションの平均レスポンス時間をＸａ（測定値）とし、最大時間オーバの割合がＸｐ（測定値）とする。これらの数値は、図４（運転状況測定項目７０）の「平均レスポンス時間と最大時間オーバ割合」を示す項目Ａ’に該当する。
この場合、充足度は以下で求めることもできる。
ｉｆ（Ｘａ≦Ｍ）  ｔｈｅｎ  ｛Ｃ［ｊ］＝１００＋（Ｐ−Ｘｐ）％  ＡＮＤ  Ｎ［ｊ］＝０｝
ｅｌｓｅ                    ｛Ｃ［ｊ］＝０％  ａｎｄ  Ｎ［ｊ］＝１｝
また、アプリケーションｉの未充足度個数Ｎｉは、Ｎｉ＝ΣＮ［ｊ］である。
さらに、満足度評価項目毎の重みＷｊは、満足度評価項目が一つなので１でよい。Ｍが１０秒、Ｘａが８秒、Ｐが５％、Ｘｐが１０％の場合（平均レスポンスはサービスレベルを満たしているが、その時間を満たす割合は十分でない場合）は、アプリケーションｉの満足度Ｓｉは、以下となる（Ｘａ≦Ｍの場合となる）。
Ｃｉ＝１００＋（５−１０）＝９５、Ｎｉ＝０なので、
Ｓｉ＝ΣＷｉ＊Ｃｉ／ｎ＝Ｃｉ＝９５
となる。
【００３６】
（ｊ＝１の別の例）
ｊ＝１の別な具体例として、満足度評価項目ｊが以下の場合、それぞれのサービスレベル定義値をＭ、実際の測定値をＸとした場合、
（１）アプリケーション毎の利用可能な最低ＣＰＵ利用率、
（２）アプリケーション毎の利用可能な最低メモリ利用率、
（３）アプリケーション毎の接続拒絶率、
（１）〜（３）のそれぞれについての各評価項目に対する充足度は、
ｉｆ  （Ｍ−Ｘ＞０）  ｔｈｅｎ  ｛Ｃ［ｊ］＝１００＋（Ｍ−Ｘ）％｝
ｅｌｓｅ  ｛Ｃ［ｊ］＝０％  ａｎｄ  Ｎ［ｊ］＝１｝
とすることができる。
【００３７】
（ｊ＝１のさらに別の例）
また、ｊ＝１のさらに別の例として、満足度評価項目ｊが以下の場合も、別途想定した全体数を１００とした場合の割合を求め、それぞれのサービスレベル定義値をＭ、実際の測定値をＸとした場合に、
（１）アプリケーション毎の利用可能な最低ネットワーク帯域、
（２）アプリケーション毎の利用可能な最低同時接続数（同時オープンソケット数など）
の（１）、（２）のそれぞれについての各評価項目に対する充足度は、
ｉｆ  （Ｍ−Ｘ＞０）  ｔｈｅｎ  ｛Ｃ［ｊ］＝１００＋（Ｍ−Ｘ）％｝
ｅｌｓｅ  ｛Ｃ［ｊ］＝０％  ａｎｄ  Ｎ［ｊ］＝１｝
とすることができる。
【００３８】
上記のような式で満足度を求めた場合、一つでも満足評価項目ｊ（充足度Ｃ［ｊ］）を満たしていないものがあれば、満足度Ｓｉ値は、マイナスとなる。逆に、全て満足評価項目を満たしている場合は、満足度Ｓｉはプラスの値となる。さらに、満足度Ｓｉではマイナスが大きいほど不満足度が高く、プラスが大きいほど満足度が高い。
【００３９】
（ステップＳ３−２以降）
ステップＳ３−１からＳ３−２に進み、制御指示部５は、満足度がマイナスのアプリケーションがあるかどうかを調べる。不満足（満足度がマイナス）のアプリケーションがなければ（Ｓ３−２でＮｏ）、Ｓ３−２−１に進み、制御指示部５は、遅延制御の指示（過去にＳ３−６−１で出されたもの）が出されているアプリケーションのうち、プラスである満足度の一番値が小さいアプリケーションの遅延制御を無効にし、最初に戻る。一方、不満足なアプリケーションがあれば（Ｓ３−２でＹＥＳ）、Ｓ３−３に進み、制御指示部５は、満足度がマイナスのアプリケーションに遅延指示があるどうかを調べる。
【００４０】
遅延指示があれば（Ｓ３−３でＹＥＳ）、Ｓ３−３−１に進み、制御指示部５は、その遅延制御の指示を無効にして、最初に戻る。遅延指示が無ければ（Ｓ３−３でＮｏ）、Ｓ３−４に進む。
【００４１】
Ｓ３−４では、制御指示部５は、満足度がプラスのアプリケーションがあるかどうかを調べる。満足（満足度がプラス）なアプリケーションが無ければ（Ｓ３−４でＮｏ）、Ｓ３−４−１に進み、制御指示部５は、制御不能の旨のエラーレポートを出して最初に戻る。満足なアプリケーションが有る場合は、Ｓ３−５に進む。
【００４２】
Ｓ３−５では、制御指示部５は、満足度がプラスのアプリケーションのなかで一番満足度Ｓｉが高いアプリケーションＡを決定して、Ｓ３−６に進む。
【００４３】
そして、Ｓ３−６において、制御指示部５は、当該アプリケーションに対して遅延制御指示が規定回数以上続いているかどうか調べる。続いている場合は（Ｓ３−６でＹＥＳ）、Ｓ３−７に進み、制御指示部５は、アプリケーションＡに対して、次回の接続要求を拒絶する指示を出して最初に戻る。続いていない場合は（Ｓ３−６でＮｏ）、Ｓ３−６−１に進み、制御指示部５は、アプリケーションＡに対して遅延制御の指示を出して最初に戻る。この時、遅延時間を別途指定してもよい。また、遅延時間は、遅延指示回数に応じて変更してもよい。
【００４４】
（ペーシング部１の動作）
次に、図９のフローチャートを用いてペーシング部１の処理手順を説明する。図９のフローチャートは、ペーシング部１が図６のＳ５の制御命令あるいは、図７におけるＳ３−２−１、Ｓ３−３−１、Ｓ３−６−１、Ｓ３−７の指示を受けた場合の処理動作を示している。ペーシング部１が制御するパケット（通信データ）は、図３に示した通信データ５１，５２，６１，６２のいずれも含む。
【００４５】
Ｓ５−１において、ペーシング部１は、パケットの中継をしながら、制御指示部５からの制御指示信号の送信を受けたかどうかをチェックする。この制御指示信号を受信していない場合は（Ｓ５−１でＮｏ）、Ｓ５−１−１に進み、遅延フラグ、接続拒絶フラグが設定されているアプリケーションがあるかどうかをチェックする。このフラグは、例えば、ペーシング部１が保有している。設定されているアプリケーションがなければ（Ｓ５−１−１でＮｏ）、最初に戻り、設定されているアプリケーションがある場合にはＳ５−３に進む。
【００４６】
ステップＳ５−１で制御指示信号を受信している場合（Ｓ５−１でＮｏ）は、Ｓ５−２に進み、ペーシング部１は、制御指示信号の指示に従い、該当するアプリケーションに対する接続拒否フラグあるいは、遅延フラグをセットしてＳ５−３に進む。
【００４７】
Ｓ５−３において、ペーシング部１は、パケット（通信データ）中継をするために、受信したパケットのあて先あるいは送り元のアプリケーションを調べ、拒絶フラグあるいは遅延フラグが設定されているアプリケーションかどうかをチェックしてＳ５−４に進む。
【００４８】
Ｓ５−４において、受信パケットは、接続拒否フラグがあるアプリケーションである場合は（Ｓ５−４でＹＥＳ）、Ｓ５−４−１に進み、パケットの廃棄を行い、該当拒否フラグをクリアして最初に戻る。ここで廃棄される「パケット」とは、それぞれのアプリケーションｉを介してやり取りされるデータの単位を意味し、相当のパケット容量（バイト数）を有するパケットである。このとき、破棄の代わりに、Ｂｕｓｙを示すパケットあるいは拒絶を示すパケットを送り返してもよい。拒否フラグがない場合は（Ｓ５−４でＮｏ）、Ｓ５−５に進み、ペーシング部１は、受信パケットについて、遅延フラグがあるアプリケーションに関するパケットであるかどうかをチェックする。
【００４９】
遅延フラグがセットされているアプリケーションのパケットの場合（Ｓ５−５でＹＥＳ）、Ｓ５−５−１に進み、ペーシング部１は、そのパケットの中継時に遅延を発生させてからパケットの送信を行う。遅延時間は、別途定めた固定の時間であってもよいし、別途、制御指示部５から渡された時間でもよい。Ｓ５−５−１からは、最初に戻る。Ｓ５−５においてＮｏである場合は最初に戻る。
【００５０】
以上のようアプリケーション負荷制御を行うために、制御指示部５およびペーシング部１の処理、そして、その制御の結果としてアプリケーションの負荷制御が実施され、さらにそのフィードバックが掛かり、さらに、アプリケーションの負荷を制御することになる。即ち、アプリケーションがシステムに及ぼしている負荷を測定し、測定した負荷に基づきアプリケーションの提供できているサービスレベルを算出し、その算出結果に基づき、パケットの中継を制御し、このフィードバックをかけ続けることによって、アプリケーションのサービスレベルを制御することができる。また、大きくサービスレベル定義と離れた要求が発生した場合でも、他のアプリケーションのサービスレベルを不満足にしない限りは、その要求を抑えることなくリソースを最大限利用できるという効果もある。
【００５１】
実施の形態１において説明したサーバ装置１０のペーシング部１、アプリケーション実行部２、アプリケーション運転状況測定部３、サービスレベル定義情報格納部４、制御指示部５等の各構成要素の動作は互いに関連しており、これら各構成要素の一連の動作を中継データ制御方法として把握することができる。また、各構成要素の動作をコンピュータであるサーバ装置に実行させる中継データ制御プログラムとして把握することもできる。
【００５２】
以上の実施の形態では、制御機器からアプリケーションを経由して被制御機器をリモート制御するリモート制御システムにおいて、制御機器とアプリケーションとの通信データを中継、若しくは、被制御機器とアプリケーションとの通信データを中継、若しくは、両方の通信データを中継し、外部からの制御命令をうけてデータの中継を制御するペーシング手段から構成されるアプリケーション負荷制御方式を説明した。
【００５３】
以上の実施の形態では、制御機器からアプリケーションを経由して被制御機器をリモート制御するリモート制御システムにおいて、
（ａ）制御機器とアプリケーションとの通信データを中継、若しくは、被制御機器とアプリケーションとの通信データを中継、若しくは、両方の通信データを中継し、後述する制御指示手段からの制御命令をうけてデータの中継を制御するペーシング手段、
（ｂ）アプリケーションの運転状況を測定する、アプリケーション運転状況測定手段、
（ｃ）アプリケーションのサービスのレベルを定義したサービスレベル定義情報、
（ｄ）アプリケーション運転状況測定手段から得られる情報と、サービスレベル定義情報とから計算して、データの中継の制御方式を決定する制御指示手段から構成されるアプリケーション負荷制御方式を説明した。
【００５４】
以上の実施の形態では、前記ペーシング手段は、通信データの中継時に、特定のアプリケーションの通信データのみの中継に、即中継せずに、別途定めた時間後に、パケットを中継する機能を持つアプリケーション負荷制御方式を説明した。
【００５５】
以上の実施の形態では、前記ペーシング手段は、通信データの中継時に、特定のアプリケーションの通信データのみの中継に、データを中継せずに捨てる機能を持つアプリケーション負荷制御方式を説明した。
【００５６】
以上の実施の形態では、前記サービスレベル定義情報は、以下の一つ以上のデータが登録されているアプリケーション負荷制御方式を説明した。
（１）アプリケーション毎の許容可能なレスポンスの最大時間あるいは、その時間を満たす割合
（２）アプリケーション毎の利用可能な最低ＣＰＵ利用率
（３）アプリケーション毎の利用可能な最低メモリ利用率あるいは利用サイズ
（４）アプリケーション毎の利用可能な最低ネットワーク帯域
（５）アプリケーション毎の利用可能な最低同時接続数（同時オープンソケット数など）あるいは、接続拒絶率
【００５７】
以上の実施の形態では、前記アプリケーション運転状況測定手段は、以下の一つ以上のデータを測定することを特徴とするアプリケーション負荷制御方式を説明した。
（１）アプリケーション毎のレスポンス時間
（２）アプリケーション毎のＣＰＵ利用率
（３）アプリケーション毎のメモリ利用サイズ
（４）アプリケーション毎の利用ネットワーク帯域
（５）アプリケーション毎の利用同時接続数（同時オープンソケット数など）
（６）アプリケーション毎の接続拒絶数
【００５８】
以上の実施の形態では、前記制御指示手段は、アプリケーション運転状況の情報と、サービスレベル定義情報とから、サービスレベルの満足度を計算することを特徴とするアプリケーション負荷制御方式を説明した。
【００５９】
以上の実施の形態では、前記制御指示手段は、サービスレベルの満足度の計算の結果、全てがサービスレベルを満足していないアプリケーションがあれば、サービスレベルを満足しているアプリケーションの中で、満足度の一番高いアプリケーションのパケットに対して、遅延を発生させてから中継するようにペーシング機能に指示を出すことを特徴とするアプリケーション負荷制御方式を説明した。
【図面の簡単な説明】
【００６０】
【図１】実施の形態１におけるサーバ装置１０の外観の一例を示す図。
【図２】実施の形態１におけるサーバ装置１０のハードウェア資源の一例を示す図。
【図３】実施の形態１におけるリモート制御システムを示す構成図。
【図４】実施の形態１における運転状況測定項目７０の一例を示す図。
【図５】実施の形態１におけるサービスレベル定義情報８０を示す図。
【図６】実施の形態１における制御指示部５の動作概要を示すフローチャート。
【図７】実施の形態１における制御指示部５の動作の詳細を示すフローチャート。
【図８】実施の形態１における満足度評価項目ｊを説明するための概念的な図。
【図９】実施の形態１におけるペーシング部の処理動作を示すフローチャート。
【符号の説明】
【００６１】
１  ペーシング部、２  アプリケーション実行部、３  アプリケーション運転状況測定部、４  サービスレベル定義情報格納部、５  制御指示部、１０  サーバ装置、２０−１  制御機器、３０−１  被制御機器、７０  運転状況測定項目、８０  サービスレベル定義情報、９０  満足度評価項目情報、１００  リモート制御システム、８１０  ＣＰＵ、８１１  ＲＯＭ、８１２  ＲＡＭ、８１３  ＤＳＰ、８１４  Ｋ／Ｂ、８１５  マウス、８１６  通信ボード、８１７  ＦＤＤ、８１８  ＣＤＤ、８１９  プリンタ、８２０  磁気ディスク装置、８３０  システムユニット、８２１  ＯＳ、８２２  ウィンドウシステム、８２３  プログラム群、８２４  ファイル群。
【図１】
2008167338.tif 000003
【図２】
2008167338.tif 000004
【図３】
2008167338.tif 000005
【図４】
2008167338.tif 000006
【図５】
2008167338.tif 000007
【図６】
2008167338.tif 000008
【図７】
2008167338.tif 000009
【図８】
2008167338.tif 000010
【図９】
2008167338.tif 000011