JP4934161B2 - 携帯端末および管理プログラム - Google Patents

携帯端末および管理プログラム Download PDF

Info

Publication number
JP4934161B2
JP4934161B2 JP2009061609A JP2009061609A JP4934161B2 JP 4934161 B2 JP4934161 B2 JP 4934161B2 JP 2009061609 A JP2009061609 A JP 2009061609A JP 2009061609 A JP2009061609 A JP 2009061609A JP 4934161 B2 JP4934161 B2 JP 4934161B2
Authority
JP
Japan
Prior art keywords
script
application program
application
identifier
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009061609A
Other languages
English (en)
Other versions
JP2010218028A (ja
Inventor
孝一 中村
太郎 笹田
利博 菅野
佑宇真 栗林
大 神谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2009061609A priority Critical patent/JP4934161B2/ja
Publication of JP2010218028A publication Critical patent/JP2010218028A/ja
Application granted granted Critical
Publication of JP4934161B2 publication Critical patent/JP4934161B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Telephone Function (AREA)
  • Telephonic Communication Services (AREA)

Description

本発明は、携帯端末においてICカードを利用する技術に関する。
モバイルFeliCa(登録商標)のように、携帯端末において利用されるICカードが知られている。単体のICカードに対しては、専用のリーダ/ライタを用いてデータの読み書きがされるが、携帯端末に内蔵されたICカードに対しては、リーダ/ライタを用いたデータの読み書きに加え、携帯端末本体からデータの読み書きが可能である。多くの携帯端末はネットワークを介した通信を行う機能を有しており、通信機能およびICカード機能により、多様なサービスを提供することが可能になっている。ICカードを内蔵した携帯端末において、ICカードのデータを読み書きするために、専用のアプリケーションソフトウェアが用いられている。
これに対し特許文献1は、端末装置からICカードへ送信されるメッセージであるAPDU(Application Protocol Data Unit、アプリケーション・プロトコル・データ単位)の実行結果をwebブラウザに表示する技術を開示している(特に、段落0020−0022)。
特開2006−244211号公報
ネットワークを介した通信とICカードへのデータの読み書きとを一連の処理として行おうとするとき、ネットワークを介した通信を行うためのソフトウェアと、ICカードへのデータの読み書きを行うためのソフトウェアとを切り替えることは煩雑であった。特許文献1においても、APDUの取得や実行は専用のソフトウェアを用いる必要があった。
これに対し本発明は、ICカードへのデータの読み書きを行うソフトウェアを、ネットワークを介した通信を行うためのソフトウェア上から実行可能なスクリプトと、専用のソフトウェアとのいずれかに切り替える技術を提供する。
本発明は、ネットワークを介して通信する通信手段と、特定の処理を実行するための第1のアプリケーションプログラム、前記第1のアプリケーションプログラムと異なる第2のアプリケーションプログラム、ならびにスクリプトおよび前記第2のアプリケーションプログラムを管理する第1の管理プログラムを実行する第1の制御手段と、アンテナと、個別にアクセス制限を設定可能な複数の記憶領域を有するメモリと、前記アンテナからの信号または前記第1の制御手段からの信号に応じて前記メモリにアクセスし、アクセスした結果を前記第1の制御手段に出力する第2の制御手段とを有するICカードと、前記メモリに設定されている記憶領域を特定する第1の識別子と、前記第1の識別子により特定される記憶領域に対してアクセス可能なソフトウェアを示す第2の識別子とを含む一覧を記憶する記憶手段とを有し、前記第2のアプリケーションプログラムが、前記複数の記憶領域のうち一の記憶領域にアクセスするためのプログラムであり、前記第1の管理プログラムを実行している前記第1の制御手段が、第1の管理手段として機能し、前記第1のアプリケーションプログラムを実行している前記第1の制御手段が、第1のアプリケーション手段として機能し、前記第2のアプリケーションプログラムを実行している前記第1の制御手段が、第2のアプリケーション手段として機能し、前記第1の管理手段が、前記第1のアプリケーション手段から、前記第2のアプリケーションプログラムを取得または実行する要求を受け、前記要求を受けた場合において、前記一覧において前記一の記憶領域を示す前記第1の識別子と対応する前記第2の識別子が前記スクリプトの識別子であるとき、または前記一の記憶領域を示す前記第1の識別子と対応する前記第2の識別子が前記一覧に含まれていないときは、前記第1の管理手段が、前記一覧において前記一の記憶領域を示す前記第1の識別子と対応する第2の識別子が前記第2のアプリケーションプログラムの識別子となるように、前記一覧の更新をすることを特徴とする携帯端末を提供する。
この携帯端末によれば、第1のアプリケーションプログラムを実行したままで、ICカードにアクセスするソフトウェアが第2のアプリケーションプログラムに切り替えられる。
好ましい態様において、前記要求を受けた場合において、前記一覧において前記一の記憶領域を示す前記第1の識別子と対応する前記第2の識別子が前記スクリプトの識別子であるとき、または前記一の記憶領域を示す前記第1の識別子と対応する前記第2の識別子が前記一覧に含まれていないときは、前記第1の管理手段が、前記第1のアプリケーション手段に対して前記第2のアプリケーションプログラムを取得または実行させる第1の指示をし、前記第1のアプリケーション手段が前記第1の指示に応じた処理をした結果を受けて、前記第1の管理手段が前記一覧の更新をしてもよい。
この携帯端末によれば、特定の処理を契機として、第1のアプリケーションプログラムの処理に応じて、ICカードへのデータの読み書きを行うソフトウェアがスクリプトからアプリケーションプログラムに切り替えられる。
別の好ましい態様において、前記第1の制御手段が、前記第2のアプリケーションプログラムのインストールを管理する第2の管理プログラムを実行し、前記第2の管理プログラムを実行している前記第1の制御手段が、第2の管理手段として機能し、前記第1の指示を受けると、前記第1のアプリケーション手段が、前記第2のアプリケーションプログラムをインストールするよう前記第2の管理手段に第2の指示をし、前記第2の指示を受けると、前記第2の管理手段が、前記第2のアプリケーションプログラムのインストールをし、前記インストールが完了すると、前記第2の管理手段が、前記インストールの完了を前記結果として前記第1の管理手段に第1の通知をしてもよい。
この携帯端末によれば、第2のアプリケーションプログラムがインストールされたことに応じて一覧が更新される。
さらに別の好ましい態様において、前記更新が完了すると、前記第1の管理手段が、前記更新の完了を前記第2の管理手段に第2の通知をし、前記第2の管理手段が前記第2の通知を受けると、前記第2のアプリケーション手段が起動され、前記起動された前記第2のアプリケーション手段が、前記一の記憶領域にアクセスして初期データの書き込みを行い、前記第2のアプリケーション手段が前記書き込みをすると、前記第1の管理手段は、前記書き込みが完了したことを示すフラグを、前記一覧に追加してもよい。
この携帯端末によれば、記憶領域に初期データの書き込みが行われたことに応じて、一覧にフラグが追加される。
さらに別の好ましい態様において、前記要求が、前記第2のアプリケーションプログラムを取得する要求であり、前記要求を受けた場合において、前記一覧において前記一の記憶領域を示す前記第1の識別子と対応する前記第2の識別子が前記第2のアプリケーションプログラムの識別子であるときは、前記第1の管理手段が、前記第1のアプリケーション手段に対して前記第2のアプリケーションプログラムの取得を中止させる第3の指示をし、前記第3の指示を受けると、前記第1のアプリケーション手段が、前記第2のアプリケーションプログラムの取得を中止してもよい。
この携帯端末によれば、第2のアプリケーションプログラムの二重取得が防止される。
さらに別の好ましい態様において、この携帯端末は、情報を表示する表示手段を有し、前記特定の処理が、特定の書式で記述された特定データを、前記ネットワークから前記通信手段を介して受信し、前記受信した特定データに基づく情報を前記表示手段に表示させる処理であり、前記第1のアプリケーション手段が、前記第2のアプリケーションプログラムを取得または実行させるための契機となる契機情報を含む前記特定データを受信したことを契機として、前記第1の管理手段に対し前記要求を送ってもよい。
この携帯端末によれば、ネットワークを介して取得した情報を表示する第1のアプリケーションプログラムによる処理と、ICカードへのアクセスをするソフトウェアの切り替えとが、シームレスに行われる。
さらに別の好ましい態様において、前記第1のアプリケーションプログラムが、前記スクリプトを実行するための命令群を含んでもよい。
この携帯端末によれば、第1のアプリケーションプログラム上から、スクリプトを実行することができる。
また、本発明は、ネットワークを介して通信する通信手段と、プログラムを実行する第1の制御手段と、アンテナと、個別にアクセス制限を設定可能な複数の記憶領域を有するメモリと、前記アンテナからの信号または前記第1の制御手段からの信号に応じて前記メモリにアクセスし、アクセスした結果を前記第1の制御手段に出力する第2の制御手段とを有するICカードと、前記メモリに設定されている記憶領域を特定する第1の識別子と、前記第1の識別子により特定される記憶領域に対してアクセス可能なソフトウェアを示す第2の識別子とを含む一覧を記憶する記憶手段とを有する携帯端末に、前記第1の制御手段が、前記複数の記憶領域のうち一の記憶領域にアクセスするためのアプリケーションプログラムを取得または実行する要求を受けるステップと、前記要求を受けた場合において、前記一覧において前記一の記憶領域を示す前記第1の識別子と対応する前記第2の識別子が前記スクリプトの識別子であるとき、または前記一の記憶領域を示す前記第1の識別子と対応する前記第2の識別子が前記一覧に含まれていないときは、前記第1の制御手段が、前記一覧において前記一の記憶領域を示す前記第1の識別子と対応する前記第2の識別子が前記アプリケーションプログラムの識別子となるように、前記一覧の更新をするステップとを実行させるための管理プログラムを提供する。
この管理プログラムによれば、第1のアプリケーションプログラムを実行したままで、ICカードにアクセスするソフトウェアがスクリプトからアプリケーションプログラムに切り替えられる。
一実施形態に係る通信システムの構成を示す図である。 携帯電話機10の外観図である。 携帯電話機10のハードウェア構成を示す図である。 ICカード500の構成を示す図である。 メモリ504の記憶領域の構成を例示する図である。 Java実行環境を示す図である。 携帯電話機10のソフトウェア構成を示す図である。 サービスサーバ30の構成を示す図である。 リモート発行サーバ40の構成を示す図である。 サービスサーバ50の構成を示す図である。 サービスサーバ60の構成を示す図である。 登録スクリプトによる処理を示すシーケンス図である。 HTMLデータの具体例を例示する図である。 読み出しスクリプトによる処理を示すシーケンス図である。 書き込みスクリプトによる処理を示すシーケンス図である。 削除スクリプトによる処理を示すシーケンス図である。 ICカード一覧を例示する図である。 ICカード一覧に従って表示される画面を例示する図である。 ブラウザモードの登録処理を示すシーケンス図である。 アプリモードの登録処理を示すシーケンス図である。 ブラウザモードからアプリモードへの切り替え処理を示す図である。 アプリモードからブラウザモードへの切り替え処理を示す図である。 ICカード一覧からブラウザまたはアプリケーションプログラムを起動する処理を示すフローチャートである。 暗号化技術の概要を示す図である。
1.構成
図1は、本発明の一実施形態に係る通信システムの構成を示す図である。この通信システムは、携帯電話機10と、管理サーバ20と、サービスサーバ30と、リモート発行サーバ40と、サービスサーバ50と、サービスサーバ60とを有する。管理サーバ20、サービスサーバ30、リモート発行サーバ40、サービスサーバ50およびサービスサーバ60は、ネットワーク70を介して接続されている。リーダ/ライタ510は、携帯電話機10に内蔵されているIC(Integrated Circuit)カード500と無線通信を行い、データの読み書きを行う。
1−1.携帯電話機10
図2は、携帯電話機10の外観図である。携帯電話機10は、本発明に係る携帯端末の一例である。携帯電話機10は、筐体9Aおよび筐体9Bを有する。筐体9Aと筐体9Bとは、ヒンジ3を介して連結されている。携帯電話機10は、いわゆる折り畳み型の携帯電話機である。携帯電話機10のユーザは、図1に示されるように筐体9Aおよび筐体9Bを開いた状態で音声通信やデータ通信を行う。
筐体9Aは、スピーカ6、アンテナ7および表示装置8を有する。スピーカ6は、通話の音声、操作音、楽曲音などを出力する。アンテナ7は、無線基地局との間で無線通信を行う。表示装置8は、文字や画像を表示する。筐体9Bは、キーパッド4およびマイクロホン5を有する。キーパッド4は、ユーザの操作に応じた信号を出力する。マイクロホン5は、入力された音声を電気信号に変換して出力する。
図3は、携帯電話機10のハードウェア構成を示す図である。CPU(Central Processing Unit)102は、携帯電話機10の各構成要素を制御する制御装置(第1の制御手段の一例)である。ROM(Read Only Memory)103は、携帯電話機10の基本的な動作に必要なプログラムおよびデータを記憶する記憶装置である。ROM103は、例えば、IPL(Initial Program Loader)、OS(Operating System)プラグラムおよびJava(登録商標)プラットフォームソフトウェアを記憶している。IPLは、携帯電話機10の電源が投入されたときに最初に実行するプログラムを読み出すためのプログラムである。本実施形態において、IPLは、OSプログラムを読み出す。OSプログラムは、データの入出力、記憶装置へのアクセス、各種プログラムの実行、音声通信、データ通信、その他の携帯電話機10の基本的な機能を実現させるためのプログラムである。Java(登録商標)プラットフォームソフトウェアは、OS上にJava実行環境を実現させるためのプログラムおよびデータである。Java実行環境については後述する。
RAM(Random Access Memory)104は、CPU102がプログラムを実行する際のワークエリアとして機能する記憶装置である。記憶部105(記憶手段の一例)は、アプリケーションプログラムおよびデータを記憶する記憶装置である。記憶部105は、フラッシュメモリ等の不揮発性メモリを有する。本実施形態において、記憶部105は、ブラウザプログラムを記憶している。ブラウザプログラムは、ネットワークを介してHTML(HyperText Markup Language)データを受信し、受信したHTMLデータに応じた情報を表示装置8に表示させるためのプログラムである(第1のアプリケーションプログラムの一例)。また、記憶部105は、電子メールプログラムを記憶している。電子メールプログラム(メーラ)は、ネットワークを介して電子メールを送受信し、送受信した電子メールの表示、編集をするためのプログラムである。電子メールには添付ファイルとして画像データやアドレス帳データを添付することが可能である。この例で、ブラウザおよびメーラはJavaアプリケーションプログラムである。
操作部106は、ユーザの操作に応じた信号を出力する。操作部106は、テンキー、発呼キー、終話キー、クリアキー、カーソルキー、電源キー、その他の入力を行うためのキーを含むキーパッド(図2のキーパッド4)等の入力装置を有する。ユーザは、キーパッドを操作することにより携帯電話機10に対して指示を入力する。表示部107(表示手段の一例)は、文字や画像を表示する。表示部107は、液晶ディスプレイなどの表示装置(図2の表示装置8)を有する。表示部107は、実行中のアプリケーションプログラムにより処理された情報を表示する。表示部107は、LCD(liquid crystal display)などの表示体およびその表示体を駆動する駆動回路を有する。通信部108(通信手段の一例)は、アンテナ(図2のアンテナ7)を介して無線基地局を介して音声通信またはデータ通信を行う。バス109は、構成要素間でやりとりされる信号やデータを伝送する伝送路である。さらに、携帯電話機10は、ICカード500を有している。以上の構成要素はバス109を介して接続されている。
図4は、ICカード500の構成を示す図である。アンテナ501は、リーダ/ライタ510との間での無線信号の送受信に用いられる。ICチップ502は、アンテナ501が受信した信号に応じた処理を行う。ICチップ502は、プロセッサ503(第2の制御手段の一例)と、メモリ504とを有する。
ICカード500は、CPU102とデータや信号の送受信に用いられる信号線505を有している。プロセッサ503は、アンテナ501が受信した信号またはCPU102からの信号に応じてメモリ504にアクセスし、データの読み出しまたは書き込みを行う。プロセッサ503は、データの暗号化や復号化など、データの読み出しまたは書き込みに伴う処理を実行する。
図5は、メモリ504の記憶領域の構成を例示する図である。この例で、メモリ504には、初期状態において共通領域および自由領域という2つの領域が設定されている(図5(A))。共通領域は、あらかじめ決められた事業者(この例では、リモート発行サーバ40を管理、運営している事業者)により、サービス毎の領域設定およびデータの書き込みがされる領域である。自由領域は、事業者によらずデータの書き込みが可能な領域である。
共通領域はさらに複数の領域に区分することが可能であり、各領域に、異なるサービスのデータ、例えばA社の電子マネーやB社の電子マネーのデータを記憶することが可能である(図5(B))。以下、A社およびB社が提供する電子マネーをそれぞれ、「A社マネー」および「B社マネー」という。各領域は個別にアクセス制限(セキュリティ)を設定することが可能である。これにより、一枚のカードの中で複数のサービスで用いられるデータを管理することができ、また、サービス間でのデータのセキュリティも確保される。
図6は、Java実行環境を示す図である。CPU102がJava(登録商標)プラットフォームソフトウェアを実行することにより、図6に示されるJava実行環境114がOS111上に実現される。Java実行環境114は、クラスライブラリ117、JVM(Java Virtual Machine)118およびJAM(Java Application Manager)119を有する。クラスライブラリ117は、特定の機能を有するプログラムモジュール(クラス)群を1つのファイルに結合したものである。JVM118は、Javaアプリケーションプログラムとして提供されるバイトコードを解釈して実行する機能を有する。JAM119は、Javaアプリケーションプログラムのダウンロード、インストール、起動、終了、その他の動作を管理する機能を有する(第2の管理プログラムの一例)。
JAM119は、ICカード500にアクセスするためのAPI(Application Program Interface)群120を含んでいる。API群120は、例えば、サーバとの通信を開始するためのサーバ通信開始用API、ICカード500からデータを読み出すためのデータ読み出し用API、ICカード500にデータを書き込むためのデータ書き込み用API等を含んでいる。
クライアントソフトウェア121は、リモート発行サーバ40等のサーバとの通信を中継するためのソフトウェアである。デバイスドライバ122は、ICカード500にアクセスするためのドライバプログラムである。
第1ストレージ115は、JAM119の管理の下にダウンロードされるJavaアプリケーションプログラム(JarファイルおよびADF(Application Descriptive File))を格納する領域である。第2ストレージ116は、Javaアプリケーションプログラムの実行の際に生成されたデータをその終了後に格納しておくための領域である。第2ストレージ116において、インストールされたJavaアプリケーションプログラム毎に個別の格納領域が割り当てられる。あるJavaアプリケーションプログラムに割り当てられた格納領域のデータは、そのJavaアプリケーションプログラムが実行されている間のみ書き替え可能となっており、別のJavaアプリケーションプログラムは書き替えをすることができない。
Java実行環境114の元でCPU102がJavaアプリケーションプログラムを実行することにより、アプリケーション112やアプリケーション113が実現される。
図7は、携帯電話機10のソフトウェア構成を示す図である。OS111上において、ブラウザ130等のアプリケーションプログラムが動作する。ブラウザ130は、HTMLデータに応じた情報を表示装置8に表示させる機能を有する。ブラウザ130は、ネットワークからHTMLデータを受信する機能等、情報を表示させる機能に関連する機能を有する。スクリプト処理エンジン131は、このような関連機能の一つであり、Javaスクリプトを解釈し、Javaスクリプトに記述されている命令に従った処理を実行する機能を有する。スクリプト処理エンジン131は、ICカード500にアクセスするためのAPI群132を含んでいる。API群132は、例えば、サーバとの通信を開始するためのサーバ通信開始用API、ICカード500からデータを読み出すためのデータ読み出し用API、ICカード500にデータを書き込むためのデータ書き込み用API等を含んでいる。
専用アプリ140は、A社マネーやB社マネー等、特定のサービスにおいてICカード500へのアクセスを行うためのアプリケーションプログラムである(第2のアプリケーションプログラムの一例)。専用アプリ140は、特定のサービスに特化された専用のプログラムである。例えば、A社マネーおよびB社マネーには、それぞれ独自の専用アプリ140がある。この例で、専用アプリ140は、Javaアプリケーションプログラムである。
一覧管理プログラム150(第1の管理プログラムの一例)は、ICカード一覧を管理するためのプログラムである。ICカード一覧は、携帯電話機10に登録されている(または登録予定の)サービスを示す一覧である(詳細は後述)。一覧管理プログラム150は、ICカード一覧の更新や、ICカード一覧に基づいた、スクリプト処理エンジン131や専用アプリ140の起動の制御を行う。
1−2.管理サーバ20
管理サーバ20は、携帯電話機10がネットワークを介した通信を行う際の認証や課金といった処理を行うためのサーバである。
1−3.サービスサーバ30
図8は、サービスサーバ30の構成を示す図である。サービスサーバ30は、電子マネーサービスを提供する事業者であるA社が管理、運営するサーバである。サービスサーバ30は、サービスに関する情報を提供するためのHTMLデータと、電子マネーサービスに用いられる各種のスクリプト(残高表示スクリプト、決済スクリプト、チャージスクリプトおよび削除スクリプト)と、サーバとして機能させるためのサーバプログラムとを、HDD等の記憶手段301に記憶している。これらのスクリプトの詳細は後述する。また、サービスサーバ30は、ネットワークを介した通信に用いられる通信インターフェース等の通信手段302、およびプログラムを実行するCPU等の制御手段303を有している。制御手段303がサーバプログラムを実行し、記憶手段301や通信手段302を制御することにより、サービスサーバ30は、携帯電話機10からの要求に応じてHTMLデータやスクリプトを送信する機能を有する。
1−4.リモート発行サーバ40
図9は、リモート発行サーバ40の構成を示す図である。リモート発行サーバ40は、ICカード500のプラットフォームを提供する事業者が管理、運営するサーバである。リモート発行サーバ40は、事業者により提供されるサービスに関する情報を記録するデータベースと、データベースに情報を登録する処理、登録や決済の認証処理など、ICカード500のサービスに用いられる処理を実行させるためのサーバプログラムとを、HDD等の記憶手段401に記憶している。また、リモート発行サーバ40は、ネットワークを介した通信に用いられる通信インターフェース等の通信手段402、およびプログラムを実行するCPU等の制御手段403を有している。制御手段403がサーバプログラムを実行し、記憶手段401や通信手段402を制御することにより、リモート発行サーバ40は、携帯電話機10からの要求に応じて、サービスの登録や認証などの処理を行う機能を有する。
1−5.サービスサーバ50
図10は、サービスサーバ50の構成を示す図である。サービスサーバ50は、電子マネーサービスを提供する事業者であるB社が管理、運営するサーバである。サービスサーバ50は、サービスに関する情報を提供するためのHTMLデータと、電子マネーサービスに用いられる各種のスクリプト(残高表示スクリプト、決済スクリプト、チャージスクリプトおよび削除スクリプト)と、サーバとして機能させるためのサーバプログラムとを、HDD等の記憶手段501に記憶している。これらのスクリプトの詳細は後述する。また、サービスサーバ50は、ネットワークを介した通信に用いられる通信インターフェース等の通信手段502、およびプログラムを実行するCPU等の制御手段503を有している。制御手段がサーバプログラムを実行し、記憶手段501や通信手段502を制御することにより、サービスサーバ50は、携帯電話機10からの要求に応じてHTMLデータやスクリプトを送信する機能を有する。
1−6.サービスサーバ60
図11は、サービスサーバ60の構成を示す図である。サービスサーバ60は、電子マネーサービスを提供する事業者ではない、第三者であるC社が管理、運営するサーバである。C社は、サービスサーバ60を用いてショッピングサイトを運営しており、通信販売事業を行っている。サービスサーバ60は、商品および商品の属性(名前、数量、単価、画像など)を記録した商品データベースと、ユーザが有するポイントを記録したポイントデータベースと、ショッピングに関する情報を提供するためのHTMLデータと、サーバとして機能するためのサーバプログラムとを、HDD等の記憶手段601に記憶している。また、サービスサーバ60は、ネットワークを介した通信に用いられる通信インターフェース等の通信手段602、およびプログラムを実行するCPU等の制御手段603を有している。制御手段603がサーバプログラムを実行し、記憶手段601や通信手段602を制御することにより、サービスサーバ60は、携帯電話機10からの要求に応じてHTMLデータを送信し、商品の購入に関する処理を行う機能を有する。サービスサーバ60により提供されるHTMLデータは、サービスサーバ30またはサービスサーバ50により提供されるスクリプトのリンクを含んでいる。すなわち、このHTMLデータを介してサービスサーバ30またはサービスサーバ50により提供されるスクリプトを呼び出すことができる。
2.動作
2−1.スクリプト
携帯電話機10は、ブラウザ130上から(より詳細には、スクリプト処理エンジン131の機能により)スクリプトを実行する機能を有する。この例で、スクリプトは、オブジェクト指向プログラミング言語であるJava(登録商標)スクリプトで記述されている。ここで、ブラウザ上から実行されるスクリプトは、ICカード500にアクセスするスクリプトを含む。「ICカード500にアクセスする」とは、ICカード500のメモリ504に記憶領域を設定すること、設定された記憶領域からデータの読み出しをすること、記憶領域にデータの書き込みをすること、または記憶領域に記憶されているデータを消去することをいう。ICカード500にアクセスするスクリプトは、新規登録を行うためのスクリプト(以下「登録スクリプト」という)、データの読み出しを行うためのスクリプト(以下「読み出しスクリプト」という)、データの書き込みを行うためのスクリプト(以下「書き込みスクリプト」という)、および登録されているデータを削除するためのスクリプト(以下「削除スクリプト」という)に大別される。
2−1−1.登録スクリプト
登録スクリプトは、ICカード500のメモリ504内に新たな記憶領域を設定し、設定した記憶領域に初期データを書き込むためのスクリプトである。登録スクリプトは、電子マネーや電子チケットを「発券」する際に用いられる。
図12は、登録スクリプトによる処理を示すシーケンス図である。以下、必要に応じて「ブラウザ」や「メーラ」、「スクリプト処理エンジン」、「API」、「スクリプト」、「OS」などのソフトウェアを処理の主体として説明をするが、これらの記載は、ソフトウェアに含まれる命令を実行しているCPU102が、RAM104、表示部107、通信部108などのハードウェア資源と協働して処理を行うことを意味する。例えば、「ブラウザがHTMLデータに従ってページを表示する」と記載した場合、ブラウザプログラムを実行しているCPU102が、HTMLデータを解釈し、HTMLデータに応じたページ(画像)を表示部107に表示させることを意味する。あるいは、「APIがブラウザにデータを引き渡す」と記載した場合、APIを実行しているCPU102が、データを所定の記憶領域に記憶した後、ブラウザを実行し、この記憶領域からデータを読み出すことを意味する。さらにあるいは、「メーラが電子メールメッセージを表示する」と記載した場合、電子メールプログラムを実行しているCPU102が、電子メールのデータを解釈し、電子メールの内容を示す画像を表示部107に表示させることを意味する。図12において、ブラウザ130とスクリプト処理エンジン131とはそれぞれ別に記載されているが、既に説明したようにスクリプト処理エンジン131はブラウザ130の機能の一部である。
ステップS100において、ブラウザ130は、登録スクリプトを読み込む。すなわち、ブラウザ130は、サービスサーバ30に対し、登録スクリプトの送信を要求する。携帯電話機10から登録スクリプトの送信の要求を受信すると、サービスサーバ30は、登録スクリプトを携帯電話機10に送信する(ステップS101)。ブラウザ130は、読み込んだ登録スクリプトを、スクリプト処理エンジン131に渡す(ステップS102)。
図13は、登録スクリプトの読み込みを指示するHTMLデータの具体例を例示する図である。この例で、スクリプトは、HTMLのobjectタグを用いて、外部リンクとして呼び出される。単一のページのHTMLに、A社の残高表示スクリプトおよびB社の残高表示スクリプトの2つのリンクが含まれていれば、これらのスクリプトは所定のルール(例えば、HTMLに記述されている順番)により順番に呼び出される。以下、再び図12を参照して説明する。
登録スクリプトを受け取ると、スクリプト処理エンジン131は、スクリプトに記述された命令に従って処理を行う。ステップS103において、スクリプト処理エンジン131は、リモート発行サーバ40に対し、発券要求を送信する。具体的には以下のとおりである。登録スクリプトは、API群132の中からサーバ通信開始用APIを呼び出すための命令群を含んでいる。CPU102がこれらの命令群を実行することにより、サーバ通信開始用APIが起動される。サーバ通信用APIはクライアントソフトウェア121を呼び出す。クライアントソフトウェア121は、通信部108を介してリモート発行サーバ40と通信を行う。すなわち、クライアントソフトウェア121は、リモート発行サーバ40に発券要求を送信する。発券要求は、リモート発行サーバ40における処理に用いられる情報、例えばA社のサービスを特定する識別子およびユーザの属性を示す情報(以下「ユーザ情報」という)を含む。なお図12においては、登録スクリプトから呼び出されるAPIやデバイスドライバ等の処理も、登録スクリプトを実行するスクリプト処理エンジン131の処理として記載している。他の図においても同様である。
発券要求を受信すると、リモート発行サーバ40は、発券処理に用いられる情報(以下「発券情報」という)を生成する(ステップS104)。発券情報は、例えば、サービスおよびユーザを特定するための識別子、およびICカード500に書き込まれる初期データを含む。発券情報を生成すると、リモート発行サーバ40は、生成した発券情報および対応するユーザ情報を記憶する。リモート発行サーバ40は、発券情報を携帯電話機10に送信する(ステップS105)。携帯電話機10のクライアントソフトウェア121は、発券情報を受信し、受信した発券情報をスクリプト処理エンジン131に引き渡す。
ステップS106において、スクリプト処理エンジン131は、発券情報を用いて発券処理を行う。すなわち、登録スクリプトを実行しているCPU102は、ICカード500のメモリ504にA社のサービス用の領域を設定し、設定した領域に、A社のサービスを特定する識別子および携帯電話機10を特定する識別子を書き込む命令を、ICチップ502に送信する。ICチップ502のプロセッサ503は、CPU102からの命令を受けて、メモリ504にA社のサービス用の領域を設定し、設定した領域に、A社のサービスを特定する識別子および携帯電話機10を特定する識別子を書き込む。さらに、プロセッサ503は、CPU102からの命令を受けて、メモリ504にA社のサービス用のデータ(以下このデータを「サービスデータ」という)の初期値を書き込む。いまA社のサービスが電子マネーである場合を例にとると、サービスデータは、電子マネーの残高のデータである。あるいは別の例で、このサービスがポイントカードである場合にはサービスデータはポイントの残高であり、このサービスが入場券や乗車券等のチケット発券サービスであればサービスデータはチケットを特定する情報(日付や座席等)である。
発券処理が完了すると、スクリプト処理エンジン131は、発券が完了した旨の通知をリモート発行サーバ40に送信する(ステップS107)。この通知は、発券されたサービスおよび携帯電話機10を特定する識別子を含んでいる。
さらに、スクリプト処理エンジン131は、サービスの登録に用いられる情報、この例ではユーザ情報、A社のサービスを特定する識別子および携帯電話機10を特定する識別子をサービスサーバ30に送信する(ステップS108)。サービスサーバ30は、携帯電話機10から受信した情報を記憶(登録)する(ステップS109)。情報の登録が完了すると、サービスサーバ30は、登録が完了した旨の通知を携帯電話機10に送信する(ステップS110)。この通知は、登録された情報を表示するためのHTMLデータを含んでいる。この通知を受信すると、スクリプト処理エンジン131は、通知に含まれるHTMLデータをブラウザ130に引き渡し(ステップS111)、登録スクリプトによる処理を終了する。ブラウザ130は、取得したHTMLデータに従った情報を表示する。上記のステップS103、S106、S107、S108およびS111の処理は、登録スクリプトに記述された命令に従ってスクリプト処理エンジン131が行う処理である。
2−1−2.読み出しスクリプト
図14は、読み出しスクリプトによる処理を示すシーケンス図である。読み出しスクリプトは、ICカード500のメモリ504内に既に設定されている記憶領域から、データを読み出すためのスクリプトである。読み出しスクリプトの具体例としては、電子マネーやポイントカードの残高を表示するための「残高表示スクリプト」や電子チケットの内容を確認するための「内容表示スクリプト」などがある。
読み出しスクリプトは、サービスデータを読み出すデータ読み出し用APIを呼び出すための命令群を含んでいる。CPU102がこれらの命令群を実行することにより、データ読み出し用APIが実行される。
ステップS200において、ブラウザ130は、読み出しスクリプトを読み込む。すなわち、ブラウザ130は、サービスサーバ30に対し、読み出しスクリプトの送信を要求する。携帯電話機10から読み出しスクリプトの送信の要求を受信すると、サービスサーバ30は、読み出しスクリプトを携帯電話機10に送信する(ステップS201)。ブラウザ130は、読み込んだ読み出しスクリプトを、スクリプト処理エンジン131に渡す(ステップS202)。
読み出しスクリプトを受け取ると、スクリプト処理エンジン131は、スクリプトに記述された命令に従って処理を行う。ステップS203において、スクリプト処理エンジンは、A社のサービスを特定する識別子(以下「サービスID」という)を読み出し用APIに引き渡す(すなわち、サービスを特定する)。サービスIDは、スクリプト自身、スクリプトのファイル名またはHTMLタグに含まれている。データ読み出し用APIは、このサービスIDに対応する記憶領域から読み出したサービスデータを引き渡す要求を、ICカード500のICチップ502に送信する。この要求は、A社のサービスIDを含んでいる。
ステップS204において、スクリプト処理エンジン131は、ICチップ502からサービスデータを読み出す。具体的には以下のとおりである。データ読み出し用APIからデータ引き渡しの要求を受けると、ICチップ502のプロセッサ503は、メモリ504のうち、要求に含まれるサービスIDに対応する記憶領域からサービスデータ(この例では電子マネー残高)を読み出し、読み出したサービスデータをデータ読み出し用APIに引き渡す。データ読み出し用APIは、取得したサービスデータをスクリプト処理エンジン131に引き渡す。
ステップS205において、スクリプト処理エンジン131は、取得したサービスデータをブラウザ130に引き渡し、読み出しスクリプトの処理を終了する。ブラウザ130は、取得したサービスデータに基づいた情報を表示する。上記のステップS203−S205の処理は、読み出しスクリプトに記述された命令に従ってスクリプト処理エンジン131が行う処理である。
2−1−3.書き込みスクリプト
図15は、書き込みスクリプトによる処理を示すシーケンス図である。書き込みスクリプトは、ICカード500のメモリ504内に既に設定されている記憶領域に、データを書き込むため、または既に記憶されているデータを書き換えるためのスクリプトである。書き込みスクリプトの具体例としては、電子マネーやポイントカードの「チャージ」(残高を増やす処理)を行うためのチャージスクリプト、電子マネーやポイントカードの「決済」や「ポイント使用」(残高を減らす処理)を行うための決済スクリプトがある。
ステップS300において、ブラウザ130は、書き込みスクリプトを読み込む。すなわち、ブラウザ130は、サービスサーバ30に対し、書き込みスクリプトの送信を要求する。携帯電話機10から書き込みスクリプトの送信の要求を受信すると、サービスサーバ30は、書き込みスクリプトを携帯電話機10に送信する(ステップS301)。ブラウザ130は、読み込んだ書き込みスクリプトを、スクリプト処理エンジン131に渡す(ステップS302)。
ステップS303において、スクリプト処理エンジン131は、データ書き込み用APIを呼び出し、A社のサービスID、および書き込むべき対象データ(例えば、決済する金額やチャージする金額を示すデータ)をデータ書き込み用APIに引き渡す。データ書き込み用APIは、このサービスIDに対応する記憶領域に、対象データを書き込む要求を、ICカード500のICチップ502に送信する。この要求は、A社のサービスを特定する識別子および対象データを含んでいる。
データの書き込み要求を受けると、ICチップ502のプロセッサ503は、その書き込み要求があらかじめ決められた制約条件を満たしているか判断する(ステップS304)。制約条件は、例えば、書き込み要求が「決済」や「ポイント使用」のようにサービスデータにより示される残高を減少させる処理の場合には、サービスデータから減算しようとする値(決済の額や使用するポイント)が、サービスデータの残高以下であるという条件である。あるいは、制約条件は、書き込み要求が「チャージ」のようにサービスデータにより示される残高を増加させる処理の場合には、処理後の残高があらかじめ決められた上限値以下であるという条件である。なお、書き込み要求の種類によっては、制約条件を満たしているかどうかの判定処理を行わなくてもよい。
書き込み要求が制約条件を満たしていると判断された場合(S304:YES)、プロセッサ503は、処理をステップS305に移行する。書き込み要求が制約条件を満たしていないと判断された場合(S304:NO)、プロセッサ503は、その旨を示すエラーメッセージを、データ書き込み用APIを介してスクリプト処理エンジン131に送信する。エラーメッセージを受信すると、スクリプト処理エンジン131は、エラーが発生した旨をブラウザ130に通知し(ステップS312)、処理を終了する。
ステップS305において、プロセッサ503は、リモート発行サーバ40に、データの書き込み要求を送信する。具体的には以下のとおりである。プロセッサ503は、サーバ通信用APIを呼び出す。サーバ通信用APIはクライアントソフトウェア121を呼び出す。クライアントソフトウェア121は、通信部108を介してリモート発行サーバ40と通信を行う。すなわち、クライアントソフトウェア121は、リモート発行サーバ40にデータの書き込み要求を送信する。書き込み要求は、リモート発行サーバ40における認証に用いられる情報、例えばA社のサービスIDおよび携帯電話機10の識別子を含む。
携帯電話機10からデータの書き込み要求を受信すると、リモート発行サーバ40は、受信した書き込み要求の認証を行う(ステップS306)。認証には、後述する暗号化技術および電子署名技術が用いられる。あるいは、認証に、A社のサービスIDおよび携帯電話機10の識別子などの情報が用いられてもよい。認証処理を行うと、リモート発行サーバ40は、認証の結果を携帯電話機10に送信する(ステップS307)。
ICチップ502のプロセッサ503は(サーバ通信用APIおよびクライアントソフトウェア121を介して)、リモート発行サーバ40から認証の結果を受信する。プロセッサ503は、認証結果に応じて、次に行う処理を決定する(ステップS308)。認証が成功した場合(ステップS308:YES)、プロセッサ503は、対象データを、メモリ504内のA社のサービスに対応する記憶領域に書き込む(ステップS309)。対象データを記憶領域に書き込むと、プロセッサ503は、書き込みが完了した旨の通知をスクリプト処理エンジン131に送信する(ステップS310)。書き込みが完了した旨の通知を受信すると、スクリプト処理エンジン131は、書き込みが完了した旨をブラウザ130に通知し(ステップS311)、書き込みスクリプトによる処理を終了する。
認証が失敗した場合(ステップS308:NO)、プロセッサ503は、対象データをメモリ504に書き込まず、認証が失敗した旨の通知をスクリプト処理エンジン131に送信する。認証が失敗した旨の通知を受信すると、スクリプト処理エンジン131は、認証が失敗した旨をブラウザ130に通知し(ステップS313)、書き込みスクリプトによる処理を終了する。上記のステップS303、S311、S312およびS313の処理は、書き込みスクリプトに記述された命令に従ってスクリプト処理エンジン131が行う処理である。
2−1−4.削除スクリプト
削除スクリプトは、ICカード500のメモリ504内に設定されている記憶領域内のデータを削除し、その記憶領域に対応するサービスをICカード500から削除するためのスクリプトである。削除スクリプトは、電子マネーや電子チケットを「削除」する際に用いられる。
図16は、削除スクリプトによる処理を示すシーケンス図である。ステップS400において、ブラウザ130は、削除スクリプトを読み込む。すなわち、ブラウザ130は、サービスサーバ30に対し、削除スクリプトの送信を要求する。携帯電話機10から削除スクリプトの送信の要求を受信すると、サービスサーバ30は、削除スクリプトを携帯電話機10に送信する(ステップS401)。ブラウザ130は、読み込んだ削除スクリプトを、スクリプト処理エンジン131に渡す(ステップS402)。
削除スクリプトを受け取ると、スクリプト処理エンジン131は、スクリプトに記述された命令に従って処理を行う。ステップS403において、スクリプト処理エンジン131は、リモート発行サーバ40に対し、削除要求を送信する。削除要求は、リモート発行サーバ40における処理に用いられる情報、例えばA社のサービスIDおよびユーザ情報を含む。
削除要求を受信すると、リモート発行サーバ40は、削除処理に用いられる情報(以下「削除情報」という)を生成する(ステップS404)。削除情報は、例えば、削除すべきサービスおよびユーザを特定する識別子を含む。削除情報を生成すると、リモート発行サーバ40は、記憶していたユーザ情報を、HDD等の記憶手段から削除する。リモート発行サーバ40は、削除情報を携帯電話機10に送信する(ステップS405)。携帯電話機10のクライアントソフトウェア121は、削除情報を受信し、受信した削除情報をスクリプト処理エンジン131に引き渡す。
ステップS406において、スクリプト処理エンジン131は、削除情報を用いて削除処理を行う。すなわち、削除スクリプトを実行しているCPU102は、ICカード500のメモリ504に設定されているA社のサービス用の領域を削除する命令を、ICチップ502に送信する。ICチップ502のプロセッサ503は、CPU102からの命令を受けて、メモリ504に設定されているA社のサービス用の領域に記憶されているすべてのデータを消去(削除)する。
削除処理が完了すると、スクリプト処理エンジン131は、削除が完了した旨の通知をリモート発行サーバ40に送信する(ステップS407)。この通知は、削除されたサービスおよび携帯電話機10を特定する識別子を含んでいる。
さらに、スクリプト処理エンジン131は、削除されたサービスを特定する情報、この例ではユーザ情報、A社のサービスIDおよび携帯電話機10を特定する識別子をサービスサーバ30に送信する(ステップS408)。サービスサーバ30は、携帯電話機10から受信した情報を用いて、HDD等の記憶手段に記憶されているデータを削除する(ステップS409)。情報の削除が完了すると、サービスサーバ30は、削除が完了した旨の通知を携帯電話機10に送信する(ステップS410)。この通知は、サービスが削除された旨を表示するためのHTMLデータを含んでいる。この通知を受信すると、スクリプト処理エンジン131は、通知に含まれるHTMLデータをブラウザ130に引き渡し(ステップS411)、削除スクリプトによる処理を終了する。ブラウザ130は、取得したHTMLデータに従った情報を表示する。上記のステップS403、S406、S407、S408およびS411の処理は、削除スクリプトに記述された命令に従ってスクリプト処理エンジン131が行う処理である。
2−2.ICカード一覧
2−2−1.ICカード一覧の概要
この例で、携帯電話機10において、ICカード500に登録されているサービスは、ICカード一覧を用いて管理される。
図17は、ICカード一覧を例示する図である。ICカード一覧は、記憶部105に記憶されている。この例で、ICカード一覧は、「領域ID」、「サービスID」、「起動モード」、「URL」、および「発券済み」のレコードを含む。「領域ID」は、メモリ504内の記憶領域を特定する識別子である。「サービスID」は、その記憶領域に登録されているサービスを特定する識別子である。「起動モード」は、その記憶領域に対してアクセス可能な(アクセスが認められている)ソフトウェアがスクリプトおよび専用アプリのいずれであるかを示す識別子である。この例では、識別子「アプリ」は専用のアプリケーションプログラムによるアクセスが可能であること(以下この状態を「アプリモード」という)を、識別子「ブラウザ」はスクリプトによりアクセスが可能であること(以下この状態を「ブラウザモード」という)を示している。アプリモードおよびブラウザモードを総称して「起動モード」という。「URL」は、アクセス可能なソフトウェアがスクリプトである場合に、そのスクリプトの所在を示す情報である。「発券済み」は、対応するサービスについて発券が完了しているか否かを示すフラグである。フラグ「済」は発券が完了していることを示す。フラグ「未済」は発券が完了していないことを示す。
この例で、領域ID「0001」で特定される記憶領域には、サービスID「A社マネー」で特定されるサービスに関するデータが記憶されている。また、A社マネーの起動モードはアプリモードであることが示されている。領域ID「0002」で特定される記憶領域には、サービスID「B社マネー」で特定されるサービスに関するデータが記憶されている。また、B社マネーの起動モードはブラウザモードであることが示されている。さらに、このスクリプトの所在が「http://www.b-money.com/」であることが示されている。なおこの例で、ブラウザモードのサービスについては、発券済みと未発券の区別はなく、レコードは空欄になっている。
図18は、ICカード一覧に従って表示部107に表示される画面を例示する図である。図18は、図17のICカード一覧に従って表示される画面を示している。文字列601、602、603および604は、サービスIDを示す文字列である。アイコン605は、起動モードがアプリモードであることを示す画像である。アイコン606は、起動モードがブラウザモードであることを示す画像である。アイコン607は、対応するサービスが発券済みであることを示す画像である。アイコン608は、対応するサービスが未発券であることを示す画像である。図18に示される画像の表示は、一覧管理プログラムによって行われる。この例で、ブラウザモードに発券済みと未発券の区別はないが、便宜上アイコン607が表示されている。アプリモードのサービスについては、発券済みと未発券が区別されるので、発券状態に応じたアイコンが表示される。
2−2−2.ICカード一覧への登録(ブラウザモード)
図19は、ICカード一覧への新たなサービス(ブラウザモード)の登録処理を示すシーケンス図である。この例で、ICカード一覧への新たなサービスの登録は、図12のステップS106の発券処理に伴って行われる。この例で、図12のステップS101でダウンロードされる登録スクリプトは、ICカード一覧にサービスを登録するためのデータ、例えば、領域ID、サービスIDおよびURLを含む。
ステップS501において、スクリプト処理エンジン131は、リモート発行サーバ40から発券情報を取得する。発券情報を取得すると、スクリプト処理エンジン131は、ICカード500に対し発券を指示する(ステップS502)。スクリプト処理エンジン131から指示を受けると、ICカード500のプロセッサ503は、メモリ504に領域を設定し、設定した領域に初期データを書き込む(ステップS503)。初期データの書き込みが完了すると、プロセッサ503は、その旨をスクリプト処理エンジン131に通知する。
発券処理が完了すると、スクリプト処理エンジン131は、ICカード一覧へのサービスの登録を一覧管理プログラム150に指示する(ステップS504)。スクリプト処理エンジン131から一覧管理プログラム150への指示は、ICカード一覧への登録に用いられる情報、この例では、領域ID、サービスIDおよびURLを含む。
スクリプト処理エンジン131からサービスの登録を指示されると、一覧管理プログラム150は、指示に含まれる情報を用いて、ICカード一覧を更新する(ステップS505)。サービスが新規に登録される場合、一覧管理プログラム150は、ステップS504の指示に含まれる領域IDを含むレコードをICカード一覧内に新たに作成し、このレコードにサービスIDを登録する。この例では、「起動モード」は「ブラウザ」に設定される。ICカード一覧の更新が完了すると、一覧管理プログラム150は、ICカード一覧の更新が完了したことをスクリプト処理エンジン131に通知する(ステップS506)。一覧管理プログラム150から更新の完了を通知されると、スクリプト処理エンジン131は、発券処理が完了したことをリモート発行サーバ40に通知する(ステップS507)。この処理は、図12のステップS107の処理に相当する。上記のステップS501−S506の処理が、図12のステップS106の処理に伴って行われる。この後、図12に示される処理が行われる。
2−2−3.ICカード一覧への登録(アプリモード)
図20は、ICカード一覧への新たなサービス(アプリモード)の登録処理を示すシーケンス図である。この例で、ICカード一覧への新たなサービスの登録は、専用アプリ140のインストールに伴って行われる。
所定のイベント(例えば、ブラウザが表示している画面上で、アプリモードのサービスの新規登録を開始させるボタンが押されるというイベント)が発生すると、ブラウザ130は、ネットワーク70に接続されたサーバから専用アプリ140をダウンロードする(ステップS601)。
この例で、専用アプリ140のインストールには、ADF(Application Descriptor File)、SDF(Security Descriptor File)およびJar(Java ARchive)ファイルの3つのファイルが用いられる。ADFは、アプリケーションプログラムの属性を定義するファイルである。ADFは、SDFのURLおよびJarファイルを特定する情報を含んでいる。SDFは、Jarファイルを特定する情報を含むファイルである。Jarファイルは、アプリケーションプログラムの実体ファイルである。ステップS601においては、ADFがダウンロードされる。ADFをダウンロードすると、ブラウザ130は、このADFを用いた専用アプリ140のインストールをJAM119に指示する。指示を受けると、JAM119は、ADFを用いて専用アプリ140をインストールする。
ステップS602における専用アプリ140のインストールは、例えば以下のように行われる。JAM119は、取得されたADFに記述されたURLで特定されるリソースから、SDFを取得する。JAM119は、ADFに記述された情報で特定されるJarファイルおよびSDFに記述された情報で特定されるJarファイルが同一であることを確認する。ADFおよびSDFにより特定されるJarファイルが同一であると確認されると、JAM119は、Jarファイルを取得する。JarファイルのURLは、ADFに記述されている。
Jarファイルを取得すると、JAM119は、専用アプリ140をインストールする。インストールとは、アプリケーションプログラムの起動に用いられる情報およびアプリケーションプログラムの実体ファイルを、記憶部105に記憶することをいう。
インストールが完了すると、JAM119は、一覧管理プログラム150に対し、ICカード一覧へのサービスの登録を指示する(ステップS603)。JAM119から一覧管理プログラム150への指示は、ICカード一覧への登録に用いられる情報、この例では、領域IDおよびサービスIDを含む。
JAM119からサービスの登録を指示されると、一覧管理プログラム150は、指示に含まれる情報を用いて、ICカード一覧を更新する(ステップS604)。サービスが新規に登録される場合、一覧管理プログラム150は、ステップS603の指示に含まれる領域IDを含むレコードをICカード一覧内に新たに作成し、このレコードにサービスIDを登録する。この例では、「起動モード」は「アプリ」に設定される。また、この時点では、「発券済み」フラグは「未済」に設定される。ICカード一覧の更新が完了すると、一覧管理プログラム150は、ICカード一覧の更新が完了したことをJAM119に通知する(ステップS605)。
ICカード一覧の更新完了を通知されると、JAM119は、発券処理を行うために専用アプリ140を起動する(ステップS606)。あるいは、専用アプリ140は、ユーザにより手動で起動されてもよい。この場合は、JAM119またはOS111が、ユーザに専用アプリ140の起動を促す表示をする。起動されると、専用アプリ140は、発券処理を行う。発券処理の主体がスクリプト処理エンジン131ではなく専用アプリ140であるが、発券処理の内容は図12のステップS103−S106で説明したものと同様である。すなわち、専用アプリ140は、リモート発行サーバ140と通信し、発券情報を取得する(ステップS607)。発券情報を取得すると、専用アプリ140は、ICカード500に対し、発券の指示をする(ステップS608)。発券の指示を受けると、ICカード500のプロセッサ503は、メモリ504に領域を設定し、初期データを書き込む(ステップS609)。
発券処理が完了すると、専用アプリ140は、発券処理が完了したことを一覧管理プログラム150に通知する。専用アプリ140から一覧管理プログラム150への通知は、ICカード一覧への登録に用いられる情報、この例では、領域IDおよびサービスIDを含む。
専用アプリ140から発券処理の完了を通知されると、一覧管理プログラム150は、通知に含まれる情報を用いて、ICカード一覧を更新する(ステップS610)。ここでは、フラグ「発券済み」の値が「済」に設定される。ICカード一覧の更新が完了すると、一覧管理プログラム150は、ICカード一覧の更新が完了したことを専用アプリ140に通知する(ステップS611)。一覧管理プログラム150から更新の完了を通知されると、専用アプリ140は、発券処理が完了したことをリモート発行サーバ40に通知する(ステップS612)。以下、専用アプリ140の動作に従った処理が行われる。
2−2−4.ブラウザモードからアプリモードへの切り替え
図21は、ブラウザモードからアプリモードへの切り替え処理を示す図である。ここでは、B社のサービスがブラウザモードからアプリモードに切り替えられる場合を例に説明する。ブラウザモードからアプリモードへの切り替えは、切り替えをトリガするHTMLデータをブラウザ130が受信したことを契機として行われる。詳細には以下のとおりである。
ステップS701において、ブラウザ130は、サービスサーバ50(B社のサービスサーバ)からHTMLデータを受信する。このHTMLデータは、アプリモードへの切り替えをトリガする情報、例えば、B社の専用アプリ(以下「専用アプリ140B」という)をダウンロードさせる命令へのリンクを含んでいる。このリンクは、ダウンロードしようとするアプリケーションプログラムがICカード500にアクセスするためのアプリケーションプログラムであることを示す識別子を含んでいる。この識別子は、例えばアプリケーションプログラムのファイル名に含まれている。あるいは、この識別子は、リンクのHTMLタグに含まれていてもよい。さらにあるいは、この識別子は、ADFまたはSDFに含まれていてもよい。
専用アプリ140Bのダウンロードを要求されると、ブラウザ130は、一覧管理プログラム150にその旨を通知する(ステップS702)。ブラウザ130から通知を受けると、一覧管理プログラム150は、ダウンロードしようとする専用アプリに対応するサービスが、ブラウザモードおよびアプリモードのいずれかで既にICカード一覧に登録されているか確認する(ステップS703)。すなわち、一覧管理プログラム150は、記憶部105からICカード一覧を読み出し、さらに、読み出したICカード一覧の中に、専用アプリ140Bに対応するサービスID(この例では「B社マネー」)が既に登録されているか判断する。
ダウンロードしようとする専用アプリのサービスIDは、例えば、リンク、ファイル名またはHTMLタグに含まれている。あるいは、サービスIDは、ADFまたはSDFに含まれていてもよい。この場合、ブラウザ130は、ステップS703の判断に先立ち、ADFまたはSDFをダウンロードする。
ダウンロードしようとする専用アプリに対応するサービスが、ICカード一覧に既にアプリモードで登録されている場合(S703:アプリモード)、一覧管理プログラム150は、その旨を表示してダウンロードを中止するよう、ブラウザ130に指示をする(ステップS704)。この指示を受けて、ブラウザ130は、サービスが既にアプリモードで登録されている旨を表示し、ダウンロードを中止する(ステップS705)。こうして、専用アプリ140Bの二重登録が防止される。ダウンロードが中止されると、ブラウザ130またはOS111は、専用アプリ140Bを起動する。
ダウンロードしようとする専用アプリに対応するサービスが、ICカード一覧に既にブラウザモードで登録されている場合(S703:ブラウザモード)、一覧管理プログラム150は、ブラウザ130に起動モード変更の指示をする(ステップS706)。この指示を受けて、ブラウザ130は、起動モードをアプリモードに切り替える旨の表示をする(ステップS707)。さらに、ブラウザ130は、専用アプリ140Bをダウンロードする(ステップS708)。なお、ステップS707の処理は省略されてもよい。あるいは、ステップS707において、ブラウザ130は、起動モード変更の承認をユーザに要求し、承認された場合に処理をステップS708に移行してもよい。
ステップS708において専用アプリ140Bをダウンロードした後は、図20のフローと同様に、専用アプリ140Bのインストールが行われる。ただしこの場合、サービス(この例ではサービスID「B社マネー」のサービス)は新規に登録されるわけではなく、既にICカード一覧に登録されている。サービスの新規登録ではない場合、既にICカード500内に領域が設定され初期データは書き込まれているので、ステップS605、606、607、608、および609の処理は行われない。すなわち、ステップS603においてICカード一覧への登録を指示されると、一覧管理プログラム150は、登録の指示が新規登録によるものか起動モード切り替えによるものか判断する。新規登録の場合、一覧管理プログラム150は、既に図20のフローで説明したとおり動作する。起動モード切り替えの場合、一覧管理プログラムは、ステップS604においてICカード一覧の起動モードの書き替えを行った後、ステップS605−S609の処理をスキップし、処理をステップS610に移行する。
ダウンロードしようとする専用アプリに対応するサービスがICカード一覧にまだ登録されていないと判断された場合(S703:未登録)、一覧管理プログラム150は、専用アプリ140をダウンロードするようブラウザ130に指示をする(ステップS709)。この指示を受けて、ブラウザ130は、専用アプリ140Bをダウンロードする(ステップS710)。
ステップS710において専用アプリ140Bをダウンロードした後は、図20のフローに従って専用アプリ140Bのインストールが行われる。また、インストールに伴って、ICカード一覧へのサービスの新規登録が行われる。なお、JAM119またはOS111は、専用アプリ140Bのインストールが完了した後、専用アプリ140Bを起動してもよい。
2−2−5.アプリモードからブラウザモードへの切り替え
図22は、アプリモードからブラウザモードへの切り替え処理を示す図である。アプリモードからブラウザモードへの切り替えは、切り替えをトリガするHTMLデータをブラウザ130が受信したことを契機として行われる。詳細には以下のとおりである。なお、図22においては、ブラウザ130およびスクリプト処理エンジン131による処理をブラウザの処理として記載している。ここでは、A社のサービスがアプリモードからブラウザモードに切り替えられる場合を例に説明する。
ステップS801において、ブラウザ130は、サービスサーバ30(A社のサービスサーバ)からHTMLデータを受信する。このHTMLデータは、ブラウザモードへの切り替えをトリガする情報、例えば、A社のサービスにアクセスするためのスクリプト(以下単に「A社のスクリプト」という)を含んでいる。このHTMLデータは、起動しようとするスクリプトがICカード500にアクセスするためのスクリプトであることを示す識別子を含んでいる。この識別子は、例えばスクリプトのファイル名に含まれている。あるいは、この識別子は、リンクのHTMLタグに含まれていてもよい。さらにあるいは、この識別子は、スクリプト自身に含まれていてもよい。ユーザがこのリンクを選択する操作を行うと、ブラウザ130は、この命令に従って、A社のスクリプトを起動するようスクリプト処理エンジン131に要求する。A社のスクリプトの起動を要求されると、スクリプト処理エンジン131は、起動モードの変更が必要であるか判断するよう一覧管理プログラム150に指示をする(ステップS802)。
スクリプト処理エンジン131から指示を受けると、一覧管理プログラム150は、起動しようとしているスクリプトに対応するサービスが、ブラウザモードおよびアプリモードのいずれかで既にICカード一覧に登録されているか確認する(ステップS803)。すなわち、一覧管理プログラム150は、記憶部105からICカード一覧を読み出し、さらに、読み出したICカード一覧の中に、A社のスクリプトに対応するサービスID(この例では「A社マネー」)が既に登録されているか判断する。起動しようとするスクリプトのサービスIDは、例えば、スクリプト自身、スクリプトのファイル名またはHTMLタグに含まれている。
起動しようとしているスクリプトに対応するサービスがICカード一覧にまだ登録されていないと判断された場合(S803:未登録)、または起動しようとしているスクリプトに対応するサービスがICカード一覧に既にブラウザモードで登録されている場合(S803:ブラウザモード)、一覧管理プログラム150は、スクリプトを実行するようブラウザ130に指示をする(ステップS804)。この指示を受けて、ブラウザ130は、スクリプトをスクリプト処理エンジン131に引き渡す。以後、スクリプトの種類に応じて図12のステップS103以降の処理および図14、15、16のステップS203、S303、S403以降の処理のいずれかのフローに従ってスクリプトが実行される。また、サービスがICカード一覧にまだ登録されていなかった場合は、図19のフローに従ってICカード一覧への登録が行われる。なお、ICカード一覧に既にブラウザモードで登録されている場合、登録スクリプトを実行すると二重登録となり不具合を生じる可能性があるので、一覧管理プログラム150は、登録スクリプトの実行を禁止してもよい。
起動しようとしているスクリプトに対応するサービスが、ICカード一覧に既にアプリモードで登録されている場合(S803:アプリモード)、一覧管理プログラム150は、起動モードを変更するようブラウザ130に指示をする(ステップS805)。この指示を受けて、ブラウザ130は、起動モードをブラウザモードに切り替える旨の表示をする(ステップS806)。また、一覧管理プログラム150は、処理をステップS807に移行する。なお、ブラウザ130は、ユーザの指示などに応じて、モード切り替えを拒否してもよい。この場合、ブラウザ130は、ステップS807の処理の前に、一覧管理プログラム150に対して、モード切り替えが拒否されたことを通知する。また、ブラウザ130(スクリプト処理エンジン131)は、可能な範囲でスクリプトを実行する(例えば、登録スクリプトは実行されないが、読み出しスクリプトは実行される)。あるいは、ブラウザ130は、スクリプトの実行エラーが発生した旨の表示をしてもよい。
ステップS807において、一覧管理プログラム150は、ICカード一覧を書き替える)。すなわち、一覧管理プログラム150は、ICカード一覧において、A社マネーの起動モードを「ブラウザ」に設定し、「URL」のレコードに、A社のスクリプトのURLを記録する。A社のスクリプトのURLは、例えば、ステップS802における指示に含まれている。あるいは、この段階で、一覧管理プログラム150がブラウザ130からA社のスクリプトのURLを取得してもよい。ICカード一覧を更新すると、一覧管理プログラム150は、処理をステップS804に移行する。以後、既に説明したように、スクリプトの種類に応じて図12、14−16の処理が行われる。
なお、一覧管理プログラム150は、ステップS807のICカード一覧の書き替えが完了した後で、起動モードがブラウザモードに書き替えられた専用アプリ140のアンインストールを、JAM119に指示をしてもよい。この指示を受けると、JAM119は、対応する専用アプリ140をアンインストールする。
2−2−6.ICカード一覧からの起動
図23は、ICカード一覧からブラウザまたはアプリケーションプログラムを起動する処理を示すフローチャートである。ここでは、一覧管理プログラム150により、図18の画面が表示された状態を例として説明する。
ステップS901において、一覧管理プログラム150は、ユーザの操作に応じて、ICカード一覧の中から一のアイテム(サービス)を選択する。一覧表示アプリは、選択されたアイテムに対応するソフトウェアを起動する。
ソフトウェアの起動をする際、一覧管理プログラム150は、起動しようとするソフトウェアの種類に応じて次の処理を決定する(ステップS902)。スクリプトの起動が要求されている場合(ステップS902:スクリプト)、一覧管理プログラム150は、処理をステップS903に移行する。アプリケーションプログラムの起動が要求されている場合(ステップS902:アプリ)、一覧管理プログラム150は、処理をステップS905に移行する。
ステップS903において、一覧管理プログラム150は、スクリプトを取得し、取得したスクリプトを実行するようブラウザ130に要求する。この要求は、スクリプトのURLを含んでいる。ブラウザ130は、要求に含まれるURLから、スクリプトを取得する。スクリプト処理エンジン131は、取得したスクリプトを起動、実行する(ステップS904)。
ステップS905において、一覧管理プログラム150は、要求された専用アプリ140を起動、実行する。
3.セキュリティ
次に、以上で説明したサービスのセキュリティについて説明する。これまで詳しい説明は省略したが、スクリプトによるICカード500へのアクセスにおいては、暗号化技術が用いられる。
図24は、通信システムにおいて用いられる暗号化技術の概要を示す図である。認証局CAは、所定の事業者(例えば携帯電話機10の回線事業者)により管理および運営される認証局である。認証局CAは、認証局の秘密鍵Kpr CAおよび公開鍵Kpub CAを発行する。さらに、認証局CAは、携帯電話機10に対して電子証明書Smを発行する。電子証明書Smは、認証局CAの電子署名および公開鍵Kpub CAを含んでいる。携帯電話機10は、電子証明書Dmを記憶している。
認証局CAは、サービス提供事業者に対して、秘密鍵Kpr CPおよび公開鍵Kpub CPを発行する。図24では、サービスサーバ30を運営するA社がサービス提供事業者として例示されている。鍵の発行を受けているサービス提供事業者は、認証局CAに対し、ICカードサービスの利用申請をする。この利用申請は、公開鍵Kpub CPを含む。認証局CAは、利用申請を受けて、電子証明書SCPおよびサービス提供事業者のIDを示すIDデータを発行する。電子証明書SCPは、認証局CAの電子署名および公開鍵Kpub CPを含んでいる。認証局CAの電子署名は、ハッシュ関数による公開鍵Kpub CPのメッセージダイジェストを秘密鍵Kpr CAで暗号化したものである。サービスサーバ30は、秘密鍵Kpr CP、公開鍵公開鍵Kpub CP、電子証明書SCPおよびIDデータを記憶する。
サービスサーバ30が携帯電話機10に送信するスクリプトは、実行コード(スクリプト本体)と、電子証明書SCPと、IDデータとがパッケージされたものである。スクリプトを受信すると、携帯電話機10は、パッケージから電子証明書SCPを抽出する。携帯電話機10は、抽出した電子証明書SCPに含まれる電子署名を、電子証明書Dmに含まれる公開鍵Kpub CAで復号化し、メッセージダイジェストを取得する。さらに、携帯電話機10は、電子証明書Dmに含まれる公開鍵Kpub CAにハッシュ関数を適用し、メッセージダイジェストを生成する。携帯電話機10は、生成したメッセージダイジェストと、復号化により取得したメッセージダイジェストとを比較する。両者が一致した場合、携帯電話機10は、スクリプトが正当なものであると判断し、実行コードを実行する。両者が一致しなかった場合、携帯電話機10は、スクリプトが不正なものであると判断し、実行コードを実行しない。携帯電話機10においてこれらの処理は、ソフトウェアにより行われる。
以上はサービスサーバ30から受信したスクリプトの正当性を確認する技術であるが、ICカード500とリモート発行サーバ40との間においても、同様に暗号化技術を用いた通信が行われる。ICカード500は、暗号化通信のためのソフトウェアを記憶しており、これを用いてリモート発行サーバ40と暗号化通信を行う。なお、上記で説明した暗号化通信の具体的処理はあくまで一例であり、通信相手の正当性を確認できるものであれば、これ以外の暗号化技術が用いられてもよい。
4.他の実施形態
本発明は上述の実施形態に限定されるものではなく、種々の変形実施が可能である。以下、変形例をいくつか説明する。以下の変形例のうち2つ以上のものが組み合わせて用いられてもよい。
4−1.変形例1
ブラウザ130から一覧管理プログラムへの要求は、実施形態で説明したものに限定されない。上述の実施形態においては、ステップS702におけるブラウザから一覧管理プログラム150への、専用アプリ140のダウンロードの要求の通知(図21:ステップS702)が、その一例である。しかし、この要求は、専用アプリ140を取得または実行させるための情報を含むものであれば、具体的にはデータ、フラグ、命令、要求などどのようなものであってもよい。例えば、この要求は、専用アプリ140の実行の要求の通知であってもよい。「専用アプリ140を取得または実行させるための情報」には、専用アプリ140の取得または実行を直接指示するものの外、専用アプリ140の取得または実行の前に行われる別の処理の実行を指示するもの等、専用アプリ140の取得または実行を間接的に指示するものを含む。。
4−2.変形例2
一覧管理プログラム150に、専用アプリを取得または実行する要求を送るアプリケーションプログラム(第1のアプリケーションプログラム)は、ブラウザ130に限定されない。すなわち、特定の書式で記述された特定データはHTMLデータに限定されない。特定の処理を行うためのアプリケーションプログラムであり、この特定の処理の一部として、一覧管理プログラム150に対し、専用アプリを取得または実行する要求を送るものであれば、どのようなアプリケーションプログラムが用いられてもよい。例えば、このアプリケーションプログラムは、ゲームプログラムであってもよい。この場合、ゲームプログラムは、処理の一部として、特定の条件が満たされたときに一覧管理プログラム150に対し専用アプリを取得または実行する要求を送る。あるいは別の例で、このアプリケーションプログラムは、ユーザの指示に応じて、一覧管理プログラム150に対し専用アプリを取得または実行する要求を送るものであってもよい。
4−3.変形例3
ブラウザ130に専用アプリ140をダウンロードさせる指示(第1の指示)は、実施形態で説明したものに限定されない。実施形態において、図21のステップS706の起動モード変更の指示およびステップS709のダウンロード指示が、第1の指示の例である。しかし、第1の指示は、ブラウザ130に専用アプリ140の取得または実行を直接的または間接的に指示するものであれば、具体的にはデータ、フラグ、命令、要求などどのようなものであってもよい。
4−4.変形例4
JAM119に専用アプリ140をインストールさせる指示(第2の指示)は、実施形態で説明したものに限定されない。実施形態において、図20のステップS601におけるインストール指示が、第2の指示の例である。しかし、第2の指示は、JAM119に専用アプリ140のインストールを直接的または間接的に指示するものであれば、具体的にはデータ、フラグ、命令、要求などどのようなものであってもよい。
4−5.変形例5
一覧管理プログラム150への、専用アプリ140のインストールの完了の通知(第1の通知)は、実施形態で説明したものに限定されない。実施形態において、図20のステップS603におけるサービスの登録の指示が、第1の通知の例である。しかし、第1の通知は、専用アプリ40のインストールが完了したことを一覧管理プログラム150に通知するものであれば、具体的にはデータ、フラグ、命令、要求などどのようなものであってもよい。
4−6.変形例6
JAM119への、ICカード一覧の更新の完了の通知(第2の通知)は、実施形態で説明したものに限定されない。実施形態において、図20のステップS605における通知が、第2の通知の例である。しかし、第2の通知は、ICカード一覧の更新が完了したことをJAM119に通知するものであれば、具体的にはデータ、フラグ、命令、要求などどのようなものであってもよい。
4−7.変形例7
ブラウザ130への、専用アプリ140のダウンロードを中止させる指示(第3の指示)は、実施形態で説明したものに限定されない。実施形態において、図21のステップS704の中止の指示が、第3の指示の例である。しかし、第3の指示は、ブラウザ130に専用アプリ140のダウンロードの中止を直接的または間接的に指示するものであれば、具体的にはデータ、フラグ、命令、要求などどのようなものであってもよい。
4−8.変形例8
ブラウザ130が一覧管理プログラム150に要求を送る契機となる契機情報は、実施形態で説明したものに限定されない。実施形態において、図21のステップS701における「専用アプリ140Bをダウンロードさせる命令へのリンク」が契機情報の一例である。しかし、契機情報は、ブラウザ130が一覧管理プログラム150に要求を送る契機となる情報であれば、具体的にはデータ、フラグ、命令、要求などどのようなものであってもよい。
4−9.変形例9
図12、14−16において、各スクリプトの動作を、スクリプト自体の機能と、スクリプトから呼び出されるAPIやデバイスドライバの機能とに分けて説明したが、機能の分配は実施形態で説明したものに限定されない。例えば、実施形態でAPIの機能として説明された機能を実現するための命令群が、スクリプト本体に記述されていてもよい。すなわち、スクリプト本体がその機能を有していてもよい。あるいは、実施形態でスクリプトの機能として説明された機能を実現するための命令群が、スクリプト本体以外のAPI、モジュール、他のスクリプト、関数等に記述されていてもよい。要は、スクリプト本体に直接または間接的に記述されている命令群により、図12、14−16の処理が実現されるのであれば、ソフトウェア間の役割分担はどのようなものでもよい。
4−10.変形例10
アプリケーションプログラムを記述するプログラミング言語はJava(登録商標)に限定されない。C++など、他のオブジェクト指向プログラミング言語が用いられてもよい。あるいは、非オブジェクト指向プログラミング言語が用いられてもよい。また、ステップS601−602において説明した、アプリケーションプログラムをインストールする処理はあくまで例示であり、アプリケーションプログラムのファイル構成およびインストールする手順はこれに限定されない。
4−11.変形例11
スクリプトを記述するプログラミング言語はJavaスクリプトに限定されない。C++など、他のオブジェクト指向プログラミング言語や、Flashなどブラウザ上のコンテンツが用いられてもよい。あるいは、非オブジェクト指向プログラミング言語が用いられてもよい。
4−12.変形例12
スクリプトの所在を示す所在情報は、URLに限定されない。スクリプトの所在を特定できるのであれば、どのような情報が用いられてもよい。
4−13.変形例13
本稿でいう「ICカード」は、必ずしもカード型の形状を有していなくてもよい。「カード」とはICカード500の機能を象徴する語であって、形状を特定するものではない。ICカードは、アンテナと、個別にアクセス制限を設定可能な複数の記憶領域を有するメモリと、アンテナからの信号または第1の制御手段(実施形態ではCPU102)からの信号に応じてメモリにアクセスする第2の制御手段(実施形態ではプロセッサ503)とを有するものであれば、その形状はどのようなものであってもよい。また、ICカード500のメモリ504の記憶領域の構成は、図5に示したものに限定されない。メモリ504は、自由領域を有していなくてもよい。あるいは、メモリ504は、自由領域に加えてさらに別の第3の領域を有していてもよい。
4−14.変形例14
携帯電話機10のハードウェア構成は、図3で説明したものに限定されない。必要な機能を実現できるのであれば、携帯電話機10はどのようなハードウェア構成を有していてもよい。特に、複数のプログラムによる並列処理を可能とする構成として、携帯電話機10がマルチプロセッサ(複数のプロセッサ)を有する場合、これら複数のプロセッサが全体として本稿の「第1の制御手段」に相当する。この場合において、各プロセッサがそれぞれ異なるプログラムを実行してもよい。例えば、第1のプロセッサがJAMを実行し、第2のプロセッサがブラウザ等のアプリケーションプログラムを実行してもよい。この例では、JAMを実行している第1のプロセッサが「管理手段」として機能し、ブラウザを実行している第2のプロセッサが「第1のアプリケーション手段」として機能する。「第1のアプリケーション手段が管理手段にデータを送る」とは、第1のプロセッサと第2のプロセッサの間で信号のやりとりをすることをいう。
4−15.変形例15
上述の実施形態においてCPU102によって実行されるプログラムは、磁気記録媒体(磁気テープ、磁気ディスク(HDD(Hard Disk Drive)、FD(Flexible Disk))など)、光記録媒体(光ディスク(CD(Compact Disk)、DVD(Digital Versatile Disk))など)、光磁気記録媒体、半導体メモリ(フラッシュROMなど)などのコンピュータ読取り可能な記録媒体に記憶した状態で提供されてもよい。また、このプログラムは、インターネットのようなネットワーク経由でダウンロードされてもよい。
3…ヒンジ、4…キーパッド、5…マイクロホン、6…スピーカ、7…アンテナ、8…表示装置、9…筐体、10…携帯電話機、20…管理サーバ、30…サービスサーバ、40…リモート発行サーバ、50…サービスサーバ、60…サービスサーバ、70…ネットワーク、102…CPU、103…ROM、104…RAM、105…記憶部、106…操作部、107…表示部、108…通信部、109…バス、111…OS、112…アプリケーション、113…アプリケーション、114…Java実行環境、115…第1ストレージ、116…第2ストレージ、117…クラスライブラリ、118…JVM、119…JAM、120…API群、121…クライアントソフトウェア、122…デバイスドライバ、130…ブラウザ、131…スクリプト処理エンジン、132…API群、140…専用アプリ、150…一覧管理プログラム、301…記憶手段、302…通信手段、303…制御手段、401…記憶手段、402…通信手段、403…制御手段、500…ICカード、501…記憶手段、501…アンテナ、502…通信手段、502…ICチップ、503…制御手段、503…プロセッサ、504…メモリ、505…信号線、510…リーダ/ライタ、601…記憶手段、602…通信手段、603…制御手段

Claims (8)

  1. ネットワークを介して通信する通信手段と、
    特定の処理を実行するための第1のアプリケーションプログラム、前記第1のアプリケーションプログラムと異なる第2のアプリケーションプログラム、ならびに前記第1のアプリケーションプログラム上で動作するスクリプトおよび前記第2のアプリケーションプログラムを管理する第1の管理プログラムを実行する第1の制御手段と、
    アンテナと、個別にアクセス制限を設定可能な複数の記憶領域を有するメモリと、前記アンテナからの信号または前記第1の制御手段からの信号に応じて前記メモリにアクセスし、アクセスした結果を前記第1の制御手段に出力する第2の制御手段とを有するICカードと、
    前記メモリに設定されている記憶領域を特定する第1の識別子と、前記第1の識別子により特定される記憶領域に対してアクセス可能なソフトウェアが前記スクリプトおよび前記第2のアプリケーションプログラムのいずれであるかを示す起動モードを示す第2の識別子とを含む一覧を記憶する記憶手段と
    を有し、
    前記第2のアプリケーションプログラムが、前記複数の記憶領域のうち一の記憶領域にアクセスするためのプログラムであり、
    前記第1の管理プログラムを実行している前記第1の制御手段が、第1の管理手段として機能し、
    前記第1のアプリケーションプログラムを実行している前記第1の制御手段が、第1のアプリケーション手段として機能し、
    前記第2のアプリケーションプログラムを実行している前記第1の制御手段が、第2のアプリケーション手段として機能し、
    前記第1の管理手段が、前記第1のアプリケーション手段から、前記第2のアプリケーションプログラムを取得または実行する要求を受け、
    前記要求を受けた場合において、前記一覧において前記一の記憶領域を示す前記第1の識別子と対応する前記第2の識別子が前記スクリプトに対応する起動モードを示す識別子であるとき、または前記一の記憶領域を示す前記第1の識別子と対応する前記第2の識別子が前記一覧に含まれていないときは、前記第1の管理手段が、前記一覧において前記一の記憶領域を示す前記第1の識別子と対応する前記第2の識別子が前記第2のアプリケーションプログラムに対応する起動モードを示す識別子となるように、前記一覧の更新をする
    ことを特徴とする携帯端末。
  2. 前記要求を受けた場合において、前記一覧において前記一の記憶領域を示す前記第1の識別子と対応する前記第2の識別子が前記スクリプトに対応する起動モードを示す識別子であるとき、または前記一の記憶領域を示す前記第1の識別子と対応する前記第2の識別子が前記一覧に含まれていないときは、前記第1の管理手段が、前記第1のアプリケーション手段に対して前記第2のアプリケーションプログラムを取得または実行させる第1の指示をし、
    前記第1のアプリケーション手段が前記第1の指示に応じた処理をした結果を受けて、前記第1の管理手段が前記一覧の更新をする
    ことを特徴とする請求項1に記載の携帯端末。
  3. 前記第1の制御手段が、前記第2のアプリケーションプログラムのインストールを管理する第2の管理プログラムを実行し、
    前記第2の管理プログラムを実行している前記第1の制御手段が、第2の管理手段として機能し、
    前記第1の指示を受けると、前記第1のアプリケーション手段が、前記第2のアプリケーションプログラムをインストールするよう前記第2の管理手段に第2の指示をし、
    前記第2の指示を受けると、前記第2の管理手段が、前記第2のアプリケーションプログラムのインストールをし、
    前記インストールが完了すると、前記第2の管理手段が、前記インストールの完了を前記結果として前記第1の管理手段に第1の通知をする
    ことを特徴とする請求項2に記載の携帯端末。
  4. 前記更新が完了すると、前記第1の管理手段が、前記更新の完了を前記第2の管理手段に第2の通知をし、
    前記第2の管理手段が前記第2の通知を受けると、前記第2のアプリケーション手段が起動され、
    前記起動された前記第2のアプリケーション手段が、前記一の記憶領域にアクセスして初期データの書き込みを行い、
    前記第2のアプリケーション手段が前記書き込みをすると、前記第1の管理手段は、前記書き込みが完了したことを示すフラグを、前記一覧に追加する
    ことを特徴とする請求項3に記載の携帯端末。
  5. 前記要求が、前記第2のアプリケーションプログラムを取得する要求であり、
    前記要求を受けた場合において、前記一覧において前記一の記憶領域を示す前記第1の識別子と対応する前記第2の識別子が前記第2のアプリケーションプログラムに対応する起動モードを示す識別子であるときは、前記第1の管理手段が、前記第1のアプリケーション手段に対して前記第2のアプリケーションプログラムの取得を中止させる第3の指示をし、
    前記第3の指示を受けると、前記第1のアプリケーション手段が、前記第2のアプリケーションプログラムの取得を中止する
    ことを特徴とする請求項1−4のいずれかの項に記載の携帯端末。
  6. 情報を表示する表示手段を有し、
    前記特定の処理が、特定の書式で記述された特定データを、前記ネットワークから前記通信手段を介して受信し、前記受信した特定データに基づく情報を前記表示手段に表示させる処理であり、
    前記第1のアプリケーション手段が、前記第2のアプリケーションプログラムを取得または実行させるための契機となる契機情報を含む前記特定データを受信したことを契機として、前記第1の管理手段に対し前記要求を送る
    ことを特徴とする請求項1−5のいずれかの項に記載の携帯端末。
  7. 前記第1のアプリケーションプログラムが、前記スクリプトを実行するための命令群を含む
    ことを特徴とする請求項1−6のいずれかの項に記載の携帯端末。
  8. ネットワークを介して通信する通信手段と、
    特定の処理を実行するための第1のアプリケーションプログラム、前記第1のアプリケーションプログラムと異なる第2のアプリケーションプログラム、ならびに前記第1のアプリケーションプログラム上で動作するスクリプトを実行する第1の制御手段と、
    アンテナと、個別にアクセス制限を設定可能な複数の記憶領域を有するメモリと、前記アンテナからの信号または前記第1の制御手段からの信号に応じて前記メモリにアクセスし、アクセスした結果を前記第1の制御手段に出力する第2の制御手段とを有するICカードと、
    前記メモリに設定されている記憶領域を特定する第1の識別子と、前記第1の識別子により特定される記憶領域に対してアクセス可能なソフトウェアが前記スクリプトおよび前記第2のアプリケーションプログラムのいずれであるかを示す起動モードを示す第2の識別子とを含む一覧を記憶する記憶手段と
    を有し、
    前記第2のアプリケーションプログラムが、前記複数の記憶領域のうち一の記憶領域にアクセスするためのプログラムである
    携帯端末に、
    前記第1の制御手段が、前記第2のアプリケーションプログラムを取得または実行する要求を受けるステップと、
    前記要求を受けた場合において、前記一覧において前記一の記憶領域を示す前記第1の識別子と対応する前記第2の識別子が前記スクリプトに対応する起動モードを示す識別子であるとき、または前記一の記憶領域を示す前記第1の識別子と対応する前記第2の識別子が前記一覧に含まれていないときは、前記第1の制御手段が、前記一覧において前記一の記憶領域を示す前記第1の識別子と対応する前記第2の識別子が前記第2のアプリケーションプログラムに対応する起動モードを示す識別子となるように、前記一覧の更新をするステップと
    を実行させるための管理プログラム。
JP2009061609A 2009-03-13 2009-03-13 携帯端末および管理プログラム Expired - Fee Related JP4934161B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009061609A JP4934161B2 (ja) 2009-03-13 2009-03-13 携帯端末および管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009061609A JP4934161B2 (ja) 2009-03-13 2009-03-13 携帯端末および管理プログラム

Publications (2)

Publication Number Publication Date
JP2010218028A JP2010218028A (ja) 2010-09-30
JP4934161B2 true JP4934161B2 (ja) 2012-05-16

Family

ID=42976853

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009061609A Expired - Fee Related JP4934161B2 (ja) 2009-03-13 2009-03-13 携帯端末および管理プログラム

Country Status (1)

Country Link
JP (1) JP4934161B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5893258B2 (ja) * 2011-03-31 2016-03-23 フェリカネットワークス株式会社 情報処理装置および方法、並びにプログラム
JP6123539B2 (ja) * 2013-07-18 2017-05-10 大日本印刷株式会社 識別子生成装置、識別子生成方法、及び識別子生成プログラム
JP6181221B2 (ja) * 2016-02-24 2017-08-16 フェリカネットワークス株式会社 情報処理装置および方法、並びにプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002216081A (ja) * 2001-01-23 2002-08-02 Sony Corp Icカードデータ閲覧制御方法、情報端末装置、コンピュータプログラムおよびサーバ
JP4593156B2 (ja) * 2004-04-07 2010-12-08 株式会社エヌ・ティ・ティ・ドコモ 通信装置およびプログラムのダウンロード方法
JP4763332B2 (ja) * 2004-09-03 2011-08-31 株式会社エヌ・ティ・ティ・ドコモ 移動体端末装置並びに非接触カード機能管理システム及び非接触カード機能取得システム
JPWO2008050439A1 (ja) * 2006-10-26 2010-02-25 パナソニック株式会社 アプリケーション管理装置及びアプリケーション管理方法

Also Published As

Publication number Publication date
JP2010218028A (ja) 2010-09-30

Similar Documents

Publication Publication Date Title
US7720717B2 (en) Mobile terminal device, mobile terminal method, mobile terminal program, and electronic money server
JP4334247B2 (ja) 携帯端末装置および電子マネーサーバ
US8533708B2 (en) Usage period management system for applications
JP4678368B2 (ja) 携帯端末メモリ用データ書込装置及び方法、プログラム
EP1193986A1 (en) Method and system of remotely controlling a portable terminal and a computer product
US8626842B2 (en) Content transaction management server device, content-providing server device, and terminal device and control program
JP5191027B2 (ja) 携帯情報端末装置、ストレージサーバ、およびストレージ領域の提供方法
KR100698563B1 (ko) Ic 카드, 단말 장치, 및 데이터 통신 방법
WO2002093361A1 (fr) Systeme de gestion de programme stocke dans un bloc de stockage d'un terminal mobile
JPH11146118A (ja) データ処理システムおよびデータ処理システムのデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
US20070186107A1 (en) User authentication system and data providing system using the same
JP4889771B2 (ja) 携帯端末および管理プログラム
JPWO2008050439A1 (ja) アプリケーション管理装置及びアプリケーション管理方法
WO2004025464A1 (ja) アプリケーションによる記憶領域の使用を管理する方法
JP2003283494A (ja) 通信端末のアクセス制御方法、認定プログラム提供装置、管理装置および通信端末
CN105956892A (zh) 虚拟票据兑换方法、装置及系统
KR20110013184A (ko) 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체
JP4934161B2 (ja) 携帯端末および管理プログラム
JP2007206893A (ja) Icカード及びインストールシステム
JP2006018847A (ja) 携帯端末装置、携帯端末方法、携帯端末プログラム、提供サーバ装置、提供サーバ方法、及び提供サーバプログラム
JP4934162B2 (ja) 携帯端末および管理プログラム
JP4054626B2 (ja) 情報端末装置、及びプログラム
JP2003308397A (ja) コンテンツの取得状況通知方法、管理装置、プログラムおよび記録媒体
KR20060016416A (ko) 모바일 보안카드 발급시스템 및 방법과, 모바일 보안카드운용방법과, 모바일 보안카드 운용프로그램을 기록한컴퓨터가 읽을 수 있는 기록매체 및 모바일 보안카드운용프로그램을 탑재한 모바일 기기
JP2010193201A (ja) 携帯端末、通信システムおよびicカード制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120110

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120131

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120217

R150 Certificate of patent or registration of utility model

Ref document number: 4934161

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150224

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees