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