JP6444125B2 - 情報処理装置、情報処理装置の制御方法、及びプログラム - Google Patents

情報処理装置、情報処理装置の制御方法、及びプログラム Download PDF

Info

Publication number
JP6444125B2
JP6444125B2 JP2014206739A JP2014206739A JP6444125B2 JP 6444125 B2 JP6444125 B2 JP 6444125B2 JP 2014206739 A JP2014206739 A JP 2014206739A JP 2014206739 A JP2014206739 A JP 2014206739A JP 6444125 B2 JP6444125 B2 JP 6444125B2
Authority
JP
Japan
Prior art keywords
communication
connection
information processing
processing apparatus
external device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014206739A
Other languages
English (en)
Other versions
JP2016076127A (ja
Inventor
実 藤沢
実 藤沢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2014206739A priority Critical patent/JP6444125B2/ja
Priority to US14/875,941 priority patent/US10581725B2/en
Publication of JP2016076127A publication Critical patent/JP2016076127A/ja
Application granted granted Critical
Publication of JP6444125B2 publication Critical patent/JP6444125B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/26Route discovery packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities

Description

本発明は、情報処理装置、情報処理装置の制御方法、及びプログラムに関する。
HTTP(HyperText Transfer Protocol)では、情報処理装置はサーバとの間で1つのコネクションを確立して、データ通信を実行する。このデータ通信をより効率的に実行するための技術として、情報処理装置とサーバとの間で複数のコネクションを確立して、データを分割して分割したデータを複数のコネクションを使用して通信する技術が知られている。なお、以降の説明では、分割データを複数のコネクションを使用して通信することをマルチコネクション通信と呼ぶ。
マルチコネクション通信を実行する場合、複数のコネクションを並列して通信に使用できるため、1つのコネクションを使用してデータを通信する場合に比べてより効率的に実行することができる。特許文献1には、情報処理装置が最大接続数をサーバに通知し、通知された最大接続数に従って、サーバが情報処理装置との間で通信を実行する技術が記載されている。
特開2012−95098号公報
例えば分割データを情報処理装置が複数のコネクションを使用してサーバに送信する場合、情報処理装置はHTTPパケットのヘッダ部にContent−Range情報を含めて分割データをサーバに送信する。このHTTPパケットを受信したサーバは、ヘッダ部のContent−Range情報を参照することで、複数のコネクションを使用して受信した複数の分割データを元の1つのデータに結合することができる。
しかしながら、Content−Range情報等の特定のヘッダ情報はサポートが必須の情報ではないため、サーバによってはマルチコネクション通信をサポートしていないことになる。これに対して特許文献1の場合、サーバがマルチコネクション通信をサポートしていることを前提としている。従って、特許文献1の情報処理装置がマルチコネクション通信をサポートしていないサーバに対してマルチコネクション通信を実行すると、エラー終了することになり、情報処理装置がサーバと通信を実行できないことになってしまう。
そこで本発明では、サーバがマルチコネクション通信をサポートしていない場合に、マルチコネクション通信ではなく、1つのコネクションを使用した通信を実行する情報処理装置を提供することを目的とする。
上述した課題を解決するために、本発明が提供する情報処理装置は、分割されたデータを複数のコネクションを使用して通信するマルチコネクション通信を実行可能な情報処理装置であって、信相手である外部装置が前記マルチコネクション通信をサポートしているか否かを判定する判定手段と、前記判定手段によって前記外部装置が前記マルチコネクション通信をサポートしていると判定された場合、前記外部装置との間で前記マルチコネクション通信を実行し、前記判定手段によって前記外部装置が前記マルチコネクション通信をサポートしていないと判定された場合、前記外部装置との間で1つのコネクションを使用した通信を実行する通信手段とを備えることを特徴とする。
また、本発明が提供する情報処理装置は、割されたデータを複数のコネクションを使用して通信するマルチコネクション通信を通信相手である外部装置との間で実行する通信手段と、前記マルチコネクション通信に対する応答を前記外部装置から受信する受信手段と、前記受信手段が受信した応答がエラーを示さない場合、前記マルチコネクション通信を継続するよう前記通信手段を制御し、前記受信手段が受信した応答がエラーを示す場合、通信方法を前記マルチコネクション通信から1つのコネクションを使用する通信に切り替えるよう前記通信手段を制御する制御手段とを備えることを特徴とする。
また、本発明が提供する情報処理装置は、分割されたデータを複数のコネクションを使用して通信するマルチコネクション通信を実行可能な情報処理装置であって、ケットのヘッダ部に前記マルチコネクション通信に関連する特定のヘッダ情報を含めたパケットを、1つのコネクションを使用して外部装置に送信する送信手段と、前記送信手段が送信したパケットに対する応答パケットを前記外部装置から受信する受信手段と、前記受信手段が受信した前記応答パケットに基づいて、前記外部装置との間で前記マルチコネクション通信を実行するか、又は、パケットのヘッダ部に前記特定のヘッダ情報を含めずに1つのコネクションを使用して前記外部装置との通信を実行するかを決定する決定手段とを備えることを特徴とする。
本発明によれば、サーバがマルチコネクション通信をサポートしていない場合に、マルチコネクション通信ではなく、1つのコネクションを使用した通信を実行する。これにより、サーバがマルチコネクション通信をサポートしていない場合であっても、エラー終了するのではなく通信を実行できる。
システム全体を示す図である。 情報処理装置101の構成を示す図である。 マルチコネクション通信を実行するか否かを設定するための画面を示す図である。 実施形態1で実行される処理を示すフローチャートである。 データ送信処理に関する画面を示す図である。 データを送信する際のマルチコネクション通信を示す図である。 データを取得する際のマルチコネクション通信を示す図である。 実施形態2で実行される処理を示すフローチャートである。 実施形態2で実行されるマルチコネクション通信を説明する図である。 情報処理装置101が記憶するテーブル1000を示す図である。
以下、本発明を実施するための最良の形態について図面を用いて説明する。なお、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
(実施形態1)
図1を用いて本実施形態に係る情報処理システムの構成を説明する。情報処理システムは、情報処理装置101とサーバ102を備え、情報処理装置101とサーバ102はネットワーク103を介して互いに通信可能に接続されている。
次に、図2を用いて情報処理装置101のハードウェア構成について説明する。情報処理装置101は、コピー機能、プリント機能、スキャン機能、送信機能等を備える印刷装置である。なお、本実施形態では、情報処理装置101として印刷装置を例にして説明するが、印刷装置に限らず、サーバ102と通信を実行できる装置(例えばPC、携帯電話、スマートフォン等)であればよい。
CPU201は、ROM202に記憶された制御プログラムを読み出して、情報処理装置101全体の動作を制御する。RAM203は、CPU201の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD204は、フォントデータ、エミュレーションプログラム、フォームデータ等の各種データを記憶する。
なお、情報処理装置101の場合、1つのCPU201が後述するフローチャートに示す各処理を実行するものとするが、他の態様であっても構わない。例えば、複数のCPUが協働して後述するフローチャートに示す各処理を実行するようにすることもできる。
プリンタ205は、印刷ジョブやスキャナ206が生成した画像データに基づいて印刷処理を実行する。スキャナ206は、原稿を読み取って画像データを生成する。操作部207にはタッチパネル機能を有する液晶表示部やキーボードなどが備えられている。ユーザは操作部207を介して情報処理装置101に対する操作、指示を入力することができる。ネットワークI/F208は、ネットワーク103を介してサーバ102等の外部装置との通信を実行する。
情報処理装置101は、あるデータをサーバ102に送信する場合に、サーバ102との間で複数のコネクション(HTTPコネクション)を確立して、この複数のコネクションを使用してデータを送信することができる。この際、送信対象のデータは所定のサイズに分割され、分割データが複数のコネクションを使用して並列してサーバ102に送信される。サーバ102は、受信した分割データを結合して、元のデータに戻すことができる。また、情報処理装置101は、あるデータをサーバ102から取得する場合にも、サーバ102との間で複数のコネクションを確立して、この複数のコネクションを使用してデータを取得することができる。
このように、分割データを複数のコネクションを使用して通信する通信方法のことを、以降の説明ではマルチコネクション通信と呼ぶこととする。情報処理装置101はマルチコネクション通信をサポートしていて、マルチコネクション通信を実行可能である。マルチコネクション通信を実行ことによって、複数のコネクションを並列して通信に使用できるため、1つのコネクションを使用してデータを通信する場合に比べて通信をより効率的に実行することができる。しかしながら、通信相手である外部装置(例えばサーバ102)が、必ずしもマルチコネクション通信をサポートしているとは限らない。そこで本実施形態の情報処理装置101は、外部装置がマルチコネクション通信をサポートしていないと判定されたことに応じて、通信方法を1つのコネクションを使用する通信に切り替えることを特徴とする。情報処理装置101が実行する処理は、後述のフローチャートで詳しく説明する。
図3の画面300は、操作部207が表示する画面である。この画面300は、情報処理装置101がマルチコネクション通信を実行するか否かを、ユーザが設定するために使用する画面である。ボタン301をユーザが選択すると、「マルチコネクション通信を実行する」という設定がHDD204に記憶される。一方、ボタン302をユーザが選択すると、「マルチコネクション通信を実行しない」という設定がHDD204に記憶される。
情報処理装置101がマルチコネクション通信を実行すると、CPU201の処理負荷が増加するため、CPU201の処理負荷を軽減することを優先する場合には、ユーザはボタン302を選択すればよい。一方、通信の高速化を優先する場合には、ユーザはボタン301を選択すればよい。
以上の説明の通り、画面300によってユーザはマルチコネクション通信を実行するか否かを設定することができる。なお、本実施形態では画面300の設定はどのユーザでも行えるものとするが、情報処理装置にユーザ認証機能を導入することで特定のユーザ(例えば管理者権限を有するユーザ)のみが画面300の設定を行えるようにしてもよい。
次に、マルチコネクション通信を行う場合に情報処理装置101が実行する処理を、図4のフローチャートを用いて説明する。図4のフローチャートに示す各ステップは、CPU201がROM202等のメモリに格納されたプログラムをRAM203に展開して実行することによって処理される。また、マルチコネクション通信を実行するか否かの設定が、画面300を介してユーザに設定されていて、設定された内容がHDD204に記憶されている。
まずステップS401において、CPU201は、データ通信の実行指示をユーザから受け付ける。図5の画面500は、スキャナ206が原稿を読み取って生成したスキャン画像(読取画像)を、サーバ102等の外部装置にアップロードする際に使用される画面であり、操作部207が表示する。例えばこの画面500のボタン501がユーザによって押下された場合に、ステップS401において、データ通信の実行指示をCPU201が受け付ける。
ステップS401でデータ通信の実行指示を受け付けると、ステップS402において、CPU201はマルチコネクション通信を実行するか否かを判定する。ステップS402の判定は、画面300を介して設定され、HDD204に記憶されている設定をCPU201が参照することで行われる。「マルチコネクション通信を実行する」という設定がHDD204に記憶されていれば、マルチコネクション通信を実行するとCPU201が判定し、ステップS403に進む。一方、「マルチコネクション通信を実行しない」という設定がHDD204に記憶されていれば、マルチコネクション通信を実行しないとCPU201が判定し、ステップS409に進む。
次にステップS403において、ネットワークI/F208は、複数のHTTPコネクションをサーバ102との間で確立し、この複数のHTTPコネクションを使用してデータ通信を実行する。ステップS403で実行されるデータ通信を、図6を用いて詳しく説明する。
情報処理装置101は、マルチコネクション通信を実行する場合に5本のHTTPコネクションを確立することとする。なお、この5本という数は単なる例示であり、装置の性能に応じた他の数でもよいし、ユーザに設定された数でもよい。図5のボタン501がユーザによって押下されると、情報処理装置101は、スキャン画像をサーバ102にアップロードするために、スキャン画像を所定のサイズに分割して、分割データを5本のHTTPコネクションを使用してサーバ102に送信する。パケットのヘッダ部601には、Content−Range情報が含まれていて、1つの分割データがデータ全体の何バイト目であるかを示している。ヘッダ部601の場合、0バイト目から999バイト目の分割データを送信することを示している。分割データを受信したサーバ102は、Content−Range情報を参照することで、分割データを元の1つのデータに結合することができる。図6では記載を省略したが、S403で送信される分割データにはすべてContent−Range情報が指定される。
次にステップS404において、CPU201は、ステップS403で実行した通信に対する応答パケットをサーバ102から受信したか否かを判定する。応答パケットを受信したとCPU201が判定すると、ステップS405に進み、応答パケットを受信していないとCPU201が判定すると、応答パケットを受信するまで待機する。
サーバ102から応答パケットを受信すると、ステップS405において、CPU201は受信した応答パケットがエラー応答を示すパケットであるか否かを判定する。サーバ102がContent−Range情報をサポートしている場合、受信成功を示す応答パケットがサーバ102から返される。受信成功を示す応答パケットとは、HTTPの場合、ステータスコードに「200:OK」や「201:Created」を含むHTTPパケットのことである。このような受信成功を示す応答パケットをサーバ102から受信した場合、受信した応答パケットがエラー応答を示すパケットではないとCPU201が判定し、ステップS406に進む。
ステップS406において、ネットワークI/F208は、確立済みの複数のHTTPコネクションを使用して、残りの分割データをサーバ102に送信する。言い換えれば、サーバ102がマルチコネクション通信をサポートしていることがわかっているため、情報処理装置101はマルチコネクション通信を継続する。なお、ステップS406で実行される通信は、ステップS403と同様にパケットのヘッダ部にContent−Range情報が含まれる。
一方、ステップS405において受信した応答パケットがエラー応答を示すパケットであるとCPU201が判定すると、ステップS407に進む。ステップS407において、CPU201は、通信方法を切り替えるか否かを判定する。
サーバ102が特定のヘッダ情報(例えばContent−Range)をサポートしていない場合、情報処理装置101は、エラー応答をサーバ102から受信する。受信したエラー応答がステータスコードに「400:Bad Request」や「501:Not Implemented」を含む応答である場合、マルチコネクション通信を使わなければ情報処理装置101はサーバ102と通信を実行できる可能性が高い。そこでステップS407では、受信したエラー応答の種類に基づいて、通信方法を切り替えるか否かをCPU201が判定する。
「400:Bad Request」や「501:Not Implemented」のような特定のエラー応答をサーバ102から受信した場合、ステップS407において通信方法を切り替えるとCPU201が判定して、ステップS409に進む。一方、ステータスコード「500:Internal Server Error」のようなエラー応答をサーバ102から返された場合は、通信方法を切り替えたとしても情報処理装置101はサーバ102と通信を実行できない。従って、「500:Internal Server Error」のような特定のエラー応答をサーバ102から受信した場合は、ステップS407において通信方法を切り替えないとCPU201が判定して、ステップS408に進む。
ステップS408において、CPU201は、エラー終了する。ステップS408においてエラー終了する場合、エラー終了した旨を操作部207に表示してもよいし、所定の外部装置に通知してもよい。
次にステップS409について説明する。ステップS409において、ネットワークI/F208は、1つのHTTPコネクションを使用してサーバ102との間でデータ通信を実行する。このとき使用するHTTPコネクションは、S403で確立済みの複数のHTTPコネクションのいずれか1つを使用してもよいし、サーバ102との間で新たなHTTPコネクションを1つ確立してもよい。本実施形態では、ステップS409において1つのHTTPコネクションを使用してスキャン画像がサーバ102に送信される。マルチコネクション通信をサポートしていないサーバ102は、ステップS403で送信された分割データを破棄している可能性が高いため、ステップS409ではスキャン画像の先頭から送信される。また、ステップS409で実行される通信は、Content−Range情報等のマルチコネクション通信に関連する特定のヘッダ情報を含まない。
なお、ステップS409の処理は、ステップS402においてマルチコネクション通信を実行しないとCPU201が判定した場合にも実行される。ステップS402においてマルチコネクション通信を実行しないと判定された場合は、複数のHTTPコネクションがサーバ102との間で確立していない。ネットワークI/F208はサーバ102との間でHTTPコネクションを1つ確立して、通信を実行する。
以上の説明の通り、情報処理装置101は、サーバがマルチコネクション通信をサポートしていないと判定したことに応じて、通信方法を1つのHTTPコネクションを使用する通信に切り替えることができる。これにより、サーバがマルチコネクション通信をサポートしていない場合であっても、エラー終了することなく、サーバとのデータ通信を実行することができる。
なお、図4のフローチャートの説明では、マルチコネクション通信の一例として情報処理装置101がサーバ102にデータを送信するデータ送信処理を挙げたが、図4のフローチャートは送信処理に限定されるものではない。情報処理装置101がサーバ102からデータを取得するデータ取得処理にも、図4のフローチャートを適用することができる。
情報処理装置101がサーバ102からデータを取得する場合に実行される処理を、図4と図7を用いて説明する。図4のフローチャートについては、先に説明した送信処理と異なる処理を実行するステップを詳しく説明し、同様の処理を実行するステップの説明は省略する。また、データ取得処理として、サーバ102から情報処理装置101が印刷データを取得してプリンタ205が印刷を実行する処理を例にして説明する。
ステップS403において、ネットワークI/F208は、複数のHTTPコネクションをサーバ102との間で確立し、この複数のHTTPコネクションを使用して印刷データを取得するためのHTTPのGET要求をサーバ102に送信する。このGET要求の送信を、図7に示す。サーバ102に送信されるパケットのヘッダ部701には、Range情報が含まれている。図7では記載を省略したが、S403で送信されるGET要求のパケットにはすべてRange情報を含んでいる。このRange情報は、取得する印刷データの範囲を指定するための情報であり、ヘッダ部701の場合、0バイト目から999バイト目の印刷データをサーバ102に要求していることになる。なお、Range情報もサポートが必須の情報ではないため、Content−Range情報と同様に、サーバによってはRange情報を使用したマルチコネクション通信をサポートしていない場合がある。
図6のGET要求を受信したサーバ102がRange情報をサポートしている場合、つまりマルチコネクション通信をサポートしている場合、サーバ102は、情報処理装置101にRange情報によって指定された範囲の印刷データを送信する。この応答を受信した情報処理装置101は、ステップS405において受信した応答はエラー応答ではないと判定し、ステップS406において残りの印刷データを取得する際にもマルチコネクション通信を実行する。印刷データ全体の受信が完了すると、受信した印刷データに基づいて、プリンタ205が印刷処理を実行する。
一方、図6のGET要求を受信したサーバ102がRange情報をサポートしていない場合、つまりマルチコネクション通信をサポートしていない場合、サーバ102は、エラー応答を情報処理装置に返す。このときサーバ102が送信するエラー応答は、図4の説明と同様にステータスコードに「400:Bad Request」や「501:Not Implemented」を含むエラー応答である。この応答を受信した情報処理装置101は、ステップS407において通信方法を切り替えると判定し、ステップS409において1つのHTTPコネクションを使用して印刷データをサーバ102から取得する。ステップS409では、情報処理装置101がサーバ102に送信するGET要求にはRange情報が含まれない。印刷データの受信が完了すると、受信した印刷データに基づいて、プリンタ205が印刷処理を実行する。
以上の説明の通り、データ送信処理とデータ取得処理のどちらであったとしても、情報処理装置101は、マルチコネクション通信をサポートしていないサーバとの通信方法を1つのHTTPコネクションを使用する通信に切り替えることができる。
(実施形態2)
実施形態1では、ステップS403において複数のHTTPコネクションを確立してマルチコネクション通信を実行し、そしてサーバ102から受信した応答に基づいて、サーバ102がマルチコネクション通信をサポートしているか否かを判定する構成を説明した。これに対して本実施形態では、実施形態1の変形例として、まずは1つのコネクションを使用した通信を実行し、その応答に基づいてサーバ102がマルチコネクション通信をサポートしているか否かを判定する構成を説明する。
本実施形態においてマルチコネクション通信を行う場合に情報処理装置101が実行する処理を、図8のフローチャートを用いて説明する。図8のフローチャートに示す各ステップは、CPU201がROM202等のメモリに格納されたプログラムをRAM203に展開して実行することによって処理される。なお、図8の各ステップのうち、図4のフローチャートと同じ番号のステップは図4と同様の処理を実行するため、詳しい説明は省略する。
ステップS402においてマルチコネクション通信を実行するとCPU201が判定すると、ステップS801に進む。そしてステップS801において、ネットワークI/F208は、1つのHTTPコネクションをサーバとの間で確立して、この1つのHTTPコネクションを使用してデータ通信を実行する。ステップS801で実行されるデータ通信を、図9(a)を用いて詳しく説明する。
情報処理装置101は、図4のステップS403及び図7とは異なり、複数のHTTPコネクションではなく1つのHTTPコネクションをサーバ102との間で確立する。図9(a)は、情報処理装置101がデータ(例えばスキャン画像)をサーバ102に送信する処理を例に示している。情報処理装置101が送信する分割データのヘッダ部901には、マルチコネクション通信に関連する特定のヘッダ情報(図9の場合はContent−Range情報)が含まれていている。従って、サーバ102から受信する応答に基づいて、情報処理装置101はサーバ102がマルチコネクション通信をサポートしているか否かを判定することができる。
ステップS801において特定のヘッダ情報(Content−Range情報)を含むデータを1つのHTTPコネクションを使用してサーバ102に送信すると、情報処理装置101はその通信に対する応答をサーバ102から受信する。そしてステップS405において、CPU201は、受信した応答パケットがエラー応答を示すパケットであるか否かを判定する。
受信した応答パケットがエラー応答を示すパケットではないとCPU201が判定すると、ステップS802に進み、ネットワークI/F208がマルチコネクション通信を実行する。ステップS802では、図9(b)に示すように、情報処理装置101はサーバ102との間で複数のHTTPコネクションを確立して、そしてこの複数のHTTPコネクションを使用してデータ通信を実行する。ヘッダ部911には、Content−Range情報が含まれる。
一方、受信した応答パケットがエラー応答を示すパケットであり、かつ、エラー内容が特定のエラー(「400:Bad Request」や「501:Not Implemented」)であれば、ステップS803に進む。ステップS803では、図4のステップS409と同様に、1つのHTTPを使用してサーバ102との間でデータ通信を実行する。このとき、サーバ102はマルチコネクション通信をサポートしていないため、ステップS801とは異なり、Content−Range情報等の特定のヘッダ情報を使用せずにデータ通信が実行される。
本実施形態と実施形態1を比較すると、ステップS801において、複数のHTTPコネクションではなく1つのHTTPコネクションを使用する点が異なる。ステップS801において、複数のHTTPコネクションではなく1つのHTTPコネクションを使用することで、以下の効果が得られる。
複数のHTTPコネクションを使用する通信は情報処理装置101とサーバ102の双方の処理負荷を増加させることになるため、出来る限りこの処理負荷を軽減することが望ましい。そこでサーバ102がマルチコネクション通信をサポートしているか否かを判定するまでは1つのHTTPコネクションを使用する通信を実行することで、情報処理装置101とサーバ102の双方の処理負荷を軽減することができる。
(実施形態3)
図4及び図8のステップS407では、受信したエラー応答の種類に基づいて、1つのHTTPコネクションを使用する通信を実行するか、又は、エラー終了するかを切り替えているが、他の形態であってもよい。例えば、ステップS405においてエラー応答を受信したとCPU201が判定した場合に、エラー応答の種類に関わらず、通信方法をマルチコネクション通信から1つのHTTPコネクションを使用する通信に一律切り替えてもよい。
(実施形態4)
上述した各実施形態では、データ通信の実行指示をユーザから受け付けるたびにサーバがマルチコネクション通信をサポートしているか否かを判定しているが、他の形態であってもよい。例えば、初めて通信する際はサーバがマルチコネクション通信をサポートしているか否かを判定し、その判定結果とサーバを示す識別情報とを対応付けてHDD204等のメモリに記憶してもよい。そして2回目以降の通信を実行するときは、HDD204等のメモリに記憶している情報を参照して、マルチコネクション通信を実行するか否かを決定してもよい。
図10のテーブル1000は、一度通信したサーバがマルチコネクション通信をサポートしているか否かを情報処理装置101が記憶するためのテーブルであり、HDD204に記憶される。図4や図8のステップS404でサーバから応答を受信した場合に、その応答がエラーを示す応答でなければ、情報処理装置101は通信相手のサーバがマルチコネクション通信をサポートしているとテーブル1000に記憶する。一方、受信したエラーを示す応答であれば、情報処理装置101は通信相手のサーバがマルチコネクション通信をサポートしていないとテーブル1000に記憶する。
項目1001は、サーバを示す識別情報を記憶する。項目1002と項目1003は、データ送信処理とデータ取得処理のそれぞれについて、サーバがマルチコネクション通信をサポートしているか否かを記憶する。データ送信処理とデータ取得処理を分けて記憶しているのは、夫々で使用するヘッダ情報が異なるためであり、サーバによってはどちらか一方しかサポートしていない可能性があるためである。
例えば図4や図8のステップS402でマルチコネクション通信を実行すると判定された場合に、テーブル1000を参照して、通信相手であるサーバがマルチコネクション通信をサポートしているか否かを判定する。通信相手であるサーバを示す情報がテーブル1000に記憶されていれば、記憶されている判定結果に従って、マルチコネクション通信を実行するか、あるいはマルチコネクション通信を実行しないかを決定すればよい。これにより、マルチコネクション通信をサポートしてないサーバと2回目以降の通信を実行する場合に、無駄な通信を実行すること(マルチコネクション通信をサポートしてないサーバに対する図4のステップS403や図8のステップS801の実行)を防止できる。
一方、サーバを示す情報がテーブル1000に記憶されていない場合(例えば初めて通信する場合)は、図4のステップS403や図8のステップS801の処理を実行して、サーバがマルチコネクション通信をサポートしているか否かを判定すればよい。そしてその判定結果をテーブル1000に記憶して、次回以降の通信を実行する際に記憶した情報を参照すればよい。
(その他の実施形態)
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
101 情報処理装置
102 サーバ
201 CPU
202 ROM
203 RAM
204 HDD
208 ネットワークI/F

Claims (21)

  1. 分割されたデータを複数のコネクションを使用して通信するマルチコネクション通信を実行可能な情報処理装置であって、
    通信相手である外部装置が前記マルチコネクション通信をサポートしているか否かを判定する判定手段と、
    前記判定手段によって前記外部装置が前記マルチコネクション通信をサポートしていると判定された場合、前記外部装置との間で前記マルチコネクション通信を実行し、前記判定手段によって前記外部装置が前記マルチコネクション通信をサポートしていないと判定された場合、前記外部装置との間で1つのコネクションを使用した通信を実行する通信手段と、
    を備えることを特徴とする情報処理装置。
  2. 前記通信手段は、通信相手である外部装置が前記マルチコネクション通信をサポートしているか否かを判定するための通信を実行し、
    前記判定手段は、前記通信に対する前記外部装置の応答に基づいて、前記外部装置が前記マルチコネクション通信をサポートしているか否かを判定することを特徴とする請求項1に記載の情報処理装置。
  3. 前記外部装置の前記応答がエラーを示す場合、前記判定手段は、前記外部装置が前記マルチコネクション通信をサポートしていないと判定することを特徴とする請求項2に記載の情報処理装置。
  4. 前記判定手段によって前記外部装置が前記マルチコネクション通信をサポートしていないと判定された場合、前記通信手段は、1つのコネクションを使用して前記外部装置との通信を実行するか、又は、エラー終了するかを決定するかをエラーの種類に基づいて決定することを特徴とする請求項3に記載の情報処理装置。
  5. 通信の実行指示を受け付ける受付手段を更に備え、
    前記判定手段は、前記受付手段が前記実行指示を受け付けたことに従って、前記外部装置が前記マルチコネクション通信をサポートしているか否かを判定することを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
  6. 分割されたデータを複数のコネクションを使用して通信するマルチコネクション通信を通信相手である外部装置との間で実行する通信手段と、
    前記マルチコネクション通信に対する応答を前記外部装置から受信する受信手段と、
    前記受信手段が受信した応答がエラーを示さない場合、前記マルチコネクション通信を継続するよう前記通信手段を制御し、前記受信手段が受信した応答がエラーを示す場合、通信方法を前記マルチコネクション通信から1つのコネクションを使用する通信に切り替えるよう前記通信手段を制御する制御手段と、
    を備えることを特徴とする情報処理装置。
  7. 前記受信手段が受信した応答がエラーを示す場合、前記制御手段は、1つのコネクションを使用して前記外部装置との通信を実行するか、又は、エラー終了するかを決定するかをエラーの種類に基づいて決定することを特徴とする請求項6に記載の情報処理装置。
  8. 通信の実行指示を受け付ける受付手段を更に備え、
    前記通信手段は、前記受付手段が前記実行指示を受け付けたことに従って、前記外部装置との間で前記マルチコネクション通信を実行することを特徴とする請求項5乃至7のいずれか1項に記載の情報処理装置。
  9. 前記通信手段が前記マルチコネクション通信を実行する場合、パケットのヘッダ部には特定のヘッダ情報が含まれ、
    前記通信手段が1つのコネクションを使用して通信を実行する場合、パケットのヘッダ部には前記特定のヘッダ情報が含まれないことを特徴とする請求項1乃至8のいずれか1項に記載の情報処理装置。
  10. 分割されたデータを複数のコネクションを使用して通信するマルチコネクション通信を実行可能な情報処理装置であって、パケットのヘッダ部に前記マルチコネクション通信に関連する特定のヘッダ情報を含めたパケットを、1つのコネクションを使用して外部装置に送信する送信手段と、
    前記送信手段が送信したパケットに対する応答パケットを前記外部装置から受信する受信手段と、
    前記受信手段が受信した前記応答パケットに基づいて、前記外部装置との間で前記マルチコネクション通信を実行するか、又は、パケットのヘッダ部に前記特定のヘッダ情報を含めずに1つのコネクションを使用して前記外部装置との通信を実行するかを決定する決定手段と、
    を備えることを特徴とする情報処理装置。
  11. 通信の実行指示を受け付ける受付手段を更に備え、
    前記送信手段は、前記受付手段が前記実行指示を受け付けたことに従って、前記特定のヘッダ情報を含めたパケットを、1つのコネクションを使用して外部装置に送信することを特徴とする請求項10記載の情報処理装置。
  12. 前記応答パケットがエラーを示すパケットではない場合、前記決定手段は、前記マルチコネクション通信を実行すると決定し、前記応答パケットがエラーを示すパケットである場合、前記決定手段は、パケットのヘッダ部に前記特定のヘッダ情報を含めずに1つのコネクションを使用して前記外部装置との通信を実行すると決定することを特徴とする請求項10又は11に記載の情報処理装置。
  13. 前記応答パケットがエラーを示すパケットである場合、前記決定手段は、パケットのヘッダ部に前記特定のヘッダ情報を含めずに1つのコネクションを使用して前記外部装置との通信を実行するか、又は、エラー終了するかを決定するかをエラーの種類に基づいて決定することを特徴とする請求項12に記載の情報処理装置。
  14. 前記特定のヘッダ情報は、HTTPのContent−Rangeであることを特徴とする請求項9乃至13のいずれか1項に記載の情報処理装置。
  15. 前記特定のヘッダ情報は、HTTPのRangeであることを特徴とする請求項9乃至13のいずれか1項に記載の情報処理装置。
  16. 原稿を読み取り画像データを生成する読取手段を更に備え、
    前記マルチコネクション通信は、前記画像データを分割し、分割された前記画像データを複数のコネクションを使用して前記外部装置に送信する処理であることを特徴とする請求項1乃至15のいずれか1項に記載の情報処理装置。
  17. 印刷手段を更に備え、
    前記マルチコネクション通信は、分割された印刷データを複数のコネクションを使用して前記外部装置から取得する処理であり、
    前記印刷手段は、前記外部装置から取得した印刷データに基づいて印刷を実行することを特徴とする請求項1乃至16のいずれか1項に記載の情報処理装置。
  18. 分割されたデータを複数のコネクションを使用して通信するマルチコネクション通信を実行可能な情報処理装置の制御方法であって、通信相手である外部装置が前記マルチコネクション通信をサポートしているか否かを判定する判定ステップと、
    前記判定ステップで前記外部装置が前記マルチコネクション通信をサポートしていると判定された場合、前記外部装置との間で前記マルチコネクション通信を実行し、前記判定ステップで前記外部装置が前記マルチコネクション通信をサポートしていないと判定された場合、前記外部装置との間で1つのコネクションを使用した通信を実行する通信ステップと、
    を有することを特徴とする情報処理装置の制御方法。
  19. 情報処理装置の制御方法であって、分割されたデータを複数のコネクションを使用して通信するマルチコネクション通信を通信相手である外部装置との間で実行する通信ステップと、
    前記マルチコネクション通信に対する応答を前記外部装置から受信する受信ステップと、
    前記受信ステップで受信した応答がエラーを示さない場合、前記マルチコネクション通信を継続し、前記受信ステップで受信した応答がエラーを示す場合、通信方法を前記マルチコネクション通信から1つのコネクションを使用する通信に切り替えるよう制御する制御ステップと、
    を有することを特徴とする情報処理装置の制御方法。
  20. 分割されたデータを複数のコネクションを使用して通信するマルチコネクション通信を実行可能な情報処理装置の制御方法であって、パケットのヘッダ部に前記マルチコネクション通信に関連する特定のヘッダ情報を含めたパケットを、1つのコネクションを使用して外部装置に送信する送信ステップと、
    前記送信ステップで送信したパケットに対する応答パケットを前記外部装置から受信する受信ステップと、
    前記受信ステップで受信した前記応答パケットに基づいて、前記外部装置との間で前記マルチコネクション通信を実行するか、又は、パケットのヘッダ部に前記特定のヘッダ情報を含めずに1つのコネクションを使用して前記外部装置との通信を実行するかを決定する決定ステップと、
    を有することを特徴とする情報処理装置の制御方法。
  21. コンピュータを、請求項1乃至17のいずれか1項に記載の情報処理装置として動作させるためのプログラム。
JP2014206739A 2014-10-07 2014-10-07 情報処理装置、情報処理装置の制御方法、及びプログラム Active JP6444125B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014206739A JP6444125B2 (ja) 2014-10-07 2014-10-07 情報処理装置、情報処理装置の制御方法、及びプログラム
US14/875,941 US10581725B2 (en) 2014-10-07 2015-10-06 Information processing apparatus having a multi-connection communication function for transmitting and receiving data blocks by using a plurality of connections, method for controlling the same, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014206739A JP6444125B2 (ja) 2014-10-07 2014-10-07 情報処理装置、情報処理装置の制御方法、及びプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2018222806A Division JP6728314B2 (ja) 2018-11-28 2018-11-28 情報処理装置、情報処理装置の制御方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2016076127A JP2016076127A (ja) 2016-05-12
JP6444125B2 true JP6444125B2 (ja) 2018-12-26

Family

ID=55633605

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014206739A Active JP6444125B2 (ja) 2014-10-07 2014-10-07 情報処理装置、情報処理装置の制御方法、及びプログラム

Country Status (2)

Country Link
US (1) US10581725B2 (ja)
JP (1) JP6444125B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10310782B2 (en) * 2016-04-20 2019-06-04 Ricoh Company, Ltd. Image forming apparatus having a scanner, information processing system having the same, and information processing method using the same

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3428669B2 (ja) * 1992-11-05 2003-07-22 キヤノン株式会社 通信端末装置
JPH10222433A (ja) * 1997-02-05 1998-08-21 Canon Inc 情報処理装置およびその通信方法
US6922729B1 (en) * 1999-07-30 2005-07-26 International Business Machines Corporation Multi-connection control system
JP2007318694A (ja) 2006-05-29 2007-12-06 Canon Inc 画像処理方法、画像処理装置
US20100235464A1 (en) 2006-09-20 2010-09-16 Mahadaven Iyer Handoff and optimization of a network protocol stack
US8620342B2 (en) * 2006-10-10 2013-12-31 Broadcom Corporation Sensing RF environment to determine geographic location of cellular base station
US20080231466A1 (en) * 2007-03-19 2008-09-25 Halliburton Energy Services, Inc. Facilitating the communication of connectively dissimilar well servicing industry equipment via a universal connection device
JP4985034B2 (ja) * 2007-03-29 2012-07-25 ブラザー工業株式会社 展開データ作成方法と装置とプログラム
NZ586673A (en) * 2007-12-31 2012-08-31 Schlage Lock Co Mesh network security system gateway and method
JP2009199281A (ja) * 2008-02-21 2009-09-03 Brother Ind Ltd データ送信装置
US8413204B2 (en) * 2008-03-31 2013-04-02 At&T Intellectual Property I, Lp System and method of interacting with home automation systems via a set-top box device
US9100815B2 (en) * 2010-01-25 2015-08-04 Qualcomm Incorporated Physical-layer system prioritization and communication session management within a wireless communications system
CN102238573A (zh) * 2010-04-30 2011-11-09 中兴通讯股份有限公司 一种m2m业务的架构及实现m2m业务的方法
JP5640649B2 (ja) * 2010-10-27 2014-12-17 ソニー株式会社 データ通信方法及び情報処理装置
US8806030B2 (en) * 2010-12-06 2014-08-12 Microsoft Corporation Multichannel connections in file system sessions
JP2012155619A (ja) 2011-01-27 2012-08-16 Canon Inc ネットワークジョブ通信システム
JP5899713B2 (ja) * 2011-08-31 2016-04-06 セイコーエプソン株式会社 印刷装置、印刷方法
US20130057388A1 (en) * 2011-09-05 2013-03-07 Telefonaktiebolaget Lm Ericsson (Publ) Internet of Things Lawful Interception
JP5840786B2 (ja) * 2011-09-19 2016-01-06 タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited センサーデータベースのアプリケーションおよびサービスの開発および配備のための演算プラットフォーム
FI125252B (en) * 2011-12-07 2015-08-14 Arm Finland Oy Procedure, device and system for managing web services
CN103377252B (zh) * 2012-04-28 2018-03-27 国际商业机器公司 在物联网中进行数据过滤的方法和装置
US9286311B2 (en) * 2012-06-14 2016-03-15 Santhosh Adayikkoth Real-time filtering of relevant events from a plurality of events
US10084839B2 (en) * 2013-12-27 2018-09-25 Sap Se Upload operation using multiple connections

Also Published As

Publication number Publication date
US20160099833A1 (en) 2016-04-07
JP2016076127A (ja) 2016-05-12
US10581725B2 (en) 2020-03-03

Similar Documents

Publication Publication Date Title
US9749480B1 (en) Method that performs from scanning to storing scan data using scan cloud ticket
US10802779B2 (en) Print processing system and method having print server converts document data into print data and to store the print data into plural storage servers for printing at image processing apparatus
US9798504B2 (en) Image forming apparatus, control method, and storage medium
US9906581B2 (en) Information processing apparatus, control method, and storage medium
JP5645515B2 (ja) 処理システム、制御方法、およびそのプログラム
US8767243B2 (en) Proxy server transmitting image data to outputting device
JP6415048B2 (ja) 画像形成装置、その制御方法、プログラム、及びシステム
JP6558637B2 (ja) 管理システム、画像処理装置、及びコンピュータプログラム
JP6098423B2 (ja) 端末装置とプリンタ
US10455630B2 (en) Communication apparatus that communicates with another communication apparatus, control method thereof, and storage medium
EP3066556B1 (en) Mobile device for automatically delivering print jobs to printers
JP6108868B2 (ja) 印刷装置、印刷装置の制御方法、及びプログラム
EP3220258A2 (en) Information processing apparatus, computer program, and information processing method
JP2016206940A (ja) 情報処理装置及びその制御方法、並びにプログラム
US20160295567A1 (en) Communication device and setting device
JP6541322B2 (ja) 画像読取装置、画像読取装置の制御方法、及びプログラム
EP2597563B1 (en) Intermediation server and communication device
JP6444125B2 (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP2015114765A (ja) 情報処理装置、プログラム及び制御方法
JP6728314B2 (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP2019070981A (ja) 画像処理装置、画像処理装置の制御方法及びプログラム
JP6238528B2 (ja) 印刷装置
EP3185529B1 (en) Function execution apparatus, function execution system, and computer-readable medium therefor
JP2019181865A (ja) 印刷装置、印刷装置の制御方法及びプログラム
JP2014235679A (ja) サーバ装置、サーバ装置の制御方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180515

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180921

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181030

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181127

R151 Written notification of patent or utility model registration

Ref document number: 6444125

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151