(57)【要約】【課題】  本発明はプリンタの状態に基づいてセッション数を変更することにより、印刷処理を高速化しつつサーバの負荷を低減することを目的とする。【解決手段】  本発明の情報処理端末は、第１のセッション数でサーバから画像データを受信し、プリンタの状態を取得し、プリンタの状態に基づいてセッション数を第１のセッション数から第２のセッション数に変更して、第２のセッション数でサーバから画像データを受信し、画像データを印刷データに変換して、印刷データをプリンタに送信する。【選択図】  図５
2016033765.tif 000002
【特許請求の範囲】
【請求項１】
情報処理端末であって、
第１のセッション数でサーバから画像データを受信する受信手段と、
プリンタの状態を取得する取得手段と、を有し、
前記受信手段は、前記プリンタの状態に基づいてセッション数を前記第１のセッション数から第２のセッション数に変更して、前記第２のセッション数で前記サーバから前記画像データを受信し、
前記情報処理端末はさらに、前記画像データを印刷データに変換して、前記印刷データを前記プリンタに送信する送信手段を有することを特徴とする情報処理端末。
【請求項２】
前記プリンタの状態が印刷処理を開始できる状態であるか否かを判断する判断手段と、を有し、
前記受信手段は、前記判断手段が前記プリンタの状態は前記印刷処理を開始できる状態であると判断した場合にセッション数を増やし、前記判断手段が前記プリンタの状態は前記印刷処理を開始できる状態ではないと判断した場合にセッション数を減らして、前記サーバから前記画像データを受信することを特徴とする請求項１に記載の情報処理端末。
【請求項３】
前記第１のセッション数が前記サーバのセッション数の上限であるか否かを判断する第２の判断手段と、を有し、
前記判断手段は、前記第２の判断手段が前記第１のセッション数は前記サーバのセッション数の上限ではないと判断した場合に、前記プリンタの状態が前記印刷処理を開始できる状態であるか否かを判断することを特徴とする請求項２に記載の情報処理端末。
【請求項４】
前記判断手段が前記プリンタの状態は前記印刷処理を開始できる状態であると判断した場合に、前記印刷処理に待ち時間が発生するか否かを判断する第３の判断手段と、を有し、
前記受信手段は、前記第３の判断手段が前記印刷処理に待ち時間が発生すると判断した場合にセッション数を増やすことを特徴とする請求項２又は請求項３に記載の情報処理端末。
【請求項５】
前記受信手段は、前記第２の判断手段が前記第１のセッション数は前記サーバのセッション数の上限であると判断した場合に、前記サーバに指定されたセッション数に減らすことを特徴とする請求項３に記載の情報処理端末。
【請求項６】
前記受信手段は、前記画像データをページ単位に受信し、最終ページに相当する画像データをダウンロードする場合に、前記最終ページに相当する前記画像データを分割して複数のセッションでダウンロードすることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理端末。
【請求項７】
第１のセッションでサーバから画像データを受信し、第２のセッションで印刷データを受信する受信手段と、
前記印刷データのダウンロード範囲を分割する分割手段と、を有し、
前記受信手段は、前記第１のセッションで前記画像データの受信を完了した場合に、前記分割手段により分割された、前記第２のセッションでは未受信の前記印刷データを前記第１のセッションで受信することを特徴とする情報処理端末。
【請求項８】
コンピュータにおいて実行されるプログラムであって、
前記コンピュータに、
第１のセッション数でサーバから画像データを受信する受信工程と、
プリンタの状態を取得する取得工程と、を実行させ、
前記受信工程は、前記プリンタの状態に基づいてセッション数を前記第１のセッション数から第２のセッション数に変更して、前記第２のセッション数で前記サーバから前記画像データを受信し、
前記コンピュータにさらに、前記画像データを印刷データに変換して、前記印刷データを前記プリンタに送信する送信工程を実行させることを特徴とするプログラム。
【請求項９】
前記コンピュータに、
前記プリンタの状態が印刷処理を開始できる状態であるか否かを判断する判断工程と、を実行させ、
前記受信工程は、前記判断工程で前記プリンタの状態は前記印刷処理を開始できる状態であると判断した場合にセッション数を増やし、前記判断工程で前記プリンタの状態は前記印刷処理を開始できる状態ではないと判断した場合にセッション数を減らして、前記サーバから前記画像データを受信することを特徴とする請求項８に記載のプログラム。
【請求項１０】
前記コンピュータに、
前記第１のセッション数が前記サーバのセッション数の上限であるか否かを判断する第２の判断工程と、を実行させ、
前記判断工程は、前記第２の判断工程で前記第１のセッション数は前記サーバのセッション数の上限ではないと判断した場合に、前記プリンタの状態が前記印刷処理を開始できる状態であるか否かを判断することを特徴とする請求項９に記載のプログラム。
【請求項１１】
前記コンピュータに、
前記判断工程で前記プリンタの状態は前記印刷処理を開始できる状態であると判断した場合に、前記印刷処理に待ち時間が発生するか否かを判断する第３の判断工程と、を実行させ、
前記受信工程は、前記第３の判断工程で前記印刷処理に待ち時間が発生すると判断した場合にセッション数を増やすことを特徴とする請求項９又は請求項１０に記載のプログラム。
【請求項１２】
前記受信工程は、前記第２の判断工程で前記第１のセッション数は前記サーバのセッション数の上限であると判断した場合に、前記サーバに指定されたセッション数に減らすことを特徴とする請求項１０に記載のプログラム。
【請求項１３】
前記受信工程は、前記画像データをページ単位に受信し、最終ページに相当する画像データをダウンロードする場合に、前記最終ページに相当する前記画像データを分割して複数のセッションでダウンロードすることを特徴とする請求項８乃至１２のいずれか１項に記載のプログラム。
【請求項１４】
コンピュータに、
第１のセッションでサーバから画像データを受信し、第２のセッションで印刷データを受信する受信工程と、
前記印刷データのダウンロード範囲を分割する分割工程と、を実行させ、
前記受信工程は、前記第１のセッションで前記画像データの受信を完了した場合に、前記分割工程により分割された、前記第２のセッションでは未受信の前記印刷データを前記第１のセッションで受信することを特徴とするプログラム。
【請求項１５】
情報処理端末の制御方法であって、
第１のセッション数でサーバから画像データを受信する受信工程と、
プリンタの状態を取得する取得工程と、を有し、
前記受信工程は、前記プリンタの状態に基づいてセッション数を前記第１のセッション数から第２のセッション数に変更して、前記第２のセッション数で前記サーバから前記画像データを受信し、
前記情報処理端末はさらに、前記画像データを印刷データに変換して、前記印刷データを前記プリンタに送信する送信工程を有することを特徴とする制御方法。
【請求項１６】
第１のセッションでサーバから画像データを受信し、第２のセッションで印刷データを受信する受信工程と、
前記印刷データのダウンロード範囲を分割する分割工程と、を有し、
前記受信工程は、前記第１のセッションで前記画像データの受信を完了した場合に、前記分割工程により分割された、前記第２のセッションでは未受信の前記印刷データを前記第１のセッションで受信することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データをサーバから受信する技術に関する。
【背景技術】
【０００２】
従来、プリンタの状態を考慮して、印刷データをプリンタに送信する技術がある。
【０００３】
特許文献１はプリンタの状態を取得し、印刷データをプリンタに送信して印刷させる技術を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−１１６１６５
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本明細書ではサーバに存在する画像データに基づいて印刷するために、画像データをサーバから受信し、受信した画像データを印刷データに変換してプリンタに送信して印刷を行う方法を検討する。この方法ではダウンロードが完了した画像データから逐次印刷データに変換し、変換された印刷データをその都度プリンタに送信することで高速に印刷を行うことができる。
【０００６】
この際、より高速な印刷処理を実現するためにはダウンロード時のセッション数を増やして、複数のセッションで同時に画像データをダウンロードすることが考えられる。
【０００７】
しかしながら、ダウンロード時のセッション数を増やしても、サーバの負荷を無駄に増加させてしまう可能性もある。特許文献１でもこうした課題や解決策について何ら開示していない。
【０００８】
よって、本発明はプリンタの状態に基づいてセッション数を変更することにより、印刷処理を高速化しつつサーバの負荷を低減することを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成するための本発明に係る情報処理装置は、
第１のセッション数でサーバから画像データを受信する受信手段と、
前記プリンタの状態を取得する取得手段と、を有し、
前記受信手段は、前記プリンタの状態に基づいてセッション数を前記第１のセッション数から第２のセッション数に変更して、前記第２のセッション数で前記サーバから前記画像データを受信し、
前記情報処理端末はさらに、前記画像データを印刷データに変換して、前記印刷データを前記プリンタに送信する送信手段を有することを特徴とする。
【発明の効果】
【００１０】
本発明によればプリンタの状態に基づいてセッション数を変更することにより、印刷処理を高速化しつつサーバの負荷を低減することができる。
【図面の簡単な説明】
【００１１】
【図１】システム構成およびハードウェア構成を示す図である。
【図２】ソフトウェア構成を示す図である。
【図３】バイトサービング印刷におけるダウンロード処理を示す図である。
【図４】バイトサービング印刷における印刷処理を示す図である。
【図５】実施例１における情報処理端末の処理を示すフローチャートである。
【図６】実施例２における情報処理端末の処理を示すフローチャートである。
【図７】実施例３における画像データのダウンロード時間を示す図である。
【図８】実施例３における画像データのダウンロード時間を示す図である。
【図９】実施例３における画像データのダウンロード時間を示す図である。
【図１０】実施例３における画像データのダウンロード時間を示す図である。
【図１１】実施例３における画像データのダウンロード時間を示す図である。
【図１２】実施例３における情報処理端末の処理を示すフローチャートである。
【図１３】実施例４におけるダウンロード処理を示すフローチャートである。
【図１４】実施例４におけるダウンロードキューのデータ構造を示す図である。
【図１５】実施例４におけるダウンロードキューのデータ構造を示す図である。
【発明を実施するための形態】
【００１２】
（実施例１）
まず、本発明の前提となる印刷システムについて説明する。
【００１３】
図１は、本実施形態のクライアント・サーバシステムのシステム構成および、ハードウェア構成を示すブロック図である。本実施形態のクライアント・サーバシステムは、ＬＡＮおよびＷＡＮで接続され、情報処理装置の一例である情報処理端末１１０および、情報処理端末１１０に接続されたプリンタ１２０とインターネットを介して接続されるサーバコンピュータ１００により構成される。
【００１４】
サーバコンピュータ１００において、１０１はＣＰＵであり、ＨＤＤ１０６に記憶されたアプリケーションプログラムに基づいて処理を実行する。
【００１５】
ＣＰＵ１０１はシステムバス１０５に接続される各デバイスを総括的に制御する。加えて、ＣＰＵ１０１がＨＤＤ１０６に記憶されているプログラムに基づき処理を実行することによって、図２に示されるようなサーバコンピュータ１００のソフトウェア構成及び後述するフローチャートの各ステップの処理が実現される。１０２はＲＡＭで、ＣＰＵ１０１の主メモリ、ワークエリア等として機能する。ＲＯＭ１０３は基本Ｉ／Ｏプログラム等の記憶領域として機能する読み出し専用のメモリである。ＨＤＤ１０６は外部記憶装置であり、ＣＰＵ１０１の制御プログラムであるオペレーティングシステムプログラム（以下ＯＳ）等が記憶される。さらにＨＤＤ１０６には上記アプリケーションプログラム等に基づく処理の際に使用するファイルやその他各種データを記憶する。１０４はネットワークＩ／Ｆであり、ネットワークへ接続しネットワーク通信を行う。
【００１６】
基本Ｉ／ＯプログラムおよびＯＳは、ＲＯＭ１０３に書き込まれている。そしてコンピュータの電源がＯＮされたときに、基本Ｉ／Ｏプログラム中のイニシャルプログラムロード機能により、ＨＤＤ１０６からＯＳがＲＡＭ１０２に書き込まれ、ＯＳの動作が開始される。１０５はシステムバスであり、各デバイスを接続する。
【００１７】
情報処理端末１１０は、通常のモバイル端末（ＰＤＡやスマートフォン）であり、小型端末用のオペレーティングシステムや、通話、データ通信を制御するプログラムが動いている。また、情報処理端末１１０は無線通信を利用可能である。
【００１８】
ハードウェアの各構成要素は、システムバス１１９に接続されている。内蔵メモリ１１２は不揮発性の記憶装置であり、情報処理端末１１０におけるＯＳ及び、通話、データ通信を制御するアプリケーションや、情報処理端末１１０の再起動後も保持しておく必要のある各種動作モード設定や、稼働ログなどが記憶される。内蔵メモリ１１２に格納されたデータ通信を制御するアプリケーションとしては、ＭａｉｌソフトやＷｅｂブラウザなどが挙げられる。これらの内蔵メモリ１１２に記憶された情報はＣＰＵ１１１で処理される。加えて、ＣＰＵ１１１が内蔵メモリ１１２に記憶されているプログラムに基づき処理を実行することによって、図２に示されるような情報処理端末１１０のソフトウェア構成及び後述するフローチャートの各ステップの処理が実現される。
【００１９】
ＲＡＭ１１３は、プログラムを実行するためのワークメモリエリアである。また、ＷｅｂブラウザがＷｅｂサーバから取得してきたＷｅｂページデータやＷｅｂサービスにアクセスするための認証情報などを一時記憶するためのメモリでもある。
【００２０】
ネットワークＩ／Ｆ１１４はネットワーク通信に無線ＬＡＮを用いる。そしてインターネットに接続されたサーバコンピュータ１００や同一ネットワーク上のプリンタ１２０と通信する。
【００２１】
表示制御部１１５は、情報処理端末１１０のディスプレイ１１７にて出力する情報の制御を行っている。入力制御部１１６は、情報処理端末１１０のボタンやタッチパネルなどの入力部１１８にてユーザが指示した情報の制御を行っている。これらの表示制御部１１５、入力制御部１１６を利用して、情報処理端末１１０上でのアプリケーションは、ネットワーク通信情報や情報処理端末１１０のさまざまな情報をユーザに提供する。
【００２２】
プリンタ１２０において、１２１はネットワークＩ／Ｆであり、情報処理端末１１０との接続に使用される。１２２はＣＰＵであり、制御プログラム等に基づいてシステムバス１２７に接続されるプリンタＩ／Ｆ１２５を介してプリンタ部１２６に出力情報としての画像信号を出力する。なお、制御プログラムはＲＯＭ１２４に記憶される。ＣＰＵ１２２はネットワークＩ／Ｆ１２１を介して情報処理端末１１０との通信処理が可能となっており、プリンタ１２０内の情報等を情報処理端末１１０に通知可能に構成されている。さらにＣＰＵ１２２はＲＯＭ１２４に記憶されたアプリケーションプログラム等に基づいて処理を実行する。１２３はＲＡＭであり、ＣＰＵ１２２の主メモリ、ワークエリア等として機能する。なお、ＲＡＭ１２３は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。ＲＯＭ１２４には、ＣＰＵ１２２の制御プログラムや上記出力情報を生成する際に使用するフォントデータ、プリンタ１２０上で利用される情報等が記憶される。１２５はプリンタＩ／Ｆで、プリンタ部１２６（プリンターエンジン）に出力情報としての画像信号を出力する。１２７はシステムバスであり、各デバイスを接続する。
【００２３】
図２は、本実施形態のソフトウェア構成を説明するブロック図である。
【００２４】
まずサーバコンピュータ１００のソフトウェア構成を示す。サーバコンピュータ１００において、アプリケーション２０２および各モジュールは、ＨＤＤ１０６に保存されたファイルとして存在する。これらは実行時にＯＳやそのモジュールを利用する他のモジュールによってＲＡＭ１０２にロードされ実行されるプログラムモジュールである。
【００２５】
２０１はネットワークモジュールであり、他のコンピュータと、ＴＣＰ／ＩＰプロトコルとＨＴＴＰを用いてネットワーク通信を行う。２００はＷｅｂサーバサービスモジュールであり、情報処理端末１１０からのＨＴＴＰリクエストを受け取るとＨＴＴＰレスポンスを応答するサービスを提供する。２０２はアプリケーションであり、情報処理端末１１０から送信される各種データファイル（例えば、Ｍｉｃｒｏｓｏｆｔ  Ｏｆｆｉｃｅ  Ｗｏｒｄ／Ｅｘｃｅｌ／ＰｏｗｅｒＰｏｉｎｔから生成されるデータファイル）を、情報処理端末１１０で表示可能な任意のファイル形式（ＪＰＥＧやＰＤＦなど）に変換し、情報処理端末１１０に送信する。アプリケーション２０２は、例えばＨＴＴＰリクエストに応答して処理を実行するプログラムとして実装される。上記のように、アプリケーション２０２はＷｅｂサーバサービスモジュール２００とともに、情報処理端末１１０から各種データファイルを受け取り、データ形式を変換するＷｅｂアプリケーションを実現している。
【００２６】
アプリケーション２０２において、２０３は各種データファイルをレンダリングするレンダリングモジュールである。例えば、ユーザが情報処理端末１１０からサーバコンピュータ１００に送信する予定のデータファイルが、情報処理端末１１０においてレンダリングが不可能または、レンダリング崩れが発生する場合、情報処理端末１１０からサーバコンピュータ１００に対してデータファイルが送信される。そしてレンダリングモジュール２０３はデータファイルを受け取り、情報処理端末１１０がプレビュー可能かつプリンタ１２０へ送信可能なデータファイルにファイル形式を変換する。２０４は通信管理モジュールであり、ネットワークモジュール２０１を用いて、セッションを維持している情報処理端末１１０との接続管理を行う。
【００２７】
次に情報処理端末１１０のソフトウェア構成を示す。なお、情報処理端末１１０を構成する各モジュールはそれぞれ内蔵メモリ１１２に保存されたファイルとして存在するプログラムモジュールである。そして、実行時にＯＳやそのモジュールを利用するモジュールによってＲＡＭ１１３にロードされ実行される。２２２はネットワークモジュールであり、サーバコンピュータ１００やプリンタ１２０とのネットワーク通信を行う。ネットワークモジュール２２２はＴＣＰ／ＩＰモジュール２２０、ＨＴＴＰモジュール２２１より構成される。ＴＣＰ／ＩＰモジュール２２０はＴＣＰ／ＩＰプロトコルとＨＴＴＰを用いてネットワーク通信を行う。
【００２８】
２２５はアプリケーションであり、アプリケーション２２５に含まれる印刷ジョブ生成モジュール２２３は、内蔵メモリ１１２およびＲＡＭ１１３の情報から、プリンタ１２０で印刷可能な印刷ジョブを生成する。通信管理モジュール２２４は、サーバコンピュータ１００およびプリンタ１２０との通信を管理する。
【００２９】
続いてプリンタ１２０のソフトウェア構成を示す。プリンタ１２０において、各種モジュールはＲＯＭ１２４に保存されたファイルとして存在し、実行時にＲＡＭ１２３にロードされ実行される。２１０はネットワークモジュールであり、任意の通信プロトコルを使用して情報処理端末１１０とのネットワーク通信を行う。２１１は印刷処理モジュールであり、情報処理端末１１０から送信された印刷ジョブの受信および制御、印刷処理を行う。
【００３０】
以下、本実施形態のクライアント・サーバシステム、印刷システムにおける、情報処理端末１１０の動作について述べる。
【００３１】
本明細書では、バイトサービング印刷を前提としているため、セッション数の変更について説明する前にバイトサービング印刷のフローを説明する。本明細書においてバイトサービング印刷とは、サーバから画像データをページ単位のファイルとして受信しながら、並行してプリンタへ印刷データを送信することである。たとえば、無線ＬＡＮでインターネット上のサーバコンピュータ１００から画像データを取得し、アプリケーション２２５内の印刷ジョブ生成モジュール２２３で画像データを印刷データに変換し、接続先を交互に切り替えることで、プリンタ１２０へ印刷データを送信する。つまり、情報処理端末１１０は、画像データの受信と印刷データの送信を交互に行う。データの送受信を交互に行うことによって、サーバからの画像データの取得から印刷までのトータルの処理時間を短縮することができる。
【００３２】
バイトサービング印刷の処理には大きく分けて、ダウンロードの処理と印刷処理の２種類がある。以降、図３を用いて本実施例のダウンロードの処理を説明し、後に図４を用いて本実施例の印刷処理を説明する。また、図３は情報処理端末１１０のフローチャートであり、アプリケーション２２５が行う動作である。
【００３３】
なお、本実施例では一度につき１つの画像データを１つのセッションでダウンロードする。
【００３４】
図３を用いて情報処理端末１１０のダウンロード処理について説明する。図３の各ステップはアプリケーション２２５が行う。
【００３５】
Ｓ３０１では、新たに画像データをダウンロードするときに、サーバにある残り画像データ数を、これから張ろうとしているセッション数が超えていないかどうかを判定する。本実施例では、基本的には前述のように一度につき１つの画像データを、１つのセッションのみを使いダウンロードを行うため、もしセッション数が残り画像数よりも多い場合は、セッション数を変更しなければならない。もし超えていた場合は、Ｓ３０２に処理を移し、ダウンロードを行うセッション数をサーバの残り画像数と等しくなるよう変更する。
【００３６】
Ｓ３０３では、サーバコンピュータ１００から画像データをダウンロードする処理を開始する。これは、ネットワークモジュール２２２のＨＴＴＰモジュール２２１がサーバコンピュータ１００から画像データの受信を開始することによって行う。
【００３７】
なお、Ｓ３０３で画像データを初めてダウンロード開始する際、すなわち後述するＳ３１０をまだ一度も実行していない場合は、１つのセッションでダウンロードを開始してもよい。あるいはアプリケーション２２５で設定されたデフォルトのセッション数でダウンロードを開始しても構わない。
【００３８】
Ｓ３０４では、次の画像データのダウンロードが完了するまで待つ。次の画像のダウンロードが完了するまで待つとは、たとえば、情報処理端末がセッションを２つ使って２つの画像データをサーバコンピュータ１００からダウンロードするときは、どちらかの画像データのダウンロードが完了するまで待つという意味である。
【００３９】
Ｓ３０５では、ダウンロードが完了した画像データを情報処理端末１１０の保存領域である内蔵メモリ１１２に書き込む。
【００４０】
Ｓ３０６では、ダウンロードが完了した画像データが、１ページ目の画像データであるかどうかを判定する。１ページ目の画像データであった場合は、Ｓ３０７に進み、印刷開始の命令を行う。印刷開始の命令を行うと、アプリケーション２２５は、図３のフローと並行して図４のフローを開始する。
【００４１】
Ｓ３０８では、サーバコンピュータ１００上に、まだダウンロードを開始していない画像データがあるかどうかを判断し、まだダウンロードを開始していない画像データがない場合は、Ｓ３０９へ進む。
【００４２】
Ｓ３０９では、すでにダウンロードが開始されているがまだダウンロードが完了していない画像データのダウンロード処理が完了するまで待つ。
【００４３】
Ｓ３１０では、次にサーバコンピュータ１００から画像データのダウンロードを開始するに当たり、接続セッション数を決定する。セッション数の決定方法は、図５を用いて後述する。
【００４４】
図４を用いて情報処理端末１１０の印刷処理について説明する。図４の各ステップもアプリケーション２２５が行う。
【００４５】
Ｓ４０１では、情報処理端末１１０内部の内蔵メモリ１１２に、次に印刷する画像データが存在するかどうかを判定する。内蔵メモリ１１２に画像データが存在しなかった場合は、Ｓ４０２に進み、サーバコンピュータ１００から次に印刷すべき画像データがダウンロードされるのを待つ。
【００４６】
Ｓ４０３では、内蔵メモリ１１２に存在する画像データを印刷データに変換し、ネットワークモジュール２２２を介して変換された印刷データをプリンタ１２０に送信する。
【００４７】
Ｓ４０４では、１ページの印刷データをプリンタ１２０へ送信するのにかかった時間と、プリンタ１２０へ送信した印刷データに対応する画像データのファイルサイズを内蔵メモリ１１２またはＲＡＭ１１３に記憶しておく。
【００４８】
Ｓ４０５では、全ページ分の印刷データの送信が完了したかどうかを判定する。もし送信が完了していた場合は図４の処理を終了し、まだ送信していない印刷データが存在する場合は、Ｓ４０１へ戻る。
【００４９】
図５を用いて情報処理端末１１０のセッション数を決定する処理について説明する。図５の各ステップもアプリケーション２２５が行う。
【００５０】
Ｓ５０１では、サーバの状態、プリンタの状態、ジョブの実行状況を取得する。
【００５１】
サーバの状態の取得は、サーバコンピュータ１００から画像データをダウンロードするときに、ネットワークモジュール２２２を使用して、サーバ上におけるセッション数の制限情報を取得することによって行う。たとえば、サーバによっては、負荷を減らすためにクライアントとのセッション数を制限しているものが存在し、制限より多くのセッション数を使ってサーバと接続することはできない。サーバのセッション許容数を超えてセッションを張らないために、セッション数の上限を取得することが必要である。セッション数の上限をサーバコンピュータ１００から直接取得することができなくとも、他に、サーバから画像データのダウンロードに関する推奨セッション数を取得する方法も考えられる。推奨セッション数が取得できた場合、アプリケーション２２５はセッション数の上限として推奨セッション数を採用する。しかし、もしサーバが対応しておらず、セッション数の上限も推奨セッション数も取得できない場合、アプリケーション２２５はセッション数の上限としてデフォルトで設定されているセッション数を採用する。
【００５２】
プリンタの状態の取得は、ネットワークモジュール２２２を使用してプリンタ情報取得のためのコマンドをプリンタ１２０へ送信し、プリンタが印刷開始状態か、印刷不可状態か、紙詰まりを起こしているか、キャリブレーション中であるか、といった状態を取得することによって行う。
【００５３】
ジョブの実行状況の取得は、図４のＳ４０４で記憶した印刷にかかった時間などの情報を取得することによって行う。
【００５４】
Ｓ５０２では、Ｓ５０１で取得したサーバの状態から、現在のセッション数がＳ５０１で採用したセッション数の上限と同一であるか判断する。同一でないと判断した場合はＳ５０３へ進み、同一であると判断した場合はもうセッション数を増やす余地がないため処理を終了する。
【００５５】
Ｓ５０３では、Ｓ５０１で取得したプリンタ１２０の状態から、プリンタ１２０がすぐに印刷を開始できる状態かどうかを判断する。たとえば、プリンタが、他のジョブを処理しているときや、キャリブレーション作業を行っているときは、すぐに印刷を開始できる状態ではないと判断し、プリンタが準備完了の状態であるときは、すぐに印刷を開始できる状態であると判断する。プリンタがすぐに印刷を開始できない状態であった場合、Ｓ５０４へ進む。
【００５６】
Ｓ５０４では、現在のセッション数を特定数に減らす。特定数とは、アプリケーション２２５によって任意に決められている値である。このとき、新規にセッションを張らずに、現在のセッション数が特定数になるまでダウンロードが完了して使わなくなったセッションを減らすことによって、セッション数を特定数に変更する。Ｓ５０４ではたとえば特定数が１の場合、サーバコンピュータ１００とアプリケーション２２５のセッション数を、現在の３つから１つに変更する。この例では、まだダウンロードを開始していない画像データがある場合でも、新たにダウンロードを開始せずに、継続中のダウンロード処理が２ファイル分終了するのを待つ。このことにより、ダウンロードが完了した２つのセッションが解放され、新たにダウンロードを開始しないことで、アプリケーション２２５のセッション数は特定である１に変更される。
【００５７】
Ｓ５０５では、現在印刷処理でプリンタ１２０に送信している印刷データが１ページ目であるかどうかを判断し、１ページ目である場合は処理を終了する。
【００５８】
Ｓ５０６では、Ｓ５０１で取得したジョブの実行状況から、印刷処理に待ち時間が発生するかどうかを判定する。具体的には印刷処理にかかる時間がダウンロードの処理よりも短いかどうかを判定する。たとえば、印刷にかかる時間よりも、ダウンロードにかかる時間の方が短ければ、それ以上通信を高速化する必要がないため、セッション数を増やす必要はない。一例として、１ページの印刷にかかる時間と１ページあたりのダウンロード時間を比較し、１ページ当たりのダウンロード時間の方が短ければ、処理を終了するように構成することが考えられる。
【００５９】
Ｓ５０７では、サーバコンピュータ１００とのセッション数を１つ増やすように、アプリケーション２２５の設定値を変更する。
【００６０】
なお、Ｓ５０２、Ｓ５０３、Ｓ５０５とＳ５０６の判断はいずれか１つの判断のみを行なってセッション数を制御するように構成しても構わないし、あるいは２つ以上の判断を任意に組み合わせてセッション数を制御するように構成しても構わない。
【００６１】
具体的にはたとえば、Ｓ５０２、Ｓ５０３、Ｓ５０５とＳ５０６の４つの判断を行う代わりに、Ｓ５０３の判断のみで構成する方法が考えられる。このような構成ではプリンタがすぐに印刷処理を開始できる状態と判断されればＳ５０７に進みセッション数を増やし、すぐに印刷処理を開始できる状態ではないと判断されればＳ５０４に進みセッション数を減らす。
【００６２】
以上の処理により、情報処理端末１１０において、サーバコンピュータ１００の状態、プリンタ１２０の状態、バイトサービング印刷の状態という最大で３つの条件を考慮して、サーバコンピュータ１００とのセッション数を決定し、条件によっては、セッション数を増やして高速に画像データのダウンロードを行うことが可能であり、また高速にダウンロードを行う必要がないときは、余計なセッションを使わずに、サーバの負荷を減らすことが可能である。
【００６３】
（実施例２）
実施例１におけるＳ５０２では、サーバコンピュータ１００からセッション数を減らす要求があったときに、セッション数を減らすことができない。たとえば、情報処理端末１１０上で画像データのダウンロードに時間が掛かるとき、ダウンロードの途中でサーバコンピュータ１００のロードバランサによる制限が掛かり、セッション数を減らさなければならない場合がある。そのため、図６に示す処理を実施する。図６の処理のうち、Ｓ６０１からＳ６０２、Ｓ６０４からＳ６０８は図５に示す処理と同じであるため、説明を割愛する。
【００６４】
Ｓ６０３では、現在のセッション数をサーバコンピュータ１００から指定された数に減らす。セッション数を減らす方法は、Ｓ６０５（Ｓ５０４）と同様に新たにセッションを張らずに指定されたセッション数になるまでダウンロードの完了を待つ。
【００６５】
以上の処理により、情報処理端末がサーバコンピュータからダウンロードを開始する前に、サーバコンピュータから接続数の制限を要求された場合に、セッション数を指定された数に減らし、サーバコンピュータの負荷を軽減することができる。
【００６６】
（実施例３）
実施例１におけるダウンロード方法では、情報処理端末１１０とサーバコンピュータ１００との通信速度が遅い場合、１つのセッションで一度につき１つのファイルをダウンロードする。その結果、次のような非効率な通信が発生する可能性がある。たとえば、２つのセッションを使って５ページの画像データのダウンロードを行っている場合に片方のセッションのダウンロードが早く終わると、実施例１に従って処理することで、図７に示すように最終ページに相当する画像データのダウンロード時にセッション２が活用されずに余ってしまうことが考えられる。その結果、セッションのリソースを十分に使えていないため、ダウンロードに時間が掛かってしまう。
【００６７】
なお、図７において、横軸は時間を表している。７０１は現在進行中のダウンロード処理を表している矢印であり、７０１の矢印の中にある番号は、ダウンロードするページ番号を表している。７０２はダウンロードを実行するセッションを表しており、２つのセッションを使用してダウンロードすることを表している。
【００６８】
そこで本実施例では、サーバから許可されたセッション数の上限は守りつつ、できる限り高速にダウンロードを完了させることを目的とする。
【００６９】
具体的には、ダウンロードを行う最後のページについて、ダウンロードする画像データの分割を行う。２つのセッションを使って５ページの画像データのダウンロードを行う場合、最後のページを分割することで、セッション１およびセッション２を使用して処理を完了させ、ダウンロードにかかる時間を短縮することができる。図８において８０１は、５ページ目のファイルを分割し、図７でセッション２に余っていた時間に、ダウンロード作業を割り当てることを表している。８０２は、５ページ目のダウンロードの開始タイミングを表しており、この時間に５ページ目の分割処理を行う。
【００７０】
前提として本実施例では、サーバコンピュータ１００はレジュームダウンロードに対応していて、ファイル分割によるダウンロードが可能な状態であり、情報処理端末１１０は、分割してダウンロードされたファイルを結合可能であるとする。
【００７１】
図１２を用いて本実施例のダウンロード処理について説明する。図１２の各ステップもアプリケーション２２５が行う。図１２は前述のように、情報処理端末１１０が、サーバコンピュータ１００から画像データのダウンロードを行う時、最終ページを分割してダウンロードするフローである。図１２の処理のうち、Ｓ１２０１からＳ１２０９、Ｓ１２１２は図３の処理と同じであるため、説明を割愛する。
【００７２】
Ｓ１２１０では、次にダウンロードを開始しようとする画像データが、最後の画像データかどうかを判定する。最後の画像データであった場合、Ｓ１２１１に進む。
【００７３】
Ｓ１２１１では、サーバコンピュータ１００から画像データの分割処理をしてダウンロードを実行し、ダウンロードの完了を待つ。分割方法としては、一例として図９、図１０、図１１を用いて説明する。
【００７４】
図９、図１０、図１１はいずれも情報処理端末１１０において、５ページの画像データを２つのセッションのみを使用して、サーバコンピュータ１００からダウンロードする場合であり、図９の９０１において、Ｘ１は情報処理端末１１０において、すべてのダウンロードが完了するまでの時間と４ページ目のダウンロードが完了するまでの時間の差を表しており、Ｘ２は５ページ目のダウンロードにかかる時間を表している。また、図１０において、１００１は、５ページ目のファイルをＸ１：Ｘ２という比で分割することを表している。図１１の１１０１においてαとβは５ページ目のファイルを分割したあとのファイルサイズを表している。ここで、α、βの決定方法は下記の通りである。
【００７５】
【数１】
2016033765.tif 000003
【００７６】
ファイルの分割方法を一般化すると、下記のファイルサイズで分割を行う。
【００７７】
【数２】
2016033765.tif 000004
【００７８】
なお、Ｍは現在ダウンロードを継続中のセッション（図９の例ではセッション２）数を表しており、Ｘ１〜Ｍは、現在ダウンロードしている画像データのダウンロード完了から、最終ページのダウンロード完了までの残り時間（図９の例ではＸ１）を表している。添え字は便宜上つけた各セッションの番号を示している。また、ＸＮは既にダウンロードが完了したセッションで最終ページのダウンロードにかかる時間（図９の例ではＸ２）を表している。
【００７９】
以上の処理により、情報処理端末がサーバコンピュータから最終ページに相当する画像データをダウンロードするときに、画像データを分割し、ダウンロード実行中の他のセッションに分割した画像データのダウンロード処理を割り当てる。これによって最終ページに相当する画像データを複数のセッションでダウンロードすることができ、セッションのリソースをより多く活用できるため、高速にダウンロードを行うことができる。
【００８０】
（実施例４）
本実施例のサーバコンピュータ１００は、実施例１〜３のように画像データを提供するだけでなくＰＤＬ（Ｐｒｉｎｔｅｒ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）で記述された印刷データも提供する。このような印刷データは画像データのようにプレビュー表示を行えない代わりに、プリンタにジョブ投入後の印刷処理が高速である。よって、本実施例では実施例１〜３で印刷データに変換するためにダウンロードしていた画像データはプレビューの用途のためにダウンロードし、その画像データとは別に印刷データもサーバコンピュータ１００からダウンロードするものとする。
【００８１】
また、本実施例では画像データと印刷データを同時にダウンロードするために、最初は画像データと印刷データを異なるセッションでダウンロードする。そして、いずれか一方のセッションでもう片方のセッションよりもダウンロードが早く完了してしまった場合であっても、効率良くダウンロードを行う手段について説明する。
【００８２】
図１３を用いてアプリケーション２２５による画像データと印刷データのダウンロード処理について説明する。なお、図１３の各ステップはアプリケーション２２５が行う。
【００８３】
まずＳ１３０１において、情報処理端末１１０からサーバコンピュータ１００にファイルをアップロードし、画像データと印刷データの作成指示を行う。
【００８４】
なお、Ｓ１３０１の作成指示を受けてサーバコンピュータ１００が作成する画像データは低解像度で、印刷データよりもファイルサイズが小さいものとする。
【００８５】
次にＳ１３０２において、アプリケーション２２５はサーバコンピュータ１００が作成した画像データと、印刷データをダウンロードするためのＵＲＬを取得する。アップロードするファイルによって、画像データは複数になる。以降は２つの画像データのＵＲＬと、１つの印刷データのＵＲＬ、合計３つのＵＲＬを取得する場合を例に説明する。
【００８６】
次にＳ１３０３において、印刷データのダウンロード範囲を分割する。範囲の指定にはｈｔｔｐヘッダのＲａｎｇｅ指定を用いる。
【００８７】
次にＳ１３０４において、画像データのＵＲＬを、１つのセッションのダウンロードキューに追加する。これを以降、セッション１と呼ぶ。次にＳ１３０５において、印刷データのＵＲＬを、Ｓ１３０４とは別のもう１つのセッションのダウンロードキューに追加する。これを以降、セッション２と呼ぶ。
【００８８】
このＳ１３０３〜Ｓ１３０５のダウンロード範囲の分割とダウンロードキューの処理は図１４、図１５を用いて詳しく説明する。
【００８９】
次にＳ１３０６において、アプリケーション２２５はダウンロードを開始し、Ｓ１３０４又はＳ１３０５で設定したダウンロードキューのいずれかが空になったかどうかを判定する。例えばセッション１のダウンロードキューが空になっていれば画像データのダウンロードは受信を完了している。セッション１のダウンロードキューが空である場合はＳ１３０７に進む。セッション２のダウンロードキューが空である場合はＳ１３０８に進む。どちらのダウンロードキューも空では無い場合はダウンロードを継続し、しばらくした後に再び判定を行う。
【００９０】
Ｓ１３０６においてセッション１のダウンロードキューが空である場合は、Ｓ１３０７において、セッション２のダウンロードキューから未ダウンロード（未受信）のＵＲＬを取得し、セッション１のダウンロードキューに追加しダウンロードを開始する。
【００９１】
Ｓ１３０６においてセッション２のダウンロードキューが空である場合は、Ｓ１３０８において、セッション１のダウンロードキューから未ダウンロード（未受信）のＵＲＬを取得し、セッション２のダウンロードキューに追加しダウンロードを開始する。
【００９２】
すなわち、Ｓ１３０６〜Ｓ１３０８の処理では、どちらかのダウンロードキューが空になったら、残りのダウンロードキューからＵＲＬを取得しダウンロードを開始する。これにより効率化を図る。本実施例では、画像データと印刷データのダウンロードキューを分けているため、各ダウンロードキューのダウンロードするファイルサイズに差が生まれやすく、どちらかのダウンロードキューが先に空になるという状況が起こりやすい。
【００９３】
次にＳ１３０９において、アプリケーション２２５はセッション１とセッション２の全てのダウンロードが完了したかを判定する。これはセッション１とセッション２の両方のダウンロードキューが空になったか否かにより判定を行う。両方のダウンロードキューが空の場合は処理を終了する。いずれか一方でも空ではない場合はＳ１３０６に戻る。
【００９４】
図１４は、情報処理端末１１０のセッション管理のデータ構造を示している。１４０１は、図１３のＳ１３０４、Ｓ１３０５で追加されたセッションごとのダウンロードキューをＸＭＬ構造で表している。また、前述の説明と同じく、セッション１、セッション２の２セッションが管理されている。そして、ダウンロードキュー１４０２はセッション１のダウンロードキューを表現し、ダウンロードキュー１４０３はセッション２のダウンロードキューを表現している。
【００９５】
セッション１のダウンロードキュー１４０２には、図１３のＳ１３０４により、画像データのＵＲＬが設定されている。２つある画像データのそれぞれのＵＲＬがリスト化され設定され、順次ダウンロード処理が行われる。ダウンロードキュー１４０２の場合、Ｌｉｓｔ＝１を最初にダウンロードし、次にＬｉｓｔ＝２をダウンロードする。
【００９６】
セッション２のダウンロードキュー１４０３には、図１３のＳ１３０５により、印刷データのＵＲＬが設定されている。印刷データはＳ１３０３において、ｈｔｔｐヘッダのＲａｎｇｅを使用してダウンロード範囲を分ける処理が施されているため、ダウンロードキュー１４０３の各Ｌｉｓｔはバイト単位でダウンロード範囲が設定されている。具体的にはＲａｎｇｅ：ｂｙｔｅ＝０−４９９のように記載されている。
【００９７】
ダウンロードキュー１４０３において、Ｌｉｓｔ＝１には印刷データの０から４９９ｂｙｔｅまでのダウンロード範囲、Ｌｉｓｔ＝２には印刷データの５００から９９９ｂｙｔｅまでのダウンロード範囲、Ｌｉｓｔ＝３には印刷データの１０００から１４９９ｂｙｔｅまでのダウンロード範囲が設定されている。
【００９８】
図１４ではセッション１にダウンロードキューは２つ、セッション２にダウンロードキューは３つ積まれている。ここでアプリケーション２２５は、セッション１のダウンロードキューに含まれる２つの画像データをダウンロードし終え、ダウンロードキューが空になった状態とする。また、アプリケーション２２５は、セッション２のダウンロードキューのＬｉｓｔ＝１の印刷データをダウンロードし終え、Ｌｉｓｔ＝２の印刷データをダウンロード途中であるとする。その結果、セッション２のダウンロードキューにはダウンロード途中のＵＲＬと未ダウンロードのＵＲＬの残り２つの印刷データのＵＲＬが含まれている状態である。ここでＳ１３０６においてセッション１のダウンロードキューが空になったと判断し、Ｓ１３０７において、セッション２のダウンロードキューに残っているＬｉｓｔ＝３をセッション１のダウンロードキューに移すことになる。
【００９９】
図１５は図１３のＳ１３０７において、セッション２のダウンロードキューに残された印刷データのＵＲＬをセッション１のダウンロードキューにうつした後の状態を示している。
【０１００】
本実施例ではこのように、データの種類別にセッションを用意し、データの種類ごとにダウンロードキューを作る。そして１ファイルのデータ量が多い方（前述の例では印刷データ）はダウンロード範囲を分割することで、ダウンロードキュー間の移動を容易にしている。そして、各セッションのダウンロードキューが空になったタイミングで、別のセッションのダウンロードキューのデータを空になったダウンロードキューに追加することによって、効率良くダウンロードを行うことができる。
【０１０１】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2016033765.tif 000005
【図２】
2016033765.tif 000006
【図３】
2016033765.tif 000007
【図４】
2016033765.tif 000008
【図５】
2016033765.tif 000009
【図６】
2016033765.tif 000010
【図７】
2016033765.tif 000011
【図８】
2016033765.tif 000012
【図９】
2016033765.tif 000013
【図１０】
2016033765.tif 000014
【図１１】
2016033765.tif 000015
【図１２】
2016033765.tif 000016
【図１３】
2016033765.tif 000017
【図１４】
2016033765.tif 000018
【図１５】
2016033765.tif 000019