(57)【特許請求の範囲】
【請求項１】
情報システムの構成情報を収集する収集手段と、
収集した前記構成情報に基づいて、前記情報システム内のいずれかの監視対象装置に導入される、情報サービスの提供に用いられる第１のアプリケーションと該第１のアプリケーションにデプロイされる第２のアプリケーションとの組み合わせについて、該第１のアプリケーションのアプリケーション名が一致し、且つ、第２のアプリケーションのアプリケーション名が一致する複数の組み合わせが存在する場合に、多重化されているアプリケーションが存在することを検出する検出手段と、
を備えることを特徴とする検出装置。
【請求項２】
情報システムの構成情報と前記情報システム内で伝送される通信データとを含む情報を収集する収集手段と、
収集した前記構成情報と前記通信データとに基づいて、前記情報システム内のいずれかの監視対象装置にデプロイされるアプリケーションにアプリケーション名が一致するアプリケーションが複数存在する場合に、該複数存在するアプリケーションのサブネットアドレスが一致するアプリケーションを、多重化されているアプリケーションとして検出する検出手段と、
を備えることを特徴とする検出装置。
【請求項３】
前記検出手段は、前記複数存在すると判定したアプリケーションについて、収集した前記構成情報に含まれるインターネットプロトコルアドレスとサブネットマスクとに基づいてサブネットアドレスを算出して、算出した前記サブネットアドレスが一致するアプリケーションを、前記多重化されているアプリケーションとして検出する、
ことを特徴とする請求項２記載の検出装置。
【請求項４】
情報システムの構成情報と前記情報システム内で伝送される通信データとを含む情報を収集する収集手段と、
収集した前記構成情報と前記通信データとに基づいて、前記情報システム内のいずれかの監視対象装置にデプロイされるアプリケーションにアプリケーション名が一致するアプリケーションが複数存在する場合に、該複数存在するアプリケーションについて、前記収集した情報から該アプリケーションの前後に実行されるアプリケーションのアプリケーション名である前アプリ名と後アプリ名とを含むトランザクションコンテキストを抽出し、抽出したトランザクションコンテキストを構成する前アプリ名と後アプリ名が一致するアプリケーションを、多重化されているアプリケーションとして検出する検出手段と、
を備えることを特徴とする検出装置。
【請求項５】
情報システムの構成情報と前記情報システム内で伝送される通信データとを含む情報を収集する収集手段と、
収集した前記構成情報と前記通信データとに基づいて、前記情報システム内のいずれかの監視対象装置にデプロイされるアプリケーションにアプリケーション名が一致するアプリケーションが複数存在する場合に、該複数存在するアプリケーションについて、前記収集した情報から該アプリケーションの送受信データである要求メッセージと応答メッセージを含むトランザクション情報を抽出し、抽出したトランザクション情報に含まれる該要求メッセージと該応答メッセージが一致するアプリケーションを、多重化されているアプリケーションとして検出する検出手段と、
を備えることを特徴とする検出装置。
【請求項６】
情報システムの構成情報と前記情報システム内で伝送される通信データとを含む情報を収集する収集手段と、
前記収集した情報から、情報サービスを構成するための機能を提供する第１のアプリケーションのうちでアプリケーション名が一致する第１のアプリケーションを抽出し、該抽出した第１のアプリケーションについて、前記収集した情報から該抽出した第１のアプリケーションの前後に実行されるアプリケーションのアプリケーション名である前アプリ名と後アプリ名とを含むトランザクションコンテキストを抽出し、該抽出した第１のアプリケーションについて、前記収集した情報から、アプリケーション名が一致する第１のアプリケーションにデプロイされた第２のアプリケーションのアプリケーション名を抽出し、該抽出した第１のアプリケーションからなるアプリケーション群について、該抽出したトランザクションコンテキストを構成する前アプリ名と後アプリ名が一致する第１のアプリケーションであって、かつ該アプリケーション群に含まれる一つの第１のアプリケーションのアプリケーション名に対応する該第２のアプリケーションのアプリケーション名の一部と該アプリケーション群に含まれる他の第１のアプリケーションのアプリケーション名に対応する該第２のアプリケーションのアプリケーション名の一部が一致する部分一致の関係、または該アプリケーション群に含まれる一つの第１のアプリケーションのアプリケーション名に対応する該第２のアプリケーションのアプリケーション名に該アプリケーション群に含まれる他の第１のアプリケーションのアプリケーション名に対応する該第２のアプリケーションのアプリケーション名が含まれる包含関係にある第１のアプリケーションを、多重化されているアプリケーションとして検出する検出手段と、
を備えることを特徴とする検出装置。
【請求項７】
コンピュータが情報システムで実行されるアプリケーションの稼動状態を管理する方法において、
前記情報システムの構成情報を収集し、
収集した前記構成情報に基づいて、前記情報システム内のいずれかの監視対象装置に導入される、情報サービスの提供に用いられる第１のアプリケーションと該第１のアプリケーションにデプロイされる第２のアプリケーションとの組み合わせについて、該第１のアプリケーションのアプリケーション名が一致し、且つ、第２のアプリケーションのアプリケーション名が一致する複数の組み合わせが存在する場合に、多重化されているアプリケーションが存在することを検出する、
ことを特徴とする検出方法。
【請求項８】
コンピュータが情報システムで実行されるアプリケーションの稼動状態を管理する方法において、
前記情報システムの構成情報と前記情報システム内で伝送される通信データとを含む情報を収集し、
収集した前記構成情報と前記通信データとに基づいて、前記情報システム内のいずれかの監視対象装置にデプロイされるアプリケーションにアプリケーション名が一致するアプリケーションが複数存在する場合に、該複数存在するアプリケーションのサブネットアドレスを算出し、算出したサブネットアドレスが一致するアプリケーションを、多重化されているアプリケーションとして検出する、
ことを特徴とする検出方法。
【請求項９】
コンピュータが情報システムで実行されるアプリケーションの稼動状態を管理する方法において、
前記情報システムの構成情報と前記情報システム内で伝送される通信データとを含む情報を収集し、
収集した前記構成情報と前記通信データとに基づいて、前記情報システム内のいずれかの監視対象装置にデプロイされるアプリケーションにアプリケーション名が一致するアプリケーションが複数存在する場合に、該複数存在するアプリケーションについて、前記収集した情報から該アプリケーションの前後に実行されるアプリケーションのアプリケーション名である前アプリ名と後アプリ名とを含むトランザクションコンテキストを抽出し、抽出したトランザクションコンテキストを構成する前アプリ名と後アプリ名が一致するアプリケーションを、多重化されているアプリケーションとして検出する、
ことを特徴とする検出方法。
【請求項１０】
コンピュータが情報システムで実行されるアプリケーションの稼動状態を管理する方法において、
前記情報システムの構成情報と前記情報システム内で伝送される通信データとを含む情報を収集し、
収集した前記構成情報と前記通信データとに基づいて、前記情報システム内のいずれかの監視対象装置にデプロイされるアプリケーションにアプリケーション名が一致するアプリケーションが複数存在する場合に、該複数存在するアプリケーションについて、前記収集した情報から該アプリケーションの送受信データである要求メッセージと応答メッセージを含むトランザクション情報を抽出し、抽出したトランザクション情報に含まれる該要求メッセージと該応答メッセージが一致するアプリケーションを、多重化されているアプリケーションとして検出する、
ことを特徴とする検出方法。
【請求項１１】
コンピュータが情報システムで実行されるアプリケーションの稼動状態を管理する方法において、
前記情報システムの構成情報と前記情報システム内で伝送される通信データとを含む情報を収集し、
前記収集した情報から、情報サービスを構成するための機能を提供する第１のアプリケーションのうちでアプリケーション名が一致する第１のアプリケーションを抽出し、
前記抽出した第１のアプリケーションについて、前記収集した情報から前記抽出した第１のアプリケーションの前後に実行されるアプリケーションのアプリケーション名である前アプリ名と後アプリ名とを含むトランザクションコンテキストを抽出し、
前記抽出した第１のアプリケーションについて、前記収集した情報から、アプリケーション名が一致する第１のアプリケーションにデプロイされた第２のアプリケーションのアプリケーション名を抽出し、
前記抽出した第１のアプリケーションからなるアプリケーション群について、前記抽出したトランザクションコンテキストを構成する前アプリ名と後アプリ名が一致する第１のアプリケーションであって、かつ該アプリケーション群に含まれる一つの第１のアプリケーションのアプリケーション名に対応する前記第２のアプリケーションのアプリケーション名の一部と該アプリケーション群に含まれる他の第１のアプリケーションのアプリケーション名に対応する前記第２のアプリケーションのアプリケーション名の一部が一致する部分一致の関係、または該アプリケーション群に含まれる一つの第１のアプリケーションのアプリケーション名に対応する前記第２のアプリケーションのアプリケーション名に該アプリケーション群に含まれる他の第１のアプリケーションのアプリケーション名に対応する前記第２のアプリケーションのアプリケーション名が含まれる包含関係にある第１のアプリケーションを、多重化されているアプリケーションとして検出する、
ことを特徴とする検出方法。
【請求項１２】
情報システムで実行されるアプリケーションの稼動状態を管理するコンピュータに、
前記情報システムの構成情報を収集し、
収集した前記構成情報に基づいて、前記情報システム内のいずれかの監視対象装置に導入される、情報サービスの提供に用いられる第１のアプリケーションと該第１のアプリケーションにデプロイされる第２のアプリケーションとの組み合わせについて、該第１のアプリケーションのアプリケーション名が一致し、且つ、第２のアプリケーションのアプリケーション名が一致する複数の組み合わせが存在する場合に、多重化されているアプリケーションが存在することを検出する、
機能を実行させるためのプログラム。
【請求項１３】
情報システムで実行されるアプリケーションの稼動状態を管理するコンピュータに、
前記情報システムの構成情報と前記情報システム内で伝送される通信データとを含む情報を収集し、
収集した前記構成情報と前記通信データとに基づいて、前記情報システム内のいずれかの監視対象装置にデプロイされるアプリケーションにアプリケーション名が一致するアプリケーションが複数存在する場合に、該複数存在するアプリケーションのサブネットアドレスを算出し、算出したサブネットアドレスが一致するアプリケーションを、多重化されているアプリケーションとして検出する、
機能を実行させるためのプログラム。
【請求項１４】
情報システムで実行されるアプリケーションの稼動状態を管理するコンピュータに、
前記情報システムの構成情報と前記情報システム内で伝送される通信データとを含む情報を収集し、
収集した前記構成情報と前記通信データとに基づいて、前記情報システム内のいずれかの監視対象装置にデプロイされるアプリケーションにアプリケーション名が一致するアプリケーションが複数存在する場合に、該複数存在するアプリケーションについて、前記収集した情報から該アプリケーションの前後に実行されるアプリケーションのアプリケーション名である前アプリ名と後アプリ名とを含むトランザクションコンテキストを抽出し、抽出したトランザクションコンテキストを構成する前アプリ名と後アプリ名が一致するアプリケーションを、多重化されているアプリケーションとして検出する、
機能を実行させるためのプログラム。
【請求項１５】
情報システムで実行されるアプリケーションの稼動状態を管理するコンピュータに、
前記情報システムの構成情報と前記情報システム内で伝送される通信データとを含む情報を収集し、
収集した前記構成情報と前記通信データとに基づいて、前記情報システム内のいずれかの監視対象装置にデプロイされるアプリケーションにアプリケーション名が一致するアプリケーションが複数存在する場合に、該複数存在するアプリケーションについて、前記収集した情報から該アプリケーションの送受信データである要求メッセージと応答メッセージを含むトランザクション情報を抽出し、抽出したトランザクション情報に含まれる該要求メッセージと該応答メッセージが一致するアプリケーションを、多重化されているアプリケーションとして検出する、
機能を実行させるためのプログラム。
【請求項１６】
情報システムで実行されるアプリケーションの稼動状態を管理するコンピュータに、
前記情報システムの構成情報と前記情報システム内で伝送される通信データとを含む情報を収集し、
前記収集した情報から、情報サービスを構成するための機能を提供する第１のアプリケーションのうちでアプリケーション名が一致する第１のアプリケーションを抽出し、
前記抽出した第１のアプリケーションについて、前記収集した情報から前記抽出した第１のアプリケーションの前後に実行されるアプリケーションのアプリケーション名である前アプリ名と後アプリ名とを含むトランザクションコンテキストを抽出し、
前記抽出した第１のアプリケーションについて、前記収集した情報から、アプリケーション名が一致する第１のアプリケーションにデプロイされた第２のアプリケーションのアプリケーション名を抽出し、
前記抽出した第１のアプリケーションからなるアプリケーション群について、前記抽出したトランザクションコンテキストを構成する前アプリ名と後アプリ名が一致する第１のアプリケーションであって、かつ該アプリケーション群に含まれる一つの第１のアプリケーションのアプリケーション名に対応する前記第２のアプリケーションのアプリケーション名の一部と該アプリケーション群に含まれる他の第１のアプリケーションのアプリケーション名に対応する前記第２のアプリケーションのアプリケーション名の一部が一致する部分一致の関係、または該アプリケーション群に含まれる一つの第１のアプリケーションのアプリケーション名に対応する前記第２のアプリケーションのアプリケーション名に該アプリケーション群に含まれる他の第１のアプリケーションのアプリケーション名に対応する前記第２のアプリケーションのアプリケーション名が含まれる包含関係にある第１のアプリケーションを、多重化されているアプリケーションとして検出する、
機能を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散コンピューティング環境におけるアプリケーション多重関係を検出する装置、方法、およびプログラムに関する。
【背景技術】
【０００２】
ＩＴ（Information Technology）システムで、構成情報とトランザクションを監視することによりシステム上で実行されるアプリケーションを管理する技術では、システム内のコンピュータがどのように連携してＩＴサービスを実現しているかを動的に検出することが求められる。このような技術により、運用管理者はＩＴシステムをＩＴサービスの観点で運用管理・トラブルシュートできる。
【０００３】
例えば、Ｗｅｂ（ウェブ）サーバとアプリケーションサーバとデータベースサーバが連携して動作しているＩＴサービスで、利用者が見ているＷｅｂページでの指示が動作しなくなったとき、そのサービスを実現するサーバ間のどこで問題が発生したかを把握する必要がある。
【０００４】
このような監視機能を実現する従来技術としては、監視対象となるＩＴシステム内のウェブサーバやアプリケーションサーバ、データベースサーバ間を流れるトランザクションを収集、分析する技術が知られている。
【０００５】
また、ＩＴシステム内の各コンピュータの構成情報やアプリケーションの情報を収集する技術が知られている。
更に、アプリケーションプログラムが複数のコンピュータ上で同時に実行される多重コンピュータシステムのアーキテクチャを開示した技術が知られている（例えば特許文献１）。
【０００６】
加えて、アプリケーションソフトウェア内等で許可されたユーザの特定のトランザクションアクセスパターンについてのユーザ行動プロフィールを構築し異例のトランザクション活動を検知する技術が知られている（例えば特許文献２に記載の技術）。
【０００７】
企業が構築するＩＴシステムでは、負荷分散やリスク回避のために、ＩＴサービスを構成するアプリケーションを多重化して、分散コンピューティング環境で運用することが行なわれる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特表２００７−５３４０６６号公報
【特許文献２】特表２００６−５１９４３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、従来技術では、ＩＴシステム内に多重化されたアプリケーションがあるかどうかを検出できないため、多重化されたアプリケーションがあっても、それぞれを別々のアプリケーションと判断してしまう。
【００１０】
そのため、従来技術は、負荷分散のために多重化されているアプリケーションの一方でトラブルが発生しＩＴサービスの一部が停止した場合と、多重化されていないアプリケーションでトラブルが発生しＩＴサービス全体が停止した場合の違いを検出できない。
【００１１】
そこで、１つの側面では、本発明は、ＩＴシステムのアプリケーション管理において、多重化されたアプリケーションを検出可能とすることを目的とする。
【課題を解決するための手段】
【００１２】
態様の一例では、情報システムの構成情報を収集する収集手段と、収集した前記構成情報に基づいて、前記情報システム内のいずれかの監視対象装置に導入される、情報サービスの提供に用いられる第１のアプリケーションと該第１のアプリケーションにデプロイされる第２のアプリケーションとの組み合わせについて、該第１のアプリケーションのアプリケーション名が一致し、且つ、第２のアプリケーションのアプリケーション名が一致する複数の組み合わせが存在する場合に、多重化されているアプリケーションが存在することを検出する検出手段とを備えることを特徴とする検出装置を提供する。
【発明の効果】
【００１３】
多重化されたアプリケーションを検出することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】一般的なＩＴシステム監視によるトラブルシュートの例を示す図である。
【図２】ＩＴシステム監視を使用しない場合の例を示す図である。
【図３】一般的なＩＴシステムの全体構成図である。
【図４】運用状態に合った適切なアラートの発生の説明図である。
【図５】ロードバランサを使わないクラスタリングの例を示す図である。
【図６】ロードバランサを使わないクラウド環境の例を示す図である。
【図７】本発明の第１の実施形態の各手法の組み合わせ一覧を示す図である。
【図８】トランザクションコンテキストあるいはトランザクション情報を用いたアプリケーション多重化検出の説明図である。
【図９】アプリ名が部分一致である例を示す図である。
【図１０】トランザクションコンテキストによる部分一致アプリの検出を用いたアプリケーション多重化検出の説明図である。
【図１１】トランザクション情報による部分一致アプリの検出の説明図である。
【図１２】アプリ名が包含関係である例を示す図である。
【図１３】トランザクションコンテキストによる包含アプリの検出の説明図である。
【図１４】トランザクション情報による包含アプリの検出を用いたアプリケーション多重化検出の説明図である。
【図１５】実施形態の機能構成図である。
【図１６】実施形態のシステム構成図である。
【図１７】実施形態の全体処理を示すフローチャートである。
【図１８】アラートの通知方法の違いの説明図である。
【図１９】本発明の実施形態の第１の実施形態の全体処理を示すフローチャートである。
【図２０】多重化アプリ候補のデータ構成例を示す図である。
【図２１】サブネットによる篩い分け処理であるサブフロー１を示す図である。
【図２２】サブネットによる篩い分けの説明図である。
【図２３】トランザクションコンテキストによる篩い分け処理であるサブフロー２を示す図である。
【図２４】トランザクションコンテキストのデータ構成例を示す図である。
【図２５】トランザクション情報による篩い分け処理であるサブフロー３を示す図である。
【図２６】トランザクション情報のデータ構成例を示す図である。
【図２７】トランザクション情報による多重化アプリの特定の説明図である。
【図２８】部分一致または包含を用いた篩い分け処理であるフローチャートを示す図である。
【図２９】アプリ名が部分一致する多重化アプリの検出用データの例を示す図である。
【図３０】アプリ名が包含関係の多重化アプリ検出用データの例を示す図である。
【図３１】アプリ名が部分一致する多重化アプリの検出動作の説明図である。
【図３２】アプリ名が包含関係の多重化アプリの検出動作の説明図である。
【図３３】トランザクションコンテキストによる部分一致アプリ、包含アプリの検出処理を示すサブフロー４である。
【図３４】トランザクション情報による部分一致アプリ、包含アプリの検出処理を示すサブフロー5である。
【図３５】本発明の第２の実施形態の処理を示すフローチャートである。
【図３６】本発明の第２の実施形態の説明図である。
【図３７】本発明の第３の実施形態の処理を示すフローチャートである。
【図３８】アラート表示例を示す図である。
【図３９】ＣＭＤＢからのコンテナアプリ名一覧取得データ例を示す図である。
【図４０】ＣＭＤＢからのサブネットアドレス取得データ例を示す図である。
【図４１】（１）ＣＭＤＢからのトランザクションコンテキスト取得データ例を示す図である。
【図４２】（２）ＣＭＤＢからのトランザクションコンテキスト取得データ例を示す図である。
【図４３】ＣＭＤＢから取得したトランザクション情報のデータ例を示す図である。
【図４４】ＣＭＤＢから取得したＩＴサービスのデータ例を示す図である。
【図４５】本実施形態のシステムを実現可能なハードウェアシステムの構成図である。
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
まず、一般的なＩＴシステムのアプリケーション管理技術について説明する。
例えば図１のように、一般的なＩＴシステムの運用管理では、例えば、利用者が見ているＷｅｂページでの指示が動作しなくなったとき、そのサービスを実現するサーバＡ，Ｂ，Ｃ間の繋がりが分かり、例えば、サーバＢとＣの間で問題が起こっているようだということを把握できる。これに対して、図２のように、サーバ間がどのように連携しているのかを把握できていなければ、トラブルへの対処が遅れることになる。
【００１６】
そこで、一般的なＩＴシステムでは、図３のように、監視対象となるＩＴシステム内のウェブサーバやアプリケーションサーバ、データベースサーバ間を流れるトランザクション情報をトランザクション収集装置に記憶する。トランザクション収集装置は、トランザクションの内容を分析する。また、トランザクション収集装置は、ＩＴシステム内の各コンピュータの構成情報やコンテナアプリ、コンテナアプリ上にデプロイされているアプリケーションの情報を収集する。トランザクション収集装置が収集したデータは、構成管理データベース(ＣＭＤＢ)に登録される。そして、収集した情報を、管理コンソールを通じて閲覧可能にしている。監視対象となっているＩＴサービスが定義されたサービスレベルを違反すると、アラートを発生させ、運用管理者に問題を報告する。
【００１７】
ここで、以降の説明において使用する各種用語について、以下のように定義する。
□ＩＴシステム：
企業活動を実現するために構築された情報処理システム。
□ＩＴサービス：
サーバやストレージ、アプリケーションの集合体であり、それらがお互いに連携することで、ユーザに価値を与える。
□構成情報：
ＩＴシステムのサーバハードウェアやソフトウェア、プロセス、アプリケーションなどの情報のことをいう。後述するコンテナアプリ、デプロイドアプリも含まれる。
□ＣＭＤＢ：
Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｍａｎａｇｅｍｅｎｔ  Ｄａｔａｂａｓｅの略。構成管理データベースのこと。ＩＴシステムを構成するすべての構成アイテムの情報を一元的に管理するもの。各構成アイテムを関連付けて管理できる。
□トランザクション情報：
ＩＴシステム内のコンピュータがネットワークケーブルを通じて他のコンピュータに対して送信する信号の情報、すなわち通信データ。トランザクション送信元のＩＰアドレス、トランザクションを受信する宛て先のＩＰアドレス、そのトランザクションの要求メッセージ、要求メッセージに対する応答メッセージが含まれる。
□コンテナアプリ：
ウェブサーバやアプリケーションサーバ、データベースサーバなど、ＩＴサービスを構成するための機能を提供する基盤ソフトウェア。例えば、Ａｐａｃｈｅ  ＨＴＴＰ  Ｓｅｒｖｅｒ，ＩＩＳ等のウェブサーバがある。また、Ｉｎｔｅｒｓｔａｇｅ，Ｔｏｍｃａｔ，ＪＢｏｓｓ，ＷｅｂＬｏｇｉｃ等のアプリケーションサーバがある。さらに、Ｓｙｍｆｏｗａｒｅ，Ｏｒａｃｌｅ  Ｄａｔａｂａｓｅ  Ｓｅｒｖｅｒ，ＭｙＳＱＬ等のデータベースサーバがある。「Ａｐａｃｈｅ」は、Ａｐａｃｈｅ  Ｓｏｆｔｗａｒｅ  Ｆｏｕｎｄａｔｉｏｎの登録商標である。「Ｉｎｔｅｒｓｔａｇｅ」「Ｓｙｍｆｏｗａｒｅ」は、富士通株式会社の登録商標である。「ＩＩＳ」は、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎの登録商標である。「ＭｙＳＱＬ」は、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓの登録商標である。
□デプロイドアプリ：
コンテナアプリにデプロイされた、プログラムやデータ。このアプリがＩＴサービスの処理を担当している。例：ウェブサーバの設定情報、Ｊａｖａサーブレット、ＪＳＰ、データベースのテーブル等。
□ディープディスカバリ機能：
コンテナアプリ、デプロイドアプリを検出・監視するための機能。コンテナアプリやデプロイドアプリのアプリケーション名(以下、アプリ名)、稼動状態、設定情報などを抽出する。
□ＳＮＭＰ：
Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌの略。ネットワーク機器の監視・制御のための情報を通信するためのプロトコル。
□多重化：
コンピュータの性能向上や負荷分散して可用性を向上するため、同じ機能を持った複数のコンテナアプリ（またはデプロイドアプリ）を同一、または複数のサーバにデプロイ（インストール）し、コンテナアプリのときはインストールといい、デプロイドアプリのときはデプロイというが、一般的にインストールともいう。
□多重化アプリ：
多重化しているアプリを、ここでは多重化アプリと呼ぶ。
□トランザクションコンテキスト：
ＩＴサービスを実現するために実行されるデプロイドアプリの前後関係データ。例えば、後述する図４中でＩＴサービスＡがＷｅｂ２，Ａｐｐ３，ＤＢ１という順序で実行されているとき、Ｗｅｂ２からＡｐｐ３のデプロイドアプリＡを実行し、デプロイドアプリＡはＤＢ１のテーブルＡの情報を参照しているというトランザクションの順序情報。トランザクション収集装置の情報を分析して得る。
□サービスレベル：
ＩＴサービスの範囲と品質に関する尺度。
【００１８】
ここで、図１から図３で説明したような一般的なアプリケーション管理では、以下のような問題がある。
【００１９】
まず、ＩＴサービスが多重化されているとき、間違ったアラートを発生させることがある。例えば企業が構築するＩＴシステムでは、負荷分散やリスク回避のためにＩＴサービスを構成するコンテナアプリを多重化して運用することが行なわれる。しかし、一般的なアプリケーション管理技術では、トランザクション同士の関係を判断するための十分な情報を検出できない。一般的なアプリケーション管理技術では、ネットワーク機器を通過するコンピュータ間のトランザクションを記憶して、トランザクション収集装置で収集・分析する。また、その通信の中に特定の識別子があると、それが何というコンテナアプリであるかを判断できる定義をもっている。そのため、あるトランザクションがどのコンピュータ間でのやりとりかを把握することと、その通信が何というコンテナアプリによるものかを判断することができる。しかし、各トランザクション同士がどういう関係かを判断するための情報が十分ではない。例えば、同じロードバランサに繋がっていれば多重化アプリであるというような定義を十分に揃えれば、多重化アプリを検出できるが、その場合はＩＴシステムの構築方法毎に無数の定義が必要になる。このため一般的なアプリケーション管理技術では、ＩＴシステム内に多重化アプリがあるかどうかを簡単には検出できないため、多重化アプリがあっても、それぞれを別々のアプリと判断してしまう。そのため、負荷分散のために多重化されているアプリのうちの一方でトラブルが発生してＩＴサービスの一部が停止した場合と、多重化されていないアプリでトラブルが発生してＩＴサービス全体が停止した場合の違いを検出できない。さらに、ＩＴサービスの一部が停止したが、実際にはＩＴサービスが継続できている状態でも、ＩＴサービスが停止したという間違ったアラートを発生させてしまう。
【００２０】
ＩＴサービスが停止した場合、企業にとってユーザの信頼を失うなどの重大な損失が発生するリスクがあるため、多くの人員を導入するなどの対処が必要となり、問題解決にかかるコストが高い。一方、ＩＴサービスの一部が停止しただけならば、問題解決のために導入する人員を少なくでき、コストを抑えられる。そのため、管理コンソールでは、複数検出されたＩＴサービスのうち、多重化されているものは束ねて一つのＩＴサービスだと分かるようにした方が適切と言える。
【００２１】
また、例えば図４において、ウェブサーバ、ロードバランサＬＢ１に接続されたＷｅｂ１，Ｗｅｂ２、Ｗｅｂ３あるいはロードバランサＬＢ２に接続されたアプリケーションサーバＡｐｐ１、Ａｐｐ２，Ａｐｐ３は、それぞれ同じものが複数個あるので、多重化されている。ロードバランサＬＢ１によってＷｅｂ１、Ｗｅｂ２、Ｗｅｂ３が多重化されていることを検出できればＷｅｂ１がシステムダウンしても、ＩＴサービスＡは稼動していることを示すことができる。ＩＴサービスを構成するサーバやソフトの一部でトラブルが発生した場合、多重関係にあるＩＴサービスを含めて表示できたほうが良い。また、サービスの一部が停止しただけで、他の多重関係にあるサービスによって業務が継続できる状態の場合は、アラートのレベルを業務が停止した場合よりも下げ、運用管理者がリスクに見合った措置を取れるようにする必要がある。一方、多重関係にあるＩＴサービスが複数、または全て停止していることが検出される場合、通常よりもインパクトの強いトラブルと言えるため、アラートレベルを上げる必要がある。
【００２２】
さらに、ＩＴサービスが多重化されているとき、多重化アプリを検出できる環境が制限される。例えば、一般的なアプリケーション管理技術では、ＳＮＭＰによって監視対象の構成情報を監視しているのである。ＳＮＭＰによってネットワーク上のロードバランサから構成情報を取得すると、どのサーバがロードバランサによって多重化されているかを検出できる。しかし、例えば図５のような構成を有するクラスタリング環境や、図６のような構成を有するクラウド環境のように、ロードバランサ以外の機器を利用して多重化している場合はこの方法が使えない。
【００２３】
クラスタリング環境とは、複数のコンピュータを結合し、クラスタとしてひとまとまりのシステムにしたものであり、それらを実現するためのソフトウェアやハードウェア、更には実現されたシステムを指す。クラスタ内の複数のコンピュータは何らかのネットワークを介して相互に接続され、ひとつのコンピュータシステムとして扱えるように制御されている。その結果、一台のコンピュータでは得られない、性能や可用性などを得ることができる。図５において、例えばＩｎｔｅｒｓｔａｇｅとＳｙｍｆｏｗａｒｅはクラスタ化され、その中で２つのＩｎｔｅｒｓｔａｇｅは多重化されている。クラスタはロードバランサで対応できないため、この多重化を検出できない。
【００２４】
また、クラウド（ｃｌｏｕｄ）環境とは、ネットワーク、例えば、インターネットをベースとしたコンピュータの利用環境をいう。図６において、ユーザはインターネットに接続されたコンピュータリソース全体をクラウドとして利用し、ネットワーク経由で、ＩＴサービスを利用する。クラウドにおいては、日々多重化関係が変化することもあるが、この多重化も検出できない。
【００２５】
クラスタリング環境により性能向上や可用性向上を図ったり、クラウド環境によりシステム構築コストを削減することは企業が構築するＩＴシステムでは一般的に利用されている手法である。このため、ＳＮＭＰを利用するシステム監視方法だけでは、対応できるＩＴシステムが限られてしまう。そのため、多くの環境に対応できる多重化アプリ検出方法が必要となる。
【００２６】
そこで、後述する実施形態では、以下の手段Ａ，Ｂ，Ｃ，Ｄ，Ｅの機能を実装する。図７は本発明の実施態様の各手段Ａ，Ｂ，Ｃ，Ｄを示す。尚、手段Ｅは、図示を省略した。
【００２７】
＜手段Ａ（多重化アプリ検出部）＞
ＩＴシステム上の監視対象にデプロイされているアプリのアプリ名(コンテナアプリ名やデプロイドアプリ名)が一致するかを評価することで多重化アプリを検出し、その情報に基づき適切なアラートを出す。
【００２８】
＜手段Ｂ（多重化アプリ検出部）＞
手段Ａにサブネットのチェック手順を加えたもの。
アプリ名とサブネットが一致するかどうかを評価する。これにより、多重化アプリの誤検出を軽減する。検出した多重化アプリの情報に基づき適切なアラートを出す。
一般的に異なるサブネットで多重化が行われることはない、という知見に基づく。
【００２９】
＜手段Ｃ（多重化アプリ検出部）＞
手段Ａにトランザクションコンテキストのチェック手順を加えたもの。
アプリ名とトランザクションコンテキストを分析することで多重化アプリを検出し、その情報に基づき適切なアラートを出す。
【００３０】
＜手段Ｄ（多重化アプリ検出部）＞
手段Ａにトランザクション情報のチェック手順を加えたもの。
アプリ名とトランザクション情報を分析することで多重化アプリを検出し、その情報に基づき適切なアラートを出す。
【００３１】
＜手段Ｅ（多重化アプリ検出部）＞
手段Ｃのトランザクションコンテキストの分析または手段Ｄのトランザクション情報の分析において、部分一致関係または包含関係にあるアプリケーションを手段Ａに加えて検出することにより、多重化アプリの検出をする。
【００３２】
さらに、上記手段は必要に応じて、図７に示されるように組み合わせることができる。手段Ａが最も基本的な方法である。手段Ｂ以降は、表の縦方向の下になるほど、複雑な検出手法となっている。尚、手段Ｅは、図示を省略化した。監視システムの性能の観点から、できるだけ簡単な検出手法を選択できたほうがよいと思われるため、まず手段Ａを試してみて、運用管理者が把握している多重化アプリが検出されなかった場合、もしくは、後述する誤検出や検出漏れ条件に当てはまる場合、手段Ｂ、手段Ｃ、手段Ｄを段階的に使っていくことで消費するリソースを少なくできる。すなわち、手段Ａ，Ｂ，Ｃ，Ｄを手段Ｂ＋Ｃ、Ｂ＋Ｄ、Ｃ＋Ｄ、Ｂ＋Ｃ＋Ｄあるいは手段Ｅのいずれかを使用して、多重化アプリを検出する。また、初めから手段Ｂ+Ｃ+Ｄの方法を使い、運用管理者が多重化されていることを把握していなかった多重化アプリを検出するなどの使い方もありうる。
【００３３】
以下、各手法について説明する。
（Ａ）手段Ａでは、多重化アプリを検出するために、ディープディスカバリ機能により収集したアプリ名を使用する。この情報を使うことで同一の目的でデプロイされたアプリの組み合わせが検出できる。例えば、図４のアプリケーションサーバ(Ａｐｐ１,Ａｐｐ２,Ａｐｐ３)は、負荷分散のために多重化されている。これらのアプリケーションサーバには同一のコンテナアプリ、デプロイドアプリがデプロイされていると考えられる。そのため、これらのアプリ名は一致するはずである。したがって、アプリ名を評価することで多重化アプリを検出することが可能となる。
【００３４】
ただし、手段Ａのみでは、以下のようなケースでは、誤検出することや検出漏れが発生することがある。
【００３５】
（１）多重化されていないがアプリ名（コンテナアプリ名またはデプロイドアプリ名）が一致するケース(誤検出)
・初期状態
アプリケーションサーバなどをインストールした直後の状態。どのアプリケーションサーバにも予め標準のアプリがデプロイされている可能性がある。これらはまだ多重化されている訳ではない。
・開発マシンと運用マシン
開発マシンは運用マシンと同名のアプリがデプロイされている可能性がある。開発マシンはＩＴシステム内に置かれていても、多重化されている訳ではない。しかし、アプリ名が一致するかどうかだけで評価すると誤検出してしまう。
・偶然アプリ名が一致した場合
異なる開発者が偶然同じアプリ名を使う可能性がある。
・故意にアプリ名を一致させた場合
テスト等の目的で同名の異なる機能を実装したアプリがデプロイされる可能性がある。
【００３６】
（２）多重化されているがアプリ名が一致しないケース(検出漏れ)
・アプリ名が部分一致、包含関係にある場合
アプリケーションを多重化しつつ、一部のマシンのみ別のデプロイドアプリもデプロイしている場合、アプリ名の一致のみでは多重化されているマシンを検出できない。
【００３７】
以上の問題により、アプリ名の一致を評価するだけでは誤検出する場合や検出できない場合がある。そこで、サブネットが一致するかを評価する(手段Ｂ)。さらに、トランザクションコンテキスト(手段Ｃ)、トランザクション情報(手段Ｄ)も合わせて利用する。
【００３８】
（Ｂ）まず、手段Ｂにより、多くの誤検出を防ぐことができる。例えば、開発マシンと運用マシンは同一サブネット内に置かれることは一般的にはあまり無いため、サブネットが異なると考えられる。そのため、サブネットの不一致を検出することで、多重化アプリの候補から外すことができる。この他の誤検出する可能性があるケースも、運用環境と同一のサブネットに置かれる可能性は低いという理由から、多重化アプリの候補から外すことができる。
【００３９】
そこで、手段Ｃまたは、手段Ｄも選択できるようにする。
（Ｃ）手段Ｃでは、アプリ名と共に、トランザクションコンテキストを利用する。この手段は、「前後のアプリは何か」が、評価する対象となる。トランザクションコンテキストを参照することで、多重化アプリの前に呼び出されるアプリと後に呼び出されるアプリが分かる。同じＩＴサービスとして機能するアプリなら、前に呼び出されるアプリと後に呼び出されるアプリが(前後が多重化されていなければ)一致する。
【００４０】
比較する内容として、コンテナアプリ名のみを利用する方法やコンテナアプリ名とデプロイドアプリ名を合わせて利用する方法、デプロイドアプリ名のみを利用する方法がある。デプロイドアプリ名まで深く評価するほど精度の向上が見込める。また、直前直後のみに限らず、前は１台、後ろは３台を比較対象に加えるなど、比較対象を柔軟に拡張できる。
【００４１】
例えば、図８の例では、トランザクションコンテキストＣｏｎ１,Ｃｏｎ２があり、Ｃｏｎ１はアプリ名がＢというアプリがデプロイされているサーバを通り、Ｃｏｎ２はアプリＢ'がデプロイされているサーバを通る。この例では、前アプリは１つ、次に、例として、コンテナアプリ名を比較して多重化アプリを検出する方法を示す。図８のアプリＢ、Ｂ'は共にアプリＡから要求メッセージを受信し、アプリＣに要求メッセージを送信する。そのため、ＢとＢ'は多重化アプリである。これを検出するには、Ｃｏｎ１から、Ｂの前アプリと後アプリがＡ、Ｃであることと、Ｃｏｎ２からＢ'の前アプリと後アプリがＡ、Ｃであることを検出し、前後のアプリ名が一致することから多重化アプリと判断する。
【００４２】
手段Ｃにより、「初期状態」ではトランザクションが流れていないことから多重化アプリの候補から除外でき、「開発マシンと運用マシン」、「偶然アプリ名が一致した場合」、「故意にアプリ名を一致させた場合」は、前後のアプリ名が異なることから多重化アプリの候補から除外できる。前後のアプリ名が偶然一致する可能性もあるが、ほぼ無視できる割合しか存在しないと思われる。
【００４３】
（Ｄ）手段Ｄは、手段Ｃとはトランザクション情報を利用する点が異なる。この手段は、アプリに流れ込む要求メッセージと応答メッセージ、アプリから流れ出す要求メッセージと応答メッセージが評価する対象となる。同じ機能を提供するアプリであれば、トランザクション情報の要求メッセージと応答メッセージが一致する。
【００４４】
例えば、図８のＢとＢ'がＡから要求を受け、Ｃへ要求メッセージを送信するならば、ＡからＢとＢ'に向けて送信されるトランザクションには、宛て先ＩＰは異なるが、送信元ＩＰと要求メッセージ、応答メッセージが一致するものが流れる。また、ＢとＢ'からＣに送信されるトランザクションは、送信元ＩＰが異なるが、宛て先ＩＰと要求メッセージ、応答メッセージが一致するものが流れる。
【００４５】
ＢとＢ'のアプリ名が一致し、トランザクション情報が一致する(ＢかＢ'が受信するトランザクションの場合は宛て先ＩＰ以外、ＢとＢ'が送信するトランザクションの場合は送信元ＩＰ以外)という条件を評価する。これにより、「初期状態」の場合はトランザクションが流れない。また、「開発マシンと運用マシン」、「偶然アプリ名が一致した場合」、「故意にアプリ名を一致させた場合」は、トランザクション情報が異なる。これらにより、多重化候補から除外できる。
【００４６】
手段Ｄでは要求メッセージ、応答メッセージのみを評価する方法が採用されてもよい。これにより、例えば図４のアプリケーションサーバの前にウェブサーバが多重化されている場合などのように、前後のアプリが多重化されている場合に、検出率を高くできる。
【００４７】
一方、手段Ｃまたは手段Ｄにおいて、複数種類のトランザクションコンテキストまたはトランザクション情報すべてに一致していれば多重化と判断する方法や、どれか一つのトランザクションコンテキストまたはトランザクション情報が一致していれば多重化と判断する方法などを環境に合わせて選択できるようにしてもよい。これにより、データベースサーバのように、前後のアプリとの間に複数種類のトランザクションが流れる場合に対応することができる。すべてのトランザクションコンテキストまたはトランザクション情報が一致しているか確認する方法は、計算コストは高いが正確に多重化アプリを検出できる。一方、どれか一つのトランザクションコンテキストまたはトランザクション情報が一致しているか確認する方法では、一致を検出したら計算を終了でき、計算コストが少なくて済む。
【００４８】
（Ｅ）多重化されているがアプリ名が一致しない場合は、手段Ｅを適用できる。手段Ｅでは、手段Ｃのトランザクションコンテキストの分析または手段Ｄのトランザクション情報の分析において、包含関係または部分一致関係にあるアプリケーションを手段Ａのアプリ名に加えて検出することにより、多重化アプリの検出漏れを防げる。
【００４９】
例として、アプリケーションが部分一致関係にある場合を図９に示す。図９では、アプリケーションサーバＡｐｐ１とＡｐｐ２があり、Ａｐｐ１にインストールされているコンテナアプリＩｎｔｅｒｓｔａｇｅには、デプロイドアプリＡｐｐＡとＡｐｐＢがデプロイされている。また、Ａｐｐ２にインストールされているコンテナアプリＩｎｔｅｒｓｔａｇｅには、デプロイドアプリＡｐｐＡとＡｐｐＣがデプロイされている。Ａｐｐ１のＩｎｔｅｒｓｔｅｇｅとＡｐｐ２のＩｎｔｅｒｓｔａｇｅはコンテナアプリ名が一致しているから多重化アプリである。そして、Ａｐｐ１ではＡｐｐＢが別の目的のためにデプロイされており、Ａｐｐ２ではＡｐｐＣが別の目的のためにデプロイされている。この状態で、デプロイドアプリ名に基づき多重化アプリを検出する手法を使うと、デプロイドアプリ名が一致しないため、Ａｐｐ１のＩｎｔｅｒｓｔａｇｅとＡｐｐ２のＩｎｔｅｒｓｔａｇｅを多重化アプリとして検出できない。しかし、図１０、図１１で説明するようにＡｐｐ１とＡｐｐ２のトランザクションコンテキストまたはトランザクション情報から、ＡｐｐＡのみが多重化されているデプロイドアプリであることを検出することができる。
【００５０】
図１０は、手段Ｅにおけるトランザクションコンテキストによる部分一致アプリの検出の説明図である。前アプリが顧客ページを持つコンテナアプリＡｐａｃｈｅで後アプリが顧客テーブルを持つコンテナアプリＳｙｍｆｏｗａｒｅである、コンテナアプリＩｎｔｅｒｓｔａｇｅが複数見つかる。これらのＩｎｔｅｒｓｔａｇｅは前アプリと後アプリが同じだから多重化アプリであることが分かる。そこで、多重化アプリと判定された全てのＩｎｔｅｒｓｔａｇｅに共通してデプロイされているデプロイドアプリＡｐｐＡが多重化アプリであり、その他のデプロイドアプリＡｐｐＢとＡｐｐＣは別の目的のアプリであることが検出できる。
【００５１】
図１１は、手段Ｅにおけるトランザクション情報による部分一致アプリの検出の説明図である。Ａｐｐ１とＡｐｐ２のＩｎｔｅｒｓｔａｇｅは、共にｉｎｄｅｘ.ｈｔｍｌを持つＡｐａｃｈｅから要求を受け、Ｓｙｍｆｏｗａｒｅの顧客テーブルを参照する。そのため、トランザクションコンテキストからＡｐｐ１のＩｎｔｅｒｓｔａｇｅとＡｐｐ２のＩｎｔｅｒｓｔａｇｅは多重化アプリであることが分かる。さらに、Ａｐｐ１とＡｐｐ２に共通してデプロイされているデプロイドアプリＡｐｐＡから多重化アプリが検出され、デプロイドアプリＡｐｐＢとＡｐｐＣは別の目的のアプリであることが検出できる。
【００５２】
次に、アプリケーションが包含関係にある場合を図１２に示す。図１２では、アプリケーションサーバＡｐｐ１とＡｐｐ２があり、Ａｐｐ１にインストールされているコンテナアプリＩｎｔｅｒｓｔａｇｅには、デプロイドアプリＡｐｐＡとＡｐｐＢがデプロイされている。また、Ａｐｐ２にインストールされているコンテナアプリＩｎｔｅｒｓｔａｇｅには、デプロイドアプリＡｐｐＡのみがデプロイされている。図９の場合と同様に、Ａｐｐ１のＩｎｔｅｒｓｔｅｇｅとＡｐｐ２のＩｎｔｅｒｓｔａｇｅは多重化アプリであるが、Ａｐｐ１のみ、ＡｐｐＢが別の目的のためにデプロイされている。この状態で、デプロイドアプリ名に基づき多重化アプリを検出する手法を使うと、図９の場合と同様に、デプロイドアプリ名が一致しないため、Ａｐｐ１のＩｎｔｅｒｓｔａｇｅとＡｐｐ２のＩｎｔｅｒｓｔａｇｅを多重化アプリとして検出できない。しかし、Ａｐｐ１とＡｐｐ２のトランザクションコンテキストまたはトランザクション情報から、ＡｐｐＡのみが多重化されているデプロイドアプリであることを検出することができる。
【００５３】
図１３は、手段Ｅにおけるトランザクションコンテキストによる包含アプリの検出の説明図である。図１１の場合と同様に、図１１前アプリが顧客ページを持つコンテナアプリＡｐａｃｈｅで後アプリが顧客テーブルを持つコンテナアプリＳｙｍｆｏｗａｒｅである、コンテナアプリＩｎｔｅｒｓｔａｇｅが複数見つかる。これにより、これらのＩｎｔｅｒｓｔａｇｅは多重化アプリであることが分かる。そこで、多重化アプリと判定された全てのＩｎｔｅｒｓｔａｇｅに共通してデプロイされているデプロイドアプリＡｐｐＡが多重化アプリであり、その他のデプロイドアプリＡｐｐＢは別の目的のアプリであることが検出できる。
【００５４】
図１４は、手段Ｅにおけるトランザクション情報による包含アプリの検出の説明図である。Ａｐｐ１とＡｐｐ２のＩｎｔｅｒｓｔａｇｅは、共にｉｎｄｅｘ.ｈｔｍｌを持つＡｐａｃｈｅから要求を受け、Ｓｙｍｆｏｗａｒｅの顧客テーブルを参照する。そのため、Ａｐｐ１のＩｎｔｅｒｓｔａｇｅとＡｐｐ２のＩｎｔｅｒｓｔａｇｅは多重化アプリであることが分かる。さらに、Ａｐｐ１とＡｐｐ２に共通してデプロイされているデプロイドアプリＡｐｐＡのみ多重化アプリとし、デプロイドアプリＡｐｐＢは別の目的のアプリであることが検出できる。
【００５５】
上述の部分一致アプリと包含アプリの場合以外に、三つ巴の場合が考えられる。例えば、Ａｐｐ１にＡｐｐＡ、ＡｐｐＢ、Ａｐｐ２にＡｐｐＢ、ＡｐｐＣ、Ａｐｐ３にＡｐｐＣ、ＡｐｐＡがデプロイされている場合である。この場合、ＡｐｐＡ、ＡｐｐＢ、ＡｐｐＣがそれぞれ別々の多重化アプリとなる。この場合には、手段Ｅにおいて、トランザクションコンテキストかトランザクション情報が一致しており、アプリ名が一致するものを組み合わせることで、多重化アプリを検出できる。
【００５６】
実施例を実現するための以上の基本的な考え方により、トランザクション間の関係をアプリ名、サブネット、トランザクションコンテキスト、トランザクション情報を組み合わせて自動的に検出することが可能となる。
【００５７】
この結果、多重化アプリの一部が停止した際に、その状況に合ったアラートを発生させるように設定できるため、運用管理者が障害の重大性に合った措置を選択できるようになる。
【００５８】
また、多くの多重化手法に対応できるため、既存のＩＴシステムにすでに多重化手法を導入していても、多重化アプリを検出する製品を利用できるようになる。
以上説明した手段ＡからＥまでの機能を実装した実施形態について、以下に説明する。
【００５９】
図１５は、ＩＴシステムアプリケーション管理システムの実施形態の機能構成図である。このシステムは、ＩＴシステムを構成する監視対象サーバ群１５０５に対して、多重化アプリ検出部１５０１、構成情報収集部１５０２、トランザクション収集部１５０３、ＣＭＤＢ１５０４、および管理コンソール１５０６を備える。
【００６０】
構成情報収集部１５０２は、監視対象サーバ群１５０５の構成情報を収集し、ＣＭＤＢ１５０４に登録する。
トランザクション収集部１５０３は、監視対象サーバ群１５０５上で通信されるトランザクション情報をコピーして収集し、ＣＭＤＢ１５０４に登録する。
【００６１】
多重化アプリ検出部１５０１は、本実施形態による新機能を実装し、ＣＭＤＢ１５０４に登録されたトランザクション情報と構成情報を参照して、多重化アプリを検出する。
管理コンソール１５０６は、ＣＭＤＢ１５０４の登録内容を任意に参照可能はほか、多重化アプリ検出部１５０１が検出した多重化アプリの情報に基づき、適切なアラートを表示等する。
【００６２】
図１６は、図１５の機能構成を実装するＩＴシステムアプリケーション管理システムの実施形態のシステム構成図である。このシステムは、トランザクション管理／構成情報管理装置１６０１、トランザクション分析／構成情報収集装置１６０２、トランザクション収集装置１６０３、スイッチ１６０４、およびファイアーウォール１６０５を実装する。
【００６３】
トランザクション管理／構成情報管理装置１６０１は、図１５のＣＭＤＢ１５０４の機能を実装するほか、図１５の多重化アプリ検出部１５０１の機能を実装する。
トランザクション分析／構成情報収集装置１６０２は、図１５の構成情報収集部１５０２の機能を実装する。
【００６４】
トランザクション収集装置１６０３は、図１５のトランザクション収集部１５０３の機能を実装する。
監視対象サーバ群１５０５（図１５参照）は、スイッチ１６０４およびファイアーウォール１６０５を介して、インターネット１６０６に接続される。
【００６５】
なお、図１６のシステム構成は一例であり、例えば図１５の多重化アプリ検出部１５０１の機能は、トランザクション分析／構成情報収集装置１６０２やトランザクション収集装置１６０３に実装されてもよい。
【００６６】
図１７は、図１６のシステム構成のもとで実装される図１５の機能構成をコンピュタによる実現する全体処理を示すフローチャートである。
まず、構成情報収集部１５０２の機能として、ＩＴシステム上の監視対象サーバ群１５０５から構成情報が収集され、ＣＭＤＢ１５０４に登録される（ステップＳ１７０１）。
【００６７】
次に、トランザクション収集部１５０３の機能として、監視対象サーバ群１５０５上を通信されるトランザクション情報が収集され、ＣＭＤＢ１５０４に登録される（ステップＳ１７０２）。
【００６８】
次に、多重化アプリ検出部１５０１の機能として、ＣＭＤＢ１５０４内のコンテナアプリ、デプロイドアプリ、トランザクション情報、トランザクションコンテキストから、多重化アプリが検出される（ステップＳ１７０３）。これは、実施形態による新機能１を実現する。
【００６９】
次に、多重化アプリ検出部１５０１の機能として、多重化アプリを含んだ、多重関係にあるＩＴサービスが、一つに束ねられる（ステップＳ１７０４）。これは、第２の実施形態（多重関係情報サービス検出部）を実現する。
【００７０】
次に、管理コンソール１５０６の機能として、構成情報、トランザクション、多重化アプリの状態を含むＩＴサービスの稼働状態が、管理コンソール１５０６上のディスプレイ装置等に表示される（ステップＳ１７０５）。
【００７１】
更に、多重化アプリ検出部１５０１の機能として、収集したデータが分析され、予め設定されたＳＬＡ(Service Level Agreement)に違反している場合はアラートが発生させられる。ただし、ＩＴサービスが継続できるレベルのトラブルが発生した場合は、アラートのレベルを下げる等の制御が実施される（ステップＳ１７０６）。これは、第３の実施形態（多重関係に基づくアラート出力部）を実現する。
【００７２】
以上のステップＳ１７０１からＳ１７０６の処理が繰り返し実行される（ステップＳ１７０６→Ｓ１７０１）。
以上により、以下の効果を奏する。
【００７３】
アプリケーションの多重化関係を例えば、アプリ名、サブネット、トランザクションコンテキスト、トランザクション情報を組み合わせて自動的に検出することが可能となる。
多重化アプリの一部が停止した際に、その状況に合ったアラートを発生させるように設定できるため、運用管理者が障害の重大性に合った措置を選択することが可能となる。
【００７４】
多くの多重化手法に対応できるため、既存のＩＴシステムにすでに多重化手法を導入していても、多重化アプリを検出する製品を利用することが可能となる。
図１８は、従来のアラート通知例と、本実施形態で多重化アプリを検出している場合のアラート通知例の違いの説明図である。従来、Ｗｅｂサービス利用者からの要求に対して、Ｗｅｂサーバ,アプリケーションサーバ,データベースサーバが連携して、利用者へ応答するまでを一つのＩＴサービス(または業務)と捉え、管理コンソールでＩＴサービスの稼動状態を表示できる。図中のＳｅｒｖｉｃｅＡとＳｅｒｖｉｃｅＢはそれぞれＩＴサービスを表し、互いに多重関係になっており、ＳｅｒｖｉｃｅＡとＳｅｒｖｉｃｅＢを構成するアプリの中の一部が多重化アプリになっているとする。このとき、この環境ではＳｅｒｖｉｃｅＢが停止してもＳｅｒｖｉｃｅＡが稼動していれば、ＩＴサービスは継続できる。
【００７５】
従来製品の管理コンソールでは、図１８（ａ）に示されるように、ＳｅｒｖｉｃｅＢ(ＩＴサービスＢ)が停止すると、多重化されているＳｅｒｖｉｃｅＡが稼動中でもサービスがストップしたというアラートを通知してしまう。
【００７６】
それに対し、本実施形態の新機能で多重化アプリが検出されている場合、図１８（ｂ）に示されるように、ＩＴサービスがグルーピングされて表示でき、その中の一部分だけが停止した場合は、警告レベルの通知に止めることができる。さらに、どこが問題なのかを掘り下げて調べることができ、ＳｅｒｖｉｃｅＢが停止し、ＳｅｒｖｉｃｅＡが稼動していることが確認できる。  図１９は、図１７のステップＳ１７０３の第１の実施形態のコンピュータによる全体処理を示すフローチャートである。
【００７７】
図１９のうち、ステップＳ１９０３、Ｓ１９０５、Ｓ１９０７、Ｓ１９０９で手段Ｂ，Ｃ，Ｄ，Ｅのどの機能を利用するかは、ＩＴサービスを監視する人が判断し、システムに設定する。ＩＴシステムの構成を変更した際は、利用する手段を変更する。
【００７８】
図１５または図１６の監視対象サーバ群１５０５の例として図４のようなＩＴシステムを監視中の場合について、図１９のフローチャートを詳細に説明する。
まず、ＣＭＤＢ１５０４から、コンテナアプリ名とデプロイドアプリ名が一致するアプリケーションの組み合わせ(多重化アプリ候補群)が参照される（ステップＳ１９０１）。図２０は、多重化アプリ候補のデータ構成例を示す。多重化アプリ候補は、コンテナアプリ名とデプロイドアプリ名が一致するものごとに複数ある。なお、ＣＭＤＢ１５０４では、各コンテナアプリをＩｎｓｔａｎｃｅＣＩというデータ単位で管理している。ＣＩは、ＣｏｎｆｉｇｕｒａｔｉｏｎＩｔｅｍの略である。各ＩｎｓｔａｎｃｅＣＩには、識別子としてＩｎｓｔａｎｃｅＩＤが付与される。図２０において、Ｉｎｓ１，Ｉｎｓ２，Ｉｎｓ３，Ｉｎｓ４の各ＩｎｓｔａｎｃｅＩＤで示されるエントリは、コンテナアプリ名とデプロイドアプリ名が一致するため、多重化アプリ候補と判断される。  次に、手段Ｂ，手段Ｃ，手段Ｄ，手段Ｅのうちどの手段を利用するかを、特には図示しない設定情報から読み取る（ステップＳ１９０２）。
【００７９】
次に、手段Ｂを使うか否かを判定する（ステップＳ１９０３）。
手段Ｂを使うと判定した場合には、ステップＳ１９０１で得られた多重化アプリ候補群のうち、サブネットが一致しないものは除外する（ステップＳ１９０４）。ステップＳ１９０４の詳細処理であるサブフロー１は、図２１、図２２を使って後述する。
【００８０】
ステップＳ１９０３で手段Ｂを使わないと判定した場合またはステップＳ１９０４の後、手段Ｃを使うか否かを判定する（ステップＳ１９０５）。
手段Ｃを使うと判定した場合には、ステップＳ１９０１で得られた多重化アプリ候補群のうち、トランザクションコンテキストが一致しないものは除外する（ステップＳ１９０６）。ステップＳ１９０６の詳細処理であるサブフロー２は、図２３、図２４を使って後述する。
【００８１】
ステップＳ１９０５で手段Ｃを使わないと判定した場合またはステップＳ１９０６の後、手段Ｄを使うか否かを判定する（ステップＳ１９０７）。
手段Ｄを使うと判定した場合には、ステップＳ１９０１で得られた多重化アプリ候補群のうち、トランザクション情報が一致しないものは除外する（ステップＳ１９０８）。ステップＳ１９０８の詳細処理であるサブフロー３は、図２５から図２７を使って後述する。
【００８２】
ステップＳ１９０７で手段Ｄを使わないと判定した場合またはステップＳ１９０８の後、手段Ｅを使うか否かを判定する（ステップＳ１９０９）。
手段Ｅを使うと判定した場合には、アプリ名が部分一致、包含関係にある多重化アプリを検出する（ステップＳ１９１０）。ステップＳ１９１０の詳細処理である補助手順フローおよびサブフロー４，５は、図２８から図３８を使って後述する。
【００８３】
ステップＳ１９０９で手段Ｅを使わないと判定した場合またはステップＳ１９１０の後、検出した多重化アプリをＣＭＤＢ１５０４に登録する（ステップＳ１９１１）。登録の仕方としては、互いに多重関係にあるデプロイドアプリまたはコンテナアプリのエントリに、共通の値として生成された多重識別用のＩＤを付与する等が考えられる。その後、図１９のフローチャートの処理、すなわち図１７のステップＳ１７０３の処理を終了する。
【００８４】
次に、図１９のステップＳ１９０４のサブネットによる篩い分けの処理の詳細について、図２１のサブフロー１により説明する。
ここでは、図１９のステップＳ１９０１で得られた多重化アプリ候補群について、ステップＳ２１０１からＳ２１０４までのループ処理によって、以下の判定が繰り返し実行される。すなわち、ステップＳ２１０２にて、サブネットが一致する候補があるか否かが判定される。
【００８５】
そして、ステップＳ２１０２の繰返しにおいて、サブネットが一致する候補がないと判定される毎に、不一致のエントリが多重化アプリ候補から除外される（ステップＳ２１０３）。
【００８６】
今、例えば前述した図２０の多重化アプリ候補の場合を考える。
処理１（ステップＳ２１０２）：リストの上から順番に各候補のサブネットアドレスを、各候補のＩＰアドレスとサブネットマスクの論理積から求める。具体例として、Ｉｎｓ１のサブネットアドレス＝１９２．１６８．０．０  ＆＆  ２５５．２５５．２５５．０＝１９２．１６８．０．０となる。同様に、Ｉｎｓ２およびＩｎｓ３＝１９２．１６８．０．０，Ｉｎｓ４＝１９２．１６８．１．０となる。
【００８７】
処理２（ステップＳ２１０２）：他の候補を上から順番にサブネットアドレスが一致する候補が見つかるまで比較する。一致する候補が見つかれば、ステップＳ２１０４に移って次のループへ移動する。一つも見つからなければステップＳ２１０３へ進む。具体例として、Ｉｎｓ１の場合、まずＩｎｓ２とサブネットアドレスを比較し、共にサブネットアドレスが１９２．１６８．０．０のため、次のループへ移動する。Ｉｎｓ２，Ｉｎｓ３のときは上から順番に比較すると最初のＩｎｓ１とサブネットアドレスが一致するため、次のループへ進む。一方、Ｉｎｓ４は，Ｉｎｓ１，Ｉｎｓ２，Ｉｎｓ３とサブネットアドレスが一致しないため、ステップＳ２１０３へ進む。
【００８８】
処理３（ステップＳ２１０３）：該当する候補を除外する。具体例として、Ｉｎｓ４を多重化アプリ候補から除外し、ステップＳ２１０４へ進む。
処理４（ステップＳ２１０４）：全ての候補について処理が完了したら終了する。
【００８９】
以上の処理の結果、図２０では、図２２に示されるように、Ｉｎｓ４のみサブネットが１９２.１６８.１.０のため、多重化アプリの候補から除外される。
これにより、これ以降の処理をする対象を減らせる。後の手順でのＣＭＤＢ１５０４へのアクセスが縮小でき、データ量が多い際の性能劣化を防げる。
【００９０】
次に、図１９のステップＳ１９０６のトランザクションコンテキストによる篩い分け処理の詳細について、図２３のサブフロー２により説明する。
ここでは、図１９のステップＳ１９０１で得られた多重化アプリ候補群について、ステップＳ２３０１からＳ２３０４までのループ処理によって、以下の判定が繰り返し実行される。すなわち、ステップＳ２３０２にて、他の候補と前アプリ名、後アプリ名が一致する候補があるか否かが判定される。
【００９１】
そして、ステップＳ２３０２の繰返しにおいて、一致する候補がないと判定される毎に、不一致のエントリが多重化アプリ候補から除外される（ステップＳ２３０３）。
今、例えば前述した図２０の多重化アプリ候補について、トランザクションコンテキストが図２４のデータ構成例のようにして得られる。
【００９２】
処理１（ステップＳ２３０２）：トランザクションコンテキストのデータにおいて、リストの上から順番に前アプリ名、後アプリ名を読み込む。具体例として、Ｉｎｓ１，Ｉｎｓ２では、前アプリがＡｐａｃｈｅ、後アプリがＳｙｍｆｏｗａｒｅである。また、Ｉｎｓ３は、前アプリがＩＩＳ、後アプリがＭｙＳＱＬである。
【００９３】
処理２（ステップＳ２３０２）：他の候補と前アプリ名、後アプリ名が一致するかどうかを評価する。一致する候補が見つかれば、ステップＳ２３０４に移って次のループへ移動する。一つも見つからなければステップＳ２３０３へ進む。具体例として、Ｉｎｓ１とＩｎｓ２は、前アプリと後アプリがそれぞれ一致しているため、次のループへ進む。Ｉｎｓ３は、前アプリ名と後アプリ名が一致する候補が見つからないため、ステップＳ２３０３へ進む。
【００９４】
処理３（ステップＳ２３０３）：該当する候補を除外する。具体例として、Ｉｎｓ３を多重化アプリ候補から除外し、ステップＳ２３０４へ進む。
処理４（ステップＳ２３０４）：全ての候補について処理が完了したら終了する。
【００９５】
以上の処理により、図２４では、Ｉｎｓ３は前アプリがＩＩＳ、後アプリがＭｙＳＱＬのため前後アプリが他の候補と一致せずに、除外される。
ここで、アプリ名には、コンテナアプリ名かデプロイドアプリ名、コンテナアプリ名とデプロイドアプリ名両方が使える。監視対象サーバ内に、多重化アプリ以外にコンテナアプリ名が一致するアプリが無ければ、コンテナアプリ名のみで多重化アプリを検出できる。そのため、通常はコンテナアプリ名だけを使えばよい。しかし、コンテナアプリ名が一致しているアプリがあるような環境の場合は、デプロイドアプリ名も使う必要がある。さらに、コンテナアプリは別々だが、その中のデプロイドアプリのみ多重化しているような、特殊な運用形態では、デプロイドアプリのみを使う方法を選択する必要がある。図２４ではコンテナアプリ名のみの例を示したが、さらに、デプロイドアプリ名を比較に使えば、より詳しい比較が行える。
【００９６】
次に、図１９のステップＳ１９０８のトランザクション情報による篩い分け処理であるサブフロー３の詳細について、図２５のサブフロー３により説明する。
ここでは、図１９のステップＳ１９０１で得られた多重化アプリ候補群について、ステップＳ２５０１からＳ２５０４までのループ処理によって、以下の判定が繰り返し実行される。すなわち、ステップＳ２５０２にて、他の候補と受信トランザクションの要求メッセージと応答メッセージ、送信トランザクションの要求メッセージと応答メッセージが一致する候補があるか否かが判定される。
【００９７】
そして、ステップＳ２５０２の繰返しにおいて、一致する候補がないと判定される毎に、不一致のエントリが多重化アプリ候補から除外される（ステップＳ２５０３）。
今、例えば前述した図２０の多重化アプリ候補について、トランザクション情報が図２６のデータ構成例のようにして得られる。
【００９８】
処理１（ステップＳ２５０２）：トランザクション情報のデータにおいて、リストの上から順番に要求メッセージ、応答メッセージを読み込む。具体例として、図２６（ａ）において、Ｉｎｓ１，Ｉｎｓ２は、要求メッセージが、受信トランザクションではＡｐｐＡを実行、送信トランザクションでは顧客データを参照となっている。また、応答メッセージが、受信トランザクションでは顧客ページ、送信トランザクションでは顧客データとなっている。Ｉｎｓ３は、要求メッセージが、受信トランザクションではＡｐｐＢを実行、送信トランザクションでは社員データ参照となっている。また、応答メッセージが、受信トランザクションでは社員ページ、送信トランザクションでは社員データとなっている。
【００９９】
処理２（ステップＳ２５０２）：他の候補とトランザクション情報が一致するかどうかを評価する。一致する候補が見つかれば、ステップＳ２５０４に移って次のループへ移動する。一つも見つからなければステップＳ２５０３へ進む。具体例として、図２６（ｂ）は、図２６（ａ）の要求メッセージの詳細である。図２６（ｂ）において、「ＲＥＱＵＥＳＴ」の後ろに書かれている文字列が要求メッセージで、「ＲＥＳＰＯＮＳＥ」の後ろに書かれている文字列が応答メッセージとなる。トランザクションは、実行時に毎回変化するため、"ＡｐｐＡを実行"や"ＡｐｐＢを実行"のようにパラメータの部分は変数名だけを見て、値は比較対象に含めない。トランザクション情報が一致するかどうかは、要求メッセージ、応答メッセージそれぞれについて、文字列比較を行い判定する。例えば、Ｉｎｓ１とＩｎｓ２は、要求メッセージと応答メッセージが一致するため、次のループへ進む。Ｉｎｓ３は、要求メッセージと応答メッセージが一致する候補が見つからないため、ステップＳ２５０３へ進む。
【０１００】
処理３（ステップＳ２５０３）：該当する候補を除外する。具体例として、Ｉｎｓ３を多重化アプリ候補から除外し、ステップＳ２５０４へ進む。
処理４（ステップＳ２５０４）：全ての候補について処理が完了したら終了する。
【０１０１】
図２７は、トランザクション情報による多重化アプリの特定の説明図である。以上の処理により、例えば図２７のアプリケーションサーバＡｐｐ１とＡｐｐ２について、受信トランザクションは宛て先ＩＰ以外が一致しており、送信トランザクションは送信元ＩＰ以外が一致しているため(違うのは自ホストのＩＰアドレスだけ)、多重化アプリとする。一方、アプリケーションサーバＡｐｐ３は、受信トランザクション、送信トランザクションともに他の候補と一致しないため、多重化アプリ候補から除外する。
【０１０２】
次に、図１９のステップＳ１９１０のアプリ名が部分一致、包含関係にある多重化アプリを検出する処理の詳細について、図２８のフローチャートにより説明する。
この補助手順は、アプリ名の一致では検出できない多重化アプリを検出するために実施される。通常、多重化するには、コンピュータの構成やネットワークの構成、アプリケーションの構成は均一化される。このため、本手順は、特殊なケースを検出する場合に行う。
【０１０３】
図２８のうち、ステップＳ２８０３、Ｓ２８０５で手段Ｅ−１，Ｅ−２のどちらの機能を利用するかは、ＩＴサービスを監視する人が判断し、システムに設定する。ＩＴシステムの構成を変更した際は、利用する手段を変更する。
【０１０４】
まず、ＣＭＤＢ１５０４から、コンテナアプリ名が一致するアプリケーションの組み合わせが参照される（ステップＳ２８０１）。
次に、手段Ｅ−１，手段Ｅ−２のうちどちらの手段を利用するかを、特には図示しない設定情報から読み取る（ステップＳ２８０２）。
【０１０５】
次に、手段Ｅ−１を使うか否かを判定する（ステップＳ２８０３）。
手段Ｅ−１を使うと判定した場合には、ステップＳ２８０１で得られたコンテナアプリ名が一致するアプリケーションの組み合わせのうち、トランザクションコンテキストが一致し、かつデプロイドアプリ名が部分一致または包含するものを検出する（ステップＳ２８０４）。
【０１０６】
ステップＳ２８０３で手段Ｅ−１を使わないと判定した場合またはステップＳ２８０４の後、手段Ｅ−２を使うか否かを判定する（ステップＳ２８０５）。
手段Ｅ−２を使うと判定した場合には、ステップＳ２８０１で得られたコンテナアプリ名が一致するアプリケーションの組み合わせのうち、トランザクション情報が一致し、かつデプロイドアプリ名が部分一致または包含するものを検出する（ステップＳ２８０６）。
【０１０７】
ステップＳ２８０５で手段Ｅを使わないと判定した場合またはステップＳ２８０６の後、部分一致または包含関係にあるアプリケーションを多重化アプリとして検出する（ステップＳ２８０７）。その後、図２８のフローチャートの処理、すなわち図１９のステップＳ１９１０の処理を終了する。
【０１０８】
図２９は、アプリ名が部分一致する多重化アプリの検出動作を模式的に表す説明図である。図２９に対応して、ステップＳ２８０１（図２８）で参照される多重化アプリ候補データ（ＩｎｓｔａｎｃｅＣＩ）、トランザクションコンテキストデータ、およびトランザクション情報データは、それぞれ図３０の（ａ）、（ｂ）、および（ｃ）で示される。これらはそれぞれ、前述した図２０、図２４、図２６の各データに対応している。図２９において、Ｗｅｂ１、Ａｐｐ１、ＤＢ１というホスト名のサーバを通るトランザクションとＷｅｂ１、Ａｐｐ２、ＤＢ１を通るトランザクションがある。この中で、間にあるＡｐｐ１とＡｐｐ２はＡｐｐＡのみ多重化しており、ＡｐｐＢは他の目的のためにデプロイされている。図２９は、前述した図９、図１０、および図１１に対応する。図２８に示されるフローチャートにより、トランザクションコンテキスト、または、トランザクション情報により、この環境から多重化アプリを検出する。
【０１０９】
図３１は、アプリ名が包含関係の多重化アプリの検出動作を模式的に表す説明図である。図３１に対応して、ステップＳ２８０１（図２８）で参照される多重化アプリ候補データ（ＩｎｓｔａｎｃｅＣＩ）、トランザクションコンテキストデータ、およびトランザクション情報データは、それぞれ図３２の（ａ）、（ｂ）、および（ｃ）で示される。図３０の場合と同様に、これらはそれぞれ、前述した図２０、図２４、図２６の各データに対応している。図３１において、図２９の場合と同様に、Ｗｅｂ１、Ａｐｐ１、ＤＢ１というホスト名のサーバを通るトランザクションとＷｅｂ１、Ａｐｐ２、ＤＢ１を通るトランザクションがある。この中で、間にあるＡｐｐ１とＡｐｐ２はＡｐｐＡのみ多重化しており、ＡｐｐＢおよびＡｐｐＣは他の目的のためにデプロイされている。図３１は、前述した図１２、図１３、および図１４に対応する。図２８に示される補助手順のフローチャートにより、トランザクションコンテキスト、または、トランザクション情報により、この環境から多重化アプリを検出する。
【０１１０】
次に、図２８のステップＳ２８０４のトランザクションコンテキストを用いた手段Ｅ−１の処理の詳細について、図３３のサブフロー４により説明する。
ここでは、図２８のステップＳ２８０１で得られたデータについて、まず、ステップＳ３３０１からＳ３３０４までのループ処理によって、以下の判定が繰り返し実行される。すなわち、ステップＳ３３０２にて、コンテナアプリの前アプリと後アプリが他のコンテナアプリと一致する候補があるか否かが判定される。
【０１１１】
そして、ステップＳ３３０２の繰返しにおいて、一致する候補があると判定される毎に、一致のエントリが多重化アプリ候補に加えられる（ステップＳ３３０３）。
続いて、上述のループ処理によって生成された全ての多重化アプリ候補群に対して、ステップＳ３３０５からＳ３３０８までのループ処理によって、以下の判定が繰り返し実行される。すなわち、ステップＳ３３０６にて、デプロイドアプリが他のデプロイドアプリと部分一致または包含関係にあるか否かが判定される。
【０１１２】
そして、ステップＳ３３０６の繰返しにおいて、部分一致または包含関係が検出される毎に、それらの関係を有するアプリケーションが多重化アプリとして検出される（ステップＳ３３０７）。
【０１１３】
今、例えば図２９の部分一致関係を有する図３０（ａ）のＩｎｓｔａｎｃｅＣＩ、および図３０（ｂ）のトランザクションコンテキストのデータ構成例を考える。
処理１（ステップＳ３３０２）：ＩｎｓｔａｎｃｅＣＩ、およびトランザクションコンテキストのリストの項目を上から順番に読み込む。具体例として、Ｉｎｓ１，Ｉｎｓ２ともに、前アプリがＡｐａｃｈｅ、前アプリのデプロイドアプリが顧客ページ、コンテナアプリ名がＩｎｔｅｒｓｔａｇｅ、後アプリがＳｙｍｆｏｗａｒｅ、後アプリのデプロイドアプリが顧客データというデータが得られる。デプロイドアプリ名のみＩｎｓ１はＡｐｐＡとＡｐｐＢ、Ｉｎｓ２はＡｐｐＡとＡｐｐＣというデータが得られる。
【０１１４】
処理２（ステップＳ３３０２）：コンテナアプリ、前アプリ、後アプリが一致する候補があるかどうか評価する。一致する候補が見つからなければ、ステップＳ３３０４に移って次のループへ移動する。一致する候補が見つかればステップＳ３３０３へ進む。具体例として、Ｉｎｓ１について一致する候補を探すと、Ｉｎｓ２がコンテナアプリ、前アプリ、後アプリが一致するため、ステップＳ３３０３へ進む。
【０１１５】
処理３（ステップＳ３３０３）：該当した候補を多重化アプリ候補群に加える。具体例として、Ｉｎｓ１を同じコンテナアプリ、前アプリ、後アプリを持つグループに加える。グループが無ければ作成する。その後、ステップＳ３３０４へ進む。
【０１１６】
処理４（ステップＳ３３０５→Ｓ３３０６）：これまでの手順で判明した多重化アプリ候補群を上から順に読み出す。具体例として、Ｉｎｓ１とＩｎｓ２が含まれたグループが一つ作成されている。このグループの一つ目のＩｎｓ１から順に読み出す。もし、別のグループがある場合は、前のグループが処理４を終えてから別のグループの処理４を実行する。
【０１１７】
処理５（ステップＳ３３０６）：他の候補とデプロイドアプリが部分一致または包含関係にあるかを評価する。該当する候補が見つからなければ、ステップＳ３３０８に移って次のループへ移動する。該当する候補が見つかればステップＳ３３０７へ進む。具体例として、Ｉｎｓ１は、デプロイドアプリＡｐｐＡとＡｐｐＢを持つ。ここで、他の候補と比較を行うと、Ｉｎｓ２がデプロイドアプリＡｐｐＡとＡｐｐＣを持ち、ＡｐｐＡのみが一致する部分一致の関係であることが検出できる。部分一致する候補が見つかったため、ステップＳ３３０７へ進む。Ｉｎｓ２についても同様に部分一致が検出できるため、ステップＳ３３０７へ進む。
【０１１８】
処理６（ステップＳ３３０７）：該当する候補を多重化アプリとする。具体例として、Ｉｎｓ１，Ｉｎｓ２を多重化アプリとして登録する。
処理７（ステップＳ３３０８）：全ての候補について処理が完了したら終了する。
【０１１９】
以上の処理により、例えば図３０（ａ）のＩｎｓｔａｎｃｅＣＩ、および図３０（ｂ）のトランザクションコンテキストを考える。この場合、前アプリはコンテナアプリ名がＡｐａｃｈｅでデプロイドアプリ名が顧客ページ、後アプリはコンテナアプリ名がＳｙｍｆｏｗａｒｅでデプロイドアプリ名が顧客データのため、前アプリ名、後アプリ名は一致している。Ａｐｐ１とＡｐｐ２を比較すると、コンテナアプリ名はどちらもＩｎｔｅｒｓｔａｇｅで、デプロイドアプリ名はＡｐｐＡはどちらもあるが、ＡｐｐＢはＡｐｐ１のみ、ＡｐｐＣはＡｐｐ２のみしかない。以上から、ＡｐｐＡは多重化アプリの要素で、ＡｐｐＢとＡｐｐＣは他の目的のためのアプリと分かる。
【０１２０】
次に、例えば図３１の包含関係を有する図３２（ａ）のＩｎｓｔａｎｃｅＣＩ、および図３２（ｂ）のトランザクションコンテキストのデータ構成例を考える。
処理１（ステップＳ３３０２）：ＩｎｓｔａｎｃｅＣＩ、およびトランザクションコンテキストのリストの項目を上から順番に読み込む。具体例として、Ｉｎｓ１，Ｉｎｓ２ともに、前アプリがＡｐａｃｈｅ、前アプリのデプロイドアプリが顧客ページ、コンテナアプリ名がＩｎｔｅｒｓｔａｇｅ、後アプリがＳｙｍｆｏｗａｒｅ、後アプリのデプロイドアプリが顧客データというデータが得られる。デプロイドアプリ名のみＩｎｓ１はＡｐｐＡとＡｐｐＢ、Ｉｎｓ２はＡｐｐＡというデータが得られる。
【０１２１】
処理２（ステップＳ３３０２）：コンテナアプリ、前アプリ、後アプリが一致する候補があるかどうか評価する。一致する候補が見つからなければ、ステップＳ３３０４に移って次のループへ移動する。一致する候補が見つかればステップＳ３３０３へ進む。具体例として、Ｉｎｓ１について一致する候補を探すと、Ｉｎｓ２がコンテナアプリ、前アプリ、後アプリが一致するため、ステップＳ３３０３へ進む。
【０１２２】
処理３（ステップＳ３３０３）：該当した候補を多重化アプリ候補群に加える。具体例として、Ｉｎｓ１を同じコンテナアプリ、前アプリ、後アプリを持つグループに加える。グループが無ければ作成する。その後、ステップＳ３３０４へ進む。
【０１２３】
処理４（ステップＳ３３０５→Ｓ３３０６）：これまでの手順で判明した多重化アプリ候補群を上から順に読み出す。具体例として、Ｉｎｓ１とＩｎｓ２が含まれたグループが一つ作成されている。このグループの一つ目のＩｎｓ１から順に読み出す。もし、別のグループがある場合は、前のグループが処理４を終えてから別のグループの処理４を実行する。
【０１２４】
処理５（ステップＳ３３０６）：他の候補とデプロイドアプリが部分一致または包含関係にあるかを評価する。該当する候補が見つからなければ、ステップＳ３３０８に移って次のループへ移動する。該当する候補が見つかればステップＳ３３０７へ進む。具体例として、Ｉｎｓ１は、デプロイドアプリＡｐｐＡとＡｐｐＢを持つ。ここで、他の候補と比較を行うと、Ｉｎｓ２がデプロイドアプリＡｐｐＡを持ち、ＡｐｐＡのみが一致する部分一致の関係であることが検出できる。部分一致する候補が見つかったため、ステップＳ３３０７へ進む。Ｉｎｓ２についても同様に部分一致が検出できるため、ステップＳ３３０７へ進む。
【０１２５】
処理６（ステップＳ３３０７）：該当する候補を多重化アプリとする。具体例として、Ｉｎｓ１，Ｉｎｓ２を多重化アプリとして登録する。
処理７（ステップＳ３３０８）：全ての候補について処理が完了したら終了する。
【０１２６】
以上の処理により、例えば図３２（ａ）のＩｎｓｔａｎｃｅＣＩ、および図３２（ｂ）のトランザクションコンテキストを考える。この場合、前アプリはコンテナアプリ名がＡｐａｃｈｅでデプロイドアプリ名が顧客ページ、後アプリはコンテナアプリ名がＳｙｍｆｏｗａｒｅでデプロイドアプリ名が顧客データのため、前アプリ名、後アプリ名は一致している。Ａｐｐ１とＡｐｐ２を比較すると、コンテナアプリ名はどちらもＩｎｔｅｒｓｔａｇｅで、デプロイドアプリ名はＡｐｐＡはどちらもあるが、ＡｐｐＢはＡｐｐ１のみしかない。以上から、ＡｐｐＡは多重化アプリの要素で、ＡｐｐＢは他の目的のためのアプリと分かる。
【０１２７】
次に、図２８のステップＳ２８０６のトランザクション情報を用いた手段Ｅ−２の処理の詳細について、図３４のサブフロー４により説明する。
ここでは、図２８のステップＳ２８０１で得られたデータについて、まず、ステップＳ３４０１からＳ３４０４までのループ処理によって、以下の判定が繰り返し実行される。すなわち、ステップＳ３４０２にて、他の候補と受信トランザクションの要求メッセージと応答メッセージ、送信トランザクションの要求メッセージと応答メッセージが一致する候補があるか否かが判定される。
【０１２８】
そして、ステップＳ３４０２の繰返しにおいて、一致する候補があると判定される毎に、一致のエントリが多重化アプリ候補に加えられる（ステップＳ３４０３）。
続いて、上述のループ処理によって生成された全ての多重化アプリ候補群に対して、ステップＳ３４０５からＳ３４０８までのループ処理によって、以下の判定が繰り返し実行される。すなわち、ステップＳ３４０６にて、デプロイドアプリが他のデプロイドアプリと部分一致または包含関係にあるか否かが判定される。
【０１２９】
そして、ステップＳ３４０６の繰返しにおいて、部分一致または包含関係が検出される毎に、それらの関係を有するアプリケーションが多重化アプリとして検出される（ステップＳ３４０７）。
【０１３０】
今、例えば図２９の部分一致関係を有する図３０（ａ）のＩｎｓｔａｎｃｅＣＩ、および図３０（ｃ）のトランザクション情報のデータ構成例を考える。
処理１（ステップＳ３４０２）：ＩｎｓｔａｎｃｅＣＩ、およびトランザクション情報のリストの項目を上から順番に読み込む。具体例として、Ｉｎｓ１，Ｉｎｓ２ともに、コンテナアプリ名がＩｎｔｅｒｓｔａｇｅというデータが取り出せる。また、要求メッセージの受信トランザクションがＡｐｐＡを実行、送信トランザクションが顧客データ参照、応答メッセージが受信トランザクションは顧客ページ、送信トランザクションが顧客データというデータが取り出せる。デプロイドアプリ名のみＩｎｓ１はＡｐｐＡとＡｐｐＢ、Ｉｎｓ２はＡｐｐＡとＡｐｐＣというデータが得られる。
【０１３１】
処理２（ステップＳ３４０２）：要求メッセージと応答メッセージが一致する候補があるかどうか評価する。一致する候補が見つからなければ、ステップＳ３４０４に移って次のループへ移動する。一致する候補が見つかればステップＳ３４０３へ進む。具体例として、Ｉｎｓ１について一致する候補を探すと、Ｉｎｓ２が要求メッセージと応答メッセージが一致するため、ステップＳ３４０３へ進む。
【０１３２】
処理３（ステップＳ３４０３）：該当した候補を多重化アプリ候補群に加える。具体例として、Ｉｎｓ１を同じ要求メッセージ、応答メッセージを持つグループに加える。グループが無ければ作成する。その後、ステップＳ３４０４へ進む。
【０１３３】
処理４（ステップＳ３４０５→Ｓ３４０６）：これまでの手順で判明した多重化アプリ候補群を上から順に読み出す。具体例として、Ｉｎｓ１とＩｎｓ２が含まれたグループが一つ作成されている。このグループの一つ目のＩｎｓ１から順に読み出す。もし、別のグループがある場合は、前のグループが処理４を終えてから別のグループの処理４を実行する。
【０１３４】
処理５（ステップＳ３４０６）：他の候補とデプロイドアプリが部分一致または包含関係にあるかを評価する。該当する候補が見つからなければ、ステップＳ３４０８に移って次のループへ移動する。該当する候補が見つかればステップＳ３４０７へ進む。具体例として、Ｉｎｓ１は、デプロイドアプリＡｐｐＡとＡｐｐＢを持つ。ここで、他の候補と比較を行うと、Ｉｎｓ２がデプロイドアプリＡｐｐＡとＡｐｐＣを持ち、ＡｐｐＡのみが一致する部分一致の関係であることが検出できる。部分一致する候補が見つかったため、ステップＳ３４０７へ進む。Ｉｎｓ２についても同様に部分一致が検出できるため、ステップＳ３４０７へ進む。
【０１３５】
処理６（ステップＳ３４０７）：該当する候補を多重化アプリとする。具体例として、Ｉｎｓ１，Ｉｎｓ２を多重化アプリとして登録する。
処理７（ステップＳ３４０８）：全ての候補について処理が完了したら終了する。
【０１３６】
以上の処理により、例えば図３０（ａ）のＩｎｓｔａｎｃｅＣＩ、および図３０（ｃ）のトランザクションコンテキストを考える。この場合、トランザクション情報でＩｎｓ１とＩｎｓ２は同じＩＰアドレスから要求を受け、同じ宛て先ＩＰのテーブルを参照しており、要求メッセージと応答メッセージが一致するため多重化アプリと分かる。そこで、Ｉｎｓ１とＩｎｓ２のＩｎｓｔａｎｃｅＣＩを比較すると、ＡｐｐＡは共通してデプロイされているため多重化アプリと分かり、ＡｐｐＢやＡｐｐＣは多重化アプリでは無いと分かる。
【０１３７】
次に、例えば図３１の部分一致関係を有する図３２（ａ）のＩｎｓｔａｎｃｅＣＩ、および図３２（ｃ）のトランザクション情報のデータ構成例を考える。
処理１（ステップＳ３４０２）：ＩｎｓｔａｎｃｅＣＩ、およびトランザクション情報のリストの項目を上から順番に読み込む。具体例として、Ｉｎｓ１，Ｉｎｓ２ともに、コンテナアプリ名がＩｎｔｅｒｓｔａｇｅというデータが取り出せる。また、要求メッセージの受信トランザクションがＡｐｐＡを実行、送信トランザクションが顧客データ参照、応答メッセージが受信トランザクションは顧客ページ、送信トランザクションが顧客データというデータが取り出せる。デプロイドアプリ名のみＩｎｓ１はＡｐｐＡとＡｐｐＢ、Ｉｎｓ２はＡｐｐＡというデータが得られる。
【０１３８】
処理２（ステップＳ３４０２）：要求メッセージと応答メッセージが一致する候補があるかどうか評価する。一致する候補が見つからなければ、ステップＳ３４０４に移って次のループへ移動する。一致する候補が見つかればステップＳ３４０３へ進む。具体例として、Ｉｎｓ１について一致する候補を探すと、Ｉｎｓ２が要求メッセージと応答メッセージが一致するため、ステップＳ３４０３へ進む。
【０１３９】
処理３（ステップＳ３４０３）：該当した候補を多重化アプリ候補群に加える。具体例として、Ｉｎｓ１を同じ要求メッセージ、応答メッセージを持つグループに加える。グループが無ければ作成する。その後、ステップＳ３４０４へ進む。
【０１４０】
処理４（ステップＳ３４０５→Ｓ３４０６）：これまでの手順で判明した多重化アプリ候補群を上から順に読み出す。具体例として、Ｉｎｓ１とＩｎｓ２が含まれたグループが一つ作成されている。このグループの一つ目のＩｎｓ１から順に読み出す。もし、別のグループがある場合は、前のグループが処理４を終えてから別のグループの処理４を実行する。
【０１４１】
処理５（ステップＳ３４０６）：他の候補とデプロイドアプリが部分一致または包含関係にあるかを評価する。該当する候補が見つからなければ、ステップＳ３４０８に移って次のループへ移動する。該当する候補が見つかればステップＳ３４０７へ進む。具体例として、Ｉｎｓ１は、デプロイドアプリＡｐｐＡとＡｐｐＢを持つ。ここで、他の候補と比較を行うと、Ｉｎｓ２がデプロイドアプリＡｐｐＡを持ち、ＡｐｐＡのみが一致する部分一致の関係であることが検出できる。包含関係の候補が見つかったため、ステップＳ３４０７へ進む。Ｉｎｓ２についても同様に包含関係が検出できるため、ステップＳ３４０７へ進む。
【０１４２】
処理６（ステップＳ３４０７）：該当する候補を多重化アプリとする。具体例として、Ｉｎｓ１，Ｉｎｓ２を多重化アプリとして登録する。
処理７（ステップＳ３４０８）：全ての候補について処理が完了したら終了する。
【０１４３】
以上の処理により、例えば図３２（ａ）のＩｎｓｔａｎｃｅＣＩ、および図３２（ｃ）のトランザクションコンテキストを考える。この場合、トランザクション情報でＩｎｓ１とＩｎｓ２は同じＩＰアドレスから要求を受け、同じ宛て先ＩＰのテーブルを参照しており、要求メッセージと応答メッセージが一致するため多重化アプリと分かる。そこで、Ｉｎｓ１とＩｎｓ２のＩｎｓｔａｎｃｅＣＩを比較すると、ＡｐｐＡは共通してデプロイされているため多重化アプリと分かり、ＡｐｐＢは多重化アプリでは無いと分かる。
【０１４４】
以上の方法で、デプロイドアプリが部分一致する場合や包含関係にある多重化アプリを検出することができる。
図３５は、図１７のステップＳ１７０４の第２の実施態様のコンピュータによる処理を示すフローチャートである。
【０１４５】
まず、ＣＭＤＢ１５０４に登録されている全てのＩＴサービスが参照される（ステップＳ３５０１）。
次に、ステップＳ３５０１で得られた全てのＩＴサービスについて、まず、ステップＳ３５０２からＳ３５０５までのループ処理によって、以下の判定が繰り返し実行される。すなわち、ステップＳ３５０３にて、処理対象のＩＴサービスについて、他のＩＴサービスとＩｎｓｔａｎｃｅＩＤ（図２０）が比較される。これにより、多重化アプリ以外のアプリケーションが一致するＩＴサービスがあるかどうかが評価される。今、ステップＳ３５０１で得られる各ＩＴサービスでは、図３６に示されるように、サービスを構成するアプリケーションの連鎖が、各アプリケーションに対応するＩｎｓｔａｎｃｅＩＤのリストとして表現されている（後述の図４４参照）。更に、ＣＭＤＢ１５０４には、例えば図２０として示されるように、上記各ＩｎｓｔａｎｃｅＩＤをキーとする各アプリケーションのレコード情報が登録されている。そして、各アプリケーションのレコード情報には、それが多重化アプリであるか否かを示す情報および多重化アプリを識別する情報が、図１７のステップＳ１７０３の第１の実施形態における図１９のステップＳ１９１１によって登録されている。ステップＳ３５０３では、このレコード情報が参照されながら、処理対象のＩＴサービスを構成するＩｎｓｔａｎｃｅＩＤのリストのうち、多重化アプリに対応するＩｎｓｔａｎｃｅＩＤ以外のＩＤが、他のＩＴサービスと一致するか否かが評価される。
【０１４６】
この結果、一致するＩＴサービスがあると判定された場合には、ステップＳ３５０４にて、処理対象のＩＴサービスが、一致したＩＴサービスが属するＩＴサービスグループ候補と同じＩＴサービスグループ候補に加えられる。ＩＴサービスグループ候補が無ければ新しく作成され、処理対象ＩＴサービス、および一致したＩＴサービスが、新規のＩＴサービスグループ候補に加えられる。今、例えば図３６に示されるように、ＳｅｒｖｉｃｅＡ，ＳｅｒｖｉｃｅＢ，ＳｅｒｖｉｃｅＣというようなＩＴサービスを考える。上述のループ処理の結果、ＳｅｒｖｉｃｅＡとＳｅｒｖｉｃｅＢは、多重化アプリＢ１，Ｂ２以外の前後のアプリケーションＡおよびＣが、互いに一致する。したがって、まず、ＳｅｒｖｉｃｅＡが、ＳｅｒｖｉｃｅＢが属するＩＴサービスグループ候補に加えられる。ＳｅｒｖｉｃｅＢ，ＳｅｒｖｉｃｅＣについても同様に比較が行われる。
【０１４７】
続いて、上述のループ処理で得られたＩＴサービスグループ候補毎に、ステップＳ３５０６からＳ３５１０までのループ処理によって、以下の判定が繰り返し実行される。すなわち、ステップＳ３５０７にて、他のＩＴサービスグループ候補の多重化アプリ部と互いに多重関係になっているものがあるか否かが判定される。
【０１４８】
この結果、多重関係になっているものがあると判定された場合には、多重関係にあるものと同じＩＴサービスグループに、処理対象のＩＴサービスグループ候補が加えられる（ステップＳ３５０８）。
【０１４９】
一方、多重関係になっているものがないと判定された場合には、ＩＴサービスグループ候補から除外される（ステップＳ３５０９）。
以上の処理により、多重化アプリを含んだ、多重関係にあるＩＴサービスが、一つに束ねられる。この結果、図１７のステップＳ１７０５にて、前述した図１８に示されるようなアラート表示が実現される。
【０１５０】
図３７は、図１７のステップＳ１７０６の第３の実施形態のコンピュータによる処理を示すフローチャートである。
まず、通常のＩＴシステムの監視の結果、ＩＴサービスのダウンが検出される（ステップＳ３７０１）。
【０１５１】
次に、ＣＭＤＢ１５０４が参照されることにより、ダウンが検出されたＩＴサービスについて、多重関係にあるＩＴサービスが稼働しているか否かが判定される。多重関係にあるか否かは、前述した図３５のフローチャートで示される第２の実施形態によってＩＴサービスグループとして検出されている。
【０１５２】
この判定の結果、多重関係にあるＩＴサービスが稼働していると判定された場合には、通常よりもインパクトが小さいレベルのアラートを発生させる（ステップＳ３７０３）。例えば図３６に示されるようなＳｅｒｖｉｃｅＡ，ＳｅｒｖｉｃｅＢ，ＳｅｒｖｉｃｅＣというようなＩＴサービスが稼働しており、ＳｅｒｖｉｃｅＡとＳｅｒｖｉｃｅＢが多重関係にあることが検出されている。ここで、ＳｅｒｖｉｃｅＢのＩＴサービスのみがダウンした場合には、ステップＳ３７０３によって、図３８（ｃ）に示されるような、通常よりもインパクトが小さいウォーニングレベルのアラートが発生されることになる。
【０１５３】
一方、多重関係にある他のＩＴサービスも稼働していないと判定された場合には、通常よりもインパクトが大きいレベルのアラートを発生させる（ステップＳ３７０４）。上述の例で、ＳｅｒｖｉｃｅＢがダウンしたときにＳｅｒｖｉｃｅＡも既にダウンしている場合には、図３８（ｂ）に示されるような、通常よりもインパクトが大きいレベルのアラートが発生されることになる。
【０１５４】
更に、多重関係にあるＩＴサービスが存在しないと判定された場合には、従来通りのアラートを発生させる（ステップＳ３７０５）。上述の例で、ＳｅｒｖｉｃｅＡがダウンしたときにＳｅｒｖｉｃｅＢはもともと存在しない場合には、図３８（ａ）に示される通常表示がなされる。  以上のようにして、第３の実施形態によって、多重状態に応じて適切なアラートを発することが可能となる。  上述した実施形態では、ＣＭＤＢ１５０４から必要に応じてコンテナアプリ名やデプロイドアプリ名が参照される。データを参照するためには、ＣＭＤＢ１５０４へデータ取得用のコマンドを送信し、ＸＭＬデータを受信する。以下にＣＭＤＢから取得されるデータの例を示す。なお、ここに載せてあるデータは、本実施形態の説明のために簡略化してある。
【０１５５】
図３９は、ＣＭＤＢ１５０４コンテナアプリの一覧を取得するコマンドの実行結果である。ｎｓ:Ｉｎｓｔａｎｃｅというタグの中のｔｙｐｅ＝"Ｉｎｔｅｒｓｔａｇｅ"となっているデータが２件あり、ここから、コンテナアプリであるＩｎｔｅｒｓｔａｇｅが２件検出されていることが分かる。さらに、それぞれ、１９２.１６８.１.３と１９２.１６８.１.４のＩＰアドレスが割り振られているサーバにデプロイされていることが分かる。
【０１５６】
図４０は、ＣＭＤＢ１５０４からのサブネットアドレス取得データ例を示す図であり、ＣＭＤＢ１５０４から参照した構成情報の例になっている。このデータのＩＰアドレスと、コンテナアプリがデプロイされているサーバのＩＰアドレスをマッピングすることで、コンテナアプリのサブネットアドレスを特定できる。
【０１５７】
図４１と図４２は、ＣＭＤＢ１５０４から取得したトランザクションコンテキストの例で、ＴｒａｎｓａｃｔｉｏｎＣｏｎｔｅｘｔＦｒｏｍが前アプリ、ＴｒａｎｓａｃｔｉｏｎＣｏｎｔｅｘｔＬｏｃａｌが間のコンテナアプリ、ＴｒａｎｓａｃｔｉｏｎＣｏｎｔｅｘｔＴｏが後アプリの情報になっている。ＴｒａｎｓａｃｔｉｏｎＣｏｎｔｅｘｔＬｏｃａｌのｉｄとコンテナアプリのｉｄをマッピングすることで、コンテナアプリのトランザクションコンテキストを取得できる。前アプリ、後アプリのさらに前や後のアプリを追跡するには、前アプリ、後アプリ自身のＴｒａｎｓａｃｔｉｏｎＣｏｎｔｅｘｔを検出し、その中の前アプリか後アプリを取得する。例では、ｃｍｄｂ:ｉｔというタグのｉｄの値が３３のデータは、ＤＢ１のアプリのトランザクションコンテキストとなっている。このデータから、ＤＢ１の後アプリはＤＢ２であることがわかる。
【０１５８】
図４３は、ＣＭＤＢ１５０４から取得したトランザクション情報の例で、このデータのｎｓ:ＴｒａｎｓａｃｔｉｏｎＩｎｆｏｒｍａｔｉｏｎ内のｆｒｏｍかｔｏの値と、コンテナアプリのＩＤとでマッピングを取り、コンテナアプリのトランザクション情報を見つける。
【０１５９】
図４４は、ＣＭＤＢ１５０４から取得したＩＴサービスの例を示す図であり、ＩＴサービスを構成するアプリケーションの連鎖が、各アプリケーションに対応するＩｎｓｔａｎｃｅＩＤのリストとして表現されている。
【０１６０】
図４５は、上記実施形態のシステムを実現できるコンピュータのハードウェア構成の一例を示す図である。
図４５に示されるコンピュータは、ＣＰＵ４５０１、メモリ４５０２、入出力装置４５０３、外部記憶装置４５０５、可搬記録媒体４５０９が挿入される可搬記録媒体駆動装置４５０６、および通信ネットワーク４５０７を有し、これらがバス４５０８によって相互に接続された構成を有する。同図に示される構成は上記システムを実現できるコンピュータの一例であり、そのようなコンピュータはこの構成に限定されるものではない。
【０１６１】
ＣＰＵ４５０１は、当該コンピュータ全体の制御を行う。メモリ４５０２は、プログラムの実行、データ更新等の際に、外部記憶装置４５０５（或いは可搬記録媒体４５０９）に記憶されているプログラムまたはデータを一時的に格納するＲＡＭ等のメモリである。ＣＵＰ４５０１は、プログラムをメモリ４５０２に読み出して実行することにより、全体の制御を行う。
【０１６２】
入出力装置４５０３は、ユーザによるキーボードやマウス等による入力操作を検出し、その検出結果をＣＰＵ４５０１に通知し、ＣＰＵ４５０１の制御によって送られてくるデータを表示装置や印刷装置に出力する。
【０１６３】
外部記憶装置４５０５は、例えばハードディスク記憶装置である。主に各種データやプログラムの保存に用いられる。
可搬記録媒体駆動装置４５０６は、光ディスクやＳＤＲＡＭ、コンパクトフラッシュ（登録商標）等の可搬記録媒体４５０９を収容するもので、外部記憶装置４５０５の補助の役割を有する。
【０１６４】
通信インターフェース４５０７は、例えばＬＡＮ（ローカルエリアネットワーク）またはＷＡＮ（ワイドエリアネットワーク）の通信回線を接続するための装置である。
本実施形態によるシステムは、本実施形態の機能を実現する各動作フローチャートに対応する各制御プログラムを、ＣＰＵ４５０１が実行することで実現される。そのプログラムは、例えば外部記憶装置４５０５や可搬記録媒体４５０９に記録して配布してもよく、或いは通信インターフェース４５０７によりネットワークから取得できるようにしてもよい。各データは、例えば外部記憶装置４５０５またはメモリ４５０２上に記憶して運用される。また、メモリ４５０２上には、必要に応じて各制御プログラムを実行するためのワーク領域が展開される。
【０１６５】
以上の実施形態に関して、更に以下の付記を開示する。
（付記１）
情報システムの構成情報と前記情報システム内で伝送される通信データとを含む情報を収集する手段と、
収集した前記構成情報と前記通信データとに基づいて、前記情報システム内のいずれかの監視対象装置にデプロイされているアプリケーションであって、アプリケーション名が一致するアプリケーションが複数存在すると判定した場合に、多重化されているアプリケーションが存在することを検出する多重化アプリ検出部と、
を備えることを特徴とするアプリケーションの多重関係を検出する装置。
（付記２）
前記収集手段は、前記監視対象装置から前記構成情報を収集する構成情報収集部と、
前記通信データを収集するトランザクション収集部と、からなり、さらに前記構成情報と前記通信データを格納する構成情報管理データベース、
を備えることを特徴とする付記１に記載のアプリケーションの多重関係を検出する装置。
（付記３）
前記多重化アプリ検出部は、
前記収集情報から、情報サービスを構成するための機能を提供する基盤ソフトウェアであるコンテナアプリの名称であるコンテナアプリ名、または前記コンテナアプリにデプロイされたプログラムやデータからなるデプロイドアプリの名称であるデプロイドアプリ名が一致するアプリケーションの組み合わせを、前記アプリケーション名が一致するアプリケーションとして抽出する、
ことを特徴とする付記１に記載のアプリケーションの多重関係を検出する装置。
（付記４）
前記多重化アプリ検出部は、
前記複数存在すると判定したアプリケーションについて、前記収集情報に含まれるインターネットプロトコルアドレスとサブネットマスクとに基づいてサブネットアドレスを算出し、
前記サブネットアドレスが一致するアプリケーションを、前記多重化されているアプリケーションとして検出する、
ことを特徴とする付記１に記載のアプリケーションの多重関係を検出する装置。
（付記５）
前記多重化アプリ検出部は、
前記複数存在すると判定したアプリケーションについて、前記収集情報から前記アプリケーションの前後に実行されるアプリケーションのアプリケーション名である前アプリ名と後アプリ名とを含むトランザクションコンテキストを抽出し、
前記トランザクションコンテキストを構成する前アプリ名と後アプリ名が一致するアプリケーションを、前記多重化されているアプリケーションとして検出する、
ことを特徴とする付記１に記載のアプリケーションの多重関係を検出する装置。
（付記６）
前記多重化アプリ検出部は、
前記複数存在すると判定したアプリケーションについて、前記収集情報からアプリケーションの送受信データである要求メッセージと応答メッセージを含むトランザクション情報を抽出し、
前記トランザクション情報を構成する前記要求メッセージと前記応答メッセージが一致するアプリケーションを、前記多重化されているアプリケーションとして検出する、
ことを特徴とする付記１に記載のアプリケーションの多重関係を検出する装置。
（付記７）
前記多重化アプリ検出部は、
前記収集情報から、情報サービスを構成するための機能を提供する基盤ソフトウェアであるコンテナアプリのコンテナアプリ名が一致するアプリケーションを抽出し、
前記コンテナアプリ名が一致するアプリケーションについて、前記収集情報から前記アプリケーションの前後に実行されるアプリケーションのコンテナアプリ名である前アプリ名と後アプリ名とを含むトランザクションコンテキストを抽出し、
前記コンテナアプリ名が一致するアプリケーションについて、前記収集情報から、前記コンテナアプリ名が一致するコンテナアプリにデプロイされたプログラムまたはデータであるデプロイドアプリのデプロイドアプリ名を抽出し、
前記コンテナアプリ名が一致するアプリケーション群について、前記トランザクションコンテキストを構成する前アプリ名と後アプリ名が一致するアプリケーションであって、かつ前記アプリケーション群に含まれる一つのアプリケーションのコンテナアプリ名に対応するデプロイドアプリ名の一部と前記アプリケーション群に含まれる他のアプリケーションのコンテナアプリ名に対応するデプロイドアプリ名の一部が一致する部分一致の関係、または前記アプリケーション群に含まれる一つのアプリケーションのコンテナアプリ名に対応するデプロイドアプリ名に前記アプリケーション群に含まれる他のアプリケーションのコンテナアプリ名に対応するデプロイドアプリ名が含まれる包含関係にあるアプリケーションを、前記多重化されているアプリケーションとして検出する、
ことを特徴とする付記１に記載のアプリケーションの多重関係を検出する装置。
（付記８）
前記多重化アプリ検出部は、
前記収集情報から、情報サービスを構成するための機能を提供する基盤ソフトウェアであるコンテナアプリのコンテナアプリ名が一致するアプリケーションを抽出し、
前記コンテナアプリ名が一致するアプリケーションについて、前記収集情報から前記アプリケーションの送受信データである要求メッセージと応答メッセージを含むトランザクション情報を抽出し、
前記コンテナアプリ名が一致するアプリケーションについて、前記収集情報から、前記コンテナアプリ名が一致するコンテナアプリにデプロイされたプログラムまたはデータであるデプロイドアプリのデプロイドアプリ名を抽出し、
前記コンテナアプリ名が一致するアプリケーション群について、前記トランザクションコンテキストを構成する前アプリ名と後アプリ名が一致するアプリケーションであって、、かつ前記アプリケーション群に含まれる一つのアプリケーションのコンテナアプリ名に対応するデプロイドアプリ名の一部と前記アプリケーション群に含まれる他のアプリケーションのコンテナアプリ名に対応するデプロイドアプリ名の一部が一致する部分一致の関係、または前記アプリケーション群に含まれる一つのアプリケーションのコンテナアプリ名に対応するデプロイドアプリ名に前記アプリケーション群に含まれる他のアプリケーションのコンテナアプリ名に対応するデプロイドアプリ名が含まれる包含関係にあるアプリケーションを、前記多重化されているアプリケーションとして検出する、
ことを特徴とする付記１に記載のアプリケーションの多重関係を検出する装置。
（付記９）
前記多重化アプリ検出部は、
前記複数存在すると判定したアプリケーションについて、前記収集情報に含まれるインターネットプロトコルアドレスとサブネットマスクとに基づいてサブネットアドレスを算出し、または前記収集情報から前記アプリケーションの前後に実行されるアプリケーションのアプリケーション名である前アプリ名と後アプリ名とを含むトランザクションコンテキストを抽出し、または前記収集情報からアプリケーションの送受信データである要求メッセージと応答メッセージを含むトランザクション情報を抽出し、
前記複数存在すると判定したアプリケーションにおいて、前記サブネットアドレスの一致、前記トランザクションコンテキストを構成する前アプリ名と後アプリ名の一致、または前記トランザクション情報を構成する前記要求メッセージと前記応答メッセージの一致の何れか１つ以上の一致の組合せにより、前記多重化されているアプリケーションを検出する、
ことを特徴とする付記１に記載のアプリケーションの多重関係を検出する装置。
（付記１０）
前記多重化アプリ検出部は、
多重化アプリが実行されるサブネット、前記多重化アプリの前後に実行されるアプリケーション名に関するデータであるトランザクションコンテキスト、または前記多重化アプリの送受信データであるトランザクション情報のいずれか一つ以上の評価項目について一致するか否かを評価すること、
を特徴とする付記１記載のアプリケーションの多重関係を検出する装置。
（付記１１）
前記収集情報に含まれる情報サービスを抽出し、前記抽出された情報サービスのうち、前記多重化アプリ検出部にて検出された多重化されているアプリケーション以外が一致する情報サービス同士を、情報サービスグループ候補として抽出し、前記抽出された情報サービスグループ候補のうち、同じ多重化されたアプリケーションを含む情報サービスグループ候補同士を、情報サービスグループとして抽出する多重関係情報サービス検出部をさらに備える、
ことを特徴とする付記１に記載のアプリケーションの多重関係を検出する装置。
（付記１２）
前記情報サービスのサービスレベルの違反が検出されたときに、前記違反が検出された情報サービスが含まれる情報サービスグループに属する他の情報サービスの稼動状態に応じたレベルのアラートを出力する多重関係に基づくアラート出力部をさらに備える、
ことを特徴とする付記１１に記載のアプリケーションの多重関係を検出する装置。
（付記１３）
コンピュータが情報システムで実行されるアプリケーションの稼動状態を管理する方法において、
前記情報システムの構成情報と前記情報システム内で伝送される通信データとを含む情報を収集し、
収集した前記構成情報と前記通信データとに基づいて、前記情報システム内のいずれかの監視対象装置にデプロイされているアプリケーションであって、アプリケーション名が一致するアプリケーションが複数存在すると判定した場合に、多重化されているアプリケーションが存在することを検出する、
ことを特徴とするアプリケーションの多重関係を検出する方法。
（付記１４）
情報システムで実行されるアプリケーションの稼動状態を管理するコンピュータに、
前記情報システムの構成情報と前記情報システム内で伝送される通信データとを含む情報を収集し、
収集した前記構成情報と前記通信データとに基づいて、前記情報システム内のいずれかの監視対象装置にデプロイされているアプリケーションであって、アプリケーション名が一致するアプリケーションが複数存在すると判定した場合に、多重化されているアプリケーションが存在することを検出する、
機能を実行させるためのプログラム。
（付記１５）
情報システムで実行されるアプリケーションを管理するコンピュータに、
前記情報システムの構成情報と前記情報システム内で伝送される通信データとを含む情報を収集し、
収集した前記構成情報と前記通信データとに基づいて、前記情報システム内のいずれかの監視対象装置にデプロイされているアプリケーションであって、アプリケーション名が一致するアプリケーションが複数存在すると判定した場合に、多重化されているアプリケーションが存在することを検出する、
機能を実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【符号の説明】
【０１６６】
１５０１  多重化アプリ検出部
１５０２  構成情報収集部
１５０３  トランザクション収集部
１５０４  ＣＭＤＢ
１５０５  監視対象サーバ群
１５０６  管理コンソール
１６０１  トランザクション管理／構成情報管理装置
１６０２  トランザクション分析／構成情報収集装置
１６０３  トランザクション収集装置
１６０４  スイッチ
１６０５  ファイアーウォール
１６０６  インターネット
【図１７】
0005625621.tif 000002
【図１９】
0005625621.tif 000003
【図２３】
0005625621.tif 000004
【図２５】
0005625621.tif 000005
【図２８】
0005625621.tif 000006
【図３３】
0005625621.tif 000007
【図３４】
0005625621.tif 000008
【図３５】
0005625621.tif 000009
【図３９】
0005625621.tif 000010
【図４０】
0005625621.tif 000011
【図４１】
0005625621.tif 000012
【図４２】
0005625621.tif 000013
【図４３】
0005625621.tif 000014
【図４４】
0005625621.tif 000015
【図４５】
0005625621.tif 000016
【図１】
0005625621.tif 000017
【図２】
0005625621.tif 000018
【図３】
0005625621.tif 000019
【図４】
0005625621.tif 000020
【図５】
0005625621.tif 000021
【図６】
0005625621.tif 000022
【図７】
0005625621.tif 000023
【図８】
0005625621.tif 000024
【図９】
0005625621.tif 000025
【図１０】
0005625621.tif 000026
【図１１】
0005625621.tif 000027
【図１２】
0005625621.tif 000028
【図１３】
0005625621.tif 000029
【図１４】
0005625621.tif 000030
【図１５】
0005625621.tif 000031
【図１６】
0005625621.tif 000032
【図１８】
0005625621.tif 000033
【図２０】
0005625621.tif 000034
【図２１】
0005625621.tif 000035
【図２２】
0005625621.tif 000036
【図２４】
0005625621.tif 000037
【図２６】
0005625621.tif 000038
【図２７】
0005625621.tif 000039
【図２９】
0005625621.tif 000040
【図３０】
0005625621.tif 000041
【図３１】
0005625621.tif 000042
【図３２】
0005625621.tif 000043
【図３６】
0005625621.tif 000044
【図３７】
0005625621.tif 000045
【図３８】
0005625621.tif 000046