(57)【特許請求の範囲】
【請求項１】
１以上のプログラムごとに当該プログラムの動作条件を含むマクロを管理するマクロ管理手段と、
前記マクロ管理手段が管理するマクロの中から選択されたマクロを構成するプログラムを、当該マクロが当該プログラムに関して含む動作条件に基づいて利用させるプログラム利用手段と、
ユーザごとに前記プログラムに対する利用権限の有無が定義された利用権限情報を管理する利用権限情報管理手段と、
前記利用権限情報に基づいて、前記プログラムの利用の許否を判定する判定手段とを有し、
前記判定手段は、前記プログラム利用手段によって前記マクロに基づいて前記プログラムが利用されるときは、当該プログラムに利用権限の無いユーザに対しても当該プログラムの利用を許可することを特徴とする画像形成装置。
【請求項２】
前記マクロ管理手段は、前記マクロを利用可能なユーザを識別する情報を前記マクロに関連付けて管理し、
前記判定手段は、前記マクロに基づいて前記プログラムが利用されるときは、前記マクロの利用が許可されていないユーザに対しては前記プログラムの利用を許可しないことを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記マクロ管理手段は、前記マクロの作成者を識別する情報を前記マクロに関連付けて管理し、
前記判定手段は、前記マクロに基づいて前記プログラムが利用されるときは、前記作成者に対しては前記プログラムの利用を許可することを特徴とする請求項２記載の画像形成装置。
【請求項４】
前記判定手段は、前記マクロに基づいて前記プログラムが利用されるときは、前記作成者に対する前記利用権限情報に基づいて、前記プログラムの利用の許否を判定することを特徴とする請求項３記載の画像形成装置。
【請求項５】
前記マクロは、複数のプログラムに対する動作条件を含み、
前記マクロ管理手段は、前記複数のプログラムのうち前記マクロに基づいて利用を許可するプログラムを識別させる情報を管理し、
前記判定手段は、前記マクロを利用可能なユーザであっても、利用が許可されないプログラムについては利用を許可しないことを特徴とする請求項２乃至４いずれか一項記載の画像形成装置。
【請求項６】
前記プログラム利用手段が前記マクロを利用させた利用回数を記憶装置に記録する利用回数記録手段を有し、
前記判定手段は、前記利用回数が前記マクロに対して設定された上限値を超えるときは当該マクロに基づく前記プログラムの利用を許可しないことを特徴とする請求項１乃至５いずれか一項記載の画像形成装置。
【請求項７】
前記利用回数記録手段は、前記マクロを利用するユーザに応じて前記利用回数を記録し、
前記判定手段は、前記ユーザに応じた前記利用回数が前記上限値を超えるときは当該マクロに基づく前記プログラムの利用を許可しないことを特徴とする請求項６記載の画像形成装置。
【請求項８】
前記利用回数記録手段は、前記利用回数を前記プログラムごとに記録し、
前記判定手段は、前記プログラムごとの利用回数が前記上限値を超えるときは当該プログラムの利用を許可しないことを特徴とする請求項６記載の画像形成装置。
【請求項９】
画像形成装置が実行する利用制限方法であって、
マクロ管理手段が管理する、１以上のプログラムごとに当該プログラムの動作条件を含むマクロの中から選択されたマクロを構成するプログラムを、当該マクロが当該プログラムに関して含む動作条件に基づいて利用させるプログラム利用手順と、
ユーザごとに前記プログラムに対する利用権限の有無が定義された利用権限情報を管理する利用権限情報管理手段に基づいて、前記プログラムの利用の許否を判定する判定手順とを有し、
前記判定手順は、前記プログラム利用手順において前記マクロに基づいて前記プログラムが利用されるときは、当該プログラムに利用権限の無いユーザに対しても当該プログラムの利用を許可することを特徴とする利用制限方法。
【請求項１０】
前記マクロ管理手段は、前記マクロを利用可能なユーザを識別する情報を前記マクロに関連付けて管理し、
前記判定手順は、前記マクロに基づいて前記プログラムが利用されるときは、前記マクロの利用が許可されていないユーザに対しては前記プログラムの利用を許可しないことを特徴とする請求項９記載の利用制限方法。
【請求項１１】
前記マクロ管理手段は、前記マクロの作成者を識別する情報を前記マクロに関連付けて管理し、
前記判定手順は、前記マクロに基づいて前記プログラムが利用されるときは、前記作成者に対しては前記プログラムの利用を許可することを特徴とする請求項１０記載の利用制限方法。
【請求項１２】
前記判定手順は、前記マクロに基づいて前記プログラムが利用されるときは、前記作成者に対する前記利用権限情報に基づいて、前記プログラムの利用の許否を判定することを特徴とする請求項１１記載の利用制限方法。
【請求項１３】
前記マクロは、複数のプログラムに対する動作条件を含み、
前記マクロ管理手段は、前記複数のプログラムのうち前記マクロに基づいて利用を許可するプログラムを識別させる情報を管理し、
前記判定手順は、前記マクロを利用可能なユーザであっても、利用が許可されないプログラムについては利用を許可しないことを特徴とする請求項１０乃至１２いずれか一項記載の利用制限方法。
【請求項１４】
前記プログラム利用手順が前記マクロを利用させた利用回数を記憶装置に記録する利用回数記録手順を有し、
前記判定手順は、前記利用回数が前記マクロに対して設定された上限値を超えるときは当該マクロに基づく前記プログラムの利用を許可しないことを特徴とする請求項９乃至１３いずれか一項記載の利用制限方法。
【請求項１５】
前記利用回数記録手順は、前記マクロを利用するユーザに応じて前記利用回数を記録し、
前記判定手順は、前記ユーザに応じた前記利用回数が前記上限値を超えるときは当該マクロに基づく前記プログラムの利用を許可しないことを特徴とする請求項１４記載の利用制限方法。
【請求項１６】
前記利用回数記録手順は、前記利用回数を前記プログラムごとに記録し、
前記判定手順は、前記プログラムごとの利用回数が前記上限値を超えるときは当該プログラムの利用を許可しないことを特徴とする請求項１４記載の利用制限方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置及び利用制限方法に関し、特に資源に対して利用制限を行う画像形成装置及び利用制限方法に関する。
【背景技術】
【０００２】
従来、画像形成装置において管理されている各種資源（アプリケーションや情報等）に対するセキュリティを確保するため、アクセス制御機能が実装されている。アクセス制御機能によれば、各ユーザは、予め設定された利用権限の範囲内で資源の利用が許可される。換言すれば、利用権限の無い資源に対するアクセスは、自動的に拒否される。
【特許文献１】特開２００５−０９２６４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来のアクセス制御機能は、セキュリティの確保という観点において或る程度の妥当性は認められるものの、現実の業務又は運用の観点において柔軟性に欠けるという問題があった。例えば、或るアプリケーションに対して利用権限の無いユーザに対して、所定の動作条件に限って利用を許可したい場合、又は利用を許可してもセキュリティ上問題がなく、むしろ、業務の遂行上都合のいい場合がある。
【０００４】
本発明は、上記の点に鑑みてなされたものであって、資源に対する利用制限を柔軟に行うことのできる画像形成装置及び利用制限方法の提供を目的とする。
【課題を解決するための手段】
【０００５】
そこで上記課題を解決するため、本発明は、資源に対する利用条件を含む利用条件情報を管理する利用条件管理手段と、ユーザによる要求に応じて、前記利用条件情報に含まれている利用条件に基づいて前記資源を利用させる資源利用手段と、ユーザごとに前記資源に対する利用権限の有無が定義された利用権限情報を管理する利用権限情報管理手段と、前記利用権限情報に基づいて、ユーザによる要求に応じた前記資源の利用の許否を判定する判定手段とを有し、前記判定手段は、前記利用条件情報に基づいて前記資源が利用されるときは、当該資源に利用権限の無いユーザに対しても当該資源の利用を許可することを特徴とする。
【０００６】
このような画像形成装置では、資源に対する利用制限を柔軟に行うことができる。
【発明の効果】
【０００７】
本発明によれば、資源に対する利用制限を柔軟に行うことのできる画像形成装置及び利用制限方法を提供することができる。
【発明を実施するための最良の形態】
【０００８】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における画像形成装置のハードウェア構成の一例を示す図である。図１では、画像形成装置の具体例として、プリンタ、コピー、スキャナ、又は、ファクス等の複数の機能を一台の筐体において実現する複合機１のハードウェア構成が示されている。
【０００９】
複合機１のハードウェアとしては、コントローラ６０１と、オペレーションパネル６０２と、ファクシミリコントロールユニット（ＦＣＵ）６０３と、撮像部６０４と、印刷部６０５が存在する。
【００１０】
コントローラ６０１は、ＣＰＵ６１１、ＡＳＩＣ６１２、ＮＢ６２１、ＳＢ６２２、ＭＥＭ−Ｐ６３１、ＭＥＭ−Ｃ６３２、ＨＤＤ（ハードディスクドライブ）６３３、メモリカードスロット６３４、ＮＩＣ（ネットワークインタフェースコントローラ）６４１、ＵＳＢデバイス６４２、ＩＥＥＥ１３９４デバイス６４３、セントロニクスデバイス６４４により構成される。
【００１１】
ＣＰＵ６１１は、種々の情報処理用のＩＣである。ＡＳＩＣ６１２は、種々の画像処理用のＩＣである。ＮＢ６２１は、コントローラ６０１のノースブリッジである。ＳＢ６２２は、コントローラ６０１のサウスブリッジである。ＭＥＭ−Ｐ６３１は、複合機１のシステムメモリである。ＭＥＭ−Ｃ６３２は、複合機１のローカルメモリである。ＨＤＤ６３３は、複合機１のストレージである。メモリカードスロット６３４は、メモリカード２３５をセットするためのスロットである。ＮＩＣ６４１は、ＭＡＣアドレスによるネットワーク通信用のコントローラである。ＵＳＢデバイス６４２は、ＵＳＢ規格の接続端子を提供するためのデバイスである。ＩＥＥＥ１３９４デバイス６４３は、ＩＥＥＥ１３９４規格の接続端子を提供するためのデバイスである。セントロニクスデバイス６４４は、セントロニクス仕様の接続端子を提供するためのデバイスである。オペレーションパネル６０２は、オペレータが複合機１に入力を行うためのハードウェア（操作部）であると共に、オペレータが複合機１から出力を得るためのハードウェア（表示部）である。
【００１２】
図２は、本発明の実施の形態の画像形成装置におけるソフトウェア構成例を示す図である。図２に示されるように、複合機１におけるソフトウェアは、アプリケーションメカニズム１０、サービスメカニズム２０、デバイスメカニズム３０、及び運用部４０等のレイヤによって構成される。図２におけるレイヤの上下関係は、レイヤ間の呼び出し関係に基づいている。すなわち、基本的に図中において上にあるレイヤが下のレイヤを呼び出す。
【００１３】
アプリケーションメカニズム１０は、複合機１が提供する機能又は情報（データ）等の資源をユーザに利用させるためのソフトウェア部品（プログラム）群が実装されているレイヤである。本実施の形態では、アプリケーションメカニズム１０に実装される一部のソフトウェア部品を「フィルタ」と呼ぶ。これは、複合機１のジョブを実行する手アプリケーションが、「パイプ＆フィルタ」と呼ばれるソフトウェアアーキテクチャに基づいて構築されることによる。
【００１４】
図３は、パイプ＆フィルタアーキテクチャの概念を説明するための図である。図３において、「Ｆ」はフィルタを示し、「Ｐ」はパイプを示す。図中に示されるように、各フィルタはパイプによって接続される。フィルタは、入力されたデータに対して変換を施し、その結果を出力する。パイプは、例えば、両端のフィルタより参照可能な記録領域によって構成され、フィルタから出力されたデータを次のフィルタに伝達する。
【００１５】
すなわち、本実施の形態における複合機１では、ジョブをドキュメント（データ）に対する「変換」の連続として捉える。複合機１のジョブは、ドキュメントの入力、加工、及び、出力によって構成されるものとして一般化することができる。そこで「入力」、「加工」、及び、「出力」を、それぞれ「変換」として捉え、一つの「変換」を実現するソフトウェア部品がフィルタとして構成される。入力を実現するフィルタを特に「入力フィルタ」という。また、加工を実現するフィルタを特に「加工フィルタ」という。更に、出力を実現するフィルタを特に「出力フィルタ」という。基本的に、各フィルタは、単独では一つのジョブを実行することはできず、複数のフィルタが、図３に示されるように接続されることにより、一つのジョブを実行するアプリケーションが構築される。
【００１６】
なお、各フィルタは独立しており、フィルタ間における依存関係（呼び出し関係）は基本的に存在しない。従って、フィルタ単位で追加（インストール）又は削除（アンインストール）が可能とされている。
【００１７】
図２において、アプリケーションメカニズム１０には、入力フィルタとして、読取フィルタ１１１、保管文書読出フィルタ１１２、メール受信フィルタ１１３、及びファクス受信フィルタ１１４等が示されている。
【００１８】
読取フィルタ１１１は、スキャナによる画像データの読み取りを制御し、読み取られた画像データを出力する。保管文書読出フィルタ１１２は、複合機１の記憶装置に保管されている文書データ（画像データ）を読み出し、読み出されたデータを出力する。メール受信フィルタ１１３は、電子メールを受信し、当該電子メールに含まれているデータを出力する。ファクス受信フィルタ１１４は、ファクス受信を制御し、受信された印刷データを出力する。
【００１９】
また、加工フィルタとしては、文書加工フィルタ１２１及び文書変換フィルタ１２２等が示されている。文書加工フィルタ１２１は、入力されたデータに所定の画像変換処理（集約、拡大、又は、縮小等）を施し、出力する。文書変換フィルタ１２２は、画像データのデータ形式を変換する。文書変換フィルタ１２２は、例えば、レンダリング処理、すなわち、入力されたＰｏｓｔＳｃｒｉｐｔデータをビットマップデータに変換して出力する。
【００２０】
また、出力フィルタとしては、印刷フィルタ１３１、保管文書登録フィルタ１３２、メール送信フィルタ１３３、及びファクス送信フィルタ１３４等が示されている。
【００２１】
印刷フィルタ１３１は、入力されたデータをプロッタに出力（印刷）させる。保管文書登録フィルタ１３２は、入力されたデータを複合機１内の記憶装置、例えば、ハードディスク装置に保存する。メール送信フィルタ１３３は、入力されたデータを電子メールに添付して送信する。ファクス送信フィルタ１３４は、入力されたデータをファクス送信する。
【００２２】
例えば、複合機１における各種機能は、次のようなフィルタの組み合わせにより実現される。図４は、本実施の形態の複合機における各機能を実現するためのフィルタの組み合わせの例を示す図である。
【００２３】
例えば、コピー機能は、読取フィルタ１１１と印刷フィルタ１３１とを接続することにより実現される。読取フィルタ１１１によって原稿より読み取られた画像データを印刷フィルタ１３１によって印刷すればよいからである。なお、集約、拡大、又は縮小等の加工が要求された場合は、これらの加工を実現する文書加工フィルタ１２１が二つのフィルタの間に挿入される。
【００２４】
スキャンｔｏ  ｅｍａｉｌ機能（スキャンした画像データを電子メールで転送する機能）は、読取フィルタ１１１とメール送信フィルタ１３３とを接続することによって実現される。ファクス送信機能は、読取フィルタ１１１とファクス送信フィルタ１３４とを接続することによって実現される。ファクス受信機能は、ファクス受信フィルタ１１４と印刷フィルタ１３１とを接続することによって実現される。ドキュメントボックス蓄積機能（スキャンした画像データを複合機１内に保存する機能）は、読取フィルタ１１１と保管文書登録フィルタ１３２とを接続することによって実現される。ドキュメントボックス印刷機能（複合機１内に保存されている文書データを印刷する機能）は、保管文書読出フィルタ１０２と印刷フィルタ１３１とを接続することにより実現される。
【００２５】
図４において、例えば、読取フィルタ１１１については５つの機能において利用されている。このように、各フィルタは複数の機能から利用可能であり、それによって各機能を実現するための開発工数を削減することができる。また、複合機１では各フィルタを部品としてアプリケーションを構築するため、機能のカスタマイズ又は拡張を簡便に行うことができる。すなわち、各フィルタ間には、機能的な依存関係はなく独立性が保たれているため、フィルタの新たな追加やフィルタの組み合わせの変更によって、新たなアプリケーションを容易に開発することができる。したがって、新たなアプリケーションの実装が要求された場合、当該アプリケーションの一部の処理について実装されていない場合は、当該一部の処理を実現するフィルタのみを開発し、インストールすればよい。よって、アプリケーションメカニズム１０より下位のレイヤについて、新たなアプリケーションの実装に応じて発生する修正の頻度を低下させることができ、安定したプラットフォームを提供することができる。
【００２６】
アプリケーションメカニズム１０には、また、「アクティビティ」と呼ばれるソフトウェア部品が存在する。アクティビティは、複数のフィルタをどの順番で接続するかを管理し、その順番でフィルタを実行させることによりジョブを実行するソフトウェア部品であり、一つのアクティビティによって一つのアプリケーションが実現される。
【００２７】
すなわち、フィルタはそれぞれ独立性が高いため、フィルタの組み合わせ（アプリケーション）を動的に構築することが可能である。具体的には、ジョブの実行要求を受け付けるたびに、利用するフィルタと、フィルタの実行順序、及びそれぞれのフィルタの動作条件等をオペレーションパネル６０２を介してユーザに設定させることにより、ユーザ所望の機能を実現するようにしてもよい。
【００２８】
しかし、コピー機能のように頻繁に利用する機能については、毎回フィルタを選択することにより実行指示を行うのはユーザにとって煩雑である。かかる課題を解決するのがアクティビティである。すなわち、フィルタの組み合わせをアクティビティとして予め定義しておけば、ユーザは、アクティビティを単位として実行対象を選択することができる。選択されたアクティビティは、当該アクティビティに定義された組み合わせに係る各フィルタを自動的に実行する。したがって、アクティビティによって、操作の煩雑さを解消することができるとともに、アプリケーション単位で実行対象を選択していた従来のユーザインタフェースと同様の操作感を提供することができる。
【００２９】
図中には、アクティビティの一例として、コピーアクティビティ１０１、送信アクティビティ１０２、及びファクスアクティビティ１０３等が含まれる。例えば、コピーアクティビティ１０１は、読取フィルタ３１１と、文書加工フィルタ３２１と、印刷フィルタ３３１との組み合わせにより、コピー機能（コピーアプリケーション）を実現する。
【００３０】
なお、基本的に各アクティビティは独立しており、アクティビティ間における依存関係（呼び出し関係）は基本的に存在しない。したがって、アクティビティ単位で追加（インストール）又は削除（アンインストール）が可能である。よって、図２に示されているアクティビティ以外にも、必要に応じて各種のフィルタの組み合わせによるアクティビティを作成し、インストールすることができる。
【００３１】
フィルタ及びアクティビティについて更に詳しく説明する。図５は、フィルタの構成要素を説明するための図である。図５に示されるように、各フィルタは、フィルタ設定用ＵＩ、フィルタロジック、フィルタ固有下位サービス、及び永続記憶領域情報等より構成される。このうち、フィルタ設定用ＵＩ、フィルタ固有下位サービス、及び永続記憶領域情報については、フィルタによって必ずしも構成要素に含まれない。
【００３２】
フィルタ設定用ＵＩは、フィルタの動作条件等を設定させるための画面をオペレーションパネル６０２等に表示させるプログラムである。すなわち、フィルタごとに動作条件が設定される。例えば、読取フィルタ１１１であれば、フィルタ設定用ＵＩは、解像度、濃度、画像種別等を設定させる画面が相当する。なお、オペレーションパネル６０２が、ＨＴＭＬデータや、スクリプトに基づいて表示制御を行うことが可能であれば、フィルタ設定用ＵＩは、ＨＴＭＬデータやスクリプトであってもよい。
【００３３】
フィルタロジックは、フィルタの機能を実現するためロジックが実装されたプログラムである。すなわち、フィルタの構成要素としてのフィルタ固有下位サービスや、デバイスサービス層４０又はデバイス制御層５０等を利用して、フィルタ設定用ＵＩを介して設定された動作条件に応じてフィルタの機能を実現する。例えば、読取フィルタ１１１であれば、スキャナによる原稿の読み取り制御のためのロジックが相当する。
【００３４】
フィルタ固有下位サービスは、フィルタロジックを実現するために必要な下位機能（ライブラリ）である。
【００３５】
永続記憶領域情報は、フィルタに対する設定情報（例えば、動作条件のデフォルト値）等、不揮発メモリに保存する必要があるデータのスキーマ定義が相当する。当該スキーマ定義は、フィルタのインストール時にデータ管理部２６に登録される。
【００３６】
図６は、アクティビティの構成要素を説明するための図である。図６に示されるように、アクティビティは、アクティビティＵＩ、アクティビティロジック、及び永続記憶領域情報等より構成される。
【００３７】
アクティビティＵＩは、アクティビティに関する画面（例えば、アクティビティの動作条件等を設定させるための設定画面）をオペレーションパネル６０２等に表示させるための情報又はプログラムである。
【００３８】
アクティビティロジックは、アクティビティの処理内容が実装されたプログラムである。基本的に、アクティビティロジックには、フィルタの組み合わせに関するロジック（例えば、フィルタの実行順、複数のフィルタに跨る設定、フィルタの接続変更、エラー処理等）が実装されている。
【００３９】
永続記憶領域情報は、アクティビティに対する設定情報（例えば、動作条件のデフォルト値）等、不揮発メモリに保存する必要があるデータのスキーマ定義が相当する。当該スキーマ定義は、アクティビティのインストール時にデータ管理部２６に登録される。
【００４０】
図２に戻る。サービスメカニズム２０は、アクティビティ又はフィルタ等が利用するプリミティブなサービスが実装され、アプリケーションが機種等のハード的な仕様に対して、非依存となるための仕組みを提供するレイヤである。図中において、サービスメカニズム２０には、リポジトリサービス２１、セッション管理部２２、リクエスト管理部２３、通信部２４、ＵＩ部２５、データ管理部２６、及びリクエスト定義部２７等が含まれる。
【００４１】
リポジトリサービス２１は、ユーザ情報等、機器内外に保存される各種情報の基本操作（生成、参照、更新、削除）を提供する。セッション管理部２２は、ユーザの認証状態（ログイン状態）を管理する。例えば、セッション管理部２２は、ユーザによって入力される認証情報（ユーザ名及びパスワード等）に基づいてユーザ認証を行い、認証に成功した場合にユーザの正当性を示す電子データ（以下、「チケット」という。）を発行する。リクエスト管理部２３は、ジョブの管理を行う。通信部２４は、ネットワーク通信の制御を行う。ＵＩ部２５は、オペレーションパネル６０２に表示される操作画面を介して入力されるユーザ要求を解釈し、ユーザ要求に応じた処理制御をアプリケーションメカニズム１０又はサービスメカニズム２０等に委譲する。データ管理部２６は、リポジトリサービス２１の管理対象となる情報について、保存方法、及び保存場所等を規定する。リクエスト定義部２７は、マクロの生成及びロード（呼び出し）等を行う。ここで、「マクロ」とは、資源に対する利用条件を含む情報をいい、例えば、過去に実行されたジョブにおいて、フィルタの組み合わせや、アクティビティ又はフィルタに対して設定された動作条件（利用条件）等を保持する。マクロによれば、ユーザは改めて動作条件やフィルタの組み合わせ等を設定することなく、過去と同じ動作条件でアクティビティ、フィルタ等を再利用することができる。
【００４２】
デバイスメカニズム３０は、複合機１が有するデバイス毎に設けられたデバイスを制御する手段を有する。
【００４３】
運用部４０は、システムの運用管理に関するソフトウェア部品が実装される部分であり、アプリケーションメカニズム１０、サービスメカニズム２０、及びデバイスメカニズム３０より共通に利用される。図中において、運用部４０には、プラグイン管理部４１及びアクセス制御部４２が含まれている。プラグイン管理部４１は、アクティビティ又はフィルタ等、自由に抜き差し（インストール・アンインストール）可能なソフトウェア部品（プラグイン）の情報を管理する。アクセス制御部４２は、アクティビティ、フィルタ、マクロ、又はリポジトリサービス２１によって管理される情報等に対して、利用権限情報に基づいて、ユーザ、ロールごとにアクセス（利用）の許否（利用権限の有無）を判断する。ここで、利用権限情報とは、ユーザごとに、アクティビティ、フィルタ、及び他の資源ご等に対する利用権限の有無が記録（定義）された情報をいい、データ管理部２６によって管理される。
【００４４】
次にマクロの詳細について説明する。図７は、マクロ情報の構成例を示す図である。図７に示されるように、マクロ情報５０は、マクロＩＤ、タイトル、コメント、アイコン、作成者名、作成者チケット、ユーザＩＤ、動作条件情報５１、公開設定、公開アプリ、及び公開先情報５２等より構成される。
【００４５】
マクロＩＤは、各マクロを一意に識別するためのＩＤである。タイトルは、ユーザによって付されるマクロの名前である。コメントは、ユーザによって付されるマクロに関するコメントである。アイコンは、マクロを選択させるための画面において当該マクロに対応するボタン等に表示されるアイコンである。作成者名は、マクロの作成者（登録者）のユーザ名である。作成者チケットは、作成者のチケットである。ユーザＩＤは、作成者のユーザＩＤである。
【００４６】
動作条件情報５１は、マクロによって実行対象とされる（マクロに登録されている）アクティビティ、フィルタごとの動作条件によって構成される。動作条件情報５１には、また、マクロ識別子が含まれている。マクロ識別子は、マクロに基づいてアクティビティ、フィルタ等が実行される際に、その実行がマクロを介して行われることを示すために用いられる識別子である。
【００４７】
公開設定は、マクロを公開するか否かを示すと共に、マクロを実行する際の利用権限（アクティビティ、フィルタ等、複合機１の資源に対する利用権限）をマクロの作成者の利用権限に制限するか否かを示す情報である。マクロの公開とは、マクロの作成者以外に、当該マクロの利用を許可することをいう。すなわち、マクロは、原則として作成者のみが利用権限を有するが、公開された場合に限って他のユーザに利用可能となる。マクロの公開の形態には、「完全公開」と「権限内公開」とがある。完全公開とは、マクロを実行する際の利用権限が制限されない形態である。権限内公開とは、マクロを実行する際の利用権限がマクロの作成者の利用権限に制限される形態である。但し、マクロは、作成者によって実際に実行されたジョブにおいて利用されたアクティビティ、フィルタ、及びその他の資源に関して登録されるものであるため、権限内公開によって、マクロが実行できないという不都合が生じることは（マクロの登録後に作成者の利用権限が変更された場合は別として）基本的にない。
【００４８】
マクロに関するこのような利用権限の扱いからも明らかなように、マクロが公開されたユーザは、マクロを介して利用されるアクティビティ、フィルタ、及びその他の資源等に関して、自分自身が利用権限を有していなくてもマクロを介した実行であれば利用可能とされる。
【００４９】
なお、権限内公開によれば、マクロ実行時のセキュリティをより高めることができる。例えば、マクロ情報が不正に改ざんされ、マクロ作成者に利用権限の無いアクティビティ等が利用対象とされた場合に、マクロを介して当該アクティビティが利用されることを防止することができる。
【００５０】
マクロの公開の範囲は、公開アプリや公開先情報５２によっても制限されうる。公開アプリは、マクロに登録されているアクティビティやフィルタのうち、公開対象とするアクティビティ又はフィルタである。すなわち、マクロに登録されているアクティビティ等のうち、一部のアクティビティ等のみを公開することができる。公開先情報５２は、マクロが公開される（マクロの利用が許可される）ユーザ又はグループの一覧情報である。
【００５１】
以下、複合機１において、マクロに関して実行される処理手順について説明する。図８は、マクロの登録処理を説明するためのフローチャートである。また、図９は、マクロの登録処理の様子を示す図である。図９において図８と同一ステップには、同一ステップ番号を付している。
【００５２】
ステップＳ１０１において、オペレーションパネル６０２を介したユーザによる操作によって、実行対象とするアクティビティ又はフィルタの組み合わせが選択されると共に、それぞれのアクティビティ、フィルタに対して動作条件が設定され、ジョブの実行の開始が指示される。ここで、ユーザによって設定された動作条件は、各アクティビティのアクティビティロジック（図６参照）又は各フィルタのフィルタロジック（図５参照）に保持される。
【００５３】
ジョブの実行が完了すると、ＵＩ部２５は、実行されたジョブに関する設定をマクロとして登録するか否かを選択させるための画面をオペレーションパネル６０２に表示させる（Ｓ１０２）。当該画面を介して、ユーザによってマクロの登録が指示され、また、マクロのタイトル、コメントの入力、アイコンの選択等が行われるとＵＩ部２５は、マクロの登録をリクエスト定義部２７に指示する（Ｓ１０３）。
【００５４】
続いて、リクエスト定義部２７は、ユーザによって入力された情報（マクロのタイトル、コメント、アイコンの識別情報）とカレントユーザ（現在複合機１を操作しているユーザ）のユーザ名、チケット、及びユーザＩＤとを伴ってデータ管理部２６に対してマクロ情報の生成を要求する（Ｓ１０４）。なお、図８の処理の前提として、カレントユーザはセッション管理部２２によって認証されている。したがって、カレントユーザのユーザ名、チケット、及びユーザＩＤはセッション管理部２２に問い合わせることにより入手される。
【００５５】
データ管理部２６は、当該要求に応じ、マクロ情報を記憶装置に登録し、当該マクロ情報に対して割り当てられたマクロＩＤをリクエスト定義部２７に返却する。なお、カレントユーザのユーザ名、チケット、及びユーザＩＤは、作成者名、作成者チケット、ユーザＩＤとして登録される。
【００５６】
続いて、リクエスト定義部２７は、ジョブの実行に利用された各アクティビティ、各フィルタに対してマクロＩＤを通知し、当該マクロＩＤに係るマクロ情報へのそれぞれの動作条件の登録を指示する（Ｓ１０５）。続いて、動作条件の登録指示を受けたアクティビティは、アクティビティロジックに保持されている動作条件をマクロＩＤによって識別されるマクロ情報に登録する。また、動作条件の登録指示を受けたフィルタは、フィルタロジックに保持されている動作条件をマクロＩＤによって識別されるマクロ情報に登録する（Ｓ１０６）。
【００５７】
続いて、リクエスト定義部２７は、ステップＳ１０６までの処理において登録されたマクロ情報をマクロＩＤに基づいてデータ管理部２６より取得する（Ｓ１０７）。また、リクエスト定義部２７は、複合機１に関するユーザ情報（ユーザの一覧情報）をリポジトリサービス２１より取得する（Ｓ１０８）。続いて、リクエスト定義部２７は、ステップＳ１０７及びＳ１０８において取得された情報に基づいて、マクロの公開情報を設定させるための画面（以下、「マクロ公開情報設定画面」という。）のオペレーションパネル６０２への表示をＵＩ部２５に実行させる（Ｓ１０９）。
【００５８】
図１０は、マクロ公開情報設定画面の表示例を示す図である。図１０において、マクロ公開情報設定画面５００は、完全公開ボタン５１１、権限内公開ボタン５１２、非公開ボタン５１３、公開先設定領域５２０、公開アプリ設定領域５３０、及び登録ボタン５４０等より構成される。
【００５９】
完全公開ボタン５１１、権限内公開ボタン５１２及び非公開ボタン５１３は、マクロを完全公開とするか、権限内公開とするか、又は非公開とするかを選択させるためのボタンである。完全公開ボタン５１１又は権限内公開ボタン５１２が押下されると、マクロは公開対象とされ、公開先設定領域５２０及び公開アプリ設定領域５３０が入力可能となる。
【００６０】
公開先設定領域５２０は、マクロの公開先を選択させるための領域であり、全利用者を公開先として選択させるためのボタン５２１と、ユーザ又はグループごとに公開先を選択させるためのボタン５２２〜５２７が配置されている。なお、ボタン５２２〜５２７は、ステップＳ１０８において取得されたユーザ情報に基づいて表示される。
【００６１】
公開アプリ設定領域５３０は、公開アプリを設定させるための領域であり、実行されたジョブにおいて利用されたアクティビティごとに、公開アプリとして選択せるためのボタン５３１及び５３２が配置されている。
【００６２】
マクロ公開情報設定画面５００において、マクロの公開情報が設定され登録ボタン５４０が押下されると、リクエスト定義部２７は、マクロＩＤに基づいて、設定された公開情報をマクロ情報に登録する（Ｓ１１０）。
【００６３】
図１１は、登録されたマクロ情報の例を示す図である。図１１に示されるマクロ情報５０ａでは、動作条件情報５１ａとして、アクティビティＡ、フィルタＡ、アクティビティＢ、及びフィルタＢの動作条件が設定されている。すなわち、マクロ情報５０ａに係るマクロは、これらのアクティビティ又はフィルタによって構成されるアプリケーションを再利用させるためのものである。公開設定は、「権限内公開」とされている。また、公開アプリは、アクティビティＡに制限されている。また、公開先情報５２ａによって、公開先はユーザＡ、ユーザＤ、及びグループＡに制限されている。
【００６４】
続いて、マクロを実行する際の処理手順について説明する。図１２は、マクロ実行時の処理手順を説明するためのシーケンス図である。図１２の処理の前提として、カレントユーザは、セッション管理部２２によって認証されている。
【００６５】
例えば、オペレーションパネル６０２に表示されたマクロ選択画面において、ユーザによって実行対象とされるマクロが選択され、実行の開始が指示（スタートキーが押下）されると、ＵＩ部２５は、選択されたマクロ（以下、「カレントマクロ」という。）のマクロＩＤを伴って、カレントマクロの実行をリクエスト管理部２３に要求する（Ｓ２０１）。なお、マクロ選択画面は、ＵＩ部２５が、データ管理部２６に登録されているマクロ情報の一覧に基づいて表示させる。
【００６６】
続いて、リクエスト管理部２３は、カレントマクロの実行要求を行ったユーザ（カレントユーザ）のチケットをセッション管理部２２より取得する（Ｓ２０２、Ｓ２０３）。続いて、リクエスト管理部２３は、カレントマクロのマクロＩＤと、カレントユーザのチケットとを伴って、カレントマクロの実行をリクエスト定義部２７に要求する（Ｓ２０４）。
【００６７】
リクエスト定義部２７は、マクロＩＤに基づいて、カレントマクロのマクロ情報をデータ管理部２６より取得する（Ｓ２０５、Ｓ２０６）。リクエスト定義部２７は、取得されたマクロ情報の動作条件情報５１を解析し、カレントマクロにおいて利用される（実行対象とされる）アクティビティ、フィルタ、及びそれぞれの動作条件を判定する。解析結果に基づいて、リクエスト定義部２７は、各アクティビティ、フィルタに対して動作条件情報５１に登録されている動作条件を設定する（Ｓ２０７）。なお、図１２では、コピーアクティビティ１０１が、カレントマクロより利用されるアクティビティとされている。この場合、厳密には、コピーアクティビティ１０１によって利用される各フィルタについても、動作条件の設定は行われる。
【００６８】
続いて、リクエスト定義部２７は、動作条件情報５１に基づいて、カレントマクロより利用されるアクティビティ（コピーアクティビティ１０１）に対してジョブの実行を要求する（Ｓ２０８）。この際、リクエスト定義部２７は、マクロ識別子をパラメータとしてコピーアクティビティ１０１に引き渡す。
【００６９】
続いて、コピーアクティビティ１０１は、カレントユーザによるコピーアクティビティ１０１の利用権限の有無をアクセス制御部４２に問い合わせる（Ｓ２０９）。この際、コピーアクティビティ１０１は、マクロ識別子をパラメータとしてアクセス制御部４２に引き渡す。
【００７０】
続いて、アクセス制御部４２は、コピーアクティビティ１０１がマクロより実行されているか否かをマクロ識別子の有無に基づいて判定する（Ｓ２１０）。すなわち、各アクティビティ及びフィルタは、マクロからの実行か否かを問わず、実行が要求されたときに常に利用権限の問い合わせをアクセス制御部４２に行うが、マクロから実行される場合は、上述のようにマクロ識別子がアクセス制御部４２に引き渡される。したがって、アクセス制御部４２は、マクロ識別子がパラメータとして引き渡されている場合は、マクロからの実行であると判定する。
【００７１】
マクロからの実行である場合、アクセス制御部４２は、リクエスト定義部２７よりカレントマクロのマクロ情報を取得し（Ｓ２１１）、当該マクロ情報における公開情報を確認する（Ｓ２１２）。具体的には、マクロ情報の公開設定を参照し、完全公開、権限内公開、又は非公開であるかに応じて処理を分岐させる。
【００７２】
完全公開である場合、アクセス制御部４２は、マクロ情報の公開先情報５２に設定されている公開先にカレントユーザが含まれているか、また、コピーアクティビティ１０１が公開アプリに含まれているかを判定し（Ｓ２２１）、その判定結果に応じて、利用権限の有無をコピーアクティビティ１０１に応答する（Ｓ２２２）。すなわち、カレントユーザが公開先に含まれており、かつ、コピーアクティビティ１０１が公開アプリに含まれていれば、利用権限は有る旨が応答される。また、カレントユーザが公開先に含まれていないか、又は、コピーアクティビティ１０１が公開アプリに含まれていなければ、利用権限は無い旨が応答される。
【００７３】
このように、完全公開の場合は、カレントユーザによるコピーアクティビティ１０１に対する利用権限は判断されることなく、マクロがカレントユーザに公開されているか否かに応じて、コピーアクティビティ１０１に対する利用権限がカレントユーザに与えられる。
【００７４】
一方、権限内公開である場合、アクセス制御部４２は、マクロ情報の公開先情報５２に設定されている公開先にカレントユーザが含まれているか、また、コピーアクティビティ１０１が公開アプリに含まれているかを判定する（Ｓ２３１）。カレントユーザが公開先に含まれており、かつ、コピーアクティビティ１０１が公開アプリに含まれている場合、アクセス制御部４２は、カレントユーザのチケットを破棄し（Ｓ２３２）、マクロ情報に含まれているカレントマクロの作成者のチケットに基づいて当該作成者の利用権限情報の取得をリポジトリサービス２１に要求する（Ｓ２３３）。リポジトリサービス２１は、データ管理部２６より当該作成者の利用権限情報を取得し（Ｓ２３４、Ｓ２３５）、取得された利用権限情報をアクセス制御部４２に出力する（Ｓ２３６）。
【００７５】
アクセス制御部４２は、当該利用権限情報に基づいて、カレントマクロの作成者によるコピーアクティビティ１０１に対する利用権限の有無を判定し（Ｓ２３７）、その判定結果をコピーアクティビティ１０１に応答する（Ｓ２３８）。なお、ステップＳ２３７において、カレントユーザが公開先に含まれていないか、又はコピーアクティビティ１０１が公開アプリに含まれていないと判定された場合、アクセス制御部４２は、利用権限が無い旨をコピーアクティビティ１０１に応答する。
【００７６】
このように、権限内公開の場合、作成者の利用権限及びマクロがカレントユーザに公開されているか否かに応じて、コピーアクティビティ１０１に対する利用権限がカレントユーザに与えられる。
【００７７】
更に、マクロが非公開の場合、アクセス制御部４２は、マクロ情報の作成者名又はユーザＩＤと、カレントユーザのユーザ名又はユーザＩＤとを照合することにより、カレントユーザがカレントマクロの作成者であるか否かを判定し（Ｓ２４１）、その判定結果に応じて利用権限の有無をコピーアクティビティ１０１に応答する（Ｓ２４２）。すなわち、カレントユーザが作成者であれば、利用権限は有る旨が応答され、作成者でなければ、利用権限は無い旨が応答される。
【００７８】
このように、マクロが非公開の場合、マクロの作成者に対してのみコピーアクティビティ１０１に対する利用権限が与えられる。なお、マクロが非公開の場合は、カレントユーザが作成者以外の場合、マクロ選択画面に当該マクロを選択候補として表示させないようにしてもよい。
【００７９】
なお、上記では、便宜上コピーアクティビティ１０１のみに対する利用権限の判定について説明したが、コピーアクティビティ１０１より利用される各フィルタ等についても、同様にステップＳ２０９以降の処理が実行される。
【００８０】
上述したように、本実施の形態における複合機１０１によれば、本来であれば利用権限の無い資源についても、マクロに定義された利用条件（動作条件）の範囲内で利用が許可される。したがって、例えば、業務の遂行上、所定の条件に限って利用を許可したい場合等、当該所定の条件に係るマクロを定義することにより、業務を円滑に進めることができる。
【００８１】
また、マクロは、ユーザ単位で公開する（利用を許可する）ことができるため、信頼できるユーザのみにマクロを利用させることができる。したがって、マクロを介して利用権限のない資源が利用可能になることによるセキュリティの劣化を抑制することができる。
【００８２】
また、複数の資源を利用するマクロについては、公開の範囲を一部の資源に限定することができるため、マクロを介した資源の利用について、適切にセキュリティを確保することができる。
【００８３】
次に、公開されたマクロの利用量（利用回数）に制限（上限）を設けた例を第二の実施の形態として説明する。なお、第二の実施の形態では第一の実施の形態と異なる点について説明する。したがって、特に言及しない点については第一の実施の形態と同様でよい。
【００８４】
図１３は、第二の実施の形態の画像形成装置におけるソフトウェア構成例を示す図である。図１３中、図２と同一部分には同一符号を付し、その説明は省略する。同図の複合機１の運用部４０には履歴管理部４３が追加されている。
【００８５】
履歴管理部４３は、複合機１における各種の動作の履歴情報を管理する。本実施の形態において履歴管理部４３は、マクロの利用に関するカウンタの値をＨＤＤ６３３等の記憶装置を用いて管理する。マクロの利用に関するカウンタとしては、マクロ単位（マクロ毎に一つ）のカウンタ、各マクロに対するユーザ・グループごとのカウンタ、各マクロのアプリケーション（アクティビティ）ごとのカウンタがある。これらのカウンタの更新は、マクロ実行時（図１２）におけるリクエスト定義部２７からの要求に応じて行われる。すなわち、ステップＳ２０８による実行要求に応じて、アクティビティ（コピーアクティビティ１０１）が正常に実行された場合、リクエスト定義部２７は、現在実行中のマクロＩＤと当該アクティビティの識別名とを履歴管理部４３に通知する。履歴管理部４３は、通知されたマクロＩＤに係る当該アクティビティに対するカウンタをインクリメント（１つカウントアップ）する。
【００８６】
また、公開された範囲でマクロの実行が成功した場合、リクエスト定義部２７は、当該マクロのマクロＩＤとカレントユーザのユーザＩＤ及びグループＩＤ（グループの識別子）を履歴管理部４３に通知する。履歴管理部４３は、通知されたマクロＩＤに係るマクロ単位のカウンタをインクリメントすると共に、当該マクロに係る当該ユーザのカウンタ及び当該グループのカウンタをインクリメントする。
【００８７】
マクロの利用量の制限は、図８のステップＳ１０９において表示されるマクロ公開情報設定画面において設定可能とされる。図１４は、第二の実施の形態のマクロ公開情報設定画面の表示例を示す図である。図１４中、図１０と同一部分には同一符号を付し、その説明は省略する。
【００８８】
図１４のマクロ公開情報設定画面５００ａには、利用回数上限設定単位選択領域５５０が追加されている。利用回数上限設定単位選択領域５５０は、マクロの利用回数の上限値の設定単位を選択させるための領域である。本実施の形態では、マクロ単位、ユーザ・グループ単位、又はアプリケーション単位のいずれかを、マクロの利用回数の上限値の設定単位として択一的に選択することができる。
【００８９】
設定単位としてマクロが選択された場合、マクロの利用回数の上限値は、当該マクロ（マクロ公開情報設定画面５００ａにおいて公開情報の設定対象とされているマクロ）に対して一つ設定される。したがって、複数のユーザによって当該マクロが利用される場合、当該複数のユーザの合計利用回数と上限値との比較が行われる。
【００９０】
設定単位としてユーザ・グループが選択された場合、上限値は、ユーザ又はグループごとに設定される。したがって、複数のユーザによって当該マクロが利用される場合、ユーザ又はグループごとに利用回数と上限値との比較が行われる。
【００９１】
設定単位としてアプリケーションが選択された場合、上限値は、当該マクロに属するアクティビティごとに設定される。したがって、複数のユーザによって当該マクロが利用される場合、アクティビティごとに複数のユーザによる合計利用回数（マクロを介した利用回数）と上限値との比較が行われる。
【００９２】
なお、いずれの場合も、マクロの作成者に対して利用回数の制限は課せられない。当該制限はマクロの公開先のユーザ又はグループに対して適用される。
【００９３】
利用回数上限設定単位選択領域５５０においていずれかの設定単位がラジオボタンを介して選択された後、登録ボタン５４０が押下されると、ＵＩ部２５は、利用回数上限設定画面をオペレーションパネル６０２に表示させる。
【００９４】
図１５は、第二の実施の形態における利用回数上限設定画面の表示例を示す図である。
【００９５】
同図において、利用回数上限設定画面５６０ａは、設定単位としてマクロが選択された場合に表示される画面である。当該画面ではマクロに対する利用回数の上限値の入力が可能とされている。
【００９６】
また、利用回数上限設定画面５６０ｂは、設定単位としてユーザ・グループが選択された場合に表示される画面である。当該画面ではマクロ公開情報設定画面５００ａの公開先設定領域５２０において公開先として選択されたユーザ又はグループごとにマクロに対する利用回数の上限値の入力が可能とされている。上限値が入力されないユーザ又はグループについては、上限値は設定されない（すなわち、利用回数は制限されない。）。
【００９７】
また、利用回数上限設定画面５６０ｂは、設定単位としてアプリケーションが選択された場合に表示される画面である。当該画面ではマクロ公開情報設定画面５００ａの公開アプリ設定領域５３０において公開アプリとして選択されたアクティビティごとに利用回数の上限値の入力が可能とされている。上限値が入力されないアクティビティについては、上限値は設定されない。
【００９８】
いずれかの利用回数上限設定画面５６０において上限値が入力され、ＯＫボタンが押下されると、ステップＳ１１０に進み（図８）、リクエスト定義部２７は、マクロＩＤに基づいて、設定された公開情報をマクロ情報に登録する。
【００９９】
図１６は、第二の実施の形態において登録されたマクロ情報の例を示す図である。図１６の登録内容は図１１の登録内容とほぼ同様である。但し、公開設定、公開アプリ、公開先情報５２ａの登録内容が異なる。
【０１００】
すなわち、利用回数の上限値の設定単位としてマクロが選択され、利用回数上限設定画面５６０ａにおいて上限値が入力された場合、公開設定に当該上限値が登録される。図中では（）内の数値（「２０」）が当該上限値を示す。
【０１０１】
また、利用回数の上限値の設定単位としてアプリケーションが選択され、利用回数上限設定画面５６０ｃにおいて上限値が入力された場合、公開アプリにアクティビティごとの上限値が登録される。図中では、（）内の数値（「１５」）が当該上限値を示す。
【０１０２】
また、利用回数の上限値の設定単位としてユーザ・グループが選択され、利用回数上限設定画面５６０ｂにおいて上限値が入力された場合、公開先情報５２ａにユーザ又はグループごとの上限値が登録される。同様に、（）内の数値が各ユーザ又はグループに対する上限値を示す。
【０１０３】
利用回数のチェック（利用回数と上限値との比較）は、図１２のステップＳ２２１及びＳ２３７の後（すなわち、公開先にカレントユーザが含まれており、かつ、マクロが利用するアクティビティ（図１２ではコピーアクティビティ１０１）が公開アプリに含まれていることが判定された後）に実行される。
【０１０４】
図１７は、マクロに関する利用回数のチェック処理を説明するためのフローチャートである。
【０１０５】
ステップＳ３０１において、アクセス制御部４２は、カレントユーザのチケットとカレントマクロのマクロ情報５０ａ（図１６）の作成者とに基づいて、カレントユーザがカレントマクロの作成者であるか否かを判定する。なお、第二の実施の形態では、ステップＳ２３２においてカレントユーザのチケットの破棄は行わない。カレントユーザがカレントマクロの作成者である場合は（Ｓ３０１でＮｏ）、利用回数によるチェックは行われない。カレントユーザがカレントマクロの作成者である場合（Ｓ３０１でＹｅｓ）、アクセス制御部４２は、マクロ情報５０ａに基づいて利用回数の上限値の設定単位を判定する（Ｓ３０２）。
【０１０６】
マクロ情報５０ａの公開設定に上限値が登録されている場合、すなわち、上限値の設定単位がマクロである場合（Ｓ３０２で「マクロ」）、アクセス制御部４２は、当該上限値を取得する（Ｓ３０３）。続いて、アクセス制御部４２は、履歴管理部４３よりカレントマクロのマクロ単位のカウンタの値を取得し、当該値を上限値に対する比較値とする（Ｓ３０４）。
【０１０７】
一方、マクロ情報５０ａの公開先情報５２ａに上限値が登録されている場合、すなわち、上限値の設定単位がユーザ又はグループである場合（Ｓ３０２で「ユーザ・グループ」）、アクセス制御部４２は、公開先情報５２ａにおいてカレントユーザに対して上限値が設定されているか否かを判定する（Ｓ３０５）。カレントユーザに対して上限値が設定されている場合（Ｓ３０５でＹｅｓ）、アクセス制御部４２は当該上限値を取得する（Ｓ３０６）。続いて、アクセス制御部４２は、履歴管理部４３よりカレントマクロに係るカレントユーザのカウンタの値を取得し、当該値を上限値に対する比較値とする（Ｓ３０７）。カレントユーザに対して上限値が設定されていない場合（Ｓ３０５でＮｏ）、アクセス制御部４２は、公開先情報５２ａにおいてカレントユーザが属するグループ（カレントグループ）に対して上限値が設定されているか否かを判定する（Ｓ３０８）。なお、カレントグループは、例えば、複合機１において管理されるユーザ情報におけるユーザとグループとの対応情報に基づいて判定される。カレントグループに対して上限値が設定されている場合（Ｓ３０８でＹｅｓ）、アクセス制御部４２は当該上限値を取得する（Ｓ３０９）。続いて、クセス制御部４２は、履歴管理部４３よりカレントマクロに係るカレントグループのカウンタの値を取得し、当該値を上限値に対する比較値とする（Ｓ３１０）。
【０１０８】
更に、マクロ情報５０ａの公開アプリに上限値が登録されている場合、すなわち、上限値の設定単位がアプリケーションである場合（Ｓ３０２で「アプリケーション」）、アクセス制御部４２は、マクロ情報５０ａの公開アプリにおいてカレントアプリ（権限判断（図１２：Ｓ２０９）の対象とされているアプリケーション（アクティビティ））に上限値が設定されているか否かを判定する（Ｓ３１１）。カレントアプリに上限値が設定されている場合（Ｓ３１１でＹｅｓ）、アクセス制御部４２は当該上限値を取得する（Ｓ３１２）。続いて、クセス制御部４２は、履歴管理部４３よりカレントマクロに係るカレントアプリのカウンタの値を取得し、当該値を上限値に対する比較値とする（Ｓ３１３）。
【０１０９】
ステップＳ３０４、Ｓ３１０、又はＳ３１３に続いて、アクセス制御部４２は、比較値と上限値とを比較する（Ｓ３１４）。比較値が上限値を超える場合（Ｓ３１４でＹｅｓ）、アクセス制御部４２は、カレントマクロの利用を制限すべきと判断する（Ｓ３１５）。一方、比較値が上限値以下である場合（Ｓ３１４でＮｏ）、カレントグループに上限値が設定されていない場合（Ｓ３０８でＮｏ）、又はカレントアプリに上限値が設定されていない場合（Ｓ３１１でＮｏ）、アクセス制御部４２は、カレントマクロの利用の制限は必要ないと判定する。
【０１１０】
カレントマクロの利用を制限すべきと判断した場合、アクセス制御部４２は、図１２のステップＳ２２２又はＳ２３７において、利用権限はない旨をカレントアプリ（コピーアクティビティ１０１）に応答する。したがって、この場合、カレントアプリは実行されない。また、マクロに属する各アプリが実行されない場合は、マクロ全体の処理が実行されない。
【０１１１】
但し、利用回数が上限値を超えた場合であっても、処理の実行を中止せずに異なる制限（例えば、課金等）をカレントユーザに課すようにしてもよい。例えば、アクセス制御部４２は、課金を行う旨のメッセージの表示をＵＩ部２５に実行させる。当該メッセージに対してユーザより了承の旨の入力が行われたら、処理を実行する。なお、当該メッセージは、カレントユーザのメールアドレスに対してメールとして送信するようにしてもよい。メールによって送信する場合、次回から課金が行われることを通知するようにするとよい。
【０１１２】
上述したように、第二の実施の形態によれば、マクロに関する利用回数によってマクロの利用を制限することができる。したがって、より柔軟にマクロの利用を制限することができる。
【０１１３】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【０１１４】
【図１】本発明の実施の形態における画像形成装置のハードウェア構成の一例を示す図である。
【図２】第一の実施の形態の画像形成装置におけるソフトウェア構成例を示す図である。
【図３】パイプ＆フィルタアーキテクチャの概念を説明するための図である。
【図４】本実施の形態の複合機における各機能を実現するためのフィルタの組み合わせの例を示す図である。
【図５】フィルタの構成要素を説明するための図である。
【図６】アクティビティの構成要素を説明するための図である。
【図７】マクロ情報の構成例を示す図である。
【図８】マクロの登録処理を説明するためのフローチャートである。
【図９】マクロの登録処理の様子を示す図である。
【図１０】マクロ公開情報設定画面の表示例を示す図である。
【図１１】登録されたマクロ情報の例を示す図である。
【図１２】マクロ実行時の処理手順を説明するためのシーケンス図である。
【図１３】第二の実施の形態の画像形成装置におけるソフトウェア構成例を示す図である。
【図１４】第二の実施の形態のマクロ公開情報設定画面の表示例を示す図である。
【図１５】第二の実施の形態における利用回数上限設定画面の表示例を示す図である。
【図１６】第二の実施の形態において登録されたマクロ情報の例を示す図である。
【図１７】マクロに関する利用回数のチェック処理を説明するためのフローチャートである。
【符号の説明】
【０１１５】
１          複合機
１０        アプリケーションメカニズム
２０        サービスメカニズム
２１        リポジトリサービス
２２        セッション管理部
２３        リクエスト管理部
２４        通信部
２５        ＵＩ部
２６        データ管理部
２７        リクエスト定義部２７
３０        デバイスメカニズム
４０        運用部
４１        プラグイン管理部
４２        アクセス制御部
４３        履歴管理部
１０１      コピーアクティビティ
１０２      送信アクティビティ
１０３      ファクスアクティビティ
１１１      読取フィルタ
１１２      保管文書読出フィルタ
１１３      メール受信フィルタ
１１４      ファクス受信フィルタ
１２１      文書加工フィルタ
１２２      文書変換フィルタ
１３１      印刷フィルタ
１３２      保管文書登録フィルタ
１３３      メール送信フィルタ
１３４      ファクス送信フィルタ
６０４      撮像部
６０５      印刷部
６０１      コントローラ
６０２      オペレーションパネル
６０３      ファクシミリコントロールユニット
６１１      ＣＰＵ
６１２      ＡＳＩＣ
６２１      ＮＢ
６２２      ＳＢ
６３１      ＭＥＭ−Ｐ
６３２      ＭＥＭ−Ｃ
６３３      ＨＤＤ
６３４      メモリカードスロット
２３５      メモリカード
６４１      ＮＩＣ
６４２      ＵＳＢデバイス
６４３      ＩＥＥＥ１３９４デバイス
６４４      セントロニクスデバイス
【図１】
0005266881.tif 000002
【図２】
0005266881.tif 000003
【図３】
0005266881.tif 000004
【図４】
0005266881.tif 000005
【図５】
0005266881.tif 000006
【図６】
0005266881.tif 000007
【図７】
0005266881.tif 000008
【図８】
0005266881.tif 000009
【図９】
0005266881.tif 000010
【図１０】
0005266881.tif 000011
【図１１】
0005266881.tif 000012
【図１２】
0005266881.tif 000013
【図１３】
0005266881.tif 000014
【図１４】
0005266881.tif 000015
【図１５】
0005266881.tif 000016
【図１６】
0005266881.tif 000017
【図１７】
0005266881.tif 000018