(57)【要約】      （修正有）【課題】できるだけ少ないデータ量でクライアント側のＸＭＬデータの更新を可能としたＸＭＬデータ更新方法を提供する。【解決手段】ＸＭＬデータ更新システムでは、移動機３０に提供されるＸＭＬデータが更新される際、オリジンサーバ１０は、更新前のＸＭＬデータと更新後のＸＭＬデータとの差分を表すＸＳＬＴデータを生成し、移動機３０へ送信する。移動機３０は、このＸＳＬＴデータに基づいて、保持している更新前のＸＭＬデータを更新し、更新後のＸＭＬデータを保持する。【選択図】図１
2008293506.tif 000002
【特許請求の範囲】
【請求項１】
サーバからクライアントへ提供される、１又は複数の要素を構造化して構成される構造化文書データを更新する構造化文書データ更新方法において、
更新前の構造化文書データと更新後の構造化文書データとの差分を表す差分データを、更新前後の構造化文書データの階層構造を表す階層情報に基づいて前記サーバにより生成するステップと、
前記生成した差分データを前記クライアントへ送信するステップと、
を有し、前記クライアントにおいて、該差分データに基づいて、保有する構造化文書データが更新され、
前記差分データを生成する際、
前記更新前の構造化文書データの階層情報に基づいて、該更新前の構造化文書データを構成する要素と該要素の直下の要素とを特定する第１の部品を生成するとともに、前記更新後の構造化文書データの階層情報に基づいて、該更新後の構造化文書データを構成する要素と該要素の直下の要素とを特定する第２の部品を生成し、
前記第１及び第２の部品の対応付けを行い、
前記対応付けの結果に基づいて、前記差分データを生成し、
差分データが更新後の構造化文書データより小さい場合に、差分データがクライアントに送信されるようにした構造化文書データ更新方法。
【請求項２】
サーバからクライアントへ提供される、１又は複数の要素を構造化して構成される構造化文書データを更新する構造化文書データ更新方法において、
前記サーバにより、更新前の構造化文書データと更新後の構造化文書データとの差分を表す差分データを、更新前後の構造化文書データの階層構造を表す階層情報に基づいて生成するステップと、
前記生成した差分データを前記クライアントへ送信するステップと、
を有し、前記クライアントにおいて、該差分データに基づいて、保有する構造化文書データが更新され、
前記差分データを生成する際、
前記更新前の構造化文書データの階層情報に基づいて、更新前の要素の構成パターンを要素がない場合を含め、最上位の要素を除外して生成するとともに、前記更新後の構造化文書データの階層情報に基づいて、更新後の要素の構成パターンを要素がない場合を含め、最上位の要素を除外して生成し、
前記生成した更新前の要素の構成パターンの全てと更新後の要素の構成パターンの全てとを組み合わせ、
前記各組み合わせにおいて、更新前の構造化文書を構成するノードから該組み合わせに対応する更新前の要素の構成パターンを削除するとともに、更新後の構造化文書を構成するノードから該組み合わせに対応する更新後の要素の構成パターンを削除し、
前記削除後の更新前の構造化文書を構成するノードと更新後の構造化文書を構成するノードとにおいて、一致する要素が最も多い前記組み合わせに基づいて、前記差分データを生成するようにした生成し、
差分データが更新後の構造化文書データより小さい場合に、差分データがクライアントに送信されるようにした構造化文書データ更新方法。
【請求項３】
クライアントへ１又は複数の要素を構造化して構成される構造化文書データを提供する情報提供サーバにおいて、
更新前の構造化文書データと更新後の構造化文書データとの差分を表す差分データを、更新前後の構造化文書データの階層構造を表す階層情報に基づいて生成する差分データ生成手段と、
前記生成された差分データを前記クライアントへ送信する差分データ送信手段と、
を備え、前記差分データ生成手段は、
前記更新前の構造化文書データの階層情報に基づいて、該更新前の構造化文書データを構成する要素と該要素の直下の要素とを特定する第１の部品を生成するとともに、前記更新後の構造化文書データの階層情報に基づいて、該更新後の構造化文書データを構成する要素と該要素の直下の要素とを特定する第２の部品を生成し、
前記第１及び第２の部品の対応付けを行い、
前記対応付けの結果に基づいて、前記差分データを生成し、
差分データが更新後の構造化文書データより小さい場合に、差分データがクライアントに送信されるようにした情報提供サーバ。
【請求項４】
クライアントへ１又は複数の要素を構造化して構成される構造化文書データを提供する情報提供サーバにおいて、
更新前の構造化文書データと更新後の構造化文書データとの差分を表す差分データを、更新前後の構造化文書データの階層構造を表す階層情報に基づいて生成する差分データ生成手段と、
前記生成された差分データを前記クライアントへ送信する差分データ送信手段と、
を備え、前記差分データ生成手段は、
前記更新前の構造化文書データの階層情報に基づいて、更新前の要素の構成パターンを要素がない場合を含め、最上位の要素を除外して生成するとともに、前記更新後の構造化文書データの階層情報に基づいて、更新後の要素の構成パターンを要素がない場合を含め、最上位の要素を除外して生成し、
前記生成した更新前の要素の構成パターンの全てと更新後の要素の構成パターンの全てとを組み合わせ、
前記各組み合わせにおいて、更新前の構造化文書を構成するノードから該組み合わせに対応する更新前の要素の構成パターンを削除するとともに、更新後の構造化文書を構成するノードから該組み合わせに対応する更新後の要素の構成パターンを削除し、
前記削除後の更新前の構造化文書を構成するノードと更新後の構造化文書を構成するノードとにおいて、一致する要素が最も多い前記組み合わせに基づいて、前記差分データを生成し、
差分データが更新後の構造化文書データより小さい場合に、差分データがクライアントに送信されるようにした生成するようにした情報提供サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバからクライアントへ提供される、１又は複数の要素を構造化して構成される構造化文書データを更新する構造化文書データ更新方法に関する。
【背景技術】
【０００２】
従来より、１又は複数の要素を構造化して構成される構造化文書であるＸＭＬ（extensible markup language）や、ＨＴＭＬ（hyper text markup language）を初めとする様々な形式のデータをサーバからクライアントへ提供するシステムが利用されている。このようなシステムでは、サーバは、データの一部のみが修正された場合であっても、その修正をクライアント側のデータに反映させるために、データの全体をクライアントへ送信していた。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述したように、サーバがデータの全体をクライアントへ送信すると、データ量が大きい場合には、通信ネットワークの混雑を引き起こす可能性がある。また、データの転送時間が長くなることにより、クライアント側でデータの更新が終了するまでに、サーバとクライアントとの間でデータの不一致期間が長くなるという問題がある。
【０００４】
このため、できるだけ少ないデータ量でクライアント側のデータの更新が可能になるようなデータ更新方法が要求されている。特に、情報の共有を容易にするデータ形式であるＸＭＬ形式のデータの更新について、更新前のデータと更新後のデータとの間に関連性がない場合（例えばファイル名が異なる場合）には、サーバは、データの全体をクライアントへ送信せざるを得なかったため、かかる要求が高まっている。
【０００５】
本発明は、このような問題点を解決するものであり、その目的は、できるだけ少ないデータ量でクライアント側の構造化文書データの更新を可能とした構造化文書データ更新方法を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の一形態では、サーバからクライアントへ提供される、１又は複数の要素を構造化して構成される構造化文書データを更新する構造化文書データ更新方法が使用される。本方法は、
更新前の構造化文書データと更新後の構造化文書データとの差分を表す差分データを、更新前後の構造化文書データの階層構造を表す階層情報に基づいて前記サーバにより生成するステップと、
前記生成した差分データを前記クライアントへ送信するステップと、
を有する。
【０００７】
前記クライアントにおいて、該差分データに基づいて、保有する構造化文書データが更新され、
前記差分データを生成する際、
前記更新前の構造化文書データの階層情報に基づいて、該更新前の構造化文書データを構成する要素と該要素の直下の要素とを特定する第１の部品を生成するとともに、前記更新後の構造化文書データの階層情報に基づいて、該更新後の構造化文書データを構成する要素と該要素の直下の要素とを特定する第２の部品を生成し、
前記第１及び第２の部品の対応付けを行い、
前記対応付けの結果に基づいて、前記差分データを生成し、
差分データが更新後の構造化文書データより小さい場合に、差分データがクライアントに送信される。
【発明の効果】
【０００８】
本発明の一形態によれば、少ないデータ量でクライアント側の構造化文書データを更新することができる。
【発明を実施するための最良の形態】
【０００９】
上記の目的を達成するため、本発明の一形態によれば、サーバからクライアントへ提供される、１又は複数の要素を構造化して構成される構造化文書データを更新する構造化文書データ更新方法において、前記サーバは、更新前の構造化文書データと更新後の構造化文書データとの差分を表す差分データを生成し、前記生成した差分データを前記クライアントへ送信し、前記クライアントは、前記サーバから送信される差分データに基づいて、保有する構造化文書データを更新するようにした。
【００１０】
このような構造化文書データ更新方法では、サーバは、クライアントに対して、更新後の構造化文書データの全体を送信するのではなく、更新前の構造化文書データと更新後の構造化文書データとの差分のデータを生成して送信するだけで良い。このため、できるだけ少ないデータ量でクライアント側の構造化文書データを更新することができ、通信ネットワークの混雑を防止するとともに、サーバとクライアントとの間での構造化文書データの不一致期間を短縮することが可能となる。
【００１１】
また、上記の目的を達成するため、本発明の一形態によれば、サーバからクライアントへ提供される、１又は複数の要素を構造化して構成される構造化文書データを更新する構造化文書データ更新方法において、前記サーバは、更新前の構造化文書データと更新後の構造化文書データとの差分を表す差分データを生成し、前記生成した差分データを前記クライアントへ送信し、前記クライアントにおいて、該差分データに基づいて、保有する構造化文書データが更新されるようにした。
【００１２】
このような構造化文書データ更新方法では、上記の一形態に係る発明と同様、サーバは、クライアントに対して、更新後の構造化文書データの全体を送信するのではなく、更新前の構造化文書データと更新後の構造化文書データとの差分のデータを生成して送信するだけで良い。このため、できるだけ少ないデータ量でクライアント側の構造化文書データを更新することができ、通信ネットワークの混雑を防止するとともに、サーバとクライアントとの間での構造化文書データの不一致期間を短縮することが可能となる。
【００１３】
また、本発明の一形態によれば、前記構造化文書データ更新方法において、更新前の構造化文書データと更新後の構造化文書データとの差分を表す差分データを生成する際に、前記更新前及び更新後の構造化文書データの階層構造を表す階層情報に基づいて生成するようにした。
【００１４】
この場合には、更新前及び更新後の構造化文書データの階層構造を表す階層情報に基づいて差分データを生成することにより、更新前の構造化文書データと更新後の構造化文書データとの差分を容易に表すことが可能となる。
【００１５】
また、本発明の一形態によれば、前記構造化文書データ更新方法において、前記更新前の構造化文書データの階層情報と、前記更新後の構造化文書データの階層情報とに基づいて、前記更新前及び更新後の構造化文書データを構成する最上位の要素から配下の要素に向けて探索し、異なる要素が存在した場合に、該異なる要素とその配下の要素とを差分とした差分データを生成するようにした。
【００１６】
この場合には、更新前の構造化文書データと更新後の構造化文書データとの間に異なる要素が存在した場合に、その異なる要素とその配下の要素とを差分とみなして差分データを生成するため、探索に要する時間を短縮し、迅速に差分データを生成することができる。
【００１７】
また、本発明の一形態によれば、前記構造化文書データ更新方法において、前記更新前の構造化文書データの階層情報に基づいて、該更新前の構造化文書データを構成する要素を第１の２次元配列に展開するとともに、前記更新後の構造化文書データの階層情報に基づいて、該更新後の構造化文書データを構成する要素を第２の２次元配列に展開し、前記第１の２次元配列の各列と前記第２の２次元配列の各列との一致の度合を検出し、前記一致の度合に基づいて、前記差分データを生成するようにした。
【００１８】
この場合には、更新前の構造化文書データの階層情報に基づく第1の２次元配列と、更新後の構造化文書データの階層情報に基づく第２の２次元配列との一致の度合に基づいて、差分データを生成することにより、挿入、追加、削除、変更等の対象となる要素の情報のみを差分データに含ませることができ、差分データ内の情報を必要最小限とすることができる。
【００１９】
また、本発明の一形態によれば、前記構造化文書データ更新方法において、前記更新前の構造化文書データの階層情報に基づいて、該更新前の構造化文書データを構成する要素と該要素の直下の要素とを特定する第１の部品を生成するとともに、前記更新後の構造化文書データの階層情報に基づいて、該更新後の構造化文書データを構成する要素と該要素の直下の要素とを特定する第２の部品を生成し、前記第１及び第２の部品の対応付けを行い、前記対応付けの結果に基づいて、前記差分データを生成するようにした。
【００２０】
この場合には、更新前の構造化文書データの階層情報に基づく部品と、更新後の構造化文書データの階層情報に基づく部品との対応付けの結果に基づいて、差分データを生成することにより、上記一形態に係る発明と同様、挿入、追加、削除、変更等の対象となる要素の情報のみを差分データに含ませることができ、差分データ内の情報を必要最小限とすることができる。
【００２１】
また、本発明の一形態によれば、前記構造化文書データ更新方法において、前記更新前の構造化文書データの階層情報に基づいて、更新前の要素の構成パターンを要素がない場合を含め、最上位の要素を除外してて生成するとともに、前記更新後の構造化文書データの階層情報に基づいて、更新後の要素の構成パターンを要素がない場合を含め、最上位の要素を除外して生成し、前記生成した更新前の要素の構成パターンの全てと更新後の要素の構成パターンの全てとを組み合わせ、前記各組み合わせにおいて、更新前の構造化文書を構成するノードから該組み合わせに対応する更新前の要素の構成パターンを削除するとともに、更新後の構造化文書を構成するノードから該組み合わせに対応する更新後の要素の構成パターンを削除し、前記削除後の更新前の構造化文書を構成するノードと更新後の構造化文書を構成するノードとにおいて、一致する要素が最も多い前記組み合わせに基づいて、前記差分データを生成するようにした。
【００２２】
この場合には、更新前と更新後で一致しない要素の組み合わせを容易に特定することができ、この組み合わせに基づいて、差分データを生成することにより、上記一形態に係る発明と同様、挿入、追加、削除、変更等の対象となる要素の情報のみを差分データに含ませることができ、差分データ内の情報を必要最小限とすることができる。
【００２３】
なお、要素の構成パターンとは、構造化文書データを構成する要素に要素なしを含め、最上位の要素を除外したものを１個乃至最大個数選択することによって得られる全ての組み合わせを指す。
【００２４】
また、本発明の一形態によれば、前記構造化文書データ更新方法において、前記構造化文書はＸＭＬデータであり、前記差分データはＸＳＬＴ（extensible stylesheets language transformations）データであり、前記階層情報はＤＯＭ（document object model ）ツリーであるようにした。
【００２５】
構造化文書データがＸＭＬデータの場合、更新前のＸＭＬデータと更新後のＸＭＬデータの差分は、ＸＳＬＴデータにより表すことができる。また、ＤＯＭツリーは、ＸＭＬデータの階層構造を表す情報として標準的に用いられている。従って、このＤＯＭツリーを利用して差分データであるＸＳＬＴデータを生成することにより、新たにＸＭＬデータの階層構造を表す階層情報を定める必要がなく、本発明の汎用的な利用が可能となる。
【００２６】
また、上記の目的を達成するため、本発明の一形態によれば、クライアントへ１又は複数の要素を構造化して構成される構造化文書データを提供する情報提供サーバにおいて、更新前の構造化文書データと更新後の構造化文書データとの差分を表す差分データを生成する差分データ生成手段と、前記生成された差分データを前記クライアントへ送信する差分データ送信手段とを備える。
【００２７】
このような情報提供サーバは、クライアントに対して、更新後の構造化文書データの全体を送信するのではなく、更新前の構造化文書データと更新後の構造化文書データとの差分のデータを生成して送信するだけで良い。このため、できるだけ少ないデータ量でクライアント側の構造化文書データを更新することができ、通信ネットワークの混雑を防止するとともに、サーバとクライアントとの間での構造化文書データの不一致期間を短縮することが可能となる。
【００２８】
また、本発明の一形態によれば、前記情報提供サーバにおいて、前記差分データ生成手段は、前記更新前及び更新後の構造化文書データの階層構造を表す階層情報に基づいて前記差分データを生成するようにした。
【００２９】
この場合には、更新前及び更新後の構造化文書データの階層構造を表す階層情報に基づいて差分データを生成することにより、更新前の構造化文書データと更新後の構造化文書データとの差分を容易に表すことが可能となる。
【００３０】
また、本発明の一形態によれば、前記情報提供サーバにおいて、前記差分データ生成手段は、前記更新前の構造化文書データの階層情報と、前記更新後の構造化文書データの階層情報とに基づいて、前記更新前及び更新後の構造化文書データを構成する最上位の要素から配下の要素に向けて探索し、異なる要素が存在した場合に、該異なる要素とその配下の要素とを差分とした差分データを生成するようにした。
【００３１】
この場合には、更新前の構造化文書データと更新後の構造化文書データとの間に異なる要素が存在した場合に、その異なる要素とその配下の要素とを差分とみなして差分データを生成するため、探索に要する時間を短縮し、迅速に差分データを生成することができる。
【００３２】
また、本発明の一形態によれば、前記情報提供サーバにおいて、前記差分データ生成手段は、前記更新前の構造化文書データの階層情報に基づいて、該更新前の構造化文書データを構成する要素を第1の２次元配列に展開するとともに、前記更新後の構造化文書データの階層情報に基づいて、該更新後の構造化文書データを構成する要素を第２の２次元配列に展開し、前記第１の２次元配列の各列と前記第２の２次元配列の各列との一致の度合を検出し、前記一致の度合に基づいて、前記差分データを生成するようにした。
【００３３】
この場合には、更新前の構造化文書データの階層情報に基づく第1の２次元配列と、更新後の構造化文書データの階層情報に基づく第２の２次元配列との一致の度合に基づいて、差分データを生成することにより、挿入、追加、削除、変更等の対象となる要素の情報のみを差分データに含ませることができ、差分データ内の情報を必要最小限とすることができる。
【００３４】
また、本発明の一形態によれば、前記情報提供サーバにおいて、前記差分データ生成手段は、前記更新前の構造化文書データの階層情報に基づいて、該更新前の構造化文書データを構成する要素と該要素の直下の要素とを特定する第１の部品を生成するとともに、前記更新後の構造化文書データの階層情報に基づいて、該更新後の構造化文書データを構成する要素と該要素の直下の要素とを特定する第２の部品を生成し、前記第１及び第２の部品の対応付けを行い、前記対応付けの結果に基づいて、前記差分データを生成するようにした。
【００３５】
この場合には、更新前の構造化文書データの階層情報に基づく部品と、更新後の構造化文書データの階層情報に基づく部品との対応付けの結果に基づいて、差分データを生成することにより、上記一形態に係る発明と同様、挿入、追加、削除、変更等の対象となる要素の情報のみを差分データに含ませることができ、差分データ内の情報を必要最小限とすることができる。
【００３６】
また、本発明の一形態によれば、前記情報提供サーバにおいて、前記差分データ生成手段は、前記更新前の構造化文書データの階層情報に基づいて、更新前の要素の構成パターンを要素がない場合を含め、最上位の要素を除外してて生成するとともに、前記更新後の構造化文書データの階層情報に基づいて、更新後の要素の構成パターンを要素がない場合を含め、最上位の要素を除外して生成し、前記生成した更新前の要素の構成パターンの全てと更新後の要素の構成パターンの全てとを組み合わせ、前記各組み合わせにおいて、更新前の構造化文書を構成するノードから該組み合わせに対応する更新前の要素の構成パターンを削除するとともに、更新後の構造化文書を構成するノードから該組み合わせに対応する更新後の要素の構成パターンを削除し、前記削除後の更新前の構造化文書を構成するノードと更新後の構造化文書を構成するノードとにおいて、一致する要素が最も多い前記組み合わせに基づいて、前記差分データを生成するようにした。
【００３７】
この場合には、更新前と更新後で一致しない要素の組み合わせを容易に特定することができ、この組み合わせに基づいて、差分データを生成することにより、上記一形態に係る発明と同様、挿入、追加、削除、変更等の対象となる要素の情報のみを差分データに含ませることができ、差分データ内の情報を必要最小限とすることができる。
【００３８】
また、本発明の一形態によれば、前記情報提供サーバにおいて、前記構造化文書はＸＭＬデータであり、前記差分データはＸＳＬＴデータであり、前記階層情報はＤＯＭツリーであるようにした。
【００３９】
構造化文書データがＸＭＬデータの場合、更新前のＸＭＬデータと更新後のＸＭＬデータの差分は、ＸＳＬＴデータにより表すことができる。また、ＤＯＭツリーは、ＸＭＬデータの階層構造を表す情報として標準的に用いられている。従って、このＤＯＭツリーを利用して差分データであるＸＳＬＴデータを生成することにより、新たにＸＭＬデータの階層構造を表す階層情報を定める必要がなく、本発明の汎用的な利用が可能となる。
【実施例１】
【００４０】
以下、本発明の実施の形態を図面に基づいて説明する。図１は、本発明が適用されるＸＭＬデータ更新システムの構成例を示す図である。同図に示すＸＭＬデータ更新システム１は、提供対象のコンテンツである、１又は複数の要素（ノード）によって構成される構造化文書としてのＸＭＬデータの保持及び公開を行うとともに、ＸＭＬデータの更新の際に、更新前のＸＭＬデータと更新後のＸＭＬデータとの差分の検出と差分データとしてのＸＳＬＴデータの生成を行うオリジンサーバ１０と、該オリジンサーバ１０からＸＭＬデータの提供を受けるクライアントとしての移動機３０と、これらオリジンサーバ１０と移動機３０とを接続する通信ネットワークとしてのインターネット４０により構成される。
【００４１】
このＸＭＬデータ更新システム１では、移動機３０に提供されるＸＭＬデータが更新される際、オリジンサーバ１０は、更新前のＸＭＬデータと更新後のＸＭＬデータとの差分を表す差分データとしてのＸＳＬＴデータを生成し、移動機３０へ送信する。移動機３０は、このＸＳＬＴデータに基づいて、保持している更新前のＸＭＬデータを更新し、更新後のＸＭＬデータを保持する。
【００４２】
図２は、オリジンサーバ１０の詳細な構成例である。同図に示すオリジンサーバ１０は、コンテンツであるＸＭＬデータの登録処理、クライアントである移動機３０に対するＸＭＬデータの配信処理、及びＸＭＬデータが更新された場合に更新前のＸＭＬデータと更新後のＸＭＬデータとの差分を表すＸＳＬＴデータを生成し、移動機３０へ提供する処理を行う。
【００４３】
このオリジンサーバ１０は、ネットワークインタフェース部１１、プロトコル部１２、コンテンツ登録サーバ部１３、コンテンツ保存部１４、Ｗｅｂサーバ部１５、更新検出部１６、差分生成部１７及びプッシュメッセージ作成部１８を備える。
【００４４】
図３は、移動機３０の詳細な構成例である。同図に示す移動機３０は、オリジンサーバ１０からのＸＭＬデータの取得処理と、オリジンサーバ１０からのＸＳＬＴデータに基づくＸＭＬデータの更新処理とを行う。
【００４５】
この移動機３０は、リクエスト作成部３１、プロトコル部３２、ネットワークインタフェース部３３、コンテンツ制御部３４及びコンテンツ保存部３５を備える。
【００４６】
ＸＭＬデータの登録処理は、外部装置（図示せず）がオリジンサーバ１０に対してＸＭＬデータを送信することが契機となる。具体的には、外部装置は、例えばファイル転送プロトコルであるＦＴＰ（file transfer protocol）により、インターネット４０、オリジンサーバ１０内のネットワークインタフェース部１１及びプロトコル部１２を介してコンテンツ登録サーバ部１３にアクセスする。
【００４７】
プロトコル部１２は、パケットを取得すると、ＸＭＬデータを復原してコンテンツ登録サーバ１３へ出力する。コンテンツ登録サーバ部１３は、ＸＭＬデータを登録するためのＦＴＰサーバアプリケーションによってＸＭＬデータを受信し、外部装置からＸＭＬデータが送信される毎に、そのＸＭＬデータをコンテンツ保存部１４に登録する。
【００４８】
なお、コンテンツ保存部１４にあるＸＭＬデータが既に登録されている場合に、更に、外部装置がそのＸＭＬデータを更新したＸＭＬデータを送信した場合には、コンテンツ登録サーバ部１３は、既に登録されているＸＭＬデータを削除や上書きすることなく、更新したＸＭＬデータを登録するようにする。また、ＸＭＬデータが複数回更新された場合には、コンテンツ登録サーバ部１３は、最新のＸＭＬデータを新たに登録する。更新された古いＸＭＬデータの保存数は予め決められており、この数を超えた場合には、古いＸＭＬデータから順に削除される。従って、コンテンツ保存部１４には、更新前のＸＭＬデータと、更新後のＸＭＬデータの双方が登録されることになる。
【００４９】
また、コンテンツ登録サーバ部１３は、登録したＸＭＬデータに対応する履歴ファイルを生成し、ＸＭＬデータに対応付けてコンテンツ保存部１４に登録する。図４は、履歴ファイルの一例を示す図である。同図に示す履歴ファイルは、対応するＸＭＬデータの登録日時、データ名及び対応するＵＲＬ（uniform resource locator）により構成される。これらの情報のうち、登録日時は、更新したＸＭＬデータが登録される毎に、書き換えられる。
【００５０】
オリジンサーバ１０によるＸＭＬデータの配信処理及び移動機３０によるＸＭＬデータの取得処理は、移動機３０がオリジンサーバ１０に対してＸＭＬデータを取得することができるプロトコルを用いてメッセージ取得のためのリクエストを送信することが契機となる。具体的には、移動機３０内のリクエスト作成部３１は、プロトコル部３２、ネットワークインタフェース部３３、インターネット４０、オリジンサーバ１０内のネットワークインタフェース部１１及びプロトコル部１２を介してＷｅｂサーバ部１５にアクセスし、ＨＴＴＰリクエストを作成して出力する。このＨＴＴＰリクエストは、プロトコル部３２によって通信プロトコルに応じたパケットに分割され、ネットワークインタフェース３３及びインターネット４０を介してオリジンサーバ１０へ送信される。
【００５１】
オリジンサーバ１０内のプロトコル部１２は、ネットワークインタフェース部１１を介して、このパケットを取得すると、ＨＴＴＰリクエストを復原してＷｅｂサーバ部１５へ出力する。
【００５２】
Ｗｅｂサーバ部１５は、ＨＴＴＰリクエストを取得すると、ＸＭＬデータを配信するためのＨＴＴＰサーバアプリケーション等を起動して、ＨＴＴＰリクエスト内のＵＲＬを抽出し、更に移動機３０が差分データの転送要求を行っているか否かを判定する。次に、Ｗｅｂサーバ部１５は、コンテンツ保存部１４に登録されている履歴ファイルを検索する。もし、その履歴ファイルの登録日時が差分データの転送要求メッセージに含まれる、移動機キャッシュデータの登録日時よりも新しい日時であった場合には、ＸＭＬデータが更新されたということであるから、Ｗｅｂサーバ部１５は、差分生成部１７に対してＸＳＬＴデータの生成を要求する。
【００５３】
差分生成部１７は、移動機キャッシュデータの登録日時に対応する古いＸＭＬデータと更新後のＸＭＬデータとの差分に応じたＸＳＬＴデータを生成する。次に、差分生成部１７は、その生成したＸＳＬＴデータをＷｅｂサーバ部１５へ送る。Ｗｅｂサーバ部１５は、差分生成部１７から受信したＸＳＬＴデータをＨＴＴＰリプライに包含して出力する。もし、差分生成部１７がＸＳＬＴデータの生成を失敗した場合には、更新後のＸＭＬデータをコンテンツ保存部１４から読み出し、ＸＳＬＴデータでなく、この更新後のＸＭＬデータをＨＴＴＰリプライに包含して出力する。
【００５４】
なお、ＸＳＬＴデータのサイズが更新後のＸＭＬデータのサイズよりも大きくなる場合が稀にあり得る。このため、差分生成部１７は、生成したＸＳＬＴデータのサイズと更新後のＸＭＬデータのサイズとを比較し、ＸＳＬＴデータのサイズのほうが大きい場合には、更新後のＸＭＬデータをプッシュメッセージ作成部１８へ出力する。
【００５５】
プロトコル部１２は、Ｗｅｂサーバ部１５によって出力されたＸＭＬデータを含むＨＴＴＰリプライを通信プロトコルに応じたパケットに分割し、ネットワークインタフェース部１１及びインターネット４０を介して移動機３０へ送信する。
【００５６】
移動機３０内のプロトコル部３２は、このパケットを受信すると、ＸＭＬデータを復原し、コンテンツ制御部３４へ出力する。コンテンツ制御部３４は、取得したＸＭＬデータをコンテンツ保存部３５に格納する。
【００５７】
また、オリジンサーバ１０内の更新検出部１６は、逐次、コンテンツ保存部１４に登録されているＸＭＬデータが更新されたか否かを判定する。具体的には、更新検出部１６は、履歴ファイルの登録日時が更新されたか否かを判定し、更新された場合には、その履歴ファイルに対応するＸＭＬデータが更新されたものと判断する。
【００５８】
ＸＭＬデータが更新されている場合には、更新検出部１６は、更新前のＸＭＬデータと更新後のＸＭＬデータとをコンテンツ保存部１４から読み出して差分生成部１７へ出力する。
【００５９】
差分生成部１７は、入力した更新前のＸＭＬデータと更新後のＸＭＬデータとの差分を表すＸＳＬＴデータを生成する。ＸＳＬＴデータの詳細な生成方法は、後述する。差分生成部１７は、生成したプッシュメッセージ作成部１８へ出力する。
【００６０】
なお、ＸＳＬＴデータのサイズが更新後のＸＭＬデータのサイズよりも大きくなる場合が稀にあり得る。このため、差分生成部１７は、生成したＸＳＬＴデータのサイズと更新後のＸＭＬデータのサイズとを比較し、ＸＳＬＴデータのサイズのほうが大きい場合には、更新後のＸＭＬデータをプッシュメッセージ作成部１８へ出力する。
【００６１】
プッシュメッセージ作成部１８は、入力したＸＳＬＴデータあるいは更新後のＸＭＬデータを包含したプッシュメッセージを作成し、出力する。このプッシュメッセージは、プロトコル部１２によって通信プロトコルに応じたパケットに分割され、ネットワークインタフェース１１及びインターネット４０を介して移動機３０へ送信される。
【００６２】
移動機３０内のプロトコル部３２は、このパケットを受信すると、プッシュメッセージを復原し、コンテンツ更新部３４へ出力する。コンテンツ更新部３４は、取得したプッシュメッセージに基づいて、コンテンツ保存部３５に格納されているＸＭＬデータを更新する。
【００６３】
次に、差分生成部１７によるＸＳＬＴデータの詳細な生成方法を説明する。図５は、更新前のＸＭＬデータのＤＯＭツリー及び更新後のＸＭＬデータのＤＯＭツリーの一例を示す図である。同図に示すＤＯＭツリー１００は、更新前のＸＭＬデータの階層構造を表す。同様に、ＤＯＭツリー２００は、更新後のＸＭＬデータの階層構造を表す。
【００６４】
更新前のＸＭＬデータのＤＯＭツリー（以下「更新前ＤＯＭツリー」と称する）１００内の各ノード（ノードＡ〜ノードＪ）と、更新後のＸＭＬデータのＤＯＭツリー（以下「更新後ＤＯＭツリー」と称する）２００内の各ノード（ノードＡ、Ｃ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、１〜５）は、ルートノードであるノードＡからの経路（ＸＰａｔｈ）と、直上のノード（親ノード）の配下に存在する全てのノード（子ノード）内における順位により特定される。子ノード内における順位は、ＸＭＬデータにおける子ノード間の記述順を示す。
【００６５】
例えば、更新前ＤＯＭツリー１００のノードＨは、ＸＰａｔｈ＝Ａ／Ｃ／Ｆ／Ｈと、ノードＦを親ノードとする子ノード（ノードＨ、Ｉ）内における順位（１番目）により特定される。
【００６６】
差分生成部１７は、更新前ＤＯＭツリー１００と更新後ＤＯＭツリー２００とを比較したときに、各ノードについてＸＰａｔｈ及び子ノード内の順位が異なっている場合には、ＸＳＬＴデータにその旨の情報を含ませる必要がある。
【００６７】
以下、第１実施例乃至第３実施例においては、図５に示す更新前ＤＯＭツリー１００及び更新後ＤＯＭツリー２００を例に説明する。
（第１実施例）
まず、更新前のＸＭＬデータのＤＯＭツリーと更新後のＸＭＬデータのＤＯＭツリーとを、ルートノードから配下のノードに向けて探索し、異なるノードが存在した場合に、当該異なるノードとその配下のサブツリー（部分木）とを差分としたＸＳＬＴデータを生成する方法（第１のＸＳＬＴデータ生成方法）について説明する。
【００６８】
第１のＸＳＬＴデータ生成方法では、差分生成部１７は、更新前ＤＯＭツリーのルートノードから配下のノードに向けて探索するとともに、更新後ＤＯＭツリーのルートノードから配下のノードに向けて探索し、差異のあるノードを認識する。
【００６９】
ここでは、差分生成部１７は、変更前ＤＯＭツリー１００を基準として探索すると、ノードＢとその配下のサブツリーが削除されたことを認識する。また、差分生成部１７は、ノードＤとその配下のサブツリーが削除され、ノードＦとその配下のサブツリーが削除されたことを認識する。
【００７０】
一方、差分生成部１７は、変更後ＤＯＭツリー２００を基準として探索すると、ノード１とその配下のサブツリーが追加され、当該ノード１の追加位置がノードＡの第１子ノードであることを認識する。また、差分生成部１７は、ノード２とその配下のサブツリーが追加され、当該ノード２の追加位置がノードＡの第２子ノードであること、及び、ノード５とその配下のサブツリーが追加され、当該ノード５の追加位置がノードＣの第１子ノードであることを認識する。
【００７１】
次に、差分生成部１７は、上述した削除されたノード及び追加されたノードの情報を用いて、差分情報としてのＸＳＬＴデータを生成する。
【００７２】
具体的には、差分生成部１７は、更新前ＤＯＭツリー１００のノードＢのＸＰａｔｈがＡ／Ｂであり、当該ノードＢとその配下のサブツリーが削除されたことを示すＸＳＬＴデータを生成する。同様に、差分生成部１７は、更新前ＤＯＭツリー１００のノードＤのＸＰａｔｈがＡ／Ｄであり、当該ノードＤが削除されたこと、及び、更新前ＤＯＭツリー１００のノードＦのＸＰａｔｈがＡ／Ｃ／Ｆであり、当該ノードＦが削除されたことを示すＸＳＬＴデータを生成する。
【００７３】
また、差分生成部１７は、更新後ＤＯＭツリー２００のノード１のＸＰａｔｈがＡ／１であり、当該ノード１とその配下のサブツリーが追加されたことを示すＸＳＬＴデータを生成する。同様に、差分生成部１７は、更新後ＤＯＭツリー２００のノード２のＸＰａｔｈがＡ／２であり、当該ノード２が追加されたこと、及び、更新後ＤＯＭツリー２００のノード５のＸＰａｔｈがＡ／Ｃ／５であり、当該ノード５が追加されたことを示すＸＳＬＴデータを生成する。
【００７４】
上述した第１のＸＳＬＴデータ生成方法を採用する場合には、更新前のＸＭＬデータのＤＯＭツリーと更新後のＸＭＬデータのＤＯＭツリーとの間に異なるノードが存在した場合に、その異なるノードとその配下の全てのノードとを差分とみなしてＸＳＬＴデータが生成されるため、探索に要する時間を短縮し、迅速にＸＳＬＴデータを生成することができる。
（第２実施例）
次に、更新前のＸＭＬデータのＤＯＭツリーを第1の２次元配列に展開するとともに、更新後のＸＭＬデータのＤＯＭツリーを第２の２次元配列に展開し、これら第１及び第２の２次元配列の各列の一致の度合に基づいて、ＸＳＬＴデータを生成する方法（第２のＸＳＬＴデータ生成方法）について説明する。
【００７５】
第２のＸＳＬＴデータ生成方法では、差分生成部１７は、更新前ＤＯＭツリー１００を２次元配列（以下「更新前２次元配列」と称する）に展開するとともに、更新後ＤＯＭツリー２００を２次元配列（以下「更新後２次元配列」と称する）に展開する。
【００７６】
図６は、ＤＯＭツリーの展開により得られる２次元配列の一例を示す図である。同図に示す更新前２次元配列１０１と更新後２次元配列２０１の各列は、ルートノードＡから配下の全てのノードに至る経路を示し、左側の方が同一階層における順位の高いノードを含むようになっている。
【００７７】
次に、差分生成部１７は、更新前２次元配列１０１の各列と送信後２次元配列２０１の各列との一致の度合を検出する。具体的には、差分生成部１７は、更新前２次元配列１０１の各列と送信後２次元配列２０１の各列の順列を導出する。例えば、更新前２次元配列１０１の最も左側の列（第１列）は、ノードＡ、Ｂ、Ｅの順で構成されている。このため、更新前２次元配列１０１の第１列については、ノードＡ、Ｂ、Ｅからなる組、ノードＡ、Ｂからなる組、ノードＡ、Ｅからなる組、ノードＡからなる組、ノードＢ、Ｅからなる組、ノードＢからなる組及びノードＥからなる組の７つの順列が導出される。
【００７８】
次に、差分生成部１７は、導出した順列を比較することにより、更新前２次元配列の各列と送信後２次元配列の各列とについて、一致の度合が高い列同士を対応させる。
【００７９】
ここでは、差分生成部１７は、更新前２次元配列１０１の第１列と更新後２次元配列２０１の第１列とがともにノードＡ、Ｅからなる順列を有しているので、これらの列を対応させる。また、差分生成部１７は、更新前２次元配列１０１の第２列と更新後２次元配列２０１の第５列とがともにノードＡ、Ｃからなる順列とノードＦ、Ｈからなる順列を有しているので、これらの列を対応させる。同様に、差分生成部１７は、更新前２次元配列１０１の第３列と更新後２次元配列２０１の第６列とがともにノードＡ、Ｃからなる順列とノードＦ、Ｉからなる順列を有しているので、これらの列を対応させる。更に、差分生成部１７は、更新前２次元配列１０１の第４列と更新後２次元配列２０１の第７列とがともにノードＡ、Ｃ、Ｇ、Ｉからなる順列を有しているので、これらの列を対応させる。
【００８０】
このように、更新前２次元配列の各列と送信後２次元配列の各列とを対応させた後、差分生成部１７は、更新前２次元配列において完全一致しているために対応付けされた列を２つずつ選択し、これら選択した２つの列の位置が更新後に入れ替わっているか否かを判定する。例えば、更新前２次元配列の第１列と更新後２次元配列の第３列とが完全一致して対応付けられるとともに、更新前２次元配列の第３列と更新後２次元配列の第１列とが完全一致して対応付けられる場合を考える。この場合、更新前２次元配列の第１列が更新後２次元配列では第３列に移動し、更新前２次元配列の第３列が更新後２次元配列の第１列に移動したと考えることができ、列の入れ替えが生じていると判定される。
【００８１】
列の入れ替えが生じている場合、差分生成部１７は、その旨を示す差分情報としてのＸＳＬＴデータを生成する。
【００８２】
次に、差分生成部１７は、対応させた２つの列が完全一致していないものについて差異を検出し、その差異に基づいて、ノードの変更、挿入を認識するとともに、その挿入位置を弟ノードや兄ノードにより認識する。
【００８３】
ここでは、上述した対応付けにより得られた、更新前２次元配列１０１の第１列と更新後２次元配列２０１の第１列による対応、更新前２次元配列１０１の第２列と更新後２次元配列２０１の第５列による対応、更新前２次元配列１０１の第３列と更新後２次元配列２０１の第６列による対応及び更新前２次元配列１０１の第４列と更新後２次元配列２０１の第７列による対応のうち、更新前２次元配列１０１の第４列と更新後２次元配列２０１の第７列による対応以外は、２つの列が完全一致していない。
【００８４】
このため、差分生成部１７は、まず更新前２次元配列１０１の第１列と更新後２次元配列２０１の第１列の差異を検討し、更新前２次元配列１０１の第１列のノードＢが更新後２次元配列２０１の第１列ではノード１に変更されていることを認識する。また、差分生成部１７は、更新前２次元配列１０１の第２列と更新後２次元配列２０１の第５列の差異を検討し、更新後２次元配列２０１の第５列にはノードＣとノードＦとの間にノード５が挿入されており、ノード５の弟ノードのＸＰａｔｈがＡ／Ｃ／Ｇであることを認識する。同様に、差分生成部１７は、更新前２次元配列１０１の第３列と更新後２次元配列２０１の第６列の差異を検討し、更新後２次元配列２０１の第６列にはノードＣとノードＦとの間にノード５が挿入されており、ノード５の弟ノードのＸＰａｔｈがＡ／Ｃ／Ｇであることを認識する。
【００８５】
次に、差分生成部１７は、更新前２次元配列の各列のうち、対応付けされていないもののノードの削除を認識する。ここでは、差分生成部１７は、更新前２次元配列１０１において、対応付けされていない第５列のノードＡ、Ｄのうち、ルートノードＡを除くノードＤが削除されることを認識する。
【００８６】
次に、差分生成部１７は、送信後２次元配列の各列のうち、対応付けされていないもののノードの追加を認識するとともに、その追加位置を弟ノードや兄ノードにより認識する。ここでは、差分生成部１７は、更新後２次元配列２０１において、対応付けされていない第２列のノードＡ、２、３のうち、ルートノードＡを除くノード２、３が追加され、ノード２の兄ノードのＸＰａｔｈがＡ／１であることを認識するとともに、対応付けされていない第３列のノードＡ、２、４のうち、ルートノードＡを除くノード２、４が追加され、ノード２の兄ノードのＸＰａｔｈがＡ／１であることを認識する。更に、差分生成部１７は、更新後２次元配列２０１において、対応付けされていない第５列のノードＡ、Ｃ、５、６のうち、ルートノードＡ、ノードＣを除くノード５、６が追加され、ノード６の弟ノードのＸＰａｔｈがＡ／Ｃ／５／Ｆであることを認識する。
【００８７】
このようにして、ノードの変更、挿入、挿入位置、削除、追加及び追加位置を認識した後、差分生成部１７は、これらの情報を集約し、差分情報としてのＸＳＬＴデータを生成する。
【００８８】
ここでは、差分生成部１７は、ノードＢからノード１への変更を示す情報を含んだＸＳＬＴデータを生成する。また、差分生成部１７は、更新後２次元配列２０１の第２列のノード２、３が追加され、ノード２の兄ノードのＸＰａｔｈがＡ／１であること、及び、第３列のノード２、４が追加され、ノード２の兄ノードのＸＰａｔｈがＡ／１であることに基づいて、ノード１の弟ノードとしてのノード２を追加と、当該ノード２の直下における兄ノード３及び弟ノード４の追加を示す情報を上記生成したＸＳＬＴデータに追加する。
【００８９】
また、差分生成部１７は、更新後２次元配列２０１の第５列においてノードＣとノードＦとの間にノード５が挿入されており、ノード５の弟ノードのＸＰａｔｈがＡ／Ｃ／Ｇであること、及び、更新後２次元配列２０１の第６列においてノードＣとノードＦとの間にノード５が挿入されており、ノード５の弟ノードのＸＰａｔｈがＡ／Ｃ／Ｇであることに基づいて、ノードＣとノードＦの間へのノード５の挿入と、当該ノード５がノードＧの兄ノードであることを示す情報を上記生成したＸＳＬＴデータに追加する。
【００９０】
また、差分生成部１７は、更新後２次元配列２０１の第５列のノード５、６が追加されており、ノード６の弟ノードのＸＰａｔｈがＡ／Ｃ／５／Ｆであることに基づいて、ノード５の直下におけるノードＦの兄ノードとしてのノード６の追加を示す情報を上記生成したＸＳＬＴデータに追加する。更に、差分生成部１７は、ノードＤの削除を示す情報を上記生成したＸＳＬＴデータに追加する。
【００９１】
上述した第２のＸＳＬＴデータ生成方法を採用する場合には、更新前のＸＭＬデータのＤＯＭツリーに対応する第1の２次元配列と、更新後のＸＭＬデータのＤＯＭツリーに対応する第２の２次元配列との一致の度合に基づいて、ＸＳＬＴデータを生成するため、挿入、追加、削除、変更等の対象となるノードの情報のみをＸＳＬＴデータに含ませることができ、ＸＳＬＴデータ内の情報を必要最小限とすることができる。
（第３実施例）
次に、更新前のＸＭＬデータのＤＯＭツリーに基づいて１のノード（親ノード）と該１のノードの直下のノード（子ノード）とを特定する第１の部品を生成するとともに、更新後のＸＭＬデータのＤＯＭツリーに基づいて、１のノード（親ノード）と該１のノードの直下のノード（子ノード）とを特定する第２の部品を生成し、これら第１及び第２の部品の対応付けの結果に基づいて、ＸＳＬＴデータを生成する方法（第３のＸＳＬＴデータ生成方法）について説明する。
【００９２】
第３のＸＳＬＴデータ生成方法では、差分生成部１７は、更新前ＤＯＭツリー１００を構成する全てのノードを１の親ノードと子ノードからなる部品に分割し、各部品の情報を含んだ部品データ表（以下「更新前部品データ表」）を生成する。同様に、差分生成部１７は、更新後ＤＯＭツリー２００を構成する全てのノードを１親ノードと子ノードからなる部品に分割し、各部品の情報を含んだ部品データ表（以下「更新後部品データ表」）を生成する。差分生成部１７は、ＤＯＭツリーを構成する全てのノードを部品に分割する際、ルートノード及び直下に子ノードを有していないノード以外のノードが必ず１の部品の親ノードと他の部品の子ノードを経験するように、ＤＯＭツリーを部品に分割する。
【００９３】
図７は、部品の生成を説明するための図である。同図に示すように、更新前ＤＯＭツリー１００は、親ノードＡ、子ノードＢ、Ｃ、Ｄからなる部品１１１、親ノードＢ、子ノードＥからなる部品１１２、親ノードＣ、子ノードＦ、Ｇからなる部品１１３、親ノードＦ、子ノードＨ、Ｉからなる部品１１４、親ノードＧ、子ノードＪからなる部品１１５に分割される。
【００９４】
一方、更新後ＤＯＭツリー２００は、親ノードＡ、子ノード１、２、Ｃからなる部品２１１、親ノード１、子ノードＥからなる部品２１２、親ノード２、子ノード３、４からなる部品２１３、親ノードＣ、子ノード５、Ｇからなる部品２１４、親ノード５、子ノード６、Ｆからなる部品２１５、親ノードＧ、子ノードＪからなる部品２１６、親ノードＦ、子ノードＨ、Ｉからなる部品２１７に分割される。
【００９５】
図８は、部品データ表の一例を示す図である。同図に示す更新前部品データ表１０２及び更新後部品データ表２０２は、親ノードと子ノードからなる部品と、当該親ノードのＸＰａｔｈとが対応付けられている。なお、１の親ノードに対する子ノードが複数存在する場合、それらの子ノードは、順位が上のものが先に記述される。
【００９６】
図８において、例えば、部品データ表１０２の第３行には、親ノードＣと子ノードＦ、Ｇからなる部品と、親ノードＣのＸＰａｔｈであるＡ／Ｃとが対応付けられている。
【００９７】
このように部品データ表を生成した後、差分生成部１７は、更新前部品データ表の部品と、更新後部品データ表の部品とを比較し、ノードが完全一致する部品を対応付けするとともに、その部品に対応するＸＰａｔｈを比較し、一致しているか否かを認識する。
【００９８】
ここでは、差分生成部１７は、更新前部品データ表１０２内の第４行の部品１１４と、部品データ表２０２内の第７行の部品２１７がともに親ノードＦ、子ノードＨ、Ｉからなる部品であるため、これらの部品１１４、２１７を対応付ける。更に、差分生成部１７は、部品１１４に対応するＸＰａｔｈであるＡ／Ｃ／Ｆと、部品２１７に対応するＸＰａｔｈであるＡ／Ｃ／５／Ｆとを比較し、これらが一致していないことを認識する。
【００９９】
また、差分生成部１７は、更新前部品データ表１０２内の第５行の部品１１５と、部品データ表２０２内の第６行の部品２１６がともに親ノードＧ、子ノードＪからなる部品であるため、これらの部品１１５、２１６を対応付ける。更に、差分生成部１７は、部品１１５に対応するＸＰａｔｈであるＡ／Ｃ／Ｇと、部品２１６に対応するＸＰａｔｈＡ／Ｃ／Ｇとを比較し、これらが一致していることを認識する。
【０１００】
次に、差分生成部１７は、部品は完全一致するが、その部品に対応するＸＰａｔｈが異なる対応付けに基づいて、ノードの移動を示す情報を生成する。ここでは、部品１１４と部品２１７は完全一致するが、これら部品に対応するＸＰａｔｈはＡ／Ｃ／ＦとＡ／Ｃ／５／Ｆであり、異なっている。このため、差分生成部１７は、親ノードＦがノードＣの直下からノード５の直下であってノード６の弟ノードとしての位置に移動し、子ノードＨ、Ｉもそれに伴って移動することを示す情報を生成する。
【０１０１】
次に、差分生成部１７は、差分生成部１７は、更新前部品データ表の部品と、更新後部品データ表の部品とを比較し、ノードが部分一致する部品を対応付けする。
【０１０２】
ここでは、差分生成部１７は、更新前部品データ表１０２内の第１行の部品１１１と、部品データ表２０２内の第１行の部品２１１がともにノードＡを親ノードとしており、対応するＸＰａｔｈがともにＡであるため、これらの部品１１１、２１１を対応付ける。また、差分生成部１７は、更新前部品データ表１０２内の第２行の部品１１２と、部品データ表２０２内の第２行の部品２１２がともに１つのノードＢを子ノードとしており、対応するＸＰａｔｈがＡ／Ｂ、Ａ／１であって部分一致するため、これらの部品１１２、２１２を対応付ける。更に、差分生成部１７は、更新前部品データ表１０２内の第３行の部品１１３と、部品データ表２０２内の第４行の部品２１４がともにノードＣを親ノードとし、２つの子ノードのうちの１つがノードＧであり、対応するＸＰａｔｈがともにＡ／Ｃであって部分一致するため、これらの部品１１３、２１４を対応付ける。
【０１０３】
次に、差分生成部１７は、上記の部分一致する部品の対応付けと、その部品に対応するＸＰａｔｈとに基づいて、ノードの変更、追加、削除を示す情報を生成する。
【０１０４】
ここでは、差分生成部１７は、部品１１１（親ノードＡ、子ノードＢ、Ｃ、Ｄ）と部品２１１（親ノードＡ、子ノード１、２、Ｃ）の対応付けと、これらの部品に対応するＸＰａｔｈ（ともにＡ）とに基づいて、ノードＢのノード１への変更を示す情報、ノードＡの直下であってノード１とノードＣの間へのノード２の追加を示す情報、及び、ノードＤの削除を示す情報を生成する。また、差分生成部１７は、部品１１２（親ノードＢ、子ノードＥ）と部品２１２（親ノード１、子ノードＥ）の対応付けと、これらの部品に対応するＸＰａｔｈ（Ａ／ＢとＡ／１）とに基づいて、ノードＢのノード１への変更を示す情報を生成する。更に、差分生成部１７は、部品１１３（親ノードＣ、子ノードＦ、Ｇ）と部品２１４（親ノードＣ、子ノード５、Ｇ）の対応付けと、これらの部品に対応するＸＰａｔｈ（ともにＡ／Ｃ）とに基づいて、ノードＦのノード５への変更を示す情報を生成する。
【０１０５】
次に、差分生成部１７は、更新前部品データ表のうち対応付けされていない部品の追加を示す情報と、更新後部品データ表のうち対応付けされていない部品の削除を示す情報を生成する。
【０１０６】
ここでは、更新前部品データ表１０２のうち対応付けされていない部品は存在しない。一方、更新後部品データ表２０２のうち対応付けされていない部品は、部品２１３、２１５である。
【０１０７】
このため、差分生成部１７は、部品２１３（親ノード２、子ノード３、４）、対応するＸＰａｔｈ（Ａ／２）及び前後の部品２１２、２１４に対応するＸＰａｔｈ（Ａ／１、Ａ／Ｃ）に基づいて、ノードＡの直下であってノード１とノードＣの間へのノード２の追加と、該ノード２の直下における兄ノード３及び弟ノード４の追加を示す情報を生成する。また、差分生成部１７は、部品２１５（親ノード５、子ノード６、Ｆ）、対応するＸＰａｔｈ（Ａ／Ｃ／５）及び後の部品２１６に対応するＸＰａｔｈ（Ａ／Ｃ／Ｇ）に基づいて、ノードＣの直下においてノードＧの兄ノードとしてのノード５の追加と、該ノード５の直下におけるノードＦの兄ノードとしてのノード６の追加を示す情報を示す情報を生成する。
【０１０８】
次に、差分生成部１７は、後述した手順により生成したノードの移動、変更、追加、削除を示す情報を集約する。ここでは、差分生成部１７は、ノードＢのノード１への変更を示す情報が２つ存在するため、これらを１つに集約する。また、差分生成部１７は、ノードＡの直下であってノード１とノードＣの間へのノード２の追加と、該ノード２の直下における兄ノード３及び弟ノード４の追加を示す情報と、ノードＡの直下であってノード１とノードＣの間へのノード２の追加を示す情報とを集約し、ノードＡの直下であってノード１とノードＣの間へのノード２の追加と、該ノード２の直下における兄ノード３及び弟ノード４の追加を示す情報を生成する。更に、差分生成部１７は、親ノードＦがノードＣの直下からノード５の直下であってノード６の弟ノードとしての位置に移動し、子ノードＨ、Ｉもそれに伴って移動することを示す情報、ノードＦのノード５への変更を示す情報、及び、ノードＣの直下においてノードＧの兄ノードとしてのノード５の追加を示す情報とを集約して、ノードＣとノードＦの間へのノード５の挿入と、当該ノード５がノードＧの兄ノードであることを示す情報を生成する。
【０１０９】
このような集約の結果、ノードの移動、変更、追加、挿入、削除を示す情報は、ノードＢからノード１への変更を示す情報、ノードＤの削除を示す情報、ノードＡの直下であってノード１とノードＣの間へのノード２の追加と、該ノード２の直下における兄ノード３及び弟ノード４の追加を示す情報、ノードＣとノードＦの間へのノード５の挿入と、当該ノード５がノードＧの兄ノードであることを示す情報、及び、ノード５の直下におけるノードＦの兄ノードとしてのノード６の追加を示す情報となる。差分生成部１２は、これらの情報を含んだＸＳＬＴデータを生成する。
【０１１０】
上述した第３のＸＳＬＴデータ生成方法を採用する場合には、更新前のＸＭＬデータのＤＯＭツリーに対応する部品と、更新後のＸＭＬデータのＤＯＭツリーに対応する部品との対応付けの結果に基づいて、ＸＳＬＴデータを生成するため、挿入、追加、削除、変更等の対象となるノードの情報のみをＸＳＬＴデータに含ませることができ、ＸＳＬＴデータ内の情報を必要最小限とすることができる。
（第４実施例）
次に、第４のＸＳＬＴデータ生成方法を説明する。この第４のＸＳＬＴデータ生成方法では、更新前のＸＭＬデータのＤＯＭツリーに基づいて、更新前のノードの構成パターンをノードがない場合を含め、ルートノードを除外して生成するとともに、更新後のＸＭＬデータのＤＯＭツリーに基づいて、更新後のノードの構成パターンをノードがない場合を含め、ルートノードを除外して生成し、これら生成した更新前のノードの構成パターンの全てと更新後のノードの構成パターンの全てとを組み合わせ、各組み合わせにおいて、更新前の全てのノードの構成パターンから該組み合わせに対応する更新前のノードの構成パターンを削除するとともに、更新後の全てのノードの構成パターンから該組み合わせに対応する更新後のノードの構成パターンを削除し、削除後の更新前のノードの構成パターンと更新後のノードの構成パターンとにおいて、一致するノードが最も多い組み合わせに基づいて、ＸＳＬＴデータを生成する。
【０１１１】
本実施例においては、図９に示すように、更新前のＸＭＬデータの階層構造がルードノードＡ、ルードノードＡの子ノードとしてのノードＢ及びノードＣ、ノードＣの子ノードとしてのノードＤによって構成される更新前ＤＯＭツリー３００であり、更新後のＸＭＬデータの階層構造がルードノードＡ、ルードノードＡの子ノードとしてのノード１及びノード２、ノード２の子ノードとしてのノード３及ノードＤによって構成される更新後ＤＯＭツリー４００である場合を例に説明する。
【０１１２】
差分生成部１７は、まず、更新前ＤＯＭツリーと更新後ＤＯＭツリーとに基づいて、ルートノードに変更がないか否かを判定する。ここでは、図９に示すようにルートノードは、更新前後で変更がなく、ともにノードＡである。
【０１１３】
差分生成部１７は、ルートノードが更新前後で変更がないと判断すると、次に更新前ＤＯＭツリーに基づいて、更新前のノードの構成パターンをノードがない場合を含め、ルートノードを除外して生成する。
【０１１４】
ここでは、更新前のＸＭＬデータは、ノードＡ、Ｂ、Ｃ、Ｄからなる。このため、更新前のノードの構成パターンは、「ノードなし」、「ノードＢ」、「ノードＣ」、「ノードＤ」、「ノードＢ・Ｃ」、「ノードＢ・Ｄ」、「ノードＣ・Ｄ」、「ノードＢ・Ｃ・Ｄ」の８個になる。
【０１１５】
同様に、差分生成部１７は、更新後ＤＯＭツリーに基づいて、更新後のノードの構成パターンをノードがない場合を含め、ルートノードを除外して生成する。
【０１１６】
ここでは、更新後のＸＭＬデータは、ノードＡ、Ｂ、Ｄ、１、２、３からなる。このため、更新後のノードの構成パターンは、「ノードなし」、「ノードＢ」、「ノードＤ」、「ノード１」、「ノード２」、「ノード３」、「ノードＢ・Ｄ」、「ノードＢ・１」、「ノードＢ・２」、「ノードＢ・３」、「ノードＤ・１」、「ノードＤ・２」、「ノードＤ・３」、「ノード１・２」、「ノード１・３」、「ノード２・３」、「ノードＢ・Ｄ・１」、「ノードＢ・Ｄ・２」、「ノードＢ・Ｄ・３」、「ノードＢ・１・２」、「ノードＢ・１・３」、「ノードＢ・２・３」、「ノードＤ・１・２」、「ノードＤ・１・３」、「ノードＤ・２・３」、「ノード１・２・３」、「ノードＢ・Ｄ・１・２」、「ノードＢ・Ｄ・１・３」、「ノードＢ・Ｄ・２・３」、「ノードＢ・１・２・３」、「ノードＤ・１・２・３」、「ノードＢ・Ｄ・１・２・３」の３２個になる。
【０１１７】
次に、差分生成部１７は、生成した更新前のノードの構成パターンのそれぞれと、更新後のノードの構成パターンのそれぞれとを組み合わせる。ここでは、更新前のノードの構成パターンは８個であり、更新後のノードの構成パターンは３２個であるので、これらの組み合わせは図１０に示すように２５６通りとなる。
【０１１８】
なお、更新前のノード数をｐ、更新後のノード数をｑとすると、更新前のルートノードと更新後のルートノードを除いたｐ＋ｑ−２個のノードからノードなしも含めた組み合わせを求めるため、その数は次式で表わされる。
【０１１９】
【数１】
2008293506.tif 000003
図９の例では、ｐ＝４、ｑ＝６であるので、上記式によれば、２５６通りの組み合わせが得られる。
【０１２０】
その後、差分生成部１７は、図１１のフローチャートに従った処理を行う。即ち、差分生成部１７は、まず更新前のノードの構成パターンのそれぞれと、更新後のノードの構成パターンのそれぞれとの組み合わせから１組を選択する（ステップ１０１）。
【０１２１】
次に、差分生成部１７は、更新前のＸＭＬデータを構成するノードから選択した組み合わせに含まれる更新前のノードの構成パターンを削除するとともに、更新後のＸＭＬデータを構成するノードから選択した組み合わせに含まれる更新後のノードの構成パターンを削除する（ステップ１０２）。
【０１２２】
上述したノードの削除後、差分生成部１７は、削除後の更新前のＸＭＬデータのノードと更新後のＸＭＬデータのノードとが一致するか否かを判定する（ステップ１０３）。
【０１２３】
削除後の更新前後のＸＭＬデータのノードが一致する場合、差分生成部１７は、一致するノード（削除後の更新前後のＸＭＬデータのノードであり、以下「一致ノード」と称する）と、一致しないノード（選択した組み合わせに含まれるノードであり、以下、当該組み合わせに含まれる更新前のノードの構成パターンとしてのノードを「更新前差分ノード」と称し、当該組み合わせに含まれる更新後のノードの構成パターンとしてのノードを「更新後差分ノード」と称する）とを認識し（ステップ１０４）、一致ノードの数がこれまでで最大であるか否かを判定する（ステップ１０５）。
【０１２４】
一致ノードの数がこれまでで最大である場合には、差分生成部１７は、選択した組み合わせを最適な組み合わせであると判断する（ステップ１０６）。次に、差分生成部１７は、全ての組み合わせについて、上述したステップ１０２乃至１０６の調査を行ったか否かを判定する（ステップ１０７）。また、ステップ１０３において、削除後の更新前のＸＭＬデータのノードと更新後のＸＭＬデータのノードとが一致しないと判定した場合と、ステップ１０５において、一致するノードの数がこれまでで最大でないと判断した場合も、同様に、差分生成部１７は、全ての組み合わせについて、上述したステップ１０２乃至１０６の調査を行ったか否かを判定する（ステップ１０７）。
【０１２５】
全ての組み合わせについて、上述したステップ１０２乃至１０６の調査が終了している場合には、差分生成部１７は、一連の処理を終了する。一方、未調査の組み合わせがある場合には、差分生成部１７は、その未調査の組み合わせから１組を選択し（ステップ１０１）、ステップ１０２以降の処理を繰り返す。
【０１２６】
ここでは、図１０に示す項番１乃至２５６の各組み合わせについて、図１１のフローチャートに従った処理を行うと、項番９０の組み合わせ（更新前のノードの構成パターンが「ノードＣ」、更新後のノードの構成パターンが「ノード１・２・３」の組み合わせ）が、ステップ１０２の処理による削除後の更新前後のＸＭＬデータを構成するノードが何れもノードＢ、Ｄで一致し、且つ、一致するノードの数が２個で最大となる。従って、項番９０の組み合わせが最適な組み合わせとして決定される。
【０１２７】
最適な組み合わせが決定されると、次に、差分生成部１７は、認識した差分ノードに基づいて、差分情報を生成する。
【０１２８】
具体的には、差分生成部１７は、更新前ＤＯＭツリーから最適な組み合わせに含まれる更新前のノードの構成パターンとしての差分ノードを削除した新たな更新前ＤＯＭツリーを生成するとともに、更新後ＤＯＭツリーから最適な組み合わせに含まれる更新後のノードの構成パターンとしての差分ノードを削除した新たな更新後ＤＯＭツリーを生成する。これら新たに生成される２つのＤＯＭツリー（以下「削除後ＤＯＭツリー」は一致ノードのみによって構成されるので、同一のＤＯＭツリーとなる。
【０１２９】
次に、差分生成部１７は、削除後ＤＯＭツリーにおいて、同一の親ノードと子ノードからなる組み合わせ（以下「親子ノード」称する）に着目し、この着目した親子ノードの間に削除前に差分ノードが存在していたか否かを判定する。削除後ＤＯＭツリーにおいて着目した親子ノードの間に削除前は更新前差分ノードが存在しており、且つ、更新後差分ノードが存在していたと判定された場合には、これら２つの差分ノードは異なる値となる。このため、差分生成部１７は、更新前差分ノードから更新後差分ノードへの変更であると認識する。
【０１３０】
一方、差分生成部１７は、削除後ＤＯＭツリーにおいて着目した親子ノードの間に削除前は更新前差分ノードが存在しており、且つ、更新後差分ノードが存在していなかったと判定した場合には、更新前差分ノードの削除であると認識する。また、差分生成部１７は、削除後ＤＯＭツリーにおいて着目した親子ノードの間に削除前は更新前差分ノードが存在しておらず、且つ、更新後差分ノードが存在していたと判定した場合には、更新後差分ノードの挿入であると認識する。このような手順により、一致ノードに挟まれている差分ノードについて、削除、変更、挿入が決定される。
【０１３１】
次に、差分生成部１７は、一致ノードで挟まれていない更新前差分ノードについて、当該更新前ノードの削除であると認識するとともに、一致ノードで挟まれていない更新後差分ノードについて、当該更新後差分ノードの追加であると認識する。
【０１３２】
このようにして、ノードの削除、変更、挿入、追加を認識すると、次に、差分生成部１７は、上述した認識結果に基づいて、差分情報を生成する。図１２は、差分情報の項目を示す図である。同図に示すように、差分情報は、差分種別、基準ノード、相対位置、ノード情報により構成される。
【０１３３】
差分種別は、ノードに対する処理が削除、変更、挿入、追加の何れかに該当するかを示す情報である。基準ノードは、差分種別が削除の場合には、その削除されるノードのＸＰａｔｈ、差分種別が変更の場合には、その変更前のノードのＸＰａｔｈ、差分種別が挿入の場合には、挿入されるノードの親ノードのＸＰａｔｈあるいは挿入されるノードの親ノード及び子ノードのＸＰａｔｈ、差分種別が追加の場合には、追加されるノードの親ノードのＸＰａｔｈあるいは兄弟ノードのＸＰａｔｈである。また、相対位置は、差分種別が削除、変更の場合には、基準ノードと同一であり、差分種別が挿入、追加の場合には、基準ノードからの相対位置を示す情報である。また、ノード情報は、差分種別が削除の場合には不要であり、差分種別が変更の場合には変更後のノードの情報であり、差分種別が挿入、追加の場合には、その挿入、追加されるノードの情報である。
【０１３４】
ここでは、図１０に示す項番９０の組み合わせが最適な組み合わせとして決定されているため、更新前差分ノードはノードＣであり、更新後差分ノードはノード１、２、３である。このため、差分生成部１７は、図９の更新前ＤＯＭツリー３００からノードＣを削除し、更新後ＤＯＭツリー４００からノード１、２、３を削除することにより、削除後ＤＯＭツリーを生成する。図１３は、削除後ＤＯＭツリーを示す図である。同図に示すように、削除後ＤＯＭツリー５００は、ルートノードＡと、当該ルードノードＡの子ノードとしてのノードＢ及びノードＤにより構成される。
【０１３５】
次に、差分生成部１７は、削除後ＤＯＭツリー５００のノードＡとノードＢからなる親子ノードに着目し、当該親子ノードに削除前は更新後差分ノードとしてのノード１が存在していたため、ノードＡとノードＢの間にノード１が挿入されることを認識する。また、差分生成部１７は、削除後ＤＯＭツリー５００のノードＡとノードＤからなる親子ノードに着目し、当該親子ノードに削除前は更新前差分ノードとしてのノードＣと更新後差分ノードとしてのノード２が存在していたため、ノードＣがノード２に変更されることを認識する。更に、差分生成部１７は、一致ノードで挟まれていない更新後差分ノードであるノード３について、ノードＣの第１子ノードとして追加されることを認識する。
【０１３６】
次に、差分生成部１７は、図１４に示すように、ノードＡとノードＢの間にノード１が挿入されることに対応して、基準ノード及び相対位置がノード１の親ノードであるノードＡのＸＰａｔｈであり、ノード情報が挿入されるノード１のタイプと名前を示す情報である差分情報を生成する。また、差分生成部１７は、ノードＣがノード２に変更されることに対応して、基準ノード及び相対位置が変更前のノードであるノードＣのＸＰａｔｈであり、ノード情報が変更後のノードであるノード２のタイプと名前を示す情報である差分情報を生成する。更に、差分生成部１７は、ノードＣの第１子ノードとしてのノード３が追加されることに対応して、基準ノードがノード３の親ノードであるノードＣのＸＰａｔｈであり、相対位置が基準ノードであるノードＣの第１子ノードであることを示す情報であり、ノード情報が追加されるノード３のタイプと名前を示す情報である差分情報を生成する。
【０１３７】
差分情報の生成後、差分生成部１７は、生成した差分情報の基準ノードに着目し、同一の基準ノードを有する差分情報を１つの差分情報にまとめる（差分情報のマージ）。ここでは、図１４に示す差分情報が生成されているため、差分生成部１７は、基準ノードがノードＣのＸＰａｔｈである２つの差分情報を、図１５に示すように１つの差分情報にまとめる。
【０１３８】
このようにして差分情報を生成すると、次に、差分生成部１７は、これら生成した差分情報に基づいて、ＸＳＬＴデータを生成する。図１６は、図１４のノードＡとノードＢの間にノード１が挿入されることに対応した差分情報と、図１５のマージ後の差分情報に基づいて生成されるＸＳＬＴデータを示す。
【０１３９】
上述した第４のＸＳＬＴデータ生成方法によれば、更新前と更新後で一致しないノードの組み合わせを容易に特定することができ、その組み合わせに基づいて、差分データを生成することにより、挿入、追加、削除、変更等の対象となるノードの情報のみをＸＳＬＴデータに含ませることができ、ＸＳＬＴデータ内の情報を必要最小限とすることができる。
【０１４０】
このように、本実施形態のＸＭＬデータ更新システム１では、移動機３０に提供されるＸＭＬデータが更新される際、オリジンサーバ１０は、更新前のＸＭＬデータと更新後のＸＭＬデータとの差分を表すＸＳＬＴデータを生成し、移動機３０へ送信し、当該移動機３０は、このＸＳＬＴデータに基づいて、保持している更新前のＸＭＬデータを更新し、更新後のＸＭＬデータを保持する。
【０１４１】
即ち、オリジンサーバ１０は、移動機３０に対して、更新後のＸＭＬデータの全体を送信するのではなく、更新前のＸＭＬデータと更新後のＸＭＬデータとの差分のデータをＸＳＬＴ形式で生成して送信するだけで良い。このため、できるだけ少ないデータ量で移動機３０側のＸＭＬデータを更新することができ、通信ネットワークの混雑を防止するとともに、オリジンサーバ１０と移動機３０との間でのＸＭＬデータの不一致期間を短縮することが可能となる。
【０１４２】
また、ＸＭＬデータは階層構造を有しているため、オリジンサーバ１０は、更新前及び更新後のＸＭＬデータの階層構造を表す情報として標準的に用いられているＤＯＭツリーに基づいてＸＳＬＴデータを生成することにより、更新前のＸＭＬデータと更新後のＸＭＬデータとの差分を容易に表すことが可能となるとともに、新たにＸＭＬデータの階層構造を表す情報を定める必要がなく、汎用的な利用が可能となる。
【０１４３】
上記実施形態において、差分生成部１７がＸＳＬＴデータ生成手段に対応し、ネットワークインタフェース部１１、プロトコル部１２及びプッシュメッセージ作成部１８がＸＳＬＴデータ送信手段に対応する。
【０１４４】
上述の如く、本願実施例によれば、サーバは、クライアントに対して、更新後の構造化文書データの全体を送信するのではなく、更新前の構造化文書データと更新後の構造化文書データとの差分のデータを生成して送信するだけで良い。このため、できるだけ少ないデータ量でクライアント側の構造化文書データを更新することができ、通信ネットワークの混雑を防止するとともに、サーバとクライアントとの間での構造化文書データの不一致期間を短縮することが可能となる。
【０１４５】
また、本願実施例によれば、更新前及び更新後の構造化文書データの階層構造を表す階層情報に基づいて差分データを生成することにより、更新前の構造化文書データと更新後の構造化文書データとの差分を容易に表すことが可能となる。
【０１４６】
また、本願実施例によれば、更新前の構造化文書データと更新後の構造化文書データとの間に異なる要素が存在した場合に、その異なる要素とその配下の要素とを差分とみなして差分データを生成するため、探索に要する時間を短縮し、迅速に差分データを生成することができる。
【０１４７】
また、本願実施例によれば、更新前の構造化文書データの階層情報に基づく第1の２次元配列と、更新後の構造化文書データの階層情報に基づく第２の２次元配列との一致の度合に基づいて、差分データを生成することにより、挿入、追加、削除、変更等の対象となる要素の情報のみを差分データに含ませることができ、差分データ内の情報を必要最小限とすることができる。
【０１４８】
また、本願実施例によれば、更新前の構造化文書データの階層情報に基づく部品と、更新後の構造化文書データの階層情報に基づく部品との対応付けの結果に基づいて、差分データを生成することにより、上記実施例と同様、挿入、追加、削除、変更等の対象となる要素の情報のみを差分データに含ませることができ、差分データ内の情報を必要最小限とすることができる。
【０１４９】
また、本願実施例によれば、更新前と更新後で一致しない要素の組み合わせを容易に特定することができ、この組み合わせに基づいて、差分データを生成することにより、上記実施例と同様、挿入、追加、削除、変更等の対象となる要素の情報のみを差分データに含ませることができ、差分データ内の情報を必要最小限とすることができる。
【０１５０】
また、本願実施例によれば、構造化文書データがＸＭＬデータの場合、更新前のＸＭＬデータと更新後のＸＭＬデータの差分は、ＸＳＬＴデータにより表すことができ、ＤＯＭツリーは、ＸＭＬデータの階層構造を表す情報として標準的に用いられているため、ＤＯＭツリーを利用して差分データであるＸＳＬＴデータを生成することにより、新たにＸＭＬデータの階層構造を表す階層情報を定める必要がなく、本発明の汎用的な利用が可能となる。
【０１５１】
以下、本発明により教示される手段を例示的に列挙する。
【０１５２】
（１）  サーバからクライアントへ提供される、１又は複数の要素を構造化して構成される構造化文書データを更新する構造化文書データ更新方法において、
前記サーバは、
更新前の構造化文書データと更新後の構造化文書データとの差分を表す差分データを生成し、
前記生成した差分データを前記クライアントへ送信し、
前記クライアントは、
前記サーバから送信される差分データに基づいて、保有する構造化文書データを更新するようにした構造化文書データ更新方法。
【０１５３】
（２）  サーバからクライアントへ提供される、１又は複数の要素を構造化して構成される構造化文書データを更新する構造化文書データ更新方法において、
前記サーバは、
更新前の構造化文書データと更新後の構造化文書データとの差分を表す差分データを生成し、
前記生成した差分データを前記クライアントへ送信し、前記クライアントにおいて、該差分データに基づいて、保有する構造化文書データが更新されるようにした構造化文書データ更新方法。
【０１５４】
（３）  上記（２）に記載の構造化文書データ更新方法において、
更新前の構造化文書データと更新後の構造化文書データとの差分を表す差分データを生成する際に、前記更新前及び更新後の構造化文書データの階層構造を表す階層情報に基づいて生成するようにした構造化文書データ更新方法。
【０１５５】
（４）  上記（３）に記載の構造化文書データ更新方法において、
前記更新前の構造化文書データの階層情報と、前記更新後の構造化文書データの階層情報とに基づいて、前記更新前及び更新後の構造化文書データを構成する最上位の要素から配下の要素に向けて探索し、
異なる要素が存在した場合に、該異なる要素とその配下の要素とを差分とした差分データを生成するようにした構造化文書データ更新方法。
【０１５６】
（５）  上記（３）に記載の構造化文書データ更新方法において、
前記更新前の構造化文書データの階層情報に基づいて、該更新前の構造化文書データを構成する要素を第1の２次元配列に展開するとともに、前記更新後の構造化文書データの階層情報に基づいて、該更新後の構造化文書データを構成する要素を第２の２次元配列に展開し、
前記第１の２次元配列の各列と前記第２の２次元配列の各列との一致の度合を検出し、
前記一致の度合に基づいて、前記差分データを生成するようにした構造化文書データ更新方法。
【０１５７】
（６）  上記（３）に記載の構造化文書データ更新方法において、
前記更新前の構造化文書データの階層情報に基づいて、該更新前の構造化文書データを構成する要素と該要素の直下の要素とを特定する第１の部品を生成するとともに、前記更新後の構造化文書データの階層情報に基づいて、該更新後の構造化文書データを構成する要素と該要素の直下の要素とを特定する第２の部品を生成し、
前記第１及び第２の部品の対応付けを行い、
前記対応付けの結果に基づいて、前記差分データを生成するようにした構造化文書データ更新方法。
【０１５８】
（７）  上記（３）に記載の構造化文書データ更新方法において、
前記更新前の構造化文書データの階層情報に基づいて、更新前の要素の構成パターンを要素がない場合を含め、最上位の要素を除外して生成するとともに、前記更新後の構造化文書データの階層情報に基づいて、更新後の要素の構成パターンを要素がない場合を含め、最上位の要素を除外して生成し、
前記生成した更新前の要素の構成パターンの全てと更新後の要素の構成パターンの全てとを組み合わせ、
前記各組み合わせにおいて、更新前の構造化文書を構成するノードから該組み合わせに対応する更新前の要素の構成パターンを削除するとともに、更新後の構造化文書を構成するノードから該組み合わせに対応する更新後の要素の構成パターンを削除し、
前記削除後の更新前の構造化文書を構成するノードと更新後の構造化文書を構成するノードとにおいて、一致する要素が最も多い前記組み合わせに基づいて、前記差分データを生成するようにした生成するようにした構造化文書データ更新方法。
【０１５９】
（８）  上記（３）乃至（７）の何れかに記載の構造化文書データ更新方法において、
前記構造化文書はＸＭＬデータであり、前記差分データはＸＳＬＴデータであり、前記階層情報はＤＯＭツリーである構造化文書データ更新方法。
【０１６０】
（９）  クライアントへ１又は複数の要素を構造化して構成される構造化文書データを提供する情報提供サーバにおいて、
更新前の構造化文書データと更新後の構造化文書データとの差分を表す差分データを生成する差分データ生成手段と、
前記生成された差分データを前記クライアントへ送信する差分データ送信手段と、
を備える情報提供サーバ。
【０１６１】
（１０）  上記（９）に記載の情報提供サーバにおいて、
前記差分データ生成手段は、前記更新前及び更新後の構造化文書データの階層構造を表す階層情報に基づいて、前記差分データを生成するようにした情報提供サーバ。
【０１６２】
（１１）  上記（１０）に記載の情報提供サーバにおいて、
前記差分データ生成手段は、
前記更新前の構造化文書データの階層情報と、前記更新後の構造化文書データの階層情報とに基づいて、前記更新前及び更新後の構造化文書データを構成する最上位の要素から配下の要素に向けて探索し、
異なる要素が存在した場合に、該異なる要素とその配下の要素とを差分とした差分データを生成するようにした情報提供サーバ。
【０１６３】
（１２）  上記（１０）に記載の情報提供サーバにおいて、
前記差分データ生成手段は、
前記更新前の構造化文書データの階層情報に基づいて、該更新前の構造化文書データを構成する要素を第1の２次元配列に展開するとともに、前記更新後の構造化文書データの階層情報に基づいて、該更新後の構造化文書データを構成する要素を第２の２次元配列に展開し、
前記第１の２次元配列の各列と前記第２の２次元配列の各列との一致の度合を検出し、
前記一致の度合に基づいて、前記差分データを生成するようにした情報提供サーバ。
【０１６４】
（１３）  上記（１０）に記載の情報提供サーバにおいて、
前記差分データ生成手段は、
前記更新前の構造化文書データの階層情報に基づいて、該更新前の構造化文書データを構成する要素と該要素の直下の要素とを特定する第１の部品を生成するとともに、前記更新後の構造化文書データの階層情報に基づいて、該更新後の構造化文書データを構成する要素と該要素の直下の要素とを特定する第２の部品を生成し、
前記第１及び第２の部品の対応付けを行い、
前記対応付けの結果に基づいて、前記差分データを生成するようにした情報提供サーバ。
【０１６５】
（１４）  上記（１０）に記載の情報提供サーバにおいて、
前記差分データ生成手段は、
前記更新前の構造化文書データの階層情報に基づいて、更新前の要素の構成パターンを要素がない場合を含め、最上位の要素を除外して生成するとともに、前記更新後の構造化文書データの階層情報に基づいて、更新後の要素の構成パターンを要素がない場合を含め、最上位の要素を除外して生成し、
前記生成した更新前の要素の構成パターンの全てと更新後の要素の構成パターンの全てとを組み合わせ、
前記各組み合わせにおいて、更新前の構造化文書を構成するノードから該組み合わせに対応する更新前の要素の構成パターンを削除するとともに、更新後の構造化文書を構成するノードから該組み合わせに対応する更新後の要素の構成パターンを削除し、
前記削除後の更新前の構造化文書を構成するノードと更新後の構造化文書を構成するノードとにおいて、一致する要素が最も多い前記組み合わせに基づいて、前記差分データを生成するようにした生成するようにした情報提供サーバ。
【０１６６】
（１５）  上記（１０）乃至（１４）の何れかに記載の情報提供サーバにおいて、
前記構造化文書はＸＭＬデータであり、前記差分データはＸＳＬＴデータであり、前記階層情報はＤＯＭツリーである情報提供サーバ。
【図面の簡単な説明】
【０１６７】
【図１】ＸＭＬデータ更新システムの構成例を示す図である。
【図２】オリジンサーバの詳細な構成例である。
【図３】移動機の詳細な構成例である。
【図４】履歴ファイルの一例を示す図である。
【図５】更新前のＸＭＬデータのＤＯＭツリー及び更新後のＸＭＬデータのＤＯＭツリーの一例を示す図である。
【図６】ＤＯＭツリーの展開により得られる２次元配列の一例を示す図である。
【図７】部品の生成を説明するための図である。
【図８】部品データ表の一例を示す図である。
【図９】更新前のＸＭＬデータのＤＯＭツリー及び更新後のＸＭＬデータのＤＯＭツリーの他の例を示す図である。
【図１０】更新前のノードの構成パターンと更新後のノードの構成パターンの組み合わせの一例を示す図である。
【図１１】差分生成部の処理の一例を示すフローチャートである。
【図１２】差分情報の項目を示す図である。
【図１３】削除後ＤＯＭツリーの一例を示す図である
【図１４】差分情報の一例を示す図である。
【図１５】差分情報の他の例を示す情報である。
【図１６】ＸＳＬＴデータの一例を示す図である。
【符号の説明】
【０１６８】
１  ＸＭＬデータ更新システム
１０  オリジンサーバ
１１  ネットワークインタフェース部
１２  プロトコル部
１３  コンテンツ登録サーバ部
１４  コンテンツ保存部
１５  Ｗｅｂサーバ部
１６  更新検出部
１７  差分生成部
１８  プッシュメッセージ作成部
３０  移動機
３１  リクエスト作成部
３２  プロトコル部
３３  ネットワークインタフェース部
３４  コンテンツ更新部
３５  コンテンツ保存部
４０  インターネット
【図１】
2008293506.tif 000004
【図２】
2008293506.tif 000005
【図３】
2008293506.tif 000006
【図４】
2008293506.tif 000007
【図５】
2008293506.tif 000008
【図６】
2008293506.tif 000009
【図７】
2008293506.tif 000010
【図８】
2008293506.tif 000011
【図９】
2008293506.tif 000012
【図１０】
2008293506.tif 000013
【図１１】
2008293506.tif 000014
【図１２】
2008293506.tif 000015
【図１３】
2008293506.tif 000016
【図１４】
2008293506.tif 000017
【図１５】
2008293506.tif 000018
【図１６】
2008293506.tif 000019