[用語の説明]
まず最初に、以下の実施例で用いる主要な用語を説明する。「ファイル転送システム」とは、ネットワークにおいてファイルの送受信を実現するシステムのことである。インターネットなどのネットワークにおいて、異なるネットワークに属するクライアント間でファイルを送受信する際には、送受信されるファイルは、ひとつまたは複数のサーバを経由して転送される。
ファイルが複数のサーバを経由する場合について具体的に説明すると、まず、ファイルを送信する「送信クライアント」が、最終的にファイルを受信する「受信クライアント」の宛先(ネットワーク上で受信クライアントを識別するための情報)を指定してファイルを送信する。すると、送信クライアントからファイルを最初に受信したサーバが、送信クライアントから受信クライアントに至るまでのルーティング情報(送信クライアントと受信クライアントとの間でデータを送受信する際に経由すべきサーバ等の経路情報)に基づいて、次のサーバにファイルを転送する。続いて、ファイルを転送された次のサーバが、同じく、ルーティング情報に基づいて、次のサーバにファイルを転送する。このように、送信クライアントから受信クライアント宛に送信されたファイルは、ルーティング情報に基づいて経由される複数のサーバによって順に転送され、最後に受信クライアントに転送されることで、受信クライアントが最終的にファイルを受信することになる。
なお、以下の実施例では、送信クライアントからファイルを最初に受信するサーバのことを「送信サーバ」と呼び、受信クライアントに最後にファイルを転送するサーバのことを「受信サーバ」と呼び、送信サーバと受信サーバとの間でファイルが経由するその他のサーバのことを「中継サーバ」と呼ぶ。また、送信サーバと受信サーバと中継サーバとを併せて、「転送サーバ」と呼ぶ。
ところで、上記のようなファイル転送の場面において、転送サーバは、他の転送サーバ(もしくは送信クライアント)からファイルを受信し、このファイルを次の転送サーバ(もしくは受信クライアント)に転送するので、受信したファイルを、転送サーバの記憶領域に一時的に蓄積しなければならない。ここで、ファイルの転送を開始するタイミングとして、転送サーバがファイルの全部を記憶領域に蓄積した状態で(ファイルの受信が完了した状態で)、次の転送サーバ(もしくは受信クライアント)にファイルの転送を開始する場合と、転送サーバがファイルの一部を記憶領域に蓄積した状態で(ファイルの受信が完了しない状態で)、次の転送サーバ(もしくは受信クライアント)にファイルの転送を開始する(ファイルの受信と転送とを並行して行う)場合とが考えられる。前者の場合には、転送サーバにおいて一時的にファイルを蓄積する記憶領域の空き領域が、転送するファイルの容量を上回って確保される必要があり、後者の場合には、転送するファイルの容量と比較して適切に確保される必要がある。
なお、このようなファイル転送システムにおいては、送信クライアントから受信クライアントに至るまでのルーティング情報が、ルーティングサーバから転送サーバに提供される場合と、ルーティングサーバによる提供によらず他の手段によって転送サーバに保持される場合とがある。以下の実施例においては、ルーティング情報がルーティングサーバから転送サーバに提供される場合を前提とするので、ファイル転送システムは、送信クライアントと、送信サーバと、ひとつの中継サーバと、受信サーバと、受信クライアントと、ルーティングサーバとで構成されるものとする。
[実施例1に係るファイル転送システムの概要および特徴]
続いて、図1を用いて、実施例1に係るファイル転送システムの概要および特徴を説明する。図1は、実施例1に係るファイル転送システムの概要および特徴を説明するための図である。
実施例1に係るファイル転送システムは、上記したように、送信クライアントからファイルを受信する送信サーバと、受信クライアントにファイルを送信する受信サーバと、送信サーバと受信サーバとの間でファイルが経由するひとつまたは複数の中継サーバとで構成され、送信クライアントから受信クライアントにファイルを転送することを概要とし、ファイルの転送失敗を防ぐことを主たる特徴とする。なお、以下では、送信クライアントから送信されたファイルが受信サーバに到達するまでの段階と、受信クライアントが受信サーバからファイルを受信する段階との2つの段階に分けて、実施例1に係るファイル転送システムの主たる特徴を説明する。
まず、送信クライアントから送信されたファイルが受信サーバに到達するまでの段階について説明すると、図1に示すように、実施例1における送信クライアント10は、ファイルの容量情報を送信サーバ41に送信する(図1の(1)を参照)。すると、送信サーバ41は、送信クライアント10から受信したファイルの容量情報と、ファイルを蓄積する記憶領域の空き領域とを比較して、ファイルの転送の許可を判断する(図1の(2)を参照)。
そして、送信サーバ41は、ファイルの転送を許可した場合に、ルーティングサーバ30に対してルーティング情報要求を送信する(図1の(3)を参照)。すると、ルーティングサーバ30は、要求されたルーティング情報を送信サーバ41に対して応答する(図1の(4)を参照)。次に、送信サーバ41は、中継サーバ42にファイルの容量情報を転送する(図1の(5)を参照)。
続いて、中継サーバ42は、送信サーバ41から受信したファイルの容量情報と、ファイルを蓄積する記憶領域の空き領域とを比較して、ファイルの転送の許可を判断する(図1の(6)を参照)。そして、中継サーバ42は、ファイルの転送を許可した場合に、受信サーバ43にファイルの容量情報を転送する(図1の(7)を参照)。
次に、受信サーバ43は、中継サーバ42から受信したファイルの容量情報と、ファイルを蓄積する記憶領域の空き領域とを比較して、ファイルの転送の許可を判断する(図1の(8)を参照)。そして、受信サーバ43は、ファイルの転送を許可した場合に、ファイルの転送を許可する転送許可情報を中継サーバ42に送信する(図1の(9)を参照)。
続いて、中継サーバ42は、受信サーバ43から受信した転送許可情報を、送信サーバ41に転送する(図1の(10)を参照)。次に、送信サーバ41は、中継サーバ42から受信した転送許可情報を、送信クライアント10に転送する(図1の(11)を参照)。
そして、送信クライアント10は、送信サーバ41から転送許可情報を受信した場合に、送信サーバ41にファイルを送信する(図1の(12)を参照)。続いて、送信サーバ41は、送信クライアント10から受信したファイルを、中継サーバ42に転送する(図1の(13)を参照)。そして、中継サーバ42は、送信サーバ41から受信したファイルを、受信サーバ43に転送する(図1の(14)を参照)。
こうして、送信クライアント10から送信されたファイルが受信サーバ43に到達するので、受信サーバ43は、受信クライアント20から送信されるファイルの受信要求に応じて、受信クライアント20にファイルを転送できる状態になる。
続いて、受信クライアントが受信サーバからファイルを受信する段階について説明すると、受信クライアント20は、受信クライアント20宛に送信されたファイルが受信サーバ43に到達しているかどうかを確認することを目的として、受信クライアント20宛に送信されたファイルのリストの取得を要求するファイルリスト取得要求を受信サーバ43に送信する(図1の(15)を参照)。すると、受信サーバ43は、受信クライアント20に送信可能なファイルリストを返却する(図1の(16)を参照)。続いて、受信クライアント20は、返却されたファイルリストに含まれるファイルについて、ファイルの受信を要求するファイルの受信要求を送信する(図1の(17)を参照)。すると、受信サーバ43は、要求されたファイルを受信クライアント20に送信する(図1の(18)を参照)。
なお、実施例1においては、送信クライアント10から送信されて受信サーバ43に到達したファイルを、受信クライアント20が要求して受信する(プル型)場合を説明したが、この発明はこれに限定されるものではなく、送信クライアント10から送信されたファイルが受信クライアント20の要求を待たずに転送される(プッシュ型)場合にも、この発明を同様に適用することができる。
このようなことから、実施例1に係るファイル転送システムは、送信クライアントにおいて、転送サーバにおけるファイル転送の許可を把握し、転送サーバにおける一時的なデータ蓄積可能容量に応じて、送信クライアントから転送サーバに向けてファイルを送信するので、ファイルの転送失敗を防ぐことが可能になる。
なお、実施例1に係るファイル転送システムは、上記の他に、ファイルの送受信状態に係る情報を保持、遷移、または取得することにも特徴がある。具体的には、送信クライアントおよび受信クライアントにおいて、ファイルの送受信状態に係る情報(例えば、「ファイル送信中」、「ファイル受信中断」など)を把握してファイルの送受信を制御することを目的として、送信クライアントおよび受信クライアントで検知したファイルの送受信状態に係る情報や、送信サーバや受信サーバで検知したファイルの送受信状態に係る情報を、中継サーバを含めてファイル転送システム全体で保持し、送受信状態の変化に応じて保持する情報を遷移させたり、必要に応じて情報を取得したりする。
また、実施例1に係るファイル転送システムは、上記の他に、ファイルの転送キャンセルに対応することにも特徴がある。具体的には、送信クライアントからファイルが送信された後に、送信クライアントから転送キャンセル要求が送信サーバに送信されると、送信サーバ、中継サーバ、受信サーバ、および受信クライアントにこの転送キャンセル要求が順に転送され、各サーバおよび受信クライアントにおいて、ファイルの転送停止やファイルの削除を行う。
また、実施例1に係るファイル転送システムは、上記の他に、ファイルの受信キャンセルに対応することにも特徴がある。具体的には、受信クライアントにおけるファイルの受信中もしくはファイルの受信中断中に、受信クライアントから受信キャンセル要求が受信サーバに送信されると、受信サーバにおいては、受信クライアントに対するファイルの転送を停止し、受信クライアントにおいては、ファイルの削除を行う。そして、再び、受信クライアントから受信サーバに対してファイルの受信要求が送信されると、受信サーバは、ファイルの先頭から転送を開始する。
また、実施例1に係るファイル転送システムは、上記の他に、ファイルの受信放棄に対応することにも特徴がある。具体的には、受信クライアントにおけるファイルの受信中、ファイルの受信中断中、もしくはファイルの受信キャンセル中に、受信クライアントから受信放棄要求が受信サーバに送信されると、受信サーバにおいては、受信クライアントに対するファイルの転送を停止し、所定の場合にファイルを削除し、受信クライアントにおいては、ファイルの削除を行う。そして、再び、受信クライアントから受信サーバに対してファイルの受信要求が送信されると、受信サーバは、ファイルの転送を拒否する通知を送信する。
[実施例1に係るファイル転送システムの構成]
続いて、図2〜図18を用いて、実施例1に係るファイル転送システムの構成を説明する。図2は、実施例1における送信クライアントおよび受信クライアントの構成を示すブロック図であり、図3は、入力部を説明するための図であり、図4は、容量情報送信部を説明するための図であり、図5は、ファイル送信部を説明するための図であり、図6および図7は、状態情報遷移部を説明するための図であり、図8は、状態情報取得部を説明するための図であり、図9は、転送キャンセル要求送信部を説明するための図であり、図10は、ファイル受信部を説明するための図であり、図11は、受信キャンセル要求送信部を説明するための図であり、図12は、受信放棄要求送信部を説明するための図であり、図13は、実施例1における転送サーバの構成を示すブロック図であり、図14は、ファイル管理情報記憶部を説明するための図であり、図15は、ルーティング情報を説明するための図であり、図16および図17は、容量情報転送部を説明するための図であり、図18は、状態情報転送部を説明するための図である。
[クライアントの構成]
まず、図2では、ファイルを送信する送信クライアントと、最終的にファイルを受信する受信クライアントとを、同じ端末で実現する(ひとつの端末が送信クライアントの機能および受信クライアントの機能の双方を備える)ことを前提とし、このような端末を「クライアント」と呼ぶことにする。図2に示すように、実施例1におけるクライアント100は、入力部110と、出力部120と、入出力制御IF部130と、ネットワーク通信部140と、記憶部200と、制御部300とから構成される。
入力部110は、制御部300による各種処理に用いるデータや、各種処理をするための操作指示などを、キーボード、マウス、または記憶媒体などによって入力する手段である。具体的には、入力部110は、クライアント100によって他のクライアントに送信されるファイルを入力し、後述するファイル記憶部210に記憶させる。また、入力部110は、クライアント100によって実行される転送キャンセル要求送信や、受信キャンセル要求送信や、受信放棄要求送信などの操作指示を入力する。例えば、入力部110は、図3に示すような、出力部120によってモニタに出力されたファイル転送プログラムを実行するソフトウェアの画面において、『送信ファイル名』や『受信ユーザアドレス』のボックスに、クライアント100によって送信されるファイル名や受信クライアントの宛先などをキーボードによって入力し、『中断』、『再開』、『キャンセル』、『放棄』、または、『送信』などのアイコンをマウスによってクリックすることで操作指示を入力する。なお、図3において、一部のアイコンが網掛けされているが、これは、これらの操作指示に対する入力を受け付けられない状態であることを示す。
出力部120は、制御部300による各種処理の結果や、各種処理をするための操作指示などを、モニタ、またはプリンタなどに出力する手段である。具体的には、出力部120は、クライアント100によって受信され、後述するファイル記憶部210に記憶されたファイルを、モニタやプリンタなどに出力する。また、出力部120は、クライアント100によって実行される転送キャンセル要求送信や、受信キャンセル要求送信や、受信放棄要求送信などの操作指示を、入力部110によって入力させるための画面を出力する。例えば、出力部120は、図3に示すような、ファイル転送プログラムを実行するソフトウェアの画面をモニタに出力する。
ここで、ファイル転送プログラムをクライアント100において実行するソフトウェアの画面について具体的に説明すると、実施例1におけるクライアント100は、送信クライアントの機能および受信クライアントの機能の双方を備えるクライアントであるので、図3に示すように、ソフトウェアの画面において、『送信の部』および『受信の部』の双方が出力されている。また、実施例1におけるクライアント100は、後述する状態情報処理部312および状態情報処理部322によってファイルの送受信状態に係る情報を取得するなどするので、図3に示すように、ソフトウェアの画面において、『送信状態』および『受信状態』などが出力されている。さらに、実施例1におけるクライアント100は、後述する転送キャンセル処理部313、転送キャンセル処理部323、受信キャンセル処理部324、および受信放棄処理部325によって各種処理を行うので、図3に示すように、ソフトウェアの画面において、各種処理に対応するアイコンが出力されている。
入出力制御IF部130は、入力部110および出力部120と、ネットワーク通信部140と、記憶部200および制御部300との間におけるデータ転送を制御する手段である。
ネットワーク通信部140は、クライアント100が、後述する転送サーバ400やその他のネットワーク上の装置にネットワークを介して接続され、アクセスするための通信を行う手段である。具体的には、ネットワーク通信部140は、パソコンなどに搭載されたLANボード(Local Area Networkボード)などによって通信を行い、クライアント100によるファイルの容量情報送信や、ファイルの送受信などを行う。
記憶部200は、制御部300による各種処理に用いるデータを記憶する手段であり、特に本発明に密接に関連するものとしては、図2に示すように、ファイル記憶部210と、ファイル管理情報記憶部220と、状態情報保持部230とを備える。
かかる記憶部200のなかで、ファイル記憶部210は、クライアント100が送受信するファイルを記憶する手段である。具体的には、ファイル記憶部210は、入力部110によって入力されたファイルをハードディスクなどに記憶し、記憶したファイルは、後述するファイル送信部311bによるファイル送信処理などに利用される。また、ファイル記憶部210は、ネットワーク通信部140によって受信されたファイルを記憶し、記憶したファイルは、出力部120によって出力されるなどする。例えば、図3において送信の部に出力されている「test1.mpg」、「test2.zip」、「test0.tar」や、受信の部に出力されている「test000.pdf」は、ファイル記憶部210が記憶するファイルのファイル名である。
ファイル管理情報記憶部220は、クライアント100が送受信するファイルを管理するための情報を記憶する手段である。具体的には、ファイル管理情報記憶部220は、ファイル記憶部210が記憶するファイルの管理情報(例えば、ファイル名、ファイルサイズなど)をRDBMS(Relational DataBase Management System)などで記憶し、記憶したファイルの管理情報は、後述する容量情報送信部311aによる容量情報送信処理などに利用される。例えば、ファイル管理情報記憶部220は、ファイル記憶部210が記憶するファイルのファイル名が「test1.mpg」であり、ファイルサイズが「10MB」である場合には、「test1.mpg」と「10MB」とを対応づけて記憶し、クライアント100によって「test1.mpg」が送信される際に、記憶した「10MB」の情報は、容量情報送信部311aによって利用される。
状態情報保持部230は、クライアント100が送受信するファイルの送受信状態に係る情報を保持する手段である。具体的には、状態情報保持部230は、後述する状態情報処理部312または状態情報処理部322によって遷移もしくは取得されたファイルの送受信状態に係る情報を保持し、保持した情報は、後述する転送キャンセル処理部323による転送キャンセル処理や、受信キャンセル処理部324による受信キャンセル処理や、受信放棄処理部325による受信放棄処理などに利用される。また、状態情報保持部230は、保持した情報を、出力部120によって出力される。例えば、状態情報保持部230が記憶する送受信状態に係る情報は、図3に示すように、ソフトウェアの画面において、『送信状態』および『受信状態』の欄に表示される。なお、送受信状態に係る情報の具体的な説明については、状態情報処理部312の説明において詳述する。
制御部300は、クライアント100を制御して各種処理を実行する手段であり、特に本発明に密接に関連するものとしては、図2に示すように、送信処理部310と受信処理部320とを備える。なお、送信処理部310は、クライアント100が送信クライアントとして機能する際に利用される処理部であり、受信処理部320は、クライアント100が受信クライアントとして機能する際に利用される処理部である。
かかる制御部300のなかで、送信処理部310は、クライアント100がファイルを送信する手段であり、ファイル送信処理部311と、状態情報処理部312と、転送キャンセル処理部313とを備える。
ここで、ファイル送信処理部311の構成について説明すると、ファイル送信処理部311は、クライアント100がファイルを送信する手段であり、図2に示すように、容量情報送信部311aと、ファイル送信部311bとを備える。なお、容量情報送信部311aは、特許請求の範囲に記載の「容量情報送信手段」に対応し、ファイル送信部311bは、特許請求の範囲に記載の「ファイル送信手段」に対応する。
容量情報送信部311aは、クライアント100によって行われるファイル送信処理において、ファイルの容量情報を送信サーバに送信する手段である。具体的には、容量情報送信部311aは、ファイル記憶部210によって記憶されるファイルを送信する前に、ファイル管理情報記憶部220によって記憶される送信対象のファイルのファイル容量情報を、送信サーバに送信する。例えば、容量情報送信部311aは、図4に示すような要求メッセージを送信サーバに送信する。
ここで、図4に示す要求メッセージについて説明すると、「RequestFileTransfer」は、これからクライアント100がファイルの送信(転送)を行いたい旨を、送信サーバに伝えるためのメッセージである。また、「Sender=user1@domain1」は、クライアント100のアドレス(ネットワーク上でクライアント100を識別するための情報)であり、ドメイン名「domain1」に属するユーザ名「user1」であることを示している。また、「Receiver=user2@domain2」は、最終的にファイルを受信するクライアントのアドレスであり、ドメイン名「domain2」に属するユーザ名「user2」であることを示している。また、「Filename=test.mpg」は、送信対象のファイルのファイル名が「test.mpg」であることを示している。また、「Filesize=10MB」は、送信対象のファイルの容量が10MBであることを示している。
このように、実施例1における容量情報送信部311aは、送信対象のファイルの容量情報と共に、送信クライアントのアドレス、受信クライアントのアドレス、送信対象のファイルのファイル名も送信する。なお、容量情報送信部311aによって送信された要求メッセージを受信した送信サーバは、図4に示すように、応答メッセージとして、「OK ReqestFile Transfer」を応答する。
ファイル送信部311bは、クライアント100によって行われるファイル送信処理において、送信サーバにファイルを送信する手段である。具体的には、ファイル送信部311bは、送信サーバからファイルの転送を許可する転送許可情報を受信した場合に、ファイル記憶部210に記憶するファイルを送信サーバに送信する。例えば、ファイル送信部311bは、図5に示すような要求メッセージを送信サーバに送信する。
ここで、図5に示す要求メッセージについて説明すると、「FileTransfer」は、これからクライアント100がファイルの送信(転送)を行う旨を、送信サーバに伝えるためのメッセージである。また、「(以下転送対象ファイル)」は、送信対象のファイルの具体的なデータを示す。なお、ファイル送信部311bによって送信された要求メッセージを受信した送信サーバは、図5に示すように、応答メッセージとして、「OK File Transfer」を応答する。
状態情報処理部312の構成について説明すると、状態情報処理部312は、クライアント100がファイルの送受信状態に係る情報を遷移または取得する手段であり、図2に示すように、状態情報遷移部312 aと、状態情報取得部312bとを備える。
状態情報遷移部312aは、クライアント100が送信するファイルの送信状態を検知して、送受信状態に係る情報を遷移させる手段である。具体的には、状態情報遷移部312aは、ファイルの送信状態を検知して、状態情報保持部230によって保持される送受信状態に係る情報を遷移させる。
ここで、図6および図7を用いて、実施例1における状態情報について説明する。状態情報としては、ファイルの送信状態とファイルの受信状態の2種類がある。図6の(A)および図7の(A)が、ファイルの送信状態の遷移を示している。まず、図6の(A)をみると、「初期状態」、「ファイル送信中(Sending)」、「ファイル送信中断(SendingSuspend)」、「送信サーバまでファイル送信完了(FileAccepted)」、および「受信サーバまでファイル送信完了(ReceiveEnable)」の送信状態がある。
「初期状態」は、クライアント100がファイルの送信を開始する前の状態であり、クライアント100において何も実行されていない状態や、容量情報送信部311aによって容量情報が送信サーバに送信されている状態などが考えられる。「ファイル送信中(Sending)」は、クライアント100によって送信サーバにファイルが送信されている状態である。「ファイル送信中断(SendingSuspend)」は、クライアント100によって送信サーバにファイルの送信が開始されたが、送信サーバにおいてファイル全部が受信される前に、ファイルの送信が中断されている状態である。中断の原因としては、ネットワーク障害や、クライアント100による自発的な中断などが考えられる。「送信サーバまでファイル送信完了(FileAccepted)」は、クライアント100によって送信されたファイル全部が送信サーバにおいて受信された状態である。「受信サーバまでファイル送信完了(ReceiveEnable)」は、クライアント100によって送信されたファイル全部が受信サーバにおいて受信された状態である。
これらの送信状態のうち、状態情報遷移部312aが検知するのは、「初期状態」、「ファイル送信中(Sending)」、「ファイル送信中断(SendingSuspend)」、および「送信サーバまでファイル送信完了(FileAccepted)」の送信状態である(「受信サーバまでファイル送信完了(ReceiveEnable)」の送信状態については検知することができない)。
図6の(A)に示すように、状態情報遷移部312aは、例えば、ファイル送信部311bによってファイルの送信が開始されたことを検知すると、状態情報保持部230によって保持されている送信状態に係る状態情報を、「初期状態」から「ファイル送信中(Sending)」に遷移させる。また、状態情報遷移部312aは、例えば、「ファイル送信中(Sending)」に送信中断されたことを検知すると、状態情報保持部230によって保持されている送信状態に係る状態情報を、「ファイル送信中(Sending)」から「ファイル送信中断(SendingSuspend)」に遷移させ、送信再開されたことを検知すると、「ファイル送信中断(SendingSuspend)」から「ファイル送信中(Sending)」に遷移させる。また、状態情報遷移部312aは、例えば、「ファイル送信中(Sending)」に送信サーバまで送信完了したことを検知すると、状態情報保持部230によって保持されている送信状態に係る状態情報を、「ファイル送信中(Sending)」から「送信サーバまでファイル送信完了(FileAccepted)」に遷移させる。
同様に、図7の(A)をみると、「初期状態」、「ファイル送信中(Sending)」、「ファイル送信中断(SendingSuspend)」、「送信サーバまでファイル送信完了(FileAccepted)」、および「受信サーバまでファイル送信完了(ReceiveEnable)」の送信状態の他に、「転送キャンセル(SendingCancel)」の送信状態がある。「転送キャンセル(SendingCancel)」は、後述する転送キャンセル要求送信部313aによって転送キャンセル情報が送信された状態である。そして、状態情報遷移部312aは、例えば、クライアント100から送信サーバにファイルが送信されている途中などに転送キャンセルされたことを検知すると、状態情報保持部230によって保持されている送信状態に係る状態情報を、「ファイル送信中(Sending)」から「転送キャンセル(SendingCancel)」に遷移させる。
なお、実施例1においては、「初期状態」、「ファイル送信中(Sending)」、「ファイル送信中断(SendingSuspend)」、「送信サーバまでファイル送信完了(FileAccepted)」、および「受信サーバまでファイル送信完了(ReceiveEnable)」の送信状態や、この他に「転送キャンセル(SendingCancel)」の送信状態について、送信状態情報を遷移または取得させる場合を説明したが、この発明はこれに限定されるものではなく、例えば、「容量情報送信中」などの送信状態についても遷移または取得するなど、その他の送信状態を含む場合や、あるいは、一部の送信状態について省略する場合など、いずれでもよい。
状態情報取得部312bは、送受信状態に係る情報を、送信サーバに要求して取得する手段である。具体的には、状態情報取得部312bは、送信サーバにおける状態情報保持部において保持されている状態情報を要求して取得する。例えば、状態情報取得部312bは、図8に示すような要求メッセージを送信サーバに送信する。
ここで、図8に示す要求メッセージについて説明すると、「GetStatus」は、状態情報取得部312bが状態情報の取得する旨を、送信サーバに伝えるためのメッセージである。図8に示すように、状態情報の取得は、「FileList=test100.zip,test200.mp3」と送受信状態に係る情報を取得したいファイル名を指定して行われる。一方、状態情報取得部312bによって送信された要求メッセージを受信した送信サーバは、図8に示すように、応答メッセージとして、「OK GetStatus」を応答する他に、「StatusList=(test100.zip,Receive Enable, Receiving),(test200.mp3,ReceiveEnable,ReceiveSuspend)」と応答する。なお、「test100.zip」は、送信状態として「受信サーバまでファイル送信完了(ReceiveEnable)」にあり、受信状態として「受信クライアントがファイル受信中(Receiving)」にあることを示している。また、「test200.mp3」は、送信状態として「受信サーバまでファイル送信完了(ReceiveEnable)」にあり、受信状態として「ファイル受信中断(ReceivingSuspend)」にあることを示している。
転送キャンセル処理部313の構成について説明すると、転送キャンセル処理部313は、クライアント100が送信したファイルの転送をキャンセルする手段であり、図2に示すように、転送キャンセル要求送信部313aを備える。なお、転送キャンセル要求送信部313aは、特許請求の範囲に記載の「転送キャンセル要求送信手段」に対応する。
転送キャンセル要求送信部313aは、ファイルの転送をキャンセルすることを指示する転送キャンセル要求を、送信サーバに送信する手段である。具体的には、転送キャンセル要求送信部313aは、ファイル送信部311bによって送信されたファイルが、受信クライアントにおいて受信完了する前に、受信クライアントに対するファイルの転送をキャンセルするためのメッセージを送信サーバに送信する。例えば、転送キャンセル要求送信部313aは、図9に示すような要求メッセージを送信サーバに送信する。
ここで、図9に示す要求メッセージについて説明すると、「CancelFileTransfer」は、クライアント100がファイルの転送をキャンセルする旨を、送信サーバに伝えるためのメッセージである。また、「Filename=test1.mpg」は、転送をキャンセルする対象のファイルのファイル名である。すなわち、「test1.mpg」の転送をキャンセルすることを指示している。
また、かかる制御部300のなかで、受信処理部320は、クライアント100がファイルを受信する手段であり、ファイル受信部321と、状態情報処理部322と、転送キャンセル処理部323と、受信キャンセル処理部324と、受信放棄処理部325とを備える。
ここで、ファイル受信部321は、クライアント100によって行われるファイルの受信処理において、ファイルを受信サーバから受信する手段である。具体的には、ファイル受信部321は、ネットワーク通信部140によって受信サーバからファイルを受信し、ファイル記憶部210に記憶させる。例えば、ファイル受信部321は、図10に示すような要求メッセージを受信サーバに送信する。
ここで、図10に示す要求メッセージについて説明すると、まず、図10の(A)に示す「RequestFileList」は、クライアント100宛に送信されたファイルが受信サーバに到達しているかどうかを確認するため、クライアント100宛に送信されたファイルのリストの取得を要求するメッセージである。一方、ファイル受信部321によって送信された要求メッセージを受信した受信サーバは、図10の(A)に示すように、応答メッセージとして、「OK RequestFileList」を応答する他に、「FileList=test100.zip,test200.mp3」と応答する。すなわち、クライアント100宛に送信されたファイルとして、「test100.zip」および「test200.mp3」が受信サーバに到達していることを示している。
次に、ファイル受信部321は、返却されたファイルリストに含まれるファイルについて、ファイルの受信を要求するファイルの受信要求を送信する。図10の(B)に示す「ReceiveFile」は、ファイルの受信を希望する旨を、受信サーバに伝えるメッセージである。また、「Filename=test100.zip」は、ファイル名「test100.zip」のファイルの受信を希望することを示している。一方、ファイル受信部321によって送信された要求メッセージを受信した受信サーバは、図10の(B)に示すように、応答メッセージとして、「OK ReceiveFile」を応答する。また、「(以下転送対象ファイル)」は、受信対象のファイルの具体的なデータを示す。
状態情報処理部322の構成について説明すると、状態情報処理部322は、クライアント100において状態情報を処理する手段であり、図2に示すように、状態情報遷移部322aと、状態情報取得部322bとを備える。
状態情報遷移部322aは、クライアント100が受信するファイルの受信状態を検知して、送受信状態にかかる情報を遷移させる手段である。具体的には、ファイルの受信状態を検知して、状態情報保持部230によって保持される送受信状態に係る情報を遷移させる。
ここで、図6および図7を用いて、実施例1における受信状態に係る状態情報について説明する。図6の(B)および図7の(B)が、ファイルの受信状態の遷移を示している。まず、図6の(B)をみると、「初期状態」、「受信クライアントがファイル受信中(Receiving)」、「ファイル受信中断(ReceivingSuspend)」、および「ファイル受信完了(Received)」の受信状態がある。
「初期状態」は、クライアント100がファイルの受信を開始する前の状態であり、クライアント100において何も実行されていない状態や、ファイル受信部321によって受信サーバにファイルのリストの取得が要求されている状態などが考えられる。「受信クライアントがファイル受信中(Receiving)」は、クライアント100によって受信サーバからファイルが受信されている状態である。「ファイル受信中断(ReceivingSuspend)」は、クライアント100によって受信サーバからファイルの受信が開始されたが、クライアント100においてファイル全部が受信される前に、ファイルの受信が中断されている状態である。中断の原因としては、ネットワーク障害や、クライアント100による自発的な中断などが考えられる。「ファイル受信完了(Received)」は、クライアント100によって、受信サーバからファイル全部が受信された状態である。これらの受信状態すべてを、状態情報遷移部322aは検知する。
図6の(B)に示すように、状態情報遷移部322aは、例えば、ファイル受信部321によってファイルの受信が開始されたことを検知すると、状態情報保持部230によって保持されている受信状態に係る状態情報を、「初期状態」から「受信クライアントがファイル受信中(Receiving)」に遷移させる。また、状態情報遷移部322aは、例えば、「受信クライアントがファイル受信中(Receiving)」に受信中断されたことを検知すると、状態情報保持部230によって保持されている受信状態に係る状態情報を、「受信クライアントがファイル受信中(Receiving)」から「ファイル受信中断(ReceivingSuspend)」に遷移させ、受信再開されたことを検知すると、「ファイル受信中断(ReceivingSuspend)」から「受信クライアントがファイル受信中(Receiving)」に遷移させる。また、状態情報遷移部322aは、例えば、「受信クライアントがファイル受信中(Receiving)」にクライアント100において受信完了したことを検知すると、状態情報保持部230によって保持されている受信状態に係る情報を、「受信クライアントがファイル受信中(Receiving)」から「ファイル受信完了(Received)」に遷移させる。
同様に、図7の(B)をみると、「初期状態」、「受信クライアントがファイル受信中(Receiving)」、「ファイル受信中断(ReceivingSuspend)」、および「ファイル受信完了(Received)」の受信状態のほかに、「受信キャンセル(ReceivingCancel)」および「受信放棄(ReceivingRenounce)」の受信状態がある。「受信キャンセル(ReceivingCancel)」は、後述する受信キャンセル要求送信部324aによって受信キャンセル情報が送信された状態である。そして、状態情報遷移部322aは、例えば、クライアント100が受信サーバからファイルを受信している途中に受信キャンセルされたことを検知すると、状態情報保持部230によって保持されている受信状態に係る状態情報を、「受信クライアントがファイル受信中(Receiving)」から「受信キャンセル(ReceivingCancel)」に遷移させる。
なお、実施例1においては、「初期状態」、「受信クライアントがファイル受信中(Receiving)」、「ファイル受信中断(ReceivingSuspend)」、および「ファイル受信完了(Received)」の受信状態や、この他に「受信キャンセル(ReceivingCancel)」、および「受信放棄(ReceivingRenounce)」の受信状態について、受信状態情報を遷移または取得させる場合を説明したが、この発明はこれに限定されるものではなく、例えば、「ファイルリスト送信中」などの受信状態についても遷移または取得するなど、その他の受信状態を含む場合や、あるいは、一部の受信状態について省略する場合など、いずれでもよい。
状態情報取得部322bは、送受信状態に係る情報を、受信サーバに要求して取得する手段である。具体的には、状態情報取得部322bは、受信サーバにおける状態情報保持部において保持されている状態情報を要求して取得する。例えば、状態情報取得部322bは、送信処理部310における状態情報取得部312bと同様に、図8に示すような要求メッセージを送信サーバに送信する。
転送キャンセル処理部323の構成について説明すると、転送キャンセル処理部323は、クライアント100においてファイル全部が受信される前に送信クライアントによってファイルの転送がキャンセルされた場合に、クライアント100において転送キャンセルの処理を行う手段であり、図2に示すように、ファイル削除部323aと、削除完了通知送信部323bとを備える。なお、ファイル削除部323aは、特許請求の範囲に記載の「第一のファイル削除手段」に対応する。
ファイル削除部323aは、受信サーバから受信した転送キャンセル要求によって指示されたファイルを削除する手段である。具体的には、ファイル削除部323aは、送信クライアントからクライアント100宛に送信されたファイルで、クライアント100においてファイル全部が受信される前であれば、受信サーバから転送キャンセル要求によって指示されたファイルを削除する。例えば、ファイル削除部323aは、送信クライアントから送信された図10に示すような転送キャンセル要求を受信サーバから受信すると、ファイル記憶部210もしくは図示しない一時的な記憶領域上に記憶されたファイル名「test1.mpg」のファイルを削除する。削除完了通知送信部323bは、ファイルの削除がクライアント100において完了したことを示す削除完了通知を、受信サーバに送信する手段である。
受信キャンセル処理部324の構成について説明すると、受信キャンセル処理部324は、受信サーバからのファイルの受信をキャンセルする手段であり、図2に示すように、受信キャンセル要求送信部324aと、ファイル削除部324bとを備える。なお、受信キャンセル要求送信部324aは、特許請求の範囲に記載の「受信キャンセル要求送信手段」に対応し、ファイル削除部324bは、「第二のファイル削除手段」に対応する。
受信キャンセル要求送信部324aは、ファイルの受信をキャンセルすることを指示する受信キャンセル要求を、受信サーバに送信する手段である。具体的には、受信キャンセル要求送信部324aは、ファイル受信部321によって受信されたファイルが、受信クライアントにおいて受信完了する前(受信中もしくは受信中断中)に、受信サーバからのファイルの受信をキャンセルするためのメッセージを受信サーバに送信する。例えば、受信キャンセル要求送信部324aは、図11に示すような要求メッセージを受信サーバに送信する。
ここで、図11に示す要求メッセージについて説明すると、「CancelReceiving」は、クライアント100がファイルの受信をキャンセルする旨を、受信サーバに伝えるためのメッセージである。また、「Filename=test1.mpg」は、受信をキャンセルする対象のファイルのファイル名である。すなわち、ファイル名「test1.mpg」のファイルの受信をキャンセルすることを指示している。
ファイル削除部324bは、受信サーバにおいてファイルの転送を停止したことを示す受信キャンセル完了通知を受信サーバから受信すると、すでに受信したファイルを削除する手段である。具体的には、ファイル削除部324bは、受信サーバからクライアント100に送信されているファイルで、クライアント100においてファイル全部が受信される前であれば、受信キャンセル要求によって指示したファイルを削除する。例えば、ファイル削除部324bは、受信キャンセル要求送信部324aにおいて、図11に示すような受信キャンセル要求を受信サーバに送信し、受信サーバから受信キャンセル完了通知を受信すると、ファイル名「test1.mpg」のファイルを削除する。
受信放棄処理部325の構成について説明すると、受信放棄処理部325は、受信サーバからのファイルの受信を放棄する手段であり、図2に示すように、受信放棄要求送信部325aと、ファイル削除部325bとを備える。なお、受信放棄要求送信部325aは、特許請求の範囲に記載の「受信放棄要求送信手段」に対応し、ファイル削除部325bは、特許請求の範囲に記載の「第三のファイル削除手段」に対応する。
受信放棄要求送信部325aは、ファイルの受信を放棄することを指示する受信放棄要求を、受信サーバに送信する手段である。具体的には、受信放棄要求送信部325aは、ファイル受信部321によって受信されたファイルが、受信クライアントにおいて受信完了する前(受信中、受信中断中もしくは受信キャンセル中)に、受信サーバからのファイルの受信を放棄するためのメッセージを受信サーバに送信する。例えば、受信放棄要求送信部325aは、図12に示すような要求メッセージを受信サーバに送信する。
ここで、図12に示す要求メッセージについて説明すると、「RenounceReceiving」は、クライアント100がファイルの受信を放棄する旨を、受信サーバに伝えるためのメッセージである。また、「Filename=test1.mpg」は、受信を放棄する対象のファイルのファイル名である。すなわち、ファイル名「test1.mpg」のファイルの受信を放棄することを指示している。
ファイル削除部325bは、受信サーバにおいてクライアント100に対するファイルの転送を放棄したことを示す受信放棄完了通知を受信サーバから受信すると、すでに受信したファイルを削除する手段である。具体的には、ファイル削除部325bは、受信サーバからクライアント100に送信されているファイルで、クライアント100においてファイル全部が受信される前であれば、受信放棄要求によって指示したファイルを削除する。例えば、ファイル削除部325bは、受信放棄要求送信部325aにおいて図12に示すような受信放棄要求を受信サーバに送信し、受信サーバから受信放棄完了通知を受信すると、ファイル名「test1.mpg」のファイルを削除する。
[転送サーバの構成]
次に、図13では、送信クライアントからファイルを受信する送信サーバと、受信クライアントにファイルを送信する受信サーバと、送信サーバと受信サーバとの間でファイルが経由する中継サーバとを同じ端末で実現する(ひとつの端末が、送信サーバになることも、受信サーバになることも、中継サーバになることもある)ことを前提とし、このような端末を「転送サーバ」と呼ぶことにする。図13に示すように、実施例1における転送サーバ400は、ネットワーク通信部410と、記憶部500と、制御部600とから構成される。
ネットワーク通信部410は、転送サーバ400が、クライアント100やその他のネットワーク上の装置にネットワークを介して接続され、アクセスするための通信を行う手段である。具体的には、ネットワーク通信部410は、パソコンなどに搭載されたLANボードなどによって通信を行い、転送サーバ400によるファイルの容量情報転送や、ファイルの転送などを行う。
記憶部500は、制御部600による各種処理に用いるデータを記憶する手段であり、特に本発明に密接に関連するものとしては、図13に示すように、ファイル記憶部510と、ファイル管理情報記憶部520 と、状態情報保持部530とを備える。
かかる記憶部500のなかで、ファイル記憶部510は、転送サーバ400が転送するファイルを記憶する手段である。具体的には、ファイル記憶部510は、ネットワーク通信部410によってクライアント100もしくは他の転送サーバから受信したファイルをハードディスクなどに記憶し、記憶したファイルは、後述するファイル転送部615によるファイル転送処理などに利用される。
ファイル管理情報記憶部520は、転送サーバ400が転送するファイルを管理するための情報を記憶する手段である。具体的には、ファイル管理情報記憶部520は、ファイル記憶部510が記憶するファイルの管理情報(例えば、ファイル名、ファイルサイズなど)をRDBMSなどで記憶し、記憶したファイルの管理情報は、後述する容量情報転送部612による容量情報転送処理などに利用される。例えば、ファイル管理情報記憶部520は、図14に示すような管理情報を記憶している。ここで、図14について説明すると、ファイル記憶部510が記憶するファイルのファイル名として、「test1.mpg」および「test2.zip」が記憶されている。また、例えば、「test1.mpg」について、ファイルサイズが10MBであること、ルーティング情報が「server1、server2、server3」であること、送信ユーザアドレスが「user1@domain1」であること、受信ユーザアドレスが「user2@domain2」であることが対応づけられて記憶されている。
ここで、ルーティング情報について説明すると、実施例1における転送サーバ400は、ルーティング情報(送信クライアントと受信クライアントとの間でデータを送受信する際に経由すべきサーバ等の経路情報)が、ルーティングサーバから転送サーバ400に提供される場合を前提とする。このため、実施例1において、ルーティングサーバは、図15に示すようなルーティング情報を保持している。
例えば、図15に示す1行目のルーティング情報をみると、送信ユーザドメインが「domain1」と示され、受信ユーザドメインが「domain2」と示され、経由サーバリストが「server1,server2,server3」のように送信ユーザドメインに近い方から順にカンマ区切りで示されている。これは、所属するドメインが「domain1」である送信クライアントから、所属するドメインが「domain2」である受信クライアントに送信されたデータは、「server1」、「server2」、「server3」の順でサーバを経由して転送されるべきであり、「server3」が受信クライアントの収容されているサーバ(受信クライアントにファイルを送信するサーバ)であることを意味している。ファイル管理情報記憶部520は、このようなルーティングサーバから提供されるルーティング情報を、図14に示すように、転送対象となるファイルと対応づけて記憶する。
図13に戻ると、状態情報保持部530は、クライアント100が送受信するファイルの送受信状態に係る情報を保持する手段である。具体的には、状態情報保持部530は、後述する状態情報遷移部621および状態情報転送部623によって遷移もしくは転送されたファイルの送受信状態に係る情報を保持し、保持した情報は、後述する状態情報送信部622による状態情報送信処理に利用される。また、状態情報保持部530に保持された送受信状態に係る情報は、図14に示すように、例えば、「test1.mpg」について、送信状態に係る情報が「ReceiveEnable(受信サーバまでファイル送信完了)」であること、受信状態に係る情報が「Receiving(受信クライアントがファイル受信中)」であることが対応づけられて保持されている。なお、図14においては、ファイル管理情報記憶部520によって記憶される情報と、状態情報保持部530によって保持される情報とが、同じテーブルに記憶されている構成を説明したが、別々のテーブルがRDBMSによって連携されている構成など、いずれの構成でもよい。
制御部600は、転送サーバ400を制御して各種処理を実行する手段であり、特に本発明に密接に関連するものとしては、図13に示すように、ファイル転送処理部610と、状態情報処理部620と、転送キャンセル処理部630と、受信キャンセル処理部640と、受信放棄処理部650とを備える。
かかる制御部600のなかで、ファイル転送処理部610は、転送サーバ400がファイルを転送する手段であり、判断部611と、容量情報転送部612と、転送許可情報送信部613と、転送許可情報転送部614と、ファイル転送部615とを備える。なお、判断部611は、特許請求の範囲に記載の送信サーバの「判断手段」と中継サーバの「判断手段」と受信サーバの「判断手段」とに対応する。また、容量情報転送部612は、特許請求の範囲に記載の送信サーバの「容量情報送信手段」と中継サーバの「容量情報送信手段」とに対応する。また、転送許可情報送信部613は、特許請求の範囲に記載の受信サーバの「転送許可情報送信手段」に対応する。また、転送許可情報転送部614は、特許請求の範囲に記載の送信サーバの「転送許可情報転送手段」と中継サーバの「転送許可情報転送手段」とに対応する。また、ファイル転送部615は、特許請求の範囲に記載の送信サーバの「ファイル転送手段」と中継サーバの「ファイル転送手段」とに対応する。
判断部611は、クライアント100から受信したファイルの容量情報とファイルを蓄積する記憶領域の空き領域とを比較して、ファイルの転送の許可を判断する手段である。具体的には、判断部611は、転送サーバ400が送信サーバとして機能する際には、クライアント100から受信したファイルの容量情報とファイルを蓄積する記憶領域の空き領域とを比較して、ファイルの転送の許可を判断する。
例えば、判断部611は、(仮想的に定めた記憶領域の最大値)−((転送サーバに記録されている過去に受信したファイルの容量情報の総和)−(転送サーバに記録されている過去に転送し既に記憶領域から削除されたファイルの容量情報の総和))を計算する。すなわち、判断部611は、ファイル管理情報記憶部520に記憶されている全ファイルの容量情報の総和(S1とする)と、受信状態が「ファイル受信完了」になっているファイルの容量情報の総和(S2とする)とを計算し、転送サーバの記憶領域として利用可能な仮想的な容量情報の上限(Suとする)と、ファイル転送要求に含まれる転送対象ファイルのサイズ(Sfとする)とを用いて、式(Sf≦Su−(S1−S2))が真であるかを評価し、真であれば、ファイルの転送の許可を判断する。
なお、実施例1においては、ファイルの転送を開始するタイミングとして、転送サーバがファイルの全部を記憶領域に蓄積した状態で(ファイルの受信が完了した状態で)、次の転送サーバにファイルの転送を開始する場合を説明したが、この発明はこれに限定されるものではなく、転送サーバ400がファイルの一部を記憶領域に蓄積した状態で(ファイルの受信が完了しない状態で)、次の転送サーバ400(もしくはクライアント100)にファイルの転送を開始する(ファイルの受信と転送とを並行して行う)場合にも、この発明を同様に適用することができ、この場合には、転送するファイルの容量情報とファイルを蓄積する記憶領域の空き領域とを比較して、記憶領域の空き領域を適切に確保できればよい。
また、判断部611は、転送サーバ400が中継サーバとして機能する際には、クライアント100側の中継サーバもしくは送信サーバから受信したファイルの容量情報とファイルを蓄積する記憶領域とを比較して、送信サーバとして機能する場合と同様に、ファイルの転送の許可を判断する。また、判断部611は、転送サーバ400が受信サーバとして機能する場合には、中継サーバから受信したファイルの容量情報とファイルを蓄積する記憶領域の空き領域とを比較して、送信サーバとして機能する場合や中継サーバとして機能する場合と同様に、ファイルの転送の許可を判断する。
容量情報転送部612は、判断部611によってファイルの転送が許可された場合に、受信クライアント側の他の転送サーバにファイルの容量情報を転送する手段である。具体的には、容量情報転送部612は、転送サーバ400が送信サーバとして機能する際には、判断部611によってファイルの転送が許可された場合に、まず、ルーティングサーバからルーティング情報を取得し、次に、中継サーバにファイルの容量情報を転送する。例えば、容量情報転送部612は、図16に示すような要求メッセージを、ルーティングサーバに送信する。
ここで、図16に示す要求メッセージについて説明すると、「GetRoutingInfo」は、転送サーバ400がルーティング情報を要求する旨を、ルーティングサーバに伝えるためのメッセージである。また、「Sender=user1@domain1」は、ファイルを送信するクライアントのアドレス(ネットワーク上でクライアントを識別するための情報)であり、ドメイン名「domain1」に属するユーザ名「user1」であることを示している。また、「Receiver=user2@domain2」は、最終的にファイルを受信するクライアントのアドレスであり、ドメイン名「domain2」に属するユーザ名「user2」であることを示している。このような要求メッセージにより、容量情報転送部612は、送信クライアントから受信クライアントに至るまでのルーティング情報を要求する。
なお、容量情報転送部612によって送信された要求メッセージを受信したルーティングサーバは、図16に示すように、応答メッセージとして、「OK GetRoutingInfo」と、ルーティング情報である「Route=server1,server2,server3」とを応答する。すなわち、所属するドメインが「domain1」である送信クライアントから、所属するドメインが「domain2」である受信クライアントに送信されたデータは、「server1」、「server2」、「server3」の順でサーバを経由して転送されるべきであるというルーティング情報を応答する。このような応答メッセージにより、容量情報転送部612は、送信クライアントから受信クライアントに至るまでのルーティング情報を取得する。
また、容量情報転送部612は、ルーティングサーバからルーティング情報を取得すると、次に、図17に示すような要求メッセージを、中継サーバに送信する。ここで、図17に示す要求メッセージについて説明すると、「ServerRequestFileTransfer」は、これから転送サーバ400がファイルの転送を行いたい旨を、中継サーバに伝えるためのメッセージである。また、「Sender=user1@domain1」は、図16と同様、ファイルを送信するクライアントのアドレスであり、ドメイン名「domain1」に属するユーザ名「user1」であることを示している。また、「Receiver=user2@domain2」は、図16と同様、最終的にファイルを受信するクライアントのアドレスであり、ドメイン名「domain2」に属するユーザ名「user2」であることを示している。また、「Filename=test.mpg」は、転送対象のファイルのファイル名が「test.mpg」であることを示している。また、「Filesize=10MB」は、転送対象のファイルの容量が10MBであることを示している。また、「Route=server1,server2,server3」は、「user1」から「user2」に送信されたファイルは、「server1」、「server2」、「server3」の順でサーバを経由して送信されるべきであり、「server3」が受信クライアントの収容されているサーバであるという経路情報を示している。なお、容量情報転送部612によって送信された要求メッセージを受信した中継サーバは、図17に示すように、応答メッセージとして、「OK ServerRequestFileTransfer」を応答する。
また、容量情報転送部612は、転送サーバ400が中継サーバとして機能する際には、ルーティング情報は、送信サーバによってすでに取得されて転送されているので、判断部611によってファイルの転送が許可された場合に、受信クライアント側の中継サーバもしくは受信サーバに、ファイルの容量情報を転送する。
転送許可情報送信部613は、転送サーバ400が受信サーバとして機能する際に、ファイルの転送を許可する転送許可情報を中継サーバに送信する手段である。具体的には、転送許可情報送信部613は、判断部611によってファイルの転送が許可された場合に、転送許可情報を中継サーバに送信する。
転送許可情報転送部614は、転送許可情報を転送する手段である。具体的には、転送許可情報転送部614は、転送サーバ400が中継サーバとして機能する際に、受信クライアント側の中継サーバもしくは受信サーバから受信した転送許可情報を、送信クライアント側の中継サーバもしくは送信サーバに転送する。また、転送許可情報転送部614は、転送サーバ400が送信サーバとして機能する際に、中継サーバから受信した転送許可情報を送信クライアントに転送する。
ファイル転送部615は、ファイルを転送する手段である。具体的には、ファイル転送部615は、転送サーバ400が送信サーバとして機能する際に、送信クライアントから受信したファイルを中継サーバに転送する。また、ファイル転送部615は、転送サーバ400が中継サーバとして機能する際に、送信クライアント側の中継サーバもしくは送信サーバから受信したファイルを、受信クライアント側の中継サーバもしくは受信サーバに転送する。また、ファイル転送部615は、転送サーバ400が受信サーバとして機能する際に、中継サーバから受信したファイルを受信クライアントに転送する。
制御部600のなかで、状態情報処理部620は、転送サーバ400がファイルの送受信状態に係る情報を遷移、送信、または転送する手段であり、状態情報遷移部621と、状態情報送信部622と、状態情報転送部623とを備える。
状態情報遷移部621は、送受信状態に係る情報を遷移させる手段である。具体的には、状態情報遷移部621は、転送サーバ400が送信サーバとして機能する際には、送信クライアントから受信したファイルの送信状態を検知して、状態情報保持部530によって保持する送受信状態に係る情報を遷移させる。例えば、図6の(A)に示すように、送信サーバにおいては、「初期状態」、「ファイル送信中(Sending)」、「ファイル送信中断(SendingSuspend)」、および「送信サーバまでファイル送信完了(FileAccepted)」を検知して、送受信状態に係る情報を遷移させる。
また、状態情報遷移部621は、同じく送信サーバとして機能する際には、中継サーバから送受信状態に係る情報を受信して、状態情報保持部530によって保持する送受信状態に係る情報を遷移させる。例えば、図6に示すように、送信サーバにおいては、「受信サーバまでファイル送信完了(ReceiveEnable)」および受信状態に係る情報を検知することができないので、これらの情報を中継サーバから受信して、送受信状態に係る情報を遷移させる。
また、状態情報遷移部621は、転送サーバ400が受信サーバとして機能する際には、送信クライアントから受信したファイルの送信状態を検知して、状態情報保持部530によって保持する送受信状態に係る情報を遷移させる。例えば、図6の(A)に示すように、受信サーバにおいては、「受信サーバまでファイル送信完了(ReceiveEnable)」を検知して、送受信状態に係る情報を遷移させる。
また、状態情報遷移部621は、同じく受信サーバとして機能する際には、受信クライアントによって受信されるファイルの受信状態を検知して、状態情報保持部530によって保持する送受信状態に係る情報を遷移させる。例えば、図6の(B)に示すように、受信サーバにおいては、「初期状態」、「受信クライアントがファイル受信中(Receiving)」、「ファイル受信中断(ReceivingSuspend)」、および「ファイル受信完了(Received)」を検知して、送受信状態に係る情報を遷移させる。
状態情報送信部622は、送受信状態に係る情報を送信する手段である。具体的には、状態情報送信部622は、転送サーバ400が送信サーバとして機能する際には、状態情報遷移部621によって遷移させた送受信状態に係る情報を、中継サーバに送信する。例えば、状態情報遷移部621によって検知された「初期状態」、「ファイル送信中(Sending)」、「ファイル送信中断(SendingSuspend)」、および「送信サーバまでファイル送信完了(FileAccepted)」の情報を、中継サーバに送信する。
また、状態情報送信部622は、同じく送信サーバとして機能する際には、送受信状態に係る情報を送信クライアントの要求に応じて送信クライアントに送信する。例えば、状態情報送信部622は、図8に示すような要求メッセージをクライアント100から受信すると、図8に示すような応答メッセージで応答する。
また、状態情報送信部622は、転送サーバ400が受信サーバとして機能する際には、状態情報遷移部621によって遷移させた送受信状態に係る情報を中継サーバに送信する。例えば、状態情報遷移部621によって検知された「初期状態」、「受信クライアントがファイル受信中(Receiving)」、「ファイル受信中断(ReceivingSuspend)」、および「ファイル受信完了(Received)」の情報を、中継サーバに送信する。また、状態情報送信部622は、例えば、状態情報遷移部621によって検知された「受信サーバまでファイル送信完了(ReceiveEnable)」の情報を、中継サーバに送信する。
また、状態情報送信部622は、同じく受信サーバとして機能する際には、送受信状態に係る情報を受信クライアントの要求に応じて受信クライアントに送信する。例えば、状態情報送信部622は、図8に示すような要求メッセージをクライアント100から受信すると、図8に示すような応答メッセージで応答する。
状態情報転送部623は、転送サーバ400が中継サーバとして機能する際に、送受信に係る情報を転送する手段である。具体的には、状態情報転送部623は、送信クライアント側の中継サーバもしくは送信サーバから受信した送受信に係る情報を、受信クライアント側の中継サーバもしくは受信サーバに転送する。例えば、状態情報転送部623は、図18の(A)に示すような要求メッセージを、受信クライアント側の中継サーバもしくは受信サーバに転送する。
ここで、図18の(A)に示す要求メッセージについて説明すると、「StatusForward」は、送受信状態に係る情報を、送信方向へ転送する旨を、受信クライアント側の中継サーバもしくは受信サーバに伝えるためのメッセージである。また、「Filename=test.mpg」は、ファイル名「test.mpg」のファイルの送受信状態に係る情報であることを示している。また、「SendStatus=sending」は、送信状態が「ファイル送信中(Sending)」であることを示している。
また、状態情報転送部623は、受信クライアント側の中継サーバもしくは受信サーバから受信した送受信状態に係る情報を、送信クライアント側の中継サーバもしくは送信サーバに転送する。例えば、状態情報転送部623は、図18の(B)に示すような要求メッセージを、送信クライアント側の中継サーバもしくは送信サーバに転送する。例えば、状態情報転送部623は、図18の(B)に示すような要求メッセージを、送信クライアント側の中継サーバもしくは送信サーバに転送する。
ここで、図18の(B)に示す要求メッセージについて説明すると、「StatusBackward」は、送受信状態に係る情報を、受信方向へ転送する旨を、送信クライアント側の中継サーバもしくは送信サーバに伝えるためのメッセージである。また、「Filename=test2.zip」は、ファイル名「test2.zip」のファイルの送受信状態に係る情報であることを示している。また、「ReceiveStatus=Receiving」は、受信状態が「受信クライアントがファイル受信中(Receiving)」であることを示している。なお、状態情報転送部623は、転送した送受信状態に係る情報を、状態情報保持部530に保持する。
制御部600のなかで、転送キャンセル処理部630は、クライアント100(送信クライアント)が送信したファイルの転送キャンセル要求に対応する手段であり、ファイル転送停止部631と、ファイル削除部632と、転送キャンセル要求転送部633と、削除完了通知転送部634とを備える。
ファイル転送停止部631は、転送キャンセル要求を受信して、転送キャンセル要求によって指示されたファイルの転送を停止する手段である。具体的には、ファイル転送停止部631は、転送サーバ400が送信サーバとして機能する際に、送信クライアントから転送キャンセル要求を受信して、転送キャンセル要求によって指示されたファイルの転送を停止する。また、ファイル転送停止部631は、転送サーバ400が中継サーバとして機能する際に、送信クライアント側の中継サーバもしくは送信サーバから転送キャンセル要求を受信して、送信サーバとして機能する際と同様に、転送キャンセル要求によって指示されたファイルの転送を停止する。また、ファイル転送停止部631は、転送サーバ400が受信サーバとして機能する際に、中継サーバから転送キャンセル要求を受信して、送信サーバおよび中継サーバとして機能する際と同様に、転送キャンセル要求によって指示されたファイルの転送を停止する。
ファイル削除部632は、転送キャンセル要求によって指示されたファイルを削除する手段である。例えば、ファイル削除部632は、図9のような要求メッセージが、クライアント100の転送キャンセル要求送信部313aによって送信された場合には、ファイル記憶部510もしくは図示しない一時的な記憶領域上に記憶されたファイル名「test1.mpg」のファイルを削除する。
転送キャンセル要求転送部633は、転送キャンセル要求を転送する手段である。具体的には、転送キャンセル要求転送部633は、転送サーバ400が送信サーバとして機能する際に、転送キャンセル要求を中継サーバに転送する。また、転送キャンセル要求転送部633は、転送サーバ400が中継サーバとして機能する際に、転送キャンセル要求を受信クライアント側の中継サーバもしくは受信サーバに転送する。また、転送キャンセル要求転送部633は、転送サーバ400が受信サーバとして機能する際に、転送キャンセル要求を受信クライアントに転送する。
削除完了通知転送部634は、ファイルの削除が受信クライアントにおいて完了したことを示す削除完了通知を転送する手段である。具体的には、削除完了通知転送部634は、転送サーバ400が送信サーバとして機能する際に、削除完了通知を中継サーバから受信して送信クライアントに転送する。また、削除完了通知転送部634は、転送サーバ400が中継サーバとして機能する際に、削除完了通知を受信クライアント側の中継サーバもしくは受信サーバから受信して、送信クライアント側の中継サーバもしくは送信サーバに転送する。また、削除完了通知転送部634は、転送サーバ400が受信サーバとして機能する際に、削除完了通知を受信クライアントから受信して中継サーバに転送する。
制御部600のなかで、受信キャンセル処理部640は、クライアント100(受信クライアント)が送信したファイルの受信キャンセル要求に対応する手段であり、ファイル転送停止部641と、受信キャンセル完了通知送信部642と、転送開始部643とを備える。
ファイル転送停止部641は、転送サーバ400が受信サーバとして機能する際に、受信キャンセル要求によって指示されたファイルの転送を停止する手段である。具体的には、受信クライアントから、ファイルの受信をキャンセルすることを指示する受信キャンセル要求を受信して、受信キャンセル要求によって指示されたファイルの転送を停止する。例えば、ファイル転送停止部641は、図11に示すような要求メッセージを受信クライアントから受信すると、ファイル名「test1.mpg」のファイルの転送を停止する。
受信キャンセル完了通知送信部642は、転送サーバ400が受信サーバとして機能する際に、受信キャンセル完了通知を受信クライアントに送信する手段である。具体的には、ファイル転送停止部641によってファイルの転送を停止したことを示す受信キャンセル完了通知を、受信クライアントに送信する。
転送開始部643は、転送サーバ400が受信サーバとして機能する際に、ファイルの先頭から転送を開始する手段である。具体的には、転送開始部643は、受信キャンセル完了通知送信部642によって受信キャンセル完了通知を受信クライアントに送信した後に、受信クライアントからファイルの受信を要求するファイル受信要求を受信すると、ファイルの先頭から転送を開始する。
制御部600のなかで、受信放棄処理部650は、クライアント100(受信クライアント)が送信したファイルの受信放棄要求に対応する手段であり、ファイル転送停止部651と、ファイル削除部652と、受信放棄完了通知送信部653と、ファイル転送許否通知送信部654 とを備える。
ファイル転送停止部651は、転送サーバ400が受信サーバとして機能する際に、受信放棄要求によって指示されたファイルの転送を停止する手段である。具体的には、ファイル転送停止部651は、受信クライアントからファイルの受信を放棄することを指示する受信放棄要求を受信して、受信放棄要求によって指示されたファイルの転送を停止する。例えば、ファイル転送停止部651は、図12に示すような要求メッセージを受信クライアントから受信すると、ファイル名「test1.mpg」のファイルの転送を停止する。
ファイル削除部652は、転送サーバ400が受信サーバとして機能する際に、所定の場合に、ファイルを削除する手段である。具体的には、送信クライアントがファイルを他のクライアントに同報していない場合に、または、同報している場合であっても他の受信クライアントに対するファイルの転送が完了している場合並びに他の受信クライアントから受信放棄要求を受信している場合に、ファイルを削除する。
受信放棄完了通知送信部653は、転送サーバ400が受信サーバとして機能する際に、受信放棄完了通知を受信クライアントに送信する手段である。具体的には、受信放棄完了通知送信部653は、受信クライアントに対するファイルの転送を放棄したことを示す受信放棄完了通知を受信クライアントに送信する。
ファイル転送許否通知送信部654は、転送サーバ400が受信サーバとして機能する際に、ファイル転送拒否通知を受信クライアントに送信する手段である。具体的には、ファイル転送許否通知送信部654は、受信放棄完了通知送信部653によって受信放棄完了通知を受信クライアントに送信した後に、受信クライアントからファイルの受信を要求するファイル受信要求を受信すると、受信クライアントに対するファイルの転送を拒否する転送拒否通知を受信クライアントに送信する。
[実施例1に係るファイル転送システムの処理の手順]
次に、図19から図23を用いて、実施例1に係るファイル転送システムの処理の手順を説明する。図19は、ファイル転送処理の手順を示すシーケンス図であり、図20は、ファイル受信処理の手順を示すシーケンス図であり、図21は、転送キャンセル処理の手順を示すシーケンス図であり、図22は、受信キャンセル処理の手順を示すシーケンス図であり、図23は、受信放棄処理の手順を示すシーケンス図である。
[ファイル転送処理の手順]
まず、実施例1における送信クライアントは、ファイルの容量情報を送信サーバに送信する(ステップS1901)。なお、実施例1における送信クライアントは、ファイルの容量情報と共に、送信クライアントのアドレス(送信ユーザアドレス)、受信クライアントのアドレス(受信ユーザアドレス)、および送信対象ファイルのファイル名も送信する。
次に、送信サーバは、送信クライアントからファイルの容量情報を受信すると、送信クライアントから受信したファイルの容量情報とファイルを蓄積する記憶領域の空き領域とを比較して、ファイルの転送の許可を判断する(ステップS1902)。
そして、送信サーバは、ファイルの転送を許可した場合に、ルーティングサーバにルーティング情報を要求する(ステップS1903)。なお、実施例1における送信サーバは、ルーティング情報を要求する際に、送信クライアントのアドレスおよび受信クライアントのアドレスを送信する。すると、ルーティングサーバは、これらのアドレスに対応するルーティング情報を応答する(ステップS1904)。
続いて、送信サーバは、ルーティングサーバからルーティング情報を受信すると、ファイル管理情報記憶部520に、ファイル名、ファイルサイズ、送信クライアントのアドレス、および受信クライアントのアドレスを記憶させる(ステップS1905)。
そして、送信サーバは、ルーティング情報で送信サーバの次に記載されている中継サーバにファイルの容量情報を転送する(ステップS1906)。なお、実施例1における送信サーバは、ファイルの容量情報と共に、送信クライアントのアドレス、受信クライアントのアドレス、ファイルの名前、およびルーティング情報も送信する。
次に、中継サーバは、送信サーバからファイルの容量情報を受信すると、送信サーバから受信したファイルの容量情報とファイルを蓄積する記憶領域の空き領域とを比較して、ファイルの転送の許可を判断する(ステップS1907)。
そして、中継サーバは、ファイルの転送を許可した場合に、ファイル管理情報記憶部520に、ファイル名、ファイルサイズ、送信クライアントのアドレス、および受信クライアントのアドレスを記憶させる(ステップS1908)。すると、中継サーバは、受信サーバにファイルの容量情報を転送する(ステップ1909)。
続いて、受信サーバは、中継サーバからファイルの容量情報を受信すると、中継サーバから受信したファイルの容量情報とファイルを蓄積する記憶領域の空き領域とを比較して、ファイルの転送の許可を判断する(ステップS1910)。
そして、受信サーバは、ファイルの転送を許可した場合に、ファイル管理情報記憶部520に、ファイル名、ファイルサイズ、送信クライアントのアドレス、および受信クライアントのアドレスを記憶させる(ステップS1911)。
次に、受信サーバは、ファイルの転送を許可する転送許可情報を中継サーバに送信する(ステップS1912)。そして、中継サーバは、受信サーバから転送許可情報を受信すると、転送許可情報を送信サーバに送信する(ステップS1913)。すると、送信サーバは、中継サーバから転送許可情報を受信すると、転送許可情報を送信クライアントに送信する(ステップS1914)。
次に、送信クライアントは、転送許可情報を受信し、送信サーバにファイルを送信する(ステップS1915)。そして、送信サーバは、送信クライアントからファイルを受信すると、中継サーバにファイルを転送する(ステップS1916)。続いて、中継サーバは、送信サーバからファイルを受信すると、受信サーバにファイルを転送する(ステップS1917)。
こうして、実施例1に係るファイル転送システムは、送信クライアントにおいて、転送サーバにおけるファイル転送の許可を把握し、転送サーバにおける一時的なデータ蓄積可能容量に応じて、送信クライアントから転送サーバに向けてファイルを送信することから、例えば、送信クライアントから転送サーバに向けて大容量のファイルを送信した場合に、転送サーバの一時的なデータ蓄積可能容量を使い果たして他の通信に障害をもたらすような事態を回避するなど、ファイルの転送失敗を防ぐことが可能になる。
[ファイル受信処理の手順]
まず、実施例1における受信クライアントは、受信クライアント宛のファイルが受信サーバに到着しているかどうかを確認することを目的として、定期的に、ファイルリスト取得要求を受信サーバに送信する(ステップS2001)。
すると、受信サーバは、受信クライアントからファイルリスト取得要求を受信すると、受信クライアント(受信ユーザ)に送信可能なファイルリストを応答メッセージに含め、受信クライアントに返却する(ステップS2002)。
次に、受信クライアントは、受信サーバからファイルリストの応答メッセージを受信すると、応答メッセージに含まれるファイルそれぞれについて、ファイル受信要求を受信サーバに送信する(ステップS2003)。なお、実施例1における受信クライアントは、ファイル受信要求と共に、ファイル名を送信する。
そして、受信サーバは、受信クライアントからファイル受信要求を受信すると、受信クライアントから要求されたファイルを受信クライアントに送信する(ステップS2004)。
[転送キャンセル処理の手順]
まず、実施例1における送信クライアントは、転送キャンセルを行うファイルの送信を停止する(ステップS2101)。
次に、送信クライアントは、ファイルの転送をキャンセルすることを指示する転送キャンセル要求を送信サーバに送信する(ステップS2102)。なお、実施例1における送信クライアントが送信する転送キャンセル要求には、転送キャンセル対象のファイルのファイル名が含まれる。
すると、送信サーバは、送信クライアントから転送キャンセル要求を受信すると、転送キャンセル要求によって指示されたファイルの転送を停止し(ステップS2103)、送受信状態に係る情報を「転送キャンセル(SendingCancel)」に遷移させ、転送キャンセル対象のファイル(または、ファイルの一部)を削除する(ステップS2104)。
そして、送信サーバは、ファイル管理情報記憶部520に記載のルーティング情報から中継サーバのアドレスを取得し、転送キャンセル要求を受信サーバに転送する(ステップS2105)。
続いて、中継サーバは、送信サーバから転送キャンセル要求を受信すると、転送キャンセル要求によって指示されたファイルの転送を停止し(ステップS2106)、転送キャンセル対象のファイル(または、ファイルの一部)を削除する(ステップS2107)。
そして、中継サーバは、ファイル管理情報記憶部520に記載のルーティング情報から受信サーバのアドレスを取得し、転送キャンセル要求を受信サーバに転送する(ステップS2108)。
次に、受信サーバは、中継サーバから転送キャンセル要求を受信すると、転送キャンセル要求によって指示されたファイルの転送を停止し(ステップS2109)、転送キャンセル対象のファイル(または、ファイルの一部)を削除する(ステップS2110)。
そして、受信サーバは、受信クライアントに対し、転送キャンセル要求を転送する(ステップS2111)。すると、受信クライアントは、受信サーバから転送キャンセル要求を受信すると、転送キャンセル要求によって指示されたファイルを削除する(ステップS2112)。
続いて、受信クライアントは、ファイルの削除が受信クライアントにおいて完了したことを示す削除完了通知を受信サーバに送信する(ステップS2113)。
そして、受信サーバは、受信クライアントから削除完了通知を受信すると、中継サーバに削除完了通知を転送する(ステップS2114)。すると、中継サーバは、受信サーバから削除完了通知を受信すると、送信サーバに削除完了通知を転送する(ステップS2115)。そして、送信サーバは、中継サーバから削除完了通知を受信すると、送信クライアントに削除完了通知を転送する(ステップS2116)。
こうして、実施例1に係るファイル転送システムは、送信クライアントが誤ってファイルを送信してしまった場合などにその転送をキャンセルできることから、受信クライアントに係るネットワークリソースやディスクスペースを無駄なファイルによって占有させないことが可能になる。
[受信キャンセル処理の手順]
まず、実施例1における受信クライアントは、ファイルの受信をキャンセルすることを指示する受信キャンセル要求を、受信サーバに送信する(ステップS2201)。
次に、受信サーバは、受信クライアントから受信キャンセル要求を受信すると、受信キャンセル要求によって指示されたファイルの転送を停止する(ステップS2202)。なお、ファイルの送受信状態に係る情報を「受信キャンセル状態(ReceivingCancel)」に遷移させる。
そして、受信サーバは、ファイルの転送を停止したことを示す受信キャンセル完了通知を、受信クライアントに送信する(ステップS2203)。すると、受信クライアントは、受信サーバから受信キャンセル完了通知を受信すると、すでに受信したファイル(ファイルの一部)を削除し(ステップS2204)、受信キャンセル処理を終了する。
続いて、受信クライアントは、ファイルの受信を再開することを目的として、ファイルの受信を要求するファイル受信要求を受信サーバに送信する(ステップS2205)。
すると、受信サーバは、受信クライアントからファイル受信要求を受信すると、ファイルの先頭から受信クライアントにファイルの転送を開始し(ステップS2206)、受信クライアントにファイルを転送する(ステップS2207)。なお、受信サーバは、ファイルの送受信状態に係る情報を「ファイル受信中(Receiving)」に遷移させる。
こうして、実施例1に係るファイル転送システムは、受信クライアントがファイルの受信をキャンセルした場合にすでに受信したファイルを削除できることから、受信クライアントのディスクスペースを無駄なファイルによって占有させないことが可能になる。
[受信放棄処理の手順]
まず、実施例1における受信クライアントは、ファイルの受信を放棄することを指示する受信放棄要求を、受信サーバに送信する(ステップS2301)。
次に、受信サーバは、受信クライアントから受信放棄要求を受信すると、受信放棄要求によって指示されたファイルの転送を停止する(ステップS2302)。なお、ファイルの送受信状態にかかる情報を「受信放棄状態(ReceivingRenouce)」に遷移させる。
そして、受信サーバは、ファイル管理情報記憶部520に、受信クライアントが受信を放棄した旨を記憶させ(ステップS2303)、送信クライアントがファイルを他の受信クライアントに同報していない場合に、または、同報している場合であっても他の受信クライアントに対するファイルの転送が完了している場合並びに他の受信クライアントから受信放棄要求を受信している場合に、ファイルを削除する(ステップS2304)。
そして、受信サーバは、受信クライアントに対するファイルの転送を放棄したことを示す受信放棄完了通知を、受信クライアントに送信する(ステップS2305)。すると、受信クライアントは、受信サーバから受信放棄完了通知を受信すると、すでに受信したファイル(ファイルの一部)を削除し(ステップS2306)、受信放棄処理を終了する。
続いて、受信クライアントは、ファイルの受信を再開することを目的として、ファイルの受信を要求するファイル受信要求を受信サーバに送信する(ステップS2307)。
すると、受信サーバは、ファイル管理情報記憶部520を確認し(ステップS2308)、受信クライアントに対するファイルの転送を拒否するファイル転送拒否通知を送信する(ステップS2309)。
こうして、実施例1に係るファイル転送システムは、複数の受信クライアントに同報されたメールについて、受信放棄を要求しない他の受信クライアントの受信状況などを判断してファイルを削除できることから、複数の受信クライアントに同報されたメールについて、複数のクライアント間の受信状況などを調整しながらファイルを管理することが可能になる。
[実施例1の効果]
上記してきたように、実施例1によれば、転送サーバを経由して送信クライアントから受信クライアントにファイルを転送するファイル転送システムであって、送信クライアントは、ファイルの容量情報を転送サーバに送信し、転送サーバからファイルの転送を許可する転送許可情報を受信した場合に、転送サーバにファイルを送信し、転送サーバは、送信クライアントから受信したファイルの容量情報とファイルを蓄積する記憶領域の空き領域とを比較して、ファイルの転送の許可を判断し、ファイルの転送を許可した場合に、転送許可情報を送信クライアントに送信するので、送信クライアントにおいて、転送サーバにおけるファイル転送の許可を把握し、転送サーバにおける一時的なデータ蓄積可能容量に応じて、送信クライアントから転送サーバに向けてファイルを送信することから、例えば、送信クライアントから転送サーバに向けて大容量のファイルを送信した場合に、転送サーバの一時的なデータ蓄積可能容量を使い果たして他の通信に障害をもたらすような事態を回避するなど、ファイルの転送失敗を防ぐことが可能になる。
また、実施例1によれば、送信クライアントからファイルを受信する送信サーバと、受信クライアントにファイルを送信する受信サーバと、送信サーバと受信サーバとの間でファイルが経由するひとつまたは複数の中継サーバとで構成され、送信クライアントから受信クライアントにファイルを転送するファイル転送システムであって、送信クライアントは、ファイルの容量情報を送信サーバに送信し、送信サーバからファイルの転送を許可する転送許可情報を受信した場合に、送信サーバにファイルを送信し、送信サーバは、送信クライアントから受信したファイルの容量情報とファイルを蓄積する記憶領域の空き領域とを比較して、ファイルの転送の許可を判断し、ファイルの転送を許可した場合に、中継サーバにファイルの容量情報を転送し、中継サーバから受信した転送許可情報を送信クライアントに転送し、送信クライアントから受信したファイルを中継サーバに転送し、中継サーバは、送信クライアント側の中継サーバもしくは送信サーバから受信したファイルの容量情報とファイルを蓄積する記憶領域の空き領域とを比較して、ファイルの転送の許可を判断し、ファイルの転送を許可した場合に、受信クライアント側の中継サーバもしくは受信サーバにファイルの容量情報を転送し、受信クライアント側の中継サーバもしくは受信サーバから受信した転送許可情報を送信クライアント側の中継サーバもしくは送信サーバに転送し、送信クライアント側の中継サーバもしくは送信サーバから受信したファイルを受信クライアント側の中継サーバもしくは受信サーバに転送し、受信サーバは、中継サーバから受信したファイルの容量情報とファイルを蓄積する記憶領域の空き領域とを比較して、ファイルの転送の許可を判断し、ファイルの転送を許可した場合に、転送許可情報を中継サーバに送信し、中継サーバから受信したファイルを受信クライアントに転送するので、送信クライアントにおいて、転送サーバ(送信サーバ、中継サーバ、および受信サーバ)におけるファイル転送の許可を把握し、転送サーバにおける一時的なデータ蓄積可能容量に応じて、送信クライアントから転送サーバに向けてファイルを送信することから、例えば、送信クライアントから転送サーバに向けて大容量のファイルを送信した場合に、いずれかの転送サーバの一時的なデータ蓄積可能容量を使い果たして他の通信に障害をもたらすような事態を回避するなど、ファイルの転送失敗を防ぐことが可能になる。
また、実施例1によれば、送信クライアントは、ファイルの送受信状態に係る情報を保持し、ファイルの送信状態を検知して、保持する送受信状態に係る情報を遷移させ、送受信状態に係る情報を送信サーバに要求して取得し、送信サーバは、ファイルの送受信状態に係る情報を保持し、送信クライアントから受信したファイルの送信状態を検知して、保持する送受信状態に係る情報を遷移させ、遷移させた送受信状態に係る情報を中継サーバに送信し、中継サーバから送受信状態に係る情報を受信して、保持する送受信状態に係る情報を遷移させ、保持する送受信状態に係る情報を送信クライアントの要求に応じて送信クライアントに送信し、中継サーバは、ファイルの送受信状態に係る情報を保持し、送信クライアント側の中継サーバもしくは送信サーバから受信した送受信状態に係る情報を受信クライアント側の中継サーバもしくは受信サーバに転送し、受信クライアント側の中継サーバもしくは受信サーバから受信した送受信状態に係る情報を送信クライアント側の中継サーバもしくは送信サーバに転送し、受信サーバは、ファイルの送受信状態に係る情報を保持し、送信クライアントから受信したファイルの送信状態を検知して、保持する送受信状態に係る情報を遷移させ、遷移させた送受信状態に係る情報を中継サーバに送信し、受信クライアントによって受信されるファイルの受信状態を検知して、保持する送受信状態に係る情報を遷移させ、遷移させた送受信状態に係る情報を中継サーバに送信し、保持する送受信状態に係る情報を受信クライアントの要求に応じて受信クライアントに送信し、受信クライアントは、ファイルの送受信状態に係る情報を保持し、ファイルの受信状態を検知して、保持する送受信状態に係る情報を遷移させ、送受信状態に係る情報を受信サーバに要求して取得するので、送信クライアントおよび受信クライアントにおいて、ファイルの送受信状態に係る情報を把握できることから、ファイルの送受信状態に応じてファイルの送受信を制御することが可能になる。
具体的に例を挙げると、必ずしも高速のネットワークに接続しているとは限らない受信クライアント(例えば、電話回線に転送速度56kbpsのアナログモデムで接続する受信クライアントなど)に対して、送信クライアントが大容量のファイル(例えば、10MBのファイルなど)を送信すると、受信クライアントにおいては、ファイルの受信に長時間(約24分)を要し、この間の受信クライアントにおけるメールの受信やインターネットへのアクセススピードが大幅に低下し、また、ネットワーク障害に遭う可能性も高くなり、結果としてファイル転送が突然切断される可能性も高くなるが、送信クライアントにおいて、受信クライアントの受信状態を把握できることから、例えば、受信クライアントが「受信中」の状態である場合にはファイルの送信を控えるように制御することが可能になる。また、送信クライアントがファイルの送信を中断した場合に、送信クライアントにおいて、送信クライアントの状態情報を「送信中断」の状態に遷移させることができることから、送信を再開する場合には、この状態情報に基づいて続きから送信を再開することが可能になる。また、受信クライアントがファイルの受信を中断した場合に、受信クライアントにおいて、受信クライアントの状態情報を「受信中断」の状態に遷移させることができることから、受信を再開する場合には、この状態情報に基づいて続きから受信を再開することが可能になる。
また、実施例1によれば、送信クライアントは、ファイルの転送をキャンセルすることを指示する転送キャンセル要求を送信サーバに送信し、送信サーバは、送信クライアントから転送キャンセル要求を受信して、転送キャンセル要求によって指示されたファイルの転送を停止し、転送キャンセル要求によって指示されたファイルを削除し、転送キャンセル要求を中継サーバに転送し、ファイルの削除が受信クライアントにおいて完了したことを示す削除完了通知を中継サーバから受信して送信クライアントに転送し、中継サーバは、送信クライアント側の中継サーバもしくは送信サーバから転送キャンセル要求を受信して、転送キャンセル要求によって指示されたファイルの転送を停止し、転送キャンセル要求によって指示されたファイルを削除し、転送キャンセル要求を受信クライアント側の中継サーバもしくは受信サーバに転送し、受信クライアント側の中継サーバもしくは受信サーバから受信した削除完了通知を送信クライアント側の中継サーバもしくは送信サーバに転送し、受信サーバは、中継サーバから転送キャンセル要求を受信して、転送キャンセル要求によって指示されたファイルの転送を停止し、転送キャンセル要求によって指示されたファイルを削除し、転送キャンセル要求を受信クライアントに転送し、受信クライアントから受信した削除完了通知を中継サーバに転送し、受信クライアントは、受信サーバから受信した転送キャンセル要求によって指示されたファイルを削除し、削除完了通知を受信サーバに送信するので、送信クライアントが誤ってファイルを送信してしまった場合などにその転送をキャンセルできることから、受信クライアントに係るネットワークリソースやディスクスペースを無駄なファイルによって占有させないことが可能になる。
また、実施例1によれば、受信サーバは、受信クライアントからファイルの受信をキャンセルすることを指示する受信キャンセル要求を受信して、受信キャンセル要求によって指示されたファイルの転送を停止し、ファイルの転送を停止したことを示す受信キャンセル完了通知を受信クライアントに送信し、受信キャンセル完了通知を受信クライアントに送信した後に受信クライアントからファイルの受信を要求するファイル受信要求を受信すると、ファイルの先頭から転送を開始し、受信クライアントは、受信キャンセル要求を受信サーバに送信し、受信キャンセル完了通知を受信サーバから受信すると、すでに受信したファイルを削除するので、受信クライアントがファイルの受信をキャンセルした場合にすでに受信したファイルを削除できることから、受信クライアントのディスクスペースを無駄なファイルによって占有させないことが可能になる。
また、実施例1によれば、受信サーバは、受信クライアントからファイルの受信を放棄することを指示する受信放棄要求を受信して、受信放棄要求によって指示されたファイルの転送を停止し、送信クライアントがファイルを他の受信クライアントに同報していない場合に、または、同報している場合であっても他の受信クライアントに対するファイルの転送が完了している場合並びに他の受信クライアントから受信放棄要求を受信している場合に、ファイルを削除し、受信クライアントに対するファイルの転送を放棄したことを示す受信放棄完了通知を受信クライアントに送信し、受信放棄完了通知を受信クライアントに送信した後に受信クライアントからファイルの受信を要求するファイル受信要求を受信すると、受信クライアントに対するファイルの転送を拒否するファイル転送拒否通知を受信クライアントに送信し、受信クライアントは、受信放棄要求を受信サーバに送信し、受信サーバから受信放棄完了通知を受信すると、すでに受信したファイルを削除するので、複数の受信クライアントに同報されたメールについて、受信放棄を要求しない他の受信クライアントの受信状況などを判断してファイルを削除できることから、複数の受信クライアントに同報されたメールについて、複数のクライアント間の受信状況などを調整しながらファイルを管理することが可能になる。