(57)【要約】【課題】  独立した複数マシン間の仮想的な空間共有を、複数マシン同士が自律的に連携しつつ、かつ効率的に実現する。さらに、複数マシン同士が自立的に連携しあう仕組みの一環として、１つのマシンから、複数の、通信方式が異なる可能性のあるマシン上の、名称も動作の異なる可能性のある操作の一括実行を、呼出し側で一括実行を依頼する側、および呼出される側の操作、の双方の拡張性を確保して実現する。【解決手段】  分散環境における各マシン（その実現が物理的か仮想的かを問わない）に、データベースに格納されているマスタ情報のレプリカを個々に保持・管理するための空間管理手段と、複数のマシンに配置された任意の操作を、あるマシンから一括でリモート呼出しするためのリモート操作一括呼出し手段を配置する。【選択図】  図４ａ
2006065525.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理装置が、分散されて配置された分散環境において、前記複数の情報処理装置間でキャッシュメモリである仮想共有空間を共有する分散環境における仮想共有空間の実現方法において、
前記複数の情報処理装置それぞれと接続された記憶装置に、前記複数の情報処理装置における共有対象となるマスタ情報を記憶し、
前記複数の情報処理装置それぞれが、前記マスタ情報に含まれる情報のうち、共有を希望する情報であるレプリカ情報を保持し、
前記複数の情報処理装置それぞれが、他の情報処理装置に対して、所定の操作を指示するリモート呼び出しが可能であり、
前記複数の情報処理装置それぞれが、
当該情報処理装置が、自身が保有するレプリカ情報に対して、マスタ情報に更新があったことを記憶し、当該情報処理装置におけるユーザプログラムからの情報更新依頼を受付けて、当該情報処理装置が保有するレプリカ情報の更新と、前記マスタ情報の更新と、他の情報処理装置を一括して呼出すことで他の情報処理装置への情報更新事実の通知を行い、当該情報処理装置におけるユーザからの情報提供依頼を受付けて、当該情報処理装置が保有するレプリカ情報に情報更新事実が記憶されていなければその空間に保有するレプリカ情報を提供し、情報更新事実が記憶されていれば前記マスタ情報を読み出し、当該情報処理装置が保有するレプリカ情報を更新するとともに、前記マスタ情報として、読み出したマスタ情報あるいは更新済みのレプリカ情報をユーザに提供することを特徴とする仮想共有空間の実現方法。
【請求項２】
請求項１に記載の仮想共有空間の実現方法において、
前記リモート呼び出しは、
呼出し側のマシンで動作するリモート操作一括呼出しクライアントスタブと、一括呼出し対象となるリモート操作をまとめた単位であるイベントに関する情報が格納されたイベント定義ファイルと、呼出される側のマシンで動作するリモート操作呼出しエンジンから構成され、
上記リモート操作呼出しエンジンは、
呼出される側の操作が動作するマシンが前提としている通信方式に応じて予め準備されるものであり、指定されたリモート操作の実行依頼を受付けて、その操作を実行するリモート操作実行依頼受付操作を有し、
上記リモート操作一括呼出しクライアントスタブは、
当該呼出し側マシンにおけるユーザからのリモート操作一括呼出し依頼として、一括して呼出す操作の単位であるイベントを受付けて、イベント定義ファイルより、当該イベントにて呼出すべき、１つあるいは複数のリモート操作名と、各リモート操作に対する、当該操作を保有するマシンの位置情報、及び当該マシンが前提としている通信方式に関する情報を取得し、イベント定義ファイルから取得した、当該イベントにて呼出すべきすべての操作について、呼出される側のマシンに予め準備されているリモート操作呼出しエンジンに対し、指定したリモート操作の実行を依頼する、リモート操作一括呼出し受付操作を有することを特徴とする仮想共有空間の実現方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マシンとしての実現が物理的あるいは仮想的かに関わらず、個々が独立していると認識されるマシンが分散配置されている分散環境において、複数のマシン間で仮想的にキャッシュメモリ空間（以下、空間）の共有を行う方法に係り、データベースに格納した共有対象のマスタ情報と、各マシンの空間に展開したレプリカ情報との整合性を、必要最低限の範囲で効率的に確保することで、仮想的に空間を共有する方法に関する。
【背景技術】
【０００２】
近年の技術革新においては、分散技術、部品化技術が進み、コンピューティング環境における結合関係の疎化が進む一方で、アプリケーションが複数の独立したマシン（その実現が物理的あるいは仮想的かを問わない）に分散配置されている環境における、アプリケーション間の情報の共有は困難になってきている。特にオブジェクト指向のインタープリタ言語においては、マシンはこの言語で用いられる仮想マシンの単位で独立に認識されるため、たとえ同一の筐体で動作していても、仮想マシンが異なれば、マシン間でキャッシュメモリ空間を物理的に共有することは不可能である。
【０００３】
こうしたなか、個々が独立した複数マシン間で情報を共有する方法としては、様々な方法が開示されている。
【０００４】
まず、物理的に情報を共有する方法としては、共有したい情報をデータベースに格納し、必要時には各マシンが当該データベースにアクセスし、共有対象情報を取得する方法がある。また、特開２００４−５４８４５には、物理的な共有キャッシュ装置を配備する方式が開示されている。
【０００５】
次に、仮想的に情報（空間）を共有する方法についても、様々な方法が開示されている。ところで、独立した複数のマシン間で仮想的に情報を共有するということは、各マシンの空間に配置された情報について、複数マシン間で整合性を確保するということに他ならない。なぜなら、各マシンにおける空間に、共有したい情報を各々保有する場合は、あるマシンにおいて情報更新を行ったのち、すぐに他マシンで当該情報を参照する場合に、各マシンの空間に配置されている情報の整合性が確保できていなければ、情報を共有したことにはならないためである。この、仮想的に情報（空間）を共有する方法は大きく、何らかの集中管理機構を前提とするものと、集中管理機構は前提とせずマシン同士が自律的に連携しあうものの２種類に分けることができる。
【０００６】
前者の、集中管理機構を前提とするものとしては、単純に共有データ管理サーバからの定期的な情報の全量配布が容易に想定されるが、毎回全量配布するのでは、トラフィック負荷が高くなることが容易に想定され、それを解決する方法として、特開平８−８３２１６や、特開平８−３１４７８８などにおいては、各種の差分配布の方法が開示され、処理効率が改善されている。また、マルチプロセッサシステムにおけるキャッシュメモリの記憶一致制御方法として、特許第３０９３６０９号、特開平９−４４４０２および特許第３２１３７５８号では、必要なプロセッサに焦点をあててデータをキャストすることで、効率性を確保した各種の方法が開示されている。更にまた、特開平１０−１５４０９３では、データを提供するサーバと当該データを共有して協調作業を行う複数クライアントにてシステムを構成し、各クライアントにキャッシュを持たせるのであるが、当該サーバにおいて設定する、各クライアントのキャッシュリフレッシュタイミングは、ダーティーリードなど実現取引のニーズに合わせた各クライアントごとに指定が可能であり、その指定に基づいて、クライアントごとのキャッシュをリフレッシュすることで、データの通信量を低減し、効率的な仮想共有を実現している。
【０００７】
後者の、マシン同士が自律的に連携しあう方式としても、様々な方式が発明されている。特開平８−５５０５１においては、あるノードで管理しているローカルデータを変更したノードが、他ノードに変更した旨の通知を実施し、通知を受けた各ノードが、データを変更したノードに変更内容を取得しに行く方式が発明されている。また、特開２００２−２４１９３、特許２６５６５４３、特開平７−３０７７７３９、および特開平１１−３３８６０６においては、データを変更した者が他者に変更内容をマルチキャストで配信する各種の方式が開示されている。また、特開２００３−１６７８６２においては、周囲のマシンから最新の情報を集め、全マシン分をまとめあげた結果を、ブロードキャストする仕組みが開示されている。また、特許第３４７６９７３号および、その分割である特開２００３−２６３３５５においては、自マシン内のデータを更新したマシンが、他マシンにおいても同様の更新が可能なデータ更新操作の実行を通知し、各マシンにおいて当該操作が実行されることにより、各マシンのデータ（ファイル）の整合性を保つ方式が開示されている。更にまた、特開２０００−２３５５１４においては、キャッシュに変更があった場合、他マシンに無効化通知を行い、その後に参照要求が発生した場合には、マスタ情報を取得し、当該無効化されたキャッシュとは別領域に新たに展開する方式が開示されている。
【０００８】
ここで視点を変えて、マシン同士が自律的に連携しあう方式として、分散環境においてリモート関数を呼び出す方式に着目する。
まず、リモート関数の呼出しを行うには、まず、通信方式を１つ決め、呼出し側と呼出される側の双方で、当該通信方式の規定する手順に沿った実装が必要である。具体的には、サービスの提供者である、呼出される側が指定する通信方式を、呼出し側が守ることになる。一方で、例えばＷｅｂサービスにおけるＳＯＡＰの確立など、通信方式も日々進化しており、ユーザが逐次追随するのは困難な状況になってきており、こういった個々の通信方式を隠蔽し、ユーザにより使いやすくする方法について、隠蔽対象やレベルは異なるものの、様々なものが開示されている。
【０００９】
まず、あくまでも最終的には１：１の通信を前提とした上で、呼出し側に、通信方式の隠蔽機構を配置し、ユーザからの呼出し依頼を、呼出される側が指定する通信方式にかかわりなく、何らかの統一インターフェースで受付け、隠蔽機構が、定められた通信方式に従って関数呼出しを行う方式として、特開２００３−２２２５１や特開２０００−２４２５８７が開示されている。
【００１０】
次に、１：ｎの一括通信を前提とし、やはり呼出し側に、通信方式の隠蔽機構を配置し、ユーザからは、呼出される側のｎ個の関数のグループを表す情報を受付け、隠蔽機構がｎ個の関数を、各々の呼出される側が指定する通信方式で呼出す方式として、特開２０００−５７０７５が開示されている。
【００１１】
【特許文献１】特開２００４−５４８４５
【特許文献２】特開平８−８３２１６
【特許文献３】特開平８−３１４７８８
【特許文献４】特開平１０−１５４０９３
【特許文献５】特許第３０９３６０９号および特開平９−４４４０２
【特許文献６】特許第３２１３７５８号
【特許文献７】特開平８−５５０５１
【特許文献８】特開２００２−２４１９３
【特許文献９】特許第２６５６５４３号
【特許文献１０】特開平７−３０７７７３９
【特許文献１１】特開平１１−３３８６０６
【特許文献１２】特開２００３−１６７８６２
【特許文献１３】特許第３４７６９７３号および特開２００３−２６３３５５
【特許文献１４】特開２０００−２３５５１４
【特許文献１５】特開２００３−２２２５１
【特許文献１６】特開２０００−２４２５８７
【特許文献１７】特開２０００−５７０７５
【発明の開示】
【発明が解決しようとする課題】
【００１２】
分散化・独立化の流れのなかで、独立した複数のマシン間での情報共有が難しくなる一方で、情報を共有するニーズは依然として存在している。そして、そのニーズを実現するため、情報を共有する方式としては、上に示したような、様々な方式が開示されているが、これらの既存の方式にはまだ性能面や、方式面で改善の余地がある。以下に、各方式に関する課題を具体的に述べる。
【００１３】
まず、物理的に情報を共有する方法として、共有したい情報をデータベースに格納し、必要時には各マシンが当該データベースにアクセスし、共有対象情報を取得する方法では、例えば大量のトランザクションを扱うシステムにおいて、各トランザクションの先頭で何らかのステータス情報を確認する処理を必ず実施する場合、このためだけにデータベースのアクセスを行うことは、性能の劣化をもたらすことは容易に想像できる。また、特開２００４−５４８４５で開示されているような、物理的な共有キャッシュ装置は必ずしも設置可能とは言い切れない。例えば、オブジェクト指向のインタプリタ言語においては、仮想マシンをまたがった物理的な共有キャッシュ空間の保有は困難である。
【００１４】
次に、仮想的に情報（空間）を共有する方法のうち、集中管理機構を前提とする方式である、特開平８−８３２１６、特開平８−３１４７８８、特許第３０９３６０９号、特開平９−４４４０２、特許第３２１３７５８号、および特開平１０−１５４０９３については、いずれの方式を採用したとしても、その性質上、実現のためには集中管理機能を構築する必要がある。
【００１５】
一方、マシン同士が自律的に連携しあう方式である、特開平８−５５０５１、特開２００２−２４１９３、特許２６５６５４３、特開平７−３０７７７３９、特開平１１３３８６０６、特開２００３−１６７８６２、更に特許第３４７６９７３号およびその分割である特開２００３−２６３３５５は、いずれも、ユーザが当該変更内容を必要としているか否かに関わらず、整合性を保つ動作をするものであり、ユーザが当該変更内容を必要としない場合においてもデータベースアクセスや通信、各マシンでの処理実行が発生し、この意味で処理効率の向上の余地があると言える。また、特開２０００−２３５５１４は、キャッシュに変更があれば他マシンに無効化通知を実施するものであるが、当該キャッシュはリフレッシュされず、その後に参照要求が発生した場合には、別のキャッシュ領域に新たに情報を展開する方式となっており、リソースが限られている場合の実現は厳しく、この意味で、やはり効率向上の余地があると言える。
【００１６】
また、マシン同士が自律的に連携しあう方式を支える技術として、まず、１：１通信の通信方式を隠蔽する方法として、特開２００３−２２２５１および特開２０００−２４２５８７があるが、この方法は、ユーザ側から呼出し先、あるいは呼出し先の通信方式などの指定が必要であり、当該方式を拡張したうえでの複数マシンへの一括呼出しを考えた場合、呼出し先の追加や名称の変更を考慮すると、拡張時の柔軟性に欠けると言える。また、１：ｎ通信の通信方式を隠蔽する特開２０００−５７０７５は、呼出し側の拡張性は確保されているが、呼出される側の関数は依然として自分が提供可能な通信方式を１つ決めた上で、その通信方式に従った実装が前提となっている。つまり、呼出される側の関数は、呼出される通信方式を意識して作っておく必要がある。
【００１７】
本発明の目的は、上述のような既存の方法に係る課題を解決したうえで、独立した複数マシン間の仮想的な空間共有を、複数マシン同士が自律的に連携しつつ、かつ効率的に実現することである。さらに、複数マシン同士が自立的に連携しあう仕組みの一環として、１つのマシンから、複数の、通信方式が異なる可能性のあるマシン上の、名称も動作の異なる可能性のある操作の一括実行を、呼出し側で一括実行を依頼する側、および呼出される側の操作、の双方の拡張性を確保して実現することである。
【課題を解決するための手段】
【００１８】
本発明では、この目的を達成するために、共有したいマスタ情報が保持され、分散環境に接続されているデータベースと、各マシンに配置される、共有したい情報のレプリカを個々に保持・管理するための空間管理手段と、同じく各マシンに配置される、複数のマシンに配置された任意の操作を、あるマシンから一括でリモート呼出しするためのリモート操作一括呼出し手段を設ける。
【００１９】
上記空間管理手段は、
自マシンの空間に保有するレプリカ情報に対して、マスタ情報に更新があったことを記憶する情報更新事実記憶操作と、
自マシンにおけるユーザプログラム（以下、ユーザ）からの情報更新依頼を受付けて、自マシンの空間に保有するレプリカ情報の更新と、データベースのマスタ情報の更新と、上記リモート操作一括呼出し手段を用いて他マシン上の上記情報更新事実記憶操作を一括して呼出すことで他マシンへの情報更新事実の通知を行う情報更新依頼受付操作と、
自マシンにおけるユーザからの情報提供依頼を受付けて、自マシンの空間に保有するレプリカ情報に情報更新事実が記憶されていなければその空間に保有するレプリカ情報を提供し、情報更新事実が記憶されていればデータベースにあるマスタ情報を読み出し、自マシンの空間に保有するレプリカ情報を更新するとともに、実質的なマスタ情報として、読み出したマスタ情報あるいは更新済みのレプリカ情報をユーザに提供する情報提供依頼受付操作とを有することを特徴とする。
【００２０】
また、上記リモート操作一括呼出し手段においては、
呼出し側のマシンで動作するリモート操作一括呼出しクライアントスタブと、一括呼出し対象となるリモート操作をまとめた単位であるイベントに関する情報が格納されたイベント定義ファイルと、呼出される側のマシンで動作するリモート操作呼出しエンジンから構成され、
上記リモート操作呼出しエンジンは、
呼出される側の操作が動作するマシンが前提としている通信方式に応じて予め準備されるものであり、指定されたリモート操作の実行依頼を受付けて、その操作を実行するリモート操作実行依頼受付操作を有し、
上記リモート操作一括呼出しクライアントスタブは、
当該呼出し側マシンにおけるユーザからのリモート操作一括呼出し依頼として、一括して呼出す操作の単位であるイベントを受付けて、イベント定義ファイルより、当該イベントにて呼出すべき、１つあるいは複数のリモート操作名と、各リモート操作に対する、当該操作を保有するマシンの位置情報、及び当該マシンが前提としている通信方式に関する情報を取得し、イベント定義ファイルから取得した、当該イベントにて呼出すべきすべての操作について、呼出される側のマシンに予め準備されているリモート操作呼出しエンジンに対し、指定したリモート操作の実行を依頼する、リモート操作一括呼出し受付操作を有することを特徴とする。
【００２１】
また、上記リモート操作一括呼出し手段における、リモート操作一括呼出しクライアントスタブが、ユーザに対して、各リモート操作に対するパラメータ情報を設定可能なパラメータオブジェクトを提供し、当該クライアントスタブが、各リモート操作に対して指定されたパラメータ値を引渡すことを含む。
【００２２】
また更に、リモート操作一括呼出し手段における、リモート操作一括呼出しクライアントスタブが、ユーザに対して、各リモート操作の実行結果情報をユーザが扱える仕組みとして、各リモート操作の実行結果に基づいたユーザ処理を設定可能な実行ステータスリスナを提供し、当該クライアントスタブが、各リモート操作の実行結果に基づき指定されたユーザ処理を実行することを含む。
【発明の効果】
【００２３】
本発明によれば、マシン全体を管理する専用の集中管理機構を前提とすることなくマシン同士が自律的に連携しあい、データベースアクセスや通信、各マシンにおける処理負荷を抑えた効率的な処理が実現されるとともに、更にデータベースへのアクセスの有無をユーザには意識させることなく、実際には分散配置されている空間で保有・管理されている情報を、１つの空間で保有・管理した場合の情報と同等の情報をユーザに提供することにより、効率的に仮想的な空間の共有を実現することができる。
【００２４】
また、特にマシンが仮想マシン単位で認識可能なサーバである場合には、上述したインタプリタ言語には仮想マシンをまたがった共有メモリという概念は存在しないが、このインタプリタにおいても、共有メモリを有するのと同等の効果をユーザに提供することができる。
さらに、この発明により、複数マシン同士が自立的に連携しあう仕組みの一環として、１つのマシンから複数のマシンの、名称や動作、通信方式が異なる可能性のある操作の一括実行を、呼び出し側で一括実行を依頼する側および呼ばれる側の操作側の双方の拡張性を確保して実現することができる。具体的には、呼び出し側ではイベントのみの指定であるため、呼出す側は、呼出される処理そのものや、通信方式やその呼び出し操作手順を意識する必要はなく、また当該イベントにより呼出される操作は随時追加・変更が可能であり、各種の要件に柔軟に対応することができる。さらに、呼出される側のマシンで準備しておく操作は、通信方式を一切意識する必要がなく、自由に一プログラミング言語の関数あるいはメソッドとして実装さえしておけば良い。つまり、この、リモート操作一括呼出し手段は、分散環境における空間の共有の実現方法とは切り離して単独で見た場合においても、分散環境において、リモートオブジェクトを呼出す方法として、呼出されるオブジェクト自身を、特定の規定を前提とせず、作りやすくする方法を発明したとも言える。
【発明を実施するための最良の形態】
【００２５】
まず、本発明の実施形態の構成の概要について、図１、図２ａ〜ｅ、および図３ａ〜ｅを用いて説明する。
【００２６】
図1では、本発明の一実施形態に係る分散マシン環境の全体構成を、図２では、空間管理手段の構成要素と動作のしくみを、図３では、リモート操作一括呼出し手段の構成要素と動作のしくみを示している。
【００２７】
図１において、本実施形態は、共有したいマスタ情報１０２を保持したデータベース１０１を保有し、分散マシン１０３・１０４・１０５が通信ネットワーク１２１を介して接続された構成をとる。なお、図１においては、分散マシンは３個としているが、この数を限定するものではない。各分散マシンに配置するものを、マシン１０３を例にとって説明するが、この配置は他マシン１０４・１０５においても同様である。マシン１０３には、当該マシンにて動作する空間利用ユーザ１０６と、当マシン１０３の空間１１２に含まれるレプリカ情報１１５を他マシンと共有するための空間管理手段１０９と、マシン間で通信を行い、自律的に他マシンと空間を共有するために協調を行うリモート操作一括呼出し手段１１８を配置する。
【００２８】
図２ａにおいて、空間管理手段１０９の構成を示す。空間管理手段１０９は、情報更新事実記憶操作２０１と、情報更新依頼受付操作２０２と、情報提供依頼受付操作２０３を有し、レプリカ情報１１２の模式的な構造としては、図２ｂに示す様に、共有したい情報本体項目２０５と、その情報のマスタ情報に何らかの更新が発生した事実を記録する更新事実判定フラグ項目２０４を有す。情報更新事実記憶操作２０１で実現する処理手順は図２ｃに示す通り、指定された情報の更新事実判定フラグをＯＮにする（ステップ２０６）ものである。情報更新依頼受付操作２０２で実現する処理手順は、図２ｄに示すとおり、ユーザからの情報更新依頼を受付けるとまず、自マシンの空間に保有するレプリカ情報を更新（ステップ２０７）し、次にデータベースに格納されているマスタ情報を更新する（ステップ２０８）し、さらに、自マシン１０３に配置されているリモート操作一括呼出し手段１１８に、処理を依頼する。このとき、リモート操作一括呼出し手段１１８には、他マシンの情報更新事実記憶操作をまとめた単位である、レプリカ情報更新事実イベント名を引き渡し（ステップ２０９）、処理を終了する。情報提供依頼受付操作２０３で実現する処理手順を図２ｅに示す。ユーザからの情報提供依頼を受付けるとまず、ステップ２１０にて、提供依頼を受けた対象情報について、自マシン１０３の空間１１２内で管理しているレプリカ情報１１５の、該当情報項目２０５の更新事実判定フラグ２０４がＯＮなのかＯＦＦなのかを判定する。ステップ２１０にて、フラグがＯＮと判定された場合はまず、データベース１０１に格納されているマスタ情報１０２を抽出し（ステップ２１１）、次に自マシンの空間に保有する当該情報に関して、更新事実判定フラグをＯＦＦにするとともに、情報本体を更新する（ステップ２１２）。最後に、ステップ２１３にて、ステップ２１１で取得した情報、あるいはステップ２１２で更新済みの自マシンの空間に保有するレプリカ情報をユーザに提供して、処理を終了する。ステップ２１０にて、フラグがＯＦＦと判定された場合は、ステップ２１４にて自マシンの空間に保有するレプリカ情報をユーザに提供して、処理を終了する。
【００２９】
図３ａに、リモート操作一括呼出し手段１１８の構成を示す。リモート操作一括呼出し手段１１８は、呼出される側のマシンの方式の種類分のリモート操作呼出しエンジン３０１、３０２、３０３と、リモート操作一括呼出しクライアントスタブ３０７を有す。ここで、リモート操作呼出しエンジンは３つ図示しているが、この数は限定するものではない。リモート操作呼出しエンジンに配置するものを、３０１を例にとって説明するが、３０２、３０３も同様である。リモート操作呼出しエンジン３０１は、リモート操作実行依頼受付操作３０４を有す。リモート操作一括呼出しクライアントスタブ３０７は、リモート操作一括呼出し依頼受付操作３０８を有し、イベント定義ファイル３０９の存在を前提としている。更に、リモート操作一括呼出しクライアントスタブ３０７では、各呼出される側のマシンにある操作への引渡し情報を格納可能なパラメータオブジェクト３１０および、各呼出される側のマシンにある操作の処理結果に基づくユーザ処理を実行可能なイベントリスナ３１１を扱うことができる。
【００３０】
イベント定義ファイル３０９の模式的な構造としては、図３ｂに示す様に、イベント名項目３１２と、そのイベント名でグルーピングされるリモート操作名項目３１３と、当該リモート操作が動作するマシンに関する位置情報項目３１４と、同じく当該リモート操作が動作するマシンの通信方式項目３１５を有す。リモート操作実行依頼受付操作３０４で実現する処理手順は図３ｃに示すとおり、当該操作のユーザである、リモート操作一括呼出しクアイアントスタブ３０７から、指定されたリモート操作の実行依頼を受付けると、当該マシンに配置されているリモート操作を実際に呼出すことである（ステップ３１６）。リモート操作一括呼出し受付操作３０８で実現する処理手順を図３ｄに示す。当該操作のユーザから、イベント名とともに依頼を受付けた場合、まず、ステップ３１７にて当該イベント名をもとにイベント定義ファイル３０９を読み込み、当該イベントに対応するリモート操作名と、リモート操作が動作するマシンの位置情報および通信方式を取得する。次に、取得した通信方式（ステップ３１８）および当該処理方式で通信するリモート操作（ステップ３１９）ごとに、当該リモート操作を保有する、呼出される側のマシンを特定し（ステップ３２０）、当該処理方式にて呼出されるマシンと通信し、リモート操作呼出しエンジンに、当該リモート操作の実行を依頼する（ステップ３２１）。図３ｅに、リモート操作一括呼出しクライアントスタブと、リモート操作呼出しエンジンの連携する様子を示す。呼出す側のマシン１（１０３）において、空間利用ユーザ１０６がリモート操作一括呼出しクライアントスタブ３０７のリモート操作一括呼出し依頼受付操作３０８を呼出すことで、処理依頼をする。このとき、イベント名３２２を引き渡す。処理を依頼されたリモート操作一括呼出し依頼受付操作３０８は、イベント定義ファイル３０９から、当該イベント名３２２に該当するリモート操作に関する情報３２３を取得する。まず、操作１に関しては、は呼出される側のマシン１（１０４）で動作し、方式は方式１であることを認識して、マシン２（１０４）にある方式１用のリモート操作呼出しエンジン３２６のリモート操作実行依頼受付操作３２７に、処理依頼をする。このとき、操作１の名称（３２４）を引き渡す。
【００３１】
そして、依頼を受付けたリモート操作実行依頼受付操作３２７は、実際に操作１（３２８）を呼出す。次に、操作２に関しても同様の動きをする（３２５、３２９、３３０、３３１）。
【００３２】
本発明の個々の構成要素とその動作に関する説明は以上であるが、これらの構成要素が互いに協調しあうことで、実際に空間が共有できることを、図４ａ，ｂを用いて説明する。説明にあたっては、初期状態としてマスタ情報が各マシンの空間のレプリカ情報に展開されている状態を前提とし、ＳＴＥＰ１として、いずれかのマシンで情報の更新が発生した後、ＳＴＥＰ２として他のマシンで当該情報の照会をした場合に、情報の整合性が保たれていることを示す。
【００３３】
まず、図４ａに各構成要素の協調の全体観として、どの段階でどの手段のどの操作がどのように動作するのか、を説明する。
まず、ＳＴＥＰ１の動作をステップ４０１から４１４を用いて説明する。マシン１（１０３）における空間利用ユーザ１０６から、情報更新依頼が発生した場合（ステップ４０１）、マシン１（１０３）に配置されている、空間管理手段の情報更新依頼受付操作２０１においては、まず、自マシン１０３の空間内のレプリカ情報の情報本体２０５を更新し（ステップ４０２）、次にデータベースに格納されているマスタ情報１０２を更新し（ステップ４０３）、更に、自マシン１０３に配置されているリモート処理操作一括呼出し手段のクライアントスタブ３０７に、他マシンの情報更新事実記憶操作をまとめた単位であるイベントの実行依頼を行う（ステップ４０４）。なお、当該クライアントスタブ３０７にとってのユーザは、情報更新依頼受付操作２０１である。当該クライアントスタブ３０７は、実行依頼を受付けると、イベント定義ファイル３０９より、当該イベントに関する情報を取得し（ステップ４０５）、当該イベントでまとめられているリモート操作、つまり他マシンの情報更新事実記憶操作の名称、当該操作が動作するマシンおよびその通信方式を認識し、各マシンに配置されているエンジンのうち、各マシンが前提としている通信方式のものを選択し、各マシンと通信を行う（ステップ４０６）。この例では、マシン２（１０４）とは方式１のエンジン３２６と通信し、マシン３（１０５）とは方式２のエンジン３２９と通信を行う例を示している。
【００３４】
各マシン配置されているエンジンの動作として、まず、マシン２（１０４）では、マシン２（１０４）に配置されているリモート操作一括呼出し手段のリモート操作呼出しエンジン（３２６）では、指定された操作の実行依頼を受付けると、マシン２に配置されている情報更新事実記憶操作４０８を実際に呼出し（ステップ４０７）、各マシンで呼出された情報更新事実記憶操作４０８は、自マシンで管理している空間のレプリカ情報の、更新事実判定フラグ項目（４１０）をＯＮにする（ステップ４０９）。マシン３（１０５）においても、マシン３（１０５）に配置されているリモート操作一括呼出し手段のリモート操作呼出しエンジン（３２９）では、指定された操作の実行依頼を受付けると、マシン３に配置されている情報更新事実記憶操作４１２を実際に呼出し（ステップ４１１）、各マシンで呼出された情報更新事実記憶操作４１２は、自マシンで管理している空間のレプリカ情報の、更新事実判定フラグ項目（４１４）をＯＮにする（ステップ４１３）。
【００３５】
次に、ＳＴＥＰ２の動作をステップ４１５から４２２を用いて説明する。マシン２（１０４）における空間利用ユーザ１０７から、情報提供依頼が発生した場合（ステップ４１５）、マシン２（１０４）に配置されている、空間管理手段の情報提供依頼受付操作４１６においては、まず、自マシン１０４の空間内にあるレプリカ情報の更新事実判定フラグ項目４１０がＯＮであるかＯＦＦであるかを確認し（ステップ４１７）、判定の結果がＯＦＦであれば、情報本体４２１をユーザに提供する情報とし（ステップ４１８）、判定の結果がＯＮであれば、データベースに格納されているマスタ情報１０２を取得し（ステップ４１９）、自マシン内のレプリカ情報の更新事実反映フラグ項目４１０をＯＦＦにするとともに、情報本体項目４２１を更新し、当該情報をユーザに提供する情報とする（ステップ４２０）。これにより、最終的にユーザに提供される情報は、マスタ情報１０２と整合的な内容となる（ステップ４２２）。
【００３６】
図４ｂでは、各段階（初期状態、ＳＴＥＰ１、ＳＴＥＰ２）における、マスタ情報と、各マシンの空間で管理されているレプリカ情報の状態の遷移を示している。
【００３７】
初期状態（４２３）においては、マスタ情報１０２と、各マシンのレプリカ情報１１５、１１６、１１７の情報本体は、同じ値を示している。ここでは、情報本体は項目１と項目２を有し、その値は其々、Ａ、Ｂであったとする。
【００３８】
ＳＴＥＰ１の具体例として、マシン１（１０３）において、ユーザ１０６から、項目１の値をＡからＸに変更する依頼が発生した場合の状態（４２４）においては、更新依頼が発生したマシン１（１０３）のレプリカ情報１１５の情報本体とマスタ情報１０２は同じ値を示しているが、その他のマシン（１０４、１０５）のレプリカ情報１１６、１１７の情報本体は未だ更新されていない。しかし、レプリカ情報１１６、１１７の更新事実判定フラグはいずれもＯＮとなっている。
【００３９】
ＳＴＥＰ２の具体例として、マシン２（１０４）において、ユーザ１０７から項目１の値の提供依頼が発生した場合の状態（４２５）においては、情報提供依頼が発生したマシン２（１０４）のレプリカ情報１１６の情報本体は、マスタ情報１０２あるいは、更新依頼が発生したマシン１（１０３）のレプリカ情報１１５の情報本体と同じ値を示し、かつ更新事実判定フラグはＯＦＦとなっている。一方、未だ、項目１の値を必要としていないマシン３（１０５）においては、レプリカ情報１１６、１１７の情報本体は未だ更新されていない。しかし、レプリカ情報１１７の情報本体は未だ更新されておらず、更新事実判定フラグもＯＮのままである。
【００４０】
最後に、請求項５に記載した、一実施例として特に、マシンが仮想マシン単位で認識可能なサーバであって、仮想マシン単位で認識可能なサーバとしては、Ｗｅｂコンテナを装備したＷｅｂサーバと、ＥＪＢコンテナを装備したＥＪＢサーバと、そのどちらも装備していないアプリケーションサーバのいずれかに分類し、
空間管理手段は、マシン上にて唯一つ存在しうるシングルトンモデルにて動作させるクラスとして実装し、
情報更新事実記憶操作は、リモートから呼出すことがより容易になるスタティックメソッドとして実装し、
Ｗｅｂサーバで動作させるリモート操作呼出しエンジンでは、ＨＴＴＰ方式を採用し、
ＥＪＢサーバで動作させるリモート操作呼出しエンジンでは、ＲＭＩ−ＩＩＯＰ方式を採用し、アプリケーションサーバにおいては、ＨＴＴＰあるいはＲＭＩ−ＩＩＯＰ方式での通信は不可能であることの一代替方式として、当サーバで動作させるリモート操作呼出しエンジンとしては、データベースに格納されているマスタ情報の更新日時を一定間隔で監視し、自マシンで管理しているレプリカ情報の前回更新日時との比較により、マスタ情報の更新日時がレプリカ情報の前回更新日時よりも後であることによりマスタ情報の更新を検知することで、リモート操作の呼出し依頼を検知した場合に、自マシン上の情報更新事実記憶操作を実行する方式を採用し、これにより、すべての種類の、仮想マシン単位の複数サーバ間における仮想的な空間共有を実現した状態を図５に示す。５０１にて、ＷｅｂサーバとＥＪＢサーバは互いに通信する様子を示し、５０２にて、アプリケーションサーバからＷｅｂサーバおよびＥＪＢサーバのリモート操作が呼出す様子を示し、５０３にて、アプリケーションサーバでは、データベースに格納されているマスタ情報の更新日時を一定間隔で監視し、自マシンで管理しているレプリカ情報の前回更新日時との比較により、マスタ情報の更新日時がレプリカ情報の前回更新日時よりも後であることによりマスタ情報の更新を検知することで、リモート操作の呼出し依頼を検知した場合に、自マシン上の情報更新事実記憶操作を実行する様子を示している。
【産業上の利用可能性】
【００４１】
本発明によれば、独立した複数マシン（その実現が物理的あるいは仮想的かは問わない）間の仮想的な空間共有を、複数マシン同士が自律的に連携しつつ、かつ効率的に実現することが可能となり、さらに、複数マシン同士が自立的に連携しあう仕組みの一環として、１つのマシンから、複数の、通信方式の異なる可能性のあるマシン上の、名称も動作も異なる可能性のある操作の一括実行を、呼出し側で一括実行を依頼する側、および呼出される側の操作、の双方の拡張性を確保して実現できる。
【００４２】
これにより、空間が共有できることの直接的な利用可能性としては、例えば情報システムにおける全トランザクションが、トランザクションの先頭で、当該システム閉塞状態を確認するための、閉塞状態の共有が可能になる。あるいはまた、例えば給与口座振込や、株式配当金の通知書作成といった、特殊な処理ピークを持つ業務システムの実行において、専用のアプリケーションにより処理対象を特定の単位に分割して複数サーバで当該単位ごとに分散処理を実行させている際の実行状況の共有（実行状況の照会機能など）も可能であり、その用途は様々なものが考えられる。なお、上述の特殊な処理ピークを持つ業務システムにおける処理の分散は、特定の単位への処理の分割自体をアプリケーションに制御させ、当然に、１単位が終了すれば次の単位を受付ける様に構築されるため、単なる時間起動のスケジューラソフトによる状況管理は困難であり、仮想共有空間を実現することで、その恩恵を大きく受ける事例と言える。
【００４３】
また、特にマシンが仮想マシン単位で認識可能なサーバである場合には、インタープリタ言語には仮想マシンをまたがった共有メモリという概念は存在しないが、インタープリタ言語においても、共有メモリを有するのと同等の効果をユーザに提供することができる。
また、リモート操作一括呼出し手段の、利用可能性としては、各マシンに、当該マシンの特定メモリのリフレッシュ操作を準備しておき、これを特定マシンからリモート操作一括呼び出し手段を利用することで、「複数サーバに配置された特定メモリの一括リフレッシュ」が可能である。これを用いれば、例えば分散マシンを再起動することなく、「動的な各種構成定義情報の変更」が可能となる。このように、リモート操作一括呼出し手段は、分散環境における空間の共有とは切り離しても、分散環境において、リモートオブジェクトを呼出す方法の一方法として、呼出されるオブジェクト自身を、特定の規定を前提とせず、作りやすくする方法を提供するものである。
【図面の簡単な説明】
【００４４】
【図１】本発明の分散環境の全体構成図である。
【図２ａ】空間管理手段の構成要素と動作のしくみの説明図（その１）である。
【図２ｂ】空間管理手段の構成要素と動作のしくみの説明図（その２）である。
【図２ｃ】空間管理手段の構成要素と動作のしくみの説明図（その３）である。
【図２ｄ】空間管理手段の構成要素と動作のしくみの説明図（その４）である。
【図２ｅ】空間管理手段の構成要素と動作のしくみの説明図（その５）である。
【図３ａ】リモート操作一括呼出し手段の構成要素と動作のしくみの説明図（その１）である。
【図３ｂ】リモート操作一括呼出し手段の構成要素と動作のしくみの説明図（その２）である。
【図３ｃ】リモート操作一括呼出し手段の構成要素と動作のしくみの説明図（その３）である。
【図３ｄ】リモート操作一括呼出し手段の構成要素と動作のしくみの説明図（その４）である。
【図３ｅ】リモート操作一括呼出し手段の構成要素と動作のしくみの説明図（その５）である。
【図４ａ】本発明の構成要素が互いに協調することで、実際に空間が共有できることを模式的に示す説明図（その１）である。
【図４ｂ】本発明の構成要素が互いに協調することで、実際に空間が共有できることを模式的に示す説明図（その２）である。
【図５】本発明の一実施形態として、特に、マシンが仮想マシン単位で認識可能なサーバである場合に、仮想マシンをまたがった共有メモリと同等の効果を実現する様子を模式的に示す説明図である。
【符号の説明】
【００４５】
１０１：データベース、１０２：マスタ情報、１０３：マシン１、１０４：マシン２、１０５：マシン３、１０６：マシン１に配置された空間利用ユーザ、１０７：マシン２に配置された空間利用ユーザ、１０８：マシン３に配置された空間利用ユーザ、１０９：マシン１に配置された空間管理手段、１１０：マシン２に配置された空間管理手段、１１１：マシン３に配置された空間管理手段、１１２：マシン１で管理される空間、１１３：マシン２で管理される空間、１１４：マシン３で管理される空間、１１５：マシン１の空間に保有するレプリカ情報、１１６：マシン２にの空間に保有するレプリカ情報、１１７：マシン３に空間に保有するレプリカ情報、１１８：マシン１に配置されたリモート操作一括呼出し手段、１１９：マシン２に配置されたリモート操作一括呼出し手段、１２０：マシン３に配置されたリモート操作一括呼出し手段、１２１：ネットワーク、
２０１：（マシン１に配置された空間管理手段が保有する）情報更新事実記憶操作、２０２：（マシン１に配置された空間管理手段が保有する）情報更新依頼受付操作、２０３：（マシン１に配置された空間管理手段が保有する）情報提供依頼受付操作、２０４：（マシン１の空間で管理されるレプリカ情報の）更新事実判定フラグ項目、２０５：（マシン１の空間で管理されるレプリカ情報の）情報本体項目、２０６：情報更新事実記憶処理ロジック、２０７：自マシンに保有するレプリカ情報更新処理ロジック、２０８：リモート操作一括呼出し手段への処理依頼ロジック、２１０：提供対象情報の更新事実判定ロジック、２１１：マスタ情報抽出処理ロジック、２１２：自マシンに保有するレプリカ情報の、更新事実判定フラグおよび情報本体の更新ロジック、２１３：マスタ情報と整合的な情報を提供する処理ロジック、２１４：自マシンに保有するレプリカ情報を提供する処理ロジック、
３０１：（マシン１に配置されたリモート操作一括呼出し手段が保有する）リモート操作呼出しエンジン（方式１）、３０２：（マシン１に配置されたリモート操作一括呼出し手段が保有する）リモート操作呼出しエンジン（方式２）、３０３：（マシン１に配置されたリモート操作一括呼出し手段が保有する）リモート操作呼出しエンジン（方式３）、３０４：リモート操作呼出しエンジン（方式１）が有するリモート操作実行依頼受付操作、３０５：リモート操作呼出しエンジン（方式２）が有するリモート操作実行依頼受付操作、３０６：リモート操作呼出しエンジン（方式３）が有するリモート操作実行依頼受付操作、３０７：（マシン１に配置されたリモート操作一括呼出し手段が保有する）リモート操作一括呼出しクライアントスタブ、３０８：リモート操作一括呼出し依頼受付操作、３０９：イベント定義ファイル、３１０：パラメータオブジェクト、３１１：イベントリスナ、３１２：イベント名項目、３１３：リモート操作名項目、３１４：リモート操作が動作するマシンに関する位置情報項目、３１５：リモート操作が動作するマシンが前提としている通信方式項目、３１６：リモート操作実行処理ロジック、３１７：イベント解析ロジック、３１８：通信方式分のループ処理ロジック、３１９：リモート操作分のループ処理ロジック、３２０：リモート操作を保有するマシンの特定ロジック、３２１：リモート操作呼出しエンジンへの処理依頼ロジック、３２２：空間利用ユーザが、空間管理手段に引き渡すイベント名、３２３：イベント定義ファイルから取得したイベント情報、３２４：マシン１のリモート操作一括呼出しクライアントスタブが、マシン２のリモート操作呼出しエンジンに引き渡す操作名、３２５：マシン１のリモート操作一括呼出しクライアントスタブが、マシン３のリモート操作呼出しエンジンに引き渡す操作名、３２６：マシン２に配置されたリモート一括呼出し手段が保有するリモート操作呼出しエンジン（方式１）、３２７：リモート操作呼出しエンジン（方式１）が有するリモート操作実行依頼受付操作、３２８：マシン２で呼出される操作１、３２９：マシン３に配置されたリモート一括呼出し手段が保有するリモート操作呼出しエンジン（方式２）、３３０：リモート操作呼出しエンジン（方式２）が有するリモート操作実行依頼受付操作、３３１：マシン３で呼出される操作２
４０１：マシン１の空間利用ユーザ１０６からの情報更新依頼ステップ、４０２：レプリカ情報更新ステップ、４０３：マスタ情報更新ステップ、４０４：リモート処理操作一括呼出し依頼ステップ、４０５：イベント定義ファイル読出しステップ、４０６：マシン２・マシン３との通信ステップ、４０７：マシン２におけるリモート操作呼出しステップ、４０８：マシン２で呼出される情報更新事実記憶操作、４０９：マシン２における更新事実記憶フラグ設定ステップ、４１０：マシン２の空間で管理されているレプリカ情報の更新事実記憶フラグ項目、４１１：マシン３におけるリモート操作呼出しステップ、４１２：マシン３で呼出される情報更新事実記憶操作、４１３：マシン３における更新事実記憶フラグ設定ステップ、４１４：マシン３の空間で管理されているレプリカ情報の更新事実記憶フラグ項目、４１５：マシン２の空間利用ユーザ１０７からの情報提供依頼ステップ、４１６：マシン２に配置されている情報提供依頼受付操作、４１７：マシン２の空間で管理されているレプリカ情報の更新事実記憶フラグの判定ステップ、４１８：マシン２の空間で管理されているレプリカ情報をユーザへの提供情報とするステップ、４１９：マスタ情報を取得するステップ、４２０：マシン２の空間で管理されているレプリカ情報の情報本体をマスタ情報で更新するとともに、更新事実記憶フラグをＯＦＦに設定するステップ、４２１：マシン２の空間で管理されているレプリカ情報の情報本体、４２２：最終的にマスタ情報と整合的な情報を空間利用ユーザ１０７に提供するステップ、４２３：初期段階のマスタ情報およびレプリカ情報の状態、４２４：ステップ１におけるマスタ情報およびレプリカ情報の状態、４２５：ステップ２におけるマスタ情報およびレプリカ情報の状態、
５０１：ＷｅｂサーバとＥＪＢサーバが互いに協調する様子、５０２：アプリケーションサバからＷｅｂサーバ・ＥＪＢサーバにリモート操作一括呼出しが可能な様子、５０３：アプリケーションサーバにおいて、ＤＢ監視により、マスタ情報の更新があったことを検知して、リモート操作呼出しを行ったことと同等の効果を実現することが可能な様子
【図１】
2006065525.tif 000003
【図２ａ】
2006065525.tif 000004
【図２ｂ】
2006065525.tif 000005
【図２ｃ】
2006065525.tif 000006
【図２ｄ】
2006065525.tif 000007
【図２ｅ】
2006065525.tif 000008
【図３ａ】
2006065525.tif 000009
【図３ｂ】
2006065525.tif 000010
【図３ｃ】
2006065525.tif 000011
【図３ｄ】
2006065525.tif 000012
【図３ｅ】
2006065525.tif 000013
【図４ａ】
2006065525.tif 000014
【図４ｂ】
2006065525.tif 000015
【図５】
2006065525.tif 000016