(57)【特許請求の範囲】
【請求項１】
複数のノードに対するリンクデータ伝送のための方法であって、
現在ノードでソースノードから伝送対象データを受信し、
前記現在ノードが、少なくとも１つの子ノードを有する場合に、
前記伝送対象データを伝送する子ノードを決定し、前記現在ノードと、前記現在ノードと通信できる前記複数のノードとの間に１つのデータパスのみを確立し、前記決定された子ノードは前記現在ノードと通信できる前記複数のノードの内の最初のノードであり、
前記決定された子ノードに対して前記伝送対象データを送信することであって、１つ以上の子ノードが前記現在ノードと通信できる場合に、前記決定された子ノードに対してのみ前記伝送対象データを送信し、
前記現在ノードが、前記伝送対象データを取得していない少なくとも１つの兄弟ノードを有する場合に、後続兄弟ノードに対して前記伝送対象データを送信し、前記後続兄弟ノードは前記現在ノードの親ノードに登録されているノードを含み、前記後続兄弟ノードは前記現在ノードの後に前記親ノードに登録された次のノードであり、前記伝送対象データを取得していない、
ことを備える、方法。
【請求項２】
請求項１に記載の方法であって、さらに、前記現在ノードによって、データ受信速度を制御することを備える、方法。
【請求項３】
請求項１に記載の方法であって、さらに、前記現在ノードによって、前記決定された子ノードへのデータ送信速度を制御することを備える、方法。
【請求項４】
請求項１に記載の方法であって、さらに、前記現在ノードによって、前記後続兄弟ノードへのデータ送信速度を制御することを備える、方法。
【請求項５】
請求項１に記載の方法であって、さらに、前記現在ノードが前記伝送対象データを送る宛先ノードを後続現在ノードとして設定し、前記後続現在ノードで前記伝送対象データを受信すること、を備える、方法。
【請求項６】
請求項１に記載の方法であって、前記現在ノードは単一の親ノードを有する、方法。
【請求項７】
請求項１に記載の方法であって、前記現在ノードは、前記親ノードに登録情報を定期的に送信することによって前記親ノードとの接続を維持する、方法。
【請求項８】
請求項１に記載の方法であって、さらに、前記受信した伝送対象データが完全であるか否かを確認し、完全でない場合に、前記データの欠損部分の再送信を前記ソースノードに要求すること、を備える、方法。
【請求項９】
複数のノードに対するリンクデータ伝送のためのシステムであって、
現在ノードでソースノードから伝送対象データを受信し、前記データを前記現在ノードから送信するよう構成されたインターフェースと、
前記インターフェースに接続され、前記現在ノードが、少なくとも１つの子ノードを有するか否か、および、前記現在ノードが、伝送対象の前記データを取得していない少なくとも１つの兄弟ノードを有するか否かを決定するよう構成されたプロセッサと、
を備え、前記プロセッサはさらに、
前記現在ノードが、少なくとも１つの子ノードを有する場合に、前記伝送対象データを伝送する子ノードを決定し、前記現在ノードと、前記現在ノードと通信できる複数のノードとの間に１つのデータパスのみを確立するように構成され、前記決定された子ノードは前記現在ノードと通信できる複数のノードの内の最初のノードであり、
前記データを前記決定された子ノードに送信することであって、１つ以上の子ノードが前記現在ノードと通信できる場合に、前記決定された子ノードに対してのみ前記伝送対象データを送信するように構成され、
前記現在ノードが、前記伝送対象データを取得していない少なくとも１つの兄弟ノードを有する場合に、後続兄弟ノードに対して前記データを送信するように構成され、前記後続兄弟ノードは前記現在ノードの親ノードに登録されているノードを含み、前記後続兄弟ノードは前記現在ノードの後に前記親ノードに登録された次のノードであり、前記伝送対象データを取得していない、システム。
【請求項１０】
リンクデータ伝送のためのシステムであって、
インターフェースおよびプロセッサを備えるデータソースノードと、
インターフェースおよびプロセッサを備える複数のデータ宛先ノードと、
を備え、
前記データソースノードと前記複数の宛先ノードとの間に、ツリー接続が確立され、
少なくとも１つのデータ宛先ノードは、前記データソースノードの子ノードであり、
前記データソースノードは、一度に１つの子ノードに対してのみ伝送対象データを送信するよう構成され、
前記少なくとも１つのデータ宛先ノードは、
伝送対象の前記データを受信し、
前記少なくとも１つのデータ宛先ノードが、少なくとも１つの子ノードを有する場合に、
前記データを伝送する子ノードを決定し、前記現在ノードと、前記現在ノードと通信できる複数の子ノードとの間に１つのデータパスのみを確立するように構成され、前記決定された子ノードは前記少なくとも１つのデータ宛先ノードと通信できる複数のノードの内の最初のノードであり、
前記決定された子ノードに対して前記受信したデータを送信するように構成され、１つ以上の子ノードが前記データ宛先ノードと通信できる場合、前記受信したデータを前記決定された子ノードに対してのみ送信するように構成され、
前記少なくとも１つのデータ宛先ノードが、前記伝送対象のデータを取得していない少なくとも１つの兄弟ノードを有する場合に、
後続兄弟ノードに対して前記受信した伝送対象のデータを送信するように構成され、前記後続兄弟ノードは前記少なくとも１つのデータ宛先ノードの親ノードに登録されているノードを含み、前記後続兄弟ノードは前記少なくとも１つのデータ宛先ノードの後に前記少なくとも１つのデータ宛先ノードの前記親ノードに登録された次のノードである、システム。
【請求項１１】
請求項１に記載の方法であって、前記決定された子ノードが故障するまで、他の子ノードが前記現在ノードに登録しても、前記決定された子ノードは前記決定された子ノードとして残る、方法。
【請求項１２】
請求項１１に記載の方法であって、前記決定された子ノードが故障した場合、前記決定された子ノードは前決定された子ノードとなり、
前記方法はさらに、前記前決定された子ノードの後に前記現在ノードに接続する次のノードを備える新たな子ノードを決定する、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願への相互参照］
本出願は、参照によって本明細書に全体を組み込まれる２００８年１１月２８日出願の、発明の名称を「LINK DATA TRANSMISSION METHOD, NODE AND SYSTEM（リンクデータ伝送方法、ノードおよびシステム）」とする中国特許出願第２００８１０１８０１６７．５号の優先権の利益を主張する。
【０００２】
本発明は、データ伝送技術の分野に関し、特に、リンクデータ伝送のための方法、ノードおよびシステムに関する。
【背景技術】
【０００３】
インターネット技術の発展により、ネットワーク内の２つのデバイスが、データ伝送によってリソースを共有できるようになっている。特定の用途において、データは、ソースデバイスから複数の宛先デバイスへコピーされる必要がありうる。一般に利用される方法では、ソースデータが存在するソースデバイスは、複数の宛先デバイスに対してソースデータをひとつずつコピーする。かかる方法は、実装が不便であり、また、ソースデバイスおよび宛先デバイスの間のコピー動作中にそれらの間の帯域幅を占有しうる。特に、宛先デバイスおよびソースデバイスが異なるネットワークセクションに位置し、宛先デバイスが同じネットワークセクションに位置する状況では、かかるコピー方法は、明らかに、異なるネットワークセクション間の貴重なネットワーク間帯域幅リソースを浪費する。
【０００４】
現在、ピアツーピア（Ｐ２Ｐ）またはノードツーノードの技術が、一般的なデータ伝送技術である。Ｐ２Ｐでは、データの受信と同時に、デバイスは、受信したデータを他のデバイスに送信しうる。したがって、利用しなければアイドル状態である宛先デバイス間で利用可能な帯域幅を利用することができる。Ｐ２Ｐが上記のシナリオで用いられる場合、宛先デバイス間で利用可能なネットワーク内の帯域幅を効果的に利用することにより、潜在的に、異なるネットワークセクション間のネットワーク間帯域幅におけるデータ伝送量を削減し、ネットワーク間の帯域幅リソースを節約することができる。
【０００５】
既存のＰ２Ｐ技術には多くの問題が残っている。現在のＰ２Ｐの応用例において、各デバイスは、通例、自身に対するデータの送受信を制御することしかできず（例えば、送信速度および受信速度の制御、宛先デバイス数の制御など）、ネットワーク全体のデータ伝送に対する統一的な制御は、通常、Ｐ２Ｐの伝送機構を用いて単一のデバイスで実現することができない。データの伝送量が多すぎる場合、ネットワークを圧迫し麻痺させる場合がある。
【０００６】
ソースデバイスが、複数の宛先デバイスに対するデータをコピーする必要があり、データ伝送がソースデバイスによって開始される上述の応用例のシナリオでは、データの伝送量および／または宛先デバイスの数に変化が生じた時に、宛先デバイスは、データを受動的に受信するだけでよいため、現在のＰ２Ｐ技術は、通常、ネットワーク全体のデータ伝送のために単一のソースデバイス（または、特定の宛先デバイス）に対する統一的な制御を実施することができない。
【図面の簡単な説明】
【０００７】
本発明の種々の実施形態は添付の図面と共に以下に詳細に説明される。
【０００８】
【図１】いくつかの実施形態に従って、リンクデータ伝送のためのシステムを示す概略図。
【０００９】
【図２】いくつかの実施形態に従って、リンクデータ伝送のための別のシステムを示す概略図。
【００１０】
【図３】いくつかの実施形態に従って、方法の実施を示すフローチャート。
【００１１】
【図４】いくつかの実施形態に従って、リンクデータ伝送のためのノードを示す概略図。
【００１２】
【図５】いくつかの実施形態に従って、リンクデータ伝送のための別のノードを示す概略図。
【００１３】
【図６】いくつかの実施形態に従って、リンクデータ伝送のためのさらに別のノードを示す概略図。
【発明を実施するための形態】
【００１４】
本発明は、処理、装置、システム、物質の組成、コンピュータ読み取り可能な格納媒体上に具現化されたコンピュータプログラム製品、および／または、プロセッサ（プロセッサに接続されたメモリに格納および／またはそのメモリによって提供される命令を実行するよう構成されたプロセッサ）を含め、様々な形態で実装されうる。本明細書では、これらの実装または本発明が取りうる任意の他の形態を、技術と呼ぶ。一般に、開示された処理の工程の順序は、本発明の範囲内で変更されてもよい。特に言及しない限り、タスクを実行するよう構成されるものとして記載されたプロセッサまたはメモリなどの構成要素は、ある時間にタスクを実行するよう一時的に構成された一般的な構成要素として、または、タスクを実行するよう製造された特定の構成要素として実装されてよい。本明細書では、「プロセッサ」という用語は、１または複数のデバイス、回路、および／または、コンピュータプログラム命令などのデータを処理するよう構成された処理コアを指すものとする。
【００１５】
以下では、本発明の原理を示す図面を参照しつつ、本発明の１または複数の実施形態の詳細な説明を行う。本発明は、かかる実施形態に関連して説明されているが、どの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定されるものであり、多くの代替物、変形物、および、等価物を含む。以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。これらの詳細事項は、例示を目的としたものであり、本発明は、これらの具体的な詳細事項の一部または全てがなくとも特許請求の範囲に従って実施可能である。簡単のために、本発明に関連する技術分野で周知の技術事項については、本発明が必要以上にわかりにくくならないように、詳細には説明していない。
【００１６】
本明細書では、リンクコピー（ＬＣＰ）技術を開示する。まず、以下では、いくつかの実施形態に従ったリンクデータ伝送のためのシステムを開示する。いくつかの実施形態において、システムは、データソースノードと、少なくとも１つのデータ宛先ノードとを備える。データソースノードおよびデータ宛先ノードの間に、ツリー接続が確立される。データ宛先ノードは、データソースノードの子ノードである。
【００１７】
実施形態１
図１は、いくつかの実施形態における、リンクデータ伝送のためのシステムを示す概略図である。この例において、１０１はデータソースノード、１１１〜１１４はデータ宛先ノードを示しており、ノード間の線は、ノード間に確立された接続を示す。本明細書で用いられているように、ノードとは、データを送受信することができるコンピュータデバイスを指す。システムは２階層のツリー構造であり、ソースノード１０１はツリー構造の親ノードであり、宛先ノード１１１〜１１４の各々はノード１０１の子ノードであることがわかる。ノード１１１〜１１４は、同一の親ノード１０１を有するため、互いに兄弟ノードである。
【００１８】
図１において、ノード間の矢印は、システム内で起こるデータ伝送を示す。データソースノード１０１は、自身の子ノード（図１の１１１）にデータを送信し、データ宛先ノード１１１〜１１４の各々は、データを受信すると、受信したデータを自身の兄弟ノードに送信する。データ伝送の繰り返しを避けるために、その兄弟ノードとしては、伝送対象のデータを取得していないノードが選択されることが好ましい。図１に示したデータ伝送パスは、１１１→１１２→１１３→１１４である。ノード１１４がデータを受信すると、その兄弟ノードすべてが、伝送対象データをすでに受信したことになる。したがって、ノード１１４は、データを別のノードに送信せず、データ伝送は終了される。
【００１９】
実施形態２
図２は、いくつかの実施形態における、リンクデータ伝送のための別のシステムを示す概略図である。図２のシステムは、３階層のツリー構造を備える点で図１のシステムとは異なる。ソースノード２０１は、ツリー構造の親ノードであり、宛先ノード２１１〜２１５の各々は、ノード２０１の子ノードである。ノード２１１〜２１５は、互いに兄弟ノードである。ノード２１２ａおよび２１２ｂの各々は、ノード２１２の子ノードである。ノード２１２ａおよび２１２ｂは、互いに兄弟ノードである。ノード２１４ａは、ノード２１４の子ノードである。
【００２０】
図２の矢印から、子ノードを有する宛先ノードは、受信したデータを、兄弟ノードだけでなく子ノードにも送信しうることがわかる。例えば、ノード２１２は、兄弟ノードの内の２１３および子ノードの内の２１２ａにデータを送信し、ノード２１４は、兄弟ノードの内の２１５および子ノードの２１４ａにデータを送信する。
【００２１】
いくつかの実施形態に従ってリンクデータ伝送システム内の各ノードによって実装されるデータ伝送機構は、図３に示すフローチャートのように要約されてよく、以下のステップを備える。
【００２２】
ステップＳ３０１において、現在ノードは、伝送対象データを取得する。現在ノードがデータソースノードである場合、取得されるデータは、伝送対象の元データである。現在ノードがデータ宛先ノードである場合、別のノードから送信された伝送対象データを受信する。
【００２３】
ステップＳ３０２において、現在ノードは、子ノードの１つ、および、伝送対象データを取得していない兄弟ノードの１つに対して、データを送信する。
【００２４】
したがって、データを受信した後、現在ノードは、データを２つのノードに送信し続ける。上記の条件を満たす２つのノードが見つからない場合、データは送信されない。この伝送機構によると、ソースノードから伝送された後、データは、横断的に（in a traversed way）すべての宛先ノードに送信されうるため、宛先ノードの間でデータ伝送の繰り返しが起こらない。
【００２５】
上述の実施形態１および２に関して、２階層および３階層の構造を記載しているが、本明細書に開示するデータ伝送機構を利用したツリー構造を備える他の形態のシステムが本発明の範囲に含まれることは、当業者にとって容易に想到できることである。
【００２６】
ツリー接続を確立するために、いくつかの実施形態において、同じネットワークまたはサブネット内の宛先ノードは、親ノードに接続される。図２では、例えば、ノード２１１〜２１５は同じネットワークＡ内に配置され、ノード２１２ａおよび２１２ｂは同じネットワークＢ内に配置され、ノード２１４ａはネットワークＣ内に配置されている。この例では、データは、ネットワークセクション間で伝送される際に１つのデータパスしか占有し得ず、データのほとんどは、兄弟ノード間で単方向的に伝送されるため、データ伝送のためにネットワーク内の帯域幅を効果的に利用できる。
【００２７】
親ノードと子ノードとの間に、１つのデータパスしか存在しないため、このデータパスを制御するだけで、ネットワーク全体のデータ伝送に対する統一的な制御を実現することができる。例えば、ソースノード２０１と宛先ノード２１１との間のデータパスに関して、データ伝送速度は、ノード２０１または２１１において制御されてよい。
【００２８】
親ノードは、子ノードの関連情報を管理する必要があるため、しばしば、比較的高い作業負荷を有する。したがって、いくつかの実施形態では、子ノードにおいて伝送速度を制御することが選択される。例えば、ノード２１１がノード２０１からデータを受信する速度は、ノード２１１において制御されてよい。ノード２１１は、ソースノードからデータを取得する最初で唯一の宛先ノードであるため、兄弟ノード間、または、親ノードと兄弟ノードとの間でのその後のデータ伝送の速度は、明らかに、限られた速度を超えることができず、それにより、ネットワーク全体のデータ伝送に対する統一的な制御が実現される。
【００２９】
ノード２１１がノード２１２にデータを送信する速度もノード２１１において制御できる（ノード２１１が子ノードを有する場合には、ノード２１１が子ノードにデータを送信する速度もノード２１１において制御できる）ことは、当業者にとって容易に想到できることである。さらに、データ受信速度、後続の兄弟ノードへのデータ送信速度、および、子ノードへのデータ送信速度は、各宛先ノードにおいて制御されてよく、それにより、より正確なネットワークの管理が実現される。
【００３０】
実施形態３
様々な実施形態において、宛先ノードが、その兄弟ノードの内、データを取得していない１つの兄弟ノードにデータを送信することを保証するために、上述のデータ伝送機構は、以下のように変形されてよい。
【００３１】
ソースノードは、それに接続された第１の子ノードに伝送対象データを送信する。いくつかの実施形態では、ソースノードに接続された第１の子ノードは、ソースノードとの接続を確立している第１の子ノードである。
【００３２】
宛先ノードは、伝送対象データを受信し、自身に接続された第１の子ノードと、自身の親ノードに接続された第１の後続ノードとに対して、受信した伝送対象データを送信する。いくつかの実施形態では、ソースノードの親ノードに接続された第１の後続ノードは、ソースノードの親ノードとの接続を確立している兄弟ノードである。以降、かかる後続のノードを後続兄弟ノードと呼ぶこととする。
【００３３】
いくつかの実施形態において、ツリー接続を確立する処理中に、ノードｘが、ノードｙとの接続を確立し、したがって、ノードｙに登録することによってノードｙの子ノードになってよい。次いで、ノードｘは、ノードｙとの接続を維持するために、特定の時間間隔（例えば、１秒間隔）でノードｙに登録情報を送信してよい。親ノードは、定期的に子ノードの登録情報を検出することにより、適時に子ノードの接続状態を取得しうる。したがって、親ノードは、データを送信または転送する必要がある時に、どの子ノードがデータを受信するのかを知ることができる。一方、子ノードが特定の回数で登録を成功できなかったことを検出した場合に、親ノードは、その子ノードを子ノードリストから削除して、伝送戦略を調整してもよい。
【００３４】
図２に示したシステムを例として、ノード２１１〜２１５が数字順にノード２０１に登録し、ノード２１２ａおよび２１２ｂがアルファベット順にノード２１２に登録していると仮定すれば、上述の変形された伝送機構に従って、以下を導くことができる。ソースノード２０１は、それに登録している第１の子ノード２１１に伝送対象データを伝送する。宛先ノード２１１は、ノード２０１から送信された伝送対象データを受信し、受信した伝送対象データをその後続兄弟ノード２１２に送信する（ノード２１１は子ノードを持たず、子ノードへの送信が行われないため）。いくつかの実施形態において、後続兄弟ノード２１２は、例えば、親ノードに登録することによって、ソースノードの親ノードとの接続を確立している第１の兄弟ノードである。宛先ノード２１２は、ノード２１１から送信された伝送対象データを受信し、自身の後続兄弟ノード２１３と、自身に登録した第１の子ノード２１２ａとに、受信した伝送対象データを送信する。他の宛先ノードについての送信ルールは、同様に導くことができるため、特に記載しない。
【００３５】
ノードが故障した場合、その親ノードは、子ノードの登録情報を定期的に検出することによってこの状態を知り、対応する調整を実行することができる。ノード２１１が故障した場合、ノード２０１は、自身の子ノードリストからノード２１１の情報を削除してもよい。ここで、ノード２１２が、ノード２０１に登録している第１の子ノードになる。ノード２１２が故障した場合、ノード２０１は、自身の子ノードリストからノード２１２の情報を削除して、ノード２１２の前に登録しているノード２１１にかかる状態を通知する。ここで、ノード２１３が、ノード２１１の後続兄弟ノードになる。
【００３６】
他のノードの故障も同様に対処できる。いくつかの実施形態では、ネットワーク全体の視点から、ノードの故障は、新しいツリー接続の確立と実質的に等価である（これは、新しいノードがネットワークに追加された場合にも当てはまる）。各ノードは、依然、元々の伝送機構に従ってデータの送受信を行う。唯一の変化は、「それに接続された第１の子ノード」および「後続兄弟ノード」によって参照されるオブジェクトの変化である。
【００３７】
変形された伝送機構では、データは、第１のノードから第２のノードに転送され、第１のノードは、第２のノードと同じツリーレベルに存在し、第１のノードは、第２のノードの前に共通の親ノードに登録している。これは、宛先ノードが、データを取得していない自身の兄弟ノードにデータを送信するというルールを反映する。また、ノードが登録を行った順序に従ってデータ伝送の方向を決定すると、データ伝送の管理が容易になる。
【００３８】
実施形態４
２つのノード間でのデータ伝送の処理において、ネットワーク障害によるデータ伝送の不具合を避けるために、伝送対象データが、送信ノードにおいて伝送に向けて複数のデータブロックに分割されてもよい。データを受信すると、受信ノード（例えば、宛先ノード）は、すべてのデータブロックが受信されたか否かを確認するため、受信されていない場合には、欠損データブロックの再送信を送信ノードに要求するだけでよい。
【００３９】
いくつかの実施形態において、データは、コンピュータ間でファイルの形態で伝送される。各ファイルの伝送は、ＦｉｌｅＴａｓｋと呼ばれる別個のスレッドによって扱われる。ＦｉｌｅＴａｓｋは、ＯｐｅｎＦｉｌｅ（ファイルの伝送の開始）、Ｂｌｏｃｋｓ（ファイルのコンテンツの伝送）、ＥｎｄＦｉｌｅ（ファイルの伝送の終了）、および、ＲｅｃｏｖＦｉｌｅ（欠損ブロックの回復）の４つの段階に分けられる。ファイルは、ファイルブロックの形態で伝送される。受信ノードは、ファイルブロックを受信すると確認を行う。データエラーが起きた場合、誤りデータブロックの回復が、ＲｅｃｏｖＦｉｌｅ段階の間に別個に要求されてよく、ファイル全体を再伝送する必要はない。
【００４０】
いくつかの実施形態では、まず、送信ノードにおいて、ＦｉｌｅＴａｓｋが、送信ノードのタスク子ノードリスト（ＦｉｌｅＣｌｉｅｎｔｓ）およびタスク後続兄弟ノードリスト（ＦｉｌｅＮｅｘｔｓ）を含めて確立される。確立されると、ＦｉｌｅＣｌｉｅｎｔｓおよびＦｉｌｅＮｅｘｔｓは、タスクの持続時間中には変化しない。これは、ネットワークの構造が更新された際に現在ファイルの送信が影響を受けないことを保証するためである。
【００４１】
ＯｐｅｎＦｉｌｅメッセージの受信後、受信ノードは、さらに、新しいＦｉｌｅＴａｓｋを確立してよく、これも、受信ノードのＦｉｌｅＣｌｉｅｎｔｓおよびＦｉｌｅＮｅｘｔｓを含む。ＦｉｌｅＴａｓｋにおいて、ＯｐｅｎＦｉｌｅおよびＥｎｄＦｉｌｅのメッセージを含むすべての制御メッセージは、ＦｉｌｅＣｌｉｅｎｔｓに記録されたノードすべてに送信されてよく、データメッセージＢｌｏｃｋは、ＦｉｌｅＣｌｉｅｎｔｓおよびＦｉｌｅＮｅｘｔｓに記録された第１のノードに送信されてよい。いくつかの実施形態において、制御メッセージおよびデータメッセージは、ＯｐｅｎＦｉｌｅ→Ｂｌｏｃｋ→ＥｎｄＦｉｌｅの順に到達する。ただし、各ノードは、かかる状態を、間違った順序、すなわち、一部のデータブロックのエラーまたは欠損として扱うこともできる。
【００４２】
ファイルデータブロックＢｌｏｃｋが、ＯｐｅｎＦｉｌｅの前に受信された場合、ＦｉｌｅＴａｓｋは確立されるが、一時ファイルがファイルデータの書き込みのために開かれる。ＯｐｅｎＦｉｌｅが失われた場合、必要なファイル情報は、ＥｎｄＦｉｌｅから取得されてもよい。一時ファイルの名前は、ＯｐｅｎＦｉｌｅまたはＥｎｄＦｉｌｅからファイル情報（例えば、ファイルのパス）が取得された後に変更されてもよい。
【００４３】
ファイルのパスは、ＥｎｄＦｉｌｅの受信（ＯｐｅｎＦｉｌｅがすでに受信されている場合には、受信がファイルのパスを確認する）後に更新され、ＦｉｌｅＴａｓｋ内のＢｌｏｃｋの数が更新され、Ｂｌｏｃｋの受信が確認され、ブロックを回復するためにメッセージＲｅｃｏｖＢｌｏｃｋが発行される。その後、ＦｉｌｅＴａｓｋは、データブロックを受信することができる。ＯｐｅｎＦｉｌｅについては、ファイルのパスが確認され、Ｂｌｏｃｋについては、通常送信されるＢｌｏｃｋとＲｅｃｏｖＢｌｏｃｋとの間に差異はなく、Ｂｌｏｃｋは、受信が成功した場合には直ちに無視され、成功しなかった場合にはファイルに書き込まれる。ＥｎｄＦｉｌｅメッセージは、Ｂｌｏｃｋの数を含む。すべてのＢｌｏｃｋの受信が成功すると、ＦｉｌｅＴａｓｋは、データブロックを処理するサイクルを終了する。
【００４４】
ＦｉｌｅＴａｓｋが終了する前に、確認が失敗するか、または、ファイル情報が完全でない（ＯｐｅｎＦｉｌｅおよびＥｎｄＦｉｌｅの両方が欠損しているか、いくつかのＢｌｏｃｋが欠損している）場合、ファイルは、直ちに削除される。ＦｉｌｅＴａｓｋが開始した後、特定の期間の後にデータブロックが受信されていない場合、ＦｉｌｅＴａｓｋは完了できたと決定されてよい。かかる機構は、ファイル情報リソースの開放を保証することができる。
【００４５】
この実施形態では、いくつかの実施形態に従ったデータ伝送ソリューションのエラー処理機構が、さらに導入される。いくつかの実施形態では、データは、ノード間でデータブロックの形態で伝送され、伝送のエラーが生じた時に再伝送する必要があるのは誤りデータブロックのみであるため、伝送時間およびネットワーク帯域幅を効果的に節約することができる。
【００４６】
上述の方法の実施形態を実施するためのステップの全部または一部が、プログラム命令に関連したハードウェアによって実行されてよく、プログラム命令は、コンピュータアクセス可能な記憶媒体に格納されてよく、実行されると、上述の方法の実施形態のためのステップを実行することは、当業者であれば理解できることである。記憶媒体は、ＲＯＭ、ＲＡＭ、磁気ディスク、光学ディスク、プログラムコードを格納できるその他の媒体を含む。
【００４７】
実施形態５
以下では、いくつかの実施形態に従ったリンクデータ伝送のためのノードを開示する。そのノードは、上述の処理を実行するよう構成される。図４に示すように、ノードの一例は、伝送対象データを取得するよう構成された受信ユニット４１０を備える。データソースノードについて、受信ユニット４１０は、伝送対象の元データを取得するよう構成され、宛先ノードについて、受信ユニット４１０は、別のノードから送信された伝送対象データを受信するよう構成される。ノードは、さらに、リンクデータ伝送のためのノードが少なくとも１つの子ノードを有する場合に、受信ユニット４１０が受信した伝送対象データを少なくとも１つの子ノードの内の１つに送信し、リンクデータ伝送のためのノードが、伝送対象データを取得していない少なくとも１つの兄弟ノードを有する場合に、受信ユニット４１０が受信した伝送対象データを少なくとも１つの兄弟ノードの内の１つに送信するよう構成された送信ユニット４２０を備える。
【００４８】
図５によると、送信ユニット４２０は、受信ユニットが受信した伝送対象データを、リンクデータ伝送のためのノードに接続された第１の子ノードに送信するよう構成された第１の送信サブユニット４２１と；受信ユニットが受信した伝送対象データを、リンクデータ伝送のためのノードの後にリンクデータ伝送のためのノードの親ノードに最初に接続された第１のノードであるノードに送信するよう構成された第２の送信サブユニット４２２とを備えてよい。
【００４９】
上述の２つの送信サブユニットは、実質的に、送信ユニット４２０のさらなる最適化を行うものである。最適化された機構では、データは、あるノードへ、そのノードの前に登録を行った同じレベルのノードから転送される。これは、宛先ノードが、データを取得していない自身の兄弟ノードにデータを送信するというルールを反映する。また、ノードが登録を行った順序に従ってデータ伝送の方向を決定すると、データ伝送の管理が容易になる。
【００５０】
図６によると、リンクデータ伝送のためのノードは、さらに、受信ユニット４１０のデータ受信速度および／または送信ユニット４２０のデータ送信速度を制御するよう構成された速度制御ユニット４３０を備える。受信ユニットが、別のノードから送信された伝送対象データを受信する場合、リンクデータ伝送のためのノードは、さらに、受信ユニット４１０によって受信された伝送対象データが完全であるか否かを確認し、完全でない場合には、データの欠損部分の再送信をデータ送信ノードに要求するよう構成されたデータ確認ユニット４４０を備えてよい。
【００５１】
上述のユニットは、１または複数の汎用プロセッサ上で実行されるソフトウェアコンポーネントとして、特定の機能を実行するよう設計されたプログラム可能論理デバイスおよび／または特定用途向け集積回路などのハードウェアとして、もしくは、それらの組み合わせとして実装することができる。例えば、いくつかの実施形態において、送信ユニットおよび受信ユニットは、支援ソフトウェアおよびファームウェアを実行する通信インターフェースハードウェアとして実装される。いくつかの実施形態において、ユニットは、コンピュータデバイス（パーソナルコンピュータ、サーバ、ネットワーク装置など）に本発明の実施形態に記載された方法を実行させるための複数の命令など、不揮発性記憶媒体（光学ディスク、フラッシュ記憶装置、携帯用ハードディスクなど）に格納することができるソフトウェア製品の形態で具現化されてよい。ユニットは、単一のデバイス上に実装されてもよいし、複数のデバイスにわたって分散されてもよい。ユニットの機能は、互いに統合されてもよいし、複数のサブユニットにさらに分割されてもよい。
【００５２】
方法の実施形態に実質的に対応するデバイスの実施形態の説明は比較的簡潔であるため、詳細については、方法の実施形態の説明を参照してもよい。上述のデバイスの実施形態は例示にすぎず、別個の要素として記載されたユニットは、互いに物理的に別個のものであってもなくてもよく、ユニットとして示された要素は、物理ユニットであってもなくてもよく、同じ場所に配置されても複数のネットワーク要素にわたって分散されてもよい。モジュールの一部またはすべてが、本発明に従った実施形態の目的を達成するように選択されてよく、これは、当業者によって創作的努力なしに理解および実施できる。いくつかの実施形態では、デバイスは、１または複数のプロセッサと、プロセッサに命令を提供するための１または複数のメモリとを備える。１または複数のプロセッサは、上述の１または複数のユニットの機能を実行するよう構成される。
【００５３】
以上は、本発明のいくつかの具体的な実施形態にすぎない。当業者は、本発明の趣旨および範囲から逸脱することなく、様々な変更および変形をなすことができる。かかる変更および変形は、本発明の範囲に入るよう意図される。
【００５４】
上述の実施形態は、理解し易いように詳細に説明されているが、本発明は、提供された詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示された実施形態は、例示であり、限定を意図するものではない。
適用例１：複数のノードに対するリンクデータ伝送のための方法であって、前記複数のノードの間にツリー接続を確立し、現在ノードで伝送対象データを受信し、前記伝送対象データを受信した前記現在ノードが、少なくとも１つの子ノードを有する場合に、前記現在ノードによって前記少なくとも１つの子ノードの内の１つに対して前記伝送対象データを送信し、前記伝送対象データを受信した前記現在ノードが、前記伝送対象データを取得していない少なくとも１つの兄弟ノードを有する場合に、前記現在ノードによって前記少なくとも１つの兄弟ノードの内の１つに対して前記伝送対象データを送信すること、
を備える、方法。
適用例２：適用例１に記載の方法であって、さらに、前記現在ノードによって、データ受信速度を制御することを備える、方法。
適用例３：適用例１に記載の方法であって、さらに、前記現在ノードによって、前記少なくとも１つの子ノードへのデータ送信速度を制御することを備える、方法。
適用例４：適用例１に記載の方法であって、さらに、前記現在ノードによって、前記少なくとも１つの兄弟ノードへのデータ送信速度を制御することを備える、方法。
適用例５：適用例１に記載の方法であって、さらに、前記現在ノードが前記伝送対象データを送る宛先ノードを現在ノードとして設定し、該現在ノードで前記伝送対象データを受信すること、を備える、方法。
適用例６：適用例１に記載の方法であって、前記現在ノードによって前記伝送対象データを前記少なくとも１つの子ノードの内の１つに送信することは、前記現在ノードと接続を確立した最初の子ノードに前記伝送対象データを送信することを備え、前記伝送対象データを前記少なくとも１つの兄弟ノードの内の１つに送信する工程は、前記現在ノードの後に前記現在ノードの親ノードとの接続を確立した最初のノードであるノードに前記伝送対象データを送信する工程を備える、方法。
適用例７：適用例１に記載の方法であって、複数のノードの間にツリー接続を確立することは、単一のネットワークに配置された前記複数のノードを単一の親ノードに接続することを備える、方法。
適用例８：適用例１に記載の方法であって、子ノードが、親ノードに登録情報を定期的に送信することによって前記親ノードとの接続を維持する、方法。
適用例９：適用例１に記載の方法であって、現在ノードで伝送対象データを受信することは、データ送信ノードから送信された前記伝送対象データを前記現在ノードによって受信することを備え、前記方法は、さらに、前記受信した伝送対象データが完全であるか否かを前記現在ノードによって確認し、完全でない場合に、前記データの欠損部分の再送信を前記データ送信ノードに要求すること、を備える、方法。
適用例１０：リンクデータ伝送ノードであって、ソースノードから伝送されたデータを受信するよう構成されたインターフェースと、前記インターフェースに接続され、前記リンクデータ伝送ノードが、少なくとも１つの子ノードを有するか否か、および、前記リンクデータ伝送ノードが、伝送対象の前記データを取得していない少なくとも１つの兄弟ノードを有するか否かを決定するよう構成されたプロセッサと、を備え、前記リンクデータ伝送ノードが、少なくとも１つの子ノードを有する場合に、前記インターフェースは、さらに、前記データを前記少なくとも１つの子ノードの内の１つに送信するよう構成され、
前記リンクデータ伝送ノードが、伝送対象の前記データを取得していない少なくとも１つの兄弟ノードを有する場合に、前記インターフェースは、さらに、現在ノードによって前記少なくとも１つの兄弟ノードの内の１つに対して伝送対象の前記データを送信するよう構成される、リンクデータ伝送ノード。
適用例１１：リンクデータ伝送のためのシステムであって、データソースノードと、  複数の宛先ノードと、を備え、前記データソースノードと前記複数の宛先ノードとの間に、ツリー接続が確立され、少なくとも１つのデータ宛先ノードは、前記データソースノードの子ノードであり、前記データソースノードは、伝送対象のデータを前記データソースノードの子ノードに送信するよう構成され、前記少なくとも１つのデータ宛先ノードの各々は、伝送対象の前記データを受信し、前記少なくとも１つのデータ宛先ノードが、少なくとも１つの自身の子ノードを有する場合に、前記少なくとも１つの自身の子ノードの内の１つに対して前記受信したデータを送信し、前記少なくとも１つのデータ宛先ノードが、伝送対象の前記データを取得していない少なくとも１つの兄弟ノードを有する場合に、前記少なくとも１つの兄弟ノードの内の１つに対して前記受信したデータを送信するよう構成される、システム。
【図１】
0005274669.tif 000002
【図２】
0005274669.tif 000003
【図３】
0005274669.tif 000004
【図４】
0005274669.tif 000005
【図５】
0005274669.tif 000006
【図６】
0005274669.tif 000007