(57)【要約】【課題】  アプリケーションプログラムが不正に作成されるのを防止する。【解決手段】  アプリケーション開発用プログラムは、ＭＦＰに実行させるアプリケーションプログラムを作成するためにコンピュータにより実行され、ＭＦＰに予め準備されている複数のコマンドごとに許可レベルを対応付けたコマンドレベルリストを含んでいる。使用可能な許可レベルが予め与えられたレベルキーを取得するステップ（Ｓ０４）と、コマンドの入力を受付けるステップ（Ｓ０５）と、入力されたコマンドに対応付けられた許可レベルをコマンドレベルリストから取得するステップ（Ｓ０６）と、取得された許可レベルとレベルキーとから入力されたコマンドが有効か否かを判定するステップ（Ｓ０７）とをコンピュータに実行させる。【選択図】        図４
2006344146.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置に実行させるためのアプリケーションプログラムを作成するためにコンピュータにより実行されるアプリケーション開発用プログラムであって、
前記画像処理装置に予め準備されている複数のコマンドごとに許可レベルを対応付けたコマンドレベルリストを含み、
使用可能な許可レベルが予め与えられたレベルキーを取得するステップと、
コマンドの入力を受付けるステップと、
前記入力されたコマンドに対応付けられた許可レベルを前記コマンドレベルリストから取得するステップと、
前記取得された許可レベルと前記レベルキーとから前記入力されたコマンドが有効か否かを判定するステップとをコンピュータに実行させる、アプリケーション開発用プログラム。
【請求項２】
前記レベルキーを取得するステップは、前記アプリケーション開発用プログラムから前記レベルキーを取得する、請求項１に記載のアプリケーション開発用プログラム。
【請求項３】
前記取得されたレベルキーを作成されたアプリケーションプログラムに埋め込むステップをさらに実行させる、請求項１に記載のアプリケーション開発用プログラム。
【請求項４】
前記判定ステップは、前記取得された許可レベルと前記予め与えられたレベルキーとから有効と判定されなかったコマンドが、所定の他のコマンドとの組み合わせであることを条件に有効と判定するステップを含む、請求項１に記載のアプリケーション開発用プログラム。
【請求項５】
前記所定の他のコマンドは、データを暗号化するためのコマンドである、請求項４に記載のアプリケーション開発用プログラム。
【請求項６】
前記所定の他のコマンドは、データを表示するためのコマンドである、請求項４に記載のアプリケーション開発用プログラム。
【請求項７】
前記判定ステップは、前記取得された許可レベルと前記予め与えられたレベルキーとから有効と判定されなかったコマンドがデータへアクセスするコマンドの場合、認証されている使用者に関連するデータにアクセスすることを条件に有効と判定する、請求項１に記載のアプリケーション開発用プログラム。
【請求項８】
予め準備されている複数のコマンドごとに許可レベルを対応付けたコマンドレベルリストを記憶する記憶手段と、
アプリケーションプログラムが入力される入力手段と、
使用可能な許可レベルが予め与えられたレベルキーを取得するレベルキー取得手段と、
前記入力されたアプリケーションプログラムに含まれるコマンドを抽出して、前記コマンドレベルリストから該コマンドに対応付けられている許可レベルを取得する許可レベル取得手段と、
前記取得された許可レベルと前記レベルキーとから前記抽出されたコマンドが有効か否かを判定する判定手段とを備えた、画像処理装置。
【請求項９】
前記レベルキー取得手段は、前記入力されるアプリケーションプログラムから前記レベルキーを取得する、請求項８に記載の画像処理装置。
【請求項１０】
前記判定手段は、前記取得された許可レベルと前記予め与えられたレベルキーとから有効と判定されなかったコマンドが、所定の他のコマンドとの組み合わせであることを条件に有効と判定する組合判定手段を含む、請求項８に記載の画像処理装置。
【請求項１１】
前記所定の他のコマンドは、暗号化するためのコマンドである、請求項１０に記載の画像処理装置。
【請求項１２】
前記所定の他のコマンドは、データを表示するためのコマンドである、請求項１０に記載の画像処理装置。
【請求項１３】
前記判定手段は、前記取得された許可レベルと前記予め与えられたレベルキーとから有効と判定されなかったコマンドがデータへアクセスするコマンドの場合、認証されている使用者に関連するデータにアクセスすることを条件に有効と判定する、請求項８に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はアプリケーション開発用プログラムおよび画像処理装置に関し、特にアプリケーションプログラムインターフェース（ＡＰＩ）を有する画像処理装置およびその画像処理装置に実行させるためのアプリケーションプログラムを開発するためのアプリケーション開発プロラムに関する。
【背景技術】
【０００２】
複合機に代表される画像処理装置は、アプリケーションプログラムを読み込ませることによりそれの開発時に搭載された機能を拡張または変更することが可能となっている。これは、画像処理装置が、それが有するオペレーティングシステムとアプリケーションプログラムとのインターフェイスとなるＡＰＩを備えていることにより可能となる。
【０００３】
近年このＡＰＩは、画像処理装置のアプリケーション開発者に公開されている。しかしながら、全てのＡＰＩを公開してしまうと、画像処理装置の有する機能を意図的に阻害するアプリケーションプログラムが出現する恐れがある。たとえば、画像処理装置は、複写枚数に応じて課金する機能を有している場合には複写枚数をカウントする機能を有しているが、このカウントされた複写枚数を変更するアプリケーションプログラムを作成可能となってしまう。このため、画像処理装置の製造業者は、信頼される者にのみＡＰＩを公開するのが通常である。したがって、画像処理装置の一般的なユーザにはＡＰＩが公開されないため、一般ユーザは自らアプリケーションプログラムを作成して機能を拡張または変更することができなかった。
【０００４】
一方、アプリケーションプログラムが不正に作成されることに備えて、アプリケーションプログラムの作成者を認証して不正に作成されたアプリケーションプログラムであるか否かを判定することにより、不正に作成されたアプリケーションプログラムが実行されるのを防止する技術が特開２００５−９２２７５号公報（特許文献１）に記載されている。
【０００５】
特開２００５−９２２７５号公報に記載の技術によれば、認証されない不正な作成者、換言すれば、予め定められた作成者以外の物によって作成されたアプリケーションプログラムが実行されないようにすることができる。しかしながら、ＡＰＩを秘密にしておく度合い（以下「秘密性レベル」という）は、ＡＰＩによって違いがある。たとえば、課金処理に関するＡＰＩの秘密性レベルは高く、パネル表示に関するＡＰＩの秘密性レベルは低い。このため、特開２００５−９２２７５号公報に記載の技術では、ＡＰＩを公開するかまたは公開しないかのいずれかを選択することはできるが、公開する者によって公開するＡＰＩを異ならせることはできない。
【特許文献１】特開２００５−９２２７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
この発明は上述した問題点を解決するためになされたものでこの発明の目的の一つは、アプリケーションプログラムが不正に作成されるのを防止することが可能なアプリケーション開発用プログラムを提供することである。
【０００７】
この発明の他の目的は、開発プログラムごとに使用できるコマンドを異ならせたアプリケーション開発用プログラムを提供することである。
【０００８】
この発明のさらに他の目的は、不正に作成されたアプリケーションプログラムの実行を制限することが可能な画像形成装置を提供することである。
【０００９】
この発明のさらに他の目的は、実行されるアプリケーションプログラムごとに実行可能なコマンドを異ならせることが可能な画像処理装置を提供することができる。
【課題を解決するための手段】
【００１０】
上述した目的を達成するためにこの発明のある局面によれば、アプリケーション開発用プログラムは、画像処理装置に実行させるアプリケーションプログラムを作成するためにコンピュータにより実行されるアプリケーション開発用プログラムである。そして、画像処理装置に予め準備されている複数のコマンドごとに許可レベルを対応付けたコマンドレベルリストを含んでいる。使用可能な許可レベルが予め与えられたレベルキーを取得するステップと、コマンドの入力を受付けるステップと、入力されたコマンドに対応付けられた許可レベルをコマンドレベルリストから取得するステップと、取得された許可レベルとレベルキーとから入力されたコマンドが有効か否かを判定するステップとをコンピュータに実行させる。
【００１１】
この発明に従えば、使用可能な許可レベルが予め与えられたレベルキーが取得され、入力されたコマンドに対応付けられた許可レベルとレベルキーとから、入力されたコマンドの有効性が判定される。このため、アプリケーションプログラムの作成時において、取得されるレベルキーによって、使用可能なコマンドが制限される。その結果、アプリケーションプログラムが不正に作成されるのを防止することが可能なアプリケーション開発用プログラムを提供することができる。また、レベルキーによって、使用可能なコマンドが制限されるので、レベルキーごとに使用を許可するコマンドを異ならせることができる。このため、アプリケーション開発用プログラムごとに使用できるコマンドを異ならせたアプリケーション開発用プログラムを提供することができる。
【００１２】
好ましくは、レベルキーを取得するステップは、アプリケーション開発用プログラムからレベルキーを取得する。
【００１３】
好ましくは、取得されたレベルキーを作成されたアプリケーションプログラムに埋め込むステップをさらに実行させる。
【００１４】
好ましくは、判定ステップは、取得された許可レベルと予め与えられたレベルキーとから有効と判定されなかったコマンドが、所定の他のコマンドとの組合せであることを条件に有効と判定するステップを含む。
【００１５】
好ましくは、所定の他のコマンドは、データを暗号化するためのコマンドである。
【００１６】
好ましくは、所定の他のコマンドは、データを表示するためのコマンドである。
【００１７】
好ましくは、判定ステップは、取得された許可レベルと予め与えられたレベルキーとから有効と判定されなかったコマンドがデータへアクセスするコマンドの場合、認証されている使用者に関連するデータにアクセスすることを条件に有効と判定する。
【００１８】
この発明の他の局面によれば、画像処理装置は、予め準備されている複数のコマンドごとに許可レベルを対応付けたコマンドレベルリストを記憶する記憶手段と、アプリケーションプログラムが入力される入力手段と、使用可能な許可レベルが予め与えられたレベルキーを取得するレベルキー取得手段と、入力されたアプリケーションプログラムに含まれるコマンドを抽出して、コマンドレベルリストから該コマンドに対応付けられている許可レベルを取得する許可レベル取得手段と、取得されたコマンドレベルと取得されたレベルキーとから抽出されたコマンドが有効か否かを判定する判定手段とを備える。
【００１９】
この発明に従えば、使用可能な許可レベルが予め与えられたレベルキーが取得され、入力されたアプリケーションプログラムに含まれるコマンドに対応付けられた許可レベルとレベルキーとから、コマンドの有効性が判定される。このため、アプリケーションプログラムの実行時において、アプリケーションプログラムの有効性が判定される。その結果、不正に作成されたアプリケーションプログラムの実行を制限することが可能な画像形成装置を提供することができる。また、レベルキーによって、実行を制限するコマンドを異ならせることができる。このため、実行されるアプリケーションプログラムごとに実行可能なコマンドを異ならせることが可能な画像処理装置を提供することができる。
【００２０】
好ましくは、レベルキー取得手段は、入力されるアプリケーションプログラムからレベルキーを取得する。
【００２１】
好ましくは、判定手段は、取得された許可レベルと予め与えられたレベルキーとから有効と判定されなかったコマンドが、所定の他のコマンドとの組合せであることを条件に有効と判定する組合判定手段を含む。
【００２２】
好ましくは、所定の他のコマンドは、暗号化するためのコマンドである。
【００２３】
好ましくは、所定の他のコマンドは、データを表示するためのコマンドである。
【００２４】
好ましくは、判定手段は、取得された許可レベルと予め与えられたレベルキーとから有効と判定されなかったコマンドがデータへアクセスするコマンドの場合、認証されている使用者に関連するデータにアクセスすることを条件に有効と判定する。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
＜アプリケーション開発装置＞
【００２６】
図１は、本発明の実施の形態の一つにおけるアプリケーション開発装置のハード構成を示すブロック図である。アプリケーション開発装置１００は、一般的なコンピュータである。図１を参照して、アプリケーション開発装置１００は、それぞれがバス１２０に接続された中央演算装置（ＣＰＵ）１０１と、ＣＰＵ１０１が実行するためのブートアッププログラムなどを記録したＲＯＭ（Ｒｅａｄ
Ｏｎｌｙ Ｍｅｍｏｒｙ）１０３と、実行されるプログラムをロードするための、およびプログラム実行中のデータを記憶するためのＲＡＭ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）１０５と、データを不揮発的に記憶するためのハードディスクドライブ（ＨＤＤ）１０７と、ＩＣカード１０８が装着されるカードインターフェース（Ｉ／Ｆ）１０９と、ユーザとのインターフェイスとなる入力部１１１および表示部１１３と、アプリケーション開発装置１００をネットワーク２に接続するための通信Ｉ／Ｆ１１５とを含む。
【００２７】
ＣＰＵ１０１は、ＨＤＤ１０７に記憶されたアプリケーション開発用プログラムをＲＡＭ１０５にロードして実行する。なお、ＣＰＵ１０１は、カードＩ／Ｆ１０９に装着されたＩＣカード１０８に記録されたアプリケーション開発用プログラムをＲＡＭ１０５にロードして実行するようにしてもよい。さらに、ネットワークに接続された他のコンピュータからアプリケーション開発用プログラムをダウンロードしてＨＤＤ１０７に記憶し、そのアプリケーション開発用プログラムをＲＡＭ１０５にロードして実行するようにしてもよい。ここでいうアプリケーション開発用プログラムは、ＣＰＵ１０１により直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００２８】
なお、アプリケーション開発用プログラムを記憶する記録媒体としてはＩＣカード１０８に限られず、フレキシブルディスク、カセットテープ、光ディスク（ＭＯ（Ｍａｇｎｅｔｉｃ
Ｏｐｔｉｃａｌ Ｄｉｓｃ／ＭＤ（Ｍｉｎｉ Ｄｉｓｃ）／ＤＶＤ（Ｄｉｇｉｔａｌ Ｖｅｒｓａｔｉｌｅ Ｄｉｓｃ））、光カード、マスクＲＯＭ、ＥＰＲＯＭ（Erasable Programmable ROM）、ＥＥＰＲＯＭ（Electronically
Erasable and Programmable ROM）などの半導体メモリ等の固定的にプログラムを担持する媒体であってもよい。
【００２９】
入力部１１１は、キーボードまたはマウス等の入力装置である。表示部１１３は、液晶表示装置または陰極線管（ＣＲＴ）である。通信Ｉ／Ｆ１１５は、アプリケーション開発装置１００をネットワーク２接続するための通信インターフェイスである。これにより、アプリケーション開発装置１００は、他のコンピュータとの間で通信することが可能となる。アプリケーション開発装置１００と、他のコンピュータとは、ネットワークを介して接続される例を示しているが、シリアルインターフェイスまたはパラレルインターフェイスを用いて直接接続されてもよい。通信Ｉ／Ｆ１１５は、アプリケーション開発装置１００と他のコンピュータとの接続形態に応じたインターフェイスが用いられる。
【００３０】
本実施の形態におけるアプリケーション開発装置１００は、画像処理装置で実行されるアプリケーションプログラムを開発するための装置である。画像処理装置は、複写機、プリンタ、スキャナ、ファクシミリ、これらを複合した複合機等を含む。このアプリケーション開発装置１００は、コンピュータでアプリケーション開発用プログラムが実行されることにより実現される。なお、アプリケーション開発装置１００は、アプリケーション開発用プログラムをＲＯＭ等に予め記憶した専用機であてもよい。アプリケーション開発用プログラムは、秘密性レベルに応じて複数が存在する。アプリケーション開発用プログラムを提供する者によって、秘密性が異なるアプリケーション開発用プログラムが提供される。たとえば、画像処置装置の製造者にあっては、秘密性レベルが最も高いレベル３のプリケーション開発用プログラムが提供される。その製造者に信頼された者には、秘密性レベルが次に高いレベル２のアプリケーション開発用プログラムが提供される。画像処理装置の管理者には、秘密性レベルが次に高いレベル１のアプリケーション開発用プログラムが提供される。一般ユーザには、秘密性レベルが最も低いレベル０のアプリケーション開発用プログラムが提供される。
【００３１】
図２は、アプリケーション開発用プログラムの構成の一例を示す図である。アプリケーション開発用プログラム１５０は、レベルキー１５１と、コマンドレベルリスト１５３と、編集部１５５と、コンパイラ部１５７とを含む。レベルキーは、アプリケーション開発用プログラム１５０に与えられた秘密性レベルである。コマンドレベルリスト１５３は、ＡＰＩが有する複数のコマンド（関数）ごとに許可レベルを対応付けたデータである。編集部１５５は、コンピュータに実行される部分であり、ソースプログラムを作成するための処理が記述された編集プログラムである。コンパイラ部１５７は、コンピュータに実行される部分であり、生成されソースプログラムをコンパイルして実行プログラムを生成するための処理が記述されたコンパイルプログラムである。
【００３２】
図３は、コマンドレベルリストを説明するための図である。コマンドレベルリストは、コマンドごとに許可レベルを対応付ける。許可レベルは、秘密性レベルで定められる。図３を参照して、パネルＧＵＩ（Graphical User Interface）変更に関するコマンドと、宛先情報の取得、登録または変更に関するコマンドとには、秘密性レベルが最も低いレベル０の許可レベルが対応付けられる。ユーザ情報の取得、登録または変更に関するコマンドと、ユーザカウンタ情報の取得または変更に関するコマンドとには、秘密性レベルがレベル０より高いレベル１の許可レベルが対応付けられる。仕向変更に関するコマンド、またはオプションの変更または画質調整に関するコマンドとには、秘密性レベルがレベル１より高いレベル２の許可レベルが対応付けられる。トータルカウンタ情報の書換えに関するコマンドには、秘密性レベルがレベル２より高い最高のレベル３の許可レベルが対応付けられる。
【００３３】
ここで、レベルキーと許可レベルとの関係について説明する。レベルキーと許可レベルとは共に秘密性レベルで定められる。許可レベルは、コマンドごとに付される秘密性レベルを示す。レベルキーは、アプリケーション開発用プログラムごとに付される秘密性レベルを示す。本実施の形態におけるアプリケーション開発装置１００では、アプリケーション開発用プログラムに付されたレベルキーにより定まる秘密性レベル以下の秘密性レベルが許可レベルによって付されたコマンドの使用を許可する。
【００３４】
図４は、アプリケーション開発装置で実行されるアプリケーションプログラム作成処理の流れを示すフローチャートである。このアプリケーションプログラム作成処理は、アプリケーション開発用プログラムがＲＡＭ１０５にロードされてＣＰＵ１０１で実行される処理である。ここでは、アプリケーションプログラムのソースプログラムが作成された後の処理を示している。まず、コンパイル指示の入力が受付けられたか否かが判断される（ステップＳ０１）。コンパイル指示が入力されるまで待機状態となり（ステップＳ０１でＮＯ）、コンパイル指示が入力されればステップＳ０２に進む。ステップＳ０２では、ソースプログラムが読み出される（ステップＳ０２）。
【００３５】
そして、コマンドレベルリストが取得される（ステップＳ０３）。コマンドレベルリストは、上述したようにアプリケーション開発用プログラムに書き込まれているため、アプリケーション開発用プログラムからコマンドレベルリストが取得される。さらに、レベルキーが取得される（ステップＳ０４）。レベルキーは、上述したようにアプリケーション開発用プログラムに書き込まれているため、アプリケーション開発用プログラムからレベルキーが取得される。
【００３６】
次のステップＳ０５では、ステップＳ０２で読み出されたソースプログラムに記述されているコマンドを抽出する。抽出されたコマンドを処理対象コマンドという。そして、コマンドレベルリストによって、抽出したコマンドに対応付けられている許可レベルが取得される（ステップＳ０６）。取得された許可レベルがステップＳ０４でアプリケーション開発用プログラムから取得されたレベルキーと比較される（ステップＳ０７）。許可レベルがレベルキー以下であれば処理対象コマンドを有効と判断してステップＳ１０に進み、そうでなければステップＳ１８に進む。
【００３７】
ステップＳ０８では、コマンドの使用態様がチェックされ、次のステップＳ０９でチェック結果が判定される。チェック結果が有効であればステップＳ１０に進むが、無効の場合にはステップＳ１４に進む。ステップＳ１０では次に処理対象とするコマンドがソースプログラムに記述されているか否かが判断され、記述されていれば上述した処理を繰り返すためにステップＳ０５に戻り、記述されていなければステップＳ１１に進む。ステップＳ１４ではエラー処理を実行した後、処理を終了する。エラー処理は、アプリケーション開発装置１００のユーザにコンパイルできないことを知らせる処理であり、たとえば、許可されていないコマンドが記述されているためにコンパイルできないことを示すメッセージを表示する。
【００３８】
ステップＳ１１では、ソースプログラムをコンパイルして実行プログラムを生成する。次のステップＳ１２では、生成された実行プログラムにステップＳ０４で取得されたレベルキーを付加する。これによりレベルキーは、実行プログラムの一部に含まれる。次のステップＳ１３では、レベルキーが付加された実行プログラムがアプリケーションプログラムとして出力される。これにより、アプリケーションプログラムが、ＨＤＤ１０７またはＩＣカード１０８に記憶される。アプリケーションプログラムをＩＣカード１０８に記憶すれば、そのＩＣカード１０８を、画像処理装置で読み取ることにより画像処理装置でアプリケーションプログラムを実行することが可能となる。また、通信Ｉ／Ｆ１１５を介してネットワークに接続された画像処理装置に送信するようにしてもよい。
【００３９】
なお、アプリケーションプログラムを記憶する記録媒体としてはＩＣカード１０８に限られず、フレキシブルディスク、カセットテープ、光ディスク（ＭＯ（Ｍａｇｎｅｔｉｃ
Ｏｐｔｉｃａｌ Ｄｉｓｃ／ＭＤ（Ｍｉｎｉ Ｄｉｓｃ）／ＤＶＤ（Ｄｉｇｉｔａｌ Ｖｅｒｓａｔｉｌｅ Ｄｉｓｃ））、光カード、マスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭなどの半導体メモリ等の固定的にプログラムを担持する媒体であってもよい。
【００４０】
図５は、図４のステップＳ０８で実行される使用態様チェック処理の流れを示すフローチャートである。図５を参照して、まず、処理対象とされているコマンドが、他のコマンドと有効な組合せで記述されているか否かが判断される（ステップＳ２１）。有効な組合せの判断は、予めコマンドレベルリストに記述してある組合せ一覧を参照して、その組合せ一覧に定義された組合せであれば処理対象コマンドを有効と判断する。有効と判断した場合にはステップＳ２２に進み、そうでなければステップＳ２３に進む。ステップＳ２２では、処理対象コマンドを有効としてリターンする。すなわち、レベルキーが処理対象コマンドに付された許可レベルより小さい場合であっても、組合せ一覧で定義されている組合せコマンドと組み合わせて記述されていることを条件に、処理対象コマンドを有効とする。
【００４１】
図６は、組合せ一覧の一例を示す図である。図６を参照して、組合せ一覧は、処理対象コマンドと組合せコマンドとを定義する。図６では、処理対象コマンドである情報取得コマンドに対して、暗号化コマンドが組合せコマンドとして定義される。このため、情報取得コマンドの許可レベルがレベルキーより小さくても、暗号化コマンドと組み合わせて記述されていれば、情報取得コマンドが有効とされる。また、処理対象コマンドであるカウンタ情報取得コマンドに対して、パネル表示コマンドが組合せコマンドとして定義される。このため、カウンタ情報取得コマンドの許可レベルがレベルキーより小さくても、パネル表示コマンドと組み合わせて記述されていれば、カウンタ情報取得コマンドが有効とされる。
【００４２】
図５に戻って、ステップＳ２３では、処理対象コマンドが情報取得コマンドか否かが判断される。真の場合にはステップＳ２４に進み、偽の場合にはステップＳ２５に進む。本実施の形態において、情報取得コマンドには、ユーザの情報を取得するユーザ情報取得コマンドと、ユーザのパスワードを取得するパスワード取得コマンドとを含む。ステップＳ２３では、処理対象コマンドがユーザ情報取得コマンドまたはパスワード取得コマンドの場合にはステップＳ２４に進み、いずれでもない場合にステップＳ２６に進む。
【００４３】
ステップＳ２４では、ユーザ情報取得コマンドが認証ユーザの情報を取得するように記述されているか、または、パスワード取得コマンドが認証ユーザのパスワードを取得するように記述されているかが判断される。ユーザ情報取得コマンドまたはパスワード取得コマンドが、認証されたユーザに関連するユーザ情報またはパスワードにアクセスするように記述されていれば、真と判断し、そのように記述されていなければ偽と判断する。真と判断した場合にはステップＳ２２に進むが、偽と判断した場合にはステップＳ２５に進む。ステップＳ２２では、処理対象コマンドを有効としてリターンし、ステップＳ２５では処理対象コマンドを無効としてリターンする。すなわち、情報取得コマンドが取得の対象とする情報が、認証されているユーザに関連する情報にアクセスするように記述されていることを条件に、処理対象コマンドを有効とする。
【００４４】
以上説明したように本実施の形態におけるアプリケーション開発装置１００で実行されるアプリケーション開発用プログラム１５０は、アプリケーション開発装置１００で実行されると、アプリケーションプログラムの作成時において、アプリケーション開発用プログラム１５０に含まれるレベルキーによって、使用可能なコマンドを制限させる。その結果、アプリケーションプログラムが不正に作成されるのを防止することができる。
【００４５】
また、アプリケーション開発用プログラム１５０に含まれるレベルキーごとに使用を許可するコマンドを異ならせることができるので、アプリケーション開発用プログラムごとに使用できるコマンドを異ならせることができる。
【００４６】
＜画像処理装置＞
【００４７】
次に、上述したアプリケーションプログラムが実行される画像処理装置について説明する。ここでは、画像処理装置の一例としてＭＦＰ（Ｍｕｌｔｉ
Ｆｕｎｃｔｉｏｎ Ｐｅｒｉｐｈｅｒａｌ）を例に説明する。
図７は、本実施の形態におけるＭＦＰのハード構成を示すブロック図である。図７を参照して、ＭＦＰ２００は、スキャナ部２０３と、用紙などの記録媒体に画像を形成する画像形成部２０６と、それぞれがバス２１１に接続されたＣＰＵ（Central Processing Unit）２０１と、記憶部２０２と、スキャナ部２０３が出力する画像データを処理する入力画像処理部２０４と、画像データに出力するのに適した処理を行う出力画像処理部２０５と、ネットワークインターフェイス（Ｉ／Ｆ）２０７と、モデム２０８と、操作パネル２０９と、カードＩ／Ｆ２１０とを含む。
【００４８】
ＣＰＵ２０１は、ＭＦＰ２００の全体を制御する。記憶部２０２は、ＲＯＭ（Read
Only Memory）、ＲＡＭ（Random Access Memory）およびEEPROM〔Electrically Erasable/Programable ROM）などの半導体メモリおよびハードディスクドライブ（ＨＤＤ）等の磁気記憶装置を含む。ＣＰＵ２０１は、ＲＯＭまたはＥＥＰＲＯＭに記憶されたアプリケーションプログラムをＲＡＭにロードして実行する。
【００４９】
スキャナ部２０３は、ＣＣＤ（Charge Coupled Device）等の光電変換素子を含み、原稿を光学的に読取って電子データとしての画像データを入力画像処理部２０４に出力する。入力画像処理部２０４は、入力された画像データに対して、色変換処理、色補正処理、解像度変換処理、領域判別処理などを実行して、処理した画像データを記憶部２０２に記憶する。
【００５０】
出力画像処理部２０５は、記憶部２０２から画像データを読み出して、スクリーン制御処理、スムージング処理、パルス幅変調（ＰＷＭ）を行い、処理後の画像データを画像形成部２０６に出力する。画像形成部２０６は、レーザプリンタであり、出力画像処理部２０５から入力される画像データを紙などの記録媒体に可視化する。画像形成部２０６は、カラープリントの場合には、イエロー、マゼンタ、シアン、ブラックの４色のトナーで画像を形成する。画像形成部２０６は、インクジェットプリンタであってもよい。
【００５１】
カードＩ／Ｆ２１０には、ＩＣカード１０８が装着される。ＣＰＵ２０１は、カードＩ／Ｆ２１０を介してＩＣカード１０８にアクセスが可能である。ネットワークＩ／Ｆ２０７は、ＭＦＰ２００をネットワークと接続する。
【００５２】
ネットワークＩ／Ｆ２０７は、データを所定の通信プロトコルに従ってネットワークに出力し、ネットワークから所定の通信プロトコルに従ってデータを受信する。ＣＰＵ２０１は、ネットワークＩ／Ｆ２０７を介してネットワークに接続された他のコンピュータと通信することが可能となる。このため、ネットワークを介して上述したアプリケーション開発装置１００と接続した場合には、アプリケーション開発装置１００から送信されるアプリケーションプログラムがネットワークＩ／Ｆ２０７で受信される。
【００５３】
モデム２０８は、ＭＦＰ２００を電話回線と接続する。モデム２０８は、データをファクシミリの通信プロトコルに従ってファクシミリ通信を可能とする。モデム２０８は、ファクシミリ受信されたデータを記憶部２０２のＨＤＤに記憶する。また、モデム２０８は、電話回線に接続されたコンピュータとの通信を可能とするためＮＣＵ（Network Control Unit）を含む。このため、電話回線を介して上述したアプリケーション開発装置１００と接続した場合には、アプリケーション開発装置１００から送信されるアプリケーションプログラムがモデム２０８で受信される。
【００５４】
操作パネル２０９は、入力部２０９Ａと表示部２０９Ｂとを含む。入力部２０９Ａは、ＭＦＰ２００のユーザによる操作の入力を受付けるためのタッチパネル、キーボードまたはマウス等の入力装置である。表示部２０９Ｂは、液晶表示装置または有機ＥＬ（ｅｌｅｃｔｒｏ−ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイパネルである。入力部２０９Ａに透明な部材からなるタッチパネルを用いる場合には、表示部２０９Ｂ上にタッチパネルを重ねて設置することで、表示部２０９Ｂに表示されたボタンの指示を検出することができる。これにより、種々の操作の入力が可能となる。
【００５５】
なお、ＣＰＵ２０１で実行するアプリケーションプログラムは、ＥＥＰＲＯＭに記憶されたものに限られず、ＨＤＤまたはＩＣカード１０８に記憶されたアプリケーションプログラムをＲＡＭにロードして実行するようにしてもよい。ＥＥＰＲＯＭまたはＨＤＤに記憶されるアプリケーションプログラムは、ネットワークに接続された他のコンピュータが、アプリケーションプログラムを書換える、または、新たなアプリケーションプログラムを追加して書き込むようにしてもよいし、ＭＦＰ２００が、ネットワークまたは電話回線に接続された他のコンピュータからアプリケーションプログラムをダウンロードして、そのアプリケーションプログラムを記憶するようにしてもよい。
【００５６】
さらに、ＩＣカード１０８に記憶されたアプリケーションプログラムをＲＡＭにロードして実行するようにしてもよい。なお、アプリケーションプログラムが、ＩＣカード１０８ではなく、フレキシブルディスク、カセットテープ、光ディスク（ＭＯ（Ｍａｇｎｅｔｉｃ
Ｏｐｔｉｃａｌ Ｄｉｓｃ／ＭＤ（Ｍｉｎｉ Ｄｉｓｃ）／ＤＶＤ（Ｄｉｇｉｔａｌ Ｖｅｒｓａｔｉｌｅ Ｄｉｓｃ））、光カード、マスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭなどの半導体メモリ等の固定的にプログラムを担持する媒体に記憶される場合には、ＭＦＰ１００は、その記憶媒体に記憶されたアプリケーションプログラムをＲＡＭにロードして実行する。
【００５７】
ここでいうプログラムは、ＣＰＵ２０１により直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００５８】
本実施の形態におけるＭＦＰ２００は、図３に示したコマンドレベルリストを予め記憶部２０２に記憶している。このコマンドレベルリストは、通常は、記憶部２０２のＲＯＭに記憶されており、ＭＦＰ１００のユーザが書き換えることができないようになっている。
【００５９】
図８は、本実施の形態におけるＭＦＰで実行されるアプリケーションプログラム実行処理の流れを示すフローチャートである。このアプリケーションプログラム実行処理は、ＣＰＵ２０１で実行される処理である。図８を参照して、まず、アプリケーションプログラムが読み出される（ステップＳ３１）。そして、コマンドレベルリストが取得される（ステップＳ３２）。コマンドレベルリストは、上述したように記憶部２０２のＲＯＭに記憶されているため、ＲＯＭからコマンドレベルリストが読み出されることにより取得される。さらに、レベルキーが取得される（ステップＳ３３）。レベルキーは、上述したようにアプリケーションプログラムに書き込まれているため、アプリケーションプログラムからレベルキーが取得される。なお、アプリケーションプログラムにレベルキーが書き込まれていない場合には、レベルキーを秘密性レベル０とする。
【００６０】
次のステップＳ３４では、ステップＳ３３で読み出されたアプリケーションプログラムに記述されているコマンドを抽出する。抽出されたコマンドを処理対象コマンドという。そして、コマンドレベルリストによって、抽出したコマンドに対応付けられている許可レベルが取得される（ステップＳ３５）。取得された許可レベルがステップＳ３３でアプリケーションプログラムから取得されたレベルキーと比較される（ステップＳ３６）。許可レベルがレベルキー以下であれば処理対象コマンドを有効と判断してステップＳ３９に進み、そうでなければステップＳ３７に進む。
【００６１】
ステップＳ３７では、コマンドの使用態様がチェックされる。ここで実行される使用態様チェック処理は、図５に示した処理と同じであるので、ここでは説明を繰り返さない。次のステップＳ３８でチェック結果が判定される。チェック結果が有効であればステップＳ３９に進むが、無効の場合にはステップＳ４１に進む。ステップＳ３９では処理対象コマンドが実行されてステップＳ４０に進む。ステップＳ４０では、次に処理対象とするコマンドがアプリケーションプログラムに記述されているか否かが判断され、記述されていれば上述した処理を繰り返すためにステップＳ３４に戻り、記述されていなければ処理を終了する。
【００６２】
ステップＳ４１ではエラー処理を実行したのち処理を終了する。エラー処理は、ＭＦＰ２００のユーザに実行できないアプリケーションであることを知らせる処理であり、たとえば、不正なアプリケーションプログラムで実行できないことを示すメッセージを表示する。
【００６３】
以上説明したように本実施の形態におけるＭＦＰ２００は、ＡＰＩの複数のコマンドごとに許可レベルを対応付けたコマンドレベルリストを記憶部２０２のＲＯＭに記憶している。そして、アプリケーションプログラムから取得されたレベルキーと、アプリケーションプログラムに含まれるコマンドに対応付けられた許可レベルとから、コマンドの有効性を判定する。このため、アプリケーションプログラムの実行時において、アプリケーションプログラムの有効性を判定して、不正に作成されたアプリケーションプログラムの実行を制限することができる。
【００６４】
また、アプリケーションプログラムに含まれるレベルキーによって、実行を制限するコマンドを異ならせるので、実行されるアプリケーションプログラムによって実行可能なコマンドを異ならせることができる。
【００６５】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【００６６】
＜付記＞
（１）前記コマンドは、作成されたアプリケーションプログラムのコンパイル時に入力される、請求項１に記載のアプリケーション開発用プログラム。
（２）前記コマンドレベルリストは、操作設定画面をカスタマイズするために用いられるコマンドには最低の許可レベルが対応付けられる。
（３）前記コマンドレベルリストは、宛先情報の取得、登録または変更するためのコマンドには最低の許可レベルが対応付けられる。
（４）前記コマンドレベルリストは、使用者の情報にアクセスするためのコマンドには、最低の許可レベルよりも高い許可レベルが対応付けられる。
（５）前記コマンドレベルリストは、課金に係わる情報にアクセスするためのコマンドには最高の許可レベルが対応付けられる。
（６）前記コマンドレベルリストは、画像処理装置の仕向地設定またはオプション設定に関するコマンドには、最高の許可レベルより低い許可レベルが対応付けられる。
【図面の簡単な説明】
【００６７】
【図１】本発明の実施の形態の一つにおけるアプリケーション開発装置のハード構成を示すブロック図である。
【図２】アプリケーション開発用プログラムの構成の一例を示す図である。
【図３】コマンドレベルリストを説明するための図である。
【図４】アプリケーション開発装置で実行されるアプリケーションプログラム作成処理の流れを示すフローチャートである。
【図５】図４のステップＳ０８で実行される使用態様チェック処理の流れを示すフローチャートである。
【図６】組合せ一覧の一例を示す図である。
【図７】本実施の形態におけるＭＦＰのハード構成を示すブロック図である。
【図８】本実施の形態におけるＭＦＰで実行されるアプリケーションプログラム実行処理の流れを示すフローチャートである。
【符号の説明】
【００６８】
１００  アプリケーション開発装置、１０１，２０１  ＣＰＵ、１０３  ＲＯＭ、１０５  ＲＡＭ、１０７  ＨＤＤ、１０８  カードＩＣ、１０９，２１０  カードＩ／Ｆ、１１１  入力部、１１３  表示部、１１５  通信Ｉ／Ｆ、１２０  バス、１５０  アプリケーション開発用プログラム、１５１  レベルキー、１５３  コマンドレベルリスト、１５５  編集部、１５７  コンパイラ部、２０２  記憶部、２０３  スキャナ部、２０４  入力画像処理部、２０５  出力画像処理部、２０６  画像形成部、２０７  ネットワークＩ／Ｆ、２０８  モデム、２０９  操作パネル、２０９Ａ  入力部、２０９Ｂ  表示部、２１１  バス。
【図１】
2006344146.tif 000003
【図２】
2006344146.tif 000004
【図３】
2006344146.tif 000005
【図４】
2006344146.tif 000006
【図５】
2006344146.tif 000007
【図６】
2006344146.tif 000008
【図７】
2006344146.tif 000009
【図８】
2006344146.tif 000010