(57)【要約】【課題】受信装置が受信した複数のプログラムについて、セキュリティを確保しつつ、あるプログラムの実行時に使用することのできる該プログラム用のデータを、別のプログラムの実行時にも使用できるようにすること。【解決手段】携帯電話機４０は、起動元のＪａｖａＡＰのダウンロード元を示すＵＲＬと起動先のＪａｖａＡＰのダウンロード元を示すＵＲＬについて、ＦＱＤＮが一致するか否かを判別し、ＦＱＤＮが一致した場合にのみ、起動元のＪａｖａＡＰを実行することによって得られたデータや、起動元のＪａｖａＡＰ用として用意されているデータを、起動先のＪａｖａＡＰに従って行われる処理において使用することを許可する。【選択図】      図８
2004302543.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを受信する受信手段と、
前記受信手段により受信されたプログラム毎に、当該プログラムと当該プログラムの送信元を示す送信元情報とを記憶する記憶手段と、
前記記憶手段に記憶された第１および第２のプログラムを含む複数のプログラムのうち、指定されたプログラムを実行する実行手段と、
前記実行手段により実行される前記第１のプログラムに従って行われる処理において使用することのできる、前記第１のプログラムと対応付けられたデータを、前記実行手段により実行される前記第２のプログラムに従って行われる処理において使用する旨が要求されると、前記記憶手段に記憶されている、前記第１のプログラムの送信元情報と前記第２のプログラムの送信元情報とを比較して、前記第１のプログラムと前記第２のプログラムの送信元が同じであるか否かを判定する判定手段と、
前記判定手段により前記第１のプログラムと前記第２のプログラムの送信元が同じであると判定された場合に、前記第２のプログラムに従って行われる処理において前記データを使用することを許可する許可手段と
を有することを特徴とする受信装置。
【請求項２】
操作部と、
前記第２のプログラムに従って行われる処理において前記データを使用することの可否を問うメッセージを報知する報知手段とをさらに有し、
前記許可手段は、前記操作部から、前記第２のプログラムに従って行われる処理において前記データを使用することを許可する旨の入力があり、かつ前記判定手段により前記第１のプログラムと前記第２のプログラムの送信元が同じであると判定された場合に、前記第２のプログラムに従って行われる処理において前記データを使用することを許可する
ことを特徴とする請求項１に記載の受信装置。
【請求項３】
操作部と、
前記第２のプログラムに従って行われる処理において前記データを使用することの可否を前記操作部からの入力に応じて設定する設定手段とをさらに有し、
前記許可手段は、前記第２のプログラムに従って行われる処理において前記データの使用を許可する旨が前記設定手段により設定されており、かつ前記判定手段により前記第１のプログラムと前記第２のプログラムの送信元が同じであると判定された場合に、前記第２のプログラムに従って行われる処理において前記データを使用することを許可する
ことを特徴とする請求項１に記載の受信装置。
【請求項４】
前記送信元情報は、プログラムの送信元となる通信装置の通信アドレスを含む
ことを特徴とする請求項１に記載の受信装置。
【請求項５】
コンピュータを、
当該コンピュータによって受信されたプログラム毎に、当該プログラムと当該プログラムの送信元を示す送信元情報とをメモリに記憶する記憶手段、
前記記憶手段によりメモリに記憶された第１および第２のプログラムを含む複数のプログラムのうち、指定されたプログラムを実行する実行手段、
前記実行手段により実行される前記第１のプログラムに従って行われる処理において使用することのできる、前記第１のプログラムと対応付けられたデータを、前記実行手段により実行される前記第２のプログラムに従って行われる処理において使用する旨が要求されると、前記メモリに記憶されている、前記第１のプログラムの送信元情報と前記第２のプログラムの送信元情報とを比較して、前記第１のプログラムと前記第２のプログラムの送信元が同じであるか否かを判定する判定手段、および
前記判定手段により前記第１のプログラムと前記第２のプログラムの送信元が同じであると判定された場合に、前記第２のプログラムに従って行われる処理において前記データを使用することを許可する許可手段
として機能させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、あるプログラムを実行することによって得られたデータや該プログラム用に用意されたデータを、別のプログラムを実行する場合にも使用できるようにするための技術に関する。
【０００２】
【従来の技術】
例えば、パーソナルコンピュータ等の電子機器は、当該電子機器にインストールされた各種のプログラムを実行することにより、文書データの作成やブラウジング、電子メールの送受信等に関する処理を行う。また、このような電子機器の中には、あるプログラムを実行することによって得られた、このプログラム用のデータを、別のプログラムの実行時にも使用できるようにしたものがある（例えば、特許文献１参照）。
【０００３】
【特許文献１】
特開２００２−３１２２１５号公報
【０００４】
【発明が解決しようとする課題】
ところで、パケット通信機能を有する携帯電話機やパーソナルコンピュータ等の通信装置は、インターネットに接続されているＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）サーバから各種のプログラムをダウンロードすることができる。インターネット等のオープンネットワークは、世界中の様々な人々が自由に情報の公開やプログラムの提供を行うことができる反面、例えば、悪意の有る個人や団体が通信装置内に記憶されているデータを密かに盗み出すプログラムを提供していたり、あるいは悪意は無いものの、通信装置において動作させると不具合を引き起こしてしまうプログラムが提供されてしまうことがある。
【０００５】
したがって、通信装置において、オープンネットワークを介して取得したプログラムについて何ら制限を設けずに、あるプログラムを実行することによって得られたデータや該プログラム用に用意されたデータを別のプログラムの実行時にも使用できるようにしてしまうと、例えば、あるプログラムの実行時にユーザが入力した個人情報が、悪意の有る個人や団体が提供したプログラムによってユーザの知らない間に通信装置から外部へ送信されてしまう、といった事態が生じるおそれがある。また、あるプログラム用に用意されたデータが、悪意の有る個人や団体が提供したプログラムによって不正に書き替えられてしまう、といった事態が生じるおそれがある。
【０００６】
一方で、上述したようなセキュリティに関する問題に対処するため、通信装置において、あるプログラムの実行時に使用することのできる該プログラム用のデータを、他のプログラムの実行時には一切使用できないようにしてしまうと、通信装置の使い勝手が損なわれてしまう。
【０００７】
本発明は、以上説明した事情に鑑みてなされたものであり、その目的は、受信装置が受信した複数のプログラムについて、セキュリティを確保しつつ、あるプログラムの実行時に使用することのできる該プログラム用のデータを、別のプログラムの実行時にも使用できるようにすることである。
【０００８】
【課題を解決するための手段】
上記課題を解決するために、この発明は、プログラムを受信する受信手段と、
前記受信手段により受信されたプログラム毎に、当該プログラムと当該プログラムの送信元を示す送信元情報とを記憶する記憶手段と、
前記記憶手段に記憶された第１および第２のプログラムを含む複数のプログラムのうち、指定されたプログラムを実行する実行手段と、
前記実行手段により実行される前記第１のプログラムに従って行われる処理において使用することのできる、前記第１のプログラムと対応付けられたデータを、前記実行手段により実行される前記第２のプログラムに従って行われる処理において使用する旨が要求されると、前記記憶手段に記憶されている、前記第１のプログラムの送信元情報と前記第２のプログラムの送信元情報とを比較して、前記第１のプログラムと前記第２のプログラムの送信元が同じであるか否かを判定する判定手段と、
前記判定手段により前記第１のプログラムと前記第２のプログラムの送信元が同じであると判定された場合に、前記第２のプログラムに従って行われる処理において前記データを使用することを許可する許可手段と
を有する受信装置を提供する。
【０００９】
また、この発明は、コンピュータを、
当該コンピュータによって受信されたプログラム毎に、当該プログラムと当該プログラムの送信元を示す送信元情報とをメモリに記憶する記憶手段、
前記記憶手段によりメモリに記憶された第１および第２のプログラムを含む複数のプログラムのうち、指定されたプログラムを実行する実行手段、
前記実行手段により実行される前記第１のプログラムに従って行われる処理において使用することのできる、前記第１のプログラムと対応付けられたデータを、前記実行手段により実行される前記第２のプログラムに従って行われる処理において使用する旨が要求されると、前記メモリに記憶されている、前記第１のプログラムの送信元情報と前記第２のプログラムの送信元情報とを比較して、前記第１のプログラムと前記第２のプログラムの送信元が同じであるか否かを判定する判定手段、および
前記判定手段により前記第１のプログラムと前記第２のプログラムの送信元が同じであると判定された場合に、前記第２のプログラムに従って行われる処理において前記データを使用することを許可する許可手段
として機能させるためのプログラムを提供する。
【００１０】
勿論、このようなプログラムを記録媒体に記録して、この記録媒体を用いてプログラムを頒布するようにしてもよい。
【００１１】
この発明によれば、受信装置（コンピュータ）は、ともに受信したプログラムである第１のプログラムと第２のプログラムの送信元が同じ場合にのみ、第１のプログラムに従って行われる処理において使用することのできる、第１のプログラムに対応付けられたデータを、第２のプログラムに従って行われる処理において使用することを許可する。
【００１２】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態について説明する。なお、各図において共通する部分には、同一の符号が付されている。
［Ａ−１．実施形態の構成］
＜１．通信システムの全体構成＞
図１は、本発明の実施形態に係る通信システム１の構成を例示するブロック図である。同図に示すように通信システム１は、コンテンツサーバ１０と、インターネット２０と、移動パケット通信網３０と、携帯電話機４０とを有している。
【００１３】
コンテンツサーバ１０は、インターネット２０および移動パケット通信網３０を介して携帯電話機４０とパケット通信を行う機能を有している。このコンテンツサーバ１０には、携帯電話機４０において実行可能なＪａｖａ（登録商標）アプリケーションソフトウェア（以下、「ＪａｖａＡＰ」と略称する）が記憶されている。
【００１４】
移動パケット通信網３０は、ゲートウェイサーバ３１と、基地局３２とを有している。ゲートウェイサーバ３１は、移動パケット通信網３０用の通信プロトコルとインターネット２０用の通信プロトコル等、通信プロトコルの異なるデータを相互に変換し、移動パケット通信網３０とインターネット２０とのデータの授受を中継する。また、基地局３２は、移動パケット通信網３０の通信サービスエリア内に多数設置されており、自局３２がカバーする無線セルに在圏している携帯電話機４０と無線通信を行う。
【００１５】
携帯電話機４０は、移動パケット通信網３０に収容される移動機である。この携帯電話機４０は、自機４０が在圏している無線セルをカバーする基地局３２を介してコンテンツサーバ１０とパケット通信を行い、コンテンツサーバ１０から任意のＪａｖａＡＰをダウンロードすることができる。
【００１６】
＜２．ＪａｖａＡＰの構成＞
図２は、コンテンツサーバ１０に記憶されているＪａｖａＡＰの構成について例示する図である。同図に示すようにＪａｖａＡＰは、ＪａｖａＡＰの本体プログラムおよびこの本体プログラムを実行する場合に使用される画像ファイルや音声ファイル等を１つにまとめたＪＡＲ（Ｊａｖａ  Ａｒｃｈｉｖｅ）ファイルと、このＪＡＲファイルのインストールや起動、ネットワークアクセス等を制御するための各種制御情報が格納されたＡＤＦ（Ａｐｐｌｉｃａｔｉｏｎ  Ｄｅｓｃｒｉｐｔｏｒ  Ｆｉｌｅ）とを有している。
【００１７】
ＡＤＦは、ＪＡＲファイルの前に携帯電話機４０にダウンロードされるデータファイルであって、このＡＤＦと対をなすＪＡＲファイルをＡＤＦに引き続いて携帯電話機４０にダウンロードするため、インターネット２０上におけるＪＡＲファイルの格納場所等を示すＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）が“ＰａｃｋａｇｅＵＲＬ”の項目データとして含まれている。この“ＰａｃｋａｇｅＵＲＬ”の項目データは、ＪａｖａＡＰの提供者によって設定される。
【００１８】
同図に示す例では、“ＰａｃｋａｇｅＵＲＬ”の項目データとして“ｈｔｔｐ：／／ｗｗｗ．○○．ｃｏ．ｊｐ／△△／ＪＡＲ００１”がＡＤＦに含まれている。したがって、このＡＤＦと対をなすＪＡＲファイル“ＪＡＲ００１”は、インターネット２０上において、ＵＲＬ“ｈｔｔｐ：／／ｗｗｗ．○○．ｃｏ．ｊｐ／△△／ＪＡＲ００１”によって特定されるＷＷＷサーバ（コンテンツサーバ１０）に記憶されていることがわかる。
【００１９】
なお、以下、本明細書では、ＪＡＲファイルとＡＤＦを特に区別する必要がない限り、これらを合わせて「ＪａｖａＡＰ」と記載する。また、本明細書において、１つのＪａｖａＡＰを構成するＪＡＲファイルおよびＡＤＦは、同じコンテンツサーバ１０に記憶されているものとする。但し、ＪＡＲファイルとＡＤＦは、各々別のサーバに記憶されていてもよい。
【００２０】
＜３．携帯電話機の構成＞
図３は、携帯電話機４０のハードウェア構成を例示するブロック図である。同図に示すように携帯電話機４０は、ＣＰＵ４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、無線通信部４０４と、操作入力部４０５と、通話処理部４０６と、液晶表示部４０７と、不揮発性メモリ４０８とを有しており、これらの各部はバス４０９により接続されている。
【００２１】
ＣＰＵ４０１は、ＲＯＭ４０２や不揮発性メモリ４０８に記憶されている各種のプログラムを実行することにより、バス４０９を介して接続されている装置各部を制御する。ＲＯＭ４０２には、装置各部の基本制御を司るプログラム等が記憶されている。また、ＲＡＭ４０３は、ＣＰＵ４０１のワークエリアとして用いられる。
【００２２】
無線通信部４０４は、アンテナ４０４ａを備え、基地局３２との無線通信を制御する。この無線通信部４０４は、ＣＰＵ４０１の制御の下、例えば、パケット通信用のデータや送話音声に関するデータ等を搬送波に重畳して送信信号を生成し、この信号を基地局３２へ送信する。また、無線通信部４０４は、基地局３２から送られてくる無線信号をアンテナ４０４ａを介して受信し、この信号を復調して自機４０宛のパケット通信用のデータや受話音声に関するデータ等を得る。
【００２３】
操作入力部４０５は、数字や文字、操作指示等を入力するための複数のキーを有しており、これらのキーの操作に応じた操作信号をＣＰＵ４０１に出力する。通話処理部４０６は、例えば、マイクロフォンやスピーカ、音声処理部等を有しており、ＣＰＵ４０１の制御の下、呼の接続や切断等を含む通話処理を行う。また、液晶表示部４０７は、液晶表示パネルと、この液晶表示パネルの表示制御を行う駆動回路とを有している。
【００２４】
不揮発性メモリ４０８は、例えば、ＳＲＡＭ（Ｓｔａｔｉｃ−ＲＡＭ）やＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ−ＲＯＭ）等であり、携帯電話機４０のオペレーティングシステム（以下、「ＯＳ」と略称する）やＷＷＷブラウザ用のソフトウェア、Ｊａｖａ実行環境を構築するためのソフトウェア等が記憶されている。また、この不揮発性メモリ４０８には、コンテンツサーバ１０からダウンロードされたＪａｖａＡＰ等が記憶される。
【００２５】
この不揮発性メモリ４０８は、ＪＡＲストレージ４０８ａと、スクラッチパッド４０８ｂとを有している。ＪＡＲストレージ４０８ａには、図４に示すように、携帯電話機４０にダウンロードされた各ＪａｖａＡＰ毎にそのＪＡＲファイルが記憶される。同図に示す例では、ＪＡＲストレージ４０８ａ内に３つのＪＡＲファイル“ＪＡＲファイルＡ”，“ＪＡＲファイルＢ”，“ＪＡＲファイルＣ”が記憶されている。
【００２６】
また、スクラッチパッド４０８ｂには、図５に示すように、ＪＡＲストレージ４０８ａに記憶された各ＪＡＲファイル毎に、ＪＡＲファイルの本体プログラムを実行することによって得られるデータ等を永続的に記憶するためのＪＡＲファイル用メモリ領域が設けられている。なお、ＪＡＲファイルの本体プログラムを実行することによって得られるデータとは、例えば、ＪＡＲファイルがビデオゲーム用のものであった場合、ビデオゲームを途中で終える際に保存しておくセーブデータ等である。
【００２７】
＜４．携帯電話機におけるソフトウェアの実行環境＞
図６は、携帯電話機４０におけるソフトウェアの実行環境を説明するための図である。同図において、ＫＶＭ（Ｋ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）は、小型電子機器用に設計変更されたＪＶＭ（Ｊａｖａ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）であって、ＪａｖａバイトコードをＣＰＵ４０１がＯＳを介して解釈／実行可能な命令コードに変換するためのソフトウェアである。また、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）は、例えば、ＣＬＤＣ（Ｃｏｎｎｅｃｔｅｄ  Ｌｉｍｉｔｅｄ  Ｄｅｖｉｃｅ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ）によって規定されている機能や、携帯電話機４０に特化した機能をＪａｖａＡＰに対して提供するためのソフトウェアモジュールである。
【００２８】
ＪＡＭ（Ｊａｖａ  Ａｐｐｌｉｃａｔｉｏｎ  Ｍａｎａｇｅｒ）は、ＯＳによる制御の下で、ＪａｖａＡＰのダウンロード／インストール／起動／終了／削除等を管理するためのソフトウェアである。このＪＡＭは、例えば、図４に示したＪＡＲファイルＡの本体プログラムが実行される場合に、この本体プログラムに従って行われる処理において、不揮発性メモリ４０８やＲＯＭ４０２等を含む各種リソースに対するアクセスが要求されると、そのアクセス先が、ＪＡＲストレージ４０８ａ内のＪＡＲファイルＡが記憶されている領域、スクラッチパッド４０８ｂ内のＪＡＲファイルＡ用のメモリ領域、ＪＡＲファイルＡを実行するためにＲＡＭ４０３内に割り当てられたアプリケーション実行メモリ領域、ＪＡＲファイルＡのダウンロード元となるコンテンツサーバ１０、のいずれかである場合にのみアクセスを許可する。
【００２９】
このようにＪＡＭは、携帯電話機４０にダウンロードされた各ＪａｖａＡＰについて、基本的に、あるＪａｖａＡＰに従って行われる処理において他のＪａｖａＡＰ用のデータが使用されることのないよう、各ＪａｖａＡＰの実行時に各種リソースに対するアクセスを制限する機能を有している。
【００３０】
なお、同図に示すように、電話帳機能やブラウザ機能、ネットワーク通信機能を実現するためのソフトウェアは、ＯＳによる制御の下で直接動作する。
【００３１】
［Ａ−２．実施形態の動作］
次に、本実施形態の動作について説明する。
＜１．ダウンロード処理＞
図７は、ＪａｖａＡＰをダウンロードする場合の、携帯電話機４０およびコンテンツサーバ１０の動作を例示するシーケンスチャートである。なお、このダウンロードに関する処理において、ステップＳ１０３以降の携帯電話機４０で行われる各処理は、ＣＰＵ４０１がＪＡＭに従って実行する処理である。
【００３２】
まず、ユーザは、携帯電話機４０の操作入力部４０５を操作してＷＷＷブラウザを起動させる。次いで、ユーザは、操作入力部４０５を操作してコンテンツサーバ１０への接続を指示する。これにより携帯電話機４０からコンテンツサーバ１０へ接続要求メッセージが送信される（ステップＳ１０１）。コンテンツサーバ１０は、接続要求メッセージを受信すると、必要に応じて携帯電話機４０の認証処理等を行なった後、サイトのメニュー情報を携帯電話機４０へ送信する（ステップＳ１０２）。また、携帯電話機４０は、メニュー情報を受信すると、このメニュー情報に基づく画像を液晶表示部４０７の液晶表示パネル（以下、「液晶画面」と記載する）に表示する。この後、携帯電話機４０とコンテンツサーバ１０の間では、メニューの選択等に関する情報が送受信される。
【００３３】
そして、携帯電話機４０において、ダウンロードするＪａｖａＡＰが操作入力により選択されると、ＣＰＵ４０１は、選択されたＪａｖａＡＰのＡＤＦを携帯電話機４０に対して送信することを要求するＡＤＦ取得要求メッセージをコンテンツサーバ１０へ送信する（ステップＳ１０３）。コンテンツサーバ１０は、ＡＤＦ取得要求メッセージを受信すると、このＡＤＦ取得要求メッセージによって指定されるＡＤＦをメモリから読み出して携帯電話機４０へ送信する（ステップＳ１０４）。
【００３４】
携帯電話機４０のＣＰＵ４０１は、ＡＤＦを受信すると、まず、ＡＤＦのファイル内容を確認し、このＡＤＦと対をなすＪＡＲファイルを携帯電話機４０にダウンロードできるか否かを判別する（ステップＳ１０５）。具体的には、ＣＰＵ４０１は、ＡＤＦから“ＡｐｐＳｉｚｅ”項目と“ＳＰｓｉｚｅ”項目のデータを読み出すとともに、ＪＡＲストレージ４０８ａおよびスクラッチパッド４０８ｂの空きメモリ容量を確認する。なお、“ＡｐｐＳｉｚｅ”項目には、ダウンロードを予定しているＪＡＲファイルのサイズ（ＪＡＲファイルをＪＡＲストレージ４０８ａに記憶するために必要となるメモリ容量）を示すサイズ情報が格納されている。また、“ＳＰｓｉｚｅ”項目には、ダウンロードを予定しているＪＡＲファイルに対してスクラッチパッド４０８ｂ内に割り当てるＪＡＲファイル用メモリ領域のサイズを示すサイズ情報が格納されている。ＣＰＵ４０１は、ＪＡＲストレージ４０８ａまたはスクラッチパッド４０８ｂの空きメモリ容量が不足している場合に、ＪＡＲファイルをダウンロードできないと判別し、その旨を示すメッセージを液晶画面に表示してＪａｖａＡＰのダウンロードを中止する。
【００３５】
一方、ＣＰＵ４０１は、ＪＡＲファイルのダウンロードできると判別した場合は（ステップＳ１０５：Ｙｅｓ）、次いで、ＡＤＦに含まれている“ＰａｃｋａｇｅＵＲＬ”の項目データ、すなわちＪＡＲファイルの取得要求先等を示すＵＲＬを用いてＪＡＲファイル取得要求メッセージを生成し、当該ＪＡＲファイル取得要求メッセージをコンテンツサーバ１０へ送信する（ステップＳ１０６）。コンテンツサーバ１０は、ＪＡＲファイル取得要求メッセージを受信すると、このＪＡＲファイル取得要求メッセージによって指定されるＪＡＲファイルをメモリから読み出して携帯電話機４０に送信する（ステップＳ１０７）。
【００３６】
携帯電話機４０のＣＰＵ４０１は、ＪＡＲファイルを受信すると、まず、上記ステップＳ１０４において受信したＡＤＦから“ＡｐｐＳｉｚｅ”項目のサイズ情報を読み出す。そして、ＣＰＵ４０１は、読み出したサイズ情報によって指定される容量のメモリ領域をＪＡＲストレージ４０８ａに確保した後、このメモリ領域内に、受信したＪＡＲファイルをインストールする。また、ＣＰＵ４０１は、ＡＤＦから“ＳＰｓｉｚｅ”項目のサイズ情報を読み出し、当該サイズ情報に従って、インストールされたＪＡＲファイル用のメモリ領域をスクラッチパッド４０８ｂ内に確保する。また、ＣＰＵ４０１は、上記ステップＳ１０４において受信したＡＤＦを、インストールされたＪＡＲファイルと対応付けて不揮発性メモリ４０８に格納する（ステップＳ１０８）。
【００３７】
＜２．ＪａｖａＡＰの起動＞
次に、携帯電話機４０においてＣＰＵ４０１は、例えば、画面表示されたＪａｖａＡＰの一覧リストの中から、起動させるＪａｖａＡＰが操作入力によって指定された場合等に、指定されたＪａｖａＡＰの本体プログラムをＪＡＲストレージ４０８ａから読み出して実行し、この本体プログラムに従って行われる処理を開始する。なお、ＪａｖａＡＰの起動を指示する形態は、操作入力に限定されず、例えば、予め設定された時刻になるとＪａｖａＡＰの起動が指示される場合や、他のプログラムに従って行われている処理からＪａｖａＡＰの起動が指示される場合、電子メール等を用いて携帯電話機４０の外部からＪａｖａＡＰの起動が指示される場合等もある。
【００３８】
また、ＪａｖａＡＰを起動させる場合には、ＪＡＲストレージ４０８ａから読み出された本体プログラム等や、このＪａｖａＡＰを実行するために必要となるオブジェクト等を記憶しておくためのアプリケーション実行メモリ領域がＲＡＭ４０３内に確保される。さらに、ＣＰＵ４０１は、このようにして起動させたＪａｖａＡＰに従って行われる処理において、他のＪａｖａＡＰ用のデータ等を使用することがないよう、前述したようにＪＡＭに従ってアクセスを制限している。
【００３９】
そして、ＣＰＵ４０１は、このようにして起動させたＪａｖａＡＰに従って行われる処理において、不揮発性メモリ４０８に記憶されている他のＪａｖａＡＰを起動させる旨の起動要求が発生すると、以下に説明する起動ＡＰＩに基づく処理を開始する。なお、起動ＡＰＩを実行する場合には、ＲＡＭ４０３内に、起動ＡＰＩしかアクセスすることのできない起動ＡＰＩ専用メモリ領域が確保される。
【００４０】
＜３．起動ＡＰＩに基づく処理＞
図８は、携帯電話機４０においてＣＰＵ４０１により実行される起動ＡＰＩに基づく処理の動作を例示するフローチャートである。
【００４１】
同図に示すように、まず、ＣＰＵ４０１は、他のＪａｖａＡＰの起動を要求した実行中のＪａｖａＡＰ（以下、「起動元のＪａｖａＡＰ」という）について、不揮発性メモリ４０８に記憶されているＡＤＦから“ＰａｃｋａｇｅＵＲＬ”の項目データ（ダウンロード元を示すＵＲＬ）を取得する（ステップＳ２０１）。また、ＣＰＵ４０１は、起動させる旨が要求されたＪａｖａＡＰ（以下、「起動先のＪａｖａＡＰ」という）についても、不揮発性メモリ４０８に記憶されているＡＤＦから“ＰａｃｋａｇｅＵＲＬ”の項目データ（ダウンロード元を示すＵＲＬ）を取得する（ステップＳ２０２）。
【００４２】
次いで、ＣＰＵ４０１は、上記ステップＳ２０１およびＳ２０２において取得した２つのＵＲＬについて、それぞれのＦＱＤＮ（Ｆｕｌｌｙ  Ｑｕａｌｉｆｉｅｄ  Ｄｏｍａｉｎ  Ｎａｍｅ：完全修飾ドメイン名）を比較し（ステップＳ２０３）、両方のＦＱＤＮが一致するか否かを判別する（ステップＳ２０４）。すなわち、このステップＳ２０４においてＣＰＵ４０１は、起動元のＪａｖａＡＰと起動先のＪａｖａＡＰのダウンロード元が同じであるか否かを判定する。その結果、ＣＰＵ４０１は、ＦＱＤＮが一致しないと判別した場合は、セキュリティが確保できないため、起動先のＪａｖａＡＰを実行することはできない旨のメッセージを液晶画面に表示するとともに（ステップＳ２０５）、起動先のＪａｖａＡＰの実行を取り止め（ステップＳ２０６）、起動ＡＰＩに基づく処理を終える。
【００４３】
一方、ＣＰＵ４０１は、両方のＦＱＤＮが一致すると判別した場合は（ステップＳ２０４：Ｙｅｓ）、次いで、起動先のＪａｖａＡＰが、他のＪａｖａＡＰとの連携が許可されたソフトウェアであるか否かを判別する（ステップＳ２０７）。このステップＳ２０７の処理について具体的に説明すると、まず、前提としてＪａｖａＡＰのＡＤＦには、このＪａｖａＡＰが他のＪａｖａＡＰとの連携が許可されたソフトウェアであるか否かを示す情報“ＬａｕｎｃｈＡｐｐ”が含まれている。この“ＬａｕｎｃｈＡｐｐ”のデータは、ＪａｖａＡＰの提供者によって設定されるものであり、例えば、他のＪａｖａＡＰとの連携を許可する場合に“１”が、他のＪａｖａＡＰとの連携を許可しない場合に“０”が設定されている。勿論、このように、他のＪａｖａＡＰとの連携を許可するか否かだけではなく、連携を許可するＪａｖａＡＰを指定する情報がさらに含まれていてもよい。
【００４４】
ＣＰＵ４０１は、起動先のＪａｖａＡＰについて、不揮発性メモリ４０８に記憶されているＡＤＦから“ＬａｕｎｃｈＡｐｐ”のデータを取得し、当該データが“１”であるのか、それとも“０”であるのかに従って、このＪａｖａＡＰが他のＪａｖａＡＰとの連携が許可されたソフトウェアであるか否かを判別する。その結果、ＣＰＵ４０１は、起動先のＪａｖａＡＰが他のＪａｖａＡＰとの連携が許可されたソフトウェアでないと判別した場合は（ステップＳ２０７：Ｎｏ）、起動しようとしているＪａｖａＡＰが連携を許可しているソフトウェアではないため、このＪａｖａＡＰを起動することはできない旨のメッセージを液晶画面に表示し（ステップＳ２０５）、起動先のＪａｖａＡＰの実行を取り止め（ステップＳ２０６）、起動ＡＰＩに基づく処理を終える。
【００４５】
一方、ＣＰＵ４０１は、起動先のＪａｖａＡＰが他のＪａｖａＡＰとの連携が許可されたソフトウェアであると判別した場合は（ステップＳ２０７：Ｙｅｓ）、次いで、起動元のＪａｖａＡＰを実行する場合に使用することのできるデータを、起動先のＪａｖａＡＰに従って行われる処理に引き渡すことが要求されているか否かを判別する（ステップＳ２０８）。なお、起動元のＪａｖａＡＰを実行する場合に使用することのできるデータとは、例えば、起動元のＪａｖａＡＰを実行することによって得られる処理結果や各種パラメータ値、起動元のＪａｖａＡＰのＪＡＲファイル内に格納されている画像データや音声データ等である。
【００４６】
ＣＰＵ４０１は、上記ステップＳ２０８において、データの引き渡しが要求されていないと判別した場合は、起動元のＪａｖａＡＰを終了させるとともに、起動先のＪａｖａＡＰの本体プログラムをＪＡＲストレージ４０８ａから読み出して起動した後（ステップＳ２０９）、起動ＡＰＩに基づく処理を終える。一方、ＣＰＵ４０１は、上記ステップＳ２０８において、データの引き渡しが要求されていると判別した場合は、次いで、データの引き渡しを許可するか否かをユーザに問うメッセージを液晶画面に表示する。
【００４７】
この表示に応じて、データの引き渡しを許可しない旨が操作入力部４０５から入力された場合、あるいはメッセージの表示の後、予め定められた時間が経過してもデータの引き渡しを許可する旨が操作入力部４０５から入力されなかった場合（ステップＳ２１０：Ｎｏ）、ＣＰＵ４０１は、ユーザの承認が得られなかったのでデータの引き渡しを行うことはできず、よって起動先のＪａｖａＡＰの実行を中止する旨のメッセージを液晶画面に表示した後（ステップＳ２０５）、起動先のＪａｖａＡＰの実行を取り止め（ステップＳ２０６）、起動ＡＰＩに基づく処理を終える。なお、データの引き渡しの可否を問うメッセージは、例えば、音声メッセージとしてユーザに報知される形態であってもよい。
【００４８】
一方、ＣＰＵ４０１は、メッセージの表示の後、予め定められた時間内に操作入力部４０５からデータの引き渡しを許可する旨の入力があると（ステップＳ２１０：Ｙｅｓ）、まず、起動元のＪａｖａＡＰ用としてＲＡＭ４０３内に設けられたアプリケーション実行メモリ領域、あるいはスクラッチパッド４０８ｂ内に設けられた起動元のＪａｖａＡＰ用のメモリ領域（ＪＡＲファイル用メモリ領域）から、引き渡しの対象となるデータを取得し、当該データをＲＡＭ４０３の起動ＡＰＩ専用メモリ領域に記憶する（ステップＳ２１１）。次いで、ＣＰＵ４０１は、起動元のＪａｖａＡＰを終了させ、ＲＡＭ４０３のアプリケーション実行メモリ領域内のデータを消去した後、起動先のＪａｖａＡＰの本体プログラムをＪＡＲストレージ４０８ａから読み出して起動する（ステップＳ２１２）。
【００４９】
このようにして起動先のＪａｖａＡＰが実行（起動）されると、ＣＰＵ４０１は、上記ステップＳ２１１において起動ＡＰＩ専用メモリ領域に記憶しておいた、引き渡し対象となるデータを読み出す。そして、ＣＰＵ４０１は、読み出したデータを、ＲＡＭ４０３のアプリケーション実行メモリ領域、あるいはスクラッチパッド４０８ｂ内に設けられている起動先のＪａｖａＡＰ用のメモリ領域に格納し（ステップＳ２１３）、起動ＡＰＩに基づく処理を終える。
【００５０】
これにより、起動元のＪａｖａＡＰを実行する場合に使用することのできるデータが、起動先のＪａｖａＡＰを実行する場合に、アプリケーション実行メモリ領域あるいはスクラッチパッド４０８ｂ内の起動先のＪａｖａＡＰ用のメモリ領域に記憶されるので、当該データを起動先のＪａｖａＡＰに従って行われる処理において使用することができるようになる。
【００５１】
例えば、ユーザが、ＦＱＤＮの一致するダウンロード元から野球ゲーム用の２つのＪａｖａＡＰ、すなわち野球の試合を行うためのＪａｖａＡＰ（以下、「試合用ＪａｖａＡＰ」という）と、当該試合用ＪａｖａＡＰで使用可能なゲームキャラクタ（選手）を練習によって鍛え、選手に設定された各パラメータ値（例えば、打撃力、走力、投球スピード、投球可能球種等）をアップさせることのできるＪａｖａＡＰ（以下、「練習用ＪａｖａＡＰ」という）とを携帯電話機４０にダウンロードした場合、ユーザは、携帯電話機４０において練習用ＪａｖａＡＰを実行することにより、選手の各パラメータ値をアップさせ、当該練習用ＪａｖａＡＰによって各パラメータ値をアップさせた選手を、試合用ＪａｖａＡＰにおいて使用することができるようになるのである。
【００５２】
以上説明したように本実施形態によれば、携帯電話機４０は、起動元のＪａｖａＡＰと起動先のＪａｖａＡＰのダウンロード元が同じ場合にのみ、起動元のＪａｖａＡＰを実行することによって得られたデータや、起動元のＪａｖａＡＰ用として用意されているデータを、起動先のＪａｖａＡＰの実行時にも使用できるようにする。
【００５３】
したがって、仮に、悪意の有る個人や団体によって提供されたＪａｖａＡＰが携帯電話機４０において実行されたとしても、このＪａｖａＡＰに対して、携帯電話機４０にインストールされている、ダウンロード元が異なる他のＪａｖａＡＰ用のデータが引き渡されることはない。また、本実施形態によれば、ダウンロード元が同じＪａｖａＡＰ間であっても、データの引き渡しが行われる場合には必ずユーザに承認を得るようにしているので、ユーザの知らない間にデータが引き渡されてしまうようなことがない。
【００５４】
なお、携帯電話機４０（コンピュータ）は、ＲＯＭ４０２や不揮発性メモリ４０８に記憶されているプログラムに従って、上述したダウンロード処理（図７参照）や起動ＡＰＩに基づく処理（図８参照）を実行するが、このような本発明に係る処理を実行するためのプログラムを通信によって携帯電話機４０に提供するようにしてもよい。あるいは、このようなプログラムを記録媒体に記録して提供するようにしてもよい。
【００５５】
［Ｂ．変形例］
以上、本発明の実施形態について説明したが、本発明はその主要な特徴から逸脱することなく他の様々な形態で実施することが可能である。上述した実施形態は、本発明の一態様を例示したものに過ぎず、例えば、以下に示すような変形例が考えられる。
【００５６】
＜変形例１＞
上述した起動ＡＰＩに基づく処理（図８参照）において、起動元のＪａｖａＡＰと起動先のＪａｖａＡＰのダウンロード元が同じであることに加え、さらに起動元のＪａｖａＡＰと起動先のＪａｖａＡＰがデータの授受を許可するＪａｖａＡＰとしてユーザによって事前に承認されている場合にのみ、データの引き渡しを許可するようにしてもよい。この場合、ユーザは、携帯電話機４０にダウンロードされた各ＪａｖａＡＰについて、データの授受を許可する２以上のＪａｖａＡＰを事前に指定して登録しておく必要がある。
【００５７】
図９は、携帯電話機４０においてＣＰＵ４０１により実行される登録処理の動作を例示するフローチャートである。この登録処理は、データの授受を許可する２以上のＪａｖａＡＰを登録する旨が操作入力によって指示された場合に、ＣＰＵ４０１により実行される。
【００５８】
同図に示すように、まず、不揮発性メモリ４０８にインストールされている各Ｊａ  ｖａＡＰのうち、ユーザが操作入力により任意のＪａｖａＡＰを選択すると（ステップＳ３０１）、ＣＰＵ４０１は、選択されたＪａｖａＡＰについて、そのＡＤＦに“ＰａｃｋａｇｅＵＲＬ”の項目データとして含まれているＵＲＬからＦＱＤＮを取得する（ステップＳ３０２）。次いで、ＣＰＵ４０１は、不揮発性メモリ４０８にインストールされている各ＪａｖａＡＰについて、ダウンロード元を示すＵＲＬのＦＱＤＮが上記ステップＳ３０２において取得したＦＱＤＮと一致するか否かを調べ、ＦＱＤＮが一致するＪａｖａＡＰを液晶画面にリスト表示する（ステップＳ３０３）。
【００５９】
そして、ＣＰＵ４０１は、リスト表示されたＪａｖａＡＰの中から、上記ステップＳ３０１において選択されたＪａｖａＡＰとのデータの授受を許可する１以上のＪａｖａＡＰが操作入力によって選択されると（ステップＳ３０４）、当該ステップＳ３０４において選択されたＪａｖａＡＰの識別情報（例えばＪＡＲファイルのファイル名）と、上記ステップＳ３０１において選択されたＪａｖａＡＰの識別情報とを対応付けて、ユーザがデータの授受を許可したＪａｖａＡＰに関する情報（設定データ）として不揮発性メモリ４０８に記憶し（ステップＳ３０５）、登録処理を終える。なお、登録処理において、他のＪａｖａＡＰとのデータの授受を許可しないＪａｖａＡＰを不揮発性メモリ４０８に登録しておくようにしてもよい。
【００６０】
このようにして不揮発性メモリ４０８に記憶された設定データを用いて、上述した起動ＡＰＩに基づく処理（図８参照）において、起動元のＪａｖａＡＰと起動先のＪａｖａＡＰのダウンロード元が同じであることに加え、起動元のＪａｖａＡＰと起動先のＪａｖａＡＰがデータの授受を許可するＪａｖａＡＰとしてユーザによって事前に承認されている場合に、データの引き渡しを許可するようにしてもよい。このようにすれば、ダウンロード元が同じＪａｖａＡＰ間であっても、事前にユーザの承認を得ていなければデータの引き渡しが許可されないので、携帯電話機４０におけるセキュリティをより高めることができる。
【００６１】
＜変形例２＞
上述した実施形態では、図８に示したステップＳ２０１〜Ｓ２１３までの処理を起動ＡＰＩの処理として行う場合について説明したが、上記ステップＳ２０１〜Ｓ２１３までの処理は、ＪＡＭやＯＳの処理として行われてもよい。
【００６２】
＜変形例３＞
上述した起動ＡＰＩに基づく処理（図８参照）のステップＳ２０３では、起動元のＪａｖａＡＰの送信元を示すＵＲＬと、起動先のＪａｖａＡＰの送信元を示すＵＲＬについて、ＦＱＤＮが一致するか否かを判別するようにした。しかしながら、ＵＲＬのうち比較対象とする部分は、ＦＱＤＮに限定されるものではない。例えば、ＦＱＤＮの代わりにドメイン名を用いてもよいし、あるいはＵＲＬを構成する文字列のうち、例えば、最初から２５文字目までの部分等を比較対象としてもよい。このようにＵＲＬのうち比較対象とする部分は任意に設定可能である。
【００６３】
また、このようにＵＲＬのうち比較対象とする部分が任意に設定可能であることから明らかとなるように、ダウンロード元が同じＪａｖａＡＰであると判定されるのは、同一のコンテンツサーバ１０からダウンロードされたＪａｖａＡＰに限定されるものでない。上述したようにＵＲＬの一部が一致すればよい訳であるから、異なるコンテンツサーバ１０からダウンロードされたＪａｖａＡＰであってもダウンロード元が同じＪａｖａＡＰと判定される場合もあるし、あるいは同一のコンテンツサーバ１０であるだけではなく、ＪａｖａＡＰが記憶されていたフォルダが同じであること等、さらにより細かな条件が一致しなければ、同じダウンロード元とは判定されない場合もある。
【００６４】
＜変形例４＞
上述した実施形態では、プログラムの送信元を示す情報としてＵＲＬを用いた場合について説明したが、プログラムの送信元を示す情報は、ＵＲＬに限定されるものではない。例えば、プログラムの送信元となる通信装置に割り当てられているＩＤ（例えば、ＭＡＣアドレスやメールアドレス等）や、プログラムの提供者毎に固有に割り当てられたＩＤ、あるいはプログラムの提供者が独自に設定した識別情報等を用いてもよい。
【００６５】
また、プログラムの送信元を示す情報は、プログラム自体に付加されていなくともよい。この場合、受信装置は、プログラムの受信時に当該プログラムの送信元となる通信装置から、このプログラムの送信元情報（例えば、ＵＲＬや通信装置の通信アドレス等）を取得して、受信したプログラムと対応付けてメモリに記憶すればよい。
【００６６】
＜変形例５＞
上述した実施形態では、携帯電話機４０にＪａｖａＡＰをダウンロードする場合について説明したが、勿論、ダウンロードではなく、ＪａｖａＡＰが携帯電話機４０に配信される場合についても本発明を適用することができる。また、本発明が適用可能な受信装置は、携帯電話機に限定されるものではない。例えば、ＰＨＳ（Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙｐｈｏｎｅ  Ｓｙｓｔｅｍ：登録商標）端末やパーソナルコンピュータ等の各種通信機器に本発明を適用することができる。勿論、プログラミング言語は、Ｊａｖａに限定されるものではない。
【００６７】
【発明の効果】
以上説明したように本発明によれば、受信装置が受信した複数のプログラムについて、セキュリティを確保しつつ、あるプログラムの実行時に使用することのできる該プログラム用のデータを、別のプログラムの実行時にも使用することができるようになる。
【図面の簡単な説明】
【図１】本発明の実施形態に係る通信システムの構成を例示するブロック図である。
【図２】同実施形態に係るＪａｖａＡＰの構成について例示する図である。
【図３】同実施形態に係る携帯電話機のハードウェア構成を例示するブロック図である。
【図４】同実施形態に係るＪＡＲストレージの構成を例示する図である。
【図５】同実施形態に係るスクラッチパッドの構成を例示する図である。
【図６】同実施形態に係り、携帯電話機におけるソフトウェアの実行環境を説明するための図である。
【図７】同実施形態に係り、ＪａｖａＡＰをダウンロードする場合の、携帯電話機およびコンテンツサーバの動作を例示するシーケンスチャートである。
【図８】同実施形態に係る携帯電話機において、ＣＰＵにより実行される起動ＡＰＩに基づく処理の動作を例示するフローチャートである。
【図９】本発明の変形例１に係り、携帯電話機においてＣＰＵにより実行される登録処理の動作を例示するフローチャートである。
【符号の説明】
１……通信システム、１０……コンテンツサーバ、２０……インターネット、３０……移動パケット通信網、３１……ゲートウェイサーバ、３２……基地局、４０……携帯電話機、４０１……ＣＰＵ、４０２……ＲＯＭ、４０３……ＲＡＭ、４０４……無線通信部、４０４ａ……アンテナ、４０５……操作入力部、４０６……通話処理部、４０７……液晶表示部、４０８……不揮発性メモリ、４０８ａ……ＪＡＲストレージ、４０８ｂ……スクラッチパッド、４０９……バス。
【図１】
2004302543.tif 000003
【図２】
2004302543.tif 000004
【図３】
2004302543.tif 000005
【図４】
2004302543.tif 000006
【図５】
2004302543.tif 000007
【図６】
2004302543.tif 000008
【図７】
2004302543.tif 000009
【図８】
2004302543.tif 000010
【図９】
2004302543.tif 000011