(57)【要約】【課題】ＸＭＬデータ等の構造化文書データを、高速に転送すると共に、データのロス発生時にも信頼性を確保することを目的とする。【解決手段】構造化文書を解析して、構造化文書のツリー構造に関するツリーデータを作成する構造化文書解析手段と、ツリーデータの各ノード情報に、ツリー内の位置情報を付与する位置情報付与手段と、ネットワークを介して通信可能な受信装置に、ツリーデータをノード情報毎に送信すると共に、受信装置がツリーデータを全て受信したか否かを判別するのに用いる受信完了判定情報を受信装置に送信する送信手段と、受信装置から再送要求を受け取ると、受信装置において受信されなかったツリーデータを受信装置に再送する再送手段と、を有することによって課題を解決する。【選択図】図１
2008015685.tif 000002
【特許請求の範囲】
【請求項１】
構造化文書データを解析して、前記構造化文書データの構造に基づいてツリー構造データを作成する構造化文書データ解析手段と、
前記構造化データを前記ツリー構造データに基づいて分割したノードデータに対して、ツリー内の位置情報を付与する付与手段と、
ネットワークを介して通信可能な受信装置に、前記構造化文書データを前記ノードデータ毎に送信する送信手段と、
前記受信装置において受信されなかったノードデータを、前記位置情報を用いて特定し、前記受信装置に再送する再送手段と、
を有することを特徴とする送信装置。
【請求項２】
前記ノードデータに、ノード内識別子を付加するノード内識別子付加手段を更に有することを特徴とする請求項１に記載の送信装置。
【請求項３】
前記送信手段は、前記受信手段が前記構造化文書データを全て受信したか否かを判別するのに用いる受信完了判定情報を更に送信し、
前記再送手段は、前記受信完了判定情報に基づいた前記受信装置からの再送要求に応じて、受信されなかったノードデータを再送することを特徴とする請求項１に記載の送信装置。
【請求項４】
ネットワークを介して通信可能な送信装置より、構造化文書データを、前記構造化文書データの構造に基づいたツリー構造データに係るノードデータ毎に受信すると共に、前記構造化文書データを全て受信したか否かを判別するのに用いる受信完了判定情報を受信する受信手段と、
前記ノードデータに付与された、ツリー内の位置情報を用いて、ノードと、関連ノードと、のリンクを作成するリンク作成手段と、
前記受信完了判定情報を用いて、前記構造化文書データを全て受信したか否かを判定する判定手段と、
前記判定手段において前記構造化文書データを全て受信していないと判定されると、再送要求を前記送信装置に送信する再送要求手段と、
を有することを特徴とする受信装置。
【請求項５】
データを送信する送信装置と、前記送信装置が送信したデータを受信する受信装置と、を含むデータ送受信システムであって、
前記送信装置は、
構造化文書データを解析して、前記構造化文書データの構造に基づいてツリー構造データを作成する構造化文書データ解析手段と、
前記構造化データを前記ツリー構造データに基づいて分割したノードデータに対して、ツリー内の位置情報を付与する付与手段と、
ネットワークを介して通信可能な受信装置に、前記構造化文書データを前記ノードデータ毎に送信する送信手段と、
前記受信装置において受信されなかったノードデータを、前記位置情報を用いて特定し、前記受信装置に再送する再送手段と、
を有し、
前記受信装置は、
前記送信装置より、前記ツリーデータを前記ノード情報毎に受信すると共に、前記受信完了判定情報を受信する受信手段と、
前記ノードデータに付与された、ツリー内の位置情報を用いて、ノードと、関連ノードと、のリンクを作成するリンク作成手段と、
前記受信完了判定情報を用いて、前記構造化文書データを全て受信したか否かを判定する判定手段と、
前記判定手段において前記構造化文書データを全て受信していないと判定されると、再送要求を前記送信装置に送信する再送要求手段と、
を有することを特徴とするデータ送受信システム。
【請求項６】
データを送信する送信装置におけるデータ送信方法であって、
構造化文書データを解析して、前記構造化文書データの構造に基づいてツリー構造データを作成する構造化文書データ解析ステップと、
前記構造化データを前記ツリー構造データに基づいて分割したノードデータに対して、ツリー内の位置情報を付与する付与ステップと、
ネットワークを介して通信可能な受信装置に、前記構造化文書データを前記ノードデータ毎に送信する送信ステップと、
前記受信装置において受信されなかったノードデータを、前記位置情報を用いて特定し、前記受信装置に再送する再送ステップと、
を有することを特徴とするデータ送信方法。
【請求項７】
データを受信する受信装置におけるデータ受信方法であって、
ネットワークを介して通信可能な送信装置より、構造化文書データを、前記構造化文書データの構造に基づいたツリー構造データに係るノードデータ毎に受信すると共に、前記構造化文書データを全て受信したか否かを判別するのに用いる受信完了判定情報を受信する受信ステップと、
前記ノードデータに付与された、ツリー内の位置情報を用いて、ノードと、関連ノードと、のリンクを作成するリンク作成ステップと、
前記受信完了判定情報を用いて、前記構造化文書データを全て受信したか否かを判定する判定ステップと、
前記判定ステップにおいて前記構造化文書データを全て受信していないと判定されると、再送要求を前記送信装置に送信する再送要求ステップと、
を有することを特徴とするデータ受信方法。
【請求項８】
データを送信する送信装置と、前記送信装置が送信したデータを受信する受信装置と、を含むデータ送受信システムにおけるデータ送受信方法であって、
前記送信装置が、
構造化文書データを解析して、前記構造化文書データの構造に基づいてツリー構造データを作成する構造化文書データ解析ステップと、
前記構造化データを前記ツリー構造データに基づいて分割したノードデータに対して、ツリー内の位置情報を付与する付与ステップと、
ネットワークを介して通信可能な受信装置に、前記構造化文書データを前記ノードデータ毎に送信する送信ステップと、
前記受信装置において受信されなかったノードデータを、前記位置情報を用いて特定し、前記受信装置に再送する再送ステップと、
を有し、
前記受信装置が、
前記送信装置より、前記ツリーデータを前記ノード情報毎に受信すると共に、前記受信完了判定情報を受信する受信ステップと、
前記ノードデータに付与された、ツリー内の位置情報を用いて、ノードと、関連ノードと、のリンクを作成するリンク作成ステップと、
前記受信完了判定情報を用いて、前記構造化文書データを全て受信したか否かを判定する判定ステップと、
前記判定ステップにおいて前記構造化文書データを全て受信していないと判定されると、再送要求を前記送信装置に送信する再送要求ステップと、
を有することを特徴とするデータ送受信方法。
【請求項９】
請求項６に記載のデータ送信方法をコンピュータに実行させることを特徴とするプログラム。
【請求項１０】
請求項７に記載のデータ受信方法をコンピュータに実行させることを特徴とするプログラム。
【請求項１１】
請求項９又は請求項１０に記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信装置、受信装置及びデータ送受信システムに関する。
【背景技術】
【０００２】
近年ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）が普及し、ＸＭＬを用いた様々なフォーマットの利用が広まっている。ＸＭＬはプラットフォームに依存しないフォーマットであるため、ネットワーク上の他の機器とのデータ転送のフォーマットとして有用である。
【０００３】
ＸＭＬを送信するときは通常ＴＣＰ上のＨＴＴＰの様な信頼性のあるプロトコルが用いられる。ＸＭＬにはエラー回復の機構はなく、文書の一部が欠けてしまうとそれ以降のデータ全てが使用できなくなる可能性が高い。また、そもそもＸＭＬを用いたフォーマットの多くは、一部のデータがなくなったり順番が変わったりしてしまうことを許容できないものが多いからである。
【０００４】
しかし、ＸＭＬデータ送信するときに使用する回線として、常に信頼性のあるプロトコルを使用できるとは限らない。例えば、動画ストリームを送信する回線に、更にＸＭＬを用いて付加情報を送信する場合等である。一般に動画データはサイズが非常に大きく、また多少のデータのロスが発生したとしても、一時的にコマ落ちや色の変化が起きるのみである。このため、信頼性よりも軽量さやデータ転送速度が重視されることが多い。
【０００５】
信頼性のないプロトコルでＸＭＬデータを転送する技術として、ＳＯＡＰ  ｏｖｅｒ  ＵＤＰがある（例えば、非特許文献１参照）。ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）はＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）を使用したパケット単位の通信を行う。各パケットにはチェックサムが付いているため、各パケットの情報が破壊された場合にはそれを検知して破棄することが可能であるが、パケットが到着したかどうかの確認は行わない。
【０００６】
よって、受信した各パケットは正しいデータであることは確認できるが、一部のパケットが消失している可能性がある。そこでＳＯＡＰ  ｏｖｅｒ  ＵＤＰでは、ＸＭＬデータのサイズをＵＤＰパケットに含めることが可能な最大サイズ以下に制限し、更にある程度の時間待っても相手からの返信がない場合にはデータの再送を行うようにしている。つまり、データを１パケットに制限することでデータの一部のみが届くということを防ぎ、更にパケットロスが起きた際に再送することで信頼性を確保している。
【０００７】
【非特許文献１】Ｈａｒｏｌｄ  Ｃｏｍｂｓ、外１１名、"ＳＯＡＰ−ｏｖｅｒ  ＵＤＰ"［ｏｎｌｉｎｅ］、２００４年９月、［平成１８年６月７日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｍｓｄｎ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｌｉｂｒａｒｙ／ｅｎ−ｕｓ／ｄｎｇｌｏｂｓｐｅｃ／ｈｔｍｌ／ｓｏａｐ−ｏｖｅｒ−ｕｄｐ．ｐｄｆ＞
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、ＳＯＡＰ  ｏｖｅｒ  ＵＤＰの方式では大きなデータを送信することができない。ＸＭＬを分割してパケットに格納し、届かなかったもののみ再送することも可能だが、前述のとおりＸＭＬは途中のデータが消失すると、以降の処理が行うことができないため、受信側での処理の待ち時間が発生してしまうという問題があった。
【０００９】
本発明はこのような問題点に鑑みなされたもので、ＸＭＬデータ等の構造化文書データを、高速に転送すると共に、データのロス発生時にも信頼性を確保することを目的とする。
【課題を解決するための手段】
【００１０】
そこで、本発明は、構造化文書データを解析して、前記構造化文書データの構造に基づいてツリー構造データを作成する構造化文書データ解析手段と、前記構造化データを前記ツリー構造データに基づいて分割したノードデータに対して、ツリー内の位置情報を付与する付与手段と、ネットワークを介して通信可能な受信装置に、前記構造化文書データを前記ノードデータ毎に送信する送信手段と、前記受信装置において受信されなかったノードデータを、前記位置情報を用いて特定し、前記受信装置に再送する再送手段と、を有することを特徴とする。
【００１１】
係る構成とすることにより、ＸＭＬデータ等の構造化文書データを、高速に転送すると共に、データのロス発生時にも信頼性を確保することができる。
【００１２】
また、本発明は、ネットワークを介して通信可能な送信装置より、構造化文書データを、前記構造化文書データの構造に基づいたツリー構造データに係るノードデータ毎に受信すると共に、前記構造化文書データを全て受信したか否かを判別するのに用いる受信完了判定情報を受信する受信手段と、前記ノードデータに付与された、ツリー内の位置情報を用いて、ノードと、関連ノードと、のリンクを作成するリンク作成手段と、前記受信完了判定情報を用いて、前記構造化文書データを全て受信したか否かを判定する判定手段と、前記判定手段において前記構造化文書データを全て受信していないと判定されると、再送要求を前記送信装置に送信する再送要求手段と、を有することを特徴とする。
【００１３】
係る構成とすることにより、ＸＭＬデータ等の構造化文書データを、高速に転送すると共に、データのロス発生時にも信頼性を確保することができる。
【００１４】
また、本発明は、データ送受信システム、データ送信方法、データ受信方法、データ送受信方法、プログラム及び記憶媒体としてもよい。
【発明の効果】
【００１５】
本発明によれば、ＸＭＬデータ等の構造化文書データを、高速に転送すると共に、データのロス発生時にも信頼性を確保することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施例について図面に基づいて説明する。
【００１７】
図１は、ツリーデータ転送システムのシステム構成である。図１に示されるように、ツリーデータ転送システムでは、送信装置１０２と、受信装置１０３と、がネットワーク１０１によって接続され、互いにデータを送受信することが可能になっている。
【００１８】
送信装置１０２の構成を図２に示す。図２は、送信装置１０２の構成を示す図である。図２において、ＣＰＵ２０１は、システム制御部であり送信装置１０２全体を制御する。ＲＯＭ２０２は、制御プログラムや各種固定データを格納する。ＲＡＭ２０３はＳＲＡＭ、ＤＲＡＭ等で構成され、プログラム制御変数等を格納する。また、各種設定パラメータ、各種ワークバッファ等もＲＡＭ２０３に格納される。
【００１９】
記憶部２０４は、ハードディスク等であり、ファイルデータを格納する。ネットワークインターフェース２０５は、ＬＡＮボードやモデムといったネットワークインターフェースであり、ネットワーク上の他の機器との通信を可能とするものである。
【００２０】
ツリー作成部２０６は、ツリー構造のデータを作成する。これは例えばＸＭＬ文書からＤＯＭツリーを作成するＤＯＭパーサ等である。ノード付加情報作成部２０７は、ツリーデータの各ノードに対して位置情報及びノード番号情報を付加する。送信制御部２０８は、送信済みノード情報の管理や、再送要求に対してノードの再送を行う。なお、ツリー作成部２０６や、ノード付加情報作成部２０７、送信制御部２０８は、ハードウェアとして送信装置１０２に実装されていてもよい。また、ツリー作成部２０６や、ノード付加情報作成部２０７、送信制御部２０８は、ＲＯＭ２０２に格納された制御プログラムをＣＰＵ２０１が実行することによって実現されるソフトウェアとして送信装置１０２に実装されていてもよい。
【００２１】
受信装置１０３の構成を図３に示す。図３は、受信装置１０３の構成を示す図である。図３において、３０１から３０５は図２における２０１から２０５と同様である。リンク作成部３０６は、ＲＡＭ３０４上に保持されたノード情報に対して、親ノードや子ノード等の関連ノードへのリンクを作成し付加する。ノード情報解析部３０７は、送信装置１０２より受信したツリーデータ（又はノード情報）を解析して、ノード情報をＲＡＭ３０４上に保存する。再送制御部３０８は、受信していないノード情報の管理を行い、適切な再送要求を送信する。
【００２２】
なお、リンク作成部３０６や、ノード情報解析部３０７、再送制御部３０８は、ハードウェアとして受信装置１０３に実装されていてもよい。また、リンク作成部３０６や、ノード情報解析部３０７、再送制御部３０８は、ＲＯＭ３０２に格納された制御プログラムをＣＰＵ３０１が実行することによって実現されるソフトウェアとして受信装置１０３に実装されていてもよい。
【００２３】
ここで送信装置１０２は、受信装置１０３に対して図４に示すＸＭＬ文書によって表現されるツリーデータを送信する。図４は、ツリーデータの一例を示す図である。
【００２４】
ツリー作成部２０６は、図４に示されるようなＸＭＬ文書（ツリーデータ）から、図５に示すようなツリー（ツリー構造）を作成する。図５は、ツリー構造の一例を示す図である。図５において丸で示されているのが要素ノードであり、四角で示されているのが属性ノードである。
【００２５】
このツリー構造は実際にはＲＡＭ３０４上に、図６に示す様なノード情報の集合として保持される。図６は、ツリーデータの各ノードが持つ情報のフォーマットの一例を示す図である。
【００２６】
ＮｏｄｅＴｙｐｅは、ＸＭＬのノードの種類を示すものであり、Ｅｌｅｍｅｎｔ（要素）やＡｔｔｒｉｂｕｔｅ（属性）、Ｔｅｘｔ（文字列）等がある。Ｎａｍｅは、そのノードの名前であり、ＮｏｄｅＴｙｐｅが要素であれば要素名、属性であれば属性名となる。またＴｅｘｔノードの場合のようにＮａｍｅを持たないものもある。
【００２７】
Ｖａｌｕｅは、そのノードの値であり、属性の場合は属性名となる。なお、Ｖａｌｕｅを持たないノードも存在する。ＮｕｍＡｔｔｒｉｂｕｔｅは、属性の数である。属性は要素のみ持つことができるため、その他の型のノードはこの値は常に０である。
【００２８】
Ａｔｔｒｉｂｕｔｅ−１からＡｔｔｒｉｂｕｔｅ−ｎまでは、この要素が持つ属性ノードへのリンクである。ここでは単にノードの番号で示しているが、実際には各プログラミング言語等の参照機能を使う。例えばＣ言語であればその属性ノードが格納されている領域へのポインタとなる。同様に次のＮｕｍＣｈｉｌｄは、子ノードの数を示し、Ｃｈｉｌｄ−１からＣｈｉｌｄ−ｎまでは子ノードへのリンクとなっている。
【００２９】
図７は、ツリーデータのノード情報の一例を示す図である。
なお、図７に示されるノード情報は、図５に示した５０２のｇ要素の情報である。ＮｏｄｅＴｙｐｅは、Ｅｌｅｍｅｎｔ（要素）であり、Ｎａｍｅは、要素名のｇである。要素は値を持っていないためＶａｌｕｅはない。Ｐａｒｅｎｔは、親ノードであるｓｖｇ要素ノードへのポインタとなっている。ｇ要素は、属性を１つ持っているためＮｕｍＡｔｔｒｉｂｕｔｅは１であり、Ａｔｔｒｉｂｕｔｅ−１にｆｉｌｌ属性へのポインタが格納されている。同様に子ノードは２個であり、Ｃｈｉｌｄ−１と、Ｃｈｉｌｄ−２と、にそれぞれｒｅｃｔ要素へのポインタと、ｃｉｒｃｌｅ要素へのポインタと、が格納される。
送信制御部２０８は、これらのノードの情報を受信装置１０３に送信する。
【００３０】
図８は、送信装置１０２における送信処理の一例を示す流れ図である。送信装置１０２は、まずルートノード、つまり、図５に示した５０１のｓｖｇ要素へ移動する（９０２）。そして、送信装置１０２は、ノード番号を付ける（９０３）。このノード番号はルートノードを１とし、以降１ずつ増加させたものである。次に、送信装置１０２は、位置情報を付加する（９０４）。位置情報はそのノードのツリー内の位置を示すものである。本実施形態ではルートノードに／１という情報を付け、以降子ノードに移動するときに子ノード番号を追加し、区切り文字として／を用いる。また、属性の場合は＠と、属性番号と、を付ける。例えば図５に示した５０４のｒｅｃｔ要素は、／１／１／２となり、図５に示した５２０のｙ１属性は、／１／２／２＠２となる。
【００３１】
次に、送信装置１０２は、このノードの情報をシリアライズして（９０５）、送信する（９０６）。送信時のフォーマットを図９に示す。図９は、送信データのフォーマットの一例を示す図である。図９に示されるように、送信データは２種類あり、最初のＤａｔａＴｙｐｅで識別される。
【００３２】
９−Ａは、ノード情報を送信するときの送信データのフォーマットである。ＤａｔａＴｙｐｅは、データの種類であり、この場合はノードの情報（ＮｏｄｅＩｎｆｏ）となる。他に終了情報（ＳｅｎｄＦｉｎｉｓｈｅｄ）がある。ＮｏｄｅＮｕｍｂｅｒは、図８の９０３で付けたノード番号、Ｐｏｓｉｔｉｏｎは、図８の９０４で付けた位置情報である。ＶａｌｕｅＬｅｎは、値の長さをバイト単位で表したものである。それ以外の情報は、予め保持されていたノード情報（図６の情報）から得たものである。
【００３３】
９−Ｂは、送信が終了したことを示す送信データのフォーマットである。ＤａｔａＴｙｐｅは、ＳｅｎｄＦｉｎｉｓｈｅｄであり、ＮｕｍＮｏｄｅは、送信したノードの個数である。
【００３４】
再び図８の説明に戻り、送信装置１０２は、ＮｏｄｅＩｎｆｏ情報を送信すると、まだ送信していないノードがあるか否かを確かめる（９０７）。まだ送信していないノードがある場合、送信装置１０２は、次のノードに移動する（９０８）。ツリー内でのノードの移動方法は、全てのノードを必ず１回辿るものであれば何でもよいが、ここでは属性、子要素という優先順位で移動するものとする。つまり、まずノードに属性があれば属性に移動し、全ての属性を辿る。次に子要素があれば子要素に移動する。全ての属性と子要素が辿り終わると、親ノードへ移動する。この様な順序で辿ると、送信装置１０２は、図５に示した５０１、５０２、５０３・・・５２２の順に辿って情報を送信することができる。
【００３５】
全てのノードを送信し終えると、送信装置１０２は、終了情報（ＳｅｎｄＦｉｎｉｓｈｅｄ情報）を送信する（９０９）。ここで、終了情報とは、９−Ｂに示しように、ＤａｔａＴｙｐｅをＳｅｎｄＦｉｎｉｓｈｅｄにした送信データである。これで送信装置１０２は、ノード情報を２２個と、終了情報を１個と、を受信装置１０３に送信したことになる。送信装置１０２は、終了情報を送信すると、返信待ちを行う（９１０）。
【００３６】
このようにして送信装置１０２が送信した送信データを受信装置１０３が受信する。受信装置の処理の流れを図１０に示す。図１０は、受信装置１０３における受信処理の一例を示す流れ図である。
【００３７】
受信装置１０３は、初めは受信待ち状態であり（１００２）、データを受信することができる。受信装置１０３は、ある一定時間受信しないとタイムアウトとなるが（１００３）、ここではタイムアウトせずに最初のデータを受信したとする。
【００３８】
データを受信すると、受信装置１０３は、まず受信したデータに係るノードが終了情報か、又はノード情報かを確認する（１００４、１００５）。ここで、最初に受信するのはノード番号１のデータであるため、受信装置１０３は、ノード情報をＲＡＭ３０３又は記憶部３０４等に保存する（１００７）。
【００３９】
ノード情報は、送信装置１０２と同様図６に示すようなフォーマットになる。ただし、Ｐａｒｅｎｔ、Ａｔｔｒｉｂｕｔｅ−１からＡｔｔｒｉｂｕｔｅ−ｎまで、Ｃｈｉｌｄ−１からＣｈｉｌｄ−ｎまでの情報については送信されたノード情報（図９のフォーマット）には含まれていないためこの段階では空となる。
【００４０】
次に、受信装置１０３は、関連ノードのリンクを作成する（１００８）。ここで、図１１は、受信装置１０３における関連ノードのリンク設定処理の一例を示す流れ図である。受信装置１０３は、ノード情報がルートノードか否かを判定する（１１０２）。ノード情報がルートノードの場合、受信装置１０３は、子ノードがあるか否かを判定する（１１０３）。ここでは、子ノードは無いため、図１１に示す関連ノードのリンク設定処理を終了する。
【００４１】
再び図１０の説明に戻り、受信装置１０３は、受け取ったノード番号（ここでは１）をＲＡＭ３０３又は記憶部３０４等に保存する（１００９）。
【００４２】
２番目以降のノードを受け取ったときも受信装置１０３は、上述した処理と同様の処理を行うが、関連ノードのリンク設定処理を伴う。ここでは２番目のデータ受信時を例に説明する。
【００４３】
図１１において、まず、受信装置１０３は、受信したノード情報を保持した場所を保持する（１１０３）。これはＣ言語の場合、ポインタ等の情報である。次に、受信装置１０３は、位置情報の最後の番号を保持する（１１０４）。ここでは、ノードの位置情報は／１／１であるため、最後の番号（数字）は１である。
【００４４】
次に、受信装置１０３は、親ノードが存在するか否かを調べる（１１０５）。データが全て受信できていれば親ノードは受信済みであるが、途中でデータロスが起きている場合、親ノードを受信していない可能性があるため、受信装置１０３は、このような処理を行う。なお、受信装置１０３は、あるノードの親ノードを、位置情報の最後の数字を削除することで容易に識別することができる。
【００４５】
親ノードが存在していれば、受信装置１０３は、親ノードの情報を追加する（１１０６）。ここでは、Ｐａｒｅｎｔの項目に／１のｓｖｇ要素ノードへのポインタが格納される。
【００４６】
次に、受信装置１０３は、親ノードへ移動し（１１０７）、ノード情報の子ノードの情報を追加する（１１０８）。つまり、受信装置１０３は、／１のｓｖｇ要素ノードのＣｈｉｌｄ−１に、受信ノードである／１／１へのポインタを格納する。このポインタは、１１０３において保持されたものであり、またＣｈｉｌｄ−１からＣｈｉｌｄ−ｎまでのどれに格納するかは、受信装置１０３は、１１０４において保持された数字で識別することができる。ここまでの処理で、受信ノードから親ノードへのリンクと、親ノードから受信ノードへのリンクと、が作成される。
【００４７】
次に、受信装置１０３は、元のノード（受信ノード）に戻り（１１０９）、子ノードについても上述した処理と同様の処理を行う（１１１１〜１１１３）。これらの処理により、受信ノードから子ノード及び子ノードから受信ノードへのリンクが作成できる。
【００４８】
以上のようにして関連ノードのリンク設定（又は作成）（図１０の１００８）が実現される。受信装置１０３が、図１０の１００２から１００９までの処理を繰り返すことで、全ての受信ノードを保持し、関連ノードとのリンクを作成することができ、受信装置１０３内でツリー構造を作成することができる。
【００４９】
また送信装置１０２からは最後に終了情報が送信されているため（図８の９０９）、受信装置１０３がこの終了情報を受信すると、このループ（例えば、１００４から１０００９までのループ）を抜け、１０１０に移る。また、終了情報が消失した場合に備えて、ある一定時間ノードを受信しなかった場合も（１００３においてＹＥＳ）、受信装置１０３は、１０１０に移る。
【００５０】
１０１０では、受信装置１０３は、未受信ノードがあるか否かの判定を行う。全ての情報を受信できていれば全てのノード情報を受信しているはずであるが、データロスのある可能性がある回線のため、受信装置１０３は、このような処理を行う。
【００５１】
受信装置１０３は、未受信ノードがあるか否かの判定を、終了情報に含まれているノード個数情報と、１００９で保持した受信ノード番号と、を比較することで行うことができる。つまり、ノード番号は１から順に増えていくため、受信装置１０３は、受信ノード番号が１ずつ増えていなければ、その間の番号のノードは消失していることがわかり、個数情報により何番まで受信すればよいかも判定することができる。
【００５２】
例えば、４番目（５０４のｒｅｃｔ要素）と、１４番目（５１４のｃｘ属性）と、最後の終了情報と、が消失したものとする。すると受信装置１０３は、送信装置１０２に対して再送要求を送る（１０１１）。
【００５３】
受信装置１０３から送信装置１０２へ送信する返信フォーマットを図１２に示す。図１２は、受信装置１０３から送信装置１０２へ送信する返信フォーマットの一例を示す図である。
【００５４】
ＤａｔａＴｙｐｅは、返信データの種類であり、ＲｅｔｒａｎｓＱｕｅｒｙか、又はＦｉｎｉｓｈｅｄか、の何れかである。１２−Ａは、再送要求のフォーマットである。ＤａｔａＴｙｐｅがＲｅｔｒａｎｓのときはノードの再送要求を意味し、受信装置１０３は、次のＮｏｄｅＬｉｓｔに、受信できなかったノード番号を並べたリストを指定する。なお、ＮｏｄｅＬｉｓｔのフォーマットは、受信できなかったノード番号の数字をカンマ（，）で区切ったものとする。つまり、「４，１４」等となる。更に"数字―（ハイフン）"の記述も使用できるものとする。これはその数字以降の全てが消失した可能性があることを意味するものである。この記述方法は最後の終了情報が消失した場合に必要である。つまり、２２番まで受信し、終了情報が受信できなかったとき、２３番以降が存在したかを受信装置１０３が知るすべがないため、この様な記述方法が必要である。よって、このような場合にはＮｏｄｅＬｉｓｔは「４，１４，２３−」となる。
【００５５】
再送要求を送信すると、受信装置１０３は、再びデータ受信待ちとなる（１００２）。なお、この返信データは、返信待ち状態である送信装置１０２が受信する（図８の９１０）。上述したように、送信装置１０２は、返信データが受信完了データである場合は、図８に示す送信処理を終了するが、そうでない場合は再送処理を行う（図８の９１２）。
【００５６】
なお、再送処理では、送信装置１０２は、ＮｏｄｅＬｉｓｔに含まれる番号のノードを、図８の９０３で付加したノード番号から判別し、送信する。また、送信装置１０２は、終了情報も送信する。この終了情報に含まれる個数情報は再送された個数ではなく全体ノードの数であり、再送しても同一の数字である。なお、送信装置１０２は、「２３−」のように存在しないノードの再送依頼は無視する。
【００５７】
再送されたデータは受信装置１０３が受信し、上述した処理と同様の処理を行うことでデータの保持及び関連ノードのリンクを作成する。再送されたデータを全て受信できていれば、１から２２までの全てのノードデータを受信し、また終了情報によってデータが２２個であることが確認できる。そのため、受信装置１０３は、受信完了を送信装置１０２に送信し（１０１２）、図１０に示す受信処理を終了する。なお、受信完了のフォーマットは１２−Ｂの通りである。１２−Ｂに示されるように、受信完了には、ＤａｔａＴｙｐｅの情報のみが含まれ、それ以外の情報は含まれない。
【００５８】
送信装置１０２も受信完了を確認し（図８の９１１）、図８に示す送信処理を終了する。また、再送時にもデータロスが起きた場合は、上述した処理と同様の処理を行い、受信装置１０３は、送信装置１０２に、更に再送要求行う。これを繰り返すことでデータの完全な送受信を実現する。
【００５９】
以上の処理を行うことで、受信装置１０３は、データの消失が起きる可能性のある回線上で、確実にデータを受信することができる。また、送信装置１０２は、ノードごとに位置情報を付加して送信を行う。そして、受信装置１０３においてリンクを作成している。そのため、データを受信する順番が送信順序と異なっている場合でも、受信側で並び替えの処理を待つことなくツリーを作成することができる。
【００６０】
なお、本実施形態で送信したノード情報はツリーデータを送信する場合の一例であり、ＸＭＬの場合は更に名前空間の情報等、更なる情報を加えてもよい。
【００６１】
また、本実施形態では、送信装置１０２は、ノードごとに情報を送信していた。つまり、ノードが一つのパケットとして送信されることを前提としていた。しかしながら、送信装置１０２は、一つのノードを更に分割し、位置情報に更に同一ノード内での識別番号を付加するようにしてもよい。このようにすることで、送信装置１０２は、一つのノードを分割して送信することもできる。
【００６２】
以上、上述したように本実施形態によれば、ＸＭＬデータ等の構造化文書データを、高速に転送すると共に、データのロス発生時にも信頼性を確保することができる。また、パケットの並び替え処理や、余分な待ち時間なく転送処理を行うことができる。例えば、ＸＭＬデータを用いた映像データのストリーミングに適用することが考えられる。
【００６３】
尚、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したプログラムである。
【００６４】
従って、本発明の機能処理をコンピュータで実現するために、コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００６５】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００６６】
プログラムを供給するための記録媒体としては以下が挙げられる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）等である。
【００６７】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、ホームページから本発明のコンピュータプログラムをハードディスク等の記録媒体にダウンロードすることが挙げられる。この場合、ダウンロードされるプログラムは、圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００６８】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布するという形態をとることもできる。この場合、所定の条件をクリアしたユーザに、インターネットを介してホームページから暗号を解く鍵情報をダウンロードさせ、その鍵情報を使用して暗号化されたプログラムを実行し、プログラムをコンピュータにインストールさせるようにもできる。
【００６９】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳ等との協働で実施形態の機能が実現されてもよい。この場合、ＯＳ等が、実際の処理の一部又は全部を行ない、その処理によって前述した実施形態の機能が実現される。
【００７０】
更に、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれて前述の実施形態の機能の一部或いは全てが実現されてもよい。この場合、機能拡張ボードや機能拡張ユニットにプログラムが書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行なう。
【００７１】
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【００７２】
【図１】ツリーデータ転送システムのシステム構成図である。
【図２】送信装置１０２の構成を示す図である。
【図３】受信装置１０３の構成を示す図である。
【図４】ツリーデータの一例を示す図である。
【図５】ツリー構造の一例を示す図である。
【図６】ツリーデータの各ノードが持つ情報のフォーマットの一例を示す図である。
【図７】ツリーデータのノード情報の一例を示す図である。
【図８】送信装置１０２における送信処理の一例を示す流れ図である。
【図９】送信データのフォーマットの一例を示す図である。
【図１０】受信装置１０３における受信処理の一例を示す流れ図である。
【図１１】受信装置１０３における関連ノードのリンク設定処理の一例を示す流れ図である。
【図１２】受信装置１０３から送信装置１０２へ送信する返信フォーマットの一例を示す図である。
【符号の説明】
【００７３】
１０１  ネットワーク
１０２  送信装置
１０３  受信装置
２０１  ＣＰＵ
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  記憶部
２０５  ネットワークインターフェース
３０１  ＣＰＵ
３０２  ＲＯＭ
３０３  ＲＡＭ
３０４  記憶部
３０５  ネットワークインターフェース
【図１】
2008015685.tif 000003
【図２】
2008015685.tif 000004
【図３】
2008015685.tif 000005
【図４】
2008015685.tif 000006
【図５】
2008015685.tif 000007
【図６】
2008015685.tif 000008
【図７】
2008015685.tif 000009
【図８】
2008015685.tif 000010
【図９】
2008015685.tif 000011
【図１０】
2008015685.tif 000012
【図１１】
2008015685.tif 000013
【図１２】
2008015685.tif 000014