説明

分散共有メモリ制御システム

【課題】同ネットワーク上で他のアプリケーション間通信を行うための帯域、および、過去のデータ群を記憶するための記憶容量を不足させることなく、各ノードにおける演算処理やデータの画面表示処理の遅延を抑制することができる分散共有メモリ制御システムを提供すること。
【解決手段】演算ノード11は、データ群を格納するときに、演算ノード11の共有メモリ13と、演算ノード11の記憶装置15と、各表示ノード12a〜12nの共有メモリ13a〜13nとに当該データ群を書込み、各表示ノード12a〜12nは、データ群を参照するときに、自ノードの共有メモリに該当データ群が格納されている場合には、自ノードの共有メモリから該当データ群を読込み、自ノードの共有メモリに該当データ群が格納されていない場合には、演算ノード11の記憶装置15から該当データ群を読込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークで相互に接続された複数のコンピュータノードがデータ群を共有する分散共有メモリ制御システムに関し、例えば、ダム制御システムにおけるダム諸量演算およびテレメータ諸量演算の結果をデータ群として複数のコンピュータノードが共有する分散共有メモリ制御システムに関する。
【背景技術】
【0002】
従来、この種の分散共有メモリ制御システムを適用したダム制御システムは、複数のコンピュータノード(以下、単に「ノード」と記載する。)によって構成されており、ノード間はLAN(Local Area Network)等のネットワークによって相互に接続されている。
【0003】
これらのノードのうち、特定のノードには、外部装置からダム水位、河川水位や各地点の雨量カウンタ値などが入力され、特定のノードは、1分毎、10分毎および1時間毎の平滑ダム水位、ダム流入量、ダム放流量などのダム諸量と、河川流量、10分雨量、1時間雨量などのテレメータ諸量とを演算し、さらにダム諸量およびテレメータ諸量の日集計データおよび月集計データを演算し、これら演算結果を表すデータ群を時系列で保存している。
【0004】
他の複数のノードは、特定のノードで演算されたデータのうち、最新のデータのみならず過去のデータも随時表示できるようになっており、ダムや河川の管理に有効利用されている。
【0005】
ダム諸量やテレメータ諸量の演算を行う場合には、過去のデータの加減乗除などが必要なために、1分前、10分前、1時間前、1日前および1ヶ月前のデータ群も必要になる。
【0006】
また、ダムや河川を管理するには、数年分以上のデータ群をシステム内部に保存しておき、過去のデータ群を利用しながら洪水予測を行うなど、過去のデータ群を利用する必要がある。
【0007】
さらに、近年のダム制御システムは、扱うデータ量も増加しているため、過去のデータ群を効率よく検索し、演算処理にかかる時間や画面表示処理にかかる時間を短縮するかが課題となっており、様々な取り組みがなされてきた。
【0008】
例えば、複数のノード間で共通のデータをリアルタイムに扱うことができるように日本電気工業会で規格化されたFL−netがある(例えば、非特許文献1参照)。FL−netでは、各ノードにコモンメモリが設けられ、各ノードがコモンメモリにデータを書込むと、そのデータが他のノードのコモンメモリにも瞬時に反映される。
【0009】
したがって、この規格に準拠すれば、あるノードがダム諸量やテレメータ諸量データを更新すると、他のノードがその更新内容を瞬時に参照し、リアルタイムに画面表示を更新することができる。
【0010】
また、大容量のデータを扱う場合には、ORACLE(登録商標)などのデータベースが利用される。近年のデータベースは、データ検索を高速化するためにインデックステーブルを利用するなど様々な工夫がなされている。
【先行技術文献】
【非特許文献】
【0011】
【非特許文献1】JISB3521(JEM1479)
【発明の概要】
【発明が解決しようとする課題】
【0012】
しかしながら、FL−netは、リアルタイムにデータを更新することを目的とするために、ノード間の通信にUDP/IP(User Datagram Protocol/Internet Protocol)を利用し、かつ、各ノードがサイクリックにデータ群をブロードキャストするため、同ネットワーク上でFL−net以外のアプリケーション間通信を行うための帯域が不足してしまうといった課題があった。
【0013】
また、FL−netは、コモンメモリの容量が8kビット+8kワード(合計17kバイト)に制限されているため、1ヶ月分のダム諸量やテレメータ諸量の演算結果などといった過去のデータ群を保存しようとすると、記憶容量が不足してしまうといった課題があった。
【0014】
一方、データベースは、大容量のデータを扱えるといった利点があるが、各ノードとデータベースサーバとがネットワークを介して情報のやり取りを行い、かつ、ハードディスクなどの記憶装置とデータを入出力するため、必然的にデータの読込み時間や書込み時間が増加してしまう。このため、データベースは、ダム諸量やテレメータ諸量の演算処理やデータの画面表示処理に遅延を生じさせてしまうといった課題があった。
【0015】
本発明は、上述したような従来の課題を解決するためになされたもので、同ネットワーク上で他のアプリケーション間通信を行うための帯域、および、過去のデータ群を記憶するための記憶容量を不足させることなく、各ノードにおける演算処理や画面表示処理の遅延を抑制することができる分散共有メモリ制御システムを提供することを目的とする。
【課題を解決するための手段】
【0016】
本発明の分散共有メモリ制御システムは、データ群を時系列に管理する複数のノードを備えた分散共有メモリ制御システムにおいて、前記各ノードは、特定期間のデータ群を格納するための共有メモリを有し、前記複数のノードのうち特定のノードは、前記特定期間以上のデータ群を格納するための記憶装置を有し、前記各ノードは、前記データ群を格納するときに、前記各ノードの共有メモリと、前記特定のノードの記憶装置とに該データ群を書込み、前記データ群を参照するときに、該ノードの共有メモリに該データ群が格納されている場合には、該共有メモリから該データ群を読込み、該ノードの共有メモリに該データ群が格納されていない場合には、前記特定のノードの記憶装置から該データ群を読込むように構成されている。
【0017】
この構成により、本発明の分散共有メモリ制御システムは、アクセス頻度が多い特定期間のデータ群を各ノードの共有メモリにそれぞれ格納させるようにしたため、同ネットワーク上で他のアプリケーション間通信を行うための帯域、および、過去のデータ群を記憶するための記憶容量を不足させることなく、各ノードにおける演算処理やデータの画面表示処理の遅延を抑制することができる。
【0018】
なお、前記特定期間は、最近の一定期間としてもよい。
【発明の効果】
【0019】
本発明は、同ネットワーク上で他のアプリケーション間通信を行うための帯域、および、過去のデータ群を記憶するための記憶容量を不足させることなく、各ノードにおける演算処理やデータの画面表示処理の遅延を抑制することができる分散共有メモリ制御システムを提供することができる。
【0020】
また、本発明は、各ノードが、アクセス頻度の多い特定期間のデータ群を自ノードの共有メモリからそれぞれ読込むことにより、ネットワークと記憶装置に対するアクセス頻度を低減させることで、データ演算処理やデータ表示処理にかかる時間を短縮することができる分散共有メモリ制御システムを提供することができる。
【0021】
また、本発明は、記憶装置が故障したとしても、各ノードの共有メモリを利用することで、テレメータ演算や特定期間(例えば、最近1ヶ月)のデータを表示する等の縮小運転で稼動を継続することができる分散共有メモリ制御システムを提供することができる。
【図面の簡単な説明】
【0022】
【図1】本発明の分散共有メモリ制御システムを適用した一実施の形態としてのダム制御システムのブロック図である。
【図2】本発明の一実施の形態に係る演算ノードのソフトウェア構造を示すブロック図である。
【図3】本発明の一実施の形態に係る表示ノードのソフトウェア構造を示すブロック図である。
【図4】本発明の一実施の形態に係る演算ノードの共有メモリのメモリマップの一例を示す概念図である。
【図5】本発明の一実施の形態に係る演算ノードの記憶装置のファイル構造の一例を示す概念図である。
【図6】本発明の分散共有メモリ制御システムを適用した一実施の形態としてのダム制御システムのデータ群の書込み動作を示すシーケンス図である。
【図7】本発明の一実施の形態に係る演算ノードの演算プロセスによって送信される書込み要求メッセージの構造を示す概念図である。
【図8】本発明の分散共有メモリ制御システムを適用した一実施の形態としてのダム制御システムのデータ群の読込み動作を示すシーケンス図である。
【図9】本発明の一実施の形態に係る表示ノードの表示プロセスによって送信される読込み要求メッセージの構造を示す概念図である。
【発明を実施するための形態】
【0023】
以下、本発明の実施の形態について、図面を参照して説明する。本発明の分散共有メモリ制御システムを適用した一実施の形態としてのダム制御システムを図1に示す。
【0024】
図1に示すように、本発明の一実施の形態としてのダム制御システム1は、演算ノード11と、表示ノード12a〜12nとを備えている。なお、図1において、3つの表示ノード12a、12b、12nが図示されているが、本発明の分散共有メモリ制御システムを構成するノードの数を限定するものではない。
【0025】
演算ノード11と、表示ノード12a〜12nとは、LAN16等のネットワークを介して相互に接続されている。演算ノード11は、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、ハードディスク装置、入力装置、表示装置およびネットワークモジュール等を有するパーソナルコンピュータまたはオフィスコンピュータなどの汎用的なコンピュータ装置によって構成されている。
【0026】
ROMおよびハードディスク装置には、当該コンピュータ装置を演算ノード11として機能させるためのプログラムが記憶されている。すなわち、CPUがRAMを作業領域としてROMおよびハードディスク装置に記憶されたプログラムを実行することにより、当該コンピュータ装置は、演算ノード11として機能する。
【0027】
また、RAMは、他のノードと共有するデータを格納する共有メモリ13を構成する。ハードディスク装置は、大容量のデータを格納することができる記憶装置15を構成する。なお、記憶装置15は、大容量のデータを格納することができるものであればよく、外付けの記憶媒体によって構成してもよい。
【0028】
演算ノード11には、ネットワークモジュールまたは他の通信ポートを介して、ダム水位、河川水位および各地点の雨量カウンタ値などを出力する外部装置14が接続されている。演算ノード11は、外部装置14から出力されたダム水位、河川水位および各地点の雨量カウンタ値などに基づいて、1分毎、10分毎および1時間毎の平滑ダム水位、ダム流入量、ダム放流量などを表すダム諸量と、河川流量、10分雨量、1時間雨量などを表すテレメータ諸量とを演算するようになっている。また、演算ノード11は、ダム諸量とテレメータ諸量との演算結果を表すデータ群を共有メモリ13と、記憶装置15とに格納するようになっている。
【0029】
各表示ノード12a、12b〜12nは、演算ノード11と同様に、CPU、RAM、ROM、ハードディスク装置、入力装置、表示装置およびネットワークモジュール等を有するパーソナルコンピュータまたはオフィスコンピュータなどの汎用的なコンピュータ装置によって構成されている。
【0030】
ROMおよびハードディスク装置には、当該コンピュータ装置を各表示ノード12a〜12nとして機能させるためのプログラムが記憶されている。すなわち、CPUがRAMを作業領域としてROMおよびハードディスク装置に記憶されたプログラムを実行することにより、当該コンピュータ装置は、各表示ノード12a〜12nとして機能する。また、各表示ノード12a〜12nにおけるRAMは、他のノードと共有するデータを格納する共有メモリ13a〜13nを構成する。
【0031】
図2は、演算ノード11のソフトウェア構造を示している。なお、本実施の形態においては、プログラムの単位をプロセスとするが、本発明においては、プログラムの単位をタスクやスレッドとしてもよい。
【0032】
演算ノード11は、共有メモリ13を制御するための共有メモリ制御プロセス21と、外部装置14から入力された情報を用いてダム諸量とテレメータ諸量と演算する演算プロセス22と、記憶装置15とデータ群の入出力を行う記憶装置制御プロセス23とを実行するようになっている。ここで、共有メモリ13は、共有メモリ制御プロセス21を介して演算ノード11によって実行される各プロセスによって参照される。
【0033】
図3は、表示ノード12aのソフトウェア構造を示している。表示ノード12aは、共有メモリ13aを制御するための共有メモリ制御プロセス21aと、演算ノード11によって演算された演算結果を表すデータ群を表示装置に表示させる表示プロセス31aとを実行するようになっている。ここで、共有メモリ13aは、共有メモリ制御プロセス21aを介して表示ノード12aによって実行される各プロセスによって参照される。
【0034】
ここで、他の表示ノード12b〜12nのソフトウェアも、図3に示す表示ノード12aのソフトウェアと同一の構造を有し、表示ノード12b〜12nは、共有メモリ制御プロセス21b〜21nと、表示プロセス31b〜31nとをそれぞれ実行するようになっている。
【0035】
なお、本実施の形態において、演算ノード11によって実行される共有メモリ制御プロセス21は、表示ノード12a〜12nによって実行される共有メモリ制御プロセス21a〜21nとLAN16を介してデータ群などのやり取りを行うものとする。
【0036】
図4は、演算ノード11の共有メモリ13のメモリマップの一例を示している。ここで、他の表示ノード12a〜12nの共有メモリ13a〜13nも、図4に示す演算ノード11の共有メモリ13と同一のメモリマップを有する。
【0037】
共有メモリ13には、演算ノード11によって演算された演算結果を表すデータ群を時系列に管理するためのインデックス領域41が割り当てられている。インデックス領域41には、特定期間(例えば、最近1ヶ月)分のデータ群を時系列に管理するためのインデックス情報が格納されている。
【0038】
各データ群に対するインデックス情報には、データ群の生成日時を表す日時情報と、データ群が格納されているデータ領域42のアドレスを表すデータ領域アドレスとが含まれる。ここで、日時情報は、秒単位で表すことができるものとする。
【0039】
データ領域42には、データ領域42に格納されているデータセット数と、データセット数分のデータセットとが含まれるデータ群が格納されている。各データセットには、当該データセットの種別を識別するための識別子と、データ値とが含まれている。
【0040】
ここで、識別子は、具体的には、1分毎、10分毎および1時間毎の平滑ダム水位、ダム流入量、ダム放流量などのダム諸量と、河川流量、10分雨量、1時間雨量などのテレメータ諸量とのなかで、データ値がどの量を表すものかを表している。
【0041】
図5は、記憶装置15のファイル構造の一例を示している。記憶装置15には、インデックスファイル51が格納されている。インデックスファイル51には、例えば、過去10年分のデータ群を時系列に管理するためのインデックス情報が格納されている。
【0042】
インデックス情報には、データ群の生成日時を表す日時情報と、データ群が格納されているデータファイル52の名前を表すデータファイル名とが含まれる。データファイル名が表すデータファイル52には、データファイル52に格納されているデータセット数と、データセット数分のデータセットとが含まれるデータ群が格納されている。各データセットには、当該データセットを識別するための識別子と、データ値とが含まれている。
【0043】
このように構成されたダム制御システム1のデータ群の書込み動作について図6を参照しながら説明する。
【0044】
まず、演算ノード11の演算プロセス22は、書込み要求メッセージ61を共有メモリ制御プロセス21に送る(ステップS1)。ここで、図7に示すように、書込み要求メッセージ61には、演算したデータ群の生成日時を表す日時情報と、データ群とが含まれる。データ群には、書込みを要求するデータセットの数を表す書込み要求データセット数、および、識別子とデータ値とのペアが書込み要求データセット数分格納される。
【0045】
図6において、書込み要求メッセージ61を受けた共有メモリ制御プロセス21は、共有メモリ13の記録情報を更新する(ステップS2)。具体的には、まず、共有メモリ制御プロセス21は、インデックス領域41の特定期間外の生成日時を表す日時情報を有するインデックス情報を削除するとともに、このインデックス情報に含まれるデータ領域アドレスが表す領域に割り当てられたデータ領域42を解放する。
【0046】
そして、共有メモリ制御プロセス21は、書込み要求メッセージ61に含まれる日時情報が表す生成日時が特定期間内であるか否かを判断し、この生成日時が特定期間内であると判断した場合には、書込み要求メッセージ61に含まれるデータ群を格納するためのデータ領域42を共有メモリ13内に確保し、確保したデータ領域42に当該データ群を書込むとともに、このデータ領域42を表すデータ領域アドレスと、書込み要求メッセージ61に含まれる日時情報とからなる新たなインデックス情報をインデックス領域41に書込む。
【0047】
次に、共有メモリ制御プロセス21は、記憶装置制御プロセス23に書込み要求メッセージ61を送る(ステップS3)。書込み要求メッセージ61を受けた記憶装置制御プロセス23は、記憶装置15の記録情報を更新する(ステップS4)。
【0048】
具体的には、記憶装置制御プロセス23は、書込み要求メッセージ61に含まれるデータ群を格納するためのデータファイル52を記憶装置15内に生成し、生成したデータファイル52に当該データ群を書込むとともに、このデータファイル52を表すデータファイル名と、書込み要求メッセージ61に含まれる日時情報とからなる新たなインデックス情報をインデックスファイル51に書込む。
【0049】
また、共有メモリ制御プロセス21は、表示ノード12a〜12nの各共有メモリ制御プロセス21a〜21nに書込み要求メッセージ61を送信する(ステップS5)。
【0050】
この書込み要求メッセージ61を受けた表示ノード12a〜12nの各共有メモリ制御プロセス21a〜21nは、共有メモリ制御プロセス21と同様に、各共有メモリ13a〜13nの記録情報を更新する(ステップS6)。
【0051】
以上のように、共有メモリ13、13a〜13nと記憶装置15との記録情報が更新される。
【0052】
次に、ダム制御システム1のデータ群の読込み動作について図8を参照しながら説明する。なお、以下の説明においては、表示ノード12aがデータ群の読込みを行う例について説明するが、他の表示ノード12b〜12nも同様に動作する。
【0053】
まず、表示ノード12aの表示プロセス31aは、共有メモリ13aのインデックス領域41の各インデックス情報を参照し、表示対象の日時情報のデータ群が共有メモリ13aに格納されているか否かを判断する(ステップS11)。ここで、共有メモリ13aに表示対象の日時情報のデータ群が格納されていると判断した場合には、表示プロセス31aは、共有メモリ13aのデータ領域42から該当するデータ群を読込む(ステップS12)。
【0054】
一方、共有メモリ13aに表示対象の日時情報のデータ群が格納されていないと判断した場合には、表示プロセス31aは、読込み要求メッセージ71を共有メモリ制御プロセス21aに送る(ステップS13)。ここで、図9に示すように、読込み要求メッセージ71には、読込みたいデータ群の生成日時、読込み要求データセット数、および、読込み要求データセット数分の識別子が格納される。
【0055】
図8において、読込み要求メッセージ71を受けた共有メモリ制御プロセス21aは、読込み要求メッセージ71を演算ノード11の共有メモリ制御プロセス21に送信し(ステップS14)、共有メモリ制御プロセス21は、読込み要求メッセージ71を記憶装置制御プロセス23に送る(ステップS15)。
【0056】
次に、記憶装置制御プロセス23は、読込み要求メッセージ71に含まれる日時情報に対応するデータファイル52を記憶装置15から検索し、検索したデータファイル52に記録されたデータ群を読込む(ステップS16)。
【0057】
次に、記憶装置制御プロセス23は、読込んだデータ群を共有メモリ制御プロセス21に送り(ステップS17)、共有メモリ制御プロセス21は、データ群を表示ノード12aに送信する(ステップS18)。
【0058】
このデータ群を受信した表示ノード12aの共有メモリ制御プロセス21aは、受信したデータ群を表示プロセス31aに送る(ステップS19)。このように、表示ノード12aの表示プロセス31aは、共有メモリ制御プロセス21aから受けたデータ群を表示装置に表示させることができる(ステップS20)。
【0059】
以上に説明したように、本発明の一実施の形態のダム制御システム1は、アクセス頻度が多い特定期間のデータ群を各ノード12、12a〜12nの共有メモリ13、13a〜13nにそれぞれ格納させるようにしたため、同ネットワーク上で他のアプリケーション間通信を行うための帯域、および、過去のデータ群を記憶するための記憶容量を不足させることなく、各ノード12、12a〜12nにおける演算処理やデータの画面表示処理の遅延を抑制することができる。
【0060】
なお、本実施の形態において、演算ノード11は、1つの演算プロセス22を実行し、各表示ノード12a〜12nは、1つの表示プロセス31a〜31nを実行するものとして説明したが、本発明において、演算ノード11は、複数の演算プロセスを実行するようにしてもよく、各表示ノード12a〜12nは、複数の表示プロセスを実行するようにしてもよい。
【符号の説明】
【0061】
1 ダム制御システム
11 演算ノード
12a〜12n 表示ノード
13、13a〜13n 共有メモリ
14 外部装置
15 記憶装置
16 LAN
21、21a〜21n 共有メモリ制御プロセス
22 演算プロセス
23 記憶装置制御プロセス
31a〜31n 表示プロセス
41 インデックス領域
42 データ領域
51 インデックスファイル
52 データファイル
61 書込み要求メッセージ
71 読込み要求メッセージ

【特許請求の範囲】
【請求項1】
データ群を時系列に管理する複数のノードを備えた分散共有メモリ制御システムにおいて、
前記各ノードは、特定期間のデータ群を格納するための共有メモリを有し、
前記複数のノードのうち特定のノードは、前記特定期間以上のデータ群を格納するための記憶装置を有し、
前記各ノードは、
前記データ群を格納するときに、前記各ノードの共有メモリと、前記特定のノードの記憶装置とに該データ群を書込み、
前記データ群を参照するときに、該ノードの共有メモリに該データ群が格納されている場合には、該共有メモリから該データ群を読込み、該ノードの共有メモリに該データ群が格納されていない場合には、前記特定のノードの記憶装置から該データ群を読込むことを特徴とする分散共有メモリ制御システム。
【請求項2】
前記特定期間は、最近の一定期間であることを特徴とする請求項1に記載の分散共有メモリ制御システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−14346(P2012−14346A)
【公開日】平成24年1月19日(2012.1.19)
【国際特許分類】
【出願番号】特願2010−149215(P2010−149215)
【出願日】平成22年6月30日(2010.6.30)
【出願人】(000004330)日本無線株式会社 (1,186)
【出願人】(310016131)株式会社ラントラスト (1)
【出願人】(000189486)上田日本無線株式会社 (29)
【Fターム(参考)】