(57)【要約】【課題】  データロスに対する耐性を保持すると共に、システムを構成するネットワーク機器のメモリ容量が均一でない場合でもシステム全体のメモリ容量を有効に使用する。【解決手段】  プロバイダＰでそれぞれ異なるメモリ容量を有し、プロバイダＰからネットワークＮＷに定期的にメモリ状態レポートを配信して、プロバイダＰ及びリクエスタＲはプロバイダＰのメモリ使用状況を把握する。リクエスタＲがプロバイダＰの分散型共有メモリ１にファイルＣを格納させたい場合、プロバイダＰに空きスロット通知リクエストを配信して、プロバイダＰからスロット通知レスポンスを受信すると、スロット通知レスポンスを配信したプロバイダＰの分散型共有メモリ１にファイルＣを送信する。これによって、リクエスタＲのようにメモリがないネットワーク機器、メモリが少ないネットワーク機器でも、各ネットワーク機器の動作設定情報の複製数が均一とする。【選択図】      図５
2007179279.tif 000002
【特許請求の範囲】
【請求項１】
複数のネットワーク機器を有し、各ネットワーク機器が、自己が動作するために必要な動作設定情報を他のネットワーク機器に記憶させる情報記憶システムにおいて、
前記複数のネットワーク機器のうちの一部又は全部のネットワーク機器は、他のネットワーク機器から送信された動作設定情報を記憶し、当該他のネットワーク機器の動作設定情報のバックアップメモリとして機能するバックアップ用記憶手段を有し、
それぞれのネットワーク機器は、
自己の動作設定情報を記憶する情報記憶手段と、
前記他のネットワーク機器と通信回線を介して接続されて、当該他のネットワーク機器と通信を行う通信手段と、
前記情報記憶手段に記憶された自己の動作設定情報を他のネットワーク機器のバックアップ用記憶手段に記憶させる記憶制御手段とを備え、
前記バックアップ用記憶手段を有するネットワーク機器は、前記通信手段を介して受信した他のネットワーク機器からの要求に従って、前記バックアップ用記憶手段に記憶させる動作設定情報を動的に変化させることを特徴とする情報記憶システム。
【請求項２】
前記記憶制御手段は、前記複数のネットワーク機器の動作設定情報の複製数を平均するように各ネットワーク機器の動作設定情報を前記バックアップ用記憶手段に記憶させることを特徴とする請求項１に記載の情報記憶システム。
【請求項３】
前記記憶制御手段は、自己の動作設定情報及び前記通信回線を介して接続された他のネットワーク機器の動作設定情報の重要度が予め設定され、前記複数のネットワーク機器の動作設定情報のうち重要度の低い動作設定情報の複製数よりも、重要度の高いネットワーク機器の動作設定情報の複製数を多くするように動作設定情報を前記バックアップ用記憶手段に記憶させることを特徴とする請求項１に記載の情報記憶システム。
【請求項４】
前記バックアップ用記憶手段を有するネットワーク機器は、自己のバックアップ用記憶手段の状態を他のネットワーク機器に通知するメモリ状態レポート出力手段を有し、
前記記憶制御手段は、前記メモリ状態レポート出力手段から通知されたバックアップ用記憶手段の状態を参照して、自己の動作設定情報を前記バックアップ用記憶手段を有するネットワーク機器に記憶させることを特徴とする請求項１乃至請求項３の何れか一項に記載の情報記憶システム。
【請求項５】
前記記憶制御手段は、
自己の動作設定情報が記憶可能か否かを前記バックアップ用記憶手段を有するネットワーク機器に問い合わせ、自己の動作設定情報が記憶可能であることを表す使用状況情報の応答があった他のネットワーク機器に自己の動作設定情報を送信して、当該他のネットワーク機器に自己の動作設定情報を記憶させ、
前記バックアップ用記憶手段を有するネットワーク機器は、他のネットワーク機器から、当該他のネットワーク機器の動作設定情報が記憶可能か否かが問い合わせられた場合に、自己のバックアップ用記憶手段のメモリ状態を返信すること
を特徴とする請求項１乃至請求項３の何れか一項に記載の情報記憶システム。
【請求項６】
前記記憶制御手段は、前記バックアップ用記憶手段を有するネットワーク機器からバックアップ用記憶手段のメモリ状態を取得して、自己の動作設定情報が記憶不能であると判定した場合には、最も動作設定情報の複製数が多いネットワーク機器を判定して、当該ネットワーク機器の動作設定情報に代えて、自己の動作設定情報を記憶させることを特徴とする請求項１乃至請求項５の何れか一項に記載の情報記憶システム。
【請求項７】
前記バックアップ用記憶手段を有するネットワーク機器は、前記通信回線に新たに参加するネットワーク機器が接続されて、当該新たなネットワーク機器から動作設定情報が記憶可能か否かが問い合わせられた時に、自己のバックアップ用記憶手段のメモリ情報を返信することを特徴とする請求項１乃至請求項３の何れか一項に記載の情報記憶システム。
【請求項８】
前記バックアップ用記憶手段を有するネットワーク機器は、前記通信回線から離脱するために動作設定情報を破棄する要求を受けた時に、当該離脱するネットワーク機器の動作設定情報をバックアップ用記憶手段から削除することを特徴とする請求項１乃至請求項３の何れか一項に記載の情報記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の設定情報に従ってデバイスを制御・監視するネットワーク機器及びリクエスタ間において当該設定情報を多重させて記憶させる情報記憶システムに関する。
【背景技術】
【０００２】
従来より、プラグアンドプレイやＰ２Ｐ（Peer-to-peer）通信を行う埋め込み型デバイスネットワークの進歩によって、クライアント−サーバシステムにおけるデータの耐性に関する問題を解消することが提案されている。この埋め込み型デバイスネットワークを実現する技術は、デバイスのデータ及びコンピュータ処理プログラムをネットワークに分散することを実現している。この埋め込み型デバイスネットワークにおいては、データの耐性を保持するために、システムの一部が故障した場合であっても、コンピュータ処理プログラムやデータの整合性を保護する必要がある。
【０００３】
コンピュータ処理プログラムやデータの耐性を保持する手法としては、一般的に、コンピュータ処理プログラムやデータをネットワーク内で重複させて記憶させることが行われている。データを重複させることにより、システムの一部が故障した場合であっても、システム修復後であれば、データを修復できる。
【０００４】
このように、データの耐性を保持するために、従来では、ネットワークにおける情報を高い信頼性でバックアップし且つ機密性を高めたサービスを提供する情報バックアップサーバや、複数の端末間でデータ分散を行う分散型ＲＡＩＤ（Redundant Array of Inexpensive Disks）システム等を使用することが考えられている。また、サーバにデータをバックアップしておく技術としては、下記の特許文献１等が挙げられる。
【０００５】
更に、従来より、ネットワークを構成するデバイスによってシステム全体での情報のコピーを重複させて記憶させる技術や、システム全体の情報を全デバイスにおいて平等に分散させる技術も提案されている。
【特許文献１】特開２００４−１０２４５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述の従来のネットワーク技術において、情報バックアップサーバを備えるシステムでは、当該情報バックアップサーバとデバイスとを接続すること自体が信頼性の問題となる場合がある。例えば、情報バックアップサーバに対する接続ができなくなった場合、情報バックアップサーバが応答できずにバックアップしたコンピュータ処理プログラムやデータを使用することができず、データロスの可能性が発生する。
【０００７】
また、上述の分散型ＲＡＩＤを利用したシステムでは、複数の端末を使用するために、システムを構成するためのコスト、メンテナンスコスト、修復コストが高くなる。また、システムの容量が多くなって消費電力が高くなってしまう。
【０００８】
更に、システム全体の情報をデバイスに重複又は分散させて記憶させる技術は、ネットワークを構成する全てのデバイスで同容量のデータ記憶能力を有する必要があるので、メモリ容量が小さいデバイスは当該技術を採用したネットワークに参加できず、データロスに対する耐性が低くなってしまう。したがって、システム全体の情報をデバイスに重複又は分散させて記憶させる技術は、メモリ容量が高い高機能なデバイスのみに適用可能な技術であり、システム全体におけるコストが高くなってしまう。
【０００９】
更にまた、システム全体の情報をデバイスに重複させて記憶させる技術は、膨大な量の重複データがあり、各デバイスがシステム全体の情報を記憶できるものである必要があるため、当該制約から、メモリ容量が少ないデバイスには不向きである。この技術を採用したネットワークにおいて、それぞれのデバイスのメモリ容量が一定である場合には、システム全体の情報は単純にデバイス数に比例し、デバイス数が各デバイスのメモリ容量よりも高い場合には信頼性がなくなってしまう。
【００１０】
更にまた、メモリ容量が低いデバイスや、端末のようにメモリ容量が高いデバイス等が混在している埋め込み型デバイスネットワークは異質なものであるが、ほとんどのデバイスはメモリ容量が小さいものである。システム全体の情報を重複させる技術において、各デバイスが記憶できるデータ量は、最もメモリ容量が小さいデバイスに規制されて、メモリ容量が高いデバイスのメモリ容量の範囲の一部しか使用できない。したがって、埋め込み型デバイスネットワーク全体で利用できるメモリ容量を無駄にしてしまうという問題がある。
【００１１】
そこで、本発明は、上述した実情に鑑みて提案されたものであり、ネットワークにおけるデータロスに対する耐性を保持すると共に、システムを構成するネットワーク機器のメモリ容量が均一でない場合でもシステム全体のメモリ容量を有効に使用できる情報記憶システムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、複数のネットワーク機器を有し、各ネットワーク機器が、自己が動作するために必要な動作設定情報を他のネットワーク機器に記憶させる情報記憶システムにおいて、前記複数のネットワーク機器のうちの一部又は全部のネットワーク機器は、他のネットワーク機器から送信された動作設定情報を記憶し、当該他のネットワーク機器の動作設定情報のバックアップメモリとして機能するバックアップ用記憶手段を有し、それぞれのネットワーク機器は、自己の動作設定情報を記憶する情報記憶手段と、前記他のネットワーク機器と通信回線を介して接続されて、当該他のネットワーク機器と通信を行う通信手段と、前記情報記憶手段に記憶された自己の動作設定情報を他のネットワーク機器のバックアップ用記憶手段に記憶させる記憶制御手段とを備え、上述の課題を解決するために、前記バックアップ用記憶手段を有するネットワーク機器は、前記通信手段を介して受信した他のネットワーク機器からの要求に従って、前記バックアップ用記憶手段に記憶させる動作設定情報を動的に変化させる。
【発明の効果】
【００１３】
本発明に係る情報記憶システムによれば、他のネットワーク機器からの要求に従って、バックアップ用記憶手段に記憶させる動作設定情報を動的に変化させるので、複数のネットワーク機器の動作設定情報の保持状態を最適化することができ、ネットワークにおけるデータロスに対する耐性を保持すると共に、システムを構成するネットワーク機器のメモリ容量が均一でない場合でもシステム全体のメモリ容量を有効に使用できる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態について図面を参照して説明する。
【００１５】
本発明は、システム全体における分散型共有メモリ１を利用して、複数のネットワーク機器に必要な情報を重複して記憶する動作を動的に変化させることによって、ネットワーク機器に必要な情報のデータロスを回避する分散記憶システムに適用される。
【００１６】
［分散記憶システムの基本的な構成例］
分散記憶システムは、例えば図１に示すように、汎用バスであるネットワークＮＷに複数のデバイスコントローラ（ネットワーク機器）Ｄ１〜Ｄ４（以下、総称する場合には、単に「デバイスコントローラＤｉ」と呼ぶ。）が接続された分散記憶システムに適用される。汎用バスであるネットワークＮＷは、例えば、ＩＰ（Internet Protocol）を使用したインターネット等が挙げられる。複数のデバイスコントローラＤ１〜Ｄ４は、それぞれ、Ｐ２Ｐ（Peer-to-peer）通信が可能となっており、相互で情報の授受が可能となっている。
【００１７】
各デバイスコントローラＤｉは、複数の末端デバイスがフィールドバスに接続されてなるサブネットワークが接続されている。デバイスコントローラＤ１〜Ｄ４は、フィールドバスに接続された複数の末端デバイスの制御、監視等をするための情報を格納した構成記述ファイルＣＦＧｉ（Ｃ１〜Ｃ４）が記憶されている。また、デバイスコントローラＤ１〜Ｄ４は、他のデバイスコントローラＤｉの構成記述ファイルＣＦＧｉを、それぞれ自己の分散型共有メモリ１−Ｄ１，１−Ｄ２，１−Ｄ３，１−Ｄ４に記憶している。この分散型共有メモリ１は、自己の構成記述ファイルＣＦＧｉを記憶する記憶手段とは別に設けられて、他のデバイスコントローラＤｉの構成記述ファイルＣＦＧｉのバックアップ用記憶手段として機能する。
【００１８】
図１に示す例では、デバイスコントローラＤ１の分散型共有メモリ１−Ｄ１は、他のデバイスコントローラＤｉの構成記述ファイルＣＦＧｉが３個分格納可能なメモリ容量（３スロット）となっており、デバイスコントローラＤ２の分散型共有メモリ１−Ｄ２は、他のデバイスコントローラＤｉの構成記述ファイルＣＦＧｉが２個分格納可能なメモリ容量（２スロット）となっており、デバイスコントローラＤ３の分散型共有メモリ１−Ｄ３は、他のデバイスコントローラＤｉの構成記述ファイルＣＦＧｉが３個分格納可能なメモリ容量（３スロット）となっており、デバイスコントローラＤ４の分散型共有メモリ１−Ｄ４は、他のデバイスコントローラＤｉの構成記述ファイルＣＦＧｉが格納できないメモリ容量（分散型共有メモリ１がない）状態となっている。分散型共有メモリ１−Ｄ１には、構成記述ファイルＣＦＧ２，ＣＦＧ３，ＣＦＧ４が記憶され、分散型共有メモリ１−Ｄ２には、構成記述ファイルＣＦＧ１，ＣＦＧ３が記憶され、分散型共有メモリ１−Ｄ３には、構成記述ファイルＣＦＧ１，ＣＦＧ２，ＣＦＧ４が記憶され、分散型共有メモリ１−Ｄ４には、構成記述ファイルＣＦＧｉが記憶されていない状態となっている。
【００１９】
したがって、この分散記憶システムは、それぞれのデバイスコントローラＤｉで異なる容量の分散型共有メモリ１を有していて、それぞれのデバイスコントローラＤｉは、他のデバイスコントローラＤｉや他のネットワーク機器からの要求に従って、自己の分散型共有メモリ１に記憶させる構成記述ファイルＣＦＧｉを動的に変化させる。
【００２０】
［分散記憶システムの基本的な動作］
この分散記憶システムは、図２に示すように、他のデバイスコントローラＤｉの構成記述ファイルＣＦＧｉが更新されたことに応じて自己に記憶させている分散型共有メモリ１を更新すると共に、図３に示すように、他のデバイスコントローラＤｉに自己の分散型共有メモリ１に記憶している構成記述ファイルＣＦＧｉを提供する機能を有する。
【００２１】
分散記憶システムにおいて、例えば作業者によって構成記述ファイルＣＦＧ４が更新された構成記述ファイルＣＦＧ４＋とされると、デバイスコントローラＤ４は、他のデバイスコントローラＤｉに記憶されている構成記述ファイルＣＦＧ４を構成記述ファイルＣＦＧ４＋に更新するファイル更新リクエストをネットワークＮＷにブロードキャストする。そして、構成記述ファイルＣＦＧ４を記憶しているデバイスコントローラＤ１、デバイスコントローラＤ３は、ファイル更新リクエストを受信すると、自己の分散型共有メモリ１−Ｄ１，１−Ｄ３に記憶された構成記述ファイルＣＦＧ４を、当該ファイル更新リクエストに添付された構成記述ファイルＣＦＧ４＋に更新する。また、デバイスコントローラＤ３は、構成記述ファイルＣＦＧ４を記憶していないので、ファイル更新リクエストを破棄する。
【００２２】
また、作業者によって、図３（ａ）に示すようにデバイスコントローラＤ４が新たなデバイスコントローラＤｉにハードウェア交換されて、図３（ｂ）に示すようにデバイスコントローラＤ４となるためのデバイスコントローラＩＤが付加されると、デバイスコントローラＤ４は、自己の構成記述ファイルＣＦＧｉを要求するために、デバイスコントローラＩＤを含むファイル転送リクエストをネットワークＮＷにブロードキャストする。
【００２３】
そして、図３（ｃ）に示すように、構成記述ファイルＣＦＧ４を記憶しているデバイスコントローラＤ１は、ファイル転送リクエストを受信すると、自己の分散型共有メモリ１−Ｄ１に記憶された構成記述ファイルＣＦＧ４をデバイスコントローラＤ４に返信する。これによって、デバイスコントローラＤ４は、フィールドバスの末端デバイスと通信するための構成記述ファイルＣＦＧ４を取得できる。ここで、デバイスコントローラＤｉ３は、現在記憶制御部１２を含む処理負荷が高いために、デバイスコントローラＤ４からのファイル転送リクエストをキャンセルしている。また、デバイスコントローラＤ３は、構成記述ファイルＣＦＧ４を記憶していないので、ファイル転送リクエストを破棄する。
【００２４】
このように分散記憶システムは、ネットワークＮＷに接続された他のデバイスコントローラＤｉの構成記述ファイルＣＦＧｉが更新された場合や、他のデバイスコントローラＤｉが交換されて構成記述ファイルＣＦＧｉを保持していない場合に、当該他のデバイスコントローラＤｉに自己が持っている構成記述ファイルＣＦＧｉが提供できるようになっている。したがって、この分散記憶システムは、以下に説明するように、それぞれのネットワーク機器のメモリ容量が異なる場合でも、互いに他のネットワーク機器の構成記述ファイルＣＦＧｉの記憶状態を動的に変化させて、各ネットワーク機器の構成記述ファイルＣＦＧｉのデータロスに対する耐性を保持することを特徴とするものである。
【００２５】
［分散記憶システムの構成要素］
このような分散記憶システムは、上述のように、フィールドバスに接続されて当該フィールドバスに接続された末端デバイスを制御するデバイスコントローラＤｉ間で分散型共有メモリ１を使用する場合のみならず、ネットワークＮＷに接続されたその他のネットワーク機器間でも分散型共有メモリ１を利用することができる。
【００２６】
図４に示すように、分散型共有メモリ１を構成するネットワーク機器の構成記述ファイルＣＦＧｉがＣ１〜Ｃ９の９個ある場合、それぞれのネットワーク機器の構成記述ファイルＣＦＧｉの複製数が異なるものとなる。この分散記憶システムは、複製数の最大値が３であり、自己の構成記述ファイルＣＦＧｉが他のネットワーク機器に３個バックアップされているネットワーク機器と、複製数が最小値の０であり、自己の構成記述ファイルＣＦＧｉが他のネットワーク機器にバックアップされていないネットワーク機器とが混在している。この分散記憶システムにおいて、構成記述ファイルＣＦＧｉの平均値は、１．５５となる。
【００２７】
これに対し、分散記憶システムは、ネットワークＮＷに接続されたネットワーク機器間で動的に分散型共有メモリ１の使用状況を変化させて、全てのネットワーク機器の構成記述ファイルＣＦＧｉが他のネットワーク機器にバックアップされている状況を保持する。
【００２８】
この分散記憶システムにおけるネットワーク機器のタイプとしては、図５に示すように、他の分散型共有メモリ１を利用して自己のファイルを記憶させるリクエスタＲｉと、自己の分散型共有メモリ１を他のネットワーク機器に提供するプロバイダＰｉとが存在する。そして、これらリクエスタＲｉとプロバイダＰｉとで分散型共有メモリ１を利用して構成記述ファイルＣＦＧｉのデータロスを回避する。図５に示す例では、分散型共有メモリ１を有しないネットワーク機器であるリクエスタＲａ，Ｒｂ，Ｒｃと、分散型共有メモリ１を他のネットワーク機器に提供するプロバイダＰ１，Ｐ２，Ｐ３，Ｐ４，Ｐ５とが存在する場合を示している。上述のデバイスコントローラＤｉは、分散型共有メモリ１を有するのでプロバイダＰｉに相当し、且つ、自己の構成記述ファイルＣＦＧｉを他のデバイスコントローラＤｉに記憶させる意味でリクエスタＲｉにも相当することになる。
【００２９】
この分散記憶システムは、図６に示すように、各プロバイダＰｉの共有メモリ提供機能によって定期的又はランダムにメモリ状態レポートを出力し、当該メモリ状態レポートをリクエスタＲｉによって受信する。そして、リクエスタＲｉは、プロバイダＰｉの分散型共有メモリ１のスロットに空きがあり、自己の構成記述ファイルＣＦＧｉをプロバイダＰｉにバックアップさせたい場合には、空きスロット取得リクエストをプロバイダＰｉに送信し、プロバイダＰｉからのレスポンスを得ることができる。
【００３０】
［プロバイダＰｉの構成例］
つぎに、本発明を適用した分散記憶システムにおけるプロバイダＰｉの一構成例について説明する。なお、このプロバイダＰｉは、上述のデバイスコントローラＤｉのようにフィールドバスが接続されて、当該フィールドバスに接続された末端デバイスを制御・監視するためのものである。
【００３１】
プロバイダＰｉは、図７及び図８に示すように構成される。図７に示すように、プロバイダＰｉには、機器埋め込み型ネットワーク技術（ＥＭＩＴ（Embedded Micro Internetworking Technology）、以下、ＥＭＩＴ技術と称する。）を利用して末端デバイスとプロバイダＰｉとが通信を行うフィールドバスＡと、末端デバイスとプロバイダＰｉとがパルス幅を変調するベースバンド伝送を行うことによって信号の送受信を実現する所定の多重伝送方式（エヌマスト方式）で通信を行うフィールドバスＢと、ＬＯＮ（Local Operating Network）と称される分散制御ネットワーク方式で通信を行うフィールドバスＣとが接続されている。なお、プロバイダＰｉには、上記のＥＭＩＴ技術、エヌマスト方式、ＬＯＮを利用する場合のみならず、あらゆる方式でフィールドバスが接続されていても良い。
【００３２】
なお、フィールドバスＡには、末端デバイスＡ０〜Ａ２、Ｓ３〜Ｓ７・・・といったように複数の末端デバイスが接続され、末端デバイスＳ３として人感センサを含んでいる。また、フィールドバスＢには、末端デバイスＳ０，Ｓ１、Ａ１，Ａ３，Ａ４・・・といったように複数の末端デバイスが接続され、末端デバイスＡ１として照明を含んでいる。更に、フィールドバスＣには、末端デバイスＡ０〜Ａ２、Ｓ３〜Ｓ５・・・といったように複数の末端デバイスが接続され、末端デバイスＳ２として温度センサを含んでいる。
【００３３】
プロバイダＰｉは、他のプロバイダＰｉやリクエスタＲｉとＰ２Ｐ通信をするネットワークＮＷと接続したＰ２Ｐ通信処理部１１と、記憶制御部１２と、上述の分散型共有メモリ１−Ｄ１，１−Ｄ２，１−Ｄ３，１−Ｄ４に相当する分散型共有メモリ１３と、構成記述情報ドライバ１４と、変数テーブル１５と、アプリケーション処理部１６と、フィールドバス監視・制御部１７と、自己に接続された複数のフィールドバスＡ，Ｂ，Ｃに対応したフィールドバスインターフェース１８Ａ，１８Ｂ，１８Ｃとを備える。
【００３４】
フィールドバスインターフェース１８Ａ，１８Ｂ，１８Ｃは、それぞれのフィールドバスＡ，Ｂ，Ｃに対応した方式で通信を行うように設定されている。例えば、ＥＭＩＴ技術を採用したフィールドバスインターフェース１８Ａ及び当該フィールドバスインターフェース１８Ａに接続された末端デバイスは、図９に示すように構成される。
【００３５】
フィールドバスＡ，Ｂ，Ｃ上の末端デバイスには、ＥＭＩＴミドルウェア間で各種末端デバイスのコントロールデータや末端デバイスの状態信号等を送受するＭＯＳ（Micro Object Server）機能部２１が実装され、フィールドバスインターフェース１８Ａには、ＥＭＩＴミドルウェア間におけるルーティング処理、末端デバイスの認識処理等を行うＯＡＳ（Object Access Server）機能部３１が実装され、末端デバイスを管理するユーザの端末（図示せず）には、制御対象の末端デバイスへの制御・監視リクエストを出力すると共に末端デバイスの状態表示等を行うＯＡＬ（Object Access Library）機能部（図示せず）が実装されている。なお、図９では、フィールドバスインターフェース１８Ａ，１８Ｂ，１８ＣにＯＡＳ機能部３１のみが実装されている場合について説明するが、ＯＡＬ機能部が実装されていても良い。
【００３６】
末端デバイスは、ＭＯＳ機能部２１に、アプリケーション処理部２２、インターフェースモジュール２３が接続されている。
【００３７】
アプリケーション処理部２２は、例えばセンサとして機能する場合に、検出値（Ｉ／Ｆ値）を取得するアプリケーションコードが記憶されており、検出値を保持してＭＯＳ機能部２１に受け渡す。
【００３８】
インターフェースモジュール２３は、ＯＳＩ（Open Systems Interconnection）参照モデルにおけるデータリンク層等の処理を行う。例えばデータリンク層においてイーサネット（登録商標）に従った処理を行う。このインターフェースモジュール２３の通信プロトコルバージョン、通信速度といった能力は、能力テーブル２４に格納されて、ＯＡＳ機能部３１によって取得可能となっている。
【００３９】
ＭＯＳ機能部２１は、アプリケーション処理部２２によるアプリケーション層とインターフェースモジュール２３によるトランスポート層との間のＥＭＩＴミドルウェアとして機能する。このＭＯＳ機能部２１には、フィールドバスインターフェース１８ＡのＯＡＳ機能部３１によって、末端デバイスがＥＭＩＴにおけるオブジェクトであることを識別するために、オブジェクトＩＤ２１ｄが与えられている。
【００４０】
ＭＯＳ機能部２１は、機能（function）２１ａ、イベント（event）２１ｂ、変数（variable）２１ｃで定義された動作を行う。このＭＯＳ機能部２１の動作は、サービステーブル２１ｅとして定義されており、フィールドバスインターフェース１８ＡのＯＡＳ機能部３１によって、インターフェースＩＤとして取得可能となっている。
【００４１】
末端デバイスがセンサである場合、機能２１ａは、検出値の出力機能となり、イベント２１ｂは、例えば検出値が所定値となったら検出値を出力するイベントとなり、変数２１ｃは、検出値そのものとなる。このような末端デバイスは、検出値が所定値となるとイベント２１ｂでイベントを発生させ、機能２１ａによって変数２１ｃの検出値を出力する。
【００４２】
フィールドバスインターフェース１８ＡのＯＡＳ機能部３１は、通信モジュール３２が接続されている。
【００４３】
ＯＡＳ機能部３１は、後述のフィールドバス監視・制御部１７と接続され、当該フィールドバス監視・制御部１７の制御に従ってフィールドバスＡの末端デバイスと通信を行う。フィールドバス監視・制御部１７は、ユーザ及び管理者がある末端デバイスを制御・監視する通信をしたい場合には、その旨の制御・監視リクエストが供給され、当該制御・監視リクエストに対するレスポンスを返信する。
【００４４】
通信モジュール３２は、末端デバイスのインターフェースモジュール２３との間で通信を行うと共に、他のＯＡＳ機能部３１が実装された装置の通信モジュール３２と通信を行う。この通信モジュール３２は、ＯＳＩ参照モデルにおけるデータリンク層等の処理を行う。個々の末端デバイスが様々なインターフェースモジュール２３で構成されている場合、通信モジュール３２は、デバイスアクセスコントローラ３１ｃの制御に従って、末端デバイスや他のＯＡＳ機能部３１を備えた装置ごとの通信プロトコルバージョン、通信速度といった末端デバイスの能力に応じた通信処理を行う。
【００４５】
ＯＡＳ機能部３１は、フィールドバス監視・制御部１７の処理と通信モジュール３２による処理との間のＥＭＩＴミドルウェアとして機能する。このＯＡＳ機能部３１は、デバイスアクセスサーバ３１ａ、所定のメモリに格納されたサービス情報３１ｂ、デバイスアクセスコントローラ３１ｃを備えて構成されている。
【００４６】
デバイスアクセスサーバ３１ａは、クライアント（ＯＡＬ）との間で通信を行うために、クライアントからのリクエストを通信モジュール３２及びフィールドバス監視・制御部１７、Ｐ２Ｐ通信処理部１１を介して受信する。そしてデバイスアクセスサーバ３１ａは、当該制御・監視リクエストをデバイスアクセスコントローラ３１ｃ及び通信モジュール３２を介して末端デバイスに送信する動作を制御する。これによって、デバイスアクセスコントローラ３１ｃは、クライアントからの要求を末端デバイスに伝達して、末端デバイスを制御する。
【００４７】
デバイスアクセスコントローラ３１ｃは、末端デバイスのインターフェース定義及びサービス情報を取得するために、通信モジュール３２を介して末端デバイスのサービステーブル２１ｅ及び能力テーブル２４を検索する。これによって、デバイスアクセスコントローラ３１ｃは、各末端デバイスがどのようなサービス（機能２１ａ、イベント２１ｂ、変数２１ｃ）を有するかを判断して、各末端デバイスのオブジェクトＩＤ２１ｄとサービスリストとの対応関係を示すサービス情報３１ｂを作成する。また、デバイスアクセスコントローラ３１ｃは、各末端デバイスがどのような能力（通信プロトコルバーション、通信速度）を有するかを認識する。
【００４８】
デバイスアクセスコントローラ３１ｃは、ＭＯＳ機能部２１でイベントのイベントパケットを通信モジュール３２で受信すると、デバイスアクセスコントローラ３１ｃによって当該イベントパケットを解析して、デバイスアクセスサーバ３１ａに通知する。また、クライアントからの制御・監視リクエストを末端デバイスに送信する場合には、当該制御・監視リクエストに応答できるＭＯＳ機能部２１を、サービス情報３１ｂを参照して認識する。そして、当該制御・監視リクエストに送信先のオブジェクトＩＤ２１ｄを付加し、末端デバイスの能力に合わせて通信モジュール３２から末端デバイスにパケットを送信させる。
【００４９】
また、ＯＡＳ機能部３１には、他のＥＭＩＴミドルウェア対応機器が当該ＯＡＳ機能部３１を識別するために、オブジェクトＩＤ３１ｄが与えられている。このオブジェクトＩＤ３１ｄは、末端デバイスのＭＯＳ機能部２１や、他のＯＡＬが実装されたクライアント（パーソナルコンピュータ）等のＥＭＩＴミドルウェア対応機器と通信するに際して、送信するパケットに格納される。
【００５０】
このようなＯＡＳ機能部３１を備えたフィールドバスインターフェース１８Ａ，１８Ｂ，１８Ｃは、図８に示すように、フィールドバスドライバ１８ａと、フィールドバスインターフェース部１８ｂとを備えて構成されている。
【００５１】
フィールドバスドライバ１８ａは、フィールドバス監視・制御部１７からのコントロールデータを受信すると、構成記述情報ドライバ１４からの構成記述情報を参照して、どの末端デバイスをどのように動作させるかを判定して、末端デバイスに向けてコマンドを送出する。また、フィールドバスインターフェース部１８ｂは、フィールドバスドライバ１８ａからコマンドを受け付けると、当該コマンドをフィールドバスＡ，Ｂ，Ｃに応じた信号に変換して、フィールドバスＡ，Ｂ，Ｃに送出する。
【００５２】
また、フィールドバスインターフェース部１８ｂは、フィールドバス監視・制御部１７に末端デバイスの状態変化、イベント発生を通知するモニタデータをフィールドバスＡ，Ｂ，Ｃから受信した場合には、当該モニタデータをフィールドバスドライバ１８ａに渡して、フィールドバス監視・制御部１７に送る。
【００５３】
フィールドバス監視・制御部１７は、変数テーブル１５を参照して、フィールドバスＡ，Ｂ，Ｃの制御を行う。この変数テーブル１５は、図１０に示すように、フィールドバスＡ，Ｂ，Ｃごとに、末端デバイス名、末端デバイス状態、変数タイプ、フィールドバスＩＤ、フィールドバス内アドレスが対応付けられて構成されている。そして、フィールドバス監視・制御部１７は、フィールドバスＡ，Ｂ，Ｃの末端デバイスを監視して、変数テーブル１５の内容を更新し、変数テーブル１５を参照してフィールドバスＡ，Ｂ，Ｃの末端デバイスにコントロールデータを送出する。
【００５４】
このフィールドバス監視・制御部１７は、図８に示すように、フィールドバス監視部１７Ａとフィールドバス制御部１７Ｂとに機能が分割して構成される。フィールドバス監視部１７Ａは、フィールドバスドライバ１８ａからモニタデータを受信すると、変数テーブル１５の内容を更新する。このとき、フィールドバス監視部１７Ａは、モニタデータに含まれる末端デバイスのオブジェクトＩＤによって末端デバイス名を認識して、当該末端デバイスの状態を書き換える。フィールドバス制御部１７Ｂは、アプリケーション処理部１６からコントロールデータを受信した場合、変数テーブル１５及び構成記述ファイルＣＦＧｉを参照してコントロールデータの送出先のフィールドバス及び末端デバイス等を判定して、フィールドバスドライバ１８ａに転送する。
【００５５】
アプリケーション処理部１６は、末端デバイスが実現するアプリケーション処理を制御する。このアプリケーション処理部１６は、変数テーブルを参照して、フィールドバス監視・制御部１７に制御・監視リクエストを与える。これによって、ネットワークＮＷを介してユーザから送信された監視リクエスト、制御リクエストに従って、末端デバイスを動作させる。
【００５６】
また、このアプリケーション処理部１６は、図８に示すように、末端デバイスにコントロールデータを送出するアプリケーション処理部１６Ａと、後述の図１２の連携テーブル１６Ｂと、自己の構成記述情報に従って連携テーブル１６Ｂを更新するアプリケーション更新部１６Ｃとして構成されていても良い。
【００５７】
構成記述情報ドライバ１４には、自己に接続されたフィールドバスＡ，Ｂ，Ｃを制御するための構成記述ファイルＣＦＧｉが格納されている。構成記述情報ドライバ１４は、図８に示すように、記憶制御部１２と接続され、自己の構成記述ファイルＣＦＧｉを記憶する構成記述ファイル記憶部１４ａを備える。構成記述情報ドライバ１４は、他のデバイスコントローラから複数の構成記述ファイルＣＦＧｉが送信された場合、構成記述ファイル記憶部１４ａの構成記述ファイルＣＦＧｉを、情報選択部１２Ｅで選択された構成記述ファイルＣＦＧｉに書き換える。また、構成記述情報ドライバ１４は、例えば、フィールドバスＡ，Ｂ，Ｃに新たな末端デバイスが接続された場合、フィールドバス監視部１７Ａによって新たな末端デバイスについての情報が変数テーブル１５に追加されたことがプロバイダＩＤ記憶部１９から通知されると、当該フィールドバスＡ，Ｂ，Ｃの変更を構成記述ファイルＣＦＧｉに反映させる。これによって、構成記述ファイルＣＦＧｉを常に最新のものに保持できる。
【００５８】
この構成記述ファイルＣＦＧｉに含まれる情報（構成記述情報）には、図１０に示ような自己に接続されているフィールドバスを定義するフィールドバステーブル、図１１の変数テーブル１５、図１２に示すような末端デバイス間で行う連携動作を定義する連携テーブル、図１３に示すようなその他のパラメータを格納したソフトウェアパラメータが含まれる。
【００５９】
図１０に示すフィールドバステーブルは、フィールドバスＡ，Ｂ，ＣそれぞれのフィールドバスＩＤ（ｆｂ０，ｆｂ１，ｆｂ２，・・・）と、フィールドバスＡ，Ｂ，Ｃで採用している方式（ＥＭＩＴ、エヌマスト、ロン）を定義するフィールドバス情報とが対応付けられている。このフィールドバステーブルは、フィールドバス監視・制御部１７に読み込まれて、自己に接続されたフィールドバスＡ，Ｂ，Ｃを特定するために参照される。
【００６０】
図１１に示す変数テーブル１５は、上述したように構成され、フィールドバス監視・制御部１７及びアプリケーション処理部１６によって、自己に接続された末端デバイスの状態等を特定するために参照される。この変数テーブル１５は、図８に示す変数テーブル更新部１５Ａによって、構成記述情報を参照して更新される。
【００６１】
図１２に示す連携テーブルは、連携動作を開始するトリガとなる末端デバイスのイベントを定義した連携発生イベント情報と、当該連携発生イベントが発生した場合に応答する末端デバイスを定義した連携応答デバイス情報と、当該連携応答デバイスが動作した結果を定義する連携結果情報とが対応付けられている。この連携テーブルは、イベント発生をフィールドバスインターフェース１８Ａ，１８Ｂ，１８Ｃを介してフィールドバス監視・制御部１７で検知した時に、アプリケーション処理部１６によって参照される。そして、アプリケーション処理部１６は、連携テーブルに該当するイベントが発生したと判定した場合には、連携応答デバイスが連携結果を満たすように動作させる。なお、この連携テーブルは、図３に示すように、アプリケーション処理部１６の一部の機能（連携テーブル１６Ｂ）として構成されていても良い。
【００６２】
図１３に示すソフトウェアパラメータには、パラメータとして記憶しておく情報の種類と、パラメータ種類情報と、パラメータ値とが対応付けられて格納されている。本例では、分散型共有メモリ１３のサイズ、自己の構成記述ファイルＣＦＧｉの容量、末端デバイスの制御回数をパラメータとして記憶している。また、このソフトウェアパラメータとしては、フィールドバスインターフェース１８Ａ，１８Ｂ，１８Ｃで使用するパラメータ、アプリケーション処理部１６で使用するパラメータ、記憶制御部１２で使用するパラメータ、Ｐ２Ｐ通信処理部１１で使用するパラメータ等も含む。
【００６３】
例えば分散型共有メモリ１３のサイズは、記憶制御部１２によって参照されて、リクエスタＲｉ、他のプロバイダＰｉの構成記述ファイルＣＦＧｉが格納できるか否かが判定され、自己の構成記述ファイルＣＦＧｉの容量は、リクエスタＲｉ、他のプロバイダＰｉに自己の構成記述ファイルＣＦＧｉが格納できるか否かが判定される。なお、この分散型共有メモリ１のサイズは、バイト単位ではなく、構成記述ファイルＣＦＧｉの記憶可能個数を表すスロットで記述されていても良い。
【００６４】
記憶制御部１２は、ネットワークＮＷの全体における分散型共有メモリ１を利用して、他のプロバイダＰｉの分散型共有メモリ１３に自己の構成記述ファイルＣＦＧｉをバックアップさせる処理と、リクエスタＲｉ、他のプロバイダＰｉの構成記述ファイルＣＦＧｉを自己の分散型共有メモリ１３にバックアップする処理とを行う。記憶制御部１２は、自己の構成記述ファイルＣＦＧｉを他のプロバイダＰｉにバックアップさせる場合、構成記述情報ドライバ１４に記憶された自己の構成記述ファイルＣＦＧｉを読み出して、Ｐ２Ｐ通信処理部１１から他のプロバイダＰｉに送信させる。また、記憶制御部１２は、リクエスタＲｉ、他のプロバイダＰｉからバックアップリクエストをＰ２Ｐ通信処理部１１を介して受け付けて、分散型共有メモリ１３にリクエスタＲｉ、他のプロバイダＰｉの構成記述ファイルＣＦＧｉを格納する。
【００６５】
また、図４に示すように、プロバイダＰｉは、作業者の操作パネルへの操作やディップスイッチへの動作などによって、デバイスコントローラＩＤが与えられる。このデバイスコントローラＩＤは、プロバイダＩＤ記憶部１９に格納される。
【００６６】
このようなプロバイダＰｉは、図８に示すように、記憶制御部１２として、情報受信部１２Ａ、情報更新部１２Ｂ、情報要求部１２Ｃ、構成記述情報メモリ１２Ｄ、情報選択部１２Ｅを備えている。
【００６７】
情報要求部１２Ｃは、構成記述ファイル記憶部１４ａ内のソフトウェアパラメータから自己の構成記述ファイルＣＦＧｉがないことを検知した場合には、デバイスコントローラＩＤを含むファイル転送リクエストをＰ２Ｐ通信処理部１１から送信させる。このファイル転送リクエストを送信したことに応じて、他のプロバイダＰｉから一又は複数個の構成記述ファイルＣＦＧｉをＰ２Ｐ通信処理部１１で受信すると、当該構成記述ファイルＣＦＧｉを情報受信部１２Ａで受信する。情報受信部１２Ａは、複数個の構成記述ファイルＣＦＧｉを構成記述情報メモリ１２Ｄに蓄積すると、情報選択部１２Ｅは、構成記述情報メモリ１２Ｄに投票された形で格納された複数個の構成記述ファイルＣＦＧｉのうち、最新且つ改悪されていない構成記述ファイルＣＦＧｉを選択して、構成記述情報ドライバ１４で使用可能とする。これによって、構成記述情報ドライバ１４は、構成記述ファイル記憶部１４ａに格納された構成記述ファイルＣＦＧｉを最新のものとする。
【００６８】
また、記憶制御部１２は、例えばフィールドバスＡ，Ｂ，Ｃの構成が変化した場合や、古い構成記述ファイルＣＦＧｉを記憶しているプロバイダＰｉが検知された場合に、当該構成記述ファイルＣＦＧｉを更新する必要がある。このとき、記憶制御部１２は、情報更新部１２Ｂによって、構成記述ファイルＣＦＧｉの更新が必要であることを、構成記述ファイル記憶部１４ａのソフトウェアパラメータから検知する。そして、情報更新部１２Ｂは、自己の構成記述ファイルＣＦＧｉを更新するファイル更新リクエストにデバイスＩＤを含めて、Ｐ２Ｐ通信処理部１１からブロードキャストさせる。
【００６９】
更に、記憶制御部１２は、リクエスタＲｉ、他のプロバイダＰｉから構成記述ファイルＣＦＧｉを情報受信部１２Ａで受信した場合、当該リクエスタＲｉ、他のプロバイダＰｉの構成記述ファイルＣＦＧｉを分散型共有メモリ１３に記憶させる。また、記憶制御部１２は、リクエスタＲｉ、他のプロバイダＰｉから当該プロバイダＰｉの空きスロット取得リクエストを受信した場合には、情報受信部１２Ａによって、当該空きスロット取得リクエストに含まれるデバイスＩＤに該当する構成記述ファイルＣＦＧｉを読み出して、送信する。
【００７０】
［分散記憶システムの機能］
上述したようなプロバイダＰｉ及びリクエスタＲｉを備えた分散記憶システムは、図１４に示すように、リクエスタＲｉに実装された分散型共有メモリ監視機能４１及び記憶制御機能４２と、プロバイダＰｉに実装された共有メモリ提供機能４３とを有する。
【００７１】
分散型共有メモリ監視機能４１は、各リクエスタＲｉに備えられた機能であり、プロバイダＰｉのメモリ状態レポート出力機能部４３ｃでブロードキャストされたメモリ状態レポートＳ１を受信して、分散型共有メモリ１の状態と自己のファイルバックアップ状態とを監視する能動型監視部４１ａを有する。
【００７２】
図１５に示すように、メモリ状態レポートＳ１には、プロバイダＰｉのデバイスＩＤ（以下、プロバイダＩＤと呼ぶ。）と、当該プロバイダＰｉの分散型共有メモリ１３の全スロットのうちの保有スロット数（構成記述ファイルＣＦＧｉの記憶数）と、当該保有スロット数をどのリクエスタＲｉのために割り当てているかを示すスロット割当情報とを含み、能動型監視部４１ａで受信される。
【００７３】
メモリ状態レポートＳ１を受信すると、能動型監視部４１ａは、分散型共有メモリ１の状態を表す情報と、自己のファイルバックアップ状態を表す情報を作成して、記憶制御機能４２に渡す。
【００７４】
能動型監視部４１ａは、分散型共有メモリ１の状態を表す情報として、各プロバイダＰｉがどのリクエスタＲｉの構成記述ファイルＣＦＧｉを格納しているかを示すアロケーションテーブル、自己が接続されているプロバイダＰｉのテーブル、プロバイダＰｉの総スロット数、リクエスタＲｉの総数、プロバイダＰｉの総数、最も複製数が多い構成記述ファイルＣＦＧｉで動作するリクエスタＲｉのＩＤ、構成記述ファイルＣＦＧｉの平均複製数を含む。また、自己のファイルバックアップ状態を表す情報として、自己の構成記述ファイルＣＦＧｉを記憶しているバックアッププロバイダＰｉのＩＤ、現在の分散記憶システム全体における自己の構成記述ファイルＣＦＧｉの複製数、望ましい要求複製数、分散型共有メモリ１３に空きがあるメモリ利用可能なプロバイダＰｉの数、要求複製数をメモリ可能なプロバイダＰｉの数で除算したヒットレートとを含む。
【００７５】
記憶制御機能４２は、構成記述ファイル記憶部１４ａに相当する構成記述情報記憶部４２ａと、共有メモリ状態ファイル４２ｂと、バックアップ状態ファイル４２ｃと、メモリ状態検知機能部４２ｄと、空きスロット質問機能部４２ｅと、空きスロット取得機能部４２ｆと、複製数警告機能部４２ｇと、スロット再割当機能部４２ｈとを備える。
【００７６】
記憶制御機能４２は、能動型監視部４１ａからの分散型共有メモリ監視機能４１で作成された分散型共有メモリ１の状態を表す情報とバックアップ状態を表す情報とがメモリ状態検知機能部４２ｄに渡されると、共有メモリ状態ファイル４２ｂ及びバックアップ状態ファイル４２ｃを作成し、空きスロット質問機能部４２ｅ及び空きスロット取得機能部４２ｆから参照可能とする。
【００７７】
空きスロット質問機能部４２ｅは、自己の構成記述ファイルＣＦＧｉをプロバイダＰｉに記憶させたい場合に、ネットワークＮＷに空きスロット通知リクエストＳ２をブロードキャストし、当該空きスロット通知リクエストＳ２に対する空きスロット通知レスポンスＳ３を受信する。この空きスロット通知リクエストＳ２には、図１５に示すように、自己のデバイスＩＤ（以下、リクエスタＲｉのデバイスＩＤをリクエスタＩＤと呼ぶ。）と、バックアップ状態ファイル４２ｃに格納されているヒットレートとを含む。
【００７８】
この空きスロット通知リクエストＳ２は、プロバイダＰｉに実装された共有メモリ提供機能４３で受信される。共有メモリ提供機能４３は、受信した空きスロット通知リクエストＳ２に対して、要求管理機能４３ａによって自己の分散型共有メモリ１３に相当する分散型共有メモリ４３ｂを参照して、空きスロットを検索して空きスロットがある場合に、自己のプロバイダＩＤを含む空きスロット通知レスポンスＳ３をネットワークＮＷにブロードキャストする。
【００７９】
このスロット通知レスポンスＳ３を記憶制御機能４２の空きスロット質問機能部４２ｅで受信すると、空きスロット質問機能部４２ｅは、当該スロット通知レスポンスＳ３に含まれるプロバイダＩＤを空きスロット取得機能部４２ｆに通知する。空きスロット取得機能部４２ｆは、図１５に示すように、コマンド、空きスロットがあるプロバイダＩＤ、当該プロバイダＩＤを含むプロバイダリスト、自己の構成記述ファイルＣＦＧｉを含む空きスロット取得リクエストＳ４をネットワークＮＷにブロードキャストする。
【００８０】
また、空きスロット質問機能部４２ｅは、スロット通知レスポンスＳ３をスロット再割当機能部４２ｈに通知して、空きスロット取得機能部４２ｆによってスロット再割当リクエストＳ５をネットワークＮＷにブロードキャストさせる。このスロット再割当リクエストＳ５は、図１５に示すように、コマンド、プロバイダリスト、当該プロバイダリストに含まれるプロバイダＰｉが使用スロットに格納していた構成記述ファイルＣＦＧｉのリクエスタＩＤ、当該使用スロットに格納する新規（自己）のリクエスタＩＤ、新規（自己）の構成記述ファイルＣＦＧｉを含む。
【００８１】
プロバイダＰｉの共有メモリ提供機能４３は、空きスロット取得リクエストＳ４を要求管理機能４３ａで受信すると、当該空きスロット取得リクエストＳ４に含まれる構成記述ファイルＣＦＧｉを分散型共有メモリ４３ｂに格納する。また、要求管理機能４３ａは、空きスロット取得リクエストＳ４又はスロット再割当リクエストＳ５を受信したことによって分散型共有メモリ４３ｂのメモリ状態が変化すると、分散型共有メモリ４３ｂに格納して変化したスロット割当状態を含むメモリ状態レポートＳ１を作成して、メモリ状態レポート出力機能部４３ｃからブロードキャストする。これによって、スロット割当状態が変化したことを表すメモリ状態レポートＳ１を能動型監視部４１ａで受信すると、共有メモリ状態ファイル４２ｂ及びバックアップ状態ファイル４２ｃが更新される。
【００８２】
また、記憶制御機能４２は、空きスロット質問機能部４２ｅからスロット通知レスポンスＳ３が通知されて、自己の構成記述ファイルＣＦＧｉが分散記憶システム内に１個も複製されていないことを複製数警告機能部４２ｇで検知する。このような構成記述ファイルＣＦＧｉが複製されていない場合は、その旨が能動型監視部４１ａに通知されて、バックアップ状態ファイル４２ｃの現在の複製数が「０」に更新される。
【００８３】
［分散記憶システムの処理手順］
このような機能を有する分散記憶システムにおいて、分散型共有メモリ監視機能４１及び記憶制御機能４２の動作手順について、図１６及び図１７を参照して説明する。
【００８４】
リクエスタＲｉの分散型共有メモリ監視機能４１は、先ず、図１６に示すステップＳＴ１〜ステップＳＴ８の処理を行って、自己の構成記述ファイルＣＦＧｉが他のプロバイダＰｉにどの程度複製されているかを整理するために、共有メモリ状態ファイル４２ｂ及びバックアップ状態ファイル４２ｃの更新を行い、次のステップＳＴ９における記憶制御処理によって、図１７に示すステップＳＴ１１〜ステップＳＴ２４の処理を行う。
【００８５】
図１６のステップＳＴ１において、能動型監視部４１ａは、共有メモリ状態ファイル４２ｂ及びバックアップ状態ファイル４２ｃをリセットし、ステップＳＴ２において、ネットワークＮＷから配信されるメモリ状態レポートＳ１を検出し、ステップＳＴ３において、当該メモリ状態レポートＳ１が検出できたか否かを判定する。メモリ状態レポートＳ１が検出できた場合、ステップＳＴ４に処理を進めて、共有メモリ状態ファイル４２ｂのアロケーションテーブルを更新する。このステップＳＴ２は、確実に毎回送信されるメモリ状態レポートＳ１を受信するために、メモリ状態レポートＳ１を送信する所定期間の２倍の時間単位で行われる。
【００８６】
このアロケーションテーブルには、各プロバイダＩＤと、当該プロバイダＩＤのプロバイダＰｉに記憶されている構成記述ファイルＣＦＧｉがどのデバイス（プロバイダＰｉ、リクエスタＲｉ）の構成記述ファイルＣＦＧｉかを示すテーブルである。そして、能動型監視部４１ａは、ステップＳＴ８において、共有メモリ状態ファイル４２ｂを更新して、ステップＳＴ９の記憶制御機能４２における記憶制御処理に処理を進める。
【００８７】
一方、メモリ状態レポートＳ１を受信していない場合、能動型監視部４１ａは、ステップＳＴ５において所定時間の待ち状態となり、メモリ状態レポートＳ１を受信していない時間が所定時間を経過した場合にステップＳＴ６に処理を進める。この所定時間は、少なくとも分散記憶システムにおいてメモリ状態レポートＳ１を送信する所定間隔の２倍の時間が設けられる。
【００８８】
ステップＳＴ６において、能動型監視部４１ａは、共有メモリ状態ファイル４２ｂに含まれるアロケーションテーブルを参照して、分散記憶システムを構成するプロバイダＩＤ及びリクエスタＩＤを含むデバイステーブル、分散記憶システムの総スロット数、総リクエスタ数、総プロバイダ数、最大複製数保有リクエスタ（リクエスタＩＤ）、平均複製数（スロット数／リクエスタ数とリクエスタ数−１との小さい方の値）、バックアッププロバイダ数、現在の複製数、メモリ利用可能プロバイダ数を計算する。
【００８９】
次に、能動型監視部４１ａは、ステップＳＴ６で計算したパラメータに従って、バックアップ状態ファイル４２ｃをステップＳＴ７で更新すると共に、共有メモリ状態ファイル４２ｂをステップＳＴ８で更新して、ステップＳＴ９の記憶制御処理に移行する。
【００９０】
記憶制御処理は、図１７に示すように、先ず、ステップＳＴ１１において、メモリ状態検知機能部４２ｄにより、バックアップ状態ファイル４２ｃに含まれる現在の自己の構成記述ファイルＣＦＧｉの複製数が、共有メモリ状態ファイル４２ｂに含まれる平均複製数以上か否かを判定する。そして、自己の構成記述ファイルＣＦＧｉの複製数が平均複製数以上である場合には、自己の構成記述ファイルＣＦＧｉの複製数が多くデータロスの恐れがないので、処理を図１６のステップＳＴ１に戻す。
【００９１】
一方、自己の構成記述ファイルＣＦＧｉの複製数が平均複製数以上ではないと判定した場合には、ステップＳＴ１２において、メモリ状態検知機能部４２ｄにより、バックアップ状態ファイル４２ｃのメモリ利用可能プロバイダ数が０か否かを判定する。そして、メモリ利用可能プロバイダ数が０であると判定した場合にはステップＳＴ２１に処理を進め、０ではないと判定した場合には、ステップＳＴ１３に処理を進める。
【００９２】
ステップＳＴ１３において、メモリ状態検知機能部４２ｄは、平均複製数から現在の自己の構成記述ファイルＣＦＧｉの複製数を減算して、分散記憶システムにおいて自己の構成記述ファイルＣＦＧｉを追加する必要がある複製数である要求複製数を算出して、ステップＳＴ１４に処理を進める。
【００９３】
ステップＳＴ１４において、空きスロット質問機能部４２ｅは、空きスロット通知リクエストＳ２をネットワークＮＷに配信する。このとき、空きスロット質問機能部４２ｅは、空きスロット通知リクエストＳ２に、自己のリクエスタＲｉ、要求複製数をメモリ利用可能プロバイダ数で除算したヒットレートを含める。そして、空きスロット通知リクエストＳ２は、分散記憶システムの全プロバイダＰｉで受信されて、共有メモリ提供機能４３の要求管理機能４３ａは、自己の分散型共有メモリ４３ｂを参照して、空きスロットがある場合に自己のプロバイダＩＤを含む空きスロット通知レスポンスＳ３をネットワークＮＷにブロードキャストする。
【００９４】
次のステップＳＴ１５において、空きスロット通知レスポンスＳ３をリクエスタＲｉの空きスロット質問機能部４２ｅで受信したかを判定し、空きスロット質問機能部４２ｅは、スロット通知レスポンスＳ３を受信できなかった場合には、ステップＳＴ１６において分散記憶システムにおける空きスロットがないと判定する。また、空きスロット質問機能部４２ｅは、スロット通知レスポンスＳ３を受信して、分散記憶システムの空きスロット数が０より多く且つ要求複製数よりも少ない場合にはステップＳＴ１７に処理を進め、要求複製数よりも空きスロット数が多い場合にはステップＳＴ１８に処理を進める。
【００９５】
空きスロット質問機能部４２ｅによって空きスロット数が０より多く且つ要求複製数よりも少ないと判定された場合、その旨が空きスロット取得機能部４２ｆに通知されて、ステップＳＴ１９において、空きスロット取得機能部４２ｆによって空きスロット取得リクエストＳ４をネットワークＮＷに配信して、ステップＳＴ１１に処理を戻す。この空きスロット取得リクエストＳ４には、スロット通知レスポンスＳ３によって空きスロット数があるとブロードキャストしたプロバイダＩＤのリストと、自己のプロバイダＩＤと、構成記述ファイルＣＦＧｉとを含む。このプロバイダＩＤのリストは、空きスロットのリストを含む。
【００９６】
これによって、空きスロット取得リクエストＳ４を、プロバイダＰｉの共有メモリ提供機能４３の要求管理機能４３ａで受信すると、空きスロット取得リクエストＳ４に含まれる構成記述ファイルＣＦＧｉを分散型共有メモリ４３ｂに格納する。また、プロバイダＰｉの共有メモリ提供機能４３は、新たな構成記述ファイルＣＦＧｉを分散型共有メモリ４３ｂに格納したことによって発生したメモリ状態の変化を、次にメモリ状態レポート出力機能部４３ｃで送信するメモリ状態レポートＳ１に反映させる。
【００９７】
また、ステップＳＴ１８において空きスロット数が要求複製数よりも多いと判定した後のステップＳＴ２０において、空きスロット取得機能部４２ｆは、自己の要求複製数と空きスロットのリストと自己のプロバイダＩＤと構成記述ファイルＣＦＧｉとを含む空きスロット取得リクエストＳ４をネットワークＮＷにブロードキャストする。これによって、要求複製数を満たす数の構成記述ファイルＣＦＧｉが複製されて分散記憶システムに記憶されることになる。
【００９８】
更に、ステップＳＴ１６において空きスロット数が０であると判定した後のステップＳＴ２１において、空きスロット質問機能部４２ｅは、共有メモリ状態ファイル４２ｂの最大複製数保有リクエスタの複製数が、１よりも多いか否かを判定する。そして、最大複製数保有リクエスタの複製数が１より多いと判定した場合には、ステップＳＴ２２において、その旨をスロット再割当機能部４２ｈに通知し、空きスロット取得機能部４２ｆによって、スロット再割当リクエストＳ５をネットワークＮＷにブロードキャストする。このスロット再割当リクエストＳ５には、最大複製数保有リクエスタの構成記述ファイルＣＦＧｉが複製されているプロバイダＰｉのスロットを指定するリストと、最大複製数保有リクエスタのＩＤと、最大複製数保有リクエスタに代えてスロットを新規に使用する自己のデバイスＩＤである新規のリクエスタＩＤと、自己の構成記述ファイルＣＦＧｉとを含む。
【００９９】
一方、最大複製数保有リクエスタの複製数が１より多くない場合には、ステップＳＴ２３において、自己の構成記述ファイルＣＦＧｉの現在の複製数が０か否かを判定し、そうではないと判定した場合には処理をステップＳＴ１１に戻し、自己の構成記述ファイルＣＦＧｉの複製数が０である場合には、ステップＳＴ２４に処理を進める。
【０１００】
ステップＳＴ２４において、空きスロット質問機能部４２ｅは、自己の構成記述ファイルＣＦＧｉの複製数が０であることを複製数警告機能部４２ｇに通知し、複製数警告機能部４２ｇは、その旨を含む警告メッセージを能動型監視部４１ａに通知する。
【０１０１】
［分散記憶システムのメモリ状態最適化動作］
このように、分散型共有メモリ監視機能４１、記憶制御機能４２及び共有メモリ提供機能４３において動的に構成記述ファイルＣＦＧｉのメモリ状態を最適化させる分散記憶システムにおける動作について図１８乃至図２８を参照して説明する。
【０１０２】
例えば図１８（ａ）に示すように、分散記憶システムが３台のリクエスタＲｉ、５台のプロバイダＰｉで構成されていて、図１８（ｂ）に示すように何れの構成記述ファイルＣＦＧｉも他の分散型共有メモリ４３ｂに記憶されていない状態では、図１９に示すように、分散型共有メモリ監視機能４１、記憶制御機能４２及び共有メモリ提供機能４３が動作する。すなわち、プロバイダＰｉ、リクエスタＲｉのメモリ状態レポート出力機能部４３ｃは、自己のデバイスＩＤ（Ｒａ，Ｒｂ，Ｒｃ，Ｐ１，Ｐ２，Ｐ３，Ｐ４，Ｐ５）と、保有スロット数（Ｒａ：０，Ｒｂ：０，Ｒｃ：０，Ｐ１：４，Ｐ２：２，Ｐ３：５，Ｐ４：３，Ｐ５：８）と、空きスロット数（Ｒａ：０，Ｒｂ：０，Ｒｃ：０，Ｐ１：４，Ｐ２：２，Ｐ３：５，Ｐ４：３，Ｐ５：８）とを通知するメモリ状態レポートＳ１を配信する。
【０１０３】
また、各プロバイダＰｉ、リクエスタＲｉは、他のプロバイダＰｉ、リクエスタＲｉからのメモリ状態レポートＳ１を能動型監視部４１ａで受信して、総スロット数［ａ］が２２（４＋２＋５＋３＋８）、総リクエスタ数［ｂ］が８、総プロバイダ数［ｃ］が５、最大複製数保有リクエスタ［ｄ］が無し、平均複製数［ｅ］（ｍｉｎ（［ａ］／［ｂ］，［ｃ］−１）が２（ｍｉｎ（２２／８，５−１）＝２）であることを示す共有メモリ状態ファイル４２ｂを作成し、現在の複製数［ｆ］、要求複製数［ｇ］（［ｅ］−［ｆ］）、メモリ利用可能プロバイダ数［ｈ］を含むバックアップ状態ファイル４２ｃを作成している。
【０１０４】
このような状態で、リクエスタＲｉの記憶制御機能４２は、ヒットレート（［ｇ］／［ｈ］）を算出し、空きスロット通知リクエストＳ２をブロードキャストしたことに応じてスロット通知レスポンスＳ３を受信する。この空きスロット通知リクエストＳ２によって、リクエスタＲｉは、それぞれ異なるプロバイダＰｉからのスロット通知レスポンスＳ３を受信する。ここで、プロバイダＰ５は、空きスロット通知リクエストＳ２をブロードキャストしても何れのプロバイダＰｉからもスロット通知レスポンスＳ３を受信できていないが、次の機会で再度空きスロット通知リクエストＳ２をブロードキャストすることになる。
【０１０５】
そして、スロット通知レスポンスＳ３を受信したリクエスタＲｉは、スロット通知レスポンスＳ３に含まれるプロバイダＩＤに空きスロット取得リクエストＳ４をブロードキャストする。これによって、図２０（ａ）に示すように、プロバイダＰ１〜Ｐ５には、他のプロバイダＰｉ、リクエスタＲｉの構成記述ファイルＣＦＧｉが記憶されて、図２０（ｂ）に示すような分散記憶システムにおける複製数となる。
【０１０６】
このような状態で、各プロバイダＰｉ、リクエスタＲｉからメモリ状態レポートＳ１が配信されると、図２１に示すように、各プロバイダＰｉ、リクエスタＲｉの能動型監視部４１ａによってプロバイダＰｉの空きスロット数が変化し、スロット割当状態、最大複製数保有リクエスタ、平均複製数、現在の自己の複製数、要求複製数が更新される。また、この時点では、平均複製数よりも現在の複製数が少ないリクエスタＲｉ、プロバイダＰｉ（Ｒｃ，Ｐ４，Ｐ５）においては、メモリ利用可能プロバイダ数、ヒットレートがそれぞれ算出されて、空きスロット通知リクエストＳ２をブロードキャストし、更に、空きスロット取得リクエストＳ４をブロードキャストして、自己の複製数を増加させる動作を行う。ここで、リクエスタＲｃは、空きスロット通知リクエストＳ２をブロードキャストしても何れのプロバイダＰｉからもスロット通知レスポンスＳ３を受信できていないが、次の機会で再度空きスロット通知リクエストＳ２をブロードキャストすることになる。
【０１０７】
これによって、図２２（ａ）に示すように、プロバイダＰ１，Ｐ３，Ｐ５には、他のリクエスタＲｉ、プロバイダＰｉの構成記述ファイルＣＦＧｉが記憶されて、図２２（ｂ）に示すように、プロバイダＰ４の構成記述ファイルＣＦＧｉの複製数を１だけ増加させることができ、プロバイダＰ５の構成記述ファイルＣＦＧｉの複製数を２だけ増加させることができる。
【０１０８】
このような状態では、図２３に示すように、リクエスタＲｃにおいて、要求複製数よりも現在の複製数が少なく、要求複製数、メモリ利用可能プロバイダ数、ヒットレートが算出され、空きスロット通知リクエストＳ２をブロードキャストしてスロット通知レスポンスＳ３の返信を受け、空きスロット取得リクエストＳ４をブロードキャストする。これによって、図２４（ａ）に示すように、リクエスタＲｃの構成記述ファイルＣＦＧｉは、プロバイダＰ５に記憶されて、図２４（ｂ）に示すように、リクエスタＲｃの構成記述ファイルＣＦＧｉの複製数を１だけ増加させることができる。
【０１０９】
この時点では、図２５に示すように、全プロバイダＰｉ、リクエスタＲｉの構成記述ファイルＣＦＧｉの複製数が平均複製数と同じ値となり、分散記憶システム全体における分散型共有メモリ４３ｂが最適化された状態となる。したがって、全プロバイダＰｉ、リクエスタＲｉにおいて要求複製数が「０」となり、何れのプロバイダＰｉ、リクエスタＲｉからも空きスロット通知リクエストＳ２及び空きスロット取得リクエストＳ４がブロードキャストされない状態となる。
【０１１０】
このように、分散記憶システムを構成する各プロバイダＰｉ、リクエスタＲｉに分散型共有メモリ監視機能４１，記憶制御機能４２及び共有メモリ提供機能４３を備えて、図１６及び図１７に示す処理を実行することによって、各プロバイダＰｉ、リクエスタＲｉの構成記述ファイルＣＦＧｉの複製数を同一にしてバックアップを行い、全プロバイダＰｉ、リクエスタＲｉの構成記述ファイルＣＦＧｉのデータロスの可能性を低減できる。
【０１１１】
また、例えば図２６（ａ）に示すように、ネットワークＮＷにリクエスタＲｃが接続されているが、プロバイダＰｉには空きスロットがなく、図２６（ｂ）に示すように、当該リクエスタＲｃの構成記述ファイルＣＦＧｉが何れのプロバイダＰｉにも記憶されていない場合には、分散記憶システムにおいてスロットの再割当を行う。また、この場合には、複製数警告機能部４２ｇから能動型監視部４１ａに警告メッセージが発行される。
【０１１２】
この場合、リクエスタＲｃは、平均複製数が「１」となるので要求複製数が「１」となり、空きスロット通知リクエストＳ２をブロードキャストしてスロット通知レスポンスＳ３を受信できても、メモリ利用可能プロバイダ数が「０」となる。したがって、リクエスタＲｃは、空きスロット取得機能部４２ｆによってスロット再割当リクエストＳ５をブロードキャストする。このとき、リクエスタＲｃは、スロット再割当リクエストＳ５に、プロバイダＩＤ（Ｐ１）と、プロバイダＰ１に記憶されている構成記述ファイルＣＦＧｉのデバイスＩＤ（Ｒａ）と、自己のデバイスＩＤ（Ｒｃ）と構成記述ファイルＣＦＧｉを含める。
【０１１３】
このスロット再割当リクエストＳ５はプロバイダＰ１で受信され、プロバイダＰ１は、図２８（ａ）に示すように、スロット再割当リクエストＳ５に含まれる前リクエスタＩＤの構成記述ファイルＣＦＧｉを削除し、これに代えて、リクエスタＲｃの構成記述ファイルＣＦＧｉを格納する。これによって、図２８（ｂ）に示すように、リクエスタＲｃの構成記述ファイルＣＦＧｉの複製数が分散記憶システムの平均複製数と同一とすることができる。
【０１１４】
このように、本発明を適用した分散記憶システムによれば、ネットワークＮＷに接続されたプロバイダＰｉのメモリ容量がそれぞれ異なる場合であっても、全てのプロバイダＰｉ、リクエスタＲｉが平均複製数を満たすように構成記述ファイルＣＦＧｉの複製数を調整できる。また、メモリ容量が小さくても全プロバイダＰｉ、リクエスタＲｉで均一のバックアップ容量を有する必要がないので、分散記憶システム全体の分散型共有メモリ４３ｂを有効に利用でき、データロスに対する耐性を保持することができる。
【０１１５】
また、この分散記憶システムは、全てのプロバイダＰｉ、リクエスタＲｉが平均複製数を満たすように動的に複製数を変化させたが、動的に複製数を変化させる他の形態としては、ネットワークＮＷにおいて重要な構成記述ファイルＣＦＧｉの複製数を少なくしないことが望ましい。したがって、全てのプロバイダＰｉ、リクエスタＲｉは、自己の構成記述ファイルＣＦＧｉ及び他のネットワーク機器の構成記述ファイルＣＦＧｉの重要度を予め設定しておき、複数のネットワーク機器の構成記述ファイルＣＦＧｉのうち重要度の低い構成記述ファイルＣＦＧｉの複製数よりも、重要度の高いネットワーク機器の構成記述ファイルＣＦＧｉの複製数を多くするようにバックアップしても良いことは勿論である。これにより、ネットワークＮＷにとって重要な構成記述ファイルＣＦＧｉを優先的に複数のネットワーク機器で保持して、当該重要度の高い構成記述ファイルＣＦＧｉのデータロスに対する耐性を高くできる。
【０１１６】
［分散記憶システムにおけるプロバイダＰｉ、リクエスタＲｉ離脱時の動作］
つぎに、上述した分散記憶システムにおいて、ネットワークＮＷからプロバイダＰｉ、リクエスタＲｉが離脱した時に、分散型共有メモリ４３ｂを最適化する動作について説明する。
【０１１７】
図２９（ａ）に示すように、ネットワークＮＷに接続されているリクエスタＲが、作業者によって取り外し作業がされて、分散記憶システムから離脱した場合、図２９（ａ）及び図１４に示すように、プロバイダＰ４の共有メモリ提供機能４３に離脱トリガが発生する。この離脱トリガは、離脱するデバイスＩＤ（離脱ＩＤ）を含む。
【０１１８】
プロバイダＰ４は、離脱トリガを検出すると、離脱するリクエスタＲのデバイスＩＤ及び離脱コマンドを含む離脱リクエストをネットワークＮＷにブロードキャストする。ここで、リクエスタＲの構成記述ファイルＣＦＧｉを記憶しているのは、プロバイダＰ１とプロバイダＰ４である。したがって、プロバイダＰ１及びプロバイダＰ４は、図２９（ｂ）に示すようにリクエスタＲの構成記述ファイルＣＦＧｉを削除する。
【０１１９】
また、離脱するプロバイダＰｉ、リクエスタＲｉは、作業者による取り外し作業時に、自己のデバイスＩＤを含む離脱リクエストをネットワークＮＷにブロードキャストして、自己が離脱することをプロバイダＰｉに通知して、プロバイダＰｉによって構成記述ファイルＣＦＧｉを削除させても良い。
【０１２０】
このような分散記憶システムにおいて、プロバイダＰｉは、図３０に示すように、先ず、ステップＳＴ３１において離脱トリガのチェック動作を共有メモリ提供機能４３によって行う。この離脱トリガのチェック動作は、予め設定された期間ごとに行う。
【０１２１】
ステップＳＴ３２において、離脱トリガが検出されたか否かを判定する。離脱トリガが検出された場合、共有メモリ提供機能４３は、離脱するデバイスＩＤを含む離脱リクエストをネットワークＮＷにブロードキャストする。一方、離脱トリガが検出されなかった場合、ステップＳＴ３４において、ネットワークＮＷから受信した信号をチェックする動作を行い、ステップＳＴ３５において離脱リクエストを受信したか否かを判定する。離脱リクエストを受信していない場合にはステップＳＴ３１に処理を戻し、離脱リクエストを受信した場合にはステップＳＴ３６に処理を進める。
【０１２２】
ステップＳＴ３６において、プロバイダＰｉは、離脱リクエストに含まれるデバイスＩＤの構成記述ファイルＣＦＧｉが自己の分散型共有メモリ４３ｂに記憶されているか否かを判定する。離脱するプロバイダＰｉ、リクエスタＲｉのＩＤが記憶されていない場合には、処理をステップＳＴ３１に戻し、離脱するプロバイダＰｉ、リクエスタＲｉのＩＤが記憶されている場合には、ステップＳＴ３７において、当該デバイスＩＤの構成記述ファイルＣＦＧｉを削除して、ステップＳＴ３１に処理を戻す。
【０１２３】
このように、ネットワークＮＷからプロバイダＰｉ、リクエスタＲｉが離脱する場合、当該デバイスＩＤを含む離脱リクエストをネットワークＮＷにブロードキャストして、当該デバイスＩＤの構成記述ファイルＣＦＧｉをプロバイダＰｉから削除するので、当該削除された構成記述ファイルＣＦＧｉが記憶されていたスロットに他の構成記述ファイルＣＦＧｉを記憶させることができる。したがって、構成記述ファイルＣＦＧｉの複製数を増加させて、更にデータロスの耐性を向上できる。また、分散記憶システムにおける分散型共有メモリ４３ｂを更に有効に利用できる。
【０１２４】
なお、上述の実施の形態は本発明の一例である。このため、本発明は、上述の実施形態に限定されることはなく、この実施の形態以外であっても、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることは勿論である。
【０１２５】
すなわち、上述の分散記憶システムは、プロバイダＰｉ、リクエスタＲｉからなるシステムや、デバイスコントローラＤｉのみならなるシステムについて説明したが、センサ等のデバイスに記憶されているファイルやデータを分散型共有メモリ１に分散記憶させるようにしても良い。
【図面の簡単な説明】
【０１２６】
【図１】本発明を適用した分散記憶システムの構成を示すシステム図である。
【図２】本発明を適用した分散記憶システムにおいて、構成記述ファイルが交換された時の動作を説明するためのシステム図である。
【図３】（ａ）はデバイスコントローラが交換された説明図であり、（ｂ）は交換されたデバイスコントローラにＩＤが付加されてリクエストをブロードキャストする説明図であり、（ｃ）は交換されたデバイスコントローラが構成記述ファイルを含むレスポンスを受信する説明図である。
【図４】本発明を適用した分散記憶システムにおいて、各ネットワーク機器の構成記述ファイルの複製数について説明するための図である。
【図５】本発明を適用した分散記憶システムにおいて、ネットワーク機器の種類を説明するためのシステム図である。
【図６】本発明を適用した分散記憶システムにおける特徴的な動作について説明するためのブロック図である。
【図７】本発明を適用した分散記憶システムにおいてデバイスコントローラの構成を示すブロック図である。
【図８】本発明を適用した分散記憶システムにおいてデバイスコントローラの詳細な構成を示すブロック図である。
【図９】本発明を適用した分散記憶システムにおいて、ＥＭＩＴ技術を採用したデバイスとフィールドバスインターフェースの構成を示すブロック図である。
【図１０】フィールドバステーブルの構成図である。
【図１１】本発明を適用した分散記憶システムにおいて、デバイスコントローラに格納された構成記述ファイルに含まれる変数テーブルの構成図である。
【図１２】本発明を適用した分散記憶システムにおいて、デバイスコントローラに格納された構成記述ファイルに含まれる連携テーブルの構成図である。
【図１３】本発明を適用した分散記憶システムにおいて、デバイスコントローラに格納された構成記述ファイルに含まれるソフトウェアパラメータを示す図である。
【図１４】本発明を適用した分散記憶システムにおける機能的な構成を示すブロック図である。
【図１５】本発明を適用した分散記憶システムにおける信号の内容について説明するブロック図である。
【図１６】本発明を適用した分散記憶システムにおける分散型共有メモリ監視機能の処理を示すフローチャートである。
【図１７】本発明を適用した分散記憶システムにおける共有メモリ提供機能の処理を示すフローチャートである。
【図１８】（ａ）は分散記憶システムのメモリの使用状況を示すシステム図であり、（ｂ）はプロバイダ、リクエスタの構成記述ファイルの複製数を示す図である。
【図１９】本発明を適用した分散記憶システムにおけるメモリ状態レポート出力機能と分散型共有メモリ監視機能と共有メモリ提供機能の動作結果を示す図である。
【図２０】（ａ）は分散記憶システムのメモリの使用状況を示すシステム図であり、（ｂ）はプロバイダ、リクエスタの構成記述ファイルの複製数を示す図である。
【図２１】本発明を適用した分散記憶システムにおけるメモリ状態レポート出力機能と分散型共有メモリ監視機能と共有メモリ提供機能の動作結果を示す図である。
【図２２】（ａ）は分散記憶システムのメモリの使用状況を示すシステム図であり、（ｂ）はプロバイダ、リクエスタの構成記述ファイルの複製数を示す図である。
【図２３】本発明を適用した分散記憶システムにおけるメモリ状態レポート出力機能と分散型共有メモリ監視機能と共有メモリ提供機能の動作結果を示す図である。
【図２４】（ａ）は分散記憶システムのメモリの使用状況を示すシステム図であり、（ｂ）はプロバイダ、リクエスタの構成記述ファイルの複製数を示す図である。
【図２５】本発明を適用した分散記憶システムにおけるメモリ状態レポート出力機能と分散型共有メモリ監視機能と共有メモリ提供機能の動作結果を示す図である。
【図２６】（ａ）は分散記憶システムのメモリの使用状況を示すシステム図であり、（ｂ）はプロバイダ、リクエスタの構成記述ファイルの複製数を示す図である。
【図２７】本発明を適用した分散記憶システムにおけるメモリ状態レポート出力機能と分散型共有メモリ監視機能と共有メモリ提供機能の動作結果を示す図である。
【図２８】（ａ）は分散記憶システムのメモリの使用状況を示すシステム図であり、（ｂ）はプロバイダ、リクエスタの構成記述ファイルの複製数を示す図である。
【図２９】本発明を適用した分散記憶システムにおいて、ネットワーク機器が離脱する時の動作を説明するための図である。
【図３０】本発明を適用した分散記憶システムにおいて、ネットワーク機器が離脱する時の動作を説明するためのフローチャートである。
【符号の説明】
【０１２７】
１  分散型共有メモリ
１１  Ｐ２Ｐ通信処理部
１２  記憶制御部
１２Ａ  情報受信部
１２Ｂ  情報更新部
１２Ｃ  情報要求部
１２Ｄ  構成記述情報メモリ
１２Ｅ  情報選択部
１３  分散型共有メモリ
１４  構成記述情報ドライバ
１４ａ  構成記述ファイル記憶部
１５  変数テーブル
１５Ａ  変数テーブル更新部
１６  アプリケーション処理部
１６Ａ  アプリケーション処理部
１６Ｂ  連携テーブル
１６Ｃ  アプリケーション更新部
１７  フィールドバス監視・制御部
１７Ａ  フィールドバス監視部
１７Ｂ  フィールドバス制御部
１８Ａ，１８Ｂ，１８Ｃ  フィールドバスインターフェース
１８ａ  フィールドバスドライバ
１８ｂ  フィールドバスインターフェース部
１９  プロバイダＩＤ記憶部
２１  ＭＯＳ機能部
２１ａ  機能
２１ｂ  イベント
２１ｃ  変数
２１ｄ  オブジェクトＩＤ
２１ｅ  サービステーブル
２２  アプリケーション処理部
２３  インターフェースモジュール
２４  能力テーブル
３１  ＯＡＳ機能部
３１ａ  デバイスアクセスサーバ
３１ｂ  サービス情報
３１ｃ  デバイスアクセスコントローラ
３１ｄ  オブジェクトＩＤ
３２  通信モジュール
４１  分散型共有メモリ監視機能
４１ａ  能動型監視部
４２  記憶制御機能
４２ａ  構成記述情報記憶部
４２ｂ  共有メモリ状態ファイル
４２ｃ  バックアップ状態ファイル
４２ｄ  メモリ状態検知機能部
４２ｅ  スロット質問機能部
４２ｆ  スロット取得機能部
４２ｇ  複製数警告機能部
４２ｈ  スロット再割当機能部
４３  共有メモリ提供機能
４３ａ  要求管理機能
４３ｂ  分散型共有メモリ
４３ｃ  メモリ状態レポート出力機能部
【図１】
2007179279.tif 000003
【図２】
2007179279.tif 000004
【図３】
2007179279.tif 000005
【図４】
2007179279.tif 000006
【図５】
2007179279.tif 000007
【図６】
2007179279.tif 000008
【図７】
2007179279.tif 000009
【図８】
2007179279.tif 000010
【図９】
2007179279.tif 000011
【図１０】
2007179279.tif 000012
【図１１】
2007179279.tif 000013
【図１２】
2007179279.tif 000014
【図１３】
2007179279.tif 000015
【図１４】
2007179279.tif 000016
【図１５】
2007179279.tif 000017
【図１６】
2007179279.tif 000018
【図１７】
2007179279.tif 000019
【図１８】
2007179279.tif 000020
【図１９】
2007179279.tif 000021
【図２０】
2007179279.tif 000022
【図２１】
2007179279.tif 000023
【図２２】
2007179279.tif 000024
【図２３】
2007179279.tif 000025
【図２４】
2007179279.tif 000026
【図２５】
2007179279.tif 000027
【図２６】
2007179279.tif 000028
【図２７】
2007179279.tif 000029
【図２８】
2007179279.tif 000030
【図２９】
2007179279.tif 000031
【図３０】
2007179279.tif 000032