(57)【要約】【課題】データベースシステムと携帯端末間において、効率的にデータ同期処理を行うことができるデータ同期制御装置、データ同期制御方法及びデータ同期制御プログラムを提供する。【解決手段】携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータにおける他のオブジェクトデータからの参照関係／被参照関係の有無を判定して、携帯端末にオブジェクトデータの削除命令を出力する。【選択図】  図１６
2005025362.tif 000002
【特許請求の範囲】
【請求項１】
携帯端末とネットワークを介して接続されたデータ同期制御装置において、
前記携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータが他のオブジェクトデータより参照されているか否かを判定する参照関係判定手段と、
前記参照関係判定手段の判定結果に基づいて、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力するデータ削除手段と
を具備することを特徴とするデータ同期制御装置。
【請求項２】
前記参照関係判定手段の判定結果が前記削除対象のオブジェクトデータが他のオブジェクトデータより参照されていないことを示す場合、前記データ削除手段は、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力する
ことを特徴とする請求項１に記載のデータ同期制御装置。
【請求項３】
前記参照関係判定手段の判定結果が前記削除対象のオブジェクトデータが他のオブジェクトデータより参照されていることを示す場合、前記データ削除手段は、該被参照関係を有する他のオブジェクトデータを削除対象とし、前記参照関係判定手段を再帰呼出しする
ことを特徴とする請求項１に記載のデータ同期制御装置。
【請求項４】
携帯端末とネットワークを介して接続されたデータ同期制御装置において、
前記携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータが他のオブジェクトデータを参照しているか否かを判定する参照関係判定手段と、
前記参照関係判定手段の判定結果に基づいて、前記携帯端末に前記削除対象のオブジェクトデータが参照している他のオブジェクトデータの削除命令を出力するデータ削除手段と
を具備することを特徴とするデータ同期制御装置。
【請求項５】
前記参照関係判定手段の判定結果が前記削除対象のオブジェクトデータが他のオブジェクトデータを参照していないことを示す場合、前記データ削除手段は、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力する
ことを特徴とする請求項４に記載のデータ同期制御装置。
【請求項６】
前記参照関係判定手段の判定結果が前記削除対象のオブジェクトデータが他のオブジェクトデータを参照していることを示す場合、前記データ削除手段は、該参照関係を有する他のオブジェクトデータを削除対象とし、前記参照関係判定手段を再帰呼出しする
ことを特徴とする請求項４に記載のデータ同期制御装置。
【請求項７】
前記参照関係判定手段の判定結果が前記削除対象のオブジェクトデータが他のオブジェクトデータを参照していることを示す場合、前記データ削除手段は、該参照関係を有する他のオブジェクトデータに予め設定されるカスケードダウンロードフラグを検査し、該検査結果に基づいて、該参照関係を有する他のオブジェクトデータを削除対象として、前記参照関係判定手段を再帰呼出しする
ことを特徴とする請求項４に記載のデータ同期制御装置。
【請求項８】
前記参照関係判定手段の判定結果が前記削除対象のオブジェクトデータが他のオブジェクトデータを参照していることを示す場合、前記データ削除手段は、該参照関係を有する他のオブジェクトデータに予め設定されるカスケードダウンロードフラグを検査するとともに、該オブジェクトデータが他のオブジェクトデータより参照されているか否かを判定し、前記検査結果及び判定結果に基づいて、該参照関係を有する他のオブジェクトデータを削除対象として、前記参照関係判定手段を再帰呼出しする
ことを特徴とする請求項４に記載のデータ同期制御装置。
【請求項９】
携帯端末とネットワークを介して接続されたデータ同期制御装置において、
前記携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータが他のオブジェクトデータより参照されているか否かを判定し、
該判定結果に基づいて、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力する
ことを特徴とするデータ同期制御方法。
【請求項１０】
前記参照関係の判定結果が、他のオブジェクトデータより参照されていないことを示す場合、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力する
ことを特徴とする請求項９に記載のデータ同期制御方法。
【請求項１１】
前記参照関係の判定結果が、他のオブジェクトデータより参照されていることを示す場合、該被参照関係を有する他のオブジェクトデータを削除対象とし、前記参照関係を判定する手段を再帰呼出しする
ことを特徴とする請求項９に記載のデータ同期制御方法。
【請求項１２】
携帯端末とネットワークを介して接続されたデータ同期制御装置において、
前記携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータが他のオブジェクトデータを参照しているか否かを判定し、
該判定結果に基づいて、前記携帯端末に前記削除対象のオブジェクトデータが参照している他のオブジェクトデータの削除命令を出力する
ことを特徴とするデータ同期制御方法。
【請求項１３】
前記参照関係の判定結果が、前記他のオブジェクトデータを参照していないことを示す場合、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力する
ことを特徴とする請求項１２に記載のデータ同期制御方法。
【請求項１４】
前記参照関係の判定結果が、前記他のオブジェクトデータを参照していることを示す場合、該参照関係を有する他のオブジェクトデータを削除対象とし、前記参照関係を判定する手段を再帰呼出しする
ことを特徴とする請求項１２に記載のデータ同期制御方法。
【請求項１５】
前記参照関係の判定結果が、前記他のオブジェクトデータを参照していることを示す場合、該参照関係を有する他のオブジェクトデータに予め設定されるカスケードダウンロードフラグを検査し、該検査結果に基づいて、該参照関係を有する他のオブジェクトデータを削除対象として、前記参照関係を判定する手段を再帰呼出しする
ことを特徴とする請求項１２に記載のデータ同期制御方法。
【請求項１６】
前記参照関係の判定結果が、前記他のオブジェクトデータを参照していることを示す場合、該参照関係を有する他のオブジェクトデータに予め設定されるカスケードダウンロードフラグを検査するとともに、該オブジェクトデータが他のオブジェクトデータより参照されているか否かを判定し、前記検査結果及び判定結果に基づいて、該参照関係を有する他のオブジェクトデータを削除対象として、前記参照関係を判定する手段を再帰呼出しする
ことを特徴とする請求項１２に記載のデータ同期制御方法。
【請求項１７】
携帯端末とネットワークを介して接続されたデータ同期制御装置に、
前記携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータが他のオブジェクトデータより参照されているか否かを判定する処理と、
前記参照関係の判定結果に基づいて、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力する処理と
を実行させるためのデータ同期制御プログラム。
【請求項１８】
前記参照関係の判定結果が、前記他のオブジェクトデータより参照されていないことを示す場合、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力する処理
を実行させるための請求項１７に記載のデータ同期制御プログラム。
【請求項１９】
前記参照関係の判定結果が、前記他のオブジェクトデータより参照されていることを示す場合、該被参照関係を有する他のオブジェクトデータを削除対象とし、前記参照関係を判定する処理を再帰呼出しする処理
を実行させるための請求項１７に記載のデータ同期制御プログラム。
【請求項２０】
携帯端末とネットワークを介して接続されたデータ同期制御装置に、
前記携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータが他のオブジェクトデータを参照しているか否かを判定する処理と、
前記参照関係の判定結果に基づいて、前記携帯端末に前記削除対象のオブジェクトデータが参照している他のオブジェクトデータの削除命令を出力する処理と
を実行させるためのデータ同期制御プログラム。
【請求項２１】
前記参照関係の判定結果が、前記他のオブジェクトデータを参照していないことを示す場合、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力する処理
を実行させるための請求項２０に記載のデータ同期制御プログラム。
【請求項２２】
前記参照関係の判定結果が、前記他のオブジェクトデータを参照していることを示す場合、該参照関係を有する他のオブジェクトデータを削除対象とし、前記参照関係を判定する処理を再帰呼出しする処理
を実行させるための請求項２０に記載のデータ同期制御プログラム。
【請求項２３】
前記参照関係の判定結果が、前記他のオブジェクトデータを参照していることを示す場合、該参照関係を有する他のオブジェクトデータに予め設定されるカスケードダウンロードフラグを検査し、該検査結果に基づいて、該参照関係を有する他のオブジェクトデータを削除対象として、前記参照関係を判定する処理を再帰呼出しする処理
を実行させるための請求項２０に記載のデータ同期制御プログラム。
【請求項２４】
前記参照関係の判定結果が、前記他のオブジェクトデータを参照していることを示す場合、該参照関係を有する他のオブジェクトデータに予め設定されるカスケードダウンロードフラグを検査するとともに、該オブジェクトデータが他のオブジェクトデータより参照されているか否かを判定し、前記検査結果及び判定結果に基づいて、該参照関係を有する他のオブジェクトデータを削除対象として、前記参照関係を判定する処理を再帰呼出しする処理
を実行させるための請求項２０に記載のデータ同期制御プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データベースシステムと携帯端末間におけるデータ同期制御装置、データ同期制御方法及びデータ同期制御プログラムに関する。
【０００２】
【従来の技術】
従来、コンピュータ端末と携帯型端末間におけるデータ通信において、変更前のデータと変更後のデータの同期を取るための技術が存在する。
例えば、特許文献１には、送信装置側（コンピュータ端末）のデータと受信装置側（携帯型端末）のデータとを固有の識別情報によって対応づけておき、送信装置から送信された変更データ及び当該データに対応する識別情報を受信すると、受信装置は、受信データに変更後の属性を設定すると共に、記憶部に記憶されたデータの内、受信したデータと同一の識別情報に対応するデータに変更前の属性を設定し、記憶部に格納されたデータを表示する際に、変更後の属性が設定されたデータと、変更前の属性が設定されたデータとを、それぞれ変更後及び変更前の属性を示す識別表示を用いて表示することが記載されている。
この発明によれば、変更後の属性が設定されたデータを記憶部から削除する場合、削除されたデータに対応する変更前の属性が設定されたデータから変更前の属性の設定を解除するようにしている。
【０００３】
また、特許文献２には、データ個々の実体を表すレコード間の親子関係に応じて、データ格納ファイル内にお互いに近接して編成させるファイル格納管理システムについての記載がある。このファイル格納管理システムは、リレーション定義ファイルと、データページファイルと、データページと、ページマップファイルと、メタマップファイルを管理することで、リレーション及びモジュールに所属したレコードに対する挿入、削除、モジュール単位のレコードの主記憶上への読み込み、更にリレーションを通したレコード単位の読み込みを実行する。
【０００４】
【特許文献１】
特開２０００−１３７６８７号公報
【特許文献２】
特開平８−１２３７１３号公報
【０００５】
【発明が解決しようとする課題】
一方で、近年、エンタープライズアプリケーションをモバイル化することで、リアルタイムに社内情報を共有することが検討されている。基幹業務データベースシステムと携帯端末とを連動させることで、ビジネスデータへ即座にアクセスでき、リアルタイムで最新の情報を更新、共有することができる。
このようなエンタープライズアプリケーションにおいて、携帯端末上でオフラインで更新されたデータは、暗号化処理や圧縮処理後、公衆パケット網、ＬＡＮ、無線ＬＡＮ、クレードル等を介して、オンライン接続時に任意のバックエンドシステムと同期を取ることが要求される。
【０００６】
上述したようなデータ同期アルゴリズムをエンタープライズアプリケーションのモバイルエンジンとして採用する場合、特に携帯端末側の処理負荷、記憶容量制限を考慮したデータ同期アルゴリズムが要求される。
このため、上述したようなデータ管理システムが採用するデータ同期アルゴリズムでは、転送データの冗長性が高く、効率的にデータ同期を行うことができないという問題点があった。
【０００７】
本発明は、このような事情を考慮してなされたものであり、その目的は、データベースシステムと携帯端末間において、効率的にデータ同期処理を行うことができるデータ同期制御装置、データ同期制御方法及びデータ同期制御プログラムを提供することにある。
【０００８】
【課題を解決するための手段】
この発明は上記の課題を解決すべくなされたもので、本発明は、携帯端末とネットワークを介して接続されたデータ同期制御装置において、前記携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータが他のオブジェクトデータより参照されているか否かを判定する参照関係判定手段と、前記参照関係判定手段の判定結果に基づいて、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力するデータ削除手段とを具備することを特徴とする。
【０００９】
また、本発明は、前記参照関係判定手段の判定結果が前記削除対象のオブジェクトデータが他のオブジェクトデータより参照されていないことを示す場合、前記データ削除手段は、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力することを特徴とする。
【００１０】
また、本発明は、前記参照関係判定手段の判定結果が前記削除対象のオブジェクトデータが他のオブジェクトデータより参照されていることを示す場合、前記データ削除手段は、該被参照関係を有する他のオブジェクトデータを削除対象とし、前記参照関係判定手段を再帰呼出しすることを特徴とする。
【００１１】
また、本発明は、携帯端末とネットワークを介して接続されたデータ同期制御装置において、前記携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータが他のオブジェクトデータを参照しているか否かを判定する参照関係判定手段と、前記参照関係判定手段の判定結果に基づいて、前記携帯端末に前記削除対象のオブジェクトデータが参照している他のオブジェクトデータの削除命令を出力するデータ削除手段とを具備することを特徴とする。
【００１２】
また、本発明は、前記参照関係判定手段の判定結果が前記削除対象のオブジェクトデータが他のオブジェクトデータを参照していないことを示す場合、前記データ削除手段は、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力することを特徴とする。
【００１３】
また、本発明は、前記参照関係判定手段の判定結果が前記削除対象のオブジェクトデータが他のオブジェクトデータを参照していることを示す場合、前記データ削除手段は、該参照関係を有する他のオブジェクトデータを削除対象とし、前記参照関係判定手段を再帰呼出しすることを特徴とする。
【００１４】
また、本発明は、前記参照関係判定手段の判定結果が前記削除対象のオブジェクトデータが他のオブジェクトデータを参照していることを示す場合、前記データ削除手段は、該参照関係を有する他のオブジェクトデータに予め設定されるカスケードダウンロードフラグを検査し、該検査結果に基づいて、該参照関係を有する他のオブジェクトデータを削除対象として、前記参照関係判定手段を再帰呼出しすることを特徴とする。
【００１５】
また、本発明は、前記参照関係判定手段の判定結果が前記削除対象のオブジェクトデータが他のオブジェクトデータを参照していることを示す場合、前記データ削除手段は、該参照関係を有する他のオブジェクトデータに予め設定されるカスケードダウンロードフラグを検査するとともに、該オブジェクトデータが他のオブジェクトデータより参照されているか否かを判定し、前記検査結果及び判定結果に基づいて、該参照関係を有する他のオブジェクトデータを削除対象として、前記参照関係判定手段を再帰呼出しすることを特徴とする。
【００１６】
また、本発明は、携帯端末とネットワークを介して接続されたデータ同期制御装置において、前記携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータが他のオブジェクトデータより参照されているか否かを判定し、該判定結果に基づいて、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力することを特徴とする。
【００１７】
また、本発明は、前記参照関係の判定結果が、他のオブジェクトデータより参照されていないことを示す場合、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力することを特徴とする。
【００１８】
また、本発明は、前記参照関係の判定結果が、他のオブジェクトデータより参照されていることを示す場合、該被参照関係を有する他のオブジェクトデータを削除対象とし、前記参照関係を判定する手段を再帰呼出しすることを特徴とする。
【００１９】
また、本発明は、携帯端末とネットワークを介して接続されたデータ同期制御装置において、前記携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータが他のオブジェクトデータを参照しているか否かを判定し、該判定結果に基づいて、前記携帯端末に前記削除対象のオブジェクトデータが参照している他のオブジェクトデータの削除命令を出力することを特徴とする。
【００２０】
また、本発明は、前記参照関係の判定結果が、前記他のオブジェクトデータを参照していないことを示す場合、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力することを特徴とする。
【００２１】
また、本発明は、前記参照関係の判定結果が、前記他のオブジェクトデータを参照していることを示す場合、該参照関係を有する他のオブジェクトデータを削除対象とし、前記参照関係を判定する手段を再帰呼出しすることを特徴とする。
【００２２】
また、本発明は、前記参照関係の判定結果が、前記他のオブジェクトデータを参照していることを示す場合、該参照関係を有する他のオブジェクトデータに予め設定されるカスケードダウンロードフラグを検査し、該検査結果に基づいて、該参照関係を有する他のオブジェクトデータを削除対象として、前記参照関係を判定する手段を再帰呼出しすることを特徴とする。
【００２３】
また、本発明は、前記参照関係の判定結果が、前記他のオブジェクトデータを参照していることを示す場合、該参照関係を有する他のオブジェクトデータに予め設定されるカスケードダウンロードフラグを検査するとともに、該オブジェクトデータが他のオブジェクトデータより参照されているか否かを判定し、前記検査結果及び判定結果に基づいて、該参照関係を有する他のオブジェクトデータを削除対象として、前記参照関係を判定する手段を再帰呼出しすることを特徴とする。
【００２４】
また、本発明は、携帯端末とネットワークを介して接続されたデータ同期制御装置に、前記携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータが他のオブジェクトデータより参照されているか否かを判定する処理と、前記参照関係の判定結果に基づいて、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力する処理とを実行させるためのデータ同期制御プログラムである。
【００２５】
また、本発明は、前記参照関係の判定結果が、前記他のオブジェクトデータより参照されていないことを示す場合、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力する処理を実行させるためのデータ同期制御プログラムである。
【００２６】
また、本発明は、前記参照関係の判定結果が、前記他のオブジェクトデータより参照されていることを示す場合、該被参照関係を有する他のオブジェクトデータを削除対象とし、前記参照関係を判定する処理を再帰呼出しする処理を実行させるためのデータ同期制御プログラムである。
【００２７】
また、本発明は、携帯端末とネットワークを介して接続されたデータ同期制御装置に、前記携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータが他のオブジェクトデータを参照しているか否かを判定する処理と、前記参照関係の判定結果に基づいて、前記携帯端末に前記削除対象のオブジェクトデータが参照している他のオブジェクトデータの削除命令を出力する処理とを実行させるためのデータ同期制御プログラムである。
【００２８】
また、本発明は、前記参照関係の判定結果が、前記他のオブジェクトデータを参照していないことを示す場合、前記携帯端末に前記削除対象のオブジェクトデータの削除命令を出力する処理を実行させるための請求項２０に記載のデータ同期制御プログラムである。
【００２９】
また、本発明は、前記参照関係の判定結果が、前記他のオブジェクトデータを参照していることを示す場合、該参照関係を有する他のオブジェクトデータを削除対象とし、前記参照関係を判定する処理を再帰呼出しする処理を実行させるためのデータ同期制御プログラムである。
【００３０】
また、本発明は、前記参照関係の判定結果が、前記他のオブジェクトデータを参照していることを示す場合、該参照関係を有する他のオブジェクトデータに予め設定されるカスケードダウンロードフラグを検査し、該検査結果に基づいて、該参照関係を有する他のオブジェクトデータを削除対象として、前記参照関係を判定する処理を再帰呼出しする処理を実行させるためのデータ同期制御プログラムである。
【００３１】
また、本発明は、前記参照関係の判定結果が、前記他のオブジェクトデータを参照していることを示す場合、該参照関係を有する他のオブジェクトデータに予め設定されるカスケードダウンロードフラグを検査するとともに、該オブジェクトデータが他のオブジェクトデータより参照されているか否かを判定し、前記検査結果及び判定結果に基づいて、該参照関係を有する他のオブジェクトデータを削除対象として、前記参照関係を判定する処理を再帰呼出しする処理を実行させるためのデータ同期制御プログラムである。
【００３２】
【発明の実施の形態】
以下、図面を参照して、本発明のデータ同期装置の一実施形態について説明する。図１は、本実施形態のデータ同期装置（以下、シンクロナイゼーションサーバという）を適用したエンタープライズサーバシステムの構成を示す構成図である。本実施形態において、エンタープライズサーバシステム１００は、複数のモバイルデバイス（携帯端末）１２０とネットワーク１１０を介して接続して構成される。
【００３３】
具体的には、エンタープライズサーバシステム１００は、エンタープライズサーバ１０２と、シンクロナイゼーションサーバ１０６とから構成される。
エンタープライズサーバ１０２は、ビジネスオブジェクトデータベース（以下、ＤＢとする）１０３とアプリケーションＤＢ１０４を有しており、シンクロナイゼーションサーバ１０６を介して、モバイルデバイス１２０、ビジネスオブジェクトＤＢ１０３及びアプリケーションＤＢ１０４間のデータ通信管理を行う。
【００３４】
ビジネスオブジェクトＤＢ１０３は、図２に示すような複数のビジネスオブジェクト２００を格納する。ここで、ビジネスオブジェクト２００とは、エンタープライズサーバ１０２に関連するプロパティとビジネスメソッド２１０とをカプセル化して定義され、カーネル層２０２、インテグリティ層２０４、インターフェイス層２０６、アクセス層２０８を有する。
カーネル層２０２は、ビジネスオブジェクト２００と関連付けられたデータ（プロパティ）を構成する（後述する）。インテグリティ層２０４は、環境変数の制約条件に基づくデータ整合性チェックを行う。インターフェイス層２０６は、ビジネスオブジェクト２００と関連付けられた、オブジェクトインターフェイス２０７を含む複数のメソッド、インターフェイスを定義する。アクセス層２０８は、ビジネスオブジェクト２００へアクセスするためのモジュールを定義する。
アプリケーションＤＢ１０４は、エンタープライズサーバ１０２がモバイルデバイス１２０に提供するアプリケーションを格納する。
【００３５】
シンクロナイゼーションサーバ１０６は、レプリカＤＢ１０８を有しており、モバイルデバイス１２０、ビジネスオブジェクトＤＢ１０３及びアプリケーションＤＢ１０４間のデータ同期制御を行う。具体的には、シンクロナイゼーションサーバ１０６は、モバイルデバイス１２０、ビジネスオブジェクトＤＢ１０３及びアプリケーションＤＢ１０４間でアップロード、ダウンロードすべきデータを所定の選択条件（フィルタリングクライテリア）に基づいて判定するとともに、選択条件にヒットしたデータの参照関係、被参照関係（データ間の従属関係）、カスケードダウンロードフラグ等に基づいて、データ作成、修正、削除等のデータ操作を行う。
【００３６】
レプリカＤＢ１０８は、ビジネスオブジェクトＤＢ１０３に格納されるビジネスオブジェクトをマスタデータとするレプリカデータを格納する。
具体的には、ビジネスオブジェクトＤＢ１０３に格納されるビジネスオブジェクト（Ａ〜Ｂ）は、図３に示すように、１のキーと複数のデータフィールドとから構成されるが、上述したように、携帯端末のユーザにとっては冗長なデータフィールド部分を有している。したがって、これら冗長なデータフィールド全体をすべて携帯端末に送信すると、携帯端末のメモリ容量を圧迫するため、送信データを最適化する必要がある。
このため、レプリカＤＢ１０８は、シンクロナイゼーションサーバ１０６のデータ同期制御の基、図４、５に示すように、選択条件にヒットした各ビジネスオブジェクトより必要なデータフィールドのみを抽出し、参照関係を有するビジネスオブジェクト間でデータフィールドの置換をしたシンクロナイゼーションビジネスオブジェクトＡ〜Ｃ（以下、ＳｙｎｃＢＯ：シンクＢＯと呼ぶ）を格納する（後述する）。
【００３７】
次に、図面を参照して、本実施形態のシンクロナイゼーションサーバ１０６の動作について説明する。本実施形態のシンクロナイゼーションサーバ１０６は、モバイルデバイス１２０、ビジネスオブジェクトＤＢ１０３及びアプリケーションＤＢ１０４間のデータ同期制御を行うが、まずデータ同期制御として、カスケードダウンロード処理について説明し、次に、カスケードダウンロードされたシンクＢＯに関わるカスケード削除処理について説明する。
【００３８】
図６は、本実施形態のシンクロナイゼーションサーバ１０６によるカスケードダウンロード処理の過程を示すフローチャートである。
シンクロナイゼーションサーバ１０６は、エンタープライズサーバ１０２において、ビジネスオブジェクトＤＢ１０３、アプリケーションＤＢ１０４に格納しているビジネスオブジェクト２００が定期的に追加、削除、修正等のデータ更新されると、レプリカＤＢ１０８においても、この更新データを受信する。
すなわち、図７に示すように、タイプ（種類）が、「国」、「顧客」、「セールスオーダー」のビジネスオブジェクト２００のインスタンスをエンタープライズサーバ１０２から受信すると（図６のステップ４００）、シンクロナイゼーションサーバ１０６は、各シンクＢＯにシンクキー（同期用キー情報）を発行し、レプリカＤＢ１０８において、受信した各インスタンスと紐付けて格納する。
【００３９】
例えば、タイプが「国」であるシンクＢＯ５１０（ＳｙｎｃＢＯ  ＩＤ：５１０）において、国ＩＤが「ＵＳ」、国名が「米国」のビジネスオブジェクトインスタンス５１２に、「１００００００００１」のシンクキー５１１が発行され、紐付けられる。ビジネスオブジェクトインスタンス５１４、５１６、５１８にも、同様に、シンクキー５１３、５１５、５１７を発行して紐付けておく。
また、タイプが「顧客」であるシンクＢＯ５２０（ＳｙｎｃＢＯ  ＩＤ：５２０）において、顧客ＩＤが「１０１」、顧客名が「Ｂｒａｗｎ」、国ＩＤが「ＵＳ」のビジネスオブジェクトインスタンス５２２に、「１００００００００５」のシンクキー５２１が発行され、紐付けられる。ビジネスオブジェクトインスタンス５２４、５２６にも、同様に、シンクキー５２３、５２５を発行して紐付けておく。
さらに、タイプが「セールスオーダー」であるシンクＢＯ５３０（ＳｙｎｃＢＯ  ＩＤ：５３０）において、顧客ＩＤが「１０１」、配送日が「２００３／０４／２３」のビジネスオブジェクトインスタンス５３２に、「１００００００００８」のシンクキー５３１が発行され、紐付けられる。ビジネスオブジェクトインスタンス５３４、５３６にも、同様に、シンクキー５３３、５３５を発行して紐付けておく。
【００４０】
ここで、図７に示すように、シンクＢＯ５３０のデータエレメント「顧客ＩＤ」は、シンクＢＯ５２０のデータエレメント「顧客ＩＤ」とのデータ参照関係を有しており（矢印５５０を参照）、逆にシンクＢＯ５２０のデータエレメント「顧客ＩＤ」は、シンクＢＯ５３０のデータエレメント「顧客ＩＤ」とのデータ被参照関係を有している。
同様に、シンクＢＯ５２０のデータエレメント「国ＩＤ」は、シンクＢＯ５１０のデータエレメント「国ＩＤ」とのデータ参照関係を有しており（矢印５５２を参照）、逆にシンクＢＯ５１０のデータエレメント「顧客ＩＤ」は、シンクＢＯ５２０のデータエレメント「国ＩＤ」とのデータ被参照関係を有している。
本明細書中では、このシンクＢＯ間のデータ参照関係・被参照関係（従属関係・被従属関係）を「親子関係（ｐａｒｅｎｔ−ｃｈｉｌｄ）と定義する。
【００４１】
次に、シンクロナイゼーションサーバ１０６は、予め設定された選択条件（どのモバイルデバイスに対して、レプリカＤＢ１０８内のどのシンクＢＯのインスタンスをダウンロードするかを示す）に基づいて、レプリカＤＢ１０８を検索し、ダウンロードすべき１または複数のインスタンスをリストとして抽出する。以下、抽出されたシンクＢＯのインスタンスをダウンロード候補オブジェクトのインスタンスという。
シンクロナイゼーションサーバ１０６は、このダウンロード候補オブジェクトのリストを読み込み、すべてのダウンロード候補オブジェクトのインスタンスに対して、逐次、再帰的にデータ参照関係／被参照関係を検査する。
ここで、ダウンロード候補オブジェクトの再帰的な検査とは、現在検査対象となっているダウンロード候補オブジェクトが、他のオブジェクトデータ（必ずしもダウンロード候補オブジェクトである必要はない）とデータ参照関係／被参照関係を有している場合は、当該他のオブジェクトデータを現在の検査対象として、さらに、データ参照関係／被参照関係の検査を繰り返すことをいう。
【００４２】
すなわち、シンクロナイゼーションサーバ１０６は、まず１のダウンロード候補オブジェクトのインスタンスを選択し（ステップＳ４２０）、親方向のデータ参照関係を検査して、該当するオブジェクトデータのインスタンスの探索を行う（ステップＳ４２０）。
例えば、図７に示すように、インスタンス５３２のデータエレメント「顧客ＩＤ：１０１」は、インスタンス５２２のデータエレメント「顧客ＩＤ：１０１」と参照関係を有しており、かつ、インスタンス５２２のデータエレメント「国ＩＤ：ＵＳ」は、インスタンス５１２のデータエレメント「国ＩＤ：ＵＳ」と参照関係を有していることから、シンクロナイゼーションサーバ１０６は、ダウンロード候補オブジェクトとしてインスタンス５３２が選択された場合、まずデータエレメント「顧客ＩＤ：１０１」と参照関係を有するインスタンス５２２のデータエレメント「顧客ＩＤ：１０１」を探索する。そして、シンクロナイゼーションサーバ１０６は、インスタンス５２２を現在の検査対象とした後、再帰的に探索処理を実行する。この場合、シンクロナイゼーションサーバ１０６は、さらに、データエレメント「国ＩＤ：ＵＳ」と参照関係を有するインスタンス５１２のデータエレメント「国ＩＤ：ＵＳ」を探索する。
【００４３】
次に、シンクロナイゼーションサーバ１０６は、インスタンス５３２に関する参照官憲の探索の結果、抽出されたインスタンス５１２、５２２を参照関係の階層レベルの降順（または昇順）に整列する（ステップＳ４３０）。降順に整列した場合、ダウンロード候補オブジェクトのインスタンスは、参照関係の階層レベルにおいて親方向に最も高順位に定義されるインスタンス５１２から子方向にインスタンス５２２、５３２へ並べ替えられる。
そして、シンクロナイゼーションサーバ１０６は、まずカスケードダウンロード対象であるインスタンス５１２、５２２をこの並び順にモバイルデバイス１２０に対して送信する（ステップＳ４４０）。これらカスケードダウンロード対象インスタンスの送信処理完了後、シンクロナイゼーションサーバ１０６は、さらに、ダウンロード候補オブジェクトとして原始的に選択されているインスタンス５３２をモバイルデバイス１２０に対して送信する（ステップＳ４５０）。
このように、シンクロナイゼーションサーバ１０６は、被参照関係を有する他のインスタンスを送信した後、参照関係を有するインスタンスをモバイルデバイスに対して送信することで、モバイルデバイス１２０内のメモリにおいて、参照データが存在しないといったデータミスの発生を防止することが出来る効果が得られる。
【００４４】
同様にして、インスタンス５３４が選択された場合も（ステップＳ４１０）、探索の結果、インスタンス５２４、５１４が抽出され（ステップＳ４２０）、降順に並べ替えられて（ステップＳ４３０）、被参照関係を有するカスケードダウンロード対象インスタンス５２４、５１４の送信処理完了後（ステップＳ４４０）、ダウンロード候補オブジェクトとして、インスタンス５３４が送信処理される。
【００４５】
図８に、レプリカＤＢ１０８より抽出され、モバイルデバイス１２０に送信されるオブジェクトデータを示す。
レプリカＤＢ１０８において、各インスタンス５１２、５１４、５１６、５１８、５２２、５２４、５２６、５３２、５３４、５３６は、それぞれシンクキー５１１、５１３、５１５、５１７、５２１、５２３、５２５、５３１、５３３、５３５を用いて統一的に識別されることから、インスタンス５３２、５３４のデータエレメント「顧客ＩＤ」は、シンクキー５２１、５２３（図８に示すシンクキー６２１、６２３と対応する）に置換されるとともに、インスタンス５２２、５２４のデータエレメント「国ＩＤ」は、シンクキー５１１、５１３（図８に示すシンクキー６１１、６１３と対応する）に置換される。
これにより、データオブジェクト間の参照関係／被参照関係を保ったまま、必要最低限のインスタンスを抽出することができ、送信データを最適化することが出来る効果が得られる。
【００４６】
上述の置換操作、データ参照関係／被参照関係の探索結果は、シンクロナイゼーションサーバ１０６において、図９〜図１１に示す管理テーブルＴ１〜Ｔ３に格納され、後述するカスケード削除時に参照される。
図９は、各インスタンスの状態管理テーブルＴ１である。
各インスタンスは、送信先のモバイルデバイスの識別子（Ｍｏｂｉｌｅ  ＩＤ）シンクＢＯの識別子（ＳｙｎｃＢＯ  ＩＤ）、シンクキー（ＳｙｎｃＫｅｙ）で識別され、さらに、各インスタンスが格納する各データエレメントが当該インスタンスの構造識別子（Ｓｔｒｕｃｔｕｒｅ  ＩＤ）で識別される。
例えば、モバイルデバイス１２０において、インスタンス６３２の顧客ＩＤ「１００００００００５」や配送日「２００３／０４／２３」というデータエレメントは、シンクキーと構造識別子の組み合わせで識別する。
【００４７】
インスタンスの識別子は３種類存在する。
エンタプライズサーバ１０２において、各インスタンスは、エンタプライズサーバキー（Ｋｅｙ  ｏｎ  Ｅｎｔｅｒｐｒｉｓｅ  Ｓｅｒｖｅｒ）で一意に識別される。また、シンクロナイゼーションサーバ１０６において、各インスタンスは、モバイルデバイス非依存に発行・管理されるシンクキー（グローバルシンクキー）で一意に識別される。さらに、モバイルデバイス１２０において、各インスタンスは、モバイルＩＤとモバイルデバイス依存のシンクキー（ローカルシンクキー）とを組み合わせて、一意に識別される。
【００４８】
シンクロナイザーションサーバ１０６は、アクセス先（エンタプライズサーバ１０２のビジネスオブジェクトＤＢ１０３及びアプリケーションＤＢ１０４、シンクロナイゼーションサーバ１０６のレプリカＤＢ１０８、モバイルデバイス１２０）に応じて、これら３種類のインスタンスの識別子を使い分ける。
すなわち、シンクロナイザーションサーバ１０６は、ビジネスオブジェクトＤＢ１０３及びアプリケーションＤＢ１０４に格納されたインスタンスにアクセスする場合、エンタプライズサーバキーを使用してインスタンスを指定する。
また、レプリカＤＢ１０８に格納されたインスタンスにアクセスする場合、シンクロナイザーションサーバ１０６は、グローバルシンクキーを使用してインスタンスを指定する。
また、モバイルデバイス１２０に格納されたインスタンスにアクセスする場合、シンクロナイザーションサーバ１０６は、モバイルＩＤとローカルシンクキーを使用してインスタンスを指定する。
さらに、インスタンス間に参照・被参照関係が存在する場合、シンクロナイザーションサーバ１０６は、参照元インスタンス及び参照先インスタンスを結びつける識別子として、同様に、上記３種類の識別子を使用する。
【００４９】
インスタンス５１１〜５３５は、図１０に示すテーブルＴ２のフィールド「Ｄａｔａ  Ｓｔｒｉｎｇ」に格納され、シンクＢＯ（セールスオーダー）５３０とシンクＢＯ（顧客）５２０間には、フィールド「顧客ＩＤ」を外部キーとしてリレーションがあらかじめ定義されている。
具体的には、インスタンス５３１の顧客ＩＤは、エンタプライズサーバキーとして、「１０１」の値を持ち、同様に、インスタンス５２１のフィールド顧客ＩＤも、インスタンス５３１の顧客ＩＤと同一の「１０１」の値を持つことで、インスタンス５２１と５３１間の参照・被参照関係（リレーション）が確定する。
【００５０】
モバイルデバイス１２０において、この参照・被参照関係は、インスタンス５３１のダウンロード時に、シンクロナイゼーションサーバ１０６がフィールド顧客ＩＤの値をエンタプライズサーバキーである「１０１」からシンクキーである「１００００００００５」という値に変換することで維持される（インスタンス６３１参照）。
なお、ローカルシンクキーは、インスタンスがモバイルデバイス１２０で新規登録された場合のみ、各モバイルデバイス１２０専用に定義された番号範囲で採番された値が割り当てられる。モバイルデバイス１２０において割り当てられたローカルシンクキーと紐付けられたインスタンスは、シンクロナイゼーションサーバ１０６へのデータ登録時にグローバルシンクキーが割り当てられ、以後、同様に、エンタプライズサーバキー、グローバルシンクキー、モバイルＩＤとローカルシンクキーとの組み合わせのいずれかを利用して一意に識別される。
したがって、モバイルデバイス１２０は、シンクロナイゼーションサーバ１０６が管理するグローバルシンクキーの割当可能範囲の制限を受けずに、モバイルＩＤとローカルシンクキーとの組み合わせで各インスタンスを識別管理できる効果が得られる。
【００５１】
シンクロナイゼーションサーバ１０６は、以上の識別情報を参照関係の探索時において各オブジェクトデータから取得し、送信処理時に最新のダウンロード処理実行時のタイムスタンプと、最新のダウンロード処理のタイプ（追加、修正、削除、リセット）と、カスケードダウンロード処理の有無を示すカスケードダウンロードフラグの有効／無効（Ｏｎ／Ｏｆｆ）とをテーブルＴ１に格納する。
【００５２】
また、シンクロナイゼーションサーバ１０６は、図１０に示す各インスタンスの状態管理テーブルＴ２において、さらに、当該データエレメントの作成日時に関するタイムスタンプ及び最終更新履歴に関するタイムスタンプと、データ列（Ｄａｔａ  Ｓｔｒｉｎｇ）と、シンクＢＯに関連付けられた選択条件（Ｆｉｌｔｅｒ  Ｆｉｅｌｄ１〜３）とを管理する。
さらに、シンクロナイゼーションサーバ１０６は、図１１に示す各インスタンスの状態管理テーブルＴ３において、さらに、上述したデータ参照関係／被参照関係ごとに、当該モバイルデバイスに格納されているオブジェクトデータの親子関係として、それぞれ親のシンクＢＯ（Ｐａｒｅｎｔ  ＳｙｎｃＢＯ）、シンクキー（Ｐａｒｅｎｔ  ＳｙｎｃＫｅｙ）、構造識別子（Ｐａｒｅｎｔ  Ｓｔｒｕｃｔｕｒｅ  ＩＤ）の組み合わせと、子のシンクＢＯ（Ｃｈｉｌｄ  ＳｙｎｃＢＯ）、シンクキー（Ｃｈｉｌｄ  ＳｙｎｃＫｅｙ）、構造識別子（Ｃｈｉｌｄ  Ｓｔｒｕｃｔｕｒｅ  ＩＤ）の組み合わせとの間で対応関係を定義し、管理する。
また、シンクロナイゼーションサーバ１０６は、必要に応じて、図１２に示す管理テーブルＴ４において、各データオブジェクト間で定義される親子関係の組み合わせ毎に、カスケードダウンロード処理の許可／不許可を設定するようにしてもよい。
【００５３】
以上のカスケードダウンロード処理により、本実施形態のシンクロナイゼーションサーバを適用したエンタープライズサーバシステムにおいて、モバイルデバイスへ送信するデータ量を削減することが出来るとともに、モバイルデバイス内におけるデータミスを防止することが出来る。
【００５４】
次に、カスケードダウンロードされたシンクＢＯに関わるカスケード削除処理について説明する。
図１３は、本実施形態のシンクロナイゼーションサーバ１０６によるカスケードダウンロード及びカスケード削除のメイン処理の過程を示すフローチャートである。
シンクロナイゼーションサーバ１０６は、上述したカスケードダウンロード処理実行時において（図１３のステップＳ７００〜Ｓ７０３）、カスケードダウンロード処理完了毎に（ステップＳ７０４でＹｅｓ）、現在処理対象のオブジェクトデータに関するカスケードダウンロードデータ（テーブルＴ１〜Ｔ４を参照）を出力するとともに（ステップｓ７０５）、現在処理対象のオブジェクトデータに関するダウンロードデータを出力する。
当該ダウンロードデータには、カスケードダウンロードによってダウンロードされるデータ及び選択条件にヒットしたことをトリガとしてダウンロードされるデータがすべて含まれる。
【００５５】
この処理の流れを図１４のフローチャートを用いて説明する。ステップＳ７０３において、カスケードダウンロードプロセスが呼び出されると、シンクロナイゼーションサーバ１０６は、まず現在処理対象のオブジェクトデータに親のオブジェクトデータが存在するか否かを状態管理テーブルＴ１の親のシンクキー及び構造識別子のフィールドの有無を検査することで判定する（図１４のステップＳ８００）。
親のオブジェクトデータが存在する場合（ステップＳ８００でＹｅｓ）、シンクロナイゼーションサーバ１０６は、この親のオブジェクトデータを読み込む（ステップＳ８０１）。
読み込んだ親のオブジェクトデータの状態管理テーブルＴ２を検査することで、このオブジェクトデータが既にモバイルデバイス１２０にダウンロードされていると判定した場合（ステップＳ８０２でＹｅｓ）、シンクロナイゼーションサーバ１０６は、最初に処理対象であったオブジェクトデータと、読み込んだ親のオブジェクトデータとの親子関係をメモリ内に割り当てられた参照データワークエリアに一時格納する（ステップＳ８０３）。
【００５６】
読み込んだ親のオブジェクトデータがモバイルデバイス１２０にダウンロードされていないと判定した場合（ステップＳ８０２でＮｏ）、シンクロナイゼーションサーバ１０６は、さらに、この親のオブジェクトデータについて、管理テーブルＴ４を検査して、カスケードダウンロードが許可されているか否かを判定する（ステップＳ８０４）。
この親のオブジェクトデータについて、カスケードダウンロードが許可されていない場合（ステップＳ８０４でＮｏ）、シンクロナイゼーションサーバ１０６は、ワークエリアをクリアし（ステップＳ８０５）、カスケードダウンロード処理に失敗したことを示すメッセージを返して（ステップＳ８０６）、プロセスを終了する。
一方、この親のオブジェクトデータについて、カスケードダウンロードが許可されている場合（ステップＳ８０４でＹｅｓ）、シンクロナイゼーションサーバ１０６は、このオブジェクトデータをメモリ内に割り当てられたダウンロード用のワークエリアに一時格納するとともに（ステップＳ８０７）、最初に処理対象であったオブジェクトデータと、読み込んだ親のオブジェクトデータとの親子関係をメモリ内に割り当てられた参照データワークエリアに一時格納する（ステップＳ８０８）。
【００５７】
ダウンロード用のワークエリアにオブジェクトデータを格納し、参照データワークエリアに親子関係を示す参照データを格納後、シンクロナイゼーションサーバ１０６は、処理対象を親のオブジェクトデータとして（ステップＳ８０９）、カスケードダウンロードプロセスを再帰呼出しする（ステップＳ８１０）。これにより、再度、ステップＳ８００〜８１０の処理ルーチンが繰り返し実行され、現在のオブジェクトデータについて、親のオブジェクトデータが存在しなくなると（ステップＳ８００でＮｏ）、このルーチンから抜けて、当該時点におけるダウンロード用のワークエリアに格納されたオブジェクトデータをモバイルデバイス１２０にダウンロードするとともに（ステップＳ８２０）、参照データワークエリアに格納された参照データをレプリカＤＢ１０８内のテーブルＴ１〜Ｔ４に格納する（ステップＳ８２１）。
【００５８】
そして、シンクＢＯの定期更新において、選択条件が更新された場合、シンクロナイゼーションサーバ１０６は、再度、モバイルデバイス１２０、ビジネスオブジェクトＤＢ１０３及びアプリケーションＤＢ１０４間のデータ同期制御を行い、必要に応じて、カスケードダウンロード処理が実行される。
すなわち、シンクロナイゼーションサーバ１０６は、上述したダウンロード公報オブジェクトのリストを読み込み（ステップＳ７００）、読み込むオブジェクトが存在すれば（ステップｓ７０１でＹｅｓ）、現在の処理対象オブジェクトが更新後の選択条件に合致するか否かを判定する（ステップＳ７０２）。
【００５９】
そして、シンクロナイゼーションサーバ１０６は、現在の処理対象オブジェクトが更新後の選択条件に合致しなくなった場合、状態管理テーブルＴ１〜Ｔ４において、このオブジェクトが過去にモバイルデバイス１２０にダウンロードされているか否か（または、ダウンロードされた後、既に削除されているか否か）を現在時刻と、最新のダウンロード処理実行時のタイムスタンプとを比較し、最新のダウンロード処理のタイプ（追加、修正、削除、リセット）を検査することで判定する（ステップＳ７１０）。
そして、当該判定結果により、更新後の選択条件に合致しなくなったオブジェクトデータがモバイルデバイス１２０にダウンロードされた状態であることが認識されると、シンクロナイゼーションサーバ１０６は、カスケード削除処理を開始する。
【００６０】
この処理の流れを図１５のフローチャートを用いて説明する。ステップＳ７１１において、カスケード削除プロセスが呼び出されると、シンクロナイゼーションサーバ１０６は、まず現在処理対象のオブジェクトデータ、つまり、携帯端末が格納する複数のオブジェクトデータのうち、削除対象となった現在の処理対象のオブジェクトデータが他のオブジェクトデータより参照されているか否かを子のオブジェクトデータの有無により判定し、判定結果に基づいて、携帯端末に削除対象のオブジェクトデータの削除命令を出力する。
すなわち、シンクロナイゼーションサーバ１０６は、現在の処理対象のオブジェクトデータを親のシンクキー及び構造識別子とする状態管理テーブルＴ３において、子のシンクキー及び構造識別子のフィールドの有無を検査することで、子のオブジェクトデータの有無を判定する（図１５のステップＳ９００）。
【００６１】
状態管理テーブルＴ３において、子のオブジェクトデータが存在する場合（ステップＳ９００でＹｅｓ）、シンクロナイゼーションサーバ１０６は、この子のオブジェクトデータを読み込む（ステップＳ９０１）。そして、シンクロナイゼーションサーバ１０６は、状態管理テーブルＴ３において、この子のオブジェクトデータから現在の処理対象のオブジェクトデータへの参照データを削除する（ステップＳ９０２）。
参照データの削除後、シンクロナイゼーションサーバ１０６は、処理対象を子のオブジェクトデータとして（ステップＳ９０３）、子オブジェクトのカスケード削除プロセスを再帰呼出しする（ステップＳ９０４）。これにより、再度、ステップＳ９００〜９０４の処理ルーチンが繰り返し実行され、現在のオブジェクトデータについて、子のオブジェクトデータが存在しなくなると（ステップＳ９００でＮｏ）、このルーチンから抜けて、現在処理対象（削除対象）のオブジェクトデータの削除命令を実行する（ステップＳ９０５）。
【００６２】
すなわち、シンクロナイゼーションサーバ１０６は、現在処理対象（削除対象）のオブジェクトデータの削除命令を該当するモバイルデバイス１２０に対して出力する（図１６のステップＳ１０００）。
そして、シンクロナイゼーションサーバ１０６は、現在処理対象のオブジェクトデータ、つまり、携帯端末が格納する複数のオブジェクトデータのうち、削除対象となった現在の処理対象のオブジェクトデータが他のオブジェクトデータを参照しているか否かを親のオブジェクトデータの有無により判定し、判定結果に基づいて、携帯端末に削除対象のオブジェクトデータの削除命令を出力する。
すなわち、シンクロナイゼーションサーバ１０６は、現在の処理対象のオブジェクトデータを子のシンクキー及び構造識別子とする状態管理テーブルＴ３を検索し、該当するテーブルがあれば、さらに、当該テーブルにおける親のシンクキー及び構造識別子のフィールドの有無を検査することで、子のオブジェクトデータの有無を判定する（ステップＳ１００１）。
【００６３】
状態管理テーブルＴ３において、親のオブジェクトデータが存在する場合（ステップＳ１００１でＹｅｓ）、シンクロナイゼーションサーバ１０６は、この親のオブジェクトデータを読み込む（ステップＳ１００２）。そして、シンクロナイゼーションサーバ１０６は、状態管理テーブルＴ３において、この親のオブジェクトデータから現在の処理対象のオブジェクトデータへの参照データを削除する（ステップＳ１００３）。
参照データの削除後、シンクロナイゼーションサーバ１０６は、現在の処理対象のオブジェクトデータと参照関係を有していた、この親のオブジェクトデータに対して、カスケードダウンロード時に設定されるカスケードダウンロードフラグを検査して、この親のデータオブジェクトがカスケードダウンロードされたオブジェクトデータであるか否かを判定する（ステップＳ１００４）。
この親オブジェクトがカスケードダウンロードされたオブジェクトデータである場合、シンクロナイゼーションサーバ１０６は、さらに、この親のオブジェクトデータが他のオブジェクトデータより参照されているか否かを判定する。
【００６４】
すなわち、シンクロナイゼーションサーバ１０６は、この親のオブジェクトデータを親のシンクキー及び構造識別子とする他の状態管理テーブルＴ３を検索し、該当するテーブルがあれば、さらに、当該テーブルにおける子のシンクキー及び構造識別子のフィールドの有無を検査することで、子のオブジェクトデータの有無を判定する（ステップＳ１００５）。
該当する他の状態管理テーブルＴ３が存在しない場合（ステップＳ１００５でＮｏ）、カスケードダウンロード処理によって、ダウンロード選択された当該親のオブジェクトデータは、不必要であるとともに、モバイルデバイス１２０のメモリ圧迫の要因となるため、シンクロナイゼーションサーバ１０６は、参照関係を有する親のオブジェクトデータを処理対象（削除対象）として（ステップＳ１００６）、親オブジェクトのカスケード削除プロセスを再帰呼出しする（ステップＳ１００７）。
これにより、再度、ステップＳ１００１〜１００７の処理ルーチンが繰り返し実行され、現在のオブジェクトデータについて、親のオブジェクトデータが存在しなくなると（ステップＳ１００１でＮｏ）、このルーチンから抜けて、カスケード削除処理を終了する。
【００６５】
以上のカスケード削除処理により、本実施形態のシンクロナイゼーションサーバを適用したエンタープライズサーバシステムにおいて、カスケードダウンロード処理の有無を考慮して、モバイルデバイス１２０のメモリ内に格納されたオブジェクトデータ間の参照関係／被参照関係に基づいて、データの必要性を考慮し、削除するデータを適切に選択し、削除することが出来る効果が得られる。
したがって、モバイルデバイス１２０のメモリ領域を有効活用することが出来るため、メモリ等のハードウェアコストの削減にもつながるという効果が得られる。
【００６６】
なお、本実施形態においては、図１５のステップＳ９０４において、子オブジェクトのカスケード削除プロセスを再帰呼出しする例を示し、特にループ回数については言及しなかったが、本発明はこれに限られるものではなく、実装効率の観点から、子オブジェクトのカスケード削除プロセスの再帰呼出しを一定数以下に制限するようにしてもよい。この場合、シンクロナイゼーションサーバ１０６は、図６に示すステップＳ４３０において、探索でヒットしたＢＯインスタンスの分類・整列方向を予め一定方向、例えば、ＢＯインスタンスの参照・被参照関係に基づく上流方向（親オブジェクト）から下流方向（子オブジェクト）という形に設定しておく。
【００６７】
そして、図７のステップＳ７１１において、カスケード削除プロセスが呼び出されると、シンクロナイゼーションサーバ１０６は、図１５のステップＳ９００〜ステップＳ９０４において、同様に、カスケード削除処理を行った後、子オブジェクトのカスケード削除プロセスを再帰呼出しする。このとき、シンクロナイゼーションサーバ１０６は、子オブジェクトのカスケード削除プロセスの再帰呼出し回数をカウントしておく。ここでは、再帰呼出し回数が１インクリメントされて、再帰呼出し回数１がカスケード削除プロセスに割り当てられたメモリ空間に格納される。
ステップＳ９０４において、カスケード削除プロセスが再帰呼び出されると、シンクロナイゼーションサーバ１０６は、さらに、図１５のステップＳ９００〜ステップＳ９０２を繰り返し実行する。そして、Ｓ９０２において、カスケード削除処理を行った後、シンクロナイゼーションサーバ１０６は、メモリに書き込まれた子オブジェクトのカスケード削除プロセスの再帰呼出し制限回数をチェックし、制限回数を超えていなければ、子オブジェクトのカスケード削除プロセスを再帰呼出しする（ステップＳ９０３、Ｓ９０４）。一方、制限回数を越えている場合、子オブジェクトのカスケード削除プロセスの再帰呼出しを行わない。
【００６８】
したがって、例えば、子オブジェクトのカスケード削除プロセスの再帰呼出し制限回数を１にセットしておけば、ループ処理時間及びシステムリソースの削減ができる効果が得られる。
また、このように、子オブジェクトのカスケード削除プロセスの再帰呼出し回数を制限しても、さらに、ステップＳ１０００〜Ｓ１００７において、親オブジェクトのカスケード削除プロセスを繰り返し再帰呼出しすることで、回数制限が無い場合と同様に、すべての削除対象オブジェクトを選択することができる効果が得られる。
【００６９】
上述のエンタープライズサーバ１０２、シンクロナイゼーションサーバ１０６、モバイルデバイス１２０は、内部に、コンピュータシステムを有している。
そして、上述したカスケードダウンロード処理、カスケード削除処理に関する一連の処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。
すなわち、エンタープライズサーバ１０２、シンクロナイゼーションサーバ１０６、モバイルデバイス１２０における、各処理手段、処理部は、ＣＰＵ等の中央演算処理装置がＲＯＭやＲＡＭ等の主記憶装置に上記プログラムを読み出して、情報の加工・演算処理を実行することにより、実現されるものである。
ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【００７０】
【発明の効果】
以上説明したように、本発明は、携帯端末が格納する複数のオブジェクトデータのうち、削除対象のオブジェクトデータにおける他のオブジェクトデータからの参照関係／被参照関係の有無を判定して、携帯端末にオブジェクトデータの削除命令を出力するので、データベースシステムと携帯端末間において、効率的にデータ同期処理を行うことができる効果が得られる。
【図面の簡単な説明】
【図１】エンタープライズサーバシステムの構成図。
【図２】ビジネスオブジェクト２００の機能階層の構造図。
【図３】ビジネスオブジェクト２００のデータ構造図。
【図４】シンクＢＯのデータ構造図。
【図５】シンクＢＯのデータ構造及び参照関係図。
【図６】カスケードダウンロード処理のフローチャート。
【図７】レプリカＤＢ１０８のデータ構造図。
【図８】モバイルデバイス１２０へのダウンロードデータの構造図。
【図９】状態管理テーブルＴ１のテーブル構成図。
【図１０】状態管理テーブルＴ２のテーブル構成図。
【図１１】状態管理テーブルＴ３のテーブル構成図。
【図１２】管理テーブルＴ４のテーブル構成図。
【図１３】カスケードダウンロード及びカスケード削除のメイン処理のフローチャート。
【図１４】カスケードダウンロード処理のフローチャート。
【図１５】子オブジェクトのカスケード削除処理のフローチャート。
【図１６】親オブジェクトのカスケード削除処理のフローチャート。
【符号の説明】
１００…エンタープライズサーバシステム
１０２…エンタープライズサーバ
１０３…ビジネスオブジェクトＤＢ
１０４…アプリケーションＤＢ
１０６…シンクロナイゼーションサーバ（データ同期装置）
１０８…レプリカＤＢ
１１０…ネットワーク
１２０−１〜１２０−３、ｎ…モバイルデバイス（携帯端末）
２００…ビジネスオブジェクト
２０２…カーネル層
２０４…インテグリティ層
２０２…インターフェイス層
２０７…オブジェクトインターフェイス
２０８…アクセス層
２１０…ビジネスオブジェクトメソッド
５１０、５２０、５３０…シンクＢＯ
５１１、５１３、５１５、５１７、５２１、５２３、５２５、５３１、５３３、５３５、６１１、６１３、６２１、６２３、６３１、６３３…シンクキー
５１２、５１４、５１６、５１８、５２２、５２４、５２６、５３２、５３４、５３６、６１２、６１４、６２２、６２４、６３２、６３４…インスタンス
Ｔ１〜Ｔ４…状態管理テーブル、管理テーブル
【図１】
2005025362.tif 000003
【図２】
2005025362.tif 000004
【図３】
2005025362.tif 000005
【図４】
2005025362.tif 000006
【図５】
2005025362.tif 000007
【図６】
2005025362.tif 000008
【図７】
2005025362.tif 000009
【図８】
2005025362.tif 000010
【図９】
2005025362.tif 000011
【図１０】
2005025362.tif 000012
【図１１】
2005025362.tif 000013
【図１２】
2005025362.tif 000014
【図１３】
2005025362.tif 000015
【図１４】
2005025362.tif 000016
【図１５】
2005025362.tif 000017
【図１６】
2005025362.tif 000018