(57)【要約】【課題】アドオンソフトによる不適切なデータアクセスや改竄、漏洩などを防止する。【解決手段】アドオンソフト（ａｐｐ２０）が利用するソフト部品毎に、その実行の際に、当該アドオンソフトの登録者の権限レベルと実行者の権限レベルの両方が、このソフト部品実行に対応する危険度レベルより高位である場合のみ（ステップＳ５２，Ｓ５３の両方がＹＥＳ）、その実行が許可されて実行する（ステップＳ５４）。【選択図】図７
2014029603.tif 000002
【特許請求の範囲】
【請求項１】
機能処理を実行するプログラムを含む複数のソフト部品を記憶するソフト部品記憶部と、
前記ソフト部品を少なくとも二つ以上組み合わせて実行させるプログラムを含む追加組込ソフトを外部から登録する追加組込ソフト登録部と、
前記追加組込ソフトの実行権限レベルを予めユーザー毎に記憶するユーザー権限記憶部と、
前記追加組込ソフト登録部により登録された追加組込ソフトをユーザーが実行しようとした際に、該ユーザーを特定して前記ユーザー権限記憶部から該ユーザーに対する前記権限レベルを取得する実行者権限レベル取得部と、
該追加組込ソフトの実行に応じて処理される前記ソフト部品毎に、該ソフト部品実行に対応する危険度レベルを決定する危険度レベル決定部と、
前記実行される追加組込ソフトに対応して前記実行者権限レベル取得部により取得された前記権限レベルと、前記ソフト部品毎の危険度レベルとに基づいて、前記ソフト部品の実行を許可するか否かを判定するソフト部品実行制御部と、
を有することを特徴とする追加組込ソフト処理装置。
【請求項２】
前記ユーザー権限記憶部には、前記追加組込ソフトを前記ソフト登録部を介して登録する登録者に対する登録者権限レベルと、前記追加組込ソフトを実行する実行者に対する実行者権限レベルとが記憶され、前記ソフト部品実行制御部が判定する前記権限レベルは、前記追加組込ソフトの前記登録者権限レベル及び、前記実行者権限レベルとを含むことを特徴とする請求項１記載の追加組込ソフト処理装置。
【請求項３】
前記ソフト部品実行制御部は、前記登録者権限レベルと前記実行者権限レベルの両方が、任意のソフト部品の前記危険度レベルより高位である場合に、そのソフト部品の実行を許可することを特徴とする請求項２記載の追加組込ソフト処理装置。
【請求項４】
前記危険度レベルは、予め各ソフト部品に対する危険度を登録する危険度登録記憶部に記憶されていることを特徴とする請求項１、２又は３に記載の追加組込ソフト処理装置。
【請求項５】
前記危険度レベルは、前記ソフト部品の実行によりアクセスされるファイルもしくは該ファイルの格納場所に応じて設定されることを特徴とする請求項１、２又は３に記載の追加組込ソフト処理装置。
【請求項６】
機能処理を実行するプログラムを含む複数のソフト部品を記憶する処理と、
前記ソフト部品を少なくとも二つ以上組み合わせて実行させるプログラムを含む追加組込ソフトを外部から登録する処理と、
前記追加組込ソフトの実行権限レベルを予めユーザー毎に記憶する処理と、
前記追加組込ソフト登録部により登録された追加組込ソフトをユーザーが実行しようとした際に、該ユーザーを特定して前記ユーザー権限記憶部から該ユーザーに対する前記権限レベルを取得する処理と、
該追加組込ソフトの実行に応じて処理される前記ソフト部品毎に、該ソフト部品実行に対応する危険度レベルを決定する処理と、
前記実行される追加組込ソフトに対応して前記実行者権限レベル取得部により取得された前記権限レベルと、前記ソフト部品毎の危険度レベルとに基づいて、前記ソフト部品の実行を許可するか否かを判定する処理と、
を実行することを特徴とする追加組込ソフト実行制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、追加組込ソフト処理装置に関する。
【背景技術】
【０００２】
従来より、一般的な情報処理装置のソフトウェア本体に対して、機能拡張やカスタマイズ等を目的としたアドオン等（あるいはプラグイン等）と呼ばれる小規模ソフトウェアを追加可能な構成が知られており、印刷装置に於いても同様にアドオンソフトの追加が可能な制御ソフトを有するコントローラが存在している。尚、ここでは、上記アドオン等やプラグイン等をまとめて追加組込ソフト等と呼ぶものとする。
【０００３】
アドオンソフト等の追加組込ソフトを追加可能な制御ソフト本体は、アドオンソフト等に対して様々な部品ソフトウェアを提供する事が一般的で、アドオンソフト等は提供された部品を組み合わせる事で新たな機能を実現したり、カスタム表示や操作を実現する。従って、アドオンソフト等の作成者にとって、提供される部品の種類や処理対象が多く広いほど自由度が高まり、高機能で扱いやすいアドオン等を作る事が可能となる。
また、例えば特許文献１には、情報処理装置等で予め設定したユーザー権限情報を用いて、アドオンソフトの入出力の許可／禁止を制御する手法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−８７２８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述した従来技術では、しかしながら、追加組込ソフト処理装置における部品の扱う対象が広がり、処理内容が高機能になるほど、アドオンソフト等によるセキュリティ面の危険度が増してしまうが、これを管理し防止する方法が無いという問題があった。
追加組込ソフト処理装置の中でも、特に、印刷装置の場合、制御ソフト本体に印刷データに対するセキュリティ機能を持っている事が多いが、その機能はアドオンソフトウェア等を対象とはしておらず、有効とは言えない。
この為、アドオンソフト作成時の悪意の有無に関わらず、印刷データやユーザー情報やログなどへの不適切なアクセス／改竄／漏洩、或いは制御ソフト本体へのダメージなどの問題発生を防ぐ事ができない課題があった。
【０００６】
本発明の課題は、任意の追加組込ソフトの登録者と実行者の権限レベルと、その追加組込ソフトが利用する各種部品それぞれの実行に対応する危険度レベルとに基づいて、各種部品の実行許可／不許可を判定することで、追加組込ソフトによる不適切なデータアクセスや改竄、漏洩などを防止する事ができる追加組込ソフト処理装置を提供することである。
【課題を解決するための手段】
【０００７】
上記課題は本発明によれば、機能処理を実行するプログラムを含むソフト部品を複数記憶するソフト部品記憶部と、前記ソフト部品を少なくとも二つ以上組み合わせて実行させるプログラムを含む追加組込ソフトを外部から登録する追加組込ソフト登録部と、前記追加組込ソフトの実行権限レベルを予めユーザー毎に記憶するユーザー権限記憶部と、前記追加組込ソフト登録部により登録された追加組込ソフトが任意のユーザーによって実行される際に、該追加組込ソフトの実行者を特定して前記ユーザー権限記憶部から該実行者に応じた前記権限レベルを取得する実行者権限レベル取得部と、該追加組込ソフトの実行に応じて処理される前記ソフト部品毎に、該ソフト部品実行に対応する危険度レベルを決定する危険度レベル決定部と、前記実行される追加組込ソフトに対応して前記実行者権限レベル取得部により取得された前記権限レベルと、前記ソフト部品毎の危険度レベルとに基づいて、前記ソフト部品の実行を許可するか否かを判定するソフト部品実行制御部と、を有することを特徴とする追加組込ソフト処理装置を提供することによって達成できる。
【発明の効果】
【０００８】
本発明の追加組込ソフト処理装置によれば、任意の追加組込ソフトの登録者と実行者の権限レベルと、その追加組込ソフトが利用する各種部品それぞれの実行に対応する危険度レベルとに基づいて、各種部品の実行許可／不許可を判定することで、追加組込ソフトによる不適切なデータアクセスや改竄、漏洩などを防止する事ができる。
【図面の簡単な説明】
【０００９】
【図１】本例の印刷システムの全体構成図である。
【図２】ａｐｐによって実現される処理例を示す図である。
【図３】印刷装置へのａｐｐの登録時の処理フローチャート図である。
【図４】ユーザー権限テーブルの一例を示す図である。
【図５】各種部品の具体例を示す図である。
【図６】ａｐｐによって実行される処理の具体例を示すフローチャート図である。
【図７】各部品が実行される毎に実行される共通フローである。
【発明を実施するための形態】
【００１０】
図1は本発明の追加組込ソフト処理装置の一例を示す印刷システムの全体構成図である。
尚、図１は、印刷システムを構成する印刷装置（追加組込ソフト処理装置）の詳細構成図と見做してもよい。
本例の印刷システムは、印刷装置１とＰＣ（パソコン）４とが通信線（不図示；ＬＡＮ等）により接続された構成となっており、例えばＰＣ４から送られてくる印刷データを印刷装置１で印刷実行するものである。
印刷装置１は、コントローラ２と印刷エンジン３とで構成される。印刷エンジン３は、特に図示しないが、例えば現像器、定着ユニット、用紙搬送機構等を有するものであり、コントローラ２の制御により用紙上に印刷する機能を有するユニットであり、従来と同じであってよいので、ここではこれ以上は説明しない。
【００１１】
コントローラ２は、特に図示しないが、ＣＰＵや記憶部等を有しており、記憶部には本体ソフト１０（プログラム）などが格納されており、更に追加組込ソフトウェア（以下、ａｐｐと表記する）２０が追加格納される。不図示のＣＰＵが、例えば本体ソフト１０を実行することにより、例えば図示の各種機能部１１〜１７の処理機能や後述する図３の処理等が実現される。
すなわち、コントローラ２は、オペパネ制御部１１、エンジン制御部１２、コマンド処理／描画部１３、印刷制御部１４等を有する。コントローラ２は、更に、ユーザー権限管理部１５、disk制御部１６、ａｐｐ制御部１７等も有する。尚、これら各種機能部は、例えば後に説明する図５に示す各種部品ソフトウェア（プログラム部品／ソフト部品；以下、単に部品と記す）を用いる。これら各種“部品”は、ａｐｐ２０であっても、許可されれば利用できる。この許可するか否かの判定は、例えば後述する図７の処理により行うものであり、後に説明する。
【００１２】
オペパネ制御部１１は、ユーザーに対する何らかの表示を行うと共に、ユーザーからの指示・入力を受け付ける。エンジン制御部１２は、印刷エンジン３の状態監視と印刷設定などを行う。コマンド処理／描画部１３は、ＰＣ４からの印刷データを受信してこれに基づいて描画を行う。印刷制御部１４は、描画された画像を印刷エンジン３へ送り印刷を制御する。
また、ユーザー権限管理部１５、disk制御部１６は、印刷装置１のユーザー権限の管理を行う。disk制御部１６は、不図示の不揮発性メモリを制御する。
また、印刷装置１においては、上記コントローラ内蔵ソフトウェア（本体ソフト１０）には無い機能を追加（或いは、ユーザーが利用し易い様にカスタマイズ）する為の、アドオン或いはプラグインと呼ばれるソフトウェア（ａｐｐ２０）の追加・組込が可能であり、ａｐｐ制御部１７がこのａｐｐ２０を制御する。
【００１３】
ここで、上述したアドオンやプラグイン等は、上記のように印刷装置１（その本体ソフト１０等）に対して、後から任意に追加・組込を行う小規模ソフトウェアの一例であり、この様な小規模ソフトウェアを「追加組込ソフトウェア（追加組込ソフト）」と呼ぶものとする。本例の印刷装置１は、制御ソフト本体（本体ソフト１０等）を有し、この制御ソフト本体で使用する各種部品を利用して任意の処理機能を実現する「追加組込ソフトウェア（追加組込ソフト）」を実行可能な印刷装置である。そして、本説明では、この様な「追加組込ソフトウェア（追加組込ソフト）」の一例であるアドオン（ａｐｐ２０）を例にして追加組込ソフト処理装置を説明するものとする。
【００１４】
尚、追加組込ソフトウェアの一例であるａｐｐ２０と区別する為、ここでは上記オペパネ制御部１１〜ａｐｐ制御部１７の各種機能部を実現するコントローラ内蔵ソフトウェア群を、上記の通り本体ソフト１０と称する。尚、図示していないが、印刷装置１は、ＣＰＵ等の演算プロセッサを有しており、このＣＰＵが上記コントローラ内蔵ソフトウェア群を読出し実行することにより、上記各種機能部を実現することになる。また、ａｐｐ２０もＣＰＵによって実行される。
図２に、ａｐｐ２０によって実現される追加機能例を示す。
この例のａｐｐ２０では、ユーザーが複数の印刷データ（この例では複数のカタログＡ，Ｂ，Ｃ）を、ＰＣ４から印刷装置１に送り込んだ場合、この複数の印刷データを印刷装置１側でそのオペパネ（オペレーションパネル）等のユーザーインタフェースを用いて、一括、或いは選択して印刷できる様なカスタマイズ等を行うものとする。
【００１５】
この例では、ユーザーインタフェース（ディスプレイ及びタッチパネル等）に、まず、図示の印刷メニュー画面３０を表示する。図示の例では、この印刷メニュー画面３０には、「一括印刷」ボタン３１、「個別印刷」ボタン３２、「終了」ボタン３３の３つのボタンが表示される。ユーザー操作によって、もし「一括印刷」ボタン３１が押されたら、登録してある全印刷データ（例えばカタログＡ，Ｂ，Ｃ全て）を印刷する。一方、「個別印刷」ボタン３２が押されたら、ユーザーインタフェースの表示を図示の個別選択メニュー４０に変更する。
個別選択メニュー画面４０には、複数の印刷データ（図示の例ではカタログＡ，Ｂ，Ｃの３つのカタログ）が表示され、ユーザー操作によって選択されたデータ（カタログ）を印刷する。
【００１６】
また、印刷メニューの「終了」ボタン３３が押されたら、このａｐｐ２０の機能を終了する。
本手法では、任意のａｐｐ２０を任意のときに、印刷装置１に追加登録することができる。本手法では、新規ａｐｐ２０を登録すること自体は、特に制限なく誰でも行うことができる。しかし、後述するように、例えば印刷実行時などに印刷装置１に登録済みの何らかのａｐｐ２０の機能を実行させる場合、ａｐｐ登録者の権限及び実行者（例えば印刷実行者）の権限に基づいて、ａｐｐ２０の実行の許可／不許可を判定する。よって、ａｐｐ２０の実行が許可されない場合もある。これは、例えば、そのａｐｐ２０が利用する各種部品毎に、その実行（利用）の許可／不許可が判定されるようにしてもよい。詳しくは後述する。
【００１７】
図３は、印刷装置１へのａｐｐ２０の登録時の処理と、その後のａｐｐ実行の概要を示したフローチャート図である。尚、本処理は、例えば、コントローラ２が上記各種機能部の機能を用いて実現する。尚、後述する図６の処理も、実質的に、コントローラ２（そのＣＰＵ）がａｐｐ２０を実行することで実現されるものと言える。また、後述する図７の処理も、コントローラ２（そのＣＰＵ）が（例えば各種部品を実行することで）実現するものと言える。
尚、後に説明する図６は、図３のステップＳ１６におけるａｐｐ実行処理の具体例を示すものである。また、後に説明する図７は、図６において各部品実行毎に実行される処理であり、その部品の実行・利用が許可されない場合も有り得る。
以下、まず、図３について説明する。
まず、印刷装置１の電源を投入すると、印刷装置１が起動する（ステップＳ１１）。その際、印刷装置１内のコントローラ２も同時に起動し、ＰＣ４からのデータ受信が可能な状態となる。
【００１８】
これより、その後、ＰＣ４から送信されてくる任意のデータを受信すると（ステップＳ１２，ＹＥＳ）、コマンド処理／描画部１３がそのデータ種別を判別する。すなわち、受信したデータが、印刷データであるかａｐｐ登録データ（ａｐｐプログラム）であるか否かを判別する（ステップＳ２０）。尚、これは、例えば、受信データには、そのデータが印刷データであるかａｐｐ登録データであるかを示す識別情報が含まれている。この識別情報は、例えばＰＣ４でユーザーが指定操作することでＰＣ４がデータに付与して送信している。
そして、受信データが印刷データである場合には（ステップＳ２０，ＹＥＳ）、通常の処理である当該印刷データの印刷処理を実施する（ステップＳ２３）。
【００１９】
一方、受信したデータがａｐｐ登録データであると判断した場合（ステップＳ２０，ＮＯ）、このａｐｐ登録データの送信元ユーザーを特定し、ユーザー権限管理部１５にこのユーザーのａｐｐ権限レベルを問い合わせて取得する。
上記送信元ユーザーの特定を含む何らかのユーザーの特定方法は、例えば、ＰＣ４から送られたデータに含まれるホスト名（あるいはＩＰアドレス等）や、印刷装置１に装着されたＩＣカードリーダ等のデバイスから得られるユーザー特定情報により、ユーザー名を割り出すものである。
すなわち、例えば予め不図示のユーザー登録テーブルに、ホスト名とユーザー名とを対応付けて登録してあり、送信元のＰＣ４のホスト名に対応するユーザー名を取得する。
【００２０】
あるいは、所謂“プルプリント”を行う印刷システムの場合、例えば印刷装置１にＩＣカードリーダを設けてユーザーが自己のＩＣカードを翳すことで、ＩＣカードからＩＤ（ユーザー特定情報；例えばユーザー名や社員番号など）が読み出されて、このＩＤを用いて印刷実行することが行われている。このＩＤ自体が上記ユーザー名であってもよいし、予めＩＤとユーザー名とを対応付けた不図示のテーブルを設けておき、このテーブルを参照することで印刷実行者等のユーザー名を取得するようにしてもよい。
【００２１】
ユーザー権限管理部１５は、ユーザー権限テーブル５０を保持しており、これを参照することで上記送信元ユーザーのａｐｐ権限レベルを判別する（ステップＳ２１）。
図４に、ユーザー権限テーブル５０の一例を示す。
図示の例のユーザー権限テーブル５０は、ユーザー名５１、印刷権限５２、ａｐｐ権限５３より成る。尚、印刷権限５２は、例えばカラー印刷を可能とするか否かなどの印刷に関連するユーザーレベルを指定するものであり、ここでは特に関係ないので、これ以上は説明しない。
ユーザー権限テーブル５０には、各ユーザー名５１に対応して、そのユーザーのａｐｐ権限５３が登録されている。このａｐｐ権限レベル５３は、ａｐｐの登録・実行の操作に関して各ユーザーに与えられた権限レベルである。図示の例では、ａｐｐ権限５３は、０，１，２，５等の数値であり、本例では数値が高いほど権限が大きいものとする。
【００２２】
ユーザー権限管理部１５は、上記特定した送信元ユーザーのユーザー名を用いて、ユーザー権限テーブル５０から、そのユーザーのａｐｐ権限レベル（該当するａｐｐ権限５３）を読み出す。これは、ここでは上記ａｐｐ登録データ（ａｐｐプログラム）の登録者のａｐｐ権限レベルを取得することを意味する。
これより、上記ａｐｐ登録者のａｐｐ権限レベル（登録者権限レベル）を、受信したａｐｐ登録データに添付してdisk制御部１６へ送り、不図示の不揮発性メモリ等に記憶させる（ステップＳ２２）。
以上で、任意のａｐｐデータの登録時の処理は終了する。この処理により、上記の通り、不図示の不揮発性メモリ等に記憶されるａｐｐ登録データ（ａｐｐ２０）には、その登録者のａｐｐ権限レベル（登録者権限レベル）が付加されていることになる。この登録者権限レベルは、後に図７の処理の際に参照される。詳しくは後に説明する。
【００２３】
尚、上記図２の例の場合、上記ａｐｐ登録データには、印刷メニュー３０、個別選択メニュー４０の各画面と、これら画面上での各種操作に係るプログラム等が含まれる。尚、更に図２に示すカタログＡ，Ｂ，Ｃのデータ等が含まれていてもよい。
上述した処理は、ＰＣ４からのデータを受信するイベントがあった場合の処理であるが、コマンド処理／描画部１３は、データ受信が無い場合は（ステップＳ１２，ＮＯ）、オペパネ制御部１１等にａｐｐの起動指示の有無を問い合わせる。ａｐｐ起動指示が無ければ（ステップＳ１３，ＮＯ）ステップＳ１２のデータ受信待ち状態に戻るが、ａｐｐ起動指示があった場合には（ステップＳ１３，ＹＥＳ）、ａｐｐ制御部１７を起動して、ステップＳ１４以降の処理を実行制御させる。
【００２４】
尚、特に図示等しないが、印刷装置１は、登録済みのアドオンソフト（ａｐｐ２０）のうちの任意のアドオンソフト実行を選択・指定させる機能も有しており、この選択・指定を以って上記ステップＳ１３の判定がＹＥＳとなる。
ａｐｐ制御部１７は、まず、ａｐｐ起動指示を行ったユーザー（ａｐｐ実行者）を特定する。尚、ユーザー特定方法については、既にａｐｐ登録時の説明で述べているので、ここでは省略する。そして、このａｐｐ実行者のａｐｐ権限レベル（実行者権限レベル）を取得する（ステップＳ１４）。これは、例えば、上記ユーザー権限管理部１５等により上記ユーザー権限テーブル５０を参照することで、上記ａｐｐ実行者のユーザー名５１に対応するａｐｐ権限５３（実行者権限レベル）を取得する。
【００２５】
また、ａｐｐ制御部１７は、disk制御部１６に対して、起動指示されたａｐｐ登録データ（ａｐｐプログラム）の読み出しを要求して取得する（ステップＳ１５）。上記の通り、各ａｐｐプログラム（ａｐｐ２０）には上記登録者権限レベルが付加されている。そして、このａｐｐ２０を起動・実行させる（ステップＳ１６）。尚、その際、ａｐｐ制御部１７は、アーギュメント（引数）として上記登録者権限レベルと実行者権限レベルをａｐｐ２０に与える。
ここで、図６には、上記ステップＳ１６のａｐｐ実行処理の具体例を示す。この具体例は、上記“部品”として図５に示す各種部品５００〜５１１を用いる例である。これより、図６の説明の前に、図５に示す具体例について説明する。
【００２６】
図５は、各種部品の具体例を示す図である。
図５において、５００〜５１１の各符号を付しているのが、本体ソフト１０の上記各種機能部１１〜１６の為に予め用意された利用可能なライブラリ等である各種“部品”である。図示の例では、例えばオペパネ制御部１１は、例えば「表示」部品５００や「入力」部品５０１等の部品を用いて上述した処理を実行する。
他にも、例えば、図示の「ファイル印刷指示」部品５０２、「セキュリティ印刷設定」部品５０３、「権限情報取得」部品５０４、「権限情報変更」部品５０５、「ファイル書き込み」部品５０６、「ファイル読み出し」部品５０７、「エンジン状態表示」部品５０８、「エンジン設定変更」部品５０９、「印刷開始」部品５１０、「印刷ログ表示」部品５１１等の各種部品が用意されて記憶されている。
そして、図５に示す様に、外部で作られた追加ソフトウェアであるａｐｐ２０は、上記本体ソフト１０の各種機能の為に用意された利用可能なライブラリ等である部品５００〜５１１を用いてコントローラ２を制御し、新たな機能を構築する。例えば図６に示すような処理を実行するが、勿論、この例に限らない。
【００２７】
図６は、ａｐｐ２０によって実行される処理の具体例を示すフローチャート図である。
この具体例は、例えば上記図２の処理機能を実行するａｐｐ２０を例にするものである。
以下、図６の処理例について説明する。
ここで、図６において、ステップＳ３３、Ｓ３７以外の各ステップ内に示す番号（500、501等）が、上記図５に示す各部品の符号（500、501等）を意味し、その部品を利用して処理実行することを意味している。
【００２８】
図６において、上記の通り、処理実行開始時には上記登録者権限レベルと実行者権限レベルが与えられている。そして、まず、「表示」部品５００を用いて図２の印刷メニュー３０の表示を行う様にオペパネ制御部１１に要求する（ステップＳ３１）。但し、これは「表示」部品５００の利用が許可された場合の処理であり、不許可の場合、ステップＳ３１の処理は行われない。これは、後述するステップＳ３２、Ｓ３４〜Ｓ３６、Ｓ３８〜Ｓ４２等でも同様である。許可／不許可は、後述する図７の処理によって判定される。詳しくは後述するものとし、まず、図６の処理について説明するが、これは全てにおいて許可された場合を前提とする。
すなわち、まず、上記ステップＳ３１の処理によって表示される上記印刷メニュー３０上で、利用者が任意のボタンを操作したら、これを検出する為の処理を行う。すなわち、「入力」部品５０１を用いてオペパネ制御部１１により選択されたボタンの読み込みを行い（ステップＳ３２）、この選択ボタンを判別する（ステップＳ３３）。
【００２９】
図２の例では、上記の通り、「一括印刷」ボタン３１、「個別印刷」ボタン３２、「終了」ボタン３３の３つのボタンが表示されており、もし「終了」ボタン３３が選択されたなら本処理は終了となる。一方、「一括印刷」ボタン３１が選択されたならばステップＳ３４〜Ｓ３７の処理を実行し、「個別印刷」ボタン３２が選択されたならばステップＳ３８〜Ｓ４２の処理を実行する。
一括印刷が選択された場合は、まず、disk制御部１６に「ファイル読み出し」部品５０７で所定の登録ファイルの読み出しを要求する（ステップＳ３４）。この登録ファイルは、本例では上記カタログＡ，Ｂ，Ｃの各ファイルであり、これら各ファイルを順次読出し要求する。次に、「ファイル印刷指示」部品５０２でコマンド処理／描画部１３にこのファイルデータの描画を要求し（ステップＳ３５）、「印刷開始」部品５１０で印刷制御部１４に印刷実行を要求する（ステップＳ３６）。
【００３０】
上記ステップＳ３４〜Ｓ３６の処理を、登録ファイル（上記カタログＡ，Ｂ，Ｃの各ファイル）全てが印刷されるまで繰り返し実行する（ステップＳ３７がＮＯでステップＳ３４に戻る）。そして、全ファイル印刷実行したら（ステップＳ３７，ＹＥＳ）、例えばステップＳ３１に戻る。
また、個別印刷が要求された場合は、以下の処理を行う。尚、以下の説明では逐一上記のようにオペパネ制御部１１等への要求については述べずに、部品の利用についてのみ述べるものとする。
まず、「表示」部品５００を用いて図２の個別メニュー４０の表示を行わせる（ステップＳ３８）。続いて、「入力」部品５０１を用いて選択ボタンの読み込みを行い（ステップＳ３９）、この選択ボタンの内容（指定されたカタログ）を判別する。そして、「ファイル読み出し」部品５０７を用いて、上記指定されたカタログのファイルの読み出しを行う（ステップＳ４０）。次に、「ファイル印刷指示」部品５０２を用いて、上記指定されたカタログのデータの描画を行わせて（ステップＳ４１）、「印刷開始」部品５１０を用いて印刷実行を行わせる（ステップＳ４２）。
【００３１】
ここで、既に簡単に述べた通り、上記ステップＳ３１〜Ｓ４２の各処理のうち、ステップＳ３３とＳ３７以外の各処理、すなわち任意の部品を利用する処理は、必ずしも実行されるとは限らない。すなわち、上記ステップＳ３１、Ｓ３２、Ｓ３４〜Ｓ３６、Ｓ３８〜Ｓ４２の各ステップの処理実行の際には、それぞれ図７の処理を実行し、後述するステップＳ５２、Ｓ５３の両方の判定がＹＥＳとならない限り、そのステップの部品の利用は許可されず、実質的にそのステップの処理は行われないことになる。
以下、図７の処理について説明する。
【００３２】
図7は、任意の部品利用の処理実行の際に実行される共通のフローであり、部品利用許可すると判定した場合のみ、その部品を利用した処理が実行されるものである。尚、ここでは、各部品毎に、ａｐｐ２０から呼び出される場合のみ図７の処理を実行するように、各部品に図７の処理機能が組み込まれているものとするが、この例に限らない。例えば、ａｐｐ制御部１７が、各部品の利用・実行毎に、ステップＳ５１，Ｓ５２，Ｓ５３の処理を実行したうえで、許可されると判定した場合のみ、その部品の利用・実行（ステップＳ５４）を行わせるようにしてもよい。
図７において、本処理を実行する部品は、まず、ａｐｐ実行時に渡された登録者権限レベルと実行者権限レベルを、アーギュメント（引数）として要求して取得する。
【００３３】
また、その部品の危険度レベルを決定する（ステップＳ５１）。例えばステップＳ３１の処理の際の図７の処理では、部品は「表示」部品５００であるので、「表示」部品５００の危険度レベルを決定することになる。危険度レベルを決定する為に必要な情報は、予め各部品毎に保持していてもよい（この例に限らないが）。例えば各部品毎に予め危険度レベルが確定しており登録されている場合には、それを参照すればよい。
但し、例えば「ファイル書き込み」部品５０６、「ファイル読み出し」部品５０７等の部品は、アクセス先のファイルに応じて危険度レベルが決まるケースもある。この様な場合も、例えば各部品に於いて扱うファイル毎（あるいは格納場所（フォルダ等）毎）に危険度のレベルを設定・登録しておけば、これを参照することで危険度レベルを決定できる。あるいは、アーギュメント（引数）で指定されたデータの種別（またはデータの格納場所（フォルダ等））を判断して、これに基づいて危険度レベル値を決定するようにしてもよい。
【００３４】
あるいは、各ファイル（または格納場所）と、そのファイルを呼び出し得る各部品との組み合わせ毎に、危険度レベル値を登録しておき、これを参照することで、危険度レベル値を決定するようにしてもよい。
例えば、「表示」部品500や「入力」部品501は、その部品が扱うデバイスが固定されており、また設定する表示内容や読み取る入力値はａｐｐのローカルな内容なので、危険度は少なく、例えばレベル１等とすることが出来る。しかし、「ファイル読み出し」部品507の場合、ａｐｐのローカルなエリア（ディレクトリ）内のファイルであれば危険度は少なく例えばレベル１等と判断できるが、ローカル領域以外の場合には領域に応じて危険度が変化する。
上記のように、危険度レベルは、部品自体によって決定されるとは限らず、その部品自体とその部品の利用方法（アクセス先など）とによって決定される場合もあるので、従って上記ステップＳ５１の処理は、例えば“部品実行（部品利用）に対応する危険度レベルを決定する”等と言うこともできる。
【００３５】
そして、上記ステップＳ５１で決定した危険度レベルを、上記のようにアーギュメント（引数）として渡された登録者権限レベル、実行者権限レベルとそれぞれ比較する。そして、登録者権限レベル、実行者権限レベルの両方とも、上記危険度レベルより高位である場合に、その部品の処理を実行することになる（その部品を利用した処理を許可することになる）（ステップＳ５４）。つまり、「登録者権限レベル＞危険度レベル」（ステップＳ５２，ＹＥＳ）、且つ、「実行者権限レベル＞危険度レベル」（ステップＳ５３，ＹＥＳ）である場合に、その部品を実行することができる（ステップＳ５４）。
一方、登録者権限レベル、実行者権限レベルのどちらか一方でも、その部品の危険度レベル以下である場合には、そのａｐｐ２０によるその部品の利用は許可されない。すなわち、「登録者権限レベル≦危険度レベル」（ステップＳ５２，ＮＯ）、あるいは、「実行者権限レベル≦危険度レベル」（ステップＳ５３，ＮＯ）である場合には、その部品の実行／利用は許可されず、例えば“権限異常”が返される。この場合、図３においてステップＳ１７の“権限異常か否か”の判定結果はＹＥＳとなり、エラー表示等が行われることになる（ステップＳ１９）。
【００３６】
例えば、登録者権限レベルと実行者権限レベルの両方が危険度レベルを上回れば、問題無しとしてａｐｐ実行を継続（許可）し、何れか一方でも危険度レベルの方が高い場合はａｐｐ実行を中断（不許可）する事で危険を回避する。
これは、ａｐｐ２０全体の実行を中止してもよいが、“権限異常”となった部品に係わる処理だけを実行中断（不許可）として、他の部品に係る処理は継続してもよい。例えば、ａｐｐ実行者が図２における「一括印刷」３１を指定したら、“権限異常”が返されてステップＳ１９のエラー表示が行われたとした場合に、（図３とは異なり）ステップＳ１６に戻って処理継続し、今度は「個別印刷」３２が指定されたら、今度は正常に実行される等という制御が、行われるようにしてもよい。但し、例えばステップＳ５２がＮＯの場合（特に、登録者権限レベルが著しく低い（例えば‘０’）の場合には）、そのａｐｐ２０自体の信頼性が低いと考えられるので、ａｐｐ２０全体の実行を中止することが望ましい。
【００３７】
上記の様に、ａｐｐ実行の際には、登録者権限レベルと実行者権限レベルの両方が、ａｐｐで利用する部品に係わる危険度レベルより高位である場合のみ、その部品を実行することができるので、追加組込ソフトによる不適切なデータアクセスや改竄、漏洩などを防止する事ができる。
また、実行許可／不許可は、各部品毎に行うので、たとえば実行者の権限レベルが比較的低い場合、例えば重要情報のアクセスに係るような危険度レベルが高い部品の処理は使用できなくても、危険度レベルが低い部品の処理であれば利用できることになる。
【００３８】
ここで、例えば危険度レベルは‘０’以上の値が設定できるものとし、図４の例では「ゲスト」ユーザーのａｐｐ権限５３は‘０’である。尚、「ゲスト」ユーザーとは、特定することが出来ない（例えば登録されていない）ユーザーである。尚、この例に限らないが、アドオンソフトに係わるゲストユーザーの権限レベル（ａｐｐ権限５３）は、最も低い危険度レベル以下となるように設定することが望ましい。
この例の場合、「ゲスト」ユーザーがａｐｐ登録者、または／及び、ａｐｐ実行者である場合には、必ず、ステップＳ５２、または／及び、ステップＳ５３が、ＮＯとなる。この様に、例えば、ユーザー登録されていない（従って特定する事が難しい）ゲストユーザーが、任意のａｐｐ２０を印刷装置１に登録することはできても、このａｐｐ２０を実行させることが出来ず、セキュリティを維持できる。
また、ゲストユーザーが登録したａｐｐ２０を、ユーザー登録されたユーザーが不用意に起動してしまった場合でも、常にステップＳ５２はＮＯとなるので、実行者権限レベルに関係なく、このａｐｐ２０を実行させることが出来ず、セキュリティを維持できる。
あるいは、逆に、ユーザー登録されたユーザーが登録したａｐｐ２０を、ゲストユーザーが起動して何らかの情報を得ようとする場合等も、常に、ステップＳ５３がＮＯとなるので、（たとえ登録者権限レベルが高くても関係なく）このａｐｐ２０を実行させることが出来ず、セキュリティを維持できる。
【００３９】
仮に、ステップＳ５２とＳ５３のどちらか一方でもＹＥＳとなったらステップＳ５４の処理を実行させる（その部品の実行・利用を許可する）制御とした場合、登録者権限レベルが高いと（実行者権限レベルが低くても関係なく；例えば実行者がゲストユーザーであっても）、部品実行内容が重要な情報の読出し（従って危険度レベルが高い）であっても許可されてしまう可能性がある。これに対して、図７の処理によれば、この様なアドオンソフトによる不適切なデータアクセスを防止でき、以ってデータの改竄、漏洩などを防止する事ができる。
また、ユーザー登録されたユーザーに関しては、一般に、一般ユーザーはａｐｐ権限５３が比較的低く、管理者等はａｐｐ権限５３が比較的高く設定されるものである。これより、例えば、部品実行内容が重要な情報の読出し（従って危険度レベルが高い）等の部品実行を伴うａｐｐ２０に関しては、例えば登録者と実行者の両方が管理者である場合のみ、その実行が許可されるようにすることもできる。換言すれば、例えば、実行者が一般ユーザーであっても登録者が管理者であれば実行許可されてしまう等という事態は、生じないようにでき、セキュリティ強化に役立つ。
【００４０】
一方、危険度が小さいａｐｐ２０（危険度レベルが低い部品使用しか行わないａｐｐ）であれば、いちいち管理者を煩わせることなく一般ユーザーでも運用（登録、実行）できる。
あるいは、基本的には危険度レベルが低い部品利用を行うが、危険度レベルが高い部品利用も混在するようなａｐｐ２０の実行に関しては、一般ユーザーの権限レベルを超える、危険度の高い部品処理を行う時だけ、その実行を不許可とする等、運用性の高いシステムを作る事が可能となる。
以上説明したように、本例の印刷装置１は、以下の特徴を有する。
まず、本例の印刷装置１は、制御ソフト本体である本体ソフト１０と、当該印刷装置１に任意の処理機能に追加する追加組込ソフト（ａｐｐ２０等）を実行可能な印刷装置である。換言すれば、制御ソフト本体を有し、この制御ソフト本体で使用する各種部品を利用して任意の処理機能を実現する追加組込ソフトを実行可能な追加組込ソフト処理装置である。
【００４１】
そして、印刷装置１は、追加組込ソフト登録時の処理機能として、任意の追加組込ソフトを登録させる機能部と、この追加組込ソフトを登録したユーザー（登録者）を特定する機能部と、権限情報（テーブル５０等）から登録者の権限レベルを取得する機能部と、取得した権限レベル（登録者権限レベル）と追加組込ソフトとを関連付けて記憶する機能部とを有する。
また、印刷装置１は、上記登録された追加組込ソフト実行時の処理機能として、登録済みの追加組込ソフトのうちの任意の追加組込ソフト実行を選択・指定させる機能部と、選択・指定したユーザー（実行者）を特定する機能部と、権限情報から実行者の権限レベルを取得する機能部と、選択・指定された追加組込ソフトに関連付けられた上記登録者の権限レベルと、上記実行者の権限レベルと共に、追加組込ソフトを起動する機能部とを有する。更に、追加組込ソフトから呼び出す各種部品毎に、その部品自体や処理対象等に応じた危険度レベルを決定する機能部と、上記登録者、実行者それぞれの権限レベルと、上記決定された危険度レベルとに基づいて、上記各部品毎に、その部品実行を許可するか否かを判定する機能部とを有する。
【００４２】
尚、上述した各種機能部は、例えば、印刷装置１の不図示のＣＰＵが、不図示の記憶部に予め記憶されているアプリケーションプログラムを実行することにより実現される。
上記印刷装置１によれば、例えば上述した効果が得られるが、下記の効果も得られる（一部、重複する）。
・  権限の設定内容次第では、未登録ユーザー等であるゲストユーザーが登録者または実行者となる追加組込ソフトは、必ず、実行出来ない様にすることも可能であるので、実質的に、ユーザー名が特定される登録ユーザーのみが利用可能となる。これより、追加組込ソフトの導入（登録）時または実行時のユーザー名を特定してログに残す事が可能となる。
・  また、権限の低いユーザーが危険度の高い追加組込ソフトの導入や実行する事はできないので、不適切な情報アクセスや改竄、漏洩等の発生を防ぐ事が出来る。例えば、上記「権限情報変更」部品５０５は、ユーザー権限を変更し得るプログラム部品であり、これによってユーザー権限が改竄されてしまうと、重大な問題が生じることになる。よって、この様なプログラム部品に対しては高い危険度レベルを設定しておくことで、改竄等を防止することになる。
・  更に、危険度の低いａｐｐであれば、高いレベルを有する管理者等の手を煩わせることなく、権限の低いユーザーが導入・実行する事が可能となる。
上記のように、制御ソフト本体と、その制御ソフトに追加する追加組込ソフトを実行可能な印刷装置等の追加組込ソフト処理装置に於いて、追加組込ソフトの登録や実行に係わる手間を最小限にして、追加組込ソフトによる不適切なデータアクセスや改竄、漏洩などを防止する事ができる。尚、上記実施形態の説明においては、追加組込ソフト処理装置の例として、印刷装置を例に説明を記載したが、本発明はこれに限られることなく、追加組込ソフトをユーザが任意にインストールすることが出来る、例えば、文書処理装置、複合機、情報処理装置、映像処理装置、画像形成装置などの追加組込ソフト処理装置であれば、同様に本発明を適用することが出来ることは勿論である。
【００４３】
（付記１）
機能処理を実行するプログラムを含む複数のソフト部品を記憶するソフト部品記憶部と、
前記ソフト部品を少なくとも二つ以上組み合わせて実行させるプログラムを含む追加組込ソフトを外部から登録する追加組込ソフト登録部と、
前記追加組込ソフトの実行権限レベルを予めユーザー毎に記憶するユーザー権限記憶部と、
前記追加組込ソフト登録部により登録された追加組込ソフトをユーザーが実行しようとした際に、該ユーザーを特定して前記ユーザー権限記憶部から該ユーザーに対する前記権限レベルを取得する実行者権限レベル取得部と、
該追加組込ソフトの実行に応じて処理される前記ソフト部品毎に、該ソフト部品実行に対応する危険度レベルを決定する危険度レベル決定部と、
前記実行される追加組込ソフトに対応して前記実行者権限レベル取得部により取得された前記権限レベルと、前記ソフト部品毎の危険度レベルとに基づいて、前記ソフト部品の実行を許可するか否かを判定するソフト部品実行制御部と、
を有することを特徴とする追加組込ソフト処理装置。
【００４４】
（付記２）
前記ユーザー権限記憶部には、前記追加組込ソフトを前記ソフト登録部を介して登録する登録者に対する登録者権限レベルと、前記追加組込ソフトを実行する実行者に対する実行者権限レベルとが記憶され、前記ソフト部品実行制御部が判定する前記権限レベルは、前記追加組込ソフトの前記登録者権限レベル及び、前記実行者権限レベルとを含むことを特徴とする付記１記載の追加組込ソフト処理装置。
【００４５】
（付記３）
前記ソフト部品実行制御部は、前記登録者権限レベルと前記実行者権限レベルの両方が、任意のソフト部品の前記危険度レベルより高位である場合に、そのソフト部品の実行を許可することを特徴とする付記２記載の追加組込ソフト処理装置。
【００４６】
（付記４）
前記危険度レベルは、予め各ソフト部品に対する危険度を登録する危険度登録記憶部に記憶されていることを特徴とする付記１、２又は３に記載の追加組込ソフト処理装置。
【００４７】
（付記５）
前記危険度レベルは、前記ソフト部品の実行によりアクセスされるファイルもしくは該ファイルの格納場所に応じて設定されることを特徴とする付記１、２又は３に記載の追加組込ソフト処理装置。
【００４８】
（付記６）
機能処理を実行するプログラムを含む複数のソフト部品を記憶する処理と、
前記ソフト部品を少なくとも二つ以上組み合わせて実行させるプログラムを含む追加組込ソフトを外部から登録する処理と、
前記追加組込ソフトの実行権限レベルを予めユーザー毎に記憶する処理と、
前記追加組込ソフト登録部により登録された追加組込ソフトをユーザーが実行しようとした際に、該ユーザーを特定して前記ユーザー権限記憶部から該ユーザーに対する前記権限レベルを取得する処理と、
該追加組込ソフトの実行に応じて処理される前記ソフト部品毎に、該ソフト部品実行に対応する危険度レベルを決定する処理と、
前記実行される追加組込ソフトに対応して前記実行者権限レベル取得部により取得された前記権限レベルと、前記ソフト部品毎の危険度レベルとに基づいて、前記ソフト部品の実行を許可するか否かを判定する処理と、
を実行することを特徴とする追加組込ソフト実行制御方法。
【符号の説明】
【００４９】
１  印刷装置（追加組込ソフト処理装置）
２  コントローラ
３  印刷エンジン
４  ＰＣ（パソコン）
１０  本体ソフト
１１  オペパネ制御部
１２  エンジン制御部
１３  コマンド処理／描画部
１４  印刷制御部
１５  ユーザー権限管理部
１６  disk制御部
１７  ａｐｐ制御部
２０  ａｐｐ
３０  印刷メニュー画面
３１  「一括印刷」ボタン
３２  「個別印刷」ボタン
３３  「終了」ボタン
４０    個別選択メニュー画面
５０  ユーザー権限テーブル
５１  ユーザー名
５２  印刷権限
５３  ａｐｐ権限
【図２】
2014029603.tif 000003
【図３】
2014029603.tif 000004
【図４】
2014029603.tif 000005
【図６】
2014029603.tif 000006
【図７】
2014029603.tif 000007
【図１】
2014029603.tif 000008
【図５】
2014029603.tif 000009