JP2004094935A - オブジェクト状態転送方法,オブジェクト状態転送装置およびオブジェクト状態転送プログラム並びにそのプログラムの記録媒体 - Google Patents
オブジェクト状態転送方法,オブジェクト状態転送装置およびオブジェクト状態転送プログラム並びにそのプログラムの記録媒体 Download PDFInfo
- Publication number
- JP2004094935A JP2004094935A JP2003284939A JP2003284939A JP2004094935A JP 2004094935 A JP2004094935 A JP 2004094935A JP 2003284939 A JP2003284939 A JP 2003284939A JP 2003284939 A JP2003284939 A JP 2003284939A JP 2004094935 A JP2004094935 A JP 2004094935A
- Authority
- JP
- Japan
- Prior art keywords
- shared
- heap area
- state
- transfer
- application program
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/4493—Object persistence
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
【解決手段】 オブジェクト生成機能101は,オブジェクト102を生成する際に,その内部状態を転送用領域104のバイト列上に配置し,マッピング情報をマッピング管理テーブル103に設定する。アプリケーションプログラム100がアクセサメソッドにより内部状態の操作を行ったときには,転送用領域104のバイト列に対して状態を設定又は取得する。転送機能105は,転送用領域104のバイト列とマッピング管理テーブル103とを受信装置20に転送し,受信装置20では,復元機能201が受信した情報をもとにオブジェクト204を復元する。
【選択図】 図1
Description
BEAシステムズ、"WebLogic Server クラスタ ユーザーズ ガイド"、[online]、[平成15年7月3日検索]、インターネット<URL:http://edocs.beasys.co.jp/e-docs/wls/docs70/cluster/failover.html>
本発明の第2の態様において、対応するブロックが更新されたことを示すフラグが立っているブロックのみを他の情報処理装置へ転送するようにしても良い。。
また、更新されたブロックのみを他の情報処理装置へ転送することで、転送されるデータ量を削減でき、送信側の情報処理装置における送信時間および受信側の情報処理装置における受信時間を短縮して、転送処理および受信処理におけるオーバーヘッドを低減することが可能となる。
〔第1の実施の形態〕
図1は,本発明の第1の実施の形態に係るシステム構成例を示す図である。送信装置10は,Java(登録商標)仮想マシンを搭載したコンピュータであり,オブジェクトの内部状態を転送する側の装置である。受信装置20も,Java(登録商標)仮想マシンを搭載したコンピュータであり,オブジェクトの内部状態を送信装置10から受信し,受信した内部状態をもとにオブジェクトを復元する装置である。
アプリケーションプログラム100がオブジェクト生成機能101のオブジェクト生成メソッド(たとえば,createObject()など)を呼び出すことにより,当該メソッドにより指定された対象オブジェクトのオブジェクト生成を指示する(ステップS1)。
オブジェクト生成機能101は,オブジェクト生成指示に対し,生成対象オブジェクトの内部状態と転送用領域104であるバイト列とのマッピングをとる。そのため,オブジェクト生成機能101は、生成対象オブジェクトの内部状態の数およびそれぞれの型を判定し,必要なサイズを判定し,マッピング管理テーブル103から必要なサイズ分の空き領域を検索する(ステップS2)。その後,オブジェクト生成機能101はマッピング管理テーブル103にそれぞれの内部状態のバイト列上の位置を記録する。すなわち,オブジェクト生成機能101は、マッピング管理テーブル103の空き領域のレコードに生成オブジェクトに関する情報を設定することで領域を確保する(ステップS3)。
続いて,オブジェクト生成機能101は,オブジェクトを生成し,上記[B]で保存したマッピング管理テーブル103の情報を設定する。すなわち,オブジェクト生成機能101は、生成したオブジェクトに,内部状態の転送用領域104上の位置を設定する(ステップS4)。
その後,オブジェクト生成機能101は,アプリケーションプログラム100にオブジェクトリファレンスを返却する(ステップS5)。アプリケーションプログラム100は,オブジェクト生成機能101からオブジェクトリファレンスを受け取る(ステップS6)。オブジェクトリファレンスは,オブジェクトの受け渡しを行うためのものであって、オブジェクトの格納位置を直接参照するポインタで実現することができる。あるいは、オブジェクトの格納位置を直接参照するポインタをエントリとするテーブルを作成し、オブジェクトリファレンスがこのテーブル上のいずれかのエントリを指すようにすることで、オブジェクトリファレンスがオブジェクトの格納位置を間接的に参照するようにしても良い。ここでは,アプリケーションプログラム100がオブジェクト生成機能101にオブジェクトの生成を要求したときに,オブジェクト生成機能101が生成したオブジェクトをアプリケーションプログラム100に受け渡すために,オブジェクトリファレンスを返却する。
アプリケーションプログラム100がオブジェクト102のアクセサメソッド(例えば,setAttribute(),getAttribute()など)を呼び出すことにより,オブジェクトの内部状態への操作,すなわち内部状態の設定または取得を指示する(ステップS10)。
オブジェクト102のアクセサメソッドは,オブジェクト生成時にオブジェクト102に設定されたオブジェクト内部状態のバイト列へのマッピング情報に基づき,転送用領域104であるバイト列にアクセスし,内部状態の設定又は取得を行う(ステップS11)。
オブジェクト102はアプリケーションプログラム100に設定又は取得の結果を返却する。特に,取得の場合,オブジェクト102は内部状態をアプリケーションプログラム100に返却する(ステップS12)。アプリケーションプログラム100は,結果を受け取る(ステップS13)。
転送機能105は,例えば送信装置10におけるオブジェクト状態を受信装置20に転送するために,定期的に転送処理を開始し,転送用領域104であるバイト列およびマッピング管理テーブル103の情報を取得する(ステップS20)。
転送機能105は,取得した情報を他ホストである受信装置20の復元機能201に転送する(ステップS21)。
復元機能201は,オブジェクトの内部状態を示すバイト列とマッピング管理テーブル103の情報を送信装置10から受信し(ステップS22),それらを転送用領域202とマッピング管理テーブル203に設定して復元する(ステップS23)。
続いて復元機能201は,マッピング管理テーブル203から,転送されたオブジェクトの種類及び内部状態の転送用領域202上の位置を取得し(ステップS24),マッピング管理テーブル203の情報に基づいて,オブジェクト204を復元する。次いで、復元機能201は、復元したそれぞれのオブジェクト204に対し,マッピング管理テーブル203の情報(内部状態の転送用領域202上の位置など)を設定する(ステップS25)。
復元機能201は,復元したオブジェクト204のリファレンスを配列にして,オブジェクト管理機能205に通知する(ステップS26)。オブジェクト管理機能205は,オブジェクト204のリファレンスの配列を受け取り(ステップS27),事前に登録されたアプリケーションプログラム206に,復元された情報としてその配列のリファレンスを通知する(ステップS28)。その後,必要ならアプリケーションプログラム206が復元の後処理を行う。
アプリケーションプログラム100は,オブジェクトが不要になったときに対象オブジェクトの解放メソッドを呼び出すことにより,対象オブジェクト102に解放指示をする(ステップS30)。
対象オブジェクト102は,解放指示を受けると,オブジェクト生成機能101に消去を指示する(ステップS31)。オブジェクト生成機能101は,オブジェクト102からの消去の指示により,マッピング管理テーブル103のオブジェクト102に対するレコードを空き領域とし,マッピング情報をクリアする(ステップS32)。アプリケーションプログラム100は,解放指示を行ったオブジェクトに係るオブジェクトリファレンスを消去する(ステップS33)。
図12は、本発明の第2の実施の形態に係るシステム構成例を示す図である。送信装置30及び受信装置40はそれぞれ第1の実施の形態における送信装置10及び受信装置20に対応している。そこで、本実施の形態では、第1の実施の形態で参照した図面中のものと同一の構成要素については同一の参照符号を付けてその説明を省略する。
ヒープ領域311はオブジェクト302が格納される領域であり、共有ヒープ領域312は共有オブジェクト310が格納される領域である。なお、ヒープ領域311及び共有ヒープ領域312のデータ構造の具体例については図15を参照して後述する。
転送対象クラスリスト314はユーザから送信装置30に与えられるデータであって、この転送対象クラスリスト314で指定されたクラス名にそれぞれクラス番号が付与されて転送対象クラスDB313に格納される。
仮想マシンを搭載した送信装置30が起動されると、オブジェクト生成機能301は、ユーザより与えられた転送対象クラスリスト314を読み込む。同様に、仮想マシンを搭載した受信装置40が起動されると、オブジェクト管理機能405は、ユーザより与えられた転送対象クラスリスト414を読み込む(ステップS51)。
オブジェクト生成機能301は読み込んだ転送対象クラスリスト314を転送対象クラスDB313に保存する。同様に、オブジェクト管理機能405は読み込んだ転送対象クラスリスト414を転送対象クラスDB413に保存する。その際、オブジェクト生成機能301及びオブジェクト管理機能405はそれぞれ転送対象クラスリスト314及び414で指定された個々のクラス名に対して一意のクラス番号を付与する(ステップS52)。
アプリケーションプログラム100はオブジェクト生成機能301ヘオブジェクト生成を指示する。一例として、生成対象クラスのクラス名がClass_Aである場合、new Class_Aというバイトコードによりオブジェクト生成機能301へオブジェクト生成を指示することができる(ステップS61)。
オブジェクト生成機能301は、転送対象クラスDB313を検索(ステップS62)し、生成対象クラスのクラス名が転送対象クラスDB313に含まれているかどうかを確認する(ステップS63)。生成対象クラスのクラス名が含まれている場合は[C]に進む。一方、生成対象クラスのクラス名が含まれていない場合は[D]に進む。
オブジェクト生成機能301は生成対象クラスのオブジェクトを共有ヒープ領域312上に生成する(ステップS64)。まず、オブジェクト生成機能301は共有ヒープ領域312上におけるオブジェクトの格納領域を決定する。すなわち、オブジェクト生成機能301は、各ブロック351内の次オブジェクトへのオフセット372を先頭のブロック(図15に示す「ブロック1」)から順にたどってゆくことにより、各ブロック351における最後のオブジェクトに関するオブジェクト情報の次のアドレスを求め、このアドレスを生成対象のオブジェクトに関するオブジェクト情報の先頭アドレスとする。次に、オブジェクト生成機能301は、第1の実施の形態で説明したように、生成対象オブジェクトの内部状態の数およびそれぞれの型を判定することで生成対象のオブジェクトのサイズを求め、得られたサイズに基づいて次オブジェクトへのオフセット372を設定する。また、オブジェクト生成機能301は、生成対象クラスのクラス名に対応するクラス番号を転送対象クラスDB313から取得してこれをクラス番号373として設定する。なお、生成対象のオブジェクトを格納するだけの空き領域が着目しているブロック351に残っていなければ、オブジェクト生成機能301は必要な空き領域を持ったブロックが見つかるまで同様のことを行ってゆく。この後、処理を[E]に進める。
オブジェクト生成機能301は生成対象クラスのオブジェクトをヒープ領域311上に生成する(ステップS65)。すなわち、オブジェクト生成機能301はヒープ領域311上においてオブジェクト状態情報320の領域を新たに1個確保する。この後、処理を[E]に進める。
第1の実施の形態と同様に、オブジェクト生成機能301はアプリケーションプログラム100にオブジェクトリファレンスを返却する(ステップS66)。アプリケーションプログラム100は、オブジェクト生成機能301からオブジェクトリファレンスを受け取る(ステップS67)。
アプリケーションプログラム100がオブジェクト生成機能301へオブジェクト操作を指示する(たとえば、オブジェクトOBJ1の内部状態aをインクリメントする操作)。同時に、アプリケーションプログラム100は操作対象のオブジェクトのアドレスをオブジェクト生成機能301に伝える(ステップS71)。
オブジェクト生成機能301は操作対象のオブジェクトのアドレスが共有ヒープ領域312内かどうかをチェックする(ステップS72)。共有ヒープ領域312の外である場合は[C]に進み、共有ヒープ領域312の内である場合は[D]に進む。
オブジェクト生成機能301は、操作対象のオブジェクトのアドレスに基づき、アプリケーションプログラム100からの指示通りに、ヒープ領域311上にある操作対象のオブジェクト302に対応するオブジェクト状態情報320に対して操作を実施する(ステップS73)。この後、処理を[E]に進める。
オブジェクト生成機能301は、操作対象のオブジェクトのアドレスに基づき、アプリケーションプログラム100からの指示通りに、共有ヒープ領域312上にある操作対象の共有オブジェクト310に対応するオブジェクト情報内のオブジェクト状態情報374に対して操作を実施する(ステップS74)。次に、オブジェクト生成機能301は、操作対象となる共有オブジェクト310が存在する共有ヒープ領域312上のブロック番号を計算する。ここで、対象となる共有オブジェクトの存在するアドレスをx, 共有ヒープ領域312の先頭アドレス(すなわち、最初のブロック351の先頭アドレス)をy, ブロックサイズ362を2n とすると、ブロック番号=(x−y)>>nで計算される。なお、“>>n”はnビット分の右シフト演算を表す。そして、オブジェクト生成機能301はオブジェクトに対する操作が状態の設定であれば、ブロック更新フラグ364を構成するフラグの集合のうち、計算されたブロック番号に対応するフラグを立てる。また、ブロック更新フラグ364が更新されたことはヘッダ350の内容が設定されたことを意味するので、オブジェクト生成機能301はさらに、ブロック更新フラグ364を構成するフラグの集合のうち、ヘッダ350に対応するフラグを立てる(ステップS75)。この後、処理を[E]に進める。
オブジェクト生成機能301はアプリケーションプログラム100にオブジェクト操作の結果を返却する。特に、オブジェクトに対する操作が状態の取得の場合、オブジェクト生成機能301は操作対象となったオブジェクトの内部状態をアプリケーションプログラム100に返却する(ステップS76)。アプリケーションプログラム100はこのオブジェクトの内部状態を受け取る(ステップS77)。
転送機能305は、周期的に転送処理を開始し、共有ヒープ領域312の先頭アドレスを取得する。
転送方式は全域転送と差分転送の2種類があり、いずれの転送方式に従って転送を行うかは送信装置30の起動時にユーザが予め選択して送信装置30に入力する。そして、転送機能305は転送方式を判別する(ステップS81)。転送方式が全域転送の場合、転送機能305は共有ヒープ領域312を読み込んでその全体を受信装置40の復元機能401に転送する(ステップS82)。これに対して転送方式が差分転送の場合、転送機能305は共有ヒープ領域312のヘッダ350内のブロック更新フラグ364を参照し、フラグが立っているヘッダ350及び/又はブロック351を共有ヒープ領域312から読み込んで受信装置40の復元機能401に転送し、転送を行ったヘッダ350及び/又はブロック351に対応するフラグをクリアする(ステップS83)。
復元機能401は、送信装置30から受信したデータを共有ヒープ領域412上に展開する(ステップS84)。ここで、受信装置40側では、送信装置30側と共有ヒープ領域のアドレスが異なっている。そこで復元機能401は、共有ヒープ領域412のヘッダ350中の領域の先頭アドレス363を参照して共有ヒープ領域412の先頭アドレスを取得するとともに、共有ヒープ領域412上に展開された送信装置30側のヘッダ350中の領域の先頭アドレス363を参照して共有ヒープ領域312の先頭アドレスを取得する。次に、復元機能401は両アドレスの差分を計算し、共有ヒープ領域412上に展開したデータ(具体的にはオブジェクト状態情報374において他のオブジェクトを指しているポインタ)の中で送信装置30側の共有ヒープ領域312内を指すポインタを受信装置40側のアドレス(すなわち、共有ヒープ領域412内)に修正する。また、復元機能401は、送信装置30側で共有ヒープ領域312の外を指すポインタをNULLにクリアする(ステップS85)。なお、ポインタが共有ヒープ領域312の外を指す場合とは、ポインタがヒープ領域311内を指す場合である。また、アプリケーションプログラム206は必要に応じてNULLにクリアされたポインタの後処理を行う。
復元機能401は、復元した共有オブジェクト410のリファレンスを配列にして,オブジェクト管理機能405に通知する(ステップS86)。オブジェクト管理機能405はこのリファレンスの配列を受け取り、その配列のリファレンスを復元された情報としてアプリケーションプログラム206に通知する(ステップS87)。その後,必要に応じてアプリケーションプログラム206は復元の後処理を行う。
図21は,本発明の第3の実施の形態に係るシステム構成例を示す図であって,第1の実施の形態と第2の実施の形態を組み合わせたものである。このため、送信装置50は送信装置10及び送信装置30の構成要素を備えており、受信装置60は受信装置20及び受信装置40の構成要素を備えている。なお、図21において、第1の実施の形態または第2の実施の形態で説明したものと同じ構成要素については同一の符号を付してその説明を省略する。
100 アプリケーションプログラム
101 オブジェクト生成機能
102 オブジェクト
103 マッピング管理テーブル
104 転送用領域(バイト列)
105 転送機能
108 マッピングデータ
20 受信装置
201 復元機能
202 転送用領域(バイト列)
203 マッピング管理テーブル
204 オブジェクト
205 オブジェクト管理機能
206 アプリケーションプログラム
208 マッピングデータ
30 送信装置
301 オブジェクト生成機能
302 オブジェクト
305 転送機能
310 共有オブジェクト
311 ヒープ領域
312 共有ヒープ領域
313 転送対象クラスDB
314 転送対象クラスリスト
320,374 オブジェクト状態情報
350 ヘッダ
351 ブロック
360,370 ヘッダ/ブロック種別
361 ブロック数
362 ブロックサイズ
363 領域の先頭アドレス
364 ブロック更新フラグ
371 ブロック番号
372 次オブジェクトへのオフセット
373 クラス番号
40 受信装置
401 復元機能
402 オブジェクト
405 オブジェクト管理機能
410 共有オブジェクト
411 ヒープ領域
412 共有ヒープ領域
413 転送対象クラスDB
414 転送対象クラスリスト
50 送信装置
501 オブジェクト生成機能
60 受信装置
601 オブジェクト管理機能
Claims (22)
- アプリケーションプログラムとアクセサメソッド経由で操作可能な内部状態を保持する複数のオブジェクトとを有する情報処理装置におけるオブジェクト状態転送方法において,
前記複数のオブジェクトの内部状態を,前記アプリケーションプログラムから前記アクセサメソッド経由で操作されるバイト列上に配置し,
前記バイト列を外部装置に送出することにより,前記複数のオブジェクトの内部状態を転送する
ことを特徴とするオブジェクト状態転送方法。 - 請求項1記載のオブジェクト状態転送方法において,
前記アプリケーションプログラムが新規オブジェクトを生成するときに,その新規オブジェクトの内部状態と前記バイト列とのマッピングをとり,
そのマッピングに関するマッピング情報を保存する
ことを特徴とするオブジェクト状態転送方法。 - 請求項2記載のオブジェクト状態転送方法において,
前記オブジェクトに対し,前記アプリケーションプログラムが前記アクセサメソッドにより内部状態の操作を行ったときに,その内部状態にマッピングされたバイト列に状態を設定しまたはバイト列から状態を取得し,前記アプリケーションプログラムに結果を返却する
ことを特徴とするオブジェクト状態転送方法。 - 請求項2又は請求項3記載のオブジェクト状態転送方法において,
前記オブジェクトの内部状態が保持された前記バイト列および保存された前記マッピング情報を,前記オブジェクトを復元する他の情報処理装置へ転送する
ことを特徴とするオブジェクト状態転送方法。 - 請求項2から請求項4までのいずれか1項に記載のオブジェクト状態転送方法において,
前記オブジェクトが前記アプリケーションプログラムにより不要と判断されたときに,前記バイト列と前記オブジェクトの内部状態とのマッピングを解放し,前記マッピング情報を更新する
ことを特徴とするオブジェクト状態転送方法。 - 前記オブジェクトを復元する他の情報処理装置は、
請求項2から請求項5までのいずれか1項に記載のオブジェクト状態転送方法により転送された前記バイト列および前記マッピング情報を受信し,
受信したバイト列およびマッピング情報をもとに前記他の情報処理装置内のバイト列およびマッピング情報を更新し,更新されたバイト列およびマッピング情報にもとづいてオブジェクトを復元する
ことを特徴とするオブジェクト状態転送方法。 - アプリケーションプログラムとアクセサメソッド経由で操作可能な内部状態を保持する複数のオブジェクトを備えた情報処理装置におけるオブジェクト状態転送装置であって,
前記各オブジェクトの内部状態がバイト列として配置される転送用領域と,
前記オブジェクトの内部状態と前記バイト列とのマッピング情報が格納されるマッピング情報格納手段と,
前記転送用領域のバイト列と前記マッピング情報とを他の情報処理装置に送信する転送手段とを備える
ことを特徴とするオブジェクト状態転送装置。 - 請求項7記載のオブジェクト状態転送装置において、
前記アプリケーションプログラムからのオブジェクト生成指示に対し、生成するオブジェクトの内部状態と前記バイト列のマッピングをとり、前記マッピング情報格納手段にそれぞれの内部状態のバイト列上の位置を記録し、オブジェクトを生成し、生成されたオブジェクトに各内部状態の前記バイト列上の位置を設定するオブジェクト生成手段と,
前記アクセサメソッドを経由した前記アプリケーションプログラムからのオブジェクトの内部状態の操作指示に対し,前記転送用領域のバイト列に状態を設定しまたはバイト列から状態を取得し,前記アプリケーションプログラムに結果を返却する手段と
をさらに備えることを特徴とするオブジェクト状態転送装置。 - アプリケーションプログラムとアクセサメソッド経由で操作可能な内部状態を保持する複数のオブジェクトから構成される情報処理装置におけるオブジェクト状態転送装置であって,
各オブジェクトの内部状態がバイト列として配置される転送用領域と,
前記オブジェクトの内部状態と前記バイト列とのマッピング情報が格納されるマッピング情報格納手段と,
他の情報処理装置から送信されたオブジェクトの内部状態を示すバイト列と,前記オブジェクトの内部状態と前記バイト列とのマッピングに関するマッピング情報とを受信し,受信したバイト列およびマッピング情報をもとに自装置内の前記バイト列および前記マッピング情報を更新し,更新されたバイト列およびマッピング情報にもとづいて前記他の情報処理装置と同じ状態のオブジェクトを復元する復元手段と,
復元したオブジェクトを管理し,復元されたオブジェクトに関する情報を前記アプリケーションプログラムに通知するオブジェクト管理手段とを備える
ことを特徴とするオブジェクト状態転送装置。 - 請求項1から請求項6までのいずれか1項に記載のオブジェクト状態転送方法を,コンピュータによって実行するためのオブジェクト状態転送プログラム。
- 請求項1から請求項6までのいずれか1項に記載のオブジェクト状態転送方法を,コンピュータによって実行するためのプログラムを記録したことを特徴とするオブジェクト状態転送プログラムの記録媒体。
- アプリケーションプログラムと、前記アプリケーションプログラムから操作可能な内部状態を保持する複数のオブジェクトとを有する情報処理装置におけるオブジェクト状態転送方法において,
オブジェクトが複数の情報処理装置間で共有されるかどうか判定し、
前記オブジェクトが前記複数の情報処理装置間で共有される場合には前記オブジェクトを共有オブジェクトとして共有ヒープ領域に格納し、
前記オブジェクトが前記複数の情報処理装置間で共有されない場合には前記オブジェクトをヒープ領域に格納し、
前記共有ヒープ領域を他の情報処理装置にそのまま送出することにより、前記共有オブジェクトの状態を前記他の情報処理装置に転送することを特徴とするオブジェクト状態転送方法。 - 請求項12記載のオブジェクト状態転送方法において、
前記他の情報処理装置への転送対象となるクラスを転送対象クラスとして予め指定しておき、
前記アプリケーションプログラムから新規オブジェクトの生成が指示された場合、前記アプリケーションプログラムから指定された生成対象クラスが前記転送対象クラスに含まれるかどうかを判定し、
前記生成対象クラスが前記転送対象クラスに含まれない場合は、前記ヒープ領域上に新規のオブジェクトを生成し、
前記生成対象クラスが前記転送対象クラスに含まれる場合は、前記共有ヒープ領域上に新規の共有オブジェクトを生成することを特徴とするオブジェクト状態転送方法。 - 請求項12又は請求項13記載のオブジェクト状態転送方法において、
前記アプリケーションプログラムからのオブジェクトに対する内部状態の操作が指示された場合、前記アプリケーションプログラムから与えられる操作対象のオブジェクトのアドレスに基づいて前記操作対象のオブジェクトが前記共有ヒープ領域上に格納されているかどうかを判定するとともに、前記操作が内部状態の設定であるかどうか判定し、
前記操作対象のオブジェクトが前記共有ヒープ領域上に格納されており、かつ、前記操作が内部状態の設定である場合、前記共有ヒープ領域を構成している複数のブロックの中で前記操作対象のオブジェクトが格納されているブロックが更新されたことを示すフラグを立てることを特徴とするオブジェクト状態転送方法。 - 請求項12から請求項14までのいずれか1項に記載のオブジェクト状態転送方法において、前記共有ヒープ領域全体を前記他の情報処理装置に送出することを特徴とするオブジェクト状態転送方法。
- 請求項14記載のオブジェクト状態転送方法において、前記複数のブロックのうち、対応するブロックが更新されたことを示すフラグが立っているブロックのみを前記他の情報処理装置へ送出することを特徴とするオブジェクト状態転送方法。
- 前記共有オブジェクトを復元する他の情報処理装置は、
請求項12から請求項16までのいずれか1項に記載のオブジェクト状態転送方法により転送された前記共有ヒープ領域を受信して自装置上の共有ヒープ領域上に展開し、
転送された前記共有ヒープ領域に含まれている該共有ヒープ領域のアドレスと自装置上の共有ヒープ領域に含まれている該共有ヒープ領域のアドレスの差を計算し、
前記転送された共有ヒープ領域に含まれる共有オブジェクト内のポインタが該転送された共有ヒープ領域内を指しているかどうか判定し、
前記ポインタが前記転送された共有ヒープ領域内を指している場合は、前記アドレスの差に基づいて該ポインタを修正し、
前記ポインタが前記転送された共有ヒープ領域外を指している場合は、前記ポインタをNULLにクリアすることを特徴とするオブジェクト状態転送方法。 - アプリケーションプログラムと、前記アプリケーションプログラムから操作可能な内部状態を保持する複数のオブジェクトとを有する情報処理装置におけるオブジェクト状態転送装置であって、
前記複数のオブジェクトのうち、複数の情報処理装置間で共有されるオブジェクトが共有オブジェクトとして格納される共有ヒープ領域と、
前記複数のオブジェクトのうち、前記複数の情報処理装置間で共有されないオブジェクトが格納されるヒープ領域と、
前記共有ヒープ領域を他の情報処理装置にそのまま送出することにより、前記共有オブジェクトの状態を前記他の情報処理装置に転送する転送手段と
を備えることを特徴とするオブジェクト状態転送装置。 - 請求項18記載のオブジェクト状態転送装置において、
前記共有ヒープ領域は、前記共有オブジェクトを格納するための複数のブロックと、前記複数のブロックの各々が更新されたかどうかを示すフラグとを備え、
前記オブジェクト状態転送装置は、
前記他の情報処理装置への転送対象となる転送対象クラスが格納された転送対象クラス格納手段と、
生成対象クラスの指定を伴う前記アプリケーションプログラムからの新規オブジェクト生成の指示に応答して、前記転送対象クラスに含まれないクラスを前記生成対象クラスとする指示に対しては前記ヒープ領域上に新規のオブジェクトを生成し、前記転送対象クラスに含まれるクラスを前記生成対象クラスとする指示に対しては前記共有ヒープ領域上に新規の共有オブジェクトを生成するオブジェクト生成手段と、
操作対象のオブジェクトのアドレスを伴う前記アプリケーションプログラムからの内部状態の操作の指示に応答して、前記操作対象のオブジェクトのアドレス及び前記操作の内容に基づき、前記共有ヒープ領域内のオブジェクトに対する内部状態設定の指示を検出し、前記操作対象のオブジェクトが格納されているブロックに対応するフラグを立てる手段と
をさらに備え、
前記転送手段は、予め指定された転送方式に従って、前記共有ヒープ領域の全体、もしくは、前記フラグが立っているブロックのみを前記他の情報処理装置へ転送することを特徴とするオブジェクト状態転送装置。 - アプリケーションプログラムと、前記アプリケーションプログラムから操作可能な内部状態を保持する複数のオブジェクトとを有する情報処理装置におけるオブジェクト状態転送装置であって、
自身の領域のアドレスを記憶するとともに、前記複数のオブジェクトのうち、複数の情報処理装置間で共有されるオブジェクトが共有オブジェクトとして格納される共有ヒープ領域と、
前記複数のオブジェクトのうち、前記複数の情報処理装置間で共有されないオブジェクトが格納されるヒープ領域と、
他の情報処理装置から転送される共有ヒープ領域を受信して自装置の前記共有ヒープ領域上に展開し、前記転送された共有ヒープ領域のアドレスと自装置の前記共有ヒープ領域のアドレスの差を計算し、前記転送された共有ヒープ領域に含まれる共有オブジェクトのポインタのうち、前記転送された共有ヒープ領域内を指しているポインタを前記アドレスの差に基づいて修正するとともに、前記転送された共有ヒープ領域外を指しているポインタをNULLにクリアすることで、共有オブジェクトを復元する復元手段と、
復元された共有オブジェクトに関する情報を前記アプリケーションプログラムに通知するオブジェクト管理手段と
を備えることを特徴とするオブジェクト状態転送装置。 - 請求項12から請求項17までのいずれか1項に記載のオブジェクト状態転送方法を,コンピュータによって実行するためのオブジェクト状態転送プログラム。
- 請求項12から請求項17までのいずれか1項に記載のオブジェクト状態転送方法を,コンピュータによって実行するためのプログラムを記録したことを特徴とするオブジェクト状態転送プログラムの記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003284939A JP3857259B2 (ja) | 2002-08-14 | 2003-08-01 | オブジェクト状態転送方法,オブジェクト状態転送装置およびオブジェクト状態転送プログラム並びにそのプログラムの記録媒体 |
US10/637,181 US7559064B2 (en) | 2002-08-14 | 2003-08-08 | Object state transfer method, object state transfer device, object state transfer program, and recording medium for the program |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002236408 | 2002-08-14 | ||
JP2003284939A JP3857259B2 (ja) | 2002-08-14 | 2003-08-01 | オブジェクト状態転送方法,オブジェクト状態転送装置およびオブジェクト状態転送プログラム並びにそのプログラムの記録媒体 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006146820A Division JP4275683B2 (ja) | 2002-08-14 | 2006-05-26 | オブジェクト状態転送方法,オブジェクト状態転送装置およびオブジェクト状態転送プログラム並びにそのプログラムの記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004094935A true JP2004094935A (ja) | 2004-03-25 |
JP3857259B2 JP3857259B2 (ja) | 2006-12-13 |
Family
ID=30768046
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003284939A Expired - Fee Related JP3857259B2 (ja) | 2002-08-14 | 2003-08-01 | オブジェクト状態転送方法,オブジェクト状態転送装置およびオブジェクト状態転送プログラム並びにそのプログラムの記録媒体 |
JP2006146820A Expired - Fee Related JP4275683B2 (ja) | 2002-08-14 | 2006-05-26 | オブジェクト状態転送方法,オブジェクト状態転送装置およびオブジェクト状態転送プログラム並びにそのプログラムの記録媒体 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006146820A Expired - Fee Related JP4275683B2 (ja) | 2002-08-14 | 2006-05-26 | オブジェクト状態転送方法,オブジェクト状態転送装置およびオブジェクト状態転送プログラム並びにそのプログラムの記録媒体 |
Country Status (4)
Country | Link |
---|---|
US (2) | US7559064B2 (ja) |
EP (2) | EP1389756A3 (ja) |
JP (2) | JP3857259B2 (ja) |
CN (2) | CN1329853C (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004102453A (ja) * | 2002-09-05 | 2004-04-02 | Hitachi Ltd | コンテキストラウンチ管理方法およびシステム、ならびにプログラム、記録媒体 |
US7665077B2 (en) * | 2004-10-18 | 2010-02-16 | Microsoft Corporation | System and method for sharing objects between applications in a virtual runtime environment |
CN1992643B (zh) * | 2005-12-30 | 2010-05-05 | 鼎桥通信技术有限公司 | 面向对象的状态映射/解映射方法及状态管理方法 |
US8429643B2 (en) * | 2007-09-05 | 2013-04-23 | Microsoft Corporation | Secure upgrade of firmware update in constrained memory |
US9454441B2 (en) | 2010-04-19 | 2016-09-27 | Microsoft Technology Licensing, Llc | Data layout for recovery and durability |
US8996611B2 (en) * | 2011-01-31 | 2015-03-31 | Microsoft Technology Licensing, Llc | Parallel serialization of request processing |
US9170892B2 (en) | 2010-04-19 | 2015-10-27 | Microsoft Technology Licensing, Llc | Server failure recovery |
US9813529B2 (en) | 2011-04-28 | 2017-11-07 | Microsoft Technology Licensing, Llc | Effective circuits in packet-switched networks |
US9049176B2 (en) | 2011-06-22 | 2015-06-02 | Dropbox, Inc. | File sharing via link generation |
JP6019815B2 (ja) * | 2012-06-28 | 2016-11-02 | 富士通株式会社 | データ処理システム、アプリケーション提示方法、及びプログラム |
JP6142669B2 (ja) * | 2013-05-22 | 2017-06-07 | 株式会社ソシオネクスト | データ編集プログラム、データ編集装置、データ編集方法 |
US11422907B2 (en) | 2013-08-19 | 2022-08-23 | Microsoft Technology Licensing, Llc | Disconnected operation for systems utilizing cloud storage |
US9798631B2 (en) | 2014-02-04 | 2017-10-24 | Microsoft Technology Licensing, Llc | Block storage by decoupling ordering from durability |
CN104881297A (zh) * | 2015-06-19 | 2015-09-02 | 上海斐讯数据通信技术有限公司 | 一种状态机管理方法及系统 |
CN106855794A (zh) * | 2015-12-08 | 2017-06-16 | 平安科技(深圳)有限公司 | 应用于ios操作系统的多对象间的数据共享方法及系统 |
CN111625332A (zh) * | 2020-05-21 | 2020-09-04 | 杭州安恒信息技术股份有限公司 | Java线程池拒绝策略执行方法、装置和计算机设备 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04242436A (ja) | 1991-01-17 | 1992-08-31 | Toshiba Corp | 待機冗長型制御方法 |
US5544284A (en) * | 1992-02-11 | 1996-08-06 | Eastman Kodak Company | Sequential product code quantization of digital color image |
JPH08328891A (ja) | 1995-06-02 | 1996-12-13 | Mitsubishi Electric Corp | 待機冗長化構成の二重化システム |
JP3214356B2 (ja) * | 1996-06-14 | 2001-10-02 | 三菱電機株式会社 | テスト支援装置 |
JPH1040158A (ja) | 1996-07-23 | 1998-02-13 | Fuji Xerox Co Ltd | 永続オブジェクト管理方法 |
JP3467750B2 (ja) | 1997-01-17 | 2003-11-17 | 日本電信電話株式会社 | 分散オブジェクト処理システム |
JPH10320206A (ja) | 1997-03-14 | 1998-12-04 | Toshiba Corp | 分散オブジェクトシステムにおけるオブジェクトの状態管理方法ならびに装置、及び同方法がプログラムされ記録される記録媒体、もしくはプログラムとして伝搬される通信媒体 |
US6125364A (en) | 1997-11-06 | 2000-09-26 | International Business Machines Corporation | Flexible object persistence framework using data cursor objects loaded from superclasses |
US6360363B1 (en) * | 1997-12-31 | 2002-03-19 | Eternal Systems, Inc. | Live upgrade process for object-oriented programs |
US6330709B1 (en) | 1998-03-30 | 2001-12-11 | International Business Machines Corporation | Virtual machine implementation for shared persistent objects |
US6349322B1 (en) | 1998-05-06 | 2002-02-19 | Sun Microsystems, Inc. | Fast synchronization for programs written in the JAVA programming language |
US6484247B1 (en) | 1998-06-25 | 2002-11-19 | Intellution, Inc. | System and method for storing and retrieving objects |
US6345276B1 (en) * | 1998-09-18 | 2002-02-05 | Microsoft Corporation | Representing base pointers in a shared memory heap |
US6694346B1 (en) * | 1999-04-30 | 2004-02-17 | International Business Machines Corporation | Long running, reusable, extendible, virtual machine |
JP2001051861A (ja) | 1999-08-10 | 2001-02-23 | Mitsubishi Electric Corp | 二重化システム |
GB2353113B (en) | 1999-08-11 | 2001-10-10 | Sun Microsystems Inc | Software fault tolerant computer system |
JP3831154B2 (ja) | 1999-08-13 | 2006-10-11 | 株式会社東芝 | プログラム多重化拡大方法 |
CN2443432Y (zh) * | 1999-12-28 | 2001-08-15 | 盛群半导体股份有限公司 | 以序列方式传递信息的显示器控制装置 |
US20020016814A1 (en) * | 2000-08-07 | 2002-02-07 | International Business Machines Corporation | Method, system, and program for invoking stored procedures and accessing stored procedure data |
US7096419B2 (en) * | 2001-02-16 | 2006-08-22 | Sas Institute Inc. | System and method for object state persistence |
GB2378535A (en) * | 2001-08-06 | 2003-02-12 | Ibm | Method and apparatus for suspending a software virtual machine |
GB2381092B (en) * | 2001-10-19 | 2005-10-19 | Ibm | Object locking in a shared VM environment |
US7526750B2 (en) * | 2003-10-15 | 2009-04-28 | Microsoft Corporation | Object-based systematic state space exploration of software |
-
2003
- 2003-08-01 JP JP2003284939A patent/JP3857259B2/ja not_active Expired - Fee Related
- 2003-08-08 US US10/637,181 patent/US7559064B2/en not_active Expired - Fee Related
- 2003-08-12 EP EP03102515A patent/EP1389756A3/en not_active Withdrawn
- 2003-08-12 EP EP11180132A patent/EP2426601A3/en not_active Withdrawn
- 2003-08-12 CN CNB031602703A patent/CN1329853C/zh not_active Expired - Fee Related
- 2003-08-12 CN CNB200610084882XA patent/CN100442225C/zh not_active Expired - Fee Related
-
2006
- 2006-05-26 JP JP2006146820A patent/JP4275683B2/ja not_active Expired - Fee Related
-
2008
- 2008-04-21 US US12/106,573 patent/US8037478B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1329853C (zh) | 2007-08-01 |
EP1389756A3 (en) | 2006-11-29 |
US20040034621A1 (en) | 2004-02-19 |
EP2426601A3 (en) | 2012-10-03 |
US20080215587A1 (en) | 2008-09-04 |
EP1389756A2 (en) | 2004-02-18 |
JP2006286013A (ja) | 2006-10-19 |
CN100442225C (zh) | 2008-12-10 |
US8037478B2 (en) | 2011-10-11 |
CN1495632A (zh) | 2004-05-12 |
JP4275683B2 (ja) | 2009-06-10 |
JP3857259B2 (ja) | 2006-12-13 |
US7559064B2 (en) | 2009-07-07 |
EP2426601A2 (en) | 2012-03-07 |
CN1952881A (zh) | 2007-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4275683B2 (ja) | オブジェクト状態転送方法,オブジェクト状態転送装置およびオブジェクト状態転送プログラム並びにそのプログラムの記録媒体 | |
JP4354233B2 (ja) | バックアップシステム及び方法 | |
KR100350141B1 (ko) | 매체관리자,애플리케이션프로그램인터페이스와이를구현하는방법 | |
US8700573B2 (en) | File storage service system, file management device, file management method, ID denotative NAS server and file reading method | |
JP2008033912A (ja) | Nas向けのcdpの方法および装置 | |
JP2005242403A (ja) | 計算機システム | |
JP2010231770A (ja) | シン・プロビジョニング・ボリュームのバックアップとリストアのための方法と装置 | |
JP4713257B2 (ja) | データ記憶装置及びバージョン管理プログラム | |
JP2008282383A (ja) | ストレージシステムのデータおよび構成の回復方法および装置 | |
US10430292B2 (en) | Snapshot deletion in a distributed storage system | |
CN113853778B (zh) | 一种文件系统的克隆方法及装置 | |
JP4755244B2 (ja) | 情報生成方法、情報生成プログラム及び情報生成装置 | |
US20190220205A1 (en) | Job Manager For Deploying A Bundled Application | |
JP4971717B2 (ja) | ディレクトリ分散型記憶装置及びデータ処理要求移譲プログラム | |
US10430110B2 (en) | Implementing a hybrid storage node in a distributed storage system | |
US20110321043A1 (en) | System, Method and Program Product for Native Interface Optimization of Read-Only Arrays | |
JP2004246702A (ja) | 計算機システム、計算機装置、計算機システムにおけるデータアクセス方法及びプログラム | |
US20190212923A1 (en) | Implementing An Interface To A High-Availability Storage System In A Distributed Computing System | |
JP2007293433A (ja) | 文書管理システム | |
US10452308B2 (en) | Encoding tags for metadata entries in a storage system | |
JP2003157194A (ja) | ファイルサーバプログラム | |
TWI769796B (zh) | 利用索引物件來進行簡易儲存服務無縫遷移的方法、主裝置以及儲存伺服器 | |
JP2006004277A (ja) | 情報共有装置および情報送信方法、情報受信方法 | |
JP2003091421A (ja) | プログラムインストール方法及びプログラムインストールシステム及びプログラム | |
JP2009282719A (ja) | データベースシステム及びデータベースサーバ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040303 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040213 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060328 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060526 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060620 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060811 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060905 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060913 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090922 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100922 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100922 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110922 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120922 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130922 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |