(57)【要約】【課題】ネットワークで接続された処理装置内のソフトウェア上の機能モジュール間でデータの共有とデータの同期を行うことを可能とする。【解決手段】機能モジュール１１が他のソフトウェア２０と共有する原本データを参照または更新する場合に，原本データを複製したミラーデータを作成する。ミラーデータは，原本データを自ソフトウェア１０が保持するかどうかによって，自ソフトウェア１０内の共有データ管理機能モジュール１２内に作成されるか，または通信機能モジュール１３，２３間の通信により，通信機能モジュール１３内に作成される。通信機能モジュール１３内のミラーデータは，原本データが更新された場合に更新通知により自動更新する。【選択図】図１
2005032171.tif 000002
【特許請求の範囲】
【請求項１】
１または複数の機能モジュールにより構成される１または複数のソフトウェアプログラムを搭載する処理装置がネットワークを介して接続されるシステムにおいて，
前記各ソフトウェアプログラムは，
複数の機能モジュール間で共有されるデータの原本データを管理する共有データ管理機能モジュールと，
他のソフトウェアプログラムにおける通信機能モジュールとの通信を行う通信機能モジュールとを備え，
前記共有データ管理機能モジュールは，
前記機能モジュールまたは前記通信機能モジュールからの共有データの参照要求に対して，原本データのコピーであるミラーデータを作成して，要求元の機能モジュールまたは通信機能モジュールに提供する処理機能と，
前記機能モジュールまたは前記通信機能モジュールからの共有データの更新要求に対して，要求された原本データおよび対応するミラーデータを更新して，同じデータを共有している機能モジュールへ更新通知を行う処理機能とを備え，
前記通信機能モジュールは，
同じソフトウェアプログラム内の機能モジュールからの他のソフトウェアプログラムが原本データを持つ共有データに対する参照要求に対して，当該他のソフトウェアプログラムの通信機能モジュールに対して共有データの参照要求を送り，要求した共有データのミラーデータを受信してミラーデータを格納し，要求元の機能モジュールに提供する処理機能と，
同じソフトウェアプログラム内の機能モジュールからの他のソフトウェアプログラムが原本データを持つ共有データに対する更新要求に対して，当該他のソフトウェアプログラムの通信機能モジュールに対して共有データの更新要求を送り，他のソフトウェアプログラムにおける原本データとミラーデータとを更新させ，更新通知を受信した場合に，当該通信機能モジュールが管理する対応するミラーデータを更新する処理機能とを備える
ことを特徴とするデータ共有のための機能モジュール間通信制御システム。
【請求項２】
請求項１記載のデータ共有のための機能モジュール間通信制御システムにおいて，
前記共有データ管理機能モジュールおよび前記通信機能モジュールは，前記機能モジュールに対して共有データに対する同一のアクセスインタフェースを提供し，前記機能モジュールに対して原本データが当該機能モジュールと同じソフトウェアプログラム内に存在するか，他のソフトウェアプログラム内に存在するかを意識させない
ことを特徴とするデータ共有のための機能モジュール間通信制御システム。
【請求項３】
１または複数の機能モジュールと，共有されるデータの原本データを管理する共有データ管理機能モジュールと，他のソフトウェアプログラムにおける通信機能モジュールとの通信を行う通信機能モジュールとを有する１または複数のソフトウェアプログラムを搭載する処理装置がネットワークを介して接続されるシステムにおける通信制御方法であって，
前記共有データ管理機能モジュールが，前記機能モジュールまたは前記通信機能モジュールからの共有データの参照要求に対して，原本データのコピーであるミラーデータを作成して，要求元の機能モジュールまたは通信機能モジュールに提供する過程と，
前記共有データ管理機能モジュールが，前記機能モジュールまたは前記通信機能モジュールからの共有データの更新要求に対して，要求された原本データおよび対応するミラーデータを更新して，同じデータを共有している機能モジュールへ更新通知を行う過程と，
前記通信機能モジュールが，同じソフトウェアプログラム内の機能モジュールからの他のソフトウェアプログラムが原本データを持つ共有データに対する参照要求に対して，当該他のソフトウェアプログラムの通信機能モジュールに対して共有データの参照要求を送り，要求した共有データのミラーデータを受信してミラーデータを格納し，要求元の機能モジュールに提供する過程と，
前記通信機能モジュールが，同じソフトウェアプログラム内の機能モジュールからの他のソフトウェアプログラムが原本データを持つ共有データに対する更新要求に対して，当該他のソフトウェアプログラムの通信機能モジュールに対して共有データの更新要求を送り，他のソフトウェアプログラムにおける原本データとミラーデータとを更新させ，更新通知を受信した場合に，当該通信機能モジュールが管理する対応するミラーデータを更新する過程とを有する
ことを特徴とするデータ共有のための機能モジュール間通信制御方法。
【請求項４】
請求項３記載のデータ共有のための機能モジュール間通信制御方法を，前記処理装置のコンピュータに実行させるための機能モジュール間通信制御プログラム。
【請求項５】
請求項３記載のデータ共有のための機能モジュール間通信制御方法を，前記処理装置のコンピュータに実行させるためのプログラムを記録した
ことを特徴とする機能モジュール間通信制御プログラムの記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，機能モジュール間のメモリデータ共有のための通信制御技術に関し，特に，１または複数の機能モジュールから構成されるソフトウェアプログラム（以下，単に「ソフトウェア」という）上の機能モジュールと他のソフトウェア上の機能モジュールとの間でデータの共有とデータの同期を行うことを可能とするデータ共有のための機能モジュール間通信制御システム，機能モジュール間通信制御方法，機能モジュール間通信制御プログラムおよびその記録媒体に関する。
【背景技術】
【０００２】
従来のソフトウェアは，ある機能モジュールが，ネットワーク上の他のソフトウェアとのデータの共有や同期を行うには，自機能モジュール内にネットワークを経由して他のソフトウェア内の機能モジュールと通信しデータを送受するための機能や，同期を行うための機能を実装する必要がある。
【０００３】
例えば，以下の特許文献１には，ネットワーク上の相互に接続された機器間で，データを複製して共有・操作する方法が記載されている（特許文献１参照）。
【０００４】
また，例えば，以下の特許文献２には，ネットワークによって接続された第１及び第２の情報処理装置の各々が有する共有データ記憶手段の一貫性を保持させることにより，これらの情報処理装置間でデータを共有させるデータ共有方式が記載されている（特許文献２参照）。
【特許文献１】特開２００１−１０１０１５号公報
【特許文献２】特開平１１−１４９４０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし，ある特定のソフトウェア内でのみデータを共有することが可能な従来の技術では，ある機能モジュールは，ネットワークを経由して他のソフトウェア内の機能モジュールと通信しデータを送受するための機能や，同期を行うための機能を実装しない場合には，自身が属するソフトウェア内の他の機能モジュール以外の，他のソフトウェアに属する機能モジュールとデータ共有やデータ同期を行うことができなかった。
【０００６】
上記特許文献１に記載された技術は，共有データを１台の処理装置内の複数のコンポーネント間で参照，更新するとともに，複数の異なる処理装置におけるコンポーネント間でも参照，更新することを前提としていない。
【０００７】
また，上記特許文献２に記載された技術は，第１の情報処理装置の共有データ記憶手段に対して共有データの追加・更新があった場合に，共有先である第２の情報処理装置の属性やアプリケーションの種類によりデータ変換を行った上で，変換後のデータを第２の情報処理装置の共有データ記憶手段に登録させることを前提としている。この特許文献２に記載された技術においても，同一の処理装置内機能モジュール間および異なる処理装置内の機能モジュール間のデータ共有およびデータ同期を統一された簡易なインタフェースで提供することについては考慮されていない。
【０００８】
本発明は，上記従来技術の問題を解決し，
（１）同一のソフトウェア内の複数の機能モジュール間でデータの共有とデータの同期を行うことを可能にするとともに，あるソフトウェア内の機能モジュールと，他のソフトウェア内の機能モジュールとが，ネットワークを介してデータの共有とデータの同期を行う機能を開発・提供することにより，様々なソフトウェアにおいてネットワーク通信，データ共有，データ同期のための機能実装を不要とし，ソフトウェア開発コストを低減すること，
（２）同一のソフトウェア内の機能モジュール間でのデータ共有，データ同期機能を提供する共有データ管理機能を利用し，異なるソフトウェアに存在する機能モジュール間でも統一されたインタフェースによってデータ共有およびデータ同期を実現することによって，既存のソフトウェア内の機能モジュールを修正することなく，容易にネットワークを介した機能モジュール間のデータ共有，データ同期を可能にする手段を提供すること，
を目的とする。
【課題を解決するための手段】
【０００９】
前記目的を達成するために，本発明は，１または複数の機能モジュールにより構成される１または複数のソフトウェアを搭載する処理装置がネットワークを介して接続されるシステムにおいて，前記各ソフトウェアは，複数の機能モジュール間で共有されるデータの原本データを管理する共有データ管理機能モジュールと，他のソフトウェアにおける通信機能モジュールとの通信を行う通信機能モジュールとを備え，前記共有データ管理機能モジュールは，前記機能モジュールまたは前記通信機能モジュールからの共有データの参照要求に対して，原本データのコピーであるミラーデータを作成して要求元の機能モジュールまたは通信機能モジュールに提供する手段と，前記機能モジュールまたは前記通信機能モジュールからの共有データの更新要求に対して，要求された原本データおよび対応するミラーデータを更新して，同じデータを共有している機能モジュールへ更新通知を行う手段とを備え，前記通信機能モジュールは，同じソフトウェア内の機能モジュールからの他のソフトウェアが原本データを持つ共有データに対する参照要求に対して，当該他のソフトウェアの通信機能モジュールに対して共有データの参照要求を送り，要求した共有データのミラーデータを受信してミラーデータを格納し，要求元の機能モジュールに提供する手段と，同じソフトウェア内の機能モジュールからの他のソフトウェアが原本データを持つ共有データに対する更新要求に対して，当該他のソフトウェアの通信機能モジュールに対して共有データの更新要求を送り，他のソフトウェアにおける原本データとミラーデータとを更新させ，更新通知を受信した場合に，自通信機能モジュールが管理する対応するミラーデータを更新する手段とを備える。
【００１０】
また，前記共有データ管理機能モジュールおよび前記通信機能モジュールは，前記機能モジュールに対して共有データに対する同一のアクセスインタフェースを提供し，前記機能モジュールに対して原本データが当該機能モジュールと同じソフトウェア内に存在するか，他のソフトウェア内に存在するかを意識させないことを特徴とする。
【００１１】
以上の処理手段は，コンピュータとソフトウェアプログラムとによって実現することができ，そのソフトウェアプログラムはコンピュータ読み取り可能な記録媒体に記録して提供することも，ネットワークを通して提供することも可能である。
【００１２】
本発明を用いることにより，ソフトウェアを構成する各機能モジュールが，ネットワークを介して接続された外部のソフトウェア内の機能モジュールとデータ共有が可能となる。
【００１３】
また，本発明を用いることにより，ネットワークを介したデータの共有，データの同期を専用の機能が担うことにより，外部のソフトウェアとのデータを共有する各機能モジュールの修正が共有データの管理に影響しないようになる。
【００１４】
また，本発明を用いることにより，外部のソフトウェアの機能モジュールとのデータ共有，データ同期を，ソフトウェア内の機能モジュールと同様の手段，手順にて実施可能となる。
【００１５】
なお，本発明は，先に本発明者等が特願２００２−１０８４９５号で提案した「共有データ管理方法及び記録媒体」の発明をさらに改良・発展させ，ネットワークを介して接続される外部のソフトウェア内の機能モジュールとの間でもデータの共有および同期を実現できるようにしたものである。
【発明の効果】
【００１６】
本発明によれば，以下の効果を奏する。
【００１７】
（１）通信機能モジュールにより，独立して開発された各機能モジュールで，ネットワークで接続された他のソフトウェア内の機能モジュール間でのデータ共有，同期が可能となる。
【００１８】
（２）ネットワークで接続された複数のソフトウェアの複数の機能モジュール間でデータを共有する際に，各機能モジュールの変更によるデータ管理の不具合発生をなくすことが可能となる。
（３）ネットワークで接続された複数のソフトウェアで，共有データの更新を契機とした処理を，他の機能モジュールの動作や種類や数を意識することなく，共有データ管理機能モジュールからのデータ更新の信号をハンドリングするのみで，容易に実装することが可能となる。
【発明を実施するための最良の形態】
【００１９】
本発明は以下のような機能を備えた共有データ管理機能モジュールと通信機能モジュールとをソフトウェアに具備する。
【００２０】
（１）１または複数の機能モジュールにより構成されるソフトウェアにおいて，ソフトウェアを構成する各機能モジュールで共有する必要があるデータを保持し，各機能モジュールが共有データを参照する際に使用する原本データのコピーであるミラーデータを作成して各機能モジュールに提供し，データ書き換えの都度ミラーデータの自動更新や同じデータを共有している各機能モジュールヘの通知を行うための共有データ管理機能モジュールを，ソフトウェア内に具備する。
【００２１】
（２）ソフトウェア外部とのネットワークを介した通信を行うための通信機能モジュールを，ソフトウェア内に具備する。
【００２２】
（３）通信機能モジュールは，ネットワーク上の他のソフトウェア内の，データ共有，データ同期を行う通信機能モジュールと接続される。
【００２３】
（４）通信機能モジュールは，自身が属するソフトウェア内の他の各機能モジュールが共有データ管理機能モジュールへ送信したデータ管理用の信号を受信する。
【００２４】
（５）通信機能モジュールが受信したデータ管理用の信号が，共有データ管理機能モジュールに存在しないデータへの参照の場合には，接続されている他のソフトウェアの通信機能モジュールと通信を行い，通信先ソフトウェア内の共有データ管理機能モジュールが管理するデータを取得し，通信機能モジュール内にミラーデータを生成し，そのデータを参照元の機能モジュールに返却する。
【００２５】
本発明においては，ミラーデータの生成個数については特に制限されておらず，共有データ管理機能モジュール内の同一の原本データ（共有データ）から複数のミラーデータを生成することも可能である。
【００２６】
（６）通信機能が受信したデータ管理用の信号が，共有データ管理機能モジュールに存在しないデータヘの更新の場合には，接続されている他のソフトウェアの通信機能モジュールと通信を行い，通信先ソフトウェア内の共有データ管理機能モジュールが管理するデータの更新を行い，通信機能モジュール内の対応するミラーデータを更新する。
【００２７】
すなわち，本発明では，同一のソフトウェア内の機能モジュール間でのデータ共有のために，ソフトウェア内に共有データ管理機能モジュールを設ける。一方，他のソフトウェア内の機能モジュールとの間でデータの共有を図るために通信機能モジュールを設ける。この通信機能モジュールは，他のソフトウェアの通信機能モジュールとの間で通信を行うとともに，自ソフトウェア内の共有データ管理機能モジュールとの通信を行い，自ソフトウェア内の共有データ管理機能モジュールの機能を疑似する。
【００２８】
自ソフトウェア内の機能モジュールからデータの参照，更新要求があり，共有データ管理機能モジュールが要求されたデータのミラーデータ（複製）を持つ場合には，そのミラーデータに対する参照，更新を行う。共有データ管理機能モジュールが要求されたデータのミラーデータ（複製）を持たない場合には，通信機能モジュールが共有データのミラーデータを他の通信機能モジュールとの通信によって持つようにし，機能モジュールからの要求に対してそのミラーデータに対する参照，更新を行う。
【実施例１】
【００２９】
〔システム構成例〕
図１は，本発明の実施例に係るシステム構成の概要を示す図である。図１において，１はＣＰＵおよびメモリを備える第１のデータ処理装置，２は第１のデータ処理装置１の通信先である第２のデータ処理装置，３はネットワークである。ここでは，説明を簡単にするために，１台のデータ処理装置に１つのソフトウェアが搭載される例を示しているが，１台のデータ処理装置に複数のソフトウェアが搭載される場合にも，同様に本発明を適用することができる。また，ネットワーク３で接続されるデータ処理装置が２台の場合について説明するが，３台以上であっても同様に本発明を適用することができる。
【００３０】
第１のデータ処理装置１内において，１０は第１のデータ処理装置１内のソフトウェアである。また，ソフトウェア１０内において，１１はそれぞれ単機能を実装する１または複数の機能モジュール，１２は各機能モジュール間で共有するデータ（原本データ）を管理する共有データ管理機能モジュールである。
【００３１】
１３は第２のデータ処理装置２内のソフトウェアとの間で信号送受を行う通信機能モジュール，１４はソフトウェアバスとしての機能を提供し，各モジュール間の通信を制御するモジュール間通信制御部である。
【００３２】
１５は通信機能モジュール１３とモジュール間通信制御部１４との間の入出力インタフェース，１６は機能モジュール１１とモジュール間通信制御部１４との間の入出力インタフェース，１７は共有データ管理機能モジュール１２とモジュール間通信制御部１４との間の入出力インタフェースである。ここでの入出力インタフェース１５，１６，１７は，共有データをアクセスするためのコマンドによる要求とその要求に対する応答である。
【００３３】
共有データ管理機能モジュール１２内において，１２１は共有データである原本データの管理情報を格納する原本データ管理テーブル，１２２は原本データの実際の内容である実データを格納する原本データ格納領域，１２３は原本データのコピーである各ミラーデータの管理情報を格納するミラーデータ管理テーブル，１２４は各ミラーデータの実データを格納するミラーデータ格納領域である。
【００３４】
また，通信機能モジュール１３内において，１３１はミラーデータ管理情報が格納されるミラーデータ管理テーブル，１３２は第２のデータ処理装置２内のソフトウェアから受け取ったミラーデータが格納される領域であるミラーデータ格納領域である。
【００３５】
各機能モジュール１１と共有データ管理機能モジュール１２と通信機能モジュール１３とは，それぞれ入出力インタフェース１５，１６，１７とモジュール間通信制御部１４とを介した信号の振り分け制御により，必要な情報の送受を行う。
【００３６】
図１において，２０は第２のデータ処理装置２内のソフトウェアである。ソフトウェア２０は，データ処理装置１と同様に，機能モジュール２１，共有データ管理機能モジュール２２，通信機能モジュール２３，モジュール間通信制御部２４，入出力インタフェース２５，２６，２７を備える。
【００３７】
また，共有データ管理機能モジュール２２は，原本データ管理テーブル２２１，原本データ格納領域２２２，ミラーデータ管理テーブル２２３，ミラーデータ格納領域２２４を備える。ソフトウェア２０内の通信機能モジュール２３は，通信先のソフトウェア１０内の通信機能モジュール１３とネットワーク３を介して接続され，信号の送受が可能である。
【００３８】
図２は，モジュール間通信制御部１４による各モジュール間の信号振り分け処理の概要を示す図である。モジュール間通信制御部１４は，モジュール登録処理部１４１，信号振り分け処理部１４２，モジュール管理情報領域１４３から構成される。
【００３９】
モジュール登録処理部１４１は，機能モジュール１１と共有データ管理機能モジュール１２と通信機能モジュール１３の管理情報をモジュール管理情報領域１４３に登録する。信号振り分け処理部１４２は，機能モジュール１１と共有データ管理機能モジュール１２と通信機能モジュール１３との間の送受信信号の振り分けを行う。
【００４０】
モジュール管理情報領域１４３には，機能モジュール１１，共有データ管理機能モジュール１２，通信機能モジュール１３等の各モジュールをそれぞれ一意に特定する識別子（モジュール名）が管理情報として登録される。本実施例では，後に詳述するように，共有データ管理機能モジュール１２および通信機能モジュール１３が見掛け上，同一のモジュールに見えるように，これらに同一のモジュール名を付与している。
【００４１】
例えば，図２に示すように，機能モジュール１１’から共有データ管理機能モジュール１２に対して信号を送信する場合，モジュール間通信制御部１４の信号振り分け処理部１４２が機能モジュール１１’から信号を受信し，受信した信号に含まれる送信先モジュールの識別子によりモジュール管理情報領域１４３を検索して，送信先のモジュールである共有データ管理機能モジュール１２を特定し，該送信先である共有データ管理機能モジュール１２へ機能モジュール１１’からの信号を送信する。
【００４２】
〔テーブル構成〕
図３は，原本データ管理テーブル，ミラーデータ管理テーブルのデータ構成の例を示す図である。図３（Ａ）に示すように，原本データ管理テーブル２２１には，管理対象である原本データの個数分の原本データ管理情報２２１−ｉ（ｉ＝１，２，…）が格納される。
【００４３】
また，図３（Ｂ）に示すように，ミラーデータ管理テーブル２２３には，作成されたミラーデータの個数分のミラーデータ管理情報２２３−ｊ（ｊ＝１，２，…）が格納される。個々のミラーデータには，作成時に一意の番号が付与される。この番号をミラーデータ番号という。この例では，ミラーデータ管理テーブル２２３におけるミラーデータ管理情報２２３−ｊの位置ｊをミラーデータ番号とし，ミラーデータ番号によって各ミラーデータ管理情報が特定されるようにしている。
【００４４】
原本データ管理テーブル２２１内の原本データ管理情報２２１−ｉは，原本データ毎に，図３（Ｃ）に示すように，原本データの名称，原本データのデータサイズ，未使用領域への先頭ポインタからのオフセット，原本データ格納領域２２２へのポインタ，メモリ更新通知先格納テーブルなどの情報を持つ。
【００４５】
メモリ更新通知先格納テーブルは，更新時通知先の機能モジュール情報管理テーブルの配列である。更新時通知先の機能モジュール情報管理テーブル（図示省略）は，対応するミラーデータ番号，データを参照しているモジュールの名称，データ更新時の動作指定（０：データ更新なし，１：データ更新のみ，２：更新通知のみ，３：データ更新＋更新通知），更新通知時のコマンドコード（データ更新時の動作指定が「２」または「３」の時に有効）などの項目から構成される。ミラーデータ番号は，ミラーデータ管理テーブル２２３内のミラーデータ管理情報を特定する番号である。
【００４６】
また，ミラーデータ管理テーブル２２３内のミラーデータ管理情報２２３−ｊは，原本データ管理情報へのポインタ，ミラーデータサイズ，ミラーデータ格納領域２２４にコピーされた原本データの先頭からのオフセット値，ミラーデータ格納領域２２４へのポインタ，当該要素が使用中であるか解放中再使用可能であるかの状態を示す状態フラグなどの項目から構成される。
【００４７】
また，ソフトウェア１０内の共有データ管理機能モジュール１２も，共有データ管理機能モジュール２２と同様の構成を有する。
【００４８】
〔共有データをアクセスするためのコマンド〕
ここで，本実施例において用いる共有データをアクセスするためのコマンドとパラメータについて説明する。共有データをアクセスするためのコマンドには，代表的なものとして，ミラーデータオープンコマンド，データ取得（参照）コマンド，データ更新コマンド，ミラデータクローズコマンドの４つのコマンドがある。
【００４９】
ミラーデータオープンコマンドは，データ読み込み／書き出しのためミラーデータ管理テーブル２２３にミラーデータ管理情報２２３−ｊを作成し，ミラーデータ格納領域２２４にミラーデータを作成可能にするためのコマンドである。ミラーデータオープンコマンドのパラメータは，ミラーデータとしてオープンする原本データの名称，データ更新時の動作指定（例えば，更新通知の有無の指定）であるアクションタイプ，更新通知時のコマンドコード（データ更新時の動作指定が「２」または「３」の時に有効）である。ミラーデータオープンコマンドを実行した結果の返却値（戻り値）は，ミラーデータ番号である。
【００５０】
データ取得コマンドは，原本データを参照してそのコピーであるミラーデータを生成するためのコマンドである。データ取得コマンドのパラメータは，ミラーデータオープンコマンドの返却値として通知されたミラーデータ番号，メモリ操作対象データが格納されている原本データの先頭からのオフセット値，メモリ操作対象となるデータのサイズである。データ取得コマンドを実行した結果の返却値は，取得したデータを格納したミラーデータ格納領域へのポインタである。
【００５１】
データ更新コマンドは，データを更新するためのコマンドである。データ更新コマンドのパラメータは，ミラーデータ番号，メモリ操作対象データが格納されている原本データの先頭からのオフセット値，メモリ操作対象となるデータのサイズ，原本データに書き込む更新内容のデータが格納されているメモリへのポインタである。
【００５２】
ミラーデータクローズコマンドは，ミラーデータをクローズし，そのミラーデータ格納領域２２４を解放するコマンドである。ミラーデータクローズコマンドのパラメータは，クローズするミラーデータのミラーデータ番号である。
【００５３】
〔共有データの確保処理（ミラーデータのオープン処理）〕
図４は，共有データ管理機能モジュール２２におけるミラーデータオープンコマンドに対する処理を説明する図である。共有データ管理機能モジュール２２には，既に原本データ格納領域２２２に原本データが格納され，原本データ管理テーブル２２１の原本データ管理情報２２１−ｉによって原本データが管理されているものとする。以下，図４に示す（ａ）〜（ｃ）に従って説明する。
【００５４】
（ａ）機能モジュール２１は，共有データである原本データの参照または更新を行う場合に，事前にミラーデータオープンコマンドを発行する。パラメータとしては，ミラーデータとしてオープンする原本データの名称，データ更新時の動作指定（例えば，更新通知の有無の指定）であるアクションタイプ，更新通知時のコマンドコード（データ更新時の動作指定が「２」または「３」の時に有効）を指定する。ミラーデータオープンコマンドの発行により，入出力インタフェース２６，モジュール間通信制御部２４，入出力インタフェース２７を介して，ミラーデータオープン要求が共有データ管理機能モジュール２２に対して通知される。
【００５５】
（ｂ）共有データ管理機能モジュール２２は，パラメータとして指定された原本データの名称をもとに，原本データ管理テーブル２２１の該当する原本データ管理情報２２１−ｉを検索する。
【００５６】
（ｃ）次に，共有データ管理機能モジュール２２は，ミラーデータ管理テーブル２２３における空きエントリにミラーデータ管理情報２２３−ｊを追加し，そのミラーデータ管理情報２２３−ｊ中に原本データ管理情報２２１−ｉの検索結果から得た原本データ管理情報２２１−ｉへのポインタ等を設定する。また，原本データ管理情報２２１−ｉ中のメモリ更新通知先格納テーブルを更新する。
【００５７】
（ｄ）その後，要求元の機能モジュール２１にミラーデータオープンコマンドに対する返却値としてミラーデータ番号を応答する。
【００５８】
以上のミラーデータオープンコマンドに対する処理の例は，図１における第２のデータ処理装置２における機能モジュール２１が，同一処理装置（ソフトウェア）内の共有データ管理機能モジュール２２が管理する原本データに対するミラーデータをオープンする場合の処理の例であるが，もし，同じ原本データに対して異なる第１のデータ処理装置１における機能モジュール１１が，ミラーデータオープンコマンドを発行した場合には，通信機能モジュール１３からネットワーク３を介してミラーデータオープン要求が通信機能モジュール２３へ伝達され，通信機能モジュール２３から共有データ管理機能モジュール２２に対してミラーデータオープン要求が送信されることになる。このときの共有データ管理機能モジュール２２の処理も，図４で説明した処理と同様に行われる。
【００５９】
図５は，第２のデータ処理装置２中の共有データ管理機能モジュール２２が所持する原本データに対して，第１のデータ処理装置１におけるソフトウェア１０中の機能モジュール１１がミラーデータオープンコマンドを発行したときの処理を説明する図である。以下，図５に示す（ａ）〜（ｈ）に従って説明する。
【００６０】
（ａ）まず，ソフトウェア１０内の機能モジュール１１が，ある原本データを参照または更新したい場合には，事前にその原本データの名称をパラメータとするミラーデータオープンコマンドを発行する。このとき，機能モジュール１１は，原本データが同一のソフトウェア１０内にあるか，外部のソフトウェア２０にあるかということを意識する必要はない。ミラーデータオープンコマンドの発行により，モジュール間通信制御部１４によって，ミラーデータオープン要求が共有データ管理機能モジュール１２および通信機能モジュール１３に同時に送信される。
【００６１】
本実施例では，機能モジュール１１からの要求を，共有データ管理機能モジュール１２と通信機能モジュール１３とが同時に受け取ることができるように，共有データ管理機能モジュール１２と通信機能モジュール１３のモジュール名を同一モジュール名としている。
【００６２】
このミラーデータオープン要求に対して，共有データ管理機能モジュール１２は，原本データ管理テーブル１２１を検索し，指定名称のデータの有無を確認する。共有データ管理機能モジュール１２では，指定された名称の原本データを持たないので何も処理をしない。
【００６３】
（ｂ）通信機能モジュール１３は，ミラーデータオープン要求を受信すると，ネットワーク３を介してソフトウェア２０内の通信機能モジュール２３へミラーデータオープン要求を送信する。
【００６４】
（ｃ）通信機能モジュール２３は，他のソフトウェア１０の通信機能モジュール１３からミラーデータオープン要求を受信すると，モジュール間通信制御部２４を経由して共有データ管理機能モジュール２２へミラーデータオープン要求を送信する。
【００６５】
（ｄ）〜（ｆ）共有データ管理機能モジュール２２は，図４で説明したミラーデータオープン処理を実行する。すなわち，パラメータで指定された原本データの名称から原本データ管理テーブル２２１を検索し，要求に対応する原本データがある場合にはミラーデータ管理テーブル２２３にミラーデータ管理情報２２３−ｊを追加して，ミラーデータの格納領域を確保し，ミラーデータ番号を機能モジュール２１へ返却する。
【００６６】
（ｇ）機能モジュール２１は，受け取ったミラーデータ番号を通信機能モジュール１３へ送信する。
【００６７】
（ｈ）通信機能モジュール１３は，原本データ自体は持たないが，共有データ管理機能モジュール２２と同様に，ミラーデータ管理テーブル１３１とミラーデータ格納領域１３２とを持つ。これらは，共有データ管理機能モジュール２２が持つミラーデータ管理テーブル２２３とミラーデータ格納領域２２４のそれぞれ一部をコピーした内容となっている。通信機能モジュール１３は，受け取ったミラーデータ番号に基づいて，ミラーデータ管理テーブル１３１に新たなミラーデータ管理情報の領域を確保し，新たなミラーデータ番号を生成して，機能モジュール１１へこの新たなミラーデータ番号を返却する。
【００６８】
なお，機能モジュール１１からのミラーデータオープン要求に対し，同じソフトウェア１０内の共有データ管理機能モジュール１２が原本データを所持している場合には，通信機能モジュール１１は何も行わず，共有データ管理機能モジュール１２がミラーデータ管理テーブル１２３にミラーデータ管理情報を生成し，そのミラーデータ番号を機能モジュール１１に返却する。
【００６９】
図６は，図５に示すミラーデータオープン時の機能モジュール１１の処理フローの一例を示す図である。まず，機能モジュール１１は，ミラーデータの格納領域を確保したい場合には，共有データ管理機能モジュール１２および通信機能モジュール１３に対しミラーデータオープンコマンドによりミラーデータオープン要求を送信する（ステップＳ１０１）。モジュール間通信制御部１４では，要求の送信先をモジュールの識別子（モジュール名）で決定する。ミラーデータオープンコマンドの処理において，ミラーデータオープン要求の送信先は，共有データ管理機能モジュール１２および通信機能モジュール１３であるが，これは本実施例では，通信機能モジュール１３と共有データ管理機能モジュール１２とで同じモジュール名を割り当てているからである。このため，機能モジュール１１からのミラーデータオープン要求は，共有データ管理機能モジュール１２と通信機能モジュール１３の両方に送られる。
【００７０】
機能モジュール１１は，ミラーデータオープンコマンドに対する処理結果の返却値として，共有データ管理機能モジュール１２または通信機能モジュール１３からミラーデータ番号を受け取る。（ステップＳ１０２）。このミラーデータ番号は，後の処理におけるミラーデータを介した原本データの参照および更新に用いられる。
【００７１】
図７は，図５に示すミラーデータオープン時の共有データ管理機能モジュール１２の処理フローの一例を示す図である。共有データ管理機能モジュール１２は，ミラーデータオープン要求を受信する（ステップＳ１１１）。パラメータで指定された原本データの名称で原本データ管理テーブル１２１を検索する（ステップＳ１１２）。該当する原本データの名称が原本データ管理テーブル１２１に登録されていないので，返却値なしとして（ステップＳ１１３），処理を終了する。
【００７２】
図８は，図５に示すミラーデータオープン時の通信機能モジュール１３の処理フローの一例を示す図である。まず，通信機能モジュール１３は，ミラーデータオープン要求を受信する（ステップＳ１２１）。次に，送信元が自分自身かを判断する（ステップＳ１２２）。このステップＳ１２２の処理を行うのは，通信機能モジュール１３がソフトウェア２０から送信されたミラーデータオープン要求を受けて共有データ管理機能モジュール１２にミラーデータオープン要求を送信する場合に，共有データ管理機能モジュール１２と通信機能モジュール１３とが同一の識別子（モジュール名称）であるため，このミラーデータオープン要求が通信機能モジュール１３自身にも送信されることがあるからである。そのため，送信元が自分自身の場合には，何もしないで処理を終了する。
【００７３】
送信元が自分自身でない場合には，予め通信先として設定された通信先ソフトウェアの通信機能モジュール２３へミラーデータオープン要求をネットワーク３を介して送信する（ステップＳ１２３）。本実施例においては，通信機能モジュール間の通信は，例えば，ＴＣＰ／ＩＰ等の通信プロトコルを使用する。通信先は，データを共有する可能性のあるすべてのソフトウェアの通信機能モジュールに対するＩＰアドレスや通信ポート等の情報であり，これらはあらかじめ通信機能モジュール１３内に登録されている。
【００７４】
次に，通信先の通信機能モジュール２３からミラーデータオープン要求に対する返却値として，ミラーデータ番号を受信する（ステップＳ１２４）。そして，受信したミラーデータ番号に通信機能モジュール１３の識別情報を付与し，新たなミラーデータ番号を生成する（ステップＳ１２５）。このステップＳ１２５の処理は，共有データ管理機能モジュール１２で管理されるミラーデータ番号と，他の共有データ管理機能モジュール２２で管理される原本データのミラーデータを特定するミラーデータ番号とが一致しないようにするための処理である。
【００７５】
本発明においては，ミラーデータ番号の変換方法は，通信機能モジュール１３が受信したミラーデータ番号が共有データ管理機能モジュール１２で管理されるミラーデータ番号と一致しないようにする方法であれば，その手段は問わない。例えば，ミラーデータ番号に−１を乗じて新たなミラーデータ番号を生成してもよい。
【００７６】
次に，ミラーデータオープン要求に含まれるパラメータと新たに生成したミラーデータ番号からミラーデータ管理情報をミラーデータ管理テーブル１３１に追加する（ステップＳ１２６）。そして，新たなミラーデータ番号を返却値（戻り値）として要求元の機能モジュール１１に返却し（ステップＳ１２７），処理を終了する。
【００７７】
図９は，図５に示すミラーデータオープン時の通信機能モジュール２３の処理フローの一例を示す図である。通信機能モジュール２３は，通信機能モジュール１３からミラーデータオープン要求を受信すると（ステップＳ１３１），共有データ管理機能モジュール２２へミラーデータオープン要求を送信する（ステップＳ１３２）。共有データ管理機能モジュール２２から要求に対する返却値としてミラーデータ番号を受信する（ステップＳ１３３）。受信したミラーデータ番号を返却値として，要求元の通信機能モジュール１３へ返却し（ステップＳ１３４），処理を終了する。
【００７８】
図１０は，図５示すミラーデータオープン時の共有データ管理機能モジュール２２の処理フローの一例を示す図である。共有データ管理機能モジュール２２は，通信機能モジュール２３からミラーデータオープン要求を受信する（ステップＳ１４１）。ミラーデータオープン要求には，原本データの名称，対応する原本データ更新時のミラーデータの同期更新の有無，更新通知の有無などのデータ更新時の動作指定であるアクションタイプ，アクションタイプが更新通知ありの時に，ミラーデータ参照先のモジュールに送信されるコマンド番号であるコマンドコードが含まれている。
【００７９】
共有データ管理機能モジュール２２は，受信した要求から原本データの名称を取り出し（ステップＳ１４２），原本データ管理テーブル２２１を検索して要求に対応する原本データがあるか否かを判断する（ステップＳ１４３）。要求に対応する原本データがない場合には処理を終了し，要求に対応する原本データがある場合には，ミラーデータ管理テーブル２２３にミラーデータ管理情報を追加して（ステップＳ１４４），追加したミラーデータ管理情報を示すミラーデータ番号を返却値として，要求元の通信機能モジュール２３に返却し（ステップＳ１４５），処理を終了する。
【００８０】
〔共有データの参照処理〕
図１１は，ソフトウェア１０内の機能モジュール１１がソフトウェア２０内の共有データ管理機能モジュール２２で管理されるデータを参照する際の処理概要を示す図である。以下，図１１に示す（ａ）〜（ｈ）に従って説明する。
【００８１】
（ａ）機能モジュール１１は，ミラーデータを介して原本データを参照したいときに，データ取得コマンドを発行し，共有データモジュール１２および通信機能モジュール１３に対して各機能モジュール１１間で共有する共有データの参照要求を送信する。この参照要求には，データ取得コマンドのパラメータで指定されたミラーデータ番号，参照先頭位置（ミラーデータ格納領域２２４へコピーする原本データの先頭からのオフセット値），参照データサイズ等の情報が含まれている。
【００８２】
（ｂ）通信機能モジュール１３は，各機能モジュール１１から共有データの参照要求を受信し，共有データ管理機能モジュール１２に要求された共有データが存在しない場合，通信先のソフトウェア２０内の通信機能モジュール２３に共有データの参照要求を送信する。このとき，ミラーデータ番号は，ソフトウェア２０におけるミラーデータ番号に変換する。
【００８３】
（ｃ）この参照要求を受信した通信機能モジュール２３は，ソフトウェア２０内の共有データ管理機能モジュール２２へ参照要求を送る。
【００８４】
（ｄ）共有データ管理機能モジュール２２は，参照要求を受信すると，ミラーデータ格納領域２２４に実体データ（ミラーデータ）の領域確保を行い，原本データ格納領域２２２に格納された共有データ（原本データ）のうち，共有データの参照要求に対応する原本データを特定し，この原本データをミラーデータ格納領域２２４へコピーして，ミラーデータを生成する。
【００８５】
（ｅ）その後，共有データ管理機能モジュール２２は，入出力インタフェース２７，２５，モジュール間通信制御部２４を介して，参照要求元の通信機能モジュール２３へ生成されたミラーデータの格納領域位置を返却する。この格納領域位置情報は，例えば参照するミラーデータが格納されているメモリアドレスとデータサイズの情報からなる。
【００８６】
（ｆ）通信機能モジュール２３は，返却されたミラーデータの格納領域位置によりミラーデータ格納領域２２４を参照して共有データを取得し，参照結果である共有データ（参照データ）を要求元の通信機能モジュール１３へ返却する。
【００８７】
（ｇ）通信機能モジュール２３から参照データを受け取った通信機能モジュール１３は，自モジュール内のミラーデータ格納領域１３２に，受け取った参照データを格納することにより，ミラーデータを生成し，ミラーデータ管理テーブル１３１を更新する。
【００８８】
（ｈ）その後，通信機能モジュール１３は，ミラーデータ格納領域１３２において生成したミラーデータのデータ格納領域位置を要求元の機能モジュール１１へ返却する。機能モジュール１１は，返却されたミラーデータの格納領域位置により，ミラーデータ格納領域１３２に格納された共有データを，随時参照することが可能になる。
【００８９】
なお，ソフトウェア１０内の共有データ管理機能モジュール１２に機能モジュール１１から要求された共有データが存在する場合には，共有データ管理機能モジュール１２は，自モジュール内のミラーデータ格納領域１２４に実体データ（ミラーデータ）の領域確保を行う。
【００９０】
そして，共有データ管理機能モジュール１２は，原本データ格納領域１２２に格納された共有データ（原本データ）のうち，共有データの参照要求に対応する原本データを特定して上記確保済みの領域へ，原本データを指定サイズ分コピーすることにより，ミラーデータを生成し，参照要求元の機能モジュール１１へ生成したミラーデータの格納領域位置を返却する。
【００９１】
図１２は，ソフトウェア１０から共有データの参照要求を受信した通信機能モジュール２３が共有データ管理機能モジュール２２に共有データの参照を要求した際の処理の詳細を示す図である。以下，図１２に示す（ａ）〜（ｇ）に従って説明する。
【００９２】
（ａ）共有データ管理機能モジュール２２は，入出力インタフェース２５，２７，モジュール間通信制御部２４を介し，通信機能モジュール２３から共有データの参照要求を受信する。
【００９３】
（ｂ）共有データ管理機能モジュール２２は，ミラーデータ格納領域２２４に実体データ（ミラーデータ）の領域確保を行い，該確保された領域情報をミラーデータ管理テーブル２２３におけるミラーデータ番号で特定されるミラーデータ管理情報に格納する。
【００９４】
（ｃ）〜（ｄ）次に，共有データ管理機能モジュール２２は，ミラーデータ管理テーブル２２３中のミラーデータ管理情報を参照し，ミラーデータ管理情報中のポインタによって原本データ管理テーブル２２１中の該当する原本データ管理情報を参照し，参照要求に対応する原本データ格納領域２２２の原本データを特定し，その格納位置情報を取得する。
【００９５】
（ｅ）〜（ｆ）共有データ管理機能モジュール２２は，取得した原本データの格納位置情報により原本データ格納領域２２２を参照し，領域確保済みのミラーデータ格納領域２２４へ上記特定された原本データのうちミラーデータが参照する範囲についてコピーし，ミラーデータを生成する。また，共有データ管理機能モジュール２２は，ミラーデータが参照する範囲を原本データ管理テーブル２２１に格納する。
【００９６】
（ｇ）その後，共有データ管理機能モジュール２２は，入出力インタフェース２７，２５，モジュール間通信制御部２４を介して，参照要求元の通信機能モジュール２３へ生成されたミラーデータの格納領域位置を返却する。
【００９７】
なお，例えば，ソフトウェア１０内の機能モジュール１１から共有データ管理機能モジュール１２に共有データの参照を要求する場合も，共有データ管理機能モジュール１２内に参照要求に対応する原本データがある時は，上記と同様の処理が行われることにより共有データ管理機能モジュール１２内にミラーデータが生成され，生成されたミラーデータの格納領域位置が機能モジュール１１へ返却される。
【００９８】
図１３は，図１１に示す共有データの参照要求をする場合の機能モジュール１１の処理フローの一例を示す図である。ここでは参照要求された共有データ（原本データ）が他のソフトウェア２０内にある場合の処理の例を説明する。
【００９９】
まず，機能モジュール１１は，データ取得コマンドを発行し，共有データ管理機能モジュール１２および通信機能モジュール１３へ共有データの参照要求を送信する（ステップＳ１）。機能モジュール１１は，他のモジュールとの通信を行う際に，通信先のモジュールの識別子（モジュール名）を使用する。前述のように，本実施例では，通信機能モジュール１３は共有データ管理機能モジュール１２と同じ識別子（モジュール名）が割り当てられて，その識別子がモジュール間通信制御部１４のモジュール管理情報領域１４３（図２参照）に登録されている。このため，機能モジュール１１からの参照要求は，共有データ管理機能モジュール１２と通信機能モジュール１３の両方に送られる。
【０１００】
機能モジュール１１は，データ取得コマンドの実行結果として返却されたミラーデータの格納領域位置（ポインタ）を取得する（ステップＳ２）。ステップＳ１において，共有データ管理機能モジュール１２内に参照要求に対応する共有データがある場合には，機能モジュール１１は共有データ管理機能モジュール１２からミラーデータの格納領域位置（ポインタ）の返却を受ける。
【０１０１】
共有データ管理機能モジュール１２内に参照要求に対応する共有データがない場合には，ソフトウェア２０内の通信機能モジュール２３から受け取った参照データにより通信機能モジュール１３内に生成されたミラーデータの格納領域位置（ポインタ）の返却を受ける。
【０１０２】
図１４は，共有データの参照要求がされた場合の図１１に示す共有データ管理機能モジュール１２の処理フローの一例を示す図である。共有データ管理機能モジュール１２は，モジュール間通信制御部１４を介して共有データの参照要求を受信する（ステップＳ１１）。共有データ管理機能モジュール１２は，参照要求で指定されたミラーデータ番号に該当するミラーデータを保持していないため，返却値なしとして（ステップＳ１２），処理を終了する。
【０１０３】
図１５は，共有データの参照要求がされた場合の図１１に示す通信機能モジュール１３の処理フローの一例を示す図である。通信機能モジュール１３は共有データの参照要求を受信すると（ステップＳ２１），送信元が自分自身であるかを判断する（ステップＳ２２）。送信元が自分自身である場合には処理を終了し，送信元が自分自身でない場合には，共有データの参照要求のミラーデータ番号から，通信機能モジュール１３の識別情報を除去する（ステップＳ２３）。
【０１０４】
ステップＳ２３の処理は，通信機能モジュール１３がミラーデータ管理テーブル１３１内で管理している参照要求のミラーデータ番号をソフトウェア２０内の共有データ管理機能モジュール２２内で管理しているミラーデータ番号に変換する処理である。
【０１０５】
そして，あらかじめ通信先として設定された通信先ソフトウェアの通信機能モジュール２３へ共有データの参照要求を送信する（ステップＳ２４）。
【０１０６】
通信機能モジュール１３は，共有データの参照要求に対する結果として，通信機能モジュール２３から参照データを受信する（ステップＳ２５）。通信機能モジュール１３は，受信した参照データをミラーデータ格納領域１３２に書き込んで，ミラーデータを生成する（ステップＳ２６）。そして，共有データの参照要求に含まれるパラメータと，生成したミラーデータから，ミラーデータ管理テーブル１３１のミラーデータ管理情報を更新し（ステップＳ２７），データを書き込んだ格納領域位置（ポインタ）を返却値として機能モジュール１１へ返却し（ステップＳ２８），処理を終了する。
【０１０７】
図１６は，共有データの参照要求がされた場合の図１１に示す通信機能モジュール２３の処理フローの一例を示す図である。通信機能モジュール２３は，ソフトウェア１０内の通信機能モジュール１３からの共有データの参照要求を受信する（ステップＳ３１）。参照要求を受信したならば，その参照要求を共有データ管理機能モジュール２２へ送信する（ステップＳ３２）。
【０１０８】
参照要求に対する処理結果の返却値として，共有データ管理機能モジュール２２から参照データ（ミラーデータ）の格納領域位置（ポインタ）を受信する（ステップＳ３３）。その返却された参照データの格納領域位置に基づいてミラーデータ格納領域２２４から該当する参照データ（ミラーデータ）を読み出して，その参照データを返却値として要求元のソフトウェア１０内の通信機能モジュール１３へ返却する（ステップＳ３４）。
【０１０９】
図１７は，通信機能モジュール２３から共有データの参照要求を受けた場合の図１１に示す共有データ管理機能モジュール２２の処理フローの一例を示す図である。共有データ管理機能モジュール２２は，共有データの参照要求を受信する（ステップＳ４１）。共有データ管理機能モジュール２２は，受信した参照要求からミラーデータ番号を取り出し（ステップＳ４２），ミラーデータ番号に対応するミラーデータ管理情報から参照要求に対応する共有データ（原本データ）があるか否かを判断する（ステップＳ４３）。原本データがあるか否かは，ミラーデータ番号に対応するミラーデータ管理情報が有効であるか否か，ミラーデータ管理情報中に原本データ管理情報へのポインタがあるか否かにより判断する。
【０１１０】
参照要求に対応する共有データ（原本データ）がない場合には，処理を終了し，参照要求に対応する共有データがある場合には，参照要求の中の参照位置，サイズ情報をもとに，原本データからミラーデータをコピーして生成する（ステップＳ４４）。
【０１１１】
次に，対応するミラーデータ管理情報が，生成したミラーデータを指すよう，ミラーデータ管理テーブル２２３内のミラーデータ管理情報を更新し（ステップＳ４５），生成したミラーデータの格納領域位置（ポインタ）を返却値として通信機能モジュール２３に返却し（ステップＳ４６），処理を終了する。
【０１１２】
〔共有データの更新処理〕
図１８は，ソフトウェア２０内の共有データ管理機能モジュール２２で管理されるデータを更新する際の処理概要を示す図である。以下，図１８に示す（ａ）〜（ｈ）に従って説明する。
【０１１３】
（ａ）機能モジュール１１は，共有データ（原本データ）を更新したい場合，データ更新コマンドを発行し，共有データ管理機能モジュール１２および通信機能モジュール１３に対して各機能モジュール１１間で共有する共有データの更新要求を送信する。共有データ管理機能モジュール１２は，対応する共有データを持たないので何も処理しない。
【０１１４】
（ｂ）通信機能モジュール１３は，ソフトウェア１０内の機能モジュール１１からの共有データ更新要求を受信し，通信先のソフトウェア２０内の通信機能モジュール２３へ共有データの更新要求を送信する。
【０１１５】
（ｃ）この更新要求を受信した通信機能モジュール２３は，ソフトウェア２０内の共有データ管理機能モジュール２２へ更新要求を送る。
【０１１６】
（ｄ）共有データ管理機能モジュール２２は，更新要求を受信すると，原本データ格納領域２２２の原本データを更新した後，該原本データを参照しているミラーデータ格納領域２２４に更新後の原本データをコピーして，ミラーデータを更新する。
【０１１７】
（ｅ）その後，共有データ管理機能モジュール２２は，入出力インタフェース２７，２５，モジュール間通信制御部２４を介して，当該ミラーデータを参照している通信機能モジュール２３に更新通知を送信する。この更新通知は，通知先モジュールの名称，通知時コマンドコード，更新されたミラーデータ格納領域２２４の先頭からのオフセット値，更新されたミラーデータのサイズ等の情報を含む。
【０１１８】
（ｆ）通信機能モジュール２３は，受信した更新通知に含まれる情報に基づいて，共有データ管理機能モジュール２２のミラーデータ格納領域２２４内のデータを読み込んで更新データを取得し，この更新データを通信機能モジュール１３へ送信する。
【０１１９】
（ｇ）〜（ｈ）更新データを受信した通信機能モジュール１３は，受信した更新データに基づき自モジュール内の対応するミラーデータを更新し，ミラーデータを参照している機能モジュール１１へ更新通知を送信する。
【０１２０】
なお，ソフトウェア１０内の共有データ管理機能モジュール１２に機能モジュール１１から更新要求された共有データが存在する場合には，共有データ管理機能モジュール１２は，自モジュール内の原本データ格納領域１２２の原本データを更新した後，該原本データを参照しているミラーデータ格納領域１２４に，更新後の原本データをコピーすることによりミラーデータを更新し，入出力インタフェース１７，１６，モジュール間通信制御部１４を介して更新要求元の機能モジュール１１へ更新通知を送信する。
【０１２１】
図１９は，通信機能モジュール２３が共有データ管理機能モジュール２２に共有データの更新を要求したときの処理概要を示す図である。以下，図１９に示す（ａ）〜（ｆ）に従って説明する。
【０１２２】
（ａ）共有データを更新する場合には，入出力インタフェース２５，２７，モジュール間通信制御部２４を介し，通信機能モジュール２３から更新要求を共有データ管理機能モジュール２２に送る。更新要求には，ミラーデータ番号，更新先頭位置（ミラーデータ格納領域２２４にコピーする原本データの先頭からのオフセット値），更新データサイズが含まれている。
【０１２３】
（ｂ）〜（ｃ）共有データ管理機能モジュール２２は，ミラーデータ管理テーブル２２３を検索し，ミラーデータ番号に対応するミラーデータ管理情報から原本データ管理テーブル２２１の原本データ管理情報を参照する。
【０１２４】
（ｄ）〜（ｅ）原本データ管理情報の参照により，原本データ格納領域２２２の更新する原本データの位置を特定し，その原本データを更新した後，該原本データを参照しているミラーデータ格納領域２２４に，更新後の原本データをコピーする。
【０１２５】
（ｆ）その後，共有データ管理機能モジュール２２は，入出力インタフェース２７，２５，モジュール間通信制御部２４を介して，更新した各ミラーデータを参照している通信機能モジュール２３に対して更新通知を送る。
【０１２６】
なお，例えば，ソフトウェア１０内の機能モジュール１１から共有データ管理機能モジュール１２に共有データの更新を要求する場合も，共有データ管理機能モジュール１２２内に更新要求に対応する原本データがあるときは，上記と同様の処理により，共有データ管理機能モジュール１２内において原本データ，ミラーデータが更新され，その更新通知が機能モジュール１１および更新通知を事前に要求している他の機能モジュールに送信される。
【０１２７】
図２０は，共有データの更新要求を行う場合の図１８に示す機能モジュール１１の処理フローの一例を示す図である。この例では，同じソフトウェア１０内の共有データ管理機能モジュール１２は，要求された共有データを持たないものとする。
【０１２８】
機能モジュール１１は，データ更新コマンドを発行し，共有データ管理機能モジュール１２および通信機能モジュール１３へ共有データの更新要求を送信する（ステップＳ５１）。機能モジュール１１は，他のモジュールとの通信を行う際に，通信先のモジュールの識別子（モジュール名）を使用する。前述のように，通信機能モジュール１３は共有データ管理機能モジュール１２と同じ識別子（モジュール名）が割り当てられて，その識別子がモジュール間通信制御部１４のモジュール管理情報領域１４３に登録されている。このため，機能モジュール１１からの更新要求は共有データ管理機能モジュール１２と通信機能モジュール１３の両方に送られる。
【０１２９】
機能モジュール１１は，更新要求に対する処理結果として更新通知を受信する（ステップＳ５２）。ステップＳ５１において，共有データ管理機能モジュール１２内に更新要求された共有データがある場合には，機能モジュール１１は共有データ管理機能モジュール１２からミラーデータの更新通知を受信する。共有データ管理機能モジュール１２内に更新要求された共有データがない場合には，通信機能モジュール１３からミラーデータの更新通知を受信する。
【０１３０】
図２１は，共有データの更新要求がされた場合の図１８に示す共有データ管理機能モジュール１２の処理フローの一例を示す図である。まず，共有データ管理機能モジュール１２は，共有データの更新要求を受信する（ステップＳ６１）。共有データ管理機能モジュール１２は，更新要求で指定されたデータを保持していないため，返却値なしとして（ステップＳ６２），処理を終了する。
【０１３１】
図２２は，共有データの更新要求がされた場合の図１８に示す通信機能モジュール１３の処理フローの一例を示す図である。通信機能モジュール１３は共有データの更新要求を受信すると（ステップＳ７１），送信元が自分自身であるかを判断する（ステップＳ７２）。送信元が自分自身である場合には処理を終了し，送信元が自分自身でない場合には，共有データの更新要求のミラーデータ番号から，通信機能モジュール１３の識別情報を除去する（ステップＳ７３）。そして，予め通信先として設定された通信先ソフトウェアの通信機能モジュール２３へ更新要求を送信する（ステップＳ７４）。
【０１３２】
通信機能モジュール１３は，更新要求に対する処理結果として，通信機能モジュール２３から更新データを受信する（ステップＳ７５）。次に，通信機能モジュール１３は，受信した更新データに基づいて，自モジュールのミラーデータ格納領域１３２内の対応するミラーデータを更新する（ステップＳ７６）。また，共有データの更新要求に含まれるパラメータと，更新したミラーデータから，ミラーデータ管理テーブル１３１のミラーデータ管理情報を更新し（ステップＳ７７），当該ミラーデータを参照している機能モジュールへ更新通知を送信して（ステップＳ７８），処理を終了する。
【０１３３】
図２３は，共有データの更新要求がされた場合の図１８に示す通信機能モジュール２３の処理フローの一例を示す図である。通信機能モジュール２３は，ソフトウェア１０内の通信機能モジュール１３からの共有データの更新要求を受信する（ステップＳ８１）。次に，共有データ管理機能モジュール２２へ，共有データの更新要求を送信する（ステップＳ８２）。
【０１３４】
更新要求に対する処理結果として更新データを受信する（ステップＳ８３）。具体的には，共有データ管理機能モジュール２２から更新通知を受け取り，更新通知に含まれる更新データの格納位置情報に基づいて，共有データ管理機能モジュール２２のミラーデータ格納領域２２４内の更新データを読み込んで取得する。その取得した更新データを返却値として，要求元のソフトウェア１０内の通信機能モジュール１３へ返却し（ステップＳ８４），処理を終了する。
【０１３５】
図２４は，通信機能モジュール２３から共有データの更新要求を受けた場合の図１８に示す共有データ管理機能モジュール２２の処理フローの一例を示す図である。共有データ管理機能モジュール２２は，共有データの更新要求を受信する（ステップＳ９１）。次に，共有データ管理機能モジュール２２は，受信した更新要求からミラーデータ番号を取り出し（ステップＳ９２），更新要求に対応する共有データ（原本データ）があるか否かを判断する（ステップＳ９３）。原本データがあるか否かは，例えば，ミラーデータ番号に対応するミラーデータ管理情報の有無，またはミラーデータ番号に対応するミラーデータ管理情報に原本データ管理情報へのポインタがあるか否かにより判断する。
【０１３６】
更新要求に対応する共有データ（原本データ）がない場合には，処理を終了し，更新要求に対応する共有データがある場合には，更新要求の中の参照位置，サイズ情報をもとに，原本データからミラーデータ格納領域２２４にミラーデータをコピーして生成する（ステップＳ９４）。次に，共有データ管理機能モジュール２２は，対応するミラーデータ管理情報が，生成したミラーデータを指すよう，ミラーデータ管理テーブル２２３内のミラーデータ管理情報を更新し（ステップＳ９５），生成したミラーデータの格納領域位置（ポインタ）を返却値として通信機能モジュール２３に返却し（ステップＳ９６），処理を終了する。
【０１３７】
〔共有データの更新通知〕
図２５は，ソフトウェア２０内の共有データが更新された場合に，更新された共有データのミラーデータをオープンしている更新通知が必要な機能モジュールに，更新通知を送信する処理の一例を説明する図である。
【０１３８】
ここでは，ソフトウェア２０内の機能モジュール２１が共有データ管理機能モジュール２２内の共有データ（原本データ）を更新し，その更新通知を共有データ管理機能モジュール２２が通信機能モジュール２３に送信し，通信機能モジュール２３が通信機能モジュール１３に更新データを送信する場合の例を，図２５に示す（ａ）〜（ｆ）に従って説明する。
【０１３９】
共有データ（原本データ）を更新したときの更新通知は，データ更新コマンドを発行した更新要求元の機能モジュールへ送信されるとともに，ミラーデータオープンコマンドを発行した機能モジュールが，データ更新時の動作指定のパラメータで「更新通知有り」を指定している場合に，その機能モジュールに対して送信される。その更新通知のときには，ミラーデータオープンコマンドのパラメータで指定されたコマンドコードを通知する。このコマンドコードにより，更新通知を受けた機能モジュールは，どのミラーデータが更新されたかを知ることができる。
【０１４０】
（ａ）〜（ｂ）ソフトウェア２０内の共有データ管理機能モジュール２２は，機能モジュール２１から共有データの更新要求を受けると，原本データおよびミラーデータを更新する。
【０１４１】
（ｃ）次に，共有データ管理機能モジュール２２は，更新された原本データの原本データ管理情報におけるメモリ更新通知先格納テーブル（図３（Ｃ）参照）から，更新通知を必要とする機能モジュールのモジュール名を取得し，更新通知先としてそのモジュール名を指定し，モジュール間通信制御部２４を介して更新通知を送信する。この例では，更新通知先である機能モジュール１１へ更新通知を送信するため，まず更新通知が通信機能モジュール２３へ送信される。
【０１４２】
（ｄ）更新通知を受信した通信機能モジュール２３は，更新通知に含まれる更新データの格納位置情報に基づいて，共有データ管理機能モジュール２２のミラーデータ格納領域２２４内の更新データを読み込んで取得し，ソフトウェア１０内の通信機能モジュールへ更新データを送信する。
【０１４３】
（ｅ）通信機能モジュール１３は，受信した更新データから，自モジュール内の対応するミラーデータ格納領域１３２のミラーデータおよびミラーデータ管理テーブル１３１を更新する。
【０１４４】
（ｆ）その後，通信機能モジュール１３は，そのミラーデータを参照している機能モジュール１１ヘ更新通知を送信する。
【０１４５】
本発明においては，生成されたミラーデータは，各機能モジュールからのミラーデータクローズコマンドによるミラーデータ解放要求により解放（消去）される。図２６は，機能モジュール２１が共有データ管理機能モジュール２２にミラーデータの解放を要求する際の処理概要を示す図である。
【０１４６】
図２６では，共有データ管理機能モジュール２２内のミラーデータを解放する処理について説明するが，例えばソフトウェア１０内の機能モジュール１１が共有データ管理機能モジュール１２および通信機能モジュール１３に対してミラーデータの解放を要求した場合にも，同様に処理される。以下，図２６に示す（ａ）〜（ｆ）に従って説明する。
【０１４７】
（ａ）機能モジュール２１でデータの共有が不要となった場合には，機能モジュール２１は，ミラーデータ番号をパラメータとしてミラーデータクローズコマンドを発行する。これにより，入出力インタフェース２６，２７，モジュール間通信制御部２４を介し，機能モジュール２１から共有データ管理機能モジュール２２へ共有解除要求（ミラーデータ解放要求）が送信される。
【０１４８】
（ｂ）〜（ｃ）共有データ管理機能モジュール２２は，ミラーデータ管理テーブル２２３から，ミラーデータ番号をもとに，送信元の機能モジュール２１のミラーデータオープン要求により作成したミラーデータ管理情報を削除する。この削除処理では，図３に示すミラーデータ管理情報２２３−ｊにおける「この要素の状態」を示す状態フラグを，「解放中再使用可能」にする。また，ミラーデータ格納領域２２４から送信元の機能モジュール２１のミラーデータ参照要求により作成した領域を解放する。
【０１４９】
（ｄ）さらに，原本データ管理テーブル２２１を参照し，対応するミラーデータへの参照情報を削除して原本データ管理情報を更新する。
【０１５０】
（ｅ）その後，共有データ管理機能モジュール２２は，入出力インタフェース２７，２６，モジュール間通信制御部２４を介し，送信元の機能モジュール２１へ解放終了の応答を返す。
【産業上の利用可能性】
【０１５１】
本発明は，ソフトウェアを構成する各機能モジュールと，ネットワークを介して接続された外部のソフトウェア内の機能モジュールとの間でのデータ共有，データ同期を実現するという用途に適用できる。
【図面の簡単な説明】
【０１５２】
【図１】本発明の実施例に係るシステム構成の概要を示す図である。
【図２】モジュール間通信制御部による各モジュール間の信号振り分け処理の概要を示す図である。
【図３】原本データ管理テーブル，ミラーデータ管理テーブルのデータ構成の例を示す図である。
【図４】共有データ管理機能モジュールにおけるミラーデータオープンコマンドに対する処理を説明する図である。
【図５】ミラーデータオープン時の処理を説明する図である。
【図６】ミラーデータオープン時の機能モジュールの処理フローチャートである。
【図７】ミラーデータオープン時の共有データ管理機能モジュールの処理フローチャートである。
【図８】ミラーデータオープン時の通信機能モジュール（送信側）の処理フローチャートである。
【図９】ミラーデータオープン時の通信機能モジュール（受信側）の処理フローチャートである。
【図１０】ミラーデータオープン時の共有データ管理機能モジュールの処理フローチャートである。
【図１１】共有データ管理機能モジュールで管理されるデータの参照処理の概要を示す図である。
【図１２】共有データの参照を要求する際の処理の詳細を示す図である。
【図１３】共有データの参照要求をする場合の機能モジュールの処理フローチャートである。
【図１４】共有データの参照要求に対する共有データ管理機能モジュールの処理フローチャートである。
【図１５】共有データの参照要求に対する通信機能モジュール（送信側）の処理フローチャートである。
【図１６】共有データの参照要求に対する通信機能モジュール（受信側）の処理フローチャートである。
【図１７】共有データの参照要求に対する共有データ管理機能モジュールの処理フローチャートである。
【図１８】共有データ管理機能モジュールで管理されるデータの更新処理の概要を示す図である。
【図１９】共有データの更新を要求する際の処理概要を示す図である。
【図２０】共有データの更新要求をする場合の機能モジュールの処理フローチャートである。
【図２１】共有データの更新要求に対する共有データ管理機能モジュールの処理フローチャートである。
【図２２】共有データの更新要求に対する通信機能モジュール（送信側）の処理フローチャートである。
【図２３】共有データの更新要求に対する通信機能モジュール（受信側）の処理フローチャートである。
【図２４】共有データの更新要求に対する共有データ管理機能モジュールの処理フローチャートである。
【図２５】共有データ管理機能モジュールで管理されるデータの更新処理に対する更新通知の概要を示す図である。
【図２６】共有データ管理機能モジュールにおけるミラーデータクローズコマンドに対する処理を説明する図である。
【符号の説明】
【０１５３】
１    第１のデータ処理装置
２    第２のデータ処理装置
３    ネットワーク
１０，２０  ソフトウェア
１１，２１  機能モジュール
１２，２２  共有データ管理機能モジュール
１３，２３  通信機能モジュール
１４，２４  モジュール間通信制御部
１５，１６，１７，２５，２６，２７  入出力インタフェース  
１２１，２２１  原本データ管理テーブル
１２２，２２２  原本データ格納領域
１２３，１３１，２２３  ミラーデータ管理テーブル
１２４，１３２，２２４  ミラーデータ格納領域
１４１  モジュール登録処理部
１４２  信号振り分け処理部
１４３  モジュール管理情報領域
【図１】
2005032171.tif 000003
【図２】
2005032171.tif 000004
【図３】
2005032171.tif 000005
【図４】
2005032171.tif 000006
【図５】
2005032171.tif 000007
【図６】
2005032171.tif 000008
【図７】
2005032171.tif 000009
【図８】
2005032171.tif 000010
【図９】
2005032171.tif 000011
【図１０】
2005032171.tif 000012
【図１１】
2005032171.tif 000013
【図１２】
2005032171.tif 000014
【図１３】
2005032171.tif 000015
【図１４】
2005032171.tif 000016
【図１５】
2005032171.tif 000017
【図１６】
2005032171.tif 000018
【図１７】
2005032171.tif 000019
【図１８】
2005032171.tif 000020
【図１９】
2005032171.tif 000021
【図２０】
2005032171.tif 000022
【図２１】
2005032171.tif 000023
【図２２】
2005032171.tif 000024
【図２３】
2005032171.tif 000025
【図２４】
2005032171.tif 000026
【図２５】
2005032171.tif 000027
【図２６】
2005032171.tif 000028