(57)【要約】データアクセスシステムは、分散共有メモリでデータを互いに共有する複数の計算機と、前記複数の計算機から上り情報を取得し、前記複数の計算機に下り情報を付与する上位システムと、前記分散共有メモリで前記複数の計算機とデータを共有し、前記計算機から前記分散共有メモリを経由する第１の通信により前記上り情報を取得して前記上位システムに伝達し、前記上位システムからの前記下り情報を、前記分散共有メモリを経由しない第２の通信を利用して前記計算機へ伝達するゲートウェイと、を有する。
2018122893.tif 000002
【特許請求の範囲】
【請求項１】
分散共有メモリでデータを互いに共有する複数の計算機と、
前記複数の計算機から上り情報を取得し、前記複数の計算機に下り情報を付与する上位システムと、
前記分散共有メモリで前記複数の計算機とデータを共有し、前記計算機から前記分散共有メモリを経由する第１の通信により前記上り情報を取得して前記上位システムに伝達し、前記上位システムからの前記下り情報を、前記分散共有メモリを経由しない第２の通信を利用して前記計算機へ伝達するゲートウェイと、
を有するデータアクセスシステム。
【請求項２】
前記ゲートウェイは、前記下り情報を前記計算機に宛てて通信ネットワークに送信する、請求項１に記載のゲートウェイシステム。
【請求項３】
前記ゲートウェイは、前記下り情報をマルチキャストで前記複数の計算機に送信する、
請求項３に記載のデータアクセスシステム。
【請求項４】
前記ゲートウェイは、前記下り情報を前記分散共有メモリに格納し、前記第２の通信により、前記計算機に、前記下り情報を格納したアドレスを通知し、
前記計算機は、前記分散共有メモリの前記通知されたアドレスから前記下り情報を読み出す、
請求項１に記載のデータアクセスシステム。
【請求項５】
前記ゲートウェイは、前記計算機に前記上り情報を要求するための下り情報を前記第２の通信により前記計算機に送信し、
前記計算機は、前記上り情報を要求するための下り情報を受信すると、該下り情報で要求された上り情報を前記分散共有メモリ経由の前記第１の通信で前記ゲートウェイに伝達する、
請求項１に記載のデータアクセスシステム。
【請求項６】
前記計算機が前記分散共有メモリへ前記上り情報の書き込みを前記ゲートウェイからの要求とは非同期に行い、
前記ゲートウェイが、前記第２の通信を利用して、前記計算機に前記分散共有メモリへのデータの書き込みの停止を要求し、
前記計算機が前記分散共有メモリへのデータの書き込みを停止すると前記ゲートウェイが前記分散共有メモリから前記上り情報を読み込む、
請求項５に記載のデータアクセスシステム。
【請求項７】
前記計算機は、
前記ゲートウェイと前記第２の通信を行うデータ通信受信部と、
前記第１の通信において、前記分散共有メモリに前記上り情報を書き込む分散共有メモリ書き込み処理部と、を有し、
前記ゲートウェイは、
前記計算機と前記第２の通信を行うデータ通信送信部と、
前記第１の通信において、前記分散共有メモリから前記上り情報を読み込む分散共有メモリ読み込み処理部と、を有する、
請求項１に記載のデータアクセスシステム。
【請求項８】
分散共有メモリでデータを互いに共有する複数の計算機と、
前記複数の計算機から上り情報を取得し、前記複数の計算機に下り情報を付与する上位システムと、
前記計算機と前記上位システムの間で、前記計算機で収集されたデータを前記上位システムに伝達し、
前記上位システムから前記計算機へのフィードバック情報を伝達するゲートウェイと、
を有する計算機システムにおいて前記ゲートウェイが実行するデータアクセス方法であって、
前記分散共有メモリで前記複数の計算機とデータを共有し、前記計算機から前記分散共有メモリを経由する第１の通信により前記上り情報を収集して前記上位システムに伝達し、
前記上位システムからの前記下り情報を、前記分散共有メモリを経由しない第２の通信を利用して前記計算機へ伝達する、
データアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散共有メモリを備えたデータアクセスシステムに関する。
【背景技術】
【０００２】
近年、様々な分野の計算機システムにおいて、システムを効率的に動作させるために、計算機あるいはその周辺に配設されたデバイスから取得されるデータを示すデバイス情報あるいはセンサで計測されるデータを示すセンサ情報を収集し、それらのデータを分析し、分析結果を計算機システムの動作にフィードバックすることが要求されている。【０００３】
計算機で構成したコントローラを上位システムで管理する構成の制御システムの分野においても、上位システムに、データを分析し、分析結果をコントローラにフィードバックする機能を持たせることが要求される。上位システムでは、機器を制御するコントローラあるいはシステム内に配置されたセンサから、デバイス情報、センサ情報、制御パラメータが収集される。上位システムは各種情報を分析し、分析結果を制御パラメータの値にフィードバックする。これにより、コントローラなど制御システムを構成する各種機器や周辺の状況に応じて制御を最適化することができる。【０００４】
このようなデータを収集し、分析し、フィードバックする計算機システムでは、データを収集するための処理や分析結果をシステムに反映させるための処理の負荷により、計算機システムが本来行うべき主機能の処理が遅延しないことが要求される。例えば、制御システムは、制御機能の処理に遅延が生じないようにすることが要求される。【０００５】
また、計算機システムは複数の計算機を含んで構成される場合が多い。制御システムでも、通常、複数のコントローラが設けられる。複数のコントローラを備えた制御システムにおいては、各コントローラ間でデータを共有することが求められる。【０００６】
複数の装置がデータを共有する仕組みとして分散共有メモリあるいはその一種である転写メモリがある（特許文献１−３参照）。分散共有メモリは、複数の装置それぞれが自身に割り当てられたエリアにデータを書き込んだり、そこからデータを読みだしたりできると共に、そのエリアへのデータの更新が他の装置にも反映され、他の装置が更新されたデータを取得可能となるメモリである。【０００７】
例えば、特許文献１記載の通信方法では、各々のノードが転写メモリの各々に割り当てられたエリアのデータを他のノードに対して周期的にブロードキャスト送信する。これによりシステム内で転写メモリのデータが全ての計算機で一致する。特許文献１の技術によれば、一定周期で転写メモリのデータがノード間で一致するように更新されるため、各ノードは自ノード内の転写メモリへデータを読み書きするだけで、自然とノード間でのデータの共有が実現される。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平０７−２１９９０２号公報
【特許文献２】特開２０１６−１００６５９号公報
【特許文献３】特開２０１５−２２６２１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述したような、データを収集し、分析し、フィードバックするシステムでは、データを収集するための処理および分析結果をシステムに反映させるための処理の負荷により、システムが本来行うべき主機能の処理が遅延しないことが要求される。例えば、制御システムでは、データ収集や分析結果の反映のために、制御に遅延が生じないことが要求される。そのために、上位システムとコントローラの間に、データ収集および分析結果を反映する処理を担うゲートウェイを配置した構成が考えられる。【００１０】
上位システムとコントローラの間にゲートウェイが配置される制御システムにおいては、ゲートウェイは、コントローラ間で共有されるデータを収集し、上位システムに伝達する。そのため、コントローラだけでなく、ゲートウェイも転写メモリにアクセスできることが求められる。ゲートウェイは、転写メモリにアクセスし、コントローラ間で共有されているデータを取得する。また、ゲートウェイが上位システムによる分析結果をコントローラにフィードバックできるように、コントローラからアクセスできる転写メモリのエリアがゲートウェイにも割り当てられる。【００１１】
しかしながら、ゲートウェイに転写メモリのエリアを割り当てると、ゲートウェイ部分の構成を変更するとき転写メモリに必要なサイズとメモリ空間の定義が変更されるという問題がある。ゲートウェイ部分の信頼性を向上するために複数のゲートウェイ装置による冗長構成が採用されることがある。また、ゲートウェイ部分の処理能力を向上するために、複数のゲートウェイ装置による負荷分散が採用されることがある。そのような構成では、冗長構成や負荷分散のためにゲートウェイを増設するとき、転写メモリに新たなエリアの追加が必要となる。【００１２】
転写エリアに新たなエリアが増えると、コントローラは新たなエリアにアクセスできるようにソフトウェアプログラムの処理を改造する必要があり、制御システムの信頼性や能力を向上するのに要するコストが増大してしまう。【００１３】
本発明の目的は、複数の計算機が分散共有メモリで情報を共有し、上位システムと計算機の間にゲートウェイが配置される計算機システムにおいて、ゲートウェイを増設しても計算機の分散共有メモリに関する処理への影響の少ないデータアクセスシステムを実現する技術を提供することである。
【課題を解決するための手段】
【００１４】
本発明の一態様によるデータアクセスシステムは、分散共有メモリでデータを互いに共有する複数の計算機と、前記複数の計算機から上り情報を取得し、前記複数の計算機に下り情報を付与する上位システムと、前記分散共有メモリで前記複数の計算機とデータを共有し、前記計算機から前記分散共有メモリを経由する第１の通信により前記上り情報を取得して前記上位システムに伝達し、前記上位システムからの前記下り情報を、前記分散共有メモリを経由しない第２の通信を利用して前記計算機へ伝達するゲートウェイと、を有する。
【発明の効果】
【００１５】
本発明によれば、ゲートウェイは、上り情報は計算機から分散共有メモリ経由で取得するが、下り情報は分散共有メモリを経由しない第２の通信を利用して計算機に送信するので、ゲートウェイに対して分散共有メモリのエリアを割り当てる必要がなく、ゲートウェイの増設による計算機における分散共有メモリに関する処理への影響を低減することができる。
【図面の簡単な説明】
【００１６】
【図１】実施例１によるデータアクセスシステムのシステム構成図
【図２】実施例１によるデータ取得要求送信部１００が実行するデータ取得処理を示すフローチャート
【図３】実施例１によるクライアント１とゲートウェイ装置２が送受信するデータ取得フレームのフォーマットを示す図
【図４】実施例１によるデータ制御要求送信部１０１が実行するデータ制御処理を示すフローチャート
【図５】本発明のクライアント１とゲートウェイ装置２間でのデータ制御フレームフォーマットを示す図
【図６】実施例１によるデータアクセス要求受信部２０１が実行する全体処理を示すフローチャート
【図７】実施例１によるデータアクセス要求受信部２０１が実行するアクセス先情報取得処理を示すフローチャート
【図８】実施例１におけるデータアクセス管理テーブル２００の一例を示す図
【図９】実施例１によるデータアクセス要求受信部２０１が実行する転写メモリ読み込み処理のフローチャート
【図１０】実施例１によるデータアクセス要求受信部２０１が実行するマルチキャスト通信送信処理を示すフローチャート
【図１１】実施例１によるゲートウェイ装置２とコントローラ３が送受信するデータ制御命令フレームのフォーマットを示す図
【図１２】実施例１における転写メモリのマッピング定義およびマッピングの一例を示す図
【図１３】実施例１によるマルチキャスト通信受信部３０２が実行する転写メモリ書き込み処理のフローチャート
【図１４】実施例２におけるデータアクセスシステムのシステム構成図
【図１５】実施例２によるデータアクセス要求受信部２１０が実行する全体処理のフローチャート
【図１６】実施例２によるデータアクセス要求受信部２１０が実行する転写メモリ書き込み処理のフローチャート
【図１７】実施例２においてゲートウェイ装置２とコントローラ３が送受信するデータ制御命令フレームのフォーマットを示す図
【図１８】実施例２によるマルチキャスト通信受信部３１０が実行する制御データ反映処理を示したフローチャート
【図１９】実施例２におけるデータ反映管理テーブル３１１の一例を示す図
【図２０】実施例３によるデータアクセスシステムのシステム構成図
【図２１】実施例３によるデータアクセス要求受信部２５０が実行する全体処理を示すフローチャート
【図２２】実施例３におけるデータ反映フレームのフォーマットを示す図
【図２３】ステップＳ５０５における転写メモリ読み込み処理を示すフローチャート
【図２４】実施例３におけるマルチキャスト通信受信部３５０が実行するデータ反映処理を示すフローチャート
【図２５】実施例３における内部メモリ管理テーブルの一例を示す図
【図２６】実施例３の変形例におけるデータアクセス要求受信部２５０が実行する全体処理を示すフローチャート
【発明を実施するための形態】
【００１７】
以下、本発明の実施例について図面を用いて説明する。
【実施例１】
【００１８】
図１は、実施例１によるデータアクセスシステムのシステム構成図の例である。本実施例によるデータアクセスシステムは、クライアント１、ゲートウェイ装置２、およびコントローラ３を有する制御システムである。【００１９】
クライアント１は、メモリ１０、表示装置／入力装置１１、情報ネットワークインタフェース（Ｉ／Ｆ）１２、ＣＰＵ１３、およびディスク装置１４を有する。クライアント１は、情報ネットワーク５に接続され、情報ネットワーク５経由でゲートウェイ装置２と通信する。【００２０】
また、クライアント１は、データ取得要求送信部１００を使用してコントローラ３が持つデータを取得する。【００２１】
図２は、実施例１によるデータ取得要求送信部１００によるデータ取得処理を示すフローチャートである。【００２２】
データ取得要求送信部１００は、取得する対象のデータを一意に特定するデータ識別ＩＤ１１５を入力情報として受け取ると、以下の動作を開始する。【００２３】
データ取得要求送信部１００は、入力されたデータ識別ＩＤ１１５に基づいて、図３に示すデータ取得要求フレーム１１０を作成し（ステップＳ１００）、情報ネットワークＩ／Ｆ１２経由でゲートウェイ装置２に対してデータ取得要求フレーム１１０を送信する（ステップＳ１０１）。【００２４】
図３は、クライアント１とゲートウェイ装置２が送受信するデータ取得フレームのフォーマットを示す図である。データ取得フレームには、クライアント１がデータを要求するためのデータ取得要求フレーム１１０と、ゲートウェイ装置２が要求されたデータをクアイアント１に送信するためのデータ取得応答フレーム１１６がある。【００２５】
データ取得要求フレーム１１０は、プロトコルヘッダ１１２とデータ取得要求情報１１１から構成される。プロトコルヘッダ１１２には、プロトコル種別、送信元、および宛先などの情報が含まれる。データ取得要求情報１１１は、データ識別ＩＤ１０５に関する処理の要求内容を表す要求種別ＩＤ１１３と、データの取得を要求するデータ数１１４と、少なくとも一つ以上のデータ識別ＩＤ１１５から構成される。データ取得要求フレーム１１０では要求種別ＩＤ１１３として“ＧＥＴ”が指定される。【００２６】
その後、データ取得要求送信部１００は、ゲートウェイ装置２から情報ネットワークＩ／Ｆ１２を経由して、図３に示すデータ取得応答フレーム１１６を受信するのを待つ（ステップＳ１０２）。【００２７】
図３を参照すると、データ取得応答フレーム１１６は、プロトコルヘッダ１１２とデータ取得応答情報１１７から構成される。データ取得応答情報１１７は、要求種別ＩＤ１１３とデータ数１１４と少なくとも一つ以上の取得データ情報１１８から構成される。取得データ情報１１８は、データ識別ＩＤ１１５と、コントローラ３が持つデータ値である取得データ１１９とから構成される。【００２８】
データ取得応答フレーム１１６を受信すると、データ取得要求送信部１００は、データ取得応答フレーム１１６に格納されている、コントローラ３が持つデータ値である取得データ１１９を取り出し（ステップＳ１０３）、表示装置１１に表示する（ステップＳ１０４）。【００２９】
図１に戻り、また、クライアント１は、データ制御要求送信部１０１を使用して、コントローラ３にデータ制御を実行させる。【００３０】
図４は、実施例１によるデータ制御要求送信部１０１が実行するデータ制御処理を示すフローチャートである。【００３１】
データ制御要求送信部１０１は、人間系より入力装置１１を経由してデータ識別ＩＤ１１５と制御データ１２４をデータ書き込み指示として受け取ると（ステップＳ１１０）、データ識別ＩＤ１１５と制御データ１２４を基に、図５に示すデータ制御要求フレーム１２０を作成し（ステップＳ１１１）、情報ネットワークＩ／Ｆ１２を経由してゲートウェイ装置２に対して送信する（ステップＳ１１２）。【００３２】
図５は、クライアント１とゲートウェイ装置２が送受信するデータ制御フレームのフォーマットを示す図である。データ制御フレームには、クライアント１がデータ制御を要求するためのデータ制御要求フレーム１２０と、ゲートウェイ装置２がコントローラ３からのデータ制御の結果を送信するためのデータ制御応答フレーム１２５がある。【００３３】
データ制御要求フレーム１２０はプロトコルヘッダ１２２とデータ制御要求情報１２１から構成される。データ制御要求情報１２１は、要求種別ＩＤ１１３とデータ数１１４と少なくとも一つ以上の制御情報１２３から構成される。制御情報１２３は、データ識別ＩＤ１１５と制御データ１２４から構成される。制御データ１２４はデータ識別ＩＤ１１５で識別されるデータの制御後の値を示す。データ制御要求フレーム１２０では要求種別ＩＤ１１３として“ＰＵＴ”が指定される。【００３４】
その後、データ制御要求送信部１０１は、ゲートウェイ装置２から情報ネットワークＩ／Ｆ１２を経由して、図５に示すデータ制御応答フレーム１２５の受信を待つ（ステップＳ１１３）。【００３５】
データ制御応答フレーム１２５は、プロトコルヘッダ１２２とデータ制御応答情報１２６から構成される。データ制御応答情報１２６は、要求種別ＩＤ１１３とデータ数１１４と少なくとも一つ以上の制御結果情報１２７から構成される。制御結果情報１２７は、データ識別ＩＤ１１５と制御結果１２８から構成される。制御結果１２８には、要求されたデータ制御の結果が格納される。制御結果１２８の値は、クライアント１がコントローラ３での制御が正しく行なわれたか否かを判定するのに利用される。【００３６】
データ制御応答フレーム１２５を受信すると、データ制御要求送信部１０１は、データ制御応答フレーム１２３に格納されている、指示した制御の結果を示す制御結果１２８を取り出し（ステップＳ１１４）、表示装置１１の表示に制御結果１２８の内容を反映する（ステップＳ１１５）。【００３７】
図１に戻り、ゲートウェイ装置２は、メモリ２０、制御ネットワークＩ／Ｆ２１、ＣＰＵ２２、不揮発性記憶装置２３、および情報ネットワークＩ／Ｆ２４を有する。ゲートウェイ装置２は、情報ネットワーク５を介してクライアント１と接続し、制御ネットワーク６を介してコントローラ３と接続する。ゲートウェイ装置２は、クライアント１からのデータ取得要求及びデータ制御要求を受け、その要求に応じてコントローラ３とデータを送受信する。本実施例では、同じ構成の複数のゲートウェイ装置２が情報ネットワーク５及び制御ネットワーク６に接続され、クライアント１からのデータ取得要求及びデータ制御要求をいずれかのゲートウェイ装置２が受け付ける。【００３８】
図６は、実施例１によるデータアクセス要求受信部２０１の全体処理を示すフローチャートである。【００３９】
データアクセス要求受信部２０１は、情報ネットワークＩ／Ｆ２４を経由してクライアント１から送信されるデータ取得要求フレーム１１０またはデータ制御要求フレーム１２０を受信するのを待つ（ステップＳ２００）。【００４０】
データアクセス要求受信部２０１は、データ取得要求フレーム１１０またはデータ制御要求フレーム１２０を受信すると、受信したフレームに含まれる要求種別ＩＤ１１３を取得する（ステップＳ２０１）。【００４１】
次に、データアクセス要求受信部２０１は、アクセス先情報取得処理を実行する（ステップＳ２０２）。アクセス先情報取得処理は、アクセス先の情報を取得する処理であり、その詳細は図７を用いて後述する。【００４２】
続いて、データアクセス要求受信部２０１は、ステップＳ２０１で取得した要求種別ＩＤ１０６が“ＧＥＴ”であるか、“ＰＵＴ”であるか判定する（ステップＳ２０３）。【００４３】
ステップＳ２０１で取得した要求種別ＩＤ１０６が“ＧＥＴ”であれば、データアクセス要求受信部２０１は、転写メモリからデータを取得する転写メモリ読み込み処理を実行する（ステップＳ２０４）。転写メモリ読み込み処理の詳細は図９を用いて後述する。【００４４】
ステップＳ２０１で取得した要求種別ＩＤ１０６が“ＰＵＴ”であれば、データアクセス要求受信部２０１は、制御のデータを複数のコントローラ３にマルチキャストで送信するマルチキャスト通信送信処理を実行する（ステップＳ２０５）。マルチキャスト通信送信処理の詳細は図１０を用いて後述する。【００４５】
図７は、実施例１によるデータアクセス要求受信部２０１が実行するアクセス先情報取得処理を示すフローチャートである。【００４６】
データアクセス要求受信部２０１は、データ取得要求フレーム１１０またはデータ制御要求フレーム１２０に含まれるデータ識別ＩＤ１１５を一つ取得する（ステップＳ２０６）。次に、データアクセス要求受信部２０１は、ステップＳ２０１で取得した要求種別ＩＤ１１３とステップＳ２０６で取得したデータ識別ＩＤ１１５をキーに、図８に示すデータアクセス管理テーブル２００を参照してアクセス先情報を取得する（ステップＳ２０７）。【００４７】
図８は、データアクセス管理テーブル２００の一例を示す図である。データアクセス管理テーブル２００には、データ識別ＩＤごとに、“ＧＥＴ”のアクセス先情報と、“ＰＵＴ”のアクセス先情報が格納されている。アクセス先情報には、転写メモリアドレスとサイズが含まれている。転写メモリアドレスは、アクセス先の先頭アドレスを示し、サイズはアクセス先のアドレスサイズ（アクセスサイズ）を示す。【００４８】
データアクセ要求受信部２０１は、データ取得要求フレーム１１０またはデータ制御要求フレーム１２０に含まれる全てのデータ識別ＩＤ１１５に対してステップＳ２０６〜ステップＳ２０７の処理を繰り返し、実行する（ステップＳ２０８）。【００４９】
図９は、実施例１によるデータアクセス要求受信部２０１が実行する転写メモリ読み込み処理のフローチャートである。【００５０】
データアクセス要求受信部２０１は、ステップＳ２０２で取得したアクセス先情報から転写メモリアドレスと読み込みサイズ（アクセスサイズ）の情報を取り出し（ステップＳ２１０）、転写メモリ読み込み処理部２０２に転写メモリの内容を読み込む処理を実行させる（ステップＳ２１１）。【００５１】
転写メモリ読み込み処理部２０２は、転写メモリアドレスと読み込みサイズを入力とし、入力として与えられた転写メモリアドレスから入力として与えられた読み込みサイズ分のデータを読み込む。データアクセス要求受信部２０１は、転写メモリ読み込み処理部２０２の読込んだデータを基に取得データ情報１１８を作成する（ステップＳ２１２）。【００５２】
データアクセス要求受信部２０１および転写メモリ読み込み処理部２０２は、ステップＳ２０３で取得したすべてのアクセス先情報に対してステップＳ２１０、ステップＳ２１１、およびステップＳ２１２を繰り返し、実行する（ステップＳ２１３）。【００５３】
データアクセス要求受信部２０１は、ステップＳ２０２で取得したすべてのアクセス先に対して転写メモリ読み込み処理部２０２の処理を完了した後、ステップＳ２１２で作成した取得データ情報１１８を基にデータ取得応答フレーム１１６を作成する（ステップＳ２１４）。続いて、データアクセス要求受信部２０１は、作成したデータ取得応答フレーム１１６を、情報ネットワークＩ／Ｆ２１を経由してクライアント１に対して送信する。【００５４】
図１０は、実施例１によるデータアクセス要求受信部２０１が実行するマルチキャスト通信送信処理を示すフローチャートである。【００５５】
データアクセス要求受信部２０１は、ステップＳ２０２で取得したアクセス先情報から転写メモリアドレスと書き込みサイズ（アクセスサイズ）の情報を取り出し（ステップＳ２２０）、それに対応するデータ制御要求フレーム内の制御データ１２４を基に、図１１に示す制御対象指定情報１３３を作成する（ステップＳ２２１）。【００５６】
図１１は、データ制御命令フレーム１３０のフォーマットを示す図である。【００５７】
データ制御命令フレーム１３０は、プロトコルヘッダ１３２とデータ制御命令情報１３１から構成される。データ制御命令情報１３１は、データ数１１４と少なくとも一つ以上の制御対象指定情報１３３から構成される。制御対象指定情報１３３は、制御対象先頭アドレス１３４と制御対象サイズ１３５と制御データ１２４から構成される。【００５８】
データアクセス要求受信部２０１は、ステップＳ２０２で取得したすべてのアクセス先情報に対してステップＳ２２０およびステップＳ２２１の処理を繰り返し、実行する（ステップＳ２２２）。その後、データアクセス要求受信部２０１は、図１１に示すデータ制御命令フレーム１３０を作成し（ステップＳ２２３）、作成したデータ制御命令フレーム１３０をマルチキャスト通信処理部２０３の入力としてマルチキャスト通信処理部２０３に処理を実行させる（ステップＳ２２４）。【００５９】
マルチキャスト通信処理部２０３の処理は、制御ネットワークＩ／Ｆ２４を経由してマルチキャストＩＰアドレスに対して、入力として与えられたデータ制御命令フレーム１３０を送信する処理である。【００６０】
データアクセス受信部２０１は、ステップＳ２２４の実行結果を基に制御結果情報１２７の作成を行う（ステップＳ２２５）。データアクセス受信部２０１は、ステップＳ２０６で取得したすべてのデータ識別ＩＤ１１５に対してステップＳ２２５を繰り返し実行する（ステップＳ２２６）。データアクセス受信部２０１は、ステップＳ２２６で作成した制御結果情報１２７を基にデータ制御応答フレーム１２５を作成し（ステップＳ２２７）、情報ネットワークＩ／Ｆ２１を経由してクライアント１に送信する（ステップＳ２２８）。【００６１】
図１に戻り、コントローラ３は、メモリ３０、制御ネットワークＩ／Ｆ３１、ＣＰＵ３２、不揮発性記憶装置３３、入力モジュール３４、および出力モジュール３５を有する。コントローラ３は、制御ネットワーク６に接続され、ゲートウェイ装置２からのデータ制御命令に応じて制御を実行する。【００６２】
入力処理部３０３は、入力モジュール３３を使用してプロセス４の状態を取得する。【００６３】
出力処理部３０５は、出力モジュール３５を使用してプロセス４の制御を行なう。【００６４】
不揮発性記憶装置３３は、図１２に示す転写メモリマッピング定義ファイル３０６を有する。図１２は、転写メモリのマッピング定義およびマッピングの一例を示す図である。図１２に示すように、マッピング定義ファイル３０６には、コントローラ３に割り当てられた転写メモリのエリアを定義する情報が記述されている。定義は、転写メモリの先頭アドレスとサイズにより定義される。そして、転写メモリには、その定義に従ってコントローラ３のデータがマッピングされる。【００６５】
本実施例では、同じ構成の複数のコントローラ３が制御ネットワーク６に接続される。【００６６】
転写メモリ書き込みエリア設定部３０７は、転写メモリマッピング定義ファイル３０６の読み込みを行い、転写メモリマッピング定義ファイル３０６内に記載されている転写メモリアドレスから記載されているサイズ分のエリアをコントローラ３が転写メモリに書き込みを行えるエリアとして割当てを行う。【００６７】
転写メモリ書き込み処理部３０１は、転写メモリアドレスとサイズと制御データを入力とし、入力として与えられた転写メモリアドレスに入力として与えられた制御データを入力として与えられたサイズ分書き込みを行う。【００６８】
演算処理部３０４は、入力処理部３０３を実行してプロセス４の状態を取得し、転写メモリ読み込み処理部３００を実行して転写メモリ上のデータを取得する。演算処理部３０４は、入力処理部３０３と転写メモリ読み込み処理部３００から得られた情報を基に演算を行い、その結果を基に転写メモリ書き込み処理部３０１を実行して転写メモリ上のデータを更新する。また、演算処理部３０４は、入力処理部３０３と転写メモリ読み込み処理部３００から得られた情報を基に所定の演算を行い、その結果を基に出力処理部３０５に処理を実行させてプロセスの制御を行う。【００６９】
図１３は、実施例１によるマルチキャスト通信受信部３０２が実行する転写メモリ書き込み処理のフローチャートである。【００７０】
マルチキャスト通信受信部３０２は、制御ネットワークＩ／Ｆ３１を経由してゲートウェイ装置２からデータ制御命令フレーム１３０を受信するのを待つ（ステップＳ３００）。データ制御命令フレーム１３０を受信すると、マルチキャスト通信受信部３０２は、データ制御命令フレーム１３０に含まれる制御対象指定情報１３３を取得する（ステップＳ３０１）。【００７１】
次に、マルチキャスト通信受信部３０２は、ステップＳ３０１で取得した制御対象指定情報１３３から制御対象先頭アドレス１３４と制御対象サイズ１３５を取り出す（ステップＳ３０２）。マルチキャスト通信受信部３０２は、続いて、制御対象先頭アドレス１３４が示す先頭アドレスから、制御対象サイズ１３５が示すサイズ分の制御対象である転写メモリのエリアが、転写メモリ書き込みエリア設定部３０７により割り当てられたエリアであるか否か判定する（ステップＳ３０３）。【００７２】
制御対象として指定されているエリアが転写メモリの書き込みエリアとして割り当てられている場合、マルチキャスト通信受信部３０２は、ステップＳ３０１で取得した制御対象指定情報１３３から制御データ１２４を取り出す（ステップＳ３０４）。【００７３】
次に、マルチキャスト通信受信部３０２は、ステップＳ３０３で取得した制御対象先頭アドレス１３４および制御対象サイズ１３５と、ステップＳ３０４で取得した制御データ１２４を入力とし、転写メモリ書き込み処理部３０１の処理を実行させる（ステップＳ３０５）。【００７４】
マルチキャスト通信受信部３０２は、ステップＳ３００で受信したデータ制御命令フレーム１３０に含まれる全ての制御対象指定情報１３３に対してステップＳ３０１、ステップＳ３０２、ステップＳ３０３、ステップＳ３０４、およびステップＳ３０５の処理を繰り返し実行する（ステップＳ３０６）。【００７５】
以上のように、本実施例では、ゲートウェイ装置２が増設された場合でも、コントローラ３は要求発行元であるゲートウェイ装置２を意識する必要がないため、コントローラ３の処理の改修は不要である。また、コントローラ３は、制御命令フレームにて制御データを受信できるため、制御データの同時性を確保することもできる。【００７６】
なお、本実施例では、マルチキャスト通信受信部３０２は、制御命令フレーム１３０に含まれる制御対象先頭アドレス１３４から制御対象サイズ１３５分の転写メモリエリアに対して制御データ１２４の書き込みを行っているが、これに限定されることはない。他の例として、制御対象先頭アドレス１３４と制御対象サイズ１３５及び制御データ１２４の内容を入力として処理または書き込みを行う転写メモリエリアを決めてもよい。【００７７】
また、本実施例の一部を以下のように整理することもできる。【００７８】
データアクセスシステムは、分散共有メモリ（転写メモリ）でデータを互いに共有する複数の計算機（コントローラ３）と、複数の計算機から上り情報を取得（ＧＥＴ）し、複数の計算機に下り情報を付与（ＰＵＴ）する上位システム（クライアント１）と、分散共有メモリで複数の計算機とデータを共有し、計算機から分散共有メモリを経由する第１の通信により上り情報を収集して上位システムに伝達し、上位システムからの下り情報を、分散共有メモリを経由しない第２の通信を利用して計算機へ伝達するゲートウェイ（ゲートウェイ装置２）と、を有している。これにより、ゲートウェイは、上り情報は計算機から分散共有メモリ経由で取得するが、下り情報は分散共有メモリを経由しない第２の通信を利用して計算機に送信するので、ゲートウェイに対して分散共有メモリの書き込みエリアを割り当てる必要がなく、ゲートウェイの増設による計算機における分散共有メモリに関する処理への影響を低減することができる。【００７９】
また、本実施例では、ゲートウェイは、下り情報を計算機に宛てて通信ネットワーク（制御ネットワーク６）に送信する。これにより、計算機は、自装置宛の下り情報をゲートウェイから通信ネットワーク経由で受信するだけなので、ゲートウェイを増設しても分散共有メモリの新たなエリアへアクセスする必要がなく、そのため処理の改造も不要である。また、ゲートウェイから計算機に下り情報を通信ネットワークを通じて送信するので、下り情報が大容量であっても、分散共有メモリを経由する場合と比べて伝達に要する時間が短縮され、データの同時性が向上する。なお、通常、分散共有メモリによるデータの伝達に比べて、通信ネットワークを通したデータの伝送の方が大容量である。【００８０】
また、本実施例では、ゲートウェイは、下り情報をマルチキャストで複数の計算機に送信する。ゲートウェイから複数の計算機にマルチキャストで下り情報を送信するので、複数の計算機のそれぞれに効率よく情報を伝達することができる。
【実施例２】
【００８１】
実施例１では，ゲートウェイ装置２には転写メモリの書き込みエリアを割り当てず、ゲートウェイ装置２は、クライアント１からの制御要求をマルチキャスト通信によりコントローラ３に伝達した。一方、実施例２では、実施例１とは異なり、ゲートウェイ装置２に対して転写メモリ書き込みエリアが割り当てられる。実施例２では、ゲートウェイ装置２は、クライアント１からの制御要求を、転写メモリエリアとマルチキャスト通信の両方を用いてコントローラ３に伝達する。以下、実施例２の構成および動作の詳細は後述する。なお、ここでは主に実施例２について実施例１との差異に着目して説明する。【００８２】
図１４は、実施例２によるデータアクセスシステムのシステム構成図である。図１４に示す実施例２のデータアクセスシステムでは、図１に示した実施例１に対して、ゲートウェイ装置２のメモリ２０に転写メモリ書き込み処理部３０１および転写メモリ書き込みエリア設定部３０７が追加され、不揮発性記憶装置２３に転写メモリマッピング定義ファイル２１２が追加されている。また、実施例２のデータアクセス要求受信部２１０は、実施例１のデータアクセス要求受信部２０１とは処理の一部が異なる。さらに、コントローラ３のメモリ３０にデータ反映管理テーブル３１１が追加されている。これに伴い、実施例２のマルチキャスト通信受信部３１０は、実施例１のマルチキャスト通信受信部３０２とは処理の一部が異なる。【００８３】
また、不揮発性記憶装置２３には、転写メモリマッピング定義ファイル２１２が記録されている。転写メモリマッピング定義ファイル２１２には、ゲートウェイ装置２用の転写メモリエリアを定義する情報が記述される。転写メモリエリアの定義は、割り当てられた領域の先頭アドレスを示す転写メモリアドレスとその領域のサイズの情報により定義される。転写メモリマッピング定義ファイル２１２のフォーマットは、図１２に示した実施例１のものと同様である。【００８４】
転写メモリ書き込みエリア設定部２１３は、転写メモリマッピング定義ファイル２１２を読み込み、転写メモリマッピング定義ファイル２１２内に記載されている転写メモリアドレスから、同じく転写メモリマッピング定義ファイル２１２内に記載されているサイズ分のエリアをゲートウェイ装置２が転写メモリにデータを書き込むことができるエリアとして割り当てる。【００８５】
図１５は、実施例２によるデータアクセス要求受信部２１０が実行する全体処理を示すフローチャートである。【００８６】
ステップＳ２０３において、要求種別ＩＤ１０６がデータ制御要求を示す“ＰＵＴ”であれば、データアクセス要求受信部２１０は、まず、ゲートウェイ装置２に割り当てられた転写メモリエリアに制御データを書き込み、続いて、コントローラ３に対してマルチキャスト通信により、ゲートウェイ装置２の転写メモリエリアのアドレスを指定してそのアドレスからデータを読み込むことを指示する制御命令を送信する（ステップＳ４１０）。【００８７】
図１６は、実施例２によるデータアクセス要求受信部２１０が実行する転写メモリ書き込み処理を示すフローチャートである。【００８８】
データアクセス要求受信部２１０は、まず、図６におけるステップＳ２０２で取得したアクセス先情報から転写メモリアドレスと書き込みサイズの情報を取り出す（ステップＳ４００）。次に、データアクセス要求受信部２１０は、アクセス先情報から取り出した転写メモリアドレスと書き込みサイズに対応するデータ制御要求フレーム内の制御データ１２４と、ステップＳ４００で得られた転写メモリアドレスおよび書き込みサイズとを転写メモリ書き込み処理部３０１への入力として、転写メモリ書き込み処理部３０１に処理を実行させる（ステップＳ４０１）。転写メモリ書き込み処理部３０１は、入力された転写メモリアドレスと書き込みサイズが示す領域に、入力された制御データ１２４を書き込む。【００８９】
さらに、データアクセス要求受信部２１０は、転写メモリ書き込み処理部３０１が処理を実行完了した後、ステップＳ４００で得られた転写メモリアドレスと書き込みサイズとそれに対応するデータ制御要求フレーム内のデータ識別ＩＤ１１５を基に、制御対象指定情報１４３を作成する（ステップＳ４０２）。制御対象指定情報１４３は、制御データ１２４を書き込んだ転写メモリの領域をコントローラ３に通知するための情報であり、データ識別ＩＤ１１５と制御対象先頭アドレス１４４と制御対象サイズ１４５から構成される。【００９０】
データアクセス要求受信部２１０は、ステップＳ２０２で取得したすべてのアクセス先情報に対して、ステップＳ４００、ステップＳ４０１、およびステップＳ４０２を繰り返し実行する（ステップＳ４０３）。その後、データアクセス要求受信部２１０は、図１７に示すデータ制御命令フレーム１４０を作成し（ステップＳ４０４）、作成したデータ制御命令フレーム１４０をマルチキャスト通信処理部２１１への入力とし、マルチキャスト通信処理部２１１に処理を実行させる（ステップＳ４０５）。図１７は、実施例２においてゲートウェイ装置２とコントローラ３が送受信するデータ制御命令フレームのフォーマットを示す図である。データ制御命令フレーム１４０は、コントローラ３に対してデータ制御の実行を指示するための命令フレームであり、プロトコルヘッダ１４２とデータ制御命令情報１４１から構成される。データ制御命令情報１４１は、データ数１１４と少なくとも一つ以上の制御対象指定情報１４３から構成される。マルチキャスト通信処理部２１１は、制御ネットワークＩ／Ｆ２４を経由してマルチキャストＩＰアドレスに対して、入力として与えられたデータ制御命令フレーム１４０を送信する。【００９１】
ステップＳ４０５で送信されたデータ制御命令フレーム１４０は、コントローラ３のマルチキャスト通信受信部３１０にて受信を行う。コントローラ３では、データ制御命令フレーム１４０にて指示されたデータ制御を実行する。【００９２】
次に、データアクセス要求受信部２１０は、ステップＳ４０５で指示したデータ制御の実行結果を基に制御結果情報１２７を作成する（ステップＳ４０６）。データアクセス要求受信部２１０は、図７のステップＳ２０６で取得したすべてのデータ識別ＩＤ１１５に対して制御結果情報１２７を作成する（ステップＳ４０７）。その後、データアクセス要求受信部２１０は、ステップＳ４０６で作成した制御結果情報１２７を基にデータ制御応答フレーム１２５を作成し（ステップＳ４０８）、情報ネットワークＩ／Ｆ２１を経由してクライアント１に対してデータ制御応答フレーム１２５を送信する（ステップＳ４０９）。【００９３】
図１８は、実施例２によるマルチキャスト通信受信部３１０が実行する制御データ反映処理を示すフローチャートである。マルチキャスト通信受信部３１０は、制御ネットワークＩ／Ｆ３１を経由してゲートウェイ装置２からデータ制御命令フレーム１４０を受信するのを待つ（ステップＳ４５０）。データ制御命令フレーム１４０を受信すると、マルチキャスト通信受信部３１０は、そのデータ制御命令フレーム１４０に含まれる制御対象指定情報１４３を一つ取得する（ステップＳ４５１）。さらに、マルチキャスト通信受信部３１０は、ステップＳ４５１で取得した制御対象指定情報１４３からデータ識別ＩＤ１５５を取り出す（ステップＳ４５２）。【００９４】
続いて、マルチキャスト通信受信部３１０は、図１９に示すデータ反映管理テーブル３１１を参照し、ステップＳ４５２で取得したデータ識別ＩＤ１５５がデータ反映管理テーブル３１１に登録されているものであるか否か確認する（ステップＳ４５３）。この確認は、すなわち、ステップＳ４５２で取得したデータ識別ＩＤ１５５が、自装置（コントローラ３）が制御を実行する対象に対する制御命令であるか否かを判定するものである。データ識別ＩＤ１５５がデータ反映管理テーブル３１１に登録されていれば、その識別ＩＤ１５５で識別されるデータ制御は自装置が実行すべきデータ制御である。図１９は、実施例２におけるデータ反映管理テーブル３１１の一例を示す図である。データ反映管理テーブル３１１には、制御データを識別するデータ識別ＩＤと、その制御データの反映先を示すデータ反映先情報とが含まれている。データ反映先情報は、転写メモリアドレスとサイズにより示されている。【００９５】
マルチキャスト通信受信部３１０は、ステップＳ４５２で取得したデータ識別ＩＤ１５５がデータ反映管理テーブル３１１に登録されていたら、制御指定情報１４３から制御対象先頭アドレス１４４と制御対象サイズ１４５を取り出す（ステップＳ４５４）。続いて、マルチキャスト通信受信部３１０は、ステップＳ４５４で得られた制御対象先頭アドレス１４４と制御対象サイズ１４５を転写メモリ読み込み処理部２０２への入力とし、転写メモリ読み込み処理部２０２に処理を実行させる（ステップＳ４５５）。転写メモリ読み込み処理部２０２の処理は、転写メモリにおける制御対象先頭アドレス１４４から制御対象サイズ１４５分だけのアドレスにアクセスし、データを読み込む処理である。【００９６】
その後、マルチキャスト通信受信部３１０は、データ反映管理テーブル３１１を参照し、データ識別ＩＤ１５５に対応するデータ反映先情報に含まれる転写メモリアドレスとデータサイズを取り出す（ステップＳ４５６）。ここ得た転写メモリアドレスとデータサイズはステップＳ４５４で取得した転写メモリデータの反映先を示す。【００９７】
マルチキャスト通信受信部３１０は、ステップＳ４５６で得られた転写メモリアドレスとデータサイズの情報を転写メモリ書き込み処理部３０１への入力として、転写メモリ書き込み処理部３０１に処理を実行させる（ステップＳ４５７）。転写メモリ書き込み処理部３０１の処理は、自コントローラ用転写メモリにおける転写メモリアドレスとデータサイズが示すエリアに制御データを書き込む処理である。【００９８】
マルチキャスト通信受信部３１０は、ステップＳ４５０で取得したデータ制御命令フレーム１４０に含まれるすべての制御対象指定情報１４３に対して、ステップＳ４５１、４５２、４５３、４５４、４５５、４５６、４５７の処理を繰り返し実行する（ステップＳ４５８）。【００９９】
以上のように、本実施例によれば、コントローラ３は制御命令フレームを受信することで転写メモリにおける制御データが格納される格納先の情報を得られるので、ゲートウェイ装置２に割り当てられた転写メモリのエリアの情報を予め持っていなくても、ゲートウェイ装置２からの制御データが格納されているエリアを一意に特定し、制御データを取得することができる。そのため、ゲートウェイ装置２が増設されたときにも、ゲートウェイ装置２に割り当てられた転写メモリのエリアの情報をコントローラ３に通知する必要が無い。【０１００】
また、ゲートウェイ装置２は転写メモリへのデータ書き込みが完了後にマルチキャスト通信によりコントローラ３に制御命令を送信するため、ゲートウェイ装置２からの制御データが大量な場合でも、制御命令を複数のコントローラ３に同時に伝達することができるので、データの同時性を確保できる。また、制御命令フレーム１４０のデータ量が小さいので、制御命令の送信及び処理によるレイテンシを低くできる。【０１０１】
また、本実施例の一部を以下のように説明することもできる。【０１０２】
本実施例のデータアクセスシステムは、分散共有メモリ（転写メモリ）でデータを互いに共有する複数の計算機（コントローラ３）と、複数の計算機から上り情報を取得し、複数の計算機に下り情報を付与する上位システム（クライアント１）と、分散共有メモリで複数の計算機とデータを共有し、計算機から分散共有メモリを経由する第１の通信により上り情報を収集して前記上位システムに伝達し、上位システムからの下り情報を、前記分散共有メモリを経由しない第２の通信を利用して前記計算機へ伝達するゲートウェイ（ゲートウェイ装置２）と、を有している。そして本実施例では特にゲートウェイは、下り情報を分散共有メモリに格納し、第２の通信により、計算機に、下り情報を格納したアドレスを通知する。計算機は、分散共有メモリの通知されたアドレスから下り情報を読み出す。これにより、計算機は通知されたアドレスにアクセスすれば下り情報を取得できるので、ゲートウェイが増設されても新たな処理を行う必要がなく処理の改造が不要である。また、本構成では、ゲートウェイから分散共有メモリに下り情報を格納した後に複数の計算機にアドレスを通知することにより、複数の計算機が並行して下り情報を取り出すことができるので、複数の計算機に下り情報を効率よく伝達することができる。
【実施例３】
【０１０３】
実施例１では、ゲートウェイ装置２からコントローラ３への下り情報をマルチキャスト通信によりコトローラ３に送るものであるが、実施例３は、実施例１において下り情報を伝達する構成を、下り情報を効率よく伝達するのに利用する。実施例３におけるゲートウェイ装置２は、マルチキャスト通信を用いてコントローラ３に転写メモリへデータを反映するように指示し、その後、データが反映された転写メモリを読み込む。【０１０４】
図２０は、実施例３によるデータアクセスシステムのシステム構成図である。実施例３では、図１に示した実施例１のデータアクセスシステムと比べると、メモリ１０にデータ制御要求送信部１０１が無く、メモリ２０にデータアクセス要求管理テーブル２００が無くなっている。逆に、メモリ３０には内部メモリ管理テーブル３５２が追加されている。【０１０５】
図２０に示したデータアクセス要求受信部２５０は、図１のデータアクセス要求受信部２０１の処理の一部を変更したものである。マルチキャスト通信送信部２５１は、マルチキャスト通信送信部２０３の処理の一部を変更したものである。マルチキャスト通信受信部３５０は、マルチキャスト通信受信部３０２の処理の一部を変更したものである。演算処理部３５１は演算処理部３０４の処理の一部を変更したものである。【０１０６】
図２１は、実施例３におけるデータアクセス要求受信部２５０が実行する全体処理を示すフローチャートである。データアクセス要求受信部２５０は、まずデータ取得要求フレーム１１０を受信するのを待つ（ステップＳ５００）。データアクセス要求受信部２５０は、データ取得要求フレーム１１０を受信すると、そのデータ取得要求フレーム１１０に含まれるデータ取得要求情報１１１に基づき、データ反映要求フレーム１５０を作成する（ステップＳ５０１）。データ反映要求フレーム１５０は、コントローラ３に対して、所望のデータを転写メモリに書き込むように要求するためのフレームである。【０１０７】
図２２は、実施例３におけるデータ反映フレームのフォーマットを示す図である。データ反映フレームには、データ反映要求フレーム１５０とデータ反映応答フレーム１５４がある。データ反映要求フレーム１５０は、データを転写メモリに書き込むことを要求するためのフレームである。データ反映応答フレーム１５４は、データを転写メモリに書き込んだことを通知するためのフレームである。【０１０８】
データ反映要求フレーム１５０は、プロトコルヘッダ１５２とデータ反映要求情報１５１から構成される。データ反映要求情報１５１は、データ数１１４と少なくとも一つ以上のデータ識別ＩＤ１１５から構成される。データ識別ＩＤ１１５は、転写メモリに書き込むことを要求するデータを一意に特定する識別情報である。【０１０９】
データアクセス要求受信部２５０は、作成したデータ反映要求フレーム１５０をマルチキャスト通信処理部２５１へ入力し、マルチキャスト通信処理部２５１に処理を実行させる（ステップＳ５０２）。マルチキャスト通信処理部２５１は、データ反映要求フレーム１５０を制御ネットワークＩ／Ｆ２４を経由して複数のコントローラ３へマルチキャスト通信により送信する。【０１１０】
次に、データアクセス要求受信部２５０は、送信したデータ反映要求フレーム１５０に含まれるすべてのデータ識別ＩＤ１１５に対するデータ反映応答フレーム１５４を受信するまで、ステップＳ５０４、ステップＳ５０５、ステップＳ５０６、ステップＳ５０７を繰り返し実行する（ステップＳ５０３）。【０１１１】
データ反映応答フレーム１５４は、プロトコルヘッダ１５６とデータ反映結果情報１５５から構成される。データ反映結果情報１５５は、データ数１１４と少なくとも一つ以上のアドレス情報１５７から構成される。アドレス情報１５７は、データ識別ＩＤ１１５と先頭アドレス１５８とサイズ１５９から構成される。【０１１２】
ステップ５０４にて、データアクセス要求受信部２５０は、データ反映応答フレーム１５４を受信するのを待つ（ステップＳ５０４）。データ反映応答フレーム１５４を受信すると、データアクセス要求受信部２５０は、受信したデータ反映応答フレーム１５４を基に転写メモリ読み込み処理を実行する（ステップＳ５０５）。転写メモリ読み込み処理は、データ反映応答フレーム１５４にて、転写メモリへ書き込まれたことが通知されたデータを、転写メモリから読みだす処理である。【０１１３】
図２３は、ステップＳ５０５における転写メモリ読み込み処理を示すフローチャートである。データアクセス要求受信部２５０は、受信したデータ反映応答フレーム１５４からアドレス情報１５７を一つ取り出し（ステップＳ５１０）、ステップＳ５１０で取得したアドレス情報１５７から先頭アドレス１５８とサイズ１５９の取り出しを行う（ステップＳ５１１）。【０１１４】
その後、データアクセス要求受信部２５０はステップＳ５１１で取得した先頭アドレス１５８とサイズ１５９を転写メモリ読み込み処理部２０２へ入力し、転写メモリ読み込み処理部２０２に処理を実行させる（ステップＳ５１２）。【０１１５】
さらに、データアクセス要求受信部２５０は、転写メモリ読み込み処理の結果を基に取得データ情報１１８を作成する（ステップＳ５１３）。【０１１６】
データアクセス要求受信部２５０は、データ反映応答フレーム１５４内のすべてのアドレス情報１５７に対して、ステップＳ５１０、ステップＳ５１１、ステップＳ５１２、Ｓ５１３の処理を繰り返し実行する（ステップＳ５１４）。【０１１７】
図２１に戻り、データアクセス要求受信部２５０は、ステップＳ５０５実行後、ステップＳ５１３で作成した取得データ情報１１８を基にデータ取得応答フレーム１５０の作成を行い（ステップＳ５０６）、ネットワークＩ／Ｆ２４を経由してクライアント１に対してステップＳ５０６で作成したデータ取得応答フレーム１５０の送信を行う（ステップＳ５０７）。【０１１８】
図２０に戻り、演算処理部３５１は、入力処理部３０３の処理によりプロセスの状態を取得し、転写メモリ読み込み処理部３００の処理により転写メモリ上のデータを取得する。演算処理部３０４は、入力処理部３０３と転写メモリ読み込み処理部３００から得られた情報を基に、実行すべき演算を行う。【０１１９】
そして、演算処理部３５１は図２５に示す内部メモリ管理テーブル３５２を参照し、内部メモリ管理テーブル３５２より取得した内部メモリアドレス及びサイズが示すエリアに演算結果を書き込む。図２５は、実施例３における内部メモリ管理テーブルの一例を示す図である。内部メモリ管理テーブル３５２には、データ識別ＩＤおよびそれに対応するデータ反映先情報が記載されている。データ反映先情報は、内部メモリにおいてデータを書き込むエリアを特定するための情報である。【０１２０】
また、演算処理部３５１は、入力処理部３０３と転写メモリ読み込み処理部３００から得られた情報を基に演算を行い、その結果を基に出力処理部３０５を実行してプロセスの制御を行う。【０１２１】
図２４は、実施例３におえるマルチキャスト通信受信部３５０が実行するデータ反映処理を示すフローチャートである。【０１２２】
マルチキャスト通信受信部３５０は、ネットワークＩ／Ｆ３１を経由してデータ反映要求フレーム１５０を受信するのを待つ（ステップＳ５５０）。データ反映要求フレーム１５０を受信すると、マルチキャスト通信受信部３５０は、データ反映要求フレーム１５０からデータ識別ＩＤ１１５を一つ取り出す（ステップＳ５５１）。そして、マルチキャスト通信受信部３５０は、ステップＳ５５１で取得したデータ識別ＩＤ１１５をキーとして内部メモリ管理テーブル３５２を参照し、そのデータ識別ＩＤ１１５のエントリが内部メモリ管理テーブル３５２に存在するか否か確認する（ステップＳ５５２）。【０１２３】
ステップＳ５５２の確認によりデータ識別ＩＤ１１５のエントリが存在する場合、そのデータ識別ＩＤ１１５が示すデータは自コントローラが持つデータである。データ識別ＩＤ１１５のエントリが存在すれば、マルチキャスト通信受信部３５０は、当該エントリからデータ識別ＩＤ１１５を持つデータが格納されている内部メモリアドレス及びデータサイズの情報を取得する（ステップＳ５５３）。続いて、マルチキャスト通信受信部３５０は、ステップＳ５５３で取得した内部メモリアドレスから、ステップＳ５５３で取得したサイズ分のデータを読み込む（ステップＳ５５４）。【０１２４】
次に、マルチキャスト通信受信部３５０は、ステップＳ５５１で取得したデータ識別ＩＤ１１５をキーとしてデータ反映管理テーブル３１１を参照し、データ反映先の転写メモリのアドレス及びサイズ情報を取得する（ステップＳ５５５）。そして、マルチキャスト通信受信部３５０は、ステップＳ５５４で読み込んだデータを、ステップＳ５５５で取得した転写メモリのアドレスから、ステップＳ５５５で取得したサイズ分のアドレスに書き込むために転写メモリ書き込み処理部３０１を実行する（ステップＳ５５６）。【０１２５】
さらに、マルチキャスト通信受信部３５０は、ステップＳ５５６で書き込んだデータのアドレス情報１５７を作成する（ステップＳ５５７）。【０１２６】
マルチキャスト通信受信部３５０は、データ反映要求フレーム１５０内のすべてのデータ識別ＩＤ１１５に対して、ステップＳ５５１、ステップＳ５５２、ステップＳ５５３、ステップＳ５５４、ステップＳ５５５、ステップＳ５５６、ステップＳ５５７の処理を繰り返し実行する（ステップＳ５５８）。【０１２７】
その後、マルチキャスト通信受信部３５０は、ステップＳ５５７で作成したアドレス情報を基にデータ取得応答フレーム１１６を作成し（ステップＳ５５９）、ネットワークＩ／Ｆ２４を経由してクライアント１に対してステップＳ５５９で作成したデータ取得応答フレーム１１６を送信する（ステップＳ５６０）。【０１２８】
図２１に示したように、実施例３では、データアクセス要求受信部２５０は、データ反映応答フレーム１５４を受信すると（ステップＳ５０４）、転写メモリ読み込み処理を実行するものとした（ステップＳ５０５）。実施例３の変形例として、転写メモリ読み込み処理部２０２を利用して転写メモリのデータを取得している間に、転写メモリの内容が更新されないように、コントローラ３による転写メモリへのデータの書き込み停止しておくことにしてもよい。【０１２９】
図２６は、実施例３の変形例におけるデータアクセス要求受信部２５０が実行する全体処理を示すフローチャートである。図２６において図２１と異なる処理はステップＳ６０１、６０２、６０３、６０４の処理である。データ取得要求フレーム１５０を受信すると、データアクセス要求受信部２５０は、データ取得要求フレーム１５０に含まれるデータ識別ＩＤ１１５が示すデータの転写メモリ上への更新停止を要求するデータ反映要求フレーム１５０を作成する(ステップＳ６０１)。転写メモリの更新停止を要求するデータ反映要求フレーム１５０は、プロトコルヘッダ１５２に更新停止要求を示す情報を含む。データアクセス要求受信部２５０は、作成した前記データ反映要求フレーム１５０を、転写メモリを経由せずコントローラ３に送信する(ステップＳ６０２)。【０１３０】
コントローラ３は、ゲートウェイ装置２からの要求とは非同期に転写メモリ書き込み処理部３０１を利用して転写メモリのデータを更新しており、転写メモリへのデータ書き込み停止を要求する前記データ反映要求フレーム１５０を受信した場合には要求に従って転写メモリへのデータの書き込みを停止し、書き込み処理を停止した転写メモリのエリア情報をデータ反映応答フレーム１５４として作成し、ゲートウェイ装置２のデータアクセス要求受信部２５０に送信する。例えば、コントローラ３は、書き込み中のひとかたまりのデータ書き終えてから、書き込み処理を停止したことを示すデータ反映応答フレーム１５４を送信することにしてもよい。【０１３１】
データアクセス要求受信部２５０は、書き込み処理を停止したことを示すデータ反映要求フレーム１５４を受信すると、転写メモリのコントローラ３のエリアからデータを読み込む（ステップＳ５０５）。データアクセス要求受信部２５０が転写メモリのデータを読み込むとき、転写メモリにおけるデータ読み込みの対象のエリアの更新が停止されているので、そのエリアにおけるデータ同時性を確保した状態で、転写メモリから整合したデータを読み込むことができる。【０１３２】
データアクセス要求受信部２５０は、転写メモリからのデータ読み込み処理を終えると、ステップＳ６０２で更新停止させた転写メモリのエリアの更新再開を要求するデータ反映要求フレーム１５０を作成する(ステップＳ６０３)。転写メモリの更新再開を要求するデータ反映要求フレーム１５０は、プロトコルヘッダ１５２に更新再開要求を示す情報を含む。データアクセス要求受信部２５０は、作成した前記データ反映要求フレーム１５０を、転写メモリを経由せずコントローラ３に送信する（ステップＳ６０４）。【０１３３】
本変形例では、書き込み停止の要求メッセージをマルチキャスト通信により複数のコントローラ３へ送信するので、コントローラ３間での時間差の小さいデータを転写メモリから読み込むことが可能である。【０１３４】
なお、本変形例では、ゲートウェイ装置２がデータ反映要求フレーム１５０をコントローラ３に送信し、それを受信したコントローラ３が転写メモリへデータを反映する書き込み処理を行う例を示したが、他の例も可能である。本変形例のように転写メモリへのデータの書き込みを停止することを可能にすれば、通常時にはコントローラ３は常に転写メモリを更新でき、書き込みの停止が要求されたときだけ転写メモリを更新できないとする転写メモリの運用が可能となる。コントローラ３はデータを反映する要求を待たずに転写メモリにデータを反映しておくことができるので、転写メモリを利用してコントローラ３からゲートウェイ装置２へデータを伝達するときの応答時間を短縮することができる。【０１３５】
また、図２６に示した変形例では、ゲートウェイ装置２からコントローラ３に転写メモリの更新再開を指示する例を示したが、この例に限定されることはない。他の例として、ゲートウェイ装置２が転写メモリの更新停止を指示する際に作成するデータ反映要求フレーム１５０に更新停止時間を含め、前記データ反映要求フレーム１５０を受信したコントローラ３は、指定された更新停止時間経過後に転写メモリの更新を再開することにしてもよい。そうすることで前記ステップＳ６０３、６０４を省略することができる。【０１３６】
実施例３の一部を以下のように説明することもできる。【０１３７】
本実施例のデータアクセスシステムは、分散共有メモリ（転写メモリ）でデータを互いに共有する複数の計算機（コントローラ３）と、複数の計算機から上り情報を取得し、複数の計算機に下り情報を付与する上位システム（クライアント１）と、分散共有メモリで複数の計算機とデータを共有し、計算機から分散共有メモリを経由する第１の通信により上り情報を収集して前記上位システムに伝達し、上位システムからの下り情報を、前記分散共有メモリを経由しない第２の通信を利用して前記計算機へ伝達するゲートウェイ（ゲートウェイ装置２）と、を有している。そして本実施例では特にゲートウェイは、計算機に上り情報を要求するための下り情報を第２の通信により計算機に送信する。計算機は、上り情報を要求するための下り情報を受信すると、その下り情報で要求された上り情報を分散共有メモリ経由の第１の通信でゲートウェイに伝達する。ゲートウェイは複数の計算機に上り情報を要求し、複数の計算機が並行して分散共有メモリにデータを格納する処理を行うことができるので、複数の計算機から上り情報を効率よく収集することができる。【０１３８】
以上、実施例１〜３に示した構成により、ゲートウェイ装置２にて大量データの読み込みを行う場合であっても同時性を確保しつつ、転写メモリからデータの取得を行える。【０１３９】
なお、上述した各種実施例に限らず、特許請求の範囲に記載された本発明の要旨を逸脱しない限り、適宜変更しうることは言うまでもない。
【符号の説明】
【０１４０】
１・・・クライアント、２・・・ゲートウェイ装置、３・・・コントローラ、４・・・プロセス、５・・・情報ネットワーク、６・・・制御ネットワーク、１０・・・メモリ、１１・・・表示装置／入力装置、１２・・・情報ネットワークＩ／Ｆ、１３・・・ＣＰＵ、１４・・・ディスク装置、２０・・・メモリ、２１・・・制御ネットワークＩ／Ｆ、２２・・・ＣＰＵ、２３・・・不揮発性記憶装置、２４・・・情報ネットワークＩ／Ｆ、３１・・・制御ネットワークＩ／Ｆ、３２・・・ＣＰＵ、３３・・・不揮発性記憶装置、３４・・・入力モジュール、３５・・・出力モジュール、１００・・・データ取得要求送信部、１０１・・・データ制御要求送信部、２０１・・・データアクセス要求受信部、２０２・・・転写メモリ読み込み処理部、２０３・・・マルチキャスト通信送信部、２１０・・・データアクセス要求受信部、２１１・・・マルチキャスト通信部、２１２・・・転写メモリマッピング定義ファイル、２１３・・・転写メモリ書き込みエリア設定部、２５０・・・データアクセス要求受信部、２５１・・・マルチキャスト通信送信部、３０１・・・転写メモリ書き込み処理部、３０２・・・マルチキャスト通信受信部、３０３・・・入力処理部、３０４・・・演算処理部、３０５・・・出力処理部、３０６・・・転写メモリマッピング定義ファイル、３０７・・・転写メモリ書き込みエリア設定部、３１０・・・マルチキャスト通信受信部、３１１・・・テーブル反映管理テーブル、３５０・・・マルチキャスト通信受信部、３５１・・・演算処理部、３５２・・・内部メモリ管理テーブル
【図１】
2018122893.tif 000003
【図２】
2018122893.tif 000004
【図３】
2018122893.tif 000005
【図４】
2018122893.tif 000006
【図５】
2018122893.tif 000007
【図６】
2018122893.tif 000008
【図７】
2018122893.tif 000009
【図８】
2018122893.tif 000010
【図９】
2018122893.tif 000011
【図１０】
2018122893.tif 000012
【図１１】
2018122893.tif 000013
【図１２】
2018122893.tif 000014
【図１３】
2018122893.tif 000015
【図１４】
2018122893.tif 000016
【図１５】
2018122893.tif 000017
【図１６】
2018122893.tif 000018
【図１７】
2018122893.tif 000019
【図１８】
2018122893.tif 000020
【図１９】
2018122893.tif 000021
【図２０】
2018122893.tif 000022
【図２１】
2018122893.tif 000023
【図２２】
2018122893.tif 000024
【図２３】
2018122893.tif 000025
【図２４】
2018122893.tif 000026
【図２５】
2018122893.tif 000027
【図２６】
2018122893.tif 000028
【国際調査報告】
2018122893.tif 000029
2018122893.tif 000030
2018122893.tif 000031