JPH1011382A - 実時間分散データ共有方式 - Google Patents

実時間分散データ共有方式

Info

Publication number
JPH1011382A
JPH1011382A JP8159931A JP15993196A JPH1011382A JP H1011382 A JPH1011382 A JP H1011382A JP 8159931 A JP8159931 A JP 8159931A JP 15993196 A JP15993196 A JP 15993196A JP H1011382 A JPH1011382 A JP H1011382A
Authority
JP
Japan
Prior art keywords
data
client
computer
copy
server
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.)
Pending
Application number
JP8159931A
Other languages
English (en)
Inventor
Ichiro Mizunuma
一郎 水沼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP8159931A priority Critical patent/JPH1011382A/ja
Publication of JPH1011382A publication Critical patent/JPH1011382A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 複数の計算機と、それ等を接続するネットワ
ークを備えた分散システムにおいて、データ転送量を削
減し、H/W資源およびネットワーク資源の使用量を削
減する。 【解決手段】 時間とともに変化するデータを持つサー
バ計算機、計算機を接続するためのネットワーク、該ネ
ットワークによって該サーバ計算機と接続されたクライ
アント計算機からなる分散システムにおいて、特定のク
ライアント計算機と特定のサーバ計算機との間で、当該
クライアント計算機が必要とするデータのみを当該サー
バ計算機が転送する制御手段と、当該計算機間の通信ネ
ットワークの使用時間を上記データ通信に必要な時間の
みに制限する制御手段とを備えた。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、オペレータステイ
ション、コントローラ、データロガなどのサブシステ
ム、および、それらを接続するネットワークから構成さ
れるプラント監視制御システムにおいて用いられる。
【0002】
【従来の技術】図32は従来の監視制御システムの構成
を示したものである。複数(n台)のコントローラの各
々は、センサからのプラントデータを定期的にサンプリ
ングし保持する。この例では、クライアントが1台であ
るが、複数台あってもよい。全てのコントローラ、およ
び、全てのクライアントはネットワーク(データウェ
イ)を介して、リング状に接続されている。ネットワー
クに接続された全てのサブシステム(クライアントまた
はコントローラ)上に、周期P毎に全てのコントローラ
のデータのコピーが転送され、格納される。このような
通信をサイクリック通信と呼ぶ。このサイクリック通信
によってクライアント上のアプリケーションは、周期P
毎に更新されるプラントデータを読み出すことができ
る。周期Pは、全てのアプリケーションの要求する更新
周期のうちの最も小さいものと等しいか、より小さいこ
とが要求される。コントローラi (i = 1, 2, ..., n)
のデータのサイズをSi とすると、ネットワークの総伝
送帯域のうち(S1 + S2 + ... + Sn) / Pだけの伝送
帯域がサイクリック通信によって用いられる。サイクリ
ック通信によって用いられていない帯域は、ファイル転
送など他の通信によって用いられる。
【0003】
【発明が解決しようとする課題】従来のサイクリック通
信では、クライアント上のアプリケーションが、一部の
コントローラのデータのある部分のみしか同時に用いな
いのにも関わらず、全てのコントローラの全てのデータ
を転送している。また、転送周期についても必要以上に
小さな周期で転送する場合もある。これらの理由によ
り、サイクリック通信によって必要以上のネットワーク
帯域を消費してしまい、ファイル転送など他の通信に対
する帯域が少なくなるという問題があった。さらに、ネ
ットワークの帯域がサイクリック通信に必要な帯域に対
して小さい場合には、必要なデータを全て転送できない
という問題もあった。
【0004】この発明の目的は、従来技術の上記の問題
点を解決するためになされたもので、分散システムにお
いて、ある計算機上の時間とともに変化するデータの中
から、他の計算機から要求されたデータのみをその計算
機上に定期的に転送することにより、前者の計算機のデ
ータを後者の計算機上のプログラムからその計算機上に
あるデータを読み出すのと同様の手段によって読み出せ
るようにすること、およびそれによってデータの転送と
読み出しに要する時間とH/W資源およびネットワーク
資源の経済性を高めることである。
【0005】
【課題を解決するための手段】本発明の第1の構成で
は、特定のクライアント計算機と特定のサーバ計算機と
の間で、当該クライアント計算機が必要とするデータの
みを当該サーバ計算機が転送する制御手段と、当該計算
機間の通信ネットワークの使用時間を上記データ通信に
必要な時間のみに制限する制御手段とを備え、クライア
ント計算機からの要求に応じて、サーバ計算機内のデー
タの一部、もしくは、全体のコピーをクライアント計算
機上に生成するようにした。
【0006】本発明の第2の構成では、第1の構成にお
いて、サーバ計算機上のデータの表現形式と、クライア
ント計算機上のコピーの表現形式が異なる場合に、上記
データから上記コピーを生成する際に、各計算機上のデ
ータの表現形式に関する情報を元に、サーバ計算機上の
表現形式から各計算機間に共通な表現形式を経由して、
クライアント計算機上の表現形式に変換する制御手段を
備えた。
【0007】本発明の第3の構成では、第1の構成にお
いて、サーバ計算機上のデータの格納方式と、クライア
ント計算機上のコピーの格納方式が異なる場合に、各計
算機上の格納方式に関する情報を元に、サーバ計算機上
の格納方式から各計算機間に共通な格納方式を経由して
クライアント計算機上の格納方式に変換し、その格納方
式にしたがって上記コピーを格納する制御手段を備え
た。
【0008】本発明の第4の構成では、第1の構成にお
いて、クライアント計算機からサーバ計算機への要求が
あった場合に、クライアント計算機上でサーバ計算機上
のデータのコピーの生成を開始する前に、サーバ計算
機、クライアント計算機、および、両計算機を接続する
ネットワーク上に、コピーが一定時間内に得られたもの
であることを保証するために必要な資源が確保可能かど
うかを確認し、確保可能であれば、コピーの生成の開始
を許可し、確保不可能であれば、コピーの生成の開始を
却下する制御手段を備えた。
【0009】本発明の第5の構成では、第4の構成にお
いて、サーバ計算機とクライアント計算機の組に対し
て、コピーの生成が開始される以前に、必要な資源の割
り当ての可否を確認しておく制御手段を備えた。
【0010】本発明の第6の構成では、第1の構成にお
いて、サーバ計算機とクライアント計算機がそれぞれ複
数存在し、スイッチ型ネットワークを用いる場合に、互
いにデータ転送を行うサーバ計算機とクライアント計算
機の組のうち、同時にコピーの生成を行うことのない複
数の組に、スイッチどうし、あるいは、スイッチと計算
機を接続するリンクにおける転送帯域の割当てを共有さ
せる制御手段を備えた。
【0011】本発明の第7の構成では、第1の構成にお
いて、サーバ計算機とクライアント計算機がそれぞれ複
数存在し、スイッチ型ネットワークを用いる場合に、互
いにデータ転送を行うサーバ計算機とクライアント計算
機の組のうち、同時にコピーの生成を行うことのない複
数の組に、スイッチ内のバッファの割当てを共有させる
制御手段を備えた。
【0012】本発明の第8の構成では、第1の構成にお
いて、クライアント内のコピーの、ある一定期間の過去
のものを保持し、アプリケーションから、最新のコピー
が格納された時刻からの相対時間によって、この過去の
コピーを参照する制御手段を備えた。
【0013】本発明の第9の構成では、第8の構成にお
いて、最新のコピーの到着時に、到着したコピー、およ
び、保持している過去のデータに関するある定められた
条件の成立を判定し、条件が成立していれば、ある定め
られたクライアント内のタスクを起動させる制御手段を
備えた。
【0014】
【発明の実施の形態】まず、実施の形態中で用いられる
用語について説明する。 データ要素:整数、浮動小数点型の数値といった個々の
変数。各々が識別子を持つ。 データ:データ要素の集合。特に、サーバの持つデータ
全体をさす。 構造体:関連のあるデータ要素の組。全体として一つの
データ要素と同様に定義できる。 スレッド:プログラムの一部または全体を駆動する実行
主体。プログラムカウンタ値、CPUのレジスタ情報、
プログラムに引き渡す変数値などを持ち、実行条件を指
定してプログラムを実行させる。処理内容を指すときは
タスクと同義である。
【0015】次に、参考文献について記載する。 参考文献1 RMA J. P. Lehoczky, L. Sha, and Y. Ding, The rate mono
tonic scheduling algorithm: Exact characterization
and average case behavior, Proceedings ofthe IEEE
Real-time Systems Symposium 1989, pp. 166---171,
December 1989. 参考文献2 優先度継承プロトコル R. Rajkumar, Synchronization In Real-Time Systems:
A Priority Inheritance Approach., Kluwer Academic
Publishers, 1991. 参考文献3 Kandlur's method D. D. Kandlur, K. G. Shin, and D. Ferrari: Real-Ti
me Communication inMultihop Networks, IEEE Transac
tions on Parallel and Distributed Systems, vol. 5,
No. 10, pp. 1044-1056, 1994.
【0016】実施の形態1.図1は、この発明の第1の
実施の形態によるリアルタイム分散共有メモリを用いた
プラント監視システムの構成を示したものである。この
システムは、サーバ(コントローラ)、クライアント
(オペレータステイション)、および、両者を接続する
ネットワークから構成されている。リアルタイム分散共
有メモリの機能は、サーバ内のミドルウェア、および、
クライアント内のミドルウェアによって実現されてい
る。クライアント内のアプリケーションがこの機能を用
いる。サーバは、いくつかのセンサに接続されている。
サーバ内のミドルウェアは、ある周期Psample 毎に、
センサからのデータをサンプルして、それをサーバ内の
メモリ上に書き込む(図1中のステップ(1))。クラ
イアント内のアプリケーションは、クライアント内のミ
ドルウェアに対して、サーバのメモリ上のデータの一
部、あるいは、全体を、ある周期Pclient毎に、クライ
アント内のコピー領域に格納することを要求することが
できる(図1中のステップ(2))。この要求を受けた
クライアント内のミドルウェアは、サーバ内のミドルウ
ェアにこの要求を伝える(図1中のステップ(3))。
そして、サーバ内のミドルウェアは、サーバ内のデータ
のうちクライアントから要求されたものを、クライアン
ト内のミドルウェアへ周期Pclient で転送し始める
(図1中のステップ(4)および(5))。クライアン
ト内のミドルウェアは、サーバ内のミドルウェアからの
これらのデータを受信して、これをクライアント内のコ
ピー領域に格納する(図1中のステップ(6))。クラ
イアント内のアプリケーションは、このコピー領域上の
データを任意の時点で参照することができる(図1中の
ステップ(7))。
【0017】図2は、クライアント内のミドルウェアの
内部の構成を示したものである。クライアント内のミド
ルウェアは、キュー、マザースレッド、ポートC1, C2
からなる。また、マザースレッドは、クライアント内
に、レシーバスレッド、および、ポートC3 を生成する
ことができる。クライアント内のアプリケーションは、
クライアント内のミドルウェアの提供するライブラリ関
数を呼び出すことによって、サーバからのデータの転送
の開始や終了を要求することができる。これらのライブ
ラリ関数が呼び出されると、アプリケーションからの要
求に関する情報を持つメッセージがキューに格納され
る。このメッセージの持つ情報とは、サーバの識別子
(あるいは名称)、要求するサーバ内のデータに関する
情報、および、転送の周期Pclient の組である。
【0018】(ライブラリ関数のアプリケーションイン
ターフェイス)転送の開始を要求するライブラリ関数の
アプリケーションインターフェイスは、識別子をもつ構
造体として定義され、サーバのミドルウェアに引き渡す
引数として、サーバの識別子、クライアントのコピー領
域へのポインタ(格納アドレス)、転送周期、要求デー
タのサーバ上の配列ポインタ、配列の要素数を含んでい
る。図3は、転送の開始を要求するライブラリ関数のア
プリケーションインターフェイスをC言語を用いて示し
たものである。このライブラリ関数の引数 server は、
データを格納するサーバを特定するためのサーバの識別
子である。この実施の形態では、文字列を識別子として
用いている。引数 buf はコピー領域へのポインタ(格
納アドレス)である。引数 period は、周期Pclient
を、例えばマイクロ秒単位で表現したものである。引数
subset は、このアプリケーションが要求するサーバの
データに関する情報を格納する配列へのポインタであ
る。引数 num はこの配列の要素数である。この配列の
各要素は、data_t 構造体として表現される。各要素
は、サーバのデータのある一つのデータ項目に関する情
報である。data_t 構造体のメンバ id は、データ項目
のサーバ内での識別子である。この実施の形態では整数
値である。data_t構造体のメンバ type は、このデータ
項目の型を表す。この実施の形態では整数値である。
【0019】転送の終了を要求するライブラリ関数のア
プリケーションインターフェイスは、引数として転送元
サーバを特定する識別子をもっている。図4は、転送の
終了を要求するライブラリ関数のアプリケーションイン
ターフェイス(API)をC言語を用いて示したもので
ある。このライブラリ関数の引数 server は、データの
転送元サーバを特定するためのサーバの識別子である。
【0020】次にクライアント内のマザースレッドおよ
びレシーバスレッドの動作を説明する。 (マザースレッドのアルゴリズム)図5は、クライアン
ト内のミドルウェアのマザースレッドのアルゴリズムを
示したものである。マザースレッドは、キューから要求
を取り出して、この要求に対する処理を行うことを繰り
返す。キュー内に要求がない場合には、要求が到着する
まで待つ(ステップ51)。要求には、転送開始と、転
送終了がある。転送開始の要求を受け取った場合(ステ
ップ52)には、まずポートC3 を、続いてレシーバス
レッドを生成する(ステップ53)。そののち、ポート
C1 を介して、サーバ内のミドルウェアにこの要求を伝
え(ステップ54)、ポートC2を介して、サーバ内のミ
ドルウェアからの応答を待ち(ステップ55)、所定時
間以内に応答を受け取れば受信を開始する。クライアン
ト内のアプリケーションは、受信が終了すれば、転送終
了の要求をキューに格納する。転送終了の要求を受け取
った場合には(ステップ56)、ポートC1 を介して、
サーバ内のミドルウェアにこの要求を伝える(ステップ
57)。そののち、ポートC2 を介して、サーバ内のミ
ドルウェアからの応答を待つ(ステップ58)。所定時
間以内に応答を受け取ると、まずレシーバスレッドを、
続いてポートC3を消滅させる(ステップ59)。上記以
外の要求を受け取った場合およびサーバ側ミドルウェア
から所定時間以内に応答が無い場合には、アプリケーシ
ョンに対してエラーが発生したことを通知する(ステッ
プ60)。
【0021】(レシーバスレッドのアルゴリズム)図6
は、クライアント内のミドルウェアのレシーバスレッド
のアルゴリズムを示したものである。レシーバスレッド
は、ポートC3 を介して、サーバ内のミドルウェアから
のデータの到着を待ち(ステップ61)、データが到着
すると、このデータをコピー領域に格納(ステップ6
2)するという一連の動作を繰り返す。
【0022】図7は、サーバ内のミドルウェアの内部の
構成を示したものである。サーバ内のミドルウェアは、
マザースレッド、ポートS1, S2 からなる。また、マザ
ースレッドは、サーバ内に、トランスミッタスレッド、
および、ポートS3を生成することができる。
【0023】次にサーバ内のマザースレッドおよびトラ
ンスミッタスレッドの動作を説明する。 (マザースレッドのアルゴリズム)図8は、サーバ内の
ミドルウェアのマザースレッドのアルゴリズムを示した
ものである。マザースレッドは、ポートS1 を介してク
ライアントからの要求を待ち(ステップ81)、受けと
った要求に対する処理を行うという一連の動作を繰り返
す。転送開始の要求を受け取った場合には(ステップ8
2)、まずポートS3 を生成し、これをポートC3 と接続
し、続いてトランスミッタスレッドを生成する(ステッ
プ83)。そののち、ポートS2 を介して、クライアン
ト内のミドルウェアに対して応答を返す(ステップ8
4)。転送終了の要求を受け取った場合には(ステップ
85)、トランスミッタスレッドとポートS3 を消滅さ
せ(ステップ86)、ポートS2 を介してクライアント
内のミドルウェアに応答を返す(ステップ87)。
【0024】(トランスミッタスレッドのアルゴリズ
ム)図9は、サーバ内のミドルウェアのトランスミッタ
スレッドのアルゴリズムを示したものである。Tは送信
開始後の時間経過を示す相対時間である。トランスミッ
タスレッドは、周期Pclient 毎に起動される(ステッ
プ91)。起動されると、データのうち、クライアント
から要求されているものを読みだし(ステップ92)、
これをポートS3 を介してクライアント内のミドルウェ
アに対して送信する(ステップ93)。以上説明したよ
うに、クライアント内およびサーバ内のミドルウェア
が、特定のクライアントと特定のサーバ間において、当
該クライアントが必要とするデータのみを当該サーバか
ら転送する制御手段として機能し、また当該計算機間の
通信ネットワークの使用時間を当該データ転送に必要な
時間のみに制限する制限手段として機能する。従ってこ
れらの制御手段によりデータ転送量を削減し、H/W資
源やネットワーク資源の使用量を削減することができ
る。また、本実施の形態はサイクリック通信を前提とし
て説明したが、本実施の形態の適用範囲はサイクリック
通信方式に限られるものではない。
【0025】実施の形態2. (表現形式)一般に、計算機が異なると、データの表現
形式が異なる場合がある。例えば、4バイトからなる整
数型を先頭アドレスから順に格納するか、あるいは、後
尾アドレスから格納するかといった場合がある。また、
例えば、浮動小数点の表現にいくつかの異なった形式が
用いられるなどの場合がある。この表現形式の違いのた
めに、ある計算機上のデータを、その計算機上で表現さ
れている形式のまま他の計算機に転送しても、受信した
側の計算機では、このデータを、もとのデータと同じ意
味にとらえることができないという問題がある。実施の
形態1は、サーバ上の表現形式と、クライアント上のそ
れが同じである場合を前提としたものである。計算機間
で表現形式が異なる場合には、本発明によるリアルタイ
ム分散共有メモリにおいても、この問題を考慮する必要
がある。本発明の第2の実施の形態では、異なる計算機
間でデータのやり取りを行うにあたって、計算機間でや
り取りされるデータの各項目の型の種類と、各型ごとの
表現形式をあらかじめ定めて、計算機間の転送をこの共
通の表現形式を用いて行うことによって、リアルタイム
分散共有メモリにおける上記問題の解決をはかる。
【0026】図10は、本発明の第2の実施の形態にお
けるデータの表現形式の変換の機構を示したものであ
る。サーバからクライアントへのデータの転送に際し
て、以下のように表現形式の変換が行われる。サーバの
表現形式から共通の形式への変換を hton (host to net
work) 変換と呼ぶ。図11は、hton 変換のアルゴリズ
ムを示したものである。サーバ内には、サーバの表現形
式にしたがってデータが格納されている。さらに、サー
バは各データ項目の型を、型テーブル内に保持してい
る。型テーブルの各レコードは一つのデータ項目に関す
る情報を格納しており、フィールドはデータ項目の番号
と型である。サーバは、各データ項目を共通の表現形式
に変換し、そのデータ項目の型と共通の表現形式による
データ項目を併せて送信する。各データ項目のサーバの
表現形式から共通の形式への変換の方法は、データ項目
の型によって異なる。
【0027】共通の表現形式からクライアントの形式へ
の変換を ntoh 変換と呼ぶ。図12は、ntoh 変換のア
ルゴリズムを示したものである。クライアントは、サー
バから、データ項目の型と共通の表現形式によるデータ
項目の組を受け取る。クライアントは、各データ項目を
クライアントの表現形式に変換し、メモリ上に格納す
る。さらに、各データ項目の型も型テーブル内に格納す
る。
【0028】実施の形態3. (アライメント)一般に、計算機においては、データ項
目を格納する領域の先頭アドレスに何らかの制約があ
る。このようなデータ領域内でのデータの格納方式上の
制約はアラインメントと呼ばれている。アラインメント
は、一般に、計算機によって異なる。このため、ある計
算機上のデータの各データ項目を、データ項目間の空き
バイト数(0の場合もある)を保ったまま別の計算機に
転送しても、受信した側の計算機では、各データ項目を
その型のデータとして読み出せない場合がある。実施の
形態1は、各計算機にアラインメントがない場合を前提
としたものである。各計算機上にアラインメントがある
場合には、本発明によるリアルタイム分散共有メモリに
おいても、この問題を考慮する必要がある。本発明の第
3の実施の形態は、送信側の計算機において、送信する
データにアラインメントによるデータ項目間の空きを作
らないようにして、かつ、受信側の計算機にアラインメ
ントを満たすように受信したデータを格納させる機構を
備えることによってこの問題を解決するものである。ま
た、これによって通信負荷を削減する。
【0029】図13は、本実施の形態におけるアライン
メントを満足させる機構を示したものである。サーバか
らクライアントへのデータの転送に際して、以下のよう
にしてアラインメントの満足が行われる。図14は、ht
on 変換のアルゴリズムを示したものである。サーバ内
には、そのサーバの表現形式にしたがって、サーバのア
ラインメントを満足するようにデータが格納されてい
る。サーバは実施の形態2と同様に各データ項目に関す
る情報を格納するテーブルを持っている。実施の形態2
のテーブルに加えて、各データ項目が格納される領域へ
のポインタのためのフィールドを持つ。図15は、ntoh
変換のアルゴリズムを示したものである。クライアン
ト内にも、サーバと同様のテーブルを用意する。ntoh
変換によって、テーブルの各レコードに、データ項目を
格納する領域へのポインタが格納される。アプリケーシ
ョンはこのテーブルを用いて各データ項目を参照する。
ポインタは各データ項目が、クライアント計算機の制約
を満足するようにクライアント計算機上で生成される。
【0030】実施の形態4. (アドミッション制御)実施の形態1のリアルタイム分
散共有メモリにおいて、クライアント上のアプリケーシ
ョンの要求によってサーバからクライアントへのデータ
転送が開始された場合に、データの到着間隔の周期Pcl
ient からのずれが一定値J以内であること、および、
クライアント上のコピーが、サーバ上のデータに対して
十分新しい(つまり、ある一定期間D以内のコピーであ
る)ことを保証するためには、サーバ、クライアント、
および、ネットワーク上の資源が、このデータの転送に
対して十分割り当てられることが必要である。ここで、
資源とは、計算機の処理能力、ネットワークインターフ
ェイス部分(NI)の処理能力、ネットワークの転送レ
ート(リンク速度)、および、各コンポーネント内のバ
ッファの容量である。また、ネットワークインターフェ
イスとは、各計算機で発生したデータをネットワークに
送信したり、ネットワークからのデータを受信して各計
算機に受け渡すコンポーネントである。上記の資源のう
ち、いずれかが不足しても、パラメータJとDの保証を
行うことができない。本発明の第4の実施の形態は、ク
ライアント上のアプリケーションからの要求があった際
に、現在利用可能な資源の量を調べ、要求に対する転送
を行うための資源を割り当てることが可能かどうかをあ
らかじめ判定し、可能であれば要求に対する転送の開始
を許可し、不可能であれば要求を却下する機構(アドミ
ッション制御機構)を設けることによって、上記の資源
の不足による問題を未然に解決するものである。
【0031】図16は、本実施の形態によるリアルタイ
ム分散共有メモリのために必要となる各コンポーネント
内の資源を示したものである。 (計算機の処理能力)クライアントの要求に対するデー
タの転送に対して、各計算機内の処理能力が不足する
と、パラメータJ、あるいは、Dを満たすことができな
い。各計算機内の処理能力の割当ての可能性の判定は、
計算機内で動作する全てのタスクの周期、もしくは、最
小起動間隔、最大実行時間、および、タスク間の相互排
除における最大ブロック時間を保証すること、タスクの
スケジューリングを各タスクの優先度にしたがって行う
こと、および、タスク間の相互排除に優先度継承機能
(参考文献2)を用いることによって、例えば、以下の
ようにレートモノトニック解析(参考文献1)を用いて
行うことができる。 処理能力の割当ての可能性の判定:計算機内に n 個のタ
スクτi (i = 1, 2, …, n)があるとする。Ti はτi
の周期、もしくは、最小起動間隔、Ci は最大実行時
間、Bi は相互排除における最大ブロック時間(資源に
対する最大待ち時間)とする。このとき、以下の式が成
立すれば、全てのタスクは必ずTi 以内にその実行を終
えることができる。 Σi=1 n Ci/Ti + MAX (B1/T1, B2/T2, …, Bn/T
n) ≦ n (21/n - 1) ここで、優先度継承機能とは、資源を排他的に利用する
タスクのスケジューリングにおいて、ある低い優先度の
タスクτlow が占有し、利用している資源Rに対して、
より高い優先度のタスクτhigh が待ちを行う場合に、
τlow の優先度を資源Rを占有している間だけ一時的に
τhigh の優先度まで高める機能である。これによって
τlow とτhigh との間に更に中間の優先度のタスクτm
iddle が待っていたとしても、τlow の実行とτmiddle
の実行に優先させることができる。つまり、τhigh が
τmiddle に待たされることを防ぐことができる。
【0032】(計算機内のバッファ)サーバ内のトラン
スミッタスレッドとクライアント内のレシーバスレッド
とが、直接ネットワークインターフェイスを介してデー
タのやり取りを行う場合には、計算機内のバッファの割
当ての問題は生じない。しかし、一般の計算機において
は、オペレーティングシステムが、各タスク(スレッ
ド)に代わってネットワークインターフェイスとのデー
タのやり取りを行い、各タスクはオペレーティングシス
テムに対して送信を依頼したり、オペレーティングシス
テムからデータを受信したりする。このような場合に
は、送信されるデータや受信されたデータはオペレーテ
ィングシステム内のバッファに一時的に格納される。ク
ライアントの要求に対するデータの転送に対して、サー
バ側でのバッファが不足すると、転送の遅延、もしく
は、データの欠損が生じる。どちらが生じるかは、バッ
ファ不足時のオペレーティングシステムの振舞いによ
る。クライアント側でのバッファが不足すると、データ
の欠損が生じる。上記のレートモノトニック解析によっ
て、パラメータPclient,J,D,S(データの大きさ)
を持つデータの転送に対して、各データが各計算機内に
留まる最大時間dcomp が求められる。このとき、各計
算機内で、少なくとも大きさ (S / Pclient) * dcomp のバッファが割り当てられれば、各パラメータを満足す
ることができる。
【0033】(ネットワークインターフェイスNIの処
理能力)ネットワークインターフェイスを用いる他の転
送の転送周期と一転送当たりのデータの大きさ、およ
び、優先度の高い転送の発生時に優先度の低い転送を中
断し優先度の高い転送を開始するまでにネットワークイ
ンターフェイスが必要とする最大時間がわかれば、上記
のレートモノトニック解析によって、あるデータ転送に
対して必要なネットワークインターフェイスの処理能力
の割当てが可能かどうかの判定を行うことができる。
【0034】(ネットワークインターフェイス内のバッ
ファ)上記のレートモノトニック解析によって、パラメ
ータPclient, J,D,S(データの大きさ)を持つデー
タの転送に対して、各データがネットワークインターフ
ェイス内に留まる最大時間dni が求められる。このと
き、各ネットワークインターフェイス内で、少なくとも
大きさ (S / Pclient) * dni のバッファが割り当てられれば、各パラメータを満足す
ることができる。
【0035】(ネットワークの転送レート/バッファ)
ATM(非同期転送モード)ネットワークなどのスイッ
チ型ネットワークを用いた場合、ネットワーク内の交換
機(スイッチ)においてデータの遅延が生じたり、あるい
は、スイッチ内のバッファの不足によってデータの欠損
が生じたりする。さらに、スイッチ相互間、および、ス
イッチと計算機間を接続するリンクを介して送信可能な
データの転送量が限られているという制約がある。スイ
ッチ型ネットワークにおいて、あるデータ転送に対し
て、各データが送信側のネットワークインターフェイス
を出発してから受信側のそれに到着するまでに要する最
大時間、および、各スイッチ内でこのデータ転送が必要
とするバッファの最大量を保証してデータ転送を行う手
法の一例(参考文献3)を説明する。 ネットワーク遅延の保証:あるスイッチの出力リンクl
を通る m 個のデータ転送(チャネル) Mi (Ci,di, p
i) (i = 1, 2, ..., m)があるとする。ただし、Ci は
最大メッセージ長、pi は最小メッセージ間隔、di は
このスイッチでの最大許容遅延とする。ただし、Mi は
i が小さいほど高い優先度を持つとする。スイッチは
各出力リンクl への出力を待つメッセージのうち、最も
高い優先度を持つものを先に送信する。ここで、時刻 0
から時刻 t( t > 0,かつ t は時刻 0 以降、チャネ
ルMi の最初のメッセージの送信が完了するまでの時
刻)の間にリンクl に到着するチャネルM1,M2,…,Mi
のメッセージの最大長の総計Wi(t)と、Wi(t)の値が
変化する時刻(つまり、チャネルM1,M2,…,Mi-1 の
メッセージの到着時刻)とMi のメッセージのデッドラ
イン時刻を要素とする集合Si が次のように求められ
る。 Si = {di} ∪ { k・pj | j=1,2,…,i-1 ; k = 1, 2,
…, tranc(di/pj)} Wi (t) = Σj=1 i-1 Cj ・ round(t / pj) + Ci このとき、Si のある要素 t についてWi (t) ≦ t が
成り立つとき、および、そのときのみ、データ通信Mi
のメッセージはこのスイッチでの最大許容遅延di を満
たすことができる。ここで、時刻 0 から時刻 t までの
間にリンクl から出力可能なメッセージ長の総和は高々
t であることに注意する。また、round(a)はある実数
a より小さくない最小の整数、tranc(a)はある実数 a
より大きくない最大の整数である。
【0036】(アルゴリズム)あるデータ転送要求に対
するアドミッション制御は、クライアント内のマザース
レッドとサーバ内のそれによって行われる。
【0037】(クライアント側のアルゴリズム)図17
は、クライアント内のマザースレッドの、データ転送要
求に対するアドミッション制御のアルゴリズムを示した
ものである。マザースレッドはキューからの要求を待
つ。要求には転送開始と転送終了がある。転送開始の要
求を受け取ると、資源の割当可否を調べ(ステップ17
01)、可能であれば資源を割り当て(ステップ170
2)、割当が不可能な場合は、アプリケーションにエラ
ーとして転送の却下を通知する(ステップ1708)。
資源の割当が成功すれば、ポートC3 およびレシーバス
レッドを生成し(ステップ1703)、ポートC1 を介
してサーバ側ミドルウェイに要求を伝える(ステップ1
704)。次にポートC2 を介してサーバ側ミドルウェ
イからの応答を待ち(ステップ1705)、転送要求が
認められれば転送受信を開始する。転送が却下された場
合はレシーバスレッドおよびポートC3 を消滅させ(ス
テップ1706)、資源の割当を解放する(ステップ1
707)。この場合は、アプリケーションにエラーの発
生を通知し(ステップ1708)、次の繰り返しへもど
る。転送終了の要求を受けとると、ポートC1 を介して
サーバ側ミドルウェイに要求を伝え(ステップ170
9)、ポートC2 を介してサーバ側ミドルウェイからの
要求を待つ(ステップ1710)。次にレシーバスレッ
ドとポートC3 を消滅させ(ステップ1711)、資源
の割当を解放する(ステップ1712)。上記以外の要
求を受け取った場合はアプリケーションにエラーの発生
を通知し(ステップ1708)、次の繰り返しにもど
る。実施の形態1と同様に、サーバ側ミドルウェイから
の応答を待つ場合(ステップ1705,1710)は、
タイムアウト検出を設定し、タイムアウトが発生した場
合は、アプリケーションにエラーの発生を通知する。
【0038】(サーバ側のアルゴリズム)図18は、サ
ーバ内のマザースレッドの、データ転送要求に対するア
ドミッション制御のアルゴリズムを示したものである。
マザースレッドはポートS1 を介してクライアントから
の要求を待ち、要求が転送の開始であれば、資源の割当
可否を調べ(ステップ1801)、可能であれば資源を
割り当てる(ステップ1802)。資源割当が不可能な
場合はクライアントに転送の却下を通知する(ステップ
1803)。資源の割当が成功すればポートS3 を生成
してポートC3 に接続し、トランスミッタスレッドを生
成する(ステップ1804)。次にクライアントに転送
許可を通知し(ステップ1805)、転送を開始する。
クライアントからの要求が転送の終了である場合は、ト
ランスミッタスレッドおよびポートS3 を消滅させて
(ステップ1806)、資源を解放し(ステップ180
7)、ポートS2 を介してクライアント側ミドルウェア
に応答を通知する(ステップ1808)。上記以外の要
求を受け取った場合はクライアントにエラーを通知する
(ステップ1809)。
【0039】実施の形態5. (アドミッション制御:静的な経路確立)アプリケーシ
ョンによっては、データの転送を要求してから要求が受
け付けられたことを知らされるまでの時間(以下時間T
response)、あるいは、データの転送を要求してからデ
ータの転送が開始されるまでの時間(以下時間Tstar
t)に関して厳しい制約を持つものがある。例えば、ク
ライアント上のアプリケーションが、プラントの運転員
が監視を行うためのオペレータステーションであった場
合、オペレータがプラントデータの表示を開始するため
の画面上のボタンを押下してから、プラントデータがグ
ラフなどの形で表示されはじめるまでの時間が、ある一
定値以内であることが要求される。本発明の実施の形態
4によるリアルタイム分散共有メモリの場合では、Tre
sponse、あるいは、Tstart に、クライアント、サー
バ、およびネットワーク内の資源の割当ての判定のため
の時間が含まれている。
【0040】図21は、実施の形態4において、データ
転送の要求に対してデータの転送が開始されるまでのタ
イムチャートである。ここでは、 Tresponse = t7 - t0 Tstart = t6 - t0 である。t0 はアプリケーションが転送の開始を要求し
た時刻である。アプリケーションが要求の受付を知らさ
れる時刻t7 と、レシーバスレッドが受信を開始する時
刻t6 の時間上の順序は、逆になってもよい。Trespons
e およびTstartに、クライアント側での判定(時刻t1
に完了)に要する時間と、サーバ側での判定(時刻t4
に完了)に要する時間が含まれていることがわかる。こ
れらの判定に要する時間は、その最大値を見積もること
が困難である。
【0041】本実施の形態では、転送前に必要な処理を
2段階に分け、まずデータ転送の要求を行う前に、その
データ転送に必要な資源の割当てをクライアントに要求
させ、クライアント側とサーバ側それぞれで資源の割当
てが可能か判定し、可能であればあらかじめ資源の割当
てを行い、不可能であれば割当ての要求を却下する。次
に可能な場合に限って、以降任意の時点でクライアント
にデータ転送を要求させる。このようにすることによっ
て、Tresponse とTstart を小さくし、かつ、最大値
を見積もることができるようにする。
【0042】図22は、本実施の形態において、データ
転送の要求に対してデータの転送が開始されるまでのタ
イムチャートである。時刻t0 において、アプリケーシ
ョンがデータ転送のための資源の割当てを要求する。そ
して、アプリケーションは、時刻t7 に資源が割り当て
られたことを知らされる。時刻t7 より後の任意の時刻t
8 において、アプリケーションがデータの転送を要求す
ると、時刻t12 に転送要求が受け付けられたことを知ら
され、また、時刻t11 にレシーバスレッドの受信が開始
される。時刻t11 とt12 が時間上の順序が逆になっても
よい。ここで、 Tresponse = t12 - t8 Tstart = t11 - t8 である。Tresponse およびTstart のいずれにも、タ
スク(スレッド)間の要求やデータの転送、タスクの生
成以外の処理は含まれていない。したがって、実施の形
態4の場合と比較して、判定のための時間を含まない
分、Tresponse およびTstart を短縮することができ
る。さらに、要求やデータの転送やタスクの生成といっ
た個々の処理は、その実行に要する最大時間を見積もる
ことができるので、これらの時間の和であるTresponse
あるいはTstart の最大値を見積もることができる。
【0043】実施の形態6. (アドミッション制御:転送帯域の共有)本実施の形態
では、実施の形態5においてでスイッチ型ネットワーク
を用いる場合を考える。ネットワーク内の各交換機(ス
イッチ)では、同一の出力リンクより出る複数のデータ
転送や他の種類の転送に含まれるパケットをある順序で
送出するために、各転送に含まれるパケットをバッファ
内に一時的に格納する。図26は交換機の内部構造の例
である。ここでは、各出力リンク毎にバッファを割り当
てているが、交換機内のバッファ領域を必要に応じて各
出力リンクに分配できるような構成であってもよい。実
施の形態5をスイッチ型ネットワーク上で適用する場合
には、図23に示すように、システム内に資源管理テー
ブルを設ける。スイッチ型ネットワークにおいては、各
データ転送に対して、それが必要とするリンクの帯域と
交換機内のバッファを割り当てる必要がある。これは、
各データ転送において、転送レートと無欠損を保証する
ためである。
【0044】図20に示したサーバ側のマザースレッド
のアルゴリズムのステップL1 においてネットワークの
転送ルートの割当可否を調べ、可能であればステップL
7 で割り当てる。また、ステップL2 において交換機内
のバッファの割当可否を調べ、可能であればステップL
9 で割り当てる。各ステップにおいて、資源管理テーブ
ルの読み出しと更新が行われる。資源管理テーブルは、
システム内のサーバ、クライアント、あるいは、他の計
算機のいずれかの上に配置される。資源管理テーブルを
配置された計算機の停止に備えて、同じ内容を常に保持
し、先の計算機が停止した場合にはこれにとって代わる
ことのできる待機計算機を用意してもよい。全ての計算
機は、資源管理テーブルの内容の読み出しおよび更新が
できる。テーブルを格納する計算機と各計算機間の通信
は、到達遅延や無損失の保証がない通信サービスを用い
てもよい。各計算機や各交換機では、これらの通信に他
の通信より低い優先度を持たせる。これが不可能な場合
には、この通信のための専用のネットワークを用いても
よい。したがって、これらの通信のためにクライアント
とサーバ間のデータ転送が阻害されることはない。
【0045】図33は資源管理テーブルの内部構成を示
したものである。資源管理テーブルは、チャネルリス
ト、リンク帯域リスト、交換機バッファリスト、およ
び、これらのリストと意味的に結び付けられる要素のリ
スト構造(つなぎ構造)からなる。チャネルリストは、
システム内で現在確立されている各データ転送に関する
情報を格納している。各レコード(行)は、1つのデー
タ転送に関する情報を示している。チャネル番号のフィ
ールド(列)は、システム内で一意に割り当てられるデ
ータ転送の番号である。クライアント、および、サーバ
のフィールドは、それぞれ、データ転送の末端のノード
の番号である。利用帯域のフィールドは、このデータ転
送が利用する最大帯域である。共有のフィールドについ
ては本実施の形態内で後述する。ポインタは、このデー
タ転送の利用するリンクに対応する要素のリストの先頭
を示している。リンク帯域リストは、各リンクに関する
情報を格納している。各レコード(行)は、1つのリン
クに関する情報を格納している。リンク番号のフィール
ド(列)は、システム内で一意に割り当てられるリンク
の番号である。総帯域のフィールドは、このリンクの最
大転送レートであり、一般に定数である。利用総帯域の
フィールドは、このリンク上に確立されているデータ転
送の最大利用帯域の総和である。交換機番号は、このリ
ンクの始点と接続されている交換機である。始点が計算
機に接続されている場合には何も格納されない(図33
中…で記述)。ポインタは、このリンク上に確立されて
いるデータ転送に対応する要素のリストの先頭を示して
いる。交換機バッファリストは、各交換機に関する情報
を格納している。各レコード(行)は、1つの交換機に
関する情報を格納している。交換機番号のフィールド
(列)は、システム内で一意に割り当てられる交換機の
番号である。総バッファ量のフィールドは、交換機の持
つバッファの量である。利用総バッファ量のフィールド
は、このうち各データ転送に割り当てられている量の総
和である。ポインタは、この交換機上に確立されている
データ転送に対応する要素のリストの先頭を示してい
る。各要素は、あるデータ転送の、その経路上のあるリ
ンクとその始点に接続された交換機における資源の利用
に関する情報を格納している。図34は要素の内部構成
を示したものである。Bはこのデータ転送に対して割り
当てられた交換機内のバッファの量である。I1 はリン
クの番号、I2 はデータ転送の番号である。P1 は同一
リンク内に確立されている他のデータ転送に対する要素
へのポインタである。このポインタを用いて同一リンク
内で確立されている全てのデータ転送に対する要素が直
線状のリストに列べられる。リストの最後の要素のP1
には終端記号が代入される。P2 は同一データ転送の経
路上の他のリンクに対する要素へのポインタである。こ
のポインタを用いてデータ転送の経路上の全てのリンク
に対する要素が直線状のリストに列べられる。リストの
最後の要素のP2 には終端記号が代入される。P3 は同
一交換機内に確立されている他のデータ転送に対する要
素へのポインタである。このポインタを用いて同一交換
機内で確立されている全てのデータ転送に対する要素が
直線状のリストに列べられる。リストの最後の要素のP
3 には終端記号が代入される。以上において、各リスト
内の要素の順序は任意である。
【0046】(テーブルの更新について)クライアント
のマザースレッドは、データ転送の要求を発行する際
に、このデータ転送のためのレコードをチャネルリスト
に作成し、各フィールドに必要な情報を書き込む。ま
た、このデータ転送に対する要素の作成と、P2 による
リストの作成を行う(図19中ステップL3)。なお、
経路はクライアントとサーバの組から一意に定められる
ものとする。サーバのマザースレッドは、クライアント
からの要求を受理すると、リンク帯域リストと交換機バ
ッファリストの内容の更新を行い、対応する要素のP1
とP3 によるリストの更新を行う(図20中ステップL
7,L9)。要求が却下された場合、および、転送が終了
した場合には、クライアントのマザースレッドはチャネ
ルリストから該当するデータ転送のレコードとこのデー
タ転送のための要素を削除する(図19中ステップL5,
L6)。転送の終了を要求された場合、サーバのマザー
スレッドは、リンク帯域リストと交換機バッファリスト
の内容の更新を行い、対応する要素のP1 とP3 による
リストの更新を行う(図20中ステップL8,L10)。
【0047】(実施の形態5の問題点)図23のネット
ワーク構成内において、図24に示すようなデータ転送
が行われるとする。ただし、データ転送DT1, DT2,
DT3 のうち高々1つしか同時に行われないものとす
る。これは、例えばクライアント1がオペレータステー
ションであって、操作員はサーバ1、サーバ2、サーバ
3の持つデータのうち、同時に高々一つのサーバのデー
タしか見ない、というような場合に相当する。
【0048】図24のデータ転送を行うために割り当て
られる転送帯域の各リンク毎の合計は、それぞれ以下の
ようになる。 リンク1 R1 + R2 + R3 リンク2 R4 リンク3 R5リンク 4 R1 + R2 + R3 + R4 + R5 リンク5 R1 リンク6 R2 + R4 リンク7 R3 + R5 ここで、データ転送DT1, DT2, DT3 のうち高々1
つしか同時に行われない、という事実を考慮すると、リ
ンク1およびリンク4では、それぞれ以下の帯域しか同
時に用いられないということがわかる。 リンク1 MAX (R1, R2, R3) リンク4 MAX (R1, R2, R3) + R4 + R5 つまり、実施の形態5の場合には、実際に必要な量より
多くの転送帯域を割り当てることになる、という問題が
ある。さらに、各リンクの転送帯域をRlinkとすると、
例えば、MAX (R1, R2, R3) + R4 + R5 ≦ Rlink
< R1 + R2 + R3 + R4 + R5が成り立つ場合には、
実際には割当てが可能であるのに、割当てが不可能であ
るとして、いずれかのデータ転送を却下してしまうとい
う機会損失の問題がある。
【0049】本実施の形態では、そのうちの高々一つし
か同時に行われない複数のデータ転送の組(単に組と呼
ぶ)に対して、それらが利用するあるリンクRにおい
て、各データ転送の転送帯域の内の最大値に等しい転送
帯域を確保し、これをこの組に対して割り当てることに
より、上記実施の形態5における機会損失の問題を解決
する。これによってシステムが保有する転送帯域を最大
限に利用し、実際には可能であるデータ転送を不可能と
みなして却下するという機会損失を排除することができ
る。チャネルリストの共有のフィールドは、資源を共有
するデータ転送の組に関する情報を格納する。レコード
のデータ転送が、他のデータ転送と同じ組にあれば、そ
のうちの一つのチャネル番号をさす。組のあるデータ転
送のチャネル番号が、必ず他のデータ転送の共有のフィ
ールドに指定されている。他のデータ転送と同じ組にな
ければ、このフィールドには「なし」と記述する。要求
されたデータ転送が他のデータ転送と同じ組にあれば、
図20のステップL1、および、L7 において、先のデ
ータ転送に対して新たに帯域を割り当てることなく、組
内の最大量の帯域を組に対して割り当てるようにリンク
帯域リストを更新する。また、ある組に属するデータ転
送が終了する場合には、ステップL8 において組内の他
に残るデータ転送の帯域のうち最大のものを組に対して
与えるように変更する。
【0050】実施の形態7. (アドミッション制御:交換機内のバッファの共有)本
実施の形態を図23のネットワーク構成例を用いて説明
する。このネットワーク構成内において、図25に示す
ようなデータ転送が行われるとする。実施の形態6と同
様に、データ転送DT1, DT2, DT3 のうち高々1つ
しか同時に行われないものとする。実施の形態5のリア
ルタイム分散共有メモリでは、各データ転送に対して各
交換機内のバッファの領域を割り当てる。したがって、
図25のデータ転送を行うために割り当てられる各交換
機内のバッファは、それぞれ以下のようになる。 交換機1 B1,1 + B1,2 + B1,3 + B1,4 + B1,5 交換機2 B2,1 + B2,2 + B2,3 + B2,4 + B2,5 ここで、データ転送DT1, DT2, DT3 のうち高々1
つしか同時に行われない、という事実を考慮すると、交
換機1および交換機2では、それぞれ以下のバッファの
領域しか同時に用いられないということがわかる。 交換機1 MAX(B1,1, B1,2, B1,3) + B1,4 + B1,5 交換機2 MAX(B1,1, B1,2, B1,3) + B1,4 + B1,5 つまり、実施の形態5の場合には、実際に必要な量より
多くのバッファの領域を割り当てることになる、という
問題がある。さらに、各交換機のバッファ量をBswitch
とすると、例えば、 MAX(B1,1, B1,2, B1,3) + B1,4 + B1,5 ≦ Bswit
ch< B1,1 + B1,2 + B1,3 + B1,4 + B1,5 が成り立つ場合には、実際には割当てが可能であるの
に、割当てが不可能であるとして、いずれかのデータ転
送を却下してしまうという問題がある。
【0051】本実施の形態では、高々一つしか同時に行
われない複数のデータ転送の組に対して、それらが利用
するある交換機SWにおいて、各データ転送が必要とす
るバッファ量の最大値に等しい量のバッファを確保し、
これをこの組に対して割り当てることにより、上記実施
の形態5における不合理な却下による機会損失の問題を
解決する。
【0052】要求されたデータ転送が他のデータ転送と
同じ組にあれば、図20のステップL2、および、L7
において、先のデータ転送に対して新たにバッファを割
り当てることなく、組内の最大量のバッファを組に対し
て割り当てるように交換機バッファリストを更新する。
また、ある組に属するデータ転送が終了する場合には、
ステップL8 において組内の他に残るデータ転送のバッ
ファ量のうち最大のものを組に対して与えるように変更
する。これにより、システムが保有するバッファ容量を
最大限に利用し、実際には可能であるデータ伝送を不可
能とみなして却下するという機会損失を排除することが
できる。
【0053】実施の形態8. (履歴データの利用)本実施の形態は、指定した時間だ
け過去のデータを利用することを目的としたものであ
る。図1におけるコピー領域を、最新のものだけでな
く、一定期間分(ある周期分)の過去のコピーを保持す
るようにすることができる。図27に、過去のコピーを
保持する場合のクライアントの内部構成を示す。コピー
領域は、最新のコピーを含めてデータ転送の周期n回分
過去のコピーを格納している。コピー領域は先入れ後出
し(FIFO)キューとして構成され、空き領域がない
ときに新たなコピーが挿入されると、最古のコピーが廃
棄される。サーバからのコピーを受け取ったレシーバス
レッドは、そのコピーをこのキューに挿入する。キュー
内には、より先頭により新しいコピーが格納される。つ
まり、k (0 ≦ k ≦ n) 周期分過去のコピーはこのキュ
ーの先頭から(k+1)番目に格納されている。アプリケー
ションは、ミドルウェアの提供するライブラリ関数を用
いて、コピー領域内のコピーを、最新のコピーが格納さ
れた時刻からの相対時刻をキーにして読み出すことがで
きる。
【0054】図29は、本実施の形態における、データ
の転送の開始を要求するためのライブラリ関数のアプリ
ケーションインターフェイスである。引数 server, bu
f, period, subset, num については、実施の形態1に
おけるデータの転送の開始を要求するためのライブラリ
関数(図3)の場合と同じ意味である。引数qid のさ
す領域には、ミドルウェアによって決定されるコピー領
域の識別番号が格納される。この識別番号は、クライア
ント内で一意である。引数qnum はコピー領域内に格納
されるコピーの数である。
【0055】図30は、本実施の形態における、コピー
領域のコピーを、現在時刻からの相対時間をキーにして
読み出すためのライブラリ関数のアプリケーションイン
ターフェイスである。引数qid はコピー領域の識別番
号である。引数 time は最新のコピーが格納された時刻
から要求するデータの時刻を差し引いた時間である。要
求した時刻より後で、最も過去のコピーが引数 buf の
さす領域にさらにコピーされる。コピーされたデータの
最新のコピーが格納された時刻からの相対時刻が、引数
gtime のさす領域に格納される。このライブラリ関数
の内部で、レシーバスレッド間とのコピー領域への読み
出し/書き込みに関する相互排除を行うことによって、
読み出したデータが正当なものであることを保証するこ
とができる。
【0056】実施の形態9. (タスクの起動条件の判定)本実施の形態は、履歴デー
タに関する特定の条件のもとにタスクを起動する判定機
能を備えたものである。図27のコピー領域の内容が、
レシーバスレッドによって更新された際に、このコピー
領域上のある定められた条件の成立を判定し、成立して
いればある定められたタスクを起動するようにすること
ができる。このようにすることによって、プラントの履
歴データに関して特定の条件が成立した場合に、操作員
にこれを知らせたり、プラントに対して何らかの制御を
行ったりすることが可能となる。この機能により、操作
員が常時監視していなくてもデータ値の異常や急変等を
自動的に判断し、あらかじめ定められたタスクを起動す
ることができる。
【0057】図28は、本実施の形態における、クライ
アントの内部構成を示したものである。アプリケーショ
ンはライブラリ関数を呼び出すことによって、マザース
レッドに対して、判定すべき条件と、起動すべきタスク
に関する情報を受け渡す。これらの情報に基づいて、マ
ザースレッドは、条件を判定する評価スレッドをミドル
ウェア内に、条件の成立時に起動されるタスクをアプリ
ケーション内に、それぞれ生成する。レシーバスレッド
は、ポートC3 からコピーを受信し、これをコピー領域
に格納したのち、評価スレッドを起動する。起動された
評価スレッドはコピー領域のデータを読みだし、アプリ
ケーションより与えられた条件が成立しているかを判定
する。成立していれば、あらかじめ指定されたアプリケ
ーション内のタスクを起動する。成立していなければ何
も行わない。評価スレッドが条件の判定に要する最大実
行時間Ccond、および、条件成立時に起動されるタスク
の最大実行時間Cfunc、各タスクとレシーバスレッド相
互間のコピー領域への読み出し/書き込みに関する相互
排除による最大ブロック時間Bq を求めて、レートモノ
トニック解析(RMA)によるスケジュール可能性判定
を用いて、レシーバスレッドがデータを格納してから、
この条件成立時に起動されるタスクが実行を完了するま
での時間Dfunc の最大値を保証することによって、こ
のタスクの実行中には、コピー領域内の先頭からk番目
(0 ≦ k ≦ n)のデータは、時刻 Tcur - k・Tclient - Dfunc から、時刻 Tcur - k・Tclient までの間にレシーバスレッドによってコピー領域に格納
されたデータであることを保証することができる。ただ
し、Tcur は現在の時刻、Tclient はクライアン
トのレシーバスレッドが受信するデータの到着周期であ
る。
【0058】図31は、本実施の形態における、タスク
を登録するためのライブラリ関数のアプリケーションイ
ンターフェイスである。引数qid は図31のライブラ
リ関数で与えられるコピー領域の識別番号である。引数
cond は、条件の成立を判定を行う関数へのポインタ
で、ミドルウェアはこの関数が真(1)を返せば条件が成
立しているものとみなし、偽(0)を返せば成立していな
いものとみなす。引数 func は、条件の成立時に起動さ
れるタスクが起動時に実行する関数である。引数 prio
は、このタスクの実行のクライアント内での優先度であ
る。レートモノトニック解析によるスケジュール可能性
判定を行う場合には、引数ctime に値Ccond を、引数
ftime に値Cfunc を、引数 deadline に値Dfuncを、
それぞれ代入する。
【0059】
【発明の効果】以上のように、本発明の第1の構成によ
れば、特定のクライアント計算機と特定のサーバ計算機
との間で、当該クライアント計算機が必要とするデータ
のみを当該サーバ計算機が転送する制御手段と、当該計
算機間の通信ネットワークの使用時間を上記データ通信
に必要な時間のみに制限する制御手段とを備え、クライ
アント計算機からの要求に応じて、サーバ計算機内のデ
ータの一部、もしくは、全体のコピーをクライアント計
算機上に生成するようにしたので、データ転送量の削減
とH/W資源やネットワーク資源の使用量の削減が可能
となる。
【0060】また、第2の構成によれば、サーバ計算機
上のデータの表現形式と、クライアント計算機上のコピ
ーの表現形式が異なる場合に、上記データから上記コピ
ーを生成する際に、各計算機上のデータの表現形式に関
する情報を元に、サーバ計算機上の表現形式から各計算
機間に共通な表現形式を経由して、クライアント計算機
上の表現形式に変換する制御手段を備えているので、分
散システム内にデータの表現形式の異なる計算機が存在
してもデータの転送が可能となる。
【0061】また、第3の構成によれば、サーバ計算機
上のデータの格納方式と、クライアント計算機上のコピ
ーの格納方式が異なる場合に、各計算機上の格納方式に
関する情報を元に、サーバ計算機上の格納方式から各計
算機間に共通な格納方式を経由してクライアント計算機
上の格納方式に変換し、その格納方式にしたがって上記
コピーを格納する制御手段を備えているので、分散シス
テム内にデータの格納方式の異なる計算機が存在しても
データの転送が可能となる。
【0062】また、第4の構成によれば、クライアント
計算機からサーバ計算機への要求があった場合に、クラ
イアント計算機上でサーバ計算機上のデータのコピーの
生成を開始する前に、サーバ計算機、クライアント計算
機、および、両計算機を接続するネットワーク上に、コ
ピーが一定時間内に得られたものであることを保証する
ために必要な資源が確保可能かどうかを確認し、確保可
能であれば、コピーの生成の開始を許可し、確保不可能
であれば、コピーの生成の開始を却下する制御手段を備
えているので、クライアント計算機上のデータが所望の
遅れ時間以内に転送されたものであることを保証するこ
とができる。
【0063】また、第5の構成によれば、サーバ計算機
とクライアント計算機の組に対して、コピーの生成が開
始される以前に、必要な資源の割り当ての可否を確認し
ておく制御手段を備えているので、データの転送を要求
してから要求が受け付けられたことが通知されるまでの
時間とデータの転送が開始されるまでの時間を見積もる
ことができ、それらの最大時間を保証することができ
る。
【0064】また、第6の構成によれば、サーバ計算機
とクライアント計算機がそれぞれ複数存在し、スイッチ
型ネットワークを用いる場合に、互いにデータ転送を行
うサーバ計算機とクライアント計算機の組のうち、同時
にコピーの生成を行うことのない複数の組に、スイッチ
どうし、あるいは、スイッチと計算機を接続するリンク
における転送帯域の割当てを共有させる制御手段を備え
ているので、分散システムが保証する転送帯域を最大限
に利用し、実際には可能であるデータ転送を不可能とみ
なして却下するという機会損失をなくすことができる。
【0065】また、第7の構成によれば、サーバ計算機
とクライアント計算機がそれぞれ複数存在し、スイッチ
型ネットワークを用いる場合に、互いにデータ転送を行
うサーバ計算機とクライアント計算機の組のうち、同時
にコピーの生成を行うことのない複数の組に、スイッチ
内のバッファの割当てを共有させる制御手段を備えてい
るので、分散システムが保有するバッファ容量を最大限
に利用し、実際には可能であるデータ転送を不可能とみ
なして却下するという機会損失をなくすことができる。
【0066】また、第8の構成によれば、クライアント
内のコピーの、ある一定期間の過去のものを保持し、ア
プリケーションから、最新のコピーが格納された時刻か
らの相対時間によって、この過去のコピーを参照する制
御手段を備えているので、最新の転送データから任意の
一定時間だけ過去のデータを使用することができる。
【0067】また、第9の構成によれば、最新のコピー
の到着時に、到着したコピー、および、保持している過
去のデータに関するある定められた条件の成立を判定
し、条件が成立していれば、ある定められたクライアン
ト内のタスクを起動させる制御手段を備えているので、
履歴データの挙動にもとづいてあらかじめ定められたタ
スクを自動的に起動することができる。
【図面の簡単な説明】
【図1】 実施の形態1によるリアルタイム分散共有メ
モリを用いたプラント監視システムの構成を示す図であ
る。
【図2】 クライアント内のミドルウェアの内部の構成
を示す図である。
【図3】 転送の開始を要求するライブラリ関数を説明
する図である。
【図4】 転送の終了を要求するライブラリ関数を説明
する図である。
【図5】 クライアント内のミドルウェアのマザースレ
ッドのアルゴリズムを説明する図である。
【図6】 クライアント内のミドルウェアのレシーバス
レッドのアルゴリズムを説明する図である。
【図7】 サーバ内のミドルウェアの内部の構成を示す
図である。
【図8】 サーバ内のミドルウェアのマザースレッドの
アルゴリズムを説明する図である。
【図9】 サーバ内のミドルウェアのトランスミッタス
レッドのアルゴリズムを説明する図である。
【図10】 実施の形態2におけるデータの表現形式の
変換の機構を説明する図である。
【図11】 hton 変換のアルゴリズムを説明する図で
ある。
【図12】 ntoh 変換のアルゴリズムを説明する図で
ある。
【図13】 実施の形態3におけるアラインメントを満
足させる機構を説明する図である。
【図14】 hton 変換のアルゴリズムを説明する図で
ある。
【図15】 ntoh 変換のアルゴリズムを説明する図で
ある。
【図16】 実施の形態4によるリアルタイム分散共有
メモリのために必要となる各コンポーネント内の資源を
示す図である。
【図17】 クライアント内のマザースレッドの、デー
タ転送要求に対するアドミッション制御のアルゴリズム
を説明する図である。
【図18】 サーバ内のマザースレッドの、データ転送
要求に対するアドミッション制御のアルゴリズムを説明
する図である。
【図19】 実施の形態6におけるクライアント側マザ
ースレッドのアルゴリズムを説明する図である。
【図20】 実施の形態6におけるサーバ側マザースレ
ッドのアルゴリズムを説明する図である。
【図21】 実施の形態4における転送開始時のタイム
チャートである。
【図22】 実施の形態5における転送開始時のタイム
チャートである。
【図23】 実施の形態5におけるネットワークの構成
例を示す図である。
【図24】 図23のネットワーク構成例におけるデー
タ転送を説明する図である。
【図25】 実施の形態7に係わり図23のネットワー
ク構成例におけるデータ転送を説明する図である。
【図26】 実施の形態6における交換機の内部構造の
例を示す図である。
【図27】 実施の形態8におけるクライアントの内部
構成を示す図である。
【図28】 実施の形態9におけるクライアントの内部
構成を示す図である。
【図29】 実施の形態8における転送の開始を要求す
るライブラリ関数を説明する図である。
【図30】 実施の形態8におけるコピーを読み出すラ
イブラリ関数を説明する図である。
【図31】 実施の形態9におけるタスク起動を登録す
るライブラリ関数を説明する図である。
【図32】 従来の監視制御システムの構成を示す図で
ある。
【図33】 実施の形態6における資源管理テーブルの
内部構成を示す図である。
【図34】 実施の形態6における要素の内部構成を示
す図である。

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 時間とともに変化するデータを持つサー
    バ計算機、計算機を接続するためのネットワーク、該ネ
    ットワークによって該サーバ計算機と接続されたクライ
    アント計算機からなる分散システムにおいて、特定のク
    ライアント計算機と特定のサーバ計算機との間で、当該
    クライアント計算機が必要とするデータのみを当該サー
    バ計算機が転送する制御手段と、当該計算機間の通信ネ
    ットワークの使用時間を上記データ通信に必要な時間の
    みに制限する制御手段とを備え、クライアント計算機か
    らの要求に応じて、サーバ計算機内のデータの一部、も
    しくは、全体のコピーをクライアント計算機上に生成す
    ることを特徴とする実時間分散データ共有方式。
  2. 【請求項2】 サーバ計算機上のデータの表現形式と、
    クライアント計算機上のコピーの表現形式が異なる場合
    に、上記データから上記コピーを生成する際に、各計算
    機上のデータの表現形式に関する情報を元に、サーバ計
    算機上の表現形式から各計算機間に共通な表現形式を経
    由して、クライアント計算機上の表現形式に変換する制
    御手段を備えることを特徴とする請求項1記載の実時間
    分散データ共有方式。
  3. 【請求項3】 サーバ計算機上のデータの格納方式と、
    クライアント計算機上のコピーの格納方式が異なる場合
    に、各計算機上の格納方式に関する情報を元に、サーバ
    計算機上の格納方式から各計算機間に共通な格納方式を
    経由してクライアント計算機上の格納方式に変換し、そ
    の格納方式にしたがって上記コピーを格納する制御手段
    を備えることを特徴とする請求項1記載の実時間分散デ
    ータ共有方式。
  4. 【請求項4】 クライアント計算機からサーバ計算機へ
    の要求があった場合に、クライアント計算機上でサーバ
    計算機上のデータのコピーの生成を開始する前に、サー
    バ計算機、クライアント計算機、および、両計算機を接
    続するネットワーク上に、コピーが一定時間内に得られ
    たものであることを保証するために必要な資源が確保可
    能かどうかを確認し、確保可能であれば、コピーの生成
    の開始を許可し、確保不可能であれば、コピーの生成の
    開始を却下する制御手段を備えることを特徴とする請求
    項1記載の実時間分散データ共有方式。
  5. 【請求項5】 サーバ計算機とクライアント計算機の組
    に対して、コピーの生成が開始される以前に、必要な資
    源の割り当ての可否を確認しておく制御手段を備えるこ
    とを特徴とする請求項4記載の実時間分散データ共有方
    式。
  6. 【請求項6】 サーバ計算機とクライアント計算機がそ
    れぞれ複数存在し、スイッチ型ネットワークを用いる場
    合に、互いにデータ転送を行うサーバ計算機とクライア
    ント計算機の組のうち、同時にコピーの生成を行うこと
    のない複数の組に、スイッチどうし、あるいは、スイッ
    チと計算機を接続するリンクにおける転送帯域の割当て
    を共有させる制御手段を備えることを特徴とする請求項
    1記載の実時間分散データ共有方式。
  7. 【請求項7】 サーバ計算機とクライアント計算機がそ
    れぞれ複数存在し、スイッチ型ネットワークを用いる場
    合に、互いにデータ転送を行うサーバ計算機とクライア
    ント計算機の組のうち、同時にコピーの生成を行うこと
    のない複数の組に、スイッチ内のバッファの割当てを共
    有させる制御手段を備えることを特徴とする請求項1記
    載の実時間分散データ共有方式。
  8. 【請求項8】 クライアント内のコピーの、ある一定期
    間の過去のものを保持し、アプリケーションから、最新
    のコピーが格納された時刻からの相対時間によって、こ
    の過去のコピーを参照する制御手段を備えることを特徴
    とする請求項1記載の実時間分散データ共有方式。
  9. 【請求項9】 最新のコピーの到着時に、到着したコピ
    ー、および、保持している過去のデータに関するある定
    められた条件の成立を判定し、条件が成立していれば、
    ある定められたクライアント内のタスクを起動させる制
    御手段を備えることを特徴とする請求項8記載の実時間
    分散データ共有方式。
JP8159931A 1996-06-20 1996-06-20 実時間分散データ共有方式 Pending JPH1011382A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8159931A JPH1011382A (ja) 1996-06-20 1996-06-20 実時間分散データ共有方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8159931A JPH1011382A (ja) 1996-06-20 1996-06-20 実時間分散データ共有方式

Publications (1)

Publication Number Publication Date
JPH1011382A true JPH1011382A (ja) 1998-01-16

Family

ID=15704286

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8159931A Pending JPH1011382A (ja) 1996-06-20 1996-06-20 実時間分散データ共有方式

Country Status (1)

Country Link
JP (1) JPH1011382A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015062133A (ja) * 2002-04-15 2015-04-02 フィッシャー−ローズマウント システムズ,インコーポレイテッド プロセス制御システムとともに使用するためのウェブサービスに基づいた通信

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015062133A (ja) * 2002-04-15 2015-04-02 フィッシャー−ローズマウント システムズ,インコーポレイテッド プロセス制御システムとともに使用するためのウェブサービスに基づいた通信
US9760651B2 (en) 2002-04-15 2017-09-12 Fisher-Rosemount Systems, Inc. Web services-based communications for use with process control systems

Similar Documents

Publication Publication Date Title
US4642758A (en) File transfer scheduling arrangement
US5815678A (en) Method and apparatus for implementing an application programming interface for a communications bus
EP0365731B1 (en) Method and apparatus for transferring messages between source and destination users through a shared memory
JPH11234309A (ja) 非同期転送モード・セル送信スケジューリング
JPH11252127A (ja) オーバースケジュール条件でのatmセル送信の公平なスケジューリング
US7123614B2 (en) Method and device for communicating between a first and a second network
EP1016252B1 (en) Process scheduling in computer network
JPS611146A (ja) 情報通信装置
US5347514A (en) Processor-based smart packet memory interface
Vasques et al. Pre-run-time schedulability analysis in fieldbus networks
EP3734919A1 (en) In-band signalling for dynamic transmission time window control
US5535366A (en) Method of and circuit arrangement for freeing communications resources, particularly for use by a switching element
CN114024844B (zh) 数据调度方法、数据调度装置及电子设备
JPH1011382A (ja) 実時間分散データ共有方式
JP3713977B2 (ja) リアルタイム分散システム
Kamal et al. Utilizing bandwidth sharing in the slotted ring
Walraevens et al. A preemptive repeat priority queue with resampling: Performance analysis
Mendelson et al. Care: Resource allocation using sparse communication
Bartolini et al. Using priority inheritance techniques to override the size limit of CAN messages
CN117041186B (zh) 数据传输方法、芯片系统、计算设备及存储介质
JPH0974410A (ja) 通信中継装置
WO2019159832A1 (ja) フロー制御装置および方法
Chávez et al. Fieldbuses and real-time MAC protocols
JPH06224932A (ja) パケット変換装置
JPH0683741A (ja) データ分散処理システム