(57)【要約】【課題】印刷制御装置から直接画像形成装置に通信できないネットワーク環境下においても、ユーザ装置からのリクエストに応じた印刷制御を実行することができる印刷制御装置を提供する。【解決手段】プリントサーバ１０４が、クライアント端末１０１からプリンタ１０７に対する印刷制御要求を受信する。プリントサーバ１０４は、プリンタ１０７に対する前回の印刷制御指示方式がプル型である場合に、今回の印刷制御指示方式をプル型に決定し、クライアント端末１０１を介してプリンタ１０７に対する印刷制御指示を行う。【選択図】図１
2012150534.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して、ユーザ装置が備えるＷｅｂブラウザから、画像形成装置が実行する印刷処理の制御に関する要求である印刷制御要求を受信する印刷制御要求受信手段と、
前記ネットワークを介して、前記印刷制御要求に対応する制御指示を前記画像形成装置に対して行う制御指示手段とを備え、
前記制御指示手段は、過去に成功した前記画像形成装置に対する制御指示の方式の履歴情報を参照して、該履歴情報が示す、過去に成功した前記画像形成装置に対する制御指示の方式と同じ方式で該画像形成装置に対する制御指示を行う
ことを特徴とする印刷制御装置。
【請求項２】
前記制御指示手段は、前記過去に成功した前記画像形成装置に対する制御指示の方式が、該制御指示手段が直接画像形成装置に対して制御指示する第１の方式である場合に、今回の制御指示を前記第１の方式で行い、前記過去に成功した前記画像形成装置に対する制御指示の方式が、該制御指示手段が前記Ｗｅｂブラウザを介して前記画像形成装置に対して制御指示する第２の方式である場合に、今回の制御指示を前記第２の方式で行う
ことを特徴とする請求項１に記載の印刷制御装置。
【請求項３】
前記制御指示手段は、
前記印刷制御要求が第１の画像形成装置が実行中の印刷処理の中止と第２の画像形成装置による該印刷処理の実行とを求める要求を含む場合に、前記第１の画像形成装置に対して印刷処理の中止を指示するとともに、過去に成功した前記第２の画像形成装置に対する制御指示の方式の履歴情報が前記第２の方式を示すかを判断し、
前記履歴情報が前記第２の方式を示す場合に、前記Ｗｅｂブラウザを介して前記第２の画像形成装置に対して印刷処理の実行を指示する
ことを特徴とする請求項２に記載の印刷制御装置。
【請求項４】
ネットワークを介して、ユーザ装置が備えるＷｅｂブラウザから、画像形成装置が実行する印刷処理の制御に関する要求である印刷制御要求を受信する印刷制御要求受信工程と、
前記ネットワークを介して、前記印刷制御要求に対応する制御指示を前記画像形成装置に対して行う制御指示工程とを有し、
前記制御指示工程は、過去に成功した前記画像形成装置に対する制御指示の方式の履歴情報を参照して、該履歴情報が示す、過去に成功した前記画像形成装置に対する制御指示の方式と同じ方式で該画像形成装置に対する制御指示を行う
ことを特徴とする印刷制御方法。
【請求項５】
請求項４に記載の印刷制御方法をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷制御装置、印刷制御方法およびコンピュータプログラムに関する。
【背景技術】
【０００２】
インターネット上のサーバにて動作する各種アプリケーションを用いたサービス（クラウドサービス）を利用可能な、クラウドコンピューティングシステムと呼ばれる技術が提案されている。クラウドサービスが普及しているビジネス環境下で、印刷制御装置として機能するプリントサーバも、インターネット上のプリントサービスとしての機能を提供することが求められている。
【０００３】
すなわち、大規模なデータセンター上に配置されたプリントサーバを用いて、クラウドサービスとしてプリントサービスを提供する印刷システムが考えられる。このような印刷システムでは、顧客ごとのハードウェアの管理が不要となる。また、サーバの負荷に応じてリソースを容易に追加することができる。このため、近年、プリントサーバから直接プリンタへ印刷データを送信する従来のプッシュ型のプリント方式に加え、プル型のプリント方式が利用されている。プル型のプリント方式は、プリンタが、プリントサーバからインターネットおよびブラウザを経由して印刷データを取得するプリント方式である。従って、プル型のプリンタ制御でプッシュ型のプリンタ制御と同等の機能を実現する印刷システムが望まれている。
【０００４】
イントラネット内にプリントサーバとプリンタが存在する従来の印刷システムでは、プリントサーバは、プッシュ型のプリント方式に従ってプリンタ制御コマンドを送信することで、ユーザのリクエストに応じたプリンタの制御（印刷中止、印刷停止等）を行う。
【０００５】
なお、特許文献１は、共にサーバ手順、ブラウザ手順を持つクライアント端末とネットワークプリンタとがＨＴＴＰを用いて通信するネットワークプリンタの制御方法を開示している。ＨＴＴＰは、ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌの略称である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−０２４８７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、インターネット上でクラウドサービスを提供する印刷システムでは、プリントサーバ（印刷制御装置）とプリンタ（画像形成装置）とが、ファイアウォール越しに配置されている場合、以下の問題がある。すなわち、印刷制御装置は、ファイアウォールを越えて画像形成装置に通信することができないので、直接画像形成装置へ印刷制御指示をすることができない。従って、ユーザ装置からの印刷制御リクエスト（印刷中止、印刷停止等）があっても、印刷制御装置は、画像形成装置へ印刷制御指示を行うことができない。
【０００８】
また、特許文献１が開示する技術では、クライアント端末とネットワークプリンタそれぞれが、サーバ／クライアントの役割を果たすことで、双方向通信をする必要がある。しかし、クライアント端末とネットワークプリンタとの間にファイアウォールが設けられている環境の下では、クライアント端末とネットワークプリンタとの通信自体ができない場合がある。この場合に、ファイアウォールの外部ポートを開放すると、ネットワークのセキュリティレベルを下げてしまうおそれがある。
【０００９】
本発明は、印刷制御装置から直接画像形成装置に通信できないネットワーク環境下においても、ユーザ装置からのリクエストに応じた印刷制御を実行する印刷制御装置の提供を目的とする。
【課題を解決するための手段】
【００１０】
本発明の一実施形態の印刷制御装置は、ネットワークを介して、ユーザ装置が備えるＷｅｂブラウザから、画像形成装置が実行する印刷処理の制御に関する要求である印刷制御要求を受信する印刷制御要求受信手段と、前記ネットワークを介して、前記印刷制御要求に対応する制御指示を前記画像形成装置に対して行う制御指示手段とを備える。前記制御指示手段は、過去に成功した前記画像形成装置に対する制御指示の方式の履歴情報を参照して、該履歴情報が示す、過去に成功した前記画像形成装置に対する制御指示の方式と同じ方式で該画像形成装置に対する制御指示を行う。
【発明の効果】
【００１１】
本発明の印刷制御装置によれば、ファイアウォールによってアクセスが制限されたエリアに配置され、印刷制御装置から直接通信できない画像形成装置に対しても、Ｗｅｂブラウザを介して印刷制御指示を行うことができる。これにより、ファイアウォールの外部ポートを開放することなく、セキュリティを維持したまま画像形成装置に対する印刷制御をすることができる。
【図面の簡単な説明】
【００１２】
【図１】本実施形態の印刷システムの全体構成例を示す図である。
【図２】本実施形態の印刷システムのハードウェア構成例を示す図である。
【図３】本実施形態の印刷システムの機能を説明する図である。
【図４】プリントサーバとプルプリントアプリケーションの詳細な構成例である。
【図５】Ｗｅｂブラウザが表示するＵＩ画面の例を説明する図である。
【図６】印刷制御処理を説明するシーケンス図の例である
【図７】プリントサーバの動作処理を説明するフローチャートである。
【図８】Ｗｅｂブラウザとプリンタの動作処理例を説明する図である。
【図９】印刷制御処理を説明するシーケンス図の例である。
【図１０】Ｗｅｂページのｈｔｍｌ構成を示す図である。
【図１１】プリントサーバの動作処理を説明するフローチャートである。
【図１２】Ｗｅｂブラウザの動作処理例を説明するフローチャートである。
【図１３】プリンタの動作処理例を説明するフローチャートである。
【発明を実施するための形態】
【００１３】
図１は、本実施形態の印刷システムの全体構成例を示す図である。図１に示す印刷システムは、複数のクライアント端末（１０１乃至１０３）、プリントサーバ１０４、複数のプリンタ（１０５乃至１０８）を備える。
【００１４】
プリントサーバ１０４は、本実施形態の印刷制御装置である。また、プリンタは、本実施形態の画像形成装置である。プリントサーバ１０４とクライアント端末とプリンタとは、ネットワーク（１０９乃至１１１）を介して接続されている。もちろん、クライアント端末、プリンタがそれぞれ１台であってもよい。クライアント端末１０１乃至１０３は、同様の構成を有する。また、プリンタ１０５乃至１０８は、同様の構成を有する。
【００１５】
ネットワーク１０９乃至１１１は、例えば、インターネット等のＬＡＮ（Local Area
Network）、ＷＡＮ（World Wide Network）である。ネットワーク１０９乃至１１１が、電話回線、専用デジタル回線、ＡＴＭ（Asynchronous Transfer Mode）回線、フレームリレー回線、ケーブルテレビ回線、データ放送用無線回線等の通信ネットワークであってもよい。この通信ネットワークが、これらの回線の組み合わせによって実現されるものであってもよい。また、クライアント端末からプリントサーバ１０４とプリンタへの通信手段と、プリンタからプリントサーバ１０４への通信手段が異なっていてもよい。
【００１６】
クライアント端末は、ユーザが操作するユーザ装置である。クライアント端末は、例えば、デスクトップパソコン、ノートパソコン、モバイルパソコン、ＰＤＡ（Personal Digital Assistants）等である。クライアント端末が、プログラムの実行環境が内蔵された携帯電話であってもよい。クライアント端末には、Ｗｅｂブラウザを備える。Ｗｅｂブラウザは、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂの利用に供するブラウザである。このＷｅｂブラウザは、ネットワーク１０９を介して、プリントサーバ１０４に対して、印刷制御要求を送信する。
【００１７】
印刷制御要求は、プリンタが実行する印刷処理の制御に関する要求である。印刷制御要求は、例えば、印刷処理を求める印刷要求、印刷処理の中止を求める印刷中止要求、印刷先のプリンタの変更を求める印刷先変更要求を含む。また、印刷先変更要求は、第１のプリンタが実行中の印刷処理の中止と第２のプリンタによる該印刷処理の実行とを求める要求を含む。
【００１８】
クライアント端末は、外部からのアクセスが制限されたローカルエリアに配置されており、ネットワーク１０９からファイアウォールで遮断されている。また、プリンタのいずれかは、外部からのアクセスが制限されたローカルエリアに配置されており、ネットワーク１０９からファイアウォールで遮断されている。
【００１９】
プリントサーバ１０４は、クライアント端末のＷｅｂブラウザから印刷制御要求を受けると、この印刷制御要求に対応するプリンタに対して、印刷制御指示を行う。プリンタは、プリントサーバ１０４から受けた印刷制御指示に従った動作を実行する。
【００２０】
本実施形態において、プリントサーバは、クラウドに設けられている。クラウドとは、クラウドコンピューティング環境におけるサーバ群が配置される領域のことである。クラウドコンピューティング環境においては、ユーザはコンピュータ処理をネットワーク経由でサービスとして利用する。クラウドに設けられたプリントサーバ１０４から発する要求によりファイアウォール内部にアクセスすることはできない。従って、プリントサーバ１０４は、クライアント端末からの要求の応答を返すことによって、クライアント端末に対して通信を行う。
【００２１】
また、プリントサーバ１０４は、ネットワーク１０９からファイアウォールで遮断されているプリンタに対しては、印刷制御要求をしたクライアント端末を介して印刷制御指示を行う。以下では、クライアント端末経由でプリントサーバからプリンタに対して印刷制御指示を行う印刷制御指示方式をプル型の印刷制御指示方式と記述する。また、プリントサーバ１０４から直接画像形成装置（プリンタ）に対して印刷制御指示を行う印刷制御指示方式をプッシュ型の印刷制御指示方式と記述する。
【００２２】
プリントサーバ１０４は、ネットワーク１０９からファイアウォールで遮断されていないプリンタに対しては、プリントサーバ１０４から発する要求により直接印刷制御指示を行うことができる。本実施形態の印刷制御方法は、図１に示す印刷システムによって実現される。また、本実施形態のコンピュータプログラムは、この印刷制御方法をコンピュータに実行させる。
【００２３】
図２は、本実施形態の印刷システムのハードウェア構成例を示す図である。図２では、プリントサーバ１０４、クライアント端末１０１、プリンタ１０７のハードウェア構成例について説明する。なお、クライアント端末のハードウェア構成は、プリントサーバ１０４のハードウェア構成と同様である。
【００２４】
プリントサーバ１０４は、ＣＰＵ２０２、ＲＡＭ２０３、ＲＯＭ２０４、ＨＤＤ２０５、ディスプレイ２０６、キーボード２０７、インタフェース２０８を備える。ＣＰＵは、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略称である。ＲＯＭは、Ｒｅａｄ
Ｏｎｌｙ  Ｍｅｍｏｒｙの略称である。ＨＤＤは、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略称である。ＣＰＵ２０２乃至インタフェース２０８は、システムバス２０１に接続されている。
【００２５】
ＣＰＵ２０２は、装置全体の制御を行う。ＣＰＵ２０２は、ＨＤＤ２０５に格納されているアプリケーションプログラム、ＯＳ等を実行し、ＲＡＭ２０３にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。ＯＳは、Ｏｐｅｒａｔｉｎｇ
Ｓｙｓｔｅｍの略称である。
【００２６】
ＲＯＭ２０４は、基本Ｉ／Ｏ（Input/Output）プログラム等のプログラム、印刷処理の際に使用する印刷データ、プリンタ情報等の各種データを記憶する。ＲＡＭ２０３は一時記憶手段であり、ＣＰＵ２０２の主メモリ、ワークエリア等として機能する。ＨＤＤ２０５は、外部記憶手段であり、大容量メモリとして機能する。ＨＤＤ２０５は、Ｗｅｂブラウザ等のアプリケーションプログラム、プリントサーバプログラム、ＯＳ、関連プログラム等を予め記憶している。
【００２７】
ディスプレイ２０６は、表示手段である。ディスプレイは、キーボード２０７から入力したコマンドや、プリンタのステータス等を表示する。外部装置Ｉ／Ｆ（Interface）２０８は、プリンタ、ＵＳＢ機器、周辺機器を接続する。キーボードは、ユーザ操作に従って入力情報を入力する。ＵＳＢは、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓの略称である。
【００２８】
プリンタ１０７は、コントローラ２０９、ＮＩＣ（Network Interface Card）２１９、プリントエンジン２２０、操作パネル２２１、外部メモリ２２３を備える。コントローラ２０９は、プリンタ１０７全体を制御する。ＮＩＣ２１９は、コントローラ２０９と外部装置とのデータのやりとりを媒介する。プリントエンジン２２０は、コントローラ２０９の指示に従って、印刷処理を実行する。プリントエンジン２２０は、例えば、電子写真方式（レーザービーム方式）やインクジェット方式、昇華型（熱転写）方式のプリントエンジン２２０である。
【００２９】
操作パネル２２１は、ユーザ操作に従った情報を入力する。操作パネル２２１は、例えば、プルプリントの操作を行うユーザインタフェースやプルプリント切り替えボタンを備える。また、操作パネル２２１は、例えば、プリンタの動作モード等の設定やプリンタの動作状況の表示、複写指定等の操作を行うためのボタンおよび液晶パネルを備える。操作パネル２２１が、ＬＥＤ（Light Emitting Diode）２１４等の表示部を備えていてもよい。外部メモリ２１３は、大容量メモリとして機能する。外部メモリ２１３は、例えば、プルプリントアプリケーションプログラム及び関係プログラム等を予め記憶する。
【００３０】
コントローラ２０９は、ＣＰＵ２１０、ＲＡＭ、ＲＯＭ、ＨＤＤ、ＬＥＤ、ラスタコントローラ２１５、ＤＫＣ（Disk Controller）２１６、機器Ｉ／Ｆ２１７を備える。ＤＫＣは、Ｄｉｓｋ  Ｃｏｎｔｒｏｌｌｅｒの略称である。
【００３１】
ＣＰＵ２１０は、装置全体の制御を行う。ＣＰＵ２１０は、例えば、システムバス２１８に接続される各種デバイスとのアクセスを統括的に制御する。この制御は、ＲＯＭ２１２に記憶された制御プログラム等あるいはＤＫＣ２１６を介して接続された外部メモリ２２３に記憶された制御プログラムやリソースデータ（資源情報）等に基づく。
【００３２】
ＲＡＭ２１１は、ＣＰＵ２１０の主メモリ、ワークエリア等として機能する。ＲＡＭ２１１は、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。ラスタコントローラ２１５は、印刷データを画像データに変換するコントローラである。印刷データは、例えば、ＰＤＬ（Page Description Language）、ＰＤＦ（Portable Document Format）で記述されている。機器Ｉ／Ｆ２１７は、ＵＳＢ等で接続可能な外部機器との接続Ｉ／Ｆである。
【００３３】
図３は、本実施形態の印刷システムの機能を説明する図である。図３中のプリンタ１０７は、ファイアウォールによって、プリントサーバ１０４からのアクセスが制限されているローカルエリアに配置されている。従って、プリンタ１０７は、プル型の印刷制御指示方式に対応する機能を有する。プリントサーバ１０４は、Ｗｅｂアプリケーション３０２、Ｗｅｂサービス３０３、プリンタ管理サービス３０５、印刷ジョブ管理サービス３０６を備える。
【００３４】
Ｗｅｂアプリケーション３０２は、ネットワークを介して、クライアント端末１０１が備えるＷｅｂブラウザ３０１から印刷制御要求（リクエスト）を受ける印刷制御要求受信手段として機能する。また、Ｗｅｂアプリケーション３０２は、Ｗｅｂブラウザ３０１から受けたリクエストの認証処理を認証サービス３０８に依頼する。Ｗｅｂアプリケーション３０２は、認証サービス３０８による認証が成功したリクエストをセッションとして管理する。
【００３５】
また、Ｗｅｂアプリケーション３０２は、印刷制御要求に応答して、ユーザが印刷制御要求に応じた操作を行うＵＩ画面（後述するジョブ一覧画面、プリンタ一覧画面）に対応するＷｅｂページを生成する。Ｗｅｂアプリケーション３０２は、生成したＷｅｂページを、ネットワークを介して、プリンタ１０７に対する印刷制御指示を行うスクリプト（印刷制御指示スクリプト）とともに、Ｗｅｂブラウザ３０１に対して送信する。これにより、Ｗｅｂアプリケーション３０２は、Ｗｅｂブラウザ３０１に、プリンタ１０７への印刷制御指示を行わせる。すなわち、Ｗｅｂアプリケーション３０２は、ネットワークを介して、印刷制御要求に対応する制御指示をプリンタ１０７に対して行う制御指示手段として機能する。
【００３６】
印刷制御指示スクリプトは、例えば、印刷処理を指示する印刷指示スクリプト、印刷処理の中止を指示する印刷中止スクリプトを含む。Ｗｅｂブラウザ３０１は、Ｗｅｂアプリケーションから受けたＷｅｂページに基づいてＵＩ画面を表示する。また、Ｗｅｂブラウザ３０１は、Ｗｅｂアプリケーションから受けた印刷制御指示スクリプトに対応する印刷制御指示をプリンタ１０７に対して行う。具体的には、Ｗｅｂブラウザ３０１は、印刷制御指示に応じたコマンド（印刷制御コマンド）をプリンタ１０７に送信する。印刷制御コマンドは、例えば、印刷コマンド、印刷中止コマンド等である。
【００３７】
例えば、Ｗｅｂブラウザ３０１が、印刷指示スクリプトを受けると、プリンタ１０７のプルプリントアプリケーション３０４に対して印刷指示を行う。そして、プルプリントアプリケーション３０４は、Ｗｅｂブラウザ３０１から印刷指示を受けると、プリントサーバ１０４のＷｅｂサービス３０３に対して印刷ジョブ取得要求（リクエスト）を行う。印刷ジョブ取得要求は、当該印刷指示に応じた印刷ジョブの送信を求める要求である。
【００３８】
Ｗｅｂサービス３０３は、プルプリントアプリケーション３０４から印刷ジョブ取得要求を受けると、印刷ジョブを取得してプルプリントアプリケーション３０４に返す。また、Ｗｅｂサービス３０３は、プルプリントアプリケーション３０４から印刷ジョブのステータス（実行状態）を受け取る。印刷ジョブのステータスは、例えば、プリンタの名称と、このプリンタが印刷処理対象とする文書（ドキュメント）名とに対応付けられている。以下では、印刷ジョブのステータスを印刷ステータスと記述する。プリンタ管理サービス３０５は、プリントサーバ１０４とネットワークを介して接続されたプリンタを管理する。具体的には、プリンタ管理サービス３０５は、各々のプリンタに対応するプリンタ情報を管理する。プリンタ情報については、図４（Ｃ）を参照して後述する。
【００３９】
印刷ジョブ管理サービス３０６は、印刷ジョブを管理する。印刷ジョブ管理サービス３０６は、プリントサーバ１０４が備える所定の処理部から投入される文書データ等を、印刷ジョブに対応する印刷データとしてストレージ３０７に記憶して管理する。ストレージ３０７は、プリントサーバ１０４が内蔵するＨＤＤ、プリントサーバ１０４に外部接続しているＨＤＤ、またはネットワークストレージ等の記憶装置である。
【００４０】
図４は、プリントサーバとプルプリントアプリケーションの詳細な構成例を説明する図である。図４（Ａ）は、プリントサーバ１０４の詳細な構成例を示す。プリントサーバ１０４が備える印刷ジョブ管理サービス３０６は、印刷データ管理部４０１、印刷ジョブ情報管理部４０２を備える。プリンタ管理サービス３０５は、プリンタ情報管理部４０３を備える。Ｗｅｂアプリケーション３０２は、セッション管理部４０４、ページ生成部４０５、リクエスト受付部４０６を備える。Ｗｅｂサービス３０３は、印刷ジョブ取得部４０７、印刷ステータス受信部４０８、リクエスト受付部４０９を備える。
【００４１】
印刷データ管理部４０１は、印刷データを管理する。印刷データ管理部４０１は、Ｗｅｂサービス３０３の印刷ジョブ取得部４０７から印刷データの取得リクエストを受け取り、ストレージ３０７から指定の印刷データを取得し、印刷ジョブ取得部４０７に渡す。
【００４２】
印刷ジョブ情報管理部４０２は、ストレージ３０７で管理している印刷データに対応する印刷ジョブの情報（印刷ジョブ情報）を管理する。印刷ジョブ情報は、印刷データを識別するジョブ識別ＩＤ、ドキュメント名、ＰＤＬやＰＤＦ等のデータフォーマットを識別するジョブ種類を含む。また、印刷ジョブ情報は、印刷ジョブに対応するプリンタ名、印刷ステータス、受付日時、最終印刷日時、ユーザ名、ページ数、ページサイズ、印刷データのリンク先等の情報を含む。印刷ステータスは、例えば、待機中、転送中、印刷中、キャンセル中、正常終了、キャンセル終了、エラー終了等のステータスを含む。
【００４３】
プリンタ管理サービス３０５のプリンタ情報管理部４０３は、図４（Ｃ）に示すプリンタ情報を管理する。例えば、プリンタ情報管理部４０３は、Ｗｅｂサービス３０３の印刷ステータス受信部４０８から印刷ステータス、プリンタステータスを受信し、受信した印刷ステータス、プリンタステータスをプリンタ情報に設定して管理する。プリンタステータスは、プリンタの状態（例えば、ワーニング状態、正常状態等）を示す。また、プリンタ情報管理部４０３は、プリンタ情報に設定した印刷ステータスを印刷ジョブ情報管理部４０２に渡して、この印刷ステータスを印刷ジョブ情報に反映させる。
【００４４】
Ｗｅｂアプリケーション３０２がＷｅｂブラウザ３０１から印刷制御要求を受け付けると、Ｗｅｂアプリケーション３０２は、印刷制御要求をプリンタ管理サービス３０５に通知する。印刷制御要求は、制御対象のプリンタを一意に識別する識別情報（プリンタ識別情報）を含む。プリンタ情報管理部４０３は、図４（Ｃ）に示すプリンタ情報が含むプリンタ識別情報に基づいて、制御対象のプリンタを検索して決定する。制御対象のプリンタの検索処理は、Ｗｅｂブラウザ３０１から印刷要求を発行したユーザと、プリンタ情報が含むユーザとが一致するプリンタに対してのみ行う。
【００４５】
Ｗｅｂアプリケーション３０２のセッション管理部４０４は、認証サービス３０８による認証が成功したＷｅｂブラウザ３０１からのリクエストをセッションとして管理する。ページ生成部４０５は、Ｗｅｂブラウザ３０１からのリクエストに応答して、図５（Ａ）に示すジョブ一覧画面６０１を表示するためのＷｅｂページを生成し、Ｗｅｂブラウザ３０１に返信する。リクエスト受付部４０６は、Ｗｅｂブラウザ３０１から印刷制御要求を受け付ける。
【００４６】
Ｗｅｂサービス３０３のリクエスト受付部４０９は、プルプリントアプリケーション３０４の印刷ジョブ取得部４１２から、印刷ジョブ取得要求、印刷ステータス、プリンタステータスを受け付ける。印刷ジョブ取得部４０７は、印刷ジョブ取得要求をリクエスト受付部４０９が受け付けた場合に、印刷ジョブ管理サービス３０６に印刷データの取得リクエストを出す。
【００４７】
印刷ジョブ取得部４０７は、印刷ジョブ管理サービス３０６の印刷データ管理部４０１から印刷データを受け取り、この印刷データを含む印刷ジョブを印刷ジョブ取得部４１２に返す。印刷ステータス受信部４０８は、リクエスト受付部４０９が印刷ステータス、プリンタステータスを受け付けた場合に、印刷ステータスをプリンタ管理サービス３０５のプリンタ情報管理部４０３に通知する。また、印刷ステータス受信部４０８は、リクエスト受付部４０９がプリンタステータスを受け付けた場合に、プリンタステータスをプリンタ情報管理部４０３に通知する。
【００４８】
図４（Ｂ）は、プルプリントアプリケーション３０４の詳細な構成例を示す。プルプリントアプリケーション３０４は、Ｗｅｂサービス受付部４１０、Ｗｅｂサービス送信部４１１、印刷ジョブ取得部４１２、プルプリントコントローラ４１３、機器監視部４１４、印刷制御部４１５、印刷ジョブ送信部４１６を備える。
【００４９】
Ｗｅｂサービス受付部４１０は、Ｗｅｂブラウザ３０１から印刷制御コマンドを受け付ける。Ｗｅｂサービス送信部４１１は、例えば、印刷ジョブ取得要求、印刷ステータス、プリンタステータスをＷｅｂサービス３０３のリクエスト受付部４０９に送信する。また、Ｗｅｂサービス送信部４１１は、当該印刷ジョブ取得要求に応答したＷｅｂサービス３０３の印刷ジョブ取得部４０７から印刷ジョブを受信して印刷ジョブ取得部４１２に渡す。
【００５０】
印刷ジョブ取得部４１２は、Ｗｅｂサービス受付部４１０が受け付けた印刷制御コマンドが印刷コマンドである場合、Ｗｅｂサービス送信部４１１を介して、Ｗｅｂサービス３０３のリクエスト受付部４０９に対して印刷ジョブ取得要求を行う。また、印刷ジョブ取得部４１２は、Ｗｅｂサービス３０３の印刷ジョブ取得部４０７から、Ｗｅｂサービス送信部４１１を介して印刷ジョブを受け取る。
【００５１】
印刷ジョブ送信部４１６は、印刷ジョブ取得部４１２が受け取った印刷ジョブが含む印刷データをコントローラ２０９（図２を参照）に渡す。印刷データを受け取ったコントローラ２０９は、印刷データを描画処理等して印刷出力する。印刷制御部４１５は、印刷ステータスをコントローラ２０９から受け取る。そして、印刷制御部４１５は、受け取った印刷ステータスを、Ｗｅｂサービス送信部４１１を介してＷｅｂサービス３０３のリクエスト受付部４０９に対して送信する。
【００５２】
機器監視部４１４は、プリントサーバ１０４またはＷｅｂブラウザ３０１からプリンタステータス取得要求を受ける。プリンタステータス取得要求は、プリンタステータスの送信を求める要求である。機器監視部４１４は、プリンタステータス取得要求に応答して、プリンタステータスをコントローラ２０９から取得し、Ｗｅｂサービス送信部４１１を介してＷｅｂサービス３０３のリクエスト取得部４０９に送信する。プルプリントコントローラ４１３は、プルプリントアプリケーション３０４全体の動作管理を行う。
【００５３】
図４（Ｃ）は、プリントサーバ１０４のプリンタ情報管理部４０３が管理するプリンタ情報の例を示す図である。プリンタ情報は、プリンタ名、プリンタ識別情報、ステータス、ユーザ、制御指示方式履歴を含む。プリンタ名は、プリンタの名称である。プリンタ識別情報は、プリンタの識別情報である。プリンタ識別情報は、例えば、ＩＰ（Internet Protocol）アドレスや、ＭＡＣ（Media Access Control）アドレスや、ＵＲＩ（Uniform Resource Identifier）等である。ステータスは、プリンタステータスと印刷ステータスを含む。
【００５４】
ステータスは、例えば、正常、用紙切れ、ジャム、カバーオープン、トナーなし、排紙ビンフル、ハードディスクフル、その他エラーを含む。また、ステータスは、例えば、ウォーミングアップ中、キャリブレーション中、初期化中、オフライン、スリープ中、印刷中、印刷可能、状態不明等のステータスを含む。ユーザは、Ｗｅｂブラウザ３０１を操作するユーザの識別情報である。印刷制御指示方式履歴は、プリントサーバからプリンタに対する、過去に成功した印刷制御指示方式の履歴情報である。印刷制御指示方式は、プル型の印刷制御指示方式、プッシュ型の印刷制御指示方式を含む。
【００５５】
図５は、Ｗｅｂブラウザが表示するＵＩ画面の例を説明する図である。本実施形態では、Ｗｅｂブラウザ３０１がプリントサーバ１０４に印刷制御要求を行うと、プリントサーバ１０４が、図５（Ａ）に示すＵＩ画面であるジョブ一覧画面６０１を生成するためのＷｅｂページを生成してＷｅｂブラウザ３０１に返す。具体的には、プリントサーバ１０４のＷｅｂアプリケーション３０２が、プリンタ情報管理部４０３が管理しているプリンタ情報に基づいて、Ｗｅｂページを生成する。Ｗｅｂブラウザ３０１は、このＷｅｂページに基づいて、ジョブ一覧画面６０１を生成して表示する。
【００５６】
ジョブ一覧画面６０１上には、プリントサーバ１０４に登録されている各ジョブに対応するドキュメント名６０３、そのジョブを実行するプリンタのプリンタ名６０４、印刷ステータス６０５が表示される。また、ジョブ一覧画面６０１上には、ユーザが制御したいジョブを選択するためのチェックボックス６０２と、各種リクエスト（印刷要求、印刷中止要求、印刷停止要求、印刷先変更要求等）の受付ボタン６０７乃至６１０が表示される。
【００５７】
ユーザが、制御対象のジョブに対応するチェックボックス６０２と、いずれかの受付ボタンを指定すると、Ｗｅｂブラウザ３０１が以下の処理を実行する。Ｗｅｂブラウザ３０１は、指定されたチェックボックス６０２に対応するジョブに関する、指定された受付ボタンに対応するリクエストをプリントサーバ１０４へ送信する。
【００５８】
印刷先のプリンタを変更する場合等、プリントサーバ１０４へのリクエストにプリンタの指定が必要な場合は、プリントサーバ１０４は、プリンタ一覧画面６１１に対応するＷｅｂページをＷｅｂブラウザ３０１に送信する。例えば、ユーザが、ジョブ一覧画面６０１上で、印刷処理を中止させるプリンタ（印刷中止対象プリンタ）を指定した上で印刷先変更ボタン６１０を押下げすると、Ｗｅｂブラウザ３０１が以下の処理を行う。Ｗｅｂブラウザ３０１は、プリンタ一覧画面６１１に対応するＷｅｂページの送信をプリントサーバ１０４に対して要求する。プリントサーバ１０４のＷｅｂアプリケーション３０２が、プリンタ情報に含まれるプリンタステータスに基づいて、プリンタ一覧画面６１１に対応するＷｅｂページを生成してＷｅｂブラウザ３０１に送信する。そして、Ｗｅｂブラウザ３０１が、プリントサーバ１０４から受け取ったＷｅｂページに基づいて、図５（Ｂ）に示すプリンタ一覧画面６１１を生成して表示する。
【００５９】
プリンタ一覧画面６１１上には、プリンタ名６１３、プリンタステータス６１４が表示される。ユーザが、プリンタ一覧画面６１１上で、対象プリンタに対応するチェックボックス６１２と、決定ボタン６１５を指示すると、Ｗｅｂブラウザ３０１が、以下の処理を実行する。Ｗｅｂブラウザ３０１は、チェックボックス６１２に対応するプリンタを変更先のプリンタとする印刷先変更要求をプリントサーバ１０４へ送信する。この印刷先変更要求は、印刷中止対象プリンタの印刷処理を中止させることを求める要求と、変更先のプリンタによる印刷処理の実行を求める要求とを含む。
【００６０】
図５（Ｃ）は、プリントサーバ１０４のＷｅｂアプリケーション３０２が生成するＷｅｂページのｈｔｍｌ構成例を示す。このＷｅｂページは、Ｈｅａｄｅｒ部、Ｂｏｄｙ部、Ｓｃｒｉｐｔ部を有する。Ｗｅｂアプリケーション３０２は、Ｈｅａｄｅｒ部にヘッダ情報を記述し、Ｂｏｄｙ部に、画面表示対象となるコンテンツの情報を記述する。また、Ｗｅｂアプリケーション３０２は、Ｓｃｒｉｐｔ部に、Ｗｅｂブラウザ３０１に実行させるスクリプトを記述する。例えば、Ｗｅｂブラウザ３０１がプリントサーバ１０４に対して印刷中止要求を送信すると、プリントサーバ１０４のＷｅｂアプリケーション３０２は、Ｓｃｒｉｐｔ部に印刷中止コマンド（スクリプト）を含むＷｅｂページを生成してＷｅｂブラウザに返す。Ｗｅｂアプリケーションが、このＷｅｂページに含まれる印刷中止スクリプトを実行することにより、印刷を中止させる対象となるプリンタに対して印刷中止指示を行う。
【００６１】
図６は、本発明の実施例１の印刷制御処理を説明するシーケンス図の例である。まず、クライアント端末１０１が備えるＷｅｂブラウザ３０１が、ジョブ一覧画面６０１上におけるユーザの指定に従って、印刷中止要求をプリントサーバ１０４に送る（Ｐ１）。
【００６２】
続いて、プリントサーバ１０４のＷｅｂアプリケーション３０２が、印刷中止要求に対応するプリンタ、すなわち印刷を中止させる対象となるプリンタ（この例ではプリンタ１０７）のプリンタ情報を参照する。そして、Ｗｅｂアプリケーション３０２は、プリンタ情報に含まれる印刷制御指示方式履歴を取得する。Ｗｅｂアプリケーション３０２は、取得した印刷制御指示方式履歴が含む前回の印刷制御指示方式を、今回の印刷制御指示方式すなわちプリンタ１０７に印刷中止指示をする方式として決定する（Ｐ２）。図６に示す例では、Ｗｅｂアプリケーション３０２は、今回の印刷制御指示方式をプル型の印刷制御指示方式に決定する。
【００６３】
次に、Ｗｅｂアプリケーション３０２は、印刷ジョブ管理サービス３０６の印刷ジョブ情報管理部４０２に指示して、当該プリンタ情報が含む印刷ステータスを「キャンセル中」に更新する。そして、Ｗｅｂアプリケーション３０２は、ジョブ一覧画面６０１に対応するＷｅｂページであって、印刷中止指示スクリプトを含むＷｅｂページを生成する（Ｐ３）。Ｗｅｂアプリケーション３０２は、Ｗｅｂブラウザ３０１が、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔのクロスドメイン通信機能を備えており、かつ、今回の印刷制御指示方式がプル型の印刷制御指示方式である場合に、Ｗｅｂページに印刷中止指示スクリプトを記述する。
【００６４】
次に、プリントサーバ１０４のＷｅｂアプリケーション３０２が、生成したＷｅｂページをＷｅｂブラウザ３０１に送信して、ジョブ一覧画面６０１を表示させる（Ｐ４）。続いて、Ｗｅｂブラウザ３０１が、ジョブ一覧画面６０１を表示するとともに、Ｗｅｂページに記述されている印刷中止指示スクリプトを実行して、プリンタ１０７に対して印刷中止コマンドを送信する（Ｐ５）。印刷中止コマンドは、印刷ジョブの中止を指示する。
【００６５】
プリンタ１０７は、印刷中止コマンドを受けると、印刷中止コマンドの指示に従って印刷ジョブを中止する（Ｐ６）。そして、プリンタ１０７のプルプリントアプリケーション３０４が、プリントサーバ１０４に対して、印刷中止完了通知を行う（Ｐ７）。
【００６６】
プリントサーバ１０４が印刷中止完了通知を受けると、Ｗｅｂアプリケーション３０２が、中止したジョブの印刷ステータスを更新する。また、Ｗｅｂアプリケーション３０２は、プリンタ１０７に対応するプリンタ情報内の印刷制御指示方式履歴を、今回の印刷制御指示方式で更新する（Ｐ８）。なお、図６では、Ｗｅｂブラウザ３０１が印刷中止要求を行った場合のシーケンス処理例を説明したが、Ｗｅｂブラウザ３０１が印刷停止要求を行った場合にも、図６を参照して説明したシーケンス処理と同様のシーケンス処理が行われる。
【００６７】
図７は、実施例１におけるプリントサーバの動作処理を説明するフローチャートである。図７では、プリントサーバ１０４が、Ｗｅｂブラウザ３０１からプリンタ１０７を印刷中止対象とする印刷中止要求を受けた場合の動作処理を例にとって説明する。
【００６８】
まず、プリントサーバ１０４のＷｅｂアプリケーション３０２が、プリンタ情報管理部４０３から、プリンタ１０７に対応するプリンタ情報が含む印刷制御指示方式履歴を取得する（ステップＳ１）。Ｗｅｂアプリケーション３０２は、取得した印刷制御指示方式履歴を参照して、前回の印刷制御指示方式がプッシュ型またはプル型のいずれであるかを判断する（ステップＳ２）。前回の印刷制御指示方式がプッシュ型である場合、Ｗｅｂアプリケーション３０２は、今回の印刷制御指示方式をプッシュ型の印刷制御指示方式に決定し、プリンタ１０７に対して直接印刷中止指示を行う（ステップＳ１０）。具体的には、Ｗｅｂアプリケーション３０２が、プリンタ１０７に対して印刷中止コマンドを送信する。
【００６９】
なお、Ｗｅｂアプリケーション３０２が印刷制御指示方式履歴を取得できていない場合にも、Ｗｅｂアプリケーション３０２は、プリンタ１０７に対して直接印刷中止指示を行う。続いて、Ｗｅｂアプリケーション３０２が、印刷中止コマンドの送信が成功したかを判断する（ステップＳ１１）。印刷中止コマンドの送信が失敗した場合は、ステップＳ３に進む。印刷中止コマンドの送信が成功した場合、印刷ジョブ管理サービス３０６の印刷ジョブ情報管理部４０２が、印刷ジョブ情報内の印刷ステータスを「キャンセル中」に変更する。そして、Ｗｅｂアプリケーション３０２が、ジョブ一覧画面６０１に対応するＷｅｂページを生成して（ステップＳ１２）、ステップＳ５に進む。
【００７０】
ステップＳ２の判断処理において、前回の印刷制御指示方式がプル型である場合、Ｗｅｂアプリケーション３０２は、今回の印刷制御指示方式をプル型の印刷制御指示方式に決定する。そして、Ｗｅｂアプリケーション３０２は、予め記憶手段に記憶されたＷｅｂブラウザ３０１の機能に関する情報に基づいて、Ｗｅｂブラウザ３０１がＪａｖａ（登録商標）Ｓｃｒｉｐｔのクロスドメイン通信機能を有するかを判断する（ステップＳ３）。Ｗｅｂブラウザ３０１がＪａｖａ（登録商標）Ｓｃｒｉｐｔのクロスドメイン通信機能を有しない場合、印刷中止エラーとする（ステップＳ１３）。そして、印刷ジョブ情報管理部４０２が、印刷ジョブ情報が含む印刷ステータスをエラー終了に更新する（ステップＳ９）。
【００７１】
Ｗｅｂブラウザ３０１がＪａｖａ（登録商標）Ｓｃｒｉｐｔのクロスドメイン通信機能を有する場合、Ｗｅｂアプリケーション３０２は、印刷ジョブ情報内の印刷ステータスを「キャンセル中」に変更する。そして、Ｗｅｂアプリケーション３０２は、ジョブ一覧画面６０１に対応するＷｅｂページであって、印刷中止指示スクリプトを含むＷｅｂページを生成する（ステップＳ４）。
【００７２】
次に、Ｗｅｂアプリケーション３０２が、Ｗｅｂブラウザ３０１に対してジョブ一覧画面６０１に対応するＷｅｂページを送信する（ステップＳ５）。Ｗｅｂブラウザ３０１は、このＷｅｂページに応じたジョブ一覧画面６０１を表示するとともに、このＷｅｂページが含む印刷中止指示スクリプト実行する。すなわち、Ｗｅｂブラウザ３０１は、プリンタ１０７に対して印刷中止コマンドを送信する。そして、プリンタ１０７が、Ｗｅｂブラウザ３０１から受けた印刷中止コマンドに従って、印刷中止処理を実行する。プリンタ１０７は、印刷中止処理を完了すると、Ｗｅｂアプリケーション３０２に対して、印刷中止処理完了通知を行う。印刷中止処理完了通知は、印刷中止処理が完了したことを示す通知であって、印刷中止処理が成功したことを示す情報または失敗したことを示す情報を含む。
【００７３】
次に、Ｗｅｂアプリケーション３０２が、プリンタ１０７から印刷中止処理完了通知を受けたかを判断する（ステップＳ６）。プリンタ１０７から印刷中止処理完了通知を受けていない場合は、ステップＳ６に戻る。プリンタ１０７から印刷中止処理完了通知を受けた場合、Ｗｅｂアプリケーション３０２は、印刷中止処理完了通知が含む情報に基づいて、印刷中止処理が成功したかを判断する（ステップＳ７）。
【００７４】
Ｗｅｂアプリケーション３０２が、印刷中止処理が失敗したと判断した場合は、ステップＳ１３に進む。Ｗｅｂアプリケーション３０２が、印刷中止処理が成功したと判断した場合、Ｗｅｂアプリケーション３０２は、プリンタ情報管理部４０３に指示して、今回の印刷制御指示方式でプリンタ情報内の印刷制御指示方式履歴を更新する（ステップＳ８）。そして、印刷ジョブ管理サービス３０６の印刷ジョブ情報管理部４０２が、印刷ジョブ情報が含む印刷ステータスをキャンセル終了に更新する（ステップＳ９）。
【００７５】
図７を参照して説明したことから、Ｗｅｂアプリケーション３０２は、印刷制御指示方式履歴を参照して、過去に成功したプリンタ１０７に対する印刷制御指示方式と同じ方式でプリンタ１０７に対する印刷制御指示を行う。具体的には、Ｗｅｂアプリケーション３０２は、過去に成功したプリンタ１０７に対する印刷制御指示方式が、プッシュ型の印刷制御指示方式（第１の方式）である場合に、今回の印刷制御指示を第１の方式で行う（Ｓ１０を参照）。また、Ｗｅｂアプリケーション３０２は、過去に成功したプリンタ１０７に対する印刷制御指示方式が、プル型の印刷制御指示方式（第２の方式）である場合に、今回の印刷制御指示を第２の方式で行う。
【００７６】
実施例１のプリントサーバ１０４によれば、ファイアウォールによってアクセスが制限されたエリアに配置され、プリントサーバ１０４から直接通信できないプリンタに対しても、Ｗｅｂブラウザを介して印刷制御指示を行うことができる。これにより、ファイアウォールの外部ポートを開放することなく、セキュリティを維持したままプリンタに対する印刷制御をすることができる。
【００７７】
図８は、実施例１におけるＷｅｂブラウザとプリンタの動作処理例を説明するフローチャートである。図８（Ａ）は、Ｗｅｂブラウザ３０１の動作処理例を説明するフローチャートである。Ｗｅｂブラウザ３０１が、プリントサーバ１０４のＷｅｂアプリケーション３０２から受信したＷｅｂページに対応するジョブ一覧画面６０１を表示する（ステップＳ２１）。
【００７８】
次に、Ｗｅｂブラウザ３０１が、Ｗｅｂページに印刷中止指示スクリプトが含まれているかを判断する（ステップＳ２２）。Ｗｅｂページに印刷中止指示スクリプトが含まれていない場合は、処理を終了する。Ｗｅｂページに印刷中止指示スクリプトが含まれている場合、Ｗｅｂブラウザ３０１は、印刷中止指示スクリプトを実行する（ステップＳ２３）。具体的には、Ｗｅｂブラウザ３０１は、印刷中止コマンドを印刷中止対象のプリンタへ送信する（ステップＳ２３）。
【００７９】
図８（Ｂ）は、プリンタの動作処理例を説明するフローチャートである。図８（Ｂ）では、プリンタ１０７の動作処理を例にとって説明する。まず、プリンタ１０７が、印刷中止コマンドを受信する（ステップＳ３１）。プリンタ１０７が、対象ジョブの印刷中止処理を実行する（ステップＳ３２）。そして、プリンタ１０７が、プリントサーバ１０４に対して印刷中止処理完了通知を行う（ステップＳ３３）。
【００８０】
次に、本発明の実施例２について説明する。実施例２においては、プリントサーバ１０４が、印刷先変更制御を実行する。この例では、プリントサーバ１０４が、プリンタ１０７を変更元プリンタ、プリンタ１０８を変更先プリンタとする印刷先変更制御を実行するものとする。変更元プリンタは、現在印刷先であるプリンタであって、印刷先変更制御によって印刷処理を中止するプリンタである。変更先プリンタは、印刷先変更制御によって、新たに印刷先となるプリンタである。
【００８１】
図９は、実施例２の印刷制御処理を説明するシーケンス図の例である。まず、クライアント端末１０１が備えるＷｅｂブラウザ３０１が、ジョブ一覧画面６０１上におけるユーザの指定に従って、印刷先変更要求をプリントサーバ１０４に送る（Ｐ１１）。印刷先変更要求は、変更元プリンタ（第１の画像形成装置）が実行中の印刷処理の中止と、変更先プリンタ（第２の画像形成装置）による該印刷処理の実行とを求める要求を含む。
【００８２】
続いて、プリントサーバ１０４のＷｅｂアプリケーション３０２が、変更元プリンタ（プリンタ１０７）のプリンタ情報を取得する。Ｗｅｂアプリケーション３０２は、取得したプリンタ情報に含まれる印刷制御指示方式履歴を参照し、今回の印刷制御指示方式すなわちプリンタ１０７に印刷中止指示をする方式として決定する（Ｐ１２）。図９に示す例では、Ｗｅｂアプリケーション３０２は、今回の印刷制御指示方式をプル型の印刷制御指示方式に決定する。
【００８３】
次に、Ｗｅｂアプリケーション３０２は、印刷ジョブ管理サービス３０６の印刷ジョブ情報管理部４０２に指示して、当該プリンタ情報が含む印刷ステータスを「キャンセル中」に更新する。そして、Ｗｅｂアプリケーション３０２は、ジョブ一覧画面６０１に対応するＷｅｂページであって、印刷中止指示スクリプトと、ポーリングスクリプトとを含むＷｅｂページを生成する（Ｐ１３）。ポーリングスクリプトは、プリントサーバ１０４へのポーリングの実行を指示するスクリプトである。図１０（Ａ）は、生成されるＷｅｂページのｈｔｍｌ構成を示す。
【００８４】
次に、プリントサーバ１０４のＷｅｂアプリケーション３０２が、生成したＷｅｂページをＷｅｂブラウザ３０１に送信して、ジョブ一覧画面６０１を表示させる（Ｐ１４）。Ｗｅｂブラウザ３０１は、Ｗｅｂページに記述されているポーリングスクリプトを実行して、プリントサーバ１０４に対するポーリングを開始する（Ｐ１５）。また、Ｗｅｂブラウザ３０１は、Ｗｅｂページに記述されている印刷中止指示スクリプトを実行して、プリント１０７に対して、印刷中止コマンドを送信する（Ｐ１６）。
【００８５】
プリンタ１０７は、印刷中止コマンドを受けて、印刷ジョブを中止する（Ｐ１７）。プリントサーバ１０４が、プリンタ１０７から印刷中止処理完了通知を受ける（Ｐ１８）。プリントサーバ１０４が、印刷中止処理完了通知が含む情報に基づいて、印刷中止処理が完了したことを認識すると、プリントサーバ１０４は、今回の印刷制御指示方式で、プリンタ１０７のプリンタ情報内の印刷制御指示方式履歴を更新する。
【００８６】
次に、プリントサーバ１０４は、変更先プリンタであるプリンタ１０８に対して印刷を指示する処理を、以下のようにして実行する。まず、プリントサーバ１０４が、印刷ジョブ情報が含む対象ジョブの印刷ステータス、プリンタ名等を更新する。また、プリントサーバ１０４が、プリンタ１０８のプリンタ情報を取得する。Ｗｅｂアプリケーション３０２は、取得したプリンタ情報に含まれる印刷制御指示方式履歴を参照し、前回の印刷制御指示方式を今回の印刷制御指示方式すなわちプリンタ１０８に印刷指示をする方式として決定する（Ｐ１９）。図９に示す例では、Ｗｅｂアプリケーション３０２は、今回の印刷制御指示方式をプル型の印刷制御指示方式に決定する。
【００８７】
次に、Ｗｅｂアプリケーション３０２が、ジョブ一覧画面６０１に対応するＷｅｂページであって、印刷指示スクリプトを含むＷｅｂページを生成する（Ｐ２１）。図１０（Ｂ）は、生成されるＷｅｂページのｈｔｍｌ構成を示す。続いて、Ｗｅｂアプリケーション３０２が、上記生成したＷｅｂページを、Ｗｅｂブラウザ３０１からのポーリングへの返信としてＷｅｂブラウザ３０１に対して送信する。
【００８８】
続いて、Ｗｅｂブラウザ３０１が、ジョブ一覧画面６０１を表示するとともに、Ｗｅｂページに記述されている印刷指示スクリプトを実行して、プリンタ１０７に対して印刷指示コマンドを送信する（Ｐ２４）。印刷指示コマンドは、印刷ジョブの実行を指示する。
【００８９】
プリンタ１０７は、印刷指示コマンドを受けると、印刷指示コマンドの指示に従って印刷ジョブの実行を開始する（Ｐ２４）。そして、プリンタ１０７のプルプリントアプリケーション３０４が、プリントサーバ１０４に対して、印刷開始通知を行う（Ｐ２５）。印刷開始通知は、印刷ジョブの実行を開始したことの通知である。印刷開始通知は、印刷ジョブの実行の開始に成功したか失敗したかを示す情報を含む。
【００９０】
プリントサーバ１０４が印刷開始通知を受けると、Ｗｅｂアプリケーション３０２が、対象ジョブの印刷ステータスを更新する。また、Ｗｅｂアプリケーション３０２は、プリンタ１０８に対応するプリンタ情報内の印刷制御指示方式履歴を、今回の印刷制御指示方式で更新する（Ｐ２６）。
【００９１】
図１１は、実施例２におけるプリントサーバの動作処理を説明するフローチャートである。図１１のステップＳ４１乃至Ｓ４８、ステップＳ５７乃至Ｓ５９の処理は、変更元プリンタ（例えば、プリンタ１０７）を対象とした印刷中止指示処理である。この印刷中止指示処理は、図７を参照して説明した実施例１における印刷中止指示処理と同様である。但し、実施例２では、実施例１と異なり、ステップＳ４４において、Ｗｅｂアプリケーション３０２は、ジョブ一覧画面６０１に対応するＷｅｂページであって、印刷中止指示スクリプトとポーリングスクリプトとを含むＷｅｂページを生成する。
【００９２】
変更先プリンタ（例えば、プリンタ１０８）への印刷指示処理について説明する。ステップＳ４９において、Ｗｅｂアプリケーション３０２が、プリンタ情報管理部４０３から、プリンタ１０８に対応するプリンタ情報が含む印刷制御指示方式履歴を取得する（ステップＳ４９）。Ｗｅｂアプリケーション３０２は、取得した印刷制御指示方式履歴を参照して、前回の印刷制御指示方式がプッシュ型またはプル型のいずれであるかを判断する（ステップＳ５０）。
【００９３】
前回の印刷制御指示方式がプッシュ型である場合、Ｗｅｂアプリケーション３０２は、プリンタ１０８に対して直接印刷指示を行う（ステップＳ６０）。具体的には、Ｗｅｂアプリケーション３０２が、プリンタ１０８に対して印刷指示コマンドを送信する。なお、Ｗｅｂアプリケーション３０２が印刷制御指示方式履歴を取得できていない場合にも、Ｗｅｂアプリケーション３０２は、プリンタ１０７に対して直接印刷指示を行う。続いて、Ｗｅｂアプリケーション３０２が、印刷指示コマンドの送信が成功したかを判断する（ステップＳ６１）。印刷指示コマンドの送信が失敗した場合は、ステップＳ５１に進む。印刷指示コマンドの送信が成功した場合は、ステップＳ５３に進む。
【００９４】
ステップＳ５０の判断処理において、前回の印刷制御指示方式がプル型である場合、Ｗｅｂアプリケーション３０２は、Ｗｅｂブラウザ３０１がＪａｖａ（登録商標）Ｓｃｒｉｐｔのクロスドメイン通信機能を有するかを判断する（ステップＳ５１）。Ｗｅｂブラウザ３０１がＪａｖａ（登録商標）Ｓｃｒｉｐｔのクロスドメイン通信機能を有しない場合、印刷先変更エラーとする（ステップＳ６２）。そして、印刷ジョブ情報管理部４０２が、印刷ステータスをエラー終了に更新する（ステップＳ５６）。
【００９５】
Ｗｅｂブラウザ３０１がＪａｖａ（登録商標）Ｓｃｒｉｐｔのクロスドメイン通信機能を有する場合、Ｗｅｂアプリケーション３０２は、ジョブ一覧画面６０１に対応するＷｅｂページであって、印刷指示スクリプトを含むＷｅｂページを生成する（ステップＳ５２）。ステップＳ５２においては、Ｗｅｂアプリケーション３０２は、さらに、生成したＷｅｂページを、Ｗｅｂブラウザ３０１からのポーリングへの返信としてＷｅｂブラウザ３０１に対して送信する。
【００９６】
Ｗｅｂブラウザ３０１は、このＷｅｂページに応じたジョブ一覧画面６０１を表示するとともに、このＷｅｂページが含む印刷指示スクリプトを実行する。すなわち、Ｗｅｂブラウザ３０１は、プリンタ１０７に対して印刷指示コマンドを送信する。プリンタ１０７が、Ｗｅｂブラウザ３０１から受けた印刷指示コマンドに従って、印刷ジョブの実行を開始する。次に、Ｗｅｂアプリケーション３０２が、プリンタ１０７から印刷開始通知を受けたかを判断する（ステップＳ５３）。
【００９７】
プリンタ１０７から印刷開始通知を受けていない場合は、ステップＳ５３に戻る。プリンタ１０７から印刷開始通知を受けた場合、Ｗｅｂアプリケーション３０２は、印刷開始通知が含む情報に基づいて、印刷ジョブの実行の開始に成功したかを判断する（ステップＳ５４）。Ｗｅｂアプリケーション３０２が、印刷ジョブの実行の開始に失敗したと判断した場合はステップＳ６２に進む。Ｗｅｂアプリケーション３０２が、印刷ジョブの実行の開始に成功したと判断した場合は、ステップＳ５５に進む。
【００９８】
ステップＳ５５において、Ｗｅｂアプリケーション３０２は、プリンタ情報管理部４０３に指示して、今回の印刷制御指示方式で、プリンタ１０８に対応するプリンタ情報内の印刷制御指示方式履歴を更新する（ステップＳ５５）。そして、印刷ジョブ情報管理部４０２が、印刷ステータスを印刷中に更新する（ステップＳ５６）。
【００９９】
図１２は、実施例２におけるＷｅｂブラウザの動作処理例を説明するフローチャートである。図１２のステップＳ７１乃至Ｓ７３は、それぞれ、図８（Ａ）のステップＳ２１乃至Ｓ２３と同様である。
【０１００】
ステップＳ７４において、Ｗｅｂブラウザ３０１が、ジョブ一覧画面６０１に対応するＷｅｂページにポーリングスクリプトが含まれるかを判断する（ステップＳ７４）。ジョブ一覧画面６０１に対応するＷｅｂページにポーリングスクリプトが含まれない場合は、処理を終了する。ジョブ一覧画面６０１に対応するＷｅｂページにポーリングスクリプトが含まれる場合、Ｗｅｂブラウザ３０１は、プリントサーバ１０３から返信があるまでプリントサーバ１０３に対し、所定の間隔でポーリング（リクエスト）を行う（ステップＳ７５，Ｓ７６）。これにより、プリントサーバ１０４がＷｅｂページを生成した場合に、Ｗｅｂブラウザ３０１がプリントサーバ１０４から当該Ｗｅｂページを受け取ることができる。
【０１０１】
次に、Ｗｅｂブラウザ３０１が、プリントサーバ１０４のＷｅｂアプリケーション３０２から、ポーリングに対する返信としてジョブ一覧画面６０１に対応するＷｅｂページを受信して、このジョブ一覧画面６０１を表示する（ステップＳ７７）。Ｗｅｂブラウザ３０１は、ジョブ一覧画面６０１に対応するＷｅｂページに印刷指示スクリプトが含まれているかを判断する（ステップＳ７８）。
【０１０２】
ジョブ一覧画面６０１に対応するＷｅｂページに印刷指示スクリプトが含まれていない場合は、処理を終了する。ジョブ一覧画面６０１に対応するＷｅｂページに印刷指示スクリプトが含まれている場合、Ｗｅｂブラウザ３０１は、印刷指示コマンドを変更先プリンタ（例えば、プリンタ１０８）へ送信する（ステップＳ７９）。すなわち、Ｗｅｂアプリケーション３０２は、変更先プリンタに対する前回の印刷制御指示方式がプル型の印刷制御指示方式である場合に、Ｗｅｂブラウザ３０１を介して変更先プリンタに対して印刷処理の実行を指示する。
【０１０３】
実施例２のプリントサーバによれば、ファイアウォールによってアクセスが制限されたエリアに配置され、印刷制御装置から直接通信できない画像形成装置が存在するネットワーク環境下であっても、セキュリティを維持したまま印刷先の変更を行うことができる。また、実施例２のプリントサーバによれば、ユーザは、変更先プリンタへの印刷制御指示方式がプッシュ型であるかプル型であるかを意識することなく、印刷先の変更操作を行うことができる。
【０１０４】
図１３は、実施例２におけるプリンタの動作処理例を説明するフローチャートである。図１３（Ａ）は、変更元プリンタであるプリンタ１０７の動作処理を示す。図１３のステップＳ８１乃至Ｓ８３は、図８（Ｂ）のステップＳ３１乃至Ｓ３３と同様である。
【０１０５】
図１３（Ｂ）は、変更先プリンタであるプリンタ１０８の動作処理を示す。まず、プリンタ１０８が、印刷指示コマンドを受信する（ステップＳ９１）。続いて、プリンタ１０８が、印刷指示コマンドが指示する印刷ジョブをプリントサーバ１０４から取得する（ステップＳ９２）。プリンタ１０８が、プリントサーバ１０４から取得した印刷ジョブの実行を開始する（ステップＳ９３）。そして、プリンタ１０８が、プリントサーバ１０４に対して印刷開始通知を行う（ステップＳ９４）。
【０１０６】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【０１０７】
１０１，１０２，１０３  クライアント端末
１０４  プリントサーバ
１０５，１０６，１０７，１０８  プリンタ
【図１】
2012150534.tif 000003
【図２】
2012150534.tif 000004
【図３】
2012150534.tif 000005
【図４】
2012150534.tif 000006
【図５】
2012150534.tif 000007
【図６】
2012150534.tif 000008
【図７】
2012150534.tif 000009
【図８】
2012150534.tif 000010
【図９】
2012150534.tif 000011
【図１０】
2012150534.tif 000012
【図１１】
2012150534.tif 000013
【図１２】
2012150534.tif 000014
【図１３】
2012150534.tif 000015