(57)【特許請求の範囲】
【請求項１】
ホストコンピュータ（１０）から離れた位置に設置されるクライアントコンピュータ（３０ａ〜３０ｎ）に存在するＴＴＹベースのプログラムを、ホストコンピュータ（１０）内に記憶されるクラスに変換することを前提とするネットワーク分散コンピューティング制御方法であって、
ホストコンピュータ（１０）内に、各クライアントコンピュータ（３０ａ〜３０ｎ）のＴＴＹベースの各プログラム（３２ａ〜３２ｎ）に対応する各クラス（１２ａ〜１２ｎ）、及び、クライアント・コンピュータ（３０ａ〜３０ｎ）のメインプログラムが準備され、
ホストコンピュータ（１０）からＴＥＬＮＥＴサービスを利用して前記クライアントコンピュータ（３０ａ〜３０ｎ）に遠隔ログインし、且つ、前記クライアントコンピュータ（３０ａ〜３０ｎ）を起動するためのルーチンプログラムが、前記各クラス（１２ａ〜１２ｎ）のコンストラクタの中に準備され、
ＴＴＹベースのプログラム（３２ａ〜３２ｎ）が提供するコマンドがクラス（１２ａ〜１２ｎ）のインターフェースとして定義されるものであって、
前記方法が、
ホストコンピュータ（１０）が、クラス（１２ａ〜１２ｎ）をインスタンス化して、オブジェクト（１２ａ〜１２ｎ）を作成することによって、自動的にＴＴＹベースのプログラム（３２ａ〜３２ｎ）を起動して、コマンド待ちの状態にするステップと、
ホストコンピュータ（１０）が、オブジェクト（１２ａ〜１２ｎ）を用いて、インターフェースを通して、ＴＴＹベースのプログラム（３２ａ〜３２ｎ）のコマンドを呼び出すことによって、クライアントコンピュータ（３０ａ〜３０ｎ）によるデータ処理のサービスを受けるステップを含む方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワーク分散コンピューティング方法及びそれを利用した原子力プラント運転監視システムに関する。
【０００２】
【従来の技術】
従来はプロセスデータを1つの計算機で管理する集中コンピューティング方式がとられてきた。最近になっていくつかのモジュールに分割する柔軟性の高い分散コンピューティングの考え方がとられるようになってきたが、それらの分散コンピューティングは主にTCP/IPのソケットを利用して構築したものである。このような方法では、モジュール開発に利用できるプログラム言語が限定され、通信のためのアルゴリズムがモジュールのプログラムに一体化してしまうためプログラミングが専門的になってしまう。よってTCP/IPのソケットを直接利用した分散コンピューティングでは、プログラムの開発、試験及び保守が困難になる。
【０００３】
また、原子カプラントは多数の機器が複雑に絡み合っており、それら機器を同時に監視するためには様々な高度な情報処理による運転支援が必要であり、そのためのソフトウェアは複雑になりやすい。しかしながら、原子カプラントでは安全性が最優先されなければならず、ソフトウェアの些細な不具合も避けられなければならない。よって信頼性を確保する観点から、ソフトウェアを複雑でわかりにくくすることは許されない。このため、ソフトウェアシステムを機能ごとにモジュール化することが重要である。また、各モジュールのバックアップを実現するために複数の計算機（コンピュータ）による分散コンピューティングによってモジュールを統合することが望ましい。
【０００４】
現在、CORBA(Common Object Request Broker Architecture)などのような分散コンピューティングの枠組みが提案されているが、これはネットワークショッピング等の不特定多数のクライアントの単純な手続きを想定したもので既に信頼関係のある複数の計算機が高度な技術的計算を行うのに高い信頼性を持たせる目的には適していない。
【０００５】
また、本発明者は、大規模で複雑な構造をしているのにもかかわらず安全性が最優先される原子カプラントの運転監視システムのためのプログラム結合によるソフトウエア構築法を検討した（非特許文献１参照）。そのソフトウエアの構成は、データ獲得モジュール、データ処理モジュール、ＧＵＩモジュール及びそれらを制御する制御プログラムから成る。制御プログラムは、スクリプト言語であるTclを用いて各モジュールのプログラムの入出力手続きを１コマンドずつ実行するようにプログラミングしてきたが、そのような方法ではプログラムが構造化されず、新たなモジュールの追加やモジュールの変更に対応しづらい。更に、オブジェクト指向プログラミングを用いていないので、ソフトウエア全体の構造化が不十分で、保守や拡張の容易さが不十分であった。
【０００６】
【非特許文献１】
鈴土他「プログラム結合による運転監視ソフトウエア構築」社団法人日本原子力学会２００２年春の年会要旨集第ＩＩ分冊、２００２年３月、４２０頁。
【０００７】
【発明が解決しようとする課題】
本発明は、プログラムの開発、試験及び保守が容易なネットワーク分散コンピューティング方法、及びそれを利用し、大規模で複雑な構造をしているのにもかかわらず安全性が最優先される原子カプラントの運転監視に適したシステムを提供する。
【０００８】
【課題を解決するための手段】
上記課題の１つは、遠隔のホストコンピュータに存在するTTYベースのプログラムをクライアント内のオブジェクト指向プログラミングにおけるクラスに変換することにより実現される本発明のネットワーク分散コンピューティング方法により解決される。
【０００９】
上記課題の別の１つは、上記のネットワーク分散コンピューティング方法を利用した本発明の原子カプラント運転監視システムにより解決される。
【００１０】
上記課題の１つはまた、通信回線を介して相互に接続されている少なくとも２つのコンピュータ間での分散コンピューティング方法であって、一方のコンピュータ上で、１つのプログラムを動作させて、当該一方のコンピュータ内の少なくとも１つのクラスをインスタンス化して１つのオブジェクトを作成するステップと、前記一方のコンピュータ上で、前記１つのオブジェクトを動作させて、他方のコンピュータに存在するTTYベースのプログラムを前記通信回線を介して呼び出し、且つ前記TTYベースのプログラムが必要とするデータがある場合当該データを前記通信回線を介して他方のコンピュータに送るステップと、前記他方のコンピュータ上で、前記オブジェクトによる通信回線を介した呼び出しに応答して、前記TTYベースのプログラムを動作させて、当該他方のコンピュータで獲得したデータ又は一方のコンピュータから送られたデータを処理し、その処理されたデータを一方のコンピュータの前記１つのオブジェクトに前記通信回線を介して送るステップとを備える本発明のネットワーク分散コンピューティング方法により解決される。
【００１１】
上記課題の別の１つは、ネットワーク分散コンピューティングを用いた原子力プラント運転監視システムであって、原子力プラントの運転を監視するためのクライアント・コンピュータと、前記クライアント・コンピュータと通信回線を介して接続され、原子力プラントのプラント・データを獲得するための少なくとも１つの第１遠隔ホストコンピュータと、前記クライアント・コンピュータと通信回線を介して接続され、前記プラント・データを処理するための少なくとも１つの第２遠隔ホストコンピュータと、を備え、前記クライアント・コンピュータは、１つのプログラムを動作させて、当該クライアント・コンピュータ内のプラント・データ獲得用クラスをインスタンス化してプラント・データ獲得用オブジェクトを作成し、且つ前記プラント・データ獲得用オブジェクトを動作させて、第１遠隔ホストコンピュータに存在するTTYベースの第１プログラムを通信回線を介して呼び出し、前記第１遠隔ホストコンピュータは、前記プラント・データ獲得用オブジェクトによる通信回線を介した呼び出しに応答して、前記TTYベースのプログラムを動作させて、原子力プラントの獲得されたプラント・データをクライアント・コンピュータの前記のデータ獲得用オブジェクトに通信回線を介して送り、前記クライアント・コンピュータは、前記１つのプログラムの動作により、当該クライアント・コンピュータ内のプラント・データ処理用クラスをインスタンス化してプラント・データ処理用オブジェクトを作成し、且つ前記プラント・データ処理用オブジェクトを動作させて、第２遠隔ホストコンピュータに存在するTTYベースの第２プログラムを通信回線を介して呼び出し、且つ前記データ獲得用オブジェクトを介して得られたプラント・データをプラント・データ処理用オブジェクトを介して第２遠隔ホストコンピュータに送り、前記第２遠隔ホストコンピュータは、前記データ処理用オブジェクトによる通信回線を介した呼び出しに応答して、前記TTYベースのプログラムを動作させて、前記の送られたプラント・データを処理して、前記原子力プラントの運転状態を判断し、その判断結果を通信回線を介して前記クライアント・コンピュータに送る、本発明の原子力プラント運転監視システムにより解決される。
【００１２】
【発明の実施の形態】
以下、図面を参照して本発明の好適な実施形態を説明する。
【００１３】
図１は、本発明の好適な一実施形態によるネットワーク分散コンピューティング方法の動作環境を示す図である。
【００１４】
図１において、参照番号１０はローカル・ホストコンピュータ（以下「ローカルホスト」と記す。）である。このローカルホスト１０には、通信回線２０ａ〜２０ｎのそれぞれを介して遠隔ホストコンピュータ（以下「遠隔ホスト」と記す。）３０ａ〜３０ｎのそれぞれが接続されている。
【００１５】
遠隔ホスト３０ａ〜３０ｎのそれぞれの記憶装置（図示せず）には、データ処理のサービスを提供するモジュールであるTTYベースのインタラクティブな各プログラム３２ａ〜３２ｎが格納されている。これらのプログラム３２ａ〜３２ｎは、例えばローカルホスト１０のオペレーティングシステムのコマンドウィンドウ（図示せず）から実行ファイル名をタイプすることにより起動され、その操作は標準入出力から行われる。これらのモジュール３２ａ〜３２ｎは入力されるコマンドに応じてデータ獲得やデータ処理などを行うように製作され、それぞれ適当な遠隔ホスト３０ａ〜３０ｎにインストールされる。
【００１６】
ローカルホスト１０の記憶装置（図示せず）には、遠隔ホスト３０ａ〜３０ｎの各プログラム３２ａ〜３２ｎに対応する各クラス１２ａ〜１２ｎ、及びクライアントのメインプログラム１４が格納されている。上記TTYベースの各プログラム３２ａ〜３２ｎに対応する各クラス１２ａ〜１２ｎは次に説明するように製作される。まずこのクラス１２ａ〜１２ｎのコンストラクターの中に、対応するTTYベースのプログラム３２ａ〜３２ｎが存在する遠隔ホスト３０ａ〜３０ｎに自動的にTELNETサービスを使って遠隔ログインし且つそのプログラム３２ａ〜３２ｎを起動するためのルーチンを入れておく。次に、このTTYベースのプログラム３２ａ〜３２ｎが提供するコマンドをこのクラス１２ａ〜１２ｎのインターフェースとして定義しておく。これによって、このクラス１２ａ〜１２ｎがインスタンス化されて、インスタンス(すなわちオブジェクト)１２ａ〜１２ｎが作成されると、自動的にTTYベースのプログラム３２ａ〜３２ｎが起動され、それらプログラム３２ａ〜３２ｎがコマンド待ちの状態になる。その後これらのオブジェクト１２ａ〜１２ｎは、インターフェースを通してTTYベースのプログラム３２ａ〜３２ｎのコマンドを呼び出し、そのデータ処理のサービスを受ける。
【００１７】
データ処理のサービスの提供を受けるクライアント、例えば原子力プラントの運転監視であれば運転監視システムのメインプログラム１４は次のように作成される。なお、本発明のネットワーク分散コンピューティング方法は原子力プラントの運転監視に限定されることなく、ネットワーク分散コンピューティングを用いる任意の用途に適用可能である。ここでプログラミングしておくことは、利用するTTYベースのプログラム３２ａ〜３２ｎに対応するクラスのインスタンス化(オブジェクトの作成)、およびそれらのオブジェクトのインターフェース呼び出しを含んだ実時間データ処理手続きである。
【００１８】
上記の構成により、TTYベースのプログラムをモジュールとしたオブジェクト指向型分散コンピューティングが可能となる。
【００１９】
次に、オブジェクト指向型ネットワーク分散コンピューティングの処理手順を説明する。ローカルホスト１０及び遠隔ホスト３０ａ〜３０ｎが起動状態にあるとする。ローカルホスト１０のメインプログラム１４が、ランすると、データの処理目的に対して必要なクラス１２ａ〜１２ｎを必要な時期にインスタンス化して、オブジェクト１２ａ〜１２ｎを作成し、それらオブジェクト１２ａ〜１２ｎのインターフェースを呼び出す。オブジェクト１２ａ〜１２ｎのインターフェースが呼び出されると、通信回線２０ａ〜２０ｎを介してそのオブジェクトに対応する遠隔ホスト３０ａ〜３０ｎに存在するTTYベースのプログラム３２ａ〜３２ｎのコマンドが実行されて、データが処理される。これらの動作により、遠隔のホストコンピュータに存在するTTYベースのプログラムが、クライアント内のオブジェクト指向プログラミングにおける意味での「クラス」に変換又は置き換えられる。
【００２０】
分散コンピューティングのための遠隔ホストの数は分散処理の要求に依存するが、通常は２以上であることが好ましい。但し、ローカルホスト１０でデータ処理をする構成を取る場合には、遠隔ホストが１つの場合もあり得る。
【００２１】
本発明によるネットワーク分散コンピューティング方法は、前述のように構成されそしてデータを処理することにより、次のような利点を持つ。遠隔ホストにおいてTTYベースのプログラムを用いることにより、分散コンピューティングにおけるモジュール開発のために使用できるプログラム言語の自由度が向上し、モジュール開発が容易になるとともに、すでに信頼性が確認されている様々な高度なデータ処理プログラムを容易にモジュール化することができる。そして、ソフトウエアを機能毎にモジュール化することができるので、ソフトウエアを単純で分かり易いものすることができる。オブジェクトを用いているので、メインプログラムからのモジュールの呼び出しが簡便になる。また、モジュールがTTYベースのプログラムであるため、スクリプトを用いてソフトウェア試験の自動化が行いやすい。また、オブジェクト指向プログラミングの技術を用いているため、ソフトウェア全体が構造化および抽象化されるため、保守や拡張が行いやすい。すなわち、本発明を用いたネットワーク分散コンピューティング法は、TTYベースプログラムの簡便性と、オブジェクト指向プログラミングの利便性を兼ね備えている。
【００２２】
各モジュールのバックアップを実現するためには、同じ又は類似の機能のローカルホストを複数設けあるいは同じ又は類似の機能の遠隔ホストを複数設け、それらを相互に通信回線で接続してネットワーク化すればよい。
【００２３】
次に、本発明のネットワーク分散コンピューティング方法を用いた原子カプラント運転監視システムの好適な実施形態について説明する。図２に運転監視システムの構築の様式を図示する。図２において、参照番号１００は運転監視される原子力プラントを示し、また、参照番号１１０は図１に示すローカルホスト１０に対応するローカルホストを、参照番号１２０ａ及び１２０ｂは図１に示す通信回線１２ａ及び１２ｂに対応する通信回線を、参照番号１３０ａ及び１３０ｂは図１に示す遠隔ホスト３０ａ及び３０ｂに対応する遠隔ホストを、参照番号１１４は図１に示すクライアントのメインプログラム１４に対応するメインプログラムを、参照番号１１２ａ及び１１２ｂは図１に示すオブジェクト１２ａ及び１２ｂに対応するオブジェクトを、参照番号１３２ａ及び１３２ｂは図１に示すデータ処理のサービスを提供するモジュールであるTTYベースのインタラクティブな各プログラム３２ａ及び３２ｂにそれぞれ相当する。そして、参照番号１０２は、ローカルホスト１１０に含まれ又はそれに接続され、運転員が原子力プラント運転監視システムを動作させるに必要な情報を入力するあるいは運転状態を運転員に対して標示するためのユーザ・インターフェースを示す。メインプログラム１１４、オブジェクト１１２ａ及び１１２ｂに対応するそれぞれのクラスは、ローカルホスト１１０の記憶装置（図示せず）に格納されており、TTYベースのインタラクティブな各プログラム１３２ａ及び１３２ｂは、それぞれの遠隔ホスト１３０ａ及び１３０ｂの記憶装置（図示せず）に格納されている。
【００２４】
この原子力プラント運転監視システムは、複数のUNIX（登録商標）マシーンをネットワーク結合させ、クライアント側（ローカルホスト１１０）のメインプログラム１１４は、C++言語を用いてプログラミングすることにより実現できることが確認されている。なお、図２に示すメインプログラム１１４はC++言語で表現したソースコードで、説明のための擬似的なものであり、本発明を限定する意図でないことに注目されたい。メインプログラム１１４において、遠隔ホスト１及び２（１３０ａ及び１３０ｂ）上のモジュール１３２ａ及び１３２ｂの起動や通信には、外部プログラムの制御を行うためのライブラリを利用している。また、ユーザー・インターフェース１０２は、XWindows上で操作できるようにプログラミングされている。このようなライブラリ及びプログラミングは当該技術では良く知られているのでその説明を省く。
【００２５】
説明を簡単にするため、図２に示す実施形態においてモジュールは、プラントデータ獲得のためのモジュール(daq)１３２ａとデータ処理のためのモジュール(proc)１３２ｂの２つのみとする。実際にはより多くのモジュールを結合させることになる。さて、これらのモジュール１３２ａ及び１３２ｂに対応するローカルホスト１１０内のオブジェクトをそれぞれdaqオブジェクト１１２ａ及びprocオブジェクト１１２ｂと呼ぶことにする。
【００２６】
クライアントのC++疑似ソースコード１１４において、まず、最初にプラントデータのための配列dataと、プラントが異常かどうか表す論理変数normalを宣言する。次に、プログラムのフローはwhileの無限ループに入る。この無限ループでは、まずdaqオブジェクト１１２ａよりプラントデータを呼んで来るdaq.getData()が実行される(図２の２００参照)。このインターフェース、即ちdaqオブジェクト１１２ａの中のfloat[] getData()が呼び出されると、予めTCP/IPで結合されている遠隔ホスト1(１３０ａ)のTTYベースのプログラム(daqモジュール)１３２ａのデータ獲得コマンドが実行され、その出力がメインプログラム１１４におけるdaq.getData()の返り値となりdata配列に格納される。次に、メインプログラム１１４において、data配列が、proc.isNormal（）を通してprocオブジェクト１１２ｂから通信回線１２０ｂを介して遠隔ホスト２（１３０ｂ）に送られる（図２における２０２参照）。遠隔ホスト２（１３２ｂ）のTTYベースのプログラム(procモジュール)１３２ｂでは高度な情報処理が行われ、入力されたプラント状態が正常かどうか判断され、その結果がprocオブジェクト１１２ｂに返される。この結果は、最終的には、メインプログラム１１４におけるproc.isNormal（）の返り値としてmain（）のnormalに格納される。この結果は、メインプログラム１１４におけるupdateGUI（）を用いて、ユーザーインターフェース１０２に送られ、運転員に示される。
【００２７】
一部の動作についてより詳細に説明すると、運転員は、初めに原子力プラント運転監視システムの全ての構成要素の電源をオンにする（なお、一度オン状態にすれば、異常時の停止を除き常時オン状態にある。）。次いで、運転員は、ユーザー・インターフェース１０２からdaqモジュール１３２ａ及びprocモジュール１３２ｂに対応する実行ファイル名を入力して、それらのモジュールを起動する。なお、モジュールの起動をメインプログラム１１４で行えるようにしてもよい。次いで、運転員は、ユーザー・インターフェース１０２からメインプログラム１１４を起動する。メインプログラム１１４がランして、初めにクラス１１２ａをインスタンス化して、インスタンス即ち、daqオブジェクト１１２ａを作成する。daqオブジェクト１１２ａが作成されると、自動的に遠隔ホスト１（１３０ａ）のdaqモジュール１３２ａが接続され、daqモジュール１３２ａがコマンド待ちの状態になる。メインプログラム１１４は、次いでクラス１１２ｂをインスタンス化して、インスタンス即ち、procオブジェクト１１２ｂを作成する。procオブジェクト１１２ｂが作成されると、自動的に遠隔ホスト２（１３０ｂ）のprocモジュール１３２ｂが接続され、procモジュール１３２ｂがコマンド待ちの状態になる。
【００２８】
次いで、daqオブジェクト１１２ａは、インターフェースを通して通信回線１２０ａを経て遠隔ホスト１（１３０ａ）のTTYベースのプログラム、即ちdaqモジュール１３２ａのデータ獲得コマンドを呼び出す。遠隔ホスト１（１３０ａ）は、原子力プラント１００からプラント変数に対応するデータを当該技術における既知の手段で獲得している。呼び出されたデータ獲得コマンドが実行され、前述のようにして、獲得されたデータがdaqオブジェクト１１２ａを介してメインプログラム１１４に与えられる。
【００２９】
次いで、procオブジェクト１１２ｂは、インターフェースを通して通信回線１２０ｂを経て遠隔ホスト２（１３０ｂ）のTTYベースのプログラム、即ちprocモジュール１３２ｂのデータ処理コマンドを呼び出す。呼び出されたデータ処理コマンドが実行され、前述のようにメインプログラム１１４から送られたデータを処理して、その結果をprocオブジェクト１１２ｂを介してメインプログラム１１４に返す。
【００３０】
本発明の分散コンピューティング方法を利用した原子力プラント運転監視システムは、前述のように構成され動作することにより、本発明の分散コンピューティング方法に関する前述の利点を有すると共に、その利点から信頼性が高まる。
【００３１】
なお、上記実施形態では、TELNETを用いて説明したが、本発明はそれに限定されず、遠隔ホスト上のTTYベースのプログラムとデータ及び必要な情報を交換できるいずれの既知の手段又は方法でよい。
【図面の簡単な説明】
【図１】図１は、本発明の好適な一実施形態によるネットワーク分散コンピューティング方法の動作環境を示す図である。
【図２】図２は、本発明のネットワーク分散コンピューティング方法を用いた原子カプラント運転監視システムの好適な実施形態を示す図である。
【符号の説明】
１０，１１０  ローカルホスト
１２，１１２  クラス（オブジェクト）
１４，１１４  メインプログラム
２０，１２０  通信回線
３０，１３０  遠隔ホスト
３２，１３２  TTYベースのプログラム
１００  原子力プラント
１０２  ユーザ・インターフェース
【図１】
0004247781.tif 000002
【図２】
0004247781.tif 000003