JPWO2017168730A1 - データ送信プログラム、データ送信方法及びデータ送信装置 - Google Patents

データ送信プログラム、データ送信方法及びデータ送信装置 Download PDF

Info

Publication number
JPWO2017168730A1
JPWO2017168730A1 JP2018508320A JP2018508320A JPWO2017168730A1 JP WO2017168730 A1 JPWO2017168730 A1 JP WO2017168730A1 JP 2018508320 A JP2018508320 A JP 2018508320A JP 2018508320 A JP2018508320 A JP 2018508320A JP WO2017168730 A1 JPWO2017168730 A1 JP WO2017168730A1
Authority
JP
Japan
Prior art keywords
data
unit
compression
chunk
transmitted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018508320A
Other languages
English (en)
Other versions
JP6687104B2 (ja
Inventor
慶一 冨山
慶一 冨山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2017168730A1 publication Critical patent/JPWO2017168730A1/ja
Application granted granted Critical
Publication of JP6687104B2 publication Critical patent/JP6687104B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/166IP fragmentation; TCP segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

データ最適化部(24)は、TCPアプリ(5a)のデータをチャンクに分割する。そして、データ最適化部(24)は、チャンクに対するハッシュ値を計算し、ハッシュ値とチャンクのデータサイズからハッシュ情報記憶部(31)を検索してチャンクの重複を判定する。そして、データ最適化部(24)は、チャンクに重複がない場合に、チャンクを格納し、ハッシュ値、チャンクのデータサイズ、チャンクの位置をハッシュ情報記憶部(31)に格納する。そして、データ最適化部(24)は、チャンクを圧縮してトランスポート最適化部(25)に圧縮データを送信させる。

Description

本発明は、データ送信プログラム、データ送信方法及びデータ送信装置に関する。
データを転送する場合、データ量を削減するために、送信側でデータを圧縮して送信し、受信側で解凍してデータを復元する技術がある。また、データに圧縮処理を施した場合の伝送時間と、データに圧縮処理を施さない場合の伝送時間を予測し、予測した伝送時間に基づいて、データを圧縮して送信するか圧縮しないで送信するかを判断することで、伝送時間を減少させる技術がある。
特開平5−145437号公報
しかしながら、データに重複がある場合には、伝送時間を予測して、データを圧縮して送信するか圧縮しないで送信するかを判断するだけでは、伝送時間の減少が不十分であるという問題がある。データに重複がある場合には、重複したデータをそのまま送らないようにすることで、データ量を減らすことができる。また、圧縮処理を不要とすることでデータ圧縮による処理負荷を抑制することができる。
本発明は、1つの側面では、データ圧縮による処理負荷を抑制することを目的とする。
1つの態様では、データ送信プログラムは、コンピュータに、取得した第1のデータを分割して該第1のデータよりも小さいサイズの第2のデータを生成する処理を実行させる。そして、コンピュータに、送信済データの識別情報を記憶する記憶部を参照して、生成した第2のデータが送信済であるか否かを判定する処理を実行させる。そして、コンピュータに、第2のデータが送信済でない場合、第2のデータを圧縮して該第2のデータよりも小さいサイズの第3のデータを生成し、生成した第3のデータを、指定された情報処理装置に送信する処理を実行させる。
データ圧縮による処理負荷を抑制することができる。
図1は、実施例に係るデータ転送システムを説明するための図である。 図2は、データ転送システムの機能構成を示す図である。 図3は、切替情報記憶部の一例を示す図である。 図4は、チャンクの重複除去及び圧縮によるデータ最適化の高速化効果を説明するための図である。 図5は、効果判定情報記憶部が記憶する項目の一例を示す図である。 図6は、ハッシュ情報記憶部がチャンク毎に記憶する項目の一例を示す図である。 図7は、チャンク記憶部の一例を示す図である。 図8は、送信部による圧縮処理の切替を説明するための図である。 図9は、データ最適化部による処理を説明するための図である。 図10は、送信部による処理のフローを示すフローチャートである。 図11は、データ最適化処理のフローを示すフローチャートである。 図12は、圧縮処理のフローを示すフローチャートである。 図13は、トランスポート最適化処理のフローを示すフローチャートである。 図14は、実施例に係るデータ送信プログラムを実行するコンピュータのハードウェア構成を示す図である。
以下に、本願の開示するデータ送信プログラム、データ送信方法及びデータ送信装置の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例に係るデータ転送システムについて説明する。図1は、実施例に係るデータ転送システムを説明するための図である。図1に示すように、データ転送システム1は、クライアント1aで動作するクライアントアプリケーション1bがサーバ1cで動作するサーバアプリケーション1dにWAN(Wide Area Network)3を介して送信するデータを転送する。クライアントアプリケーション1bは、TCP(Transmission Control Protocol)/IP(Internet Protocol)を用いてサーバアプリケーション1dにデータを転送する。
データ転送システム1は、送信部2と受信部4とを有する。送信部2は、クライアント1aで動作し、クライアントアプリケーション1bからデータを受け取り、WAN3を介してサーバ1cに送信する。受信部4は、サーバ1cで動作し、送信部2により送信されたデータを受信し、サーバアプリケーション1dに渡す。なお、送信部2は、クライアント1aと別の装置で動作してもよく、受信部4は、サーバ1cと別の装置で動作してもよい。
また、データ転送システム1は、サーバ1cで動作するサーバアプリケーション1dがクライアント1aで動作するクライアントアプリケーション1bにWAN3を介して送信するデータを転送してもよい。この場合、送信部2はサーバ1cで動作し、受信部4はクライアント1aで動作する。
送信部2は、データを1〜4KB(キロバイト)のチャンクに分割し、重複するチャンクがある場合にデータの代わりにデータに対応するインデックスを送信し、重複がない場合にデータを圧縮して送信する。受信部4は、重複するデータを復元し、圧縮されたデータを解凍する。
このように、データ転送システム1では、送信部2が、重複するチャンクがない場合にだけデータを圧縮して送信するので、データ圧縮による処理負荷を抑制することができる。
次に、データ転送システム1の機能構成について説明する。図2は、データ転送システム1の機能構成を示す図である。図2に示すように、データ転送システム1は、送信部2と受信部4を有する。送信部2と受信部4は、WAN3を介して接続される。
送信部2は、切替情報記憶部21と、効果判定情報記憶部22と、プロキシ部23と、データ最適化部24と、トランスポート最適化部25とを有する。切替情報記憶部21は、圧縮を行うか否かを示す圧縮切替情報を記憶する。図3は、切替情報記憶部21の一例を示す図である。図3に示すように、切替情報記憶部21は、圧縮切替フラグを記憶する。圧縮切替フラグがtrueの場合には圧縮が行われ、圧縮切替フラグがfalseの場合には圧縮が行われない。
圧縮切替フラグの初期値はtrueである。圧縮切替フラグは、プロキシ部23、データ最適化部24及びトランスポート最適化部25により更新され、データ最適化部24において圧縮を行うか否かの判定に用いられる。
効果判定情報記憶部22は、データを圧縮することにより効果があるか否かを判定するための情報を記憶する。図4は、データを圧縮することによる効果を説明するための図である。図4において、データ最適化とは、チャンクの重複除去及び圧縮を表す。図4(a)は、効果がある場合を示し、図4(b)は、効果がない場合を示す。
図4(a)に示すように、データの最適化により転送データのサイズを小さくできる場合には、データの転送処理に要する時間が短くなる。このため、データ最適化のために必要となる重複判定、圧縮、解凍及び重複復元のオーバーヘッドを含めても転送時間を短縮することができる。
一方、図4(b)に示すように、データの最適化により転送データのサイズを小さくできない場合には、データの転送処理に要する時間が変わらず、データ最適化のためのオーバーヘッドが増えるため、転送時間が長くなる。例えば、転送されるデータが圧縮済のデータであった場合には、データの圧縮によりサイズを小さくすることができないため、データ最適化の効果がない。
図5は、効果判定情報記憶部22が記憶する項目の一例を示す図である。図5に示すように、効果判定情報記憶部22は、平均処理時間と、無駄発生回数と、閾値とを記憶する。平均処理時間は、圧縮処理に要する処理時間の平均値であり、単位はms(ミリ秒)である。無駄発生回数は、圧縮後のデータサイズが圧縮前のデータサイズ以上である場合を無駄として、無駄が発生した回数である。
閾値は、効果を判定するための所定の値である。効果の判定には平均処理時間×無駄発生回数が用いられる。すなわち、平均処理時間×無駄発生回数>閾値の場合には、圧縮効果がないと判定され、圧縮処理を行わないように、圧縮切替フラグがfalseに設定される。無駄発生回数に平均処理時間を掛けるのは、マシンによる処理時間の相違を判定に反映させるためである。
図2に戻って、プロキシ部23は、TCPを用いて通信を行うTCPアプリ5aからTCPデータを受け取り、受け取ったTCPデータのサイズを判定する。その結果、サイズが0である場合には、TCPアプリ5aからの通信が途切れたポイントを検出した場合であるので、データ種別が変わり、圧縮効果があるデータに変わった可能性があるため、プロキシ部23は、圧縮切替フラグをtrueに設定する。
また、プロキシ部23は、TCPデータのサイズが0でない場合には、データ最適化の定義を判定し、データ最適化ONである場合には、データ最適化部24にデータを渡し、データ最適化OFFである場合には、トランスポート最適化部25にデータを渡す。ここで、データ最適化の定義とは、ユーザがデータ最適化を行うか否かを指定する情報であり、データ最適化ONが指定されるとデータ最適化が行われ、データ最適化OFFが指定されるとデータ最適化は行われない。
データ最適化部24は、データをチャンクに分割し、チャンクの重複除去を行う。また、データ最適化部24は、圧縮切替フラグがtrueである場合に、チャンクの圧縮を行う。データ最適化部24は、ハッシュ情報記憶部31と、チャンク記憶部32と、分割部33と、重複判定部34と、重複除去部35と、圧縮部36とを有する。
ハッシュ情報記憶部31は、ハッシュに関する情報をチャンク毎に記憶する。図6は、ハッシュ情報記憶部31がチャンク毎に記憶する項目の一例を示す図である。図6に示すように、ハッシュ情報記憶部31がチャンク毎に記憶する項目には、ハッシュ値と、データサイズと、データ位置が含まれる。
ハッシュ値は、チャンクからハッシュ計算により算出される値であり、文字列である。データサイズは、チャンクのサイズであり、バイト数を示す整数である。ハッシュ情報記憶部31は、ハッシュ値とデータサイズにより検索される。データ位置は、チャンク記憶部32におけるチャンクの位置を示す。データ位置は、チャンク記憶部32の先頭からのオフセットであり、整数である。ハッシュ情報記憶部31は、メモリ内に確保される領域である。
チャンク記憶部32は、チャンクを記憶する。図7は、チャンク記憶部32の一例を示す図である。図7に示すように、チャンク記憶部32は、チャンクの実データを記憶する。図7では、データ1〜データNが実データである。チャンク記憶部32は、ファイルにより実現される。
分割部33は、プロキシ部23から受け取ったデータをチャンクに分割し、重複判定部34に渡す。分割部33は、データの内容に基づいてCDC(Contents Degfined Chunking)と呼ばれる手法で1〜4KBの可変長のブロックをチャンクとして作成する。
重複判定部34は、チャンクのフィンガープリントとしてハッシュ値を計算する。そして、重複判定部34は、ハッシュ情報記憶部31をハッシュ値とチャンクのデータサイズを用いて検索し、チャンクの重複があるか否かを判定する。
そして、重複判定部34は、重複がない場合には、チャンクをチャンク記憶部32に格納し、ハッシュ値、チャンクのデータサイズ、チャンクのチャンク記憶部32におけるデータ位置をハッシュ情報記憶部31に格納し、チャンクを圧縮部36に渡す。重複除去部35は、重複判定部34により重複があると判定された場合に、チャンクをハッシュ値に基づくインデックスに代えて、トランスポート最適化部25に渡す。
圧縮部36は、効果判定情報記憶部22の情報を用いて圧縮切替フラグを設定する。具体的には、圧縮部36は、平均処理時間×無駄発生回数>閾値であるか否かを判定し、平均処理時間×無駄発生回数>閾値である場合には、圧縮切替フラグをfalseに設定し、平均処理時間×無駄発生回数>閾値でない場合には、圧縮切替フラグを更新しない。
そして、圧縮部36は、圧縮切替フラグがtrueである場合に、チャンクの圧縮を行う。そして、圧縮部36は、圧縮処理の時間を計測し、効果判定情報記憶部22の平均処理時間を更新する。
そして、圧縮部36は、圧縮前のチャンクのサイズが圧縮後のサイズ以下である場合には、効果判定情報記憶部22の無駄発生回数を更新し、非圧縮データをトランスポート最適化部25に渡す。一方、圧縮前のチャンクのサイズが圧縮後のサイズ以下でない場合には、圧縮部36は、圧縮データをトランスポート最適化部25に渡す。
トランスポート最適化部25は、プロキシ部23又はデータ最適化部24から渡されたデータを、トランスポート層での最適化を行って、WAN3を介して受信部4に送信する。トランスポート最適化部25は、RPS(Random Packet Stream)、UNAP(Universal Network Acceleration Protocol)又は高速TCPをプロトコルとして選択することによりトランスポート層での最適化を行う。
ここで、RPSは、パケット廃棄効率が高い環境で誤り訂正符号を用いて再送なしでデータを復元するプロトコルであり、UDPをベースとするプロトコルである。また、UNAPは、廃棄されたパケットを判定することで効率よくデータを再送するプロトコルであり、UDPをベースとするプロトコルである。また、高速TCPは、TCPを高速化したものである。
また、トランスポート最適化部25は、効果判定情報記憶部22の平均処理時間と通信バッファの残データ量とWAN3の空き帯域とに基づき、圧縮切替フラグを設定する。具体的には、トランスポート最適化部25は、平均処理時間<残データ量×空き帯域である場合には、残データを送信する間に圧縮が可能であるので、圧縮切替フラグをtrueに設定する。
図8は、送信部2による圧縮処理の切替を説明するための図である。図8に示すように、重複がない場合、データ最適化部24は、最初はチャンクを圧縮してトランスポート最適化部25に渡す。そして、圧縮処理の無駄回数が増加する(1)と、データ最適化部24は、チャンクを圧縮することなくトランスポート最適化部25に渡す。
その後、受信したデータのサイズが0であることによりデータ種別の変更を検知する(2)と、プロキシ部23が圧縮切替フラグをtrueに再設定し、データ最適化部24は、チャンクを圧縮してトランスポート最適化部25に渡す。
また、通信回線が混雑して通信バッファ25aの残データが増加する(3)と、トランスポート最適化部25は、圧縮切替フラグをtrueに再設定する。その後、通信バッファ25aの残データが減少すると、トランスポート最適化部25は、圧縮切替フラグをfalseに設定する。
このように、送信部2は、圧縮切替フラグを切り替えることによって、効果のある圧縮処理を行うことができる。
図2に戻って、受信部4は、トランスポート最適化部41と、データ最適化部42と、プロキシ部43とを有する。トランスポート最適化部41は、RPS、UNAP又は高速TCPで受信したデータをデータ最適化部42又はプロキシ部43に渡す。
データ最適化部42は、トランスポート最適化部41から受け取ったデータに対して必要に応じて復元又は解凍を行い、チャンクを集めてTCPデータを生成し、プロキシ部43に渡す。プロキシ部43は、TCPデータをTCPアプリ5bに渡す。
データ最適化部42は、チャンク情報記憶部51と、重複復元部52と、解凍部53とを有する。チャンク情報記憶部51は、解凍されたデータとインデックスとを対応付けて記憶する。重複復元部52は、インデックスからチャンク記憶部51を検索して重複チャンクを復元する。解凍部53は、圧縮データを解凍し、インデックスと共にチャンク情報記憶部51に格納する。
図9は、データ最適化部24及びデータ最適化部42による処理を説明するための図である。データ最適化部24は、80KBのTCPデータバッファ26aからデータを読み出し、1〜4KBのチャンクに分割する。そして、データ最適化部24は、チャンクのハッシュ値を算出し、ハッシュ値とチャンクのサイズを用いてハッシュ情報記憶部31をハッシュ検索する。
そして、データ最適化部24は、チャンクが重複するか否かを判定し、重複する場合には、インデックスをトランスポート最適化部25に転送させる。一方、チャンクが重複しない場合には、データ最適化部24は、チャンクをチャンク記憶部32に格納し、ハッシュ値、データサイズ、データ位置をハッシュ情報記憶部31に格納する。
そして、データ最適化部24は、圧縮切替フラグを用いて圧縮するか否かを判定し、圧縮切替フラグがtrueである場合には、チャンクの圧縮を行ってトランスポート最適化部25に転送させる。一方、圧縮切替フラグがfalseである場合には、チャンクを圧縮することなくトランスポート最適化部25に転送させる。
そして、受信部4のデータ最適化部42は、トランスポート最適化部41を介してデータを受信すると、受信したデータがチャンクの場合には、プロキシ部43にチャンクをTCPデータバッファ26bに格納させる。
また、データ最適化部42は、受信したデータが圧縮データの場合には、解凍して、チャンクをインデックスと共にチャンク情報記憶部51に格納すると共に、プロキシ部43にチャンクをTCPデータバッファ26bに格納させる。
また、データ最適化部42は、受信したデータがインデックスの場合には、チャンク情報記憶部51を検索して重複チャンクを復元し、プロキシ部43にチャンクをTCPデータバッファ26bに格納させる。
次に、送信部2による処理のフローについて説明する。図10は、送信部2による処理のフローを示すフローチャートである。図10に示すように、送信部2は、TCPデータバッファ26aからデータを読み込み(ステップS1)、受信したデータのサイズが0であるか否かを判定する(ステップS2)。
その結果、受信したデータのサイズが0である場合には、送信部2は、圧縮切替フラグをtrueに初期化し(ステップS3)、ステップS1に戻る。一方、受信したデータのサイズが0でない場合には、送信部2は、データ最適化の定義を判定し(ステップS4)、データ最適化OFFである場合には、トランスポート最適化処理を行い(ステップS6)、ステップS1に戻る。
一方、データ最適化ONである場合には、送信部2は、データ最適化処理を行い(ステップS5)、トランスポート最適化処理を行う(ステップS6)。そして、送信部2は、ステップS1に戻る。
このように、送信部2は、受信したデータのサイズが0である場合に、圧縮切替フラグをtrueに初期化することによって、データを圧縮しない状態で送信データの種別が変わった場合に、データ圧縮を再開することができる。
次に、データ最適化処理のフローについて説明する。図11は、データ最適化処理のフローを示すフローチャートである。図11に示すように、データ最適化部24は、チャンク分割を行い(ステップS11)、チャンクを読み込む(ステップS12)。
そして、データ最適化部24は、ハッシュを算出し(ステップS13)、ハッシュ情報記憶部31を検索してチャンクの重複判定を行う(ステップS14)。その結果、重複ありの場合には、データ最適化部24は、ハッシュ値に基づくインデックスを通信バッファ25aに書き込む(ステップS15)。
一方、重複なしの場合には、データ最適化部24は、データ保管を行う(ステップS16)。ここで、データ保管とは、チャンクをチャンク記憶部32に格納し、ハッシュ値とデータサイズとデータ位置をハッシュ情報記憶部31に格納することである。そして、データ最適化部24は、圧縮処理を行う(ステップS17)。
そして、データ最適化部24は、残チャンクありか否かを判定し(ステップS18)、残チャンクありの場合には、ステップS12に戻り、残チャンクなしの場合には、データ最適化処理を終了する。
図12は、圧縮処理のフローを示すフローチャートである。図12に示すように、データ最適化部24は、圧縮切替判定を行う(ステップS21)。ここでの圧縮切替判定は、平均処理時間×無駄発生回数が閾値より大きいか否かを判定し、平均処理時間×無駄発生回数が閾値より大きい場合に圧縮切替フラグをfalseに設定することである。
そして、データ最適化部24は、圧縮切替フラグに基づいて、圧縮有無を判定し(ステップS22)、圧縮切替フラグがfalseの場合には、ステップS28に進む。一方、圧縮切替フラグがtrueの場合には、チャンクの圧縮を行い(ステップS23)、圧縮の処理時間を計測し(ステップS24)、効果判定情報記憶部22の平均処理時間を更新する。
そして、データ最適化部24は、圧縮前後のサイズを比較することにより、圧縮の効果判定を行い(ステップS25)、圧縮前サイズが圧縮後サイズより大きい場合には、圧縮データを通信バッファ25aに書き込む(ステップS26)。一方、圧縮前サイズが圧縮後サイズより大きくない場合には、データ最適化部24は、無駄カウントを行う(ステップS27)。ここで、無駄カウントとは、効果判定情報記憶部22の無駄発生回数に1を加えて更新することである。そして、データ最適化部24は、非圧縮データを通信バッファ25aに書き込む(ステップS28)。
このように、データ最適化部24は、圧縮切替フラグに基づいて、圧縮有無を判定することで、圧縮処理が無駄に行われることを防ぐことができる。
次に、トランスポート最適化処理のフローについて説明する。図13は、トランスポート最適化処理のフローを示すフローチャートである。図13に示すように、トランスポート最適化部25は、通信バッファ25aを読み込み(ステップS31)、プロトコル変換を行って送信を行う(ステップS32)。
そして、トランスポート最適化部25は、通信バッファ25aの残データ判定を行い(ステップS33)、残データなしの場合には、ステップS31に戻り、残データありの場合には、圧縮切替判定を行う(ステップS34)。ここでの圧縮切替判定は、効果判定情報記憶部22の平均処理時間が残データ量×空き帯域より小さいか否かを判定し、小さい場合には、圧縮切替フラグをtrueに設定し、小さくない場合には、圧縮切替フラグをfalseに設定することである。
そして、トランスポート最適化部25は、通信速度調整を行い(ステップS35)、ステップS31に戻る。ここで、通信速度調整とは、通信速度に合わせるために、一定時間のスリープ処理を行うことである。
このように、トランスポート最適化部25が、効果判定情報記憶部22の平均処理時間が残データ量×空き帯域より小さいか否かに基づいて圧縮切替フラグを設定することで、データ最適化部24は効率よく圧縮を行うことができる。
上述してきたように、実施例では、データ最適化部24が、チャンクの重複を判定し、チャンクに重複がない場合にだけチャンクを圧縮し、トランスポート最適化部25が、圧縮データを送信する。したがって、送信部2は、データ圧縮による処理負荷を抑制することができる。
また、実施例では、チャンクに重複がある場合に、トランスポート最適化部25がインデックスを送信するので、送信部2は送信するデータの量を減らすことができる。
また、実施例では、データ最適化部24は、平均処理時間×無駄発生回数が閾値より大きいか否かを判定し、平均処理時間×無駄発生回数が閾値より大きい場合に、圧縮切替フラグをfalseに設定し、チャンクを圧縮しない。したがって、送信部2は、無駄な圧縮を防ぐことができる。
また、実施例では、プロキシ部23は、受信したデータのサイズが0である場合に、データの種別が変わったと判定して、圧縮切替フラグをtrueに設定するので、データ最適化部24は、データの種別が変わった場合にデータ圧縮を再開することができる。したがって、送信部2は、圧縮が有効な場合に圧縮を行わない状況が発生することを防ぐことができ、データの送信を高速に行うことができる。
また、実施例では、トランスポート最適化部25は、効果判定情報記憶部22の平均処理時間が残データ量×空き帯域より小さい場合に、圧縮切替フラグをtrueに設定するので、データ最適化部24は、通信待ち時間を利用して圧縮を行うことができる。したがって、送信部2は、効率よくデータの圧縮を行うことができる。
なお、実施例では、送信部2について説明したが、送信部2が有する構成をソフトウェアによって実現することで、同様の機能を有するデータ送信プログラムを得ることができる。そこで、データ送信プログラムを実行するコンピュータについて説明する。なお、受信部4の機能を有するデータ受信プログラムも同様のコンピュータで実行される。
図14は、実施例に係るデータ送信プログラムを実行するコンピュータのハードウェア構成を示す図である。図14に示すように、コンピュータ60は、メインメモリ61と、CPU62と、LAN(Local Area Network)インタフェース63と、HDD(Hard Disk Drive)64とを有する。また、コンピュータ60は、スーパーIO(Input Output)65と、DVI(Digital Visual Interface)66と、ODD(Optical Disk Drive)67とを有する。
メインメモリ61は、プログラムやプログラムの実行途中結果などを記憶するメモリである。CPU62は、メインメモリ61からプログラムを読み出して実行する中央処理装置である。CPU62は、メモリコントローラを有するチップセットを含む。
LANインタフェース63は、コンピュータ60をLAN経由で他のコンピュータに接続するためのインタフェースである。HDD64は、プログラムやデータを格納するディスク装置であり、スーパーIO65は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。DVI66は、液晶表示装置を接続するインタフェースであり、ODD67は、DVDの読み書きを行う装置である。
LANインタフェース63は、PCIエクスプレス(PCIe)によりCPU62に接続され、HDD64及びODD67は、SATA(Serial Advanced Technology Attachment)によりCPU62に接続される。スーパーIO65は、LPC(Low Pin Count)によりCPU62に接続される。
そして、コンピュータ60において実行されるデータ送信プログラムは、DVDに記憶され、ODD67によってDVDから読み出されてコンピュータ60にインストールされる。あるいは、データ送信プログラムは、LANインタフェース63を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ60にインストールされる。そして、インストールされたデータ送信プログラムは、HDD64に記憶され、メインメモリ61に読み出されてCPU62によって実行される。
また、実施例では、WAN3を介してデータを送信する場合について説明したが、本発明はこれに限定されるものではなく、例えば無線通信等の他の通信方法を用いてデータを送信する場合にも同様に適用することができる。
1 データ転送システム
1a クライアント
1b クライアントアプリケーション
1c サーバ
1d サーバアプリケーション
2 送信部
3 WAN
4 受信部
5a,5b TCPアプリ
21 切替情報記憶部
22 効果判定情報記憶部
23 プロキシ部
24 データ最適化部
25 トランスポート最適化部
25a 通信バッファ
26a TCPデータバッファ
26b TCPデータバッファ
31 ハッシュ情報記憶部
32 チャンク記憶部
33 分割部
34 重複判定部
35 重複除去部
36 圧縮部
41 トランスポート最適化部
42 データ最適化部
43 プロキシ部
51 チャンク情報記憶部
52 重複復元部
53 解凍部
60 コンピュータ
61 メインメモリ
62 CPU
63 LANインタフェース
64 HDD
65 スーパーIO
66 DVI
67 ODD

Claims (7)

  1. コンピュータに、
    取得した第1のデータを分割して該第1のデータよりも小さいサイズの第2のデータを生成し、
    送信済データの識別情報を記憶する記憶部を参照して、生成した前記第2のデータが送信済であるか否かを判定し、
    前記第2のデータが送信済でない場合、前記第2のデータを圧縮して該第2のデータよりも小さいサイズの第3のデータを生成し、
    生成した前記第3のデータを、指定された情報処理装置に送信する
    処理を実行させることを特徴とするデータ送信プログラム。
  2. 前記コンピュータに、
    前記第2のデータが送信済である場合、前記第2のデータの識別情報を前記情報処理装置に送信する
    処理を実行させることを特徴とする請求項1に記載のデータ送信プログラム。
  3. 前記コンピュータに、
    前記第2のデータを圧縮した場合に圧縮されたデータのサイズが前記第2のデータよりも小さくない回数に基づいて、前記第2のデータを前記情報処理装置に送信する
    処理を実行させることを特徴とする請求項1又は2に記載のデータ送信プログラム。
  4. 前記コンピュータに、
    前記第1のデータの種別が変化したか否かを判定し、変化したと判定した場合には、前記第2のデータを圧縮して前記情報処理装置に送信する
    処理を実行させることを特徴とする請求項3に記載のデータ送信プログラム。
  5. 前記コンピュータに、
    通信の空き帯域、通信バッファに溜まっているデータの量及び圧縮処理に要する時間に基づいて、前記第2のデータを圧縮して前記情報処理装置に送信する
    処理を実行させることを特徴とする請求項3に記載のデータ送信プログラム。
  6. コンピュータが、
    取得した第1のデータを分割して該第1のデータよりも小さいサイズの第2のデータを生成し、
    送信済データの識別情報を記憶する記憶部を参照して、生成した前記第2のデータが送信済であるか否かを判定し、
    前記第2のデータが送信済でない場合、前記第2のデータを圧縮して該第2のデータよりも小さいサイズの第3のデータを生成し、
    生成した前記第3のデータを、指定された情報処理装置に送信する
    処理を実行することを特徴とするデータ送信方法。
  7. 取得した第1のデータを分割して該第1のデータよりも小さいサイズの第2のデータを生成する分割部と、
    送信済データの識別情報を記憶する記憶部を参照して、前記分割部により生成された前記第2のデータが送信済であるか否かを判定する判定部と、
    前記判定部により前記第2のデータが送信済でないと判定された場合、前記第2のデータを圧縮して該第2のデータよりも小さいサイズの第3のデータを生成する圧縮部と、
    前記圧縮部により生成された前記第3のデータを、指定された情報処理装置に送信する送信部と
    を有することを特徴とするデータ送信装置。
JP2018508320A 2016-03-31 2016-03-31 データ送信プログラム、データ送信方法及びデータ送信装置 Active JP6687104B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/060845 WO2017168730A1 (ja) 2016-03-31 2016-03-31 データ送信プログラム、データ送信方法及びデータ送信装置

Publications (2)

Publication Number Publication Date
JPWO2017168730A1 true JPWO2017168730A1 (ja) 2018-12-27
JP6687104B2 JP6687104B2 (ja) 2020-04-22

Family

ID=59962817

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018508320A Active JP6687104B2 (ja) 2016-03-31 2016-03-31 データ送信プログラム、データ送信方法及びデータ送信装置

Country Status (3)

Country Link
US (1) US10637969B2 (ja)
JP (1) JP6687104B2 (ja)
WO (1) WO2017168730A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7024578B2 (ja) * 2018-04-24 2022-02-24 富士通株式会社 通信装置、通信制御方法、および通信制御プログラム
CN113993104B (zh) * 2021-10-26 2023-12-26 中汽创智科技有限公司 一种数据传输方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003338761A (ja) * 2002-05-20 2003-11-28 Fujitsu Ltd データ圧縮プログラム、データ圧縮方法、およびデータ圧縮装置
JP2010020416A (ja) * 2008-07-08 2010-01-28 Panasonic Corp データ転送方法およびデータ転送装置
CN102469142A (zh) * 2010-11-16 2012-05-23 英业达股份有限公司 重复数据删除程序的数据传输方法
JP2013200713A (ja) * 2012-03-26 2013-10-03 Kobelco Contstruction Machinery Ltd 稼動情報送信装置及びこれを備えた建設機械並びにこれを備えた情報管理システム
WO2015132885A1 (ja) * 2014-03-04 2015-09-11 エヌ・ティ・ティレゾナント・テクノロジー株式会社 動画圧縮装置および動画圧縮伸長システム

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05145437A (ja) 1991-11-21 1993-06-11 Hitachi Ltd データ伝送システム
US7412462B2 (en) * 2000-02-18 2008-08-12 Burnside Acquisition, Llc Data repository and method for promoting network storage of data
US7370120B2 (en) * 2001-12-07 2008-05-06 Propel Software Corporation Method and system for reducing network latency in data communication
JP4218256B2 (ja) * 2002-05-02 2009-02-04 富士ゼロックス株式会社 データ転送方法及びシステム
DE102004063812A1 (de) * 2004-12-30 2006-07-13 Francotyp-Postalia Ag & Co. Kg Verfahren zum Aufbereiten von Daten für das Laden in eine Datenverarbeitungseinrichtung
US20080104269A1 (en) * 2006-10-30 2008-05-01 Research In Motion Limited Method and apparatus for web browser page fragmentation
US7453379B2 (en) * 2007-03-12 2008-11-18 Citrix Systems, Inc. Systems and methods for identifying long matches of data in a compression history
US7619545B2 (en) * 2007-03-12 2009-11-17 Citrix Systems, Inc. Systems and methods of using application and protocol specific parsing for compression
US7827237B2 (en) * 2007-03-12 2010-11-02 Citrix Systems, Inc. Systems and methods for identifying long matches of data in a compression history
US8510267B2 (en) * 2011-03-08 2013-08-13 Rackspace Us, Inc. Synchronization of structured information repositories
US8538926B2 (en) * 2011-03-08 2013-09-17 Rackspace Us, Inc. Massively scalable object storage system for storing object replicas
WO2012175132A1 (en) * 2011-06-22 2012-12-27 Telefonaktiebolaget L M Ericsson (Publ) Header compression with a code book
US9363339B2 (en) * 2011-07-12 2016-06-07 Hughes Network Systems, Llc Staged data compression, including block level long range compression, for data streams in a communications system
KR20130062889A (ko) * 2011-12-05 2013-06-13 삼성전자주식회사 데이터 압축 방법 및 시스템
US8724693B2 (en) * 2012-05-11 2014-05-13 Oracle International Corporation Mechanism for automatic network data compression on a network connection
CN103973730B (zh) * 2013-01-29 2016-10-19 腾讯科技(深圳)有限公司 一种实现数据共享的方法、终端及系统
US9567847B2 (en) * 2013-10-02 2017-02-14 Hannes Wedemeyer Method of data volume reduction for transmission on a limited communications channel
US10673826B2 (en) * 2015-02-09 2020-06-02 Arc Bio, Llc Systems, devices, and methods for encrypting genetic information
US10063444B2 (en) * 2016-02-29 2018-08-28 Red Hat, Inc. Network traffic capture analysis

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003338761A (ja) * 2002-05-20 2003-11-28 Fujitsu Ltd データ圧縮プログラム、データ圧縮方法、およびデータ圧縮装置
JP2010020416A (ja) * 2008-07-08 2010-01-28 Panasonic Corp データ転送方法およびデータ転送装置
CN102469142A (zh) * 2010-11-16 2012-05-23 英业达股份有限公司 重复数据删除程序的数据传输方法
JP2013200713A (ja) * 2012-03-26 2013-10-03 Kobelco Contstruction Machinery Ltd 稼動情報送信装置及びこれを備えた建設機械並びにこれを備えた情報管理システム
WO2015132885A1 (ja) * 2014-03-04 2015-09-11 エヌ・ティ・ティレゾナント・テクノロジー株式会社 動画圧縮装置および動画圧縮伸長システム

Also Published As

Publication number Publication date
US20190028571A1 (en) 2019-01-24
WO2017168730A1 (ja) 2017-10-05
US10637969B2 (en) 2020-04-28
JP6687104B2 (ja) 2020-04-22

Similar Documents

Publication Publication Date Title
US8456332B2 (en) Systems and methods for compression of logical data objects for storage
US20080025298A1 (en) Techniques for balancing throughput and compression in a network communication system
US9824131B2 (en) Regulating a replication operation
WO2006074064A2 (en) Method and apparatus for managing data object size in a multi-user environment
US11385794B2 (en) System and method for data compaction and security using multiple encoding algorithms
US11960467B2 (en) Data storage method, data obtaining method, and apparatus
JP6308446B2 (ja) 記憶システム内のデータ・バックアップのための方法および装置
CN113296709B (zh) 用于去重的方法和设备
US11733867B2 (en) System and method for multiple pass data compaction utilizing delta encoding
JP6304385B2 (ja) 情報処理システム、情報処理装置、情報処理方法、及び情報処理プログラム
US11928335B2 (en) System and method for data compaction utilizing mismatch probability estimation
US10637969B2 (en) Data transmission method and data transmission device
JP5780353B2 (ja) 画像送信方法、プログラム、及び装置
US10673768B2 (en) Managing data compression
US20210382854A1 (en) System and method for data storage, transfer, synchronization, and security using automated model monitoring and training
US20240020006A1 (en) System and method for compaction of floating-point numbers within a dataset
US20170201602A1 (en) Network utilization improvement by data reduction based migration prioritization
WO2013102819A1 (en) Separation of data chunks into multiple streams for compression
US20180113874A1 (en) Information processing apparatus, information processing method and recording medium with information processing program
JP7024578B2 (ja) 通信装置、通信制御方法、および通信制御プログラム
JP7075077B2 (ja) バックアップサーバ、バックアップ方法、プログラム、ストレージシステム
CN112685219A (zh) 用于备份数据的方法、设备和计算机程序产品
JP7025105B2 (ja) データ圧縮伝送システム、中間サーバ、方法およびプログラム
US11853262B2 (en) System and method for computer data type identification
US20230315288A1 (en) System and method for data compaction and security using multiple encoding algorithms with pre-coding and complexity estimation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180904

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190730

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190927

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191024

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200316

R150 Certificate of patent or registration of utility model

Ref document number: 6687104

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150