以下、本発明の複数の実施形態について、図面を参照して説明する。
[第1実施形態]
図1は、本発明の第1実施形態に係るデータ転送システムのシステム構成例及び処理概要を説明する図である。本実施形態のデータ転送システムは、秘密分散法を利用して送信者から受信者に送信データを転送するためのシステムである。
データ転送システムは、送信者システム1と、受信者システム2と、管理システム3とを備える。送信者システム1、受信者システム2、及び管理システム3は、通信ネットワークNに接続される。通信ネットワークNの構成は、特に限定されないが、例えば、インターネット、携帯電話通信網、専用回線、WAN(Wide Area Network)等の各種のネットワークを1つ以上含むことができる。また、データ転送システムは、通信ネットワークN上に複数の中継システム4を備える。
送信者システム1、受信者システム2、管理システム3、及び中継システム4は、それぞれ、1台又は複数台のコンピュータを含む情報システムである。送信者システム1及び受信者システム2は、例えば、ユーザ端末のみ、あるいは、ユーザ端末とサーバ装置のセットにより構成することができる。管理システム3は、例えば、サーバ装置により構成することができる。中継システム4は、例えば、クラウド上のオンラインストレージサービスを提供するサーバ装置により構成することができる。
送信者システム1は、例えば、送信データDを特定する情報や受信者システム2の宛先を特定する情報を含む送信指示を送信者システム1のユーザから受け付ける。送信指示を受け付けると、送信者システム1は、指示された送信データDを取得し、秘密分散法を利用して送信データDを複数の断片データd(図1の例ではd1〜d3)に分割する。また、送信者システム1は、各断片データdそれぞれに対して異なる送信経路(図1の例では、中継システム4)を選択する(割り当てる)。それから、送信者システム1は、各断片データdをそれぞれ対応する送信経路に送信するとともに、送信データDの宛先や各断片データdの送信経路に関する情報を管理システム3に送信する。
管理システム3は、例えば、送信データDの宛先や各断片データdの送信経路に関する情報を送信者システム1から受信すると、当該宛先の受信者システム2に対して、各断片データdの送信経路に関する情報を送信する。
中継システム4は、例えば、断片データdを送信者システム1から受信すると、ストレージに格納する。また、中継システム4は、受信者システム2の要求に応じて、ストレージに格納している断片データdを受信者システム2に送信し、ストレージから削除する。
受信者システム2は、例えば、各断片データdの送信経路に関する情報を管理システム3から受信すると、各送信経路が示す中継システム4に要求して、複数の断片データdを受信する。また、受信者システム2は、秘密分散法を利用して受信した複数の断片データd(図1の例ではd1〜d3)から送信データDを復元する。受信者システム2は、復元した送信データDを、例えば、ファイルサーバなどの記憶装置に格納する。受信者システム2のユーザは、記憶装置に格納された送信データDを取得して利用することができる。
もちろん、データ転送システムは、複数の送信者システム1を含んでいてもよい。また、データ転送システムは、複数の受信者システム2を含んでいてもよい。例えば、ある送信者システム1は、宛先として選択したいずれかの受信者システム2に、送信データを送信することができる。
図2は、データ転送システムの機能構成例を示す図である。
送信者システム1は、指示受付部11と、分割処理部12と、経路選択部13と、送信処理部14と、記憶部15とを有する。
指示受付部11は、送信者システム1のユーザに対して操作画面を表示したり、当該ユーザから指示を受け付けたりする。具体的には、指示受付部11は、データ送信指示を受け付ける操作画面を表示装置に出力し、入力装置によりデータ送信指示を受け付ける。
データ送信指示には、例えば、宛先としての受信者システム2を特定する情報や、送信データを特定する情報などが含まれる。指示受付部11は、データ送信指示を受け付けると、当該データ送信指示で指定された受信者情報(例えば、受信者システム2の識別子、URL(Uniform Resource Locator)、IPアドレスなど)と、当該データ送信指示で指定された場所から送信データを取得する。受信者情報は、記憶部15に格納されていてもよいし、管理システム3の設定管理部31から提供されてもよい。送信データは、記憶部15に格納されていてもよいし、システム内のその他のファイルサーバや記憶装置などから取得されてもよい。
分割処理部12は、指示受付部11から送信データを取得する。また、分割処理部12は、秘密分散法を利用して、取得した送信データを複数の断片データに分割する。
ここで、分割処理部12は、送信データの送信の度に、送信データの分割数を変更してもよい。例えば、分割処理部12は、予め定められている設定値に乱数値を乗算することにより分割数を算出する。このようにすれば、後述する送信経路の数が変動するため、通信の安全性を高めることができる。なお、設定値は、記憶部15に格納されていてもよいし、管理システム3の設定管理部31から提供されてもよい。指示受付部11は、ユーザから設定値の変更を受け付けてもよい。
秘密分散法は、既存の技術を用いることができるので詳細な説明を省略するが、概要は次のとおりである。秘密分散法は、1つのデータを2つ以上の断片データに分散させ(分割し)、各断片データは各々からは元データを一切類推できないように分散されており、所定数以上(例えば全部)の断片データを集めることで元データを復元可能とする技術である。実装例としては、分散時には、元データを復元するための情報を含む実行ファイルを断片データのいずれか1つ以上に含め、復元時には、全部の断片データを集めるとともにこの実行ファイルを実行することで元データを復元することができる。他の実装例としては、元データを復元するための情報を含む実行ファイルを予め受信者側に格納しておき、復元時には、全部の断片データを集めるとともに、当該実行ファイルを実行することで元データを復元することができる。
経路選択部13は、分割処理部12から複数の断片データを取得する。また、経路選択部13は、各断片データに対して送信経路を選択する(割り当てる)。本実施形態では、送信経路は、中継システム4に相当する。具体的には、経路選択部13は、複数の送信経路の情報(例えば、中継システム4の識別子、URL、IPアドレス、ログインのための認証情報(IDやパスワードなど)など)のリストを取得する。なお、送信経路の情報のリストは、記憶部15に格納されていてもよいし、管理システム3の設定管理部31から提供されてもよい。また、経路選択部13は、各断片データに対して互いに異なる送信経路を割り当てる。送信経路の数よりも断片データの数が多い場合、一部の複数の断片データの送信経路は重複していても構わない。
ここで、経路選択方法の3つの具体例について説明する。分割された複数の断片データは、ある順序で取得されるものとする。また、リスト内の各送信経路は、ある順序で保持されているものとする。
(1)経路選択部13は、先頭から順に選択した断片データに、リストの先頭から順に選択した送信経路を割り当てる。断片データの数が送信経路の数よりも多い場合、経路選択部13は、リストの先頭に戻って順に送信経路を選択する。
(2)経路選択部13は、リストの各送信経路の割り当て順序を、乱数値を用いてランダムな順序に決定する。そして、経路選択部13は、先頭から順に選択した断片データに、決定した割り当て順にリストから選択した送信経路を割り当てる。断片データの数が送信経路の数よりも多い場合、経路選択部13は、割り当て順序の先頭に戻って順に送信経路を選択する。このようにすれば、(1)と比べて、データ送信の度に使用される送信経路が変化するため、通信の安全性を高めることができる。
(3)経路選択部13は、リストの各送信経路の割り当て順序を、各送信経路の利用状況を用いて決定する。例えば、経路選択部13は、各送信経路の利用状況(例えば、使用頻度、使用データ量などの統計値)を含むリストを、管理システム3から取得する。そして、経路選択部13は、リストの各送信経路の割り当て順序を、利用状況に基づいて利用の少ない順(例えば、使用頻度の少ない順、使用データ量の少ない順)に決定する。経路選択部13は、先頭から順に選択した断片データに、決定した割り当て順にリストから選択した送信経路を割り当てる。断片データの数が送信経路の数よりも多い場合、経路選択部13は、割り当て順序の先頭に戻って順に送信経路を選択する。このようにすれば、(1)や(2)と比べて、データ送信が繰り返された場合に、各中継システム4の使用データ量が平均化されるため、特定の中継システム4への負荷が集中するのを予防することができる。
送信処理部14は、分割処理部12から複数の断片データを取得するとともに、経路選択部13から各断片データの送信経路の情報を取得する。また、送信処理部14は、取得した各断片データをそれぞれに割り当てられた送信経路を宛先として、ネットワークNに送信する。具体的には、送信処理部14は、送信経路の情報に基づいて、中継システム4のURLにアクセスし、ID及びパスワードを用いてログインし、断片データ(断片データの識別子を含む)を送信する(「アップロードする」とも言える)。送信された断片データは、中継システム4の所定の記憶領域に格納される。送信処理部14の各中継システム4に対する処理は、例えば、各中継システム4が提供するWeb・API(Application Programming Interface)を利用して実現することができる。
また、送信処理部14は、データ送信を実行したことを示す通知情報を、管理システム3に送信する。通知情報は、例えば、送信データの識別子(例えば、ファイル名、IDなど)と、送信日時と、送信者情報(例えば、送信者システム1の識別子、URL、IPアドレスなど)と、受信者情報(例えば、受信者システム2の識別子、URL、IPアドレスなど)と、各断片データの識別子(例えば、ファイル名、IDなど)と、各断片データの送信経路情報(例えば、中継システム4の識別子、URL、IPアドレスなど)を含むことができる。
記憶部15は、上述したように、例えば、送信データ、宛先としての受信者システム2の情報、送信経路の情報のリストなどの、送信者システム1の処理に使用される情報を格納する。
受信者システム2は、指示受付部21と、受信処理部22と、復元処理部23と、記憶部24とを有する。
指示受付部21は、受信者システム2のユーザに対して操作画面を表示したり、当該ユーザから指示を受け付けたりする。具体的には、指示受付部21は、受信処理部22が受信者システム2宛ての送信データが存在することを検出すると、データ受信指示を受け付ける操作画面を表示装置に出力し、入力装置によりデータ受信指示を受け付ける。もちろん、データ受信指示の受け付けは必須ではなく、受信処理部22は、送信データを検出すると自動的に各断片データを受信するようにしてもよい。
受信処理部22は、送信データを構成する各断片データを、それぞれの送信経路から受信する。具体的には、受信処理部22は、所定のタイミングで(例えば、周期的に)、管理システム3にアクセスし、受信者システム2宛ての送信データが存在するかどうかを問い合わせる。受信者システム2宛ての送信データが存在する場合、受信処理部22は、例えば、送信データの識別子(例えば、ファイル名、IDなど)と、当該送信データを構成する各断片データの識別子(例えば、ファイル名、IDなど)と、各断片データの送信経路情報(例えば、中継システム4の識別子、URL、IPアドレスなど)とを、管理システム3から取得する。このようにして、受信処理部22は、受信者システム2宛ての送信データの存在を判定する。
また、受信処理部22は、各断片データを受信する。具体的には、受信処理部22は、断片データの送信経路情報に基づいて、中継システム4のURLにアクセスし、ID及びパスワードを用いてログインする。中継システム4にログインするためのID及びパスワードは、記憶部24に格納されていてもよいし、管理システム3の設定管理部31から提供されてもよい。また、受信処理部22は、断片データの識別子に対応するデータを、中継システム4から取得する(「ダウンロードする」とも言える)。取得された各断片データは、記憶部24に格納されてもよいし、システム内のその他のファイルサーバや記憶装置などに格納されてもよい。受信処理部22の各中継システム4に対する処理は、例えば、各中継システム4が提供するWeb・APIを利用して実現することができる。
また、受信処理部22は、データ受信を実行したことを示す通知情報を、管理システム3に送信する。通知情報は、例えば、送信データの識別子(例えば、ファイル名、IDなど)と、受信日時と、各断片データの識別子(例えば、ファイル名、IDなど)とを含むことができる。
復元処理部23は、受信処理部22により受信された各断片データを取得する。また、復元処理部23は、秘密分散法を利用して、取得した各断片データから元の送信データを復元する。復元された送信データは、記憶部24に格納されてもよいし、システム内のその他のファイルサーバや記憶装置などに格納されてもよい。復元処理部23は、いずれかの断片データに含まれる実行ファイルを実行することで元の送信データを復元してもよいし、予め記憶部24に格納されている実行ファイルを実行することで元の送信データを復元してもよい。
記憶部24は、上述したように、例えば、各断片データ、送信データ、送信経路の情報などの、受信者システム2の処理に使用される情報を格納する。
管理システム3は、設定管理部31と、状態管理部32と、記憶部33とを有する。記憶部33は、送信者情報331、受信者情報332、中継システム情報333、送信データ管理情報334などの、管理システム3の処理に使用される情報を格納する。
送信者情報331は、各送信者システム1に関する情報である。送信者情報331は、送信者システム1ごとに、例えば、送信者システム1の識別子、送信者システム1のアドレス情報(例えば、URLやIPアドレス)、送信者システム1が管理システム3にアクセスするための認証情報(例えば、IDとパスワード)、送信者システム1の詳細情報(例えば、名称、住所、Eメールアドレス、電話番号など)を含むことができる。
なお、送信者情報331は、送信者システム1ごとに、例えば、当該送信者システム1が宛先として指定することができる受信者システム2の識別子のリストを含んでもよい。また、送信者情報331は、送信者システム1ごとに、例えば、当該送信者システム1が断片データの送信経路として指定することができる中継システム4のリストを含んでもよい。中継システム4のリストには、例えば、中継システム4の識別子、送信者システム1が中継システム4にアクセスするための認証情報(例えば、IDとパスワード)を含むことができる。また、送信者情報331は、送信者システム1ごとに、例えば、上述した送信データの分割数に関する設定値を含んでもよい。
受信者情報332は、各受信者システム2に関する情報である。受信者情報332は、受信者システム2ごとに、例えば、受信者システム2の識別子、受信者システム2のアドレス情報(例えば、URLやIPアドレス)、受信者システム2が管理システム3にアクセスするための認証情報(例えば、IDとパスワード)、受信者システム2の詳細情報(例えば、名称、住所、Eメールアドレス、電話番号など)を含むことができる。
なお、受信者情報332は、受信者システム2ごとに、例えば、当該受信者システム2が送信元として指定することができる送信者システム1の識別子のリストを含んでもよい。また、受信者情報332は、受信者システム2ごとに、例えば、当該受信者システム2が断片データの送信経路として指定することができる中継システム4のリストを含んでもよい。中継システム4のリストには、例えば、中継システム4の識別子、受信者システム2が中継システム4にアクセスするための認証情報(例えば、IDとパスワード)を含むことができる。
中継システム情報333は、各中継システム4に関する情報である。中継システム情報333は、中継システム4ごとに、例えば、中継システム4の識別子、中継システム4のアドレス情報(例えば、URLやIPアドレス)、中継システム4の詳細情報(例えば、名称、住所、Eメールアドレス、電話番号など)を含むことができる。
なお、中継システム情報333は、中継システム4ごとに、例えば、その利用状況(例えば、使用頻度、使用データ量などの統計値)を含んでもよい。
送信データ管理情報334は、送信データおよび断片データに関する情報である。送信データ管理情報334は、例えば、図4(送信データ管理情報のデータ構成例を示す図)に示すように、送信データごとに、送信データID334aと、送信日時334bと、送信者ID334cと、受信者ID334dと、処理状態334eとを含み、さらに、各送信データを構成する断片データごとに、断片データID334fと、中継システムID334gと、処理状態334hとを含む。
送信データID334aは、送信データの識別子である。送信日時334bは、送信データが送信者システム1から送信された日時である。送信者ID334cは、送信データを送信した送信者システム1の識別子である。受信者ID334dは、送信データの宛先となる受信者システム2の識別子である。処理状態334eは、送信データの状態(例えば、「送信処理完了」、「受信処理完了」など)である。
断片データID334fは、断片データの識別子である。中継システムID334gは、断片データを受信した中継システム4の識別子である。処理状態334hは、断片データの状態(例えば、「送信中」、「受信済」など)である。
設定管理部31は、送信者情報331、受信者情報332、中継システム情報333などの設定情報を管理する。具体的には、設定管理部31は、送信者システム1、受信者システム2、あるいは中継システム4から、設定情報を参照する要求を受け付けて、対象の設定情報を、要求元のシステムに送信する。設定管理部31は、例えば、送信者システム1からの要求に応じて、当該送信者システム1が宛先として指定することができる受信者システム2の情報(例えば、受信者システム2の識別子、URL、IPアドレスなど)のリストを送信したり、当該送信者システム1が断片データの送信経路として指定することができる中継システム4の情報(例えば、中継システム4の識別子、URL、IPアドレス、ログインのためのIDやパスワードなど)のリストを送信したりする。
状態管理部32は、状態情報を含む送信データ管理情報334を管理する。具体的には、状態管理部32は、断片データを送信した送信者システム1から、データ送信を実行したことを示す通知情報(内容は上述したとおり)を受信すると、当該通知情報に基づいて対応するレコードを生成し、送信データ管理情報334に追加する。状態管理部32は、追加したレコードの処理状態334eに、例えば「送信処理完了」を設定し、当該レコードの各断片データの処理状態334hに、例えば「送信中」を設定する。
また、状態管理部32は、受信者システム2からの問い合わせを受信すると、送信データ管理情報334を参照し、当該問い合わせ元の受信者システム2の識別子を受信者ID334dとして含み、かつ、処理状態334eが「送信処理完了」であるレコードを特定する。また、状態管理部32は、特定したレコードから、例えば、送信データの識別子(例えば、ファイル名、IDなど)と、当該送信データを構成する各断片データの識別子(例えば、ファイル名、IDなど)と、各断片データの送信経路情報(例えば、中継システム4の識別子、URL、IPアドレスなど)とを含む応答情報を、問い合わせ元の受信者システム2に送信する。レコードを特定できなかった場合は、状態管理部32は、送信データが存在しないことを示す応答情報を、問い合わせ元の受信者システム2に送信すればよい。
また、状態管理部32は、断片データを受信した受信者システム2から、データ受信を実行したことを示す通知情報(内容は上述したとおり)を受信すると、当該通知情報に基づいて、対応する送信データの識別子を有するレコードを更新する。状態管理部32は、当該レコードの処理状態334eに、例えば「受信処理完了」を設定し、当該レコードの各断片データの処理状態334hに、例えば「受信済」を設定する。
図3は、中継システム4の機能構成例を示す図である。
中継システム4は、受信処理部41と、送信処理部42と、記憶部43とを有する。記憶部43は、ユーザ情報431と、転送データ格納領域432とを格納する。
ユーザ情報431は、各送信者システム1及び各受信者システム2(これらのシステムを「ユーザシステム」ともいう)に関する情報である。ユーザ情報431は、ユーザシステムごとに、例えば、ユーザシステムが中継システム4にアクセスするための認証情報(例えば、IDとパスワード)を含むことができる。
転送データ格納領域432は、各送信者システム1から送信された断片データを転送データとして格納する領域である。
なお、ユーザ情報431は、送信者システム1あるいは受信者システム2ごとに、例えば、断片データを転送データ格納領域432に保存する期間の設定を含んでもよい。当該期間には、例えば、0日(転送データが受信者システム2に送信されたら即時消去される)、あるいは1日以上の日数(転送データが受信者システム2に送信された後当該日数の経過後に消去される)などを設定することができる。
受信処理部41は、中継システム4にログインした送信者システム1から断片データ(断片データの識別子を含む)を受信する。また、受信処理部41は、受信した断片データを転送データとして転送データ格納領域432に格納する。
送信処理部42は、中継システム4にログインした受信者システム2から断片データの識別子を受信すると、当該識別子に対応する断片データを転送データ格納領域432から取得する。また、送信処理部42は、取得した断片データを要求元の受信者システム2に送信する。また、送信処理部42は、ユーザ情報431の設定期間に基づいて、設定期間の経過後、送信した断片データを転送データ格納領域432から消去する。
図5は、データ転送システムの装置構成の一例を示す図である。
送信者システム1は、1台又は複数のユーザ端末100と、各ユーザ端末100に接続される送信サーバ110とを含む。ユーザ端末100は、例えば、PC(Personal Computer)、スマートフォン、タブレット端末などのコンピュータである。送信サーバ110は、例えば、WEBサーバ、アプリケーションサーバ、ファイルサーバなどの機能を含む1台又は複数のコンピュータで実現できる。各ユーザ端末100と送信サーバ110とは、例えば、有線LAN(Local Area Network)や無線LANで接続される。
図2で示した送信者システム1の機能群は、送信サーバ110上に構築することができる。指示受付部11は、ユーザ端末100に操作画面を表示させたり、ユーザ端末100からユーザの操作入力を受け付けたりする。
受信者システム2は、1台又は複数のユーザ端末200と、各ユーザ端末200に接続される受信サーバ210とを含む。ユーザ端末200は、例えば、PC、スマートフォン、タブレット端末などのコンピュータである。受信サーバ210は、例えば、WEBサーバ、アプリケーションサーバ、ファイルサーバなどの機能を含む1台又は複数のコンピュータで実現できる。各ユーザ端末200と受信サーバ210とは、例えば、有線LANや無線LANで接続される。
図2で示した受信者システム2の機能群は、受信サーバ210上に構築することができる。指示受付部21は、ユーザ端末200に操作画面を表示させたり、ユーザ端末200からユーザの操作入力を受け付けたりする。
管理システム3は、管理サーバ300を含む。管理サーバ300は、例えば、WEBサーバ、アプリケーションサーバ、ファイルサーバなどの機能を含む1台又は複数のコンピュータで実現できる。図2に示した管理システム3の機能群は、管理サーバ300上に構築することができる。
中継システム4は、中継サーバ(図示せず)を含む。中継サーバは、例えば、WEBサーバ、アプリケーションサーバ、ファイルサーバなどの機能を含む1台又は複数のコンピュータで実現できる。図3に示した中継システム4の機能群は、中継サーバ上に構築することができる。
図6は、データ転送システムの装置構成の他の例を示す図である。
送信者システム1は、ユーザ端末120を含む。ユーザ端末120は、例えば、PC、スマートフォン、タブレット端末などのコンピュータである。図2で示した送信者システム1の機能群は、ユーザ端末120上に構築することができる。
受信者システム2は、ユーザ端末220を含む。ユーザ端末220は、例えば、PC、スマートフォン、タブレット端末などのコンピュータである。図2で示した受信者システム2の機能群は、ユーザ端末220上に構築することができる。
管理システム3及び中継システム4は、図5の説明と同様である。
図7は、コンピュータのハードウェア構成例を示す図である。図7は、ユーザ端末やサーバ装置を実現するコンピュータ90の主要な構成要素の例を示している。
コンピュータ90は、演算装置91と、主記憶装置92と、外部記憶装置93と、通信装置94と、読み書き装置95と、入力装置96と、出力装置97とを含む。
演算装置91は、例えば、CPU(Central Processing Unit)などの演算ユニットである。主記憶装置92は、例えば、RAM(Random Access Memory)などの記憶装置である。外部記憶装置93は、例えば、HDD(Hard Disk Drive)ハードディスクやSSD(Solid State Drive)、あるいはフラッシュROM(Read Only Memory)などの記憶装置である。通信装置94は、ネットワークケーブルを介して有線通信を行う通信装置、アンテナを介して無線通信を行う通信装置を含む、情報を送受信する装置である。読み書き装置95は、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリー等の記録媒体に情報を読み書きする装置である。入力装置96は、キーボードやマウスなどのポインティングデバイス、タッチパネル、マイクロフォンなどを含む、入力情報を受け付ける装置である。出力装置97は、ディスプレイ、プリンター、スピーカーなどを含む、出力情報を出力する装置である。
図2及び図3に示した各システムの機能群は、例えば、演算装置91が所定のアプリケーションプログラムを実行することによって実現することができる。このアプリケーションプログラムは、例えば、外部記憶装置93内に記憶され、実行にあたって主記憶装置92上にロードされ、演算装置91によって実行される。各システムのネットワークNとの通信は、例えば、通信装置94によって実現される。各システムの記憶部は、例えば、主記憶装置92及び外部記憶装置93の少なくとも一方により実現される。記憶部内の情報は、コンピュータ90と通信可能な別のファイルサーバや記憶装置に格納されてもよい。操作画面は、例えば、出力装置97あるいは通信装置94を介して出力される。ユーザ操作は、例えば、入力装置96あるいは通信装置94を介して入力される。
図8は、データ転送のデータ送信段階の処理手順の一例を示すシーケンス図である。図8では、2つの中継システム4が示されている。
まず、指示受付部11は、ユーザからデータ送信指示を受け付ける(ステップS10)。具体的には、指示受付部11は、受信者情報(例えば、受信者システム2の識別子、URL、IPアドレスなど)のリストを、管理システム3の設定管理部31から取得して、操作画面に表示する。設定管理部31は、送信者情報331から、送信者システム1が宛先として指定することができる受信者システム2のリストを送信する。受信者情報のリストは、記憶部15から取得されてもよい。また、指示受付部11は、宛先の受信者システム2の選択と、送信データを特定する情報(例えば、送信データの識別子と格納場所など)を、操作画面上で受け付ける。また、指示受付部11は、選択された受信者システム2の情報と指定された送信データを取得する。
次に、分割処理部12は、ステップS10で取得された送信データを、秘密分散法を利用して、複数の断片データに分割する(ステップS20)。送信データの分割数は、上述したように乱数値を用いて決定されてもよい。
次に、経路選択部13は、ステップS20で分割された各断片データに対して送信経路を割り当てる(ステップS30)。具体的には、経路選択部13は、複数の送信経路の情報(例えば、中継システム4の識別子、URL、IPアドレス、ログインのためのIDやパスワードなど)のリストを、管理システム3の設定管理部31から取得する。設定管理部31は、送信者情報331から、送信者システム1が送信経路として指定することができる中継システム4のリストを送信する。このとき、設定管理部31は、送信者情報331と受信者情報332を参照して、送信者システム1が送信経路として指定することができる中継システム4のうち、宛先の受信者システム2も送信経路として指定することができる共通の中継システム4を特定し、共通の中継システム4のリストを送信してもよい。送信経路の情報のリストは、記憶部15から取得されてもよい。また、経路選択部13は、上述の(1)〜(3)のようにして、各断片データに対して互いに異なる中継システム4を送信経路として割り当てる。
次に、送信処理部14は、ステップS20で分割された各断片データを、ステップS30で選択された送信経路を宛先として、通信ネットワークN上に送信する(ステップS40)。具体的には、送信処理部14は、送信経路の情報に基づいて、中継システム4のURLにアクセスし、ID及びパスワードを用いてログインし、断片データ(断片データの識別子を含む)を送信する。
各中継システム4の受信処理部41は、ステップS40で送信された断片データ(断片データの識別子を含む)を受信し、転送データとして転送データ格納領域432に保存する(ステップS50)。
次に、送信処理部14は、データ送信を実行したことを示す通知情報を、管理システム3に送信する(ステップS60)。通知情報の内容は、上述したとおりである。
状態管理部32は、ステップS60で送信された通知情報を受信すると、当該通知情報に基づいて対応するレコードを生成し、送信データ管理情報334に追加する(ステップS70)。状態管理部32は、追加したレコードの処理状態334eに、例えば「送信処理完了」を設定し、当該レコードの各断片データの処理状態334hに、例えば「送信中」を設定する。
図9は、データ転送のデータ受信段階の処理手順の一例を示すシーケンス図である。図9では、2つの中継システム4が示されている。
受信処理部22は、送信データの有無を判定する(ステップS110)。具体的には、受信処理部22は、例えば周期的に、受信者システム2宛ての送信データが存在するかどうかを、管理システム3の状態管理部32に問い合わせる。状態管理部32は、受信者システム2からの問い合わせを受信した場合の処理は、上述したとおりである。受信者システム2宛ての送信データが存在する場合、受信処理部22は、例えば、送信データの識別子(例えば、ファイル名、IDなど)と、当該送信データを構成する各断片データの識別子(例えば、ファイル名、IDなど)と、各断片データの送信経路情報(例えば、中継システム4の識別子、URL、IPアドレスなど)とを含む応答情報を、状態管理部32から受信する。受信者システム2宛ての送信データが存在しない場合、受信処理部22は、送信データが存在しないことを示す応答情報を、状態管理部32から受信する。
受信者システム2宛ての送信データが存在する場合、受信処理部22は、当該送信データを構成する各断片データを取得する(ステップS120)。具体的には、受信処理部22は、ステップS110で取得した各断片データの識別子と送信経路情報に基づいて、各中継システム4のURLにアクセスし、ID及びパスワードを用いてログインし、各断片データの識別子に対応するデータを各中継システム4から取得する。
各中継システム4の送信処理部42は、ステップS120で送信された断片データの識別子に対応する断片データを転送データ格納領域432から取得して送信し、ユーザ情報431の設定期間に基づいて、設定期間の経過後、送信した断片データを転送データ格納領域432から消去する(ステップS130)。
次に、復元処理部23は、ステップS120で取得された各断片データから、秘密分散法を利用して、元の送信データを復元する(ステップS140)。復元処理部23は、復元した送信データを、記憶部24に格納してもよいし、システム内のその他のファイルサーバや記憶装置などに格納してもよい。
次に、受信処理部22は、データ受信を実行したことを示す通知情報を、管理システム3に送信する(ステップS150)。通知情報の内容は、上述したとおりである。
状態管理部32は、ステップS150で送信された通知情報を受信すると、当該通知情報に基づいて、対応する送信データの識別子を有するレコードを更新する(ステップS160)。状態管理部32は、当該レコードの処理状態334eに、例えば「受信処理完了」を設定し、当該レコードの各断片データの処理状態334hに、例えば「受信済」を設定する。
以上、本発明の第1実施形態について説明した。本実施形態では、送信者システム1のユーザが少なくとも宛先(受信者システム2)と送信データを指定すれば、後は自動的に、送信データの分割、各断片データの送信経路の選択、各断片データの送信、各断片データの受信、送信データの復元が行われ、受信者システム2のユーザは送信データを得ることができる。これにより、安全性及び利便性を向上したデータ転送の仕組みを提供することができる。
[第2実施形態]
第2実施形態に係るデータ転送システムは、中継システム4を利用しない点で第1実施形態と異なる。以下、第1実施形態と異なる構成を中心に説明し、第1実施形態と同様の構成の説明を省略する。
図10は、本発明の第2実施形態に係るデータ転送システムのシステム構成例及び処理概要を説明する図である。データ転送システムは、中継システム4を備えていない。
送信者システム1は、分割した各断片データdそれぞれに対して異なる送信経路を選択する(割り当てる)。ここで、送信者システム1は、複数の送信経路として、複数の中継システム4の替わりに、受信者システム2に設けられる1台又は複数台の受信装置(図示せず)を選択する。受信装置は、例えば、WEBサーバ、ファイルサーバなどのサーバ装置で実現することができる。1台の受信装置を使う場合は、受信装置の内部は、論理的に、異なるIDやポート番号でアクセスする複数の受信装置に分けられている。
送信者システム1は、各断片データdをそれぞれ対応する送信経路に送信するとともに、送信データDの宛先や各断片データdの送信経路に関する情報を、受信者システム2及び管理システム3に送信する。
受信者システム2は、各断片データdの送信経路に関する情報を、送信者システム1から受信すると、各送信経路が示す受信装置に要求して、複数の断片データdを受信する。
図11は、データ転送の処理手順の一例を示すシーケンス図である。
まず、指示受付部11は、ユーザからデータ送信指示を受け付ける(ステップS210)。この処理は、図8のステップS10と同様である。
次に、分割処理部12は、ステップS210で取得された送信データを、秘密分散法を利用して、複数の断片データに分割する(ステップS220)。この処理は、図8のステップS20と同様である。
次に、経路選択部13は、ステップS220で分割された各断片データに対して送信経路を割り当てる(ステップS230)。具体的には、管理システム3の送信者情報331には、送信者システム1が送信経路として指定することができる受信者システム2の受信装置の情報(例えば、受信装置の識別子、URL、IPアドレス、ポート番号、ログインのためのIDやパスワードなど)のリストが格納されている。経路選択部13は、複数の送信経路の情報(例えば、受信装置の識別子、URL、IPアドレス、ポート番号、ログインのためのIDやパスワードなど)のリストを、管理システム3の設定管理部31から取得する。送信経路の情報のリストは、記憶部15から取得されてもよい。また、経路選択部13は、上述の(1)〜(3)のようにして、各断片データに対して互いに異なる受信装置を送信経路として割り当てる。
次に、送信処理部14は、ステップS220で分割された各断片データを、ステップS230で選択された送信経路を宛先として、送信する(ステップS240)。具体的には、送信処理部14は、送信経路の情報に基づいて、受信者システム2の受信装置のURL(あるいはIPアドレスとポート番号)にアクセスし、ID及びパスワードを用いてログインし、断片データ(断片データの識別子を含む)を送信する。
受信者システム2の各受信装置は、ステップS240で送信された断片データ(断片データの識別子を含む)を受信し、所定の記憶領域に保存する(ステップS250)。
次に、送信処理部14は、データ送信を実行したことを示す通知情報を、受信者システム2及び管理システム3に送信する(ステップS260、ステップS270)。通知情報の内容は、第1実施形態と部分的に異なり、各断片データの送信経路情報(例えば、受信装置の識別子、URL、ポート番号、IPアドレスなど)を含む。
状態管理部32は、ステップS270で送信された通知情報を受信すると、当該通知情報に基づいて対応するレコードを生成し、送信データ管理情報334に追加する(ステップS280)。なお、図4の送信データ管理情報334は、中継システムID334gの替わりに受信装置ID334gを格納している。
受信処理部22は、ステップS260で送信された通知情報を受信すると、通知された送信データを構成する各断片データを取得する(ステップS290)。具体的には、受信処理部22は、通知情報に含まれる各断片データの識別子と送信経路情報に基づいて、各受信装置のURL(あるいはIPアドレスとポート番号)にアクセスし、ID及びパスワードを用いてログインし、各断片データの識別子に対応するデータを各受信装置から取得する。
なお、ステップS260の処理は、省略してもよい。この場合、受信処理部22は、ステップS250において各受信装置に断片データが保存されたことを検出し、ステップS290において各受信装置から検出した各断片データを取得すればよい。受信処理部22は、予め設定されたURL等の情報を用いて各受信装置へアクセスすればよい。また、ステップS260の処理では、送信処理部14は、上述した通知情報の替わりに、送信データの全ての断片データの送信が完了したことを受信者システム2に通知してもよい。この場合、受信処理部22は、ステップS260において断片データの送信が完了したこと検出し、ステップS290において各受信装置から各断片データを取得すればよい。
次に、復元処理部23は、ステップS290で取得された各断片データから、秘密分散法を利用して、元の送信データを復元する(ステップS300)。この処理は、図9のステップS140と同様である。
なお、各受信装置は、ステップS300で送信データが復元されると、予め設定されたユーザ情報の設定期間に基づいて、設定期間の経過後、受信処理部22に送信された断片データを記憶領域から消去してもよい。
次に、受信処理部22は、データ受信を実行したことを示す通知情報を、管理システム3に送信する(ステップS310)。
状態管理部32は、ステップS310で送信された通知情報を受信すると、当該通知情報に基づいて、対応する送信データの識別子を有するレコードを更新する(ステップS320)。なお、図4の送信データ管理情報334は、中継システムID334gの替わりに受信装置ID334gを格納している。
以上、本発明の第2実施形態について説明した。本実施形態では、送信経路として受信者システム2の有する受信装置を用いる。これにより、送信者システム1と受信者システム2は、中継システム4を介さずに直接断片データを送受信できるため、送信データの送受信に要する時間を短縮できる。このようなデータ転送システムは、トランザクションの処理システムなど、より速い処理が要求されるリアルタイムシステムなどに適している。
[第3実施形態]
第3実施形態に係るデータ転送システムは、決裁が下りた場合にのみ送信データを送信する点で第1実施形態と異なる。以下、第1実施形態と異なる構成を中心に説明し、第1実施形態と同様の構成の説明を省略する。
本実施形態では、データ送信を依頼する第1のユーザ(依頼者)と、データ送信を決裁する第2のユーザ(決裁者)とが区別される。管理システム3の記憶部33には、依頼者となる第1のユーザの識別子ごとに、当該第1のユーザの依頼の決裁を担当する第2のユーザの識別子を関連付けた決裁者情報が予め格納される。この決裁者情報は、送信者システム1の記憶部15に格納されてもよい。
図12は、本発明の第3実施形態に係るデータ転送の処理手順の一例を示すシーケンス図である。図8と異なる処理を中心に説明する。
ステップS10では、指示受付部11は、第1のユーザ(依頼者)からデータ送信指示を受け付ける。指示受付部11は、例えばログインIDとパスワードなどの認証情報の入力を受け付けることにより、第1のユーザを識別することができる。
次に、指示受付部11は、データ送信を実行することを示す登録情報を、管理システム3に送信する(ステップS11)。具体的には、登録情報は、例えば、送信データの識別子(例えば、ファイル名、IDなど)と、登録日時と、送信者情報(例えば、送信者システム1の識別子、URL、IPアドレスなど)と、受信者情報(例えば、受信者システム2の識別子、URL、IPアドレスなど)と、第1のユーザのユーザIDとを含むことができる。状態管理部32は、登録情報を受信すると、当該登録情報に基づいて対応するレコードを生成し、送信データ管理情報334に追加する。状態管理部32は、追加したレコードの送信日時334bに登録日時を設定し、当該レコードの処理状態334eに、例えば「送信登録/決裁待ち」を設定する。断片データID334f、中継システムID334g、及び処理状態334hは、空欄(例えばNULL値)でよい。また、状態管理部32は、追加したレコードに、第1のユーザのユーザIDを関連付ける。また、状態管理部32は、上述の決裁者情報を参照して、第1のユーザに関連付けられた第2のユーザを特定する。そして、状態管理部32は、追加したレコードに、第2のユーザのユーザIDを関連付ける。
指示受付部11は、ステップS11の後、決裁待ちのデータ送信があることを、その決裁者である第2のユーザの予め登録された連絡先(例えば、Eメールアドレス、電話番号など)へ通知する。この通知を見た第2のユーザは、決裁操作を実行することができる。
次に、指示受付部11は、第2のユーザ(決裁者)からデータ送信の決裁を受け付ける(ステップS12)。指示受付部11は、例えばログインIDとパスワードなどの認証情報の入力を受け付けることにより、データ送信を決裁するユーザを識別することができる。具体的には、指示受付部11は、管理システム3にアクセスし、第2のユーザによる決裁待ちのデータ送信が存在するかどうかを問い合わせる。問い合わせには、例えば、送信者システム1の識別子、第2のユーザのユーザIDなどを含む。状態管理部32は、問い合わせを受信すると、送信データ管理情報334を参照し、当該問い合わせ元の送信者システム1の識別子を送信者ID334cとして含み、かつ、処理状態334eが「送信登録/決裁待ち」であり、かつ、第2のユーザのユーザIDが関連付けられているレコードを特定する。そして、状態管理部32は、特定したレコードの情報を含む応答情報を、問い合わせ元の送信者システム1に送信する。レコードを特定できなかった場合は、状態管理部32は、決裁待ちのデータ送信が存在しないことを示す応答情報を、問い合わせ元の送信者システム1に送信すればよい。
指示受付部11は、受信した応答情報に基づいて、受信した決裁待ちのデータ送信の情報(例えば、送信データの識別子、送信者情報、受信者情報、依頼者情報、処理状態、第1のユーザの識別子など)を操作画面に表示する。また、指示受付部11は、当該決裁待ちのデータ送信に対する決裁操作を第2のユーザから受け付ける。決裁操作を受け付けた場合、指示受付部11は、データ送信指示を受け付けたと判定し、指定されている送信データを取得し、処理をステップS20へ進める。このとき、指示受付部11は、データ送信が決裁されたことを管理システム3に通知する。状態管理部32は、決裁されたデータ送信に対応するレコードの送信日時334bに決裁日時を設定し、当該レコードの処理状態334eに、例えば「送信処理中」を設定する。
状態管理部32は、ステップS60で送信された通知情報に基づいて、対応する送信データの識別子を有するレコードを更新する(ステップS71)。状態管理部32は、当該レコードの送信日時334bに送信日時を設定し、各断片データの断片データID334f及び中継システムID334gを設定する。状態管理部32は、当該レコードの処理状態334eに、例えば「送信処理完了」を設定し、当該レコードの各断片データの処理状態334hに、例えば「送信中」を設定する。
以上、本発明の第3実施形態について説明した。本実施形態によれば、決裁が下りた場合にのみ送信データが送信される。これにより、安全性を向上したデータ転送の仕組みを提供することができる。なお、本実施形態の決裁に関する構成は、第2実施形態にも適用できる。
[変形例]
本発明は、上述の複数の実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。各実施形態および各変形例の2つ以上を適宜組み合わせることもできる。
第1実施形態又は第3実施形態のある変形例では、中継システム4の受信処理部41は、断片データの受信を実行したことを示す通知情報を、管理システム3の状態管理部32に送信してもよい。通知情報は、例えば、送信データの識別子(例えば、ファイル名、IDなど)と、受信日時と、受信した断片データの識別子(例えば、ファイル名、IDなど)とを含むことができる。この場合、状態管理部32は、当該送信データのレコードの対応する断片データの処理状態334hに、例えば「受信待ち」を設定することができる。このようにすれば、管理システム3は、各断片データのより詳細な処理状態を管理することができ、ユーザに詳細な処理状態を知らせることもできる。第2実施形態の受信装置も、中継システム4と同様に、断片データの受信を実行したことを示す通知情報を、管理システム3の状態管理部32に送信してもよい。
第1実施形態又は第3実施形態の他の変形例では、中継システム4の送信処理部42は、断片データの送信を実行したことを示す通知情報を、管理システム3の状態管理部32に送信してもよい。通知情報は、例えば、送信データの識別子(例えば、ファイル名、IDなど)と、送信日時と、送信した断片データの識別子(例えば、ファイル名、IDなど)とを含むことができる。この場合、状態管理部32は、当該送信データのレコードの対応する断片データの処理状態334hに、例えば「送信済」を設定することができる。このようにすれば、管理システム3は、各断片データのより詳細な処理状態を管理することができ、ユーザに詳細な処理状態を知らせることもできる。第2実施形態の受信装置も、中継システム4と同様に、断片データの送信を実行したことを示す通知情報を、管理システム3の状態管理部32に送信してもよい。
第1実施形態又は第3実施形態のさらに他の変形例では、受信処理部22が、受信者システム2宛ての送信データが存在するかどうかを管理システム3の状態管理部32に問い合わせるのではなく、状態管理部32が、受信者システム2宛ての送信データが存在することを宛先の受信者システム2の受信処理部22に通知してもよい。通知される情報は、図9のステップS110で説明した応答情報と同様である。
第1実施形態又は第3実施形態のさらに他の変形例では、受信処理部22が、受信者システム2宛ての送信データが存在するかどうかを管理システム3の状態管理部32に問い合わせるのではなく、送信処理部14が、データ送信を実行したことを示す通知情報を宛先の受信者システム2の受信処理部22に送信してもよい。通知される情報は、図9のステップS110で説明した応答情報と同様である。
第1実施形態又は第3実施形態のさらに他の変形例では、送信者システム1及び受信者システム2は、利用する複数の中継システム4のリストを予め記憶部に登録しておいてもよい。この場合、受信処理部22は、受信者システム2宛ての送信データが存在するかどうかを管理システム3の状態管理部32に問い合わせるのではなく、所定のタイミングで(例えば周期的に)、登録されている各中継システム4に対して受信者システム2宛ての断片データが格納されているかどうかを問い合わせればよい。各中継システム4の送信処理部42は、問い合わせ元の受信者システム2宛ての断片データが存在する場合、断片データを受信処理部22に送信すればよい。
第1実施形態、第2実施形態、又は第3実施形態のさらに他の変形例では、管理システム3の状態管理部32は、送信者システム1の指示受付部11あるいは受信者システム2の指示受付部21の要求に応じて、要求元のシステムから送信あるいは要求元のシステムに送信される送信データに関する情報を、送信データ管理情報334から取得して送信してもよい。指示受付部11あるいは指示受付部21は、受信した送信データ管理情報に基づいて、送信データおよび断片データの一覧や処理状態を表示して、ユーザに閲覧させることができる。なお、送信データ管理情報334に格納される同一の送信データに関連する情報は、処理状態が更新される度にレコードが追加されてもよい。このようにすれば、送信データおよび各断片データの処理状態の履歴を残すことができる。
第1実施形態、又は第2実施形態のさらに他の変形例では、送信者システム1の指示受付部11は、ユーザからデータ送信指示を受け付ける際に、受信者へのメッセージ(例えば、送信データに関する説明や作業指示など)を操作画面で受け付けてもよい。この場合、送信処理部14は、このメッセージを含む通知情報を管理システム3に送信する。状態管理部32は、メッセージを含む通知情報を受信すると、当該通知情報に基づいて対応するレコード(メッセージを含む)を生成して、送信データ管理情報334に追加する。受信者システム2の指示受付部21は、状態管理部32から受信した送信データ管理情報に基づいて、送信データおよび断片データの一覧や処理状態に加えてメッセージを表示して、ユーザに閲覧させることができる。なお、第3実施形態では、指示受付部11は、ユーザからデータ送信の登録を受け付ける際に、受信者へのメッセージを操作画面で受け付けてもよい。この場合、指示受付部11は、このメッセージを含む登録情報を管理システム3に送信する。状態管理部32は、メッセージを含む登録情報を受信すると、当該登録情報に基づいて対応するレコード(メッセージを含む)を生成して、送信データ管理情報334に追加する。受信者システム2の指示受付部21は、状態管理部32から受信した送信データ管理情報に基づいて、送信データの一覧や処理状態に加えてメッセージを表示して、ユーザに閲覧させることができる。なお、メッセージは、テキストデータに限られず、画像や動画であってもよい。
第2実施形態のさらに他の変形例では、管理システム3を省略し、受信者の情報及び受信装置の情報を送信者システム1に記憶するようにしてもよい。
なお、第1〜第3実施形態において、送信処理部14と受信処理部41は、例えばTCP(Transmission Control Protocol)やUDP(User Datagram Protocol)を用いて、断片データをさらに複数のパケットやデータグラムに分割して送受信してもよい。送信処理部42と受信処理部22も同様である。このようにすれば、断片データのデータサイズが大きい場合でも、送信遅延を低減することができる。
なお、第1〜第3実施形態において、送信者システム1は受信者システム2と同様の機能を備えていてもよいし、受信者システム2は送信者システム1と同様の機能を備えてもよい。つまり、送信者システム1と受信者システム2は、相互に送信データを送信できてもよい。
図2、及び図3で示した各システムの機能構成は、これらのシステムの構成を理解容易にするために、主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本発明が制限されることはない。各システムの構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、1つの構成要素がさらに多くの処理を実行するように分類することもできる。また、各構成要素の処理は、1つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。また、各構成要素の処理又は機能の分担は、本発明の目的及び効果を達成できるのであれば、図示したものに限られない。
また、図8、図9、図11、及び図12で示したシーケンスの処理単位は、各システムの処理を理解容易にするために、主な処理内容に応じて分割したものである。処理単位の分割の仕方や名称によって、本発明が制限されることはない。各システムの処理は、処理内容に応じて、さらに多くの処理単位に分割することもできる。また、1つの処理単位がさらに多くの処理を含むように分割することもできる。さらに、本発明の目的及び効果を達成できるのであれば、上記のシーケンスの処理順序も、図示した例に限られるものではない。
本発明は、上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した各実施形態は、本発明を分かりやすく説明するために詳細に説明したものであり、本発明が、必ずしも説明した全ての構成要素を備えるものに限定されるものではない。また、ある実施形態の構成の一部を、他の実施形態の構成に置き換えることが可能であり、ある実施形態の構成に、他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現されてもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリーや、ハードディスク、SSD等の記憶装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
本発明は、データ転送システム、送信者システム、受信者システム、及び中継システムだけでなく、サーバ装置、端末装置、データ転送方法、コンピュータ読み取り可能なプログラム、などの様々な態様で提供することができる。