以下、図面を参照して、本発明の実施形態について説明する。
[第1実施形態]
[1.第1実施形態の構成]
(A.システム全体の構成)
図1は、本実施形態にかかる通信システムの構成を示すブロック図である。
同図に示すように本実施形態にかかる通信システムは、複数の移動機MSと、複数の基地局BSと、移動パケット通信網MPNと、ゲートウェイサーバGWSと、インターネットINETと、複数のIP(Information Provider)サーバWとを有する。なお、図1においては、図面が煩雑となることを防ぐため、通信システムに収容された移動機MS、基地局BS及びIPサーバWの内、所定の移動機、基地局及びIPサーバのみが図示されている。
IPサーバWは、WWW(World Wide Web)サーバプログラムを有しており、移動機MSからのGETメソッドを利用したHTTP(Hypertext Transfer Protocol)メッセージ(以下、「GET要求」という)を移動パケット通信網MPNおよびインターネットINETを介して受信すると、当該GET要求に該当するリソースを移動機MSに返信する。
このIPサーバWが保有するリソースには、例えば、各種ページに対応したHTML(Hyper Text Markup Language)形式のデータ(以下、「HTMLデータ」という)やJava(登録商標)プログラミング言語により記述されたJavaアプリケーションがある。また、IPサーバWがリソースとして有するJavaアプリケーションは、当該Javaアプリケーションのデータ実体を有するJarファイルと、アプリケーション名やJarファイルの格納場所を示すURI等が記述されたテキストファイルであるADF(Application Descriptor File)とに分割されて、アプリケーションデータベース13(以下、「データベース」を「DB」と略称する)に格納されている。
なお、以下、本明細書では、ADFとJarファイルを特に区別する必要がない限り、これらを合わせて「Javaアプリケーション」と記載する。また、本実施形態においてJavaアプリケーションのADFおよびJarファイルは、ともにIPサーバWに格納されているものとする。但し、JavaアプリケーションのADFとJarファイルが、それぞれ別のサーバに格納されていてもよい。
図2は、アプリケーションDB13の記憶内容を示す図である。同図に示すように、本実施形態にかかるアプリケーションDB13には、IPサーバWがリソースとして保有する各JavaアプリケーションのADFとJarファイルが格納される他、各ファイルの格納場所を示すURIが格納されている。
また、IPサーバWは、自サーバがリソースとして保有しているJavaアプリケーションの実行時に利用される各種データを、移動機MSに提供する機能を有する。かかる機能を実現するため、IPサーバWは、メーラを有しており、移動機MSに提供すべきデータを記述した電子メールを生成して、送信する。
図3は、IPサーバWによって生成される電子メールのソース例を示す図である。なお、同図においては、「MIME」に従った形式で記述された電子メールの例を示している。同図に示すように、IPサーバWによって生成される電子メールには、当該電子メールの送信元アドレスや宛先メールアドレス等を含むヘッダ(図中詳細は省略)が記述される。
また、この電子メール中には、「<MOVE><param>”http://www.○○.co.jp/△△a”</param></MOVE>」なる文字列が記述されている。ここで、この文字列において「<MOVE></MOVE>」は、移動機MSに対して、Javaアプリケーションの起動を指示するタグ(以下、「起動命令タグ」という)であり、アプリケーション指定情報(同図に示す場合「http://www.○○.co.jp/△△a」)を引数とするパラメータタグ(すなわち「<param></param>」)を指定している(RFC1896参照)。ここで、アプリケーション指定情報とは、移動機MSにおいて起動されるべきJavaアプリケーションを示す情報であり、本実施形態においては、JavaアプリケーションのADFのダウンロード元を示すURIを要素としている。
なお、このアプリケーション指定情報として、ADFのダウンロード元を示すURI以外の情報(例えば、Jarファイルのダウンロード元を示すURI等)を利用することも当然可能である。但し、他の情報を利用する場合には、当該情報によって、Javaアプリケーションを一意に特定できる必要がある。
また、同図に示すように、IPサーバWが生成する電子メールには、「<IMPORT><param>”○○”</param></IMPORT>」なる文字列が記述されている。同文字列において「<IMPORT></IMPORT>」は、移動機MSに対してデータを提供するためのタグ(以下、「引渡命令タグ」という)であり、データ指定情報(同図に示す場合「○○」)を引数とするパラメータタグを指定している。このデータ指定情報は、移動機MSに提供されるべきデータを示す情報であり、当該情報により指定されるデータが移動機MSに提供される。
ここで、データ指定情報には、以下の2つのタイプが存在する。
(i.DATA)
この「DATA」は、移動機MSに提供すべきデータの実体を示す情報である。例えば、引渡命令タグのパラメータタグによって「DATA\12345\」なるデータ指定情報が指定されている場合、「12345」なるデータが移動機MSに提供される。
(ii.ACQUISITION)
この「ACQUISITION」は、移動機MSに提供すべきデータを示す情報(例えば、当該データの格納場所を示すURI等)である。この「ACQUISITION」が引渡命令タグ内のパラメータタグによって指定されている場合、当該「ACQUISITION」により定義されている情報に基づいて、データ実体が取得されることとなる。
なお、IPサーバWが、この引渡命令タグを利用して、移動機MSに提供するデータの内容については、任意である。例えば、当該Javaアプリケーションがゲーム等である場合には、当該ゲームにおいてユーザが取得した得点や、セーブデータ等とすればよい。
また、この「DATA」と「ACQUISITION」の使い分けは、どのような基準に従ってもよい。例えば、移動機MSに提供すべきデータのデータ量に閾値を設け、この閾値を越える場合には、「ACQUISITION」を利用し、越えない場合には、「DATA」を利用するようにしてもよい。このようにすれば、データ量の大きな電子メールが送信されることがなくなるので、通信容量の無駄遣いを防止でき、もって、受信容量の小さな移動機MSであっても、確実にデータを取得することが可能となる。更に、図3においては、「MIME」に従った形式で記述された電子メールを例に説明したが、HTMLメールにおいても、当然実施可能である。この場合、HTMLの新たなタグとして、起動命令タグと引渡命令タグを規定し、これらのタグ内において、アプリケーション指定情報やデータ指定情報を指定するようにすればよい(例えば、「<MOVE”http://www.○○.co.jp/△△a”></MOVE>」等)。
次に、移動パケット通信網MPNは、移動機MSに対してパケット通信サービスを提供するための通信網であり、複数の基地局BSやゲートウェイサーバGWSを有する他、図示せぬパケット加入者処理装置等を有する。
ゲートウェイサーバGWSは、インターネットINETと、移動パケット通信網MPNとを相互接続する移動パケット関門中継交換局に設けられたコンピュータシステムである。このゲートウェイサーバGWSは、受信データのプロトコルを、当該データの転送先となるネットワークの従うプロトコルに変換して転送する。本実施形態において移動パケット通信網MPNとインターネットINETとの間のデータ通信は、このゲートウェイサーバGWSの機能により実現される。
また、ゲートウェイサーバGWSは、メールサーバとしての機能を有し、移動パケット通信網MPNに収容されている移動機MS宛の電子メールを受信すると、当該受信メールを該当する移動機MSへ配信(プッシュ配信)する。これに対して、移動パケット通信網MPNに収容された移動機MSからインターネットINETに接続されたコンピュータシステム(例えば、IPサーバW)宛の電子メールを受信した場合、ゲートウェイサーバGWSは、当該電子メールをインターネットINETへと転送する。
移動機MSは、携帯電話機等の携帯型の電子機器であり、移動パケット通信網MPNを介してデータ通信が可能な他、図示しない移動電話網を介して音声通話を行う。この移動機MSは、WWWブラウザを搭載しており、IPサーバWから受信したHTMLデータを解釈して得られる画像を表示することができる。
また、本実施形態にかかる移動機MSは、メーラを搭載しており、受信した電子メールに従って、以下の2つの機能を実現する。
(i.起動機能)
この起動機能は、受信した電子メール中に起動命令タグが記述されている場合に、そのタグ内のパラメータタグにより指定されているアプリケーション指定情報に対応するJavaアプリケーションを起動する機能である。
(ii.連携機能)
この連携機能は、受信した電子メール中に引渡命令タグが記述されている場合に、当該タグ内のパラメータタグにより指定されているデータ指定情報に対応するデータを、Javaアプリケーションの実行時に利用する機能である。本実施形態にかかる移動機MSは、かかる機能により、メーラとJavaアプリケーションの間でデータの共用(このデータの共用を、本明細書においては「連携」と呼ぶ)を行う。なお、本実施形態において、メーラとデータを共用するJavaアプリケーションは、起動命令タグによって起動されたJavaアプリケーションである。
ここで、移動機MSにおいてJavaアプリケーションを起動させる際、あるいは連携を行う際に、何らの制限も設けないと、例えば、悪意の第三者によって送信された電子メールにより、移動機MS内のJavaアプリケーションが起動され、当該Javaアプリケーションの実行時にユーザが入力した各種情報が、電子メール内のデータ指定情報に対応したデータに基づいてネットワークへと送信されてしまうおそれがある。
そこで、本実施形態において、各JavaアプリケーションのADFには、以下の2つの情報が記述されており、移動機MSは、これらの情報に基づいて、受信した電子メールの信頼性を確認する機能を有する。
(i.起動パーミッション情報)
この起動パーミッション情報は、受信した電子メールに基づくJavaアプリケーションの起動を許可するか否かを判定するための判定基準となる情報であり、当該Javaアプリケーションの起動が許容されている電子メールの送信元アドレスを要素としている。電子メールによる起動を許可するJavaアプリケーションのADFには、起動パーミッション情報として、当該Javaアプリケーションの起動を許可する電子メールの送信元アドレスが少なくとも1つ以上記述されている。また、この起動パーミッション情報は、Javaアプリケーションの提供者(IP)によりADFに記述される。移動機MSは、受信した電子メール中に起動命令タグが記述されている場合、当該電子メールの送信元アドレスと、この電子メールにより起動すべきJavaアプリケーションのADFに記述されている起動パーミッション情報とを比較し、両者が一致する場合にのみ、当該Javaアプリケーションを起動する。
(ii.連携パーミッション情報)
この連携パーミッション情報は、受信した電子メールに引渡命令タグが記述されている場合に、連携を許容するか否かを判定するための判定基準となる情報である。この連携パーミッション情報は、起動パーミッション情報と同様に、当該Javaアプリケーションとの連携が許容されている電子メールの送信元アドレスを要素としている。連携を許可するJavaアプリケーションのADFには、連携パーミッション情報として、当該Javaアプリケーションとの連携を許可する電子メールの送信元アドレスが少なくとも1つ以上、IPにより記述されている。移動機MSは、受信した電子メール中に引渡命令タグが記述されている場合、当該電子メールの送信元アドレスと、この電子メールが指定するJavaアプリケーションのADFに記述されている連携パーミッション情報を比較する。そして、両情報が一致した場合にのみ、移動機MSは、当該電子メールに記述されている引渡命令タグ内のパラメータタグにより指定されたデータ指定情報が示すデータの利用を許容する。
(B.IPサーバWの構成)
図4は、本実施形態にかかるIPサーバWの構成を示す図である。同図に示すように、IPサーバWは、システム制御部11と、通信部12と、上述したアプリケーションDB13と、ユーザ管理DB14と、インターフェイス部15(以下、「インターフェイス」を「I/F」と略称する)と、操作端末16とを有する。
通信部12は、システム制御部11と、インターネットINETの間のデータの授受を中継し、インターネットINETを介して受信したデータをシステム制御部11に送ると共に、システム制御部11から送られてきたデータをインターネットINETへと送出する。
システム制御部11は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、ハードディスク等を有し、IPサーバWの各部を制御する。ROMには、IPサーバWの各部を制御するための各種制御情報や制御用プログラムが記憶されている。ハードディスクには、各種ページに対応したHTMLデータ等のリソースが記憶される他、上述したWWWサーバプログラムやメーラが記憶されている。CPUは、ROMやハードディスクに記憶されている各種プログラムを実行する。RAMは、ワークエリアとして用いられる。
ユーザ管理DB14には、IPサーバWからJavaアプリケーションをダウンロードした移動機MSのユーザを管理するための情報が格納される。図5に示すように、ユーザ管理DB14には、アプリケーションDB13に格納されている各Javaアプリケーション毎に、当該JavaアプリケーションのADFの格納場所を示すURIと、当該Javaアプリケーションをダウンロードした移動機MSのメールアドレスとが対応付けられて格納されている。
次に、インターフェイス部15は、システム制御部11と、操作端末16との間のデータの授受を仲介する。また、操作端末16は、IPサーバWに接続されたPC等の装置であり、キーボードやマウス、表示部等(何れも図示は省略)を有する。この操作端末16は、IPのオペレータが、移動機MSにおいて起動すべきJavaアプリケーションの指定と、当該移動機MSに提供すべきデータの入力を行うために用いられるものである。
具体的に説明すると、まず、オペレータが操作端末16を操作して、移動機MSにおいて起動させようとするJavaアプリケーションを指定するとともに、当該移動機MSに提供すべきデータに対応したデータ指定情報の入力を行うと、システム制御部11は、指定されたJavaアプリケーションをダウンロードした各移動機MSのメールアドレスをユーザ管理DB14から読み出す。そして、システム制御部11は、ハードディスクに記憶されているメーラを読み出して、各メールアドレス宛の電子メールを生成して、送信する。この際、システム制御部11は、指定されたJavaアプリケーションのADFの格納場所を示すURIをアプリケーション指定情報とする起動命令タグと、入力されたデータ指定情報(すなわち、「DATA」や「ACQUISITION」)を有する引渡命令タグとを生成し、電子メール中に記述する(図3参照)。
(C.移動機MSの構成)
図6は、移動機MSの構成を示す図である。同図に示すように移動機MSは、制御部21と、送受信部22と、指示入力部23と、液晶表示部24と、これら各要素間のデータの授受を仲介するデータバス25を有する。
送受信部22は、制御部21による制御の下、移動パケット通信網MPNの基地局BSと無線通信を行う。液晶表示部24は、液晶パネル等の表示装置から構成されており、制御部21の制御の下に、各種情報を表示する。指示入力部23は、PB(プッシュボタン)等の各種ボタン及びカーソルキーからなり、ユーザによって入力操作が行われると、その入力操作に対応した操作信号を制御部21に供給する。
制御部21は、CPU211と、ROM212と、RAM213と、不揮発性メモリ214等を有しており、移動機MSの各部を制御する。
CPU211は、ROM212や不揮発性メモリ214に格納されているアプリケーションに従って、移動機MSの各部を制御する。RAM213は、ワークエリアとして用いられ、CPU211により実行される種々のアプリケーションや、当該アプリケーションの実行に際して利用される各種のデータ等が一時的に格納される。
ROM212には、各種制御情報や制御プログラムの他、CPU211により実行される各種アプリケーション等が格納されている。このROM212に格納されているアプリケーションは、移動機MSの製品出荷時点で既にROM212に書き込まれている。ROM212に格納されているアプリケーションとしては、例えば、上述したWWWブラウザやメーラ等がある。以下、本明細書では、ROM212に格納されているアプリケーションを必要に応じて「ネイティブアプリケーション」と記載し、IPサーバWからダウンロードされたJavaアプリケーションと区別する。また、ROM212には、Javaアプリケーションの実行環境を構築するためのソフトウェア等が格納されている。
不揮発性メモリ214には、図7に示すように、複数のアプリケーション記憶メモリ2141-k(k=1、2、…、n)、テーブル記憶メモリ2142、受信メール記憶メモリ2143等が設けられている。ここで、受信メール記憶メモリ2143は、移動機MSが受信した電子メールを格納するためのメモリである。また、アプリケーション記憶メモリ2141-kは、IPサーバWからダウンロードされたJavaアプリケーションを格納するためのメモリである。このアプリケーション記憶メモリ2141-kは、さらに、アプリケーション格納領域2141-k1とアプリケーションデータ格納領域2141-k2とを有する。
アプリケーション格納領域2141-k1は、IPサーバWからダウンロードされたJavaアプリケーション(ADFとJarファイル)を格納するための領域である。また、アプリケーションデータ格納領域2141-k2は、Javaアプリケーション用のデータ保存領域であり、Javaアプリケーションを実行した際に生成されるデータが保存される。例えば、Javaアプリケーションがゲームである場合、このアプリケーションデータ格納領域2141-k2には、ゲームにおいてユーザが取得したポイントやセーブデータ等が格納される。
なお、アプリケーションデータ格納領域2141-k2は、当該アプリケーションデータ格納領域2141-k2に対応するアプリケーション格納領域2141-k1に格納されているJavaアプリケーション以外からは、アクセスできないように制御される。
次に、テーブル記憶メモリ2142には、IPサーバWからダウンロードされたJavaアプリケーションを管理するためのアプリケーション管理テーブルTBL1が記憶されている。図8に示すように、アプリケーション管理テーブルTBL1には、IPサーバWからダウンロードされたJavaアプリケーションのADFのダウンロード元を示すURIと対応させて、このJavaアプリケーションが格納されているアプリケーション記憶メモリ2141-kのメモリアドレスが格納されている。
また、図9は、移動機MSにおけるJavaアプリケーションの実行環境を説明するための図である。同図に示すように、移動機MSには、Javaアプリケーションの実行環境を構築するためのソフトウェアとして、KVM(K Virtual Machine)と、コンフィギレーションとしてCLDC(Connected Limited Device Configuration)を備えたJ2ME(Java 2 Micro Edition)とが組み込まれている。
KVMは、小型電子機器用に設計変更されたJVM(Java Virtual Machine)であって、Javaアプリケーションの実行ファイル形式であるバイトコードを移動機MSのCPU211がオペレーションシステムOSを介して解釈/実行可能な命令コードに変換する。また、CLDCクラスライブラリはCLDC用のクラスライブラリである。
拡張ライブラリは、CLDCを基礎として携帯電話機に特化した機能を提供するためのクラスライブラリである。この拡張ライブラリには、例えば、ユーザI/F用、ネットワーキング用、データストレージ用の各API(Application Program Interface)が含まれており、データストレージ用のAPIは、アプリケーションデータ格納領域2141-k2に対するデータの書き込みや読み出しをサポートする。
JAM(Java Application Manager)は、OSによる制御の下で、Javaアプリケーションのダウンロードや、不揮発性メモリ214にインストールされたJavaアプリケーションを管理する機能を有している。例えば、JAMは、Javaアプリケーションのインストールや削除を行う機能、不揮発性メモリ214に格納されているJavaアプリケーションをリスト表示する機能、Javaアプリケーションの実行管理(起動や強制終了等)を行う機能等を有している。
このJAMの機能を利用することにより、移動機MSのCPU211は、受信した電子メールの送信元メールアドレスと、この電子メールが指定するJavaアプリケーションのADFに記述されている起動パーミッション情報、あるいは連携パーミッション情報とを比較して、当該電子メールの信頼性を確認する。
また、同図に示すように、電話帳アプリケーションやWWWブラウザ等のネイティブアプリケーションは、OSによる制御の下で直接動作する。
[2.第1実施形態の動作]
以下、本実施形態の動作を説明することとする。なお、以下においては、次の順序で、本実施形態の動作について説明する。すなわち、(A)Javaアプリケーションをダウンロードする際の動作、(B)Javaアプリケーションに各種データを提供する際の動作、である。
(A.Javaアプリケーションをダウンロードする際の動作)
以下、図10に示すデータシーケンスを参照しつつ、アプリケーションダウンロード時の動作について説明する。なお、以下の説明においては、説明をより具体的なものとするため、アプリケーションDB13の記憶内容は、図2と同様であるものとし、移動機MSのメールアドレスは「■■@■■.ne.jp」であるものとして説明を行う。
まず、ユーザは、WWWブラウザを起動すべく、移動機MSの指示入力部23を操作する。すると、CPU211は、指示入力部23から供給される操作信号に従い、ROM212からWWWブラウザを読み出して、上述した移動パケット通信網MPN内のパケット加入者処理装置に対してパケット登録を行う。このパケット登録とは、移動機MSが移動パケット通信網MPNとの間においてパケット交換を行うための登録手続きである。
その後、ユーザが移動機MSの指示入力部23に対して、例えば、IPサーバWの保有するJavaアプリケーションをダウンロードするためのページ(以下、「ダウンロードページ」という)を示すURIを指定する入力を行う。すると、移動機MSのCPU211は、当該URIを含むGET要求D1を送受信部22を介して移動パケット通信網MPNへと送出する。このようにして、移動機MSによって移動パケット通信網MPNへと送出されたGET要求D1は、その後、ゲートウェイサーバGWSによって受信されて、インターネットINETへと転送される。
IPサーバWのシステム制御部11は、通信部12を介してGET要求D1を受信すると、WWWサーバプログラムに従って、当該GET要求D1に含まれるURIに対応したHTMLデータD2(今の場合、ダウンロードページに対応したもの)をインターネットINETへと返信する。この結果、このHTMLデータD2は、ゲートウェイサーバGWSにより受信されて、移動パケット通信網MPNへと転送される。
移動機MSのCPU211は、このHTMLデータD2を受信すると、当該HTMLデータD2をRAM213に格納すると共に、液晶表示部24に対して当該HTMLデータD2に基づく画像を表示させる。図11は、HTMLデータD2を受信した移動機MSの液晶表示部24において表示される画像の一例を示す図である。同図に示すように、移動機MSの液晶表示部24上には、移動機MSがIPサーバWからダウンロード可能なJavaアプリケーション(すなわち、アプリケーションDB13に格納されている全てのアプリケーション名)を選択するための一覧と共に、メールアドレスを入力させるためのボックスと、「送信」ボタンが表示される。ここで、液晶表示部24に一覧表示される各Javaアプリケーションには、当該JavaアプリケーションのADFの格納場所を示すURIが対応付けられている。
この状態において、ユーザが、ダウンロードしようとするJavaアプリケーションを選択する旨の入力操作を行い、自身のメールアドレス「■■@■■.ne.jp」を入力して、「送信」ボタンを選択する旨の入力操作を行う。すると、移動機MSのCPU211は、ユーザが一覧から選択したJavaアプリケーションに対応付けられたADFのURIを含むGET要求D3に対して、ユーザが入力したメールアドレス「■■@■■.ne.jp」を付加して、移動パケット通信網MPNへと送信する。
このGET要求D3は、やがて、ゲートウェイサーバGWSによって、インターネットINETへと転送されて、IPサーバWの通信部12によって受信される。このようにして、通信部12によってGET要求D3が受信されると、IPサーバWのシステム制御部11は、当該GET要求D3に付加されているメールアドレス「■■@■■.ne.jp」を抽出する。そして、システム制御部11は、その抽出したメールアドレス「■■@■■.ne.jp」を、ユーザ管理DB14の当該GET要求D3に含まれているURI(すなわち、ユーザが選択したJavaアプリケーションのADFの格納場所を示すURI)と対応するフィールドに格納する。このようにして、GET要求D3に付加されているメールアドレス「■■@■■.ne.jp」をユーザ管理DB14に格納すると、システム制御部11は、GET要求D3に含まれているURIに対応したADFをアプリケーションDB13から読み出して、データD4としてインターネットINETへと送出する。
一方、移動機MSのCPU211は、IPサーバWから送出されたデータD4を受信すると、JAMに従って、図12に示す処理を実行する。この処理において、CPU211は、受信したデータD4からADFを抽出して(ステップSa1)、その抽出したADFをアプリケーション格納領域2141-k1に格納する(ステップSa2)。そして、当該ADFを格納したアプリケーション格納領域2141-k1のメモリアドレスと、当該ADFのダウンロード元を示すURIをと対応付けて、アプリケーション管理テーブルTBL1に格納することにより、アプリケーション管理テーブルTBL1を更新する(ステップSa3)。
次に、CPU211は、ADFのファイル内容をサーチし、Jarファイルの格納場所を示すURIを取得する(ステップSa4)。このようにして、JarファイルのURIが取得されると、CPU211は、WWWブラウザの機能を利用して、当該URIを含むGET要求D5を移動パケット通信網MPNへと送出する(ステップSa5)。このようにして、GET要求D5を送出すると、CPU211は、GET要求D5に対するレスポンスを受信したか否かを判定する状態となり、レスポンスを受信するまで、同ステップの処理を繰り返す(ステップSa6)。
一方、移動機MSから送出されたGET要求D5は、ゲートウェイサーバGWSによって受信されて、インターネットINETへと転送される。IPサーバWのシステム制御部11は、GET要求D5を受信すると、当該GET要求D5に含まれているURI(すなわち、Jarファイルの格納場所を示すURI)に対応するJarファイルをアプリケーションDB13から読み出す。そして、システム制御部11は、このJarファイルをデータD6として、インターネットINETへと送出する。
次に、移動機MSのCPU211は、IPサーバWから送出されたデータD6を受信すると、ステップSa6において「Yes」と判定し、データD6からJarファイルを抽出する(ステップSa7)。そして、CPU211は、抽出したJarファイルをアプリケーション格納領域2141-k1へと格納し(ステップSa8)、例えば、「ダウンロードが終了しました」等の文字列を液晶表示部24に表示させて(ステップSa9)、処理を終了する。
(B.Javaアプリケーションに各種データを提供する際の動作)
次に、電子メールを送信することにより、Javaアプリケーションの実行時に利用されるべきデータを、IPサーバWが移動機MSに提供する際の動作について説明する。なお、以下の説明において、IPサーバWのアプリケーションDB13及びユーザ管理DB14の記憶内容は、図2及び図5と同様であるものとし、移動機MSのアプリケーション管理テーブルTBL1の記憶内容は、図8と同様であるものとする。また、電子メールの送信元となるIPサーバWのメールアドレスは、「○○@○○.ne.jp」であるものとする。
まず、IPのオペレータは、「Javaアプリケーションa」をダウンロードした移動機MSに各種データを提供すべく、操作端末16を操作する。この結果、操作端末16の図示しない表示部上には、アプリケーションDB13に格納されているJavaアプリケーションの一覧が表示される。この状態において、オペレータが、例えば、「Javaアプリケーションa」を指定する入力操作を行うと、IPサーバWのシステム制御部11は、以下に示す電子メールの送信処理を実行する。
(i.ステップ1)
システム制御部11は、「Javaアプリケーションa」のURIと対応付けて格納されている、全てのメールアドレス(すなわち、「■■@■■.ne.jp」、「××@××.ne.jp」等)を、ユーザ管理DB14から読み出し、RAMに格納する。
(ii.ステップ2)
システム制御部11は、ユーザ管理DB14から「Javaアプリケーションa」のADFに対応するURI「http://www.○○.co.jp/△△a」を読み出し、RAMに格納する。
(iii.ステップ3)
システム制御部11は、ステップ2において読み出したURI「http://www.○○.co.jp//△△a」をアプリケーション指定情報として有する起動命令タグ(すなわち、<MOVE><param>"http://www.○○.co.jp/△△a "</param></MOVE>)の記述された電子メール(図5参照)を生成する。この際、システム制御部11は、ステップ1においてRAMに格納した全てのメールアドレスを、当該電子メールの宛先メールアドレスとして設定する。この結果、当該電子メールの宛先は、URI「http://www.○○.co.jp/△△a」に対応したJavaアプリケーションをダウンロードした全ての移動機MSとなる。
(iv.ステップ4)
システム制御部11は、移動機MSに送信すべきデータの入力をオペレータに促す画面の表示を命ずる表示命令を操作端末16に送信する。この結果、操作端末16には、移動機MSに送信すべきデータの入力を促す画像が表示される。この表示に基づいて、オペレータは、引渡命令タグ内のパラメータタグにより指定されるべきデータ指定情報を入力することが必要となる。そして、この表示に応じてオペレータが入力操作を行うと、操作端末16は、オペレータの入力したデータ指定情報をシステム制御部11へと送信する。なお、この際、オペレータが「DATA」を利用するか「ACQUISITION」を利用するかは、任意である。
(v.ステップ5)
システム制御部11は、操作端末16から送信されたデータ指定情報を指定したパラメータタグを有する引渡命令タグを電子メールに記述する。この結果、例えば、図3に示したようなソースを有する、電子メールが生成されることとなる。
(vi.ステップ6)
システム制御部11は、このようにして生成した電子メールをインターネットINETへと送出する。
このようにして、IPサーバWから送信された電子メールは、その後、ゲートウェイサーバGWSにより受信され、移動機MSへと配信(プッシュ配信)される。なお、ゲートウェイサーバGWSが移動機MSに電子メールをプッシュ配信する際の動作については、従来と同様であるため説明は省略する。
一方、移動機MSのCPU211は、ゲートウェイサーバGWSからプッシュ配信された電子メールを受信すると、メーラに従って、受信した電子メールを不揮発性メモリ214の受信メール記憶メモリ2143へと格納する。この状態において、ユーザが移動機MSの指示入力部23に対して、受信メールを表示する旨の入力操作を行う。すると、移動機MSのCPU211は、受信メール記憶メモリ2143に格納されている受信メールの一覧を表示する。そして、ユーザが指示入力部23にIPサーバWを送信元とする電子メールを表示する旨の入力操作を行うと、CPU211は、受信メール記憶メモリ2143から起動命令等の記述された電子メールを読み出して、液晶表示部24に表示させる。
図13は、この際、移動機MSの液晶表示部24に表示される画像の一例を示す図である。同図に示すように、この際、移動機MSの液晶表示部24には、例えば、「このメールには、あなたのダウンロードしたJavaアプリケーションにおいて利用することのできるデータが含まれています。下のボタンを選択するとデータを利用できるようになります」等の文字列と共に、「インポート」なるボタンが表示される。
この画像が表示されている状態において、ユーザが、移動機MSの指示入力部23に対して、「インポート」ボタンを選択する旨の入力操作を行う。すると、移動機MSのCPU211においては、図14及び図15に示す処理が実行される。ここで、同図において、「メーラ」、「JAM」、「Javaアプリケーション」とは、移動機MSのCPU211が、これらのプログラムのサブルーチンを実行することによって、生成される機能(少なくとも一つのプロセスまたはスレッドを含むもの)を示している。
なお、以下においては、説明の理解を容易なものとするため、これら「メーラ」、「JAM」、「Javaアプリケーション」を、形式的に各処理の主体とするが、実際には、CPU211がこれらのアプリケーションを実行することにより、行われている処理であることは言うまでもない。また、同図に示す処理はあくまでも、各プログラムのサブルーチンを実行することにより行われる処理であり、同図に示す処理以外に、メインルーチンに従った処理も実行されている。
この処理において、まず、メーラは、当該電子メールの送信元アドレス「○○@○○.ne.jp」と、起動命令タグ内のパラメータタグによって指定されているアプリケーション指定情報(すなわち、「Javaアプリケーションa」のADFのURI「http://www.○○.co.jp/△△a」)とを付加した起動命令をJAMに送る(ステップSb1)。この起動命令がメーラから送られてくると、JAMは、当該起動命令に付加されている送信元メールアドレス「○○@○○.ne.jp」を抽出してRAM213に記憶させると共に、当該起動命令に付加されてきたアプリケーション指定情報「http://www.○○.co.jp/△△a」を検索キーとして、アプリケーション管理テーブルTBL1を検索し(ステップSb2)、当該URIと対応付けて格納されているメモリアドレス「#0001」を読み出して、RAM213に記憶させる(ステップSb3)。
次に、JAMは、RAM213に格納されたメモリアドレス「#0001」に対応するアプリケーション格納領域2141-k1からJavaアプリケーションのADFを読み出して(ステップSb4)、当該ADFの有する起動パーミッション情報を抽出する(ステップSb5)。そして、JAMは、抽出した、パーミッション情報と起動命令に付加されてきた送信元メールアドレス「○○@○○.ne.jp」とを比較し、両情報が一致するか否かを判定する(ステップSb6)。この際、JAMは、当該電子メールの送信元アドレス「○○@○○.ne.jp」のサーバ名「@○○.ne.jp」と、起動パーミッション情報とを比較し、両情報が一致するか否かを判定する。
この判定の結果、「No」と判定した場合(すなわち、起動パーミッション情報中に「@○○.ne.jp」が存在しない場合)、JAMは、「Javaアプリケーションa」を起動することなく、「セキュリティが確保できないため、この電子メールからJavaアプリケーションを起動することはできません」等の文字列を液晶表示部24に表示させて(ステップSb7)、メインルーチンへと復帰する。
これに対して、「Yes」と判定した場合(すなわち、起動パーミッション情報中に「@○○.ne.jp」が存在する場合)、JAMは、「セキュリティが確保されています。Javaアプリケーションの起動を行いますか」等の文字列と共に、「Yes」、「No」の2つのボタンを液晶表示部24に表示させる(ステップSb8)。このようにして、画像が表示された状態となると、JAMは、ユーザによって選択されたボタンが「Yes」であるか否かを判定する状態となる(ステップSb9)。そして、ユーザが、「No」ボタンを選択する旨の入力操作を行うと、JAMは、ステップSb9において「No」と判定して「Javaアプリケーションa」を起動することなく、メインルーチンへと復帰する。
一方、ユーザが「Yes」ボタンを選択すると、JAMは、ステップSb9において「Yes」と判定し、当該電子メールに引渡命令タグが存在するか否かの確認の要求(以下、「存在確認要求」という)をメーラに送る(ステップSb10)。この存在確認要求が送られてくると、メーラは、電子メールをサーチし(ステップSb11)、当該電子メール中に引渡命令タグが記述されているか否かを判定する(ステップSb12)。このステップSb12において「No」と判定した場合、メーラは、JAMに対して不存在通知を送る(ステップSb13)。
また、ステップSb12において「Yes」と判定すると、メーラは、JAMに対して存在通知を送る(ステップSb14)。この際、メーラは、引渡命令タグ内のパラメータタグによって指定されたデータ指定情報と、当該電子メールの送信元アドレス「○○@○○.ne.jp」とを存在通知に付加する。
JAMは、メーラから送られてきた通知が存在通知であったか否かを判定する(ステップSb15)。そして、この判定の結果、「No」と判定すると、JAMは、RAM213に記憶されたメモリアドレス「#0001」に対応するアプリケーション格納領域2141-k1内のJarファイルに従い「Javaアプリケーションa」を起動させて(ステップSb21)、メインルーチンへと復帰する。
これに対して、ステップSb15における判定の結果、「Yes」と判定すると、JAMは、当該存在通知に付加されてきた送信元メールアドレス「○○@○○.ne.jp」を抽出して(ステップSb16)、ステップSb4において読み出したADFに記述されている連携パーミッション情報を抽出する(ステップSb17)。そして、JAMは、当該パーミッション情報と、送信元メールアドレス「○○@○○.ne.jp」のサーバ名とが一致するか否かを判定する(ステップSb18)。なお、この際の判定方法については、上述した起動パーミッション情報に関する判定と同様であるので説明は省略する。
このステップSb18における判定の結果、「No」と判定した場合、JAMは、RAM213に記憶されたメモリアドレス「#0001」からJarファイルを読み出し、当該Jarファイルに従い「Javaアプリケーションa」を起動させて(ステップSb21)、メインルーチンへと復帰する。これに対して、この判定の結果、「Yes」と判定した場合、JAMは、液晶表示部24に対して「信頼性が保証されたデータが存在ます。データを利用しますか」等の文字列と共に、「Yes」、「No」の2つのボタンを表示させる(ステップSb19)。そして、JAMは、「Yes」ボタンが選択されたか否かを判定する状態となる(ステップSb20)。
この状態において、ユーザが「No」ボタンを選択する旨の入力操作を行うと、JAMは、ステップSb20において「No」と判定し、RAM213に記憶されたメモリアドレス「#0001」からJarファイルを読み出し、当該Jarファイルに従って「Javaアプリケーションa」を起動させ(ステップSb21)、メインルーチンに戻る。これに対して、ユーザが「Yes」ボタンを選択する旨の入力操作を指示入力部23に行うと、JAMは、存在通知に付加されてきたデータ指定情報を抽出し(ステップSb22)、抽出したデータ指定情報が「DATA」であるか否かを判定する(ステップSb23)。
このステップSb23における判定の結果、「Yes」と判定すると、JAMは、RAM213に記憶されたメモリアドレス「#0001」からJarファイルを読み出し、当該Jarファイルに従って「Javaアプリケーションa」を起動させる(ステップSb24)。そして、JAMは、「DATA」の引数となっているデータ実体を、起動した「Javaアプリケーションa」に引き渡して(ステップSb25)、メインルーチンへと復帰するのである。この結果、「DATA」の引数となっているデータ実体が、アプリケーションデータ格納領域2141-k2に格納されて、「Javaアプリケーションa」による利用が可能となり、もって、メーラとの間にデータの共用化がなされる。
これに対して、ステップSb23において「No」と判定すると、JAMは、RAM213に記憶されたメモリアドレス「#0001」からJarファイルを読み出し、当該Jarファイルに従って「Javaアプリケーションa」を起動させる(ステップSb26)。そして、JAMは、「Javaアプリケーションa」に対して「ACQUISITION」の引数となっているURIへとアクセスして、データを取得する旨の命令を送り(ステップSb27)、メインルーチンへと復帰する。
「Javaアプリケーションa」は、この命令を受けると、当該URIを含むGET要求を移動パケット通信網MPNへと送出する。そして、このGET要求に対して、移動パケット通信網MPNを介して返信されてきたデータが送受信部22によって受信されると、Javaアプリケーションaは、自身に対応したアプリケーションデータ格納領域2141-k2に返信されてきたデータを格納する。この結果、当該データが「Javaアプリケーションa」によって利用可能となる。
このように本実施形態にかかる移動機MSは、受信した電子メールに記述されている起動命令タグに従って、Javaアプリケーションを起動すると共に、当該電子メールに記述された引渡命令タグに従って、メーラとJavaアプリケーションの間の連携を行う構成となっている。このため、IPは、移動機MSに対して電子メールを送信するだけで、移動機MS内のJavaアプリケーションを起動させると共に、当該移動機MS内のJavaアプリケーションにおいて利用される各種のデータを提供することが可能となる。
例えば、IPサーバWから電子メールを送信することにより、移動機MSによってダウンロードされたJavaアプリケーションのバージョンアップを行うことも可能となる。また、IPサーバの提供しているJavaアプリケーションが、例えば、ゲームであれば、新キャラクタのデータ等を電子メールを送信するだけで、提供することも可能となる。更には、天気予報等のリアルタイム性を必要とするデータについても、電子メールを配信するだけで移動機MSに提供することが可能となるのである。かかる効果が、ダウンロード可能なアプリケーションのデータ量に制限の設けられ、必然的にユーザに提供しうる機能に制限が設けられる携帯電話機等の移動機MSにおいて特に有効であることは、言うまでもない。
また、本実施形態にかかる移動機MSは、JavaアプリケーションのADFに記述されている起動パーミッション情報や連携パーミッション情報と一致する送信元から送信された電子メールによってのみ、Javaアプリケーションの起動や、あるいはJavaアプリケーションとの連携が許容される構成となっている。このため、悪意の第三者によって作成された電子メールに記述された引渡命令タグによっては、移動機MS内のJavaアプリケーションを起動させたり、あるいは連携させたりすることが不可能となり、もって、セキュリティを確保することが可能となる。
また、本実施形態にかかる移動機MSは、Javaアプリケーションを起動したり、当該Javaアプリケーションとメーラとの間において連携を行うに際して、ユーザの承認を得てから実行する構成となっている。このため、ユーザが意図しない状態において、これらの処理が実行されて、勝手にJavaアプリケーションが起動等されてしまうことを防止することが可能となる。
更に、本実施形態にかかるIPサーバWは、オペレータが操作端末16に対して行った入力操作に基づいて起動命令タグや引渡命令タグを記述した電子メールを生成して、送信する。このため、オペレータは、操作端末16を操作することにより、移動機MSにダウンロードされたアプリケーションの中で任意のアプリケーションを起動させ、あるいは連携させることが可能となる。
また、この際、オペレータが指定したJavaアプリケーションのURIと対応付けて、ユーザ管理DB14に格納されているメールアドレスが当該電子メールの宛先として自動的に設定される構成となっている。このため、IPのオペレータは、当該電子メールの宛先を指定するという煩雑な作業を行うまでもなく、複数の移動機MS宛の電子メールを送信させることが可能となる。
なお、本実施形態においては、<MOVE></MOVE>及び<IMPORT></IMPORT>なる文字列を起動命令タグ及び引渡命令タグとして利用する形態について説明したが、両タグを意味する文字列は、当然、他の文字列であってもよい。また、本実施形態においてはパラメータタグを利用して、これらのタグ内においてアプリケーション指定情報やデータ指定情報を指定していたが、他の方法を利用するようにしてもよい。
なお、本実施形態においては、起動命令タグと引渡命令タグの2つのタグを利用して、Javaアプリケーションとメーラの間の連携を実現する構成となっている。しかし、1つのタグによって上述した機能を実現することも可能である。例えば、引渡命令タグのみを利用する場合、<IMPORT><param>”(ADFのURI)”</param><param>”DATA\12345\”</param></IMPORT>のように記述するようにし、前方のパラメータタグによりアプリケーション指定情報を指定し、後方のパラメータタグによりデータ指定情報を指定するようにすればよい。
また、本実施形態において、ユーザ管理DB14には、IPサーバWの保有するJavaアプリケーション毎に当該Javaアプリケーションをダウンロードした全ての移動機MSのメールアドレスが格納され、電子メールの送信に当たっては、オペレータが指定したJavaアプリケーションのURIと対応付けて格納されている全てのメールアドレスを宛先とする電子メールが送信される構成となっている。換言するならば、IPサーバWから当該Javaアプリケーションをダウンロードした全ての移動機MSに対して、電子メールが送信されるのである。
しかし、当該Javaアプリケーションをダウンロードした全ての移動機MSのメールアドレスを当該電子メールの宛先とすることは、必ずしも要しない。従って、一部に対して送信するようにしてもよい。例えば、電子メールの配信申込を受け付けるためのページをIPサーバWに保有させ、当該ページにおいて申し込みを行ったユーザの移動機MSに対してのみ、電子メールを送信するようにしてもよい。この場合、当該ページにおいて配信申込を行ったユーザの移動機MSのメールアドレスのみをユーザ管理DB14に格納するようにすればよい。また、上述したダウンロードページに、電子メールの配信を希望するか否かを入力するためのボックスを設け、このボックスに希望する旨を入力したユーザのメールアドレスのみをユーザ管理DB14に格納するようにしてもよい。
[第2実施形態]
上述した第1実施形態は、IPサーバWから起動命令タグと、引渡命令タグの記述された電子メールを送信することによって、移動機MS内のJavaアプリケーションに各種データを提供するものであった。これに対して、本実施形態にかかる通信システムは、IPサーバWの保有する各種ページに対応したHTMLデータにより、移動機MS内のJavaアプリケーションを起動し、当該Javaアプリケーションにおいて利用されるデータを当該移動機MSに提供するためのものである。
かかる機能を実現するため、本実施形態にかかるIPサーバWは、リソースとして保有しているJavaアプリケーションの実行時に利用される各種データを移動機MSに対して提供するためのページ(以下、「データ提供ページ」という)に対応したHTMLデータを保有している。IPサーバWは、このページに対応したHTMLデータを配信することにより、移動機MSに各種データを提供する。
図16は、IPサーバWの保有するデータ提供ページに対応したHTMLデータのソースの一例を示す図である。同図に示すように、IPサーバWの保有しているHTMLデータには、ページ構成を示す各種タグ(「HEAD」タグ、「TITLE」タグ、「BODY」タグ、「BR」タグ、アンカータグ等)が記述されている。また、HTMLデータには、これら従来から利用されてきた各種タグの他に、<IMPORT”http://○○.ne.jp/△△a#△△#”></IMPORT>なるタグ(本実施形態においては、かかるタグを「引渡命令タグ」と呼ぶ)が存在している。この引渡命令タグは、第1実施形態において説明した引渡命令タグと同様に、Javaアプリケーションによって利用されるデータを指定する情報(すなわち、データ指定情報)である。
例えば、図16に示すHTMLデータの場合、データ指定情報は、この引渡命令タグの「””」内の「##」内に指定されている(すなわち、「△△」)。なお、この「△△」には、「DATA」及び「ACQUISITION」の何れかが記述されることとなるが、これら、「DATA」及び「ACQUISITION」については、上述した第1実施形態と同様であるので詳細は省略する。また、本実施形態において、この引渡命令タグの「””」内には、データ指定情報のみならず、当該データの利用先となるJavaアプリケーションを示す情報(本実施形態においては、かかる情報を「アプリケーション指定情報」という)も指定されている。例えば、図16に示す場合、「http://○○.ne.jp/△△a」なるURIが、アプリケーション指定情報となっている。
なお、電子メールを配信することにより各種データを提供する機能(すなわち、第1実施形態と同様の機能)を、本実施形態にかかるIPサーバWに持たせるか否かは、任意である。かかる機能をIPサーバWに持たせる場合、IPサーバWには、上述した第1実施形態と同様の構成(図4参照)を保有させることが必要となる。しかし、かかる機能を持たせない場合には、IPサーバWに上述したユーザ管理DB14、I/F部15及び操作端末16を設ける必要はなく、システム制御部11及び通信部12、アプリケーションDB13のみを設ければよい。
次に、本実施形態にかかる移動機MSは、IPサーバWからダウンロードしたJavaアプリケーションと、WWWブラウザの間においてデータの共用(すなわち、「連携」)を行う機能を有する。具体的には、移動機MSは、受信したHTMLデータに記述されている引渡命令タグにより指定されたJavaアプリケーションを起動すると共に、当該タグ内のデータ指定情報に対応したデータを当該Javaアプリケーションの実行時に利用する機能を有するのである。なお、かかる機能を除く他、移動機MSの構成は、上述した図6乃至図9と同様であるため、説明は省略する。
ここで、本実施形態にかかるJavaアプリケーションのADFには、第1実施形態と同様に起動パーミッション情報と連携パーミッション情報とが記述されているが、本実施形態において、両パーミッション情報は、夫々、以下のような内容を有している。
(i.起動パーミッション情報)
本実施形態にかかる起動パーミッション情報は、当該Javaアプリケーションが起動されることを許容するHTMLデータのダウンロード元のURIを要素としている。このように、HTMLデータによる起動を許可するJavaアプリケーションのADFには、起動パーミッション情報として、当該Javaアプリケーションの起動を許可するHTMLデータのダウンロード元を示すURIが少なくとも1つ以上記述されている。また、この起動パーミッション情報は、Javaアプリケーションの提供者(IP)によりADFに記述される。
移動機MSは、IPサーバWからダウンロードしたHTMLデータに記述された引渡命令タグに従って、Javaアプリケーションの起動を行う場合、当該HTMLデータのダウンロード元URIと、このHTMLデータにより起動すべきJavaアプリケーションのADFに記述されている起動パーミッション情報とを比較して、両情報が一致する場合にのみ、当該Jav aアプリケーションを起動する。
(ii.連携パーミッション情報)
本実施形態において連携パーミッション情報は、Javaアプリケーションとブラウザとの間における連携を許容するHTMLデータのダウンロード元のURIを要素としている。連携を許可するJavaアプリケーションのADFには、連携パーミッション情報として、当該Javaアプリケーションとの連携を許可するHTMLデータの送信元アドレスが少なくとも1つ以上、IPにより記述されている。移動機MSは、IPサーバWからダウンロードしたHTMLデータに記述された引渡命令タグに従って、WWWブラウザとJavaアプリケーションとの連携を行う場合、HTMLデータのダウンロード元URIと、このHTMLデータが指定するJavaアプリケーションのADFに記述されている連携パーミッション情報とを比較して、両情報が一致する場合にのみ、WWWブラウザ、Javaアプリケーション間の連携を許容する。
次に、本実施形態の動作について説明する。なお、以下の説明においては、説明をより具体的なものとするため、IPサーバWのアプリケーションDB13の記憶内容は、上述した図2と同様であるものとし、データ提供ページのURIは、「http://www.○○.co.jp/■■.html」であるものとする。
まず、移動機MSのユーザは、WWWブラウザを起動すべく、移動機MSの指示入力部23を操作する。すると、CPU211は、指示入力部23から供給される操作信号に従い、ROM212からWWWブラウザを読み出して、上述した移動パケット通信網MPN内のパケット加入者処理装置に対してパケット登録を行う。
その後、ユーザが移動機MSの指示入力部23に対して、例えば、上述したダウンロードページのURIを指定する入力を行と、移動機MSのCPU211は、当該URIを含むGET要求を送受信部22を介して移動パケット通信網MPNへと送出する。このようにして、移動機MSによって移動パケット通信網MPNへと送出されたGET要求が、ゲートウェイサーバGWSによってインターネットINETへと転送され、IPサーバWの通信部12によって受信される。
次に、IPサーバWのシステム制御部11は、WWWサーバプログラムに従って、当該GET要求に含まれるURIに対応したHTMLデータ(今の場合、ダウンロードページに対応したもの)をインターネットINETへと返信する。この結果、このHTMLデータは、ゲートウェイサーバGWSにより受信されて、移動パケット通信網MPNへと転送される。
移動機MSのCPU211は、HTMLデータを受信すると、当該HTMLデータをRAM213に格納すると共に、液晶表示部24に対して当該HTMLデータに対応した画像を表示させる。この際、移動機MSの液晶表示部24には、移動機MSがIPサーバWからダウンロード可能なJavaアプリケーション(すなわち、アプリケーションDB13に格納されている全てのアプリケーション名)を選択するための一覧と共に、「送信」ボタンが表示される。ここで、液晶表示部24に一覧表示される各Javaアプリケーションには、当該JavaアプリケーションのADFの格納場所を示すURIが対応付けられている。
この状態において、ユーザが、例えば、「Javaアプリケーションa」を選択する旨の入力操作を行い、「送信」ボタンを選択する旨の入力操作を行う。すると、移動機MSのCPU211は、ユーザが一覧から選択した「Javaアプリケーションa」に対応付けられたADFのURIを含むGET要求を移動パケット通信網MPNへと送信する。
このGET要求がIPサーバWの通信部12によって受信されると、IPサーバWのシステム制御部11は、当該GET要求に含まれているURIに従って、「Javaアプリケーションa」のADFを返信する。移動機MSのCPU211は、IPサーバWによって返信されたADFを受信すると、JAMに従って、上述した図12ステップSa1〜Sa5と同様の処理を実行する。そして、CPU211は、ADFに記述されているJarファイルの格納場所を示すURIを含むGET要求を送信して、当該GET要求に対するレスポンスが受信されたか否かを判定する状態となる(図12ステップSa6)。
一方、IPサーバWのシステム制御部11は、このGET要求を受信すると、当該GET要求に付加されているURIに従って、Jarファイルを返信する。このようにして、IPサーバWからJarファイルが返信されてくると、移動機MSのCPU211は、図12ステップSa6において「Yes」と判定し、その後、ステップSa7〜Sa9の処理を行う。この結果、移動機MSのアプリケーション記憶メモリ2141-kには、「Javaアプリケーションa」が格納され、アプリケーション管理テーブルTBL1の内容が更新される。
その後、移動機MSのユーザが、「Javaアプリケーションa」の実行時に利用すべきデータを取得しようとする場合、移動機MSの指示入力部23にIPサーバWのデータ提供ページに対応したURI「http://www.○○.co.jp/■■.html」を入力することが必要となる。そして、ユーザがデータ提供ページのURI「http://www.○○.co.jp/■■.html」を入力すると、移動機MSのCPU211は、ユーザが入力したURI「http://www.○○.co.jp/■■.html」を含むGET要求を、WWWブラウザに従って移動パケット通信網MPNへと送出する。
IPサーバWは、移動機MSから送信されたGET要求を受信すると、WWWサーバプログラムに従い、データ提供ページに対応したHTMLデータをインターネットINETへと送出する。そして、このHTMLデータがゲートウェイサーバGWSによって移動パケット通信網MPNへと転送される。移動機MSのCPU211は、HTMLデータを受信すると、当該HTMLデータに基づく画像を液晶表示部24に表示させる。
図17は、この際、移動機MSの液晶表示部24に表示される画像の一例を示す図である。同図に示すように、この際、液晶表示部24には、例えば、「あなたのダウンロードしたJavaアプリケーションに対応するボタンを選択すると、そのJavaアプリケーションで利用するためのデータを取得することができます」等の文字列と共に、IPサーバWがリソースとして保有している各Javaアプリケーションを選択するためのボタンが表示される。このJavaアプリケーションを選択するための各ボタンには、引渡命令タグが対応付けられている。また、各ボタンに対応付けられた引渡命令タグには、当該ボタンに対応するJavaアプリケーションのADFの格納場所を示すURIがアプリケーション指定情報として指定される他、当該Javaアプリケーションにおいて利用されるデータを示すデータ指定情報が指定されている。
かかる画像が表示されている状態において、ユーザが指示入力部23に対して、例えば、「Javaアプリケーションa」なるボタンを選択する旨の入力操作を行う。すると、移動機MSのCPU211においては、図18及び図19に示すような処理が実行される。ここで、同図において、「WWWブラウザ」、「JAM」、「Javaアプリケーション」とは、移動機MSのCPU211が、これらのプログラムのサブルーチンを実行することによって、生成される機能(少なくとも一つのプロセスまたはスレッドを含むもの)を示している。
なお、以下においては、説明の理解を容易なものとするため、これら「WWWブラウザ」、「JAM」、「Javaアプリケーション」を、形式的に各処理の主体とするが、実際には、CPU211がこれらのアプリケーションを実行することにより、行われている処理であることは言うまでもない。また、同図に示す処理はあくまでも、各プログラムのサブルーチンを実行することにより行われる処理であり、同図に示す処理以外に、メインルーチンに従った処理も実行されている。
この処理においては、まず、当該ボタンに対応付けられている引渡命令タグ内に指定されているアプリケーション指定情報(すなわち、「Javaアプリケーションa」のURI「http://www.○○.co.jp/△△a」)が、WWWブラウザによって抽出される。そして、WWWブラウザは、この抽出したアプリケーション指定情報「http://www.○○.co.jp/△△a」と、データ提供ページに対応したHTMLデータのダウンロード元URI「http://www.○○.co.jp/■■.html」とを付加した起動命令をJAMに送る(ステップSc1)。
次に、JAMは、当該起動命令に付加されているダウンロード元URI「http://www.○○.co.jp/■■.html」を抽出してRAM213に記憶させると共に、当該起動命令に付加されてきたアプリケーション指定情報「http://www.○○.co.jp/△△a」を検索キーとして、アプリケーション管理テーブルTBL1を検索する(ステップSc2)。そして、JAMは、当該アプリケーション指定情報(すなわち、「Javaアプリケーションa」のADFのURI)と対応付けて格納されているメモリアドレス「#0001」を読み出して、RAM213に記憶させる(ステップSc3)。
次に、JAMは、RAM213に記憶されたメモリアドレス「#0001」に対応するアプリケーション格納領域2141-k1から「Javaアプリケーションa」のADFを読み出して(ステップSc4)、当該ADFに記述されている起動パーミッション情報を抽出する(ステップSc5)。そして、JAMは、読み出した起動パーミッション情報と、起動命令に付加されてきたダウンロード元URIとを比較し、両情報が一致するか否かを判定する(ステップSc6)。この際、JAMは、データ提供ページに対応したURI「http://www.○○.co.jp/■■.html」のサーバ名「http://www.○○.co.jp」と、起動パーミッション情報とを比較し、両情報が一致するか否かを判定する。
この判定の結果、「No」と判定した場合(すなわち、起動パーミッション情報中に「http://www.○○.co.jp」が存在しない場合)、JAMは、「Javaアプリケーションa」を起動することなく、「セキュリティが確保できないため、このページからJavaアプリケーションを起動することはできません」等の文字列を液晶表示部24に表示させて(ステップSc7)、メインルーチンへと復帰する。
これに対して、「Yes」と判定した場合(すなわち、起動パーミッション情報中に「「http://www.○○.ne.jp」が存在する場合)、JAMは、「セキュリティが確保されています。Javaアプリケーションの起動を行いますか」等の文字列と共に、「Yes」、「No」の2つのボタンを液晶表示部24に表示させる(ステップSc8)。このようにして、画像が表示された状態となると、JAMは、ユーザによって、選択されたボタンが「Yes」であるか否かを判定する状態となる(ステップSc9)。そして、ユーザが、「No」ボタンを選択する旨の入力操作を行うと、JAMは、ステップSc9において「No」と判定して「Javaアプリケーションa」を起動することなく、メインルーチンへと復帰する。
一方、ユーザが「Yes」ボタンを選択すると、JAMは、ステップSc9において「Yes」と判定し、引渡命令タグ内に指定されている、データ指定情報の取得要求をWWWブラウザに対して送る(ステップSc10)。このようにして、JAMから、データ指定情報の取得要求が送られてくると、WWWブラウザは、引渡命令タグ内に指定されているデータ指定情報(すなわち、「##」内に指定された「△△」)を抽出して、その抽出したデータ指定情報をJAMへと送る(ステップSc11)。この際、WWWブラウザは、当該データ指定情報に対して、当該HTMLデータのダウンロード元URI「http://www.○○.co.jp/■■.html」を付加してJAMへと送る。
JAMは、WWWブラウザから送られてきたデータ指定情報に付加されている、HTMLデータのダウンロード元URI「http://www.○○.co.jp/■■.html」を抽出する(ステップSc12)。そして、JAMは、ステップSc4において読み出したADFに記述されている連携パーミッション情報を抽出し(ステップSc13)、当該パーミッション情報と、ステップSc12において抽出したURI「http://www.○○.co.jp/■■.html」とが一致するか否かを判定する(ステップSc15)。かかる判定の結果、「No」と判定した場合、JAMは、「このHTMLデータから、データをインポートすることは出来ません」等の文字列を表示する。そして、JAMは、RAM213に格納されているメモリアドレス「#0001」からJarファイルを読み出して、当該Jarファイルに従って「Javaアプリケーションa」を起動して(ステップSc17)、メインルーチンへと復帰する。
一方、この判定の結果、「Yes」と判定した場合、JAMは、「WWWブラウザで、取得したデータからのインポートを行いますか」等の文字列と共に、「Yes」、「No」の2つのボタンを液晶表示部24に表示させる(ステップSc15)。このようにして、画像が表示された状態となると、JAMは、ユーザによって、選択されたボタンが「Yes」であるか否かを判定する状態となる(ステップSc16)。そして、ユーザが、「No」ボタンを選択する旨の入力操作を行うと、JAMは、ステップSc16において「No」と判定して「Javaアプリケーションa」を起動して(ステップSc17)、メインルーチンへと復帰する。
これに対して、ユーザが「Yes」ボタンを選択すると、JAMは、ステップSc16において、「Yes」と判定し、WWWブラウザから送られてきたデータ指定情報が「DATA」であるか否かを判定する(ステップSc18)。そして、この判定において、「Yes」と判定すると、JAMは、RAM213に格納されているメモリアドレス「#0001」からJarファイルを読み出して、当該Jarファイルに従って「Javaアプリケーションa」を起動させる(ステップSc19)。このようにして、「Javaアプリケーションa」が起動されると、JAMは、「DATA」によって定義されているデータ実体を、起動した「Javaアプリケーションa」に引き渡して(ステップSc20)、処理をメインルーチンに戻すのである。この結果、「DATA」によって定義されていたデータ実体が、アプリケーションデータ格納領域2141-k2に格納され、「Javaアプリケーションa」による利用が可能となり、もって、「Javaアプリケーションa」とWWWブラウザの間においてデータの共用化がなされる。
一方、JAMは、ステップSc18において「No」と判定すると、RAM213に格納されているメモリアドレス「#0001」からJarファイルを読み出し、当該Jarファイルに従って「Javaアプリケーションa」を起動させる(ステップSc21)。そして、JAMは、当該Javaアプリケーションに対して、「ACQUISITION」により指定されるURIへとアクセスし、データを取得する旨の命令を送り(ステップSc22)、メインルーチンへと復帰する。
「Javaアプリケーションa」は、この命令を受けると、当該URIを含むGET要求を移動パケット通信網MPNへと送出する。そして、このGET要求に対して、移動パケット通信網MPNを介して返信されてきたデータが送受信部22によって受信されると、「Javaアプリケーションa」は、自身に対応したアプリケーションデータ格納領域2141-k2に返信されてきたデータを格納する。この結果、当該データが「Javaアプリケーションa」によって利用可能となるのである。
このように本実施形態にかかる移動機MSは、受信したHTMLデータに記述されている引渡命令タグに従って、WWWブラウザとJavaアプリケーションの間の連携を行う構成となっている。このため、IPは、データ提供ページに対応したHTMLデータをリソースとして保有しておくだけで、移動機MS内のJavaアプリケーションによって利用される各種のデータを提供することが可能となる。また、移動機MSのユーザは、移動機MSを利用して、IPサーバWのデータ提供ページに対応したHTMLデータを取得するだけで移動機MS内のJavaアプリケーションにおいて利用する各種データを取得することが可能となる。
また、本実施形態にかかる移動機MSは、JavaアプリケーションのADFに記述されている起動パーミッション情報や連携パーミッション情報と一致するダウンロード元URIを有するHTMLデータに記述された引渡命令タグによってのみ、WWWブラウザとJavaアプリケーションの間の連携を許容する構成となっている。このため、本実施形態によれば、WWWブラウザと、Javaアプリケーションの間で連携を行う際にも、セキュリティを確保することが可能となる。
なお、本実施形態においては、<IMPORT””>なる文字列を引渡命令タグとして利用する形態について説明したが、引渡命令タグを意味する文字列は、当然、他の文字列であってもよい。また、タグ内においてアプリケーション指定情報やデータ指定情報を指定する形態についても任意である。
[第3実施形態]
上述した第1実施形態は、IPサーバWから起動命令タグと、引渡命令タグの記述された電子メールを送信することによって、移動機MS内のJavaアプリケーションに各種データを提供するものであった。これに対して、本実施形態にかかる通信システムは、セキュリティを確保しつつ、移動機MS内においてIPサーバWからダウンロードした2以上のJavaアプリケーション間において同一のデータを共用するためのものである。
かかる機能を実現するため、本実施形態においてIPサーバWのアプリケーションDB13に格納されているJavaアプリケーションは、移動機MSにおいて実行された際に、他のJavaアプリケーションとの間において各種データを共用し、当該データに従った処理を実行する。
なお、電子メールを配信することにより各種データを提供する機能(すなわち、第1実施形態と同様の機能)を、本実施形態にかかるIPサーバWに持たせるか否かは、任意である。かかる機能をIPサーバWに持たせる場合、IPサーバWには、上述した第1実施形態と同様の構成(図4参照)を保有させることが必要となる。しかし、かかる機能を持たせない場合には、IPサーバWに上述したユーザ管理DB14、I/F部15及び操作端末16を設ける必要はなく、システム制御部11及び通信部12、アプリケーションDB13のみを設ければよい。また、本実施形態にかかるIPサーバWに引渡命令タグの記述されたHTMLデータを保有させるか否か(すなわち、第2実施形態と同様の構成を持たせるか否か)は任意である。
次に、本実施形態にかかる移動機MSは、IPサーバWから各種Javaアプリケーションをダウンロードして、当該Javaアプリケーションに従った処理を実行する他、自機がIPサーバWからダウンロードした複数のJavaアプリケーションの間において、各種データを共用することができる。例えば、移動機MSが、IPサーバWから野球ゲームの試合を行うためのJavaアプリケーション(以下、「試合用アプリケーション」という)と、当該野球ゲームのキャラクタの各種パラメータ(例えば、打撃力、走力、投球スピード、投球可能球種等)を決定するためのJavaアプリケーション(以下、「練習用アプリケーション」という)とをダウンロードした場合、本実施形態にかかる移動機MSは、練習用アプリケーションにおいて決定された各選手のパラメータを、試合用アプリケーションの実行時に利用する機能を有しているのである。なお、他の構成については、上述した図6乃至図9と同様であるため、移動機MSの構成の詳細については省略する。
ここで、移動機MS内のJavaアプリケーションは、インターネットINETのIPサーバWからダウンロードされたものであるため、必ずしも信頼性が保証されていない。このため、何らの制限も設けずに、Javaアプリケーション間でデータの共用を許可してしまうと、例えば、信頼性が確保されているJavaプリケーションの実行中にユーザが入力した個人情報等が、悪意の有る第3者により提供されたJavaアプリケーションを介して、移動機MSの外部へ流出してしまうといった事態が生じるおそれがある。
そこで、本実施形態にかかるJavaアプリケーションのADFには、第1実施形態と同様に起動パーミッション情報と連携パーミッション情報とが記述されており、移動機MSは、これらのパーミッション情報に基づいてアプリケーション間でのデータの共用を許容するか否かを決定する。なお、本実施形態において、各パーミッション情報は、以下のような内容を有している。
(i.起動パーミッション情報)
本実施形態にかかる起動パーミッション情報は、当該Javaアプリケーションが起動されることを許容する他のJavaアプリケーションのダウンロード元を示すURIを要素としている。このように、他のJavaアプリケーションからの起動を許可するJavaアプリケーションのADFには、起動パーミッション情報として、当該Javaアプリケーションの起動を許可する他のJavaアプリケーションのダウンロード元を示すURIが少なくとも1つ以上、IPにより記述されている。移動機MSは、この起動パーミッション情報に含まれているURIをダウンロード元とするJavaアプリケーションからの働きかけによってのみ、当該Javaアプリケーションの起動を許容する。
例えば、移動機MSがダウンロードした「Javaアプリケーションa」のADFに「http://www.○○.ne.jp」なるURIを要素とする起動パーミッション情報が記述されている場合、移動機MSは、「http://www.○○.ne.jp」をサーバ名とするURIからダウンロードされたJavaアプリケーションからの働きかけによってのみ、「Javaアプリケーションa」の起動を許容する。
(ii.連携パーミッション情報)
本実施形態にかかる連携パーミッション情報は、当該Javaアプリケーションとの間で各種データの共用を許容する他のJavaアプリケーションのダウンロード元を示すURIを要素としている。このように、他のJavaアプリケーションとの連携を許可するJavaアプリケーションのADFには、連携パーミッション情報として、当該Javaアプリケーションとの連携を許可する他のJavaアプリケーションのダウンロード元を示すURIが少なくとも1つ以上、IPにより記述されている。移動機MSは、この連携パーミッション情報に含まれているURIをダウンロード元とするJavaアプリケーションからの働きかけによってのみ、当該Javaアプリケーションとの間の各種データの共用を許容する。
なお、第1実施形態においても述べたように、各アプリケーションデータ格納領域2141-k2に格納されているデータは、セキュリティを確保するため、当該領域2141-k2と対応するJavaアプリケーション以外は読み出し等を行うことができないようになっている。
次に、本実施形態の動作について説明する。なお、以下の説明においては、説明をより具体的なものとするため、IPサーバWのアプリケーションDB13の記憶内容は、上述した図2と同様であるものとして説明を行う。
まず、移動機MSのユーザは、IPサーバWから、例えば、「Javaアプリケーションa」と「Javaアプリケーションb」をダウンロードすべく、移動機MSの指示入力部23に対して、WWWブラウザを起動すべき旨の入力操作を行う。すると、移動機MSのCPU211は、ROM212に格納されているWWWブラウザを起動して、移動パケット通信網MPNにパケット登録を行う。
その後、ユーザが移動機MSの指示入力部23に対して、例えば、上述したダウンロードページのURIを指定する入力操作を行うと、移動機MSのCPU211は、当該URIを含むGET要求を送受信部22を介して移動パケット通信網MPNへと送出する。このようにして、移動機MSによって移動パケット通信網MPNへと送出されたGET要求が、ゲートウェイサーバGWSによってインターネットINETへと転送され、IPサーバWの通信部12によって受信される。
次に、IPサーバWのシステム制御部11は、WWWサーバプログラムに従って、当該GET要求に含まれるURIに対応したHTMLデータ(今の場合、ダウンロードページに対応したもの)をインターネットINETへと返信する。この結果、このHTMLデータは、ゲートウェイサーバGWSにより受信されて、移動パケット通信網MPNへと転送される。
一方、移動機MSのCPU211は、このHTMLデータを受信すると、当該HTMLデータをRAM213に格納すると共に、液晶表示部24に対して当該HTMLデータに基づく画像を表示させる。この結果、液晶表示部24には、移動機MSがIPサーバWからダウンロード可能なJavaアプリケーション(すなわち、アプリケーションDB13に格納されている全てのアプリケーション名)を選択するための一覧と共に、「送信」ボタンが表示される。
この状態において、ユーザが、例えば、「Javaアプリケーションa」を選択する旨の入力操作を行い、「送信」ボタンを選択する旨の入力操作を行う。すると、移動機MSと、IPサーバWの間において上述した第2実施形態と同様の処理が行われることにより、IPサーバWから移動機MSに「Javaアプリケーションa」がダウンロードされて、移動機MSのアプリケーション記憶メモリ2141-kに格納されると共に、アプリケーション管理テーブルTBL1が更新される。
このようにして、「Javaアプリケーションa」が移動機MSにダウンロードされた状態において、ユーザが、例えば、「Javaアプリケーションb」を続けてダウンロードすべく移動機MSの指示入力部23に、再度、ダウンロードページのURIを入力する。すると、移動機MSのCPU211は、再度、ダウンロードページに対応したURIを含むGET要求を移動パケット通信網MPNへと送出する。このGET要求に対して、IPサーバWからダウンロードページに対応したHTMLデータが返信されてくると、移動機MSの液晶表示部24には、再度、IPサーバWからダウンロード可能なJavaアプリケーションの一覧と「送信」ボタンが表示される。
この状態において、ユーザが、「Javaアプリケーションb」を選択する旨の入力操作を行うと、移動機MSとIPサーバWの間において、再度、第2実施形態と同様の処理が実行されて「Javaアプリケーションb」が移動機MSにダウンロードされることとなる。この結果、移動機MSのアプリケーション記憶メモリ2141-kには、「Javaアプリケーションa」と「Javaアプリケーションb」が格納され、アプリケーション管理テーブルTBL1の記憶内容が、図8に示した例のように更新される。
かかる状態下において、ユーザが、例えば、「Javaアプリケーションa」を起動すべき旨の入力を行う。すると、移動機MSのCPU211は、ユーザの行った入力操作に応じて、アプリケーション記憶メモリ2141-kから「Javaアプリケーションa」を読み出して、起動する。
ユーザは、この状態において「Javaアプリケーションa」を実行することにより提供される機能を利用することが可能となる。具体的には、「Javaアプリケーションa」が上述した練習用アプリケーションである場合、ユーザは、野球ゲームの各キャラクタのパラメータを設定するための入力操作(例えば、投球練習やバッティング練習等に対応した入力操作)を指示入力部23に行い、各キャラクタのパラメータの設定等を行うことが可能となるのである。なお、「Javaアプリケーションa」の実行時に生成される各種データ(例えば、各キャラクタのパラメータ等)は、RAM213の予め定められた領域(以下、「ヒープ」という)に格納されていてもよいし、「Javaアプリケーションa」に対応するアプリケーションデータ格納領域2141-k2に格納されていてもよい。
このように、ヒープ、あるいはアプリケーションデータ格納領域2141-k2に各種データが格納された状態において、ユーザが指示入力部23に対して、当該データを他のアプリケーションとの間において共用する旨の入力操作を行う。すると、移動機MSのCPU211は、「Javaアプリケーションa」と連携可能なJavaアプリケーションであって、既に移動機MSにダウンロード済みのJavaアプリケーションの一覧を表示する。なお、連携可能なJavaアプリケーションの設定については、ユーザが、任意に設定可能としてもよいし、予めJavaアプリケーションに保有させておくようにしてもよい。
次に、ユーザが「Javaアプリケーションb」を指定する旨の入力操作を行う。すると、移動機MSのCPU211においては、その入力操作に従って、図20及び図21に示す処理が実行される。ここで、同図において、「Javaアプリケーションa」、「JAM」、「Javaアプリケーションb」とは、移動機MSのCPU211が、これらのプログラムのサブルーチンを実行することによって、生成される機能(少なくとも一つのプロセスまたはスレッドを含むもの)を示している。
なお、以下においては、説明の理解を容易なものとするため、これら「Javaアプリケーションa」、「JAM」、「Javaアプリケーション」を、形式的に各処理の主体とするが、実際には、CPU211がこれらのアプリケーションを実行することにより、行われている処理であることは言うまでもない。また、同図に示す処理はあくまでも、各プログラムのサブルーチンを実行することにより行われる処理であり、同図に示す処理以外に、メインルーチンに従った処理も実行されている。
まず、この処理においては、「Javaアプリケーションa」は、JAMに対して、「Javaアプリケーションb」の起動命令を送る(ステップSd1)。なお、この際、どのような方法により、「Javaアプリケーションb」を指定するかは任意である。例えば、「Javaアプリケーションb」の格納されているアプリケーション記憶メモリ2141-kのメモリアドレスを、この起動命令に付加するようにしてもよいし、「Javaアプリケーションb」のダウンロード元URIを起動命令に付加するようにしてもよい。
一方、この起動命令を受け取ると、JAMは、「Javaアプリケーションb」の格納されているアプリケーション記憶メモリ2141-kから「Javaアプリケーションb」のADFを読み出し(ステップSd2)、当該ADFの有する起動パーミッション情報を抽出してRAM213に格納する(ステップSd3)。次に、JAMは、「Javaアプリケーションa」のダウンロード元URI「http://www.○○.co.jp/△△a」をアプリケーション管理テーブルTBL1から読み出す(ステップSd4)そして、JAMは、読み出したダウンロード元URI「http://www.○○.co.jp/△△a」と、RAM213に格納されている起動パーミッション情報とを比較し、両情報が一致するか否かを判定する(ステップSd5)。この際、JAMは、アプリケーション管理テーブルTBL1から読み出したダウンロード元URI「http://www.○○.co.jp/△△a」のサーバ名「http://www.○○.co.jp」と、起動パーミッション情報とを比較し、両情報が一致するか否かを判定する。
このステップSd5における判定の結果、「No」と判定した場合、JAMは、「Javaアプリケーションa」を起動することなく、「セキュリティが確保できないため、このJavaアプリケーションから指定されたJavaアプリケーションを起動することはできません」等の文字列を液晶表示部24に表示させて(ステップSd6)、メインルーチンへと復帰する。
これに対して、ステップSd5において「Yes」と判定した場合(すなわち、起動パーミッション情報中に「○○.ne.jp」が存在する場合)、JAMは、「セキュリティが確保されています。Javaアプリケーションの起動を行いますか」等の文字列と共に、「Yes」、「No」の2つのボタンを液晶表示部24に表示させる(ステップSd7)。このようにして、画像が表示された状態となると、JAMは、ユーザによって選択されたボタンが「Yes」であるか否かを判定する状態となる(ステップSd8)。そして、ユーザが、「No」ボタンを選択する旨の入力操作を行うと、JAMは、ステップSd8において「No」と判定して「Javaアプリケーションb」を起動することなく、メインルーチンへと復帰する。
一方、ユーザが「Yes」ボタンを選択すると、JAMは、ステップSd8において「Yes」と判定し、データの取得要求を「Javaアプリケーションa」に送る(ステップSd9)。このようにして、JAMから、データの取得要求が送られてくると、「Javaアプリケーションa」は、ヒープ内、あるいはアプリケーションデータ格納領域2141-k2に格納されているデータ(例えば、ゲームの場合におけるキャラクタのパラメータ等)を読み出して(ステップSd10)、JAMへと送る(ステップSd11)。
一方、JAMは、「Javaアプリケーションa」からデータが送られてくると、当該データをRAM213に格納させると共に、ステップSd2において読み出したADFに含まれている連携パーミッション情報を抽出する(ステップSd12)。次に、JAMは、抽出した連携パーミッション情報と、ステップSd4において読み出した「Javaアプリケーションa」のダウンロード元URIとを比較して、両情報が一致するか否かを判定する(ステップSd13)。かかる判定の結果、「No」と判定した場合、JAMは、「Javaアプリケーションb」を起動して(ステップSd16)、メインルーチンへと復帰する。
また、このステップSd13において、「Yes」と判定した場合、JAMは、「このJavaアプリケーションで決定したパラメータを、指定したJavaアプリケーションで利用しても宜しいですか」等の文字列と共に、「Yes」、「No」の2つのボタンを液晶表示部24に表示させる(ステップSd14)。
このようにして、画像が表示された状態となると、JAMは、ユーザによって選択されたボタンが「Yes」であるか否かを判定する状態となる(ステップSd15)。そして、ユーザが、「No」ボタンを選択する旨の入力操作を行うと、JAMは、ステップSd15において「No」と判定し、「Javaアプリケーションb」のJarファイルを読み出し、当該Jarファイルに従って「Javaアプリケーションb」を起動して(ステップSd16)、メインルーチンへと復帰する。
これに対して、ユーザが「Yes」ボタンを選択すると、JAMは、ステップSd15において「Yes」と判定し、「Javaアプリケーションb」のJarファイルを読み出し、当該Jarファイルに従って「Javaアプリケーションb」を起動させる(ステップSd17)。このようにして、「Javaアプリケーションb」が起動されると、JAMは、「Javaアプリケーションa」から送られてきたデータをRAM213から読み出して、「Javaアプリケーションb」に引き渡して(ステップSc18)、処理をメインルーチンに戻すのである。
この結果、「Javaアプリケーションa」の実行時に生成されたデータ実体が、「Javaアプリケーションb」に対応したアプリケーションデータ格納領域2141-k2に格納され、「Javaアプリケーションb」による利用が可能となる。この結果、「Javaアプリケーションa」と「Javaアプリケーションb」の間でデータの共用化がなされる。
このように本実施形態にかかる移動機MSは、IPサーバWからダウンロードしたJavaアプリケーション間での連携を行う構成となっている。このため、例えば、野球ゲームを行うための機能を複数のJavaアプリケーションに分担させることが可能となる。また、本実施形態にかかる移動機MSは、JavaアプリケーションのADFに記述されている起動パーミッション情報や連携パーミッション情報と一致するダウンロード元からダウンロードされているJavaアプリケーションとの間においてのみ連携が許容される構成となっている。このため、本実施形態によれば、移動機MSにおいて、セキュリティを確保しつつ、Javaアプリケーション間でデータを共用することができる。
[補足]
<変形例1>
上記各実施形態においては、移動機MSの不揮発性メモリ214に格納されているJavaアプリケーションが起動され、あるいは他のアプリケーションとの間において連携する構成となっている。しかし、SIM(System Identify Module)、UIM(User Identify module)等のデータ記憶モジュールを接続する移動機MSにおいては、これらモジュール内に記憶されているJavaアプリケーションが他のアプリケーションと連携することも可能である。
本変形例1にかかる移動機MSの構成を図22に示す。同図に示すように、移動機MSは、上述した図6に示す各部の他に、インターフェイス部26(以下、「インターフェイス」を「I/F」と略称する)を有する。制御部21は、このI/F部26を介して、モジュール27とデータの授受を行うことが可能となっている。
図23は、このI/F部26を介して接続されるモジュール27の構成を示す図である。同図に示すように、モジュール27は、CPU271と、ROM272と、RAM273と、不揮発性メモリ274、移動機I/F部275とを有する。
移動機I/F部275は、CPU271と移動機MSのI/F部26との間のデータの授受を仲介する。また、ROM272には、各種制御プログラムの他、移動機MSから供給されるコマンドの解析、実行、応答、データ管理等を行うためのプログラムが格納されている。また、このROMには、CPU271が、Javaアプリケーションを実行する際に利用する、Java実行環境を構築するためのソフトウェアが格納されている。
なお、モジュール27に実装されるJava実行環境は、移動機MSに実装されるJava実行環境(図9参照)と同一のものを利用してもよいし、異なるエディションのもの(例えば、モジュール27に実装されているCPU271の処理能力に合わせて機能を削減したもの等)を利用してもよい。
不揮発性メモリ274には、メールアドレスや加入者番号等の情報が記憶されている他、複数のアプリケーション記憶メモリや、テーブル記憶メモリ、受信メール記憶メモリが設けられている。これらアプリケーション記憶メモリや、テーブル記憶メモリ、受信メール記憶メモリは、上記各実施形態において移動機MSの不揮発性メモリ214に設けられている複数のアプリケーション記憶メモリや、テーブル記憶メモリ、受信メール記憶メモリと同様の構成を有するものである。
CPU271は、ROM272や不揮発性メモリ274に格納されているプログラムを実行することによりモジュール27の各部を制御する。RAM273は、ワークエリアとして利用される。
以上説明した構成を有する本変形例において、モジュール27内に格納されたJavaアプリケーションの起動や連携に関する動作について以下に説明する。なお、モジュール27内のJavaアプリケーションが連携等を行う対象(すなわち、メーラやWWWブラウザ、他のJavaアプリケーション)は、移動機MSのROM212に記憶されていてもよいし、モジュール27の不揮発性メモリ274やROM272に記憶されていてもよい。但し、これらのアプリケーションをモジュール27内に記憶させた場合、モジュール27のCPU271において、上述した各実施形態と同様の処理(すなわち、図14、15、18、19、20及び図21と同様の処理)が実行されることとなる。以下には、これらのアプリケーションが移動機MS内に記憶されている場合について説明する。
(i.電子メールによる連携(第1実施形態の機能))
この場合、上述した図14及び図15において、メーラの行っている処理が、メーラを実行した移動機MSのCPU211によって行われ、JAMの行っている処理が、ROM272に記憶されているJava実行環境を実行したモジュール27のCPU271によって行われることとなる。また、この際、Javaアプリケーション(すなわち、JAMによって起動され、引渡命令タグによって指定されているデータ指定情報に対応するデータを利用するJavaアプリケーション)の実行主体もモジュール27のCPU271となる。なお、同図の各ステップにおいて実行される処理の内容については、上述した内容と同様であるので説明は省略する。
(ii.HTMLデータによる連携(第2実施形態の機能))
この場合、上述した図18及び図19において、WWWブラウザの行っている処理が、WWWブラウザを実行した移動機MSのCPU211によって行われ、JAMの行っている処理が、ROM272に記憶されているJava実行環境を実行したモジュール27のCPU271によって行われることとなる。また、この際、Javaアプリケーションの実行主体もモジュール27のCPU271となる。なお、同図の各ステップにおいて実行される処理の内容については、上述した内容と同様であるので説明は省略する。
(iii.移動機MSに記憶されているJavaアプリケーションとの連携(第3実施形態の機能))
この場合、上述した図20及び図21において、「Javaアプリケーションa」の行っている処理が、「Javaアプリケーションa」を実行した移動機MSのCPU211によって行われ、JAMの行っている処理が、ROM272に記憶されているJava実行環境を実行したモジュール27のCPU271によって行われることとなる。また、この際、「Javaアプリケーションb」の実行主体もモジュール27のCPU271となる。なお、同図の各ステップにおいて実行される処理の内容については、上述した内容と同様であるので説明は省略する。
このように本変形例によれば、UIM等のモジュール27内に格納されているJavaアプリケーションとの連携等にも本発明を適用することができる。
<変形例2>
上述した各実施形態において、移動機MSは、電子メールの送信元アドレスやURIと、パーミッション情報(起動パーミッション情報および連携パーミッション情報)とを比較する際、両情報が完全に一致せずとも部分的に一致すれば、両情報が一致したと判定し、起動や連携を許可することができる。
例えば、第1実施形態において説明した電子メールの送信元アドレスについては、「@」以降のドメインアドレス「@zzz.ne.jp」の部分のみをADFにパーミッション情報として記述しておき、移動機MSは、受信した電子メールの送信元アドレスに「@zzz.ne.jp」が含まれているか否かを判定する。この場合、移動機MSは、電子メールの送信元アドレスが、例えば「abc@zzz.ne.jp」や「def@zzz.ne.jp」の場合であっても両情報が一致したと判定し、Javaアプリケーションとの連携等を許可する。また、パーミッション情報として、電子メールの送信元アドレス全体と、比較の際に用いる送信アドレスの範囲を示す情報とをADFに記述するようにしてもよい。
また、第2実施形態において説明したHTMLデータのダウンロード元を示すURIや、第3実施形態において説明した他のJavaアプリケーションのダウンロード元を示すURIの場合も同様である。この場合、例えば、URIのうち、「http://www.zzz.co.jp/」の部分のみをADFにパーミッション情報として記述しておき、移動機MSは、HTMLデータのダウンロード元URIや、他のJav aアプリケーションのダウンロード元URIに、「http://www.zzz.co.jp/」が含まれているか否かを判定する。このようにすると、パーミッション情報として記述された「http://www.zzz.co.jp/」以下のディレクトリからダウンロードしたHTMLデータや他のJavaアプリケーションとの連携等を一括して許可することができる。
このように、パーミッション情報としてメールアドレスを用いた場合は後方一致、URIを用いた場合は前方一致により、部分的な一致でJavaアプリケーションとの連携等を可能としてもよい。
<変形例3>
例えば、携帯電話機のショートメールでは、メールアドレスとして電話番号が用いられている。したがって、起動パーミッション情報や連携パーミッション情報として電話番号を用いることもできる。このように電話番号を起動パーミッション情報や連携パーミッション情報として用いれば、例えば、ショートメールの送信元アドレス(電話番号)が非通知の場合や、メールの送信元が公衆電話である場合は、Javaアプリケーションとの連携等を許可しないようにすることができる。また、携帯電話機の電話番号からは当該携帯電話機を収容する移動パケット通信網の通信事業者を識別することが可能である。したがって、ショートメールの送信元アドレス(電話番号)から送信元の携帯電話機について通信事業者を識別し、当該通信事業者に応じてJavaアプリケーションとの連携の可否等を決定することもできる。
<変形例4>
上述した各実施形態において、電子メールによる連携や、HTMLデータによる連携、他のプログラムとの連携等について、これらの各連携形態を許可するか否かをユーザが設定できるようにしてもよい。
この場合、まず、移動機MSは、ユーザがJavaアプリケーションを初めて起動する際等に、このJavaアプリケーションの動作条件を設定する動作設定画面を表示する。ここで表示される動作条件の設定項目には、「電子メールによる連携」、「HTMLデータによる連携」、「他のプログラムとの連携」、「外部機器との連携」が含まれている。なお、「外部機器との連携」とは、移動機MSとの間で赤外線通信、Bluetooth(登録商標)、HomeRF(Home Radio Frequency)等の近距離無線通信あるいは有線通信を行うことが可能なPCやPDA等との連携である。
ユーザは、上記各項目毎にこの連携形態を許可するか否かを入力操作により設定することができ、移動機MSは、入力操作により設定された各連携形態毎の許可有無を示す情報を不揮発性メモリ214に記憶する。そして、移動機MSは、例えば、受信した電子メールの送信元アドレスと、連携パーミッション情報とが一致した場合であっても、ユーザにより「電子メールによる連携」が「許可」に設定されていなければ、このJavaアプリケーションとの連携を許可せず、データの提供を認めない。
このようにすれば、JavaアプリケーションのADFに起動パーミッション情報や連携パーミッション情報が記述されており、電子メールによる連携が可能なJavaアプリケーションであっても、ユーザが「電子メールによる連携」の設定を「許可」にしていなければ、Javaアプリケーションが勝手に起動したり、Javaアプリケーションにより利用されているデータが勝手に更新されてしてしまうようなことがない。
<変形例5>
上述した各実施形態においては、IPサーバWからダウンロードされたJavaアプリケーションが、メーラやWWWブラウザ、あるいは他のJavaアプリケーションからの働きかけに応じて起動され、あるいは連携する構成となっていた。しかし、起動や連携の対象となるJavaアプリケーションは、移動機MSの製品出荷時点において不揮発性メモリ214に記憶されているもの(すなわち、プリインストールされたネイティブアプリケーション)であってもよいし、CD−ROM等の記憶媒体から移動機MSにインストールされたものであってもよい。
<変形例6>
上述した各実施形態においては、Javaプログラミング言語により記述されたJavaアプリケーションを例に説明したが、他のプログラミング言語により記述されたアプリケーションであっても、同様の効果を奏することが可能であることは、いうまでもない。この場合、当該アプリケーションに起動パーミッション情報及び連携パーミッション情報を保有させることが必要となるが、この方法については、任意である。例えば、当該アプリケーションを構成するファイルの中に、両パーミッション情報を記述したファイルを設けるようにしてもよい。
<変形例7>
上述した、第3実施形態にかかる移動機MSは、例えば、「Javaアプリケーションa」の実行時に生成され、ヒープ、あるいはアプリケーションデータ格納領域2141-k2に格納されているデータ自体を、そのまま、「Javaアプリケーションb」に引き渡す構成を有していた。しかし、「Javaアプリケーションa」から「Javaアプリケーションb」にデータ自体を、そのまま、引き渡さなくとも、当該データのアドレス等(例えば、URI)を引き渡して、「Javaアプリケーションb」が当該アドレスから各種データを取得するようにすることも可能である。
この場合、移動機MSのCPU211においては、「Javaアプリケーションa」の実行時に、例えば、URI等のアドレスが生成され、上述した図20のステップSd12において、このアドレスの付加された取得命令が「Javaアプリケーションa」からJAMに送られる。そして、図21ステップSd20においてJAMから「Javaアプリケーションb」に当該URIを付加した、データの取得命令が送られる。そして、「Javaアプリケーションb」がJAMから送られてきた取得命令に従って、「Javaアプリケーションa」から送られてきたアドレスに対応したデータを取得することとなる。
このように本変形例によれば、例えば、「Javaアプリケーションa」の実行時に生成されたデータのみならず、「Javaアプリケーションa」によって指定されたデータを「Javaアプリケーションb」が取得することも可能となる。
<変形例8>
上記各実施形態においては、電子メールやHTMLデータ、あるいはJavaアプリケーションの信頼性を担保すべく、受信した電子メールのメールアドレスやURI等と、JavaアプリケーションのADFに記述されているパーミッション情報とをJAMが比較する構成となっている。そして、両情報が一致した場合にのみ、JAMは、Javaアプリケーションを起動させ、あるいは連携させる構成となっている(図14、15、18、19、20、21参照)。しかし、かかる処理は、必ずしもJAMに基づいて行われるものである必要はない。例えば、OSに基づいた処理において、上記処理を実行するようにしてもよい。この場合、上述した図14、15、18、19、20及び図21においてJAMに基づいて実行されている処理をOSが実行することとなる。
<変形例9>
上記各実施形態においては、移動機MSに実装されるJava実行環境として、J2ME/CLDCを実装する場合について説明した。しかし、Java実行環境については、他のコンフィギュレーション(例えば、J2ME/CLD:Java 2 Micro Edition/Co nnected Limited Device等)を実装したものであってもよいし、また、プロファイルについても、MIDP(Mobile Information Device Profile)等を実装したものであってもよい。更に、このJava実行環境は、J2MEの上位エディションである、J2SE(Java 2 Standard Edition)やJ2EE(Java 2 Enterprise Edition)であってもよい。
<変形例10>
上記各実施形態において移動機MSのROM212に格納されているネイティブアプリケーションやJava実行環境のネイティブコンポーネント等は、移動機MSの製造時にROM212に記憶されて出荷される構成としている。しかし、これらのアプリケーションについては、CD−ROM等の記憶媒体に記憶されて販売され、移動機MSにインストールされるようにしてもよいし、IPサーバWからダウンロードされるようにしてもよい。
<変形例11>
上述した、第1実施形態においては、特に言及していないが、IPサーバWが生成する電子メールには、起動命令タグや引渡命令タグの他に、以下のような情報を記述するようにしてもよい。
(i.情報1)
引渡命令タグの指定しているデータ指定情報の種別(すなわち、「DATA」か「ACQUISITION」かの種別)。
(ii.情報2)
引渡命令タグの指定しているデータ指定情報が「ACQUISITION」である場合、当該データ指定情報に対応したデータのデータ量。
かかる内容を記述することにより、ユーザは、当該電子メールに記述されているデータ指定情報に対応するデータがダウンロードしなくてはならないものなのか否かを把握することが可能となる他、そのダウンロードに要する時間やダウンロードに必要となる通信料金等を把握することが可能となる。なお、HTMLデータ中に上記情報1及び情報2を記述することにより、当然、第2実施形態においても同様の効果を得ることが可能である。
<変形例12>
上述した第1実施形態においては、引渡命令タグ内のパラメータタグによって指定されたデータ指定情報に対応するデータが、起動命令タグに従って起動されたJavaアプリケーションに利用される構成となっている。換言するならば、移動機MS内のJavaアプリケーションは、起動された後に、メーラと連携しているのである。
しかし、Javaアプリケーションの起動を行うことなく、連携のみを実現するようにしても構わない。この場合、IPサーバWから移動機MS宛に送信される電子メールには、起動命令タグを記述する必要性はなく、引渡命令タグのみを記述すればよい。かかる方法を採る場合、引渡命令タグ内において、Javaアプリケーションを指定することが必要となる。そこで、この方法を採る場合には、引渡命令タグ内において、アプリケーション指定情報とデータ指定情報の双方を指定するようにすればよい。移動機MSにおいては、この引渡命令タグによって指定されているJavaアプリケーションが、データ指定情報により指定されたデータを利用する。なお、この際、データ指定情報に対応したデータを、Javaアプリケーションが利用できるようにする方法としては、例えば、以下のような方法がある。
(i.方法1)
この方法は、CPU211により実行されたJAMが、受信した電子メールに記述されているデータ指定情報に対応したデータを、アプリケーションデータ格納領域2141-k2に直接格納させる方法である。この方法は、移動機MSが複数のアプリケーションを同時に実行する機能を有していない場合に、特に有効である。なお、データ指定情報が「ACQUISITION」である場合、移動機MSのCPU211においては、メーラが、当該「ACQUISITION」に対応したデータの取得命令をWWWブラウザへと送り、この取得命令に従って、WWWブラウザが取得したデータをメーラがJAMへと送り、JAMがアプリケーションデータ格納領域2141-k2へと格納するという処理が実行されることとなる。
(ii.方法2)
この方法は、移動機MSのCPU211が、メーラとJavaアプリケーションの双方を同時に実行し、この同時実行状態において、上述した図14及び図15と同様の処理を行う方法である。なお、この方法を実現するためには、移動機MSは、複数のアプリケーションを同時に実行する機能を有することが必要となる。
<変形例13>
上述した各実施形態においては、携帯電話機等の移動機MSを用いる場合について説明した。しかし、本発明は、移動機MSに限らず、インターネット接続を行う機能を有しているPDAやPC等の電子機器であれば、何を用いても実現可能である。このように、PCやPDAを用いた場合、移動パケット通信網MPNを介することなくISDN等の公衆デジタル網や固定電話網を介して通信を行う構成とすることも可能である。
(発明の効果)
以上説明したようにこの発明によれば、電子機器においてアプリケーションに提供するデータのセキュリティを確保することができる。
W・・・IPサーバ、 11・・・システム制御部、 12・・・通信部、 13・・・アプリケーションDB、 14・・・ユーザ管理DB、 15・・・インターフェイス部、 16・・・操作端末、 MS・・・移動機、 21・・・制御部、 211・・・CPU、 212・・・ROM、 213・・・RAM、 214・・・不揮発性メモリ、 2141-k(k=1、2、…、n)・・・アプリケーション記憶メモリ、 2141-k1(k=1、2、…、n)・・・アプリケーション格納領域、 2141-k2・・・アプリケーションデータ格納領域、 2142・・・テーブル記憶メモリ、 2143・・・受信メール記憶メモリ、 22・・・送受信部、 23・・・指示入力部、 24・・・液晶表示部、 25・・・データバス、 26・・・I/F部、 27・・・モジュール、 271・・・CPU、 272・・・ROM、 273・・・RAM、 274・・・不揮発性メモリ、 275・・・移動機I/F部、 TBL1・・・アプリケーション管理テーブル、 MPN・・・移動パケット通信網、 BS・・・基地局、 GWS・・・ゲートウェイサーバ、 INET・・・インターネット。