JP2011044823A - Communication equipment, communication system, communication method and communication program - Google Patents

Communication equipment, communication system, communication method and communication program Download PDF

Info

Publication number
JP2011044823A
JP2011044823A JP2009190429A JP2009190429A JP2011044823A JP 2011044823 A JP2011044823 A JP 2011044823A JP 2009190429 A JP2009190429 A JP 2009190429A JP 2009190429 A JP2009190429 A JP 2009190429A JP 2011044823 A JP2011044823 A JP 2011044823A
Authority
JP
Japan
Prior art keywords
processing
block
data
request
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.)
Pending
Application number
JP2009190429A
Other languages
Japanese (ja)
Inventor
Koichi Inoue
浩一 井上
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2009190429A priority Critical patent/JP2011044823A/en
Publication of JP2011044823A publication Critical patent/JP2011044823A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a communication technology for making retransmission of data into necessary minimum to increase efficiency in one-to-many communication based on multicast. <P>SOLUTION: A request processing part 301 receives a processing request from an acceptance server 200 and transmits a processing result of an image processing part 304 to the acceptance server 200 by a TCP. A data receiving part 305 stores image data to be processed transmitted by the multicast of a UDP from the acceptance server 200 in a data accumulation part 303 by block. A reception completion determination part 306 determines reception completion of each block. The image processing part 304 uses a block to be processed of the image data to be processed to execute processing. A retransmission request part 307 transmits, when it is determined that reception is not normally completed for the block to be processed when the image processing part 304 executes the processing, a retransmission request to the acceptance server 200 by the TCP, and receives the block transmitted according to the retransmission request. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、通信装置、通信システム、通信方法及び通信プログラムに関する。   The present invention relates to a communication device, a communication system, a communication method, and a communication program.

例えば、文字を認識したりバーコードを認識したりする画像処理は大量の計算を必要とするため、一般にCPU(Central Processing Unit)の処理能力を必要とする。CPUなどのコンピュータの処理能力が飛躍的に増大する現在においても、これらの画像処理の処理時間は無視できるほど小さな時間とはなっていない。大量の計算を短時間で行うために有効な方法の一つは、処理単位を小さく分割して、多数のコンピュータで分散処理させることである。具体的には、例えば、クライアントからの処理要求を受け付ける受付サーバS1と、処理対象の画像を記憶するストレージサーバS2と、複数の処理サーバW1〜Wnとがネットワークを介して接続される分散処理システムがある。受付サーバS1は、外部から処理対象の画像データをストレージサーバS2に取り込み、受付サーバS1は、各処理サーバW1〜Wnに対して当該画像データの各々異なる部分に対する処理を要求する処理要求を送信する。各処理サーバW1〜Wnはそれぞれ、当該処理要求に従って、ストレージサーバS2にアクセスし、画像データを読み込んで処理を実行し、処理結果をレスポンスとして受付サーバS1に返す。受付サーバS1は、各処理サーバW1〜Wnからの処理結果が全て得られた段階で、処理結果をクライアントに返す。このような分散システムでは、ストレージサーバS2がボトルネックとなりやすい。即ち、処理要求を受信した処理サーバW1〜Wnが個別にストレージサーバS2から画像データを取得する時、ネットワークへの負荷が大きくなる。また、ストレージサーバS2が故障するとこの分散システム全体が動作不能となる恐れがある。   For example, image processing for recognizing characters or recognizing barcodes requires a large amount of calculation, and therefore generally requires processing capability of a CPU (Central Processing Unit). Even at the present time when the processing power of computers such as CPUs has increased dramatically, the processing time of these image processing is not so small as to be negligible. One effective method for performing a large amount of computation in a short time is to divide a processing unit into small parts and perform distributed processing with a large number of computers. Specifically, for example, a distributed processing system in which a reception server S1 that receives a processing request from a client, a storage server S2 that stores a processing target image, and a plurality of processing servers W1 to Wn are connected via a network. There is. The reception server S1 takes in image data to be processed from the outside into the storage server S2, and the reception server S1 transmits a processing request for requesting processing to each different part of the image data to each of the processing servers W1 to Wn. . Each of the processing servers W1 to Wn accesses the storage server S2 according to the processing request, reads the image data, executes the processing, and returns the processing result as a response to the receiving server S1. The reception server S1 returns the processing results to the client when all the processing results from the processing servers W1 to Wn are obtained. In such a distributed system, the storage server S2 tends to be a bottleneck. That is, when the processing servers W1 to Wn that have received the processing request individually acquire image data from the storage server S2, the load on the network increases. Also, if the storage server S2 fails, the entire distributed system may become inoperable.

ところで、ネットワークを介して接続された一つの送信装置から複数の受信装置に対して同時にデータを送信する方法としては、UDP(User Datagram Protocol)マルチキャストを用いる方法が知られている。IPネットワークでデータ通信を行うプロトコルではTCP(Transmission Control Protocol)とUDPとが代表的であるが、TCPはコネクション型で送達確認を含む代わりに1対1の通信のみが可能であり、UDPはコネクションレス型で1対多の通信が可能な反面、送達確認の機能を持たない。そのためUDPによるマルチキャスト通信ではデータの欠損が問題となるため、アプリケーションレベルでのプロトコルで送達確認を実装することになる。例えば、すべての受信装置がデータの受信を確認するための送達確認を含むパケット(送達確認パケットという)を送信装置に送信し、送信装置からの送達確認を待って次のパケットを送信するか前のパケットを再送するという方法が考えられる。しかしこの方法では、送信装置への負担が大きくなり、またほとんどの受信装置にとって再送するパケットは無駄となる。   By the way, as a method of simultaneously transmitting data from a single transmission device connected via a network to a plurality of reception devices, a method using UDP (User Datagram Protocol) multicast is known. TCP (Transmission Control Protocol) and UDP are typical protocols for data communication over IP networks. However, TCP is connection-type and only one-to-one communication is possible instead of including delivery confirmation, and UDP is a connection. While it is possible to perform one-to-many communication with the less type, it does not have a delivery confirmation function. For this reason, data loss becomes a problem in multicast communication using UDP, so delivery confirmation is implemented using an application-level protocol. For example, a packet including a delivery confirmation for confirming the reception of data by all the receiving devices (referred to as a delivery confirmation packet) is transmitted to the transmitting device, and the next packet is transmitted after waiting for a delivery confirmation from the transmitting device. It is conceivable to retransmit the packet. However, with this method, the burden on the transmission apparatus becomes large, and packets to be retransmitted are wasted for most reception apparatuses.

近年では、マルチキャストによるデータ通信の効率化を目的とした方法も多く提案されている。しかし、従来の方法では、すべての受信装置に等しくすべてのデータが受信されることを目的としている。例えば、複数のページの画像を表す画像データに対する画像処理をページ毎にそれぞれ最低1つのコンピュータに行わせることを目的とすると、各コンピュータで必要とする画像データはほんの一部分であり、大半の部分の再送は無駄になるという問題があった。上述の分散システムにおいては、受付サーバS1で画像データを処理サーバ毎に個別の処理単位に分割することも考えられる。しかし、データ形式によっては分割が容易でなく、受付サーバS1が分割のために画像データを変換するなどの処理に時間を要するため、スケールアウトに適しない場合がある。また、例えば、特許文献1には、送達確認と再送とを効率化する目的で、ファイルをブロックに分割し、順序番号をつけて送信し、全体の送信が完了した後に受信装置からの順序番号による指定に基づいて受信できなかった部分を再送する仕組みが開示されている。   In recent years, many methods for improving the efficiency of data communication by multicast have been proposed. However, the conventional method aims to receive all data equally by all receiving apparatuses. For example, if it is intended to cause at least one computer to perform image processing on image data representing images of a plurality of pages for each page, the image data required for each computer is only a part, and most parts There was a problem that retransmission was wasted. In the above-described distributed system, it is conceivable that the receiving server S1 divides the image data into individual processing units for each processing server. However, division may not be easy depending on the data format, and it may not be suitable for scale-out because the reception server S1 requires time for processing such as converting image data for division. Further, for example, in Patent Document 1, for the purpose of improving the efficiency of delivery confirmation and retransmission, a file is divided into blocks, transmitted with a sequence number, and the sequence number from the receiving device after the entire transmission is completed. A mechanism for retransmitting a part that could not be received based on the designation by is disclosed.

しかし、従来の技術では、全てのデータが全ての送信装置に到達しなくても良い場合にも、送達確認と再送とを効率化することは困難である。このため、このような場合にも、マルチキャストに基づく1対多の通信において、データの再送を必要最小限とし、より効率化することが望まれていた。   However, with the conventional technology, it is difficult to make delivery confirmation and retransmission more efficient even when all data does not have to reach all transmission apparatuses. For this reason, even in such a case, in one-to-many communication based on multicast, it has been desired to minimize data retransmission and improve efficiency.

本発明は、マルチキャストに基づく1対多の通信において、データの再送を必要最小限とし、より効率化することが可能な通信装置、通信システム、通信方法及び通信プログラムを提供することを目的とする。   An object of the present invention is to provide a communication device, a communication system, a communication method, and a communication program that can minimize data retransmission and improve efficiency in one-to-many communication based on multicast. .

上述した課題を解決し、目的を達成するために、本発明は、通信装置であって、複数のブロックに分割されたデータの一部に対する処理を要求する処理要求を、送達確認のある第1の通信方式で他の通信装置から受信する第1受信手段と、前記データを、送達確認のない第2の通信方式で前記他の通信装置から受信する第2受信手段と、前記処理要求に従って、前記データの一部に対して、前記処理を実行する処理手段と、前記処理手段が前記処理を実行する際に、前記データの一部に該当する前記ブロックの受信が正常に完了していない場合、当該ブロックの再送を要求する再送要求を前記他の通信装置に送信する再送要求手段と、前記再送要求手段が送信した前記再送要求に従って前記他の通信装置から送信された前記ブロックを受信する第3受信手段と、前記処理手段が前記処理を実行した結果を、前記第1の通信方式で前記他の通信装置に送信する送信手段とを備えることを特徴とする。   In order to solve the above-described problems and achieve the object, the present invention is a communication apparatus, which is a communication device that has a delivery confirmation request for a process request for processing a part of data divided into a plurality of blocks. In accordance with the processing request, the first receiving means for receiving from the other communication device in the communication method, the second receiving means for receiving the data from the other communication device in the second communication method without delivery confirmation, A processing unit that executes the process on a part of the data, and the reception of the block corresponding to the part of the data is not normally completed when the processing unit executes the process. A retransmission request means for transmitting a retransmission request for requesting retransmission of the block to the other communication apparatus; and receiving the block transmitted from the other communication apparatus in accordance with the retransmission request transmitted by the retransmission request means. A third receiving means, the result of said processing means executes the processing, characterized by comprising a transmitting means for transmitting to the other communication device in the first communication method.

また、本発明は、第1受信手段と、第2受信手段と、処理手段と、再送要求手段と、第3受信手段と、送信手段とを備える通信装置で実行される通信方法であって、前記第1受信手段が、複数のブロックに分割されたデータの一部に対する処理を要求する処理要求を、送達確認のある第1の通信方式で他の通信装置から受信する第1受信ステップと、前記第2受信手段が、前記データを、送達確認のない第2の通信方式で前記他の通信装置から受信する第2受信ステップと、前記処理手段が、前記処理要求に従って、前記データの一部に対して、前記処理を実行する処理ステップと、前記再送要求手段が、前記処理ステップで前記処理が実行される際に、前記データの一部に該当する前記ブロックの受信が正常に完了していない場合、当該ブロックの再送を要求する再送要求を前記他の通信装置に送信する再送要求ステップと、第3受信手段が、前記再送要求ステップで送信された前記再送要求に従って前記他の通信装置から送信された前記ブロックを受信する第3受信ステップと、前記送信手段が、前記処理ステップで前記処理が実行された結果を、前記第1の通信方式で前記他の通信装置に送信する送信ステップとを含むことを特徴とする。   Further, the present invention is a communication method executed by a communication apparatus including a first receiving unit, a second receiving unit, a processing unit, a retransmission request unit, a third receiving unit, and a transmitting unit, A first receiving step in which the first receiving means receives a processing request for requesting processing of a part of data divided into a plurality of blocks from another communication device in a first communication method with delivery confirmation; A second receiving step in which the second receiving means receives the data from the other communication device in a second communication method without delivery confirmation; and the processing means is configured to receive a part of the data according to the processing request. On the other hand, when the processing step for executing the processing and the retransmission request means execute the processing in the processing step, reception of the block corresponding to a part of the data has been normally completed. If not, A retransmission request step for transmitting a retransmission request for requesting retransmission of a packet to the other communication device, and a third receiving means transmitted from the other communication device according to the retransmission request transmitted in the retransmission request step. A third reception step of receiving the block; and a transmission step of transmitting the result of the execution of the processing by the processing step to the other communication device by the first communication method. It is characterized by.

また、本発明は、上記の通信方法をコンピュータに実行させるためのプログラムである。   Moreover, this invention is a program for making a computer perform said communication method.

本発明によれば、マルチキャストに基づく1対多の通信において、データの再送を必要最小限とし、より効率化することが可能になる。   According to the present invention, in one-to-many communication based on multicast, it is possible to minimize data retransmission and improve efficiency.

図1は、本実施の形態にかかる通信システムの構成を例示する図である。FIG. 1 is a diagram illustrating a configuration of a communication system according to the present embodiment. 図2は、受付サーバ200の機能的構成を例示する図である。FIG. 2 is a diagram illustrating a functional configuration of the reception server 200. 図3は、処理サーバ300の機能的構成を例示する図である。FIG. 3 is a diagram illustrating a functional configuration of the processing server 300. 図4は、ブロック管理部308が記憶する情報を例示する図である。FIG. 4 is a diagram illustrating information stored in the block management unit 308. 図5は、受付サーバ200が行なう通信処理の手順を示すフローチャートである。FIG. 5 is a flowchart illustrating a communication process performed by the reception server 200. 図6は、受付サーバ200が処理サーバ300に送信する処理要求のデータ構成を例示する図である。FIG. 6 is a diagram illustrating a data configuration of a processing request transmitted from the reception server 200 to the processing server 300. 図7は、各処理サーバ300が行なう通信処理の手順を示すフローチャートである。FIG. 7 is a flowchart showing a communication processing procedure performed by each processing server 300. 図8は、図7のステップS14で処理を実行する手順を示すフローチャートである。FIG. 8 is a flowchart showing the procedure for executing the process in step S14 of FIG. 図9は、複数のページの画像を表すTIFF形式の画像データのデータ構成を簡略化して例示する図である。FIG. 9 is a diagram illustrating a simplified data structure of TIFF format image data representing a plurality of pages of images. 図10は、再送要求のデータ構成を例示する図である。FIG. 10 is a diagram illustrating a data configuration of a retransmission request. 図11は、一変形例にかかる処理要求のデータ構成を例示する図である。FIG. 11 is a diagram illustrating a data configuration of a processing request according to a modification. 図12は、一変形例にかかるステップS14で処理を実行する手順を示すフローチャートである。FIG. 12 is a flowchart illustrating a procedure for executing the process in step S14 according to a modification. 図13は、再送要求のデータ構成を例示する図である。FIG. 13 is a diagram illustrating a data configuration of a retransmission request. 図14は、再送要求のデータ構成を例示する図である。FIG. 14 is a diagram illustrating a data configuration of a retransmission request. 図15は、図13に示される再送要求に従って受付サーバ200が再送対象のブロックを処理サーバ300に送信する際のパケットのデータ構成を例示する図である。FIG. 15 is a diagram illustrating a data configuration of a packet when receiving server 200 transmits a block to be retransmitted to processing server 300 in accordance with the retransmission request illustrated in FIG.

以下に添付図面を参照して、この発明にかかる通信装置、通信システム、通信方法及び通信プログラムの実施の形態を詳細に説明する。   Exemplary embodiments of a communication device, a communication system, a communication method, and a communication program according to the present invention will be described below in detail with reference to the accompanying drawings.

図1は、本実施の形態にかかる通信システムの構成を例示する図である。通信システムは、クライアント100と、受付サーバ200と、複数の処理サーバ300とを備える。クライアント100と受付サーバ200とはネットワークNT1を介して接続される。受付サーバ200と複数の処理サーバ300とはネットワークNT2を介して接続される。ネットワークNT1,NT2は、例えば、LAN(Local Area Network)、イントラネット、又はインターネットなどである。   FIG. 1 is a diagram illustrating a configuration of a communication system according to the present embodiment. The communication system includes a client 100, a reception server 200, and a plurality of processing servers 300. Client 100 and acceptance server 200 are connected via network NT1. Reception server 200 and a plurality of processing servers 300 are connected via network NT2. The networks NT1 and NT2 are, for example, a LAN (Local Area Network), an intranet, or the Internet.

このような通信システムにおいて、クライアント100が、処理対象の画像データを含み当該画像データに対する処理を要求する処理要求を、ネットワークNT1を介して受付サーバ200に送信し、受付サーバ200が、当該処理要求に従って、ネットワークNT2を介して各処理サーバ300に当該処理要求を各々送信する。各処理サーバ300は当該処理要求に従って、処理を実行し、その処理結果をネットワークNT2を介して受付サーバ200に送信する。受付サーバ200は、各処理サーバ300から受信した処理結果をネットワークNT1を介してクライアント100に送信する。   In such a communication system, the client 100 transmits a processing request that includes image data to be processed and requests processing on the image data to the reception server 200 via the network NT1, and the reception server 200 transmits the processing request. Accordingly, the processing request is transmitted to each processing server 300 via the network NT2. Each processing server 300 executes processing in accordance with the processing request, and transmits the processing result to the reception server 200 via the network NT2. Reception server 200 transmits the processing result received from each processing server 300 to client 100 via network NT1.

次に、本実施の形態にかかるクライアント100、受付サーバ200及び処理サーバ300のハードウェア構成について説明する。クライアント100、受付サーバ200及び処理サーバ300はそれぞれ、装置全体を制御するCPU等の制御部と、各種データや各種プログラムを記憶するROM(Read Only Memory)やRAM(Random Access Memory)等の主記憶部と、各種データや各種プログラムを記憶するHDD(Hard Disk Drive)やCD(Compact Disk)ドライブ装置等の補助記憶部と、これらを接続するバスとを備えており、通常のコンピュータを利用したハードウェア構成となっている。また、クライアント100には、情報を表示する表示部と、ユーザの指示入力を受け付けるキーボードやマウス等の操作入力部と、外部装置の通信を制御する通信I/F(interface)とが有線又は無線により各々接続される。これらは、クライアント100と同様に受付サーバ200及び処理サーバ300に接続されるようにしても良いし、接続されなくても良い。   Next, the hardware configuration of the client 100, the reception server 200, and the processing server 300 according to the present embodiment will be described. Each of the client 100, the reception server 200, and the processing server 300 includes a control unit such as a CPU that controls the entire apparatus, and a main memory such as a ROM (Read Only Memory) and a RAM (Random Access Memory) that store various data and various programs. A hard disk using an ordinary computer, and an auxiliary storage unit such as an HDD (Hard Disk Drive) or CD (Compact Disk) drive device for storing various data and various programs, and a bus for connecting them. The hardware configuration. In addition, the client 100 includes a display unit for displaying information, an operation input unit such as a keyboard and a mouse that accepts user instruction input, and a communication I / F (interface) that controls communication with an external device. Are connected to each other. These may be connected to the reception server 200 and the processing server 300 in the same manner as the client 100, or may not be connected.

次に、このようなハードウェア構成において、受付サーバ200のCPUが主記憶部や補助記憶部に記憶された各種プログラムを実行することにより実現される各種機能について説明する。図2は、受付サーバ200の機能的構成を例示する図である。受付サーバ200は、HTTPサーバ部201と、画像処理制御部202と、画像蓄積部203とを有する。HTTPサーバ部201と、画像処理制御部202とは、CPUのプログラム実行時にRAMなどの主記憶部上に生成されるものである。画像蓄積部203は、HDDなどの補助記憶部に構成されるものである。   Next, in such a hardware configuration, various functions realized by the CPU of the reception server 200 executing various programs stored in the main storage unit and the auxiliary storage unit will be described. FIG. 2 is a diagram illustrating a functional configuration of the reception server 200. The reception server 200 includes an HTTP server unit 201, an image processing control unit 202, and an image storage unit 203. The HTTP server unit 201 and the image processing control unit 202 are generated on a main storage unit such as a RAM when the CPU program is executed. The image storage unit 203 is configured in an auxiliary storage unit such as an HDD.

HTTPサーバ部201は、クライアント100からの処理要求を受け付ける。この機能を細分化した機能として、HTTPサーバ部201は、リクエスト処理部204と、再送要求処理部205とを有する。リクエスト処理部204は、処理対象の画像データを含み当該画像データに対する画像処理を要求する処理要求をクライアント100から受信し、当該処理要求に従った処理結果を当該クライアント100に送信する。尚、クライアント100からの処理要求は、例えば、HTTPのプロトコルに従ったHTTPリクエストにより送信される。HTTPのプロトコルに従った通信では、送達確認がある。再送要求処理部205は、後述するブロックの再送を要求する再送要求を処理サーバ300から受信し、要求されたブロックを処理サーバ300に送信する。尚、要求されたブロックの送信は、TCPによるコネクション型通信で行う。TCPによるコネクション型通信では、送達確認がある。   The HTTP server unit 201 receives a processing request from the client 100. As a function obtained by subdividing this function, the HTTP server unit 201 includes a request processing unit 204 and a retransmission request processing unit 205. The request processing unit 204 receives a processing request that includes image data to be processed and requests image processing on the image data from the client 100, and transmits a processing result according to the processing request to the client 100. The processing request from the client 100 is transmitted by an HTTP request according to the HTTP protocol, for example. In communication according to the HTTP protocol, there is delivery confirmation. The retransmission request processing unit 205 receives a retransmission request for requesting retransmission of a block, which will be described later, from the processing server 300 and transmits the requested block to the processing server 300. The requested block is transmitted by TCP connection-type communication. There is delivery confirmation in connection type communication by TCP.

画像処理制御部202は、処理要求や処理対象の画像データの処理サーバ300への送信、処理サーバ300からの処理結果の取得及び処理対象の画像データを分割したブロックに関する後述のブロック情報の管理を行う。この機能を細分化した機能として、画像処理制御部202は、処理要求部206と、データ分割部207と、データブロック管理部208と、データ送信部209と、処理結果管理部210とを有する。   The image processing control unit 202 transmits processing requests and processing target image data to the processing server 300, acquires processing results from the processing server 300, and manages block information to be described later regarding blocks obtained by dividing the processing target image data. Do. As a function obtained by subdividing this function, the image processing control unit 202 includes a processing request unit 206, a data division unit 207, a data block management unit 208, a data transmission unit 209, and a processing result management unit 210.

処理要求部206は、後述のブロック情報を含み処理対象の画像データに対する画像処理を要求する処理要求を各処理サーバ300に送信し、当該処理要求に従って各処理サーバ300が処理を実行した結果である処理結果を各処理サーバ300から受信する。尚、処理要求の送信は、TCPによるコネクション型通信で行う。   The processing request unit 206 transmits a processing request for requesting image processing for image data to be processed including block information, which will be described later, to each processing server 300, and the processing server 300 executes processing according to the processing request. A processing result is received from each processing server 300. The processing request is transmitted by connection type communication using TCP.

データ分割部207は、処理対象の画像データを複数のブロックに分割する。データブロック管理部208は、データ分割部207が分割した各ブロックについて、処理対象の画像データにおける各ブロックの位置を特定するためのブロック情報を記憶し、これの削除やアクセスを制御することによって、ブロック情報を管理する。本実施の形態においては、ブロックの長さは固定長であるとし、ブロック情報は、ブロックの長さとブロックの開始点(オフセット)とを含む。   The data dividing unit 207 divides image data to be processed into a plurality of blocks. The data block management unit 208 stores, for each block divided by the data dividing unit 207, block information for specifying the position of each block in the image data to be processed, and controls the deletion and access thereof. Manage block information. In the present embodiment, the block length is assumed to be a fixed length, and the block information includes the block length and the block start point (offset).

データ送信部209は、データ分割部207が処理対象の画像データから分割した複数のブロックをパケット単位で各処理サーバ300に送信する。各パケットの送信は、UDPのマルチキャストにより行なう。UDPのマルチキャストでは、送達確認がない。尚、各処理サーバ300のマルチキャストアドレス及び宛先ポートは主記憶部や補助記憶部に予め記憶されているものとする。   The data transmission unit 209 transmits a plurality of blocks divided from the image data to be processed by the data division unit 207 to each processing server 300 in units of packets. Each packet is transmitted by UDP multicast. With UDP multicast, there is no delivery confirmation. It is assumed that the multicast address and the destination port of each processing server 300 are stored in advance in the main storage unit and the auxiliary storage unit.

処理結果管理部210は、処理要求部206が各処理サーバ300から受信した処理結果を記憶し、当該処理結果の受信状況に応じて、処理の終了を判断する。具体的には、処理結果管理部210は、処理要求部206が処理要求を送信した全ての処理サーバ300から処理結果を受信した場合には、処理が終了したと判断する。そして、この場合、処理結果管理部210は、処理サーバ300から受信した処理結果をクライアント100に送信する。尚、処理結果の送信は、TCPによるコネクション型通信で行う。画像蓄積部203は、リクエスト処理部204が受信した処理要求に含まれる処理対象の画像データを記憶する。   The processing result management unit 210 stores the processing result received from each processing server 300 by the processing request unit 206, and determines the end of the processing according to the reception status of the processing result. Specifically, the processing result management unit 210 determines that the processing has been completed when the processing request unit 206 has received processing results from all the processing servers 300 to which the processing request has been transmitted. In this case, the processing result management unit 210 transmits the processing result received from the processing server 300 to the client 100. The processing result is transmitted by connection-type communication using TCP. The image storage unit 203 stores processing target image data included in the processing request received by the request processing unit 204.

次に、処理サーバ300のCPUが主記憶部や補助記憶部に記憶された各種プログラムを実行することにより実現される各種機能について説明する。図3は、処理サーバ300の機能的構成を例示する図である。処理サーバ300は、リクエスト処理部301と、データ受信処理部302と、データ蓄積部303と、画像処理部304とを有する。リクエスト処理部301は、処理要求を受付サーバ200から受信したり、当該処理要求に従って画像処理部304が処理を実行した結果である処理結果を受付サーバ200に送信したりする。   Next, various functions realized by the CPU of the processing server 300 executing various programs stored in the main storage unit and the auxiliary storage unit will be described. FIG. 3 is a diagram illustrating a functional configuration of the processing server 300. The processing server 300 includes a request processing unit 301, a data reception processing unit 302, a data storage unit 303, and an image processing unit 304. The request processing unit 301 receives a processing request from the reception server 200 or transmits a processing result that is a result of the processing performed by the image processing unit 304 in accordance with the processing request to the reception server 200.

データ受信処理部302は、処理対象の画像データの受信に関わる処理を行う。この機能を細分化した機能として、データ受信処理部302は、データ受信部305と、受信完了判定部306と、再送要求部307とを有する。データ受信部305は、受付サーバ200からマルチキャストで送信された処理対象の画像データをパケット単位で受信し、リクエスト処理部301が受信した処理要求に含まれるブロック情報を参照して、受信したパケットをブロック毎に分類し、各ブロックをデータ蓄積部303に記憶させる。受信完了判定部306は、各ブロックについて受信が正常に完了しているか否かを判定する。再送要求部307は、受信が正常に完了していないと受信完了判定部306が判定したブロックについてその再送を要求する再送要求を受付サーバ200に送信し、当該再送要求に従って受付サーバ200から送信されたブロックを含むパケットを受信する。   The data reception processing unit 302 performs processing related to reception of processing target image data. As a function obtained by subdividing this function, the data reception processing unit 302 includes a data reception unit 305, a reception completion determination unit 306, and a retransmission request unit 307. The data receiving unit 305 receives image data to be processed transmitted from the receiving server 200 by multicast in units of packets, refers to block information included in the processing request received by the request processing unit 301, and receives the received packet. Each block is classified and each block is stored in the data storage unit 303. The reception completion determination unit 306 determines whether reception has been normally completed for each block. The retransmission request unit 307 transmits a retransmission request for requesting retransmission of the block determined by the reception completion determination unit 306 that the reception is not normally completed to the reception server 200, and is transmitted from the reception server 200 according to the retransmission request. Receive a packet containing a block.

データ蓄積部303は、受付サーバ200から受信した処理対象の画像データをブロック毎に記憶する。この機能を細分化した機能として、データ蓄積部303は、ブロック管理部308と、データ格納部309とを有する。ブロック管理部308は、処理対象の画像データに属する各ブロックについて、その開始点と、受信が正常に完了しているか否かという受信完了判定部306の判定結果とを記憶する。例えば、ブロック管理部308は、各ブロックについての受信完了判定部306の判定結果を受信状態フラグによって記憶する。受信状態フラグは、受信が完了していると判定された場合は「1」を示し、受信が完了していないと判定された場合は「0」を示す。図4は、ブロック管理部308が記憶する情報を例示する図である。同図の例では、10個のブロックから構成される処理対象の画像データの各ブロックについての受信完了フラグ及び開始点が示されている。この例では、先頭からから3〜4番目及び10番目のブロックの受信が未完了であることが示されている。   The data storage unit 303 stores the processing target image data received from the receiving server 200 for each block. As a function obtained by subdividing this function, the data storage unit 303 includes a block management unit 308 and a data storage unit 309. The block management unit 308 stores the start point of each block belonging to the image data to be processed and the determination result of the reception completion determination unit 306 as to whether or not reception has been normally completed. For example, the block management unit 308 stores the determination result of the reception completion determination unit 306 for each block by the reception state flag. The reception status flag indicates “1” when it is determined that the reception is completed, and indicates “0” when it is determined that the reception is not completed. FIG. 4 is a diagram illustrating information stored in the block management unit 308. In the example of the figure, a reception completion flag and a start point are shown for each block of image data to be processed including 10 blocks. In this example, it is shown that reception of the 3rd to 4th and 10th blocks from the top is incomplete.

また、ブロック管理部308は、画像処理部304が処理を実行する際に、処理対象の画像データに属する各ブロックうち処理対象のブロックについて、受信が正常に完了していると受信完了判定部306が判定している場合には、当該ブロックをデータ格納部309から読み出してこれを画像処理部304に渡す。一方、当該ブロックについて、受信が正常に完了していないと受信完了判定部306が判定している場合には、ブロック管理部308は、再送要求部307が送信した再送要求に従って受信したパケットに含まれるブロックを取得してこれを画像処理部304に渡す。データ格納部309は、処理対象の画像データをブロック単位で記憶する。   In addition, when the image processing unit 304 executes the process, the block management unit 308 determines that the reception completion determination unit 306 has received the processing target block among the blocks belonging to the processing target image data. Is determined, the block is read from the data storage unit 309 and transferred to the image processing unit 304. On the other hand, when the reception completion determination unit 306 determines that reception has not been normally completed for the block, the block management unit 308 includes the packet received according to the retransmission request transmitted by the retransmission request unit 307. The acquired block is acquired and passed to the image processing unit 304. The data storage unit 309 stores image data to be processed in units of blocks.

画像処理部304は、処理対象の画像データに属する各ブロックのうち処理対象のブロックを、ブロック管理部308を介して取得して、当該ブロックを用いて、処理要求によって要求された処理(例えば画像処理である)を実行し、当該処理を実行した結果である処理結果をリクエスト処理部301に返す。   The image processing unit 304 acquires a processing target block among the blocks belonging to the processing target image data via the block management unit 308, and uses the block to perform processing requested by the processing request (for example, an image). Process), and returns a processing result, which is a result of executing the process, to the request processing unit 301.

次に、本実施の形態にかかる通信システムにおいて行う通信処理の手順について説明する。まず、受付サーバ200が行なう通信処理の手順について図5を用いて説明する。受付サーバ200は、リクエスト処理部204の機能により、処理対象の画像データを含み当該画像データに対して処理を要求する処理要求をクライアント100から受信する(ステップS1)。尚、当該処理要求には、処理の際に用いる処理パラメータを含み得る。次いで、受付サーバ200は、ステップS1で受信した処理要求に含まれる処理対象の画像データを画像蓄積部203に記憶する。そして、受付サーバ200は、データ分割部207の機能により、処理対象の画像データを複数のブロックに分割する(ステップS2)。   Next, a procedure of communication processing performed in the communication system according to the present embodiment will be described. First, the communication processing procedure performed by the reception server 200 will be described with reference to FIG. The reception server 200 receives a processing request including processing target image data and requesting processing on the image data from the client 100 by the function of the request processing unit 204 (step S1). Note that the processing request may include processing parameters used in processing. Next, the reception server 200 stores the processing target image data included in the processing request received in step S <b> 1 in the image storage unit 203. Then, the reception server 200 divides the image data to be processed into a plurality of blocks by the function of the data dividing unit 207 (step S2).

具体的には、受付サーバ200は、処理対象の画像データを、予め定められた長さ(固定長)のブロックに分割し、各ブロックに対して先頭から順に「0」から始まるブロック番号を付与する。ところで、UDPにより送信する1つのパケットで送信可能なデータのサイズは60Kb程度である。一次ブロックはこのサイズを超えているため、受付サーバ200は、UDPによる送信が可能なサイズのパケットに各ブロックを分割し、各パケットに対して先頭から順に「0」から始まるシーケンス番号を付与する。また、受付サーバ200は、データブロック管理部208の機能により、各ブロックの開始点を算出し、各ブロックの開始点と各ブロックの長さと含むブロック情報を記憶する。固定長のブロックの開始点は「0」にブロックの長さを順に足した値となる。   Specifically, the reception server 200 divides the image data to be processed into blocks of a predetermined length (fixed length), and assigns block numbers starting from “0” in order from the top to each block. To do. By the way, the size of data that can be transmitted in one packet transmitted by UDP is about 60 Kb. Since the primary block exceeds this size, the reception server 200 divides each block into packets of a size that can be transmitted by UDP, and assigns a sequence number starting from “0” to each packet in order from the top. . The reception server 200 calculates the start point of each block by the function of the data block management unit 208, and stores block information including the start point of each block and the length of each block. The starting point of a fixed-length block is a value obtained by adding “0” to the block length in order.

その後、受付サーバ200は、処理要求部206の機能により、処理対象の画像データに対する処理を要求する処理要求を、TCPによるコネクション型通信により各処理サーバ300に送信する(ステップS3)。例えば、処理対象の画像データが、複数のページの画像を表すものである場合、受付サーバ200は、各々異なるページに対して各処理サーバ30が各々処理を実行するよう、各ページに対して処理を要求する処理サーバ300を決定して、処理対象の画像データ、処理対象のページ及び処理内容を指定すると共にブロック情報を含む処理要求を各処理サーバ300に送信する。図6は、受付サーバ200が処理サーバ300に送信する処理要求のデータ構成を例示する図である。同図に示される処理要求では、プロトコルにはTCP上のアプリケーションプロトコルであるHTTPを用い、データ形式にはJSONを用いている。このデータ形式によって表現される処理要求では、「process_type」により処理内容を指定し、「data_id」により処理対象の画像データを識別するためのIDを指定し、「data_length」により処理対象の画像データの長さを指定し、「page」により処理対象の画像データによって表される画像が複数ページある場合に処理サーバに処理を要求する対象のページ番号を指定し、「chunk_offset」により処理対象の画像データについてブロック毎の開始点を指定する。「data_length」及び「chunk_offset」はブロック情報に相当する。同図では、処理内容として、「ocr」が指定され、処理対象の画像データのデータIDとして「fefefefe」が指定され、処理対象のページとして、「2」ページ目が指定され、処理対象の画像データのブロック情報として、ブロックの長さ「589960」と、各ブロックの開始点「0, 65536, 131072, ..., 589824」とが示されている。このブロック情報から、処理対象の画像データは、65536バイトの固定長のブロック9個と136バイトのブロック1つとから構成されていることが認識できる。   Thereafter, the reception server 200 transmits a processing request for requesting processing of the image data to be processed to each processing server 300 by connection type communication using TCP by the function of the processing request unit 206 (step S3). For example, when the image data to be processed represents an image of a plurality of pages, the reception server 200 performs processing for each page so that each processing server 30 executes processing for each different page. The processing server 300 requesting the processing is determined, the processing target image data, the processing target page and the processing content are designated, and the processing request including the block information is transmitted to each processing server 300. FIG. 6 is a diagram illustrating a data configuration of a processing request transmitted from the reception server 200 to the processing server 300. In the processing request shown in the figure, HTTP, which is an application protocol on TCP, is used as a protocol, and JSON is used as a data format. In the processing request expressed by this data format, the processing content is specified by “process_type”, the ID for identifying the image data to be processed is specified by “data_id”, and the image data of the processing target is specified by “data_length”. Specify the length, specify the page number of the processing request to the processing server when there are multiple pages represented by the image data to be processed by "page", and process the image data by "chunk_offset" Specify the starting point for each block. “Data_length” and “chunk_offset” correspond to block information. In the figure, “ocr” is specified as the processing content, “fefefefe” is specified as the data ID of the processing target image data, the “second” page is specified as the processing target page, and the processing target image is displayed. As data block information, a block length “589960” and a start point “0, 65536, 131072,..., 589824” of each block are shown. From this block information, it can be recognized that the image data to be processed is composed of nine 65536-byte fixed-length blocks and one 136-byte block.

また、受付サーバ200は、データ送信部209の機能により、ステップS2で分割した各ブロックをパケット単位でUDPのマルチキャストにより各処理サーバ300に送信する(ステップS4)。このとき送信されるパケット(UDPパケットという)は、UDPヘッダと、UDPペイロードとを含む。UDPヘッダは、送信元のポート及び送信先のポートと、パケットの長さと、チェックサムとを含む。UDPペイロードは、処理対象の画像データを識別するためのデータIDと、当該パケットの属するブロックに付与されたブロック番号と、当該パケットに付与されたシーケンス番号と、処理対象の画像データの一部であって当該パケットに相当するデータ本体とを含む。そして、受付サーバ200は、処理対象の画像データの全てのブロックについて送信が完了すると、その旨を示す送信完了メッセージを各処理サーバ300に送信する(ステップS5)。そして、受付サーバ200は、各処理サーバ300からの処理結果の送信を待機する。この待機中、受付サーバ200は、ブロックの再送を要求する再送要求をTCPにより処理サーバ300から受信した場合には、当該再送要求に従って、該当のブロックをTCPにより処理サーバ300に送信する。   Further, the reception server 200 transmits each block divided in step S2 to each processing server 300 by UDP multicast in units of packets by the function of the data transmission unit 209 (step S4). The packet transmitted at this time (referred to as a UDP packet) includes a UDP header and a UDP payload. The UDP header includes a source port and a destination port, a packet length, and a checksum. The UDP payload consists of a data ID for identifying image data to be processed, a block number given to the block to which the packet belongs, a sequence number given to the packet, and a part of the image data to be processed. And a data body corresponding to the packet. When the reception server 200 completes the transmission of all the blocks of the image data to be processed, the reception server 200 transmits a transmission completion message indicating that to each processing server 300 (step S5). Then, the reception server 200 waits for transmission of the processing result from each processing server 300. During this standby, when the reception server 200 receives a retransmission request for requesting retransmission of a block from the processing server 300 by TCP, the reception server 200 transmits the corresponding block to the processing server 300 by TCP according to the retransmission request.

尚、ステップS3では、受付サーバ200は、TCPにより処理要求を処理サーバ300に送信しているため、当該処理要求を受信した旨を示す送達通知を処理サーバ300から受信し、一定時間内に当該送達通知を受信していない処理サーバ300に対しては、当該処理要求を再送する。また、受付サーバ200は、再送要求に従って送信したブロックについても、当該ブロックを受信した旨を示す送達通知を処理サーバ300から受信し、一定時間内に当該送達通知を受信していない処理サーバ300に対しては、当該ブロックを再送する。再送要求については、処理サーバ300の動作の説明と共に後ほど詳しく説明する。   In step S3, since the receiving server 200 has transmitted the processing request to the processing server 300 by TCP, the receiving server 200 receives a delivery notification indicating that the processing request has been received from the processing server 300, and within a predetermined time The processing request is retransmitted to the processing server 300 that has not received the delivery notification. The reception server 200 also receives a delivery notification indicating that the block has been received from the processing server 300 for the block transmitted in accordance with the retransmission request, and sends it to the processing server 300 that has not received the delivery notification within a certain period of time. On the other hand, the block is retransmitted. The retransmission request will be described in detail later together with the description of the operation of the processing server 300.

次に、各処理サーバ300が行なう通信処理の詳細な手順について図7を用いて説明する。処理サーバ300は、リクエスト処理部301の機能により、処理要求を受付サーバ200から受信し(ステップS10)、データ受信処理部302の機能により、受付サーバ200からマルチキャストで送信された処理対象の画像データをパケット単位で受信する(ステップS11)。このとき、処理サーバ300は、データ受信部305の機能により、ステップS10で受信した処理要求に含まれるブロック情報を参照して、受信したパケットをブロック毎に分類すると共に、受信完了判定部306の機能により、各パケットのチェックサムを検査し、ブロック毎にシーケンス番号が連続しているか否かを判定することで、受信が正常に完了したか否かをブロック毎に判定し、各ブロックをデータ格納部309に記憶させる(ステップS13)。具体的には、処理サーバ300は、処理対象の画像データ全体の長さと同等の長さの仮ファイルをファイルシステム上に生成し、ブロックに属する全てのパケットについてチェックサムが正常であると判定した場合に当該ブロックの受信が正常に完了したと判定し、当該ブロックのデータを仮ファイルの対応部分に書き込むことで、各ブロックをデータ格納部309に記憶させる。そして、処理サーバ300は、受付サーバ200から送信された送信完了メッセージを受信すると、ブロック管理部308の機能により、各ブロックの開始点と、各ブロックについての受信完了判定部306の判定結果を示す受信状態フラグとを記憶する。   Next, a detailed procedure of communication processing performed by each processing server 300 will be described with reference to FIG. The processing server 300 receives a processing request from the receiving server 200 by the function of the request processing unit 301 (step S10), and the processing target image data transmitted by multicast from the receiving server 200 by the function of the data reception processing unit 302. Are received in units of packets (step S11). At this time, the processing server 300 refers to the block information included in the processing request received in step S10 by the function of the data reception unit 305, classifies the received packet for each block, and By checking the checksum of each packet by the function and determining whether the sequence number is consecutive for each block, it is determined for each block whether reception has been completed normally, and each block is data The data is stored in the storage unit 309 (step S13). Specifically, the processing server 300 generates a temporary file having a length equivalent to the entire length of the image data to be processed on the file system, and determines that the checksum is normal for all packets belonging to the block. In this case, it is determined that the reception of the block has been normally completed, and the data of the block is written in the corresponding part of the temporary file, whereby each block is stored in the data storage unit 309. When the processing server 300 receives the transmission completion message transmitted from the reception server 200, the processing server 300 indicates the start point of each block and the determination result of the reception completion determination unit 306 for each block by the function of the block management unit 308. The reception status flag is stored.

そして、処理サーバ300は、画像処理部304の機能により、ステップS10で受信した処理要求によって指定された処理対象の画像データのうち指定されたページに対して、指定された処理内容の処理を実行する(ステップS14)。このとき、処理サーバ300は、処理対象の画像データ全体を一度に読み出すのではなく、処理に必要となった段階でブロック単位でデータを読み出す。   Then, the processing server 300 performs processing of the specified processing content on the specified page of the processing target image data specified by the processing request received in step S10 by the function of the image processing unit 304. (Step S14). At this time, the processing server 300 does not read the entire image data to be processed at a time, but reads data in units of blocks at a stage required for processing.

ここで、ステップS14で処理を実行する手順について図8を用いて説明する。処理サーバ300は、指定されたページに対応する少なくとも1つ以上のブロックを特定する。図9は、複数のページの画像を表すTIFF形式の画像データのデータ構成を簡略化して例示する図である。同図に示されるように、TIFF形式の画像データは、TIFFヘッダと、ページ毎にIFD(ImageFile Directory)及びページの画像を表す画像データとを含む。TIFFヘッダは、バイトオーダーと、バージョンと、最初のIFDの開始点とを含み、IFD及び画像データが交互に表れるデータ構成となっている。IFDは、画像の情報を記述するためのTIFF固有のタグと次のIFDの開始点とを含む。このような画像データについて、処理要求によって指定されたページが例えば2ページ目である場合、処理サーバ300は、TIFFヘッダを含む最初のブロックをデータ格納部309から読み出し、1ページ目に対応するIFDの開始点を参照して、1ページ目に対応するIFDを読み出し、1ページ目に対応するIFDに含まれる2ページ目に対応するIFDの開始点を参照して、2ページ目に対応するIFDを含むブロックを読み出す。尚、1ページ目に対応するIFDと2ページ目に対応するIFDとの間には1ページ目の画像データがあるが、このデータは読み取る必要がない。そして、処理サーバ300は、2ページ目に対応するIFDに含まれる3ページ目に対応するIFDの開始点を参照して、その間の部分に2ページ目の画像データがあることを認識し、当該画像データを含むブロックを特定する。尚、当該画像データが複数のブロックに跨る場合には、処理サーバ300は、複数のブロックを特定する。   Here, the procedure for executing the processing in step S14 will be described with reference to FIG. The processing server 300 identifies at least one block corresponding to the designated page. FIG. 9 is a diagram illustrating a simplified data structure of TIFF format image data representing a plurality of pages of images. As shown in the figure, the image data in the TIFF format includes a TIFF header, IFD (Image File Directory) and image data representing an image of the page for each page. The TIFF header includes a byte order, a version, and a start point of the first IFD, and has a data configuration in which IFD and image data appear alternately. The IFD includes a TIFF-specific tag for describing image information and a starting point of the next IFD. For such image data, when the page specified by the processing request is, for example, the second page, the processing server 300 reads the first block including the TIFF header from the data storage unit 309, and the IFD corresponding to the first page. The IFD corresponding to the first page is read, the IFD corresponding to the first page is read, the IFD corresponding to the second page included in the IFD corresponding to the first page is referenced, and the IFD corresponding to the second page Read the block containing. There is image data for the first page between the IFD corresponding to the first page and the IFD corresponding to the second page, but this data need not be read. Then, the processing server 300 refers to the start point of the IFD corresponding to the third page included in the IFD corresponding to the second page, recognizes that there is image data of the second page in the portion in between, and A block containing image data is specified. Note that when the image data extends over a plurality of blocks, the processing server 300 identifies the plurality of blocks.

そして、処理サーバ300は、特定したブロックについて、ブロック管理部308の機能により、図4に例示される受信状態フラグを参照する(ステップS20)。当該ブロックについて受信が正常に完了している場合には(ステップS21:YES)、処理サーバ300は、当該ブロックをデータ格納部309から読み出し(ステップS22)、ステップS25に進む。一方、当該ブロックについて受信が正常に完了していない場合には(ステップS21:NO)、処理サーバ300は、再送要求部307の機能により、受付サーバ200との間にTCPコネクションが確立されていない場合にはTCPコネクションを確立した後、当該ブロックの再送を要求する再送要求をTCPにより受付サーバ200に送信する(ステップS23)。図10は、再送要求のデータ構成を例示する図である。同図に示される再送要求では、プロトコルにはHTTPを用いている。同図では、URIのパス部分(「GET」で始まる行のGETの次にある固まり)で対象の画像データが指定され、そのデータ内の位置が「Range」で始まる行によって指定されている。即ち、図10の例では、データID「54321」の画像データのうち、その開始点が「131072」で終了点が「196607」の範囲、即ち、65536バイトの先頭から3番目のブロックが、再送の対象のブロックとして指定されている。   Then, the processing server 300 refers to the reception state flag illustrated in FIG. 4 by the function of the block management unit 308 for the identified block (step S20). When reception of the block has been completed normally (step S21: YES), the processing server 300 reads the block from the data storage unit 309 (step S22), and proceeds to step S25. On the other hand, when reception of the block is not normally completed (step S21: NO), the processing server 300 has not established a TCP connection with the reception server 200 by the function of the retransmission request unit 307. In this case, after establishing the TCP connection, a retransmission request for requesting retransmission of the block is transmitted to the receiving server 200 by TCP (step S23). FIG. 10 is a diagram illustrating a data configuration of a retransmission request. In the retransmission request shown in the figure, HTTP is used as the protocol. In the figure, the target image data is specified in the path portion of URI (the block next to GET of the line starting with “GET”), and the position in the data is specified by the line starting with “Range”. That is, in the example of FIG. 10, among the image data with the data ID “54321”, the start point is “131072” and the end point is “196607”, that is, the third block from the beginning of 65536 bytes is retransmitted. Is specified as the target block.

図8の説明に戻る。当該再送要求に従って受付サーバ200からHTTPのレスポンスとして送信されたパケットを処理サーバ300は受信する。そして、処理サーバ300は、当該再送要求によって再送が要求されたブロックに属する全てのパケットを受信すると、ブロック管理部308の機能により、当該ブロックについての受信状態フラグを「1」に更新し(ステップS24)、ステップS25に進む。ステップS25では、処理サーバ300は、画像処理部304の機能により、該当のブロックを用いて、画像処理部304の機能により、処理を実行する。その後、図7のステップS15に戻り、処理サーバ300は、リクエスト処理部301の機能により、処理結果を受付サーバ200に送信する。   Returning to the description of FIG. The processing server 300 receives a packet transmitted as an HTTP response from the reception server 200 in accordance with the retransmission request. When the processing server 300 receives all the packets belonging to the block requested to be retransmitted by the retransmission request, the processing server 300 updates the reception status flag for the block to “1” by the function of the block management unit 308 (Step 1 S24), the process proceeds to step S25. In step S <b> 25, the processing server 300 executes processing using the function of the image processing unit 304 using the corresponding block by the function of the image processing unit 304. Thereafter, the process returns to step S <b> 15 in FIG. 7, and the processing server 300 transmits the processing result to the receiving server 200 by the function of the request processing unit 301.

尚、ステップS10では、処理サーバ300は、TCPにより処理要求を受付サーバ200から受信しているため、当該処理要求を受信した旨を示す送達通知を受付サーバ200に送信する。また、ステップS24で、処理サーバ300は、再送要求に従ったブロックを受付サーバ200から受信した場合にも、当該ブロックを受信した旨を示す送達通知を受付サーバ200に送信する。ステップS11で受信する画像データについては、送達確認は不要であるため、処理サーバ300は送達通知を送信しない。   In step S10, since the processing server 300 receives the processing request from the reception server 200 by TCP, the processing server 300 transmits a delivery notification indicating that the processing request has been received to the reception server 200. In step S <b> 24, even when the processing server 300 receives a block according to the retransmission request from the reception server 200, the processing server 300 transmits a delivery notification indicating that the block has been received to the reception server 200. Since the delivery confirmation is unnecessary for the image data received in step S11, the processing server 300 does not send a delivery notification.

以上のように、送信側の受付サーバ200は、処理対象のデータをブロックに分割して、送達確認のないマルチキャストにより送信する。受信側の処理サーバ300は、受信が正常に完了していないデータ全ての再送を要求するのではなく、受信が正常に完了していないブロックが処理において必要となった場合にのみ再送を要求する。このように受信側での必要性に応じてデータを再送する構成によれば、1対多のデータ転送において、無駄な送達確認や、データの無駄な再送を抑制することができ、データ転送を効率化することができる。また、受付サーバ200は、処理対象のデータを解析したり、処理サーバ毎にデータを物理的に分割したりする必要がなく、処理対象のデータのデータ構成を認識する必要がないため、受付サーバ200の構成の複雑化を回避することができる。   As described above, the receiving server 200 on the transmission side divides the data to be processed into blocks and transmits the data by multicast without delivery confirmation. The processing server 300 on the receiving side does not request retransmission of all data that has not been successfully received, but requests retransmission only when a block whose reception has not been completed normally is required in the processing. . Thus, according to the configuration in which data is retransmitted according to the necessity on the receiving side, in one-to-many data transfer, wasteful delivery confirmation and wasteful retransmission of data can be suppressed. Efficiency can be improved. In addition, the reception server 200 does not need to analyze the processing target data or physically divide the data for each processing server, and does not need to recognize the data configuration of the processing target data. The complication of the configuration of 200 can be avoided.

[変形例]
なお、本発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。また、以下に例示するような種々の変形が可能である。
[Modification]
Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. Moreover, various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, constituent elements over different embodiments may be appropriately combined. Further, various modifications as exemplified below are possible.

<変形例1>
上述した実施の形態において、受付サーバ200で実行される各種プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また当該各種プログラムを、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成しても良い。処理サーバ300についても同様である。
<Modification 1>
In the above-described embodiment, various programs executed by the reception server 200 may be stored on a computer connected to a network such as the Internet and provided by being downloaded via the network. The various programs are recorded in a computer-readable recording medium such as a CD-ROM, a flexible disk (FD), a CD-R, and a DVD (Digital Versatile Disk) in a file in an installable or executable format. May be configured to be provided. The same applies to the processing server 300.

上述の実施の形態では、受付サーバ200,処理サーバ300はそれぞれ、コピー機能、プリンタ機能、スキャナ機能およびファクシミリ機能のうち少なくとも1つの機能を有し、各機能に応じた画像処理エンジンを備える画像処理装置であっても良い。   In the above-described embodiment, each of the reception server 200 and the processing server 300 has at least one of a copy function, a printer function, a scanner function, and a facsimile function, and includes an image processing engine corresponding to each function. It may be a device.

<変形例2>
上述の実施の形態では、処理対象の画像データを分割するブロックの長さは固定長であるとしたが、可変長であっても良い。このような構成において、受付サーバ200の画像処理制御部202は、処理要求部206と、データ分割部207と、データブロック管理部208と、データ送信部209と、処理結果管理部210とに加え、データ解析部(不図示)を更に有する。データ解析部は、処理対象の画像データを解析して、その種別を判定する。データ分割部207は、データ解析部が判定した種別に応じて、処理対象の画像データのうち、2つ以上の処理サーバ300が必要とする部分のデータは独立したブロックとなるよう、当該画像データを複数のブロックに分割する。例えば、処理対象の画像データが、図9に示されるように、複数ページの画像を表すTIFF形式の画像データである場合、IFDは、複数の処理サーバ300から参照されるデータである。このため、IFDと画像データとは各々別のブロックとなるようにデータ分割部207は分割する。
<Modification 2>
In the above-described embodiment, the length of the block for dividing the image data to be processed is a fixed length, but may be a variable length. In such a configuration, the image processing control unit 202 of the reception server 200 includes the processing request unit 206, the data division unit 207, the data block management unit 208, the data transmission unit 209, and the processing result management unit 210. And a data analysis unit (not shown). The data analysis unit analyzes the image data to be processed and determines its type. In accordance with the type determined by the data analysis unit, the data dividing unit 207 determines that the image data that is required by two or more processing servers 300 among the image data to be processed is an independent block. Is divided into a plurality of blocks. For example, when the image data to be processed is TIFF format image data representing a plurality of pages of images as shown in FIG. 9, the IFD is data referred to by the plurality of processing servers 300. For this reason, the data dividing unit 207 divides the IFD and the image data so as to be separate blocks.

IFDのサイズは画像データに比べて小さいが、このように、IFDを1つのブロックとして取り扱うことで、IFDをUDPにより送信した際にその受信が正常に完了する可能性が高くなる。また、受信が正常に完了しておらず再送することになったとしても、サイズが小さいため、IFDをブロックとして送信する際のネットワーク負荷を小さく抑えることができる。   Although the size of the IFD is smaller than that of the image data, handling the IFD as one block in this way increases the possibility that the reception will be completed normally when the IFD is transmitted by UDP. Even if reception is not completed normally and retransmission is performed, the size is small, so that the network load when transmitting the IFD as a block can be reduced.

<変形例3>
上述の実施の形態では、受付サーバ200が各処理サーバ300に送信する処理要求に含まれるブロック情報は、ブロック毎のハッシュ値を更に含んでも良い。具体的には、受付サーバ200の処理要求部206は、処理要求を各処理サーバ300に送信する際に、ブロック毎のMD5メッセージダイジェストによるハッシュ値を算出し、当該ハッシュ値を含むブロック情報を含む処理要求を各処理サーバ300に送信する。図11は、本変形例にかかる処理要求のデータ構成を例示する図である。同図に示される処理要求では、「hash_md5」により各ブロックのハッシュ値が示されている。
<Modification 3>
In the above-described embodiment, the block information included in the processing request transmitted from the reception server 200 to each processing server 300 may further include a hash value for each block. Specifically, when the processing request unit 206 of the reception server 200 transmits a processing request to each processing server 300, the processing request unit 206 calculates a hash value based on the MD5 message digest for each block and includes block information including the hash value. A processing request is transmitted to each processing server 300. FIG. 11 is a diagram illustrating a data configuration of a processing request according to this modification. In the processing request shown in the figure, the hash value of each block is indicated by “hash_md5”.

一方、処理サーバ300は、このような処理要求を受信し、処理対象の画像データをパケット単位で受信すると、受信したパケットをブロック毎に分類し、各パケットのチェックサムを検査し、ブロック毎にシーケンス番号が連続しているか否かを判定すると共に、各ブロックについて、ハッシュ値を算出し、当該ハッシュ値と、処理要求に含まれるブロック情報に含まれるハッシュ値とをブロック毎に比較してこれらが一致するか否かを判定することによって、各ブロックのデータの正当性を判定する。そして、処理サーバ300は、シーケンス番号が連続しているブロック及びハッシュ値が一致したブロックについて、受信が正常に完了したと判定し、当該ブロックをデータ格納部309に記憶させる。   On the other hand, when the processing server 300 receives such a processing request and receives image data to be processed in units of packets, the processing server 300 classifies the received packets for each block, inspects the checksum of each packet, and for each block. It is determined whether or not the sequence number is continuous, and for each block, a hash value is calculated, and the hash value is compared with the hash value included in the block information included in the processing request for each block. The validity of the data of each block is determined by determining whether or not they match. Then, the processing server 300 determines that the reception is normally completed for the blocks having consecutive sequence numbers and the blocks having the same hash value, and stores the blocks in the data storage unit 309.

以上のような構成によれば、ハッシュ値によりデータの正当性を検証することで、UDPパケットのチェックサムで検出できなかったエラーを検出することができる。   According to the configuration as described above, it is possible to detect an error that could not be detected by the checksum of the UDP packet by verifying the validity of the data by the hash value.

<変形例4>
上述の実施の形態においては、処理サーバ300が再送を一度に要求するブロックは、複数であっても良い。この場合、画像処理部304による処理の実行と、再送要求部307による再送要求の送信とは順次ではなく、非同期で行なう。また、処理サーバ300のブロック管理部308は、再送要求を蓄積する要求プール(不図示)を有する。要求プールは、例えばRAMなどの主記憶部や補助記憶部に生成される。
<Modification 4>
In the above-described embodiment, there may be a plurality of blocks that the processing server 300 requests retransmission at a time. In this case, execution of processing by the image processing unit 304 and transmission of a retransmission request by the retransmission request unit 307 are performed asynchronously rather than sequentially. Further, the block management unit 308 of the processing server 300 has a request pool (not shown) that stores retransmission requests. The request pool is generated in, for example, a main storage unit such as a RAM or an auxiliary storage unit.

図12は、本変形例にかかるステップS14で処理を実行する手順を示すフローチャートである。ここでは、画像処理部304による処理の実行と、再送要求部307による再送要求の送信と非同期で行なうため、スレッドを2つに分けている。前者を第1スレッドとし、後者を第2スレッドとする。ステップS20〜S21は上述の実施の形態と同様である。ステップS21の判定結果が肯定的である場合、ステップS30では、処理サーバ300は、ブロック管理部308の機能により、処理に用いるブロックとして特定し且つ処理がまだ行われておらず且つ受信が正常に完了していると判定したブロックをデータ格納部309から読み出す。そして、処理サーバ300は、該当のブロックを用いて、処理を実行する(ステップS34)。その後、処理サーバ300は、処理対象の全てのページについて処理を実行したか否かを判定する(ステップS35)。当該判定結果が否定的である場合、ステップS20に戻り、ステップS35の判定結果が肯定的である場合、図7のステップS15に進む。   FIG. 12 is a flowchart showing a procedure for executing the process in step S14 according to the present modification. Here, in order to perform processing asynchronously with the execution of the processing by the image processing unit 304 and the transmission of the retransmission request by the retransmission request unit 307, the thread is divided into two. The former is a first thread and the latter is a second thread. Steps S20 to S21 are the same as in the above embodiment. If the determination result in step S21 is affirmative, in step S30, the processing server 300 identifies the block used for processing by the function of the block management unit 308, and the processing has not yet been performed and reception is normal. The block determined to be complete is read from the data storage unit 309. Then, the processing server 300 executes processing using the corresponding block (step S34). Thereafter, the processing server 300 determines whether or not processing has been performed for all pages to be processed (step S35). If the determination result is negative, the process returns to step S20. If the determination result of step S35 is affirmative, the process proceeds to step S15 in FIG.

ステップS21の判定結果が否定的である場合、ステップS31では、処理サーバ300は、ブロック管理部308の機能により、処理に用いるブロックとして特定し且つ受信が正常に完了していないと判定したブロックの再送を要求する再送要求を要求プールに蓄積する。次いで、処理サーバ300は、再送要求によって再送が要求されるブロックについて、ブロック管理部308の機能により、図4に例示される受信状態フラグを参照する(ステップS32)。当該ブロックについて受信が正常に完了している場合には(ステップS33:YES)、当該再送要求を削除対象として、ステップS30に進み、当該ブロックについて受信が正常に完了していない場合には(ステップS33:NO)、ステップS32に戻る。   If the determination result in step S21 is negative, in step S31, the processing server 300 identifies the block used for processing by the function of the block management unit 308 and determines that the reception has not been completed normally. A retransmission request for requesting retransmission is stored in the request pool. Next, the processing server 300 refers to the reception state flag illustrated in FIG. 4 by the function of the block management unit 308 for the block for which retransmission is requested by the retransmission request (step S32). If reception has been normally completed for the block (step S33: YES), the retransmission request is targeted for deletion, and the process proceeds to step S30. If reception has not been completed for the block (step S33). (S33: NO), the process returns to step S32.

一方、予め待機している第2スレッドにおいて、ステップS40では、処理サーバ300は、ブロック管理部308の機能により、要求プールに蓄積されている再送要求があるか否かを判定する。当該判定結果が肯定的である場合、ステップS41では、処理サーバ300は、ブロック管理部308の機能により、要求プールに蓄積されている再送要求を読み出す。次いで、処理サーバ300は、再送要求部307の機能により、受付サーバ200との間にTCPコネクションが確立されていない場合にはTCPコネクションを確立する。このTCPコネクションは、連続するブロックの再送が完了するまで利用する。そして、処理サーバ300は、要求プールから読み出した再送要求を参照して、再送が要求されているブロックを識別し、当該識別結果に応じて、各ブロックの再送要求をTCPにより受付サーバ200に送信する。具体的には、要求プールに複数の再送要求が蓄積されており、各再送要求によって再送が要求されているブロックの位置が処理対象の画像データにおいて連続している場合、処理サーバ300は、連続しているブロックの先頭のブロックの開始点と、最後尾のブロックの終了点とを指定した再送要求をTCPにより受付サーバ200に送信する。要求プールに複数の再送要求が蓄積されていても、各再送要求によって再送が要求されているブロックの位置が処理対象の画像データにおいて連続していない場合、処理サーバ300は、各ブロックの再送を要求する再送要求をブロック毎に送信する。   On the other hand, in the second thread waiting in advance, in step S40, the processing server 300 determines whether there is a retransmission request accumulated in the request pool by the function of the block management unit 308. If the determination result is affirmative, in step S41, the processing server 300 reads out retransmission requests stored in the request pool by the function of the block management unit 308. Next, the processing server 300 establishes a TCP connection by the function of the retransmission request unit 307 when the TCP connection is not established with the receiving server 200. This TCP connection is used until retransmission of consecutive blocks is completed. Then, the processing server 300 refers to the retransmission request read from the request pool, identifies the block for which retransmission is requested, and transmits the retransmission request for each block to the reception server 200 via TCP according to the identification result. To do. Specifically, when a plurality of retransmission requests are accumulated in the request pool and the positions of blocks requested for retransmission by each retransmission request are consecutive in the processing target image data, the processing server 300 continuously A retransmission request designating the start point of the first block and the end point of the last block is transmitted to the receiving server 200 via TCP. Even if a plurality of retransmission requests are accumulated in the request pool, if the position of the block for which retransmission is requested by each retransmission request is not continuous in the processing target image data, the processing server 300 retransmits each block. The requested retransmission request is transmitted for each block.

図13〜14は、再送要求のデータ構成を例示する図である。これらの図に示される再送要求では、図6に示される処理要求と同様に、プロトコルにはHTTPを用い、データ形式にはJSONを用いている。各図に示される再送要求によって、データID「54321」の画像データについて、連続しない2つのブロックの再送が各々要求されている。図15は、図13に示される再送要求に従って受付サーバ200が再送対象のブロックを処理サーバ30に送信する際のパケットのデータ構成を例示する図である。これらのパケット及び再送要求では、「Connection: Keep-Alive」というコマンドが指定されているので、受付サーバ200と処理サーバ300との間のTCPコネクションは再送対象のブロックが送信された後も維持され、当該TCPコネクションを利用して、続く処理サーバ300からの再送要求が送信され得る。以上のようにして、処理サーバ300は、再送要求によってブロックを取得してこれをデータ格納部309に記憶させ、上述の実施の形態と同様にして、ブロック管理部308の機能により、再送要求によって取得したブロックについての受信状態フラグを「1」に更新し、その後、要求プールに蓄積された削除対象の再送要求を削除する。ステップS41の後、ステップS40に戻る。尚、要求プールに蓄積されている再送要求がなくなった場合(ステップS40:NO)、処理サーバ300は、受付サーバ200との間で確立したTCPコネクションをクローズし、要求プールに新たな再送要求が蓄積されるまで待機する。   13 to 14 are diagrams illustrating a data configuration of a retransmission request. In the retransmission request shown in these figures, HTTP is used for the protocol and JSON is used for the data format, as in the processing request shown in FIG. According to the retransmission request shown in each figure, retransmission of two non-consecutive blocks is requested for the image data with the data ID “54321”. FIG. 15 is a diagram exemplifying a data configuration of a packet when the reception server 200 transmits a retransmission target block to the processing server 30 in accordance with the retransmission request illustrated in FIG. In these packets and retransmission requests, since the command “Connection: Keep-Alive” is specified, the TCP connection between the receiving server 200 and the processing server 300 is maintained even after the block to be retransmitted is transmitted. The subsequent retransmission request from the processing server 300 can be transmitted using the TCP connection. As described above, the processing server 300 acquires a block by a retransmission request and stores the block in the data storage unit 309. In the same manner as in the above-described embodiment, the processing server 300 performs the retransmission request by the function of the block management unit 308. The reception status flag for the acquired block is updated to “1”, and then the retransmission request to be deleted accumulated in the request pool is deleted. After step S41, the process returns to step S40. When there are no more retransmission requests stored in the request pool (step S40: NO), the processing server 300 closes the TCP connection established with the receiving server 200, and a new retransmission request is received in the request pool. Wait until it accumulates.

以上のように、画像処理部304による処理の実行と、ブロック管理部308によるブロックの読み出し又は再送要求部307によるブロックの取得とを非同期で並行して行なうことにより、処理対象のブロックの取得を待機する時間を低減し、処理をスムーズに実行させることができ、全体の処理時間の増加を抑制することができる。また、連続するブロックについては一度にその再送を要求することができ、データの再送をより効率化することができる。   As described above, the execution of the processing by the image processing unit 304 and the reading of the block by the block management unit 308 or the acquisition of the block by the retransmission request unit 307 are performed asynchronously in parallel, thereby acquiring the block to be processed. The waiting time can be reduced, the processing can be executed smoothly, and an increase in the overall processing time can be suppressed. In addition, retransmission of consecutive blocks can be requested at a time, and data retransmission can be made more efficient.

また、画像処理部304が処理を実行する際に必要となる全てのブロックを予め特定できる場合、各ブロックの読み出しを予め行うことにより、処理の実行とは非同期に該当のブロックの取得を行うことができる。例えば、図9に例示した複数のページの画像を表すTIFF形式の画像データについて、処理対象のページとして2ページと4ページとが処理要求によって指定されている場合、処理サーバ300は、以下のようにして必要となる全てのブロックを予め認識することができる。   In addition, when all the blocks necessary for the image processing unit 304 to execute the process can be specified in advance, by reading each block in advance, the corresponding block can be acquired asynchronously with the execution of the process. Can do. For example, regarding the TIFF format image data representing the images of a plurality of pages illustrated in FIG. 9, when 2 pages and 4 pages are specified as processing target pages by the processing request, the processing server 300 is as follows. Thus, all necessary blocks can be recognized in advance.

処理サーバ300は、まず、画像データのTIFFヘッダに含まれる1ページ目に対応するIFDの開始点を参照して、1ページ目に対応するIFDを読み出し、2ページ目に対応するIFDの開始点を参照する。2ページ目に対応するIFDから3ページ目に対応するIFDまでの間は2ページ目の画像データに相当する。このため、処理サーバ300は、ブロック管理部308の機能により、2ページ目の画像データを含むブロックをデータ格納部309から読み出す。このとき、処理サーバ300は、上述の実施の形態と同様にして、受信状態フラグを参照し、当該ブロックの受信が正常に完了していない場合には、再送要求部307の機能により、再送要求を受付サーバ200に送信して、当該ブロックを受付サーバ200から取得する。その後、処理サーバ300は、当該ブロックを用いて、画像処理部304の機能により、処理を実行する。   The processing server 300 first refers to the start point of the IFD corresponding to the first page included in the TIFF header of the image data, reads the IFD corresponding to the first page, and starts the IFD corresponding to the second page. Refer to The area from the IFD corresponding to the second page to the IFD corresponding to the third page corresponds to the image data of the second page. For this reason, the processing server 300 reads out the block including the image data of the second page from the data storage unit 309 by the function of the block management unit 308. At this time, the processing server 300 refers to the reception status flag in the same manner as in the above-described embodiment, and when the reception of the block is not normally completed, the retransmission request unit 307 functions to request a retransmission request. Is transmitted to the reception server 200, and the block is acquired from the reception server 200. Thereafter, the processing server 300 executes processing by the function of the image processing unit 304 using the block.

更に、処理サーバ300は、4ページ目に対応するIFDを読み出し、5ページ目に対応するIFDの開始点を参照する。4ページ目に対応するIFDから5ページ目に対応するIFDまでの間は4ページ目の画像データであるので、処理サーバ300は、画像処理部304の機能による2ページ目の画像データを含むブロックを用いた処理の実行と並行して、ブロック管理部308の機能により、4ページ目の画像データを含むブロックをデータ格納部309から読み出す。このとき、処理サーバ300は、上述の実施の形態と同様にして、受信状態フラグを参照し、当該ブロックの受信が正常に完了していない場合には、再送要求部307の機能により、再送要求を受付サーバ200に送信して、当該ブロックを受付サーバ200から取得する。その後、処理サーバ300は、当該ブロックを用いて、画像処理部304の機能により、処理を実行する。   Further, the processing server 300 reads the IFD corresponding to the fourth page, and refers to the start point of the IFD corresponding to the fifth page. Since the image data from the IFD corresponding to the fourth page to the IFD corresponding to the fifth page is the image data of the fourth page, the processing server 300 is a block including the image data of the second page by the function of the image processing unit 304 In parallel with the execution of the process using, the block including the image data of the fourth page is read from the data storage unit 309 by the function of the block management unit 308. At this time, the processing server 300 refers to the reception status flag in the same manner as in the above-described embodiment, and when the reception of the block is not normally completed, the retransmission request unit 307 functions to request a retransmission request. Is transmitted to the reception server 200, and the block is acquired from the reception server 200. Thereafter, the processing server 300 executes processing by the function of the image processing unit 304 using the block.

このように、処理対象の全てのブロックを予め特定して、ブロック管理部308によるブロックの読み出し又は再送要求部307によるブロックの取得と、画像処理部304による処理の実行とを非同期で並行して行なうことにより、処理対象のブロックの取得を待機する時間をより低減し、処理をよりスムーズに実行させることができ、処理全体の時間をより低減することができる。   In this way, all the blocks to be processed are specified in advance, and the block reading by the block management unit 308 or the block acquisition by the retransmission request unit 307 and the execution of the processing by the image processing unit 304 are asynchronously performed in parallel. By doing so, it is possible to further reduce the time to wait for acquisition of the block to be processed, execute the process more smoothly, and further reduce the time of the entire process.

<変形例5>
上述の実施の形態においては、複数のブロックに分割する処理対象のデータを画像データであるとし、受付サーバ200は、処理対象の画像データについて、各々異なるページに対して各処理サーバ300が各々処理を実行するよう、各ページに対して処理を要求する処理サーバ300に各々送信した。しかし、処理の単位はページに限らず、また、処理対象のデータは画像データに限らず、受付サーバ200は、処理対象のデータについて、各々異なる部分に対して各処理サーバ300が各々処理を実行するよう、当該データの一部に対して処理を要求する処理サーバ300に各々送信すれば良い。
<Modification 5>
In the above-described embodiment, it is assumed that the processing target data divided into a plurality of blocks is image data, and the receiving server 200 processes each processing server 300 for each different page for the processing target image data. Are transmitted to the processing server 300 that requests processing for each page. However, the unit of processing is not limited to a page, and the processing target data is not limited to image data, and the receiving server 200 performs processing on each of the processing target data for different portions of the processing target data. As such, each of the data may be transmitted to the processing server 300 that requests processing.

また、当該データに対して分散して実行する処理(分散処理)は、画像処理に限らない。例えば、複数のブロックに分割する処理対象のデータは、音声を表す音声データであって、当該音声データに対する分散処理は、音声を認識する音声認識処理であっても良い。その他、固定長のレコードからなる巨大なデータに対して、分散処理を行う場合に本実施の形態の構成を適用しても良い。   Further, the processing (distributed processing) executed in a distributed manner on the data is not limited to image processing. For example, the processing target data to be divided into a plurality of blocks may be voice data representing voice, and the distributed processing for the voice data may be voice recognition processing for recognizing voice. In addition, the configuration of the present embodiment may be applied when performing distributed processing on huge data composed of fixed-length records.

100 クライアント
200 受付サーバ
201 HTTPサーバ部
202 画像処理制御部
203 画像蓄積部
204 リクエスト処理部
205 再送要求処理部
206 処理要求部
207 データ分割部
208 データブロック管理部
209 データ送信部
210 処理結果管理部
300 処理サーバ
301 リクエスト処理部
302 データ受信処理部
303 データ蓄積部
304 画像処理部
305 データ受信部
306 受信完了判定部
307 再送要求部
308 ブロック管理部
309 データ格納部
NT1,NT2 ネットワーク
100 Client 200 Reception Server 201 HTTP Server Unit 202 Image Processing Control Unit 203 Image Storage Unit 204 Request Processing Unit 205 Retransmission Request Processing Unit 206 Processing Request Unit 207 Data Division Unit 208 Data Block Management Unit 209 Data Transmission Unit 210 Processing Result Management Unit 300 Processing server 301 Request processing unit 302 Data reception processing unit 303 Data storage unit 304 Image processing unit 305 Data reception unit 306 Reception completion determination unit 307 Retransmission request unit 308 Block management unit 309 Data storage unit NT1, NT2 Network

特開2002−169738号公報JP 2002-169738 A

Claims (10)

複数のブロックに分割されたデータの一部に対する処理を要求する処理要求を、送達確認のある第1の通信方式で他の通信装置から受信する第1受信手段と、
前記データを、送達確認のない第2の通信方式で前記他の通信装置から受信する第2受信手段と、
前記処理要求に従って、前記データの一部に対して、前記処理を実行する処理手段と、
前記処理手段が前記処理を実行する際に、前記データの一部に該当する前記ブロックの受信が正常に完了していない場合、当該ブロックの再送を要求する再送要求を前記他の通信装置に送信する再送要求手段と、
前記再送要求手段が送信した前記再送要求に従って前記他の通信装置から送信された前記ブロックを受信する第3受信手段と、
前記処理手段が前記処理を実行した結果を、前記第1の通信方式で前記他の通信装置に送信する送信手段とを備える
ことを特徴とする通信装置。
First receiving means for receiving a processing request for requesting processing on a part of data divided into a plurality of blocks from another communication device in a first communication method with delivery confirmation;
Second receiving means for receiving the data from the other communication device in a second communication method without delivery confirmation;
Processing means for executing the processing on a part of the data according to the processing request;
When the processing means executes the processing, if reception of the block corresponding to a part of the data is not normally completed, a retransmission request for requesting retransmission of the block is transmitted to the other communication device. Resending request means to
Third receiving means for receiving the block transmitted from the other communication device in accordance with the retransmission request transmitted by the retransmission request means;
A communication device, comprising: a transmission unit configured to transmit a result of execution of the processing by the processing unit to the other communication device using the first communication method.
前記再送要求手段は、前記処理手段が前記処理を実行する際に、前記再送要求を、前記第1の通信方式で前記他の通信装置に送信する
ことを特徴とする請求項1に記載の通信装置。
The communication according to claim 1, wherein the retransmission request unit transmits the retransmission request to the other communication device by the first communication method when the processing unit executes the process. apparatus.
前記第3受信手段は、前記ブロックを前記第1の通信方式で前記他の通信装置から受信する
ことを特徴とする請求項1又は2に記載の通信装置。
The communication device according to claim 1, wherein the third receiving unit receives the block from the other communication device using the first communication method.
前記処理要求は、前記データにおける各前記ブロックの位置を特定するためのブロック情報を含み、
前記ブロック情報を参照して、前記データの一部に該当する少なくとも1つの前記ブロックを特定する特定手段を更に備え、
前記再送要求手段は、前記処理手段が前記処理を実行する際に、前記特定手段が特定した前記ブロックの受信が正常に完了していない場合、当該ブロックの再送を要求する再送要求を前記他の通信装置に送信する
ことを特徴とする請求項1乃至3のいずれか一項に記載の通信装置。
The processing request includes block information for specifying the position of each block in the data,
A specifying means for specifying at least one block corresponding to a part of the data with reference to the block information;
The retransmission request means, when the processing means executes the processing, if the reception of the block specified by the specification means is not normally completed, sends a retransmission request for requesting retransmission of the block to the other The communication apparatus according to claim 1, wherein the communication apparatus transmits to the communication apparatus.
前記データに属する各ブロックについて受信が正常に完了したか否かを判定する第1判定手段を更に備え、
前記再送要求手段は、前記処理手段が前記処理を実行する際に、前記特定手段が特定した前記ブロックについて、受信が正常に完了していないと前記第1判定手段によって判定されている場合、当該ブロックの再送を要求する再送要求を前記他の通信装置に送信する
ことを特徴とする請求項4に記載の通信装置。
Further comprising first determination means for determining whether or not reception has been normally completed for each block belonging to the data;
The retransmission request means, when the first determination means determines that the reception of the block specified by the specification means is not normally completed when the processing means executes the processing, The communication apparatus according to claim 4, wherein a retransmission request for requesting retransmission of a block is transmitted to the other communication apparatus.
前記ブロック情報は、各前記ブロックのハッシュ値を含み、
前記第2受信手段が受信した前記データに属する各前記ブロックについてハッシュ値を算出する算出手段と、
前記ブロック毎に、前記ブロック情報に含まれる前記ハッシュ値と、前記算出手段が算出した前記ハッシュ値とが一致するか否かを判定する第2判定手段とを更に備え、
前記再送要求手段は、前記処理手段が前記処理を実行する際に、前記特定手段が特定した前記ブロックについて、受信が正常に完了していないと前記第1判定手段によって判定されている場合又は前記ハッシュ値が一致しないと前記第2判定手段によって判定されている場合に、当該ブロックの再送を要求する再送要求を前記他の通信装置に送信する
ことを特徴とする請求項5に記載の通信装置。
The block information includes a hash value of each block,
Calculating means for calculating a hash value for each block belonging to the data received by the second receiving means;
A second determination unit that determines, for each block, whether the hash value included in the block information matches the hash value calculated by the calculation unit;
The retransmission requesting unit is configured such that when the processing unit executes the processing, the first determination unit determines that reception of the block specified by the specifying unit has not been normally completed or 6. The communication apparatus according to claim 5, wherein when the second determination unit determines that the hash values do not match, a retransmission request for requesting retransmission of the block is transmitted to the other communication apparatus. .
前記ブロックの長さは、固定長又は可変長であり、
前記ブロック情報は、前記ブロックの長さと、各前記ブロックの開始点とを示し、
前記処理要求は、前記処理の対象が前記データのいずれの部分であるかを指定し、
前記特定手段は、前記ブロック情報を参照して、前記処理要求によって指定された前記部分に該当する少なくとも1つの前記ブロックを特定する
ことを特徴とする請求項4乃至6のいずれか一項に記載の通信装置。
The length of the block is fixed length or variable length,
The block information indicates the length of the block and the starting point of each block,
The processing request specifies which part of the data the processing target is,
The said specifying means specifies at least one said block corresponding to the said part designated by the said process request with reference to the said block information, The any one of Claim 4 thru | or 6 characterized by the above-mentioned. Communication equipment.
第1の通信装置と、複数の第2の通信装置とがネットワークを介して接続される通信システムであって、
前記第1の通信装置は、
処理対象のデータを複数のブロックに分割する分割手段と、
前記データの各々異なる部分に対して各前記第3の通信装置が各々処理を実行するよう、当該データの一部に対する処理を要求する処理要求を、送達確認のある第1の通信方式で各前記第3の通信装置に送信する第1送信手段と、
前記データを、送達確認のない第2の通信方式で各前記第2の通信装置に送信する第2送信手段と、
前記ブロックの再送を要求する再送要求を、前記第2の通信装置から受信する第2受信手段と、
前記再送要求に従って、前記ブロックを、前記第2の通信装置に送信する第3送信手段と、
前記処理が実行された結果を、前記第1の通信方式で各前記第3の通信装置から受信する第3受信手段とを備え、
各前記第2の通信装置は、
前記処理要求を、前記第1の通信方式で前記第1の通信装置から受信する第4受信手段と、
前記データを、前記第2の通信方式で前記第1の通信装置から受信する第5受信手段と、
前記処理要求に従って、前記データの一部に対して、前記処理を実行する処理手段と、
前記処理手段が前記処理を実行する際に、前記データの一部に該当する前記ブロックの受信が正常に完了していない場合、当該ブロックの再送を要求する再送要求を前記第1の通信装置に送信する再送要求手段と、
前記再送要求手段が送信した前記再送要求に従って前記第1の通信装置から送信された前記ブロックを受信する第6受信手段と、
前記処理手段が前記処理を実行した結果を、前記第1の通信方式で前記第1の通信装置に送信する第4送信手段とを備える
ことを特徴とする通信システム。
A communication system in which a first communication device and a plurality of second communication devices are connected via a network,
The first communication device is:
A dividing means for dividing the data to be processed into a plurality of blocks;
A processing request for requesting processing for a part of the data is sent to each of the first communication methods with delivery confirmation so that each of the third communication devices executes processing for each different part of the data. First transmission means for transmitting to a third communication device;
Second transmission means for transmitting the data to each of the second communication devices by a second communication method without delivery confirmation;
Second receiving means for receiving a retransmission request for requesting retransmission of the block from the second communication device;
Third transmission means for transmitting the block to the second communication device according to the retransmission request;
A third receiving means for receiving a result of the execution of the processing from each of the third communication devices in the first communication method;
Each of the second communication devices is
Fourth receiving means for receiving the processing request from the first communication device in the first communication method;
Fifth receiving means for receiving the data from the first communication device in the second communication method;
Processing means for executing the processing on a part of the data according to the processing request;
When the processing means executes the processing, if reception of the block corresponding to a part of the data is not normally completed, a retransmission request for requesting retransmission of the block is sent to the first communication device. A retransmission request means for transmitting;
Sixth receiving means for receiving the block transmitted from the first communication device according to the retransmission request transmitted by the retransmission request means;
A communication system, comprising: a fourth transmission unit configured to transmit the result of execution of the processing by the processing unit to the first communication device using the first communication method.
第1受信手段と、第2受信手段と、処理手段と、再送要求手段と、第3受信手段と、送信手段とを備える通信装置で実行される通信方法であって、
前記第1受信手段が、複数のブロックに分割されたデータの一部に対する処理を要求する処理要求を、送達確認のある第1の通信方式で他の通信装置から受信する第1受信ステップと、
前記第2受信手段が、前記データを、送達確認のない第2の通信方式で前記他の通信装置から受信する第2受信ステップと、
前記処理手段が、前記処理要求に従って、前記データの一部に対して、前記処理を実行する処理ステップと、
前記再送要求手段が、前記処理ステップで前記処理が実行される際に、前記データの一部に該当する前記ブロックの受信が正常に完了していない場合、当該ブロックの再送を要求する再送要求を前記他の通信装置に送信する再送要求ステップと、
第3受信手段が、前記再送要求ステップで送信された前記再送要求に従って前記他の通信装置から送信された前記ブロックを受信する第3受信ステップと、
前記送信手段が、前記処理ステップで前記処理が実行された結果を、前記第1の通信方式で前記他の通信装置に送信する送信ステップとを含む
ことを特徴とする通信方法。
A communication method executed by a communication device including a first reception unit, a second reception unit, a processing unit, a retransmission request unit, a third reception unit, and a transmission unit,
A first receiving step in which the first receiving means receives a processing request for requesting processing of a part of data divided into a plurality of blocks from another communication device in a first communication method with delivery confirmation;
A second receiving step in which the second receiving means receives the data from the other communication device by a second communication method without delivery confirmation;
A processing step in which the processing means executes the processing on a part of the data according to the processing request;
When the retransmission requesting unit does not normally complete reception of the block corresponding to a part of the data when the processing is executed in the processing step, a retransmission request for requesting retransmission of the block is issued. A retransmission request step for transmitting to the other communication device;
A third receiving step in which a third receiving means receives the block transmitted from the other communication device in accordance with the retransmission request transmitted in the retransmission request step;
A communication method, comprising: a transmission step in which the transmission means transmits a result of the execution of the processing in the processing step to the other communication device by the first communication method.
請求項9に記載の通信方法をコンピュータに実行させるための通信プログラム。   A communication program for causing a computer to execute the communication method according to claim 9.
JP2009190429A 2009-08-19 2009-08-19 Communication equipment, communication system, communication method and communication program Pending JP2011044823A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009190429A JP2011044823A (en) 2009-08-19 2009-08-19 Communication equipment, communication system, communication method and communication program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009190429A JP2011044823A (en) 2009-08-19 2009-08-19 Communication equipment, communication system, communication method and communication program

Publications (1)

Publication Number Publication Date
JP2011044823A true JP2011044823A (en) 2011-03-03

Family

ID=43831937

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009190429A Pending JP2011044823A (en) 2009-08-19 2009-08-19 Communication equipment, communication system, communication method and communication program

Country Status (1)

Country Link
JP (1) JP2011044823A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014192689A1 (en) * 2013-05-27 2014-12-04 オリンパスメディカルシステムズ株式会社 Wireless communication system and communication method
JP2017511089A (en) * 2015-01-29 2017-04-13 シャオミ・インコーポレイテッド Method, apparatus, program and recording medium for accessing network

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014192689A1 (en) * 2013-05-27 2014-12-04 オリンパスメディカルシステムズ株式会社 Wireless communication system and communication method
JP5690457B1 (en) * 2013-05-27 2015-03-25 オリンパスメディカルシステムズ株式会社 Wireless communication system and communication method
JP2017511089A (en) * 2015-01-29 2017-04-13 シャオミ・インコーポレイテッド Method, apparatus, program and recording medium for accessing network
US9723486B2 (en) 2015-01-29 2017-08-01 Xiaomi Inc. Method and apparatus for accessing network

Similar Documents

Publication Publication Date Title
US9906630B2 (en) Processing data packets in performance enhancing proxy (PEP) environment
US8898311B2 (en) Data communication method and information processing device
CN107438012B (en) Load balancing service forwarding method, system, balancing device and host machine
US9794354B1 (en) System and method for communication between networked applications
JP5175773B2 (en) Communication apparatus, method and program
JP5696724B2 (en) Relay device, relay system, relay method, program, and computer-readable recording medium recording the program
WO2016000138A1 (en) Data transmission method, terminal and server
US20070291782A1 (en) Acknowledgement filtering
JP2007142582A (en) Data communication device, data communication method, program, and storage medium
US11336297B2 (en) DMA transfer apparatus, method of controlling the same, communication apparatus, method of controlling the same, and non-transitory computer-readable storage medium
JP2011044823A (en) Communication equipment, communication system, communication method and communication program
KR101650829B1 (en) Method, apparatus, and system for acquiring object
US20140047124A1 (en) Trivial file transfer protocol (tftp) data transferring prior to file transfer completion
JP2006260543A (en) Method and apparatus for transmitting data to network, and method and apparatus for receiving data from network
US20070165661A1 (en) Information-processing system, reception device, and program
US8825890B2 (en) Image processing device, control method therefor and computer readable medium
JP2006013911A (en) Stream data transfer method, apparatus and program, and recording medium
JP2001060157A (en) Inter-application message exchange system
US20210168220A1 (en) Hybrid proxying with user space hold
KR100900963B1 (en) Hardware device and method for sending the network protocol packet
JP2017033221A (en) Api request processing device, api request processing method, and api request processing program
US20170265103A1 (en) Communication device, communication method, and non-transitory computer readable medium
JP5825940B2 (en) Distributed processing control system and control method thereof
JP6669382B2 (en) Device device, information processing method and program
JP4664211B2 (en) Processing apparatus and control method thereof