(57)【特許請求の範囲】
【請求項１】
多重並列処理を実行する複数の処理装置と、前記複数の処理装置の動作を管理する管理装置と、前記複数の処理装置と前記管理装置とを接続するネットワークとを備え、前記各処理装置が処理内容の同一性を維持しながらプログラムを実行する計算機システムであって、
前記処理装置は、前記プログラムを実行するプロセッサと、前記プロセッサによって実行されるプログラムを格納するメモリと、前記プログラムの実行時に使用されるデータを格納する記憶部と、前記ネットワークと接続されるインターフェースとを備え、
前記管理装置は、前記ネットワークと接続されるインターフェースと、前記インターフェースと接続されるプロセッサと、前記プロセッサと接続されるメモリとを備え、
前記管理装置は、
前記複数の処理装置において実行中のプログラムの処理の進捗状態を取得し、
前記取得した進捗状態を参照して、全ての前記処理装置がデータを更新可能な論理的タイミングを求め、前記求められた論理的タイミングを前記プログラムが使用するデータを更新すべき論理的タイミングと決定し、
前記処理装置は、
前記管理装置によって決定されたデータ更新の論理的タイミングを取得し、
前記実行中のプログラムの処理が前記取得した論理的タイミングへ到達したか否かを監視し、
前記プログラムの処理が前記取得した論理的タイミングへ到達したときに、当該実行中のプログラムを停止することなくデータを更新することを特徴とする計算機システム。
【請求項２】
前記データ更新の論理的タイミングは、前記プログラムにおいて、同一のデータを複数回アクセスする一群の処理の開始時であることを特徴とする請求項１に記載の計算機システム。
【請求項３】
前記管理装置は、前記ネットワークを介したデータの送受信、及び、前記処理装置における計算処理に必要な時間を参照して、前記全ての処理装置がデータを更新可能な論理的タイミングを求めることを特徴とする請求項１に記載の計算機システム。
【請求項４】
多重並列処理を実行する複数の処理装置と、前記複数の処理装置の動作を管理する管理装置と、前記複数の処理装置と前記管理装置とを接続するネットワークとを備え、前記各処理装置が処理内容の同一性を維持しながらプログラムを実行する計算機システムにおけるデータの管理方法であって、
前記処理装置は、前記プログラムを実行するプロセッサと、前記プロセッサによって実行されるプログラムを格納するメモリと、前記プログラムの実行時に使用されるデータを格納する記憶部と、前記ネットワークと接続されるインターフェースとを備え、
前記管理装置は、前記ネットワークと接続されるインターフェースと、前記インターフェースと接続されるプロセッサと、前記プロセッサと接続されるメモリとを備え、
前記管理装置は、前記複数の処理装置において実行中のプログラムの処理の進捗状態を取得し、
前記管理装置は、前記取得した進捗状態を参照して、全ての前記処理装置がデータを更新可能な論理的タイミングを求め、前記求められた論理的タイミングを前記プログラムが使用するデータを更新すべき論理的タイミングと決定し、
前記処理装置は、前記管理装置によって決定されたデータ更新の論理的タイミングを取得し、
前記処理装置は、前記実行中のプログラムの処理が前記取得した論理的タイミングへ到達したか否かを監視し、
前記処理装置は、前記プログラムの処理が前記取得した論理的タイミングへ到達したときに、当該実行中のプログラムを停止することなくデータを更新することを特徴とするデータ管理方法。
【請求項５】
前記データ更新の論理的タイミングは、前記プログラムにおいて、同一のデータを複数回アクセスする一群の処理の開始時であることを特徴とする請求項４に記載のデータ管理方法。
【請求項６】
前記管理装置は、前記ネットワークを介したデータの送受信、及び、前記処理装置における計算処理に必要な時間を参照して、前記全ての処理装置がデータを更新可能な論理的タイミングを求めることを特徴とする請求項４に記載のデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の処理装置が処理内容の同一性を維持しながらプログラムを実行する分散型計算機システムに関し、特に、分散型計算機システム上で動作するプログラムが使用中のデータファイルを更新する技術に関する。
【背景技術】
【０００２】
列車集中制御装置や金融基幹系システムでは、業務を停止することなく、且つ誤動作を起こすことなく、オンライン処理を継続することが求められる。このようなシステムでは、プロセッサ、メモリ、バス等の主要な構成要素を全て多重化することによって、任意の構成要素に故障が発生した時に、正常な処理を継続できることを目的としたＦＴＣ（Ｆａｕｌｔ  Ｔｏｌｅｒａｎｔ  Ｃｏｍｐｕｔｅｒ）が採用されている。
【０００３】
ＦＴＣの一つの形態として、専用ハードウェアの利用による高コスト化を回避するために、市場で大量に流通しているＰＣアーキテクチャに基づく処理装置をネットワークで接続し、ソフトウェアによって多重並列処理を実行させる形態がある。
【０００４】
ソフトウェアを使用したＦＴＣの一つの形態として、同期タイミングを限定して、処理装置間の処理を実行する形態がある。これは、ゲートウェイ装置が、ブロードキャストを用いて、外部からのメッセージを全処理装置へ入力し、各処理装置は処理結果をメッセージとして出力し、ゲートウェイ装置は、多数決処理を用いて、各処理装置からの出力を単一の出力メッセージに統合するシステムでがある。各処理装置における処理は、入力メッセージの処理を開始した時点ではほぼ同期しているが、割り込みの発生タイミングの違い等の原因によって、入力メッセージの処理が完了するまでにズレを生じる。本明細書では、このような多少のズレを許容するＦＴＣの形態を「緩い同期」を実施するＦＴＣと呼ぶ。
【０００５】
一方、ＦＴＣを含む多重並列実行型の分散システムでは、ファイルを同期して更新する技術が必要となる。このような、分散システムにおけるファイル更新の技術としては、特許文献１に記載された技術がある。
【０００６】
特許文献１に開示された分散システムは、少なくとも一つのコントローラに接続された少なくとも二つの計算エレメントを含む計算機システムである。各計算エレメントは他の計算エレメントのクロックとは非同期に動作するクロックを有する。計算エレメントは計算エレメントのそれぞれが命令の第１ストリームをエミュレートされたクロック・ロックステップにおいて実行される第１モードで動作する。そして、計算エレメントのそれぞれが命令の第２ストリームを命令ロックステップにおいて実行する第２モードで動作する。特許文献１に開示された分散システムでは、ファイル更新を含む全ての処理をロックステップ方式により同期しているため、単一の命令が時間的に同時に全ての計算エレメントへ適用される。
【特許文献１】特開２００１−５２３８５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
「緩い同期」を実施するＦＴＣでは、実行中のプログラムを停止することなく、プログラムによって使用されるデータファイルを古いバージョンから新しいバージョンへ更新することが困難になるという問題がある。
【０００８】
例えば、特許文献１に開示されたように、ある時刻を指定してファイルを更新する方法では、「緩い同期」を実施している場合、ファイルを同期して更新できない。「緩い同期」を実施するＦＴＣにおいて、各処理装置は、同期タイミング以外では、同一の処理を異なる時刻に実行するため、ある時刻を指定してデータファイルを更新することはできない。
【０００９】
本発明は、「緩い同期」を実施するＦＴＣにおいて、ＦＴＣを構成する複数の処理装置間で、処理内容を一致させながら、実行中のプログラムが使用中のデータファイルを同期して更新することを可能にすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明の代表的な一例を示せば以下の通りである。すなわち、多重並列処理を実行する複数の処理装置と、前記複数の処理装置の動作を管理する管理装置と、前記複数の処理装置と前記管理装置とを接続するネットワークとを備え、前記各処理装置が処理の同一性を維持しながらプログラムを実行する計算機システムであって、前記処理装置は、前記プログラムを実行するプロセッサと、前記プロセッサによって実行されるプログラムを格納するメモリと、前記プログラムの実行時に使用されるデータを格納する記憶部と、前記ネットワークと接続されるインターフェースとを備え、前記管理装置は、前記ネットワークと接続されるインターフェースと、前記インターフェースと接続されるプロセッサと、前記プロセッサと接続されるメモリとを備え、前記管理装置は、前記複数の処理装置において実行中のプログラムの処理の進捗状態を取得し、前記取得した進捗状態を参照して、全ての前記処理装置がデータを更新可能な論理的タイミングを求め、前記求められた論理的タイミングを前記プログラムが使用するデータを更新すべき論理的タイミングと決定し、前記処理装置は、前記管理装置によって決定されたデータ更新の論理的タイミングを取得し、前記実行中のプログラムの処理が前記取得した論理的タイミングへ到達したか否かを監視し、前記プログラムの処理が前記取得した論理的タイミングへ到達したときに、当該実行中のプログラムを停止することなくデータを更新することを特徴とする。
【発明の効果】
【００１１】
本発明の一実施形態によると、データファイルのバージョンの切り替えの前後で処理内容の論理的な同期を維持することができ、プログラムを停止することなくデータファイルのバージョンを更新することができる。
【発明を実施するための最良の形態】
【００１２】
＜実施形態１＞
以下、本発明に係る分散システムにおけるファイル更新処理及びシステムの実施の一形態を添付図面を参照して説明する。
【００１３】
第１の実施の形態では、４台の処理装置が論理的に同一の処理を多重並列して実行するＦＴＣシステムが、リアルタイム性を満たして制御信号による処理を実行している状態において、実行されている処理を止めることなく、処理装置上で動作するユーザプログラム（ＵＰ：Ｕｓｅｒ  Ｐｒｏｇｒａｍ）が利用中のデータファイルを更新する方法を説明する。
【００１４】
なお、本実施の形態では処理装置が４台の場合について説明するが、本発明は２台以上の任意の台数の処理装置を備えるシステムに適用可能である。
【００１５】
図１は、本発明の実施の形態のＦＴＣシステムの構成例を示すブロック図である。
【００１６】
本発明の実施の形態のＦＴＣシステムは、管理端末１０１、複数の処理装置１０２、ゲートウェイサーバ１０３及び内部ネットワーク１０４によって構成される。
【００１７】
ゲートウェイサーバ１０３は、内部ネットワーク１０４と外部ネットワーク１０５との間に位置し、ＦＴＣシステムの外部ネットワーク１０５との入出力処理を実施する計算機である。ゲートウェイサーバ１０３は、外部ネットワーク１０５から入力信号を受信すると、入力メッセージを作成し、内部ネットワーク１０４へ同報送信（ブロードキャスト）する。
【００１８】
また、ゲートウェイサーバ１０３は、処理装置１０２が出力したメッセージを、内部ネットワーク１０４を介して受信する。そして、ゲートウェイサーバ１０３は、受信した出力メッセージに対して多数決処理を実行し、多数決処理の結果から出力信号を作成し、作成された出力信号を外部ネットワーク１０５へ送信する。
【００１９】
管理端末１０１は、ＣＰＵ、メモリ、記憶装置（ファイル格納部１１４）及びインターフェース（通信部１１４、ユーザ操作部１１１）を備え、ユーザが処理装置１０２及びゲートウェイサーバ１０３を操作するために使用する計算機である。
【００２０】
管理端末１０１は、ユーザ操作部１１１、更新制御部１１２、ファイル格納部１１３及び通信部１１４を備える。ユーザ操作部１１１は、ユーザからの入力を受け取るインターフェースである。更新制御部１１２は、ファイル更新処理を実行する。ファイル格納部１１３は、更新ファイルを格納する記憶装置である。
【００２１】
通信部１１４は、内部ネットワーク１０４へデータを送受信するインターフェースである。管理端末１０１は、通信部１１４を介して、内部ネットワーク１０４と接続されている。
【００２２】
ユーザ操作部１１１は、ユーザからファイル更新要求を受け取り、受け取ったファイル更新要求を更新制御部１１２へ送る。
【００２３】
更新制御部１１２は、ユーザ操作部１１１からユーザが入力したファイル更新要求を受け取ると、ファイル更新処理を実行する。なお、更新制御部１１２は、入力メッセージ１２００（図１２参照）のデータ種別１２０２毎に、入力メッセージを処理する処理ＵＰ名１４０２と最短処理時間１４０３を記録した入力メッセージ最短処理時間テーブル１４００（図１４参照）を備える。なお、入力最短処理時間テーブルの内容は、ユーザによって予め設定される。
【００２４】
処理装置１０２は、ＣＰＵ、メモリ、記憶装置（ファイル格納部１０２）及びインターフェース（通信部１２４）を備える計算機である。すなわち、処理装置１０２は、ＣＰＵがメモリに格納されたプログラムを実行することによって実現される、ファイル格納部１２１、ファイルアクセス部１２２、ＵＰ実行部１２３、通信部１２５及び更新制御部１２６を備え、入力メッセージに応じた処理を実行する計算機である。より具体的には、処理装置１０２は、ゲートウェイサーバ１０３から入力メッセージ１２００（図１２参照）を受信すると、受信した入力メッセージに応じた処理を実行し、実行された処理の結果を出力メッセージ１２００（図１２参照）として送信する。
【００２５】
通信部１２４は、内部ネットワーク１０４へデータを送受信するインターフェースである。処理装置１０２は、通信部１２４を介して、内部ネットワーク１０４と接続されている。
【００２６】
また、通信部１２４は、入力メッセージバッファテーブル１６００（図１６参照）及びメッセージＩＤテーブル１７００（図１７参照）を格納する入力メッセージバッファ１２５を備える。通信部１２４は、内部ネットワーク１０４から入力メッセージを受信すると、受信した入力メッセージを入力メッセージバッファ１２５の最後尾に格納する。一方、通信部１２４は、内部ネットワーク１０４から、更新命令メッセージ１３００（図１３参照）を受信すると、受信した更新命令メッセージをファイル更新制御部１２６に送る。
【００２７】
ファイルアクセス部１２２は、ＵＰ実行部１２３からのアクセス要求に基づいて、ファイル格納部１２１にアクセスし、アクセスした結果をＵＰ実行部１２３へ返す。ファイルアクセス部１２２は、ファイル毎に、そのファイルの最新バージョンの番号の一覧を格納した最新ファイルバージョン番号テーブル１９００（図１９参照）を備える。さらに、ファイルアクセス部１２２は、ファイル毎に、ファイル使用中のユーザプログラム及び使用中のファイルのバージョン番号を記録した使用ファイルバージョン番号テーブル２０００（図２０参照）を備える。
【００２８】
ＵＰ実行部１２３は、一つ又は複数のユーザプログラムを、シングルプロセッサ又はマルチプロセッサ上で動作させ、動作しているユーザプログラムの指示に従って処理を実行する。
【００２９】
更新制御部１２６は、更新命令メッセージ１３００（図１３参照）を受け取ると、ファイル更新処理を実行する。更新制御部１２６は、ユーザプログラム毎に、ファイルのバージョンを更新するタイミングを示すメッセージＩＤの一覧を記録したファイル更新ポイントテーブル１８００（図１８参照）を備える。処理される入力メッセージのメッセージＩＤが、ファイル更新ポイントテーブルに記録されたファイル更新ポイントと一致した場合、該入力メッセージを処理する直前で、ファイルのバージョンを更新する。
【００３０】
管理端末１０１及び処理装置１０２は、ブレードサーバ、ワークステーション、パーソナルコンピュータ等の計算機に実装される。
【００３１】
また、内部ネットワーク１０４及び外部ネットワーク１０５は、Ｅｔｈｅｒｎｅｔ（登録商標、以下同じ）、無線ＬＡＮ等による有線又は無線のネットワークがよい。
【００３２】
図１４は、更新制御部１１２に備わる入力メッセージ最短処理時間テーブル１４００の構成を示す説明図である。
【００３３】
入力メッセージ最短処理時間テーブル１４００は、データ種別１４０１、処理ＵＰ名１４０２及び最短処理時間１４０３を含む。例えば、ユーザプログラム１（ＵＰ１）がデータ種別１００のメッセージを処理するのに、最低１０ミリ秒は必要であることを表す。
【００３４】
図１５は、更新制御部１１２に備わるファイル更新可能範囲テーブル１５００の構成を示す説明図である。
【００３５】
ファイル更新可能範囲テーブル１５００は、ＵＰ名１５０１及びファイル更新可能範囲１５０２を含む。ファイル更新可能範囲テーブル１５００は、各処理装置１０２に対応して作成される。例えば、対応する処理装置においてユーザプログラム１がデータファイルを更新することが可能なタイミングが、メッセージＩＤが１００１４、１００１７又は１００２０の入力メッセージを処理する直前であることを表す。
【００３６】
図１６は、通信部１２４に備わる入力メッセージバッファテーブル１６００の構成を示す説明図である。
【００３７】
入力メッセージバッファテーブル１６００は、順序１６０１、メッセージＩＤ１６０２、データ種別１６０３及びデータ部１６０４を含む。入力メッセージバッファテーブル１６００の各エントリは、処理装置１０２が受信した入力メッセージに対応し、順序１６０１が小さいほど早く受信したメッセージであることを示す。例えば、入力メッセージバッファに格納されている入力メッセージの中で５番目に早く受信したメッセージはメッセージＩＤが１００１４、データ種別が１００、データ部が００１０１０…であることを表す。
【００３８】
図１７は、通信部１２４に備わるメッセージＩＤテーブル１７００の構成を示す説明図である。
【００３９】
メッセージＩＤテーブル１７００は、順序１７０１、メッセージＩＤ１７０２及びメッセージ種別１７０３を含む。メッセージＩＤテーブル１７００は、メッセージバッファテーブル１６００からデータ部１６０４を削除することによって作成される。
【００４０】
図１８は、更新制御部１２６に備わるファイル更新ポイントテーブル１８００の構成を示す説明図である。
【００４１】
ファイル更新ポイントテーブル１８００は、ＵＰ名１８０１、更新ポイント１８０２から構成される。例えば、ファイル更新ポイントテーブル１８００は、ユーザプログラム１が使用中のファイルを更新するタイミングがメッセージＩＤが１００１７である入力メッセージを処理する直前であることを表す。
【００４２】
図１９は、ファイルアクセス部１２２に備わる最新ファイルバージョン番号テーブル１９００の構成を示す説明図である。
【００４３】
最新ファイルバージョン番号テーブル１９００は、ファイル名１９０１及び最新バージョン番号１９０２を含む。例えば、ファイル格納部１２１に格納されたｆｉｌｅ１の中で最新のバージョンは１１．０であることを表す。
【００４４】
図２０は、ファイルアクセス部１２２に備わる使用ファイルバージョン番号テーブル２０００の構成を示す説明図である。
【００４５】
使用ファイルバージョン番号テーブル２０００は、ファイル名２００１、使用ＵＰ名２００２及び使用バージョン番号２００３を含む。例えば、ｆｉｌｅ２を使用しているユーザプログラムがユーザプログラム２及びユーザプログラム３であり、ユーザプログラム２はバージョン５．０のｆｉｌｅ２を、ユーザプログラム３はバージョン５．０のｆｉｌｅ２を使用していることを表す。
【００４６】
図１２は、処理装置１０２とゲートウェイサーバ１０３との間で交換される入出力メッセージ１２００のメッセージフォーマットを示す説明図である。
【００４７】
入出力メッセージ（入力メッセージ及び出力メッセージ）１２００は、メッセージＩＤフィールド１２０１、データ種別フィールド１２０２及びデータ部フィールド１２０３を含む。メッセージＩＤ１２０１は、複数の処理装置１０２が複数の処理装置１０２が送信する出力メッセージが、同じ入力メッセージに対応するメッセージであるかを判定する為に使用される。データ種別フィールド１２０２は、データ部フィールド１２０３に格納されたデータの種別を示す。
【００４８】
図１３は、更新命令メッセージ１３００のメッセージフォーマットを示す説明図である。
【００４９】
更新命令メッセージ１３００は、ファイル名フィールド１３０１、バージョン番号フィールド１３０２及びファイル本体フィールド１３０３を含む。ファイル名フィールド１３０１はファイル本体１３０３に格納されるファイルの名称を示し、バージョン番号フィールド１３０２はファイル本体１３０３に格納されるファイルのバージョンを示す。
【００５０】
図２は、処理装置１０２におけるファイルアクセス処理のフローチャートである。
【００５１】
まず、ＵＰ実行部１２３は、ファイル読み書き要求をファイルアクセス部１２２に送る（ステップ２０１）。
【００５２】
ファイルアクセス部１２２は、ファイル読み書き要求を受け取ると、指定されたファイルについて、使用ファイルバージョン番号テーブル２０００（図２０）を参照して、要求元のユーザプログラム名に対応する使用バージョン番号を検索する（ステップ２０２）。例えば、要求元のユーザプログラム名がＵＰ２、指定されたファイル名がｆｉｌｅ２である場合、使用するバージョン番号は５．０となる。
【００５３】
ファイルアクセス部１２２は、ファイル格納部１２１にアクセスし、検索されたバージョンのファイルに対し、要求されたファイル読み書きをする（ステップ２０３）。
【００５４】
ファイルアクセス部１２２は、ファイル読み書きの結果をＵＰ実行部１２３に返す（ステップ２０４）。
【００５５】
図３は、処理装置１０２におけるＵＰ実行処理のフローチャートである。
【００５６】
まず、ＵＰ実行部１２３は、データ種別１２０２を指定して、入力メッセージ１２００（図１２）を通信部１２４に要求する（ステップ３０１）。
【００５７】
更新制御部１２６は、ファイル更新の要否を判断し、必要であればファイル更新処理を実行する（ステップ３０２）。ファイル更新処理の詳細は図１０にて説明する。
【００５８】
通信部１２４は、入力メッセージバッファ１２５から、指定されたデータ種別１２０２に対応する順序１６０１が最も小さい入力メッセージを取り出し、データ部１２０３をＵＰ実行部１２３へ渡す（ステップ３０３）。
【００５９】
ＵＰ実行部１２３は、受け取ったデータ部１２０３を処理し（ステップ３０４）、処理の結果を通信部１２４に返す（ステップ３０５）。
【００６０】
通信部１２４は、入力メッセージと同じ値を、メッセージＩＤ１２０１及びデータ種別１２０２へ設定し、受け取った処理の結果をデータ部１２０３へ設定し、出力メッセージ１２００（図１２）を作成する（ステップ３０６）。
【００６１】
通信部１２４は、作成された出力メッセージをゲートウェイサーバ１０３へ送信する（ステップ３０７）。
【００６２】
図４は、ファイル更新処理のフローチャートである。
【００６３】
まず、管理端末１０１のユーザ操作部１１１は、ユーザの入力を受けると、更新制御部１１２ではその内容に従い更新命令メッセージ１３００（図１３）を作成する。そして、作成された更新命令メッセージを、通信部１１４を介して全ての処理装置１０２へ送信する。（ステップ４０１）。
【００６４】
処理装置１０２の更新制御部１２６は、通信部１２４を介して更新命令メッセージを受信すると、受信した更新命令メッセージに格納された新ファイルを、ファイル格納部１２１に格納する（ステップ４０２）。
【００６５】
処理装置１０２の更新制御部１２６は、メッセージＩＤテーブル１７００（図１７）を作成し、作成されたメッセージＩＤテーブルを、通信部１２４を介して管理端末１０１へ送信する（ステップ４０３）。
【００６６】
管理端末１０１の更新制御部１１２は、全ての処理装置１０２からメッセージＩＤテーブルを受信し、受信したメッセージＩＤテーブルに基づいてファイル更新ポイントテーブル１８００（図１８）を作成し、作成されたファイル更新ポイントテーブルを、全ての処理装置１０２へ送信する（ステップ４０４）。
【００６７】
処理装置１０２がファイル更新ポイントテーブルを受信すると、受信したファイル更新ポイントテーブルを、更新制御部１２６のファイル更新ポイントテーブルにマージする（ステップ４０５）。
【００６８】
処理装置１０２は、ユーザプログラムが入力メッセージを取得すると、ファイル更新の要否を判定する。ファイル更新が必要であると判定されると、ユーザプログラムのファイル読み書き対象を新ファイルへ切り替える（ステップ４０６）。
【００６９】
処理装置１０２は、新しいファイルへの切換が完了した後、古いファイルをファイル格納部１２１から削除する（ステップ４０７）。このとき、仕様ファイルバージョン番号テーブル２０００を参照して、古いファイルを使用しているユーザプログラムがないことを確認した後に、古いファイルをファイル格納部１２１から削除するとよい。
【００７０】
図５は、ファイル更新開始処理（図４のステップ４０１）のフローチャートである。
【００７１】
まず、ユーザ操作部１１１は、ユーザから更新対象のファイルのファイル名及び更新後のバージョン番号の入力を受けると、入力されたファイル名及びバージョン番号を更新制御部１１２に送る（ステップ５０１）。
【００７２】
更新制御部１１２は、ファイル名及びバージョン番号を受けると、受け取ったファイル名とバージョン番号を持つファイルを、ファイル格納部１１３から取得する。そして、ファイル名、バージョン番号及び取得したファイル本体に基づいて、更新命令メッセージを作成し、作成された更新命令メッセージを通信部１１４に送信する（ステップ５０２）。
【００７３】
通信部１１４は、受け取った更新命令メッセージを送信する（ステップ５０３）。
【００７４】
図６は、ファイル格納処理（図４のステップ４０２）のフローチャートである。
【００７５】
まず、通信部１２４は、更新命令メッセージを受信すると、受信した更新命令メッセージを更新制御部１２６に送る（ステップ６０１）。
【００７６】
更新制御部１２６は、受け取った更新命令メッセージから、ファイル名１３０１、バージョン番号１３０２、及びファイル本体１３０３を取得する。そして、取得したファイル名及びバージョン番号を指定して、ファイル格納部１２１にファイル本体を格納する（ステップ６０２）。
【００７７】
更新制御部１２６は、ファイルアクセス部１２２の最新ファイルバージョン番号テーブル１９００（図１９）の、格納したファイル名に対応するバージョン番号を、格納時に指定したバージョン番号で上書きする（ステップ６０３）。
【００７８】
図７は、処理装置処理状況収集処理（図４のステップ４０３）のフローチャートである。
【００７９】
まず、更新制御部１２６は、通信部１２４の入力メッセージバッファ１２５に基づいて、メッセージＩＤテーブル１７００（図１７）を作成し、作成されたメッセージＩＤテーブルを通信部に１２４に送る（ステップ７０１）。
【００８０】
通信部１２４は、作成されたメッセージＩＤテーブルを管理端末１０１へ送信する（ステップ７０２）。
【００８１】
図８は、ファイル更新ポイント決定処理（図４のステップ４０４）のフローチャートである。
【００８２】
まず、通信部１１４は、メッセージＩＤテーブルを受信すると、受信したメッセージＩＤテーブルを更新制御部１１２に送る（ステップ８０１）。
【００８３】
更新制御部１１２は、受信したメッセージＩＤテーブル及び入力メッセージ最短処理時間テーブルを参照して、各ユーザプログラムについて、充分な時間が経過した後に処理されるメッセージＩＤを決定する。そして、決定されたメッセージＩＤを、メッセージＩＤテーブルの送信元の処理装置１０２毎に、ファイル更新可能範囲テーブル１５００（図１５）に書き込む（ステップ８０２）。
【００８４】
更新制御部１１２は、全ての処理装置１０２からメッセージＩＤテーブルを受信して処理したか否かを判定する（ステップ８０３）。一部の処理装置１０２からメッセージＩＤテーブルを受信しておらず、又は受信したメッセージＩＤテーブルの一部が処理されていない場合、更新制御部１１２は、通信部１１４がメッセージＩＤテーブルを受信するのを待ってステップ８０１に戻る。全ての処理装置１０２からメッセージＩＤテーブルを受信し、かつ受信したメッセージＩＤテーブルの処理が完了している場合、更新制御部１１２は、空のファイル更新ポイントテーブルを作成する（ステップ８０４）。
【００８５】
更新制御部１１２は、全て（本実施の形態では４台）の処理装置１０２について、ファイル更新可能範囲テーブルの、ファイル更新可能範囲を比較する。更新制御部１１２は、比較したファイル更新可能範囲の中で、全ての処理装置１０２が更新可能なタイミングを、ファイル更新ポイントとして決定する（ステップ８０５）。なお、全ての処理装置１０２が更新可能なタイミングが得られない場合、再度ステップ４０１からファイル更新処理をする。
【００８６】
更新制御部１１２は、選択したユーザプログラム、と決定されたファイル更新ポイントとの組を、ファイル更新ポイントテーブル１８００（図１８）に追加する（ステップ８０６）。
【００８７】
更新制御部１１２は、全てのユーザプログラムについてファイル更新ポイントを決定したか否かを判定する（ステップ８０７）。一部のユーザプログラムのファイル更新ポイントが決定されていない場合、更新制御部１１２は、未選択のユーザプログラムを選択しステップ８０５に戻る。全てのユーザプログラムについてファイル更新ポイントの決定が完了している場合、更新制御部１１２は、作成されたファイル更新ポイント一覧を通信部１１４に送り、通信部１１４は、受け取ったファイル更新ポイント一覧を全処理装置１０２へ同報送信（ブロードキャスト）する（ステップ８０８）。
【００８８】
図１１は、ファイル更新ポイント決定処理（図４のステップ４０４）によるデータの変遷を説明する図である。
【００８９】
本実施の形態では、各ユーザプログラムに対応するファイル更新ポイントを決める際、全ての処理装置１０２がファイルを更新可能なタイミングをファイル更新ポイントとして採用している。
【００９０】
ステップ８０１において、通信部１１４は、メッセージＩＤテーブル１１０１を受信すると、受信したメッセージＩＤテーブル１１０１を更新制御部１１２に送る。
【００９１】
ステップ８０２において、更新制御部１１２は、受け取ったメッセージＩＤテーブル１１０１と入力メッセージ最短処理時間テーブル１１０２から、処理装置Ａ上で動作するユーザプログラムの処理スケジュール１１０３を算出する。ユーザプログラム１について算出する場合、まず入力メッセージ最短処理時間テーブル１１０２からユーザプログラム１が処理するデータ種別が１００であることを調べる。次に、メッセージＩＤテーブル１１０１からデータ種別が１００であるメッセージのメッセージＩＤを取得し、取得したメッセージＩＤを処理する順番に並べる。
【００９２】
図１１に示す例では、最初にＩＤが１００１０のメッセージを処理開始し、その後１０ミリ秒以上の間隔を開けてＩＤが１００１１、１００１４、１００１７、１００２０のメッセージを順に処理する。ユーザプログラム２、ユーザプログラム３についても同様の方法でメッセージの処理順番を求める。
【００９３】
ＩＤ更新制御部１１２は、処理スケジュール１１０３を使用して、充分な時間の経過後に処理予定のメッセージＩＤを特定する。ここで充分な時間とは、ファイル更新ポイントテーブル１１０７の作成を完了し、処理装置Ａ〜Ｄにファイル更新ポイントテーブル１１０７を登録するための充分な時間である。図１１に示す例では、ユーザが事前に測定した結果、ネットワーク送受信時間が最大２ミリ秒必要で、管理端末１０１及び処理装置１０２での処理時間が最大１０ミリ秒必要となる。よって、合計１２ミリ秒を充分な時間として想定し、１２ミリ秒経過（１１０４）以降に処理予定のメッセージＩＤの範囲１１０５を特定している。
【００９４】
更新制御部１１２は、充分な時間の経過後に処理予定のメッセージＩＤの範囲１１０５から、ファイル更新可能範囲テーブル１１０６を作成する。
【００９５】
更新制御部１１２は、処理装置Ｂ〜Ｄについても、同様にメッセージＩＤテーブル１１０２を受信し、ファイル更新可能範囲テーブル１１０６を作成する。
【００９６】
その後、ステップ８０４において、更新制御部１１２は、空のファイル更新ポイントテーブル１１０７を作成する。
【００９７】
ステップ８０５において、更新制御部１１２は、ステップ８０３において受信した処理装置Ａ〜Ｄのファイル更新可能範囲テーブル１１０６を比較し、ユーザプログラム１については、１００１４、１００１７、１００２０が、４つの処理装置に対するファイル更新可能範囲と分かるため、これらの中で最も早く処理される１００１４をユーザプログラム１のファイル更新ポイントとして決定する。
【００９８】
そして、ステップ８０６において、更新制御部１１２は、ユーザプログラム１と１００１４の組をファイル更新ポイントテーブル１１０７に追加する。
【００９９】
更新制御部１１２は、同様にユーザプログラム２及びユーザプログラム３についてもファイル更新ポイント求め、それぞれ１００２１及び１００１９をファイル更新ポイントとして決定し、ファイル更新ポイントテーブル１１０７に追加する。
【０１００】
ステップ８０８において、更新制御部１１２は、作成したファイル更新ポイント一覧１１０７を通信部１１４に送る。通信部１１４は、受け取ったファイル更新ポイント一覧１１０７を処理装置Ａ〜Ｄへ同報送信する。
【０１０１】
図９は、ファイル更新ポイント登録処理（図４のステップ４０５）のフローチャートである。
【０１０２】
まず、通信部１２４は、管理端末１０１から、ファイル更新ポイント一覧を受信する（ステップ９０１）。
【０１０３】
その後、通信部１２４は、受信したファイル更新ポイント一覧の項目を、更新制御部１２６のファイル更新ポイント一覧の各項目に上書きする（ステップ９０２）。
【０１０４】
図１０は、ファイル更新処理（図４のステップ４０６）のフローチャートである。なお、このファイル更新処理は、ステップ３０１でＵＰ実行部１２３が通信部１２４に入力メッセージを要求してから、通信部１２４がＵＰ実行部１２３に入力メッセージのデータ部を送るまでに実行される処理である。
【０１０５】
まず、通信部１２４は、入力メッセージバッファ１２５に格納された入力メッセージの中で、指定されたデータ種別とデータ種別が一致し、最も早く入力メッセージバッファ１２５に追加された入力メッセージを取得して、取得した入力メッセージをキューから削除し、要求元ユーザプログラム名と取得した入力メッセージのメッセージＩＤを更新制御部１２６へ送る（ステップ１００１）。
【０１０６】
更新制御部１２６は、更新制御部１２６のファイル更新ポイント一覧から、要求元ユーザプログラム名に対応するファイル更新ポイントを検索する（ステップ１００２）。
【０１０７】
更新制御部１２６は、ファイル更新ポイントを発見したか否かを判定する（ステップ１００３）。
【０１０８】
ファイル更新ポイントを発見しない場合、通信部１２４は、入力メッセージのデータ部をＵＰ実行部１２３に送り、処理１００７に進む。一方、ファイル更新ポイントを発見した場合、更新制御部１２６は、通知されたメッセージＩＤとファイル更新ポイントを比較する（ステップ１００４）。
【０１０９】
更新制御部１２６は、通知されたメッセージＩＤとファイル更新ポイントとが一致するか判定する（ステップ１００５）。
【０１１０】
メッセージＩＤとファイル更新ポイントとが一致しない場合、通信部１２４は、入力メッセージのデータ部をＵＰ実行部１２３に送り、ステップ１００７に進む。一方、メッセージＩＤとファイル更新ポイントとが一致する場合、更新制御部１２６は、ファイルアクセス部１２２に要求元ユーザプログラム名を通知する。そして、ファイルアクセス部１２２は、最新ファイルバージョン番号テーブルの、全てのファイルについて、要求元ユーザプログラムに対応するバージョン番号を取得し、使用ファイルバージョン番号テーブル２０００（図２０）の、全てのファイルについて、要求元ユーザプログラムに対応する使用バージョン番号を、取得したバージョン番号で上書きして更新する（ステップ１００６）。
【０１１１】
通信部１２４は、ＵＰ実行部１２３に、入力メッセージのデータ部を送る（ステップ１００７）。
【０１１２】
以上説明したように、本発明の第１の実施形態によると、データファイルのバージョンの切り替えの前後で処理内容の論理的な同期を維持することができ、プログラムを停止することなくデータファイルのバージョンを更新することができる。従って、分散処理システムにおいて、業務実行中にデータファイルを更新することができるようになり、多重並列実行型の分散システムを従来よりも柔軟に運用できるようになる。
【０１１３】
＜実施形態２＞
次に、本発明の第２の実施の形態について説明する。
【０１１４】
前述した第１の実施の形態では、メッセージを処理するタイミングを、ファイル更新タイミングに利用したが、第２の実施の形態では、タイマを用いたユーザプログラムの周期処理を実行するタイミングを、ファイル更新タイミングとする。以下、第２の実施の形態のファイル更新方法を説明する。
【０１１５】
第２の実施の形態の処理装置１０２のＵＰ実行部１２３は、一定周期で処理を実行するタイマを備える。
【０１１６】
タイマは、一定の周期毎に、ユーザプログラムを実行させるためのデータ部が空のメッセージを作成し、入力メッセージバッファへ追加する。この空のメッセージのメッセージＩＤは異なるものを周期毎に繰り返して用い、且つ全処理装置で共通な数値を用いるとよい。
【０１１７】
第２の実施の形態の入力メッセージの処理方法は前述した第１の実施の形態と同じである。
【０１１８】
以上説明した第２の実施の形態は、前述した第１の実施の形態と組み合わせて用いるとより効果がある。
【０１１９】
＜実施形態３＞
次に、本発明の第３の実施の形態について説明する。
【０１２０】
前述した第１の実施の形態では、単一のファイルを更新対象としたが、第３の実施の形態では、複数のファイルを同時に更新する。以下、第３の実施の形態のファイル更新方法を説明する。
【０１２１】
処理装置１０２のファイル格納部１２１は、ユーザの設定に基づいて、一つ以上のファイルによって構成されるグループへファイル群を分類する。
【０１２２】
図２１は、第３の実施の形態のファイルアクセス部１２２に備わる使用ファイルバージョン番号テーブル２０００の構成を示す説明図である。
【０１２３】
第３の実施の形態の使用ファイルバージョン番号テーブル２０００は、ファイル群名２００４、使用ＵＰ名２００２及び使用バージョン番号２００３を含む。例えば、ｆｉｌｅ１及びｆｉｌｅ２によってファイル群が構成されており、このファイル群を使用しているユーザプログラムがユーザプログラム１であり、ユーザプログラム１はバージョン１０．０のｆｉｌｅ１を、バージョン５．０のｆｉｌｅ２を使用していることを表す。
【０１２４】
処理装置１０２のファイルアクセス部１２２は、ファイルのグループを単一のファイルのようにアクセス可能なインターフェースをＵＰ実行部１２３に提供する。ＵＰ実行部１２３は、ファイルアクセス部１２２によって提供されたインターフェースを介して、前述した第１の実施の形態と同じ方法でファイルへアクセスする。
【０１２５】
以上説明した第３の実施の形態によると、複数のファイルを論理的に同期を取って更新することができる。
【０１２６】
＜実施形態４＞
次に、本発明の第４の実施の形態について説明する。
【０１２７】
前述した第１の実施の形態では、処理装置１０２から受信するメッセージＩＤテーブルに基づいてファイル更新タイミングを決定したが、第４の実施の形態ではユーザの入力によってファイル更新タイミングを決定する。以下、第４の実施の形態のファイル更新方法を説明する。
【０１２８】
前述した第１の実施の形態のファイル更新処理におけるステップ４０３及び４０４の代わりに、以下の処理を実施する。
（１）管理端末１０１は、ユーザからの入力に基づいて、ファイル更新タイミングテーブルを作成する。
（２）管理端末１０１は、作成されたファイル更新タイミングテーブルを全処理装置１０２に送信する。
【０１２９】
＜実施形態５＞
次に、本発明の第５の実施の形態について説明する。
【０１３０】
前述した第１〜３の実施の形態では、管理端末１０１が処理装置１０２から情報を収集し、ファイル更新タイミングを決定していたが、第５の実施の形態では管理端末１０１を用いずに処理装置１０２間の通信のみによって、ファイル更新タイミングを決定し、ファイル更新を実行する。以下、第５の実施の形態のファイル更新方法を説明する。
【０１３１】
前述した第１の実施の形態において、各処理装置１０２がメッセージＩＤテーブル１７００を管理端末１０１へ送信する代わりに、メッセージＩＤテーブル１７００を他の全処理装置１０２にブロードキャストによって送信する。
【０１３２】
処理装置１０２は、他の全ての処理装置１０２のメッセージＩＤテーブル１７００及び自らのメッセージＩＤテーブル１７００を取得し、取得したメッセージＩＤテーブル１７００を用いてステップ８０１〜８０７の処理を実行し、ファイル更新可能範囲テーブル１５００を作成する。
【０１３３】
処理装置１０２は、作成したファイル更新可能範囲テーブル１５００に基づいて、更新制御部１２６のファイル更新ポイントテーブル１８００を更新する。
【０１３４】
以上説明した第５の実施の形態によると、特別なノードを設置することなく、処理装置１０２のみでファイルを更新することができる。
【図面の簡単な説明】
【０１３５】
【図１】本発明の第１の実施の形態のＦＴＣシステムの構成例を示すブロック図である。
【図２】本発明の第１の実施の形態のファイルアクセス処理のフローチャートである。
【図３】本発明の第１の実施の形態のＵＰ実行処理のフローチャートである。
【図４】本発明の第１の実施の形態のファイル更新処理のフローチャートである。
【図５】本発明の第１の実施の形態のファイル更新開始処理のフローチャートである。
【図６】本発明の第１の実施の形態のファイル格納処理のフローチャートである。
【図７】本発明の第１の実施の形態の処理装置処理状況収集処理のフローチャートである。
【図８】本発明の第１の実施の形態のファイル更新ポイント決定処理のフローチャートである。
【図９】本発明の第１の実施の形態のファイル更新ポイント登録処理のフローチャートである。
【図１０】本発明の第１の実施の形態のファイル更新処理のフローチャートである。
【図１１】本発明の第１の実施の形態のファイル更新ポイント決定処理によるデータの変遷の説明図である。
【図１２】本発明の第１の実施の形態の入出力メッセージのフォーマットを示す説明図である。
【図１３】本発明の第１の実施の形態の更新命令メッセージのフォーマットを示す説明図である。
【図１４】本発明の第１の実施の形態の入力メッセージ最短処理時間テーブルの構成を示す説明図である。
【図１５】本発明の第１の実施の形態のファイル更新可能範囲テーブルの構成を示す説明図である。
【図１６】本発明の第１の実施の形態の入力メッセージバッファテーブルの構成を示す説明図である。
【図１７】本発明の第１の実施の形態のメッセージＩＤテーブルの構成を示す説明図である。
【図１８】本発明の第１の実施の形態のファイル更新ポイントテーブルの構成を示す説明図である。
【図１９】本発明の第１の実施の形態の最新ファイルバージョン番号テーブルの構成を示す説明図である。
【図２０】本発明の第１の実施の形態の使用ファイルバージョン番号テーブルの構成を示す説明図である。
【図２１】本発明の第３の実施の形態の使用ファイルバージョン番号テーブルの構成を示す説明図である。
【符号の説明】
【０１３６】
１０１  管理端末
１０２  処理装置
１０３  ゲートウェイサーバ
１０４  内部ネットワーク
１０５  外部ネットワーク
１１１  ユーザ操作部
１１２  更新制御部
１１３  ファイル格納部
１１４  通信部
１２１  ファイル格納部
１２２  ファイルアクセス部
１２３  ＵＰ実行部
１２４  通信部
１２５  入力メッセージバッファ
１２６  更新制御部
１１０１  処理装置ＡのメッセージＩＤ一覧
１１０２  入力メッセージ最短処理時間
１１０３  処理装置ＡのＵＰ処理スケジュール
１１０４  １２ミリ秒経過時点
１１０５  ファイル更新可能範囲
１１０６  ファイル更新可能範囲一覧
１１０７  ファイル更新ポイント一覧
【図１】
0005054495.tif 000002
【図２】
0005054495.tif 000003
【図３】
0005054495.tif 000004
【図４】
0005054495.tif 000005
【図５】
0005054495.tif 000006
【図６】
0005054495.tif 000007
【図７】
0005054495.tif 000008
【図８】
0005054495.tif 000009
【図９】
0005054495.tif 000010
【図１０】
0005054495.tif 000011
【図１１】
0005054495.tif 000012
【図１２】
0005054495.tif 000013
【図１３】
0005054495.tif 000014
【図１４】
0005054495.tif 000015
【図１５】
0005054495.tif 000016
【図１６】
0005054495.tif 000017
【図１７】
0005054495.tif 000018
【図１８】
0005054495.tif 000019
【図１９】
0005054495.tif 000020
【図２０】
0005054495.tif 000021
【図２１】
0005054495.tif 000022