JPWO2015011840A1 - Differential data transfer system and method - Google Patents
Differential data transfer system and method Download PDFInfo
- Publication number
- JPWO2015011840A1 JPWO2015011840A1 JP2015528091A JP2015528091A JPWO2015011840A1 JP WO2015011840 A1 JPWO2015011840 A1 JP WO2015011840A1 JP 2015528091 A JP2015528091 A JP 2015528091A JP 2015528091 A JP2015528091 A JP 2015528091A JP WO2015011840 A1 JPWO2015011840 A1 JP WO2015011840A1
- Authority
- JP
- Japan
- Prior art keywords
- data
- file
- latest
- receiving device
- identifier
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
データ転送に要する時間を短くすること、およびチェックアウト時またはデータ持出の承認時からユーザがデータを利用可能になるまでの時間を短縮することを目的とする。転送を要求するデータを複数の部分データに分割し、当該部分データのハッシュ値を送信することで各部分データの所有の有無を複数の送信装置に問合せ、各部分データを所有する送信装置の中で最も受信装置に近い送信装置から当該部分データを転送する。またチェックイン中やワークフローの案件が未承認の状態で事前に送信装置から受信装置にデータを転送し、受信装置のユーザがアクセスできない状態で格納しておき、チェックアウト後や当該案件が承認済の状態になったら直ぐアクセス権限を付与する。It aims at shortening the time required for data transfer and shortening the time from the time of checkout or approval of data take-out until the user can use the data. Dividing the data that requires transfer into multiple pieces of partial data, and sending the hash value of the partial data to inquire whether or not each piece of partial data is owned. The partial data is transferred from the transmitting device closest to the receiving device. In addition, data is transferred from the sending device to the receiving device in advance while the check-in or workflow matter is unapproved, and stored in a state that the user of the receiving device cannot access, and the matter is approved after check-out. Grant access right as soon as possible.
Description
本発明は、複数の拠点間でデータを共有するシステムおよび方法に関するものである。 The present invention relates to a system and method for sharing data among a plurality of bases.
データをクライアント側でチャンクとよばれる数キロバイトの単位に分割し、サーバが所有していない新規チャンクのみを転送する方式を適用した場合、クライアントが転送しようとしているチャンクの中身が、サーバで所有しているチャンクの中身と少しでも異なっている場合、ハッシュ値が一致しないため、クライアントは当該チャンクの中身をすべて転送する必要がある。特許文献1ではこの無駄を解決すべく、クライアント側でチャンクをさらに分割して、一致していない部分を絞り込んで転送する方式を提案している。なお、以下で述べる特徴量については特許文献1に記載されている。 When data is divided into units of several kilobytes called chunks on the client side and only new chunks that are not owned by the server are transferred, the contents of the chunk that the client is trying to transfer are owned by the server. If it is slightly different from the contents of the chunk, the hash value does not match, so the client needs to transfer all the contents of the chunk. In order to solve this waste, Patent Document 1 proposes a method in which chunks are further divided on the client side, and portions that do not match are narrowed down and transferred. Note that the feature amount described below is described in Patent Document 1.
データをクライアント側でチャンクとよばれる数キロバイトの単位に分割し、サーバが所有していない新規チャンクのみを転送する方式を適用した場合、データを更新した装置から差分のチャンクを転送する必要があるため、データを送受信する装置間のネットワークの距離が離れている場合はデータ転送時間が増大してしまう。特にグローバルに分散した拠点間でデータを転送する場合にはこの問題を避けることができない。他の従来技術の方式でも、同様にデータを更新した装置からデータを転送する必要がある。 If the client side is divided into several kilobyte units called chunks and only new chunks that are not owned by the server are transferred, it is necessary to transfer differential chunks from the device that updated the data. Therefore, when the network distance between devices that transmit and receive data is long, the data transfer time increases. This problem cannot be avoided particularly when data is transferred between globally distributed sites. In other prior art systems as well, it is necessary to transfer data from a device in which data has been updated.
また、データの同時更新による不整合を防ぐために排他制御を行う場合に、チェックアウトしてから他の装置にデータを転送するとデータ転送に時間がかかる。同様にワークフローでデータ持出を管理する場合に、データ持出が承認されてから他の装置にデータを転送するとデータ転送に時間がかかる。 In addition, when exclusive control is performed to prevent inconsistency due to simultaneous update of data, it takes time to transfer data if data is transferred to another device after checkout. Similarly, when managing data export in a workflow, it takes time to transfer data if data transfer is performed after approval of data export.
そこで、本発明は、データ転送に要する時間を短くすること、およびチェックアウト時またはデータ持出の承認時からユーザがデータを利用可能になるまでの時間を短縮することを目的とする。 Therefore, an object of the present invention is to shorten the time required for data transfer and to shorten the time from the time of checkout or approval of data take-out until the user can use the data.
上述した課題を解決し、目的を達成するために、本発明にかかる差分データ転送システムは、データ受信装置と複数のデータ送信装置とが互いにネットワークで接続された差分データ転送システムであって、データ受信装置は、ファイルと、前記ファイルのファイル識別子と、前記ファイルの分割データと、前記分割データの識別子およびハッシュ値とを対応付けたファイル構成情報とを記憶する受信装置記憶部と、複数のデータ送信装置から最新ファイルを記憶している旨の通知を受信し、または前記通知を行ったデータ送信装置の中から前記データ受信装置に最短距離にあるデータ送信装置に対して前記最新ファイルと前記受信装置記憶部が記憶するファイルとの差分となる分割データの要求を送信し、または前記最短距離にあるデータ送信装置から前記差分となる分割データを受信する受信装置通信部と、前記最新ファイルのファイル構成情報と、前記受信装置記憶部が記憶するファイル構成情報とに基づいて、前記差分となる分割データの識別子およびハッシュ値を含む差分ハッシュ情報を生成して前記複数のデータ送信装置に送信する差分データ生成部と、前記最新ファイルを記憶している旨を受信したデータ送信装置の中で前記データ受信装置に最短距離にあるデータ送信装置を特定する経路選択部と、前記受信装置記憶部が記憶する分割データと、前記最短距離にあるデータ送信装置から受信した前記差分となる分割データとに基づいて、最新のファイルを復元する復元部と、を備え、前記複数のデータ送信装置のそれぞれは、前記ファイルの識別子と、前記ファイルの分割データと、前記分割データの識別子とを対応付けて記憶する送信装置記憶部と、前記データ受信装置から前記差分ハッシュ情報と前記最新ファイルの識別子を受信し、または前記最新ファイルを記憶していると判定された場合に、前記差分となる分割データおよびその旨を前記データ受信装置に送信する送信装置通信部と、前記データ受信装置から受信した前記最新ファイルの識別子に基づいて、自身が記憶するファイルが最新であるか否かを判定する判定部と、を備えることを特徴とする差分データ転送システムとして構成される。 In order to solve the above-described problems and achieve the object, a differential data transfer system according to the present invention is a differential data transfer system in which a data reception device and a plurality of data transmission devices are connected to each other via a network. A receiving device storing a file, a file identifier of the file, divided data of the file, file configuration information in which the identifier and hash value of the divided data are associated, and a plurality of data The notification that the latest file is stored from the transmission device is received, or the latest file and the reception are received from the data transmission device that has made the notification to the data transmission device that is in the shortest distance to the data reception device A request for divided data that is a difference from the file stored in the device storage unit is transmitted, or data at the shortest distance Based on the receiving device communication unit that receives the divided data that is the difference from the communication device, the file configuration information of the latest file, and the file configuration information that is stored in the receiving device storage unit, the divided data that is the difference A differential data generation unit that generates differential hash information including an identifier and a hash value and transmits the differential hash information to the plurality of data transmission devices, and the data reception device among the data transmission devices that have received information that the latest file is stored Based on the path selection unit that identifies the data transmission device at the shortest distance, the divided data stored in the reception device storage unit, and the divided data that is the difference received from the data transmission device at the shortest distance, A restoration unit that restores the latest file, and each of the plurality of data transmission devices includes an identifier of the file and the file. The divided data and the identifier of the divided data are stored in association with each other, and the differential hash information and the identifier of the latest file are received from the data receiving device, or the latest file is stored. If it is determined that the divided data becomes the difference, the transmission device communication unit that transmits the divided data to the data reception device and the identifier of the latest file received from the data reception device stores the divided data. And a determination unit that determines whether or not the file to be updated is the latest.
また、本発明は、差分データ転送方法としても把握される。 The present invention is also grasped as a differential data transfer method.
本発明によれば、データ転送に要する時間を短くすること、およびチェックアウト時またはデータ持出の承認時からユーザがデータを利用可能になるまでの時間を短縮することができる。 According to the present invention, the time required for data transfer can be shortened, and the time from the time of checkout or approval of data export to the time when the user can use the data can be shortened.
以下に添付図面を参照して、本発明にかかる差分データ転送システムおよび差分データ転送方法の実施の形態を詳細に説明する。 Exemplary embodiments of a differential data transfer system and a differential data transfer method according to the present invention will be explained below in detail with reference to the accompanying drawings.
図1は、本実施の形態における差分データ転送システムの概略を例示する図である。図示するように、差分データ転送システムは、データ受信装置20と、n台のデータ送信装置40-1〜40-nと、最新データ管理装置30を備え、これらがネットワーク10を介して相互に情報を送受信できるよう設計されている。データ送信装置40-1〜40-nはすべて同じ構成をとる。以下、任意の一つをデータ送信装置40と呼ぶ。なお、以下では、データ送信装置40と最新データ管理装置30とを物理的に2つの筺体に分けた前提で説明しているが、一つのデータ送信装置40が最新データ管理装置30を備えていてもよい。また、各装置が送信側と受信側のどちらの役割にもなるのが一般的な構成であるが、説明を分かりやすくするために、データ受信に必要な機能を有する装置をデータ受信装置20、データ送信に必要な機能を有する装置をデータ送信装置40として区別して説明する。
FIG. 1 is a diagram illustrating an outline of a differential data transfer system according to the present embodiment. As shown in the figure, the differential data transfer system includes a
なお、以下ではファイルを分割して得られるデータをチャンクとよび区別することにする。チャンクの実体はバイト列からなるデータに過ぎないため、以下で説明する実施の形態は、チャンクをデータと読み替えても正しく動作する。本実施形態では、最新データ管理装置30は、データ受信装置20から受信するハッシュ値とデータ受信装置20が要求する最新のファイルのハッシュ値を比較して差分データを特定し、差分データのチャンクを所有しているデータ送信装置40-1〜40-nの中でデータ受信装置20に最も近いデータ送信装置40から当該チャンクを送信させることによりデータ転送の高速化を図る。また、以下ではファイルの最新バージョンを最新データ管理装置30が管理している前提で説明しているが、データ受信装置20やデータ送信装置40が管理していてもよい。
In the following, data obtained by dividing a file is referred to as a chunk. Since the substance of the chunk is only data composed of byte strings, the embodiment described below operates correctly even if the chunk is read as data. In the present embodiment, the latest
図2を用いて本実施形態における装置間のデータフローの概要を説明する。データ受信装置20が古いバージョンのファイル200を保持しており、当該ファイル200の最新バージョンのファイル400の部分データであるチャンクをデータ送信装置40からデータ受信装置20に転送する場合の例で説明する。
The outline of the data flow between apparatuses in this embodiment will be described with reference to FIG. An example in which the
まずデータ受信装置20は、ファイル200の最新バージョンを確認するために、ファイル200を示すファイル識別子204を最新データ管理装置30へ送信する。ファイル識別子204の例を図9に示す。この例では、そのファイルが作成されたプロジェクトを識別するためのプロジェクトIDとファイル名とそのファイルのバージョンの組合せによりファイルを特定する。図9に示す例では、ファイル200のファイル名はF1.txtであり、そのバージョンが002であることを示している。また、そのファイル200は、プロジェクトIDがP00001であるプロジェクトで作成されたものであることを示している。
First, the
次に、最新データ管理装置30は、受信したファイル識別子204に対応する最新のファイル400のハッシュ値302を含むファイル構成情報303とファイル識別子404をデータ受信装置20に送信する。ハッシュ値302、ファイル構成情報303の具体的な内容については後述する。
Next, the latest
次にデータ受信装置20は、差分データのチャンクを保持しているか否かを問い合わせるために、上述したファイル構成情報303に含まれるチャンクと保有しているファイルとの差分となるチャンクとそのチャンクのハッシュ値から構成される差分ハッシュ情報225を複数のデータ送信装置40-1〜40-nに送信する。
Next, in order to inquire whether or not the chunk of the differential data is held, the
それぞれのデータ送信装置40は、データ受信装置20から受信した差分ハッシュ情報225と、保有しているファイルのチャンクのハッシュ値を比較して、保有しているチャンクと、差分ハッシュ情報225に含まれるチャンク識別子のチャンクとハッシュ値を含む差分ハッシュ情報425をデータ受信装置20に送信する。
Each
次にデータ受信装置20は、差分ハッシュ情報425を受け取ったデータ送信装置40のなかから最も近いものを特定し、そのデータ送信装置40に、差分のチャンクの転送を要求するために、ファイル識別子404と上述した差分ハッシュ情報225を送信する。次に、当該差分ハッシュ情報225を受信したデータ送信装置40は当該情報に含まれているハッシュ値432に対応するチャンクをデータ受信装置20に送信する。
Next, the
最後に、データ送信装置40-1〜40-nからチャンクを受信したデータ受信装置20は当該チャンクと予め保有していたチャンク202からファイル400を復元する。以上の方式によりネットワーク上でやり取りするデータの転送時間が短縮できる。
Finally, the
図3は、データ受信装置20の概略構成を例示するブロック図である。図示するように、データ受信装置20は、CPU210、メモリ212、ストレージ214、ユーザインターフェース216、通信インターフェース218、差分データ受信部290および設定部280を備え、これらが内部バス219を介して相互に情報を送受信できるように設計されている。差分データ受信部290は、チャンキング部240、ハッシュ値算出部250、ハッシュ比較部220、経路選択部230、ファイル復元部260を備え、内部バス219を介して単体でCPU210などと相互に情報を送受信することができる。
FIG. 3 is a block diagram illustrating a schematic configuration of the
まずは汎用的な構成要素について説明する。CPU210は、様々な数値計算や情報処理、機器制御などを行う中央処理装置である。メモリ212は、CPU210が直接読み書きできるRAMやROMなどの半導体記憶装置である。ストレージ214は、コンピュータ内でデータやプログラムを記憶するハードディスクや磁気テープ、フラッシュメモリ等の装置である。当該装置はデータ送信装置40から受信するファイルなどを格納する。
First, general-purpose components will be described. The
ユーザインターフェース216は、ディスプレイやマウス、キーボード等、ユーザに処理結果を出力し、かつユーザの指示を受け付けてデータ送信装置40の各構成要素に反映させるための装置である。
The
通信インターフェース218は、データ送信装置40の各構成要素のネットワーク10を介したデータの送受信を制御するための装置である。相手方と認証して通信路を確立したり、処理が完了した後や、一定時間を経過しても相手方が何の応答しなかった場合などに通信路を切断したりなどの制御をおこなう。
The
本実施例特有の構成要素は、差分データ受信部290、これを構成するチャンキング部240、ハッシュ値算出部250、ハッシュ比較部220、経路選択部230、ファイル復元部260である。これらのうち従来のデータ転送装置にはない最も特徴的な構成要素は、経路選択部230である。
The constituent elements unique to the present embodiment are a differential
差分データ受信部290は、ストレージ214に格納されているファイルの最新バージョンの取得指示を、ユーザインターフェース216を介してユーザから受け取る。差分データ受信部290は、チャンキング部240、ハッシュ値算出部250、ハッシュ比較部220、経路選択部230、ファイル復元部260などを制御して、通信インターフェース218を介してハッシュ値222およびチャンク242を送受信し、メモリ212またはストレージ214に格納する。データ転送処理の一連の動作フローについては後で図6を用いて説明する。
The differential
チャンキング部240は、ストレージ214に格納されているファイルを読み取ってチャンクに分割し、メモリ212またはストレージ214に一時的に格納する。
The
ハッシュ値算出部250は、メモリ212またはストレージ214に格納されているファイルやチャンクを読み取り、ハッシュ値を算出し、メモリ212またはストレージ214に出力する装置である。ハッシュ値を導出するハッシュ関数として、例えばMD5やSHA-1などが知られている。
The hash
設定部280は、最新データ管理装置30やデータ送信装置40からの応答を待つ待機時間の上限や、チャンキングなどの処理に必要なパラメータを設定する。これらのパラメータはユーザインターフェース216を介してユーザによって設定され、チャンキング部240、ハッシュ値算出部250などに反映される。
The
なお、差分データ受信部290、これを構成するチャンキング部240、ハッシュ値算出部250、ハッシュ比較部220、経路選択部230、およびファイル復元部260については、それぞれの各部が単体で処理を実行してもよいし、それぞれの装置はプログラムのみを具備し、CPU210が当該プログラムをメモリ212に読み込んで実行してもよい。
Note that each of the differential
図4は、最新データ管理装置30の概略構成を例示するブロック図である。図示するように最新データ管理装置30は、CPU310、メモリ312、ストレージ314、ユーザインターフェース316、通信インターフェース318、および最新データ管理部390を備え、これらが内部バス319を介して相互に情報を送受信できるように設計されている。
FIG. 4 is a block diagram illustrating a schematic configuration of the latest
汎用的な構成要素であるCPU310、メモリ312、ストレージ314、ユーザインターフェース316、通信インターフェース318については、図3と同様の機能を有するので説明を割愛する。本実施例特有で従来のデータ転送装置にはない特徴的な構成要素は、最新データ管理部390である。
Since the
最新データ管理部390は、通信インターフェース318を介してデータ受信装置20からファイル識別子204を受信してメモリ312に一時的に格納し、当該ファイル識別子204に対応するファイルを構成するチャンクのハッシュ値をストレージ314から取得し、メモリ312、ストレージ314に一時的に格納し、通信インターフェース318を介してデータ受信装置20に送信するための装置である。この一連の処理の動作フローについては後で図6を用いて説明する。
The latest
図5は、データ送信装置40の概略構成を例示するブロック図である。図示するようにデータ送信装置40は、CPU410、メモリ412、ストレージ414、ユーザインターフェース416、通信インターフェース418、および差分データ送信部490を備え、これらが内部バス419を介して相互に情報を送受信できるように設計されている。差分データ送信部490は、チャンキング部450、ハッシュ値算出部420、ハッシュ比較部430、およびチャンク送信部440を備え、内部バス419を介して単体でCPU310などと相互に情報を送受信することができる。
FIG. 5 is a block diagram illustrating a schematic configuration of the
汎用的な構成要素であるCPU410、メモリ412、ストレージ414、ユーザインターフェース416、通信インターフェース418については、図3と同様の機能を有するので説明を割愛する。本実施例特有で従来のデータ転送装置にはない特徴的な構成要素は、差分データ送信部490、これを構成するチャンキング部450、ハッシュ値算出部420、ハッシュ比較部430、およびチャンク送信部440である。
General-purpose components such as the
差分データ送信部490は、通信インターフェース418を介してデータ受信装置20とハッシュ値および重複ハッシュ値406およびチャンク401を送受信するための装置である。この一連の処理の動作フローについては後で図6を用いて説明する。なお、差分データ送信部490、これを構成するチャンキング部450、ハッシュ値算出部420、ハッシュ比較部430、およびチャンク送信部440については、それぞれの装置が単体で処理を実行してもよいし、それぞれの装置はプログラムのみを具備し、CPU410が当該プログラムをメモリ412に読み込んで実行してもよい。
The differential
図6と図7および図8を用いて、データ受信装置20、最新データ管理装置30、およびデータ送信装置40の代表的なデータ転送処理を例示する。図3の差分データ受信部290と図4の最新データ管理部390、および図5の差分データ送信部490とが、以下の手順でネットワーク10を介したデータ転送を行う。差分データ受信部290、最新データ管理部390、および差分データ送信部490は、それぞれ通信インターフェース218、通信インターフェース318、通信インターフェース418を介して相互にデータ転送を行うが、ここでは説明を簡潔にするために、通信インターフェースの処理の記載は省略する。
A typical data transfer process of the
まず、データ受信装置20のユーザインターフェース216が、ユーザから最新バージョンを要求するファイル200の選択を受け付ける(S600)。データ受信装置20の差分データ受信部290は、当該ファイル200が最新であるかどうかを確認するために当該ファイル200のファイル識別子204を最新データ管理装置30に送信する(S601)。ファイル識別子204の例を図9に示す。
First, the
最新データ管理装置30の最新データ管理部390は、データ受信装置20から受信したファイル識別子204に対応するファイル200の最新バージョンをバージョン管理テーブルで参照し、最新バージョンを示すファイル識別子304を取得する。次に、最新データ管理部390は、当該ファイル識別子304を検索キーとしてハッシュ管理テーブル307からファイル構成情報303によって構成されるファイルのチャンクのハッシュ値を取得する(S602)。
バージョン管理テーブルの例を図10に示す。図10の例の場合は、プロジェクトIDとファイル名が一致するレコードのバージョンの値を参照することにより最新バージョンを確認できる。例えば、ファイル名F1.txtで識別されるファイルの最新バージョンは003であることが分かる。The latest
An example of the version management table is shown in FIG. In the example of FIG. 10, the latest version can be confirmed by referring to the version value of the record whose project ID and file name match. For example, it can be seen that the latest version of the file identified by the file name F1.txt is 003.
また、ハッシュ管理テーブル307の例を図11に示す。図11に示すように、ハッシュ管理テーブル307は、ファイル識別子と、そのファイル識別子によって識別されるファイルを分割したチャンクのチャンク識別子と、そのチャンクのハッシュ値とが対応付けて記憶されている。例えば、図11では、F1.txtによって識別されるバージョン002のファイルは、チャンク識別子001および002によって識別される2つのチャンクに分割されて管理され、各チャンクのハッシュ値が、それぞれM9LA7EU2F、EPJVU884WEであることを示している。
An example of the hash management table 307 is shown in FIG. As shown in FIG. 11, the hash management table 307 stores a file identifier, a chunk identifier of a chunk obtained by dividing a file identified by the file identifier, and a hash value of the chunk in association with each other. For example, in FIG. 11, the file of
また、ファイル構成情報の例を図13に示す。図13に示すように、ファイル構成情報は、ファイルごとに、上述したチャンク識別子とハッシュ値とが対応付けて記憶されている。図13では、例えば、チャンク識別子001で識別されるチャンクのハッシュ値はM9LA7EU2Fであることを示している。また、図13の例で示されるファイルは、チャンク識別子001〜005の5つのチャンクによって構成されていることを示している。最新データ管理部390は、ファイルが最新の状態に更新される都度、ファイル識別子をキーとしてハッシュ管理テーブル307にアクセスし、データ受信装置20から受信したファイルを構成するチャンクのハッシュ値をハッシュ管理テーブル307に格納するとともに、ファイル構成情報を格納する。
An example of the file configuration information is shown in FIG. As shown in FIG. 13, the file configuration information stores the above-described chunk identifier and hash value in association with each file. In FIG. 13, for example, the hash value of the chunk identified by the
S601が終了すると、データ受信装置20のチャンキング部240とハッシュ値算出部250は、図18に示すファイル構成出力処理を実行する(S603)。チャンキング部240は、ファイル200を複数のチャンク202とよばれる部分データに分割する(チャンキング)。ハッシュ値算出部250は、当該チャンク202のハッシュ値208を算出する。
When S601 ends, the
図18は、ファイル構成出力処理の処理手順を示すフローチャートである。図18に示すように、チャンキング部240は、S601で送信したファイル識別子が示すファイル200をストレージ214やメモリ212から取得し(S1800)、そのファイル200に対して上述したチャンキング処理を実行する(S1801)。そして、チャンキング部240は、分割したそれぞれのチャンクにチャンク識別子に関連付けて出力する(S1802)。
FIG. 18 is a flowchart showing the processing procedure of the file configuration output process. As shown in FIG. 18, the
ハッシュ値算出部250は、ストレージ214やメモリ212に記憶された各チャンクのハッシュ値を算出し(S1803)、図13に示したようなファイル構成情報を生成する(S1804)。このS1804の処理が終了すると、ファイル構成出力処理が終了する。
The hash
図16にチャンキングの結果、ファイル200をチャンク202-1〜202-4の4つのチャンク202に分割し、チャンク202-1〜202-4からハッシュ値208-1〜208-4を算出した例を示す。図16では、チャンキング部240がファイル200を4つのチャンクに分割し、ハッシュ値算出部250がそれぞれのチャンクのハッシュ値を算出していることがわかる。続いて、図6に戻って、S604以降の処理について説明する。
FIG. 16 shows an example in which, as a result of chunking, file 200 is divided into four
データ受信装置20の差分データ受信部290は、ステップS603で得られるチャンク202とファイル構成情報203とファイル識別子204をメモリ212またはストレージ214に一時的に格納する(S604)。ここでチャンク202をストレージ214に格納する例を、図12に示す。この例ではファイル識別子204を名称とするフォルダにチャンク識別子をチャンク202のファイル名として格納する。図12では、ファイル名P00001_F1.txt_002で識別されるファイルが4つのチャンクに分割され、ストレージ214に格納されていることがわかる。なお、ステップS603およびステップS604の処理は、ステップS600の前に行っていてもよい。
The differential
S602の処理が終了すると、最新データ管理装置30の最新データ管理部390は、ステップ(S602)で取得したファイル構成情報303とファイル識別子304をデータ受信装置20に送信する(S605)。データ受信装置20の差分データ受信部290は、最新データ管理装置30から受信したファイル構成情報303とファイル識別子304をメモリ212またはストレージ214に一時的に格納する(S606)。
When the processing of S602 ends, the latest
データ受信装置20の差分データ受信部290のハッシュ比較部220は、最新データ管理装置30から受信し、メモリ212またはストレージ214に格納したファイル構成情報303と、ハッシュ値算出部250がファイル構成出力処理で生成し、メモリ212またはストレージ214に格納したファイル構成情報203とを入力値としてハッシュ比較処理を実行し、重複ハッシュ情報226と差分ハッシュ情報226を生成する(S607)。ハッシュ比較処理は図14を用いて後で説明する。差分ハッシュ情報226に含まれるハッシュ値222はファイル200と最新バージョンのファイル400との差分データのチャンクのハッシュ値を意味する。
The
続いて、図7に進み、データ受信装置20の差分データ受信部290は、前記差分のチャンクの保有の有無を問い合わせるために、前記差分ハッシュ情報226と前記ファイル識別子304を複数のデータ送信装置40-1〜40-nに送信する(S701)。
Subsequently, proceeding to FIG. 7, the differential
データ送信装置40の差分データ送信部490は、データ受信装置20から受信した差分ハッシュ情報226とファイル識別子304を取得し、当該ファイル識別子304が示す最新バージョンのファイル400を保有しているか否かを判定し、その結果を確認する(S702)。データ送信装置40の差分データ送信部490は、確認の結果、最新バージョンのファイル400を保有している場合はステップS708へ、保有していない場合はステップS704へ進む(S703)。
The differential
差分データ送信部490のチャンキング部450は、ファイル識別子304が示す最新バージョンのファイルに類似するファイル400を特定し、当該ファイル400を入力値としてチャンキング処理を実行し、保有ファイルのチャンク452を生成する(S704)。例えば、チャンキング部450は、ファイル識別子のうち、プロジェクトIDおよびファイル名が同じであってバージョンが異なるファイル、あるいはファイル名が同じであって、プロジェクトIDおよびバージョンが異なるファイルを類似するファイルとして特定する。
The
差分データ送信部490のハッシュ値算出部420は、前記保有ファイルのチャンク452を入力値としてハッシュ値算出処理を実行し、保有ファイルのチャンク452のハッシュ値454を算出する。次に当該ハッシュ値454から図13に示したようなファイル構成情報403を生成する(S705)。
The hash
差分データ送信部490のハッシュ比較部430は、ステップS705で生成したファイル構成情報403とステップS702で取得した差分ハッシュ情報226を入力値としてハッシュ比較処理を実行し、差分ハッシュ情報425を生成する(S706)。例えば、プロジェクトIDが異なる場合であっても最新バージョンと内容が同じであれば差分ハッシュ情報425は差分ハッシュ情報226と同じものとなる一方、最新バージョンと内容が異なる場合には、そのハッシュ値は、最新バージョンのファイルの差分ハッシュ情報226に含まれるハッシュ値とは異なる値となる。差分データ送信部490のチャンク送信部440は、当該差分ハッシュ情報425をデータ受信装置20に送信する(S707)。
The
一方、S703で最新バージョンのファイル400を保有している場合、差分データ送信部490のチャンク送信部440は、その旨を通知する(S708)。差分データ送信部490のチャンク送信部440は、そのファイルのファイル構成情報403については既に最新データ管理装置30から取得しているため、その旨のみ通知している。
On the other hand, when the latest version of the
データ受信装置20の差分データ受信部290は、データ送信装置40から受信した差分ハッシュ情報425を当該データを送信したデータ受信装置の名称と共にメモリ212またはストレージ214に一時的に格納する(S709)。
The differential
データ受信装置20の差分データ受信部290は、ステップS704で差分ハッシュ情報226を送信した全てのデータ送信装置40-1〜40-nから重複ハッシュ情報426を受信した場合、またはタイムアウトになった場合にステップS800に進み、それ以外の場合は待機して、他のデータ送信装置40のステップS709の処理を繰り返す(S710)。
When the differential
そして、図8に進み、データ受信装置20の差分データ受信部290の経路選択部230は、S607で生成された差分ハッシュ情報226に含まれるハッシュ値222ごとに、ステップS709でメモリ212またはストレージ214に一時的に格納した差分ハッシュ情報425に含まれる差分ハッシュ値の中で、そのハッシュ値222と値が同一であるハッシュ値432を検索し、対応するデータ受信装置の名称のリストを取得する(S801)。
Then, proceeding to FIG. 8, the
差分データ受信部290の経路選択部230は、S801で検索したハッシュ値222ごとに、その値に対応するチャンクの転送を要求する要求先として、データ受信装置の名称のリストの中から、データ受信装置20と各データ受信装置のネットワーク距離が最短であるデータ受信装置を選択する(S802)。差分データ受信部290の経路選択部230は、ネットワーク距離が最短であるか否かの判断を、例えば、IPアドレスを確認することによって行う。
The
差分データ受信部290の経路選択部230は、差分のチャンクを要求するために、選択したデータ送信装置40に対して、そのハッシュ値222と対応するチャンク識別子を送信する(S803)。差分データ送信部490のチャンク送信部440は、データ受信装置20から受信したハッシュ値222に対応するチャンクとチャンク識別子の組合せをデータ受信装置20に送信する(S804)。
The
差分データ受信部290のファイル復元部260は、データ送信装置40から受信したチャンクを、受信したチャンク識別子207をキーにしてストレージ214に一時的に格納する(S805)。ここで要求した全てのチャンク424を受信するまで当該処理を継続し、完了したらステップS806の処理に進む。
The
差分データ受信部290のファイル復元部260は、ステップS607でメモリ212またはストレージ214に一時的に格納したファイル構成情報303を読み出すとともに、ステップS805でストレージ214に格納したチャンク424、およびステップS603でストレージ214に格納したチャンク202を読み出し、そのファイル構成情報303に含まれるチャンク識別子の順にチャンクを結合して最新バージョンのファイル400を復元する(S806)。
The
次に、図14を用いてハッシュ比較処理の例を説明する。図14の(A)は保有しているファイルのファイル構成情報203であり、図14の(B)は差分の有無を確認する対象となるファイルのファイル構成情報303である。図14の(C)はハッシュ比較処理で得られる差分ハッシュ値と対応するチャンク識別子からなる差分ハッシュ情報である。図14の(D)はハッシュ比較処理で得られる重複ハッシュ値と対応するチャンク識別子からなる重複ハッシュ情報である。
Next, an example of hash comparison processing will be described with reference to FIG. 14A shows the
ハッシュ比較処理では、まずファイル構成情報303のハッシュ値について当該ハッシュ値と値が一致するものがファイル構成情報203にあるか検索し、一致するものがある場合は当該レコードを重複ハッシュ値に分類し、一致するものがない場合は当該レコードを差分ハッシュ値に分類する。例えば図14の(B)のハッシュ値「AAAA」と「BBBB」と「CCCC」はそれぞれ図14の(A)の1レコード目から3レコード目に存在するため図14の(D)に示すように重複ハッシュ値に分類する。反対に図14の(B)のハッシュ値「XXXX」と「YYYY」はそれぞれ図14の(A)のどのレコードにも存在しないためそのような差となったレコードを図14の(C)に示すように重複ハッシュ値に分類する。
In the hash comparison process, first, the
以上、図1〜図17を用いて、本実施例のシステム構成及びデータ転送方式について説明した。本実施例によって、チャンクを有する複数のデータ送信装置の中でネットワーク距離が最短であるデータ送信装置からチャンクを取得できるようになるため、従来方式と比較してよりデータ転送の総時間を短縮することができる。また、データを転送するネットワークの距離が短くなることでデータ転送時間を短縮できる。またデータ転送処理が複数の装置に分散され、さらにデータが転送される経路も分散されることにより、単位データサイズあたりの利用可能な通信帯域が相対的に大きくなり、トータルのデータ転送時間が短縮できる。 The system configuration and data transfer method of the present embodiment have been described above with reference to FIGS. According to the present embodiment, a chunk can be acquired from a data transmission device having the shortest network distance among a plurality of data transmission devices having chunks, so that the total data transfer time is further reduced as compared with the conventional method. be able to. Further, the data transfer time can be shortened by shortening the distance of the network for transferring data. In addition, the data transfer process is distributed to multiple devices, and the route for transferring data is also distributed, so the available communication bandwidth per unit data size becomes relatively large and the total data transfer time is shortened. it can.
なお、本実施例では、最新のバージョンをデータ受信装置20が取得する場合について説明しているが、ユーザ所望の特定のバージョン(例えば、最新よりも1つ前のサイクルのファイルのバージョン)が指定され、そのバージョンのファイルのファイル構成情報や差分ハッシュ情報を受信し、復元してもよい。
In this embodiment, the case where the
次に、実施例1の最新データ管理装置30においてファイル更新のロックを管理し、最新データを常に同期するためにデータ送信装置40が更新データをデータ受信装置20に配信する場合の実施の形態を図面に基づいて詳細に説明する。
Next, an embodiment in which the latest
図15を用いて本実施形態における装置間のデータフローの概要を説明する。まず初めにデータ送信装置40がチェックインして(ファイルを排他制御してロックして)ファイルを更新するために、更新するファイル400のファイル識別子404を最新データ管理装置30に送信する。
The outline of the data flow between apparatuses in this embodiment will be described with reference to FIG. First, the
次に最新データ管理装置30がチェックインを通知するために、そのファイル識別子404をデータ受信装置20に送信する。データ受信装置20のユーザは、この通知により、そのファイルがロックされたことがわかる。
Next, the latest
次にデータ受信装置20は、暫定的に差分のチャンクの転送を要求するために、送信されたファイル識別子404とデータ受信装置20が現在所有しているファイル識別子が示すファイルのファイル構成情報203をデータ送信装置40に送信する。
Next, the
次に、データ送信装置40が差分のチャンクと更新後のファイル構成情報403をデータ受信装置20に送信する。ここでデータ送信装置40がファイル400を更新するたびに、更新に対応する差分データのチャンクとファイル構成情報403をデータ受信装置20に送信する処理を繰り返す。データ受信装置20では、差分データのチャンクとファイル構成情報403をデータ送信装置40から受信すると、実施例1の場合のように、S805およびS806と同様の処理を繰り返す。
Next, the
次に、データ送信装置40がファイルの更新を終了してチェックアウトするために最新データ管理装置30に、更新終了時点の最新のファイル識別子404と更新後のファイル構成情報403を最新データ管理装置30に送信する。最後に、データ送信装置40がチェックアウトを通知するためにファイル識別子404をデータ受信装置20に送信する。
Next, in order for the
図15を用いて、データ受信装置20、最新データ管理装置30、およびデータ送信装置40の代表的なデータ転送処理を例示する。本実施形態における処理フローは、チェックイン、差分データ転送、チェックアウトの3つから構成する。初めにチェックインの処理フローを説明する。
A typical data transfer process of the
まず、ユーザがデータ送信装置40のユーザインターフェース416を介してファイル400に対してチェックインを指示し、ユーザインタフェース416がその指示を受け付けると、データ送信装置40は、当該ファイル400のファイル識別子404を最新データ管理装置30に送信する。
First, when the user instructs check-in to the
最新データ管理装置30の最新データ管理部390は、メモリ312またはストレージ314に格納しているロック管理情報を参照して、受信したファイル識別子404のロック有無を確認し、ロック状態(locked)であればロック状態(locked)であることをデータ送信装置40に送信する。非ロック状態(unlocked)であればロック管理情報の当該レコードのロック有無およびユーザIDをそれぞれロック状態(locked)とチェックインを要求しているユーザIDの値で更新し、ファイル識別子404のバージョンを暫定的に新しいバージョンに更新したファイル識別子304をデータ送信装置40に送信する。
The latest
図17にロック管理情報の例を示す。ロック有無の値が「locked」の場合はチェックイン中でファイル識別子が示すファイルがロックされていることを意味する。図17では、ファイル名F1.txtのバージョン002のファイルはロックされておらず、ファイル名F1.txtのバージョン003のファイルはユーザU0001によってロックされていることを示している。
FIG. 17 shows an example of lock management information. When the value of lock presence / absence is “locked”, it means that the file indicated by the file identifier is locked during check-in. FIG. 17 shows that the
次に最新データ管理装置30の最新データ管理部390は、チェックインを通知するために全てのデータ受信装置20にファイル識別子404を送信する。データ受信装置20の差分データ受信部290では、受信したファイル識別子404に対応するファイル200をデータ受信装置20のユーザが更新できないように、アクセスを制限する。
Next, the latest
次に、差分データ転送の処理フローを説明する。ユーザがデータ送信装置40のユーザインターフェース416を介してファイル400を更新すると、データ送信装置40の差分データ送信部490は、ファイル識別子404を引数として図18に示すファイル構成出力処理を実行して、更新後のファイル構成情報403を生成する。またファイル構成情報403の更新前後を比較し、ハッシュ値が異なる更新後のチャンクとファイル識別子404と更新後のファイル構成情報403をデータ受信装置20に送信する。
Next, the difference data transfer process flow will be described. When the user updates the
次にデータ受信装置20の差分データ受信部290は、ファイル識別子404と更新後のチャンクと更新後のファイル構成情報403を受信し、当該ファイル構成情報403に基づいて受信したチャンクと所有していたチャンクをファイル識別子404に対応付けてメモリ212またはストレージ214に格納する。上記の差分データ転送の処理フローは、ユーザがデータ送信装置40のユーザインターフェース416を介してファイル400を更新する度に実行する。
Next, the differential
次に、チェックアウトの処理フローを説明する。次に、ユーザがデータ送信装置40のユーザインターフェース416を介してファイル400に対してチェックアウトを指示すると、データ送信装置40の差分データ送信部490はファイル識別子404とファイル構成情報403を最新データ管理装置30に送信する。
Next, the checkout processing flow will be described. Next, when the user instructs the
最新データ管理装置30の最新データ管理部390は、メモリ312またはストレージ314に格納しているロック管理情報において、受信したファイル識別子404に対応するレコードのロック有無の値を非ロック状態(unlocked)に更新する。
The latest
次に最新データ管理装置30の最新データ管理部390は、チェックアウトを通知するためにデータ送信装置40から受信した最新のファイル識別子404をデータ受信装置20に送信する。これにより他受信装置20のユーザはファイルの最新のバージョンがわかる。最後にデータ受信装置20は、受信したファイル識別子404が示すファイルのロックを解除し、データ受信装置20のユーザが当該ファイルを更新できる状態にする。
Next, the latest
このように、実施例2では、更新されるファイルを排他制御した後、更新されたファイルの差分チャンクをその都度データ受信装置20に送信して更新しておく一方、最終的に更新された際のファイル構成情報を最新データ管理装置に送信し、排他制御を解除するので、一度にファイルを更新して排他制御を解除する場合に比べて、排他制御を解除してからユーザがデータを利用可能になるまでの時間を短縮できる。
As described above, in the second embodiment, after the file to be updated is exclusively controlled, the difference chunk of the updated file is transmitted to the
次に、実施例1の最新データ管理装置30においてデータ持出管理ワークフローを管理し、ワークフローのステータスに連動してデータ転送する場合の実施の形態を図面に基づいて詳細に説明する。
Next, an embodiment in which the data export management workflow is managed in the latest
本実施形態の最新データ管理装置30はデータ送信装置40と同様にチャンキング部350、ハッシュ値算出部320、ハッシュ比較部330、チャンク送信部340を含む差分データ送信部390を有し、各データ受信装置20、およびデータ送信装置40が所有するファイルのハッシュ値をストレージ314に有する。
The latest
図19を用いて本実施形態におけるデータ受信装置20、最新データ管理装置30、およびデータ送信装置40の代表的なデータ転送処理を例示する。本実施形態は、データ持出申請、暗号データ転送、データ持出承認、データ復号化の4つの処理フローから構成する。
A typical data transfer process of the
はじめにデータ持出申請の処理フローを説明する。ファイル400の持出の承認を得るために、ユーザがデータ送信装置40のWebブラウザを介してデータ持出管理ワークフローの申請案件情報とファイル400を最新データ管理装置30に送信する。図20に申請案件情報の例を示す。図20では、例えば、申請案件を識別するための申請案件IDがW00001の案件は、申請者user-1によって申請され、ファイル識別子F00001によって識別されるファイルを、転送先Site_Bに転送することを示している。また、現段階では、その申請は、申請者user-2によって承認済みの状態であることを示している。
First, the processing flow of data export application will be described. In order to obtain approval for the export of the
次に最新データ管理装置30のワークフロー管理部は、受信した当該申請案件情報とファイル400をメモリ312またはストレージ314に格納する。当該申請案件情報を格納する際、当該データのステータスの値を「未承認」にする。また、ワークフロー管理部は、当該ファイル400を入力として図18に示すファイル構成出力処理を実行して、ファイル構成情報403を生成する。
Next, the workflow management unit of the latest
ここで、ワークフロー管理部は、事前に登録されているデータ持出禁止情報(例えば、持ち出しが禁止されているファイルと、そのファイルに含まれるチャンクと、そのチャンクのハッシュ値とを対応付けた情報)のハッシュ値が前記ファイル構成情報403に含まれていないか検索し、含まれている場合は前記申請案件情報に警告フラグまたは警告メッセージを追加してデータ転送(例えば、データ受信装置20への送信)をブロックする。
Here, the workflow management unit associates data export prohibition information registered in advance (for example, a file prohibited to be taken out, a chunk included in the file, and a hash value of the chunk). ) Is not included in the
あるいは、ワークフロー管理部は、前記ファイル構成情報403に含まれているハッシュ値が事前に登録されているデータ転送を承認されたデータ(ファイルに含まれるチャンク)のハッシュ値のリストに含まれているかを確認し、含まれていないハッシュ値の数またはその比率が予め設定している値を超えた場合は前記申請案件情報に警告フラグまたは警告メッセージを追加してデータ転送をブロックすることとしてもよい。すなわち、ワークフロー管理部が、承認前の承認申請対象ファイルの送信を承認された場合であっても、承認前の承認申請対象ファイルの分割データのハッシュ値が、あらかじめ記憶するデータ受信装置20への送信が承認されたファイルの分割データのハッシュ値に含まれていない分割データの数または比率を判定し、その分割データの数または比率が所定の閾値を超えた場合、データ受信装置20に警告を送信して承認前の承認申請対象ファイルの送信をブロックすることも可能である。
Alternatively, in the workflow management unit, whether the hash value included in the
次に、ワークフロー管理部は、当該ファイル400に対して暗号鍵を生成し、一時的にメモリ312またはストレージ314に格納する。
Next, the workflow management unit generates an encryption key for the
次に、ワークフロー管理部は、生成したファイル構成情報403とデータ受信装置20が保有しているファイルに含まれるチャンクのハッシュ値を比較し、実施例1、2の場合と同様の差分ハッシュ情報を生成する。そして、最新データ管理部390は、当該差分ハッシュ情報に対応するチャンクを前記暗号鍵で暗号化した暗号化チャンクを生成する。そして当該暗号鍵と当該暗号チャンクを一時的にメモリ312またはストレージ314に格納する。暗号化チャンクを生成する理由は、申請案件情報に含まれるファイル(ファイル識別子によって識別されるファイル)が未承認の状態の場合には、その案件に対して承認者が検討途中であり、承認、未承認の理由等、データ受信装置20を使用する他のユーザに開示されては困る情報が記録されている場合があるためである。したがって、ワークフロー管理部は、未承認の状態にあるファイル全体、またはその部分(申請時と異なる部分。すなわち、差分ハッシュ情報に含まれるチャンク)について暗号化する。
Next, the workflow management unit compares the generated
次に、暗号データ転送の処理フローを説明する。データ受信装置20の差分データ受信部は、未配信のファイルのダウンロードを要求するため、定期的にユーザID(例えば、図20に示した申請案件情報の申請者以外のユーザ)を最新データ管理装置30に送信する。
Next, the processing flow of encrypted data transfer will be described. Since the differential data receiving unit of the
次に、最新データ管理装置30は、最新データ管理部390が、受信した前記ユーザIDに対応する未配信のデータの有無を確認し、未配信のファイルがある場合は、当該ファイルを示すファイル識別子304と上述した暗号化チャンクをデータ受信装置20に送信する。未配信のデータの確認については、例えば、ユーザIDと、ファイル識別子と、そのファイルの配信日時とを対応付けたテーブルを記憶しておき、ファイルを配信した場合にその配信日時を書込み、配信日時が書き込まれている場合には、そのファイルは配信済みであると判断する。この段階では、データ受信装置20のユーザは、一部が暗号化された状態のファイルを受信することとなる。
Next, in the latest
次に、データ持出承認の処理フローを説明する。データ持出管理ワークフローの案件を処理するために、ワークフローの承認権限を持つユーザがデータ送信装置40のWebブラウザを介してデータ持出管理ワークフローの申請案件情報とファイル400を参照し、当該申請案件情報の申請案件IDと承認アクションを最新データ管理装置30に送信する。次に最新データ管理装置30のワークフロー管理部は、受信した前記申請案件IDの申請案件情報のステータスを「承認済」に更新する。
Next, the processing flow for data export approval will be described. In order to process matters in the data export management workflow, a user with workflow approval authority refers to the data export management workflow application matter information and the
次に、データ復号化の処理フローを説明する。データ受信装置20の差分データ受信部は、暗号データ転送の処理フローで受信した暗号化チャンクの復号化に必要な暗号鍵を取得するために、前記ファイル識別子304を最新データ管理装置30に送信する。
Next, a data decoding process flow will be described. The differential data receiving unit of the
次に最新データ管理装置30の差分データ送信部は、受信した前記ファイル識別子304に対応する申請案件情報のステータスを確認し、ステータスが既に「承認済」になっている場合は、対応する暗号鍵をデータ受信装置20に送信する。
Next, the difference data transmission unit of the latest
最後に、データ受信装置20の差分データ受信部は、受信した前記暗号鍵で一時的にメモリ212またはストレージ214に格納している前記の暗号化チャンクを復号化し、復号化したチャンクをメモリ212またはストレージ214に格納する。そしてメモリ212またはストレージ214に格納している前記ファイル構成情報403に基づいてチャンクを結合し、ファイル400を復元する。
Finally, the differential data receiving unit of the
このように、実施例3では、承認が必要なファイルが未承認の状態であっても、ユーザから要求があった場合にはその一部を暗号化して送信しておき、その後承認がなされた後、暗号化した部分のデータおよび暗号化された部分のデータを復号化するための鍵を送信し、その部分のみを復号化するので、例えば、承認が下りて初めて要求されたデータを送信する場合に比べて、ユーザがデータを利用可能になるまでの時間を短縮できる。 As described above, in the third embodiment, even when a file that needs to be approved is in an unapproved state, a part of the file is encrypted and transmitted when requested by the user, and then approved. After that, the encrypted part data and the key for decrypting the encrypted part data are transmitted, and only the part is decrypted. For example, the requested data is transmitted only after approval is given. Compared to the case, the time until the user can use the data can be shortened.
10:ネットワーク
20:データ受信装置
30:最新データ管理装置
40、40-1〜40-n:データ送信装置
200、400:ファイル
202、202-1〜202-4、401:チャンク
203、303、403:ファイル構成情報
204、304、404:ファイル識別子
210、310、410:CPU
212、312、412:メモリ
214、314、414:ストレージ
216、316、416:ユーザインターフェース
218、318、418:通信インターフェース
219、319、419:内部バス
220、430:ハッシュ比較部
230:経路選択部
240、450:チャンキング部
250、420:ハッシュ値算出部
260:ファイル復元部
280:設定部
290:差分データ受信部
302:バージョン管理テーブル
307:ハッシュ管理テーブル
380:持出禁止情報管理部
385:持出禁止情報
409:ファイル構成変更情報
440:チャンク送信部
490:差分データ送信部。10: Network
20: Data receiver
30: Latest data management device
40, 40-1 to 40-n: Data transmission device
200, 400: File
202, 202-1 to 202-4, 401: Chunk
203, 303, 403: File configuration information
204, 304, 404: File identifier
210, 310, 410: CPU
212, 312, 412: Memory
214, 314, 414: Storage
216, 316, 416: User interface
218, 318, 418: Communication interface
219, 319, 419: Internal bus
220, 430: Hash comparison unit
230: Route selector
240, 450: Chunking club
250, 420: Hash value calculator
260: File restoration section
280: Setting section
290: Differential data receiver
302: Version management table
307: Hash management table
380: Prohibited information management department
385: Prohibited information
409: File structure change information
440: Chunk sending part
490: Difference data transmission unit.
Claims (9)
データ受信装置は、
ファイルと、前記ファイルのファイル識別子と、前記ファイルの分割データと、前記分割データの識別子およびハッシュ値とを対応付けたファイル構成情報とを記憶する受信装置記憶部と、
複数のデータ送信装置から最新ファイルを記憶している旨の通知を受信し、または前記通知を行ったデータ送信装置の中から前記データ受信装置に最短距離にあるデータ送信装置に対して前記最新ファイルと前記受信装置記憶部が記憶するファイルとの差分となる分割データの要求を送信し、または前記最短距離にあるデータ送信装置から前記差分となる分割データを受信する受信装置通信部と、
前記最新ファイルのファイル構成情報と、前記受信装置記憶部が記憶するファイル構成情報とに基づいて、前記差分となる分割データの識別子およびハッシュ値を含む差分ハッシュ情報を生成して前記複数のデータ送信装置に送信する差分データ生成部と、
前記最新ファイルを記憶している旨を受信したデータ送信装置の中で前記データ受信装置に最短距離にあるデータ送信装置を特定する経路選択部と、
前記受信装置記憶部が記憶する分割データと、前記最短距離にあるデータ送信装置から受信した前記差分となる分割データとに基づいて、最新のファイルを復元する復元部と、を備え、
前記複数のデータ送信装置のそれぞれは、
前記ファイルの識別子と、前記ファイルの分割データと、前記分割データの識別子とを対応付けて記憶する送信装置記憶部と、
前記データ受信装置から前記差分ハッシュ情報と前記最新ファイルの識別子を受信し、または前記最新ファイルを記憶していると判定された場合に、前記差分となる分割データおよびその旨を前記データ受信装置に送信する送信装置通信部と、
前記データ受信装置から受信した前記最新ファイルの識別子に基づいて、自身が記憶するファイルが最新であるか否かを判定する判定部と、
を備えることを特徴とする差分データ転送システム。A differential data transfer system in which a data reception device and a plurality of data transmission devices are connected to each other via a network,
The data receiving device
A receiving device storage unit for storing a file, a file identifier of the file, divided data of the file, and file configuration information in which the identifier and hash value of the divided data are associated with each other;
A notification indicating that the latest file is stored from a plurality of data transmission devices, or the latest file from the data transmission devices that have made the notification to the data transmission device that is in the shortest distance to the data reception device And a receiving device communication unit that transmits a request for divided data that becomes a difference between the file stored in the receiving device storage unit or receives the divided data that becomes the difference from the data transmitting device at the shortest distance;
Based on the file configuration information of the latest file and the file configuration information stored in the receiving device storage unit, differential hash information including an identifier and a hash value of the divided data to be the difference is generated to transmit the plurality of data A difference data generation unit to be transmitted to the device;
A path selection unit that identifies a data transmission device in the shortest distance to the data reception device among the data transmission devices that have received information that the latest file is stored;
A restoration unit that restores the latest file based on the divided data stored in the receiving device storage unit and the divided data that is the difference received from the data transmission device at the shortest distance;
Each of the plurality of data transmission devices includes:
A transmission device storage unit that stores the identifier of the file, the divided data of the file, and the identifier of the divided data in association with each other;
When the difference hash information and the identifier of the latest file are received from the data receiving device, or when it is determined that the latest file is stored, the divided data that becomes the difference and the fact are sent to the data receiving device. A transmitting device communication unit for transmitting;
Based on the identifier of the latest file received from the data receiving device, a determination unit that determines whether the file stored by itself is the latest,
A differential data transfer system comprising:
前記データ受信装置は、
前記受信装置通信部が、前記データ管理装置に前記識別子を送信して最新バージョンのファイルの送信要求を行い、または前記最新ファイルのファイル構成情報およびその識別子を前記データ管理装置から受信する、
ことを特徴とする請求項1に記載の差分データ転送システム。A data management device for managing the latest file, a management device storage unit that stores a file identifier of the latest file and file configuration information of the latest file, and a transmission request for the latest file received from the data receiving device And a management device communication unit that acquires file configuration information of the latest file and transmits the file configuration information to the data reception device, and is connected to the data reception device and the data transmission device via a network. Further comprising a device,
The data receiving device is:
The receiving device communication unit transmits the identifier to the data management device to request transmission of the latest version of the file, or receives file configuration information and the identifier of the latest file from the data management device.
The differential data transfer system according to claim 1.
前記判定部が、自身が記憶するファイルが最新でないと判定した場合には、そのファイルの分割データを生成し、生成した前記分割データのハッシュ値と、前記データ受信装置から受信した差分ハッシュ情報に含まれるハッシュ値とに基づいて、前記差分ハッシュ情報に含まれるハッシュ値と同じハッシュ値を含む分割データの差分ハッシュ情報を前記データ受信装置に送信し、
前記データ受信装置は、
前記経路選択部が、前記差分ハッシュ情報に含まれるハッシュ値と同じハッシュ値を含む分割データの差分ハッシュ情報を受信したデータ送信装置の中で、前記データ受信装置に最短距離にあるデータ送信装置を特定し、
前記復元部は、前記受信装置記憶部が記憶する分割データと、最短距離にあるデータ送信装置から受信した前記差分ハッシュ情報で示される分割データとに基づいて、最新のファイルを復元する、
ことを特徴とする請求項1または2に記載の差分データ転送システム。Each of the data transmission devices
When the determination unit determines that the file stored by itself is not the latest, it generates divided data of the file, and generates the hash value of the generated divided data and the difference hash information received from the data receiving device. Based on the included hash value, the difference hash information of the divided data including the same hash value as the hash value included in the difference hash information is transmitted to the data receiving device,
The data receiving device is:
Among the data transmission devices that have received the differential hash information of the divided data including the same hash value as the hash value included in the differential hash information, the route selection unit, the data transmission device that is the shortest distance to the data reception device Identify,
The restoration unit restores the latest file based on the divided data stored in the receiving device storage unit and the divided data indicated by the differential hash information received from the data transmission device at the shortest distance.
The differential data transfer system according to claim 1 or 2, characterized in that
前記判定部が、前記送信装置記憶部に記憶されているファイルを更新する際に排他制御してデータ受信装置からのアクセスを不可として前記ファイルを更新し、最後に更新した際に前記ファイルのファイル構成情報と前記ファイル識別子とを前記管理サーバに送信し、
前記データ受信装置は、
前記差分データ生成部が、前記データ送信装置に前記差分となる分割データの送信要求を行い、
前記受信装置通信部が、前記データ送信装置が前記ファイルを更新する都度前記差分となる分割データを受信し、または最後に更新された前記ファイルのファイル識別子を前記データ管理装置から受信し、
前記データ管理装置は、
前記前記管理装置通信部が、前記データ送信装置から受信した最後に更新した際に前記ファイルのファイル構成情報と前記ファイル識別子とを前記管理装置記憶部に記憶し、前記最後に更新された前記ファイルのファイル識別子を前記データ受信装置に送信する、
ことを特徴とする請求項1または2に記載の差分データ転送システム。The data transmission device includes:
When the determination unit updates the file stored in the transmission device storage unit, the file is updated when the file is updated with the exclusive control being performed and the access from the data reception device is disabled. Sending configuration information and the file identifier to the management server;
The data receiving device is:
The difference data generation unit makes a transmission request for the divided data to be the difference to the data transmission device,
The receiving device communication unit receives the divided data that becomes the difference every time the data transmitting device updates the file, or receives the file identifier of the file updated last from the data management device,
The data management device includes:
The management device communication unit stores the file configuration information and the file identifier of the file in the management device storage unit when updated last received from the data transmission device, and the file updated last Sending the file identifier to the data receiving device,
The differential data transfer system according to claim 1 or 2, characterized in that
前記送信装置通信部が、ユーザからの指示を受けて前記送信装置記憶部に記憶されている承認申請対象ファイルを前記データ管理装置に送信し、または前記承認申請対象ファイルに対する承認情報を前記データ管理装置に送信し、
前記データ受信装置は、
前記受信装置通信部が、ユーザからの指示を受けて承認前の前記承認申請対象ファイルのダウンロード要求を前記データ管理装置に送信し、または前記データ管理装置から前記承認前の前記承認申請対象ファイルの前記分割データが暗号化された暗号化分割データを前記データ管理装置から受信し、または前記承認後の前記承認申請対象ファイルのファイル識別子を送信し、または前記データ管理装置から前記ファイル識別子と前記暗号カギに対応する復号鍵とを受信し、
前記データ管理装置は、
前記管理装置通信部が、前記データ送信装置から受信した前記承認申請対象ファイルの分割データを暗号化して前記データ受信装置に送信し、前記データ送信装置から前記承認申請対象ファイルの承認を受信した場合に、承認された前記承認申請対象ファイルのファイル識別子と前記復号鍵とを前記データ受信装置に送信する、
ことを特徴とする請求項1または2に記載の差分データ転送システム。The data transmission device includes:
In response to an instruction from a user, the transmission device communication unit transmits an approval application target file stored in the transmission device storage unit to the data management device, or approval information for the approval application target file is stored in the data management unit. To the device,
The data receiving device is:
In response to an instruction from a user, the receiving device communication unit transmits a download request for the approval application target file before approval to the data management device, or from the data management device, the approval application target file before approval. The encrypted divided data obtained by encrypting the divided data is received from the data management device, or the file identifier of the approval application target file after the approval is transmitted, or the file identifier and the encryption are transmitted from the data management device. Receiving the decryption key corresponding to the key,
The data management device includes:
When the management device communication unit encrypts the divided data of the approval application target file received from the data transmission device and transmits it to the data reception device, and receives the approval of the approval application target file from the data transmission device And transmitting the approved file identifier of the approval application target file and the decryption key to the data receiving device,
The differential data transfer system according to claim 1 or 2, characterized in that
あらかじめ前記管理装置記憶部が記憶する持ち出しが禁止されているファイルに、前記データ受信装置から受信した前記承認申請対象ファイルが含まれているか否かを判定し、前記持ち出しが禁止されているファイルに前記承認申請対象ファイルが含まれていると判定した場合、前記データ受信装置への前記承認前の承認申請対象ファイルの送信をブロックするデータ管理部をさらに備える、
ことを特徴とする請求項5に記載の差分データ転送システム。The data management device includes:
It is determined whether or not the file for which approval is received from the data receiving device is included in a file that is prohibited from being taken out and stored in the management device storage unit in advance, and the file that is prohibited from being taken out If it is determined that the approval application target file is included, further comprising a data management unit that blocks transmission of the approval application target file before the approval to the data receiving device,
The differential data transfer system according to claim 5.
前記データ管理部が、前記承認前の承認申請対象ファイルの送信を承認された場合であっても、前記承認前の承認申請対象ファイルの分割データのハッシュ値が、あらかじめ前記管理装置記憶部が記憶する前記データ受信装置への送信が承認されたファイルの分割データのハッシュ値に含まれていない分割データの数または比率を判定し、前記分割データの数または比率が所定の閾値を超えた場合、前記データ受信装置に警告を送信して前記承認前の承認申請対象ファイルの送信をブロックする、
ことを特徴とする請求項6に記載の差分データ転送システム。The data management device includes:
Even if the data management unit is approved to transmit the approval application target file before the approval, the management device storage unit stores the hash value of the divided data of the approval application target file before the approval in advance. Determining the number or ratio of the divided data not included in the hash value of the divided data of the file approved for transmission to the data receiving device, and the number or ratio of the divided data exceeds a predetermined threshold, Sending a warning to the data receiving device to block transmission of the approval application target file before the approval,
The differential data transfer system according to claim 6.
データ受信装置から、最新ファイルのファイル構成情報と、受信装置記憶部が記憶するファイル構成情報とに基づいて、前記最新ファイルと前記受信装置記憶部が記憶するファイルとの差分となる分割データの識別子およびハッシュ値を含む差分ハッシュ情報を生成して複数のデータ送信装置に送信する第1ステップと、
前記データ受信装置から前記差分ハッシュ情報と前記最新ファイルの識別子を受信する第2ステップと、
前記データ受信装置から受信した前記最新ファイルの識別子に基づいて、自身が記憶するファイルが最新であるか否かを判定する第3ステップと、
前記最新ファイルを記憶していると判定された場合に、前記差分となる分割データおよびその旨を前記データ受信装置に送信する第4ステップと、
前記複数のデータ送信装置から最新ファイルを記憶している旨の通知を受信する第5ステップと、
前記最新ファイルを記憶している旨を受信したデータ送信装置の中で前記データ受信装置に最短距離にあるデータ送信装置を特定する第6ステップと、
前記通知を行ったデータ送信装置の中から前記データ受信装置に最短距離にあるデータ送信装置に対して前記最新ファイルと前記受信装置記憶部が記憶するファイルとの差分となる分割データの要求を送信する第7ステップと、
前記最短距離にあるデータ送信装置から前記差分となる分割データを受信する第8ステップと、
前記受信装置記憶部が記憶する分割データと、前記最短距離にあるデータ送信装置から受信した前記差分となる分割データとに基づいて、最新のファイルを復元する第9ステップと、
を含むことを特徴とする差分データ転送方法。A differential data transfer method performed between a data receiving device and a plurality of data transmitting devices connected to each other via a network,
Based on the file configuration information of the latest file from the data receiving device and the file configuration information stored in the receiving device storage unit, the identifier of the divided data that is the difference between the latest file and the file stored in the receiving device storage unit And a first step of generating differential hash information including a hash value and transmitting it to a plurality of data transmission devices;
A second step of receiving the differential hash information and the identifier of the latest file from the data receiving device;
A third step of determining whether or not the file stored by itself is the latest based on the identifier of the latest file received from the data receiving device;
When it is determined that the latest file is stored, the fourth step of transmitting the divided data to be the difference and the fact to the data receiving device;
A fifth step of receiving a notification that the latest file is stored from the plurality of data transmission devices;
A sixth step of identifying a data transmitting device within the shortest distance to the data receiving device among the data transmitting devices that have received information that the latest file is stored;
A request for divided data, which is a difference between the latest file and the file stored in the receiving device storage unit, is transmitted from the notified data transmitting device to the data transmitting device at the shortest distance to the data receiving device. And a seventh step
An eighth step of receiving the divided data as the difference from the data transmission device located at the shortest distance;
A ninth step of restoring the latest file based on the divided data stored in the receiving device storage unit and the divided data that is the difference received from the data transmitting device at the shortest distance;
A differential data transfer method comprising:
前記データ受信装置から受信した前記最新ファイルの送信要求に基づいて、管理装置記憶部が記憶する前記最新ファイルのファイル構成情報を取得して前記データ受信装置に送信するステップと、
前記最新ファイルのファイル構成情報およびその識別子を前記データ管理装置から受信するステップと、
をさらに含み、これらの各ステップを行って前記第1ステップを実行する、
ことを特徴とする請求項8に記載の差分データ転送方法。Sending a file identifier to a data management device that manages the latest file to request transmission of the latest version of the file;
Based on the latest file transmission request received from the data receiving device, obtaining the file configuration information of the latest file stored in the management device storage unit and transmitting to the data receiving device;
Receiving the file configuration information of the latest file and its identifier from the data management device;
And performing each of these steps to execute the first step,
The difference data transfer method according to claim 8, wherein:
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2013/070391 WO2015011840A1 (en) | 2013-07-26 | 2013-07-26 | Differential data transmission system and method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6062551B2 JP6062551B2 (en) | 2017-01-18 |
JPWO2015011840A1 true JPWO2015011840A1 (en) | 2017-03-02 |
Family
ID=52392916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015528091A Expired - Fee Related JP6062551B2 (en) | 2013-07-26 | 2013-07-26 | Differential data transfer system and method |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6062551B2 (en) |
WO (1) | WO2015011840A1 (en) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9479567B1 (en) * | 2015-10-29 | 2016-10-25 | Dropbox, Inc. | Synchronization protocol for multi-premises hosting of digital content items |
JP6891341B2 (en) * | 2018-09-11 | 2021-06-18 | 株式会社ブックウォーカー | Electronic content viewing system, electronic content viewing method, and computer-readable recording medium |
JP7322446B2 (en) * | 2019-03-20 | 2023-08-08 | 富士フイルムビジネスイノベーション株式会社 | Information processing device and program |
JP7123843B2 (en) | 2019-03-29 | 2022-08-23 | 日立Astemo株式会社 | Arithmetic device, judgment method |
JP7248600B2 (en) | 2020-01-21 | 2023-03-29 | 株式会社日立製作所 | Computer system and data transfer control method |
JP7083973B1 (en) | 2021-03-04 | 2022-06-14 | 株式会社ストラテジット | Data linkage system and data linkage method |
CN117113439B (en) * | 2023-10-23 | 2024-02-06 | 深圳市烽航实业有限公司 | Safe anti-tampering storage method and system for data of automobile data recorder |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5356350B2 (en) * | 2010-09-30 | 2013-12-04 | ヤフー株式会社 | File transmission / reception system, terminal device, storage server, file transmission / reception method and program |
JP5343990B2 (en) * | 2011-02-28 | 2013-11-13 | ブラザー工業株式会社 | Distribution system, information processing apparatus, information processing method, and program |
JP2013045273A (en) * | 2011-08-24 | 2013-03-04 | Nec Corp | Cache server, method for determining cache object, content distribution system, and cache object determination program |
JP2013061833A (en) * | 2011-09-14 | 2013-04-04 | Brother Ind Ltd | Information processing device, information communication system, information communication method and program |
-
2013
- 2013-07-26 WO PCT/JP2013/070391 patent/WO2015011840A1/en active Application Filing
- 2013-07-26 JP JP2015528091A patent/JP6062551B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO2015011840A1 (en) | 2015-01-29 |
JP6062551B2 (en) | 2017-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6062551B2 (en) | Differential data transfer system and method | |
US11533321B2 (en) | Secure decentralized file sharing systems and methods | |
US9998541B2 (en) | Content item synchronization by block | |
US20200019714A1 (en) | Distributed data storage by means of authorisation token | |
WO2019119929A1 (en) | Block chain consensus method, apparatus and system, and identification information processing method and apparatus | |
US8725682B2 (en) | Distribution and synchronization of digital objects | |
US8504830B2 (en) | Transfer data management system for internet backup | |
US8788831B2 (en) | More elegant exastore apparatus and method of operation | |
US9088538B2 (en) | Secure network storage | |
US20160182494A1 (en) | Distributed device management and directory resolution | |
JP2002358226A (en) | Serverless distributed file system | |
JP2007012077A (en) | Access to content addressable data via network | |
US20240022571A1 (en) | Blockchain folding | |
CN111796968A (en) | Database transaction guaranteed submission | |
JP2014127721A (en) | Encryption key management program and data management system | |
US9424433B2 (en) | Data storage management | |
US9390101B1 (en) | Social deduplication using trust networks | |
KR101623742B1 (en) | Method and system for sharing file related messages | |
US8611542B1 (en) | Peer to peer key synchronization | |
JP7053031B2 (en) | Information processing system, information processing device, information processing method and information processing program | |
KR20200118985A (en) | Method for managing data in block chain environment and apparatus therefor | |
CN112817912B (en) | File management method, device, computer equipment and storage medium | |
KR20160038496A (en) | Storage integrating method and system using file system | |
JP5586397B2 (en) | Secure network storage system, method, client device, server device, and program | |
WO2023004807A1 (en) | Knowledge management system, method and apparatus, electronic device, and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161104 |
|
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: 20161206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161214 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6062551 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |