(57)【要約】【課題】記憶されるデータのセキュリティを保持しつつ、複数のプログラム間でデータ共有を可能とする仕組みを提供する。【解決手段】複数のデータサーバ２から移動パケット通信網１を介して移動機３に複数のプログラムを配信する。このとき、少なくとも１つのデータサーバ２は、移動機３に対して、複数のプログラムのうちデータ共有が可能なものの対応を判断するための情報を送信する。移動機３は、プログラムをダウンロードすると、そのプログラム専用のメモリ領域を割り当てる。そして、移動機３は、他のプログラムとの間で共有すべきデータについては、複数のプログラム実行下でアクセス可能なメモリ領域に書きこむ。さらに、移動機３は、複数のプログラム実行下でアクセス可能なメモリ領域からデータを読み出す際には、実行中のプログラムに対応する判断情報を参照して認証処理を行う。【選択図】      図１
2004272595.tif 000002
【特許請求の範囲】
【請求項１】
移動通信網に収容される移動機と、
前記移動機が実行可能なプログラムを前記移動通信網を介して前記移動機に送信する複数のサーバとを備え、
少なくとも１つの前記サーバは、前記プログラムと、当該プログラムに対して前記移動機におけるメモリ領域をどのように割り当てるかということを前記移動機が判断するための判断情報を送信し、
前記移動機は、
前記複数のサーバから送信されてくる複数の前記プログラムと、前記少なくとも１つのサーバから送信されてくる前記判断情報を受信する受信手段と、
受信した前記複数のプログラムの各々に対しては、各プログラム専用のメモリ領域を割り当てる個別領域割当手段と、
受信した前記判断情報に基づいて判断される特定の複数プログラムに対しては、当該特定の複数プログラムによって共有可能なメモリ領域を割り当てる共有領域割当手段と、
実行対象のプログラムに対し前記個別領域割当手段及び前記共有領域割当手段によって割り当てられたメモリ領域を用いて、当該プログラムを実行する制御手段とを備える
ことを特徴とする通信システム。
【請求項２】
移動通信網に収容される移動機に対して、当該移動機が前記移動通信網を介して受信したプログラムに対してどのようにメモリ領域を割り当てるかということを当該移動機に対して指定する
ことを特徴とするサーバ。
【請求項３】
複数のサーバから送信されてくる複数の実行可能なプログラムと、少なくとも１つのサーバから送信され前記プログラムに対してどのようにメモリ領域を割り当てるかということを判断するための判断情報とを受信する受信手段と、
受信した前記複数のプログラムの各々に対しては、各プログラム専用のメモリ領域を割り当てる個別領域割当手段と、
受信した前記判断情報に基づいて判断される特定の複数プログラムに対しては、当該特定の複数プログラムによって共有可能なメモリ領域を割り当てる共有領域割当手段と、
実行対象のプログラムに対し前記個別領域割当手段及び前記共有領域割当手段によって割り当てられたメモリ領域を用いて、当該プログラムを実行する制御手段とを備える
ことを特徴とする移動機。
【請求項４】
前記制御手段は、
前記共有領域割当手段によって割り当てられたメモリ領域にデータを書き込む際に、当該データに前記判断情報を付加する記録手段と、
前記共有領域割当手段によって割り当てられたメモリ領域からデータを読み出す際に、読み出すべきデータに付加された前記判断情報に基づいて読出し可否を判別する判別手段と、
前記判別手段による判別結果がデータ読出しを許可するものであった場合に前記共有領域割当手段によって割り当てられたメモリ領域にアクセスする読出手段とを備える
ことを特徴とする請求項３に記載の移動機。
【請求項５】
前記制御手段は、
前記共有領域割当手段によって割り当てられたメモリ領域にデータを書きこむ際に、実行中の前記プログラムに対応する前記判断情報を、書きこむべきデータに対応する前記判断情報と対応付けて記憶する記憶手段と、
前記共有領域割当手段によって割り当てられたメモリ領域からデータを読み出す際に、実行中の前記プログラムに対応する前記判断情報と、読み出すべきデータに対応付けられて前記記憶手段によって記憶されている前記判断情報とに基づいて読出し可否を判別する判別手段と、
前記判別手段による判別結果がデータ読出しを許可するものであった場合に前記共有領域割当手段によって割り当てられたメモリ領域にアクセスする読出手段とを備える
ことを特徴とする請求項３に記載の移動機。
【請求項６】
前記判断情報は、前記プログラムの配信元サーバを一意に示すアドレスである
ことを特徴とする請求項４または請求項５に記載の移動機。
【請求項７】
前記判断情報は、データ共有の対象であるプログラムの配信元サーバを一意に示すアドレスである
ことを特徴とする請求項４または請求項５に記載の移動機。
【請求項８】
前記判断情報は、データ共有の対象であるプログラムのプログラム名である
ことを特徴とする請求項４または請求項５に記載の移動機。
【請求項９】
前記プログラムはＪａｖａ（登録商標）によって記述されており、前記判断情報はＡＤＦ（Ａｐｐｌｉｃａｔｉｏｎ  Ｄｅｓｃｒｉｐｔｏｒ  Ｆｉｌｅ）に記述されている
ことを特徴とする請求項３に記載の移動機。
【請求項１０】
コンピュータに、
複数のサーバから送信されてくる複数のプログラムと、少なくとも１つのサーバから送信され前記プログラムに対してどのようにメモリ領域を割り当てるかということを判断するための判断情報とを受信する機能と、
受信した前記複数のプログラムの各々に対しては、各プログラム専用のメモリ領域を割り当てる機能と、
受信した前記判断情報に基づいて判断される特定の複数プログラムに対しては、当該特定の複数プログラムによって共有可能なメモリ領域を割り当てる機能と、
実行対象のプログラムに対し前記各プログラム専用のメモリ領域および前記特定の複数プログラムによって共有可能なメモリ領域を用いて、当該プログラムを実行する機能と
を実現させるためのプログラム。
【請求項１１】
請求項１０に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【従来の技術】
従来より、移動通信網を介してダウンロードしたプログラムを実行可能な移動機が知られている。このような移動機として、例えば、Ｊａｖａプログラミング言語によって記述されたプログラムを実行可能なものがある。この移動機の場合、所謂サンドボックスを用いて、移動機内部に記憶されるデータが外部サーバ等に流出しないように保護している。サンドボック  スと称せられる技術に関しては、例えば特許文献１に記載されている。
【０００２】
【特許文献１】
特開平１０−２５４７８３号公報
【０００３】
サンドボックスを利用したデータ保護の場合、移動機にインストールされる各々のプログラム毎に、排他的なメモリ領域が割り当てられる。そのため、移動機は、あるプログラムを実行中に、他のプログラムに割り当てられたメモリ領域にアクセスすることができない。くわえて、サンドボックスによるデータ保護では、移動機があるプログラムを実行中に通信可能な外部サーバは、実行中のプログラムの配信元サーバのみとされる。このため、サンドボックスを用いると、移動機に記憶されるデータが、信頼できない第三者の外部サーバに流出することがなくなる。
【０００４】
【発明が解決しようとする課題】
ところが、データセキュリティとデータを扱う際の自由度とは、トレードオフの関係にある。上記のように、サンドボックスを利用してデータ保護を行った場合、複数のプログラム間でデータを共有することが不可能となる。その結果、移動機にインストールされた複数のプログラムがデータを共用しつつ連携して動作することができなくなる、つまり、移動機におけるプログラムの拡張性が制限されてしまうという問題が生じる。
本発明は、かかる実情に鑑み、複数のプログラムが、セキュリティを維持しつつデータを共用することが可能な、通信システム、サーバ、移動機、プログラムおよび記録媒体を提供する。
【０００５】
【課題を解決するための手段】
上記の課題を解決するため、本発明は、移動通信網に収容される移動機と、前記移動機が実行可能なプログラムを前記移動通信網を介して前記移動機に送信する複数のサーバとを備え、少なくとも１つの前記サーバは、前記プログラムと、当該プログラムに対して前記移動機におけるメモリ領域をどのように割り当てるかということを前記移動機が判断するための判断情報を送信し、前記移動機は、前記複数のサーバから送信されてくる複数の前記プログラムと、前記少なくとも１つのサーバから送信されてくる前記判断情報を受信する受信手段と、受信した前記複数のプログラムの各々に対しては、各プログラム専用のメモリ領域を割り当てる個別領域割当手段と、受信した前記判断情報に基づいて判断される特定の複数プログラムに対しては、当該特定の複数プログラムによって共有可能なメモリ領域を割り当てる共有領域割当手段と、実行対象のプログラムに対し前記個別領域割当手段及び前記共有領域割当手段によって割り当てられたメモリ領域を用いて、当該プログラムを実行する制御手段とを備えることを特徴とする通信システムを提供する。
【０００６】
そして、本発明は、移動通信網に収容される移動機に対して、当該移動機が前記移動通信網を介して受信したプログラムに対してどのようにメモリ領域を割り当てるかということを当該移動機に対して指定することを特徴とするサーバを提供する。
【０００７】
さらに、本発明は、複数のサーバから送信されてくる複数の実行可能なプログラムと、少なくとも１つのサーバから送信され前記プログラムに対してどのようにメモリ領域を割り当てるかということを判断するための判断情報とを受信する受信手段と、受信した前記複数のプログラムの各々に対しては、各プログラム専用のメモリ領域を割り当てる個別領域割当手段と、受信した前記判断情報に基づいて判断される特定の複数プログラムに対しては、当該特定の複数プログラムによって共有可能なメモリ領域を割り当てる共有領域割当手段と、実行対象のプログラムに対し前記個別領域割当手段及び前記共有領域割当手段によって割り当てられたメモリ領域を用いて、当該プログラムを実行する制御手段とを備えることを特徴とする移動機を提供する。
【０００８】
好ましい態様において、前記制御手段は、前記共有領域割当手段によって割り当てられたメモリ領域にデータを書き込む際に、当該データに前記判断情報を付加する記録手段と、前記共有領域割当手段によって割り当てられたメモリ領域からデータを読み出す際に、読み出すべきデータに付加された前記判断情報に基づいて読出し可否を判別する判別手段と、前記判別手段による判別結果がデータ読出しを許可するものであった場合に前記共有領域割当手段によって割り当てられたメモリ領域にアクセスする読出手段とを備える。
【０００９】
また、別の好ましい態様において、前記制御手段は、前記共有領域割当手段によって割り当てられたメモリ領域にデータを書きこむ際に、実行中の前記プログラムに対応する前記判断情報を、書きこむべきデータに対応する前記判断情報と対応付けて記憶する記憶手段と、前記共有領域割当手段によって割り当てられたメモリ領域からデータを読み出す際に、実行中の前記プログラムに対応する前記判断情報と、読み出すべきデータに対応付けられて前記記憶手段によって記憶されている前記判断情報とに基づいて読出し可否を判別する判別手段と、前記判別手段による判別結果がデータ読出しを許可するものであった場合に前記共有領域割当手段によって割り当てられたメモリ領域にアクセスする読出手段とを備える。
【００１０】
また、別の好ましい態様において、前記判断情報は、前記プログラムの配信元サーバを一意に示すアドレスである。
また、別の好ましい態様において、前記判断情報は、データ共有の対象であるプログラムの配信元サーバを一意に示すアドレスである。
また、別の好ましい態様において、前記判断情報は、データ共有の対象であるプログラムのプログラム名である。
また、別の好ましい態様において、前記プログラムはＪａｖａ（登録商標）によって記述されており、前記判断情報はＡＤＦ（Ａｐｐｌｉｃａｔｉｏｎ  Ｄｅｓｃｒｉｐｔｏｒ  Ｆｉｌｅ）に記述されている。
【００１１】
そして、本発明は、コンピュータに、複数のサーバから送信されてくる複数のプログラムと、少なくとも１つのサーバから送信され前記プログラムに対してどのようにメモリ領域を割り当てるかということを判断するための判断情報とを受信する機能と、受信した前記複数のプログラムの各々に対しては、各プログラム専用のメモリ領域を割り当てる機能と、受信した前記判断情報に基づいて判断される特定の複数プログラムに対しては、当該特定の複数プログラムによって共有可能なメモリ領域を割り当てる機能と、実行対象のプログラムに対し前記各プログラム専用のメモリ領域および前記特定の複数プログラムによって共有可能なメモリ領域を用いて、当該プログラムを実行する機能とを実現させるためのプログラムおよび当該プログラムを記録したコンピュータ読み取り可能な記録媒体を提供する。
【００１２】
【発明の実施の形態】
＜１．第１実施形態＞
＜１−１．第１実施形態の構成＞
＜１−１−１．システム構成＞
図１は、本発明の一実施形態に係る通信システム１００の全体構成を示す図である。図１に示すように、通信システム１００は、移動パケット通信網１と、複数のデータサーバ２−１〜２−ｎ（ｎ＝自然数。以下、特に個々の機器を区別する必要のない場合、データサーバ２と称する）と、移動機３とを備えている。なお、図１においては、図面が煩雑になることを防ぐため、通信システム１００の構成を理解するのに必要な装置のみが示されている。
【００１３】
移動パケット通信網１は、移動機３に対して、パケット通信サービスを提供する。図１に示すように、移動パケット通信網１は、交換局１１を備えており、各交換局１１には、基地局１２が接続されている。基地局１２は、移動機３との通信に用いる電波を出力しており、この電波の到達範囲内が無線セルとして形成される。基地局１２は、自身が形成する無線セル内に在圏する移動機３との間で、無線パケット通信を行う。
なお、通信システム１００は、移動パケット通信網１に加え、移動電話網（図示せず）を備えている。移動通信網は、移動機３に対して、一般的な移動電話網の通話サービスを提供する。
【００１４】
＜１−１−２．データサーバの構成＞
図２は、データサーバ２の構成を示すブロック図である。図２に示すように、データサーバ２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０と、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）２１と、ＲＡＭ（Ｒａｎｄｏｍ−Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２２と、通信インターフェイス２３と、ハードディスク２４と、システムバス２５とを備えている。
ＣＰＵ２０は、ＲＯＭ２１に記憶される各種プログラムの記述に従い、ＲＡＭ２３を一時的な作業領域として用いつつ、データサーバ２の各構成部を中枢的に制御する。通信インターフェイス２３は、移動パケット通信網１を介して、データサーバ２が移動機３とパケット通信を行う際に用いられるポートである。データサーバ２に備わる各部は、システムバス２５を介して各種のデータを伝送する。そして、ハードディスク２４には、データサーバ２が移動機３に提供する各種のプログラムが記憶されている。このプログラムは、Ｊａｖａプログラミング言語によって記述されている。これを以下、ＪａｖａＡＰ（Ａｐｐｌｉｃａｔｉｏｎ）と称する。ハードディスク２４に記憶されるＪａｖａＡＰは、ＪＡＲ（Ｊａｖａ  ＡＲｃｈｉｖｅ）ファイルと、ＡＤＦ（Ａｐｐｌｉｃａｔｉｏｎ  Ｄｅｓｃｒｉｐｔｏｒ  Ｆｉｌｅ）とに大別される。
【００１５】
ＪＡＲファイルは、プログラム本体であるクラスファイルと、プログラム本体を実行する際に必要となるリソースファイルのアーカイブである。リソースファイルとは、クラスファイルに記述された手順を実行する際に用いられるテキストデータ、楽音データ、画像データおよび動画データ等の参照データを意味する。一方、ＡＤＦとは、移動機３にＪａｖａＡＰをインストールする際に必要となる制御情報を記述した設定ファイルである。ＡＤＦに記述される具体的な制御情報としては、例えば、ＪａｖａＡＰの配信元サーバのＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）や、ＪａｖａＡＰインストール時に必要となるメモリ容量等が挙げられる。
【００１６】
＜１−１−３．移動機の構成＞
移動機３は、自機が在圏する無線セルを形成する基地局１２との間で、無線通信によるパケット通信および音声通話を行う。移動機３は、パケット通信によって、データサーバ２に記憶されるＪＡＲファイルをダウンロードする。このダウンロードに当たり、まず、移動機３は、データサーバ２からＡＤＦを受信する。そして、移動機３は、ＡＤＦに記述された制御情報を参照し、必要なメモリ容量を識別する等して、ＪａｖａＡＰをインストール可能であるか否かを判別する。移動機３は、ＪａｖａＡＰのインストールが可能であると判断できた場合のみ、ＪＡＲファイルをダウンロードする。
【００１７】
図３は、移動機３の構成を示すブロック図である。図３に示すように、移動機３は、アンテナ３０と、無線部３１と、ベースバンド処理部３２と、音声入出力部３３と、制御部３４と、表示部３５と、操作部３６と、電源部３７とを備えている。
【００１８】
アンテナ３０は、送受信アンテナである。無線部３１は、受信部、送信部および周波数シンセサイザ等を備えており、アンテナ３０を介して、基地局１２との間で無線通信を行う。このとき、無線部３１は、アナログ信号を、ベースバンド信号処理部３２との間で授受する。ベースバンド信号処理部３２は、マルチメディアインターフェイス、音声コーデックおよび画像コーデック等を備えており、各種のデータ処理を行う。
【００１９】
音声入出力部３３は、マイクロホンおよびスピーカを備えている。音声入出力部３３は、マイクロホンが集音した音声信号をベースバンド信号処理部３２に供給する。また、音声入出力部３３は、ベースバンド信号処理部３２から音声信号を供給されると、この音声信号に基づいて、スピーカから放音する。
【００２０】
制御部３４は、移動機３に備わる各部の動作を中枢的に制御する。この制御部３４は、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）として構成されており、ＣＰＵと、ＲＡＭと、ＲＯＭと、ＦｌａｓｈＲＯＭとを備えている。ＣＰＵは、ＲＡＭを一時的な作業領域とし、ＲＯＭおよびＦｌａｓｈＲＯＭに記憶される各種プログラムを実行する。ＲＯＭには、例えば、移動機３のオペレーティングシステム（以下、ＯＳと略称する）や、ＪａｖａＡＰの実行環境を構築するための各種プログラム等が記憶されている。一方、ＦｌａｓｈＲＯＭには、移動機３のネイティブコンポーネントが記憶されている。ここで、ネイティブコンポーネントとは、移動機３のＯＳに備わる機能のみによって実行可能なプログラムを意味する。また、ＦｌａｓｈＲＯＭには、データサーバ２からダウンロードされたＪａｖａＡＰが記憶される。
【００２１】
表示部３５は、液晶パネルおよびパネル駆動回路を有しており、制御部３４による制御の下で、各種情報を表示する。操作部３６は、テンキーおよび各種制御キーからなるキーパッドやキー検出回路を有しており、利用者のキー操作に対応する制御信号を制御部３４に出力する。電源部３７は、移動機３に備わる各部が動作するために必要な電力を供給する。
【００２２】
＜１−１−４．プログラム実行環境＞
図４は、移動機３におけるプログラム実行環境を示した図である。
ＪＡＭ（Ｊａｖａ  Ａｐｐｌｉｃａｔｉｏｎ  Ｍａｎａｇｅｒ）は、ＪａｖａＡＰを管理するための処理手順が記述されたソフトウェアモジュールである。このＪＡＭには、ＪａｖａＡＰを管理するための処理手順が記述されている。例えば、ＪＡＭには各ＪａｖａＡＰのＡＤＦを管理するための処理が記述されており、制御部３４は、ＪＡＭに記述された手順に従って各ＪａｖａＡＰのＡＤＦをＦｌａｓｈＲＯＭに記憶する。
ＫＶＭ（Ｋ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）は、ＪａｖａＡＰを実行するための処理手順が記述されたソフトウェアモジュールである。このＫＶＭをロードすることで、制御部３４は、ＪａｖａＡＰに記述されたコードを、実行コードであるバイトコードに翻訳することができるようになる。
【００２３】
ＣＬＤＣクラスライブラリ、オリジナル拡張ライブラリおよびメーカ拡張ライブラリは、制御部３４が必要に応じて参照する各種クラスファイルの集合である。ＣＬＤＣ（Ｃｏｎｎｅｃｔｅｄ，  Ｌｉｍｉｔｅｄ  Ｄｅｖｉｃｅ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ）クラスライブラリは、Ｊ２ＭＥの標準として実装されるものであり、バイトコード生成のために必要とされる最も基本的な機能が定義されたクラスファイルの集合である。また、オリジナル拡張ライブラリは、移動パケット通信網１を運営する通信事業者が提供するサービスを享受するために必要となる機能、つまり、移動機３が移動パケット通信網１を介してパケット通信を行う最に必要となる各種機能等が定義されたクラスファイルの集合である。そして、メーカ独自拡張ライブラリは、移動機３の各製造メーカ毎の独自機能を実現する際に必要となる各種機能が定義されたクラスファイルの集合である。
【００２４】
ＪＡＲストレージは、データサーバ２から移動機３にＪＡＲファイルがダウンロードされた場合に、そのＪＡＲファイルを記憶する領域である。このＪＡＲストレージは、ＦｌａｓｈＲＯＭ内の一部の領域を用いて形成されている。移動機３は、データサーバ２からＪＡＲファイルをダウンロードすると、これをＪＡＲストレージに書きこむ。そして、ＪａｖａＡＰ実行の際には、制御部３４は、ＪＡＲストレージからプログラム本体であるクラスファイルを読み出し、これに記述された処理を実行する。
【００２５】
そして、制御部３４は、データサーバ２からＪＡＲファイルをダウンロードする際に、ＪａｖａＡＰ実行時に参照されるデータを格納可能な領域として、個別スクラッチパッド９０を形成する。この個別スクラッチパッド９０は、ＦｌａｓｈＲＯＭ内の一部の領域を用いて形成されており、各ＪａｖａＡＰに排他的に割り当てられる領域である。従って、制御部３４は、あるＪａｖａＡＰを実行中に、他のＪａｖａＡＰに割り当てられた個別スクラッチパッド９０にアクセスすることはできない。
【００２６】
個別スクラッチパッド９０が各ＪａｖａＡＰの専有領域として割り当てられる理由は次の通りである。
移動機３にインストール可能なＪａｖａＡＰは複数存在し得るが、その中には、高い秘匿性が要求されるデータを取り扱うものがある。例えば銀行振込を実行するアプリケーションプログラム等である。一般的なサンドボックスモデルでは、移動機はＪａｖａＡＰを実行中に、そのＪａｖａＡＰの配信元サーバとの間で通信を行うことが許されている。ここで、個別スクラッチパッド９０のようなＪａｖａＡＰ毎の専用記憶領域を設けないで共通の記憶領域のみを設けるとすれば、ＪａｖａＡＰはその共通の記憶領域を利用して互いにデータをやり取りすることが可能となる。この結果、仮に移動機が悪意のあるプログラマによって作成されたＪａｖａＡＰを実行してしまうと、そのＪａｖａＡＰの配信元サーバに対し他のＪａｖａＡＰのみが取り扱うべき秘匿性の高いデータを送信してしまう虞が生じてくる。このような事態を防止するため、移動機３では、個別スクラッチパッド９０を各ＪａｖａＡＰの専有領域とし、各々のＪａｖａＡＰが取り扱うデータを保護しているのである。
【００２７】
さらに、本実施形態の移動機３においては、複数のＪａｖａＡＰを連動させ、利用者にあたかも一つのＪａｖａＡＰが実行されているかのように認識させることが可能となっている。例えばデータサーバ２からダウンロードされたＪａｖａＡＰが、ロールプレイングゲームを定義したプログラム（以下、ＲＰＧアプリと記述する）であったと仮定する。制御部３４は、このＲＰＧアプリに記述された手順に従って、利用者が操作部３６を介して操作可能な数々のキャラクタ（ＲＰＧアプリの登場人物）表示部３５に表示させる。そして、利用者が操作するキャラクタが別のキャラクタと出会った場合には、制御部３４は、ＲＰＧアプリに記述された手順に従って、キャラクタ同士が会話する等の様子を表示部３５に表示させる。
【００２８】
ここで、利用者が操作する主人公のキャラクタと、その主人公と敵対するキャラクタとが出会った場合にはこれらキャラクタが格闘を開始する、というゲーム展開を利用者が所望したとする。この処理は、ＲＰＧアプリにキャラクタ同士の格闘が定義されていなければ実行することができない。そこで、このような場合、本実施形態では、移動機３がキャラクタ同士の格闘処理を実行するＪａｖａＡＰ（以下、格闘アプリと称する）をデータサーバ２からダウンロードし、これをインストールして、ＲＰＧアプリの実行中に割込み起動することが可能である。そして、移動機３がこのＲＰＧアプリと格闘アプリという二つのＪａｖａＡＰを切り換えながら実行することで、利用者にあたかも一つのＪａｖａＡＰが実行されているように認識させることができる。
【００２９】
上記のようなＪａｖａアプリの連動処理は以下のようにして実現される。
制御部３４がＲＰＧアプリを実行する際には、例えばゲームの難易度の設定や起動オプション等を定義するための初期設定ファイルや、ＲＰＧアプリを実行した結果として生成された得点データ等を記述するための処理結果ファイルが生成されることになる。制御部３４は、これらのファイル形式のデータを参照することで、ＲＰＧアプリをゲーム途中で中断し格闘アプリに遷移したような場合であっても、その中断した時のゲーム状況に合うような場面から格闘アプリを開始させることが可能となる。例えば、ＲＰＧアプリによるゲーム展開において主人公のキャラクタが取得した武器を格闘アプリによる格闘シーンにおいても利用することが可能となる。つまり、制御部３４の行う各々の処理の間に、一貫性を持たせることができるようになる。
【００３０】
このように、上記のように、二つのＪａｖａＡＰを切り換えつつ実行する場合には、ＲＰＧアプリによって生成されたファイルの内容を格闘アプリから参照し得るようにしなければならないし、またはその逆に、格闘アプリによって生成されたファイルの内容をＲＰＧアプリから参照し得るようにしなければならない。しかしながら、これらのＲＰＧアプリと格闘アプリとはＪａｖａＡＰとしては別々のものである。従って、例えば格闘アプリが生成したファイルを、格闘アプリに割り当てられた個別スクラッチパッド９０に記憶してしまうと、そのファイルを二つのＪａｖａＡＰ間で共有することができなくなってしまう。
そこで、本実施形態では、複数のＪａｖａＡＰが共有するファイルを記憶する領域を移動機３のＦｌａｓｈＲＯＭに設けるようにしている。これが、図４に示す共通スクラッチパッド９１である。この共通スクラッチパッド９１には格闘アプリが生成したファイルが記憶されるので、制御部３４は、そのファイルを、格闘アプリ実行中の場合であっても、ＲＰＧアプリ実行中の場合であっても、参照することができるようになる。
【００３１】
ただし、共通スクラッチパッドに記憶されたデータを不特定多数のＪａｖａＡＰが参照することができてしまうと望ましくない。なぜなら、共通スクラッチパッド９１においても、個別スクラッチパッド９０と同様に、秘匿性を保つことが要求されるデータが記憶され得る。そのため、共通スクラッチパッド９１へのアクセスについて、何らかの制限を設け、データが第三者の外部サーバに送信されないようにする必要がある。そこで、本実施形態の移動機３では、以下のような処理を行う。
【００３２】
まず、制御部３４は、共通スクラッチパッド９１にデータを書きこむ際には、実行中のＪａｖａＡＰのＡＤＦを参照し、プログラム配信元サーバのＵＲＬを識別する。そして、制御部３４は、データに識別したＵＲＬを付加して、共通スクラッチパッド９１に書きこむ。一方、共通スクラッチパッド９１からデータを読み出すに当たっては、制御部３４は、上記と同様にＡＤＦを参照して実行中のＪａｖａＡＰの配信元サーバのＵＲＬを識別するとともに、識別したＵＲＬが読み出すべきデータに付加されているＵＲＬと一致するか否かを判別する。そして、２つのＵＲＬが一致した場合にのみ、制御部３４は、共通スクラッチパッド９１からデータを読み出す。
【００３３】
さらに具体的に説明すると、制御部３４は、共通スクラッチパッド９１に格闘アプリのデータを書きこむ際には、格闘アプリのＡＤＦを参照して格闘アプリの配信元サーバのＵＲＬを識別する。そして、制御部３４は、識別したＵＲＬを付加して、データを共通スクラッチパッド９１に書きこむ。一方、このデータをＲＰＧアプリを実行中に参照する場合には、制御部３４は、ＲＰＧアプリのＡＤＦを参照して当該アプリの配信元サーバのＵＲＬを識別し、これを共通スクラッチパッド９１から読み出すべきデータに付加されたＵＲＬ、すなわち、格闘アプリのＵＲＬと比較する。そして、２つのＵＲＬが一致すれば、制御部３４は、共通スクラッチパッドからデータを読み出す。
【００３４】
上記の仕組みを備えることにより、本実施形態の移動機３では、同一サーバからダウンロードされたＪａｖａＡＰ間のみでデータ共有を実現することを可能とすると共に、個別スクラッチパッドを利用した場合とほぼ同等のデータ保護を行うことが可能となっているのである。
【００３５】
＜１−２．実施形態の動作＞
以下においては、説明を具体的に行うため、ＲＰＧアプリおよび格闘アプリを例に挙げ、移動機３の動作を中心に説明する。
＜１−２−１．ＪａｖａＡＰのインストールおよび実行＞
図５は、移動機３にＪａｖａＡＰをインストールする際の、制御部３４の動作を示すフローチャートである。
まず、操作部３６における利用者の操作に従って、移動機３は、データサーバ２からＲＰＧアプリのＡＤＦを受信する。これを詳述すると、制御部３４は、ＡＤＦのＵＲＬを引数とするＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）のＧＥＴ命令を、データサーバ２に送信する（ステップＳ１０１）。この結果として、制御部３４は、データサーバ２からＡＤＦを受信する（ステップＳ１０２）。次に、制御部３４は、受信したＡＤＦの記述内容からインストールに必要なメモリ容量を識別し、ＲＰＧアプリを移動機３にインストール可能であるか否かを判断する（ステップＳ１０３）。
【００３６】
そして、制御部３４は、移動機３においてＲＰＧアプリをインストール可能であると判断した場合に（ステップＳ１０３；Ｙｅｓ）、ＡＤＦをＦｌａｓｈＲＯＭに書きこみ（ステップＳ１０４）、ＡＤＦに記述されるＵＲＬを引数とするＧＥＴ命令を、データサーバ２に送信する（ステップＳ１０５）。この結果として、制御部３４は、データサーバ２からＲＰＧアプリのＪＡＲファイルを受信する（ステップＳ１０６）。制御部３４は、ＪＡＲファイルを受信すると、これをまずＪＡＲストレージに書きこむ（ステップＳ１０７）。そして、制御部３４は、ＡＤＦによって指定された容量のメモリ領域の個別スクラッチパッド９０をＦｌａｓｈＲＯＭに作成し（ステップＳ１０８）、ＲＰＧアプリに割り当てる（ステップＳ１０９）。さらに、制御部３４は、作成した個別スクラッチパッド９０に、ＲＰＧアプリの初期設定ファイルを書きこむ（ステップＳ１１０）。これで、ＲＰＧアプリのダウンロードおよびインストールが完了する。
【００３７】
上記のようにしてインストールされたＲＰＧアプリは、次のようにして実行される。まず、利用者の操作に基づき、操作部３６から制御部３４に、ＲＰＧアプリの実行を指令する制御信号が供給される。すると、これをトリガとして、制御部３４がＲＰＧアプリの実行処理を開始する。制御部３４は、ＪＡＭおよびＫＶＭをロードして、ＪａｖａＡＰ実行環境を構築する。そして、制御部３４は、ＲＰＧアプリに割り当てられた個別スクラッチパッド９０から初期設定ファイルを読み出し、その記述内容から、ＲＰＧアプリの実行条件を識別する。その後、制御部３４は、ＪＡＲストレージからＲＰＧアプリ本体であるクラスファイルを読み出し、これを実行する。
【００３８】
＜１−２−２．ＪａｖａＡＰの追加インストールおよびデータ共有＞
図６は、移動機３にＪａｖａＡＰを追加インストールし、データ共有する際の、制御部３４の動作を示すフローチャートである。
まず、移動機３においてＲＰＧアプリを実行中に、利用者が操作部３６を介して所定の操作を行うと、これをトリガとして、インストール処理が開始される。制御部３４は、無線部３０を介して、データサーバ２に対して、ＲＰＧアプリとデータ共有可能なＪａｖａＡＰの一覧を示すファイルのＵＲＬを引数とするＧＥＴ命令を送信する（ステップＳ２０１）。そして、データ共有可能なＪａｖａＡＰの一覧を受信すると、制御部３４は、このデータを表示部３５に表示する（ステップＳ２０２）。そして、制御部３４は、操作部３６を介した利用者の入力を待機する（ステップＳ２０３）。
【００３９】
ステップＳ２０３において、利用者が操作部３６を介して、格闘アプリを選択する操作を行うと（ステップＳ２０３；Ｙｅｓ）、制御部３４は、無線部３０を介して、格闘アプリのＡＤＦのＵＲＬを引数とするＧＥＴ命令を、データサーバ２に送信する（ステップＳ２０４）。そして、制御部３４は、格闘アプリのＡＤＦを受信すると（Ｓ２０５）、このＡＤＦの記述内容を解釈し、格闘アプリをダウンロード、実行するために必要な条件を判別する（ステップＳ２０６）。以下、ステップＳ２０７〜Ｓ２１０までの動作は、上述のステップＳ１０４〜Ｓ１０７までの動作と同様であるため、その説明を省略する。
【００４０】
その後、制御部３４は、ＲＰＧアプリの初期設定ファイルに格闘アプリを割込み起動する際の条件を書き込むとともに、格闘アプリの個別スクラッチパッド９０に初期設定ファイルを書込み（ステップＳ２１１）、処理を終了する。この後、制御部３４は、初期設定ファイルに記述された条件が成立した場合に、実行中のＲＰＧアプリを待機状態に遷し、格闘アプリを割込み起動するようになる。
【００４１】
さて、上記の手順でインストールされた格闘アプリは、次の手順で割込み起動され、実行される。
図７は、追加インストールされたＪａｖａＡＰを実行する際の制御部３４の動作を示すフローチャートである。
【００４２】
まず、格闘アプリの割込み起動が初めてであった場合（ステップＳ３０１；Ｙｅｓ）、制御部３４は、格闘アプリの個別スクラッチパッド９０から初期設定ファイルを読出し（ステップＳ３０２）、その記述内容を判別する（ステップＳ３０３）。そして、制御部３４は、格闘アプリの初期設定ファイルに、ＲＰＧアプリのゲーム難度等共有すべき設定を追加し、これを共通スクラッチパッド９１に書き込む（ステップＳ３０４）。その後、制御部３４は、ＪＡＲストレージから格闘アプリのクラスファイルを読出し（ステップＳ３０５）、これを実行する（ステップＳ３０６）。
【００４３】
このとき、格闘アプリの実行に伴なって得点データ等のデータが生成された場合、制御部３４は、共通スクラッチパッド９１に処理結果ファイルを作成し、このファイルに、生成されたデータを追加していく（ステップＳ３０７）。また、制御部３４は、処理結果ファイルに、格闘アプリのＡＤＦに記述されている配信元サーバのＵＲＬを、処理結果ファイルに追加する（ステップＳ３０７）。その後、制御部３４は、格闘アプリの実行を終了すると、待機状態にあるＪａｖａＡＰを再実行する（ステップＳ３０８）。
【００４４】
また、格闘アプリの割込み起動が２回目以降である場合には（ステップＳ３０１；Ｎｏ）、制御部３４は、共通スクラッチパッド９１から格闘アプリの初期設定ファイルを読み出す（ステップＳ３０９）。そして、制御部３４は、初期設定ファイルの記述内容を識別し（ステップＳ３１０）、これに基づいて、格闘アプリを実行する。
【００４５】
さて、格闘アプリの実行結果として生成されたデータを、ＲＰＧアプリ実行中に利用する場合、制御部３４は、上記ステップＳ３０７において作成された共通スクラッチパッド９１に書きこまれた処理結果ファイルを読出し、これを利用する。
図８は、制御部３４が共通スクラッチパッド９１にアクセスする際の動作を示すフローチャートである。
まず、制御部３４は、読み出すべきファイル中から、ファイルが書きこまれた際に実行中であったＪａｖａＡＰの配信元サーバのＵＲＬを取得する（ステップＳ４０１）。上記の例では、制御部３４は、ＲＰＧアプリの配信元サーバのＵＲＬを取得することとなる。そして、制御部３４は、取得したＵＲＬを、現在実行中のＪａｖａＡＰの配信元サーバのＵＲＬと比較する（ステップＳ４０２）。そして、２つのＵＲＬが一致した場合のみ（ステップＳ４０２；Ｙｅｓ）、制御部３４は、共通スクラッチパッド９１からデータを読み出す（ステップＳ４０３）。一方、２つのＵＲＬが一致しなかった場合（ステップＳ４０２；Ｎｏ）には、制御部３４は、共通スクラッチパッド９１からのデータ読出しを中止し、処理を終了する。
【００４６】
なお、格闘アプリには、個別スクラッチパッド９０が割り当てられているため、格闘アプリを単体で起動することも可能である。格闘アプリを単体で起動する場合には、制御部３４は、初期設定ファイルおよび処理結果ファイルの読出しおよび書き込みを、格闘アプリに割り当てられた個別スクラッチパッド９０に対して行う。そうすることで、格闘アプリ実行の際に生成されるデータを、通常のＪａｖａＡＰと同様に保護することが可能となる。
【００４７】
＜３．変形例＞
なお、本発明の通信システム、サーバ、移動機およびデータ記憶方法は、上述の実施形態に限定されるものではなく、本発明の技術的思想の範囲内で種々の変更を加えることが可能である。
【００４８】
（変形例１）上述の実施形態においては、共通スクラッチパッド９１からのデータ読出しについて、データ書込み時に付加された配信元サーバのＵＲＬと、実行中のＪａｖａＡＰのＡＤＦに記述される配信元サーバのＵＲＬとを比較し、２つのＵＲＬが一致した場合に、データ共有を許可する態様を採って説明を行った。しかし、共通スクラッチパッド９１からのデータ読出しをプログラム配信元サーバに限らず、プログラム配信元サーバと同一ドメインに属する複数のサーバに拡張する態様を採っても構わない。要は、本発明は、共通スクラッチパッド９１に記憶されたデータを複数のプログラム間で共有する際に、特定のセキュリティポリシーに基づいて、共通スクラッチパッド９１からのデータ読出しを認証する態様であれば、認証が成立する対象の範囲は問わない。
【００４９】
（変形例２）上述の実施形態においては、共通スクラッチパッド９１からのデータ読出しの際の認証に、ＵＲＬを用いる態様を例に採って説明を行った。しかし、認証に利用する情報は、ＵＲＬには限られない。認証には、例えば、ＩＰアドレスやＭＡＣアドレス等、プログラム配信元サーバを一意に特定可能な情報であれば、どのようなものを用いても構わない。要は、本発明は、特定のセキュリティポリシーに基づいて、共通スクラッチパッド９１からのデータ読出しを認証を行う態様であれば、認証に用いる情報はどのようなものであっても構わない。
【００５０】
（変形例３）上述の実施形態においては、共通スクラッチパッド９１からのデータ読出しは、制御部３４がＡＤＦを参照して実行中のＪａｖａＡＰの配信元サーバのＵＲＬを取得し、これを読み出すべきデータに付加されたＵＲＬと比較することによって認証された。しかし、共通スクラッチパッド９１からのデータ読出しの認証方法は、これに限られるものではない。例えばファイル名等、共通スクラッチパッド９１に書きこまれるデータを一意に識別可能な情報と、データの読出し権限が与えられるＪａｖａＡＰの配信元サーバのＵＲＬとを対応付けた管理テーブルをＦｌａｓｈＲＯＭに記憶し、これを共通スクラッチパッド９１からのデータ読出しにおいて用いることも可能である。この場合であれば、共通スクラッチパッド９１からのデータ読出しに当たって、制御部３４は、実行中のＪａｖａＡＰの配信元サーバのＵＲＬと、管理テーブルにおいて読み出すべきデータと対応付けられているＵＲＬとを比較し、２つのＵＲＬが一致した場合にのみ、データ読出しを行うようにすればよい。要は、本発明は、特定のセキュリティポリシーに基づき、共通スクラッチパッド９１からのデータ読出しの認証を行うことの出来る態様であれば、その認証に用いる情報は何処に記憶されていても良い。
【００５１】
（変形例４）上述の実施形態においては、制御部３４が、実行中のＪａｖａＡＰの配信元サーバからデータ共有可能なＪａｖａＡＰの一覧を示すファイルをダウンロードし、このファイルの記述に基づいて、共通スクラッチパッド９１を利用したデータ共有を実現する態様を採って説明を行った。しかし、データ共有可能なＪａｖａＡＰのＵＲＬ乃至プログラム名を予めＡＤＦに記述しておき、これに基づいて共通スクラッチパッド９１にアクセスする態様を採っても構わない。要は、本発明は、特定のセキュリティポリシーに基づき、共通スクラッチパッド９１からのデータ読出しの認証を行うことの出来る態様であれば、その認証条件は、サーバ２において決定されるものであっても、移動機３において選択されるものであっても良い。
【００５２】
【発明の効果】
以上、説明したように、本発明によれば、各プログラムの実行中に利用されるデータのセキュリティを保持するとともに、複数のプログラム間のデータ共有を可能とし、データを扱う際の自由度を向上させることが可能である。
【図面の簡単な説明】
【図１】通信システムの全体構成を示す図である。
【図２】データサーバの構成を示すブロック図である。
【図３】移動機の構成を示すブロック図である。
【図４】移動機におけるプログラム実行環境を示した図である。
【図５】移動機にＪａｖａＡＰをインストールする際の制御部の動作を示すフローチャートである。
【図６】移動機にＪａｖａＡＰを追加インストールしデータ共有する際の、制御部の動作を示すフローチャートである。
【図７】追加インストールされたＪａｖａＡＰを実行する際の制御部の動作を示すフローチャートである。
【図８】制御部が共通スクラッチパッドにアクセスする際の動作を示すフローチャートである。
【符号の説明】
１００…通信システム、１…移動パケット通信網、２…データサーバ、３…移動機、３４…制御部、９０…個別スクラッチパッド、９１…共通スクラッチパッド。
【図１】
2004272595.tif 000003
【図２】
2004272595.tif 000004
【図３】
2004272595.tif 000005
【図４】
2004272595.tif 000006
【図５】
2004272595.tif 000007
【図６】
2004272595.tif 000008
【図７】
2004272595.tif 000009
【図８】
2004272595.tif 000010