JP4111881B2 - データ同期制御装置、データ同期制御方法及びデータ同期制御プログラム - Google Patents
データ同期制御装置、データ同期制御方法及びデータ同期制御プログラム Download PDFInfo
- Publication number
- JP4111881B2 JP4111881B2 JP2003188402A JP2003188402A JP4111881B2 JP 4111881 B2 JP4111881 B2 JP 4111881B2 JP 2003188402 A JP2003188402 A JP 2003188402A JP 2003188402 A JP2003188402 A JP 2003188402A JP 4111881 B2 JP4111881 B2 JP 4111881B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- object data
- synchronization control
- reference relationship
- mobile terminal
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、データベースシステムと携帯端末間におけるデータ同期制御装置、データ同期制御方法及びデータ同期制御プログラムに関する。
【0002】
【従来の技術】
従来、コンピュータ端末と携帯型端末間におけるデータ通信において、変更前のデータと変更後のデータの同期を取るための技術が存在する。
例えば、特許文献1には、送信装置側(コンピュータ端末)のデータと受信装置側(携帯型端末)のデータとを固有の識別情報によって対応づけておき、送信装置から送信された変更データ及び当該データに対応する識別情報を受信すると、受信装置は、受信データに変更後の属性を設定すると共に、記憶部に記憶されたデータの内、受信したデータと同一の識別情報に対応するデータに変更前の属性を設定し、記憶部に格納されたデータを表示する際に、変更後の属性が設定されたデータと、変更前の属性が設定されたデータとを、それぞれ変更後及び変更前の属性を示す識別表示を用いて表示することが記載されている。
この発明によれば、変更後の属性が設定されたデータを記憶部から削除する場合、削除されたデータに対応する変更前の属性が設定されたデータから変更前の属性の設定を解除するようにしている。
【0003】
また、特許文献2には、データ個々の実体を表すレコード間の親子関係に応じて、データ格納ファイル内にお互いに近接して編成させるファイル格納管理システムについての記載がある。このファイル格納管理システムは、リレーション定義ファイルと、データページファイルと、データページと、ページマップファイルと、メタマップファイルを管理することで、リレーション及びモジュールに所属したレコードに対する挿入、削除、モジュール単位のレコードの主記憶上への読み込み、更にリレーションを通したレコード単位の読み込みを実行する。
【0004】
【特許文献1】
特開2000−137687号公報
【特許文献2】
特開平8−123713号公報
【0005】
【発明が解決しようとする課題】
一方で、近年、エンタープライズアプリケーションをモバイル化することで、リアルタイムに社内情報を共有することが検討されている。基幹業務データベースシステムと携帯端末とを連動させることで、ビジネスデータへ即座にアクセスでき、リアルタイムで最新の情報を更新、共有することができる。
このようなエンタープライズアプリケーションにおいて、携帯端末上でオフラインで更新されたデータは、暗号化処理や圧縮処理後、公衆パケット網、LAN、無線LAN、クレードル等を介して、オンライン接続時に任意のバックエンドシステムと同期を取ることが要求される。
【0006】
上述したようなデータ同期アルゴリズムをエンタープライズアプリケーションのモバイルエンジンとして採用する場合、特に携帯端末側の処理負荷、記憶容量制限を考慮したデータ同期アルゴリズムが要求される。
このため、上述したようなデータ管理システムが採用するデータ同期アルゴリズムでは、転送データの冗長性が高く、効率的にデータ同期を行うことができないという問題点があった。
【0007】
本発明は、このような事情を考慮してなされたものであり、その目的は、データベースシステムと携帯端末間において、効率的にデータ同期処理を行うことができるデータ同期制御装置、データ同期制御方法及びデータ同期制御プログラムを提供することにある。
【0008】
【課題を解決するための手段】
この発明は上記の課題を解決すべくなされたもので、本発明は、携帯端末とネットワークを介して接続されたデータ同期制御装置において、前記携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータが他のオブジェクトデータより参照されているか否かを判定する参照関係判定手段と、前記参照関係判定手段の判定結果に基づいて、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力するデータ削除手段とを具備することを特徴とする。
【0009】
また、本発明は、前記参照関係判定手段の判定結果が前記削除対象のオブジェクトデータが他のオブジェクトデータより参照されていないことを示す場合、前記データ削除手段は、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力することを特徴とする。
【0010】
また、本発明は、前記参照関係判定手段の判定結果が前記削除対象のオブジェクトデータが他のオブジェクトデータより参照されていることを示す場合、前記データ削除手段は、該被参照関係を有する他のオブジェクトデータを削除対象とし、前記参照関係判定手段を再帰呼出しすることを特徴とする。
【0011】
また、本発明は、携帯端末とネットワークを介して接続されたデータ同期制御装置において、前記携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータが他のオブジェクトデータを参照しているか否かを判定する参照関係判定手段と、前記参照関係判定手段の判定結果に基づいて、前記携帯端末に前記削除対象のオブジェクトデータが参照している他のオブジェクトデータの削除命令を出力するデータ削除手段とを具備することを特徴とする。
【0012】
また、本発明は、前記参照関係判定手段の判定結果が前記削除対象のオブジェクトデータが他のオブジェクトデータを参照していないことを示す場合、前記データ削除手段は、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力することを特徴とする。
【0013】
また、本発明は、前記参照関係判定手段の判定結果が前記削除対象のオブジェクトデータが他のオブジェクトデータを参照していることを示す場合、前記データ削除手段は、該参照関係を有する他のオブジェクトデータを削除対象とし、前記参照関係判定手段を再帰呼出しすることを特徴とする。
【0014】
また、本発明は、前記参照関係判定手段の判定結果が前記削除対象のオブジェクトデータが他のオブジェクトデータを参照していることを示す場合、前記データ削除手段は、該参照関係を有する他のオブジェクトデータに予め設定されるカスケードダウンロードフラグを検査し、該検査結果に基づいて、該参照関係を有する他のオブジェクトデータを削除対象として、前記参照関係判定手段を再帰呼出しすることを特徴とする。
【0015】
また、本発明は、前記参照関係判定手段の判定結果が前記削除対象のオブジェクトデータが他のオブジェクトデータを参照していることを示す場合、前記データ削除手段は、該参照関係を有する他のオブジェクトデータに予め設定されるカスケードダウンロードフラグを検査するとともに、該オブジェクトデータが他のオブジェクトデータより参照されているか否かを判定し、前記検査結果及び判定結果に基づいて、該参照関係を有する他のオブジェクトデータを削除対象として、前記参照関係判定手段を再帰呼出しすることを特徴とする。
【0016】
また、本発明は、携帯端末とネットワークを介して接続されたデータ同期制御装置において、前記携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータが他のオブジェクトデータより参照されているか否かを判定し、該判定結果に基づいて、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力することを特徴とする。
【0017】
また、本発明は、前記参照関係の判定結果が、他のオブジェクトデータより参照されていないことを示す場合、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力することを特徴とする。
【0018】
また、本発明は、前記参照関係の判定結果が、他のオブジェクトデータより参照されていることを示す場合、該被参照関係を有する他のオブジェクトデータを削除対象とし、前記参照関係を判定する手段を再帰呼出しすることを特徴とする。
【0019】
また、本発明は、携帯端末とネットワークを介して接続されたデータ同期制御装置において、前記携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータが他のオブジェクトデータを参照しているか否かを判定し、該判定結果に基づいて、前記携帯端末に前記削除対象のオブジェクトデータが参照している他のオブジェクトデータの削除命令を出力することを特徴とする。
【0020】
また、本発明は、前記参照関係の判定結果が、前記他のオブジェクトデータを参照していないことを示す場合、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力することを特徴とする。
【0021】
また、本発明は、前記参照関係の判定結果が、前記他のオブジェクトデータを参照していることを示す場合、該参照関係を有する他のオブジェクトデータを削除対象とし、前記参照関係を判定する手段を再帰呼出しすることを特徴とする。
【0022】
また、本発明は、前記参照関係の判定結果が、前記他のオブジェクトデータを参照していることを示す場合、該参照関係を有する他のオブジェクトデータに予め設定されるカスケードダウンロードフラグを検査し、該検査結果に基づいて、該参照関係を有する他のオブジェクトデータを削除対象として、前記参照関係を判定する手段を再帰呼出しすることを特徴とする。
【0023】
また、本発明は、前記参照関係の判定結果が、前記他のオブジェクトデータを参照していることを示す場合、該参照関係を有する他のオブジェクトデータに予め設定されるカスケードダウンロードフラグを検査するとともに、該オブジェクトデータが他のオブジェクトデータより参照されているか否かを判定し、前記検査結果及び判定結果に基づいて、該参照関係を有する他のオブジェクトデータを削除対象として、前記参照関係を判定する手段を再帰呼出しすることを特徴とする。
【0024】
また、本発明は、携帯端末とネットワークを介して接続されたデータ同期制御装置に、前記携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータが他のオブジェクトデータより参照されているか否かを判定する処理と、前記参照関係の判定結果に基づいて、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力する処理とを実行させるためのデータ同期制御プログラムである。
【0025】
また、本発明は、前記参照関係の判定結果が、前記他のオブジェクトデータより参照されていないことを示す場合、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力する処理を実行させるためのデータ同期制御プログラムである。
【0026】
また、本発明は、前記参照関係の判定結果が、前記他のオブジェクトデータより参照されていることを示す場合、該被参照関係を有する他のオブジェクトデータを削除対象とし、前記参照関係を判定する処理を再帰呼出しする処理を実行させるためのデータ同期制御プログラムである。
【0027】
また、本発明は、携帯端末とネットワークを介して接続されたデータ同期制御装置に、前記携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータが他のオブジェクトデータを参照しているか否かを判定する処理と、前記参照関係の判定結果に基づいて、前記携帯端末に前記削除対象のオブジェクトデータが参照している他のオブジェクトデータの削除命令を出力する処理とを実行させるためのデータ同期制御プログラムである。
【0028】
また、本発明は、前記参照関係の判定結果が、前記他のオブジェクトデータを参照していないことを示す場合、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力する処理を実行させるための請求項20に記載のデータ同期制御プログラムである。
【0029】
また、本発明は、前記参照関係の判定結果が、前記他のオブジェクトデータを参照していることを示す場合、該参照関係を有する他のオブジェクトデータを削除対象とし、前記参照関係を判定する処理を再帰呼出しする処理を実行させるためのデータ同期制御プログラムである。
【0030】
また、本発明は、前記参照関係の判定結果が、前記他のオブジェクトデータを参照していることを示す場合、該参照関係を有する他のオブジェクトデータに予め設定されるカスケードダウンロードフラグを検査し、該検査結果に基づいて、該参照関係を有する他のオブジェクトデータを削除対象として、前記参照関係を判定する処理を再帰呼出しする処理を実行させるためのデータ同期制御プログラムである。
【0031】
また、本発明は、前記参照関係の判定結果が、前記他のオブジェクトデータを参照していることを示す場合、該参照関係を有する他のオブジェクトデータに予め設定されるカスケードダウンロードフラグを検査するとともに、該オブジェクトデータが他のオブジェクトデータより参照されているか否かを判定し、前記検査結果及び判定結果に基づいて、該参照関係を有する他のオブジェクトデータを削除対象として、前記参照関係を判定する処理を再帰呼出しする処理を実行させるためのデータ同期制御プログラムである。
【0032】
【発明の実施の形態】
以下、図面を参照して、本発明のデータ同期装置の一実施形態について説明する。図1は、本実施形態のデータ同期装置(以下、シンクロナイゼーションサーバという)を適用したエンタープライズサーバシステムの構成を示す構成図である。本実施形態において、エンタープライズサーバシステム100は、複数のモバイルデバイス(携帯端末)120とネットワーク110を介して接続して構成される。
【0033】
具体的には、エンタープライズサーバシステム100は、エンタープライズサーバ102と、シンクロナイゼーションサーバ106とから構成される。
エンタープライズサーバ102は、ビジネスオブジェクトデータベース(以下、DBとする)103とアプリケーションDB104を有しており、シンクロナイゼーションサーバ106を介して、モバイルデバイス120、ビジネスオブジェクトDB103及びアプリケーションDB104間のデータ通信管理を行う。
【0034】
ビジネスオブジェクトDB103は、図2に示すような複数のビジネスオブジェクト200を格納する。ここで、ビジネスオブジェクト200とは、エンタープライズサーバ102に関連するプロパティとビジネスメソッド210とをカプセル化して定義され、カーネル層202、インテグリティ層204、インターフェイス層206、アクセス層208を有する。
カーネル層202は、ビジネスオブジェクト200と関連付けられたデータ(プロパティ)を構成する(後述する)。インテグリティ層204は、環境変数の制約条件に基づくデータ整合性チェックを行う。インターフェイス層206は、ビジネスオブジェクト200と関連付けられた、オブジェクトインターフェイス207を含む複数のメソッド、インターフェイスを定義する。アクセス層208は、ビジネスオブジェクト200へアクセスするためのモジュールを定義する。アプリケーションDB104は、エンタープライズサーバ102がモバイルデバイス120に提供するアプリケーションを格納する。
【0035】
シンクロナイゼーションサーバ106は、レプリカDB108を有しており、モバイルデバイス120、ビジネスオブジェクトDB103及びアプリケーションDB104間のデータ同期制御を行う。具体的には、シンクロナイゼーションサーバ106は、モバイルデバイス120、ビジネスオブジェクトDB103及びアプリケーションDB104間でアップロード、ダウンロードすべきデータを所定の選択条件(フィルタリングクライテリア)に基づいて判定するとともに、選択条件にヒットしたデータの参照関係、被参照関係(データ間の従属関係)、カスケードダウンロードフラグ等に基づいて、データ作成、修正、削除等のデータ操作を行う。
【0036】
レプリカDB108は、ビジネスオブジェクトDB103に格納されるビジネスオブジェクトをマスタデータとするレプリカデータを格納する。
具体的には、ビジネスオブジェクトDB103に格納されるビジネスオブジェクト(A〜B)は、図3に示すように、1のキーと複数のデータフィールドとから構成されるが、上述したように、携帯端末のユーザにとっては冗長なデータフィールド部分を有している。したがって、これら冗長なデータフィールド全体をすべて携帯端末に送信すると、携帯端末のメモリ容量を圧迫するため、送信データを最適化する必要がある。
このため、レプリカDB108は、シンクロナイゼーションサーバ106のデータ同期制御の基、図4、5に示すように、選択条件にヒットした各ビジネスオブジェクトより必要なデータフィールドのみを抽出し、参照関係を有するビジネスオブジェクト間でデータフィールドの置換をしたシンクロナイゼーションビジネスオブジェクトA〜C(以下、SyncBO:シンクBOと呼ぶ)を格納する(後述する)。
【0037】
次に、図面を参照して、本実施形態のシンクロナイゼーションサーバ106の動作について説明する。本実施形態のシンクロナイゼーションサーバ106は、モバイルデバイス120、ビジネスオブジェクトDB103及びアプリケーションDB104間のデータ同期制御を行うが、まずデータ同期制御として、カスケードダウンロード処理について説明し、次に、カスケードダウンロードされたシンクBOに関わるカスケード削除処理について説明する。
【0038】
図6は、本実施形態のシンクロナイゼーションサーバ106によるカスケードダウンロード処理の過程を示すフローチャートである。
シンクロナイゼーションサーバ106は、エンタープライズサーバ102において、ビジネスオブジェクトDB103、アプリケーションDB104に格納しているビジネスオブジェクト200が定期的に追加、削除、修正等のデータ更新されると、レプリカDB108においても、この更新データを受信する。
すなわち、図7に示すように、タイプ(種類)が、「国」、「顧客」、「セールスオーダー」のビジネスオブジェクト200のインスタンスをエンタープライズサーバ102から受信すると(図6のステップ400)、シンクロナイゼーションサーバ106は、各シンクBOにシンクキー(同期用キー情報)を発行し、レプリカDB108において、受信した各インスタンスと紐付けて格納する。
【0039】
例えば、タイプが「国」であるシンクBO510(SyncBO ID:510)において、国IDが「US」、国名が「米国」のビジネスオブジェクトインスタンス512に、「1000000001」のシンクキー511が発行され、紐付けられる。ビジネスオブジェクトインスタンス514、516、518にも、同様に、シンクキー513、515、517を発行して紐付けておく。
また、タイプが「顧客」であるシンクBO520(SyncBO ID:520)において、顧客IDが「101」、顧客名が「Brawn」、国IDが「US」のビジネスオブジェクトインスタンス522に、「1000000005」のシンクキー521が発行され、紐付けられる。ビジネスオブジェクトインスタンス524、526にも、同様に、シンクキー523、525を発行して紐付けておく。
さらに、タイプが「セールスオーダー」であるシンクBO530(SyncBO ID:530)において、顧客IDが「101」、配送日が「2003/04/23」のビジネスオブジェクトインスタンス532に、「1000000008」のシンクキー531が発行され、紐付けられる。ビジネスオブジェクトインスタンス534、536にも、同様に、シンクキー533、535を発行して紐付けておく。
【0040】
ここで、図7に示すように、シンクBO530のデータエレメント「顧客ID」は、シンクBO520のデータエレメント「顧客ID」とのデータ参照関係を有しており(矢印550を参照)、逆にシンクBO520のデータエレメント「顧客ID」は、シンクBO530のデータエレメント「顧客ID」とのデータ被参照関係を有している。
同様に、シンクBO520のデータエレメント「国ID」は、シンクBO510のデータエレメント「国ID」とのデータ参照関係を有しており(矢印552を参照)、逆にシンクBO510のデータエレメント「顧客ID」は、シンクBO520のデータエレメント「国ID」とのデータ被参照関係を有している。
本明細書中では、このシンクBO間のデータ参照関係・被参照関係(従属関係・被従属関係)を「親子関係(parent−child)と定義する。
【0041】
次に、シンクロナイゼーションサーバ106は、予め設定された選択条件(どのモバイルデバイスに対して、レプリカDB108内のどのシンクBOのインスタンスをダウンロードするかを示す)に基づいて、レプリカDB108を検索し、ダウンロードすべき1または複数のインスタンスをリストとして抽出する。以下、抽出されたシンクBOのインスタンスをダウンロード候補オブジェクトのインスタンスという。
シンクロナイゼーションサーバ106は、このダウンロード候補オブジェクトのリストを読み込み、すべてのダウンロード候補オブジェクトのインスタンスに対して、逐次、再帰的にデータ参照関係/被参照関係を検査する。
ここで、ダウンロード候補オブジェクトの再帰的な検査とは、現在検査対象となっているダウンロード候補オブジェクトが、他のオブジェクトデータ(必ずしもダウンロード候補オブジェクトである必要はない)とデータ参照関係/被参照関係を有している場合は、当該他のオブジェクトデータを現在の検査対象として、さらに、データ参照関係/被参照関係の検査を繰り返すことをいう。
【0042】
すなわち、シンクロナイゼーションサーバ106は、まず1のダウンロード候補オブジェクトのインスタンスを選択し(ステップS420)、親方向のデータ参照関係を検査して、該当するオブジェクトデータのインスタンスの探索を行う(ステップS420)。
例えば、図7に示すように、インスタンス532のデータエレメント「顧客ID:101」は、インスタンス522のデータエレメント「顧客ID:101」と参照関係を有しており、かつ、インスタンス522のデータエレメント「国ID:US」は、インスタンス512のデータエレメント「国ID:US」と参照関係を有していることから、シンクロナイゼーションサーバ106は、ダウンロード候補オブジェクトとしてインスタンス532が選択された場合、まずデータエレメント「顧客ID:101」と参照関係を有するインスタンス522のデータエレメント「顧客ID:101」を探索する。そして、シンクロナイゼーションサーバ106は、インスタンス522を現在の検査対象とした後、再帰的に探索処理を実行する。この場合、シンクロナイゼーションサーバ106は、さらに、データエレメント「国ID:US」と参照関係を有するインスタンス512のデータエレメント「国ID:US」を探索する。
【0043】
次に、シンクロナイゼーションサーバ106は、インスタンス532に関する参照官憲の探索の結果、抽出されたインスタンス512、522を参照関係の階層レベルの降順(または昇順)に整列する(ステップS430)。降順に整列した場合、ダウンロード候補オブジェクトのインスタンスは、参照関係の階層レベルにおいて親方向に最も高順位に定義されるインスタンス512から子方向にインスタンス522、532へ並べ替えられる。
そして、シンクロナイゼーションサーバ106は、まずカスケードダウンロード対象であるインスタンス512、522をこの並び順にモバイルデバイス120に対して送信する(ステップS440)。これらカスケードダウンロード対象インスタンスの送信処理完了後、シンクロナイゼーションサーバ106は、さらに、ダウンロード候補オブジェクトとして原始的に選択されているインスタンス532をモバイルデバイス120に対して送信する(ステップS450)。
このように、シンクロナイゼーションサーバ106は、被参照関係を有する他のインスタンスを送信した後、参照関係を有するインスタンスをモバイルデバイスに対して送信することで、モバイルデバイス120内のメモリにおいて、参照データが存在しないといったデータミスの発生を防止することが出来る効果が得られる。
【0044】
同様にして、インスタンス534が選択された場合も(ステップS410)、探索の結果、インスタンス524、514が抽出され(ステップS420)、降順に並べ替えられて(ステップS430)、被参照関係を有するカスケードダウンロード対象インスタンス524、514の送信処理完了後(ステップS440)、ダウンロード候補オブジェクトとして、インスタンス534が送信処理される。
【0045】
図8に、レプリカDB108より抽出され、モバイルデバイス120に送信されるオブジェクトデータを示す。
レプリカDB108において、各インスタンス512、514、516、518、522、524、526、532、534、536は、それぞれシンクキー511、513、515、517、521、523、525、531、533、535を用いて統一的に識別されることから、インスタンス532、534のデータエレメント「顧客ID」は、シンクキー521、523(図8に示すシンクキー621、623と対応する)に置換されるとともに、インスタンス522、524のデータエレメント「国ID」は、シンクキー511、513(図8に示すシンクキー611、613と対応する)に置換される。
これにより、データオブジェクト間の参照関係/被参照関係を保ったまま、必要最低限のインスタンスを抽出することができ、送信データを最適化することが出来る効果が得られる。
【0046】
上述の置換操作、データ参照関係/被参照関係の探索結果は、シンクロナイゼーションサーバ106において、図9〜図11に示す管理テーブルT1〜T3に格納され、後述するカスケード削除時に参照される。
図9は、各インスタンスの状態管理テーブルT1である。
各インスタンスは、送信先のモバイルデバイスの識別子(Mobile ID)シンクBOの識別子(SyncBO ID)、シンクキー(SyncKey)で識別され、さらに、各インスタンスが格納する各データエレメントが当該インスタンスの構造識別子(Structure ID)で識別される。
例えば、モバイルデバイス120において、インスタンス632の顧客ID「1000000005」や配送日「2003/04/23」というデータエレメントは、シンクキーと構造識別子の組み合わせで識別する。
【0047】
インスタンスの識別子は3種類存在する。
エンタプライズサーバ102において、各インスタンスは、エンタプライズサーバキー(Key on Enterprise Server)で一意に識別される。また、シンクロナイゼーションサーバ106において、各インスタンスは、モバイルデバイス非依存に発行・管理されるシンクキー(グローバルシンクキー)で一意に識別される。さらに、モバイルデバイス120において、各インスタンスは、モバイルIDとモバイルデバイス依存のシンクキー(ローカルシンクキー)とを組み合わせて、一意に識別される。
【0048】
シンクロナイザーションサーバ106は、アクセス先(エンタプライズサーバ102のビジネスオブジェクトDB103及びアプリケーションDB104、シンクロナイゼーションサーバ106のレプリカDB108、モバイルデバイス120)に応じて、これら3種類のインスタンスの識別子を使い分ける。
すなわち、シンクロナイザーションサーバ106は、ビジネスオブジェクトDB103及びアプリケーションDB104に格納されたインスタンスにアクセスする場合、エンタプライズサーバキーを使用してインスタンスを指定する。
また、レプリカDB108に格納されたインスタンスにアクセスする場合、シンクロナイザーションサーバ106は、グローバルシンクキーを使用してインスタンスを指定する。
また、モバイルデバイス120に格納されたインスタンスにアクセスする場合、シンクロナイザーションサーバ106は、モバイルIDとローカルシンクキーを使用してインスタンスを指定する。
さらに、インスタンス間に参照・被参照関係が存在する場合、シンクロナイザーションサーバ106は、参照元インスタンス及び参照先インスタンスを結びつける識別子として、同様に、上記3種類の識別子を使用する。
【0049】
インスタンス511〜535は、図10に示すテーブルT2のフィールド「Data String」に格納され、シンクBO(セールスオーダー)530とシンクBO(顧客)520間には、フィールド「顧客ID」を外部キーとしてリレーションがあらかじめ定義されている。
具体的には、インスタンス531の顧客IDは、エンタプライズサーバキーとして、「101」の値を持ち、同様に、インスタンス521のフィールド顧客IDも、インスタンス531の顧客IDと同一の「101」の値を持つことで、インスタンス521と531間の参照・被参照関係(リレーション)が確定する。
【0050】
モバイルデバイス120において、この参照・被参照関係は、インスタンス531のダウンロード時に、シンクロナイゼーションサーバ106がフィールド顧客IDの値をエンタプライズサーバキーである「101」からシンクキーである「1000000005」という値に変換することで維持される(インスタンス631参照)。
なお、ローカルシンクキーは、インスタンスがモバイルデバイス120で新規登録された場合のみ、各モバイルデバイス120専用に定義された番号範囲で採番された値が割り当てられる。モバイルデバイス120において割り当てられたローカルシンクキーと紐付けられたインスタンスは、シンクロナイゼーションサーバ106へのデータ登録時にグローバルシンクキーが割り当てられ、以後、同様に、エンタプライズサーバキー、グローバルシンクキー、モバイルIDとローカルシンクキーとの組み合わせのいずれかを利用して一意に識別される。
したがって、モバイルデバイス120は、シンクロナイゼーションサーバ106が管理するグローバルシンクキーの割当可能範囲の制限を受けずに、モバイルIDとローカルシンクキーとの組み合わせで各インスタンスを識別管理できる効果が得られる。
【0051】
シンクロナイゼーションサーバ106は、以上の識別情報を参照関係の探索時において各オブジェクトデータから取得し、送信処理時に最新のダウンロード処理実行時のタイムスタンプと、最新のダウンロード処理のタイプ(追加、修正、削除、リセット)と、カスケードダウンロード処理の有無を示すカスケードダウンロードフラグの有効/無効(On/Off)とをテーブルT1に格納する。
【0052】
また、シンクロナイゼーションサーバ106は、図10に示す各インスタンスの状態管理テーブルT2において、さらに、当該データエレメントの作成日時に関するタイムスタンプ及び最終更新履歴に関するタイムスタンプと、データ列(Data String)と、シンクBOに関連付けられた選択条件(Filter Field1〜3)とを管理する。
さらに、シンクロナイゼーションサーバ106は、図11に示す各インスタンスの状態管理テーブルT3において、さらに、上述したデータ参照関係/被参照関係ごとに、当該モバイルデバイスに格納されているオブジェクトデータの親子関係として、それぞれ親のシンクBO(Parent SyncBO)、シンクキー(Parent SyncKey)、構造識別子(Parent Structure ID)の組み合わせと、子のシンクBO(Child SyncBO)、シンクキー(Child SyncKey)、構造識別子(Child Structure ID)の組み合わせとの間で対応関係を定義し、管理する。
また、シンクロナイゼーションサーバ106は、必要に応じて、図12に示す管理テーブルT4において、各データオブジェクト間で定義される親子関係の組み合わせ毎に、カスケードダウンロード処理の許可/不許可を設定するようにしてもよい。
【0053】
以上のカスケードダウンロード処理により、本実施形態のシンクロナイゼーションサーバを適用したエンタープライズサーバシステムにおいて、モバイルデバイスへ送信するデータ量を削減することが出来るとともに、モバイルデバイス内におけるデータミスを防止することが出来る。
【0054】
次に、カスケードダウンロードされたシンクBOに関わるカスケード削除処理について説明する。
図13は、本実施形態のシンクロナイゼーションサーバ106によるカスケードダウンロード及びカスケード削除のメイン処理の過程を示すフローチャートである。
シンクロナイゼーションサーバ106は、上述したカスケードダウンロード処理実行時において(図13のステップS700〜S703)、カスケードダウンロード処理完了毎に(ステップS704でYes)、現在処理対象のオブジェクトデータに関するカスケードダウンロードデータ(テーブルT1〜T4を参照)を出力するとともに(ステップs705)、現在処理対象のオブジェクトデータに関するダウンロードデータを出力する。
当該ダウンロードデータには、カスケードダウンロードによってダウンロードされるデータ及び選択条件にヒットしたことをトリガとしてダウンロードされるデータがすべて含まれる。
【0055】
この処理の流れを図14のフローチャートを用いて説明する。ステップS703において、カスケードダウンロードプロセスが呼び出されると、シンクロナイゼーションサーバ106は、まず現在処理対象のオブジェクトデータに親のオブジェクトデータが存在するか否かを状態管理テーブルT1の親のシンクキー及び構造識別子のフィールドの有無を検査することで判定する(図14のステップS800)。
親のオブジェクトデータが存在する場合(ステップS800でYes)、シンクロナイゼーションサーバ106は、この親のオブジェクトデータを読み込む(ステップS801)。
読み込んだ親のオブジェクトデータの状態管理テーブルT2を検査することで、このオブジェクトデータが既にモバイルデバイス120にダウンロードされていると判定した場合(ステップS802でYes)、シンクロナイゼーションサーバ106は、最初に処理対象であったオブジェクトデータと、読み込んだ親のオブジェクトデータとの親子関係をメモリ内に割り当てられた参照データワークエリアに一時格納する(ステップS803)。
【0056】
読み込んだ親のオブジェクトデータがモバイルデバイス120にダウンロードされていないと判定した場合(ステップS802でNo)、シンクロナイゼーションサーバ106は、さらに、この親のオブジェクトデータについて、管理テーブルT4を検査して、カスケードダウンロードが許可されているか否かを判定する(ステップS804)。
この親のオブジェクトデータについて、カスケードダウンロードが許可されていない場合(ステップS804でNo)、シンクロナイゼーションサーバ106は、ワークエリアをクリアし(ステップS805)、カスケードダウンロード処理に失敗したことを示すメッセージを返して(ステップS806)、プロセスを終了する。
一方、この親のオブジェクトデータについて、カスケードダウンロードが許可されている場合(ステップS804でYes)、シンクロナイゼーションサーバ106は、このオブジェクトデータをメモリ内に割り当てられたダウンロード用のワークエリアに一時格納するとともに(ステップS807)、最初に処理対象であったオブジェクトデータと、読み込んだ親のオブジェクトデータとの親子関係をメモリ内に割り当てられた参照データワークエリアに一時格納する(ステップS808)。
【0057】
ダウンロード用のワークエリアにオブジェクトデータを格納し、参照データワークエリアに親子関係を示す参照データを格納後、シンクロナイゼーションサーバ106は、処理対象を親のオブジェクトデータとして(ステップS809)、カスケードダウンロードプロセスを再帰呼出しする(ステップS810)。これにより、再度、ステップS800〜810の処理ルーチンが繰り返し実行され、現在のオブジェクトデータについて、親のオブジェクトデータが存在しなくなると(ステップS800でNo)、このルーチンから抜けて、当該時点におけるダウンロード用のワークエリアに格納されたオブジェクトデータをモバイルデバイス120にダウンロードするとともに(ステップS820)、参照データワークエリアに格納された参照データをレプリカDB108内のテーブルT1〜T4に格納する(ステップS821)。
【0058】
そして、シンクBOの定期更新において、選択条件が更新された場合、シンクロナイゼーションサーバ106は、再度、モバイルデバイス120、ビジネスオブジェクトDB103及びアプリケーションDB104間のデータ同期制御を行い、必要に応じて、カスケードダウンロード処理が実行される。
すなわち、シンクロナイゼーションサーバ106は、上述したダウンロード公報オブジェクトのリストを読み込み(ステップS700)、読み込むオブジェクトが存在すれば(ステップs701でYes)、現在の処理対象オブジェクトが更新後の選択条件に合致するか否かを判定する(ステップS702)。
【0059】
そして、シンクロナイゼーションサーバ106は、現在の処理対象オブジェクトが更新後の選択条件に合致しなくなった場合、状態管理テーブルT1〜T4において、このオブジェクトが過去にモバイルデバイス120にダウンロードされているか否か(または、ダウンロードされた後、既に削除されているか否か)を現在時刻と、最新のダウンロード処理実行時のタイムスタンプとを比較し、最新のダウンロード処理のタイプ(追加、修正、削除、リセット)を検査することで判定する(ステップS710)。
そして、当該判定結果により、更新後の選択条件に合致しなくなったオブジェクトデータがモバイルデバイス120にダウンロードされた状態であることが認識されると、シンクロナイゼーションサーバ106は、カスケード削除処理を開始する。
【0060】
この処理の流れを図15のフローチャートを用いて説明する。ステップS711において、カスケード削除プロセスが呼び出されると、シンクロナイゼーションサーバ106は、まず現在処理対象のオブジェクトデータ、つまり、携帯端末が格納する複数のオブジェクトデータのうち、削除対象となった現在の処理対象のオブジェクトデータが他のオブジェクトデータより参照されているか否かを子のオブジェクトデータの有無により判定し、判定結果に基づいて、携帯端末に削除対象のオブジェクトデータの削除命令を出力する。
すなわち、シンクロナイゼーションサーバ106は、現在の処理対象のオブジェクトデータを親のシンクキー及び構造識別子とする状態管理テーブルT3において、子のシンクキー及び構造識別子のフィールドの有無を検査することで、子のオブジェクトデータの有無を判定する(図15のステップS900)。
【0061】
状態管理テーブルT3において、子のオブジェクトデータが存在する場合(ステップS900でYes)、シンクロナイゼーションサーバ106は、この子のオブジェクトデータを読み込む(ステップS901)。そして、シンクロナイゼーションサーバ106は、状態管理テーブルT3において、この子のオブジェクトデータから現在の処理対象のオブジェクトデータへの参照データを削除する(ステップS902)。
参照データの削除後、シンクロナイゼーションサーバ106は、処理対象を子のオブジェクトデータとして(ステップS903)、子オブジェクトのカスケード削除プロセスを再帰呼出しする(ステップS904)。これにより、再度、ステップS900〜904の処理ルーチンが繰り返し実行され、現在のオブジェクトデータについて、子のオブジェクトデータが存在しなくなると(ステップS900でNo)、このルーチンから抜けて、現在処理対象(削除対象)のオブジェクトデータの削除命令を実行する(ステップS905)。
【0062】
すなわち、シンクロナイゼーションサーバ106は、現在処理対象(削除対象)のオブジェクトデータの削除命令を該当するモバイルデバイス120に対して出力する(図16のステップS1000)。
そして、シンクロナイゼーションサーバ106は、現在処理対象のオブジェクトデータ、つまり、携帯端末が格納する複数のオブジェクトデータのうち、削除対象となった現在の処理対象のオブジェクトデータが他のオブジェクトデータを参照しているか否かを親のオブジェクトデータの有無により判定し、判定結果に基づいて、携帯端末に削除対象のオブジェクトデータの削除命令を出力する。
すなわち、シンクロナイゼーションサーバ106は、現在の処理対象のオブジェクトデータを子のシンクキー及び構造識別子とする状態管理テーブルT3を検索し、該当するテーブルがあれば、さらに、当該テーブルにおける親のシンクキー及び構造識別子のフィールドの有無を検査することで、子のオブジェクトデータの有無を判定する(ステップS1001)。
【0063】
状態管理テーブルT3において、親のオブジェクトデータが存在する場合(ステップS1001でYes)、シンクロナイゼーションサーバ106は、この親のオブジェクトデータを読み込む(ステップS1002)。そして、シンクロナイゼーションサーバ106は、状態管理テーブルT3において、この親のオブジェクトデータから現在の処理対象のオブジェクトデータへの参照データを削除する(ステップS1003)。
参照データの削除後、シンクロナイゼーションサーバ106は、現在の処理対象のオブジェクトデータと参照関係を有していた、この親のオブジェクトデータに対して、カスケードダウンロード時に設定されるカスケードダウンロードフラグを検査して、この親のデータオブジェクトがカスケードダウンロードされたオブジェクトデータであるか否かを判定する(ステップS1004)。
この親オブジェクトがカスケードダウンロードされたオブジェクトデータである場合、シンクロナイゼーションサーバ106は、さらに、この親のオブジェクトデータが他のオブジェクトデータより参照されているか否かを判定する。
【0064】
すなわち、シンクロナイゼーションサーバ106は、この親のオブジェクトデータを親のシンクキー及び構造識別子とする他の状態管理テーブルT3を検索し、該当するテーブルがあれば、さらに、当該テーブルにおける子のシンクキー及び構造識別子のフィールドの有無を検査することで、子のオブジェクトデータの有無を判定する(ステップS1005)。
該当する他の状態管理テーブルT3が存在しない場合(ステップS1005でNo)、カスケードダウンロード処理によって、ダウンロード選択された当該親のオブジェクトデータは、不必要であるとともに、モバイルデバイス120のメモリ圧迫の要因となるため、シンクロナイゼーションサーバ106は、参照関係を有する親のオブジェクトデータを処理対象(削除対象)として(ステップS1006)、親オブジェクトのカスケード削除プロセスを再帰呼出しする(ステップS1007)。
これにより、再度、ステップS1001〜1007の処理ルーチンが繰り返し実行され、現在のオブジェクトデータについて、親のオブジェクトデータが存在しなくなると(ステップS1001でNo)、このルーチンから抜けて、カスケード削除処理を終了する。
【0065】
以上のカスケード削除処理により、本実施形態のシンクロナイゼーションサーバを適用したエンタープライズサーバシステムにおいて、カスケードダウンロード処理の有無を考慮して、モバイルデバイス120のメモリ内に格納されたオブジェクトデータ間の参照関係/被参照関係に基づいて、データの必要性を考慮し、削除するデータを適切に選択し、削除することが出来る効果が得られる。
したがって、モバイルデバイス120のメモリ領域を有効活用することが出来るため、メモリ等のハードウェアコストの削減にもつながるという効果が得られる。
【0066】
なお、本実施形態においては、図15のステップS904において、子オブジェクトのカスケード削除プロセスを再帰呼出しする例を示し、特にループ回数については言及しなかったが、本発明はこれに限られるものではなく、実装効率の観点から、子オブジェクトのカスケード削除プロセスの再帰呼出しを一定数以下に制限するようにしてもよい。この場合、シンクロナイゼーションサーバ106は、図6に示すステップS430において、探索でヒットしたBOインスタンスの分類・整列方向を予め一定方向、例えば、BOインスタンスの参照・被参照関係に基づく上流方向(親オブジェクト)から下流方向(子オブジェクト)という形に設定しておく。
【0067】
そして、図7のステップS711において、カスケード削除プロセスが呼び出されると、シンクロナイゼーションサーバ106は、図15のステップS900〜ステップS904において、同様に、カスケード削除処理を行った後、子オブジェクトのカスケード削除プロセスを再帰呼出しする。このとき、シンクロナイゼーションサーバ106は、子オブジェクトのカスケード削除プロセスの再帰呼出し回数をカウントしておく。ここでは、再帰呼出し回数が1インクリメントされて、再帰呼出し回数1がカスケード削除プロセスに割り当てられたメモリ空間に格納される。
ステップS904において、カスケード削除プロセスが再帰呼び出されると、シンクロナイゼーションサーバ106は、さらに、図15のステップS900〜ステップS902を繰り返し実行する。そして、S902において、カスケード削除処理を行った後、シンクロナイゼーションサーバ106は、メモリに書き込まれた子オブジェクトのカスケード削除プロセスの再帰呼出し制限回数をチェックし、制限回数を超えていなければ、子オブジェクトのカスケード削除プロセスを再帰呼出しする(ステップS903、S904)。一方、制限回数を越えている場合、子オブジェクトのカスケード削除プロセスの再帰呼出しを行わない。
【0068】
したがって、例えば、子オブジェクトのカスケード削除プロセスの再帰呼出し制限回数を1にセットしておけば、ループ処理時間及びシステムリソースの削減ができる効果が得られる。
また、このように、子オブジェクトのカスケード削除プロセスの再帰呼出し回数を制限しても、さらに、ステップS1000〜S1007において、親オブジェクトのカスケード削除プロセスを繰り返し再帰呼出しすることで、回数制限が無い場合と同様に、すべての削除対象オブジェクトを選択することができる効果が得られる。
【0069】
上述のエンタープライズサーバ102、シンクロナイゼーションサーバ106、モバイルデバイス120は、内部に、コンピュータシステムを有している。
そして、上述したカスケードダウンロード処理、カスケード削除処理に関する一連の処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。
すなわち、エンタープライズサーバ102、シンクロナイゼーションサーバ106、モバイルデバイス120における、各処理手段、処理部は、CPU等の中央演算処理装置がROMやRAM等の主記憶装置に上記プログラムを読み出して、情報の加工・演算処理を実行することにより、実現されるものである。
ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【0070】
【発明の効果】
以上説明したように、本発明は、携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータにおける他のオブジェクトデータからの参照関係/被参照関係の有無を判定して、携帯端末にオブジェクトデータの削除命令を出力するので、データベースシステムと携帯端末間において、効率的にデータ同期処理を行うことができる効果が得られる。
【図面の簡単な説明】
【図1】 エンタープライズサーバシステムの構成図。
【図2】 ビジネスオブジェクト200の機能階層の構造図。
【図3】 ビジネスオブジェクト200のデータ構造図。
【図4】 シンクBOのデータ構造図。
【図5】 シンクBOのデータ構造及び参照関係図。
【図6】 カスケードダウンロード処理のフローチャート。
【図7】 レプリカDB108のデータ構造図。
【図8】 モバイルデバイス120へのダウンロードデータの構造図。
【図9】 状態管理テーブルT1のテーブル構成図。
【図10】 状態管理テーブルT2のテーブル構成図。
【図11】 状態管理テーブルT3のテーブル構成図。
【図12】 管理テーブルT4のテーブル構成図。
【図13】 カスケードダウンロード及びカスケード削除のメイン処理のフローチャート。
【図14】 カスケードダウンロード処理のフローチャート。
【図15】 子オブジェクトのカスケード削除処理のフローチャート。
【図16】 親オブジェクトのカスケード削除処理のフローチャート。
【符号の説明】
100…エンタープライズサーバシステム
102…エンタープライズサーバ
103…ビジネスオブジェクトDB
104…アプリケーションDB
106…シンクロナイゼーションサーバ(データ同期装置)
108…レプリカDB
110…ネットワーク
120−1〜120−3、n…モバイルデバイス(携帯端末)
200…ビジネスオブジェクト
202…カーネル層
204…インテグリティ層
202…インターフェイス層
207…オブジェクトインターフェイス
208…アクセス層
210…ビジネスオブジェクトメソッド
510、520、530…シンクBO
511、513、515、517、521、523、525、531、533、535、611、613、621、623、631、633…シンクキー
512、514、516、518、522、524、526、532、534、536、612、614、622、624、632、634…インスタンス
T1〜T4…状態管理テーブル、管理テーブル
Claims (24)
- 携帯端末とネットワークを介して接続されたデータ同期制御装置であるとともに、データベースと前記携帯端末との間でデータの同期制御をするデータ同期制御装置において、
前記携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータが他のオブジェクトデータより参照されているか否かを判定する参照関係判定手段と、
前記参照関係判定手段の判定結果に基づいて、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力するデータ削除手段と、
前記データベースに格納されているオブジェクトデータをマスタデータとするレプリカデータを格納するレプリカDBと
を具備し、
前記データベースに格納されているオブジェクトデータは、1つのキーと複数のデータフィールドとから構成されており、前記携帯端末からみて冗長なデータフィールド部分を有しており、
前記レプリカDBは、前記データベースに格納されている複数のオブジェクトデータのうちで所定の選択条件にヒットしたオブジェクトデータを選択し、該選択されたオブジェクトデータから前記携帯端末からみて必要なデータフィールドのみを抽出し、さらに、該選択された複数のオブジェクトデータのなかで参照関係を有するオブジェクトデータ間でデータフィールドの置換をして構成されたシンクロナイゼーションオブジェクトデータを格納しており、
前記データの同期制御の一つとして、前記レプリカDBに格納されたシンクロナイゼーションオブジェクトデータを前記携帯端末に送信するダウンロード処理手段をさらに有し、
前記データフィールドの置換は、前記データフィールドの構成要素のIDを、前記参照関係を有する他のオブジェクトデータのシンクキーに置換することであり、
前記シンクキーは、前記1つのキーに対応するものであって、前記データフィールドのそれぞれに紐付けられているものであることを特徴とするデータ同期制御装置。 - 前記参照関係判定手段の判定結果が前記削除対象のオブジェクトデータが他のオブジェクトデータより参照されていないことを示す場合、前記データ削除手段は、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力する
ことを特徴とする請求項1に記載のデータ同期制御装置。 - 前記参照関係判定手段の判定結果が前記削除対象のオブジェクトデータが他のオブジェクトデータより参照されていることを示す場合、前記データ削除手段は、該被参照関係を有する他のオブジェクトデータを削除対象とし、前記参照関係判定手段を再帰呼出しする
ことを特徴とする請求項1に記載のデータ同期制御装置。 - 携帯端末とネットワークを介して接続されたデータ同期制御装置であるとともに、データベースと前記携帯端末との間でデータの同期制御をするデータ同期制御装置において、
前記携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータが他のオブジェクトデータを参照しているか否かを判定する参照関係判定手段と、
前記参照関係判定手段の判定結果に基づいて、前記携帯端末に前記削除対象のオブジェクトデータが参照している他のオブジェクトデータの削除命令を出力するデータ削除手段と、
前記データベースに格納されているオブジェクトデータをマスタデータとするレプリカデータを格納するレプリカDBと
を具備し、
前記データベースに格納されているオブジェクトデータは、1つのキーと複数のデータフィールドとから構成されており、前記携帯端末からみて冗長なデータフィールド部分を有しており、
前記レプリカDBは、前記データベースに格納されている複数のオブジェクトデータのうちで所定の選択条件にヒットしたオブジェクトデータを選択し、該選択されたオブジェクトデータから前記携帯端末からみて必要なデータフィールドのみを抽出し、さらに、該選択された複数のオブジェクトデータのなかで参照関係を有するオブジェクトデータ間でデータフィールドの置換をして構成されたシンクロナイゼーションオブジェクトデータを格納しており、
前記データの同期制御の一つとして、前記レプリカDBに格納されたシンクロナイゼーションオブジェクトデータを前記携帯端末に送信するダウンロード処理手段をさらに有し、
前記データフィールドの置換は、前記データフィールドの構成要素のIDを、前記参照関係を有する他のオブジェクトデータのシンクキーに置換することであり、
前記シンクキーは、前記1つのキーに対応するものであって、前記データフィールドのそれぞれに紐付けられているものであることを特徴とするデータ同期制御装置。 - 前記参照関係判定手段の判定結果が前記削除対象のオブジェクトデータが他のオブジェクトデータを参照していないことを示す場合、前記データ削除手段は、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力する
ことを特徴とする請求項4に記載のデータ同期制御装置。 - 前記参照関係判定手段の判定結果が前記削除対象のオブジェクトデータが他のオブジェクトデータを参照していることを示す場合、前記データ削除手段は、該参照関係を有する他のオブジェクトデータを削除対象とし、前記参照関係判定手段を再帰呼出しする
ことを特徴とする請求項4に記載のデータ同期制御装置。 - 前記参照関係判定手段の判定結果が前記削除対象のオブジェクトデータが他のオブジェクトデータを参照していることを示す場合、前記データ削除手段は、該参照関係を有する他のオブジェクトデータに予め設定されるカスケードダウンロードフラグを検査し、該検査結果に基づいて、該参照関係を有する他のオブジェクトデータを削除対象として、前記参照関係判定手段を再帰呼出しする
ことを特徴とする請求項4に記載のデータ同期制御装置。 - 前記参照関係判定手段の判定結果が前記削除対象のオブジェクトデータが他のオブジェクトデータを参照していることを示す場合、前記データ削除手段は、該参照関係を有する他のオブジェクトデータに予め設定されるカスケードダウンロードフラグを検査するとともに、該オブジェクトデータが他のオブジェクトデータより参照されているか否かを判定し、前記検査結果及び判定結果に基づいて、該参照関係を有する他のオブジェクトデータを削除対象として、前記参照関係判定手段を再帰呼出しする
ことを特徴とする請求項4に記載のデータ同期制御装置。 - 携帯端末とネットワークを介して接続されたデータ同期制御方法であるとともに、データベースと前記携帯端末との間でデータの同期制御をするデータ同期制御方法において、
前記携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータが他のオブジェクトデータより参照されているか否かを判定する処理と、
該判定結果に基づいて、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力する処理と、
前記データベースに格納されているオブジェクトデータをマスタデータとするレプリカデータをレプリカDBに格納する処理とを有し、
前記データベースに格納されているオブジェクトデータは、1つのキーと複数のデータフィールドとから構成されており、前記携帯端末からみて冗長なデータフィールド部分を有しており、
前記レプリカDBに格納する処理は、前記データベースに格納されている複数のオブジェクトデータのうちで所定の選択条件にヒットしたオブジェクトデータを選択し、該選択されたオブジェクトデータから前記携帯端末からみて必要なデータフィールドのみを抽出し、さらに、該選択された複数のオブジェクトデータのなかで参照関係を有するオブジェクトデータ間でデータフィールドの置換をして構成されたシンクロナイゼーションオブジェクトデータを前記レプリカDBに格納する処理を有し、
前記データの同期制御の一つとして、前記レプリカDBに格納されたシンクロナイゼーションオブジェクトデータを前記携帯端末に送信するダウンロード処理をさらに有し、
前記データフィールドの置換は、前記データフィールドの構成要素のIDを、前記参照関係を有する他のオブジェクトデータのシンクキーに置換することであり、
前記シンクキーは、前記1つのキーに対応するものであって、前記データフィールドのそれぞれに紐付けられているものであることを特徴とするデータ同期制御方法。 - 前記参照関係の判定結果が、他のオブジェクトデータより参照されていないことを示す場合、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力する
ことを特徴とする請求項9に記載のデータ同期制御方法。 - 前記参照関係の判定結果が、他のオブジェクトデータより参照されていることを示す場合、該被参照関係を有する他のオブジェクトデータを削除対象とし、前記参照関係を判定する手段を再帰呼出しする
ことを特徴とする請求項9に記載のデータ同期制御方法。 - 携帯端末とネットワークを介して接続されたデータ同期制御方法であるとともに、データベースと前記携帯端末との間でデータの同期制御をするデータ同期制御方法において、
前記携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータが他のオブジェクトデータを参照しているか否かを判定する処理と、
該判定結果に基づいて、前記携帯端末に前記削除対象のオブジェクトデータが参照している他のオブジェクトデータの削除命令を出力する処理と、
前記データベースに格納されているオブジェクトデータをマスタデータとするレプリカデータをレプリカDBに格納する処理とを有し、
前記データベースに格納されているオブジェクトデータは、1つのキーと複数のデータフィールドとから構成されており、前記携帯端末からみて冗長なデータフィールド部分を有しており、
前記レプリカDBに格納する処理は、前記データベースに格納されている複数のオブジェクトデータのうちで所定の選択条件にヒットしたオブジェクトデータを選択し、該選択されたオブジェクトデータから前記携帯端末からみて必要なデータフィールドのみを抽出し、さらに、該選択された複数のオブジェクトデータのなかで参照関係を有するオブジェクトデータ間でデータフィールドの置換をして構成されたシンクロナイゼーションオブジェクトデータを前記レプリカDBに格納する処理を有し、
前記データの同期制御の一つとして、前記レプリカDBに格納されたシンクロナイゼーションオブジェクトデータを前記携帯端末に送信するダウンロード処理をさらに有し、
前記データフィールドの置換は、前記データフィールドの構成要素のIDを、前記参照関係を有する他のオブジェクトデータのシンクキーに置換することであり、
前記シンクキーは、前記1つのキーに対応するものであって、前記データフィールドのそれぞれに紐付けられているものであることを特徴とするデータ同期制御方法。 - 前記参照関係の判定結果が、前記他のオブジェクトデータを参照していないことを示す場合、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力する
ことを特徴とする請求項12に記載のデータ同期制御方法。 - 前記参照関係の判定結果が、前記他のオブジェクトデータを参照していることを示す場合、該参照関係を有する他のオブジェクトデータを削除対象とし、前記参照関係を判定する手段を再帰呼出しする
ことを特徴とする請求項12に記載のデータ同期制御方法。 - 前記参照関係の判定結果が、前記他のオブジェクトデータを参照していることを示す場合、該参照関係を有する他のオブジェクトデータに予め設定されるカスケードダウンロードフラグを検査し、該検査結果に基づいて、該参照関係を有する他のオブジェクトデータを削除対象として、前記参照関係を判定する手段を再帰呼出しする
ことを特徴とする請求項12に記載のデータ同期制御方法。 - 前記参照関係の判定結果が、前記他のオブジェクトデータを参照していることを示す場合、該参照関係を有する他のオブジェクトデータに予め設定されるカスケードダウンロードフラグを検査するとともに、該オブジェクトデータが他のオブジェクトデータより参照されているか否かを判定し、前記検査結果及び判定結果に基づいて、該参照関係を有する他のオブジェクトデータを削除対象として、前記参照関係を判定する手段を再帰呼出しする
ことを特徴とする請求項12に記載のデータ同期制御方法。 - 携帯端末とネットワークを介して接続されたデータ同期制御装置であるとともにデータベースと前記携帯端末との間でデータの同期制御をするデータ同期制御装置に、
前記携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータが他のオブジェクトデータより参照されているか否かを判定する処理と、
前記参照関係の判定結果に基づいて、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力する処理と、
前記データベースに格納されているオブジェクトデータをマスタデータとするレプリカデータをレプリカDBに格納する処理と
を実行させるデータ同期制御プログラムであるとともに、
前記データベースに格納されているオブジェクトデータは、1つのキーと複数のデータフィールドとから構成されており、前記携帯端末からみて冗長なデータフィールド部分を有しており、
前記レプリカDBに格納する処理は、前記データベースに格納されている複数のオブジェクトデータのうちで所定の選択条件にヒットしたオブジェクトデータを選択し、該選択されたオブジェクトデータから前記携帯端末からみて必要なデータフィールドのみを抽出し、さらに、該選択された複数のオブジェクトデータのなかで参照関係を有するオブジェクトデータ間でデータフィールドの置換をして構成されたシンクロナイゼーションオブジェクトデータを前記レプリカDBに格納する処理を有し、
前記データの同期制御の一つとして、前記レプリカDBに格納されたシンクロナイゼーションオブジェクトデータを前記携帯端末に送信するダウンロード処理を、前記データ同期制御装置にさらに実行させるためのデータ同期制御プログラムであって、
前記データフィールドの置換は、前記データフィールドの構成要素のIDを、前記参照関係を有する他のオブジェクトデータのシンクキーに置換することであり、
前記シンクキーは、前記1つのキーに対応するものであって、前記データフィールドのそれぞれに紐付けられているものであるデータ同期制御プログラム。 - 前記参照関係の判定結果が、前記他のオブジェクトデータより参照されていないことを示す場合、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力する処理
を実行させるための請求項17に記載のデータ同期制御プログラム。 - 前記参照関係の判定結果が、前記他のオブジェクトデータより参照されていることを示す場合、該被参照関係を有する他のオブジェクトデータを削除対象とし、前記参照関係を判定する処理を再帰呼出しする処理
を実行させるための請求項17に記載のデータ同期制御プログラム。 - 携帯端末とネットワークを介して接続されたデータ同期制御装置であるとともにデータベースと前記携帯端末との間でデータの同期制御をするデータ同期制御装置に、
前記携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータが他のオブジェクトデータを参照しているか否かを判定する処理と、
前記参照関係の判定結果に基づいて、前記携帯端末に前記削除対象のオブジェクトデータが参照している他のオブジェクトデータの削除命令を出力する処理と、
前記データベースに格納されているオブジェクトデータをマスタデータとするレプリカデータをレプリカDBに格納する処理と
を実行させるデータ同期制御プログラムであるとともに、
前記データベースに格納されているオブジェクトデータは、1つのキーと複数のデータフィールドとから構成されており、前記携帯端末からみて冗長なデータフィールド部分を有しており、
前記レプリカDBに格納する処理は、前記データベースに格納されている複数のオブジェクトデータのうちで所定の選択条件にヒットしたオブジェクトデータを選択し、該選択されたオブジェクトデータから前記携帯端末からみて必要なデータフィールドのみを抽出し、さらに、該選択された複数のオブジェクトデータのなかで参照関係を有するオブジェクトデータ間でデータフィールドの置換をして構成されたシンクロナイゼーションオブジェクトデータを前記レプリカDBに格納する処理を有し、
前記データの同期制御の一つとして、前記レプリカDBに格納されたシンクロナイゼーションオブジェクトデータを前記携帯端末に送信するダウンロード処理を、前記データ同期制御装置にさらに実行させるためのデータ同期制御プログラムであって、
前記データフィールドの置換は、前記データフィールドの構成要素のIDを、前記参照関係を有する他のオブジェクトデータのシンクキーに置換することであり、
前記シンクキーは、前記1つのキーに対応するものであって、前記データフィールドのそれぞれに紐付けられているものであるデータ同期制御プログラム。 - 前記参照関係の判定結果が、前記他のオブジェクトデータを参照していないことを示す場合、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力する処理
を実行させるための請求項20に記載のデータ同期制御プログラム。 - 前記参照関係の判定結果が、前記他のオブジェクトデータを参照していることを示す場合、該参照関係を有する他のオブジェクトデータを削除対象とし、前記参照関係を判定する処理を再帰呼出しする処理
を実行させるための請求項20に記載のデータ同期制御プログラム。 - 前記参照関係の判定結果が、前記他のオブジェクトデータを参照していることを示す場合、該参照関係を有する他のオブジェクトデータに予め設定されるカスケードダウンロードフラグを検査し、該検査結果に基づいて、該参照関係を有する他のオブジェクトデータを削除対象として、前記参照関係を判定する処理を再帰呼出しする処理
を実行させるための請求項20に記載のデータ同期制御プログラム。 - 前記参照関係の判定結果が、前記他のオブジェクトデータを参照していることを示す場合、該参照関係を有する他のオブジェクトデータに予め設定されるカスケードダウンロードフラグを検査するとともに、該オブジェクトデータが他のオブジェクトデータより参照されているか否かを判定し、前記検査結果及び判定結果に基づいて、該参照関係を有する他のオブジェクトデータを削除対象として、前記参照関係を判定する処理を再帰呼出しする処理
を実行させるための請求項20に記載のデータ同期制御プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003188402A JP4111881B2 (ja) | 2003-06-30 | 2003-06-30 | データ同期制御装置、データ同期制御方法及びデータ同期制御プログラム |
US10/878,287 US20050076094A1 (en) | 2003-06-30 | 2004-06-29 | Method and apparatus for synchronizing data between multiple memories |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003188402A JP4111881B2 (ja) | 2003-06-30 | 2003-06-30 | データ同期制御装置、データ同期制御方法及びデータ同期制御プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005025362A JP2005025362A (ja) | 2005-01-27 |
JP4111881B2 true JP4111881B2 (ja) | 2008-07-02 |
Family
ID=34186965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003188402A Expired - Lifetime JP4111881B2 (ja) | 2003-06-30 | 2003-06-30 | データ同期制御装置、データ同期制御方法及びデータ同期制御プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20050076094A1 (ja) |
JP (1) | JP4111881B2 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7143108B1 (en) * | 2000-04-06 | 2006-11-28 | International Business Machines Corporation | Apparatus and method for deletion of objects from an object-relational system in a customizable and database independent manner |
JP4666906B2 (ja) * | 2003-12-04 | 2011-04-06 | 株式会社ブロードリーフ | クライアント装置のシステム環境規約違反検出方法 |
US8244913B1 (en) * | 2004-10-13 | 2012-08-14 | Progress Software Corporation | Replication horizon determination with an independent distributed database system |
US7797273B2 (en) * | 2006-03-27 | 2010-09-14 | Emoze Ltd. | System and a method for reliable symmetric data synchronization |
JP5090149B2 (ja) | 2007-12-13 | 2012-12-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データベースを管理する方法、装置及びシステム |
JP5063423B2 (ja) * | 2008-03-17 | 2012-10-31 | キヤノン株式会社 | 画像入出力装置及び画像入出力方法、並びにジョブ履歴記録システム |
US7958094B2 (en) * | 2008-06-25 | 2011-06-07 | International Business Machines Corporation | Management of deletion requests for related documents in a content management system |
US8224874B2 (en) * | 2010-01-05 | 2012-07-17 | Symantec Corporation | Systems and methods for removing unreferenced data segments from deduplicated data systems |
JP5364931B2 (ja) * | 2010-04-27 | 2013-12-11 | 株式会社日立製作所 | 計算機システム、及び、サーバ |
JP5634178B2 (ja) * | 2010-09-09 | 2014-12-03 | Kii株式会社 | データ同期システムおよびデータ同期方法 |
JP4782895B1 (ja) * | 2011-02-09 | 2011-09-28 | 亜佐夫 亀井 | データ処理システム |
JP5656722B2 (ja) * | 2011-04-11 | 2015-01-21 | Kii株式会社 | データ同期装置、データ同期システム、データ同期方法及びプログラム |
KR20130023490A (ko) * | 2011-08-29 | 2013-03-08 | 주식회사 팬택 | 애플리케이션 동기화 시스템 및 방법 |
JP6036470B2 (ja) * | 2013-03-26 | 2016-11-30 | 富士通株式会社 | 情報処理システム、情報処理装置、情報処理方法、及び情報処理プログラム |
KR101634571B1 (ko) * | 2014-07-31 | 2016-07-08 | 주식회사 파수닷컴 | 문서 동기화 방법 및 컴퓨터 프로그램, 그 기록매체 |
CN104484428B (zh) * | 2014-12-18 | 2018-11-20 | 深圳市科漫达智能管理科技有限公司 | 一种数据同步的方法、装置及*** |
CN107395770B (zh) * | 2017-09-06 | 2020-08-04 | 武汉斗鱼网络科技有限公司 | 数据同步方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6012061A (en) * | 1997-11-25 | 2000-01-04 | International Business Machines Corp. | Method and apparatus for deleting nodes in Patricia trees |
US6651047B1 (en) * | 1999-05-19 | 2003-11-18 | Sun Microsystems, Inc. | Automated referential integrity maintenance |
US7142196B1 (en) * | 1999-10-12 | 2006-11-28 | Autodesk, Inc. | Geographical data markup on a personal digital assistant (PDA) |
CA2326805A1 (en) * | 2000-11-24 | 2002-05-24 | Ibm Canada Limited-Ibm Canada Limitee | Method and apparatus for deleting data in a database |
US7032003B1 (en) * | 2001-08-13 | 2006-04-18 | Union Gold Holdings, Ltd. | Hybrid replication scheme with data and actions for wireless devices |
JP2003122766A (ja) * | 2001-10-10 | 2003-04-25 | Shinichi Konomi | 物理的実体を用いてニーズと情報を共有するためのシステムおよび方法 |
-
2003
- 2003-06-30 JP JP2003188402A patent/JP4111881B2/ja not_active Expired - Lifetime
-
2004
- 2004-06-29 US US10/878,287 patent/US20050076094A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20050076094A1 (en) | 2005-04-07 |
JP2005025362A (ja) | 2005-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4111881B2 (ja) | データ同期制御装置、データ同期制御方法及びデータ同期制御プログラム | |
CN111259006B (zh) | 一种通用的分布式异构数据一体化物理汇聚、组织、发布与服务方法及*** | |
CN106599104B (zh) | 一种基于redis集群的海量数据关联方法 | |
CN106815218B (zh) | 数据库访问方法、装置和数据库*** | |
CN111723148B (zh) | 数据存储方法及装置、存储介质、电子装置 | |
CN104838620A (zh) | 电信网中的事件管理 | |
CN104050276A (zh) | 一种分布式数据库的缓存处理方法及*** | |
US7899998B1 (en) | Conflict avoidance in data store replication | |
CN113360456A (zh) | 数据归档方法、装置、设备以及存储介质 | |
Kesavan et al. | Firestore: The nosql serverless database for the application developer | |
CN113448757A (zh) | 消息处理方法、装置、设备、存储介质和*** | |
CN115705313A (zh) | 一种数据处理方法、装置、设备及计算机可读存储介质 | |
CN113901131A (zh) | 基于索引的链上数据查询方法及装置 | |
US10949423B2 (en) | Operation management device, operation management method, and operation management system | |
US7441252B2 (en) | Cache control device, and method and computer program for the same | |
CN116595226A (zh) | 一种基于司法行业的图文数据的分布式存储方法及*** | |
CN113641686B (zh) | 数据处理方法、装置、电子设备、存储介质及程序产品 | |
CN113934742B (zh) | 数据更新方法、节点信息存储方法、电子设备及介质 | |
JP2006146615A (ja) | オブジェクト関連情報管理プログラム、管理方法、および管理装置。 | |
CN114490865A (zh) | 数据库同步方法、装置、设备及计算机存储介质 | |
CN116107801A (zh) | 交易处理方法及相关产品 | |
CN114741444A (zh) | 一种组织架构调整方法、装置、电子设备及存储介质 | |
CN111061719A (zh) | 数据收集方法、装置、设备和存储介质 | |
CN114268540B (zh) | 规则引擎的优化方法、装置及设备 | |
CN117389908B (zh) | 接口自动化测试用例的依赖关系分析方法、***及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070522 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070803 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071023 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080122 |
|
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: 20080311 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080408 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4111881 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110418 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110418 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120418 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120418 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130418 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140418 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |