JP2006019802A - Http communication device - Google Patents

Http communication device Download PDF

Info

Publication number
JP2006019802A
JP2006019802A JP2004192899A JP2004192899A JP2006019802A JP 2006019802 A JP2006019802 A JP 2006019802A JP 2004192899 A JP2004192899 A JP 2004192899A JP 2004192899 A JP2004192899 A JP 2004192899A JP 2006019802 A JP2006019802 A JP 2006019802A
Authority
JP
Japan
Prior art keywords
data
http
size
server
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.)
Withdrawn
Application number
JP2004192899A
Other languages
Japanese (ja)
Inventor
Masahito Ochiai
将人 落合
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2004192899A priority Critical patent/JP2006019802A/en
Publication of JP2006019802A publication Critical patent/JP2006019802A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To enable to easily perform data transfer using HTTP in an environment where transfer size of proxy is restricted. <P>SOLUTION: A communication device having a function of transferring the data using an HTTP protocol is provided with a deciding means for deciding the size of dividing the transmission data, a means for dividing the transmission data into a plurality of HTTP packets, and a means for adding data numbers to the divided data and transmitting the data. The device divides the data into the size within the maximum transfers size and transfer the data to a server, and the server performs processing of collecting the dividedly received data into a single file. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、HTTPデータ通信における大量データの通信方法に関するものである。   The present invention relates to a mass data communication method in HTTP data communication.

HTTPプロトコルをトランスポートとして用いてデータ転送を行う方法は、現在、さまざまな用途に用いられ、一般的になってきている。このような環境下では、たとえば画像データや、印刷データなど、サイズの大きいデータをHTTPを用いて、通信を行うことも可能である。また、HTTPを用いてデータ転送を行うメリットとして、プロキシを超えて、通信を行うこともできるといったメリットを持つ。
特開2002−287931号公報
A method of transferring data using the HTTP protocol as a transport is currently used for various purposes and has become common. Under such an environment, it is also possible to communicate large data such as image data and print data using HTTP. Further, as an advantage of performing data transfer using HTTP, there is an advantage that communication can be performed beyond the proxy.
JP 2002-287931 A

しかしながら、近年、セキュリティについての関心が高まる中、プロキシの設定により、一回のHTTPのデータ転送サイズの上限を設けるような設定が可能になってきている。たとえば、オフィス内からプロキシを介して、インターネット上のサーバにデータを転送する場合、HTTPプロトコルのPOST処理を用いてデータ転送がなされるが、オフィス内の情報漏洩を防ぐため、プロキシを介したHTTPのPOST処理には、1回のPOST処理に対して、最大転送サイズ40Mバイトといった制限をかけ、オフィス内からインターネット上に大量のデータを転送させないような設定が行われる場合がある。   However, in recent years, with increasing interest in security, it has become possible to set an upper limit of the HTTP data transfer size once by setting the proxy. For example, when data is transferred from the office to a server on the Internet through a proxy, the data is transferred using the POST processing of the HTTP protocol. In order to prevent information leakage in the office, HTTP through the proxy is used. In the POST process, there is a case in which a maximum transfer size of 40 Mbytes is limited to one POST process, and settings are made so that a large amount of data is not transferred from the office to the Internet.

一方、オフィス内の電子ドキュメントや、電子画像データをインターネット上のストレージサービスに登録するサービスも行われており、こうしたサイズ制限のかかったプロキシ環境化では、ユーザが転送サイズの上限を意識して、上限を超える場合には、送信データを2つ以上のファイルに分けたりしなければならないという問題点があった。   On the other hand, there is also a service that registers electronic documents and electronic image data in the office with a storage service on the Internet. In a proxy environment with such size restrictions, the user is aware of the upper limit of the transfer size, When the upper limit is exceeded, there is a problem that transmission data must be divided into two or more files.

本発明は上記課題に鑑みてなされたものであり、ユーザがプロキシの最大転送サイズを装置に設定することによって、その装置がデータを最大転送サイズ内に分割して、サーバに転送すると共に、サーバ側では、分割受信したデータを一つのファイルに集約する処理を行うことによって、プロキシに転送サイズ制限がかかった環境下でも容易にHTTPを使ったデータ転送が行える環境を提供することを目的とする。   The present invention has been made in view of the above problems. When the user sets the maximum transfer size of the proxy in the device, the device divides the data into the maximum transfer size and transfers it to the server. The purpose is to provide an environment in which data transfer using HTTP can be easily performed even in an environment in which the proxy is limited in transfer size by performing a process of consolidating the received data into one file. .

そのために、本発明では以下のような特徴をもつ。   Therefore, the present invention has the following features.

データをHTTPプロトコルを用いて転送する機能を持つ通信装置において、送信データの分割サイズを決定する決定手段と、送信データを複数のHTTPパケットに上記分割サイズで分割する手段と、分割したデータにデータ番号を付加し、送信する手段とを有し、サーバに対して、データを送信する場合に、データを分割して送信することを特徴とするHTTPデータ送信手段をもつ通信クライアント。   In a communication apparatus having a function of transferring data using the HTTP protocol, a determination unit that determines a division size of transmission data, a unit that divides transmission data into a plurality of HTTP packets at the division size, and data in the divided data A communication client having an HTTP data transmission means, wherein the data is divided and transmitted when data is transmitted to a server.

また、データをHTTPプロトコルを用いて、転送する機能を持つ通信装置において、複数のHTTPパケットに分割されたデータを受信する手段と、分割受信したデータをまとめたデータとして取り扱う手段とを具備する通信サーバ。   In addition, in a communication device having a function of transferring data using the HTTP protocol, a communication device having means for receiving data divided into a plurality of HTTP packets and means for handling the divided data as combined data server.

請求項1の分割サイズを決定する手段は、通信装置がもつユーザインターフェースからサイズを入力する。   The means for determining the division size according to claim 1 inputs the size from the user interface of the communication apparatus.

請求項1の分割サイズを決定する手段は、通信装置が接続するサーバから指定する。   The means for determining the division size according to claim 1 is designated from the server to which the communication apparatus is connected.

請求項1の分割サイズを決定する手段は、通信装置が接続するサーバからサイズを取得できなかった場合には、通信装置が持つユーザインターフェースからサイズを取得する
請求項1で記載されている通信クライアントと請求項2で記載されている通信サーバからなる。
The communication client according to claim 1, wherein the means for determining the division size according to claim 1 acquires the size from a user interface of the communication device when the size cannot be acquired from a server to which the communication device is connected. And a communication server described in claim 2.

装置がデータを最大転送サイズ内に分割して、サーバに転送すると共に、サーバ側では、分割受信したデータを一つのファイルに集約する処理を行うことによって、プロキシに転送サイズ制限がかかった環境下でも容易にHTTPを使ったデータ転送が行うことができる。   The device divides the data within the maximum transfer size and transfers it to the server. At the same time, the server performs processing to consolidate the divided received data into one file. However, data transfer using HTTP can be easily performed.

以下、添付の図面を参照して本発明の実施例を詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

図1は、本実施例のHTTPクライアント装置、およびHTTPサーバ装置として、ネットワーク接続機能を持つマルチファンクションデバイスがLANに接続している概略図である。   FIG. 1 is a schematic diagram in which a multifunction device having a network connection function is connected to a LAN as an HTTP client device and an HTTP server device according to the present embodiment.

101はHTTP通信が可能なマルチファンクションデバイス装置で、本実施例ではスキャンした画像をHTTP通信で転送するデバイスである。102はファイアーウォールである。101のマルチファンクションデバイスは102のファイアーウォールで守られているオフィス内にある。103はインターネット上にあるマルチファンクションデバイスで、プリント機能を持つ。   Reference numeral 101 denotes a multi-function device capable of HTTP communication. In this embodiment, a device that transfers a scanned image by HTTP communication. Reference numeral 102 denotes a firewall. 101 multifunction devices are located in an office protected by 102 firewalls. A multi-function device 103 on the Internet has a print function.

本実施例では、デバイス101からファイアーウォール102を介して、インターネット上に接続されているデバイス103に対して、デバイス101で読み込んだスキャナデータをデバイス103にプリントアウトするものである。   In this embodiment, the scanner data read by the device 101 is printed out to the device 103 from the device 101 via the firewall 102 to the device 103 connected on the Internet.

図2は、本実施例における101,103のマルチファンクションデバイス装置の概略を表すブロック図である。   FIG. 2 is a block diagram showing an outline of the multifunction device apparatuses 101 and 103 in this embodiment.

201はスキャナエンジン213を制御するスキャナエンジン制御部、202はCP、,203はプログラムが可能されているブートロム、204はRAM、205はパネルから設定された値を保持しておくための不揮発性のRAM(NVRAM)、206はプリンタエンジン212を制御するエンジン制御部、207はHDD、208はタイマ、209はパネルやボタンランプといったユーザインターフェース部分214を制御するI/O制御部、210はネットワーク制御部で、それぞれがバス211に接続している。   201 is a scanner engine control unit that controls the scanner engine 213, 202 is a CP, 203 is a bootable ROM that can be programmed, 204 is a RAM, and 205 is a non-volatile storage for holding values set from the panel RAM (NVRAM), 206 is an engine control unit that controls the printer engine 212, 207 is an HDD, 208 is a timer, 209 is an I / O control unit that controls a user interface part 214 such as a panel or button lamp, and 210 is a network control unit Each is connected to the bus 211.

図3は本実施例でデバイス101,103が所有するユーザインターフェース部分である。   FIG. 3 shows a user interface portion owned by the devices 101 and 103 in this embodiment.

301は大型タッチパネルで、ユーザはタッチパネルを操作することで、各種設定を行うことが可能である。図の画面はコピーの待機画面である。302はテンキーボタンで、1から0の数字を入力するのに使う。Sのボタンはサービスボタンで、このボタンを押下することにより、タッチパネル上に各種サービス画面が出現し、コピー以外のサービスを行うことができる。Rのボタンは設定ボタンで、このボタンを押下することによって、タッチパネル上に、各種設定画面が出現し、パラメータの設定を行うことができる。303はスピーカで、音声やブザー等をここから出力する。304はランプで、印刷やコピーがジャムした場合には、ランプが点滅する。   Reference numeral 301 denotes a large touch panel, and the user can perform various settings by operating the touch panel. The screen shown in the figure is a copy standby screen. A numeric keypad 302 is used to enter numbers from 1 to 0. The S button is a service button. When this button is pressed, various service screens appear on the touch panel, and services other than copying can be performed. The R button is a setting button. When this button is pressed, various setting screens appear on the touch panel, and parameters can be set. Reference numeral 303 denotes a speaker which outputs voice, buzzer, and the like. A lamp 304 blinks when printing or copying is jammed.

図4は、101のデバイスのネットワーク周りの制御を行うモジュール構成のブロック図を示したものである。   FIG. 4 is a block diagram of a module configuration for performing control around the network of 101 devices.

401はEtherDriverでオフィスLANに接続して、Ethernet(登録商標)のパケットの送受信を行うためのドライバモジュールである。402はTCP/IPプロトコルスタックである。本発明のデバイスはマルチプロトコルをサポートし、NetWareやAppleTalkといったプロトコルでも通信が可能であるが、ここでは記述を省略している。403はソケットレイヤーである。TCP/IPプロトコルを用いるためのAPIが定義されている。TCP/IPを用いて通信を行うプログラムはすべてソケットレイヤーが提供するAPIを用いて、その通信を行う。404はHTTPClientモジュールで、HTTP処理機能をもち、HTTPプロトコルを用いて、相手先と通信を行う。405はSOAPモジュール、406はスキャナサービスモジュールでSOAP/XMLを使ったスキャンToプリントサービスを実現するためのモジュールである。デバイス101ではスキャンサービス406がパネルからの入力指示によって、スキャナエンジン213からスキャンした画像をSOAPモジュール405、HTTPクライアントモジュール404を用いて、プリントデバイス101に転送するものである。   Reference numeral 401 denotes a driver module for connecting to the office LAN with an Ethernet driver and transmitting and receiving Ethernet (registered trademark) packets. Reference numeral 402 denotes a TCP / IP protocol stack. The device of the present invention supports a multi-protocol and can communicate with a protocol such as NetWare or AppleTalk, but the description is omitted here. Reference numeral 403 denotes a socket layer. An API for using the TCP / IP protocol is defined. All programs that communicate using TCP / IP communicate using the API provided by the socket layer. Reference numeral 404 denotes an HTTP PC module, which has an HTTP processing function, and communicates with the other party using the HTTP protocol. Reference numeral 405 denotes a SOAP module, and reference numeral 406 denotes a scanner service module which is a module for realizing a scan To print service using SOAP / XML. In the device 101, the scan service 406 transfers an image scanned from the scanner engine 213 to the print device 101 using the SOAP module 405 and the HTTP client module 404 in response to an input instruction from the panel.

図5は、103のデバイスのネットワーク周りの制御を行うモジュール構成のブロック図を示したものである。   FIG. 5 shows a block diagram of a module configuration for performing control around the network of 103 devices.

501はEtherDriverでインターネットに接続して、Ethernet(登録商標)のパケットの送受信を行うためのドライバモジュールである。502はTCP/IPプロトコルスタックである。本発明のデバイスはマルチプロトコルをサポートし、NetWareやAppleTalkといったプロトコルでも通信が可能であるが、ここでは記述を省略している。503はソケットレイヤーである。TCP/IPプロトコルを用いるためのAPIが定義されている。TCP/IPを用いて通信を行うプログラムはすべてソケットレイヤーが提供するAPIを用いて、その通信を行う。504はHTTPServerモジュールで、HTTP処理機能をもち、HTTPプロトコルを用いて、相手先と通信を行う。505はSOAPモジュール、506はプリントサービスモジュールでSOAP/XMLを使ったスキャンToプリントサービスを実現するためのモジュールである。デバイス103ではスキャナデバイス101から受信したSOAP/XMLを用いたHTTPデータからプリントデータを抽出して、エンジン制御206を介してプリンタエンジン212に送られ、印刷されることになる。   Reference numeral 501 denotes a driver module for connecting to the Internet with an Ethernet driver and transmitting and receiving Ethernet (registered trademark) packets. Reference numeral 502 denotes a TCP / IP protocol stack. The device of the present invention supports a multi-protocol and can communicate with a protocol such as NetWare or AppleTalk, but the description is omitted here. Reference numeral 503 denotes a socket layer. An API for using the TCP / IP protocol is defined. All programs that communicate using TCP / IP communicate using the API provided by the socket layer. Reference numeral 504 denotes an HTTP server module, which has an HTTP processing function and communicates with a partner using the HTTP protocol. Reference numeral 505 denotes a SOAP module, and reference numeral 506 denotes a print service module, which is a module for realizing a scan to print service using SOAP / XML. The device 103 extracts print data from the HTTP data using SOAP / XML received from the scanner device 101, and sends the print data to the printer engine 212 via the engine control 206 for printing.

図6は、本実施例におけるHTTP上のSOAPプリントサービスのプロトコルで、クライアントから印刷装置に送信されるCreateJobと称されるパケットデータの一例である。このデータはXML形式で記述されている。CreateJobパケットは、印刷装置に対し、ジョブ(印刷)の開始を指示するコマンドであり、要求元のユーザ名(<requesting−user−name>タグ)やジョブの処理に関する指示(<job−instruction>タグ)等の情報が記述されている。<job−instruction>タグには印刷部数を設定する<copies>タグ、両面印刷を設定する<sides>タグ、印刷の仕上げを設定する<finishing>タグなどが含まれ、印刷装置はこれらのタグに設定された値に基づき、ジョブの処理を行う。さらに、<job−instruction>タグにはオプションとして<notification−instruction>タグを含めることも可能である。この<notification−instruction>タグにはジョブに関する通知情報が記述される。図6の例においては通知情報として、通知先を設定する<notification−recipient>タグおよび通知条件を設定する<event>タグが記述されている。印刷装置はこれらのタグに設定された値に基づいてイベント送信処理を行う。本実施例では、job−completedおよび、job−canceledが指定されているため、ジョブ印刷終了、および、ジョブキャンセル時にイベントを通知することになる。   FIG. 6 is an example of packet data called “CreateJob” transmitted from the client to the printing apparatus in the SOAP print service protocol on HTTP in the present embodiment. This data is described in the XML format. The CreateJob packet is a command for instructing the printing apparatus to start a job (printing), and includes a request source user name (<requesting-user-name> tag) and an instruction relating to job processing (<job-instruction> tag). ) Etc. are described. The <job-instruction> tag includes a <copy> tag for setting the number of copies to be printed, a <sides> tag for setting double-sided printing, a <finishing> tag for setting print finishing, and the like. The job is processed based on the set value. Further, the <job-instruction> tag can optionally include a <notification-instruction> tag. In this <notification-instruction> tag, notification information about the job is described. In the example of FIG. 6, a <notification-recipient> tag for setting a notification destination and an <event> tag for setting a notification condition are described as notification information. The printing apparatus performs event transmission processing based on the values set in these tags. In this embodiment, since job-completed and job- canceled are specified, an event is notified when job printing ends and when the job is canceled.

図7は、図6のCreateJobパケットに対する応答パケットデータの一例である。   FIG. 7 is an example of response packet data for the CreateJob packet in FIG.

本データも図6と同様にXML形式で記述され、本実施例においてはHTTP上のSOAPを用いて送受信される。CreateJob応答パケットには、CreateJobコマンド対する結果コード(<result−code>タグ)や生成されたジョブの識別子(<job−id>タグ)、印刷用ポートのURI(<data−sink−uri>タグ)等の情報が含まれている。図7の701で示した部分が印刷用ポートのURIを示す部分であり、図7の例では「http://192.168.1.4/job001」というURIが示されている。   This data is also described in the XML format as in FIG. 6, and is transmitted and received using SOAP on HTTP in this embodiment. The CreateJob response packet includes a result code (<result-code> tag) for the CreateJob command, an identifier of the generated job (<job-id> tag), and a URI for the print port (<data-sink-uri> tag). Etc. are included. A portion indicated by reference numeral 701 in FIG. 7 is a portion indicating the URI of the print port. In the example of FIG. 7, a URI “http://192.168.1.4/job001” is shown.

図8は、スキャンデバイス101からプリントデバイス103にデータ転送を行う場合における本実施例の印刷装置の動作を示すフローチャートである。   FIG. 8 is a flowchart illustrating the operation of the printing apparatus according to the present exemplary embodiment when data is transferred from the scan device 101 to the print device 103.

以下、図8を用いて、本実施例のプリントデバイス103の動作を説明する。   Hereinafter, the operation of the print device 103 according to the present exemplary embodiment will be described with reference to FIG.

スキャナデバイス101から図6に示したようなCreateJobパケットが印刷装置に送信されると、印刷装置はS801において、CreateJobに記述されたXMLデータを解析し、S802に進み解析結果にエラーがないか判定する。エラーがなければ、S803において印刷データ受信用の印刷ポートを生成する。S803の処理が終わるとS804へ進み、CreateJobパケットに対するレスポンスのXMLデータの生成を行なう。このときに印刷データ受信用に生成したポートのURIを<data−sink−uri>タグの値として設定する。701のようなURIがXMLデータに埋め込まれる。CreateJobレスポンスデータの生成が終了するとS806へ進み、そのデータをSOAPを用いてスキャナデバイス101に送信する。スキャナデバイス101は、その後、<data−sink−uri>タグで指定されたURIに対してHTTPのPOSTメソッドを用いて印刷データを送信する。図9はHTTP POSTメソッドによる印刷データ転送パケットの一例である。印刷装置はS807において印刷ポートに到着したデータを受信し、適切な処理をしながらプリンタに印刷する。S807において、印刷データの受信が正常に終了すると印刷装置はS808において図10に示した例のようなHTTPレスポンスパケットをスキャナデバイス101に送信し、印刷用ポートを削除(クローズ)して印刷動作を終了する。一方、S802においてCreateJobに記述されたXMLデータにエラーがあると判定された場合はS804へ進み、エラーレスポンスデータを生成する。図11はエラーレスポンスの例である。次にS806においてエラーレスポンスをスキャナデバイス101に送信すると、スキャナデバイス101は印刷データを送信することはせず、処理を終了する。   When the CreateJob packet as shown in FIG. 6 is transmitted from the scanner device 101 to the printing apparatus, the printing apparatus analyzes the XML data described in CreateJob in S801, and proceeds to S802 to determine whether there is an error in the analysis result. To do. If there is no error, a print port for receiving print data is generated in S803. When the process of S803 is completed, the process proceeds to S804, and XML data for a response to the CreateJob packet is generated. At this time, the URI of the port generated for receiving print data is set as the value of the <data-sink-uri> tag. A URI such as 701 is embedded in the XML data. When the creation of CreateJob response data is completed, the process advances to step S806, and the data is transmitted to the scanner device 101 using SOAP. Thereafter, the scanner device 101 transmits print data to the URI specified by the <data-sink-uri> tag using the HTTP POST method. FIG. 9 shows an example of a print data transfer packet by the HTTP POST method. In step S807, the printing apparatus receives the data arriving at the print port, and prints it on the printer while performing appropriate processing. In S807, when the reception of the print data ends normally, the printing apparatus transmits an HTTP response packet like the example shown in FIG. 10 to the scanner device 101 in S808, deletes (closes) the print port, and performs the printing operation. finish. On the other hand, if it is determined in S802 that there is an error in the XML data described in CreateJob, the process proceeds to S804, and error response data is generated. FIG. 11 shows an example of an error response. Next, when an error response is transmitted to the scanner device 101 in step S806, the scanner device 101 does not transmit print data and ends the process.

図12は図8で示した、POST処理の詳細である。   FIG. 12 shows details of the POST processing shown in FIG.

通常、図8で示したようにデータはHTTPのPOST処理1回で他方に相手に転送され、印刷装置側はそれを受信して応答を返す。   Normally, as shown in FIG. 8, data is transferred to the other party in one HTTP POST process, and the printing apparatus receives it and returns a response.

本発明においては、図12のようにこのHTTPのPOST処理を複数回行うことによる。そのため、901に示したようにHTTPのヘッダ部分にx−Sequence−Numberとしてシーケンス番号を登録し、複数回のHTTPのPOST処理を行うようにする。POST処理の一番最後にはx−Sequence−Number:lastとして、そのPOST処理が最後のPOST処理であることを示す。   In the present invention, the HTTP POST process is performed a plurality of times as shown in FIG. Therefore, as shown in 901, a sequence number is registered as an x-Sequence-Number in the HTTP header portion, and a plurality of HTTP POST processes are performed. At the very end of the POST process, x-Sequence-Number: last indicates that the POST process is the last POST process.

図13はデバイス101のローカルインターフェース上に表示されるHTTPの最大転送サイズの画面である。   FIG. 13 is a screen showing the maximum transfer size of HTTP displayed on the local interface of the device 101.

ユーザは転送最大サイズをテンキー302を用いて入力することが可能である。   The user can input the maximum transfer size using the numeric keypad 302.

この最大転送サイズはHTTPクライアントモジュール404によって参照され、そのサイズに収まるようにHTTPのPOST処理を分割することになる。   This maximum transfer size is referred to by the HTTP client module 404, and the HTTP POST processing is divided so as to be within the size.

図14は、スキャナデバイス101がプロキシ102にアクセスするときにプロキシ102からプロキシ情報を取得するシーケンスの一例である。   FIG. 14 is an example of a sequence for acquiring proxy information from the proxy 102 when the scanner device 101 accesses the proxy 102.

スキャナデバイスは接続先のIPアドレスによって、そのIPへの接続がプロキシを介して接続する必要があるか、直接接続するかを判断する。プロキシを介して、接続する場合に、まず、プロキシから最大転送サイズ情報を取得する。プロキシが応答した最大転送サイズをHTTPクライアントモジュール404は参照し、そのサイズ内に収まるようにHTTPのPOST処理を分割することになる。   Based on the IP address of the connection destination, the scanner device determines whether the connection to the IP needs to be connected through a proxy or is connected directly. When connecting via a proxy, first, the maximum transfer size information is acquired from the proxy. The HTTP client module 404 refers to the maximum transfer size to which the proxy has responded, and divides the HTTP POST processing so as to be within the size.

図15は、プロキシ接続時にプロキシサーバから転送サイズ情報を取得する処理の流れを示すフローチャートである。   FIG. 15 is a flowchart showing a flow of processing for acquiring transfer size information from the proxy server at the time of proxy connection.

図16は、HTTPクライアントモジュールのデータ送信時の処理の流れを示すフローチャートである。   FIG. 16 is a flowchart showing the flow of processing when data is transmitted by the HTTP client module.

図17は、HTTPサーバモジュールのデータ受信時の処理の流れを示すフローチャートである。   FIG. 17 is a flowchart showing the flow of processing when data is received by the HTTP server module.

以下、図を用いて、本発明の処理の流れについて説明する。   The processing flow of the present invention will be described below with reference to the drawings.

デバイス101のHTTPクライアントモジュール404の処理の流れについて説明する。   A process flow of the HTTP client module 404 of the device 101 will be described.

デバイス101のスキャンサービスモジュール406はユーザから、スキャンして、別プリンタへデータを送信の指示があると、スキャナ制御201を介してスキャナエンジン213からユーザのセットした画像を読み取る。読み取った画像はHTTPクライアントモジュール404に転送される。スキャナサービス406はユーザから指定された宛先を指定して、HTTPクライアントモジュール404にデータの転送を指示する。HTTPクライアントモジュール404はSOAP/XMLを使った制御方式で、プリントデバイス103に転送することになる。   The scan service module 406 of the device 101 reads an image set by the user from the scanner engine 213 via the scanner control 201 when the user instructs to scan and transmit data to another printer. The read image is transferred to the HTTP client module 404. The scanner service 406 designates a destination designated by the user and instructs the HTTP client module 404 to transfer data. The HTTP client module 404 is transferred to the print device 103 by a control method using SOAP / XML.

HTTPクライアントモジュール404はスキャナサービスモジュールから転送先の指示を受けると、その転送先がプロキシ102経由で転送するか、直接デバイスに接続できるかを判断する(不図示)。プロキシ102経由でデータを転送する場合の処理から、図15を用いて説明する。   When receiving an instruction for a transfer destination from the scanner service module, the HTTP client module 404 determines whether the transfer destination is transferred via the proxy 102 or can be directly connected to the device (not shown). The processing when data is transferred via the proxy 102 will be described with reference to FIG.

プロキシ102経由でデバイス103に接続する場合、まず、HTTPクライアントモジュール404はプロキシ102から最大転送サイズを取得する(S1501)。このときのデバイス101とプロキシ102のパケットの授受は図14に図示したようなシーケンスになる。図14では、プロキシサーバ102にHTTP GETでx−PROXY−MAX−TransferSizeを取得要求し、プロキシサーバ102はHTTP OKとしてx−PROXY−MAX−TRansferSize:40Mbytesを返している。この例では、このプロキシサーバ102の一回のPOST処理の最大サイズは40Mbyteであることがわかる。S1502でプロキシサーバ102から1回のPOST処理の最大サイズが取得できた場合にはその最大サイズをRAM204にMAX−TRANSFER−SIZEとして、保持しておく(S1504)。S1502でプロキシサーバ102が応答を返さなかった場合には、S1503でパネルから取得する(S1503)。そして、この値をS1504でRAM204上に保持する。パネルからの入力は、あらかじめユーザが図13に示した画面から入力しておくことになる。図13では40Mbyteが入力されている。   When connecting to the device 103 via the proxy 102, first, the HTTP client module 404 acquires the maximum transfer size from the proxy 102 (S1501). The exchange of packets between the device 101 and the proxy 102 at this time is a sequence as shown in FIG. In FIG. 14, the proxy server 102 requests acquisition of x-PROXY-MAX-TransferSize by HTTP GET, and the proxy server 102 returns x-PROXY-MAX-TransferSize: 40 Mbytes as HTTP OK. In this example, it can be seen that the maximum size of one POST process of the proxy server 102 is 40 Mbytes. If the maximum size of one POST process can be acquired from the proxy server 102 in S1502, the maximum size is stored in the RAM 204 as MAX-TRANSFER-SIZE (S1504). If the proxy server 102 does not return a response in S1502, the proxy server 102 acquires it from the panel in S1503 (S1503). Then, this value is held on the RAM 204 in S1504. The input from the panel is input in advance from the screen shown in FIG. In FIG. 13, 40 Mbytes are input.

本実施例では、1回のPOST処理の最大転送サイズは40Mbyteとして動作する。   In this embodiment, the maximum transfer size for one POST process is 40 Mbytes.

次に実際の転送処理の処理の流れについて図16を用いて説明する。   Next, the flow of actual transfer processing will be described with reference to FIG.

スキャナサービス406はデータのスキャンが終了するとHTTPクライアントモジュール404にデータを転送し、HTTPクライアントモジュール404はHTTPおよび、SOAP/XMLを用いてデバイス103にデータを転送する。   The scanner service 406 transfers the data to the HTTP client module 404 when the data scan is completed, and the HTTP client module 404 transfers the data to the device 103 using HTTP and SOAP / XML.

データを転送のシーケンスは図8に図示したようなシーケンスになる。本実施例で、スキャンしたデータが40Mbyte内に収まれば、図8に図示したように、HTTPのPOSTは1回のみ行われることになる。40MByte以上の場合には、1回のPOSTの転送サイズを最大40Mbyteとして、図12に図示したように複数回行われることになる。   The sequence of transferring data is as shown in FIG. In the present embodiment, if the scanned data is within 40 Mbytes, HTTP POST is performed only once as shown in FIG. In the case of 40 Mbytes or more, the transfer size of one POST is set to a maximum of 40 Mbytes, and the transfer is performed a plurality of times as illustrated in FIG.

では、その複数回の転送処理の流れを図16を用いて説明する。HTTPクライアントモジュール404はCreateJobのレスポンス受信後、指定されたURLに対して、HTTPでスキャナサービス406のデータを転送することになる。まず、x−Sequence−Number=1として(S1601)、次に、スキャンサービスから指定されたTotal転送サイズが先にRAM204上に保持しておいたMAX−TRANSFER−SIZE(本実施例では40Mbyte)より大きいかどうかを判断する(S1603)。S1603で大きいと判断した場合には、1回のPOSTの転送サイズ(Content−length)をMAX−TRANSFER−SIZE(40Mbyte)に設定する(S1603)。続いて、そのサイズ分のPOST処理を実行する(S1604)。HTTPクライアントモジュール404はデバイス103からのHTTPのレスポンスを待つ(S1605)。レスポンス受信後、Total転送サイズから、実際に転送した転送サイズを減算する(S1606)。減算後、Total転送サイズが0かどうかを判断する(S1607)。0でない場合には、まだ転送すべきデータあることから、x−Sequence−Numberに1を加えて(S1608)、再び、S1602へ戻る。   Now, the flow of the plurality of transfer processes will be described with reference to FIG. After receiving the CreateJob response, the HTTP client module 404 transfers the data of the scanner service 406 by HTTP to the specified URL. First, x-Sequence-Number = 1 is set (S1601), and then, from the MAX-TRANSFER-SIZE (40 Mbytes in this embodiment), the total transfer size designated by the scan service is previously stored in the RAM 204. It is determined whether it is larger (S1603). If it is determined in S1603 that it is large, the transfer size (Content-length) of one POST is set to MAX-TRANSFER-SIZE (40 Mbytes) (S1603). Subsequently, a POST process corresponding to the size is executed (S1604). The HTTP client module 404 waits for an HTTP response from the device 103 (S1605). After receiving the response, the transfer size actually transferred is subtracted from the total transfer size (S1606). After subtraction, it is determined whether the total transfer size is 0 (S1607). If it is not 0, there is still data to be transferred, so 1 is added to x-Sequence-Number (S1608), and the process returns to S1602.

S1602でMAX−TRANSFER−SIZEよりTotal転送サイズが小さい場合には、それを送れば、POST処理は終了することから、POSTの転送サイズ(Content−length)をTotal転送サイズとして、x−Sequence−NumberをLastとする(S1609)。そして、S1604でPOST処理を実行する。   If the total transfer size is smaller than the MAX-TRANSFER-SIZE in S1602, the POST process ends when it is sent. Therefore, the POST transfer size (Content-length) is set as the total transfer size, and the x-Sequence-Number is set. Is set to Last (S1609). In step S1604, a POST process is executed.

こうして、S1607でTotal転送サイズが0になるまで繰り返して、データの転送が終了する。このときのネットワーク上のシーケンスは図12に図示したようになる。   In this manner, the data transfer is completed until the total transfer size becomes 0 in S1607. The sequence on the network at this time is as shown in FIG.

続いて、プリンタデバイス側103の処理の流れについて説明する。プリンタデバイス103のHTTPサーバモジュール504の処理の流れについて説明する。図8に図示したようにData−Sink−URIを返した後、デバイス101はHTTPのPOST処理を用いて、スキャンデータを転送してくる。HTTPサーバモジュール504はS1701にてデータの受信待ちになっている。デバイス101からデータを受信すると、HTTPヘッダからx−Sequnce−Numberを取得する(S1702)。続いて、HTTPのBody部(実際のデータ)をプリント処理に転送し、プリント処理を行う(S1703)。HTTPのContent−length分データを受信したかをS1704で判断する。まだ受信していない場合には、引き続きS1707でデータを待ち、受信したデータをプリントモジュールに転送する(S1708)。S1704でContent−length分データを受信した場合にはS1705にてHTTPのレスポンス200OKをデバイス101に返送する。返送後、S1702で取得したx−Sequence−NumberがLastかどうかを判断する(S1706)。Lastでない場合には、引き続きデータがあることから、S1701にてデータの受信待ちになる。Lastであった場合には、これで全てのデータを受信したことになるので、処理を終了する。   Next, the flow of processing on the printer device side 103 will be described. A processing flow of the HTTP server module 504 of the printer device 103 will be described. After returning the Data-Sink-URI as shown in FIG. 8, the device 101 transfers the scan data using the HTTP POST process. The HTTP server module 504 is waiting for data reception in S1701. When data is received from the device 101, x-Sequence-Number is acquired from the HTTP header (S1702). Subsequently, the Body part (actual data) of the HTTP is transferred to the print process, and the print process is performed (S1703). In step S1704, it is determined whether data corresponding to HTTP Content-length has been received. If it has not been received yet, data is waited in S1707, and the received data is transferred to the print module (S1708). When the content-length data is received in S1704, an HTTP response 200OK is returned to the device 101 in S1705. After the return, it is determined whether the x-sequence-number acquired in S1702 is Last (S1706). If it is not Last, there is data continuously, so that data reception waits in S1701. If it is Last, all the data has been received, and the process ends.

本実施例では、HTTPのPOSTの転送サイズがContent−lengthとして与えることが可能となっているが、HTTPのチャンク処理を用いても同様に実現できる。   In this embodiment, the HTTP POST transfer size can be given as Content-length, but the same can be realized by using HTTP chunk processing.

また、プロキシがないような環境において、ルータで最大転送サイズを制限しているような環境下でも、同様に実現することができる。   Further, in an environment where there is no proxy, the same can be realized even in an environment where the maximum transfer size is limited by the router.

本実施例のネットワークデバイス装置として、ネットワーク接続機能を持つマルチファンクションデバイスがLANに接続している概略図。1 is a schematic diagram in which a multifunction device having a network connection function is connected to a LAN as a network device apparatus according to an embodiment. FIG. 本実施例におけるマルチファンクションデバイスの概略を表すブロック図。1 is a block diagram illustrating an outline of a multifunction device according to an embodiment. 本デバイスが所有するユーザインターフェース部分。User interface part owned by this device. 本実施例におけるデバイス101のモジュール構成のブロック図。The block diagram of the module structure of the device 101 in a present Example. 本実施例におけるデバイス103のモジュール構成のブロック図。The block diagram of the module structure of the device 103 in a present Example. 本実施例におけるHTTP上のSOAPプリントサービスのプロトコルで、クライアントから印刷装置に送信されるCreateJobと称されるパケットデータの一例。An example of packet data called CreateJob transmitted from a client to a printing apparatus in the protocol of the SOAP print service on HTTP in the present embodiment. 図5のCreateJobパケットに対する応答パケットデータの一例。An example of response packet data for the CreateJob packet in FIG. クライアントが印刷を行う場合における本実施例の印刷装置の動作を示すフローチャート。6 is a flowchart illustrating an operation of the printing apparatus according to the present exemplary embodiment when the client performs printing. HTTP POSTメソッドによる印刷データ転送パケットの一例。An example of the print data transfer packet by the HTTP POST method. HTTPレスポンスパケットの一例。An example of an HTTP response packet. エラーレスポンスの例。An example of an error response. HTTP POSTメソッドが分割して送られるシーケンスの例Example of a sequence in which the HTTP POST method is divided and sent 最大転送サイズの入力を行うパネルの例Example of a panel for entering the maximum transfer size プロキシサーバから最大転送サイズを獲得するシーケンスの例Example sequence for obtaining the maximum transfer size from a proxy server プロキシサーバから最大転送サイズを取得するときのフローチャートFlowchart for obtaining the maximum transfer size from the proxy server HTTPクライアントモジュールの処理を流れを示すフローチャートFlowchart showing the flow of processing of the HTTP client module HTTPサーバモジュールの処理の流れを示すフローチャートThe flowchart which shows the flow of a process of an HTTP server module

Claims (6)

データをHTTPプロトコルを用いて転送する機能を持つ通信装置において、
送信データの分割サイズを決定する決定手段と、
送信データを複数のHTTPパケットに上記分割サイズで分割する手段と、
分割したデータにデータ番号を付加し、送信する手段と、
を有し、
サーバに対して、データを送信する場合に、データを分割して送信することを特徴とするHTTPデータ送信手段をもつことを特徴とする通信クライアント。
In a communication device having a function of transferring data using the HTTP protocol,
A determination means for determining a division size of transmission data;
Means for dividing the transmission data into a plurality of HTTP packets at the division size;
Means for adding a data number to the divided data and transmitting the data;
Have
A communication client characterized by having HTTP data transmitting means characterized by dividing and transmitting data when transmitting data to a server.
データをHTTPプロトコルを用いて、転送する機能を持つ通信装置において、
複数のHTTPパケットに分割されたデータを受信する手段と、
分割受信したデータをまとめたデータとして取り扱う手段と、
を具備することを特徴とする通信サーバ。
In a communication device having a function of transferring data using the HTTP protocol,
Means for receiving data divided into a plurality of HTTP packets;
A means of handling the received data as a collection of data;
A communication server comprising:
請求項1の分割サイズを決定する手段は、通信装置がもつユーザインターフェースからサイズを入力することを特徴とする通信装置。   2. The communication apparatus according to claim 1, wherein the means for determining the division size inputs a size from a user interface of the communication apparatus. 請求項1の分割サイズを決定する手段は、通信装置が接続するサーバから指定することを特徴とする通信装置。   2. The communication apparatus according to claim 1, wherein the means for determining the division size is designated from a server to which the communication apparatus is connected. 請求項1の分割サイズを決定する手段は、通信装置が接続するサーバからサイズを取得できなかった場合には、通信装置が持つユーザインターフェースからサイズを取得することを特徴とする通信装置。   2. The communication apparatus according to claim 1, wherein the means for determining the division size acquires the size from a user interface of the communication apparatus when the size cannot be acquired from a server to which the communication apparatus is connected. 請求項1で記載されている通信クライアントと請求項2で記載されている通信サーバからなるシステムであることを特徴とする通信システム。   A communication system comprising a communication client described in claim 1 and a communication server described in claim 2.
JP2004192899A 2004-06-30 2004-06-30 Http communication device Withdrawn JP2006019802A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004192899A JP2006019802A (en) 2004-06-30 2004-06-30 Http communication device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004192899A JP2006019802A (en) 2004-06-30 2004-06-30 Http communication device

Publications (1)

Publication Number Publication Date
JP2006019802A true JP2006019802A (en) 2006-01-19

Family

ID=35793683

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004192899A Withdrawn JP2006019802A (en) 2004-06-30 2004-06-30 Http communication device

Country Status (1)

Country Link
JP (1) JP2006019802A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008236073A (en) * 2007-03-16 2008-10-02 Softbank Bb Corp Data transfer system and data transfer method
JP2010039519A (en) * 2008-07-31 2010-02-18 Japan Digital Laboratory Co Ltd Error notification method, information processor, and communication system
JP2013524727A (en) * 2010-04-15 2013-06-17 マイクロソフト コーポレーション Method and system for reliable protocol tunneling over HTTP
JP2014526098A (en) * 2011-12-31 2014-10-02 北大方正集▲団▼有限公司 Method and system for downloading font files
JP2019070981A (en) * 2017-10-10 2019-05-09 キヤノン株式会社 Image processing apparatus, control method and program for image processing apparatus

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008236073A (en) * 2007-03-16 2008-10-02 Softbank Bb Corp Data transfer system and data transfer method
JP2010039519A (en) * 2008-07-31 2010-02-18 Japan Digital Laboratory Co Ltd Error notification method, information processor, and communication system
JP2013524727A (en) * 2010-04-15 2013-06-17 マイクロソフト コーポレーション Method and system for reliable protocol tunneling over HTTP
JP2014526098A (en) * 2011-12-31 2014-10-02 北大方正集▲団▼有限公司 Method and system for downloading font files
JP2019070981A (en) * 2017-10-10 2019-05-09 キヤノン株式会社 Image processing apparatus, control method and program for image processing apparatus
JP7233834B2 (en) 2017-10-10 2023-03-07 キヤノン株式会社 IMAGE PROCESSING DEVICE, CONTROL METHOD AND PROGRAM OF IMAGE PROCESSING DEVICE

Similar Documents

Publication Publication Date Title
JP6056795B2 (en) Image processing system, gateway device, gateway device control method, gateway device control program
US9019532B2 (en) Device messaging
JP5522095B2 (en) Printer
JP4850761B2 (en) Event notification device and event notification method
JP5810761B2 (en) Process control server and process control method
JP2012155575A (en) Print control server and print system
JP2011232893A (en) Print data creation server, printing apparatus, and printing system
US6431772B1 (en) Broadcast printing system and method
US9866407B2 (en) Information processing system, cloud server, device control method, and non-transitory computer-readable recording medium encoded with device control program
US9232100B2 (en) Information processing system, control method thereof, and non-transitory computer-readable medium with generating authorization information to use a function of the first service and link information to call an input window
US20120154861A1 (en) Image processing apparatus, system including image processing apparatus and external apparatus
JP2007201688A (en) Data communication device and data communication processing program
JP2008186270A (en) Network printing system
JP4987770B2 (en) Event notification device, event notification method, and event notification program
JP2009255390A (en) Image forming apparatus, functional cooperation control method, and functional cooperation control program
JP5683218B2 (en) Image processing apparatus, information processing system, information processing method, and program
JP2008186271A (en) Server, printer, and network printing system
JP2006252321A (en) Electronic document management system, print setting device, print history device, image forming apparatus, print setting service device, temporary document keeping service device and control program
JP2006019802A (en) Http communication device
US8958098B2 (en) Communication device allowing proxy reception of data directed thereto, and control method and storage medium therefor
US10051083B2 (en) Communication system, communication device and program
JP2006212904A (en) Printing system
JP2003345743A (en) Communication in network
JP2008070939A (en) Distribution system
JP2007034886A (en) Image output device, image output method, and network connection apparatus

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070904