(57)【要約】【課題】  HTTPプロトコルの場合は、論理通信路という概念が無く、クライアントからの要求とそれに対する応答で通信が行なわれ、各要求はお互いに関連がなく独立している。このため一つのファイル転送が複数の要求から構成される場合、要求を受けるWWWサーバでは、受けた要求が同一の転送元からの要求なのか、それとも別の転送元からの要求なのか判別できない。このため排他の区間を決めることができない。【解決手段】  ファイル転送が行なわれている間、その転送元と転送先に、その転送元と転送先でファイル転送が行なわれていることを示すための、ファイル転送システム内でユニークな内容の転送プロセス情報を生成して保存しておく。ファイル転送が行なわれた場合に、転送先の転送プロセス情報を確認することで、他のファイル転送との排他を行なう。【選択図】  図１
2005208786.tif 000002
【特許請求の範囲】
【請求項１】
HTTPプロトコルによるファイル転送を開始するクライアントと、クライアントからのファイル転送要求を受けてクライアントとのファイル転送を行なうWWWサーバを有するサーバとを備え、前記サーバは一意の転送プロセス情報によりファイル転送が行なわれている状態を確認することを特徴とするファイル転送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、HTTPプロトコルを使用してファイル転送を行うための転送処理の排他制御技術に関する。
【背景技術】
【０００２】
従来、ファイル転送システムの形式としては、TCP/IPプロトコルなどを使用して通信ネットワークを介したファイル転送を行なうというものがある。インターネットを介したファイル転送を行なう場合、セキュリティ対策によりファイアウォールでHTTPプロトコルやSMTPプロトコルなど限られたプロトコルのポート（通信口）しか使用できないよなネットワーク環境の場合、既存のネットワーク環境を変更せずそのまま利用したいような場合がある。このようなネットワーク環境でファイル転送を行ないたい場合は、HTTPプロトコルを使用したファイル転送システムが考えられる。
【０００３】
また、ファイル転送を行なう場合、ある転送元ファイルからある転送先ファイルに転送が行なわれている状態で、別の転送元ファイルから、同じ転送先ファイルに対して転送が行なわれた場合に、転送先ファイルの内容がそれぞれの転送元ファイルの内容と混ざり、不整合なファイルとなってしまう。これを防止するために、ファイルの転送が行なわれているファイルに対して別の転送元ファイルから転送が行なわれた場合の排他制御が必要となる。
【０００４】
【特許文献１】特開２００１−５７４６号公報
【０００５】
【特許文献２】特開２００３−１７７９８７号公報
【特許文献３】特開平１１−２５９３４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
TCP/IPプロトコルなどを使用してファイル転送の排他制御を行なう場合は、通常一つのファイル転送に必要な処理は一つの論理通信路（コネクション）を使用して行なうため、その論理通信路が接続されている区間について排他を行なうことで排他制御が実現できる。
【０００７】
しかし、HTTPプロトコルの場合は、論理通信路という概念が無く、クライアントからの要求とそれに対する応答で通信が行なわれ、各要求はお互いに関連がなく独立している。このため一つのファイル転送が複数の要求から構成される場合、要求を受けるWWWサーバでは、受けた要求が同一の転送元からの要求なのか、それとも別の転送元からの要求なのか判別できない。このため排他の区間を決めることができないという問題がある。
【０００８】
また、ファイル転送中に何らかの要因により転送処理が途中で中断される場合がある。転送効率を考慮して、中断されたファイル転送処理に対して再度転送を行なった場合に、既に転送が完了している位置以降のファイルのデータから転送を行なう場合など、転送が中断されている転送先ファイルに対して、別の転送元からの転送処理により転送先ファイルの内容が破壊されないようにするために排他を行なう必要がある。このように、実際に通信が行なわれていないような、転送処理が中断されている状態での排他も必要となる。
【０００９】
本発明の目的は、HTTPプロトコルを使用したファイル転送において、ファイル転送中、およびファイル転送中に何らかの要因により転送処理が途中で中断されて実際に通信が行なわれていない状態での、ファイル転送の排他制御方法を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明のファイル転送システムは、使用者からの指示によりHTTPプロトコルによるファイル転送を開始するクライアントと、クライアントからのファイル転送要求を受けてクライアントとのファイル転送を行なうWWWサーバを有するサーバとからなるファイル転送システムであって、クライアントは、ファイル転送の開始時に別のクライアントからのファイル転送との区別を行なうための、ファイル転送システム内でユニークな内容の転送プロセス情報を生成して保存し、サーバへのファイル転送要求とともにその転送プロセス情報を通知し、ファイル転送の終了時に保存していた転送プロセス情報を削除する手段を有し、サーバは、クライアントからのファイル転送要求とともに通知された転送プロセス情報をファイル転送の開始時に保存し、ファイル転送終了時に保存していた転送プロセス情報を削除する手段を有し、また、サーバは、クライアントからのファイル転送要求とともに、通知された転送プロセス情報と既に保存済みの転送プロセス情報をチェックし、他のファイル転送が実行中かどうかを判断する手段を有することを、特徴とする。
【発明の効果】
【００１１】
本発明によれば、HTTPプロトコルのように、ファイル転送を行なう上で一連の要求が互いに関係なく独立しているような通信プロトコルにおいて、従来のTCP/IPプロトコルなどを使用した場合と同様に、正しくファイル転送毎の排他を行なうことができるという効果がある。また、ファイル転送中に何らかの要因により転送処理が途中で中断されて実際に通信が行なわれていない状態においても、ファイル転送の排他を正しく行なうことができるという効果がある。
【発明を実施するための最良の形態】
【００１２】
以下、本発明に関するファイル転送システムの実施形態を、図面を参照しながら説明する。図１は、本発明の実施形態にかかるファイル転送システムの全体構成を示すものである。
【００１３】
ファイル転送システムは、HTTPプロトコルによるファイル転送要求を行なうクライアント(1002,1003,1004)と、クライアントからのファイル転送要求を受けてクライアントとファイル転送を行なうWWWサーバを有するサーバ(1001)とがネットワーク接続されている。クライアントには、転送の対象となるファイル(1007)が存在し、HTTPプロトコルによりWWWサーバとの通信を行なうHTTP通信制御(1005)と、サーバとのファイル転送処理を制御するファイル転送制御(1006)を備える。サーバには、転送の対象となるファイル(1008)が存在し、クライアントからのHTTPプロトコルによるファイル転送要求を受け付けるWWWサーバ(1010)と、クライアントとのファイル転送処理を制御するファイル転送制御(1009)を備える。本ファイル転送システムでのファイル転送には、クライアントに存在するファイルをサーバへ転送するアップロード転送と、サーバに存在するファイルをクライアントへ転送するダウンロード転送の２種類がある。さらに、本ファイル転送システムでは、複数のクライアントからサーバに存在する同じファイルに対してのアップロード転送は行なえないようにし、一つのクライアントからのみアップロード転送が行なえるようにする。また、複数のクライアントからサーバに存在する同じファイルに対してのダウンロード転送は行なえるようにする。
【００１４】
つぎに、１つのクライアントからサーバに対してファイル転送が行なわれた場合の処理の概要を説明する。
【００１５】
図２は、１つのクライントからファイル転送処理が行なわれている状態を示すものである。サーバに対してファイル転送を要求したクライアント１では、ファイル転送の開始時に別のクライアントからのファイル転送との区別を行なうための、ファイル転送システム内でユニークな内容の転送プロセス情報(2001)を生成し、サーバに対するファイル転送要求とともに生成した転送プロセス情報をサーバへ通知し、これをサーバで保存する(2002)。この転送プロセス情報をファイル転送が行なわれている間、クライアントとサーバに保存しておき、ファイル転送が終了したときに削除する。これにより、転送プロセス情報が存在する間はその転送プロセス情報に対するファイル転送が実行中であること示す。また、ファイル転送中になんらかの要因で転送処理が中断された状態でも、転送プロセス情報は保存されているため、同様にファイル転送が実行中であることを示す。
【００１６】
図４は、転送プロセス情報および転送種別から構成されたテーブルである。テーブル内には、別のクライアントからのファイル転送との区別を行なうための、ファイル転送システム内でユニークな内容の転送プロセス情報と(4001)、その転送プロセス情報に対するファイル転送がアップロード転送なのか、またはダウンロード転送なのか示す転送種別を持つ(4002)。
【００１７】
つぎに、１つのクライアントからサーバに対してファイル転送が行なわれた場合の処理の詳細を説明する。
【００１８】
図５は、クライアントの処理の流れを示すフローチャート、図６は、アップロード転送時のサーバの処理の流れを示すフローチャート、図７は、ダウンロード転送時のサーバの処理の流れを示すフローチャートである。
【００１９】
アップロード転送またはダウンロード転送のファイル転送を要求されたクライアントは（図５のフローチャート）、はじめに、転送対象となるファイルに対する転送プロセス情報が存在するかどうかをチェックする(5001)。ファイル転送中になんらかの要因で転送処理が中断された場合は、転送処理が完了していないため、クライアントとサーバに転送プロセス情報が保存されている状態となっている。この場合は、中断された転送の続きを行うようにするために新しく転送プロセス情報の生成は行わず、既に存在する転送プロセス情報を使用するようにする(5001のYes)。ファイル転送が行われていない場合は転送プロセス情報は存在しないため(5001のNo)、新しく転送プロセス情報を生成して保存する（5002）。つづいて、サーバに対してアップロード転送またはダウンロード転送のファイル転送要求を行う。このときに、生成した転送プロセス情報をサーバへ通知する（5003）。
【００２０】
クライアントよりアップロード転送のファイル転送要求を受けたサーバでは（図６のフローチャート）、はじめに、ファイル転送要求で通知された転送プロセス情報を受け取る(6001)。受け取った転送プロセス情報が、転送対象となるファイルに対して既に存在するかどうかをチェックする(6002)。ファイル転送中になんらかの要因で転送処理が中断された場合は、転送処理が完了していないため、転送プロセス情報が保存されている状態となっている。この場合は、中断された転送の続きを行うようにする(6002のYes)。そして、中断されたときの転送種別がアップロードであることをチェックし、中断された時の転送種別と今回の転送種別が異なる場合はクライアントに対して転送不可の応答を通知する。同じクライアントからのファイル転送が実行されていない場合は、受け取った転送プロセス情報は存在しない(6002のNo)。受け取った転送プロセス情報以外の転送プロセス情報が存在するかチェックし（6004)、他のクライアントからのファイル転送は実行されていないため(6004のNo)、受け取った転送プロセス情報を保存し(6005)、ファイル転送が実行中の状態とする。そして、クライアントに対して転送可能の応答を通知する(6006)。その後、クライアントからのファイルのデータを受信し(6007)、ファイル転送が完了したら、最後に保存していた転送プロセス情報を削除する(6008)。
【００２１】
クライアントよりダウンロード転送のファイル転送要求を受けたサーバでは（図７のフローチャート）、はじめに、ファイル転送要求で通知された転送プロセス情報を受け取る(7001)。受け取った転送プロセス情報が、転送対象となるファイルに対して既に存在するかどうかをチェックする(7002)。ファイル転送中になんらかの要因で転送処理が中断された場合は、転送処理が完了していないため、転送プロセス情報が保存されている状態となっている。この場合は、中断された転送の続きを行うようにする(7002のYes)。そして、中断されたときの転送種別がダウンロードであることをチェックし、中断された時の転送種別と今回の転送種別が異なる場合はクライアントに対して転送不可の応答を通知する。同じクライアントからのファイル転送が実行されていない場合は、受け取った転送プロセス情報は存在しない(7002のNo)。つぎに、受け取った転送プロセス情報以外の転送プロセス情報が存在するチェックし（7004)、他のクライアントからのファイル転送は実行されていないため(7004のNo)、受け取った転送プロセス情報を保存し(7006)、ファイル転送が実行中の状態とする。そして、クライアントに対して転送可能の応答を通知する(7007)。その後、クライアントへファイルのデータを送信し(7008)、ファイル転送が完了したら、最後に保存していた転送プロセス情報を削除する(7009)。
【００２２】
サーバより応答を受け取ったクライアント(図５のフローチャート)では(5004)、応答の内容が転送可能であることをチェックし(5005のYes)、アップロード転送の場合は、ファイルのデータをサーバに送信し、ダウンロード転送の場合はファイルのデータをサーバより受信する(5006)。ファイルのデータの転送が完了したら、最後に保存していた転送プロセス情報を削除する(5007)。
【００２３】
つぎに、ファイル転送処理中に別のクライアントからのファイル転送処理が行なわれていた場合の処理の概要を説明する。
【００２４】
図３は、ファイル転送処理中に別のクライアントからのファイル転送処理が行なわれている状態を示すものである。クライアント１からサーバに対してファイル転送が行われているときに、他のクライアントであるクライアント２(1003)もしくはクライアント３(1004)から、クライアント１で既に転送が行われているサーバのファイルに対してファイル転送を実行した場合、クライアント２およびクライアント３では、それぞれの転送プロセス情報(3001,3002)を生成し、サーバに対するファイル転送要求とともに生成した転送プロセス情報をサーバへ通知する。ファイル転送要求を受けたサーバでは、受け取った転送プロセス情報と、既に存在する転送プロセス情報をチェックすることで、既に実行中のファイル転送との排他を行う。
【００２５】
つぎに、ファイル転送処理中に別のクライアントからのファイル転送処理が行なわれていた場合の処理の詳細を説明する。
【００２６】
クライアント２およびクライアント３は、１つのクライアントからサーバに対してファイル転送が行なわれた場合の処理と同じで（図５のフローチャート）、クライアント２およびクライアント３のそれぞれの転送プロセス情報を生成して保存し、サーバに対するアップロード転送またはダウンロード転送のファイル転送要求とともに、生成した転送プロセス情報をサーバへ通知する。
【００２７】
クライアント２またはクライアント３よりアップロード転送のファイル転送要求を受けた場合のサーバでは（図６のフローチャート）、はじめに、ファイル転送要求で通知された転送プロセス情報を受け取る(6001)。受け取った転送プロセス情報が、転送対象となるファイルに対して既に存在するかどうかをチェックする(6002)。同じクライアントからのファイル転送は実行されていないため、受け取った転送プロセス情報は存在しない(6002のNo)。つぎに、受け取った転送プロセス情報以外の転送プロセス情報が存在するかチェックする（6004）。他のクライアントからの転送プロセス情報が既に存在し、アップロード転送もしくはダウンロード転送が既に行われているため、アップロード転送は行えないと判断し(6004のYes)、クライアントに対して転送不可の応答を通知して(6009)、処理を終了する。
【００２８】
クライアント２またはクライアント３よりダウンロード転送のファイル転送要求を受けた場合のサーバでは（図７のフローチャート）、はじめに、ファイル転送要求で通知された転送プロセス情報を受け取る(7001)。受け取った転送プロセス情報が、転送対象となるファイルに対して既に存在するかどうかをチェックする(7002)。同じクライアントからのファイル転送は実行されていないため、受け取った転送プロセス情報は存在しない(7002のNo)。つぎに、受け取った転送プロセス情報以外の転送プロセス情報が存在するチェックする（7004)。他のクライアントからの転送プロセス情報が既に存在することを確認したあと(7004のYes)、他のクライアントからの転送プロセス情報の転送種別をチェックし、他のクライアントが全てダウンロード転送を行っている場合は、ダウンロード転送を行えるようにし(7005のYes)、転送プロセス情報を保存したあと、クライアントへ転送可能の応答を通知する。他のクライアントがアップロード転送を行っている場合は、ダウンロード転送を行えないと判断し(7005のNo)、クライアントへ転送不可の応答を通知して(7010)、処理を終了する。
【００２９】
サーバより転送不可の応答を受け取ったクライアント(図５のフローチャート)では(5005のNo)、ファイルのデータ転送は行わず、保存していた転送プロセス情報を削除し(5007)、処理を終了する。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施形態にかかるファイル転送システムの全体構成を示すものである。
【図２】１つのファイル転送処理が行なわれている状態を示すものである。
【図３】ファイル転送処理中に別のファイル転送処理が行なわれている状態を示すものである。
【図４】転送プロセス情報および転送種別から構成されたテーブルである。
【図５】クライアントの処理の流れを示すフローチャートである。
【図６】アップロード時のサーバの処理の流れを示すフローチャートである。
【図７】ダウンロード時のサーバの処理の流れを示すフローチャートである。
【符号の説明】
【００３１】
1001  ・・・  サーバ
1002、1003、1004  ・・・  クライアント
1007、1008  ・・・  転送の対象となるファイル
1005  ・・・  HTTP通信制御
1006、1009  ・・・  ファイル転送制御
1010  ・・・  WWWサーバ
2001、2002、3001、3002  ・・・  転送プロセス情報
【図１】
2005208786.tif 000003
【図２】
2005208786.tif 000004
【図３】
2005208786.tif 000005
【図４】
2005208786.tif 000006
【図５】
2005208786.tif 000007
【図６】
2005208786.tif 000008
【図７】
2005208786.tif 000009