(57)【要約】      （修正有）【課題】ヘルプデスクのオペレータの業務を効率化することができるコンピュータプログラムを提供する。【解決手段】監視装置は、サーバの公開アプリケーションを起動するための起動指令をサーバへ出力Ｐ１し、サーバは、公開アプリケーションを起動Ｐ２する。監視装置は、サーバから実行画面Ｄ１〜Ｄｓを所定時間間隔で繰り返し取得するＰ４−１〜Ｐ４−Ｓ。監視装置は、画面キャプチャと正常画面及び異常画面とを比較することにより、サーバが正常であるか異常であるかを判定するＰ６。【選択図】図３
2019117456.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、所定のアプリケーションが動作する監視対象装置の動作状態を監視させるためのコンピュータプログラムであって、
コンピュータに、
前記アプリケーションを起動するための起動指令を前記監視対象装置へ出力する処理と、
前記監視対象装置からの応答情報を取得する処理と、
前記応答情報に基づいて、前記監視対象装置の正常又は異常を判定する処理と
を実行させるコンピュータプログラム。
【請求項２】
コンピュータに、
前記監視対象装置が異常であると判定した場合、前記監視対象装置を非公開にするための非公開指令を前記監視対象装置へ出力する処理を実行させる請求項１に記載のコンピュータプログラム。
【請求項３】
コンピュータに、
前記監視対象装置から前記アプリケーションの実行に応じて表示される実行画面データを取得する処理と、
取得した実行画面データに基づいて、前記監視対象装置の正常又は異常を判定する処理と
を実行させる請求項１又は請求項２に記載のコンピュータプログラム。
【請求項４】
コンピュータに、
前記実行画面データ、前記アプリケーションの正常時の正常画面データ及び異常時の異常画面データに基づいて、前記監視対象装置の正常又は異常を判定する処理を実行させる請求項３に記載のコンピュータプログラム。
【請求項５】
コンピュータに、
前記アプリケーションの起動時から、前記アプリケーションの実行に応じて表示される実行画面データを所定時間間隔で繰り返し取得する処理と、
前記実行画面データの取得時点毎に、前記監視対象装置の正常又は異常を判定する処理と
を実行させる請求項３又は請求項４に記載のコンピュータプログラム。
【請求項６】
コンピュータに、
取得した前記実行画面データを記録する処理を実行させる請求項３から請求項５のいずれか一項に記載のコンピュータプログラム。
【請求項７】
コンピュータに、
前記アプリケーションを起動するための起動指令を複数の監視対象装置へ出力する処理と、
前記起動指令が出力された前記複数の監視対象装置それぞれの前記アプリケーションを識別する識別情報を取得する処理と、
前記複数の監視対象装置から取得した実行画面データの中から、一の識別情報で識別されるアプリケーションの実行画面データを抽出する処理と、
抽出した実行画面データに基づいて、前記一の識別情報に係る監視対象装置の正常又は異常を判定する処理と
を実行させる請求項３から請求項６のいずれか一項に記載のコンピュータプログラム。
【請求項８】
コンピュータに、
前記アプリケーションの起動時から、前記監視対象装置が正常であると判定した時点までの時間を算出する処理と、
算出した時間が所定の閾値時間以上である場合、前記監視対象装置の応答時間不良と判定する処理と
を実行させる請求項１から請求項７のいずれか一項に記載のコンピュータプログラム。
【請求項９】
コンピュータに、
前記監視対象装置から前記アプリケーションの起動完了を示す起動完了情報を取得する処理と、
前記起動完了情報の有無に基づいて、前記監視対象装置の正常又は異常を判定する処理と
を実行させる請求項１に記載のコンピュータプログラム。
【請求項１０】
コンピュータに、
前記監視対象装置から前記アプリケーションの起動時点から起動完了時点までの経過時間を取得する処理と、
取得した経過時間が所定の閾値時間以上である場合、前記監視対象装置の応答時間不良と判定する処理と
を実行させる請求項９に記載のコンピュータプログラム。
【請求項１１】
コンピュータに、
前記監視対象装置の正常又は異常の判定結果を外部へ通知する処理を実行させる請求項１から請求項１０のいずれか一項に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムに関する。
【背景技術】
【０００２】
オペレータの業務には、大量のデータ入力、転記作業などを必要とする業務があり、このような業務の効率化、自動化が望まれている。非特許文献１には、ＲＰＡ（Robotic Process Automation）ソリューションの例として、オペレータが行う業務で使用するソフトの操作手順をシナリオとして学習し、オペレータの業務を自動化する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【非特許文献１】ＮＴＴデータのＲＰＡソリューション  Windows操作ロボット『WinActor』のご紹介、［online］、［平成２９年９月１５日検索］、インターネット＜URL:http://prexi.jp/pdf/WinActorLink.pdf
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一方で、オペレータの業務には、単に大量のデータの入力操作や転記作業のみならず、様々な業務が含まれる。例えば、多数のサーバを設置し、多くのクライアント（ユーザ）にメールや各種アプリケーションなどのサービスを提供するようなシステムの場合、ヘルプデスクのオペレータは、多数のサーバが正常に稼働するか否かの点検を手動で行う必要がある。しかし、非特許文献１の技術にあっては、投入データを準備して実行ボタンを押すだけでオペレータによる端末操作をロボットによる自動操作に置き換えることができるものの、前述のようなヘルプデスクのオペレータの業務を効率化することはできない。
【０００５】
本発明は、斯かる事情に鑑みてなされたものであり、ヘルプデスクのオペレータの業務を効率化することができるコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の実施の形態に係るコンピュータプログラムは、コンピュータに、所定のアプリケーションが動作する監視対象装置の動作状態を監視させるためのコンピュータプログラムであって、コンピュータに、前記アプリケーションを起動するための起動指令を前記監視対象装置へ出力する処理と、前記監視対象装置からの応答情報を取得する処理と、前記応答情報に基づいて、前記監視対象装置の正常又は異常を判定する処理とを実行させる。
【発明の効果】
【０００７】
本発明によれば、ヘルプデスクのオペレータの業務を効率化することができる。
【図面の簡単な説明】
【０００８】
【図１】本実施の形態の監視システムの構成の一例を示す模式図である。
【図２】本実施の形態の監視装置の構成の一例を示すブロック図である。
【図３】本実施の形態の監視装置によるサーバの監視方法の一例を示す説明図である。
【図４】サーバが正常時の実行画面の一例を示す模式図である。
【図５】サーバが異常時の実行画面の一例を示す模式図である。
【図６】プロセスＩＤと実行画面との対応関係の一例を示す説明図である。
【図７】フラグファイルによるサーバの正常・異常の判定方法の一例を示す説明図である。
【図８】監視装置によるサーバの正常・異常の判定結果の表示の一例を示す模式図である。
【図９】本実施の形態の処理部の処理手順の一例を示すフローチャートである。
【図１０】本実施の形態の処理部の処理手順の一例を示すフローチャートである。
【図１１】本実施の形態の処理部の処理手順の一例を示すフローチャートである。
【図１２】本実施の形態の監視装置によるサーバ上のプログラムの監視方法の一例を示す説明図である。
【図１３】サーバ上のプログラムの実行画面の一例を示す模式図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態を図面に基づいて説明する。図１は本実施の形態の監視システムの構成の一例を示す模式図である。図１に示すように、監視対象装置としての複数（例えば、５０台、１００台など）のサーバ１００（便宜上、サーバＬＳ１、ＬＳ２、…ＬＳｎの如く区別する）と、ユーザが使用する複数のクライアントＰＣ２００（便宜上、クライアントＰＣ１、ＰＣ２、…ＰＣｍの如く区別する）とは、専用回線１を介して接続されている各サーバ１００には、公開アプリケーション（便宜上、ＡＰ１、ＡＰ２、…ＡＰｎの如く区別する）がインストールされている。なお、図１の例では、一つのサーバ１００に一つの公開アプリケーションが図示されているが、公開アプリケーションの数は一つに限定されない。
【００１０】
各サーバ１００は、リモートアプリケーションの形でユーザにメール、インターネット閲覧及びその他のサービスを提供している。各サーバ１００には、通信回線２を介して、本実施の形態の監視装置５０が接続されている。監視装置５０には、通信回線３を介してメールサーバ３００及びヘルプデスクサーバ４００が接続されている。なお、監視装置５０がヘルプデスク内に設置されている場合、ヘルプデスクサーバ４００を具備しなくてもよい。
【００１１】
本実施の形態の監視装置５０は、ヘルプデスクのオペレータによる手動操作に代えて、各サーバ１００上の公開アプリケーションが使用できるか、すなわち、サーバ１００の正常・異常を自動的に（オペレータの操作又は介入を必要とすることなく）判定し、異常と判定したサーバ１００に対して、クライアントＰＣ２００からのアクセスができないように自動的に非公開状態にする。
【００１２】
図２は本実施の形態の監視装置５０の構成の一例を示すブロック図である。監視装置５０は、第１通信部５１、第２通信部５２、記憶部５３、処理部５４、表示部５５、ローカルドライブ５６などを備える。処理部５４は、入力部５４１、出力部５４２、画面キャプチャ部５４３、判定部５４４、抽出部５４５、算出部５４６を備える。
【００１３】
第１通信部５１は、通信回線２を介して各サーバ１００との間の通信機能を有する。より具体的には、第１通信部５１は、所定の通信プロトコルにより、各サーバ１００上で実行される公開アプリケーションにアクセスすることができる。すなわち、各サーバ１００上で実行される公開アプリケーションは、監視装置５０に配信される。また、第１通信部５１を介して、処理部５４は、キーボード・マウスなどの操作信号を各サーバ１００へ送信することができる。また、第１通信部５１を介して、処理部５４は、公開アプリケーションの実行画面データを取得することができる。
【００１４】
第１通信部５１は、各サーバ１００が送信した情報を受信すると、受信した情報を記憶部５３に記憶する。
【００１５】
第２通信部５２は、通信回線３を介してメールサーバ３００及びヘルプデスクサーバ４００との間の通信機能を有する。
【００１６】
表示部５５は、液晶表示パネル又は有機ＥＬ表示パネルを備え、表示パネルに画像を表示する処理を行う。
【００１７】
ローカルドライブ５６は、各サーバ１００の公開アプリケーション上でアクセスすることができ、各サーバ１００は、後述のフラグファイルをローカルドライブ５６に書き込むことができる。
【００１８】
処理部５４は、ハードウェアで構成することもでき、あるいはソフトウェアで構成することもできる。例えば、処理部５４は、ＣＰＵ（プロセッサ）、ＧＰＵ（グラフィクス・プロセッシング・ユニット）、ＲＡＭなどを備えた汎用コンピュータを用いて実現することもできる。処理部５４が行う処理の手順を定めたコンピュータプログラムをコンピュータに備えられたＲＡＭにロードし、コンピュータプログラムをＣＰＵ（プロセッサ）で実行することにより、コンピュータ上で処理部５４を実現することができる。
【００１９】
次に、処理部５４の処理について具体的に説明する。
【００２０】
図３は本実施の形態の監視装置５０によるサーバ１００の監視方法の一例を示す説明図である。以下、図３に示すように、処理Ｐ１〜Ｐ８の順に説明する。なお、図３では、便宜上、一つのサーバだけを図示しているが、図３に示す処理は、監視装置５０と全てのサーバ１００との間で行われる。
【００２１】
処理Ｐ１では、出力部５４２は、サーバ１０の公開アプリケーションを起動するための起動指令を当該サーバ１００へ出力する。
【００２２】
処理Ｐ２では、サーバ１００は、公開アプリケーションを起動する。
【００２３】
処理Ｐ３では、サーバ１００は、起動した公開アプリケーションを識別するプロセスＩＤを監視装置５０へ送信する。プロセスＩＤは、公開アプリケーションを起動したサーバを識別することもできる。入力部５４１は、サーバ１００が送信したプロセスＩＤを取得する。
【００２４】
処理Ｐ４では、サーバ１００は、起動した公開アプリケーションの実行に応じて表示される実行画面（実行画面データ）を監視装置５０へ送信する。なお、実行画面は、サーバ１００が送信する応答情報の一例である。
【００２５】
具体的には、処理部５４は、サーバ１００が公開アプリケーションを起動した場合、当該アプリケーションの起動時から、アプリケーションの実行に応じて表示される実行画面を所定時間間隔で繰り返し送信するように要求する。所定時間は、例えば、２秒とすることができるが、２秒に限定されない。これにより、入力部５４１は、サーバ１００から実行画面を所定時間間隔で繰り返し取得することができる。
【００２６】
図３の例では、入力部５４１は、処理Ｐ４−１で実行画面Ｄ１を取得し、処理Ｐ４−２で実行画面Ｄ２を取得し、以下、同様にして、処理Ｐ４−ｓで実行画面Ｄｓを取得することができる。また、入力部５４１は、各サーバ１００が送信した実行画面を取得する。
【００２７】
処理Ｐ５では、抽出部５４５は、各サーバ１００から取得した実行画面の中から、プロセスＩＤで識別されるアプリケーションの実行画面を抽出する。これにより、プロセスＩＤ毎に実行画面を層別することができるので、処理部５４は、全てのサーバ１００からほぼ同時期に複数の実行画面が送信されたとしても、いずれの実行画面がどのサーバ１００から送信されたものであるかを正確に把握することができる。
【００２８】
画面キャプチャ部５４３は、取得したプロセスＩＤに基づいて、実行画面Ｄ１〜Ｄｓを順番に表示画面上の最前面（最前列）に切り替えて画面キャプチャを取得する。表示画面上で実行画面の一部が重なるように表示された場合、最前面（最前列）の実行画面以外の実行画面の一部は、最前面（最前列）の実行画面によって覆われる。実行画面Ｄ１〜Ｄｓを順番に表示画面上の最前面（最前列）に切り替えて画面キャプチャを取得することにより、実行画面Ｄ１〜Ｄｓの全体を取得することができる。
【００２９】
処理Ｐ６では、判定部５４４は、画面キャプチャと正常画面及び異常画面とを比較することにより、サーバ１００が正常であるか異常であるかを判定する。正常画面は、公開アプリケーションが起動し、正常に起動を完了したときに表示される画面であり、予め公開アプリケーション毎に正常画面を準備しておき、記憶部５３に記憶しておくことができる。異常画面は、公開アプリケーションが起動し、正常に起動を完了しないときに表示される画面であり、予め公開アプリケーション毎に異常画面を準備しておき、記憶部５３に記憶しておくことができる。
【００３０】
画面キャプチャと正常画面及び異常画面との比較は、例えば、画像のパターンマッチング手法を用いることができる。また、正常画面データ及び異常画面データを訓練データ（学習データ）として機械学習させた分類器を用いて、サーバ１００の正常・異常を判定することもできる。なお、画面キャプチャと正常画面及び異常画面との比較は、画面全体を比較してもよく、画面の一部を比較してもよい。
【００３１】
処理Ｐ７では、処理部５４は、サーバ１００が異常であると判定した場合、当該サーバ１００を非公開にするための非公開指令を、出力部５４２を介して当該サーバ１００へ出力する。より具体的には、処理部５４は、サーバ１００を非公開にするための操作を行う。非公開とは、クライアントＰＣ２００からサーバ１００が非公開となることであり、クライアントＰＣ２００からサーバ１００へアクセスすることができなくなる。サーバ１００を非公開にする操作は、例えば、サーバ１００を非公開にするコマンドラインを呼び出すための実行ファイルを実行すればよい。なお、当該サーバ１００の動作を停止させることもできる。
【００３２】
処理Ｐ８では、処理部５４は、各サーバ１００が正常であるか異常であるかの判定結果を外部に通知する。外部は、例えば、メールサーバ３００及びヘルプデスクサーバ４００とすることができる。判定結果は、正常又は異常の別の他、各サーバ１００の実行画面などの詳細情報を含む。判定結果がメールサーバ３００に通知されると、メールサーバ３００は、予め定められた宛先（例えば、管理者又はヘルプデスクの担当者の端末装置、スマートフォンなど）に、判定結果を通知するメールを送信する。
【００３３】
上述の各処理のうち、監視装置とサーバとの間の処理は、例えば、各サーバ１００が提供するＪＲＥ（Java（登録商標） Runtime Environment：Java仮想マシン、プログラミングインタフェース（ＡＰＩ）などを含む)環境において、キーボード操作及びマウス操作などの操作を特定したJavaプログラムを実行することにより、実現することができる。
【００３４】
図４はサーバ１００が正常時の実行画面の一例を示す模式図である。なお、図４では、便宜上、４つの実行画面を表示しているが、例えば、２秒間隔で実行画面を取得した場合、サーバ１００の公開アプリケーションの起動が完了するまでの時間が３０秒の場合、１５枚程度の実行画面を取得することができ、また、起動が完了するまでの時間が６０秒の場合、３０枚程度の実行画面を取得することができる。
【００３５】
図４Ａでは、公開アプリケーションの起動が開始され、進捗状況を示すバーが表示され始めている。図４Ｂでは、時間の経過とともに、バーの長さが長くなり、起動が順調に行われていることを示す。図４Ｃでは、さらに、バーの長さが長くなり、起動が順調に行われていることを示す。図４Ｄでは、起動が正常に完了したことを示す正常画面（図４Ｄの例では、ログイン画面）が表示されている。
【００３６】
サーバ１００が正常であるかの判定に用いる正常画面は、図４Ｄに示すような画面の全部又は一部とすることができる。
【００３７】
図５はサーバ１００が異常時の実行画面の一例を示す模式図である。なお、図５では、便宜上、４つの実行画面を表示しているが、例えば、２秒間隔で実行画面を取得した場合、サーバ１００の公開アプリケーションの起動時から異常画面が表示されるまでの時間に応じて、取得する実行画面の数は異なる。
【００３８】
図５Ａでは、公開アプリケーションの起動が開始され、進捗状況を示すバーが表示され始めている。図５Ｂでは、時間が経過しても、バーの長さが変わらない。図５Ｃでは、さらに、時間が経過しているにも関わらず、バーの長さがほとんど変わらないので、サーバ１００が異常である予兆が現れていると言える。図５Ｄでは、起動が失敗し、サーバ１００が異常であることを示す異常画面（図５Ｄの例では、起動が完了しないことを通知する画面）が表示されている。
【００３９】
サーバ１００が異常であるかの判定に用いる異常画面は、図５Ｄに示すような画面の全部又は一部とすることができる。
【００４０】
上述のように、判定部５４４は、サーバ１００からの応答情報に基づいて、サーバ１００の正常又は異常を自動的に判定することができる。多数（例えば、５０台など）のサーバ１００の公開アプリケーションが正常に起動して使用できるかを、ヘルプデスクのオペレータが手動操作で確認する必要がなくなるので、ヘルプデスクのオペレータの業務を効率化することができる。
【００４１】
また、処理部５４は、サーバ１００が異常であると判定された場合、当該サーバ１００を非公開にするための非公開指令をサーバ１００へ出力する。これにより、サーバ１００は非公開とされ、クライアントＰＣ２００から認識することができず、サーバ１００にアクセスできなくなるので、ユーザが正常に動作しないサーバへアクセスすることを防止してユーザの利便性を向上させることができる。また、サーバを非公開とするためにオペレータの介入が不要であり、オペレータの業務をさらに効率化することができる。
【００４２】
図６はプロセスＩＤと実行画面との対応関係の一例を示す説明図である。サーバ１００は、起動した公開アプリケーションを識別するプロセスＩＤを監視装置５０へ送信する。プロセスＩＤは、公開アプリケーションを起動したサーバを識別することもできる。処理部５４は、サーバ１００が送信したプロセスＩＤを取得する。また、処理部５４は、各サーバ１００から実行画面を所定時間間隔で繰り返し取得する。
【００４３】
ここで、抽出部５４５は、図６に示すように、各サーバ１００から取得した実行画面の中から、プロセスＩＤで識別されるアプリケーションの実行画面を抽出する。図６の例では、サーバＬＳ１の公開アプリケーションが起動されたときの実行画面Ｄ１１、Ｄ１２、…Ｄ１ｓが、プロセスＩＤ１によって対応付けられている。同様に、サーバＬＳ２の公開アプリケーションが起動されたときの実行画面Ｄ２１、Ｄ２２、…Ｄ２ｓが、プロセスＩＤ２によって対応付けられている。以下、同様に、サーバＬＳｎの公開アプリケーションが起動されたときの実行画面Ｄｎ１、Ｄｎ２、…Ｄｎｓが、プロセスＩＤｎによって対応付けられている。
【００４４】
これにより、プロセスＩＤ毎に実行画面を層別することができるので、処理部５４は、全てのサーバ１００からほぼ同時期に複数の実行画面が送信されたとしても、いずれの実行画面がどのサーバ１００から送信されたものであるかを正確に把握することができる。
【００４５】
上述の例では、サーバ１００が送信する応答情報の一例として実行画面について説明したが、応答情報は実行画面に限定されない。以下では、応答情報の他の例としてフラグファイルについて説明する。
【００４６】
図７はフラグファイルによるサーバ１００の正常・異常の判定方法の一例を示す説明図である。各サーバ１００は、公開アプリケーションの起動が正常に完了した場合、フラグファイルを監視装置５０のローカルドライブ５６に書き込む。また、各サーバ１００は、公開アプリケーションの起動が正常に完了しなかった場合、フラグファイルの書き込みを行わない。これにより、処理部５４は、ローカルドライブ５６のフラグファイルを参照することにより、各サーバ１００が正常であるか異常であるかを判定することができる。
【００４７】
図７に示すように、フラグファイルは、サーバ１００のホスト名、及び公開アプリケーションが起動してから起動が正常に完了するまでの時間を有する。サーバＬＳ１に対しては、フラグファイルＦ１がローカルドライブ５６に記録されているので、判定部５４４は、サーバＬＳ１は正常であると判定することができる。同様に、サーバＬＳ２に対しては、フラグファイルＦ２がローカルドライブ５６に記録されているので、判定部５４４は、サーバＬＳ２は正常であると判定することができる。
【００４８】
しかし、サーバＬＳ３に対しては、フラグファイルがローカルドライブ５６に記録されていないので、判定部５４４は、サーバＬＳ３は異常であると判定することができる。他のサーバについても同様である。
【００４９】
上述のように、入力部５４１は、サーバ１００から公開アプリケーションの起動完了を示す起動完了情報（フラグファイル）を取得する。判定部５４４は、起動完了情報の有無に基づいて、サーバ１００の正常又は異常を判定することができる。実行画面のデータ量よりもフラグファイルのデータ量が小さいので、監視装置５０と各サーバ１００との間の通信回線２の通信負荷を軽減することができる。
【００５０】
また、入力部５４１は、サーバ１００から、公開アプリケーションの起動時点から起動完了時点までの経過時間を取得する。判定部５４４は、取得した経過時間が所定の閾値時間以上である場合、サーバ１００の応答時間不良と判定することができる。処理部５４は、サーバ１００の応答時間不良を外部へ通知することができる。これにより、サーバ１００の正常・異常だけでなく、ユーザに対するサービス低下の要因となり得る事象を早いタイミングで察知することができる。
【００５１】
図８は監視装置５０によるサーバ１００の正常・異常の判定結果の表示の一例を示す模式図である。図８に示す表示例は、監視装置５０の表示部５５に表示してもよく、ヘルプデスクサーバ４００の表示画面に表示してもよい。図８Ａに示すように、判定結果は、各サーバＬＳ１、ＬＳ２、ＬＳ３、…毎に正常であるか異常であるかを対応付けて表示している。図８Ａの例では、サーバＬＳ４が異常であることを示す。また、判定結果が異常である場合、詳細情報を表示するための詳細ボタン３０が、サーバに対応付けて表示されている。オペレータが、詳細ボタン３０を操作（例えば、タッチ操作）すると、図８Ｂに示す詳細情報を表示することができる。
【００５２】
図８Ｂに示すように、詳細情報は、異常と判定されたサーバＬＳ４の実行画面Ｄ４１、Ｄ４２、Ｄ４３、Ｄ４４、…が時系列に配置されて表示されている。時間ボタン３１を操作することにより、最前面（最前列）に表示する実行画面を順番に入れ替えることができ、オペレータは、所望の時点の実行画面を最前面（最前列）に表示することができる。これにより、オペレータは、サーバ１００がどのような状態で以上となったかを確認することができる。
【００５３】
図９、図１０及び図１１は本実施の形態の処理部５４の処理手順の一例を示すフローチャートである。処理部５４は、監視タイミングであるか否かを判定する（Ｓ１１）。監視タイミングは、例えば、月曜日の午前６時（週に一度）、あるいはサーバ１００を含む業務システムの保守点検終了時点、業務システムの変更又は追加などの時点とすることができる。監視タイミングは、タイマー等を用いて判定することができる。
【００５４】
監視タイミングでない場合（Ｓ１１でＮＯ）、処理部５４は、ステップＳ１１の処理を続ける。監視タイミングである場合（Ｓ１１でＹＥＳ）、処理部５４は、公開アプリケーションの起動指令を各サーバ１００へ出力する（Ｓ１２）。処理部５４は、各サーバ１００の公開アプリケーションのプロセスＩＤを取得し（Ｓ１３）、各サーバ１００の公開アプリケーションの実行画面を所定の時間間隔で繰り返し取得する（Ｓ１４）。
【００５５】
処理部５４は、取得したプロセスＩＤ、実行画面を記憶部５３に記憶する（Ｓ１５）。処理部５４は、一のプロセスＩＤを選択し（Ｓ１６）、選択したプロセスＩＤに係るすべての実行画面を抽出する（Ｓ１７）。
【００５６】
処理部５４は、抽出した一のプロセスに係る複数の実行画面に基づいて、画面キャプチャを時系列に取得し（Ｓ１８）、取得した画面キャプチャを順番（時間の経過の順）に正常画面及び異常画面と比較する（Ｓ１９）。
【００５７】
処理部５４は、画面キャプチャが異常画面と一致するか否かを判定し（Ｓ２０）、異常画面と一致する場合（Ｓ２０でＹＥＳ）、当該プロセスＩＤに係るサーバ１００は異常であると判定し（Ｓ２１）、後述のステップＳ２６の処理を行う。
【００５８】
画面キャプチャが異常画面と一致しない場合（Ｓ２０でＮＯ）、処理部５４は、画面キャプチャが正常画面と一致するか否かを判定し（Ｓ２２）、正常画面と一致しない場合（Ｓ２２でＮＯ）、ステップＳ２１の処理を行う。
【００５９】
画面キャプチャが正常画面と一致する場合（Ｓ２２でＹＥＳ）、処理部５４は、当該プロセスＩＤに係るサーバ１００は正常であると判定し（Ｓ２３）、当該プロセスＩＤに係る公開アプリケーションの起動時から正常画面と一致する実行画面の取得時点までの時間が閾値時間以上であるか否かを判定する（Ｓ２４）。
【００６０】
より具体的には、算出部５４６は、アプリケーションの起動時から、サーバ１００が正常であると判定した時点までの時間を算出する。サーバ１００が正常であると判定した時点とは、例えば、実行画面が正常であると最初に判定された場合の当該実行画面がサーバ１００から監視装置５０へ転送された時点とすることができる。
【００６１】
起動時から取得時点までの時間が閾値時間以上である場合（Ｓ２４でＹＥＳ）、処理部５４は、サーバ１００の応答時間は遅いと判定し（Ｓ２５）、後述のステップＳ２６の処理を行う。すなわち、判定部５４４は、算出部５４６で算出した時間が所定の閾値時間以上である場合、サーバ１００の応答時間不良であると判定することができる。閾値時間は、例えば、通常の応答時間の２倍、３倍などとすることができる。
【００６２】
起動時から取得時点までの時間が閾値時間以上でない場合（Ｓ２４でＮＯ）、処理部５４は、他のプロセスＩＤの有無を判定する（Ｓ２６）。他のプロセスＩＤがある場合（Ｓ２６でＹＥＳ）、処理部５４は、ステップＳ１６以降の処理を続ける。
【００６３】
他のプロセスＩＤがない場合（Ｓ２６でＮＯ）、処理部５４は、異常と判定したサーバ１００に対して非公開操作を行い（Ｓ２７）、判定結果を外部（例えば、メールサーバ３００、ヘルプデスクサーバ４００など）へ通知し（Ｓ２８）、処理を終了する。判定結果は、サーバ１００の正常・異常の他、応答時間の不良も含む。これにより、サーバ１００の正常・異常だけでなく、ユーザに対するサービス低下の要因となり得る事象を早いタイミングで察知することができる。
【００６４】
上述の例では監視装置５０は、公開アプリケーションの起動時から、当該アプリケーションの実行に応じて表示される実行画面を所定時間（例えば、２秒）間隔で繰り返し取得し、実行画面の取得時点毎に、サーバ１００の正常又は異常を判定するので、公開アプリケーションの起動中で発生する異常（具体的に公開アプリケーションの起動中のどのステップにおける異常であるか等）を確実に捉えることができる。
【００６５】
上述の例では、監視装置５０が取得した各サーバ１００の公開アプリケーションの実行画面データを記憶部５３に記憶（記録）するので、サーバ１００の異常の原因を特定するための詳細情報として使用することができ、原因特定に役立てることができる。
【００６６】
上述の例では、各サーバ１００の公開アプリケーションを起動して、公開アプリケーションが正しく起動されて使用できるか、すなわち、サーバ１００が正常であるか否かを判定する構成であったが、これに限定されるものではない。例えば、サーバ１００が正常に起動完了した場合でも、サーバ１００が提供するプログラムが正常であるか異常であるかを自動で判定することもできる。
【００６７】
図１２は本実施の形態の監視装置５０によるサーバ１００上のプログラムの監視方法の一例を示す説明図であり、図１３はサーバ１００上のプログラムの実行画面の一例を示す模式図である。便宜上、処理の主体を処理部５４として説明する。以下の処理は、例えば、キーボード操作及びマウス操作などの操作を特定したJavaプログラムを各サーバ１００が提供するＪＲＥ環境において実行することにより行われる。また、各サーバ１００は、プログラムの実行画面を監視装置５０へ転送する。
【００６８】
処理部５４は、Windows画面のスタートボタンの位置でマウスを左クリックする操作信号をサーバ１００へ送信する（Ｓ１０１）。これにより、監視装置５０は、図１３Ａに示すスタート画面を取得する。
【００６９】
処理部５４は、スタート画面の「プログラムとファイルの検索」１１の位置でプログラム名を入力する操作信号をサーバ１００へ送信する（Ｓ１０２）。これにより、監視装置５０は、図１３Ｂに示すプログラム画面を取得する。
【００７０】
処理部５４は、プログラム画面のメニューバーの「ファイル（Ｆ）」１２の位置で左クリックする操作信号をサーバ１００へ送信する（Ｓ１０３）。これにより、監視装置５０は、図１３Ｃに示すようなポップアップした選択画面１３を取得する。
【００７１】
処理部５４は、選択画面の「印刷」１４の位置で左クリックする操作信号をサーバ１００へ送信する（Ｓ１０４）。これにより、監視装置５０は、図１３Ｄに示すような印刷画面を取得する。
【００７２】
処理部５４は、印刷画面の印刷ボタン１５の位置で左クリックする操作信号をサーバ１００へ送信する（Ｓ１０５）。これにより、印刷が実行される。
【００７３】
サーバ１００上のプログラムが正常である場合には、図１３Ａから図１３Ｄに例示したような実行画面を順番に取得することができる。このような実行画面又は実行画面の画面キャプチャと正常画面及び異常画面とを比較することにより、サーバ１００上のプログラムの正常・異常を判定することができる。
【００７４】
なお、図１３では、便宜上、４つの実行画面を例示したが、実行画面の数はこれに限定されない。また、図１３のような実行画面も記憶部５３に記憶することができ、実行画面が異常と判定された場合に、異常の原因を特定するためのログとして用いることができる。
【００７５】
上述の実施の形態において、公開アプリケーションの起動時点から起動が完了時点（起動が正常に完了したことを示す実行画面が取得された時点）までの応答時間が、比較的長いサーバに対しては、実行画面の取得間隔を、例えば、２秒から１秒への如く短くすることができる。これにより、実行画面をさらに細かく取得して記録することができ、応答時間が比較的長い原因を特定するための情報量を増やすことができ、原因特定に役立てることができる。
【００７６】
上述の実施の形態において、サーバ１００が異常であると判定された場合、監視装置５０は、当該サーバ１００を非公開とする構成であったが、これに限定されるものではない。例えば、監視装置５０が、サーバ１００が異常であると判定した場合、当該サーバ１００が異常であることを、例えば、ヘルプデスクのオペレータに通知するようにし、オペレータが当該サーバ１００を非公開とする操作を行ってもよい。この場合でも、オペレータが、多くのサーバ１００それぞれの公開アプリケーションを一つずつ起動し、実行画面を監視する必要がないので、オペレータの労力を軽減することができる。
【００７７】
本実施の形態のコンピュータプログラムは、コンピュータに、所定のアプリケーションが動作する監視対象装置の動作状態を監視させるためのコンピュータプログラムであって、コンピュータに、前記アプリケーションを起動するための起動指令を前記監視対象装置へ出力する処理と、前記監視対象装置からの応答情報を取得する処理と、前記応答情報に基づいて、前記監視対象装置の正常又は異常を判定する処理とを実行させる。
【００７８】
本実施の形態のコンピュータプログラムは、コンピュータに、前記監視対象装置が異常であると判定した場合、前記監視対象装置を非公開にするための非公開指令を前記監視対象装置へ出力する処理を実行させる。
【００７９】
本実施の形態のコンピュータプログラムは、コンピュータに、前記監視対象装置から前記アプリケーションの実行に応じて表示される実行画面データを取得する処理と、取得した実行画面データに基づいて、前記監視対象装置の正常又は異常を判定する処理とを実行させる。
【００８０】
本実施の形態のコンピュータプログラムは、コンピュータに、前記実行画面データ、前記アプリケーションの正常時の正常画面データ及び異常時の異常画面データに基づいて、前記監視対象装置の正常又は異常を判定する処理を実行させる。
【００８１】
本実施の形態のコンピュータプログラムは、コンピュータに、前記アプリケーションの起動時から、前記アプリケーションの実行に応じて表示される実行画面データを所定時間間隔で繰り返し取得する処理と、前記実行画面データの取得時点毎に、前記監視対象装置の正常又は異常を判定する処理とを実行させる。
【００８２】
本実施の形態のコンピュータプログラムは、コンピュータに、取得した前記実行画面データを記録する処理を実行させる。
【００８３】
本実施の形態のコンピュータプログラムは、コンピュータに、前記アプリケーションを起動するための起動指令を複数の監視対象装置へ出力する処理と、前記起動指令が出力された前記複数の監視対象装置それぞれの前記アプリケーションを識別する識別情報を取得する処理と、前記複数の監視対象装置から取得した実行画面データの中から、一の識別情報で識別されるアプリケーションの実行画面データを抽出する処理と、抽出した実行画面データに基づいて、前記一の識別情報に係る監視対象装置の正常又は異常を判定する処理とを実行させる。
【００８４】
本実施の形態のコンピュータプログラムは、コンピュータに、前記アプリケーションの起動時から、前記監視対象装置が正常であると判定した時点までの時間を算出する処理と、算出した時間が所定の閾値時間以上である場合、前記監視対象装置の応答時間不良と判定する処理とを実行させる。
【００８５】
本実施の形態のコンピュータプログラムは、コンピュータに、前記監視対象装置から前記アプリケーションの起動完了を示す起動完了情報を取得する処理と、前記起動完了情報の有無に基づいて、前記監視対象装置の正常又は異常を判定する処理とを実行させる。
【００８６】
本実施の形態のコンピュータプログラムは、コンピュータに、前記監視対象装置から前記アプリケーションの起動時点から起動完了時点までの経過時間を取得する処理と、取得した経過時間が所定の閾値時間以上である場合、前記監視対象装置の応答時間不良と判定する処理とを実行させる。
【００８７】
本実施の形態のコンピュータプログラムは、コンピュータに、前記監視対象装置の正常又は異常の判定結果を外部へ通知する処理を実行させる。
【００８８】
本実施の形態の監視装置は、所定のアプリケーションが動作する監視対象装置の動作状態を監視する監視装置であって、前記アプリケーションを起動するための起動指令を前記監視対象装置へ出力する出力部と、前記監視対象装置からの応答情報を取得する取得部と、前記取得部で取得した応答情報に基づいて、前記監視対象装置の正常又は異常を判定する判定部とを備える。
【００８９】
本実施の形態の監視方法は、所定のアプリケーションが動作する監視対象装置の動作状態を監視する監視装置による監視方法であって、前記監視装置は、前記アプリケーションを起動するための起動指令を前記監視対象装置へ出力し、前記監視対象装置からの応答情報を取得し、取得された応答情報に基づいて、前記監視対象装置の正常又は異常を判定し、前記監視対象装置が異常であると判定された場合、前記監視対象装置を非公開にするための非公開指令を前記監視対象装置へ出力する。
【符号の説明】
【００９０】
５０  監視装置
５１  第１通信部
５２  第２通信部
５３  記憶部
５４  処理部
５４１  入力部
５４２  出力部
５４３  画面キャプチャ部
５４４  判定部
５４５  抽出部
５４６  算出部
５５  表示部
５６  ローカルドライブ
１００  サーバ
２００  クライアントＰＣ
３００  メールサーバ
４００  ヘルプデスクサーバ
【図１】
2019117456.tif 000003
【図２】
2019117456.tif 000004
【図３】
2019117456.tif 000005
【図４】
2019117456.tif 000006
【図５】
2019117456.tif 000007
【図６】
2019117456.tif 000008
【図７】
2019117456.tif 000009
【図８】
2019117456.tif 000010
【図９】
2019117456.tif 000011
【図１０】
2019117456.tif 000012
【図１１】
2019117456.tif 000013
【図１２】
2019117456.tif 000014
【図１３】
2019117456.tif 000015