(57)【要約】【課題】実装された機能について新たなカスタマイズの仕組みを提供することのできる画像形成装置、カスタマイズ制御方法、及びカスタマイズ制御プログラムの提供を目的とする。【解決手段】ジョブの実行要求に伴って、当該ジョブを実行する第一のプログラムに対する割り込み処理が記述された第二のプログラム又は該第二のプログラムの識別情報の入力を受け付けるジョブ受付手段と、メモリ上にロードされた前記第一のプログラムに対して前記第二のプログラムを適用する適用手段と、前記第二のプログラムが適用された前記第一のプログラムに基づいて前記ジョブを実行するジョブ実行手段とを有することにより上記課題を解決する。【選択図】図４
2009238002.tif 000002
【特許請求の範囲】
【請求項１】
ジョブの実行要求に伴って、当該ジョブを実行する第一のプログラムに対する割り込み処理が記述された第二のプログラム又は該第二のプログラムの識別情報の入力を受け付けるジョブ受付手段と、
メモリ上にロードされた前記第一のプログラムに対して前記第二のプログラムを適用する適用手段と、
前記第二のプログラムが適用された前記第一のプログラムに基づいて前記ジョブを実行するジョブ実行手段とを有することを特徴とする画像形成装置。
【請求項２】
前記ジョブの終了に応じ前記第一のプログラムに対する前記第二のプログラムの適用を解除する解除手段を有することを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記適用手段は、前記第一のプログラムに基づいて他のジョブの実行が開始されているときは、当該他のジョブが終了するまで前記第二のプログラムの適用を待機することを特徴とする請求項１又は２記載の画像形成装置。
【請求項４】
前記ジョブ受付手段は、ネットワークを介して接続されるコンピュータより前記第二のプログラム又は該第二のプログラムの識別情報が含まれたジョブデータを受信することを特徴とする請求項１乃至３いずれか一項記載の画像形成装置。
【請求項５】
ネットワークを介して接続されるコンピュータより前記第二のプログラムの一覧情報を受信し、該一覧情報を操作パネルに表示させる一覧表示手段を有し、
前記ジョブ受付手段は、前記一覧情報の中から前記第二のプログラムの選択させることにより前記第二のプログラムの識別情報の入力を受け付けることを特徴とする請求項１乃至３いずれか一項記載の画像形成装置。
【請求項６】
ネットワークを介して接続する画像形成装置にジョブの実行を要求する情報処理装置であって、
前記ジョブに関する設定情報を設定させる画面を表示させる設定画面表示手段と、
前記設定画面を介して入力された前記設定情報と、前記画像形成装置において前記ジョブを実行する第一のプログラムに対して割り込み処理が記述された第二のプログラム又は該第二のプログラムの識別情報とを含むジョブデータを前記画像形成装置に送信するジョブデータ送信手段とを有することを特徴とする情報処理装置。
【請求項７】
画像形成装置が実行する情報処理方法であって、
ジョブの実行要求に伴って、当該ジョブを実行する第一のプログラムに対する割り込み処理が記述された第二のプログラム又は該第二のプログラムの識別情報の入力を受け付けるジョブ受付手順と、
メモリ上にロードされた前記第一のプログラムに対して前記第二のプログラムを適用する適用手順と、
前記第二のプログラムが適用された前記第一のプログラムに基づいて前記ジョブを実行するジョブ実行手順とを有することを特徴とする情報処理方法。
【請求項８】
前記ジョブの終了に応じ前記第一のプログラムに対する前記第二のプログラムの適用を解除する解除手順を有することを特徴とする請求項７記載の情報処理方法。
【請求項９】
前記適用手順は、前記第一のプログラムに基づいて他のジョブの実行が開始されているときは、当該他のジョブが終了するまで前記第二のプログラムの適用を待機することを特徴とする請求項７又は８記載の情報処理方法。
【請求項１０】
前記ジョブ受付手順は、ネットワークを介して接続されるコンピュータより前記第二のプログラム又は該第二のプログラムの識別情報が含まれたジョブデータを受信することを特徴とする請求項７乃至９いずれか一項記載の情報処理方法。
【請求項１１】
ネットワークを介して接続されるコンピュータより前記第二のプログラムの一覧情報を受信し、該一覧情報を操作パネルに表示させる一覧表示手順を有し、
前記ジョブ受付手順は、前記一覧情報の中から前記第二のプログラムの選択させることにより前記第二のプログラムの識別情報の入力を受け付けることを特徴とする請求項７乃至９いずれか一項記載の情報処理方法。
【請求項１２】
ネットワークを介して接続する画像形成装置にジョブの実行を要求する情報処理装置が実行する情報処理方法であって、
前記ジョブに関する設定情報を設定させる画面を表示させる設定画面表示手順と、
前記設定画面を介して入力された前記設定情報と、前記画像形成装置において前記ジョブを実行する第一のプログラムに対して割り込み処理が記述された第二のプログラム又は該第二のプログラムの識別情報とを含むジョブデータを前記画像形成装置に送信するジョブデータ送信手順とを有することを特徴とする情報処理方法。
【請求項１３】
画像形成装置に、
ジョブの実行要求に伴って、当該ジョブを実行する第一のプログラムに対する割り込み処理が記述された第二のプログラム又は該第二のプログラムの識別情報の入力を受け付けるジョブ受付手順と、
メモリ上にロードされた前記第一のプログラムに対して前記第二のプログラムを適用する適用手順と、
前記第二のプログラムが適用された前記第一のプログラムに基づいて前記ジョブを実行するジョブ実行手順とを実行させるための情報処理プログラム
【請求項１４】
前記ジョブの終了に応じ前記第一のプログラムに対する前記第二のプログラムの適用を解除する解除手順を有することを特徴とする請求項１３記載の情報処理プログラム
【請求項１５】
前記適用手順は、前記第一のプログラムに基づいて他のジョブの実行が開始されているときは、当該他のジョブが終了するまで前記第二のプログラムの適用を待機することを特徴とする請求項１３又は１４記載の情報処理プログラム
【請求項１６】
前記ジョブ受付手順は、ネットワークを介して接続されるコンピュータより前記第二のプログラム又は該第二のプログラムの識別情報が含まれたジョブデータを受信することを特徴とする請求項１３乃至１５いずれか一項記載の情報処理プログラム
【請求項１７】
ネットワークを介して接続されるコンピュータより前記第二のプログラムの一覧情報を受信し、該一覧情報を操作パネルに表示させる一覧表示手順を有し、
前記ジョブ受付手順は、前記一覧情報の中から前記第二のプログラムの選択させることにより前記第二のプログラムの識別情報の入力を受け付けることを特徴とする請求項１３乃至１５いずれか一項記載の情報処理プログラム
【請求項１８】
ネットワークを介して接続する画像形成装置にジョブの実行を要求する情報処理装置に、
前記ジョブに関する設定情報を設定させる画面を表示させる設定画面表示手順と、
前記設定画面を介して入力された前記設定情報と、前記画像形成装置において前記ジョブを実行する第一のプログラムに対して割り込み処理が記述された第二のプログラム又は該第二のプログラムの識別情報とを含むジョブデータを前記画像形成装置に送信するジョブデータ送信手順とを実行させるための情報処理プログラム
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、情報処理装置、情報処理方法、及び情報処理プログラムに関する。
【背景技術】
【０００２】
従来、プリンタ、コピー機、ファクシミリ、及び複合機等の画像形成装置はソフトウェアの制御によって各種の機能が実現されている。画像形成装置の中には、ソフトウェアの実装仕様等が公開され、サードベンダ等によってソフトウェア（すなわち、画像形成装置の機能）のカスタマイズが可能とされているものもある。このような画像形成装置では、ユーザの業務等に合わせてユーザ独自の機能を追加することができる。
【特許文献１】特開２００４−１３９５７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来のカスタマイズは、新たなプログラムを追加したり、既存のプログラムを修正したりといったように、画像形成装置内のソフトウェア構成を変更する必要があった。したがって、サービスマン等によって、新たなプログラムのインストール等の作業が必要とされ、それに伴うコストも発生するという問題があった。
【０００４】
また、カスタマイズ結果は、基本的に全てのユーザ又はジョブに対して共通的に適用されるものであった。したがって、カスタマイズ前の機能を引き続き利用したいユーザが存在する場合は、カスタマイズ前後の双方の機能が実現可能なようにプログラムを修正する必要があり、プログラムのソースコードが複雑化し、開発コストが増大すると共にバグが発生する可能性が増加するという問題があった。
【０００５】
本発明は、上記の点に鑑みてなされたものであって、実装された機能について新たなカスタマイズの仕組みを提供することのできる画像形成装置、カスタマイズ制御方法、及びカスタマイズ制御プログラムの提供を目的とする。
【課題を解決するための手段】
【０００６】
そこで上記課題を解決するため、本発明は、ジョブの実行要求に伴って、当該ジョブを実行する第一のプログラムに対する割り込み処理が記述された第二のプログラム又は該第二のプログラムの識別情報の入力を受け付けるジョブ受付手段と、メモリ上にロードされた前記第一のプログラムに対して前記第二のプログラムを適用する適用手段と、前記第二のプログラムが適用された前記第一のプログラムに基づいて前記ジョブを実行するジョブ実行手段とを有することを特徴とする。
【０００７】
このような画像形成装置では、実装された機能について新たなカスタマイズの仕組みを提供することができる。
【発明の効果】
【０００８】
本発明によれば、実装された機能について新たなカスタマイズの仕組みを提供することのできる画像形成装置、カスタマイズ制御方法、及びカスタマイズ制御プログラムを提供することができる。
【発明を実施するための最良の形態】
【０００９】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における画像形成システムの構成例を示す図である。図１の画像形成システム１において、管理サーバ１０、機器２０、及びＰＣ端末３０は、オフィスにおけるＬＡＮ（Local Area Network）又はインターネット等のネットワーク（有線又は無線の別は問わない。）を介して接続されている。
【００１０】
機器２０は、コピー、ファクシミリ、プリンタ、及びスキャナ等の複数の機能を一台の筐体において実現する画像形成装置（複合機）である。
【００１１】
ＰＣ端末３０は、機器２０に対してジョブ（主として印刷ジョブ）を投入するために利用されるコンピュータ（ＰＣ（Personal Computer））である。
【００１２】
管理サーバ１０は、機器２０において利用されるプログラムに対して適用される追加プログラムの管理及び当該追加プログラムの機器２０への転送等を行うコンピュータである。本実施の形態において、追加プログラムとは、適用対象とされるプログラムの任意の箇所において、当該追加プログラムに定義された処理をメモリ上において動的に割り込ませることのできるプログラムをいう。
【００１３】
図２は、追加プログラムの概要を説明するための図である。図２において、５０１は、追加プログラム５０５が適用されるプログラムにおける仮想メモリ上における命令の配列を示す。プログラム５０１は、追加プログラム５０１が提供される前（通常実行時）は、命令１、２、３の順で処理を実行する。５０１ａは、プログラム５０１に追加プログラム５０１が適用された状態を示す。ここでは、命令１と命令２との間に追加プログラム５０５の処理を割り込ませる例が示されている。この場合、命令２がテーブル５０２への分岐命令に置き換えられる。テーブル５０２には、初期化処理、前処理（変数のスタックへの退避等）、追加プログラム５０５の呼び出し処理、後処理（スタックに退避されていた変数等の取り出し等）の後に命令２が実行され、プログラム５０１の命令３に戻るような定義がされている。
【００１４】
すなわち、追加プログラムが適用される場合、適用対象とされたプログラムの実行ステップが予め指定された箇所（追加位置）に到達すると、追加プログラムの処理が実行される。当該追加プログラムの処理が終了すると、適用対象とされたプログラムに処理制御が復帰する。その後、適用対象とされたプログラムは、追加位置より処理を再開する。なお、追加プログラムには、適用対象のプログラムに割り込ませる処理の他、追加位置を識別するための情報が含まれている。
【００１５】
追加プログラムの中では、適用対象とされるプログラムの変数等を参照可能である。したがって、追加プログラムによって、適用対象とされるプログラムの任意の箇所における変数の値等を示すログ情報を出力させるための処理や、新たな機能を実現するための処理を適用対象とされるプログラムに割り込ませることができる。なお、斯かる技術は公知技術であるため、本実施の形態においてこれ以上の詳細な説明は省略する。
【００１６】
本実施の形態では、斯かる追加プログラムを、機器２０においてジョブを実行するアプリケーションを一時的に（ジョブごとに）カスタマイズするための手段として用いる。
【００１７】
引き続き図１を参照しつつ各装置の機能構成について説明する。同図において、管理サーバ１０は、イベント管理部１１、データ管理部１２、コマンド受信部１３、及びデータ送信部１４等を有する。
【００１８】
イベント管理部１１は、外部（機器２０又はＰＣ端末３０）から入力されるイベント（要求やコマンド等）に応じた処理を制御する。データ管理部１２は、管理サーバ１０の記憶媒体を用いて追加プログラムを管理する。すなわち、管理サーバ１０の記録媒体には、機器２０において実行されるジョブの機能を拡張又はカスタマイズするための各種の追加プログラムが保存されている。コマンド受信部１３は、機器２０のイベント制御部２１より追加プログラム制御部２２の制御を要求するコマンドを受信する。データ送信部１４は、コマンド受信部１３によって受信されたコマンドに応じた追加プログラム又は制御命令を機器２０の追加プログラム制御部２２に送信する。なお、本実施の形態において、データ送信部１４のみが。追加プログラム制御部２２を制御又は操作するためのインタフェース及びプロトコルを知っている。
【００１９】
また、機器２０は、イベント制御部２１、追加プログラム制御部２２、フィルタ部２３、アプリ２４、及び操作部２５等を有する。
【００２０】
アプリ２４は、機器２０に対して入力される各種のジョブの実行を制御するアプリケーションプログラムである。同図では、印刷ジョブを制御するプリンタアプリ２４１、コピージョブを制御するコピーアプリ２４２、及びＦＡＸ送信ジョブを制御するＦＡＸアプリ２４３が例示されている
フィルタ部２３は、入力される各種のジョブについてフィルタリングを行い、フィルタリングの結果に応じたタイミングでアプリ２４に対してジョブの実行要求を行う。すなわち、機器２０に対して入力されるジョブはアプリ２４より前にフィルタ部２３に通知される。ここでいうフィルタリングとは、追加プログラムの適用が指定されたジョブとそうでないジョブとの識別又は区別をいう。すなわち、フィルタ部２３は、追加プログラムの適用が指定されたジョブについては、ジョブの実行をアプリ２４に要求する前に、アプリ２４に追加プログラムの適用をイベント制御部２１に要求する。また、フィルタ部２３は、アプリ２４に対する印刷要求に対する応答によってジョブの完了を検知することができる。ジョブの完了の検知に応じ、フィルタ部２３は、追加プログラムの適用の解除をイベント制御部２１に要求する。なお、アプリ２４に対する追加プログラムの適用の要否及び利用する追加プログラムは、入力されるジョブの実行要求において指定される。
【００２１】
イベント制御部２１は、フィルタ部２３からの要求（追加プログラムの適用又は適用解除）に応じて、当該要求に応じた処理を追加プログラム制御部２２に実行させるためのコマンドを管理サーバ１０のコマンド受信部１３に送信する。上記したように、追加プログラム制御部２２を制御又は操作するためのインタフェース及びプロトコルを知っているのは、管理サーバ１０のデータ送信部１４だからである。
【００２２】
追加プログラム制御部２２は、管理サーバ１０のデータ送信部１４からのコマンドに応じてメモリ上にロードされたアプリ２４に対する追加プログラムを適用や、追加プログラムの適用の解除等を実行する。なお、追加プログラム制御部２２がデータ送信部１４によってのみ制御可能であるという事情は、本実施の形態において、追加プログラム制御部２２は、遠隔操作（ネットワークを介した操作）を前提としたプログラムモジュールであるという前提に基づく。
【００２３】
操作部２５は、機器２０のオペレーションパネルの入出力制御を行う。
【００２４】
また、ＰＣ端末３０は、印刷設定部３１を有する。印刷制御部３１は、一般的にプリンタドライバと呼ばれるプログラムによって実現される。すなわち、印刷制御部３１は、ＰＣ端末３０上の各種のアプリケーションによって生成又は編集されるデータ（文書データ等）の印刷設定を入力させるための画面（印刷設定画面）を表示させたり、印刷設定画面における設定内容に基づいて、機器２０のプリンタアプリ２４１が解釈可能な印刷データを生成したりする。なお、本実施の形態において印刷データは、機器２０に対して印刷ジョブの実行を要求するジョブデータに相当する。
【００２５】
図３は、本発明の実施の形態における機器のハードウェア構成の一例を示す図である。同図において、機器２０は、コントローラ６０１、オペレーションパネル６０２、ファクシミリコントロールユニット（ＦＣＵ）６０３、撮像部６０４、及び印刷部６０５等より構成される。
【００２６】
コントローラ６０１は、ＣＰＵ６１１、ＡＳＩＣ６１２、ＮＢ６２１、ＳＢ６２２、ＭＥＭ−Ｐ６３１、ＭＥＭ−Ｃ６３２、ＨＤＤ（ハードディスクドライブ）６３３、メモリカードスロット６３４、ＮＩＣ（ネットワークインタフェースコントローラ）６４１、ＵＳＢデバイス６４２、ＩＥＥＥ１３９４デバイス６４３、セントロニクスデバイス６４４により構成される。
【００２７】
ＣＰＵ６１１は、種々の情報処理用のＩＣである。ＡＳＩＣ６１２は、種々の画像処理用のＩＣである。ＮＢ６２１は、コントローラ６０１のノースブリッジである。ＳＢ６２２は、コントローラ６０１のサウスブリッジである。ＭＥＭ−Ｐ６３１は、機器２０のシステムメモリである。ＭＥＭ−Ｃ６３２は、機器２０のローカルメモリである。ＨＤＤ６３３は、機器２０のストレージである。メモリカードスロット６３４は、メモリカード６３５をセットするためのスロットである。ＮＩＣ６４１は、ＭＡＣアドレスによるネットワーク通信用のコントローラである。ＵＳＢデバイス６４２は、ＵＳＢ規格の接続端子を提供するためのデバイスである。ＩＥＥＥ１３９４デバイス６４３は、ＩＥＥＥ１３９４規格の接続端子を提供するためのデバイスである。セントロニクスデバイス６４４は、セントロニクス仕様の接続端子を提供するためのデバイスである。オペレーションパネル６０２は、オペレータが機器２０に入力を行うためのハードウェア（操作部）であると共に、オペレータが機器２０から出力を得るためのハードウェア（表示部）である。
【００２８】
以下、画像形成システム１の処理手順について説明する。図４は、第一の実施の形態における印刷ジョブの実行時の処理手順を説明するためのシーケンス図である。
【００２９】
ＰＣ端末３０において、ユーザが文書データを印刷すべく印刷設定画面の表示要求を印刷設定部３１に対して入力すると（Ｓ１０１）、印刷設定部３１は、印刷設定画面をＰＣ端末３０の表示装置に表示させる（Ｓ１０２）。
【００３０】
図５は、印刷設定画面の表示例を示す図である。同図において、印刷設定画面３１０は、各種の印刷設定（印刷条件）を入力させるための画面である。機能拡張ボタン３１１を除いて他の設定項目は基本的に一般的なものである。
【００３１】
機能拡張ボタン３１１が押下（クリック）されると、印刷設定部３１は、機能拡張を実現する追加プログラムの一覧情報の取得要求を管理サーバ１０に送信する（Ｓ１０４）。当該取得要求には、機器１０の機種の識別情報やプリンタアプリ２４１の名前（アプリ名）等、適用（利用）可能な追加プログラムを限定する情報が含まれていてもよい。なお、機器１０の機種の識別情報やプリンタアプリ２４１のアプリ名等は、印刷設定部３１１が印刷設定画面５１０を表示する際に、機器１０に問い合わせることにより取得しておけばよい。
【００３２】
管理サーバ１０のイベント管理部１１は、追加プログラムの取得要求を受信すると、管理されている追加プログラムの一覧情報の返信をデータ管理部１２に要求する（Ｓ１０５）。データ管理部１２は、管理されている追加プログラムの一覧情報（例えば、追加プログラムの識別情報（以下、「追加プログラム番号」という。）及び機能の内容を示す文字列等の一覧）を生成し、当該一覧情報を印刷設定部３１に返信する（Ｓ１０６）。なお、追加プログラムの取得要求において適用可能な追加プログラムを限定する情報が含まれている場合、データ管理部１２は、斯かる限定に当てはまる追加プログラムの一覧情報を生成する。斯かる機能を実現するためには、データ管理部１２は、追加プログラムごとに適用可能な対象（機器１０の機種、プリンタアプリ２４１のアプリ名等）を識別可能な情報を記憶媒体上に管理しておけばよい。
【００３３】
印刷設定部３１は、追加プログラムの一覧情報を受信すると、当該一覧情報を表示させる（Ｓ１０７）。
【００３４】
図６は、追加プログラム一覧画面の表示例を示す図である。同図において、追加プログラム一覧画面３２０には、各追加プログラムの機能を示す文字列の一覧が表示されている。同図では、「Ｓｅｎｄ  ｅ−ｍａｉｌ  ｔｈｅｎ  ｆｉｎｉｓｈ  ｐｒｉｎｔｉｎｇ（電子メール送信後に印刷実行）」、「Ａｄｄ  ｓｐｅｃｉａｌ  ｓｉｇｎａｔｕｒｅ  ｔｏ  ｅａｃｈ  ｐａｐｅｒ（各ページに署名を付加）」、「Ｆｉｔ  ｔｏ  ｅｎｔｒｉｅｄ  ｆｏｒｍ（登録された形式に合わせる）」、及び「Ｓｔａｒｔ  ｐｒｉｎｔ  ａｔ  ｓｐｅｃｉｆｉｅｄ  ｔｉｍｅ（指定時間に印刷開始）」等が例示されている。
【００３５】
ユーザによって当該一覧の中から所望の追加プログラムが利用対象として選択され（Ｓ１０８）、追加プログラム一覧画面３２０のＯＫボタン３２１及び印刷設定画面３１０のＯＫボタン３１２が押下されることにより印刷開始指示が入力されると（Ｓ１０９）、印刷設定部３１は、追加プログラム利用予約データを管理サーバ１０に送信する（Ｓ１１０）。
【００３６】
図７は、追加プログラム利用予約データの構成例を示す図である。同図において、追加プログラム利用予約データは、ユーザ情報、ジョブ情報、及び追加プログラム番号等を有する。ユーザ情報は、ＰＣ端末３０に対するログインユーザの識別情報（例えば、ユーザ名）である。印刷設定部３１は、ユーザ情報をＰＣ端末３０のＯＳ等に問い合わせることにより入手する。ジョブ情報は、ジョブ番号及びターゲットアプリ名を含む。ジョブ番号は当該印刷ジョブを識別するための番号であり、印刷設定部３１が採番する。ターゲットアプリ名は、追加プログラムの適用対象となるアプリケーションのアプリ名、すなわち、プリンタアプリ２４１のアプリ名である。追加プログラム番号は、利用対象とされた追加プログラムの追加プログラム番号である。すなわち、追加プログラム利用予約データは、当該印刷ジョブに係るユーザ、ジョブ番号、及び追加プログラムの対応付けを示すデータである。管理サーバ１０のイベント管理部１１は、当該追加プログラム利用予約データを受信し、記憶媒体に記録しておく。
【００３７】
続いて、印刷設定部３１は、印刷設定等に基づいて印刷データを生成する（Ｓ１１１）。この際、印刷設定部３１は、利用対象とされた追加プログラムに関する情報を印刷データに含める。
【００３８】
図８は、印刷データの構成例を示す図である。同図において、印刷データは、ヘッダ情報及び描画情報を含む。描画情報は、印刷対象とされた文書の描画情報である。ヘッダ情報は、印刷言語情報、ユーザ情報、及び追加プログラム情報を含む。印刷言語情報は、いわゆるプリンタ言語（ＰＤＬ（Page Description Language））による各種の定義（例えば、印刷設定の内容）である。なお、印刷言語情報にはジョブ番号が含まれる。ユーザ情報は、上記におけるユーザ情報と同義である。追加プログラム情報は、追加プログラムの利用が指定された場合に付加される情報であり、ターゲットアプリ名及び追加プログラム番号を含む。ターゲットアプリ名及び追加プログラム番号の意味は上記した通りである。
【００３９】
続いて、印刷設定部３１は、生成された印刷データを機器１０に送信する（Ｓ１１２）。機器１０において印刷データが受信されると、フィルタ部２３は、当該印刷データを解析する（Ｓ１１３）。当該解析では、追加プログラム情報の有無、及び追加プログラムが有る場合はその内容が解析される。追加プログラム情報が無い場合、フィルタ部２３は、そのまま印刷データをプリンタアプリ２４１に出力する。プリンタアプリ２４１は、当該印刷データに基づいて通常の（追加プログラムによる機能拡張のない）印刷ジョブを実行する。
【００４０】
一方、印刷データに追加プログラム情報が含まれている場合、フィルタ部２３は、当該追加プログラム情報と、印刷データに含まれているユーザ情報及びジョブ番号とを伴って、イベント制御部２１に対して追加プログラムの適用を要求する（Ｓ１１４）。続いて、イベント制御部２１は、追加プログラム制御部２２に対する追加プログラムの送信を要求するコマンドデータ（追加プログラム送信コマンドデータ）を管理サーバ１０のコマンド受信部１３に対して送信する（Ｓ１１５）。
【００４１】
図９は、追加プログラム送信コマンドデータの構成例を示す図である。同図において、追加プログラム送信コマンドデータは、追加プログラム送信コマンド、ユーザ情報、ジョブ番号、機器情報、ターゲットアプリ名、及び追加プログラム番号を含む。
【００４２】
追加プログラム送信コマンドは、当該コマンドデータが追加プログラムの送信要求であることを示す数値又は文字列である。ユーザ情報、ジョブ番号、ターゲットアプリ名、及び追加プログラム番号には、フィルタ部２３より通知された情報がそのまま設定され、送信を要求する追加プログラムを特定するために用いられる。機器情報は、ネットワーク上における機器１０の識別情報（ＩＰアドレス又はホスト名等）である。
【００４３】
コマンド受信部１３は、受信した追加プログラム送信コマンドデータをイベント管理部１１に通知する（Ｓ１１６）。イベント管理部１１は、追加プログラム送信コマンドデータに指定されたユーザ情報、ジョブ番号、ターゲットアプリ名、及び追加プログラム番号と一致する追加プログラム利用予約データ（図７参照）の存否（管理サーバ１０の記憶媒体における保存の有無）を確認することにより、機器２０より送信が要求された追加プログラムの利用が確かにＰＣ端末３０より要求（予約）されているか否かを確認する（Ｓ１１７）。
【００４４】
対応する追加プログラム利用予約データが存在する場合、イベント管理部１１は、追加プログラム送信コマンドデータをデータ管理部１２に通知し、追加プログラムの送信を要求する（Ｓ１１８）。データ管理部１２は、追加プログラム送信コマンドデータに含まれる追加プログラム番号に対応する追加プログラムを管理サーバ１２の記憶媒体より取得し、追加プログラム送信コマンドデータと共にデータ送信部１４に通知する（Ｓ１１９）。データ送信部１４は、当該追加プログラムデータと、追加プログラム送信コマンドデータに含まれている追加プログラム番号及びターゲットアプリ名とを機器２０の追加プログラム制御部２２に送信することにより、当該追加プログラムの当該ターゲットアプリ名に係るアプリ２４（ここでは、プリンタアプリ２４１）への適用を要求する（Ｓ１２０）。なお、追加プログラム等の送信対象とする機器２０は追加プログラム送信コマンドデータに含まれている機器情報に基づいて判断される。
【００４５】
追加プログラム制御部２２は、追加プログラム、追加プログラム番号及びターゲットアプリ名を受信すると、ターゲットアプリ名に係るプリンタアプリ２４１に対して、メモリ上において当該追加プログラムを適用する（Ｓ１２１）。具体的には、図２において説明したように、メモリ上のプリンタアプリ２４１の処理ステップの中で、追加プログラム内に指定されている位置に追加プログラムの処理を割り込ませる。追加プログラムの適用が完了すると、追加プログラム制御部２２は、当該適用の完了をイベント制御部２１に通知する（Ｓ１２２）。なお、追加プログラム制御部２２は、プリンタアプリ２４１に適用されている追加プログラムを追加プログラム番号によって管理（識別）する。
【００４６】
イベント制御部１２１は、当該通知を受けると、フィルタ部２３に対して印刷ジョブの開始を指示する（Ｓ１２３）。フィルタ部２３は、ステップＳ１１２において受信されている印刷データをプリンタアプリ２４１に出力する（Ｓ１２４）。プリンタアプリ２４１は、当該印刷データに基づいて印刷ジョブを実行する。印刷ジョブが完了すると、プリンタアプリ２４１は、フィルタ部２３に対して応答を行う（Ｓ１２５）。当該応答には、例えば、印刷ジョブの成否を示す情報が含まれている。
【００４７】
続いて、フィルタ部２３は、印刷ジョブの完了をイベント制御部２１に通知する（Ｓ１２６）。イベント制御部２１は、印刷ジョブの完了に応じ、プリンタアプリ２４１に適用されている追加プログラムの停止（適用の解除）を要求するコマンドデータ（追加プログラム停止コマンドデータ）を、管理サーバ１０のコマンド受信部１３に対して送信する（Ｓ１２７）。
【００４８】
図１０は、追加プログラム停止コマンドデータの構成例を示す図である。同図において、追加プログラム停止コマンドデータは、追加プログラム停止コマンド、ユーザ情報、ジョブ番号、機器情報、ターゲットアプリ名、及び追加プログラム番号を含む。
【００４９】
追加プログラム停止コマンドは、当該コマンドデータが追加プログラムの停止要求であることを示す数値又は文字列である。ユーザ情報、ジョブ番号、ターゲットアプリ名、及び追加プログラム番号には追加プログラム送信コマンドに設定された値と同じ値が設定される。
【００５０】
コマンド受信部１３は、受信した追加プログラム停止コマンドデータをイベント管理部１１に通知する（Ｓ１２８）。イベント管理部１１は、追加プログラム停止コマンドデータをデータ送信部１４に通知し、追加プログラムの停止を要求する（Ｓ１２９）。データ送信部１４は、追加プログラム停止コマンドデータに含まれている追加プログラム番号及びターゲットアプリ名を伴って、追加プログラム停止コマンドを機器２０の追加プログラム制御部２２に送信する（Ｓ１３０）。
【００５１】
追加プログラム制御部２２は、追加プログラム停止コマンド、追加プログラム番号及びターゲットアプリ名を受信すると、当該追加プログラム番号及びターゲットアプリ名に基づいて、プリンタアプリ２４１に適用されている追加プログラムを停止させる（Ｓ１３１）。これにより、追加プログラムはメモリ上よりアンロードされ、プリンタアプリ２４１の処理手順は、追加プログラムの適用前の状態に戻る。続いて、追加プログラム制御部２２は、追加プログラムの停止が完了した旨をイベント制御部２１に通知する（Ｓ１３２）。当該通知を受けて、イベント制御部２１は、当該印刷ジョブに関する処理が終了したことを検知する。すなわち、イベント制御部２１は、単に印刷ジョブが完了しただけでなく、当該印刷ジョブのために利用された追加プログラムに関する情報がメモリ上より除去されたことを認識する。
【００５２】
なお、上記では、印刷データに追加プログラムを識別する情報（追加プログラム番号）を含める例について説明したが、追加プログラムの実体を印刷データに含めるようにしてもよい。また、追加プログラム制御部２２の制御（追加プログラムの送り込みや追加プログラムの停止指示等）をイベント制御部２１又はフィルタ部２３が実行するようにしてもよい。この場合、機器２０側において、追加プログラムを管理サーバ１０より取得するための処理や、追加プログラムの適用及び停止を管理サーバ１０に要求する処理は不要となる。
【００５３】
また、上記では、印刷ジョブをＰＣ端末３０より入力されるジョブの例として説明したが、例えば、ＰＣ端末３０より入力されるジョブはＦＡＸ送信ジョブであってもよい。すなわち、ＰＣ端末３０において保存されている文書データ等のＦＡＸ送信をネットワークを介して機器２０に要求する場合である。斯かるＦＡＸ送信ジョブについても図４と同様の処理手順によって追加プログラムによる機能強化（カスタマイズ）を実現することができる。
【００５４】
ところで、追加プログラムによる機能拡張は、ＰＣ端末３０より入力される印刷ジョブだけに限られない。例えば、機器２０のオペレーションパネル６０２を介して入力されるコピージョブ又はＦＡＸ送信ジョブ等についても同様に機能拡張が可能である。
【００５５】
図１１は、第一の実施の形態におけるコピージョブの実行時の処理手順を説明するためのシーケンス図である。なお、以下において用いられる用語の意味は、特に明記しない限り、図４の説明におけるものと同様である。
【００５６】
オペレーションパネル６０２においてコピーアプリ２４２が利用対象として選択され、コピー設定画面においてユーザによって所定のボタン（機能拡張ボタン）が押下されることにより機能拡張要求が入力されると（Ｓ２０１）、操作部２５は、イベント制御部２１に対して機能拡張を実現する追加プログラムの一覧情報の取得を要求する（Ｓ２０２）。イベント制御部２１は、追加プログラムの一覧情報の取得要求を管理サーバ１０に送信する（Ｓ２０２）。当該取得要求には、機器１０の機種の識別情報やプリンタアプリ２４１のアプリ名等、適用（利用）可能な追加プログラムを限定する情報が含まれていてもよい。管理サーバ１０のデータ管理部１２は、追加プログラムの取得要求を受信すると、管理されている追加プログラムの一覧情報を生成し、当該一覧情報を印刷設定部３１に返信する（Ｓ２０４）。
【００５７】
操作部２５は、追加プログラムの一覧情報を受信すると、当該一覧情報をオペレーションパネル６０２表示させる（Ｓ２０５）。
【００５８】
図１２は、機器のオペレーションパネルにおける追加プログラム一覧画面の表示例を示す図である。同図において、追加プログラム一覧画面３２０には、各追加プログラムの機能を示す文字列の一覧が表示されている。同図では、「Ｓｅｎｄ  ｅ−ｍａｉｌ  ｔｈｅｎ  ｆｉｎｉｓｈ  ｃｏｐｙｉｎｇ（電子メール送信後にコピー実行）」、「Ａｄｄ  ｓｐｅｃｉａｌ  ｓｉｇｎａｔｕｒｅ  ｔｏ  ｅａｃｈ  ｐａｐｅｒ（各ページに署名を付加）」、「Ｆｉｔ  ｔｏ  ｅｎｔｒｉｅｄ  ｆｏｒｍ（登録された形式に合わせる）」、及び「Ｓｔａｒｔ  ｃｏｐｙ  ａｔ  ｓｐｅｃｉｆｉｅｄ  ｔｉｍｅ（指定時間にコピー開始）」等が例示されている。
【００５９】
ユーザによって当該一覧の中から所望の追加プログラムが利用対象として選択されると（Ｓ２０６）、操作部２５は、イベント制御部２１を介して追加プログラム利用予約データ（図７参照）を管理サーバ１０に送信する（Ｓ２０７、Ｓ２０８）。なお、追加プログラム利用予約データに含まれるユーザ情報は、機器２０に対するログインユーザのユーザ情報である。また、ジョブ番号は、操作部２５又はイベント制御部２１等によって採番される。また、ターゲットアプリ名は、ここではコピーアプリ２４２のアプリ名となる。管理サーバ１０のデータ管理部１２は、当該追加プログラム利用予約データを受信し、記憶媒体に記録しておく。
【００６０】
続いてスタートボタンが押下されることによりコピーの開始指示が入力されると（Ｓ２０９）、操作部２５は、コピージョブのジョブデータ（当該コピージョブに関するジョブ番号や設定情報等を含むデータ）に、利用対象とされた追加プログラムに関する情報（ターゲットアプリ名及び追加プログラム番号等）を付加する（Ｓ２１０）。続いて、操作部２５は、ジョブデータをフィルタ部２３に通知することにより、コピージョブの実行を要求する（Ｓ２１１）。
【００６１】
以降の処理手順は、ジョブを実行するアプリ２４（すなわち、追加プログラムが適用されるアプリ２４）がコピーアプリ２４２である点を除き、図４のステップＳ１１３以降の処理手順とほぼ同様であるため、その説明は省略する。
【００６２】
ところで、特に印刷ジョブについては、機器２０において他の印刷ジョブの実行中に並列的に入力（受信）される可能性がある。また、二つの印刷ジョブのそれぞれに異なる追加プログラムの適用が要求される可能性がある。この場合、二つの追加プログラムが同時に適用されてしまうと、それぞれの印刷ジョブについて意図しない結果が出力されてしまう。追加プログラムは、一つのプログラムに対して同時に複数適用可能だからである。そこで、斯かる問題点を解決した例を第二の実施の形態として説明する。
【００６３】
図１３は、第二の実施の形態における印刷ジョブの実行時の処理手順を説明するためのシーケンス図である。同図には、ＰＣ端末３０ａの印刷設定部３１ａからの印刷ジョブＡの入力後であって印刷ジョブＡが終了する前に、ＰＣ端末３０ｂの印刷設定部３１ｂから印刷ジョブＢが入力される場合の処理手順が示されている。印刷ジョブＡに関する処理手順については図４と同様に１００番台のステップ番号が付されている。印刷ジョブＢに関する処理手順については３００番台のステップ番号が付されている。この場合、それぞれの印刷ジョブに関する処理手順は、図４において説明したものと同様である。したがって、図１３において留意すべき点を中心に説明する。
【００６４】
同図においては、機器２０のイベント制御部１２１は、印刷ジョブＡの実行をフィルタ部２３に指示した際に（Ｓ１２３）、ジョブ又はアプリ２４の種別（印刷ジョブ（プリンタアプリ２４１）、コピージョブ（コピーアプリ２４２）、ＦＡＸ送信ジョブ（ＦＡＸアプリ２４３）等の別）ごとにジョブの実行中であることを示す情報をメモリ上において記録しておく。具体的には、ここでは、印刷ジョブが実行中であるか否かを示すフラグ変数の値をＯＮにする。
【００６５】
その後、フィルタ部２３は、プリンタアプリ２４１に対して印刷ジョブＡに係る印刷データＡを出力後に（Ｓ１２４）、印刷設定部３１ｂより印刷ジョブＢに係る印刷データＢを受信する（Ｓ３１２）。フィルタ部２３は、印刷データＢの解析を行い、追加プログラム情報が付加されている場合はイベント制御部２１に対して追加プログラムの適用を要求する（Ｓ３１４）。
【００６６】
当該要求を受けたイベント制御部２１は、フラグ変数に基づいて他の印刷ジョブが実行中であるか否かを判定する。ここでは、印刷ジョブＡの実行指示に基づいてフラグ変数の値がＯＮとされている。したがって、イベント制御部２１は、印刷ジョブＡに関してフィルタ部２３より印刷ジョブの完了が通知され（Ｓ１２６）、更に、追加プログラム制御部２２より追加プログラムの停止完了通知（Ｓ１３２）があるまで待機した後に、に印刷ジョブＢに対する追加プログラム送信コマンドデータを管理サーバ１０のコマンド受信部１３に送信する（Ｓ３１５）。なお、イベント制御部２１は、ステップＳ１３２において、ジョブＡに関して追加プログラムの停止完了通知を受けた際にフラグ変数をＯＦＦにする。
【００６７】
以上の処理により、印刷ジョブＡの実行中に印刷ジョブＢに対して指定された追加プログラムがプリンタアプリ２４１に対して適用されたり、印刷ジョブＢの実行開始時に印刷ジョブＡに対して指定された追加プログラムがプリンタアプリ２４１に対して適用されたままであったりといった事態の発生が回避される。したがって、印刷ジョブＡ及び印刷ジョブＢのそれぞれについて、意図しない機能強化の適用が回避される。
【００６８】
なお、イベント制御部２１は、ジョブの実行中に種別の異なるジョブについて追加プログラムの適用要求をフィルタ部２３より受けた場合は、待機することなく追加プログラム送信コマンドデータを管理サーバ１０に送信するようにしてもよい。ジョブの種別が異なれば追加プログラムの適用対象となるアプリ２４（ターゲットアプリ）が異なり、追加プログラムの干渉の心配は無いからである。但し、異なるアプリ２４間において、共通のプログラムモジュールが利用される場合がある。このようなプログラム構成において当該共通のプログラムモジュールに対して追加プログラムが適用される可能性がある場合は、ジョブの種別が異なっていても、図１３において説明したように他のジョブが完了するまで追加プログラムの適用を待機すればよい。
【００６９】
上述したように、本実施の形態における画像形成システム１によれば、ジョブを実行するアプリケーションの処理手順の内容を追加プログラムによってジョブ単位で動的に変更することができる。したがって、ジョブ単位で各機能をカスタマイズ又は機能強化等を行うことができる。
【００７０】
また、追加プログラムが適用される期間は、ジョブ単位に限定されるため、各ジョブの実行において、他のジョブに対して適用が要求されている追加プログラムによる影響が適切に回避される。
【００７１】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【００７２】
【図１】本発明の実施の形態における画像形成システムの構成例を示す図である。
【図２】追加プログラムの概要を説明するための図である。
【図３】本発明の実施の形態における機器のハードウェア構成の一例を示す図である。
【図４】第一の実施の形態における印刷ジョブの実行時の処理手順を説明するためのシーケンス図である。
【図５】印刷設定画面の表示例を示す図である。
【図６】追加プログラム一覧画面の表示例を示す図である。
【図７】追加プログラム利用予約データの構成例を示す図である。
【図８】印刷データの構成例を示す図である。
【図９】追加プログラム送信コマンドデータの構成例を示す図である。
【図１０】追加プログラム停止コマンドデータの構成例を示す図である。
【図１１】第一の実施の形態におけるコピージョブの実行時の処理手順を説明するためのシーケンス図である。
【図１２】機器のオペレーションパネルにおける追加プログラム一覧画面の表示例を示す図である。
【図１３】第二の実施の形態における印刷ジョブの実行時の処理手順を説明するためのシーケンス図である。
【符号の説明】
【００７３】
１        画像形成システム
１０      管理サーバ
１１      イベント管理部
１２      データ管理部
１３      コマンド受信部
１４      データ送信部
２０      機器
２１      イベント制御部
２２      追加プログラム制御部
２３      フィルタ部
２４      アプリ
２５      操作部
３０、３０ａ、３０ｂ    ＰＣ端末
３１、３１ａ、３１ｂ    印刷設定部
６０１    コントローラ
６０２    オペレーションパネル
６０３    ファクシミリコントロールユニット
６０４    撮像部
６０５    印刷部
６１１    ＣＰＵ
６１２    ＡＳＩＣ
６２１    ＮＢ
６２２    ＳＢ
６３１    ＭＥＭ−Ｐ
６３２    ＭＥＭ−Ｃ
６３３    ＨＤＤ
６３４    メモリカードスロット
６３５    メモリカード
６４１    ＮＩＣ
６４２    ＵＳＢデバイス
６４３    ＩＥＥＥ１３９４デバイス
６４４    セントロニクスデバイス
【図１】
2009238002.tif 000003
【図２】
2009238002.tif 000004
【図３】
2009238002.tif 000005
【図４】
2009238002.tif 000006
【図５】
2009238002.tif 000007
【図６】
2009238002.tif 000008
【図７】
2009238002.tif 000009
【図８】
2009238002.tif 000010
【図９】
2009238002.tif 000011
【図１０】
2009238002.tif 000012
【図１１】
2009238002.tif 000013
【図１２】
2009238002.tif 000014
【図１３】
2009238002.tif 000015