(57)【要約】【課題】監視対象の項目を特定する精度を高めること。【解決手段】通知制御プログラムは、仮想マシン上で実行されるプロセスの識別情報と、プロセスの実行の際の挙動を示す情報とを取得して記憶部に順次記憶し、仮想マシンへのソフトウェアの導入を検出すると、記憶部に記憶された情報を参照して、導入の前後でプロセスの実行の際の挙動の変化が所定の基準を超えるプロセスの識別情報を特定し、特定したプロセスの識別情報を、ソフトウェアの動作を監視する監視プロセスに通知する、処理をコンピュータに実行させる。【選択図】図５
2019212244.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシン上で実行されるプロセスの識別情報と、該プロセスの実行の際の挙動を示す情報とを取得して記憶部に順次記憶し、
前記仮想マシンへのソフトウェアの導入を検出すると、前記記憶部に記憶された情報を参照して、該導入の前後でプロセスの実行の際の挙動の変化が所定の基準を超えるプロセスの識別情報を特定し、
特定した前記プロセスの識別情報を、前記ソフトウェアの動作を監視する監視プロセスに通知する、
処理をコンピュータに実行させることを特徴とする通知制御プログラム。
【請求項２】
前記プロセスの実行の際の挙動は、前記プロセスにより使用されるハードウェアの利用状況、又は、前記プロセスの実行により利用されるポートである、
ことを特徴とする請求項１に記載の通知制御プログラム。
【請求項３】
前記特定する処理は、前記仮想マシンへのミドルウェアの導入を検出すると、前記ミドルウェアの導入の前後でプロセスの実行の際の挙動の変化が所定の基準を超えるプロセスの識別情報を特定することを特徴とする請求項１または２に記載の通知制御プログラム。
【請求項４】
前記特定する処理は、前記仮想マシンへのミドルウェアの導入を検出した後に前記仮想マシンへのアプリケーションプログラムの導入を検出すると、前記アプリケーションプログラムの導入の前後でプロセスの実行の際の挙動の変化が所定の基準を超えるプロセスの識別情報を特定することを特徴とする請求項１または２に記載の通知制御プログラム。
【請求項５】
仮想マシン上で実行されるプロセスの識別情報と、該プロセスの実行の際の挙動を示す情報とを取得して記憶部に順次記憶し、
前記仮想マシンへのソフトウェアの導入を検出すると、前記記憶部に記憶された情報を参照して、該導入の前後でプロセスの実行の際の挙動の変化が所定の基準を超えるプロセスの識別情報を特定し、
特定した前記プロセスの識別情報を、前記ソフトウェアの動作を監視する監視プロセスに通知する、
処理をコンピュータが実行することを特徴とする通知制御方法。
【請求項６】
仮想マシン上で実行されるプロセスの識別情報と、該プロセスの実行の際の挙動を示す情報とを取得して順次記憶する記憶部と、
前記仮想マシンへのソフトウェアの導入を検出すると、前記記憶部に記憶された情報を参照して、該導入の前後でプロセスの実行の際の挙動の変化が所定の基準を超えるプロセスの識別情報を特定する特定部と、
特定した前記プロセスの識別情報を、前記ソフトウェアの動作を監視する監視プロセスに通知する通知部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通知制御プログラム、通知制御方法および情報処理装置に関する。
【背景技術】
【０００２】
ソフトウェアの振舞いを監視する技術が知られている。例えば、コンピュータ上で動作するソフトウェアやソフトウェアが使用するリソースを監視し、異常の発生時にメッセージが通知される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−３４５６２９号公報
【特許文献２】特開２００９−２２３４５１号公報
【特許文献３】特開２０１６−１１５２９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、コンピュータの仮想化技術の進展に伴って仮想マシン上で動作するソフトウェアを監視する重要性が高まっている。
【０００５】
しかしながら、仮想マシン上で動作するソフトウェアの稼働に伴って監視する項目の設定がシステム管理者などの人手に委ねられている現状がある。このように監視対象とする項目が手動で設定される場合、過不足が生じることがある。例えば、監視すべき項目が監視対象に設定されずに漏れが発生したり、あるいは監視する必要の無い項目までが監視対象として設定されてしまったりする場合がある。
【０００６】
１つの側面では、本発明は、監視対象の項目を特定する精度を高めることができる通知制御プログラム、通知制御方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
一態様では、通知制御プログラムは、仮想マシン上で実行されるプロセスの識別情報と、プロセスの実行の際の挙動を示す情報とを取得して記憶部に順次記憶し、仮想マシンへのソフトウェアの導入を検出すると、記憶部に記憶された情報を参照して、導入の前後でプロセスの実行の際の挙動の変化が所定の基準を超えるプロセスの識別情報を特定し、特定したプロセスの識別情報を、ソフトウェアの動作を監視する監視プロセスに通知する、処理をコンピュータに実行させる。
【発明の効果】
【０００８】
監視対象の項目を特定する精度を高めることができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例１に適用可能な情報処理システムの一例を示す図である。
【図２】図２は、実施例１に適用可能な情報処理装置のハードウェア構成の一例を示す図である。
【図３】図３は、実施例１に係る情報処理装置の機能を説明するための一例の機能ブロック図である。
【図４】図４は、実施例１に係る処理を説明するための図である。
【図５】図５は、実施例１に係る初期構築時の処理の流れを説明するための図である。
【図６】図６は、実施例１に係る初期構築時のプロセス取得処理を示す一例のフローチャートである。
【図７】図７は、実施例１に係る監視設定部により取得されたプロセス一覧の例を示す図である。
【図８】図８は、実施例１に係る初期構築時のポート取得処理を示す一例のフローチャートである。
【図９】図９は、実施例１に係る監視設定部により取得されたポート一覧の例を示す図である。
【図１０】図１０は、実施例２に係るサービス利用時の処理の流れを説明するための図である。
【図１１】図１１は、実施例２の変形例に係るサービス利用時の処理の流れを説明するための図である。
【発明を実施するための形態】
【００１０】
以下に、本願の開示する通知制御プログラム、通知制御方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、本発明は、実施例により限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１１】
［実施例１に適用可能な構成例］
図１は、実施例１に適用可能な情報処理システムの一例を示す図である。図１において、情報処理システム１には、データセンタ２に設置される情報処理装置１０と、開発者端末２０とが含まれる。
【００１２】
これら情報処理装置１０及び開発者端末２０の間は、ネットワーク３を介して相互に通信可能に接続される。例えば、ネットワーク３には、有線または無線を問わず、インターネット（Internet）を始め、ＬＡＮ（Local  Area  Network）やＶＰＮ（Virtual  Private  Network）などの任意の種類の通信網を採用できる。なお、ここでは図示を省略するが、開発者端末２０以外にも、仮想マシンによって提供される機能、例えばリモートデスクトップなどの機能を利用するエンドユーザの端末が情報処理装置１０に接続されることとしてもかまわない。
【００１３】
以下では、ユースケースのあくまで一例として、業務システムが仮想化された仮想システムがクラウドサービスとして提供される事例を挙げて説明するが、ユースケースはこれに限定されず、他のユースケースでクラウドサービスが提供されることとしてかまわない。
【００１４】
開発者端末２０は、開発者等によって使用される端末装置である。ここで言う「開発者」には、あくまで一側面として、ＩａａＳ（Infrastructure  as  a  Service）の提供を受ける企業等の組織において、コンピュータの仮想化によって実現される仮想システムの開発に携わる者やその関係者などが該当する。
【００１５】
情報処理装置１０は、ＩａａＳを始めとするクラウドサービスを提供するコンピュータである。例えば、情報処理装置１０は、１つ以上のホストマシン、あるいは物理マシンを含んで構築することができる。
【００１６】
ここで、情報処理装置１０は、あくまで１つの側面として、（１）サービス構築機能、（２）実行機能、（３）監視機能を提供することができる。
【００１７】
（１）サービス構築機能
情報処理装置１０は、クラウドサービスを実現するサービスインフラを構築するサービス構築機能をＩａａＳのフロントエンドとして提供することができる。ここで言う「サービスインフラ」とは、仮想マシンに配備するアプリケーションプログラムやアプリケーションプログラムを管理するミドルウェアなどのソフトウェアの動作環境となる基盤を指し、例えば、ネットワークやファイアウォール、仮想マシンなどが挙げられる。
【００１８】
このようにサービス構築機能がフロントエンドに実装される場合、情報処理装置１０には、開発者端末２０からのＷｅｂリクエストをＡＰＩ（Application  Program  Interface）へ変換する開発者端末２０から各種のリクエストを受け付けるインタフェースを実装することができる。
【００１９】
（１．１）サービスインフラの構築
例えば、サービスインフラが構築される初期段階では、情報処理装置１０は、クラウドサービスが利用される環境、例えばシングルテナントやマルチテナントなどのタイプにより、クラウドサービスに対応する機能を実現する仮想システムの構成が定型化されたサービスデザインパターンを開発者端末２０に提供する。このようなサービスデザインパターンの提供の下、開発者端末２０は、情報処理装置１０により提供されるダッシュボード等のＧＵＩ(Graphical  User  Interface)環境を通じて、情報処理装置１０から提供を受けるサービスデザインパターンを選択することができる。
【００２０】
その後、情報処理装置１０は、開発者端末２０により選択されたサービスデザインパターンに対応する仮想システムに対し、ＣＰＵ（Central  Processing  Unit）やメモリ、ディスク、ネットワーク等のＩａａＳリソースがプール化されたリソースプールからリソースを割り当てることにより、サービスインフラを構築する。
【００２１】
このようにサービスインフラが構築された段階をオンプレミスの実装に例えれば、業務アプリケーションの動作に備えて、業務システムのネットワークやセキュリティを始め、メインフレームなどのマシンの準備までが終了した段階に対応する。
【００２２】
（１．２）ソフトウェアの配備
サービスインフラの構築後、情報処理装置１０は、当該サービスインフラに導入するアプリケーションプログラムを設定することができる。ここで言う「導入」の一例として、以下では「配備」という用語を用いる場合がある。
【００２３】
ここで、仮想マシンにアプリケーションプログラムを配備する場合、情報処理装置１０は、仮想マシン上で動作するアプリケーションプログラムが動作する基盤として、ミドルウェアをサービスインフラに配備する。このミドルウェアは、１つの側面として、仮想マシンの動作を監視したり、仮想マシン上で動作するアプリケーションプログラムの死活を監視したりすることができる。例えば、アプリケーションプログラムの停止が検出された場合、ミドルウェアは、開発者端末２０にアラートを出力したり、当該アプリケーションプログラムを再起動したりすることができる。この他、ミドルウェアは、アプリケーションプログラムが出力するログを収集することもできる。
【００２４】
これらアプリケーションプログラムやミドルウェアなどのソフトウェアの配備のリクエストを開発者端末２０から受け付けた場合、情報処理装置１０は、当該ソフトウェアをサービスインフラに配備する。このようにアプリケーションプログラムが仮想マシンに配備された段階をオンプレミスの実装に例えれば、業務アプリケーションがメインフレームなどのマシンにインストールされた段階に対応する。
【００２５】
（２）実行機能
また、情報処理装置１０は、上記のソフトウェアをサービスインフラ上で実行させる実行機能を有する。この実行機能は、１つの側面として、サービス構築機能からのソフトウェアの配備指示にしたがってミドルウェアを起動すると共に、当該ミドルウェア上でアプリケーションプログラムを起動する。
【００２６】
（３）監視機能
また、情報処理装置１０は、サービスインフラやサービスインフラに配備されたソフトウェアに対する監視を行う監視機能を有する。例えば、監視機能には、上記のサービス構築機能の実装に伴って実装された開発者端末２０とのインタフェースを介して、監視対象とする項目、例えばプロセスやポートなどを設定することができる。
【００２７】
［課題の一側面］
ここで、サービスインフラにソフトウェアが配備される前の段階で、異なるクラウドサービスの間で監視対象とする項目を統一して設定するのは困難であり、この点に創作の困難性がある。
【００２８】
例えば、仮想マシン上で動作させるオペレーションシステムであれば、その種類は数種類程度に限られる。それ故、総当たりで全てのオペレーションシステムのテストを仮想マシンが配備される前の段階で実施し、監視対象とするプロセスやポートを絞り込むことは現実的である。
【００２９】
その一方で、クラウドサービスには、業務システムを例に挙げても多種の業務アプリケーションが存在する。その上、業務アプリケーションの基盤として配備されるミドルウェアとの相性、すなわち組合せも考慮すると、ミドルウェアやアプリケーションプログラムがサービスインフラに配備される前の段階で監視対象とするプロセスやポートを絞り込むことは現実的に困難である。
【００３０】
このため、業務システムや業務アプリケーションの開発者の手動で監視対象とするプロセスやポートが設定されるのにまかせるしかない現状がある。このように監視対象とする項目の設定を開発者の手動に委ねたのでは、過不足が生じることがある。例えば、監視すべき項目が監視対象に設定されずに漏れが発生したり、あるいは監視する必要の無い項目までが監視対象として設定されてしまったりする場合がある。
【００３１】
［課題解決のアプローチの一側面］
そこで、本実施例に係る情報処理装置１０は、上記の監視機能の一環として、仮想マシンにアプリやミドルなどのソフトウェアが導入される前後でプロセスの挙動の変化を特定し、挙動の変化が特定されたプロセスやその使用ポートを監視対象として通知する通知制御処理を実行する。これによって、本実施例に係る情報処理装置１０では、オンデマンドで監視対象とするプロセスやポートを絞り込んで通知することができる。したがって、本実施例に係る情報処理装置１０によれば、監視対象の項目を適切に設定できる。
【００３２】
図２は、実施例１に適用可能な情報処理装置１０のハードウェア構成の一例を示す図である。図２には、一例として、上記の３つの機能のうち上記の監視機能を実現する通知制御プログラムが実行される情報処理装置１０のハードウェア構成が抜粋して示されている。図２において、情報処理装置１０は、それぞれバス１０１０で接続される、ＣＰＵ１０００と、ＲＯＭ(Read  Only  Memory)１００１と、ＲＡＭ(Random  Access  Memory)１００２と、ストレージ１００３と、通信インタフェース（Ｉ／Ｆ）１００４と、を含む。
【００３３】
ストレージ１００３は、ハードディスクドライブやフラッシュメモリといった不揮発性の記憶媒体であって、各種データや、ＣＰＵ１０００が動作するための各種プログラムが格納される。ＣＰＵ１０００は、ストレージ１００３やＲＯＭ１００１に記憶されるプログラムに従い、ＲＡＭ１００２をワークメモリとして用いて動作して、この情報処理装置１０の全体の動作を制御する。
【００３４】
通信Ｉ／Ｆ１００４は、ネットワーク３を介した通信を行う。また、情報処理装置１０が複数の物理マシンを含む場合、通信Ｉ／Ｆ１００４は、情報処理装置１０に含まれる物理マシン同士の通信も行う。
【００３５】
図２の例では、情報処理装置１０が１のストレージ１００３を有するように示されているが、これはこの例に限定されない。例えば情報処理装置１０が複数の物理マシンを含む場合、情報処理装置１０は、各物理マシンが有するストレージ１００３に加え、各物理マシンにより共用可能な外部記憶装置を備えてもよい。
【００３６】
情報処理装置１０が複数の物理マシンを含む場合、情報処理装置１０は、処理を複数の物理マシンで分散して実行することができる。また、上述したように、情報処理装置１０は、１以上の仮想マシンを構築できる。仮想マシンは、情報処理装置１０が持つリソースを分割した各リソースを用いて構築される。実施例１では、ホスト型およびハイパーバイザ型の何れの仮想マシンも適用可能であるが、以下では、仮想マシンがハイパーバイザ型であるものとして説明を行う。
【００３７】
図３は、実施例１に係る情報処理装置１０の機能を説明するための一例の機能ブロック図である。図３において、情報処理装置１０は、仮想マシン管理部１００と、実行部１０１と、取得部１０２と、記憶部１０３と、特定部１０４と、通知部１０５と、監視部１０６と、を含む。
【００３８】
これら仮想マシン管理部１００、実行部１０１、取得部１０２、記憶部１０３、特定部１０４、通知部１０５および監視部１０６は、ＣＰＵ１０００上で動作する通知制御プログラムにより実現される。これに限らず、これら仮想マシン管理部１００、実行部１０１、取得部１０２、記憶部１０３、特定部１０４、通知部１０５および監視部１０６のうち一部または全部を、互いに協働して動作するハードウェア回路により構成してもよい。
【００３９】
仮想マシン管理部１００は、情報処理装置１０において構築される仮想マシンの管理を行う。仮想マシンがハイパーバイザ型であるこの例では、仮想マシン管理部１００は、ハイパーバイザに対応する。
【００４０】
実行部１０１は、ミドルウェアとしての機能を含み、情報処理装置１０に導入（インストール）されるアプリケーションプログラムに対して実行のための機能を提供する。
【００４１】
アプリケーションプログラムは、例えば開発者端末２０により、情報処理装置１０に導入される。情報処理装置１０は、アプリケーションプログラムを追加して導入することができる。また、情報処理装置１０は、導入されたアプリケーションプログラムを削除、あるいは、機能停止させることができる。例えば、情報処理装置１０は、アプリケーションプログラムの追加、削除および機能停止などを、開発者端末２０からの指示に応じて実行する。
【００４２】
取得部１０２は、仮想マシン管理部１００から、仮想マシンの動作に関する情報を取得する。また、取得部１０２は、実行部１０１から、アプリケーションプログラムおよびミドルウェアを含むソフトウェアの動作に関する情報を取得する。
【００４３】
記憶部１０３は、データなどを記憶するための記憶媒体であって、例えばＲＡＭ１００２やストレージ１００３における所定の記憶領域を適用することができる。また、記憶部１０３は、当該記憶媒体に対するデータの記憶および当該記憶媒体からのデータの読み出しを行う記憶制御部を含む。記憶部１０３は、取得部１０２に取得された仮想マシンの動作に関する情報、および、ソフトウェアの動作に関する情報を記憶する。取得部１０２は、記憶部１０３に記憶された仮想マシンの動作に関する情報と、ソフトウェアの動作に関する情報と、をさらに取得する。
【００４４】
特定部１０４は、取得部１０２により取得された情報に基づき、ソフトウェアの導入に伴い挙動が変化したプロセスを特定する。また、特定部１０４は、取得部１０２により取得された情報に基づき、ソフトウェアの導入に伴い挙動が変化したポートを利用するプロセスを特定する。さらに、特定部１０４は、取得部１０２により取得された情報に基づき、ソフトウェアの導入に伴い挙動が変化したハードウェア、例えばプロセッサ（例えばＣＰＵ１０００）やメモリ（例えばＲＡＭ１００２）の利用状況に基づき、対応するプロセスを特定する。
【００４５】
通知部１０５は、特定部１０４により特定されたプロセスを識別する識別情報を、監視部１０６に通知する。監視部１０６は、実行部１０１の動作と、仮想マシン管理部１００に管理される仮想マシンの動作と、を監視する監視プロセスを含む。当該監視プロセスは、情報処理装置１０のシステムに常駐して監視を実行する。監視部１０６が動作を監視する項目は、通知部１０５に通知された識別情報に基づき設定される。
【００４６】
情報処理装置１０における実施例１に係る各機能を実現するための通知制御プログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ(Compact  Disk)、フレキシブルディスク（ＦＤ）、ＤＶＤ(Digital  Versatile  Disk)などのコンピュータで読み取り可能な記録媒体に記録して提供される。これに限らず、当該通知制御プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、当該ネットワークを介してダウンロードさせることにより提供してもよい。また、当該通知制御プログラムをインターネットなどのネットワークを経由して提供または配布するように構成してもよい。
【００４７】
当該通知制御プログラムは、仮想マシン管理部１００、実行部１０１、取得部１０２、記憶部１０３、特定部１０４、通知部１０５および監視部１０６を含むモジュール構成となっている。実際のハードウェアとしては、ＣＰＵ１０００がストレージ１００３などの記憶媒体から当該通知制御プログラムを読み出して実行することにより、上述した各部がＲＡＭ１００２などの主記憶装置上にロードされ、仮想マシン管理部１００、実行部１０１、取得部１０２、記憶部１０３、特定部１０４、通知部１０５および監視部１０６が主記憶装置上に生成されるようになっている。
【００４８】
［課題の一側面］
例えば、仮想マシンが生成されると、システムログ取得などの複数のプロセスが生成される。監視部１０６は、仮想マシンに導入されたソフトウェアの動作などを監視する。ソフトウェアの動作などを監視するためには、仮想マシン上に生成されるプロセス全てを監視する必要は無い。このとき、監視部１０６により監視するプロセスを人手により設定すると、監視すべき項目が設定されないための監視漏れや、監視不要な項目の設定によるシステム負荷の増大などが生じるおそれがある。また、人手による設定では、導入するソフトウェアが多くなる程、設定のコストが嵩むことになる。一方、仮想マシンにソフトウェアが導入された際の動作を確認するためのテスト環境を構築する方法も考えられる。しかしながら、この方法においても、テスト環境の構築にコストが発生してしまう。
【００４９】
［課題解決のアプローチの一側面］
実施例１では、ソフトウェアの動作などを監視するために、どのプロセスを監視対象とすべきかを特定部１０４により特定して、監視部１０６に通知する。そのために、実施例１では、仮想マシンへのソフトウェアの導入前後で複数のプロセスの動作情報にどのような変化が生じるかを特定し、この変化に基づき、監視すべきプロセスを特定する。特定したプロセスの情報は、監視対象プロセスとして監視部１０６に通知される。
【００５０】
すなわち、仮想マシンへのソフトウェアの導入によって、複数のプロセスのうちあるプロセスの動作状況が例えば「動作していない」から「動作している」に変化した場合、そのプロセスは、ソフトウェアの実行により動作を開始したことになる。そのため、そのプロセスを、監視対象のプロセスとして監視部１０６に通知する。実施例１では、このように、複数のプロセスの動作情報の変化に基づき監視部１０６による監視対象のプロセスを特定するため、監視部１０６による監視対象のプロセスを特定する精度を高めることができる。
【００５１】
［実施例１に係る動作］
図４は、実施例１に係る処理を説明するための図である。なお、図４において、上述した図１および図３と共通する部分には同一の符号を付して、詳細な説明を省略する。
【００５２】
図４において、サービス構築部１１０は、情報処理装置１０に含まれる機能の１つであって、例えば開発者端末２０からの利用要求に応じて、サービスを提供するアプリケーションプログラムを実行するためのサービスインフラ１１１を構築する。また、サービス構築部１１０は、仮想マシン管理部１００の機能も含み、仮想マシンを構築することもできる。この例に限らず、サービス構築部１１０は、情報処理装置１０とは別の装置として、分散配置してもよい。
【００５３】
サービスインフラ１１１は、例えば、情報処理装置１０が持つＣＰＵ１０００やＲＡＭ１００２、ストレージ１００３などによるリソースと、クラウドネットワークやネットワーク３などによるリソースと、を用いて構築される。このように、サービス構築部１１０は、実施例１に係る情報処理装置１０による情報処理システム１のフロントエンドとして機能する。
【００５４】
また、情報処理装置１０に対し、例えば開発者端末２０により、アプリケーションプログラム１２０1、１２０2、…が導入される。アプリケーションプログラム１２０1、１２０2、…は、開発者端末２０により情報処理装置１０上で開発し、情報処理装置１０に導入することもできる。情報処理装置１０に導入されたアプリケーションプログラム１２０1、１２０2、…は、サービスインフラ１１１上で、実行部１０１により提供される機能を用いて実行される。
【００５５】
なお、図４と、後述する図１０および図１１において、アプリケーションプログラム１２０1、１２０2、…を、それぞれアプリ１２０1、１２０2、…として示している。
【００５６】
サービス構築部１１０は、また、監視部１０６が実行部１０１や各アプリケーションプログラム１２０1、１２０2、…を監視するための設定を行う監視設定部２００（図５参照）を起動する。監視部１０６は、設定された内容に従い、実行部１０１や各アプリケーションプログラム１２０1、１２０2、…を監視する。監視部１０６は、例えば、実行部１０１や各アプリケーションプログラム１２０1、１２０2、…の死活監視や、障害の有無の監視を行う。
【００５７】
［実施例１に係る動作の詳細］
図５は、実施例１に係る初期構築時の処理の流れを説明するための図である。なお、図５において、上述した図１、図３および図４と共通する部分には同一の符号を付して、詳細な説明を省略する。
【００５８】
図５において、開発者端末２０からサービス構築部１１０に対して、初期構築の実行が指示される（ステップＳ１）。サービス構築部１１０は、この指示に応じて、サービスインフラ１１１と、仮想マシン１３０1、１３０2、…と、を構築する（ステップＳ２）。各仮想マシン１３０1、１３０2、…は、それぞれ所定のＯＳ(Operating  System)を動作させ、このＯＳ上で、実行部１０１により提供される機能を利用して、アプリケーションプログラム１２０1、１２０2、…（図４参照）が動作する。
【００５９】
なお、図５と、後述する図１０および図１１では、仮想マシン１３０1、１３０2、…をそれぞれＶＭ１３０1、１３０2、…として示している。
【００６０】
サービス構築部１１０は、仮想マシン１３０1、１３０2、…の構築の後、監視設定部２００の機能を実行させる（ステップＳ３）。監視設定部２００は、図３に示した取得部１０２、記憶部１０３、特定部１０４および通知部１０５の機能を含み、監視部１０６が監視を行う項目を設定し、監視部１０６に通知する。
【００６１】
次のステップＳ４で、監視設定部２００は、起動された各仮想マシン１３０1、１３０2、…上で動作するプロセスの挙動を取得する。監視設定部２００は、取得したプロセスの挙動を示す情報を、そのプロセスを識別するプロセス識別情報と関連付けて記憶部１０３に記憶する。プロセスの挙動は、例えば、そのプロセスが稼働しているか否か、そのプロセスが利用するポート、そのプロセスによるプロセッサ（例えばＣＰＵ１０００）やメモリ（例えばＲＡＭ１００２）の利用率、などの情報を含む。
【００６２】
次に、サービス構築部１１０は、各仮想マシン１３０1、１３０2、…に機能を提供するための実行部１０１を作成する（ステップＳ５）。
【００６３】
監視設定部２００は、サービス構築部１１０のステップＳ５による実行部１０１の作成の後、ステップＳ６で、ステップＳ４と同様の処理を再び実行する。すなわち、監視設定部２００は、各仮想マシン１３０1、１３０2、…上で動作するプロセスの挙動を取得し、取得した挙動を示す情報を、そのプロセスを識別するプロセス識別情報と関連付けて記憶部１０３に記憶する。
【００６４】
次のステップＳ７で、監視設定部２００は、ステップＳ４で取得したプロセスの挙動と、ステップＳ６で取得したプロセスの挙動と、の差分を、プロセス識別情報毎に抽出する。監視設定部２００は、抽出したプロセスの挙動の差分が予め定めた基準を超えるプロセス識別情報を特定する。監視設定部２００は、ステップＳ７で特定したプロセス識別情報に基づき、監視部１０６が監視するための項目を設定する監視テンプレートを作成し、作成した監視テンプレートを監視部１０６に適用する（ステップＳ８）。
【００６５】
監視部１０６は、ステップＳ８で適用された監視テンプレートに従い、実行部１０１および各仮想マシン１３０1、１３０2、…の動作を監視する（ステップＳ９）。
【００６６】
［実施例１に係る初期構築時のプロセス取得処理］
図６は、実施例１に係る初期構築時のプロセス取得処理を示す一例のフローチャートである。なお、図６および後述する図８において、仮想マシンを「ＶＭ」として記載している。
【００６７】
例えば開発者端末２０からサービス構築部１１０に対して、初期構築の実行が指示されると、ステップＳ１００で、サービス構築部１１０は、指示に応じてサービスインフラ１１１と、仮想マシン１３０1、１３０2、…と、を構築する。
【００６８】
次のステップＳ１０１で、サービス構築部１１０は、監視設定部２００の機能を実行させて、ステップＳ１００で構築した各仮想マシン１３０1、１３０2、…上で動作しているプロセスを検出する。動作中のプロセスは、各仮想マシン１３０1、１３０2、…が含むＯＳがＬｉｎｕｘ（登録商標）である場合、コマンド「ｐｓ  ａｕｘ」を用いることで検出できる。監視設定部２００は、検出したプロセスの一覧を取得し、取得したプロセスの一覧を記憶部１０３に記憶する。
【００６９】
次のステップＳ１０２で、サービス構築部１１０は、各仮想マシン１３０1、１３０2、…上に実行部１０１を構築する。
【００７０】
次のステップＳ１０３で、サービス構築部１１０は、監視設定部２００の機能を実行させて、各仮想マシン１３０1、１３０2、…上で動作しているプロセスを再度、検出する。監視設定部２００は、検出したプロセスの一覧を取得し、取得したプロセスの一覧を記憶部１０３に記憶する。
【００７１】
次のステップＳ１０４で、監視設定部２００は、実行部１０１の構築前後のプロセス一覧を比較する。より具体的には、監視設定部２００は、ステップＳ１０１で取得したプロセス一覧と、ステップＳ１０３で取得したプロセス一覧と、を比較する。
【００７２】
次のステップＳ１０５で、監視設定部２００は、ステップＳ１０４の比較の結果、ステップＳ１０１で取得し記憶したプロセス一覧と、ステップＳ１０３で取得し記憶したプロセス一覧と、に差分が有るか否かを判定する。
【００７３】
例えば、監視設定部２００は、ステップＳ１０４において、ステップＳ１０３で取得したプロセス一覧に含まれ、ステップＳ１０１で取得したプロセス一覧に含まれないプロセスが有るか否かを判定する。この場合、ステップＳ１０３で取得したプロセス一覧に含まれ、ステップＳ１０１で取得したプロセス一覧に含まれないプロセスが有る場合に、当該プロセスが所定の基準を超える差分が有るプロセスであると特定する。
【００７４】
これに限らず、監視設定部２００は、ステップＳ１０１で取得したプロセス一覧に含まれ、ステップＳ１０３で取得したプロセス一覧に含まれないプロセスの有無を、さらに判定してもよい。この場合には、ステップＳ１０１で取得したプロセス一覧に含まれ、ステップＳ１０３で取得したプロセス一覧に含まれないプロセスが有る場合に、当該プロセスが所定の基準を超える差分が有るプロセスであると特定する。
【００７５】
図７は、実施例１に係る監視設定部２００により取得されたプロセス一覧の例を示す図である。図７（ａ）は、ステップＳ１０１で取得されたプロセス一覧の例を示す。また、図７（ｂ）は、ステップＳ１０３で取得されたプロセス一覧の例、図７（ｃ）は、ステップＳ１０３で取得されたプロセス一覧の例をそれぞれ示す。
【００７６】
図７（ａ）、図７（ｂ）および図７（ｃ）において、プロセス一覧に含まれる各レコードは、それぞれプロセスの情報を示し、「ＵＳＥＲ」、「ＰＩＤ」、「％ＣＰＵ」、「％ＭＥＭ」、「ＶＳＺ」、「ＲＳＳ」、「ＴＴＹ」、「ＳＴＡＴ」、「ＳＴＡＲＴ」、「ＴＩＭＥ」および「ＣＯＭＭＡＮＤ」の各項目を含む。
【００７７】
項目「ＵＳＥＲ」は、プロセスの実行ユーザを示す。項目「ＰＩＤ」は、プロセスを識別するプロセス識別情報を示す。項目「％ＣＰＵ」は、プロセスのＣＰＵ使用率を示す。項目「％ＭＥＭ」は、プロセスが確保している物理メモリ（例えばＲＡＭ１００２の記憶領域）の割合を示す。項目「ＶＳＺ」および「ＲＳＳ」は、それぞれプロセスが使用している仮想メモリ領域および物理メモリ領域のサイズを示す。項目「ＴＴＹ」は、プロセスの入出力端末の名前を示す。項目「ＳＴＡＴ」は、プロセスの状態を示す。項目「ＳＴＡＲＴ」は、プロセスの実行開始時間を示す。項目「ＴＩＭＥ」は、プロセスの実行時間の合計を示す。項目「ＣＯＭＭＡＮＤ」は、そのプロセスに対応するコマンドを示す。
【００７８】
これらのうち、監視設定部２００は、例えば項目「ＰＩＤ」の値を、ステップＳ１０１で取得されたプロセス一覧と、ステップＳ１０３で取得されたプロセス一覧と、で比較する。一例として、ステップＳ１０３で図７（ｂ）に示すプロセス一覧が取得された場合、図７（ｂ）のプロセス一覧に含まれる項目「ＰＩＤ」の値が「７」のレコードが、図７（ａ）のプロセス一覧に含まれていない。したがって、プロセス識別情報「７」で識別されるプロセスが、実行部１０１の構築によって追加されたプロセスであると特定できる。
【００７９】
別の例として、ステップＳ１０３で図７（ｃ）に示すプロセス一覧が取得された場合、図７（ａ）に含まれる項目「ＰＩＤ」の値が「５」のレコードが、図７（ｃ）のプロセス一覧に含まれていない。したがって、実行部１０１の構築によって削除あるいは停止されたプロセスであると特定できる。
【００８０】
図６の説明に戻り、監視設定部２００は、ステップＳ１０５で差分が有ると判定した場合（ステップＳ１０５、「Ｙｅｓ」）、処理をステップＳ１０６に移行させる。
【００８１】
ステップＳ１０６で、監視設定部２００は、差分として検出されたプロセスを、監視項目として監視テンプレートに追加する。上述した図７（ｂ）の例では、プロセス識別情報「７」で識別されるプロセスが、監視テンプレートの監視項目に追加される。また、上述した図７（ｃ）の例では、プロセス識別情報「５」で識別されるプロセスが、監視テンプレートの監視項目に追加される。差分のプロセスが監視項目に追加されると、処理がステップＳ１０７に移行される。
【００８２】
監視設定部２００は、ステップＳ１０５で差分が無いと判定した場合（ステップＳ１０５、「Ｎｏ」）、処理をステップＳ１０７に移行させる。この場合、監視テンプレートは、例えば初期状態のままとなっている。
【００８３】
ステップＳ１０７で、監視設定部２００は、監視テンプレートを監視部１０６に適用する。監視部１０６は、適用された監視テンプレートに従い、実行部１０１および各仮想マシン１３０1、１３０2、…の監視を開始する。
【００８４】
なお、上述では、監視設定部２００は、プロセス一覧に含まれる各項目のうち、項目「ＰＩＤ」の値を実行部１０１の構築前後で比較している。これはこの例に限定されず、プロセス一覧に含まれる、他の項目の値を比較してもよい。例えば、監視設定部２００により、プロセス一覧に含まれる項目のうち項目「％ＣＰＵ」、あるいは、項目「％ＭＥＭ」の値を実行部１０１の構築前後で比較することが考えられる。
【００８５】
例えば項目「％ＣＰＵ」の場合、監視設定部２００は、ステップＳ１０１で取得したプロセス一覧と、ステップＳ１０３で取得したプロセス一覧と、において、項目「ＰＩＤ」の値が一致するプロセス同士で項目「％ＣＰＵ」の値の差分を求める。監視設定部２００は、求めた差分が予め定めた値を超えるプロセスを検出し、検出されたプロセスの項目「ＰＩＤ」の値すなわちプロセス識別情報を特定する。監視設定部２００は、特定したプロセス識別情報が示すプロセスを監視対象のプロセスとして、監視テンプレートに設定する。項目「％ＭＥＭ」の比較についても、同様である。
【００８６】
［実施例１に係る初期構築時のポート取得処理］
次に、実施例１に係る初期構築時のポート取得処理について説明する。図８は、実施例１に係る初期構築時のポート取得処理を示す一例のフローチャートである。例えば開発者端末２０からサービス構築部１１０に対して、初期構築の実行が指示されると、ステップＳ２００で、サービス構築部１１０は、指示に応じてサービスインフラ１１１と、仮想マシン１３０1、１３０2、…と、を構築する。
【００８７】
次のステップＳ２０１で、サービス構築部１１０は、監視設定部２００の機能を実行させて、ステップＳ１００で構築した各仮想マシン１３０1、１３０2、…が使用するポートを検出する。使用するポートは、各仮想マシン１３０1、１３０2、…が含むＯＳがＬｉｎｕｘ（登録商標）である場合、例えば接続確立しているポートを検出するコマンド「ｎｅｔｓｔａｔ  −ｔ」を用いることで検出できる。監視設定部２００は、検出したポートの一覧を取得し、取得したポートの一覧を記憶部１０３に記憶する。
【００８８】
次のステップＳ２０２で、サービス構築部１１０は、各仮想マシン１３０1、１３０2、…上に実行部１０１を構築する。
【００８９】
次のステップＳ２０３で、サービス構築部１１０は、監視設定部２００の機能を実行させて、各仮想マシン１３０1、１３０2、…が使用するポートを再度、検出する。ステップＳ２０３によるポート検出は、各仮想マシン１３０1、１３０2、…が含むＯＳがＬｉｎｕｘ（登録商標）である場合、例えば開始しているポートを検出するコマンド「ｎｅｔｓｔａｔ  −ａｎｔｕ」を用いることができる。監視設定部２００は、検出したポートの一覧を取得し、取得したポートの一覧を記憶部１０３に記憶する。
【００９０】
次のステップＳ２０４で、監視設定部２００は、実行部１０１の構築前後のポート一覧を比較する。より具体的には、監視設定部２００は、ステップＳ２０１で取得したポート一覧と、ステップＳ２０３で取得したポート一覧と、を比較する。
【００９１】
次のステップＳ２０５で、監視設定部２００は、ステップＳ２０４の比較の結果、ステップＳ２０１で取得し記憶したポート一覧と、ステップＳ２０３で取得し記憶したポート一覧と、に差分が有るか否かを判定する。
【００９２】
例えば、監視設定部２００は、ステップＳ２０４において、ステップＳ２０３で取得したポート一覧に含まれ、ステップＳ２０１で取得したポート一覧に含まれないポートが有るか否かを判定する。この場合、ステップＳ２０３で取得したポート一覧に含まれ、ステップＳ２０１で取得したポート一覧に含まれないポートが有る場合に、当該ポートが所定の基準を超える差分が有るポートであると特定する。
【００９３】
これに限らず、監視設定部２００は、ステップＳ２０１で取得したポート一覧に含まれ、ステップＳ２０３で取得したポート一覧に含まれないポートの有無を、さらに判定してもよい。この場合には、ステップＳ２０１で取得したポート一覧に含まれ、ステップＳ２０３で取得したポート一覧に含まれないポートが有る場合に、当該ポートが所定の基準を超える差分が有るポートであると特定する。
【００９４】
図９は、実施例１に係る監視設定部２００により取得されたポート一覧の例を示す図である。図９（ａ）は、ステップＳ２０１で取得されたポート一覧の例を示す。また、図９（ｂ）は、ステップＳ２０３で取得されたポート一覧の例を示す。
【００９５】
図９（ａ）および図９（ｂ）において、ポート一覧に含まれる各レコードは、それぞれポートの情報を示し、「Ｐｒｏｔｏ」、「Ｒｅｃｖ−Ｑ」、「Ｓｅｎｄ−Ｑ」、「Ｌｏｃａｌ  Ａｄｄｒｅｓｓ」、「Ｆｏｒｅｉｇｎ  Ａｄｄｒｅｓｓ」および「Ｓｔａｔｅ」の各項目を含む。
【００９６】
項目「Ｐｒｏｔｏ」は、ポートで用いるプロトコルを示す。項目「Ｒｅｃｖ−Ｑ」および「Ｓｅｎｄ−Ｑ」は、それぞれ受信および送信できなかったデータ量を示す。項目「Ｌｏｃａｌ  Ａｄｄｒｅｓｓ」および項目「Ｆｏｒｅｉｇｎ  Ａｄｄｒｅｓｓ」は、それぞれローカル側およびリモート側のアドレスおよびポート番号（またはポート名）を示す。コロン（「：」）の後ろの部分がポート番号（またはポート名）となっている。項目「Ｓｔａｔｅ」は、ポートの状態を示す。
【００９７】
これらのうち、監視設定部２００は、例えば、項目「Ｌｏｃａｌ  Ａｄｄｒｅｓｓ」および項目「Ｆｏｒｅｉｇｎ  Ａｄｄｒｅｓｓ」におけるポート番号の組み合わせ、あるいは、ポート番号およびポート名の組み合わせを、ステップＳ２０１で取得されたポート一覧と、ステップＳ２０３で取得されたポート一覧と、で比較する。一例として、ステップＳ２０３で図９（ｂ）に示すポート一覧が取得された場合、図９（ｂ）のポート一覧に含まれるポート番号「１００５０」および「１００５１」に組み合わせを含むレコードが、図９（ａ）のプロセス一覧に含まれていない。したがって、これらポート番号「１００５０」および「１００５１」で識別される各ポートが、実行部１０１の構築によって追加されたポートであると特定できる。
【００９８】
図８の説明に戻り、監視設定部２００は、ステップＳ２０５で差分が有ると判定した場合（ステップＳ２０５、「Ｙｅｓ」）、処理をステップＳ２０６に移行させる。
【００９９】
ステップＳ２０６で、監視設定部２００は、差分として検出されたポートを、監視項目として監視テンプレートに追加する。上述した図８（ｂ）の例では、ポート番号「１００５０」および「１００５１」で識別される各ポートが、監視テンプレートの監視項目に追加される。差分のポートが監視項目に追加されると、処理がステップＳ２０７に移行される。
【０１００】
監視設定部２００は、ステップＳ２０５で差分が無いと判定した場合（ステップＳ２０５、「Ｎｏ」）、処理をステップＳ２０７に移行させる。この場合、監視テンプレートは、例えば初期状態のままとなっている。
【０１０１】
ステップＳ２０７で、監視設定部２００は、監視テンプレートを監視部１０６に適用する。監視部１０６は、適用された監視テンプレートに従い、実行部１０１および各仮想マシン１３０1、１３０2、…の監視を開始する。
【０１０２】
実施例１では、このように、各仮想マシン１３０1、１３０2、…において稼働するプロセスの挙動を実行部１０１の構築前後で比較し、挙動の変化が所定以上であるプロセスを特定し、特定されたプロセスを監視対象としている。そのため、監視部１０６が監視対象とする項目を、容易に設定することができる。
【０１０３】
また、実行部１０１の構築前後で、ポートの使用の有無や、プロセッサおよびメモリの利用率を比較することができるため、より多くの側面から監視部１０６が監視対象とする項目を容易に設定可能である。
【実施例２】
【０１０４】
次に、実施例２について説明する。実施例２は、上述した実施例１による初期構築が完了した後の、サービス利用時の処理の例である。図１０は、実施例２に係るサービス利用時の処理の流れを説明するための図である。なお、図１０において、上述した図１、図３および図４と共通する部分には同一の符号を付して、詳細な説明を省略する。
【０１０５】
図１０において、例えば開発者端末２０からサービス構築部１１０に対して、サービス構築の実行が指示される（ステップＳ１０）。サービス構築部１１０は、この指示に応じて、監視設定部２００の機能を実行させる（ステップＳ１１）。
【０１０６】
次のステップＳ１２で、監視設定部２００は、各仮想マシン１３０1、１３０2、…上で動作するプロセスと、実行部１０１上で動作するプロセスと、の挙動を取得する。監視設定部２００は、取得したプロセスの挙動を示す情報を、そのプロセスを識別するプロセス識別情報と関連付けて記憶部１０３に記憶する。
【０１０７】
次に、サービス構築部１１０は、アプリケーションプログラム１２０1、１２０2、…を情報処理装置１０に導入する（ステップＳ１３）。アプリケーションプログラム１２０1、１２０2、…は、各仮想マシン１３０1、１３０2、…からの要求に応じて、実行部１０１により提供される機能を利用して実行される。導入されるアプリケーションプログラム１２０1、１２０2、…は、例えば、ステップＳ１０において、開発者端末２０からサービス構築の実行が指示される際に、指定される。サービス構築部１１０において導入するアプリケーションプログラム１２０1、１２０2、…を予め設定しておくこともできる。
【０１０８】
なお、図１０および後述する図１１においては、アプリケーションプログラム１２０1、１２０2、…を、アプリ１２０1、１２０2、…として示している。
【０１０９】
監視設定部２００は、サービス構築部１１０のステップＳ１３によるアプリケーションプログラム１２０1、１２０2、…の導入の後、ステップＳ１４で、ステップＳ１２と同様の処理を再び実行する。すなわち、監視設定部２００は、各仮想マシン１３０1、１３０2、…上で動作するプロセスと、実行部１０１上で動作するプロセスと、の挙動を取得し、取得した挙動を示す情報を、そのプロセスを識別するプロセス識別情報と関連付けて記憶部１０３に記憶する。
【０１１０】
次のステップＳ１５で、監視設定部２００は、ステップＳ１２で取得したプロセスの挙動と、ステップＳ１４で取得したプロセスの挙動と、の差分を、プロセス識別情報毎に抽出する。監視設定部２００は、抽出したプロセスの挙動の差分が予め定めた基準を超えるプロセス識別情報を特定する。監視設定部２００は、ステップＳ１５で特定したプロセス識別情報に基づき、監視部１０６が監視するための項目を設定する監視テンプレートを作成し、作成した監視テンプレートを監視部１０６に適用する（ステップＳ１６）。
【０１１１】
監視部１０６は、ステップＳ１６で適用された監視テンプレートに従い、各アプリケーションプログラム１２０1、１２０2、…、および、実行部１０１の動作を監視する（ステップＳ１７）。
【０１１２】
実施例２に係るサービス利用時のプロセス取得処理を、上述した図６のフローチャートを参照しながら説明する。例えば開発者端末２０からサービス構築部１１０に対して、サービス構築の実行が指示されると、監視設定部２００の機能を実行させて、既に構築されている各仮想マシン１３０1、１３０2、…、および、実行部１０１上で動作しているプロセスを検出する（図６のステップＳ１０１参照）。監視設定部２００は、検出したプロセスの一覧を取得し、取得したプロセスの一覧を記憶部１０３に記憶する。
【０１１３】
次に、サービス構築部１１０は、実行部１０１上に各アプリケーションプログラム１２０1、１２０2、…を導入する（図６のステップＳ１０２参照）。次に、サービス構築部１１０は、監視設定部２００の機能を実行させて、各仮想マシン１３０1、１３０2、…、および、実行部１０１上で動作しているプロセスを再度、検出する（図６のステップＳ１０３参照）。監視設定部２００は、検出したプロセスの一覧を取得し、取得したプロセスの一覧を記憶部１０３に記憶する。
【０１１４】
次に、監視設定部２００は、アプリケーションプログラム１２０1、１２０2、…導入前後のプロセス一覧を比較する（図６のステップＳ１０４参照）。
【０１１５】
次に、監視設定部２００は、アプリケーションプログラム１２０1、１２０2、…導入前後のプロセス一覧の比較の結果、アプリケーションプログラム１２０1、１２０2、…導入前に取得したプロセス一覧と、アプリケーションプログラム１２０1、１２０2、…導入後に取得したプロセス一覧と、に差分が有るか否かを判定する（図６のステップＳ１０５参照）。
【０１１６】
例えば、監視設定部２００は、アプリケーションプログラム１２０1、１２０2、…導入後に取得したプロセス一覧に含まれ、アプリケーションプログラム１２０1、１２０2、…導入前に取得したプロセス一覧に含まれないプロセスが有るか否かを判定する。また、監視設定部２００は、アプリケーションプログラム１２０1、１２０2、…導入前に取得したプロセス一覧に含まれ、アプリケーションプログラム１２０1、１２０2、…導入後に取得したプロセス一覧に含まれないプロセスの有無を、さらに判定してもよい。
【０１１７】
監視設定部２００は、この比較においても、プロセス一覧に含まれる各レコードの項目のうち、例えば項目「ＰＩＤ」の値を、比較の対象として用いる。これに限らず、監視設定部２００は、実施例１と同様に、プロセス一覧に含まれる項目のうち項目「％ＣＰＵ」、あるいは、項目「％ＭＥＭ」の値を、比較の対象として用いることができる。
【０１１８】
監視設定部２００は、アプリケーションプログラム１２０1、１２０2、…導入前後に取得したプロセス一覧に差分が有ると判定した場合、差分として検出されたプロセスを、監視項目として監視テンプレートに追加する（図６のステップＳ１０６参照）。監視設定部２００は、監視テンプレートを監視部１０６に適用する（図６のステップＳ１０７参照）。監視部１０６は、適用された監視テンプレートに従い、各アプリケーションプログラム１２０1、１２０2、…の監視を開始する。
【０１１９】
［実施例２に係るサービス利用時のポート取得処理］
次に、実施例１に係るサービス利用時のポート取得処理を、上述した図８のフローチャートを参照しながら説明する例えば開発者端末２０からサービス構築部１１０に対して、サービス構築の実行が指示されると、監視設定部２００の機能を実行させて、既に構築されている各仮想マシン１３０1、１３０2、…、および、実行部１０１が使用するポートを検出する（図８のステップＳ２０１参照）。監視設定部２００は、検出したポートの一覧を取得し、取得したポートの一覧を記憶部１０３に記憶する。
【０１２０】
次に、サービス構築部は、サービス構築部１１０は、実行部１０１上に各アプリケーションプログラム１２０1、１２０2、…を導入する（図８のステップＳ２０２参照）。次に、サービス構築部１１０は、監視設定部２００の機能を実行させて、各仮想マシン１３０1、１３０2、…、および、実行部１０１が使用するポートを再度、検出する（図８のステップＳ２０３参照）。監視設定部２００は、検出したポートの一覧を取得し、取得したポートの一覧を記憶部１０３に記憶する。
【０１２１】
次に、監視設定部２００は、各アプリケーションプログラム１２０1、１２０2、…導入前後のポート一覧を比較する（図８のステップＳ２０４参照）。
【０１２２】
次に、監視設定部２００は、各アプリケーションプログラム１２０1、１２０2、…導入前後のポート一覧の比較の結果、アプリケーションプログラム１２０1、１２０2、…導入前に取得したポート一覧と、アプリケーションプログラム１２０1、１２０2、…導入後に取得したポート一覧と、に差分が有るか否かを判定する（図８のステップＳ２０５参照）。
【０１２３】
例えば、監視設定部２００は、アプリケーションプログラム１２０1、１２０2、…導入後に取得したポート一覧に含まれ、アプリケーションプログラム１２０1、１２０2、…導入前に取得したポート一覧に含まれないポートが有るか否かを判定する。また、監視設定部２００は、アプリケーションプログラム１２０1、１２０2、…導入前に取得したポート一覧に含まれ、アプリケーションプログラム１２０1、１２０2、…導入後に取得したポート一覧に含まれないプロセスの有無を、さらに判定してもよい。
【０１２４】
監視設定部２００は、この比較においても、項目「Ｌｏｃａｌ  Ａｄｄｒｅｓｓ」および項目「Ｆｏｒｅｉｇｎ  Ａｄｄｒｅｓｓ」におけるポート番号およびポート名の組み合わせを、比較の対象として用いることができる。
【０１２５】
監視設定部２００は、アプリケーションプログラム１２０1、１２０2、…導入前後に取得したポート一覧に差分が有ると判定した場合、差分として検出されたポートを、監視項目として監視テンプレートに追加する（図８のステップＳ２０６参照）。監視設定部２００は、監視テンプレートを監視部１０６に適用する（図８のステップＳ２０７参照）。監視部１０６は、適用された監視テンプレートに従い、各アプリケーションプログラム１２０1、１２０2、…の監視を開始する。
【０１２６】
実施例２では、このように、仮想マシン１３０1、１３０2、…、および、実行部１０１において稼働するプロセスの挙動を、アプリケーションプログラム１２０1、１２０2、…の導入前後で比較し、挙動の変化が所定以上であるプロセスを特定し、特定されたプロセスを監視対象としている。そのため、監視部１０６が監視対象とする項目を、容易に設定することができる。
【０１２７】
［第２の実施例の変形例］
次に、第２の実施例の変形例について説明する。第２の実施例の変形例は、サービスを提供するための各アプリケーションプログラム１２０1、１２０2、…を、サービス構築部１１０を用いずに、実行部１０１を利用して導入する例である。
【０１２８】
図１１は、実施例２の変形例に係るサービス利用時の処理の流れを説明するための図である。なお、図１１において、上述した図１０と共通する部分には同一の符号を付して、詳細な説明を省略する。
【０１２９】
図１１において、例えば開発者端末２０から監視設定部２００に対して、監視設定部２００の機能の実行が指示される（ステップＳ２０）。監視設定部２００は、各仮想マシン１３０1、１３０2、…上で動作するプロセスと、実行部１０１上で動作するプロセスと、の挙動を取得する。監視設定部２００は、取得したプロセスの挙動を示す情報を、そのプロセスを識別するプロセス識別情報と関連付けて記憶部１０３に記憶する。
【０１３０】
次に、例えば開発者端末２０から実行部１０１に対して、アプリケーションプログラム１２０1、１２０2、…の導入が指示される（ステップＳ２２）。例えば、開発者端末２０から実行部１０１に対して直接的にコマンドを適用することで、アプリケーションプログラム１２０1、１２０2、…の導入を実行できる。この指示に応じて、アプリケーションプログラム１２０1、１２０2、…が情報処理装置１０に導入される（ステップＳ２２’）。
【０１３１】
これに限らず、開発者端末２０により、実行部１０１の機能を利用してアプリケーションプログラム１２０1、１２０2、…を開発し、情報処理装置１０に導入することもできる。
【０１３２】
監視設定部２００は、ステップＳ２２’によるアプリケーションプログラム１２０1、１２０2、…の導入の後、ステップＳ２４で、ステップＳ２１と同様の処理を再び実行する。すなわち、監視設定部２００は、各仮想マシン１３０1、１３０2、…上で動作するプロセスと、実行部１０１上で動作するプロセスと、の挙動を取得し、取得した挙動を示す情報を、そのプロセスを識別するプロセス識別情報と関連付けて記憶部１０３に記憶する。
【０１３３】
次のステップＳ２５で、監視設定部２００は、ステップＳ２１で取得したプロセスの挙動と、ステップＳ２４で取得したプロセスの挙動と、の差分を、プロセス識別情報毎に抽出する。監視設定部２００は、抽出したプロセスの挙動の差分が予め定めた基準を超えるプロセス識別情報を特定する。監視設定部２００は、ステップＳ２５で特定したプロセス識別情報に基づき、監視部１０６が監視するための項目を設定する監視テンプレートを作成し、作成した監視テンプレートを監視部１０６に適用する（ステップＳ２６）。
【０１３４】
監視部１０６は、ステップＳ２６で適用された監視テンプレートに従い、各アプリケーションプログラム１２０1、１２０2、…、および、実行部１０１の動作を監視する（ステップＳ２７）。
【０１３５】
このように、サービス構築部１１０を用いずにアプリケーションプログラム１２０1、１２０2、…を導入する場合であっても、実施例２と同様にして、仮想マシン１３０1、１３０2、…、および、実行部１０１において稼働するプロセスの挙動を、アプリケーションプログラム１２０1、１２０2、…の導入前後で比較できる。そのため、監視部１０６が監視対象とする項目を、容易に設定することができる。
【０１３６】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１３７】
（付記１）仮想マシン上で実行されるプロセスの識別情報と、該プロセスの実行の際の挙動を示す情報とを取得して記憶部に順次記憶し、
前記仮想マシンへのソフトウェアの導入を検出すると、前記記憶部に記憶された情報を参照して、該導入の前後でプロセスの実行の際の挙動の変化が所定の基準を超えるプロセスの識別情報を特定し、
特定した前記プロセスの識別情報を、前記ソフトウェアの動作を監視する監視プロセスに通知する、
処理をコンピュータに実行させることを特徴とする通知制御プログラム。
【０１３８】
（付記２）前記プロセスの実行の際の挙動は、前記プロセスにより使用されるハードウェアの利用状況、又は、前記プロセスの実行により利用されるポートである、
ことを特徴とする付記１に記載の通知制御プログラム。
【０１３９】
（付記３）前記特定する処理は、前記仮想マシンへのミドルウェアの導入を検出すると、前記ミドルウェアの導入の前後でプロセスの実行の際の挙動の変化が所定の基準を超えるプロセスの識別情報を特定することを特徴とする付記１または２に記載の通知制御プログラム。
【０１４０】
（付記４）前記特定する処理は、前記仮想マシンへのミドルウェアの導入を検出した後に前記仮想マシンへのアプリケーションプログラムの導入を検出すると、前記アプリケーションプログラムの導入の前後でプロセスの実行の際の挙動の変化が所定の基準を超えるプロセスの識別情報を特定することを特徴とする付記１または２に記載の通知制御プログラム。
【０１４１】
（付記５）仮想マシン上で実行されるプロセスの識別情報と、該プロセスの実行の際の挙動を示す情報とを取得して記憶部に順次記憶し、
前記仮想マシンへのソフトウェアの導入を検出すると、前記記憶部に記憶された情報を参照して、該導入の前後でプロセスの実行の際の挙動の変化が所定の基準を超えるプロセスの識別情報を特定し、
特定した前記プロセスの識別情報を、前記ソフトウェアの動作を監視する監視プロセスに通知する、
処理をコンピュータが実行することを特徴とする通知制御方法。
【０１４２】
（付記６）前記プロセスの実行の際の挙動は、前記プロセスにより使用されるハードウェアの利用状況、又は、前記プロセスの実行により利用されるポートである、
ことを特徴とする付記５に記載の通知制御方法。
【０１４３】
（付記７）前記特定する処理は、前記仮想マシンへのミドルウェアの導入を検出すると、前記ミドルウェアの導入の前後でプロセスの実行の際の挙動の変化が所定の基準を超えるプロセスの識別情報を特定することを特徴とする付記５または６に記載の通知制御方法。
【０１４４】
（付記８）前記特定する処理は、前記仮想マシンへのミドルウェアの導入を検出した後に前記仮想マシンへのアプリケーションプログラムの導入を検出すると、前記アプリケーションプログラムの導入の前後でプロセスの実行の際の挙動の変化が所定の基準を超えるプロセスの識別情報を特定することを特徴とする付記５または６に記載の通知制御方法。
【０１４５】
（付記９）仮想マシン上で実行されるプロセスの識別情報と、該プロセスの実行の際の挙動を示す情報とを取得して順次記憶する記憶部と、
前記仮想マシンへのソフトウェアの導入を検出すると、前記記憶部に記憶された情報を参照して、該導入の前後でプロセスの実行の際の挙動の変化が所定の基準を超えるプロセスの識別情報を特定する特定部と、
特定した前記プロセスの識別情報を、前記ソフトウェアの動作を監視する監視プロセスに通知する通知部と、
を有することを特徴とする情報処理装置。
【０１４６】
（付記１０）前記プロセスの実行の際の挙動は、前記プロセスにより使用されるハードウェアの利用状況、又は、前記プロセスの実行により利用されるポートである、
ことを特徴とする付記９に記載の情報処理装置。
【０１４７】
（付記１１）前記特定する処理は、前記仮想マシンへのミドルウェアの導入を検出すると、前記ミドルウェアの導入の前後でプロセスの実行の際の挙動の変化が所定の基準を超えるプロセスの識別情報を特定することを特徴とする付記９または１０に記載の情報処理装置。
【０１４８】
（付記１２）前記特定する処理は、前記仮想マシンへのミドルウェアの導入を検出した後に前記仮想マシンへのアプリケーションプログラムの導入を検出すると、前記アプリケーションプログラムの導入の前後でプロセスの実行の際の挙動の変化が所定の基準を超えるプロセスの識別情報を特定することを特徴とする付記９または１０に記載の情報処理装置。
【符号の説明】
【０１４９】
１０  情報処理装置
２０  開発者端末
１００  仮想マシン管理部
１０１  実行部
１０２  取得部
１０３  記憶部
１０４  特定部
１０５  通知部
１０６  監視部
１１０  サービス構築部
１１１  サービスインフラ
１２０1，１２０2  アプリケーションプログラム
１３０1，１３０2  仮想マシン
２００  監視設定部
１０００  ＣＰＵ
１００２  ＲＡＭ
１００３  ストレージ
【図１】
2019212244.tif 000003
【図２】
2019212244.tif 000004
【図３】
2019212244.tif 000005
【図４】
2019212244.tif 000006
【図５】
2019212244.tif 000007
【図６】
2019212244.tif 000008
【図７】
2019212244.tif 000009
【図８】
2019212244.tif 000010
【図９】
2019212244.tif 000011
【図１０】
2019212244.tif 000012
【図１１】
2019212244.tif 000013