(57)【特許請求の範囲】
【請求項１】
少なくとも機種間で共通な第一の印刷属性と印刷データとに基づく印刷の実行が可能な１台以上の画像形成装置と、情報処理装置とがネットワークを介して接続可能であり、前記情報処理装置から受信した印刷属性及び印刷データに基づく印刷を前記画像形成装置が実行する情報処理システムであって、
前記情報処理装置は、
前記第一の印刷属性、前記第一の印刷属性とは異なり前記共通の範囲を超える第二の印刷属性、及び第一の印刷データとを含む印刷要求を受信する印刷要求受信手段と、
前記第二の印刷属性を前記第一の印刷データに設定した第二の印刷データを生成する印刷設定手段と、
前記第二の印刷データと前記第一の印刷属性とを前記画像形成装置に送信する印刷要求送信手段とを有し、
前記画像形成装置は、
前記情報処理装置から前記第一の印刷属性と前記第二の印刷データとを受信し、前記第二の印刷データに前記第一の印刷属性を設定する印刷サービス手段と、
前記印刷データに設定されている印刷属性に基づいて印刷の実行を制御する印刷制御手段とを有する情報処理システム。
【請求項２】
前記印刷サービス手段は、前記第一の印刷属性の値が当該画像形成装置が対応可能な値でないときは、当該値を当該画像形成装置が対応可能な値に補正して前記第一の印刷属性を前記印刷データに設定し、
前記印刷制御手段は、当該画像形成装置が対応不可能な印刷属性は無効として前記印刷データの印刷の実行を制御する請求項１記載の情報処理システム。
【請求項３】
前記情報処理装置と、前記情報処理装置に印刷要求を送信するクライアント端末とが前記ネットワークを介して接続可能な前記情報処理システムであって、
前記情報処理装置は、
前記第一の印刷属性及び前記第二の印刷属性の設定が可能な印刷設定画面を前記クライアント端末に表示させる表示制御手段を有する請求項１又は２記載の情報処理システム。
【請求項４】
少なくとも機種間で共通な第一の印刷属性と印刷データとに基づく印刷の実行が可能な１台以上の画像形成装置と、情報処理装置とがネットワークを介して接続可能な情報処理システムにおける画像形成装置であり、前記第一の印刷属性を前記印刷データに設定する印刷サービス手段、及び、前記印刷サービス手段が印刷データに設定した印刷属性に基づいて印刷の実行を制御する印刷制御手段を備える前記画像形成装置であって、
前記情報処理装置が、前記第一の印刷属性、前記第一の印刷属性とは異なり前記共通の範囲を超える第二の印刷属性、及び第一の印刷データとを含む印刷要求を受信し、前記第二の印刷属性を前記第一の印刷データに設定した第二の印刷データを生成した上で送信した前記第二の印刷データと前記第一の印刷属性とを受信する受信手段と、
受信した前記第二の印刷データ及び前記第一の印刷属性とを印刷サービス手段に入力する入力手段とを有する画像形成装置。
【請求項５】
少なくとも機種間で共通な第一の印刷属性と印刷データとに基づく印刷の実行が可能な１台以上の画像形成装置と、情報処理装置とがネットワークを介して接続可能な情報処理システムにおける情報処理装置であって、
前記第一の印刷属性、前記第一の印刷属性とは異なり前記共通の範囲を超える第二の印刷属性、及び第一の印刷データとを含む印刷要求を受信する印刷要求受信手段と、
前記第二の印刷属性を前記第一の印刷データに設定した第二の印刷データを生成する印刷設定手段と、
前記第二の印刷データと前記第一の印刷属性とを前記画像形成装置に送信する印刷要求送信手段とを有する情報処理装置。
【請求項６】
情報処理装置と、少なくとも機種間で共通な第一の印刷属性と印刷データとに基づく印刷の実行が可能であり、前記情報処理装置からネットワークを介して受信した印刷属性及び印刷データに基づく印刷を実行する画像形成装置とが実行する情報処理方法であって
前記情報処理装置は、
前記第一の印刷属性、前記第一の印刷属性とは異なり前記共通の範囲を超える第二の印刷属性、及び第一の印刷データとを含む印刷要求を受信する印刷要求受信手順と、
前記第二の印刷属性を前記第一の印刷データに設定した第二の印刷データを生成する印刷設定手順と、
前記第二の印刷データと前記第一の印刷属性とを前記画像形成装置に送信する印刷要求送信手順とを実行し、
前記画像形成装置は、
前記情報処理装置から前記第一の印刷属性と前記第二の印刷データとを受信し、前記第二の印刷データに前記第一の印刷属性を設定する印刷サービス手順と、
前記印刷データに設定されている印刷属性に基づいて印刷の実行を制御する印刷制御手順とを実行する情報処理方法。
【請求項７】
少なくとも機種間で共通な第一の印刷属性と印刷データとに基づく印刷の実行が可能な１台以上の画像形成装置と、情報処理装置とがネットワークを介して接続可能な情報処理システムにおける情報処理装置に、
前記第一の印刷属性、前記第一の印刷属性とは異なり前記共通の範囲を超える第二の印刷属性、及び第一の印刷データとを含む印刷要求を受信する印刷要求受信手順と、
前記第二の印刷属性を前記第一の印刷データに設定した第二の印刷データを生成する印刷設定手順と、
前記第二の印刷データと前記第一の印刷属性とを前記画像形成装置に送信する印刷要求送信手順とを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、画像形成装置、情報処理装置、情報処理方法、及びプログラムに関し、特に画像形成装置に印刷を実行させる情報処理システム、画像形成装置、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
近年では、主に複合機又は融合機と呼ばれる画像形成装置において、アプリケーションを動作させるためのプラットフォームを有し、当該プラットフォームが提供する公開されたＡＰＩ（Application Program Interface）を利用して新たなアプリケーションの開発及びインストールが可能とされているものがある（例えば、特許文献１）。
【０００３】
特許文献１に記載されたプラットフォーム（ＪＳＤＫプラットフォーム１４８）のＡＰＩは、機種に対して非依存である（機種互換が有る）ことがアプリケーションの開発者にとってのメリットの一つである。すなわち、当該ＡＰＩを使用している限り、アプリケーションの開発者は機種に応じたコーディングやコンパイル等を行う必要はない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、機種互換によるメリットの代償として、印刷属性に関するＡＰＩについては機種依存しない程度に平滑化されたインタフェースとなっている。したがって、当該ＡＰＩを介して印刷設定を行う場合、印刷先の画像形成装置の能力を有効に利用するのは困難であるという問題がある。
【０００５】
本発明は、上記の点に鑑みてなされたものであって、機種に対して共通なインタフェースを介して印刷要求を受け付ける画像形成装置の能力をより有効に利用させることのできる情報処理システム、画像形成装置、情報処理装置、情報処理方法、及びプログラムの提供を目的とする。
【課題を解決するための手段】
【０００６】
そこで上記課題を解決するため、本発明は、画像形成装置と情報処理装置とを有する情報処理システムであって、前記画像形成装置は、前記画像形成装置の機種間で共通な第一の印刷属性と印刷データとを受信し、前記印刷データに前記第一の印刷属性を設定する印刷サービス手段と、前記印刷データに設定されている印刷属性に基づいて印刷の実行を制御する印刷制御手段とを有し、前記情報処理装置は、前記第一の印刷属性、前記共通の範囲を超える第二の印刷属性、及び印刷データとを含む印刷要求を受信する印刷要求受信手段と、前記第二の印刷属性を前記印刷データに設定する印刷設定手段と、前記第二の印刷属性が設定された前記印刷データと前記第一の印刷属性とを前記画像形成装置に送信する印刷要求送信手段とを有する。
【０００７】
このような情報処理システムでは、機種に対して共通なインタフェースを介して印刷要求を受け付ける画像形成装置の能力をより有効に利用させることができる。
【発明の効果】
【０００８】
本発明によれば、機種に対して共通なインタフェースを介して印刷要求を受け付ける画像形成装置の能力をより有効に利用させることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態における情報処理システムの構成例を示す図である。
【図２】本実施の形態において印刷機能に関するソフトウェアの関係を示す図である。
【図３】印刷情報を受け付けるための各インタフェースの関係を説明するための図である。
【図４】ネットアプリ、ネットアプリ管理部、及びプロバイダアプリの機能構成例を示す図である。
【図５】本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。
【図６】本発明の実施の形態におけるユーザＰＣのハードウェア構成例を示す図である。
【図７】ユーザＰＣにおける印刷ネットアプリの処理手順を説明するためのフローチャートである。
【図８】文書ファイルがメイン画面にドラッグ＆ドロップされる様子を示す図である。
【図９】印刷設定画面の表示例を示す図である。
【図１０】印刷ネットアプリのアプリ情報の例を示す図である。
【図１１】アプリ情報の送信時の処理手順を説明するためのシーケンス図である。
【図１２】ユーザ管理テーブルの構成例を示す図である。
【図１３】画像形成装置より印刷ネットアプリが操作される際の処理手順を説明するためのシーケンス図である。
【図１４】ユーザ選択画面の表示例を示す図である。
【図１５】ネットアプリ管理部からプロバイダアプリに送信されるアプリ基本情報の構成例を示す図である。
【図１６】ネットアプリ選択画面の表示例を示す図である。
【図１７】印刷ネットアプリからの要求に応じて実行される印刷処理の処理手順を説明するためのシーケンス図である。
【発明を実施するための形態】
【００１０】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における情報処理システムの構成例を示す図である。同図の情報処理システム１において、一台以上の画像形成装置１０と、一台以上のユーザＰＣ２０と、ネットアプリ管理サーバ３０とは、ＬＡＮ（Local Area Network）等のネットワーク４０（有線又は無線の別は問わない。）によって接続されている。
【００１１】
ユーザＰＣ２０は、ユーザごとに割り当てられたＰＣ（Personal Computer）であり、画像形成装置１０との連携により所定のサービスを提供するアプリケーション（以下、「ネットアプリ」という。）を有する。同図では、ネットアプリの一例として印刷ネットアプリ２１及びスキャンネットアプリ２２が示されている。印刷ネットアプリ２１は、ネットワーク４０を介して通信可能な画像形成装置１０に印刷ジョブを実行させるネットアプリである。スキャンネットアプリ２２は、画像形成装置１０においてスキャンされた画像データに対して所定の処理（例えば、配信又は保存等）を実行するネットアプリである。
【００１２】
なお、同図では、一つのユーザＰＣ２０のみが示されているが、複数のユーザＰＣ２０がネットワーク４０に接続されていてもよい。また、各ユーザＰＣ２０が有するネットアプリはそれぞれ異なっていてもよい。
【００１３】
ネットアプリ管理サーバ３０は、ネットアプリ管理部３１０を有するコンピュータである。ネットアプリ管理部３１０は、各ユーザＰＣ２０において起動されているネットアプリに関する情報の管理や、ネットアプリと画像形成装置１０との通信の仲介等を行う。
【００１４】
画像形成装置１０は、印刷、スキャン、コピー、及びＦＡＸ送受信等の機能を一台の筐体によって実現する複合機である。但し、いずれか一つの機能を実現する装置（プリンタ、スキャナ、コピー機、ファクシミリ等）を画像形成装置１０として用いてもよい。本実施の形態においては、印刷機能を実現するためのハードウェアを備えていればよい。
【００１５】
同図において、画像形成装置１０は、標準アプリ１２１０、ＳＤＫアプリ１２２０、ＳＤＫプラットフォーム１２３０、及びサービス層１２４０等を有する。
【００１６】
標準アプリ１２１０は、画像形成装置１０に標準的に（出荷時に予め）実装されているアプリケーションの集合である。同図では、スキャンアプリ１２１１、プリンタアプリ１２１２、コピーアプリ１２１３、及びＦＡＸアプリ１２１４が例示されている。スキャンアプリ１２１１は、スキャンジョブを実行する。プリンタアプリ１２１２はネットワークを介して印刷データを受信し、受信された印刷データに基づいて印刷ジョブを実行する。すなわち、画像形成装置１０の印刷ポート宛に送信される印刷データは、プリンタアプリ１２１２によって処理される。なお、プリンタアプリ１２１２が印刷データとして処理可能なデータの形式は、ＰＤＬ（Page Description Language）に限られない。プリンタアプリ１２１２は、ＰＤＦ（Portable Document Format）データやＴＩＦＦ（Tagged Image File Format）データ等を印刷データとして受け付け、処理することもできる。したがって、以下において単に「印刷データ」というとき、そのデータはＰＤＬデータに限定されない。
【００１７】
コピーアプリ１２１３は、コピージョブを実行する。ＦＡＸアプリ１２１４は、ＦＡＸの送信ジョブ又は受信ジョブを実行する。
【００１８】
サービス層１２４０は、各種のハードウェアリソースの制御機能や管理情報等の管理機能等を上位アプリケーション等に対して提供するソフトウェアモジュール群である。同図では、当該ソフトウェアモジュールとして、通信制御部１２４１、プリンタ制御部１２４２、及びＭＩＢ管理部１２４３等が例示されている。通信制御部１２４１は、ネットワーク通信の制御を行う。例えば、プリンタアプリ１２１２による印刷データの受信もネットワーク制御部１２４１を介して行われる。プリンタ制御部１２４２は、画像形成装置１０のプリンタの制御を行う。例えば、プリンタアプリ１２１２は、プリンタ制御部１２４２を介してプリンタに印刷データの印刷を実行させる。ＭＩＢ管理部１２４３は、画像形成装置１０の記憶装置に記憶されたＭＩＢ（Management Information Base）情報を管理する。本実施の形態において、ＭＩＢ情報には、印刷ジョブの状態を示すパラメータ（オブジェクト）が含まれている。
【００１９】
ＳＤＫアプリ１２２０は、画像形成装置１０の出荷後において、画像形成装置１０の機能拡張を図るためのプラグインとして追加的にインストールされるアプリケーションである。同図では、ＳＤＫアプリ１２２０として、プロバイダアプリ１２２１が例示されている。
【００２０】
プロバイダアプリ１２２１は、ネットアプリからの要求に応じ、画像形成装置１０による機能の実行を制御する。本実施の形態では、特に、印刷ネットアプリ２１からの要求に応じ、印刷ジョブをプリンタアプリ１２１２に実行させる。
【００２１】
ＳＤＫプラットフォーム１２３０は、ＳＤＫアプリ１２２０の実行環境を提供する。換言すれば、ＳＤＫプラットフォーム１２３０上で動作するアプリケーションがＳＤＫアプリ１２２０である。各ＳＤＫアプリ１２２０は、ＳＤＫプラットフォーム１２３０が提供するＡＰＩ（Application Program Interface）を介して画像形成装置１０の各種の機能を利用する（実行させる）ことができる。例えば、当該ＡＰＩ（以下、「ＳＤＫＡＰＩ」という。）は、スキャン機能を利用させるためのインタフェース、印刷機能を利用させるためのインタフェース、コピー機能を利用させるためのインタフェース等を含む。同図に示される印刷サービス部１２３１は、印刷機能を利用させるためのインタフェースを介して呼び出される。本実施の形態において、印刷サービス部１２３１は、印刷ネットアプリ２１から印刷要求を受けたプロバイダアプリ１２２１によって呼び出される。
【００２２】
ＳＤＫＡＰＩは、画像形成装置１０の機種に非依存な平滑化されたもの（機種間で共通化されたもの）となっている。すなわち、ＳＤＫプラットフォーム１２３０によって機種間の相違が吸収され、機種間の互換性が確保されている。したがって、一つの機種上のＳＤＫプラットフォーム１２３０上において動作が保証されるＳＤＫアプリ１２２０は、他の機種におけるＳＤＫプラットフォーム１２３０上でも動作が保証される。但し、その代償として、ＳＤＫＡＰＩを介して或る機種に固有の機能を利用することはできない。例えば、特定の機種に固有の印刷設定を利用することはできない。
【００２３】
なお、ＳＤＫＡＰＩの平滑化には、ＳＤＫプラットフォーム１２３０がＪａｖａ（登録商標）仮想マシンを利用していることも寄与している。すなわち、ＳＤＫアプリ１２２０は、Ｊａｖａ（登録商標）アプリケーションとして実装される。したがって、ＳＤＫプラットフォーム１２３０は、Ｊａｖａ（登録商標）が有する機種非依存性をそのまま引き継いでいる。但し、機種非依存性を確保するために、必ずしもＪａｖａ（登録商標）を利用しなくてもよい。
【００２４】
ところで、図１には、印刷機能に関するソフトウェアが複数示されている。ここで、当該ソフトウェアの関係について整理する。
【００２５】
図２は、本実施の形態において印刷機能に関するソフトウェアの関係を示す図である。
【００２６】
通信制御部１２４１は、プリンタアプリ１２１２が印刷データを受信するための印刷ポートを開いて印刷データの受信を待機している。例えば、ユーザＰＣ２０のポートモニタ２３より送信される印刷データ（すなわち、通常のワープロソフト等より印刷指示が行われ、プリンタドライバを経由して送信される印刷データ）は、印刷ポート１２４１ｐを介して受信され（Ｓ１０）、プリンタアプリ１２１２に入力される（Ｓ１１）。プリンタアプリ１２１２は、受信された印刷データに基づいて印刷ジョブを実行する。印刷ジョブの過程において、プリンタアプリ１２１２は、プリンタ制御部１２４２を利用して画像形成装置１０のハードウェア（後述するプリンタ１３）を制御する（Ｓ１２）。また、プリンタアプリ１２１２は、印刷ジョブの進捗に応じて、印刷ジョブの状態に関するＭＩＢ情報を更新する（Ｓ１３）。
【００２７】
一方、印刷ネットアプリ２１から送信される印刷情報は、ネットアプリ管理部３１０によって受信される（Ｓ２１）。印刷情報とは、印刷データと印刷属性とを含む情報をいう。印刷属性とは、印刷データの出力態様を規定するデータであり、一般的に印刷設定情報又は印刷条件とも呼ばれる。印刷属性は、複数の項目を有し、項目ごとに値が設定されている。ネットアプリ管理部３１０は、印刷情報をプロバイダアプリ１２２１が提供するインタフェース用に加工し、加工後の印刷情報をプロバイダアプリ１２２１に送信する（Ｓ２２）。印刷情報の加工とは、主として、印刷属性の一部を印刷データに設定（記録）することである。プロバイダアプリ１２２１は、受信した印刷情報に係る印刷要求を印刷サービス部１２３１に入力する（Ｓ２３）。当該印刷要求の入力は、印刷サービス部１２３１が提供する機種非依存のインタフェース（ＳＤＫＡＰＩ）を介して行われる。印刷サービス部１２３１は、プロバイダアプリ１２２１から入力された印刷要求に係る印刷データを加工し、加工後の印刷データを印刷ポート１２４１ｐ宛に送信する（Ｓ２４）。印刷データの加工とは、主として、ネットアプリ管理部１２１によって印刷データに設定されなかった印刷属性を印刷データに設定することである。
【００２８】
印刷サービス部１２３１より印刷ポート１２４１ｐ宛に送信された印刷データは、通常の印刷データ（ポートモニタ２３より送信された印刷データ）と同様に、プリンタアプリ１２１２によって処理される（Ｓ１１〜Ｓ１３）。
【００２９】
印刷サービス部１２３１は、プロバイダアプリ１２２１からの印刷要求に係る印刷ジョブについて、その状態情報を定期的に監視（ポーリング）している（Ｓ３１）。印刷サービス部１２３１は、印刷ジョブの状態が変化すると、当該状態の変化をＳＤＫアプリ１２２０に通知する。当該通知に基づいてＳＤＫアプリ１２２０は、印刷ジョブの状態の追跡が可能となる。
【００３０】
一方、印刷ポート１２４１ｐのみをインタフェースとするプリンタアプリ１２１２では印刷ジョブの状態の変化をフィードバックすることはできない。また、ＭＩＢ管理部１２４３におけるＭＩＢ情報の管理体系又は管理形態は、機種互換が保証されていない。したがって、ＳＤＫアプリ１２２０が直接ＭＩＢ管理部１２４３にアクセスするのは、ＳＤＫアプリ１２２０の機種非依存性を損なってしまう可能性がある。
【００３１】
したがって、印刷ジョブの状態を追跡したい場合、プロバイダアプリ１２２１はＳＤＫアプリ１２２０として実装される必要がある。なお、ステップＳ２３以降の流れは、プロバイダアプリ１２２１に限らず、印刷サービス部１２３１を利用するＳＤＫアプリ１２２０に共通のものとなる。
【００３２】
図２において、印刷ネットアプリ２１を利用した場合の印刷ジョブの実行に関し、印刷情報を受け付けるためのインタフェースは５箇所有る。１つ目は、印刷ネットアプリ２１である。印刷ネットアプリ２１は、ユーザより印刷属性を受け付けためのインタフェースを有する。当該インタフェースは、画面やファイル等によって実現される。２つ目は、ネットアプリ管理部３１０である。ネットアプリ管理部３１０は、印刷ネットアプリ２１より印刷属性及び印刷データを受け付けるためのインタフェースを有する。当該インタフェースは、通信上のＡＰＩ（Application Program Interface）として提供される。したがって、印刷ネットアプリ２１は、当該ＡＰＩ（以下、「ネットアプリＡＰＩ」という。）を介して印刷属性及び印刷データをネットアプリ管理部３１０に送信する。なお、通信上のＡＰＩとは、例えば、ＨＴＴＰ（HyperText Transfer Protocol）メッセージやＳＯＡＰ（Simple Object Access Protocol）メッセージ等を媒介として利用したＡＰＩをいう。３つ目は、プロバイダアプリ１２２１である。プロバイダアプリ１２２１は、ネットアプリ管理部３１０より印刷属性及び印刷データを受け付けるためのインタフェースを有する。当該ＡＰＩは、通信上のＡＰＩとして提供される。４つ目は、印刷サービス部１２３１である。印刷サービス部１２３１は、プロバイダアプリ１２２１より印刷属性及び印刷データを受け付けるためのＳＤＫＡＰＩを有する。５つ目は、プリンタアプリ１２１２である。プリンタアプリ１２１２は、印刷サービス部１２３１より印刷データを受信するためのインタフェース（印刷ポート１２４１）を有する。なお、図中では、印刷ポート１２４１ｐは通信制御部１２４１に含まれているが、印刷ポート１２４１ｐは、プリンタアプリ１２１２からの要求に応じて開設されるため、ここでは、プリンタアプリ１２１２が有するインタフェースとして説明した。
【００３３】
上記５つのインタフェースにおいて、受け付け可能な情報はそれぞれ異なる。この点にについて図３を用いて説明する。
【００３４】
図３は、印刷情報を受け付けるための各インタフェースの関係を説明するための図である。同図において、ａ〜ｆのアルファベットは、項目ごとの印刷属性を示す。また、同図では、プロバイダアプリ１２２１に関しては省略されている。プロバイダアプリ１２２１のＡＰＩにおいて指定可能なパラメータは、印刷サービス部１２３１のＳＤＫＡＰＩに依存し、プロバイダアプリ１２２１に対して指定可能な印刷属性は、印刷サービス部１２３１に対して指定可能な印刷属性と一致するからである。
【００３５】
印刷ネットアプリ２１は、印刷属性ａ〜ｆの受け付けが可能であることが示されている。また、ネットアプリ管理部３１０が提供するネットアプリＡＰＩでは、印刷属性ａ〜ｆ、及び印刷データの指定が可能であることが示されている。また、印刷サービス部１２３１が提供するＳＤＫＡＰＩでは、印刷属性ａ〜ｃ、及び印刷データの指定が可能であるが示されている。また、プリンタアプリ１２１２に対しては、印刷データの送信が可能であることが示されている。すなわち、プリンタアプリ１２１２は、印刷属性の設定値を印刷データとは別に受信するためのインタフェースは提供していない。
【００３６】
なお、ネットアプリ管理部３１０（ネットアプリＡＰＩ）及び印刷サービス部１２３１（ＳＤＫＡＰＩ）に対する入力に関して、各印刷属性及び印刷データにはそれぞれ独立した矢印が割り当てられているが、これは、指定可能な印刷属性の相違を視認し易くするためのものであり、実際の通信単位を限定したものではない。すなわち、ネットアプリＡＰＩにおいて、印刷属性ａ〜ｆ及び印刷データは、一回の通信でまとめて送信されてもよいし、それぞれ別個の通信で送信されてもよい。ＳＤＫＡＰＩについても同様である。
【００３７】
さて、同図より明らかなように、ＳＤＫＡＰＩにおいて指定可能な印刷属性とネットアプリＡＰＩにおいて指定可能な印刷属性とは異なる。より厳密に言えば、ＳＤＫＡＰＩにおいて指定可能な印刷属性（ａ〜ｃ）は、ネットアプリＡＰＩにおいて指定可能な印刷属性（ａ〜ｆ）より少ない。換言すれば、ネットアプリＡＰＩにおいて指定可能な印刷属性の範囲は、ＳＤＫＡＰＩにおいて指定可能な印刷属性の範囲を包含する。
【００３８】
これは、ＳＤＫＡＰＩは、画像形成装置１０の機種間において共通の印刷属性（以下、「機種共通印刷属性」という。）をサポートするものであるのに対し、ネットアプリＡＰＩは、当該共通の範囲を超える印刷属性（以下、「ネットアプリ固有印刷属性」という。）についてもサポート可能とされているからである。すなわち、同図において、印刷属性ａ〜ｃは、機種共通印刷属性に該当する。一方、印刷属性ｄ〜ｆは、ネットアプリ固有印刷属性に該当する。なお、印刷サービス部１２３１のＳＤＫＡＰＩは、機種のみならず、印刷データのデータ形式に対しても非依存とされている。すなわち、プリンタアプリ１２１２は、印刷データを解釈する機能を有するが、画像形成装置１０が有するプリンタアプリ１２１２の種類によって、解釈可能な印刷データが異なる。解釈可能な印刷データが異なることにより解釈可能な印刷属性も異なりうる。そこで、いずれのプリンタアプリ１２１２が実装されている画像形成装置１０であっても動作が保証されるように、印刷サービス部１２３１のＳＤＫＡＰＩは、各種類のプリンタアプリ１２１２が共通に解釈可能な印刷属性をサポートするように定義されている。したがって、機種共通印刷属性は、厳密には、機種間かつ各種のプリンタアプリ１２１２間において共通な印刷属性であるといえる。但し、機種とプリンタアプリ１２１２との関係が固定的であれば、機種間で共通であるということは、各種のプリンタアプリ１２１２において共通であるといえる。
【００３９】
なお、機種共通印刷属性とネットアプリ固有印刷属性との違いは、印刷属性の項目の違いに限定されない。同一項目における値（設定値）の違いも機種共通印刷属性とネットアプリ固有印刷属性との違いとなりうる。例えば、用紙サイズという項目に関して、機種共通印刷属性では指定できない設定値（例えば、特殊な用紙サイズやＡ２以上の一般的な機種では対応していない用紙サイズ等）は、ネットアプリ固有印刷属性として扱われうる。
【００４０】
ここで、ネットアプリ固有印刷属性の存在意義（ネットアプリ固有印刷属性を定義する意義）について説明する。
【００４１】
ＳＤＫＡＰＩは、複数の機種に対する互換性を提供することが強く要求される。ＳＤＫＡＰＩを利用して開発されたＳＤＫアプリ１２２０は、どの機種のＳＤＫプラットフォーム１２３０上でも正常に動作することが要求され、市場において不特定のユーザに対して販売される。換言すれば、ＳＤＫアプリ１２２０は、開発時又は販売時において、いずれの機種において利用されるのか判断することはできない。したがって、ＳＤＫＡＰＩの守備範囲（本実施の形態では、ＳＤＫＡＰＩで指定可能な印刷属性の範囲）は、自ずと狭くならざるを得ない。当該守備範囲は、画像形成装置１０のメーカにとっては保証範囲となるからである。
【００４２】
一方、オフィス等のユーザ環境においては、市場において提供されている全機種の画像形成装置１０が設置されていることは極めて希である。むしろ、同一機種が複数台設置されている場合や、一台しか画像形成装置１０が設置されていない場合もある。すなわち、一つのユーザ環境において利用されている機種は、ＳＤＫアプリ１２２０が対象としている市場全体に比べれば極めて限定されている。そうすると、実際のユーザ環境において機種間で共通に利用可能な機能の範囲は、ＳＤＫＡＰＩにおいて共通化されている範囲より広いのが通常であると考えられる。
【００４３】
斯かる考えに基づいて、本実施の形態では、ネットアプリＡＰＩにおいて、ＳＤＫＡＰＩの範囲を超える印刷属性（ネットアプリ固有印刷属性）の設定を可能とし、ひいては印刷ネットアプリ２１に対して当該ネットアプリ固有印刷属性の設定を可能としているのである。
【００４４】
但し、ネットアプリ管理部３１０がネットアプリＡＰＩを介して印刷属性ｄ〜ｆの受け付けを可能としても、ＳＤＫＡＰＩでは印刷属性ｄ〜ｆを指定することはできない。そこで、ネットアプリ管理部３１０は、ＳＤＫＡＰＩの呼び出しの前に、ネットアプリ固有印刷属性について、印刷データへの設定を実行する（図３のステップＳ５１）。ネットアプリ固有印刷属性の印刷データへの設定とは、当該印刷属性に関するコマンド等を含む印刷データを生成することをいう。より具体的には、印刷属性の設定前の印刷データと印刷属性に対応するコマンドとを含むデータを新たな印刷データとして生成することである。なお、当該コマンドの記述は、例えば、ＰＪＬ（Printer Job Language）等、既存の言語が利用されてもよい。
【００４５】
したがって、ステップＳ５２において印刷サービス部１２３１に入力される印刷データは、印刷属性ｄ〜ｆの設定値が設定されたものである。
【００４６】
当該印刷データをＳＤＫＡＰＩを介して受信した印刷サービス部１２３１は、同じくＳＤＫＡＰＩを介して指定された印刷属性ａ〜ｃに関して、当該印刷データへ設定を実行する（Ｓ５３）。この際、印刷サービス部１２３１は、印刷データに既に設定されている印刷属性（ネットアプリ固有印刷属性）について除去は行わない。その結果、印刷属性ａ〜ｆが設定された印刷データがプリンタアプリ１２１２に送信される。
【００４７】
なお、ネットアプリＡＰＩにおいて指定可能なネットアプリ固有印刷属性の範囲は、ユーザ環境における情報システム１の構築作業の一環としてユーザ環境に応じて定義（カスタマイズ）されてもよいし、全ユーザ環境に対して共通のもの（すなわち、固定的なもの）であってもよい。ネットアプリ固有印刷属性の範囲がユーザ環境に応じて定義される場合であっても、当該ネットアプリ固有印刷属性の範囲は、当該ユーザ環境における全機種に共通な印刷属性の範囲に限定する必要はない。例えば、当該ユーザ環境における一機種のみにおいて有効な印刷属性がネットアプリ固有印刷属性に含まれてもよい。
【００４８】
続いて、印刷ネットアプリ２１、ネットアプリ管理部３１０、及びプロバイダアプリ１２２１の詳細について説明する。
【００４９】
図４は、ネットアプリ、ネットアプリ管理部、及びプロバイダアプリの機能構成例を示す図である。
【００５０】
同図において、印刷ネットアプリ２１は、ＵＩ制御部２１１、アプリ情報送信部２１２、連携部２１３、及び属性情報管理ファイル２１５等を有する。
【００５１】
ＵＩ制御部２１１は、印刷ネットアプリ２１に関する各種の表示画面をユーザＰＣの表示装置に表示させる。アプリ情報送信部２１２は、印刷指示の入力に応じ印刷ネットアプリ２１のアプリ情報の登録要求をネットアプリ管理サーバ３０に送信する。アプリ情報には、印刷ネットアプリ２１の実行に必要な情報が含まれる。連携部２１３は、画像形成装置１０との連携のためのコミュニケーション（情報のやりとり等）を制御する。属性情報管理ファイル２１５は、印刷ネットアプリ２１の属性情報を格納するファイルである。属性情報には、例えば、印刷ネットアプリ２１の識別子（アプリＩＤ）や、印刷ネットアプリ２１の所有者であるユーザのユーザＩＤや、印刷属性（印刷条件を示す情報）の初期値等が含まれる。
【００５２】
印刷ネットアプリ２１の属性情報管理ファイル２１５において各ネットアプリの所有者のユーザＩＤが記録されていることからも分かるように、各ネットアプリはユーザに属する。したがって、同一のネットアプリであっても、各ネットアプリが属するユーザが異なる場合、各ネットアプリは異なるものとして区別される。例えば、ユーザＡに属するネットアプリは、基本的にユーザＡに対してのみ利用が許可される。ユーザＢに属するネットアプリは、基本的にユーザＢに対してのみ利用が許可される。但し、例えば、アクセス制御機能によって他のユーザに対して利用権限を与えることにより、他人が所有者であるネットアプリの利用を各ユーザに許可してもよい。
【００５３】
なお、スキャンネットアプリ２２も、ＵＩ制御部２１１、アプリ情報送信部２１２、連携部２１３、及び属性情報管理ファイル２１５等と同様の機能又は情報を有する。但し、スキャンネットアプリ２２が処理対象とするデータは、画像形成装置１０においてスキャンされた画像データである点において印刷ネットアプリ２１と異なる。
【００５４】
ネットアプリ管理部３１０は、アプリ情報登録部３１、広告部３２、アプリ情報提供部３２、及び仲介部３４等を有する。アプリ情報登録部３１は、ネットアプリより送信されるアプリ情報の登録要求を受信し、当該アプリ情報をアプリ情報管理テーブル３５に保存する。アプリ情報管理テーブル３５は、ユーザごとにネットアプリ管理サーバ３０の記憶装置に生成される。すなわち、各アプリ情報管理テーブル３５は、対応するユーザに属するネットアプリのアプリ情報を管理する。なお、アプリ情報には、印刷属性及び印刷データが含まれる。すなわち、アプリ情報登録部３１は、印刷ネットアプリ２１に対してネットアプリＡＰＩを提供する。
【００５５】
広告部３２は、アプリ情報登録部３１によって受信されたアプリ情報に含まれるユーザＩＤをネットワーク４０上に広告（ブロードキャスト又はマルチキャスト等）する。広告は、ユーザ単位（ユーザＩＤ単位）で行われる。具体的には、ユーザＡに関して広告された後、ユーザＡに属する新たなアプリ情報が受信されたとしても当該アプリ情報に応じた広告は行われない。すなわち、広告部３２による広告は、何らかのネットアプリを利用可能になったユーザが新たに発生したことをプロバイダアプリ１２２１に通知するための情報である。但し、アプリ情報単位で広告が行われてもよい。この場合、同一ユーザについて重複して広告が発行されることになるが、重複の排除はプロバイダアプリ１２２１側で行えばよい。アプリ情報提供部３３は、プロバイダアプリ１２２１からの要求に応じ、アプリ情報管理テーブル３５に登録されているアプリ情報をプロバイダアプリ１２２１に提供（送信）する。仲介部３４は、ネットアプリとプロバイダアプリ１２２１とのコミュニケーションを仲介する。また、仲介部３４は、印刷ネットアプリ２１に対応した固有の構成要素として、印刷設定部３４１及び印刷情報送信部３４２等を有する。
【００５６】
印刷設定部３４１は、アプリ情報登録部３１によって受信された印刷データに対して、同じく受信された印刷属性に含まれているネットアプリ固有印刷属性の設定を行う。印刷情報送信部３４２は、印刷設定部３４１によってネットアプリ固有印刷属性が設定された印刷データ及び機種共通印刷属性をプロバイダアプリ１２２１に送信する。
【００５７】
なお、いずれかのユーザＰＣ２０が、ネットアプリ管理サーバ３０を兼ねてもよい。すなわち、いずれかのユーザＰＣ２０又は各ユーザＰＣ２０に、ネットアプリ管理部３１０が実装されていてもよい。
【００５８】
プロバイダアプリ１２２１は、ユーザ検知部１２１、ＵＩ制御部１２２、アプリ情報取得部１２３、ネットアプリ連携部１２４、機能制御部１２５、及びユーザ管理テーブル１２６等を有する。
【００５９】
ユーザ検知部１２１は、ネットアプリ管理部３１０より発行される広告に基づいて、ネットアプリを利用可能なユーザの存在を検知し、広告に含まれているユーザＩＤ等をユーザ管理テーブル１２６に登録する。ユーザ管理テーブル１２６は、利用可能なネットアプリがネットワーク４０上に存在するユーザの一覧を管理するテーブルである。ＵＩ制御部１２２は、ユーザよりネットアプリの操作指示等の入力を受け付ける。すなわち、ネットアプリは、ユーザＰＣ２０に配置されているが、画像形成装置１０の操作パネルからも操作されうる。アプリ情報取得部１２３は、ユーザ管理テーブル１２６に登録されているユーザの中から選択されたユーザに属するネットアプリのアプリ情報をネットアプリ管理部３１０より取得する。ネットアプリ連携部１２４は、ネットアプリ（ネットアプリ管理部３１０）とのコミュニケーションを制御する。したがって、ＳＤＫＡＰＩに準拠した印刷情報の受信用のインタフェースは、ネットアプリ連携部１２４によって提供される。機能制御部１２５は、ネットアプリから要求された機能の実行を制御する。例えば、機能制御部１２５の制御により印刷又はスキャン等が実行される。
【００６０】
続いて、各装置のハードウェア構成について説明する。図５は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図５において、画像形成装置１０は、コントローラ１１、スキャナ１２、プリンタ１３、モデム１４、操作パネル１５、ネットワークインタフェース１６、及びＳＤカードスロット１７等のハードウェアを有する。
【００６１】
コントローラ１１は、ＣＰＵ１１１、ＲＡＭ１１２、ＲＯＭ１１３、及びＨＤＤ１１４等を有する。ＲＯＭ１１３には、各種のプログラムやプログラムによって利用されるデータ等が記録されている。ＲＡＭ１１２は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。ＣＰＵ１１１は、ＲＡＭ１１２にロードされたプログラムを処理することにより、各種の機能を実現する。ＨＤＤ１１４には、プログラムやプログラムが利用する各種のデータ等が記録される。
【００６２】
スキャナ１２は、原稿より画像データを読み取るためのハードウェアである。プリンタは１３、印刷画像を印刷用紙に印刷するためのハードウェアである。モデム１４は、電話回線に接続するためのハードウェアであり、ＦＡＸ通信による画像データの送受信を実行するために用いられる。操作パネル１５は、ユーザからの入力の受け付けを行うめのボタン等の入力手段や、液晶パネル等の表示手段を備えたハードウェアである。ネットワークインタフェース１６は、ＬＡＮ等のネットワーク（有線又は無線の別は問わない。）に接続するためのハードウェアである。ＳＤカードスロット１７は、ＳＤカード８０に記録されたプログラムを読み取るために利用される。すなわち、画像形成装置１０では、ＲＯＭ１１３に記録されたプログラムだけでなく、ＳＤカード８０に記録されたプログラムもＲＡＭ１１２にロードされ、実行されうる。なお、他の記録媒体（例えば、ＣＤ−ＲＯＭ又はＵＳＢ（Universal Serial Bus）メモリ等）によってＳＤカード８０が代替されてもよい。すなわち、ＳＤカード８０の位置付けに相当する記録媒体の種類は、所定のものに限定されない。この場合、ＳＤカードスロット１７は、記録媒体の種類に応じたハードウェアによって代替されればよい。
【００６３】
図６は、本発明の実施の形態におけるユーザＰＣのハードウェア構成例を示す図である。図６のユーザＰＣ２０は、それぞれバスBで相互に接続されているドライブ装置２００と、補助記憶装置２０２と、メモリ装置２０３と、ＣＰＵ２０４と、インタフェース装置２０５と、表示装置２０６と、入力装置２０７とを有する。
【００６４】
ユーザＰＣ２０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体２０１によって提供される。プログラムを記録した記録媒体２０１がドライブ装置２００にセットされると、プログラムが記録媒体２０１からドライブ装置２００を介して補助記憶装置２０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体２０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置２０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００６５】
メモリ装置２０３は、プログラムの起動指示があった場合に、補助記憶装置２０２からプログラムを読み出して格納する。ＣＰＵ２０４は、メモリ装置２０３に格納されたプログラムに従ってユーザＰＣ２０に係る機能を実現する。インタフェース装置２０５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置２０６はプログラムによるＧＵＩ（Graphical User Interface）等を表示する。入力装置２０７はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
【００６６】
以下、情報処理システム１の処理手順について説明する。図７は、ユーザＰＣにおける印刷ネットアプリの処理手順を説明するためのフローチャートである。
【００６７】
ユーザＰＣ２０においてユーザによって入力される印刷ネットアプリ２１の起動指示に応じ、ＵＩ制御部２１１は、印刷ネットアプリ２１のメイン画面を表示装置２０６に表示させる（Ｓ１０１）。続いて、ＵＩ制御部２１１は、印刷対象とする文書ファイル（例えば、ＰＤＦファイル又はＴＩＦＦファイル等、プリンタアプリ１２１２が直接的に処理可能なデータ形式の文書ファイル）の選択をユーザより受け付ける（Ｓ１０２）。文書ファイルの選択は、例えば、文書ファイルアイコンを印刷ネットアプリ２１のメイン画面にドラッグ＆ドロップすることにより行われる。
【００６８】
図８は、文書ファイルがメイン画面にドラッグ＆ドロップされる様子を示す図である。同図では、表示装置２０６に表示されたメイン画面５１０に、ファイルＡのアイコンがドラッグ＆ドロップされる様子が示されている。なお、メイン画面５１０は単なる矩形によって示されているが、ツールバーやプルダウンメニュー等の表示部品を備えていてもよい。また、文書ファイルの選択は、ツールボタンやメニュー項目の選択によって表示されるファイルダイアログ（ファイルシステム上に存在するファイルを選択させるためのダイアログ）を介して行われてもよい。
【００６９】
文書ファイルの選択に応じ、ＵＩ制御部２１１は、選択された文書ファイルのファイル名をメモリ装置２０３に記録しておく。
【００７０】
続いて、ＵＩ制御部２１１は、選択された文書ファイルのアイコンをメイン画面５１０内に表示させると共に、印刷設定画面を表示装置２０６に表示させる（Ｓ１０３）。
【００７１】
図９は、印刷設定画面の表示例を示す図である。同図において、印刷設定画面５２０は、メイン画面５１０の右隣に表示されている。印刷設定画面５２０の詳細な表示例は図中右側に示されている。図３において説明した通り、印刷設定画面５２０では、機種共通印刷属性及びネットアプリ固有印刷属性に関する設定が可能とされる。同図の例では、印刷部数、カラー指定、両面、集約、用紙サイズ、折り、パンチ、及びトナーセーブ等の設定が可能とされている。このうち、印刷部数、カラー指定、両面、集約、及び用紙サイズの一部（基本的な用紙サイズ）は、機種共通印刷属性に属する。一方、用紙サイズの一部（特殊な用紙サイズ）、折り、パンチ、及びトナーセーブは、ネットアプリ固有印刷属性に属する。トナーセーブとは、トナーの消費量を抑制して印刷するモードである。なお、これらの属性項目はあくまでも例示であり、属性項目の種類は所定のものに限定されない。
【００７２】
印刷設定画面５１０において各印刷属性の値が設定されると、ＵＩ制御部２１１は、設定された印刷属性をメモリ装置２０３に記録しておく（Ｓ１０５）。続いて、アプリ情報送信部２１１は、上記のステップにおいて取得された情報に基づいて印刷ネットアプリ２１のアプリ情報を生成し、当該アプリ情報の登録要求をネットアプリ管理サーバ３０に送信する（Ｓ１０６）。なお、各ユーザＰＣ２０には、予めネットアプリ管理サーバ３０と通信するための情報（例えば、ＩＰアドレス又はホスト名等）が登録されている。
【００７３】
図１０は、印刷ネットアプリのアプリ情報の例を示す図である。同図において、アプリ情報は、アプリ基本情報及びアプリ拡張情報に大別される。アプリ基本情報は、各ネットアプリが共通にアプリ情報に含める情報であり、アプリＩＤ、ユーザＩＤ、連携機能識別子、表示名等を含む。
【００７４】
アプリＩＤは、各ネットアプリを一意に識別する識別情報である。ユーザＩＤは、印刷ネットアプリ２１の所有者であるユーザの識別情報である。連携機能識別子は、ネットアプリと連携する画像形成装置１０が有している必要のある機能（換言すれば、ネットアプリが利用する機能）を識別するための情報である。連携機能識別子の一例として「ｐｒｉｎｔ」、「ｓｃａｎ」等が挙げられる。「ｐｒｉｎｔ」は、印刷機能を示す。「ｓｃａｎ」は、スキャン機能を示す。印刷ネットアプリ２１は、画像形成装置１０の印刷機能を利用する。したがって、図１０の例では、「ｐｒｉｎｔ」が連携機能識別子とされている。表示名は、ネットアプリの名前の表示用の文字列である。なお、アプリＩＤ、ユーザＩＤ、連携機能識別子は、例えば、属性情報管理ファイル２１５より取得される。また、表示名は、印刷対象とされたファイル名と、印刷ネットアプリ２１の名前とに基づいて生成される。印刷ネットアプリ２１の名前は属性情報管理ファイル２１５より取得される。
【００７５】
一方、アプリ拡張情報は、ネットアプリ２１ごとにその構成が異なりうる情報である。印刷ネットアプリ２１に関しては、印刷属性及び印刷データがアプリ拡張情報に含まれる。印刷属性は、印刷設定画面５１０において設定された印刷属性である。但し、属性情報管理ファイル２１５に格納されている値が含まれてもよい。印刷データは、印刷対象とされた文書ファイルそのものである。
【００７６】
すなわち、印刷ネットアプリ２１によるアプリ拡張情報の送信は、図３における印刷属性ａ〜ｆ、及び印刷データの送信に相当する。したがって、アプリ情報の形式は、ネットアプリＡＰＩに従ったものである。
【００７７】
なお、アプリ情報は、一回の通信によってネットアプリ管理サーバ３０に送信されなくてもよい。例えば、項目ごとに送信が行われてもよいし、アプリ基本情報とアプリ拡張情報とが別々に送信されてもよい。
【００７８】
続いて、ステップＳ１０６のアプリ情報の送信に応じて実行される処理手順について説明する。図１１は、アプリ情報の送信時の処理手順を説明するためのシーケンス図である。
【００７９】
ステップＳ１１１において、印刷ネットアプリ２１のアプリ情報送信部２１２より送信されたアプリ情報は、ネットアプリ管理部３１０のアプリ情報登録部３１によって受信される。アプリ情報登録部３１は、受信されたアプリ情報に含まれているユーザＩＤに対応するアプリ情報管理テーブル３５に当該アプリ情報を登録する。当該ユーザＩＤに対応するアプリ情報管理テーブル３５が存在しない場合、アプリ情報登録部３１は、当該ユーザＩＤに対応するアプリ情報管理テーブル３５を生成し、生成されたアプリ情報管理テーブル３５にアプリ情報を登録する（Ｓ１１２）。
【００８０】
アプリ情報管理テーブル３５が新たに生成された場合（すなわち、受信されたアプリ情報に含まれているユーザＩＤに係るユーザについて、初めてアプリ情報が登録された場合）、広告部３２は、受信されたアプリ情報に含まれているユーザＩＤと、アプリ基本情報取得用ＵＲＬ（Uniform Resource Locator）とを含む広告をネットワーク４０上に発行する（Ｓ１１３）。アプリ基本情報取得用ＵＲＬとは、アプリ情報管理テーブル３５ごとに一意なＵＲＬである。例えば、アプリ情報登録部３１は、アプリ情報管理テーブル３５を生成した際に、当該アプリ情報管理テーブル３５に対するアプリ基本情報取得用ＵＲＬを生成する。ここで、アプリ情報管理テーブル３５は、ユーザごとに生成される。したがって、アプリ基本情報取得用ＵＲＬはユーザごとに一意となる。
【００８１】
続いて、プロバイダアプリ１２２１のユーザ検知部１２１は、広告を受信すると、当該広告に含まれているユーザＩＤ及びアプリ基本情報取得用ＵＲＬをユーザ管理テーブル１２６に登録する（Ｓ１１４）。
【００８２】
図１２は、ユーザ管理テーブルの構成例を示す図である。同図に示されるように、ユーザ管理テーブル１２６は、ユーザＩＤとアプリ基本情報取得用ＵＲＬとの組（ペア）を管理する。同図では、ユーザＡ及びユーザＢについてレコードが登録されている例が示されている。なお、ユーザ管理テーブル１２６は、例えば、ＨＤＤ１１４に記憶されている。
【００８３】
その後、ユーザＰＣ２０において印刷ネットアプリ２１を介して印刷を指示したユーザは、任意のタイミングで画像形成装置１０へと移動し、画像形成装置１０より印刷ネットアプリ２１を操作する。なお、複数の画像形成装置１０がネットワーク４０に接続されている場合、同一の広告が各画像形成装置１０のユーザ検知部１２１によって受信され、それぞれの画像形成装置１０のユーザ管理テーブル１２６にユーザＩＤ及びアプリ基本情報取得用ＵＲＬが登録される。したがって、ユーザは、複数の画像形成装置１０のいずれからも図１３に示される処理を実行させることができる。
【００８４】
図１３は、画像形成装置より印刷ネットアプリが操作される際の処理手順を説明するためのシーケンス図である。
【００８５】
ユーザによって操作パネル１５を介してプロバイダアプリ１２２１の利用指示が入力されると（Ｓ２０１）、プロバイダアプリ１２２１のＵＩ制御部１２２は、ユーザ管理テーブル１２６に登録されている情報に基づいてユーザ選択画面を操作パネル１５に表示させる（Ｓ２０２）。
【００８６】
図１４は、ユーザ選択画面の表示例を示す図である。同図に示されるユーザ選択画面６１０には、ユーザＩＤごとにボタンが表示されている。同図では、ユーザＡに対応するボタン６１１とユーザＢに対応するボタン６１２とが表示されている。
【００８７】
続いて、ユーザは、ユーザ選択画面６１０において自らのユーザＩＤに対応するボタンを押下する（Ｓ２０３）。ボタンの押下に応じ、アプリ情報取得部１２３は、選択されたボタンに対応するユーザＩＤに関連付けられているアプリ基本情報取得用ＵＲＬをユーザ管理テーブル１２６より取得する。なお、ユーザＩＤに対応するボタンの押下に応じ、ユーザの認証を行い、ユーザが認証された場合にのみ、以降の処理が実行されるようにしてもよい。
【００８８】
続いて、アプリ情報取得部１２３は、アプリ基本情報の取得要求をアプリ基本情報取得用ＵＲＬ宛に送信する（Ｓ２０４）。アプリ基本情報の取得要求は、ネットアプリ管理部３１０のアプリ情報提供部３３によって受信される。アプリ情報提供部３３は、アプリ基本情報取得用ＵＲＬに対応するアプリ情報管理テーブル３５（すなわち、画像形成装置１０を操作中のユーザに対応するアプリ情報管理テーブル３５）に登録されている全てのネットアプリのアプリ基本情報を取得し、取得されたアプリ基本情報の一覧をプロバイダアプリ１２２１に送信する（Ｓ２０５）。アプリ基本情報の一覧の送信に際し、アプリ情報提供部３３は、各ネットアプリのアプリ拡張情報を送信するためのＵＲＬ（以下、「アプリ拡張情報取得用ＵＲＬ」という。）をネットアプリごとに生成する。アプリ情報提供部３３は、ネットアプリごとに生成されたアプリ拡張情報取得用ＵＲＬを、各ネットアプリに対応するアプリ基本情報に付加し、アプリ拡張情報取得用ＵＲＬが付加されたアプリ基本情報の一覧をプロバイダアプリ１２２１に送信する。したがって、ステップＳ２０５において送信されるアプリ基本情報は、例えば、図１５に示されるような構成を有する。
【００８９】
図１５は、ネットアプリ管理部からプロバイダアプリに送信されるアプリ基本情報の構成例を示す図である。
【００９０】
同図に示されるアプリ基本情報は、図１２のアプリ基本情報に対してアプリ拡張情報取得用ＵＲＬが付加されたものである。ステップＳ２０５では、同図に示されるようなアプリ基本情報の一覧が送信される。ここでは、アプリ基本情報が一つしか含まれないものもアプリ基本情報の一覧という。
【００９１】
続いて、プロバイダアプリ１２２１のＵＩ制御部１２２は、受信されたアプリ基本情報の一覧をＲＡＭ１１２に記録しておき、当該アプリ基本情報の一覧に基づいて、ネットアプリ選択画面を表示させる（Ｓ２０６）。
【００９２】
図１６は、ネットアプリ選択画面の表示例を示す図である。同図においてネットアプリ選択画面６２０には、ネットアプリごとにボタンが表示されている。同図では、スキャンネットアプリ２２に対応するボタン６２１と、ファイルＡの印刷指示に係る印刷ネットアプリ２１に対応するボタン６２２と、ファイルＢの印刷指示に係る印刷ネットアプリ２１に対応するボタン６２３とが表示されている。
【００９３】
ネットアプリ選択画面６２０において、いずれかの印刷ジョブに係る印刷ネットアプリ２１に対応するボタンが選択され（Ｓ２０７）、操作パネル１５のスタートキーが押下される（印刷開始指示が入力される）と（Ｓ２０８）、ネットアプリ連携部１２４は、押下されたボタンに対応するアプリ基本情報（以下、「カレントアプリ基本情報」という。）に含まれている連携機能識別子（「ｐｒｉｎｔ」）に基づいて、印刷を実行すべきことを認識する。印刷を実行するためには印刷設定情報及び印刷データを入手する必要がある。そこで、ネットアプリ連携部１２４は、アプリ拡張情報の送信要求をカレントアプリ基本情報に含まれているアプリ拡張情報取得用ＵＲＬ宛に送信する（Ｓ２０９）。
【００９４】
アプリ拡張情報取得用ＵＲＬ宛の印刷データの送信要求は、ネットアプリ管理部３１０の仲介部３４によって受信される。仲介部３４は、当該アプリ拡張情報取得用ＵＲＬに対応するアプリ情報をアプリ管理テーブル３５より取得し、当該アプリ情報に含まれている連携機能識別子がが「ｐｒｉｎｔ」である場合は、アプリ拡張情報の取得要求に応じた処理を印刷設定部３４１及び印刷情報送信部３４２に実行させる。
【００９５】
まず、印刷設定部３４１は、当該アプリ情報に含まれている印刷データについて、当該アプリ情報に含まれている印刷属性の設定処理を実行する（Ｓ２１０）。具体的には、当該印刷属性のうちのネットアプリ固有印刷属性を印刷データに設定する。すなわち、図３のステップＳ５１において説明した処理が実行される。続いて、印刷情報送信部３４２は、ネットアプリ固有印刷属性が設定された印刷データと、当該印刷属性のうちの機種共通印刷属性とをネットアプリ連携部１２４に返信する（Ｓ２１１）。すなわち、ステップＳ２１１は、図３における印刷属性ａ〜ｃ、及び印刷データの送信（Ｓ５２）に相当する。
【００９６】
ネットアプリ連携部１２４は、受信された印刷データ及び機種共通印刷属性を機能制御部１２５に入力する。機能制御部１２５は、当該印刷データ及び当該機種共通印刷属性に係る印刷要求をＳＤＫプラットフォーム１２３０の印刷サービス部１２３１に入力する。その結果、当該印刷データ及び当該機種共通印刷属に基づく印刷ジョブが実行される（Ｓ２１２）。
【００９７】
なお、図１３の処理の実行中において、図１１の処理も並列的に実行されうる。具体的には、画像形成装置１０を現在操作中のユーザとは異なるユーザに係るユーザＰＣ２０が有するネットアプリからのアプリ情報の登録要求に基づいて、画像形成装置１０のユーザ管理テーブル１２６には、当該アプリ情報に含まれているユーザＩＤ等が登録されうる。
【００９８】
続いて、ステップＳ２１２の詳細について説明する。図１７は、印刷ネットアプリからの要求に応じて実行される印刷処理の処理手順を説明するためのシーケンス図である。
【００９９】
ステップＳ３０１においてプロバイダアプリ１２２１の機能制御部１２５は、ＳＤＫＡＰＩを介して印刷要求を印刷サービス部１２３１に入力する。当該印刷要求において印刷データ及び機種共通印刷属性が指定される。当該印刷データ及び当該機種共通印刷属性は、ステップＳ２１１において印刷情報送信部３４２より転送されたものである。
【０１００】
印刷要求の入力に応じ、印刷サービス部１２３１は、印刷要求と共に入力された機種共通印刷属性を印刷データに設定する（Ｓ３０２）。すなわち、図３のステップＳ５３において説明した処理が実行される。したがって、ステップＳ３０２において生成される印刷データは、ネットアプリ固有印刷属性及び機種共通印刷属性が設定されたものとなる。
【０１０１】
なお、印刷データへの機種共通印刷属性の設定に際し、印刷サービス部１２３１は、機種共通印刷属性の内容（値）を、当該画像形成装置１０の機種に応じて補正する。例えば、当該機種の印刷部数の上限値が「１００」であるにも拘わらず、「１００」を超える値が設定されている場合、印刷サービス部１２３１は、印刷部数の値を１００以内の値に補正する。
【０１０２】
また、印刷サービス部１２３１は、印刷データのデータ形式に応じて機種共通印刷属性のコマンドを切り換える。具体的には、印刷データがＰＤＦの場合に設定する両面指定のコマンドは、例えば、「＠ＰＪＬ  DUPLEX=ＯＮ￥ｎ＠ＰＪＬ  ＳＥＴ  ＢＩＮＤＩＮＧ＝ＬＥＦＴ」であるのに対し、印刷データがＴＩＦＦの場合に設定する両面指定のコマンドは、例えば、「ｂｏｔｈｓｉｄｅ」とする。なお、このようなコマンドの切り換えは、ネットアプリ管理部３１０の印刷設定部３４１によるネットアプリ固有印刷属性の設定時にも行われる。
【０１０３】
続いて、印刷サービス部１２３１は、当該印刷データを通信制御部１２４１における印刷ポート１２４１ｐを介してプリンタアプリ１２１２に送信する（Ｓ３０３、Ｓ３０４）。印刷データの受信に応じ、プリンタアプリ１２１２は、当該印刷データに係る印刷ジョブのジョブＩＤを印刷サービス部１２３１に返信する。
【０１０４】
続いて、プリンタアプリ１２１２は、当該印刷ジョブ用のオブジェクトをＭＩＢ管理部１２４３に登録（生成）する（Ｓ３０５）。当該オブジェクトは、ジョブＩＤに基づいて参照可能とされる。続いて、プリンタアプリ１２１２は、印刷データに設定されている印刷属性（機種共通印刷属性及びネットアプリ固有印刷属性）を解釈し、当該印刷属性に応じた命令及び印刷データ内の画像データをプリンタ制御部１２４２に印刷データを入力する（Ｓ３０６）。なお、ネットアプリ固有印刷属性について、当該画像形成装置１０が対応可能なものについては、プリンタアプリ１２１２は正常に解釈し、プリンタ制御部１２４２への命令の入力を行う。その結果、ＳＤＫＡＰＩで設定可能な範囲（すなわち、機種共通印刷属性の範囲）を超えた印刷属性に対応した印刷が実行される。
【０１０５】
一方、ネットアプリ固有印刷属性の中で、当該画像形成装置１０が対応可能でないものについては、プリンタアプリ１２１２は解釈することはできない。解釈できない場合には、当該画像形成装置１０が対応できない項目である場合だけでなく、当該画像形成装置１０が対応可能な項目であるが設定値が上限を超える場合も含まれる。この場合、プリンタアプリ１２１２は、解釈できないネットアプリ固有印刷属性は無視する。すなわち、当該ネットアプリ固有印刷属性は無効とされる。
【０１０６】
また、機種共通印刷属性とネットアプリ固有印刷属性とが競合する場合、例えば、選択的又は排他的な値が機種共通印刷属性とネットアプリ固有印刷属性との間で設定されている場合、プリンタアプリ１２１２は、ネットアプリ固有印刷属性を優先させ、機種共通印刷属性を無効とする。
【０１０７】
なお、機種共通印刷属性に関して、設定値が上限値を超えるようなケース等、対応できない値が設定されているケースについては、ＳＤＫプラットフォーム１２３０である印刷サービス部１２３１は補正処理を行った。しかし、プリンタアプリ１２１２は、ネットアプリ固有印刷属性に関してはそのようなことは基本的に行わない。これは、ＳＤＫプラットフォーム１２３０とプリンタアプリ１２１２との位置付けの違いに起因するところが大きい。
【０１０８】
すなわち、ＳＤＫプラットフォーム１２３０は、機種間の互換性を維持するために、機種間の違いを吸収し、各ＳＤＫアプリ１２２０について、他の機種上の振る舞いと可能な限り近似した振る舞いができるような環境を提供する必要がある。そうすると、他の機種では対応可能な設定値を完全に無視してしまうよりも、当該機種において対応可能な設定値に補正する方がＳＤＫプラットフォーム１２３０の役割に即しているといえる。
【０１０９】
一方、プリンタアプリ１２１２は、画像形成装置１０に予め組み込まれているアプリケーションである。したがって、画像形成装置１０の機種に対する依存度が非常に高い。そうすると、プリンタアプリ１２１２は、むしろ、機種の仕様に忠実に動作するのがあるべき姿であると考えられる。
【０１１０】
以上のような両者（ＳＤＫプラットフォーム１２３０とプリンタアプリ１２１２）の違いにより、設定値が上限値を超える場合等において、両者の振る舞いは異なるのである。
【０１１１】
続いて、プリンタ制御部１２４２は、入力された命令に従って、入力された画像データ印刷をプリンタ１２に実行させる（Ｓ３０７）。
【０１１２】
印刷が完了すると、プリンタアプリ１２１２は、ＭＩＢ管理部１２４３における当該印刷ジョブ用のオブジェクトに対し印刷の完了を示す情報を書き込む（Ｓ３０８）。なお、印刷が中断された場合、又は印刷に失敗した場合、プリンタアプリ１２１２は、それぞれの状態に応じた情報当該オブジェクトに書き込む。
【０１１３】
一方、印刷サービス部１２３１は、プリンタアプリ１２１２に印刷データを送信した後、通信制御部１２４１を利用したＳＮＭＰ（Simple Network Management Protocol）通信により、ＭＩＢ管理部１２４３において、当該印刷ジョブのジョブＩＤによって識別されるオブジェクトを定期的に参照（ポーリング）している（Ｓ３０９、Ｓ３１０）。印刷サービス部１２３１は、当該オブジェクトに印刷の完了、中断、又は失敗等を示す情報が書き込まれたこと検知すると（すなわち、印刷ジョブの状態の変化を検知すると）、印刷ジョブの状態情報を含むイベントをプロバイダアプリ１２２１に通知する（Ｓ３１１）。プロバイダアプリ１２２１のＵＩ制御部１２２は、イベントに含まれている状態情報を操作パネル１５に表示させる。また、プロバイダアプリ１２２１は、当該イベントをネットアプリ管理部３１０を介して印刷ネットアプリ２１に送信してもよい。印刷ネットアプリ２１は、当該イベントに含まれている状態情報を表示装置２０６に表示させてもよい。
【０１１４】
なお、印刷サービス部１２３１からプロバイダアプリ１２２１（ＳＤＫアプリ１２２０）へのイベントの通知を可能とするため、プロバイダアプリ１２２１は、印刷サービス部１２３１に印刷要求を入力する際に、イベント受信用のリスナー（関数又はオブジェクト等）を印刷サービス部１２３１に通知しておけばよい。印刷サービス部１２３１は、当該リスナーとジョブＩＤとを関連付けて保持しておき、状態が変化した印刷ジョブのジョブＩＤに対応したリスナーに対して当該状態情報を含むイベントを通知すればよい。
【０１１５】
上述したように、本実施の形態によれば、機種共通印刷属性の範囲を超えた印刷属性に基づく印刷を、プロバイダアプリ１２２１を介して実行させることができる。その結果、ＳＤＫプラットフォーム１２３０を利用した場合の恩恵を受けつつ、画像形成装置１０の能力（機能）をより有効に利用することができる。ここでいう恩恵の一つとしては、印刷ジョブの状態の確認（追跡）を行うことができることである。
【０１１６】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【０１１７】
１            情報処理システム
１０          画像形成装置
１１          コントローラ
１２          スキャナ
１３          プリンタ
１４          モデム
１５          操作パネル
１６          ネットワークインタフェース
１７          ＳＤカードスロット
２０          ユーザＰＣ
２１          印刷ネットアプリ
２２          スキャンネットアプリ
３０          ネットアプリ管理サーバ
３１          アプリ情報登録部
３２          広告部
３３          アプリ情報提供部
３４          仲介部
４０          ネットワーク
８０          ＳＤカード
１１１        ＣＰＵ
１１２        ＲＡＭ
１１３        ＲＯＭ
１１４        ＨＤＤ
１２１        ユーザ検知部
１２２        ＵＩ制御部
１２３        アプリ情報取得部
１２４        ネットアプリ連携部
１２５        機能制御部
１２６        ユーザ管理テーブル
２００        ドライブ装置
２０１        記録媒体
２０２        補助記憶装置
２０３        メモリ装置
２０４        ＣＰＵ
２０５        インタフェース装置
２０６        表示装置
２０７        入力装置
２１１        ＵＩ制御部
２１２        アプリ情報送信部
２１３        連携部
２１５        属性情報管理ファイル
３１０        ネットアプリ管理部
３４１        印刷設定部
３４２        印刷情報送信部
１２１０      標準アプリ
１２１１      スキャンアプリ
１２１２      プリンタアプリ
１２１３      コピーアプリ
１２１４      ＦＡＸアプリ
１２２０      ＳＤＫアプリ
１２２１      プロバイダアプリ
１２３０      ＳＤＫプラットフォーム
１２４０      サービス層
１２４１      通信制御部
１２４２      プリンタ制御部
１２４３      ＭＩＢ管理部
【先行技術文献】
【特許文献】
【０１１８】
【特許文献１】特開２００７−１１０６８９号公報
【図１】
0005413077.tif 000002
【図２】
0005413077.tif 000003
【図３】
0005413077.tif 000004
【図４】
0005413077.tif 000005
【図５】
0005413077.tif 000006
【図６】
0005413077.tif 000007
【図７】
0005413077.tif 000008
【図８】
0005413077.tif 000009
【図９】
0005413077.tif 000010
【図１０】
0005413077.tif 000011
【図１１】
0005413077.tif 000012
【図１２】
0005413077.tif 000013
【図１３】
0005413077.tif 000014
【図１４】
0005413077.tif 000015
【図１５】
0005413077.tif 000016
【図１６】
0005413077.tif 000017
【図１７】
0005413077.tif 000018