JP2005032171A - データ共有のための機能モジュール間通信制御システム,機能モジュール間通信制御方法,機能モジュール間通信制御プログラムおよびその記録媒体 - Google Patents
データ共有のための機能モジュール間通信制御システム,機能モジュール間通信制御方法,機能モジュール間通信制御プログラムおよびその記録媒体 Download PDFInfo
- Publication number
- JP2005032171A JP2005032171A JP2003273451A JP2003273451A JP2005032171A JP 2005032171 A JP2005032171 A JP 2005032171A JP 2003273451 A JP2003273451 A JP 2003273451A JP 2003273451 A JP2003273451 A JP 2003273451A JP 2005032171 A JP2005032171 A JP 2005032171A
- Authority
- JP
- Japan
- Prior art keywords
- data
- function module
- mirror
- module
- shared
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】ネットワークで接続された処理装置内のソフトウェア上の機能モジュール間でデータの共有とデータの同期を行うことを可能とする。
【解決手段】機能モジュール11が他のソフトウェア20と共有する原本データを参照または更新する場合に,原本データを複製したミラーデータを作成する。ミラーデータは,原本データを自ソフトウェア10が保持するかどうかによって,自ソフトウェア10内の共有データ管理機能モジュール12内に作成されるか,または通信機能モジュール13,23間の通信により,通信機能モジュール13内に作成される。通信機能モジュール13内のミラーデータは,原本データが更新された場合に更新通知により自動更新する。
【選択図】図1
【解決手段】機能モジュール11が他のソフトウェア20と共有する原本データを参照または更新する場合に,原本データを複製したミラーデータを作成する。ミラーデータは,原本データを自ソフトウェア10が保持するかどうかによって,自ソフトウェア10内の共有データ管理機能モジュール12内に作成されるか,または通信機能モジュール13,23間の通信により,通信機能モジュール13内に作成される。通信機能モジュール13内のミラーデータは,原本データが更新された場合に更新通知により自動更新する。
【選択図】図1
Description
本発明は,機能モジュール間のメモリデータ共有のための通信制御技術に関し,特に,1または複数の機能モジュールから構成されるソフトウェアプログラム(以下,単に「ソフトウェア」という)上の機能モジュールと他のソフトウェア上の機能モジュールとの間でデータの共有とデータの同期を行うことを可能とするデータ共有のための機能モジュール間通信制御システム,機能モジュール間通信制御方法,機能モジュール間通信制御プログラムおよびその記録媒体に関する。
従来のソフトウェアは,ある機能モジュールが,ネットワーク上の他のソフトウェアとのデータの共有や同期を行うには,自機能モジュール内にネットワークを経由して他のソフトウェア内の機能モジュールと通信しデータを送受するための機能や,同期を行うための機能を実装する必要がある。
例えば,以下の特許文献1には,ネットワーク上の相互に接続された機器間で,データを複製して共有・操作する方法が記載されている(特許文献1参照)。
また,例えば,以下の特許文献2には,ネットワークによって接続された第1及び第2の情報処理装置の各々が有する共有データ記憶手段の一貫性を保持させることにより,これらの情報処理装置間でデータを共有させるデータ共有方式が記載されている(特許文献2参照)。
特開2001−101015号公報
特開平11−149403号公報
しかし,ある特定のソフトウェア内でのみデータを共有することが可能な従来の技術では,ある機能モジュールは,ネットワークを経由して他のソフトウェア内の機能モジュールと通信しデータを送受するための機能や,同期を行うための機能を実装しない場合には,自身が属するソフトウェア内の他の機能モジュール以外の,他のソフトウェアに属する機能モジュールとデータ共有やデータ同期を行うことができなかった。
上記特許文献1に記載された技術は,共有データを1台の処理装置内の複数のコンポーネント間で参照,更新するとともに,複数の異なる処理装置におけるコンポーネント間でも参照,更新することを前提としていない。
また,上記特許文献2に記載された技術は,第1の情報処理装置の共有データ記憶手段に対して共有データの追加・更新があった場合に,共有先である第2の情報処理装置の属性やアプリケーションの種類によりデータ変換を行った上で,変換後のデータを第2の情報処理装置の共有データ記憶手段に登録させることを前提としている。この特許文献2に記載された技術においても,同一の処理装置内機能モジュール間および異なる処理装置内の機能モジュール間のデータ共有およびデータ同期を統一された簡易なインタフェースで提供することについては考慮されていない。
本発明は,上記従来技術の問題を解決し,
(1)同一のソフトウェア内の複数の機能モジュール間でデータの共有とデータの同期を行うことを可能にするとともに,あるソフトウェア内の機能モジュールと,他のソフトウェア内の機能モジュールとが,ネットワークを介してデータの共有とデータの同期を行う機能を開発・提供することにより,様々なソフトウェアにおいてネットワーク通信,データ共有,データ同期のための機能実装を不要とし,ソフトウェア開発コストを低減すること,
(2)同一のソフトウェア内の機能モジュール間でのデータ共有,データ同期機能を提供する共有データ管理機能を利用し,異なるソフトウェアに存在する機能モジュール間でも統一されたインタフェースによってデータ共有およびデータ同期を実現することによって,既存のソフトウェア内の機能モジュールを修正することなく,容易にネットワークを介した機能モジュール間のデータ共有,データ同期を可能にする手段を提供すること,
を目的とする。
(1)同一のソフトウェア内の複数の機能モジュール間でデータの共有とデータの同期を行うことを可能にするとともに,あるソフトウェア内の機能モジュールと,他のソフトウェア内の機能モジュールとが,ネットワークを介してデータの共有とデータの同期を行う機能を開発・提供することにより,様々なソフトウェアにおいてネットワーク通信,データ共有,データ同期のための機能実装を不要とし,ソフトウェア開発コストを低減すること,
(2)同一のソフトウェア内の機能モジュール間でのデータ共有,データ同期機能を提供する共有データ管理機能を利用し,異なるソフトウェアに存在する機能モジュール間でも統一されたインタフェースによってデータ共有およびデータ同期を実現することによって,既存のソフトウェア内の機能モジュールを修正することなく,容易にネットワークを介した機能モジュール間のデータ共有,データ同期を可能にする手段を提供すること,
を目的とする。
前記目的を達成するために,本発明は,1または複数の機能モジュールにより構成される1または複数のソフトウェアを搭載する処理装置がネットワークを介して接続されるシステムにおいて,前記各ソフトウェアは,複数の機能モジュール間で共有されるデータの原本データを管理する共有データ管理機能モジュールと,他のソフトウェアにおける通信機能モジュールとの通信を行う通信機能モジュールとを備え,前記共有データ管理機能モジュールは,前記機能モジュールまたは前記通信機能モジュールからの共有データの参照要求に対して,原本データのコピーであるミラーデータを作成して要求元の機能モジュールまたは通信機能モジュールに提供する手段と,前記機能モジュールまたは前記通信機能モジュールからの共有データの更新要求に対して,要求された原本データおよび対応するミラーデータを更新して,同じデータを共有している機能モジュールへ更新通知を行う手段とを備え,前記通信機能モジュールは,同じソフトウェア内の機能モジュールからの他のソフトウェアが原本データを持つ共有データに対する参照要求に対して,当該他のソフトウェアの通信機能モジュールに対して共有データの参照要求を送り,要求した共有データのミラーデータを受信してミラーデータを格納し,要求元の機能モジュールに提供する手段と,同じソフトウェア内の機能モジュールからの他のソフトウェアが原本データを持つ共有データに対する更新要求に対して,当該他のソフトウェアの通信機能モジュールに対して共有データの更新要求を送り,他のソフトウェアにおける原本データとミラーデータとを更新させ,更新通知を受信した場合に,自通信機能モジュールが管理する対応するミラーデータを更新する手段とを備える。
また,前記共有データ管理機能モジュールおよび前記通信機能モジュールは,前記機能モジュールに対して共有データに対する同一のアクセスインタフェースを提供し,前記機能モジュールに対して原本データが当該機能モジュールと同じソフトウェア内に存在するか,他のソフトウェア内に存在するかを意識させないことを特徴とする。
以上の処理手段は,コンピュータとソフトウェアプログラムとによって実現することができ,そのソフトウェアプログラムはコンピュータ読み取り可能な記録媒体に記録して提供することも,ネットワークを通して提供することも可能である。
本発明を用いることにより,ソフトウェアを構成する各機能モジュールが,ネットワークを介して接続された外部のソフトウェア内の機能モジュールとデータ共有が可能となる。
また,本発明を用いることにより,ネットワークを介したデータの共有,データの同期を専用の機能が担うことにより,外部のソフトウェアとのデータを共有する各機能モジュールの修正が共有データの管理に影響しないようになる。
また,本発明を用いることにより,外部のソフトウェアの機能モジュールとのデータ共有,データ同期を,ソフトウェア内の機能モジュールと同様の手段,手順にて実施可能となる。
なお,本発明は,先に本発明者等が特願2002−108495号で提案した「共有データ管理方法及び記録媒体」の発明をさらに改良・発展させ,ネットワークを介して接続される外部のソフトウェア内の機能モジュールとの間でもデータの共有および同期を実現できるようにしたものである。
本発明によれば,以下の効果を奏する。
(1)通信機能モジュールにより,独立して開発された各機能モジュールで,ネットワークで接続された他のソフトウェア内の機能モジュール間でのデータ共有,同期が可能となる。
(2)ネットワークで接続された複数のソフトウェアの複数の機能モジュール間でデータを共有する際に,各機能モジュールの変更によるデータ管理の不具合発生をなくすことが可能となる。
(3)ネットワークで接続された複数のソフトウェアで,共有データの更新を契機とした処理を,他の機能モジュールの動作や種類や数を意識することなく,共有データ管理機能モジュールからのデータ更新の信号をハンドリングするのみで,容易に実装することが可能となる。
(3)ネットワークで接続された複数のソフトウェアで,共有データの更新を契機とした処理を,他の機能モジュールの動作や種類や数を意識することなく,共有データ管理機能モジュールからのデータ更新の信号をハンドリングするのみで,容易に実装することが可能となる。
本発明は以下のような機能を備えた共有データ管理機能モジュールと通信機能モジュールとをソフトウェアに具備する。
(1)1または複数の機能モジュールにより構成されるソフトウェアにおいて,ソフトウェアを構成する各機能モジュールで共有する必要があるデータを保持し,各機能モジュールが共有データを参照する際に使用する原本データのコピーであるミラーデータを作成して各機能モジュールに提供し,データ書き換えの都度ミラーデータの自動更新や同じデータを共有している各機能モジュールヘの通知を行うための共有データ管理機能モジュールを,ソフトウェア内に具備する。
(2)ソフトウェア外部とのネットワークを介した通信を行うための通信機能モジュールを,ソフトウェア内に具備する。
(3)通信機能モジュールは,ネットワーク上の他のソフトウェア内の,データ共有,データ同期を行う通信機能モジュールと接続される。
(4)通信機能モジュールは,自身が属するソフトウェア内の他の各機能モジュールが共有データ管理機能モジュールへ送信したデータ管理用の信号を受信する。
(5)通信機能モジュールが受信したデータ管理用の信号が,共有データ管理機能モジュールに存在しないデータへの参照の場合には,接続されている他のソフトウェアの通信機能モジュールと通信を行い,通信先ソフトウェア内の共有データ管理機能モジュールが管理するデータを取得し,通信機能モジュール内にミラーデータを生成し,そのデータを参照元の機能モジュールに返却する。
本発明においては,ミラーデータの生成個数については特に制限されておらず,共有データ管理機能モジュール内の同一の原本データ(共有データ)から複数のミラーデータを生成することも可能である。
(6)通信機能が受信したデータ管理用の信号が,共有データ管理機能モジュールに存在しないデータヘの更新の場合には,接続されている他のソフトウェアの通信機能モジュールと通信を行い,通信先ソフトウェア内の共有データ管理機能モジュールが管理するデータの更新を行い,通信機能モジュール内の対応するミラーデータを更新する。
すなわち,本発明では,同一のソフトウェア内の機能モジュール間でのデータ共有のために,ソフトウェア内に共有データ管理機能モジュールを設ける。一方,他のソフトウェア内の機能モジュールとの間でデータの共有を図るために通信機能モジュールを設ける。この通信機能モジュールは,他のソフトウェアの通信機能モジュールとの間で通信を行うとともに,自ソフトウェア内の共有データ管理機能モジュールとの通信を行い,自ソフトウェア内の共有データ管理機能モジュールの機能を疑似する。
自ソフトウェア内の機能モジュールからデータの参照,更新要求があり,共有データ管理機能モジュールが要求されたデータのミラーデータ(複製)を持つ場合には,そのミラーデータに対する参照,更新を行う。共有データ管理機能モジュールが要求されたデータのミラーデータ(複製)を持たない場合には,通信機能モジュールが共有データのミラーデータを他の通信機能モジュールとの通信によって持つようにし,機能モジュールからの要求に対してそのミラーデータに対する参照,更新を行う。
〔システム構成例〕
図1は,本発明の実施例に係るシステム構成の概要を示す図である。図1において,1はCPUおよびメモリを備える第1のデータ処理装置,2は第1のデータ処理装置1の通信先である第2のデータ処理装置,3はネットワークである。ここでは,説明を簡単にするために,1台のデータ処理装置に1つのソフトウェアが搭載される例を示しているが,1台のデータ処理装置に複数のソフトウェアが搭載される場合にも,同様に本発明を適用することができる。また,ネットワーク3で接続されるデータ処理装置が2台の場合について説明するが,3台以上であっても同様に本発明を適用することができる。
図1は,本発明の実施例に係るシステム構成の概要を示す図である。図1において,1はCPUおよびメモリを備える第1のデータ処理装置,2は第1のデータ処理装置1の通信先である第2のデータ処理装置,3はネットワークである。ここでは,説明を簡単にするために,1台のデータ処理装置に1つのソフトウェアが搭載される例を示しているが,1台のデータ処理装置に複数のソフトウェアが搭載される場合にも,同様に本発明を適用することができる。また,ネットワーク3で接続されるデータ処理装置が2台の場合について説明するが,3台以上であっても同様に本発明を適用することができる。
第1のデータ処理装置1内において,10は第1のデータ処理装置1内のソフトウェアである。また,ソフトウェア10内において,11はそれぞれ単機能を実装する1または複数の機能モジュール,12は各機能モジュール間で共有するデータ(原本データ)を管理する共有データ管理機能モジュールである。
13は第2のデータ処理装置2内のソフトウェアとの間で信号送受を行う通信機能モジュール,14はソフトウェアバスとしての機能を提供し,各モジュール間の通信を制御するモジュール間通信制御部である。
15は通信機能モジュール13とモジュール間通信制御部14との間の入出力インタフェース,16は機能モジュール11とモジュール間通信制御部14との間の入出力インタフェース,17は共有データ管理機能モジュール12とモジュール間通信制御部14との間の入出力インタフェースである。ここでの入出力インタフェース15,16,17は,共有データをアクセスするためのコマンドによる要求とその要求に対する応答である。
共有データ管理機能モジュール12内において,121は共有データである原本データの管理情報を格納する原本データ管理テーブル,122は原本データの実際の内容である実データを格納する原本データ格納領域,123は原本データのコピーである各ミラーデータの管理情報を格納するミラーデータ管理テーブル,124は各ミラーデータの実データを格納するミラーデータ格納領域である。
また,通信機能モジュール13内において,131はミラーデータ管理情報が格納されるミラーデータ管理テーブル,132は第2のデータ処理装置2内のソフトウェアから受け取ったミラーデータが格納される領域であるミラーデータ格納領域である。
各機能モジュール11と共有データ管理機能モジュール12と通信機能モジュール13とは,それぞれ入出力インタフェース15,16,17とモジュール間通信制御部14とを介した信号の振り分け制御により,必要な情報の送受を行う。
図1において,20は第2のデータ処理装置2内のソフトウェアである。ソフトウェア20は,データ処理装置1と同様に,機能モジュール21,共有データ管理機能モジュール22,通信機能モジュール23,モジュール間通信制御部24,入出力インタフェース25,26,27を備える。
また,共有データ管理機能モジュール22は,原本データ管理テーブル221,原本データ格納領域222,ミラーデータ管理テーブル223,ミラーデータ格納領域224を備える。ソフトウェア20内の通信機能モジュール23は,通信先のソフトウェア10内の通信機能モジュール13とネットワーク3を介して接続され,信号の送受が可能である。
図2は,モジュール間通信制御部14による各モジュール間の信号振り分け処理の概要を示す図である。モジュール間通信制御部14は,モジュール登録処理部141,信号振り分け処理部142,モジュール管理情報領域143から構成される。
モジュール登録処理部141は,機能モジュール11と共有データ管理機能モジュール12と通信機能モジュール13の管理情報をモジュール管理情報領域143に登録する。信号振り分け処理部142は,機能モジュール11と共有データ管理機能モジュール12と通信機能モジュール13との間の送受信信号の振り分けを行う。
モジュール管理情報領域143には,機能モジュール11,共有データ管理機能モジュール12,通信機能モジュール13等の各モジュールをそれぞれ一意に特定する識別子(モジュール名)が管理情報として登録される。本実施例では,後に詳述するように,共有データ管理機能モジュール12および通信機能モジュール13が見掛け上,同一のモジュールに見えるように,これらに同一のモジュール名を付与している。
例えば,図2に示すように,機能モジュール11’から共有データ管理機能モジュール12に対して信号を送信する場合,モジュール間通信制御部14の信号振り分け処理部142が機能モジュール11’から信号を受信し,受信した信号に含まれる送信先モジュールの識別子によりモジュール管理情報領域143を検索して,送信先のモジュールである共有データ管理機能モジュール12を特定し,該送信先である共有データ管理機能モジュール12へ機能モジュール11’からの信号を送信する。
〔テーブル構成〕
図3は,原本データ管理テーブル,ミラーデータ管理テーブルのデータ構成の例を示す図である。図3(A)に示すように,原本データ管理テーブル221には,管理対象である原本データの個数分の原本データ管理情報221−i(i=1,2,…)が格納される。
図3は,原本データ管理テーブル,ミラーデータ管理テーブルのデータ構成の例を示す図である。図3(A)に示すように,原本データ管理テーブル221には,管理対象である原本データの個数分の原本データ管理情報221−i(i=1,2,…)が格納される。
また,図3(B)に示すように,ミラーデータ管理テーブル223には,作成されたミラーデータの個数分のミラーデータ管理情報223−j(j=1,2,…)が格納される。個々のミラーデータには,作成時に一意の番号が付与される。この番号をミラーデータ番号という。この例では,ミラーデータ管理テーブル223におけるミラーデータ管理情報223−jの位置jをミラーデータ番号とし,ミラーデータ番号によって各ミラーデータ管理情報が特定されるようにしている。
原本データ管理テーブル221内の原本データ管理情報221−iは,原本データ毎に,図3(C)に示すように,原本データの名称,原本データのデータサイズ,未使用領域への先頭ポインタからのオフセット,原本データ格納領域222へのポインタ,メモリ更新通知先格納テーブルなどの情報を持つ。
メモリ更新通知先格納テーブルは,更新時通知先の機能モジュール情報管理テーブルの配列である。更新時通知先の機能モジュール情報管理テーブル(図示省略)は,対応するミラーデータ番号,データを参照しているモジュールの名称,データ更新時の動作指定(0:データ更新なし,1:データ更新のみ,2:更新通知のみ,3:データ更新+更新通知),更新通知時のコマンドコード(データ更新時の動作指定が「2」または「3」の時に有効)などの項目から構成される。ミラーデータ番号は,ミラーデータ管理テーブル223内のミラーデータ管理情報を特定する番号である。
また,ミラーデータ管理テーブル223内のミラーデータ管理情報223−jは,原本データ管理情報へのポインタ,ミラーデータサイズ,ミラーデータ格納領域224にコピーされた原本データの先頭からのオフセット値,ミラーデータ格納領域224へのポインタ,当該要素が使用中であるか解放中再使用可能であるかの状態を示す状態フラグなどの項目から構成される。
また,ソフトウェア10内の共有データ管理機能モジュール12も,共有データ管理機能モジュール22と同様の構成を有する。
〔共有データをアクセスするためのコマンド〕
ここで,本実施例において用いる共有データをアクセスするためのコマンドとパラメータについて説明する。共有データをアクセスするためのコマンドには,代表的なものとして,ミラーデータオープンコマンド,データ取得(参照)コマンド,データ更新コマンド,ミラデータクローズコマンドの4つのコマンドがある。
ここで,本実施例において用いる共有データをアクセスするためのコマンドとパラメータについて説明する。共有データをアクセスするためのコマンドには,代表的なものとして,ミラーデータオープンコマンド,データ取得(参照)コマンド,データ更新コマンド,ミラデータクローズコマンドの4つのコマンドがある。
ミラーデータオープンコマンドは,データ読み込み/書き出しのためミラーデータ管理テーブル223にミラーデータ管理情報223−jを作成し,ミラーデータ格納領域224にミラーデータを作成可能にするためのコマンドである。ミラーデータオープンコマンドのパラメータは,ミラーデータとしてオープンする原本データの名称,データ更新時の動作指定(例えば,更新通知の有無の指定)であるアクションタイプ,更新通知時のコマンドコード(データ更新時の動作指定が「2」または「3」の時に有効)である。ミラーデータオープンコマンドを実行した結果の返却値(戻り値)は,ミラーデータ番号である。
データ取得コマンドは,原本データを参照してそのコピーであるミラーデータを生成するためのコマンドである。データ取得コマンドのパラメータは,ミラーデータオープンコマンドの返却値として通知されたミラーデータ番号,メモリ操作対象データが格納されている原本データの先頭からのオフセット値,メモリ操作対象となるデータのサイズである。データ取得コマンドを実行した結果の返却値は,取得したデータを格納したミラーデータ格納領域へのポインタである。
データ更新コマンドは,データを更新するためのコマンドである。データ更新コマンドのパラメータは,ミラーデータ番号,メモリ操作対象データが格納されている原本データの先頭からのオフセット値,メモリ操作対象となるデータのサイズ,原本データに書き込む更新内容のデータが格納されているメモリへのポインタである。
ミラーデータクローズコマンドは,ミラーデータをクローズし,そのミラーデータ格納領域224を解放するコマンドである。ミラーデータクローズコマンドのパラメータは,クローズするミラーデータのミラーデータ番号である。
〔共有データの確保処理(ミラーデータのオープン処理)〕
図4は,共有データ管理機能モジュール22におけるミラーデータオープンコマンドに対する処理を説明する図である。共有データ管理機能モジュール22には,既に原本データ格納領域222に原本データが格納され,原本データ管理テーブル221の原本データ管理情報221−iによって原本データが管理されているものとする。以下,図4に示す(a)〜(c)に従って説明する。
図4は,共有データ管理機能モジュール22におけるミラーデータオープンコマンドに対する処理を説明する図である。共有データ管理機能モジュール22には,既に原本データ格納領域222に原本データが格納され,原本データ管理テーブル221の原本データ管理情報221−iによって原本データが管理されているものとする。以下,図4に示す(a)〜(c)に従って説明する。
(a)機能モジュール21は,共有データである原本データの参照または更新を行う場合に,事前にミラーデータオープンコマンドを発行する。パラメータとしては,ミラーデータとしてオープンする原本データの名称,データ更新時の動作指定(例えば,更新通知の有無の指定)であるアクションタイプ,更新通知時のコマンドコード(データ更新時の動作指定が「2」または「3」の時に有効)を指定する。ミラーデータオープンコマンドの発行により,入出力インタフェース26,モジュール間通信制御部24,入出力インタフェース27を介して,ミラーデータオープン要求が共有データ管理機能モジュール22に対して通知される。
(b)共有データ管理機能モジュール22は,パラメータとして指定された原本データの名称をもとに,原本データ管理テーブル221の該当する原本データ管理情報221−iを検索する。
(c)次に,共有データ管理機能モジュール22は,ミラーデータ管理テーブル223における空きエントリにミラーデータ管理情報223−jを追加し,そのミラーデータ管理情報223−j中に原本データ管理情報221−iの検索結果から得た原本データ管理情報221−iへのポインタ等を設定する。また,原本データ管理情報221−i中のメモリ更新通知先格納テーブルを更新する。
(d)その後,要求元の機能モジュール21にミラーデータオープンコマンドに対する返却値としてミラーデータ番号を応答する。
以上のミラーデータオープンコマンドに対する処理の例は,図1における第2のデータ処理装置2における機能モジュール21が,同一処理装置(ソフトウェア)内の共有データ管理機能モジュール22が管理する原本データに対するミラーデータをオープンする場合の処理の例であるが,もし,同じ原本データに対して異なる第1のデータ処理装置1における機能モジュール11が,ミラーデータオープンコマンドを発行した場合には,通信機能モジュール13からネットワーク3を介してミラーデータオープン要求が通信機能モジュール23へ伝達され,通信機能モジュール23から共有データ管理機能モジュール22に対してミラーデータオープン要求が送信されることになる。このときの共有データ管理機能モジュール22の処理も,図4で説明した処理と同様に行われる。
図5は,第2のデータ処理装置2中の共有データ管理機能モジュール22が所持する原本データに対して,第1のデータ処理装置1におけるソフトウェア10中の機能モジュール11がミラーデータオープンコマンドを発行したときの処理を説明する図である。以下,図5に示す(a)〜(h)に従って説明する。
(a)まず,ソフトウェア10内の機能モジュール11が,ある原本データを参照または更新したい場合には,事前にその原本データの名称をパラメータとするミラーデータオープンコマンドを発行する。このとき,機能モジュール11は,原本データが同一のソフトウェア10内にあるか,外部のソフトウェア20にあるかということを意識する必要はない。ミラーデータオープンコマンドの発行により,モジュール間通信制御部14によって,ミラーデータオープン要求が共有データ管理機能モジュール12および通信機能モジュール13に同時に送信される。
本実施例では,機能モジュール11からの要求を,共有データ管理機能モジュール12と通信機能モジュール13とが同時に受け取ることができるように,共有データ管理機能モジュール12と通信機能モジュール13のモジュール名を同一モジュール名としている。
このミラーデータオープン要求に対して,共有データ管理機能モジュール12は,原本データ管理テーブル121を検索し,指定名称のデータの有無を確認する。共有データ管理機能モジュール12では,指定された名称の原本データを持たないので何も処理をしない。
(b)通信機能モジュール13は,ミラーデータオープン要求を受信すると,ネットワーク3を介してソフトウェア20内の通信機能モジュール23へミラーデータオープン要求を送信する。
(c)通信機能モジュール23は,他のソフトウェア10の通信機能モジュール13からミラーデータオープン要求を受信すると,モジュール間通信制御部24を経由して共有データ管理機能モジュール22へミラーデータオープン要求を送信する。
(d)〜(f)共有データ管理機能モジュール22は,図4で説明したミラーデータオープン処理を実行する。すなわち,パラメータで指定された原本データの名称から原本データ管理テーブル221を検索し,要求に対応する原本データがある場合にはミラーデータ管理テーブル223にミラーデータ管理情報223−jを追加して,ミラーデータの格納領域を確保し,ミラーデータ番号を機能モジュール21へ返却する。
(g)機能モジュール21は,受け取ったミラーデータ番号を通信機能モジュール13へ送信する。
(h)通信機能モジュール13は,原本データ自体は持たないが,共有データ管理機能モジュール22と同様に,ミラーデータ管理テーブル131とミラーデータ格納領域132とを持つ。これらは,共有データ管理機能モジュール22が持つミラーデータ管理テーブル223とミラーデータ格納領域224のそれぞれ一部をコピーした内容となっている。通信機能モジュール13は,受け取ったミラーデータ番号に基づいて,ミラーデータ管理テーブル131に新たなミラーデータ管理情報の領域を確保し,新たなミラーデータ番号を生成して,機能モジュール11へこの新たなミラーデータ番号を返却する。
なお,機能モジュール11からのミラーデータオープン要求に対し,同じソフトウェア10内の共有データ管理機能モジュール12が原本データを所持している場合には,通信機能モジュール11は何も行わず,共有データ管理機能モジュール12がミラーデータ管理テーブル123にミラーデータ管理情報を生成し,そのミラーデータ番号を機能モジュール11に返却する。
図6は,図5に示すミラーデータオープン時の機能モジュール11の処理フローの一例を示す図である。まず,機能モジュール11は,ミラーデータの格納領域を確保したい場合には,共有データ管理機能モジュール12および通信機能モジュール13に対しミラーデータオープンコマンドによりミラーデータオープン要求を送信する(ステップS101)。モジュール間通信制御部14では,要求の送信先をモジュールの識別子(モジュール名)で決定する。ミラーデータオープンコマンドの処理において,ミラーデータオープン要求の送信先は,共有データ管理機能モジュール12および通信機能モジュール13であるが,これは本実施例では,通信機能モジュール13と共有データ管理機能モジュール12とで同じモジュール名を割り当てているからである。このため,機能モジュール11からのミラーデータオープン要求は,共有データ管理機能モジュール12と通信機能モジュール13の両方に送られる。
機能モジュール11は,ミラーデータオープンコマンドに対する処理結果の返却値として,共有データ管理機能モジュール12または通信機能モジュール13からミラーデータ番号を受け取る。(ステップS102)。このミラーデータ番号は,後の処理におけるミラーデータを介した原本データの参照および更新に用いられる。
図7は,図5に示すミラーデータオープン時の共有データ管理機能モジュール12の処理フローの一例を示す図である。共有データ管理機能モジュール12は,ミラーデータオープン要求を受信する(ステップS111)。パラメータで指定された原本データの名称で原本データ管理テーブル121を検索する(ステップS112)。該当する原本データの名称が原本データ管理テーブル121に登録されていないので,返却値なしとして(ステップS113),処理を終了する。
図8は,図5に示すミラーデータオープン時の通信機能モジュール13の処理フローの一例を示す図である。まず,通信機能モジュール13は,ミラーデータオープン要求を受信する(ステップS121)。次に,送信元が自分自身かを判断する(ステップS122)。このステップS122の処理を行うのは,通信機能モジュール13がソフトウェア20から送信されたミラーデータオープン要求を受けて共有データ管理機能モジュール12にミラーデータオープン要求を送信する場合に,共有データ管理機能モジュール12と通信機能モジュール13とが同一の識別子(モジュール名称)であるため,このミラーデータオープン要求が通信機能モジュール13自身にも送信されることがあるからである。そのため,送信元が自分自身の場合には,何もしないで処理を終了する。
送信元が自分自身でない場合には,予め通信先として設定された通信先ソフトウェアの通信機能モジュール23へミラーデータオープン要求をネットワーク3を介して送信する(ステップS123)。本実施例においては,通信機能モジュール間の通信は,例えば,TCP/IP等の通信プロトコルを使用する。通信先は,データを共有する可能性のあるすべてのソフトウェアの通信機能モジュールに対するIPアドレスや通信ポート等の情報であり,これらはあらかじめ通信機能モジュール13内に登録されている。
次に,通信先の通信機能モジュール23からミラーデータオープン要求に対する返却値として,ミラーデータ番号を受信する(ステップS124)。そして,受信したミラーデータ番号に通信機能モジュール13の識別情報を付与し,新たなミラーデータ番号を生成する(ステップS125)。このステップS125の処理は,共有データ管理機能モジュール12で管理されるミラーデータ番号と,他の共有データ管理機能モジュール22で管理される原本データのミラーデータを特定するミラーデータ番号とが一致しないようにするための処理である。
本発明においては,ミラーデータ番号の変換方法は,通信機能モジュール13が受信したミラーデータ番号が共有データ管理機能モジュール12で管理されるミラーデータ番号と一致しないようにする方法であれば,その手段は問わない。例えば,ミラーデータ番号に−1を乗じて新たなミラーデータ番号を生成してもよい。
次に,ミラーデータオープン要求に含まれるパラメータと新たに生成したミラーデータ番号からミラーデータ管理情報をミラーデータ管理テーブル131に追加する(ステップS126)。そして,新たなミラーデータ番号を返却値(戻り値)として要求元の機能モジュール11に返却し(ステップS127),処理を終了する。
図9は,図5に示すミラーデータオープン時の通信機能モジュール23の処理フローの一例を示す図である。通信機能モジュール23は,通信機能モジュール13からミラーデータオープン要求を受信すると(ステップS131),共有データ管理機能モジュール22へミラーデータオープン要求を送信する(ステップS132)。共有データ管理機能モジュール22から要求に対する返却値としてミラーデータ番号を受信する(ステップS133)。受信したミラーデータ番号を返却値として,要求元の通信機能モジュール13へ返却し(ステップS134),処理を終了する。
図10は,図5示すミラーデータオープン時の共有データ管理機能モジュール22の処理フローの一例を示す図である。共有データ管理機能モジュール22は,通信機能モジュール23からミラーデータオープン要求を受信する(ステップS141)。ミラーデータオープン要求には,原本データの名称,対応する原本データ更新時のミラーデータの同期更新の有無,更新通知の有無などのデータ更新時の動作指定であるアクションタイプ,アクションタイプが更新通知ありの時に,ミラーデータ参照先のモジュールに送信されるコマンド番号であるコマンドコードが含まれている。
共有データ管理機能モジュール22は,受信した要求から原本データの名称を取り出し(ステップS142),原本データ管理テーブル221を検索して要求に対応する原本データがあるか否かを判断する(ステップS143)。要求に対応する原本データがない場合には処理を終了し,要求に対応する原本データがある場合には,ミラーデータ管理テーブル223にミラーデータ管理情報を追加して(ステップS144),追加したミラーデータ管理情報を示すミラーデータ番号を返却値として,要求元の通信機能モジュール23に返却し(ステップS145),処理を終了する。
〔共有データの参照処理〕
図11は,ソフトウェア10内の機能モジュール11がソフトウェア20内の共有データ管理機能モジュール22で管理されるデータを参照する際の処理概要を示す図である。以下,図11に示す(a)〜(h)に従って説明する。
図11は,ソフトウェア10内の機能モジュール11がソフトウェア20内の共有データ管理機能モジュール22で管理されるデータを参照する際の処理概要を示す図である。以下,図11に示す(a)〜(h)に従って説明する。
(a)機能モジュール11は,ミラーデータを介して原本データを参照したいときに,データ取得コマンドを発行し,共有データモジュール12および通信機能モジュール13に対して各機能モジュール11間で共有する共有データの参照要求を送信する。この参照要求には,データ取得コマンドのパラメータで指定されたミラーデータ番号,参照先頭位置(ミラーデータ格納領域224へコピーする原本データの先頭からのオフセット値),参照データサイズ等の情報が含まれている。
(b)通信機能モジュール13は,各機能モジュール11から共有データの参照要求を受信し,共有データ管理機能モジュール12に要求された共有データが存在しない場合,通信先のソフトウェア20内の通信機能モジュール23に共有データの参照要求を送信する。このとき,ミラーデータ番号は,ソフトウェア20におけるミラーデータ番号に変換する。
(c)この参照要求を受信した通信機能モジュール23は,ソフトウェア20内の共有データ管理機能モジュール22へ参照要求を送る。
(d)共有データ管理機能モジュール22は,参照要求を受信すると,ミラーデータ格納領域224に実体データ(ミラーデータ)の領域確保を行い,原本データ格納領域222に格納された共有データ(原本データ)のうち,共有データの参照要求に対応する原本データを特定し,この原本データをミラーデータ格納領域224へコピーして,ミラーデータを生成する。
(e)その後,共有データ管理機能モジュール22は,入出力インタフェース27,25,モジュール間通信制御部24を介して,参照要求元の通信機能モジュール23へ生成されたミラーデータの格納領域位置を返却する。この格納領域位置情報は,例えば参照するミラーデータが格納されているメモリアドレスとデータサイズの情報からなる。
(f)通信機能モジュール23は,返却されたミラーデータの格納領域位置によりミラーデータ格納領域224を参照して共有データを取得し,参照結果である共有データ(参照データ)を要求元の通信機能モジュール13へ返却する。
(g)通信機能モジュール23から参照データを受け取った通信機能モジュール13は,自モジュール内のミラーデータ格納領域132に,受け取った参照データを格納することにより,ミラーデータを生成し,ミラーデータ管理テーブル131を更新する。
(h)その後,通信機能モジュール13は,ミラーデータ格納領域132において生成したミラーデータのデータ格納領域位置を要求元の機能モジュール11へ返却する。機能モジュール11は,返却されたミラーデータの格納領域位置により,ミラーデータ格納領域132に格納された共有データを,随時参照することが可能になる。
なお,ソフトウェア10内の共有データ管理機能モジュール12に機能モジュール11から要求された共有データが存在する場合には,共有データ管理機能モジュール12は,自モジュール内のミラーデータ格納領域124に実体データ(ミラーデータ)の領域確保を行う。
そして,共有データ管理機能モジュール12は,原本データ格納領域122に格納された共有データ(原本データ)のうち,共有データの参照要求に対応する原本データを特定して上記確保済みの領域へ,原本データを指定サイズ分コピーすることにより,ミラーデータを生成し,参照要求元の機能モジュール11へ生成したミラーデータの格納領域位置を返却する。
図12は,ソフトウェア10から共有データの参照要求を受信した通信機能モジュール23が共有データ管理機能モジュール22に共有データの参照を要求した際の処理の詳細を示す図である。以下,図12に示す(a)〜(g)に従って説明する。
(a)共有データ管理機能モジュール22は,入出力インタフェース25,27,モジュール間通信制御部24を介し,通信機能モジュール23から共有データの参照要求を受信する。
(b)共有データ管理機能モジュール22は,ミラーデータ格納領域224に実体データ(ミラーデータ)の領域確保を行い,該確保された領域情報をミラーデータ管理テーブル223におけるミラーデータ番号で特定されるミラーデータ管理情報に格納する。
(c)〜(d)次に,共有データ管理機能モジュール22は,ミラーデータ管理テーブル223中のミラーデータ管理情報を参照し,ミラーデータ管理情報中のポインタによって原本データ管理テーブル221中の該当する原本データ管理情報を参照し,参照要求に対応する原本データ格納領域222の原本データを特定し,その格納位置情報を取得する。
(e)〜(f)共有データ管理機能モジュール22は,取得した原本データの格納位置情報により原本データ格納領域222を参照し,領域確保済みのミラーデータ格納領域224へ上記特定された原本データのうちミラーデータが参照する範囲についてコピーし,ミラーデータを生成する。また,共有データ管理機能モジュール22は,ミラーデータが参照する範囲を原本データ管理テーブル221に格納する。
(g)その後,共有データ管理機能モジュール22は,入出力インタフェース27,25,モジュール間通信制御部24を介して,参照要求元の通信機能モジュール23へ生成されたミラーデータの格納領域位置を返却する。
なお,例えば,ソフトウェア10内の機能モジュール11から共有データ管理機能モジュール12に共有データの参照を要求する場合も,共有データ管理機能モジュール12内に参照要求に対応する原本データがある時は,上記と同様の処理が行われることにより共有データ管理機能モジュール12内にミラーデータが生成され,生成されたミラーデータの格納領域位置が機能モジュール11へ返却される。
図13は,図11に示す共有データの参照要求をする場合の機能モジュール11の処理フローの一例を示す図である。ここでは参照要求された共有データ(原本データ)が他のソフトウェア20内にある場合の処理の例を説明する。
まず,機能モジュール11は,データ取得コマンドを発行し,共有データ管理機能モジュール12および通信機能モジュール13へ共有データの参照要求を送信する(ステップS1)。機能モジュール11は,他のモジュールとの通信を行う際に,通信先のモジュールの識別子(モジュール名)を使用する。前述のように,本実施例では,通信機能モジュール13は共有データ管理機能モジュール12と同じ識別子(モジュール名)が割り当てられて,その識別子がモジュール間通信制御部14のモジュール管理情報領域143(図2参照)に登録されている。このため,機能モジュール11からの参照要求は,共有データ管理機能モジュール12と通信機能モジュール13の両方に送られる。
機能モジュール11は,データ取得コマンドの実行結果として返却されたミラーデータの格納領域位置(ポインタ)を取得する(ステップS2)。ステップS1において,共有データ管理機能モジュール12内に参照要求に対応する共有データがある場合には,機能モジュール11は共有データ管理機能モジュール12からミラーデータの格納領域位置(ポインタ)の返却を受ける。
共有データ管理機能モジュール12内に参照要求に対応する共有データがない場合には,ソフトウェア20内の通信機能モジュール23から受け取った参照データにより通信機能モジュール13内に生成されたミラーデータの格納領域位置(ポインタ)の返却を受ける。
図14は,共有データの参照要求がされた場合の図11に示す共有データ管理機能モジュール12の処理フローの一例を示す図である。共有データ管理機能モジュール12は,モジュール間通信制御部14を介して共有データの参照要求を受信する(ステップS11)。共有データ管理機能モジュール12は,参照要求で指定されたミラーデータ番号に該当するミラーデータを保持していないため,返却値なしとして(ステップS12),処理を終了する。
図15は,共有データの参照要求がされた場合の図11に示す通信機能モジュール13の処理フローの一例を示す図である。通信機能モジュール13は共有データの参照要求を受信すると(ステップS21),送信元が自分自身であるかを判断する(ステップS22)。送信元が自分自身である場合には処理を終了し,送信元が自分自身でない場合には,共有データの参照要求のミラーデータ番号から,通信機能モジュール13の識別情報を除去する(ステップS23)。
ステップS23の処理は,通信機能モジュール13がミラーデータ管理テーブル131内で管理している参照要求のミラーデータ番号をソフトウェア20内の共有データ管理機能モジュール22内で管理しているミラーデータ番号に変換する処理である。
そして,あらかじめ通信先として設定された通信先ソフトウェアの通信機能モジュール23へ共有データの参照要求を送信する(ステップS24)。
通信機能モジュール13は,共有データの参照要求に対する結果として,通信機能モジュール23から参照データを受信する(ステップS25)。通信機能モジュール13は,受信した参照データをミラーデータ格納領域132に書き込んで,ミラーデータを生成する(ステップS26)。そして,共有データの参照要求に含まれるパラメータと,生成したミラーデータから,ミラーデータ管理テーブル131のミラーデータ管理情報を更新し(ステップS27),データを書き込んだ格納領域位置(ポインタ)を返却値として機能モジュール11へ返却し(ステップS28),処理を終了する。
図16は,共有データの参照要求がされた場合の図11に示す通信機能モジュール23の処理フローの一例を示す図である。通信機能モジュール23は,ソフトウェア10内の通信機能モジュール13からの共有データの参照要求を受信する(ステップS31)。参照要求を受信したならば,その参照要求を共有データ管理機能モジュール22へ送信する(ステップS32)。
参照要求に対する処理結果の返却値として,共有データ管理機能モジュール22から参照データ(ミラーデータ)の格納領域位置(ポインタ)を受信する(ステップS33)。その返却された参照データの格納領域位置に基づいてミラーデータ格納領域224から該当する参照データ(ミラーデータ)を読み出して,その参照データを返却値として要求元のソフトウェア10内の通信機能モジュール13へ返却する(ステップS34)。
図17は,通信機能モジュール23から共有データの参照要求を受けた場合の図11に示す共有データ管理機能モジュール22の処理フローの一例を示す図である。共有データ管理機能モジュール22は,共有データの参照要求を受信する(ステップS41)。共有データ管理機能モジュール22は,受信した参照要求からミラーデータ番号を取り出し(ステップS42),ミラーデータ番号に対応するミラーデータ管理情報から参照要求に対応する共有データ(原本データ)があるか否かを判断する(ステップS43)。原本データがあるか否かは,ミラーデータ番号に対応するミラーデータ管理情報が有効であるか否か,ミラーデータ管理情報中に原本データ管理情報へのポインタがあるか否かにより判断する。
参照要求に対応する共有データ(原本データ)がない場合には,処理を終了し,参照要求に対応する共有データがある場合には,参照要求の中の参照位置,サイズ情報をもとに,原本データからミラーデータをコピーして生成する(ステップS44)。
次に,対応するミラーデータ管理情報が,生成したミラーデータを指すよう,ミラーデータ管理テーブル223内のミラーデータ管理情報を更新し(ステップS45),生成したミラーデータの格納領域位置(ポインタ)を返却値として通信機能モジュール23に返却し(ステップS46),処理を終了する。
〔共有データの更新処理〕
図18は,ソフトウェア20内の共有データ管理機能モジュール22で管理されるデータを更新する際の処理概要を示す図である。以下,図18に示す(a)〜(h)に従って説明する。
図18は,ソフトウェア20内の共有データ管理機能モジュール22で管理されるデータを更新する際の処理概要を示す図である。以下,図18に示す(a)〜(h)に従って説明する。
(a)機能モジュール11は,共有データ(原本データ)を更新したい場合,データ更新コマンドを発行し,共有データ管理機能モジュール12および通信機能モジュール13に対して各機能モジュール11間で共有する共有データの更新要求を送信する。共有データ管理機能モジュール12は,対応する共有データを持たないので何も処理しない。
(b)通信機能モジュール13は,ソフトウェア10内の機能モジュール11からの共有データ更新要求を受信し,通信先のソフトウェア20内の通信機能モジュール23へ共有データの更新要求を送信する。
(c)この更新要求を受信した通信機能モジュール23は,ソフトウェア20内の共有データ管理機能モジュール22へ更新要求を送る。
(d)共有データ管理機能モジュール22は,更新要求を受信すると,原本データ格納領域222の原本データを更新した後,該原本データを参照しているミラーデータ格納領域224に更新後の原本データをコピーして,ミラーデータを更新する。
(e)その後,共有データ管理機能モジュール22は,入出力インタフェース27,25,モジュール間通信制御部24を介して,当該ミラーデータを参照している通信機能モジュール23に更新通知を送信する。この更新通知は,通知先モジュールの名称,通知時コマンドコード,更新されたミラーデータ格納領域224の先頭からのオフセット値,更新されたミラーデータのサイズ等の情報を含む。
(f)通信機能モジュール23は,受信した更新通知に含まれる情報に基づいて,共有データ管理機能モジュール22のミラーデータ格納領域224内のデータを読み込んで更新データを取得し,この更新データを通信機能モジュール13へ送信する。
(g)〜(h)更新データを受信した通信機能モジュール13は,受信した更新データに基づき自モジュール内の対応するミラーデータを更新し,ミラーデータを参照している機能モジュール11へ更新通知を送信する。
なお,ソフトウェア10内の共有データ管理機能モジュール12に機能モジュール11から更新要求された共有データが存在する場合には,共有データ管理機能モジュール12は,自モジュール内の原本データ格納領域122の原本データを更新した後,該原本データを参照しているミラーデータ格納領域124に,更新後の原本データをコピーすることによりミラーデータを更新し,入出力インタフェース17,16,モジュール間通信制御部14を介して更新要求元の機能モジュール11へ更新通知を送信する。
図19は,通信機能モジュール23が共有データ管理機能モジュール22に共有データの更新を要求したときの処理概要を示す図である。以下,図19に示す(a)〜(f)に従って説明する。
(a)共有データを更新する場合には,入出力インタフェース25,27,モジュール間通信制御部24を介し,通信機能モジュール23から更新要求を共有データ管理機能モジュール22に送る。更新要求には,ミラーデータ番号,更新先頭位置(ミラーデータ格納領域224にコピーする原本データの先頭からのオフセット値),更新データサイズが含まれている。
(b)〜(c)共有データ管理機能モジュール22は,ミラーデータ管理テーブル223を検索し,ミラーデータ番号に対応するミラーデータ管理情報から原本データ管理テーブル221の原本データ管理情報を参照する。
(d)〜(e)原本データ管理情報の参照により,原本データ格納領域222の更新する原本データの位置を特定し,その原本データを更新した後,該原本データを参照しているミラーデータ格納領域224に,更新後の原本データをコピーする。
(f)その後,共有データ管理機能モジュール22は,入出力インタフェース27,25,モジュール間通信制御部24を介して,更新した各ミラーデータを参照している通信機能モジュール23に対して更新通知を送る。
なお,例えば,ソフトウェア10内の機能モジュール11から共有データ管理機能モジュール12に共有データの更新を要求する場合も,共有データ管理機能モジュール122内に更新要求に対応する原本データがあるときは,上記と同様の処理により,共有データ管理機能モジュール12内において原本データ,ミラーデータが更新され,その更新通知が機能モジュール11および更新通知を事前に要求している他の機能モジュールに送信される。
図20は,共有データの更新要求を行う場合の図18に示す機能モジュール11の処理フローの一例を示す図である。この例では,同じソフトウェア10内の共有データ管理機能モジュール12は,要求された共有データを持たないものとする。
機能モジュール11は,データ更新コマンドを発行し,共有データ管理機能モジュール12および通信機能モジュール13へ共有データの更新要求を送信する(ステップS51)。機能モジュール11は,他のモジュールとの通信を行う際に,通信先のモジュールの識別子(モジュール名)を使用する。前述のように,通信機能モジュール13は共有データ管理機能モジュール12と同じ識別子(モジュール名)が割り当てられて,その識別子がモジュール間通信制御部14のモジュール管理情報領域143に登録されている。このため,機能モジュール11からの更新要求は共有データ管理機能モジュール12と通信機能モジュール13の両方に送られる。
機能モジュール11は,更新要求に対する処理結果として更新通知を受信する(ステップS52)。ステップS51において,共有データ管理機能モジュール12内に更新要求された共有データがある場合には,機能モジュール11は共有データ管理機能モジュール12からミラーデータの更新通知を受信する。共有データ管理機能モジュール12内に更新要求された共有データがない場合には,通信機能モジュール13からミラーデータの更新通知を受信する。
図21は,共有データの更新要求がされた場合の図18に示す共有データ管理機能モジュール12の処理フローの一例を示す図である。まず,共有データ管理機能モジュール12は,共有データの更新要求を受信する(ステップS61)。共有データ管理機能モジュール12は,更新要求で指定されたデータを保持していないため,返却値なしとして(ステップS62),処理を終了する。
図22は,共有データの更新要求がされた場合の図18に示す通信機能モジュール13の処理フローの一例を示す図である。通信機能モジュール13は共有データの更新要求を受信すると(ステップS71),送信元が自分自身であるかを判断する(ステップS72)。送信元が自分自身である場合には処理を終了し,送信元が自分自身でない場合には,共有データの更新要求のミラーデータ番号から,通信機能モジュール13の識別情報を除去する(ステップS73)。そして,予め通信先として設定された通信先ソフトウェアの通信機能モジュール23へ更新要求を送信する(ステップS74)。
通信機能モジュール13は,更新要求に対する処理結果として,通信機能モジュール23から更新データを受信する(ステップS75)。次に,通信機能モジュール13は,受信した更新データに基づいて,自モジュールのミラーデータ格納領域132内の対応するミラーデータを更新する(ステップS76)。また,共有データの更新要求に含まれるパラメータと,更新したミラーデータから,ミラーデータ管理テーブル131のミラーデータ管理情報を更新し(ステップS77),当該ミラーデータを参照している機能モジュールへ更新通知を送信して(ステップS78),処理を終了する。
図23は,共有データの更新要求がされた場合の図18に示す通信機能モジュール23の処理フローの一例を示す図である。通信機能モジュール23は,ソフトウェア10内の通信機能モジュール13からの共有データの更新要求を受信する(ステップS81)。次に,共有データ管理機能モジュール22へ,共有データの更新要求を送信する(ステップS82)。
更新要求に対する処理結果として更新データを受信する(ステップS83)。具体的には,共有データ管理機能モジュール22から更新通知を受け取り,更新通知に含まれる更新データの格納位置情報に基づいて,共有データ管理機能モジュール22のミラーデータ格納領域224内の更新データを読み込んで取得する。その取得した更新データを返却値として,要求元のソフトウェア10内の通信機能モジュール13へ返却し(ステップS84),処理を終了する。
図24は,通信機能モジュール23から共有データの更新要求を受けた場合の図18に示す共有データ管理機能モジュール22の処理フローの一例を示す図である。共有データ管理機能モジュール22は,共有データの更新要求を受信する(ステップS91)。次に,共有データ管理機能モジュール22は,受信した更新要求からミラーデータ番号を取り出し(ステップS92),更新要求に対応する共有データ(原本データ)があるか否かを判断する(ステップS93)。原本データがあるか否かは,例えば,ミラーデータ番号に対応するミラーデータ管理情報の有無,またはミラーデータ番号に対応するミラーデータ管理情報に原本データ管理情報へのポインタがあるか否かにより判断する。
更新要求に対応する共有データ(原本データ)がない場合には,処理を終了し,更新要求に対応する共有データがある場合には,更新要求の中の参照位置,サイズ情報をもとに,原本データからミラーデータ格納領域224にミラーデータをコピーして生成する(ステップS94)。次に,共有データ管理機能モジュール22は,対応するミラーデータ管理情報が,生成したミラーデータを指すよう,ミラーデータ管理テーブル223内のミラーデータ管理情報を更新し(ステップS95),生成したミラーデータの格納領域位置(ポインタ)を返却値として通信機能モジュール23に返却し(ステップS96),処理を終了する。
〔共有データの更新通知〕
図25は,ソフトウェア20内の共有データが更新された場合に,更新された共有データのミラーデータをオープンしている更新通知が必要な機能モジュールに,更新通知を送信する処理の一例を説明する図である。
図25は,ソフトウェア20内の共有データが更新された場合に,更新された共有データのミラーデータをオープンしている更新通知が必要な機能モジュールに,更新通知を送信する処理の一例を説明する図である。
ここでは,ソフトウェア20内の機能モジュール21が共有データ管理機能モジュール22内の共有データ(原本データ)を更新し,その更新通知を共有データ管理機能モジュール22が通信機能モジュール23に送信し,通信機能モジュール23が通信機能モジュール13に更新データを送信する場合の例を,図25に示す(a)〜(f)に従って説明する。
共有データ(原本データ)を更新したときの更新通知は,データ更新コマンドを発行した更新要求元の機能モジュールへ送信されるとともに,ミラーデータオープンコマンドを発行した機能モジュールが,データ更新時の動作指定のパラメータで「更新通知有り」を指定している場合に,その機能モジュールに対して送信される。その更新通知のときには,ミラーデータオープンコマンドのパラメータで指定されたコマンドコードを通知する。このコマンドコードにより,更新通知を受けた機能モジュールは,どのミラーデータが更新されたかを知ることができる。
(a)〜(b)ソフトウェア20内の共有データ管理機能モジュール22は,機能モジュール21から共有データの更新要求を受けると,原本データおよびミラーデータを更新する。
(c)次に,共有データ管理機能モジュール22は,更新された原本データの原本データ管理情報におけるメモリ更新通知先格納テーブル(図3(C)参照)から,更新通知を必要とする機能モジュールのモジュール名を取得し,更新通知先としてそのモジュール名を指定し,モジュール間通信制御部24を介して更新通知を送信する。この例では,更新通知先である機能モジュール11へ更新通知を送信するため,まず更新通知が通信機能モジュール23へ送信される。
(d)更新通知を受信した通信機能モジュール23は,更新通知に含まれる更新データの格納位置情報に基づいて,共有データ管理機能モジュール22のミラーデータ格納領域224内の更新データを読み込んで取得し,ソフトウェア10内の通信機能モジュールへ更新データを送信する。
(e)通信機能モジュール13は,受信した更新データから,自モジュール内の対応するミラーデータ格納領域132のミラーデータおよびミラーデータ管理テーブル131を更新する。
(f)その後,通信機能モジュール13は,そのミラーデータを参照している機能モジュール11ヘ更新通知を送信する。
本発明においては,生成されたミラーデータは,各機能モジュールからのミラーデータクローズコマンドによるミラーデータ解放要求により解放(消去)される。図26は,機能モジュール21が共有データ管理機能モジュール22にミラーデータの解放を要求する際の処理概要を示す図である。
図26では,共有データ管理機能モジュール22内のミラーデータを解放する処理について説明するが,例えばソフトウェア10内の機能モジュール11が共有データ管理機能モジュール12および通信機能モジュール13に対してミラーデータの解放を要求した場合にも,同様に処理される。以下,図26に示す(a)〜(f)に従って説明する。
(a)機能モジュール21でデータの共有が不要となった場合には,機能モジュール21は,ミラーデータ番号をパラメータとしてミラーデータクローズコマンドを発行する。これにより,入出力インタフェース26,27,モジュール間通信制御部24を介し,機能モジュール21から共有データ管理機能モジュール22へ共有解除要求(ミラーデータ解放要求)が送信される。
(b)〜(c)共有データ管理機能モジュール22は,ミラーデータ管理テーブル223から,ミラーデータ番号をもとに,送信元の機能モジュール21のミラーデータオープン要求により作成したミラーデータ管理情報を削除する。この削除処理では,図3に示すミラーデータ管理情報223−jにおける「この要素の状態」を示す状態フラグを,「解放中再使用可能」にする。また,ミラーデータ格納領域224から送信元の機能モジュール21のミラーデータ参照要求により作成した領域を解放する。
(d)さらに,原本データ管理テーブル221を参照し,対応するミラーデータへの参照情報を削除して原本データ管理情報を更新する。
(e)その後,共有データ管理機能モジュール22は,入出力インタフェース27,26,モジュール間通信制御部24を介し,送信元の機能モジュール21へ解放終了の応答を返す。
本発明は,ソフトウェアを構成する各機能モジュールと,ネットワークを介して接続された外部のソフトウェア内の機能モジュールとの間でのデータ共有,データ同期を実現するという用途に適用できる。
1 第1のデータ処理装置
2 第2のデータ処理装置
3 ネットワーク
10,20 ソフトウェア
11,21 機能モジュール
12,22 共有データ管理機能モジュール
13,23 通信機能モジュール
14,24 モジュール間通信制御部
15,16,17,25,26,27 入出力インタフェース
121,221 原本データ管理テーブル
122,222 原本データ格納領域
123,131,223 ミラーデータ管理テーブル
124,132,224 ミラーデータ格納領域
141 モジュール登録処理部
142 信号振り分け処理部
143 モジュール管理情報領域
2 第2のデータ処理装置
3 ネットワーク
10,20 ソフトウェア
11,21 機能モジュール
12,22 共有データ管理機能モジュール
13,23 通信機能モジュール
14,24 モジュール間通信制御部
15,16,17,25,26,27 入出力インタフェース
121,221 原本データ管理テーブル
122,222 原本データ格納領域
123,131,223 ミラーデータ管理テーブル
124,132,224 ミラーデータ格納領域
141 モジュール登録処理部
142 信号振り分け処理部
143 モジュール管理情報領域
Claims (5)
- 1または複数の機能モジュールにより構成される1または複数のソフトウェアプログラムを搭載する処理装置がネットワークを介して接続されるシステムにおいて,
前記各ソフトウェアプログラムは,
複数の機能モジュール間で共有されるデータの原本データを管理する共有データ管理機能モジュールと,
他のソフトウェアプログラムにおける通信機能モジュールとの通信を行う通信機能モジュールとを備え,
前記共有データ管理機能モジュールは,
前記機能モジュールまたは前記通信機能モジュールからの共有データの参照要求に対して,原本データのコピーであるミラーデータを作成して,要求元の機能モジュールまたは通信機能モジュールに提供する処理機能と,
前記機能モジュールまたは前記通信機能モジュールからの共有データの更新要求に対して,要求された原本データおよび対応するミラーデータを更新して,同じデータを共有している機能モジュールへ更新通知を行う処理機能とを備え,
前記通信機能モジュールは,
同じソフトウェアプログラム内の機能モジュールからの他のソフトウェアプログラムが原本データを持つ共有データに対する参照要求に対して,当該他のソフトウェアプログラムの通信機能モジュールに対して共有データの参照要求を送り,要求した共有データのミラーデータを受信してミラーデータを格納し,要求元の機能モジュールに提供する処理機能と,
同じソフトウェアプログラム内の機能モジュールからの他のソフトウェアプログラムが原本データを持つ共有データに対する更新要求に対して,当該他のソフトウェアプログラムの通信機能モジュールに対して共有データの更新要求を送り,他のソフトウェアプログラムにおける原本データとミラーデータとを更新させ,更新通知を受信した場合に,当該通信機能モジュールが管理する対応するミラーデータを更新する処理機能とを備える
ことを特徴とするデータ共有のための機能モジュール間通信制御システム。 - 請求項1記載のデータ共有のための機能モジュール間通信制御システムにおいて,
前記共有データ管理機能モジュールおよび前記通信機能モジュールは,前記機能モジュールに対して共有データに対する同一のアクセスインタフェースを提供し,前記機能モジュールに対して原本データが当該機能モジュールと同じソフトウェアプログラム内に存在するか,他のソフトウェアプログラム内に存在するかを意識させない
ことを特徴とするデータ共有のための機能モジュール間通信制御システム。 - 1または複数の機能モジュールと,共有されるデータの原本データを管理する共有データ管理機能モジュールと,他のソフトウェアプログラムにおける通信機能モジュールとの通信を行う通信機能モジュールとを有する1または複数のソフトウェアプログラムを搭載する処理装置がネットワークを介して接続されるシステムにおける通信制御方法であって,
前記共有データ管理機能モジュールが,前記機能モジュールまたは前記通信機能モジュールからの共有データの参照要求に対して,原本データのコピーであるミラーデータを作成して,要求元の機能モジュールまたは通信機能モジュールに提供する過程と,
前記共有データ管理機能モジュールが,前記機能モジュールまたは前記通信機能モジュールからの共有データの更新要求に対して,要求された原本データおよび対応するミラーデータを更新して,同じデータを共有している機能モジュールへ更新通知を行う過程と,
前記通信機能モジュールが,同じソフトウェアプログラム内の機能モジュールからの他のソフトウェアプログラムが原本データを持つ共有データに対する参照要求に対して,当該他のソフトウェアプログラムの通信機能モジュールに対して共有データの参照要求を送り,要求した共有データのミラーデータを受信してミラーデータを格納し,要求元の機能モジュールに提供する過程と,
前記通信機能モジュールが,同じソフトウェアプログラム内の機能モジュールからの他のソフトウェアプログラムが原本データを持つ共有データに対する更新要求に対して,当該他のソフトウェアプログラムの通信機能モジュールに対して共有データの更新要求を送り,他のソフトウェアプログラムにおける原本データとミラーデータとを更新させ,更新通知を受信した場合に,当該通信機能モジュールが管理する対応するミラーデータを更新する過程とを有する
ことを特徴とするデータ共有のための機能モジュール間通信制御方法。 - 請求項3記載のデータ共有のための機能モジュール間通信制御方法を,前記処理装置のコンピュータに実行させるための機能モジュール間通信制御プログラム。
- 請求項3記載のデータ共有のための機能モジュール間通信制御方法を,前記処理装置のコンピュータに実行させるためのプログラムを記録した
ことを特徴とする機能モジュール間通信制御プログラムの記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003273451A JP2005032171A (ja) | 2003-07-11 | 2003-07-11 | データ共有のための機能モジュール間通信制御システム,機能モジュール間通信制御方法,機能モジュール間通信制御プログラムおよびその記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003273451A JP2005032171A (ja) | 2003-07-11 | 2003-07-11 | データ共有のための機能モジュール間通信制御システム,機能モジュール間通信制御方法,機能モジュール間通信制御プログラムおよびその記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005032171A true JP2005032171A (ja) | 2005-02-03 |
Family
ID=34210684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003273451A Pending JP2005032171A (ja) | 2003-07-11 | 2003-07-11 | データ共有のための機能モジュール間通信制御システム,機能モジュール間通信制御方法,機能モジュール間通信制御プログラムおよびその記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005032171A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009033706A (ja) * | 2007-06-27 | 2009-02-12 | Ricoh Co Ltd | ネットワーク同期システム及び情報処理装置 |
JP2014082712A (ja) * | 2012-10-18 | 2014-05-08 | Nec Commun Syst Ltd | 設定情報管理システム、設定情報管理装置、管理対象装置、及び、設定情報管理方法 |
JP5500704B2 (ja) * | 2011-08-19 | 2014-05-21 | 株式会社Synclogue | アプリケーション同期方法及びプログラム |
CN110275493A (zh) * | 2018-03-15 | 2019-09-24 | 西门子股份公司 | 用于控制技术系统的方法和装置 |
-
2003
- 2003-07-11 JP JP2003273451A patent/JP2005032171A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009033706A (ja) * | 2007-06-27 | 2009-02-12 | Ricoh Co Ltd | ネットワーク同期システム及び情報処理装置 |
JP5500704B2 (ja) * | 2011-08-19 | 2014-05-21 | 株式会社Synclogue | アプリケーション同期方法及びプログラム |
JPWO2013027248A1 (ja) * | 2011-08-19 | 2015-03-05 | 株式会社Synclogue | アプリケーション同期方法及びプログラム |
JP2014082712A (ja) * | 2012-10-18 | 2014-05-08 | Nec Commun Syst Ltd | 設定情報管理システム、設定情報管理装置、管理対象装置、及び、設定情報管理方法 |
CN110275493A (zh) * | 2018-03-15 | 2019-09-24 | 西门子股份公司 | 用于控制技术系统的方法和装置 |
CN110275493B (zh) * | 2018-03-15 | 2022-08-02 | 西门子股份公司 | 用于控制技术系统的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0683649A (ja) | 共通エージェント・コンピュータ管理システムと方法 | |
JP2004302713A (ja) | 記憶システム及びその制御方法 | |
JPH0962558A (ja) | データベース管理システム及び方法 | |
KR100285956B1 (ko) | 고속직렬버스에연결된동기식및비동기식장치의제어시스템과제어방법 | |
JP2004227558A (ja) | 仮想化制御装置およびデータ移行制御方法 | |
JP2008234568A (ja) | ファイルレベルの仮想化を行う中間装置 | |
JPH11338804A (ja) | ネットワーク構成管理対象アクセスシステム及び方法 | |
JP2004302556A (ja) | 複数の計算機システム間でのデータ共有方法およびディスク制御装置 | |
JP2005032171A (ja) | データ共有のための機能モジュール間通信制御システム,機能モジュール間通信制御方法,機能モジュール間通信制御プログラムおよびその記録媒体 | |
JP4548037B2 (ja) | キャッシュメモリの管理方法、ストレージ装置または計算機システム | |
JP2001084168A (ja) | 異種計算機間高速データ交換方式およびエクステント抽出・変換プログラム記録媒体 | |
JP4580693B2 (ja) | 共有排他制御方法 | |
JP2006164218A (ja) | ストレージシステム及びそのキャッシュ制御方法 | |
JP6856048B2 (ja) | 制御システムおよび制御方法 | |
JP4300133B2 (ja) | クラスタメモリファイルシステム | |
JP4005102B2 (ja) | ゲートウェイ装置 | |
JP2003316589A (ja) | 実記憶利用方法 | |
JP3535413B2 (ja) | データ処理装置、データ処理システム、データ処理方法、及び記録媒体 | |
JPH0736374A (ja) | データリンクシステム | |
JP2001034485A (ja) | 情報処理装置におけるプロセス間通信方法 | |
JP2006286025A (ja) | データアクセスシステム | |
JPH10320218A (ja) | データ転送処理における連携ジョブ自動起動方法 | |
JPH086838A (ja) | 分散システム | |
JP2798140B2 (ja) | 仮想空間制御方式 | |
JPH0844686A (ja) | データ管理システム |