JP6823333B1 - データ送信装置、プログラム及びシステム - Google Patents
データ送信装置、プログラム及びシステム Download PDFInfo
- Publication number
- JP6823333B1 JP6823333B1 JP2020547246A JP2020547246A JP6823333B1 JP 6823333 B1 JP6823333 B1 JP 6823333B1 JP 2020547246 A JP2020547246 A JP 2020547246A JP 2020547246 A JP2020547246 A JP 2020547246A JP 6823333 B1 JP6823333 B1 JP 6823333B1
- Authority
- JP
- Japan
- Prior art keywords
- data
- divided
- transmission
- processing
- communication
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 156
- 238000012545 processing Methods 0.000 claims abstract description 156
- 230000005540 biological transmission Effects 0.000 claims abstract description 153
- 230000008569 process Effects 0.000 claims description 83
- 230000006837 decompression Effects 0.000 claims description 31
- 238000004891 communication Methods 0.000 abstract description 145
- 238000010586 diagram Methods 0.000 abstract description 10
- 230000009467 reduction Effects 0.000 abstract description 9
- 238000002360 preparation method Methods 0.000 abstract description 3
- 238000007906 compression Methods 0.000 description 34
- 230000006835 compression Effects 0.000 description 31
- 230000004048 modification Effects 0.000 description 25
- 238000012986 modification Methods 0.000 description 25
- 230000008859 change Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- HHDUMDVQUCBCEY-UHFFFAOYSA-N 4-[10,15,20-tris(4-carboxyphenyl)-21,23-dihydroporphyrin-5-yl]benzoic acid Chemical compound OC(=O)c1ccc(cc1)-c1c2ccc(n2)c(-c2ccc(cc2)C(O)=O)c2ccc([nH]2)c(-c2ccc(cc2)C(O)=O)c2ccc(n2)c(-c2ccc(cc2)C(O)=O)c2ccc1[nH]2 HHDUMDVQUCBCEY-UHFFFAOYSA-N 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
Abstract
Description
データ通信システム1(以下、単にシステム1とも称する)は、データ送信装置2(以下、単に送信装置2とも称する)と、データ受信装置3(以下、単に受信装置3とも称する)と、ネットワーク4と、を含んで構成される。
送信装置2は、制御部21と、記憶部22と、通信部23と、を含んで構成される。送信装置2は、データを送信する各種のプログラムを実行可能であることが好ましい。データを送信する各種のプログラムは、例えば、音声チャット、映像チャット又はビデオチャット、動画データの配信サーバ、音声データの配信サーバ、Webサーバ、データ配信サーバ、SAN、NAS、ファイルサーバ、クラウドストレージ、メールサーバ、等を実現するプログラムが挙げられる。データ送信装置2がデータを送信する各種のプログラムを実行可能であることにより、これら各種のプログラムが送信するデータの送信されるデータ量を減らして通信帯域を有効利用し、通信遅延を小さくできる。
制御部21は、CPU、RAM、及びROM等を備える。制御部21は、ハードウェアマルチスレッディングを利用可能であることが好ましい。CPUは、マルチコアCPUであることが好ましい。制御部21は、ベクトルプロセッサ又はアレイプロセッサを備えていてもよい。ベクトルプロセッサ又はアレイプロセッサは、GPUであってもよい。市場に広く流通しているGPUであれば、比較的安価にベクトルプロセッサを実現できる。ハードウェアマルチスレッディングを高速に実現しうる、マルチコアCPU、ベクトルプロセッサ、アレイプロセッサ等を備えていることにより、制御部21は、並列処理可能なスレッドの実行をより高速に実現できる。並列処理可能なスレッドの実行をより高速に実現することにより、後述する圧縮処理をより短い時間で実行でき、通信遅延を小さくできる。
記憶部22は、データやファイルが記憶される装置であって、ハードディスクや半導体メモリ、記録媒体、メモリカード等による、データのストレージ部を有する。記憶部22は、ネットワークを介してNAS、SAN、クラウドストレージ、ファイルサーバ、分散ファイルシステム等の記憶装置又は記憶システムとの接続を可能にする仕組みを有してもよい。記憶部22には、マイクロコンピューターで実行される制御プログラム、送信対象データ221、識別情報一覧222等が記憶されている。
通信部23は、送信装置2を受信装置3その他の機器と通信可能にするためのデバイスを有する。デバイスの種類は特に限定されるものでなく、例えばイーサネット規格に対応したネットワークカード、IEEE802.11に準拠したWi−Fi対応デバイス、等を有する。大量のデータをやり取りするために、通信部23は、イーサネット規格に対応したネットワークカードを有することが好ましい。
データ受信装置3は、制御部31と、記憶部32と、通信部33と、を含んで構成される。データ受信装置3は、データを受信する各種のプログラムを実行可能であることが好ましい。データを受信する各種のプログラムは、例えば、音声チャット、映像チャット、ビデオチャット、動画データの配信サーバ、動画データの再生を行うソフトウェア、音声データの配信サーバ、音声データの再生を行うソフトウェア、Webサーバ、Webサーバからデータを取得するソフトウェア、データ配信サーバ、データ配信サーバからデータを取得するソフトウェア、SAN、SANからデータを取得するソフトウェア、NAS、NASからデータを取得するソフトウェア、ファイルサーバ、ファイルサーバからデータを取得するソフトウェア、クラウドストレージ、クラウドストレージからデータを取得するソフトウェア、メールサーバ、メールサーバからメールを取得するソフトウェア、等を実現するプログラムが挙げられる。データ受信装置3がデータを受信する各種のプログラムを実行可能であることにより、これら各種のプログラムが受信するデータの受信されるデータ量を減らして通信帯域を有効利用し、通信遅延を小さくできる。
制御部31のハードウェア構成は、制御部21と同様である。制御部31は、所定のプログラムを読み込み、必要に応じて記憶部32及び/又は通信部33と協働することで、受信装置3におけるソフトウェア構成の要素である、スレッド群311、データ受信部312、再構成部313等を実現する。スレッド群311は、スレッド群211と同様である。
記憶部32のハードウェア構成は、記憶部22と同様である。記憶部32には、受信データ321、識別情報一覧322等が記憶されている。
通信部33は、受信装置3を送信装置2その他の機器と通信可能にするためのデバイスを有する。通信部33のハードウェア構成は、通信部23と同様である。
ネットワーク4は、送信装置2と、受信装置3とを接続する。ネットワーク4の種類は特に限定されず、パーソナルエリアネットワーク、ローカルエリアネットワーク、イントラネット、エクストラネット、インターネット、Wi−Fiネットワーク、あるいはこれらを含むネットワークを複数組み合わせたネットワーク等が挙げられる。
以下では、図2を参照しながら、送信装置2が行うデータ送信に関する処理の好ましい手順について説明する。
送信対象となる送信対象データに関するデータ送信が指令されると、まず、制御部21は、記憶部22と協働してデータ分割部212を実行し、送信対象データを分割し、複数の分割データを生成する(ステップS1)。制御部21は、処理をステップS2に移す。分割データは、通信方式に応じた1回のデータ送信における送信データ量の上限から所定のデータ量を引いた値以下のデータ量を有することが好ましい。送信対象データの種類は問わない。送信対象データとして、例えば、文書データ、音声データ、画像データ、動画データ、書庫データ、アプリケーションソフトウェア等を実現するプログラム、インストーラを実現するプログラム又はデータ、アプリケーションソフトウェアが利用するデータ、アプリケーションソフトウェアに機能を追加するデータ、アプリケーションソフトウェアの機能を変更するデータ、BIOSを書き換えるためのデータ、受け側のコンピュータに特定の動作又は一連の動作を指令する命令及び命令群、等が挙げられる。
図2に戻る。制御部21は、記憶部22と協働して識別情報付与部213を実行し、ステップS1で生成された分割データに識別情報を紐付ける。(ステップS2)。制御部21は、処理をステップS3に移す。識別情報付与部213は、識別情報の一覧である識別情報一覧を生成し、受信装置3等の外部へ送信する処理をさらに行ってもよい。識別情報は、分割データから元のデータを再構成可能であれば、特に限定されない。識別情報として、例えば、分割データに割り当てられた通し番号、分割データに割り当てられた通し番号と分割数とを組にした情報、分割データの先頭アドレスのデータの元のデータにおけるアドレス番号、分割データの先頭アドレスのデータの元のデータにおけるアドレス番号と元のデータのデータ量との組、等が挙げられる。
図2に戻る。制御部21は、記憶部22と協働してデータ処理部214を実行し、外部から送信指令を受信したか否かを判定する。(ステップS3)。受信していれば、制御部21は、処理をステップS4に移す。受信していなければ、制御部21は、処理をステップS5に移す。外部から送信指令を受信したか否かを判定することにより、通信障害等によって送信済の送信データの一部又は全部が伝送中に失われていても、受信した送信指令に応じて、それらの送信データを送信できる。
制御部21は、記憶部22と協働してデータ処理部214を実行し、送信指令が示す送信対象となる送信データについて、送信対象データ221に記憶された送信フラグを、未送信を示すよう設定する(ステップS4)。制御部21は、処理をステップS5に移す。送信指令は、送信対象となる送信データに関する識別情報を列挙して送信対象となる送信データを示してもよく、送信対象から除く送信データに関する識別情報を列挙して送信対象となる送信データを示してもよく、送信対象となる送信データの範囲を示す情報によって送信対象となる送信データを示してもよい。また、これらの手法を組み合わせて送信対象となる送信データを示してもよい。
制御部21は、記憶部22と協働してデータ処理部214を実行し、送信フラグが未送信を示す送信データがあるか否かを判定する(ステップS5)。未送信を示す送信データがあれば、制御部21は、処理をステップS6に移す。未送信を示す送信データがなければ、制御部21は、処理をステップS8に移す。
制御部21は、記憶部22と協働してデータ処理部214を実行し、データ処理を割当て可能なスレッド211があるか否かを判定する(ステップS6)。該当するスレッド211があれば、制御部21は、処理をステップS7に移す。該当するスレッドがなければ、制御部21は、処理をステップS8に移す。
制御部21は、記憶部22と協働してデータ処理部214を実行し、データ処理を割当て可能なスレッド群211の有するスレッドのいずれかに分割データに対する一群のデータ処理を割り当てて実行させる(ステップS7)。制御部21は、処理をステップS8に移す。ステップS7の詳細については、後に図5を参照しながら説明する。
制御部21は、記憶部22と協働してデータ処理部214を実行し、受信完了情報を受信したか否かを判定する(ステップS8)。受信したならば、制御部21は、処理を終了し、他の送信対象データに関するデータ送信を待機して、ステップS1〜S8を繰り返す。受信していないならば、制御部21は、処理をステップS3に移す。受信完了情報を受信したか否かを判定するため、受け側が全ての送信データを受信して受信完了情報を送信するまで、送信データの送信を続けられる。したがって、受け側が全ての送信データを受信する前に送信を終了し、受け側が送信データの不足から送信対象データを利用できなくなることがない。
図5は、本実施形態における並列処理可能なスレッドで実行される一群のデータ処理の手順を示すフローチャートの一例である。
スレッド群211の有するスレッドのいずれかに一群のデータ処理の実行が割り当てられると、制御部21は、記憶部22と協働してデータ処理部214を実行し、分割データが圧縮を要する所定データであるか否かを判定する(ステップS11)。所定データであるならば、制御部21は、処理をステップS12に移す。所定データでないならば、制御部21は、処理をステップS13に移す。所定データであるか否かを判定するため、圧縮を要する所定データのみを圧縮でき、通信遅延を小さくできる。所定データであるか否かの判定は、特に限定されない。例えば、圧縮フラグが圧縮済である場合に所定データではないと判定する判定、分割データのデータ量が所定のデータ量以下である場合に所定データではないと判定する判定、これらの判定を組み合わせた判定、等が挙げられる。
制御部21は、記憶部22と協働してデータ処理部214を実行し、所定データを圧縮し、対応する圧縮フラグを圧縮済に変更する(ステップS12)。制御部21は、処理をステップS13に移す。
制御部21は、記憶部22と協働してデータ処理部214を実行し、ステップS12で圧縮された所定データ又は所定データでない分割データと識別情報とを紐付けた、送信データを生成する(ステップS13)。制御部21は、処理をステップS14に移す。ステップS12で圧縮された所定データのデータ量が圧縮される前の分割データのデータ量より大きかった場合、圧縮される前の分割データと識別情報とを紐付けて送信データを生成することが好ましい。送信データは、圧縮手法に関する情報を含んでいてもよい。
制御部21は、記憶部22と協働してデータ処理部214を実行し、送信データの送信処理が可能か否かを判定する(ステップS14)。可能ならば、制御部21は、処理をステップS15に移す。可能でないならば、制御部21は、ステップS14を繰り返す。制御部21は、所定時間待機してからステップS14を繰り返してもよい。所定時間待機することにより、送信処理が可能か否かの判定による制御部21及び通信部23への負担を減らし、同じ制御部21及び通信部23を利用する他のスレッドの実行速度及び処理に要する時間を改善して全体の実行時間の増大を防げる。
制御部21は、記憶部22及び通信部23と協働してデータ処理部214を実行し、配送順序を保証しない通信方式で受信装置3等の外部に送信データを送信する(ステップS15)。制御部21は、処理をステップS16に移す。配送順序を保証しない通信方式は、特に限定されない。配送順序を保証しない通信方式として、例えば、トランスポート層に相当する通信プロトコルのUDP、SCTP、DCCPのいずれか1つ又は複数を含む通信方式が挙げられる。配送順序を保証しない通信方式は、インターネット層に相当する通信プロトコルを含んでもよい。配送順序を保証しない通信方式は、IPを含むことが好ましい。IPを含むことにより、IPを用いる既存のインターネットワークを利用した通信を行える。
図5に戻る。制御部21は、記憶部22及び通信部23と協働してデータ処理部214を実行し、ステップS15で送信した送信データに対応する送信フラグを、送信済を示すよう変更する(ステップS16)。制御部21は、処理を終了して次の一群のデータ処理の実行がスレッド211に割り当てられるまで待機する。
以下では、図8を参照しながら、受信装置3が行うデータ受信に関する処理の好ましい手順について説明する。
制御部31は、記憶部32と協働してデータ受信部312を実行し、一群のデータ受信を割当て可能なスレッド311に一群のデータ受信を割り当てて実行させる(ステップS101)。制御部31は、処理をステップS102に移す。ステップS101の詳細については、後に図10を参照しながら説明する。
制御部31は、記憶部32及び通信部33と協働してデータ受信部312を実行し、識別情報一覧を受信したか否かを判定する(ステップS102)。受信したら、制御部31は、記憶部32と協働して識別情報一覧を識別情報一覧321に記憶し、処理をステップS103に移す。受信していないならば、制御部31は、ステップS102の処理を繰り返す。
制御部31は、記憶部32と協働してデータ受信部312を実行し、所定時間が経過するまで処理を待機する(ステップS103)。制御部31は、処理をステップS104に移す。所定時間待機することにより、後述する送信指令を立て続けに送信することによる通信されるデータ量の増大を防げる。制御部31は、所定時間が経過するまで処理を待機する代わりに、スレッド群311のスレッドを同期するスレッド同期オブジェクトがスレッドの同期に関する所定の動作を実行するまで処理を待機してもよい。スレッドの同期に関する所定の動作を実行するまで処理を待機することにより、スレッド群311のスレッドの同期処理がより効果的に行われ、通信遅延を小さくできる。また、受信データ321、識別情報322等へのアクセスを制御する排他制御コンテナがアクセスの排他制御に関する所定の動作を実行するまで処理を待機してもよい。アクセスの排他制御に関する所定の動作を実行するまで処理を待機することにより、受信データ321、識別情報322等へのアクセスがより効果的に行われ、通信遅延を小さくできる。スレッド同期オブジェクトは、Mutex、Semaphore、Eventのいずれか、又は、これらのいずれかを継承したオブジェクトを含むことが好ましい。排他制御コンテナは、Queue、Stack、List、Vectorのいずれか又はこれらのいずれかを継承したコンテナを含むことが好ましい。
制御部31は、記憶部32と協働してデータ受信部312を実行し、識別情報一覧321と後述する受信データ322との間に差異があるか否かを判定する(ステップS104)。差異があれば、制御部31は、処理をステップS105に移す。差異がなければ、制御部31は、処理をステップS106に移す。
図8に戻る。制御部31は、記憶部32及び通信部33と協働してデータ受信部312を実行し、識別情報一覧を送信した外部に、識別情報一覧のうち受信データ321に記憶された識別情報と異なる被分割圧縮データの送信を指令する(ステップS105)。制御部31は、処理をステップS103に移す。識別情報一覧のうち受信データ321に記憶された識別情報と異なる被分割圧縮データの送信を指令することにより、通信障害等によって被分割圧縮データの一部又は全部がネットワーク4を介した伝送中に失われていても、それら失われた被分割圧縮データの送信を指令して、受信できる。
制御部31は、記憶部32と協働して再構成部313を実行し、識別情報を用いて元になるデータを再構成する(ステップS106)。制御部31は、処理をステップS107に移す。再構成部313は、処理フラグが要処理を示していない被分割データに関する再構成から順に進めていくことが好ましい。処理フラグが要処理を示していない被分割データに関する再構成から順に進めることで、再構成と処理フラグが要処理を示す被分割データに関する伸長処理とを同時に実行し、通信遅延を小さくできる。再構成の手法は、識別情報を用いるものであれば、特に限定されない。再構成の手法として、例えば、通し番号の順に被分割データを連結する再構成手法、受信して伸長したデータを再構成後のファイルのアドレス番号の位置に書き込む再構成手法、等が挙げられる。受信して伸長したデータを再構成後のファイルのアドレス番号の位置に書き込む再構成手法は、予め元のデータのデータ量の記憶領域を確保することが好ましい。
制御部31は、記憶部32及び通信部33と協働して再構成部313を実行し、識別情報一覧を送信した外部に、受信完了を通知する受信完了情報を送信する(ステップS107)。制御部31は、処理をステップS101に移し、ステップS101からステップS107を繰り返す。
図10は、本実施形態における並列処理可能なスレッドで実行される一群のデータ受信の手順を示すフローチャートの一例である。
スレッド311に一群のデータ受信の実行が割り当てられると、制御部31は、記憶部32及び通信部33と協働してデータ受信部312を実行し、被分割圧縮データを識別可能な識別情報と紐付けられた被分割圧縮データを受信したか否かを判定する(ステップS111)。受信したならば、制御部31は、処理をステップS112に移す。受信していないならば、制御部31は、ステップS111を繰り返す。受信していないならば、制御部31は、所定時間待機してから、ステップS111を繰り返してもよい。所定時間待機することにより、制御部31及び通信部33への負担を減らし、他のスレッドの実行速度及び処理に要する時間を改善して、通信遅延の増大を防げる。
制御部31は、記憶部32及び通信部33と協働してデータ受信部312を実行し、受信データ321に識別情報と被分割圧縮データとを紐付けて記憶する(ステップS112)。制御部31は、処理をステップS113に移す。図9に示した受信データ321の例では、受信した被分割圧縮データを、処理前データに記憶し、紐付けられた識別情報を。識別情報に記憶している。被分割圧縮データを記憶する順番は、特に限定されない。被分割圧縮データを記憶する順番として、例えば、図9に示す被分割圧縮データを受信した順番、識別情報が含む通し番号に沿った順番、等が挙げられる。
図10に戻る。制御部31は、記憶部32及び通信部33と協働してデータ受信部312を実行し、受信した被分割圧縮データに関する伸長処理が必要か否かを判定する(ステップS113)。伸長処理が必要であれば、制御部31は、処理をステップS114に移す。伸長処理が必要でなければ、制御部31は、処理をステップS116に移す。
制御部31は、記憶部32及び通信部33と協働してデータ受信部312を実行し、受信データ321が記憶する受信した被分割圧縮データに関する処理フラグを、要処理を示すよう変更する(ステップS114)。制御部31は、処理をステップS115に移す。
制御部31は、記憶部32及び通信部33と協働してデータ受信部312を実行し、受信した被分割圧縮データに関する伸長処理を実行する(ステップS115)。制御部31は、処理をステップS116に移す。
制御部31は、記憶部32及び通信部33と協働してデータ受信部312を実行し、受信データ321が記憶する受信した被分割圧縮データに関する処理フラグを、処理不要を示すよう変更する(ステップS116)。制御部31は、処理をステップS111に移し、ステップS111からステップS116を繰り返す。
続いて、本実施形態におけるシステム1の使用例を説明する。
利用者又は送信装置2で実行される他のプログラムは、送信装置2に送信対象データの送信を指令する。送信装置2は、データ分割部212を実行し、送信対象データを分割して分割データを生成する。送信装置2は、識別情報付与部213を実行し、分割データに識別情報を付与し、識別情報一覧222を受信装置3に送信する。送信装置2は、データ処理部214を実行し、並列処理可能な複数のスレッド211のいずれか(例えば、スレッド211a)に複数の分割データに関する一群のデータ処理を割り当てて実行させる。データ処理を割り当てられたスレッドは、所定の分割データを圧縮し、識別情報が紐付けられた送信データを準備する。そして、データ処理を割り当てられたスレッドは、データの配送順序を保証しない通信方式で送信データを受信装置3に送信する。
送信データは、ネットワーク4を介して、受信装置3に配送される。
受信装置3は、データ受信部321を実行し、並列処理可能な複数のスレッド311のいずれかにデータ受信に関する一群の処理を割り当てて実行させる。スレッド311は、送信装置2が送信した送信データを識別情報が紐付けられた被分割圧縮データとして受信する。さらに、スレッド311は、伸長処理を要する被分割圧縮データの伸長処理を行い、伸長された被分割圧縮データに関する被分割データを生成する。また、伸長処理を要しない被分割圧縮データから、被分割データを生成する。全ての被分割圧縮データを受信すると、受信装置3は、送信装置2に受信完了情報を送信する。そして、再構成部313を実行し、複数の被分割データ及び識別情報を用いて送信対象データを再構成する。再構成された送信対象データは、受信装置3で実行される他のプログラムによって利用されてもよい。
送信装置2は、受信完了情報を受信し、データの送信を終了する。
以下、本実施形態に記載の発明における種々の変形例を例示する。
実施例の受信装置3は、識別情報一覧を受信し、ステップS104で識別情報一覧と受信データとの間に差異があるか判定し、ステップS105で識別情報一覧のうち、受信データと異なるデータの送信を指令したが、これに限るものでない。本変形例では、受信装置3は、識別情報一覧を受信せず、被分割圧縮データの分割数を受信し、受信した被分割圧縮データの数がこの分割数未満であるときに、受信した被分割圧縮データと異なる被分割圧縮データの送信を指令する場合について説明する。以下、図13を参照しながら、被分割圧縮データの分割数を受信するデータ受信の手順について説明する。
図13は、本変形例における被分割圧縮データの分割数を受信するデータ受信を行う手順を示すフローチャートの一例である。本変形例の被分割圧縮データのうち少なくとも1つは、被分割圧縮データの分割数を示す情報を含む。本変形例の記憶部32は、被分割圧縮データの分割数を記憶する最終データ分割数変数を記憶する。
[ステップS103:所定時間が経過するまで待機]
ステップS101は、分割数変数を、未受信を示すよう設定し、制御部31が処理をステップS103に移すことを除き、基本実施例のステップS101と同じである。ステップS103は、制御部31が処理をステップS201に移すことを除き、基本実施例のステップS103と同じである。
制御部31は、記憶部32及び通信部33と協働してデータ受信部312を実行し、分割数変数を参照して、分割数が未受信であるか否かを判定する(ステップS201)。未受信を示していれば、制御部31は、処理をステップS202に移す。未受信を示していなければ、制御部31は、処理をステップS203に移す。
制御部31は、記憶部32及び通信部33と協働してデータ受信部312を実行し、送り側に分割数の送信を指令する(ステップS202)。制御部31は、処理をステップS103に移す。送り側に分割数の送信を指令することにより、通信障害等によって分割数がネットワーク4を介した伝送中に失われていても、分割数を受信できる。
制御部31は、記憶部32及び通信部33と協働してデータ受信部312を実行し、分割数変数と受信データ321が記憶する被分割圧縮データの数とが一致するか否かを比較して、未受信の被分割圧縮データがあるか否かを判定する(ステップS203)。未受信の被分割圧縮データがあれば、制御部31は、処理をステップS204に移す。未受信の被分割圧縮データがなければ、制御部31は、処理をステップS106に移す。
制御部31は、記憶部32及び通信部33と協働してデータ受信部312を実行し、送信装置2等の送り側に、受信データと異なるデータの送信を指令する(ステップS204)。制御部31は、処理をステップS106に移す。受信データと異なるデータの送信の指令は、受信データ321が記憶する識別情報の一覧を含むことが好ましい。
[ステップS107:受信完了情報を送信]
ステップS106及びステップS107は、基本実施例と同じである。
本変形例では、受信装置3は、全ての被分割圧縮データを受信したか否かを判別可能とする情報を受信し、全ての被分割圧縮データを受信していないときに、受信した被分割圧縮データと異なる被分割圧縮データの送信を指令する場合を説明する。全ての被分割圧縮データを受信したか否かを判別可能とする情報は、特に限定されない。全ての被分割圧縮データを受信したか否かを判別可能とする情報は、例えば、被分割圧縮データのハッシュ値、被分割圧縮データのチェックサム、元になるデータのデータ量、等が挙げられる。
図14は、全ての被分割圧縮データを受信したか否かを判別可能とする情報を受信するデータ受信を行う手順を示すフローチャートの一例である。本変形例の被分割圧縮データのうち少なくとも1つは、全ての被分割圧縮データを受信したか否かを判別可能とする情報を含む。本変形例の記憶部32は、全ての被分割圧縮データを受信したか否かを判別可能とする情報を記憶する受信完了判別情報を記憶する。
[ステップS103:所定時間が経過するまで待機]
ステップS101は、受信完了判別情報を、未受信を示すよう設定し、制御部31が処理をステップS103に移すことを除き、基本実施例のステップS101と同じである。ステップS103は、制御部31が処理をステップS301に移すことを除き、基本実施例のステップS103と同じである。
制御部31は、記憶部32及び通信部33と協働してデータ受信部312を実行し、受信完了判別情報を参照して、全ての被分割圧縮データを受信したか否かを判別可能とする情報が未受信であるか否かを判定する(ステップS301)。分割数変数が未受信を示していれば、制御部31は、処理をステップS302に移す。分割数変数が未受信を示していなければ、制御部31は、処理をステップS303に移す。
制御部31は、記憶部32及び通信部33と協働してデータ受信部312を実行し、送り側に全ての被分割圧縮データを受信したか否かを判別可能とする情報の送信を指令する(ステップS302)。制御部31は、処理をステップS103に移す。送り側に全ての被分割圧縮データを受信したか否かを判別可能とする情報の送信を指令することにより、通信障害等によって全ての被分割圧縮データを受信したか否かを判別可能とする情報がネットワーク4を介した伝送中に失われていても、全ての被分割圧縮データを受信したか否かを判別可能とする情報を受信できる。
制御部31は、記憶部32及び通信部33と協働してデータ受信部312を実行し、受信完了判別情報と受信データ321とを比較して、未受信の被分割圧縮データがあるか否かを判定する(ステップS203)。未受信の被分割圧縮データがあれば、制御部31は、処理をステップS204に移す。未受信の被分割圧縮データがなければ、制御部31は、処理をステップS106に移す。受信完了判別情報と受信データ321との比較を行う方法は、特に限定されない。
[ステップS106:識別情報を用いて元になるデータを再構成]
[ステップS107:受信完了情報を送信]
ステップS204は変形例1と同じである。ステップS106及びステップS107は、基本実施例と同じである。
本変形例では、受信装置3は、並列処理可能な複数のスレッドで再構成処理を実行する場合について説明する。本変形例の識別情報一覧322は、元のデータのデータ量と、被分割圧縮データに関する被分割データのデータ量とを含むことが好ましい。
[ステップS102:識別情報一覧を受信したか判定]
[ステップS103:所定時間が経過するまで待機]
[ステップS104:識別情報一覧と受信データとの間に差異があるか判定]
[ステップS105:識別情報一覧のうち、受信データと異なるデータの送信を指令]
[ステップS107:受信完了情報を送信]
ステップS101は、一群のデータ受信が再構成処理をさらに含むことを除き、基本実施例と同じである。ステップS102、ステップS103、ステップS105、ステップS107は、基本実施例と同じである。ステップS104は、識別情報一覧321と後述する受信データ322との間に差異がなければ、処理をステップS107に移すことを除き、基本実施例と同じである。
本変形例における並列処理可能なスレッドで実行される一群のデータ受信の手順は、ステップS116に続けて以下の処理を行う。
制御部31は、記憶部32と協働して再構成部313を実行し、識別情報を用いて元になるデータを再構成する(ステップS117)。制御部31は、処理をステップS111に移し、ステップS111からステップS117を繰り返す。再構成の手法は、識別情報を用いるものであれば、特に限定されない。再構成の手法として、例えば、通し番号の順に被分割データを連結する再構成手法、受信して伸長したデータを再構成後のファイルのアドレス番号の位置に書き込む再構成手法、等が挙げられる。再構成の手法は、受信して伸長したデータを再構成後のファイルのアドレス番号の位置に書き込む再構成手法を含むことが好ましい。受信して伸長したデータを再構成後のファイルのアドレス番号の位置に書き込む再構成手法であれば、複数の再構成処理を同時に実行できる。したがって、通信遅延をより小さくできる。
2 データ送信装置
21 制御部
211 スレッド群
211a スレッド
211b スレッド
212 データ分割部
213 識別情報付与部
214 データ処理部
22 記憶部
221 送信対象データ
222 識別情報一覧
23 通信部
3 データ受信装置
31 制御部
311 スレッド群
311a スレッド
311b スレッド
312 データ受信部
313 再構成部
32 記憶部
321 受信データ
322 識別情報一覧
33 通信部
4 ネットワーク
Claims (1)
- データ受信装置に、
外部からの一群のデータ受信を、並列処理可能な複数のスレッドのいずれかに割り当てて実行するデータ受信ステップを実行させ、
前記一群のデータ受信は、
元になるデータが複数に分割され、かつ、分割された複数の分割データのうち所定の分割データが圧縮された複数の被分割圧縮データであって、これら複数の被分割圧縮データがそれぞれ識別情報によって識別可能な複数の被分割圧縮データを受信する被分割圧縮データ受信処理と、
受信した前記複数の被分割圧縮データを伸長する伸長処理と、
伸長された前記被分割圧縮データから前記元になるデータを再構成する再構成処理と、
を含み、
前記一群のデータ受信は、前記外部から前記識別情報の一覧を受信する一覧受信処理をさらに含み、
前記データ受信装置に、前記識別情報の一覧に紐づけられるデータ群のうち、前記被分割圧縮データ受信処理で受信した複数の被分割圧縮データとは異なる一又は複数のデータの送信を前記外部に指令する送信指令ステップをさらに実行させる、プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2020/020250 WO2021234936A1 (ja) | 2020-05-22 | 2020-05-22 | データ送信装置、プログラム及びシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6823333B1 true JP6823333B1 (ja) | 2021-02-03 |
JPWO2021234936A1 JPWO2021234936A1 (ja) | 2021-11-25 |
Family
ID=74225975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020547246A Active JP6823333B1 (ja) | 2020-05-22 | 2020-05-22 | データ送信装置、プログラム及びシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210368026A1 (ja) |
JP (1) | JP6823333B1 (ja) |
WO (1) | WO2021234936A1 (ja) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000278138A (ja) * | 1999-03-24 | 2000-10-06 | Hitachi Ltd | 圧縮データ復元装置,圧縮データ復元方法、及び、電子線描画システム |
US20020101932A1 (en) * | 2000-11-29 | 2002-08-01 | Montgomery Dennis L. | Method and apparatus for encoding information using multiple passes and decoding in a single pass |
JP3923315B2 (ja) * | 2002-01-08 | 2007-05-30 | 富士通株式会社 | データ圧縮装置 |
JP5051327B1 (ja) * | 2012-03-22 | 2012-10-17 | 富士ゼロックス株式会社 | 画像処理装置及びプログラム |
JP2018011207A (ja) * | 2016-07-14 | 2018-01-18 | 株式会社日立製作所 | 通信装置、通信制御方法、及びネットワークシステム |
CN116774961A (zh) * | 2017-08-25 | 2023-09-19 | 微软技术许可有限责任公司 | 无线可编程媒体处理系统 |
-
2020
- 2020-05-22 JP JP2020547246A patent/JP6823333B1/ja active Active
- 2020-05-22 WO PCT/JP2020/020250 patent/WO2021234936A1/ja active Application Filing
-
2021
- 2021-06-15 US US17/347,602 patent/US20210368026A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JPWO2021234936A1 (ja) | 2021-11-25 |
US20210368026A1 (en) | 2021-11-25 |
WO2021234936A1 (ja) | 2021-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101828372B (zh) | 对网络连接的tcp行为并行化 | |
US7653749B2 (en) | Remote protocol support for communication of large objects in arbitrary format | |
US8671152B2 (en) | Network processor system and network protocol processing method | |
JP7154399B2 (ja) | データ伝送方法、装置、コンピュータ読み取り可能な媒体および電子デバイス | |
US20120110194A1 (en) | Data communication method and information processing device | |
US10367873B2 (en) | Method of communicating data packets within data communication systems | |
US8504694B2 (en) | Remote content classification and transmission using multiple transport channels | |
MXPA05010227A (es) | Sistema y metodo para transmitir archivos con base en medios. | |
JP2007334899A (ja) | 複数のタイプのデータ接続を利用して、データを通信するシステムおよび方法 | |
JP2007317181A (ja) | ネットワークストレージ装置 | |
US10050893B2 (en) | Data transmission using modified weighted fair queue algorithm | |
US10521317B1 (en) | Compressing data to be replicated utilizing a compression method selected based on network behavior | |
CN105207975A (zh) | 一种vdi架构下的usb图像设备数据传输方法和系统 | |
CN111147573A (zh) | 一种数据传输的方法和装置 | |
JP6823333B1 (ja) | データ送信装置、プログラム及びシステム | |
US20040049367A1 (en) | Communication device and communication method | |
CN112350979B (zh) | 数据传输方法和设备 | |
JP2009188655A (ja) | 通信制御方法、情報処理システム、情報処理装置及びプログラム | |
US10673801B2 (en) | Dynamic communication session management | |
WO2021181896A1 (ja) | 通信装置、通信装置の制御方法、および集積回路 | |
JP7075077B2 (ja) | バックアップサーバ、バックアップ方法、プログラム、ストレージシステム | |
CN116260887A (zh) | 数据传输方法、数据发送装置、数据接收装置和存储介质 | |
US20220329674A1 (en) | Communication apparatus, communication method, and storage medium | |
WO2013082783A1 (zh) | 数据处理方法及设备 | |
US11336592B2 (en) | Flexible link level retry for shared memory switches |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200918 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201001 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20201001 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20201023 |
|
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: 20201214 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201225 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6823333 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |