(57)【要約】【課題】  電子機器（受信装置）において、セキュリティを確保しつつ、あるプログラムの実行時に使用することのできる該プログラム用のデータを、別のプログラムの実行時にも使用できるようにすること。【解決手段】  携帯電話機４０は、ＪＡＲストレージ４０８ａやスクラッチパッド４０８ｂに記憶されている、あるJavaＡＰ用のデータに対するアクセスが、このJavaＡＰに従って行われる処理から要求されたアクセスである場合と、このJavaＡＰのＡＤＦに記述された“PermissionAPP”項目のデータにより示される他のJavaＡＰに従って行われる処理から要求されたアクセスである場合に、このアクセスを許可する。【選択図】      図６
2005173939.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行する場合に使用される前記プログラム用のデータを記憶する記憶手段と、
前記プログラムと、前記プログラムの他に前記記憶手段に記憶されたデータを使用することが許可されたプログラムと、を示すプログラム情報を登録する登録手段と、
プログラムを実行する実行手段と、
前記記憶手段に記憶されたデータに対する前記実行手段によるアクセスが、前記登録手段に登録されたプログラム情報により示される複数のプログラムのうちのいずれかに従って行われる処理からのアクセスである場合に、該アクセスを許可する許可手段と
を有することを特徴とする電子機器。
【請求項２】
前記登録手段には、さらに、前記プログラム情報により示される各プログラム毎に、前記記憶手段のうちアクセスが許可された記憶領域を示すアドレス情報が登録されており、
前記許可手段は、前記記憶手段に記憶されたデータに対する前記実行手段によるアクセスが、前記登録手段に登録されたプログラム情報により示される複数のプログラムのうちのいずれかに従って行われる処理からのアクセスであり、かつ、該アクセスが、該アクセスを要求している処理を司るプログラムと対応付けられて前記登録手段に登録されたアドレス情報により示される記憶領域内のデータに対するアクセスである場合に、該アクセスを許可する
ことを特徴とする請求項１に記載の電子機器。
【請求項３】
操作手段と、報知手段とをさらに有し、
前記許可手段は、
前記記憶手段に記憶されたデータに対する前記実行手段によるアクセスが、前記登録手段に登録されたプログラム情報により示される複数のプログラムのうちのいずれかに従って行われる処理からのアクセスであることを判別した後、
該アクセスを要求している処理を司るプログラムが、前記記憶手段に記憶されたデータを処理するためのプログラムとして予め定められているプログラムであるか否かを判別し、前記プログラムである場合は該アクセスを許可する一方、前記プログラムでない場合は、該アクセスの可否を問うメッセージを前記報知手段により報知し、該アクセスを許可する旨が前記操作手段から入力された場合に該アクセスを許可する
ことを特徴とする請求項１に記載の電子機器
【請求項４】
前記記憶手段に記憶されたデータを処理するためのプログラムとして予め定められているプログラムの他に前記データを使用することが許可されたプログラムが当該電子機器にインストールされているか否かを判別する判別手段と、
前記判別手段により前記プログラムがインストールされていると判別された場合に、前記プログラムに従って行われる処理へ前記データに対するアクセスを要求するために必要となる情報を通知する通知手段とをさらに有する
ことを特徴とする請求項１に記載の電子機器。
【請求項５】
プログラムと、前記プログラム用のデータを前記プログラムの他に使用することが許可されたプログラムを示す許可プログラム情報と、を受信する受信手段と、
前記受信手段により受信されたプログラムを実行する場合に使用される前記プログラム用のデータを記憶する記憶手段と、
前記受信手段により受信されたプログラムと、前記受信手段により受信された許可プログラム情報により示されるプログラムと、を示すプログラム情報を登録する登録手段と、
プログラムを実行する実行手段と、
前記記憶手段に記憶されたデータに対する前記実行手段によるアクセスが、前記登録手段に登録されたプログラム情報により示される複数のプログラムのうちのいずれかに従って行われる処理からのアクセスである場合に、該アクセスを許可する許可手段と
を有することを特徴とする受信装置。
【請求項６】
コンピュータに、
記憶手段に記憶されたデータを処理するためのプログラムとして予め定められているプログラムと、前記プログラムの他に前記データを使用することが許可されたプログラムと、を示すプログラム情報を登録する第１の過程と、
プログラムを実行する第２の過程と、
前記第２の過程にて実行されたプログラムに従って行われる処理から要求された前記記憶手段に記憶されたデータに対するアクセスが、前記第１の過程にて登録されたプログラム情報により示される複数のプログラムのうちのいずれかに従って行われる処理からのアクセスである場合に、該アクセスを許可する第３の過程と
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、あるプログラムを実行することによって得られたデータや該プログラム用に用意されたデータを、別のプログラムを実行する場合にも使用できるようにするための技術に関する。
【背景技術】
【０００２】
パーソナルコンピュータ等の電子機器は、当該電子機器にインストールされた各種のプログラムを実行することにより、文書データの作成やブラウジング、電子メールの送受信等に関する処理を行う。また、このような電子機器の中には、あるプログラムを実行することによって得られた、このプログラム用のデータを、別のプログラムの実行時にも使用できるようにしたものがある（例えば、特許文献１参照）。
【０００３】
【特許文献１】特開２００２−３１２２１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、パケット通信機能を有する携帯電話機やパーソナルコンピュータ等の通信装置は、インターネットに接続されているＷＷＷ（World Wide Web）サーバから各種のプログラムをダウンロードすることができる。インターネット等のオープンネットワークは、世界中の様々な人々が自由に情報の公開やプログラムの提供を行うことができる反面、例えば、悪意の有る個人や団体が通信装置内に記憶されているデータを密かに盗み出すプログラムを提供していたり、あるいは悪意は無いものの、通信装置において動作させると不具合を引き起こしてしまうプログラムが提供されてしまうことがある。
【０００５】
したがって、通信装置において、オープンネットワークを介して取得したプログラムについて何ら制限を設けずに、あるプログラムを実行することによって得られたデータや該プログラム用に用意されたデータを別のプログラムの実行時にも使用できるようにしてしまうと、例えば、あるプログラムの実行時にユーザが入力した個人情報が、悪意の有る個人や団体が提供したプログラムによってユーザの知らない間に通信装置から外部へ送信されてしまう、といった事態が生じるおそれがある。また、通信機能を有していない電子機器であっても、当該電子機器にインストールされている各プログラムの信頼性が保証されていない限り、例えば、あるプログラム用に用意されたデータが、悪意の有る個人や団体が提供したプログラムによって不正に書き替えられてしまう、といった事態が生じるおそれがある。
【０００６】
一方で、上述したようなセキュリティに関する問題に対処するため、通信装置や電子機器において、あるプログラムの実行時に使用することのできる該プログラム用のデータを、他のプログラムの実行時には一切使用できないようにしてしまうと、通信装置や電子機器の使い勝手が損なわれてしまう。
【０００７】
本発明は、以上説明した事情に鑑みてなされたものであり、その目的は、電子機器（受信装置）において、セキュリティを確保しつつ、あるプログラムの実行時に使用することのできる該プログラム用のデータを、別のプログラムの実行時にも使用できるようにすることである。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明は、プログラムを実行する場合に使用される前記プログラム用のデータを記憶する記憶手段と、
前記プログラムと、前記プログラムの他に前記記憶手段に記憶されたデータを使用することが許可されたプログラムと、を示すプログラム情報を登録する登録手段と、
プログラムを実行する実行手段と、
前記記憶手段に記憶されたデータに対する前記実行手段によるアクセスが、前記登録手段に登録されたプログラム情報により示される複数のプログラムのうちのいずれかに従って行われる処理からのアクセスである場合に、該アクセスを許可する許可手段と
を有する電子機器を提供する。
【０００９】
また、本発明は、プログラムと、前記プログラム用のデータを前記プログラムの他に使用することが許可されたプログラムを示す許可プログラム情報と、を受信する受信手段と、
前記受信手段により受信されたプログラムを実行する場合に使用される前記プログラム用のデータを記憶する記憶手段と、
前記受信手段により受信されたプログラムと、前記受信手段により受信された許可プログラム情報により示されるプログラムと、を示すプログラム情報を登録する登録手段と、
プログラムを実行する実行手段と、
前記記憶手段に記憶されたデータに対する前記実行手段によるアクセスが、前記登録手段に登録されたプログラム情報により示される複数のプログラムのうちのいずれかに従って行われる処理からのアクセスである場合に、該アクセスを許可する許可手段と
を有する受信装置を提供する。
【００１０】
また、本発明は、コンピュータに、
記憶手段に記憶されたデータを処理するためのプログラムとして予め定められているプログラムと、前記プログラムの他に前記データを使用することが許可されたプログラムと、を示すプログラム情報を登録する第１の過程と、
プログラムを実行する第２の過程と、
前記第２の過程にて実行されたプログラムに従って行われる処理から要求された前記記憶手段に記憶されたデータに対するアクセスが、前記第１の過程にて登録されたプログラム情報により示される複数のプログラムのうちのいずれかに従って行われる処理からのアクセスである場合に、該アクセスを許可する第３の過程と
を実行させるためのプログラムを提供する。
【００１１】
本発明によれば、電子機器（受信装置）は、記憶手段に記憶されたプログラム用のデータに対するアクセスが、予め登録されたプログラム情報により示される複数のプログラムのうちのいずれかに従って行われる処理からのアクセスである場合に、該アクセスを許可する。
【発明の効果】
【００１２】
本発明によれば、電子機器（受信装置）において、セキュリティを確保しつつ、あるプログラムの実行時に使用することのできる該プログラム用のデータを、別のプログラムの実行時にも使用することができるようになる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して本発明の実施形態について説明する。なお、各図において共通する部分には、同一の符号が付されている。
［Ａ−１．実施形態の構成］
＜１．通信システムの全体構成＞
図１は、本発明の実施形態に係る通信システム１の構成を例示するブロック図である。同図に示すように通信システム１は、コンテンツサーバ１０と、インターネット２０と、移動パケット通信網３０と、携帯電話機４０とを有している。
【００１４】
コンテンツサーバ１０は、インターネット２０および移動パケット通信網３０を介して携帯電話機４０とパケット通信を行う機能を有している。このコンテンツサーバ１０には、携帯電話機４０において実行可能なJava（登録商標）アプリケーションソフトウェア（以下、「JavaＡＰ」と記載する）が記憶されている。
【００１５】
移動パケット通信網３０は、ゲートウェイサーバ３１と、基地局３２とを有している。ゲートウェイサーバ３１は、移動パケット通信網３０用の通信プロトコルとインターネット２０用の通信プロトコル等、通信プロトコルの異なるデータを相互に変換し、移動パケット通信網３０とインターネット２０とのデータの授受を中継する。また、基地局３２は、移動パケット通信網３０の通信サービスエリア内に多数設置されており、自局３２がカバーする無線セルに在圏している携帯電話機４０と無線通信を行う。
【００１６】
携帯電話機４０は、移動パケット通信網３０に収容される移動機である。この携帯電話機４０は、自機４０が在圏している無線セルをカバーする基地局３２を介してコンテンツサーバ１０とパケット通信を行い、コンテンツサーバ１０から任意のJavaＡＰをダウンロードすることができる。
【００１７】
＜２．JavaＡＰの構成＞
図２は、コンテンツサーバ１０に記憶されているJavaＡＰの構成について例示する図である。同図に示すようにJavaＡＰは、JavaＡＰの本体プログラムおよびこの本体プログラムを実行する場合に使用される画像ファイルや音声ファイル等を１つにまとめたＪＡＲ（Java Archive）ファイルと、このＪＡＲファイルのインストールや起動、ネットワークアクセス等を制御するための各種制御情報が格納されたＡＤＦ（Application Descriptor File）とを有している。
【００１８】
また、同図に示すようにＡＤＦは、このＡＤＦと対をなすＪＡＲファイルが、当該ＪＡＲファイル（詳細にはＪＡＲファイル内の本体プログラム）を実行することにより得られるデータや当該ＪＡＲファイル内の画像ファイルや音声ファイルの使用を、他のプログラムに対して許可しているか否かを示す情報が格納される“LaunchAPP”項目と、上述したＪＡＲファイル用のデータの使用が許可された他のプログラムを示す情報が格納される“PermissionAPP”項目とを有している。これらの“LaunchAPP”項目や“PermissionAPP”項目のデータは、JavaＡＰの提供者によって設定される。
【００１９】
“LaunchAPP”項目には、このＡＤＦと対をなすＪＡＲファイルが、このＪＡＲファイル用のデータの使用を他のプログラムに対して許可している場合に“１”が、そうでない場合に“０”が格納される。また、“LaunchAPP”項目が“１”の場合、“PermissionAPP”項目には、ＪＡＲファイル用のデータの使用を許可する他のプログラムを示す情報として、例えば、ＪＡＲファイルのファイル名（プログラム名）が格納されている。なお、ここで言う他のプログラムには、携帯電話機４０が移動パケット通信網３０やインターネット２０を介して取得した他のJavaＡＰや、携帯電話機４０に予めインストールされているプログラム等が含まれる。
【００２０】
また、“PermissionAPP”項目に格納されるデータは、ファイル名等に限定されず、例えば、プログラムのダウンロード元を示すＵＲＬ（Uniform Resource Locator）であってもよい。さらに、ＪＡＲファイル用のデータの使用が許可される他のプログラムは、１つであってもよいし複数であってもよい。図２に示す例では、“PermissionAPP”項目のデータとして計３つのＪＡＲファイル名“JAR002”，“JAR003”，“JAR012”が格納されている。したがって、同図に示すＪＡＲファイル“JAR001”は、ＪＡＲファイル“JAR002”，“JAR003”，“JAR012”に対してＪＡＲファイル“JAR001”用のデータの使用を許可している。
【００２１】
なお、以下、本明細書では、ＪＡＲファイルとＡＤＦを特に区別する必要がない限り、これらを合わせて「JavaＡＰ」と記載する。また、本明細書において、１つのJavaＡＰを構成するＪＡＲファイルおよびＡＤＦは、同じコンテンツサーバ１０に記憶されているものとする。但し、ＪＡＲファイルとＡＤＦは、各々別のサーバに記憶されていてもよい。
【００２２】
＜３．携帯電話機の構成＞
図３は、携帯電話機４０のハードウェア構成を例示するブロック図である。同図に示すように携帯電話機４０は、ＣＰＵ４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、無線通信部４０４と、操作入力部４０５と、通話処理部４０６と、液晶表示部４０７と、不揮発性メモリ４０８とを有しており、これらの各部はバス４０９により接続されている。
【００２３】
ＣＰＵ４０１は、ＲＯＭ４０２や不揮発性メモリ４０８に記憶されている各種のプログラムを実行することにより、バス４０９を介して接続されている装置各部を制御する。ＲＯＭ４０２には、装置各部の基本制御を司るプログラム等が記憶されている。また、ＲＡＭ４０３は、ＣＰＵ４０１のワークエリアとして用いられる。
【００２４】
無線通信部４０４は、アンテナ４０４ａを備え、基地局３２との無線通信を制御する。この無線通信部４０４は、ＣＰＵ４０１の制御の下、例えば、パケット通信用のデータや送話音声に関するデータ等を搬送波に重畳して送信信号を生成し、この信号を基地局３２へ送信する。また、無線通信部４０４は、基地局３２から送られてくる無線信号をアンテナ４０４ａを介して受信し、この信号を復調して自機４０宛のパケット通信用のデータや受話音声に関するデータ等を得る。
【００２５】
操作入力部４０５は、数字や文字、操作指示等を入力するための複数のキーを有しており、これらのキーの操作に応じた操作信号をＣＰＵ４０１に出力する。通話処理部４０６は、例えば、マイクロフォンやスピーカ、音声処理部等を有しており、ＣＰＵ４０１の制御の下、呼の接続や切断等を含む通話処理を行う。また、液晶表示部４０７は、液晶表示パネルと、この液晶表示パネルの表示制御を行う駆動回路とを有している。
【００２６】
不揮発性メモリ４０８は、例えば、ＳＲＡＭ（Static−RAM）やＥＥＰＲＯＭ（Electrically Erasable Programmable−ROM）等であり、携帯電話機４０のオペレーティングシステム（以下、「ＯＳ」と記載する）やＷＷＷブラウザ用のソフトウェア、Java実行環境を構築するためのソフトウェア等が記憶されている。また、この不揮発性メモリ４０８には、コンテンツサーバ１０からダウンロードされたJavaＡＰ等が記憶される。
【００２７】
この不揮発性メモリ４０８は、ＪＡＲストレージ４０８ａと、スクラッチパッド４０８ｂと、アクセス管理テーブル４０８ｃとを有している。ＪＡＲストレージ４０８ａには、図４に示すように、携帯電話機４０にダウンロードされた各JavaＡＰ毎にそのＪＡＲファイルが記憶される。同図に示す例では、ＪＡＲストレージ４０８ａ内に３つのＪＡＲファイル“JAR004”，“JAR012”，“JAR001”が記憶されている。
【００２８】
スクラッチパッド４０８ｂには、図５に示すように、ＪＡＲストレージ４０８ａに記憶された各ＪＡＲファイル毎に、ＪＡＲファイルを実行することによって得られるデータ等を永続的に記憶するためのＪＡＲファイル用メモリ領域が設けられている。なお、ＪＡＲファイルを実行することによって得られるデータとは、例えば、ＪＡＲファイルがビデオゲーム用のものであった場合、ビデオゲームを途中で終える際に保存しておくセーブデータ等である。
【００２９】
アクセス管理テーブル４０８ｃには、図６に示すように、ＪＡＲストレージ４０８ａに記憶された各ＪＡＲファイル毎に、ＪＡＲファイルのファイル名と、ＪＡＲファイルが記憶されたＪＡＲストレージ４０８ａ内のメモリ領域を示すメモリアドレス（始点アドレス〜終点アドレス）と、このＪＡＲファイルに対して割り当てられたスクラッチパッド４０８ｂ内のＪＡＲファイル用メモリ領域を示すメモリアドレス（始点アドレス〜終点アドレス）と、このＪＡＲファイルと対をなすＡＤＦから取得した“LaunchAPP”項目と“PermissionAPP”項目のデータとが登録される。
【００３０】
＜４．携帯電話機におけるソフトウェアの実行環境＞
図７は、携帯電話機４０におけるソフトウェアの実行環境を説明するための図である。同図において、ＫＶＭ（K Virtual Machine）は、小型電子機器用に設計変更されたＪＶＭ（Java Virtual Machine）であって、JavaバイトコードをＣＰＵ４０１がＯＳを介して解釈／実行可能な命令コードに変換するためのソフトウェアである。また、ＡＰＩ（Application Program Interface）は、例えば、ＣＬＤＣ（Connected Limited Device Configuration）によって規定されている機能や、携帯電話機４０に特化した機能をJavaＡＰに対して提供するためのソフトウェアモジュールである。
【００３１】
ＪＡＭ（Java Application Manager）は、ＯＳによる制御の下で、JavaＡＰのダウンロード／インストール／起動／終了等を管理するためのソフトウェアである。また、ＪＡＭは、図６に示したアクセス管理テーブル４０８ｃに対するデータの追加や削除等の更新処理を行う機能を有するとともに、このアクセス管理テーブル４０８ｃに基づいて、各JavaＡＰに従って行われる処理から要求されるアクセスを制限する機能を有している。
なお、同図に示すように、電話帳機能やブラウザ機能、ネットワーク通信機能を実現するためのソフトウェアは、ＯＳによる制御の下で直接動作する。
【００３２】
［Ａ−２．実施形態の動作］
次に、本実施形態の動作について説明する。
＜１．ダウンロード処理＞
図８は、JavaＡＰをダウンロードする場合の、携帯電話機４０およびコンテンツサーバ１０の動作を例示するシーケンスチャートである。なお、このダウンロードに関する処理において、ステップＳ１０３以降の携帯電話機４０で行われる各処理は、ＣＰＵ４０１がＪＡＭに従って実行する処理である。
【００３３】
まず、ユーザは、携帯電話機４０の操作入力部４０５を操作してＷＷＷブラウザを起動させる。次いで、ユーザは、操作入力部４０５を操作してコンテンツサーバ１０への接続を指示する。これにより携帯電話機４０からコンテンツサーバ１０へ接続要求メッセージが送信される（ステップＳ１０１）。コンテンツサーバ１０は、接続要求メッセージを受信すると、必要に応じて携帯電話機４０の認証処理等を行なった後、サイトのメニュー情報を携帯電話機４０へ送信する（ステップＳ１０２）。また、携帯電話機４０は、メニュー情報を受信すると、このメニュー情報に基づく画像を、液晶表示部４０７の液晶表示パネル（以下、「液晶画面」と記載する）に表示する。この後、携帯電話機４０とコンテンツサーバ１０の間では、メニューの選択等に関する情報が送受信される。
【００３４】
そして、携帯電話機４０において、ダウンロードするJavaＡＰが操作入力により選択されると、ＣＰＵ４０１は、選択されたJavaＡＰのＡＤＦを携帯電話機４０に対して送信することを要求するＡＤＦ取得要求メッセージをコンテンツサーバ１０へ送信する（ステップＳ１０３）。コンテンツサーバ１０は、ＡＤＦ取得要求メッセージを受信すると、このＡＤＦ取得要求メッセージによって指定されるＡＤＦをメモリから読み出して携帯電話機４０へ送信する（ステップＳ１０４）。
【００３５】
携帯電話機４０のＣＰＵ４０１は、ＡＤＦを受信すると、まず、ＡＤＦのファイル内容を確認し、このＡＤＦと対をなすＪＡＲファイルを携帯電話機４０にダウンロードできるか否かを判別する（ステップＳ１０５）。具体的には、ＣＰＵ４０１は、ＡＤＦから“AppSize”項目と“SPsize”項目のデータを読み出すとともに、ＪＡＲストレージ４０８ａおよびスクラッチパッド４０８ｂの空きメモリ容量を確認する。なお、“AppSize”項目には、ダウンロードを予定しているＪＡＲファイルのサイズ（ＪＡＲファイルをＪＡＲストレージ４０８ａに記憶するために必要となるメモリ容量）を示すサイズ情報が格納されている。また、“SPsize”項目には、ダウンロードを予定しているＪＡＲファイルに対してスクラッチパッド４０８ｂ内に割り当てるＪＡＲファイル用メモリ領域のサイズを示すサイズ情報が格納されている。ＣＰＵ４０１は、ＪＡＲストレージ４０８ａまたはスクラッチパッド４０８ｂの空きメモリ容量が不足している場合に、ＪＡＲファイルをダウンロードできないと判別し、その旨を示すメッセージを液晶画面に表示してJavaＡＰのダウンロードを中止する。
【００３６】
一方、ＣＰＵ４０１は、ＪＡＲファイルがダウンロードできると判別した場合は（ステップＳ１０５：Ｙｅｓ）、次いで、ＡＤＦに含まれている、ＪＡＲファイルの取得要求先を示すＵＲＬを用いてＪＡＲファイル取得要求メッセージを生成し、当該ＪＡＲファイル取得要求メッセージをコンテンツサーバ１０へ送信する（ステップＳ１０６）。コンテンツサーバ１０は、ＪＡＲファイル取得要求メッセージを受信すると、このＪＡＲファイル取得要求メッセージによって指定されるＪＡＲファイルをメモリから読み出して携帯電話機４０に送信する（ステップＳ１０７）。
【００３７】
携帯電話機４０のＣＰＵ４０１は、ＪＡＲファイルを受信すると、まず、上記ステップＳ１０４において受信したＡＤＦから“AppSize”項目のサイズ情報を読み出す。そして、ＣＰＵ４０１は、読み出したサイズ情報によって指定される容量のメモリ領域をＪＡＲストレージ４０８ａに確保した後、このメモリ領域内に、受信したＪＡＲファイルをインストールする。また、ＣＰＵ４０１は、ＡＤＦから読み出した“SPsize”項目のサイズ情報に従って、インストールされたＪＡＲファイルに割り当てるＪＡＲファイル用メモリ領域をスクラッチパッド４０８ｂ内に確保する。そして、ＣＰＵ４０１は、上記ステップＳ１０４において受信したＡＤＦを、インストールされたＪＡＲファイルと対応付けて不揮発性メモリ４０８に格納する（ステップＳ１０８）。
【００３８】
次いで、携帯電話機４０のＣＰＵ４０１は、インストールされたJavaＡＰについて、ＪＡＲファイルのファイル名と、ＪＡＲストレージ４０８ａ内のＪＡＲファイルが記憶されたメモリ領域を示すメモリアドレスと、スクラッチパッド４０８ｂ内に割り当てられたＪＡＲファイル用メモリ領域を示すメモリアドレスと、“LaunchAPP”項目および“PermissionAPP”項目のデータとを取得する。勿論、“LaunchAPP”項目や“PermissionAPP”項目のデータは、上記ステップＳ１０４において受信したＡＤＦから取得される。そして、ＣＰＵ４０１は、このようにして取得したデータを用いて図６に示したアクセス管理テーブル４０８ｃを更新する（ステップＳ１０９）。
【００３９】
例えば、図２に示したJavaＡＰが不揮発性メモリ４０８にインストールされた場合、アクセス管理テーブル４０８ｃには、図６に示すように、“ファイル名”項目に“JAR001”が、“保存領域”項目には、ＪＡＲストレージ４０８ａ内のＪＡＲファイル“JAR001”が記憶されたメモリ領域を示すメモリアドレス（始点アドレス〜終点アドレス）が、“割り当て領域”項目には、スクラッチパッド４０８ｂ内に割り当てられたＪＡＲファイル“JAR001”用のメモリ領域を示すメモリアドレスが、“LaunchAPP”項目には“１”が、“PermissionAPP”項目には“JAR002”，“JAR003”，“JAR012”が追加登録される。
【００４０】
なお、JavaＡＰが不揮発性メモリ４０８からアンインストールされた場合、ＣＰＵ４０１は、ＪＡＭに従って、アンインストールされたJavaＡＰに関するデータをアクセス管理テーブル４０８ｃから削除する。また、アクセス管理テーブル４０８ｃには、ＪＡＭに従って行われる処理のみでしかアクセスすることができない。
【００４１】
＜２．JavaＡＰの起動＞
次に、携帯電話機４０においてＣＰＵ４０１は、例えば、画面表示されたJavaＡＰの一覧リストの中から、起動させるJavaＡＰが操作入力によって指定された場合等に、指定されたJavaＡＰの本体プログラムをＪＡＲストレージ４０８ａから読み出して実行し、この本体プログラムに従って行われる処理を開始する。なお、JavaＡＰの起動を指示する形態は、操作入力に限定されず、例えば、予め設定された時刻になるとJavaＡＰの起動が指示される場合や、他のプログラムに従って行われている処理からJavaＡＰの起動が指示される場合、電子メール等を用いて携帯電話機４０の外部からJavaＡＰの起動が指示される場合等もある。
【００４２】
そして、ＣＰＵ４０１は、このようにして起動させたJavaＡＰに従って行われる処理において、不揮発性メモリ４０８に対するアクセスが要求されると、以下に説明するアクセス管理処理を開始する。なお、ＪＡＭは、JavaＡＰを実行する場合に、不揮発性メモリ４０８以外の各種のリソースに対するアクセスについても、これを制限する機能を有しており、不揮発性メモリ４０８以外の各種のリソースに対するアクセスについては、JavaＡＰを実行するためにＲＡＭ４０３内に割り当てられたアプリケーション実行メモリ領域に対するアクセスと、JavaＡＰのダウンロード元となるコンテンツサーバ１０に対するアクセスのみを許可する。
【００４３】
＜３．アクセス管理処理＞
図９は、携帯電話機４０においてＣＰＵ４０１により実行されるアクセス管理処理の動作を例示するフローチャートである。このアクセス管理処理は、ＪＡＭの機能としてＣＰＵ４０１により実行される。
【００４４】
同図に示すように、まず、ＣＰＵ４０１は、JavaＡＰに従って行われる処理から要求されたアクセスについて、アクセスの要求元となる処理を司るJavaＡＰと、アクセス先のメモリアドレスとを特定する（ステップＳ２０１，Ｓ２０２）。具体的には、ＣＰＵ４０１は、アクセスの要求元となる処理を司るＪＡＲファイルのファイル名と、アクセス先のメモリアドレスを示すアドレス情報を取得する。次いで、ＣＰＵ４０１は、アクセス管理テーブル４０８ｃを参照し（ステップＳ２０３）、上記ステップＳ２０１，Ｓ２０２において取得したファイル名とアドレス情報とに従って、このアクセスを許可するか否かを判定する（ステップＳ２０４）。
【００４５】
例えば、図６に示したアクセス管理テーブル４０８ｃに登録されているＪＡＲファイル“JAR004”が実行され、このＪＡＲファイル“JAR004”に従って行われる処理において不揮発性メモリ４０８に対するアクセスが要求されると、ＣＰＵ４０１は、アクセス管理テーブル４０８ｃを参照し、アクセス先のメモリアドレスが、ＪＡＲストレージ４０８ａ内のＪＡＲファイル“JAR004”が記憶されたメモリ領域を示している場合と、スクラッチパッド４０８ｂ内のＪＡＲファイル“JAR004”用のメモリ領域を示している場合にのみ、このアクセスを許可する。
【００４６】
すなわち、ＪＡＲファイル“JAR004”の場合は、図６に示したアクセス管理テーブル４０８ｃの“PermissionAPP”項目に示すように、このＪＡＲファイル“JAR004”に対してデータの使用を許可する他のＪＡＲファイルが全く登録されていない。したがって、ＪＡＲファイル“JAR004”に従って行われる処理においてＣＰＵ４０１がアクセスすることのできる不揮発性メモリ４０８内のメモリ領域は、ＪＡＲストレージ４０８ａ内のＪＡＲファイル“JAR004”が記憶されたメモリ領域と、スクラッチパッド４０８ｂ内のＪＡＲファイル“JAR004”用のメモリ領域のみに制限される。
【００４７】
一方、図６に示したアクセス管理テーブル４０８ｃに登録されているＪＡＲファイル“JAR012”が実行され、このＪＡＲファイル“JAR012”に従って行われる処理において不揮発性メモリ４０８に対するアクセスが要求されると、ＣＰＵ４０１は、アクセス管理テーブル４０８ｃを参照し、アクセス先のメモリアドレスが、ＪＡＲストレージ４０８ａ内のＪＡＲファイル“JAR012”，“JAR001”が記憶された２つのメモリ領域のいずれかを示している場合と、スクラッチパッド４０８ｂ内のＪＡＲファイル“JAR012”，“JAR001”用の２つのメモリ領域のいずれかを示している場合に、このアクセスを許可する。
【００４８】
すなわち、ＪＡＲファイル“JAR012”の場合は、図６に示したアクセス管理テーブル４０８ｃの“PermissionAPP”項目に示すように、このＪＡＲファイル“JAR012”に対してデータの使用を許可する他のＪＡＲファイルとして、ＪＡＲファイル“JAR001”が登録されている。したがって、ＪＡＲファイル“JAR012”に従って行われる処理においてＣＰＵ４０１がアクセスすることのできる不揮発性メモリ４０８内のメモリ領域は、ＪＡＲストレージ４０８ａ内のＪＡＲファイル“JAR012”，“JAR001”が記憶された２つのメモリ領域と、スクラッチパッド４０８ｂ内のＪＡＲファイル“JAR012”，“JAR001”用の２つのメモリ領域となるのである。
【００４９】
また、図６に示したアクセス管理テーブル４０８ｃに登録されているＪＡＲファイル“JAR001”は、“PermissionAPP”項目のデータから明らかとなるように、ＪＡＲストレージ４０８ａやスクラッチパッド４０８ｂに記憶されているＪＡＲファイル“JAR001”用のデータの使用を、ＪＡＲファイル“JAR002”，“JAR003”，“JAR012”に対して許可している。したがって、ＣＰＵ４０１は、ＪＡＲファイル“JAR001”に従って行われる処理からのアクセスは勿論、ＪＡＲファイル“JAR002”，“JAR003”，“JAR012”に従って行われる処理からのアクセスについても、ＪＡＲストレージ４０８ａ内のＪＡＲファイル“JAR001”が記憶されたメモリ領域や、スクラッチパッド４０８ｂ内のＪＡＲファイル“JAR001”用のメモリ領域へのアクセスを許可する。
【００５０】
図９に戻り、ＣＰＵ４０１は、上記ステップＳ２０４における判定結果に従ってアクセスを許可しない場合は（ステップＳ２０５：Ｎｏ）、実行中のJavaＡＰが不正なアクセスをしようとしたため、このアクセスを認めなかった旨のメッセージを液晶画面に表示する（ステップＳ２０６）。そして、ＣＰＵ４０１は、アクセスの要求元となる処理に対してアクセスを拒否する旨を通知した後、アクセス管理処理を終える。一方、ＣＰＵ４０１は、上記ステップＳ２０４における判定結果に従ってアクセスを許可する場合は（ステップＳ２０５：Ｙｅｓ）、アクセスの要求元となる処理に対してアクセスを許可する旨を通知した後、アクセス管理処理を終える。
【００５１】
アクセス管理処理を終えた後、ＣＰＵ４０１は、JavaＡＰに従って行われる処理に復帰し、ＪＡＭからアクセスを許可する旨が通知されている場合は、許可されたアクセスによってＪＡＲストレージ４０８ａやスクラッチパッド４０８ｂから読み出したデータを用いて処理を継続する一方、ＪＡＭからアクセスを拒否する旨が通知されている場合は、要求したアクセスを行わずに処理を中止する。
【００５２】
したがって、図６に示したアクセス管理テーブル４０８ｃが不揮発性メモリ４０８に格納されている場合、ＣＰＵ４０１は、ＪＡＲファイル“JAR004”に従って行われる処理において、ＪＡＲストレージ４０８ａやスクラッチパッド４０８ｂに記憶されているＪＡＲファイル“JAR004”用のデータしか使用することができないが、ＪＡＲファイル“JAR012”に従って行われる処理においては、ＪＡＲストレージ４０８ａやスクラッチパッド４０８ｂに記憶されている、ＪＡＲファイル“JAR012”用のデータとＪＡＲファイル“JAR001”用のデータを使用することができる。
【００５３】
以上説明したように本実施形態によれば、携帯電話機４０は、ＪＡＲストレージ４０８ａやスクラッチパッド４０８ｂに記憶された、あるJavaＡＰ用のデータに対するアクセスが、このJavaＡＰに従って行われる処理から要求されたアクセスである場合と、このJavaＡＰのＡＤＦに記述された“PermissionAPP”項目のデータにより示される他のJavaＡＰに従って行われる処理から要求されたアクセスである場合に、このアクセスを許可する。したがって、仮に、悪意の有る個人や団体によって提供されたJavaＡＰが携帯電話機４０において実行されたとしても、このようなJavaＡＰに対して他のプログラム用のデータが引き渡されることがない。
【００５４】
また、コンテンツプロバイダは、携帯電話機４０に提供するJavaＡＰについて、ＡＤＦ内の“LaunchAPP”項目や“PermissionAPP”項目のデータを設定することで、このJavaＡＰ用のデータの使用を他のプログラムに対して許可するか否かや、このJavaＡＰ用のデータの使用を許可する他のプログラムを指定することができる。
【００５５】
なお、携帯電話機４０（コンピュータ）は、ＲＯＭ４０２や不揮発性メモリ４０８に記憶されているプログラムに従って、上述したダウンロード処理（図８参照）における端末側の処理や、アクセス管理処理（図９参照）を実行するが、このような本発明に係る処理を実行するためのプログラムを通信によって携帯電話機４０に提供するようにしてもよい。あるいは、このようなプログラムを記録媒体に記録して提供するようにしてもよい。
【００５６】
［Ｂ．変形例］
以上、本発明の実施形態について説明したが、上述した各実施形態は、本発明の一態様を例示したものに過ぎず、例えば、以下に示すような変形例が考えられる。
【００５７】
＜変形例１＞
図８に示したダウンロード処理のステップＳ１０９を終えた後、以下に説明する通知処理を行う構成としてもよい。
図１０は、携帯電話機４０においてＣＰＵ４０１により実行される通知処理の動作を例示するフローチャートである。この通知処理は、上述したダウンロード処理において、不揮発性メモリ４０８にJavaＡＰがインストールされ、ステップＳ１０９に示す処理を終えた後に、ＪＡＭの機能としてＣＰＵ４０１により実行される。
【００５８】
同図に示すように、まず、ＣＰＵ４０１は、ダウンロード処理によって今回インストールされたJavaＡＰについて、このJavaＡＰのＡＤＦを参照し、“LaunchAPP”項目のデータが“１”であるか否かを判別する（ステップＳ３０１）。その結果、ＣＰＵ４０１は、“LaunchAPP”項目のデータが“１”でなかった場合は、通知処理を終える。
【００５９】
一方、ＣＰＵ４０１は、“LaunchAPP”項目のデータが“１”であった場合は、次いで、このJavaＡＰのＡＤＦから“PermissionAPP”項目のデータを取得し（ステップＳ３０２）、このJavaＡＰ用のデータの使用を許可している他のプログラムを特定する。そして、ＣＰＵ４０１は、特定した他のプログラムが不揮発性メモリ４０８にインストールされているか否かを判別し（ステップＳ３０３）、該当するプログラムが不揮発性メモリ４０８にインストールされていなかった場合は、通知処理を終える。
【００６０】
また、ＣＰＵ４０１は、該当するプログラムが不揮発性メモリ４０８にインストールされていると判別した場合は、ダウンロード処理によって今回インストールされたJavaＡＰについて、ＪＡＲファイルのファイル名と、ＪＡＲストレージ４０８ａ内のＪＡＲファイルが記憶されたメモリ領域を示すメモリアドレスと、スクラッチパッド４０８ｂ内に割り当てられたＪＡＲファイル用メモリ領域を示すメモリアドレスとを取得する（ステップＳ３０４）。これらのデータは、例えば、図６に示したアクセス管理テーブル４０８ｃから取得される。次いで、ＣＰＵ４０１は、上記ステップＳ３０４において取得したファイル名およびアドレス情報を、このJavaＡＰ用のデータの使用を許可している他のプログラムに対して通知した後（ステップＳ３０５）、通知処理を終える。
【００６１】
この通知処理を行なうことにより、他のプログラムに対してデータの使用を許可しているJavaＡＰが不揮発性メモリ４０８にインストールされると、このＪＡＲファイルのファイル名や、このJavaＡＰ用のデータが記憶された、ＪＡＲストレージ４０８ａ内やスクラッチパッド４０８ｂ内のメモリ領域を示すアドレス情報等の、このJavaＡＰ用のデータにアクセスする際に必要となる情報が、このJavaＡＰ用のデータを使用することが許可された他のプログラムに対して直ちに通知できる。
【００６２】
なお、ＪＡＲストレージ４０８ａ内やスクラッチパッド４０８ｂ内に設けられた各メモリ領域に対して、各々のメモリ領域を識別するためのＩＤ番号を割り当てて、データの使用が許可された他のプログラムに対してアドレス情報の代わりにＩＤ番号を通知し、このＩＤ番号を用いてＪＡＲストレージ４０８ａ内やスクラッチパッド４０８ｂ内の各メモリ領域にアクセスするようにしてもよい。
【００６３】
＜変形例２＞
例えば、図６に示したアクセス管理テーブル４０８ｃが不揮発性メモリ４０８に格納されている場合、ＣＰＵ４０１は、ＪＡＲファイル“JAR012”に従って行われる処理において、ＪＡＲストレージ４０８ａやスクラッチパッド４０８ｂに記憶されているＪＡＲファイル“JAR001”用の全てのデータにアクセスすることができる。
【００６４】
しかしながら、例えば、コンテンツプロバイダが、自身の提供するＪＡＲファイル“JAR001”用のデータの使用を、別のコンテンツプロバイダが提供するＪＡＲファイル“JAR012”に対して許可する場合に、ＪＡＲファイル“JAR001”用の全てのデータの使用を許可するのではなく、そのうちの一部のみの使用を許可したい場合がある。そこで、図１１に示すアクセス管理テーブル４０８ｄのように、“PermissionAPP”項目に格納されたJavaＡＰ毎に、このJavaＡＰに対してアクセスを許可する一部の領域（アクセス許可領域）を示すアドレス情報をさらに登録するようにしてもよい。
【００６５】
また、ＪＡＲストレージ４０８ａやスクラッチパッド４０８ｂにおいて、JavaＡＰ用のデータが記憶されるメモリ領域を予め複数の領域に区分しておき、“PermissionAPP”項目に格納されたJavaＡＰ毎に、アクセスを許可する区分領域を示すアドレス情報や、各区分領域に対して割り当てられたＩＤ番号を登録するようにしてもよい。
【００６６】
＜変形例３＞
図９に示したアクセス管理処理のステップＳ２０５以降で以下に説明する処理を行う構成としてもよい。
すなわち、ＣＰＵ４０１は、ステップＳ２０５においてアクセスが許可された場合であっても、このアクセスを直ちに許可するのではなく、まず、JavaＡＰに従って行われる処理から要求されたアクセスが、他のJavaＡＰ用のデータに対するアクセスであるか否かを判別する。その結果、ＣＰＵ４０１は、他のJavaＡＰ用のデータに対するアクセスであると判別した場合は、このアクセスの可否をユーザに問い合わせるメッセージを液晶画面に表示し、アクセスを許可する旨が操作入力部４０５から入力された場合に、このアクセスを許可する。なお、アクセスの可否をユーザに問い合わせるメッセージは音声メッセージであってもよい。また、ＣＰＵ４０１は、上記メッセージの表示に応じて、アクセスを許可しない旨が操作入力部４０５から入力された場合、またはメッセージの表示の後、予め定められた時間が経過してもデータの使用を許可する旨が操作入力部４０５から入力されなかった場合は、このアクセスを不許可とする。一方、ＣＰＵ４０１は、他のJavaＡＰ用のデータに対するアクセスでないと判別した場合には、このアクセスを許可する。
【００６７】
このような構成とすれば、JavaＡＰに従って行われる処理において他のプログラム用のデータを使用する際には必ずユーザの承認が必要となる。よって、ユーザの知らない間にJavaＡＰに対して他のプログラム用のデータが引き渡されてしまうようなことがない。
【００６８】
＜変形例４＞
図８に示したダウンロード処理において、ステップＳ１０８に示した処理を終えた後、以下に説明する処理を行う構成としてもよい。
まず、ＣＰＵ４０１は、インストールされたJavaＡＰのＡＤＦを参照して“LaunchAPP”項目のデータが“１”であるか否かを判別する。その結果、ＣＰＵ４０１は、“LaunchAPP”項目のデータが“１”である場合に、このJavaＡＰ用のデータの使用を、ＡＤＦ内の“PermissionAPP”項目のデータにより示される他のJavaＡＰに対して許可してよいか否かをユーザに問い合わせるメッセージを液晶画面に表示する。勿論、このメッセージは音声メッセージであってもよい。
【００６９】
そして、ＣＰＵ４０１は、データの使用を許可する旨が操作入力部４０５から入力された場合に、図８に示したダウンロード処理のステップＳ１０９に移行して、インストールされたJavaＡＰに関するデータを取得し、アクセス管理テーブル４０８ｃに登録する。一方、ＣＰＵ４０１は、メッセージの表示に応じて、データの使用を許可しない旨が操作入力部４０５から入力された場合、またはメッセージの表示の後、予め定められた時間が経過してもデータの使用を許可する旨が操作入力部４０５から入力されなかった場合は、インストールされたJavaＡＰについて、ＪＡＲファイルのファイル名と、ＪＡＲストレージ４０８ａ内のＪＡＲファイルが記憶されたメモリ領域を示すメモリアドレスと、スクラッチパッド４０８ｂ内に割り当てられたＪＡＲファイル用メモリ領域を示すメモリアドレスのみをアクセス管理テーブル４０８ｃに登録する。この場合、“LaunchAPP”項目や“PermissionAPP”項目のデータがアクセス管理テーブル４０８ｃに登録されないので、インストールされたJavaＡＰについては、このJavaＡＰ用のデータが他のプログラムの実行時に使用されることはない。
【００７０】
このような構成とすれば、コンテンツプロバイダが、自身の提供するJavaＡＰについて、このJavaＡＰ用のデータの使用を他のプログラムに対して許可しても、携帯電話機４０のユーザの承認が無ければ、このJavaＡＰ用のデータが他のプログラムの実行時に使用されることはない。
【００７１】
＜変形例５＞
上述した実施形態では、JavaＡＰをダウンロードする場合について説明したが、勿論、ダウンロードではなく、携帯電話機４０に対してJavaＡＰを配信する場合であっても本発明を適用することができる。また、上述した実施形態では、ダウンロード処理（図８参照）における端末側の処理や、アクセス管理処理（図９参照）を、携帯電話機４０においてＪＡＭの機能として実行する場合について説明したが、勿論、これらの処理は、携帯電話機４０のＯＳの機能として実行されてもよい。
【００７２】
また、本発明が適用可能な電子機器は、携帯電話機に限定されるものではない。例えば、ＰＨＳ（Personal Handyphone System：登録商標）端末やパーソナルコンピュータ等の各種通信装置に本発明を適用することができる。また、通信機能を有しておらず、例えば、ＣＤ−ＲＯＭやメモリカード等の記録媒体を介してプログラムをインストールするパーソナルコンピュータ等に対しても本発明を適用することができる。なお、記録媒体を介して電子機器にプログラムをインストールする場合には、上述した実施形態において説明した“LaunchAPP”項目や“PermissionAPP”項目のデータに相当する情報が、プログラムとともに記録媒体に記録されていればよい。
【図面の簡単な説明】
【００７３】
【図１】本発明の実施形態に係る通信システムの構成を例示するブロック図である。
【図２】同実施形態に係るJavaＡＰの構成について例示する図である。
【図３】同実施形態に係る携帯電話機のハードウェア構成を例示するブロック図である。
【図４】同実施形態に係るＪＡＲストレージの構成を例示する図である。
【図５】同実施形態に係るスクラッチパッドの構成を例示する図である。
【図６】同実施形態に係るアクセス管理テーブルのデータ構成を例示する図である。
【図７】同実施形態に係り、携帯電話機におけるソフトウェアの実行環境を説明するための図である。
【図８】同実施形態に係り、JavaＡＰをダウンロードする場合の、携帯電話機およびコンテンツサーバの動作を例示するシーケンスチャートである。
【図９】同実施形態に係り、携帯電話機においてＣＰＵにより実行されるアクセス管理処理の動作を例示するフローチャートである。
【図１０】本発明の変形例１に係り、携帯電話機においてＣＰＵにより実行される通知処理の動作を例示するフローチャートである。
【図１１】本発明の変形例２に係るアクセス管理テーブルのデータ構成を例示する図である。
【符号の説明】
【００７４】
１…通信システム、１０…コンテンツサーバ、２０…インターネット、３０…移動パケット通信網、３１…ゲートウェイサーバ、３２…基地局、４０…携帯電話機、４０１…ＣＰＵ、４０２…ＲＯＭ、４０３…ＲＡＭ、４０４…無線通信部、４０４ａ…アンテナ、４０５…操作入力部、４０６…通話処理部、４０７…液晶表示部、４０８…不揮発性メモリ、４０８ａ…ＪＡＲストレージ、４０８ｂ…スクラッチパッド、４０８ｃ，４０８ｄ…アクセス管理テーブル、４０９…バス。
【図１】
2005173939.tif 000003
【図２】
2005173939.tif 000004
【図３】
2005173939.tif 000005
【図４】
2005173939.tif 000006
【図５】
2005173939.tif 000007
【図６】
2005173939.tif 000008
【図７】
2005173939.tif 000009
【図８】
2005173939.tif 000010
【図９】
2005173939.tif 000011
【図１０】
2005173939.tif 000012
【図１１】
2005173939.tif 000013