(57)【要約】      （修正有）【課題】印刷装置の能力情報が動的に変化する場合でも、情報処理装置が最新の能力情報に基づいて印刷ジョブを作成することができる印刷システムとその制御方法、及びサーバとその制御方法、並びにプログラムを提供する。【解決手段】アプリケーションを実行して印刷ジョブを作成する少なくとも一つの情報処理装置と、複数の印刷装置を集約した印刷サービスを提供する仮想プリンタを備えるサーバとを有する印刷システムであって、情報処理装置は、複数の印刷装置の能力を示す能力情報をサーバに要求し、その能力情報に応じた印刷設定に従って生成した印刷ジョブをサーバに送信する。サーバは、その要求に応じて能力情報を情報処理装置に通知し、複数の印刷装置のいずれかにおける能力の変化に応じて、能力情報を更新し、その更新された能力情報を、更新対象の情報処理装置に通知する。【選択図】図６
2020035233.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションを実行して印刷ジョブを作成する少なくとも一つの情報処理装置と、複数の印刷装置を集約した印刷サービスを提供するサーバとを有する印刷システムであって、
前記情報処理装置は、
前記複数の印刷装置の能力を示す能力情報を前記サーバに要求する要求手段と、
前記能力情報に応じた印刷設定に従って生成した印刷ジョブを前記サーバに送信する送信手段と、を有し、
前記サーバは、
前記要求手段による要求に応じて前記能力情報を前記情報処理装置に通知する第１通知手段と、
前記印刷ジョブを受信して保持する保持手段と、
前記複数の印刷装置のいずれかにおける前記能力の変化に応じて、前記能力情報を更新する更新手段と、
前記更新手段により更新された能力情報を、更新対象の情報処理装置に通知する第２通知手段と、を有し、
前記更新対象の情報処理装置は、前記第１通知手段により通知された前記能力情報の保存が許可された情報処理装置であることを特徴とする印刷システム。
【請求項２】
前記情報処理装置は、更に、イベントの受信が可能か否か判定する判定手段を有し、
前記要求手段は、前記判定手段による判定結果を含めて前記サーバに要求することを特徴とする請求項１に記載の印刷システム。
【請求項３】
前記サーバは、前記要求に含まれた前記判定結果がイベントの受信が可能であることを示している場合、前記情報処理装置を前記更新対象の情報処理装置として登録する登録手段を、更に有することを特徴とする請求項２に記載の印刷システム。
【請求項４】
前記サーバは、前記要求に含まれた前記判定結果がイベントの受信が可能であることを示している場合、前記第１通知手段による前記通知に、前記情報処理装置に前記能力情報の保持を許可する情報を含ませることを特徴とする請求項２に記載の印刷システム。
【請求項５】
前記サーバは、前記要求に含まれた前記判定結果がイベントの受信が不可であることを示している場合、前記第１通知手段による前記通知に、前記情報処理装置に前記能力情報の保持を禁止する情報を含ませることを特徴とする請求項２に記載の印刷システム。
【請求項６】
前記情報処理装置は、前記能力情報の保持を許可する前記情報に応じて、前記サーバから通知された前記能力情報を保存する保存手段を、更に有することを特徴とする請求項４に記載の印刷システム。
【請求項７】
前記情報処理装置は、前記保存手段に保存された前記能力情報に基づいて、ユーザに前記印刷設定を入力させるための画面を表示する表示手段を、更に有することを特徴とする請求項６に記載の印刷システム。
【請求項８】
前記情報処理装置は、前記第１通知手段或いは前記第２通知手段により通知された前記能力情報に基づいて、ユーザに前記印刷設定を入力させるための画面を表示する表示手段を、更に有することを特徴とする請求項１乃至７のいずれか１項に記載の印刷システム。
【請求項９】
前記印刷システムは、更にイベント配信サーバを有し、
前記情報処理装置は、前記判定結果がイベントの受信が不可であることを示している場合、前記サーバに対して前記イベント配信サーバによるイベント配信サービスを要求し、当該イベント配信サービスにより、前記更新手段により更新された前記能力情報を受け取ることを特徴とする請求項２に記載の印刷システム。
【請求項１０】
ネットワークを介して、複数の印刷装置を集約した印刷サービスを情報処理装置に提供するサーバであって、
前記情報処理装置からの要求に応じて、前記複数の印刷装置の能力を示す能力情報を前記情報処理装置に通知する第１通知手段と、
前記要求に含まれる情報に基づいて、前記情報処理装置を、更新対象の情報処理装置として登録する登録手段と、
印刷ジョブを受信して保持する保持手段と、
前記複数の印刷装置のいずれかにおける前記能力の変化に応じて、前記能力情報を更新する更新手段と、
前記更新手段により更新された能力情報を、前記登録手段に登録されている前記更新対象の情報処理装置に通知する第２通知手段と、を有し、
前記複数の印刷装置のいずれかから前記保持手段に保持している印刷ジョブが要求されると、当該印刷ジョブを、要求した印刷装置に送信して印刷させることを特徴とするサーバ。
【請求項１１】
前記登録手段は、前記要求に含まれる前記情報が、前記情報処理装置がイベントの受信が可能であることを示している場合、前記情報処理装置を、更新対象の情報処理装置として登録することを特徴とする請求項１０に記載のサーバ。
【請求項１２】
前記要求に含まれる前記情報が、前記情報処理装置がイベントの受信が可能であることを示している場合、前記第１通知手段は、前記情報処理装置に前記能力情報の保持を許可する情報を前記通知に含ませることを特徴とする請求項１０に記載のサーバ。
【請求項１３】
前記要求に含まれる前記情報が、前記情報処理装置がイベントの受信が不可であることを示している場合、前記第１通知手段は、前記情報処理装置に前記能力情報の保持を禁止する情報を前記通知に含ませることを特徴とする請求項１０に記載のサーバ。
【請求項１４】
アプリケーションを実行して印刷ジョブを作成する少なくとも一つの情報処理装置と、複数の印刷装置を集約した印刷サービスを提供するサーバとを有する印刷システムを制御する制御方法であって、
前記情報処理装置は、
前記複数の印刷装置の能力を示す能力情報を前記サーバに要求する要求工程と、
前記能力情報に応じた印刷設定に従って生成した印刷ジョブを前記サーバに送信する送信工程と、を実行し、
前記サーバは、
前記要求工程による要求に応じて前記能力情報を前記情報処理装置に通知する第１通知工程と、
前記印刷ジョブを受信して保持する保持工程と、
前記複数の印刷装置のいずれかにおける前記能力の変化に応じて、前記能力情報を更新する更新工程と、
前記更新工程により更新された能力情報を、更新対象の情報処理装置に通知する第２通知工程と、を有し、
前記更新対象の情報処理装置は、前記第１通知工程により通知された前記能力情報の保存が許可された情報処理装置であることを特徴とする制御方法。
【請求項１５】
ネットワークを介して、複数の印刷装置を集約した印刷サービスを情報処理装置に提供するサーバを制御する制御方法であって、
前記情報処理装置からの要求に応じて、前記複数の印刷装置の能力を示す能力情報を前記情報処理装置に通知する第１通知工程と、
前記要求に含まれる情報に基づいて、前記情報処理装置を、更新対象の情報処理装置として登録する登録工程と、
印刷ジョブを受信して保持する保持工程と、
前記複数の印刷装置のいずれかにおける前記能力の変化に応じて、前記能力情報を更新する更新工程と、
前記更新工程により更新された能力情報を、前記登録工程に登録されている前記更新対象の情報処理装置に通知する第２通知工程と、を有し、
前記複数の印刷装置のいずれかから前記保持工程で保持している印刷ジョブが要求されると、当該印刷ジョブを、要求した印刷装置に送信して印刷させることを特徴とする制御方法。
【請求項１６】
コンピュータを、請求項１０乃至１３のいずれか１項に記載のサーバの各手段として機能させるためのプログラム。
【請求項１７】
ネットワークを介して、複数の印刷装置を集約した印刷サービスを情報処理装置に提供するサーバであって、
前記情報処理装置からの要求に応じて、前記複数の印刷装置の能力を示す能力情報とともに、当該能力情報のキャッシュ利用に制限を設ける情報を前記情報処理装置に通知する通知手段と、
印刷ジョブを受信して保持する保持手段と、
前記複数の印刷装置のいずれかにおける前記能力の変化に応じて、前記能力情報を更新する更新手段と、
を有し、
前記複数の印刷装置のいずれかから前記保持手段に保持している印刷ジョブが要求されると、当該印刷ジョブを、要求した印刷装置に送信して印刷させることを特徴とするサーバ。
【請求項１８】
当該能力情報のキャッシュ利用に制限を設ける情報は、前記能力情報のキャッシュを禁止することを示す情報であることを特徴とする請求項１７に記載のサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷システムとその制御方法、及びサーバとその制御方法、並びにプログラムに関するものである。
【背景技術】
【０００２】
近年の情報処理装置は、印刷装置のために設計されたベンダー独自の印刷ドライバ（又は印刷アプリケーション）を介さずに、印刷装置で印刷できる印刷データを生成することができる。例えば、近年の印刷アプリケーションやクラウド上の印刷サービスは、ＯＳ（オペレーティングシステム）に標準搭載されているＩＰＰ−Ｃｌｉｅｎｔモジュールを利用し、ＩＰＰ仕様（ＩＰＰ：Ｉｎｔｅｒｎｅｔ Ｐｒｉｎｔｉｎｇ Ｐｒｏｔｏｃｏｌ）に基づく印刷データを生成して印刷装置に送信する。
【０００３】
ＩＰＰ−Ｉｎｆｒａ仕様に基づくクラウド印刷サービスでは、情報処理装置がクラウド印刷サービスに対して印刷ジョブを送信すると、クラウド印刷サービスはクラウド上に、その印刷ジョブを留め置く。そして、印刷装置からクラウド印刷サービスに印刷ジョブを要求して、クラウド印刷サービスに留め置かれている印刷ジョブを取得して印刷を実行する。
【０００４】
クラウド印刷サービスと印刷装置の接続形態として、クラウド印刷サービス毎に１台の印刷装置を紐づける方法と、１つのクラウド印刷サービスに複数台の印刷装置を集約して紐づける方法（印刷装置集約型）がある。ここでは後者について述べる。情報処理装置がクラウド印刷サービスから取得する能力情報は、クラウド印刷サービスが個々の仕様の異なる印刷装置から取得した能力情報の論理和或いは論理積により構成される。情報処理装置は、クラウド印刷サービスから取得した仮想プリンタの能力情報に基づいて印刷画面を表示し、ユーザはその画面で印刷設定を行って印刷ジョブを送信する。その後、印刷装置が、クラウド上に留め置かれている印刷ジョブを取得して印刷を実行する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２５９８５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＩＰＰ−Ｉｎｆｒａ仕様に基づくクラウド印刷サービスにおいて、情報処理装置が印刷ジョブを作成した後、仮想プリンタから取得した能力情報を保持するか、或いは保持せずに印刷ジョブの作成の度に廃棄するかは、印刷装置や仮想プリンタに対して保証していない。情報処理装置が印刷ジョブを作成した後、どちらの挙動を行うかは情報処理装置の実装に依存する。情報処理装置が仮想プリンタの能力情報を保持する場合、同じ仮想プリンタに対する印刷ジョブを作成する際は、仮想プリンタから能力情報を取得せずに、保持している仮想プリンタの能力情報を基に印刷ジョブを作成することができる。
【０００７】
また、クラウド印刷サービス毎に１台の印刷装置が紐づけられているクラウド印刷サービスでは、仮想プリンタと印刷装置が１対１であるため、仮想プリンタと情報処理装置の能力情報は常に一致している。一方、印刷装置集約型のクラウド印刷サービスでは、１つの仮想プリンタに対して複数の印刷装置が紐づけられる。そのため、仮想プリンタを構成する印刷装置の能力情報が変化した場合、仮想プリンタの能力情報も変化する。印刷装置の能力情報が変化する例として、縮退モードへの移行に伴う使用可能な機能の削減や、仮想プリンタを構成する印刷装置のデバイス追加や削除等が挙げられる。
【０００８】
印刷装置集約型のクラウド印刷サービスにおいて、情報処理装置が仮想プリンタの能力情報を保持する場合、仮想プリンタの能力情報が変化した際に、情報処理装置が保持している仮想プリンタの能力情報と、実際の仮想プリンタの能力情報との間に差異が生じてしまう。その結果、情報処理装置が特定の印刷装置で実行不可能な印刷ジョブを生成してしまう可能性がある。
【０００９】
また特許文献１において、仮想プリンタの能力情報を作成或いは更新する際、情報処理装置が、仮想プリンタに紐付く各印刷装置から能力情報をそれぞれ取得して、仮想プリンタの能力情報を作成する。しかし、情報処理装置の処理の負荷が大きく、処理に要する時間が一定時間を超える場合は、能力情報の作成を中断してしまうという課題があった。そのため場合によっては、仮想プリンタの能力情報の作成や更新が正常に行われない可能性があった。
【００１０】
本発明の目的は、上記従来技術の問題点の少なくとも一つを解決することにある。
【００１１】
本発明の目的は、印刷装置の能力情報が動的に変化する場合でも、情報処理装置が最新の能力情報に基づいて印刷ジョブを作成できる技術を提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するために本発明の一態様に係る印刷システムは以下のような構成を備える。即ち、
アプリケーションを実行して印刷ジョブを作成する少なくとも一つの情報処理装置と、複数の印刷装置を集約した印刷サービスを提供するサーバとを有する印刷システムであって、
前記情報処理装置は、
前記複数の印刷装置の能力を示す能力情報を前記サーバに要求する要求手段と、
前記能力情報に応じた印刷設定に従って生成した印刷ジョブを前記サーバに送信する送信手段と、を有し、
前記サーバは、
前記要求手段による要求に応じて前記能力情報を前記情報処理装置に通知する第１通知手段と、
前記印刷ジョブを受信して保持する保持手段と、
前記複数の印刷装置のいずれかにおける前記能力の変化に応じて、前記能力情報を更新する更新手段と、
前記更新手段により更新された能力情報を、更新対象の情報処理装置に通知する第２通知手段と、を有し、
前記更新対象の情報処理装置は、前記第１通知手段により通知された前記能力情報の保存が許可された情報処理装置であることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、印刷装置の能力情報が動的に変化する場合でも、情報処理装置が最新の能力情報に基づいて印刷ジョブを作成できるという効果がある。
【００１４】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。尚、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【００１５】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】本発明の実施形態に係る印刷システムの構成を説明する図。
【図２】実施形態に係る情報処理装置のハードウェア構成を説明するブロック図。
【図３】実施形態に係る情報処理装置のソフトウェア構成を説明する機能ブロック図。
【図４】実施形態に係る仮想プリンタのハードウェア構成を説明するブロック図。
【図５】実施形態に係る仮想プリンタのソフトウェア構成を説明する機能ブロック図。
【図６】実施形態に係る印刷システムにおける情報処理装置、仮想プリンタ及び印刷装置との間のデータのやり取りを示すシーケンス図。
【図７】実施形態に係る情報処理装置が能力情報の保持が禁止されている場合における、仮想プリンタの能力情報の更新処理を示すシーケンス図。
【図８】実施形態に係る印刷システムにおける情報処理装置、仮想プリンタ、及び印刷装置との間のデータのやり取りを示すシーケンス図。
【図９】実施形態に係る情報処理装置が実行する処理を説明するフローチャート。
【図１０】実施形態に係る仮想プリンタによる処理を説明するフローチャート。
【図１１】実施形態に係る仮想プリンタによる処理を説明するフローチャート。
【図１２】実施形態に係る情報処理装置による処理を説明するフローチャート。
【図１３】実施形態に係る情報処理装置と仮想プリンタのＩＰＰ通信のメッセージの一例を示す図。
【発明を実施するための形態】
【００１６】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでするものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１７】
図１は、本発明の実施形態に係る印刷システムの構成を説明する図である。
【００１８】
ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１００上にはＡＰ（アクセスポイント）１０１、ＬＡＮ１０２上には印刷装置１１０が接続されている。実施形態では、情報処理装置１３０の一例として、タブレット、スマートフォン、ＰＣなどの携帯端末１３１，１３２，１３３を例に説明する。尚、以下の説明では、タブレット１３１、スマートフォン１３２、ＰＣ１３３などを総称して情報処理装置１３０と呼ぶ。この情報処理装置１３０は、ＡＰ１０１を介して、インターネット１０３上でクラウドサービスを提供するクラウドサーバ（以下、仮想プリンタ）１２０、イベント配信サービスを提供するイベント配信サーバ１４０と通信が可能である。仮想プリンタ１２０は、情報処理装置１３０から送信された印刷ジョブを留め置く。そして仮想プリンタ１２０が集約している管理している複数の印刷装置のいずれかから印刷ジョブが要求されると、その留め置いている印刷ジョブを、その印刷装置に送信して印刷させる。尚、ＬＡＮ１００，ＬＡＮ１０２は無線ＬＡＮであってもよい。
【００１９】
印刷装置１１０は、インターネット１０３上の仮想プリンタ１２０と通信が可能である。実施形態では、１つのクラウド印刷サービスに複数台の印刷装置を集約して紐づける印刷装置集約型を前提としているため、印刷装置１１０は、例えばＡサイズの用紙を収容して印刷及びステープルが可能な印刷装置１１１と、Ａ４サイズとＡ３サイズの用紙を収容して印刷及びステープルとパンチができる印刷装置１１２とを含んでいるものとする。但し、以下の説明では、これら印刷装置１１１，１１２をまとめて印刷装置１１０として説明する。印刷装置１１０は、仮想プリンタ１２０に留め置かれた印刷ジョブを取得して印刷を実行する。
【００２０】
イベント配信サーバ１４０は、仮想プリンタ１２０の状態を監視し、その能力情報が更新されると、インターネット１０３を介して、情報処理装置１３０に対してその能力情報が更新されたことを通知する。ここで仮想プリンタ１２０の能力情報は印刷装置１１０の能力情報に対応しており、例えば、印刷装置１１０の能力情報は、印刷装置１１１と印刷装置１１２の能力情報の論理積に基づいて生成されるものとする。例えば図１の例では、印刷装置１１０の能力情報は、Ａ３サイズの用紙への印刷機能と、ステープル機能を含むことになる。更に、イベント配信サーバ１４０は、仮想プリンタ１２０の能力情報が更新されると、仮想プリンタ１２０の能力情報が更新されたことを知らせる通知を印刷装置１１０に送信する。
【００２１】
尚、実施形態では、一例として仮想プリンタ１２０と、イベント配信サーバ１４０がクラウドサーバとして実装される場合を例示しているが、本発明はこれに限定されるものではない。仮想プリンタ１２０とイベント配信サーバ１４０は、ネットワーク上の物理的なサーバ装置であってもよい。
【００２２】
また実施形態では、印刷システムの一例として上記の構成例で説明するが、本発明はこれに限定されるものではなく、少なくとも１つ以上の情報処理装置と印刷装置と仮想プリンタとがネットワークを介して通信可能に接続されていればよい。またネットワークは無線であっても有線であっても良い。
【００２３】
次に、情報処理装置１３０について説明する。情報処理装置１３０は、ユーザの設定に基づいた印刷ジョブを作成し、その印刷ジョブを仮想プリンタ１２０に送信する。
【００２４】
図２は、実施形態に係る情報処理装置１３０のハードウェア構成を説明するブロック図である。
【００２５】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１を含む制御部２００は、情報処理装置１３０の全体の動作を制御する。ＣＰＵ２０１は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２又はストレージ２０４に記憶されたプログラムをＲＡＭ２０３に展開し、その展開したプログラムを実行して各種処理を行う。ＲＯＭ２０２は、ＣＰＵ２０１で実行可能な制御プログラムやブートプログラム等を格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３は、ＣＰＵ２０１の主記憶メモリであり、ワークエリア又は各種制御プログラムを展開するための一時記憶領域として用いられる。ストレージ２０４は、アプリケーションデータ、印刷データ、各種プログラム、及び各種設定情報を記憶する。実施形態では、ストレージ２０４としてＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）を想定しているがＨＤＤ（ハードディスクドライブ）等を用いても良い。Ｂｌｕｅｔｏｏｔｈ（登録商標）２０５は、キーボードやポインティングデバイス２０９を接続して利用するために使用される。ネットワークインタフェース（Ｉ／Ｆ）２０６は、情報処理装置１３０を、ＬＡＮ１００や無線ＬＡＮ等に接続する。操作部Ｉ／Ｆ２０７を介して接続されたタッチパネル２０８は、画面への描画と、ユーザのタッチ入力の検知を行う。尚、実施形態に係る情報処理装置１３０では、１つのＣＰＵ２０１が１つのメモリ（ＲＡＭ２０３）を用いて、後述するフローチャートに示す各処理を実行するものとするが、他の様態であっても構わない。例えば複数のＣＰＵ、ＲＡＭ、ＲＯＭ、及びストレージを協働させて、後述するフローチャートで示す各処理を実行しても良い。操作部Ｉ／Ｆ２０７は、タッチパネル２０８と制御部２００とを接続する。タッチパネル２０８には、タッチ機能を有する表示部が備えられ、情報を表示する表示部や、ユーザの指示を受け付ける受付部として機能する。また制御部２００は、ネットワークＩ／Ｆ２０６を介してＬＡＮ１００に接続されている。
【００２６】
図３は、実施形態に係る情報処理装置１３０のソフトウェア構成を説明する機能ブロック図である。尚、この図３に示す各機能ブロックは、ＣＰＵ２０１がＲＡＭ２０３に展開したプログラムを実行することにより達成されるものとする。
【００２７】
印刷アプリケーション３０１は、情報処理装置１３０上で動作するアプリケーションであり、例えばワープロや表計算などの一般的な機能をユーザに提供する。また印刷アプリケーションは、情報処理装置１３０上のオペレーティングシステム（ＯＳ）が提供するＯＳ描画エンジン３１２を通じて、ユーザ操作用のＧＵＩを描画するだけでなく、印刷用のデータを生成する。
【００２８】
ユーザが印刷アプリケーション３０１で印刷機能を呼び出すと、その印刷アプリケーション３０１は、印刷画面制御部３１１を呼び出す。印刷アプリケーション３０１は、印刷用のページデータをＯＳ描画エンジン３１２を通じて生成し、生成した印刷用のページデータを印刷画面制御部３１１に渡す。印刷画面制御部３１１は、仮想プリンタ情報管理部３０６から仮想プリンタ１２０の能力情報を取得し、その仮想プリンタ１２０の能力情報に合わせた印刷設定用のＵＩ画面を生成する。
【００２９】
ＯＳ印刷フレームワーク３０２は、ＩＰＰクライアント制御部３０３とプリントスプーラ３０９とを有している。ＩＰＰクライアント制御部３０３は、ＩＰＰ通信メッセージの生成及び送信や受信を行うＩＰＰ通信メッセージ処理部３０４と、仮想プリンタ１２０に関する情報を処理する仮想プリンタ情報処理部３０５と、仮想プリンタ１２０から取得した能力情報を保持する仮想プリンタ情報管理部３０６と、印刷ジョブを生成する印刷ジョブ生成部３０７と、仮想プリンタ１２０からの能力情報の更新通知の受信に関する制御を行うイベント受信制御部３０８とを有している。プリントスプーラ３０９は、ＩＰＰクライアント制御部３０３が生成した印刷ジョブを、順番に、データ通信制御部３１０を介して仮想プリンタ１２０へ転送する。
【００３０】
ＩＰＰ通信メッセージ処理部３０４は、ＩＰＰ通信メッセージの受信と、ＩＰＰ通信メッセージの生成及び送信を行う。ＩＰＰ通信メッセージ処理部３０４で生成されたメッセージは、データ通信制御部３１０を介して仮想プリンタ１２０に送信される。仮想プリンタ情報処理部３０５は、ＩＰＰ通信メッセージ処理部３０４が仮想プリンタ１２０から受信した能力情報の通知メッセージから、仮想プリンタ１２０の能力情報を取得する。また仮想プリンタ情報処理部３０５は、その能力情報の通知メッセージから、仮想プリンタ１２０の能力情報の保持が禁止されているか否か判定する。仮想プリンタ情報管理部３０６は、仮想プリンタ情報処理部３０５が取得した仮想プリンタの能力情報を保持する。
【００３１】
イベント受信制御部３０８は、仮想プリンタ１２０からの能力情報の更新通知の受信に関する制御を行う。能力情報の更新通知は、仮想プリンタ１２０の能力情報が更新された場合、能力情報の更新が発生したことを、仮想プリンタ１２０から情報処理装置１３０に知らせるための通知である。情報処理装置によっては、仮想プリンタ１２０からの能力情報の更新通知を受信できないものがある。またイベント受信制御部３０８は、情報処理装置１３０がイベントを受信可能であるか否かを判定する。イベントの受信とは、ＯＳサービスがクラウド基盤と連携して提供するイベント配信サービス経由で通知を受け取ることを指す。このようなサービスを利用すると、イベントの送信側は、受信側がメッセージを受信できるまで再送する責務を負う必要がない。イベントの受信の可否は、後述する方法で、情報処理装置から仮想プリンタ１２０に通知される。情報処理装置１３０がイベントを受信できる場合、イベント受信制御部３０８はデータ通信制御部３１０を介して、仮想プリンタ１２０から送られてくる能力情報の更新通知を受信する。
【００３２】
続いて仮想プリンタ１２０について説明する。仮想プリンタ１２０の実体はインターネット１０３上のクラウドサーバである。この仮想プリンタ１２０は、情報処理装置１３０から送信された印刷ジョブを留め置く。その後、仮想プリンタ１２０は、印刷装置１１０からの要求に応じて、留め置いている印刷ジョブを、その印刷装置に送信して印刷させる。
【００３３】
図４は、実施形態に係る仮想プリンタ１２０のハードウェア構成を説明するブロック図である。ここではインターネットと上のクラウドサーバであるため、そのハードウェア構成は、一般的なＰＣ（パーソナルコンピュータ）などと同じである。
【００３４】
ＣＰＵ４１１は、ＲＯＭ４１２又はストレージ４１４に記憶されたプログラムをＲＡＭ４１３に展開し、その展開したプログラムを実行して仮想プリンタ１２０の全体の制御や各種機能を実現する。ＲＯＭ４１２は、ＣＰＵ４１１で実行可能な制御プログラムやブートプログラム等を格納する。ＲＡＭ４１３は、ＣＰＵ４１１の主記憶メモリであり、ワークエリア又は各種制御プログラムを展開するための一時記憶領域として用いられる。ストレージ４１４は、印刷ジョブ、各種プログラム、及び各種設定情報を記憶する。実施形態では、ストレージ４１４としてＨＤＤ等の補助記憶装置を想定しているが、ＳＳＤ等の不揮発性メモリを用いても良い。通信部Ｉ／Ｆ４１５は、インターネット１０３を経由して、ＬＡＮ１００上の情報処理装置１３０、ＬＡＮ１０２上の印刷装置１１０との間で、メッセージや印刷ジョブの送受信を行う。
【００３５】
図５は、実施形態に係る仮想プリンタ１２０のソフトウェア構成を説明する機能ブロック図である。尚、図５に示す各機能ブロックは、実施形態では、ＣＰＵ４１１がＲＡＭ４１３に展開したプログラムを実行することによって達成されるものとする。
【００３６】
ＩＰＰ Ｉｎｆｒａ Ｓｅｒｖｉｃｅ５００は、仮想プリンタ管理部５１０、ジョブ管理部５２０を有している。仮想プリンタ管理部５１０は、仮想プリンタ１２０に関する情報の管理を行う。ＩＰＰ通信メッセージ処理部５１５は、ＩＰＰ通信メッセージの受信と、生成及び送信を行う。クライアント情報処理部５１１は、ＩＰＰ通信メッセージ処理部５１５が受信したメッセージを解析し、情報処理装置１３０の情報を取得する。またクライアント情報処理部５１１は、情報処理装置１３０から受信した能力情報要求のメッセージ内容から、情報処理装置１３０がイベントを受信可能かどうか判定する。情報処理装置１３０がイベントを受信可能である場合、クライアント情報処理部５１１は、取得した情報処理装置１３０の情報をクライアントＤＢ５１２に保存する。クライアントＤＢ５１２は、イベントの受信が可能である情報処理装置を記憶するための領域である。
【００３７】
プリンタ情報処理部５１３は、ＩＰＰ通信メッセージ処理部５１５が受信したＩＰＰ通信メッセージから、仮想プリンタ１２０に対応する印刷装置１１０の能力情報を取得する。またプリンタ情報処理部５１３は、取得した印刷装置１１０の能力情報をプリンタＤＢ５１４に保存する。プリンタＤＢ５１４は、印刷装置１１０の能力情報を保存するための領域である。仮想プリンタ能力情報生成部５１６は、仮想プリンタ１２０の能力情報を情報処理装置１３０に通知する際に、プリンタＤＢ５１４に保存されている印刷装置１１０の能力情報に基づいて仮想プリンタ１２０の能力情報を生成し、ＩＰＰ通信メッセージ処理部５１５に渡す。イベント通知制御部５１７は、情報処理装置１３０への能力情報の更新通知に関する制御を行う。
【００３８】
ジョブ管理部５２０は、情報処理装置１３０から受信した印刷ジョブを管理する。仮想キュー・ホストジョブ制御部５２１は、印刷ジョブの制御を行う。ホストジョブ生成部５２２は、ＩＰＰ通信メッセージ処理部５１５が情報処理装置１３０から受信したＩＰＰ通信メッセージから得た印刷ジョブを取得し、ホストジョブ保存部５２３に保存する。ホストジョブ保存部５２３は、情報処理装置１３０から送信された印刷ジョブを留め置くための保存領域である。仮想プリントキュー・印刷ジョブ制御部５２４は、ホストジョブ保存部５２３に保存されている印刷ジョブのＰＤＬ形式が、印刷を実行する印刷装置において扱うことが可能か否か判定する。印刷ジョブのＰＤＬ形式が印刷装置が扱うことができない場合は、扱うことが可能なＰＤＬ形式へ変換する。こうして変換された印刷ジョブは、変換ジョブ保存部５２５に保存される。変換ジョブ保存部５２５は、印刷装置１１０からの送信要求に応じて、その要求された印刷ジョブを印刷装置１１０に送信する。データ通信制御部５３０は、通信部Ｉ／Ｆ４１５を介して行われるデータの送受信を制御する。
【００３９】
図６は、実施形態に係る印刷システムにおける情報処理装置１３０、仮想プリンタ１２０及び印刷装置１１０との間のデータのやり取りを示すシーケンス図である。尚、図６は、情報処理装置１３０が能力情報の保持が許可されている場合の例を示している。
【００４０】
Ｓ６０１でユーザは、情報処理装置１３０の印刷アプリケーション３０１から印刷画面を開いて仮想プリンタを選択する。Ｓ６０２で情報処理装置１３０は、自身がイベントの受信が可能かどうか判定する。そしてＳ６０３で情報処理装置１３０は、仮想プリンタ１２０に対して能力情報を要求する。この例において情報処理装置１３０は、イベント配信サービスに対応するため、能力情報の要求(Get-Printer-Attributes Request)は、情報処理装置１３０がイベントの受信が可能であることを示す判定結果を示す情報を含む。ＩＰＰ通信メッセージの具体的な内容は、図１３を参照して後述する。
【００４１】
この能力情報の要求を受信した仮想プリンタ１２０はＳ６０４で、その受信したメッセージから、情報処理装置１３０がイベントを受信可能かどうか判定する。ここでは情報処理装置１３０は、イベントを受信可能である。このためＳ６０５で仮想プリンタ１２０は、この情報処理装置１３０をクライアントＤＢ５１２に登録する。これにより情報処理装置１３０は、仮想プリンタ１２０からの能力情報の更新通知を受信できる情報処理装置として登録されたことになる。次にＳ６０６で仮想プリンタ１２０は、Ｓ６０３で受信した能力情報の要求に対する応答メッセージを送信する。ここでは情報処理装置１３０がイベントを受信可能であるため、送信するＩＰＰ通信メッセージ（Get-Printer-Attributes Response）は、通知する能力情報とともに、その能力情報の保持を許可することを示す情報を含んで送信される。ＩＰＰ通信メッセージの具体的な内容は、図１３を参照して後述する。
【００４２】
これによりＳ６０７で情報処理装置１３０は、Ｓ６０６で受信した能力情報に基づいて印刷設定画面の作成及び表示を行う。
【００４３】
これによりＳ６０８でユーザは、表示された印刷設定画面から所望の印刷設定を行った後、印刷データを送信するように要求する操作を行う。これによりＳ６０９で情報処理装置１３０は、ユーザが入力した印刷設定に基づいて印刷ジョブを作成する。そして情報処理装置１３０はＳ６１０で、その作成した印刷ジョブを仮想プリンタ１２０に送信する。このときＳ６１１で情報処理装置１３０は、仮想プリンタ１２０の能力情報の保持が許可されているため、Ｓ６０６で取得した能力情報を仮想プリンタ情報管理部３０６に保持する。
【００４４】
この後、Ｓ６１２で印刷装置１１０から仮想プリンタ１２０に印刷ジョブが要求されると、仮想プリンタ１２０はＳ６１３で、その要求された印刷ジョブを印刷装置に送信する。これにより印刷装置１１０はＳ６１４で、その印刷ジョブを実行して、ユーザが所望する印刷物が得られることになる。
【００４５】
こうして、情報処理装置１３０が１度目の印刷ジョブを作成して送信した後、Ｓ６１５で、印刷装置１１０のある印刷装置（例えば印刷装置１１１）が縮退モードへ移行し、使用可能な機能が削減される。それに伴ってＳ６１６で印刷装置１１０は、自身の能力情報を更新する。そしてＳ６１７で印刷装置１１０は、変化後の印刷装置１１０の能力情報を仮想プリンタ１２０に通知する。これは例えば図１の例で、印刷装置１１２のステープル機能が針の補充待ちで使用できなくなった場合、その能力情報は、２つの印刷装置１１１，１１２の能力の論理積からＡ３サイズの用紙への印刷機能のみとなる。
【００４６】
これにより仮想プリンタ１２０はＳ６１８で、Ｓ６１７で取得した印刷装置１１０の能力情報に基づいて仮想プリンタ１２０の能力情報を更新する。この仮想プリンタ１２０の能力情報の更新に伴い、Ｓ６１９で仮想プリンタ１２０は、クライアントＤＢ５１２から能力情報の更新の通知先リストを取得する。能力情報の更新の通知先リストは、仮想プリンタ１２０が、能力情報の保持を許可した情報処理装置の一覧を示すリストである。
【００４７】
そしてＳ６２０で仮想プリンタ１２０は、Ｓ６１９で取得したリストに含まれる、更新対象の情報処理装置に対して、能力情報の更新通知を送信する。この能力情報の更新通知は、仮想プリンタ１２０において、能力情報が更新されたことを情報処理装置１３０に知らせる通知である。尚、Ｓ６２０の各装置に更新通知を配信するタイミング（時間）を、適宜ずらして分散させてもよい。これは、各装置からリクエストされる能力情報の再取得要求のタイミングを分散させる効果がある。これにより同タイミングで多数のリクエストが仮想プリンタ１２０に対して送信されることが抑制され、仮想プリンタ１２０上における単位時間あたりの負荷を低減することができる。
【００４８】
この更新通知を受信した情報処理装置１３０はＳ６２１で、仮想プリンタ１２０に対して、その更新された能力情報を要求し、Ｓ６２２で情報処理装置１３０は、更新された能力情報を仮想プリンタ１２０から取得する。そしてＳ６２３で情報処理装置１３０は、その取得した能力情報に基づいて、仮想プリンタ情報管理部３０６で保持している仮想プリンタ１２０の能力情報を更新する。これにより印刷装置１１０の能力情報と情報処理装置１３０が保持している仮想プリンタ１２０の能力情報との同期がとれたことになる。
【００４９】
続いてＳ６２４でユーザは、情報処理装置１３０で印刷画面を開き、仮想プリンタを選択する。そしてＳ６２５で情報処理装置１３０は、仮想プリンタ情報管理部３０６にアクセスし、Ｓ６２３で更新した仮想プリンタ１２０の能力情報を基に印刷設定画面の作成及び表示を行う。そしてＳ６２６でユーザは、その表示された印刷設定画面から所望の印刷設定を行って印刷データを送信するための操作を行う。これにより情報処理装置１３０はＳ６２７で、ユーザが入力した印刷設定を基に印刷ジョブを作成し、Ｓ６２８で、その印刷ジョブを仮想プリンタ１２０に送信する。そしてＳ６２９〜Ｓ６３１で、前述のＳ６１２〜Ｓ６１４と同様に、印刷装置１１０から仮想プリンタ１２０に印刷ジョブを要求し、仮想プリンタ１２０が、その要求された印刷ジョブを印刷装置に送信することより、印刷装置１１０で、その印刷ジョブが実行される。
【００５０】
このように情報処理装置１３０が仮想プリンタ１２０からイベントを受信可能である場合は、仮想プリンタ１２０は、情報処理装置１３０に対して、仮想プリンタ１２０の能力情報の保持を許可する。そして印刷装置１１０の能力情報が更新されて仮想プリンタ１２０に保存されている能力情報が更新されると、情報処理装置１３０に対して能力情報の更新通知が送信される。これにより情報処理装置１３０は、その更新通知に応答して仮想プリンタ１２０に保存されている能力情報を再取得する。これにより情報処理装置１３０は、最新の仮想プリンタ１２０の能力情報に従って印刷ジョブを作成することができる。
【００５１】
図７は、実施形態に係る情報処理装置１３０が能力情報の保持が禁止されている場合の仮想プリンタ１２０の能力情報の更新処理を示すシーケンス図である。
【００５２】
Ｓ７０１で情報処理装置１３０は、仮想プリンタ１２０に対して、イベント配信サービス７００の生成を要求する。このイベント配信サービス７００は、イベント配信サーバ１４０で動作し、仮想プリンタ１２０の状態を監視する。またイベント配信サービス７００は、仮想プリンタ１２０における能力情報の更新を検知すると、その能力情報の更新を情報処理装置１３０に通知する。
【００５３】
Ｓ７０２で仮想プリンタ１２０は、イベント配信サーバ１４０においてイベント配信サービス７００を生成する。そしてＳ７０３で仮想プリンタ１２０は、情報処理装置１３０に対して、イベント配信サービスの生成要求に対する応答を送信する。この応答によって仮想プリンタ１２０は、イベント配信サービス７００の生成が成功したことを情報処理装置１３０に通知する。
【００５４】
これによりＳ７０４で情報処理装置１３０は、イベント配信サービス７００に対して、更新された能力情報を通知するように要求する。
【００５５】
その後、Ｓ７０５で仮想プリンタ１２０の能力情報が更新されるとイベント配信サービス７００は、仮想プリンタ１２０の能力情報が更新されたことを検知する。そしてＳ７０６でイベント配信サービス７００は、情報処理装置１３０に対して、仮想プリンタ１２０の能力情報が更新されたことを通知する。こうして情報処理装置１３０は、この能力情報の更新通知を受信することによって、仮想プリンタ１２０の能力情報が更新されたことを検知することができる。
【００５６】
図８は、実施形態に係る印刷システムにおける情報処理装置１３０、仮想プリンタ１２０、及び印刷装置１１０との間のデータのやり取りを示すシーケンス図である。尚、図８は前述の図６と異なり、情報処理装置１３０が能力情報の保持が禁止されている場合の例を示している。
【００５７】
Ｓ８０１でユーザは、情報処理装置１３０の印刷アプリケーション３０１から印刷画面を開いて仮想プリンタを選択する。これにより情報処理装置１３０はＳ８０２で、自身がイベントを受信可能かどうか判定する。ここでは報処理装置１３０は、イベントの受信が不可であるとして説明する。Ｓ８０３で情報処理装置１３０は、仮想プリンタ１２０に対して能力情報を要求する。この例において情報処理装置１３０は、イベント配信に対応していないため能力情報の要求(Get-Printer-Attributes Request)は、情報処理装置１３０がイベントの受信が不可であることを示す情報を含む。ＩＰＰ通信メッセージの具体的な内容は図１３を参照して後述する。
【００５８】
Ｓ８０４で仮想プリンタ１２０は、情報処理装置１３０から受信したＩＰＰ通信メッセージに基づいて、情報処理装置１３０がイベントの受信が可能かどうか判定する。この例では、情報処理装置１３０はイベントの受信が不可であるため、仮想プリンタ１２０は、その情報処理装置をクライアントＤＢ５１２へ登録しない。そしてＳ８０５で仮想プリンタ１２０は、Ｓ８０３で受信した能力情報の要求に対する応答メッセージを送信する。ここで情報処理装置１３０は、イベントの受信が不可であるため、ＩＰＰ通信メッセージ（Get-Printer-Attributes Response）は、通知する能力情報とともに、能力情報の保持を禁止することを示す情報が含まれて送信される。具体的なメッセージは、図１３を参照して後述する。
【００５９】
Ｓ８０６で情報処理装置１３０は、受信した能力情報の応答メッセージから、能力情報の保持が禁止されているかどうか判定する。そしてＳ８０７で情報処理装置１３０は、受信した能力情報に基づいて、印刷設定画面の作成及び表示を行う。
【００６０】
続いてＳ８０８でユーザは、その印刷設定画面を介して所望の印刷設定を行った後、情報処理装置１３０に対して印刷データの送信要求を行う。
【００６１】
これによりＳ８０９で情報処理装置１３０は、ユーザが入力した印刷設定に基づいて印刷ジョブを生成する。そしてＳ８１０で情報処理装置１３０は、その生成した印刷ジョブを仮想プリンタ１２０に送信する。そしてＳ８１１で情報処理装置１３０は、仮想プリンタ１２０の能力情報の保持が禁止されているため、Ｓ８０５で受信した能力情報を保持せず廃棄する。このＳ８１１は、前述の図６のＳ６１１と大きく異なる点である。
【００６２】
この後、Ｓ８１２〜Ｓ８１４で、前述の図６のＳ６１２〜Ｓ６１４と同様に、印刷装置１１０から仮想プリンタ１２０に印刷ジョブが要求され、仮想プリンタ１２０はその要求された印刷ジョブを印刷装置に送信する。これにより印刷装置１１０はＳ８１４で、その印刷ジョブを実行して、ユーザが所望する印刷物が得られることになる。
【００６３】
こうして、情報処理装置１３０が１度目の印刷ジョブを作成して送信した後、Ｓ８１５で、印刷装置１１０が縮退モードへ移行して、印刷装置１１０の使用可能な機能が削減される。それに伴いＳ８１６で印刷装置１１０は、その縮退に応じて、自身の能力情報を更新する。そしてＳ８１７で印刷装置１１０は、更新後の印刷装置１１０の能力情報を仮想プリンタ１２０に通知する。これは前述の図６のＳ６１５〜Ｓ６１７と同じである。
【００６４】
これによりＳ８１８で仮想プリンタ１２０は、能力情報を更新する。仮想プリンタ１２０の能力情報の更新に伴い、Ｓ８１９で仮想プリンタ１２０は、クライアントＤＢ５１２から能力情報の更新の通知先リストを取得する。この例では情報処理装置１３０はクライアントＤＢ５１２に登録されていないため、仮想プリンタ１２０は、この能力情報の更新通知を情報処理装置１３０に対して送信しない。従って、図６のＳ６２０〜Ｓ６２３に示すような、仮想プリンタ１２０から情報処理装置１３０への能力情報の更新通知が実行さない。
【００６５】
こうして仮想プリンタ１２０の能力情報が更新された後、ユーザは、再度、印刷ジョブの作成を行う。Ｓ８２０でユーザは、情報処理装置１３０の印刷アプリケーション３０１から印刷画面を開いて、仮想プリンタ１２０を選択する。そしてＳ８２１で情報処理装置１３０は、イベントの受信が不可であることを示す情報を含めて仮想プリンタ１２０に、その能力情報を要求する。
【００６６】
これによりＳ８２２で仮想プリンタ１２０は、受信したＩＰＰ通信メッセージに基づいて、情報処理装置１３０がイベントを受信不可であるか否か判定する。そしてＳ８２３で仮想プリンタ１２０は、情報処理装置１３０がイベントの受信が不可であるため、情報処理装置１３０に、能力情報の保持禁止を示す情報を含めて能力情報を通知する。
【００６７】
Ｓ８２４で情報処理装置１３０は、受信した能力情報の応答メッセージから、能力情報の保持が禁止されているかどうか判定する。そしてＳ８２５で情報処理装置１３０は、受信した能力情報から印刷設定画面の作成及び表示を行う。
【００６８】
そしてＳ８２６でユーザは、その印刷設定画面を介して所望の印刷設定を行い、印刷データの送信要求を行う。これにより情報処理装置１３０はＳ８２７で、ユーザが入力した印刷設定に基づいて印刷ジョブを作成する。そしてＳ８２８で情報処理装置１３０は、その作成した印刷ジョブを仮想プリンタ１２０に送信する。そしてＳ８２９で情報処理装置１３０は、能力情報の保持が禁止されているため、その能力情報を仮想プリンタ情報管理部３０６に登録せずに廃棄する。尚、仮想プリンタ１２０の能力情報の更新後の印刷ジョブ作成のシーケンスは、前述のＳ８０１〜Ｓ８１４と同じシーケンスとなるため、その説明を省略する。またＳ８３０〜Ｓ８３２の処理も、前述のＳ８１２〜Ｓ８１４の処理と同じであるため、その説明を省略する。
【００６９】
以上説明したように情報処理装置１３０が仮想プリンタ１２０からイベントを受信できない場合、仮想プリンタ１２０は、情報処理装置１３０に対して、仮想プリンタ１２０の能力情報の保持を禁止する。これにより情報処理装置は、印刷ジョブを作成した後、能力情報を保持せず、印刷ジョブを作成する度に、仮想プリンタ１２０から能力情報を取得する。これにより情報処理装置１３０は、イベントを受信できない場合でも、仮想プリンタ１２０の最新の能力情報に基づいて印刷ジョブを作成できる。
【００７０】
図９は、実施形態に係る情報処理装置１３０が実行する処理を説明するフローチャートである。尚、このフローチャートで示す処理はＣＰＵ２０１がＲＡＭ２０３に展開したプログラムを実行することにより実現される。尚、このフローチャートで示す処理は、ユーザが印刷画面で仮想プリンタ１２０を選択した後、１度目の印刷ジョブを仮想プリンタ１２０に送信するまでの処理で示している。
【００７１】
まずＳ９０１でＣＰＵ２０１はイベント受信制御部３０８として機能し、情報処理装置１３０がイベントを受信可能かどうか判定する。ここでイベントを受信可能と判定するとＳ９０２に進み、そうでないときはＳ９０７に進む。Ｓ９１１でＣＰＵ２０１はＩＰＰ通信メッセージ処理部３０４として機能し、情報処理装置１３０がイベントを受信可能であることを示す情報を含めた能力情報の要求メッセージを生成し、データ通信制御部３１０を通じて仮想プリンタ１２０に送信する。
【００７２】
その後、Ｓ９０３でＣＰＵ２０１はＩＰＰ通信メッセージ処理部３０４として機能し、仮想プリンタ１２０からデータ通信制御部３１０を通じて応答メッセージを受信する。そしてＣＰＵ２０１は仮想プリンタ情報処理部３０５として機能し、その受信した応答メッセージから能力情報を取得してＲＡＭ２０３に一時的に記憶する。
【００７３】
次にＳ９０４でＣＰＵ２０１は印刷画面制御部３１１として機能し、ユーザの操作に応じて、仮想プリンタ情報処理部３０５が取得した能力情報を用いて印刷設定画面を作成して操作部Ｉ／Ｆ２０７を介してタッチパネル２０８に表示する。そしてＳ９０５でＣＰＵ２０１はＩＰＰクライアント制御部３０３として機能し、印刷設定画面を介してユーザが入力した設定内容を印刷画面制御部３１１から取得する。そしてＣＰＵ２０１は印刷ジョブ生成部３０７として機能して、印刷アプリケーションで生成した印刷データに基づいて印刷ジョブを生成する。そしてＣＰＵ２０１は、その生成した印刷ジョブをプリントスプーラ３０９に保存し、データ通信制御部３１０を経由して仮想プリンタ１２０に順次送信する。そしてＳ９０６に進みＣＰＵ２０１は仮想プリンタ情報処理部３０５として機能し、ＲＡＭ２０３に保持されている能力情報を仮想プリンタ情報管理部３０６に登録して、この処理を終了する。
【００７４】
一方、Ｓ９０１で情報処理装置１３０がイベントの受信が不可であると判定した場合はＳ９０７に進む。Ｓ９０７でＣＰＵ２０１はＩＰＰ通信メッセージ処理部３０４として機能し、情報処理装置１３０がイベントの受信が不可であることを示す情報を含めた能力情報の要求メッセージを生成し、データ通信制御部３１０により仮想プリンタ１２０に送信する。そしてＳ９０８でＣＰＵ２０１はＩＰＰ通信メッセージ処理部３０４として機能し、仮想プリンタ１２０からの応答メッセージを受信すると、その受信した応答メッセージから能力情報を取得してＲＡＭ２０３に一時的に記憶する。
【００７５】
次にＳ９０９に進みＣＰＵ２０１は仮想プリンタ情報処理部３０５として機能し、受信した応答メッセージの内容から、能力情報の保持が禁止されているか否か判定する。ここで能力情報の保持が禁止されていると判定したときはＳ９１０に進む。Ｓ９１０でＣＰＵ２０１は印刷画面制御部３１１として機能し、取得した能力情報を用いて印刷設定画面を作成し、その印刷設定画面を操作部Ｉ／Ｆ２０７を介してタッチパネル２０８に表示する。そしてＳ９１１でＣＰＵ２０１は印刷ジョブ生成部３０３として機能し、ユーザが入力した設定内容を取得する。そしてＣＰＵ２０１は印刷ジョブ生成部３０７として機能し、その印刷設定に基づいて印刷ジョブを生成して仮想プリンタ１２０に送信する。そしてＳ９１２に進みＣＰＵ２０１は仮想プリンタ情報処理部３０５として機能し、ＲＡＭ２０３に保持されている能力情報を、仮想プリンタ情報管理部３０６に登録せずにクリア（廃棄）して、この処理を終了する。
【００７６】
またＳ９０３でＣＰＵ２０１は、能力情報の保持が禁止されていないと判定したときはＳ９１３に進む。Ｓ９１３でＣＰＵ２０１は、Ｓ９０４，Ｓ９１０と同様に、印刷設定画面を表示し、続いてＳ９１４で、Ｓ９０５，Ｓ９１１と同様にして印刷ジョブの作成と送信を行う。そしてＳ９１５に進みＣＰＵ２０１は仮想プリンタ情報処理部３０５として機能し、ＲＡＭ２０３に保持されている能力情報を、仮想プリンタ情報管理部３０６に登録して、この処理を終了する。
【００７７】
この処理により情報処理装置１３０は、イベントの受信が可能であれば、仮想プリンタ１２０から取得した能力情報を保存できるため、一々、仮想プリンタ１２０に問い合わせなくても、能力情報に応じた印刷ジョブを作成できる。また、イベントの受信が不可で、能力情報の保存が禁止されていれば仮想プリンタ１２０から取得した能力情報を保存しない。これにより、仮想プリンタの能力情報が変化した際に、情報処理装置が保持している仮想プリンタの能力情報と、実際の仮想プリンタの能力情報との間に差異が生じることがなくなる。
【００７８】
図１０は、実施形態に係る仮想プリンタ１２０による処理を説明するフローチャートである。尚、このフローチャートで示す処理はＣＰＵ４１１がＲＡＭ４１３に展開したプログラムを実行することにより実現される。また、ここでは仮想プリンタ１２０が、情報処理装置１３０からの能力情報の要求を受信し、情報処理装置１３０に能力情報を通知するまでの処理を示している。
【００７９】
まずＳ１００１でＣＰＵ４１１はクライアント情報処理部５１１として機能し、後述の能力情報要求メッセージ１３０１（図１３）で通知されたイベント受信可否情報１３０２に基づき、情報処理装置１３０が、イベント配信サーバ１４０を経由してイベント（能力情報の更新通知）の受信が可能かどうか判定する。ここで、情報処理装置１３０がイベントの受信が可能と判定するとＳ１００２に進む。Ｓ１００２でＣＰＵ４１１は仮想プリンタ能力生成部５１６として機能し、プリンタＤＢ５１４に保存されている印刷装置１１０の能力情報に基づいて仮想プリンタ１２０の能力情報を生成してＩＰＰ通信メッセージ処理部５１５に渡す。これによりＩＰＰメッセージ処理部５１５は、情報処理装置１３０に能力情報の保持を許可するために、能力情報の保持を許可する情報を含めた能力情報通知メッセージを生成し、データ通信制御部５３０を通じて情報処理装置１３０に送信する。そしてＳ１００３に進みＣＰＵ４１１はクライアント情報処理部５１１として機能し、能力情報の保持を許可した情報処理装置１３０を登録するクライアントＤＢ５１２に、この情報処理装置１３０を登録して、この処理を終了する。
【００８０】
またＳ１００１でＣＰＵ４１１は、情報処理装置１３０がイベントの受信が不可と判定するとＳ１００４に進む。Ｓ１００４でＣＰＵ４１１は仮想プリンタ能力生成部５１６として機能し、プリンタＤＢ５１４に保存されている印刷装置１１０の能力情報に基づいて仮想プリンタ１２０の能力情報を生成してＩＰＰ通信メッセージ処理部に渡す。このときＣＰＵ４１１はＩＰＰメッセージ処理部５１５として機能し、情報処理装置１３０に能力情報の保持を禁止するための情報を含めた能力情報通知メッセージを生成して情報処理装置１３０に送信する。
【００８１】
この処理により、能力情報の更新通知を受信できない情報処理装置に対しては、能力情報の保持を禁止し、能力情報の更新通知を送信する対象の情報処理装置として登録しない。一方、能力情報の更新通知を受信できる情報処理装置に対しては、能力情報の保持を許可し、能力情報の更新通知を送信する対象の情報処理装置として登録する。これにより、能力情報が更新されたときは、登録されている情報処理装置に、その更新通知が送られるため、情報処理装置が保持している能力情報と、仮想プリンタの能力情報との齟齬が生じることがなくなる。
【００８２】
図１１は、実施形態に係る仮想プリンタ１２０による処理を説明するフローチャートである。尚、このフローチャートで示す処理はＣＰＵ４１１がＲＡＭ４１３に展開したプログラムを実行することにより実現される。また、ここでは仮想プリンタ１２０が、情報処理装置１３０に能力情報の保持を許可した後、仮想プリンタ１２０の能力情報を更新する際の動作を示している。
【００８３】
まずＳ１１０１でＣＰＵ４１１はＩＰＰ通信メッセージ処理部５１５として機能し、印刷装置１１０からデータ通信制御部５３０を通じて能力情報の通知メッセージを受信する。そしてＣＰＵ４１１はプリンタ情報処理部５１３として機能し、受信したメッセージから印刷装置１１０の最新の能力情報を取得してプリンタＤＢ５１４に保存する。こうして仮想プリンタ能力情報生成部５１６は、プリンタＤＢ５１４に保存された印刷装置１１０の能力情報に基づいて、仮想プリンタ１２０の能力情報を更新する。次にＳ１１０２に進みＣＰＵ４１１はイベント通知制御部５１７として機能し、クライアントＤＢ５１２から、能力情報の更新通知が必要な情報処理装置のリストを取得する。そしてＳ１１０３に進みＣＰＵ４１１はイベント通知制御部５１７として機能し、取得したリストに含まれる、送信対象の情報処理装置に対して、データ通信制御部５３０を通じて能力情報の更新を通知する。
【００８４】
この処理により仮想プリンタは、集約して管理している印刷装置の能力情報が更新されたときは、登録されている情報処理装置に、その更新通知を送信することができる。
【００８５】
図１２は、実施形態に係る情報処理装置１３０による処理を説明するフローチャートである。尚、このフローチャートで示す処理はＣＰＵ２０１がＲＡＭ２０３に展開したプログラムを実行することにより実現される。この処理は、情報処理装置１３０が能力情報の保持を許可されている場合における、仮想プリンタ１２０の能力情報の更新時の動作を示している。
【００８６】
まずＳ１２０１でＣＰＵ２０１はイベント受信制御部３０８として機能し、仮想プリンタ１２０から能力情報の更新通知を受信する。次にＳ１２０２に進みＣＰＵ２０１はＩＰＰ通信メッセージ処理部３０６として機能し、その更新された能力情報を要求するメッセージを生成して仮想プリンタ１２０に送信する。次にＳ１２０３に進みＣＰＵ２０１は仮想プリンタ情報管理部３０６として機能し、ＩＰＰ通信メッセージ処理部３０４が受信した能力情報の通知メッセージから、仮想プリンタ１２０の更新された能力情報を取得する。そしてＳ１２０４に進みＣＰＵ２０１は仮想プリンタ情報処理部３０５として機能し、仮想プリンタ情報管理部３０６に保持している仮想プリンタ１２０の能力情報を更新して、この処理を終了する。
【００８７】
こうして情報処理装置は、保持している仮想プリンタの能力情報を、最新の能力情報に更新することができる。
【００８８】
図１３は、実施形態に係る情報処理装置１３０と仮想プリンタ１２０のＩＰＰ通信のメッセージの一例を示す図である。図１３の例は、情報処理装置１３０においてイベント通知の受信が不可である場合の例を示している。
【００８９】
１３０１は、仮想プリンタ１２０から情報処理装置１３０に送信される能力情報要求メッセージの一例（Get-Printer-Attributes Request）を示す。この能力情報要求メッセージ１３０１は、イベント受信可否情報１３０２を含んでいる。イベント受信可否情報１３０２は、情報処理装置１３０がイベント配信サーバ１４０経由でイベント受信が可能であるかを示す情報である。「event-notification-supported」の値は、情報処理装置１３０がイベントの受信が可能な場合は「true」、イベントの受信が不可の場合は「false」となる。図１３では、情報処理装置１３０はイベント受信を行うことができないため、「event-notification-supported」の値は「false」となっている。
【００９０】
仮想プリンタ１２０のクライアント情報処理部５１１は、受信した能力情報要求メッセージ１３０１に含まれるイベント受信可否情報１３０２を参照し、情報処理装置１３０がイベント受信可能であるか判定する。
【００９１】
１３０３は、能力情報要求メッセージ１３０１に対する仮想プリンタ１２０からの能力情報応答メッセージの一例（Get-Printer-Attributes Response）を示す。応答メッセージ１３０３は、能力情報の保持禁止情報１３０４を含んでいる。能力情報の保持許可／禁止情報１３０４は、情報処理装置１３０に対して、応答メッセージ１３０３で通知する能力情報の保持を禁止するか否かを示す情報である。「attributes-save-prohibited」の値は、仮想プリンタ１２０が情報処理装置１３０に能力情報の保持を禁止する場合は「true」、能力情報の保持を許可する場合は「false」となる。図１３では、仮想プリンタ１２０が、能力情報要求メッセージ１３０１から情報処理装置１３０がイベントの受信が不可であると判定する。従って仮想プリンタ１２０は、情報処理装置１３０に対して、通知した能力情報の保持を禁止するため、「attributes-save-prohibited」の値を「true」にする。情報１３０４は、能力情報の保持を制限するための情報の一例であり、これに限定されるものではない。例えば、情報１３０４の代わりに情報をキャッシュ可能な有効期限を示す情報などを通知するようにしてもよい。当該有効期限は、例えば３０分や１２時間などを適用することができる。また、当該有効期限を仮想プリンタ１２０の管理者等が変更できるようにすることもできる。
【００９２】
情報処理装置１３０の仮想プリンタ情報処理部３０５は、受信した応答メッセージ１３０２に含まれる能力情報の保持を禁止するかどうかを示す保持許可／禁止情報１３０４を参照し、印刷ジョブを作成した後に、取得した仮想プリンタ１２０の能力情報を保持するか否か判定する。なお、保持許可／禁止情報１３０４の代わりに有効期限を通知する場合、情報処理装置１３０は、図６のＳ６０１のタイミングで、保持している能力情報が有効期限切れでないか判定する。有効期限切れであると判定した場合、能力情報を再要求し、新しい能力情報を課総プリンタ１２０から取得の上、当該能力情報を保持する。一方、有効期限切れでないと判定した場合、保持している能力情報をそのまま利用する。
【００９３】
以上説明したように実施形態によれば、仮想プリンタの能力情報が動的に変化する場合でも、ユーザが使用する情報処理装置がイベント受信可能であるか否かに拘わらず、情報処理装置において最新の仮想プリンタの能力情報に基づいて印刷ジョブを作成できる。これにより、仮想プリンタの能力情報が動的に変化する場合であっても、情報処理装置が、印刷装置が実行できない印刷ジョブを作成するという事態の発生を防止できる。
【００９４】
（変形例）
上述の実施形態では、能力情報が変化した場合に、仮想プリンタからプッシュ通知する構成を前提として説明したが、これに限定されるものではない。例えば、何れの情報処理装置に対しても能力情報とともに、当該能力情報のキャッシュ利用を抑制するための情報を応答するように構成してもよい。この場合、能力情報の要求を受信した仮想プリンタ１２０のＣＰＵ４１１は、当該要求に対する応答として図１０のＳ１００４で説明した、能力情報の保持を制限するための情報（禁止情報や有効期限を示す情報）を含む能力情報通知を送信すればよい。
【００９５】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００９６】
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【符号の説明】
【００９７】
１３０…情報処理装置、１１０…印刷装置、１２０…仮想プリンタ、１４０…イベント配信サーバ
【図１】
2020035233.tif 000003
【図２】
2020035233.tif 000004
【図３】
2020035233.tif 000005
【図４】
2020035233.tif 000006
【図５】
2020035233.tif 000007
【図６】
2020035233.tif 000008
【図７】
2020035233.tif 000009
【図８】
2020035233.tif 000010
【図９】
2020035233.tif 000011
【図１０】
2020035233.tif 000012
【図１１】
2020035233.tif 000013
【図１２】
2020035233.tif 000014
【図１３】
2020035233.tif 000015