JP2019049914A - ファイル転送システムおよびファイル転送方法 - Google Patents

ファイル転送システムおよびファイル転送方法 Download PDF

Info

Publication number
JP2019049914A
JP2019049914A JP2017174444A JP2017174444A JP2019049914A JP 2019049914 A JP2019049914 A JP 2019049914A JP 2017174444 A JP2017174444 A JP 2017174444A JP 2017174444 A JP2017174444 A JP 2017174444A JP 2019049914 A JP2019049914 A JP 2019049914A
Authority
JP
Japan
Prior art keywords
file
server
piece
pieces
online storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017174444A
Other languages
English (en)
Other versions
JP6944317B2 (ja
Inventor
峰幸 田村
Mineyuki Tamura
峰幸 田村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Systems Ltd
Original Assignee
Hitachi Systems Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Systems Ltd filed Critical Hitachi Systems Ltd
Priority to JP2017174444A priority Critical patent/JP6944317B2/ja
Publication of JP2019049914A publication Critical patent/JP2019049914A/ja
Application granted granted Critical
Publication of JP6944317B2 publication Critical patent/JP6944317B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】オンラインストレージを介した間接的なファイル転送を利用してラージファイルを高速に転送する。【解決手段】アップロードサーバ10は、アップロードファイル12を複数のピースに分割して、ピース毎にオンラインストレージ30にアップロードし、また、マップ情報41を管理サーバ40に保存するアップロード処理部11を有し、ダウンロードサーバ20は、管理サーバ40から取得したマップ情報41に基づいて、オンラインストレージ30にアップロードされた各ピースをダウンロードし、マップ情報41にしたがってダウンロードファイル22を復元するダウンロード処理部21を有し、ダウンロード処理部21は、オンラインストレージ30へのアップロードが完了したピースから順次、他の全てのピースがアップロードされるのを待つことなくダウンロードを開始する。【選択図】図1

Description

本発明は、ファイル転送の技術に関し、特に、インターネットを介してラージファイルを転送するファイル転送システムおよびファイル転送方法に適用して有効な技術に関するものである。
例えば、サーバ間でファイルを転送する際に、ファイル単位で転送を行うと、サイズが大きいファイル(ラージファイル)の場合、転送効率が悪くなることから、ファイルを複数の断片(ピース)に細分化し、ピース単位で転送することが行われている。また、ファイルをピースに細分化して個別に転送することで、ファイル転送に係るセキュリティを向上させることも検討されている。
これらに関連する技術として、例えば、特開2016−152569号公報(特許文献1)には、単一のファイルをN個のデータ群に分割し、N個のデータ群とオフセット位置を示すN個の転送ジョブを作成し、TCPの同時接続数のM個の転送スレッドに転送ジョブを割り当て、M個のコネクションにより、M個の転送ジョブで指定されたM個のデータ群とオフセット位置を並列に転送する旨が記載されている。
また、特開2012−208549号公報(特許文献2)には、送信側コンピュータに、入力ファイルからデータを読み出して分割して複数のピースとしてネットワークへ送信する処理をマルチスレッドの処理により行うモジュールを備え、受信側コンピュータに、ネットワークから複数のピースを受信して統合して出力ファイルへ書き込む処理をマルチスレッドの処理により行うモジュールを備える旨が記載されている。
また、特開2003−323365号公報(特許文献3)には、送信側の転送制御装置が、転送対象データを複数のピースに分割し、各ピースからその一部のデータを欠落させて暗号化した上で異なる中継サーバにそれぞれアップロードするとともに、欠落分のデータを受信側の転送制御装置に送信し、受信側の転送制御装置では、各中継サーバから各ピースをダウンロードして復号し、欠落分のデータを補充して欠落前の状態に復元して組み立てることで、元の転送対象データを得る旨が記載されている。
特開2016−152569号公報 特開2012−208549号公報 特開2003−323365号公報
例えば、特許文献1、2等に記載された技術によれば、ファイルを複数のピースに細分化して並行的に送信(および受信)することで、ラージファイルについても高速に転送することが可能である。しかし、この場合、転送元と転送先とが相互に通信セッションを直接確立する必要があるため、インターネット上でのファイル転送には適さない場合がある。
これに対し、特許文献3等に記載された技術のように、インターネット上のサーバやストレージ等(以下では「オンラインストレージ」と記載する場合がある)に対して転送元がHTTP(HyperText Transfer Protocol)等の通信を利用してファイルをアップロードし、転送先がこれをHTTP等の通信を利用してダウンロードすることで間接的にファイルを転送することも行われる。これにより、転送元および転送先は、それぞれ一般的なインターネット接続環境を有していればファイル転送を行うことができる。
しかし、この場合、転送先によるファイルのダウンロードは、転送元によるファイルのアップロードが完了してからでなければ実行することができない。したがって、例えば、テラバイトを超えるようなラージファイルの転送では、転送元によるアップロード、および転送先によるダウンロードのそれぞれについて上記のようなファイルの細分化による高速化を行ったとしても、転送元がアップロードを開始して完了し、その後、転送先がダウンロードを開始して完了するまでにはかなりの時間を要してしまう。
そこで本発明の目的は、オンラインストレージを介した間接的なファイル転送を利用してラージファイルを高速に転送することを可能とするファイル転送システムおよびファイル転送方法を提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
本発明の代表的な実施の形態によるファイル転送システムは、オンラインストレージを介して第1のサーバが第2のサーバにファイルを転送するファイル転送システムであって、前記第1のサーバは、前記ファイルを1つ以上のピースに分割して、前記ピース毎に前記オンラインストレージにアップロードし、また、前記各ピースについてのアップロードの状況に係る第1の情報、および前記各ピースから前記ファイルを復元するための第2の情報を、第3のサーバに保存するアップロード処理部を有し、前記第2のサーバは、前記第3のサーバから取得した前記第1の情報に基づいて、前記オンラインストレージにアップロードされた前記各ピースをダウンロードし、ダウンロードした前記各ピースに基づいて、前記第3のサーバから取得した前記第2の情報にしたがって前記ファイルを復元するダウンロード処理部を有する。
そして、前記ダウンロード処理部は、前記第1のサーバによる前記オンラインストレージへのアップロードが完了した前記ピースから順次、他の全ての前記ピースがアップロードされるのを待つことなくダウンロードを開始する。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
すなわち、本発明の代表的な実施の形態によれば、オンラインストレージを介した間接的なファイル転送を利用してラージファイルを高速に転送することが可能となる。
本発明の一実施の形態であるファイル転送システムの構成例について概要を示した図である。 本発明の一実施の形態におけるアップロード処理の流れの例について概要を示したフローチャートである。 本発明の一実施の形態におけるダウンロード処理の流れの例について概要を示したフローチャートである。 (a)は従来技術における、(b)は本発明の一実施の形態におけるアップロード処理とダウンロード処理の実行例について概要を示した図である。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。一方で、ある図において符号を付して説明した部位について、他の図の説明の際に再度の図示はしないが同一の符号を付して言及する場合がある。
<システム構成>
図1は、本発明の一実施の形態であるファイル転送システムの構成例について概要を示した図である。ファイル転送システム1は、例えば、インターネット2に対して、アップロードサーバ10、ダウンロードサーバ20、オンラインストレージ30、および管理サーバ40等の各種サーバやサービス、サブシステム等が接続された構成を有する。
アップロードサーバ10は、ファイルの転送元のサーバであり、オンラインストレージ30に転送対象のファイルをアップロードする機能を有する。また、ダウンロードサーバ20は、ファイルの転送先のサーバであり、オンラインストレージ30から転送対象のフィアルをダウンロードして取得する機能を有する。なお、アップロードサーバ10とダウンロードサーバ20の分類は機能的・論理的なものであり、実装上は両者の機能を兼ね備えた(すなわち、ファイルの転送元・転送先いずれにもなれる)サーバが複数存在する構成であってもよい。
アップロードサーバ10、ダウンロードサーバ20のいずれも、例えば、サーバ機器やクラウドコンピューティングサービス上に構築された仮想サーバ等により構成される。テラバイトを超えるようなラージファイルを保持することができるものであれば、PC(Personal Computer)等の情報処理端末であってもよい。そして、図示しないCPU(Central Processing Unit)により、HDD(Hard Disk Drive)等の記録装置からメモリ上に展開したOS(Operating System)やDBMS(DataBase Management System)等のミドルウェアや、その上で稼働するソフトウェアを実行することで、ファイル転送に係る後述する各種機能を実現する。
アップロードサーバ10は、ソフトウェアとして実装されたアップロード処理部11を有する。アップロード処理部11は、ラージファイルも含む転送対象のファイルであるアップロードファイル12を、小さなサイズの断片(ピース)に分割し、これらをオンラインストレージ30へアップロードする機能を有する。図1の例では、アップロードファイル12をP1、P2、P3、…の複数のピースに分割し、これらをオンラインストレージ30にそれぞれアップロードしたことを示している。
オンラインストレージ30は、インターネット2を介してファイルを授受し、これをHDD等の記録装置に保管する機能を有するサービスであり、大容量のHDDを備えた複数のファイルサーバやネットワークストレージ等により構成されていてもよいし、Amazon(登録商標) Simple Storage Service(S3)のようないわゆるクラウドストレージにより構成されていてもよい。いずれの構成でも、アップロードサーバ10からアップロードされた複数のピースを分散保管することができるよう、複数のストレージを有する構成とするのが望ましいが、単一のストレージであってもよい。図1の例でも、P1、P2、P3、…の複数のピースをそれぞれ異なるストレージに保管したことを示している。
アップロードサーバ10と同様に、ダウンロードサーバ20は、ソフトウェアとして実装されたダウンロード処理部21を有する。ダウンロード処理部21は、オンラインストレージ30から複数のピースをダウンロードし、取得したピースから転送対象のファイルであるダウンロードファイル22を復元する機能を有する。図1の例では、オンラインストレージ30からP1、P2、P3、…の複数のピースをそれぞれダウンロードし、これらのピースからダウンロードファイル22を復元したことを示している。
アップロードファイル12から分割された各ピースのオンラインストレージ30へのアップロードの状況に係る情報、およびこれらの各ピースからダウンロードファイル22を復元するための情報は、アップロード処理部11が、管理サーバ40上にマップ情報41として記録する。各ピースのアップロードの状況に係る情報には、例えば、各ピースの名称や、それぞれがアップロードされた(もしくはされる)オンラインストレージ30上のストレージ、および各ピースについてそれぞれアップロードが完了したか否か等の情報が含まれる。
また、ダウンロードファイル22を復元するための情報には、例えば、ダウンロードファイル22(=アップロードファイル12)と各ピースとの関連付けの情報や、各ピースのファイル中の位置(オフセット)や配置順序・処理順序等に係る情報が含まれる。ダウンロードサーバ20のダウンロード処理部21は、例えば、一定間隔で定期的に管理サーバ40のマップ情報41を参照し、自身宛に転送されているファイルに係る情報が登録されている場合に、その内容に基づいて、オンラインストレージ30の対象のストレージから復元に必要なピースをダウンロードしてダウンロードファイル22を復元する。
ダウンロード処理部21は、ダウンロードした各ピースについて、例えば、ダウンロードファイル22の復元が完了したタイミング等でオンラインストレージ30から削除するようにしてもよい。また、ダウンロードした各ピースについて管理サーバ40のマップ情報41を更新するようにしてもよい。なお、管理サーバ40のマップ情報41の更新については、例えば、アップロード処理部11やダウンロード処理部21が直接マップ情報41のファイルやデータを更新してもよいし、管理サーバ40が提供するAPI(Application Programming Interface)等の外部インタフェースを介して更新するようにしてもよい。
アップロード処理部11、ダウンロード処理部21のいずれも、インターネット2上のオンラインストレージ30や管理サーバ40にアクセスする際の通信プロトコルとしてHTTP(HTTPS)を用いる。したがって、グローバルIPアドレスを有する必要はなく、プロキシーサーバの環境にも対応することができ、一般的なインターネット2への接続環境を有していれば本実施の形態のファイル転送を実現することができる。また、オンラインストレージ30にアクセスするためのアカウント情報を図示しない設定ファイル等に設定してアップロード処理部11およびダウンロード処理部21がこれを参照することで、ユーザからオンラインストレージ30にアクセスするためのアカウント情報を隠蔽することができる。
また、アップロード処理部11、ダウンロード処理部21のいずれも、ピースの転送(アップロード/ダウンロード)処理中にネットワークエラーが発生した場合、自動的にリトライするようにしてもよい。これにより、インターネット2のようにエラー率が高いネットワークにおいてもファイルを確実に転送することができる。
アップロード処理部11、ダウンロード処理部21のいずれも、ピースの転送(アップロード/ダウンロード)に係る処理をマルチスレッドで並行的に行うようにしてもよい。これにより、ピース全体の転送に係る時間を短縮し、ファイル転送を高速化することができる。また、後述するように、アップロード処理部11によるピースのアップロードの処理と、ダウンロード処理部21によるピースのダウンロードの処理とをパイプライン処理として並行的に行うようにしてもよい。これにより、ファイル全体の転送に係る時間を短縮してファイル転送を高速化することができる。
転送対象のファイル(本実施の形態ではアップロードファイル12)を複数のピースに分割し、さらに分割した複数のピース(もしくはその一部のピース)から転送対象のファイル(本実施の形態ではダウンロードファイル22)を復元する手法は特に限定されない。例えば、単順に転送対象のファイルを所定のサイズ毎に分割し、これらを順序に従って並べて結合することで復元するものであってもよいし、公知の秘密分散や電子割符の技術を用いて、それだけでは意味をなさないピースに分割するものであってもよい。
特に、秘密分散や電子割符等のセキュアな技術を用いない場合は、アップロード処理部11において、生成した各ピースを暗号化するようにしてもよい。例えば、ピース毎に生成した暗号鍵により暗号化し、さらに無意味な名称(ファイル名)としてオンラインストレージ30にアップロードする。暗号化されたピースを復号するための鍵(例えば、共通鍵方式の場合は共通鍵、公開鍵方式の場合は公開鍵)の情報は、例えば、ダウンロードファイル22を復元するための情報として、オンラインストレージ30とは別の管理サーバ40のマップ情報41にピースと関連付けて登録する。これにより、オンラインストレージ30上に保持されたピースの情報が漏洩したとしても、転送対象のファイルが復元されるのを回避することができる。
また、アップロード処理部11、ダウンロード処理部21のいずれも、例えば、ピースの転送(アップロード/ダウンロード)の際に各ピースのハッシュ値をそれぞれ算出し、オンラインストレージ30が算出したハッシュ値と比較するようにしてもよい。ハッシュ値が一致しない場合は、例えば、ピースの単位で転送をリトライすることにより、ピースの転送中の改竄やデータ化けを回避し、確実なファイル転送を実現する。オンラインストレージ30がハッシュ値の算出機能を有さない場合は、アップロード処理部11とダウンロード処理部21との間でそれぞれが算出したハッシュ値を比較するようにしてもよい。
<処理の流れ(アップロード)>
図2は、本実施の形態におけるアップロード処理の流れの例について概要を示したフローチャートである。ユーザからファイル転送の指示を受けた場合、アップロードサーバ10のアップロード処理部11は、まず、転送対象のアップロードファイル12のファイルサイズを取得し(S01)、ファイルサイズが所定のサイズ以上であるか否かを判定する(S02)。ファイルサイズが所定のサイズ以上である場合(S02:Yes)は、アップロードファイル12を所定のサイズ以下の複数のピースに分割する(S03)。上述したように、アップロードファイル12をピースに分割する手法は特に限定されない。一方、ファイルサイズが所定のサイズ未満である場合(S02:No)は、複数のピースに分割してアップロードする方が非効率となるため、ステップS03でのアップロードファイル12の複数のピースへの分割処理を行わないものとする。この場合、アップロードファイル12全体をそのまま1つのピースとして取り扱えばよく、このように取り扱うことも本実施の形態におけるピースへの「分割」の概念に含まれるものとする。
なお、上記の所定のファイルサイズは、例えば、オンラインストレージ30の仕様(例えば、単一のストレージにファイル全体を保管することができる最大サイズや、1回のアップロードで転送可能なファイルサイズ等)に応じて予め決定される。小さいサイズのピースに分割して転送することから、元のアップロードファイル12自体のファイルサイズには特に制限がなく、オンラインストレージ30が保管可能なファイルの最大サイズより大きいラージファイルであっても対応することができる。また、ピースに分割する際の所定のピースサイズは、上記の所定のファイルサイズと同じであってもよいし、それ未満のサイズであってもよい。これらのサイズに係る情報は、例えば、図示しない設定ファイル等に予め設定しておく。
アップロードファイル12を1つ以上のピースに分割すると、その後、各ピースについてそれぞれ暗号化を行う(S04)。そして、各ピースの名称等の識別情報や、アップロードファイル12(=ダウンロードファイル22)を復元するために用いられる各種情報を、アップロードファイル12と関連付けて、管理サーバ40のマップ情報41に新たに登録する(S05)。各ピースのサイズ等の情報を含んでいてもよい。なお、この時点では、いずれのピースについてもアップロード未了として登録される。
その後、各ピースをオンラインストレージ30にアップロードするためのスレッドを所定の数だけ起動する(S06)。上述したように、本実施の形態では、ピースのアップロードをマルチスレッドにて並行的に行う。起動するスレッドの数は、例えば、アップロードサーバ10が備える使用可能なメモリの容量と、ピースのサイズとに基づいて動的に決定し、もしくは図示しない設定ファイル等に予め設定しておく。
起動された各スレッドでは、アップロード対象のピースを取得し(S07)、取得したピースのアップロード先となるオンラインストレージ30上のストレージを決定する(S08)。図2の例では、各スレッドがアップロード対象のピースについてアップロード先を随時決定するものとしているが、これに限られない。例えば、アップロード処理部11が、上記のステップS03でアップロードファイル12を1つ以上のピースに分割した際に、各ピースについてアップロード先を一括して決定するようにしてもよい。なお、各ピースについてアップロード先となるオンラインストレージ30上のストレージを決定するため、例えば、アップロードサーバ10は、オンラインストレージ30上で利用可能なストレージの情報を、図示しない設定ファイル等に予め保持していてもよい。
対象のピースについてアップロード先となるオンラインストレージ30上のストレージが決定されると、当該アップロード先に当該ピースをアップロードする(S09)。アップロード開始後は、アップロードが完了するまで状況を監視し、アップロードが途中で異常終了した場合は、所定の上限回数までリトライするようにしてもよい。また、アップロードしたピースについてオンラインストレージ30側で算出されたハッシュ値を取得し、アップロード処理部11のスレッド側で算出したハッシュ値と比較して(S10)、一致しない場合に異常終了とするようにしてもよい。
対象のピースのアップロードが完了すると、その旨、およびオンラインストレージ30上のいずれのストレージにアップロードしたかの情報を管理サーバ40上のマップ情報41に記録してマップ情報41の内容を更新する(S11)。これにより、ダウンロードサーバ20は、マップ情報41を参照することで、対象のピースがオンラインストレージ30上にアップロードされたことを認識することができる。
その後、アップロードが未了のピースが残っているか否かを判定し(S12)、残っていない場合、すなわち全てのピースのアップロードが完了した場合(S12:No)は、アップロード処理を終了する。未了のピースが残っている場合(S12:Yes)は、ステップS07に戻って、未了のピースがなくなるまでアップロードの処理を繰り返す。以上の一連の処理により、アップロードファイル12を分割した1つ以上のピースを、マルチスレッドで高速にオンラインストレージ30にアップロードすることができる。
<処理の流れ(ダウンロード)>
図3は、本実施の形態におけるダウンロード処理の流れの例について概要を示したフローチャートである。ダウンロードサーバ20では、一定時間毎に定期的に、もしくはユーザからの指示を受けたタイミングで、ダウンロード処理部21により、管理サーバ40上のマップ情報41を確認し(S21)、自身宛に転送されたファイルに係るピースの情報が登録されているか否かを判定する(S22)。ここでのピースには、アップロードファイル12が所定のファイルサイズより小さかったために全体が1つのピースとして取り扱われた場合も含まれる。該当するピースの情報が登録されていない場合(S22:No)は、自身宛に転送されているファイルがないものとして、ステップS21に戻って、該当するピースの情報が登録されるまで、所定のタイミングでのマップ情報41の確認を繰り返す。
管理サーバ40上のマップ情報41に、自身宛に転送されたファイルに係るいずれかのピースの情報が新たに登録されている場合(S22:Yes)、以下に示す、対象のファイルのダウンロードに係る一連の処理を開始する。このように、ダウンロード処理部21が管理サーバ40上のマップ情報41をポーリングすることで、オンラインストレージ30に対象のファイルに係るピースがアップロードされたことを検知し、自動的にダウンロードに係る処理を開始することができる。すなわち、オンラインストレージ30を介した、アップロードサーバ10からダウンロードサーバ20へのファイル転送を、アップロードサーバ10からダウンロードサーバ20に対して直接ファイル転送しているかのような形で実装することができる。
ダウンロードに係る処理では、まず、対象のピースをオンラインストレージ30からダウンロードするためのスレッドを所定の数だけ起動する(S23)。上述したように、本実施の形態では、ピースのダウンロードもマルチスレッドにて並行的に行う。起動するスレッドの数は、例えば、ダウンロードサーバ20が備える使用可能なメモリの容量と、ピースのサイズとに基づいて動的に決定し、もしくは図示しない設定ファイル等に予め設定しておく。
起動された各スレッドでは、管理サーバ40のマップ情報41から、ダウンロード対象のピースに係る情報を取得する(S24)。取得する情報には、例えば、対象のピースの保存先であるオンラインストレージ30上のストレージの情報や、ピースのサイズ、復号するための鍵や、ハッシュ値等の情報が含まれ得る。そして、マップ情報41から取得した対象のピースの保存先のストレージの情報に基づいて、当該ピースをダウンロードする(S25)。ダウンロード開始後は、ダウンロードが完了するまで状況を監視し、ダウンロードが途中で異常終了した場合は、所定の上限回数までリトライするようにしてもよい。また、当該ピースについてオンラインストレージ30側で算出されたハッシュ値を取得し、ダウンロード処理部21のスレッド側で算出したハッシュ値と比較して(S26)、一致しない場合に異常終了させるようにしてもよい。
その後、ダウンロードしたピースについて、マップ情報41から取得した復号用の鍵を用いて復号する(S27)。復号が完了したピースについては、保存先のオンラインストレージ30上のストレージから削除するようにしてもよい(S28)。
その後、ダウンロードが未了のピースが残っているか否かを判定し(S29)、残っている場合(S29:Yes)は、ステップS24に戻って、未了のピースがなくなるまでダンロードの処理を繰り返す。未了のピースが残っていない場合、すなわち全てのピースのダウンロードが完了した場合(S29:No)は、ダウンロードされ復号された各ピースに基づいて、マップ情報41に記録されたファイルを復元するための情報を参照して、ダウンロードファイル22を復元し(S30)、ダウンロード処理を終了する。以上の一連の処理により、オンラインストレージ30上のストレージに保存された1つ以上のピースを、マルチスレッドで高速にダウンロードし、ダウンロードファイル22を復元することができる。
<アップロードとダウンロードのパイプライン処理>
図4は、オンラインストレージ30を介したアップロード処理とダウンロード処理の実行例について概要を示した図である。図中では、転送対象のファイルをP1〜P5の5つのピースに分割し、アップロードサーバ10がこの順でオンラインストレージ30にアップロードするとともに、ダウンロードサーバ20がこの順でオンラインストレージ30からダウンロードする場合を、横軸の時間経過により模式的に示している。また、説明の便宜上、アップロードサーバ10もダウンロードサーバ20もそれぞれシングルスレッドで各ピースを逐次アップロードもしくはダウンロードするものとしている。
図4(a)は、従来技術におけるアップロード処理とダウンロード処理の実行例を示している。ここでは、時刻T1に各ピースのアップロードを開始した場合、時刻T3にアップロードが完了することを示している。従来技術では、オンラインストレージ30上にP1〜P5の全てのピースのアップロードが完了した時点、すなわち転送対象のファイル全体のアップロードが完了した時点で、当該ファイルのダウンロード、すなわちP1〜P5の各ピースのダウンロードが開始される。すなわち、各ピースのダウンロードは時刻T3に開始することができ、時刻T5にダウンロードが完了することを示している。この場合、転送対象のファイルのアップロードを開始してからダウンロードを完了するまでのTAT(Turn Around Time)は、アップロード時間(時刻T1〜T3)とダウンロード時間(時刻T3〜T5)との和となる。
これに対し、本実施の形態では、上述したように、アップロード処理とダウンロード処理とを、パイプライン処理として並行的に行うことが可能である。図4(b)は、本実施の形態におけるアップロード処理とダウンロード処理の実行例を示している。
図4(b)に示すように、本実施の形態では、P1のピースのアップロードが完了した時刻T2の時点で、管理サーバ40のマップ情報41を参照することで、他の全てのピースのアップロードが完了するのを待つことなく、P1のピースのダウンロードを開始することができる。さらに、P1のピースのダウンロードと並行して、P2のピースのアップロードを開始することができ、また、P2のピースのアップロードが完了した時点でそのダウンロードを開始することができる。すなわち、ピース毎に、アップロードが完了したものから、他の全てのピース(すなわち転送対象のファイル全体)のアップロードの完了を待つことなく、ダウンロードを順次開始する。
この場合、P1〜P5の全てのピースのアップロードが完了した時刻T3の時点で、ダウンロードが未了であるピースはP5のみであり、このP5のピースのダウンロードが完了した時刻T4の時点で、P1〜P5の全てのピースのダウンロードを完了させることができる。このようなパイプライン処理により、転送対象のファイルのアップロードを開始してからダウンロードを完了するまでのTATを、図4(a)の従来技術による場合よりも大幅に短縮し、ファイル転送を高速化することができる。
以上に説明したように、本発明の一実施の形態であるファイル転送システム1によれば、アップロードサーバ10、ダウンロードサーバ20のいずれも、一般的なインターネット2への接続環境を有していれば、オンラインストレージ30を介して容易にラージファイルのファイル転送を行うことができる。
また、転送対象のファイルを1つ以上のピースに分割して暗号化し、意味をなさない名称でオンラインストレージ30上に分散保存するとともに、ファイルを復元するための情報を保持するマップ情報41をオンラインストレージ30とは別の管理サーバ40に保管することにより、セキュアにファイル転送を行うことができる。
また、各ピースのアップロード/ダウンロードの処理が異常終了した場合であっても自動的にリトライすることで、インターネット2のような信頼性の低いネットワークにおいても確実にファイル転送を行うことができる。また、アップロード/ダウンロードに際して、オンラインストレージ30との間で各ピースのハッシュ値を比較することにより、データの改竄や化け等を防止して確実にファイル転送を行うことができる。
また、各ピースのアップロード/ダウンロードの処理をマルチスレッドで並行的に行うことで、インターネット2の帯域を十分に活用した高速なファイル転送を行うことができる。また、ピース毎にアップロードとダウンロードの処理をパイプライン処理として並行的に実行することにより、アップロードの開始からダウンロードの終了までのTATを短縮して高速にファイル転送を行うことができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記の実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、上記の実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記録装置、またはICカード、SDカード、DVD等の記録媒体に置くことができる。
また、上記の各図において、制御線や情報線は説明上必要と考えられるものを示しており、必ずしも実装上の全ての制御線や情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
本発明は、インターネットを介してラージファイルを転送するファイル転送システムおよびファイル転送方法に利用可能である。
1…ファイル転送システム、2…インターネット、
10…アップロードサーバ、11…アップロード処理部、12…アップロードファイル、
20…ダウンロードサーバ、21…ダウンロード処理部、22…ダウンロードファイル、
30…オンラインストレージ、
40…管理サーバ、41…マップ情報

Claims (7)

  1. オンラインストレージを介して第1のサーバが第2のサーバにファイルを転送するファイル転送システムであって、
    前記第1のサーバは、前記ファイルを1つ以上のピースに分割して、前記ピース毎に前記オンラインストレージにアップロードし、また、前記各ピースについてのアップロードの状況に係る第1の情報、および前記各ピースから前記ファイルを復元するための第2の情報を、第3のサーバに保存するアップロード処理部を有し、
    前記第2のサーバは、前記第3のサーバから取得した前記第1の情報に基づいて、前記オンラインストレージにアップロードされた前記各ピースをダウンロードし、ダウンロードした前記各ピースに基づいて、前記第3のサーバから取得した前記第2の情報にしたがって前記ファイルを復元するダウンロード処理部を有し、
    前記ダウンロード処理部は、前記第1のサーバによる前記オンラインストレージへのアップロードが完了した前記ピースから順次、他の全ての前記ピースがアップロードされるのを待つことなくダウンロードを開始する、ファイル転送システム。
  2. 請求項1に記載のファイル転送システムにおいて、
    前記アップロード処理部、および前記ダウンロード処理部の少なくとも一方は、前記各ピースの前記オンラインストレージとの間の転送に係る処理をマルチスレッドで並行的に行う、ファイル転送システム。
  3. 請求項1に記載のファイル転送システムにおいて、
    前記アップロード処理部は、前記オンラインストレージへのアップロードが完了した前記ピースについて、アップロードが完了した旨、および前記オンラインストレージ上での保存場所に係る情報を、前記第1の情報の少なくとも一部として前記第3のサーバに随時保存する、ファイル転送システム。
  4. 請求項1に記載のファイル転送システムにおいて、
    前記ダウンロード処理部は、所定の時間間隔毎に、前記第3のサーバに前記第1の情報が登録されているか否かを確認し、登録されている場合に、登録されている前記第1の情報に対応する前記ピースに係る前記オンラインストレージからのダウンロードを開始する、ファイル転送システム。
  5. 請求項1に記載のファイル転送システムにおいて、
    前記アップロード処理部は、前記各ピースをそれぞれ暗号鍵により暗号化し、復号鍵に係る情報を、前記第2の情報の少なくとも一部として前記第3のサーバに保存する、ファイル転送システム。
  6. 請求項1に記載のファイル転送システムにおいて、
    前記アップロード処理部、および前記ダウンロード処理部の少なくとも一方は、前記オンラインストレージとの間で前記ピースの転送を行った後、前記ピースについて算出したハッシュ値と、前記オンラインストレージにおいて前記ピースについて算出されたハッシュ値とを比較し、前記ピースの転送の結果が正常か否かを判定する、ファイル転送システム。
  7. オンラインストレージを介して第1のサーバが第2のサーバにファイルを転送するファイル転送方法であって、
    前記第1のサーバが、前記ファイルを1つ以上のピースに分割して、前記ピース毎に前記オンラインストレージにアップロードする第1の工程と、
    前記第1のサーバが、前記各ピースについてのアップロードの状況に係る第1の情報、および前記各ピースから前記ファイルを復元するための第2の情報を、第3のサーバに保存する第2の工程と、
    前記第2のサーバが、前記第3のサーバから取得した前記第1の情報に基づいて、前記オンラインストレージにアップロードされた前記各ピースをダウンロードする第3の工程と、
    前記第2のサーバが、ダウンロードした前記各ピースに基づいて、前記第3のサーバから取得した前記第2の情報にしたがって前記ファイルを復元する第4の工程と、を有し、
    前記第3の工程は、前記第1のサーバによる前記オンラインストレージへのアップロードが完了した前記ピースから順次、他の全ての前記ピースがアップロードされるのを待つことなく開始される、ファイル転送方法。
JP2017174444A 2017-09-12 2017-09-12 ファイル転送システムおよびファイル転送方法 Active JP6944317B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017174444A JP6944317B2 (ja) 2017-09-12 2017-09-12 ファイル転送システムおよびファイル転送方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017174444A JP6944317B2 (ja) 2017-09-12 2017-09-12 ファイル転送システムおよびファイル転送方法

Publications (2)

Publication Number Publication Date
JP2019049914A true JP2019049914A (ja) 2019-03-28
JP6944317B2 JP6944317B2 (ja) 2021-10-06

Family

ID=65905633

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017174444A Active JP6944317B2 (ja) 2017-09-12 2017-09-12 ファイル転送システムおよびファイル転送方法

Country Status (1)

Country Link
JP (1) JP6944317B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020036024A1 (ja) * 2018-08-16 2020-02-20 行徳紙工株式会社 ファイルの秘匿分散システム及び秘匿分散方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003323365A (ja) * 2002-05-02 2003-11-14 Fuji Xerox Co Ltd データ転送方法及びシステム
US20060075064A1 (en) * 2004-09-30 2006-04-06 International Business Machines Corporation Concurrent ftp read and write
CN105187551A (zh) * 2015-09-29 2015-12-23 成都四象联创科技有限公司 基于云平台的分布式计算方法
JP2016152569A (ja) * 2015-02-19 2016-08-22 株式会社シミュラティオ ファイル転送方法及びファイル転送プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003323365A (ja) * 2002-05-02 2003-11-14 Fuji Xerox Co Ltd データ転送方法及びシステム
US20060075064A1 (en) * 2004-09-30 2006-04-06 International Business Machines Corporation Concurrent ftp read and write
JP2016152569A (ja) * 2015-02-19 2016-08-22 株式会社シミュラティオ ファイル転送方法及びファイル転送プログラム
CN105187551A (zh) * 2015-09-29 2015-12-23 成都四象联创科技有限公司 基于云平台的分布式计算方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020036024A1 (ja) * 2018-08-16 2020-02-20 行徳紙工株式会社 ファイルの秘匿分散システム及び秘匿分散方法
US11734446B2 (en) 2018-08-16 2023-08-22 Gyotokushiko Co., Ltd. Secret distribution system and secret distribution method of files

Also Published As

Publication number Publication date
JP6944317B2 (ja) 2021-10-06

Similar Documents

Publication Publication Date Title
EP3369030B1 (en) Methods and apparatus for mobile computing device security in testing facilities
KR101897032B1 (ko) 블록체인을 이용한 저작권 보호 장치 및 저작권 보호 방법
EP3298757B1 (en) Custom communication channels for application deployment
EP3488337B1 (en) Shared software libraries for computing devices
US20180034787A1 (en) Data encryption key sharing for a storage system
EP3777014B1 (en) Encryption by default in an elastic computing system
US11657171B2 (en) Large network attached storage encryption
CN105208135B (zh) 一种文件传输方法和设备
US20110016095A1 (en) Integrated Approach for Deduplicating Data in a Distributed Environment that Involves a Source and a Target
US10965732B2 (en) Streaming zip
US10924275B1 (en) Creating multiple encrypted volumes from a single source
US9208348B1 (en) Systems and methods for managing encrypted files within application packages
US9430278B2 (en) System having operation queues corresponding to operation execution time
JP6268991B2 (ja) 情報処理システム、情報処理装置及びプログラム
JP6944317B2 (ja) ファイル転送システムおよびファイル転送方法
JP2016028320A (ja) 情報処理方法、プログラム、および情報処理装置
JP6510446B2 (ja) 情報処理システム、情報処理装置及び情報処理方法
US20140214768A1 (en) Reducing backup bandwidth by remembering downloads
US9430338B2 (en) Method and computing device for recording log entries
US10348705B1 (en) Autonomous communication protocol for large network attached storage
CN112817912B (zh) 文件管理方法、装置、计算机设备和存储介质
KR102057113B1 (ko) 클라우드 스토리지 암호화 시스템
JP6811625B2 (ja) ファイル中継装置及びファイル中継プログラム
EP2372978B1 (en) Computer architectures using shared storage
JP2007128273A (ja) 分散型データアーカイブ装置及びシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200903

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210622

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210817

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210910

R150 Certificate of patent or registration of utility model

Ref document number: 6944317

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150