(57)【要約】【課題】ＩＣカードへのデータの読み書きを行うプログラムを切り替えること。【解決手段】管理プログラムを実行しているＣＰＵ１０２が、ＩＣカード５００の複数の記憶領域のうち一の記憶領域にアクセス可能なソフトウェアを、アプリケーションプログラムからスクリプトに変更させる処理を開始させるための開始情報を受ける。開始情報を受けると、管理プログラムを実行しているＣＰＵ１０２が、ＩＣカード一覧において前記一の記憶領域を示す第１の識別子と対応する第２の識別子を、スクリプトを示すものに書き替える。【選択図】図２２
2010218029.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して通信する通信手段と、
特定の処理を実行するための第１のアプリケーションプログラム、前記第１のアプリケーションプログラムと異なる第２のアプリケーションプログラム、ならびにスクリプトおよび前記第２のアプリケーションプログラムを管理する第１の管理プログラムを実行する第１の制御手段と、
アンテナと、個別にアクセス制限を設定可能な複数の記憶領域を有するメモリと、前記アンテナからの信号または前記第１の制御手段からの信号に応じて前記メモリにアクセスし、アクセスした結果を前記第１の制御手段に出力する第２の制御手段とを有するＩＣカードと、
前記メモリに設定されている記憶領域を特定する第１の識別子と、前記第１の識別子により特定される記憶領域に対してアクセス可能なソフトウェアを示す第２の識別子とを含む一覧を記憶する記憶手段と
を有し、
前記第２のアプリケーションプログラムが、前記複数の記憶領域のうち一の記憶領域にアクセスするためのプログラムであり、
前記スクリプトが、前記一の記憶領域にアクセスするための命令群を含み、
前記第１の管理プログラムを実行している前記第１の制御手段が、第１の管理手段として機能し、
前記第１のアプリケーションプログラムを実行している前記第１の制御手段が、第１のアプリケーション手段として機能し、
前記第２のアプリケーションプログラムを実行している前記第１の制御手段が、第２のアプリケーション手段として機能し、
前記第１の管理手段が、前記第１のアプリケーション手段から、前記一覧の内容を確認する要求を受け、
前記要求を受けた場合において、前記一覧において前記一の記憶領域を示す前記第１の識別子と対応する前記第２の識別子が前記第２のアプリケーションプログラムの識別子であるときは、前記第１の管理手段が、前記一覧において前記一の記憶領域を示す前記第１の識別子と対応する前記第２の識別子が前記スクリプトの識別子となるように、前記一覧の更新をする
ことを特徴とする携帯端末。
【請求項２】
前記第１のアプリケーションプログラムが、前記スクリプトを実行するための命令群を含み、
前記一覧の更新の後で、前記第１の管理手段が、前記第１のアプリケーション手段に対して前記スクリプトを実行させる第１の指示をし、
前記第１の指示を受けると、前記第１のアプリケーション手段が、前記スクリプトの実行をする
ことを特徴とする請求項１に記載の携帯端末。
【請求項３】
前記第１の制御手段が、前記第２のアプリケーションプログラムのアンインストールを管理する第２の管理プログラムを実行し、
前記第２の管理プログラムを実行している前記第１の制御手段が、第２の管理手段として機能し、
前記一覧の更新が行われると、前記第１の管理手段が、前記第２の管理手段に前記第２のアプリケーションプログラムのアンインストールの第２の指示をし、
前記第２の指示を受けると、前記第２の管理手段が、前記第２のアプリケーションプログラムのアンインストールをする
ことを特徴とする請求項１または２に記載の携帯端末。
【請求項４】
前記要求を受けた場合において、前記一覧において前記一の記憶領域を示す前記第１の識別子と対応する前記第２の識別子が前記スクリプトの識別子であるとき、または前記一の記憶領域を示す前記第１の識別子と対応する前記第２の識別子が前記一覧に含まれていないときは、前記第１の管理手段が、前記第１のアプリケーション手段に前記スクリプトの実行を指示する
ことを特徴とする請求項１−３のいずれかの項に記載の携帯端末。
【請求項５】
情報を表示する表示手段を有し、
前記特定の処理が、特定の書式で記述された特定データを、前記ネットワークから前記通信手段を介して受信し、前記受信した特定データに基づく情報を前記表示手段に表示させる処理であり、
前記第１のアプリケーション手段が、前記スクリプトを実行させるための契機となる契機情報を含む前記特定データを受信したことを契機として、前記第１の管理手段に対し前記要求を送る
ことを特徴とする請求項１−４のいずれかの項に記載の携帯端末。
【請求項６】
ネットワークを介して通信する通信手段と、
プログラムを実行する第１の制御手段と、
アンテナと、個別にアクセス制限を設定可能な複数の記憶領域を有するメモリと、前記アンテナからの信号または前記第１の制御手段からの信号に応じて前記メモリにアクセスし、アクセスした結果を前記第１の制御手段に出力する第２の制御手段とを有するＩＣカードと、
前記メモリに設定されている記憶領域を特定する第１の識別子と、前記第１の識別子により特定される記憶領域に対してアクセス可能なソフトウェアを示す第２の識別子とを含む一覧を記憶する記憶手段と
を有する携帯端末に、
前記第１の制御手段が、前記一覧の内容を確認する要求を受けるステップと、
前記要求を受けた場合において、前記一覧において前記一の記憶領域を示す前記第１の識別子と対応する前記第２の識別子が前記複数の記憶領域のうち一の記憶領域にアクセスするためのアプリケーションプログラムの識別子であるときは、前記第１の制御手段が、前記一覧において前記一の記憶領域を示す前記第１の識別子と対応する前記第２の識別子が前記スクリプトの識別子となるように、前記一覧の更新をするステップと
を実行させるための管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、携帯端末においてＩＣカードを利用する技術に関する。
【背景技術】
【０００２】
モバイルFeliCa（登録商標）のように、携帯端末において利用されるＩＣカードが知られている。単体のＩＣカードに対しては、専用のリーダ／ライタを用いてデータの読み書きがされるが、携帯端末に内蔵されたＩＣカードに対しては、リーダ／ライタを用いたデータの読み書きに加え、携帯端末本体からデータの読み書きが可能である。多くの携帯端末はネットワークを介した通信を行う機能を有しており、通信機能およびＩＣカード機能により、多様なサービスを提供することが可能になっている。ＩＣカードを内蔵した携帯端末において、ＩＣカードのデータを読み書きするために、専用のアプリケーションソフトウェアが用いられている。
【０００３】
これに対し特許文献１は、端末装置からＩＣカードへ送信されるメッセージであるＡＰＤＵ（Application Protocol Data Unit、アプリケーション・プロトコル・データ単位）の実行結果をｗｅｂブラウザに表示する技術を開示している（特に、段落００２０−００２２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２４４２１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ネットワークを介した通信とＩＣカードへのデータの読み書きとを一連の処理として行おうとするとき、ネットワークを介した通信を行うためのソフトウェアと、ＩＣカードへのデータの読み書きを行うためのソフトウェアとを切り替えることは煩雑であった。特許文献１においても、ＡＰＤＵの取得や実行は専用のソフトウェアを用いる必要があった。
これに対し本発明は、ＩＣカードへのデータの読み書きを行うソフトウェアを、ネットワークを介した通信を行うためのソフトウェア上から実行可能なスクリプトと、専用のソフトウェアとのいずれかに切り替える技術を提供する。
【課題を解決するための手段】
【０００６】
本発明は、ネットワークを介して通信する通信手段と、特定の処理を実行するための第１のアプリケーションプログラム、前記第１のアプリケーションプログラムと異なる第２のアプリケーションプログラム、ならびにスクリプトおよび前記第２のアプリケーションプログラムを管理する第１の管理プログラムを実行する第１の制御手段と、アンテナと、個別にアクセス制限を設定可能な複数の記憶領域を有するメモリと、前記アンテナからの信号または前記第１の制御手段からの信号に応じて前記メモリにアクセスし、アクセスした結果を前記第１の制御手段に出力する第２の制御手段とを有するＩＣカードと、前記メモリに設定されている記憶領域を特定する第１の識別子と、前記第１の識別子により特定される記憶領域に対してアクセス可能なソフトウェアを示す第２の識別子とを含む一覧を記憶する記憶手段とを有し、前記第２のアプリケーションプログラムが、前記複数の記憶領域のうち一の記憶領域にアクセスするためのプログラムであり、前記スクリプトが、前記一の記憶領域にアクセスするための命令群を含み、前記第１の管理プログラムを実行している前記第１の制御手段が、第１の管理手段として機能し、前記第１のアプリケーションプログラムを実行している前記第１の制御手段が、第１のアプリケーション手段として機能し、前記第２のアプリケーションプログラムを実行している前記第１の制御手段が、第２のアプリケーション手段として機能し、前記第１の管理手段が、前記第１のアプリケーション手段から、前記一覧の内容を確認する要求を受け、前記要求を受けた場合において、前記一覧において前記一の記憶領域を示す前記第１の識別子と対応する前記第２の識別子が前記第２のアプリケーションプログラムの識別子であるときは、前記第１の管理手段が、前記一覧において前記一の記憶領域を示す前記第１の識別子と対応する前記第２の識別子が前記スクリプトの識別子となるように、前記一覧の更新をすることを特徴とする携帯端末を提供する。
この携帯端末によれば、第１のアプリケーションプログラムを実行したままで、ＩＣカードにアクセスするソフトウェアがスクリプトに切り替えられる。
【０００７】
好ましい態様において、前記第１のアプリケーションプログラムが、前記スクリプトを実行するための命令群を含み、前記一覧の更新の後で、前記第１の管理手段が、前記第１のアプリケーション手段に対して前記スクリプトを実行させる第１の指示をし、前記第１の指示を受けると、前記第１のアプリケーション手段が、前記スクリプトの実行をしてもよい。
この携帯端末によれば、一覧が更新された後でスクリプトが実行される。
【０００８】
別の好ましい態様において、前記第１の制御手段が、前記第２のアプリケーションプログラムのアンインストールを管理する第２の管理プログラムを実行し、前記第２の管理プログラムを実行している前記第１の制御手段が、第２の管理手段として機能し、前記一覧の更新が行われると、前記第１の管理手段が、前記第２の管理手段に前記第２のアプリケーションプログラムのアンインストールの第２の指示をし、前記第２の指示を受けると、前記第２の管理手段が、前記第２のアプリケーションプログラムのアンインストールをしてもよい。
この携帯端末によれば、第２のアプリケーションプログラムのアンインストールが自動的に行われる。
【０００９】
さらに別の好ましい態様において、前記要求を受けた場合において、前記一覧において前記一の記憶領域を示す前記第１の識別子と対応する前記第２の識別子が前記スクリプトの識別子であるとき、または前記一の記憶領域を示す前記第１の識別子と対応する前記第２の識別子が前記一覧に含まれていないときは、前記第１の管理手段が、前記第１のアプリケーション手段に前記スクリプトの実行を指示してもよい。
この携帯端末によれば、一覧の更新が必要ない時にはスクリプトが実行される。
【００１０】
さらに別の好ましい態様において、この携帯端末は、情報を表示する表示手段を有し、前記特定の処理が、特定の書式で記述された特定データを、前記ネットワークから前記通信手段を介して受信し、前記受信した特定データに基づく情報を前記表示手段に表示させる処理であり、前記第１のアプリケーション手段が、前記スクリプトを実行させるための契機となる契機情報を含む前記特定データを受信したことを契機として、前記第１の管理手段に対し前記要求を送ってもよい。
この携帯端末によれば、ネットワークを介して取得した情報を表示する第１のアプリケーションプログラムによる処理と、ＩＣカードへのアクセスをするソフトウェアの切り替えとが、シームレスに行われる。
【００１１】
また、本発明は、ネットワークを介して通信する通信手段と、プログラムを実行する第１の制御手段と、アンテナと、個別にアクセス制限を設定可能な複数の記憶領域を有するメモリと、前記アンテナからの信号または前記第１の制御手段からの信号に応じて前記メモリにアクセスし、アクセスした結果を前記第１の制御手段に出力する第２の制御手段とを有するＩＣカードと、前記メモリに設定されている記憶領域を特定する第１の識別子と、前記第１の識別子により特定される記憶領域に対してアクセス可能なソフトウェアを示す第２の識別子とを含む一覧を記憶する記憶手段とを有する携帯端末に、前記第１の制御手段が、前記一覧の内容を確認する要求を受けるステップと、前記要求を受けた場合において、前記一覧において前記一の記憶領域を示す前記第１の識別子と対応する前記第２の識別子が前記複数の記憶領域のうち一の記憶領域にアクセスするためのアプリケーションプログラムの識別子であるときは、前記第１の制御手段が、前記一覧において前記一の記憶領域を示す前記第１の識別子と対応する前記第２の識別子が前記スクリプトの識別子となるように、前記一覧の更新をするステップとを実行させるための管理プログラムを提供する。
この管理プログラムによれば、第１のアプリケーションプログラムを実行したままで、ＩＣカードにアクセスするソフトウェアがスクリプトからアプリケーションプログラムに切り替えられる。
【図面の簡単な説明】
【００１２】
【図１】一実施形態に係る通信システムの構成を示す図である。
【図２】携帯電話機１０の外観図である。
【図３】携帯電話機１０のハードウェア構成を示す図である。
【図４】ＩＣカード５００の構成を示す図である。
【図５】メモリ５０４の記憶領域の構成を例示する図である。
【図６】Ｊａｖａ実行環境を示す図である。
【図７】携帯電話機１０のソフトウェア構成を示す図である。
【図８】サービスサーバ３０の構成を示す図である。
【図９】リモート発行サーバ４０の構成を示す図である。
【図１０】サービスサーバ５０の構成を示す図である。
【図１１】サービスサーバ６０の構成を示す図である。
【図１２】登録スクリプトによる処理を示すシーケンス図である。
【図１３】ＨＴＭＬデータの具体例を例示する図である。
【図１４】読み出しスクリプトによる処理を示すシーケンス図である。
【図１５】書き込みスクリプトによる処理を示すシーケンス図である。
【図１６】削除スクリプトによる処理を示すシーケンス図である。
【図１７】ＩＣカード一覧を例示する図である。
【図１８】ＩＣカード一覧に従って表示される画面を例示する図である。
【図１９】ブラウザモードの登録処理を示すシーケンス図である。
【図２０】アプリモードの登録処理を示すシーケンス図である。
【図２１】ブラウザモードからアプリモードへの切り替え処理を示す図である。
【図２２】アプリモードからブラウザモードへの切り替え処理を示す図である。
【図２３】ＩＣカード一覧からブラウザまたはアプリケーションプログラムを起動する処理を示すフローチャートである。
【図２４】暗号化技術の概要を示す図である。
【発明を実施するための形態】
【００１３】
１．構成
図１は、本発明の一実施形態に係る通信システムの構成を示す図である。この通信システムは、携帯電話機１０と、管理サーバ２０と、サービスサーバ３０と、リモート発行サーバ４０と、サービスサーバ５０と、サービスサーバ６０とを有する。管理サーバ２０、サービスサーバ３０、リモート発行サーバ４０、サービスサーバ５０およびサービスサーバ６０は、ネットワーク７０を介して接続されている。リーダ／ライタ５１０は、携帯電話機１０に内蔵されているＩＣ（Integrated Circuit）カード５００と無線通信を行い、データの読み書きを行う。
【００１４】
１−１．携帯電話機１０
図２は、携帯電話機１０の外観図である。携帯電話機１０は、本発明に係る携帯端末の一例である。携帯電話機１０は、筐体９Ａおよび筐体９Ｂを有する。筐体９Ａと筐体９Ｂとは、ヒンジ３を介して連結されている。携帯電話機１０は、いわゆる折り畳み型の携帯電話機である。携帯電話機１０のユーザは、図１に示されるように筐体９Ａおよび筐体９Ｂを開いた状態で音声通信やデータ通信を行う。
【００１５】
筐体９Ａは、スピーカ６、アンテナ７および表示装置８を有する。スピーカ６は、通話の音声、操作音、楽曲音などを出力する。アンテナ７は、無線基地局との間で無線通信を行う。表示装置８は、文字や画像を表示する。筐体９Ｂは、キーパッド４およびマイクロホン５を有する。キーパッド４は、ユーザの操作に応じた信号を出力する。マイクロホン５は、入力された音声を電気信号に変換して出力する。
【００１６】
図３は、携帯電話機１０のハードウェア構成を示す図である。ＣＰＵ（Central Processing Unit）１０２は、携帯電話機１０の各構成要素を制御する制御装置（第１の制御手段の一例）である。ＲＯＭ（Read Only Memory）１０３は、携帯電話機１０の基本的な動作に必要なプログラムおよびデータを記憶する記憶装置である。ＲＯＭ１０３は、例えば、ＩＰＬ（Initial Program Loader）、ＯＳ（Operating System）プラグラムおよびＪａｖａ（登録商標）プラットフォームソフトウェアを記憶している。ＩＰＬは、携帯電話機１０の電源が投入されたときに最初に実行するプログラムを読み出すためのプログラムである。本実施形態において、ＩＰＬは、ＯＳプログラムを読み出す。ＯＳプログラムは、データの入出力、記憶装置へのアクセス、各種プログラムの実行、音声通信、データ通信、その他の携帯電話機１０の基本的な機能を実現させるためのプログラムである。Ｊａｖａ（登録商標）プラットフォームソフトウェアは、ＯＳ上にＪａｖａ実行環境を実現させるためのプログラムおよびデータである。Ｊａｖａ実行環境については後述する。
【００１７】
ＲＡＭ（Random Access Memory）１０４は、ＣＰＵ１０２がプログラムを実行する際のワークエリアとして機能する記憶装置である。記憶部１０５（記憶手段の一例）は、アプリケーションプログラムおよびデータを記憶する記憶装置である。記憶部１０５は、フラッシュメモリ等の不揮発性メモリを有する。本実施形態において、記憶部１０５は、ブラウザプログラムを記憶している。ブラウザプログラムは、ネットワークを介してＨＴＭＬ（HyperText Markup Language）データを受信し、受信したＨＴＭＬデータに応じた情報を表示装置８に表示させるためのプログラムである（第１のアプリケーションプログラムの一例）。また、記憶部１０５は、電子メールプログラムを記憶している。電子メールプログラム（メーラ）は、ネットワークを介して電子メールを送受信し、送受信した電子メールの表示、編集をするためのプログラムである。電子メールには添付ファイルとして画像データやアドレス帳データを添付することが可能である。この例で、ブラウザおよびメーラはＪａｖａアプリケーションプログラムである。
【００１８】
操作部１０６は、ユーザの操作に応じた信号を出力する。操作部１０６は、テンキー、発呼キー、終話キー、クリアキー、カーソルキー、電源キー、その他の入力を行うためのキーを含むキーパッド（図２のキーパッド４）等の入力装置を有する。ユーザは、キーパッドを操作することにより携帯電話機１０に対して指示を入力する。表示部１０７（表示手段の一例）は、文字や画像を表示する。表示部１０７は、液晶ディスプレイなどの表示装置（図２の表示装置８）を有する。表示部１０７は、実行中のアプリケーションプログラムにより処理された情報を表示する。表示部１０７は、ＬＣＤ（liquid crystal display）などの表示体およびその表示体を駆動する駆動回路を有する。通信部１０８（通信手段の一例）は、アンテナ（図２のアンテナ７）を介して無線基地局を介して音声通信またはデータ通信を行う。バス１０９は、構成要素間でやりとりされる信号やデータを伝送する伝送路である。さらに、携帯電話機１０は、ＩＣカード５００を有している。以上の構成要素はバス１０９を介して接続されている。
【００１９】
図４は、ＩＣカード５００の構成を示す図である。アンテナ５０１は、リーダ／ライタ５１０との間での無線信号の送受信に用いられる。ＩＣチップ５０２は、アンテナ５０１が受信した信号に応じた処理を行う。ＩＣチップ５０２は、プロセッサ５０３（第２の制御手段の一例）と、メモリ５０４とを有する。
【００２０】
ＩＣカード５００は、ＣＰＵ１０２とデータや信号の送受信に用いられる信号線５０５を有している。プロセッサ５０３は、アンテナ５０１が受信した信号またはＣＰＵ１０２からの信号に応じてメモリ５０４にアクセスし、データの読み出しまたは書き込みを行う。プロセッサ５０３は、データの暗号化や復号化など、データの読み出しまたは書き込みに伴う処理を実行する。
【００２１】
図５は、メモリ５０４の記憶領域の構成を例示する図である。この例で、メモリ５０４には、初期状態において共通領域および自由領域という２つの領域が設定されている（図５（Ａ））。共通領域は、あらかじめ決められた事業者（この例では、リモート発行サーバ４０を管理、運営している事業者）により、サービス毎の領域設定およびデータの書き込みがされる領域である。自由領域は、事業者によらずデータの書き込みが可能な領域である。
【００２２】
共通領域はさらに複数の領域に区分することが可能であり、各領域に、異なるサービスのデータ、例えばＡ社の電子マネーやＢ社の電子マネーのデータを記憶することが可能である（図５（Ｂ））。以下、Ａ社およびＢ社が提供する電子マネーをそれぞれ、「Ａ社マネー」および「Ｂ社マネー」という。各領域は個別にアクセス制限（セキュリティ）を設定することが可能である。これにより、一枚のカードの中で複数のサービスで用いられるデータを管理することができ、また、サービス間でのデータのセキュリティも確保される。
【００２３】
図６は、Ｊａｖａ実行環境を示す図である。ＣＰＵ１０２がＪａｖａ（登録商標）プラットフォームソフトウェアを実行することにより、図６に示されるＪａｖａ実行環境１１４がＯＳ１１１上に実現される。Ｊａｖａ実行環境１１４は、クラスライブラリ１１７、ＪＶＭ（Java Virtual Machine）１１８およびＪＡＭ（Java Application Manager）１１９を有する。クラスライブラリ１１７は、特定の機能を有するプログラムモジュール（クラス）群を１つのファイルに結合したものである。ＪＶＭ１１８は、Ｊａｖａアプリケーションプログラムとして提供されるバイトコードを解釈して実行する機能を有する。ＪＡＭ１１９は、Ｊａｖａアプリケーションプログラムのダウンロード、インストール、起動、終了、その他の動作を管理する機能を有する（第２の管理プログラムの一例）。
【００２４】
ＪＡＭ１１９は、ＩＣカード５００にアクセスするためのＡＰＩ（Application Program Interface）群１２０を含んでいる。ＡＰＩ群１２０は、例えば、サーバとの通信を開始するためのサーバ通信開始用ＡＰＩ、ＩＣカード５００からデータを読み出すためのデータ読み出し用ＡＰＩ、ＩＣカード５００にデータを書き込むためのデータ書き込み用ＡＰＩ等を含んでいる。
【００２５】
クライアントソフトウェア１２１は、リモート発行サーバ４０等のサーバとの通信を中継するためのソフトウェアである。デバイスドライバ１２２は、ＩＣカード５００にアクセスするためのドライバプログラムである。
【００２６】
第１ストレージ１１５は、ＪＡＭ１１９の管理の下にダウンロードされるＪａｖａアプリケーションプログラム（ＪａｒファイルおよびＡＤＦ（Application Descriptive File））を格納する領域である。第２ストレージ１１６は、Ｊａｖａアプリケーションプログラムの実行の際に生成されたデータをその終了後に格納しておくための領域である。第２ストレージ１１６において、インストールされたＪａｖａアプリケーションプログラム毎に個別の格納領域が割り当てられる。あるＪａｖａアプリケーションプログラムに割り当てられた格納領域のデータは、そのＪａｖａアプリケーションプログラムが実行されている間のみ書き替え可能となっており、別のＪａｖａアプリケーションプログラムは書き替えをすることができない。
【００２７】
Ｊａｖａ実行環境１１４の元でＣＰＵ１０２がＪａｖａアプリケーションプログラムを実行することにより、アプリケーション１１２やアプリケーション１１３が実現される。
【００２８】
図７は、携帯電話機１０のソフトウェア構成を示す図である。ＯＳ１１１上において、ブラウザ１３０等のアプリケーションプログラムが動作する。ブラウザ１３０は、ＨＴＭＬデータに応じた情報を表示装置８に表示させる機能を有する。ブラウザ１３０は、ネットワークからＨＴＭＬデータを受信する機能等、情報を表示させる機能に関連する機能を有する。スクリプト処理エンジン１３１は、このような関連機能の一つであり、Ｊａｖａスクリプトを解釈し、Ｊａｖａスクリプトに記述されている命令に従った処理を実行する機能を有する。スクリプト処理エンジン１３１は、ＩＣカード５００にアクセスするためのＡＰＩ群１３２を含んでいる。ＡＰＩ群１３２は、例えば、サーバとの通信を開始するためのサーバ通信開始用ＡＰＩ、ＩＣカード５００からデータを読み出すためのデータ読み出し用ＡＰＩ、ＩＣカード５００にデータを書き込むためのデータ書き込み用ＡＰＩ等を含んでいる。
【００２９】
専用アプリ１４０は、Ａ社マネーやＢ社マネー等、特定のサービスにおいてＩＣカード５００へのアクセスを行うためのアプリケーションプログラムである（第２のアプリケーションプログラムの一例）。専用アプリ１４０は、特定のサービスに特化された専用のプログラムである。例えば、Ａ社マネーおよびＢ社マネーには、それぞれ独自の専用アプリ１４０がある。この例で、専用アプリ１４０は、Ｊａｖａアプリケーションプログラムである。
【００３０】
一覧管理プログラム１５０（第１の管理プログラムの一例）は、ＩＣカード一覧を管理するためのプログラムである。ＩＣカード一覧は、携帯電話機１０に登録されている（または登録予定の）サービスを示す一覧である（詳細は後述）。一覧管理プログラム１５０は、ＩＣカード一覧の更新や、ＩＣカード一覧に基づいた、スクリプト処理エンジン１３１や専用アプリ１４０の起動の制御を行う。
【００３１】
１−２．管理サーバ２０
管理サーバ２０は、携帯電話機１０がネットワークを介した通信を行う際の認証や課金といった処理を行うためのサーバである。
【００３２】
１−３．サービスサーバ３０
図８は、サービスサーバ３０の構成を示す図である。サービスサーバ３０は、電子マネーサービスを提供する事業者であるＡ社が管理、運営するサーバである。サービスサーバ３０は、サービスに関する情報を提供するためのＨＴＭＬデータと、電子マネーサービスに用いられる各種のスクリプト（残高表示スクリプト、決済スクリプト、チャージスクリプトおよび削除スクリプト）と、サーバとして機能させるためのサーバプログラムとを、ＨＤＤ等の記憶手段３０１に記憶している。これらのスクリプトの詳細は後述する。また、サービスサーバ３０は、ネットワークを介した通信に用いられる通信インターフェース等の通信手段３０２、およびプログラムを実行するＣＰＵ等の制御手段３０３を有している。制御手段３０３がサーバプログラムを実行し、記憶手段３０１や通信手段３０２を制御することにより、サービスサーバ３０は、携帯電話機１０からの要求に応じてＨＴＭＬデータやスクリプトを送信する機能を有する。
【００３３】
１−４．リモート発行サーバ４０
図９は、リモート発行サーバ４０の構成を示す図である。リモート発行サーバ４０は、ＩＣカード５００のプラットフォームを提供する事業者が管理、運営するサーバである。リモート発行サーバ４０は、事業者により提供されるサービスに関する情報を記録するデータベースと、データベースに情報を登録する処理、登録や決済の認証処理など、ＩＣカード５００のサービスに用いられる処理を実行させるためのサーバプログラムとを、ＨＤＤ等の記憶手段４０１に記憶している。また、リモート発行サーバ４０は、ネットワークを介した通信に用いられる通信インターフェース等の通信手段４０２、およびプログラムを実行するＣＰＵ等の制御手段４０３を有している。制御手段４０３がサーバプログラムを実行し、記憶手段４０１や通信手段４０２を制御することにより、リモート発行サーバ４０は、携帯電話機１０からの要求に応じて、サービスの登録や認証などの処理を行う機能を有する。
【００３４】
１−５．サービスサーバ５０
図１０は、サービスサーバ５０の構成を示す図である。サービスサーバ５０は、電子マネーサービスを提供する事業者であるＢ社が管理、運営するサーバである。サービスサーバ５０は、サービスに関する情報を提供するためのＨＴＭＬデータと、電子マネーサービスに用いられる各種のスクリプト（残高表示スクリプト、決済スクリプト、チャージスクリプトおよび削除スクリプト）と、サーバとして機能させるためのサーバプログラムとを、ＨＤＤ等の記憶手段５０１に記憶している。これらのスクリプトの詳細は後述する。また、サービスサーバ５０は、ネットワークを介した通信に用いられる通信インターフェース等の通信手段５０２、およびプログラムを実行するＣＰＵ等の制御手段５０３を有している。制御手段がサーバプログラムを実行し、記憶手段５０１や通信手段５０２を制御することにより、サービスサーバ５０は、携帯電話機１０からの要求に応じてＨＴＭＬデータやスクリプトを送信する機能を有する。
【００３５】
１−６．サービスサーバ６０
図１１は、サービスサーバ６０の構成を示す図である。サービスサーバ６０は、電子マネーサービスを提供する事業者ではない、第三者であるＣ社が管理、運営するサーバである。Ｃ社は、サービスサーバ６０を用いてショッピングサイトを運営しており、通信販売事業を行っている。サービスサーバ６０は、商品および商品の属性（名前、数量、単価、画像など）を記録した商品データベースと、ユーザが有するポイントを記録したポイントデータベースと、ショッピングに関する情報を提供するためのＨＴＭＬデータと、サーバとして機能するためのサーバプログラムとを、ＨＤＤ等の記憶手段６０１に記憶している。また、サービスサーバ６０は、ネットワークを介した通信に用いられる通信インターフェース等の通信手段６０２、およびプログラムを実行するＣＰＵ等の制御手段６０３を有している。制御手段６０３がサーバプログラムを実行し、記憶手段６０１や通信手段６０２を制御することにより、サービスサーバ６０は、携帯電話機１０からの要求に応じてＨＴＭＬデータを送信し、商品の購入に関する処理を行う機能を有する。サービスサーバ６０により提供されるＨＴＭＬデータは、サービスサーバ３０またはサービスサーバ５０により提供されるスクリプトのリンクを含んでいる。すなわち、このＨＴＭＬデータを介してサービスサーバ３０またはサービスサーバ５０により提供されるスクリプトを呼び出すことができる。
【００３６】
２．動作
２−１．スクリプト
携帯電話機１０は、ブラウザ１３０上から（より詳細には、スクリプト処理エンジン１３１の機能により）スクリプトを実行する機能を有する。この例で、スクリプトは、オブジェクト指向プログラミング言語であるＪａｖａ（登録商標）スクリプトで記述されている。ここで、ブラウザ上から実行されるスクリプトは、ＩＣカード５００にアクセスするスクリプトを含む。「ＩＣカード５００にアクセスする」とは、ＩＣカード５００のメモリ５０４に記憶領域を設定すること、設定された記憶領域からデータの読み出しをすること、記憶領域にデータの書き込みをすること、または記憶領域に記憶されているデータを消去することをいう。ＩＣカード５００にアクセスするスクリプトは、新規登録を行うためのスクリプト（以下「登録スクリプト」という）、データの読み出しを行うためのスクリプト（以下「読み出しスクリプト」という）、データの書き込みを行うためのスクリプト（以下「書き込みスクリプト」という）、および登録されているデータを削除するためのスクリプト（以下「削除スクリプト」という）に大別される。
【００３７】
２−１−１．登録スクリプト
登録スクリプトは、ＩＣカード５００のメモリ５０４内に新たな記憶領域を設定し、設定した記憶領域に初期データを書き込むためのスクリプトである。登録スクリプトは、電子マネーや電子チケットを「発券」する際に用いられる。
【００３８】
図１２は、登録スクリプトによる処理を示すシーケンス図である。以下、必要に応じて「ブラウザ」や「メーラ」、「スクリプト処理エンジン」、「ＡＰＩ」、「スクリプト」、「ＯＳ」などのソフトウェアを処理の主体として説明をするが、これらの記載は、ソフトウェアに含まれる命令を実行しているＣＰＵ１０２が、ＲＡＭ１０４、表示部１０７、通信部１０８などのハードウェア資源と協働して処理を行うことを意味する。例えば、「ブラウザがＨＴＭＬデータに従ってページを表示する」と記載した場合、ブラウザプログラムを実行しているＣＰＵ１０２が、ＨＴＭＬデータを解釈し、ＨＴＭＬデータに応じたページ（画像）を表示部１０７に表示させることを意味する。あるいは、「ＡＰＩがブラウザにデータを引き渡す」と記載した場合、ＡＰＩを実行しているＣＰＵ１０２が、データを所定の記憶領域に記憶した後、ブラウザを実行し、この記憶領域からデータを読み出すことを意味する。さらにあるいは、「メーラが電子メールメッセージを表示する」と記載した場合、電子メールプログラムを実行しているＣＰＵ１０２が、電子メールのデータを解釈し、電子メールの内容を示す画像を表示部１０７に表示させることを意味する。図１２において、ブラウザ１３０とスクリプト処理エンジン１３１とはそれぞれ別に記載されているが、既に説明したようにスクリプト処理エンジン１３１はブラウザ１３０の機能の一部である。
【００３９】
ステップＳ１００において、ブラウザ１３０は、登録スクリプトを読み込む。すなわち、ブラウザ１３０は、サービスサーバ３０に対し、登録スクリプトの送信を要求する。携帯電話機１０から登録スクリプトの送信の要求を受信すると、サービスサーバ３０は、登録スクリプトを携帯電話機１０に送信する（ステップＳ１０１）。ブラウザ１３０は、読み込んだ登録スクリプトを、スクリプト処理エンジン１３１に渡す（ステップＳ１０２）。
【００４０】
図１３は、登録スクリプトの読み込みを指示するＨＴＭＬデータの具体例を例示する図である。この例で、スクリプトは、ＨＴＭＬのｏｂｊｅｃｔタグを用いて、外部リンクとして呼び出される。単一のページのＨＴＭＬに、Ａ社の残高表示スクリプトおよびＢ社の残高表示スクリプトの２つのリンクが含まれていれば、これらのスクリプトは所定のルール（例えば、ＨＴＭＬに記述されている順番）により順番に呼び出される。以下、再び図１２を参照して説明する。
【００４１】
登録スクリプトを受け取ると、スクリプト処理エンジン１３１は、スクリプトに記述された命令に従って処理を行う。ステップＳ１０３において、スクリプト処理エンジン１３１は、リモート発行サーバ４０に対し、発券要求を送信する。具体的には以下のとおりである。登録スクリプトは、ＡＰＩ群１３２の中からサーバ通信開始用ＡＰＩを呼び出すための命令群を含んでいる。ＣＰＵ１０２がこれらの命令群を実行することにより、サーバ通信開始用ＡＰＩが起動される。サーバ通信用ＡＰＩはクライアントソフトウェア１２１を呼び出す。クライアントソフトウェア１２１は、通信部１０８を介してリモート発行サーバ４０と通信を行う。すなわち、クライアントソフトウェア１２１は、リモート発行サーバ４０に発券要求を送信する。発券要求は、リモート発行サーバ４０における処理に用いられる情報、例えばＡ社のサービスを特定する識別子およびユーザの属性を示す情報（以下「ユーザ情報」という）を含む。なお図１２においては、登録スクリプトから呼び出されるＡＰＩやデバイスドライバ等の処理も、登録スクリプトを実行するスクリプト処理エンジン１３１の処理として記載している。他の図においても同様である。
【００４２】
発券要求を受信すると、リモート発行サーバ４０は、発券処理に用いられる情報（以下「発券情報」という）を生成する（ステップＳ１０４）。発券情報は、例えば、サービスおよびユーザを特定するための識別子、およびＩＣカード５００に書き込まれる初期データを含む。発券情報を生成すると、リモート発行サーバ４０は、生成した発券情報および対応するユーザ情報を記憶する。リモート発行サーバ４０は、発券情報を携帯電話機１０に送信する（ステップＳ１０５）。携帯電話機１０のクライアントソフトウェア１２１は、発券情報を受信し、受信した発券情報をスクリプト処理エンジン１３１に引き渡す。
【００４３】
ステップＳ１０６において、スクリプト処理エンジン１３１は、発券情報を用いて発券処理を行う。すなわち、登録スクリプトを実行しているＣＰＵ１０２は、ＩＣカード５００のメモリ５０４にＡ社のサービス用の領域を設定し、設定した領域に、Ａ社のサービスを特定する識別子および携帯電話機１０を特定する識別子を書き込む命令を、ＩＣチップ５０２に送信する。ＩＣチップ５０２のプロセッサ５０３は、ＣＰＵ１０２からの命令を受けて、メモリ５０４にＡ社のサービス用の領域を設定し、設定した領域に、Ａ社のサービスを特定する識別子および携帯電話機１０を特定する識別子を書き込む。さらに、プロセッサ５０３は、ＣＰＵ１０２からの命令を受けて、メモリ５０４にＡ社のサービス用のデータ（以下このデータを「サービスデータ」という）の初期値を書き込む。いまＡ社のサービスが電子マネーである場合を例にとると、サービスデータは、電子マネーの残高のデータである。あるいは別の例で、このサービスがポイントカードである場合にはサービスデータはポイントの残高であり、このサービスが入場券や乗車券等のチケット発券サービスであればサービスデータはチケットを特定する情報（日付や座席等）である。
【００４４】
発券処理が完了すると、スクリプト処理エンジン１３１は、発券が完了した旨の通知をリモート発行サーバ４０に送信する（ステップＳ１０７）。この通知は、発券されたサービスおよび携帯電話機１０を特定する識別子を含んでいる。
【００４５】
さらに、スクリプト処理エンジン１３１は、サービスの登録に用いられる情報、この例ではユーザ情報、Ａ社のサービスを特定する識別子および携帯電話機１０を特定する識別子をサービスサーバ３０に送信する（ステップＳ１０８）。サービスサーバ３０は、携帯電話機１０から受信した情報を記憶（登録）する（ステップＳ１０９）。情報の登録が完了すると、サービスサーバ３０は、登録が完了した旨の通知を携帯電話機１０に送信する（ステップＳ１１０）。この通知は、登録された情報を表示するためのＨＴＭＬデータを含んでいる。この通知を受信すると、スクリプト処理エンジン１３１は、通知に含まれるＨＴＭＬデータをブラウザ１３０に引き渡し（ステップＳ１１１）、登録スクリプトによる処理を終了する。ブラウザ１３０は、取得したＨＴＭＬデータに従った情報を表示する。上記のステップＳ１０３、Ｓ１０６、Ｓ１０７、Ｓ１０８およびＳ１１１の処理は、登録スクリプトに記述された命令に従ってスクリプト処理エンジン１３１が行う処理である。
【００４６】
２−１−２．読み出しスクリプト
図１４は、読み出しスクリプトによる処理を示すシーケンス図である。読み出しスクリプトは、ＩＣカード５００のメモリ５０４内に既に設定されている記憶領域から、データを読み出すためのスクリプトである。読み出しスクリプトの具体例としては、電子マネーやポイントカードの残高を表示するための「残高表示スクリプト」や電子チケットの内容を確認するための「内容表示スクリプト」などがある。
【００４７】
読み出しスクリプトは、サービスデータを読み出すデータ読み出し用ＡＰＩを呼び出すための命令群を含んでいる。ＣＰＵ１０２がこれらの命令群を実行することにより、データ読み出し用ＡＰＩが実行される。
【００４８】
ステップＳ２００において、ブラウザ１３０は、読み出しスクリプトを読み込む。すなわち、ブラウザ１３０は、サービスサーバ３０に対し、読み出しスクリプトの送信を要求する。携帯電話機１０から読み出しスクリプトの送信の要求を受信すると、サービスサーバ３０は、読み出しスクリプトを携帯電話機１０に送信する（ステップＳ２０１）。ブラウザ１３０は、読み込んだ読み出しスクリプトを、スクリプト処理エンジン１３１に渡す（ステップＳ２０２）。
【００４９】
読み出しスクリプトを受け取ると、スクリプト処理エンジン１３１は、スクリプトに記述された命令に従って処理を行う。ステップＳ２０３において、スクリプト処理エンジンは、Ａ社のサービスを特定する識別子（以下「サービスＩＤ」という）を読み出し用ＡＰＩに引き渡す（すなわち、サービスを特定する）。サービスＩＤは、スクリプト自身、スクリプトのファイル名またはＨＴＭＬタグに含まれている。データ読み出し用ＡＰＩは、このサービスＩＤに対応する記憶領域から読み出したサービスデータを引き渡す要求を、ＩＣカード５００のＩＣチップ５０２に送信する。この要求は、Ａ社のサービスＩＤを含んでいる。
【００５０】
ステップＳ２０４において、スクリプト処理エンジン１３１は、ＩＣチップ５０２からサービスデータを読み出す。具体的には以下のとおりである。データ読み出し用ＡＰＩからデータ引き渡しの要求を受けると、ＩＣチップ５０２のプロセッサ５０３は、メモリ５０４のうち、要求に含まれるサービスＩＤに対応する記憶領域からサービスデータ（この例では電子マネー残高）を読み出し、読み出したサービスデータをデータ読み出し用ＡＰＩに引き渡す。データ読み出し用ＡＰＩは、取得したサービスデータをスクリプト処理エンジン１３１に引き渡す。
【００５１】
ステップＳ２０５において、スクリプト処理エンジン１３１は、取得したサービスデータをブラウザ１３０に引き渡し、読み出しスクリプトの処理を終了する。ブラウザ１３０は、取得したサービスデータに基づいた情報を表示する。上記のステップＳ２０３−Ｓ２０５の処理は、読み出しスクリプトに記述された命令に従ってスクリプト処理エンジン１３１が行う処理である。
【００５２】
２−１−３．書き込みスクリプト
図１５は、書き込みスクリプトによる処理を示すシーケンス図である。書き込みスクリプトは、ＩＣカード５００のメモリ５０４内に既に設定されている記憶領域に、データを書き込むため、または既に記憶されているデータを書き換えるためのスクリプトである。書き込みスクリプトの具体例としては、電子マネーやポイントカードの「チャージ」（残高を増やす処理）を行うためのチャージスクリプト、電子マネーやポイントカードの「決済」や「ポイント使用」（残高を減らす処理）を行うための決済スクリプトがある。
【００５３】
ステップＳ３００において、ブラウザ１３０は、書き込みスクリプトを読み込む。すなわち、ブラウザ１３０は、サービスサーバ３０に対し、書き込みスクリプトの送信を要求する。携帯電話機１０から書き込みスクリプトの送信の要求を受信すると、サービスサーバ３０は、書き込みスクリプトを携帯電話機１０に送信する（ステップＳ３０１）。ブラウザ１３０は、読み込んだ書き込みスクリプトを、スクリプト処理エンジン１３１に渡す（ステップＳ３０２）。
【００５４】
ステップＳ３０３において、スクリプト処理エンジン１３１は、データ書き込み用ＡＰＩを呼び出し、Ａ社のサービスＩＤ、および書き込むべき対象データ（例えば、決済する金額やチャージする金額を示すデータ）をデータ書き込み用ＡＰＩに引き渡す。データ書き込み用ＡＰＩは、このサービスＩＤに対応する記憶領域に、対象データを書き込む要求を、ＩＣカード５００のＩＣチップ５０２に送信する。この要求は、Ａ社のサービスを特定する識別子および対象データを含んでいる。
【００５５】
データの書き込み要求を受けると、ＩＣチップ５０２のプロセッサ５０３は、その書き込み要求があらかじめ決められた制約条件を満たしているか判断する（ステップＳ３０４）。制約条件は、例えば、書き込み要求が「決済」や「ポイント使用」のようにサービスデータにより示される残高を減少させる処理の場合には、サービスデータから減算しようとする値（決済の額や使用するポイント）が、サービスデータの残高以下であるという条件である。あるいは、制約条件は、書き込み要求が「チャージ」のようにサービスデータにより示される残高を増加させる処理の場合には、処理後の残高があらかじめ決められた上限値以下であるという条件である。なお、書き込み要求の種類によっては、制約条件を満たしているかどうかの判定処理を行わなくてもよい。
【００５６】
書き込み要求が制約条件を満たしていると判断された場合（Ｓ３０４：ＹＥＳ）、プロセッサ５０３は、処理をステップＳ３０５に移行する。書き込み要求が制約条件を満たしていないと判断された場合（Ｓ３０４：ＮＯ）、プロセッサ５０３は、その旨を示すエラーメッセージを、データ書き込み用ＡＰＩを介してスクリプト処理エンジン１３１に送信する。エラーメッセージを受信すると、スクリプト処理エンジン１３１は、エラーが発生した旨をブラウザ１３０に通知し（ステップＳ３１２）、処理を終了する。
【００５７】
ステップＳ３０５において、プロセッサ５０３は、リモート発行サーバ４０に、データの書き込み要求を送信する。具体的には以下のとおりである。プロセッサ５０３は、サーバ通信用ＡＰＩを呼び出す。サーバ通信用ＡＰＩはクライアントソフトウェア１２１を呼び出す。クライアントソフトウェア１２１は、通信部１０８を介してリモート発行サーバ４０と通信を行う。すなわち、クライアントソフトウェア１２１は、リモート発行サーバ４０にデータの書き込み要求を送信する。書き込み要求は、リモート発行サーバ４０における認証に用いられる情報、例えばＡ社のサービスＩＤおよび携帯電話機１０の識別子を含む。
【００５８】
携帯電話機１０からデータの書き込み要求を受信すると、リモート発行サーバ４０は、受信した書き込み要求の認証を行う（ステップＳ３０６）。認証には、後述する暗号化技術および電子署名技術が用いられる。あるいは、認証に、Ａ社のサービスＩＤおよび携帯電話機１０の識別子などの情報が用いられてもよい。認証処理を行うと、リモート発行サーバ４０は、認証の結果を携帯電話機１０に送信する（ステップＳ３０７）。
【００５９】
ＩＣチップ５０２のプロセッサ５０３は（サーバ通信用ＡＰＩおよびクライアントソフトウェア１２１を介して）、リモート発行サーバ４０から認証の結果を受信する。プロセッサ５０３は、認証結果に応じて、次に行う処理を決定する（ステップＳ３０８）。認証が成功した場合（ステップＳ３０８：ＹＥＳ）、プロセッサ５０３は、対象データを、メモリ５０４内のＡ社のサービスに対応する記憶領域に書き込む（ステップＳ３０９）。対象データを記憶領域に書き込むと、プロセッサ５０３は、書き込みが完了した旨の通知をスクリプト処理エンジン１３１に送信する（ステップＳ３１０）。書き込みが完了した旨の通知を受信すると、スクリプト処理エンジン１３１は、書き込みが完了した旨をブラウザ１３０に通知し（ステップＳ３１１）、書き込みスクリプトによる処理を終了する。
【００６０】
認証が失敗した場合（ステップＳ３０８：ＮＯ）、プロセッサ５０３は、対象データをメモリ５０４に書き込まず、認証が失敗した旨の通知をスクリプト処理エンジン１３１に送信する。認証が失敗した旨の通知を受信すると、スクリプト処理エンジン１３１は、認証が失敗した旨をブラウザ１３０に通知し（ステップＳ３１３）、書き込みスクリプトによる処理を終了する。上記のステップＳ３０３、Ｓ３１１、Ｓ３１２およびＳ３１３の処理は、書き込みスクリプトに記述された命令に従ってスクリプト処理エンジン１３１が行う処理である。
【００６１】
２−１−４．削除スクリプト
削除スクリプトは、ＩＣカード５００のメモリ５０４内に設定されている記憶領域内のデータを削除し、その記憶領域に対応するサービスをＩＣカード５００から削除するためのスクリプトである。削除スクリプトは、電子マネーや電子チケットを「削除」する際に用いられる。
【００６２】
図１６は、削除スクリプトによる処理を示すシーケンス図である。ステップＳ４００において、ブラウザ１３０は、削除スクリプトを読み込む。すなわち、ブラウザ１３０は、サービスサーバ３０に対し、削除スクリプトの送信を要求する。携帯電話機１０から削除スクリプトの送信の要求を受信すると、サービスサーバ３０は、削除スクリプトを携帯電話機１０に送信する（ステップＳ４０１）。ブラウザ１３０は、読み込んだ削除スクリプトを、スクリプト処理エンジン１３１に渡す（ステップＳ４０２）。
【００６３】
削除スクリプトを受け取ると、スクリプト処理エンジン１３１は、スクリプトに記述された命令に従って処理を行う。ステップＳ４０３において、スクリプト処理エンジン１３１は、リモート発行サーバ４０に対し、削除要求を送信する。削除要求は、リモート発行サーバ４０における処理に用いられる情報、例えばＡ社のサービスＩＤおよびユーザ情報を含む。
【００６４】
削除要求を受信すると、リモート発行サーバ４０は、削除処理に用いられる情報（以下「削除情報」という）を生成する（ステップＳ４０４）。削除情報は、例えば、削除すべきサービスおよびユーザを特定する識別子を含む。削除情報を生成すると、リモート発行サーバ４０は、記憶していたユーザ情報を、ＨＤＤ等の記憶手段から削除する。リモート発行サーバ４０は、削除情報を携帯電話機１０に送信する（ステップＳ４０５）。携帯電話機１０のクライアントソフトウェア１２１は、削除情報を受信し、受信した削除情報をスクリプト処理エンジン１３１に引き渡す。
【００６５】
ステップＳ４０６において、スクリプト処理エンジン１３１は、削除情報を用いて削除処理を行う。すなわち、削除スクリプトを実行しているＣＰＵ１０２は、ＩＣカード５００のメモリ５０４に設定されているＡ社のサービス用の領域を削除する命令を、ＩＣチップ５０２に送信する。ＩＣチップ５０２のプロセッサ５０３は、ＣＰＵ１０２からの命令を受けて、メモリ５０４に設定されているＡ社のサービス用の領域に記憶されているすべてのデータを消去（削除）する。
【００６６】
削除処理が完了すると、スクリプト処理エンジン１３１は、削除が完了した旨の通知をリモート発行サーバ４０に送信する（ステップＳ４０７）。この通知は、削除されたサービスおよび携帯電話機１０を特定する識別子を含んでいる。
【００６７】
さらに、スクリプト処理エンジン１３１は、削除されたサービスを特定する情報、この例ではユーザ情報、Ａ社のサービスＩＤおよび携帯電話機１０を特定する識別子をサービスサーバ３０に送信する（ステップＳ４０８）。サービスサーバ３０は、携帯電話機１０から受信した情報を用いて、ＨＤＤ等の記憶手段に記憶されているデータを削除する（ステップＳ４０９）。情報の削除が完了すると、サービスサーバ３０は、削除が完了した旨の通知を携帯電話機１０に送信する（ステップＳ４１０）。この通知は、サービスが削除された旨を表示するためのＨＴＭＬデータを含んでいる。この通知を受信すると、スクリプト処理エンジン１３１は、通知に含まれるＨＴＭＬデータをブラウザ１３０に引き渡し（ステップＳ４１１）、削除スクリプトによる処理を終了する。ブラウザ１３０は、取得したＨＴＭＬデータに従った情報を表示する。上記のステップＳ４０３、Ｓ４０６、Ｓ４０７、Ｓ４０８およびＳ４１１の処理は、削除スクリプトに記述された命令に従ってスクリプト処理エンジン１３１が行う処理である。
【００６８】
２−２．ＩＣカード一覧
２−２−１．ＩＣカード一覧の概要
この例で、携帯電話機１０において、ＩＣカード５００に登録されているサービスは、ＩＣカード一覧を用いて管理される。
【００６９】
図１７は、ＩＣカード一覧を例示する図である。ＩＣカード一覧は、記憶部１０５に記憶されている。この例で、ＩＣカード一覧は、「領域ＩＤ」、「サービスＩＤ」、「起動モード」、「ＵＲＬ」、および「発券済み」のレコードを含む。「領域ＩＤ」は、メモリ５０４内の記憶領域を特定する識別子である。「サービスＩＤ」は、その記憶領域に登録されているサービスを特定する識別子である。「起動モード」は、その記憶領域に対してアクセス可能な（アクセスが認められている）ソフトウェアがスクリプトおよび専用アプリのいずれであるかを示す識別子である。この例では、識別子「アプリ」は専用のアプリケーションプログラムによるアクセスが可能であること（以下この状態を「アプリモード」という）を、識別子「ブラウザ」はスクリプトによりアクセスが可能であること（以下この状態を「ブラウザモード」という）を示している。アプリモードおよびブラウザモードを総称して「起動モード」という。「ＵＲＬ」は、アクセス可能なソフトウェアがスクリプトである場合に、そのスクリプトの所在を示す情報である。「発券済み」は、対応するサービスについて発券が完了しているか否かを示すフラグである。フラグ「済」は発券が完了していることを示す。フラグ「未済」は発券が完了していないことを示す。
【００７０】
この例で、領域ＩＤ「０００１」で特定される記憶領域には、サービスＩＤ「Ａ社マネー」で特定されるサービスに関するデータが記憶されている。また、Ａ社マネーの起動モードはアプリモードであることが示されている。領域ＩＤ「０００２」で特定される記憶領域には、サービスＩＤ「Ｂ社マネー」で特定されるサービスに関するデータが記憶されている。また、Ｂ社マネーの起動モードはブラウザモードであることが示されている。さらに、このスクリプトの所在が「http://www.b-money.com/」であることが示されている。なおこの例で、ブラウザモードのサービスについては、発券済みと未発券の区別はなく、レコードは空欄になっている。
【００７１】
図１８は、ＩＣカード一覧に従って表示部１０７に表示される画面を例示する図である。図１８は、図１７のＩＣカード一覧に従って表示される画面を示している。文字列６０１、６０２、６０３および６０４は、サービスＩＤを示す文字列である。アイコン６０５は、起動モードがアプリモードであることを示す画像である。アイコン６０６は、起動モードがブラウザモードであることを示す画像である。アイコン６０７は、対応するサービスが発券済みであることを示す画像である。アイコン６０８は、対応するサービスが未発券であることを示す画像である。図１８に示される画像の表示は、一覧管理プログラムによって行われる。この例で、ブラウザモードに発券済みと未発券の区別はないが、便宜上アイコン６０７が表示されている。アプリモードのサービスについては、発券済みと未発券が区別されるので、発券状態に応じたアイコンが表示される。
【００７２】
２−２−２．ＩＣカード一覧への登録（ブラウザモード）
図１９は、ＩＣカード一覧への新たなサービス（ブラウザモード）の登録処理を示すシーケンス図である。この例で、ＩＣカード一覧への新たなサービスの登録は、図１２のステップＳ１０６の発券処理に伴って行われる。この例で、図１２のステップＳ１０１でダウンロードされる登録スクリプトは、ＩＣカード一覧にサービスを登録するためのデータ、例えば、領域ＩＤ、サービスＩＤおよびＵＲＬを含む。
【００７３】
ステップＳ５０１において、スクリプト処理エンジン１３１は、リモート発行サーバ４０から発券情報を取得する。発券情報を取得すると、スクリプト処理エンジン１３１は、ＩＣカード５００に対し発券を指示する（ステップＳ５０２）。スクリプト処理エンジン１３１から指示を受けると、ＩＣカード５００のプロセッサ５０３は、メモリ５０４に領域を設定し、設定した領域に初期データを書き込む（ステップＳ５０３）。初期データの書き込みが完了すると、プロセッサ５０３は、その旨をスクリプト処理エンジン１３１に通知する。
【００７４】
発券処理が完了すると、スクリプト処理エンジン１３１は、ＩＣカード一覧へのサービスの登録を一覧管理プログラム１５０に指示する（ステップＳ５０４）。スクリプト処理エンジン１３１から一覧管理プログラム１５０への指示は、ＩＣカード一覧への登録に用いられる情報、この例では、領域ＩＤ、サービスＩＤおよびＵＲＬを含む。
【００７５】
スクリプト処理エンジン１３１からサービスの登録を指示されると、一覧管理プログラム１５０は、指示に含まれる情報を用いて、ＩＣカード一覧を更新する（ステップＳ５０５）。サービスが新規に登録される場合、一覧管理プログラム１５０は、ステップＳ５０４の指示に含まれる領域ＩＤを含むレコードをＩＣカード一覧内に新たに作成し、このレコードにサービスＩＤを登録する。この例では、「起動モード」は「ブラウザ」に設定される。ＩＣカード一覧の更新が完了すると、一覧管理プログラム１５０は、ＩＣカード一覧の更新が完了したことをスクリプト処理エンジン１３１に通知する（ステップＳ５０６）。一覧管理プログラム１５０から更新の完了を通知されると、スクリプト処理エンジン１３１は、発券処理が完了したことをリモート発行サーバ４０に通知する（ステップＳ５０７）。この処理は、図１２のステップＳ１０７の処理に相当する。上記のステップＳ５０１−Ｓ５０６の処理が、図１２のステップＳ１０６の処理に伴って行われる。この後、図１２に示される処理が行われる。
【００７６】
２−２−３．ＩＣカード一覧への登録（アプリモード）
図２０は、ＩＣカード一覧への新たなサービス（アプリモード）の登録処理を示すシーケンス図である。この例で、ＩＣカード一覧への新たなサービスの登録は、専用アプリ１４０のインストールに伴って行われる。
【００７７】
所定のイベント（例えば、ブラウザが表示している画面上で、アプリモードのサービスの新規登録を開始させるボタンが押されるというイベント）が発生すると、ブラウザ１３０は、ネットワーク７０に接続されたサーバから専用アプリ１４０をダウンロードする（ステップＳ６０１）。
【００７８】
この例で、専用アプリ１４０のインストールには、ＡＤＦ（Application Descriptor File）、ＳＤＦ（Security Descriptor File）およびＪａｒ（Java ARchive）ファイルの３つのファイルが用いられる。ＡＤＦは、アプリケーションプログラムの属性を定義するファイルである。ＡＤＦは、ＳＤＦのＵＲＬおよびＪａｒファイルを特定する情報を含んでいる。ＳＤＦは、Ｊａｒファイルを特定する情報を含むファイルである。Ｊａｒファイルは、アプリケーションプログラムの実体ファイルである。ステップＳ６０１においては、ＡＤＦがダウンロードされる。ＡＤＦをダウンロードすると、ブラウザ１３０は、このＡＤＦを用いた専用アプリ１４０のインストールをＪＡＭ１１９に指示する。指示を受けると、ＪＡＭ１１９は、ＡＤＦを用いて専用アプリ１４０をインストールする。
【００７９】
ステップＳ６０２における専用アプリ１４０のインストールは、例えば以下のように行われる。ＪＡＭ１１９は、取得されたＡＤＦに記述されたＵＲＬで特定されるリソースから、ＳＤＦを取得する。ＪＡＭ１１９は、ＡＤＦに記述された情報で特定されるＪａｒファイルおよびＳＤＦに記述された情報で特定されるＪａｒファイルが同一であることを確認する。ＡＤＦおよびＳＤＦにより特定されるＪａｒファイルが同一であると確認されると、ＪＡＭ１１９は、Ｊａｒファイルを取得する。ＪａｒファイルのＵＲＬは、ＡＤＦに記述されている。
【００８０】
Ｊａｒファイルを取得すると、ＪＡＭ１１９は、専用アプリ１４０をインストールする。インストールとは、アプリケーションプログラムの起動に用いられる情報およびアプリケーションプログラムの実体ファイルを、記憶部１０５に記憶することをいう。
【００８１】
インストールが完了すると、ＪＡＭ１１９は、一覧管理プログラム１５０に対し、ＩＣカード一覧へのサービスの登録を指示する（ステップＳ６０３）。ＪＡＭ１１９から一覧管理プログラム１５０への指示は、ＩＣカード一覧への登録に用いられる情報、この例では、領域ＩＤおよびサービスＩＤを含む。
【００８２】
ＪＡＭ１１９からサービスの登録を指示されると、一覧管理プログラム１５０は、指示に含まれる情報を用いて、ＩＣカード一覧を更新する（ステップＳ６０４）。サービスが新規に登録される場合、一覧管理プログラム１５０は、ステップＳ６０３の指示に含まれる領域ＩＤを含むレコードをＩＣカード一覧内に新たに作成し、このレコードにサービスＩＤを登録する。この例では、「起動モード」は「アプリ」に設定される。また、この時点では、「発券済み」フラグは「未済」に設定される。ＩＣカード一覧の更新が完了すると、一覧管理プログラム１５０は、ＩＣカード一覧の更新が完了したことをＪＡＭ１１９に通知する（ステップＳ６０５）。
【００８３】
ＩＣカード一覧の更新完了を通知されると、ＪＡＭ１１９は、発券処理を行うために専用アプリ１４０を起動する（ステップＳ６０６）。あるいは、専用アプリ１４０は、ユーザにより手動で起動されてもよい。この場合は、ＪＡＭ１１９またはＯＳ１１１が、ユーザに専用アプリ１４０の起動を促す表示をする。起動されると、専用アプリ１４０は、発券処理を行う。発券処理の主体がスクリプト処理エンジン１３１ではなく専用アプリ１４０であるが、発券処理の内容は図１２のステップＳ１０３−Ｓ１０６で説明したものと同様である。すなわち、専用アプリ１４０は、リモート発行サーバ１４０と通信し、発券情報を取得する（ステップＳ６０７）。発券情報を取得すると、専用アプリ１４０は、ＩＣカード５００に対し、発券の指示をする（ステップＳ６０８）。発券の指示を受けると、ＩＣカード５００のプロセッサ５０３は、メモリ５０４に領域を設定し、初期データを書き込む（ステップＳ６０９）。
【００８４】
発券処理が完了すると、専用アプリ１４０は、発券処理が完了したことを一覧管理プログラム１５０に通知する。専用アプリ１４０から一覧管理プログラム１５０への通知は、ＩＣカード一覧への登録に用いられる情報、この例では、領域ＩＤおよびサービスＩＤを含む。
【００８５】
専用アプリ１４０から発券処理の完了を通知されると、一覧管理プログラム１５０は、通知に含まれる情報を用いて、ＩＣカード一覧を更新する（ステップＳ６１０）。ここでは、フラグ「発券済み」の値が「済」に設定される。ＩＣカード一覧の更新が完了すると、一覧管理プログラム１５０は、ＩＣカード一覧の更新が完了したことを専用アプリ１４０に通知する（ステップＳ６１１）。一覧管理プログラム１５０から更新の完了を通知されると、専用アプリ１４０は、発券処理が完了したことをリモート発行サーバ４０に通知する（ステップＳ６１２）。以下、専用アプリ１４０の動作に従った処理が行われる。
【００８６】
２−２−４．ブラウザモードからアプリモードへの切り替え
図２１は、ブラウザモードからアプリモードへの切り替え処理を示す図である。ここでは、Ｂ社のサービスがブラウザモードからアプリモードに切り替えられる場合を例に説明する。ブラウザモードからアプリモードへの切り替えは、切り替えをトリガするＨＴＭＬデータをブラウザ１３０が受信したことを契機として行われる。詳細には以下のとおりである。
【００８７】
ステップＳ７０１において、ブラウザ１３０は、サービスサーバ５０（Ｂ社のサービスサーバ）からＨＴＭＬデータを受信する。このＨＴＭＬデータは、アプリモードへの切り替えをトリガする情報、例えば、Ｂ社の専用アプリ（以下「専用アプリ１４０Ｂ」という）をダウンロードさせる命令へのリンクを含んでいる。このリンクは、ダウンロードしようとするアプリケーションプログラムがＩＣカード５００にアクセスするためのアプリケーションプログラムであることを示す識別子を含んでいる。この識別子は、例えばアプリケーションプログラムのファイル名に含まれている。あるいは、この識別子は、リンクのＨＴＭＬタグに含まれていてもよい。さらにあるいは、この識別子は、ＡＤＦまたはＳＤＦに含まれていてもよい。
【００８８】
専用アプリ１４０Ｂのダウンロードを要求されると、ブラウザ１３０は、一覧管理プログラム１５０にその旨を通知する（ステップＳ７０２）。ブラウザ１３０から通知を受けると、一覧管理プログラム１５０は、ダウンロードしようとする専用アプリに対応するサービスが、ブラウザモードおよびアプリモードのいずれかで既にＩＣカード一覧に登録されているか確認する（ステップＳ７０３）。すなわち、一覧管理プログラム１５０は、記憶部１０５からＩＣカード一覧を読み出し、さらに、読み出したＩＣカード一覧の中に、専用アプリ１４０Ｂに対応するサービスＩＤ（この例では「Ｂ社マネー」）が既に登録されているか判断する。
【００８９】
ダウンロードしようとする専用アプリのサービスＩＤは、例えば、リンク、ファイル名またはＨＴＭＬタグに含まれている。あるいは、サービスＩＤは、ＡＤＦまたはＳＤＦに含まれていてもよい。この場合、ブラウザ１３０は、ステップＳ７０３の判断に先立ち、ＡＤＦまたはＳＤＦをダウンロードする。
【００９０】
ダウンロードしようとする専用アプリに対応するサービスが、ＩＣカード一覧に既にアプリモードで登録されている場合（Ｓ７０３：アプリモード）、一覧管理プログラム１５０は、その旨を表示してダウンロードを中止するよう、ブラウザ１３０に指示をする（ステップＳ７０４）。この指示を受けて、ブラウザ１３０は、サービスが既にアプリモードで登録されている旨を表示し、ダウンロードを中止する（ステップＳ７０５）。こうして、専用アプリ１４０Ｂの二重登録が防止される。ダウンロードが中止されると、ブラウザ１３０またはＯＳ１１１は、専用アプリ１４０Ｂを起動する。
【００９１】
ダウンロードしようとする専用アプリに対応するサービスが、ＩＣカード一覧に既にブラウザモードで登録されている場合（Ｓ７０３：ブラウザモード）、一覧管理プログラム１５０は、ブラウザ１３０に起動モード変更の指示をする（ステップＳ７０６）。この指示を受けて、ブラウザ１３０は、起動モードをアプリモードに切り替える旨の表示をする（ステップＳ７０７）。さらに、ブラウザ１３０は、専用アプリ１４０Ｂをダウンロードする（ステップＳ７０８）。なお、ステップＳ７０７の処理は省略されてもよい。あるいは、ステップＳ７０７において、ブラウザ１３０は、起動モード変更の承認をユーザに要求し、承認された場合に処理をステップＳ７０８に移行してもよい。
【００９２】
ステップＳ７０８において専用アプリ１４０Ｂをダウンロードした後は、図２０のフローと同様に、専用アプリ１４０Ｂのインストールが行われる。ただしこの場合、サービス（この例ではサービスＩＤ「Ｂ社マネー」のサービス）は新規に登録されるわけではなく、既にＩＣカード一覧に登録されている。サービスの新規登録ではない場合、既にＩＣカード５００内に領域が設定され初期データは書き込まれているので、ステップＳ６０５、６０６、６０７、６０８、および６０９の処理は行われない。すなわち、ステップＳ６０３においてＩＣカード一覧への登録を指示されると、一覧管理プログラム１５０は、登録の指示が新規登録によるものか起動モード切り替えによるものか判断する。新規登録の場合、一覧管理プログラム１５０は、既に図２０のフローで説明したとおり動作する。起動モード切り替えの場合、一覧管理プログラムは、ステップＳ６０４においてＩＣカード一覧の起動モードの書き替えを行った後、ステップＳ６０５−Ｓ６０９の処理をスキップし、処理をステップＳ６１０に移行する。
【００９３】
ダウンロードしようとする専用アプリに対応するサービスがＩＣカード一覧にまだ登録されていないと判断された場合（Ｓ７０３：未登録）、一覧管理プログラム１５０は、専用アプリ１４０をダウンロードするようブラウザ１３０に指示をする（ステップＳ７０９）。この指示を受けて、ブラウザ１３０は、専用アプリ１４０Ｂをダウンロードする（ステップＳ７１０）。
【００９４】
ステップＳ７１０において専用アプリ１４０Ｂをダウンロードした後は、図２０のフローに従って専用アプリ１４０Ｂのインストールが行われる。また、インストールに伴って、ＩＣカード一覧へのサービスの新規登録が行われる。なお、ＪＡＭ１１９またはＯＳ１１１は、専用アプリ１４０Ｂのインストールが完了した後、専用アプリ１４０Ｂを起動してもよい。
【００９５】
２−２−５．アプリモードからブラウザモードへの切り替え
図２２は、アプリモードからブラウザモードへの切り替え処理を示す図である。アプリモードからブラウザモードへの切り替えは、切り替えをトリガするＨＴＭＬデータをブラウザ１３０が受信したことを契機として行われる。詳細には以下のとおりである。なお、図２２においては、ブラウザ１３０およびスクリプト処理エンジン１３１による処理をブラウザの処理として記載している。ここでは、Ａ社のサービスがアプリモードからブラウザモードに切り替えられる場合を例に説明する。
【００９６】
ステップＳ８０１において、ブラウザ１３０は、サービスサーバ３０（Ａ社のサービスサーバ）からＨＴＭＬデータを受信する。このＨＴＭＬデータは、ブラウザモードへの切り替えをトリガする情報、例えば、Ａ社のサービスにアクセスするためのスクリプト（以下単に「Ａ社のスクリプト」という）を含んでいる。このＨＴＭＬデータは、起動しようとするスクリプトがＩＣカード５００にアクセスするためのスクリプトであることを示す識別子を含んでいる。この識別子は、例えばスクリプトのファイル名に含まれている。あるいは、この識別子は、リンクのＨＴＭＬタグに含まれていてもよい。さらにあるいは、この識別子は、スクリプト自身に含まれていてもよい。ユーザがこのリンクを選択する操作を行うと、ブラウザ１３０は、この命令に従って、Ａ社のスクリプトを起動するようスクリプト処理エンジン１３１に要求する。Ａ社のスクリプトの起動を要求されると、スクリプト処理エンジン１３１は、起動モードの変更が必要であるか判断するよう一覧管理プログラム１５０に指示をする（ステップＳ８０２）。
【００９７】
スクリプト処理エンジン１３１から指示を受けると、一覧管理プログラム１５０は、起動しようとしているスクリプトに対応するサービスが、ブラウザモードおよびアプリモードのいずれかで既にＩＣカード一覧に登録されているか確認する（ステップＳ８０３）。すなわち、一覧管理プログラム１５０は、記憶部１０５からＩＣカード一覧を読み出し、さらに、読み出したＩＣカード一覧の中に、Ａ社のスクリプトに対応するサービスＩＤ（この例では「Ａ社マネー」）が既に登録されているか判断する。起動しようとするスクリプトのサービスＩＤは、例えば、スクリプト自身、スクリプトのファイル名またはＨＴＭＬタグに含まれている。
【００９８】
起動しようとしているスクリプトに対応するサービスがＩＣカード一覧にまだ登録されていないと判断された場合（Ｓ８０３：未登録）、または起動しようとしているスクリプトに対応するサービスがＩＣカード一覧に既にブラウザモードで登録されている場合（Ｓ８０３：ブラウザモード）、一覧管理プログラム１５０は、スクリプトを実行するようブラウザ１３０に指示をする（ステップＳ８０４）。この指示を受けて、ブラウザ１３０は、スクリプトをスクリプト処理エンジン１３１に引き渡す。以後、スクリプトの種類に応じて図１２のステップＳ１０３以降の処理および図１４、１５、１６のステップＳ２０３、Ｓ３０３、Ｓ４０３以降の処理のいずれかのフローに従ってスクリプトが実行される。また、サービスがＩＣカード一覧にまだ登録されていなかった場合は、図１９のフローに従ってＩＣカード一覧への登録が行われる。なお、ＩＣカード一覧に既にブラウザモードで登録されている場合、登録スクリプトを実行すると二重登録となり不具合を生じる可能性があるので、一覧管理プログラム１５０は、登録スクリプトの実行を禁止してもよい。
【００９９】
起動しようとしているスクリプトに対応するサービスが、ＩＣカード一覧に既にアプリモードで登録されている場合（Ｓ８０３：アプリモード）、一覧管理プログラム１５０は、起動モードを変更するようブラウザ１３０に指示をする（ステップＳ８０５）。この指示を受けて、ブラウザ１３０は、起動モードをブラウザモードに切り替える旨の表示をする（ステップＳ８０６）。また、一覧管理プログラム１５０は、処理をステップＳ８０７に移行する。なお、ブラウザ１３０は、ユーザの指示などに応じて、モード切り替えを拒否してもよい。この場合、ブラウザ１３０は、ステップＳ８０７の処理の前に、一覧管理プログラム１５０に対して、モード切り替えが拒否されたことを通知する。また、ブラウザ１３０（スクリプト処理エンジン１３１）は、可能な範囲でスクリプトを実行する（例えば、登録スクリプトは実行されないが、読み出しスクリプトは実行される）。あるいは、ブラウザ１３０は、スクリプトの実行エラーが発生した旨の表示をしてもよい。
【０１００】
ステップＳ８０７において、一覧管理プログラム１５０は、ＩＣカード一覧を書き替える）。すなわち、一覧管理プログラム１５０は、ＩＣカード一覧において、Ａ社マネーの起動モードを「ブラウザ」に設定し、「ＵＲＬ」のレコードに、Ａ社のスクリプトのＵＲＬを記録する。Ａ社のスクリプトのＵＲＬは、例えば、ステップＳ８０２における指示に含まれている。あるいは、この段階で、一覧管理プログラム１５０がブラウザ１３０からＡ社のスクリプトのＵＲＬを取得してもよい。ＩＣカード一覧を更新すると、一覧管理プログラム１５０は、処理をステップＳ８０４に移行する。以後、既に説明したように、スクリプトの種類に応じて図１２、１４−１６の処理が行われる。
【０１０１】
なお、一覧管理プログラム１５０は、ステップＳ８０７のＩＣカード一覧の書き替えが完了した後で、起動モードがブラウザモードに書き替えられた専用アプリ１４０のアンインストールを、ＪＡＭ１１９に指示をしてもよい。この指示を受けると、ＪＡＭ１１９は、対応する専用アプリ１４０をアンインストールする。
【０１０２】
２−２−６．ＩＣカード一覧からの起動
図２３は、ＩＣカード一覧からブラウザまたはアプリケーションプログラムを起動する処理を示すフローチャートである。ここでは、一覧管理プログラム１５０により、図１８の画面が表示された状態を例として説明する。
【０１０３】
ステップＳ９０１において、一覧管理プログラム１５０は、ユーザの操作に応じて、ＩＣカード一覧の中から一のアイテム（サービス）を選択する。一覧表示アプリは、選択されたアイテムに対応するソフトウェアを起動する。
【０１０４】
ソフトウェアの起動をする際、一覧管理プログラム１５０は、起動しようとするソフトウェアの種類に応じて次の処理を決定する（ステップＳ９０２）。スクリプトの起動が要求されている場合（ステップＳ９０２：スクリプト）、一覧管理プログラム１５０は、処理をステップＳ９０３に移行する。アプリケーションプログラムの起動が要求されている場合（ステップＳ９０２：アプリ）、一覧管理プログラム１５０は、処理をステップＳ９０５に移行する。
【０１０５】
ステップＳ９０３において、一覧管理プログラム１５０は、スクリプトを取得し、取得したスクリプトを実行するようブラウザ１３０に要求する。この要求は、スクリプトのＵＲＬを含んでいる。ブラウザ１３０は、要求に含まれるＵＲＬから、スクリプトを取得する。スクリプト処理エンジン１３１は、取得したスクリプトを起動、実行する（ステップＳ９０４）。
【０１０６】
ステップＳ９０５において、一覧管理プログラム１５０は、要求された専用アプリ１４０を起動、実行する。
【０１０７】
３．セキュリティ
次に、以上で説明したサービスのセキュリティについて説明する。これまで詳しい説明は省略したが、スクリプトによるＩＣカード５００へのアクセスにおいては、暗号化技術が用いられる。
【０１０８】
図２４は、通信システムにおいて用いられる暗号化技術の概要を示す図である。認証局ＣＡは、所定の事業者（例えば携帯電話機１０の回線事業者）により管理および運営される認証局である。認証局ＣＡは、認証局の秘密鍵ＫprCAおよび公開鍵ＫpubCAを発行する。さらに、認証局ＣＡは、携帯電話機１０に対して電子証明書Ｓmを発行する。電子証明書Ｓmは、認証局ＣＡの電子署名および公開鍵ＫpubCAを含んでいる。携帯電話機１０は、電子証明書Dmを記憶している。
【０１０９】
認証局ＣＡは、サービス提供事業者に対して、秘密鍵ＫprCPおよび公開鍵ＫpubCPを発行する。図２４では、サービスサーバ３０を運営するＡ社がサービス提供事業者として例示されている。鍵の発行を受けているサービス提供事業者は、認証局ＣＡに対し、ＩＣカードサービスの利用申請をする。この利用申請は、公開鍵ＫpubCPを含む。認証局ＣＡは、利用申請を受けて、電子証明書ＳCPおよびサービス提供事業者のＩＤを示すＩＤデータを発行する。電子証明書ＳCPは、認証局ＣＡの電子署名および公開鍵ＫpubCPを含んでいる。認証局ＣＡの電子署名は、ハッシュ関数による公開鍵ＫpubCPのメッセージダイジェストを秘密鍵ＫprCAで暗号化したものである。サービスサーバ３０は、秘密鍵ＫprCP、公開鍵公開鍵ＫpubCP、電子証明書ＳCPおよびＩＤデータを記憶する。
【０１１０】
サービスサーバ３０が携帯電話機１０に送信するスクリプトは、実行コード（スクリプト本体）と、電子証明書ＳCPと、ＩＤデータとがパッケージされたものである。スクリプトを受信すると、携帯電話機１０は、パッケージから電子証明書ＳCPを抽出する。携帯電話機１０は、抽出した電子証明書ＳCPに含まれる電子署名を、電子証明書Dmに含まれる公開鍵ＫpubCAで復号化し、メッセージダイジェストを取得する。さらに、携帯電話機１０は、電子証明書Dmに含まれる公開鍵ＫpubCAにハッシュ関数を適用し、メッセージダイジェストを生成する。携帯電話機１０は、生成したメッセージダイジェストと、復号化により取得したメッセージダイジェストとを比較する。両者が一致した場合、携帯電話機１０は、スクリプトが正当なものであると判断し、実行コードを実行する。両者が一致しなかった場合、携帯電話機１０は、スクリプトが不正なものであると判断し、実行コードを実行しない。携帯電話機１０においてこれらの処理は、ソフトウェアにより行われる。
【０１１１】
以上はサービスサーバ３０から受信したスクリプトの正当性を確認する技術であるが、ＩＣカード５００とリモート発行サーバ４０との間においても、同様に暗号化技術を用いた通信が行われる。ＩＣカード５００は、暗号化通信のためのソフトウェアを記憶しており、これを用いてリモート発行サーバ４０と暗号化通信を行う。なお、上記で説明した暗号化通信の具体的処理はあくまで一例であり、通信相手の正当性を確認できるものであれば、これ以外の暗号化技術が用いられてもよい。
【０１１２】
４．他の実施形態
本発明は上述の実施形態に限定されるものではなく、種々の変形実施が可能である。以下、変形例をいくつか説明する。以下の変形例のうち２つ以上のものが組み合わせて用いられてもよい。
【０１１３】
４−１．変形例１
ＩＣカード一覧の内容を確認させるための要求は、実施形態で説明したものに限定されない。上述の実施形態においては、ステップＳ８０２における、ブラウザ１３０から一覧管理プログラム１５０へのＩＣカード一覧の確認の指示が、この要求の例である。しかし、この要求は、一覧管理プログラム１５０にＩＣカード一覧の確認を開始させるための情報であれば、具体的にはデータ、フラグ、命令、要求などどのようなものであってもよい。例えばこの要求は、スクリプトの実行の指示であってもよい。あるいはこの要求は、起動モードの変更の指示であってもよい。
【０１１４】
４−２．変形例２
ＩＣカード一覧の内容を確認させるための要求を一覧管理プログラム１５０に送るアプリケーションプログラムは、ブラウザに限定されない。すなわち、特定の書式で記述された特定データはＨＴＭＬデータに限定されない。所定の条件を満たしたときに、一覧管理プログラム１５０に対し、要求を送るものであれば、どのようなアプリケーションプログラムが用いられてもよい。例えば、専用アプリ１４０が、一覧管理プログラム１５０に要求を送ってもよい。あるいは、開始情報を送るアプリケーションプログラムは、ゲームプログラムなど、ブラウザ１３０および専用アプリ１４０以外のアプリケーションプログラムであってもよい。この場合、ゲームプログラムは、処理の一部として、特定の条件が満たされたときに一覧管理プログラム１５０に対し開始情報を送る。あるいはさらに別の例で、このアプリケーションプログラムは、ユーザの指示に応じて、一覧管理プログラム１５０に対し開始情報を送るものであってもよい。「所定の条件」は、特定の操作入力が行われた、特定の命令が実行された、特定のＨＴＭＬデータを受信した、などどのようなものが用いられてもよい。
【０１１５】
４−３．変形例３
ブラウザ１３０に対してスクリプトを実行させる指示（第１の指示）は、実施形態で説明したものに限定されない。実施形態において、ステップＳ８０４における、一覧管理プログラム１５０からブラウザ１３０への指示が、第１の指示の例である。しかし、第１の指示は、ブラウザ１３０にスクリプトを実行させるための情報であれば、具体的にはデータ、フラグ、命令、要求などどのようなものであってもよい。
【０１１６】
４−４．変形例４
ＪＡＭ１１９に対して専用アプリ１４０のアンインストールを実行させる指示（第２の指示）は、実施形態で説明したものに限定されない。実施形態において、ステップＳ８０７の一覧の書き換えの後で、専用アプリ１４０がアンインストールされてもよいことを説明した。この場合、一覧管理プログラム１５０は、ＪＡＭ１１９に対し専用アプリ１４０のアンインストールを指示する。これが第２の指示の例である。しかし、第２の指示は、ＪＡＭ１１９に対して専用アプリ１４０のアンインストールを実行させるための情報であれば、具体的にはデータ、フラグ、命令、要求などどのようなものであってもよい。
【０１１７】
４−５．変形例５
ブラウザ１３０が一覧管理プログラム１５０に要求を送る契機となる契機情報は、実施形態で説明したものに限定されない。実施形態において、図２２のステップＳ８０１における「スクリプト」が契機情報の一例である。しかし、契機情報は、ブラウザ１３０が一覧管理プログラム１５０に要求を送る契機となる情報であれば、具体的にはデータ、フラグ、命令、要求などどのようなものであってもよい。例えば、契機情報は、スクリプトへのリンクであってもよい。あるいは、契機情報は、スクリプトをダウンロードまたは実行させる命令であってもよい。
【０１１８】
４−６．変形例６
図１２、１４−１６において、各スクリプトの動作を、スクリプト自体の機能と、スクリプトから呼び出されるＡＰＩやデバイスドライバの機能とに分けて説明したが、機能の分配は実施形態で説明したものに限定されない。例えば、実施形態でＡＰＩの機能として説明された機能を実現するための命令群が、スクリプト本体に記述されていてもよい。すなわち、スクリプト本体がその機能を有していてもよい。あるいは、実施形態でスクリプトの機能として説明された機能を実現するための命令群が、スクリプト本体以外のＡＰＩ、モジュール、他のスクリプト、関数等に記述されていてもよい。要は、スクリプト本体に直接または間接的に記述されている命令群により、図１２、１４−１６の処理が実現されるのであれば、ソフトウェア間の役割分担はどのようなものでもよい。
【０１１９】
４−７．変形例７
アプリケーションプログラムを記述するプログラミング言語はＪａｖａ（登録商標）に限定されない。Ｃ＋＋など、他のオブジェクト指向プログラミング言語が用いられてもよい。あるいは、非オブジェクト指向プログラミング言語が用いられてもよい。また、ステップＳ６０１−６０２において説明した、アプリケーションプログラムをインストールする処理はあくまで例示であり、アプリケーションプログラムのファイル構成およびインストールする手順はこれに限定されない。
【０１２０】
４−８．変形例８
スクリプトを記述するプログラミング言語はＪａｖａスクリプトに限定されない。Ｃ＋＋など、他のオブジェクト指向プログラミング言語や、Ｆｌａｓｈなどブラウザ上のコンテンツが用いられてもよい。あるいは、非オブジェクト指向プログラミング言語が用いられてもよい。
【０１２１】
４−９．変形例９
スクリプトの所在を示す所在情報は、ＵＲＬに限定されない。スクリプトの所在を特定できるのであれば、どのような情報が用いられてもよい。
【０１２２】
４−１０．変形例１０
本稿でいう「ＩＣカード」は、必ずしもカード型の形状を有していなくてもよい。「カード」とはＩＣカード５００の機能を象徴する語であって、形状を特定するものではない。ＩＣカードは、アンテナと、個別にアクセス制限を設定可能な複数の記憶領域を有するメモリと、アンテナからの信号または第１の制御手段（実施形態ではＣＰＵ１０２）からの信号に応じてメモリにアクセスする第２の制御手段（実施形態ではプロセッサ５０３）とを有するものであれば、その形状はどのようなものであってもよい。また、ＩＣカード５００のメモリ５０４の記憶領域の構成は、図５に示したものに限定されない。メモリ５０４は、自由領域を有していなくてもよい。あるいは、メモリ５０４は、自由領域に加えてさらに別の第３の領域を有していてもよい。
【０１２３】
４−１１．変形例１１
携帯電話機１０のハードウェア構成は、図３で説明したものに限定されない。必要な機能を実現できるのであれば、携帯電話機１０はどのようなハードウェア構成を有していてもよい。特に、複数のプログラムによる並列処理を可能とする構成として、携帯電話機１０がマルチプロセッサ（複数のプロセッサ）を有する場合、これら複数のプロセッサが全体として本稿の「第１の制御手段」に相当する。この場合において、各プロセッサがそれぞれ異なるプログラムを実行してもよい。例えば、第１のプロセッサがＪＡＭを実行し、第２のプロセッサがブラウザ等のアプリケーションプログラムを実行してもよい。この例では、ＪＡＭを実行している第１のプロセッサが「管理手段」として機能し、ブラウザを実行している第２のプロセッサが「第１のアプリケーション手段」として機能する。「第１のアプリケーション手段が管理手段にデータを送る」とは、第１のプロセッサと第２のプロセッサの間で信号のやりとりをすることをいう。
【０１２４】
４−１２．変形例１２
上述の実施形態においてＣＰＵ１０２によって実行されるプログラムは、磁気記録媒体（磁気テープ、磁気ディスク（ＨＤＤ（Hard Disk Drive）、ＦＤ（Flexible Disk））など）、光記録媒体（光ディスク（ＣＤ（Compact Disk）、ＤＶＤ（Digital Versatile Disk））など）、光磁気記録媒体、半導体メモリ（フラッシュＲＯＭなど）などのコンピュータ読取り可能な記録媒体に記憶した状態で提供されてもよい。また、このプログラムは、インターネットのようなネットワーク経由でダウンロードされてもよい。
【符号の説明】
【０１２５】
３…ヒンジ、４…キーパッド、５…マイクロホン、６…スピーカ、７…アンテナ、８…表示装置、１０…携帯電話機、２０…管理サーバ、３０…サービスサーバ、４０…リモート発行サーバ、５０…サービスサーバ、６０…サービスサーバ、７０…ネットワーク、１０２…ＣＰＵ、１０３…ＲＯＭ、１０４…ＲＡＭ、１０５…記憶部、１０６…操作部、１０７…表示部、１０８…通信部、１０９…バス、１１１…ＯＳ、１１２…アプリケーション、１１３…アプリケーション、１１４…Ｊａｖａ実行環境、１１５…第１ストレージ、１１６…第２ストレージ、１１７…クラスライブラリ、１１８…ＪＶＭ、１１９…ＪＡＭ、１２０…ＡＰＩ群、１２１…クライアントソフトウェア、１２２…デバイスドライバ、５００…ＩＣカード、５０１…アンテナ、５０２…ＩＣチップ、５０３…プロセッサ、５０４…メモリ、５１０…リーダ／ライタ、６０１…文字列、６０５…アイコン、６０６…アイコン、６０７…アイコン、６０８…アイコン
【図１】
2010218029.tif 000003
【図２】
2010218029.tif 000004
【図３】
2010218029.tif 000005
【図４】
2010218029.tif 000006
【図５】
2010218029.tif 000007
【図６】
2010218029.tif 000008
【図７】
2010218029.tif 000009
【図８】
2010218029.tif 000010
【図９】
2010218029.tif 000011
【図１０】
2010218029.tif 000012
【図１１】
2010218029.tif 000013
【図１２】
2010218029.tif 000014
【図１３】
2010218029.tif 000015
【図１４】
2010218029.tif 000016
【図１５】
2010218029.tif 000017
【図１６】
2010218029.tif 000018
【図１７】
2010218029.tif 000019
【図１８】
2010218029.tif 000020
【図１９】
2010218029.tif 000021
【図２０】
2010218029.tif 000022
【図２１】
2010218029.tif 000023
【図２２】
2010218029.tif 000024
【図２３】
2010218029.tif 000025
【図２４】
2010218029.tif 000026