(57)【特許請求の範囲】
【請求項１】
データ群を時系列に管理する複数のノードを備えた分散共有メモリ制御システムにおいて、
前記各ノードは、特定期間のデータ群を格納するための共有メモリを有し、
前記複数のノードのうち特定のノードは、前記特定期間以上の期間のデータ群を格納するための記憶装置を有し、
前記各ノードは、
書込み要求に基づきデータ群を格納するときに、前記書込み要求に含まれる前記データ群の生成日時が前記特定期間内である場合には、前記各ノードの共有メモリに前記生成日時を表す日時情報に対応付けて該データ群を書き込むとともに、前記特定のノードの記憶装置に前記生成日時を表す日時情報に対応付けて該データ群を書き込み、
参照対象の日時情報に基づき前記データ群を参照するときに、該ノードの共有メモリに前記参照対象の日時情報が対応付けられているデータ群が格納されている場合には、該共有メモリから該データ群を読込み、該ノードの共有メモリに前記参照対象の日時情報が対応付けられているデータ群が格納されていない場合には、前記特定のノードの記憶装置から前記参照対象の日時情報が対応付けられているデータ群を読込むことを特徴とする分散共有メモリ制御システム。
【請求項２】
前記特定期間は、最近の一定期間であることを特徴とする請求項１に記載の分散共有メモリ制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークで相互に接続された複数のコンピュータノードがデータ群を共有する分散共有メモリ制御システムに関し、例えば、ダム制御システムにおけるダム諸量演算およびテレメータ諸量演算の結果をデータ群として複数のコンピュータノードが共有する分散共有メモリ制御システムに関する。
【背景技術】
【０００２】
従来、この種の分散共有メモリ制御システムを適用したダム制御システムは、複数のコンピュータノード（以下、単に「ノード」と記載する。）によって構成されており、ノード間はＬＡＮ（Local Area Network）等のネットワークによって相互に接続されている。
【０００３】
これらのノードのうち、特定のノードには、外部装置からダム水位、河川水位や各地点の雨量カウンタ値などが入力され、特定のノードは、１分毎、１０分毎および１時間毎の平滑ダム水位、ダム流入量、ダム放流量などのダム諸量と、河川流量、１０分雨量、１時間雨量などのテレメータ諸量とを演算し、さらにダム諸量およびテレメータ諸量の日集計データおよび月集計データを演算し、これら演算結果を表すデータ群を時系列で保存している。
【０００４】
他の複数のノードは、特定のノードで演算されたデータのうち、最新のデータのみならず過去のデータも随時表示できるようになっており、ダムや河川の管理に有効利用されている。
【０００５】
ダム諸量やテレメータ諸量の演算を行う場合には、過去のデータの加減乗除などが必要なために、１分前、１０分前、１時間前、１日前および１ヶ月前のデータ群も必要になる。
【０００６】
また、ダムや河川を管理するには、数年分以上のデータ群をシステム内部に保存しておき、過去のデータ群を利用しながら洪水予測を行うなど、過去のデータ群を利用する必要がある。
【０００７】
さらに、近年のダム制御システムは、扱うデータ量も増加しているため、過去のデータ群を効率よく検索し、演算処理にかかる時間や画面表示処理にかかる時間を短縮するかが課題となっており、様々な取り組みがなされてきた。
【０００８】
例えば、複数のノード間で共通のデータをリアルタイムに扱うことができるように日本電気工業会で規格化されたＦＬ−ｎｅｔがある（例えば、非特許文献１参照）。ＦＬ−ｎｅｔでは、各ノードにコモンメモリが設けられ、各ノードがコモンメモリにデータを書込むと、そのデータが他のノードのコモンメモリにも瞬時に反映される。
【０００９】
したがって、この規格に準拠すれば、あるノードがダム諸量やテレメータ諸量データを更新すると、他のノードがその更新内容を瞬時に参照し、リアルタイムに画面表示を更新することができる。
【００１０】
また、大容量のデータを扱う場合には、ＯＲＡＣＬＥ（登録商標）などのデータベースが利用される。近年のデータベースは、データ検索を高速化するためにインデックステーブルを利用するなど様々な工夫がなされている。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】ＪＩＳＢ３５２１（ＪＥＭ１４７９）
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、ＦＬ−ｎｅｔは、リアルタイムにデータを更新することを目的とするために、ノード間の通信にＵＤＰ／ＩＰ（User Datagram Protocol/Internet Protocol）を利用し、かつ、各ノードがサイクリックにデータ群をブロードキャストするため、同ネットワーク上でＦＬ−ｎｅｔ以外のアプリケーション間通信を行うための帯域が不足してしまうといった課題があった。
【００１３】
また、ＦＬ−ｎｅｔは、コモンメモリの容量が８ｋビット＋８ｋワード（合計１７ｋバイト）に制限されているため、１ヶ月分のダム諸量やテレメータ諸量の演算結果などといった過去のデータ群を保存しようとすると、記憶容量が不足してしまうといった課題があった。
【００１４】
一方、データベースは、大容量のデータを扱えるといった利点があるが、各ノードとデータベースサーバとがネットワークを介して情報のやり取りを行い、かつ、ハードディスクなどの記憶装置とデータを入出力するため、必然的にデータの読込み時間や書込み時間が増加してしまう。このため、データベースは、ダム諸量やテレメータ諸量の演算処理やデータの画面表示処理に遅延を生じさせてしまうといった課題があった。
【００１５】
本発明は、上述したような従来の課題を解決するためになされたもので、同ネットワーク上で他のアプリケーション間通信を行うための帯域、および、過去のデータ群を記憶するための記憶容量を不足させることなく、各ノードにおける演算処理や画面表示処理の遅延を抑制することができる分散共有メモリ制御システムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明の分散共有メモリ制御システムは、データ群を時系列に管理する複数のノードを備えた分散共有メモリ制御システムにおいて、前記各ノードは、特定期間のデータ群を格納するための共有メモリを有し、前記複数のノードのうち特定のノードは、前記特定期間以上の期間のデータ群を格納するための記憶装置を有し、前記各ノードは、書込み要求に基づきデータ群を格納するときに、前記書込み要求に含まれる前記データ群の生成日時が前記特定期間内である場合には、前記各ノードの共有メモリに前記生成日時を表す日時情報に対応付けて該データ群を書き込むとともに、前記特定のノードの記憶装置に前記生成日時を表す日時情報に対応付けて該データ群を書き込み、参照対象の日時情報に基づき前記データ群を参照するときに、該ノードの共有メモリに前記参照対象の日時情報が対応付けられているデータ群が格納されている場合には、該共有メモリから該データ群を読込み、該ノードの共有メモリに前記参照対象の日時情報が対応付けられているデータ群が格納されていない場合には、前記特定のノードの記憶装置から前記参照対象の日時情報が対応付けられているデータ群を読込むように構成されている。
【００１７】
この構成により、本発明の分散共有メモリ制御システムは、アクセス頻度が多い特定期間のデータ群を各ノードの共有メモリにそれぞれ格納させるようにしたため、同ネットワーク上で他のアプリケーション間通信を行うための帯域、および、過去のデータ群を記憶するための記憶容量を不足させることなく、各ノードにおける演算処理やデータの画面表示処理の遅延を抑制することができる。
【００１８】
なお、前記特定期間は、最近の一定期間としてもよい。
【発明の効果】
【００１９】
本発明は、同ネットワーク上で他のアプリケーション間通信を行うための帯域、および、過去のデータ群を記憶するための記憶容量を不足させることなく、各ノードにおける演算処理やデータの画面表示処理の遅延を抑制することができる分散共有メモリ制御システムを提供することができる。
【００２０】
また、本発明は、各ノードが、アクセス頻度の多い特定期間のデータ群を自ノードの共有メモリからそれぞれ読込むことにより、ネットワークと記憶装置に対するアクセス頻度を低減させることで、データ演算処理やデータ表示処理にかかる時間を短縮することができる分散共有メモリ制御システムを提供することができる。
【００２１】
また、本発明は、記憶装置が故障したとしても、各ノードの共有メモリを利用することで、テレメータ演算や特定期間（例えば、最近１ヶ月）のデータを表示する等の縮小運転で稼動を継続することができる分散共有メモリ制御システムを提供することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の分散共有メモリ制御システムを適用した一実施の形態としてのダム制御システムのブロック図である。
【図２】本発明の一実施の形態に係る演算ノードのソフトウェア構造を示すブロック図である。
【図３】本発明の一実施の形態に係る表示ノードのソフトウェア構造を示すブロック図である。
【図４】本発明の一実施の形態に係る演算ノードの共有メモリのメモリマップの一例を示す概念図である。
【図５】本発明の一実施の形態に係る演算ノードの記憶装置のファイル構造の一例を示す概念図である。
【図６】本発明の分散共有メモリ制御システムを適用した一実施の形態としてのダム制御システムのデータ群の書込み動作を示すシーケンス図である。
【図７】本発明の一実施の形態に係る演算ノードの演算プロセスによって送信される書込み要求メッセージの構造を示す概念図である。
【図８】本発明の分散共有メモリ制御システムを適用した一実施の形態としてのダム制御システムのデータ群の読込み動作を示すシーケンス図である。
【図９】本発明の一実施の形態に係る表示ノードの表示プロセスによって送信される読込み要求メッセージの構造を示す概念図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施の形態について、図面を参照して説明する。本発明の分散共有メモリ制御システムを適用した一実施の形態としてのダム制御システムを図１に示す。
【００２４】
図１に示すように、本発明の一実施の形態としてのダム制御システム１は、演算ノード１１と、表示ノード１２ａ〜１２ｎとを備えている。なお、図１において、３つの表示ノード１２ａ、１２ｂ、１２ｎが図示されているが、本発明の分散共有メモリ制御システムを構成するノードの数を限定するものではない。
【００２５】
演算ノード１１と、表示ノード１２ａ〜１２ｎとは、ＬＡＮ１６等のネットワークを介して相互に接続されている。演算ノード１１は、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ハードディスク装置、入力装置、表示装置およびネットワークモジュール等を有するパーソナルコンピュータまたはオフィスコンピュータなどの汎用的なコンピュータ装置によって構成されている。
【００２６】
ＲＯＭおよびハードディスク装置には、当該コンピュータ装置を演算ノード１１として機能させるためのプログラムが記憶されている。すなわち、ＣＰＵがＲＡＭを作業領域としてＲＯＭおよびハードディスク装置に記憶されたプログラムを実行することにより、当該コンピュータ装置は、演算ノード１１として機能する。
【００２７】
また、ＲＡＭは、他のノードと共有するデータを格納する共有メモリ１３を構成する。ハードディスク装置は、大容量のデータを格納することができる記憶装置１５を構成する。なお、記憶装置１５は、大容量のデータを格納することができるものであればよく、外付けの記憶媒体によって構成してもよい。
【００２８】
演算ノード１１には、ネットワークモジュールまたは他の通信ポートを介して、ダム水位、河川水位および各地点の雨量カウンタ値などを出力する外部装置１４が接続されている。演算ノード１１は、外部装置１４から出力されたダム水位、河川水位および各地点の雨量カウンタ値などに基づいて、１分毎、１０分毎および１時間毎の平滑ダム水位、ダム流入量、ダム放流量などを表すダム諸量と、河川流量、１０分雨量、１時間雨量などを表すテレメータ諸量とを演算するようになっている。また、演算ノード１１は、ダム諸量とテレメータ諸量との演算結果を表すデータ群を共有メモリ１３と、記憶装置１５とに格納するようになっている。
【００２９】
各表示ノード１２ａ、１２ｂ〜１２ｎは、演算ノード１１と同様に、ＣＰＵ、ＲＡＭ、ＲＯＭ、ハードディスク装置、入力装置、表示装置およびネットワークモジュール等を有するパーソナルコンピュータまたはオフィスコンピュータなどの汎用的なコンピュータ装置によって構成されている。
【００３０】
ＲＯＭおよびハードディスク装置には、当該コンピュータ装置を各表示ノード１２ａ〜１２ｎとして機能させるためのプログラムが記憶されている。すなわち、ＣＰＵがＲＡＭを作業領域としてＲＯＭおよびハードディスク装置に記憶されたプログラムを実行することにより、当該コンピュータ装置は、各表示ノード１２ａ〜１２ｎとして機能する。また、各表示ノード１２ａ〜１２ｎにおけるＲＡＭは、他のノードと共有するデータを格納する共有メモリ１３ａ〜１３ｎを構成する。
【００３１】
図２は、演算ノード１１のソフトウェア構造を示している。なお、本実施の形態においては、プログラムの単位をプロセスとするが、本発明においては、プログラムの単位をタスクやスレッドとしてもよい。
【００３２】
演算ノード１１は、共有メモリ１３を制御するための共有メモリ制御プロセス２１と、外部装置１４から入力された情報を用いてダム諸量とテレメータ諸量と演算する演算プロセス２２と、記憶装置１５とデータ群の入出力を行う記憶装置制御プロセス２３とを実行するようになっている。ここで、共有メモリ１３は、共有メモリ制御プロセス２１を介して演算ノード１１によって実行される各プロセスによって参照される。
【００３３】
図３は、表示ノード１２ａのソフトウェア構造を示している。表示ノード１２ａは、共有メモリ１３ａを制御するための共有メモリ制御プロセス２１ａと、演算ノード１１によって演算された演算結果を表すデータ群を表示装置に表示させる表示プロセス３１ａとを実行するようになっている。ここで、共有メモリ１３ａは、共有メモリ制御プロセス２１ａを介して表示ノード１２ａによって実行される各プロセスによって参照される。
【００３４】
ここで、他の表示ノード１２ｂ〜１２ｎのソフトウェアも、図３に示す表示ノード１２ａのソフトウェアと同一の構造を有し、表示ノード１２ｂ〜１２ｎは、共有メモリ制御プロセス２１ｂ〜２１ｎと、表示プロセス３１ｂ〜３１ｎとをそれぞれ実行するようになっている。
【００３５】
なお、本実施の形態において、演算ノード１１によって実行される共有メモリ制御プロセス２１は、表示ノード１２ａ〜１２ｎによって実行される共有メモリ制御プロセス２１ａ〜２１ｎとＬＡＮ１６を介してデータ群などのやり取りを行うものとする。
【００３６】
図４は、演算ノード１１の共有メモリ１３のメモリマップの一例を示している。ここで、他の表示ノード１２ａ〜１２ｎの共有メモリ１３ａ〜１３ｎも、図４に示す演算ノード１１の共有メモリ１３と同一のメモリマップを有する。
【００３７】
共有メモリ１３には、演算ノード１１によって演算された演算結果を表すデータ群を時系列に管理するためのインデックス領域４１が割り当てられている。インデックス領域４１には、特定期間（例えば、最近１ヶ月）分のデータ群を時系列に管理するためのインデックス情報が格納されている。
【００３８】
各データ群に対するインデックス情報には、データ群の生成日時を表す日時情報と、データ群が格納されているデータ領域４２のアドレスを表すデータ領域アドレスとが含まれる。ここで、日時情報は、秒単位で表すことができるものとする。
【００３９】
データ領域４２には、データ領域４２に格納されているデータセット数と、データセット数分のデータセットとが含まれるデータ群が格納されている。各データセットには、当該データセットの種別を識別するための識別子と、データ値とが含まれている。
【００４０】
ここで、識別子は、具体的には、１分毎、１０分毎および１時間毎の平滑ダム水位、ダム流入量、ダム放流量などのダム諸量と、河川流量、１０分雨量、１時間雨量などのテレメータ諸量とのなかで、データ値がどの量を表すものかを表している。
【００４１】
図５は、記憶装置１５のファイル構造の一例を示している。記憶装置１５には、インデックスファイル５１が格納されている。インデックスファイル５１には、例えば、過去１０年分のデータ群を時系列に管理するためのインデックス情報が格納されている。
【００４２】
インデックス情報には、データ群の生成日時を表す日時情報と、データ群が格納されているデータファイル５２の名前を表すデータファイル名とが含まれる。データファイル名が表すデータファイル５２には、データファイル５２に格納されているデータセット数と、データセット数分のデータセットとが含まれるデータ群が格納されている。各データセットには、当該データセットを識別するための識別子と、データ値とが含まれている。
【００４３】
このように構成されたダム制御システム１のデータ群の書込み動作について図６を参照しながら説明する。
【００４４】
まず、演算ノード１１の演算プロセス２２は、書込み要求メッセージ６１を共有メモリ制御プロセス２１に送る（ステップＳ１）。ここで、図７に示すように、書込み要求メッセージ６１には、演算したデータ群の生成日時を表す日時情報と、データ群とが含まれる。データ群には、書込みを要求するデータセットの数を表す書込み要求データセット数、および、識別子とデータ値とのペアが書込み要求データセット数分格納される。
【００４５】
図６において、書込み要求メッセージ６１を受けた共有メモリ制御プロセス２１は、共有メモリ１３の記録情報を更新する（ステップＳ２）。具体的には、まず、共有メモリ制御プロセス２１は、インデックス領域４１の特定期間外の生成日時を表す日時情報を有するインデックス情報を削除するとともに、このインデックス情報に含まれるデータ領域アドレスが表す領域に割り当てられたデータ領域４２を解放する。
【００４６】
そして、共有メモリ制御プロセス２１は、書込み要求メッセージ６１に含まれる日時情報が表す生成日時が特定期間内であるか否かを判断し、この生成日時が特定期間内であると判断した場合には、書込み要求メッセージ６１に含まれるデータ群を格納するためのデータ領域４２を共有メモリ１３内に確保し、確保したデータ領域４２に当該データ群を書込むとともに、このデータ領域４２を表すデータ領域アドレスと、書込み要求メッセージ６１に含まれる日時情報とからなる新たなインデックス情報をインデックス領域４１に書込む。
【００４７】
次に、共有メモリ制御プロセス２１は、記憶装置制御プロセス２３に書込み要求メッセージ６１を送る（ステップＳ３）。書込み要求メッセージ６１を受けた記憶装置制御プロセス２３は、記憶装置１５の記録情報を更新する（ステップＳ４）。
【００４８】
具体的には、記憶装置制御プロセス２３は、書込み要求メッセージ６１に含まれるデータ群を格納するためのデータファイル５２を記憶装置１５内に生成し、生成したデータファイル５２に当該データ群を書込むとともに、このデータファイル５２を表すデータファイル名と、書込み要求メッセージ６１に含まれる日時情報とからなる新たなインデックス情報をインデックスファイル５１に書込む。
【００４９】
また、共有メモリ制御プロセス２１は、表示ノード１２ａ〜１２ｎの各共有メモリ制御プロセス２１ａ〜２１ｎに書込み要求メッセージ６１を送信する（ステップＳ５）。
【００５０】
この書込み要求メッセージ６１を受けた表示ノード１２ａ〜１２ｎの各共有メモリ制御プロセス２１ａ〜２１ｎは、共有メモリ制御プロセス２１と同様に、各共有メモリ１３ａ〜１３ｎの記録情報を更新する（ステップＳ６）。
【００５１】
以上のように、共有メモリ１３、１３ａ〜１３ｎと記憶装置１５との記録情報が更新される。
【００５２】
次に、ダム制御システム１のデータ群の読込み動作について図８を参照しながら説明する。なお、以下の説明においては、表示ノード１２ａがデータ群の読込みを行う例について説明するが、他の表示ノード１２ｂ〜１２ｎも同様に動作する。
【００５３】
まず、表示ノード１２ａの表示プロセス３１ａは、共有メモリ１３ａのインデックス領域４１の各インデックス情報を参照し、表示対象の日時情報のデータ群が共有メモリ１３ａに格納されているか否かを判断する（ステップＳ１１）。ここで、共有メモリ１３ａに表示対象の日時情報のデータ群が格納されていると判断した場合には、表示プロセス３１ａは、共有メモリ１３ａのデータ領域４２から該当するデータ群を読込む（ステップＳ１２）。
【００５４】
一方、共有メモリ１３ａに表示対象の日時情報のデータ群が格納されていないと判断した場合には、表示プロセス３１ａは、読込み要求メッセージ７１を共有メモリ制御プロセス２１ａに送る（ステップＳ１３）。ここで、図９に示すように、読込み要求メッセージ７１には、読込みたいデータ群の生成日時、読込み要求データセット数、および、読込み要求データセット数分の識別子が格納される。
【００５５】
図８において、読込み要求メッセージ７１を受けた共有メモリ制御プロセス２１ａは、読込み要求メッセージ７１を演算ノード１１の共有メモリ制御プロセス２１に送信し（ステップＳ１４）、共有メモリ制御プロセス２１は、読込み要求メッセージ７１を記憶装置制御プロセス２３に送る（ステップＳ１５）。
【００５６】
次に、記憶装置制御プロセス２３は、読込み要求メッセージ７１に含まれる日時情報に対応するデータファイル５２を記憶装置１５から検索し、検索したデータファイル５２に記録されたデータ群を読込む（ステップＳ１６）。
【００５７】
次に、記憶装置制御プロセス２３は、読込んだデータ群を共有メモリ制御プロセス２１に送り（ステップＳ１７）、共有メモリ制御プロセス２１は、データ群を表示ノード１２ａに送信する（ステップＳ１８）。
【００５８】
このデータ群を受信した表示ノード１２ａの共有メモリ制御プロセス２１ａは、受信したデータ群を表示プロセス３１ａに送る（ステップＳ１９）。このように、表示ノード１２ａの表示プロセス３１ａは、共有メモリ制御プロセス２１ａから受けたデータ群を表示装置に表示させることができる（ステップＳ２０）。
【００５９】
以上に説明したように、本発明の一実施の形態のダム制御システム１は、アクセス頻度が多い特定期間のデータ群を各ノード１２、１２ａ〜１２ｎの共有メモリ１３、１３ａ〜１３ｎにそれぞれ格納させるようにしたため、同ネットワーク上で他のアプリケーション間通信を行うための帯域、および、過去のデータ群を記憶するための記憶容量を不足させることなく、各ノード１２、１２ａ〜１２ｎにおける演算処理やデータの画面表示処理の遅延を抑制することができる。
【００６０】
なお、本実施の形態において、演算ノード１１は、１つの演算プロセス２２を実行し、各表示ノード１２ａ〜１２ｎは、１つの表示プロセス３１ａ〜３１ｎを実行するものとして説明したが、本発明において、演算ノード１１は、複数の演算プロセスを実行するようにしてもよく、各表示ノード１２ａ〜１２ｎは、複数の表示プロセスを実行するようにしてもよい。
【符号の説明】
【００６１】
１  ダム制御システム
１１  演算ノード
１２ａ〜１２ｎ  表示ノード
１３、１３ａ〜１３ｎ  共有メモリ
１４  外部装置
１５  記憶装置
１６  ＬＡＮ
２１、２１ａ〜２１ｎ  共有メモリ制御プロセス
２２  演算プロセス
２３  記憶装置制御プロセス
３１ａ〜３１ｎ  表示プロセス
４１  インデックス領域
４２  データ領域
５１  インデックスファイル
５２  データファイル
６１  書込み要求メッセージ
７１  読込み要求メッセージ
【図１】
0005647446.tif 000002
【図２】
0005647446.tif 000003
【図３】
0005647446.tif 000004
【図４】
0005647446.tif 000005
【図５】
0005647446.tif 000006
【図６】
0005647446.tif 000007
【図７】
0005647446.tif 000008
【図８】
0005647446.tif 000009
【図９】
0005647446.tif 000010