JP2009193160A - ファイル転送システムおよびアプリケーションサーバ - Google Patents

ファイル転送システムおよびアプリケーションサーバ Download PDF

Info

Publication number
JP2009193160A
JP2009193160A JP2008030891A JP2008030891A JP2009193160A JP 2009193160 A JP2009193160 A JP 2009193160A JP 2008030891 A JP2008030891 A JP 2008030891A JP 2008030891 A JP2008030891 A JP 2008030891A JP 2009193160 A JP2009193160 A JP 2009193160A
Authority
JP
Japan
Prior art keywords
file
processing
user terminal
server
input
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
JP2008030891A
Other languages
English (en)
Other versions
JP4648415B2 (ja
Inventor
Kazuyuki Takaya
和幸 高屋
Hiroyuki Fujiwara
弘之 藤原
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2008030891A priority Critical patent/JP4648415B2/ja
Publication of JP2009193160A publication Critical patent/JP2009193160A/ja
Application granted granted Critical
Publication of JP4648415B2 publication Critical patent/JP4648415B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ファイル転送に必要な処理時間を短縮する。
【解決手段】利用者端末とファイル転送サーバとの間に介在するアプリケーションサーバが、当該利用者端末と当該ファイル転送サーバとの間で送受信されるファイルに対して当該ファイルの転送に必要な複数の処理を段階的に実行するファイル転送システムであって、アプリケーションサーバは、前段の処理の処理結果がバッファに出力され、バッファに出力された当該処理結果が次段の処理に入力されるように複数の処理各々を実行する処理器各々を備え、複数の処理を実行する前のファイルとして利用者端末もしくはファイル転送サーバから送信されたファイルを、処理器各々の内最も前段の処理を実行する処理器に入力し、処理器各々の内最も後段の処理を実行する処理器から出力された処理結果を、ファイル転送サーバもしくは利用者端末に送信する。
【選択図】図1

Description

この発明は、ファイル転送システムおよびアプリケーションサーバに関する。
従来より、ファイル転送サーバが、利用者端末から送信されたファイルを他の利用者端末に転送するファイル転送システムがある。例えば、非特許文献1には、大容量ファイルを安全、確実、高効率に転送する大規模セキュアファイル流通基盤システム(SSS:Scalable Secure file Sharing system)が提案されている。
かかる基盤システムにおいては、利用者端末とファイル転送サーバとの間で送受信されるファイルに対して、当該ファイルの転送に必要な複数の処理を段階的に実行しなければならない。具体的に説明すると、利用者端末からファイル転送サーバに送信されるファイルに対しては、コンテナ化処理や暗号化処理などを実行しなければならない(なお、コンテナ化とは、送信するファイルを圧縮することである)。一方、ファイル転送サーバから利用者端末に送信されるファイルに対しては、復号処理やコンテナ解凍処理、あるいは再圧縮処理などを実行しなければならない。この時、利用者端末に専用のアプリケーションがインストールされている場合には、利用者端末がこれら複数の処理を実行することができるが、利用者端末に一般的なWebブラウザのみがインストールされている場合には、他の装置がこれら複数の処理を実行しなければならない。
このため、かかる基盤システムは、例えば、図10に示すように、利用者端末とファイル転送サーバとの間にアプリケーションサーバ(APサーバ)が介在する構成を採り、当該アプリケーションサーバが、利用者端末に替わり、コンテナ化処理や暗号化処理などを実行する。同様に、例えば、図11に示すように、当該アプリケーションサーバが、利用者端末に替わり、復号処理やコンテナ解凍処理、あるいは再圧縮処理などを実行する。
"大規模セキュアファイル流通基盤システム"、NTT技術ジャーナル、2006年8月号、P.36〜39
ところで、上記した従来の技術では、全体の処理時間が増大してしまうという課題があった。すなわち、上記した従来技術では、アプリケーションサーバが各処理を実行する際、ハードディスクドライブ(HDD)のような外部記憶装置にファイル(コンテナ、中間生成データを含む)を何回か保存していた。
例えば、図10に示すように、アプリケーションサーバは、コンテナ化処理を実行すると、処理結果である中間生成データをHDDにアクセスして保存し、保存した中間生成データをHDDにアクセスして読み出し、暗号化処理を実行する。また、例えば、図11に示すように、アプリケーションサーバは、復号処理を実行すると、処理結果である中間生成データをHDDにアクセスして保存し、保存した中間生成データをHDDにアクセスして読み出し、コンテナ解凍処理を実行する。また、コンテナ解凍処理を実行すると、処理結果である中間生成データをHDDにアクセスして保存し、保存した中間生成データをHDDにアクセスして読み出し、再圧縮処理を実行する。
このように、上記した従来技術では、HDDのような外部記憶装置にファイルを何回か保存することになるが、外部記憶装置にアクセスする処理は処理速度が遅いことから、結果として、全体の処理時間が増大してしまうという課題があった。
そこで、この発明は、上記した従来技術の課題を解決するためになされたものであり、全体の処理時間を短縮することが可能なファイル転送システムおよびアプリケーションサーバを提供することを目的とする。
上述した課題を解決し、目的を達成するため、請求項1に係る発明は、利用者が利用する利用者端末と、当該利用者端末から送信されたファイルを他の利用者端末に転送するファイル転送サーバとの間にアプリケーションサーバが介在し、当該アプリケーションサーバが、当該利用者端末と当該ファイル転送サーバとの間で送受信されるファイルに対して当該ファイルの転送に必要な複数の処理を段階的に実行するファイル転送システムであって、前記アプリケーションサーバは、前段の処理の処理結果がバッファに出力され、バッファに出力された当該処理結果が次段の処理に入力されるように前記複数の処理各々を実行する処理手段各々と、前記複数の処理を実行する前のファイルとして前記利用者端末もしくは前記ファイル転送サーバから送信されたファイルを、前記処理手段各々の内最も前段の処理を実行する処理手段に入力するファイル入力手段と、前記処理手段各々の内最も後段の処理を実行する処理手段から出力された処理結果を、前記ファイル入力手段によって入力されたファイルが前記利用者端末から送信されたものである場合には前記ファイル転送サーバに送信し、前記ファイル入力手段によって入力されたファイルが前記ファイル転送サーバから送信されたものである場合には前記利用者端末に送信するファイル送信手段と、を備えたことを特徴とする。
また、請求項2に係る発明は、上記の発明において、前記アプリケーションサーバは、前記複数の処理を実行する前のファイルとして前記利用者端末から送信されたファイルをファイル記憶手段に格納するものであって、前記処理手段各々の内最も後段の処理を実行する処理手段から処理結果が出力されると、前記ファイル記憶手段に記憶されている前記ファイルを当該ファイル記憶手段から削除するファイル削除手段をさらに備えたことを特徴とする。
また、請求項3に係る発明は、上記の発明において、前記複数の処理各々は、前記利用者端末から送信されたファイルを圧縮する圧縮処理と、圧縮された当該ファイルを暗号化する暗号化処理とであって、前記処理手段各々は、前記圧縮処理を実行する処理手段の処理結果がバッファに出力され、バッファに出力された当該処理結果が前記暗号化処理を実行する処理手段に入力されるように処理を実行し、前記ファイル入力手段は、前記圧縮処理を実行する処理手段に前記ファイルを入力し、前記ファイル送信手段は、前記暗号化処理を実行する処理手段から出力された処理結果をファイル転送サーバに送信することを特徴とする。
また、請求項4に係る発明は、上記の発明において、前記複数の処理各々は、前記ファイル転送サーバから送信されたファイルを復号する復号処理と、復号された当該ファイルの圧縮を解凍する解凍処理と、解凍された当該ファイルを再圧縮する再圧縮処理とであって、前記処理手段各々は、前記復号処理を実行する処理手段の処理結果がバッファに出力され、バッファに出力された当該処理結果が前記解凍処理を実行する処理手段に入力され、当該解凍処理を実行する処理手段の処理結果がバッファに出力され、バッファに出力された当該処理結果が前記再圧縮処理を実行する処理手段に入力されるように処理を実行し、前記ファイル入力手段は、前記復号処理を実行する処理手段に前記ファイルを入力し、前記ファイル送信手段は、前記再圧縮処理を実行する処理手段から出力された処理結果を利用者端末に送信することを特徴とする。
また、請求項5に係る発明は、上記の発明において、前記アプリケーションサーバは、前記ファイル転送サーバに記憶されているファイルを受信することを要求するファイル受信要求を前記利用者端末から受信すると、当該ファイル受信要求を当該ファイル転送サーバに転送するファイル受信要求転送手段をさらに備え、前記ファイル転送サーバは、前記ファイル受信要求転送手段によって転送されたファイル受信要求を受信すると、当該ファイル受信要求にて指定されるファイルを前記アプリケーションサーバに送信するファイル送信手段を備えたことを特徴とする。
また、請求項6に係る発明は、利用者が利用する利用者端末と、当該利用者端末から送信されたファイルを他の利用者端末に転送するファイル転送サーバとの間にアプリケーションサーバが介在し、当該アプリケーションサーバが、当該利用者端末と当該ファイル転送サーバとの間で送受信されるファイルに対して当該ファイルの転送に必要な複数の処理を段階的に実行するファイル転送方法であって、前記アプリケーションサーバは、前段の処理の処理結果がバッファに出力され、バッファに出力された当該処理結果が次段の処理に入力されるように前記複数の処理各々を実行する処理工程各々と、前記複数の処理を実行する前のファイルとして前記利用者端末もしくは前記ファイル転送サーバから送信されたファイルを、前記処理工程各々の内最も前段の処理を実行する処理工程に入力するファイル入力工程と、前記処理工程各々の内最も後段の処理を実行する処理工程から出力された処理結果を、前記ファイル入力工程によって入力されたファイルが前記利用者端末から送信されたものである場合には前記ファイル転送サーバに送信し、前記ファイル入力工程によって入力されたファイルが前記ファイル転送サーバから送信されたものである場合には前記利用者端末に送信するファイル送信工程と、を含んだことを特徴とする。
また、請求項7に係る発明は、利用者が利用する利用者端末と、当該利用者端末から送信されたファイルを他の利用者端末に転送するファイル転送サーバとの間にアプリケーションサーバが介在し、当該アプリケーションサーバが、当該利用者端末と当該ファイル転送サーバとの間で送受信されるファイルに対して当該ファイルの転送に必要な複数の処理を段階的に実行するファイル転送方法をコンピュータに実行させるファイル転送プログラムであって、前段の処理の処理結果がバッファに出力され、バッファに出力された当該処理結果が次段の処理に入力されるように前記複数の処理各々を実行する処理手順各々と、前記複数の処理を実行する前のファイルとして前記利用者端末もしくは前記ファイル転送サーバから送信されたファイルを、前記処理手順各々の内最も前段の処理を実行する処理手順に入力するファイル入力手順と、前記処理手順各々の内最も後段の処理を実行する処理手順から出力された処理結果を、前記ファイル入力手順によって入力されたファイルが前記利用者端末から送信されたものである場合には前記ファイル転送サーバに送信し、前記ファイル入力手順によって入力されたファイルが前記ファイル転送サーバから送信されたものである場合には前記利用者端末に送信するファイル送信手順と、を前記アプリケーションサーバとしてのコンピュータに実行させることを特徴とする。
また、請求項8に係る発明は、利用者が利用する利用者端末と、当該利用者端末から送信されたファイルを他の利用者端末に転送するファイル転送サーバとの間にアプリケーションサーバが介在し、当該アプリケーションサーバが、当該利用者端末と当該ファイル転送サーバとの間で送受信されるファイルに対して当該ファイルの転送に必要な複数の処理を段階的に実行するファイル転送システムにおける当該アプリケーションサーバであって、前段の処理の処理結果がバッファに出力され、バッファに出力された当該処理結果が次段の処理に入力されるように前記複数の処理各々を実行する処理手段各々と、前記複数の処理を実行する前のファイルとして前記利用者端末もしくは前記ファイル転送サーバから送信されたファイルを、前記処理手段各々の内最も前段の処理を実行する処理手段に入力するファイル入力手段と、前記処理手段各々の内最も後段の処理を実行する処理手段から出力された処理結果を、前記ファイル入力手段によって入力されたファイルが前記利用者端末から送信されたものである場合には前記ファイル転送サーバに送信し、前記ファイル入力手段によって入力されたファイルが前記ファイル転送サーバから送信されたものである場合には前記利用者端末に送信するファイル送信手段と、を備えたことを特徴とする。
請求項1、6、7または8の発明によれば、利用者端末とファイル転送サーバとの間にアプリケーションサーバが介在し、当該アプリケーションサーバが、当該利用者端末と当該ファイル転送サーバとの間で送受信されるファイルに対して当該ファイルの転送に必要な複数の処理を段階的に実行するファイル転送システムであって、アプリケーションサーバは、前段の処理の処理結果がバッファに出力され、バッファに出力された当該処理結果が次段の処理に入力されるように複数の処理各々を実行する処理器各々を備え、複数の処理を実行する前のファイルとして利用者端末もしくはファイル転送サーバから送信されたファイルを、処理器各々の内最も前段の処理を実行する処理器に入力し、処理器各々の内最も後段の処理を実行する処理器から出力された処理結果を、ファイル転送サーバもしくは利用者端末に送信するので、外部記憶装置にアクセスする回数が減少する結果、全体の処理時間を短縮することが可能になる。また、中間生成データが発生しなくなるので、外部記憶装置の使用量を節約することが可能になる。
また、請求項2の発明によれば、アプリケーションサーバは、複数の処理を実行する前のファイルとして利用者端末から送信されたファイルをファイル記憶部(外部記憶装置)に格納するものであって、処理器各々の内最も後段の処理を実行する処理器から処理結果が出力されると、ファイル記憶部に記憶されているファイルをファイル記憶部から削除するので、利用者端末から送信されたファイルが外部記憶装置に保存される期間が短縮される結果、セキュリティ面の堅牢性を高めることが可能になる。
また、請求項3の発明によれば、複数の処理各々は、利用者端末から送信されたファイルを圧縮する圧縮処理と、圧縮された当該ファイルを暗号化する暗号化処理とであって、処理器各々は、圧縮処理を実行する処理器の処理結果がバッファに出力され、バッファに出力された当該処理結果が暗号化処理を実行する処理器に入力されるように処理を実行し、圧縮処理を実行する処理器にファイルを入力し、暗号化処理を実行する処理器から出力された処理結果をファイル転送サーバに送信するので、外部記憶装置にアクセスする回数が減少する結果、ファイルアップロード時の処理時間を短縮することが可能になる。
また、請求項4の発明によれば、複数の処理各々は、ファイル転送サーバから送信されたファイルを復号する復号処理と、復号された当該ファイルの圧縮を解凍する解凍処理と、解凍された当該ファイルを再圧縮する再圧縮処理とであって、処理器各々は、復号処理を実行する処理器の処理結果がバッファに出力され、バッファに出力された当該処理結果が解凍処理を実行する処理器に入力され、当該解凍処理を実行する処理器の処理結果がバッファに出力され、バッファに出力された当該処理結果が再圧縮処理を実行する処理器に入力されるように処理を実行し、復号処理を実行する処理器にファイルを入力し、再圧縮処理を実行する処理器から出力された処理結果を利用者端末に送信するので、外部記憶装置にアクセスする回数が減少する結果、ファイルダウンロード時の処理時間を短縮することが可能になる。
また、請求項5の発明によれば、アプリケーションサーバは、ファイル転送サーバに記憶されているファイルを受信することを要求するファイル受信要求を利用者端末から受信すると、当該ファイル受信要求を当該ファイル転送サーバに転送し、ファイル転送サーバは、転送されたファイル受信要求を受信すると、当該ファイル受信要求にて指定されるファイルをアプリケーションサーバに送信するので、ファイル転送サーバからアプリケーションサーバまでのファイル受信については、バッチ処理を廃止してリアルタイム処理とすることで(もしくは、バッチ処理とリアルタイム処理とを並存させることで)、ファイル転送サーバにファイルが到着するとすぐに利用者端末がファイル受信することが可能になり、ユーザまでのファイル到達を迅速にすることが可能になる。
以下に添付図面を参照して、本発明に係るファイル転送システムおよびアプリケーションサーバの実施例を詳細に説明する。なお、以下では、実施例1に係るファイル転送システムの概要および特徴、実施例1に係るファイル転送システムの構成および処理の手順、実施例1の効果を順に説明し、次に、他の実施例について説明する。
[実施例1に係るファイル転送システムの概要および特徴]
まず、図1および図2を用いて、実施例1に係るファイル転送システムの概要および特徴を説明する。図1は、実施例1に係るファイル転送システムの概要および特徴(ファイルアップロード)を説明するための図であり、図2は、ファイル転送システムの概要および特徴(ファイルダウンロード)を説明するための図である。
実施例1に係るファイル転送システムは、利用者端末とファイル転送サーバとの間に介在するアプリケーションサーバが、当該利用者端末と当該ファイル転送サーバとの間で送受信されるファイルに対して当該ファイルの転送に必要な複数の処理を段階的に実行することを概要とし、全体の処理時間を短縮することが可能な構成であることを主たる特徴とする。以下、ファイルアップロード、ファイルダウンロードを順に説明する。
[ファイルアップロード]
まず、図1を用いてファイルアップロードについて説明すると、まず、アプリケーションサーバは、利用者端末から送信されたファイルであって、ファイルのアップロードに必要な複数の処理を実行する前のファイル(以下、処理実行前ファイル)を、ファイル記憶部(HDD)に格納する(図1の(1)を参照)。
この時、実施例1におけるアプリケーションサーバは、ファイルのアップロードに必要な複数の処理各々を実行する処理器として、『コンテナ化処理』を実行する処理器と、『暗号化処理』を実行する処理器とを生成する。また、『コンテナ化処理』を実行する処理器と『暗号化処理』を実行する処理器とは、ストリーム化されている。具体的には、『コンテナ化処理』を実行する処理器の処理結果がバッファに出力され、バッファに出力された当該処理結果が『暗号化処理』を実行する処理器に入力されるように、『コンテナ化処理』を実行する処理器と『暗号化処理』を実行する処理器とがバッファで結合されている。
続いて、アプリケーションサーバは、ファイル記憶部(HDD)に格納されたファイルを、処理器のうち最も前段の処理を実行する処理器に入力する(図1の(2)を参照)。例えば、アプリケーションサーバは、ファイル記憶部(HDD)に格納されたファイルを、『コンテナ化処理』を実行する処理器に入力する。なお、実施例1に係るファイル転送システムにおいて、「コンテナ」とは、利用者端末から受信したファイルに対して圧縮処理を行ったものであり、送信対象となるファイルをひとまとめにしたものである。
すると、最も前段の処理を実行する処理器の処理結果がバッファに出力され、バッファに出力された当該処理結果が次段の処理を実行する処理器に入力される(図1の(3)を参照)。例えば、アプリケーションサーバにおいて、『コンテナ化処理』を実行する処理器の処理結果がバッファに出力され、バッファに出力された当該処理結果が『暗号化処理』を実行する処理器に入力される。
そして、アプリケーションサーバは、処理器の内最も後段の処理を実行する処理器から出力された処理結果を、ファイル記憶部(HDD)に格納する(図1の(4)を参照)。例えば、アプリケーションサーバは、『暗号化処理』を実行する処理器から出力された処理結果を、ファイル記憶部(HDD)に格納する。なお、実施例1に係るファイル転送システムにおいては、ファイルのアップロードに必要な処理を実行した後のファイルを、処理実行後コンテナと呼ぶ。
その後、アプリケーションサーバは、ファイル記憶部(HDD)に格納された処理結果(処理実行後コンテナ)を、ファイル転送サーバに送信する(図1の(5)を参照)。
このようなことから、実施例1に係るファイル転送システムにおいては、アプリケーションサーバの内部処理をバッファで結合してストリーム化することで、全体の処理時間を短縮することが可能になる。すなわち、実施例1に係るファイル転送システムにおいては、アプリケーションサーバが、『コンテナ化処理』を実行する処理器の処理結果がバッファに出力され、バッファに出力された処理結果が『暗号化処理』を実行する処理器に入力されるように、内部処理をバッファで結合してストリーム化する。このため、HDDのような外部記憶装置にアクセスする処理の回数が減少する結果、ファイルアップロードの処理時間を短縮することが可能になる。
[ファイルダウンロード]
次に、図2を用いてファイルダウンロードについて説明すると、まず、実施例1におけるアプリケーションサーバは、利用者からファイル受信要求(ファイル転送サーバに記憶されているファイルのダウンロードを要求)を受信すると、この時、ファイルのダウンロードに必要な複数の処理各々を実行する処理器として、『復号処理』を実行する処理器と、『コンテナ解凍処理』を実行する処理器と、『再圧縮処理』を実行する処理器とを生成する。
ここで、『復号処理』を実行する処理器と『コンテナ解凍処理』を実行する処理器とは、ストリーム化されている。具体的には、『復号処理』を実行する処理器の処理結果がバッファに出力され、バッファに出力された当該処理結果が『コンテナ解凍処理』を実行する処理器に入力されるように、『復号処理』を実行する処理器と『コンテナ解凍処理』を実行する処理器とがバッファで結合されている。さらに、『コンテナ解凍処理』を実行する処理器と『再圧縮処理』を実行する処理器とは、ストリーム化されている。具体的には、『コンテナ解凍処理』を実行する処理器の処理結果がバッファに出力され、バッファに出力された当該処理結果が『再圧縮処理』を実行する処理器に入力されるように、『コンテナ解凍処理』を実行する処理器と『再圧縮処理』を実行する処理器とがバッファで結合されている。
また、実施例1におけるアプリケーションサーバは、利用者から受信したファイル受信要求を、ファイル転送サーバに転送する。その後、アプリケーションサーバは、ファイルのダウンロードに必要な複数の処理を実行する前のコンテナ(以下、処理実行前コンテナ)をファイル転送サーバから受信し、当該処理実行前コンテナを、処理器のうち最も前段の処理を実行する処理器に入力する(図2の(1)を参照)。例えば、アプリケーションサーバは、処理実行前コンテナを、『復号処理』を実行する処理器に入力する。
すると、最も前段の処理を実行する処理器の処理結果がバッファに出力され、バッファに出力された当該処理結果が次段の処理を実行する処理器に入力される(図2の(2)を参照)。例えば、アプリケーションサーバにおいて、『復号処理』を実行する処理器の処理結果がバッファに出力され、バッファに出力された当該処理結果が『コンテナ解凍処理』を実行する処理器に入力される。続いて、『コンテナ解凍処理』を実行する処理器の処理結果がバッファに出力され、バッファに出力された当該処理結果が『再圧縮処理』を実行する処理器に入力される。
そして、アプリケーションサーバは、処理器の内最も後段の処理を実行する処理器から出力された処理結果(処理実行後ファイル)を、利用者端末に送信する(図2の(3)を参照)。
このようなことから、実施例1に係るファイル転送システムにおいては、アプリケーションサーバの内部処理をバッファで結合してストリーム化することで、全体の処理時間を短縮することが可能になる。すなわち、実施例1に係るファイル転送システムにおいては、アプリケーションサーバが、『復号処理』を実行する処理器の処理結果がバッファに出力され、バッファに出力された処理結果が『コンテナ解凍処理』を実行する処理器に入力されるように、続いて、『コンテナ解凍処理』を実行する処理器の処理結果がバッファに出力され、バッファに出力された処理結果が『再圧縮処理』を実行する処理器に入力されるように、内部処理をバッファで結合してストリーム化する。このため、HDDのような外部記憶装置にアクセスする処理の回数が減少する結果、ファイルダウンロードの処理時間を短縮することが可能になる。
なお、実施例1においては、上記してきたように、処理器各々がその都度生成される(ファイルアップロードについては、利用者端末から送信されたファイルをファイル記憶部(HDD)に格納した際、ファイルダウンロードについては、利用者からファイル受信要求を受信した際、その都度生成される)ことを想定してきたが、本発明はこれに限られるものではない。いくつかの処理器各々が予め生成されてストックされており、その都度ストックから処理器を割り当てて、処理終了後に処理器をストックに戻す手法でもよい。例えば、ファイルアップロードについては、利用者端末から送信されたファイルをファイル記憶部(HDD)に格納した際、ストックから処理器を割り当ててもよい。また、ファイルダウンロードについては、利用者からファイル受信要求を受信した際、ストックから処理器を割り当ててもよい。
また、実施例1においては、ファイルアップロードに必要な処理として、コンテナ化処理と暗号化処理とがこの順で行われることを想定し、ファイルダウンロードに必要な処理として、復号処理とコンテナ解凍処理と再圧縮処理とがこの順で行われることを想定したが、本発明はこれに限られるものではない。これらの処理の順番も任意であるし、ファイルアップロードやファイルダウンロードに必要な処理として異なる処理が追加されてもよく、また、一部の処理が削除されてもよい。
[実施例1に係るファイル転送システムの構成]
次に、図3〜図7を用いて、実施例1に係るファイル転送システムの構成を説明する。図3および図4は、実施例1におけるアプリケーションサーバの構成を示すブロック図であり、図5は、実施例1に係るファイル転送システムにおけるHDDアクセス(ファイルアップロード)について説明するための図であり、図6は、実施例1に係るファイル転送システムにおけるHDDアクセス(ファイルダウンロード)について説明するための図であり、図7は、実施例1におけるファイル転送サーバの構成を示すブロック図である。以下、アプリケーションサーバ、ファイル転送サーバを順に説明する。
[アプリケーションサーバ]
図3に示すように、実施例1におけるアプリケーションサーバ100は、通信部110と、記憶部120と、制御部130とから主に構成される。
通信部110は、IP(Internet Protocol)通信用の一般的なインタフェースおよびライブラリを備え、利用者端末やファイル転送サーバ200との間でファイル(コンテナを含む)を送受信するなどする。
記憶部120は、制御部130による各種処理に用いるデータを記憶する手段であり、特に本発明に密接に関連するものとしては、図3に示すように、ファイル記憶部121を備える。
ファイル記憶部121は、ファイルを記憶するハードディスクドライブ(HDD)のような外部記憶装置である。ファイル記憶部121は、後述するファイル/コンテナ受信部131によって受信されたファイル(利用者端末から送信されたファイル)を当該ファイル/コンテナ受信部131によって格納されることで記憶する。また、ファイル記憶部121は、後述するファイルアップロード処理部140によって複数の処理を段階的に実行された処理実行後のファイルを記憶する。また、ファイル記憶部121に記憶さているファイルは、後述するコンテナ/ファイル送信部133による処理に利用される。
制御部130は、アプリケーションサーバ100を制御して各種処理を実行する手段であり、特に本発明に密接に関連するものとしては、図3に示すように、ファイル/コンテナ受信部131と、ファイル処理部132と、コンテナ/ファイル送信部133と、ファイル受信要求受信部134と、ファイル受信要求転送部135とを備える。また、ファイル処理部132は、ファイルアップロード処理部140と、ファイルダウンロード処理部150とを備える。
ファイル/コンテナ受信部131は、ファイルアップロード時、利用者端末から送信されたファイルを受信してファイル記憶部121に格納する。また、ファイル/コンテナ受信部131は、ファイルアップロード時、ファイル記憶部121に格納したファイルをファイル処理部132(ファイルアップロード処理部140)に入力する。ここで、ファイル/コンテナ受信部131は、ファイルアップロード処理部140が備える複数の処理器の内、最も前段の処理を実行する処理器(後述するコンテナ化処理部141)にファイルを入力する。
また、ファイル/コンテナ受信部131は、ファイルダウンロード時、ファイル転送サーバ200から送信されたコンテナを受信してファイル処理部132(ファイルダウンロード処理部150)に入力する。ここで、ファイル/コンテナ受信部131は、ファイルダウンロード処理部150が備える複数の処理器の内、最も前段の処理を実行する処理器(後述する復号処理部151)にファイルを入力する。
ここで、実施例1におけるファイル/コンテナ受信部131は、ファイルダウンロード時、ファイル転送サーバ200から送信されたコンテナが、分割されたコンテナ(コンテナデータおよびメタデータ(コンテナ全体を説明するデータ)のデータセットを分割したもの)である場合には、分割されたコンテナを1つずつストリーム状に受信し、受信した順に結合して、元のデータセットを再構築する。なお、「ストリーム状」とは、データとして不完全な状態ではあるが、到着した順に処理できる状態であることを意味する。
続いて、ファイル/コンテナ受信部131は、データセットをコンテナデータとメタデータとに分離する。その後、ファイル/コンテナ受信部131は、コンテナデータとメタデータとに分離されたファイルを、ストリーム状に復号処理部151に入力する。
ファイルアップロード処理部140は、ファイルアップロード時、ファイル/コンテナ受信部131が利用者端末から送信されたファイルをファイル記憶部121に格納した際、ファイルのアップロードに必要な複数の処理を段階的に実行する処理器各々を生成する。具体的には、ファイルアップロード処理部140は、図4に示すように、コンテナ化処理部141と、暗号化処理部142とを生成する。
ここで、実施例1におけるファイルアップロード処理部140は、これらの処理器各々を生成する際に、コンテナ化処理部141による処理と、暗号化処理部142による処理とを、バッファで結合してストリーム化している。具体的に説明すると、コンテナ化処理部141による処理結果がバッファに出力され、バッファに出力された当該処理結果が暗号化処理部142に入力されるように、コンテナ化処理部141による処理と暗号化処理部142による処理とをバッファで結合してストリーム化している。これを言い換えると、コンテナ化処理部141による処理結果として中間生成データが生成されることはなく、また、コンテナ化処理部141による処理結果がファイル記憶部121に格納されることもない。このため、コンテナ化処理部141は、ファイル記憶部121にアクセスすることなく、暗号化処理部142に処理結果を渡すことができ、一方、暗号化処理部142は、ファイル記憶部121にアクセスすることなく、バッファから入力された処理結果を用いて処理を実行することができる。なお、このようなストリーム化をJava(登録商標)で実装する場合には、ストリームバッファで結合することになる。
コンテナ化処理部141は、ファイル記憶部121に記憶されているファイルに対してコンテナ化処理を実行し、処理結果をバッファに出力する。すなわち、コンテナ化処理部141は、ファイル記憶部121に記憶されているファイルに対して圧縮処理を行う。
暗号化処理部142は、バッファに出力された処理結果(コンテナ化処理部141による処理の処理結果)を入力として受け付けて暗号化処理を実行し、処理結果をファイル記憶部121に格納する。なお、実施例1における暗号化処理部142は、暗号化処理の他に、チェックサム計算を実行する。
ところで、ファイルアップロード処理部140による処理とHDDアクセスとの関係について、図5を用いて説明する。なお、図5は、アプリケーションサーバ100におけるファイルアップロード時の処理の流れを概念的に示すものであって、『ファイル受信』、『コンテナ化』、『暗号化』、『チェックサム計算』、および『コンテナ送信』は、アプリケーションサーバ100を構成する各部に必ずしも対応するものではない。また、『HDD』とは、ファイル記憶部121のことであり、『HDD』が実線で表現されている場合は、ファイル記憶部121に対するアクセスが発生していることを示し、『HDD』が点線で表現されている場合には、ファイル記憶部121に対するアクセスが発生していないことを示している。すなわち、『HDD』に対して矢印の終端が示されている場合には、ファイル記憶部121に対する書き込みアクセスが発生していることを示し、『HDD』に矢印の始点が示されている場合には、ファイル記憶部121からの読み出しアクセスが発生していることを示している。
すると、図5に示すように、実施例1におけるファイル転送システムにおいて、ファイルアップロード時には、利用者端末から送信されたファイルや中間生成データがファイル記憶部121に保存される回数が、3回から2回に減少していることがわかる。すなわち、コンテナ化処理部141による処理と暗号化処理部142による処理とがバッファで結合してストリーム化されていることで、『コンテナ化』と『暗号化』との間において、『HDD』に対する書き込みアクセスや読み出しアクセスが発生しないのである。
図4に戻り、ファイルダウンロード処理部150は、ファイルダウンロード時、ファイル受信要求受信部134が利用者端末からファイル受信要求を受信した際、ファイルのダウンロードに必要な複数の処理を段階的に実行する処理器各々を生成する。具体的には、ファイルダウンロード処理部150は、図4に示すように、復号処理部151と、コンテナ解凍処理部152と、ZIP再圧縮処理部153とを生成する。
ここで、実施例1におけるファイルダウンロード処理部150は、これらの処理器各々を生成する際に、復号処理部151による処理と、コンテナ解凍処理部152による処理と、ZIP再圧縮処理部153による処理とを、バッファで結合してストリーム化している。具体的に説明すると、復号処理部151による処理結果がバッファに出力され、バッファに出力された当該処理結果がコンテナ解凍処理部152に入力されるように、復号処理部151による処理とコンテナ解凍処理部152による処理とをバッファで結合してストリーム化している。これを言い換えると、復号処理部151による処理結果として中間生成データが生成されることはなく、また、復号処理部151による処理結果がファイル記憶部121に格納されることもない。このため、復号処理部151は、ファイル記憶部121にアクセスすることなく、コンテナ解凍処理部152に処理結果を渡すことができ、一方、コンテナ解凍処理部152は、ファイル記憶部121にアクセスすることなく、バッファから入力された処理結果を用いて処理を実行することができる。
同様に、コンテナ解凍処理部152による処理結果がバッファに出力され、バッファに出力された当該処理結果がZIP再圧縮処理部153に入力されるように、コンテナ解凍処理部152による処理とZIP再圧縮処理部153による処理とをバッファで結合してストリーム化している。これを言い換えると、コンテナ解凍処理部152による処理結果として中間生成データが生成されることはなく、また、コンテナ解凍処理部152による処理結果がファイル記憶部121に格納されることもない。このため、コンテナ解凍処理部152は、ファイル記憶部121にアクセスすることなく、ZIP再圧縮処理部153に処理結果を渡すことができ、一方、ZIP再圧縮処理部153は、ファイル記憶部121にアクセスすることなく、バッファから入力された処理結果を用いて処理を実行することができる。なお、このようなストリーム化をJava(登録商標)で実装する場合には、ストリームバッファで結合することになる。
復号処理部151は、ファイル/コンテナ受信部131からストリーム状に入力されたファイルに対して復号処理を実行し、処理結果をバッファに出力する。
コンテナ解凍処理部152は、バッファに出力された処理結果(復号処理部151による処理の処理結果)を入力として受け付けてコンテナ解凍処理を実行し、処理結果をバッファに出力する。
ZIP再圧縮処理部153は、バッファに出力された処理結果(コンテナ解凍処理部152による処理の処理結果)を入力として受け付けてZIP再圧縮処理を実行し、処理結果をストリーム状にコンテナ/ファイル送信部133に入力する。
ところで、ファイルダウンロード処理部150による処理とHDDアクセスとの関係について、図6を用いて説明する。なお、図6は、アプリケーションサーバ100におけるファイルダウンロード時の処理の流れを概念的に示すものであって、『コンテナ受信』、『復号』、『コンテナ解凍』、『ZIP再圧縮』、および『ファイル送信』は、アプリケーションサーバ100を構成する各部に必ずしも対応するものではない。
すると、図6に示すように、実施例1におけるファイル転送システムにおいて、ファイルダウンロード時には、ファイル転送サーバから送信されたコンテナや中間生成データがファイル記憶部121に保存される回数が、4回から0回に減少していることがわかる。すなわち、復号処理部151による処理とコンテナ解凍処理部152による処理とZIP再圧縮処理部153による処理とがバッファで結合してストリーム化されていることで、『復号』と『コンテナ解凍』との間において、また、『コンテナ解凍』と『ZIP再圧縮』との間において、『HDD』に対する書き込みアクセスや読み出しアクセスが発生しないのである。また、実施例1に係るファイル転送システムにおいては、ファイル転送サーバ200とファイル/コンテナ受信部131との間のファイルの送受信や、ZIP再圧縮処理部153とコンテナ/ファイル送信部133との間のファイルの送受信、あるいは、コンテナ/ファイル送信部133と利用者端末との間のファイルの送受信も、全てストリーム状に行われることから、『HDD』に対する書き込みアクセスや読み出しアクセスが全く発生しないのである。
図3に戻り、コンテナ/ファイル送信部133は、ファイルアップロード時、ファイル記憶部121に格納されたコンテナを、ファイル転送サーバ200に送信する。また、コンテナ/ファイル送信部133は、ファイルダウンロード時、ZIP再圧縮処理部153から入力されたファイルを、ストリーム状に利用者端末に送信する。
なお、実施例1におけるコンテナ/ファイル送信部133は、ファイルアップロード時、ファイル転送サーバ200に送信するコンテナ全体を説明するメタデータを作成し、コンテナデータに付与する。そして、コンテナ/ファイル送信部133は、コンテナデータおよびメタデータのデータセットを送信する。この時、ネットワーク環境やユーザ設定などに応じて、当該データセットを何回かに分割して送信することがある。コンテナ/ファイル送信部133は、分割送信の際には、データセットの先頭に近いものから順に送る。
ファイル受信要求受信部134は、ファイル受信要求(ファイル転送サーバ200に記憶されているファイルのダウンロードを要求)を利用者端末から受信する。ファイル受信要求転送部135は、ファイル受信要求受信部134によって受信されたファイル受信要求を、ファイル転送サーバ200に転送する。例えば、ファイル受信要求転送部135は、HTTPクライアントとしての機能を備え、HTTPサーバとしての機能を備えるファイル転送サーバ200に対して『GETリクエスト』コマンドを送信することなどで、ファイル受信要求を転送する。
[ファイル転送サーバ]
図7に示すように、実施例1におけるファイル転送サーバ200は、通信部210と、記憶部220と、制御部230とから主に構成される。
通信部210は、IP通信用の一般的なインタフェースおよびライブラリを備え、アプリケーションサーバ100との間でコンテナを送受信するなどする。
記憶部220は、制御部230による各種処理に用いるデータを記憶する手段であり、特に本発明に密接に関連するものとしては、図7に示すように、コンテナ記憶部221を備える。
コンテナ記憶部221は、コンテナを記憶する。コンテナ記憶部221は、後述するコンテナ受信部231によって受信されたコンテナ(アプリケーションサーバ100から送信されたコンテナ)を当該コンテナ受信部231によって格納されることで記憶する。また、コンテナ記憶部221に記憶されているコンテナは、後述するコンテナ転送部233による処理に利用される。
制御部230は、ファイル転送サーバ200を制御して各種処理を実行する手段であり、特に本発明に密接に関連するものとしては、図7に示すように、コンテナ受信部231と、ファイル受信要求受信部232と、コンテナ転送部233とを備える。
コンテナ受信部231は、ファイルアップロード時、アプリケーションサーバ100から送信されたコンテナを受信してコンテナ記憶部221に格納する。
ファイル受信要求受信部232は、アプリケーションサーバ100から転送されたファイル受信要求(利用者端末から送信された要求であって、ファイル転送サーバ200に記憶されているファイルをダウンロードすることを要求する)を受信する。
コンテナ転送部233は、ファイル受信要求受信部232によって受信されたファイル受信要求にて指定されるファイル(なお、実施例1においては、コンテナとして圧縮されたもの)を、ストリーム状にアプリケーションサーバ100に送信する。
ところで、実施例1に係るファイル転送システムにおいて、ファイル転送サーバ200は、利用者端末からファイル受信要求を受信しなかったファイルについては、一定期間を経過することでコンテナ記憶部221から削除するという運用形態を想定している。もっとも、本発明はこれに限られるものではなく、利用者端末からファイル受信要求を受信しなかったファイルについては、バッチ処理でアプリケーションサーバ100に送信するような運用形態としてもよい。
[実施例1に係るファイル転送システムによる処理の手順]
次に、図8および図9を用いて、実施例1に係るファイル転送システムによる処理の手順を説明する。図8は、実施例1に係るファイル転送システムによる処理の手順(ファイルアップロードシーケンス)を示すシーケンス図であり、図9は、実施例1に係るファイル転送システムによる処理の手順(ファイルダウンロードシーケンス)を示すシーケンス図である。以下、ファイルアップロード、ファイルダウンロードを順に説明する。なお、図8および図9において、実線で示す処理の手順は「呼び出し」を意味し、点線で示す処理の手順は「処理の戻り」を意味する。
[ファイルアップロード]
まず、図8に示す『サーブレット』、『コンテナ化/暗号化ストリーム』、『ファイルシステム』、および『コンテナ送信機能』について説明すると、これらは、いずれも、実施例1におけるアプリケーションサーバ100が、各部の機能をJava(登録商標)等を用いて実装した場合の一例を示すものである。
具体的には、『サーブレット』は、Webサーバ上で動作するJava(登録商標)のプログラムのことである。すなわち、この場合、アプリケーションサーバ100は、Webサーバとしての機能を備える。利用者端末にインストールされているWebブラウザが、アプリケーションサーバ100に対してHTTP(HyperText Transfer Protocol)リクエストでファイルを送信(アップロード)すると、アプリケーションサーバ100が備えるサーブレットのプログラムが動作し、動作結果をWebブラウザに応答する。図3で示したファイル/コンテナ受信部131がこれに相当する。
また、『コンテナ化/暗号化ストリーム』は、ここでは、Java(登録商標)を用いてストリーム化された『コンテナ化処理』を実行する処理器や『暗号化処理』を実行する処理器のことである。図4で示したコンテナ化処理部141や暗号化処理部142がこれに相当する。また、『ファイルシステム』は、一般的には、コンピュータの資源を操作するためのオペレーティングシステムの機能のことであるが、ここでは、アプリケーションサーバ100のファイルシステムを経由して図4に示したファイル記憶部121にファイルが格納されることを示すものである。また、『コンテナ送信機能』は、図3で示したコンテナ/ファイル送信部133がこれに相当する。なお、本発明におけるアプリケーションサーバ100は、このような実装に限られるものではなく、Java(登録商標)以外の他の言語を用いて実装してもよく、具体的な実装方法は任意である。
次に、実施例1に係るファイル転送システムによるファイルアップロードのシーケンスを説明すると、まず、利用者端末にインストールされているWebブラウザが、アプリケーションサーバ100(Webサーバ)に対してHTTPリクエストでファイル送信(アップロード)を開始する(ステップS101)。
そして、アプリケーションサーバ100で動作する『サーブレット』は、利用者端末から受信した全てのユーザデータ(平文)を『ファイルシステム』に保存する(ステップS102)。なお、当該ファイルは、後に削除されるファイルであることから、一時的に保存されるファイルという意味で『一時ファイル』という。
ここで、実施例1におけるアプリケーションサーバ100は、ファイルのアップロードに必要な複数の処理各々を実行する処理器として、『コンテナ化処理』を実行する処理器と、『暗号化処理』を実行する処理器とを生成する。また、『コンテナ化処理』を実行する処理器と『暗号化処理』を実行する処理器とは、ストリーム化されている。具体的には、『コンテナ化処理』を実行する処理器の処理結果がバッファに出力され、バッファに出力された当該処理結果が『暗号化処理』を実行する処理器に入力されるように、『コンテナ化処理』を実行する処理器と『暗号化処理』を実行する処理器とがバッファで結合されている。なお、実施例1においては、『コンテナ化処理』を実行する処理器の処理結果の一部(コンテナ化データの一部)をバッファに蓄積すると、コンテナ化データの全部を蓄積し終えなくても、『暗号化処理』を実行する処理器は、バッファに蓄積された処理結果の一部を入力として受け付けて処理を開始し、結果として、『コンテナ化処理』を実行する処理器・『暗号化処理』を実行する処理器の両方の処理が同時に実行されることになる。
続いて、アプリケーションサーバ100の『サーブレット』は、『ファイルシステム』からファイル情報を取得する(ステップS103およびS104)。ここで、ファイル情報とは、例えば、一時ファイルのファイル名(ディレクトリパスを含む)のことである。後に『サーブレット』がコンテナ化/暗号化スレッドを起動するにあたり、当該コンテナ化/暗号化の対象とすべき一時ファイルを指定するためにファイル名が必要になることから、この事前処理として、ファイル情報の取得が行われる。
そして、『サーブレット』は、コンテナ化/暗号化スレッドを起動する(ステップS105)。具体的には、アプリケーションサーバ100の『サーブレット』は、最も前段の処理器である『コンテナ化処理』を実行する処理器に、ファイルを入力する。なお、『サーブレット』は、アップロード完了画面を利用者端末にインストールされているWebブラウザに応答する(ステップS106)。
すると、『コンテナ化処理』を実行する処理器の処理結果がバッファに出力され、バッファに出力された当該処理結果が『暗号化処理』を実行する処理器に入力される(なお、『暗号化処理』を実行する処理器は、暗号化の他にチェックサム計算を行う)。そして、アプリケーションサーバ100は、『暗号化処理』を実行する処理器の処理結果(コンテナ)を『ファイルシステム』に保存する(ステップS107およびS108)。
その後、アプリケーションサーバ100は、『ファイルシステム』からコンテナを読み出し、コンテナ送信スレッドを起動して(ステップS109)、『ファイルシステム』に保存していた一時ファイルを削除する(ステップS110)。なお、一時ファイルを削除するか否かという点は、運用の形態等に合わせて任意に変更し得るものである。
その後、『コンテナ送信機能』は、メタデータの作成など、コンテナ送信準備処理や(ステップS111)、コンテナ送信要求を実行するなどして(ステップS112)、コンテナをファイル転送サーバ200に送信する。
[ファイルダウンロード]
まず、図9に示す『サーブレット』、『復号/解凍/ZIPストリーム』、および『HTTPクライアント』について説明すると、これらは、いずれも、実施例1におけるアプリケーションサーバ100が、各部の機能をJava(登録商標)等を用いて実装した場合の一例を示すものである。
『サーブレット』は、図3で示したファイル受信要求受信部134やファイル受信要求転送部135がこれに相当する。また、『復号/解凍/ZIPストリーム』は、ここでは、Java(登録商標)を用いてストリーム化された『復号処理』を実行する処理器や『コンテナ解凍処理』を実行する処理器、あるいは『ZIP再圧縮処理』を実行する処理器のことである。図4で示した復号処理部151やコンテナ解凍処理部152、ZIP再圧縮処理部153がこれに相当する。また、『HTTPクライアント』は、アプリケーションサーバ100が、HTTPクライアントとしての機能を備えていることを示す。図3で示したファイル/コンテナ受信部131やファイル受信要求転送部135がこれに相当する。なお、本発明におけるアプリケーションサーバ100は、このような実装に限られるものではなく、Java(登録商標)以外の他の言語を用いて実装してもよく、具体的な実装方法は任意である。
次に、実施例1に係るファイル転送システムによるファイルダウンロードのシーケンスを説明すると、まず、利用者が、自身宛のコンテナがファイル転送サーバ200に到着したことを知った場合などに、利用者端末にインストールされているWebブラウザが、アプリケーションサーバ100(Webサーバ)に対してHTTPリクエストでファイル受信要求(ファイルダウンロード要求)を送信する(ステップS201)。
そして、アプリケーションサーバ100で動作する『サーブレット』は、ファイルのダウンロードに必要な複数の処理各々を実行する処理器として、『復号処理』を実行する処理器と、『コンテナ解凍処理』を実行する処理器と、『再圧縮処理』を実行する処理器とを生成するとともに、利用者端末から送信されたファイル受信要求を『HTTPクライアント』に伝達し(ステップS202)、『HTTPクライアント』が、ファイル転送サーバ200に対してGETリクエストで当該ファイル受信要求を転送する(ステップS203)。
すると、ファイル転送サーバ200は、転送されたファイル受信要求にて指定されるコンテナを、アプリケーションサーバ100にストリーム状に送信する(ステップS204)。
一方、アプリケーションサーバ100の『HTTPクライアント』は、ファイル転送サーバ200からストリーム状に受信したコンテナを、最も前段の処理器である『復号処理』を実行する処理器にストリーム状に入力する(ステップS205)。ここで、実施例1におけるアプリケーションサーバ100において、『復号処理』を実行する処理器と『コンテナ解凍処理』を実行する処理器とは、ストリーム化されている。具体的には、『復号処理』を実行する処理器の処理結果がバッファに出力され、バッファに出力された当該処理結果が『コンテナ解凍処理』を実行する処理器に入力されるように、『復号処理』を実行する処理器と『コンテナ解凍処理』を実行する処理器とがバッファで結合されている。さらに、『コンテナ解凍処理』を実行する処理器と『再圧縮処理』を実行する処理器とは、ストリーム化されている。具体的には、『コンテナ解凍処理』を実行する処理器の処理結果がバッファに出力され、バッファに出力された当該処理結果が『再圧縮処理』を実行する処理器に入力されるように、『コンテナ解凍処理』を実行する処理器と『再圧縮処理』を実行する処理器とがバッファで結合されている。なお、実施例1においては、『復号処理』を実行する処理器の処理結果の一部(コンテナ化データの一部)をバッファに蓄積すると、コンテナ化データの全部を蓄積し終えなくても、『コンテナ解凍処理』を実行する処理器は、バッファに蓄積された処理結果の一部を入力として受け付けて処理を開始し、結果として、『復号処理』を実行する処理器・『コンテナ解凍処理』を実行する処理器の両方の処理が同時に実行されることになる。また、実施例1においては、『コンテナ解凍処理』を実行する処理器の処理結果の一部(ファイルの一部)をバッファに蓄積すると、ファイルの全部を蓄積し終えなくても、『再圧縮処理』を実行する処理器は、バッファに蓄積された処理結果の一部を入力として受け付けて処理を開始し、結果として、『コンテナ解凍処理』を実行する処理器・『再圧縮処理』を実行する処理器の両方の処理が同時に実行されることになる。
すると、『復号処理』を実行する処理器の処理結果がバッファに出力され、バッファに出力された当該処理結果が『コンテナ解凍処理』を実行する処理器に入力され、『コンテナ解凍処理』を実行する処理器の処理結果がバッファに出力され、バッファに出力された当該処理結果が『ZIP再圧縮処理』を実行する処理器に入力される(ステップS206)。そして、アプリケーションサーバ100は、『ZIP再圧縮処理』を実行する処理器の処理結果(ZIPファイル)を、『サーブレット』に対してストリーム状に出力し(ステップS207)、続いて、『サーブレット』は、処理結果(ZIPファイル)を、利用者端末にインストールされているWebブラウザに対してストリーム状に送信する(ステップS208)。
[実施例1の効果]
上記してきたように、実施例1によれば、利用者端末とファイル転送サーバとの間にアプリケーションサーバが介在し、当該アプリケーションサーバが、当該利用者端末と当該ファイル転送サーバとの間で送受信されるファイルに対して当該ファイルの転送に必要な複数の処理を段階的に実行するファイル転送システムであって、アプリケーションサーバは、前段の処理の処理結果がバッファに出力され、バッファに出力された当該処理結果が次段の処理に入力されるように複数の処理各々を実行する処理器各々を備え、複数の処理を実行する前のファイルとして利用者端末もしくはファイル転送サーバから送信されたファイルを、処理器各々の内最も前段の処理を実行する処理器に入力し、処理器各々の内最も後段の処理を実行する処理器から出力された処理結果を、ファイル転送サーバもしくは利用者端末に送信するので、処理をストリーム化することでデータの受け渡しがメモリ上で行われるようになり、外部記憶装置にアクセスする回数が減少する結果、全体の処理時間を短縮することが可能になる。また、中間生成データ(例えば、圧縮済みデータや暗号化済みデータなど)が発生しなくなるので、外部記憶装置の使用量を節約することが可能になる。
また、実施例1によれば、前段の処理器が処理結果の一部(ファイルの一部)をバッファに蓄積すると、ファイルの全部を蓄積し終えなくても、次段の処理器は、バッファに蓄積された処理結果の一部を入力として受け付けて処理を開始することができるので、結果として、前段・次段両方の処理を同時に実行できるため、全体の処理時間をより短縮することが可能になる。
また、実施例1によれば、アプリケーションサーバは、複数の処理を実行する前のファイルとして利用者端末から送信されたファイルをファイル記憶部(外部記憶装置)に格納するものであって、最も後段の処理器から処理結果が出力されると、当該ファイルをファイル記憶部から削除するので、利用者端末から送信されたファイル(例えば、平文状態のフルセットのユーザデータなど)が外部記憶装置に保存される期間が短縮される結果、セキュリティ面の堅牢性を高めることが可能になる。
また、実施例1によれば、アプリケーションサーバは、ファイル転送サーバに記憶されているファイルを受信することを要求するファイル受信要求を利用者端末から受信すると、当該ファイル受信要求を当該ファイル転送サーバに転送し、ファイル転送サーバは、転送されたファイル受信要求を受信すると、当該ファイル受信要求にて指定されるファイルをアプリケーションサーバに送信するので、ファイル転送サーバからアプリケーションサーバまでのファイル受信については、バッチ処理を廃止してリアルタイム処理(インタラクティブ処理)とすることで(もしくは、バッチ処理とリアルタイム処理とを並存させることで)、ファイル転送サーバにファイルが到着するとすぐに利用者端末がファイル受信することが可能になり、ユーザまでのファイル到達を迅速にすることが可能になる。
すなわち、従来の手法では、ファイル転送サーバからアプリケーションサーバまでのファイル受信についてはバッチ処理によって行われていた。このようなバッチ処理では、ユーザがダウンロードしたいと要求するファイルがファイル転送サーバに到着していても、当該ファイルがアプリケーションサーバに到着していない限り、ユーザは、ファイルをダウンロードすることができなかった。この点、実施例1によれば、ユーザがダウンロードしたいと要求するファイルがファイル転送サーバに到着してさえいれば、ユーザは、適宜、ファイルのダウンロード要求をアプリケーションサーバに送信することで、直ちにファイルのダウンロードを行うことができる。
[他の実施例]
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
[システム構成等]
本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示(図3、4、7)の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
なお、本実施例で説明したファイル転送方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
以上のように、本発明に係るファイル転送システムおよびアプリケーションサーバは、利用者端末とファイル転送サーバとの間に介在するアプリケーションサーバが、当該利用者端末と当該ファイル転送サーバとの間で送受信されるファイルに対して当該ファイルの転送に必要な複数の処理を段階的に実行することに有用であり、特に、全体の処理時間を短縮することに適する。
実施例1に係るファイル転送システムの概要および特徴(ファイルアップロード)を説明するための図である。 実施例1に係るファイル転送システムの概要および特徴(ファイルダウンロード)を説明するための図である。 実施例1におけるアプリケーションサーバの構成を示すブロック図である。 実施例1におけるアプリケーションサーバの構成を示すブロック図である。 実施例1に係るファイル転送システムにおけるHDDアクセス(ファイルアップロード)について説明するための図である。 実施例1に係るファイル転送システムにおけるHDDアクセス(ファイルダウンロード)について説明するための図である。 実施例1におけるファイル転送サーバの構成を示すブロック図である。 実施例1に係るファイル転送システムによる処理の手順(ファイルアップロードシーケンス)を示すシーケンス図である。 実施例1に係るファイル転送システムによる処理の手順(ファイルダウンロードシーケンス)を示すシーケンス図である。 従来技術(ファイルアップロード)を説明するための図である。 従来技術(ファイルダウンロード)を説明するための図である。
符号の説明
100 アプリケーションサーバ
110 通信部
120 記憶部
121 ファイル記憶部
130 制御部
131 ファイル/コンテナ受信部
132 ファイル処理部
133 コンテナ/ファイル送信部
134 ファイル受信要求受信部
135 ファイル受信要求転送部
140 ファイルアップロード処理部
141 コンテナ化処理部
142 暗号化処理部
150 ファイルダウンロード処理部
151 復号処理部
152 コンテナ解凍処理部
153 ZIP再圧縮処理部
200 ファイル転送サーバ
210 通信部
220 記憶部
221 コンテナ記憶部
230 制御部
231 コンテナ受信部
232 ファイル受信要求受信部
233 コンテナ転送部

Claims (8)

  1. 利用者が利用する利用者端末と、当該利用者端末から送信されたファイルを他の利用者端末に転送するファイル転送サーバとの間にアプリケーションサーバが介在し、当該アプリケーションサーバが、当該利用者端末と当該ファイル転送サーバとの間で送受信されるファイルに対して当該ファイルの転送に必要な複数の処理を段階的に実行するファイル転送システムであって、
    前記アプリケーションサーバは、
    前段の処理の処理結果がバッファに出力され、バッファに出力された当該処理結果が次段の処理に入力されるように前記複数の処理各々を実行する処理手段各々と、
    前記複数の処理を実行する前のファイルとして前記利用者端末もしくは前記ファイル転送サーバから送信されたファイルを、前記処理手段各々の内最も前段の処理を実行する処理手段に入力するファイル入力手段と、
    前記処理手段各々の内最も後段の処理を実行する処理手段から出力された処理結果を、前記ファイル入力手段によって入力されたファイルが前記利用者端末から送信されたものである場合には前記ファイル転送サーバに送信し、前記ファイル入力手段によって入力されたファイルが前記ファイル転送サーバから送信されたものである場合には前記利用者端末に送信するファイル送信手段と、
    を備えたことを特徴とするファイル転送システム。
  2. 前記アプリケーションサーバは、前記複数の処理を実行する前のファイルとして前記利用者端末から送信されたファイルをファイル記憶手段に格納するものであって、
    前記処理手段各々の内最も後段の処理を実行する処理手段から処理結果が出力されると、前記ファイル記憶手段に記憶されている前記ファイルを当該ファイル記憶手段から削除するファイル削除手段をさらに備えたことを特徴とする請求項1に記載のファイル転送システム。
  3. 前記複数の処理各々は、前記利用者端末から送信されたファイルを圧縮する圧縮処理と、圧縮された当該ファイルを暗号化する暗号化処理とであって、
    前記処理手段各々は、前記圧縮処理を実行する処理手段の処理結果がバッファに出力され、バッファに出力された当該処理結果が前記暗号化処理を実行する処理手段に入力されるように処理を実行し、
    前記ファイル入力手段は、前記圧縮処理を実行する処理手段に前記ファイルを入力し、
    前記ファイル送信手段は、前記暗号化処理を実行する処理手段から出力された処理結果をファイル転送サーバに送信することを特徴とする請求項1または2に記載のファイル転送システム。
  4. 前記複数の処理各々は、前記ファイル転送サーバから送信されたファイルを復号する復号処理と、復号された当該ファイルの圧縮を解凍する解凍処理と、解凍された当該ファイルを再圧縮する再圧縮処理とであって、
    前記処理手段各々は、前記復号処理を実行する処理手段の処理結果がバッファに出力され、バッファに出力された当該処理結果が前記解凍処理を実行する処理手段に入力され、当該解凍処理を実行する処理手段の処理結果がバッファに出力され、バッファに出力された当該処理結果が前記再圧縮処理を実行する処理手段に入力されるように処理を実行し、
    前記ファイル入力手段は、前記復号処理を実行する処理手段に前記ファイルを入力し、
    前記ファイル送信手段は、前記再圧縮処理を実行する処理手段から出力された処理結果を利用者端末に送信することを特徴とする請求項1〜3のいずれか一つに記載のファイル転送システム。
  5. 前記アプリケーションサーバは、
    前記ファイル転送サーバに記憶されているファイルを受信することを要求するファイル受信要求を前記利用者端末から受信すると、当該ファイル受信要求を当該ファイル転送サーバに転送するファイル受信要求転送手段をさらに備え、
    前記ファイル転送サーバは、
    前記ファイル受信要求転送手段によって転送されたファイル受信要求を受信すると、当該ファイル受信要求にて指定されるファイルを前記アプリケーションサーバに送信するファイル送信手段を備えたことを特徴とする請求項1〜4のいずれか一つに記載のファイル転送システム。
  6. 利用者が利用する利用者端末と、当該利用者端末から送信されたファイルを他の利用者端末に転送するファイル転送サーバとの間にアプリケーションサーバが介在し、当該アプリケーションサーバが、当該利用者端末と当該ファイル転送サーバとの間で送受信されるファイルに対して当該ファイルの転送に必要な複数の処理を段階的に実行するファイル転送方法であって、
    前記アプリケーションサーバは、
    前段の処理の処理結果がバッファに出力され、バッファに出力された当該処理結果が次段の処理に入力されるように前記複数の処理各々を実行する処理工程各々と、
    前記複数の処理を実行する前のファイルとして前記利用者端末もしくは前記ファイル転送サーバから送信されたファイルを、前記処理工程各々の内最も前段の処理を実行する処理工程に入力するファイル入力工程と、
    前記処理工程各々の内最も後段の処理を実行する処理工程から出力された処理結果を、前記ファイル入力工程によって入力されたファイルが前記利用者端末から送信されたものである場合には前記ファイル転送サーバに送信し、前記ファイル入力工程によって入力されたファイルが前記ファイル転送サーバから送信されたものである場合には前記利用者端末に送信するファイル送信工程と、
    を含んだことを特徴とするファイル転送方法。
  7. 利用者が利用する利用者端末と、当該利用者端末から送信されたファイルを他の利用者端末に転送するファイル転送サーバとの間にアプリケーションサーバが介在し、当該アプリケーションサーバが、当該利用者端末と当該ファイル転送サーバとの間で送受信されるファイルに対して当該ファイルの転送に必要な複数の処理を段階的に実行するファイル転送方法をコンピュータに実行させるファイル転送プログラムであって、
    前段の処理の処理結果がバッファに出力され、バッファに出力された当該処理結果が次段の処理に入力されるように前記複数の処理各々を実行する処理手順各々と、
    前記複数の処理を実行する前のファイルとして前記利用者端末もしくは前記ファイル転送サーバから送信されたファイルを、前記処理手順各々の内最も前段の処理を実行する処理手順に入力するファイル入力手順と、
    前記処理手順各々の内最も後段の処理を実行する処理手順から出力された処理結果を、前記ファイル入力手順によって入力されたファイルが前記利用者端末から送信されたものである場合には前記ファイル転送サーバに送信し、前記ファイル入力手順によって入力されたファイルが前記ファイル転送サーバから送信されたものである場合には前記利用者端末に送信するファイル送信手順と、
    を前記アプリケーションサーバとしてのコンピュータに実行させることを特徴とするファイル転送プログラム。
  8. 利用者が利用する利用者端末と、当該利用者端末から送信されたファイルを他の利用者端末に転送するファイル転送サーバとの間にアプリケーションサーバが介在し、当該アプリケーションサーバが、当該利用者端末と当該ファイル転送サーバとの間で送受信されるファイルに対して当該ファイルの転送に必要な複数の処理を段階的に実行するファイル転送システムにおける当該アプリケーションサーバであって、
    前段の処理の処理結果がバッファに出力され、バッファに出力された当該処理結果が次段の処理に入力されるように前記複数の処理各々を実行する処理手段各々と、
    前記複数の処理を実行する前のファイルとして前記利用者端末もしくは前記ファイル転送サーバから送信されたファイルを、前記処理手段各々の内最も前段の処理を実行する処理手段に入力するファイル入力手段と、
    前記処理手段各々の内最も後段の処理を実行する処理手段から出力された処理結果を、前記ファイル入力手段によって入力されたファイルが前記利用者端末から送信されたものである場合には前記ファイル転送サーバに送信し、前記ファイル入力手段によって入力されたファイルが前記ファイル転送サーバから送信されたものである場合には前記利用者端末に送信するファイル送信手段と、
    を備えたことを特徴とするアプリケーションサーバ。
JP2008030891A 2008-02-12 2008-02-12 ファイル転送システムおよびアプリケーションサーバ Active JP4648415B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008030891A JP4648415B2 (ja) 2008-02-12 2008-02-12 ファイル転送システムおよびアプリケーションサーバ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008030891A JP4648415B2 (ja) 2008-02-12 2008-02-12 ファイル転送システムおよびアプリケーションサーバ

Publications (2)

Publication Number Publication Date
JP2009193160A true JP2009193160A (ja) 2009-08-27
JP4648415B2 JP4648415B2 (ja) 2011-03-09

Family

ID=41075142

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008030891A Active JP4648415B2 (ja) 2008-02-12 2008-02-12 ファイル転送システムおよびアプリケーションサーバ

Country Status (1)

Country Link
JP (1) JP4648415B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011024765A1 (ja) 2009-08-24 2011-03-03 東ソー株式会社 電解二酸化マンガン及びその製造方法並びにその用途
JP2011070318A (ja) * 2009-09-24 2011-04-07 Hitachi Information Systems Ltd バッチ処理実行方法及びバッチ処理実行システム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249890A (ja) * 2006-03-20 2007-09-27 Canon Software Information Systems Inc ゲートウエイ装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249890A (ja) * 2006-03-20 2007-09-27 Canon Software Information Systems Inc ゲートウエイ装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011024765A1 (ja) 2009-08-24 2011-03-03 東ソー株式会社 電解二酸化マンガン及びその製造方法並びにその用途
JP2011070318A (ja) * 2009-09-24 2011-04-07 Hitachi Information Systems Ltd バッチ処理実行方法及びバッチ処理実行システム

Also Published As

Publication number Publication date
JP4648415B2 (ja) 2011-03-09

Similar Documents

Publication Publication Date Title
CN107222484B (zh) 支持多协议输入和输出的流媒体服务器系统
US11356539B2 (en) Dynamic utilization of condensing metadata
US11374995B2 (en) Multimedia file processing
US9531802B2 (en) Data transmission and reception system
US7246177B2 (en) System and method for encoding and decoding data files
RU2365049C2 (ru) Система и способ использования упакованных сжатых буферов для улучшенной передачи данных между клиентом и сервером
KR101037839B1 (ko) 스트림을 위한 메시지 처리 파이프라인을 제공하는 메시지 처리 방법 및 그를 구현하는 컴퓨터 프로그램 제품
JP2008065546A (ja) データ転送システム、データ転送装置、ファイル形式変換装置、およびデータ転送方法
US10404828B2 (en) Streaming apparatus, streaming method, and streaming service system using the streaming apparatus
US20110191812A1 (en) Video Download Mechanism for Transferring Large Data
WO2014015789A1 (zh) 数字电视终端、视频文件播放方法及视频文件播放系统
CN112379949B (zh) 一种数据处理方法、装置、设备及存储介质
CN105208135A (zh) 一种文件传输方法和设备
US20070288556A1 (en) System and Method for Encoding and Decoding Data Files
CN112804592A (zh) 一种基于浏览器的rtsp直播视频转发方法及终端
JP4648415B2 (ja) ファイル転送システムおよびアプリケーションサーバ
US20140149370A1 (en) System for analyzing access path to access target file in image and method thereof
US20050165983A1 (en) System and method for processing data in kernel area by a user command
US8774599B2 (en) Method for transcoding and playing back video files based on grid technology in devices having limited computing power
JP2002297478A (ja) マルチメディアデータ中継システム、マルチメディアデータ中継装置及びマルチメディアデータ中継方法
CN110737635A (zh) 一种数据分块方法
US8719218B2 (en) Server apparatus and method of aquiring contents
JP2021012691A (ja) エンコードとアップロードの並行処理によってメディアファイルの送信時間を短縮することができる方法およびシステム
KR101703963B1 (ko) 캐시 서버를 이용한 멀티미디어 서비스를 제공하는 방법 및 시스템
CN114900485B (zh) 访问网络文件存储的方法、电子设备及系统

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100621

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100831

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101026

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: 20101207

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101209

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4648415

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350