(57)【特許請求の範囲】
【請求項１】
ファイルを発信する送信装置と、ファイルを中継する中継装置と、ファイルを着信する受信装置とを有し、送信装置から受信装置ヘファイルを転送するファイル転送システムの前記中継装置が実行するファイル転送方法であって、
前記送信装置から、転送すべきファイルのファイルサイズと宛先アドレスとを含むファイル発信情報を受信し、該ファイルにファイル識別子を割り当て、該ファイル識別子と該ファイルサイズと該宛先アドレスとを、前記中継装置のファイル蓄積手段に格納し、該ファイル識別子を該送信装置に通知するファイル発信情報受信ステップと、
前記ファイル識別子と、該ファイル識別子に対応するファイルデータとを前記送信装置から受信して前記ファイル蓄積手段に該ファイルデータを該ファイル識別子と関連付けて蓄積する処理を開始する蓄積開始ステップと、
前記宛先アドレスに対応する受信装置からファイル着信情報要求を受信したことに応じて、当該宛先アドレスに対応するファイル識別子とファイルサイズとを含むファイル着信情報を該受信装置に通知するファイル着信情報通知ステップと、
前記ファイル識別子と、該ファイル識別子に対応するファイルデータとして前記受信装置が既に受信したデータ量とを含む着信ファイル要求を前記受信装置から受信し、該ファイル識別子に関連付けて前記ファイル蓄積手段に既に蓄積されているファイルデータを該受信装置に送信するデータ送信ステップとを有し、
前記データ送信ステップにおいて、前記受信装置が前記ファイル蓄積手段に蓄積済みのファイルデータの受信を完了しても、該受信装置における前記ファイルの受信済みデータ量が該ファイルのファイルサイズに満たない場合に、前記中継装置は、前記着信ファイル要求を前記受信装置から受信する処理と、該受信装置における前記ファイルの未受信のデータを該受信装置へ送信する処理とを、該受信装置における該ファイルの受信済みデータ量が該ファイルのファイルサイズに達するまで繰り返し行い、
前記中継装置が、前記送信装置から前記ファイルの全ファイルデータを受信完了する前に、前記受信装置から前記着信ファイル要求を受信した場合には、前記中継装置は、前記送信装置からのファイルデータの受信と、前記受信装置へのファイルデータの送信とを並行して行うことを特徴とするファイル転送方法。
【請求項２】
請求項１に記載のファイル転送方法における前記ファイル発信情報受信ステップにおいて、
前記中継装置は、前記ファイル識別子を割り当てる代わりに、前記送信装置から、転送すべきファイルのファイル識別子とファイルサイズと宛先アドレスとを含むファイル発信情報を受信し、該ファイル発信情報から取得した該ファイル識別子と該ファイルサイズと該宛先アドレスとを、前記中継装置のファイル蓄積手段に格納する、ファイル転送方法。
【請求項３】
ファイルを発信する送信装置と、ファイルを中継する中継装置と、ファイルを着信する受信装置とを有し、送信装置から受信装置ヘファイルを転送するファイル転送システムであって、
前記中継装置は：
ファイルとファイル識別子とファイルサイズと宛先アドレスとを関連付けて蓄積するファイル蓄積手段と、
前記送信装置から、転送すべきファイルのファイルデータを受信する前に、当該転送すべきファイルのファイルサイズと宛先アドレスとを含むファイル発信情報を受信し、該ファイルにファイル識別子を割り当て、該ファイル識別子と該ファイルサイズと該宛先アドレスとを前記ファイル蓄積手段に登録し、該ファイル識別子を該送信装置に通知する、ファイル発信情報受信手段と、
ある宛先アドレスに対応する受信装置からファイル着信情報要求を受信したことに応じて、当該宛先アドレスに対応するファイル識別子とファイルサイズとを含むファイル着信情報を該受信装置に通知するファイル着信情報送信手段と、
あるファイル識別子と該ファイル識別子に対応するファイルデータとを前記送信装置から受信し、前記ファイル蓄積手段に該ファイル識別子と関連付けて蓄積させる発信ファイル受信手段と、
あるファイル識別子と、該ファイル識別子に対応するファイルデータとして前記受信装置が既に受信したデータ量とを含む着信ファイル要求を前記受信装置から受信し、該ファイル識別子に関連付けて前記ファイル蓄積手段に既に蓄積されているファイルデータのうち該受信装置が未受信のデータを該受信装置へ送信する着信ファイル送信手段と
を備え、
前記送信装置は：
転送すべきファイルとファイル識別子を関連付けて蓄積する発信ファイル蓄積手段と、
転送すべきファイルのファイルサイズと宛先アドレスを含むファイル発信情報を前記中継装置へ送信し、該ファイルに割り当てられたファイル識別子を該中継装置から受信し、前記発信ファイル蓄積手段に該ファイル識別子を該ファイルに関連付けて蓄積するファイル発信情報送信手段と、
前記発信ファイル蓄積手段に蓄積されているファイル識別子と該ファイル識別子に対応したファイルデータを前記中継装置に送信する発信ファイル送信手段と
を備え、
前記受信装置は：
ファイルデータとファイル識別子とファイルサイズとを関連付けて蓄積する着信ファイル蓄積手段と、
当該受信装置に対応する宛先アドレスを含むファイル着信情報要求を前記中継装置に送信する手段と、
前記ファイル着信情報要求を送信した後に、前記中継装置からファイル識別子とファイルサイズとを含むファイル着信情報を受信し、前記ファイル着信情報に含まれるファイル識別子とファイルサイズを取得し、これらを前記着信ファイル蓄積手段に登録するファイル着信情報受信手段と、
前記着信ファイル蓄積手段に登録したファイル識別子と該ファイル識別子に対応するファイルの受信済みデータ量とを含む着信ファイル要求を前記中継装置に送信し、前記中継装置から前記ファイル蓄積手段に蓄積済みのファイルデータを受信する着信ファイル受信手段とを有し、
前記着信ファイル受信手段は、前記中継装置の前記ファイル蓄積手段に蓄積済みのファイルデータの受信を完了しても、前記ファイルの受信済みデータ量が該ファイルのファイルサイズに満たない場合に、前記着信ファイル要求を前記中継装置に送信する処理と、該中継装置から該ファイルの未受信部分のデータを受信し該データを既に受信したファイルのデータに追加して蓄積する処理とを、該ファイルの受信済みデータ量が該ファイルのファイルサイズに達するまで繰り返し行う
ことを特徴とするファイル転送システム。
【請求項４】
請求項３に記載のファイル転送システムにおいて、
前記中継装置は：
転送すべきファイルの宛先アドレスから、当該ファイルについて他の中継装置に転送が必要か否かについての判断を行い、転送が必要であると判断された場合に転送先とすべき第二の中継装置を決定する転送先決定手段と、
前記転送先決定手段により決定した第二の中継装置に、前記宛先アドレスと、当該宛先アドレスに対応するファイル識別子とファイルサイズとを含むファイル中継情報を送信するファイル中継情報送信手段と、
前記第二の中継装置から、ファイル識別子と、該ファイル識別子に対応するファイルデータとして該第二の中継装置が既に受信したデータ量とを受信し、前記ファイル蓄積手段に既に蓄積済みのファイルデータのうちファイル先頭部を始まりとする前記データ量に相当する量のファイルデータに後続するファイルデータを該第二の中継装置へ送信する中継ファイル送信手段と、
別の第三の中継装置から前記ファイル中継情報を受信し、該ファイル中継情報に含まれる宛先アドレスとファイル識別子とファイルサイズとを前記ファイル蓄積手段に登録するファイル中継情報受信手段と、
前記第三の中継装置から受信したファイル識別子と該ファイル識別子に対応するファイルの受信済みデータ量を前記第三の中継装置に送信し、該第三の中継装置から該ファイルの未受信部分のデータを受信する中継ファイル受信手段と、
を更に具備することを特徴とするファイル転送システム。
【請求項５】
請求項４に記載のファイル転送システムにおいて、
前記中継ファイル送信手段は、前記第二の中継装置へ前記ファイルのデータを送信する前に、まず、前記ファイル蓄積手段に該ファイルのファイル識別子と関連付けて蓄積されている、ファイルの発信状態を示す情報を送信し、該ファイルのデータを送信する手段を含み、
前記中継ファイル受信手段は、前記第三の中継装置からファイル識別子に対応するファイルの発信状態を示す情報を受信し、送信中断状態であった場合には受信を中断し、送信中断状態でない場合には、ファイル蓄積手段の該ファイルの発信状態を示す情報を中断ではない状態に変化させ、続けてファイルの未受信部分のデータを受信する手段を含むことを特徴とするファイル転送システム。
【請求項６】
請求項３から５のいずれかに記載のファイル転送システムにおいて、
前記ファイル蓄積手段は、前記送信装置がファイル送信を中断したか否かを示す発信状態を示す情報をファイル識別子と関連付けて蓄積する手段を含み、
前記発信ファイル受信手段は：
前記送信装置がファイル送信を中断した場合には、前記ファイル蓄積手段に該ファイル識別子と関連付けられて蓄積されている発信状態を示す情報を中断を示す値に変化させ、
前記着信ファイル送信手段は：
前記受信装置へ前記ファイルのデータを送信する前に、まず、前記ファイル蓄積手段に該ファイルのファイル識別子と関連付けて蓄積されている発信状態を示す情報を送信し、
該中継装置は、送信装置からファイル識別子に関連付けられたファイルの受信済みデータ量の問い合わせを受けると、前記ファイル蓄積手段に該ファイル識別子と関連付けて保存されているファイルの受信済みデータ量を、該送信装置に通知する、受信済みデータ量応答手段を更に具備し、
前記送信装置の前記発信ファイル送信手段は：
前記中継装置への送信を中断した後に再開した場合、前記中継装置の受信済みデータ量応答手段から通知されたあるファイル識別子に関連付けられたファイルのデータ量分のファイル先頭部からのデータに後続するデータを、該中継装置に送信し、
前記受信装置の前記着信ファイル受信手段は、前記中継装置からあるファイル識別子に対応するファイルの発信状態を示す情報を受信し、送信中断状態であった場合には受信を中断し、送信中断状態でない場合には続けてファイルの未受信部分のデータを受信する、
ことを特徴とするファイル転送システム。
【請求項７】
請求項３から６のいずれかに記載のファイル転送システムにおいて、
前記送信装置の前記ファイル発信情報送信手段は、転送すべきファイルに対して前記ファイル識別子を割り当て、この割り当てられたファイル識別子を前記ファイル発信情報に含め、
前記中継装置の前記ファイル発信情報受信手段は、前記ファイル識別子を割り当てる代わりに前記ファイル発信情報に含まれている該ファイル識別子を取得する、
ことを特徴とするファイル転送システム。
【請求項８】
請求項３から７のいずれかに記載のファイル転送システムにおいて、前記データ量はバイト数であることを特徴とするファイル転送システム。
【請求項９】
ファイルを発信する送信装置と、ファイルを中継する中継装置と、ファイルを着信する受信装置とを有し、送信装置から受信装置ヘファイルを転送するファイル転送システムにおいて使用される前記中継装置であって、
ファイルとファイル識別子とファイルサイズと宛先アドレスとを関連付けて蓄積するファイル蓄積手段と、
前記送信装置から、転送すべきファイルのファイルデータを受信する前に、転送すべきファイルのファイルサイズと宛先アドレスとを含むファイル発信情報を受信し、該ファイルにファイル識別子を割り当て、該ファイル識別子と該ファイルサイズと該宛先アドレスとを前記ファイル蓄積手段に登録し、該ファイル識別子を該送信装置に通知する、ファイル発信情報受信手段と、
ある宛先アドレスに対応する受信装置からファイル着信情報要求を受信したことに応じて、当該宛先アドレスに対応するファイル識別子とファイルサイズとを含むファイル着信情報を該受信装置に通知するファイル着信情報送信手段と、
あるファイル識別子と該ファイル識別子に対応するファイルデータとを前記送信装置から受信し、前記ファイル蓄積手段に該ファイル識別子と関連付けて蓄積させる発信ファイル受信手段と、
前記ファイル識別子と、該ファイル識別子に対応するファイルデータとして前記受信装置が既に受信したデータ量とを含む着信ファイル要求を前記受信装置から受信し、該ファイル識別子に関連付けて前記ファイル蓄積手段に既に蓄積されているファイルデータを該受信装置に送信する着信ファイル送信手段とを有し、
前記受信装置が前記ファイル蓄積手段に蓄積済みのファイルデータの受信を完了しても、該受信装置における前記ファイルの受信済みデータ量が該ファイルのファイルサイズに満たない場合に、前記着信ファイル送信手段は、前記着信ファイル要求を前記受信装置から受信する処理と、該受信装置における前記ファイルの未受信のデータを該受信装置へ送信する処理とを、該受信装置における該ファイルの受信済みデータ量が該ファイルのファイルサイズに達するまで繰り返し行う
ことを特徴とする中継装置。
【請求項１０】
請求項９に記載の中継装置において、
転送すべきファイルの宛先アドレスから、当該ファイルについて他の中継装置に転送が必要か否かについての判断を行い、転送が必要であると判断された場合に転送先とすべき第二の中継装置を決定する転送先決定手段と、
前記転送先決定手段により決定した第二の中継装置に、前記宛先アドレスと、当該宛先アドレスに対応するファイル識別子とファイルサイズとを含むファイル中継情報を送信するファイル中継情報送信手段と、
前記第二の中継装置から、ファイル識別子と、該ファイル識別子に対応するファイルデータとして該第二の中継装置が既に受信したデータ量とを受信し、前記ファイル蓄積手段に既に蓄積済みのファイルデータのうちファイル先頭部を始まりとする前記データ量に相当する量のファイルデータに後続するファイルデータを該第二の中継装置へ送信する中継ファイル送信手段と、
別の第三の中継装置から前記ファイル中継情報を受信し、該ファイル中継情報に含まれる宛先アドレスとファイル識別子とファイルサイズとを前記ファイル蓄積手段に登録するファイル中継情報受信手段と、
前記第三の中継装置から受信したファイル識別子と該ファイル識別子に対応するファイルの受信済みデータ量を前記第三の中継装置に送信し、該第三の中継装置から該ファイルの未受信部分のデータを受信する中継ファイル受信手段と、
を更に具備することを特徴とする中継装置。
【請求項１１】
請求項９または１０に記載の中継装置において、
前記ファイル蓄積手段は、前記送信装置がファイル送信を中断したか否かを示す発信状態を示す情報をファイル識別子と関連付けて蓄積する手段を含み、
前記発信ファイル受信手段は：
前記送信装置がファイル送信を中断した場合には、前記ファイル蓄積手段に該ファイル識別子と関連付けられて蓄積されている発信状態を示す情報を中断を示す値に変化させ、
前記着信ファイル送信手段は：
前記受信装置へ前記ファイルのデータを送信する前に、まず、前記ファイル蓄積手段に該ファイルのファイル識別子と関連付けて蓄積されている発信状態を示す情報を送信し、
前記中継装置は、前記送信装置からファイル識別子に関連付けられたファイルの受信済みデータ量の問い合わせを受けると、前記ファイル蓄積手段に該ファイル識別子と関連付けて保存されているファイルの受信済みデータ量を、該送信装置に通知する、受信済みデータ量応答手段を更に具備することを特徴とする中継装置。
【請求項１２】
請求項９から１１のいずれかに記載の中継装置において、前記ファイル発信情報は、前記ファイルに対して割り当てられたファイル識別子を更に含み、
前記中継装置の前記ファイル発信情報受信手段は、ファイル識別子を割り当てる代わりに前記ファイル発信情報に含まれている該ファイル識別子を取得する、ことを特徴とする中継装置。
【請求項１３】
ファイルを発信する送信装置と、ファイルを中継する中継装置と、ファイルを着信する受信装置とを有し、送信装置から受信装置ヘファイルを転送するファイル転送システムにおいて使用される前記中継装置としてコンピュータを機能させるプログラムであって、前記コンピュータを、
前記送信装置から、転送すべきファイルのファイルデータを受信する前に、転送すべきファイルのファイルサイズと宛先アドレスとを含むファイル発信情報を受信し、該ファイルにファイル識別子を割り当て、該ファイル識別子と該ファイルサイズと該宛先アドレスとを前記コンピュータの記憶手段に登録し、該ファイル識別子を該送信装置に通知する、ファイル発信情報受信手段、
ある宛先アドレスに対応する受信装置からファイル着信情報要求を受信したことに応じて、当該宛先アドレスに対応するファイル識別子とファイルサイズとを含むファイル着信情報を該受信装置に通知するファイル着信情報送信手段、
あるファイル識別子と該ファイル識別子に対応するファイルデータとを前記送信装置から受信し、前記記憶手段に該ファイル識別子と関連付けて蓄積する発信ファイル受信手段、
前記ファイル識別子と、該ファイル識別子に対応するファイルデータとして前記受信装置が既に受信したデータ量とを含む着信ファイル要求を前記受信装置から受信し、該ファイル識別子に関連付けて前記記憶手段に既に蓄積されているファイルデータを該受信装置に送信する着信ファイル送信手段として機能させるプログラムであり、
前記受信装置が前記記憶手段に蓄積済みのファイルデータの受信を完了しても、該受信装置における前記ファイルの受信済みデータ量が該ファイルのファイルサイズに満たない場合に、前記着信ファイル送信手段は、前記着信ファイル要求を前記受信装置から受信する処理と、該受信装置における前記ファイルの未受信のデータを該受信装置へ送信する処理とを、該受信装置における該ファイルの受信済みデータ量が該ファイルのファイルサイズに達するまで繰り返し行う
ことを特徴とするプログラム。
【請求項１４】
請求項１３に記載のプログラムにおいて、前記コンピュータを更に、
転送すべきファイルの宛先アドレスから、当該ファイルについて他の中継装置に転送が必要か否かについての判断を行い、転送が必要であると判断された場合に転送先とすべき第二の中継装置を決定する転送先決定手段、
前記転送先決定手段により決定した第二の中継装置に、前記宛先アドレスと、当該宛先アドレスに対応するファイル識別子とファイルサイズとを含むファイル中継情報を送信するファイル中継情報送信手段、
前記第二の中継装置から、ファイル識別子と、該ファイル識別子に対応するファイルデータとして該第二の中継装置が既に受信したデータ量とを受信し、前記ファイル蓄積手段に既に蓄積済みのファイルデータのうちファイル先頭部を始まりとする前記データ量に相当する量のファイルデータに後続するファイルデータを該第二の中継装置へ送信する中継ファイル送信手段、
別の第三の中継装置から前記ファイル中継情報を受信し、該ファイル中継情報に含まれる宛先アドレスとファイル識別子とファイルサイズとを前記ファイル蓄積手段に登録するファイル中継情報受信手段、
前記第三の中継装置から受信したファイル識別子と該ファイル識別子に対応するファイルの受信済みデータ量を前記第三の中継装置に送信し、該第三の中継装置から該ファイルの未受信部分のデータを受信する中継ファイル受信手段、
として機能させるプログラム。
【請求項１５】
請求項１３または１４に記載のプログラムにおいて、
前記発信ファイル受信手段は：
前記送信装置がファイル送信を中断した場合には、前記記憶手段に、該ファイル識別子と関連付けて、ファイル送信中断を示す値を発信状態として保持する手段を有し、
前記着信ファイル送信手段は：
前記受信装置へ前記ファイルのデータを送信する前に、まず、前記ファイル蓄積手段に該ファイルのファイル識別子と関連付けて保持されている発信状態を示す情報を送信し、
前記プログラムは、前記コンピュータを更に、前記送信装置からファイル識別子に関連付けられたファイルの受信済みデータ量の問い合わせを受けると、前記記憶手段に該ファイル識別子と関連付けて保存されているファイルの受信済みデータ量を、該送信装置に通知する、受信済みデータ量応答手段として機能させるプログラム。
【請求項１６】
請求項１３から１５のいずれかに記載のプログラムにおいて、
前記ファイル発信情報は、前記ファイルに対して割り当てられたファイル識別子を更に含み、
前記ファイル発信情報受信手段は、ファイル識別子を割り当てる代わりに前記ファイル発信情報に含まれている該ファイル識別子を取得する、プログラム。
【請求項１７】
請求項１３から１６のうちいずれか１項に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はファイル（一定の目的を持つ情報）を転送するファイル転送技術に関し、より詳細には、受信装置から提供される受信済みデータ量に応じたファイルデータを受信装置に送ることにより、ファイルの送信処理、受信処理に要する時間が短く、受信装置によるファイル受信を開始可能になるまでの待ち時間がファイルサイズと中継装置の数に比例しないファイル転送技術に関する。
【０００２】
【従来の技術】
ネットワークを用いてある発信側端末装置（以下、「送信装置」という）から受信側の別の端末装置（以下、「受信装置」という）ヘファイルを転送する装置をファイル転送システムと呼ぶ。
【０００３】
従来のファイル転送システムの一実現方式として、送信装置から受信装置に直接ファイルを転送する方式がある。別の実現方式としてFTPサーバやHTTPサーバなどの、ファイルを蓄積する手段と端末からの要求に応じて蓄積されたファイルを端末に配信する手段とを備えた共有サーバを設け、送信装置が共有サーバにファイルを蓄積し、受信装置が共有サーバからファイルを受信する方式がある。また更に別の方式としてE-mailのようにファイルが複数のファイル中継装置を経由しながら転送される方式もある。
【０００４】
【発明が解決しようとする課題】
送信装置から受信装置に直接ファイルを転送する方式では、送信装置と受信装置は同時に起動していなくてはならないという問題がある。また、共有サーバを設ける方式では、送信装置と受信装置は同時に起動していなくても良いが、共有サーバが送信装置、受信装置から離れていると、送信装置にとってのファイル送信処理、受信装置にとってのファイル受信処理に時間がかかるという問題点がある。
【０００５】
また、複数のファイル中継装置を中継する方式では、送信装置、受信装置は最寄りのファイル中継装置とファイルの送受信をできるため、送信装置にとってのファイル送信処理、受信装置にとってのファイル受信処理に時間がかかるという問題点は解決される。しかし、各ファイル中継装置は、転送されるファイルの全部分を受信しないと次の転送先ヘファイルを転送できない。なぜなら各ファイル中継装置は、前段のファイル中継装置または送信装置からのファイル受信速度が、次段のファイル中継装置または受信装置への転送速度を下回る場合、次段へのファイル転送を途中で中断せざるをえないからである。そのため、送信装置がファイルを送信開始してから受信装置がファイルの受信を開始可能になるまでの待ち時間が、ファイルサイズと中継ファイル転送装置の数に比例して大きくなる。
【０００６】
本発明は、ファイルの送信処理、受信処理に要する時間が短く、受信装置によるファイル受信を開始可能になるまでの待ち時間がファイルサイズと中継装置の数に比例しないファイル転送システムを実現することを目的とする。また、従来のファイル転送方式では、中断・再開を途中で行いながら１つのファイルを転送することができない。なぜなら従来のファイル転送方式では、転送を中断されたファイルについて、中継装置が送信装置に対して、蓄積済みデータ量を伝達し、送信装置は伝達されたデータ量以降のデータから中継装置にデータ転送する手段を持たないためである。本発明は、ファイルを送信する送信装置がファイル転送の途中で転送を中断し、再開することを可能とすることを別の目的とする。
【０００７】
【課題を解決するための手段】
本発明のファイル転送システムはファイル蓄積手段と発信ファイル受信手段と着信ファイル送信手段とを備え、送信装置は発信ファイル蓄積手段と発信ファイル送信手段とを備え、受信装置は着信ファイル蓄積手段と着信ファイル受信手段とを備える。
【０００８】
中継装置は、発信ファイル受信手段で送信装置から受信したデータをファイル蓄積手段に蓄積する動作と、ファイル蓄積手段に蓄積されたデータを着信ファイル送信手段で受信装置へ送信する動作を独立に行うため、送信装置からのファイル受信を完了する前に受信装置へのファイル送信を開始することができる。また中継装置は発信ファイル情報受信手段と着信ファイル情報送信手段とを備える。
【０００９】
送信装置は発信ファイル情報送信手段を備え、受信装置は着信ファイル情報受信手段を備える。
【００１０】
中継装置は、ファイルを受信する前に予め発信ファイル情報受信手段で送信装置からファイルサイズを受信し、ファイル識別子と関連付けてファイル蓄積手段に登録する。
【００１１】
また、ファイルを送信する前に予め着信ファイル情報送信手段で受信装置にファイル識別子とファイルサイズを通知する。受信装置は、着信ファイル情報受信手段で中継装置から受信したファイル識別子とファイルサイズを、着信ファイル蓄積手段に蓄積する。
【００１２】
受信装置は、中継装置に蓄積済みのデータを全て着信ファイル受信手段で受信後、着信ファイル蓄積手段に蓄積されている該ファイルのファイルサイズと受信済みデータ量を比較し、一致しない場合は、中継装置に新たに到着したデータを受信する動作を繰り返す。そのため、送信装置が中継装置にファイルを送信する速度よりも、受信装置が中継装置からファイルを受信する速度のほうが速い場合にも速度調整がなされる。
【００１３】
また、中継装置は、転送先決定手段とファイル中継情報送信手段と、中継ファイル送信手段と、ファイル中継情報受信手段と、中継ファイル受信手段とを備えてもよい。この場合中継装置は、転送先決定手段でファイル蓄積手段に蓄積されているファイルの宛先アドレス群から他の中継装置に転送が必要か判断し、必要である場合には転送先とすべき中継装置群を決定し、ファイル中継情報送信手段で、該中継装置群に宛先アドレスのリストとファイル識別子とファイルサイズを含むファイル中継情報を送信する。
【００１４】
前段の中継装置からファイル中継情報受信手段でファイル中継情報を受信した第２の中継装置は、ファイル中継情報をファイル情報蓄積手段に蓄積し、中継ファイル受信手段で前段の中継装置からデータを受信する。前段の中継装置に蓄積済みのデータを全て受信後、ファイル蓄積手段に蓄積されている該ファイルのファイルサイズと受信済みデータ量を比較し、一致しない場合は、前段の中継装置に新たに到着したデータを受信する動作を繰り返す。
【００１５】
このように送信装置から受信装置ヘファイルが転送される間にファイルが複数の中継装置を経由することも可能となるため、送信装置、受信装置はそれぞれネットワーク的に最寄りの中継装置と通信でき、送信装置にとってのファイル送信処理、受信装置にとってのファイル受信処理を早く完了できる。
【００１６】
また、中継装置のファイル蓄積手段は、送信装置がファイル送信を中断したか否かを示す発信状態を蓄積する手段を含み、発信ファイル受信手段は、送信装置がファイル送信を中断した場合に、ファイル蓄積手段に蓄積されている発信状態を中断状態に変化させる手段を含み、着信ファイル送信手段は、受信装置にデータを送信する際に、まず該ファイルの発信状態を送信し、続けて該データを送信する手段を含み、送信装置の発信ファイル送信手段はファイル送信を中断する手段を含み、受信装置の着信ファイル受信手段は中継装置からファイルの発信状態を受信し、中断状態であった場合は受信を中断し、中断状態でない場合には続けてファイルの未受信部分のデータを受信する手段を含んでいても良い。この場合、送信装置がファイル送信を中断したことが、中継装置、受信装置にも伝達されるため、ファイル送信が中断されたにもかかわらず中継装置、受信装置が続きのデータを待ち続けることがなくなる。
【００１７】
また、中継装置の中継ファイル送信手段は、データを送信する際にまず該ファイルの発信状態を送信し、続けて該データを送信する手段を含み、中継ファイル受信手段は、前段の中継装置からファイルの発信状態を受信し、中断状態であった場合は受信を中断し、中断状態でない場合には続けてファイルの未受信部分のデータを受信する手段を含んでいても良い。この場合は、送信装置がファイル送信を中断したことが、ファイルを中継する複数の中継装着に伝達されるため、ファイル送信が中断されたにもかかわらず各々の中継装置が続きのデータを待ちつづけることがなくなる。
【００１８】
また中継装置は、受信済みデータ量応答手段を備えていてもよく、発信ファイル受信手段は、該ファイル識別子に対応するファイルが既に存在し、前記ファイル蓄積手段に該ファイルのファイル識別子と関連付けて蓄積されている発信状態が中断状態の場合は、該発信状態を中断状態でない状態に変化させ、保存されているファイルの最後尾に該データを追加して蓄積する手段を含み、送信装置の発信ファイル送信手段は、ファイルの受信済みデータ量を中継装置に問い合わせ、通知されたデータ量以降のデータを該中継装置に送信する手段をふくんでいてもよい。この場合は、発信装置は中断したファイル送信を続きのデータから再開することができ、中継装置のファイル蓄積手段に蓄積されている発信状態も中断状態ではなくなるため、受信装置もファイル受信を再開できる。中継装置の中継ファイル受信手段は、前段の中継装置からファイルの発信状態を受信し、送信中断状態でない場合には、ファイル蓄積手段の該ファイルの発信状態を中断ではない状態に変化させる手段を含む場合もある。この場合は、送信装置がファイル送信を再開したことが各中継装置に通知され、各中継装置のファイル蓄積手段に蓄積されている発信状態も中断状態ではなくなるため、各中継装置間のファイル転送も再開される。
【００１９】
また、本発明は、上記のようなファイル転送システムに用いられる中継装置としても成立する。この場合本発明は、受信装置からファイル識別子およびダウンロード済みデータ量を受け取る着信ファイル送信手段と、ファイル識別子と該ファイルのファイルデータとを対応付けて記憶し、該着信ファイル送信手段からのファイル識別子およびダウンロード済みデータ量に応じたファイルデータを該着信ファイル送信手段に渡すファイル蓄積手段とを具備し、該着信ファイル送信手段は該ダウンロード済みデータ量に応じたファイルデータを受信装置に宛てて送出することを特徴とする。
【００２０】
また、本発明は、上記のようなファイル転送システムに用いられる送信装置、受信装置としても成立する。
【００２１】
また、本発明は、ファイル転送方法としても成立する。この場合本発明はファイルの送信のリクエストを受けた場合、該ファイルを識別するためのファイル識別子を生成する第１の工程と、該ファイルのデータを送信装置から受信する前に予め送信装置からファイルサイズを受信し、ファイル識別子と関連付けて記憶する第２の工程と、該送信装置から受け取った該ファイルのファイルデータ量が前記ファイルサイズに達するまで送信装置にファイルデータの送信を要求する第３の工程と、該ファイルのデータを受信装置に送信する前に予め受信装置に該ファイル識別子と該ファイルサイズを通知する第４の工程と、受信装置における該ファイルの受信済みデータ量が該ファイルサイズに達するまで受信装置にファイルデータの送信をおこなう第５の工程とを具備することを特徴とする。
【００２２】
また更に、本発明は上記方法を実行するためのプログラムを記録したコンピュータ読み取り可能な記録媒体、更に、プログラムとしても成立する。
【００２３】
本発明の他の目的、特徴、機能、利点は、後の詳細な説明を添付の図面を参照して読むことにより、より明確になる。
【００２４】
【発明の実施の形態】
以下に、本発明にかかる実施の形態について図面を参照しながら説明する。
【００２５】
［第１の実施の形態］
本発明にかかる第１の実施の形態を以下に説明する。
【００２６】
図１は、本実施の形態におけるファイル転送システムの全体構造を示す概略ブロック図である。図示のように、ファイル転送システムは、送信装置３０と、受信装置５０と、該送信装置３０と受信装置５０とにデータ交換可能に接続された中継装置１０とを含む。なお、送信装置３０、受信装置５０、および中継装置１０のそれぞれは、ネットワークインターフェースを備えたコンピュータ上に下記に記載された実現方法に基づくプログラムを起動することによって実現される。
【００２７】
なお、本発明のプログラムは、例えばＣＤ−ＲＯＭ等に格納して配付したり、コンピュータからネットワーク経由でダウンロードすることにより配付することができる。ＣＤ−ＲＯＭに格納されたプログラムもしくはダウンロードしたプログラムをコンピュータにインストールすることにより、当該コンピュータを、本発明の送信装置、中継装置、受信装置として動作させることが可能となる。
【００２８】
送信装置１０は、ファイル発信情報送信手段３１と、発信ファイル蓄積手段３３と、発信ファイル送信手段３２とを有している。
【００２９】
該ファイル発信情報送信手段３１は、発信ファイル情報送信を表す文字列と、ファイル識別子Iと、送信するファイルのファイルサイズＬと、宛先IPアドレスＲとを含むファイル発信情報を中継装置１０に送信し、該ファイル識別子Iを受け取り、該ファイル識別子Iを発信ファイル蓄積手段３３に渡す機能を有する。
【００３０】
発信ファイル蓄積手段３３は、該ファイル識別子Iにもとづいて自らもしくは図示しない他の記憶装置に記憶されたファイルデータを読み出し、ファイル識別子Iとともにファイルデータを発信ファイル送信手段３２に渡す機能を有する。
【００３１】
発信ファイル送信手段３２は、ファイル識別子Iとともにファイルデータを前記発信ファイル蓄積手段３３より受けとり、発信ファイル送信を表す文字列とともに中継装置１０へと送信する機能を有する。
【００３２】
中継装置１０は、ファイル発信情報受信手段１１と、発信ファイル受信手段１２と、ファイル蓄積手段１３と、ファイル着信情報送信手段１４と、着信ファイル送信手段１５とを有している。
【００３３】
ファイル発信情報受信手段１１は、前記送信装置からファイルサイズＬ及び宛先アドレスＲを受け取り可能であるとともに、ファイル識別子I及びファイルパスＰを生成してファイル蓄積手段１３に提供可能である。
【００３４】
発信ファイル受信手段１２は、前記送信装置からファイル識別子I及びファイルデータＦ（ｘ）を受け取り可能であるとともに、これらをファイル蓄積手段１３に提供可能である。なお、「ｘ」は、該ファイルデータのうちすでに読み取られ中継手段に送信されたデータ量（オフセット）を表すものとする。
【００３５】
ファイル着信情報送信手段１４は、受信装置５０から送られたPOSTメソッドを受け取り可能で該受信装置のIPアドレスＲを取得可能であるとともに、該IPアドレスＲと対応付けされて登録されているファイル識別子IとファイルサイズＬの組を前記ファイル蓄積手段１３のファイルテーブルから検索し、これらを取得し、かつ該取得したファイル識別子IとファイルサイズＬの組を受信装置５０へ通知する機能を有する。
【００３６】
着信ファイル送信手段１５は、受信装置５０からファイル識別子Iおよびダウンロード済みデータ量（転送対象のファイルデータのうちすでに受信装置５０が受信済であるデータの量をいう）Ｏ＿Ｒを受け取り可能であり、該ファイル識別子Iおよびダウンロード済みデータ量Ｏ＿Ｒに応じたファイルデータＦ（Ｏ＿Ｒ）を前記ファイル蓄積手段１３から受け取り可能であり、該ファイルデータＦ（Ｏ＿Ｒ）を受信装置５０に送出する機能を有する。
【００３７】
ファイル蓄積手段１３は、ファイル発信情報受信手段から送られた前記ファイル識別子Iと前記ファイルパスＰとファイルサイズＬと宛先IPアドレスＲをそれぞれ対応付けて蓄積（記憶）し、発信ファイル受信手段から送られてくるファイルデータＦ’を該ファイルパスＰによって特定される領域に蓄積（記憶）し、ファイル着信情報送信手段１４からの宛先アドレスＲに応じて該ファイル着信情報送信手段１４にファイル識別子IおよびファイルサイズＬを渡し、着信ファイル送信手段１５からのファイル識別子Iおよびダウンロード済みデータ量Ｏ＿Ｒに応じたファイルデータＦ（Ｏ＿Ｒ）を該着信ファイル送信手段１５に渡す機能を有する。
【００３８】
受信装置５０は、ファイル着信情報受信手段５１と、着信ファイル蓄積手段５３と、着信ファイル受信手段５２とを有している。
【００３９】
ファイル着信情報受信手段５１は、中継装置５０からファイル識別子I及びファイルサイズＬを含むファイル着信情報を受け取り、該ファイル識別子Iにもとづいて該ファイルの保存先となるファイルパスＰ’を決定し、該ファイル識別子Iと、該ファイルパスＰ’、ファイルサイズＬを着信ファイル蓄積手段５３に提供する機能を有する。
【００４０】
着信ファイル蓄積手段５３は、ファイル着信情報受信手段５１からのファイル識別子Iと、該ファイルパスＰ’、およびファイルサイズＬにもとづいて着信ファイル手段５２にそのファイル識別子I、および該ファイルのダウンロード済みデータ量Ｏ＿Ｒを渡し、かつ着信ファイル受信手段５２から該ファイルデータの一部もしくは全部であるファイルデータＦ（Ｏ＿Ｒ）を受け取り、これを蓄積（記憶）する機能を有する。
【００４１】
また、着信ファイル受信手段５２は、着信ファイル蓄積手段５３からファイル識別子I、および該ファイルのダウンロード済みデータ量Ｏ＿Ｒを受け取り、これらを中継装置１０に渡し、それらに応じて該中継装置１０から返信されるファイルデータＦ（Ｏ＿Ｒ）を受けとり、これを着信ファイル蓄積手段５３に渡す機能を有する。
【００４２】
なお、中継装置１０ではHTTPサーバプロセスを起動し、あるURLに対するHTTP  POSTメソッドでCGIプログラムまたはサーブレットとして実装された中継装置プログラムが起動するようにする。該URLは予め送信装置３０と受信装置５０とに教えておく。
【００４３】
中継装置１０ではまた、リレーショナルデータベース管理システム（RDBMS）を起動し、ファイル識別子とファイルパスとファイルサイズと宛先IPアドレスの組を蓄積するためのテーブルを用意する。このデータベースのテーブルをファイルテーブルと呼ぶ。ファイルテーブルと、ファイルが実際に保存されるディスク領域がファイル蓄積手段１３となるように構成しても良い。
【００４４】
また、前記手段３１〜３３、１１〜１５、５１〜５３は物理的にそれぞれ独立した手段でなくとも良く、マイクロプロセッサ及びプログラムを記憶した記憶装置により実現されるものであってもよい。
【００４５】
つぎに、図２を参照しながら、本実施の形態における処理工程について説明する。図２は、本実施の形態における処理の流れの概略的に示すフロー図である。
【００４６】
まず、送信装置３０と中継装置１０との間で行われる処理について説明する。
送信装置３０は、予め教えられているURLに対してHTTPリクエストのPOSTメソッドのエンティティボディに、「発信ファイル情報送信」を表す文字列と、ファイル識別子Iと、送信するファイルのファイルサイズＬと、宛先IPアドレスＤとを改行で区切りながら格納し中継装置１０送信する（Ｓ１０１）。
【００４７】
HTTPサーバによって起動された中継装置プログラムによって実現されるファイル発信情報受信手段１１は、送信装置３０から受け取ったPOSTメソッドのエンティティボディの１行目が「発信ファイル情報送信」を表す文字列の場合、その文字列に続く送信するファイルのファイルサイズＬ、宛先IPアドレスＲを読み取り、該ファイルに対し時刻情報をもとにユニークな値を生成し、これをファイル識別子Iとして割り当てる（Ｓ１０２）。
【００４８】
また、該ファイル識別子Iにもとづいて該ファイルの保存先となるファイルパスＰを決定し、該ファイル識別子Iと、該ファイルパスＰ、送信装置３０から通知された前記ファイルサイズＬと宛先アドレスＲをファイル蓄積手段１３におくる（Ｓ１０３）。
【００４９】
ファイル蓄積手段１３はそのファイルテーブルにこれらを登録する（Ｓ１０４）。
【００５０】
一方、ファイル発信情報受信手段１１は、該ファイル識別子Iを表す文字列をHTTPレスポンスのエンティティボディに含めて送信装置３０に通知する（Ｓ１０５）。
【００５１】
送信装置３０は該ファイル識別子Iを表す文字列を含むHTTPレスポンスのエンティティボディを受け取ると、それから該ファイル識別子Iを読み取り、HTTPリクエストのPOSTメソッドのエンティティボディに、「発信ファイル送信」、該ファイル識別子Iを表す文字列を改行で区切って格納した後、該ファイル識別子Iに対応するファイルデータのバイナリ列を格納して中継装置３０へと送信開始する（Ｓ１０６）。
【００５２】
なお、送信装置３０の内部での処理は以下のように行われる。まず、送信装置３０のファイル発信情報送信手段３１は、該ファイル識別子Iを含むHTTPレスポンスのエンティティボディから受けとり、それから該ファイル識別子Iを読み取り、該ファイル識別子Iを発信ファイル蓄積手段３３に渡す。発信ファイル蓄積手段３３は、該ファイル識別子IにもとづいてファイルデータＦ（ｘ）を読み出す。これらを発信ファイル送信手段３２に渡す。発信ファイル送信手段３２はHTTPリクエストのPOSTメソッドのエンティティボディに、「発信ファイル送信」を表す文字列、該ファイル識別子Iを改行で区切って格納した後、該「ファイルデータ」のバイナリ列を格納して中継装置１０へと送信開始する。
【００５３】
HTTPサーバによって起動された中継装置プログラムによって実現される中継装置１０において、POSTメソッドのエンティティボディの１行目が「発信ファイル送信」を表す文字列の場合、発信ファイル受信手段１２は、それに続くファイル識別子Iを読み取り、ファイル蓄積手段１３に記憶されたファイルテーブルから該ファイル識別子に対応付けられて登録されているファイルパスＰを取得する。更に、該エンティティボディに続けて格納されてきた「ファイルデータ」を読み取り、該ファイルパスＰによって特定されるファイル蓄積手段１３の領域に蓄積開始される（Ｓ１０７）。ファイルデータのすべてがファイル蓄積手段１３に蓄積されるまで、同様にファイルデータの保存が続けられる（Ｓ１０８）。
【００５４】
ファイルデータのすべてがファイル蓄積手段１３に蓄積されると、中継装置１０はデータ保存完了を発信装置３０に通知し（Ｓｌ１９、Ｓ１２０）、該通知に応じて送信装置３０はファイル転送処理を終了する。
【００５５】
つぎに、受信装置５０と中継装置１０との間で行われる処理について説明する。
【００５６】
受信装置５０は、HTTPリクエストのPOSTメソッドのエンティティボディに、「着信ファイル情報要求」を表す文字列を格納し、予め教えられているURLを宛て先として中継装置１０に送信する（Ｓ１０９）。
【００５７】
HTTPサーバによって起動された中継装置プログラムによって実現される中継装置１０において、ファイル着信情報送信手段１４は、受信装置５０から送られたPOSTメソッドのエンティティボディの１行目が「着信ファイル情報要求」を表す文字列の場合、HTTPによって通知されるHTTPクライアントのIPアドレスＲを取得し、該IPアドレスＲと組で登録されているファイル識別子IとファイルサイズＬの組を前記ファイル蓄積手段１３のファイルテーブルから検索し（Ｓ１１０）、これらを取得する（Ｓ１１１）。そして、ファイル着信情報送信手段１４は、該受信装置５０に対するHTTPレスポンスのエンティティボディに該ファイル識別子Iと該ファイルサイズＬの組を改行で区切りながら格納し、該受信装置５０にそのHTTPレスポンスを返送する（Ｓ１１２）。
【００５８】
受信装置５０は該HTTPレスポンスのエンティティボディからファイル識別子IとファイルサイズＬの組を読み取り、該ファイル識別子Iに対応付けて、該ファイルの保存先となるファイルパスＰ’を決定し、該ファイル識別子I、該ファイルサイズＬ、該ファイルパスＰ’を含むファイル情報として保存する（Ｓ１１３）。該ファイル情報は、たとえばこれらを要素として持つ構造体の配列として記憶されても良い。また、該ファイル情報はそのファイルについての受信済みデータ量Ｏ＿Ｒ（初回は０）を含んでいても良い。。
【００５９】
次に受信装置５０は、該ファイル識別子Iについて、「着信ファイル要求」、該ファイル識別子I、受信済みデータ量Ｏ＿Ｒ（初回は０）を表す文字列を改行で区切ってPOSTメソッドのエンティティボディに格納して、これを中継装置１０へ送信する（Ｓ１１４）。
【００６０】
つぎに、HTTPサーバによって起動された中継装置プログラムによって実現させる中継装置１０は、POSTメソッドのエンティティボディの１行目が「着信ファイル要求」を表す文字列の場合、それに続いて格納されているファイル識別子I、受信済みデータ量Ｏ＿Ｒを読み取り、前記ファイル蓄積手段１３のファイルテーブルから該ファイル識別子Iと組で登録されているファイルパスＰを取得し、該ファイルパスＰに対応するファイルの該受信済みデータ量Ｏ＿Ｒ以降のファイルデータをファイル記憶手段１３から読み出し（Ｓ１１６）、これをHTTPレスポンスのエンティティボディに格納して受信装置５０に返信する（Ｓ１１７）。
【００６１】
該HTTPレスポンスを受け取った受信装置５０は、保存されているファイル情報から該ファイルのファイルパスＰ’を取得し、該ファイルパスＰ’に蓄積されているファイルデータの続きに該HTTPレスポンスのエンティティボディの内容（該受信済みデータ量Ｏ＿Ｒ以降のファイルデータ）を付け加えて蓄積する（Ｓ１１８）。
【００６２】
上記のＳ１１４からＳ１１８までの処理工程が、受信済みデータ量Ｏ＿ＲがファイルサイズＬに達するまで繰り返される（Ｌ１）。
【００６３】
また、受信装置５０の受信速度が送信装置３０の送信速度を上回り、送信装置３０が全てのデータを送信完了する前に、中継装置１０に蓄積済みのファイルデータを受信装置５０が受信完了した場合は、受信装置５０は受信済みデータ量Ｏ＿Ｒが該ファイルサイズＬに達するまで繰り返し中継装置１０に残りのデータを要求する（Ｓ１１４、Ｌ１）。
【００６４】
なお、上記の説明においては、一つの受信装置へファイルが転送される場合を例としてあげたが、本発明ではファイルを複数の受信装置へ転送する場合（マルチキャスト）にも適用可能である。この場合には、送信装置３０から宛て先アドレスＲの代わりに、該複数の受信装置のアドレスＲ１〜ＲＮからなる宛先アドレス群Ｄを中継装置１０に送信し、中継装置１０は該アドレス群Ｄに含まれるアドレスＲ１〜ＲＮのそれぞれについてファイル識別子Ｉと、ファイルパスＰ、ファイルサイズＬを対応付けてファイルテーブルに記憶させるようにすればよい。
また、送信装置３０のファイル発信情報送信手段３１が、転送すべきファイルに対してファイル識別子を割り当て、この割り当てられたファイル識別子をファイル発信情報に含め、中継装置１０のファイル発信情報受信手段１１は、ファイル識別子を割り当てる代わりに、ファイル発信情報に含まれているファイル識別子を取得してもよい。
【００６５】
［第２の実施の形態］
以下に、本発明にかかる第２の実施の形態について説明する。本実施の形態は、複数の中継装置を介して送信装置から受信装置へファイルが転送される点が、第１の実施の形態と異なる。
【００６６】
本実施の形態において、送信装置３０、受信装置５０、中継装置１０’は前記第１の実施の形態の送信装置３０、受信装置５０、中継装置１０と基本的に同一であるが、第２の実施の形態においては、送信装置と受信装置の間に中継装置が複数配置されており、各々の中継装置には、IPアドレスのネットワーク部と転送先中継装置のURLの組を蓄積するためのデータベースのテーブルを有する転送先決定手段１６が設けられている点が異なる。このテーブルを「ルーティングテーブル」と呼ぶ。ルーティングテーブルにおいて、IPアドレスのネットワーク部を入れるべきフィールドに「default」の文字が格納されている場合は、ルーティングテーブルの他の行のどのIPアドレスのネットワーク部にも相当しないアドレスを意味する。転送先中継装置のURLを入れるべきフィールドに「local」の文字が格納されている場合は、他の中継装置への転送が不要であることを表す。
【００６７】
図３は、本実施の形態におけるファイル転送システムの全体構造を示す概略ブロック図である。
【００６８】
送信装置３０と受信装置５０とは、中継装置１０’Ａ、１０’Ｂ、１０’Ｃを順に介してデータ送信可能に接続されている。中継装置１０’Ａ、１０’Ｂ、１０’Ｃの構成は共通であるので、中継装置１０’Ａを代表として説明する。中継装置１０’Ａはファイル発信情報受信手段１１Ａと、発信ファイル受信手段１２Ａと、ファイル蓄積手段１３Ａと、ファイル着信情報送信手段１４Ａと、着信ファイル送信手段１５Ａとを有している。これらは第１の実施例における中継装置１０の対応する手段と同一である。中継装置１０’Ａは更に、転送先決定手段１６Ａと、ファイル中継情報送信手段１７Ａと、中継ファイル送信手段１８Ａと、ファイル中継情報受信手段１９Ａと、中継ファイル受信手段２０Ａとを更に有している。
【００６９】
転送先決定手段１６Ａは、IPアドレスのネットワーク部と転送先中継装置のURLの組を蓄積するためのルーティングテーブルを備えており、ファイル中継情報送信手段１７Ａから宛て先アドレスを受け取るとそれに対応した転送先中継装置のURLをファイル中継情報送信手段１７Ａに返す機能を有する。
【００７０】
ファイル中継情報送信手段１７Ａは、ファイル蓄積手段１３Ａからファイル識別子I、ファイルサイズＬ、宛て先アドレスＲを受け取り、転送先決定手段に宛て先アドレスＲを渡してこれに対応する転送先中継装置のURLをうけとり、該URLに対してファイル中継情報を送る機能を有する。
【００７１】
中継ファイル送信手段１８Ａは、次段の中継装置からファイル識別子Iと受信済みデータ量（中継装置１０’ＡにおいてはＯ＿Ｍ）を受け取り、これをファイル蓄積手段１３Ａに渡し、ファイル蓄積手段１３Ａから送られてくるファイルデータＦ（Ｏ＿Ｍ）を受け取り、これを次段の中継装置に送る機能を有する。
【００７２】
ファイル中継情報受信手段１９Ａは、前段の中継装置からファイル中継情報を受け取り、該情報中のファイル識別子にもとづいて、ファイルパスＰＡを生成し、これを該ファイル中継情報とともにファイル蓄積手段１３Ａに渡す機能を有する。  中継ファイル受信手段２０Ａは、前段の中継装置から送られてくるファイルデータを受け取りこれをファイル蓄積手段１３Ａに渡し、かつファイル蓄積手段からファイル識別子、前段の中継装置における該ファイルデータの受信済みデータ量を受け取り、これらを前段の中継装置に渡す機能を有する。
【００７３】
つぎに、図４を参照しながら、本実施の形態における処理工程について説明する。図４は、本実施の形態における処理の流れの概略的に示すフロー図である。
【００７４】
送信装置１０は送信するファイルのファイルサイズと宛先IPアドレスを最寄りの中継装置１０’Ａに前記第１の実施の形態と同様の方法で通知する（Ｓ２０１〜Ｓ２０４）。
【００７５】
該中継装置１０’Ａは該ファイルに対し、時刻情報と該中継装置１０’ＡのIPアドレスＲをもとにユニークな値をファイル識別子Iとして割り当て、第１の実施の形態と同様の方法で、該ファイル識別子IとファイルサイズＬと宛先IPアドレスＲとをファイル蓄積手段１３Ａに登録し、該ファイル識別子Iを送信装置３０に通知する（Ｓ２０４）。
【００７６】
また該中継装置１０’Ａは、宛先IPアドレスＲをルーティングテーブル１６Ａのネットワーク部と照らし合わせ、マッチした場合には該当する転送先中継装置１０’ＢのURL「Ｍ」を取得する（Ｓ２０５）。
【００７７】
次に、中継装置１０’Ａは該URL「Ｍ」に対してHTTPリクエストのPOSTメソッドのエンティティボディに、「中継ファイル情報送信」、該ファイル識別子I、該ファイルサイズＬ、該中継装置１０’Ｂを経由する宛先IPアドレスＲを表す文字列を改行で区切りながら格納した中継ファイル情報を送信する（Ｓ２０６）。
【００７８】
HTTPリクエストのPOSTメソッドを受け取った中継装置１０’Ｂにおいて、該HTTPサーバによって起動された中継装置プログラムは、POSTメソッドのエンティティボディの１行目が「中継ファイル情報送信」を表す文字列の場合、それに続くファイル識別子I、ファイルサイズＬ、宛先IPアドレスＲを読み取る。また該ファイル識別子をもとに該ファイルの保存先となるファイルパスＰＢを決定し、ファイル蓄積手段１３Ｂ（より詳しくはそのファイルテーブル）に該ファイル識別子Iと、該ファイルパスＰＢ、該ファイルサイズＬと該宛先アドレスＲを登録する。更に宛先IPアドレスＲをルーティングテーブル１６Ｂのネットワーク部と照らし合わせ、マッチした場合には該当する転送先中継装置１０’ＣのURL「Ｎ」を取得する（Ｓ２０７）。
【００７９】
次に、中継装置１０’Ｂは、該URL「Ｎ」に対してHTTPリクエストのPOSTメソッドのエンティティボディに、「中継ファイル情報」、該ファイル識別子I、該ファイルサイズＬ、該中継装置１０’Ｃを経由する宛先IPアドレスＲを表す文字列を改行で区切りながら格納した中継ファイル情報を送信する（Ｓ２０８）。
【００８０】
このようにしてファイル情報は、最終的には宛先アドレスＲを担当する、受信装置５０の最寄り中継装置１０’Ｃに到達する。
【００８１】
一方、送信装置３０は、該ファイル識別子Iと関連付けて該ファイルの内容データ（以下、「ファイルデータ」という）を第１の実施の形態と同様の方法で、最寄り中継装置１０’Ａへと送信開始する（Ｓ２０９）。
【００８２】
中継装置１０’Ａは送られてきた「ファイルデータ」を読み取り、ファイルパスＰＡによって特定されるファイル蓄積手段１３Ａの領域に蓄積開始し、ファイルデータのすべてがファイル蓄積手段１３Ａに蓄積されるまで、同様にファイルデータの保存が続けられる。ファイルデータのすべてがファイル蓄積手段１３Ａに蓄積されると、中継装置１０’Ａはデータ保存完了を送信装置３０に通知し（Ｓ２１１）、該通知に応じて発信装置３０はファイル転送処理を終了する。
【００８３】
送信装置の最寄り中継装置をのぞく他の中継装置１０’Ｂ、１０’Ｃは、「中継ファイル情報」を受信すると、POSTメソッドのエンティティボディに、「中継ファイル要求」、該ファイル識別子Ｉ，受信済みデータ量Ｏ＿Ｍ，Ｏ＿Ｎ（初回は０）を表す文字列を改行で区切って格納して前段の中継装置１０’Ａ，１０’Ｂへそれぞれ送信する（Ｓ２１２，Ｓ２１３）。
【００８４】
上記の中継ファイル要求に応答して、HTTPサーバによって起動された該前段の中継装置１０’Ａ，１０’Ｂの中継装置プログラムは、POSTメソッドのエンティティボディの１行目が「中継ファイル要求」を表す文字列の場合、それに続いて格納されているファイル識別子I、受信済みデータ量Ｏ＿Ｍ，Ｏ＿Ｎを読み取り、それぞれのファイル蓄積手段１３Ａ、１３Ｂのファイルテーブルから該ファイル識別子Iと対応付けされて登録されているファイルパスＰＡ，ＰＢを取得し、該ファイルパスＰＡ、ＰＢのファイルの該受信済みデータ量Ｏ＿Ｍ，Ｏ＿Ｎ以降のファイルデータを、HTTPレスポンスのエンティティボディに格納し（Ｓ２１４，Ｓ２１５）、それぞれ次段の中継装置１０’Ｂ、１０’Ｃに返信する（Ｓ２１６，Ｓ２１７）。
【００８５】
送信装置３０の最寄り中継装置１０’Ａをのぞく他の中継装置１０’Ｂ，１０’Ｃは、前段に蓄積済みのファイルデータを受信した場合前段の中継装置に残りのファイルデータを要求し、これに応答して中継装置１０’Ａ，１０’Ｂがそれぞれファイルデータを次段の中継装置１０’Ｂ−１０’Ｃに送信する（Ｌ２、Ｌ３）ことがその受信済みデータ量Ｏ＿Ｍ，Ｏ＿Ｎが予めファイル中継情報によって通知されているファイルサイズＬに達するまで繰り返される。
【００８６】
一方、受信装置５０は第１の実施の形態と同様の方法で、最寄りの中継装置１０’Ｃに該宛先アドレスＲ宛の新着ファイル情報を問い合わせ（Ｓ２１８）、これに応答して中継装置１０’Ｃは該ファイル識別子Iと該ファイルサイズＬを受信装置５０に送る（Ｓ２１９）。受信装置５０は、これらをファイル情報として登録する（Ｓ２２０）とともに、該ファイル識別子Iに関連付けられて蓄積されているファイルデータの転送を該中継装置１０’Ｃに要求し（Ｓ２２１）、これに応答して該中継装置１０’Ｃはファイルデータを受信装置５０に送る（Ｓ２２２）。
【００８７】
受信装置５０が中継装置１０’Ｃに蓄積済みのデータを受信完了しても受信済みデータ量Ｏ＿Ｒが該ファイルサイズＬに満たない場合は、受信装置５０は受信済みデータ量Ｏ＿Ｒが該ファイルサイズＬに達するまで繰り返し最寄り中継装置１０’Ｃに残りのファイルデータを要求する（Ｌ１）。
【００８８】
なお、上記の説明においては、一つの受信装置へファイルが転送される場合を例としてあげたが、本発明ではファイルを複数の受信装置へ転送する場合（マルチキャスト）にも適用可能である。この場合には、送信装置３０から宛て先アドレスＲの代わりに、該複数の受信装置のアドレスＲ１〜ＲＮからなる宛先アドレス群Ｄを中継装置１０’に送信し、中継装置１０’は該アドレス群Ｄに含まれるアドレスＲ１〜ＲＮのそれぞれについてファイル識別子Iと、ファイルパスＰ、ファイルサイズＬを対応付けてファイルテーブルに記憶させるようにすればよい。
【００８９】
本実施の形態にかかるファイル転送システムでは、送信装置と受信装置の間に複数の中継装置を置くことができる。送信装置と受信装置がネットワーク的に遠い場合でも、送信装置は最寄りの中継装置にファイルを送信し、受信装置は最寄りの中継装置からファイルを受信することで、送信に要する時間と受信に要する時間を短縮できる。
【００９０】
［第３の実施の形態］
つぎに、第３の実施の形態について説明する。
【００９１】
図５は、本実施の形態におけるファイル転送システムの全体構造を示す概略ブロック図である。第３の実施の形態では、送信装置３０、受信装置５０、中継装置１０’’は第１の実施の形態の送信装置３０、受信装置５０、中継装置１０と基本的に同様であるが、以下に述べる点が異なる。すなわち、本実施の形態では、中継装置１０’’のファイル蓄積手段１３’のファイルテーブルにファイルの発信中断を記録するフィールド（以下、「発信中断フィールド」という）が追加され、送信装置３０がファイル送信を中断すると、該「発信中断フィールド」に発信状態を示すデータ、例えば「真」を示す値もしくは文字列が記録され、中断されていない間は「偽」を示す値もしくは文字列が記録される。また、送信装置３０にアップロード済みデータ量（送信対象のファイルデータのうち送信装置から中継装置に送信済みであるファイルデータのデータ量をいう）を送るための受信済みデータ量応答手段２１を更に具備している。
【００９２】
つぎに、図６を参照しながら、本実施の形態における処理工程について説明する。図６は、本実施の形態における処理の流れの概略的に示すフロー図である。
【００９３】
本実施の形態において、送信装置３０から中継装置１０’’へ発信ファイル情報送信を送信し、これに応じて中継装置１０’’からファイル識別子が送信装置３０へ送られるまでの一連の処理、および受信装置５０から中継装置１０’’へ着信ファイル情報要求がなされ、これに応じて中継装置１０’’が受信装置５０に着信ファイル情報としてファイル識別子、ファイルサイズをおくり、受信装置５０はこれらをファイル情報として保存するまでの一連の処理は、第１の実施の形態の処理を示す図２中の破線で囲まれた部分ＰＲと同一である。
【００９４】
送信装置３０がファイル送信を中断する（Ｓ３０１）と、該発信中断状態のフィールドに発信中断状態を示す「真」を示す値が記録される（Ｓ３０２，３０３）。
【００９５】
一方、HTTPサーバによって起動された中継装置プログラムにより実現される中継装置１０’’は、受信装置５０から着信ファイル情報要求（HTTPリクエストのPOSTメソッド）を受け取り（Ｓ３０４）、そのエンティティボディの１行目が「着信ファイル要求」を表す文字列の場合、該エンティティボディ中に格納されているファイル識別子I、受信済みデータ量Ｏ＿Ｒを読み取り（Ｓ３０５）、またファイル蓄積手段１３のファイルテーブルから該ファイル識別子Iと組で登録されている発信状態ＺとファイルパスＰを取得し（Ｓ３０６）、HTTPレスポンスのエンティティボディに該発信中断状態の値を格納してこれを受信装置５０に送る（Ｓ３０７）。
【００９６】
上記の処理工程が、受信済みデータ量Ｏ＿ＲがファイルサイズＬに達するまで繰り返される（Ｌ４）。
【００９７】
該HTTPレスポンスを受け取った受信装置５０は、ファイル情報を登録する（Ｓ３０８）とともに、エンティティボディの１行目から発信中断状態の値Ｚを読み取り、この値が「真」であった場合は受信を中断する。「偽」であった場合は、更に中継装置１０’’に着信ファイル要求を発する（Ｓ３１６）。中継装置１０’’は、POSTメソッドのエンティティボディの１行目が「着信ファイル要求」を表す文字列の場合、それに続いて格納されているファイル識別子I、受信済みデータ量Ｏ＿Ｒを読み取り、前記ファイル蓄積手段１３のファイルテーブルから該ファイル識別子Iと組で登録されているファイルパスＰを取得し（Ｓ３１７）、該ファイルパスＰに対応するファイルの該受信済みデータ量Ｏ＿Ｒ以降のファイルデータをファイル記憶手段１３’から読み出し（Ｓ３１８）、これをHTTPレスポンスのエンティティボディに格納して受信装置５０に返信する（Ｓ３１９）。
【００９８】
該HTTPレスポンスを受け取った受信装置５０は、保存されているファイル情報から該ファイルのファイルパスＰ’を取得し、該ファイルパスＰ’に蓄積されているファイルデータの続きに該HTTPレスポンスのエンティティボディの内容（該受信済みデータ量Ｏ＿Ｒ以降のファイルデータＦ（Ｏ＿Ｒ））を付け加えて蓄積する（Ｓ３２０）。
【００９９】
上記の処理工程が、受信済みデータ量Ｏ＿ＲがファイルサイズＬに達するまで繰り返される（Ｌ５）。
【０１００】
一方、送信装置３０はファイル送信を再開する際、HTTPリクエストのPOSTメソッドのエンティティボディに、蓄積済みデータ量Ｏ＿Ｓ、該ファイル識別子Iを表す文字列を改行で区切って格納し、中継装置１０’’へ送信する（Ｓ３０９）。
【０１０１】
HTTPサーバによって起動された中継装置プログラムによって実現される中継装置１０’’は、POSTメソッドのエンティティボディの１行目が「蓄積済みデータ量」を表す文字列の場合、続くファイル識別子Iを読み取り（Ｓ３１０）、ファイルテーブルから該ファイル識別子と組で登録されているファイルパスＰを取得し（Ｓ３１１）、該ファイルパスＰに蓄積されているデータ量をHTTPレスポンスのエンティティボディに格納し、該送信装置３０に返信する（Ｓ３１２）。
【０１０２】
送信装置３０は、中継装置１０’’からのHTTPレスポンスのエンティティボディから蓄積済みデータ量Ｏ＿Ｓを読み取り、HTTPリクエストのPOSTメソッドのエンティティボディに、「発信ファイル」、該ファイル識別子Iを表す文字列を改行で区切って格納した後、該「ファイルデータ」の該「蓄積済みデータ量」以降のファイルデータ（たとえばバイナリ列）Ｆ（Ｏ＿Ｓ）を格納して中継装置１０’’へと送信開始する（Ｓ３１３）。
【０１０３】
HTTPサーバによって起動された中継装置プログラムによる中継装置１０’’は、POSTメソッドのエンティティボディの１行目が「発信ファイル」を表す文字列の場合、続く「ファイル識別子」を読み取り、ファイルテーブルから該「ファイル識別子」と組で登録されているファイルパスを取得し、エンティティボディに続けて格納されてきた「ファイルデータ」を読み取り、該ファイルパスに蓄積されているデータの最後尾に続けて蓄積開始する（Ｓ３１４）。また、該発信中断状態の値Ｚを「偽」に変更する（Ｓ３１５）。
【０１０４】
ファイルデータのすべてがファイル蓄積手段１３に蓄積される（アップロード済ファイルデータ量Ｏ＿ＳがファイルサイズＬに達する）と、中継装置１０’’はデータ保存完了を発信装置３０に通知し（Ｓ３２１、Ｓ３２２）、該通知に応じて送信装置３０はファイル転送処理を終了する。
【０１０５】
なお、上記の説明においては、一つの受信装置へファイルが転送される場合を例としてあげたが、本発明ではファイルを複数の受信装置へ転送する場合（マルチキャスト）にも適用可能である。この場合には、送信装置３０から宛て先アドレスＲの代わりに、該複数の受信装置のアドレスＲ１〜ＲＮからなる宛先アドレス群Ｄを中継装置１０’’に送信し、中継装置１０’’は該アドレス群Ｄに含まれるアドレスＲ１〜ＲＮのそれぞれについてファイル識別子Iと、ファイルパスＰ、ファイルサイズＬを対応付けてファイルテーブルに記憶させるようにすればよい。
【０１０６】
本実施の形態にかかるファイル転送システムでは、中継装置はファイルの発信状態を記録し、それを受信装置に伝達する手段を持つため、送信装置が途中で送信を中断した場合には、並行して受信動作を行っている受信装置も送信が中断されたことを認識し、ファイルサイズに達していなくても受信動作を中断することができる。また、中継装置は送信装置の問い合わせに対し蓄積済みファイルデータ量を応答する手段を持つため、送信装置は中断したファイル送信を続きから再開することができる。受信装置は受信済みデータ量を中継装置に通知し、続きのデータを中継装置より受信する手段を持つため、中断したファイル受信を続きから再開することができる。
【０１０７】
［第４の実施の形態］
本発明にかかる第４の実施の形態について以下に説明する。
【０１０８】
本実施の形態において、送信装置、受信装置、中継装置は第２の実施の形態の送信装置、受信装置、中継装置が備える特徴を全て備えるが、中継装置１０’’’，Ａ，１０’’’Ｂ，１０’’’Ｃのそれぞれは，前述の第３の実施の形態において述べた受信済みデータ量応答手段２１を備えている点で異なっている。
【０１０９】
その他の構成については第２の実施の形態の場合と同様である。
【０１１０】
つぎに、図８を参照しながら、本実施の形態における処理工程について説明する。図８は、本実施の形態における処理の流れの概略的に示すフロー図である。
【０１１１】
送信装置３０は送信するファイルのファイルサイズと宛先IPアドレスを最寄りの中継装置１０’’’Ａに前記第１の実施の形態と同様の方法で通知する（Ｓ４０１）。
【０１１２】
該中継装置１０’’’Ａは該ファイルに対し、時刻情報と該中継装置１０’’’ＡのIPアドレスＰをもとにユニークな値をファイル識別子Iとして割り当て（Ｓ４０２）、第１の実施の形態と同様の方法で、該ファイル識別子IとファイルサイズＬと宛先IPアドレスＲとをファイル蓄積手段１３’Ａに登録し（Ｓ４０３）、該ファイル識別子Iを送信装置３０に通知する（Ｓ４０４）。
【０１１３】
また該中継装置１０’Ａは、宛先IPアドレスＲを転送先決定手段（ルーティングテーブル）１６Ａのネットワーク部と照らし合わせ、マッチした場合には該当する転送先中継装置１０’’’ＢのURL「Ｍ」を取得する（Ｓ４０５）。
【０１１４】
次に、中継装置１０’’’Ａは該URL「Ｍ」に対してHTTPリクエストのPOSTメソッドのエンティティボディに、「中継ファイル情報送信」、該ファイル識別子I、該ファイルサイズＬ、該中継装置１０’’’Ｂを経由する宛先IPアドレスＲを表す文字列を改行で区切りながら格納した中継ファイル情報を送信する（Ｓ４０６）。
【０１１５】
HTTPリクエストのPOSTメソッドを受け取った中継装置１０’’’Ｂにおいて、該HTTPサーバによって起動された中継装置プログラムは、POSTメソッドのエンティティボディの１行目が「中継ファイル情報送信」を表す文字列の場合、それに読くファイル識別子I、ファイルサイズＬ、宛先IPアドレスＲを読み取る。また該ファイル識別子をもとに該ファイルの保存先となるファイルパスＰＢを決定し、ファイル蓄積手段１３’Ｂ（より詳しくはそのファイルテーブル）に該ファイル識別子Iと、該ファイルパスＰＢ、該ファイルサイズＬと該宛先アドレスＲを登録する。更に宛先IPアドレスＲを転送先決定手段（ルーティングテーブル）１６Ｂのネットワーク部と照らし合わせ、マッチした場合には該当する転送先中継装置１０’’’ＣのURL「Ｎ」を取得し、該URL「Ｎ」に対してHTTPリクエストのPOSTメソッドのエンティティボディに、「中継ファイル情報」、該ファイル識別子I、該ファイルサイズＬ、該中継装置１０’’’Ｃを経由する宛先IPアドレスＲを表す文字列を改行で区切りながら格納した中継ファイル情報を送信する（Ｓ４０７）。
【０１１６】
このようにしてファイル情報は、最終的には宛先アドレスＲを担当する、受信装置５０の最寄り中継装置１０’’’Ｃに到達する。
【０１１７】
一方、送信装置３０は、「発信ファイル送信」を表す文字列と該ファイル識別子Iと、該ファイルの内容データをPOSTメソッドのエンティティボディに格納して、最寄り中継装置１０’’’Ａへと送信開始する（Ｓ４０８）。
【０１１８】
中継装置１０’’’Ａは、POSTメソッドのエンティティボディの１行目が「発信ファイル送信」を表す文字列の場合、続くファイル識別子Iを読み取り、ルーティングテーブルを検索し、ファイルの転送が必要か否か判断する。転送が必要な場合は、転送すべき次段の中継装置のURLを取得し、HTTPリクエストのPOSTメソッドのエンティティボディに、「中継ファイル到着」を表す文字列と、該ファイル識別子Iを改行で区切って格納し、次段の中継装置１０’’’Ｂに送信する（Ｓ４０９）。
【０１１９】
なお、中継装置１０’’’Ａは送られてきた「ファイルデータ」を読み取り、ファイルパスＰＡによって特定されるファイル蓄積手段１３’Ａの領域に蓄積開始し、受信済みデータ量Ｏ＿ＳがファイルサイズＬに達するまでファイル蓄積手段１３Ａに蓄積されるまで、同様にファイルデータの保存が続けられる。ファイルデータのすべてがファイル蓄積手段１３’Ａに蓄積されると、中継装置１０’’’Ａはデータ保存完了を送信装置３０に通知し（Ｓ４９９）、該通知に応じて送信装置３０はファイル転送処理を終了する。
【０１２０】
中継装置１０’’’Ｂは、「中継ファイル到着」を表す文字列を含むHTTPリクエストを受け取ると、HTTPリクエストのPOSTメソッドのエンティティボディに、「中継ファイル到着」を表す文字列と、該ファイル識別子Iを改行で区切って格納し、次段の中継装置１０’’’Ｃに送信する（Ｓ４１０）。
【０１２１】
中継装置１０’’’Ｂと１０’’’Ｃ、は、「中継ファイル到着」をふくむリクエストを受信すると、POSTメソッドのエンティティボディに、「中継ファイル要求」、該ファイル識別子I，受信済みデータ量Ｏ＿Ｍ，Ｏ＿Ｎ（初回は０）を表す文字列を改行で区切って格納して前段の中継装置１０’’’Ａ，１０’’’Ｂへそれぞれ送信する（Ｓ４１１，Ｓ４１２）。なお、前記第２の実施の形態では、送信装置３０の最寄り中継装置１０Ａをのぞく他の中継装置１０Ｂ，１０Ｃは、「中継ファイル情報」を受信すると、POSTメソッドのエンティティボディに「中継ファイル要求」、該ファイル識別子I、受信済みデータ量（初回は０）を表す文字列を改行で区切って格納して前段の中継装置へ送信したが、第４の実施の形態では、中継ファイル情報受信後のタイミングでは「中継ファイル要求」を行わず、「中継ファイル到着」の通知を待って「中継ファイル要求」を行う。
【０１２２】
上記の中継ファイル要求に応答して、各前段の中継装置１０’’’Ａ，１０’’’Ｂの中継装置プログラムは、受け取ったPOSTメソッドのエンティティボディの１行目が「中継ファイル要求」を表す文字列の場合、それに続いて格納されているファイル識別子I、受信済みデータ量Ｏ＿Ｍ，Ｏ＿Ｎを読み取り、それぞれのファイル蓄積手段１３’Ａ、１３’Ｂのファイルテーブルから該ファイル識別子Iと対応付けされて登録されているファイルパスＰＡ、ＰＢを取得し、該ファイルパスＰＡ，ＰＢのファイルの該受信済みデータ量Ｏ＿Ｍ，Ｏ＿Ｎ以降のファイルデータと、発信中断状態を示す値ＺをHTTPレスポンスのエンティティボディに格納し、それぞれ次段の中継装置１０’’’Ｂ、１０’’’Ｃに返信する（Ｓ４１３、Ｓ４１４）。
【０１２３】
該HTTPレスポンスを受け取った中継装置１０’’’Ｂ、１０’’’Ｃは、「発信中断状態を示す値Ｚが「真」であった場合は受信を中断し、「偽」であった場合はファイル蓄積手段１３’Ｂ，１３’Ｃ上に保存されている該ファイルのファイルパスＰＢ，ＰＣを取得し、該ファイルパスに蓄積されているデータの続きに該HTTPレスポンスのエンティティボディの続きの内容（該ファイルデータの残部）を蓄積する。
【０１２４】
中継装置１０’’’Ｂ、１０’’’Ｃにおいて、受信済みデータ量Ｏ＿Ｍ，Ｏ＿Ｎが予めファイル中継情報によって通知されているファイルサイズＬに達するか、あるいは発信中断状態を示す値Ｚが「真」になるまで、中継ファイル要求とそれに応じたファイルデータの送信が繰り返される（Ｌ６、Ｌ７）。
【０１２５】
一方、受信装置５０は第１の実施の形態と同様の方法で、最寄りの中継装置１０’’’Ｃに該宛先アドレスＲ宛の新着ファイル情報を問い合わせ（Ｓ４１６）、これに応答して中継装置１０’’’Ｃは該ファイル識別子Iと該ファイルサイズＬを受信装置５０に送る（Ｓ４１７）。
【０１２６】
受信装置５０は、該ファイル識別子Iと対応付けされて登録されているファイルパスを取得し、該ファイルパスに対応する該受信済みデータ量Ｏ＿Ｒを取得し、POSTメソッドのエンティティボディに、「着信ファイル要求」、該ファイル識別子I、受信済みデータ量Ｏ＿Ｒ（初回は０）を表す文字列を改行で区切って格納して中継装置１０’’’Ｃへ送信する（Ｓ４１９）。
【０１２７】
上記の着信ファイル要求に応答して、中継装置１０’’’Ｃは、受け取ったPOSTメソッドのエンティティボディの１行目が「中継ファイル要求」を表す文字列の場合、それに続いて格納されているファイル識別子I、受信済みデータ量Ｏ＿Ｒ，を読み取り、ファイル蓄積手段１３’Ｃのファイルテーブルから該ファイル識別子Iと対応付けされて登録されているファイルパスＰＣを取得し、該ファイルパスＰＣのファイルの該受信済みデータ量Ｏ＿Ｒ以降のファイルデータと、発信中断状態を示す値ＺをHTTPレスポンスのエンティティボディに格納し、受信装置５０に返信する（Ｓ４２０）。
【０１２８】
該HTTPレスポンスを受け取った受信装置５０は、発信中断状態を示す値Ｚが「真」であった場合は受信を中断し、「偽」であった場合は着信ファイル蓄積手段５３上に保存されている該ファイルのファイルパスを取得し、該ファイルパスに蓄積されているデータの続きに該HTTPレスポンスのエンティティボディの続きの内容（該ファイルデータの残部）を蓄積する。
【０１２９】
受信装置５０において、受信済みデータ量Ｏ＿Ｒが予め通知されているファイルサイズＬに達するか、あるいは発信中断状態を示す値Ｚが「真」になるまで、着信ファイル要求とそれに応じたファイルデータの送信が繰り返される（Ｌ８）一方、送信装置３０はファイル送信を再開する際、HTTPリクエストのPOSTメソッドのエンティティボディに、蓄積済みデータ量Ｏ＿Ｓ、該ファイル識別子Iを表す文字列を改行で区切って格納し、中継装置１０’’’Ａへ送信する（Ｓ４１２）。
【０１３０】
中継装置１０’’’Ａは、POSTメソッドのエンティティボディの１行目が「蓄積済みデータ量」を表す文字列の場合、続くファイル識別子Iを読み取り、ファイルテーブルから該ファイル識別子と組で登録されているファイルパスＰＡを取得し、該ファイルパスＰＡに蓄積されているデータ量をHTTPレスポンスのエンティティボディに格納し、該送信装置３０に返信する。
【０１３１】
送信装置３０は、中継装置１０’’’ＡからのHTTPレスポンスのエンティティボディから蓄積済みデータ量Ｏ＿Ｓを読み取り、HTTPリクエストのPOSTメソッドのエンティティボディに、「発信ファイル」、該ファイル識別子Iを表す文字列を改行で区切って格納した後、該「ファイルデータ」の該「蓄積済みデータ量」以降のファイルデータ（たとえばバイナリ列）Ｆ（Ｏ＿Ｓ）を格納して中継装置１０’’へと送信開始する。
【０１３２】
中継装置１０’’’Ａは、POSTメソッドのエンティティボディの１行目が「発信ファイル」を表す文字列の場合、続くファイル識別子Iを読み取り、ファイルテーブルから該ファイル識別子Iと組で登録されているファイルパスを取得し、エンティティボディに続けて格納されてきた「ファイルデータ」を読み取り、該ファイルパスＰＡに蓄積されているデータの最後尾に続けて蓄積開始する。また、該発信中断状態の値Ｚを「偽」に変更する。
【０１３３】
ファイルデータのすべてがファイル蓄積手段１３に蓄積される（アップロード済ファイルデータ量Ｏ＿ＳがファイルサイズＬに達する）と、中継装置１０’’’Ａはデータ保存完了を発信装置３０に通知し（Ｓ４９９）、該通知に応じて送信装置３０はファイル転送処理を終了する。
【０１３４】
以降の中継装置１０’’’Ａ，１０’’’Ｂ，１０’’’Ｃ，および受信装置５０間の処理は前記（Ｓ４０９，Ｓ４１０，Ｓ４１１、Ｓ４１２、Ｓ４１３、Ｓ４１４、Ｓ４２０、Ｌ６，Ｌ７、Ｌ８）と同様に行われる。
【０１３５】
なお、上記の説明においては、一つの受信装置へファイルが転送される場合を例としてあげたが、本発明ではファイルを複数の受信装置へ転送する場合（マルチキャスト）にも適用可能である。この場合には、送信装置３０から宛て先アドレスＲの代わりに、該複数の受信装置のアドレスＲ１〜ＲＮからなる宛先アドレス群Ｄを中継装置１０’’’に送信し、中継装置１０’’’は該アドレス群Ｄに含まれるアドレスＲ１〜ＲＮのそれぞれについてファイル識別子Iと、ファイルパスＰ、ファイルサイズＬを対応付けてファイルテーブルに記憶させるようにすればよい。
【０１３６】
本実施の形態にかかるファイル転送システムでは、送信装置がファイル送信を再開したことを中継装置から次段の中継装置へと伝達する手段を持つため、送信装置が送信再開したデータは各中継装置間でも転送再開される。
【０１３７】
なお、本発明は、上記の実施例に限定されることなく、特許請求の範囲内で種々変更・応用が可能である。
【０１３８】
【発明の効果】
本発明においては、送信装置から中継装置へのファイル転送と、中継装置から受信装置へのファイル転送が並行して行われるため、送信が完了する前に受信をはじめることができる。また、予め送信装置から中継装置、受信装置へと転送するファイルのファイルサイズを含む発信ファイル情報が通知されるため、受信装置はファイルサイズに達するまでファイル受信を繰り返すことが可能となる。その結果、送信装置からの送信速度よりも受信装置の受信速度の方が速く、中継装置に既に蓄積済みのデータを受信装置が全て受信し終えても、ファイルサイズに達していない場合には、後続のデータが中継装置に蓄積されるのを待って受信を繰り返すことで、ファイル転送の速度調整がなされる。
【図面の簡単な説明】
【図１】第１の実施の形態におけるファイル転送システムの全体構造を示す概略ブロック図である。
【図２】第１の実施の形態における処理の流れを概略的に示すフロー図である。
【図３】第２の実施の形態におけるファイル転送システムの全体構造を示す概略ブロック図である。
【図４】第２の実施の形態における処理の流れを概略的に示すフロー図である。
【図５】第３の実施の形態におけるファイル転送システムの全体構造を示す概略ブロック図である。
【図６】第３の実施の形態における処理の流れを概略的に示すフロー図である。
【図７】第４の実施の形態におけるファイル転送システムの全体構造を示す概略ブロック図である。
【図８】第４の実施の形態における処理の流れを概略的に示すフロー図である。
【符号の説明】
１０  中継装置
１０’Ａ，Ｂ，Ｃ  中継装置
１０' ’  中継装置
１０' ’’ Ａ，Ｂ，Ｃ  中継装置
１１  ファイル発信情報受信手段
１２  発信ファイル受信手段
１３  ファイル蓄積手段
１３’、１３’Ａ，１３’Ｃ  ファイル蓄積手段
１４  ファイル着信情報送信手段
１５  着信ファイル送信手段
１６  転送先決定手段
１７  ファイル中継情報送信手段
１８  中継ファイル送信手段
１９  ファイル中継情報受信手段
２０  中継ファイル受信手段
２１  受信済みデータ量応答手段
３０  送信装置
３１  ファイル発信情報送信手段
３２  発信ファイル送信手段
３３  発信ファイル蓄積手段
５０  受信装置
５１  ファイル着信情報受信手段
５２  着信ファイル受信手段
５３  着信ファイル蓄積手段
【図１】
0003685110.tif 000002
【図２】
0003685110.tif 000003
【図３】
0003685110.tif 000004
【図４】
0003685110.tif 000005
【図５】
0003685110.tif 000006
【図６】
0003685110.tif 000007
【図７】
0003685110.tif 000008
【図８】
0003685110.tif 000009