(57)【要約】      （修正有）【課題】ネットワークを介して接続されている複数のコンピュータに基づいて提供されるエージェントを組み合わせて実現されたサービスの稼働状態を監視する情報処理システムを提供する。【解決手段】情報処理システム１００は、ネットワークを介して接続する複数の情報処理装置が実現しているエージェント２００Ａ〜Ｈを組み合わせてサービスとしての機能を実現（提供）する。モニタ８２０は、情報処理システムから、サービスの稼働状態を受信する。監視エージェント２１０は、情報処理システムに含まれる情報処理装置を用いて提供され、サービスの提供に用いられるエージェントの動作状態を監視する。監視エージェントは、所定の回数のサービス及び所定の期間のサービスにおいて、サービスそれぞれに関連するエージェントそれぞれにおける動作状態を監視し、動作状態を基にサービスの稼働状態を算出し、算出した稼働状態を所定のモニタに送信する。【選択図】図７
2020038506.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続する複数のコンピュータを含み、
１つ又は複数の前記コンピュータを用いて、
所定の機能の単位であるエージェントと、
少なくとも一部の前記エージェントの組合せとしてクライアントに提供されるサービスと、
所定の回数の前記サービス及び所定の期間の前記サービスにおいて、前記サービスそれぞれに関連する前記エージェントそれぞれにおける動作状態を監視し、前記動作状態を基に前記サービスの稼働状態を算出し、算出した前記稼働状態を所定のモニタに送信する監視エージェントと
を実行する情報処理システム。
【請求項２】
前記監視エージェントは、前記稼働状態として、前記動作状態を基に前記サービスそれぞれが成功したか否かを判定し、成功した前記サービスの数と監視した前記サービスの数との比率を算出する
請求項１に記載の情報処理システム。
【請求項３】
前記エージェントは、前記サービスを識別するための識別子を保持し、
前記監視エージェントは、前記識別子それぞれに関連する前記サービスの前記稼働状態を算出する
請求項１又は２に記載の情報処理システム。
【請求項４】
前記エージェントは、さらに、障害に関連する情報を保持し、
前記監視エージェントは、さらに、前記サービスそれぞれに関連する前記エージェントから障害に関連する前記情報を取得し、前記モニタに前記障害に関連する前記情報を送信する
請求項２に記載の情報処理システム。
【請求項５】
ネットワークを介して接続する複数のコンピュータにおいて、
１つ又は複数の前記コンピュータが、
所定の機能の単位であるエージェントと、
少なくとも一部の前記エージェントの組合せとしてクライアントに提供されるサービスと、
所定の回数の前記サービス及び所定の期間の前記サービスにおいて、前記サービスそれぞれに関連する前記エージェントそれぞれにおける動作状態を監視し、前記動作状態を基に前記サービスの稼働状態を算出し、算出した前記稼働状態を所定のモニタに送信する監視エージェントと
して動作する情報処理方法。
【請求項６】
ネットワークを介して接続する複数のコンピュータにおいて、
１つ又は複数の前記コンピュータに、
所定の機能の単位であるエージェントとしての処理と、
少なくとも一部の前記エージェントの組合せとしてクライアントに提供されるサービスとしての処理、
所定の回数の前記サービス及び所定の期間の前記サービスにおいて、前記サービスそれぞれに関連する前記エージェントそれぞれにおける動作状態を監視し、前記動作状態を基に前記サービスの稼働状態を算出し、算出した前記稼働状態を所定のモニタに送信する監視エージェントしての処理と
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理の監視に関し、特に、複数の処理の監視に関する。
【背景技術】
【０００２】
情報処理システムの利用者は、情報処理システムの動作状態を監視する。そのため、情報処理システムの監視に関する技術が、提案されている（例えば、特許文献１ないし３を参照）。
【０００３】
特許文献１に記載の発明は、アプリケーションにおける応答時間の算出、及び、算出した応答時間の表示に関連する発明である。
【０００４】
特許文献２に記載の発明は、アプリケーションに関連するノードの表示に関連する発明である。
【０００５】
特許文献３に記載の発明は、分散データの管理に関連する発明である。
【０００６】
ネットワーク及びコンピュータの性能の向上に伴い、ネットワークを介して接続された複数のコンピュータから提供される機能を組み合わせて所望の機能を実現することが行われている。
【０００７】
このような、ネットワークを介して組み合わせて利用可能な機能を提供するシステムは、クラウドコンピューティングシステム又はクラウドシステムと呼ばれている。あるいは、組合せ可能な機能を提供するシステムは、Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＩｓｓＳ）、又は、Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＰａａＳ）などと呼ばれている。
【０００８】
なお、クラウドコンピューティングシステムにおいて提供される機能に対しては、機能を提供する会社、及び／又は、機能の規模などに伴い、各種の名称が用いられている。例えば、機能の単位は、サービス、モジュール、エージェント、カプセル、又は、Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ（ＡＰＩ）などと呼ばれている。
【０００９】
以下の説明において、システムから提供される個別の機能を「エージェント」と呼ぶ。また、エージェントを組み合わせて実現する所望の機能を「サービス」と呼ぶ。
【００１０】
なお、個別の機能は組み合わされて所望のサービスを実現するため、クラウドコンピューティングシステムなどでは、提供される機能（以下の説明における「エージェント」に相当する機能）は、「マイクロ・サービス」と呼ばれる場合がある。
【００１１】
具体的には、ネットワークを介して接続されているコンピュータが、所定のソフトウェアを基に動作して、エージェントとしての機能の提供を実現する。そして、クラウドコンピューティングシステムの利用者は、一つ又は複数のコンピュータにおいて動作しているエージェントを組み合わせて、所定のサービスとしての機能を実現する。なお、コンピュータは、少なくとも一つのプロセッサとメモリとを備え、メモリなどに保存されたソフトウェアを基に所定の機能を実現する装置である。
【００１２】
必要となるサービスにおける機能が変更となった場合、利用者は、組合せて用いているエージェントを変更して、機能の変更に対応する。利用しているエージェントの変更に伴い、エージェントとしての機能を提供するコンピュータは、変更となる場合がある。
【００１３】
また、必要となるサービスにおける性能が変更となった場合、利用者は、利用するエージェントの数を変更して性能の変更に対応する。利用しているエージェントの数の変更に伴い、エージェントとしての機能を提供するコンピュータの数、又は、サービスを実現するためのコンピュータの構成などが、変更となる場合がある。
【００１４】
このように、クラウドコンピューティングシステムでは、実際のエージェントを実現する物理的なコンピュータは、必要となる機能及び性能に対応して変化する。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２０１８−０２８７８３号公報
【特許文献２】特開２０１２−２２１５００号公報
【特許文献３】特表２０１４−５１５５２２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
利用者が利用するサービスには、必要となる性能がある。サービスの利用者は、提供されているサービスが、必要となる性能を満足しているかを知るため、所定の項目の監視を希望する。
【００１７】
監視したい項目は、１つの項目に限られず、複数の項目がある。
【００１８】
例えば、サービスにおける処理のスループット及び／又は処理遅延は、監視項目の一例である。あるいは、サービスを提供する機器における障害の有無は、監視項目の一例である。あるいは、サービスに利用されているリソースの量は、監視項目の一例である。
【００１９】
監視項目の１つとして、サービスの稼働状態がある。稼働状態として用いられる監視項目の一例は、「稼働率」である。稼働率とは、対象における能力に対して実際に利用されている能力の割合である。例えば、モノリシック（ｍｏｎｏｌｉｔｈｉｃ）に作成されたシステムの稼働率は、システムの全運転時間に対するサービスを提供するための稼働時間の割合である。あるは、モノリシックなシステムの稼働率は、「全運転時間に対する停止時間の割合を１から引いた値」である。
【００２０】
ただし、クラウドコンピューティングシステムのようなシステムでは、サービスの提供に用いられるエージェントは、相互に独立して動作する。さらに、１つのサービスの実現において、同様の機能を実現するエージェントが、複数用いられている場合が多い。この場合、一部のエージェントが障害などのために停止しても、サービスの提供は、同様の機能を実現する他のエージェントを用いて継続される。つまり、複数のエージェントを用いて実現されているサービスでは、一部のエージェントが停止しても、サービスの提供としての稼働状態は、継続される場合がある。
【００２１】
つまり、クラウドコンピューティングシステムのような複数のエージェントを用いて実現されているサービスの稼働状態は、そのサービスの稼働時間からは求めることができない。
【００２２】
このような複数のエージェントを用いて実現されているサービスの稼働状態を求めるためには、そのサービスのために用いられている全てのエージェントの稼働状態を把握することが必要である。
【００２３】
しかし、一般的なクラウドコンピューティングシステムにおいて、個別のエージェントは、組み合わされることにより、外部に対して所定のサービスの提供するものであり、単独でその稼働状態を外部に通知するようには作成されていない。さらに、障害などで停止したエージェントは、稼働状態を報告することができない。
【００２４】
また、一般的なクラウドコンピューティングシステムにおいて実現されているサービスには、非常に多くのエージェント（例えば、マイクロ・サービス）が用いられている。さらに、用いられているエージェントは、スケールイン又はスケールアウトのため、一定ではなく、常に変化している。そのため、エージェントが、個別に稼働状態を報告する機能を備えたとしても、サービスに関連する全てのエージェントの稼働状態を取得することは、実効的に困難である。
【００２５】
このように、ネットワークを介して接続されたコンピュータにおいて実現されているエージェントを組み合わせてサービスを提供しているシステムでは、サービスの稼働状態を監視することができなかった。
【００２６】
特許文献１は、稼働している仮想マシンのアドレスなどについて開示しているが、仮想マシンの稼働状態の監視については開示していない。
【００２７】
特許文献２及び３は、システムにおける稼働の監視に関する技術を開示していない。
【００２８】
このように、特許文献１ないし３は、複数のエージェントを組み合わせて実現されているサービスの稼働状態を監視できないという問題点があった。
【００２９】
本発明の目的は、上記問題点を解決し、ネットワークを介して接続されている複数のコンピュータに基づいて提供されるエージェントを組み合わせて実現されたサービスの稼働状態を監視する情報処理システムなどを提供することにある。
【課題を解決するための手段】
【００３０】
本発明の一形態における情報処理システムは、
ネットワークを介して接続する複数のコンピュータを含み、
１つ又は複数のコンピュータを用いて、
所定の機能の単位であるエージェントと、
少なくとも一部の前記エージェントの組合せとしてクライアントに提供されるサービスと、
所定の回数のサービス及び所定の期間のサービスにおいて、サービスそれぞれに関連するエージェントそれぞれにおける動作状態を監視し、動作状態を基にサービスの稼働状態を算出し、算出した稼働状態を所定のモニタに送信する監視エージェントと
を実行する。
【００３１】
本発明の一形態における情報処理方法は、
ネットワークを介して接続する複数のコンピュータにおいて、
１つ又は複数のコンピュータが、
所定の機能の単位であるエージェントと、
少なくとも一部の前記エージェントの組合せとしてクライアントに提供されるサービスと、
所定の回数のサービス及び所定の期間のサービスにおいて、サービスそれぞれに関連するエージェントそれぞれにおける動作状態を監視し、動作状態を基にサービスの稼働状態を算出し、算出した稼働状態を所定のモニタに送信する監視エージェントと
して動作する。
【００３２】
本発明の一形態におけるプログラムは、
ネットワークを介して接続する複数のコンピュータにおいて、
１つ又は複数のコンピュータに、
所定の機能の単位であるエージェントとしての処理と、
少なくとも一部の前記エージェントの組合せとしてクライアントに提供されるサービスとしての処理と、
所定の回数のサービス及び所定の期間のサービスにおいて、サービスそれぞれに関連するエージェントそれぞれにおける動作状態を監視し、動作状態を基にサービスの稼働状態を算出し、算出した稼働状態を所定のモニタに送信する監視エージェントしての処理と
を実行させる。
【発明の効果】
【００３３】
本発明に基づけば、複数のエージェントを組み合わせて実現されたサービスの稼働状態を監視するとの効果を奏することができる。
【図面の簡単な説明】
【００３４】
【図１】図１は、第１の実施形態にかかる情報処理システムのハードウェア構成の一例を示すブロック図である。
【図２】図２は、第１の実施形態にかかる情報処理装置のハードウェア構成の一例を示すブロック図である。
【図３】図３は、第１の実施形態にかかる情報処理システムの機能構成の一例を示すブロック図である。
【図４】図４は、第１のサービスの一例を示す図である。
【図５】図５は、第２のサービスの一例を示す図である。
【図６】図６は、第３のサービスの一例を示す図である。
【図７】図７は、第１の実施形態にかかる監視エージェントの動作を説明するための図である。
【図８】図８は、稼働率の一例を示す図である。
【図９】図９は、障害に関連する情報の一例を示す図である。
【発明を実施するための形態】
【００３５】
上記のとおり、クラウドコンピューティングシステムのように、複数のエージェントを用いたサービスの提供において、サービスの稼働率など稼働状態を把握することが難しかった。発明者は、以下で詳細に説明するように、複数のエージェントに用いてサービスを提供する情報処理システムにおいても算出できる、稼働状態を示す値を見いだした。これは、発明者が新規に見いだした知見である。
【００３６】
次に、本発明の実施形態について図面を参照して説明する。
【００３７】
なお、各図面は、本発明の実施形態を説明するためのものである。ただし、本発明は、各図面の記載に限られるわけではない。また、各図面の同様の構成には、同じ番号を付し、その繰り返しの説明を、省略する場合がある。また、以下の説明に用いる図面において、本発明の説明に関係しない部分の構成については、記載を省略し、図示しない場合もある。また、図面中の矢印の方向は、一例を示すものであり、ブロック間の信号の向きを限定するものではない。
【００３８】
（用語の説明）
説明を明確とするため、以下の実施形態の説明における用語を説明する。
【００３９】
「エージェント」とは、各実施形態にかかる情報処理システムが提供する機能の単位である。なお、各実施形態にかかる情報処理システムは、複数のエージェントの組合せを、単独のエージェントと同様に提供してもよい。ただし、以下の説明では、説明を明確とするため、一例として、単独のエージェントを用いた説明とする。
【００４０】
「サービス」とは、エージェントを組み合わせて提供される所定の機能である。サービスとは、例えば、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ（ＷＷＷ）サーバ、又は、メール・サーバである。サービスは、以下の説明において、各実施形態にかかる情報処理システムにおける稼働状態の監視対象となる単位である。
【００４１】
各実施形態にかかる情報処理システムは、エージェントの組合せであるサービスの稼働状態を監視する。また、上記のとおり、各実施形態にかかる情報処理システムは、複数のエージェントの組合せをエージェントとして提供してもよい。そのため、各実施形態にかかる情報処理システムは、エージェントの組合せにおける動作状態を監視してもよい。ただし、以下の説明では、説明を明確とするため、一例として、「サービス」を監視対象として説明する。
【００４２】
＜第１の実施形態＞
以下、図面を参照して、本発明における第１の実施形態について説明する。
【００４３】
まず、図面を参照して、第１の実施形態にかかる情報処理システム１００のハードウェア構成について説明する。
【００４４】
図１は、第１の実施形態にかかる情報処理システム１００のハードウェア構成の一例を示すブロック図である。
【００４５】
情報処理システム１００は、複数の情報処理装置６００と、ネットワーク７００とを含む。
【００４６】
ネットワーク７００は、情報処理装置６００を相互に接続する。さらに、ネットワーク７００は、情報処理装置６００及びクライアント装置８００を接続する。ネットワーク７００は、各装置を接続できれば、その構成などは限定されない。例えば、ネットワーク７００は、インターネット、イントラネット、又は、公衆電話網である。
【００４７】
情報処理装置６００は、所定のエージェントとしての機能を、クライアント装置８００に提供する。さらに、情報処理装置６００は、エージェントの組合せであるサービスとしての機能を提供する。情報処理システム１００は、組み合わせるエージェントを実行している情報処理装置６００を限定されない。情報処理システム１００は、ネットワーク７００を介して接続された複数の情報処理装置６００において動作するエージェントを組み合わせてもよい。あるいは、情報処理システム１００は、同じ情報処理装置６００において動作するエージェントを組み合わせてもよい。さらに、情報処理システム１００は、利用するエージェントが動作する情報処理装置６００を適宜変更してもよい。
【００４８】
情報処理装置６００は、メモリと、少なくとも一つのプロセッサ（例えば、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ  （ＣＰＵ））とを含む。メモリは、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ  （ＲＯＭ）及びＲａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ  （ＲＡＭ）を含む。情報処理装置６００のＣＰＵは、メモリ上のプログラムを基に、エージェントとしての機能を実現する。情報処理装置６００は、磁気ディスク装置のような外部記憶装置を用いてもよい。
【００４９】
さらに、情報処理装置６００は、ネットワーク７００と接続するための構成（例えば、Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃｕｒｃｕｉｔ（ＮＩＣ））を備える。
【００５０】
情報処理装置６００は、さらに、周辺機器と接続するための構成（例えば、Ｉｎｐｕｔ  ａｎｄ  Ｏｕｔｐｕｔ  Ｃｕｒｃｕｉｔ（ＩＯＣ））を備えてもよい。
【００５１】
クライアント装置８００は、情報処理システム１００から、サービスとしての機能の提供を受ける装置である。クライアント装置８００は、サービスの提供を受ける装置であれば、その構成などを限定されない。クライアント装置８００は、例えば、サーバ、パーソナルコンピュータ、タブレット、携帯電話、又は、携帯情報端末（Ｐｅｒｓｏｎａｌ  Ｄａｔａ  Ａｓｓｉｓｔａｎｔ（ＰＤＡ））である。
【００５２】
次の、図面を参照して、情報処理装置６００のハードウェア構成を説明する。
【００５３】
図２は、第１の実施形態にかかる情報処理装置６００のハードウェア構成の一例を示すブロック図である。
【００５４】
情報処理装置６００は、ＣＰＵ６１０と、ＲＯＭ６２０と、ＲＡＭ６３０と、内部記憶装置６４０と、ＩＯＣ６５０と、ＮＩＣ６８０とを含み、コンピュータを構成している。
【００５５】
ＣＰＵ６１０は、ＲＯＭ６２０及び／又は内部記憶装置６４０からプログラムを読み込む。そして、ＣＰＵ６１０は、読み込んだプログラムに基づいて、ＲＡＭ６３０と、内部記憶装置６４０と、ＩＯＣ６５０と、ＮＩＣ６８０とを制御する。そして、ＣＰＵ６１０を含むコンピュータは、これらの構成を制御し、エージェントとしての各機能を実現する。
【００５６】
ＣＰＵ６１０は、各機能を実現する際に、ＲＡＭ６３０又は内部記憶装置６４０を、プログラムの一時記憶媒体として使用してもよい。
【００５７】
また、ＣＰＵ６１０は、コンピュータで読み取り可能にプログラムを記憶した記録媒体６９０が含むプログラムを、図示しない記録媒体読み取り装置を用いて読み込んでもよい。あるいは、ＣＰＵ６１０は、ＮＩＣ６８０を介して、図示しない外部の装置からプログラムを受け取り、ＲＡＭ６３０又は内部記憶装置６４０に保存して、保存したプログラムを基に動作してもよい。
【００５８】
ＲＯＭ６２０は、ＣＰＵ６１０が実行するプログラム及び固定的なデータを記憶する。ＲＯＭ６２０は、例えば、Ｐ−ＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ−ＲＯＭ）又はフラッシュＲＯＭである。
【００５９】
ＲＡＭ６３０は、ＣＰＵ６１０が実行するプログラム及びデータを一時的に記憶する。ＲＡＭ６３０は、例えば、Ｄ−ＲＡＭ（Ｄｙｎａｍｉｃ−ＲＡＭ）である。
【００６０】
内部記憶装置６４０は、情報処理装置６００が長期的に保存するデータ及びプログラムを記憶する。また、内部記憶装置６４０は、ＣＰＵ６１０の一時記憶装置として動作してもよい。内部記憶装置６４０は、例えば、ハードディスク装置、光磁気ディスク装置、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）又はディスクアレイ装置である。
【００６１】
ＲＯＭ６２０と内部記憶装置６４０とは、不揮発性（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）の記憶媒体である。一方、ＲＡＭ６３０は、揮発性（ｔｒａｎｓｉｔｏｒｙ）の記憶媒体である。そして、ＣＰＵ６１０は、ＲＯＭ６２０、内部記憶装置６４０、又は、ＲＡＭ６３０に記憶されているプログラムを基に動作可能である。つまり、ＣＰＵ６１０は、不揮発性記憶媒体又は揮発性記憶媒体を用いて動作可能である。
【００６２】
ＩＯＣ６５０は、ＣＰＵ６１０と、利用者が操作する機器などとのデータを仲介する。図２は、機器の一例として、入力機器６６０及び表示機器６７０を示す。ＩＯＣ６５０は、例えば、ＩＯインターフェースカード又はＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）カードである。さらに、ＩＯＣ６５０は、ＵＳＢのような有線に限らず、無線を用いてもよい。
【００６３】
なお、入力機器６６０は、情報処理装置６００の利用者からの入力指示を受け取る機器である。入力機器６６０は、例えば、キーボード、マウス又はタッチパネルである。表示機器６７０は、情報処理装置６００の利用者に情報を表示する機器である。表示機器６７０は、例えば、液晶ディスプレイ、有機エレクトロルミネッセンス・ディスプレイ、又は、電子ペーパーである。
【００６４】
ＮＩＣ６８０は、ネットワーク７００を介して他の情報処理装置６００及びクライアント装置８００とのデータのやり取りを中継する。ＮＩＣ６８０は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）カードである。さらに、ＮＩＣ６８０は、有線に限らず、無線を用いてもよい。
【００６５】
次に、図面を参照して、情報処理システム１００の機能構成について説明する。
【００６６】
図３は、第１の実施形態にかかる情報処理システム１００の機能構成の一例を示すブロック図である。
【００６７】
図３は、説明の便宜のため、情報処理装置６００に加え、情報処理システム１００からサービスの提供を受けるクライアント装置８００に対応する機能として、４つのクライアント８１０を示している。以下の説明において、個別のクライアント８１０を区別する場合は、アルファベットを付して、クライアント８１０Ａないし８１０Ｄを用いて説明する。クライアント８１０を区別する必要がない場合、クライアント８１０として説明する。
【００６８】
さらに、図３は、情報処理システム１００から、サービスの稼働状態を受信するモニタ８２０を示している。モニタ８２０を実現する装置は、限定されない。モニタ８２０は、所定のクライアント装置８００の機能として実現されてもよい。あるいは、モニタ８２０は、図示しない監視用の装置を用いて実現されてもよい。あるいは、いずれかの情報処理装置６００が、モニタ８２０としての機能を実現してもよい。
【００６９】
次に、情報処理装置６００における機能構成について説明する。
【００７０】
情報処理システム１００において、１つ又は複数の情報処理装置６００が、エージェント２００及び監視エージェント２１０（以下、まとめて「エージェント２００など」とも呼ぶ）としての機能を実現する。
【００７１】
情報処理装置６００は、上記で説明したハードウェアを用いて、エージェント２００などの機能を実現する。例えば、情報処理装置６００は、所定のオペレーティングシステム（Ｏｐｅｒａｔｉｏｎｇ  Ｓｙｓｔｅｍ（ＯＳ））を実行し、そのＯＳ上で動作するソフトウェアとしてエージェント２００など実行する。ただし、情報処理装置６００がエージェント２００などの機能を実現する構成は、上記の構成に限定されない。
【００７２】
また、情報処理装置６００におけるエージェント２００などの配置は、限定されない。１つの情報処理装置６００が、複数のエージェント２００などを実行してもよい。あるいは、複数の情報処理装置６００が、協働してエージェント２００などの機能を実現してもよい。さらに、情報処理システム１００は、エージェント２００などとしての機能を実現する情報処理装置６００を変更してもよい。
【００７３】
エージェント２００は、それぞれ、異なる機能を実現してもよい。ただし、複数のエージェント２００が、同様の機能を実現してもよい。あるいは、エージェント２００は、他のエージェント２００における一部の機能を含んだ機能を実現してもよい。つまり、エージェント２００は、他のエージェント２００と一部の機能が共通していてもよい。
【００７４】
図３において、同じ機能を実現するエージェント２００は、同じアルファベットを付した。例えば、図３の上部左に記載された３つのエージェント２００Ａは、同じ機能を実現する。これに対し、エージェント２００Ｂは、エージェント２００Ａとは、少なくとも一部が異なる機能を実現する。
【００７５】
図３は、９種類のエージェント（エージェント２００Ａから２００Ｈ、及び、監視エージェント２１０）を示している。
【００７６】
情報処理システム１００は、情報処理装置６００が実現しているエージェント２００を組み合わせてサービスとしての機能を実現（提供）する。例えば、エージェント２００Ａないし２００Ｈは、所定のサービスを提供するために組み合わされる。なお、以下の説明において、エージェント２００Ａないし２００Ｈを特に区別する必要がない場合は、エージェント２００として説明する。
【００７７】
以下の説明では、一例として、情報処理システム１００は、３つのサービスを提供するとする。
【００７８】
図４は、第１のサービスの一例を示す図である。図４において、太線を用いて結合されているエージェント２００が、第１のサービスに関連する。具体的には、第１のサービスは、３つのエージェント２００Ａと、エージェント２００Ｂと、エージェント２００Ｃと、エージェント２００Ｄとを用いて実現されている。第１のサービスにおいて、３つのエージェント２００Ａは、並列にクライアント８１０に対する窓口としての機能を実現している。
【００７９】
図５は、第２のサービスの一例を示す図である。図５において、太線を用いて結合されているエージェント２００が、第２のサービスに関連する。具体的には、第２のサービスは、２つのエージェント２００Ａと、エージェント２００Ｅと、エージェント２００Ｄとを用いて実現されている。第２のサービスにおいて、２つのエージェント２００Ａは、並列にクライアント８１０に対する窓口としての機能を実現している。
【００８０】
図６は、第３のサービスの一例を示す図である。図６において、太線を用いて結合されているエージェント２００が、第３のサービスに関連する。具体的には、第３のサービスは、エージェント２００Ｆと、２つのエージェント２００Ｇと、エージェント２００Ｈと、エージェント２００Ｄとを用いて実現されている。第３のサービスにおいて、２つのエージェント２００Ｇは、並列に所定の機能を実現している。
【００８１】
図３を参照した説明に戻る。
【００８２】
監視エージェント２１０は、エージェント２００と同様に、情報処理システム１００に含まれる情報処理装置６００を用いて提供されるエージェントである。ただし、監視エージェント２１０は、サービスの提供に用いられず、サービスの提供時に、サービスの提供に用いられるエージェント２００の動作状態を監視する。
【００８３】
図面を参照して、監視エージェント２１０の動作を説明する。
【００８４】
図７は、第１の実施形態にかかる監視エージェント２１０の動作を説明するための図である。図７は、第３のサービスが動作する場合を示している。図７は、破線を用いてサービス（今の場合、第３のサービス）の要求を示している。図７は、第３のサービスが５回要求された場合を示す。
【００８５】
なお、監視エージェント２１０は、第１のサービスなど他のサービスについても同様に監視する。ただし、図が煩雑となるため、図７は、第３のサービスの場合を示している。
【００８６】
また、図７は、１つの監視エージェント２１０が監視している場合を示している。ただし。情報処理システム１００は、一つに限らず、複数の監視エージェント２１０を動作させてもよい。例えば、情報処理システム１００は、サービスそれぞれに対して、監視エージェント２１０を起動して監視させてもよい。
【００８７】
あるいは、情報処理システム１００は、同じサービスに対して、複数の監視エージェント２１０を用いてもよい。この場合、各監視エージェント２１０の監視対象は、少なくとも一部が異なっていてもよい。つまり、監視エージェント２１０は、一部のエージェント２００の組合せの動作状態を監視してもよい。
【００８８】
図７に示されているように、情報処理システム１００において第３のサービスが要求されると、監視エージェント２１０は、第３のサービスの要求毎に、第３のサービスの提供に関連するエージェント２００の動作状態を取得する。今の場合、監視されるエージェント２００は、エージェント２００Ｆ、２００Ｇ、２００Ｈ、及び２００Ｄである。
【００８９】
そして、監視エージェント２１０は、所定数のサービスが要求されるまで、又は、所定の時間の経過するまで、監視を継続する。
【００９０】
例えば、監視エージェント２１０は、図７に示されているように、５回の第３のサービスが要求されるまで監視を継続する。なお、図７において、第３のサービスは、左のエージェント２００Ｇを用いて２回提供され、右側のエージェント２００Ｇを用いて３回提供されている。
【００９１】
そして、監視エージェント２１０は、監視したサービスにおけるエージェント２００の動作状態（例えば、障害の有無）を基に、サービス（この場合、第３のサービス）が成功したか否かを判定し、成功したサービス（及び／又は失敗したサービス）の数を計測する。
【００９２】
例えば、監視対象のサービスが正常に終了した場合、監視エージェント２１０は、そのサービスが成功したと判定する。
【００９３】
一方、例えば、監視対象のサービスを提供するためのエージェント２００のいずれかが障害となっている場合、監視エージェント２１０は、そのサービスが成功しなかったと判定する。
【００９４】
例えば、図７において、右側のエージェント２００Ｇが正常に動作し、左側のエージェント２００Ｇが障害となっていたとする。この場合、監視エージェント２１０は、成功したサービスとして、右側のエージェント２００Ｇを用いたサービスの数（この場合、「３」）を計測する。
【００９５】
あるいは、監視エージェント２１０は、失敗したサービスの数として、左側のエージェント２００Ｇを用いてサービスの数（この場合、「２」）を計測する。そして、監視エージェント２１０は、要求されたサービスの総数（この場合、「５」）から失敗したサービスの数を引いて、成功したサービスの数としてもよい。
【００９６】
そして、監視エージェント２１０は、成功したサービスの数と、要求されたサービスの数と基に、サービス（この場合、第３のサービス）の稼働状態を示す値を算出する。
【００９７】
稼働状態を示す値の一例として、稼働率を用いて説明する。
【００９８】
図８は、稼働率の一例を示す図である。図８の稼働率は、成功したサービスの数を、要求されたサービスの数で割った値（要求されたサービスの数に対する成功したサービスの数の比率）である。例えば、図７に示すように、何らかの原因で左側のエージェント２００Ｇに障害が発生していた場合、第３のサービスは、２回失敗となる。つまり、第３のサービスは、要求された５回の中で３回成功した。したがって、この場合の稼働率は、０．６（６０％）となる。
【００９９】
このように、情報処理システム１００は、監視エージェント２１０を用いて、情報処理システム１００が提供するサービスに関連するエージェント２００の動作状態を監視する。監視エージェント２１０は、エージェント２００の動作状態を基に、サービスの稼働状態（例えば、稼働率）を算出する。さらに、監視エージェント２１０は、算出したサービスの稼働状態を、所定のモニタ８２０は送信する。
【０１００】
情報処理システム１００の利用者などは、モニタ８２０を参照して、サービスの稼働状態を把握できる。
【０１０１】
なお、監視エージェント２１０は、各サービスの稼働状態の把握において、所定の期間及び所定の回数のサービスの提供における稼働状態を用いるのは、次の理由に基づく。
【０１０２】
すなわち、サービスの提供に利用されるエージェント２００は、必ずしも一定ではない。エージェント２００を実行する情報処理装置６００が変更となる場合がある。また、障害となったエージェント２００は、リカバリなどで回復する場合もある。そのため、監視エージェント２１０は、サービスに用いられるエージェント２００の変化の影響を低減するため、所定の期間、及び、所定の回数のサービスに対して稼働状態を監視することが望ましい。
【０１０３】
（効果の説明）
次に、第１の実施形態にかかる情報処理システム１００の効果について説明する。
【０１０４】
第１の実施形態にかかる情報処理システム１００は、複数のエージェント２００を組み合わせて実現されたサービスの稼働状態を監視するとの効果を得ることができる。
【０１０５】
その理由は、次のとおりである。
【０１０６】
情報処理システム１００は、ネットワーク７００を介して接続する複数の情報処理装置６００（コンピュータ）を含む。情報処理システム１００は、１つ又は複数のコンピュータを用いて、所定の機能の単位であるエージェント２００と、少なくとも一部のエージェント２００の組合せとしてクライアント８１０に提供されるサービスと、監視エージェント２１０とを実行する。監視エージェント２１０は、所定の回数のサービス及び所定の期間のサービスにおいて、サービスそれぞれに関連するエージェント２００それぞれにおける動作状態を監視する。そして、監視エージェント２１０は、動作状態を基にサービスの稼働状態を算出し、算出した稼働状態を所定のモニタ８２０に送信する。
【０１０７】
このように、情報処理システム１００は、監視エージェント２１０を用いてサービスを提供するエージェント２００それぞれの動作状態を基にサービスの稼働状態を監視する。そして、情報処理システム１００は、モニタ８２０に複数のエージェント２００を用いたサービスの稼働状態に関する情報を提供できる。
【０１０８】
情報処理システム１００の利用者などは、モニタ８２０において、監視エージェント２１０からの情報を確認できる。
【０１０９】
さらに、監視エージェント２１０は、サービスの稼働状態として、上記の稼働率を用いてもよい。具体的には、監視エージェント２１０は、サービスそれぞれに関連するエージェント２００それぞれの動作状態を基にサービスそれぞれが成功したか否かを判定し、成功したサービスの数と監視したサービスの数との比率（稼働率）を算出してもよい。
【０１１０】
＜第２の実施形態＞
第１の実施形態において、情報処理システム１００は、サービスに関連するエージェント２００の動作状態を監視する。ただし、エージェント２００は、複数のサービスに用いられる場合がある。
【０１１１】
例えば、図４ないし図６を参照すると、エージェント２００Ｄは、第１ないし第３のサービスのいずれにも用いられている。
【０１１２】
このような場合、例えば、エージェント２００Ｄの障害が、いずれのサービスに対する動作における障害であるかを判別できた方が望ましい。
【０１１３】
そこで、エージェント２００とそのエージェント２００が関連するサービスとの関係を考慮した実施形態を、第２の実施形態として説明する。
【０１１４】
第２の実施形態にかかる情報処理システム１００の構成及び動作は、以下で説明する識別子を用いる点を除き、第１の実施形態にかかる構成及び動作と同様である。そのため、第１の実施形態の同様の構成及び動作の詳細な説明を省略し、第２の実施形態に関連する構成及び動作を説明する。
【０１１５】
第２の実施形態にかかるエージェント２００は、関連するサービスの識別子を保持する。エージェント２００がサービスの識別子を保持する手法は、限定されない。
【０１１６】
例えば、エージェント２００は、次のようにサービスの識別子を保持すればよい。クライアント８１０からサービスの要求を受けた場合、要求を受けたエージェント２００は、そのサービスに識別子を設定する。そして、エージェント２００は、要求されたサービスを実現するために他のエージェント２００に所定の要求を送信するときに、サービスの識別子を送信する。なお、エージェント２００は、識別子の送信手法を限定されない。エージェント２００は、要求にサービスの識別子を含めてもよく、所定の手順に沿って要求と識別子とを別々に送信してもよい。
【０１１７】
サービスの識別子を受け取ったエージェント２００は、同様に、サービスの識別子を次のエージェント２００に送信する。
【０１１８】
そして、監視エージェント２１０から動作状態の問い合わせを受けた場合、エージェント２００は、監視エージェント２１０に、動作状態に合わせてサービスの識別子を送信する。
【０１１９】
監視エージェント２１０は、エージェント２００の動作状態とサービスの識別子とを受信する。そして、監視エージェント２１０は、サービスの識別子を用いて、サービス毎にエージェント２００の動作状態を基にしたサービスの稼働状態を計測する。
【０１２０】
例えば、監視エージェント２１０は、サービスの識別子毎に、要求されたサービスの数と、成功したサービスの数とを計測する。そして、監視エージェント２１０は、サービス毎の稼働状態をモニタ８２０に出力する。
【０１２１】
なお、サービスの識別子の送信は、エージェント２００における動作状態の送信時に限定されない。例えば、監視エージェント２１０が、必要に応じて、エージェント２００からサービスの識別子を取得してもよい。
【０１２２】
（効果の説明）
次に第２の実施形態にかかる情報処理システム１００の効果について説明する。
【０１２３】
第２の実施形態にかかる情報処理システム１００は、第１の実施形態の効果に加え、複数のサービスに利用されるエージェント２００がある場合でも、エージェント２００における動作状態を基に、サービスの稼働状態を計測するとの効果を得ることができる。
【０１２４】
その理由は、次のとおりである。
【０１２５】
第２の実施形態にかかるエージェント２００は、サービスを識別するための識別子を保持する。監視エージェント２１０は、サービスの識別子それぞれに関連するサービスの稼働状態を算出する。
【０１２６】
その結果、情報処理システム１００の利用者などは、複数のサービスに利用されるエージェント２００が含まれる場合でも、それぞれのサービスに関連した動作状態を把握できる。
【０１２７】
＜第３の実施形態＞
エージェント２００において発生する障害は、１つに限られず、複数となる場合が多い。
【０１２８】
そこで、障害に関する詳細な情報を提供するエージェント２００を、第３の実施形態として説明する。
【０１２９】
次に、図面を参照して、第３の実施形態について説明する。
【０１３０】
第３の実施形態にかかる情報処理システム１００の構成及び動作は、障害に関連する情報を除き、第１の実施形態にかかる構成及び動作が同様である。そのため、第１の実施形態と同様の構成及び動作の詳細な説明を省略し、第３の実施形態にかかる構成及び動作を説明する。
【０１３１】
第３の実施形態にかかるエージェント２００は、障害に関連する情報を取得及び／又を保持する。例えば、エージェント２００は、動作における不具合を検出した場合、不具合に関連する情報を収集し、収集した情報を保持する。
【０１３２】
そして、エージェント２００は、障害に関連する情報を含めて、監視エージェント２１０に動作状態を送信する。
【０１３３】
監視エージェント２１０は、動作状態に合わせて、受信した障害に関連する情報をモニタ８２０に出力する。
【０１３４】
情報処理システム１００の利用者などは、監視エージェント２１０が出力した障害に関連する情報を基に、障害の影響範囲を把握したり、復旧方法を選択したりする。
【０１３５】
障害に関連する情報は、限定されない。
【０１３６】
図９は、障害に関連する情報の一例を示す図である。
【０１３７】
図９に示されている障害に関連する情報は、識別子、障害の継続性、障害の種類、及び呼出し元を含む。ただし、図９に示す情報は、一例であり、第３の実施形態の限定を意図するものではない。
【０１３８】
図９における識別子は、第２の実施形態におけるサービスの識別子である。例えば、識別子は、障害に関連するサービスの特定に用いられる。
【０１３９】
このように、第３の実施形態にかかる情報処理システム１００は、第２の実施形態におけるサービスの識別子に関する構成及び動作を含んでよい。ただし、第３の実施形態にかかる情報処理システム１００は、サービスの識別子に関する構成を含まなくてもよい。
【０１４０】
障害の継続性は、エージェント２００が検出した障害が、一時的な障害であるか、恒久的な障害であるかを示す情報である。障害の継続性は、障害の影響時間などの判断に用いられる。
【０１４１】
障害の種別は、エージェント２００における障害を区別するための情報である。例えば、障害種別は、エラーコード、又は、エラーメッセージである。なお、障害の種別は、エージェント２００の動作における要求元又は要求先の情報（例えば、相手が停止中、相手から応答無、相手がエラーを報告）でもよい。障害の種別は、復旧方法などの選択に用いられる。
【０１４２】
呼出し元は、サービスに関連してエージェント２００を呼び出した構成（例えば、エージェント２００又はクライアント８１０）を示す情報であり。呼出し元は、エージェント２００が検出した障害の関連範囲の把握に用いられる。
【０１４３】
（効果の説明）
次に第３の実施形態にかかる情報処理システム１００の効果について説明する。
【０１４４】
第３の実施形態にかかる情報処理システム１００は、第１の実施形態の効果に加え、エージェント２００が検出した障害の詳細を把握するとの効果を得ることができる。
【０１４５】
その理由は、次のとおりである。
【０１４６】
第３の実施形態にかかるエージェント２００は、障害に関連する情報を保持する。そして、監視エージェント２１０は、サービスにそれぞれに関連するエージェント２００から障害に関連する情報を取得し、モニタ８２０に障害に関連する情報を送信する。
【０１４７】
その結果、情報処理システム１００の利用者などは、障害に関連した情報を確認できる。
【０１４８】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成及び詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【０１４９】
１００    情報処理システム
２００    エージェント
２１０    監視エージェント
６００    情報処理装置
６１０    ＣＰＵ
６２０    ＲＯＭ
６３０    ＲＡＭ
６４０    内部記憶装置
６５０    ＩＯＣ
６６０    入力機器
６７０    表示機器
６８０    ＮＩＣ
６９０    記録媒体
７００    ネットワーク
８００    クライアント装置
８１０    クライアント
８２０    モニタ
【図１】
2020038506.tif 000003
【図２】
2020038506.tif 000004
【図３】
2020038506.tif 000005
【図４】
2020038506.tif 000006
【図５】
2020038506.tif 000007
【図６】
2020038506.tif 000008
【図７】
2020038506.tif 000009
【図８】
2020038506.tif 000010
【図９】
2020038506.tif 000011