JP2009026182A - プログラム実行システム及び実行装置 - Google Patents
プログラム実行システム及び実行装置 Download PDFInfo
- Publication number
- JP2009026182A JP2009026182A JP2007190597A JP2007190597A JP2009026182A JP 2009026182 A JP2009026182 A JP 2009026182A JP 2007190597 A JP2007190597 A JP 2007190597A JP 2007190597 A JP2007190597 A JP 2007190597A JP 2009026182 A JP2009026182 A JP 2009026182A
- Authority
- JP
- Japan
- Prior art keywords
- execution
- program
- devices
- state table
- storage unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】高性能なシステムを複数利用して二重化をすることなく、簡単な構成で機器の故障等にも対応することのできるプログラム実行システムを提供する。
【解決手段】実行装置10aは、プログラム記憶部と、プログラムを実行する実行手段12と、プログラムの実行によって生じた実行値を記憶する実行データ記憶部と、他の実行装置に実行値を送信するとともに、受信する実行値を実行データ記憶部に追加する交換手段14と、負荷を通知する通知手段13を備え、監視装置20は、プログラム状態テーブル記憶部と、装置状態テーブル記憶部と、装置状態テーブルにおいて実行装置の識別子に関連付けられる負荷を更新する更新手段23と、実行装置の異常を検出する検出手段24と、異常の発生した実行装置で実行されていたプログラムの実行を負荷の低い実行装置に割り当て、装置状態テーブルを更新する割当手段25と、プログラムの実行を送信する指令手段を備える。
【選択図】 図1
【解決手段】実行装置10aは、プログラム記憶部と、プログラムを実行する実行手段12と、プログラムの実行によって生じた実行値を記憶する実行データ記憶部と、他の実行装置に実行値を送信するとともに、受信する実行値を実行データ記憶部に追加する交換手段14と、負荷を通知する通知手段13を備え、監視装置20は、プログラム状態テーブル記憶部と、装置状態テーブル記憶部と、装置状態テーブルにおいて実行装置の識別子に関連付けられる負荷を更新する更新手段23と、実行装置の異常を検出する検出手段24と、異常の発生した実行装置で実行されていたプログラムの実行を負荷の低い実行装置に割り当て、装置状態テーブルを更新する割当手段25と、プログラムの実行を送信する指令手段を備える。
【選択図】 図1
Description
本発明は、プログラムの実行を複数の装置によって分散して実行するとともに故障を検出することができるプログラム実行システム及び実行装置に関する。
従来、企業やプラント等で利用される電子システムや、航空機に搭載される航空機搭載システムでは、システムを構成する機器の故障が事故等の発生を招くおそれがある。したがって、このようなシステムでは、プログラムの実行中に機器の故障を監視するとともに、故障が発生した場合でもその故障を検知して修復したり、実行中のプログラムの実行を継続できるように構成されている。
たとえば、中央処理装置(CPU)、メモリ、入出力用のプロセッサ、故障診断用のプロセッサ等を備える複数のシステムを組み合わせ、複数のシステムで同期して二重化運転を行う二重化コンピュータシステムがある(例えば、特許文献1参照)。
この二重化コンピュータシステムは、いわゆるフォルトトレラントシステムとして用いられるシステムであって、互いにその動作を故障診断用のプロセッサで監視し、いずれかのシステムにおいて故障が発生すると故障を検出することができるため、故障箇所の早期修復が可能となる。また、この二重化コンピュータシステムは、二重化運転を行っているために必要なプログラム実行が中断される問題を防止することができる。
特開2006-172390号公報
しかしながら、引用文献1に記載されている二重化コンピュータシステムでは、複数のシステムによって構成しており、その各システムに冗長性を持たせてプログラムを実行するものである。したがって、二重化コンピュータシステムを構成するシステムの全ては、二重化コンピュータシステムで実行する必要がある全てのプログラムを実行しており、それぞれに高い性能が要求されている。
上記課題に鑑み、本発明は、高性能なシステムを複数利用して二重化をすることなく、簡単な構成で機器の故障等にも対応することのできるプログラム実行システムを提供する。
本発明の特徴に係るプログラム実行システムは、プログラムを実行する複数の実行装置と、複数の実行装置におけるプログラムの実行状態を監視する監視装置とを有するプログラム実行システムであって、実行装置は、複数のプログラムを記憶するプログラム記憶部と、リクエストに従って、プログラムを実行する実行手段と、プログラムの実行によって生じた実行値を蓄積して記憶する実行データ記憶部と、他の実行装置に実行値を送信するとともに、他の実行装置から受信する実行値を実行データ記憶部に追加する交換手段と、プログラムの実行による負荷の状況を監視装置に通知する通知手段とを備え、監視装置は、プログラムの識別子と、プログラムを実行する実行装置の識別子とを関連付けるプログラム状態テーブルを記憶するプログラム状態テーブル記憶部と、複数の実行装置の識別子と、実行装置における負荷とを関連付ける装置状態テーブルを記憶する装置状態テーブル記憶部と、実行装置から、負荷の状況を受信すると、装置状態テーブルにおいて実行装置の識別子に関連付けられる負荷を受信した負荷に更新する更新手段と、複数の実行装置の異常の発生を検出する検出手段と、異常の発生した実行装置が検出されると、プログラム状態テーブル及び装置状態テーブルを参照し、異常の発生した実行装置で実行されていたプログラムの実行を負荷の低い他の実行装置に割り当てるとともに、装置状態テーブルを更新する割当手段と、プログラムを割り当てた実行装置に、プログラムの実行を要求するリクエストを送信する指令手段とを備えている。
また、他の特徴に係るプログラム実行システムは、プログラムを実行する複数の実行装置が接続されるプログラム実行システムであって、実行装置は、複数のプログラムを記憶するプログラム記憶部と、リクエストに従って、プログラムを実行する実行手段と、プログラムの実行によって生じた実行値を蓄積して記憶する実行データ記憶部と、他の実行装置に実行値を送信するとともに、他の実行装置から受信する実行値を実行データ記憶部に追加する交換手段と、プログラムの実行による負荷の状況を通知する通知手段とを備え、実行装置の少なくともいずれかは、更に、プログラムの識別子と、プログラムを実行する実行装置の識別子とを関連付けるプログラム状態テーブルを記憶するプログラム状態テーブル記憶部と、複数の実行装置の識別子と、実行装置における負荷とを関連付ける装置状態テーブルを記憶する装置状態テーブル記憶部と、いずれかの実行装置から、負荷の状況を受信すると、装置状態テーブルにおいて実行装置の識別子に関連付けられる負荷を受信した負荷に更新する更新手段と、複数の実行装置の異常の発生を検出する検出手段と、異常の発生した実行装置が検出されると、プログラム状態テーブル及び装置状態テーブルを参照し、異常の発生した実行装置で実行されていたプログラムの実行を負荷の低い他の実行装置に割り当てるとともに、装置状態テーブルを更新する割当手段と、プログラムを割り当てた実行装置に、プログラムの実行を要求するリクエストを送信する指令手段とを備えている。
本発明によれば、高性能なシステムを複数利用して二重化をすることなく、簡単な構成で機器の故障等にも対応することができる。
以下に、図面を用いて本発明の最良の実施形態について説明する。以下の説明において同一の構成には、同一の記号を付し、類似の構成には類似の記号を付して説明を省略する。
〈第1の実施形態〉
《プログラム実行システム》
本発明の第1の実施形態に係るプログラム実行システムは、図1に示すように、プログラムを実行する複数の実行装置10a〜10cと、複数の実行装置10a〜10cにおけるプログラムの実行状態を監視する監視装置20を有している。
《プログラム実行システム》
本発明の第1の実施形態に係るプログラム実行システムは、図1に示すように、プログラムを実行する複数の実行装置10a〜10cと、複数の実行装置10a〜10cにおけるプログラムの実行状態を監視する監視装置20を有している。
プログラム実行システム1aは、複数のプログラムにより成立する一連の処理を制御するシステムであり、複数のプログラムは監視装置20による監視制御によって各実行装置10a〜10bのいずれかによって実行される。例えば、プログラム実行システム1aで実行するプログラムがプログラム1〜7まであるとき、プログラム1〜7は、それぞれ異なる実行装置10a〜10cに分散して実行される。
このプログラム実行システム1aは、この飛行機やヘリコプター等の航空機で飛行に関する一連の処理を制御するシステムとして利用することができる。すなわち、航空機の飛行に関する制御は、複数の処理によって行われているが、その各処理を実行するプログラムを別々の実行装置10a〜10cによって実行するとともに、各実行装置10a〜10cの状態を監視装置20で監視し、いずれかの実行装置で異常が発生した場合に実行されなくなったプログラムを他の実行装置で実行させる。これによって、航空機の飛行に必要な処理を全て実行させることが可能となり、飛行の安全を確保することができる。その他、このプログラム実行システム1aは、ビルやプラント等の施設を監視制御するシステムとして利用することもできる。
《実行装置》
実行装置10aは、図1に示すように、記憶装置11、実行手段12、通知手段13及び交換手段14を備えている。
実行装置10aは、図1に示すように、記憶装置11、実行手段12、通知手段13及び交換手段14を備えている。
記憶装置11では、プログラム実行システム1aによって一連の処理を制御する際に必要な複数のプログラムを記憶している。例えば、プログラム実行システム1aで実行するプログラムがプログラム1〜7まであるとき、記憶装置11は、この全てのプログラムを記憶している。また、記憶装置11では、プログラムの実行によって発生した値を実行データとして記憶している。
実行手段12は、監視装置20から実行するプログラムの識別子とともに、プログラムの実行を要求するリクエストを入力すると、記憶装置11から実行するプログラムを読み出して実行する。また、実行手段12は、プログラムの実行によって発生した実行値を記憶装置11に実行データとして記憶する。
通知手段13は、実行手段12がプログラムの実行を開始すると、定期的にプログラムの実行による実行装置10aでの負荷状況を監視装置20に送信する。このとき、通知手段13は、負荷状況とともに実行装置10aの識別子を送信する。なお、実行装置10aは、正常である場合には監視装置20に負荷状況を定期的に送信することができるが、異常が発生すると、負荷状況を送信することはできない。
交換手段14は、記憶装置11に記憶される実行データを、定期的に読み出し、他の実行装置10b,10cに送信する。また、交換手段14は、他の実行装置10b,10cから受信した実行データを記憶装置11に記憶する。
実行手段12は、プログラムを実行する際、記憶装置11に実行するプログラムに関する実行データが記憶されていると、この実行データの値を利用して実行を開始することができる。すなわち、プログラムの実行の際、他の実行装置10a,10bにおける実行によって既に得られた値を利用してプログラムを実行することができる。
実行装置10b,10cも実行装置10aと同一の構成であるため、説明を省略する。なお、実行装置10b,10cの記憶装置11でも、実行装置10aの記憶装置11で記憶されているプログラムと同一のプログラムが記憶されている。
以下の説明では、主に実行装置10aを用いて説明するが、実行装置10aを適宜、実行装置10b,10cに代えることができる。また、図1に示すように、実行装置10aの識別子は「実行装置1」、実行装置10bの識別子は「実行装置2」、実行装置10cの識別子は「実行装置3」として説明する。
《監視装置》
監視装置20は、図1に示すように、記憶装置21、指令手段22、更新手段23、検出手段24及び割当手段25を備えている。
監視装置20は、図1に示すように、記憶装置21、指令手段22、更新手段23、検出手段24及び割当手段25を備えている。
監視装置20の記憶装置21では、例えば、図2(a)に示すようなプログラムの実行状態を管理するプログラム状態テーブルT1と、図3(a)に示すような実行装置10aにおける状態を管理する装置状態テーブルT2を記憶している。
プログラム状態テーブルT1では、プログラムがいずれかの実行装置10aで実行中又は実行予定のとき、プログラムの識別子に関連付けられるフラグが「1」となり、いずれの実行装置10aでも実行されていない又は実行予定でないときにフラグが「0」となる。図2(a)に示すプログラム状態テーブルT1からは、プログラム実行システム1aで実行されるプログラムはプログラム1〜7であり、現在は、実行装置10aでプログラム1,4を実行し、実行装置10bでプログラム2を実行し、実行装置10cでプログラム3を実行しており、プログラム5〜7は実行されていないことが分かる。
装置状態テーブルT2では、実行装置10aの識別子に装置の負荷を負荷率[%]で表している。また、実行装置10aの異常が検出されたとき、実行装置10aの識別子に関連付けられている異常のフラグが「1」となり、異常が検出されていないときにはフラグが「0」となる。図3(a)に示す装置状態テーブルT2からは、実行装置10aの負荷は「60%」、実行装置10bの負荷は「30%」、実行装置10cの負荷は「40%」であり、いずれの実行装置においても異常が発生していないことがわかる。負荷は負荷率[%]の他、レベルで表わす等、他の方法で表わすことができる。
指令手段22は、プログラム実行システム1aが起動すると、全ての実行装置10a〜10cに対し、プログラムの実行を要求するリクエストを送信する。指令手段22が送信するリクエストには、各実行装置10a〜10cに実行を要求するプログラムの識別子を含んでいる。例えば、監視装置20では、各プログラムに対し、起動時に実行させる実行装置10aを予め割り当ててプログラム状態テーブルT1に記憶しておき、指令手段22は、この割り当てを利用してリクエストを送信する。実行装置10aにプログラム1,4の実行を要求するリクエストを送信し、実行装置10bにプログラム2の実行を要求するリクエストを送信し、実行装置10cにプログラム3を実行するリクエストを送信すると、図2に示すプログラム状態テーブルT1の状態となる。
プログラムの実行の進行によって、プログラム実行システム1aで実行中であったプログラムの実行が終了したり、他のプログラムを実行する等、プログラムの実行は変化する。したがって、指令手段22は、このような状況に応じてリクエストを生成し送信する。例えば、新たにプログラム5を実行装置10aに実行させるとき、指令手段22は、実行装置10aにプログラム5の実行を要求するリクエストを送信する。このとき、プログラム状態テーブルT1は、図2(b)に示すようにプログラム5と関連付けられる実行状態のフラグが「1」になるとともに、プログラム5に実行装置10aの識別子が関連付けられる。また、図2(b)に示すプログラム状態テーブルT1では、プログラム4の実行は終了していることが分かる。
更新手段23は、定期的に実行装置10aから受信する負荷状況によって、装置状態テーブルT2において負荷状況を送信した実行装置10aの識別子に関連付けられる負荷の値を更新する。例えば、各実行装置10a〜10cの負荷が図3(a)に示す値であった場合に実行装置10aから負荷状況として「60%」を受信し、実行装置10cから負荷状況として「45%」を受信すると、更新手段23は、装置状態テーブルT2を図3(b)に示すように更新する。
上述したように、実行装置10aで異常が発生した場合、負荷状況を送信しない。したがって、検出手段24は、リクエストを送信した後又は前回負荷状況を受信してから所定の時間が経過しても実行装置10aから負荷状況を受信できないとき、実行装置10aに異常が発生したと検出する。
割当手段25は、検出手段24で実行装置10aの異常が検出されると、実行装置10aで実行していたプログラムの実行を他の実行装置10b,10cに割り当てるとともに、プログラム状態テーブルT1及び装置状態テーブルT2を更新する。
指令手段22は、割当手段25によってプログラムの割り当てが変更されてプログラム状態テーブルT1が更新されると、プログラムの実行が割り当てられた実行装置10aに、プログラムの実行を要求するリクエストを送信する。
例えば、プログラム状態テーブルT1が図2(b)に示す状態であり、装置状態テーブルT2が図3(b)に示す状態であったときに実行装置10cが異常であると、割当手段25は、実行装置10cで実行していたプログラム3を正常でない実行装置10a,10bのうちで負荷状況の低い実行装置10bに割り当て、プログラム状態テーブルT1を図3(b)に示すように更新する。また、図3(c)に示すように装置状態テーブルT2について、実行装置10cの識別子と関連付けられる異常フラグを「1」に変更するとともに、実行装置10cから入力した負荷状況に基づいて、実行装置10cの識別子と関連付けられる負荷を更新する。
なお、割当手段25は、装置状態テーブルT2で管理されている各実行装置10a〜10cの状態にばらつきが生じたとき、負荷の低い実行装置に負荷の高い実行装置で実行されているプログラムの一つを割り当てて、プログラムの割り当てを変更してもよい。
上述した実行装置10a〜10cは、中央処理装置(CPU)、記憶装置、メモリ等(図示せず)を備える一般的なコンピュータであって、記憶装置に記憶する実行プログラムをインストールすることで図1に示すように実行手段12及び通知手段13が実装される。また、監視装置20も一般的なコンピュータであって、記憶装置に記憶する監視プログラムをインストールすることで、図1に示すように指令手段22、更新手段23、検出手段24及び割当手段25が実装される。
《プログラム実行システムにおける処理》
図4に示すシーケンス図を用いて、プログラム実行システム1aにおいて実行される処理について説明する。
図4に示すシーケンス図を用いて、プログラム実行システム1aにおいて実行される処理について説明する。
プログラム実行システム1aが起動すると、監視装置20の指令手段22がプログラム状態テーブルT1から各プログラムの実行に関する初期状態を読み出し(S1)、各実行装置10a〜10cに実行を要求するプログラムの識別子とともに、リクエストを送信する(S2)。
各実行装置10a〜10cの実行手段12は、リクエストとともに受信した識別子で識別されるプログラムを実行する(S3)。このとき、実行手段12は、プログラムの実行による実行値を、定期的に実行データDに蓄積させる。
通知手段13は、実行装置10a〜10cにおける負荷状況を定期的に監視装置20に送信する(S4)。また、各交換手段14は、実行データDを他の実行装置10b〜10dに送信するとともに、他の実行装置10a〜10cから受信した実行データDを記憶装置11に記憶させる(S5)。
監視装置20の更新手段23は、受信した負荷状況で装置状態テーブルT2を更新する(S6)。監視装置20では、定期的に実行装置10a〜10cから負荷状況を受信するが、いずれかの実行装置10a〜10cから負荷状況を受信できないとき、この実行装置を異常であると検出する(S7)。
異常が検出されたとき、割当手段25は、異常が検出された実行装置で実行されていたプログラムを他の負荷の低い実行装置に割り当て(S8)、更新手段23は、装置状態テーブルT2を更新する(S9)。その後、指令手段22は、プログラムの実行を割り当てた実行装置にプログラムの実行を要求するリクエストを送信する(S10)。
リクエストを受信した実行装置の実行手段12は、リクエストに応じてプログラムを実行する(S11)。この後の処理は、上述したステップS3以降に説明した処理と同様の処理が進められる。
このように、プログラム実行システム1aにおいては、いずれかの実行装置10a〜10cで異常が発生すると、異常が発生した実行装置10aで実行していたプログラムを異常の発生していない実行装置10a,10cに実行させる。したがって、プログラム実行システム1a全体としては、実行すべきプログラムを中止することなく必要な処理を全て実行することができる。
また、実行装置10a〜10cでは、実行中に生成したデータ等を適宜、グローバルデータとして交換し、各実行装置10a〜10cで保持している。したがって、異常が発生した実行装置10aで実行していたプログラムを実行することになった他の実行装置10b,10cは、異常が発生した実行装置10aで異常発生前に生成したデータ(実行値)を活用することができる。
すなわち、プログラム実行システム1aは従来のように二重化運転によって各実行装置10a〜10cは同一のプログラムを実行しているのではなく、各実行装置10a〜10cは異なるプログラムを分散して実行しているとともに、プログラムの実行によって得られる実行値のみを共有している。すなわち、従来のように各システムで二重化運転するのではなく、各実行装置10a〜10cでプログラムの実行によって得られる実行値を相互に交換して記憶し、いずれかの実行装置で異常が発生した場合には、異常が発生した実行装置で得られた実行値を用いて他の実行装置が実行を継続する。したがって、各実行装置自体は二重化運転する従来のシステムのように高度な性能を有していなくても、異常が発生した場合にのみ代替して実行が可能となるため、簡易な構成の実行装置の組み合わせでプログラム実行システム1aを構成することが可能となる。
図1においては、実行装置10a〜10c及び監視装置20は1台のコンピュータで構成されているが、それぞれ複数のコンピュータで実現されていても同様である。例えば、監視装置20が2台のコンピュータによって構成されていてもよい。
また、図1では、プログラム実行システム1aは、3台の実行装置10a〜10cを有する例で説明したが、プログラム実行システム1aが有する実行装置の数は3台に限られない。
〈第2の実施形態〉
《プログラム実行システム》
本発明の第2の実施形態に係るプログラム実行システムは、図5に示すように、プログラムを実行する複数の実行装置10c〜10dを有している。第2の実施形態に係るプログラム実行システム1bを、図1を用いて上述した第1の実施形態に係るプログラム実行システム1aと比較すると、監視装置20を有さず、実行装置10aに代えて実行装置10dを有している点で異なり、実行装置10dの監視によって、各実行装置10b〜10dによってプログラムが実行される。
《プログラム実行システム》
本発明の第2の実施形態に係るプログラム実行システムは、図5に示すように、プログラムを実行する複数の実行装置10c〜10dを有している。第2の実施形態に係るプログラム実行システム1bを、図1を用いて上述した第1の実施形態に係るプログラム実行システム1aと比較すると、監視装置20を有さず、実行装置10aに代えて実行装置10dを有している点で異なり、実行装置10dの監視によって、各実行装置10b〜10dによってプログラムが実行される。
《実行装置》
実行装置10dは、図1に示すように、記憶装置11、監視ブロックb1及び実行ブロックb2を備えている。実行装置10dの記憶装置11は、第1の実施形態において上述したプログラム状態テーブルT1、装置状態テーブルT2、プログラム及び実行データDを記憶している。また、実行装置10dの監視ブロックb1では、図1を用いて上述した指令手段22、更新手段23、検出手段24及び割当手段25を備え、実行ブロックb2では、上述した実行手段12、通知手段13及び交換手段14を備えている。
実行装置10dは、図1に示すように、記憶装置11、監視ブロックb1及び実行ブロックb2を備えている。実行装置10dの記憶装置11は、第1の実施形態において上述したプログラム状態テーブルT1、装置状態テーブルT2、プログラム及び実行データDを記憶している。また、実行装置10dの監視ブロックb1では、図1を用いて上述した指令手段22、更新手段23、検出手段24及び割当手段25を備え、実行ブロックb2では、上述した実行手段12、通知手段13及び交換手段14を備えている。
実行装置10b,10cは、図5に示す実行装置10dと比較して、記憶装置11にプログラム状態テーブルT1及び装置状態テーブルT2を記憶せず、監視ブロックb1を備えていない点で異なる。すなわち、実行装置10b,10cは、図1を用いて上述した実行装置10aと同一の構成である。
上述した実行装置10dは、CPU、記憶装置、メモリ等(図示せず)を備える一般的なコンピュータであって、記憶装置に記憶する監視プログラムをインストールすることで図5に示すように監視ブロックb1が実装され、記憶装置に記憶する実行プログラムをインストールすることで図5に示すように実行ブロックb2が実装される。また、実行装置10b,10cも一般的なコンピュータであって、記憶装置に記憶する実行プログラムをインストールすることで、図5に示すように実行ブロックb2が実装される。
図1においては、プログラム実行システム1bは、3台の実行装置10b〜10dを有する例で説明したが、プログラム実行システム1bが有する実行装置の数は3台に限られない。
《プログラム実行システムにおける処理》
図6に示すシーケンス図を用いて、プログラム実行システム1bにおいて実行される処理について説明する。プログラム実行システム1bで、行われる処理は、図4を用いて上述したプログラム実行システム1aにおける処理と同一であるが、監視装置20が実行していた処理を、実行装置10dの監視ブロックb1において実行する。
図6に示すシーケンス図を用いて、プログラム実行システム1bにおいて実行される処理について説明する。プログラム実行システム1bで、行われる処理は、図4を用いて上述したプログラム実行システム1aにおける処理と同一であるが、監視装置20が実行していた処理を、実行装置10dの監視ブロックb1において実行する。
プログラム実行システム1bが起動されると、監視ブロックb1の指令手段22が実行装置10dのプログラム状態テーブルT1から初期状態を読み出し(S1)、各実行装置10b〜10dに実行を要求するプログラムの識別子とともに、リクエストを送信する(S2)。ここで、指令手段22は、実行装置10dに対しては、実行ブロックb2の実行手段12に対してリクエストを送信する。
各実行装置10b〜10dの実行手段12は、リクエストとともに受信した識別子で識別されるプログラムを実行する(S3)。このとき、実行手段12は、プログラムの実行による実行値を、定期的に実行データDに蓄積させる。
通知手段13は、実行装置10b〜10dにおける負荷状況を定期的に実行装置10dに送信する(S4)。ここで、実行装置10dの通知手段13は、監視ブロックb1に負荷状況を送信する。また、各交換手段14は、実行データDを他の実行装置10b〜10dに送信するとともに、他の実行装置10b〜10dから受信した実行データDを記憶装置11に記憶させる(S5)。
実行装置10dの更新手段23は、受信した負荷状況で装置状態テーブルT2を更新する(S6)。実行装置10dは、定期的に実行装置10b〜10dから負荷状況を受信するが、いずれかの実行装置10b〜10dから負荷状況を受信できないとき、この実行装置を異常であると検出する(S7)。
異常が検出されたとき、監視ブロックb1の割当手段25は、異常が検出された実行装置で実行されていたプログラムを他の負荷の低い実行装置に割り当て(S8)、更新手段23は、装置状態テーブルT2を更新する(S9)。その後、指令手段22は、プログラムの実行を割り当てた実行装置にプログラムの実行を要求するリクエストを送信する(S10)。
リクエストを受信した実行装置の実行手段12は、リクエストに応じてプログラムを実行する(S11)。この後の処理は、上述したステップS3以降に説明した処理と同様の処理が進められる。
このように、第2の実施形態に係るプログラム実行システム1bにおいても、第1の実施形態に係るプログラム実行システム1aと同様にいずれかの実行装置で異常が発生しても、実行すべきプログラムを中止することなく必要な処理を全て実行することができる。また、第2の実施形態に係るプログラム実行システム1aにおいても、異常が発生した実行装置からプログラムの実行を受け継いだ他の実行装置は、他の実行装置で異常発生前に生成したデータ(実行値)を活用することができる。さらに、第1の実施形態に係るプログラム実行システム1aと比較して、監視装置をいずれかの実行装置が兼ね備えているため、システム全体の構成を簡素化することができる。
したがって、第2の実施形態に係るプログラム実行システム1bも各実行装置自体は二重化運転する従来のシステムのように高度な性能を有していなくても、異常が発生した場合にのみ代替して実行が可能となるため、簡易な構成の実行装置の組み合わせで実現することが可能となる。
なお、図5においては、実行装置10dにのみ監視ブロックb1を有しているが、実行装置10b,10cでも監視ブロックb1を有する構成であってもよい。プログラム実行システム1bが有する全ての実行装置10b〜10dが監視ブロックb1を有する場合、実行装置10b〜10dに優先順位を定め、優先順位の高い実行装置10dの監視ブロックb1のみを起動させ、他の実行装置10b,10cでは監視ブロックb1は待機状態とし、実行ブロックb2のみを起動させる。このとき例えば、優先順位が2番目の実行装置10bは、監視ブロックb1を実行している実行装置10dの状態を監視して異常を検出した場合に監視ブロックb1を起動して他の実行装置10cの異常を監視するようにしてもよい。また、図5では、プログラム実行システム1bは、3台の実行装置10b〜10dを有する例で説明したが、プログラム実行システム1bが有する実行装置の数は3台に限られない。
1a…プログラム実行システム
10a〜10c…実行装置
11…記憶装置
12…実行手段
13…通知手段
14…通知手段
15…交換手段
20…監視装置
21…記憶装置
22…指令手段
23…更新手段
24…検出手段
25…割当手段
10a〜10c…実行装置
11…記憶装置
12…実行手段
13…通知手段
14…通知手段
15…交換手段
20…監視装置
21…記憶装置
22…指令手段
23…更新手段
24…検出手段
25…割当手段
Claims (6)
- プログラムを実行する複数の実行装置と、前記複数の実行装置におけるプログラムの実行状態を監視する監視装置とを有するプログラム実行システムであって、
前記実行装置は、
複数のプログラムを記憶するプログラム記憶部と、
リクエストに従って、指定されたプログラムを実行する実行手段と、
前記プログラムの実行によって生じた実行値を蓄積して記憶する実行データ記憶部と、
他の実行装置に前記実行値を送信するとともに、他の実行装置から受信する実行値を前記実行データ記憶部に追加する交換手段と、
前記プログラムの実行による負荷の状況を前記監視装置に通知する通知手段と、
を備え、
前記監視装置は、
前記プログラムの識別子と、前記プログラムを実行する実行装置の識別子とを関連付けるプログラム状態テーブルを記憶するプログラム状態テーブル記憶部と、
複数の実行装置の識別子と、前記実行装置における負荷とを関連付ける装置状態テーブルを記憶する装置状態テーブル記憶部と、
前記実行装置から、前記負荷の状況を受信すると、前記装置状態テーブルにおいて前記実行装置の識別子に関連付けられる負荷を受信した前記負荷に更新する更新手段と、
前記複数の実行装置の異常の発生を検出する検出手段と、
異常の発生した実行装置が検出されると、前記プログラム状態テーブル及び前記装置状態テーブルを参照し、前記異常の発生した実行装置で実行されていたプログラムの実行を負荷の低い他の実行装置に割り当てるとともに、前記装置状態テーブルを更新する割当手段と、
前記プログラムを割り当てた実行装置に、前記プログラムの実行を要求するリクエストを送信する指令手段と、
を備えていることを特徴とするプログラム実行システム。 - プログラムを実行する複数の実行装置が接続されるプログラム実行システムであって、
前記実行装置は、
複数のプログラムを記憶するプログラム記憶部と、
リクエストに従って、指定されたプログラムを実行する実行手段と、
前記プログラムの実行によって生じた実行値を蓄積して記憶する実行データ記憶部と、
他の実行装置に前記実行値を送信するとともに、他の実行装置から受信する実行値を前記実行データ記憶部に追加する交換手段と、
前記プログラムの実行による負荷の状況を通知する通知手段と、
を備え、
前記実行装置の少なくともいずれかは、更に、
前記プログラムの識別子と、前記プログラムを実行する実行装置の識別子とを関連付けるプログラム状態テーブルを記憶するプログラム状態テーブル記憶部と、
複数の実行装置の識別子と、前記実行装置における負荷とを関連付ける装置状態テーブルを記憶する装置状態テーブル記憶部と、
いずれかの実行装置から、前記負荷の状況を受信すると、前記装置状態テーブルにおいて前記実行装置の識別子に関連付けられる負荷を受信した前記負荷に更新する更新手段と、
前記複数の実行装置の異常の発生を検出する検出手段と、
異常の発生した実行装置が検出されると、前記プログラム状態テーブル及び前記装置状態テーブルを参照し、前記異常の発生した実行装置で実行されていたプログラムの実行を負荷の低い他の実行装置に割り当てるとともに、前記装置状態テーブルを更新する割当手段と、
前記プログラムを割り当てた実行装置に、前記プログラムの実行を要求するリクエストを送信する指令手段と、
を備えていることを特徴とするプログラム実行システム。 - 前記検出手段は、前記実行装置から所定時間に前記負荷の状況を受信しないときに前記実行装置を異常であると判定することを特徴とする請求項1又は2に記載のプログラム実行システム。
- プログラムを実行する複数の実行装置と、前記複数の実行装置を監視するとともに負荷の状況に応じて実行装置に実行させるプログラムを決定してリクエストを送信する監視装置とが接続されるプログラム実行システムで用いられる前記実行装置であって、
前記実行装置は、
複数のプログラムを記憶するプログラム記憶部と、
前記リクエストに従って、指定されたプログラムを実行する実行手段と、
前記プログラムの実行によって生じた実行値を蓄積して記憶する実行データ記憶部と、
他の実行装置に前記実行値を送信するとともに、他の実行装置から受信する実行値を前記実行データ記憶部に追加する交換手段と、
前記プログラムの実行による負荷の状況を前記監視装置に通知する通知手段と、
を備えることを特徴とする実行装置。 - プログラムを実行する複数の実行装置が接続されるプログラム実行システムで用いられる前記実行装置であって、
複数のプログラムを記憶するプログラム記憶部と、
リクエストに従って、指定されたプログラムを実行する実行手段と、
前記プログラムの実行によって生じた実行値を蓄積して記憶する実行データ記憶部と、
他の実行装置に前記実行値を送信するとともに、他の実行装置から受信する実行値を前記実行データ記憶部に追加する交換手段と、
前記プログラムの実行による負荷の状況を通知する通知手段と、
を備えることを特徴とする実行装置。 - 前記実行装置は更に、
前記プログラムの識別子と、前記プログラムを実行する実行装置の識別子とを関連付けるプログラム状態テーブルを記憶するプログラム状態テーブル記憶部と、
複数の実行装置の識別子と、前記実行装置における負荷とを関連付ける装置状態テーブルを記憶する装置状態テーブル記憶部と、
いずれかの実行装置から、前記負荷の状況を受信すると、前記装置状態テーブルにおいて前記実行装置の識別子に関連付けられる負荷を受信した前記負荷に更新する更新手段と、
前記複数の実行装置の異常の発生を検出する検出手段と、
異常の発生した実行装置が検出されると、前記プログラム状態テーブル及び前記装置状態テーブルを参照し、前記異常の発生した実行装置で実行されていたプログラムの実行を負荷の低い他の実行装置に割り当てるとともに、前記装置状態テーブルを更新する割当手段と、
前記プログラムを割り当てた実行装置に、前記プログラムの実行を要求するリクエストを送信する指令手段と、
を備えていることを特徴とする請求項5記載の実行装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007190597A JP2009026182A (ja) | 2007-07-23 | 2007-07-23 | プログラム実行システム及び実行装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007190597A JP2009026182A (ja) | 2007-07-23 | 2007-07-23 | プログラム実行システム及び実行装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009026182A true JP2009026182A (ja) | 2009-02-05 |
Family
ID=40397915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007190597A Abandoned JP2009026182A (ja) | 2007-07-23 | 2007-07-23 | プログラム実行システム及び実行装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009026182A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015087471A1 (en) * | 2013-12-13 | 2015-06-18 | International Business Machines Corporation | Framework to provide time bound execution of co-processor commands |
JP2016134056A (ja) * | 2015-01-21 | 2016-07-25 | 三菱電機株式会社 | 情報処理システム |
KR20170123324A (ko) * | 2015-04-03 | 2017-11-07 | 미쓰비시 덴키 빌딩 테크노 서비스 가부시키 가이샤 | 중계 장치 및 프로그램 |
KR101985807B1 (ko) * | 2018-11-15 | 2019-06-04 | 엘아이지넥스원 주식회사 | 장비 id를 이용한 동적 기능 할당방법 및 그를 위한 장치 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11184825A (ja) * | 1997-12-19 | 1999-07-09 | Mitsubishi Electric Corp | クラスタシステム |
JP2001155003A (ja) * | 1999-11-30 | 2001-06-08 | Ntt Comware Corp | サービス復旧システムおよびその記録媒体 |
-
2007
- 2007-07-23 JP JP2007190597A patent/JP2009026182A/ja not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11184825A (ja) * | 1997-12-19 | 1999-07-09 | Mitsubishi Electric Corp | クラスタシステム |
JP2001155003A (ja) * | 1999-11-30 | 2001-06-08 | Ntt Comware Corp | サービス復旧システムおよびその記録媒体 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015087471A1 (en) * | 2013-12-13 | 2015-06-18 | International Business Machines Corporation | Framework to provide time bound execution of co-processor commands |
US9817670B2 (en) | 2013-12-13 | 2017-11-14 | International Business Machines Corporation | Framework to provide time bound execution of co-processor commands |
US9898301B2 (en) | 2013-12-13 | 2018-02-20 | International Business Machines Corporation | Framework to provide time bound execution of co-processor commands |
JP2016134056A (ja) * | 2015-01-21 | 2016-07-25 | 三菱電機株式会社 | 情報処理システム |
KR20170123324A (ko) * | 2015-04-03 | 2017-11-07 | 미쓰비시 덴키 빌딩 테크노 서비스 가부시키 가이샤 | 중계 장치 및 프로그램 |
KR102048294B1 (ko) * | 2015-04-03 | 2019-11-25 | 미쓰비시 덴키 빌딩 테크노 서비스 가부시키 가이샤 | 중계 장치 및 프로그램 |
KR101985807B1 (ko) * | 2018-11-15 | 2019-06-04 | 엘아이지넥스원 주식회사 | 장비 id를 이용한 동적 기능 할당방법 및 그를 위한 장치 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7418627B2 (en) | Cluster system wherein failover reset signals are sent from nodes according to their priority | |
US7802127B2 (en) | Method and computer system for failover | |
JP5851503B2 (ja) | 高可用性仮想機械環境におけるアプリケーションの高可用性の提供 | |
US7853767B2 (en) | Dual writing device and its control method | |
JP5548647B2 (ja) | 計算機システムでの部分障害処理方法 | |
JP4695705B2 (ja) | クラスタシステムおよびノード切り替え方法 | |
US8112518B2 (en) | Redundant systems management frameworks for network environments | |
CN106980529B (zh) | 基板管理控制器资源管理的电脑系统 | |
JP2007172334A (ja) | 並列型演算システムの冗長性を確保するための方法、システム、およびプログラム | |
JP6130520B2 (ja) | 多重系システムおよび多重系システム管理方法 | |
EP2645635B1 (en) | Cluster monitor, method for monitoring a cluster, and computer-readable recording medium | |
JP6024138B2 (ja) | クラスタシステム | |
JP2009026182A (ja) | プログラム実行システム及び実行装置 | |
JP5056504B2 (ja) | 制御装置、情報処理システム、情報処理システムの制御方法および情報処理システムの制御プログラム | |
US9164825B2 (en) | Computing unit, method of managing computing unit, and computing unit management program | |
JP2015230720A (ja) | 計算機システム | |
JP2009223519A (ja) | クラスタシステム及び同システムにおいてマスタノードを選択する方法 | |
JP5332257B2 (ja) | サーバシステム、サーバ管理方法、およびそのプログラム | |
JP2008152552A (ja) | 計算機システム及び障害情報管理方法 | |
US10089200B2 (en) | Computer apparatus and computer mechanism | |
JP2014215622A (ja) | プラント監視システム及びプラント監視方法 | |
JP2018206170A (ja) | 制御装置及び仮想マシン生成方法 | |
JP6540142B2 (ja) | ベースボード管理コントローラ、情報処理システム及びベースボード管理コントローラの処理実行方法 | |
JP2015207239A (ja) | 制御システム、制御装置およびプログラム | |
JPS5839307A (ja) | プログラマブル・コントロ−ラ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090728 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101005 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101019 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20101119 |