JP2006065525A - 分散環境における仮想共有空間の実現方法 - Google Patents

分散環境における仮想共有空間の実現方法 Download PDF

Info

Publication number
JP2006065525A
JP2006065525A JP2004246094A JP2004246094A JP2006065525A JP 2006065525 A JP2006065525 A JP 2006065525A JP 2004246094 A JP2004246094 A JP 2004246094A JP 2004246094 A JP2004246094 A JP 2004246094A JP 2006065525 A JP2006065525 A JP 2006065525A
Authority
JP
Japan
Prior art keywords
information
machine
remote operation
call
information processing
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
Application number
JP2004246094A
Other languages
English (en)
Inventor
Masahiko Kato
雅彦 加藤
Shinichi Hirayama
新一 平山
紘平 ▲吉▼川
Kohei Yoshikawa
Susumu Mogi
勧 茂木
Takanobu Otani
隆宜 大谷
Masayoshi Chiisagata
雅嘉 小▲縣▼
Masahiro Yasunaga
昌浩 安永
Taro Kosaka
太郎 向坂
Tomoko Nishi
知子 西
Emi Goto
恵美 後藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2004246094A priority Critical patent/JP2006065525A/ja
Publication of JP2006065525A publication Critical patent/JP2006065525A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】
独立した複数マシン間の仮想的な空間共有を、複数マシン同士が自律的に連携しつつ、かつ効率的に実現する。さらに、複数マシン同士が自立的に連携しあう仕組みの一環として、1つのマシンから、複数の、通信方式が異なる可能性のあるマシン上の、名称も動作の異なる可能性のある操作の一括実行を、呼出し側で一括実行を依頼する側、および呼出される側の操作、の双方の拡張性を確保して実現する。
【解決手段】
分散環境における各マシン(その実現が物理的か仮想的かを問わない)に、データベースに格納されているマスタ情報のレプリカを個々に保持・管理するための空間管理手段と、複数のマシンに配置された任意の操作を、あるマシンから一括でリモート呼出しするためのリモート操作一括呼出し手段を配置する。
【選択図】 図4a

Description

本発明は、マシンとしての実現が物理的あるいは仮想的かに関わらず、個々が独立していると認識されるマシンが分散配置されている分散環境において、複数のマシン間で仮想的にキャッシュメモリ空間(以下、空間)の共有を行う方法に係り、データベースに格納した共有対象のマスタ情報と、各マシンの空間に展開したレプリカ情報との整合性を、必要最低限の範囲で効率的に確保することで、仮想的に空間を共有する方法に関する。
近年の技術革新においては、分散技術、部品化技術が進み、コンピューティング環境における結合関係の疎化が進む一方で、アプリケーションが複数の独立したマシン(その実現が物理的あるいは仮想的かを問わない)に分散配置されている環境における、アプリケーション間の情報の共有は困難になってきている。特にオブジェクト指向のインタープリタ言語においては、マシンはこの言語で用いられる仮想マシンの単位で独立に認識されるため、たとえ同一の筐体で動作していても、仮想マシンが異なれば、マシン間でキャッシュメモリ空間を物理的に共有することは不可能である。
こうしたなか、個々が独立した複数マシン間で情報を共有する方法としては、様々な方法が開示されている。
まず、物理的に情報を共有する方法としては、共有したい情報をデータベースに格納し、必要時には各マシンが当該データベースにアクセスし、共有対象情報を取得する方法がある。また、特開2004−54845には、物理的な共有キャッシュ装置を配備する方式が開示されている。
次に、仮想的に情報(空間)を共有する方法についても、様々な方法が開示されている。ところで、独立した複数のマシン間で仮想的に情報を共有するということは、各マシンの空間に配置された情報について、複数マシン間で整合性を確保するということに他ならない。なぜなら、各マシンにおける空間に、共有したい情報を各々保有する場合は、あるマシンにおいて情報更新を行ったのち、すぐに他マシンで当該情報を参照する場合に、各マシンの空間に配置されている情報の整合性が確保できていなければ、情報を共有したことにはならないためである。この、仮想的に情報(空間)を共有する方法は大きく、何らかの集中管理機構を前提とするものと、集中管理機構は前提とせずマシン同士が自律的に連携しあうものの2種類に分けることができる。
前者の、集中管理機構を前提とするものとしては、単純に共有データ管理サーバからの定期的な情報の全量配布が容易に想定されるが、毎回全量配布するのでは、トラフィック負荷が高くなることが容易に想定され、それを解決する方法として、特開平8−83216や、特開平8−314788などにおいては、各種の差分配布の方法が開示され、処理効率が改善されている。また、マルチプロセッサシステムにおけるキャッシュメモリの記憶一致制御方法として、特許第3093609号、特開平9−44402および特許第3213758号では、必要なプロセッサに焦点をあててデータをキャストすることで、効率性を確保した各種の方法が開示されている。更にまた、特開平10−154093では、データを提供するサーバと当該データを共有して協調作業を行う複数クライアントにてシステムを構成し、各クライアントにキャッシュを持たせるのであるが、当該サーバにおいて設定する、各クライアントのキャッシュリフレッシュタイミングは、ダーティーリードなど実現取引のニーズに合わせた各クライアントごとに指定が可能であり、その指定に基づいて、クライアントごとのキャッシュをリフレッシュすることで、データの通信量を低減し、効率的な仮想共有を実現している。
後者の、マシン同士が自律的に連携しあう方式としても、様々な方式が発明されている。特開平8−55051においては、あるノードで管理しているローカルデータを変更したノードが、他ノードに変更した旨の通知を実施し、通知を受けた各ノードが、データを変更したノードに変更内容を取得しに行く方式が発明されている。また、特開2002−24193、特許2656543、特開平7−3077739、および特開平11−338606においては、データを変更した者が他者に変更内容をマルチキャストで配信する各種の方式が開示されている。また、特開2003−167862においては、周囲のマシンから最新の情報を集め、全マシン分をまとめあげた結果を、ブロードキャストする仕組みが開示されている。また、特許第3476973号および、その分割である特開2003−263355においては、自マシン内のデータを更新したマシンが、他マシンにおいても同様の更新が可能なデータ更新操作の実行を通知し、各マシンにおいて当該操作が実行されることにより、各マシンのデータ(ファイル)の整合性を保つ方式が開示されている。更にまた、特開2000−235514においては、キャッシュに変更があった場合、他マシンに無効化通知を行い、その後に参照要求が発生した場合には、マスタ情報を取得し、当該無効化されたキャッシュとは別領域に新たに展開する方式が開示されている。
ここで視点を変えて、マシン同士が自律的に連携しあう方式として、分散環境においてリモート関数を呼び出す方式に着目する。
まず、リモート関数の呼出しを行うには、まず、通信方式を1つ決め、呼出し側と呼出される側の双方で、当該通信方式の規定する手順に沿った実装が必要である。具体的には、サービスの提供者である、呼出される側が指定する通信方式を、呼出し側が守ることになる。一方で、例えばWebサービスにおけるSOAPの確立など、通信方式も日々進化しており、ユーザが逐次追随するのは困難な状況になってきており、こういった個々の通信方式を隠蔽し、ユーザにより使いやすくする方法について、隠蔽対象やレベルは異なるものの、様々なものが開示されている。
まず、あくまでも最終的には1:1の通信を前提とした上で、呼出し側に、通信方式の隠蔽機構を配置し、ユーザからの呼出し依頼を、呼出される側が指定する通信方式にかかわりなく、何らかの統一インターフェースで受付け、隠蔽機構が、定められた通信方式に従って関数呼出しを行う方式として、特開2003−22251や特開2000−242587が開示されている。
次に、1:nの一括通信を前提とし、やはり呼出し側に、通信方式の隠蔽機構を配置し、ユーザからは、呼出される側のn個の関数のグループを表す情報を受付け、隠蔽機構がn個の関数を、各々の呼出される側が指定する通信方式で呼出す方式として、特開2000−57075が開示されている。
特開2004−54845 特開平8−83216 特開平8−314788 特開平10−154093 特許第3093609号および特開平9−44402 特許第3213758号 特開平8−55051 特開2002−24193 特許第2656543号 特開平7−3077739 特開平11−338606 特開2003−167862 特許第3476973号および特開2003−263355 特開2000−235514 特開2003−22251 特開2000−242587 特開2000−57075
分散化・独立化の流れのなかで、独立した複数のマシン間での情報共有が難しくなる一方で、情報を共有するニーズは依然として存在している。そして、そのニーズを実現するため、情報を共有する方式としては、上に示したような、様々な方式が開示されているが、これらの既存の方式にはまだ性能面や、方式面で改善の余地がある。以下に、各方式に関する課題を具体的に述べる。
まず、物理的に情報を共有する方法として、共有したい情報をデータベースに格納し、必要時には各マシンが当該データベースにアクセスし、共有対象情報を取得する方法では、例えば大量のトランザクションを扱うシステムにおいて、各トランザクションの先頭で何らかのステータス情報を確認する処理を必ず実施する場合、このためだけにデータベースのアクセスを行うことは、性能の劣化をもたらすことは容易に想像できる。また、特開2004−54845で開示されているような、物理的な共有キャッシュ装置は必ずしも設置可能とは言い切れない。例えば、オブジェクト指向のインタプリタ言語においては、仮想マシンをまたがった物理的な共有キャッシュ空間の保有は困難である。
次に、仮想的に情報(空間)を共有する方法のうち、集中管理機構を前提とする方式である、特開平8−83216、特開平8−314788、特許第3093609号、特開平9−44402、特許第3213758号、および特開平10−154093については、いずれの方式を採用したとしても、その性質上、実現のためには集中管理機能を構築する必要がある。
一方、マシン同士が自律的に連携しあう方式である、特開平8−55051、特開2002−24193、特許2656543、特開平7−3077739、特開平11338606、特開2003−167862、更に特許第3476973号およびその分割である特開2003−263355は、いずれも、ユーザが当該変更内容を必要としているか否かに関わらず、整合性を保つ動作をするものであり、ユーザが当該変更内容を必要としない場合においてもデータベースアクセスや通信、各マシンでの処理実行が発生し、この意味で処理効率の向上の余地があると言える。また、特開2000−235514は、キャッシュに変更があれば他マシンに無効化通知を実施するものであるが、当該キャッシュはリフレッシュされず、その後に参照要求が発生した場合には、別のキャッシュ領域に新たに情報を展開する方式となっており、リソースが限られている場合の実現は厳しく、この意味で、やはり効率向上の余地があると言える。
また、マシン同士が自律的に連携しあう方式を支える技術として、まず、1:1通信の通信方式を隠蔽する方法として、特開2003−22251および特開2000−242587があるが、この方法は、ユーザ側から呼出し先、あるいは呼出し先の通信方式などの指定が必要であり、当該方式を拡張したうえでの複数マシンへの一括呼出しを考えた場合、呼出し先の追加や名称の変更を考慮すると、拡張時の柔軟性に欠けると言える。また、1:n通信の通信方式を隠蔽する特開2000−57075は、呼出し側の拡張性は確保されているが、呼出される側の関数は依然として自分が提供可能な通信方式を1つ決めた上で、その通信方式に従った実装が前提となっている。つまり、呼出される側の関数は、呼出される通信方式を意識して作っておく必要がある。
本発明の目的は、上述のような既存の方法に係る課題を解決したうえで、独立した複数マシン間の仮想的な空間共有を、複数マシン同士が自律的に連携しつつ、かつ効率的に実現することである。さらに、複数マシン同士が自立的に連携しあう仕組みの一環として、1つのマシンから、複数の、通信方式が異なる可能性のあるマシン上の、名称も動作の異なる可能性のある操作の一括実行を、呼出し側で一括実行を依頼する側、および呼出される側の操作、の双方の拡張性を確保して実現することである。
本発明では、この目的を達成するために、共有したいマスタ情報が保持され、分散環境に接続されているデータベースと、各マシンに配置される、共有したい情報のレプリカを個々に保持・管理するための空間管理手段と、同じく各マシンに配置される、複数のマシンに配置された任意の操作を、あるマシンから一括でリモート呼出しするためのリモート操作一括呼出し手段を設ける。
上記空間管理手段は、
自マシンの空間に保有するレプリカ情報に対して、マスタ情報に更新があったことを記憶する情報更新事実記憶操作と、
自マシンにおけるユーザプログラム(以下、ユーザ)からの情報更新依頼を受付けて、自マシンの空間に保有するレプリカ情報の更新と、データベースのマスタ情報の更新と、上記リモート操作一括呼出し手段を用いて他マシン上の上記情報更新事実記憶操作を一括して呼出すことで他マシンへの情報更新事実の通知を行う情報更新依頼受付操作と、
自マシンにおけるユーザからの情報提供依頼を受付けて、自マシンの空間に保有するレプリカ情報に情報更新事実が記憶されていなければその空間に保有するレプリカ情報を提供し、情報更新事実が記憶されていればデータベースにあるマスタ情報を読み出し、自マシンの空間に保有するレプリカ情報を更新するとともに、実質的なマスタ情報として、読み出したマスタ情報あるいは更新済みのレプリカ情報をユーザに提供する情報提供依頼受付操作とを有することを特徴とする。
また、上記リモート操作一括呼出し手段においては、
呼出し側のマシンで動作するリモート操作一括呼出しクライアントスタブと、一括呼出し対象となるリモート操作をまとめた単位であるイベントに関する情報が格納されたイベント定義ファイルと、呼出される側のマシンで動作するリモート操作呼出しエンジンから構成され、
上記リモート操作呼出しエンジンは、
呼出される側の操作が動作するマシンが前提としている通信方式に応じて予め準備されるものであり、指定されたリモート操作の実行依頼を受付けて、その操作を実行するリモート操作実行依頼受付操作を有し、
上記リモート操作一括呼出しクライアントスタブは、
当該呼出し側マシンにおけるユーザからのリモート操作一括呼出し依頼として、一括して呼出す操作の単位であるイベントを受付けて、イベント定義ファイルより、当該イベントにて呼出すべき、1つあるいは複数のリモート操作名と、各リモート操作に対する、当該操作を保有するマシンの位置情報、及び当該マシンが前提としている通信方式に関する情報を取得し、イベント定義ファイルから取得した、当該イベントにて呼出すべきすべての操作について、呼出される側のマシンに予め準備されているリモート操作呼出しエンジンに対し、指定したリモート操作の実行を依頼する、リモート操作一括呼出し受付操作を有することを特徴とする。
また、上記リモート操作一括呼出し手段における、リモート操作一括呼出しクライアントスタブが、ユーザに対して、各リモート操作に対するパラメータ情報を設定可能なパラメータオブジェクトを提供し、当該クライアントスタブが、各リモート操作に対して指定されたパラメータ値を引渡すことを含む。
また更に、リモート操作一括呼出し手段における、リモート操作一括呼出しクライアントスタブが、ユーザに対して、各リモート操作の実行結果情報をユーザが扱える仕組みとして、各リモート操作の実行結果に基づいたユーザ処理を設定可能な実行ステータスリスナを提供し、当該クライアントスタブが、各リモート操作の実行結果に基づき指定されたユーザ処理を実行することを含む。
本発明によれば、マシン全体を管理する専用の集中管理機構を前提とすることなくマシン同士が自律的に連携しあい、データベースアクセスや通信、各マシンにおける処理負荷を抑えた効率的な処理が実現されるとともに、更にデータベースへのアクセスの有無をユーザには意識させることなく、実際には分散配置されている空間で保有・管理されている情報を、1つの空間で保有・管理した場合の情報と同等の情報をユーザに提供することにより、効率的に仮想的な空間の共有を実現することができる。
また、特にマシンが仮想マシン単位で認識可能なサーバである場合には、上述したインタプリタ言語には仮想マシンをまたがった共有メモリという概念は存在しないが、このインタプリタにおいても、共有メモリを有するのと同等の効果をユーザに提供することができる。
さらに、この発明により、複数マシン同士が自立的に連携しあう仕組みの一環として、1つのマシンから複数のマシンの、名称や動作、通信方式が異なる可能性のある操作の一括実行を、呼び出し側で一括実行を依頼する側および呼ばれる側の操作側の双方の拡張性を確保して実現することができる。具体的には、呼び出し側ではイベントのみの指定であるため、呼出す側は、呼出される処理そのものや、通信方式やその呼び出し操作手順を意識する必要はなく、また当該イベントにより呼出される操作は随時追加・変更が可能であり、各種の要件に柔軟に対応することができる。さらに、呼出される側のマシンで準備しておく操作は、通信方式を一切意識する必要がなく、自由に一プログラミング言語の関数あるいはメソッドとして実装さえしておけば良い。つまり、この、リモート操作一括呼出し手段は、分散環境における空間の共有の実現方法とは切り離して単独で見た場合においても、分散環境において、リモートオブジェクトを呼出す方法として、呼出されるオブジェクト自身を、特定の規定を前提とせず、作りやすくする方法を発明したとも言える。
まず、本発明の実施形態の構成の概要について、図1、図2a〜e、および図3a〜eを用いて説明する。
図1では、本発明の一実施形態に係る分散マシン環境の全体構成を、図2では、空間管理手段の構成要素と動作のしくみを、図3では、リモート操作一括呼出し手段の構成要素と動作のしくみを示している。
図1において、本実施形態は、共有したいマスタ情報102を保持したデータベース101を保有し、分散マシン103・104・105が通信ネットワーク121を介して接続された構成をとる。なお、図1においては、分散マシンは3個としているが、この数を限定するものではない。各分散マシンに配置するものを、マシン103を例にとって説明するが、この配置は他マシン104・105においても同様である。マシン103には、当該マシンにて動作する空間利用ユーザ106と、当マシン103の空間112に含まれるレプリカ情報115を他マシンと共有するための空間管理手段109と、マシン間で通信を行い、自律的に他マシンと空間を共有するために協調を行うリモート操作一括呼出し手段118を配置する。
図2aにおいて、空間管理手段109の構成を示す。空間管理手段109は、情報更新事実記憶操作201と、情報更新依頼受付操作202と、情報提供依頼受付操作203を有し、レプリカ情報112の模式的な構造としては、図2bに示す様に、共有したい情報本体項目205と、その情報のマスタ情報に何らかの更新が発生した事実を記録する更新事実判定フラグ項目204を有す。情報更新事実記憶操作201で実現する処理手順は図2cに示す通り、指定された情報の更新事実判定フラグをONにする(ステップ206)ものである。情報更新依頼受付操作202で実現する処理手順は、図2dに示すとおり、ユーザからの情報更新依頼を受付けるとまず、自マシンの空間に保有するレプリカ情報を更新(ステップ207)し、次にデータベースに格納されているマスタ情報を更新する(ステップ208)し、さらに、自マシン103に配置されているリモート操作一括呼出し手段118に、処理を依頼する。このとき、リモート操作一括呼出し手段118には、他マシンの情報更新事実記憶操作をまとめた単位である、レプリカ情報更新事実イベント名を引き渡し(ステップ209)、処理を終了する。情報提供依頼受付操作203で実現する処理手順を図2eに示す。ユーザからの情報提供依頼を受付けるとまず、ステップ210にて、提供依頼を受けた対象情報について、自マシン103の空間112内で管理しているレプリカ情報115の、該当情報項目205の更新事実判定フラグ204がONなのかOFFなのかを判定する。ステップ210にて、フラグがONと判定された場合はまず、データベース101に格納されているマスタ情報102を抽出し(ステップ211)、次に自マシンの空間に保有する当該情報に関して、更新事実判定フラグをOFFにするとともに、情報本体を更新する(ステップ212)。最後に、ステップ213にて、ステップ211で取得した情報、あるいはステップ212で更新済みの自マシンの空間に保有するレプリカ情報をユーザに提供して、処理を終了する。ステップ210にて、フラグがOFFと判定された場合は、ステップ214にて自マシンの空間に保有するレプリカ情報をユーザに提供して、処理を終了する。
図3aに、リモート操作一括呼出し手段118の構成を示す。リモート操作一括呼出し手段118は、呼出される側のマシンの方式の種類分のリモート操作呼出しエンジン301、302、303と、リモート操作一括呼出しクライアントスタブ307を有す。ここで、リモート操作呼出しエンジンは3つ図示しているが、この数は限定するものではない。リモート操作呼出しエンジンに配置するものを、301を例にとって説明するが、302、303も同様である。リモート操作呼出しエンジン301は、リモート操作実行依頼受付操作304を有す。リモート操作一括呼出しクライアントスタブ307は、リモート操作一括呼出し依頼受付操作308を有し、イベント定義ファイル309の存在を前提としている。更に、リモート操作一括呼出しクライアントスタブ307では、各呼出される側のマシンにある操作への引渡し情報を格納可能なパラメータオブジェクト310および、各呼出される側のマシンにある操作の処理結果に基づくユーザ処理を実行可能なイベントリスナ311を扱うことができる。
イベント定義ファイル309の模式的な構造としては、図3bに示す様に、イベント名項目312と、そのイベント名でグルーピングされるリモート操作名項目313と、当該リモート操作が動作するマシンに関する位置情報項目314と、同じく当該リモート操作が動作するマシンの通信方式項目315を有す。リモート操作実行依頼受付操作304で実現する処理手順は図3cに示すとおり、当該操作のユーザである、リモート操作一括呼出しクアイアントスタブ307から、指定されたリモート操作の実行依頼を受付けると、当該マシンに配置されているリモート操作を実際に呼出すことである(ステップ316)。リモート操作一括呼出し受付操作308で実現する処理手順を図3dに示す。当該操作のユーザから、イベント名とともに依頼を受付けた場合、まず、ステップ317にて当該イベント名をもとにイベント定義ファイル309を読み込み、当該イベントに対応するリモート操作名と、リモート操作が動作するマシンの位置情報および通信方式を取得する。次に、取得した通信方式(ステップ318)および当該処理方式で通信するリモート操作(ステップ319)ごとに、当該リモート操作を保有する、呼出される側のマシンを特定し(ステップ320)、当該処理方式にて呼出されるマシンと通信し、リモート操作呼出しエンジンに、当該リモート操作の実行を依頼する(ステップ321)。図3eに、リモート操作一括呼出しクライアントスタブと、リモート操作呼出しエンジンの連携する様子を示す。呼出す側のマシン1(103)において、空間利用ユーザ106がリモート操作一括呼出しクライアントスタブ307のリモート操作一括呼出し依頼受付操作308を呼出すことで、処理依頼をする。このとき、イベント名322を引き渡す。処理を依頼されたリモート操作一括呼出し依頼受付操作308は、イベント定義ファイル309から、当該イベント名322に該当するリモート操作に関する情報323を取得する。まず、操作1に関しては、は呼出される側のマシン1(104)で動作し、方式は方式1であることを認識して、マシン2(104)にある方式1用のリモート操作呼出しエンジン326のリモート操作実行依頼受付操作327に、処理依頼をする。このとき、操作1の名称(324)を引き渡す。
そして、依頼を受付けたリモート操作実行依頼受付操作327は、実際に操作1(328)を呼出す。次に、操作2に関しても同様の動きをする(325、329、330、331)。
本発明の個々の構成要素とその動作に関する説明は以上であるが、これらの構成要素が互いに協調しあうことで、実際に空間が共有できることを、図4a,bを用いて説明する。説明にあたっては、初期状態としてマスタ情報が各マシンの空間のレプリカ情報に展開されている状態を前提とし、STEP1として、いずれかのマシンで情報の更新が発生した後、STEP2として他のマシンで当該情報の照会をした場合に、情報の整合性が保たれていることを示す。
まず、図4aに各構成要素の協調の全体観として、どの段階でどの手段のどの操作がどのように動作するのか、を説明する。
まず、STEP1の動作をステップ401から414を用いて説明する。マシン1(103)における空間利用ユーザ106から、情報更新依頼が発生した場合(ステップ401)、マシン1(103)に配置されている、空間管理手段の情報更新依頼受付操作201においては、まず、自マシン103の空間内のレプリカ情報の情報本体205を更新し(ステップ402)、次にデータベースに格納されているマスタ情報102を更新し(ステップ403)、更に、自マシン103に配置されているリモート処理操作一括呼出し手段のクライアントスタブ307に、他マシンの情報更新事実記憶操作をまとめた単位であるイベントの実行依頼を行う(ステップ404)。なお、当該クライアントスタブ307にとってのユーザは、情報更新依頼受付操作201である。当該クライアントスタブ307は、実行依頼を受付けると、イベント定義ファイル309より、当該イベントに関する情報を取得し(ステップ405)、当該イベントでまとめられているリモート操作、つまり他マシンの情報更新事実記憶操作の名称、当該操作が動作するマシンおよびその通信方式を認識し、各マシンに配置されているエンジンのうち、各マシンが前提としている通信方式のものを選択し、各マシンと通信を行う(ステップ406)。この例では、マシン2(104)とは方式1のエンジン326と通信し、マシン3(105)とは方式2のエンジン329と通信を行う例を示している。
各マシン配置されているエンジンの動作として、まず、マシン2(104)では、マシン2(104)に配置されているリモート操作一括呼出し手段のリモート操作呼出しエンジン(326)では、指定された操作の実行依頼を受付けると、マシン2に配置されている情報更新事実記憶操作408を実際に呼出し(ステップ407)、各マシンで呼出された情報更新事実記憶操作408は、自マシンで管理している空間のレプリカ情報の、更新事実判定フラグ項目(410)をONにする(ステップ409)。マシン3(105)においても、マシン3(105)に配置されているリモート操作一括呼出し手段のリモート操作呼出しエンジン(329)では、指定された操作の実行依頼を受付けると、マシン3に配置されている情報更新事実記憶操作412を実際に呼出し(ステップ411)、各マシンで呼出された情報更新事実記憶操作412は、自マシンで管理している空間のレプリカ情報の、更新事実判定フラグ項目(414)をONにする(ステップ413)。
次に、STEP2の動作をステップ415から422を用いて説明する。マシン2(104)における空間利用ユーザ107から、情報提供依頼が発生した場合(ステップ415)、マシン2(104)に配置されている、空間管理手段の情報提供依頼受付操作416においては、まず、自マシン104の空間内にあるレプリカ情報の更新事実判定フラグ項目410がONであるかOFFであるかを確認し(ステップ417)、判定の結果がOFFであれば、情報本体421をユーザに提供する情報とし(ステップ418)、判定の結果がONであれば、データベースに格納されているマスタ情報102を取得し(ステップ419)、自マシン内のレプリカ情報の更新事実反映フラグ項目410をOFFにするとともに、情報本体項目421を更新し、当該情報をユーザに提供する情報とする(ステップ420)。これにより、最終的にユーザに提供される情報は、マスタ情報102と整合的な内容となる(ステップ422)。
図4bでは、各段階(初期状態、STEP1、STEP2)における、マスタ情報と、各マシンの空間で管理されているレプリカ情報の状態の遷移を示している。
初期状態(423)においては、マスタ情報102と、各マシンのレプリカ情報115、116、117の情報本体は、同じ値を示している。ここでは、情報本体は項目1と項目2を有し、その値は其々、A、Bであったとする。
STEP1の具体例として、マシン1(103)において、ユーザ106から、項目1の値をAからXに変更する依頼が発生した場合の状態(424)においては、更新依頼が発生したマシン1(103)のレプリカ情報115の情報本体とマスタ情報102は同じ値を示しているが、その他のマシン(104、105)のレプリカ情報116、117の情報本体は未だ更新されていない。しかし、レプリカ情報116、117の更新事実判定フラグはいずれもONとなっている。
STEP2の具体例として、マシン2(104)において、ユーザ107から項目1の値の提供依頼が発生した場合の状態(425)においては、情報提供依頼が発生したマシン2(104)のレプリカ情報116の情報本体は、マスタ情報102あるいは、更新依頼が発生したマシン1(103)のレプリカ情報115の情報本体と同じ値を示し、かつ更新事実判定フラグはOFFとなっている。一方、未だ、項目1の値を必要としていないマシン3(105)においては、レプリカ情報116、117の情報本体は未だ更新されていない。しかし、レプリカ情報117の情報本体は未だ更新されておらず、更新事実判定フラグもONのままである。
最後に、請求項5に記載した、一実施例として特に、マシンが仮想マシン単位で認識可能なサーバであって、仮想マシン単位で認識可能なサーバとしては、Webコンテナを装備したWebサーバと、EJBコンテナを装備したEJBサーバと、そのどちらも装備していないアプリケーションサーバのいずれかに分類し、
空間管理手段は、マシン上にて唯一つ存在しうるシングルトンモデルにて動作させるクラスとして実装し、
情報更新事実記憶操作は、リモートから呼出すことがより容易になるスタティックメソッドとして実装し、
Webサーバで動作させるリモート操作呼出しエンジンでは、HTTP方式を採用し、
EJBサーバで動作させるリモート操作呼出しエンジンでは、RMI−IIOP方式を採用し、アプリケーションサーバにおいては、HTTPあるいはRMI−IIOP方式での通信は不可能であることの一代替方式として、当サーバで動作させるリモート操作呼出しエンジンとしては、データベースに格納されているマスタ情報の更新日時を一定間隔で監視し、自マシンで管理しているレプリカ情報の前回更新日時との比較により、マスタ情報の更新日時がレプリカ情報の前回更新日時よりも後であることによりマスタ情報の更新を検知することで、リモート操作の呼出し依頼を検知した場合に、自マシン上の情報更新事実記憶操作を実行する方式を採用し、これにより、すべての種類の、仮想マシン単位の複数サーバ間における仮想的な空間共有を実現した状態を図5に示す。501にて、WebサーバとEJBサーバは互いに通信する様子を示し、502にて、アプリケーションサーバからWebサーバおよびEJBサーバのリモート操作が呼出す様子を示し、503にて、アプリケーションサーバでは、データベースに格納されているマスタ情報の更新日時を一定間隔で監視し、自マシンで管理しているレプリカ情報の前回更新日時との比較により、マスタ情報の更新日時がレプリカ情報の前回更新日時よりも後であることによりマスタ情報の更新を検知することで、リモート操作の呼出し依頼を検知した場合に、自マシン上の情報更新事実記憶操作を実行する様子を示している。
本発明によれば、独立した複数マシン(その実現が物理的あるいは仮想的かは問わない)間の仮想的な空間共有を、複数マシン同士が自律的に連携しつつ、かつ効率的に実現することが可能となり、さらに、複数マシン同士が自立的に連携しあう仕組みの一環として、1つのマシンから、複数の、通信方式の異なる可能性のあるマシン上の、名称も動作も異なる可能性のある操作の一括実行を、呼出し側で一括実行を依頼する側、および呼出される側の操作、の双方の拡張性を確保して実現できる。
これにより、空間が共有できることの直接的な利用可能性としては、例えば情報システムにおける全トランザクションが、トランザクションの先頭で、当該システム閉塞状態を確認するための、閉塞状態の共有が可能になる。あるいはまた、例えば給与口座振込や、株式配当金の通知書作成といった、特殊な処理ピークを持つ業務システムの実行において、専用のアプリケーションにより処理対象を特定の単位に分割して複数サーバで当該単位ごとに分散処理を実行させている際の実行状況の共有(実行状況の照会機能など)も可能であり、その用途は様々なものが考えられる。なお、上述の特殊な処理ピークを持つ業務システムにおける処理の分散は、特定の単位への処理の分割自体をアプリケーションに制御させ、当然に、1単位が終了すれば次の単位を受付ける様に構築されるため、単なる時間起動のスケジューラソフトによる状況管理は困難であり、仮想共有空間を実現することで、その恩恵を大きく受ける事例と言える。
また、特にマシンが仮想マシン単位で認識可能なサーバである場合には、インタープリタ言語には仮想マシンをまたがった共有メモリという概念は存在しないが、インタープリタ言語においても、共有メモリを有するのと同等の効果をユーザに提供することができる。
また、リモート操作一括呼出し手段の、利用可能性としては、各マシンに、当該マシンの特定メモリのリフレッシュ操作を準備しておき、これを特定マシンからリモート操作一括呼び出し手段を利用することで、「複数サーバに配置された特定メモリの一括リフレッシュ」が可能である。これを用いれば、例えば分散マシンを再起動することなく、「動的な各種構成定義情報の変更」が可能となる。このように、リモート操作一括呼出し手段は、分散環境における空間の共有とは切り離しても、分散環境において、リモートオブジェクトを呼出す方法の一方法として、呼出されるオブジェクト自身を、特定の規定を前提とせず、作りやすくする方法を提供するものである。
本発明の分散環境の全体構成図である。 空間管理手段の構成要素と動作のしくみの説明図(その1)である。 空間管理手段の構成要素と動作のしくみの説明図(その2)である。 空間管理手段の構成要素と動作のしくみの説明図(その3)である。 空間管理手段の構成要素と動作のしくみの説明図(その4)である。 空間管理手段の構成要素と動作のしくみの説明図(その5)である。 リモート操作一括呼出し手段の構成要素と動作のしくみの説明図(その1)である。 リモート操作一括呼出し手段の構成要素と動作のしくみの説明図(その2)である。 リモート操作一括呼出し手段の構成要素と動作のしくみの説明図(その3)である。 リモート操作一括呼出し手段の構成要素と動作のしくみの説明図(その4)である。 リモート操作一括呼出し手段の構成要素と動作のしくみの説明図(その5)である。 本発明の構成要素が互いに協調することで、実際に空間が共有できることを模式的に示す説明図(その1)である。 本発明の構成要素が互いに協調することで、実際に空間が共有できることを模式的に示す説明図(その2)である。 本発明の一実施形態として、特に、マシンが仮想マシン単位で認識可能なサーバである場合に、仮想マシンをまたがった共有メモリと同等の効果を実現する様子を模式的に示す説明図である。
符号の説明
101:データベース、102:マスタ情報、103:マシン1、104:マシン2、105:マシン3、106:マシン1に配置された空間利用ユーザ、107:マシン2に配置された空間利用ユーザ、108:マシン3に配置された空間利用ユーザ、109:マシン1に配置された空間管理手段、110:マシン2に配置された空間管理手段、111:マシン3に配置された空間管理手段、112:マシン1で管理される空間、113:マシン2で管理される空間、114:マシン3で管理される空間、115:マシン1の空間に保有するレプリカ情報、116:マシン2にの空間に保有するレプリカ情報、117:マシン3に空間に保有するレプリカ情報、118:マシン1に配置されたリモート操作一括呼出し手段、119:マシン2に配置されたリモート操作一括呼出し手段、120:マシン3に配置されたリモート操作一括呼出し手段、121:ネットワーク、
201:(マシン1に配置された空間管理手段が保有する)情報更新事実記憶操作、202:(マシン1に配置された空間管理手段が保有する)情報更新依頼受付操作、203:(マシン1に配置された空間管理手段が保有する)情報提供依頼受付操作、204:(マシン1の空間で管理されるレプリカ情報の)更新事実判定フラグ項目、205:(マシン1の空間で管理されるレプリカ情報の)情報本体項目、206:情報更新事実記憶処理ロジック、207:自マシンに保有するレプリカ情報更新処理ロジック、208:リモート操作一括呼出し手段への処理依頼ロジック、210:提供対象情報の更新事実判定ロジック、211:マスタ情報抽出処理ロジック、212:自マシンに保有するレプリカ情報の、更新事実判定フラグおよび情報本体の更新ロジック、213:マスタ情報と整合的な情報を提供する処理ロジック、214:自マシンに保有するレプリカ情報を提供する処理ロジック、
301:(マシン1に配置されたリモート操作一括呼出し手段が保有する)リモート操作呼出しエンジン(方式1)、302:(マシン1に配置されたリモート操作一括呼出し手段が保有する)リモート操作呼出しエンジン(方式2)、303:(マシン1に配置されたリモート操作一括呼出し手段が保有する)リモート操作呼出しエンジン(方式3)、304:リモート操作呼出しエンジン(方式1)が有するリモート操作実行依頼受付操作、305:リモート操作呼出しエンジン(方式2)が有するリモート操作実行依頼受付操作、306:リモート操作呼出しエンジン(方式3)が有するリモート操作実行依頼受付操作、307:(マシン1に配置されたリモート操作一括呼出し手段が保有する)リモート操作一括呼出しクライアントスタブ、308:リモート操作一括呼出し依頼受付操作、309:イベント定義ファイル、310:パラメータオブジェクト、311:イベントリスナ、312:イベント名項目、313:リモート操作名項目、314:リモート操作が動作するマシンに関する位置情報項目、315:リモート操作が動作するマシンが前提としている通信方式項目、316:リモート操作実行処理ロジック、317:イベント解析ロジック、318:通信方式分のループ処理ロジック、319:リモート操作分のループ処理ロジック、320:リモート操作を保有するマシンの特定ロジック、321:リモート操作呼出しエンジンへの処理依頼ロジック、322:空間利用ユーザが、空間管理手段に引き渡すイベント名、323:イベント定義ファイルから取得したイベント情報、324:マシン1のリモート操作一括呼出しクライアントスタブが、マシン2のリモート操作呼出しエンジンに引き渡す操作名、325:マシン1のリモート操作一括呼出しクライアントスタブが、マシン3のリモート操作呼出しエンジンに引き渡す操作名、326:マシン2に配置されたリモート一括呼出し手段が保有するリモート操作呼出しエンジン(方式1)、327:リモート操作呼出しエンジン(方式1)が有するリモート操作実行依頼受付操作、328:マシン2で呼出される操作1、329:マシン3に配置されたリモート一括呼出し手段が保有するリモート操作呼出しエンジン(方式2)、330:リモート操作呼出しエンジン(方式2)が有するリモート操作実行依頼受付操作、331:マシン3で呼出される操作2
401:マシン1の空間利用ユーザ106からの情報更新依頼ステップ、402:レプリカ情報更新ステップ、403:マスタ情報更新ステップ、404:リモート処理操作一括呼出し依頼ステップ、405:イベント定義ファイル読出しステップ、406:マシン2・マシン3との通信ステップ、407:マシン2におけるリモート操作呼出しステップ、408:マシン2で呼出される情報更新事実記憶操作、409:マシン2における更新事実記憶フラグ設定ステップ、410:マシン2の空間で管理されているレプリカ情報の更新事実記憶フラグ項目、411:マシン3におけるリモート操作呼出しステップ、412:マシン3で呼出される情報更新事実記憶操作、413:マシン3における更新事実記憶フラグ設定ステップ、414:マシン3の空間で管理されているレプリカ情報の更新事実記憶フラグ項目、415:マシン2の空間利用ユーザ107からの情報提供依頼ステップ、416:マシン2に配置されている情報提供依頼受付操作、417:マシン2の空間で管理されているレプリカ情報の更新事実記憶フラグの判定ステップ、418:マシン2の空間で管理されているレプリカ情報をユーザへの提供情報とするステップ、419:マスタ情報を取得するステップ、420:マシン2の空間で管理されているレプリカ情報の情報本体をマスタ情報で更新するとともに、更新事実記憶フラグをOFFに設定するステップ、421:マシン2の空間で管理されているレプリカ情報の情報本体、422:最終的にマスタ情報と整合的な情報を空間利用ユーザ107に提供するステップ、423:初期段階のマスタ情報およびレプリカ情報の状態、424:ステップ1におけるマスタ情報およびレプリカ情報の状態、425:ステップ2におけるマスタ情報およびレプリカ情報の状態、
501:WebサーバとEJBサーバが互いに協調する様子、502:アプリケーションサバからWebサーバ・EJBサーバにリモート操作一括呼出しが可能な様子、503:アプリケーションサーバにおいて、DB監視により、マスタ情報の更新があったことを検知して、リモート操作呼出しを行ったことと同等の効果を実現することが可能な様子

Claims (2)

  1. 複数の情報処理装置が、分散されて配置された分散環境において、前記複数の情報処理装置間でキャッシュメモリである仮想共有空間を共有する分散環境における仮想共有空間の実現方法において、
    前記複数の情報処理装置それぞれと接続された記憶装置に、前記複数の情報処理装置における共有対象となるマスタ情報を記憶し、
    前記複数の情報処理装置それぞれが、前記マスタ情報に含まれる情報のうち、共有を希望する情報であるレプリカ情報を保持し、
    前記複数の情報処理装置それぞれが、他の情報処理装置に対して、所定の操作を指示するリモート呼び出しが可能であり、
    前記複数の情報処理装置それぞれが、
    当該情報処理装置が、自身が保有するレプリカ情報に対して、マスタ情報に更新があったことを記憶し、当該情報処理装置におけるユーザプログラムからの情報更新依頼を受付けて、当該情報処理装置が保有するレプリカ情報の更新と、前記マスタ情報の更新と、他の情報処理装置を一括して呼出すことで他の情報処理装置への情報更新事実の通知を行い、当該情報処理装置におけるユーザからの情報提供依頼を受付けて、当該情報処理装置が保有するレプリカ情報に情報更新事実が記憶されていなければその空間に保有するレプリカ情報を提供し、情報更新事実が記憶されていれば前記マスタ情報を読み出し、当該情報処理装置が保有するレプリカ情報を更新するとともに、前記マスタ情報として、読み出したマスタ情報あるいは更新済みのレプリカ情報をユーザに提供することを特徴とする仮想共有空間の実現方法。
  2. 請求項1に記載の仮想共有空間の実現方法において、
    前記リモート呼び出しは、
    呼出し側のマシンで動作するリモート操作一括呼出しクライアントスタブと、一括呼出し対象となるリモート操作をまとめた単位であるイベントに関する情報が格納されたイベント定義ファイルと、呼出される側のマシンで動作するリモート操作呼出しエンジンから構成され、
    上記リモート操作呼出しエンジンは、
    呼出される側の操作が動作するマシンが前提としている通信方式に応じて予め準備されるものであり、指定されたリモート操作の実行依頼を受付けて、その操作を実行するリモート操作実行依頼受付操作を有し、
    上記リモート操作一括呼出しクライアントスタブは、
    当該呼出し側マシンにおけるユーザからのリモート操作一括呼出し依頼として、一括して呼出す操作の単位であるイベントを受付けて、イベント定義ファイルより、当該イベントにて呼出すべき、1つあるいは複数のリモート操作名と、各リモート操作に対する、当該操作を保有するマシンの位置情報、及び当該マシンが前提としている通信方式に関する情報を取得し、イベント定義ファイルから取得した、当該イベントにて呼出すべきすべての操作について、呼出される側のマシンに予め準備されているリモート操作呼出しエンジンに対し、指定したリモート操作の実行を依頼する、リモート操作一括呼出し受付操作を有することを特徴とする仮想共有空間の実現方法。
JP2004246094A 2004-08-26 2004-08-26 分散環境における仮想共有空間の実現方法 Pending JP2006065525A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004246094A JP2006065525A (ja) 2004-08-26 2004-08-26 分散環境における仮想共有空間の実現方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004246094A JP2006065525A (ja) 2004-08-26 2004-08-26 分散環境における仮想共有空間の実現方法

Publications (1)

Publication Number Publication Date
JP2006065525A true JP2006065525A (ja) 2006-03-09

Family

ID=36111982

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004246094A Pending JP2006065525A (ja) 2004-08-26 2004-08-26 分散環境における仮想共有空間の実現方法

Country Status (1)

Country Link
JP (1) JP2006065525A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010093084A1 (ko) * 2009-02-11 2010-08-19 엔에이치엔(주) 분산 스페이스를 이용하여 분산 프로그래밍 환경을 제공하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
CN107402891A (zh) * 2012-12-25 2017-11-28 华为技术有限公司 确定共享虚拟内存页面管理模式的方法和相关设备

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010093084A1 (ko) * 2009-02-11 2010-08-19 엔에이치엔(주) 분산 스페이스를 이용하여 분산 프로그래밍 환경을 제공하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
KR100983479B1 (ko) 2009-02-11 2010-09-27 엔에이치엔(주) 분산 스페이스를 이용하여 분산 프로그래밍 환경을 제공하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
US8799619B2 (en) 2009-02-11 2014-08-05 Nhn Corporation Method and system for providing distributed programming environment using distributed spaces, and computer readable recording medium
CN107402891A (zh) * 2012-12-25 2017-11-28 华为技术有限公司 确定共享虚拟内存页面管理模式的方法和相关设备
CN107402891B (zh) * 2012-12-25 2020-12-22 华为技术有限公司 确定共享虚拟内存页面管理模式的方法和相关设备

Similar Documents

Publication Publication Date Title
CN103034536B (zh) 提高有状态应用的可用性
US9372735B2 (en) Auto-scaling of pool of virtual machines based on auto-scaling rules of user associated with the pool
JP5841177B2 (ja) マルチサーバ予約システムにおける同期化メカニズムのための方法及びシステム
US8640137B1 (en) Methods and apparatus for resource management in cluster computing
US5796999A (en) Method and system for selectable consistency level maintenance in a resilent database system
CN107787490A (zh) 分布式数据库网格中的直接连接功能
US6081826A (en) System using environment manager with resource table in each computer for managing distributed computing resources managed for each application
US9170849B2 (en) Migration of task to different pool of resources based on task retry count during task lease
US6915338B1 (en) System and method providing automatic policy enforcement in a multi-computer service application
US8332479B2 (en) Enterprise application server system and method
US9164806B2 (en) Processing pattern framework for dispatching and executing tasks in a distributed computing grid
US20130179894A1 (en) Platform as a service job scheduling
JP2015537307A (ja) コンポーネント指向ハイブリッドクラウドオペレーティングシステムのアーキテクチャ及びその通信方法
CN103984694A (zh) 用于在数据分发服务中管理数据库的系统和方法
JP2003022209A (ja) 分散サーバーシステム
US9804889B2 (en) Methods and apparatus for state objects in cluster computing
US20130232164A1 (en) Methods and Apparatus for Job State Tracking in Cluster Computing
WO2003014927A2 (en) Scalable messaging platform for the integration of business software components
CN102377796A (zh) 基于OSGi的异构服务集成系统及方法
CN101694709A (zh) 一种面向服务的分布式工作流管理系统
CN100518132C (zh) 分布式交通信息存储文件系统
CN112650545A (zh) 一种配置管理系统、方法及存储介质
JP4132738B2 (ja) アプリケーション・サーバのアベイラビリティを判別するコンピュータ化された方法
US7690001B2 (en) System and method for a management model event system
JP2006065525A (ja) 分散環境における仮想共有空間の実現方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060424