(57)【要約】【課題】ファイル転送を好適に行うことができるファイル転送システム、ファイル転送方法およびプログラムを提供する。【解決手段】ファイル転送システムは、転送元の端末に記憶されたファイルを転送先の端末へ、ネットワークを介して通信可能に接続された転送指示装置の指示に基づいて転送する。転送指示装置は、ユーザにより選択された転送可能なファイルを特定するファイル特定情報を転送元の端末へ送信し、転送元の端末は、送信されたファイル特定情報により特定されるファイルを、転送対象ファイルとして転送先の端末へ転送する。転送指示装置は、第１の演算結果と第２の演算結果とが一致していることを確認する。【選択図】図５
2020149182.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して通信可能に接続された転送指示装置の指示に基づいて、転送元の端末に記憶されたファイルを転送先の端末へ転送するファイル転送システムであって、
前記転送指示装置は、
前記転送元の端末に記憶されている転送可能なファイルを識別するファイル情報を記憶するファイル情報記憶手段と、
前記ファイル情報記憶手段に記憶された前記ファイル情報により識別される前記転送可能なファイルのうち、ユーザにより選択された前記転送可能なファイルを特定するファイル特定情報を前記転送元の端末へ送信する送信手段と、を備え、
前記転送元の端末は、
前記送信手段により送信された前記ファイル特定情報により特定されるファイルを、転送対象ファイルとして前記転送先の端末へ転送する転送対象ファイル転送手段と、
前記転送対象ファイルに基づいて、予め記憶された一方向関数を用いて演算を行った結果を第１の演算結果として前記転送指示装置へ送信する第１の演算結果送信手段と、を備え、
前記転送先の端末は、前記転送対象ファイル転送手段により転送された前記転送対象ファイルに基づいて、予め記憶された前記一方向関数を用いて演算を行った結果を第２の演算結果として前記転送指示装置へ送信する第２の演算結果送信手段を備え、
前記転送指示装置は、前記第１の演算結果送信手段から受信した前記第１の演算結果と前記第２の演算結果送信手段から受信した前記第２の演算結果とが一致していることを確認する確認手段と、
をさらに備えることを特徴とするファイル転送システム。
【請求項２】
前記転送元の端末は、
前記送信手段により送信された前記ファイル特定情報により特定されるファイルが最新であるか否かを判定する判定手段と、
前記判定手段による判定結果に基づいて前記ファイルを更新する更新手段と、
をさらに備えることを特徴とする請求項１に記載のファイル転送システム。
【請求項３】
前記ファイル特定情報には、ユーザが転送を所望する前記転送先の端末を特定する情報が含まれ、
前記転送元の端末は、
前記ファイル特定情報により特定される前記転送先の端末が複数ある場合、予め定められた基準に従って転送パターンを決定する決定手段をさらに備え、
前記送信手段は、前記決定手段が決定した前記転送パターンに従って前記転送対象ファイルを前記転送先の端末へ転送する、
ことを特徴とする請求項１または２に記載のファイル転送システム。
【請求項４】
前記ファイル特定情報には、ユーザが転送を所望する前記転送先の端末を特定する情報と、該端末に記憶された転送可能なファイルを特定する転送先ファイル特定情報と、該端末に記憶された転送可能なファイルの転送スケジュールと、がさらに含まれ、
前記転送元の端末は、前記ファイル特定情報により特定される前記転送先の端末に、前記転送スケジュールに従って前記転送先ファイル特定情報により特定されるファイルの転送を指示する、
ことを特徴とする請求項１〜３のいずれか１項に記載のファイル転送システム。
【請求項５】
ネットワークを介して通信可能に接続された転送指示装置の指示に基づいて、転送元の端末に記憶されたファイルを転送先の端末へ転送するファイル転送方法であって、
前記転送指示装置のファイル情報記憶手段が、前記転送元の端末に記憶されている転送可能なファイルを識別するファイル情報を記憶するファイル情報記憶ステップと、
前記転送指示装置の送信手段が、前記ファイル情報記憶ステップで記憶された前記ファイル情報により識別される前記転送可能なファイルのうち、ユーザにより選択された前記転送可能なファイルを特定するファイル特定情報を前記転送元の端末へ送信する送信ステップと、
前記転送元の端末の転送対象ファイル転送手段が、前記送信ステップで送信された前記ファイル特定情報により特定されるファイルを、転送対象ファイルとして前記転送先の端末へ転送する転送対象ファイル転送ステップと、
前記転送元の端末の第１の演算結果送信手段が、前記転送対象ファイルに基づいて、予め記憶された一方向関数を用いて演算を行った結果を第１の演算結果として前記転送指示装置へ送信する第１の演算結果送信ステップと、
前記転送先の端末の第２の演算結果送信手段が、前記転送対象ファイル転送ステップで転送された前記転送対象ファイルに基づいて、予め記憶された前記一方向関数を用いて演算を行った結果を第２の演算結果として前記転送指示装置へ送信する第２の演算結果送信ステップと、
前記転送指示装置の確認手段が、前記第１の演算結果送信ステップで送信された前記第１の演算結果と前記第２の演算結果送信ステップで送信された前記第２の演算結果とが一致していることを確認する確認ステップと、
を備えることを特徴とするファイル転送方法。
【請求項６】
ネットワークを介して通信可能に接続された転送指示装置を構成するコンピュータの指示に基づいて、転送元のコンピュータに記憶されたファイルを転送先のコンピュータへ転送するファイル転送システムにおけるプログラムであって、
前記転送指示装置を構成するコンピュータを、
前記転送元のコンピュータに記憶されている転送可能なファイルを識別するファイル情報を記憶するファイル情報記憶手段、
前記ファイル情報記憶手段に記憶された前記ファイル情報により識別される前記転送可能なファイルのうち、ユーザにより選択された前記転送可能なファイルを特定するファイル特定情報を前記転送元のコンピュータへ送信する送信手段、として機能させ、
前記転送元のコンピュータを、
前記送信手段により送信された前記ファイル特定情報により特定されるファイルを、転送対象ファイルとして前記転送先のコンピュータへ転送する転送対象ファイル転送手段、
前記転送対象ファイルに基づいて、予め記憶された一方向関数を用いて演算を行った結果を第１の演算結果として前記転送指示装置を構成するコンピュータへ送信する第１の演算結果送信手段、として機能させ、
前記転送先のコンピュータを、前記転送対象ファイル転送手段により転送された前記転送対象ファイルに基づいて、予め記憶された前記一方向関数を用いて演算を行った結果を第２の演算結果として前記転送指示装置を構成するコンピュータへ送信する第２の演算結果送信手段、として機能させ、
前記転送指示装置を構成するコンピュータを、前記第１の演算結果送信手段から受信した前記第１の演算結果と前記第２の演算結果送信手段から受信した前記第２の演算結果とが一致していることを確認する確認手段、
としてさらに機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイル転送システム、ファイル転送方法およびプログラムに関する。
【背景技術】
【０００２】
近年、ファイルのバックアップのためにそのファイルを遠隔地のパソコンなどに転送したり、毎月の売り上げの集計結果を示すファイルを本部へ転送したりなどといったファイル転送について、人的負担を低減することでファイル転送を好適に行うための様々な技術が提案されている。
【０００３】
例えば特許文献１には、ＵＳＢストレージデバイスが接続された時に、ＵＳＢストレージデバイスのファイルを、指定の端末に自動的に転送するファイル転送装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−０８９６７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載のファイル転送装置では、転送元となる端末に対してユーザがＵＳＢストレージデバイスを接続する必要がある。そのため、複数の端末に記憶されたそれぞれのファイルを所定の端末へ転送するといった場合、各端末に対して操作する必要があり、人的負担が大きくなる。したがって、ファイル転送を好適に行うという観点からすると未だ改善の余地があった。
【０００６】
本発明は、上述のような事情に鑑みてなされたものであり、ファイル転送を好適に行うことができるファイル転送システム、ファイル転送方法およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の第１の観点に係るファイル転送システムは、
ネットワークを介して通信可能に接続された転送指示装置の指示に基づいて、転送元の端末に記憶されたファイルを転送先の端末へ転送するファイル転送システムであって、
前記転送指示装置は、
前記転送元の端末に記憶されている転送可能なファイルを識別するファイル情報を記憶するファイル情報記憶手段と、
前記ファイル情報記憶手段に記憶された前記ファイル情報により識別される前記転送可能なファイルのうち、ユーザにより選択された前記転送可能なファイルを特定するファイル特定情報を前記転送元の端末へ送信する送信手段と、を備え、
前記転送元の端末は、
前記送信手段により送信された前記ファイル特定情報により特定されるファイルを、転送対象ファイルとして前記転送先の端末へ転送する転送対象ファイル転送手段と、
前記転送対象ファイルに基づいて、予め記憶された一方向関数を用いて演算を行った結果を第１の演算結果として前記転送指示装置へ送信する第１の演算結果送信手段と、を備え、
前記転送先の端末は、前記転送対象ファイル転送手段により転送された前記転送対象ファイルに基づいて、予め記憶された前記一方向関数を用いて演算を行った結果を第２の演算結果として前記転送指示装置へ送信する第２の演算結果送信手段を備え、
前記転送指示装置は、前記第１の演算結果送信手段から受信した前記第１の演算結果と前記第２の演算結果送信手段から受信した前記第２の演算結果とが一致していることを確認する確認手段と、
をさらに備えることを特徴とする。
【０００８】
前記転送元の端末は、
前記送信手段により送信された前記ファイル特定情報により特定されるファイルが最新であるか否かを判定する判定手段と、
前記判定手段による判定結果に基づいて前記ファイルを更新する更新手段と、
をさらに備えるようにしてもよい。
【０００９】
前記ファイル特定情報には、ユーザが転送を所望する前記転送先の端末を特定する情報が含まれ、
前記転送元の端末は、
前記ファイル特定情報により特定される前記転送先の端末が複数ある場合、予め定められた基準に従って転送パターンを決定する決定手段をさらに備え、
前記送信手段は、前記決定手段が決定した前記転送パターンに従って前記転送対象ファイルを前記転送先の端末へ転送する、
ようにしてもよい。
【００１０】
前記ファイル特定情報には、ユーザが転送を所望する前記転送先の端末を特定する情報と、該端末に記憶された転送可能なファイルを特定する転送先ファイル特定情報と、該端末に記憶された転送可能なファイルの転送スケジュールと、がさらに含まれ、
前記転送元の端末は、前記ファイル特定情報により特定される前記転送先の端末に、前記転送スケジュールに従って前記転送先ファイル特定情報により特定されるファイルの転送を指示する、
ようにしてもよい。
【００１１】
上記目的を達成するため、本発明の第２の観点に係るファイル転送方法は、
ネットワークを介して通信可能に接続された転送指示装置の指示に基づいて、転送元の端末に記憶されたファイルを転送先の端末へ転送するファイル転送方法であって、
前記転送指示装置のファイル情報記憶手段が、前記転送元の端末に記憶されている転送可能なファイルを識別するファイル情報を記憶するファイル情報記憶ステップと、
前記転送指示装置の送信手段が、前記ファイル情報記憶ステップで記憶された前記ファイル情報により識別される前記転送可能なファイルのうち、ユーザにより選択された前記転送可能なファイルを特定するファイル特定情報を前記転送元の端末へ送信する送信ステップと、
前記転送元の端末の転送対象ファイル転送手段が、前記送信ステップで送信された前記ファイル特定情報により特定されるファイルを、転送対象ファイルとして前記転送先の端末へ転送する転送対象ファイル転送ステップと、
前記転送元の端末の第１の演算結果送信手段が、前記転送対象ファイルに基づいて、予め記憶された一方向関数を用いて演算を行った結果を第１の演算結果として前記転送指示装置へ送信する第１の演算結果送信ステップと、
前記転送先の端末の第２の演算結果送信手段が、前記転送対象ファイル転送ステップで転送された前記転送対象ファイルに基づいて、予め記憶された前記一方向関数を用いて演算を行った結果を第２の演算結果として前記転送指示装置へ送信する第２の演算結果送信ステップと、
前記転送指示装置の確認手段が、前記第１の演算結果送信ステップで送信された前記第１の演算結果と前記第２の演算結果送信ステップで送信された前記第２の演算結果とが一致していることを確認する確認ステップと、
を備えることを特徴とする。
【００１２】
上記目的を達成するため、本発明の第３の観点に係るプログラムは、
ネットワークを介して通信可能に接続された転送指示装置を構成するコンピュータの指示に基づいて、転送元のコンピュータに記憶されたファイルを転送先のコンピュータへ転送するファイル転送システムにおけるプログラムであって、
前記転送指示装置を構成するコンピュータを、
前記転送元のコンピュータに記憶されている転送可能なファイルを識別するファイル情報を記憶するファイル情報記憶手段、
前記ファイル情報記憶手段に記憶された前記ファイル情報により識別される前記転送可能なファイルのうち、ユーザにより選択された前記転送可能なファイルを特定するファイル特定情報を前記転送元のコンピュータへ送信する送信手段、として機能させ、
前記転送元のコンピュータを、
前記送信手段により送信された前記ファイル特定情報により特定されるファイルを、転送対象ファイルとして前記転送先のコンピュータへ転送する転送対象ファイル転送手段、
前記転送対象ファイルに基づいて、予め記憶された一方向関数を用いて演算を行った結果を第１の演算結果として前記転送指示装置を構成するコンピュータへ送信する第１の演算結果送信手段、として機能させ、
前記転送先のコンピュータを、前記転送対象ファイル転送手段により転送された前記転送対象ファイルに基づいて、予め記憶された前記一方向関数を用いて演算を行った結果を第２の演算結果として前記転送指示装置を構成するコンピュータへ送信する第２の演算結果送信手段、として機能させ、
前記転送指示装置を構成するコンピュータを、前記第１の演算結果送信手段から受信した前記第１の演算結果と前記第２の演算結果送信手段から受信した前記第２の演算結果とが一致していることを確認する確認手段、
としてさらに機能させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ファイル転送を好適に行うことができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係るファイル転送システムの一例を示すブロック図である。
【図２】ファイル転送システムを構成する管理装置の一例を示すブロック図である。
【図３】転送可能ファイル一覧の一例を示す図である。
【図４】ファイル転送システムを構成する転送装置の一例を示すブロック図である。
【図５】ファイル転送システムを構成する管理装置の一例を示すブロック図である。
【図６】指示生成処理の一例を示すフローチャートである。
【図７】転送元となる端末の選選択画面の一例を示す図である。
【図８】要求生成処理の一例を示すフローチャートである。
【図９】転送対象ファイル等の選択画面の一例を示す図である。
【図１０】転送ファイル処理の一例を示すフローチャートである。
【図１１】転送ファイル後処理の一例を示すフローチャートである。
【図１２】複数の転送先に転送する場合における転送パターンの説明図である。
【発明を実施するための形態】
【００１５】
ファイル転送システム１は、図１に示すように、管理装置１００Ａと、第１の端末１００Ｂと、第２の端末１００Ｃのそれぞれがネットワーク５１０を介して通信可能に接続されている。
【００１６】
管理装置１００Ａは、当該ファイル転送システム１のユーザの操作により第１の端末１００Ｂに記憶されたファイルを、第２の端末１００Ｃへ転送させるファイル転送指示装置として機能する。第１の端末１００Ｂは、転送指示装置として機能する管理装置１００Ａからの指示に応じて、指定されたファイルを第２の端末１００Ｃへ転送するファイル転送装置として機能する。なお、管理装置１００Ａは、当該ファイル転送システム１のユーザの操作により第２の端末１００Ｃに記憶されたファイルを、第１の端末１００Ｂへ転送させるファイル転送指示装置としても機能する。また、第２の端末１００Ｃは、転送指示装置として機能する管理装置１００Ａからの指示に応じて、指定されたファイルを第１の端末１００Ｂへ転送するファイル転送装置としても機能する。
【００１７】
なお、管理装置１００Ａ、第１の端末１００Ｂ、および第２の端末１００Ｃのそれぞれが、転送指示装置および転送装置として機能してもよいが、この実施の形態では、理解を容易にするため、管理装置１００Ａがファイル転送指示装置（単に転送指示装置とも言う）として機能するものとし、第１の端末１００Ｂおよび第２の端末１００Ｃがファイル転送装置（単に転送装置とも言う）として機能するものとする。そして、この実施の形態では、転送指示装置である管理装置１００Ａの指示に基づいて、第１の端末１００Ｂから第２の端末１００Ｃへ、ユーザの所望するファイルを転送する場合について、以下説明する。
【００１８】
管理装置１００Ａ、第１の端末１００Ｂ、および第２の端末１００Ｃは、携帯電話やスマートフォン、タブレットやＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の情報端末であり、Ｐ２Ｐ（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）等の分散型のネットワーク５１０を構築している。なお、ファイル転送システム１は、Ｐ２Ｐ型のシステムに限られず、例えばクラウドコンピューティング型であってもよい。
【００１９】
次に、図２を参照し、この実施の形態において転送指示装置として機能する管理装置１００Ａの構成について説明する。なお、図示する例では、管理装置１００Ａを例としているが、第１の端末１００Ｂおよび第２の端末１００Ｃが転送指示装置として機能する場合には、第１の端末１００Ｂおよび第２の端末１００Ｃについても、管理装置１００Ａと同様の構成を備えることとなる。
【００２０】
図２に示すように、管理装置１００Ａは、記憶部１１０と、制御部１２０と、入出力部１３０と、通信部１４０と、これらを相互に接続するシステムバス（図示省略）と、を備えている。
【００２１】
記憶部１１０は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ)やＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を備える。ＲＯＭは制御部１２０のＣＰＵが実行するプログラム及び、プログラムを実行する上で予め必要なデータを記憶する。具体的に、この実施の形態では、当該管理装置１００Ａを、転送指示装置として機能させるためのプログラムが予めインストールされている（図示省略）。ＲＡＭは、プログラム実行中に作成されたり変更されたりするデータを記憶する。記憶部１１０は、制御部１２０が実行するプログラムが用いる主要な情報として、転送可能ファイル一覧１１１、転送時ハッシュ値１１２、および到達時ハッシュ値１１３、を記憶する。
【００２２】
転送可能ファイル一覧１１１は、図３に示すように、第１の端末１００Ｂおよび第２の端末１００Ｃに記憶されている転送可能なファイルの一覧を、当該端末およびファイル格納場所であるファイルパス毎に示す一覧表である。当該転送可能ファイル一覧１１１は、予め記憶されており、後述する要求生成部１２２の機能にて要求情報を生成する際（後述する要求生成処理）に参照される。なお、上述したように、この実施の形態では、理解を容易にするため、転送指示装置である管理装置１００Ａの指示に基づいて、第１の端末１００Ｂから第２の端末１００Ｃへ、ユーザの所望するファイルを転送する場合について説明しているが、第２の端末１００Ｃから第１の端末１００Ｂへ、ユーザの所望するファイルを転送する場合もあることから、図３に示す例では、第２の端末１００Ｃに記憶された転送可能ファイルについても図示している。なお、この実施の形態では、ファイルパスを選択した後に、当該ファイルパスに格納されているファイルを選択することでユーザの所望するファイルを転送する例を示しているが、ファイルパスのみを選択することも可能であり、その場合には当該ファイルパスに格納されている全てのファイルが転送されればよい。
【００２３】
図３（Ａ−１）は、第１の端末１００ＢのファイルパスがＣ：￥ＸＸＸＸ￥Ｄｏｃｕｍｅｎｔｓ￥フォルダ００１に格納されているファイルの一覧を示しており、ファイル１〜ファイルｎ（ｎは整数）のｎ個のファイルが転送可能となっている例を示している。図３（Ａ−２）は、第１の端末１００ＢのファイルパスがＣ：￥ＸＸＸＸ￥Ｄｏｃｕｍｅｎｔｓ￥フォルダ００２に格納されているファイルの一覧を示しており、ファイル１〜ファイルｍ（ｍは整数）のｍ個のファイルが転送可能となっている例を示している。図３（Ｂ−１）は、第２の端末１００ＣのファイルパスがＣ：￥ＸＸＸＸ￥Ｄｏｃｕｍｅｎｔｓ￥フォルダ００１に格納されているファイルの一覧を示しており、ファイル１〜ファイルｘ（ｘは整数）のｘ個のファイルが転送可能となっている例を示している。図３（Ｂ−２）は、第２の端末１００ＣのファイルパスがＣ：￥ＸＸＸＸ￥Ｄｏｃｕｍｅｎｔｓ￥フォルダ００２に格納されているファイルの一覧を示しており、ファイル１〜ファイルｙ（ｙは整数）のｙ個のファイルが転送可能となっている例を示している。図示する例では、第１の端末１００Ｂおよび第２の端末１００Ｃそれぞれにおいて、転送可能なファイルパスが２つずつ存在する例を示しているが、より多くのファイルパスがあってもよく、また、それぞれ異なる数であってもよい。
【００２４】
図２に戻り、転送時ハッシュ値１１２は、第１の端末１００Ｂが、指定されたファイル（転送対象ファイル）を第２の端末１００Ｃへ転送した際に、第１の端末１００Ｂから送信される、当該転送ファイルに基づいて算出されたハッシュ値である。当該転送時ハッシュ値１１２は、第２の端末１００Ｃへ転送対象ファイルを転送した際に、第１の端末１００Ｂから受信し、記憶部１１０へ格納される。
【００２５】
到達時ハッシュ値１１３は、転送対象ファイルが第２の端末１００Ｃへ転送された後に、第２の端末１００Ｃから送信される、当該転送ファイルに基づいて算出されたハッシュ値である。当該到達時ハッシュ値１１３は、第２の端末１００Ｃへ転送対象ファイルが転送された後、管理装置１００Ａからの確認要求が第２の端末１００Ｃへ送信されたことに応じて、第２の端末１００Ｃから受信し、記憶部１１０へ格納される。
【００２６】
なお、転送時ハッシュ値１１２および到達時ハッシュ値１１３は、後述する改ざん確認部１２４の機能にて転送ファイルが改ざんされていないことを確認する際に参照される。
【００２７】
制御部１２０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等から構成される。制御部１２０は、記憶部１１０に記憶されたプログラムに従って動作し、当該プログラムに従った処理を実行する。制御部１２０は、記憶部１１０に記憶されたプログラムにより提供される主要な機能部として、指示生成部１２１と、要求生成部１２２と、確認要求生成部１２３と、改ざん確認部１２４と、を備える。
【００２８】
指示生成部１２１は、当該ファイル転送システム１のユーザによる入出力部１３０に対する操作に基づいて指示情報を生成し、転送を要求する端末である第１の端末１００Ｂへ、当該生成した指示情報を送信する機能部である。指示情報は、詳しくは後述するが、ユーザによる入出力部１３０に対する操作として、転送を所望する端末（この実施の形態では第１の端末１００Ｂまたは第２の端末１００Ｃ）が選択されることで生成される情報であり、当該端末に対して転送可能な状態であるかを確認する情報である。当該指示情報には、ユーザにより選択された、転送を所望する端末の宛先と、状態応答要求とが少なくとも含まれる。なお、状態応答要求は、転送可能な状態であるか否かの情報を要求するリクエスト情報であればよい。
【００２９】
要求生成部１２２は、当該ファイル転送システム１のユーザによる入出力部１３０に対する操作に基づいて要求情報を生成し、転送を要求する端末である第１の端末１００Ｂへ、当該生成した要求情報を送信する機能部である。要求情報は、詳しくは後述するが、ユーザによる入出力部１３０に対する操作として、転送を所望するファイルのファイルパスとファイル名（またはファイル番号でもよい）と転送先とが選択されることで生成される情報であり、当該端末に対して転送対象ファイルを指定の転送先へ転送することを要求する情報である。当該要求情報には、ユーザにより選択された、転送を所望するファイルのファイルパスと、ファイル番号またはファイル名と、転送先の宛先とが少なくとも含まれる。なお、要求情報には、転送先である第２の端末１００Ｃのファイルパス（転送先のファイルパス）が含まれてもよい。当該転送先のファイルパスについても、ユーザによる入出力部１３０に対する操作により選択されればよい。これによれば、当該要求情報は、転送元である第１の端末１００Ｂにおける指定されたファイルパスのファイルを、転送先である第２の端末１００Ｃの指定されたファイルパスへ格納することを要求する情報となる。なお、転送先は複数選択可能であるが、複数の転送先が選択された場合については後述するものとし、この実施の形態では、転送先として第２の端末１００Ｃが１つ選択されたものとする。
【００３０】
確認要求生成部１２３は、第２の端末１００Ｃへ転送対象ファイルが転送された後、当該第２の端末１００Ｃに対し到達時ハッシュ値１１３の送信を要求する確認要求を生成し、当該第２の端末１００Ｃへ、当該生成した確認要求を送信する機能部である。確認要求は、第１の端末１００Ｂから転送時ハッシュ値１１２を受信してから所定期間経過後に生成され、到達時ハッシュ値１１３の送信を要求するリクエスト情報が少なくとも含まれる。なお、所定期間は、予め定められた一律な期間であってもよいし、転送対象ファイルのファイル容量が大きい程長い期間であるなど、転送対象ファイル毎に算出される期間であってもよい。
【００３１】
改ざん確認部１２４は、転送対象ファイルが転送前後で改ざんされていないことを確認するための機能部である。具体的に、改ざん確認部１２４は、転送時ハッシュ値１１２と到達時ハッシュ値１１３とが一致するか否かにより、転送対象ファイルが転送前後で改ざんされていないことを確認する。
【００３２】
入出力部１３０は、キーボード、マウス、カメラ、マイク、液晶ディスプレイ、有機ＥＬ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ等から構成され、データの入出力を行うための装置である。
【００３３】
通信部１４０は、第１の端末１００Ｂおよび第２の端末１００Ｃと、ネットワーク５１０を介して通信を行うためのデバイスである。
【００３４】
以上が、転送指示装置として機能する管理装置１００Ａの構成である。なお、上述したように、第１の端末１００Ｂおよび第２の端末１００Ｃが転送指示装置として機能する場合には、当該管理装置１００Ａと同様の構成を備えることとなる。
【００３５】
次に、図４を参照し、この実施の形態において転送装置として機能する第１の端末１００Ｂの構成について説明する。なお、図示する例では、第１の端末１００Ｂを例と示しているが、第２の端末１００Ｃが転送装置として機能する場合や、管理装置１００Ａに転送装置としての機能を持たせる場合には、当該第２の端末１００Ｃおよび管理装置１００Ａについても同様の構成を備えることとなる。また、上述したように、この実施の形態では、転送指示装置である管理装置１００Ａの指示に基づいて、第１の端末１００Ｂから第２の端末１００Ｃへ、ユーザの所望するファイルを転送する場合を例としており、転送元が第１の端末１００Ｂで、転送先が第２の端末１００Ｃである例を示しているが、転送元と転送先とが逆の場合もあり得るため、図４に示す第１の端末１００Ｂは、転送元の端末としての構成、および転送先の端末としての構成の両方を備えている。
【００３６】
図４に示すように、第１の端末１００Ｂは、記憶部２１０と、制御部２２０と、入出力部２３０と、通信部２４０と、これらを相互に接続するシステムバス（図示省略）と、を備えている。
【００３７】
記憶部２１０は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ)やＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を備える。ＲＯＭは制御部２２０のＣＰＵが実行するプログラム及び、プログラムを実行する上で予め必要なデータを記憶する。具体的に、この実施の形態では、当該第１の端末１００Ｂを、転送装置として機能させるためのプログラムが予めインストールされている（図示省略）。ＲＡＭは、プログラム実行中に作成されたり変更されたりするデータを記憶する。記憶部２１０は、制御部２２０が実行するプログラムが用いる主要な情報として、ハッシュ関数２１１、転送用ファイル２１２、暗号化キー２１３、および復号化キー２１４を記憶する。
【００３８】
ハッシュ関数２１１は、転送対象ファイルに対するハッシュ値を算出する関数であり、予め記憶部２１０に記憶されている。なお、当該ハッシュ関数２１１は、転送元の端末および転送先の端末の両方の記憶部に同一のものが記憶されている。
【００３９】
転送用ファイル２１２は、転送可能なファイルであり、図３の転送可能ファイル一覧１１１により示されるファイルパスに記憶された、当該図示されるファイル番号およびファイル名に対応するファイルである。
【００４０】
暗号化キー２１３は、転送対象ファイルを暗号化するための情報である。暗号化キー２１３は、予め記憶部２１０に記憶されていればよい。復号化キー２１４は、暗号化された転送対象ファイルを復号化するための情報である。復号化キー２１４は、予め記憶部２１０に記憶されていればよい。なお、暗号化キー２１３および復号化キー２１４は、予め管理装置１００Ａにて生成され、第１の端末１００Ｂおよび第２の端末１００Ｃに配信されていればよい。また、当該暗号化キー２１３および復号化キー２１４は、例えば、共通鍵暗号方式における共通鍵に対応するものであってもよいし、公開鍵暗号方式における秘密鍵と公開鍵に対応するものであってもよい。
【００４１】
この実施の形態では、暗号化キー２１３が公開鍵であり、復号化キー２１４が秘密鍵である公開鍵暗号方式にて暗号化が行われるものとする。転送元が第１の端末１００Ｂで、転送先が第２の端末１００Ｃである場合、公開鍵に対応する暗号化キー２１３は、管理装置１００Ａにて事前に生成され、送信元である第１の端末１００Ｂに配信されて記憶部２１０へ記憶される。秘密鍵である復号化キー２１４は、管理装置１００Ａにて生成され、送信先である第２の端末１００Ｃに配信されて記憶部２１０へ記憶される。なお、図４に示す例では、転送元と転送先とが逆の場合もあり得るため、記憶部２１０には公開鍵に対応する暗号化キー２１３と秘密鍵である復号化キー２１４との両方が第１の端末１００Ｂに記憶されている例を示している。また、暗号化キー２１３および復号化キー２１４は、時間経過とともに更新されるよう、管理装置１００Ａにて再配信され、異なる内容のキーが上書きされるようにしてもよい。また、暗号化キー２１３および復号化キー２１４の管理装置１００Ａからの配信は、管理装置１００Ａ、第１の端末１００Ｂおよび第１の端末１００Ｂで予め記憶されている共通鍵にて暗号化されて配信されてもよい。これによれば、セキュリティを強化することができる。
【００４２】
上述したように、転送元が第１の端末１００Ｂで、転送先が第２の端末１００Ｃである例を示しているが、転送元と転送先とが逆の場合もあり得るため、図４に示す第１の端末１００Ｂは、転送元の端末としての構成、および転送先の端末としての構成の両方を備えているが、当該第１の端末１００Ｂが転送元としてのみ機能し（転送装置として機能し）、転送先とならない場合、すなわち第１の端末１００Ｂと第２の端末１００Ｃとで転送元と転送先とが逆とはならない場合、第１の端末１００Ｂの記憶部２１０には復号化キー２１４が記憶されないものとなる。
【００４３】
制御部２２０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等から構成される。制御部２２０は、記憶部２１０に記憶されたプログラムに従って動作し、当該プログラムに従った処理を実行する。制御部２２０は、記憶部２１０に記憶されたプログラムにより提供される主要な機能部として、転送ファイル処理部２２１と、ハッシュ値取得部２２２と、暗号化処理部２２３と、復号化処理部２２４と、を備える。
【００４４】
転送ファイル処理部２２１は、管理装置１００Ａから要求情報を受信したことに基づいて、当該受信した要求情報にて指定されたファイルパスのファイルを、転送対象ファイルとして、当該要求情報にて指定された第２の端末１００Ｃへ転送する機能部である。また、詳しくは後述するが、転送ファイル処理部２２１は、当該受信情報にて指定されたファイルパスに格納されているファイルが、最新のバージョンであるか否かを判定し、最新バージョンでない場合には、最新バージョンとする機能部でもある。さらに、転送ファイル処理部２２１は、詳しくは後述するが、転送先となる端末が複数存在する場合に、１つの端末による処理負担を軽減させるための転送パターンを決定する機能部でもある。
【００４５】
ハッシュ値取得部２２２は、受信した要求情報にて指定されたファイルパスのファイル（転送対象ファイル）に対応するハッシュ値（この場合には転送時ハッシュ値となる）を、記憶部２１０に記憶されているハッシュ関数２１１を用いて算出する機能部である。また、ハッシュ値取得部２２２は、当該第１の端末１００Ｂが送信先となる場合に、後述する復号化処理部２２４により復号化された転送対象ファイルに対応するハッシュ値（この場合には到達時ハッシュ値となる）を、記憶部２１０に記憶されているハッシュ関数２１１を用いて算出する機能部である。
【００４６】
暗号化処理部２２３は、記憶部２１０に記憶されている暗号化キー２１３を用いて、転送対象ファイルを暗号化する機能部である。当該暗号化処理部２２３は、転送装置として機能する端末（転送元の端末）が備える機能部である。
【００４７】
復号化処理部２２４は、当該第１の端末１００Ｂが送信先となる場合に、記憶部２１０に記憶されている復号化キー２１４を用いて、第２の端末１００Ｃから暗号化して送信された転送対象ファイルを復号化する機能部である。当該復号化処理部２２４は、転送先の端末が備える機能部である。
【００４８】
入出力部１３０は、キーボード、マウス、カメラ、マイク、液晶ディスプレイ、有機ＥＬ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ等から構成され、データの入出力を行うための装置である。
【００４９】
通信部１４０は、管理装置１００Ａおよび第２の端末１００Ｃと、ネットワーク５１０を介して通信を行うためのデバイスである。
【００５０】
以上が、転送装置として機能する第１の端末１００Ｂの構成である。なお、上述したように、第２の端末１００Ｃが転送装置として機能する場合や、管理装置１００Ａに転送装置としての機能を持たせる場合には、当該第２の端末１００Ｃおよび管理装置１００Ａについても同様の構成を備えることとなる。また、この実施の形態における第１の端末１００Ｂは、転送元の端末としての構成、および転送先の端末としての構成の両方を備えている例を示したが、転送元としてのみ機能する場合にはこの限りではなく、復号化処理部２２４や復号化キー２１４を備えていなくてよい。
【００５１】
続いてファイル転送システム１の動作について、図５〜図１１を参照して説明する。上述したように、この実施の形態では、転送指示装置である管理装置１００Ａの指示に基づいて、第１の端末１００Ｂから第２の端末１００Ｃへ、ユーザの所望するファイルを転送する場合における動作について説明する。
【００５２】
まず、図５に示すように、管理装置１００Ａは、ユーザによる入出力部１３０に対する操作に基づいて、指示生成部１２１の機能により、指示生成処理を実行し、指示情報を生成して第１の端末１００Ｂへ送信する。
【００５３】
図６は、図５に示す指示生成処理の一例を示すフローチャートである。図６に示す指示生成処理において、制御部１２０は、ユーザによる入出力部１３０に対する操作により、転送元となる端末が選択されたか否か、すなわち、転送元が選択されたか否かを判定する（ステップＳ１０１）。転送元が選択されない場合（ステップＳ１０１；Ｎｏ）、制御部１２０は、そのままステップＳ１０１の処理を繰り返し実行する。
【００５４】
一方、転送元が選択された場合（ステップＳ１０１；Ｙｅｓ）、制御部１２０は、選択が完了したか否かを判定する（ステップＳ１０２）。選択が完了していない場合（ステップＳ１０２；Ｎｏ）、制御部１２０は、ステップＳ１０１の処理に戻り、選択が完了するまでステップＳ１０１およびステップＳ１０２の処理を繰り返し実行する。なお、ステップＳ１０１の処理では、図７に示すように、ユーザによる入出力部１３０に対する操作により転送元となる端末が選択され、図示する「選択完了ボタン」を押下可能な状態となった場合に、選択されたと判定すればよい。また、ステップＳ１０２の処理では、図７に示す「選択完了ボタン」が押下されたことにより選択が完了したと判定すればよい。なお、ステップＳ１０２にて選択が完了していないと判定した場合には、そのまま「選択完了ボタン」が押下されるまで待機してもよい。また、図７に示す例では、第１の端末と第２の端末とが選択可能に表示され、第１の端末が選択された場合の例を示している。
【００５５】
図６のステップＳ１０２にて選択が完了した場合（ステップＳ１０２；Ｙｅｓ）、すなわち図７に示す「選択完了ボタン」が押下された場合、制御部１２０は、ステップＳ１０１で選択された端末（第１の端末１００Ｂ）を宛先とする指示情報を生成する（ステップＳ１０３）。具体的に、ステップＳ１０３の処理では、ステップＳ１０１で選択された端末の宛先（第１の端末１００Ｂの宛先）と、転送可能な状態であるか否かの情報を要求するリクエスト情報（状態応答要求）とを含む指示情報を生成する。
【００５６】
ステップＳ１０３の処理を実行した後、制御部１２０は、ステップＳ１０３で生成した指示情報を、当該指示情報に含まれる宛先の端末（第１の端末１００Ｂ）へ送信し（ステップＳ１０４）、指示生成処理を終了する。なお、指示情報を生成した直後に送信するのではなく、生成した指示情報を一旦記憶しておき、別のタイミングで送信してもよい。
【００５７】
図５に戻り、管理装置１００Ａにて指示生成処理が実行されると、当該管理装置１００Ａから指示情報が第１の端末１００Ｂへ送信される。第１の端末１００Ｂでは、図示するように、管理装置１００Ａから指示情報を受信したことに基づいて、当該指示情報に含まれる状態応答要求に応じて、転送可能な状態であるか否かの情報（状態応答）を、管理装置１００Ａへ送信する。なお、例えば、第１の端末１００Ｂにて指示情報を受信した際に、転送中であるなど、転送不可能な状態である場合には、転送可能な状態となるまでの期間を管理装置１００Ａに対して送信し、管理装置１００Ａの側では、当該期間の経過後に後述する要求生成処理を実行してもよい。
【００５８】
管理装置１００Ａは、第１の端末１００Ｂから状態応答を受信すると、当該状態応答が転送可能な状態であることを示す場合、図９に示す選択画面を入出力部１３０に表示する。そして、ユーザによる入出力部１３０に対する操作に基づいて、要求生成部１２２の機能により、要求生成処理を実行する。なお、当該状態応答が、転送不可能であることを示す場合には、エラー発生と判定し、再度指示生成処理からやり直すことを促し、その後の処理を中断すればよい。
【００５９】
図８は、図５に示す要求生成処理の一例を示すフローチャートである。図６に示す指示生成処理において、制御部１２０は、ユーザによる入出力部１３０に対する操作により、転送元の端末のファイルパスおよび転送する対象のファイル名が選択されたか否かを判定する（ステップＳ２０１）。
【００６０】
なお、この実施の形態では、図９に示すように、転送元となる端末（第１の端末１００Ｂ）のファイルパスと、転送の対象となるファイル名（ファイル番号も含む）と、転送先となる端末（この例では第２の端末１００Ｃのみであるが、複数あってもよい）とが、ユーザによる操作により選択可能（複数選択可能である）となっており、ファイルパスが選択されることにより、当該ファイルパスに格納されているファイルが選択可能となっている。そのため、ファイルパスが選択されずにファイル名のみ選択されるという事象は生じないものとなっている。図９に示す例では、選択可能なファイルパスとして、「フォルダ００１」と「フォルダ００２」が選択可能となっており、「フォルダ００１」に格納されたファイルとして「ファイル１」〜「ファイルｎ」のｎ個のファイルが選択可能な例を示している。これらは、図３の転送可能ファイル一覧１１１により示されるファイルパスとファイル番号およびファイル名に対応するものとなっている。また、図９に示す例における転送先の端末としては、第２の端末１００Ｃが選択可能な例を示している。なお、図示する例では、ファイルパスを選択した後に、当該ファイルパスに格納されているファイルが選択可能な例を示しているが、ファイルパスのみを選択することも可能であり、その場合には当該ファイルパスに格納されている全てのファイルが選択されればよい。
【００６１】
図８のステップＳ２０１では、図９に示すように、ユーザによる入出力部１３０に対する操作により、転送元のファイルパスとファイル名と転送先とが選択され、図示する「選択完了ボタン」を押下可能な状態となった場合に、選択されたと判定すればよい。また、図８のステップＳ２０１では、さらに、転送先のファイルパスについても選択可能としてもよい。この場合、ステップＳ２０１にて、転送元のファイルパス、転送の対象のファイル名、および転送先の端末とそのファイルパスが選択されたか否かを判定すればよい。転送先のファイルパスについては、図９に示す転送元のファイルパスと同様に、転送先の端末が選択されることにより、さらに選択可能となればよい。
【００６２】
ステップＳ２０１にてファイルパスが選択されていない場合、またはファイルパスが選択されたものの、ファイル名（ファイル番号）が選択されていない場合、または転送先が選択されていない場合（ステップＳ２０１；Ｎｏ）、制御部１２０は、そのままステップＳ２０１の処理を繰り返し実行する。
【００６３】
一方、ファイルパスおよびファイル名が選択された場合（ステップＳ２０１；Ｙｅｓ）、選択が完了したか否かを判定する（ステップＳ２０２）。選択が完了していない場合（ステップＳ２０２；Ｎｏ）、制御部１０２は、ステップＳ２０１の処理に戻り、選択が完了するまでステップＳ２０１およびステップＳ２０２の処理を繰り返し実行する。ステップＳ２０２の処理では、図９に示す「選択完了ボタン」が押下されたことにより選択が完了したと判定すればよい。なお、ステップＳ２０２にて選択が完了していないと判定した場合には、そのまま「選択完了ボタン」が押下されるまで待機してもよい。
【００６４】
図８のステップＳ２０２にて選択が完了した場合（ステップＳ２０２；Ｙｅｓ）、すなわち図９に示す「選択完了ボタン」が押下された場合、制御部１２０は、ステップＳ２０１で選択されたファイルパスとファイル名とに基づいて要求情報を生成する（ステップＳ２０３）。具体的に、ステップＳ２０３の処理では、ステップＳ２０１で選択されたファイルパスに格納されており、当該処理にて選択されたファイルを転送対象ファイルとして、当該ステップＳ２０１で選択された転送先である第２の端末１００Ｃへ転送することを要求する要求情報を生成する。なお、上述したように、当該要求情報には、転送先である第２の端末１００Ｃのファイルパスが含まれるようにしてもよい。
【００６５】
ステップＳ２０３の処理を実行した後、制御部１２０は、ステップＳ２０３で生成した要求情報を、指示情報を送信した端末である第１の端末１００Ｂへ送信し（ステップＳ２０４）、要求生成処理を終了する。
【００６６】
図５に戻り、管理装置１００Ａにて要求生成処理が実行されると、当該管理装置１００Ａから要求情報が第１の端末１００Ｂへ送信される。第１の端末１００Ｂでは、図示するように、管理装置１００Ａから要求情報を受信したことに基づいて、転送ファイル処理部２２１、ハッシュ値取得部２２２、および暗号化処理部２２３の機能により、当該要求情報により指定されたファイルパスのファイルを、指定された転送先へと転送する転送ファイル処理を実行する。
【００６７】
図１０は、図５に示す転送ファイル処理の一例を示すフローチャートである。図１０に示す転送ファイル処理において、制御部２２０は、転送ファイル処理部２２１の機能により、受信した要求情報により指定されたファイルを、記憶部２１０の転送用ファイル２１２から取得する（ステップＳ３０１）。
【００６８】
ステップＳ３０１の処理により転送用ファイル２１２を取得した後、制御部２２０は、転送ファイル処理部２２１の機能により、当該取得した転送用ファイル２１２が最新バージョンであるか否か（最新であるか否か）を判定する（ステップＳ３０２）。ステップＳ３０２では、例えば、ステップＳ３０１で取得したファイル名のファイルが他のファイルパスに存在するか否かを判定し、存在した場合に、そのタイムスタンプが、ステップＳ３０１で取得したファイルのタイムスタンプと比較して古いか否かを判定すればよい。そして、他のファイルパスに存在するファイルのタイムスタンプが古い場合には、ステップＳ３０１で取得した転送用ファイル２１２が最新バージョンであると判定し、新しい場合には、ステップＳ３０１で取得した転送用ファイル２１２が最新バージョンでないと判定すればよい。なお、ステップＳ３０１で取得した転送用ファイル２１２と同じファイル名のファイルが他のファイルパスに存在しない場合には、当該取得した転送用ファイル２１２が最新バージョンであると判定すればよい。
【００６９】
ステップＳ３０２の処理において、取得したファイルが最新バージョンではないと判定した場合（ステップＳ３０２；Ｎｏ）、制御部２２０は、転送ファイル処理部２２１の機能により、ステップＳ３０１で取得した転送用ファイル２１２を、最新バージョンのファイルで（最新版を）上書きする（ステップＳ３０３）。具体的に、他のファイルパスに存在する、ステップＳ３０１で取得したファイル名のファイルを上書きする。なお、例えば、ステップＳ３０１にて取得した転送ファイル処理部２２１が最新バージョンでなかった場合には管理装置１００Ａへエラーが発生した旨を報知し、当該転送ファイル処理を終了してもよい。また、ステップＳ３０１にて取得した転送ファイル処理部２２１が最新バージョンでなかった場合、管理装置１００Ａにその旨を通知し、ユーザに対しいずれのファイルを転送させるか選択させ、当該選択に応じたファイルを後述するステップＳ３０４にて転送用として設定してもよい。
【００７０】
ステップＳ３０２にて最新バージョンであると判定した場合（ステップＳ３０２；Ｙｅｓ）、またはステップＳ３０３の処理を実行した場合、制御部２２０は、転送ファイル処理部２２１の機能により、ステップＳ３０１にて取得した転送ファイル処理部２２１またはステップＳ３０３にて上書きしたファイルを、転送用として設定する（ステップＳ３０４）。具体的に、ステップＳ３０４では、ステップＳ３０２にて最新バージョンであると判定した場合には、ステップＳ３０１で取得した転送ファイル処理部２２１を転送用として設定し、ステップＳ３０３にて最新版を上書きした場合には、当該上書きしたファイルを転送用として設定すればよい。
【００７１】
ステップＳ３０４の処理を実行した後、制御部２２０は、ハッシュ値取得部２２２の機能により、ステップＳ３０４の処理にて転送用として設定したファイル（転送対象ファイル）に基づくハッシュ値を、ハッシュ関数２１１に基づいて算出する（ステップＳ３０５）。なお、当該ステップＳ３０５にて算出したハッシュ値は、後述するステップＳ３１０の処理にて管理装置１００Ａへ、転送時ハッシュ値１１２として送信されるが、当該ステップＳ３０５の処理の直後にステップＳ３１０の処理が実行されてもよい。
【００７２】
続いて制御部２２０は、ステップＳ３０４の処理にて転送用として設定したファイル（転送対象ファイル）を、暗号化処理部２２３の機能により暗号化する（ステップＳ３０６）。具体的に、ステップＳ３０６の処理では、暗号化キー２１３を用いて転送対象ファイルを暗号化すればよい。
【００７３】
ステップＳ３０６の処理を実行した後、制御部２２０は、転送ファイル処理部２２１の機能により、転送先が複数指定されているか否かを、管理装置１００Ａから受信した要求情報を参照して判定する（ステップＳ３０７）。転送先が複数である場合（ステップＳ３０７；Ｙｅｓ）、制御部２２０は、転送ファイル処理部２２１の機能により、転送パターンを設定する（ステップＳ３０８）。なお、ステップＳ３０８の処理の詳細については後述する。
【００７４】
ステップＳ３０７の処理にて転送先が複数でないと判定した場合（ステップＳ３０７；Ｎｏ）、制御部２２０は、転送ファイル処理部２２１の機能により、ステップＳ３０６の処理にて暗号化した転送対象ファイルを、指定された転送先へと転送する（ステップＳ３０９）。例えば、図９に示すファイル１のファイルを第２の端末へと転送する場合、ステップＳ３０９では、暗号化されたファイル１のファイルを第２の端末へと転送する。
【００７５】
ステップＳ３０９の処理を実行した後、制御部２２０は、ハッシュ値取得部２２２の機能により、ステップＳ３０５にて算出したハッシュ値を、転送時ハッシュ値１１２として管理装置１００Ａへ送信し（ステップＳ３１０）、転送ファイル処理を終了する。
【００７６】
図５に戻り、第１の端末１００Ｂにて転送ファイル処理を実行されると、第１の端末１００Ｂから、転送対象ファイルが第２の端末１００Ｃへ転送される。第２の端末１００Ｃでは、図示するように、第１の端末１００Ｂから転送対象ファイルを受信したことに基づいて、転送ファイル後処理を実行する。
【００７７】
図１１は、転送ファイル後処理の一例を示すフローチャートである。図１１に示す転送ファイル後処理において、第２の端末１００Ｃの制御部２２０は、復号化処理部２２４の機能により、第１の端末１００Ｂから受信した転送対象ファイルを復号化する（ステップＳ４０１）。具体的に、ステップＳ４０１の処理では、復号化キー２１４を用いて転送対象ファイルを暗号化すればよい。
【００７８】
ステップＳ４０１の処理を実行した後、制御部２２０は、ハッシュ値取得部２２２の機能により、ステップＳ４０１の処理にて復号化した転送対象ファイルに基づくハッシュ値を、ハッシュ関数２１１に基づいて算出し（ステップＳ４０２）、転送ファイル後処理を終了する。なお、当該ステップＳ４０２にて算出したハッシュ値は、後述するように管理装置１００Ａからの確認要求を受信することに応じて管理装置１００Ａへ送信されるが、当該ステップＳ４０２の処理の直後に、確認要求の受信によらず送信されてもよい。
【００７９】
図５に戻り、第１の端末１００Ｂから転送時ハッシュ値を受信すると、管理装置１００Ａは、確認要求を第２の端末１００Ｃに送信することで、到達時ハッシュ値の送信を要求する。確認要求は、到達時ハッシュ値を要求する情報であればよく、転送時ハッシュ値を受信したことに基づいて、確認要求生成部１２３の機能により生成されればよい。
【００８０】
第２の端末１００Ｃでは、確認要求を受信すると、図１１のステップＳ４０２の処理で算出したハッシュ値を、到達時ハッシュ値１１３として管理装置１００Ａに送信する。
【００８１】
管理装置１００Ａでは、図５に示すように、到達時ハッシュ値１１３を第２の端末１００Ｃから受信すると、受信した到達時ハッシュ値１１３が、既に受信済みの転送時ハッシュ値１１２と一致することを判定することで、転送対象ファイルが転送前後で改ざんされていないことを確認する。なお、到達時ハッシュ値１１３と転送時ハッシュ値１１２とが一致しない場合には、転送前後で改ざんされているとして、正常な転送が行われなかったこと、すなわち異常が発生したことを、例えば警告音とともにエラーメッセージを出力することで報知する。なお、到達時ハッシュ値１１３と転送時ハッシュ値１１２とが一致するまで、管理装置１００Ａにて生成した指示情報および要求情報を記憶しておき、一致しなかった場合には再度これらを第１の端末１００Ｂに対して送信することで、ファイル転送を再度行い、一致した場合に、これらを消去するようにしてもよい。
【００８２】
以上が、転送指示装置である管理装置１００Ａの指示に基づいて、第１の端末１００Ｂから第２の端末１００Ｃへ、ユーザの所望するファイルを転送する場合におけるファイル転送システム１の動作である。続いて、複数の転送先にファイルを転送する場合について説明する。
【００８３】
具体的に、第１の端末１００Ｂから、第２の端末１００Ｃ、第３の端末１００Ｄ、第４の端末１００Ｅ、第５の端末１００Ｆおよび第６の端末１００Ｇへ、ユーザの所望するファイルを転送する場合について、図１２を参照して説明する。
【００８４】
第１の端末１００Ｂに記憶されたファイルを、第２〜第６のそれぞれの端末へ転送する場合、図１２（Ａ）に示すように、第１の端末１００Ｂが、第２〜第６のそれぞれの端末へファイルを転送することが考えられる。しかしながら、このように、１つの端末が他の全ての端末へファイルを転送するとなると、１つの端末に対する負荷が大きくなる。そのため、この実施の形態に係るファイル転送システム１では、図１０のステップＳ３０７にて転送先が複数存在すると判定した場合には、ステップＳ３０８の処理において転送パターンを設定することで、１つの端末に対する負荷を軽減している。なお、図１２（Ａ）に示すように、第１の端末１００Ｂが、第２〜第６のそれぞれの端末へファイルを転送する場合、１つの端末が他の全ての端末へ同時にファイルを転送するのではなく、端末毎に順次ファイルを転送することで負荷を軽減してもよい。また、予め定められた数（同時転送可能台数）の端末については同時に転送可能としてもよく、この場合には、同時転送可能台数毎に、順次ファイルを転送すればよい。
【００８５】
図１２（Ｂ）は、図１０のステップＳ３０８にて転送パターンが設定された場合の一例を示す図である。具体的に、図１２（Ｂ）は、第１の端末１００Ｂが第２の端末１００Ｃの他、第３の端末１００Ｄおよび第５の端末１００Ｆといった奇数の端末に転送を行い、第２の端末１００Ｃが、第１の端末１００Ｂから転送されたファイルを、第４の端末１００Ｅおよび第６の端末１００Ｇといった偶数の端末１００Ｇへ転送する転送パターンが設定された場合の例を示している。この場合、第２の端末１００Ｃは、図４に示す第１の端末１００Ｂと同様に、転送元としての構成と転送先としての構成を備えていればよい。第１の端末１００Ｂは、第２の端末１００Ｃに対し転送対象ファイルを転送するとともに、当該転送対象ファイルを、第４の端末１００Ｅおよび第６の端末１００Ｇに転送する要求を、合わせて送信すればよい。そして、第２の端末１００Ｃは、当該要求に基づいて、受信した転送対象ファイルを、第４の端末１００Ｅおよび第６の端末１００Ｇに転送すればよい。この際、転送時ハッシュ値を第１の端末１００Ｂを介して管理装置１００Ａへ送信すればよい。なお、第１の端末１００Ｂは、第３の端末１００Ｄへの転送が完了した後に、第５の端末１００Ｆへの転送を行うなど、端末毎に順次転送を行ってもよい（第２の端末１００Ｃについても同様）。また、上述した同時転送可能台数が２以上であれば、第３の端末１００Ｄおよび第５の端末１００Ｆへ同時に転送を行ってもよい（第２の端末１００Ｃについても同様）。
【００８６】
図示する例では、奇数の端末と偶数の端末とで分けて転送する転送パターンが設定された場合の例を示したが、転送パターンはこれに限られない。例えば、物理的な通信距離が近い端末同士で転送を行うような転送パターンが設定されてもよいし、転送先の端末が４つ未満となるように設定するなど、予め定められた数未満の転送先となるよう設定する転送パターンなど、ユーザの任意の設定により様々な転送パターンが設定されればよい。また、例えば、転送先の端末数に応じて優先度の異なる複数の転送パターンを設定しておき、転送先となる端末の数に応じて優先度の高い転送パターンが設定されるようにしてもよい。
【００８７】
これによれば、転送先となる端末の数に応じて好適な転送パターンが設定されるため、転送元となる端末の負荷を軽減させることができる。
【００８８】
（変形例）
なお、この発明は、上記実施の形態に限定されず、様々な変形及び応用が可能である。例えば、ファイル転送システム１を構成する管理装置１００Ａ、第１の端末１００Ｂ、および第２の端末１００Ｃは、上記実施の形態で示した全ての技術的特徴を備えるものでなくてもよく、従来技術における少なくとも１つの課題を解決できるように、上記実施の形態で説明した一部の構成を備えたものであってもよい。また、下記の変形例それぞれについて、少なくとも一部を組み合わせても良い。
【００８９】
上記実施の形態では、図３に示す転送可能ファイル一覧１１１が予め管理装置１００Ａの記憶部１１０に格納されている例を示したが、これは一例である。例えば、転送可能ファイル一覧１１１は、管理装置１００Ａによる事前設定処理により、生成されてもよい。具体的に、事前設定処理により、当該第１の端末１００Ｂや第２の端末１００Ｃなどいった転送装置として機能する端末と通信し、予め設定されている、転送用ファイルが格納されているファイルパスとファイル名を読み込むことで、転送可能なファイルが格納されたファイルパスおよびファイル名（ファイル番号を含む）を示す転送可能ファイル一覧１１１を生成してもよい。これによれば、予め転送可能なファイルをユーザによる入力操作で設定しておく必要がなくなり、ユーザの処理負担を軽減できる。また、例えば、指示生成処理の前に当該事前設定処理を行うことで、転送可能ファイル一覧１１１の定期的な更新が行われ、存在しないファイルが転送可能ファイル一覧１１１として残ってしまうなどといった問題を防止することができる。
【００９０】
また、上記実施の形態では、管理装置１００Ａの指示に基づいて、第１の端末１００Ｂから第２の端末１００Ｃへ、ユーザの所望するファイルを１つ転送する例を示したが、これは一例である。転送するファイルは１つに限られず、複数まとめて転送可能である。この場合、図１０のステップＳ３０５の処理では、転送対象ファイル毎にハッシュ値を算出する一方で、ステップＳ３０６の処理では、複数の転送対象ファイルをまとめて暗号化すればよい。これによれば、転送元において一度復号化すればよく、処理負担を軽減できるとともに、ファイル毎のハッシュ値が算出されるため、改ざんについてはファイル毎に確認することができる。
【００９１】
また、上記実施の形態では、管理装置１００Ａの指示に基づいて、第１の端末１００Ｂから第２の端末１００Ｃへ、ユーザの所望するファイルを１回転送する例を示したが、これは一例である。例えば、管理装置１００Ａから送信する要求情報にスケジュールを組み込み、所定の期間が経過する度に、第１の端末１００Ｂから第２の端末１００Ｃへ、指定されたファイルが転送されるようにしてもよい。これにより、一旦要求情報を送信すれば定期的なファイル転送を行うことができるため、例えば、毎月の売り上げをファイル転送により収集するといった場合などにおける人的作業負担を軽減することができ、より好適にファイル転送を行うことができる。
【００９２】
さらに、例えば、一旦第１の端末１００Ｂから売り上げ表のフォーマットファイルを第２の端末１００Ｃへ転送した後は、毎月末に、今度は第２の端末１００Ｃから第１の端末１００Ｂへ当該売り上げ表のファイルが転送されるようにしてもよい。この場合、管理装置１００Ａから送信する要求情報に、当該売り上げファイルを指定して、第２の端末１００Ｃから第１の端末１００Ｂへ毎月末に転送するスケジュールを含ませ（指示情報）、第１の端末１００Ｂから第２の端末１００Ｃへ売り上げ表のフォーマットファイルを転送する際に、当該指示情報を合わせて送信すればよい。そして、第２の端末１００Ｃは、当該指示情報に含まれるスケジュールに従って（毎月末に）、当該売り上げファイルを第１の端末１００Ｂへ転送すればよい。
【００９３】
なお、上述の機能を、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）とアプリケーションとの分担、またはＯＳとアプリケーションとの協同により実現する場合等には、ＯＳ以外の部分のみを媒体に格納してもよい。
【００９４】
また、搬送波にプログラムを重畳し、通信ネットワークを介して配信することも可能である。例えば、通信ネットワーク上の掲示板（ＢＢＳ、Ｂｕｌｌｅｔｉｎ  Ｂｏａｒｄ  Ｓｙｓｔｅｍ）に当該プログラムを掲示し、ネットワークを介して当該プログラムを配信してもよい。そして、これらのプログラムを起動し、オペレーティングシステムの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できるように構成してもよい。
【符号の説明】
【００９５】
１  ファイル転送システム、１００Ａ  管理装置、１００Ｂ  第１の端末、１００Ｃ  第２の端末、１００Ｄ  第３の端末、１００Ｅ  第４の端末、１００Ｆ  第５の端末、１００Ｇ  第６の端末、１１０、２１０  記憶部、１１１  転送可能ファイル一覧、１１２  転送時ハッシュ値、１１３  到達時ハッシュ値、１２０、２２０  制御部、１２１  指示生成部、１２２  要求生成部、１２３  確認要求生成部、１２４  改ざん確認部、  １３０、２３０  入出力部、１４０、２４０  通信部、２１０  記憶部、２１１  ハッシュ関数、２１２  転送用ファイル、  ２１３  暗号化キー、  ２１４  復号化キー、２２１  転送ファイル処理部、２２２  ハッシュ値取得部、２２３  暗号化処理部、２２４  復号化処理部、５１０  ネットワーク
【図１】
2020149182.tif 000003
【図２】
2020149182.tif 000004
【図３】
2020149182.tif 000005
【図４】
2020149182.tif 000006
【図５】
2020149182.tif 000007
【図６】
2020149182.tif 000008
【図７】
2020149182.tif 000009
【図８】
2020149182.tif 000010
【図９】
2020149182.tif 000011
【図１０】
2020149182.tif 000012
【図１１】
2020149182.tif 000013
【図１２】
2020149182.tif 000014