(57)【要約】【課題】  複数の拡張プロバイダが提供するジョブ表示情報の仕様が異なる場合でも、処理すべきジョブの一覧を共有画面で表示する。【解決手段】    特定の機能に対応づけられた複数の拡張プロバイダを組み合わせてジョブを処理する情報処理装置において、ジョブを表示する要求を受け付けた場合、登録された複数の拡張プロバイダの機能プロバイダ情報からそれぞれが提供するジョブ表示情報を取得して、複数の拡張プロバイダで共通するジョブ一覧を生成する。そして、生成されたジョブ一覧を表示手段に表示された状態で、いずれかのジョブに対する操作の要求を受け付けた場合、当該操作の要求に従ってジョブを実行する構成を特徴とする。【選択図】  図５
2017134488.tif 000002
【特許請求の範囲】
【請求項１】
特定の機能に対応づけられた複数の拡張プロバイダを組み合わせてジョブを処理する情報処理装置であって、
複数の拡張プロバイダに関わる機能プロバイダ情報を登録して管理する管理手段と、
前記ジョブの一覧を表示する要求または当該ジョブに対する操作の要求を受け付ける受付手段と、
前記受付手段が前記ジョブを表示する要求を受け付けた場合、前記管理手段が管理する登録された複数の拡張プロバイダの機能プロバイダ情報からそれぞれが提供するジョブ表示情報を取得して、複数の拡張プロバイダで共通するジョブ一覧を生成する第１の生成手段と、
前記第１の生成手段により生成されたジョブ一覧を表示手段に表示する第１の表示制御手段と、
前記受付手段が前記表示手段に表示されたジョブ一覧に対していずれかのジョブに対する操作の要求を受け付けた場合、当該操作の要求に従って前記ジョブを実行する実行手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記受付手段が前記ジョブに対する操作の要求であって、前記表示手段にジョブ一覧が表示された状態で、前記受付手段が受け付けた前記ジョブに対する操作の要求が設定変更である場合、１つの拡張プロバイダを選択する選択手段と、
前記選択手段により選択された１つの拡張プロバイダのジョブ設定情報を取得して、当該拡張プロバイダのジョブ設定変更画面を生成する第２の生成手段と、
前記ジョブ設定変更画面を表示手段に表示する第２の表示制御手段と、
前記第２の表示制御手段により表示された前記ジョブ設定変更画面に対して、前記受付手段が変更すべき設定情報を受け付けた場合、受け付けた変更すべき設定情報を残る拡張プロバイダのジョブ設定情報に反映させる反映手段と、
を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記反映手段は、
変更すべき設定情報から中間データを作成する作成手段と、
前記作成手段が作成した中間データおよび当該中間データを反映させる指示を残る拡張プロバイダに送信する送信手段と、を備えることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記選択手段は、登録された拡張プロバイダのジョブ設定情報を解析して、共通設定項目が多い拡張プロバイダを選択することを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記選択手段は、登録された拡張プロバイダのジョブ設定情報を解析して、設定項目数が多い拡張プロバイダを選択することを特徴とする請求項２に記載の情報処理装置。
【請求項６】
前記選択手段は、表示された各拡張プロバイダのジョブ数を解析して、ジョブ数が多い拡張プロバイダを選択することを特徴とする請求項２に記載の情報処理装置。
【請求項７】
前記ジョブ表示情報は、ジョブを特定する書誌情報を含むことを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記ジョブは、印刷ジョブであることを特徴とする請求項１または２に記載の情報処理装置。
【請求項９】
前記印刷ジョブは、ＳｅｃｕｒｅＰｒｉｎｔジョブ、ＢｏｘＰｒｉｎｔジョブ、ＡｎｙＰｌａｃｅＰｒｉｎｔジョブを含むことを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記情報処理装置は、印刷装置、画像形成装置、複合画像形成装置を含むことを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項１１】
特定の機能に対応づけられた複数の拡張プロバイダを組み合わせてジョブを処理する情報処理装置の制御方法であって、
複数の拡張プロバイダに関わる機能プロバイダ情報を登録して管理する管理工程と、
前記ジョブの一覧を表示する要求または当該ジョブに対する操作の要求を受け付ける受付工程と、
前記受付工程が前記ジョブを表示する要求を受け付けた場合、前記管理工程で管理する登録された複数の拡張プロバイダの機能プロバイダ情報からそれぞれが提供するジョブ表示情報を取得して、複数の拡張プロバイダで共通するジョブ一覧を生成する第１の生成工程と、
前記第１の生成手段により生成されたジョブ一覧を表示手段に表示する第１の表示制御工程と、
前記受付工程で前記表示手段に表示されたジョブ一覧に対していずれかのジョブに対する操作の要求を受け付けた場合、当該操作の要求に従って前記ジョブを実行する実行工程と、
を備えることを特徴とする情報処理装置の制御方法。
【請求項１２】
請求項１１に記載の情報処理装置の制御方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法、及びプログラムに関するものである。
【背景技術】
【０００２】
近年、オフィスに設置される画像形成装置には、画像形成装置の機能を拡張できるシステムが普及している。拡張する機能（以降、拡張機能）は、ソフトウェアプログラム（以降、拡張ソフト）によって実現され、工場出荷時だけでなく、設置後の運用段階でも追加することが可能である。この種のシステムとしてはキヤノン株式会社のＭＥＡＰ（登録商標）などが挙げられる。
【０００３】
特に、ある特定の目的のために作られた拡張ソフトは、アプリケーションソフトウェア（以降、アプリ）と呼ばれる。アプリは、画像形成装置が備えるファクシミリ、スキャナ、プリンタといった機能を利用することで目的の処理を実現している。画像形成装置は、ユーザの目的に応じて複数のアプリをインストールできるように構成されている。
【０００４】
そのアプリによって、クライアントコンピュータからの印刷指示に従って、サーバや画像形成装置に印刷データとして一つ以上の文書を蓄積して、クライアントコンピュータや画像形成装置上から蓄積された文書を表示し、まとめて印刷する技術が実現されている。
【０００５】
また、印刷設定の作業を簡便化するための技術が開示されている（例えば、特許文献１参照）。この技術によると、共通設定モードと通常モードのうちからユーザが指定したモードに応じた印刷設定で印刷ジョブを生成することができる。共通設定モードは、生成された複数の印刷ジョブのうち、先頭の印刷ジョブに関連づけられた印刷設定を共通設定情報としてすべての印刷ジョブの印刷設定に反映するモードである。通常モードは印刷ジョブごとのオリジナルの印刷設定をそのまま反映するモードである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−２６０２４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来技術では、一つの画像形成装置に複数のアプリがインストールされる場合がある。例えばプリンタに蓄積した印刷データを印刷する拡張ソフトとクライアントコンピュータやほかのプリンタに蓄積した印刷データを印刷する拡張ソフトが同時にインストールされていることを想定する。その場合、ユーザが複数のアプリが扱う印刷データの一覧の参照や、印刷設定変更、印刷指示を行う場合、各アプリそれぞれに対して、印刷データ一覧、印刷設定変更、印刷指示など同様な操作を行わなければならないという問題があった。
【０００８】
一方、特許文献１の技術の場合、共通設定モードで、生成された複数の印刷ジョブのうち、先頭の印刷ジョブに関連づけられた印刷設定を共通設定情報としてすべての印刷ジョブの印刷設定に反映することができる。
しかし、ユーザが複数アプリに対して印刷設定を反映する場合は、各アプリの印刷設定項目や内容が異なるために、単純に一括で印刷設定を反映させることはできないという問題があった。
【０００９】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、複数の拡張プロバイダが提供するジョブ表示情報の仕様が異なる場合でも、処理すべきジョブの一覧を共有画面で表示できる仕組みを提供することである。
また、本発明の目的は、１つの拡張プロバイダが提供する設定情報が変更された場合に、他の拡張プロバイダが提供する設定情報に対して、変更された設定内容を反映できる仕組みを提供することである。
【課題を解決するための手段】
【００１０】
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
特定の機能に対応づけられた複数の拡張プロバイダを組み合わせてジョブを処理する情報処理装置であって、複数の拡張プロバイダに関わる機能プロバイダ情報を登録して管理する管理手段と、前記ジョブの一覧を表示する要求または当該ジョブに対する操作の要求を受け付ける受付手段と、前記受付手段が前記ジョブを表示する要求を受け付けた場合、前記管理手段が管理する登録された複数の拡張プロバイダの機能プロバイダ情報からそれぞれが提供するジョブ表示情報を取得して、複数の拡張プロバイダで共通するジョブ一覧を生成する第１の生成手段と、前記第１の生成手段により生成されたジョブ一覧を表示手段に表示する第１の表示制御手段と、前記受付手段が前記表示手段に表示されたジョブ一覧に対していずれかのジョブに対する操作の要求を受け付けた場合、当該操作の要求に従って前記ジョブを実行する実行手段と、を備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、複数の拡張プロバイダが提供するジョブ表示情報の仕様が異なる場合でも、処理すべきジョブの一覧を共有画面で表示できる。
また、１つの拡張プロバイダが提供する設定情報が変更された場合に、他の拡張プロバイダが提供する設定情報に対して、変更された設定内容を反映できる。
【図面の簡単な説明】
【００１２】
【図１】画像処理システムのシステム構成の一例を示す図である。
【図２】ＭＦＰの構成を示すブロック図である。
【図３】サーバの構成を示すブロック図である。
【図４】ＭＦＰにおけるソフトウェアの構成を示す図である。
【図５】ＭＦＰ上の一連の処理の流れを示したシーケンス図である。
【図６】情報処理装置の制御方法を示すフローチャートである。
【図７】機能プロバイダ情報テーブルを示す図である。
【図８】ジョブ管理機能プロバイダインタフェース定義の例を示す図である。
【図９】情報処理装置の制御方法を示すフローチャートである。
【図１０】情報処理装置の制御方法を示すフローチャートである。
【図１１】ＭＦＰ上の一連の処理の流れを示したシーケンス図である。
【図１２】ジョブ管理プロバイダ定義ファイルを示す図である。
【図１３】情報処理装置の制御方法を示すフローチャートである。
【図１４】情報処理装置の制御方法を示すフローチャートである。
【図１５】情報処理装置の制御方法を示すフローチャートである。
【図１６】情報処理装置の制御方法を示すフローチャートである。
【図１７】情報処理装置の制御方法を示すフローチャートである。
【図１８】中間データの設定変更テーブル１８００の一例を示す図ある。
【図１９】情報処理装置の制御方法を示すフローチャートである。
【発明を実施するための形態】
【００１３】
次に本発明を実施するための最良の形態について図面を参照して説明する。
＜システム構成の説明＞
〔第１実施形態〕
【００１４】
図１は、本実施形態の画像処理システムのシステム構成の一例を示す図である。本システムは、ＬＡＮ１１０を介して接続される情報処理装置の一例であるＭＦＰ１０１と、ＷＡＮ１２０を介して接続されるサーバ１０２から構成される。ＬＡＮ１１０上の装置とＷＡＮ１２０上の装置はお互いのネットワークを通して、相互に通信可能である。図１は典型的なネットワーク構成の例であり、各装置がＬＡＮ１１０またはＷＡＮ１２０のどちらにあっても構わない。なお、本実施形態において、情報処理装置が実行する印刷ジョブに、ＳｅｃｕｒｅＰｒｉｎｔジョブ、ＢｏｘＰｒｉｎｔジョブ、ＡｎｙＰｌａｃｅＰｒｉｎｔジョブ等が含まれる。
【００１５】
図１において、複合画像形成装置（ＭＦＰ）１０１は、スキャナ、プリンタを有する画像形成装置である。加えて、装置上で動作する拡張ソフトを追加、実行させるためのソフトウェアプラットホームを持つ。また、画像データを他のＭＦＰ１０１から受信し保管する機能を有する。ＭＦＰ１０１は一台とは限らず、複数存在していてもよい。サーバ１０２は、ＭＦＰ１０１と連携して各種処理を行うサーバである。例えば、ＭＦＰ１０１から印刷するための画像データを保管するファイルサーバであったり、ＭＦＰ１０１から処理依頼を受けてＯＣＲ（光学文字認識）処理を実行するアプリケーションサーバであったりする。サーバは一台とは限らず、目的に応じて複数のサーバが存在してもよい。
【００１６】
図２は、図１に示したＭＦＰ１０１の構成を示すブロック図である。
図２において、ＣＰＵ２１１を含む制御部２１０は、ＭＦＰ１０１全体の動作を制御する。ＣＰＵ２１１は、ＲＯＭ２１２やＨＤＤ２１４に記憶された制御プログラムを読み出して読取制御や送信制御などの各種制御処理を実行する。ＲＡＭ２１３は、ＣＰＵ２１１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ２１４は、画像データやインストールされた拡張ソフトを含む各種プログラムを記憶する。
【００１７】
操作部Ｉ／Ｆ２１５は、操作部２１９と制御部２１０とを接続する。操作部２１９には、タッチパネル機能を有する液晶表示部やキーボードなどが備えられている。
プリンタＩ／Ｆ２１６は、プリンタ２２０と制御部２１０とを接続する。プリンタ２２０で印刷すべき画像データはプリンタＩ／Ｆ２１６を介して制御部２１０からプリンタ２２０に転送され、プリンタ２２０において記録媒体上に印刷される。
【００１８】
スキャナＩ／Ｆ２１７は、スキャナ２２１と制御部２１０とを接続する。スキャナ２２１は、原稿上の画像を読み取って画像データを生成し、スキャナＩ／Ｆ２１７を介して制御部２１０に入力する。ネットワークＩ／Ｆ２１８は、制御部２１０（ＭＦＰ１０１）をＬＡＮ１１０に接続する。ネットワークＩ／Ｆ２１８は、ＬＡＮ１１０上またはＷＡＮ１２０上の他の装置との間で各種情報を送受信する。
【００１９】
図３は、図１に示したサーバ１０２の構成を示すブロック図である。
図３において、ＣＰＵ３１１を含む制御部３１０は、サーバ１０２全体の動作を制御する。ＣＰＵ３１１は、ＲＯＭ３１２やＨＤＤ３１４に記憶された制御プログラムを読み出して各種制御処理を実行する。ＲＡＭ３１３は、ＣＰＵ３１１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ３１４は、各種のプログラムやデータを記憶する。
【００２０】
表示部Ｉ／Ｆ３１５は、表示部３１８と制御部３１０とを接続する。キーボードＩ／Ｆ３１６は、キーボード３１９と制御部３１０とを接続する。ＣＰＵ３１１は、キーボード３１９を介したユーザからの指示を認識し、認識した指示に応じて表示部３１８に表示する画面を遷移させる。
【００２１】
ネットワークＩ／Ｆ３１７は、制御部３１０（サーバ１０２）をＷＡＮ１２０に接続する。ネットワークＩ／Ｆ３１７は、ＬＡＮ１１０上またはＷＡＮ１２０上の他の装置との間で各種情報を送受信する。
【００２２】
図４は、図１に示したＭＦＰ１０１におけるソフトウェアの構成を示す図である。なお、ＭＦＰ１０１のＨＤＤ２１４に記憶されているプログラム（ソフトウェア）を、ＣＰＵ２１１がＲＡＭ２１３に読み出し、解析、実行することで、図６、図９、および図１０のフローチャートの処理が実行される。なお、図４における４１２４〜４１２６については第２実施形態で説明する。
【００２３】
図４において、拡張ソフト管理部４１００は、ＭＦＰ１０１上で拡張ソフトを動作させるためのソフトウェアプラットホームである。図４では、拡張ソフトとしてフロントエンド４１１０と３つの機能プロバイダ（ローカルジョブ管理プロバイダ４１２０、セキュアジョブ管理プロバイダ４１３０、リモートジョブ管理プロバイダ４１４０）がＭＦＰ１０１にインストールされている。
【００２４】
拡張プロバイダである機能プロバイダは、拡張ソフトの一種であるが、アプリではない。アプリは単体で入力から出力までの一連の完結した処理を備えている。一方、単体の機能プロバイダは入力文書データの書誌情報解析や文書データの印刷実行などの印刷ジョブ管理機能に特化したものであり、入力から出力までの一連の完結した処理を行うためには、いずれかのアプリと機能プロバイダを組み合わせる必要がある。
【００２５】
例えば、「ＭＦＰに蓄積された文書を表示し、まとめて印刷する」という機能をユーザに提供する場合、単体アプリであれば「文書書誌情報解析」「文書書誌情報表示」「文書印刷実行」の３つの機能を１つのアプリで実現する。扱う文書の種類や保存場所によるそれぞれのアプリを作成する必要がある。一方、アプリと機能プロバイダの場合、「画面表示とユーザからの操作指示を受けとるためのフロントエンド」を作成し、処理方法が異なる「ジョブ管理機能を実現する機能プロバイダ」と組み合わせる必要がある。
【００２６】
また、アプリは、ＭＦＰ１０１が元々備えている機能（例えばコピー機能やファクス送信機能）を呼び出すための不図示のメニュー画面に、それらの機能と横並びで表示されるようにアプリ自身を登録する。アプリは、メニュー画面からユーザの指示によって呼び出される。
一方、機能プロバイダはメニュー画面ではなく、後述する機能プロバイダ管理部４２００に、機能プロバイダ自身を登録する。機能プロバイダは、機能プロバイダ管理部４２００経由でフロントエンド４１１０の指示によって呼び出される。
【００２７】
さらに、機能プロバイダは、後述する機能プロバイダ管理部４２００が規定するルール（以降、機能プロバイダインタフェース）を満たすようにプログラミングされている。機能プロバイダインタフェースは、ソフトウェア間のやり取りを行う際のルールを決めたソフトウェアインタフェースである。機能プロバイダインタフェースの詳細は図８で説明する。
【００２８】
なお、機能プロバイダは目的に応じて、複数種類のインタフェースを持つ場合がある。「文書書誌情報解析」の目的のためのインタフェースと「文書印刷実行」の目的のためのインタフェースといったように、目的別に複数種類のインタフェースを用意することができる。
【００２９】
また、複数の機能プロバイダをＭＦＰ１０１にインストールすることができる。複数の機能プロバイダは同じソフトウェアインタフェースを持つため、同じようにソフトウェア間のやり取りを行うことができる。
【００３０】
ローカルジョブ管理プロバイダ４１２０、セキュアジョブ管理プロバイダ４１３０とリモートジョブ管理プロバイダ４１４０は、ともにジョブ管理を提供する機能プロバイダである。ジョブ管理を提供する機能プロバイダは、ジョブ管理のために定義された機能プロバイダインタフェース（ジョブ管理プロバイダインタフェース）を実現する。
ローカルジョブ管理プロバイダ４１２０はＭＦＰに蓄積された一般文書の解析や印刷を行う機能を持つ、セキュアジョブ管理プロバイダ４１３０はＭＦＰに蓄積された暗号化された文書を解析や印刷する機能を持つ。一方、リモートジョブ管理プロバイダ４１４０は、サーバ１０２あるいは他のＭＦＰ１０１に蓄積された文書の解析や印刷を行う機能を持つ。ローカルジョブ管理プロバイダは機能プロバイダ制御部４１２１、ジョブ解析部４１２２、ジョブ実行部４１２３を持つ。セキュアジョブ管理プロバイダ４１３０とリモートジョブ管理プロバイダ４１４０も、ローカルジョブ管理プロバイダ４１２０と同じように、機能プロバイダ制御部、ジョブ解析部とジョブ実行部を持っているが、図４では省略している。
【００３１】
フロントエンド４１１０はＭＦＰ１０１のメニュー画面からユーザの指示によって呼び出される。フロントエンド４１１０はジョブリスト表示部４１１１とジョブ管理プロバイダ連携部４１１２を持ち、ＭＦＰ１０１にインストールされているジョブ管理プロバイダ定義ファイル４１２６を取得する。フロントエンド４１１０は、ジョブ管理プロバイダ定義ファイル４１２６から取得したそれぞれの機能プロバイダのインタフェースを呼び出す。そして、フロントエンド４１１０は、文書の書誌情報を機能プロバイダに解析させ、解析された書誌情報をまとめてジョブリスト表示部４１１１に表示することができる。さらに、ユーザから、選択したジョブの印刷指示を受けて、機能プロバイダのインタフェースを呼び出してジョブの印刷実行を行う。
以上で説明した３つのジョブ管理機能プロバイダは一例であり、ＭＦＰ１０１には、様々なジョブ管理機能プロバイダを追加・削除することが可能である。ジョブ管理機能プロバイダを追加することにより、フロントエンドは変更なしで様々な機能拡張を行うことができる。
【００３２】
機能プロバイダ管理部４２００は、ＭＦＰ１０１にインストールされている機能プロバイダを管理するソフトウェアである。機能プロバイダ管理部４２００は、機能プロバイダ登録部４２１０、機能プロバイダ情報取得部４２２０、機能プロバイダ情報テーブル４２３０、機能プロバイダインタフェース定義ファイル４２４０を持つ。
【００３３】
機能プロバイダ登録部４２１０は、各機能プロバイダからの依頼を受けて、機能プロバイダ情報テーブル４２３０に、各機能プロバイダの情報を登録する。機能プロバイダ情報取得部４２２０は、フロントエンド４１１０等のアプリからの取得依頼を受けて、機能プロバイダ情報テーブル４２３０の情報を取得する。機能プロバイダインタフェース定義ファイル４２４０は、機能プロバイダインタフェースを定義している。
【００３４】
〔第１のジョブ処理例〕
図５は、図１に示したＭＦＰ１０１上の一連の処理の流れを示したシーケンス図である。
ローカルジョブ管理プロバイダ４１２０は自身の起動時に機能プロバイダ管理部４２００に対して、自身を機能プロバイダとして登録するよう指示する（Ｓ５０１）。指示には登録に必要な情報が含まれている。登録指示を受け取った機能プロバイダ管理部４２００は、指示に含まれる機能プロバイダの登録情報を機能プロバイダ情報テーブル４２３０に格納する（Ｓ５０２）。
【００３５】
セキュアジョブ管理プロバイダ４１３０とリモートジョブ管理４１４０もローカルジョブ管理プロバイダ４１２０と同様に、自身の起動時に機能プロバイダ管理部４２００に対して、自身を機能プロバイダとして登録するよう指示する（Ｓ５０３、Ｓ５０５）。登録指示を受け取った機能プロバイダ管理部４２００は、指示に含まれる機能プロバイダの登録情報を機能プロバイダ情報テーブル４２３０に格納する（Ｓ５０４、Ｓ５０６）。
【００３６】
次にフロントエンド４１１０は、ユーザからジョブリスト表示指示の要求を受け取る（Ｓ５１０）。さらにフロントエンド４１１０は機能プロバイダ管理部４２００に対してＭＦＰ１０１にインストールされていた「ジョブ管理機能プロバイダ」のリストを取得するよう指示する（Ｓ５１１）。機能プロバイダ取得指示を受け取った機能プロバイダ管理部４２００は、機能プロバイダ情報テーブル４２３０に記録した機能プロバイダ情報を取得して、フロントエンド４１１０に通知する（Ｓ５１２）。機能プロバイダ情報を受け取ったフロントエンド４１１０は、それぞれのジョブ管理機能プロバイダに対して各プロバイダが管理しているジョブの書誌情報を取得するよう指示する（ステップ５１３）。ジョブ書誌情報取得指示を受け取った各ローカルジョブ管理プロバイダ４１２０、セキュアジョブ管理プロバイダ４１３０とリモートジョブ管理プロバイダ４１４０は各自管理しているジョブデータを読み込む。
そして、各ローカルジョブ管理プロバイダ４１２０、セキュアジョブ管理プロバイダ４１３０とリモートジョブ管理プロバイダ４１４０は、ジョブ名、ユーザ名、ページ数などの基本情報とカラー、片面／両面、部数などのオリジナル印刷設定を抽出する（Ｓ５１４、Ｓ５１５、Ｓ５１６）。そして、各ローカルジョブ管理プロバイダ４１２０、セキュアジョブ管理プロバイダ４１３０とリモートジョブ管理プロバイダ４１４０は、抽出した基本情報と印刷設定をフロントエンド４１１０に通知する（Ｓ５１７、Ｓ５１８、Ｓ５１９）。ジョブ表示情報であるジョブの書誌情報を受け取ったフロントエンド４１１０は表示制御によりジョブリスト表示部４１１１にジョブの書誌情報をまとめて表示（ジョブ一覧表示）する（Ｓ５２０）。
【００３７】
次にフロントエンド４１１０は、ユーザからジョブ印刷指示を受け取る（Ｓ５３０）と、それぞれのジョブに対応したジョブ管理機能プロバイダに対して各プロバイダが管理していたジョブの印刷を指示する（Ｓ５３１、Ｓ５３２、Ｓ５３３）。ジョブ印刷指示を受け取った各ローカルジョブ管理プロバイダ４１２０、セキュアジョブ管理プロバイダ４１３０とリモートジョブ管理プロバイダ４１４０は各自管理しているジョブを印刷実行するようにＭＦＰ１０１のプリンタＩ／Ｆ２１６に指示する（Ｓ５３４、Ｓ５３５、Ｓ５３６）。各ローカルジョブ管理プロバイダ４１２０、セキュアジョブ管理プロバイダ４１３０とリモートジョブ管理プロバイダ４１４０は、プリンタＩ／Ｆ２１６から印刷結果と印刷ステータスのイベントを受け取ってフロントエンド４１１０に通知する（Ｓ５３７、Ｓ５３８、Ｓ５３９）。
【００３８】
〔機能プロバイダの起動時の処理〕
図６は、本実施形態を示す情報処理装置の制御方法を示すフローチャートである。本例は、図５のＳ５０１からＳ５０６におけるＭＦＰ１０１の個々の機能プロバイダの起動時の処理例である。なお、ＭＦＰ１０１のＨＤＤ２１４に記憶されているプログラムを、ＣＰＵ２１１がＲＡＭ２１３に読み出し、解析、実行することで、図６に示す各ステップが実行される。ここでの機能プロバイダは、ローカルジョブ管理プロバイダ４１２０、セキュアジョブ管理プロバイダ４１３０とリモートジョブ管理プロバイダ４１４０の例である。
【００３９】
まず、拡張ソフト管理部４１００が、ＭＦＰ１０１の起動またはユーザの指示といったトリガーをうけて、機能プロバイダを起動させる（Ｓ６０１）。起動した機能プロバイダは、自身の機能プロバイダとしての情報（機能タイプや設定可能な値などの情報）を機能プロバイダ登録部４２１０に通知して、自身を機能プロバイダとして登録するよう指示する（Ｓ６０２）。
機能プロバイダ登録部４２１０は、機能プロバイダから登録指示を受信する（Ｓ６０３）と、受信した情報を機能プロバイダ情報テーブル４２３０に格納してその内容を更新する（Ｓ６０４）。
【００４０】
図７は、図４に示した機能プロバイダ情報テーブル４２３０の一例を示す図である。
図７において、機能プロバイダ情報テーブル４２３０は、機能プロバイダを一意に特定する機能プロバイダＩＤ、機能プロバイダの名称、機能タイプ、機能プロバイダインタフェース、機能プロバイダに設定可能な値など記載した定義ファイルへのパスを保持する。なお定義ファイルへのパスは、本実施形態においてはファイルパス形式で記載しているが、ＵＮＣ（Ｕｎｉｖｅｒｓａｌ  ｎａｍｉｎｇ  Ｃｏｎｖｅｎｔｉｏｎ）やＵＲＬ（Ｕｎｉｖｅｒｓａｌ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｅｒ）等の形式で表してもよい。
【００４１】
図８は、本実施形態におけるジョブ管理機能プロバイダインタフェース定義の例を示す図である。本実施形態では機能プロバイダインタフェースはプログラムのソースコード形式で表現されているが、これに限定されるものではなく、他の形式であってもよい。８０１はジョブ管理プロバイダインタフェースの定義で、「ｄｏＰｒｉｎｔ」、「ｇｅｔＪｏｂＬｉｓｔ」、「ｓｈｏｗＪｏｂＳｅｔｔｉｎｇＵＩ」、「ＡｐｐｌｙＪｏｂＳｅｔｔｉｎｇ」という４つのインタフェースを定義している。ジョブ管理プロバイダは８０１で定義している４つのインタフェースを必ず備えている。
【００４２】
〔ジョブリストにまとめて表示する処理〕
図９は、本実施形態を示す情報処理装置の制御方法を示すフローチャートである。本例は、図５のシーケンス図におけるＳ５１０からＳ５２０のジョブ書誌情報をジョブリストにまとめて表示する処理例である。なお、ＭＦＰ１０１のＨＤＤ２１４に記憶されているプログラムを、ＣＰＵ２１１がＲＡＭ２１３に読み出し、解析、実行することで、図９に示す各ステップが実行される。
フロントエンド４１１０がユーザからのジョブ表示指示を受け付ける（Ｓ９０１）。フロントエンド４１１０は機能プロバイダ管理部４２００から機能プロバイダ情報を取得する（Ｓ９０２）。次にフロントエンド４１１０は、取得した各機能プロバイダから機能プロバイダを１つ取得し（Ｓ９０３）、取得した機能プロバイダにジョブ書誌情報の取得を指示して、ジョブ書誌情報を取得する（Ｓ９０４）。次にフロントエンド４１１０は、Ｓ９０２で取得した機能プロバイダのうち、Ｓ９０３で取得した機能プロバイダ以外に機能プロバイダがあるか否かを判断する。フロントエンド４１１０が次の機能プロバイダがあると判断した場合、処理をＳ９０３に戻し、次の機能プロバイダが無いと判断した場合は、処理はＳ９０６に進む（Ｓ９０５）。次にフロントエンド４１１０は機能プロバイダに対してジョブリスト表示部４１１１に取得した書誌情報をまとめて表示するよう指示して（Ｓ９０６）、本処理を終了する。
【００４３】
〔印刷実行処理〕
図１０は、本実施形態を示す情報処理装置の制御方法を示すフローチャートである。本例は、図５のシーケンス図におけるＳ５３０からＳ５３３のジョブをまとめて印刷実行する処理例である。なお、ＭＦＰ１０１のＨＤＤ２１４に記憶されているプログラムを、ＣＰＵ２１１がＲＡＭ２１３に読み出し、解析、実行することで、図１０に示す各ステップが実行される。
ロントエンド４１１０がジョブリスト表示部４１１１でユーザが選択したジョブの印刷実行指示を受け付ける（Ｓ１００１）。そして、フロントエンド４１１０が印刷実行指示を受け付けた印刷順に印刷ジョブを１つ取得し（Ｓ１００２）、ジョブの印刷順に各ジョブが所属する機能プロバイダを取得する（Ｓ１００３）。そして、フロントエンド４１１０は、Ｓ１００３で取得した機能プロバイダにジョブ実行を指示する（Ｓ１００４）。
次にフロントエンド４１１０は、Ｓ１００１で取得した印刷ジョブのうち、Ｓ１００２で取得した印刷ジョブ以外に印刷ジョブがあるか否かを判断する。フロントエンド４１１０が次の印刷ジョブがあると判断した場合は、処理はＳ１００２に進み、次の印刷ジョブが無いと判断した場合、本処理を終了する（Ｓ１００５）。
本実施形態によれば、複数アプリのジョブを印刷する場合、１つのジョブリスト画面で一括印刷指示することが可能になる。
【００４４】
〔第２実施形態〕
次に、本発明に係る第２実施形態について説明する。第１実施形態において、印刷ジョブの設定変更を行いたい場合がある。本実施形態では、複数のジョブに対してまとめて設定変更する処理の例を説明する。
【００４５】
なお、特に断らない限り、本実施形態について、第１実施形態と同一の番号のブロック図、シーケンス図、フローチャートや処理は、それぞれ第１実施形態の同一番号のブロック図、シーケンス図、フローチャートや処理と同一のものである。
【００４６】
図４において、ローカルジョブ管理プロバイダ４１２０、セキュアジョブ管理プロバイダ４１３０とリモートジョブ管理プロバイダ４１４０は、設定変更部４１２４、設定変更画面表示部４１２５、ジョブ管理プロバイダ定義ファイル４１２６を持つものとする。
【００４７】
〔第２のジョブ処理例〕
図１１は、図５の一連の処理に、設定変更を行う処理の流れを追加して示したシーケンス図である。
図１１において、フロントエンド４１１０は各機能プロバイダ（４１２０、４１３０と４１４０）からジョブ書誌情報を受け取ってジョブリスト表示部４１１１にまとめて表示する（Ｓ５２０）。次にフロントエンド４１１０はユーザから選択したジョブに対する印刷設定変更の指示で変更するジョブ設定情報を受け取る（Ｓ１１０１）。さらにフロントエンド４１１０が選択したジョブの所属する機能プロバイダから一つの代表機能プロバイダを選択して（Ｓ１１０２）、選択した機能プロバイダの設定変更画面表示部４１２５にジョブ設定変更画面表示を指示する（Ｓ１１０３）。なお、Ｓ１１０１、Ｓ１１０２の処理の詳細については、図１３を用いて後述する。
次に機能プロバイダの設定変更部４１２４がジョブ設定変更画面の表示する指示を受け取って、ジョブ設定変更画面を表示する（Ｓ１１０４）。機能プロバイダはジョブ設定変更画面で変更すべきジョブ設定情報を受け取る（Ｓ１１０５）と、後述の設定変更テーブルを生成する（Ｓ１１０６）。Ｓ１１０６の処理の詳細については、図１７を用いて後述する。
次はフロントエンド４１１０が設定変更テーブルを受け取って（Ｓ１１０７）、各機能プロバイダに対して設定変更テーブルを渡して設定変更を指示する（Ｓ１１０８、Ｓ１１０９、Ｓ１１１０）。次は各機能プロバイダが設定変更テーブルに従って選択したジョブに対して設定変更を反映する（Ｓ１１１１、Ｓ１１１２、Ｓ１１１３）。Ｓ１１１１、Ｓ１１１２、Ｓ１１１３の処理の詳細は、図１９で示す。
【００４８】
図１２は、図４に示したジョブ管理プロバイダ定義ファイル４１２６の一例を示す図である。ジョブ管理プロバイダ定義ファイル４１２６は機能プロバイダが設定変更できる項目を示している。
図１２において、Ｐｒｏｖｉｄｅｒタグ１２０１は機能プロバイダで設定できる項目を表す。ＳｅｔｔｉｎｇＩｔｅｍタグ１２０２は設定項目ＩＤを示し、設定項目を表すＩＤである。ＳｅｔｔｉｎｇＶａｌｕｅ１２０３は各設定項目の設定値を示し、選択肢、数値、文字列のような種類があり、選択肢の場合は各設定値ＩＤが記載され、数値の場合は値域が記載され、文字列の場合は最大文字列数が記載される。本実施形態におけるジョブ管理プロバイダ定義ファイル４１２６はＸＭＬ形式で記載しているが、それ以外のＣＳＶやデータベースファイル等の形式で記載されていてもよい。
【００４９】
〔代表機能プロバイダを選択する処理〕
図１３は、本実施形態を示す情報処理装置の制御方法を示すフローチャートである。本例は、図１１のシーケンス図におけるＳ１１０１とＳ１１０２の代表機能プロバイダを選択する処理例である。なお、ＭＦＰ１０１のＨＤＤ２１４に記憶されているプログラムを、ＣＰＵ２１１がＲＡＭ２１３に読み出し、解析、実行することで、図１３に示す各ステップが実行される。
フロントエンド４１１０は、ユーザからジョブ設定変更指示を受付ける（Ｓ１３０１）。次にフロントエンド４１１０は選択した各ジョブの所属する機能プロバイダの機能プロバイダ情報テーブル４２３０とジョブ管理プロバイダ定義ファイル４１２６に記載した情報を機能プロバイダ管理部４２００から取得する（Ｓ１３０２）。フロントエンド４１１０は選択したジョブが複数の機能プロバイダに所属するか否かを判断して（Ｓ１３０３）、複数の機能プロバイダが所属すると判断した場合は、処理はＳ１３０４に進み、そうではないと判断した場合、本処理を終了する。
フロントエンド４１１０は、Ｓ１３０３で取得したジョブの中で共通設定項目が一番多い機能プロバイダを選択する（Ｓ１３０４）。なお、Ｓ１３０４の処理の詳細は、図１４で説明する。
Ｓ１３０４で選択された結果の機能プロバイダ数が１個以上の場合、処理はＳ１３０６に進み、そうではない場合は、本処理を終了する（Ｓ１３０５）。次に、フロントエンド４１１０はＳ１３０４で取得した機能プロバイダから、設定項目数が一番多い機能プロバイダを選択する（Ｓ１３０６）。Ｓ１３０６の処理の詳細は、図１５を用いて後述する。
Ｓ１３０６で選択された結果の機能プロバイダ数が１個以上の場合、処理はＳ１３０８に進み、そうではないと判断した場合は、本処理を終了する（Ｓ１３０７）。フロントエンド４１１０はＳ１３０６で取得した機能プロバイダからユーザによって選択されたジョブ数が一番多い機能プロバイダを選択する（Ｓ１３０８）。Ｓ１３０８で選択された結果の機能プロバイダ数が１個以上の場合、先頭ジョブの機能プロバイダにする（Ｓ１３１０）。
【００５０】
〔共通設定項目が一番多い機能プロバイダを選択する処理〕
図１４は、本実施形態を示す情報処理装置の制御方法を示すフローチャートである。本例は、図１３のフローチャートにおけるＳ１３０４において共通設定項目が一番多い機能プロバイダを選択する処理例である。なお、ＭＦＰ１０１のＨＤＤ２１４に記憶されているプログラムを、ＣＰＵ２１１がＲＡＭ２１３に読み出し、解析、実行することで、図１４の各ステップが実行される。
【００５１】
フロントエンド４１１０はＳ１３０２で取得した機能プロバイダリストから順に１つ取得して（Ｓ１４０２）する。次にフロントエンド４１１０は取得した機能プロバイダがサポートする設定項目を順に１つ取得して（Ｓ１４０３）、その設定項目をサポートする機能プロバイダ数を計算する（Ｓ１４０４）。この時、フロントエンド４１１０は、他の機能プロバイダのジョブ管理プロバイダ定義ファイル４１２６に同じ設定項目ＩＤの設定項目がある場合は、この機能プロバイダが該当設定項目をサポートすると判断する。フロントエンド４１１０はＳ１４０２で取得した機能プロバイダの設定項目をＳ１４０３で取得した後に次の設定項目があったか否かを判断する（Ｓ１４０５）。
【００５２】
フロントエンド４１１０が次の設定項目があったと判断した場合は、処理はＳ１４０３に進み、そうではない場合は、処理はＳ１４０６に進む。フロントエンド４１１０は機能プロバイダの各設定項目に対して前記のＳ１４０４で計算した数を合計して、共通設定項目数とする（Ｓ１４０６）。
フロントエンド４１１０はＳ１４０１で受信した機能プロバイダリストからＳ１４０２で取得された機能プロバイダの次の機能プロバイダがあったか否かを判断する（Ｓ１４０７）。フロントエンド４１１０が次の機能プロバイダがあったと判断した場合は、処理はＳ１４０２に進み、そうではない場合は、処理はＳ１４０８に進む。フロントエンド４１１０は機能プロバイダリストにある各機能プロバイダの共通設定項目数をＳ１４０６の方法で計算して、一番多い機能プロバイダを選択して（Ｓ１４０８）、本処理を終了する。
【００５３】
〔設定項目数が一番多い機能プロバイダを選択する処理〕
図１５は、本実施形態を示す情報処理装置の制御方法を示すフローチャートである。本例は、図１３のフローチャートにおけるＳ１３０６において設定項目数が一番多い機能プロバイダを選択する処理例である。なお、ＭＦＰ１０１のＨＤＤ２１４に記憶されているプログラムを、ＣＰＵ２１１がＲＡＭ２１３に読み出し、解析、実行することで、図１５に示す各ステップが実行される。
フロントエンド４１１０はＳ１３０２で取得した機能プロバイダリストから順に１つ取得して（Ｓ１５０２）、その機能プロバイダがサポートする設定項目数をカウントする（Ｓ１５０３）。フロントエンド４１１０がＳ１５０１で取得した機能プロバイダリストからＳ１５０２で取得した機能プロバイダの次の機能プロバイダがあるか否かを判断する（Ｓ１５０４）。フロントエンド４１１０が次の機能プロバイダがあると判断した場合は、処理はＳ１５０２に進み、そうではない場合、Ｓ１５０５に進む（Ｓ１５０４）。フロントエンド４１１０がＳ１５０３で取得した機能プロバイダリストにある各機能プロバイダの設定項目数をカウントし、設定項目数が一番多い機能プロバイダを選択して（Ｓ１５０５）、本処理を終了する。
【００５４】
〔ジョブ数が一番多い機能プロバイダを選択する処理〕
図１６は、本実施形態を示す情報処理装置の制御方法を示すフローチャートである。本例は、図１３のフローチャートにおけるＳ１３０８において選択したジョブ数が一番多い機能プロバイダを選択する処理例である。なお、ＭＦＰ１０１のＨＤＤ２１４に記憶されているプログラムを、ＣＰＵ２１１がＲＡＭ２１３に読み出し、解析、実行することで、図１６の各ステップが実行される。
フロントエンド４１１０はＳ１３０２で取得した機能プロバイダリストから順に１つ取得する（Ｓ１６０２）。そしてフロントエンド４１１０はＳ１３０１のジョブ設定変更指示で選択された、その機能プロバイダに所属する変更対象のジョブ数をカウントする（Ｓ１６０３）。フロントエンド４１１０は、Ｓ１６０１で受信した機能プロバイダリストからＳ１６０２で取得した次の機能プロバイダがあるか否かを判断する（Ｓ１６０４）。フロントエンド４１１０が次の機能プロバイダがあると判断した場合は、処理はＳ１６０２に進み、そうではない場合は処理はＳ１６０５に進む。フロントエンド４１１０はＳ１６０３で取得した機能プロバイダリストにある各機能プロバイダの選択したジョブ数をカウントして、一番多い機能プロバイダを選択する（Ｓ１６０５）。
【００５５】
〔設定変更テーブル生成の処理〕
図１７は、本実施形態を示す情報処理装置の制御方法を示すフローチャートである。本例は、図１１のシーケンス図におけるＳ１１０６における設定変更テーブル生成の処理例である。なお、ＭＦＰ１０１のＨＤＤ２１４に記憶されているプログラムを、ＣＰＵ２１１がＲＡＭ２１３に読み出し、解析、実行することで、図１７の各ステップが実行される。
機能プロバイダの設定変更部４１２４は設定変更画面で変更終了の指示を受けると、設定変更画面表示部４１２５から設定状態を受け取る（Ｓ１７０１）。機能プロバイダの設定変更部４１２４は機能プロバイダがサポートする設定項目順に１つ取得する（Ｓ１７０２）。機能プロバイダの設定変更部４１２４は、Ｓ１７０１で取得した設定状態から、設定変更があるか否かを判断して（Ｓ１７０３）、変更がある項目とその変更値をリストに追加する（Ｓ１７０４）。次に、設定変更部４１２４は、次の設定項目があるかどうかを判断し（Ｓ１７０５）、設定項目があると判断した場合は、Ｓ１７０２へ戻り、設定項目がないと判断した場合、機能プロバイダの設定変更部４１２４は設定変更リストから中間データとして後述の図１８の設定変更テーブル１８００を生成して（Ｓ１７０６）、本処理を終了する。
【００５６】
図１８は、図１７のＳ１７０６にて生成する中間データの設定変更テーブル１８００の一例を示す図ある。
図１８において、設定変更テーブル１８００には、ＳｅｔｔｉｎｇＣｈａｎｇｅＴａｂｌｅタブ１８０１で設定変更内容を表す。ＳｅｔｔｉｎｇＩｔｅｍタグ１８０２は設定項目を示す設定項目ＩＤを表す。ＳｅｔｔｉｎｇＶａｌｕｅタグ１８０３は設定値を示す設定値ＩＤを表す。図１８の設定項目ＩＤおよび設定値ＩＤと、ジョブ管理プロバイダ定義ファイル４１２６で定義した同じ項目の設定項目ＩＤおよび設定値ＩＤは一致している。本実施形態における設定変更テーブル１８００はＸＭＬ形式で記載しているが、それ以外のＣＳＶ等の形式で記載されていてもよい。
【００５７】
〔設定変更反映の処理〕
図１９は、本実施形態を示す情報処理装置の制御方法を示すフローチャートである。本例は、図１１のシーケンス図におけるＳ１１１１、Ｓ１１１２、Ｓ１１１３の設定変更反映の処理例である。なお、ＭＦＰ１０１のＨＤＤ２１４に記憶されているプログラムを、ＣＰＵ２１１がＲＡＭ２１３に読み出し、解析、実行することで、図１９に示す各ステップが実行される。
機能プロバイダの設定変更部４１２４がフロントエンド４１１０からＳ１７０６で生成した設定変更テーブル１８００と設定変更対象のジョブリストを受け付ける（Ｓ１９０１）。次に設定変更部４１２４は、Ｓ１９０１で受信したジョブのリストからリスト順にジョブを１つ取得する（Ｓ１９０２）。
次に設定変更部４１２４は、Ｓ１９０１で取得した設定変更テーブル１８００に記載している各設定項目と設定値を順に１つ取得し（Ｓ１９０３）、機能プロバイダが設定項目と設定値をサポートするか否かを判断する（Ｓ１９０４）。ここで、設定変更部４１２４が設定項目と設定値を機能プロバイダがサポートしていると判断した場合は、処理はＳ１９０５に進み、そうではない場合は、処理はＳ１９０３に進む。設定変更部４１２４は設定項目がサポートしないもしくは設定値が値域外であれば、その設定が設定変更対象の既存設定とコンフリクトがあると判断する（Ｓ１９０５）。設定変更部４１２４はコンフリクトがないと判断した場合はその設定項目を既存の設定に追加で設定する（Ｓ１９０６）。設定変更部４１２４は設定にコンフリクトがあると判断した場合は、処理はＳ１９０３に進む。
設定変更部４１２４はＳ１９０１で取得した設定変更テーブル１８００からＳ１９０３で取得した設定変更項目の次の設定項目があるか否かを判断する（Ｓ１９０７）。設定変更部４１２４は次の設定項目があると判断した場合は、処理はＳ１９０３に進み、そうではない場合はＳ１９０８に進む。設定変更部４１２４はＳ１９０１で取得した選択されたジョブリストからＳ１９０２で取得されたジョブの次のジョブがあるか否かを判断する（Ｓ１９０８）。設定変更部４１２４は次のジョブがあると判断した場合は、処理はＳ１９０２に進み、そうではない場合は、処理は終了する。
本実施形態によれば、複数アプリの印刷ジョブに対して、設定変更できる項目が異なる場合でも、最適な設定変更画面で全ての印刷ジョブに対して同一の印刷設定を適用することが可能になる。
【００５８】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えばＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５９】
１０１  ＭＦＰ
１０２  サーバ
【図１】
2017134488.tif 000003
【図２】
2017134488.tif 000004
【図３】
2017134488.tif 000005
【図４】
2017134488.tif 000006
【図５】
2017134488.tif 000007
【図６】
2017134488.tif 000008
【図７】
2017134488.tif 000009
【図８】
2017134488.tif 000010
【図９】
2017134488.tif 000011
【図１０】
2017134488.tif 000012
【図１１】
2017134488.tif 000013
【図１２】
2017134488.tif 000014
【図１３】
2017134488.tif 000015
【図１４】
2017134488.tif 000016
【図１５】
2017134488.tif 000017
【図１６】
2017134488.tif 000018
【図１７】
2017134488.tif 000019
【図１８】
2017134488.tif 000020
【図１９】
2017134488.tif 000021