JP2003256249A - 構造化文書データ更新方法及び情報提供サーバ - Google Patents

構造化文書データ更新方法及び情報提供サーバ

Info

Publication number
JP2003256249A
JP2003256249A JP2002050441A JP2002050441A JP2003256249A JP 2003256249 A JP2003256249 A JP 2003256249A JP 2002050441 A JP2002050441 A JP 2002050441A JP 2002050441 A JP2002050441 A JP 2002050441A JP 2003256249 A JP2003256249 A JP 2003256249A
Authority
JP
Japan
Prior art keywords
structured document
data
node
update
document data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002050441A
Other languages
English (en)
Other versions
JP4153219B2 (ja
Inventor
Hidetoshi Ueno
英俊 上野
Tsuyoshi Kato
剛志 加藤
Hidemoto Suzuki
偉元 鈴木
Norihiro Ishikawa
憲洋 石川
Hiromitsu Sumino
宏光 角野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2002050441A priority Critical patent/JP4153219B2/ja
Publication of JP2003256249A publication Critical patent/JP2003256249A/ja
Application granted granted Critical
Publication of JP4153219B2 publication Critical patent/JP4153219B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 できるだけ少ないデータ量でクライアント側
のXMLデータの更新を可能としたXMLデータ更新方
法を提供する。 【解決手段】 XMLデータ更新システム1では、移動
機30に提供されるXMLデータが更新される際、オリ
ジンサーバ10は、更新前のXMLデータと更新後のX
MLデータとの差分を表すXSLTデータを生成し、移
動機30へ送信する。移動機30は、このXSLTデー
タに基づいて、保持している更新前のXMLデータを更
新し、更新後のXMLデータを保持する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、サーバからクライ
アントへ提供される、1又は複数の要素を構造化して構
成される構造化文書データを更新する構造化文書データ
更新方法に関する。
【0002】
【従来の技術】従来より、1又は複数の要素を構造化し
て構成される構造化文書であるXML(extensible mar
kup language)や、HTML(hyper text markup lang
uage)を初めとする様々な形式のデータをサーバからク
ライアントへ提供するシステムが利用されている。この
ようなシステムでは、サーバは、データの一部のみが修
正された場合であっても、その修正をクライアント側の
データに反映させるために、データの全体をクライアン
トへ送信していた。
【0003】
【発明が解決しようとする課題】しかしながら、上述し
たように、サーバがデータの全体をクライアントへ送信
すると、データ量が大きい場合には、通信ネットワーク
の混雑を引き起こす可能性がある。また、データの転送
時間が長くなることにより、クライアント側でデータの
更新が終了するまでに、サーバとクライアントとの間で
データの不一致期間が長くなるという問題がある。
【0004】このため、できるだけ少ないデータ量でク
ライアント側のデータの更新が可能になるようなデータ
更新方法が要求されている。特に、情報の共有を容易に
するデータ形式であるXML形式のデータの更新につい
て、更新前のデータと更新後のデータとの間に関連性が
ない場合(例えばファイル名が異なる場合)には、サー
バは、データの全体をクライアントへ送信せざるを得な
かったため、かかる要求が高まっている。
【0005】本発明は、このような問題点を解決するも
のであり、その目的は、できるだけ少ないデータ量でク
ライアント側の構造化文書データの更新を可能とした構
造化文書データ更新方法を提供することにある。
【0006】
【課題を解決するための手段】上記の目的を達成するた
め、本発明は請求項1に記載されるように、サーバから
クライアントへ提供される、1又は複数の要素を構造化
して構成される構造化文書データを更新する構造化文書
データ更新方法において、前記サーバは、更新前の構造
化文書データと更新後の構造化文書データとの差分を表
す差分データを生成し、前記生成した差分データを前記
クライアントへ送信し、前記クライアントは、前記サー
バから送信される差分データに基づいて、保有する構造
化文書データを更新するようにした。
【0007】このような構造化文書データ更新方法で
は、サーバは、クライアントに対して、更新後の構造化
文書データの全体を送信するのではなく、更新前の構造
化文書データと更新後の構造化文書データとの差分のデ
ータを生成して送信するだけで良い。このため、できる
だけ少ないデータ量でクライアント側の構造化文書デー
タを更新することができ、通信ネットワークの混雑を防
止するとともに、サーバとクライアントとの間での構造
化文書データの不一致期間を短縮することが可能とな
る。
【0008】また、上記の目的を達成するため、本発明
は請求項2に記載されるように、サーバからクライアン
トへ提供される、1又は複数の要素を構造化して構成さ
れる構造化文書データを更新する構造化文書データ更新
方法において、前記サーバは、更新前の構造化文書デー
タと更新後の構造化文書データとの差分を表す差分デー
タを生成し、前記生成した差分データを前記クライアン
トへ送信し、前記クライアントにおいて、該差分データ
に基づいて、保有する構造化文書データが更新されるよ
うにした。
【0009】このような構造化文書データ更新方法で
は、請求項1に記載された発明と同様、サーバは、クラ
イアントに対して、更新後の構造化文書データの全体を
送信するのではなく、更新前の構造化文書データと更新
後の構造化文書データとの差分のデータを生成して送信
するだけで良い。このため、できるだけ少ないデータ量
でクライアント側の構造化文書データを更新することが
でき、通信ネットワークの混雑を防止するとともに、サ
ーバとクライアントとの間での構造化文書データの不一
致期間を短縮することが可能となる。
【0010】また、本発明は請求項3に記載されるよう
に、前記構造化文書データ更新方法において、更新前の
構造化文書データと更新後の構造化文書データとの差分
を表す差分データを生成する際に、前記更新前及び更新
後の構造化文書データの階層構造を表す階層情報に基づ
いて生成するようにした。
【0011】この場合には、更新前及び更新後の構造化
文書データの階層構造を表す階層情報に基づいて差分デ
ータを生成することにより、更新前の構造化文書データ
と更新後の構造化文書データとの差分を容易に表すこと
が可能となる。
【0012】また、本発明は請求項4に記載されるよう
に、前記構造化文書データ更新方法において、前記更新
前の構造化文書データの階層情報と、前記更新後の構造
化文書データの階層情報とに基づいて、前記更新前及び
更新後の構造化文書データを構成する最上位の要素から
配下の要素に向けて探索し、異なる要素が存在した場合
に、該異なる要素とその配下の要素とを差分とした差分
データを生成するようにした。
【0013】この場合には、更新前の構造化文書データ
と更新後の構造化文書データとの間に異なる要素が存在
した場合に、その異なる要素とその配下の要素とを差分
とみなして差分データを生成するため、探索に要する時
間を短縮し、迅速に差分データを生成することができ
る。
【0014】また、本発明は請求項5に記載されるよう
に、前記構造化文書データ更新方法において、前記更新
前の構造化文書データの階層情報に基づいて、該更新前
の構造化文書データを構成する要素を第1の2次元配列
に展開するとともに、前記更新後の構造化文書データの
階層情報に基づいて、該更新後の構造化文書データを構
成する要素を第2の2次元配列に展開し、前記第1の2
次元配列の各列と前記第2の2次元配列の各列との一致
の度合を検出し、前記一致の度合に基づいて、前記差分
データを生成するようにした。
【0015】この場合には、更新前の構造化文書データ
の階層情報に基づく第1の2次元配列と、更新後の構造
化文書データの階層情報に基づく第2の2次元配列との
一致の度合に基づいて、差分データを生成することによ
り、挿入、追加、削除、変更等の対象となる要素の情報
のみを差分データに含ませることができ、差分データ内
の情報を必要最小限とすることができる。
【0016】また、本発明は請求項6に記載されるよう
に、前記構造化文書データ更新方法において、前記更新
前の構造化文書データの階層情報に基づいて、該更新前
の構造化文書データを構成する要素と該要素の直下の要
素とを特定する第1の部品を生成するとともに、前記更
新後の構造化文書データの階層情報に基づいて、該更新
後の構造化文書データを構成する要素と該要素の直下の
要素とを特定する第2の部品を生成し、前記第1及び第
2の部品の対応付けを行い、前記対応付けの結果に基づ
いて、前記差分データを生成するようにした。
【0017】この場合には、更新前の構造化文書データ
の階層情報に基づく部品と、更新後の構造化文書データ
の階層情報に基づく部品との対応付けの結果に基づい
て、差分データを生成することにより、請求項6に記載
された発明と同様、挿入、追加、削除、変更等の対象と
なる要素の情報のみを差分データに含ませることがで
き、差分データ内の情報を必要最小限とすることができ
る。
【0018】また、本発明は請求項7に記載されるよう
に、前記構造化文書データ更新方法において、前記更新
前の構造化文書データの階層情報に基づいて、更新前の
要素の構成パターンを要素がない場合を含め、最上位の
要素を除外してて生成するとともに、前記更新後の構造
化文書データの階層情報に基づいて、更新後の要素の構
成パターンを要素がない場合を含め、最上位の要素を除
外して生成し、前記生成した更新前の要素の構成パター
ンの全てと更新後の要素の構成パターンの全てとを組み
合わせ、前記各組み合わせにおいて、更新前の構造化文
書を構成するノードから該組み合わせに対応する更新前
の要素の構成パターンを削除するとともに、更新後の構
造化文書を構成するノードから該組み合わせに対応する
更新後の要素の構成パターンを削除し、前記削除後の更
新前の構造化文書を構成するノードと更新後の構造化文
書を構成するノードとにおいて、一致する要素が最も多
い前記組み合わせに基づいて、前記差分データを生成す
るようにした。
【0019】この場合には、更新前と更新後で一致しな
い要素の組み合わせを容易に特定することができ、この
組み合わせに基づいて、差分データを生成することによ
り、請求項6に記載された発明と同様、挿入、追加、削
除、変更等の対象となる要素の情報のみを差分データに
含ませることができ、差分データ内の情報を必要最小限
とすることができる。
【0020】なお、要素の構成パターンとは、構造化文
書データを構成する要素に要素なしを含め、最上位の要
素を除外したものを1個乃至最大個数選択することによ
って得られる全ての組み合わせを指す。
【0021】また、本発明は請求項8に記載されるよう
に、前記構造化文書データ更新方法において、前記構造
化文書はXMLデータであり、前記差分データはXSL
T(extensible stylesheets language transformation
s)データであり、前記階層情報はDOM(document ob
ject model )ツリーであるようにした。
【0022】構造化文書データがXMLデータの場合、
更新前のXMLデータと更新後のXMLデータの差分
は、XSLTデータにより表すことができる。また、D
OMツリーは、XMLデータの階層構造を表す情報とし
て標準的に用いられている。従って、このDOMツリー
を利用して差分データであるXSLTデータを生成する
ことにより、新たにXMLデータの階層構造を表す階層
情報を定める必要がなく、本発明の汎用的な利用が可能
となる。
【0023】また、上記の目的を達成するため、本発明
は請求項9に記載されるように、クライアントへ1又は
複数の要素を構造化して構成される構造化文書データを
提供する情報提供サーバにおいて、更新前の構造化文書
データと更新後の構造化文書データとの差分を表す差分
データを生成する差分データ生成手段と、前記生成され
た差分データを前記クライアントへ送信する差分データ
送信手段とを備える。
【0024】このような情報提供サーバは、クライアン
トに対して、更新後の構造化文書データの全体を送信す
るのではなく、更新前の構造化文書データと更新後の構
造化文書データとの差分のデータを生成して送信するだ
けで良い。このため、できるだけ少ないデータ量でクラ
イアント側の構造化文書データを更新することができ、
通信ネットワークの混雑を防止するとともに、サーバと
クライアントとの間での構造化文書データの不一致期間
を短縮することが可能となる。
【0025】また、本発明は請求項10に記載されるよ
うに、前記情報提供サーバにおいて、前記差分データ生
成手段は、前記更新前及び更新後の構造化文書データの
階層構造を表す階層情報に基づいて前記差分データを生
成するようにした。
【0026】この場合には、更新前及び更新後の構造化
文書データの階層構造を表す階層情報に基づいて差分デ
ータを生成することにより、更新前の構造化文書データ
と更新後の構造化文書データとの差分を容易に表すこと
が可能となる。
【0027】また、本発明は請求項11に記載されるよ
うに、前記情報提供サーバにおいて、前記差分データ生
成手段は、前記更新前の構造化文書データの階層情報
と、前記更新後の構造化文書データの階層情報とに基づ
いて、前記更新前及び更新後の構造化文書データを構成
する最上位の要素から配下の要素に向けて探索し、異な
る要素が存在した場合に、該異なる要素とその配下の要
素とを差分とした差分データを生成するようにした。
【0028】この場合には、更新前の構造化文書データ
と更新後の構造化文書データとの間に異なる要素が存在
した場合に、その異なる要素とその配下の要素とを差分
とみなして差分データを生成するため、探索に要する時
間を短縮し、迅速に差分データを生成することができ
る。
【0029】また、本発明は請求項12に記載されるよ
うに、前記情報提供サーバにおいて、前記差分データ生
成手段は、前記更新前の構造化文書データの階層情報に
基づいて、該更新前の構造化文書データを構成する要素
を第1の2次元配列に展開するとともに、前記更新後の
構造化文書データの階層情報に基づいて、該更新後の構
造化文書データを構成する要素を第2の2次元配列に展
開し、前記第1の2次元配列の各列と前記第2の2次元
配列の各列との一致の度合を検出し、前記一致の度合に
基づいて、前記差分データを生成するようにした。
【0030】この場合には、更新前の構造化文書データ
の階層情報に基づく第1の2次元配列と、更新後の構造
化文書データの階層情報に基づく第2の2次元配列との
一致の度合に基づいて、差分データを生成することによ
り、挿入、追加、削除、変更等の対象となる要素の情報
のみを差分データに含ませることができ、差分データ内
の情報を必要最小限とすることができる。
【0031】また、本発明は請求項13に記載されるよ
うに、前記情報提供サーバにおいて、前記差分データ生
成手段は、前記更新前の構造化文書データの階層情報に
基づいて、該更新前の構造化文書データを構成する要素
と該要素の直下の要素とを特定する第1の部品を生成す
るとともに、前記更新後の構造化文書データの階層情報
に基づいて、該更新後の構造化文書データを構成する要
素と該要素の直下の要素とを特定する第2の部品を生成
し、前記第1及び第2の部品の対応付けを行い、前記対
応付けの結果に基づいて、前記差分データを生成するよ
うにした。
【0032】この場合には、更新前の構造化文書データ
の階層情報に基づく部品と、更新後の構造化文書データ
の階層情報に基づく部品との対応付けの結果に基づい
て、差分データを生成することにより、請求項12に記
載された発明と同様、挿入、追加、削除、変更等の対象
となる要素の情報のみを差分データに含ませることがで
き、差分データ内の情報を必要最小限とすることができ
る。
【0033】また、本発明は請求項14に記載されるよ
うに、前記情報提供サーバにおいて、前記差分データ生
成手段は、前記更新前の構造化文書データの階層情報に
基づいて、更新前の要素の構成パターンを要素がない場
合を含め、最上位の要素を除外してて生成するととも
に、前記更新後の構造化文書データの階層情報に基づい
て、更新後の要素の構成パターンを要素がない場合を含
め、最上位の要素を除外して生成し、前記生成した更新
前の要素の構成パターンの全てと更新後の要素の構成パ
ターンの全てとを組み合わせ、前記各組み合わせにおい
て、更新前の構造化文書を構成するノードから該組み合
わせに対応する更新前の要素の構成パターンを削除する
とともに、更新後の構造化文書を構成するノードから該
組み合わせに対応する更新後の要素の構成パターンを削
除し、前記削除後の更新前の構造化文書を構成するノー
ドと更新後の構造化文書を構成するノードとにおいて、
一致する要素が最も多い前記組み合わせに基づいて、前
記差分データを生成するようにした。
【0034】この場合には、更新前と更新後で一致しな
い要素の組み合わせを容易に特定することができ、この
組み合わせに基づいて、差分データを生成することによ
り、請求項12に記載された発明と同様、挿入、追加、
削除、変更等の対象となる要素の情報のみを差分データ
に含ませることができ、差分データ内の情報を必要最小
限とすることができる。
【0035】また、本発明は請求項15に記載されるよ
うに、前記情報提供サーバにおいて、前記構造化文書は
XMLデータであり、前記差分データはXSLTデータ
であり、前記階層情報はDOMツリーであるようにし
た。
【0036】構造化文書データがXMLデータの場合、
更新前のXMLデータと更新後のXMLデータの差分
は、XSLTデータにより表すことができる。また、D
OMツリーは、XMLデータの階層構造を表す情報とし
て標準的に用いられている。従って、このDOMツリー
を利用して差分データであるXSLTデータを生成する
ことにより、新たにXMLデータの階層構造を表す階層
情報を定める必要がなく、本発明の汎用的な利用が可能
となる。
【0037】
【発明の実施の形態】以下、本発明の実施の形態を図面
に基づいて説明する。図1は、本発明が適用されるXM
Lデータ更新システムの構成例を示す図である。同図に
示すXMLデータ更新システム1は、提供対象のコンテ
ンツである、1又は複数の要素(ノード)によって構成
される構造化文書としてのXMLデータの保持及び公開
を行うとともに、XMLデータの更新の際に、更新前の
XMLデータと更新後のXMLデータとの差分の検出と
差分データとしてのXSLTデータの生成を行うオリジ
ンサーバ10と、該オリジンサーバ10からXMLデー
タの提供を受けるクライアントとしての移動機30と、
これらオリジンサーバ10と移動機30とを接続する通
信ネットワークとしてのインターネット40により構成
される。
【0038】このXMLデータ更新システム1では、移
動機30に提供されるXMLデータが更新される際、オ
リジンサーバ10は、更新前のXMLデータと更新後の
XMLデータとの差分を表す差分データとしてのXSL
Tデータを生成し、移動機30へ送信する。移動機30
は、このXSLTデータに基づいて、保持している更新
前のXMLデータを更新し、更新後のXMLデータを保
持する。
【0039】図2は、オリジンサーバ10の詳細な構成
例である。同図に示すオリジンサーバ10は、コンテン
ツであるXMLデータの登録処理、クライアントである
移動機30に対するXMLデータの配信処理、及びXM
Lデータが更新された場合に更新前のXMLデータと更
新後のXMLデータとの差分を表すXSLTデータを生
成し、移動機30へ提供する処理を行う。
【0040】このオリジンサーバ10は、ネットワーク
インタフェース部11、プロトコル部12、コンテンツ
登録サーバ部13、コンテンツ保存部14、Webサー
バ部15、更新検出部16、差分生成部17及びプッシ
ュメッセージ作成部18を備える。
【0041】図3は、移動機30の詳細な構成例であ
る。同図に示す移動機30は、オリジンサーバ10から
のXMLデータの取得処理と、オリジンサーバ10から
のXSLTデータに基づくXMLデータの更新処理とを
行う。
【0042】この移動機30は、リクエスト作成部3
1、プロトコル部32、ネットワークインタフェース部
33、コンテンツ制御部34及びコンテンツ保存部35
を備える。
【0043】XMLデータの登録処理は、外部装置(図
示せず)がオリジンサーバ10に対してXMLデータを
送信することが契機となる。具体的には、外部装置は、
例えばファイル転送プロトコルであるFTP(file tra
nsfer protocol)により、インターネット40、オリジ
ンサーバ10内のネットワークインタフェース部11及
びプロトコル部12を介してコンテンツ登録サーバ部1
3にアクセスする。
【0044】プロトコル部12は、パケットを取得する
と、XMLデータを復原してコンテンツ登録サーバ13
へ出力する。コンテンツ登録サーバ部13は、XMLデ
ータを登録するためのFTPサーバアプリケーションに
よってXMLデータを受信し、外部装置からXMLデー
タが送信される毎に、そのXMLデータをコンテンツ保
存部14に登録する。
【0045】なお、コンテンツ保存部14にあるXML
データが既に登録されている場合に、更に、外部装置が
そのXMLデータを更新したXMLデータを送信した場
合には、コンテンツ登録サーバ部13は、既に登録され
ているXMLデータを削除や上書きすることなく、更新
したXMLデータを登録するようにする。また、XML
データが複数回更新された場合には、コンテンツ登録サ
ーバ部13は、最新のXMLデータを新たに登録する。
更新された古いXMLデータの保存数は予め決められて
おり、この数を超えた場合には、古いXMLデータから
順に削除される。従って、コンテンツ保存部14には、
更新前のXMLデータと、更新後のXMLデータの双方
が登録されることになる。
【0046】また、コンテンツ登録サーバ部13は、登
録したXMLデータに対応する履歴ファイルを生成し、
XMLデータに対応付けてコンテンツ保存部14に登録
する。図4は、履歴ファイルの一例を示す図である。同
図に示す履歴ファイルは、対応するXMLデータの登録
日時、データ名及び対応するURL(uniform resource
locator)により構成される。これらの情報のうち、登
録日時は、更新したXMLデータが登録される毎に、書
き換えられる。
【0047】オリジンサーバ10によるXMLデータの
配信処理及び移動機30によるXMLデータの取得処理
は、移動機30がオリジンサーバ10に対してXMLデ
ータを取得することができるプロトコルを用いてメッセ
ージ取得のためのリクエストを送信することが契機とな
る。具体的には、移動機30内のリクエスト作成部31
は、プロトコル部32、ネットワークインタフェース部
33、インターネット40、オリジンサーバ10内のネ
ットワークインタフェース部11及びプロトコル部12
を介してWebサーバ部15にアクセスし、HTTPリ
クエストを作成して出力する。このHTTPリクエスト
は、プロトコル部32によって通信プロトコルに応じた
パケットに分割され、ネットワークインタフェース33
及びインターネット40を介してオリジンサーバ10へ
送信される。
【0048】オリジンサーバ10内のプロトコル部12
は、ネットワークインタフェース部11を介して、この
パケットを取得すると、HTTPリクエストを復原して
Webサーバ部15へ出力する。
【0049】Webサーバ部15は、HTTPリクエス
トを取得すると、XMLデータを配信するためのHTT
Pサーバアプリケーション等を起動して、HTTPリク
エスト内のURLを抽出し、更に移動機30が差分デー
タの転送要求を行っているか否かを判定する。次に、W
ebサーバ部15は、コンテンツ保存部14に登録され
ている履歴ファイルを検索する。もし、その履歴ファイ
ルの登録日時が差分データの転送要求メッセージに含ま
れる、移動機キャッシュデータの登録日時よりも新しい
日時であった場合には、XMLデータが更新されたとい
うことであるから、Webサーバ部15は、差分生成部
17に対してXSLTデータの生成を要求する。
【0050】差分生成部17は、移動機キャッシュデー
タの登録日時に対応する古いXMLデータと更新後のX
MLデータとの差分に応じたXSLTデータを生成す
る。次に、差分生成部17は、その生成したXSLTデ
ータをWebサーバ部15へ送る。Webサーバ部15
は、差分生成部17から受信したXSLTデータをHT
TPリプライに包含して出力する。もし、差分生成部1
7がXSLTデータの生成を失敗した場合には、更新後
のXMLデータをコンテンツ保存部14から読み出し、
XSLTデータでなく、この更新後のXMLデータをH
TTPリプライに包含して出力する。
【0051】なお、XSLTデータのサイズが更新後の
XMLデータのサイズよりも大きくなる場合が稀にあり
得る。このため、差分生成部17は、生成したXSLT
データのサイズと更新後のXMLデータのサイズとを比
較し、XSLTデータのサイズのほうが大きい場合に
は、更新後のXMLデータをプッシュメッセージ作成部
18へ出力する。
【0052】プロトコル部12は、Webサーバ部15
によって出力されたXMLデータを含むHTTPリプラ
イを通信プロトコルに応じたパケットに分割し、ネット
ワークインタフェース部11及びインターネット40を
介して移動機30へ送信する。
【0053】移動機30内のプロトコル部32は、この
パケットを受信すると、XMLデータを復原し、コンテ
ンツ制御部34へ出力する。コンテンツ制御部34は、
取得したXMLデータをコンテンツ保存部35に格納す
る。
【0054】また、オリジンサーバ10内の更新検出部
16は、逐次、コンテンツ保存部14に登録されている
XMLデータが更新されたか否かを判定する。具体的に
は、更新検出部16は、履歴ファイルの登録日時が更新
されたか否かを判定し、更新された場合には、その履歴
ファイルに対応するXMLデータが更新されたものと判
断する。
【0055】XMLデータが更新されている場合には、
更新検出部16は、更新前のXMLデータと更新後のX
MLデータとをコンテンツ保存部14から読み出して差
分生成部17へ出力する。
【0056】差分生成部17は、入力した更新前のXM
Lデータと更新後のXMLデータとの差分を表すXSL
Tデータを生成する。XSLTデータの詳細な生成方法
は、後述する。差分生成部17は、生成したプッシュメ
ッセージ作成部18へ出力する。
【0057】なお、XSLTデータのサイズが更新後の
XMLデータのサイズよりも大きくなる場合が稀にあり
得る。このため、差分生成部17は、生成したXSLT
データのサイズと更新後のXMLデータのサイズとを比
較し、XSLTデータのサイズのほうが大きい場合に
は、更新後のXMLデータをプッシュメッセージ作成部
18へ出力する。
【0058】プッシュメッセージ作成部18は、入力し
たXSLTデータあるいは更新後のXMLデータを包含
したプッシュメッセージを作成し、出力する。このプッ
シュメッセージは、プロトコル部12によって通信プロ
トコルに応じたパケットに分割され、ネットワークイン
タフェース11及びインターネット40を介して移動機
30へ送信される。
【0059】移動機30内のプロトコル部32は、この
パケットを受信すると、プッシュメッセージを復原し、
コンテンツ更新部34へ出力する。コンテンツ更新部3
4は、取得したプッシュメッセージに基づいて、コンテ
ンツ保存部35に格納されているXMLデータを更新す
る。
【0060】次に、差分生成部17によるXSLTデー
タの詳細な生成方法を説明する。図5は、更新前のXM
LデータのDOMツリー及び更新後のXMLデータのD
OMツリーの一例を示す図である。同図に示すDOMツ
リー100は、更新前のXMLデータの階層構造を表
す。同様に、DOMツリー200は、更新後のXMLデ
ータの階層構造を表す。
【0061】更新前のXMLデータのDOMツリー(以
下「更新前DOMツリー」と称する)100内の各ノー
ド(ノードA〜ノードJ)と、更新後のXMLデータの
DOMツリー(以下「更新後DOMツリー」と称する)
200内の各ノード(ノードA、C、E、F、G、H、
I、J、1〜5)は、ルートノードであるノードAから
の経路(XPath)と、直上のノード(親ノード)の
配下に存在する全てのノード(子ノード)内における順
位により特定される。子ノード内における順位は、XM
Lデータにおける子ノード間の記述順を示す。
【0062】例えば、更新前DOMツリー100のノー
ドHは、XPath=A/C/F/Hと、ノードFを親
ノードとする子ノード(ノードH、I)内における順位
(1番目)により特定される。
【0063】差分生成部17は、更新前DOMツリー1
00と更新後DOMツリー200とを比較したときに、
各ノードについてXPath及び子ノード内の順位が異
なっている場合には、XSLTデータにその旨の情報を
含ませる必要がある。
【0064】以下、第1実施例乃至第3実施例において
は、図5に示す更新前DOMツリー100及び更新後D
OMツリー200を例に説明する。 (第1実施例)まず、更新前のXMLデータのDOMツ
リーと更新後のXMLデータのDOMツリーとを、ルー
トノードから配下のノードに向けて探索し、異なるノー
ドが存在した場合に、当該異なるノードとその配下のサ
ブツリー(部分木)とを差分としたXSLTデータを生
成する方法(第1のXSLTデータ生成方法)について
説明する。
【0065】第1のXSLTデータ生成方法では、差分
生成部17は、更新前DOMツリーのルートノードから
配下のノードに向けて探索するとともに、更新後DOM
ツリーのルートノードから配下のノードに向けて探索
し、差異のあるノードを認識する。
【0066】ここでは、差分生成部17は、変更前DO
Mツリー100を基準として探索すると、ノードBとそ
の配下のサブツリーが削除されたことを認識する。ま
た、差分生成部17は、ノードDとその配下のサブツリ
ーが削除され、ノードFとその配下のサブツリーが削除
されたことを認識する。
【0067】一方、差分生成部17は、変更後DOMツ
リー200を基準として探索すると、ノード1とその配
下のサブツリーが追加され、当該ノード1の追加位置が
ノードAの第1子ノードであることを認識する。また、
差分生成部17は、ノード2とその配下のサブツリーが
追加され、当該ノード2の追加位置がノードAの第2子
ノードであること、及び、ノード5とその配下のサブツ
リーが追加され、当該ノード5の追加位置がノードCの
第1子ノードであることを認識する。
【0068】次に、差分生成部17は、上述した削除さ
れたノード及び追加されたノードの情報を用いて、差分
情報としてのXSLTデータを生成する。
【0069】具体的には、差分生成部17は、更新前D
OMツリー100のノードBのXPathがA/Bであ
り、当該ノードBとその配下のサブツリーが削除された
ことを示すXSLTデータを生成する。同様に、差分生
成部17は、更新前DOMツリー100のノードDのX
PathがA/Dであり、当該ノードDが削除されたこ
と、及び、更新前DOMツリー100のノードFのXP
athがA/C/Fであり、当該ノードFが削除された
ことを示すXSLTデータを生成する。
【0070】また、差分生成部17は、更新後DOMツ
リー200のノード1のXPathがA/1であり、当
該ノード1とその配下のサブツリーが追加されたことを
示すXSLTデータを生成する。同様に、差分生成部1
7は、更新後DOMツリー200のノード2のXPat
hがA/2であり、当該ノード2が追加されたこと、及
び、更新後DOMツリー200のノード5のXPath
がA/C/5であり、当該ノード5が追加されたことを
示すXSLTデータを生成する。
【0071】上述した第1のXSLTデータ生成方法を
採用する場合には、更新前のXMLデータのDOMツリ
ーと更新後のXMLデータのDOMツリーとの間に異な
るノードが存在した場合に、その異なるノードとその配
下の全てのノードとを差分とみなしてXSLTデータが
生成されるため、探索に要する時間を短縮し、迅速にX
SLTデータを生成することができる。 (第2実施例)次に、更新前のXMLデータのDOMツ
リーを第1の2次元配列に展開するとともに、更新後の
XMLデータのDOMツリーを第2の2次元配列に展開
し、これら第1及び第2の2次元配列の各列の一致の度
合に基づいて、XSLTデータを生成する方法(第2の
XSLTデータ生成方法)について説明する。
【0072】第2のXSLTデータ生成方法では、差分
生成部17は、更新前DOMツリー100を2次元配列
(以下「更新前2次元配列」と称する)に展開するとと
もに、更新後DOMツリー200を2次元配列(以下
「更新後2次元配列」と称する)に展開する。
【0073】図6は、DOMツリーの展開により得られ
る2次元配列の一例を示す図である。同図に示す更新前
2次元配列101と更新後2次元配列201の各列は、
ルートノードAから配下の全てのノードに至る経路を示
し、左側の方が同一階層における順位の高いノードを含
むようになっている。
【0074】次に、差分生成部17は、更新前2次元配
列101の各列と送信後2次元配列201の各列との一
致の度合を検出する。具体的には、差分生成部17は、
更新前2次元配列101の各列と送信後2次元配列20
1の各列の順列を導出する。例えば、更新前2次元配列
101の最も左側の列(第1列)は、ノードA、B、E
の順で構成されている。このため、更新前2次元配列1
01の第1列については、ノードA、B、Eからなる
組、ノードA、Bからなる組、ノードA、Eからなる
組、ノードAからなる組、ノードB、Eからなる組、ノ
ードBからなる組及びノードEからなる組の7つの順列
が導出される。
【0075】次に、差分生成部17は、導出した順列を
比較することにより、更新前2次元配列の各列と送信後
2次元配列の各列とについて、一致の度合が高い列同士
を対応させる。
【0076】ここでは、差分生成部17は、更新前2次
元配列101の第1列と更新後2次元配列201の第1
列とがともにノードA、Eからなる順列を有しているの
で、これらの列を対応させる。また、差分生成部17
は、更新前2次元配列101の第2列と更新後2次元配
列201の第5列とがともにノードA、Cからなる順列
とノードF、Hからなる順列を有しているので、これら
の列を対応させる。同様に、差分生成部17は、更新前
2次元配列101の第3列と更新後2次元配列201の
第6列とがともにノードA、Cからなる順列とノード
F、Iからなる順列を有しているので、これらの列を対
応させる。更に、差分生成部17は、更新前2次元配列
101の第4列と更新後2次元配列201の第7列とが
ともにノードA、C、G、Iからなる順列を有している
ので、これらの列を対応させる。
【0077】このように、更新前2次元配列の各列と送
信後2次元配列の各列とを対応させた後、差分生成部1
7は、更新前2次元配列において完全一致しているため
に対応付けされた列を2つずつ選択し、これら選択した
2つの列の位置が更新後に入れ替わっているか否かを判
定する。例えば、更新前2次元配列の第1列と更新後2
次元配列の第3列とが完全一致して対応付けられるとと
もに、更新前2次元配列の第3列と更新後2次元配列の
第1列とが完全一致して対応付けられる場合を考える。
この場合、更新前2次元配列の第1列が更新後2次元配
列では第3列に移動し、更新前2次元配列の第3列が更
新後2次元配列の第1列に移動したと考えることがで
き、列の入れ替えが生じていると判定される。
【0078】列の入れ替えが生じている場合、差分生成
部17は、その旨を示す差分情報としてのXSLTデー
タを生成する。
【0079】次に、差分生成部17は、対応させた2つ
の列が完全一致していないものについて差異を検出し、
その差異に基づいて、ノードの変更、挿入を認識すると
ともに、その挿入位置を弟ノードや兄ノードにより認識
する。
【0080】ここでは、上述した対応付けにより得られ
た、更新前2次元配列101の第1列と更新後2次元配
列201の第1列による対応、更新前2次元配列101
の第2列と更新後2次元配列201の第5列による対
応、更新前2次元配列101の第3列と更新後2次元配
列201の第6列による対応及び更新前2次元配列10
1の第4列と更新後2次元配列201の第7列による対
応のうち、更新前2次元配列101の第4列と更新後2
次元配列201の第7列による対応以外は、2つの列が
完全一致していない。
【0081】このため、差分生成部17は、まず更新前
2次元配列101の第1列と更新後2次元配列201の
第1列の差異を検討し、更新前2次元配列101の第1
列のノードBが更新後2次元配列201の第1列ではノ
ード1に変更されていることを認識する。また、差分生
成部17は、更新前2次元配列101の第2列と更新後
2次元配列201の第5列の差異を検討し、更新後2次
元配列201の第5列にはノードCとノードFとの間に
ノード5が挿入されており、ノード5の弟ノードのXP
athがA/C/Gであることを認識する。同様に、差
分生成部17は、更新前2次元配列101の第3列と更
新後2次元配列201の第6列の差異を検討し、更新後
2次元配列201の第6列にはノードCとノードFとの
間にノード5が挿入されており、ノード5の弟ノードの
XPathがA/C/Gであることを認識する。
【0082】次に、差分生成部17は、更新前2次元配
列の各列のうち、対応付けされていないもののノードの
削除を認識する。ここでは、差分生成部17は、更新前
2次元配列101において、対応付けされていない第5
列のノードA、Dのうち、ルートノードAを除くノード
Dが削除されることを認識する。
【0083】次に、差分生成部17は、送信後2次元配
列の各列のうち、対応付けされていないもののノードの
追加を認識するとともに、その追加位置を弟ノードや兄
ノードにより認識する。ここでは、差分生成部17は、
更新後2次元配列201において、対応付けされていな
い第2列のノードA、2、3のうち、ルートノードAを
除くノード2、3が追加され、ノード2の兄ノードのX
PathがA/1であることを認識するとともに、対応
付けされていない第3列のノードA、2、4のうち、ル
ートノードAを除くノード2、4が追加され、ノード2
の兄ノードのXPathがA/1であることを認識す
る。更に、差分生成部17は、更新後2次元配列201
において、対応付けされていない第5列のノードA、
C、5、6のうち、ルートノードA、ノードCを除くノ
ード5、6が追加され、ノード6の弟ノードのXPat
hがA/C/5/Fであることを認識する。
【0084】このようにして、ノードの変更、挿入、挿
入位置、削除、追加及び追加位置を認識した後、差分生
成部17は、これらの情報を集約し、差分情報としての
XSLTデータを生成する。
【0085】ここでは、差分生成部17は、ノードBか
らノード1への変更を示す情報を含んだXSLTデータ
を生成する。また、差分生成部17は、更新後2次元配
列201の第2列のノード2、3が追加され、ノード2
の兄ノードのXPathがA/1であること、及び、第
3列のノード2、4が追加され、ノード2の兄ノードの
XPathがA/1であることに基づいて、ノード1の
弟ノードとしてのノード2を追加と、当該ノード2の直
下における兄ノード3及び弟ノード4の追加を示す情報
を上記生成したXSLTデータに追加する。
【0086】また、差分生成部17は、更新後2次元配
列201の第5列においてノードCとノードFとの間に
ノード5が挿入されており、ノード5の弟ノードのXP
athがA/C/Gであること、及び、更新後2次元配
列201の第6列においてノードCとノードFとの間に
ノード5が挿入されており、ノード5の弟ノードのXP
athがA/C/Gであることに基づいて、ノードCと
ノードFの間へのノード5の挿入と、当該ノード5がノ
ードGの兄ノードであることを示す情報を上記生成した
XSLTデータに追加する。
【0087】また、差分生成部17は、更新後2次元配
列201の第5列のノード5、6が追加されており、ノ
ード6の弟ノードのXPathがA/C/5/Fである
ことに基づいて、ノード5の直下におけるノードFの兄
ノードとしてのノード6の追加を示す情報を上記生成し
たXSLTデータに追加する。更に、差分生成部17
は、ノードDの削除を示す情報を上記生成したXSLT
データに追加する。
【0088】上述した第2のXSLTデータ生成方法を
採用する場合には、更新前のXMLデータのDOMツリ
ーに対応する第1の2次元配列と、更新後のXMLデー
タのDOMツリーに対応する第2の2次元配列との一致
の度合に基づいて、XSLTデータを生成するため、挿
入、追加、削除、変更等の対象となるノードの情報のみ
をXSLTデータに含ませることができ、XSLTデー
タ内の情報を必要最小限とすることができる。 (第3実施例)次に、更新前のXMLデータのDOMツ
リーに基づいて1のノード(親ノード)と該1のノード
の直下のノード(子ノード)とを特定する第1の部品を
生成するとともに、更新後のXMLデータのDOMツリ
ーに基づいて、1のノード(親ノード)と該1のノード
の直下のノード(子ノード)とを特定する第2の部品を
生成し、これら第1及び第2の部品の対応付けの結果に
基づいて、XSLTデータを生成する方法(第3のXS
LTデータ生成方法)について説明する。
【0089】第3のXSLTデータ生成方法では、差分
生成部17は、更新前DOMツリー100を構成する全
てのノードを1の親ノードと子ノードからなる部品に分
割し、各部品の情報を含んだ部品データ表(以下「更新
前部品データ表」)を生成する。同様に、差分生成部1
7は、更新後DOMツリー200を構成する全てのノー
ドを1親ノードと子ノードからなる部品に分割し、各部
品の情報を含んだ部品データ表(以下「更新後部品デー
タ表」)を生成する。差分生成部17は、DOMツリー
を構成する全てのノードを部品に分割する際、ルートノ
ード及び直下に子ノードを有していないノード以外のノ
ードが必ず1の部品の親ノードと他の部品の子ノードを
経験するように、DOMツリーを部品に分割する。
【0090】図7は、部品の生成を説明するための図で
ある。同図に示すように、更新前DOMツリー100
は、親ノードA、子ノードB、C、Dからなる部品11
1、親ノードB、子ノードEからなる部品112、親ノ
ードC、子ノードF、Gからなる部品113、親ノード
F、子ノードH、Iからなる部品114、親ノードG、
子ノードJからなる部品115に分割される。
【0091】一方、更新後DOMツリー200は、親ノ
ードA、子ノード1、2、Cからなる部品211、親ノ
ード1、子ノードEからなる部品212、親ノード2、
子ノード3、4からなる部品213、親ノードC、子ノ
ード5、Gからなる部品214、親ノード5、子ノード
6、Fからなる部品215、親ノードG、子ノードJか
らなる部品216、親ノードF、子ノードH、Iからな
る部品217に分割される。
【0092】図8は、部品データ表の一例を示す図であ
る。同図に示す更新前部品データ表102及び更新後部
品データ表202は、親ノードと子ノードからなる部品
と、当該親ノードのXPathとが対応付けられてい
る。なお、1の親ノードに対する子ノードが複数存在す
る場合、それらの子ノードは、順位が上のものが先に記
述される。
【0093】図8において、例えば、部品データ表10
2の第3行には、親ノードCと子ノードF、Gからなる
部品と、親ノードCのXPathであるA/Cとが対応
付けられている。
【0094】このように部品データ表を生成した後、差
分生成部17は、更新前部品データ表の部品と、更新後
部品データ表の部品とを比較し、ノードが完全一致する
部品を対応付けするとともに、その部品に対応するXP
athを比較し、一致しているか否かを認識する。
【0095】ここでは、差分生成部17は、更新前部品
データ表102内の第4行の部品114と、部品データ
表202内の第7行の部品217がともに親ノードF、
子ノードH、Iからなる部品であるため、これらの部品
114、217を対応付ける。更に、差分生成部17
は、部品114に対応するXPathであるA/C/F
と、部品217に対応するXPathであるA/C/5
/Fとを比較し、これらが一致していないことを認識す
る。
【0096】また、差分生成部17は、更新前部品デー
タ表102内の第5行の部品115と、部品データ表2
02内の第6行の部品216がともに親ノードG、子ノ
ードJからなる部品であるため、これらの部品115、
216を対応付ける。更に、差分生成部17は、部品1
15に対応するXPathであるA/C/Gと、部品2
16に対応するXPathA/C/Gとを比較し、これ
らが一致していることを認識する。
【0097】次に、差分生成部17は、部品は完全一致
するが、その部品に対応するXPathが異なる対応付
けに基づいて、ノードの移動を示す情報を生成する。こ
こでは、部品114と部品217は完全一致するが、こ
れら部品に対応するXPathはA/C/FとA/C/
5/Fであり、異なっている。このため、差分生成部1
7は、親ノードFがノードCの直下からノード5の直下
であってノード6の弟ノードとしての位置に移動し、子
ノードH、Iもそれに伴って移動することを示す情報を
生成する。
【0098】次に、差分生成部17は、差分生成部17
は、更新前部品データ表の部品と、更新後部品データ表
の部品とを比較し、ノードが部分一致する部品を対応付
けする。
【0099】ここでは、差分生成部17は、更新前部品
データ表102内の第1行の部品111と、部品データ
表202内の第1行の部品211がともにノードAを親
ノードとしており、対応するXPathがともにAであ
るため、これらの部品111、211を対応付ける。ま
た、差分生成部17は、更新前部品データ表102内の
第2行の部品112と、部品データ表202内の第2行
の部品212がともに1つのノードBを子ノードとして
おり、対応するXPathがA/B、A/1であって部
分一致するため、これらの部品112、212を対応付
ける。更に、差分生成部17は、更新前部品データ表1
02内の第3行の部品113と、部品データ表202内
の第4行の部品214がともにノードCを親ノードと
し、2つの子ノードのうちの1つがノードGであり、対
応するXPathがともにA/Cであって部分一致する
ため、これらの部品113、214を対応付ける。
【0100】次に、差分生成部17は、上記の部分一致
する部品の対応付けと、その部品に対応するXPath
とに基づいて、ノードの変更、追加、削除を示す情報を
生成する。
【0101】ここでは、差分生成部17は、部品111
(親ノードA、子ノードB、C、D)と部品211(親
ノードA、子ノード1、2、C)の対応付けと、これら
の部品に対応するXPath(ともにA)とに基づい
て、ノードBのノード1への変更を示す情報、ノードA
の直下であってノード1とノードCの間へのノード2の
追加を示す情報、及び、ノードDの削除を示す情報を生
成する。また、差分生成部17は、部品112(親ノー
ドB、子ノードE)と部品212(親ノード1、子ノー
ドE)の対応付けと、これらの部品に対応するXPat
h(A/BとA/1)とに基づいて、ノードBのノード
1への変更を示す情報を生成する。更に、差分生成部1
7は、部品113(親ノードC、子ノードF、G)と部
品214(親ノードC、子ノード5、G)の対応付け
と、これらの部品に対応するXPath(ともにA/
C)とに基づいて、ノードFのノード5への変更を示す
情報を生成する。
【0102】次に、差分生成部17は、更新前部品デー
タ表のうち対応付けされていない部品の追加を示す情報
と、更新後部品データ表のうち対応付けされていない部
品の削除を示す情報を生成する。
【0103】ここでは、更新前部品データ表102のう
ち対応付けされていない部品は存在しない。一方、更新
後部品データ表202のうち対応付けされていない部品
は、部品213、215である。
【0104】このため、差分生成部17は、部品213
(親ノード2、子ノード3、4)、対応するXPath
(A/2)及び前後の部品212、214に対応するX
Path(A/1、A/C)に基づいて、ノードAの直
下であってノード1とノードCの間へのノード2の追加
と、該ノード2の直下における兄ノード3及び弟ノード
4の追加を示す情報を生成する。また、差分生成部17
は、部品215(親ノード5、子ノード6、F)、対応
するXPath(A/C/5)及び後の部品216に対
応するXPath(A/C/G)に基づいて、ノードC
の直下においてノードGの兄ノードとしてのノード5の
追加と、該ノード5の直下におけるノードFの兄ノード
としてのノード6の追加を示す情報を示す情報を生成す
る。
【0105】次に、差分生成部17は、後述した手順に
より生成したノードの移動、変更、追加、削除を示す情
報を集約する。ここでは、差分生成部17は、ノードB
のノード1への変更を示す情報が2つ存在するため、こ
れらを1つに集約する。また、差分生成部17は、ノー
ドAの直下であってノード1とノードCの間へのノード
2の追加と、該ノード2の直下における兄ノード3及び
弟ノード4の追加を示す情報と、ノードAの直下であっ
てノード1とノードCの間へのノード2の追加を示す情
報とを集約し、ノードAの直下であってノード1とノー
ドCの間へのノード2の追加と、該ノード2の直下にお
ける兄ノード3及び弟ノード4の追加を示す情報を生成
する。更に、差分生成部17は、親ノードFがノードC
の直下からノード5の直下であってノード6の弟ノード
としての位置に移動し、子ノードH、Iもそれに伴って
移動することを示す情報、ノードFのノード5への変更
を示す情報、及び、ノードCの直下においてノードGの
兄ノードとしてのノード5の追加を示す情報とを集約し
て、ノードCとノードFの間へのノード5の挿入と、当
該ノード5がノードGの兄ノードであることを示す情報
を生成する。
【0106】このような集約の結果、ノードの移動、変
更、追加、挿入、削除を示す情報は、ノードBからノー
ド1への変更を示す情報、ノードDの削除を示す情報、
ノードAの直下であってノード1とノードCの間へのノ
ード2の追加と、該ノード2の直下における兄ノード3
及び弟ノード4の追加を示す情報、ノードCとノードF
の間へのノード5の挿入と、当該ノード5がノードGの
兄ノードであることを示す情報、及び、ノード5の直下
におけるノードFの兄ノードとしてのノード6の追加を
示す情報となる。差分生成部12は、これらの情報を含
んだXSLTデータを生成する。
【0107】上述した第3のXSLTデータ生成方法を
採用する場合には、更新前のXMLデータのDOMツリ
ーに対応する部品と、更新後のXMLデータのDOMツ
リーに対応する部品との対応付けの結果に基づいて、X
SLTデータを生成するため、挿入、追加、削除、変更
等の対象となるノードの情報のみをXSLTデータに含
ませることができ、XSLTデータ内の情報を必要最小
限とすることができる。 (第4実施例)次に、第4のXSLTデータ生成方法を
説明する。この第4のXSLTデータ生成方法では、更
新前のXMLデータのDOMツリーに基づいて、更新前
のノードの構成パターンをノードがない場合を含め、ル
ートノードを除外して生成するとともに、更新後のXM
LデータのDOMツリーに基づいて、更新後のノードの
構成パターンをノードがない場合を含め、ルートノード
を除外して生成し、これら生成した更新前のノードの構
成パターンの全てと更新後のノードの構成パターンの全
てとを組み合わせ、各組み合わせにおいて、更新前の全
てのノードの構成パターンから該組み合わせに対応する
更新前のノードの構成パターンを削除するとともに、更
新後の全てのノードの構成パターンから該組み合わせに
対応する更新後のノードの構成パターンを削除し、削除
後の更新前のノードの構成パターンと更新後のノードの
構成パターンとにおいて、一致するノードが最も多い組
み合わせに基づいて、XSLTデータを生成する。
【0108】本実施例においては、図9に示すように、
更新前のXMLデータの階層構造がルードノードA、ル
ードノードAの子ノードとしてのノードB及びノード
C、ノードCの子ノードとしてのノードDによって構成
される更新前DOMツリー300であり、更新後のXM
Lデータの階層構造がルードノードA、ルードノードA
の子ノードとしてのノード1及びノード2、ノード2の
子ノードとしてのノード3及ノードDによって構成され
る更新後DOMツリー400である場合を例に説明す
る。
【0109】差分生成部17は、まず、更新前DOMツ
リーと更新後DOMツリーとに基づいて、ルートノード
に変更がないか否かを判定する。ここでは、図9に示す
ようにルートノードは、更新前後で変更がなく、ともに
ノードAである。
【0110】差分生成部17は、ルートノードが更新前
後で変更がないと判断すると、次に更新前DOMツリー
に基づいて、更新前のノードの構成パターンをノードが
ない場合を含め、ルートノードを除外して生成する。
【0111】ここでは、更新前のXMLデータは、ノー
ドA、B、C、Dからなる。このため、更新前のノード
の構成パターンは、「ノードなし」、「ノードB」、
「ノードC」、「ノードD」、「ノードB・C」、「ノ
ードB・D」、「ノードC・D」、「ノードB・C・
D」の8個になる。
【0112】同様に、差分生成部17は、更新後DOM
ツリーに基づいて、更新後のノードの構成パターンをノ
ードがない場合を含め、ルートノードを除外して生成す
る。
【0113】ここでは、更新後のXMLデータは、ノー
ドA、B、D、1、2、3からなる。このため、更新後
のノードの構成パターンは、「ノードなし」、「ノード
B」、「ノードD」、「ノード1」、「ノード2」、
「ノード3」、「ノードB・D」、「ノードB・1」、
「ノードB・2」、「ノードB・3」、「ノードD・
1」、「ノードD・2」、「ノードD・3」、「ノード
1・2」、「ノード1・3」、「ノード2・3」、「ノ
ードB・D・1」、「ノードB・D・2」、「ノードB
・D・3」、「ノードB・1・2」、「ノードB・1・
3」、「ノードB・2・3」、「ノードD・1・2」、
「ノードD・1・3」、「ノードD・2・3」、「ノー
ド1・2・3」、「ノードB・D・1・2」、「ノード
B・D・1・3」、「ノードB・D・2・3」、「ノー
ドB・1・2・3」、「ノードD・1・2・3」、「ノ
ードB・D・1・2・3」の32個になる。
【0114】次に、差分生成部17は、生成した更新前
のノードの構成パターンのそれぞれと、更新後のノード
の構成パターンのそれぞれとを組み合わせる。ここで
は、更新前のノードの構成パターンは8個であり、更新
後のノードの構成パターンは32個であるので、これら
の組み合わせは図10に示すように256通りとなる。
【0115】なお、更新前のノード数をp、更新後のノ
ード数をqとすると、更新前のルートノードと更新後の
ルートノードを除いたp+q−2個のノードからノード
なしも含めた組み合わせを求めるため、その数は次式で
表わされる。
【0116】
【数1】 図9の例では、p=4、q=6であるので、上記式によ
れば、256通りの組み合わせが得られる。
【0117】その後、差分生成部17は、図11のフロ
ーチャートに従った処理を行う。即ち、差分生成部17
は、まず更新前のノードの構成パターンのそれぞれと、
更新後のノードの構成パターンのそれぞれとの組み合わ
せから1組を選択する(ステップ101)。
【0118】次に、差分生成部17は、更新前のXML
データを構成するノードから選択した組み合わせに含ま
れる更新前のノードの構成パターンを削除するととも
に、更新後のXMLデータを構成するノードから選択し
た組み合わせに含まれる更新後のノードの構成パターン
を削除する(ステップ102)。
【0119】上述したノードの削除後、差分生成部17
は、削除後の更新前のXMLデータのノードと更新後の
XMLデータのノードとが一致するか否かを判定する
(ステップ103)。
【0120】削除後の更新前後のXMLデータのノード
が一致する場合、差分生成部17は、一致するノード
(削除後の更新前後のXMLデータのノードであり、以
下「一致ノード」と称する)と、一致しないノード(選
択した組み合わせに含まれるノードであり、以下、当該
組み合わせに含まれる更新前のノードの構成パターンと
してのノードを「更新前差分ノード」と称し、当該組み
合わせに含まれる更新後のノードの構成パターンとして
のノードを「更新後差分ノード」と称する)とを認識し
(ステップ104)、一致ノードの数がこれまでで最大
であるか否かを判定する(ステップ105)。
【0121】一致ノードの数がこれまでで最大である場
合には、差分生成部17は、選択した組み合わせを最適
な組み合わせであると判断する(ステップ106)。次
に、差分生成部17は、全ての組み合わせについて、上
述したステップ102乃至106の調査を行ったか否か
を判定する(ステップ107)。また、ステップ103
において、削除後の更新前のXMLデータのノードと更
新後のXMLデータのノードとが一致しないと判定した
場合と、ステップ105において、一致するノードの数
がこれまでで最大でないと判断した場合も、同様に、差
分生成部17は、全ての組み合わせについて、上述した
ステップ102乃至106の調査を行ったか否かを判定
する(ステップ107)。
【0122】全ての組み合わせについて、上述したステ
ップ102乃至106の調査が終了している場合には、
差分生成部17は、一連の処理を終了する。一方、未調
査の組み合わせがある場合には、差分生成部17は、そ
の未調査の組み合わせから1組を選択し(ステップ10
1)、ステップ102以降の処理を繰り返す。
【0123】ここでは、図10に示す項番1乃至256
の各組み合わせについて、図11のフローチャートに従
った処理を行うと、項番90の組み合わせ(更新前のノ
ードの構成パターンが「ノードC」、更新後のノードの
構成パターンが「ノード1・2・3」の組み合わせ)
が、ステップ102の処理による削除後の更新前後のX
MLデータを構成するノードが何れもノードB、Dで一
致し、且つ、一致するノードの数が2個で最大となる。
従って、項番90の組み合わせが最適な組み合わせとし
て決定される。
【0124】最適な組み合わせが決定されると、次に、
差分生成部17は、認識した差分ノードに基づいて、差
分情報を生成する。
【0125】具体的には、差分生成部17は、更新前D
OMツリーから最適な組み合わせに含まれる更新前のノ
ードの構成パターンとしての差分ノードを削除した新た
な更新前DOMツリーを生成するとともに、更新後DO
Mツリーから最適な組み合わせに含まれる更新後のノー
ドの構成パターンとしての差分ノードを削除した新たな
更新後DOMツリーを生成する。これら新たに生成され
る2つのDOMツリー(以下「削除後DOMツリー」は
一致ノードのみによって構成されるので、同一のDOM
ツリーとなる。
【0126】次に、差分生成部17は、削除後DOMツ
リーにおいて、同一の親ノードと子ノードからなる組み
合わせ(以下「親子ノード」称する)に着目し、この着
目した親子ノードの間に削除前に差分ノードが存在して
いたか否かを判定する。削除後DOMツリーにおいて着
目した親子ノードの間に削除前は更新前差分ノードが存
在しており、且つ、更新後差分ノードが存在していたと
判定された場合には、これら2つの差分ノードは異なる
値となる。このため、差分生成部17は、更新前差分ノ
ードから更新後差分ノードへの変更であると認識する。
【0127】一方、差分生成部17は、削除後DOMツ
リーにおいて着目した親子ノードの間に削除前は更新前
差分ノードが存在しており、且つ、更新後差分ノードが
存在していなかったと判定した場合には、更新前差分ノ
ードの削除であると認識する。また、差分生成部17
は、削除後DOMツリーにおいて着目した親子ノードの
間に削除前は更新前差分ノードが存在しておらず、且
つ、更新後差分ノードが存在していたと判定した場合に
は、更新後差分ノードの挿入であると認識する。このよ
うな手順により、一致ノードに挟まれている差分ノード
について、削除、変更、挿入が決定される。
【0128】次に、差分生成部17は、一致ノードで挟
まれていない更新前差分ノードについて、当該更新前ノ
ードの削除であると認識するとともに、一致ノードで挟
まれていない更新後差分ノードについて、当該更新後差
分ノードの追加であると認識する。
【0129】このようにして、ノードの削除、変更、挿
入、追加を認識すると、次に、差分生成部17は、上述
した認識結果に基づいて、差分情報を生成する。図12
は、差分情報の項目を示す図である。同図に示すよう
に、差分情報は、差分種別、基準ノード、相対位置、ノ
ード情報により構成される。
【0130】差分種別は、ノードに対する処理が削除、
変更、挿入、追加の何れかに該当するかを示す情報であ
る。基準ノードは、差分種別が削除の場合には、その削
除されるノードのXPath、差分種別が変更の場合に
は、その変更前のノードのXPath、差分種別が挿入
の場合には、挿入されるノードの親ノードのXPath
あるいは挿入されるノードの親ノード及び子ノードのX
Path、差分種別が追加の場合には、追加されるノー
ドの親ノードのXPathあるいは兄弟ノードのXPa
thである。また、相対位置は、差分種別が削除、変更
の場合には、基準ノードと同一であり、差分種別が挿
入、追加の場合には、基準ノードからの相対位置を示す
情報である。また、ノード情報は、差分種別が削除の場
合には不要であり、差分種別が変更の場合には変更後の
ノードの情報であり、差分種別が挿入、追加の場合に
は、その挿入、追加されるノードの情報である。
【0131】ここでは、図10に示す項番90の組み合
わせが最適な組み合わせとして決定されているため、更
新前差分ノードはノードCであり、更新後差分ノードは
ノード1、2、3である。このため、差分生成部17
は、図9の更新前DOMツリー300からノードCを削
除し、更新後DOMツリー400からノード1、2、3
を削除することにより、削除後DOMツリーを生成す
る。図13は、削除後DOMツリーを示す図である。同
図に示すように、削除後DOMツリー500は、ルート
ノードAと、当該ルードノードAの子ノードとしてのノ
ードB及びノードDにより構成される。
【0132】次に、差分生成部17は、削除後DOMツ
リー500のノードAとノードBからなる親子ノードに
着目し、当該親子ノードに削除前は更新後差分ノードと
してのノード1が存在していたため、ノードAとノード
Bの間にノード1が挿入されることを認識する。また、
差分生成部17は、削除後DOMツリー500のノード
AとノードDからなる親子ノードに着目し、当該親子ノ
ードに削除前は更新前差分ノードとしてのノードCと更
新後差分ノードとしてのノード2が存在していたため、
ノードCがノード2に変更されることを認識する。更
に、差分生成部17は、一致ノードで挟まれていない更
新後差分ノードであるノード3について、ノードCの第
1子ノードとして追加されることを認識する。
【0133】次に、差分生成部17は、図14に示すよ
うに、ノードAとノードBの間にノード1が挿入される
ことに対応して、基準ノード及び相対位置がノード1の
親ノードであるノードAのXPathであり、ノード情
報が挿入されるノード1のタイプと名前を示す情報であ
る差分情報を生成する。また、差分生成部17は、ノー
ドCがノード2に変更されることに対応して、基準ノー
ド及び相対位置が変更前のノードであるノードCのXP
athであり、ノード情報が変更後のノードであるノー
ド2のタイプと名前を示す情報である差分情報を生成す
る。更に、差分生成部17は、ノードCの第1子ノード
としてのノード3が追加されることに対応して、基準ノ
ードがノード3の親ノードであるノードCのXPath
であり、相対位置が基準ノードであるノードCの第1子
ノードであることを示す情報であり、ノード情報が追加
されるノード3のタイプと名前を示す情報である差分情
報を生成する。
【0134】差分情報の生成後、差分生成部17は、生
成した差分情報の基準ノードに着目し、同一の基準ノー
ドを有する差分情報を1つの差分情報にまとめる(差分
情報のマージ)。ここでは、図14に示す差分情報が生
成されているため、差分生成部17は、基準ノードがノ
ードCのXPathである2つの差分情報を、図15に
示すように1つの差分情報にまとめる。
【0135】このようにして差分情報を生成すると、次
に、差分生成部17は、これら生成した差分情報に基づ
いて、XSLTデータを生成する。図16は、図14の
ノードAとノードBの間にノード1が挿入されることに
対応した差分情報と、図15のマージ後の差分情報に基
づいて生成されるXSLTデータを示す。
【0136】上述した第4のXSLTデータ生成方法に
よれば、更新前と更新後で一致しないノードの組み合わ
せを容易に特定することができ、その組み合わせに基づ
いて、差分データを生成することにより、挿入、追加、
削除、変更等の対象となるノードの情報のみをXSLT
データに含ませることができ、XSLTデータ内の情報
を必要最小限とすることができる。
【0137】このように、本実施形態のXMLデータ更
新システム1では、移動機30に提供されるXMLデー
タが更新される際、オリジンサーバ10は、更新前のX
MLデータと更新後のXMLデータとの差分を表すXS
LTデータを生成し、移動機30へ送信し、当該移動機
30は、このXSLTデータに基づいて、保持している
更新前のXMLデータを更新し、更新後のXMLデータ
を保持する。
【0138】即ち、オリジンサーバ10は、移動機30
に対して、更新後のXMLデータの全体を送信するので
はなく、更新前のXMLデータと更新後のXMLデータ
との差分のデータをXSLT形式で生成して送信するだ
けで良い。このため、できるだけ少ないデータ量で移動
機30側のXMLデータを更新することができ、通信ネ
ットワークの混雑を防止するとともに、オリジンサーバ
10と移動機30との間でのXMLデータの不一致期間
を短縮することが可能となる。
【0139】また、XMLデータは階層構造を有してい
るため、オリジンサーバ10は、更新前及び更新後のX
MLデータの階層構造を表す情報として標準的に用いら
れているDOMツリーに基づいてXSLTデータを生成
することにより、更新前のXMLデータと更新後のXM
Lデータとの差分を容易に表すことが可能となるととも
に、新たにXMLデータの階層構造を表す情報を定める
必要がなく、汎用的な利用が可能となる。
【0140】上記実施形態において、差分生成部17が
XSLTデータ生成手段に対応し、ネットワークインタ
フェース部11、プロトコル部12及びプッシュメッセ
ージ作成部18がXSLTデータ送信手段に対応する。
【0141】
【発明の効果】上述の如く、請求項1、2及び9に記載
された発明によれば、サーバは、クライアントに対し
て、更新後の構造化文書データの全体を送信するのでは
なく、更新前の構造化文書データと更新後の構造化文書
データとの差分のデータを生成して送信するだけで良
い。このため、できるだけ少ないデータ量でクライアン
ト側の構造化文書データを更新することができ、通信ネ
ットワークの混雑を防止するとともに、サーバとクライ
アントとの間での構造化文書データの不一致期間を短縮
することが可能となる。
【0142】また、請求項3及び10に記載された発明
によれば、更新前及び更新後の構造化文書データの階層
構造を表す階層情報に基づいて差分データを生成するこ
とにより、更新前の構造化文書データと更新後の構造化
文書データとの差分を容易に表すことが可能となる。
【0143】また、本発明は請求項4及び11に記載さ
れた発明によれば、更新前の構造化文書データと更新後
の構造化文書データとの間に異なる要素が存在した場合
に、その異なる要素とその配下の要素とを差分とみなし
て差分データを生成するため、探索に要する時間を短縮
し、迅速に差分データを生成することができる。
【0144】また、本発明は請求項5及び12に記載さ
れた発明によれば、更新前の構造化文書データの階層情
報に基づく第1の2次元配列と、更新後の構造化文書デ
ータの階層情報に基づく第2の2次元配列との一致の度
合に基づいて、差分データを生成することにより、挿
入、追加、削除、変更等の対象となる要素の情報のみを
差分データに含ませることができ、差分データ内の情報
を必要最小限とすることができる。
【0145】また、本発明は請求項6及び13に記載さ
れた発明によれば、更新前の構造化文書データの階層情
報に基づく部品と、更新後の構造化文書データの階層情
報に基づく部品との対応付けの結果に基づいて、差分デ
ータを生成することにより、請求項6に記載された発明
と同様、挿入、追加、削除、変更等の対象となる要素の
情報のみを差分データに含ませることができ、差分デー
タ内の情報を必要最小限とすることができる。
【0146】また、本発明は請求項7及び14に記載さ
れた発明によれば、更新前と更新後で一致しない要素の
組み合わせを容易に特定することができ、この組み合わ
せに基づいて、差分データを生成することにより、請求
項6に記載された発明と同様、挿入、追加、削除、変更
等の対象となる要素の情報のみを差分データに含ませる
ことができ、差分データ内の情報を必要最小限とするこ
とができる。
【0147】また、本発明は請求項8及び15に記載さ
れた発明によれば、構造化文書データがXMLデータの
場合、更新前のXMLデータと更新後のXMLデータの
差分は、XSLTデータにより表すことができ、DOM
ツリーは、XMLデータの階層構造を表す情報として標
準的に用いられているため、DOMツリーを利用して差
分データであるXSLTデータを生成することにより、
新たにXMLデータの階層構造を表す階層情報を定める
必要がなく、本発明の汎用的な利用が可能となる。
【図面の簡単な説明】
【図1】XMLデータ更新システムの構成例を示す図で
ある。
【図2】オリジンサーバの詳細な構成例である。
【図3】移動機の詳細な構成例である。
【図4】履歴ファイルの一例を示す図である。
【図5】更新前のXMLデータのDOMツリー及び更新
後のXMLデータのDOMツリーの一例を示す図であ
る。
【図6】DOMツリーの展開により得られる2次元配列
の一例を示す図である。
【図7】部品の生成を説明するための図である。
【図8】部品データ表の一例を示す図である。
【図9】更新前のXMLデータのDOMツリー及び更新
後のXMLデータのDOMツリーの他の例を示す図であ
る。
【図10】更新前のノードの構成パターンと更新後のノ
ードの構成パターンの組み合わせの一例を示す図であ
る。
【図11】差分生成部の処理の一例を示すフローチャー
トである。
【図12】差分情報の項目を示す図である。
【図13】削除後DOMツリーの一例を示す図である
【図14】差分情報の一例を示す図である。
【図15】差分情報の他の例を示す情報である。
【図16】XSLTデータの一例を示す図である。
【符号の説明】
1 XMLデータ更新システム 10 オリジンサーバ 11 ネットワークインタフェース部 12 プロトコル部 13 コンテンツ登録サーバ部 14 コンテンツ保存部 15 Webサーバ部 16 更新検出部 17 差分生成部 18 プッシュメッセージ作成部 30 移動機 31 リクエスト作成部 32 プロトコル部 33 ネットワークインタフェース部 34 コンテンツ更新部 35 コンテンツ保存部 40 インターネット
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 17/24 554 G06F 17/24 554N (72)発明者 鈴木 偉元 東京都千代田区永田町二丁目11番1号 株 式会社エヌ・ティ・ティ・ドコモ内 (72)発明者 石川 憲洋 東京都千代田区永田町二丁目11番1号 株 式会社エヌ・ティ・ティ・ドコモ内 (72)発明者 角野 宏光 東京都千代田区永田町二丁目11番1号 株 式会社エヌ・ティ・ティ・ドコモ内 Fターム(参考) 5B009 QA06 QB18 VC03 5B082 GA04 GA14

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 サーバからクライアントへ提供される、
    1又は複数の要素を構造化して構成される構造化文書デ
    ータを更新する構造化文書データ更新方法において、 前記サーバは、 更新前の構造化文書データと更新後の構造化文書データ
    との差分を表す差分データを生成し、 前記生成した差分データを前記クライアントへ送信し、 前記クライアントは、 前記サーバから送信される差分データに基づいて、保有
    する構造化文書データを更新するようにした構造化文書
    データ更新方法。
  2. 【請求項2】 サーバからクライアントへ提供される、
    1又は複数の要素を構造化して構成される構造化文書デ
    ータを更新する構造化文書データ更新方法において、 前記サーバは、 更新前の構造化文書データと更新後の構造化文書データ
    との差分を表す差分データを生成し、 前記生成した差分データを前記クライアントへ送信し、
    前記クライアントにおいて、該差分データに基づいて、
    保有する構造化文書データが更新されるようにした構造
    化文書データ更新方法。
  3. 【請求項3】 請求項2に記載の構造化文書データ更新
    方法において、 更新前の構造化文書データと更新後の構造化文書データ
    との差分を表す差分データを生成する際に、前記更新前
    及び更新後の構造化文書データの階層構造を表す階層情
    報に基づいて生成するようにした構造化文書データ更新
    方法。
  4. 【請求項4】 請求項3に記載の構造化文書データ更新
    方法において、 前記更新前の構造化文書データの階層情報と、前記更新
    後の構造化文書データの階層情報とに基づいて、前記更
    新前及び更新後の構造化文書データを構成する最上位の
    要素から配下の要素に向けて探索し、 異なる要素が存在した場合に、該異なる要素とその配下
    の要素とを差分とした差分データを生成するようにした
    構造化文書データ更新方法。
  5. 【請求項5】 請求項3に記載の構造化文書データ更新
    方法において、 前記更新前の構造化文書データの階層情報に基づいて、
    該更新前の構造化文書データを構成する要素を第1の2
    次元配列に展開するとともに、前記更新後の構造化文書
    データの階層情報に基づいて、該更新後の構造化文書デ
    ータを構成する要素を第2の2次元配列に展開し、 前記第1の2次元配列の各列と前記第2の2次元配列の
    各列との一致の度合を検出し、 前記一致の度合に基づいて、前記差分データを生成する
    ようにした構造化文書データ更新方法。
  6. 【請求項6】 請求項3に記載の構造化文書データ更新
    方法において、 前記更新前の構造化文書データの階層情報に基づいて、
    該更新前の構造化文書データを構成する要素と該要素の
    直下の要素とを特定する第1の部品を生成するととも
    に、前記更新後の構造化文書データの階層情報に基づい
    て、該更新後の構造化文書データを構成する要素と該要
    素の直下の要素とを特定する第2の部品を生成し、 前記第1及び第2の部品の対応付けを行い、 前記対応付けの結果に基づいて、前記差分データを生成
    するようにした構造化文書データ更新方法。
  7. 【請求項7】 請求項3に記載の構造化文書データ更新
    方法において、 前記更新前の構造化文書データの階層情報に基づいて、
    更新前の要素の構成パターンを要素がない場合を含め、
    最上位の要素を除外してて生成するとともに、前記更新
    後の構造化文書データの階層情報に基づいて、更新後の
    要素の構成パターンを要素がない場合を含め、最上位の
    要素を除外して生成し、 前記生成した更新前の要素の構成パターンの全てと更新
    後の要素の構成パターンの全てとを組み合わせ、 前記各組み合わせにおいて、更新前の構造化文書を構成
    するノードから該組み合わせに対応する更新前の要素の
    構成パターンを削除するとともに、更新後の構造化文書
    を構成するノードから該組み合わせに対応する更新後の
    要素の構成パターンを削除し、 前記削除後の更新前の構造化文書を構成するノードと更
    新後の構造化文書を構成するノードとにおいて、一致す
    る要素が最も多い前記組み合わせに基づいて、前記差分
    データを生成するようにした生成するようにした構造化
    文書データ更新方法。
  8. 【請求項8】 請求項3乃至8の何れかに記載の構造化
    文書データ更新方法において、 前記構造化文書はXMLデータであり、前記差分データ
    はXSLTデータであり、前記階層情報はDOMツリー
    である構造化文書データ更新方法。
  9. 【請求項9】 クライアントへ1又は複数の要素を構造
    化して構成される構造化文書データを提供する情報提供
    サーバにおいて、 更新前の構造化文書データと更新後の構造化文書データ
    との差分を表す差分データを生成する差分データ生成手
    段と、 前記生成された差分データを前記クライアントへ送信す
    る差分データ送信手段と、 を備える情報提供サーバ。
  10. 【請求項10】 請求項9に記載の情報提供サーバにお
    いて、 前記差分データ生成手段は、前記更新前及び更新後の構
    造化文書データの階層構造を表す階層情報に基づいて、
    前記差分データを生成するようにした情報提供サーバ。
  11. 【請求項11】 請求項10に記載の情報提供サーバに
    おいて、 前記差分データ生成手段は、 前記更新前の構造化文書データの階層情報と、前記更新
    後の構造化文書データの階層情報とに基づいて、前記更
    新前及び更新後の構造化文書データを構成する最上位の
    要素から配下の要素に向けて探索し、 異なる要素が存在した場合に、該異なる要素とその配下
    の要素とを差分とした差分データを生成するようにした
    情報提供サーバ。
  12. 【請求項12】 請求項10に記載の情報提供サーバに
    おいて、 前記差分データ生成手段は、 前記更新前の構造化文書データの階層情報に基づいて、
    該更新前の構造化文書データを構成する要素を第1の2
    次元配列に展開するとともに、前記更新後の構造化文書
    データの階層情報に基づいて、該更新後の構造化文書デ
    ータを構成する要素を第2の2次元配列に展開し、 前記第1の2次元配列の各列と前記第2の2次元配列の
    各列との一致の度合を検出し、 前記一致の度合に基づいて、前記差分データを生成する
    ようにした情報提供サーバ。
  13. 【請求項13】 請求項10に記載の情報提供サーバに
    おいて、 前記差分データ生成手段は、 前記更新前の構造化文書データの階層情報に基づいて、
    該更新前の構造化文書データを構成する要素と該要素の
    直下の要素とを特定する第1の部品を生成するととも
    に、前記更新後の構造化文書データの階層情報に基づい
    て、該更新後の構造化文書データを構成する要素と該要
    素の直下の要素とを特定する第2の部品を生成し、 前記第1及び第2の部品の対応付けを行い、 前記対応付けの結果に基づいて、前記差分データを生成
    するようにした情報提供サーバ。
  14. 【請求項14】 請求項10に記載の情報提供サーバに
    おいて、 前記差分データ生成手段は、 前記更新前の構造化文書データの階層情報に基づいて、
    更新前の要素の構成パターンを要素がない場合を含め、
    最上位の要素を除外してて生成するとともに、前記更新
    後の構造化文書データの階層情報に基づいて、更新後の
    要素の構成パターンを要素がない場合を含め、最上位の
    要素を除外して生成し、 前記生成した更新前の要素の構成パターンの全てと更新
    後の要素の構成パターンの全てとを組み合わせ、 前記各組み合わせにおいて、更新前の構造化文書を構成
    するノードから該組み合わせに対応する更新前の要素の
    構成パターンを削除するとともに、更新後の構造化文書
    を構成するノードから該組み合わせに対応する更新後の
    要素の構成パターンを削除し、 前記削除後の更新前の構造化文書を構成するノードと更
    新後の構造化文書を構成するノードとにおいて、一致す
    る要素が最も多い前記組み合わせに基づいて、前記差分
    データを生成するようにした生成するようにした情報提
    供サーバ。
  15. 【請求項15】 請求項10乃至14の何れかに記載の
    情報提供サーバにおいて、 前記構造化文書はXMLデータであり、前記差分データ
    はXSLTデータであり、前記階層情報はDOMツリー
    である情報提供サーバ。
JP2002050441A 2002-02-26 2002-02-26 構造化文書データ更新方法及び情報提供サーバ Expired - Fee Related JP4153219B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002050441A JP4153219B2 (ja) 2002-02-26 2002-02-26 構造化文書データ更新方法及び情報提供サーバ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002050441A JP4153219B2 (ja) 2002-02-26 2002-02-26 構造化文書データ更新方法及び情報提供サーバ

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008149332A Division JP4399017B2 (ja) 2008-06-06 2008-06-06 構造化文書データ更新方法及び情報提供サーバ

Publications (2)

Publication Number Publication Date
JP2003256249A true JP2003256249A (ja) 2003-09-10
JP4153219B2 JP4153219B2 (ja) 2008-09-24

Family

ID=28662691

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002050441A Expired - Fee Related JP4153219B2 (ja) 2002-02-26 2002-02-26 構造化文書データ更新方法及び情報提供サーバ

Country Status (1)

Country Link
JP (1) JP4153219B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009015484A (ja) * 2007-07-03 2009-01-22 Hitachi Ltd 情報登録方法、プログラム、記録媒体および情報登録装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009015484A (ja) * 2007-07-03 2009-01-22 Hitachi Ltd 情報登録方法、プログラム、記録媒体および情報登録装置

Also Published As

Publication number Publication date
JP4153219B2 (ja) 2008-09-24

Similar Documents

Publication Publication Date Title
US10747505B1 (en) API specification generation
US7877366B2 (en) Streaming XML data retrieval using XPath
AU2004237062B2 (en) Retaining hierarchical information in mapping between XML documents and relational data
US6377957B1 (en) Propogating updates efficiently in hierarchically structured date
JP4406609B2 (ja) 単一のインターフェイスからのデータの多重階層を管理するための手法
US8584003B2 (en) System and method for schemaless data mapping with nested tables
US7941417B2 (en) Processing structured electronic document streams using look-ahead automata
US9361398B1 (en) Maintaining a relational database and its schema in response to a stream of XML messages based on one or more arbitrary and evolving XML schemas
US20070240035A1 (en) Efficient evaluation for diff of XML documents
US20100067113A1 (en) Apparatus and Method for Displaying Hierarchical Data
US20090240675A1 (en) Query translation method and search device
US8082493B2 (en) Streaming XML patch
WO2016201988A1 (zh) 配置数据推送方法及装置
CN108282525B (zh) 基于对等网络的视频资源管理系统和方法
CN101876895A (zh) 网格计算环境下应用软件的封装集成方法
US20150006623A1 (en) Method and System for Transmitting Network File
US20030158894A1 (en) Multiterminal publishing system and corresponding method for using same
JP4320004B2 (ja) XPath式処理方法、XPath式処理装置、XPath式処理プログラムおよびそのプログラムを格納した記憶媒体
JP4399017B2 (ja) 構造化文書データ更新方法及び情報提供サーバ
JP2010039997A (ja) 情報検索装置、情報検索方法、プログラム、および記録媒体
JP2006127235A (ja) 構造化文書管理システム、構造化文書管理方法及びプログラム
JP2003256249A (ja) 構造化文書データ更新方法及び情報提供サーバ
US20190294604A1 (en) System, device and method for data update notification
JP2012059212A (ja) 抽出装置、抽出方法及び抽出プログラム
JP5143917B2 (ja) キャッシュサーバ、キャッシュ管理方法およびキャッシュ管理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041006

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071204

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080408

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080606

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: 20080701

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080703

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110711

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110711

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120711

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120711

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130711

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees