以下、本発明の構成を図面に示す最良の形態に基づいて詳細に説明する。
図1〜6に本発明のパラメータ設定システムの一実施形態を示す。この実施形態のパラメータ設定システム1は、ネットワークを介して接続されている処理要求ノード4と処理実行ノード5との間でのデータ通信の振る舞いを制御する通信制御手段として機能する送信制御部17及び受信制御部18を処理要求ノード4に、送信制御部30及び受信制御部31を処理実行ノード5にそれぞれ備え、データ通信の振る舞いを指定するパラメータを送信制御部17、30及び受信制御部18、31に対して設定するものである。各ノードに予め設定されている順位が付与された複数の単位、具体的には、テンプレート単位、アプリケーション単位、アプリケーション優先度単位、ノード単位、システム単位のそれぞれに対応したパラメータを記憶する記憶手段として機能するメモリ26と、パラメータの取得要求を示すパラメータ取得要求信号が入力されたことを契機にメモリ26から最高順位の単位に属するパラメータを送信制御部17、30及び受信制御部18、31に対して設定するパラメータ設定手段として機能するパラメータ管理部16、34とを備えている。
図1に示すように、パラメータ設定システム1は、伝送路2、3を介して相互に接続されている処理要求ノード4及び処理実行ノード5から構成されている。処理要求ノード4は、CPU6及びハードディスク7を備えている。また、処理実行ノード5は、CPU8及びハードディスク9を備えている。これらのノード間では分散処理が行なわれる。
処理要求ノード4、処理実行ノード5のそれぞれには複数種類のアプリケーションがハードディスク7、9にインストールされている。CPU6、8のそれぞれには入力装置10、11が接続されており、上記のアプリケーションは、入力装置10、11から入力された信号に応答して起動する。
処理要求ノード4と処理実行ノード5との間で分散処理を行なう場合には、例えば、CPU6上で動作するアプリケーション12が処理要求を発し、その処理要求を受けたCPU8のアプリケーション13が処理要求ノード4から送られてきた通信データに対して処理要求の内容に従って処理を実行する。そして、その処理が完了すると、アプリケーション13はその処理結果をアプリケーション12に送信する。なお、本実施形態では、処理要求ノード4のアプリケーション12と処理実行ノード5のアプリケーション13とで分散処理を行なう場合を例に挙げて説明するが、これに限ることなく、分散処理は、処理要求ノード4に存在する複数種類のアプリケーションと処理実行ノード5に存在する複数種類のアプリケーションとで行なうことも勿論可能であり、このような場合であっても本発明は言うまでもなく適用可能である。また、ネットワークを介して3つ以上のノードが相互に接続されており、これら全てのノードを用いて分散処理を行なうような場合であっても本発明は言うまでもなく適用可能である。
以下、処理要求ノード4の構成について説明する。CPU6は、ハードディスク7などの大容量記憶手段に格納されたプログラムを実行することによってファイルシステム14、入出力インターフェース15、パラメータ管理部16、送信制御部17、受信制御部18、送信実行部19、受信実行部20、及びNFSサーバ21として機能する。
ファイルシステム14は、処理要求ノード4のOSに備えられている機能であり、ハードディクスク7から所定のデータを読み出し、パラメータ保持用ディレクトリ22を形成する。パラメータ保持用ディレクトリ22は、送信制御部17、受信制御部18に対して設定されるパラメータを記憶するための記憶領域であり、このパラメータ保持用ディレクトリ22には、送信制御部17及び受信制御部18によって用いられるパラメータがディレクトリの階層構造によって段階的に記憶されている。なお、本実施形態では、上記の「OS」としては、JAVA(登録商標)を用いることができるOS、例えばLinuxあるいはWindowsXP(登録商標)などが使用可能である。
パラメータ保持用ディレクトリ22は、例えば、図2に示すように、アプリケーションに対して設定されているテンプレートを示す「templateInfo」ディレクトリ23、ノードを示す「nodeInfo」ディレクトリ24、アプリケーションを示す「apInfo」ディレクトリ25、及びシステム全体を示すシステムディレクトリ(図示省略)が最上位の階層に並列に配置され、「nodeInfo」ディレクトリ24の1段階下の階層に、自身の代表IPアドレスや他のノードの代表IPアドレスを示した複数のノードIPアドレスディレクトリが並列に配置され、「templateInfo」ディレクトリ23の1段階下の階層に、アプリケーションに対して設定されている複数のテンプレートのID番号で示した「1」ディレクトリ、「2」ディレクトリ、及び「3」ディレクトリなどの複数のテンプレートIDディレクトリが並列に配置され、「apInfo」ディレクトリ25の1段階下の階層に、アプリケーションの優先度を数字で示した「100」ディレクトリや「500」ディレクトリなどの複数のアプリケーション優先度ディレクトリが並列に配置され、アプリケーション優先度ディレクトリの1段階下の階層に、その優先度に属するアプリケーションをアプリケーション名で示した「CountupAP」ディレクトリ、「MessageAP」ディレクトリ、及び「TestAP」ディレクトリなどのアプリケーション個別ディレクトリがツリー構造で配置されることによって構成されている。そして、システムディレクトリ、ノードIPアドレスディレクトリ、テンプレートIDディレクトリ、アプリケーション優先度ディレクトリ、及びアプリケーション個別ディレクトリのそれぞれのディレクトリの中には「#properties」というパラメータ設定ファイルが設けられており、このファイルには送信制御部17、30や受信制御部18、31に対して設定されるパラメータが記述されている。
具体的には、システムディレクトリのパラメータ設定ファイル(以下、「システム全体用パラメータ設定ファイル」と称する)には、システム全体、すなわち、ネットワークに接続されている全てのノードにおいてデータ通信の振る舞いを同一にするためのパラメータが記述されている。
各ノードIPアドレスディレクトリのパラメータ設定ファイル(以下、「ノード用パラメータ設定ファイル」と称する)には、個々のノードに対して設定されるパラメータが記述されている。例えば、IPアドレスが「192.168.7.11」のノードIPアドレスディレクトリに属するノード用パラメータ設定ファイルには、処理要求ノード4に対して設定されるパラメータが記述されている。
各テンプレートIDディレクトリのパラメータ設定ファイル(以下、「テンプレート用パラメータ設定ファイル」と称する)には、個々のテンプレートに対して設定されるパラメータが記述されている。例えば、「1」ディレクトリのテンプレート用パラメータ設定ファイルには、ID番号が「1」のテンプレートに対して設定されるパラメータが記述されている。
各アプリケーション優先度ディレクトリのパラメータ設定ファイル(以下、「アプリケーション優先度用パラメータ設定ファイル」と称する)には、その優先度に属するアプリケーションに対して設定されるパラメータが記述されている。例えば、「100」ディレクトリのアプリケーション優先度用パラメータ設定ファイルには、優先度が「100」のアプリケーション(「CountupAP」及び「MessageAP」)に対して設定されるパラメータが記述されている。
各アプリケーション個別ディレクトリのパラメータ設定ファイル(以下、「アプリケーション用パラメータ設定ファイル」と称する)には、個々のアプリケーションに対して設定されるパラメータが記述されている。例えば、「MessageAP」ディレクトリのアプリケーション用パラメータ設定ファイルには、「MessageAP」という名称のアプリケーションに対して設定されるパラメータが記述されている。
なお、上記の「アプリケーションに対して設定されている複数のテンプレート」とは、例えば、1つのアプリケーションが複数の処理実行ノードに対して分散処理を依頼する場合、その処理実行ノードの数だけ設定されたテンプレートのことを示す。また、上記の「アプリケーションの優先度」とは、アプリケーションがデータ伝送を行なう際に、それぞれのデータに対して与えるものである。また、テンプレート用パラメータ設定ファイル、アプリケーション用パラメータ設定ファイル、アプリケーション優先度用パラメータ設定ファイル、及びノード用パラメータ設定ファイルはいずれも任意で設定しなくても良いが、システム全体用パラメータ設定ファイルはNFSサーバ21やNFSクライアント36といったネットワーク共有機能によってネットワークを介して接続されている全ノードを通して必ず共通のものが設定される。また、本実施形態では、テンプレート用パラメータ設定ファイルには、例えば伝送路2、3の両方を使用してデータ通信を行なうこと(以下、これを「2ルート通信」と称する)を示すパラメータが記述されており、それ以外のパラメータ設定ファイルには、伝送路2のみを使用してデータ通信を行なうこと(以下、これを「片ルート通信」と称する)を示すパラメータが記述されている例を挙げて説明する。しかし、本発明は、2ルート通信に限られるものではなく、片ルート通信のみを行なう場合であっても適用することが可能であり、この場合には、例えば全てのパラメータ設定ファイルに片ルート通信を示すパラメータを記述しておけば良い。また、上記の2ルート通信を示すパラメータと、例えば通信データが送達した否かを確認する送達確認機能をノードに付与するパラメータや通信データが所定のノードに送達しなかった場合に通信データを再送する再送機能をノードに付与するパラメータなどを併用することによってデータ通信の高信頼化及びQos保証を図ることもできる。
アプリケーション12は、入力装置10からCPU6に入力された分散処理開始信号を契機に、ハードディスク7に記憶されている所定のプログラムやデータに基づいて分散処理で用いる通信データを生成する。また、その通信データの本体部のメモリ領域に対して処理要求と処理実行ノード5の代表IPアドレスとを付与する。なお、本実施形態では、アプリケーション12が、通信データの本体部のメモリ領域に対して処理実行ノード5の代表IPアドレスを付与するようにしているが、これに限ることなく、入出力インターフェース15にて代表IPアドレスを付与するようにしても良い。
アプリケーション12は、通信データを入出力インターフェース15を介して送信制御部17に入力する。また、アプリケーション12は、分散処理開始信号が入力されたことを契機に信号をパラメータ管理部16に入力する。パラメータ管理部16は、アプリケーション12から信号が入力されたことを契機に、ファイルシステム14のパラメータ保持用ディレクトリ22から全てのパラメータ設定ファイルを読み出し、それらをディレクトリ22の階層構造に従って段階的にメモリ26上に保持する。
テンプレート用パラメータ設定ファイル、アプリケーション用パラメータ設定ファイル、アプリケーション優先度用パラメータ設定ファイル、ノード用パラメータ設定ファイル、及びシステム全体用パラメータ設定ファイルには予め順位が付与されている。換言すると、テンプレート単位、アプリケーション単位、アプリケーション優先度単位、ノード単位、システム単位のそれぞれに属するパラメータには予め順位が付与されている。具体的には、テンプレート用パラメータ設定ファイルの順位を1位とし、アプリケーション用パラメータ設定ファイルの順位を2位とし、アプリケーション優先度用パラメータ設定ファイルの順位を3位とし、ノード用パラメータ設定ファイルの順位を4位とし、システム全体用パラメータ設定ファイルの順位を5位として、パラメータ設定ファイルと順位との関係が記述された順位テーブル17aが送信制御部17のメモリ領域に保持されている。
送信制御部17は、通信データが入力されたことを契機に、メモリ領域から順位テーブル17aを読み出し、その順位テーブル17aに記述されている順位と、通信データの属性(例えば、テンプレートID、アプリケーション名、優先度、送信IPアドレス、受信IPアドレス)とに基づいてメモリ26に保持されているパラメータ設定ファイルの中からパラメータ設定ファイルを指定するとともに、パラメータ取得要求信号をパラメータ管理部16に入力する。
送信制御部17がメモリ26上のパラメータ設定ファイルを指定する場合、先ず、送信制御部17は、通信データの属性のテンプレートIDに対応したテンプレート用パラメータ設定ファイルがメモリ26内に存在しているか否かを識別する。存在していた場合には、そのテンプレート用パラメータ設定ファイルを指定する。存在していなかった場合には、通信データの属性のアプリケーション名に対応したアプリケーション用パラメータ設定ファイルがメモリ26内に存在しているか否かを識別する。存在していた場合には、そのアプリケーション用パラメータ設定ファイルを指定する。存在していなかった場合には、通信データの属性の優先度に対応したアプリケーション優先度用パラメータ設定ファイルがメモリ26内に存在しているか否かを識別する。存在していた場合には、そのアプリケーション優先度用パラメータ設定ファイルを指定する。存在していなかった場合には、送信IPアドレス、受信IPアドレスに対応したノード用パラメータ設定ファイルがメモリ26内に存在しているか否かを識別する。存在していた場合には、そのノード用パラメータ設定ファイルを指定する。存在していなかった場合には、システム全体用パラメータ設定ファイルを指定する。
パラメータ管理部16は、図3のフローチャートに示すように、アプリケーション12が起動したことを契機に(S1)、ファイルシステム14のパラメータ保持用ディレクトリ22から全てのパラメータ設定ファイルを読み出し(S2)、そのファイルをメモリ26に保持する(S3)。パラメータ管理部16は、送信制御部17から何らかの要求信号が入力されたか否かを常時監視しており(S4)、要求信号が入力されない間(S4;No)、待機状態となる(S5)。パラメータ管理部16は、送信制御部17から要求信号が入力された場合(S4;Yes)、その要求信号がパラメータの取得要求を示すパラメータ取得要求信号であるか否かの識別を行なう(S6)。そして、パラメータ管理部16は、入力された要求信号がパラメータ取得要求信号であると識別した場合(S6;Yes)、パラメータ取得要求信号に基づいて送信制御手段によって指定されたパラメータ設定ファイルからパラメータを抽出し、それを送信制御部17及び受信制御部18に対して設定する(S7)。パラメータ管理部16は、入力された要求信号がパラメータ取得要求信号ではないと識別した場合(S6;No)、その要求信号がパラメータの更新を指示する更新要求信号であるか否かの識別を行なう(S8)。そして、パラメータ管理部16は、入力された要求信号が更新要求信号であると識別した場合(S8;Yes)、ファイルシステム14のパラメータ保持用ディレクトリ22から改めて全てのパラメータ設定ファイルを読み出し、その読み出したファイルをメモリ26上に保持する(S2)。パラメータ管理部16は、入力された要求信号が更新要求信号ではないと識別した場合(S8;No)、その要求信号がパラメータ設定システム1の終了を指示する終了要求信号であるか否かの識別を行なう(S9)。そして、パラメータ管理部16は、入力された要求信号が終了要求信号であると識別した場合(S9;Yes)、全ての処理を終了する。入力された要求信号が終了要求信号ではないと識別した場合(S9;No)、送信制御部17から何らかの要求信号が入力されたか否かの監視を続行する(S4)。
送信制御部17は、図4のフローチャートに示すように、通信データが入力されると(S101)、先ず、その通信データに処理要求が付与されているか否かを識別する(S102)。処理要求が付与されていない場合(S102;No)、待機状態となる(S103)。処理要求が付与されていた場合(S102;Yes)、次に、新規の通信であるか否かを識別する(S103)。新規の通信ではなかった場合(S104;No)、送信制御部17及び受信制御部18は既存のパラメータを利用する(S105)。新規の通信の場合(S104;Yes)、送信制御部17は、メモリ26内の順位1位のパラメータ設定ファイルの存在を確認し(S106)、メモリ26内に順位1位のパラメータ設定ファイルが存在しない場合には(S107;No)、次の順位のパラメータ設定ファイルの存在を確認する(S108)。パラメータ設定ファイルが存在する場合には(S107;Yes)、送信制御部17及び受信制御部18は、そのパラメータ設定ファイルに記述されているパラメータを通信で利用するパラメータとして取得する(S109)。送信制御部17及び受信制御部18は、その取得したパラメータに基づいて処理を実行する(S110)。送信制御部17は、アプリケーション12から入力される要求の種類を識別しており、アプリケーション12から入力された要求が更新要求であった場合(S111;Yes)、現在設定されているパラメータを更新する(S112)。アプリケーション12から入力された要求が更新要求ではなく(S111;No)、アプリケーション12から入力された要求が終了要求であった場合(S113;Yes)、全ての処理を終了し、アプリケーション12から入力された要求が終了要求でなかった場合(S113;No)、通信データに処理要求が付与されているか否かの識別を再び行なう(S102)。
送信制御部17は、アドレステーブル27をメモリ領域に保持している。アドレステーブル27には、例えば処理実行ノード5に設定されている代表IPアドレスとサブIPアドレスとが対応付けられた状態で記述されている。例えば代表IPアドレスは伝送路2に対応しており、サブIPアドレスは伝送路3に対応している。送信制御部17は、パラメータ管理部16によってパラメータが設定されたことを契機にメモリ領域からアドレステーブル27を読み出す。そして、このアドレステーブル27に基づいて通信データを複製する。これにより伝送路の数だけ通信データが生成される。つまり、本実施形態では、2つの通信データが生成される。
送信制御部17は、2つの通信データをパケット化し、通信データごとのパケットのヘッダにパケットの順序を示すシーケンス番号を付与する。さらに、一方の通信データの各パケットのヘッダに代表IPアドレスを、他方の通信データの各パケットのヘッダにサブIPアドレスを付与する。
送信実行部17は、代表IPアドレスが付与されたパケットを通信プロトコル40、例えば、TCP/IPに従って伝送路2を用いて処理実行ノード5に送信するとともに、サブIPアドレスが付与されたパケットを通信プロトコル40に従って伝送路3を用いて処理実行ノード5に送信する。
受信制御部18は、受信実行部20で受信したパケットが後着したものであるか否かを判断する。すなわち、受信制御部18は、先着パケットのシーケンス番号を記録するログファイル28を有し、受信実行部20が受信したパケットのヘッダ内のシーケンス番号を読み取って、シーケンス番号がログファイル28に存在するか否かを確認する。ログファイル28に存在しなければ、受信パケットは過去に受信したことにない先着パケットであると判断し、そのシーケンス番号をログファイル28に書き込む。これにより、次回同一のパケットが受信された場合に、当該パケットが後着であることがログファイル28により確認できる。一方、受信パケットのシーケンス番号が既にログファイル28にある場合は、過去に受信されたパケットと同一の後着パケットであると判断し、廃棄する。さらに、受信制御部18は、パケットのヘッダからIPアドレスを取り除き、シーケンス番号に従ってパケットを繋ぎ合わせて通信データを復元する。そして、その通信データを入出力インターフェース15を介してアプリケーション12に送る。なお、アプリケーション12、入出力インターフェース15及び受信制御部18は、処理要求ノード4の代表IPアドレスを認識しており、受信実行部20で受信した通信データにおいて、通信データの本体部に代表IPアドレスが付与されている通信データに対してのみ処理を実行するように構成されている。
NFSサーバ21は、処理要求ノード4のOSの機能の一部あるいはプログラムとしてハードディスク7にインストールされており、CPU6起動時にハードディスク7から読み出され、起動する。通信機能(図示省略)を用いることにより遠隔のNFSクライアント36に対してファイルシステム14のパラメータ保持用ディレクトリ22を公開する。
次に、処理実行ノード5の構成について説明する。CPU8は、ハードディスク9などの大容量記憶手段に格納されたプログラムを実行することによって入出力インターフェース29、送信制御部30、受信制御部31、送信実行部32、受信実行部33、パラメータ管理部34、ファイルシステム35、及びNFSクライアント36として機能する。なお、CPU6及びCPU8は、入出力インターフェース29、送信制御部30、受信制御部31、送信実行部32、受信実行部33、パラメータ管理部34、及びファイルシステム35は、CPU6における入出力インターフェース15、送信制御部17、受信制御部18、送信実行部19、受信実行部20、パラメータ管理部16、及びファイルシステム14と同一の機能を有しているので、以下、上記の説明と重複する部分の説明は省略し、上記で説明した機能と異なる機能についてのみ説明する。
NFSクライアント36は、処理実行ノード5のOSの機能の一部あるいはプログラムとしてハードディスク9にインストールされており、CPU8起動時にハードディスク9から読み出され、起動する。処理要求ノード4のNFSサーバ21と通信を行なうことにより、NFSサーバ21が公開したパラメータ保持用ディレクトリ22をファイルシステム35のマウントポイントにマウントする。
パラメータ管理部34は、アプリケーション13から信号が入力されたことを契機に、ファイルシステム35のパラメータ保持用ディレクトリ22から全てのパラメータ設定ファイルを読み出し、それらをメモリ37上に保持する。そして、パラメータ管理部34は、入力装置11からの入力された信号に応答して送信制御部30及び受信制御部31に対してパラメータを設定する。
受信制御部31は、受信実行部33で受信したパケットが後着したものであるか否かをログファイル38を用いて判断し、後着したものについては廃棄し、先着したパケットを元の通信データに復元して、入出力インターフェース29を介してアプリケーション13に入力する。なお、アプリケーション13、入出力インターフェース29及び受信制御部31は、処理実行ノード5の代表IPアドレスを認識しており、受信実行部31で受信した通信データにおいて、通信データの本体部に代表IPアドレスが付与されている通信データに対してのみ処理を実行するように構成されている。
アプリケーション13は、通信データに付与された処理要求の内容に従って処理を実行する。そして、その処理が完了すると、通信データを生成し、その通信データの本体部のメモリ領域に対して処理結果と処理要求ノード4の代表IPアドレスとを付与する。アプリケーション13は、通信データを入出力インターフェース29を介して送信制御部30に入力する。なお、本実施形態では、アプリケーション13が、通信データの本体部のメモリ領域に対して処理要求ノード4の代表IPアドレスを付与するようにしているが、これに限ることなく、入出力インターフェース29にて代表IPアドレスを付与するようにしても良い。
送信制御部30は、アドレステーブル39をメモリ領域に保持している。アドレステーブル39には、例えば処理要求ノード4に設定されている代表IPアドレスとサブIPアドレスとが対応付けられた状態で記述されている。代表IPアドレスは伝送路2に対応しており、サブIPアドレスは伝送路3に対応している。送信制御部30は、アプリケーション13から通信データが入力されたことを契機にメモリ領域からアドレステーブル39を読み出す。そして、このアドレステーブル39に基づいて通信データを複製する。これにより伝送路の数だけ通信データが生成される。つまり、本実施形態では、同一の通信データが2つ生成される。
送信制御部30は、2つの通信データをパケット化し、通信データごとのパケットのヘッダにパケットの順序を示すシーケンス番号を付与する。さらに、一方の通信データの各パケットのヘッダに代表IPアドレスを、他方の通信データの各パケットのヘッダにサブIPアドレスを付与する。
送信実行部32は、代表IPアドレスが付与されたパケットを通信プロトコル(例えば、TCP/IP)に従って伝送路2を用いて処理要求ノード4に送信するとともに、サブIPアドレスが付与されたパケットを通信プロトコルに従って伝送路3を用いて処理要求ノード4に送信する。
次に、処理要求ノード4での処理の流れを図5のフローチャートを参照しながら説明する。アプリケーション12が通信データを生成する(S201)。アプリケーション12は通信データのメモリ領域に処理要求を付与する(S202)。送信制御部17は、通信データの属性を参照してパラメータを決定する(S203)。そのパラメータが2ルート通信を示すものである場合(S204;Yes)、通信データを複製する(S205)。各通信データをパケット化する(S206)。通信データ毎のパケットのヘッダにパケットの順序を示すシーケンス番号を付与する(S207)。アドレステーブル27に基づいて一方の通信データの各パケットのヘッダに処理実行ノード5の代表IPアドレスを付与し、他方の通信データの各パケットのヘッダに処理実行ノード5のサブIPアドレスを付与する(S208)。他方、パラメータが片ルート通信を示すものである場合(S204;No)、通信データをパケット化する(S209)。各パケットのヘッダにパケットの順序を示すシーケンス番号を付与する(S210)。各パケットのヘッダに処理実行ノード5の代表IPアドレスを付与する(S211)。送信実行部19は、各パケットのヘッダに付与された代表IPアドレスあるいはサブIPアドレスに従ってデータ通信を行なう。具体的には、ヘッダに代表IPアドレスが付与されたパケットは、伝送路2を経由して処理実行ノード5に送られ、ヘッダにサブIPアドレスが付与されたパケットは、伝送路3を経由して処理実行ノード5に送られる(S212)。受信制御部18では、処理実行ノード5からの返信の通信データが受信実行部20で受信されずに(S213;No)、予め定められた制限時間が経過していない場合(S214;No)、待機状態となる(S215)。処理実行ノード5から返信の通信データが受信実行部20で受信されずに(S213;No)、予め定められた制限時間が経過した場合(S214;Yes)、エラー処理を行ない(S216)、全ての処理を終了する。他方、処理実行ノード5から返信の通信データを受信実行部20で受信した場合(S213;Yes)、受信制御部18は、受信実行部20で受信したパケットが後着であるか否かをログファイル28を用いて判断し、後着パケットである場合(S217;Yes)、パケットを廃棄する(S218)。先着パケットである場合(S217;No)、そのパケットのヘッダからIPアドレスを外す(S219)。そして、パケットをシーケンス番号に従って繋ぎ合わせて、処理実行ノード5のアプリケーション13が生成した通信データに復元する(S220)。受信制御部18は、その通信データを入出力インターフェース16に入力する(S221)。入出力インターフェース16は、通信データからアプリケーション13での処理結果を抽出し(S222)、その処理結果をアプリケーション12に送る(S223)。
次に、処理実行ノード5での処理の流れを図6のフローチャートを参照しながら説明する。受信制御部31は、受信実行部33でパケットを受信し(S301)、そのパケットが後着パケットであるか否かをログファイル38を用いて判断し、後着パケットである場合(S302;Yes)、パケットを廃棄する(S303)。先着パケットである場合(S302;No)、そのパケットのヘッダからIPアドレスを外す(S304)。そして、パケットをシーケンス番号に従って繋ぎ合わせて、処理要求ノード4のアプリケーション12が生成した通信データに復元する(S305)。受信制御部31は、その通信データを入出力インターフェース29に入力する(S306)。入出力インターフェース29は、通信データからアプリケーション12の処理要求を抽出し(S307)、その処理要求をアプリケーション13に送る(S308)。アプリケーション13は処理要求の内容に従って処理を実行する(S309)。処理が完了すると(S310)、アプリケーション13は通信データを生成し(S311)、通信データのメモリ領域に処理結果を付与する(S312)。送信制御部30は、通信データの属性を参照してパラメータを決定する(S313)。そのパラメータが2ルート通信を示すものである場合(S314;Yes)、通信データを複製する(S315)。各通信データをパケット化する(S316)。通信データ毎のパケットのヘッダにパケットの順序を示すシーケンス番号を付与する(S317)。アドレステーブルに基づいて一方の通信データの各パケットのヘッダに処理要求ノード4の代表IPアドレスを付与し、他方の通信データの各パケットのヘッダに処理要求ノード4のサブIPアドレスを付与する(S318)。他方、パラメータが片ルート通信を示すものである場合(S314;No)、通信データをパケット化する(S319)。各パケットのヘッダにパケットの順序を示すシーケンス番号を付与する(S320)。各パケットのヘッダに処理要求ノード4の代表IPアドレスを付与する(S321)。送信実行部19は、各パケットのヘッダに付与された代表IPアドレスあるいはサブIPアドレスに従ってデータ通信を行なう。具体的には、ヘッダに代表IPアドレスが付与されたパケットは、伝送路2を経由して処理要求ノード4に送られ、ヘッダにサブIPアドレスが付与されたパケットは、伝送路3を経由して処理要求ノード4に送られる(S322)。
以上のように、本発明のパラメータ設定システム1によれば、複数種類のパラメータ設定ファイルのうち、最高順位のパラメータ設定ファイル属するパラメータが送信制御部17、30及び受信制御部18、31に対して設定されるので、送信制御部17、30及び受信制御部18、31によって行なわれるデータ通信の振る舞いを状況に応じて柔軟に制御することができる。つまり、テンプレート単位、アプリケーション単位、アプリケーション優先度単位、ノード単位、システム単位でのパラメータ設定が可能となるので、データ通信の振る舞いを精密に制御することができる。さらに詳しくは、各パラメータ設定ファイルの有無をテンプレート用パラメータ設定ファイル、アプリケーション用パラメータ設定ファイル、アプリケーション優先度用パラメータ設定ファイル、ノード用パラメータ設定ファイル、システム全体用パラメータ設定ファイルの順序で確認し、テンプレート用パラメータ設定ファイルが存在する場合には、テンプレート用パラメータ設定ファイルのパラメータを送信制御部17、30及び受信制御部18、31に対して設定し、テンプレート用パラメータ設定ファイルが存在せずに、アプリケーション用パラメータ設定ファイルが存在する場合には、アプリケーション用パラメータ設定ファイルのパラメータを送信制御部17、30及び受信制御部18、31に対して設定する。また、テンプレート用パラメータ設定ファイルとアプリケーション用パラメータ設定ファイルとが存在せず、アプリケーション優先度用パラメータ設定ファイルが存在する場合には、アプリケーション優先度用パラメータ設定ファイルのパラメータを送信制御部17、30及び受信制御部18、31に対して設定する。更に、テンプレート用パラメータ設定ファイル、アプリケーション用パラメータ設定ファイル、及びアプリケーション優先度用パラメータ設定ファイルが存在せず、ノード用パラメータ設定ファイルが存在する場合には、ノード用パラメータ設定ファイルのパラメータを送信制御部17、30及び受信制御部18、31に対して設定する。テンプレート用パラメータ設定ファイル、アプリケーション用パラメータ設定ファイル、アプリケーション優先度用パラメータ設定ファイル、及びノード用パラメータ設定ファイルが存在しない場合にはシステム全体用パラメータ設定ファイルのパラメータを送信制御部17、30及び受信制御部18、31に対して設定することができる。これにより、きめ細かいパラメータ設定を行なうことが可能となり、データ通信の高信頼化を図ることができる。
なお、上述の形態は本発明の好適な形態の一例ではあるがこれに限定されるものではなく本発明の要旨を逸脱しない範囲において種々変形実施可能である。例えば上記実施形態では、テンプレート用パラメータ設定ファイルには、2ルート通信を示すパラメータが記述されており、それ以外のパラメータ設定ファイルには、片ルート通信を示すパラメータが記述されている例を挙げて説明したが、これに限ることなく、「1」ディレクトリに属するテンプレート用パラメータ設定ファイルには、片ルート通信を示すパラメータが記述されており、「2」ディレクトリ及び「3」ディレクトリのそれぞれに属する各テンプレート用パラメータ設定ファイルには、2ルート通信を示すパラメータが記述されていても良い。この場合、例えば、「1」ディレクトリに属するテンプレート用パラメータ設定ファイルのパラメータが処理要求ノード4と第1の処理実行ノード(図示省略)との間で行なわれるデータ通信で用いられ、「2」ディレクトリに属するテンプレート用パラメータ設定ファイルのパラメータが処理要求ノード4と第2の処理実行ノード(図示省略)との間で行なわれるデータ通信で用いられ、「3」ディレクトリに属するテンプレート用パラメータ設定ファイルのパラメータが処理要求ノード4と第3の処理実行ノード図示省略)との間で行なわれるデータ通信で用いられるとすると、処理要求ノード4と第1の処理実行ノードとの間で行なわれるデータ通信は、片ルート通信で行なわれ、処理要求ノード4と第2の処理実行ノードとの間で行なわれるデータ通信、及び処理要求ノード4と第3の処理実行ノードとの間で行なわれるデータ通信は、2ルート通信で行なわれることになる。
以下に本発明のデータ伝送システムを電力送電系統での遠隔運用保守などに適用する例について説明する。
電力自由化の進展に伴い、様々な電力機器間やアプリケーション間、さらには電力会社間の連携(相互接続性)の重要性が増してくるものと考えられる。このような連携を実現するには、情報通信アーキテクチャ(プラットフォーム)の標準化(統一)が必要である。また、分散型電源のような多数の機器が系統に接続されると、集中的な制御に比べ、自律的な分散制御(参照;C. Rehtanz, Autonomous Systems and Intelligent Agents in Power System Control and Protection, Springer, 2003)が有効となる場合も考えられる。そこで、相互接続性を実現するため、電力機器の国際標準情報モデルや汎用インターネット技術を適用するとともに、自律分散型処理の可能なモバイルエージェント技術などを適用した情報通信アーキテクチャである、分散リアルタイムネットワークアーキテクチャ(DRNA:Distributed Real-time computer Network Architecture)の開発を進めている(参照;「分散リアルタイムネットワークアーキテクチャ(DRNA)の開発 (その1) −アーキテクチャの要件と機能概要−」,電力中央研究所研究報告R02013,2003年3月)。DRNAは,図 7に示すような4つの要素からなる構造となっており,各構成要素は,それぞれ次のような機能を持つ。
1.応用プログラムおよび情報モデル層: 電力系統機器のオブジェクトモデル,及び監視制御に用いるアプリケーションプログラム。
2.高度通信機能層: 一般の上位プロトコルにおいて、状況の変化に対応して自律的に動作し,様々な通信形態の基盤を提供する.高度通信機能は、通信機能を主として担う「高度通信機能ミドルウェア」と、エージェントによる情報処理を担う「エージェントプラットフォーム」から構成される。本実施例では、高度通信機能ミドルウェアについて述べる。
3.伝達通信機能層: 一般の下位プロコルにおいて、IP (Internet Protocol) 技術に基づいて基本的な通信と通信品質 (QoS: Quality of Service) の制御を行う。
4.通信管理・セキュリティ機能: DRNAの各要素が正常に動作するための支援を行う。
現在の電力通信網では,系統監視や給電運用などの設備運用・保全システムのアプリケーション毎に通信網が構成されているが,効率的な通信網の活用やコスト低減の観点から,将来は各種の監視制御システム(すなわちアプリケーション)のデータ伝送を統合する,すなわち統合IP網を構築することが望ましい(参照;「電力自由化時代における電力通信網の将来展望」電力中央研究所研究報告R02003, 2002年12月)(参照;「電力自由化が及ぼす電力通信網への影響と課題」電力中央研究所調査報告R02002, 2003年1月)。この際,IP網を利用する場合には通信品質の確保のためにQoS制御が必要となる。DRNAではIPレベルのQoS制御は伝達通信機能で行うが,一度設定したものをアプリケーションや通信網の状況に応じて頻繁に変更することは難しい。高度通信機能ミドルウェアはこれを補完し,状況に適応するQoS保証機能が動作する。
高度通信機能ミドルウェアでは,上位のアプリケーションの要求に応じて適切な機能要素を組み合わせて提供する。このため,アプリケーションは基本的なパラメータのみを設定するだけでよく,QoS保証のためにどのような機能を使用するかについては設定する必要がない。これまで、送受信端末においてモバイルエージェントとオブジェクト間通信について自律的な優先制御を用いたリアルタイム通信を実現した(参照;分散リアルタイムネットワークアーキテクチャ(DRNA)の開発 (その7)−高度通信機能の詳細設計と実装−、電力中央研究所報告 研究報告R03007、2004年3月)。しかし、統合IP網(参照;分散リアルタイムネットワークアーキテクチャ(DRNA)の開発 (その5)−伝達通信機能におけるIPルータ/MPLS/広域Ethernetの適用の考え方−、電力中央研究所報告 研究報告R02010、2003年3月)では複数のアプリケーションが混在することから、
a) 同一優先度のアプリケーション間の干渉
b) 少数のアプリケーションによる通信資源の占有
c) 通信網上の負荷への対策
が課題であった。また、下記の電力系統の設備運用・保全システム特有の要求への対応が課題であった。
d) 高信頼化への対応
そのために、高度通信機能ミドルウェアへ下記の機能を追加した(図8参照)。なお、図8の通信方式としてはTCP/IPを採用しているが、UDP/IPでも実行可能である。
・QoS保証機能(追加分):上記の項目aとbへの対応
・伝達通信機能との連携:上記の項目cへの対応
・高信頼化機能:上記の項目dへの対応
次に、統合IP網に求められるQoS保証、リアルタイム通信、高度通信機能ミドルウェアの概要、関連研究と課題について述べる。
統合IP網は、以下の特徴を有する。
・ 多数のアプリケーション混在:アプリケーションが混在することにより、様々な情報フローが発生し、各アプリケーションの通信を制御する重要性が増す。
・ 大規模:基幹系網、支店系網、地域系の網が相互接続され、さらに様々な端末(サーバやPCなど)が接続され、統一的な端末を含めた網の管理の重要性が増す。
・ 異種技術混在網:IPルータ網、MPLS網、Ethernet網が混在し、統一的なQoS制御が求められる。
網の統合化が進み複雑になるほど、様々な負荷や障害が想定されるため、アプリケーションが要求する品質(QoS:通信サービス品質)や高信頼化の要求は多様化する。
QoSについては、これまで通信装置のみにおいてQoSの制御(QoS制御)を行うことで、アプリケーションに対してQoSを保証(QoS保証)している。例えば、DiffServ (Differentiate Services) (参照;K.Nichols, S.Blake, F.Baker and D.Black:”Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers”, RFC2474, 1998 )(参照;「DiffServの遅延特性と電力通信網への適用 」、電中研研究報告R00026、2001年4月)によるQoS保証である。QoSとして、以下の項目を挙げることが出来る。
・ 遅延
・ 遅延ゆらぎ(ジッタ)
・ 帯域
・ ロス率
このようにアプリケーションが要求するQoSは多様である。アプリケーションが通信を行うためには、サーバなどの端末とIP網が必要である。
QoS制御は、優先すべき通信に対して優先度や回線帯域、バッファなどの資源を割り当てる。資源割り当てのタイミングに着目すると、QoS制御方式は以下の2つに分類できる。
・ プロビジョニング方式:事前にトラヒックの状況を想定して、事前に割り当てる方式である。
・ シグナリング方式:アプリケーションからの個別要求毎に資源を割り当てる方式である。
ネットワークプロトコル層における主要なQoS制御方式として、以下の3方式がある。
・ ST2 (Internet Stream Protocol Version 2)(参照;L. Delgrossi and L. Berger(Editors):” Internet Stream Protocol Version 2 (ST2) Protocol Specification - Version ST2+”, RFC1819, 1995 August):シグナリング方式で行うEnd-to-Endで実時間品質保証を行うためのプロトコルである。
・ IntServ(Integrated Service)(参照; R. Braden, D. Clark and S. Shenker : “Integrated Services in the Internet Architecture: an Overview “, RFC1633, June 1994):シグナリング方式であり、IPプロトコルのフローについてQoS制御できる点で優れている。
・ DiffServ:シグナリング方式でもプロビジョニング方式の何れでも実現できる方式である。上記2つの方式に比べて、フロー集合単位で制御する点が異なる。
ST2とIntServは、通信経路上の全ての通信装置の対応が必要となるために、広く普及していない。DiffServは、他2つの方式に比べフロー集合で制御を行うという点で劣っているが、実現が容易である。現在、通信網側ではプロビジョニング方式で、IPレベルの優先度であるDSCP値を基にQoS制御行う方式が主流である。DiffServでは、エッジノードでDSCPを指定する。これを発展させ、端末のアプリケーション層でDSCP値の指定し、シグナリング方式の代わる、状況に応じた自律的QoS保証を行えば、パケット単位で高品質な通信を実現することが期待できる。
端末における高信頼化については、アプリケーションから要求としては、以下の項目を挙げることができる。
・ 2ルート伝送
・ 連続送信
・ 再送信
・ 送達確認
これらを満足する機能は、QoS保証のための機能と併用できる必要がある。
自律的なQoS保証を実現する際には、優先制御が最も重要である。高度通信機能ミドルウェアの開発では、独自の優先制御を開発し、その有効性を確認している。しかし、占有帯域が多すぎれば、優先制御に影響が生じる。これは、DiffServでも同様のことが発生する。DiffServでは、これを補うために、Bandwidth Brokerと呼ばれるサブシステムを導入する研究が行われている。これは、シグナリング方式に該当するため、自律性を損なわないためには、これに代わる端末でのプロビジョニング方式の機能が必要となる。その機能はシェーピングやポリシングであり、IP網で適用可能な方式としてはUDP、TCPといったネットワーク層の研究があるが、アプリケーション層での研究は途上である。資源割当については、グリッド分野でのSUN Gridやglobusの研究をあげることができることが出来るが、通信技術よりも情報処理技術が中心である。
この他に、OS (Operating System) 面からの研究開発も進められており、シェーピング/ポリシング機能についてはネットワーク層に関するものがある(参照;Raj Rajkumar, Kanaka Juvva, Anastasio Molano and Shui Oikawa , Resource Kernels: A Resource-Centric Approach to Real-Time Systems, In Proceedings of the SPIE/ACM Conference on Multimedia Computing and Networking,1998.January)(参照;Takashi Okumura, Daniel Mosse, Virtualizing Network I/O on End-Host Operating System: Operating System Support for Network Control and Resource Protection , Trans. on Computer, IEEE, Vol. 53, No. 10, pp. 1303-1316 ,2004.October)。OSの変更や拡張を必要とする。
ネットワーク層での制御機能を実現する際には、OSに依存することが多いため、監視制御システムに要求されているマルチベンダによるシステム構築を行うには、アプリケーション層で実現する方式が望ましい。
電力系統の設備運用・保全の通信においては、QoSだけではなく、高い信頼性が要求される。電力以外の分野では、電力分野で要求される高信頼化技術への取り組みは少ない。電力分野においては、中央電力協議会で開発されたRNA (Real-time computer Network Architecture)がある。RNAは2ルート送信、送達確認、再送、後着廃棄の機能を提供する。しかし、QoS保証に関わる優先制御の機能は提供されていない。また、エージェント通信には対応していない。詳細については後述する。
End-to-Endの通信で、QoS保証と高信頼化の要求を満足するためには、端末に搭載する通信ミドルウェアを開発し、端末側に以下の機能を具備する必要がある。
・ 優先制御(送信/受信)
・ シェーピング/ポリシング
・ 集約/展開
・ 高信頼化
これらを実現する際、通信ミドルウェアは、伝達通信網を構成する通信装置のQoS制御機能との連携が必要となる。そのためには、通信ドルウェアには、以下の機能が必要となる。
・ 伝達通信機能との連携機能
優先制御は、通信の混雑への対応するためのものであり、狭義のQoS保証機能といえる。シェーピングやポリシング、集約は、送受信に関わる情報量の通信タイミングを制御し、同一優先度のアプリケーション間の干渉、少数のアプリケーションによる通信処理能力の占有などを防止するためのものである。高信頼化は、2ルート伝送や再送など通信路途絶やパケット損失に対応するためのものである。伝達通信との連携は、通信装置のQoS制御と協調するための重要な機能である。
電力系統の監視制御システムでは、確実な監視制御を実現するために、通信遅延の保証が重要である。ここで、本実施例では、遅延が保証される通信を「リアルタイム通信」と呼ぶこととする。
DRNAでは、自律分散型処理の可能なモバイルエージェント技術やその基礎技術となる分散オブジェクト技術を適用でき、これらの技術の活用による、監視制御業務の高度化・効率化が期待できる。分散オブジェクト技術は、RPCが発展したものである。分散オブジェクト技術を用いることで、アプリケーションが自端末内で授受する情報形式で、他の端末との情報授受においても同様の形式での通信が行うことが可能となり、分散処理を行うアプリケーションの開発効率を図ることができる。分散処理を行うアプリケーションで適用される主要な方式としては、CORBA (Common Object Request Broker Architecture)(参照;http://www.omg.org)やJava RMI (Remote Method Invocation) (http://www.sun.com )を挙げることができる。CORBAやJava RMIはアプリケーション層のプロトコルを用いて実現されている。しかし、これらでは、リアルタイム通信を実現することは考慮していない。DRNAの開発では、リアルタイム通信の実現を目指した、アプリケーション層に位置する高度通信機能ミドルウェアの検討を行っている。
高度通信機能ミドルウェアは、従来の監視情報の伝送方式であったストリーミングだけではなく、非定型データなど高度な情報を伝送可能なオブジェクト間通信やエージェント通信が可能である。エージェント通信は、データだけでなく、プログラム自身を各監視制御装置へ移動させながら処理を行う、すなわち自律的に処理を行うプログラムを実現する。これにより、アプリケーションは、エージェント通信を活用することで、自律的な分散制御を容易に実現できる。また、高度通信機能ミドルウェアは、下位プロトコルとしてTCP、Java RMI、UDPを用いることができる。これまでにプロトタイプ実装した高度通信機能ミドルウェアでは、下記に示す2種類の通信方式、自律的QoS保証機能として「3種類の優先制御と情報共有」を実装している。
・ 通信方式:エージェント通信、オブジェクト間通信。
・ 自律的QoS保証機能:優先制御(静的優先処理、動的優先処理、プロセス起動順制御)、情報共有。
優先制御を利用した際のオブジェクト間通信の処理手順は以下の通りである。ただし、QoS保証要求は、処理期限と受信側での期待処理時間を含む。
1) アプリケーションがデータ送信を行う際に高度通信機能ミドルウェアに渡す情報は、アプリケーションの名称、QoS保証要求および実際に送信するデータのみでよい。
2) 高度通信機能ミドルウェアは、QoS保証要求に応じて必要な機能を自動的に設定する。送信時と受信時には、優先度が高いものや終了期限までの時間が短いものを優先して処理する(静的優先処理、動的優先処理)。
3) データ受信時には高度通信機能ミドルウェアがアプリケーションを呼び出し、データを受け渡す(プロセス起動順序制御)。
この結果、低優先の通信は処理数が多くなると処理時間が大きくなるが、処理期限が保証される高優先の通信はほぼ一定の時間で処理を完了でき、通信のリアルタイム性を確保できる。
優先制御は、エージェント通信、オブジェクト間通信、ストリーミング通信に対応する。QoS保証要求を基に、送信・受信処理を制御することで、通信のリアルタイム性を保証する。
図9にエージェント通信を例とした送信用優先制御の概要を示す。送信用優先制御には、静的優先処理と動的優先処理がある。例えば、急行型処理と確実型処理のためのエージェントには静的優先処理を適用し、ベストエフォート(BE)型処理のエージェントには動的優先処理を用いる方法がある。確実型処理は処理期限があるリアルタイム性を有した処理を、急行型処理は、確実型処理の中で、常に最優先の処理を要求するものである。
静的優先処理は、優先順位調節器と送信サブコンポーネントから構成される。同時に複数のデータが渡された場合、優先順位調節器が処理期限を参照して、送信サブコンポーネントに渡すデータの順序を調整する。次に、送信サブコンポーネントがデータの送信を実行する。
動的優先処理は、優先度弁別器と送信サブコンポーネントから構成される。優先度毎に送信サブコンポーネントを設置している。送信サブコンポーネント自体はスケジューリングを行わない。また、動的優先処理は、各サブコンポーネントを並行動作させ、サブコンポーネントに滞在しているデータの処理期限に対する余裕を見て、サブコンポーネントの動作時間割当を調整する。この調整は、余裕がないサブコンポーネントの動作時間割当を長くする、あるいは、その逆を行うことで実施する。静的優先処理と動的優先処理は、文献「分散リアルタイムネットワークアーキテクチャ(DRNA)の開発 (その7)−高度通信機能の詳細設計と実装−、電力中央研究所報告 研究報告R03007、2004年3月」と文献「分散制御用モバイルエージェントの優先処理方式、電力中央研究所研究報告、R01010、2002年4月」の方式を、高度通信機能ミドルウェアの対応させるために、優先度の取り扱いなどを拡張している。
図10にエージェント通信を例に、受信用優先制御機能であるプロセス起動順序制御の概要を示す。プロセス起動順序制御は、エージェント通信、オブジェクト間通信、ストリーミング通信に対応する。プロセス起動順序制御へデータが渡されると、プロセス起動順序制御は、QoS保証パラメータの優先度、処理期限、受信側での期待処理時間を用いて、各データの処理期限の余裕と優先度のバランスを考慮した効率的なスケジューリングを行う。ただし、急行型処理のエージェントについては、常に最優先で起動する。また、プロセス起動順序制御は、エージェントの起動を逐次的に行う。なお、プロセス起動順序制御の詳細は、文献「分散処理のリアルタイム性を保証するための動的スケジューリング機能の提案、電力中央研究所報告 研究報告R01021、2002年4月」の方式をベースに、単一エージェントによる端末のCPU占有を防止するための拡張を行っている。
高度通信機能ミドルウェアの研究では、全体構成(参照;「分散リアルタイムネットワークアーキテクチャ(DRNA)の開発 (その2) −高度通信機能の構成と外部インタフェース仕様の設計−」,電力中央研究所研究報告R02005,2003年3月)、リアルタイム通信を実現するための優先制御(参照;「電力用IP通信網における適応的プロトコル層に関する検討」,電力中央研究所研究報告R99006,2000年4月)(参照;「分散処理のリアルタイム性を保証するための動的スケジューリング機能の提案」、電力中央研究所報告 研究報告R01021、2002年4月 )や情報共有(参照;「分散リアルタイムネットワークアーキテクチャ (DRNA) の開発 (その3) −高度通信機能における情報共有方式とキャッシュの適用検討−」,電力中央研究所研究報告R02009,2003年3月)の検討を行い、実装を進めてきた(参照;分散リアルタイムネットワークアーキテクチャ(DRNA)の開発 (その7)−高度通信機能の詳細設計と実装−、電力中央研究所報告 研究報告R03007、2004年3月)。これまでの検討は、1:1の端末間で、優先度が異なるアプリケーションそれぞれが通信する場合を対象としており、統合IP網での複数のアプリケーションが混在した状況で、それぞれの通信を保証することが困難であった。
上述したように、高度通信機能ミドルウェアに、シェーピングなどの機能、高信頼化機能、通信装置との連携する機能、を追加することで、End-to-EndでのQoS保証が可能となる。そのためには、これまでの議論より、QoS保証機能や高信頼化には、以下の特徴を有する必要がある。
・ シェーピングなどの機能は、優先制御と同様に自律的な制御を行う。
・ 高信頼化は、RNAで提供している機能を有し、エージェント通信に対応する。
通信装置との連携を実現するためには、以下の処理が要求される。
・ 通信装置との連携は、ToS値やポート番号を指定できる。ToS値は、上位3ビットにDSCP (DiffServ Code Point)を収容する。
高度通信機能ミドルウェアに、シェーピングなどの機能と高信頼化機能、伝達通信機能との連携機能を追加した。追加機能は、図11(図中の太枠が追加機能を示す)に示すようにアプリケーション層に位置するものであり、データの処理期限や優先度に応じた通信制御を行う。この結果、アプリケーション層には、以下の機能が配置されることになる。なお、品質・高信頼化に関わる機能以外にも、遠隔処理呼出機能を追加している。遠隔処理呼出機能は、エージェントプラットフォームと接続に利用できる。
・ 通信方式(エージェント通信、オブジェクト間通信、ストリーミング通信)
・ QoS保証機能
・ 高信頼化機能
・ 伝達通信機能との連携機能
・ 遠隔処理呼出機能(高度通信RPC)
アプリケーションが通信する際には、アプリケーション層にデータと共に処理期限などを与え、各機能が下記の処理を行うことで、End-to-EndのQoS・高信頼化要求が保証された通信を実現する。
・ 監視情報の伝送などリアルタイム処理に適した優先制御や、シェーピング、集約を行う。
・ 2ルート伝送や片ルート伝送の選択など電力特有の高信頼化伝送を行う。
・ 通信装置のQoS制御機能と連携するためのQoS制御パラメータの指定を行う。
・ アプリケーション層から渡されたストリーミング、オブジェクト、エージェントを伝送する。プロトタイプでは、下位プロトコルとして、TCP、UDP、Java RMIを利用することができるものとした。
統合IP網を構成する通信装置と端末上の高度通信機能ミドルウェアが連携するためには、以下の項目の実現が必要である。
・ 異種技術網の混在への対応:MPLSやEthernetなどの技術に依存せずに、QoS制御できる。
・ 通信装置の改造が不要:連携機能を端末機能で実現することができる。
・ 統一的な連携制御:各端末の制御情報を共通化し、通信装置が個別の端末への対応を不要できる。
本連携機能では、各装置が参照できるIPヘッダに着目し、IPヘッダのToS値を利用する。送信端末でToS値を指定することにより、通信装置の改造が不要で、かつアプリケーションの追加の度に通信装置の設定することが不要となる。詳細なQoS制御を可能とするために、ToS値の他に、連携機能はトランスポート層のポート番号を指定する。これにより、例えば、セキュリティ機能であるSSHとの連携が可能である。
図12に連携機能を用いた通信処理の概要を示す。連携機能は、優先度とポート番号・ToS値との変換テーブルを保持する。送信側では、変換テープルを基にToSとポート番号を指定した送信処理を行う。受信側では、変換テーブルに記載されたポート番号からの受信を可能とする。
図13に連携機能の有無について、広域Ethernet網とMPLS網が統合されたIP網を介して、変電所サーバと制御所サーバが通信を行う際の、通信装置のQoS制御パラメータの設定処理の概要を示す。
同図 (a)は連携機能が無い場合であり、それぞれの網の初段の通信装置は、IPアドレスを元に、QoS制御パラメータEthernetのVLAN-tagやMPLSのラベルに優先度を設定する。最終段の装置は、VLAN-tagやMPLSのラベルを除去する。通信装置は、IPアドレス単位でしか制御できず、かつその設定が必要となる。
同図(b)は連携機能がある場合であり、送信端末から指定することで、各網では、このToS値に基づいて、通信装置がEthernetのVLAN-tagやMPLSラベルを設定することができ、送信端末から指定されたQoSをアプリケーションに対して提供できる。この場合、各通信装置はToS値毎にQoS制御の設定をするだけで済み、端末やアプリケーションの追加毎の設定追加・変更は不要となる。
QoS保証機能(追加分)は、アプリケーション層において通信タイミングを制御することで、同一優先度のアプリケーションの干渉や、通信資源の占有防止を図る。
シェーピングは、データの送信に対して制約を設けることで、送信先へのパケットのバースト到着を抑制する。高度通信機能ミドルウェアレベルのウィンドウ制御を実現することが出来る。
シェーピングでは、処理期限を用いて、独自のマーキング方式を行い、この結果に基づき整形と廃棄を行っている。データの処理期限と制御パラメータの許容超過時間を用いて、廃棄することが出来る。
シェーピングは、アプリケーション、送信先(ノード名+アプリケーション名)、送信元アプリケーションの優先度(特定の優先度)の単位で制御可能である。
ポリシングは、受信時に単位時間当たりのデータの受信数を制限することにより、アプリケーションの過負荷を予防する。また、プロセス起動順序制御と組み合わせることにより、プロセス起動順序制御によるリアルタイム保証率を向上させることが出来る。
受信アプリケーション、送信元(ノード名+アプリケーション名)、送信元アプリケーションの優先度(特定の優先度)の単位で制御可能である。
データが多く、その伝送処理のオーバヘッドが大きい際に、このオーバヘッドを削減するため、集約機能はデータを集約し、伝送する。
制御方法として、以下の条件を満たすとき、集約したデータを送信する。集約上限数および単位時間は制御単位毎に設定する。
・ 集約上限数に達したとき
・ 単位時間を経過したとき
送信アプリケーション、送信先ノード名(代表IPアドレス)、優先度単位で制御可能とす。各レベルでの優先度を制御単位とする。
展開機能は受信側に配置され、送信側で集約機能により集約したデータを受信した際に、展開して、本来のデータに復元する。制御パラメータは必要とせず、受信した順に、逐次展開する。
送達確認機能は、送信データが順序と連続性を保ちながら受信端末に渡ったことを確認する。受信側はデータ受信時に送達確認を送り返す。送達確認が一定時間だけ送信側端末に戻ってこない場合、再度送信を行う。
各パケットには識別のために送達確認用のシーケンス番号を付与する。
再送機能は、送信データが受信端末に渡ったことが確認できなかった場合に、同一データを再度送信する。送信端末側から送達確認を要求することは行わない。各パケットには識別のために再送用シーケンス番号を付与する。
再送要求を行うまでの受信側端末の待ち時間、及び再送要求回数を指定できる。
連続送信機能は、2つの端末間で、1経路に対して同一データを複製して連続して送信する。各パケットには識別のために多重化データシーケンス番号を付与する。
複製するデータの個数、データ送信間隔を指定できる。
2ルート送信機能は、2つの端末間で、通信経路が物理的に2経路ある場合に、以下のいずれかのデータ送信方法が選択できるものとする。
・ 受信側端末とのコネクションを2経路確立し、両方の経路に対して同一データを同一タイミングで送信する。各パケットには識別のために多重化データシーケンス番号を付与する。
・ 受信側端末とのコネクションは1経路のみ確立し、その経路にデータを送信する。コネクションが切断された場合は、もう一方の経路を選択する。
・ 受信側端末とのコネクションは1経路のみ確立し、その経路にデータを送信する。
2ルートのデータ送信方法についての概念図を図14に示した。なお、図中の「AP」とは、「Application」の略語であり、「NIC」は「Network Interface Card」の略語である。
後着廃棄機能は、送信側端末において、データに多重化データシーケンス番号を付与してあれば、受信側端末において、受信した複数の同一データのうち、先に受信したデータをアプリケーションに渡し、後着のデータを廃棄する。各パケットの識別には多重化データシーケンス番号と、送受信それぞれのアプリケーション名を使用する。
受信側端末が同一データを複数個受信するケースは以下の場合である。
・ 2ルート送信機能を用いて2経路にデータ送信された場合
・ 連続送信機能を用いて複数データが送信された場合
追加機能を既開発の高度通信機能ミドルウェアのプロトタイプ(参照;分散リアルタイムネットワークアーキテクチャ(DRNA)の開発 (その7)−高度通信機能の詳細設計と実装−、電力中央研究所報告 研究報告R03007、2004年3月)に実装し、評価した結果を以下に示す。
図15に評価システムの構成を示す。変電所構内監視制御サーバ(変電所サーバ)と制御所監視制御サーバ(以下、制御所サーバ)、負荷発生源とする設備保全サーバそれぞれを模擬するPC3台を、IP網を介して接続した。PC3台の仕様は同一で、その仕様は以下の通り。
・ CPU;Pentium(登録商標)4 2.8GHz
・ メモリ;1GB
・ ネットワークインタフェースカード;10/100/1000BASE-TX×2枚(IP網へは100BASE-TXで接続した。)
IP網の構成は、CISCO社製Ethernetスイッチ2950 2台を用いて、2系列網とした。物理的に、制御所サーバと変電所サーバは両系に、設備保全サーバは片系(プライマリ)に接続する。
各種サーバには、高度通信機能ミドルウェアを搭載する。なお、本プロトタイプは、当所開発のソフトウェアである。Java言語を用いて開発した。また、OSには、Linuxを用いた。各ソフトウェアの詳細は以下の通りである。
・ Java: SUN Java Standard Edition 1.4.2(登録商標)
・ OS: Novel SuSE Linux 9.1(カーネルのバージョンは2.6)(登録商標)
評価システムでは、以下の3種類のアプリケーションによる通信を模擬する。
・ 監視制御アプリケーション(A)
・ 保全(業務支援アプリケーション)(B)
・ 保全(ITVアプリケーション)(C)
アプリケーションには、表1に示す遅延、帯域、可用性についてのQoS要求があると想定した。これに基づき、表2と表3にプロパティとプロファイルを決定した結果を示す。遅延要求、帯域割当、高信頼化の要求に基づき、優遇の違いが出るようにパラメータを決定した。この設定の基で、通信時に、各アプリケーションが要求する処理期限を指定することで、リアルタイム通信が実行できる。表1はアプリケーションの要求を示し、表2はプロファイルとプロパティの設定結果を示し、表3は通信装置との連携のためのプロファイルを示す。
性能評価では、上記で示した3種類アプリケーションが変電所から制御所への監視情報の周期伝送処理を行わせた。伝送する情報量は、IEC61850の情報モデルに含まれる遮断器オブジェクトの定義を参考にし、これを128量分のデータとした。高度通信機能ミドルウェアプロトタイプでは、データベース上にIEC61850の情報モデルを一部実装している。この実装における、遮断器オブジェクトが保持するデータを表4に示す。このデータサイズの合計は145バイトであり、これに128量を乗算すると、145×128=18560バイト≒20,000バイトとなることから、20,000バイトを伝送するデータ量とした。なお、表4は、想定する遮断器オブジェクトの構成を示す。
提案方式の処理オーバヘッドを測定する実験を行った。表5は、通信基本特性(処理オーバーヘッド)を示す。表5(a)に示す優先制御、シェーピング、ポリシング、高信頼化機能を用いた場合、優先制御機能のみを用いた場合、何れの機能も用いない場合の3種類の設定をしたアプリケーションを用いて、送信開始から受信終了までの処理時間を測定した。通信方式として、TCPを用いたオブジェクト間通信を利用した。その結果、表5(b)を得た。オブジェクト間通信に対してQoS保証機能と高信頼化の適用有無(アプリケーションAとアプリケーションB)の場合の処理時間の比は、8.1:12.2[ms]≒2:3である。この差は、QoS保証および高信頼化機能に要する処理時間であり、オブジェクト間通信自体の処理時間に比べて、小さいといえる。よって、QoS保証および高信頼化機能は、1秒程度の遅延保証を要求する通信への適用可能であることを確認した。
高度通信機能ミドルウェアによるQoS保証の効果について評価した結果について述べる。表 6(a)に示す変電所から制御所に方向に2種類のアプリケーションA、Bのそれぞれが通信している際に、アプリケーションCが通信網の片系(プライマリ)に負荷を発生させた。アプリケーションAとBの違いを明確とするために、通信方式として、TCPを用いたオブジェクト間通信を利用した。その結果、表 6(Qos保証・高信頼化の評価を示す)を得た。通信網の負荷となるアプリケーションC自体は、他の2種類が通信中は100Mbps以上のデータの送信を継続した結果、処理時間が増加し、処理期限を超過する。アプリケーションCの影響により、同一優先度のアプリケーションBの遅延は増加するが、優先度の高いAへの影響は小さい。また、アプリケーションBは、平常時に比べて遅延が増加するが、処理期限を超過することは無かった。
通信装置との連携については、表3に示すようにプロファイルの指定どおりに、アプリケーションの優先度に応じて、連携機能が制御所サーバのポート番号とDSCP (DiffServ Code Point:ToS値の上位3ビット)値を指定して、通信していることを確認した。
アプリケーションAは、高度通信機能ミドルウェアの2ルート伝送機能と後着廃棄を適用しており、可用性の向上を図っている。片系の伝送路に障害を発せさせても、アプリケーションAは通信を継続でき、可用性の要求を満足できることを確認した。
以上の結果から、QoS保証および高信頼化機能の有効性を確認した。
高度通信機能ミドルウェアとRNA (Real-time computer Network Architecture)との比較結果を表7に示す。高度通信機能ミドルウェアは、RNAで提供している高信頼化機能だけではなく、IP網特有の通信遅延対策に必要な優先制御、さらに通信装置との連携、エージェント通信・オブジェクト間通信へ対応しているなどの点で優れている。RNAは監視制御アプリケーションへ実導入されている。これに対し、高度通信機能ミドルウェアのプロトタイプは、高度通信機能ミドルウェアの検証を目的として開発したものであり、実用化に当たっては、フィールド検証や実導入に向けての改良を行いつつ、保全アプリケーションなどから適用していくものと思われる。
次に、様々なアプリケーションのQoSや高信頼化要求に応じた高度通信機能ミドルウェアの利用法を示す。これにより、高度通信機能ミドルウェアが提供する様々な機能を効率的に利用することが可能となる。
アプリケーションが要求するQoS保証と高信頼化の種別に応じて、適用すべき機能が異なる。要求の種別と適用すべき機能は以下の通りである。
・ 遅延:優先制御
・ 遅延揺らぎ:優先制御とシェーピング、ポリシング
・ 帯域:シェーピング、ポリシング、集約・展開
・ ロス率:シェーピング、ポリシング、集約・展開、2ルート伝送、連続送信、再送信
・ 高信頼化:2ルート伝送、連続送信、再送信、送達確認
伝送路のQoSが要求される際は、通信装置との連携機能を利用する。
高度通信機能ミドルウェアに与えるパラメータは、プロファイルとプロパティ、通信パラメータである。プロファイルとプロパティは、事前に決定しておく必要がある。ただし、アプリケーション利用者ではなく、ネットワーク管理・セキュリティ機能を通じて、システム全体の運用管理者が設定する必要がある。QoS保証パラメータは、アプリケーションが、通信要求時に指定する必要がある。
・ プロファイル:アプリケーションに割り当てる優先度とアプリケーションが利用すべき機能を指定する。
・ プロパティ:機能毎の振る舞いを指定する。
・ QoS保証パラメータ:通信処理期限、受信側で処理時間
各機能は、通信網と端末の混雑度・品質に応じて、柔軟に組み合わせることが出来る。組み合わせは、プロファイルを用いて指定する。図16に想定する各種機能の使用順序を示す。ただし、同じ機能は2度利用することは出来ない。状況に応じて利用しない機能もある。表8にプロパティの一覧を示す。高度通信機能ミドルウェアはプロパティを、下記のプロパティ指定の優先度に基づきパラメータとして採用する。図17に示すように、優先度が大きいほど、高優先である。
・ テンプレート用プロパティ:優先度5
・ アプリケーション用プロパティ:優先度4
・ アプリケーション優先度用プロパティ:優先度3
・ ノード用プロパティ:優先度2
シェーピング、ポリシング、集約・展開機能では、上記の優先度3や2の場合、アプリケーション優先度単位やノード単位というように複数のアプリケーションをグループ化して制御でき、全てのアプリケーションに対して、容易にこれら機能を適用することが出来る。
高信頼化機能では、再送間隔や再送回数をアプリケーション毎に設定が可能であり、ノード単位で制御するTCPに比べ、詳細な設定が可能である。
アプリケーションが要求するQoSを保証するために、下記の手順が必要となる(図18参照)。
1. アプリケーションの優先度を設定する。
2. 伝送路のQoS要求がある場合は、通信装置によるQoS制御の設定と比較する。設定の追加が必要となる場合、高度通信機能ミドルウェアの優先度およびToS値やポート番号の割当を追加する。なお、通信装置の設定については、文献「分散リアルタイムネットワークアーキテクチャ(DRNA)の開発 (その5)−伝達通信機能におけるIPルータ/MPLS/広域Ethernetの適用の考え方−、電力中央研究所報告 研究報告R02010、2003年3月」に記載されている。
3. 必要な機能を選択し、動作時に通信のボトルネックが発生しないよう順序を決定し、プロファイルで指定する。
4. 各種機能の振る舞いを指定するプロパティを指定する。
5. 通信時に、アプリケーションはQoS保証パラメータとなる遅延を、高度通信機能ミドルウェアに指定する。
各機能の詳細な手順は、以下の通りである。
(1)遅延
優先制御を用いて、自アプリケーションより優先度の低いものの影響を防止する。プロファイルには、アプリケーションに割り当てる優先度と優先制御機能の利用を指定する。アプリケーションの優先度は、アプリケーションの種別に応じて設定する。アプリケーション全てに対して優先制御機能を適用する。これと並行して、QoS保証パラメータには、アプリケーションは処理期限を指定する。
(2)ジッタ
シェーピングとポリシングを用いて、送信タイミングと受信タイミングを周期化し、アプリケーション単位でのゆらぎを抑制する。
優先度が低いアプリケーションの影響を抑制する場合、その低優先度グループ単位のシェーピング、ポリシング、優先制御を利用して対応することができる。
(3)帯域
シェーピング、ポリシング、集約・展開を用いて、単位時間当たりに授受するデータ数を帯域の単位として制御する。アプリケーションが要求する帯域に基づいて、プロパティを設定する。
(4)ロス率
再送を許容できる程度に処理期限の余裕がある場合は、再送機能を利用する。この他に、通信方式の下位プロトコルとして、TCPやJava RMIを用いることも可能であるが、再送回数を端末単位でのみの指定となる。
(5)高信頼化
高信頼化要求に応じて、高信頼化機能の適用の有無、および利用する機能を指定する。さらに、IP網の構成に応じて、伝送路の構成(2ルート(1+1)、2ルート(1:1)、1ルート構成)を選択する。
2ルート(1:1)については、伝達通信機能が提供する経路切替機能でも実現が可能である。
(6)伝送路のQoS
プロファイルにおいて、要求品質に応じて、アプリケーション優先度毎に通信品質クラスを指定する。通信品質クラスとして、送受信ポート番号とToS値を指定する。これにより、通信装置では、これらの値を基に、あらかじめ通信装置に設定された内容に従い、優先制御やシェーピング、ポリシング、経路切替を行う。
以上のように、本実施例では、アプリケーション層においてQoSおよび高信頼化要求を保証する高度通信機能ミドルウェアとその利用法について示した。高度通信機能ミドルウェアは、QoS保証、高信頼化、伝達通信機能との連携を主な機能要素としている。これらにより、メッセージ通信、エージェント通信、ストリーミング通信に対して、送信端末、通信網、受信端末が協調してQoS保証および高信頼化を行うことが可能となり、統合IP網において、End-to-End通信のQoS保証および高信頼化要求を満足することができる。