(57)【要約】【課題】通信に係るリソースの浪費を抑えること。【解決手段】通信機能による送信先へのデータの送信が、データ送信に関する所定の条件を満たしているかを判定し、所定の条件を満たしていると判定された場合にデータを含まない信号を送信先へ送信し、所定の条件を満たさないと判定された場合にデータを含む信号を送信先へ送信するように通信機能を制御する通信装置が提供される。通信装置は、送信先へ信号を送信したことに応じて、その送信先から別の送信先への信号を転送することを指示する応答を受信した場合に、別の送信先へデータを含む信号を送信するように通信機能を制御する。【選択図】  図６
2018190285.tif 000002
【特許請求の範囲】
【請求項１】
通信装置であって、
通信手段と、
前記通信手段による送信先へのデータの送信が、データ送信に関する所定の条件を満たしているかを判定する判定手段と、
前記所定の条件を満たしていると判定された場合に前記データを含まない信号を前記送信先へ送信し、前記所定の条件を満たさないと判定された場合に前記データを含む信号を前記送信先へ送信するように前記通信手段を制御する制御手段と、
を有し、
前記制御手段は、前記通信手段が前記送信先へ信号を送信したことに応じて前記送信先から別の送信先への当該信号を転送することを指示する応答を受信した場合に、当該別の送信先へ前記データを含む信号を送信するように前記通信手段を制御する、
ことを特徴とする通信装置。
【請求項２】
前記所定の条件は、前記通信手段のデータの送信モードが所定のモードであることである、
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記所定のモードは、送信対象データを逐次的に送信するモードである、
ことを特徴とする請求項２に記載の通信装置。
【請求項４】
前記所定の条件は、送信対象データのサイズが所定のサイズ以上であることである、
ことを特徴とする請求項１から３のいずれか１項に記載の通信装置。
【請求項５】
前記通信装置が第１の送信先に信号を送信したことに応じて当該第１の送信先から第２の送信先への当該信号の転送を指示する応答を受信した場合に、前記第１の送信先と前記第２の送信先とを関連付けて記憶する記憶手段をさらに有し、
前記制御手段は、前記送信先が前記第１の送信先として前記記憶手段に記憶されている場合、前記所定の条件を満たすか否かによらず、前記送信先と関連付けられて前記第２の送信先として記憶されている前記別の送信先に、前記データを含む信号を送信するように前記通信手段を制御する、
ことを特徴とする請求項１から４のいずれか１項に記載の通信装置。
【請求項６】
前記制御手段は、前記通信手段が前記送信先へ前記データを含まない信号を送信したことに応じて前記送信先から別の送信先への当該信号の転送の指示を含まない応答を受信した場合に、当該送信先へ前記データを含む信号を送信するように前記通信手段を制御する、
ことを特徴とする請求項１から５のいずれか１項に記載の通信装置。
【請求項７】
前記信号はＨＴＴＰリクエストであり、
前記応答はＨＴＴＰレスポンスである、
ことを特徴とする請求項１から６のいずれか１項に記載の通信装置。
【請求項８】
前記データは、前記送信先である印刷装置による印刷処理に使用される印刷コマンド、前記印刷装置に用紙情報を登録するための用紙情報コマンド、前記印刷装置のステータスを取得するためのステータス情報の取得要求コマンド、前記印刷装置の能力情報を取得するための能力情報の取得要求コマンドおよび前記印刷装置において実行された履歴情報を取得するための実行履歴の取得要求コマンドの少なくとも１つである、
ことを特徴とする請求項１から７のいずれか１項に記載の通信装置。
【請求項９】
通信手段を有する通信装置の制御方法であって、
前記通信手段による送信先へのデータの送信が、データ送信に関する所定の条件を満たしているかを判定する判定工程と、
前記所定の条件を満たしていると判定された場合に前記データを含まない信号を前記送信先へ送信し、前記所定の条件を満たさないと判定された場合に前記データを含む信号を前記送信先へ送信するように前記通信手段を制御する制御工程と、
前記通信手段が前記送信先へ信号を送信したことに応じて前記送信先から別の送信先への当該信号を転送することを指示する応答を受信した場合に、当該別の送信先へ前記データを含む信号を送信するように前記通信手段を制御する工程と、
を有することを特徴とする制御方法。
【請求項１０】
通信手段を有する通信装置に備えられたコンピュータに、請求項８に記載の方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワークにおける信号の送信技術に関する。
【背景技術】
【０００２】
情報処理装置（ホスト）とＷｅｂサーバとの間の通信や、Ｗｅｂサーバ機能を搭載した周辺機器間の通信を行う際のプロトコルとして、Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（以下では「ＨＴＴＰ」と呼ぶ。）が知られている。ＨＴＴＰは、ネットワーク上での多様なコンテンツの送受信に用いることができ、特許文献１には、装置が周辺機器を制御するのにＨＴＴＰを用いる手法が記載されている。
【０００３】
Ｗｅｂサーバは、ホストからＨＴＴＰリクエストを受信すると、指定されたＵｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ（以下では「ＵＲＬ」と呼ぶ。）に設置されていた資源がその指定されたＵＲＬから異なるＵＲＬに移転されているかを判定する。そして、Ｗｅｂサーバは、資源が異なるＵＲＬに移転されていると判定した場合、移転先のＵＲＬを含んだＨＴＴＰレスポンスを、応答として返信しうる。以下では、このような移転先のＵＲＬを含んだＨＴＴＰレスポンスをリダイレクト応答と呼ぶ。ホストは、リダイレクト応答を受信すると、リダイレクト応答内に示されている移転先のＵＲＬへ、再度、ＨＴＴＰリクエストを送信する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−０１８５３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
Ｗｅｂサーバは、ＨＴＴＰリクエストの全てを受信するまでＨＴＴＰレスポンスを返信することができない。また、ホストは、ＰＯＳＴメソッドを用いて、Ｗｅｂサーバへ、ＨＴＴＰリクエストに加えて、さらなる送信対象データを送信することができる。この場合、Ｗｅｂサーバは、この送信対象データも含めて全データを受信した後に、ＨＴＴＰレスポンスをホストに対して送信する。このため、ホストは、例えばＷｅｂサーバからリダイレクト応答を受信する場合に備えるため、ホストにおける処理負荷が増大するおそれがあった。
【０００６】
本発明は上記の課題に鑑みなされたものであり、通信に係るリソースの浪費を抑えることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様による通信装置は、通信手段と、前記通信手段による送信先へのデータの送信が、データ送信に関する所定の条件を満たしているかを判定する判定手段と、前記所定の条件を満たしていると判定された場合に前記データを含まない信号を前記送信先へ送信し、前記所定の条件を満たさないと判定された場合に前記データを含む信号を前記送信先へ送信するように前記通信手段を制御する制御手段と、を有し、前記制御手段は、前記通信手段が前記送信先へ信号を送信したことに応じて前記送信先から別の送信先への当該信号を転送することを指示する応答を受信した場合に、当該別の送信先へ前記データを含む信号を送信するように前記通信手段を制御する、ことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、通信に係るリソースの浪費を抑えることができる。
【図面の簡単な説明】
【０００９】
【図１】システムの構成例を示す図である。
【図２】情報処理装置１１０が印刷を実行する機能の概要を示す図である。
【図３】印刷アプリケーション２０１の内部処理を示すフローチャート
【図４】逐次送信モードにおけるＨＴＴＰ通信の流れ例を示すシーケンス図である。
【図５】逐次送信モードにおいて、リダイレクト応答が発生する場合のＨＴＴＰ通信の流れの例を示すシーケンス図である。
【図６】ＨＴＴＰ通信モジュールの処理の第１の例を示すフローチャートである。
【図７】印刷コマンドを含まないＨＴＴＰリクエストパケットの一例である。
【図８】ＨＴＴＰ通信モジュールの処理の第２の例を示すフローチャートである。
【図９】ＨＴＴＰ通信モジュールの処理の第３の例を示すフローチャートである。
【図１０】移転先ＵＲＬデータベースの概念図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明の実施の形態について説明する。なお、以下の実施形態は、例示のためのものであり、例示の構成や方法のステップの一部が省略されてもよいし、例示されていない構成やステップが追加されてもよい。また、以下に示される構成において、２つ以上のブロックが統合されてもよいし、１つのブロックが２つ以上に分割されてもよい。方法のステップは、可能な範囲で順序が反転されてもよいし同時に実行されてもよい。
【００１１】
（システム構成）
図１に、本実施形態に係るシステムの構成例を示す。図１では、情報処理装置１１０及び印刷装置１２０を含む印刷システムを示しているが、これに限られない。すなわち、少なくとも２つの装置間で通信を行い、場合によっては、信号の受信側の装置が転送先を指定して、送信側の装置に、その転送先の装置へと信号を送信させることが可能な、任意のシステムに以下の議論を適用することができる。
【００１２】
情報処理装置１１０は、一例において、入力Ｉ／Ｆ１１１、ＣＰＵ１１２、ＲＯＭ１１３、出力Ｉ／Ｆ１１４、外部記憶装置１１５、ＲＡＭ１１６、及び入出力Ｉ／Ｆ１１９を含んで構成される。なお、Ｉ／Ｆは、インタフェースの頭字語である。入力Ｉ／Ｆ１１１は、情報処理装置１１０に対する操作入力信号を生成して出力する入力装置１１７との通信のためのインタフェースである。入力装置１１７は、例えば、キーボードやマウス等でありうる。出力Ｉ／Ｆ１１４は、情報処理装置１１０において生成した情報を出力する出力装置１１８に対して、出力信号を送信する出力装置１１８との通信のためのインタフェースである。出力装置１１８は、例えば、画面表示用のディスプレイや音声出力用のスピーカ、振動出力用の振動子等でありうる。なお、入力装置１１７及び出力装置１１８は、情報処理装置１１０に外付けされる装置であってもよいし、内蔵されていてもよい。また、入力装置１１７及び出力装置１１８が、タッチパネル等によって、１つの装置として構成されてもよい。ＣＰＵ１１２は、例えばＲＯＭ１１３に記憶されているプログラムを実行することにより、情報処理装置１１０の全体の制御を実行する中央処理装置である。なお、ＣＰＵ１１２は、例えば、マイクロプロセッサ、ＡＳＩＣ（特定用途向け集積回路）、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）、ＤＳＰ（デジタルシグナルプロセッサ）等の任意の１つ以上のプロセッサによって構成されてもよい。なお、後述する情報処理装置１１０において実行されるフローチャートの各ステップは、ＣＰＵ１１２がフローチャートに関わるプログラムを読みだして実行することによって実現される。ＲＯＭ１１３は、例えば、情報処理装置１１０が起動された際や、所定のプログラムを実行するためのユーザ操作を入力Ｉ／Ｆを１１１介して受け付けたことに応じてＣＰＵ１１２によって実行される初期化プログラム等を記憶する。外部記憶装置１１５は、例えば、オペレーティングシステム（ＯＳ）、アプリケーション、及びその他各種データの少なくともいずれかを記憶する。ＲＡＭ１１６は、例えば、外部記憶装置１１５に保存される各種プログラムをＣＰＵ１１２が実行する際に、ワークメモリとして使用される。入出力Ｉ／Ｆ１１９は、印刷装置１２０等の他の装置と通信するためのインタフェースである。なお、図１では、情報処理装置１１０の入出力Ｉ／Ｆ１１９が印刷装置１２０の入出力Ｉ／Ｆ１２５と直接接続しているような図解がなされているが、これに限られず、例えば、ＬＡＮ等のネットワークを介して、これらの接続が確立されてもよい。なお、入出力Ｉ／Ｆ１１９が印刷装置１２０の入出力Ｉ／Ｆ１２５との間の接続は、有線又は無線の回線１３０（一例においてはネットワークケーブル）を用いて確立される。
【００１３】
印刷装置１２０は、一例において、ＲＡＭ１２１、ＲＯＭ１２２、プリントエンジン１２３、ＣＰＵ１２４、及び入出力Ｉ／Ｆ１２５を含んで構成される。ＣＰＵ１２４は、ＲＯＭ１２２に記憶されている制御命令に従って、印刷装置１２０の全体の制御を行う中央処理装置である。なお、ＣＰＵ１２４も、ＣＰＵ１１２と同様に、任意の１つ以上のプロセッサでありうる。ＲＯＭ１２２は、例えば、ＣＰＵ１１２によって実行される制御命令を記憶する。ＲＡＭ１２１は、例えば、ＣＰＵ１２４のワークメモリとして使用され、また、受信したデータを一時保存するためのバッファとしても利用されうる。プリントエンジン１２３は、ＲＡＭ１２１に保存された印刷コマンドに基づいて印刷処理を行う。なお、印刷装置１２０は、例えば、あるポートへのリクエストを別のポートへと転送させるリダイレクト機能を備える。ユーザは、例えば、情報処理装置１１０で動作するブラウザから印刷装置１２０を制御するページ（リモートＵＩ）を開いて、リダイレクト機能の有効または無効を切り替えることができる。また、ユーザは、印刷装置１２０の操作パネルを使ってリダイレクト機能の有効または無効を切り替えることもできる。このリダイレクト機能を有効化することで、例えば特定のアドレスまたは特定のポートを強制的に情報処理装置のソフトウェアに利用させることが可能となり、セキュリティレベルの向上を図ることができる。
【００１４】
なお、図１は、構成の一例であり、図解された構成の一部又は全部が同様の機能を有する他の構成によって置き換えられてもよいし、機能の追加及び削除が行われてもよい。また、情報処理装置１１０の一部機能が印刷装置１２０に移されてもよいし、印刷装置１２０の一部機能が情報処理装置１１０に移されてもよい。
【００１５】
（印刷処理と通信の流れ）
続いて、情報処理装置１１０において、印刷アプリケーションを実行し、印刷コマンドを印刷装置１２０へ送信する際の概要及び処理の流れについて説明する。図２に示すように、情報処理装置１１０では、一例において、印刷アプリケーション２０１とＨＴＴＰ通信モジュール２０２が協働して、印刷装置１２０に印刷を実行させるための処理を実行する。ここで、印刷アプリケーション２０１とＨＴＴＰ通信モジュール２０２のインストール方法の一例について説明する。例えば、印刷アプリケーション２０１に関わるプログラムとＨＴＴＰ通信モジュール２０２に関わるプログラムが含まれているインストールパッケージを用いてインストール処理が実行される。このインストール処理の実行により、印刷アプリケーション２０１とＨＴＴＰ通信モジュール２０２とが関連づけられてインストールされる。印刷アプリケーション２０１は、ユーザによって指定された入力データを印刷装置１２０が解釈可能な印刷コマンドへと変換し、その印刷コマンドを、ＨＴＴＰ通信モジュール２０２へ、順次入力する。ＨＴＴＰ通信モジュール２０２は、受信した印刷コマンドを、さらにＨＴＴＰリクエストパケットに変換し、印刷装置１２０へ送信する。印刷装置１２０は、ＨＴＴＰ通信モジュール２０２が送信したＨＴＴＰリクエストパケットを受信した後に、受信に成功したか否かを示す情報を、ＨＴＴＰレスポンスパケットとして、ＨＴＴＰ通信モジュール２０２に送信する。ＨＴＴＰ通信モジュール２０２は、印刷装置１２０からＨＴＴＰレスポンスパケットを受信すると、ＨＴＴＰレスポンスパケットに含まれる受信結果情報を取得して、その情報を印刷アプリケーション２０１へと返却する。なお、本実施形態では、印刷コマンドを生成するソフトウェアとして印刷アプリケーションを用いて説明するが、印刷アプリケーションの代わりにプリンタドライバが使用されてもよい。
【００１６】
図３を用いて、印刷アプリケーション２０１によって実行される処理について詳細に説明する。印刷アプリケーション２０１は、ユーザが選択した入力データを受信し（Ｓ３０１）、印刷コマンドの送信モードを選択する（Ｓ３０２）。印刷コマンドの送信モードは、例えば、印刷アプリケーション２０１が入力データの全てを印刷コマンドへと変換した後に、全ての印刷コマンドを一括してＨＴＴＰ通信モジュール２０２に入力する方法（一括送信モード）を含む。また、印刷コマンドの送信モードは、変換が完了した印刷コマンドを逐次的にＨＴＴＰ通信モジュール２０２に入力する方法（逐次送信モード）も含む。なお、一括送信モードでは、全ての印刷コマンドを一括してＨＴＴＰ通信モジュール２０２に入力するため、ＨＴＴＰ通信モジュール２０２は、一括して全ての印刷コマンドを含んだ信号（ＨＴＴＰパケット）を、印刷装置１２０へ送信する。一方、逐次送信モードでは、ＨＴＴＰ通信モジュール２０２は、変換が完了した印刷コマンドを含んだ信号を、逐次、印刷装置１２０へ送信する。このように、例えば、一括送信モードと逐次送信モードは、印刷アプリケーション２０１又はＨＴＴＰ通信モジュール２０２の動作によって規定されうる。なお、動作モードはこれらに限られず、ほかの動作モードが存在してもよい。
【００１７】
その後、印刷アプリケーション２０１は、選択した送信モード情報と印刷コマンドの送信先ＵＲＬとを、ＨＴＴＰ通信モジュール２０２に入力する（Ｓ３０３、Ｓ３０４）。そして、印刷アプリケーション２０１は、Ｓ３０１において受信した入力データの印刷コマンドへの変換処理を開始する（Ｓ３０５）。印刷アプリケーション２０１は、変換が完了した印刷コマンドをＨＴＴＰ通信モジュール２０２へ入力し（Ｓ３０６）、さらに入力した印刷コマンドのサイズ情報をＨＴＴＰ通信モジュール２０２へ入力する（Ｓ３０７）。なお、一括送信モードにおいては、ＨＴＴＰ通信モジュール２０２への印刷コマンドの入力は、入力データから印刷コマンドへの変換が全て完了した際に行われる。一方、逐次送信モードでは、入力データから印刷コマンドへの変換が完了した順に逐次的に印刷コマンドの入力が行われる。つまり、入力データの一部が印刷コマンドへと変換されるたびに、変換された印刷コマンドがＨＴＴＰ通信モジュール２０２へと入力される。印刷アプリケーション２０１は、入力データの全ての印刷コマンドへの変換が完了したか否かを確認し（Ｓ３０８）、未変換の入力データがある場合（Ｓ３０８でＹＥＳ）は処理をＳ３０５へ戻す。一方、印刷アプリケーション２０１は、入力データの全ての印刷コマンドへの変換が完了した場合（Ｓ３０８でＮＯ）、処理をＳ３０９へと進める。Ｓ３０９では、印刷アプリケーション２０１は、ＨＴＴＰ通信モジュール２０２に対して、送信すべき印刷コマンドの入力が終了したことを示す情報を入力し、処理を終了する。
【００１８】
次に、図４を用いて、逐次送信モードにおけるＨＴＴＰ通信モジュール２０２と印刷装置１２０との間でのＨＴＴＰパケットの送受信の流れの概要について説明する。ＨＴＴＰ通信モジュール２０２は、印刷アプリケーション２０１から入力された情報に応じてＨＴＴＰリクエスト（ＨＴＴＰヘッダー）を送信する（Ｓ４０１）。続いて、ＨＴＴＰ通信モジュール２０２は、印刷アプリケーション２０１から逐次入力された印刷コマンドを、印刷装置１２０へ順次送信する（Ｓ４０２〜Ｓ４０５）。ここで送信されるデータは、例えば、送信する実データサイズを１６進数で示した文字列と、印刷コマンドの実体と、を順に含む。例えばＳ４０２のデータは、１６進数の「ｃ」によって実データサイズが十進数で「１２」であることが示されており、印刷コマンドの実体が１２文字の文字列「ａａｂｂｃｃｄｄｅｅｆｆ」によって表されている。なお、このデータ内の数字及びコマンドの実体の内容は概念的に示したものであり、例えば、印刷コマンドの実体における各アルファベットは所定単位のデータ量の実データに対応し、実データサイズは、所定単位のデータ量を単位とした値でありうる。ＨＴＴＰ通信モジュール２０２は、その後に印刷アプリケーション２０１から印刷コマンドの入力の完了を示す情報を受信すると、ＨＴＴＰ通信モジュール２０２からのデータ送信完了に対応する「０」を示すデータを、印刷装置１２０へ送信する（Ｓ４０６）。印刷装置１２０は、Ｓ４０６のデータを受信すると、全ての印刷コマンド受信に成功したことを示すステータスコード（２００）を含む情報を、ＨＴＴＰレスポンスとしてＨＴＴＰ通信モジュール２０２に送信する（Ｓ４０７）。
【００１９】
次に、図５を用いて、印刷装置１２０が、全ての印刷コマンドを受信した後に印刷コマンドの異なるアドレスへの転送を指示する動作の流れについて説明する。図５において、Ｓ５０１〜Ｓ５０６は、図４のＳ４０１〜Ｓ４０６と同様であるため、説明を省略する。印刷装置１２０は、データ送信完了を示すデータを受信すると、印刷コマンドを異なるアドレスへ転送することが必要であることを示すステータスコード「３０１」を含むＨＴＴＰレスポンスを、ＨＴＴＰ通信モジュール２０２に送信する（Ｓ５０７）。以下では、このＨＴＴＰレスポンスのことを、リダイレクト応答と呼ぶ。リダイレクト要求は、ステータスコード「３０１」に加えて、印刷コマンドの転送先のＵＲＬ情報「Ｌｏｃａｔｉｏｎ」を含む。なお、図５では、転送先のＵＲＬ情報として、「ｈｔｔｐｓ：／／１９２．１６８．１１．２／ｆｏｏ／ｂａｒ／ｐｏｒｔ１：４４３」が含められた場合の例を示している。
【００２０】
逐次送信モードの場合、ＨＴＴＰ通信モジュール２０２は、全ての印刷コマンドが送信完了するまで、印刷装置１２０からリダイレクト応答が返却されるか否かを知ることができない。このため、ＨＴＴＰ通信モジュール２０２は、リダイレクト応答を受信した場合に印刷コマンドの全てを転送先のアドレスへ再送信するため、印刷装置１２０からの応答を受信するまでは、その印刷コマンドの全てを保持している必要がある。これにより、ＨＴＴＰ通信モジュール２０２は、本来必要とするよりも多くのメモリ量を消費してしまいうる。また、ＨＴＴＰ通信モジュール２０２は、印刷装置１２０からリダイレクト応答を受信した場合に印刷コマンドを再生成することによりメモリの浪費を防ぐこともできるが、この場合は、演算資源を浪費してしまいうる。また、印刷コマンドが複数回送信される場合、ネットワークリソースも浪費されてしまいうる。
【００２１】
このため、本実施形態に係るＨＴＴＰ通信モジュール２０２は、多くのメモリを浪費するおそれのある所定条件下で、印刷コマンドを送信する前に、印刷コマンドを含まないＨＴＴＰリクエストを送信して、リダイレクトが発生するか否かを判定するようにする。なお、所定条件の例については後述する。これにより、ＨＴＴＰ通信モジュール２０２は、同じ印刷コマンドを繰り返し送信することなく、移転先のＵＲＬへと印刷コマンドを送信することができる。さらに、リダイレクトが発生することに備えてデータを保存することや、リダイレクトが発生した後に再生成することが不要となり、メモリや演算資源、及びネットワークリソースの浪費を防ぐことができる。以下では、このような処理に関するいくつかの例について説明する。
【００２２】
＜処理例１＞
ＨＴＴＰ通信モジュール２０２が実行する処理の第１の例について、図６を用いて説明する。本処理例では、ＨＴＴＰ通信モジュール２０２は、送信モードが逐次送信モードである場合に、印刷コマンドを含まないＨＴＴＰリクエストを送信し、受信したＨＴＴＰレスポンスによってリダイレクトが発生するか否かを判定するようにする。逐次送信モードは、送信対象データの大きさが不明である場合や大きい場合にその送信対象データを複数に分けて送信する際に用いられうる。このため、以下に示す処理によって、メモリ、演算資源、ネットワークリソース等が大きく浪費されることを防ぐことが可能となる。なお、印刷コマンドは、送信先である印刷装置において処理されるデータである。そのため、処理コマンドまたは処理データと記載することもある。
【００２３】
図６において、ＨＴＴＰ通信モジュール２０２は、処理を開始すると、印刷アプリケーション２０１から、送信モード情報と送信先ＵＲＬとをそれぞれ取得する（Ｓ６０１、Ｓ６０２）。次に、ＨＴＴＰ通信モジュール２０２は、取得した送信モード情報の種別を判定する（Ｓ６０３）。ＨＴＴＰ通信モジュール２０２は、取得した情報が逐次送信モードを示す場合は処理をＳ６０４へ進め、一方で、受信した情報が一括送信モードを示す場合には処理をＳ６１５へと進める。Ｓ６０４では、ＨＴＴＰ通信モジュール２０２は、Ｓ６０２において取得した送信先ＵＲＬに対して、印刷コマンドを含まないＨＴＴＰリクエストを送信し（Ｓ６０４）、送信先ＵＲＬからのＨＴＴＰレスポンスを受信する（Ｓ６０５）。そして、ＨＴＴＰ通信モジュール２０２は、受信したＨＴＴＰレスポンスのステータスコードを解析し、このＨＴＴＰレスポンスがリダイレクト応答であるか否かを判定する（Ｓ６０６）。すなわち、ＨＴＴＰ通信モジュール２０２は、逐次送信モードにおいては、まず、印刷コマンドなどの送信対象データを含まないＨＴＴＰリクエストを送信して、実際に送信対象データを送信する前に、リダイレクトが行われるか否かを判定する。
【００２４】
ここで、ＨＴＴＰ通信モジュール２０２がＳ６０４において送信するＨＴＴＰリクエスト（ＨＴＴＰヘッダー）の一例を図７に示す。図７において、Ｓ７０１で送信されるＨＴＴＰリクエストの内容のうち「Ｃｏｎｔｅｎｔ−Ｌｅｎｇｔｈ：０」は、ＨＴＴＰヘッダ以外に送信されるデータが含まれていないことを示している。このように、Ｓ６０４では、印刷コマンド等の送信データを含まないＨＴＴＰリクエストが送信され、印刷装置１２０は、このＨＴＴＰリクエストを受信すると、すぐにＨＴＴＰレスポンスを返送することとなる。
【００２５】
ＨＴＴＰ通信モジュール２０２は、受信したＨＴＴＰレスポンスがリダイレクト応答であると判定した場合（Ｓ６０６でＹＥＳ）、Ｓ６０３において取得した送信先ＵＲＬを、リダイレクト応答に含まれる移転先ＵＲＬへと更新する（Ｓ６０７）。次に、ＨＴＴＰ通信モジュール２０２は、印刷アプリケーション２０１から入力された印刷コマンドのサイズの情報を取得する（Ｓ６０８）。一方、ＨＴＴＰ通信モジュール２０２は、受信したＨＴＴＰレスポンスがリダイレクト応答でないと判定した場合（Ｓ６０６でＮＯ）、Ｓ６０７の処理を行わずに、Ｓ６０８の処理を実行する。ＨＴＴＰ通信モジュール２０２は、Ｓ６０８において取得したサイズに応じたメモリ領域を確保し、印刷アプリケーション２０１から入力された印刷コマンドをその領域へ格納する（Ｓ６０９）。その後、ＨＴＴＰ通信モジュール２０２は、Ｓ６０９においてメモリに格納された印刷コマンドを、ＨＴＴＰパケットとして送信先ＵＲＬへ送信する（Ｓ６１０）。そして、ＨＴＴＰ通信モジュール２０２は、送信すべき全ての印刷コマンドの入力が完了したか否かを示す情報を印刷アプリケーション２０１から取得し（Ｓ６１１）、印刷コマンドの入力が完了したか否かを判定する（Ｓ６１２）。ＨＴＴＰ通信モジュール２０２は、Ｓ６１２にて送信すべき全ての印刷コマンドの入力が完了したことを示す情報を検知した場合（Ｓ６１２でＹＥＳ）、データ送信完了に対応する「０」を示すデータを送信先ＵＲＬへ送信する（Ｓ６１３）。そして、ＨＴＴＰ通信モジュール２０２は、送信先ＵＲＬからのＨＴＴＰレスポンスを受信して（Ｓ６１４）、本処理を終了する。一方、Ｓ６１２において、送信すべき全ての印刷コマンドの入力が完了したことを示す情報を検知しなかった場合（Ｓ６１２でＮＯ）、ＨＴＴＰ通信モジュール２０２は、処理をＳ６０８へ戻して、印刷コマンドの送信処理を繰り返し実行する。
【００２６】
Ｓ６０３において送信モードが一括送信モードであると判定された場合、ＨＴＴＰ通信モジュール２０２は、印刷アプリケーション２０１から入力された印刷コマンドのサイズの情報を取得する（Ｓ６１５）。そして、ＨＴＴＰ通信モジュール２０２は、Ｓ６１５において取得したサイズに応じたメモリ領域を確保して、印刷アプリケーション２０１から入力された印刷コマンドをその領域へ格納する（Ｓ６１６）。続いて、ＨＴＴＰ通信モジュール２０２は、Ｓ６１６においてメモリに格納した印刷コマンドを送信先ＵＲＬへ送信して（Ｓ６１７）、送信先ＵＲＬからのＨＴＴＰレスポンスを受信する（Ｓ６１８）。なお、Ｓ６１７で利用される送信先ＵＲＬとＳ６１０で利用されるリダイレクト後のＵＲＬとは異なるが、どちらも印刷装置１２０に対応している。そして、ＨＴＴＰ通信モジュール２０２は、受信したＨＴＴＰレスポンスのステータスコードを解析し、このＨＴＴＰレスポンスがリダイレクト応答であるか否かを判定する（Ｓ６１９）。ＨＴＴＰ通信モジュール２０２は、受信したＨＴＴＰレスポンスがリダイレクト応答であると判定した場合（Ｓ６１９でＹＥＳ）、Ｓ６０３で取得した送信先ＵＲＬをリダイレクト応答に含まれる移転先ＵＲＬへと更新して（Ｓ６２０）、処理をＳ６１７へ戻す。一方、ＨＴＴＰ通信モジュール２０２は、受信したＨＴＴＰレスポンスがリダイレクト応答でないと判定した場合（Ｓ６１９でＮＯ）は、処理を終了する。
【００２７】
Ｓ６０４〜Ｓ６０６の処理によって、ＨＴＴＰ通信モジュール２０２は、印刷コマンド（送信対象データ、処理データ）の送信を開始する前に、リダイレクト応答の有無を検知することができる。これにより、ＨＴＴＰ通信モジュール２０２は、初送時から適切な送信アドレスへ印刷コマンドを送信することが可能となり、リダイレクトによる複数のアドレスのそれぞれに対する複数回の送信処理が行われることがなくなる。すなわち、ネットワークリソースの浪費を防ぐことができる。また、ＨＴＴＰ通信モジュール２０２は、印刷アプリケーション２０１から受信した全ての印刷コマンドを保持する必要がなくなり、消費メモリ量を削減することが可能となる。
【００２８】
＜処理例２＞
処理例１では、印刷アプリケーション２０１が一括送信モードを選択していた場合、ＨＴＴＰ通信モジュール２０２は、印刷コマンドの内容によらずに、その印刷コマンドを含んだＨＴＴＰリクエストを送信する。この場合、ＨＴＴＰ通信モジュール２０２は、リダイレクト応答を受信すると、リダイレクト応答で指定された転送アドレスに対して印刷コマンドを再送信する。このため、本来必要なデータ転送量の２倍のデータ通信量が必要となるため、送信対象データのサイズが大きい場合はネットワークリソースを浪費してしまいうる。本処理例では、ＨＴＴＰ通信モジュール２０２は、一括送信モードにおいて、印刷コマンドのサイズが所定サイズ以上である場合に、印刷コマンドを含まないＨＴＴＰリクエストを送信先ＵＲＬへ送信する。これにより、ＨＴＴＰ通信モジュール２０２は、サイズが大きい印刷コマンドを送信する前にリダイレクトが発生するか否かを判定することができる。そして、ＨＴＴＰ通信モジュール２０２は、リダイレクトが発生する場合には移転先のＵＲＬに対してのみ、リダイレクトが発生しない場合には印刷装置１２０に対してのみ、サイズの大きい印刷コマンドを送信することができる。これにより、ネットワークリソースを大幅に浪費することを防ぐことができるようになる。以下では、このような処理の例について、図８を用いて説明する。なお、図６と共通する処理については、図６と同じ参照番号を付して、その説明を省略する。
【００２９】
ＨＴＴＰ通信モジュール２０２は、送信モードが一括送信モードである場合に印刷コマンドのサイズの情報を取得する（Ｓ６１５）と、そのサイズが所定のサイズ以上であるかを判定する（Ｓ８０１）。ＨＴＴＰ通信モジュール２０２は、印刷コマンドのサイズが所定のサイズ未満であると判定した場合（Ｓ８０１でＮＯ）、図６と同様にして、印刷コマンドを含んだＨＴＴＰリクエストをＳ６０２で取得した送信先ＵＲＬへと送信する（Ｓ６１７）。一方、ＨＴＴＰ通信モジュール２０２は、印刷コマンドのサイズが所定のサイズ以上であると判定した場合（Ｓ８０１でＹＥＳ）、Ｓ６０２において取得した送信先ＵＲＬに対して、印刷コマンドを含まないＨＴＴＰリクエストを送信する（Ｓ８０２）。そして、ＨＴＴＰ通信モジュール２０２は、送信先ＵＲＬからのＨＴＴＰレスポンスを受信し（Ｓ８０３）、ステータスコードを解析することにより、そのＨＴＴＰレスポンスがリダイレクト応答であるか否かを判定する（Ｓ８０４）。ＨＴＴＰ通信モジュール２０２は、受信したＨＴＴＰレスポンスがリダイレクト応答であると判定した場合（Ｓ８０４でＹＥＳ）、送信先ＵＲＬを、リダイレクト応答に含まれる移転先ＵＲＬへと更新する（Ｓ８０５）。その後、ＨＴＴＰ通信モジュール２０２は、Ｓ６１６でメモリに格納した印刷コマンドを、送信先ＵＲＬへ送信する（Ｓ６１７）。
【００３０】
本処理例によれば、印刷アプリケーション２０１が一括送信モードを選択し、さらに所定のサイズ以上の印刷コマンドをＨＴＴＰ通信モジュール２０２に入力した場合であっても、印刷コマンドの送信開始前にリダイレクト応答の有無を検知することができる。この結果、所定のサイズ以上の印刷コマンドが複数回送信されることを回避することができ、ネットワークリソースの浪費を防ぐことができる。
【００３１】
＜処理例３＞
処理例１及び処理例２では、リダイレクトが生じるか否かを、送信先のＵＲＬに対してＨＴＴＰリクエストを送信してＨＴＴＰレスポンスを受信するか否かに基づいて判定する例について説明した。本処理例では、リダイレクトが発生した際に、送信先のＵＲＬと移転先のＵＲＬとを対応付けて記憶しておき、その後にはその送信先のＵＲＬへはＨＴＴＰリクエストを送信しないで、移転先のＵＲＬへとＨＴＴＰリクエストを送信するようにする。これにより、不要なＨＴＴＰリクエストの送信とＨＴＴＰレスポンスの受信とが発生することを防ぐことができる。以下では、このような処理の例について、図９を用いて説明する。なお、図６又は図８と共通する処理については、図６又は図８と同じ参照番号を付して、その説明を省略する。
【００３２】
ＨＴＴＰ通信モジュール２０２は、移転先ＵＲＬデータベースに記憶されている情報の中からＳ６０２において取得した送信先ＵＲＬの情報を検索し（Ｓ９０１）、送信先ＵＲＬが登録されているか否かを判定する（Ｓ９０２）。移転先ＵＲＬデータベースの例を図１０に示す。図１０のように、移転先ＵＲＬデータベース１００１には、ＨＴＴＰ通信モジュール２０２がＨＴＴＰリクエストを送信した送信先ＵＲＬと、その結果、リダイレクト応答を受信した場合に、その応答に含まれていた移転先ＵＲＬとが関連付けられて登録される。ＨＴＴＰ通信モジュール２０２は、Ｓ６０２において取得した送信先ＵＲＬが、移転先ＵＲＬデータベース１００１における送信先ＵＲＬとして登録されているか否かを判定する。
【００３３】
ＨＴＴＰ通信モジュール２０２は、送信先ＵＲＬが移転先ＵＲＬデータベースに登録されていない場合（Ｓ９０２でＮＯ）は、図８のＳ６０３以降と同様の処理を実行する。ただし、図８の処理と同様の処理を実行した結果、リダイレクト応答を受信した場合、送信先ＵＲＬと移転先のＵＲＬとを対応付けて、移転先ＵＲＬデータベースに登録してから（Ｓ９０３、Ｓ９０４）、移転先のＵＲＬへ印刷コマンドを送信する。一方、ＨＴＴＰ通信モジュール２０２は、送信先ＵＲＬが移転先ＵＲＬデータベースに登録されている場合（Ｓ９０２でＹＥＳ）は、送信先ＵＲＬを、移転先ＵＲＬデータベース１００１で関連付けられて登録されている移転先ＵＲＬへと更新する（Ｓ９０５）。そして、ＨＴＴＰ通信モジュール２０２は、Ｓ６０１において取得した情報に基づいて送信モードを判定する（Ｓ９０６）。そして、ＨＴＴＰ通信モジュール２０２は、送信モードが逐次送信モードであると判定した場合は処理をＳ６０８へ移す。一方、ＨＴＴＰ通信モジュール２０２は、送信モードが一括送信モードであると判定した場合は、印刷アプリケーション２０１から入力された印刷コマンドのサイズ情報を取得する（Ｓ９０７）。そして、ＨＴＴＰ通信モジュール２０２は、Ｓ９０７で取得したサイズに応じてメモリ領域を確保して、印刷アプリケーション２０１から入力された印刷コマンドをその領域へ格納し（Ｓ９０８）、処理をＳ６１７へと進める。
【００３４】
このように、本処理例では、ＨＴＴＰ通信モジュール２０２は、ある送信先ＵＲＬに対してＨＴＴＰリクエストを送信してリダイレクト応答を受信すると、その応答に含まれる移転先ＵＲＬを、移転先ＵＲＬデータベースに登録する。これにより、ＨＴＴＰ通信モジュール２０２は、その後にその送信先ＵＲＬへＨＴＴＰリクエストを送信することなく、移転先のＵＲＬへＨＴＴＰリクエストを送信することが可能となる。これにより、印刷データを含まないＨＴＴＰリクエストを送信することもなくなるため、ネットワークリソースの使用をさらに抑えることが可能となる。
【００３５】
なお、上述の処理例３では、送信先ＵＲＬが登録されていない場合、処理例２と同様の処理が実行されるものとして説明を行ったが、処理例１と同様の処理が実行されてもよい。また、上述の処理は、ＨＴＴＰを用いた場合の例を示したが、ＨＴＴＰ以外の通信プロトコルが用いられる場合にも適用されうる。すなわち、任意の通信プロトコルを用いる通信装置が、データ送信に関する所定の条件を満たす場合に、送信先の変更が要求されるか否かを確認するためのデータを含まない所定の信号を、送信先へと送信するように構成されうる。なお、所定の条件は、例えば、データの送信モードがデータを分割して送信する等の所定のモードであることや、データのサイズが所定サイズ以上であること等でありうる。これによれば、メモリや処理資源又はネットワークリソースの浪費につながりうる条件を所定の条件として定めることにより、このような所定の条件を満たすデータについては再送信が行われないようになり、それらの資源の浪費を抑えることができる。また、所定の条件を満たさないデータについては、上述の所定の信号を送信しないことにより、送信先の変更が生じない場合に、不必要な信号が送信されることを防ぐことが可能となる。また、処理例３のように、通信装置は、送信先の変更が生じた場合には、変更前後の送信先の情報を関連付けて記憶することにより、変更前の送信先として登録された送信先へはデータを送信しないで、変更後の送信先へとデータを送信することができる。これにより、リソースの浪費をさらに抑制することが可能となる。
【００３６】
また、上述の処理例１〜３では、ＨＴＴＰ通信モジュール２０２を利用するアプリケーションとして印刷コマンドを送信する印刷アプリケーションを例示したが、異なる種別のデータを送信するアプリケーションも適用可能である。例えば、印刷装置に用紙情報（用紙種別、用紙サイズなど）を追加するために用紙情報コマンドを送信する用紙情報管理アプリケーションが使用される場合に上述した処理が実行されても良い。また、印刷装置からステータス情報や能力情報、ジョブの実行履歴情報を取得するために各種の情報取得要求コマンドを送信する印刷管理アプリケーションが使用される場合に上記処理が実行されてもよい。
【００３７】
＜＜その他の実施形態＞＞
上述の実施形態では、情報処理装置１１０と印刷装置１２０を例に挙げて説明したが、例えば、情報処理装置１１０とＷｅｂサーバとの間のデータ通信において本実施形態が利用されてもよい。その場合、リダイレクト前の送信先アドレスに対応するＷｅｂサーバと、リダイレクト後の送信先アドレスに対応するＷｅｂサーバが、異なるＷｅｂサーバであってもよい。
【００３８】
また、本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、システム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００３９】
１１２、１２４：ＣＰＵ、１１３、１２２：ＲＯＭ、１１６、１２１：ＲＡＭ、１１９：入出力インタフェース、２０１：印刷アプリケーション、２０２：ＨＴＴＰ通信モジュール
【図１】
2018190285.tif 000003
【図２】
2018190285.tif 000004
【図３】
2018190285.tif 000005
【図４】
2018190285.tif 000006
【図５】
2018190285.tif 000007
【図６】
2018190285.tif 000008
【図７】
2018190285.tif 000009
【図８】
2018190285.tif 000010
【図９】
2018190285.tif 000011
【図１０】
2018190285.tif 000012