(57)【特許請求の範囲】
【請求項１】
ネットワークを介して複数のユーザの利用に供される一又は複数のアプリケーションが稼動する一又は複数のサーバ上において、前記アプリケーションは、複数の前記アプリケーションが第１のサーバ毎にリソースが共有された状態で稼動する前記第１のサーバ上の第１の稼働環境上で稼動するとともに、前記第１のサーバとは別の第２のサーバ上の稼働環境または前記第１のサーバ上に構築された前記アプリケーション毎の仮想環境であって、前記アプリケーション毎にリソースが管理される状態で前記アプリケーションが稼動する第２の稼働環境上で稼動可能に構成され、
少なくとも前記第２の稼働環境上で稼動する前記アプリケーション毎のリソース使用量を監視し、前記リソース使用量に応じて、前記第２の稼働環境と前記第１の稼働環境の間で前記アプリケーションが稼動する環境を切り替えるアプリケーション切替システムであって、
少なくとも前記第２の稼働環境上で稼動する前記アプリケーションの前記リソース使用量の情報を取得するリソース情報取得部と、
前記リソース使用量の情報を分析し、前記リソース使用量が予め前記アプリケーション毎に設定された閾値を超えたことがないかを検出するリソース監視部と、
所定の第１稼動期間中に前記第２の稼働環境上で稼動する前記アプリケーションの前記リソース使用量の任意の所定の第１設定期間における統計値が前記閾値以下である前記アプリケーションの稼動環境を前記第１の稼働環境に切り替えるアプリケーション切替部と、
前記ユーザからの前記アプリケーションへのアクセスを中継し、前記アプリケーションが前記第１の稼働環境上で稼働中の場合前記第１の稼働環境へ前記ユーザからのアクセス要求を送信し、前記アプリケーションが前記第２の稼働環境上で稼働中の場合前記第２の稼働環境へ前記ユーザからのアクセス要求を送信するアクセス切替部と、を備えることを特徴とするアプリケーション切替システム。
【請求項２】
前記アプリケーション切替部は、前記所定の第１稼動期間中に、前記第２の稼働環境上で稼動する前記アプリケーションの前記リソース使用量の任意の前記所定の第１設定期間における平均値が前記閾値以下である前記アプリケーションの稼動環境を前記第１の稼働環境に切り替えることを特徴とする請求項１に記載のアプリケーション切替システム。
【請求項３】
前記アプリケーションの稼働環境を前記第２の稼働環境から前記第１の稼働環境に切り替えた前記アプリケーションの情報、又は、前記リソース使用量が前記閾値を超えたアプリケーションの情報を管理者に通知する通知部を備えることを特徴とする請求項１又は２に記載のアプリケーション切替システム。
【請求項４】
前記通知部は、所定の第２稼動期間中に前記リソース使用量の所定の第２設定期間における統計値が前記閾値を超えたことのある前記第１の稼働環境上で稼動中の前記アプリケーションを前記リソース監視部が検出すると、当該アプリケーションの情報を管理者に通知することを特徴とする請求項３に記載のアプリケーション切替システム。
【請求項５】
前記第２の稼働環境は、前記第２のサーバ上の稼働環境であることを特徴とする請求項１〜４の何れか一項に記載のアプリケーション切替システム。
【請求項６】
前記第２の稼働環境上で稼動する前記アプリケーションは、前記第２のサーバ上に構築された前記アプリケーション毎の仮想環境上で稼動していることを特徴とする請求項５に記載のアプリケーション切替システム。
【請求項７】
前記第１の稼働環境および前記第２の稼働環境のうち少なくとも何れか一方の上で稼動する前記アプリケーションは、サーバ上の仮想環境上で稼動していることを特徴とする請求項１〜６の何れか一項に記載のアプリケーション切替システム。
【請求項８】
ネットワークを介して複数のユーザの利用に供される一又は複数のアプリケーションが稼動する一又は複数のサーバ上において、前記アプリケーションは、複数の前記アプリケーションが第１のサーバ毎にリソースが共有された状態で稼動する前記第１のサーバ上の第１の稼働環境上で稼動するとともに、前記第１のサーバとは別の第２のサーバ上の稼働環境または前記第１のサーバ上に構築された前記アプリケーション毎の仮想環境であって、前記アプリケーション毎にリソースが管理される状態で前記アプリケーションが稼動する第２の稼働環境上で稼動可能に構成され、
少なくとも前記第２の稼働環境上で稼動する前記アプリケーション毎のリソース使用量を監視し、前記リソース使用量に応じて、前記第２の稼働環境と前記第１の稼働環境の間で前記アプリケーションが稼動する環境を切り替えるアプリケーション切替方法であって、
前記第２の稼働環境上で稼動する前記アプリケーションの前記リソース使用量の情報を取得する第１のステップと、
前記リソース使用量の情報を分析し、前記リソース使用量が予め前記アプリケーション毎に設定された閾値を超えたことがないかを検出する第２のステップと、
所定の第１稼動期間中に前記第２の稼働環境上で稼動する前記アプリケーションの前記リソース使用量の任意の所定の第１設定期間における統計値が前記閾値以下である前記アプリケーションを前記第１の稼働環境に切り替えて稼動させる第３のステップと、
前記ユーザからの前記アプリケーションへのアクセスを中継し、前記アプリケーションが前記第１の稼働環境上で稼働中の場合前記第１の稼働環境へ前記ユーザからのアクセス要求を送信し、前記アプリケーションが前記第２の稼働環境で稼働中の場合前記第２の稼働環境へ前記ユーザからのアクセス要求を送信する第４のステップと、を含むことを特徴とするアプリケーション切替方法。
【請求項９】
前記第３のステップにおいて、前記所定の第１稼動期間中に、前記第２の稼働環境上で稼動する前記アプリケーションの前記リソース使用量の任意の前記所定の第１設定期間における平均値が前記閾値以下である前記アプリケーションを前記第１の稼働環境に切り替えて稼動させることを特徴とする請求項８に記載のアプリケーション切替方法。
【請求項１０】
前記第１の稼働環境上で稼動する前記アプリケーションの前記リソース使用量の情報を取得するステップと、
前記第１の稼働環境上で稼働中に、前記アプリケーションの前記リソース使用量の所定の第２設定期間における統計値が前記閾値を超えたことのある前記アプリケーションの情報を管理者に通知するステップを更に含むことを特徴とする請求項８又は９に記載のアプリケーション切替方法。
【請求項１１】
前記第３のステップにおいて前記第２の稼働環境から前記第１の稼働環境に稼働環境を切り替えた前記アプリケーションの情報、又は、前記第２のステップにおいて前記リソース使用量が前記閾値を超えたアプリケーションの情報を管理者に通知するステップを含むことを特徴とする請求項８〜１０の何れか一項に記載のアプリケーション切替方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一又は複数のサーバコンピュータで稼動するアプリケーションのリソース使用量を監視し、アプリケーションが稼動するサーバの切り替えを行なうためのアプリケーション切替システム及びアプリケーション切替の方法に関する。
【背景技術】
【０００２】
現在、Ｗｅｂアプリケーションシステムにおいて、複数のアプリケーションを１つのサーバ（統合サーバ）で稼動させることで、リソース（ＣＰＵ，メモリ、ディスク使用等）を共有し、コストの最適化を図っている。
【０００３】
上記統合サーバでは、サーバのリソースは稼動するアプリケーションで共有されるため、一部のアプリケーションがリソースの濫用を行なうと他のアプリケーションが稼動するためのリソースが無くなってしまい、サーバ全体の障害を引き起こすことがある。
【０００４】
上記問題の解決策として、各アプリケーションのリソース使用量を含むパフォーマンス情報をサーバから取得し、予め設定している当該サーバの負荷判定閾値のうち現在稼動しているアプリケーションについての閾値と比較して、リソース使用量が当該閾値を超えているサーバで稼働中のアプリケーションを別サーバに切り替えて稼動させることで、サーバの負荷分散を行なう構成が特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−３１７３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
各アプリケーションがどの程度リソースを使用するかは、実際にユーザにアプリケーションへのアクセスを許可して、実際の利用状況を見ないと判断は難しい。上述の通り、統合サーバではリソースが共用されるため、一部のアプリケーションがリソースを濫用すると、他のアプリケーションのリソース使用を圧迫し、サーバ全体のパフォーマンスに影響を与える。
【０００７】
特許文献１に記載の従来技術では、リソース使用量が閾値を超えたアプリケーションの稼動サーバを切り替えることで、サーバ負荷の分散はある程度可能となるが、長期間稼動させた場合の根本的な不具合（使用したリソースを使用後も開放しない、或いは、特定のアプリケーションが特定のユーザからのアクセスの際にリソースを大量に消費する等）を事前に発見し、対応することは困難である。
【０００８】
そこで、本発明は、アプリケーション稼動時のリソース使用状況を監視し、当該監視結果に基づいて当該アプリケーションが稼動する稼働環境を切り替えることで、アプリケーションの長期間稼動時における不具合を検出するとともに、サーバの長期間に渡る安定稼動を実現するためのアプリケーション切替システム、及びアプリケーション切替の方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するための本発明に係るアプリケーション切替システムは、ネットワークを介して複数のユーザの利用に供される一又は複数のアプリケーションが稼動する一又は複数のサーバ上において、前記アプリケーションは、複数の前記アプリケーションが第１のサーバ毎にリソースが共有された状態で稼動する前記第１のサーバ上の第１の稼働環境上で稼動するとともに、前記第１のサーバとは別の第２のサーバ上の稼働環境または前記第１のサーバ上に構築された前記アプリケーション毎の仮想環境であって、前記アプリケーション毎にリソースが管理される状態で前記アプリケーションが稼動する第２の稼働環境上で稼動可能に構成され、少なくとも前記第２の稼働環境上で稼動する前記アプリケーション毎のリソース使用量を監視し、前記リソース使用量に応じて、前記第２の稼働環境と前記第１の稼働環境の間で前記アプリケーションが稼動する環境を切り替えるアプリケーション切替システムであって、少なくとも前記第２の稼働環境上で稼動する前記アプリケーションの前記リソース使用量の情報を取得するリソース情報取得部と、前記リソース使用量の情報を分析し、前記リソース使用量が予め前記アプリケーション毎に設定された閾値を超えたことがないかを検出するリソース監視部と、所定の第１稼動期間中に前記第２の稼働環境上で稼動する前記アプリケーションの前記リソース使用量の任意の所定の第１設定期間における統計値が前記閾値以下である前記アプリケーションの稼動環境を前記第１の稼働環境に切り替えるアプリケーション切替部と、前記ユーザからの前記アプリケーションへのアクセスを中継し、前記アプリケーションが前記第１の稼働環境上で稼働中の場合前記第１の稼働環境へ前記ユーザからのアクセス要求を送信し、前記アプリケーションが前記第２の稼働環境上で稼働中の場合前記第２の稼働環境へ前記ユーザからのアクセス要求を送信するアクセス切替部と、を備えることを特徴とする。
【００１０】
更に、本発明の本発明に係るアプリケーション切替システムは、上記特徴に加えて、前記アプリケーション切替部は、前記所定の第１稼動期間中に、前記第２の稼働環境上で稼動する前記アプリケーションの前記リソース使用量の任意の前記所定の第１設定期間における平均値が前記閾値以下である前記アプリケーションの稼動環境を前記第１の稼働環境に切り替える構成とすることが好ましい。
【００１１】
上記特徴のアプリケーション切替システムに依れば、第１の稼働環境上でアプリケーションを稼動させる前に、第２の稼動環境上でアプリケーションをリソース使用量を監視しながら稼動させ、実際の利用状況におけるリソース使用量を第２の稼働環境上において把握し、当該リソース使用量の所定の第１設定期間における統計値が第１稼動期間中において閾値以下を維持したアプリケーションのみ第１の稼働環境に切り替えて稼動させる。
【００１２】
これにより、第１の稼働環境上でリソースが共有された状態で稼動するアプリケーションの夫々について、リソースがアプリケーション毎の閾値を超えて濫用されることを予め抑止し、当該アプリケーションを第１の稼働環境上で長期間安定稼動させることが可能になる。
【００１３】
更に、本発明の本発明に係るアプリケーション切替システムは、上記特徴に加えて、前記アプリケーションの稼働環境を前記第２の稼働環境から前記第１の稼働環境に切り替えた前記アプリケーションの情報、又は、前記リソース使用量が前記閾値を超えたアプリケーションの情報を管理者に通知する通知部を備える構成とすることが好ましい。
【００１４】
稼働環境を切り替えたアプリケーションの情報、又は、リソースの濫用が発生したアプリケーションの情報を管理者（例えば、第１のサーバ或いは第２のサーバの管理者、又は、当該アプリケーションの管理者）に通知することにより、管理者は、現在稼動しているアプリケーションのリソース使用状況を正確に把握することができる。
【００１５】
ここで、アプリケーションの情報には、アプリケーションの名称のほか、稼働環境の切替時刻もしくはリソース使用量が閾値を越えた時刻、リソース使用量が閾値を越えた際の当該アプリケーションの処理内容、又は、リソース使用量等が挙げられる。
【００１６】
更に、本発明の本発明に係るアプリケーション切替システムは、上記特徴に加えて、前記通知部は、所定の第２稼動期間中に前記リソース使用量の所定の第２設定期間における統計値が前記閾値を超えたことのある前記第１の稼働環境上で稼動中の前記アプリケーションを前記リソース監視部が検出すると、当該アプリケーションの情報を管理者に通知する構成とすることが好ましい。
【００１７】
第１の稼働環境上で閾値を超えてリソースを消費し、リソースの濫用が発生したアプリケーションの情報（例えば、リソース使用量）を管理者に通知することで、管理者は、当該アプリケーションを第２の稼働環境上で再度稼動させ、アプリケーションの安定稼動のための原因究明に必要な情報を更に第２の稼働環境上で取得するべきか、それとも、当該アプリケーションを改修のために一旦停止するべきかの判断を、通知された情報に基づいて行うことができる。
【００１８】
また、本発明の本発明に係るアプリケーション切替システムは、上記特徴に加えて、前記第２の稼働環境は、前記第２のサーバ上の稼働環境であることが好ましい。
【００１９】
また、本発明の本発明に係るアプリケーション切替システムは、上記特徴に加えて、前記第２の稼働環境上で稼動する前記アプリケーションは、前記第２のサーバ上に構築された前記アプリケーション毎の仮想環境上で稼動していることが好ましい。
【００２０】
また、本発明の本発明に係るアプリケーション切替システムは、上記特徴に加えて、前記第１の稼働環境および前記第２の稼働環境のうち少なくとも何れか一方の上で稼動する前記アプリケーションは、サーバ上の仮想環境上で稼動していることが好ましい。
【００２１】
ここで、第１の稼働環境および第２の稼働環境については、夫々、サーバのオペレーティングシステム上で稼動する構成、或いは、更に仮想環境を介して稼動する構成のどちらも可能である。特に、第２の稼働環境については、アプリケーション毎に構築された仮想環境でアプリケーションを稼動させることで、アプリケーションが第２の稼働環境でリソースの濫用を起こした際に、サーバ障害の影響を当該アプリケーションが稼動している仮想環境の範囲内にとどめ、他のアプリケーションが稼動している別の仮想環境に影響を与えないようにすることができる。
【００２２】
また、第１の稼働環境および第２の稼働環境は夫々、同一のサーバ（第１のサーバ）上でアプリケーションが稼動する環境であってもよい。その場合は、少なくとも第２の稼働環境において、アプリケーション毎に構築された仮想環境でアプリケーションが稼動する環境とする。
【００２３】
もっとも、第２の稼働環境におけるリソースの濫用の影響を避けるため、夫々の稼働環境は、ハードウェアの実体を別のサーバで構築することが望ましい。即ち、第１の稼働環境は第１のサーバ上に、第２の稼働環境は第２のサーバ上に構築することが望ましい。
【００２４】
上記目的を達成するための本発明に係るアプリケーション切替方法は、ネットワークを介して複数のユーザの利用に供される一又は複数のアプリケーションが稼動する一又は複数のサーバ上において、前記アプリケーションは、複数の前記アプリケーションが第１のサーバ毎にリソースが共有された状態で稼動する前記第１のサーバ上の第１の稼働環境上で稼動するとともに、前記第１のサーバとは別の第２のサーバ上の稼働環境または前記第１のサーバ上に構築された前記アプリケーション毎の仮想環境であって、前記アプリケーション毎にリソースが管理される状態で前記アプリケーションが稼動する第２の稼働環境上で稼動可能に構成され、少なくとも前記第２の稼働環境上で稼動する前記アプリケーション毎のリソース使用量を監視し、前記リソース使用量に応じて、前記第２の稼働環境と前記第１の稼働環境の間で前記アプリケーションが稼動する環境を切り替えるアプリケーション切替方法であって、前記第２の稼働環境上で稼動する前記アプリケーションの前記リソース使用量の情報を取得する第１のステップと、前記リソース使用量の情報を分析し、前記リソース使用量が予め前記アプリケーション毎に設定された閾値を超えたことがないかを検出する第２のステップと、所定の第１稼動期間中に前記第２の稼働環境上で稼動する前記アプリケーションの前記リソース使用量の任意の所定の第１設定期間における統計値が前記閾値以下である前記アプリケーションを前記第１の稼働環境に切り替えて稼動させる第３のステップと、前記ユーザからの前記アプリケーションへのアクセスを中継し、前記アプリケーションが前記第１の稼働環境上で稼働中の場合前記第１の稼働環境へ前記ユーザからのアクセス要求を送信し、前記アプリケーションが前記第２の稼働環境で稼働中の場合前記第２の稼働環境へ前記ユーザからのアクセス要求を送信する第４のステップと、を含むことを特徴とする。
【００２５】
更に、本発明に係るアプリケーション切替方法は、上記特徴に加えて、前記第３のステップにおいて、前記所定の第１稼動期間中に、前記第２の稼働環境上で稼動する前記アプリケーションの前記リソース使用量の任意の前記所定の第１設定期間における平均値が前記閾値以下である前記アプリケーションを前記第１の稼働環境に切り替えて稼動させる構成とすることが好ましい。
【００２６】
上記特徴のアプリケーション切替方法に依れば、第１の稼働環境上でアプリケーションを稼動させる前に、第２の稼動環境上でアプリケーションをリソース使用量を監視しながら稼動させ、実際の利用状況におけるリソース使用量を第２の稼働環境上において把握し、当該リソース使用量の所定の第１設定期間における統計値が第１稼動期間中閾値以下を維持したアプリケーションのみ第１の稼働環境に切り替えて稼動させる。
【００２７】
これにより、第１のサーバ上の第１の稼働環境上でリソースが共有された状態で稼動するアプリケーションの夫々について、リソースがアプリケーション毎の閾値を超えて濫用されることを予め抑止し、当該アプリケーションを第１の稼働環境上で長期間安定稼動させることが可能になる。
【００２８】
更に、本発明に係るアプリケーション切替方法は、上記特徴に加えて、前記第１の稼働環境上で稼動する前記アプリケーションの前記リソース使用量の情報を取得するステップと、前記第１の稼働環境上で稼働中に、前記アプリケーションの前記リソース使用量の所定の第２設定期間における統計値が前記閾値を超えたことのある前記アプリケーションの情報を管理者に通知するステップを更に含む構成とすることが好ましい。
【００２９】
第１の稼働環境上でリソース使用量の平均値が閾値を超えて稼動し、リソースの濫用が発生したアプリケーションの情報を管理者に通知することで、管理者は、当該アプリケーションを第２の稼働環境上で再度稼動させ、アプリケーションの安定稼動のために必要な情報を更に第２の稼働環境上で取得するべきか、当該アプリケーションを改修のために停止するべきかの判断を、通知された情報に基づいて行うことができる。
【００３０】
更に、本発明に係るアプリケーション切替方法は、上記特徴に加えて、前記第３のステップにおいて前記第２の稼働環境から前記第１の稼働環境に稼働環境を切り替えた前記アプリケーションの情報、又は、前記第２のステップにおいて前記リソース使用量が前記閾値を超えたアプリケーションの情報を管理者に通知するステップを含む構成とすることが好ましい。
【００３１】
稼働環境を切り替えたアプリケーションの情報、又は、リソースの濫用が発生したアプリケーションの情報を通知することにより、管理者は、現在稼動しているアプリケーションのリソース使用状況を正確に把握することができる。
【発明の効果】
【００３２】
従って、本発明のアプリケーション切替装置およびアプリケーション切替方法に依れば、アプリケーション稼動時のリソース使用状況を少なくとも第２の稼動環境において監視し、当該監視結果に基づいて当該アプリケーションが稼動する稼働環境を第２の稼働環境から第１の稼働環境に切り替える構成とすることで、アプリケーションの長期間稼動時における不具合が第２の稼働環境でのアプリケーションの稼動時において検出され、第１の稼働環境上において、第１のサーバの長期間に渡る安定稼動が実現される。
【図面の簡単な説明】
【００３３】
【図１】本発明に係るアプリケーション切替システムを説明するためのネットワーク構成図。
【図２】第１及び第２のサーバ上におけるアプリケーション稼動時のソフトウェア構成の階層構造図。
【図３】システムログのアプリケーションのリソース使用量の記録部分の一例。
【図４】システムログのアプリケーションのリソース使用量の記録部分の一例。
【図５】アプリケーションの稼働環境の切替制御方法を示すフローチャート。
【図６】本発明の別実施形態に係る第１及び第２のサーバ上におけるアプリケーション稼動時のソフトウェア構造図。
【図７】本発明の別実施形態に係る第２のサーバ上におけるアプリケーション稼動時のソフトウェア構造図。
【図８】第１及び第２の稼働環境を同一サーバ上に構築した場合のアプリケーション稼動時のソフトウェア構造図。
【発明を実施するための形態】
【００３４】
〈第１実施形態〉
以下に、本発明のアプリケーション切替システム（以降、適宜「本発明システム１」と称す）及びアプリケーション切替方法の実施形態につき説明する。図１は、本発明システム１の一例を示すネットワーク構成図である。
【００３５】
本発明システム１は、リソース情報取得部１１、リソース監視部１２、アプリケーション切替部１３、アクセス切替部１４、及び、通知部１５を含み、ローカルネットワーク１０ｂを介して本番サーバ（第１のサーバ）１６、或いはプレ本番サーバ（第２のサーバ）１７ａ〜１７ｄの何れかで稼動するアプリケーションの稼動する環境を切替可能に構成されている。ここで、リソース情報取得部１１、リソース監視部１２、アプリケーション切替部１３、アクセス切替部１４、及び、通知部１５は、各部の処理をコンピュータ上で各別に処理するプログラムを実行することにより実現される。尚、リソース情報取得部１１、リソース監視部１２、アプリケーション切替部１３、及び、通知部１５は、本実施形態では本番サーバ１６、プレ本番サーバ１７ａ〜１７ｄ、及び切替サーバ１８とは別のコンピュータ内に設けられているが、必ずしもこの構成に限られるものではない。本番サーバ１６、プレ本番サーバ１７ａ〜１７ｄ、或いは切替サーバ１８の何れかの内に設けられる構成も可能である。
【００３６】
本番サーバ１６、或いはプレ本番サーバ１７ａ〜１７ｄ上には、夫々一又は複数のアプリケーションが稼動可能であり、ネットワーク１０を介して、及び、アプリケーション切替部１３を含む切替サーバ１８を介して送信されるユーザからのアクセス要求を受け付け、該当する処理を行なう。
【００３７】
ここで、本番サーバ１６は、複数のアプリケーションが本番サーバ１６上のリソース（ＣＰＵ、メモリ、ディスク使用等）を共有して稼動している統合サーバである場合を想定している。即ち、図１に示される例では、一台の本番サーバ１６と、複数台（４台）のプレ本番サーバとの間でアプリケーションの稼働環境の切替を行なう構成である。しかしながら、本発明はこの構成に限られず、複数の本番サーバを有し、夫々の本番サーバ上に複数のアプリケーションがリソースを共有した状態で稼動し、当該複数台の本番サーバと複数台のプレ本番サーバとの間でアプリケーションの稼働環境の切替を行なう構成とすることも可能である。
【００３８】
本番サーバ１６上、及び、プレ本番サーバ１７ａ〜１７ｄ上におけるアプリケーション稼動時のソフトウェア構成の一例を階層構造図として図２に示す。
【００３９】
図２（ａ）において、本番サーバＯＳ上に、第１の稼動環境としてのＪａｖａ（登録商標）仮想環境ＪＶＭ１(JVM: Java Virtual Machine)が導入され、当該仮想環境ＪＶＭ１上でＪａｖａアプリケーションＡＰ１〜ＡＰ４が稼動している。仮想環境ＪＶＭ１は、本番サーバ上のリソース（ＣＰＵ、メモリ、ディスク使用等）を個々のアプリケーションＡＰ１〜ＡＰ４に要求に応じて割り当てるとともに、各アプリケーションのリソース使用を監視する監視ツールを備えている。言い換えると、各アプリケーションＡＰ１〜ＡＰ４は、夫々が本番サーバ上の共通のリソースを使用し、同一の仮想環境ＪＶＭ１（以降、適宜「本番環境」と称する）上で稼動している。
【００４０】
図２（ｂ）において、プレ本番サーバＯＳ上に、第２の稼働環境としてのＪａｖａ仮想環境ＪＶＭ２が導入され、当該仮想環境ＪＶＭ２上でＪａｖａアプリケーションＡＰ５が稼動している。仮想環境ＪＶＭ２は、プレ本番サーバ上のリソース（ＣＰＵ、メモリ、ディスク使用等）をアプリケーションＡＰ５に要求に応じて割り当てるとともに、アプリケーションＡＰ５のリソース使用を監視する監視ツールを備え、そのリソース使用量を監視および管理できるように構成されている。尚、仮想環境ＪＶＭ２（以降、適宜「プレ本番環境」と称する）は、アプリケーションＡＰ５のリソース使用状況を詳細に把握できるように、リソースの監視レベル（リソース情報の詳細度や監視頻度等）を本番サーバにおける仮想環境（第１の稼働環境）ＪＶＭ１よりも高く設定されていることが好ましい。
【００４１】
リソース情報取得部１１は、例えば、図２に示される場合において、第１の稼働環境上で稼動する個々のアプリケーションＡＰ１〜ＡＰ４のリソース使用量の情報を本番環境ＪＶＭ１の監視ツールを介して取得し、第２の稼働環境上で稼動する個々のアプリケーションＡＰ５のリソース使用量の情報をプレ本番環境ＪＶＭ２の監視ツールを介して取得する。より具体的には、例えば、監視ツールが、リソース使用量の情報を所定の監視頻度でプレ本番サーバのシステムログに記録する。リソース情報取得部１１は、当該システムログから該当アプリケーションのリソース使用量の情報を抜き出し、リソース監視部１２に渡す。
【００４２】
監視対象リソースがＣＰＵ使用時間の場合のシステムログの一例を図３に、監視対象リソースがメモリ使用量の場合のシステムログの一例を図４に示す。監視対象リソースがＣＰＵ使用時間の場合、図３に示されるように、例えば、ＣＰＵがアプリケーションの処理に要した時間（ユーザ時間）と、ＯＳの処理（ディスクアクセスなど）に要した時間（システム時間）との和で該当アプリケーションのＣＰＵ使用時間の多寡を判断することができる。一方、監視対象リソースがメモリの場合は、図４に示されるように、バッファに割り当てられているメモリの利用状況から該当アプリケーションのメモリ使用量の多寡を判断することができる。
【００４３】
リソース監視部１２は、リソース情報取得部１１が取得したリソース使用量の情報を分析し、少なくともプレ本番サーバ１７ａ〜１７ｄ上の第２の稼動環境上で稼動しているアプリケーションの夫々について、リソース使用量が当該アプリケーション毎に設定されている所定の閾値を超えたことがあるかを検出する。
【００４４】
アプリケーション切替部１３は、リソース監視部１２の検出結果に基づき、所定の第１稼動期間（例えば、直近の３ヶ月）中においてリソース使用量の任意の所定の第１設定期間（例えば、５分間）における統計値（例えば、平均値）が閾値以下であるアプリケーションの稼働環境を第２の稼働環境から第１の稼働環境に切り替える。即ち、本実施形態では、プレ本番サーバ１７ａ〜１７ｄ上の何れかのプレ本番環境ＪＶＭ２上で稼動していたアプリケーションは、そのリソース使用量の第１設定期間における統計値が上記閾値以下の状態での稼動を第１稼動期間中において維持したと判断される場合、当該アプリケーションの稼働環境が切り替えられ、本番サーバ１６上の本番環境ＪＶＭ１上で稼動される。
【００４５】
アクセス切替部１４は、ユーザからのネットワーク１０を介したアプリケーションへのアクセスを中継し、当該アプリケーションが第１の稼働環境上で稼働中の場合記第１の稼働環境へ、第２の稼働環境上で稼働中の場合記第２の稼働環境へ、ローカルネットワーク１０ｂを介してユーザからのアクセス要求を送信する。本実施形態では、アプリケーションが本番サーバ１６上の何れかの本番環境ＪＶＭ１上で稼動している場合は該当する本番環境ＪＶＭ１へ、プレ本番サーバ１７ａ〜１７ｄ上の何れかのプレ本番環境ＪＶＭ２上で稼動している場合は該当するプレ本番環境ＪＶＭ２へ、アクセス要求を送信する。尚、アクセス切替部１４は、本実施形態では本番サーバ及びプレ本番サーバとは別の切替サーバ１８内に設けられているが、必ずしもこの構成に限られるものではない。本番サーバ１６或いはプレ本番サーバ１７ａ〜１７ｄの何れかのサーバが切替サーバ１８を兼ねる構成も可能である。
【００４６】
通知部１５は、アプリケーション切替部１３がアプリケーションの稼働環境を第２の稼働環境から第１の稼働環境に切り替えた場合、当該稼働環境を切り替えて稼動させたアプリケーションの情報を、或いは、前記リソース使用量が前記閾値を超えたアプリケーションを検出した場合、当該検出されたアプリケーションの情報を、管理者（例えば、第１及び第２の稼働環境の管理者、或いは、アプリケーションの管理者）に通知する。この通知は、例えば、電子メールを介して行うことができる。また、通知されるアプリケーションの情報には、アプリケーションの名称のほか、切替時点、或いは検出時点でのリソース使用量の情報を含めることが好適である。当該情報に基づき、管理者は、現在稼動しているアプリケーションのリソース使用状況を正確に把握することができる。
【００４７】
通知部１５は、更に、リソース監視部１２の検出結果に基づき、第１の稼働環境上で稼働中に、所定の第２稼動期間（例えば、直近の３ヶ月）中において、リソース使用量の所定の第２設定期間（例えば、５分間）における統計値（例えば、平均値）が閾値を超えたことのあるアプリケーションの情報を管理者に通知する。即ち、本番環境ＪＶＭ１上で稼動中のアプリケーションは、そのリソース使用量の第２設定期間における統計値が上記閾値を超えた状態での稼動が第２稼動期間中において一回でも検出されると、リソースの濫用が発生したと判断され、管理者に通知される。当該通知に基づき、管理者は、アプリケーションの改善・改修を行うべきか、それとも原因究明のため再度プレ本番環境で稼動させるべきかの判断を行うことができる。
【００４８】
次に、本発明システム１によるアプリケーション切替制御の具体例、および本発明のアプリケーション切替方法について、図５に示されるフローチャートを参照して説明する。
【００４９】
先ず、アプリケーションを実装すると（ステップ＃２１）、アプリケーションが想定された動作を行うかどうかのテストを行う（ステップ＃２２）。
【００５０】
その後、第２の稼働環境においてアプリケーションを稼動させ（ステップ＃２３）、実際にユーザが利用する環境で負荷テスト、及びパフォーマンステストを行なう。即ち、プレ本番サーバ１７ａ〜１７ｄ上の何れかのプレ本番環境ＪＶＭ２上にアプリケーションＡＰ５をデプロイし、ネットワークを介してユーザからのアクセス要求に対し応答可能な状態にする。ここでは、プレ本番サーバ１７ａ上のプレ本番環境ＪＶＭ２上にアプリケーションＡＰ５が稼動しているとする。
【００５１】
リソース情報取得部１１は、プレ本番環境ＪＶＭ２（第２の稼働環境）上で稼働中の全ての監視対象アプリケーションについて、当該アプリケーションの個々のリソース使用量を、定期的（例えば、１分毎）に取得（ステップ＃２４）すると、リソース監視部１２は、リソース情報取得部１１が取得したリソース使用量の情報を分析し、リソース使用量が当該アプリケーション毎に設定されている所定の閾値を超えたことがあるかを検出する。ここでは、アプリケーションＡＰ５のリソース利用状況を、定期的（例えば、１分毎）にプレ本番環境ＪＶＭ２上の監視ツールを介して取得し、リソース使用量がアプリケーションＡＰ５に設定されている閾値を超えたことがあるかを検出する（ステップ＃２５）。閾値を超えてリソースを使用したアプリケーションが検出された場合、当該アプリケーションの情報を管理者に通知する。
【００５２】
アプリケーション切替部１３は、リソース監視部１２の検出結果に基づき、以前のアプリケーションＡＰ５のリソース利用状況を参照して、アプリケーションＡＰ５のリソース使用量の任意の所定の第１設定期間（例えば、５分）における平均値を求め、所定の第１稼動期間（例えば、直近の３ヶ月）中において、当該リソース使用量の平均値が上記閾値を維持した場合、アプリケーションＡＰ５の稼働環境を本番環境（第１の環境）に切り替える。即ち、本番サーバ１６上の仮想環境ＪＶＭ１上にアプリケーションＡＰ５をデプロイし、ネットワークを介してユーザからのアクセス要求に対し応答可能な状態にする（ステップ＃２６）。これにより、本番サーバ１６上の本番環境ＪＶＭ１上にはアプリケーションＡＰ１〜ＡＰ５が稼動される。このとき、アクセス切替部１４は、今までプレ本番サーバ１７ａのプレ本番環境ＪＶＭ２へ送信していたユーザからのアクセス要求を、本番サーバ１６上の本番環境ＪＶＭ１へ、ユーザからのアプリケーションへのアクセス要求の送信先を切り替える（ステップ＃２７）。
【００５３】
一方、上記ステップ＃２５において、第１稼動期間中、アプリケーションＡＰ５のリソース使用量の平均値が上記閾値を超えたことが一度でもあった場合、通知部１５は、プレ本番サーバ１７ａ上のプレ本番環境ＪＶＭ２上で稼働中のアプリケーションＡＰ５のリソース使用量の平均値が閾値を超え、リソースの濫用が発生したことを、リソース使用量の情報と併せて管理者に通知する（ステップ＃２８）とともに、アプリケーション切替部１３はアプリケーションＡＰ５の稼動を停止させる（ステップ＃２９）。管理者は、当該通知されたリソース使用量の情報に基づきアプリケーションＡＰ５を改修し（ステップ＃２１）、動作テストを行ない（ステップ＃２２）、プレ本番サーバ上で再度稼動させる（ステップ＃２３）。
【００５４】
上記ステップ＃２６において、アプリケーションＡＰ５の稼働環境が本番環境に切り替えられると、その後、リソース情報取得部１１は、本番サーバ１６の本番環境ＪＶＭ１上で稼働中のアプリケーションＡＰ５のリソース使用量の情報を、定期的（例えば、１分毎）に本番環境ＪＶＭ１上の監視ツールを介して取得し、リソース監視部１２は、リソース情報取得部１１が取得したリソース使用量の情報を分析し、リソース使用量がアプリケーションＡＰ５に設定されている所定の閾値を超えたことがあるかを検出する（ステップ＃３０）。アプリケーション切替部１３は、リソース監視部１２の検出結果に基づき、以前のアプリケーションＡＰ５のリソース利用状況を参照して、アプリケーションＡＰ５のリソース使用量の任意の所定の第２設定期間（例えば、５分）における平均値を求め、所定の第２稼動期間（例えば、直近の３ヶ月）中において、当該リソース使用量の平均値が上記閾値以下を維持した場合には、アプリケーションＡＰ５の本番環境ＪＶＭ２上の稼働を継続する。
【００５５】
一方、上記ステップ＃３０において、リソース使用量の平均値が上記閾値を超えたことが第２稼動期間中一度でもあった場合には、通知部１５は、本番サーバ１６上の本番環境ＪＶＭ１上で稼働中のアプリケーションＡＰ５のリソース使用量の平均値が閾値を超えたことを、リソース使用量の情報と併せて管理者に通知する。当該情報に基づき、管理者は、リソース濫用の原因特定が可能か判断し（ステップ＃３１）、原因を特定できる場合はアプリケーションＡＰ５の稼動を停止する（ステップ＃３２）。その後、アプリケーションＡＰ５を改修し（ステップ＃２１）、テストを行ない（ステップ＃２２）、プレ本番環境（第２の稼働環境）で再稼動させる。一方、リソース濫用の原因を特定できない場合、詳細なリソース利用状況を取得するため、稼働環境を本番環境ＪＶＭ１上からプレ本番サーバ１７ａ〜１７ｄ上の何れかのプレ本番環境ＪＶＭ２上に切り替えて稼動させる（ステップ＃２３）。併せて、アクセス切替部１４は、今まで本番サーバ１６上の本番環境ＪＶＭ１へ送信していたユーザからのアクセス要求を、切り替えられたアプリケーションが稼動しているプレ本番サーバ１７ａ〜１７ｄ上の何れかのプレ本番環境ＪＶＭ２へ、ユーザからのアプリケーションへのアクセス要求の送信先を切り替える。
【００５６】
上述の本発明システム１および本発明のアプリケーション切替方法により、アプリケーションの長期間稼動時における不具合がプレ本番環境（第２の稼働環境）でのアプリケーションの稼動時において検出され、本番環境（第１の稼働環境）上において、アプリケーションの長期間に渡る安定稼動が実現される。
【００５７】
尚、上述の実施形態は本発明の好適な実施形態の一例である。本発明の実施形態はこれに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形実施が可能である。
【００５８】
以下に、別実施形態について説明する。
【００５９】
〈１〉上記実施形態では、アプリケーション切替部１３が、プレ本番環境（第２の稼働環境）上で稼働中のアプリケーションのリソース使用量の第１設定期間における統計値としての平均値を算出し、当該平均値が第１稼動期間中に閾値以下を維持したアプリケーションを本番環境（第１の稼働環境）に切り替えて稼動させる構成であるが、稼働環境の切替の可否を判断するための統計値としては平均値に限られるものではない。例えば、当該統計値として、アプリケーションのリソース使用量の第１設定期間における最小値を算出することで、第１稼動期間中にリソース使用量が第１設定期間連続して閾値を超えることのなかったプレ本番環境で稼働中のアプリケーションを本番環境に切り替えて稼動させる構成も可能である。また、第１設定期間を第１稼動期間と同期間とし、当該統計値として第１稼動期間における最大値を算出することで、第１稼動期間中にリソース使用量が一度も閾値を超えることのなかったプレ本番環境で稼働中のアプリケーションを本番環境に切り替えて稼動させる構成も可能である。更に他の例としては、第１設定期間における平均値と併せて標準偏差を算出し、平均値と標準偏差の和を閾値と比較することで稼働環境の切替の可否を判断する構成も考えられる。稼働環境の切替判断に用いる統計値に応じて、当該統計値の算出対象期間である第１設定期間、及びリソース使用量の閾値を設定することができる。
【００６０】
同様に、上記実施形態では、アプリケーション切替部１３が、本番環境（第１の稼働環境）上で稼働中のアプリケーションのリソース使用量の第２設定期間における統計値としての平均値を算出することで、通知部１５が、当該平均値が第２稼動期間中に閾値を超えたことが一度でもあった本番環境で稼働中のアプリケーションの情報を管理者に通知しているが、当該通知の要否を判断するための統計値としては平均値に限られるものではない。第２設定期間における統計値として、例えば、最小値、最大値、或いは平均値と標準偏差の和などを用いる構成も可能である。
【００６１】
〈２〉上記実施形態では、リソース情報取得部１１が、仮想環境を介してアプリケーションのリソースの使用量の情報を取得し、アプリケーションの切替制御を行っているが、上記リソースの利用状況を取得する仕組みは、仮想環境上で動作する監視ツールに限られず、例えば、オペレーティングシステム上で動作するものを利用することができる。
【００６２】
〈３〉上記実施形態では、アプリケーションがＪａｖａプログラムであり、Ｊａｖａ仮想環境（ＪＶＭ）上で稼動する場合を例として説明したが、本発明は当該構成に限られるものではなく、例えばＣ言語で記述され、コンパイルされたアプリケーションに対して本発明を適用し、プレ本番環境（第２の稼働環境）と本番環境（第１の稼働環境）間でのアプリケーションの稼働環境の切替を行なうことができる。
【００６３】
〈４〉上記実施形態では、本番環境とプレ本番環境共に、仮想環境上でアプリケーションが稼動している場合を例として説明したが、本番環境については、例えばＣ言語で記述されコンパイルされたアプリケーションを、図６（ａ）のソフトウェア構造図に示されるように、仮想環境を介さず、本番サーバＯＳ上で稼動させても構わない。プレ本番環境についても同様であり、図６（ｂ）に示されるように、仮想環境を介さない稼働環境であっても、アプリケーション毎にリソースが管理される環境であれば、アプリケーション毎にリソース使用量を把握することができるので、本発明を適用することができる。ただし、仮想環境を介してアプリケーションを稼動させることが、リソースの濫用が発生した際の障害を当該アプリケーションが稼動している仮想環境の範囲内にとどめ、他のアプリケーションが稼動している別の仮想環境に影響を与えないようにできるため、好ましい。このため、プレ本番環境については、図６（ｃ）に示されるように、一のアプリケーション毎に一のプレ本番環境用の仮想環境ＶＭが構築されていることが、より一層好ましい。
【００６４】
〈５〉上記実施形態では、プレ本番サーバ１７ａ〜１７ｄ上に稼動しているアプリケーションの数は一サーバにつき一アプリケーションであったが、図７のソフトウェア構造図に示されるように、一サーバに複数のアプリケーションを、夫々別の仮想環境ＪＶＭ２、ＪＶＭ３上に稼動させても良い。
【００６５】
〈６〉また、上記実施形態では本番環境（第１の稼働環境）とプレ本番環境（第２の稼働環境）が、夫々異なるサーバ上で構築されている場合の例であるが、図８のソフトウェア構造図に示されるように、同一サーバ上に本番環境とプレ本番環境を同居して構築しても構わない。この場合、少なくともプレ本番環境については仮想環境上に構築する必要がある。
【産業上の利用可能性】
【００６６】
本発明は、複数のアプリケーションを一のサーバで稼動させ、リソースの共有を行なう統合サーバにおいて、アプリケーションを長期間安定稼動させるために利用可能である。
【符号の説明】
【００６７】
１：    本発明に係るアプリケーション切替システム
１０：    ネットワーク
１０ｂ：  ローカルネットワーク
１１：    リソース情報取得部
１２：    リソース監視部
１３：    アプリケーション切替部
１４：    アクセス切替部
１５：    通知部
１６：    本番サーバ（第１のサーバ）
１７ａ〜１７ｄ：  プレ本番サーバ（第２のサーバ）
１８：    切替サーバ
ＡＰ１〜ＡＰ６：  アプリケーション
ＪＶＭ１：  仮想環境（第１の稼働環境）
ＪＶＭ２，ＪＶＭ３，ＶＭ：  仮想環境（第２の稼働環境） 
【図１】
0005513940.tif 000002
【図２】
0005513940.tif 000003
【図３】
0005513940.tif 000004
【図４】
0005513940.tif 000005
【図５】
0005513940.tif 000006
【図６】
0005513940.tif 000007
【図７】
0005513940.tif 000008
【図８】
0005513940.tif 000009