(57)【要約】【課題】情報処理要素間の通信量を削減する。【解決手段】  情報処理装置は、複数の情報処理要素、指示部、待ち合わせ部を備える。複数の情報処理要素は、制御対象装置を制御するために所定の実行順序で実行される複数の命令を含む命令列を、前記命令列の実行開始よりも前に保持し、前記命令列を並列に実行する。指示部は、前記複数の情報処理要素に対して、前記命令列の実行を開始する指示を送信する。待ち合わせ部は、前記複数の情報処理要素の内の１つの情報処理要素が、前記命令列中の所定の命令を実行する準備ができると、前記複数の情報処理要素の内の他の情報処理要素が、前記所定の命令を実行する準備ができるまで待ち合わせをする。指示部は、前記複数の情報処理要素が前記所定の命令を実行する準備ができると、前記複数の情報処理要素に対して、前記所定の命令以降の命令を実行する指示を送信する。【選択図】図２
2015215689.tif 000002
【特許請求の範囲】
【請求項１】
制御対象装置を制御するために所定の実行順序で実行される複数の命令を含む命令列を、前記命令列の実行開始よりも前に保持し、前記命令列を並列に実行する複数の情報処理要素と、
前記複数の情報処理要素に対して、前記命令列の実行を開始する指示を送信する指示部と、
前記複数の情報処理要素の内の１つの情報処理要素が、前記命令列中の所定の命令を実行する準備ができると、前記複数の情報処理要素の内の他の情報処理要素が、前記所定の命令を実行する準備ができるまで待ち合わせをする待ち合わせ部と、を備え、
前記指示部は、前記複数の情報処理要素が前記所定の命令を実行する準備ができると、前記複数の情報処理要素に対して、前記所定の命令以降の命令を実行する指示を送信する
ことを特徴とする情報処理装置。
【請求項２】
前記待ち合わせ部は、
前記複数の情報処理要素の内の１つの情報処理要素が、前記指示部が指示した前記命令列の実行に失敗し、失敗した処理をリトライしている場合に、前記複数の情報処理要素が前記所定の命令を実行する準備ができるまで待ち合わせをする時間を延長する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記待ち合わせ部は、
前記複数の情報処理要素の内の１つの情報処理要素から、前記指示部が指示した前記命令列の実行に失敗し、失敗した処理をリトライしても復旧できない場合に、前記１つの情報処理要素を、前記命令列を並列に実行する情報処理要素から外す
ことを特徴とする請求項１に記載の情報処理要素。
【請求項４】
前記待ち合わせ部は、
各情報処理要素から、各情報処理要素が前記所定の命令を実行する準備ができていることを示す信号を受信する、
ことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記待ち合わせ部は、
前記複数の情報処理要素が実行した処理の進捗情報を記憶したデータベースから取得した前記進捗情報に基づいて、各情報処理要素が前記所定の命令を実行する準備ができていることを検知する
ことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項６】
制御対象装置を制御するために所定の実行順序で実行される複数の命令を含む命令列を、前記命令列の実行開始よりも前に保持し、前記命令列を並列に実行する複数の情報処理要素を含む情報処理装置内で、
前記複数の情報処理要素に対して、前記命令列の実行を開始する指示を送信し、
前記複数の情報処理要素の内の１つの情報処理要素が、前記命令列中の所定の命令を実行する準備ができると、前記複数の情報処理要素の内の他の情報処理要素が、前記所定の命令を実行する準備ができるまで待ち合わせをし、
前記複数の情報処理要素が前記所定の命令を実行する準備ができると、前記複数の情報処理要素に対して、前記所定の命令以降の命令を実行する指示を送信する
ことを特徴とする命令実行制御方法。
【請求項７】
前記複数の情報処理要素の内の１つの情報処理要素が、前記命令列の実行に失敗し、失敗した処理をリトライしている場合に、前記複数の情報処理要素が前記所定の命令を実行する準備ができるまで待ち合わせをする時間を延長する
ことを特徴とする請求項６に記載の命令実行制御方法。
【請求項８】
前記複数の情報処理要素の内の１つの情報処理要素から、前記命令列の実行に失敗し、失敗した処理をリトライしても復旧できない場合に、前記１つの情報処理要素を、前記命令列を並列に実行する情報処理要素から外す
ことを特徴とする請求項６に記載の命令実行制御方法。
【請求項９】
各情報処理要素から、各情報処理要素が前記所定の命令を実行する準備ができていることを示す信号を受信する、
ことを特徴とする請求項６乃至８のいずれか１項に記載の命令実行制御方法。
【請求項１０】
前記複数の情報処理要素が実行した処理の進捗情報を記憶したデータベースから取得した前記進捗情報に基づいて、各情報処理要素が前記所定の命令を実行する準備ができていることを検知する
ことを特徴とする請求項６乃至８のいずれか１項に記載の命令実行制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理装置及び命令実行制御方法に関する。
【背景技術】
【０００２】
複数の情報処理要素を接続することで、大規模な情報処理装置を実現するビルディング・ブロックシステム（以下、ＢＢシステムと呼ぶことがある。）が知られている。ＢＢシステムの各情報処理要素は、プロセッサ、メモリを含み、それぞれ情報を処理することができる。また、各情報処理要素は、通信機能を有し、他の情報処理要素と連携して情報を処理できる。
【０００３】
各情報処理要素は、自身が管理する装置の制御や監視をするサービスプロセッサ（ＳＰ：Ｓｅｒｖｉｃｅ  Ｐｒｏｃｅｓｓｏｒ）を備える。ＳＰは、ＳＰを制御するＭａｓｔｅｒ−ＳＰと、Ｍａｓｔｅｒ−ＳＰからの指示で動作するＳｌａｖｅ−ＳＰに分類される。複数の情報処理要素中の何れか１つの情報処理要素が、Ｍａｓｔｅｒ−ＳＰとして動作する。
【０００４】
Ｍａｓｔｅｒ−ＳＰは、例えば、Ｓｌａｖｅ−ＳＰが管理する装置の電源投入を、ユーザが入力した指示により送信する。Ｍａｓｔｅｒ−ＳＰは、電源投入の処理シーケンスを保持しており、処理対象のＳｌａｖｅ−ＳＰが複数ある場合、処理命令を１つずつ各Ｓｌａｖｅ−ＳＰに通知する。処理命令を受信したＳｌａｖｅ−ＳＰは、受信した処理命令に従い装置の電源投入を開始する。
【０００５】
Ｓｌａｖｅ−ＳＰが実行する処理命令には、各Ｓｌａｖｅ−ＳＰが他のＳｌａｖｅ−ＳＰと待ち合わせをする待ち合わせ処理命令が含まれる。待ち合わせは、他のＳｌａｖｅ−ＳＰとタイミングを合わせて次の処理を実行する際に行われ、例えば、同期処理である。Ｍａｓｔｅｒ−ＳＰは、各処理命令が、待ち合わせ処理命令であるかの情報を管理している。Ｍａｓｔｅｒ−ＳＰは、他のＳｌａｖｅ−ＳＰと待ち合わせする処理命令をＳｌａｖｅ−ＳＰに送信した場合、各Ｓｌａｖｅ−ＳＰの応答が得られるまで待ち合わせをする。Ｍａｓｔｅｒ−ＳＰは、待ち合わせ処理命令を出した全Ｓｌａｖｅ−ＳＰから応答を得ると、次の処理命令を送信する。このように、Ｍａｓｔｅｒ−ＳＰは、各Ｓｌａｖｅ−ＳＰに実行させる処理命令を制御し、逐一、Ｓｌａｖｅ−ＳＰが実行する命令を送信する。
【０００６】
待ち合わせに関する技術として、ホストプロセッサからスレーブモジュールに、処理結果が全て揃うまで待機する指示を送信する技術が知られている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平８−８３１１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＢＢシステムにおいて、Ｍａｓｔｅｒ−ＳＰは、Ｓｌａｖｅ−ＳＰが管理する装置を制御する際、逐一、処理命令をＳｌａｖｅ−ＳＰに送信する。このため、ＢＢシステムに含まれるＳｌａｖｅ−ＳＰの数が多いほど、Ｍａｓｔｅｒ−ＳＰが送信するデータの送信量が増大するという問題がある。
【０００９】
１つの側面において、本発明の目的は、情報処理要素間の通信量を削減することである。
【課題を解決するための手段】
【００１０】
情報処理装置は、複数の情報処理要素、指示部、待ち合わせ部を備える。複数の情報処理要素は、制御対象装置を制御するために所定の実行順序で実行される複数の命令を含む命令列を、前記命令列の実行開始よりも前に保持し、前記命令列を並列に実行する。指示部は、前記複数の情報処理要素に対して、前記命令列の実行を開始する指示を送信する。待ち合わせ部は、前記複数の情報処理要素の内の１つの情報処理要素が、前記命令列中の所定の命令を実行する準備ができると、前記複数の情報処理要素の内の他の情報処理要素が、前記所定の命令を実行する準備ができるまで待ち合わせをする。指示部は、前記複数の情報処理要素が前記所定の命令を実行する準備ができると、前記複数の情報処理要素に対して、前記所定の命令以降の命令を実行する指示を送信する。
【発明の効果】
【００１１】
情報処理要素間の通信量を削減することができる。
【図面の簡単な説明】
【００１２】
【図１】ＢＢシステムの処理の問題点の例（その１）を説明する図である。
【図２】第１の実施形態に係るＢＢシステムの処理の例を説明する図である。
【図３】第１の実施形態に係るＢＢシステムの機能的構成の例を説明する図である。
【図４】ＢＢ装置のハードウェア構成の例を示す。
【図５】ＢＢシステムの処理の問題点の例（その２）を説明する図である。
【図６】第１の実施形態に係るＢＢシステムの待ち合わせ処理失敗の例（その１）である。
【図７】ＢＢシステムの処理の問題点の例（その３）を説明する図である。
【図８】第１の実施形態に係るＢＢシステムの待ち合わせ処理失敗の例（その２）である。
【図９】Ｓｌａｖｅ−ＳＰが管理する処理命令を実行する順番を示すシーケンス情報の例を説明する図である。
【図１０】第１の実施形態に係るＭａｓｔｅｒ−ＳＰの処理の例を説明するフローチャートである。
【図１１】第１の実施形態に係るＳｌａｖｅ−ＳＰの処理の例を説明するフローチャートである。
【図１２】第２の実施形態に係る待ち合わせ処理の例を説明する図（その１）である。
【図１３】第２の実施形態に係るＢＢシステムの機能的構成の例を説明する図である。
【図１４】Ｓｌａｖｅ−ＳＰの処理の進捗情報の例を説明する図である。
【図１５】第２の実施形態に係る待ち合わせ処理の例を説明する図（その２）である。
【図１６】第２の実施形態に係るＭａｓｔｅｒ−ＳＰの処理の例（その１）を説明するフローチャートである。
【図１７】第２の実施形態に係るＭａｓｔｅｒ−ＳＰの処理の例（その２）を説明するフローチャートである。
【図１８】第２の実施形態に係るＳｌａｖｅ−ＳＰの処理の例（その１）を説明するフローチャートである。
【図１９】第２の実施形態に係るＳｌａｖｅ−ＳＰの処理の例（その２）を説明するフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本実施形態に係るＢＢシステムについて図面を参照しながら詳細に説明する。
図１は、ＢＢシステムの処理の問題点の例（その１）を説明する図である。ＢＢシステム１００は、Ｍａｓｔｅｒ−ＳＰ１１０と、Ｓｌａｖｅ−ＳＰ１２０（Ｓｌａｖｅ−ＳＰ１２０ａとＳｌａｖｅ−ＳＰ１２０ｂ）を備える。Ｓｌａｖｅ−ＳＰ１２０は、Ｍａｓｔｅｒ−ＳＰ１１０の指示で、Ｓｌａｖｅ−ＳＰ１２０が管理する装置の制御を行う。ＢＢシステム１００において、Ｍａｓｔｅｒ−ＳＰ１１０は、Ｓｌａｖｅ−ＳＰ１２０ａとＳｌａｖｅ−ＳＰ１２０ｂを１つのグループとして管理する。Ｓｌａｖｅ−ＳＰ１２０ａとＳｌａｖｅ−ＳＰ１２０ｂとは、例えば、所定の時間にサービスを停止するため、各Ｓｌａｖｅ−ＳＰ１２０が管理する装置の電源を並列して切る。そのため、Ｍａｓｔｅｒ−ＳＰ１１０は、Ｓｌａｖｅ−ＳＰ１２０ａとＳｌａｖｅ−ＳＰ１２０ｂとに、同じ処理命令を送信する。
【００１４】
図１のＢＢシステム１００において、Ｍａｓｔｅｒ−ＳＰ１１０は、Ｓｌａｖｅ−ＳＰ１２０ａとＳｌａｖｅ−ＳＰ１２０ｂが管理するユニット１とユニット２の電源を投入する処理命令を、Ｓｌａｖｅ−ＳＰ１２０ａとＳｌａｖｅ−ＳＰ１２０ｂに送信する。各ユニットは、少なくとも電源を供える装置であればよく、例えば、システムボードなどで実現されることがある。Ｍａｓｔｅｒ−ＳＰ１１０は、ユニット１の電源を投入する処理１、ユニット２の電源を投入する処理２及びユニット１，２を初期化する処理３の処理順序の情報及び各処理の命令列を管理している。なお、処理１は、処理１−１〜処理１−３を含み、各処理に振り分けた番号は、ユニット番号と何番目の処理であるかを示す。一例として、処理１−２は、ユニット１の２番目の処理である。処理２は、処理２−１〜処理２〜３と同期２−１を含む。処理３は、処理３−１〜処理３−２と同期３−２を含む。以下では、Ｓｌａｖｅ−ＳＰ１２０ａとＳｌａｖｅ−ＳＰ１２０ｂとをまとめて、処理対象のＳｌａｖｅ−ＳＰ１２０と記すことがある。
【００１５】
Ｍａｓｔｅｒ−ＳＰ１１０は、例えば、電源投入の指示と、処理対象のＳｌａｖｅ−ＳＰ１２０の情報を入力装置から取得する。処理内容と処理対象のＳｌａｖｅ−ＳＰ１２０を指定する情報は、例えば、ユーザが入力する。Ｍａｓｔｅｒ−ＳＰ１１０は、処理対象のＳｌａｖｅ−ＳＰ１２０ａとＳｌａｖｅ−ＳＰ１２０ｂとを処理対象のグループとして、Ｍａｓｔｅｒ−ＳＰ１１０が使用するメモリに記憶する。Ｍａｓｔｅｒ−ＳＰ１１０は、処理対象のＳｌａｖｅ−ＳＰ１２０が管理する装置の電源を投入するため、自身が管理する電源投入に関する処理命令を処理１−１から順に処理対象のＳｌａｖｅ−ＳＰ１２０に送信する。Ｓｌａｖｅ−ＳＰ１２０は、受信した処理命令をＳｌａｖｅ−ＳＰ１２０が使用するメモリに格納し、格納した処理命令を実行する。Ｍａｓｔｅｒ−ＳＰ１１０は、電源投入の処理順序に従い、ユニット１の電源投入処理１（処理１−１〜処理１−３）を処理対象のＳｌａｖｅ−ＳＰ１２０に送信する。Ｍａｓｔｅｒ−ＳＰ１１０は、所定の時間毎に処理命令を順次送信してもよい。また、Ｍａｓｔｅｒ−ＳＰ１１０は、処理命令の送信先のＳｌａｖｅ−ＳＰ１２０から処理結果を受信してから次の処理命令を送信してもよい。
【００１６】
次に、Ｍａｓｔｅｒ−ＳＰ１１０は、電源投入の処理順序に従い、ユニット２の電源投入処理２−１を処理対象のＳｌａｖｅ−ＳＰ１２０に送信する。ここで、処理２−１の次の処理である処理２−２は、処理対象のグループ内の全Ｓｌａｖｅ−ＳＰ１２０で処理２−１が終了した後に実行可能な処理である。各Ｓｌａｖｅ−ＳＰ１２０の処理状況により、処理２−１の処理終了のタイミングにずれが発生する。そのため、Ｍａｓｔｅｒ−ＳＰ１１０は、処理対象の全Ｓｌａｖｅ−ＳＰ１２０が実行する処理２−２を同じタイミングで開始するために、各Ｓｌａｖｅ−ＳＰ１２０から次の処理を実行する準備ができたことを示す情報を受信するまで待ち合わせをする。Ｍａｓｔｅｒ−ＳＰ１１０は、どの処理で待ち合わせ処理を行うかの情報を、処理命令の処理順序内に予めＭａｓｔｅｒ−ＳＰ１１０が使用するメモリに保持している。Ｍａｓｔｅｒ−ＳＰ１１０は、処理対象のＳｌａｖｅ−ＳＰ１２０から、処理２−２を実行する準備ができたことを示す情報を受信するまで待ち合わせをし、タイミングの同期を取る同期処理２−１を実行する。なお、各Ｓｌａｖｅ−ＳＰ１２０は、処理２−２を実行する準備ができたことを示す情報をＭａｓｔｅｒ−ＳＰ１１０に送信すると、処理２−２を処理せず、処理を一時中断する。
【００１７】
Ｍａｓｔｅｒ−ＳＰ１１０は、処理対象のＳｌａｖｅ−ＳＰ１２０全てから処理２−２を実行する準備ができたことを示す情報を受信すると、同期処理２−１を終了する。Ｍａｓｔｅｒ−ＳＰ１１０は、処理２−２から順に処理命令を処理対象のＳｌａｖｅ−ＳＰ１２０に送信する。
【００１８】
このように、図１のＢＢシステムにおいて、Ｍａｓｔｅｒ−ＳＰ１１０は、逐一、処理命令をＳｌａｖｅ−ＳＰ１２０に送る。そのため、処理対象のＳｌａｖｅ−ＳＰが増えるほど、Ｍａｓｔｅｒ−ＳＰが送信する情報量は増大する。
【００１９】
図２は、第１の実施形態に係るＢＢシステムの処理の例を説明する図である。ＢＢシステム２００は、Ｍａｓｔｅｒ−ＳＰ２１０とＳｌａｖｅ−ＳＰ２２０（Ｓｌａｖｅ−ＳＰ２２０ａとＳｌａｖｅ−ＳＰ２２０ｂ）を含む。Ｓｌａｖｅ−ＳＰ２２０は、Ｍａｓｔｅｒ−ＳＰ２１０の指示で、Ｓｌａｖｅ−ＳＰ２２０が管理する装置の制御を行う。ＢＢシステム２００において、Ｍａｓｔｅｒ−ＳＰ２１０は、Ｓｌａｖｅ−ＳＰ２２０ａとＳｌａｖｅ−ＳＰ２２０ｂを１つのグループとして管理する。Ｓｌａｖｅ−ＳＰ２２０aとＳｌａｖｅ−ＳＰ２２０ｂとは、例えば、所定の時間にサービスを停止するため、各Ｓｌａｖｅ−ＳＰ２２０が管理する装置の電源を並列して切る。
【００２０】
図２のＭａｓｔｅｒ−ＳＰ２１０は、図１のＭａｓｔｅｒ−ＳＰ１１０のように、電源投入処理１、電源投入処理２、初期化処理３の命令列及び処理順序の情報の管理をしない。図２の各Ｓｌａｖｅ−ＳＰ２２０は、電源投入処理１、電源投入処理２、初期化処理３の命令列及び、処理順序の情報を各Ｓｌａｖｅ−ＳＰが使用するメモリに記憶し管理する。図２の電源投入処理１、電源投入処理２、初期化処理３の命令列及び、処理順序の情報などの情報は、図１のＭａｓｔｅｒ−ＳＰ１１０が使用しているものと同様のものである。第１の実施形態に係るＭａｓｔｅｒ−ＳＰ２１０は、処理命令をＳｌａｖｅ−ＳＰ２２０に送信せず、処理の開始指示を処理対象のＳｌａｖｅ−ＳＰ２２０に対して送信する。以下では、Ｓｌａｖｅ−ＳＰ２２０ａとＳｌａｖｅ−ＳＰ２２０ｂとをまとめて、処理対象のＳｌａｖｅ−ＳＰ２２０と記すことがある。
【００２１】
以下に、Ｍａｓｔｅｒ−ＳＰ２１０が、Ｓｌａｖｅ−ＳＰ２２０の管理する装置の電源投入をさせる処理の例を順に説明する。
【００２２】
（Ａ１）Ｍａｓｔｅｒ−ＳＰ２１０は、電源投入をするという処理内容と、電源投入処理を実行するＳＰが、Ｓｌａｖｅ−ＳＰ２２０（２２０ａ、２２０ｂ）であることを示す情報を入力装置から取得する。電源投入処理を実行するＳＰは、ユーザの入力により登録される。Ｍａｓｔｅｒ−ＳＰ２１０は、Ｓｌａｖｅ−ＳＰ２２０ａとＳｌａｖｅ−ＳＰ２２０ｂを処理対象のグループとしてＭａｓｔｅｒ−ＳＰ２１０が使用するメモリに記憶する。
【００２３】
（Ａ２）Ｍａｓｔｅｒ−ＳＰ２１０は、Ｓｌａｖｅ−ＳＰ２２０ａとＳｌａｖｅ−ＳＰ２２０ｂに対して電源投入の指示を送信する。
【００２４】
（Ａ３）電源投入の指示を受信したＳｌａｖｅ−ＳＰ２２０は、予めメモリに記憶している電源投入処理１（処理１−１〜処理１−３）の実行を開始する。Ｓｌａｖｅ−ＳＰ２２０は、予め、Ｓｌａｖｅ−ＳＰ２２０が使用するメモリ内に、電源投入処理１、電源投入処理２、初期化処理３の命令列及び、処理順序の情報などの情報を保持している。Ｓｌａｖｅ−ＳＰ２２０ａとＳｌａｖｅ−ＳＰ２２０ｂは、処理１（処理１−１〜処理１−３）の処理が完了すると、電源投入処理２（処理２−１〜処理２−３）の実行を開始する。ここで、処理２−１の次の処理である処理２−２は、処理対象のグループ内の全Ｓｌａｖｅ−ＳＰ２２０で処理２−１が終了した後に実行可能な処理である。各Ｓｌａｖｅ−ＳＰ２２０の処理状況により、処理２−１の処理終了のタイミングにずれが発生する。そのため、Ｍａｓｔｅｒ−ＳＰ２１０は、処理対象の全Ｓｌａｖｅ−ＳＰ２２０が実行する処理２−２を同じタイミングで開始するために、処理対象の全Ｓｌａｖｅ−ＳＰ２２０から次の処理を実行する準備ができたことを示す情報を受信するまで待ち合わせをする。Ｓｌａｖｅ−ＳＰ２２０aは、処理２−２を実行する準備ができたことを示す情報をＭａｓｔｅｒ−ＳＰ２１０に送信すると、処理２−２を処理せず、処理を一時中断する。
【００２５】
（Ａ４）Ｍａｓｔｅｒ−ＳＰ２１０は、処理２−２を実行する準備ができたことを示す情報をＳｌａｖｅ−ＳＰ２２０ａから受信すると、Ｓｌａｖｅ−ＳＰ２２０ｂから処理２−２を実行する準備ができたことを示す情報を受信するまで待機する。
【００２６】
（Ａ５）Ｓｌａｖｅ−ＳＰ２２０ｂは、処理２−１が終了すると、処理２−２を実行する準備ができたことを示す情報をＭａｓｔｅｒ−ＳＰ２１０に対して通知する。Ｓｌａｖｅ−ＳＰ２２０ｂは、電源投入処理を一時中断する。
【００２７】
（Ａ６）Ｍａｓｔｅｒ−ＳＰ２１０は、処理対象のＳｌａｖｅ−ＳＰ２２０ｂから処理２−２を実行する準備ができたことを示す情報を受信する。Ｍａｓｔｅｒ−ＳＰ２１０は、処理対象のＳｌａｖｅ−ＳＰ２２０全てから処理２−２を実行する準備ができたことを示す情報を受信したかを判定する。
【００２８】
（Ａ７）Ｍａｓｔｅｒ−ＳＰ２１０が処理対象のＳｌａｖｅ−ＳＰ２２０全てから次の処理を実行する準備ができたことを示す信号を受信する。Ｍａｓｔｅｒ−ＳＰ２１０は、Ｓｌａｖｅ−ＳＰ２２０ａとＳｌａｖｅ−ＳＰ２２０に、一時中断した電源投入処理の再開を指示する。電源投入の再開指示を受信したＳｌａｖｅ−ＳＰ２２０ａとＳｌａｖｅ−ＳＰ２２０ｂは、電源投入処理を再開する。Ｓｌａｖｅ−ＳＰ２２０ａとＳｌａｖｅ−ＳＰ２２０ｂは、電源投入の処理を、処理２−２から再開する。Ｓｌａｖｅ−ＳＰ２２０ａとＳｌａｖｅ−ＳＰ２２０ｂは、処理２の実行が終了すると、初期化処理３（処理３−１〜処理３−２）を実行する。
【００２９】
（Ａ８）図２の例において、Ｓｌａｖｅ−ＳＰ２２０ａとＳｌａｖｅ−ＳＰ２２０ｂは、処理３−２が終了すると、次の処理を実行する準備ができていることを示す情報をＭａｓｔｅｒ−ＳＰ２１０に送信する。Ｍａｓｔｅｒ−ＳＰ２１０と処理対象のＳｌａｖｅ−ＳＰ２２０は、（Ａ１）で取得した処理内容の処理全てが終了するまで、（Ａ４）〜（Ａ７）の処理を繰り返し行う。
【００３０】
第１の実施形態に係るＭａｓｔｅｒ−ＳＰ２１０は、Ｓｌａｖｅ−ＳＰ２２０が実行する処理命令を各Ｓｌａｖｅ−ＳＰ２２０に送信せず、処理開始の指示を送信する。指示を受信した各Ｓｌａｖｅ−ＳＰ２２０は、予めメモリに保持している命令列を実行する。Ｍａｓｔｅｒ−ＳＰ２１０が処理命令を各Ｓｌａｖｅ−ＳＰ２２０に送信しないことにより、第１の実施形態に係るＢＢシステムは、Ｍａｓｔｅｒ−ＳＰ２１０とＳｌａｖｅ−ＳＰ２２０間の通信量を削減できる。また、第１の実施形態に係るＭａｓｔｅｒ−ＳＰ２１０は、処理命令と処理順序を管理しない。そのため、Ｍａｓｔｅｒ−ＳＰ２１０の処理負荷は、低い。
【００３１】
図３は、第１の実施形態に係るＢＢシステムの機能的構成の例を説明する図である。ＢＢシステム２００は、ＢＢ装置２５０とＢＢ装置２６０を備える。ＢＢ装置２５０は、Ｍａｓｔｅｒ−ＳＰ２１０とＳｌａｖｅ−ＳＰ２２０ａと記憶部２４５ａを備える。ＢＢ装置２６０は、Ｓｌａｖｅ−ＳＰ２２０ｂと記憶部２４５ｂを備える。なお、ＢＢシステム２００は、Ｓｌａｖｅ−ＳＰ２２０ｂを搭載したＢＢ装置を複数備えてよい。記憶部２４５は、Ｓｌａｖｅ−ＳＰが実行する処理命令列及び処理命令を実行する順番を示すシーケンス情報を記憶している。
【００３２】
Ｍａｓｔｅｒ−ＳＰ２１０は、取得部２３１、指示部２３２、受信部２３３、待ち合わせ部２３４を備える。取得部２３１は、（Ａ１）の処理に示すように、処理対象のＳｌａｖｅ−ＳＰの情報及びユーザからの指示の処理内容を含む情報を取得する。指示部２３２は、（Ａ２）と（Ａ７）の処理に示すように、処理対象のＳｌａｖｅ−ＳＰ２２０に対して処理開始の指示及び処理再開の指示を送信する。受信部２３３は、（Ａ４）の処理に示すように、処理対象のＳｌａｖｅ−ＳＰ２２０からの次の処理を実行する準備ができたことを示す信号を受信する。待ち合わせ部２３４は、（Ａ４）の処理に示すように、処理対象のＳｌａｖｅ−ＳＰ２２０の１つから次の処理を実行する準備ができたことを示す信号を受信すると、他の処理対象のＳｌａｖｅ−ＳＰ２２０から次の処理を実行する準備ができたことを示す信号を待つ処理をする。また、待ち合わせ部２３４は、（Ａ６）の処理に示すように、処理対象の全Ｓｌａｖｅ−ＳＰ２２０から次の処理を実行する準備ができたことを示す信号を受信しているかの判定をする。
【００３３】
Ｓｌａｖｅ−ＳＰ２２０aは、受信部２４１a、処理部２４２a、異常判定部２４３a、通知部２４４aを備える。なお、Ｓｌａｖｅ−ＳＰ２２０ｂにおいて、Ｓｌａｖｅ−ＳＰ２２０ａと同様のものには、同じ番号を付与している。受信部２４１は、（Ａ３）の処理に示すように、Ｍａｓｔｅｒ−ＳＰ２１０からの処理の指示を受信する。処理部２４２は、（Ａ３）の処理に示すように、Ｍａｓｔｅｒ−ＳＰ２１０から指示のある処理命令を実行する。異常判定部２４３は、処理部２４２が実行する処理命令で異常が発生したかどうかを判定する。通知部２４４ａは、（Ａ３）と（Ａ５）の処理に示すように、次の処理を実行する準備ができたことを示す信号をＭａｓｔｅｒ−ＳＰ２１０に通知する。
【００３４】
図４は、ＢＢ装置のハードウェア構成の例を示す。ＢＢ装置２５０とＢＢ装置２６０は、プロセッサ１１、メモリ１２、バス１５、外部記憶装置１６、ネットワーク接続装置１９を備える。さらにオプションとして、ＢＢ装置２５０とＢＢ装置２６０は、入力装置１３、出力装置１４、媒体駆動装置１７を備えても良い。ＢＢ装置２５０とＢＢ装置２６０は、例えば、コンピュータなどで実現されることがある。
【００３５】
プロセッサ１１は、Central Processing Unit（ＣＰＵ）を含む任意の処理回路とすることができる。ＢＢ装置２５０において、プロセッサ１１は、Ｍａｓｔｅｒ−ＳＰ２１０及びＳｌａｖｅ−ＳＰ２２０ａとして動作する。ＢＢ装置２６０において、プロセッサ１１は、Ｓｌａｖｅ−ＳＰ２２０ｂとして動作する。プロセッサ１１は、Ｍａｓｔｅｒ−ＳＰ２１０内の取得部２３１、待ち合わせ部２３４として動作する。プロセッサ１１は、Ｓｌａｖｅ−ＳＰ２２０内の処理部２４２、異常判定部２４３として動作する。なお、プロセッサ１１は、例えば、外部記憶装置１６に記憶されたプログラムを実行することができる。メモリ１２は、記憶部２４５として動作し、処理命令、処理シーケンス情報、処理対象のＳｌａｖｅ−ＳＰ情報を保持する。さらに、メモリ１２は、プロセッサ１１の動作により得られたデータや、プロセッサ１１の処理に用いられるデータも、適宜、記憶する。ネットワーク接続装置１９は、他の装置との通信に使用され、受信部２３３、受信部２４１、指示部２３２、通知部２４４として動作する。
【００３６】
入力装置１３は、例えば、ボタン、キーボード、マウス等として実現され、出力装置１４は、ディスプレイなどとして実現される。バス１５は、プロセッサ１１、メモリ１２、入力装置１３、出力装置１４、外部記憶装置１６、媒体駆動装置１７、ネットワーク接続装置１９の間を相互にデータの受け渡しが行えるように接続する。外部記憶装置１６は、プログラムやデータなどを格納し、格納している情報を、適宜、プロセッサ１１などに提供する。媒体駆動装置１７は、メモリ１２や外部記憶装置１６のデータを可搬型記録媒体１８に出力することができ、また、可搬型記録媒体１８からプログラムやデータ等を読み出すことができる。ここで、可搬型記録媒体１８は、フロッピイディスク、Magnet-Optical（ＭＯ）ディスク、Compact Disc Recordable（ＣＤ−Ｒ）やDigital Versatile Disk Recordable（ＤＶＤ−Ｒ）を含む、持ち運びが可能な任意の記録媒体とすることができる。
【００３７】
図５は、ＢＢシステムの処理の問題点の例（その２）を説明する図である。図５のＢＢシステムは、図１と同じものに、同じ番号を付している。Ｍａｓｔｅｒ−ＳＰ１１０は、図１のように、逐一、処理命令処理１−１〜処理２−１をＳｌａｖｅ−１２０に送信する。図５のＢＢシステム１００において、Ｓｌａｖｅ−ＳＰ１２０ａは、処理２−１までの処理に異常がないため、処理２−１が終了したことを示す情報をＭａｓｔｅｒ−ＳＰ１１０に通知する。一方、Ｓｌａｖｅ−ＳＰ１２０ｂは、処理２−１までの処理に異常が発生したため、異常を示す情報をＭａｓｔｅｒ−ＳＰ１１０に通知する。
【００３８】
異常を示す情報を受信したＭａｓｔｅｒ−ＳＰ１１０は、発生した故障が、リトライにより復旧可能な処理であるかを判定する。リトライにより復旧可能な処理は、故障した箇所をＢＢ装置から取り除くことで、復旧可能な処理であってもよい。Ｓｌａｖｅ−ＳＰ１２０ｂで発生したエラーは、リトライすることで復旧可能な処理である。Ｍａｓｔｅｒ−ＳＰ１１０は、リトライ処理として、まず、電源投入処理が実行されたユニット１とユニット２の電源切断の処理命令をＳｌａｖｅ−ＳＰ１２０ａとＳｌａｖｅ−ＳＰ１２０ｂに送信する。Ｓｌａｖｅ−ＳＰ１２０ａとＳｌａｖｅ−ＳＰ１２０ｂは、受信した電源切断命令を実行する。次に、リトライ処理として、Ｍａｓｔｅｒ−ＳＰ１１０は、Ｓｌａｖｅ−ＳＰ１２０ａとＳｌａｖｅ−ＳＰ１２０ｂに、処理１−１〜処理２−１までの電源投入命令を送信する。Ｓｌａｖｅ−ＳＰ１２０ａとＳｌａｖｅ−ＳＰ１２０ｂは、受信した電源投入命令を実行する。
【００３９】
このように、図５のＢＢシステムにおいて、Ｍａｓｔｅｒ−ＳＰ１１０が、処理対象の複数のＳｌａｖｅ−ＳＰ１２０に電源切断や電源投入の命令列を送信するため、Ｓｌａｖｅ−ＳＰ１２０ａとＳｌａｖｅ−ＳＰ１２０ｂは、同じ命令を実行する。リトライ処理をする場合、Ｍａｓｔｅｒ−ＳＰ１１０は、Ｓｌａｖｅ−ＳＰ１２０ａとＳｌａｖｅ−ＳＰ１２０ｂにリトライ処理に関連する命令を送信する。すると、Ｓｌａｖｅ−ＳＰ１２０ａは、正常に電源投入処理が動作したにも関わらず、電源切断処理をし、更に、電源投入処理を行う無駄な処理をしている。
【００４０】
図６は、第１の実施形態に係るＢＢシステムの待ち合わせ処理失敗の例（その１）である。図６は、図２と同じものに同じ番号を付している。図６の処理の例は、（Ａ１）〜（Ａ４）までの処理が図２と同様であるため、省略する。図６のＢＢシステムの処理の例において、Ｓｌａｖｅ−ＳＰ２２０ｂは、（Ａ５）の処理において次の処理を実行する準備ができたことを示す信号ではなく異常を示す情報をＭａｓｔｅｒ−ＳＰ２１０に通知する。Ｓｌａｖｅ−ＳＰ２２０ｂの異常判定部２４３は、処理１−１〜処理２−１の実行中に例えば、ハードウェアの故障やプログラムの一時的なエラーなどが原因で異常を検知した場合、故障やエラーの内容を解析する。記憶部２４５は、予めリトライで復旧可能な故障やエラーの内容に関する情報が記憶している。異常判定部２４３は、発生した故障が、予め保持されているリトライで復旧可能な故障やエラーの内容に関する情報に該当する場合、処理をリトライすると判定する。
【００４１】
Ｓｌａｖｅ−ＳＰ２２０ｂは、処理をリトライする前に、実行済みの電源が投入された装置の処理を元に戻す。そのため、処理部２４２ｂは、電源投入処理２（処理２−１）が行われたユニット２の電源切断処理をする。次に、処理部２４２ｂは、電源投入処理１（処理１−１〜処理１−３）が行われたユニット１の電源切断処理をする。処理部２４２ｂは、電源投入処理である処理１及び処理２をリトライする。その後、ＢＢシステムは、（Ａ５）〜（Ａ８）と同じ処理を行う。
【００４２】
Ｍａｓｔｅｒ−ＳＰ１１０が逐一処理命令をＳｌａｖｅ−ＳＰ１２０に送信するシステムでは、Ｓｌａｖｅ−ＳＰ１２０ｂの処理をリトライさせる指示と共に、Ｓｌａｖｅ−ＳＰ１２０ｂにも同じ指示をする。すると、Ｓｌａｖｅ−ＳＰ１２０ａは、電源投入処理が正常に行われていたにも関わらず、電源を一度切断し、再度電源投入処理をする。Ｍａｓｔｅｒ−ＳＰ２１０が逐一処理命令をＳｌａｖｅ−ＳＰ２２０に送信しないことで、正常に処理されたＳｌａｖｅ−ＳＰ２２０ａの無駄な処理を避けることができる。
【００４３】
図７は、ＢＢシステムの処理の問題点の例（その３）を説明する図である。図７は、図１と同じものに、同じ番号を付している。Ｍａｓｔｅｒ−ＳＰ１１０は、図１のように、逐一、処理命令をＳｌａｖｅ−ＳＰ１２０に送り、処理１−１〜処理２−１までを送信する。図７のＢＢシステム１００において、Ｓｌａｖｅ−ＳＰ１２０ａは、処理２−１までの処理に異常がないため、処理２−１が終了したことを示す情報をＭａｓｔｅｒ−ＳＰ１１０に通知する。一方、Ｓｌａｖｅ−ＳＰ１２０ｂは、処理２−１までの処理に異常が発生したため、異常を示す情報をＭａｓｔｅｒ−ＳＰ１１０に通知する。
【００４４】
異常を示す情報を受信したＭａｓｔｅｒ−ＳＰ１１０は、発生した故障が、リトライにより復旧可能な処理であるかを判定する。図７のＢＢシステムの例は、Ｓｌａｖｅ−ＳＰ１２０ｂで検知された異常処理は、リトライすることで復旧不可の処理である。また、Ｍａｓｔｅｒ−ＳＰ１１０は、発生した異常を解析し、Ｓｌａｖｅ−ＳＰ１２０ｂを処理対象から外すかを判定する。Ｍａｓｔｅｒ−ＳＰ１１０は、Ｓｌａｖｅ−ＳＰ１２０を処理対象から外す場合の故障情報を予め保持している。図７のＢＢシステムの例において、Ｍａｓｔｅｒ−ＳＰ１１０は、Ｓｌａｖｅ−ＳＰ１２０ｂを処理対象から外すと判定する。
【００４５】
Ｍａｓｔｅｒ−ＳＰ１１０は、Ｓｌａｖｅ−ＳＰ１２０ｂを処理対象から外す処理として、まず、電源投入処理が実行されたユニット１とユニット２の電源切断処理命令をＳｌａｖｅ−ＳＰ１２０ａとＳｌａｖｅ−ＳＰ１２０ｂに送信する。Ｓｌａｖｅ−ＳＰ１２０ａとＳｌａｖｅ−ＳＰ１２０ｂは、受信した電源切断命令を実行する。次に、Ｍａｓｔｅｒ−ＳＰ１１０は、処理対象からＳｌａｖｅ−ＳＰ１２０ｂを外す。Ｍａｓｔｅｒ−ＳＰ１１０は、処理対象のＳｌａｖｅ−ＳＰ１２０であるＳｌａｖｅ−ＳＰ１２０ａに、処理１−１〜処理２−１までの電源投入命令を送信する。Ｓｌａｖｅ−ＳＰ１２０ａは、受信した電源投入命令を実行する。
【００４６】
このように、図７のＢＢシステム１００において、Ｍａｓｔｅｒ−ＳＰ１１０が、処理対象のＳｌａｖｅ−ＳＰ１２０に電源切断と電源投入の命令列を送信するため、Ｓｌａｖｅ−ＳＰ１２０ａとＳｌａｖｅ−ＳＰ１２０ｂは、同じ命令を実行する。そのため、異常が発生したＳｌａｖｅ−ＳＰ１２０ｂを処理対象から外す処理をするため、Ｍａｓｔｅｒ−ＳＰ１１０は、Ｓｌａｖｅ−ＳＰ１２０ａとＳｌａｖｅ−ＳＰ１２０ｂに電源切断命令を送信する。すると、Ｓｌａｖｅ−ＳＰ１２０ａは、正常に電源投入処理が動作したにも関わらず、電源切断処理をし、更に、電源投入処理を行う無駄な処理をしている。
【００４７】
図８は、第１の実施形態に係るＢＢシステムの待ち合わせ処理失敗の例（その２）である。図８は、図２と同じものに同じ番号を付している。図８の処理の例は、（Ａ１）〜（Ａ４）までの処理が図２と同様であるため、省略する。図８のＢＢシステムの処理の例において、Ｓｌａｖｅ−ＳＰ２２０ｂは、（Ａ５）の処理において次の処理を実行する準備ができたことを示す信号ではなく異常を示す情報を通知する。Ｓｌａｖｅ−ＳＰ２２０ｂの異常判定部２４３は、処理１−１〜処理２−１を実行する際に、ハードウェアの故障やプログラムの一時的なエラーなどが原因で異常を検知した場合に、故障やエラーの内容を解析する。Ｓｌａｖｅ−ＳＰ２２０ｂの記憶部２４５は、処理を継続できない場合に発生する障害情報を予め記憶している。異常判定部２４３は、発生した故障が、予め保持されている障害情報に該当する場合、Ｓｌａｖｅ−ＳＰ２２０ｂを処理対象からはずすと判定する。Ｓｌａｖｅ−ＳＰ２２０ｂの通知部２４４は、（Ａ５）の処理において、異常を示す情報と共に自身をＢＢシステムから外すことをＭａｓｔｅｒ−ＳＰ２１０に通知する。Ｓｌａｖｅ−ＳＰ２２０ｂは、ＢＢシステムから自身を外すため、ユニット１及びユニット２の電源切断処理をする。
【００４８】
Ｓｌａｖｅ−ＳＰ２２０ｂを処理対象から外す信号を受信したＭａｓｔｅｒ−ＳＰ２１０は、Ｓｌａｖｅ−ＳＰ２２０ｂを処理対象から外す。Ｍａｓｔｅｒ−ＳＰ２１０及びＳｌａｖｅ−ＳＰ２２０ａは、Ｓｌａｖｅ−ＳＰ２２０ｂを処理対象から外し、（Ａ６）〜（Ａ８）の処理を実行する。
【００４９】
Ｍａｓｔｅｒ−ＳＰ１１０が逐一処理命令をＳｌａｖｅ−ＳＰ１２０に送信するシステムでは、Ｓｌａｖｅ−ＳＰ１２０ｂの電源切断処理をさせる指示と共に、Ｓｌａｖｅ−ＳＰ１２０ａにも同じ指示をする。すると、Ｓｌａｖｅ−ＳＰ１２０ａは、電源投入処理が正常に行われていたにも関わらず、電源を一度切断し、再度電源投入処理をする。そのため、Ｍａｓｔｅｒ−ＳＰ２１０が逐一処理命令をＳｌａｖｅ−ＳＰ２２０に送信しないことで、正常に処理されたＳｌａｖｅ−ＳＰ２２０ａの無駄な処理を避けることができる。
【００５０】
図９は、Ｓｌａｖｅ−ＳＰが管理する処理命令を実行する順番を示すシーケンス情報の例を説明する図である。シーケンス情報は、記憶部２４５に記憶され、処理命令毎に、ラベル、アクション名、待ち合わせ有無情報、タイムアウト時間、ジャンプ先ラベル情報を保持している。ラベルは、処理命令毎に割り当てられる識別番号である。図９の例において、電源投入処理（Ｐｏｗｅｒｏｎ  Ｓｅｑｕｅｎｃｅ）の処理命令には処理順に、０〜Ｎ番の識別番号が割り当てられている。リトライ処理（Ｒｅｔｒｙ  Ｓｅｑｕｅｎｃｅ）の処理命令には処理順に、２００〜２０６番の識別番号が割り当てられている。電源切断処理（Ｐｏｗｅｒｏｆｆ  Ｓｅｑｕｅｎｃｅ）の処理命令には、１０００〜１００６番の識別番号が割り当てられている。
【００５１】
アクション名は、処理命令毎に付けられる識別名である。各識別名の例として、（Ｕｎｉｔ１＿Ｐｏｎ＿Ａｃｔｉｏｎ１＿１）は、前から（処理対象のユニット番号＿処理内容＿処理番号）のように付けられる。識別名中の処理対象のユニット番号であるＵｎｉｔ１、Ｕｎｉｔ２は、それぞれ図２のＳｌａｖｅ−ＳＰ２２０が管理するユニット１、ユニット２に該当する。Ｕｎｉｔ１２は、ユニット１及びユニット２の両方が処理対象であることを示す。識別番号１〜６の識別名中の処理内容Ｐｏｎは、電源投入処理を示す。識別番号７と８の識別名中の処理内容Ｒｓｔは、初期化処理を示す。識別番号２００〜２０５と識別番号１０００〜１００５の識別名中の処理内容Ｐｏｆｆは、電源切断処理を示す。識別名中の処理番号のＡｃｔｉｏｎ１＿１は、図２の処理１−１に対応し、Ａｃｔｉｏｎ１＿２は、図２のＳｌａｖｅ−ＳＰ２２０が使用する記憶部に保持する処理１−２に対応する。
【００５２】
待ち合わせ有無情報は、処理命令毎に付けられた、他の処理対象のＳｌａｖｅ−ＳＰ２２０と待ち合わせをするかどうかの情報である。図９の情報では、１が待ち合わせをする処理を示し、０が待ち合わせをしない処理であることを示す。Ｓｌａｖｅ−ＳＰ２２０の処理部は、待ち合わせをする処理である識別番号４と識別番号８の処理命令は、待ち合わせをする処理である。そのため、図２のようにＳｌａｖｅ−ＳＰ２２０は、識別番号４と識別番号８の処理命令が終了すると、Ｍａｓｔｅｒ−ＳＰ２１０に次の処理を実行する準備ができたことを示す信号を送信する。
【００５３】
Ｓｌａｖｅ−ＳＰ２２０の処理部２４２は、各処理命令の実行に費やされる時間がタイムアウト時間よりも大きい場合、その処理命令で異常が発生したことを検知する。ジャンプ先ラベル情報は、異常がリトライで復旧可能と判定された際の処理の移行先、異常でＳｌａｖｅ−ＳＰを処理対象から外すと判定された際の処理の移行先、及び、処理の移行先のラベル情報である。
【００５４】
例えば、ラベル１〜３のユニット１の電源投入処理中に異常が発生し、異常判定部が異常をリトライで復旧可能と判定した場合、処理部２４２は、処理をラベル２０３に移行する。処理部２４２は、ラベル２０３〜ラベル２０５の処理を実行し、ユニット１の電源切断処理を行う。処理部２４２は、ラベル２０６の処理を実行すると、処理をラベル４の処理に移行し、ユニット２の電源投入を開始する。
【００５５】
図１０は、第１の実施形態に係るＭａｓｔｅｒ−ＳＰの処理の例を説明するフローチャートである。取得部２３１は、処理内容及び処理対象のＳｌａｖｅ−ＳＰ２２０の情報を取得する（ステップＳ１０１）。指示部２３２は、処理対象のＳｌａｖｅ−ＳＰ２２０に、処理の開始指示をする（ステップＳ１０２）。受信部２３３は、Ｓｌａｖｅ−ＳＰ２２０に送信した命令開始指示に対する応答信号として、次の処理を実行する準備ができたことを示す情報を受信したかを判定する（ステップＳ１０３）。受信部２３３は、Ｓｌａｖｅ−ＳＰ２２０からの応答信号を受信するまで、Ｓ１０３の処理を繰り返す（ステップＳ１０３でＮＯ）。Ｓｌａｖｅ−ＳＰ２２０から応答信号を受信した場合（ステップＳ１０３でＹＥＳ）、受信部２３３は、Ｓｌａｖｅ−ＳＰ２２０から受信した応答信号に、Ｓｌａｖｅ−ＳＰ２２０がリトライ処理をしたことを示す情報を含むかを判定する（ステップＳ１０４）。Ｓｌａｖｅ−ＳＰ２２０から受信した応答信号がリトライ処理をしたことを示す情報を含む場合（ステップＳ１０４でＹＥＳ）、待ち合わせ部２３４は、待ち合わせのタイムアウト時間を延長し（ステップＳ１０５）、ステップＳ１０３以降の処理を繰り返す。受信した応答信号がリトライ処理情報を含まない場合（ステップＳ１０４でＮＯ）、受信部２３３は、受信した応答信号に、応答信号の送信元であるＳｌａｖｅ−ＳＰ２２０を処理対象から外すことを示す情報を含むか判定する（ステップＳ１０６）。受信した応答信号に、応答信号の送信元であるＳｌａｖｅ−ＳＰ２２０を処理対象から外す情報を含む場合（ステップＳ１０６でＹＥＳ）、待ち合わせ部２３４は、応答信号の送信元であるＳｌａｖｅ−ＳＰ２２０を処理対象から外す（ステップＳ１０７）。待ち合わせ部２３４は、処理対象のＳｌａｖｅ−ＳＰ２２０全てから応答信号を受信したかを判定する（ステップＳ１０８）。待ち合わせ部２３４は、処理対象のＳｌａｖｅ−ＳＰ２２０全てから応答信号を受信している場合（ステップＳ１０８でＹＥＳ）、Ｓｌａｖｅ−ＳＰ２２０内の処理が全て完了しているかを判定する（ステップＳ１０９）。Ｓｌａｖｅ−ＳＰ２２０内の処理が全て完了していない場合（ステップＳ１０９でＮＯ）、指示部２３２は、処理対象のＳｌａｖｅ−ＳＰ２２０の処理の再開を指示する（ステップＳ１１０）。待ち合わせ部２３４は、処理対象のＳｌａｖｅ−ＳＰ２２０全てから応答信号を受信していない場合（ステップＳ１０８でＮＯ）、待ち合わせ処理が所定の閾値の時間を超えたかを判定する（ステップＳ１１１）。
【００５６】
Ｍａｓｔｅｒ−ＳＰ２１０は、Ｓｌａｖｅ−ＳＰ２２０内の処理が全て完了（ステップＳ１０９でＹＥＳ）しており、待ち合わせ処理が所定の閾値の時間を超えていない場合（ステップＳ１１１でＮＯ）、処理を終了する。待ち合わせ処理が所定の閾値の時間を超えている場合（ステップＳ１１１でＹＥＳ）、Ｍａｓｔｅｒ−ＳＰ２１０は、ステップＳ１０３以降の処理を繰り返す。Ｍａｓｔｅｒ−ＳＰ２１０は、Ｓ１０９でＹＥＳの場合、処理を終了する。
【００５７】
図１１は、第１の実施形態に係るＳｌａｖｅ−ＳＰの処理の例を説明するフローチャートである。受信部２４１は、Ｍａｓｔｅｒ−ＳＰから処理の開始指示を受信したかを判定する（ステップＳ２０１）。受信部２４１は、Ｍａｓｔｅｒ−ＳＰから開始指示を受信していない場合（ステップＳ２０１でＮＯ）、ステップＳ２０１の処理を繰り返す。Ｍａｓｔｅｒ−ＳＰから処理の開始指示を受信すると（ステップＳ２０１でＹＥＳ）、処理部２４２は、受信した指示内容の処理を開始する（ステップＳ２０２）。処理部２４２は、次に実行する処理が他のＳｌａｖｅ−ＳＰ２２０と待ち合わせをする処理かを判定する（ステップＳ２０３）。処理部２４２は、次に実行する処理が他のＳｌａｖｅ−ＳＰ２２０と待ち合わせをする処理でない場合（ステップＳ２０３でＮＯ）、ステップＳ２０２を繰り返す。次に実行する処理が他のＳｌａｖｅ−ＳＰ２２０と待ち合わせをする処理である場合（ステップＳ２０３でＹＥＳ）、異常判定部２４３は、実行した処理に異常があり、リトライで復旧可能な処理であるかを判定する（ステップＳ２０４）。実行した処理に異常があり、リトライで復旧可能な処理である場合（ステップＳ２０４でＹＥＳ）、通知部２４４は、Ｍａｓｔｅｒ−ＳＰ２１０に処理のリトライを実行することを示す信号を通知する（ステップＳ２０５）。処理部２４２は、リトライを実行する（ステップＳ２０６）。処理部２４２は、リトライ処理が実行されると、ステップＳ２０４以降の処理を繰り返す。リトライで復旧可能な処理でない場合（ステップＳ２０４でＮＯ）、異常判定部２４３は、Ｓｌａｖｅ−ＳＰ２２０ｂをＢＢシステムから外すかを判定する（ステップＳ２０７）。Ｓｌａｖｅ−ＳＰ２２０ｂをＢＢシステムから外すと判定したである場合（ステップＳ２０７でＹＥＳ）、通知部２４４は、Ｍａｓｔｅｒ−ＳＰ２１０にＳｌａｖｅ−ＳＰ２２０ｂを処理対象から外すと判定したことを含む情報を通知する（ステップＳ２０８）。実行した処理に異常がない場合（ステップＳ２０７でＮＯ）、通知部２４４は、次の処理を実行する準備ができたことを示す信号をＭａｓｔｅｒ−ＳＰ２１０に通知する（ステップＳ２０９）。処理部２４２は、Ｍａｓｔｅｒ−ＳＰ２１０から指示を受けた処理を全て実行したかを判定する（ステップＳ２１０）。Ｍａｓｔｅｒ−ＳＰ２１０から指示を受けた処理を全て実行していない場合（ステップＳ２１０でＮＯ）、受信部２４１は、処理再開の指示をＭａｓｔｅｒ−ＳＰ２１０から受信したかを判定する（ステップＳ２１１）。処理再開の指示を受信していない場合（ステップＳ２１１でＮＯ）、受信部２４１は、Ｍａｓｔｅｒ−ＳＰ２１０から処理再開の指示があるまでＳ２１１を繰り返す。処理再開の指示をＭａｓｔｅｒ−ＳＰ２１０から受信した場合（ステップＳ２１１でＹＥＳ）、処理部２４２は、ステップＳ２０２以降の処理を実行する。Ｍａｓｔｅｒ−ＳＰ２１０から指示を受けた処理を全て実行された場合（ステップＳ２１０でＹＥＳ）、処理部２４２は、処理を終了する。
【００５８】
第１の実施形態に係るＭａｓｔｅｒ−ＳＰ２１０は、Ｓｌａｖｅ−ＳＰ２２０が実行する処理命令を各Ｓｌａｖｅ−ＳＰ２２０に送信せず、処理開始の指示を送信する。指示を受信した各Ｓｌａｖｅ−ＳＰ２２０は、予めメモリに保持している命令列を実行する。Ｍａｓｔｅｒ−ＳＰ２１０が処理命令を各Ｓｌａｖｅ−ＳＰ２２０に送信しないことにより、第１の実施形態に係るＢＢシステムは、Ｍａｓｔｅｒ−ＳＰ２１０とＳｌａｖｅ−ＳＰ２２０間の通信量を削減できる。また、第１の実施形態に係るＭａｓｔｅｒ−ＳＰ２１０は、処理命令と処理順序を管理しない。そのため、Ｍａｓｔｅｒ−ＳＰ２１０の処理負荷は、低い。
【００５９】
以下に、第２の実施形態に係るＢＢシステムについて図面を参照しながら詳細に説明する。
【００６０】
第２の実施形態に係るＭａｓｔｅｒ−ＳＰ３３０は、Ｓｌａｖｅ−ＳＰ３４０が実行する処理の進捗情報をデータベースの同期により取得する。第２の実施形態に係るＭａｓｔｅｒ−ＳＰ３３０は、（Ａ３）及び（Ａ５）の次の処理を実行する準備ができたことを示す信号の替わりとして、Ｓｌａｖｅ−ＳＰ３４０が実行する処理の進捗情報を取得する。Ｓｌａｖｅ−ＳＰ３４０は、待ち合わせをする処理が発生した場合に、進捗情報をＳｌａｖｅ−ＳＰ３４０が使用するメモリのデータベースに書き込み、Ｍａｓｔｅｒ−ＳＰ３３０とデータベースの同期を取る。Ｍａｓｔｅｒ−ＳＰ３３０は、処理対象のＳｌａｖｅ−ＳＰ３４０の進捗情報を含むデータベースに更新がある場合に、待ち合わせが発生したことを検知する。なお、ＢＢシステムの各処理は、図２、図６、図８と同様である。
【００６１】
図１２は、第２の実施形態に係る待ち合わせ処理の例を説明する図（その１）である。第２の実施形態に係るＢＢシステムは、（Ａ１）〜（Ａ８）の処理のうち、（Ａ３）〜（Ａ６）の代わりに以下の処理を行う。
【００６２】
（Ｂ１）指示部から電源投入の指示を受信したＳｌａｖｅ−ＳＰ３４０ａとＳｌａｖｅ−ＳＰ３４０ｂは、予めメモリに記憶している電源投入処理１（処理１−１〜処理１−３）の実行を開始する。Ｓｌａｖｅ−ＳＰ３４０ａとＳｌａｖｅ−ＳＰ３４０ｂは、処理１（処理１−１〜処理１−３）の処理が完了すると、電源投入処理２（処理２−１〜処理２−３）の実行を開始する。ここで、処理２−１の次の処理である処理２−２は、処理対象のグループ内の全Ｓｌａｖｅ−ＳＰ３４０で処理２−１が終了した後に実行可能な処理である。各Ｓｌａｖｅ−ＳＰ３４０の処理状況により、処理２−１の処理終了のタイミングにずれが発生する。そのため、Ｍａｓｔｅｒ−ＳＰ３３０は、処理対象の全Ｓｌａｖｅ−ＳＰ３４０が実行する処理２−２を同じタイミングで開始するために、処理対象の全Ｓｌａｖｅ−ＳＰ３４０から次の処理を実行する準備ができたことを示す情報を受信するまで待ち合わせをする。Ｓｌａｖｅ−ＳＰ３４０aは、処理２−１の実行が完了すると処理２−２を処理せず、処理を一時中断する。Ｓｌａｖｅ−ＳＰ３４０aは、Ｓｌａｖｅ−ＳＰ３４０aが使用するメモリのデータベースに処理２−１が完了したことを書き込む。
【００６３】
（Ｂ２）Ｓｌａｖｅ−ＳＰ３４０aは、データベースの更新を契機に、Ｍａｓｔｅｒ−ＳＰ３３０と他のＳｌａｖｅ−ＳＰ３４０とのデータベース同期を行う。
【００６４】
（Ｂ３）Ｍａｓｔｅｒ−ＳＰ３３０は、Ｍａｓｔｅｒ−ＳＰ３３０が使用するデータベースに、Ｓｌａｖｅ−ＳＰ３４０ａの進捗情報を書き込む。Ｍａｓｔｅｒ−ＳＰ３３０は、同期が発生したことを検知する。
【００６５】
（Ｂ４）Ｍａｓｔｅｒ−ＳＰ３３０は、処理対象のＳｌａｖｅ−ＳＰ３４０全てから処理２−１が完了し、次の処理の実行準備ができていることを示す進捗情報を取得するまで待機する。
【００６６】
（Ｂ５）Ｓｌａｖｅ−ＳＰ３４０ｂは、処理２−１が終了すると、処理を一時中断する。Ｓｌａｖｅ−ＳＰ３４０ｂは、Ｓｌａｖｅ−ＳＰ３４０ｂが使用するメモリのデータベースに処理２−１が完了したことを書き込む。
【００６７】
（Ｂ６）Ｓｌａｖｅ−ＳＰ３４０ｂは、データベースの更新を契機に、Ｍａｓｔｅｒ−ＳＰ３３０と他のＳｌａｖｅ−ＳＰ３４０との進捗情報を含むデータベースの同期を行う。
【００６８】
（Ｂ７）Ｍａｓｔｅｒ−ＳＰ３３０は、処理対象のＳｌａｖｅ−ＳＰ３４０全てから進捗情報を取得したことを検知する。
【００６９】
（Ｂ８）Ｍａｓｔｅｒ−ＳＰ３３０は、各Ｓｌａｖｅ−ＳＰ３４０が保持する進捗情報をクリアする。
【００７０】
第２の実施形態に係るＭａｓｔｅｒ−ＳＰ３３０は、データベースを用いて各Ｓｌａｖｅ−ＳＰ３４０の処理の進捗情報を取得し、待ち合わせ処理をすることができる。
【００７１】
図１３は、第２の実施形態に係るＢＢシステムの機能的構成の例を説明する図である。ＢＢシステムは、ＢＢ装置３１０とＢＢ装置３２０を備える。ＢＢ装置３１０は、Ｍａｓｔｅｒ−ＳＰ３３０とＳｌａｖｅ−ＳＰ３４０aを搭載し、記憶部３４５ａを備える。ＢＢ装置３２０は、Ｓｌａｖｅ−ＳＰ３４０ｂを搭載し、記憶部３４５ｂを備える。なお、ＢＢシステム３００は、Ｓｌａｖｅ−ＳＰ３４０ｂを搭載したＢＢ装置３２０を複数備えてよい。記憶部３４５ａは、図３の記憶部２４５ａから更に、Ｓｌａｖｅ−ＳＰ３４０ａ用のデータベースと、処理対象のＳｌａｖｅ−ＳＰ３４０の進捗情報を保持したデータベースを記憶する。また、記憶部３４５ｂは、Ｓｌａｖｅ−ＳＰ３４０ｂ用のデータベースと、処理対象のＳｌａｖｅ−ＳＰ３４０の進捗情報を保持したデータベースを記憶する。
【００７２】
Ｍａｓｔｅｒ−ＳＰ３３０は、取得部３３１、指示部３３２、判定部３３３、同期部３３４を備える。取得部３３１は、（Ａ１）の処理に示すように、入力装置から処理対象のＳｌａｖｅ−ＳＰ３４０情報及びユーザからの指示の処理内容を含む情報を取得する。指示部３３２は、（Ａ２）と（Ａ７）の処理に示すように、処理対象のＳｌａｖｅ−ＳＰ３４０に対して処理開始の指示及び処理再開の指示を送信する。同期部３３４は、処理対象のＳｌａｖｅ−ＳＰ３４０の処理の進捗情報を示すデータベースを、Ｍａｓｔｅｒ−ＳＰ３３０のデータベースに同期する。判定部３３３は、データベースに記憶された処理対象のＳｌａｖｅ−ＳＰ３４０の進捗情報から、例えば、処理２−１が終了し、次の処理を実行する準備ができていることを示す待ち合わせ状態にあるかの判定を行う。
【００７３】
Ｓｌａｖｅ−ＳＰ３４０aは、受信部３４１ａ、処理部３４２ａ、異常判定部３４３ａを備える。受信部３４１は、（Ｂ１）の処理に示すように、Ｍａｓｔｅｒ−ＳＰ３３０からの処理の指示を受信する。処理部３４２は、（Ｂ１）の処理に示すように、Ｍａｓｔｅｒ−ＳＰ３３０から指示のある処理命令を実行する。異常判定部３４３は、処理部３４２が実行する処理命令で異常が発生したかどうかを判定する。
【００７４】
Ｓｌａｖｅ−ＳＰ３４０ｂにおいて、Ｓｌａｖｅ−ＳＰ３４０aと同様のものには、同じ番号を付与している。Ｓｌａｖｅ−ＳＰ３４０ｂは、Ｓｌａｖｅ−ＳＰ３４０aから更に、同期部３５０を備える。同期部３５０は、処理対象のＳｌａｖｅ−ＳＰ３４０の処理の進捗情報を示すデータベースを、Ｍａｓｔｅｒ−ＳＰ３３０のデータベースにコピーする。また、同期部３５０は、他の処理対象のＳｌａｖｅ−ＳＰ３４０の進捗情報を示すデータベースを記憶部３４５ｂに同期する。なお、Ｓｌａｖｅ−ＳＰ３４０ｂの処理部３４２ｂは、処理の進捗情報を、記憶部３４５ｂに記憶させる。
【００７５】
図１４は、Ｓｌａｖｅ−ＳＰの処理の進捗情報の例を説明する図である。Ｓｌａｖｅ−ＳＰ３４０の処理部３４２は、処理の進捗情報を、記憶部３４５に記憶する。処理の進捗情報は、処理毎に割り当てられたラベル番号、処理の結果情報、タイムアウト時間のカテゴリを有する。ラベル番号は、図９に示したラベル番号と同一のものである。処理部３４２は、処理の結果として、正常に処理が終了した場合に０を格納する。処理部３４２は、処理の結果として、処理が正常に終了せず、処理をリトライで復旧可能と判定した場合に１を格納する。処理部３４２は、処理の結果として、処理が正常に終了せず、ＢＢシステムからＳｌａｖｅ−ＳＰ３４０を外すと判定した場合に２を格納する。タイムアウト時間は、異常発生時に、Ｍａｓｔｅｒ−ＳＰ３３０が延長する待ち合わせ時間である。
【００７６】
図１５は、第２の実施形態に係る待ち合わせ処理の例を説明する図（その２）である。待ち合わせ処理の図４００に示すＢＢシステムは、Ｓｌａｖｅ−ＳＰ３４０ｂで異常があり、リトライ処理を行う場合の例である。（Ｂ１）〜（Ｂ３）までの処理は、図１２と同様である。図４００において、Ｓｌａｖｅ−ＳＰ３４０ｂは、リトライ中であることを示す情報を、進捗情報として記憶部３４５に記憶する。Ｓｌａｖｅ−ＳＰ３４０ｂが、進捗情報をＭａｓｔｅｒ−ＳＰ３３０と同期すると、Ｍａｓｔｅｒ−ＳＰ３３０は、Ｓｌａｖｅ−ＳＰ３４０ｂがリトライ中であることを検知し、進捗情報に含まれるタイムアウト時間分待ち合わせ時間を延長する。その後、図４００に示すＢＢシステムは、図１２の（Ｂ４）〜（Ｂ８）と同様の処理をする。
【００７７】
待ち合わせ処理の図４１０に示すＢＢシステムは、Ｓｌａｖｅ−ＳＰ３４０ｂで異常があり、異常のあるＳｌａｖｅ−ＳＰ３４０ｂを処理対象から外す処理を行う場合の例である。図４１０におけるＢＢシステムは、（Ｂ１）〜（Ｂ３）までの処理を図１２と同様に行う。図４１０では、Ｓｌａｖｅ−ＳＰ３４０ｂは、自身を処理対象から外す情報を、進捗情報として記憶部３４５に書き込む。Ｓｌａｖｅ−ＳＰ３４０ｂのデータベースが、進捗情報をＭａｓｔｅｒ−ＳＰ３３０と同期すると、Ｍａｓｔｅｒ−ＳＰ３３０は、Ｓｌａｖｅ−ＳＰ３４０ｂを除いた処理対象のＳｌａｖｅ−ＳＰ３４０で待ち合わせが完了したかを判定する。その後、図４００に示すＢＢシステムは、図１２の（Ｂ４）〜（Ｂ８）と同様の処理をし、Ｓｌａｖｅ−ＳＰ３４０ｂを処理対象から外す。
【００７８】
図１６は、第２の実施形態に係るＭａｓｔｅｒ−ＳＰの処理の例（その１）を説明するフローチャートである。入力装置から処理内容及び処理対象のＳｌａｖｅ−ＳＰ３４０の情報を取得すると、指示部３３２は、処理対象のＳｌａｖｅ−ＳＰ３４０に、処理の開始指示をする（ステップＳ３０１）。同期部３３４は、処理対象のＳｌａｖｅ−ＳＰ３４０の記憶部３４５からデータベースの進捗情報の問い合わせをする（ステップＳ３０２）。判定部３３３は、処理対象のＳｌａｖｅ−ＳＰ３４０が使用する記憶部３４５に進捗情報が格納されているかを判定する（ステップＳ３０３）。処理対象のＳｌａｖｅ−ＳＰ３４０が使用する記憶部３４５に進捗情報が格納されていない場合（ステップＳ３０３でＮＯ）、判定部３３３は、ステップＳ３０２に処理を戻す。処理対象のＳｌａｖｅ−ＳＰ３４０が使用する記憶部３４５に進捗情報が格納されている場合（ステップＳ３０３でＹＥＳ）、同期部３３４は、処理対象のＳｌａｖｅ−ＳＰ３４０全てから処理完了を示す進捗情報を取得するまで待機する（ステップＳ３０４）。指示部３３２は、処理対象のＳｌａｖｅ−ＳＰ３４０に、待ち合わせ処理の次の処理の実行開始の指示を送信する（ステップＳ３０５）。
【００７９】
図１７は、第２の実施形態に係るＭａｓｔｅｒ−ＳＰの処理の例（その２）を説明するフローチャートである。図１７のフローチャートは、図１６のステップＳ３０４を詳細に説明する。同期部３３４は、待ち合わせを開始し、タイムアウトのカウントを開始する（ステップＳ４０１）。同期部３３４は、処理対象のＳｌａｖｅ−ＳＰ３４０から進捗情報を読み出す（ステップＳ４０２）。判定部３３３は、Ｓｌａｖｅ−ＳＰ３４０から読み出した進捗情報を解析し、処理が正常に行われたかを判定する（ステップＳ４０３）。Ｓｌａｖｅ−ＳＰ３４０から読み出した進捗情報から処理が正常に行われたと判定された場合（ステップＳ４０３でＹＥＳ）、判定部３３３は、全処理対象のＳｌａｖｅ−ＳＰ３４０から進捗情報を取得したかを判定する（ステップＳ４０４）。判定部３３３は、全処理対象のＳｌａｖｅ−ＳＰ３４０から進捗情報を取得し、同期処理が完了したかを判定する（ステップＳ４０５）。同期処理が完了していない場合（ステップＳ４０５でＮＯ）、判定部３３３は、待ち合わせの処理がタイムアウトかを判定する（ステップＳ４０６）。待ち合わせの処理がタイムアウトである場合（ステップＳ４０６でＹＥＳ）、Ｍａｓｔｅｒ−ＳＰ３３０は、処理を終了する。待ち合わせの処理がタイムアウトでない場合（ステップＳ４０６でＮＯ）、Ｍａｓｔｅｒ−ＳＰ３３０は、ステップＳ４０２から処理を繰り返す。処理が正常に行われていないと判定した場合（ステップＳ４０３でＮＯ）、判定部３３３は、ステップＳ４０２で読み出した進捗情報に、Ｓｌａｖｅ−ＳＰ３４０がリトライ処理をしていることを示す情報が含まれるかを判定する（ステップＳ４０７）。Ｓｌａｖｅ−ＳＰ３４０がリトライ処理をしている情報が含まれている場合（ステップＳ４０７でＹＥＳ）、同期部３３４は、待ち合わせ処理のタイムアウト時間を延長し、ステップＳ４０１に処理を渡す（ステップＳ４０８）。リトライ情報が含まれていない場合（ステップＳ４０７でＮＯ）、判定部３３３は、ステップＳ４０２で読み出した進捗情報に、処理対象からＳｌａｖｅ−ＳＰ３４０を外す処理をすることを示す情報が含まれるかを判定する（ステップＳ４０９）。処理対象からＳｌａｖｅ−ＳＰ３４０を外す処理をする情報が含まれる場合（ステップＳ４０９でＹＥＳ）、同期部は、処理対象から異常が発生したＳｌａｖｅ−ＳＰ３４０を外し、ステップＳ４０２から処理をやり直す（ステップＳ４１０）。処理対象からＳｌａｖｅ−ＳＰ３４０を外す処理をする情報が含まれていない場合（ステップＳ４０９でＮＯ）、同期部３３４は、ステップＳ４０２から処理をやり直す。
【００８０】
図１８は、第２の実施形態に係るＳｌａｖｅ−ＳＰの処理の例（その１）を説明するフローチャートである。処理部３４２は、命令列の処理順序を記憶したシーケンス情報に従い命令を記憶部から読み出す（ステップＳ５０１）。異常判定部３４３は、読み出した命令の処理結果を判定する（ステップＳ５０２）。異常判定部３４３は、読み出した命令の処理が正常に実行されたかを判定する（ステップＳ５０３）。読み出した命令の処理が正常に実行された場合（ステップＳ５０３でＹＥＳ）、処理部３４２は、実行した処理が、待ち合わせをする処理であり、進捗情報を同期するかを判定する（ステップＳ５０４）。実行した処理が、待ち合わせをする処理であり、進捗情報を同期すると判定した場合（ステップＳ５０４でＹＥＳ）、処理部３４２は、進捗情報を記憶部のデータベースに書き込む（ステップＳ５０５）。処理部３４２は、シーケンス情報に記載されているステップＳ５０１で読み出した命令の次の命令を選択する（ステップＳ５０６）。実行した処理が、待ち合わせをしない処理である場合（ステップＳ５０４でＮＯ）、処理部は、ステップＳ５０６を実行する。読み出した命令の処理が正常に実行されない場合（ステップＳ５０３でＮＯ）、処理部３４２は、異常時の処理を実行する（ステップＳ５０７）。ステップＳ５０６又はステップＳ５０７の処理が終了すると、処理部３４２は、全ての処理が完了したかを判定する（ステップＳ５０８）。全ての処理が完了していない場合（ステップＳ５０８でＮＯ）、処理部は、ステップＳ５０１から処理を繰り返す。全ての処理が完了している場合（ステップＳ５０８でＹＥＳ）、Ｓｌａｖｅ−ＳＰ３４０は、処理を終了する。
【００８１】
図１９は、第２の実施形態に係るＳｌａｖｅ−ＳＰの処理の例（その２）を説明するフローチャートである。図１８のＳ５０７を、図１９のフローチャートを用いて詳細に説明する。異常判定部３４３は、異常処理の種類を判別する（ステップＳ６０１）。異常判定部３４３は、処理をリトライすることで復旧可能かを判定する（ステップＳ６０２）。処理をリトライすることで復旧可能と判定した場合（ステップＳ６０２でＹＥＳ）、異常判定部３４３は、異常を検出した処理が待ち合わせをする処理であり、進捗情報を同期するかを判定する（ステップＳ６０３）。進捗情報を同期する処理である場合（ステップＳ６０３でＹＥＳ）、処理部３４２は、リトライ処理に関する情報を含む進捗情報を記憶部に記憶する（ステップＳ６０４）。進捗情報を同期する処理でない場合（ステップＳ６０３でＮＯ）及び、ステップＳ６０４が終了すると、処理部３４２は、シーケンス情報に基づいてリトライ処理用の処理を次に実行する処理として選択する（ステップＳ６０５）。処理をリトライすることで復旧不可能と判定した場合（ステップＳ６０２でＮＯ）、処理部３４２は、異常を検出した処理が待ち合わせをする処理であり、進捗情報を同期するかを判定する（ステップＳ６０６）。進捗情報を同期する処理である場合（ステップＳ６０６でＹＥＳ）、処理部３４２は、処理対象から異常が発生したＳｌａｖｅ−ＳＰ３４０を外す処理に関する情報を含む進捗情報を記憶部に記憶する（ステップＳ６０７）。進捗情報を同期する処理でない場合（ステップＳ６０６でＮＯ）及びステップＳ６０７が終了すると、処理部３４２は、シーケンス情報に基づいて異常が発生したＳｌａｖｅ−ＳＰ３４０を外す処理の次に実行する処理を選択する（ステップＳ６０８）。ステップＳ６０５及びステップＳ６０８が終了すると、Ｓｌａｖｅ−ＳＰは処理を終了する。
【符号の説明】
【００８２】
２１０  Ｍａｓｔｅｒ−ＳＰ
２２０  Ｓｌａｖｅ−ＳＰ
２３１  取得部
２３２  指示部
２３３  受信部
２３４  待ち合わせ部
２４１  受信部
２４２  処理部
２４３  異常判定部
２４４  通知部
２４５  記憶部
【図２】
2015215689.tif 000003
【図３】
2015215689.tif 000004
【図４】
2015215689.tif 000005
【図６】
2015215689.tif 000006
【図８】
2015215689.tif 000007
【図９】
2015215689.tif 000008
【図１０】
2015215689.tif 000009
【図１１】
2015215689.tif 000010
【図１３】
2015215689.tif 000011
【図１４】
2015215689.tif 000012
【図１６】
2015215689.tif 000013
【図１７】
2015215689.tif 000014
【図１８】
2015215689.tif 000015
【図１９】
2015215689.tif 000016
【図１】
2015215689.tif 000017
【図５】
2015215689.tif 000018
【図７】
2015215689.tif 000019
【図１２】
2015215689.tif 000020
【図１５】
2015215689.tif 000021