(57)【要約】【課題】設定値の配信を行う等の他の機能と競合する可能性のある機能が後から追加された場合でも、実装を変えることなく、それらの機能の処理を効率的に排他管理し、競合を防ぐこと。【解決手段】画像形成装置１０１の設定値配信部３０９、拡張型設定値配信部３１２等の機能が他の機能（拡張プログラム３０３）の停止および開始を伴う処理を行う場合にタスクを拡張プログラム操作一括管理部３１３に登録する（Ｓ４０１、Ｓ４０６）。拡張プログラム操作一括管理部３１３は、登録されたタスクを管理し、順次、該タスクに対応する機能に対して処理の開始を許可する（Ｓ４０４、Ｓ４１０）。拡張プログラム操作一括管理部３１３は、前に処理の開始を許可したタスクに対応する処理が終了した後に次のタスクに対応する機能に対して処理の開始を許可することにより登録されたタスクを排他制御する（Ｓ４０９〜Ｓ４１０）。【選択図】図５
2016218591.tif 000002
【特許請求の範囲】
【請求項１】
機能を追加可能な情報処理装置であって、
機能が他の機能の停止および開始を伴う処理を行う場合にタスクを登録するための登録手段と、
前記登録手段に登録されたタスクを管理し、順次、該タスクに対応する機能に対して処理の開始を許可する管理手段と、
前記管理手段は、前に処理の開始を許可したタスクに対応する処理が終了した後に次のタスクに対応する機能に対して処理の開始を許可することにより前記登録手段に登録されたタスクを排他制御することを特徴とする情報処理装置。
【請求項２】
複数の機能の処理を順次実行する一括処理を制御する一括処理手段と、を有し、
前記各機能は、前記処理を個別に行う場合には、該処理を実行する機能が前記登録を行い、前記処理を前記一括処理によって行う場合には、該一括処理の対象となる、いずれか１の機能が前記登録を行い、他の機能は前記登録を行わないものであり、
さらに前記一括処理の場合、前記管理手段から処理の開始の許可を受けた各機能は、前記一括処理手段からの指示に応じて処理を実行することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
複数の機能の処理を順次実行する一括処理を制御する一括処理手段と、を有し、
前記各機能は、前記処理を個別に行う場合および前記処理を前記一括処理によって行う場合のいずれの場合であっても、該処理を実行する機能が前記登録を行うものであり、
前記管理手段は、前記登録手段に登録された前記一括処理に含まれる処理に対応する複数のタスクをマージし、該マージされたタスクに対応する処理の開始を許可する場合には、該マージされたタスクに対応する全ての機能に対して開始の許可を通知するものであり、
前記一括処理の場合、前記管理手段から処理の開始の許可を受けた各機能は、前記一括処理手段からの指示に従って処理を実行することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記管理手段は、前記マージしたタスクに対応する全ての機能に対して、前記他の機能の停止の指示、該処理の開始の許可、前記他の機能の開始の指示を通知することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記管理手段は、前記登録手段に登録されたタスクをキューにより管理することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記処理は、外部装置から前記情報処理装置の設定値の配信を受けるインポート、前記情報処理装置の設定値を外部装置に配信するエクスポートの少なくともいずれかを示す配信処理であることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記機能は、前記情報処理装置に初めから組み込まれている機能、及び、前記情報処理装置に後から追加された機能を含むことを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記情報処理装置は、画像形成装置であることを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
機能を追加可能な情報処理装置の制御方法であって、
機能が他の機能の停止および開始を伴う処理を行う場合にタスクを登録手段に登録するための登録ステップと、
前記登録手段に登録されたタスクを管理し、順次、該タスクに対応する機能に対して処理の開始を許可する管理ステップと、
前記管理ステップでは、前に処理の開始を許可したタスクに対応する処理が終了した後に次のタスクに対応する機能に対して処理の開始を許可することにより前記登録手段に登録されたタスクを排他制御することを特徴とする情報処理装置の制御方法。
【請求項１０】
コンピュータを、請求項１乃至８のいずれか１項に記載された手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機能を追加可能な情報処理装置の制御に関するものである。
【背景技術】
【０００２】
昨今、複合機などの画像形成装置の多機能化に伴い、その動作を制御するための設定値が増大している。そのため、画像形成装置を利用する際には、事前に膨大な設定値を登録する必要がある。
【０００３】
そのような状況下で、設定作業を効率化するために、昨今の画像形成装置は、設定値を他の画像形成装置へ配信する仕組みを備えている。１つの画像形成装置で設定作業を行った後、その設定値を他の画像形成装置へ一括で配信することができるため、設置作業を効率化することができる。
こうした設定値は、顧客の環境に合わせて、細かく変更される。場合によっては、特別な商談等の場合だけ配信したいような設定値も存在する。
【０００４】
一方、画像形成装置においては、Ｊａｖａ（登録商標）アプリケーション等のプログラムを後からインストールすることが可能である。こうした後入れのアプリケーションを用いて、元々組み込まれている機能では配信されない設定値を配信するための機能を後から追加することが可能となっている。このような場合、元々組み込まれている機能と後から追加した機能とが競合して誤作動してしまうことを防ぐために、これらを一括で管理し、排他する仕組みが必要となる。
【０００５】
例えば、アプリケーションの設定値を配信する場合には、事前に対象となるアプリケーションを停止する必要がある。これは、アプリケーションが配信中の設定値を参照し、誤作動することを防ぐためである。その後、配信が完了すると、停止したアプリケーションを再び開始する。
【０００６】
組込機能と追加機能が、どちらも設定値の配信のためにアプリケーションの停止・開始を行い、それらの処理が競合すると、停止したつもりのアプリケーションが開始されてしまうなどの不具合が発生する可能性がある。例えば、追加機能による配信の完了前に、組み込み機能によりアプリケーションが開始されてしまうなどの不具合が発生する可能性がある。したがって、組込機能と追加機能の処理を互いに排他することが必要になる。
【０００７】
特許文献１では、画像形成装置の各機能（アプリケーション）の処理を管理部（アプリケーションコントローラルール層）により一括で管理する技術が提案されている。
特許文献１では、所定のルールに従って管理部から各機能の処理を制御する。各機能は、管理部によって定義されたインタフェース（実行する、中止する、中断する、再開する）を実装し、管理部は共通のコマンドにより各機能の処理を制御可能な構成になっている。特許文献１によれば、機能の追加や削除が行われた場合でも、管理部が制御に用いるコマンドに変更が生じないことがなく、機能の追加や削除を容易に行うことができる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−２３３９４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、特許文献１の技術は、各機能に、管理部のルールに従ったインタフェースを実装する必要があったり、各機能の処理内容が管理部からの指示に合わせて制約を受けてしまう可能性がある。
【００１０】
また、特許文献１では、優先順位に基づいて機能の処理の実行順序を変更することは可能であるが、競合して誤作動してしまう複数の機能の処理の排他については何ら考慮されていない。特許文献１の管理部は全ての処理を管理する構成であり、競合して誤作動してしまう複数の機能の処理（例えば事前に対象となる機能を停止する処理）のみを区別して管理することはできない。よって、特許文献１の構成で、特定の機能の処理の実行を排他しようとすると、全ての処理について排他実行する（即ち、１つずつ処理を実行する）必要があり、処理の効率を著しく低下させてしまう可能性がある。
【００１１】
また、特許文献１では、複数の機能の処理を一括して停止等することは可能であるが、複数の機能の処理を一括で行う処理、例えば組込機能による配信処理と追加機能による配信処理とを一括で行う一括配信について何ら考慮されていない。
なお、このような課題は、画像形成装置に限られるものではなく、他の情報処理装置（例えばパーソナルコンピュータ、タブレット端末、スマートフォン、各種家電）などにおいても同様に存在する。
【００１２】
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、設定値の配信を行う等の他の機能と競合する可能性のある機能が後から追加された場合でも、実装を変えることなく、それらの機能の処理を効率的に排他管理し、競合を防ぐことができる仕組みを提供することである。
【課題を解決するための手段】
【００１３】
本発明は、機能を追加可能な情報処理装置であって、機能が他の機能の停止および開始を伴う処理を行う場合にタスクを登録するための登録手段と、前記登録手段に登録されたタスクを管理し、順次、該タスクに対応する機能に対して処理の開始を許可する管理手段と、前記管理手段は、前に処理の開始を許可したタスクに対応する処理が終了した後に次のタスクに対応する機能に対して処理の開始を許可することにより前記登録手段に登録されたタスクを排他制御することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、設定値の配信を行う等の他の機能と競合する可能性のある機能が後から追加されても、実装を変えることなく、それらの機能の処理を効率的に排他管理し、競合を防ぐことができる。
よって、後入れで設定値の配信を行う機能が追加された場合でも、元々組み込まれている設定値の配信機能との競合を防ぐとともに、これらの機能による設定値の一括配信も可能にする。
【図面の簡単な説明】
【００１５】
【図１】本発明の一例を示す画像形成装置を適用可能なシステム構成図
【図２】本実施例の画像形成装置のハードウェア構成図
【図３】本実施例の画像形成装置のソフトウェア構成図
【図４】一括配信処理の概要を例示するフローチャート
【図５】実施例１の設定値の個別配信処理を例示するフローチャート
【図６】設定値の配信処理を例示するフローチャート
【図７】一括配信処理の詳細を例示するフローチャート
【図８】実施例３の設定値の配信処理を例示するフローチャート
【図９】実施例４の設定値の配信処理を例示するフローチャート
【発明を実施するための形態】
【００１６】
以下、本発明を実施するための形態について図面を用いて説明する。
＜用語の定義＞
まず、本実施形態で使用する用語の定義を行う。
「設定値」とは、画像形成装置内に設定される画像形成装置の動作を切り替えるソフトウェア上のパラメータを示す。
「組込プログラム」とは、画像形成装置に元々組み込まれたアプリケーション等のプログラムを示す。
「拡張プログラム」とは、ｊａｖａ（登録商標）アプリケーション等の後から画像形成装置にインストール可能なプログラムを示す。
「配信」とは、画像形成装置から設定値を取り出すエクスポートや、外部から設定値（エクスポート等されたもの）を画像形成装置に取り込むインポートを示す。
以上が用語の説明となる。ここで説明した以外にも適宜用語の説明を行う。
【実施例１】
【００１７】
図１は、本発明の情報処理装置の一例を示す画像形成装置を適用可能なシステムの構成を例示する図である。
図１において、画像形成装置１０１は、プリント機能、コピー機能、ファクシミリ機能、送信機能（ｅ−ｍａｉｌ、ＦＴＰ等）等を統合したデジタル複合画像形成装置（ＭＦＰ）やプリンタ、スキャナ、ファクシミリ等の画像形成装置である。画像形成装置１０１には、機能ごとに様々な設定値が設けられており、それらの設定値に基づいて各機能が動作する。なお、ＭＦＰは、Ｍｕｌｔｉｆｕｎｃｔｉｏｎ Ｐｅｒｉｐｈｅｒａｌを示す。また、詳細は後述するが、画像形成装置１０１は、拡張アプリケーションをインストールすることにより、機能を追加可能である。
【００１８】
ＰＣ（パーソナルコンピュータ）１０２は、個人向けの汎用的なコンピュータであり、デスクトップ型やノート型、タブレット型などがある。ＰＣ１０２は、画像形成装置１０１とＬＡＮ１０３を介して接続することで、画像形成装置１０１に対する設定値の配信が可能である。すなわち、画像形成装置１０１からＰＣ１０２への設定値のエクスポート、ＰＣ１０２から画像形成装置１０１への設定値のインポートが可能である。
【００１９】
ＬＡＮ１０３は、ローカルエリアネットワークである。画像形成装置１０１は、ＬＡＮ１０３を介して他の画像形成装置（不図示）、ＰＣ１０２やインターネット１０４と接続可能である。ＬＡＮ１０３は、有線ＬＡＮであっても無線ＬＡＮであってもよい。
インターネット１０４は、単一のＷＡＮ（Ｗｉｄｅ Ａｒｅａ Ｎｅｔｗｏｒｋ）、ＬＡＮ（Ｌｏｃａｌ Ａｒｅａ Ｎｅｔｗｏｒｋ）、アドホックネットワークなどのネットワークで実現してもよい。また、インターネット１０４は、必要に応じた複数のＷＡＮ、ＬＡＮ、アドホックネットワークの複合で構成されてもよい。また、本実施例におけるインターネットは一例であり、他の通信ネットワーク、または、ネットワークの複合でもよい。
【００２０】
外部装置１０５は、画像形成装置１０１の設定情報を管理する外部機器である。例えば、画像形成装置１０１から外部装置１０５への設定値のエクスポート、外部装置１０５から画像形成装置１０１への設定値のインポート等が可能である。本実施例では、外部装置１０５は、インターネット１０４を介して画像形成装置１０１と接続されている外部サーバを想定しているが、ＬＡＮ１０３を介して接続した内部サーバ等であってもよい。
【００２１】
図２は、画像形成装置１０１のハードウェア構成を例示する図である。
図２において、制御部２０１は、画像形成装置１０１を統括的に制御する。
内部バス２０２は、ハードウェアの各構成要素を接続する。ＣＰＵ２０３は、ＲＯＭ２０５やＨＤＤ２０４に格納された制御プログラムを実行する。ＨＤＤ２０４は、不揮発性記憶領域であり、設定値や稼働ログ、画像形成装置１０１の制御プログラム等を保持する。なお、ＨＤＤの代わりに又は併用してＳＳＤ（Ｓｏｌｉｄ Ｓｔａｔｅ Ｄｒｉｖｅ）等の他の記憶装置を設けてもよい。ＲＯＭ２０５は、読み出し専用の不揮発記憶領域であり、画像形成装置１０１の制御プログラムを保持する。ＲＡＭ２０６は、ＣＰＵ２０３がプログラムを実行するためのワークメモリエリアであり、一時記憶領域として用いられる。
【００２２】
ディスプレイＩ／Ｆ２０７は、ディスプレイ２１２と制御部２０１を接続する。操作部Ｉ／Ｆ２０８は、操作部２１３と制御部２０１を接続する。プリンタＩ／Ｆ２０９は、プリンタ２１４と制御部２０１を接続する。スキャナＩ／Ｆ２１０は、スキャナ２１５と制御部２０１を接続する。ネットワークＩ／Ｆ２１１は、ＬＡＮ１０３と接続するためのインタフェース部であり、ＬＡＮ１０３を介して他の画像形成装置（不図示）やインターネット１０４と通信を行う。
【００２３】
ディスプレイ２１２は、ユーザの操作や画像形成装置の状態に応じたエラー情報等を表示する。操作部２１３は、キー入力手段を内蔵し、これらはＣＰＵ２０３にて制御される。ユーザは、キー入力を通してスキャナ読み取りやプリント出力に関する各種設定指示や、作動／停止指示を行う。なお、操作部２１３のキー入力手段は、ハードキーであっても、タッチパネルのようなディスプレイ２１２上で直接操作するものであってもよく、特に限定するものではない。
【００２４】
プリンタ２１４は、画像データの記録媒体上への印刷を行う。プリンタ２１４で印刷すべき画像データは、制御部２０１からプリンタＩ／Ｆ２０９を介してプリンタ２１４へ転送される。スキャナ２１５は、原稿上の画像を読み取り、画像データを生成し、スキャナＩ／Ｆ２１０を介して制御部２０１へ転送する。
【００２５】
図３は、画像形成装置１０１のソフトウェア構成を例示する図である。なお、図３において四角で示した各構成部はソフトウェアを表している。また、画像形成装置１０１の各ソフトウェアはＲＯＭ２０５もしくはＨＤＤ２０４に保存され、ＣＰＵ２０３にて実行される。また、ソフトウェアの実行時に使用する各種情報は、ＲＡＭ２０６もしくはＨＤＤ２０４に保持してソフトウェア機能間での各種情報のやりとりを行う。さらに、ソフトウェアに基づく外部機器との通信は、ネットワークＩ／Ｆ２１１を用いて行われる。
【００２６】
以下に各ソフトウェアを説明する。
ＯＳ（オペレーティングシステム）３０１は、入出力機能、ディスクやメモリの管理など、多くのアプリケーションソフトウェアから共通して利用される基本的な機能を提供し、システム全体を管理するシステムソフトウェアである。
【００２７】
拡張プログラム実行プラットフォーム３０２は、拡張プログラム３０３の動作に必要なＯＳ３０１上で動作するプラットフォームである。拡張プログラム実行プラットフォーム３０２を適用することで、ＯＳ３０１に依存せずに拡張プログラム３０３を動作させることができる。例えば、ｊａｖａアプリケーションが動作するｊａｖａＶＭ（商標登録）等がこれに該当する。
【００２８】
拡張プログラム３０３は、拡張プログラム実行プラットフォーム３０２上で動作するプログラムである。拡張プログラム３０３は、拡張プログラム実行プラットフォーム３０２または拡張プログラムシステムサービス３０４を介してのみ、他の拡張プログラム３０３やＲＡＭ２０６など画像形成装置１０１の各モジュールへアクセスすることができる。
【００２９】
拡張プログラムシステムサービス３０４は、拡張プログラム実行プラットフォーム３０２上で動作するプログラムである。拡張プログラムシステムサービス３０４は、拡張プログラム３０３に共通に有用なユーティリティライブラリであり、システムから提供される。拡張プログラム３０３から拡張プログラムシステムサービス３０４を呼び出すことでサービスが利用可能となる。
【００３０】
組込プログラム３０５は、プリンタ、ファクシミリやスキャナなどの画像形成装置１０１に元々備わっている制御プログラムである。
【００３１】
拡張プログラム３０３において、固有設定値保持部３０６は、拡張プログラム３０３の一つ一つに対して割り当てられる固有の記憶領域である。拡張プログラム３０３は、自身で利用する設定値を任意のファイル形式で固有設定値保持部３０６に記憶することができる。固有設定値保持部３０６に保持された設定値は、各拡張プログラム専用の設定値であり、元々組み込まれている機能では配信することができないが、後述する拡張型設定値配信部３１２を後からインストールすることで配信が可能になる。
【００３２】
拡張プログラムシステムサービス３０４において、設定値管理部３０７は、拡張プログラム３０３が設定値を管理するための機能を提供する。設定値管理部３０７で管理する設定値は、元々配信されることが想定されておらず、元々組み込まれている機能では他の機器に配信することができないが、後述する拡張型設定値配信部３１２を後からインストールすることで配信が可能になる。なお、設定値保持部３１０は、設定値管理部３０７が管理する設定値を保持する。
【００３３】
配信用設定値管理部３０８は、拡張プログラム３０３が扱う設定値を管理するための機能を提供する。配信用設定値管理部３０８が管理する設定値は、初めから配信されることが想定されており、設定値配信部３０９によって配信が行われる。なお、配信用設定値保持部３１１は、配信用設定値管理部３０８が管理する設定値を保持する。
【００３４】
設定値配信部３０９は、配信用設定値管理部３０８が管理する設定値を配信する機能を提供する。設定値配信部３０９は、ウェブサービスのインタフェースを提供することで、外部装置１０５などをクライアントとして設定値の配信を行う機能を有する。また、設定値配信部３０９は、後述する設定値一括配信部３１４と連携して、設定値の一括配信を行うことができる。なお、設定値配信部３０９は、後述の拡張型設定値配信部３１２とは異なり、初めから画像形成装置１０１に組み込まれている。
【００３５】
次に、拡張プログラム３０３の拡張型設定値配信部３１２について説明する。
拡張型設定値配信部３１２は、固有設定値保持部３０６や設定値管理部３０７で管理する設定値を配信する機能を提供する。拡張型設定値配信部３１２は、拡張プログラム３０３として作成されるため、後から追加で画像形成装置１０１にインストールすることができる。例えば商談対応等で、固有設定値保持部３０６や設定値管理部３０７で管理する設定値の配信が必要になった場合などに、後から拡張型設定値配信部３１２を画像形成装置１０１にインストールすることで、本来は配信対象外の設定値を配信することができる。
【００３６】
拡張プログラム操作一括管理部３１３は、拡張プログラム３０３に関わる操作を一括管理するための機能を提供する。設定値配信部３０９や拡張型設定値配信部３１２は、設定値の配信を行う際に、拡張プログラム３０３を一旦停止する。これは、設定値の配信中などに拡張プログラム３０３が配信中の不完全な設定値を参照して誤作動することを防ぐためである。そして、配信が完了すると、設定値配信部３０９や拡張型設定値配信部３１２は、再び拡張プログラム３０３を開始する。そのため、設定値配信部３０９や拡張型設定値配信部３１２が同時に同じ拡張プログラム３０３の停止・開始を行うと、予期せぬ不具合が発生する可能性がある。例えば、拡張型設定値配信部３１２による配信の完了前に、設定値配信部３０９によりアプリケーションが開始されてしまうなどの不具合が発生する可能性がある。
【００３７】
この問題を解決するために、拡張プログラム操作一括管理部３１３は、拡張プログラム３０３に対する操作をキューで管理する。設定値配信部３０９や拡張型設定値配信部３１２は、設定値の配信を行う前に、拡張プログラム操作一括管理部３１３が提供するキューにタスクを登録する。そして、このキューが管理する順番に従って、停止・開始などの拡張プログラム３０３に関する操作を行うことで、処理が競合することを防ぐ。即ち、拡張プログラム操作一括管理部３１３は、組込機能と後入れ機能のアプリケーションに対する操作の一括管理を行う。
実施例１は、設定値配信部３０９と拡張型設定値配信部３１２の処理が競合する場合に、拡張プログラム操作一括管理部３１３が、適切に排他を行う場合の実施例である。
【００３８】
次に、組込プログラム３０５の構成について説明する。
スキャナ制御部３１５は、スキャナＩ／Ｆ２１０を介してスキャナ２１５を制御するプログラムである。また、プリンタ制御部３１６は、プリンタＩ／Ｆ２０９を介してプリンタ２１４を制御するプログラムである。
【００３９】
設定値一括配信部３１４は、画像形成装置１０１で扱われる設定値を一括で配信する機能を提供する。画像形成装置１０１には、前述の配信用設定値管理部３０８などが管理する設定値以外にも様々な設定値が存在する。設定値一括配信部３１４は、そうした設定値全体の配信を一括処理する機能を提供する。
【００４０】
以下、図４を用いて一括配信処理の概要を説明する。
図４は、設定値一括配信部３１４が、画像形成装置１０１の設定値を一括で配信する場合の処理を例示するフローチャートである。本フローチャートの処理は、画像形成装置１０１のＣＰＵ２０３がＲＯＭ又はＨＤＤ２０４等に格納されたプログラムを実行することにより実現されるものである。なお、設定値一括配信部３１４が一括配信する設定値の中には、例えば、コピー機能で利用する設定値や表示言語など、様々な設定値が含まれる。本フローチャートの処理は、設定値一括配信部３１４が各機能に対して事前処理の指示を行うステップ（Ｓ８０１）から開始し、各機能が事後処理を行うステップ（Ｓ８０６）にて終了する。
なお、図４では一括配信処理の概要を説明し、一括配信処理の詳細は実施例２で説明するものとする。
【００４１】
Ｓ８０１において、設定値一括配信部３１４は、各機能（設定値配信部３０９、拡張型設定値配信部３１２等）に対して、一括配信の事前処理を指示する。一括配信時は、画像形成装置１０１の設定値が更新されるため、事前に各機能が処理の排他をかける必要がある。これは設定値の配信中に不完全な設定値での動作を避けるためである。したがって、設定値一括配信部３１４は、まず本ステップにて各機能に対して、事前に排他を行うように指示する。
なお、Ｓ８０１の処理は、設定値一括配信部３１４が、操作部２１３、ＰＣ１０２、又は外部装置１０５から一括配信指示を受信したタイミング、又は、予め設定された一括配信タイミング等に実行される。
【００４２】
Ｓ８０２において、各機能が事前処理を行う。前記Ｓ８０１にて設定値一括配信部３１４からの指示を受けると、各機能は、本ステップにて、事前処理として、配信以外の機能を排他する。その後、設定値一括配信部３１４が後述のＳ８０３以降で実際の処理に移行する。
【００４３】
Ｓ８０３において、設定値一括配信部３１４は、各機能に対して、一括配信の実施処理を指示する。前記Ｓ８０２にて各機能の事前処理が終了すると、設定値一括配信部３１４は、本ステップにおいて、改めて実際の配信処理の実施を各機能に指示する。これを受けて、各機能は後述のＳ８０４にて、実際の配信処理を行う。
【００４４】
Ｓ８０４において、各機能は、実際の配信処理を実施する。前記Ｓ８０３にて設定値一括配信部３１４からの指示を受け付けると、各機能は、本ステップにおいて、配信処理を実施する。その後、後述のＳ８０５以降で、設定値一括配信部３１４が事後処理へと移行する。
【００４５】
Ｓ８０５において、設定値一括配信部３１４は、各機能に対して、一括配信の事後処理を指示する。前記Ｓ８０２にて各機能が配信以外の処理を排他しているため、事後処理によって、排他を解除する必要がある。設定値一括配信部３１４は、本ステップにて、各機能に排他の解除を要請し、後述のＳ８０６にて各機能は排他を解除する。
【００４６】
Ｓ８０６において、各機能は、事後処理を実施する。前記Ｓ８０５にて設定値一括配信部３１４から事後処理の指示を受けると、各機能は、本ステップにおいて、排他を解除し、これをもって一括配信の全プロセスを終了する。
【００４７】
以上のように、一括配信は、事前処理、配信処理、事後処理の３つのプロセスから成り立っている。各プロセスでは、設定値一括配信部３１４から各機能に対して、プロセス開始の指示が通知され、それを受けて、各機能が求められる処理を行う。例えば、前述の設定値配信部３０９や拡張型設定値配信部３１２は、一括配信のうちの拡張プログラム３０３に関わる設定値の配信を担当する。この一括配信処理は実施例２において詳細に説明する。
【００４８】
なお、以降の説明では、設定値配信部３０９や拡張型設定値配信部３１２がウェブサービスのインタフェースを介して個別に行う配信を「個別配信」、設定値一括配信部３１４からの指示を受けて行う配信を「一括配信」と呼び区別する。
【００４９】
図５は、実施例１において、設定値配信部３０９と拡張型設定値配信部３１２のそれぞれの個別配信が競合した場合の処理の流れを例示するフローチャートである。本フローチャートの処理は、画像形成装置１０１のＣＰＵ２０３がＲＯＭ又はＨＤＤ２０４等に格納されたプログラムを実行することにより実現されるものである。なお、本フローチャートの処理は、設定値配信部３０９が拡張プログラム操作一括管理部３１３にタスクを登録するステップ（Ｓ４０１）から開始し、拡張プログラム操作一括管理部３１３が拡張型設定値配信部３１２からのタスクの完了通知を受け取るステップ（Ｓ４１３）で終了する。
【００５０】
Ｓ４０１において、設定値配信部３０９は、拡張プログラム操作一括管理部３１３にタスクを登録する。設定値配信部３０９は、設定値の配信に伴って、拡張プログラム３０３の停止・開始処理を行う必要がある場合は、拡張プログラム操作一括管理部３１３に対してタスクを登録する。このとき、設定値配信部３０９は、タスクと一緒にリスナを登録する。これは、後述するＳ４０４で、拡張プログラム操作一括管理部３１３からタスクの実行許可通知を受け取るためのものである。
なお、Ｓ４０１の処理は、設定値配信部３０９が、操作部２１３、ＰＣ１０２、又は外部装置１０５から配信指示を受信したタイミング、又は、予め設定された配信タイミング等に実行される。
【００５１】
Ｓ４０２において、拡張プログラム操作一括管理部３１３は、前記Ｓ４０１で設定値配信部３０９から登録されたタスクを受け付ける。拡張プログラム操作一括管理部３１３は、タスクの登録を受け付けると、このステップにて、タスクをキューに積む。キューに積んだ後は、Ｓ４０３へ遷移する。
【００５２】
Ｓ４０３において、拡張プログラム操作一括管理部３１３は、前記Ｓ４０２でキューに積んだタスクがキューの先頭にあるかどうかを確認する。先頭でないと判定した場合（Ｓ４０３でＮｏの場合）、拡張プログラム操作一括管理部３１３は、該タスクがキューの先頭になるまで待機する（該待機中、該キューの先頭のタスクの実行許可を該タスクの登録元に通知する等の制御を行う）。一方、先頭にあると判定した場合（Ｓ４０３でＹｅｓの場合）、拡張プログラム操作一括管理部３１３は、Ｓ４０４へ処理を遷移させる。
【００５３】
Ｓ４０４において、拡張プログラム操作一括管理部３１３は、設定値配信部３０９にタスクの実行許可を通知する。このステップにおいて、拡張プログラム操作一括管理部３１３は、前記Ｓ４０１で設定値配信部３０９が登録したリスナを介して、設定値配信部３０９にタスクの実行許可を通知する。その後、Ｓ４０５に遷移する。
【００５４】
Ｓ４０５において、設定値配信部３０９は、タスクを実行する。設定値配信部３０９は、ここで配信のために、拡張プログラム３０３を停止・開始したり、設定値のファイルをコピーしたりする。ここで、図６を用いて、設定値の配信処理の流れについて説明する。
【００５５】
図６は、設定値の配信を行う処理の流れを例示するフローチャートである。本フローチャートの処理は、画像形成装置１０１のＣＰＵ２０３がＲＯＭ又はＨＤＤ２０４等に格納されたプログラムを実行することにより実現されるものである。ここでは、拡張型設定値配信部３１２が配信を行う場合について説明するが、設定値配信部３０９が配信を行う場合も基本的に同じである。本フローチャートの処理は、拡張型設定値配信部３１２が、設定値の配信対象の拡張プログラムが自分自身であるか否かを判定するステップ（Ｓ９０１）から開始し、配信対象の拡張プログラムを開始するステップ（Ｓ９０４）で完了する。
【００５６】
Ｓ９０１において、拡張型設定値配信部３１２は、設定値の配信対象の拡張プログラムが自分自身であるか否かを判定する。通常、設定値を配信する際は、誤作動を防ぐために、対象の拡張プログラムを停止する。ただし、配信の対象が自分自身である場合、自分自身を停止してしまうと、以降の処理が行えない。したがって、拡張型設定値配信部３１２は、設定値の配信対象が自分自身か否かを判定し、自分自身の場合は停止処理を行わないように制御する。なお、拡張型設定値配信部３１２は、このような状況を想定して、停止を行わなくとも動的に設定値の反映を行えるように実装されている。
【００５７】
上記Ｓ９０１において、配信の対象が自分自身でないと判定した場合（Ｓ９０１でＮｏの場合）、拡張型設定値配信部３１２は、Ｓ９０２へ処理を進める。
Ｓ９０２において、拡張型設定値配信部３１２が、配信対象の拡張プログラムを停止する。該停止後、後述のＳ９０３にて、設定値の配信を行う。
一方、上記Ｓ９０１において、配信の対象が自分自身であると判定した場合（Ｓ９０１でＹｅｓの場合）、拡張型設定値配信部３１２は、そのままＳ９０３の設定値の配信へ処理を進める。
【００５８】
Ｓ９０３において、拡張型設定値配信部３１２は、設定値の配信を行う。このステップにおいて、拡張型設定値配信部３１２は、設定値保持部３１０や固有設定値保持部３０６に保持された設定値等を配信する。配信が完了すると、後述のＳ９０４で、拡張プログラムを開始する。
【００５９】
Ｓ９０４において、拡張型設定値配信部３１２は、前記Ｓ９０２で拡張プログラムを停止していた場合には、該拡張プログラムを再度開始する。この処理をもって、配信処理の全プロセスを完了する。
以上のように、配信処理では、拡張プログラムの停止と開始（再開）が行われる。なお、自分自身を停止すると配信できなくなるため、配信処理では、対象が自分自身であるか否かの判定も行っている。
【００６０】
ここで再び図５の説明に戻る。
Ｓ４０６において、拡張型設定値配信部３１２は、設定値の配信に伴って、拡張プログラム３０３の停止・開始処理を行う必要がある場合には、拡張プログラム操作一括管理部３１３に対してタスクを登録する。拡張型設定値配信部３１２は、配信を行う際、設定値配信部３０９と同様にまず拡張プログラム操作一括管理部３１３にタスクを登録する。なお、Ｓ４０６は、Ｓ４０１〜Ｓ４０５とは非同期に行われるため、どのタイミングで行われても構わない。例えば、Ｓ４０６の処理は、拡張型設定値配信部３１２が、操作部２１３、ＰＣ１０２、又は外部装置１０５から配信指示を受信したタイミング、又は、予め設定された配信タイミング等に実行される。ここでは、フローチャートの便宜上、連続する処理として記載しているが、この時点では、まだＳ４０５で実施している設定値配信部３０９の配信処理が継続されていることを想定している。
【００６１】
Ｓ４０７において、拡張プログラム操作一括管理部３１３は、拡張型設定値配信部３１２からのタスク登録を受け付ける。このステップでは、前記Ｓ４０２と同様に、拡張プログラム操作一括管理部３１３は、タスクの登録を受け付けると、タスクをキューに積む。ここでは、既に設定値配信部３０９のタスクが実行中であるため、拡張プログラム操作一括管理部３１３は、該タスクをキューに積んだ後、待機する。
【００６２】
Ｓ４０８において、設定値配信部３０９は、拡張プログラム操作一括管理部３１３にタスクの完了を通知する。設定値配信部３０９は、前記Ｓ４０７で設定値配信部３０９が行っていた配信処理が終了次第、本ステップにより、タスクの完了を通知する。
【００６３】
Ｓ４０９において、拡張プログラム操作一括管理部３１３は、設定値配信部３０９からのタスクの完了通知を受け取る。拡張プログラム操作一括管理部３１３は、タスクの完了通知を受け取ると、次のＳ４１０により、次のタスクの実行に移る。
【００６４】
Ｓ４１０において、拡張プログラム操作一括管理部３１３は、拡張型設定値配信部３１２にタスクの実行許可を通知する。本Ｓ４１０、Ｓ４１１、Ｓ４１２は、それぞれ前述のＳ４０４、Ｓ４０５、Ｓ４０８と同様であるため説明を省略する。
【００６５】
Ｓ４１３において、拡張プログラム操作一括管理部３１３は、拡張型設定値配信部３１２からタスクの完了通知を受け取る。拡張型設定値配信部３１２の処理が終了すると、キューは空になるため、すべての処理が終了する。なお、キューに他のタスクが存在する場合には、拡張プログラム操作一括管理部３１３は、該タスクに関する処理を行う。
【００６６】
以上により、設定値配信部３０９や拡張型設定値配信部３１２の処理が互いに競合するタイミングで行われた場合でも、拡張プログラム操作一括管理部３１３がキューを用いて、これらの処理を排他制御することができる。これにより、設定値配信部３０９の配信処理と拡張型設定値配信部３１２の配信処理が重なるようなタイミングで指示されたとしても不具合が生じるのを防ぐことができる。
よって、拡張型設定値配信部３１２のような設定値の配信を行うアプリケーションが後から追加されても、設定値配信部３０９のような組込の配信機能とまとめて一括で管理し、処理を排他することが可能である。また、後入れのアプリケーションが拡張され、配信対象の変更に伴って排他対象が変わっても、実装を変えることなく柔軟に対応することができる。
【実施例２】
【００６７】
実施例２では、設定値一括配信部３１４により、画像形成装置１０１の全設定値が一括で配信される場合の処理について詳細に説明する。一括配信の場合は、設定値配信部３０９と拡張型設定値配信部３１２が協調動作することが求められる。そのため、実施例１の個別配信のように、単に、設定値配信部３０９の処理と拡張型設定値配信部３１２の処理を排他するだけでは上手く動作せず、別の手段が必要になる。本実施例では、その構成について詳細に説明する。なお、本実施例のシステム構成、ハードウェア構成、及びソフトウェア構成は、実施例１と同様であるため省略する。
【００６８】
図７は、実施例２において、設定値一括配信部３１４により、画像形成装置１０１の全設定値が一括で配信される場合の処理の流れを例示するフローチャートである。本フローチャートの処理は、画像形成装置１０１のＣＰＵ２０３がＲＯＭ又はＨＤＤ２０４等に格納されたプログラムを実行することにより実現されるものである。本フローチャートの処理は、設定値一括配信部３１４が設定値配信部３０９に一括配信の事前処理の指示を行うステップ（Ｓ５０１）から開始し、拡張型設定値配信部３１２が設定値一括配信部３１４からの事後処理の指示を受け付けるステップ（Ｓ５２２）で終了する。
【００６９】
Ｓ５０１において、設定値一括配信部３１４は、設定値配信部３０９に一括配信の事前処理の指示を行う。このステップにて、設定値一括配信部３１４は、一括配信の処理を行う前に、まず関係する機能に対して、処理を開始するための事前処理を指示する。各機能は、設定値一括配信部３１４からの事前処理の指示を受け取ると、一括配信を開始するために、関連機能との排他を行う等、必要な事前処理を行った上で、設定値一括配信部３１４に対して、事前処理の成功／失敗を返答することになる。
なお、Ｓ５０１の処理は、設定値一括配信部３１４が、操作部２１３、ＰＣ１０２、又は外部装置１０５から一括配信指示を受信したタイミング、又は、予め設定された一括配信タイミング等に実行される。
【００７０】
Ｓ５０２において、設定値配信部３０９は、拡張プログラム操作一括管理部３１３にタスクを登録する。前記Ｓ５０１で設定値一括配信部３１４から事前処理の指示が出ると、設定値配信部３０９は、適切な排他を行うために、本ステップにて、拡張プログラム操作一括管理部３１３にタスクを登録する。
【００７１】
Ｓ５０３において、拡張プログラム操作一括管理部３１３は、設定値配信部３０９からのタスク登録を受け付け、該タスクをキューに積む。
Ｓ５０４において、拡張プログラム操作一括管理部３１３は、前記Ｓ５０３で登録されたタスクがキューの先頭にあるかどうかを判定する。先頭でないと判定した場合（Ｓ５０４でＮｏの場合）、拡張プログラム操作一括管理部３１３は、該タスクがキューの先頭になるまで待機する（該待機中、該キューの先頭のタスクの実行許可を該タスクの登録元に通知する等の制御を行う）。一方、先頭にあると判定した場合（Ｓ５０４でＹｅｓの場合）、拡張プログラム操作一括管理部３１３は、Ｓ５０５へ処理を遷移させる。
Ｓ５０５は、拡張プログラム操作一括管理部３１３が、設定値配信部３０９にタスクの実行許可を通知する。
【００７２】
Ｓ５０６において、設定値配信部３０９は、拡張プログラム操作一括管理部３１３からのタスク実行許可通知を受信できたか否かを判定する。
上述したＳ５０４の判定で、設定値配信部３０９のタスクがキューの先頭でない場合は、所定時間経過しても、設定値配信部３０９に対してタスクの実行許可通知が送信されない場合がある。この場合、設定値配信部３０９は、拡張プログラム操作一括管理部３１３からのタスク実行許可通知を受信できなかったと判定する（Ｓ５０６でＮｏと判定する）。その場合、すぐには一括配信処理に移れないため、設定値配信部３０９は、Ｓ５０８へ遷移し、設定値一括配信部３１４に対して、事前処理の失敗を通知する。
【００７３】
Ｓ５０８において、設定値配信部３０９は、設定値一括配信部３１４に対して、配信の事前処理の失敗を通知する。設定値配信部３０９は、前述のＳ５０６にて、拡張プログラム操作一括管理部３１３からのタスクの実行許可通知を受信できない場合には、事前処理に失敗したとして、本ステップにて、設定値一括配信部３１４に対して失敗を通知する。
【００７４】
Ｓ５１０において、設定値一括配信部３１４は、設定値配信部３０９からの事前処理の失敗通知を受け取ると、一括配信処理に移行することを断念し、配信の事後処理に移行するため、Ｓ５１８へ遷移する。Ｓ５１８については後述する。
【００７５】
一方、上記Ｓ５０６において、タスクの実行許可通知を受信できたと判定した場合（Ｓ５０６でＹｅｓの場合）、設定値配信部３０９は、Ｓ５０７へ処理を進める。
Ｓ５０７において、設定値配信部３０９は、設定値一括配信部３１４に対して、配信の事前処理の成功を通知する。即ち、設定値配信部３０９は、前述のＳ５０６にて、拡張プログラム操作一括管理部３１３からのタスクの実行許可通知を受信できている場合には、事前処理に成功したとして、本ステップにて、設定値一括配信部３１４に対して成功を通知する。
【００７６】
Ｓ５０９において、設定値一括配信部３１４は、設定値配信部３０９からの事前処理の成功通知を受け取る。設定値一括配信部３１４は、上記設定値配信部３０９からの事前処理の成功通知を受けとった後、後述のＳ５１１にて、今度は、拡張型設定値配信部３１２に対して、配信の事前処理の指示を行う。
【００７７】
Ｓ５１１において、設定値一括配信部３１４は、拡張型設定値配信部３１２に対して、配信の事前処理を指示する。内容は、前記Ｓ５０１と同様である。
Ｓ５１２において、拡張型設定値配信部３１２は、設定値一括配信部３１４に対して事前処理の成功を通知する。拡張型設定値配信部３１２は、設定値配信部３０９とは違い、特に配信の事前処理を行わない。これは、拡張型設定値配信部３１２が設定値配信部３０９と同様に拡張プログラム操作一括管理部３１３にタスクを登録すると、拡張型設定値配信部３１２と設定値配信部３０９の処理が拡張プログラム操作一括管理部３１３により排他制御されてしまい、設定値一括配信部３１４による一括配信制御ができないからである。したがって、拡張型設定値配信部３１２は、設定値一括配信部３１４からの事前処理の指示に対して、特に何もせずに、事前処理の成功を通知する（協調動作）。なお、設定値配信部３０９がＳ５０２でタスクを登録するのは、当該「一括配信」と、他の「個別配信」を拡張プログラム操作一括管理部３１３により排他制御するためである。なお、設定値一括配信部３１４は、一括配信指示を行う場合、一括配信の対象となる機能に対して順次実行を指示する。設定値一括配信部３１４は、一括配信指示を行う場合、１つの機能の配信処理が終了してから次の機能に配信指示を行う。このように、設定値一括配信部３１４による１の一括配信処理内では拡張型設定値配信部３１２と設定値配信部３０９の処理が排他され、不具合がないように制御されている。
【００７８】
Ｓ５１３において、設定値一括配信部３１４は、拡張型設定値配信部３１２からの事前処理成功通知を受け付けると、後述のＳ５１４以降で、実際の配信処理の指示に移る。
【００７９】
Ｓ５１４において、設定値一括配信部３１４は、設定値配信部３０９に対して、配信処理の実施を指示する。これを受けて、設定値配信部３０９は、後述のＳ５１５以降で実際の配信処理を行う。
Ｓ５１５において、設定値配信部３０９が、配信処理を実施する。この処理は、図５のＳ４０５と同様であるため、説明は省略する。
【００８０】
Ｓ５１６において、設定値一括配信部３１４は、拡張型設定値配信部３１２に対して、配信処理の実施を指示する。本ステップでは、設定値一括配信部３１４は、前記Ｓ５１５で設定値配信部３０９の配信処理が終了した後、拡張型設定値配信部３１２に対しても同様に配信の実施を指示する。設定値一括配信部３１４は、一括配信指示を行う際、１つの機能の配信処理が終了してから次の機能に一括配信指示を行う。
【００８１】
Ｓ５１７において、拡張型設定値配信部３１２は、設定値一括配信部３１４からの処理実施指示をうけて、配信処理を行う。拡張型設定値配信部３１２は、拡張プログラム操作一括管理部３１３を利用していないため、設定値一括配信部３１４からの処理実施指示を受けると、そのまま配信処理を実施する。配信が終了すると、後述のＳ５１８以降で、設定値一括配信部３１４は、一括配信の事後処理に移行する。
【００８２】
Ｓ５１８において、設定値一括配信部３１４は、設定値配信部３０９に対して、配信の事後処理を指示する。設定値一括配信部３１４は、この事後処理の指示をもって、各機能が一括配信のために行っていた排他等の制御を解除することを期待している。
【００８３】
Ｓ５１９において、設定値配信部３０９は、拡張プログラム操作一括管理部３１３に対してタスクの完了を通知する。設定値配信部３０９は、事後処理の指示を受けると、拡張プログラム操作一括管理部３１３に対して、タスクの完了を通知する。通知内容は、前述のＳ４０８と同様である。
【００８４】
Ｓ５２０において、拡張プログラム操作一括管理部３１３は、設定値配信部３０９からのタスクの完了通知を受け付ける。拡張プログラム操作一括管理部３１３は、設定値配信部３０９からのタスクの完了通知を受け付けると、そのタスクを完了し、キューに積まれた次のタスクに実行権を移す。これをもって、設定値配信部３０９の事後処理が完了し、後述のＳ５２１で、設定値一括配信部３１４は、次の拡張型設定値配信部３１２に対して、同様の事後処理の指示を出す。
【００８５】
Ｓ５２１において、設定値一括配信部３１４は、拡張型設定値配信部３１２に対して、配信の事後処理を指示する。
Ｓ５２２において、拡張型設定値配信部３１２は、設定値一括配信部３１４からの事後処理の指示を受け付ける。拡張型設定値配信部３１２は、拡張プログラム操作一括管理部３１３を利用していないため、特に必要な処理は無く、すぐに完了を通知する。これを受けて、設定値一括配信部３１４は、配信の事後処理を完了し、一連の一括配信処理が完結する。
【００８６】
以上により、設定値一括配信部３１４による一括配信の場合には、設定値配信部３０９のみが拡張プログラム操作一括管理部３１３を利用するように、設定値配信部３０９と拡張型設定値配信部３１２が協調動作することにより、一括配信を実施することができる。すなわち、後入れで設定値の配信を行う機能が追加された場合でも、元々組み込まれている設定値の配信機能との競合を防ぐとともに、これらの機能による設定値の一括配信も可能にすることができる。
【実施例３】
【００８７】
実施例３は、個別配信と一括配信のどちらの場合でも、拡張プログラム操作一括管理部３１３を利用できるように拡張プログラム操作一括管理部３１３を拡張した場合の実施例である。上述した実施例２では、一括配信時に、設定値配信部３０９のみが拡張プログラム操作一括管理部３１３を利用することで協調動作を可能としている。しかし、設定値配信部３０９や拡張型設定値配信部３１２が、一括配信と個別配信を区別して、拡張プログラム操作一括管理部３１３を使ったり使わなかったりと動作を切り替えるのは煩雑である。したがって、実施例３では、設定値配信部３０９や拡張型設定値配信部３１２が個別配信か一括配信かに関わらず、常に拡張プログラム操作一括管理部３１３を利用するだけで排他と協調動作をうまく使い分けることを可能とする。なお、本実施例のシステム構成、ハードウェア構成、及びソフトウェア構成は、実施例１と同様であるため省略する。
【００８８】
図８は、設定値配信部３０９や拡張型設定値配信部３１２が拡張プログラム操作一括管理部３１３を利用する処理の流れを例示するフローチャートである。本フローチャートの処理は、画像形成装置１０１のＣＰＵ２０３がＲＯＭ又はＨＤＤ２０４等に格納されたプログラムを実行することにより実現されるものである。
なお、本実施例では、設定値一括配信部３１４からの呼び出し方については、実施例２と同様であるため説明を省略し、拡張プログラム操作一括管理部３１３の使い方のみを説明する。
【００８９】
Ｓ６０１において、設定値配信部３０９は、拡張プログラム操作一括管理部３１３にタスクを登録する。設定値配信部３０９は、タスクを登録する際に、「処理内容」と「排他対象外」の２つの項目を指定する。
「処理内容」は、タスクの内容を記載する。例えば、「個別配信」、「一括配信」の２つが考えられるが、他の処理内容を記載することもできる。
「排他対象外」は、排他する必要がないタスクの処理内容を記載する。例えば、「一括配信」と記載すると、前述の「処理内容」が「一括配信」であるタスクと排他をする必要がない、ということを意味する。この場合、拡張プログラム操作一括管理部３１３は、後述するＳ６０６にてタスク同士をマージすることで、排他不要なタスク同士を一括で扱うことができる。
【００９０】
即ち、「処理内容」が「一括配信」の場合は、設定値配信部３０９は、「排他対象外」を「一括配信」と指定した上でタスクを登録するものとする。一方、「処理内容」が「個別配信」の場合は、設定値配信部３０９は、「個別配信」、「一括配信」のいずれも排他する必要があるため、「排他対象外」は「なし」と指定した上でタスクを登録するものとする。なお、ここでは、設定値配信部３０９は、「処理内容」、「排他対象外」共に「一括配信」と指定するものとして以下を説明する。
【００９１】
なお、「一括配信」の場合、上記Ｓ６０１は、設定値一括配信部３１４から「一括配信の事前処理の指示」を受けて実行され、一方、「個別配信」の場合、上記Ｓ６０１は、「個別配信の指示」を受けて実行される。
【００９２】
Ｓ６０２において、拡張プログラム操作一括管理部３１３は、設定値配信部３０９からのタスク登録を受け付ける。なお、この時点では、他にタスクが積まれていないと仮定し、マージの処理を行わない。
【００９３】
Ｓ６０３において、拡張型設定値配信部３１２は、拡張プログラム操作一括管理部３１３にタスクを登録する。拡張型設定値配信部３１２も「処理内容」、「排他対象外」共に「一括配信」と指定した上でタスクを登録するものとして説明する。
【００９４】
なお、「一括配信」の場合、上記Ｓ６０３は、設定値一括配信部３１４から「一括配信の事前処理の指示」を受けて実行され、一方、「個別配信」の場合、上記Ｓ６０３は、「個別配信の指示」を受けて実行される。上述の例では、設定値一括配信部３１４から「一括配信の事前処理の指示」を受けて実行される。
【００９５】
Ｓ６０４において、拡張プログラム操作一括管理部３１３は、拡張型設定値配信部３１２からのタスク登録を受け付ける。ここでは、既に設定値配信部３０９のタスク（「処理内容」、「排他対象外」共に「一括配信」）が登録されているため、後述するＳ６０５でタスクのマージの判定を行うことになる。
【００９６】
Ｓ６０５において、拡張プログラム操作一括管理部３１３は、排他対象外のタスクが登録されているか否かを判定する。拡張プログラム操作一括管理部３１３は、タスクがキューに積まれるたびに、既存のタスクとの比較を行い、マージできるタスクがあればマージを行う。前述のように、排他対象外であるタスク同士は同時に処理を行っても問題にならないため、ここで、タスクの内容を確認し、不要な排他を避ける。
【００９７】
上記Ｓ６０５において、排他対象外のタスクが登録されていないと判定した場合（Ｓ６０５でＮｏの場合）、拡張プログラム操作一括管理部３１３は、タスクのマージが不可能であると判断し、本フローチャートの処理を終了する。
一方、排他対象外のタスクが登録されていると判定した場合（Ｓ６０５でＹｅｓの場合）、拡張プログラム操作一括管理部３１３は、タスクのマージが可能であると判断し、Ｓ６０６へ処理を遷移する。
【００９８】
Ｓ６０６において、拡張プログラム操作一括管理部３１３は、排他対象外のタスク同士をマージする。上述の例では、設定値配信部３０９と拡張型設定値配信部３１２が登録したタスクは互いにマージが可能であるため、ここでマージを行う。その上で、タスクの順番が来たら、タスクの実行許可を通知する。
【００９９】
Ｓ６０７において、拡張プログラム操作一括管理部３１３は、設定値配信部３０９と拡張型設定値配信部３１２に対して、タスクの実行許可通知を送信する。前記Ｓ６０６でタスクをマージした場合であっても、タスクの実行許可通知自体は、元のタスクを登録した全ての機能に対して行われる。上述したように、マージする場合は「処理内容」が「一括配信」なので、設定値配信部３０９と拡張型設定値配信部３１２は、拡張プログラム操作一括管理部３１３から「処理開始許可」通知を受け取った後、設定値一括配信部３１４に対して、「事前処理の成功」を通知し、さらに、設定値一括配信部３１４からの「一括配信の実施の指示」（例えばＳ５１４やＳ５１６と同様のもの）を受け取ってから配信を実行する。
【０１００】
以上に示したように、本実施例によれば、設定値配信部３０９や拡張型設定値配信部３１２は個別配信か一括配信かに関わらず、常に拡張プログラム操作一括管理部３１３を利用するだけで排他と協調動作をうまく使い分けることが可能である。即ち、後入れで設定値の配信を行う機能が追加された場合でも、元々組み込まれている設定値の配信機能との競合を防ぐとともに、これらの機能による設定値の一括配信も可能にする。
【実施例４】
【０１０１】
実施例４は、上述の実施例３のようにタスク同士をマージした際に、タスクの実行許可の通知についてもまとめて扱うことで無駄な処理の繰り返しを防ぐ場合の実施例である。設定値配信部３０９や拡張型設定値配信部３１２は、タスクの実行許可通知を受け取ると、拡張プログラム３０３の停止を行い、その後で、設定値の配信、及び、拡張プログラム３０３の開始を行う。したがって、設定値配信部３０９と拡張型設定値配信部３１２が同じ拡張プログラム３０３の設定値を操作する場合は、停止・開始処理を２回繰り返すことになる。これは、パフォーマンス面において問題となり得る。
【０１０２】
そこで、実施例４では、互いに排他の必要性がないタスクの場合は、タスクをマージした後に、拡張プログラム３０３の停止と開始の処理もマージできるように、拡張プログラム操作一括管理部３１３のタスクの実行許可通知の方法を変更する。なお、本実施例のシステム構成、ハードウェア構成、及びソフトウェア構成は、実施例１と同様であるため省略する。
【０１０３】
図９は、拡張プログラム操作一括管理部３１３が、タスクをマージした後に、設定値配信部３０９や拡張型設定値配信部３１２に対して、タスクの実行許可通知を送信する処理の流れを例示するフローチャートである。本フローチャートの処理は、画像形成装置１０１のＣＰＵ２０３がＲＯＭ又はＨＤＤ２０４等に格納されたプログラムを実行することにより実現されるものである。
なお、本フローチャートの処理は、設定値配信部３０９と拡張型設定値配信部３１２が、タスクを登録するステップ（Ｓ７０１）から開始し、拡張プログラム操作一括管理部３１３が、設定値配信部３０９と拡張型設定値配信部３１２に拡張プログラムの開始許可の通知を行うステップ（Ｓ７０６）で終了する。
【０１０４】
Ｓ７０１において、設定値配信部３０９と拡張型設定値配信部３１２は、タスクを登録する。ここでの内容は、図８のＳ６０１〜Ｓ６０４と同様である。
Ｓ７０２において、拡張プログラム操作一括管理部３１３は、排他対象外のタスクが登録されているか否かを判定する。本ステップは、図８のＳ６０５と同様である。
そして、排他対象外のタスクが登録されていないと判定した場合（Ｓ７０２でＮｏの場合）、拡張プログラム操作一括管理部３１３は、タスクのマージが不可能であると判断し、本フローチャートの処理を終了する。
【０１０５】
一方、排他対象外のタスクが登録されていると判定した場合（Ｓ７０２でＹｅｓの場合）、拡張プログラム操作一括管理部３１３は、タスクのマージが可能であると判断し、Ｓ７０３へ処理を遷移する。
Ｓ７０３において、拡張プログラム操作一括管理部３１３は、排他対象外のタスクをマージするステップである。本ステップは、図８のＳ６０６と同様である。
【０１０６】
Ｓ７０４において、拡張プログラム操作一括管理部３１３は、設定値配信部３０９と拡張型設定値配信部３１２に拡張プログラム３０３の停止許可を通知する。実施例３までは、拡張プログラム操作一括管理部３１３からの通知は、単にタスクの実行許可通知だけであった。しかしながら、その方法では、通知を受けたそれぞれの機能が拡張プログラム３０３の停止・開始を行うため、同じ処理を２回繰り返すという無駄が生じる。そこで、タスクのマージのみならず、停止・開始の処理自体もまとめて行う。本ステップでは、拡張プログラム操作一括管理部３１３は、まず、設定値配信部３０９と拡張型設定値配信部３１２に対して、拡張プログラム３０３の停止許可通知を送信する。設定値配信部３０９と拡張型設定値配信部３１２は、停止許可通知を受け取ると、拡張プログラム３０３の停止のみを行う。拡張プログラム３０３の停止処理が終わると、次のＳ７０５で、拡張プログラム操作一括管理部３１３から、配信処理の許可通知が送信される。なお、設定値配信部３０９と拡張型設定値配信部３１２の両方が別々に、同じ拡張プログラム３０３の停止を行ったとしても、特に問題は発生しない。
【０１０７】
Ｓ７０５において、拡張プログラム操作一括管理部３１３は、設定値配信部３０９と拡張型設定値配信部３１２に対して、配信処理の実施許可通知を送信する。設定値配信部３０９や拡張型設定値配信部３１２は、上記配信処理の実施許可通知を受け取ると、それぞれ配信処理を行う。なお、設定値配信部３０９と拡張型設定値配信部３１２は、設定値一括配信部３１４からの「一括配信の実施の指示」を受けた場合には、アプリの停止・再開は行わず、配信処理のみを行う。配信処理の終了後、次のＳ７０６で、拡張プログラム３０３の開始許可通知が送信される。
【０１０８】
Ｓ７０６において、拡張プログラム操作一括管理部３１３は、設定値配信部３０９と拡張型設定値配信部３１２に対して、拡張プログラム３０３の開始処理の許可通知を送信する。設定値配信部３０９と拡張型設定値配信部３１２は、通知を受け取ると、拡張プログラム３０３を再び開始する。なお、設定値配信部３０９と拡張型設定値配信部３１２の両方が別々に、同じ拡張プログラム３０３の開始を行ったとしても、特に問題はない。
【０１０９】
以上により、タスクをマージした際には、拡張プログラム３０３の停止・開始処理もまとめて扱うことで、同じ拡張プログラム３０３の停止・開始が繰り返されることを防ぐことができ、一括配信におけるパフォーマンスを向上させることができる。
【０１１０】
以上示したように、組込機能（例えば、設定値配信部３０９）と、後入れ機能（例えば、拡張型設定値配信部３１２）の処理を一括で管理するための拡張プログラム操作一括管理部３１３を、画像形成装置１０１に設ける。そして、拡張プログラム操作一括管理部３１３で管理されるキューに、各機能がタスクを登録することで、各機能の処理の排他を行う。その結果、後から配信機能が追加されても、組み込みの配信機能と適切に排他することができ、競合を防ぐことができる。また、一括配信を行う場合には、組込の設定値配信機能と後から追加された配信機能が協調動作することにより、一括配信を適切に行うことができる。
【０１１１】
なお、上記各実施例では、本発明の一例として画像形成装置を用いて説明したが、本発明の情報処理装置は画像形成装置に限定されるものではなく、ＰＣ、タブレット端末、スマートフォンや各種家電等の他の情報処理装置であってもよい。また、上記各実施例では、配信処理を行う機能について説明したが、アプリケーションの停止、開始を伴う機能なら配信処理を行う機能に限定されるものではなく、他の機能にも本発明を適用することができる。
【０１１２】
また、上記各実施例では、設定値配信部３０９、拡張型設定値配信部３１２等の各機能が、処理（設定値の配信等）に伴って、拡張プログラム３０３の停止・開始処理を行う必要がある場合について、拡張プログラム操作一括管理部３１３に対してタスクを登録する構成について説明した。しかし、各機能が拡張プログラム操作一括管理部３１３に対してタスクを登録するのは、処理（設定値の配信等）に伴って拡張プログラム３０３の停止・開始処理を行う必要がある場合のみに限定されるものではない。例えば、各機能は、他の機能の処理と競合して誤作動してしまう可能性のある処理を行う場合には、各機能が拡張プログラム操作一括管理部３１３に対してタスクを登録するように構成してもよい。
【０１１３】
以上示したように、本発明によれば、設定値の配信を行う等の他の機能と競合する可能性のある機能が後から追加されても、実装を変えることなく、それらの機能の処理を効率的に排他管理し、競合を防ぐことができる。例えば、後入れで設定値の配信を行う機能が追加された場合でも、元々組み込まれている設定値の配信機能との競合を防ぐとともに、これらの機能による設定値の一括配信も可能にする。
【０１１４】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
【０１１５】
（その他の実施例）
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施例の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１１６】
１０１    画像形成装置
３０３    拡張プログラム
３０９    設定値配信部
３１２    拡張型設定値配信部
３１３    拡張プログラム操作一括管理部
３１４    設定値一括配信部
【図１】
2016218591.tif 000003
【図２】
2016218591.tif 000004
【図３】
2016218591.tif 000005
【図４】
2016218591.tif 000006
【図５】
2016218591.tif 000007
【図６】
2016218591.tif 000008
【図７】
2016218591.tif 000009
【図８】
2016218591.tif 000010
【図９】
2016218591.tif 000011