(57)【要約】【課題】複数のフィルタを組み合わせてアクティビティを実現するタイプの画像処理装置において、フィルタの組み合わせや順番に拠らず、各フィルタを実現するソフトウェアモジュールが機器のリソースを不正に使用できないよう一元管理することのできる画像処理装置を提供する。【解決手段】複数のフィルタを組み合わせてアクティビティを実現するタイプの画像処理装置であって、アクティビティの生成時もしくはフィルタの追加時に、実行時にアクティビティに含まれるフィルタの使用リソースにつきアクセス権があるか否か確認する機能を有する仮想フィルタを組み込む手段を備える。【選択図】図５
2008158752.tif 000002
【特許請求の範囲】
【請求項１】
複数のフィルタを組み合わせてアクティビティを実現するタイプの画像処理装置であって、
アクティビティの生成時もしくはフィルタの追加時に、実行時にアクティビティに含まれるフィルタの使用リソースにつきアクセス権があるか否か確認する機能を有する仮想フィルタを組み込む手段を備えたことを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
上記仮想フィルタを組み込む手段は、アクティビティに含まれるフィルタの先頭に仮想フィルタを組み込むことを特徴とする画像処理装置。
【請求項３】
請求項１に記載の画像処理装置において、
上記仮想フィルタを組み込む手段は、アクティビティに含まれる各フィルタの前に仮想フィルタを組み込むことを特徴とする画像処理装置。
【請求項４】
請求項１に記載の画像処理装置において、
上記アクティビティは個々のフィルタを指定することにより新規に作成することを特徴とする画像処理装置。
【請求項５】
請求項１に記載の画像処理装置において、
上記アクティビティはテンプレートに基づいて作成することを特徴とする画像処理装置。
【請求項６】
請求項１に記載の画像処理装置において、
上記仮想フィルタは、アクティビティに含まれる各フィルタのアクセス権を一括に確認し、その後に実行を行うことを特徴とする画像処理装置。
【請求項７】
請求項１に記載の画像処理装置において、
上記仮想フィルタは、アクティビティに含まれる各フィルタのアクセス権を確認する毎にフィルタの実行を行い、後続のフィルタへの実行要求を仮想フィルタが中継することを特徴とする画像処理装置。
【請求項８】
請求項１に記載の画像処理装置において、
上記仮想フィルタは、アクセス権の確認を各フィルタから使用リソースを取得して自ら行うことを特徴とする画像処理装置。
【請求項９】
請求項１に記載の画像処理装置において、
上記仮想フィルタは、アクセス権の確認を各フィルタに依頼して行わせることを特徴とする画像処理装置。
【請求項１０】
複数のフィルタを組み合わせてアクティビティを実現するタイプの画像処理装置におけるリソースへのアクセス制御方法であって、
アクティビティの生成時もしくはフィルタの追加時に、実行時にアクティビティに含まれるフィルタの使用リソースにつきアクセス権があるか否か確認する機能を有する仮想フィルタを組み込む工程を備えたことを特徴とするアクセス制御方法。
【請求項１１】
複数のフィルタを組み合わせてアクティビティを実現するタイプの画像処理装置におけるリソースへのアクセス制御プログラムであって、
アクティビティの生成時もしくはフィルタの追加時に、実行時にアクティビティに含まれるフィルタの使用リソースにつきアクセス権があるか否か確認する機能を有する仮想フィルタを組み込む機能をコンピュータに実現させることを特徴とするアクセス制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＭＦＰ（Multi Function Printer）等の画像処理装置に関する。
【背景技術】
【０００２】
ＭＦＰ等の画像処理装置にあっては、処理の実行に伴い各種のリソース（機器の管理する情報やサービス）を使用する。例えば、ＦＡＸ送信を行う場合にはアドレス帳情報を使用する。
【０００３】
セキュリティ上の要請から、処理の実行に際してこれらのリソースを使用する権限があるか否かを判断し、使用の許否を制御している（アクセス制御）。
【０００４】
従来のＭＦＰは、コピーアプリケーション、ＦＡＸアプリケーション、スキャナアプリケーション等のアプリケーション層と、アプリケーション層の各アプリケーションに機能を提供するサービス層とを備えており、アプリケーションの実行時にサービス層の機能を呼び出すことで処理を実行していた。従って、アプリケーションの実行開始時にアプリケーションのジョブを構成する機能と順番は静的に定まっていた。従って、アクセス制御はアプリケーションを単位に管理すれば済んでいた。
【０００５】
一方、特許文献１には、不正アクセス検知モジュールへの接続状態を確認し、接続していなければデータの読み出しを防止する技術が開示されている。
【０００６】
また、特許文献２には、特定アプリケーションが存在する場合に内蔵時計の調整を禁止するなどの制限手段を設ける技術が開示されている。
【特許文献１】特開２００２−４１３６２号公報
【特許文献２】特開２００６−１５５０２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、前述したソフトウェアアーキテクチャに代え、プラグイン化されたアクティビティ（一連の処理）とフィルタ（機能）により、柔軟な機能追加が可能なＭＦＰが提案されている。
【０００８】
図１はアクティビティとフィルタの関係の例を示す図であり、フィルタＦ１とフィルタＦ２とを組み合わせることでアクティビティＡが構成される例を示している。このように、新しいＭＦＰでは、予め用意された複数のフィルタを組み合わせて実行したり、登録しておいて後から呼び出したりことができる。また、ＳＤＫ（Software Development Kit）等で外部ベンダーがソフトウェアモジュールを独自に追加・拡張することもできる。
【０００９】
このような新しいＭＦＰでは、組み合わせたフィルタによって必要なリソースが変わってくるだけでなく、未知の機能が組み合わされる可能性があるため、アクセス権の判定が難しくなり、アクセス権の一元管理が困難となる。
【００１０】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、複数のフィルタを組み合わせてアクティビティを実現するタイプの画像処理装置において、フィルタの組み合わせや順番に拠らず、各フィルタを実現するソフトウェアモジュールが機器のリソースを不正に使用できないよう一元管理することのできる画像処理装置を提供することにある。
【課題を解決するための手段】
【００１１】
上記の課題を解決するため、本発明にあっては、請求項１に記載されるように、複数のフィルタを組み合わせてアクティビティを実現するタイプの画像処理装置であって、アクティビティの生成時もしくはフィルタの追加時に、実行時にアクティビティに含まれるフィルタの使用リソースにつきアクセス権があるか否か確認する機能を有する仮想フィルタを組み込む手段を備える画像処理装置を要旨としている。
【００１２】
また、請求項２に記載されるように、請求項１に記載の画像処理装置において、上記仮想フィルタを組み込む手段は、アクティビティに含まれるフィルタの先頭に仮想フィルタを組み込むようにすることができる。
【００１３】
また、請求項３に記載されるように、請求項１に記載の画像処理装置において、上記仮想フィルタを組み込む手段は、アクティビティに含まれる各フィルタの前に仮想フィルタを組み込むようにすることができる。
【００１４】
また、請求項４に記載されるように、請求項１に記載の画像処理装置において、上記アクティビティは個々のフィルタを指定することにより新規に作成するようにすることができる。
【００１５】
また、請求項５に記載されるように、請求項１に記載の画像処理装置において、上記アクティビティはテンプレートに基づいて作成するようにすることができる。
【００１６】
また、請求項６に記載されるように、請求項１に記載の画像処理装置において、上記仮想フィルタは、アクティビティに含まれる各フィルタのアクセス権を一括に確認し、その後に実行を行うようにすることができる。
【００１７】
また、請求項７に記載されるように、請求項１に記載の画像処理装置において、上記仮想フィルタは、アクティビティに含まれる各フィルタのアクセス権を確認する毎にフィルタの実行を行い、後続のフィルタへの実行要求を仮想フィルタが中継するようにすることができる。
【００１８】
また、請求項８に記載されるように、請求項１に記載の画像処理装置において、上記仮想フィルタは、アクセス権の確認を各フィルタから使用リソースを取得して自ら行うようにすることができる。
【００１９】
また、請求項９に記載されるように、請求項１に記載の画像処理装置において、上記仮想フィルタは、アクセス権の確認を各フィルタに依頼して行わせるようにすることができる。
【００２０】
また、請求項１０に記載されるように、複数のフィルタを組み合わせてアクティビティを実現するタイプの画像処理装置におけるリソースへのアクセス制御方法であって、アクティビティの生成時もしくはフィルタの追加時に、実行時にアクティビティに含まれるフィルタの使用リソースにつきアクセス権があるか否か確認する機能を有する仮想フィルタを組み込む工程を備えるアクセス制御方法として構成することができる。
【００２１】
また、請求項１１に記載されるように、複数のフィルタを組み合わせてアクティビティを実現するタイプの画像処理装置におけるリソースへのアクセス制御プログラムであって、アクティビティの生成時もしくはフィルタの追加時に、実行時にアクティビティに含まれるフィルタの使用リソースにつきアクセス権があるか否か確認する機能を有する仮想フィルタを組み込む機能をコンピュータに実現させるアクセス制御プログラムとして構成することができる。
【発明の効果】
【００２２】
本発明の画像処理装置にあっては、複数のフィルタを組み合わせてアクティビティを実現するタイプの画像処理装置において、フィルタの生成時に実行段階で意識されない仮想フィルタを組み込み、実行時に仮想フィルタの主導のもとにアクセス制御を行うことにより、フィルタの組み合わせや順番に拠らず、各フィルタを実現するソフトウェアモジュールが機器のリソースを不正に使用できないよう一元管理することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の好適な実施形態につき説明する。
【００２４】
＜アクティビティとフィルタ＞
図２は仮想フィルタの組み込みのパターンの例を示す図であり、（ａ）はアクティビティＡを構成するフィルタＦ１、Ｆ２の先頭（フィルタＦ１の前）に仮想フィルタＶＦを組み込む場合の例を示し、（ｂ）はアクティビティＡを構成するフィルタＦ１、Ｆ２のそれぞれの前に仮想フィルタＶＦ１、ＶＦ２を組み込む場合の例を示している。
【００２５】
図３はアクティビティから見たフィルタの例を示す図であり、（ａ）は仮想フィルタを組み込まない状態でアクティビティＡから先頭のフィルタＦ１が見える状態、（ｂ）は仮想フィルタを組み込んだ状態でアクティビティＡから先頭の仮想フィルタＶＦが見える状態であるが、仮想フィルタＶＦはフィルタの一種であることに変わりはないことから、アクティビティＡから見た違いはない。
【００２６】
＜システム構成＞
図４は本発明の一実施形態にかかる画像処理装置の構成例を示す図である。
【００２７】
図４において、画像処理装置１は、アクセス制御、履歴、課金等の横断的に利用される機能を含むアスペクト２と、通信サーバ、リモートＵＩ（User Interface）、ローカルＵＩ等の機能を含むユーザインタフェース３と、セッション管理、リクエスト管理、機内監視、プラグイン管理等の機能を含むコントロール４と、各種フィルタ、各種情報を含むアプリケーションロジック５と、画像認識、画像パイプ、データ管理、ＤＢＭＳ（Database Management System）、通信クライアント等の機能を含むデバイスサービス６と、スキャナ、プロッタ、メモリ等のデバイスドライバを含むデバイス７と、ハードウェアであるエンジン８とを備えている。
【００２８】
図５は実施形態の要部となる機能部の構成例を示す図である。
【００２９】
図５において、画像処理装置１は、ユーザインタフェースを制御するＵＩ制御部１１と、ＵＩ制御部１１からの指示により作成（インスタンスの作成）され、実行対象となるアクティビティ（要求生成部）１２（Ａ）と、アクティビティ１２の作成に際して参照可能（必須ではない）なテンプレートを保持するテンプレート情報管理部１３と、アクティビティ１２からの要求によりフィルタの生成等を行うリクエスト管理部１４と、実際の機能を処理するフィルタ（機能処理部）１５（Ｆ）と、処理実行時にアクセス権の確認を行うアクセス制御部１６と、アクセス制御情報を保持するアクセス制御情報管理部１７とを備えている。
【００３０】
ＵＩ制御部１１は図４のユーザインタフェース３におけるローカルＵＩに相当し、アクティビティ１２、テンプレート情報管理部１３、リクエスト管理部１４は図４のコントロール４に相当し、フィルタ１５は図４のアプリケーションロジック５のフィルタに相当し、アクセス制御部１６、アクセス制御情報管理部１７は図４のアスペクト２におけるアクセス制御に相当する。なお、テンプレート情報管理部１３およびアクセス制御情報管理部１７は画像処理装置１の外部（ネットワーク上の他の機器）に配置してもよい。
【００３１】
図６は各種管理情報の例を示す図であり、（ａ）はテンプレート情報管理部１３（図５）に保持されるアクティビティテンプレートの例、（ｂ）はアクセス制御情報管理部１７に保持されるアクセス制御判定テーブルの例、（ｃ）は同じくアクセス制御情報管理部１７に保持されるフィルタ・リソース関連テーブルの例である。
【００３２】
（ａ）のアクティビティテンプレートは、「テンプレート」、「変更可否」、「フィルタ」、「使用リソース」等の項目を含んでいる。（ｂ）のアクセス制御判定テーブルは、「ユーザ名」、「ロール」、「リソース名」、「アクセス権」等の項目を含んでいる。（ｃ）のフィルタ・リソース関連テーブルは、「フィルタ名」、「使用リソース」、「アクセス種類」等の項目を含んでいる。
【００３３】
＜動作：アクティビティおよびフィルタの生成時＞
図７〜図９はアクティビティおよびフィルタの生成時の処理例を示すシーケンス図であり、図１０はその際のリクエスト管理部１４の処理例を示すフローチャートである。なお、ここではアクティビティ、フィルタの生成時にアクセス権の確認を行っていないが、登録する際にアクセス権の確認を行うようにしてもよい。
【００３４】
図７は新規のアクティビティをテンプレート（図６（ａ））なしで作成して登録しておく場合であって、フィルタの先頭に仮想フィルタを組み込む場合（図２（ａ）のパターン）の処理例である。
【００３５】
図７において、ユーザの操作に応じＵＩ制御部１１がアクティビティＡをテンプレートなしで作成すると（ステップＳ１０１）、アクティビティＡはリクエスト管理部１４にアクティビティ作成を通知する（ステップＳ１０２）。
【００３６】
次いで、ユーザの操作に応じＵＩ制御部１１において機能＃１、＃２を順次に選択すると（ステップＳ１０３、Ｓ１０４）、ＵＩ制御部１１はアクティビティＡにフィルタ＃１、＃２の登録を要求する（ステップＳ１０５）。
【００３７】
アクティビティＡはリクエスト管理部１４に先ずフィルタ＃１の登録を要求し（ステップＳ１０６）、リクエスト管理部１４はフィルタ登録を開始し（ステップＳ１０７）、仮想フィルタＶＦの生成（ステップＳ１０８）、フィルタＦ１の生成（ステップＳ１０９）を順次行い、アクティビティＡにフィルタ登録結果を通知する（ステップＳ１１０）。
【００３８】
次いで、アクティビティＡはリクエスト管理部１４にフィルタ＃２の登録を要求し（ステップＳ１１１）、リクエスト管理部１４はフィルタ登録を開始し（ステップＳ１１２）、フィルタＦ２の生成（ステップＳ１１３）を行い、アクティビティＡにフィルタ登録結果を通知する（ステップＳ１１４）。
【００３９】
次いで、アクティビティＡはリクエスト管理部１４にアクティビティ登録完了を通知し（ステップＳ１１５）、ＵＩ制御部１１に登録完了を通知し（ステップＳ１１６）、処理を終了する。
【００４０】
図８は新規のアクティビティをテンプレートなしで作成して登録しておく場合であって各フィルタの前に仮想フィルタを組み込む場合（図２（ｂ）のパターン）の処理例である。
【００４１】
図８において、ユーザの操作に応じＵＩ制御部１１がアクティビティＡをテンプレートなしで作成すると（ステップＳ１２１）、アクティビティＡはリクエスト管理部１４にアクティビティ作成を通知する（ステップＳ１２２）。
【００４２】
次いで、ユーザの操作に応じＵＩ制御部１１において機能＃１、＃２を順次に選択すると（ステップＳ１２３、Ｓ１２４）、ＵＩ制御部１１はアクティビティＡにフィルタ＃１、＃２の登録を要求する（ステップＳ１２５）。
【００４３】
アクティビティＡはリクエスト管理部１４に先ずフィルタ＃１の登録を要求し（ステップＳ１２６）、リクエスト管理部１４はフィルタ登録を開始し（ステップＳ１２７）、仮想フィルタＶＦ１の生成（ステップＳ１２８）およびフィルタＦ１の生成（ステップＳ１２９）を順次行い、アクティビティＡにフィルタ登録結果を通知する（ステップＳ１３０）。
【００４４】
次いで、アクティビティＡはリクエスト管理部１４にフィルタ＃２の登録を要求し（ステップＳ１３１）、リクエスト管理部１４はフィルタ登録を開始し（ステップＳ１３２）、仮想フィルタＶＦ２の生成（ステップＳ１３３）およびフィルタＦ２の生成（ステップＳ１３４）を順次行い、アクティビティＡにフィルタ登録結果を通知する（ステップＳ１３５）。
【００４５】
次いで、アクティビティＡはリクエスト管理部１４にアクティビティ登録完了を通知し（ステップＳ１３６）、ＵＩ制御部１１に登録完了を通知し（ステップＳ１３７）、処理を終了する。
【００４６】
図９は新規のアクティビティをテンプレートを用いて作成し、それに新たなフィルタを追加する場合であって、フィルタの先頭に仮想フィルタを組み込む場合の例である。なお、図８に示したように各フィルタの前に仮想フィルタを組み込むこともできる。
【００４７】
図９において、ユーザの操作に応じＵＩ制御部１１がアクティビティＡをテンプレート（ここでは図６（ａ）のテンプレート＃１）から作成すると（ステップＳ１４１）、アクティビティＡはリクエスト管理部１４にアクティビティ作成を通知する（ステップＳ１４２）。
【００４８】
次いで、アクティビティＡは、テンプレート＃１の設定に従い、リクエスト管理部１４に先ずフィルタ＃１の登録を要求し（ステップＳ１４３）、リクエスト管理部１４はフィルタ登録を開始し（ステップＳ１４４）、仮想フィルタＶＦの生成（ステップＳ１４５）、フィルタＦ１の生成（ステップＳ１４６）を順次行い、アクティビティＡにフィルタ登録結果を通知する（ステップＳ１４７）。
【００４９】
次いで、アクティビティＡはリクエスト管理部１４にフィルタ＃２の登録を要求し（ステップＳ１４８）、リクエスト管理部１４はフィルタ登録を開始し（ステップＳ１４９）、フィルタＦ２の生成（ステップＳ１５０）を行い、アクティビティＡにフィルタ登録結果を通知する（ステップＳ１５１）。
【００５０】
次いで、ユーザの操作に応じＵＩ制御部１１において機能＃３を選択すると（ステップＳ１５２）、ＵＩ制御部１１はアクティビティＡにフィルタ＃３の登録を要求する（ステップＳ１５３）。
【００５１】
アクティビティＡはリクエスト管理部１４にフィルタ＃３の登録を要求し（ステップＳ１５４）、リクエスト管理部１４はフィルタ登録を開始し（ステップＳ１５５）、フィルタＦ３の生成（ステップＳ１５６）を行い、アクティビティＡにフィルタ登録結果を通知する（ステップＳ１５７）。
【００５２】
次いで、アクティビティＡはリクエスト管理部１４にアクティビティ登録完了を通知し（ステップＳ１５８）、ＵＩ制御部１１に登録完了を通知し（ステップＳ１５９）、処理を終了する。
【００５３】
図１０において、リクエスト管理部１４は、アクティビティ作成要求があるまで待機し（ステップＳ１６１、Ｓ１６２）、アクティビティ作成要求があると、フィルタ登録要求があるまで待機する（ステップＳ１６３、Ｓ１６４）。
【００５４】
フィルタ登録要求があると、予めなされた設定からフィルタ毎に仮想フィルタを生成するか否か判断し（ステップＳ１６５）、フィルタ毎に仮想フィルタを生成する場合は仮想フィルタを生成する（ステップＳ１６７）。
【００５５】
フィルタ毎に仮想フィルタを生成しない場合は、このアクティビティの先頭のフィルタであるか否か判断し（ステップＳ１６６）、先頭のフィルタである場合は仮想フィルタを生成する（ステップＳ１６７）。
【００５６】
上記の仮想フィルタの生成（ステップＳ１６６）の後、もしくは、フィルタ毎に仮想フィルタを生成しない場合であってアクティビティの先頭のフィルタでない場合は、要求されたフィルタを生成し（ステップＳ１６８）、アクティビティにフィルタ登録結果を通知し（ステップＳ１６９）、フィルタ登録待ち（ステップＳ１６３）に戻る。これらの処理はアクティビティから登録完了を通知されるまで続ける。
【００５７】
以上の処理により、図２に示したような、アクティビティへの仮想フィルタの組み込みが行われる。
【００５８】
＜動作：アクティビティおよびフィルタの実行時＞
図１１〜図１７はアクティビティおよびフィルタの実行時の処理例を示す図である。
【００５９】
図１１および図１２は、フィルタの先頭に仮想フィルタを組み込む場合（図２（ａ）のパターン）において、仮想フィルタがアクティビティに含まれる各フィルタのアクセス権を一括に確認し、その後に実行を行うものである。なお、各フィルタの前に仮想フィルタを組み込む場合（図２（ｂ）のパターン）にも同様に適用することができる。
【００６０】
図１１はアクティビティおよびフィルタの実行時の処理例を示すシーケンス図であり、図１２はその際の仮想フィルタの処理例を示すフローチャートである。なお、各フィルタ（仮想フィルタを含む）は後続のフィルタを認識しているものとする。
【００６１】
図１１において、アクティビティＡが先頭の仮想フィルタＶＦに実行要求を行うと（ステップＳ２０１）、仮想フィルタＶＦはアクセス権判定を開始する（ステップＳ２０２）。
【００６２】
仮想フィルタＶＦは先ず後続のフィルタＦ１に使用リソース確認依頼を行い（ステップＳ２０３）、フィルタＦ１からリソース確認応答を得る（ステップＳ２０４）。ここではフィルタＦ１の使用リソース「なし」を得るものとする。
【００６３】
次いで、仮想フィルタＶＦはフィルタＦ１に後続フィルタの通知を依頼し（ステップＳ２０５）、フィルタＦ１から後続フィルタ通知を得る（ステップＳ２０６）。ここでは後続フィルタとして「フィルタＦ２（＃２）」を得るものとする。
【００６４】
次いで、仮想フィルタＶＦは後続フィルタ通知から認識したフィルタＦ２に使用リソース確認依頼を行い（ステップＳ２０７）、フィルタＦ２からリソース確認応答を得る（ステップＳ２０８）。ここではフィルタＦ２の使用リソースとして「アドレス帳」を得るものとする。
【００６５】
仮想フィルタＶＦは、使用リソースがあることから、アクセス制御部１６に「アドレス帳」のアクセス権確認を依頼し（ステップＳ２０９）、アクセス制御部１６はアクセス権判定を行い（ステップＳ２１０）、アクセス権確認結果を仮想フィルタＶＦに通知する（ステップＳ２１１）。ここでは「ＯＫ」が通知されるものとする。
【００６６】
次いで、仮想フィルタＶＦはフィルタＦ２に後続フィルタの通知を依頼し（ステップＳ２１２）、フィルタＦ２から後続フィルタ通知を得る（ステップＳ２１３）。ここでは後続フィルタ「なし」を得るものとする。
【００６７】
その結果、仮想フィルタＶＦは後続のフィルタＦ１に実行要求を行い（ステップＳ２１４）、フィルタＦ１は実行処理を行い（ステップＳ２１５）、自己の処理を完了すると後続のフィルタＦ２に実行要求を行い（ステップＳ２１６）、フィルタＦ２は実行処理を行う（ステップＳ２１７）。
【００６８】
フィルタＦ２は自己の処理を完了すると、後続のフィルタがないため、前のフィルタＦ１に実行完了を通知し（ステップＳ２１８）、フィルタＦ１は前の仮想フィルタＶＦに実行完了を通知し（ステップＳ２１９）、仮想フィルタＶＦはアクティビティＡに実行完了を通知し（ステップＳ２２０）、処理を終了する。
【００６９】
図１２において、仮想フィルタＶＦは、アクティビティＡから実行要求を受け付けると（ステップＳ２２１）、後続のフィルタに使用リソースの確認依頼を行い（ステップＳ２２２）、使用リソースがあるか否か判断する（ステップＳ２２３）。
【００７０】
使用リソースがない場合、同じフィルタに後続フィルタの通知依頼を行い（ステップＳ２２４）、後続フィルタがあるか否か判断する（ステップＳ２２５）。
【００７１】
後続フィルタがある場合、その後続フィルタに対して処理を繰り返すものとし（ステップＳ２２６）、使用リソースの確認依頼（ステップＳ２２２）に戻る。
【００７２】
一方、使用リソースがある場合（ステップＳ２２３のＹ）、アクセス制御部１６にアクセス権の確認依頼を行い（ステップＳ２２７）、アクセスがＯＫであるか否か判断する（ステップＳ２２８）。
【００７３】
アクセスがＯＫである場合、後続フィルタの通知依頼（ステップＳ２２４）に進む。
【００７４】
一方、後続フィルタがない場合（ステップＳ２２５のＮ）、現在のフィルタに実行要求を行い（ステップＳ２２９）、全フィルタの実行完了によりアクティビティＡに実行完了を通知し（ステップＳ２３０）、処理を終了する。
【００７５】
一方、アクセスがＯＫでない場合（ステップＳ２２８のＮ）、アクティビティＡに実行不可を通知し（ステップＳ２３１）、処理を終了する。
【００７６】
図１３および図１４は、図１１および図１２の変形例であり、仮想フィルタが使用リソースの取得は行わず、アクセス権の確認を各フィルタに行わせるようにしたものである。
【００７７】
図１３はアクティビティおよびフィルタの実行時の処理例を示すシーケンス図であり、図１４はその際の仮想フィルタの処理例を示すフローチャートである。なお、各フィルタ（仮想フィルタを含む）は後続のフィルタを認識しているものとする。
【００７８】
図１３において、アクティビティＡが先頭の仮想フィルタＶＦに実行要求を行うと（ステップＳ２４１）、仮想フィルタＶＦはアクセス権判定を開始する（ステップＳ２４２）。
【００７９】
仮想フィルタＶＦは先ず後続のフィルタＦ１にアクセス権確認依頼を行い（ステップＳ２４３）、フィルタＦ１はアクセス権判定を行う（ステップＳ２４４）。ここでは使用リソースはないものとすると、実質的なアクセス権確認は行わず、アクセス権確認結果「ＯＫ」を仮想フィルタＶＦに通知する（ステップＳ２４５）。
【００８０】
次いで、仮想フィルタＶＦはフィルタＦ１に後続フィルタの通知を依頼し（ステップＳ２４６）、フィルタＦ１から後続フィルタ通知を得る（ステップＳ２４７）。ここでは後続フィルタとして「フィルタＦ２（＃２）」を得るものとする。
【００８１】
次いで、仮想フィルタＶＦは後続フィルタ通知から認識したフィルタＦ２にアクセス権確認依頼を行い（ステップＳ２４８）、フィルタＦ２はアクセス権判定を行うが、ここでは使用リソースが「アドレス帳」であるとすると、アクセス制御部１６に「アドレス帳」のアクセス権確認を依頼する（ステップＳ２４９）。
【００８２】
アクセス制御部１６はアクセス権判定を行い（ステップＳ２５０）、アクセス権確認結果をフィルタＦ２に通知し（ステップＳ２５１）、フィルタＦ２は仮想フィルタＶＦにアクセス権確認結果を通知する（ステップＳ２５２）。ここではいずれも「ＯＫ」が通知されるものとする。
【００８３】
次いで、仮想フィルタＶＦはフィルタＦ２に後続フィルタの通知を依頼し（ステップＳ２５３）、フィルタＦ２から後続フィルタ通知を得る（ステップＳ２５４）。ここでは後続フィルタ「なし」を得るものとする。
【００８４】
その結果、仮想フィルタＶＦは後続のフィルタＦ１に実行要求を行い（ステップＳ２５５）、フィルタＦ１は実行処理を行い（ステップＳ２５６）、自己の処理を完了すると後続のフィルタＦ２に実行要求を行い（ステップＳ２５７）、フィルタＦ２は実行処理を行う（ステップＳ２５８）。
【００８５】
フィルタＦ２は自己の処理を完了すると、後続のフィルタがないため、前のフィルタＦ１に実行完了を通知し（ステップＳ２５９）、フィルタＦ１は前の仮想フィルタＶＦに実行完了を通知し（ステップＳ２６０）、仮想フィルタＶＦはアクティビティＡに実行完了を通知し（ステップＳ２６１）、処理を終了する。
【００８６】
図１４において、仮想フィルタＶＦは、アクティビティＡから実行要求を受け付けると（ステップＳ２７１）、後続のフィルタにアクセス権の確認依頼を行い（ステップＳ２７２）、アクセスがＯＫであるか否か判断する（ステップＳ２７３）。
【００８７】
アクセスがＯＫの場合、同じフィルタに後続フィルタの通知依頼を行い（ステップＳ２７４）、後続フィルタがあるか否か判断する（ステップＳ２７５）。
【００８８】
後続フィルタがある場合、その後続フィルタに対して処理を繰り返すものとし（ステップＳ２７６）、アクセス権の確認依頼（ステップＳ２７２）に戻る。
【００８９】
一方、後続フィルタがない場合（ステップＳ２７５のＮ）、現在のフィルタに実行要求を行い（ステップＳ２７７）、全フィルタの実行完了によりアクティビティＡに実行完了を通知し（ステップＳ２７８）、処理を終了する。
【００９０】
一方、アクセスがＯＫでない場合（ステップＳ２７３のＮ）、アクティビティＡに実行不可を通知し（ステップＳ２７９）、処理を終了する。
【００９１】
図１５および図１６は、仮想フィルタがアクティビティに含まれる各フィルタのアクセス権を確認する毎にフィルタの実行を行い、後続のフィルタへの実行要求を仮想フィルタが中継するものであり、フィルタの先頭に仮想フィルタを組み込む場合（図２（ａ）のパターン）の処理例である。なお、図１３および図１４に示したようにアクセス権の確認を各フィルタに行わせるようにすることもできる。
【００９２】
図１５はアクティビティおよびフィルタの実行時の処理例を示すシーケンス図であり、図１６はその際の仮想フィルタの処理例を示すフローチャートである。
【００９３】
図１５において、アクティビティＡが先頭の仮想フィルタＶＦに実行要求を行うと（ステップＳ２８１）、仮想フィルタＶＦはアクセス権判定を開始する（ステップＳ２８２）。
【００９４】
仮想フィルタＶＦは先ず後続のフィルタＦ１に使用リソース確認依頼を行い（ステップＳ２８３）、フィルタＦ１からリソース確認応答を得る（ステップＳ２８４）。ここではフィルタＦ１の使用リソース「なし」を得るものとする。
【００９５】
仮想フィルタＶＦは、使用リソースがないことからアクセス権の問題はないとして、フィルタＦ１に実行要求を行い（ステップＳ２８５）、フィルタＦ１は実行処理を行い（ステップＳ２８６）、自己の処理を完了すると後続のフィルタＦ２を指定して仮想フィルタＶＦに実行要求を行う（ステップＳ２８７）。
【００９６】
仮想フィルタＶＦは指定されたフィルタＦ２に使用リソース確認依頼を行い（ステップＳ２８８）、フィルタＦ２からリソース確認応答を得る（ステップＳ２８９）。ここではフィルタＦ２の使用リソースとして「アドレス帳」を得るものとする。
【００９７】
仮想フィルタＶＦは、使用リソースがあることから、アクセス制御部１６に「アドレス帳」のアクセス権確認を依頼し（ステップＳ２９０）、アクセス制御部１６はアクセス権判定を行い（ステップＳ２９１）、アクセス権確認結果を仮想フィルタＶＦに通知する（ステップＳ２９２）。ここでは「ＯＫ」が通知されるものとする。
【００９８】
仮想フィルタＶＦは、アクセス確認結果が「ＯＫ」であることから、フィルタＦ２に実行要求を行い（ステップＳ２９３）、フィルタＦ２は実行処理を行う（ステップＳ２９４）。
【００９９】
フィルタＦ２は後続のフィルタがないことから、後続のフィルタを指定した実行要求は行わず、実行完了を仮想フィルタＶＦに通知し（ステップＳ２９５）、仮想フィルタＶＦはアクティビティＡに実行完了を通知し（ステップＳ２９６）、処理を終了する。
【０１００】
図１６において、仮想フィルタＶＦは、アクティビティＡもしくはフィルタから実行要求を受け付けると（ステップＳ３０１）、後続もしくは指定されたフィルタに使用リソースの確認依頼を行い（ステップＳ３０２）、使用リソースがあるか否か判断する（ステップＳ３０３）。
【０１０１】
使用リソースがない場合、そのフィルタに実行要求を行い（ステップＳ３０４）、フィルタから実行完了通知を受けたか否か判断し（ステップＳ３０５）、受けていない場合は実行要求受付（ステップＳ３０１）に戻る。
【０１０２】
一方、使用リソースがある場合（ステップＳ３０３のＹ）、アクセス制御部１６にアクセス権の確認依頼を行い（ステップＳ３０６）、アクセスがＯＫであるか否か判断する（ステップＳ３０７）。
【０１０３】
アクセスがＯＫである場合、フィルタへの実行要求（ステップＳ３０４）に進む。
【０１０４】
一方、実行完了通知を受けた場合（ステップＳ３０５のＹ）、アクティビティＡに実行完了を通知し（ステップＳ３０８）、処理を終了する。
【０１０５】
一方、アクセスがＯＫでない場合（ステップＳ３０７のＮ）、アクティビティＡに実行不可を通知し（ステップＳ３０９）、処理を終了する。
【０１０６】
図１７は、仮想フィルタがアクティビティに含まれる各フィルタのアクセス権を確認する毎にフィルタの実行を行い、後続のフィルタへの実行要求を仮想フィルタが中継するものであり、各フィルタの前に仮想フィルタを組み込む場合（図２（ｂ）のパターン）の処理例である。なお、図１３および図１４に示したようにアクセス権の確認を各フィルタに行わせるようにすることもできる。
【０１０７】
図１７はアクティビティおよびフィルタの実行時の処理例を示すシーケンス図である。仮想フィルタの処理は図１６と同様である。
【０１０８】
図１７において、アクティビティＡが先頭の仮想フィルタＶＦ１に実行要求を行うと（ステップＳ３１１）、仮想フィルタＶＦ１はアクセス権判定を開始する（ステップＳ３１２）。
【０１０９】
仮想フィルタＶＦ１は先ず後続のフィルタＦ１に使用リソース確認依頼を行い（ステップＳ３１３）、フィルタＦ１からリソース確認応答を得る（ステップＳ３１４）。ここではフィルタＦ１の使用リソース「なし」を得るものとする。
【０１１０】
仮想フィルタＶＦ１は、使用リソースがないことからアクセス権の問題はないとして、フィルタＦ１に実行要求を行い（ステップＳ３１５）、フィルタＦ１は実行処理を行い（ステップＳ３１６）、自己の処理を完了すると後続の仮想フィルタＶＦ２に実行要求を行う（ステップＳ３１７）。
【０１１１】
仮想フィルタＶＦ２はアクセス権判定を開始し（ステップＳ３１８）、後続のフィルタＦ２に使用リソース確認依頼を行い（ステップＳ３１９）、フィルタＦ２からリソース確認応答を得る（ステップＳ３２０）。ここではフィルタＦ２の使用リソースとして「アドレス帳」を得るものとする。
【０１１２】
仮想フィルタＶＦ２は、使用リソースがあることから、アクセス制御部１６に「アドレス帳」のアクセス権確認を依頼し（ステップＳ３２１）、アクセス制御部１６はアクセス権判定を行い（ステップＳ３２２）、アクセス権確認結果を仮想フィルタＶＦ２に通知する（ステップＳ３２３）。ここでは「ＯＫ」が通知されるものとする。
【０１１３】
仮想フィルタＶＦ２は、アクセス確認結果が「ＯＫ」であることから、フィルタＦ２に実行要求を行い（ステップＳ３２４）、フィルタＦ２は実行処理を行う（ステップＳ３２５）。
【０１１４】
フィルタＦ２は後続のフィルタがないことから、実行完了を前の仮想フィルタＶＦ２に通知し（ステップＳ３２６）、仮想フィルタＶＦ２は前のフィルタＦ１に実行完了を通知し（ステップＳ３２７）、フィルタＦ１は前の仮想フィルタＶＦ１に実行完了を通知し（ステップＳ３２８）、仮想フィルタＶＦ１はアクティビティＡに実行完了を通知し（ステップＳ３２９）、処理を終了する。
【０１１５】
＜総括＞
以上説明したように、本発明の実施形態によれば次のような利点がある。
（１）要求を一元管理するモジュールであるリクエスト管理部が、実行段階で意識されない仮想のフィルタをアクティビティに組み込むことで、アプリケーションによらずアクセス権の確認を強制することが可能になる。
（２）組み込まれた仮想フィルタが、後に続くフィルタを識別して権限の確認をまとめて行うようにすることで、フィルタの作りに拠らず権限の確認を行うことができる。
（３）組み込まれた仮想フィルタが、実行前に全てのフィルタに権限の確認を依頼するようにすることで、新しいフィルタが追加されても使用リソースの管理をフィルタ側で行うことができる。
（４）組み込まれた仮想フィルタが、フィルタ間の実行要求を中継し要求毎にアクセス権の確認を行うことで、動的にフィルタが追加されるような場合であっても権限の確認を行うことができる。
（５）上記（４）において、一つの仮想フィルタが集中管理することで、少ないリソースで一元管理できる。
（６）上記（４）において、各フィルタ間に一つずつ配置した仮想フィルタが管理することで、各フィルタが仮想フィルタを意識せずに通信できる。
（７）アクティビティを登録するときに予めアクセス権の確認を行っておき、アクティビティの内容の変更を禁止することで、実行時にアクセス権の確認を行わなくても動作を保証することができる。
（８）アクティビティ登録するときに予めアクセス権の確認を行う場合、アクティビティの内容の変更を許可しても、変更したときに改めてアクセス権の確認を行うことで、実行時の変更を可能とし動的な追加にも対応できる。
（９）アクセス制御の判定テーブルをシステム外部に持たせることで、複数の機器に対して統一されたルールでアクセス制御を行うことが可能になる。
（１０）上記（９）において、テーブルでリソースとフィルタの関係を表現したものを持つことで、フィルタとリソースの組み合せに対する制限を行うことが可能になる。
【０１１６】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【図面の簡単な説明】
【０１１７】
【図１】アクティビティとフィルタの関係の例を示す図である。
【図２】仮想フィルタの組み込みのパターンの例を示す図である。
【図３】アクティビティから見たフィルタの例を示す図である。
【図４】本発明の一実施形態にかかる画像処理装置の構成例を示す図である。
【図５】実施形態の要部となる機能部の構成例を示す図である。
【図６】各種管理情報の例を示す図である。
【図７】アクティビティおよびフィルタの生成時の処理例を示すシーケンス図（その１）である。
【図８】アクティビティおよびフィルタの生成時の処理例を示すシーケンス図（その２）である。
【図９】アクティビティおよびフィルタの生成時の処理例を示すシーケンス図（その３）である。
【図１０】リクエスト管理部の処理例を示すフローチャートである。
【図１１】アクティビティおよびフィルタの実行時の処理例を示すシーケンス図（その１）である。
【図１２】仮想フィルタの処理例を示すフローチャート（その１）である。
【図１３】アクティビティおよびフィルタの実行時の処理例を示すシーケンス図（その２）である。
【図１４】仮想フィルタの処理例を示すフローチャート（その２）である。
【図１５】アクティビティおよびフィルタの実行時の処理例を示すシーケンス図（その３）である。
【図１６】仮想フィルタの処理例を示すフローチャート（その３）である。
【図１７】アクティビティおよびフィルタの実行時の処理例を示すシーケンス図（その４）である。
【符号の説明】
【０１１８】
Ａ                      アクティビティ
Ｆ、Ｆ１〜Ｆ３          フィルタ
ＶＦ、ＶＦ１、ＶＦ２    仮想フィルタ
１                      画像処理装置
２                      アスペクト
３                      ユーザインタフェース
４                      コントロール
５                      アプリケーションロジック
６                      デバイスサービス
７                      デバイス
８                      エンジン
１１                    ＵＩ制御部
１２                    アクティビティ
１３                    テンプレート情報管理部
１４                    リクエスト管理部
１５                    フィルタ
１６                    アクセス制御部
１７                    アクセス制御情報管理部
【図１】
2008158752.tif 000003
【図２】
2008158752.tif 000004
【図３】
2008158752.tif 000005
【図４】
2008158752.tif 000006
【図５】
2008158752.tif 000007
【図６】
2008158752.tif 000008
【図７】
2008158752.tif 000009
【図８】
2008158752.tif 000010
【図９】
2008158752.tif 000011
【図１０】
2008158752.tif 000012
【図１１】
2008158752.tif 000013
【図１２】
2008158752.tif 000014
【図１３】
2008158752.tif 000015
【図１４】
2008158752.tif 000016
【図１５】
2008158752.tif 000017
【図１６】
2008158752.tif 000018
【図１７】
2008158752.tif 000019