(57)【要約】【課題】複数の処理実行装置を安全に連携して動作させる。【解決手段】要求取得部１１１は、処理要求装置が処理実行装置に対して処理の実行を要求することを表わす処理要求データを取得する。条件判定部１４３は、状態記憶部１３２が記憶した処理実行装置の状態に基づいて、条件記憶部１４１が記憶した制約条件が満たされているかを判定する。制約条件が満たされている場合に、許可判定部１４４が、要求された処理の実行を許可すると判定し、要求通知部１２１が、処理要求データによって処理の実行を要求された処理実行装置に対して、処理要求データが表わす処理の実行を要求する。【選択図】図４
2010122867.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理要求装置が複数の処理実行装置に対して処理の実行を要求する連携システムを管理する管理装置において、
データを記憶する記憶装置と、データを処理する処理装置と、状態記憶部と、要求取得部と、条件記憶部と、条件判定部と、許可判定部と、要求通知部とを有し、
上記状態記憶部は、上記記憶装置を用いて、上記複数の処理実行装置の状態を記憶し、
上記要求取得部は、上記処理装置を用いて、上記複数の処理要求装置の少なくともいずれかが上記複数の処理実行装置の少なくともいずれかに対して処理の実行を要求することを表わす処理要求データを取得し、
上記条件記憶部は、上記記憶装置を用いて、上記処理要求データによって要求される処理の実行を許可する条件を記憶し、
上記条件判定部は、上記処理装置を用いて、上記状態記憶部が記憶した上記複数の処理実行装置の状態に基づいて、上記条件記憶部が記憶した条件が満たされているか否かを判定し、
上記許可判定部は、上記処理装置を用いて、上記条件記憶部が記憶した条件が満たされていると上記条件判定部が判定した場合に、上記要求取得部が取得した処理要求データによって要求された処理の実行を許可すると判定し、
上記要求通知部は、上記処理装置を用いて、上記要求取得部が取得した処理要求データによって要求された処理の実行を許可すると上記許可判定部が判定した場合に、上記要求取得部が取得した処理要求データによって処理の実行を要求された処理実行装置に対して、上記処理要求データが表わす処理の実行を要求することを特徴とする管理装置。
【請求項２】
上記管理装置は、更に、状態変更選択部と、状態変更要求部とを有し、
上記状態変更選択部は、上記処理装置を用いて、上記条件記憶部が記憶した条件が満たされていないと上記条件判定部が判定した場合に、上記複数の処理実行装置のなかから、状態を変更すれば上記条件記憶部が記憶した条件が満たされるようになる処理実行装置を選択し、
上記状態変更要求部は、上記処理装置を用いて、上記状態変更選択部が選択した処理実行装置に対して、状態の変更を要求することを特徴とする請求項１に記載の管理装置。
【請求項３】
上記管理装置は、更に、実行優先度記憶部を有し、
上記実行優先度記憶部は、上記記憶装置を用いて、上記複数の処理実行装置それぞれの優先度を記憶し、
上記状態変更選択部は、上記処理装置を用いて、上記条件記憶部が記憶した条件が満たされていないと上記条件判定部が判定した場合に、上記実行優先度記憶部が記憶した優先度に基づいて、上記複数の処理実行装置のうち、上記要求取得部が取得した処理要求データによって処理の実行を要求された処理実行装置よりも優先度が低い処理実行装置のなかから、状態を変更すれば上記条件記憶部が記憶した条件が満たされるようになる処理実行装置を選択することを特徴とする請求項２に記載の管理装置。
【請求項４】
上記管理装置は、更に、要求優先度記憶部を有し、
上記要求優先度記憶部は、上記記憶装置を用いて、上記複数の処理要求装置それぞれの優先度を記憶し、
上記状態変更選択部は、上記処理装置を用いて、上記条件記憶部が記憶した条件が満たされていないと上記条件判定部が判定した場合に、上記要求優先度記憶部が記憶した優先度に基づいて、上記複数の処理実行装置のうち、上記要求取得部が取得した処理要求データによって処理の実行を要求した処理要求装置よりも優先度が低い処理要求装置から要求された処理を実行している処理実行装置のなかから、状態を変更すれば上記条件記憶部が記憶した条件が満たされるようになる処理実行装置を選択することを特徴とする請求項２または請求項３に記載の管理装置。
【請求項５】
上記許可判定部は、上記処理装置を用いて、上記条件記憶部が記憶した条件が満たされていないと上記条件判定部が判定した場合に、上記条件記憶部が記憶した条件が満たされたと上記条件判定部が判定するまで待ってから、上記要求取得部が取得した処理要求データによって要求された処理の実行を許可すると判定することを特徴とする請求項１乃至請求項４のいずれかに記載の管理装置。
【請求項６】
上記許可判定部は、上記処理装置を用いて、所定の時間が経過しても、上記条件記憶部が記憶した条件が満たされたと上記条件判定部が判定しなかった場合に、上記要求取得部が取得した処理要求データによって要求された処理の実行を許可しないと判定することを特徴とする請求項５に記載の管理装置。
【請求項７】
上記管理装置は、更に、状態取得部を有し、
上記状態取得部は、上記処理装置を用いて、上記複数の処理実行装置の少なくともいずれかが通知した上記処理実行装置自身の状態を取得し、
上記状態記憶部は、上記記憶装置を用いて、上記状態取得部が取得した上記処理実行装置の状態を記憶することを特徴とする請求項１乃至請求項６のいずれかに記載の管理装置。
【請求項８】
上記管理装置は、更に、状態通知要求部を有し、
上記状態通知要求部は、上記処理装置を用いて、上記複数の処理実行装置の少なくともいずれかに対して、状態の通知を要求し、
上記状態取得部は、上記処理装置を用いて、上記状態通知要求部が状態の通知を要求した処理実行装置が通知した上記処理実行装置自身の状態を取得することを特徴とする請求項７に記載の管理装置。
【請求項９】
上記管理装置は、更に、取得状態選択部を有し、
上記取得状態選択部は、上記処理装置を用いて、上記条件記憶部が記憶した条件に基づいて、上記複数の処理実行装置の状態を示す項目のなかから、上記条件が満たされているか否かを判定するために必要な項目を選択し、
上記状態通知要求部は、上記処理装置を用いて、上記取得状態選択部が選択した項目についての状態の通知を要求することを特徴とする請求項８に記載の管理装置。
【請求項１０】
データを記憶する記憶装置とデータを処理する処理装置とを有するコンピュータが実行することにより、上記コンピュータが請求項１乃至請求項９のいずれかに記載の管理装置として動作することを特徴とするコンピュータプログラム。
【請求項１１】
複数の処理要求装置と、請求項１乃至請求項９のいずれかに記載の管理装置と、複数の処理実行装置とを有し、
上記複数の処理要求装置は、それぞれ、上記複数の処理実行装置の少なくともいずれかに対して処理の実行を要求することを表わす処理要求データを、上記管理装置に対して通知し、
上記複数の処理実行装置は、それぞれ、上記管理装置からの要求に基づいて、処理を実行することを特徴とする連携システム。
【請求項１２】
データを記憶する記憶装置とデータを処理する処理装置とを有する管理装置が、複数の処理要求装置が複数の処理実行装置に対して処理の実行を要求する連携システムを管理する管理方法において、
上記記憶装置が、上記複数の処理実行装置の状態を記憶し、
上記処理装置が、上記複数の処理要求装置の少なくともいずれかが上記複数の処理実行装置の少なくともいずれかに対して処理の実行を要求することを表わす処理要求データを取得し、
上記記憶装置が、上記処理要求データによって要求される処理の実行を許可する条件を記憶し、
上記処理装置が、上記記憶装置が記憶した上記複数の処理実行装置の状態に基づいて、上記記憶装置が記憶した条件が満たされているか否かを判定し、
上記処理装置が、上記記憶装置が記憶した条件が満たされていると判定した場合に、取得した処理要求データによって要求された処理の実行を許可すると判定し、
上記処理装置が、取得した処理要求データによって要求された処理の実行を許可すると判定した場合に、取得した処理要求データによって処理の実行を要求された処理実行装置に対して、上記処理要求データが表わす処理の実行を要求することを特徴とする管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の処理要求装置が複数の処理実行装置に対して処理の実行を要求する連携システムを管理する管理装置に関する。
【背景技術】
【０００２】
ビルや工場など、多数の機器（処理実行装置）が存在する場合において、以前は、それぞれの機器が独立して動作していた。
近年、機器のネットワーク化が進み、複数の機器が連携して動作することができるようになってきている。
【特許文献１】特開２００５−１３０４２３号公報
【特許文献２】特開２００６−１３５４７４号公報
【特許文献３】特開２００６−３３３１３号公報
【特許文献４】特開２００４−２４８０４３号公報
【特許文献５】特開２００４−３４１９９９号公報
【特許文献６】特開２００２−３５２１０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
機器の制御が自動化され、人手を介さずに行われる場合、多数の機器に対する多数の制御が同時に行われる場合がある。そのような場合に、例えば、相反する制御が競合するなどして、機器が想定外の動作をするなど、安全性が損なわれる可能性がある。
この発明は、例えば、上記のような課題を解決するためになされたものであり、複数の機器が安全に連携して動作することができるようにすることを目的とする。
【課題を解決するための手段】
【０００４】
この発明にかかる管理装置は、
複数の処理要求装置が複数の処理実行装置に対して処理の実行を要求する連携システムを管理する管理装置において、
データを記憶する記憶装置と、データを処理する処理装置と、状態記憶部と、要求取得部と、条件記憶部と、条件判定部と、許可判定部と、要求通知部とを有し、
上記状態記憶部は、上記記憶装置を用いて、上記複数の処理実行装置の状態を記憶し、
上記要求取得部は、上記処理装置を用いて、上記複数の処理要求装置の少なくともいずれかが上記複数の処理実行装置の少なくともいずれかに対して処理の実行を要求することを表わす処理要求データを取得し、
上記条件記憶部は、上記記憶装置を用いて、上記処理要求データによって要求される処理の実行を許可する条件を記憶し、
上記条件判定部は、上記処理装置を用いて、上記状態記憶部が記憶した上記複数の処理実行装置の状態に基づいて、上記条件記憶部が記憶した条件が満たされているか否かを判定し、
上記許可判定部は、上記処理装置を用いて、上記条件記憶部が記憶した条件が満たされていると上記条件判定部が判定した場合に、上記要求取得部が取得した処理要求データによって要求された処理の実行を許可すると判定し、
上記要求通知部は、上記処理装置を用いて、上記要求取得部が取得した処理要求データによって要求された処理の実行を許可すると上記許可判定部が判定した場合に、上記要求取得部が取得した処理要求データによって処理の実行を要求された処理実行装置に対して、上記処理要求データが表わす処理の実行を要求することを特徴とする。
【発明の効果】
【０００５】
この発明にかかる管理装置によれば、例えば、条件記憶部が記憶した条件が満たされた場合に、許可判定部が処理の実行を許可し、要求通知部が処理実行装置に対して処理の実行を要求するので、複数の処理実行装置が常に制約条件を満たした状態で処理を実行し、複数の処理実行装置が安全に連携して動作することができる。
【発明を実施するための最良の形態】
【０００６】
実施の形態１．
実施の形態１について、図１〜図７を用いて説明する。
【０００７】
図１は、この実施の形態における連携システム８００の全体構成の一例を示すシステム構成図である。
連携システム８００は、例えば、ビル管理システムやＦＡ（Ｆａｃｔｏｒｙ  Ａｕｔｏｍａｔｉｏｎ）システムなどのように、多様な機器がネットワークなどを介して接続し、互いに接続した複数の異なる機器が連携して動作するシステムである。
連携システム８００は、複数の処理実行装置３０１〜３０３、複数の処理要求装置２０１〜２０３、管理装置１００を有する。
処理実行装置３０１〜３０３は、連携システム８００において実際に処理を実行する機器であり、例えば、エレベータ、自動ドア、照明器具、空調装置、ベルトコンベア、工業用ロボットなどである。
処理要求装置２０１〜２０３は、処理実行装置３０１〜３０３に対して処理の実行を要求する装置である。処理要求装置２０１〜２０３は、必ずしも独立した装置である必要はなく、例えば、一または複数のコンピュータ上で動作するアプリケーションプログラムにより実現されるものであってもよい。また、一部または全部の処理実行装置が、処理要求装置としての機能も備え、他の処理実行装置に対して処理の実行を要求する構成であってもよい。
管理装置１００は、処理要求装置２０１〜２０３からの要求に基づいて、処理実行装置３０１〜３０３の動作を管理する装置である。
【０００８】
連携システム８００の動作の概要は、以下のとおりである。
処理要求装置２０１〜２０３は、処理実行装置３０１〜３０３に対して処理の実行を要求することを表わす処理要求データを出力する。
管理装置１００は、処理要求装置２０１〜２０３が出力した処理要求データを取得し、要求された処理の実行を許可するか否かを判定する。例えば、複数の処理実行装置３０１〜３０３が同時に動作することにより電流容量をオーバーしてしまう場合や、安全性を確保するためある処理実行装置が動作中は、別の処理実行装置を動作させることができない場合に、管理装置１００は、処理の実行を許可しないと判定する。
管理装置１００は、処理の実行を許可すると判定した場合、処理の実行を要求された処理実行装置３０１〜３０３に対して、処理の実行を要求する。
処理実行装置３０１〜３０３は、管理装置１００からの要求に基づいて、要求された処理を実行する。
【０００９】
なお、連携システム８００は、管理装置１００と各処理実行装置３０１〜３０３との間に実行制御装置が介在し、実行制御装置が、管理装置１００からの要求を受け付け、受け付けた要求に基づいて各処理実行装置３０１〜３０３を制御し、制御した結果を管理装置１００に対して応答する構成であってもよい。その場合、実行制御装置は、必ずしも独立した装置である必要はなく、例えば、一または複数のコンピュータ上で動作するエージェントプログラムにより実現されるものであってもよい。
【００１０】
図２は、この実施の形態における管理装置１００の外観の一例を示す斜視図である。
管理装置１００は、システムユニット９１０、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）やＬＣＤ（液晶）の表示画面を有する表示装置９０１、キーボード９０２（Ｋｅｙ・Ｂｏａｒｄ：Ｋ／Ｂ）、マウス９０３、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
システムユニット９１０は、コンピュータであり、ファクシミリ機９３２、電話器９３１とケーブルで接続され、また、ローカルエリアネットワーク９４２（ＬＡＮ）、ゲートウェイ９４１を介してインターネット９４０に接続されている。
【００１１】
図３は、この実施の形態における管理装置１００のハードウェア資源の一例を示す図である。
管理装置１００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、通信装置９１５、表示装置９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、プリンタ装置９０６、スキャナ装置９０７、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信装置９１５、キーボード９０２、スキャナ装置９０７、ＦＤＤ９０４などは、入力部、入力装置の一例である。
また、通信装置９１５、表示装置９０１、プリンタ装置９０６などは、出力部、出力装置の一例である。
【００１２】
通信装置９１５は、ファクシミリ機９３２、電話器９３１、ＬＡＮ９４２等に接続されている。通信装置９１５は、ＬＡＮ９４２に限らず、インターネット９４０、ＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。インターネット９４０或いはＩＳＤＮ等のＷＡＮに接続されている場合、ゲートウェイ９４１は不用となる。
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【００１３】
上記プログラム群９２３には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明する情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｋ）等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００１４】
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【００１５】
図４は、この実施の形態における管理装置１００の機能ブロックの一例を示すブロック構成図である。
管理装置１００は、要求取得部１１１、応答通知部１１２、要求通知部１２１、応答取得部１２２、状態通知要求部１２３、状態取得部１２４、状態判定部１３１、状態記憶部１３２、状態抽出部１３３、条件記憶部１４１、条件抽出部１４２、条件判定部１４３、許可判定部１４４、応答生成部１４５を有する。
【００１６】
要求取得部１１１は、ＣＰＵ９１１を用いて、処理要求装置２０１〜２０３のいずれかが出力した処理要求データを取得する。要求取得部１１１は、ＣＰＵ９１１を用いて、取得した処理要求データを出力する。
【００１７】
条件記憶部１４１は、磁気ディスク装置９２０を用いて、あらかじめ、処理要求データによって要求される処理を許可する条件（以下「制約条件」と呼ぶ。）を表わすデータ（以下「制約条件データ」と呼ぶ。）を記憶している。
【００１８】
図５は、この実施の形態における条件記憶部１４１が記憶する制約条件データ４１０の一例を示す図である。
制約条件データ４１０は、例えば、要求装置ＩＤ４１１と、実行装置ＩＤ４１２と、処理内容４１３と、制約条件４１４とからなる複数のレコード（データの組）を有する。
要求装置ＩＤ４１１は、処理要求装置２０１〜２０３を識別するため各処理要求装置２０１〜２０３に割り振られた識別データである。例えば、「Ｃ１」は処理要求装置２０１を表わし、「Ｃ２」は処理要求装置２０２を表わす。また、「−」は、処理要求装置を特定しないことを表わす。
実行装置ＩＤ４１２は、処理実行装置３０１〜３０３を識別するため各処理実行装置３０１〜３０３に割り振られた識別データである。例えば、「Ａ１」は処理実行装置３０１を表わし、「Ａ２」は処理実行装置３０２を表わす。また、「−」は、処理実行装置を特定しないことを表わす。
処理内容４１３は、処理要求データによって要求された処理の内容を表わす。
制約条件４１４は、その処理の実行を許可するための条件を表わす。
【００１９】
制約条件データ４１０の一つのレコードは、一つの条件を表わし、一つのレコードに含まれる要求装置ＩＤ４１１、実行装置ＩＤ４１２、処理内容４１３、制約条件４１４の組は、要求取得部１１１が取得した処理要求データによって処理の実行を要求した処理要求装置が、要求装置ＩＤ４１１によって識別される処理要求装置であり、処理の実行を要求される処理実行装置が、実行装置ＩＤ４１２によって識別される処理実行装置であり、要求された処理の内容が、処理内容４１３によって表わされる内容である場合に、制約条件４１４によって表わされる条件を満たせば、その処理の実行を許可することを表わす。
【００２０】
例えば、一行目のレコードは、処理要求装置にかかわらず、処理実行装置「Ａ１」を起動しようとした場合、処理実行装置「Ａ３」の電流値と、処理実行装置「Ａ４」の電流値との合計が３（アンペア）以下であれば、処理実行装置「Ａ１」の起動を許可することを表わす。この制約条件は、例えば、処理実行装置「Ａ１」「Ａ３」「Ａ４」が同一の電源に接続されていて、電源が供給できる電流の容量を超えないようにしたい場合の制約条件である。
また、四行目のレコードは、処理要求装置「Ｃ１」が、いずれかの処理実行装置を起動しようとした場合、処理実行装置「Ａ３」を起動した処理要求装置が、処理要求装置「Ｃ３」でなければ、処理実行装置の起動を許可することを表わす。この制約条件は、例えば、処理要求装置「Ｃ３」が要求する処理のほうが、処理要求装置「Ｃ１」が要求する処理よりも優先順位が高く、処理要求装置「Ｃ３」が要求した処理を処理実行装置「Ａ３」が実行している場合には、処理要求装置「Ｃ１」が要求した処理を実行しないようにしたい場合の制約条件である。
また、六行目のレコードは、処理要求装置「Ｃ２」が、処理実行装置「Ａ２」を起動しようとした場合、処理実行装置「Ａ２」の起動状態が「停止中」であれば、処理実行装置「Ａ２」の起動を許可することを表わす。この制約条件は、例えば、処理実行装置「Ａ１」と「Ａ２」とを同時に起動すると危険なため、同時に起動しないようにしたい場合の制約条件である。
【００２１】
図４に戻り、管理装置１００の機能ブロックの説明を続ける。
【００２２】
条件抽出部１４２は、ＣＰＵ９１１を用いて、要求取得部１１１が出力した処理要求データを入力する。条件抽出部１４２は、ＣＰＵ９１１を用いて、入力した処理要求データに基づいて、処理の実行を要求した処理要求装置の要求装置ＩＤ、処理の実行を要求される処理実行装置の実行装置ＩＤ、要求された処理内容を判別する。条件抽出部１４２は、ＣＰＵ９１１を用いて、判別した要求装置ＩＤ、実行装置ＩＤ、処理内容に基づいて、条件記憶部１４１が記憶した制約条件データを検索して、要求装置ＩＤ、実行装置ＩＤ、処理内容が一致するレコードを抽出し、抽出したレコードから、制約条件４１４を取得する。なお、一致するレコードが複数ある場合には、条件抽出部１４２は、複数の制約条件４１４を取得する。条件抽出部１４２は、ＣＰＵ９１１を用いて、取得した制約条件４１４を出力する。
【００２３】
状態記憶部１３２は、磁気ディスク装置９２０を用いて、処理実行装置３０１〜３０３の状態を表わすデータ（以下「状態データ」と呼ぶ。）を記憶している。
【００２４】
図６は、この実施の形態における状態記憶部１３２が記憶する状態データ４２０の一例を示す図である。
状態データ４２０は、例えば、実行装置ＩＤ４２１と、状態名４２２と、状態値４２３とからなる複数のレコードを有する。
実行装置ＩＤ４２１は、制約条件データ４１０における実行装置ＩＤ４１２と同じく、処理実行装置を識別するための識別データである。
状態名４２２は、処理実行装置の状態の名称であり、制約条件データ４１０の制約条件４１４において、状態を参照するために用いられる。状態名４２２には、「起動状態」など処理実行装置にかからわず共通する汎用的なものと、「温度」など特定の処理実行装置に固有のものとがある。
状態値４２３は、処理実行装置の状態の値を表わすデータである。例えば、「起動状態」であれば、「動作中」「停止中」などの文字列を表わすデータ、「起動クライアント」であれば、制約条件データ４１０における要求装置ＩＤ４１１と同じく処理要求装置を識別するための識別データ、「電流値」であれば、アンペアを単位とする実数を表わすデータ、「温度」であれば、摂氏を単位とする実数を表わすデータなどである。
【００２５】
状態データ４２０における一つのレコードは、一つの状態を表わし、一つのレコードに含まれる実行装置ＩＤ４２１、状態名４２２、状態値４２３の組は、実行装置ＩＤ４２１によって識別される処理実行装置の、状態名４２２が表わす名称を持つ状態が、状態値４２３が表わす値であることを表わす。例えば、一行目のレコードは、処理実行装置「Ａ１」の「起動状態」が「停止中」であることを表わす。また、六行目のレコードは、処理実行装置「Ａ２」の「温度」が摂氏「５７」度であることを表わす。
【００２６】
図４に戻り、管理装置１００の機能ブロックの説明を続ける。
【００２７】
状態抽出部１３３は、ＣＰＵ９１１を用いて、条件抽出部１４２が出力した制約条件４１４を入力する。状態抽出部１３３は、ＣＰＵ９１１を用いて、入力した制約条件４１４に基づいて、その制約条件４１４が満たされているか否かを判定するために必要な状態の実行装置ＩＤと状態名とを判別する。状態抽出部１３３は、ＣＰＵ９１１を用いて、判別した状態の実行装置ＩＤと状態名とに基づいて、状態記憶部１３２が記憶した状態データを検索して、実行装置ＩＤ４２１、状態名４２２が一致するレコードを抽出し、抽出したレコードから、状態値４２３を取得する。状態抽出部１３３は、ＣＰＵ９１１を用いて、取得した状態値４２３を出力する。
【００２８】
条件判定部１４３は、ＣＰＵ９１１を用いて、条件抽出部１４２が出力した制約条件４１４と、状態抽出部１３３が出力した状態値４２３とを入力する。条件判定部１４３は、ＣＰＵ９１１を用いて、入力した状態値４２３を、入力した制約条件４１４に当てはめて、制約条件４１４が満たされているか否かを判定する。条件判定部１４３は、ＣＰＵ９１１を用いて、判定した判定結果を出力する。
【００２９】
許可判定部１４４は、ＣＰＵ９１１を用いて、条件判定部１４３が出力した判定結果を入力する。許可判定部１４４は、ＣＰＵ９１１を用いて、入力した判定結果に基づいて、要求取得部１１１が取得した処理要求データによって要求された処理の実行を許可するか否かを判定する。許可判定部１４４は、ＣＰＵ９１１を用いて、判定した判定結果を出力する。
条件抽出部１４２が抽出した制約条件４１４がすべて満たされていると条件判定部１４３が判定した場合、許可判定部１４４は、ＣＰＵ９１１を用いて、要求された処理の実行を許可すると判定する。
【００３０】
条件抽出部１４２が抽出した制約条件４１４の一部または全部が満たされていないと条件判定部１４３が判定した場合については、以下の三種類の構成が考えられる。
（１）許可判定部１４４は、ＣＰＵ９１１を用いて、即座に、要求された処理の実行を許可しないと判定する。
（２）許可判定部１４４は、ＣＰＵ９１１を用いて、繰り返し、条件判定部１４３が出力した判定結果を入力して、条件抽出部１４２が抽出した制約条件４１４がすべて満たされていると条件判定部１４３が判定するまで待ち、その後、要求された処理の実行を許可すると判定する。
（３）許可判定部１４４は、ＣＰＵ９１１を用いて、所定の時間（以下「成就待ち時間」と呼ぶ。）が経過するまでの間、繰り返し、条件判定部１４３が出力した判定結果を入力する。成就待ち時間が経過するよりも前に、条件抽出部１４２が抽出した制約条件４１４がすべて満たされていると条件判定部１４３が判定した場合、許可判定部１４４は、ＣＰＵ９１１を用いて、要求された処理の実行を許可すると判定する。成就待ち時間が経過しても、条件抽出部１４２が抽出した制約条件４１４がすべて満たされていると条件判定部１４３が判定しない場合、許可判定部１４４は、ＣＰＵ９１１を用いて、要求された処理の実行を許可しないと判定する。
【００３１】
許可判定部１４４は、上記三種類の構成のうちいずれかの構成であってもよいし、上記三種類の構成のうち複数を組み合わせた構成であってもよい。
例えば、各制約条件ごとに、その制約条件を満たさないために、すぐに処理の実行を許可できない場合の対処方式を表わすデータを、制約条件データ４１０に含めて、条件記憶部１４１が磁気ディスク装置９２０を用いて記憶しておき、許可判定部１４４は、ＣＰＵ９１１を用いて、そのデータが表わす対処方式に基づいて、すぐに処理の実行を許可できない場合の対処をする構成であってもよい。
あるいは、処理要求データのなかに、制約条件を満たさないために、すぐに処理の実行を許可できない場合の対処方式を表わすデータを含めたものを、処理要求装置２０１〜２０３が出力して、要求取得部１１１が取得し、許可判定部１４４は、ＣＰＵ９１１を用いて、そのデータが表わす対処方式に基づいて、すぐに処理の実行を許可できない場合の対処をする構成であってもよい。
また、対処方式（３）における成就待ち時間を可変とし、制約条件データ４１０や処理要求データによって指定する構成であってもよい。その場合、成就待ち時間を「０」に指定すれば対処方式（１）と同等となり、成就待ち時間を「無限大」に指定すれば対処方式（２）と同等となる。
【００３２】
要求通知部１２１は、ＣＰＵ９１１を用いて、要求取得部１１１が出力した処理要求データと、許可判定部１４４が出力した判定結果とを入力する。要求通知部１２１は、ＣＰＵ９１１を用いて、入力した判定結果に基づいて、処理の実行を許可すると許可判定部１４４が判定した場合に、入力した処理要求データに基づいて、処理の実行を要求される処理実行装置と、要求された処理内容とを判別する。要求通知部１２１は、ＣＰＵ９１１を用いて、判別した処理実行装置に対して、判別した処理内容の実行を要求する。例えば、要求通知部１２１は、ＣＰＵ９１１を用いて、判別した処理実行装置に対して、入力した処理要求データを通知する。
【００３３】
応答取得部１２２は、ＣＰＵ９１１を用いて、要求通知部１２１が処理の実行を要求した処理実行装置から、処理を実行したか否かや処理を実行した結果などを表わす応答データを取得する。応答取得部１２２は、ＣＰＵ９１１を用いて、取得した応答データを出力する。
【００３４】
応答生成部１４５は、ＣＰＵ９１１を用いて、許可判定部１４４が出力した判定結果を入力する。応答生成部１４５は、ＣＰＵ９１１を用いて、入力した判定結果に基づいて、処理の実行を許可しないと許可判定部１４４が判定した場合に、処理の実行が許可されなかったことを表わす応答データを生成する。応答生成部１４５は、ＣＰＵ９１１を用いて、生成した応答データを出力する。
【００３５】
応答通知部１１２は、ＣＰＵ９１１を用いて、応答取得部１２２または応答生成部１４５が出力した応答データを入力する。応答通知部１１２は、ＣＰＵ９１１を用いて、要求取得部１１１が取得した処理要求データにより処理の実行を要求した処理要求装置に対して、入力した応答データを通知する。
【００３６】
状態記憶部１３２が記憶した状態データは、処理実行装置３０１〜３０３の最新の状態を反映したものであることが必要である。次に、そのための構成について説明する。
【００３７】
状態判定部１３１は、ＣＰＵ９１１を用いて、要求通知部１２１が処理実行装置に対して要求した処理内容と、応答取得部１２２が出力した応答データとを入力する。状態判定部１３１は、ＣＰＵ９１１を用いて、入力した処理内容と応答データとに基づいて、処理の実行を要求された処理実行装置の状態を判定する。状態判定部１３１は、ＣＰＵ９１１を用いて、判定した処理実行装置の状態を出力する。状態判定部１３１が出力した処理実行装置の状態は、状態記憶部１３２が、ＣＰＵ９１１を用いて入力し、磁気ディスク装置９２０を用いて記憶した状態データ４２０を更新する。
例えば、処理要求装置「Ｃ１」からの要求に基づいて、要求通知部１２１が処理実行装置「Ａ１」に対して「起動」を要求し、処理実行装置「Ａ１」が起動に成功したことを表わす応答データを、応答取得部１２２が取得した場合、状態判定部１３１は、処理実行装置「Ａ１」の「起動状態」が「動作中」になり、処理実行装置「Ａ１」の「起動クライアント」が「Ｃ１」になったと判定する。状態記憶部１３２は、状態判定部１３１の判定結果に基づいて、記憶した状態データ４２０を更新する。
【００３８】
状態取得部１２４は、ＣＰＵ９１１を用いて、処理実行装置３０１〜３０３が通知した処理実行装置３０１〜３０３自身の状態を表わすデータ（以下「状態通知データ」と呼ぶ。）を取得する。処理実行装置３０１〜３０３は、状態が変化した場合に、自発的に状態通知データを通知する構成であってもよいし、後述する状態通知要求部１２３による要求に対する応答として、状態通知データを通知する構成であってもよい。状態取得部１２４は、ＣＰＵ９１１を用いて、取得した状態通知データに基づいて、状態通知データを通知した処理実行装置の状態を判定する。状態取得部１２４は、ＣＰＵ９１１を用いて、判定した処理実行装置の状態を出力する。状態取得部１２４が出力した処理実行装置の状態は、状態記憶部１３２が、ＣＰＵ９１１を用いて入力し、磁気ディスク装置９２０を用いて記憶した状態データ４２０を更新する。
【００３９】
取得状態選択部１３４は、ＣＰＵ９１１を用いて、条件抽出部１４２が出力した制約条件４１４を入力する。取得状態選択部１３４は、ＣＰＵ９１１を用いて、入力した制約条件４１４に基づいて、その制約条件４１４が満たされているか否かを判定するために必要な状態の実行装置ＩＤと状態名とを判別する。取得状態選択部１３４は、ＣＰＵ９１１を用いて、判別した実行装置ＩＤと状態名とのうち、その状態を処理実行装置に問い合わせる必要があるものだけを選択する。取得状態選択部１３４は、ＣＰＵ９１１を用いて、選択した実行装置ＩＤと状態名とを出力する。
例えば、「起動状態」や「起動クライアント」のように、処理の実行の要求によって変化する状態は、状態判定部１３１が判定することにより、管理装置１００の側で管理することができるから、処理実行装置３０１〜３０３に問い合わせる必要はない。これに対し、「電流値」や「温度」のように、処理の実行の要求とは関係のない要素を含む状態は、管理装置１００の側で管理することができないから、処理実行装置３０１〜３０３に問い合わせる必要がある。取得状態選択部１３４は、ＣＰＵ９１１を用いて、判別した状態名に基づいて、問い合わせる必要があるか否かを判定する。
また、上述したように、状態が変化した場合に自発的に状態通知データを通知する処理実行装置であれば、常に最新の状態が通知されるので、処理実行装置３０１〜３０３に問い合わせる必要はない。自発的に状態通知データを通知する処理実行装置と、自発的な通知をしない処理実行装置とが混在している場合、取得状態選択部１３４は、ＣＰＵ９１１を用いて、判別した実行装置ＩＤに基づいて、問い合わせる必要があるか否かを判定する。
【００４０】
状態通知要求部１２３は、ＣＰＵ９１１を用いて、取得状態選択部１３４が出力した実行装置ＩＤと状態名とを入力する。状態通知要求部１２３は、ＣＰＵ９１１を用いて、入力した実行装置ＩＤによって識別される処理実行装置に対して、入力した状態名によって表わされる状態を通知することを要求する。例えば、状態通知要求部１２３は、ＣＰＵ９１１を用いて、入力した状態名によって表わされる状態を通知することを要求する状態通知要求データを生成し、入力した実行装置ＩＤによって識別される処理実行装置に対して、生成した状態通知要求データを通知する。
【００４１】
なお、すべての処理実行装置３０１〜３０３が、状態が変化した場合に自発的に状態通知データを通知する処理実行装置である場合には、状態を問い合わせる必要がないので、取得状態選択部１３４及び状態通知要求部１２３がない構成であってもよい。
あるいは、状態が変化した場合に自発的に状態通知データを通知する処理実行装置に対して、状態が変化した場合に管理装置１００に通知すべき状態を、あらかじめ通知しておく構成であってもよい。例えば、取得状態選択部１３４は、ＣＰＵ９１１を用いて、あらかじめ、条件記憶部１４１が記憶した制約条件データ４１０を検索して、すべての制約条件４１４を抽出し、抽出した制約条件４１４に基づいて、条件記憶部１４１が記憶した制約条件４１４のいずれかが満たされているかを判定するために必要な状態の実行装置ＩＤと状態名とを判別する。状態通知要求部１２３は、ＣＰＵ９１１を用いて、取得状態選択部１３４が判別した実行装置ＩＤによって識別される処理実行装置に対して、取得状態選択部１３４が判別した状態名を通知する。処理実行装置３０１〜３０３は、通知された状態名によって表わされる状態が変化した場合に、管理装置１００に対して、状態通知データを通知する。
【００４２】
また、状態記憶部１３２が記憶した状態データ４２０を最新の状態を反映したものとすることができる構成であれば、上述した構成以外の構成であってもよい。
【００４３】
図７は、この実施の形態における管理装置１００が連携システム８００を管理する連携管理処理Ｓ５１０の流れの一例を示すフローチャート図である。
連携管理処理Ｓ５１０は、処理要求取得工程Ｓ５１１、条件抽出工程Ｓ５１２、取得状態選択工程Ｓ５１３、状態通知要求工程Ｓ５１４、状態取得工程Ｓ５１５、状態抽出工程Ｓ５１６、条件判定工程Ｓ５１７、時間切れ判定工程Ｓ５１８、応答生成工程Ｓ５３１、要求通知工程Ｓ５４１、応答取得工程Ｓ５４２、状態更新工程Ｓ５４３、応答通知工程Ｓ５４４を有する。
【００４４】
処理要求取得工程Ｓ５１１において、要求取得部１１１は、ＣＰＵ９１１を用いて、処理要求データを取得する。許可判定部１４４は、ＣＰＵ９１１を用いて、経過時間の計測を開始する。
条件抽出工程Ｓ５１２において、条件抽出部１４２は、ＣＰＵ９１１を用いて、条件記憶部１４１が記憶した制約条件データ４１０を検索して、処理要求取得工程Ｓ５１１で要求取得部１１１が取得した処理要求データにより要求される処理の実行を許可するか否かを判定するための制約条件４１４を抽出する。
取得状態選択工程Ｓ５１３において、取得状態選択部１３４は、ＣＰＵ９１１を用いて、条件抽出工程Ｓ５１２で条件抽出部１４２が抽出した制約条件４１４に基づいて、制約条件４１４が満たされているか否かを判定するために必要な状態のうち、処理実行装置に問い合わせるべき状態を選択する。
状態通知要求工程Ｓ５１４において、状態通知要求部１２３は、ＣＰＵ９１１を用いて、処理実行装置に対して、取得状態選択工程Ｓ５１３で取得状態選択部１３４が選択した状態を通知することを要求する。
状態取得工程Ｓ５１５において、状態取得部１２４は、ＣＰＵ９１１を用いて、状態通知要求工程Ｓ５１４で状態通知要求部１２３がした要求に対する応答として、処理実行装置が通知した状態通知データを取得する。状態記憶部１３２は、ＣＰＵ９１１を用いて、状態取得部１２４が取得した状態通知データに基づいて、磁気ディスク装置９２０を用いて記憶した状態データ４２０を更新する。
状態抽出工程Ｓ５１６において、状態抽出部１３３は、ＣＰＵ９１１を用いて、状態記憶部１３２が記憶した状態データ４２０を検索して、条件抽出工程Ｓ５１２で条件抽出部１４２が抽出した制約条件４１４に基づいて、制約条件４１４が満たされているか否かを判定するために必要な状態の状態値４２３を抽出する。
条件判定工程Ｓ５１７において、条件判定部１４３は、ＣＰＵ９１１を用いて、状態抽出工程Ｓ５１６で状態抽出部１３３が抽出した状態値４２３を、条件抽出工程Ｓ５１２で条件抽出部１４２が抽出した制約条件４１４に当てはめて、制約条件４１４が満たされているか否かを判定する。許可判定部１４４は、ＣＰＵ９１１を用いて、条件判定部１４３が判定した判定結果に基づいて、条件抽出工程Ｓ５１２で条件抽出部１４２が抽出した制約条件４１４がすべて充足されているか否かを判定する。
条件抽出工程Ｓ５１２で条件抽出部１４２が抽出した制約条件４１４がすべて充足されていると許可判定部１４４が判定した場合、管理装置１００は、要求通知工程Ｓ５４１へ進む。
条件抽出工程Ｓ５１２で条件抽出部１４２が抽出した制約条件４１４のなかに充足されていないものがあると許可判定部１４４が判定した場合、管理装置１００は、時間切れ判定工程Ｓ５１８へ進む。
【００４５】
時間切れ判定工程Ｓ５１８において、許可判定部１４４は、ＣＰＵ９１１を用いて、処理要求取得工程Ｓ５１１で計測を開始してからの経過時間と、成就待ち時間とを比較する。
処理要求取得工程Ｓ５１１で計測を開始してからの経過時間が成就待ち時間内であると許可判定部１４４が判定した場合、管理装置１００は、取得状態選択工程Ｓ５１３に戻る。
処理要求取得工程Ｓ５１１で計測を開始してからの経過時間が成就待ち時間を超えたと許可判定部１４４が判定した場合、管理装置１００は、応答生成工程Ｓ５３１へ進む。
【００４６】
応答生成工程Ｓ５３１において、許可判定部１４４は、ＣＰＵ９１１を用いて、処理要求取得工程Ｓ５１１で要求取得部１１１が取得した処理要求データによって要求された処理の実行を許可しないと判定する。応答生成部１４５は、ＣＰＵ９１１を用いて、処理の実行が許可されなかったことを表わす応答データを生成する。管理装置１００は、その後、応答通知工程Ｓ５４４へ進む。
【００４７】
要求通知工程Ｓ５４１において、許可判定部１４４は、ＣＰＵ９１１を用いて、処理要求取得工程Ｓ５１１で要求取得部１１１が取得した処理要求データによって要求された処理の実行を許可すると判定する。要求通知部１２１は、ＣＰＵ９１１を用いて、処理要求取得工程Ｓ５１１で要求取得部１１１が取得した処理要求データによって処理の実行を要求された処理実行装置に対して、処理の実行を要求する。
応答取得工程Ｓ５４２において、応答取得部１２２は、ＣＰＵ９１１を用いて、要求通知工程Ｓ５４１で要求通知部１２１が処理の実行を要求した処理実行装置から、要求通知部１２１がした要求に対する応答データを取得する。
状態更新工程Ｓ５４３において、状態判定部１３１は、ＣＰＵ９１１を用いて、要求通知工程Ｓ５４１で要求通知部１２１が要求した処理内容と、応答取得工程Ｓ５４２で応答取得部１２２が取得した応答データとに基づいて、処理の実行を要求された処理実行装置の状態を判定する。状態記憶部１３２は、ＣＰＵ９１１を用いて、状態判定部１３１が判定した状態に基づいて、磁気ディスク装置９２０を用いて記憶した状態データ４２０を更新する。
【００４８】
応答通知工程Ｓ５４４において、応答通知部１１２は、ＣＰＵ９１１を用いて、応答生成工程Ｓ５３１で応答生成部１４５が生成した応答データ、もしくは、応答取得工程Ｓ５４２で応答取得部１２２が取得した応答データを、処理要求取得工程Ｓ５１１で要求取得部１１１が取得した処理要求データによって処理の実行を要求した処理要求装置に対して通知する。
【００４９】
この実施の形態における管理装置１００は、複数の処理要求装置２０１〜２０３が複数の処理実行装置３０１〜３０３に対して処理の実行を要求する連携システム８００を管理する。
上記管理装置１００は、データを記憶する記憶装置（磁気ディスク装置９２０）と、データを処理する処理装置（ＣＰＵ９１１）と、状態記憶部１３２と、要求取得部１１１と、条件記憶部１４１と、条件判定部１４３と、許可判定部１４４と、要求通知部１２１とを有する。
上記状態記憶部１３２は、上記記憶装置を用いて、上記複数の処理実行装置３０１〜３０３の状態（状態データ４２０）を記憶する。
上記要求取得部１１１は、上記処理装置を用いて、上記複数の処理要求装置２０１〜２０３の少なくともいずれかが上記複数の処理実行装置３０１〜３０３の少なくともいずれかに対して処理の実行を要求することを表わす処理要求データを取得する。
上記条件記憶部１４１は、上記記憶装置を用いて、上記処理要求データによって要求される処理の実行を許可する条件（制約条件データ４１０）を記憶する。
上記条件判定部１４３は、上記処理装置を用いて、上記状態記憶部１３２が記憶した上記複数の処理実行装置の状態（状態データ４２０）に基づいて、上記条件記憶部１４１が記憶した条件（制約条件４１４）が満たされているか否かを判定する。
上記許可判定部１４４は、上記処理装置を用いて、上記条件記憶部１４１が記憶した条件（制約条件４１４）が満たされていると上記条件判定部１４３が判定した場合に、上記要求取得部１１１が取得した処理要求データによって要求された処理の実行を許可すると判定する。
上記要求通知部１２１は、上記処理装置を用いて、上記要求取得部１１１が取得した処理要求データによって要求された処理の実行を許可すると上記許可判定部１４４が判定した場合に、上記要求取得部１１１が取得した処理要求データによって処理の実行を要求された処理実行装置に対して、上記処理要求データが表わす処理の実行を要求する。
【００５０】
この実施の形態における管理装置１００によれば、条件記憶部１４１が記憶した条件が満たされた場合に、許可判定部１４４が処理の実行を許可し、要求通知部１２１が処理実行装置に対して処理の実行を要求するので、複数の処理実行装置３０１〜３０３が常に制約条件を満たした状態で処理を実行し、複数の処理実行装置３０１〜３０３が安全に連携して動作することができる。
【００５１】
この実施の形態における管理装置１００において、上記許可判定部１４４は、上記処理装置を用いて、上記条件記憶部１４１が記憶した条件（制約条件４１４）が満たされていないと上記条件判定部１４３が判定した場合に、上記条件記憶部１４１が記憶した条件が満たされたと上記条件判定部１４３が判定するまで待ってから、上記要求取得部１１１が取得した処理要求データによって要求された処理の実行を許可すると判定する。
【００５２】
この実施の形態における管理装置１００によれば、条件記憶部１４１が記憶した条件が満たされていない場合に、条件が満たされるまで待ってから、許可判定部１４４が処理の実行を許可し、要求通知部１２１が処理実行装置に対して処理の実行を要求するので、複数の処理実行装置が常に制約条件を満たした状態で、要求された処理を確実に実行することができる。
【００５３】
この実施の形態における管理装置１００において、上記許可判定部１４４は、上記処理装置を用いて、所定の時間（成就待ち時間）が経過しても、上記条件記憶部１４１が記憶した条件（制約条件４１４）が満たされたと上記条件判定部１４３が判定しなかった場合に、上記要求取得部１１１が取得した処理要求データによって要求された処理の実行を許可しないと判定する。
【００５４】
この実施の形態における管理装置１００によれば、所定の時間が経過しても、条件記憶部１４１が記憶した条件が満たされていない場合は、処理の実行を許可しないので、いつまでも条件が満たされるのを待ち続けることにより発生するロスを防ぐことができる。
【００５５】
この実施の形態における管理装置１００は、更に、状態取得部１２４を有する。
上記状態取得部１２４は、上記処理装置を用いて、上記複数の処理実行装置３０１〜３０３の少なくともいずれかが通知した上記処理実行装置自身の状態（状態通知データ）を取得する。
上記状態記憶部１３２は、上記記憶装置を用いて、上記状態取得部１２４が取得した上記処理実行装置３０１〜３０３の状態を記憶する。
【００５６】
この実施の形態における管理装置１００によれば、処理実行装置３０１〜３０３が通知した状態を状態取得部１２４が取得し、状態記憶部１３２が記憶するので、最新の状態に基づいて、条件記憶部１４１が記憶した条件が満たされているか否かを判定することができる。
【００５７】
この実施の形態における管理装置１００は、更に、状態通知要求部１２３を有する。
上記状態通知要求部１２３は、上記処理装置を用いて、上記複数の処理実行装置３０１〜３０３の少なくともいずれかに対して、状態の通知を要求する。
上記状態取得部１２４は、上記処理装置を用いて、上記状態通知要求部１２３が状態の通知を要求した処理実行装置３０１〜３０３が通知した上記処理実行装置自身の状態（状態通知データ）を取得する。
【００５８】
この実施の形態における管理装置１００によれば、処理実行装置３０１〜３０３に対して状態の通知を状態通知要求部１２３が要求し、その要求に対する応答として通知された状態を状態取得部１２４が取得するので、最新の状態に基づいて、条件記憶部１４１が記憶した条件が満たされているか否かを判定することができる。
【００５９】
この実施の形態における管理装置１００は、更に、取得状態選択部１３４を有する。
上記取得状態選択部１３４は、上記処理装置を用いて、上記条件記憶部１４１が記憶した条件に基づいて、上記複数の処理実行装置３０１〜３０３の状態を示す項目（状態名４２２）のなかから、上記条件が満たされているか否かを判定するために必要な項目を選択する。
上記状態通知要求部１２３は、上記処理装置を用いて、上記取得状態選択部１３４が選択した項目についての状態の通知を要求する。
【００６０】
この実施の形態における管理装置１００によれば、処理実行装置３０１〜３０３に対して、条件記憶部１４１が記憶した条件が満たされているか否かを判定するために必要な状態の通知を要求するので、最新の状態に基づいて、条件記憶部１４１が記憶した条件が満たされているか否かを判定することができる。
【００６１】
この実施の形態における管理装置１００は、データを記憶する記憶装置（磁気ディスク装置９２０）とデータを処理する処理装置（ＣＰＵ９１１）とを有するコンピュータが実行することにより、上記コンピュータがこの実施の形態における管理装置１００として動作するコンピュータプログラムにより、実現することができる。
【００６２】
この実施の形態におけるコンピュータプログラムによれば、条件記憶部１４１が記憶した条件が満たされた場合に、許可判定部１４４が処理の実行を許可し、要求通知部１２１が処理実行装置に対して処理の実行を要求するので、複数の処理実行装置３０１〜３０３が常に制約条件を満たした状態で処理を実行し、複数の処理実行装置３０１〜３０３が安全に連携して動作することができるようにする管理装置１００を実現することができる。
【００６３】
この実施の形態における連携システム８００は、複数の処理要求装置２０１〜２０３と、管理装置１００と、複数の処理実行装置３０１〜３０３とを有する。
上記複数の処理要求装置２０１〜２０３は、それぞれ、上記複数の処理実行装置３０１〜３０３の少なくともいずれかに対して処理の実行を要求することを表わす処理要求データを、上記管理装置１００に対して通知する。
上記複数の処理実行装置３０１〜３０３は、それぞれ、上記管理装置１００からの要求に基づいて、処理を実行する。
【００６４】
この実施の形態における連携システム８００によれば、条件記憶部１４１が記憶した条件が満たされた場合に、許可判定部１４４が処理の実行を許可し、要求通知部１２１が処理実行装置に対して処理の実行を要求するので、複数の処理実行装置３０１〜３０３が常に制約条件を満たした状態で処理を実行し、複数の処理実行装置３０１〜３０３が安全に連携して動作することができる。
【００６５】
この実施の形態における管理装置１００が、複数の処理要求装置２０１〜２０３が複数の処理実行装置３０１〜３０３に対して処理の実行を要求する連携システム８００を管理する管理方法は、以下の工程を有する。
上記記憶装置（磁気ディスク装置９２０）が、上記複数の処理実行装置３０１〜３０３の状態（状態データ４２０）を記憶する。
上記処理装置（ＣＰＵ９１１）が、上記複数の処理要求装置２０１〜２０３の少なくともいずれかが上記複数の処理実行装置３０１〜３０３の少なくともいずれかに対して処理の実行を要求することを表わす処理要求データを取得する。
上記記憶装置が、上記処理要求データによって要求される処理の実行を許可する条件（制約条件データ４１０）を記憶する。
上記処理装置が、上記記憶装置が記憶した上記複数の処理実行装置３０１〜３０３の状態に基づいて、上記記憶装置が記憶した条件が満たされているか否かを判定する。
上記処理装置が、上記記憶装置が記憶した条件が満たされていると判定した場合に、取得した処理要求データによって要求された処理の実行を許可すると判定する。
上記処理装置が、取得した処理要求データによって要求された処理の実行を許可すると判定した場合に、取得した処理要求データによって処理の実行を要求された処理実行装置に対して、上記処理要求データが表わす処理の実行を要求する。
【００６６】
この実施の形態における管理方法によれば、記憶装置が記憶した条件が満たされた場合に、処理装置が処理の実行を許可し、処理実行装置に対して処理の実行を要求するので、複数の処理実行装置３０１〜３０３が常に制約条件を満たした状態で処理を実行し、複数の処理実行装置３０１〜３０３が安全に連携して動作することができる。
【００６７】
以上説明した機器連携管理装置Ｓ（管理装置１００）は、アプリケーションを実行するクライアントＣｉ（ｉ＝１〜ｍ）（処理要求装置２０１〜２０３）から、機器を制御するエージェントＡｊ（ｊ＝１〜ｎ）（処理実行装置３０１〜３０３）への処理要求を管理し、各エージェントの実行に関する制約条件（制約条件データ４１０）を保持する制約条件テーブルＴｃ（条件記憶部１４１）と、各エージェントの機器の状態（状態データ４２０）を保持する状態管理テーブルＴｓ（状態記憶部１３２）とを備える。
機器連携管理装置Ｓは、予め与えられた制約条件を制約条件テーブルＴｃに格納し、制約条件テーブルＴｃに格納された制約条件から、各エージェントＡｊについてチェックが必要な状態を抽出して状態管理テーブルＴｓに登録しておく。
「動作中」「停止中」などの汎用的な状態は、機器連携管理装置Ｓ自体が保守して状態管理テーブルＴｓに格納する。「温度」「電流値」等の機器固有の状態は、制約条件のチェック時に、機器連携管理装置Ｓが各エージェントＡｊに問い合わせて、その値を状態管理テーブルＴｓに格納する。
クライアントＣｉがエージェントＡｊへの処理要求を機器連携管理装置Ｓに送信すると、機器連携管理装置Ｓは、「Ｃｉ→Ａｊ」に関する制約条件を制約条件テーブルＴｃから探し、その制約条件に含まれる状態の値を状態管理テーブルＴｓから取得し、制約条件を満足するかどうかをチェックする。
制約条件を満足していた場合は、機器連携管理装置Ｓは、エージェントＡｊに処理要求を送信する。
制約条件を満足していなかった場合は、機器連携管理装置Ｓは、クライアントＣｉにエラーを返す。
【００６８】
または、制約条件を満足していなかった場合、機器連携管理装置Ｓは、制約条件を満足するまで待ってからエージェントＡｊに処理要求を送信する。
【００６９】
あるいは、制約条件を満足していなかった場合、機器連携管理装置Ｓは、制約条件を満足するまで最大で所定の時間Ｔ（成就待ち時間）だけ待ってからエージェントＡｊに処理要求を送信し、時間Ｔだけ待っても制約条件を満足しなかった場合は、クライアントＣｉにエラーを返す。
【００７０】
クライアントＣｉ（ｉ＝１〜ｍ）は、アプリケーションを実行する。エージェントＡｊ（ｊ＝１〜ｎ）は、機器を制御する。機器連携管理装置Ｓは、各クライアントから各エージェントへの処理要求を管理する。
制約条件テーブルＴｃは、各エージェントが制御する機器の実行に関する制約条件を保持する。状態管理テーブルＴｓは、各エージェントが制御する機器の状態（「動作中」「停止中」などの汎用的な状態と、「温度」「電流値」など機器固有の状態）を保持する。
一般的に、クライアントはサーバに対してサービスの依頼を行って、その提供を受ける計算機やプログラムであり、エージェントは機器側に設置され、機器の代理となってサーバとの間で仲介を行う装置やプログラムである。
制約条件テーブルＴｃは、例えば、［Ｃｉ，Ａｊ］の各ペアに対する制約条件を表として記述したものを保持する。クライアントのみに対する制約条件の場合はエージェントの欄が空欄、エージェントのみに対する制約条件の場合はクライアントの欄が空欄になる。
状態管理テーブルＴｓは、例えば、各エージェントＡｊに対応する状態の名称と値を表として記述したものを保持する。
【００７１】
まず、準備段階として、機器連携管理装置Ｓは、あらかじめ与えられた制約条件を、制約条件テーブルＴｃに格納する。
機器連携管理装置Ｓは、制約条件テーブルＴｃに格納された制約条件から、各エージェントＡｊについてチェックが必要な状態を抽出し、状態管理テーブルＴｓに登録する。
機器連携管理装置Ｓは、状態管理テーブルＴｓの各状態について現在の値を各エージェントＡｊから取得して、状態管理テーブルＴｓに格納する。
【００７２】
その後、クライアントＣｉが、エージェントＡｊへの処理要求を機器連携管理装置Ｓに送信する。
機器連携管理装置Ｓは、「Ｃｉ→Ａｊ」に関する制約条件を制約条件テーブルＴｃから探す。
機器連携管理装置Ｓは、探した制約条件に含まれる状態の値を状態管理テーブルＴｓから取得し、制約条件を満足するかどうかチェックする。なお、「動作中」など汎用的な状態は、機器連携管理装置Ｓが自分で管理し、「温度」など機器固有の状態は、制約条件チェックの都度、機器連携管理装置Ｓが各エージェントＡｊに問い合わせる。
制約条件を満たしていた場合、機器連携管理装置Ｓは、エージェントＡｊに処理要求を送信する。
制約条件を満たしていなかった場合、機器連携管理装置Ｓは、制約条件を満たすまで待ってから、エージェントＡｊに処理要求を送信する。所定の時間Ｔだけ待っても制約条件を満足しなかった場合、機器連携管理装置Ｓは、クライアントＣｉにエラーを返す。
なお、Ｔ＝０であればただちにエラーを返し、Ｔ＝∞であれば制約条件を満たすまで待つことになる。
エージェントＡｊに処理要求を送信した場合、機器連携管理装置Ｓは、エージェントＡｊからの処理終了の通知を待ち、その結果をクライアントＣｉに返す。
【００７３】
以上のように、制約条件を満たしているかどうかのチェックを行い、制約条件を満たしている場合のみ、その処理要求をエージェントに送信し、制約条件を満たしていなかった場合は満たすまで所定の時間だけ待ってから処理要求を送信し、所定の時間だけ待っても制約条件を満たさなかった場合はエラーを返すようにしているため、常に制約条件を満たした状態で複数の機器を安全に動作させることができる。
【００７４】
これにより、人手を介さずにアプリケーション（処理要求装置２０１〜２０３）が機器（処理実行装置３０１〜３０３）を制御する機器連携システム（連携システム８００）において、異なるアプリケーションからの制御が競合して機器が想定外の動作をするなどの不具合を防止することができ、各機器を安全に稼動することができる。例えば、複数の機器にまたがる安全性の制約条件（「機器Ａの動作中は機器Ｂを起動してはならない」「全機器の消費電流は合計５アンペア以下でなければならない」など）を満たした動作を保障することができる。
【００７５】
各エージェントＡｊは、機器の状態の変化が発生したときに、機器連携管理装置Ｓに、その状態の値を通知する機器状態変化通知部Ｎｊを備える構成であってもよい。
機器連携管理装置Ｓは、あらかじめ各エージェントＡｊに、どの状態のチェックが必要かを通知しておく。
各エージェントＡｊは、その状態に変化が発生したときにその値を機器連携管理装置Ｓに通知する。機器連携管理装置Ｓは、その値を状態管理テーブルＴｓに格納する。
機器連携管理装置Ｓは、制約条件のチェック時に機器固有の状態を各エージェントＡｊに問い合わせずに、状態管理テーブルＴｓから取得する。
【００７６】
機器状態変化通知部Ｎｊ（ｊ＝１〜ｎ）は、各エージェントが制御する機器の状態が変化したときに、機器連携管理装置Ｓにその状態の値を通知する。
【００７７】
まず、準備段階として、機器連携管理装置Ｓは、あらかじめ与えられた制約条件を制約条件テーブルＴｃに格納する。
機器連携管理装置Ｓは、制約条件テーブルＴｃに格納された制約条件から、各エージェントＡｊについてチェックが必要な状態を抽出し、状態管理テーブルＴｓに登録する。
機器連携管理装置Ｓは、状態管理テーブルＴｓの各状態について現在の値を各エージェントＡｊから取得して、状態管理テーブルＴｓに格納する。
機器連携管理装置Ｓは、あらかじめどの状態のチェックが必要かを各エージェントＡｊに通知しておく。
【００７８】
その後、各エージェントＡｊは、その状態に変化が起きるたびに、機器状態変化通知部Ｎｊが機器連携管理装置Ｓに通知する。
機器連携管理装置Ｓは、通知された状態を状態管理テーブルＴｓに格納する。
これにより、状態管理テーブルＴｓを常に最新の状態に保っておくことができる。
【００７９】
クライアントＣｉが、エージェントＡｊへの処理要求を機器連携管理装置Ｓに送信する。
機器連携管理装置Ｓは、「Ｃｉ→Ａｊ」に関する制約条件を制約条件テーブルＴｃから探す。
機器連携管理装置Ｓは、探した制約条件に含まれる状態の値を状態管理テーブルＴｓから取得し、制約条件を満足するかチェックする。状態管理テーブルＴｓが常に最新の状態に保たれているので、このとき、エージェントＡｊに問い合わせる必要はない。
【００８０】
以上のように、機器の状態が変化したときにエージェントＡｊがその状態の値を機器連携管理装置Ｓに通知するようにしているため、制約条件チェック時のＳの処理負荷を減らし、応答時間を短縮することが可能となる。
【００８１】
実施の形態２．
実施の形態２について、図８〜図１０を用いて説明する。
なお、実施の形態１と共通する部分については、同一の符号を付し、説明を省略する。
【００８２】
図８は、この実施の形態における管理装置１００の機能ブロックの構成の一例を示すブロック構成図である。
管理装置１００は、実施の形態１で説明した機能ブロックに加えて、更に、要求優先度記憶部１５１、実行優先度記憶部１５２、変更候補選択部１５３、状態変更選択部１５４、状態変更要求部１５５を有する。
【００８３】
要求優先度記憶部１５１は、磁気ディスク装置９２０を用いて、複数の処理要求装置２０１〜２０３それぞれの優先度を表わすデータ（以下「要求優先度データ」と呼ぶ。）を、あらかじめ記憶しておく。例えば、火災発生時の処理など、緊急性の高い処理の実行を要求する処理要求装置の優先度は高く設定し、逆に、動作点検の処理など、処理実行装置が他の処理を実行していないときに実行すればよい処理の実行を要求する処理要求装置の優先度は低く設定し、設定された優先度を表わす要求優先度データを、要求優先度記憶部１５１が記憶しておく。
【００８４】
実行優先度記憶部１５２は、磁気ディスク装置９２０を用いて、複数の処理実行装置３０１〜３０３それぞれの優先度を表わすデータ（以下「実行優先度データ」と呼ぶ。）を、あらかじめ記憶しておく。例えば、エレベータなど、即座に処理を実行することが要求される処理実行装置の優先度は高く設定し、逆に、処理が遅延してもかまわない処理実行装置の優先度は低く設定し、設定された優先度を表わす実行優先度データを、実行優先度記憶部１５２が記憶しておく。
【００８５】
変更候補選択部１５３は、ＣＰＵ９１１を用いて、要求取得部１１１が出力した処理要求データを入力する。変更候補選択部１５３は、ＣＰＵ９１１を用いて、入力した処理要求データに基づいて、その処理要求データにより処理の実行を要求した処理要求装置の要求装置ＩＤと、その処理要求データにより処理の実行を要求される処理実行装置の実行装置ＩＤとを判別する。
変更候補選択部１５３は、ＣＰＵ９１１を用いて、判別した実行装置ＩＤに基づいて、実行優先度記憶部１５２が記憶した実行優先度データを検索し、処理の実行を要求された処理実行装置よりも優先度が低い処理実行装置の実行装置ＩＤを抽出する。変更候補選択部１５３は、ＣＰＵ９１１を用いて、抽出した実行装置ＩＤに基づいて、状態記憶部１３２が記憶した状態データ４２０を検索し、処理の実行を要求された処理実行装置よりも優先度が低い処理実行装置が現在実行している処理を要求した処理要求装置の要求装置ＩＤを取得する。
変更候補選択部１５３は、ＣＰＵ９１１を用いて、判別した要求装置ＩＤに基づいて、要求優先度記憶部１５１が記憶した要求優先度データを検索し、処理の実行を要求した処理要求装置よりも優先度が高い処理要求装置の要求装置ＩＤを抽出する。変更候補選択部１５３は、ＣＰＵ９１１を用いて、抽出した要求装置ＩＤに基づいて、抽出した実行装置ＩＤのなかから、その処理実行装置が現在実行している処理を要求した処理要求装置の優先度が、処理の実行を要求した処理要求装置よりも高いものを除外する。これにより、現在処理を実行していない処理実行装置と、現在処理を実行しているがその処理を要求した処理要求装置の優先度が、今回の処理の実行を要求した処理要求装置よりも低い処理実行装置とを識別する実行装置ＩＤだけが残る。
変更候補選択部１５３は、ＣＰＵ９１１を用いて、残った実行装置ＩＤを出力する。
【００８６】
状態変更選択部１５４は、ＣＰＵ９１１を用いて、条件判定部１４３が出力した判定結果を入力する。状態変更選択部１５４は、ＣＰＵ９１１を用いて、入力した判定結果に基づいて、条件抽出部１４２が抽出した制約条件４１４が満たされていないと条件判定部１４３が判定した場合に、変更候補選択部１５３が出力した実行装置ＩＤと、状態抽出部１３３が出力した状態値４２３とを入力する。
状態変更選択部１５４は、ＣＰＵ９１１を用いて、入力した実行装置ＩＤと状態値４２３とに基づいて、入力した実行装置ＩＤによって識別される処理実行装置の状態を変更することにより、条件抽出部１４２が抽出した制約条件４１４を満たすことができるか否かを判定する。
入力した実行装置ＩＤによって識別される処理実行装置の状態を変更することにより、条件抽出部１４２が抽出した制約条件４１４を満たすことができると判定した場合、状態変更選択部１５４は、ＣＰＵ９１１を用いて、状態を変更することにより、条件抽出部１４２が抽出した制約条件４１４を満たすことができると判定した処理実行装置の実行装置ＩＤと、その処理実行装置の状態をどのように変更すれば条件抽出部１４２が抽出した制約条件４１４を満たすことになるかを表わすデータ（以下「変更状態データ」と呼ぶ。）とを出力する。
なお、状態を変更することにより、条件抽出部１４２が抽出した制約条件４１４を満たすことができると判定した処理実行装置が複数あり、そのうちの一部の処理実行装置の状態だけを変更すれば、条件抽出部１４２が抽出した制約条件４１４を満たすことになる場合、状態変更選択部１５４は、ＣＰＵ９１１を用いて、状態を変更することにより、条件抽出部１４２が抽出した制約条件４１４を満たすことができると判定した複数の処理実行装置のうちから、状態を変更する処理実行装置として、例えば、優先度が最も低い処理実行装置を選択する。あるいは、状態変更選択部１５４は、ＣＰＵ９１１を用いて、状態を変更する処理実行装置の数が最も少なくなるよう、状態を変更する処理実行装置を選択する構成としてもよい。
【００８７】
状態変更要求部１５５は、ＣＰＵ９１１を用いて、状態変更選択部１５４が出力した実行装置ＩＤと変更状態データとを入力する。状態変更要求部１５５は、ＣＰＵ９１１を用いて、入力した実行装置ＩＤによって識別される処理実行装置に対して、その処理実行装置の状態を、入力した変更状態データが表わす状態に変更することを要求する。状態変更要求部１５５は、例えば、ＣＰＵ９１１を用いて、状態の変更を要求する処理要求データを生成し、入力した実行装置ＩＤによって識別される処理実行装置に対して、生成した処理要求データを通知する。
【００８８】
図９は、この実施の形態における管理装置１００が連携システム８００を管理する連携管理処理Ｓ５１０の流れの一例を示すフローチャート図である。
連携管理処理Ｓ５１０は、実施の形態１で説明した工程に加えて、状態変更処理Ｓ５２０を有する。
【００８９】
時間切れ判定工程Ｓ５１８において、処理要求取得工程Ｓ５１１で計測を開始してからの経過時間が成就待ち時間内であると許可判定部１４４が判定した場合、管理装置１００は、状態変更処理Ｓ５２０へ進む。
【００９０】
状態変更処理Ｓ５２０において、管理装置１００は、条件抽出工程Ｓ５１２で条件抽出部１４２が抽出した制約条件４１４を満たすよう、処理実行装置の状態の変更を試みる。
その後、管理装置１００は、取得状態選択工程Ｓ５１３に戻る。
【００９１】
図１０は、この実施の形態における管理装置１００が処理実行装置の状態の変更を試みる状態変更処理Ｓ５２０の流れの一例を示すフローチャート図である。
状態変更処理Ｓ５２０は、変更候補選択工程Ｓ５２１、状態変更選択工程Ｓ５２２、状態変更要求工程Ｓ５２３、応答取得工程Ｓ５２４、状態更新工程Ｓ５２５、応答通知工程Ｓ５２６を有する。
【００９２】
変更候補選択工程Ｓ５２１において、変更候補選択部１５３は、ＣＰＵ９１１を用いて、処理要求取得工程Ｓ５１１で要求取得部１１１が取得した処理要求データと、要求優先度記憶部１５１が記憶した要求優先度データと、実行優先度記憶部１５２が記憶した実行優先度データとに基づいて、状態を変更する候補となる処理実行装置を選択する。
状態変更選択工程Ｓ５２２において、状態変更選択部１５４は、ＣＰＵ９１１を用いて、状態抽出工程Ｓ５１６で状態抽出部１３３が抽出した状態値４２３に基づいて、変更候補選択工程Ｓ５２１で変更候補選択部１５３が選択した処理実行装置のなかから、状態を変更する処理実行装置と、変更する状態とを決定する。
変更候補選択工程Ｓ５２１で変更候補選択部１５３が選択した候補のいずれの処理実行装置の状態を変更しても、条件抽出工程Ｓ５１２で条件抽出部１４２が抽出した制約条件４１４を満たすことができない場合、管理装置１００は、状態変更処理Ｓ５２０を終了する。
それ以外の場合、管理装置１００は、状態変更要求工程Ｓ５２３へ進む。
【００９３】
状態変更要求工程Ｓ５２３において、状態変更要求部１５５は、ＣＰＵ９１１を用いて、状態変更選択工程Ｓ５２２で状態変更選択部１５４が決定した処理実行装置に対して、状態の変更を要求する。
応答取得工程Ｓ５２４において、応答取得部１２２は、ＣＰＵ９１１を用いて、状態変更要求工程Ｓ５２３で状態変更要求部１５５が状態の変更を要求した処理実行装置から、状態変更要求部１５５がした要求に対する応答データを取得する。
状態更新工程Ｓ５２５において、状態判定部１３１は、ＣＰＵ９１１を用いて、応答取得工程Ｓ５２４で応答取得部１２２が取得した応答データに基づいて、状態の変更を要求された処理実行装置の状態がどのように変化したかを判定する。状態記憶部１３２は、ＣＰＵ９１１を用いて、状態判定部１３１が判定した状態に基づいて、磁気ディスク装置９２０を用いて記憶した状態データ４２０を更新する。
応答通知工程Ｓ５２６において、応答通知部１１２は、ＣＰＵ９１１を用いて、状態の変更を要求された処理実行装置に対して処理の実行を要求していた処理要求装置に対して、応答取得工程Ｓ５２４で応答取得部１２２が取得した応答データを通知する。
【００９４】
このように、制約条件が満たされていないために処理の実行を許可することができない場合、制約条件が満たされるのをただ待つのではなく、積極的に処理実行装置の状態を変更することにより、制約条件を満たし、処理実行装置が処理を実行できるようにする。これにより、処理実行装置が処理を実行するまでの待ち時間を短縮することができるので、緊急を要する処理などの場合に、特に有効である。
【００９５】
また、処理実行装置の優先度や、処理実行装置に処理の実行を要求した処理要求装置の優先度に基づいて、状態を変更する処理実行装置を選択するので、例えば、優先度の低い処理を中断して、優先度の高い処理を実行するなど、処理の優先度に応じて柔軟に処理を実行することができる。
【００９６】
この実施の形態における管理装置１００は、更に、状態変更選択部１５４と、状態変更要求部１５５とを有する。
上記状態変更選択部１５４は、上記処理装置（ＣＰＵ９１１）を用いて、上記条件記憶部１４１が記憶した条件（制約条件４１４）が満たされていないと上記条件判定部１４３が判定した場合に、上記複数の処理実行装置３０１〜３０３のなかから、状態を変更すれば上記条件記憶部１４１が記憶した条件が満たされるようになる処理実行装置を選択する。
上記状態変更要求部１５５は、上記処理装置を用いて、上記状態変更選択部１５４が選択した処理実行装置に対して、状態の変更を要求する。
【００９７】
この実施の形態における管理装置１００によれば、条件記憶部１４１が記憶した条件が満たされない場合に、状態変更要求部１５５が、処理実行装置に対して状態の変更を要求して、条件記憶部１４１が記憶した条件が満たされるようにするので、要求取得部１１１が取得した処理要求データによって要求された処理を安全に実行できるようになる。
【００９８】
この実施の形態における管理装置１００は、更に、実行優先度記憶部１５２を有する。
上記実行優先度記憶部１５２は、上記記憶装置（磁気ディスク装置９２０）を用いて、上記複数の処理実行装置３０１〜３０３それぞれの優先度（実行優先度データ）を記憶する。
上記状態変更選択部１５４は、上記処理装置を用いて、上記条件記憶部１４１が記憶した条件（制約条件４１４）が満たされていないと上記条件判定部１４３が判定した場合に、上記実行優先度記憶部１５２が記憶した優先度に基づいて、上記複数の処理実行装置３０１〜３０３のうち、上記要求取得部１１１が取得した処理要求データによって処理の実行を要求された処理実行装置よりも優先度が低い処理実行装置のなかから、状態を変更すれば上記条件記憶部１４１が記憶した条件が満たされるようになる処理実行装置を選択する。
【００９９】
この実施の形態における管理装置１００によれば、要求取得部１１１が取得した処理要求データにより処理の実行を要求された処理実行装置よりも優先度が低い処理実行装置の状態を変更することにより、条件記憶部１４１が記憶した条件が満たされるようにするので、例えば、優先度の低い処理を中断して、優先度の高い処理を処理実行装置に実行させることができる。
【０１００】
この実施の形態における管理装置１００は、更に、要求優先度記憶部１５１を有する。
上記要求優先度記憶部１５１は、上記記憶装置を用いて、上記複数の処理要求装置２０１〜２０３それぞれの優先度（要求優先度データ）を記憶する。
上記状態変更選択部１５４は、上記処理装置を用いて、上記条件記憶部１４１が記憶した条件（制約条件４１４）が満たされていないと上記条件判定部１４３が判定した場合に、上記要求優先度記憶部１５１が記憶した優先度に基づいて、上記複数の処理実行装置３０１〜３０３のうち、上記要求取得部１１１が取得した処理要求データによって処理の実行を要求した処理要求装置よりも優先度が低い処理要求装置から要求された処理を実行している処理実行装置のなかから、状態を変更すれば上記条件記憶部１４１が記憶した条件が満たされるようになる処理実行装置を選択する。
【０１０１】
この実施の形態における管理装置１００によれば、要求取得部１１１が取得した処理要求データにより処理の実行を要求した処理要求装置よりも優先度が低い処理要求装置が要求した処理を実行している処理実行装置の状態を変更することにより、条件記憶部１４１が記憶した条件が満たされるようにするので、例えば、優先度の低い処理を中断して、優先度の高い処理を処理実行装置に実行させることができる。
【０１０２】
各エージェントＡｊ（処理実行装置３０１〜３０３）は、各機器の状態を変更する機器状態変更部Ｘｊを備える。
以上説明した機器連携管理装置（管理装置１００）は、制約条件４１４を満たしていなかった場合、満たすように他の機器の状態を機器状態変更部Ｘｊによって変更する。
【０１０３】
機器状態変更部Ｘｊ（ｊ＝１〜ｎ）は、各エージェントが制御する機器の状態を変化させる。
制約条件を満たしていなかった場合に、機器連携管理装置Ｓは、制約条件を満たすように各機器状態変更部Ｘｊによって他のエージェントが制御する機器の状態を変更する。例えば、エージェントＡｊの機器を動作させるにはエージェントＡｙの機器を停止させる必要がある場合は、機器状態変更部ＸｙによってエージェントＡｙの機器を停止する。
【０１０４】
このように、制約条件を満たしていなかった場合に、制約条件を満たすように他の機器の状態を変更するようにしているため、常に制約条件を満たした状態で複数の機器を安全に動作させることができる。
【０１０５】
以上説明した機器連携管理装置（管理装置１００）は、エージェント優先順位判定部Ｐａ（変更候補選択部１５３）を備える。
エージェントＡｊに対する制約条件を満たしていなかった場合に、その制約条件に含まれるすべてのエージェントＡｙについて、エージェント優先順位判定部Ｐａにより優先順位の判定を行い、「エージェントＡｊの優先度＞エージェントＡｙの優先度」の場合のみ、エージェントＡｙの機器の状態を機器状態変更部Ｘｙによって変更する。
【０１０６】
エージェント優先順位判定部Ｐａは、各エージェントの優先順位を判定する。
各エージェントＡｊに優先順位を設け、エージェントＡｊへの処理要求を実行するのに必要な制約条件に含まれるすべてのエージェントＡｙについて、エージェント優先順位判定部Ｐａにより優先順位の判定を行い、「Ａｊの優先度＞Ａｙの優先度」の場合のみ、制約条件を満たすようにエージェントＡｙの機器の状態を機器状態変更部Ｘｙによって変更する。
【０１０７】
このように、優先度が高い機器を動作させるための制約となっている優先度が低い機器の状態を、制約条件を満たすように変更するようにしているため、エレベータなど緊急性の高い機器の制御を優先的に、かつ安全に実行することが可能となる。
【０１０８】
以上説明した機器連携管理装置（管理装置１００）は、クライアント優先順位判定部Ｐｃ（変更候補選択部１５３）を備える。
「Ｃｉ→Ａｊ」に対する制約条件を満たしていなかった場合に、その制約条件に含まれるすべてのエージェントＡｙについて、その時点でエージェントＡｙを起動させているすべてのクライアントＣｘ（処理要求装置２０１〜２０３）について、クライアント優先順位判定部Ｐｃにより優先順位の判定を行い、「クライアントＣｉの優先度＞クライアントＣｘの優先度」の場合のみ、エージェントＡｙの機器の状態を機器状態変更部Ｘｙによって変更する。
【０１０９】
クライアント優先順位判定部Ｐｃは、各クライアントの優先順位を判定する。
各クライアントＣｉに優先順位を設け、「Ｃｉ→Ａｊ」に対する制約条件に含まれている各エージェントＡｙについて、その時点でエージェントＡｙを起動させているすべてのクライアントＣｘについて、クライアント優先順位判定部Ｐｃにより優先順位の判定を行い、「Ｃｉの優先度＞Ｃｘの優先度」の場合のみ、制約条件を満たすようにエージェントＡｙの機器の状態を機器状態変更部Ｘｙによって変更する。
【０１１０】
このように、優先度が高いアプリケーションを動作させるための制約となっている優先度が低いアプリケーションが起動している機器の状態を、制約条件を満たすように変更するようにしているため、火災発生時など緊急性の高いアプリケーションを優先的に、かつ安全に実行することが可能となる。
【図面の簡単な説明】
【０１１１】
【図１】実施の形態１における連携システム８００の全体構成の一例を示すシステム構成図。
【図２】実施の形態１における管理装置１００の外観の一例を示す斜視図。
【図３】実施の形態１における管理装置１００のハードウェア資源の一例を示す図。
【図４】実施の形態１における管理装置１００の機能ブロックの一例を示すブロック構成図。
【図５】実施の形態１における条件記憶部１４１が記憶する制約条件データ４１０の一例を示す図。
【図６】実施の形態１における状態記憶部１３２が記憶する状態データ４２０の一例を示す図。
【図７】実施の形態１における管理装置１００が連携システム８００を管理する連携管理処理Ｓ５１０の流れの一例を示すフローチャート図。
【図８】実施の形態２における管理装置１００の機能ブロックの構成の一例を示すブロック構成図。
【図９】実施の形態２における管理装置１００が連携システム８００を管理する連携管理処理Ｓ５１０の流れの一例を示すフローチャート図。
【図１０】実施の形態２における管理装置１００が処理実行装置の状態の変更を試みる状態変更処理Ｓ５２０の流れの一例を示すフローチャート図。
【符号の説明】
【０１１２】
１００  管理装置、１１１  要求取得部、１１２  応答通知部、１２１  要求通知部、１２２  応答取得部、１２３  状態通知要求部、１２４  状態取得部、１３１  状態判定部、１３２  状態記憶部、１３３  状態抽出部、１３４  取得状態選択部、１４１  条件記憶部、１４２  条件抽出部、１４３  条件判定部、１４４  許可判定部、１４５  応答生成部、１５１  要求優先度記憶部、１５２  実行優先度記憶部、１５３  変更候補選択部、１５４  状態変更選択部、１５５  状態変更要求部、２０１〜２０３  処理要求装置、３０１〜３０３  処理実行装置、４１０  制約条件データ、４１１  要求装置ＩＤ、４１２  実行装置ＩＤ、４１３  処理内容、４１４  制約条件、４２０  状態データ、４２１  実行装置ＩＤ、４２２  状態名、４２３  状態値、８００  連携システム、９０１  表示装置、９０２  キーボード、９０３  マウス、９０４  ＦＤＤ、９０５  ＣＤＤ、９０６  プリンタ装置、９０７  スキャナ装置、９１０  システムユニット、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信装置、９２０  磁気ディスク装置、９２１  ＯＳ、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群、９３１  電話器、９３２  ファクシミリ機、９４０  インターネット、９４１  ゲートウェイ、９４２  ＬＡＮ。
【図１】
2010122867.tif 000003
【図２】
2010122867.tif 000004
【図３】
2010122867.tif 000005
【図４】
2010122867.tif 000006
【図５】
2010122867.tif 000007
【図６】
2010122867.tif 000008
【図７】
2010122867.tif 000009
【図８】
2010122867.tif 000010
【図９】
2010122867.tif 000011
【図１０】
2010122867.tif 000012