(57)【特許請求の範囲】
【請求項１】
プログラムを実行するプロセッサとメモリとを備える情報処理装置を複数含んで構成され、前記複数の情報処理装置のそれぞれが、前記メモリに記憶しているデータを他の前記情報処理装置に送信することにより、前記データを前記複数の情報処理装置の間で共有するデータ共有システムであって、
前記複数の情報処理装置のそれぞれは、
他の前記情報処理装置から送信されてきた前記データを受信するデータ受信部と、
前記受信したデータ、及び自身が記憶しているデータを前記メモリ内の所定の記憶領域に転送して共有データとして記憶する共有データ記憶部と、
前記自身の共有データを記憶するために割り当てられる前記記憶領域上の割り当て領域、及び、前記他の情報処置装置の前記共有データを記憶するために割り当てられる前記記憶領域上の割り当て領域に関する情報である領域管理情報を記憶する領域情報記憶部と、
前記記憶領域上の割り当て領域の内容の変更を要求する旨、及び前記変更する割り当て領域を示す情報である変更要求を生成し、生成した前記変更要求を他の前記情報処理装置に送信する変更要求送信部と、
前記他の情報処理装置が送信してきた前記変更要求を受信し、受信した前記変更要求と前記領域管理情報とに基づき、前記割り当て領域の変更を行う領域変更部と、
を備え、
前記変更要求送信部は、自身と現在通信していない他の前記情報処理装置があるか否かを判断し、自身と現在通信していない前記情報処理装置があると判断した場合には、当該情報処理装置に関して前記記憶領域に割り当てられている割り当て領域の解放を要求する旨、及び当該解放する領域を示す前記変更要求である解放要求を生成し、生成した前記解放要求を、他の情報処理装置が生成した解放要求を含むフレームデータとして他の各情報処理装置に送信し、
前記領域変更部は、他の前記情報処理装置が送信してきた、前記フレームデータを受信し、受信した前記フレームデータと前記領域管理情報とに基づき、通信していない情報処理装置に自身が含まれるか否かを判断し、自身が含まれると判断した場合には、自身の前記共有データを記憶するために割り当てられている前記記憶領域上の領域を解放しないように要求する旨の情報を含む前記変更要求である解放拒否を、他の前記情報処理装置に送信する一方、通信していない情報処理装置に自身が含まれていないと判断した場合には、その情報処理装置の前記共有データを記憶するために割り当てられていた前記記憶領域上の領域を解放する
ことを特徴とする、データ共有システム。
【請求項２】
請求項１に記載のデータ共有システムであって、
前記変更要求送信部は、
前記共有データを記憶するための領域を前記記憶領域上に割り当てることを要求する旨、及び前記割り当てる領域を示す前記変更要求である割り当て要求を生成し、生成した割り当て要求を他の前記情報処理装置に送信し、
前記領域変更部は、
前記他の情報処理装置が送信してきた前記割り当て要求を受信し、受信した前記割り当て要求と前記領域管理情報とに基づき、前記他の情報処理装置の前記共有データを記憶するための領域を、前記記憶領域に割り当てる
ことを特徴とする、データ共有システム。
【請求項３】
請求項１に記載のデータ共有システムであって、
前記領域変更部は、
前記自身と現在通信していない前記情報処理装置があるか否かの判断を、前記共有データを所定期間送信してきていない前記情報処理装置があるか否かによって判断することを特徴とするデータ共有システム。
【請求項４】
請求項１に記載のデータ共有システムであって、
前記領域変更部は、同内容の前記変更要求を前記他の情報処理装置から２以上の所定回数受信した場合に、受信した前記変更要求に基づき、前記割り当て領域の変更を開始することを特徴とするデータ共有システム。
【請求項５】
請求項１に記載のデータ共有システムであって、
前記共有データを記憶するために割り当てられている領域が前記記憶領域に存在するか否かを示す情報、及び、現在、同内容の前記変更要求を前記所定回数未満受信している状態であることを示す情報を出力する出力部を備えることを特徴とするデータ共有システム。
【請求項６】
請求項１に記載のデータ共有システムであって、
前記変更要求送信部は、
前記共有データを記憶するための領域を前記記憶領域上に割り当てることを要求する旨、及び前記割り当てる領域を示す前記変更要求である割り当て要求を生成し、生成した割り当て要求を他の前記情報処理装置に送信し、
前記領域変更部は、
前記他の情報処理装置が送信してきた前記割り当て要求を受信し、受信した前記割り当て要求と前記領域管理情報とに基づき、前記他の情報処理装置の前記共有データを記憶するための領域を、前記記憶領域に割り当て、
前記自身と現在通信していない前記情報処理装置があるか否かの判断を、前記共有データを所定期間送信してきていない前記情報処理装置があるか否かによって判断し、
同内容の前記変更要求を前記他の情報処理装置から２以上の所定回数受信した場合に、受信した前記変更要求に基づき、前記割り当て領域の変更を開始し、
前記共有データを記憶するために割り当てられている領域が前記記憶領域に存在するか否かを示す情報、及び、現在、同内容の前記変更要求を前記所定回数未満受信している状態であることを示す情報を出力する出力部を備える
ことを特徴とするデータ共有システム。
【請求項７】
プログラムを実行するプロセッサとメモリとを備える情報処理装置を複数含んで構成され、前記複数の情報処理装置のそれぞれが、前記メモリに記憶しているデータを他の前記情報処理装置に送信することにより、前記データを前記複数の情報処理装置の間で共有するデータ共有システムにおいて実行されるデータ共有プログラムであって、
前記情報処理装置に、
他の前記情報処理装置から送信されてきた前記データを受信させ、
前記受信したデータ、及び自身が記憶しているデータを前記メモリ内の所定の記憶領域に転送して共有データとして記憶させ、
前記自身の共有データを記憶するために割り当てられる前記記憶領域上の割り当て領域、及び、前記他の情報処置装置の前記共有データを記憶するために割り当てられる前記記憶領域上の割り当て領域に関する情報である領域管理情報を記憶させ、
前記記憶領域上の割り当て領域の内容の変更を要求する旨、及び前記変更する割り当て領域を示す情報である変更要求を生成し、生成した前記変更要求を他の前記情報処理装置に送信させ、
前記他の情報処理装置が送信してきた前記変更要求を受信し、受信した前記変更要求と前記領域管理情報とに基づき、前記割り当て領域の変更を行わせ、
自身と現在通信していない他の前記情報処理装置があるか否かを判断し、自身と現在通信していない前記情報処理装置があると判断した場合には、当該情報処理装置に関して前記記憶領域に割り当てられている割り当て領域の解放を要求する旨、及び当該解放する領域を示す前記変更要求である解放要求を生成し、生成した前記解放要求を、他の情報処理装置が生成した解放要求を含むフレームデータとして他の各情報処理装置に送信する処理を実行させ、
他の前記情報処理装置が送信してきた、前記フレームデータを受信し、受信した前記フレームデータと前記領域管理情報とに基づき、通信していない情報処理装置に自身が含まれるか否かを判断し、自身が含まれると判断した場合には、自身の前記共有データを記憶するために割り当てられている前記記憶領域上の領域を解放しないように要求する旨の情報を含む前記変更要求である解放拒否を、他の前記情報処理装置に送信する一方、通信していない情報処理装置に自身が含まれていないと判断した場合には、その情報処理装置の前記共有データを記憶するために割り当てられていた前記記憶領域上の領域を解放する処理を実行させる、
機能を実現させるためのデータ共有プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ共有システム、及びデータ共有プログラムに関する。
【背景技術】
【０００２】
コントローラ等の複数の装置がネットワークを介して接続された分散制御システムにおいて、その複数の装置の間のデータ通信には共有メモリによるサイクリック通信が利用される。このようなシステムにおいて、新たに装置を追加する場合、その追加する装置に対して共有メモリの領域を事前に割り当てておくことにより、動作中のシステムを停止させることなく、その装置を追加することが可能である。しかし、共有メモリを事前に割り当てていない場合には、システムを一旦停止させ、その割り当てを行う必要がある。
【０００３】
また、分散制御システムでは、例えば、装置Ａ上で動作するプログラムの出力が装置Ｂ上で動作するプログラムの入力になることと、装置Ｂ上で動作するプログラムの出力が、装置Ａで動作するプログラムの入力になることとが同時に起きる。そのため、当該分散制御システムに新たに装置を追加したり既存の装置を更新したりする場合、新たに追加する装置や更新する装置が利用する共有メモリの割り当てが追加前のシステムにおける既存の装置の共有メモリの割り当てと異なると、その追加する装置や更新する装置によって既存の装置が影響を受けるため、その既存の装置の変更も必要となる。このため、装置の追加や更新に多大なコストを要することになる。
【０００４】
上記の問題点を解決する方法として、特許文献１では、分散システムにおいて、共有メモリの各領域がそれぞれどの装置に管理されているかという情報を含む領域管理情報を、各装置が定期的に同報送信することで、システム内の装置間で領域管理情報を共有する構成が提案されている。共有メモリの割り当てを変更または削除する場合には、その変更内容を含む変更領域情報をシステム内の装置間で共有する。装置の追加時は、各装置が、領域管理情報を参照して空き領域を見つけ、その領域を確保するよう変更領域情報を同報送信することで、追加された装置に新たに領域を割り当てることができるとしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−５９４２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１には次の問題がある。すなわち、各装置は、自身に割り当てられた共有メモリの記憶領域を追加／解放することや、各装置が定期的に同報送信している領域管理情報の受信有無の監視によって他の装置の異常を検出することは可能である。しかし、各装置は、他の装置の共有メモリの領域を直接制御し、その使用状況を変更することができないため、共有メモリの記憶領域を追加／解放などに伴う、共有データの記憶領域の割り当ての内容の変更を容易に行うことができない。そのため、例えば、システムに装置を追加したりシステムから既設装置を離脱させたりする場合において、そのシステムの管理者等は、各装置の共有データの記憶領域の割り当ての変更を行うために煩雑な作業を行わなければならない場合があった。
【０００７】
本発明はこのような現状に鑑みてなされたものであり、その目的は、共有データの記憶領域を容易かつ適切に管理することが可能なデータ共有システム、及びデータ共有プログラムを提供することにある。
【課題を解決するための手段】
【０００８】
前述の課題を解決するための本発明の一態様は、プログラムを実行するプロセッサとメモリとを備える情報処理装置を複数含んで構成され、前記複数の情報処理装置のそれぞれが、前記メモリに記憶しているデータを他の前記情報処理装置に送信することにより、前記データを前記複数の情報処理装置の間で共有するデータ共有システムであって、前記複数の情報処理装置のそれぞれは、他の前記情報処理装置から送信されてきた前記データを受信するデータ受信部と、前記受信したデータ、及び前記自身が記憶しているデータを前記メモリ内の所定の記憶領域に転送して共有データとして記憶する共有データ記憶部と、前記自身の共有データを記憶するために割り当てられる前記記憶領域上の割り当て領域、及び、前記他の情報処置装置の前記共有データを記憶するために割り当てられる前記記憶領域上の割り当て領域に関する情報である領域管理情報を記憶する領域情報記憶部と、前記記憶領域上の割り当て領域の内容の変更を要求する旨、及び前記変更する割り当て領域を示す情報である変更要求を生成し、生成した前記変更要求を他の前記情報処理装置に送信する変更要求送信部と、前記他の情報処理装置が送信してきた前記変更要求を受信し、受信した前記変更要求と前記領域管理情報とに基づき、前記割り当て領域の変更を行う領域変更部と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、共有データの記憶領域の割り当てを容易に適切な状態に維持することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明の一実施形態によるデータ共有システム１の全体構成を説明する図である。
【図２】図２は、ノード１００のハードウェア構成を説明する図である。
【図３】図３は、ノード１００が備える機能を説明する図である。
【図４】図４は、転写メモリ１１１の構成の一例を示す図である。
【図５】図５は、領域管理テーブル１１２の一例を示した図である。
【図６】図６は、ノード稼働監視テーブル１１３の一例を示した図である。
【図７】図７は、転写データ伝送フレーム６００の一例を示した図である。
【図８】図８は、転写管理情報伝送フレーム７００の一例を示した図である。
【図９】図９は、転写データテーブル８００の一例を示した図である。
【図１０】図１０は、転写データ共有処理Ｓ８００を説明するフローチャートである。
【図１１】図１１は、領域変更処理Ｓ８１０を説明するフローチャートである。
【図１２】図１２は、転写管理情報送信処理Ｓ８２０を説明するフローチャートである。
【図１３】図１３は、変更要求確定処理Ｓ９５０を説明するフローチャートである。
【図１４】図１４は、変更命令対応処理Ｓ１１００を説明するフローチャートである。
【図１５】図１５は、転写データ読み出し処理Ｓ１２００を説明するフローチャートである。
【図１６】図１６は、管理端末２００のハードウェア構成を説明する図である。
【図１７】図１７は、出力部が出力装置２６に出力する画面の一例を説明する図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を図面に基づいて詳細に説明する。
【００１２】
図１は、本実施形態として説明する、データ共有システム１の全体構成を説明する図である。同図に示すように、データ共有システム１は、複数のノード１００（１００ａ、１００ｂ、１００ｃ、１００ｄ、・・・）、及び管理端末２００を含んで構成される。
【００１３】
データ共有システム１は、例えば、鉄道会社の運行管理施設、発電所の発電管理施設、鉄工所の運用管理施設に設けられるネットワークシステムであり、ノード１００は、例えば、駅、発電施設、工場機械等に設けられるコントローラ（制御装置）や、ワークステーション、パーソナルコンピュータ等の情報処理装置である。なお、以下では、ノード１００を情報処理装置と称することがある。
【００１４】
各ノード１００は、インターネット、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）、専用線等によるネットワーク１４０を介して、通信可能に接続されてい
る。各ノード１００は、自身（以下、自ノードともいう）が記憶しているデータを他のノード１００（以下、他ノードともいう）の全てに対し、ネットワーク１４０を介して、所定周期で同報送信（例えば、ブロードキャスト通信、ＩＰ（Internet Protocol）マルチ
キャスト通信）する。これにより、各ノード１００は、上記データを各ノード１００の間で共有データ（以下、転写データともいう）として共有することができる。
【００１５】
管理端末２００は、ＨＭＩ（Human-Machine Interface）などの端末（情報処理装置）
であり、ネットワーク１４０を介して、各ノード１００と通信可能に接続されている。管理端末２００の詳細は後述する。
【００１６】
図２は、ノード１００のハードウェア構成を示す図である。同図に示すように、ノード１００は、ＣＰＵ（Central Processing Unit）、ＭＰＵ（MicroProcessing Unit）等の
プロセッサ１１と、メモリ１２（ＲＡＭ、ＲＯＭ、ＮＶＲＡＭ等の揮発性又は不揮発性メモリ）と、ハードディスクやＳＳＤ（Solid State Drive）等の記憶装置１３と、他のノ
ード１００との通信を行う通信インタフェース１４と、を備える。なお、通信インタフェース１４は、ネットワーク１４０との物理的接続を行うと共に、ネットワークドライバ等により、例えば、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）
、ＵＤＰ／ＩＰ（User Datagram Protocol/Internet Protocol）レイヤまでのプロトコルによる通信を実現する。また、ノード１００は、タッチパネルや操作ボタン等の入力装置１５と、液晶ディスプレイ等の出力装置１６と、を備えても良い。
【００１７】
図３は、ノード１００が備える機能を説明する図である。同図に示すように、ノード１００は、受信部１２１、送信部１２２、記憶部１１０、転写領域管理部１２３、転写メモリアクセス制御部１２４、及び制御アプリケーション１２５を備える。
【００１８】
このうち受信部１２１は、他の情報処理装置から送信されてきたデータ（データフレーム等）を受信する。
【００１９】
送信部１２２は、他の情報処理装置にデータ（データフレーム等）を送信する。例えば、送信部１２２は、転写データをフレームに変換した、後述する転写データ伝送フレームを送信する。なお、この送信部１２２はタイマを備え、このタイマにより、所定周期ごとにデータ（フレーム）を他の情報処理装置に同報送信することができる。
【００２０】
記憶部１１０は、受信部１２１が受信したデータ、及び自身が記憶しているデータを所定の記憶領域（以下、単に「記憶領域」という）に転送して共有データとして記憶する共有データ記憶部（不図示）を含む。具体的には、記憶部１１０は、上記データを、転写メモリ１１１に記憶する。
【００２１】
また、記憶部１１０は、自身の共有データを記憶するために割り当てられる記憶領域上の割り当て領域、及び、他の情報処理装置の共有データを記憶するために割り当てられる記憶領域上の割り当て領域に関する情報である領域管理情報を記憶する領域情報記憶部（不図示）を備える。具体的には、記憶部１１０は、領域管理情報を領域管理テーブル１１２に記憶している。領域管理テーブル１１２は、転写メモリ１１１の現在の使用状況、例えば、転写メモリ１１１のどの領域が、どのノード１００（１００ａ〜１００ｄ）の共有データのために割り当てられているかが記憶されている。領域管理テーブル１１２の詳細は後述する。なお、本実施形態では、ノード１００は、初めて起動される際に、領域管理テーブル１１２のデータをクリアするものとする。
【００２２】
また、記憶部１１０は、ノード稼働監視テーブル１１３を記憶している。ノード稼働監視テーブル１１３には、データ共有システム１内のノード１００のそれぞれの稼働状態／停止状態を示す情報（以下、稼働情報という）が記憶される。なお、本実施形態では、ノード１００は、初めて起動される際に、ノード稼働監視テーブル１１３のデータをクリアするものとする。
【００２３】
なお、稼働状態とは、ノード１００が直近の所定の時間（以下、停止判断時間という）内に転写データを送信してきている、すなわち通信している状態であり、停止状態とは、ノード１００が停止判断時間内に転写データを送信してきていない、すなわち通信していない状態であるものとする。
【００２４】
また、記憶部１１０は、内部メモリ１１４を有している。内部メモリ１１４には、後述する制御アプリケーション１２５が書き込み又は読み込むためのデータが記憶されている。
【００２５】
さらに、記憶部１１０は、自ノードをデータ共有システム１内で一意に識別するための情報（以下、ノード番号という）を記憶している（不図示）。
【００２６】
次に、転写領域管理部１２３は、変更要求送信部１２３１、及び領域変更部１２３２を有する。
【００２７】
このうち変更要求送信部１２３１は、記憶領域上の割り当て領域の内容の変更を要求する旨、及び変更する割り当て領域を示す情報である変更要求を生成し、生成した変更要求を他の情報処理装置に送信する。なお、変更要求は、後述する転写管理情報伝送フレームとして送信される。
【００２８】
具体的には、例えば、変更要求送信部１２３１は、共有データを記憶するための領域を記憶領域上に割り当てることを要求する旨、及び割り当てる領域を示す変更要求である割り当て要求（以下、確保要求、追加要求ともいう）を生成し、生成した割り当て要求を他の情報処理装置に送信する。
【００２９】
また、例えば、変更要求送信部１２３１は、記憶領域に割り当てられている割り当て領域の解放を要求する旨、及び解放する領域を示す変更要求である解放要求を生成し、生成した解放要求を他の情報処理装置に送信する。
【００３０】
領域変更部１２３２は、他の情報処理装置が送信してきた変更要求を受信し、受信した変更要求と領域管理情報とに基づき、割り当て領域の変更を行う。
【００３１】
具体的には、例えば、領域変更部１２３２は、他の情報処理装置が送信してきた割り当て要求を受信し、受信した割り当て要求と領域管理情報とに基づき、他の情報処理装置の
共有データを記憶するための領域を、記憶領域に割り当てる。
【００３２】
また、例えば、領域変更部１２３２は、他の情報処理装置が送信してきた解放要求を受信し、受信した解放要求と領域管理情報とに基づき、他の情報処理装置の共有データを記憶するために割り当てられていた記憶領域上の領域を解放する。
【００３３】
また、例えば、領域変更部１２３２は、他の情報処理装置が送信してきた、通信していない情報処理装置の情報を含む解放要求を受信し、受信した解放要求と領域管理情報とに基づき、通信していない情報処理装置の共有データを記憶するために割り当てられていた記憶領域上の領域を解放する。
【００３４】
また、領域変更部１２３２は、受信した解放要求に基づき、通信していない情報処理装置が自身であるか否かを判断し、自身であると判断した場合には、自身の共有データを記憶するために割り当てられている記憶領域上の領域を解放しないように要求する旨の変更要求である解放拒否を、他の前記情報処理装置に送信する。なお、領域変更部１２３２は、例えば、自身と現在通信していない情報処理装置があるか否かの判断を、共有データを所定期間送信してきていない情報処理装置があるか否かによって判断する。
【００３５】
なお、領域変更部１２３２は、同内容の変更要求を他の情報処理装置から２以上の所定回数受信した場合に、受信した変更要求に基づき、割り当て領域の変更を開始する。
【００３６】
また、転写領域管理部１２３は、領域管理テーブル１１２を管理する。具体的には、転写領域管理部１２３は、他ノードから受信した変更要求、及び、制御アプリケーション１２５からの変更命令（後述）を基に、領域管理テーブル１１２を更新する。また、転写領域管理部１２３は、領域管理テーブル１１２へのデータの書き込み要求がある場合、内部メモリ１１４のデータを転写メモリ１１１に書き込む。
【００３７】
転写メモリアクセス制御部１２４は、領域管理テーブル１１２を参照し、転写メモリ１１１の領域のうち自身の共有データを記憶するために確保されている領域があるか否かを判断する。そして、転写メモリアクセス制御部１２４は、この判断結果に基づき、制御アプリケーション１２５による転写メモリ１１１へのアクセスを制御する。
【００３８】
制御アプリケーション１２５は、転写メモリ１１１へのデータの書き込みや、転写メモリ１１１からのデータの読み込みを行う。例えば、制御アプリケーション１２５は、転写データを含む所定のデータテーブル（以下、転写データテーブルという）を生成することにより、転写メモリ１１１の内容の読み出しの処理（以下、転写データ読み出し処理Ｓ１２００という）を行う。転写データ読み出し処理Ｓ１２００の詳細は後述する。
【００３９】
また、制御アプリケーション１２５は、転写領域管理部１２３に対して変更要求を送信し、転写領域管理部１２３は、その変更要求に応じた記憶領域の内容の変更を転写領域管理部１２３に行わせる処理（以下、変更命令対応処理Ｓ１１００という）を行う。
【００４０】
以上に説明した、記憶部１１０及び処理部１２０の機能は、ノード１００のハードウェアによって、もしくは、ノード１００のプロセッサ１１が、メモリ１２又は記憶装置１３に格納されているプログラムを読み出して実行することにより実現される。
【００４１】
次に、転写メモリ１１１について説明する。
図４は、転写メモリ１１１の構成の一例を示す図である。転写メモリ１１１は、複数バイトを１ブロックとした少なくとも１つ以上のブロックからなる。例えば、同図に示すように、転写メモリ１１１は、アドレス「Ａ」から始まるメモリであり、１ブロックあたり
「Ｂバイト」からなる１６個のブロック（領域）に分けられる。本実施形態では、転写データはこのブロック単位で記憶されるものとする。そして、このブロックのそれぞれに対して、それぞれを識別するためのブロック番号が割り当てられている。
【００４２】
次に、領域管理テーブル１１２を説明する。
図５は、領域管理テーブル１１２の一例を示した図である。同図に示すように、領域管理テーブル１１２は、転写メモリ１１１の各ブロックを識別するブロック番号１１２１、ブロック番号１１２１のブロックがどのノード１００の共有データを記憶するために割り当てられているかを示す確保ノード番号１１２２（例えば、ノード番号が格納される）、ブロック番号１１２１のブロックの転写データの最終更新時刻を示すデータ更新時刻１１２３、ブロック番号１１２１のブロックに転写データが書き込まれる周期を示す書き込み周期１１２４（そのブロックに周期的に転写データを書き込む場合にのみ使用される）、確保ノード番号１１２２が示すノード１００の内部メモリ１１４のアドレス（例えば、転写データを書き込む書き込み元のノード１００の内部メモリアドレス）を示す内部メモリアドレス１１２５、ブロック番号１１２１のブロックの共有データに対する変更要求のの種類を示した変更要求１１２６、及び変更カウンタ１１２７の各項目を含んで構成される、少なくとも１つ以上のレコードから構成される。
【００４３】
変更カウンタ１１２７は、ノード１００が変更要求１１２６による変更要求に対応する処理（例えば、領域の割り当て、領域の解放）を実行するためにはあと何回、その変更要求を受信する必要があるかを示す情報である。変更カウンタ１１２７には、所定の初期値（例えば、３（回）、５（回））が設定される。
【００４４】
なお、本実施形態では、変更要求には、確保要求、解放要求、及び解放拒否に加えて、後述する変更不可、及び変更不可を解除する変更不可解除があるものとする。これらの詳細は後述する。
【００４５】
また、本実施形態においては、領域管理テーブル１１２において、確保ノード番号１１２２にノード番号が設定され、かつ、変更要求１１２６に何も格納されていないレコードのブロック番号１１２１の領域が、ノード１００により割り当てられている状態であるものとする。また、確保ノード番号１１２２に「０」が格納されている場合には、そのレコードのブロック番号１１２１のブロックはどのノード１００にも割り当てられていないものとする。
【００４６】
ここで、領域管理テーブル１１２の各項目を例を挙げて説明する。
例えば、図５において、ブロック番号１１２１が「２」のレコードは、転写メモリ１１１のブロック番号が「２」のブロックが割り当てられているノード１００のノード番号は「１」であることを示している。また、このブロックにおける転写データのデータ更新時刻は「１０：１０：００.１２３」である。
【００４７】
また、ブロック番号１１２１が「４」のレコードは、転写メモリ１１１のブロック番号「４」のブロック（領域）に対する変更要求（確保要求）をノード番号「３」のノード１００から受信しているが（「追加」）、このノード番号「３」のノード１００がこの領域を割り当てるには、あと「３」（回）、確保要求を領域管理テーブル１１２を記憶しているノードに送信する必要があり、まだそのブロックは当該ノードに割り当てられていない状態であることを示している。このように、２回以上の回数変更要求を送信することによって領域の内容が変更されるようにしているのは、互いに近接する期間において、同じ領域について複数のノード１００から変更要求があったとき、当該領域が当該複数のノード１００によって割り当てられてしまうことを防ぐためである。なお、このとき、複数のノード１００のうちいずれのノード１００に領域を割り当てるかは、例えば、予め各ノード
１００に割り当てられた優先順位などを利用して判断することができる。
【００４８】
次に、ブロック番号１１２１が「７」のレコードは、ノード番号「４」のノード１００によって周期的にデータの書き込みが行われており、１０００ｍｓの周期で、ノード番号「４」のノード１００の内部メモリ１１４のメモリアドレス０ｘ１０００番地のデータが（自ノードの）転写メモリ１１１に書き込まれていることを示している。
【００４９】
また、ブロック番号１１２１が「８」のレコードは、ノード番号「５」のノード１００が、領域を割り当てて周期的なデータの書き込みを開始するための変更要求（確保要求）を送信していることを示している（「追加」）。
【００５０】
また、ブロック番号「１５」のレコードは、ノード番号「６」のノード１００が割り当てている領域に関して、変更要求１１２６に変更不可が設定されていることを示している（「変更不可」）。なお、変更不可は、ノード１００が停止状態であっても、他ノードから受信した解放要求に対して領域を解放しない状態であることを示す。
【００５１】
次に、ノード稼働監視テーブル１１３を説明する。
図６は、ノード稼働監視テーブル１１３の一例を示した図である。同図に示すように、ノード稼働監視テーブル１１３は、データ共有システム１における各ノード１００のノード番号を示すノード番号１１３１、そのノード１００の状態（稼働状態か、停止状態か、もしくはデータ共有システム１に接続されていない状態か）を示す稼働状態１１３２、及び、ノード１００が転写管理情報を最後に受信した時刻（最終更新時刻）を示す管理情報更新時刻１１３３の各項目を含む、少なくとも１つ以上のレコードから構成される。
【００５２】
同図の例では、ノード番号「１」のノード１００は稼働状態（「稼働」）であり、転写管理情報を最後に受信した時刻は「１０：１０：００.４０３」である。また、ノード番
号「３」のノード１００は停止状態（「停止」）であり、ノード１００が転写管理情報を最後に受信した時刻は「１０：０８：００．３２１」である。さらに、ノード番号「４」のノード１００はデータ共有システム１に現在接続されていない状態（「無」）である。
【００５３】
次に、転写データ伝送フレームについて説明する。
図７は、転写データ伝送フレーム６００の一例を示した図である。同図に示すように、転写データ伝送フレーム６００は、ヘッダ部６１０、及びデータ部６２０から構成される。このうちヘッダ部６１０は、転写データ伝送フレーム６００ごとに割り当てられた識別子を示すフレーム識別子６１１、フレーム識別子６１１の転写データ伝送フレーム６００のサイズを示すフレームサイズ６１２、フレーム識別子６１１の転写データ伝送フレーム６００を送信したノード１００のノード番号を示す送信元ノード番号６１３、連続して送信されるフレーム識別子６１１の転写データ伝送フレーム６００のそれぞれに割り当てられたフレーム通番６１４（シーケンス番号）、及び、フレーム識別子６１１の転写データ伝送フレーム６００の送信周期を示す送信周期６１５の各情報を有する。
【００５４】
データ部６２０は、ノード１００が、自身の転写メモリ１１１の各ブロックに記憶されている転写データを、少なくとも１つ以上の、連続するアドレスのブロックの群に分割することにより生成される。
【００５５】
すなわち、データ部６２０は、総確保領域数６２１、及び、領域情報６２５からなる。総確保領域数６２１には、上記ブロック群の総数が格納され、領域情報６２５には、各ブロック群の情報が、総確保領域数６２１が示す数分、格納される。具体的には、領域情報６２５は、ブロック群の先頭のブロック番号が格納される書込先頭ブロック番号６２２、ブロック群を構成する連続するブロックの数が格納される連続ブロック数６２３、及び、
ブロック群に書き込まれる転写データの内容が格納される書込データ６２４からなる。
【００５６】
以上の転写データ伝送フレーム６００は、各ノード１００から所定周期で他ノードに同報送信される。これにより、データ共有システム１における全ノード１００のそれぞれが、自ノード及び他ノードの共有データを共有することになる。
【００５７】
次に、転写管理情報伝送フレームを説明する。
図８は、転写管理情報伝送フレーム７００の一例を示した図である。同図に示すように、転写管理情報伝送フレーム７００は、ヘッダ部７１０、及び転写管理情報７２０から構成される。
【００５８】
ヘッダ部７１０は、転写管理情報伝送フレーム７００ごとに割り当てられた識別子を示すフレーム識別子７１１と、フレーム識別子７１１の転写管理情報伝送フレーム７００のサイズを示すフレームサイズ７１２と、フレーム識別子７１１の転写管理情報伝送フレーム７００を送信したノード１００のノード番号を示す送信元ノード番号７１３と、連続して送信される転写管理情報伝送フレーム７００のそれぞれに割り当てられたフレーム通番７１４（シーケンス番号）と、フレーム識別子７１１の転写管理情報伝送フレーム７００の送信周期を示す送信周期７１５とからなる。
【００５９】
転写管理情報７２０は、確保領域情報７３０、及び変更領域情報７４０からなる。
【００６０】
確保領域情報７３０は、ノード１００が、転写メモリ１１１の各ブロックに記憶されている転写データを、少なくとも１つ以上の、連続するアドレスのブロックの群に分割することにより生成される。
【００６１】
すなわち、確保領域情報７３０は、総確保領域数７３１、及びブロック群情報７３７からなり、総確保領域数７３１には、分割したブロック群の総数が格納され、ブロック群情報７３７には、分割したブロック群の数分、各ブロック群に関する情報が格納される。具体的には、ブロック群情報７３７は、ブロック群の先頭のブロック番号が格納される確保先頭ブロック番号７３２と、ブロック群を構成する連続するブロックの数が格納される連続ブロック数７３３と、ブロック群への転写データの書き込み周期の情報が格納される書き込み周期７３４と、ブロック群の転写データが記憶されていた内部メモリ１１４のアドレス（例えば先頭アドレス）が格納されるメモリアドレス７３５と、ブロック群のデータに割り当てられた識別子であるデータ識別子７３６とからなる。
【００６２】
例えば、転写メモリ１１１のブロック番号が「１１」のブロック、及びブロック番号が「１２」のブロックの領域の転写データを示す場合は、確保先頭ブロック番号７３２に「１１」が、連続ブロック数７３３に「２」が格納される。
【００６３】
変更領域情報７４０は、変更要求が変更する割り当て領域を示す情報を含む。この変更領域情報７４０は、ノード１００が、転写メモリ１１１の各ブロックに記憶されている転写データを、少なくとも１つ以上の、連続するアドレスのブロックの群に分割することにより生成される。
【００６４】
すなわち、変更領域情報７４０は、総確保領域数７４１、及びブロック群情報７４９からなる。総確保領域数７４１には、分割されたブロック群の総数が格納され、ブロック群情報７４９には、分割されたブロック群の数分、各ブロック群に関する情報が格納される。具体的には、ブロック群情報７４９は、変更要求を送信したノード１００のノード番号を示す変更ノード番号７４２と、変更ノード番号７４２のノード１００が送信した変更要求（例えば、追加要求、解放要求）が格納される変更種類７４３と、ブロック群の先頭の
ブロック番号が格納される確保先頭ブロック番号７４４と、ブロック群を構成する連続するブロックの数を示す情報が格納される連続ブロック数７４５と、ブロック群の転写データへの書き込み周期の情報が格納される書き込み周期７４６と、変更要求の対象の各ブロック群への転写データが記憶されている内部メモリ１１４のアドレス（例えば先頭アドレス）が格納されるメモリアドレス７４７と、ブロック群に記憶されている転写データに割り当てられ、制御アプリケーション１２５において使用される識別子であるデータ識別子７４８とからなる。
【００６５】
各ノード１００は、このような転写管理情報伝送フレーム７００を他ノードへ送信することにより、変更要求（例えば、追加要求、解放要求）の種類、その変更要求が変更する割り当て領域を示す情報、及びその領域におけるデータの種類を共有することができる。
【００６６】
次に、転写データテーブルについて説明する。
図９は、転写データテーブル８００の一例を示した図である。同図に示すように、転写データテーブル８００は、転写メモリのブロック番号が格納されるブロック番号８１１と、ブロック番号８１１に記憶されている転写データが格納されるデータ８１２と、ブロック番号８１１に記憶されている転写データの更新状態を示す付加情報８１３とを有する、少なくとも１つ以上のレコードを含んで構成される。この付加情報８１３には、その転写データが正常なものであることを示す「正常」、その転写データが所定期間以上更新されていないことを示す「未更新」、その転写データが無効なものであることを示す「無効」のいずれかが格納される。
【００６７】
＜動作概要＞
次に、本実施形態のデータ共有システム１が有する各ノード１００の動作の概要を説明する。
【００６８】
＜転写データ共有処理＞
図１０は、各ノード１００が行う、転写データを共有するための処理（以下、転写データ共有処理Ｓ８００という）の一例を説明するフローチャートである。転写データ共有処理Ｓ８００は、例えば、所定の周期で繰り返し実行される。
【００６９】
同図に示すように、転写領域管理部１２３は、ノード１００の起動（電源投入等）により処理を開始すると、他ノードから送信されてきた転写管理情報伝送フレーム７００を受信し、受信した転写管理情報伝送フレーム７００に基づき、転写メモリ１１１の割り当て領域の変更を行う処理（以下、領域変更処理Ｓ８１０という）を行う（Ｓ８１０）。
【００７０】
また、転写領域管理部１２３は、転写管理情報伝送フレーム７００の送信処理（以下、転写管理情報送信処理Ｓ８２０という）を実行する（Ｓ８２０）。例えば、ノード１００は、自ノードに割り当てられている転写メモリ１１１の領域の内容を変更する旨の変更要求を、他ノードへ同報送信する。
【００７１】
また、転写領域管理部１２３は、転写データ伝送フレーム６００の送信処理（以下、転写データ送信処理Ｓ８３０という）を行う（Ｓ８３０）。具体的には、ノード１００は、自ノードに割り当てられている転写メモリ１１１の領域の転写データを他ノードへ同報送信する。
【００７２】
また、転写領域管理部１２３は、他ノードから送信されてきた転写データを受信する（Ｓ８４０）。なお、後述するように、この受信の際に、転写データ読み込み処理が実行される。
【００７３】
また、転写領域管理部１２３は、自ノードの内部メモリ１１４のデータを転写メモリ１１１に書き込む処理（以下、転写データ書き込み処理Ｓ８５０という）を行う（Ｓ８５０）。具体的には、転写領域管理部１２３は、領域管理テーブル１１２のレコードのうち、確保ノード番号１１２２が示すノード１００が自ノードのノード番号であり、内部メモリアドレス１１２５にメモリアドレスが設定されており、かつ、データ更新時刻１１２３が示す時刻が所定の時間以上前の時刻である（例えば、所定の書き込み周期の時間以上の時間が経過している）レコードを全て取得する。そして転写領域管理部１２３は、取得したレコードにおけるブロック番号１１２１が示すブロック（転写メモリ１１１の領域）を特定し、特定したブロックに、上記取得したレコードにおける内部メモリアドレス１１２５が示すメモリアドレスのデータを書き込む。上記で取得した全てのレコードについてデータを書き込んだら、本処理は終了する。なお、上記の所定の書き込み周期を記憶するために、領域管理テーブル１１２に、前回にデータの書き込みを行った時刻を記憶させてもよい。
【００７４】
データ共有システム１を構成する各ノード１００は、以上に説明した転写データ共有処理Ｓ８００を繰り返し実行することにより、お互いに転写メモリ１１１上のデータを共有する。以下、転写データ共有処理Ｓ８００の各処理ステップを説明する。
【００７５】
＜領域変更処理Ｓ８１０＞
まず、領域変更処理Ｓ８１０を詳細に説明する。
【００７６】
図１１は、領域変更処理Ｓ８１０の一例を説明するフローチャートである。同図に示すように、転写領域管理部１２３は、転写管理情報伝送フレーム７００を受信しているか否かを確認する（Ｓ９１０）。転写管理情報伝送フレーム７００を受信している場合には（Ｓ９１０のＹｅｓ）、受信した転写管理情報伝送フレーム７００のヘッダ部７１０から送信元ノード番号７１３を取得し（Ｓ９１２）、Ｓ９１４に進むが、転写管理情報伝送フレーム７００を受信していない場合は（Ｓ９１０のＮｏ）、後述するＳ９３０に進む。
【００７７】
Ｓ９１４では、受信した転写管理情報伝送フレーム７００に、自ノードに割り当てられている領域を解放する旨の解放要求が含まれているか否かを確認する。具体的には、転写領域管理部１２３は、受信した転写管理情報伝送フレーム７００に、変更ノード番号７４２が自ノード番号であり、変更種類７４３が解放要求である変更領域情報７４０が含まれているか否かを判断する。
【００７８】
自ノードに割り当てられている領域を解放する旨の解放要求が含まれていない場合には（Ｓ９１４のＮｏ）、後述するＳ９１６に進む。
【００７９】
一方、自ノードに割り当てられている領域を解放する旨の解放要求が含まれている場合には（Ｓ９１４のＹｅｓ）、転写領域管理部１２３は、解放拒否を設定する。具体的には、転写領域管理部１２３は、領域管理テーブル１１２のうちブロック番号１１２１が自ノードに割り当てられている領域に設定されているレコードの変更要求１１２６に「拒否」を設定する（Ｓ９２６）、その後はＳ９１６に進む。なお、この「拒否」は後に、転写管理情報として他ノード１００に同報送信される（Ｓ８２０）
【００８０】
Ｓ９１６では、転写領域管理部１２３は、Ｓ９１０で受信した転写管理情報伝送フレーム７００における確保領域情報７３０の内容を領域管理テーブル１１２に反映する。例えば、受信した転写管理情報伝送フレーム７００における送信元ノード番号７１３が「１」であり、確保領域情報７３０のブロック群情報７３７によって特定されるブロックのブロック番号が「２、１３〜１５」であるとき、転写領域管理部１２３は、図５に示したように、領域管理テーブル１１２のブロック番号１１２１が「１、１３、１４、１５」である
レコードの確保ノード番号１１２２のそれぞれに、「１」を格納する。
【００８１】
次に、転写領域管理部１２３は、Ｓ９１０で受信した転写管理情報伝送フレーム７００において、変更種類７４３に「変更不可」または「変更不可解除」が設定されているブロック群情報７４９があるか否かを判断する（Ｓ９４０）。
【００８２】
変更種類７４３に「変更不可」または「変更不可解除」の変更要求が設定されているブロック群情報７４９がある場合（Ｓ９４０のＹＥＳ）は、領域管理テーブル１１２の変更要求１１２６にその変更種類と、領域（ブロック）の情報とを設定する。具体的には、ブロック群情報７４９における変更種類７４３が「変更不可」の場合は、転写領域管理部１２３は、ブロック群情報７４９における変更ノード番号７４２、先頭確保ブロック番号７４４、及び連続ブロック数７４５に基づき特定されるブロックがブロック番号１１２１に格納されている領域管理テーブル１１２のレコードの変更要求１１２６を「変更不可」に設定する。一方、ブロック群情報７４９における変更種類７４３が「変更不可解除」の場合は、転写領域管理部１２３は、ブロック群情報７４９における変更ノード番号７４２、確保先頭ブロック番号７４４、及び連続ブロック数７４５により特定されるブロックがブロック番号１１２１に格納されている領域管理テーブル１１２のレコードの変更要求１１２６を空欄とする。
【００８３】
続いて、転写領域管理部１２３は、Ｓ９１０で受信した転写管理情報伝送フレーム７００において、自ノードの領域に対する変更要求が含まれているか否かを判断すると共に、その変更要求が含まれている場合には、その変更要求を取得する（Ｓ９１８）。具体的には、転写領域管理部１２３は、転写管理情報伝送フレーム７００のブロック群情報７４９のうち、変更ノード番号７４２に自ノードのノード番号が設定されているブロック群情報７４９があるか否かを判断するとともに、そのブロック群情報７４９がある場合は、そのブロック群情報７４９の変更種類７４３を取得する。
【００８４】
自ノードの領域に対する変更要求が含まれていない場合は（Ｓ９１８のＮｏ）、Ｓ９２２へ進むが、自ノードの領域に対する変更要求が含まれている場合には（Ｓ９１８のＹｅｓ）、転写領域管理部１２３は、領域管理テーブル１１２の更新を行う（Ｓ９２０）。具体的には、転写領域管理部１２３は、Ｓ９１８で取得したブロック群情報７４９の変更ノード番号７４２の確保先頭ブロック番号７４４、及び連続ブロック数７４５に基づき、変更する対象の領域（ブロック）を特定する。そして転写領域管理部１２３は、領域管理テーブル１１２のうち、確保ノード番号１１２２に自ノードのノード番号が格納され、かつ上記特定したブロックの情報がブロック番号１１２１に格納されているレコードにおける変更要求１１２６を、上記取得した変更要求で更新する。その後は、Ｓ９２２に進む。
【００８５】
このようにして、転写領域管理部１２３は、データ共有システム１内の他ノードから受信したフレームを基に、領域管理テーブル１１２を更新する。
【００８６】
なお、Ｓ９１８において、転写領域管理部１２３は、自ノードの領域に対する変更要求が確保要求である場合、その確保要求が割り当てようとするブロックが他ノードによって割り当てられていないことを、領域管理テーブル１１２に基づき確認し、他ノードによって割り当てられていないことを確認できた場合に、領域管理テーブル１１２の更新を行うようにしてもよい。また、転写領域管理部１２３は、他ノードからの確保要求を受信しているか否かを判断し、他ノードからの確保要求を受信していないと判断した場合に、領域管理テーブル１１２の更新を行うようにしてもよい。なお、他ノードからの確保要求を受信していると判断した場合には、予め各ノード１００に設定しておいた優先順位に基づき、割り当てを行うノード１００を選択するようにしてもよい。
【００８７】
Ｓ９２２では、転写領域管理部１２３は、転写管理情報伝送フレーム７００を送信してきた送信元のノード１００を、稼働状態のノード１００として特定する（Ｓ９２２）。具体的には、転写領域管理部１２３は、ノード稼働監視テーブル１１３のレコードのうち、Ｓ９１２で取得した送信元のノード１００のノード番号が確保ノード番号１１３１に格納されているレコードを取得し、取得したレコードにおける稼働状態１１３２を、「稼働」に設定する。その後は、Ｓ９２４に進む。
【００８８】
Ｓ９２４では、転写領域管理部１２３は、転写管理情報伝送フレーム７００を送信してきた送信元のノード１００の管理情報更新時刻を現在時刻に更新する。具体的には、転写領域管理部１２３は、ノード稼働監視テーブル１１３のレコードのうち、Ｓ９１２で取得した送信元のノード１００のノード番号が確保ノード番号１１３１に格納されているレコードを取得し、取得したレコードにおける管理情報更新時刻１１３３を現在時刻に設定する。
【００８９】
転写領域管理部１２３は、このようにノード稼働監視テーブル１１３を更新すると、本処理を終了する。
【００９０】
Ｓ９３０では、転写領域管理部１２３は、停止状態であるノード１００（以下、停止ノードという）を一つ取得する。具体的には、転写領域管理部１２３は、ノード稼働監視テーブル１１３を参照し、管理情報更新時刻１１３３の示す時刻から停止判断時間以上更新されていないレコードを一つ取得し、取得したレコードのノード番号１１３１を取得することによって、停止ノードを取得する。
【００９１】
停止ノードを取得できた場合（Ｓ９３０のＹｅｓ）には、転写領域管理部１２３は、ノード稼働監視テーブル１１３を更新する（Ｓ９３２）。具体的には、転写領域管理部１２３は、ノード稼働監視テーブル１１３を参照し、Ｓ９３０で取得したレコードの稼働状態１１３２を「停止」に設定し、Ｓ９３３に進む。一方、停止ノードを取得できなかった場合は（Ｓ９３０のＮｏ）、本処理は終了する。
【００９２】
Ｓ９３３では、転写領域管理部１２３は、取得した停止ノードが割り当てている領域を一つ取得し、取得した領域に解放拒否が設定されていれば（Ｓ９３３のＹｅｓ）、Ｓ９３５に進むが、取得した領域に解放拒否が設定されていなければ（Ｓ９３３のＮｏ）、その領域を解放する（Ｓ９３４）。具体的には、転写領域管理部１２３は、領域管理テーブル１１２のレコードのうち、Ｓ９３０で取得した停止ノードのノード番号が確保ノード番号１１２２に格納しているレコードを一つ取得し、取得したレコードの変更要求１１２６に「拒否」が設定されていない限り、そのレコードの確保ノード番号１１２２に自ノードのノード番号を設定し、変更要求１１２６に「解放」を設定し、変更カウンタ１１２７に初期値を設定する。その後はＳ９３５に進む。
【００９３】
Ｓ９３５では、転写領域管理部１２３は、取得した停止ノードが割り当てている領域が他にあるか否かを判断し、取得した停止ノードが確保している領域が他にある場合には（Ｓ９３５のＹｅｓ）、Ｓ９３３に戻り、取得した停止ノードが確保している領域が他に無い場合（Ｓ９３５のＮｏ）は、転写領域管理部１２３は、Ｓ９３０で取得した停止ノード以外に、停止状態であるノード１００があるか否かを判断し、停止状態であるノード１００が他にある場合は、その停止ノードを取得しＳ９３２に戻るが（不図示）、停止状態であるノード１００がない場合は本処理は終了する。
【００９４】
このように、転写領域管理部１２３は、停止ノードが確保している全ての領域に対して、解放要求を設定する。そして、その後は、後述する変更要求確定処理Ｓ９５０によって、設定した解放要求が他ノードに送信される。
【００９５】
＜停止ノードへの解放の効果＞
以上のように、情報処理装置（ノード１００）は、自身と現在通信していない情報処理装置がある場合には、通信していない情報処理装置の情報を含む解放要求を生成し、生成した解放要求を、他の情報処理装置に送信し、一方、他の情報処理装置が送信してきた、通信していない情報処理装置の情報を含む解放要求を受信し、受信した解放要求と領域管理情報とに基づき、通信していない情報処理装置の共有データを記憶するために割り当てられていた記憶領域上の領域を解放するので、転写メモリ１１１のうち停止ノードが割り当てていた領域を他ノードが割り当てることができないままとなってしまうことを防ぐことができる。
【００９６】
また、情報処理装置は、自身と現在通信していない情報処理装置があるか否かの判断を、共有データを所定期間送信してきていない情報処理装置があるか否かによって判断するので、これにより、適切なノード１００を対象とした解放要求を送信することができる。
【００９７】
また、情報処理装置は、受信した解放要求に基づき、通信していない情報処理装置が自身の情報処理装置である場合には、自身の情報処理装置の共有データを記憶するために割り当てられている記憶領域上の領域を解放しないように要求する旨の変更要求である解放拒否を、他の情報処理装置に送信するので、自ノードが確保している領域が誤って解放されてしまう事態を避けることができる。例えば、自ノードが実際には稼働状態にも関わらず「停止状態」と他ノードが誤認し、その他ノードが解放要求を送信してきた場合に、その解放要求を拒否することによって、自ノードに割り当てられていた領域が解放されてしまうことを防ぐことができる。また、自ノードも、その領域を解放することを拒絶するという情報を他ノードに送信するので、他ノードは、誤ってその領域を解放してしまうことを避けられる。
【００９８】
なお、この解放拒否については、例えば、データ共有システム１の点検のために、ある停止ノード１００が割り当てている領域の状態を維持したい場合は、管理者等が、その領域に予め解放拒否を設定しておく（領域管理テーブル１１２の変更要求１１２６に「拒否」を設定しておく）ことで、その停止ノードに割り当てられている領域が解放されることを防ぐことも可能である。
【００９９】
＜転写管理情報送信処理Ｓ８２０＞
次に、転写管理情報送信処理Ｓ８２０を詳細に説明する。
図１２は、転写管理情報送信処理Ｓ８２０の一例を説明するフローチャートである。
【０１００】
まず、転写領域管理部１２３は、領域管理テーブル１１２を読み込み（Ｓ１０１０）、読み込んだ領域管理テーブル１１２に基づき、自ノードの領域の確保領域情報７３０を生成する（Ｓ１０２０）。具体的には、転写領域管理部１２３は、読み込んだ領域管理テーブル１１２のレコードのうち、確保ノード番号１１２２に自ノードのノード番号が格納されているレコードを全て抽出し、抽出したレコードのブロック番号１１２１、書き込み周期１１２４、及び内部メモリアドレス１１２５に基づき、確保領域情報７３０を生成する。
【０１０１】
例えば、自ノードのノード番号が「１」の場合は、図５に示した領域管理テーブル１１２のうち、確保ノード番号１１２２にノード番号「１」が格納されているレコードである、ブロック番号１１２１が「２」、「１３」〜「１５」のレコードに基づき、確保領域情報７３０を生成する。
【０１０２】
転写領域管理部１２３は、領域管理テーブル１１２を読み込み、自ノードの領域に対す
る変更要求（追加要求、解放要求）が設定されているか否かを確認する（Ｓ１０３０）。具体的には、転写領域管理部１２３は、読み込んだ領域管理テーブル１１２のレコードのうち、確保ノード番号１１２２に自ノードのノード番号が格納されているレコードを全て抽出し、抽出したレコードの変更要求１１２６に変更要求（追加要求、解放要求）が設定されているか否かを確認する。
【０１０３】
自ノードの領域に対して変更要求が設定されていない場合（Ｓ１０３０のＮｏ）、Ｓ１０６０に進み、自ノードの領域に対して変更要求が設定されている場合（Ｓ１０３０のＹｅｓ）、Ｓ１０４０に進む。
【０１０４】
Ｓ１０４０では、転写領域管理部１２３は、自ノードの領域に対する変更要求が設定されている変更領域情報７４０を生成する。具体的には、転写領域管理部１２３は、Ｓ１０３０で抽出した領域管理テーブル１１２のレコードのうち変更要求が設定されているレコードのブロック番号１１２１、書き込み周期１１２４、内部メモリアドレス１１２５、及び変更要求１１２６により領域を特定し、特定した領域について確保領域情報７４０を生成する。
【０１０５】
そして、転写領域管理部１２３は、領域管理テーブル１１２を読み出し、自ノードの領域に対する変更要求が設定されている全てのブロックの変更カウンタ値を「１」減算する（Ｓ１０５０）。具体的には、転写領域管理部１２３は、読み出した領域管理テーブル１１２のレコードのうち、確保ノード番号１１２２に自ノードのノード番号が格納され、かつ変更要求１１２６に変更要求が設定されているレコードを全て取得し、取得したレコードの変更カウンタ１１２７の値を「１」減算する。その後はＳ１０６０に進む。
【０１０６】
Ｓ１０６０では、転写領域管理部１２３は、Ｓ１０２０で生成した確保領域情報７３０にヘッダ部７１０を付帯させた転写管理情報７２０を生成する。なお、転写領域管理部１２３は、Ｓ１０４０で変更領域情報を生成した場合は、生成した変更領域情報、及びＳ１０２０で生成した確保領域情報７３０にヘッダ部７１０を付帯させた転写管理情報７２０を生成する。
【０１０７】
そして、転写領域管理部１２３は、生成した転写管理情報７２０を送信部１２２へ出力し、送信部１２２は、この転写管理情報７２０を転写管理情報伝送フレーム７００に変換して、他ノードへ同報送信する（Ｓ１０７０）。
【０１０８】
このように、転写管理情報送信処理Ｓ８２０は、領域管理テーブル１１２において転写メモリ１１１の変更要求が設定されている場合、その旨を通知する転写管理情報伝送フレーム７００を、データ共有システム１内のノード１００に周期的に送信する。
【０１０９】
＜変更要求確定処理Ｓ９５０＞
次に、変更要求確定処理Ｓ９５０について説明する。
図１３は、変更要求確定処理Ｓ９５０の一例を説明するフローチャートである。変更要求確定処理は、例えば、所定の時間間隔で行われる。
【０１１０】
まず、転写領域管理部１２３は、領域管理テーブル１１２から、変更要求が設定されている領域（以下、変更領域という）を取得する（Ｓ９５２）。具体的には、転写領域管理部１２３は、変更要求１１２６に情報が格納されているレコードのブロック番号１１２１を取得する。
【０１１１】
ここで、領域管理テーブル１１２に設定されている変更要求は、本処理の実行中も、転写管理情報送信処理Ｓ８１０によって送信されている。すなわち、自ノード領域の内容を
変更する旨を示す転写管理情報伝送フレーム７００が、他ノードに同報送信されている。
【０１１２】
そこで、転写領域管理部１２３は、変更領域に対する変更要求が変更カウンタ値の回数分、送信されたか否かを確認する（Ｓ９５６）。具体的には、転写領域管理部１２３は、Ｓ９５２で取得したレコードの変更カウンタ１１２７の値が０以下になっているか否かを判断する。
【０１１３】
変更カウンタ値の回数分、送信された場合には（Ｓ９５６のＹｅｓ）、Ｓ９５７に進み、変更カウンタ値の回数分、送信されていない場合には（Ｓ９５６のＮｏ）、本処理は終了する。
【０１１４】
Ｓ９５７では、転写領域管理部１２３は、変更領域を変更する変更要求が「変更不可」であるか否かを判断し、「変更不可」である場合には変更要求確定処理Ｓ９５０を終了するが、「変更不可」でない場合には、Ｓ９５８に進む。
【０１１５】
Ｓ９５８では、転写領域管理部１２３は、変更領域を反映することにより領域管理テーブル１１２を更新する。例えば、転写領域管理部１２３は、変更要求が追加要求の場合、Ｓ９５２で取得したレコード（例えば、確保ノード番号１１２２、変更要求１１２６、変更カウンタ１１２７）の内容をクリアする（例えば、空欄又は０にする）（Ｓ９５８）。
【０１１６】
そして、転写領域管理部１２３は、Ｓ９５２で取得した変更領域以外に、他の変更領域があれば（Ｓ９５９のＹｅｓ）、その変更領域に対してＳ９５２以下の処理を行い、他に変更領域がなければ（Ｓ９５９のＮｏ）、本処理は終了する。
【０１１７】
この後、転写領域管理部１２３は、領域管理テーブル１１２における自ノードの情報を基に転写管理情報伝送フレーム７００を生成し、生成した転写管理情報伝送フレーム７００を他ノードに送信することにより、自ノードの領域の内容が変更されたことを他ノードに通知する。
【０１１８】
なお、Ｓ９５６において、変更要求が変更カウンタ値の回数分、送信されていない場合には（Ｓ９５６のＮｏ）、転写領域管理部１２３は、受信部１２１のバッファ等をチェックすることにより他ノードからの転写管理情報伝送フレーム７００の受信を確認し、転写管理情報伝送フレーム７００を受信しており、かつ、その転写管理情報伝送フレーム７００に変更要求が含まれている場合には、その変更要求と上記の変更要求のいずれかに対して、Ｓ９５８の処理を行うようにしてもよい。例えば、変更要求が追加要求の場合は、予め各ノード１００に設定された優先順位に従い、優先順位が最も高いノード１００からの変更要求に基づき、Ｓ９５８の処理を行うようにする。
【０１１９】
また、Ｓ９５６の処理の前に、自ノードが他ノードに変更要求を送信していた場合において、Ｓ９５６において、その他ノードから、拒否要求を含む転写管理情報伝送フレーム７００を受信した場合は、その他ノードは稼働していることがわかるので、転写領域管理部１２３は、上記送信した変更要求が設定されている領域管理テーブル１１２のレコードの確保ノード番号１１２２、変更要求１１２６、及び変更カウンタ１１２７をクリアするようにしてもよい。
【０１２０】
＜変更命令対応処理Ｓ１１００＞
次に、変更命令対応処理Ｓ１１００について説明する。
【０１２１】
図１４は、変更命令対応処理Ｓ１１００の一例を説明するフローチャートである。同図に示すように、転写領域管理部１２３は、処理を開始すると、制御アプリケーション１２
５から送信されてくる変更要求の受信を待機する（Ｓ１１１０）。なお、この変更要求は、例えば、制御アプリケーション１２５から、所定の周期または任意のタイミングで送信することができる。
【０１２２】
転写領域管理部１２３は、制御アプリケーション１２５から変更要求を受信すると、領域管理テーブル１１２を読み込むことにより、受信した変更要求の種類を特定すると共に、その変更要求が示す領域（以下、指定領域という）を特定する（Ｓ１１２０）。
【０１２３】
受信した変更要求が追加要求の場合（Ｓ１１３０の「追加」）、転写領域管理部１２３は、読み込んだ領域管理テーブル１１２のデータを参照して、指定領域（追加する、転写メモリ１１１の領域）が既に他ノードによって割り当てられているか否かを確認する（Ｓ１１３２）。具体的には、転写領域管理部１２３は、領域管理テーブル１１２のレコードのうちブロック番号１１２１に指定領域が格納されているレコードを取得し、取得したレコードの確保ノード番号１１２２に他ノードのノード番号が格納されているか否かを判断する。
【０１２４】
指定領域が既に他ノードによって割り当てられている場合は（Ｓ１１３２のＹｅｓ）、変更命令対応処理Ｓ１１００は終了するが、指定領域が他ノードによって割り当てられていない場合は（Ｓ１１３２のＮｏ）、転写領域管理部１２３は、指定領域に「追加」を設定する。具体的には、転写領域管理部１２３は、Ｓ１１３２で取得したレコードの変更要求１１２６に「追加」を設定し、確保ノード番号１１２２にノード番号（自ノード又は他ノードのノード番号）を設定する（Ｓ１１３４）。この設定した変更要求はその後、変更要求確定処理Ｓ９５０によって反映され（変更が確定し）、さらに、この変更要求を含む転写管理情報が他ノードに送信される。
【０１２５】
Ｓ１１１０で受信した変更命令が解放命令の場合（Ｓ１１３０の「解放」）、転写領域管理部１２３は、読み込んだ領域管理テーブル１１２のデータを参照して、指定領域（解放する、転写メモリ１１１の領域）が既に自ノードによって割り当てられているか否かを確認する（Ｓ１１３６）。具体的には、転写領域管理部１２３は、領域管理テーブル１１２のレコードのうちブロック番号１１２１が示すブロックが指定領域であるレコードを取得し、取得したレコードの確保ノード番号１１２２に自ノードのノード番号が格納されているか否かを判断する。
【０１２６】
指定領域が自ノードによって割り当てられていない場合は（Ｓ１１３６のＮｏ）、変更命令対応処理Ｓ１１００は終了するが、指定領域が既に自ノードによって割り当てられている場合は（Ｓ１１３６のＹｅｓ）、転写領域管理部１２３は、指定領域に「解放」を設定する。具体的には、転写領域管理部１２３は、Ｓ１１３６で取得したレコードの変更要求１１２６に「解放」を設定する（Ｓ１１３８）。この設定した変更要求はその後、変更要求確定処理Ｓ９５０によって反映され（変更が確定し）、さらに、この変更要求を含む転写管理情報が他ノードに送信される。
【０１２７】
なお、以上のような解放命令に対する処理は他のノード１００に与える影響が小さいと考えられるため、転写領域管理部１２３は、直ちに指定領域を解放する処理を行ってもよい。
【０１２８】
Ｓ１１１０で受信した変更命令が変更不可命令の場合（Ｓ１１３０の「変更不可」）、転写領域管理部１２３は、読み込んだ領域管理テーブル１１２のデータを参照して、指定領域（変更不可とする、転写メモリ１１１の領域）が既に自ノードによって割り当てられているか否かを確認する（Ｓ１１４０）。具体的には、転写領域管理部１２３は、領域管理テーブル１１２のレコードのうちブロック番号１１２１が示すブロックが指定領域であ
るレコードを取得し、取得したレコードの確保ノード番号１１２２に自ノードのノード番号が格納されているか否かを判断する。
【０１２９】
指定領域が自ノードによって割り当てられていない場合（Ｓ１１４０のＮｏ）、変更命令対応処理Ｓ１１００は終了するが、指定領域が自ノードによって割り当てられている場合（Ｓ１１４０のＹｅｓ）、転写領域管理部１２３は、指定領域に「変更不可」を設定する。具体的には、転写領域管理部１２３は、Ｓ１１４０で取得したレコードの変更要求１１２６に「変更不可」に設定する（Ｓ１１３８）。この設定した変更要求はその後、変更要求確定処理Ｓ９５０によって反映され（変更が確定し）、さらに、この変更要求を含む転写管理情報が他ノードに送信される。
【０１３０】
Ｓ１１１０で受信した変更命令が変更不可解除命令の場合（Ｓ１１３０の「変更不可解除」）、転写領域管理部１２３は、読み込んだ領域管理テーブル１１２のデータを参照して、指定領域（変更不可解除とする、転写メモリ１１１の領域）が既に自ノードによって割り当てられているか否かを確認する（Ｓ１１５０）。具体的には、転写領域管理部１２３は、領域管理テーブル１１２のレコードのうちブロック番号１１２１が示すブロックが指定領域であるレコードを取得し、取得したレコードの確保ノード番号１１２２に自ノードのノード番号が格納されているか否かを判断する。
【０１３１】
指定領域が自ノードによって割り当てられていない場合は（Ｓ１１５０のＮｏ）、変更命令対応処理Ｓ１１００は終了するが、指定領域が既に自ノードによって割り当てられている場合は（Ｓ１１５０のＹｅｓ）、転写領域管理部１２３は、指定領域の「変更不可」を解除する。具体的には、転写領域管理部１２３は、Ｓ１１５０で取得したレコードの変更要求１１２６に設定されている「変更不可」を解除する（例えば、空欄にする）（Ｓ１１５２）。この設定した変更要求はその後、変更要求確定処理Ｓ９５０によって反映され（変更が確定し）、さらに、この変更要求を含む転写管理情報が他ノードに送信される。
【０１３２】
なお、上記の変更不可解除命令に対する処理は他のノード１００に与える影響が小さいと考えられるため、転写領域管理部１２３は、直ちに変更不可を解除する処理を行ってもよい。
【０１３３】
＜転写データ読み出し処理Ｓ１２００＞
次に、転写データ読み出し処理Ｓ１２００の詳細について説明する。
【０１３４】
図１５は、転写データ読み出し処理Ｓ１２００の一例を説明するフローチャートである。なお、転写データ読み出し処理Ｓ１２００は、制御アプリケーション１２５が、転写メモリアクセス制御部１２４に対して、転写メモリ１１１のデータの読み出し要求を送信することにより開始される。例えば、転写データ読み出し処理Ｓ１２００は、転写データ受信処理Ｓ８４０を実行する際に行われるように設定することができる。
【０１３５】
同図に示すように、転写メモリアクセス制御部１２４は、制御アプリケーション１２５からの転写メモリ１１１のデータの読み出し要求を受信すると（Ｓ１２００）、転写メモリ１１１の領域（ブロック）から一つのブロックを選択する（Ｓ１２０２）。
【０１３６】
転写メモリアクセス制御部１２４は、領域管理テーブル１１２を参照して、Ｓ１２００で選択した領域（以下、読み出し領域という）を既に割り当てているノード１００があるか否かを判断する（Ｓ１２０４）。具体的には、転写メモリアクセス制御部１２４は、領域管理テーブル１１２のレコードのうち、ブロック番号１１２１に読み出し領域が格納されているレコードの確保ノード番号１１２２が「０」以外であるか否かを判断する。
【０１３７】
読み出し領域を既に割り当てているノード１００（以下、割り当てノードという）がある場合（Ｓ１２０４のＹｅｓ）、には、Ｓ１２０６に進み、読み出し領域を割り当てているノード１００がない場合（Ｓ１２０４のＮｏ）、Ｓ１２１８に進む。
【０１３８】
Ｓ１２０６では、転写メモリアクセス制御部１２４は、割り当てノードが稼働状態であるか否かを判断する。具体的には、転写メモリアクセス制御部１２４は、ノード稼働監視テーブル１１３のレコードのうちノード番号１１３１に割り当てノードのノード番号が格納されているレコードを取得し、取得したレコードの稼働状態１１３２に「稼働」が設定されているか否かを判断する。
【０１３９】
割り当てノードが稼働状態である場合（Ｓ１２０６のＹｅｓ）には、Ｓ１２０８に進み、割り当てノードが稼働状態でない場合（Ｓ１２０６のＮｏ）には、Ｓ１２１８に進む。
【０１４０】
Ｓ１２０８では、転写メモリアクセス制御部１２４は、読み出し領域のデータが所定時間更新されていないか否かを判断する。具体的には、転写メモリアクセス制御部１２４は、Ｓ１２０６で取得したレコードのデータ更新時刻１１２３が示す時刻が、現在時刻より上記所定時間前であるか否かを判断する。
【０１４１】
読み出し領域のデータが所定時間更新されていない場合（Ｓ１２０８のＹｅｓ）には、転写メモリアクセス制御部１２４は、付加情報が「無効」の転写データテーブル８００のレコードを生成する。具体的には、転写メモリアクセス制御部１２４は、ブロック番号８１１に読み出し領域が設定され、読み出し領域に記憶されているデータがデータ８１２に設定され、付加情報８１３に「正常」が設定された、転写データテーブル８００のレコードを生成する（Ｓ１２１０）。すなわち、このデータは稼働中のノード１００が所定時間以内に書き込んだデータであるので、正常なデータである可能性が高いことを示しておく。
【０１４２】
Ｓ１２１８では、転写メモリアクセス制御部１２４は、付加情報が「無効」の転写データテーブル８００のレコードを生成する。具体的には、転写メモリアクセス制御部１２４は、ブロック番号８１１に読み出し領域が設定され、読み出し領域に記憶されているデータがデータ８１２に設定され、付加情報８１３に「無効」が設定された、転写データテーブル８００のレコードを生成する。すなわち、転写メモリ１１１の読み出し領域がどのノード１００にも確保されていない場合や、稼働していないノード１００に確保されている場合に、この領域のデータは無効であることを示しておく。その後は、Ｓ１２１２へ進む。
【０１４３】
Ｓ１２１６では、転写メモリアクセス制御部１２４は、付加情報が「未更新」の転写データテーブル８００のレコードを生成する。具体的には、転写メモリアクセス制御部１２４は、ブロック番号８１１に読み出し領域が設定され、読み出し領域に記憶されているデータがデータ８１２に設定され、付加情報８１３に「未更新」が設定された、転写データテーブル８００のレコードを生成する。すなわち、読み出し領域に書き込まれたデータは、稼働しているノード１００により書き込まれたものであるが、前回のデータ更新から所定時間を経過しているので、その旨を付加情報として付与する。その後は、Ｓ１２１２へ進む。
【０１４４】
Ｓ１２１２では、転写メモリアクセス制御部１２４は、全ての読み出し領域について転写データテーブル８００を生成したか否かを確認し、転写データテーブル８００を生成していない読み出し領域がある場合（Ｓ１２１２のＮｏ）、Ｓ１２０２に戻るが、全ての読み出し領域について転写データテーブル８００を生成した場合（Ｓ１２１２のＹｅｓ）には、Ｓ１２１４に進む。
【０１４５】
Ｓ１２１４では、転写メモリアクセス制御部１２４は、生成した転写データテーブル８００を制御アプリケーション１２５に引き渡す。
【０１４６】
このようにして、制御アプリケーション１２５には、転写メモリ１１１の転写データが引き渡される。このとき、転写メモリアクセス制御部１２４は、転写データに含まれるデータのそれぞれが「正常」か、「未更新」か、「無効」か、を付加情報として付与して引き渡すので、この転写データを受け取った制御アプリケーション１２５は、データのそれぞれの信頼性を確認することができる。
【０１４７】
＜管理端末２００＞
次に、管理端末２００について説明する。
【０１４８】
図１６は、管理端末２００のハードウェア構成の一例を説明する図である。同図に示すように、管理端末２００は、ＣＰＵ（Central Processing Unit）、ＭＰＵ（MicroProcessing Unit）等のプロセッサ２１と、メモリ２２（ＲＡＭ、ＲＯＭ、ＮＶＲＡＭ等の揮発
性又は不揮発性メモリ）と、ハードディスクやＳＳＤ（Solid State Drive）等の記憶装
置２３と、ノード１００との通信を行う通信インタフェース２４と、タッチパネルや操作ボタン等の入力装置２５と、液晶ディスプレイ等の出力装置２６と、を備える。管理端末２００の具体例は、データ共有システム１のネットワーク１４０を介してノード１００と通信可能な携帯端末（ノートコンピュータ、タブレット端末等）であるが、据置型の情報処理装置であってもよい。
【０１４９】
管理端末２００は、転写メモリ１１１の領域の状態を出力装置２６に出力する機能を有する出力部（不図示）を備える。例えば、出力部は、共有データを記憶するために割り当てられている領域が記憶領域に存在するか否かを示す情報、及び、現在、同内容の前記変更要求を２以上の所定回数未満受信している状態であることを示す情報を出力する。これらの出力部の機能は、管理端末２００のハードウェアによって、もしくは、管理端末２００のプロセッサ２１が、メモリ２２又は記憶装置２３に格納されているプログラムを読み出して実行することにより実現される。
【０１５０】
次に、出力部が出力する画面の詳細について説明する。
図１７は、出力部が出力装置２６に出力する画面の一例を説明する図である。同図に示すように、管理端末２００の画面には、ブロック番号１３１０、確保ノード番号１３２０、データ更新時刻１３３０、書き込み周期１３４０、内部メモリアドレス１１２５、ステータス１３６０が表示される。
【０１５１】
例えば、管理端末２００の画面には、ノード１００の領域管理テーブル１１２の内容が表示される。具体的には、ブロック番号１１２１に対応するブロック番号１３１０、確保ノード番号１１２２に対応する確保ノード番号１３２０、データ更新時刻１１２３に対応するデータ更新時刻１３３０、書き込み周期１１２４に対応する書き込み周期１３４０、内部メモリアドレス１１２５に対応する内部メモリアドレス１３５０が表示される。
【０１５２】
また、ステータス１３６０には、ブロック番号１３１０が示す領域の状態が表示される。例えば、その領域がノード１００によって割り当てられていない場合は「空き」、割り当てられている場合は「割り当て済み」が表示される。この表示を行うことにより、例えば、データ共有システム１における管理者等は、入力装置２５に入力を行う等して、「空き」が表示されている領域（割り当てがない領域）に自ノードの転写データを記憶する領域を割り当てるように、ノード１００に設定を行うことができる。例えば、同図に示すように、入力欄１３７１に、割り当てる領域（ブロック番号）及び割り当てるノード１００
を入力し、これらの入力値から割り当て要求を生成して当該ノード１００の転写領域管理部１２３に割り当て要求を送信する機能を有するボタン１３７２を操作することにより、領域を割り当てることができる。また、「割り当て済み」が表示されている領域（割り当てがある領域）を解放するように、ノード１００に設定を行うことができる。例えば、同図に示すように、入力欄１３７１に、解放する領域（ブロック番号）及び解放先のノード１００を入力し、これらの入力値から解放要求を生成して当該ノード１００の転写領域管理部１２３に解放要求を送信する機能を有するボタン１３７３を操作することにより、領域を解放することができる。
【０１５３】
また、ある領域を割り当てているノード１００が周期的にデータの書き込みを行っている状態（変更要求が変更カウンタ値の回数未満送信されている状態）であり、未だ他のノードがそのデータを取得できる状態の場合は、そのノード１００のステータス１３６０には「データ取得可」が表示される。この表示を行うことにより、管理者等は、書き込み周期１３４０や内部メモリアドレス１３５０に表示される情報を参考にしながら、入力欄１３７１に、領域（ブロック番号）及び解放先のノード１００を入力し、これらの入力値から転写メモリ１１１のデータを取得し表示する機能を有するボタン１３７４を操作することにより、そのデータを出力欄１３７５に表示することができる。
【０１５４】
なお、本画面にプルダウンメニューを設け、ステータス１３６０が「空き」、「割り当て済み」、「データ取得可」のそれぞれに該当する欄のみを表示するような機能を設けてもよい。
【０１５５】
また、以上に説明した機能は、管理端末２００ではなく、ノード１００に設けるようにしてもよい。
【０１５６】
以上に説明したように、本実施形態のデータ共有システム１によれば、情報処理装置（ノード１００）のそれぞれは、記憶領域（転写メモリ１１１）上の割り当て領域の内容の変更を要求する旨、及び変更する割り当て領域を示す情報である変更要求を生成し、生成した変更要求を他の情報処理装置に送信し、また、他の情報処理装置が送信してきた変更要求を受信し、受信した変更要求と領域管理情報とに基づき、割り当て領域の変更を行うので、各ノードが、他ノードの記憶領域の内容を容易に変更できる。これにより、データ共有システム１における各ノード１００の記憶領域の内容を適切に維持することができる。例えば、データ共有システム１にノード１００を追加したり離脱させたりする場合において、システムの管理者等が、各ノード１００の共有データの記憶領域の割り当ての変更を行うために、データ共有システム１を停止したり各ノード１００の設定を変更する等の作業を行うなどの煩雑な作業を行う必要がなく、各ノード１００が自律的に他ノードの記憶領域を変更し、データ共有システム１における共有データの内容を適切に維持することができる。すなわち、本実施形態のデータ共有システム１によれば、共有データの記憶領域を容易かつ適切に管理することができる。
【０１５７】
例えば、情報処理装置は、共有データを記憶するための領域を記憶領域上に割り当てることを要求する旨、及び割り当てる領域を示す変更要求である割り当て要求を生成し、生成した割り当て要求を他の情報処理装置に送信し、一方、他の情報処理装置が送信してきた割り当て要求を受信し、受信した割り当て要求と領域管理情報とに基づき、他の情報処理装置の前記共有データを記憶するための領域を、記憶領域に割り当てるので、システムの管理者等が、各ノード１００の共有データの記憶領域を割り当てる場合における、煩雑な割り当て作業を行う必要がない。
【０１５８】
また、情報処理装置は、記憶領域に割り当てられている割り当て領域の解放を要求する旨、及び解放する領域を示す変更要求である解放要求を生成し、生成した解放要求を他の
情報処理装置に送信し、一方、他の情報処理装置が送信してきた解放要求を受信し、受信した解放要求と領域管理情報とに基づき、他の情報処理装置の共有データを記憶するために割り当てられていた記憶領域上の領域を解放するので、システムの管理者等が、各ノード１００の共有データの記憶領域を解放する場合における、煩雑な割り当て作業を行う必要がない。
【０１５９】
以上の実施形態の説明は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明はその趣旨を逸脱することなく、変更、改良され得ると共に本発明にはその等価物が含まれる。
【符号の説明】
【０１６０】
１  データ共有システム、１００  ノード、１４０  ネットワーク、２００  管理端末、１１  プロセッサ、１２  メモリ、１３  記憶装置、１４  通信インタフェース、１５  入力装置、１６  出力装置、２１  プロセッサ、２２  メモリ、２３  記憶装置、２４  通信インタフェース、２５  入力装置、２６  出力装置、１１０  記憶部、１１１  転写メモリ、１１２  領域管理テーブル、１１３  ノード稼働監視テーブル、１１４  内部メモリ、１２０  処理部、１２１  受信部、１２２  送信部、１２３  転写領域管理部、１２３１  変更要求送信部、１２３２  領域変更部、１２４  転写メモリアクセス制御部、１２５  制御アプリケーション
【図１】
0006441153.tif 000002
【図２】
0006441153.tif 000003
【図３】
0006441153.tif 000004
【図４】
0006441153.tif 000005
【図５】
0006441153.tif 000006
【図６】
0006441153.tif 000007
【図７】
0006441153.tif 000008
【図８】
0006441153.tif 000009
【図９】
0006441153.tif 000010
【図１０】
0006441153.tif 000011
【図１１】
0006441153.tif 000012
【図１２】
0006441153.tif 000013
【図１３】
0006441153.tif 000014
【図１４】
0006441153.tif 000015
【図１５】
0006441153.tif 000016
【図１６】
0006441153.tif 000017
【図１７】
0006441153.tif 000018