"インタフェースの少なくとも一部が公開されているフレームワークを有し、前記フレームワークに基づいて作成されたアプリケーションプログラムを実行可能な装置であって、前記アプリケーションプログラムに付与されたセキュリティレベルを判断し、前記セキュリティレベルに応じて当該アプリケーションプログラムによる前記フレームワークの利用を制限するセキュリティ管理手段と、前記セキュリティレベルごとに前記フレームワークの利用の権限を示す情報を管理する権限管理手段とを有し、前記セキュリティ管理手段は、前記権限管理手段に基づいて前記フレームワークの利用を制限することを特徴とする装置。前記セキュリティ管理手段は、前記フレームワークにおいて公開されていないインタフェースに対してアクセスが発生したときに、前記セキュリティレベルに応じて前記フレームワークの利用を制限することを特徴とする請求項1記載の装置。前記フレームワークは複数のクラスによって構成され、前記セキュリティ管理手段は、前記アプリケーションプログラムが前記クラスを継承させたサブクラスを利用する際に、前記セキュリティレベルに応じて当該アプリケーションプログラムによる前記クラスの利用を制限することを特徴とする請求項1又は2記載の装置。前記複数のクラスの一つは列挙値を定義するクラスであり、前記セキュリティ管理手段は、前記アプリケーションプログラムが前記列挙値を定義するクラスを継承させたサブクラスを利用する際に、前記セキュリティレベルに応じて当該アプリケーションプログラムによる前記列挙値を定義するクラスの利用を制限することを特徴とする請求項3記載の装置。インタフェースの少なくとも一部が公開されているフレームワークを有し、前記フレームワークに基づいて作成されたアプリケーションプログラムを実行可能な装置におけるセキュリティ管理方法であって、前記アプリケーションプログラムに付与されたセキュリティレベルを判断するセキュリティレベル判断手順と、前記セキュリティレベルに応じて当該アプリケーションプログラムによる前記フレームワークの利用を制限するセキュリティ管理手順とを有し、前記セキュリティ管理手順は、前記セキュリティレベルごとに前記フレームワークの利用の権限を示す権限情報に基づいて前記フレームワークの利用を制限することを特徴とするセキュリティ管理方法。前記セキュリティ管理手順は、前記フレームワークにおいて公開されていないインタフェースに対してアクセスが発生したときに、前記セキュリティレベルに応じて前記フレームワークの利用を制限することを特徴とする請求項5記載のセキュリティ管理方法。前記フレームワークは複数のクラスによって構成され、前記セキュリティ管理手順は、前記アプリケーションプログラムが前記クラスを継承させたサブクラスを利用する際に、前記セキュリティレベルに応じて当該アプリケーションプログラムによる前記クラスの利用を制限することを特徴とする請求項5又は6記載のセキュリティ管理方法。前記複数のクラスの一つは列挙値を定義するクラスであり、前記セキュリティ管理手順は、前記アプリケーションプログラムが前記列挙値を定義するクラスを継承させたサブクラスを利用する際に、前記セキュリティレベルに応じて当該アプリケーションプログラムによる前記列挙値を定義するクラスの利用を制限することを特徴とする請求項7記載のセキュリティ管理方法。請求項5乃至8いずれか一項記載のセキュリティ管理方法をコンピュータに実行させるためのセキュリティ管理プログラム。請求項9記載のセキュリティ管理プログラムを記録したコンピュータ読み取り可能な記録媒体。しかしながら、上記のようなクラスenum型を実現するためのクラスがいわゆるフレームワークにおいて定義されている場合、列挙値を拡張するためにはFontStyleクラスのサブクラス化が行えないため、FonsStyleクラスの定義自体を変更しなければならない。したがって、フレームワークの提供者は、当該フレームワークの利用者に対して、拡張部分のみならず、拡張後のフレームワーク全体を改めて提供しなければならず、場合によっては、当該フレームワークの利用者は、当該フレームワーク上に構築したアプリケーションの再コンパイル等を実行しなければならないという問題がある。近年では、複写機や融合機等の画像形成装置においても、フレームワークが実装され、そのAPIApplicationProgramInterfaceが公開されているものがある。そして、画像形成装置の利用者側で、そのAPIに基づくアプリケーションを実装することで、利用者独自の機能を追加できるものがある。したがって、上記のような問題はかかる画像形成装置においても同様に発生し得る問題である。本発明は、上記の点に鑑みてなされたものであって、セキュリティを適切に維持しつつフレームワークの機能を拡張させることのできる装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体の提供を目的とする。そこで上記課題を解決するため、本発明は、インタフェースの少なくとも一部が公開されているフレームワークを有し、前記フレームワークに基づいて作成されたアプリケーションプログラムを実行可能な装置であって、前記アプリケーションプログラムに付与されたセキュリティレベルを判断し、前記セキュリティレベルに応じて当該アプリケーションプログラムによる前記フレームワークの利用を制限するセキュリティ管理手段と、前記セキュリティレベルごとに前記フレームワークの利用の権限を示す情報を管理する権限管理手段とを有し、前記セキュリティ管理手段は、前記権限管理手段に基づいて前記フレームワークの利用を制限することを特徴とする。このような装置では、セキュリティを適切に維持しつつフレームワークの機能を拡張させることができる。また、上記課題を解決するため、本発明は、上記装置におけるセキュリティ管理方法、前記セキュリティ管理方法をコンピュータに実行させるためのセキュリティ管理プログラム、又は前記セキュリティ管理プログラムを記録した記録媒体としてもよい。本発明によれば、セキュリティを適切に維持しつつフレームワークの機能を拡張させることのできる装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体を提供することができる。以下、図面に基づいて本発明の実施の形態を説明する。図3は、本発明の実施の形態における融合機を表す図である。図3の融合機101は、種々のハードウェア111と、種々のソフトウェア112と、融合機起動部113により構成される。融合機101のハードウェア111としては、撮像部121と、印刷部122と、その他のハードウェア123が存在する。撮像部121は、読取原稿から画像画像データを読み取るためのハードウェアである。印刷部122は、画像画像データを印刷用紙に印刷するためのハードウェアである。融合機101のソフトウェア112としては、種々のアプリケーション131と、種々のプラットフォーム132が存在する。これらのプログラムは、UNIX登録商標等のOSオペレーティングシステムによりプロセス単位で並列的に実行される。アプリケーション131としては、コピー用のアプリケーションであるコピーアプリ141、プリンタ用のアプリケーションであるプリンタアプリ142、スキャナ用のアプリケーションであるスキャナアプリ143、ファクシミリ用のアプリケーションであるファクシミリアプリ144、ネットワークファイル用のアプリケーションであるネットワークファイルアプリ145が存在する。そしてさらに、Webページの閲覧用のソフトウェアであるWebブラウザ181、Webページの配信用のソフトウェアであるWebサーバソフト182、CSDKアプリ146やJSDKアプリ147の制御用のソフトウェアであるSDKアプリケーションサービスSAS183が存在する。アプリケーション131は、専用のSDKソフトウェア開発キットを使用して開発することができる。SDKを使用して開発したアプリケーション131をSDKアプリと呼ぶ。専用のSDKとしては、C言語でアプリケーション131を開発するためのCSDKや、Java登録商標言語でアプリケーション131を開発するためのJSDKが提供される。CSDKを使用して開発したアプリケーション131をCSDKアプリと呼び、JSDKを使用して開発したアプリケーション131をJSDKアプリと呼ぶ。図3の融合機101にも、CSDKアプリ146と、JSDKアプリ147が存在する。図3の融合機101にはさらに、Java登録商標言語で記述されたJSDKアプリ147とC言語で記述された他のソフトウェア112との仲介を行うソフトウェア112として、JSDKプラットフォーム148が存在する。なお、JSDKプラットフォーム148は、本発明の実施の形態においてフレームワークの具体例に相当する。プラットフォーム132としては、種々のコントロールサービス151、システムリソースマネージャ152、種々のハンドラ153が存在する。コントロールサービス151としては、ネットワークコントロールサービスNCS161、ファクシミリコントロールサービスFCS162、デリバリコントロールサービスDCS163、エンジンコントロールサービスECS164、メモリコントロールサービスMCS165、オペレーションパネルコントロールサービスOCS166、サーティフィケーションコントロールサービスCCS167、ユーザディレクトリコントロールサービスUCS168、システムコントロールサービスSCS169が存在する。ハンドラ153としては、ファクシミリコントロールユニットハンドラFCUH171、イメージメモリハンドラIMH172が存在する。NCS161のプロセスは、ネットワーク通信の仲介を行う。FCS162のプロセスは、ファクシミリのAPIを提供する。DCS163のプロセスは、蓄積文書の配信処理に関する制御を行う。ECS164のプロセスは、撮像部121や印刷部122に関する制御を行う。MCS165のプロセスは、メモリやハードディスクドライブに関する制御を行う。OCS166のプロセスは、オペレーションパネルに関する制御を行う。CCS167のプロセスは、認証処理や課金処理に関する制御を行う。UCS168のプロセスは、ユーザ情報の管理に関する制御を行う。SCS169のプロセスは、システムの管理に関する制御を行う。アプリケーション131とプラットフォーム132の仲介を行うソフトウェア112として、仮想アプリケーションサービスVAS135が存在する。VAS135は、アプリケーション131をクライアントとするサーバプロセスとして動作すると共に、プラットフォーム132をサーバとするクライアントプロセスとして動作する。VAS135は、アプリケーション131から見てプラットフォーム132を隠蔽するラッピング機能を備え、プラットフォーム132のバージョンアップに伴うバージョン差を吸収する役割等を担う。融合機起動部113は、融合機101の電源投入時に最初に実行される。これにより、UNIX登録商標等のOSが起動され、アプリケーション131やプラットフォーム132が起動される。これらのプログラムは、ハードディスクドライブやメモリカードに蓄積されており、ハードディスクドライブやメモリカードから再生されて、メモリに起動されることになる。図4は、本発明の実施の形態における融合機のハードウェア構成図である。融合機101のハードウェア111としては、コントローラ201と、オペレーションパネル202と、ファクシミリコントロールユニットFCU203と、撮像部121と、印刷部122が存在する。コントローラ201は、CPU211、ASIC212、NB221、SB222、MEM-P231、MEM-C232、HDDハードディスクドライブ233、メモリカードスロット234、NICネットワークインタフェースコントローラ241、USBデバイス242、IEEE1394デバイス243、セントロニクスデバイス244により構成される。CPU211は、種々の情報処理用のICである。ASIC212は、種々の画像処理用のICである。NB221は、コントローラ201のノースブリッジである。SB222は、コントローラ201のサウスブリッジである。MEM-P231は、融合機101のシステムメモリである。MEM-C232は、融合機101のローカルメモリである。HDD233は、融合機101のストレージである。メモリカードスロット234は、メモリカード235をセットするためのスロットである。NIC241は、MACアドレスによるネットワーク通信用のコントローラである。USBデバイス242は、USB規格の接続端子を提供するためのデバイスである。IEEE1394デバイス243は、IEEE1394規格の接続端子を提供するためのデバイスである。セントロニクスデバイス244は、セントロニクス仕様の接続端子を提供するためのデバイスである。オペレーションパネル202は、オペレータが融合機101に入力を行うためのハードウェア操作部であると共に、オペレータが融合機101から出力を得るためのハードウェア表示部である。図5は、本発明の実施の形態における融合機の外観図である。図5には、撮像部121の位置と、印刷部122の位置と、オペレーションパネル202の位置が図示されている。図5には更に、読取原稿のセット先となる原稿セット部301と、印刷用紙の給紙先となる給紙部302と、印刷用紙の排紙先となる排紙部303が図示されている。オペレーションパネル202は、図6のように、タッチパネル311と、テンキー312と、スタートボタン313と、リセットボタン314と、機能キー315と、初期設定ボタン316により構成される。タッチパネル311は、タッチ操作で入力を行うためのハードウェアタッチ操作部であると共に、画面表示で出力を得るためのハードウェア画面表示部である。テンキー312は、キーボタン操作で数字入力を行うためのハードウェアである。スタートボタン313は、ボタン操作でスタート操作を行うためのハードウェアである。リセットボタン314は、ボタン操作でリセット操作を行うためのハードウェアである。機能キー315は、キーボタン操作でCSDKアプリ146やJSDKアプリ147による操作画面を表示させるためのハードウェアである。初期設定ボタン316は、ボタン操作で初期設定画面を表示させるためのハードウェアである。原稿セット部301は、ADF自動原稿搬送装置321と、フラットベッド322と、フラットベッドカバー323により構成される。給紙部302は、4個の給紙トレイにより構成される。排紙部303は、1個の排紙トレイにより構成される。ADF321には、複数枚の読取原稿を重ねてセットすることができる。フラットベッド322には、読取原稿を下向きにセットする。JSDK図7は、JSDKアプリとJSDKプラットフォームのクラス図である。JSDKアプリ147とJSDKプラットフォーム148は、全体で1プロセスとして、同一プロセス上で実行される。JSDKアプリ147とJSDKプラットフォーム148中の各ブロックは、それぞれこの1プロセス上のスレッドとして、スレッド単位で並列的に実行マルチスレッドされる。JSDKアプリ147とJSDKプラットフォーム148は、Java登録商標コンパイラによりソースコードからバイトコードに一括翻訳されており、Java登録商標仮想マシンにより逐次実行される。JSDKアプリ147とJSDKプラットフォーム148は、Java登録商標2MicroEditionのPersonalBasisProfileをベースとする実装となっている。JSDKアプリ147としては、ユーザアプリ701と、JSDKGUIManager711と、TaskBarManager712等が存在する。ユーザアプリ701は、融合機101のユーザ例えばベンダがJSDKを使用して開発したJSDKアプリである。JSDKGUIManager711は、他のJSDKアプリユーザアプリ701等を操作対象とする操作画面の表示等を行うJSDKアプリである。TaskBarManager712は、他のJSDKアプリユーザアプリ701等を操作対象とするタスクバーの表示等を行うJSDKアプリである。ユーザアプリ701はここでは、スタンドアロンアプリケーションやアプレットと並ぶJava登録商標アプリケーションであるXletである。JSDKGUIManager711とTaskBarManager712はここでは、独自の拡張を施したXletXletExである。JSDKプラットフォーム148には、JSDKMain721と、JSDKEnvironment722と、LocaleManager723と、XletManager731と、MultiXletManager732と、JSDKManager733と、SendManager741と、EventManager742と、SystemEventManager743と、PanelManager744と、InstallManager745と、Server/ClientManager746と、SecurityManager747等のクラスが存在する。JSDKMain721は、JSDKシステムの起動設定を行うクラスである。JSDKEnvironment722は、JSDKシステムの起動環境設定を行うクラスである。LocaleManager723は、国際化対応言語指定を行うクラスである。XletManager731は、1対1でXletのライフサイクルを管理するクラスである。ここでは、5個のXletのライフサイクルが1対1で5個のXletManager731によって管理される。MultiXletManager732は、全てのXletManager731のライフサイクルを管理するクラスである。ここでは、5個のXletManager731のライフサイクルが全て1個のMultiXletManager732によって管理される。JSDKManager733は、JSDKシステム全体のライフサイクルを管理するクラスである。例えば、MultiXletManager732,SendManager741,EventManager742,SystemEventManager743,PanelManager744,InstallManager745,Server/ClientManager746,SecurityManager747のライフサイクルが、JSDKManager733によって管理される。SystemEventManager743は、図3のプラットフォーム132からのシステムイベント電力モード等の管理を行うクラスである。PanelManager744は、1個のXletがオペレーションパネル202の画面を占有する際の調停等を行うクラスである。InstallManager745は、SDcardやWebからのインストールやアンインストールの管理を行うクラスである。図7のJSDKシステムには、APIとして、JSDKAPI751とJSDKAPI752等が存在する。なお、XletとXletExの差異として、オブジェクトにアクセスするのにJSDKAPI751の利用とJSDKプラットフォーム148へのアクセスが可能である点が挙げられる。図3の融合機101にはさらに、図7のJSDKシステムに係る要素として、C言語とJava登録商標言語のインタフェースとなるJSDKSession753とNativeJSDKSession754等が存在する。図3の融合機101にはさらに、図7のJSDKシステムに係る要素として、Java登録商標コンパイラによりソースコードからバイトコードに一括翻訳されたJava登録商標プログラムを逐次実行するためのJava登録商標仮想マシンであるCVMコンパクト仮想マシン755等が存在する。SecurityManagerSecurityManagerセキュリティマネージャ747は、Java登録商標で元々提供されているSecurityManagerクラスを拡張したクラスであり、JSDKプラットフォーム148上において不正なアプリケーションが実行されないよう、セキュリティ機構を実現する。すなわち、ユーザアプリ701は、JSDKプラットフォーム148における各種のクラスのうち、JSDK公開クラスとJava登録商標標準クラス以下、単に標準クラスという。に対するアクセスが許可されるが、そのアクセス時には、ユーザアプリ701からセキュリティマネージャ747に対してアクセス権限に関する問い合わせが行われる。図8は、セキュリティマネージャの機能を説明するための図である。例えば、ユーザアプリ701が、JSDKプラットフォーム148におけるJSDK公開クラス148aにアクセスするとS101、それに基づいてJSDK非公開クラス148b及び標準クラス148cが呼び出されるS102、S103。S101~S103は、例えば、或るJSDK公開クラス148aのコンストラクタがユーザアプリ701に呼び出され、当該JSDK公開クラス148aのスーパークラスとしてのJSDK非公開クラス148b及び標準クラス148cのコンストラクタが連鎖的に呼び出されるような場合を想定するとよい。なお、JSDK公開クラスとは、そのインタフェースが公開されているクラスをいい、JSDK非公開クラスとは、そのインタフェースが非公開のクラスをいう。続いて、標準クラス148cは、セキュリティマネージャ747に対して当該ユーザアプリ701の権限の問い合わせを行うS104。問い合わせに応じ、セキュリティマネージャ747は、Policyオブジェクトより、JSDKプラットフォーム148のセキュリティポリシーを読み出し、当該ユーザアプリ701の権限を判断するS105。なお、Policyオブジェクトは、JSDKプラットフォーム148の起動時等において、JSDKプラットフォーム148のセキュリティポリシーが予め設定されたファイル以下セキュリティポリシー設定ファイルという。よりセキュリティポリシーを読み込んで保持しておくためのオブジェクトであるS106。セキュリティマネージャ148は、当該ユーザアプリ701が、当該JSDK非公開クラス148bに対するアクセス権を有していないと判断すると例外を発生させるS107。当該例外は、標準クラス148c、JSDK非公開クラス148b、JSDK公開クラス148aを介してユーザアプリ701に通知されるS108、S109、S110。本実施の形態におけるJSDKプラットフォーム148のセキュリティポリシーは、セキュリティレベルに基づいて定義されている。ここで、セキュリティレベルとは、各ユーザアプリ701の権限を分類するための情報をいい、例えば、3段階のレベルを有する。すなわち、セキュリティポリシー設定ファイルには、セキュリティレベルごとに融合機101の各種のリソースに対するアクセス権限が設定されている。図9は、セキュリティポリシー設定ファイルの定義例を示す図である。図9では、便宜上、アクセス権限の内容の具定例は記載されていないが、例えば、レベル1のアプリケーションは、JSDKプラットフォーム148と同じ権限非公開クラス148bも含めて全てのリソースへのアクセスが可能な権限を有し、レベル2のアプリケーションは、レベル1に比べてリソースへのアクセスが制限され、レベル3のアプリケーションは、リソースへのアクセスが更に制限されるといったような内容が定義される。一方、各ユーザアプリ701には、予めセキュリティレベルが付与されている。したがって、図8においてセキュリティマネージャ747は、当該ユーザアプリ701のセキュリティレベルとセキュリティレベル設定ファイルの設定内容とを照合することにより、当該ユーザアプリ701の権限を判断する。なお、セキュリティレベルの付与及び変更は、例えば融合機101のベンダに対する申請によって行うようにしてもよい。そうすることで、各ユーザアプリ701の権限の管理を融合機101のベンダが厳格に行うことができる。また、各ユーザアプリ701に対するセキュリティレベルの値は、所定のファイル内に定義しておき、そのファイルに基づいてセキュリティマネージャ747が判断してもよいし、ユーザアプリ701がセキュリティマネージャ747に通知するようにしてもよい。例えば、レベル1が付与されたユーザアプリ701の動作は、図10のようになる。図10は、レベル1のユーザアプリの動作を説明するための図である。レベル1のユーザアプリ701は、JSDK公開クラス148aのみならず、JSDK非公開クラス148bに対するアクセスも認められる。したがって、いずれかに対する呼び出しに基づきS201、S202、標準クラス148cが呼び出されるS203、S204。標準クラス148cは、セキュリティマネージャ747に対して当該ユーザアプリ701の権限の問い合わせを行う。セキュリティマネージャ747は、当該ユーザアプリ701のセキュリティレベルレベル1とセキュリティポリシー設定ファイルの設定内容とを照合することにより、当該ユーザアプリ701の当該非公開クラス148bに対するアクセスを許可する。列挙型以下、上記のような仕組みを有するJSDKプラットフォーム148において、Java登録商標言語で列挙型を実現する例について説明する。図11は、本発明の実施の形態におけるJSDKプラットフォームにおいて列挙型の実現例を説明するための図である。図11では、列挙値をクラスのオブジェクトとして定義する例を示している。すなわち、定義800は、当該クラスとしてJSDKプラットフォーム148に予め実装されるFontStyleクラスの定義例を示す。記述801に示されるように、FontStyleクラスの定義にはfinal修飾子が付加されている。これによって、FontStyleクラスの継承が禁止される。また、FontStyleクラスはCoreFontクラスを継承している。ここで、CoreFontクラスはJSDK非公開クラスの一つとして定義されているクラスである。更に、記述804に示されるように、FontStyleクラスのコンストラクタには、public修飾子及びprotected修飾子が付加されていない。これによって、同一のパッケージ内及びサブクラスに対してのみFontStyleクラスのオブジェクトの生成が許可される。また、記述805に示されるように、コンストラクタの中では、親クラスここではCoreFontクラスのコンストラクタを呼び出すようにしておく。記述802及び記述803では、列挙値としてFontSytleクラスのオブジェクトであるPLAINとBOLDとがインスタンス化されている。なお、FontStyleクラスは、JSDK公開クラスとして実装されている。FontStyleクラスを上記のように定義することで、列挙値の拡張が必要となった場合例えば、新たな列挙値としてITALICの追加が必要となった場合、定義900に示されるような実装をオプションライブラリとして追加的に行うことができる。ここで、追加的にとは、JSDKプラットフォーム148のソースコードここでは、FontStyleクラスの定義を変更する必要がないことを意味する。すなわち、当該オプションライブラリを配布されたユーザは、当該オプションライブラリを融合機101にインストールすれば列挙値の拡張を行うことができる。定義900では、記述901に示されるようにFontStyleクラスのサブクラスとしてFontStyleSubクラスを定義している。なお、FontStyleSubクラスについてもfinal修飾子を付加することで継承を禁止しておくとよい。ところで、上記においてFontStyleクラスの継承は禁止される旨を説明したが、厳密には、同一パッケージ内であればFontStyleクラスの継承は許可される。したがって、FontStyleSubクラスをFontStyleクラスと同一パッケージとすることでFontStyleクラスの継承が可能となる。図11では、FontStyleクラスのパッケージは、記述806に示されるようにjacorrrfunctionfontであるため、FontStyleSubクラスのパッケージもjacorrrfunctionfont記述905としておく。記述902は、新たな列挙値のITALICがFontStyleSubクラスのインスタンスとして定義されている。但し、FontStyleSubクラスは、FontStyleクラスのサブクラスであるため、ITALICはFontStyle型として扱うことができる。なお、記述903に示されるように、FontStyleSubクラスのコンストラクタは、FontStyleクラスと同様にpublic修飾子及びpretected修飾子を付加しない。また、記述904に示されるように親クラスここではFontStyleクラスのコンストラクタを呼び出すようにしておく。図11の継承関係をクラス図に示すと図12のようになる。図12は、本発明の実施の形態において列挙値を定義するためのクラスの継承関係を示す図である。図11で既に説明したとおり、FontStyleクラス502は、CoreFontクラス501を継承する。ここで、CoreFontクラスはJSDK非公開クラスであり、セキュリティレベルがレベル1のアプリケーションでないとアクセスは許可されない。一方、FontStyleクラス502は、JSDK公開クラスである。なお、CoreFontクラス501及びFontStyleクラス502は、JSDKプラットフォーム148に予め実装されているクラスである。フォントの種類を表す列挙値について新たな拡張が必要となった場合、FontStyleクラス502を継承して、FontStyleSubクラス503が定義される。ここで、ユーザアプリ701において、FontStyleSubクラス503を継承したユーザ拡張クラス504をパッケージjacorrrfunctionfont内に定義しようとしても、当該ユーザアプリ701に対してレベル1のセキュリティレベルが付与されなければ、ユーザ拡張クラス504を利用することはできない。すなわち、図8において説明したように、ユーザ拡張クラス504をインスタンス化しようとすると、FontStyleSubクラス503、FontStyleクラス502及びCoreFontクラス501のコンストラクタが呼び出され、CoreFontクラス501からのセキュリティマネージャ747への問い合わせによって、セキュリティマネージャ747は、当該ユーザアプリ701の権限セキュリティレベルを判断する。その結果当該ユーザアプリ701のセキュリティレベルがレベル1でなければ、セキュリティマネージャ747は例外を発生させる。これによって、ユーザ拡張クラス504の利用を禁止し、予期せぬ列挙値の拡張を防止することができる。なお、ユーザ拡張クラス504をFontStyleSubクラス503と異なるパッケージにおいて定義した場合は、FontStyleSubクラス503の定義におけるfinal修飾子によって、異なるパッケージにおける継承は禁止されているため、やはりセキュリティマネージャ747によって例外が発生させられる。なお、上記においては、列挙値の拡張例を説明したが、本発明は、列挙値の拡張に限定されず、JSDKプラットフォーム148のようなフレームワークに対するサブクラス化等による様々な機能拡張を行う際のセキュリティの確保に対して有効である。以上、本発明の実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形変更が可能である。"