(57)【特許請求の範囲】
【請求項１】
複数の情報装置から構成される監視対象システムと、当該監視対象システムに発生する障害に対応する障害対応言語システムとを備えるディペンダブルシステムであって、
前記障害対応言語システムは、
前記監視対象システムを構成する各情報装置に実行させる命令を示す複数の命令文及びそれぞれの命令文が示す命令を実行させる情報装置を示す情報を含むスクリプトを読み出すスクリプト読み出し部と、
前記スクリプト読み出し部が読み出したスクリプトから、前記命令文を抽出する命令文抽出部と、
前記スクリプト読み出し部が読み出したスクリプトから、前記命令文抽出部が抽出した命令文が示す命令を実行させる情報装置を特定する装置特定部と、
前記装置特定部が特定した情報装置に前記命令文を送信する命令文送信部と、
前記命令文送信部が前記命令文を全ての情報装置に送信した後に、前記全ての情報装置に当該命令文が示す命令の実行を指示する実行指示を送信する実行指示送信部と
を備え、
前記監視対象システムを構成する各情報装置は、
前記障害対応言語システムから命令文を受信する命令文受信部と、
前記障害対応言語システムから実行指示を受信する実行指示受信部と、
前記実行指示受信部が前記実行指示を受信したときに、前記命令文受信部が受信した命令文が示す命令を実行する命令実行部と
を備えることを特徴とするディペンダブルシステム。
【請求項２】
前記障害対応言語システムは、
前記情報装置のそれぞれから、前記命令文送信部が送信した命令文が示す命令の実行の可否を示す実行可否応答を受信する応答受信部を備え、
前記障害対応言語システムの実行指示送信部は、前記応答受信部が前記監視対象システムを構成する全ての情報装置から前記実行可否応答を受信したときに前記実行指示を送信する
ことを特徴とする請求項１に記載のディペンダブルシステム。
【請求項３】
前記監視対象システムを構成する各情報装置は、
前記命令文受信部が受信した命令文に対して型検査を実行する型検査部と、
前記型検査部によってエラーが検出された場合に、前記障害対応言語システムに対して命令の実行ができないことを示す実行可否応答を送信する応答送信部と
を備えることを特徴とする請求項２に記載のディペンダブルシステム。
【請求項４】
前記監視対象システムを構成する各情報装置は、
前記監視対象システムから受信する実行指示による実行を許可しない機能を記憶する実行拒否機能記憶部を備え、
前記情報装置の型検査部は、前記実行拒否機能記憶部が記憶する機能を未定義機能とみなして前記型検査を実行する
ことを特徴とする請求項３に記載のディペンダブルシステム。
【請求項５】
前記情報装置は、前記情報装置の命令文受信部が受信した命令文が示す命令を実行する権限を示す情報を記憶する権限記憶部を備え、
前記情報装置の実行拒否機能記憶部は、前記機能に関連付けて、当該機能の実行を許可する権限を記憶し、
前記情報装置の型検査部は、前記実行拒否機能記憶部が記憶する機能のうち前記権限記憶部が記憶する権限に関連付けられていない機能を、未定義機能とみなして前記型検査を実行する
ことを特徴とする請求項４に記載のディペンダブルシステム。
【請求項６】
前記監視対象システムを構成する各情報装置は、
前記命令実行部が命令文が示す命令を実行したときに、当該命令の実行ログを前記障害対応言語システムに送信するログ送信部を備え、
前記障害対応言語システムは、
前記監視対象システムを構成する各情報装置から命令の実行ログを受信するログ受信部を備え、
前記障害対応言語システムの実行指示送信部は、ある命令文が示す命令を実行させる実行指示を前記監視対象システムに送信した場合、前記ログ受信部が前記全ての命令に対する実行ログを受信した後に、次の実行指示を前記監視対象システムに送信する
ことを特徴とする請求項１から請求項５の何れか１項に記載のディペンダブルシステム。
【請求項７】
前記障害対応言語システムの実行指示送信部は、前記ログ受信部が前記実行ログを受信した場合において、当該実行ログが命令実行エラーを示すとき、所定のエラー対応処理を実行する
ことを特徴とする請求項６に記載のディペンダブルシステム。
【請求項８】
複数の情報装置から構成される監視対象システムに発生する障害に対応する障害対応言語システムであって、
前記監視対象システムを構成する各情報装置に実行させる命令を示す複数の命令文及びそれぞれの命令文が示す命令を実行させる情報装置を示す情報を含むスクリプトを読み出すスクリプト読み出し部と、
前記スクリプト読み出し部が読み出したスクリプトから、前記命令文を抽出する命令文抽出部と、
前記スクリプト読み出し部が読み出したスクリプトから、前記命令文抽出部が抽出した命令文が示す命令を実行させる情報装置を特定する装置特定部と、
前記装置特定部が特定した情報装置に前記命令文を送信する命令文送信部と、
前記命令文送信部が前記命令文を全ての情報装置に送信した後に、前記全ての情報装置に当該命令文が示す命令の実行を指示する実行指示を送信する実行指示送信部と
を備えることを特徴とする障害対応言語システム。
【請求項９】
障害に対応する障害対応言語システムの監視対象となる監視対象システムを構成する情報装置であって、
前記障害対応言語システムから命令文を受信する命令文受信部と、
前記命令文受信部が受信した命令文に対して型検査を実行する型検査部と、
前記型検査部によってエラーが検出された場合に、前記障害対応言語システムに対して命令の実行ができないことを示す実行可否応答を送信する応答送信部と、
前記障害対応言語システムから実行指示を受信する実行指示受信部と、
前記実行指示受信部が前記実行指示を受信したときに、前記命令文受信部が受信した命令文が示す命令を実行する命令実行部と、
を備えることを特徴とする情報装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の情報装置から構成される監視対象システムと、当該監視対象システムに発生する障害に対応する障害対応言語システムとを備えるディペンダブルシステム並びにその障害対応言語システム及びその監視対象システムの情報装置に関する。
【背景技術】
【０００２】
従来、情報システムの開発においては、予め開発計画を立て、対象製品やシステムの仕様を特定し、設計、実装及びテストを十分に行ったうえで利用者に対する提供を開始している（非特許文献１を参照）。このとき、システムのディペンダビリティ（信頼性。非特許文献２〜４を参照）を保証するため、障害発生する可能性について予めリスク分析（非特許文献５を参照）を行い、システムに対して冗長化技術などのフォルトトレラント（耐障害）設計を適用することが行われている（非特許文献６を参照）。
【０００３】
近年の情報システムは、情報端末がネットワークを介してサーバ群に接続され、情報端末が、サーバ上のサービスを利用するように構成されている。特に、現代においては、これらの情報システム同士が直接的にまたは間接的に相互接続されてより大きな情報システム（オープンシステム）を形成している（非特許文献７を参照）。このようなオープンシステムでは、常に変化を伴い、設計、開発時に障害対策を立てることが難しくなっている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｎａｎｃｙ  Ｇ．Ｌｅｖｅｓｏｎ、“Ｓｙｓｔｅｍ  Ｓａｆｅｔｙ  ａｎｄ  Ｃｏｍｐｕｔｅｒｓ”、Ａｄｄｉｓｏｎ−Ｗｅｓｌｅｙ  Ｐｒｏｆｅｓｓｉｏｎａｌ、１９９５
【非特許文献２】Ｈ．Ｙａｓｕｕｒａ、“Ｏｎ  Ｄｅｐｅｎｄａｂｉｌｉｔｙ” 、ｉｎ  Ｄｅｐｅｎｄａｂｉｌｉｔｙ  Ｗｏｒｋｓｈｏｐ  Ｒｅｐｏｒｔ  （ｉｎ  Ｊａｐａｎｅｓｅ）、ＣＲＤＳ−ＦＹ２００６−ＷＲ−０７、ＣＲＤＳ、ＪＳＴ、Ｍａｒｃｈ  ２００７
【非特許文献３】Ｔ．Ｎａｎｙａ、“Ｃｏｎｃｅｐｔ  ａｎｄ  Ｉｓｓｕｅｓ  ｏｎ  Ｄｅｐｅｎｄａｂｉｌｉｔｙ”、ｉｎ  Ｄｅｐｅｎｄａｂｉｌｉｔｙ  Ｗｏｒｋｓｈｏｐ  Ｒｅｐｏｒｔ  （ｉｎ  Ｊａｐａｎｅｓｅ）、ＣＲＤＳ−ＦＹ２００６−ＷＲ−０７、ＣＲＤＳ、ＪＳＴ、Ｍａｒｃｈ  ２００７
【非特許文献４】Ｋ．Ｉｗａｎｏ、“Ｄｅｐｅｎｄａｂｉｌｉｔｙ  ｉｎ  Ｓｏｃｉａｌ  Ｓｅｒｖｉｃｅｓ”、ｉｎ  Ｄｅｐｅｎｄａｂｉｌｉｔｙ  Ｗｏｒｋｓｈｏｐ  Ｒｅｐｏｒｔ  （ｉｎ  Ｊａｐａｎｅｓｅ）、ＣＲＤＳ−ＦＹ２００６−ＷＲ−０７、ＣＲＤＳ、ＪＳＴ、Ｍａｒｃｈ  ２００７
【非特許文献５】Ｗ．Ｅ、Ｖｅｓｅｌｅｒｙ、Ｆ．Ｆ．Ｇｏｌｄ、“Ｆａｕｌｔ  Ｔｒｅｅ  Ｈａｎｄｂｏｏｋ”、Ｔｅｃｈｎｉｃａｌ  Ｒｅｐｏｒｔ  ＮＵＲＥＧ−０４９２、Ｕ．Ｓ  Ｎｕｃｌｅａｒ  Ｒｅｇｕｌａｔｏｒｙ  Ｃｏｍｉｓｓｉｏｎ，Ｗａｓｈｉｎｇｔｏｎ、Ｄ．Ｃ．、１９８１
【非特許文献６】Ｈａｓｓａｎ  Ｎｏｕｒａ  、Ｄｉｄｉｅｒ  Ｔｈｅｉｌｌｉｏｌ、Ｊｅａｎ−Ｃｈｒｉｓｔｏｐｈｅ  Ｐｏｎｓａｒｔ、Ａｂｂａｓ  Ｃｈａｍｓｅｄｄｉｎｅ  “Ｆａｕｌｔ−ｔｏｌｅｒａｎｔ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍｓ：Ｄｅｓｉｇｎ  ａｎｄ  Ｐｒａｃｔｉｃａｌ  Ａｐｐｌｉｃａｔｉｏｎｓ（Ａｄｖａｎｃｅｓ  ｉｎ  Ｉｎｄｕｓｔｒｉａｌ  Ｃｏｎｔｒｏｌ）”、Ｓｐｒｉｎｇｅｒ；  １ｓｔ  Ｅｄｉｔｉｏｎ．  Ｅｄｉｔｉｏｎ  ２００９
【非特許文献７】Ｍ．Ｔｏｋｏｒｏ、“Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｓｃｉｅｎｃｅ”、ＩＯＳ  Ｐｒｅｓｓ、Ｆｅｂｒｕａｒｙ  ２０１０．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したオープンシステムにおいては、システムの開発者や運用者がシステムの隅々まで理解することが困難であり、またシステムの境界や要求、機能が時間とともに変化する。そのため、非特許文献３〜６に示すような設計ではディペンダビリティを十分に保証できないという問題がある。
本発明の目的は、予め想定することが困難な障害の発生に対応することができるディペンダブルシステム並びに障害対応言語システム及び情報装置を提供することにある。
【課題を解決するための手段】
【０００６】
本発明は上記の課題を解決するためになされたものであり、複数の情報装置から構成される監視対象システムと、当該監視対象システムに発生する障害に対応する障害対応言語システムとを備えるディペンダブルシステムであって、前記障害対応言語システムは、前記監視対象システムを構成する各情報装置に実行させる命令を示す複数の命令文及びそれぞれの命令文が示す命令を実行させる情報装置を示す情報を含むスクリプトを読み出すスクリプト読み出し部と、前記スクリプト読み出し部が読み出したスクリプトから、前記命令文を抽出する命令文抽出部と、前記スクリプト読み出し部が読み出したスクリプトから、前記命令文抽出部が抽出した命令文が示す命令を実行させる情報装置を特定する装置特定部と、前記装置特定部が特定した情報装置に前記命令文を送信する命令文送信部と、前記命令文送信部が前記命令文を全ての情報装置に送信した後に、前記全ての情報装置に当該命令文が示す命令の実行を指示する実行指示を送信する実行指示送信部とを備え、前記監視対象システムを構成する各情報装置は、前記障害対応言語システムから命令文を受信する命令文受信部と、前記障害対応言語システムから実行指示を受信する実行指示受信部と、前記実行指示受信部が前記実行指示を受信したときに、前記命令文受信部が受信した命令文が示す命令を実行する命令実行部とを備えることを特徴とする。
【０００７】
また、本発明においては、前記障害対応言語システムは、前記情報装置のそれぞれから、前記命令文送信部が送信した命令文が示す命令の実行の可否を示す実行可否応答を受信する応答受信部を備え、前記障害対応言語システムの実行指示送信部は、前記応答受信部が前記監視対象システムを構成する全ての情報装置から前記実行可否応答を受信したときに前記実行指示を送信することが好ましい。
【０００８】
また、本発明においては、前記監視対象システムを構成する各情報装置は、前記命令文受信部が受信した命令文に対して型検査を実行する型検査部と、前記型検査部によってエラーが検出された場合に、前記障害対応言語システムに対して命令の実行ができないことを示す実行可否応答を送信する応答送信部とを備えることが好ましい。
【０００９】
また、本発明においては、前記監視対象システムを構成する各情報装置は、前記監視対象システムから受信する実行指示による実行を許可しない機能を記憶する実行拒否機能記憶部を備え、前記情報装置の型検査部は、前記実行拒否機能記憶部が記憶する機能を未定義機能とみなして前記型検査を実行することが好ましい。
【００１０】
また、本発明においては、前記情報装置は、前記情報装置の命令文受信部が受信した命令文が示す命令を実行する権限を示す情報を記憶する権限記憶部を備え、前記情報装置の実行拒否機能記憶部は、前記機能に関連付けて、当該機能の実行を許可する権限を記憶し、前記情報装置の型検査部は、前記実行拒否機能記憶部が記憶する機能のうち前記権限記憶部が記憶する権限に関連付けられていない機能を、未定義機能とみなして前記型検査を実行することが好ましい。
【００１１】
また、本発明においては、前記監視対象システムを構成する各情報装置は、前記命令実行部が命令文が示す命令を実行したときに、当該命令の実行ログを前記障害対応言語システムに送信するログ送信部を備え、前記障害対応言語システムは、前記監視対象システムを構成する各情報装置から命令の実行ログを受信するログ受信部を備え、前記障害対応言語システムの実行指示送信部は、ある命令文が示す命令を実行させる実行指示を前記監視対象システムに送信した場合、前記ログ受信部が前記全ての命令に対する実行ログを受信した後に、次の実行指示を前記監視対象システムに送信することが好ましい。
【００１２】
また、本発明においては、前記障害対応言語システムの実行指示送信部は、前記ログ受信部が前記実行ログを受信した場合において、当該実行ログが命令実行エラーを示すとき、所定のエラー対応処理を実行することが好ましい。
【００１３】
また、本発明は、複数の情報装置から構成される監視対象システムに発生する障害に対応する障害対応言語システムであって、前記監視対象システムを構成する各情報装置に実行させる命令を示す複数の命令文及びそれぞれの命令文が示す命令を実行させる情報装置を示す情報を含むスクリプトを読み出すスクリプト読み出し部と、前記スクリプト読み出し部が読み出したスクリプトから、前記命令文を抽出する命令文抽出部と、前記スクリプト読み出し部が読み出したスクリプトから、前記命令文抽出部が抽出した命令文が示す命令を実行させる情報装置を特定する装置特定部と、前記装置特定部が特定した情報装置に前記命令文を送信する命令文送信部と、前記命令文送信部が前記命令文を全ての情報装置に送信した後に、前記全ての情報装置に当該命令文が示す命令の実行を指示する実行指示を送信する実行指示送信部とを備えることを特徴とする。
【００１４】
また、本発明は、障害に対応する障害対応言語システムの監視対象となる監視対象システムを構成する情報装置であって、前記障害対応言語システムから命令文を受信する命令文受信部と、前記命令文受信部が受信した命令文に対して型検査を実行する型検査部と、前記型検査部によってエラーが検出された場合に、前記障害対応言語システムに対して命令の実行ができないことを示す実行可否応答を送信する応答送信部と、前記障害対応言語システムから実行指示を受信する実行指示受信部と、前記実行指示受信部が前記実行指示を受信したときに、前記命令文受信部が受信した命令文が示す命令を実行する命令実行部と、を備えることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、障害対応言語システムは、監視対象システムの障害に対応するための命令を記述したスクリプトに基づいて監視対象システムを構成する各情報装置に対して命令の実行指示を出力する。このように、設計変更を柔軟に行うことができ、外部から記述可能なスクリプトを用いて障害対応を行うことで、予め想定することが困難な障害の発生に対応することを実現する。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態によるディペンダブルシステムの構成図である。
【図２】ディペンダブルシステムの機能構成を示す概略ブロック図である。
【図３】スクリプト入力装置が入力を受け付けるスクリプトの例である。
【図４】本発明の一実施形態によるディペンダブルシステムの動作を示すシーケンス図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
図１は、本発明の一実施形態によるディペンダブルシステムの構成図である。
ディペンダブルシステムは、複数の情報装置１１０−１〜１１０−Ｎ（但し、Ｎは正の整数。以下、情報装置１１０−１〜１１０−Ｎを総称して情報装置１１０と表記する。）から構成される監視対象システム１００と、監視対象システム１００に発生する障害に対応する障害対応言語システム２００とを備える。監視対象システム１００はオープンシステムであり、監視対象システム１００を構成する情報装置１１０の例としては、ウェブサーバ、データベースサーバなどのサーバ装置や、監視対象システム１００のオペレータが所持するオペレータ端末などが含まれる。
【００１８】
障害対応言語システム２００は、スクリプト入力装置２１０、スクリプト解析装置２２０、ログ収集装置２３０を備える。
スクリプト入力装置２１０は、ディペンダブルシステムの管理者から、障害に対応するための命令群からなるスクリプトの入力を受け付ける。当該スクリプトには、情報装置１１０が障害であると判定する条件と、当該障害に対応するための命令群とが含まれる。なお、スクリプトを記述するためのスクリプト言語としては、動的な実行が可能であり、かつ実行前に型検査を行うことができる言語を用いる。
スクリプト解析装置２２０は、スクリプト入力装置２１０からスクリプトを読み出し、当該スクリプトに従って、監視対象システム１００に対して命令文及び命令の実行指示を送信する。
ログ収集装置２３０は、監視対象システム１００による命令の実行ログを受信し、記録する。
【００１９】
図２は、ディペンダブルシステムの機能構成を示す概略ブロック図である。
監視対象システム１００を構成する各情報装置１１０は、所定のアクタープログラムを実行することで、命令文受信部１１１、命令文記録部１１２（権限記憶部）、命令文記憶部１１３、実行拒否機能記憶部１１４、型検査部１１５、応答送信部１１６、実行指示受信部１１７、命令実行部１１８、ログ送信部１１９を備える。なお、アクタープログラムとは、上記スクリプトによる障害対応処理を実行可能にするためのプログラムである。
【００２０】
命令文受信部１１１は、スクリプト解析装置２２０から、上記スクリプト言語で記述された命令文を受信する。
命令文記録部１１２は、命令文受信部１１１が受信した命令文を命令文記憶部１１３に記録する。
命令文記憶部１１３は、スクリプト解析装置２２０から受信した命令文を記憶する。また、命令文記憶部１１３は、スクリプト解析装置２２０から受信した命令文が示す命令を実行する権限を示す権限情報を記憶する。
【００２１】
実行拒否機能記憶部１１４は、スクリプト解析装置２２０から受信する実行指示による実行を許可しない機能と、当該機能の実行を例外的に許可する権限とを関連付けて記憶する。
型検査部１１５は、実行拒否機能記憶部１１４が記憶する機能のうち、命令文受信部１１１が受信した権限に関連付けられていない機能を未定義機能とみなして、命令文記憶部１１３が記憶する命令文に対する型検査を行う。
応答送信部１１６は、命令文受信部１１１が受信した命令文が示す命令の実行の可否を示す実行可否応答を、スクリプト解析装置２２０に送信する。具体的には、応答送信部１１６は、型検査部１１５による型検査の結果、エラーが見つかった場合に、命令の実行ができないことを示す実行可否応答を送信し、エラーが見つからない場合に、命令の実行ができることを示す実行可否応答を送信する。
【００２２】
実行指示受信部１１７は、スクリプト解析装置２２０から、命令文が示す命令の実行指示を受信する。
命令実行部１１８は、実行指示受信部１１７が実行指示を受信した場合に、当該実行指示が示す命令文を命令文記憶部１１３から読み取り、当該命令文が示す命令を実行する。
ログ送信部１１９は、命令実行部１１８による命令の実行結果を示す実行ログを、ログ収集装置２３０に送信する。
【００２３】
スクリプト解析装置２２０は、スクリプト読み出し部２２１、命令文抽出部２２２、装置特定部２２３、命令文送信部２２４、応答受信部２２５、実行指示送信部２２６、ログ読み出し部２２７を備える。
【００２４】
スクリプト読み出し部２２１は、ディペンダブルシステムの管理者が入力したスクリプトをスクリプト入力装置２１０から読み出し、記憶する。また、スクリプト読み出し部２２１は、記憶したスクリプトの中から、情報装置１１０の状態に合致する条件に関連付けられたスクリプトを読み出す。
命令文抽出部２２２は、スクリプト読み出し部２２１が読み出したスクリプトから、情報装置１１０に実行させる命令文を抽出する。
装置特定部２２３は、スクリプト読み出し部２２１が読み出したスクリプトから、命令文抽出部２２２が抽出した命令文が示す命令を実行させる情報装置１１０を特定する。
命令文送信部２２４は、命令文抽出部２２２が抽出した命令文を、装置特定部２２３が特定した情報装置１１０に送信する。
【００２５】
応答受信部２２５は、情報装置１１０から実行可否応答を受信する。
実行指示送信部２２６は、スクリプト読み出し部２２１が読み出したスクリプトから、命令の実行順を規定したコントロール関数を抽出する。また、実行指示送信部２２６は、応答受信部２２５が、監視対象システム１００を構成する全ての情報装置１１０から実行可否応答を受信した場合に、監視対象システム１００を構成する全ての情報装置１１０に対して、抽出したコントロール関数が示す順に実行指示を送信する。また、実行指示送信部２２６は、一の実行指示を情報装置１１０に送信した場合、ログ読み出し部２２７が読み出した実行ログが、命令の実行対象となった全ての情報装置１１０において命令の実行が完了したことを示す場合に、コントロール関数が示す次の実行指示を情報装置１１０に送信する。
ログ読み出し部２２７は、ログ収集装置２３０から実行ログを読み出す。
【００２６】
ログ収集装置２３０は、ログ受信部２３１、ログ記録部２３２、ログ記憶部２３３を備える。
ログ受信部２３１は、情報装置１１０から実行ログを受信する。
ログ記録部２３２は、ログ受信部２３１が受信した実行ログをログ記憶部２３３に記録する
ログ記憶部２３３は、監視対象システム１００を構成する全ての情報装置１１０における命令の実行結果を示す実行ログを記憶する。
【００２７】
図３は、スクリプト入力装置２１０が入力を受け付けるスクリプトの例である。
スクリプト入力装置２１０が入力を受け付けるスクリプトには、図３に示すとおり、各情報装置１１０に実行させる命令を示す命令文を示すタスクセットオブジェクト、命令文を実行させる情報装置１１０を示すバインド配列、及び命令の実行順を示すコントロール関数が記述される。
すなわち、命令文送信部２２４は、バインド配列に関連付けられたタスクセットオブジェクトを、当該バインド配列の要素として記述された情報装置１１０のそれぞれに送信する。そして、実行指示送信部２２６は、コントロール関数に記述された命令を一つずつ（コントロール関数において配列などで複数の命令が一つに括られている場合は、当該括られた命令群を）、各情報装置１１０に送信する。
【００２８】
また、スクリプトには、図３に示すものの他に、命令文の実行権限を示す権限情報や、当該スクリプトを実行する条件となる情報装置１１０の状態を示す障害条件が記述されている。
ディペンダブルシステムの管理者は、これらの要素を適切に組み合わせてスクリプトを生成することで、ディペンダビリティ合意をポリシーやシナリオとしてスクリプトに組み込む。なお、当該スクリプトは、予めよくテストして検証を行っておくことで、ポリシーやシナリオの修正による不慮の影響を最小限化しておくことが好ましい。
【００２９】
次に、ディペンダブルシステムの動作について説明する。
図４は、本発明の一実施形態によるディペンダブルシステムの動作を示すシーケンス図である。ここでは、監視対象システム１００に何らかの障害が発生した場合に、障害の原因を特定するためのスクリプトを実行する際の動作について説明する。
スクリプト解析装置２２０は、情報装置１１０のネットワーク帯域幅や、応答時間、アクセスカウント、システム負荷、ユーザレポートその他の情報装置１１０の情報を収集する。そして、スクリプト読み出し部２２１は、当該収集した情報が満たす障害条件に関連付けられたスクリプトを読み出す（ステップＳ１）。
【００３０】
次に、命令文抽出部２２２は、スクリプト読み出し部２２１が読み出したスクリプトから、タスクセットオブジェクトを読み出す。これにより、命令文抽出部２２２は、情報装置１１０に実行させるべき命令が記述された命令文と、当該命令文を実行する権限を示す権限情報を抽出する（ステップＳ２）。次に、装置特定部２２３は、スクリプト読み出し部２２１が読み出したスクリプトから、命令文抽出部２２２が抽出した各タスクセットオブジェクトに関連付けられたバインド配列を読み出す。これにより、装置特定部２２３は、命令文の送信対象となる情報装置１１０を特定する（ステップＳ３）。そして、命令文送信部２２４は、命令文抽出部２２２が抽出した命令文と権限情報を、装置特定部２２３が特定した情報装置１１０に、送信する（ステップＳ４）。
【００３１】
スクリプト解析装置２２０が命令文を送信すると、各情報装置１１０の命令文受信部１１１は、スクリプト解析装置２２０から命令文及び権限情報を受信する（ステップＳ５）。次に、命令文記録部１１２は、受信した命令文及び権限情報を命令文記憶部１１３に記録する（ステップＳ６）。次に、型検査部１１５は、命令文記憶部１１３に記録された命令文に対して型検査を実行する（ステップＳ７）。
【００３２】
このとき、型検査部１１５は、実行拒否機能記憶部１１４から、命令文記憶部１１３が記憶する権限情報に関連付けられていない機能（Ｆｕｎｃｔｉｏｎ）を読み出し、当該機能を未定義機能とみなして型検査を実行する。つまり、型検査部１１５は、実行権限を有しない機能を未定義機能とみなすことで、権限情報が権限を有しない機能を実行する命令文に対して型検査エラーを発生させる。これにより、情報装置１１０は、受信した命令文を実行できない旨を予めスクリプト解析装置２２０に通知することで、セキュリティを担保することができる。
なお、スクリプトの中から、権限情報が権限を有しない機能に完全一致する文字列を検索することでも、権限情報が権限を有しない機能の有無を検索することができる。しかしこの場合、変数に格納されたオブジェクトを参照して実行する機能を検出できない可能性、または権限と無関係の同名の機能を誤って検出してしまう可能性があるため、上述した型検査による方式を採用することが好ましい。
【００３３】
次に、応答送信部１１６は、型検査部１１５による型検査によりエラーが検出されたか否かを判定する（ステップＳ８）。応答送信部１１６は、型検査部１１５によってエラーが検出されなかったと判定した場合（ステップＳ８：ＮＯ）、命令の実行ができることを示す実行可否応答を送信する（ステップＳ９）。他方、応答送信部１１６は、型検査部１１５によってエラーが検出されたと判定した場合（ステップＳ８：ＹＥＳ）、命令の実行ができないことを示す実行可否応答を送信する（ステップＳ１０）。
【００３４】
スクリプト解析装置２２０の命令文送信部２２４が、ステップＳ４で命令文及び権限情報を情報装置１１０に送信すると、応答受信部２２５は、情報装置１１０から実行可否応答の受信を待機する（ステップＳ１１）。応答受信部２２５は、実行可否応答を受信すると、ステップＳ４で命令文を送信した全ての情報装置１１０から実行可否応答を受信し終えたか否かを判定する（ステップＳ１２）。応答受信部２２５は、実行可否応答を受信していない情報装置１１０が存在する場合（ステップＳ１２：ＮＯ）、ステップＳ１１に戻り、実行可否応答の受信待機を継続する。
【００３５】
他方、応答受信部２２５は、全ての情報装置１１０から実行可否応答を受信した場合（ステップＳ１２：ＹＥＳ）、当該実行可否応答が全て命令の実行ができることを示すものであるか否かを判定する（ステップＳ１３）。実行可否応答の中に命令の実行ができないことを示すものが存在する場合（ステップＳ１３：ＮＯ）、スクリプト解析装置２２０は、所定の実行不可対応処理を実行する（ステップＳ１４）。実行不可対応処理の例としては、例えば、当該情報装置１１０に対して実行指示を送信しないようにする処理や、実行できない命令を特定して当該命令を実行しない命令文を生成する処理や、実行できないことを示す実行可否応答に対応する命令を予め定めておき、当該命令を情報装置１１０に送信する処理などが挙げられる。
【００３６】
ステップＳ１４において実行不可対応処理を実行した場合、または実行可否応答が全て、命令の実行ができることを示すものである場合（ステップＳ１３：ＹＥＳ）、実行指示送信部２２６は、スクリプト読み出し部２２１が読み出したスクリプトからコントロール関数を読み出し、当該コントロール関数の初めの命令または命令群を示す実行指示を、全ての情報装置１１０に送信する（ステップＳ１５）。
【００３７】
スクリプト解析装置２２０が実行指示を送信すると、情報装置１１０の実行指示受信部１１７は、当該実行指示を受信する（ステップＳ１６）。次に、命令実行部１１８は、受信した実行指示が示す命令文を命令文記憶部１１３から読み出し、当該命令文が示す命令を実行する（ステップＳ１７）。このとき、ログ送信部１１９は、当該命令の実行における情報装置１１０の挙動を示す実行ログを生成し、当該実行ログをログ収集装置２３０に送信する（ステップＳ１８）。このとき、ログ送信部１１９は、命令文のモニタリング、サンプリングによるリソースモニタリング、外部リソースとの境界面におけるイベントモニタリングを実行することで、命令文の実行状態を自動的に追跡して実行ログを生成する。
【００３８】
なお、情報装置１１０は受信に対する応答、及び実行結果を示す応答をスクリプト解析装置２２０に送信しない。これは、スクリプト解析装置２２０が各情報装置１１０から応答を受信することで処理が遅滞してしまうことを防ぐためである。なお、スクリプト解析装置２２０は、ログ収集装置２３０に記録された実行ログを監視することで、実行結果を確認することで、多数の情報装置１１０からの応答の受信を行わずに、全ての情報装置１１０の情報を確認することができる。
【００３９】
ログ収集装置２３０のログ受信部２３１は、情報装置１１０から実行ログが送信される度に、当該実行ログを受信する（ステップＳ１９）。そして、ログ記録部２３２は受信した実行ログをログ記憶部２３３に記録する（ステップＳ２０）。これにより、ログ記憶部２３３には、各情報装置１１０による命令の実行ログが蓄積される。そのため、ディペンダブルシステムは、ログ収集装置２３０に蓄積される実行ログをエビデンスとして残しておくことで、アカウンタビリティ（説明責任）を担保することができる。
【００４０】
スクリプト解析装置２２０の実行指示送信部２２６が、ステップＳ１５で実行指示を情報装置１１０に送信すると、ログ読み出し部２２７は、ログ収集装置２３０のログ記憶部２３３に蓄積された実行ログを監視する（ステップＳ２１）。ログ読み出し部２２７は、ログ収集装置２３０から読み出した実行ログを解析し、ステップＳ１５で実行指示を送信した全ての情報装置１１０が実行指示に従って命令を実行したか否かを判定する（ステップＳ２２）。ログ読み出し部２２７は、命令の実行を完了していない情報装置１１０が存在すると判定した場合（ステップＳ２２：ＮＯ）、ステップＳ２１に戻り、実行ログの監視を継続する。他方、ログ読み出し部２２７は、全ての情報装置１１０が命令の実行を完了したと判定した場合（ステップＳ２２：ＹＥＳ）、当該実行ログに命令実行エラーを示すものが含まれているか否かを判定する（ステップＳ２３）。
【００４１】
実行ログの中に命令実行エラーを示すものが含まれている場合（ステップＳ２３：ＹＥＳ）、スクリプト解析装置２２０は、所定のエラー対応処理を実行する（ステップＳ２４）。エラー対応処理の例としては、例えば、ロールバック処理を全ての情報装置１１０に送信して元の状態に戻し、ディペンダブルシステムの管理者にエラーの発生を通知する処理などが挙げられる。
【００４２】
ステップＳ２４においてエラー対応処理を実行した場合、または実行ログの中に命令実行エラーを示すものが含まれていない場合（ステップＳ２３：ＮＯ）、実行指示送信部２２６は、ステップＳ１５で読み出したコントロール関数に、次の命令または命令群が存在するか否か、すなわち最終行に到達したか否かを判定する（ステップＳ２５）。実行指示送信部２２６は、次の命令または命令群が存在すると判定した場合（ステップＳ２５：ＹＥＳ）、ステップＳ１５に戻り、当該次の命令または命令群を示す実行指示を情報装置１１０に送信する。他方、実行指示送信部２２６が、次の命令または命令群が存在しないと判定した場合（ステップＳ２５：ＮＯ）、スクリプト解析装置２２０は、処理を終了する。
【００４３】
以降、スクリプト解析装置２２０は、スクリプトの実行結果として、ログ収集装置２３０から実行ログを読み出し、当該実行ログに基づいて障害の原因を特定し、当該障害に対応するスクリプトを実行することができる。障害に対応するスクリプトの特定方法としては、例えば、以前に障害が発生したときの実行ログと当該障害に対して実行した対応処理を示すスクリプトとを関連付けて記憶しておき、今回のスクリプトの実行による実行ログとの類似度が最も高い実行ログに関連付けられたスクリプトが示す対応処理を実行する処理などが挙げられる。なお、障害に対する対応処理を示すスクリプトを実行する際の動作は、図４に示す障害の原因を特定するためのスクリプトを実行する際の動作と同様の動作となる。
【００４４】
ところで、監視対象システム１００の種類によっては、所定の命令を実行するために監視対象システム１００の管理者の承認を得る必要がある場合がある。このような場合には、予めスクリプトのコントロール関数に、承認が必要な命令の実行前に、監視対象システム１００の管理者のオペレータ端末に承認要求を送信する命令を記述しておくことで、対応することができる。この場合、管理者がオペレータ端末に対して承認する旨の入力をすると、当該情報が実行ログとしてログ収集装置２３０に記録されるため、スクリプト解析装置２２０は、当該実行ログに基づいて次の命令の実行可否を判定することができる。
【００４５】
また、操作員の手作業によらなければ処理を実行できない場合（例えば、情報装置１１０のケーブルの抜き差しを行う処理など）も同様に、予めスクリプトのコントロール関数に、監視対象システム１００の操作員のオペレータ端末に作業要求を送信する命令を記述しておくことで、対応することができる。この場合、操作員がオペレータ端末に対して作業結果を入力すると、当該作業結果が実行ログとしてログ収集装置２３０に記録されるため、スクリプト解析装置２２０は、当該実行ログに基づいて次の命令の実行可否を判定することができる。
【００４６】
このように、本実施形態による障害対応言語システム２００は、監視対象システム１００の障害に対応するための命令を記述したスクリプトに基づいて監視対象システム１００を構成する各情報装置１１０に対して命令の実行指示を出力する。そして、各情報装置１１０は当該実行指示に従って命令を実行する。このように、設計変更を柔軟に行うことができるスクリプトを用いて障害対応を行うことで、予め想定することが困難な障害の発生に対応することができる。
【００４７】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
例えば、本実施形態では、情報装置１１０の実行拒否機能記憶部１１４が、スクリプト解析装置２２０から受信する実行指示による実行を許可しない機能と、当該機能の実行を例外的に許可する権限とを関連付けて記憶する場合について説明したが、これに限られない。例えば、実行できる機能を権限毎に異ならせる必要が無い場合、実行拒否機能記憶部１１４は、スクリプト解析装置２２０から受信する実行指示による実行を許可しない機能のみを記憶するように構成されても良い。
【００４８】
また、本実施形態では、障害対応言語システム２００が、スクリプト入力装置２１０、スクリプト解析装置２２０、ログ収集装置２３０から構成される場合を説明したが、これに限られない。すなわち、１つまたは２つの装置にこれらの機能がまとめられていても良いし、４つ以上の装置に機能を分散していても良い。
【００４９】
また、本実施形態では、権限情報がスクリプトに記述されており、当該権限情報に基づいて情報装置１１０が型検査を行う場合について説明したが、これに限られない。例えば、情報装置１１０の命令文記憶部１１３に予め権限情報を記憶しておき、型検査部１１５が当該権限情報に基づいて型検査を行うようにしても良い。
【００５０】
上述の情報装置１１０、スクリプト入力装置２１０、スクリプト解析装置２２０、及びログ収集装置２３０は内部に、コンピュータシステムを有している。そして、上述した各処理部の動作は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【００５１】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００５２】
１００…監視対象システム  １１０…情報装置  １１１…命令文受信部  １１２…命令文記録部  １１３…命令文記憶部  １１４…実行拒否機能記憶部  １１５…型検査部  １１６…応答送信部  １１７…実行指示受信部  １１８…命令実行部  １１９…ログ送信部  ２００…障害対応言語システム  ２１０…スクリプト入力装置  ２２０…スクリプト解析装置  ２２１…スクリプト読み出し部  ２２２…命令文抽出部  ２２３…装置特定部  ２２４…命令文送信部  ２２５…応答受信部  ２２６…実行指示送信部  ２２７…ログ読み出し部  ２３０…ログ収集装置  ２３１…ログ受信部  ２３２…ログ記録部  ２３３…ログ記憶部
【図１】
0005822229.tif 000002
【図２】
0005822229.tif 000003
【図３】
0005822229.tif 000004
【図４】
0005822229.tif 000005