JP2009245089A - 分散オブジェクト・プログラム及びレプリケーション処理方法 - Google Patents

分散オブジェクト・プログラム及びレプリケーション処理方法 Download PDF

Info

Publication number
JP2009245089A
JP2009245089A JP2008089837A JP2008089837A JP2009245089A JP 2009245089 A JP2009245089 A JP 2009245089A JP 2008089837 A JP2008089837 A JP 2008089837A JP 2008089837 A JP2008089837 A JP 2008089837A JP 2009245089 A JP2009245089 A JP 2009245089A
Authority
JP
Japan
Prior art keywords
hash value
function
data
serialized data
hash
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
JP2008089837A
Other languages
English (en)
Inventor
Takashi Asama
高史 浅間
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008089837A priority Critical patent/JP2009245089A/ja
Publication of JP2009245089A publication Critical patent/JP2009245089A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】分散オブジェクト基盤上においてレプリケーション処理を通信負荷を抑制した形で実現する。
【解決手段】プライマリオブジェクトは、変数等の値をシリアライズ処理を実施してシリアライズデータを生成し、当該シリアライズデータをセグメント分割して各セグメントについてハッシュ値を算出して、レプリケーションマネージャに出力する。レプリケーションマネージャは、従前のハッシュ値をハッシュ管理テーブルに登録しておき、受信したハッシュ値と従前のハッシュ値を比較して、不一致と判断されたハッシュ値に係るセグメントを、プライマリオブジェクトから取得して、レプリカオブジェクトに出力する。レプリカオブジェクトは、セグメントのデータを受信すると、保持するシリアライズデータの該当部分を置換して、デシリアライズ処理を実施すれば、プライマリオブジェクトの最新状態をレプリカオブジェクトに設定することができる。
【選択図】図7

Description

本発明は、分散オブジェクト基盤上におけるレプリケーション技術に関する。
分散オブジェクト基盤上でのアプリケーション開発において、フォールトトレランス等の信頼性保証をするためには、レプリカオブジェクトを準備しておきレプリケーション処理(すなわちデータ同期)をすることが必要となる。従来までのレプリケーション処理では、プライマリオブジェクトの内部データをレプリカオブジェクトに単純に送信して実現していた。
なお、例えば特開2006−268740号公報には、レプリケーションに要する時間の短縮するための技術が開示されている。マスタストレージのバックアップ作成後、バックアップに対応した差分マップを作成し、マスタストレージでは、ホストから行われた更新箇所を差分マップに記録し、レプリカストレージは、バックアップデータからリストアし、マスタストレージとレプリカストレージのペアを作成し、差分マップをもとに、マスタストレージのバックアップ後の更新箇所のデータをレプリカストレージに送り、レプリカストレージでデータを更新し、レプリカストレージはレプリケーションに関してマスタストレージと同期がとられている。しかし、分散オブジェクト環境については考慮されていない。
さらに、例えば特開2007−200029号公報には、複数システム間のファイル複製におけるネットワーク転送、ディスクI/O、更新ブロック検出を最小限のブロックに限定することで、高速かつ柔軟なファイル複製を実現するファイル複製システムを得るための技術が開示されている。具体的には、ディスク装置に格納されるファイルを、データブロック及び連続する複数のデータブロックから構成されるセグメントである領域に分割し、分割した領域毎の更新有無が判定可能な更新判定情報を含むメタデータブロックを階層的に配置し、階層的に配置されたメタデータブロックを前記ファイルの大きさに応じて木構造でディスク装置に格納するメタデータブロック管理手段と、複数のコンピュータ間で上記木構造の情報ブロックに含まれる更新判定情報の比較を行って更新されたデータブロックを検出し、更新されたデータブロックのみを複製元から複製先へ転送するファイル複製制御手段とを設けている。しかし、分散オブジェクト環境については考慮されていない。
特開2006−268740号公報 特開2007−200029号公報
上で述べたような従来技術では、分散オブジェクト基盤に簡単に対応できない。
従って、本発明の目的は、分散オブジェクト基盤上においてレプリケーション処理を通信負荷を抑制した形で実現するための技術を提供することである。
本発明に係る分散オブジェクト・プログラムは、第1のオブジェクト(例えばプライマリオブジェクト)と、第2のオブジェクト(例えばレプリカオブジェクト)と、レプリケーションマネージャとをコンピュータに実現させるための分散オブジェクト・プログラムである。そして、上記第1のオブジェクトは、少なくともユーザ定義の内部データの値をシリアライズする処理を実施することによりシリアライズデータを生成し、当該シリアライズデータを第1のオブジェクトが実行されているコンピュータの記憶装置のうち第1のオブジェクトに割り当てられた第1の領域に格納するシリアライズ機能と、要求に応じて、第1の領域に格納されているシリアライズデータに対してハッシュ値を算出して、出力するハッシュ機能と、要求に応じて、シリアライズデータを出力する出力機能とを有する。また、上記第2のオブジェクトは、上記シリアライズデータを受信し、第2のオブジェクトが実行されているコンピュータの記憶装置のうち第2のオブジェクトに割り当てられた第2の領域に格納する受信機能と、第2の領域に格納されているシリアライズデータをデシリアライズする処理を実施することにより、少なくともユーザ定義の内部データの値を生成し、第2のオブジェクトの内部データの値として設定するデシリアライズ機能とを有する。さらに、上記レプリケーションマネージャは、第1のオブジェクトに対応して第2のオブジェクトと、第1のオブジェクトの従前のハッシュ値とを管理し且つレプリケーションマネージャが実行されているコンピュータの記憶装置に格納されている管理テーブルを参照して、第1のオブジェクトにハッシュ値を要求して取得し、取得したハッシュ値と、管理テーブルに登録されている従前のハッシュ値とを比較する比較機能と、取得したハッシュ値と、管理テーブルに登録されている従前のハッシュ値とが不一致である場合、第1のオブジェクトから、上記シリアライズデータを取得し、管理テーブルにおいて第1のオブジェクトに対応して登録されている第2のオブジェクトに、上記シリアライズデータを送信するデータ転送機能とを有する。
このようなオブジェクトの構成を採用し、さらにレプリケーションマネージャを導入することによって、分散オブジェクト基盤上においても、変更が検出された場合にのみ通信を行うため通信負荷を下げることができ、システム全体に対する影響を抑制することができるようになる。
なお、上記分散オブジェクト・プログラムにおいて、上記第1のオブジェクトのハッシュ機能が、上記シリアライズデータのセグメント毎にハッシュ値を算出するようにしてもよい。この場合、上記管理テーブルが、上記シリアライズデータのセグメント毎に従前のハッシュ値を管理しておく。そして、上記レプリケーションマネージャの比較機能が、セグメント毎にハッシュ値の比較を行い、レプリケーションマネージャのデータ転送機能が、取得したハッシュ値と、管理テーブルに登録されている従前のハッシュ値とが不一致である場合、当該不一致とされたハッシュ値に係るセグメントのデータを取得して、第2のオブジェクトに送信する。そして、上記第2のオブジェクトの受信機能が、受信した上記セグメントのデータで、第2の領域に格納されているシリアライズデータの該当部分を置換する。このようにすればさらに通信負荷を減らすことができるようになる。
さらに、上記第1のオブジェクトのシリアライズ機能及び第2のオブジェクトのデシリアライズ機能の詳細(オブジェクトの本来処理に依存する部分)がユーザ定義されるものであり、上記第1のオブジェクトのハッシュ機能、出力機能及びシリアライズ機能の存在と、上記レプリケーションマネージャと、上記第2のオブジェクトの受信機能及びデシリアライズ機能の存在とがフレームワークで規定且つ提供されるものである場合もある。すなわち、分散オブジェクト基盤(フレームワーク)においてレプリケーションを実現するための基底クラスによって、上記第1のオブジェクトのハッシュ機能、出力機能及びシリアライズ機能の存在と、上記第2のオブジェクトの受信機能及びデシリアライズ機能の存在とを予め規定且つ提供しておき、上記第1のオブジェクトのシリアライズ機能及び第2のオブジェクトのデシリアライズ機能の詳細については、基底クラスをユーザ定義によってオーバーライドすることによって実現するものである。
本発明の第2の態様に係る分散オブジェクト・プログラムは、第1のオブジェクトと、第2のオブジェクトと、レプリケーションマネージャとをコンピュータに実現させるものである。そして、上記第1のオブジェクトは、少なくともユーザ定義の内部データの値をシリアライズする処理を実施することによりシリアライズデータを生成し、当該シリアライズデータを第1のオブジェクトが実行されているコンピュータの記憶装置のうち第1のオブジェクトに割り当てられた第1の領域に格納するシリアライズ機能と、要求に応じて、第1の領域に格納されている上記シリアライズデータに対してハッシュ値を算出して、出力するハッシュ機能と、要求に応じて、上記シリアライズデータを出力する出力機能とを有する。また、上記第2のオブジェクトは、少なくともユーザ定義の内部データの値をシリアライズする処理を実施することにより第2のシリアライズデータを生成し、当該第2のシリアライズデータを第2のオブジェクトが実行されているコンピュータの記憶装置のうち第2のオブジェクトに割り当てられた第2の領域に格納するシリアライズ機能と、第2の領域に格納されている第2のシリアライズデータに対してハッシュ値を算出するハッシュ機能と、外部からハッシュ値を受信した場合、ハッシュ機能により算出された上記ハッシュ値と比較して、一致しているか判断する比較機能と、外部から受信したハッシュ値と算出されたハッシュ値とが不一致である場合に、第1のオブジェクトから、上記シリアライズデータを取得し、第2の領域に格納する受信機能と、第2の領域に格納されている上記シリアライズデータをデシリアライズする処理を実施することにより、少なくともユーザ定義の内部データの値を生成し、第2のオブジェクトの内部データの値として設定するデシリアライズ機能とを有する。さらに、上記レプリケーションマネージャは、第1のオブジェクトに対応する第2のオブジェクトを管理し且つレプリケーションマネージャが実行されているコンピュータの記憶装置に格納されている管理テーブルを参照して、第1のオブジェクトにハッシュ値を要求して取得し、取得したハッシュ値を、管理テーブルに第1のオブジェクトに対応して登録されている第2のオブジェクトに対して送信する機能を有する。
このようにレプリケーションマネージャの機能を削減する形で実装するようにしても良い。
なお、本発明の第2の態様において、第1及び第2のオブジェクトのハッシュ機能が、シリアライズデータのセグメント毎にハッシュ値を算出するようにしてもよい。この場合、第2のオブジェクトの比較機能が、セグメント毎にハッシュ値の比較を実施し、第2のオブジェクトの受信機能が、比較機能によって不一致と判断されたハッシュ値に係るセグメントのデータを、第1のオブジェクトから取得し、取得したセグメントのデータで、第2の領域に格納されている第2のシリアライズデータの該当部分を置換するようにする。このようにすれば、より通信負荷を下げることができるようになる。
さらに、第1のオブジェクトのシリアライズ機能並びに第2のオブジェクトのシリアライズ機能及びデシリアライズ機能の詳細(オブジェクト本来の処理に依存する部分)がユーザ定義され、第1のオブジェクトのハッシュ機能、出力機能及びシリアライズ機能の存在と、レプリケーションマネージャと、第2のオブジェクトの比較機能、受信機能及びデシリアライズ機能の存在とがフレームワークで規定且つ提供される場合もある。
なお、上記プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。また、ネットワークなどを介してデジタル信号として配信される場合もある。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
本発明によれば、分散オブジェクト基盤上においてレプリケーション処理を通信負荷を抑制した形で実現することができるようになる。
まず、本発明の実施の形態におけるレプリケーション・システム部分のクラス図を図1に示す。分散オブジェクト基盤(フレームワーク)部分には、レプリケーションマネージャと、レプリケーションの基本的な機能を含むアプリケーション基底クラスとが含まれる。レプリケーションマネージャとアプリケーション基底クラスとは、互いにやり取りを行う。また、図1で点線矢印で示し且つ以下で述べるように、アプリケーション基底クラス同士も互いにやり取りを行う場合もある。
また、ユーザが作成すべきユーザ作成プログラムのうち、レプリケーションが必須となるオブジェクトについてのユーザ作成アプリケーションは、アプリケーション基底クラスを承継する。これによって、どのようなアプリケーションを作成する場合においても、以下で述べるようなレプリケーションを実現できるようにする。なお、レプリケーションにおいて以下で述べるシリアライズ機能及びデシリアライズ機能は必須となるが、アプリケーション依存の部分があるので、ユーザ作成アプリケーションにおいて、アプリケーション基底クラスの該当メソッドをオーバーライドするように詳細な機能を規定する。すなわち、シリアライズ機能及びデシリアライズ機能についても、アプリケーション基底クラスにおいてその存在は規定されるが、その詳細は、ユーザ作成アプリケーションにおいて規定される。なお、ユーザ作成アプリケーション同士は、図1で二点鎖線で示すように、その本来の処理において必要であればやり取りを行う。
なお、分散オブジェクト環境においては、図2に示すようにネットワーク1で繋がれた複数のコンピュータ3(図2では3A乃至3C)で、レプリケーションが必要な各オブジェクトが実行されている。同じコンピュータで、レプリケーションが必要な各オブジェクトが実行される場合もあるが、典型的には、異なるコンピュータで各々実行される。どのコンピュータのどのアドレスにどのオブジェクトが存在するかについては、分散オブジェクト基盤で提供される周知の機構(例えばネーミングサービスなど)に問い合わせることによって取得可能となっている。以下では、この点については前提としてこれ以上は述べないものとする。
[実施の形態1]
図3に本発明の第1の実施の形態における実行状態(オブジェクト及びレプリケーションマネージャとの関係)を示す。第1の実施の形態においては、例えば現在必要な処理を実施しているプライマリオブジェクトP1と、バックアップのためのレプリカオブジェクトR1及びR2と、レプリケーションマネージャ101とが存在している。基本的には、プライマリオブジェクトP1と、レプリカオブジェクトR1及びR2とは、同じ構成を有する。そして、プライマリオブジェクトP1もレプリカオブジェクトR1及びR2も、レプリケーションマネージャ101を介してレプリケーションを実施する。
プライマリオブジェクトP1並びにレプリカオブジェクトR1及びR2の機能構成例を図4に示す。これらのオブジェクトのレプリケーションに関連する機能部200は、アプリケーション基底クラス由来のハッシュ生成部201と、アプリケーション基底クラス由来のセグメントデータインターフェース部203と、アプリケーション基底クラスによってその存在は規定されるがユーザ作成アプリケーションによってオーバーライドされるシリアライズ部205及びデシリアライズ部207とを有する。また、これらのオブジェクトのレプリケーションに関連するデータ部300には、シリアライズ部205によって少なくともユーザ定義の変数の値などの内部データ値をシリアライズした結果であるシリアライズデータ301が含まれる。なお、シリアライズデータ301は、所定サイズのセグメントseg1乃至3に分けられる場合もあれば、ユーザ定義に従ってセグメント分割される場合もある。
ハッシュ生成部201は、シリアライズデータ301の各セグメントに対して周知のアルゴリズムにてハッシュ値を算出する機能を有する。また、セグメントデータインターフェース部203は、外部からの要求に応じて、指定されたセグメントのデータを読み出して出力したり、外部から取得したセグメントのデータを該当部分に格納する処理などを実施する。
シリアライズ部205は、オブジェクトの状態を表す変数の値などの内部データ値を、バイト列などのシリアライズデータ301に変換する処理を実施するものであり、デシリアライズ部207は、バイト列などのシリアライズデータ301からオブジェクトの状態を表す変数の値などの内部データ値に戻して、オブジェクトに設定する処理を実施するものである。これらの具体的処理内容については周知であるからこれ以上述べない。
図5に示すように、レプリケーションマネージャ101は、プライマリオブジェクトP1とレプリカオブジェクトR1及びR2の関係とプライマリオブジェクトP1から受信した従前のハッシュ値とを管理するハッシュ管理テーブル113と、プライマリオブジェクトP1からハッシュ値を取得してハッシュ管理テーブル113に登録されている従前のハッシュ値との比較処理を実施するハッシュ処理部111と、ハッシュ処理部111により不一致であると判断されたハッシュ値に係るセグメントをプライマリオブジェクトP1から取得してレプリカオブジェクトR1及びR2に送付する差分セグメントデータ処理部112とを有する。
図6に、ハッシュ管理テーブル113に登録されるデータの一例を示す。図6の例では、プライマリオブジェクトのIDと、対応するレプリカオブジェクトのIDと、セグメント毎の従前のハッシュ値とが登録されるようになっている。図6の例では、3つのセグメントに分割される例を示しているが、プライマリオブジェクトが保持するデータ量によってセグメントの数は変化する。従ってセグメントが1つ(内部データ全体と同じ)の場合もあれば、より多くのセグメントが含まれる場合もある。また、レプリカオブジェクトの数も1以上任意の整数である。また、初期的には、ハッシュ値は登録されないので、初回は必ずハッシュ値は不一致と判断され、ハッシュ管理テーブル113に登録されるようになる。
次に、図7を用いて、プライマリオブジェクトP1、レプリケーションマネージャ101、並びにレプリカオブジェクトR1及びR2により実施されるレプリケーション処理の内容について説明する。
レプリケーションマネージャ101のハッシュ処理部111は、定期的に又は任意のタイミングで、ハッシュ管理テーブル113に登録されているプライマリオブジェクトP1に対してハッシュ値要求を送信する(ステップS1)。プライマリオブジェクトP1のハッシュ生成部201は、レプリケーションマネージャ101からハッシュ値要求を受信すると(ステップS3)、シリアライズ部205に処理を指示する。そうすると、シリアライズ部205は、少なくともユーザ定義の変数の値などの内部データ値に対してシリアライズ処理を実施してシリアライズデータ301を生成し、プライマリオブジェクトP1が実行されているコンピュータのメインメモリなどの記憶装置(プライマリオブジェクトP1に割り当てられた領域)に格納する(ステップS5)。
さらに、ハッシュ生成部201は、例えば所定のデータ量毎にシリアライズデータ301をセグメント分割し、各セグメントに対して所定のアルゴリズムによってハッシュ値を算出し、各セグメントのハッシュ値をレプリケーションマネージャ101に出力する(ステップS7)。
レプリケーションマネージャ101のハッシュ処理部111は、プライマリオブジェクトP1から、セグメント毎のハッシュ値を受信し、例えばレプリケーションマネージャ101が実行されているコンピュータのメインメモリなどの記憶装置に格納する(ステップS9)。そして、ハッシュ処理部111は、ハッシュ管理テーブル113に登録されている従前のハッシュ値と、受信したハッシュ値とをセグメント毎に比較する(ステップS11)。全てのセグメントのハッシュ値が一致する場合には、プライマリオブジェクトP1の状態に変化はないので、これ以上処理する必要はない。すなわち、今回の処理は終了する(ステップS15)。
一方、1つでもハッシュ値が一致しなければ、シリアライズデータ301、すなわちプライマリオブジェクトP1の変数の値などの内部データ値に変更が生じたことになるので、レプリカオブジェクトR1及びR2の変数の値などの内部データ値も変更しなければならない。そこで、ハッシュ処理部111は、ステップS9で受信し且つ不一致となったハッシュ値を、ハッシュ管理テーブル113に登録する。また、レプリカオブジェクト101の差分セグメントデータ処理部112は、不一致となったハッシュ値に係るセグメントのIDを含むセグメント要求を、プライマリオブジェクトP1に送信する(ステップS17)。プライマリオブジェクトP1のセグメントデータインターフェース部203は、レプリケーションマネージャ101からセグメント要求を受信すると(ステップS19)、当該セグメント要求において要求されているセグメントのデータを、データ部300から読み出し、レプリケーションマネージャ101に出力する(ステップS21)。
レプリケーションマネージャ101の差分セグメントデータ処理部112は、プライマリオブジェクトP1から、要求したセグメントのデータを受信すると(ステップS23)、ハッシュ管理テーブル113に登録されているレプリカオブジェクトR1及びR2に対して、受信したセグメントのデータ及びセグメントのIDを転送する(ステップS25)。
レプリカオブジェクトR1及びR2のセグメントデータインターフェース部203は、レプリケーションマネージャ101から、セグメントのデータ及びセグメントのIDを受信すると(ステップS27)、レプリカオブジェクトR1又はR2が実行されているコンピュータのメインメモリなどの記憶装置(レプリカオブジェクトR1及びR2に割り当てられている領域)に格納されているシリアライズデータ301において、受信したセグメントIDに係るセグメントのデータを、受信したセグメントのデータで置換して格納する(ステップS29)。そして、レプリカオブジェクトR1及びR2のセグメントデータインターフェース部203は、デシリアライズ部207に処理を指示する。すなわち、デシリアライズ部207は、更新されたシリアライズデータ301に対してデシリアライズ処理を実施して、少なくともユーザ定義の変数の値をレプリカオブジェクトR1及びR2に対して設定する(ステップS31)。
以上のような処理を繰り返し実施すれば、ハッシュ値が異なる場合にのみレプリカオブジェクトR1及びR2の更新が発生するので、定期的に更新する場合に比して通信負荷を下げることができるようになる。また、セグメント毎にハッシュ値の一致不一致を判断し、更新が発生したセグメントのデータのみが通信されるようにしているので、この点においても通信負荷を下げることができる。
[実施の形態2]
図8に本発明の第2の実施の形態における実行状態(オブジェクト及びレプリケーションマネージャとの関係)を示す。第1の実施の形態では、レプリケーション処理においてレプリケーションマネージャ101の関与が大きかったが、本実施の形態では、レプリケーションマネージャ101の関与を削減した実施形態を示す。また、第1の実施の形態では、現在動作中のプライマリオブジェクトP1と現在スタンバイ中のレプリカオブジェクトR1及びR2とが存在するような例を示したが、本実施の形態では、オブジェクト間で第1の実施の形態のような差がない場合を例として示す。
図8に示すように、本実施の形態では、レプリケーションマネージャ501と各オブジェクトO1乃至O3(レプリケーションが必要となるオブジェクトが3つの例)とがやり取りを行うが、レプリケーションマネージャ501のレプリケーション処理における関与を削減した分これとは別にオブジェクト間でもやり取りが必要となる。
次に、各オブジェクトO1乃至O3の機能構成例を図9に示す。これらのオブジェクトのレプリケーションに関連する機能部600は、アプリケーション基底クラス由来のハッシュ生成部601と、アプリケーション基底クラス由来のハッシュ比較処理部602と、アプリケーション基底クラス由来のセグメントデータインターフェース部603と、アプリケーション基底クラスによってその存在は規定されるがユーザ作成アプリケーションによってオーバーライドされるシリアライズ部604及びデシリアライズ部605とを有する。また、これらのオブジェクトのレプリケーションに関連するデータ部700には、シリアライズ部604によって少なくともユーザ定義の変数の値などの内部データ値をシリアライズした結果であるシリアライズデータ701が含まれる。なお、シリアライズデータ701は、所定サイズのセグメントseg1乃至3に分けられる場合もあれば、ユーザ定義に従ってセグメント分割される場合もある。
ハッシュ生成部601は、シリアライズデータ701の各セグメントに対して周知のアルゴリズムにてハッシュ値を算出する機能を有する。また、ハッシュ比較処理部602は、外部から受信したハッシュ値と、ハッシュ生成部601が算出したハッシュ値とを比較する処理などを実施する。セグメントデータインターフェース部603は、外部からの要求に応じて、指定されたセグメントのデータを読み出して出力したり、外部から取得したセグメントのデータを該当部分に格納する処理などを実施する。
シリアライズ部604は、オブジェクトの状態を表す変数の値などの内部データ値を、バイト列などのシリアライズデータ701に変換する処理を実施するものであり、デシリアライズ部605は、バイト列などのシリアライズデータ701からオブジェクトの状態を表す変数の値などの内部データ値に戻して、オブジェクトに設定する処理を実施するものである。これらの具体的処理内容については周知であるからこれ以上述べない。
図10に示すように、レプリケーションマネージャ501は、オブジェクトのグループを管理するオブジェクト管理テーブル512と、特定のオブジェクトからハッシュ値を取得して特定のオブジェクトと同一グループの他のオブジェクトに転送するハッシュ処理部511とを有する。
図11に、オブジェクト管理テーブル512に格納されるデータの一例を示す。図11の例では、グループIDと、当該グループに属するオブジェクトのIDとが対応して格納されている。
次に、図12及び図13を用いて、オブジェクトO1乃至O3と、レプリケーションマネージャ501とが実施するレプリケーション処理の内容を説明する。なお、オブジェクトO1の状態を基準に、オブジェクトO2及びO3の状態を更新する例を示すが、オブジェクトO2又はO3の状態を基準に、他のオブジェクトの状態を更新するようにしても良い。
レプリケーションマネージャ501のハッシュ処理部511は、定期的に又は任意のタイミングで、オブジェクト管理テーブル512に登録されている特定のグループの特定のオブジェクトO1に対してハッシュ値要求を送信する(ステップS41)。オブジェクトO1のハッシュ生成部601は、レプリケーションマネージャ501からハッシュ値要求を受信すると(ステップS43)、シリアライズ部604に処理を指示する。そうすると、シリアライズ部604は、少なくともユーザ定義の変数の値などの内部データ値に対してシリアライズ処理を実施してシリアライズデータ701を生成し、オブジェクトO1が実行されているコンピュータのメインメモリなどの記憶装置(オブジェクトO1に割り当てられている領域)に格納する(ステップS45)。
さらに、ハッシュ生成部601は、例えば所定のデータ量毎にシリアライズデータ701をセグメント分割し、各セグメントに対して所定のアルゴリズムによってハッシュ値を算出し、各セグメントのハッシュ値をレプリケーションマネージャ501に出力する(ステップS47)。
レプリケーションマネージャ501のハッシュ処理部511は、オブジェクトO1からセグメント毎にハッシュ値を受信し(ステップS49)、オブジェクト管理テーブル512において当該オブジェクトO1と同一グループに属する他のオブジェクトO2及びO3を特定して、受信したハッシュ値をオブジェクトO2及びO3に転送する(ステップS51)。
オブジェクトO2及びO3のハッシュ比較処理部602は、レプリケーションマネージャ501からセグメント毎のハッシュ値を受信すると(ステップS53)、オブジェクトO2及びO3が実行されているコンピュータのメインメモリなどの記憶装置(オブジェクトO2及びO3に割り当てられている領域)に格納し、シリアライズ部604に対して処理を指示する。すなわち、シリアライズ部604は、少なくともユーザ定義の変数の値などの内部データ値に対してシリアライズ処理を実施してシリアライズデータ701を生成し、オブジェクトO2及びO3が実行されているコンピュータのメインメモリなどの記憶装置(オブジェクトO2及びO3に割り当てられている領域)に格納する(ステップS55)。さらに、ハッシュ比較処理部602は、ハッシュ生成部601に対して、処理を指示する。すなわち、例えば所定のデータ量毎にシリアライズデータ701をセグメント分割し、各セグメントに対して所定のアルゴリズムでハッシュ値を算出し、要求元のハッシュ比較処理部602に出力する(ステップS57)。ステップS55及びS57においては予め実施しておくようにしても良い。
そして、ハッシュ比較処理部602は、レプリケーションマネージャ501から受信したハッシュ値と、ハッシュ生成部601によって算出されたハッシュ値とを、セグメント毎に比較し、シリアライズデータ701、すなわちオブジェクトO1の状態変化が発生したか判断する(ステップS59)。
ここでオブジェクトO1の状態変化が発生していないと判断した場合には、ここで処理を終了する(ステップS61)。一方、いずれかのセグメントについてハッシュ値が一致しない、すなわちオブジェクトO1の状態変化が発生している場合には、不一致であるハッシュ値に係るセグメントのIDを含む変更セグメントデータ要求を、オブジェクトO1に対して送信する(ステップS63)。オブジェクトO1のセグメントデータインターフェース部603は、同一グループの他のオブジェクトO2及びO3から、セグメントのIDを含む変更セグメントデータ要求を受信する(ステップS65)。処理は端子A及びBを介して図13の処理に移行する。
図13の説明に移行して、オブジェクトO1のセグメントデータインターフェース部603は、要求に係るセグメントのデータを読み出して、セグメントのIDと共に要求元のオブジェクトO2及びO3に送信する(ステップS67)。オブジェクトO2及びO3のセグメントデータインターフェース部603は、オブジェクトO1から、要求に係るセグメントのデータとセグメントIDとを受信すると(ステップS69)、当該セグメントのIDに対応し且つオブジェクトO2及びO3が実行されているコンピュータのメインメモリなどの記憶装置に格納されているシリアライズデータの該当部分を、受信したセグメントのデータで置換する(ステップS71)。その後、セグメントデータインターフェース部603は、デシリアライズ部605に処理を指示する。
そうすると、デシリアライズ部605は、シリアライズデータ701に対してデシリアライズ処理を実施して、少なくともユーザ定義の変数の値などの内部データ値を復元して、設定する(ステップS73)。
このようにすれば、第1の実施の形態のように、オブジェクトの状態に変更が発生した場合にのみ、内部データの通信を行うので、レプリケーションに必要な通信負荷を下げることができる。なお、ハッシュ値で変更のあるセグメントを特定できるので、さらに通信を行うデータ量を削減できる。
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、第2の実施の形態では、レプリケーションマネージャ501を用いていたが、例えばオブジェクト管理テーブル512と同様のテーブルを各々のオブジェクトが管理して、各々オブジェクトが互いにハッシュ値要求を同一グループ他のオブジェクトに定期的に送信するような構成を採用するようにしても良い。
また、レプリケーションマネージャが処理の起点になるような例を示したが、各オブジェクトが自律的にハッシュ値を算出する処理を開始するようにしても良い。
なお、オブジェクトが実行されるコンピュータ3は、図14に示すように、メモリ2501(記憶部)とCPU2503(処理部)とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。OS及びWebブラウザを含むアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。必要に応じてCPU2503は、表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ2501に格納され、必要があればHDD2505に格納される。このようなコンピュータは、上で述べたCPU2503、メモリ2501などのハードウエアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
(付記1)
第1のオブジェクトと、
第2のオブジェクトと、
レプリケーションマネージャと、
をコンピュータに、実現させるための分散オブジェクト・プログラムであって、
前記第1のオブジェクトが、
少なくともユーザ定義の内部データの値をシリアライズする処理を実施することによりシリアライズデータを生成し、当該シリアライズデータを前記第1のオブジェクトが実行されている前記コンピュータの記憶装置のうち前記第1のオブジェクトに割り当てられた第1の領域に格納するシリアライズ機能と、
要求に応じて、前記第1の領域に格納されている前記シリアライズデータに対してハッシュ値を算出して、出力するハッシュ機能と、
要求に応じて、前記シリアライズデータを出力する出力機能と、
を有し、
前記第2のオブジェクトが、
前記シリアライズデータを受信し、前記第2のオブジェクトが実行されているコンピュータの記憶装置のうち前記第2のオブジェクトに割り当てられた第2の領域に格納する受信機能と、
前記第2のオブジェクトが実行されている前記第2の領域の前記シリアライズデータをデシリアライズする処理を実施することにより、前記少なくともユーザ定義の内部データの値を生成し、前記第2のオブジェクトの内部データの値として設定するデシリアライズ機能と、
を有し、
前記レプリケーションマネージャが、
前記第1のオブジェクトに対応して前記第2のオブジェクトと、前記第1のオブジェクトの従前のハッシュ値とを管理し且つ前記レプリケーションマネージャが実行されているコンピュータの記憶装置に格納されている管理テーブルを参照して、前記第1のオブジェクトにハッシュ値を要求して取得し、取得した前記ハッシュ値と、前記管理テーブルに登録されている前記従前のハッシュ値とを比較する比較機能と、
取得した前記ハッシュ値と、前記管理テーブルに登録されている前記従前のハッシュ値とが不一致である場合、前記第1のオブジェクトから、前記シリアライズデータを取得し、前記管理テーブルにおいて前記第1のオブジェクトに対応して登録されている前記第2のオブジェクトに、前記シリアライズデータを送信するデータ転送機能と、
を有する
分散オブジェクト・プログラム。
(付記2)
前記第1のオブジェクトの前記ハッシュ機能が、前記シリアライズデータのセグメント毎にハッシュ値を算出し、
前記管理テーブルが、前記シリアライズデータのセグメント毎に従前のハッシュ値を管理しており、
前記レプリケーションマネージャの前記比較機能が、前記セグメント毎にハッシュ値の比較を行い、
前記レプリケーションマネージャのデータ転送機能が、取得した前記ハッシュ値と、前記管理テーブルに登録されている前記従前のハッシュ値とが不一致である場合、当該不一致とされた前記ハッシュ値に係るセグメントのデータを取得して、前記第2のオブジェクトに送信し、
前記第2のオブジェクトの前記受信機能が、受信した前記セグメントのデータで、前記第2の領域に格納されている前記シリアライズデータの該当部分を置換する
付記1記載の分散オブジェクト・プログラム。
(付記3)
前記第1のオブジェクトの前記シリアライズ機能及び前記第2のオブジェクトの前記デシリアライズ機能の詳細がユーザ定義され、
前記第1のオブジェクトの前記ハッシュ機能、前記出力機能及び前記シリアライズ機能の存在と、前記レプリケーションマネージャと、前記第2のオブジェクトの前記受信機能及び前記デシリアライズ機能の存在とがフレームワークで規定且つ提供される
付記1記載の分散オブジェクト・プログラム。
(付記4)
第1のオブジェクトと、
第2のオブジェクトと、
レプリケーションマネージャと、
をコンピュータに、実現させるための分散オブジェクト・プログラムであって、
前記第1のオブジェクトが、
少なくともユーザ定義の内部データの値をシリアライズする処理を実施することによりシリアライズデータを生成し、当該シリアライズデータを前記第1のオブジェクトが実行されているコンピュータの記憶装置のうち前記第1のオブジェクトに割り当てられた第1の領域に格納するシリアライズ機能と、
要求に応じて、前記第1の領域に格納されている前記シリアライズデータに対してハッシュ値を算出して、出力するハッシュ機能と、
要求に応じて、前記シリアライズデータを出力する出力機能と、
を有し、
前記第2のオブジェクトが、
少なくともユーザ定義の内部データの値をシリアライズする処理を実施することにより第2のシリアライズデータを生成し、当該第2のシリアライズデータを前記第2のオブジェクトが実行されているコンピュータの記憶装置のうち前記第2のオブジェクトに割り当てられた第2の領域に格納するシリアライズ機能と、
前記第2の領域に格納されている前記第2のシリアライズデータに対してハッシュ値を算出するハッシュ機能と、
外部からハッシュ値を受信した場合、前記ハッシュ機能により算出された前記ハッシュ値と比較して、一致しているか判断する比較機能と、
前記外部から受信したハッシュ値と算出された前記ハッシュ値とが不一致である場合に、前記第1のオブジェクトから、前記シリアライズデータを取得し、前記第2の領域に格納する受信機能と、
前記第2の領域に格納されている前記シリアライズデータをデシリアライズする処理を実施することにより、少なくともユーザ定義の内部データの値を生成し、前記第2のオブジェクトの内部データの値として設定するデシリアライズ機能と、
を有し、
前記レプリケーションマネージャが、
前記第1のオブジェクトに対応する前記第2のオブジェクトを管理し且つ前記レプリケーションマネージャが実行されているコンピュータの記憶装置に格納されている管理テーブルを参照して、前記第1のオブジェクトにハッシュ値を要求して取得し、取得した前記ハッシュ値を、前記管理テーブルに前記第1のオブジェクトに対応して登録されている前記第2のオブジェクトに対して送信する機能
を有する
分散オブジェクト・プログラム。
(付記5)
前記第1及び第2のオブジェクトの前記ハッシュ機能が、前記シリアライズデータのセグメント毎にハッシュ値を算出し、
前記第2のオブジェクトの前記比較機能が、前記セグメント毎にハッシュ値の比較を実施し、
前記第2のオブジェクトの前記受信機能が、前記比較機能によって不一致と判断されたハッシュ値に係るセグメントのデータを、前記第1のオブジェクトから取得し、取得した前記セグメントのデータで、前記第2の領域に格納されている前記第2のシリアライズデータの該当部分を置換する
付記4記載の分散オブジェクト・プログラム。
(付記6)
前記第1のオブジェクトの前記シリアライズ機能並びに前記第2のオブジェクトの前記シリアライズ機能及び前記デシリアライズ機能の詳細がユーザ定義され、
前記第1のオブジェクトの前記ハッシュ機能、前記出力機能及び前記シリアライズ機能の存在と、前記レプリケーションマネージャと、前記第2のオブジェクトの前記比較機能、前記受信機能及び前記デシリアライズ機能の存在とがフレームワークで規定且つ提供される
付記4記載の分散オブジェクト・プログラム。
(付記7)
レプリケーションマネージャにより、第1のオブジェクトに対応して第2のオブジェクトと、前記第1のオブジェクトの従前のハッシュ値とを管理し且つ前記レプリケーションマネージャが実行されているコンピュータの記憶装置に格納されている管理テーブルを参照して、前記第1のオブジェクトにハッシュ値を要求するステップと、
前記第1のオブジェクトにより、少なくともユーザ定義の内部データの値をシリアライズする処理を実施することによりシリアライズデータを生成し、当該シリアライズデータを前記第1のオブジェクトが実行されているコンピュータの記憶装置のうち前記第1のオブジェクトに割り当てられた第1の領域に格納するステップと、
前記第1のオブジェクトにより、前記第1の領域に格納されている前記シリアライズデータに対してハッシュ値を算出して、前記レプリケーションマネージャに出力するステップと、
前記レプリケーションマネージャにより、前記第1のオブジェクトから前記ハッシュ値を取得し、取得した前記ハッシュ値と、前記管理テーブルに登録されている前記従前のハッシュ値とを比較するステップと、
取得した前記ハッシュ値と、前記管理テーブルに登録されている前記従前のハッシュ値とが不一致である場合、前記レプリケーションマネージャにより、前記第1のオブジェクトから、前記シリアライズデータを取得し、前記管理テーブルにおいて前記第1のオブジェクトに対応して登録されている前記第2のオブジェクトに、前記シリアライズデータを送信するステップと、
前記第2のオブジェクトにより、前記レプリケーションマネージャから前記シリアライズデータを受信し、前記第2のオブジェクトが実行されているコンピュータの記憶装置のうち前記第2のオブジェクトに割り当てられた第2の領域に格納するステップと、
前記第2のオブジェクトにより、前記第2の領域に格納されている前記シリアライズデータをデシリアライズする処理を実施することにより、前記少なくともユーザ定義の内部データの値を生成し、前記第2のオブジェクトの内部データの値として設定するステップと、
を含み、分散オブジェクト環境に含まれるコンピュータにより実行されるレプリケーション処理方法。
(付記8)
レプリケーションマネージャにより、第1のオブジェクトに対応する第2のオブジェクトを管理し且つ前記レプリケーションマネージャが実行されているコンピュータの記憶装置に格納されている管理テーブルを参照して、前記第1のオブジェクトにハッシュ値を要求するステップと、
前記第1のオブジェクトにより、少なくともユーザ定義の内部データの値をシリアライズする処理を実施することによりシリアライズデータを生成し、当該シリアライズデータを前記第1のオブジェクトが実行されているコンピュータの記憶装置のうち前記第1のオブジェクトに割り当てられた第1の領域に格納するステップと、
前記第1のオブジェクトにより、前記第1の領域に格納されている前記シリアライズデータに対してハッシュ値を算出して、前記レプリケーションマネージャに出力するステップと、
前記レプリケーションマネージャにより、前記第1のオブジェクトから取得した前記ハッシュ値を、前記管理テーブルに前記第1のオブジェクトに対応して登録されている前記第2のオブジェクトに対して送信するステップと、
前記第2のオブジェクトにより、少なくともユーザ定義の内部データの値をシリアライズする処理を実施することにより第2のシリアライズデータを生成し、当該第2のシリアライズデータを前記第2のオブジェクトが実行されているコンピュータの記憶装置のうち前記第2のオブジェクトに割り当てられた第2の領域に格納するステップと、
前記第2のオブジェクトにより、前記第2の領域に格納されている前記第2のシリアライズデータに対してハッシュ値を算出するステップと、
前記レプリケーションマネージャから前記ハッシュ値を受信した場合、前記第2のオブジェクトにより、前記第2のシリアライズデータから算出された前記ハッシュ値と比較して、一致しているか判断するステップと、
前記レプリケーションマネージャから受信したハッシュ値と算出された前記ハッシュ値とが不一致である場合に、前記第2のオブジェクトにより、前記第1のオブジェクトから前記シリアライズデータを取得し、前記第2の領域に格納するステップと、
前記第2のオブジェクトにより、前記第2の領域に格納されている前記シリアライズデータをデシリアライズする処理を実施することにより、少なくともユーザ定義の内部データの値を生成し、前記第2のオブジェクトの内部データの値として設定するステップと、
を含み、分散オブジェクト環境に含まれるコンピュータにより実行されるレプリケーション処理方法。
本発明の実施の形態に係るレプリケーション処理に係る部分のクラス図である。 分散オブジェクト環境におけるハードウエア構成例を示す図である。 本発明の第1の実施の形態におけるオブジェクトとレプリケーションマネージャの関連を表す模式図である。 本発明の第1の実施の形態におけるオブジェクトの構成例を示す図である。 本発明の第1の実施の形態におけるレプリケーションマネージャの構成例を示す図である。 ハッシュ管理テーブルに格納されるデータの一例を示す図である。 本は発明の第1の実施の形態における処理フローを示す図である。 本発明の第2の実施の形態におけるオブジェクトとレプリケーションマネージャの関連を表す模式図である。 本発明の第2の実施の形態におけるオブジェクトの構成例を示す図である。 本発明の第2の実施の形態におけるレプリケーションマネージャの構成例を示す図である。 オブジェクト管理テーブルに格納されるデータの一例を示す図である。 本発明の第2の実施の形態における処理フローを示す図である。 本発明の第2の実施の形態における処理フローを示す図である。 コンピュータの機能ブロック図である。
符号の説明
101,501 レプリケーションマネージャ
201,601 ハッシュ生成部
203,603 セグメントデータインターフェース部
205,604 シリアライズ部
207,605 デシリアライズ部
301,701 シリアライズデータ
602 ハッシュ比較処理部
111,511 ハッシュ処理部
112 差分セグメントデータ処理部
113 ハッシュ管理テーブル
512 オブジェクト管理テーブル

Claims (8)

  1. 第1のオブジェクトと、
    第2のオブジェクトと、
    レプリケーションマネージャと、
    をコンピュータに、実現させるための分散オブジェクト・プログラムであって、
    前記第1のオブジェクトが、
    少なくともユーザ定義の内部データの値をシリアライズする処理を実施することによりシリアライズデータを生成し、当該シリアライズデータを前記第1のオブジェクトが実行されている前記コンピュータの記憶装置のうち前記第1のオブジェクトに割り当てられた第1の領域に格納するシリアライズ機能と、
    要求に応じて、前記第1の領域に格納されている前記シリアライズデータに対してハッシュ値を算出して、出力するハッシュ機能と、
    要求に応じて、前記シリアライズデータを出力する出力機能と、
    を有し、
    前記第2のオブジェクトが、
    前記シリアライズデータを受信し、前記第2のオブジェクトが実行されているコンピュータの記憶装置のうち前記第2のオブジェクトに割り当てられた第2の領域に格納する受信機能と、
    前記第2のオブジェクトが実行されている前記第2の領域の前記シリアライズデータをデシリアライズする処理を実施することにより、前記少なくともユーザ定義の内部データの値を生成し、前記第2のオブジェクトの内部データの値として設定するデシリアライズ機能と、
    を有し、
    前記レプリケーションマネージャが、
    前記第1のオブジェクトに対応して前記第2のオブジェクトと、前記第1のオブジェクトの従前のハッシュ値とを管理し且つ前記レプリケーションマネージャが実行されているコンピュータの記憶装置に格納されている管理テーブルを参照して、前記第1のオブジェクトにハッシュ値を要求して取得し、取得した前記ハッシュ値と、前記管理テーブルに登録されている前記従前のハッシュ値とを比較する比較機能と、
    取得した前記ハッシュ値と、前記管理テーブルに登録されている前記従前のハッシュ値とが不一致である場合、前記第1のオブジェクトから、前記シリアライズデータを取得し、前記管理テーブルにおいて前記第1のオブジェクトに対応して登録されている前記第2のオブジェクトに、前記シリアライズデータを送信するデータ転送機能と、
    を有する
    分散オブジェクト・プログラム。
  2. 前記第1のオブジェクトの前記ハッシュ機能が、前記シリアライズデータのセグメント毎にハッシュ値を算出し、
    前記管理テーブルが、前記シリアライズデータのセグメント毎に従前のハッシュ値を管理しており、
    前記レプリケーションマネージャの前記比較機能が、前記セグメント毎にハッシュ値の比較を行い、
    前記レプリケーションマネージャのデータ転送機能が、取得した前記ハッシュ値と、前記管理テーブルに登録されている前記従前のハッシュ値とが不一致である場合、当該不一致とされた前記ハッシュ値に係るセグメントのデータを取得して、前記第2のオブジェクトに送信し、
    前記第2のオブジェクトの前記受信機能が、受信した前記セグメントのデータで、前記第2の領域に格納されている前記シリアライズデータの該当部分を置換する
    請求項1記載の分散オブジェクト・プログラム。
  3. 前記第1のオブジェクトの前記シリアライズ機能及び前記第2のオブジェクトの前記デシリアライズ機能の詳細がユーザ定義され、
    前記第1のオブジェクトの前記ハッシュ機能、前記出力機能及び前記シリアライズ機能の存在と、前記レプリケーションマネージャと、前記第2のオブジェクトの前記受信機能及び前記デシリアライズ機能の存在とがフレームワークで規定且つ提供される
    請求項1記載の分散オブジェクト・プログラム。
  4. 第1のオブジェクトと、
    第2のオブジェクトと、
    レプリケーションマネージャと、
    をコンピュータに、実現させるための分散オブジェクト・プログラムであって、
    前記第1のオブジェクトが、
    少なくともユーザ定義の内部データの値をシリアライズする処理を実施することによりシリアライズデータを生成し、当該シリアライズデータを前記第1のオブジェクトが実行されているコンピュータの記憶装置のうち前記第1のオブジェクトに割り当てられた第1の領域に格納するシリアライズ機能と、
    要求に応じて、前記第1の領域に格納されている前記シリアライズデータに対してハッシュ値を算出して、出力するハッシュ機能と、
    要求に応じて、前記シリアライズデータを出力する出力機能と、
    を有し、
    前記第2のオブジェクトが、
    少なくともユーザ定義の内部データの値をシリアライズする処理を実施することにより第2のシリアライズデータを生成し、当該第2のシリアライズデータを前記第2のオブジェクトが実行されているコンピュータの記憶装置のうち前記第2のオブジェクトに割り当てられた第2の領域に格納するシリアライズ機能と、
    前記第2の領域に格納されている前記第2のシリアライズデータに対してハッシュ値を算出するハッシュ機能と、
    外部からハッシュ値を受信した場合、前記ハッシュ機能により算出された前記ハッシュ値と比較して、一致しているか判断する比較機能と、
    前記外部から受信したハッシュ値と算出された前記ハッシュ値とが不一致である場合に、前記第1のオブジェクトから、前記シリアライズデータを取得し、前記第2の領域に格納する受信機能と、
    前記第2の領域に格納されている前記シリアライズデータをデシリアライズする処理を実施することにより、少なくともユーザ定義の内部データの値を生成し、前記第2のオブジェクトの内部データの値として設定するデシリアライズ機能と、
    を有し、
    前記レプリケーションマネージャが、
    前記第1のオブジェクトに対応する前記第2のオブジェクトを管理し且つ前記レプリケーションマネージャが実行されているコンピュータの記憶装置に格納されている管理テーブルを参照して、前記第1のオブジェクトにハッシュ値を要求して取得し、取得した前記ハッシュ値を、前記管理テーブルに前記第1のオブジェクトに対応して登録されている前記第2のオブジェクトに対して送信する機能
    を有する
    分散オブジェクト・プログラム。
  5. 前記第1及び第2のオブジェクトの前記ハッシュ機能が、前記シリアライズデータのセグメント毎にハッシュ値を算出し、
    前記第2のオブジェクトの前記比較機能が、前記セグメント毎にハッシュ値の比較を実施し、
    前記第2のオブジェクトの前記受信機能が、前記比較機能によって不一致と判断されたハッシュ値に係るセグメントのデータを、前記第1のオブジェクトから取得し、取得した前記セグメントのデータで、前記第2の領域に格納されている前記第2のシリアライズデータの該当部分を置換する
    請求項4記載の分散オブジェクト・プログラム。
  6. 前記第1のオブジェクトの前記シリアライズ機能並びに前記第2のオブジェクトの前記シリアライズ機能及び前記デシリアライズ機能の詳細がユーザ定義され、
    前記第1のオブジェクトの前記ハッシュ機能、前記出力機能及び前記シリアライズ機能の存在と、前記レプリケーションマネージャと、前記第2のオブジェクトの前記比較機能、前記受信機能及び前記デシリアライズ機能の存在とがフレームワークで規定且つ提供される
    請求項4記載の分散オブジェクト・プログラム。
  7. レプリケーションマネージャにより、第1のオブジェクトに対応して第2のオブジェクトと、前記第1のオブジェクトの従前のハッシュ値とを管理し且つ前記レプリケーションマネージャが実行されているコンピュータの記憶装置に格納されている管理テーブルを参照して、前記第1のオブジェクトにハッシュ値を要求するステップと、
    前記第1のオブジェクトにより、少なくともユーザ定義の内部データの値をシリアライズする処理を実施することによりシリアライズデータを生成し、当該シリアライズデータを前記第1のオブジェクトが実行されているコンピュータの記憶装置のうち前記第1のオブジェクトに割り当てられた第1の領域に格納するステップと、
    前記第1のオブジェクトにより、前記第1の領域に格納されている前記シリアライズデータに対してハッシュ値を算出して、前記レプリケーションマネージャに出力するステップと、
    前記レプリケーションマネージャにより、前記第1のオブジェクトから前記ハッシュ値を取得し、取得した前記ハッシュ値と、前記管理テーブルに登録されている前記従前のハッシュ値とを比較するステップと、
    取得した前記ハッシュ値と、前記管理テーブルに登録されている前記従前のハッシュ値とが不一致である場合、前記レプリケーションマネージャにより、前記第1のオブジェクトから、前記シリアライズデータを取得し、前記管理テーブルにおいて前記第1のオブジェクトに対応して登録されている前記第2のオブジェクトに、前記シリアライズデータを送信するステップと、
    前記第2のオブジェクトにより、前記レプリケーションマネージャから前記シリアライズデータを受信し、前記第2のオブジェクトが実行されているコンピュータの記憶装置のうち前記第2のオブジェクトに割り当てられた第2の領域に格納するステップと、
    前記第2のオブジェクトにより、前記第2の領域に格納されている前記シリアライズデータをデシリアライズする処理を実施することにより、前記少なくともユーザ定義の内部データの値を生成し、前記第2のオブジェクトの内部データの値として設定するステップと、
    を含み、分散オブジェクト環境に含まれるコンピュータにより実行されるレプリケーション処理方法。
  8. レプリケーションマネージャにより、第1のオブジェクトに対応する第2のオブジェクトを管理し且つ前記レプリケーションマネージャが実行されているコンピュータの記憶装置に格納されている管理テーブルを参照して、前記第1のオブジェクトにハッシュ値を要求するステップと、
    前記第1のオブジェクトにより、少なくともユーザ定義の内部データの値をシリアライズする処理を実施することによりシリアライズデータを生成し、当該シリアライズデータを前記第1のオブジェクトが実行されているコンピュータの記憶装置のうち前記第1のオブジェクトに割り当てられた第1の領域に格納するステップと、
    前記第1のオブジェクトにより、前記第1の領域に格納されている前記シリアライズデータに対してハッシュ値を算出して、前記レプリケーションマネージャに出力するステップと、
    前記レプリケーションマネージャにより、前記第1のオブジェクトから取得した前記ハッシュ値を、前記管理テーブルに前記第1のオブジェクトに対応して登録されている前記第2のオブジェクトに対して送信するステップと、
    前記第2のオブジェクトにより、少なくともユーザ定義の内部データの値をシリアライズする処理を実施することにより第2のシリアライズデータを生成し、当該第2のシリアライズデータを前記第2のオブジェクトが実行されているコンピュータの記憶装置のうち前記第2のオブジェクトに割り当てられた第2の領域に格納するステップと、
    前記第2のオブジェクトにより、前記第2の領域に格納されている前記第2のシリアライズデータに対してハッシュ値を算出するステップと、
    前記レプリケーションマネージャから前記ハッシュ値を受信した場合、前記第2のオブジェクトにより、前記第2のシリアライズデータから算出された前記ハッシュ値と比較して、一致しているか判断するステップと、
    前記レプリケーションマネージャから受信したハッシュ値と算出された前記ハッシュ値とが不一致である場合に、前記第2のオブジェクトにより、前記第1のオブジェクトから前記シリアライズデータを取得し、前記第2の領域に格納するステップと、
    前記第2のオブジェクトにより、前記第2の領域に格納されている前記シリアライズデータをデシリアライズする処理を実施することにより、少なくともユーザ定義の内部データの値を生成し、前記第2のオブジェクトの内部データの値として設定するステップと、
    を含み、分散オブジェクト環境に含まれるコンピュータにより実行されるレプリケーション処理方法。
JP2008089837A 2008-03-31 2008-03-31 分散オブジェクト・プログラム及びレプリケーション処理方法 Pending JP2009245089A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008089837A JP2009245089A (ja) 2008-03-31 2008-03-31 分散オブジェクト・プログラム及びレプリケーション処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008089837A JP2009245089A (ja) 2008-03-31 2008-03-31 分散オブジェクト・プログラム及びレプリケーション処理方法

Publications (1)

Publication Number Publication Date
JP2009245089A true JP2009245089A (ja) 2009-10-22

Family

ID=41306913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008089837A Pending JP2009245089A (ja) 2008-03-31 2008-03-31 分散オブジェクト・プログラム及びレプリケーション処理方法

Country Status (1)

Country Link
JP (1) JP2009245089A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010205100A (ja) * 2009-03-05 2010-09-16 Nec Corp 管理サーバ、バックアップ方式、バックアップ方法、及び、プログラム
WO2012155593A1 (zh) * 2011-11-01 2012-11-22 中兴通讯股份有限公司 一种用网页进行本地调用的方法和系统
JP2014510970A (ja) * 2011-03-07 2014-05-01 ブル・エス・アー・エス コンピュータシステムでのデータの複製を最適化するための方法、装置およびコンピュータプログラム
JP2017504885A (ja) * 2013-12-18 2017-02-09 アマゾン・テクノロジーズ・インコーポレーテッド ボリュームコーホート内の小ボリュームの照合調整
JP2019212081A (ja) * 2018-06-06 2019-12-12 Necソリューションイノベータ株式会社 ストレージ装置、復旧方法、プログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03122729A (ja) * 1989-09-25 1991-05-24 Internatl Business Mach Corp <Ibm> データベース更新システム及び方法
JPH1196054A (ja) * 1997-09-18 1999-04-09 Fujitsu Ltd データベース統合アプリケーション構築システム
JPH11168462A (ja) * 1997-12-04 1999-06-22 Toshiya Iwai 移動可能プロセスの認証方法
JP2005302004A (ja) * 2004-04-15 2005-10-27 Microsoft Corp 遠隔差分圧縮用の効率的アルゴリズムとプロトコル
JP2007114619A (ja) * 2005-10-21 2007-05-10 Ntt Data Corp 複写管理装置及びプログラム
JP2007257566A (ja) * 2006-03-27 2007-10-04 Fujitsu Ltd ハッシュ値生成プログラム及びストレージ管理プログラム並びにストレージシステム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03122729A (ja) * 1989-09-25 1991-05-24 Internatl Business Mach Corp <Ibm> データベース更新システム及び方法
JPH1196054A (ja) * 1997-09-18 1999-04-09 Fujitsu Ltd データベース統合アプリケーション構築システム
JPH11168462A (ja) * 1997-12-04 1999-06-22 Toshiya Iwai 移動可能プロセスの認証方法
JP2005302004A (ja) * 2004-04-15 2005-10-27 Microsoft Corp 遠隔差分圧縮用の効率的アルゴリズムとプロトコル
JP2007114619A (ja) * 2005-10-21 2007-05-10 Ntt Data Corp 複写管理装置及びプログラム
JP2007257566A (ja) * 2006-03-27 2007-10-04 Fujitsu Ltd ハッシュ値生成プログラム及びストレージ管理プログラム並びにストレージシステム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010205100A (ja) * 2009-03-05 2010-09-16 Nec Corp 管理サーバ、バックアップ方式、バックアップ方法、及び、プログラム
JP2014510970A (ja) * 2011-03-07 2014-05-01 ブル・エス・アー・エス コンピュータシステムでのデータの複製を最適化するための方法、装置およびコンピュータプログラム
WO2012155593A1 (zh) * 2011-11-01 2012-11-22 中兴通讯股份有限公司 一种用网页进行本地调用的方法和系统
US9544335B2 (en) 2011-11-01 2017-01-10 Zte Corporation Method and system for local calling via webpage
JP2017504885A (ja) * 2013-12-18 2017-02-09 アマゾン・テクノロジーズ・インコーポレーテッド ボリュームコーホート内の小ボリュームの照合調整
JP2019212081A (ja) * 2018-06-06 2019-12-12 Necソリューションイノベータ株式会社 ストレージ装置、復旧方法、プログラム
JP7248267B2 (ja) 2018-06-06 2023-03-29 Necソリューションイノベータ株式会社 ストレージ装置、復旧方法、プログラム

Similar Documents

Publication Publication Date Title
CN102955845B (zh) 数据访问方法、装置与分布式数据库系统
CN102185928B (zh) 一种在云计算系统创建虚拟机的方法及云计算系统
US20210176160A1 (en) Method and device for synchronizing node of blockchain
US9521198B1 (en) Systems and methods for implementing an enterprise-class converged compute-network-storage appliance
CN103002027B (zh) 基于键值对系统实现树形目录结构的数据存储系统及方法
CN102349062B (zh) 浏览器缓存与远程仓库同步的方法和系统
KR20200027413A (ko) 데이터 저장 방법, 장치 및 시스템
US20100257149A1 (en) Data synchronization and consistency across distributed repositories
CN105260376B (zh) 用于集群节点缩扩的方法、设备和系统
US10019452B2 (en) Topology aware distributed storage system
CN112287007B (zh) 基于Flink SQL引擎的工业生产数据实时处理方法、系统
KR101480867B1 (ko) 맵리듀스 연산 가속 시스템 및 방법
US20080288506A1 (en) Method for preserving virtual filesystem information across high availability takeover
CN111274310A (zh) 一种分布式数据缓存方法及系统
CN109933312B (zh) 一种有效降低容器化关系型数据库i/o消耗的方法
US11144412B2 (en) Virtual machine image file synchronization using delta bitmaps and delta files
CN110188097A (zh) 区块链中智能合约的存储、执行方法及装置和电子设备
CN102937964B (zh) 基于分布式系统的智能数据服务方法
JP2009245089A (ja) 分散オブジェクト・プログラム及びレプリケーション処理方法
CN105740469A (zh) 存储服务器和元数据访问方法
US7805503B2 (en) Capability requirements for group membership
CN104268001A (zh) 一种创建虚拟机的方法和创建虚拟机的装置
WO2019153880A1 (zh) 集群中镜像文件下载的方法、节点、查询服务器
CN109088914B (zh) 区块的生成方法、区块链生态系统及计算机可读存储介质
JP4971717B2 (ja) ディレクトリ分散型記憶装置及びデータ処理要求移譲プログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110819

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110906

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120110