説明

情報処理装置、ソフトウェア更新制御方法、プログラム、および情報処理システム

【課題】非接触式ICチップを搭載したICチップ搭載装置内に記憶されたソフトウェアの書き換えを行わせることが可能な情報処理装置、ソフトウェア更新制御方法、プログラム、および情報処理システムを提供する。
【解決手段】ICチップを搭載したICチップ搭載装置と非接触通信可能な情報処理装置であって、少なくとも1以上の更新対象データと更新対象データそれぞれに対応する差分判定用データとを記憶する記憶部と、ICチップ搭載装置に対して更新対象データのバージョンに関する情報を要求し、要求に応じて送信されたバージョンに関する情報と差分判定用データとに基づいて、記憶部に記憶された更新対象データとICチップ搭載装置に記憶された更新対象データとの差分を判定する差分判定部と、差分判定部の判定結果に応じて差分データをICチップ搭載装置へ送信する差分データ送信部とを備える情報処理装置が提供される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、ソフトウェア更新制御方法、プログラム、および情報処理システムに関する。
【背景技術】
【0002】
近年、非接触式IC(Integrated Circuit)カードや、非接触式ICチップを搭載した携帯電話など、リーダ/ライタ(または、リーダ/ライタ機能を有する情報処理装置)と非接触式に通信可能なICチップ搭載装置が普及している。
【0003】
上記のようなリーダ/ライタと非接触式に通信可能なICチップ搭載装置は、耐タンパ性を有するICチップを備えることにより、例えば、電子マネーなどデータの改竄が問題となるデータの送受信や更新を安全に行うことができる。したがって、上記のようなリーダ/ライタと非接触式に通信可能な非接触式ICチップを搭載したICチップ搭載装置を利用した様々なサービスの提供が社会的に広がっている。そして、サービスの提供の広がりに伴い、非接触式ICチップを搭載した携帯電話などのICチップ搭載装置の普及がさらに進んでいる。
【0004】
また、携帯電話などのICチップ搭載装置は、年々多機能、高機能化が進んでいる。例えば、ICチップ搭載装置に搭載されたICチップの中には、交通機関向けのサービスや電子マネーサービス、あるいは入退室管理などのセキュリティサービスなど複数のサービスに対応するものが登場している。また、ICチップ搭載装置には、例えば、「携帯電話・移動体端末向けの1セグメント部分受信サービス」などに対応した地上デジタル放送受信機能や、音楽再生機能、あるいはWebページを閲覧するためのブラウザ(Browser)機能が搭載され、またその強化が図られている。
【0005】
例えば、上記のように複数のサービスに対応したICチップを搭載したICチップ搭載装置に対してサービスを提供する技術としては、特許文献1が挙げられる。
【0006】
【特許文献1】特開2005−56122号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
ICチップ搭載装置の多機能、高機能化が進むにつれ、ICチップ搭載装置に搭載された機能を実現するためのソフトウェアにはより多くの不具合(いわゆる、バグ)が生じるようになった。そのため、ICチップ搭載装置のメーカー(製造者)は、ICチップ搭載装置のユーザが所有するICチップ搭載装置内のソフトウェアの不具合などの修正、あるいは、機能追加や機能の強化を行うために、例えば、携帯電話の基地局からの電波を介して、あるいはインターネット(Internet)を通じて書き換え用のソフトウェアを提供している。
【0008】
しかしながら、例えば、ICチップ搭載装置が基地局からの電波を受信できない場合には、ICチップ搭載装置は書き換え用のソフトウェアを受信できず、ICチップ外に記憶されるソフトウェアの書き換えを行うことはできない。例えば、インターネットへの接続環境がない場合にも同様である。
【0009】
さらに、メーカーから提供される書き換え用のソフトウェアをICチップ搭載装置が受信するためには、例えば、ユーザがアップデート(update)操作(ソフトウェアの更新操作)を手動で行わなければならない、あるいは、ユーザが自動的にアップデートを行う設定やアップデートの予約設定を行わなければならないなど、ユーザに所定の操作を強いていた。
【0010】
また、従来のICチップを搭載したICチップ搭載装置に対してサービスを提供する技術では、例えば、ICチップ搭載装置が基地局からの電波を受信できない場所であっても、ICチップ搭載装置が搭載するICチップを用いて非接触式にサービスを提供することはできる。しかしながら、従来のICチップを搭載したICチップ搭載装置に対してサービスを提供する技術では、ICチップ搭載装置に搭載された機能を実現するためにICチップ内、および/または、ICチップ外に記憶されるソフトウェアの書き換えについては、何らの考慮もなされていない。したがって、従来のICチップを搭載したICチップ搭載装置に対してサービスを提供する技術では、ICチップ搭載装置に搭載された機能を実現するためにICチップ内、および/または、ICチップ外に記憶されるソフトウェアの書き換えを行うことはできない。
【0011】
したがって、非接触式ICチップを搭載したICチップ搭載装置内に記憶されたソフトウェアの書き換えを行わせることが可能な仕組みが希求されていた。
【0012】
本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、非接触式ICチップを搭載したICチップ搭載装置内に記憶されたソフトウェアの書き換えを行わせることが可能な、新規かつ改良された情報処理装置、ソフトウェア更新制御方法、プログラム、および情報処理システムを提供することにある。
【課題を解決するための手段】
【0013】
上記目的を達成するために、本発明の第1の観点によれば、ICチップを搭載したICチップ搭載装置と非接触通信可能な情報処理装置であって、少なくとも1以上の更新対象データと、上記更新対象データそれぞれに対応する差分判定用データとを記憶する記憶部と、上記ICチップ搭載装置に対して上記ICチップ搭載装置に記憶された更新対象データのバージョンに関する情報を要求し、上記要求に応じて上記ICチップ搭載装置から送信された上記バージョンに関する情報と上記差分判定用データとに基づいて、上記記憶部に記憶された上記更新対象データと上記ICチップ搭載装置に記憶された更新対象データとの差分を判定する差分判定部と、上記差分判定部の判定結果に応じて、上記記憶部に記憶された上記更新対象データと上記ICチップ搭載装置に記憶された更新対象データとの差分に対応する差分データを、上記ICチップ搭載装置へ送信する差分データ送信部とを備える情報処理装置が提供される。
【0014】
上記情報処理装置は、記憶部と、差分判定部と、差分データ送信部とを備えることができる。記憶部は、書き換えの対象(更新対象)となる少なくとも1以上の更新対象データと、差分の判定に用いることが可能な更新対象データそれぞれに対応する差分判定用データとを記憶することができる。差分判定部は、ICチップ搭載装置に対してICチップ搭載装置に記憶された更新対象データのバージョンに関する情報を要求することができる。また、差分判定部は、送信したバージョンに関する情報の要求に対して返信されたバージョンに関する情報と、記憶部に記憶された差分判定用データとに基づいて、記憶部に記憶された更新対象データとICチップ搭載装置に記憶された更新対象データとの差分を判定することができる。差分データ送信部は、差分判定部における判定結果に応じて、差分に対応する差分データをICチップ搭載装置へ送信することができる。かかる構成により、非接触式ICチップを搭載したICチップ搭載装置内に記憶されたソフトウェアの書き換えを行わせることができる。
【0015】
また、上記差分データの送信の完了を判定する送信完了判定部と、上記ICチップ搭載装置との間で行われるサービス処理を行う処理部とをさらに備え、上記処理部は、上記送信完了判定部の判定結果に応じてサービス処理を開始してもよい。
【0016】
かかる構成により、ソフトウェアの書き換え処理とサービス処理とを連続して行うことができるので、ユーザが各種サービスの提供を受けるための操作を行うだけで、ICチップ搭載装置内に記憶されたソフトウェアの書き換えを行わせることができる
【0017】
また、上記差分判定部は、上記更新対象データのバージョンに関する情報として、上記ICチップ搭載装置に記憶された各更新対象データのバージョン番号を要求してもよい。
【0018】
かかる構成により、ICチップ搭載装置に記憶された各更新対象データのバージョンを把握することができる。
【0019】
また、上記記憶部は、上記記憶部に記憶された更新対象データのバージョンと、上記更新対象データのその他のバージョンとの間の差分情報が記憶されたテーブルを上記差分判定用データとして記憶し、上記差分判定部は、上記ICチップ搭載装置から送信されたバージョン番号と上記テーブルとに基づいて、上記差分を判定してもよい。
【0020】
かかる構成により、差分を判定し、差分に相当するデータの書き換えを行わせることができるので、全てのデータを書き換える処理を用いる場合と比べてより短い時間で書き換え処理を完了させることができる。
【0021】
また、上記差分判定部は、上記更新対象データのバージョンに関する情報として、上記ICチップ搭載装置に記憶された更新対象データのデータブロックの情報が記録されたブロック情報を要求してもよい。
【0022】
かかる構成により、ICチップ搭載装置に記憶された各更新対象データのバージョンを把握することができる。
【0023】
また、上記記憶部は、上記記憶部に記憶された更新対象データごとにデータブロックの情報が記録されたブロック情報を、上記差分判定用データとして記憶し、
上記差分判定部は、上記ICチップ搭載装置から送信されたブロック情報と上記記憶部に記憶されたブロック情報とに基づいて、上記差分を判定してもよい。
【0024】
かかる構成により、差分を判定し、差分に相当するデータの書き換えを行わせることができるので、全てのデータを書き換える処理を用いる場合と比べてより短い時間で書き換え処理を完了させることができる。
【0025】
また、上記ICチップ搭載装置に対して上記ICチップ搭載装置の装置種別を規定する装置種別情報を要求し、上記要求に応じて上記ICチップ搭載装置から送信される装置種別情報に基づいて上記ICチップ搭載装置の装置種別を判定する通信対象判定部をさらに備え、上記差分判定部は、上記通信対象判定部の判定結果に応じて上記更新対象データのバージョンに関する情報の要求を行ってもよい。
【0026】
かかる構成により、ICチップ搭載装置の装置種別に応じてICチップ搭載装置に記憶された更新対象データの更新をフレキシブルに制御することができる。
【0027】
また、上記差分判定部は、上記通信対象判定部が上記ICチップ搭載装置をICカードと判定した場合には、上記更新対象データのバージョンに関する情報の要求を行い、上記通信対象判定部が上記ICチップ搭載装置をICカードではないと判定した場合には、上記更新対象データのバージョンに関する情報の要求を行わなくてもよい。
【0028】
かかる構成により、例えば、他のソフトウェアの更新手段を有さないICカードに対しては、ソフトウェア(更新対象データ)の書き換えを行い、また、他のソフトウェアの更新手段を有する携帯電話などに対しては、ソフトウェア(更新対象データ)の書き換えを行わないなど、ICチップ搭載装置の装置種別に応じてICチップ搭載装置に記憶された更新対象データの更新をフレキシブルに制御することができる。
【0029】
また、上記差分判定部は、上記ICチップ搭載装置のICチップ内の内部メモリ、および/または、ICチップ外の外部メモリに記憶された更新対象データのバージョンに関する情報を要求してもよい。
【0030】
かかる構成により、ICチップ搭載装置が備えるICチップの内外を問わず、非接触式ICチップを搭載したICチップ搭載装置内に記憶されたソフトウェアの書き換えを行わせることができる。
【0031】
また、上記差分判定部は、上記ICチップ搭載装置のICチップ内の内部メモリにおけるアクセス制限が設定可能なアクセス制限領域に記憶された更新対象データのバージョンに関する情報を要求してもよい。
【0032】
かかる構成により、非接触式ICチップを搭載したICチップ搭載装置内に記憶されたセキュア(secure)なソフトウェアの書き換えを行わせることができる。
【0033】
また、上記目的を達成するために、本発明の第2の観点によれば、少なくとも1以上の更新対象データと、上記更新対象データそれぞれに対応する差分判定用データとを記憶する記憶部を備え、ICチップを搭載したICチップ搭載装置と非接触通信可能な情報処理装置におけるソフトウェア更新制御方法であって、上記ICチップ搭載装置に対して上記ICチップ搭載装置に記憶された更新対象データのバージョンに関する情報を要求するステップと、上記要求するステップに応じて上記ICチップ搭載装置から送信された上記更新対象データのバージョンに関する情報と、上記差分判定用データとに基づいて、上記記憶部に記憶された上記更新対象データと上記ICチップ搭載装置に記憶された更新対象データとの差分を判定するステップと、上記判定するステップにおける判定結果に応じて、上記記憶部に記憶された上記更新対象データと上記ICチップ搭載装置に記憶された更新対象データとの差分に対応する差分データを、上記ICチップ搭載装置へ送信するステップとを有するソフトウェア更新制御方法が提供される。
【0034】
かかる方法を用いることにより、非接触式ICチップを搭載したICチップ搭載装置内に記憶されたソフトウェアの書き換えを行わせることができる。
【0035】
また、上記目的を達成するために、本発明の第3の観点によれば、少なくとも1以上の更新対象データと、上記更新対象データそれぞれに対応する差分判定用データとを記憶する記憶部を備え、ICチップを搭載したICチップ搭載装置と非接触通信可能な情報処理装置に用いることが可能なプログラムであって、上記ICチップ搭載装置に対して上記ICチップ搭載装置に記憶された更新対象データのバージョンに関する情報を要求するステップ、上記要求するステップに応じて上記ICチップ搭載装置から送信された上記更新対象データのバージョンに関する情報と、上記差分判定用データとに基づいて、上記記憶部に記憶された上記更新対象データと上記ICチップ搭載装置に記憶された更新対象データとの差分を判定するステップ、上記判定するステップにおける判定結果に応じて、上記記憶部に記憶された上記更新対象データと上記ICチップ搭載装置に記憶された更新対象データとの差分に対応する差分データを、上記ICチップ搭載装置へ送信するステップをコンピュータに実行させるためのプログラムが提供される。
【0036】
かかるプログラムにより、非接触式ICチップを搭載したICチップ搭載装置内に記憶されたソフトウェアの書き換えを行わせることができる。
【0037】
また、上記目的を達成するために、本発明の第4の観点によれば、情報処理装置と、上記情報処理装置と非接触通信可能なICチップを搭載したICチップ搭載装置とを有する情報処理システムであって、上記情報処理装置は、少なくとも1以上の更新対象データと、上記更新対象データそれぞれに対応する差分判定用データとを記憶する記憶部と、上記ICチップ搭載装置に対して上記ICチップ搭載装置に記憶された更新対象データのバージョンに関する情報を要求し、上記要求に応じて上記ICチップ搭載装置から送信された上記バージョンに関する情報と上記差分判定用データとに基づいて、上記記憶部に記憶された上記更新対象データと上記ICチップ搭載装置に記憶された更新対象データとの差分を判定する差分判定部と、上記差分判定部の判定結果に応じて、上記記憶部に記憶された上記更新対象データと上記ICチップ搭載装置に記憶された更新対象データとの差分に対応する差分データを、上記ICチップ搭載装置へ送信する差分データ送信部とを備え、上記ICチップ搭載装置は、上記ICチップの内部に設けられ、上記情報処理装置から送信される上記バージョンに関する情報の要求、または上記差分データを受信し、上記バージョンに関する情報の要求に応じた更新対象データのバージョンに関する情報を上記情報処理装置へ送信するチップ内通信部と、上記ICチップの内部に設けられ、更新対象データを記憶可能な内部メモリと、上記ICチップの外部に設けられ、更新対象データを記憶可能な外部メモリと、上記チップ内通信部が受信した上記バージョンに関する情報の要求に応じて、上記内部メモリ、および/または、上記外部メモリから上記更新対象データのバージョンに関する情報を読み出して送信させ、上記チップ内通信部が受信した上記差分データに基づいて、上記内部メモリ、および/または、上記外部メモリに記憶された更新対象データを更新するメモリ管理部とを備える情報処理システムが提供される。
【0038】
かかる構成により、非接触式ICチップを搭載したICチップ搭載装置内に記憶されたソフトウェアの書き換えを行わせることができる。
【発明の効果】
【0039】
本発明によれば、非接触式ICチップを搭載したICチップ搭載装置内に記憶されたソフトウェアの書き換えを行わせることができる。
【発明を実施するための最良の形態】
【0040】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0041】
(本発明の実施形態が対象とする問題の一例)
本発明の実施形態に係る情報処理システムについて説明する前に、まず、本発明の実施形態に係る情報処理システムが対象とする問題の一例について説明する。
【0042】
図1は、本発明の実施形態に係る情報処理システムが対象とする問題の一例を説明するための説明図であり、ユーザがICチップを搭載した携帯電話を使用する場合を例に挙げている。
【0043】
図1(a)に示すように、携帯電話のユーザは、所定の画面からアップデート操作を行うことによって、携帯電話の基地局を介してサーバ(Server)と通信を行い、例えば、ファームウェア(firmware)などの各種ソフトウェアの書き換え(更新)を行うことができる。
【0044】
しかしながら、各種ソフトウェアの書き換えを行うためには、ユーザは、例えば、手動でアップデートを開始する(図1(a)の「アップデート開始」)、自動的にアップデートを行うための設定を行う(図1(a)の「自動設定」)、あるいは、自動的にアップデートを行う時間などを予約するための設定を行う(図1(a)の「予約設定」)など、所定の操作を行わなければならない。
【0045】
また、基地局からの電波が届かない場所では携帯電話は通信を行えないことから、たとえ、ユーザが各種ソフトウェアの書き換えに係る所定の操作を行ったとしても、携帯電話内の各種ソフトウェアの書き換えを行うことができるとは限らない。
【0046】
一方、図1(b)に示すように、ユーザがサービス提供場所に設置されているリーダ/ライタ(情報処理装置)へICチップを搭載した携帯電話をかざすことにより、当該サービス提供場所が基地局からの電波が届かない場所であったとしても、リーダ/ライタと携帯電話とは通信を行うことができる。これは、リーダ/ライタと携帯電話に搭載されたICチップとが、リーダ/ライタから送信される、例えば13.56MHzなど所定周波数の磁界(以下、「搬送波」という。)を用いて通信を行うことができるためである。より具体的には、リーダ/ライタが搬送波信号をのせた搬送波を送信し、搬送波をアンテナで受信したICチップが負荷変調によって受信した搬送波信号に対する応答信号を返信することによって、リーダ/ライタと携帯電話とは通信を行うことができる。したがって、ユーザは、サービス提供場所に設置されているリーダ/ライタへ携帯電話をかざすことにより、例えば、電子マネーを用いた決済を行うことができる。
【0047】
しかしながら、従来のリーダ/ライタと携帯電話との間の通信は、例えば、図1(b)に示すような電子マネーを用いた決済サービスや、自動改札機を用いた交通機関向けのサービス、あるいは入退室管理などのセキュリティサービスなど、リーダ/ライタ側が提供しているサービスに関する処理(サービス処理)を行うことを目的としたものである。したがって、図1(b)に示すような所定のサービス処理を提供するリーダ/ライタと携帯電話との間の通信においては、図1(a)に示すような携帯電話内の各種ソフトウェアを書き換えることについて、何らの考慮もなされていない。したがって、例えば、ユーザがサービス提供場所に設置されているリーダ/ライタへ携帯電話をかざしたとしても、携帯電話内の各種ソフトウェアは更新されない。
【0048】
(本発明の実施形態の解決アプローチ)
そこで、本発明の実施形態に係る情報処理システムでは、上記のような問題を解決するためのアプローチとして、図1(b)に示すように、非接触式ICチップを搭載したICチップ搭載装置をリーダ/ライタ(情報処理装置)へかざすだけで非接触式にICチップ搭載装置内に記憶されたソフトウェアの書き換えを可能とさせる。本発明の実施形態に係る情報処理システムは、上記のアプローチをとることによって、例えば、ユーザが、図1(a)に示すような従来の操作を行わなくとも、ユーザが所定のサービスを受けるための操作(例えば、図1(b)に示す「かざす」操作)を行うだけでICチップ搭載装置内に記憶されたソフトウェアの書き換えを行わせることができる。また、本発明の実施形態に係る情報処理システムは、たとえ、基地局からの電波が届かない場所であってもICチップ搭載装置内に記憶されたソフトウェアの書き換えを行わせることができる。
【0049】
以下、本発明の実施形態に係る情報処理システムについて説明する。
【0050】
(第1の実施形態)
図2は、本発明の第1の実施形態に係る情報処理システムを示すブロック図である。なお、以下では、本発明の第1の実施形態に係る情報処理システムを構成する情報処理装置として、リーダ/ライタを例に挙げて説明するが、本発明の実施形態に係る情報処理装置は、リーダ/ライタに限られない。例えば、本発明の第1の実施形態に係る情報処理装置は、リーダ/ライタ機能(すなわち、搬送波を主体的に送信する機能)を備えた携帯電話などの携帯型通信装置や、リーダ/ライタ機能を備えたPC(Personal Computer)などのコンピュータ、交通機関の自動改札機、入館や入室などに用いられるセキュリティ装置などに適用することができる。
【0051】
[リーダ/ライタ100(情報処理装置)]
リーダ/ライタ100は、リーダ/ライタ通信部102と、記憶部104と、差分判定部106と、差分データ送信部108と、送信完了判定部110と、処理部112とを備えることができる。
【0052】
また、リーダ/ライタ100は、MPU(Micro Processing Unit)などで構成され、制御用プログラムなどを用いて様々な演算処理を行いリーダ/ライタ100全体を制御するリーダ/ライタ制御部(図示せず)、リーダ/ライタ制御部(図示せず)が使用するプログラムや演算パラメータなどの制御用データが記録されたROM(Read Only Memory;図示せず)、リーダ/ライタ制御部(図示せず)により実行されるプログラムなどを一次記憶するRAM(Random Access Memory;図示せず)、ユーザが操作可能な操作部(図示せず)、表示部(図示せず)、外部装置(図示せず)と通信を行うための外部通信部(図示せず)などを備えてもよい。リーダ/ライタ100は、例えば、データの伝送路としてのバス(bus)で各構成要素間を接続することができる。
【0053】
ここで、操作部(図示せず)としては、例えば、キーボードやマウスなどの操作入力デバイスや、ボタン、方向キー、ジョグダイヤルなどの回転型セレクター、あるいは、これらの組み合わせなどが挙げられるが、上記に限られない。また、表示部(図示せず)としては、例えば、LCD(Liquid Crystal Display;液晶ディスプレイ)、有機ELディスプレイ(organic ElectroLuminescence display;または、OLEDディスプレイ(Organic Light Emitting Diode display)とも呼ばれる。)などが挙げられるが、上記に限られない。なお、操作部(図示せず)と表示部(図示せず)とは、例えば、タッチスクリーン(touch screen)で構成された一体の部とすることもできる。
【0054】
また、リーダ/ライタ100と外部装置(図示せず)とは、例えば、USB(Universal Serial Bus)端子やIEEE1394規格の端子などを介して物理的に接続されてもよいし、また、WUSB(Wireless Universal Serial Bus)やIEEE802.11などを利用して無線で接続することもできる。さらに、リーダ/ライタ100と外部装置(図示せず)とは、例えば、ネットワークを介して接続することもできる。ネットワークとしては、例えば、LAN(Local Area Network)やWAN(Wide Area Network)など有線ネットワーク、MIMO(Multiple-Input Multiple-Output)を用いたWLAN(Wireless Local Area Network)などの無線ネットワーク、あるいは、TCP/IP(Transmission Control Protocol/Internet Protocol)などの通信プロトコルを用いたインターネットなどが挙げられるが、上記に限られない。したがって、外部通信部(図示せず)は、外部装置(図示せず)との接続形態に応じたインタフェースを有することができる。
【0055】
また、リーダ/ライタ100は、例えば、リーダ/ライタ制御部(図示せず)、差分判定部106、差分データ送信部108、送信完了判定部110、および処理部112が、それぞれ別体のMPUなどを備える構成とすることができるが、かかる構成に限られない。例えば、リーダ/ライタ100は、リーダ/ライタ制御部(図示せず)、差分判定部106、差分データ送信部108、送信完了判定部110、および処理部112を、MPUなどで構成された一体の部とすることもできる。
【0056】
リーダ/ライタ通信部102は、ICチップ搭載装置150と、搬送波を用いて通信を行うための部である。リーダ/ライタ通信部102は、例えば、ICチップ搭載装置150が備えるICチップ内に記憶されるデータに対するデータ読み出し命令やデータ書き込み命令などの各種命令の送信や、後述する更新対象データのバージョンに関する情報の要求の送信などの各種命令の送信、およびICチップ搭載装置150との間でのデータの送受信を行う。
【0057】
リーダ/ライタ通信部102は、例えば、送受信アンテナとしての所定のインダクタンスをもつコイルと所定の静電容量をもつキャパシタとからなる共振回路、当該共振回路から搬送波信号をのせた搬送波を送信するためにASK変調(Amplitude Shift Keying)を行う変調回路、変調回路の出力を増幅する増幅回路、および当該共振回路のアンテナ端における電圧の振幅変化を包絡線検波してICチップ搭載装置150からの応答信号の復調を行う復調回路とで構成することができる。また、リーダ/ライタ通信部102が送信する各種命令やデータの生成、送信制御は、例えば、後述する差分データ送信部108や処理部112が行うことができるが、上記に限られず、リーダ/ライタ制御部(図示せず)が行うこともできる。
【0058】
記憶部104は、リーダ/ライタ100が備える記憶手段であり、各種の情報を記憶することができる。ここで、記憶部104に記憶される情報としては、例えば、以下の(A)〜(E)が挙げられる。なお、記憶部104に記憶される情報が以下の(A)〜(E)に限られないことは、言うまでもない。
(A)リーダ/ライタ100が対応するサービスを表すコード(例えば、サービスコード、システムコードなど)
(B)リーダ/ライタ100が対応するサービスに関するデータ(例えば、クーポンのデータなど)
(C)ICチップ搭載装置150から取得したデータ
(D)更新対象データ
(E)差分判定用データ
【0059】
ここで、上記(D)に示す更新対象データとは、リーダ/ライタ100がICチップ搭載装置150に対してソフトウェアの書き換えを行わせることが可能な、書き換えの対象となるデータである。つまり、ICチップ搭載装置150には、リーダ/ライタ100の記憶部104に記憶された更新対象データと同種のデータが記憶されている場合があり、また、記憶されていない場合もある。以下では、ICチップ搭載装置150に記憶された、リーダ/ライタ100が記憶する更新対象データと同種のデータも「更新対象データ」とよぶ。
【0060】
本発明の実施形態に係る更新対象データとしては、例えば、地上デジタル放送受信機能を実現するアプリケーションソフトウェア(application software;以下、「アプリケーション」という。)、音楽再生機能を実現するアプリケーション、あるいはWebページを閲覧するためのブラウザ機能を実現するアプリケーションなどの各種アプリケーションや、ハードウェアの基本的な制御を行なうためにICチップ搭載装置150に組み込まれたファームウェアなどが挙げられるが、上記に限られない。図2では、アプリケーションA120、アプリケーションB122、ファームウェア124、…が記憶部104に記憶された例を示している。
【0061】
また、上記(E)に示す差分判定用データとは、リーダ/ライタ100に記憶された更新対象データと、ICチップ搭載装置150に記憶された更新対象データとの差分を判定するためのデータである。リーダ/ライタ100は、記憶する更新対象データごとにそれぞれ対応する差分判定用データを記憶することができる。図2では、アプリケーションA120に対応する差分判定用データA126、アプリケーションB122に対応する差分判定用データB128、ファームウェア124に対応する差分判定用データC130、…が記憶部104に記憶された例を示している。
【0062】
また、記憶部104としては、例えば、ハードディスク(Hard Disk)などの磁気記録媒体や、EEPROM(Electronically Erasable and Programmable Read Only Memory)、フラッシュメモリ(flash memory)、MRAM(Magnetoresistive Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)、PRAM(Phase change Random Access Memory)などの不揮発性メモリ(nonvolatile memory)が挙げられるが、上記に限られない。
【0063】
差分判定部106は、ICチップ搭載装置150に記憶された更新対象データと、記憶部104に記憶された更新対象データとの間の差分を判定する。より具体的には、差分判定部106は、以下の〔1〕、〔2〕の処理を行うことができる。
【0064】
〔1〕ICチップ搭載装置150に対する更新対象データのバージョンに関する情報の要求
差分判定部106は、ICチップ搭載装置150に対して、記憶部104に記憶された各更新対象データに対応するICチップ搭載装置150に記憶された更新対象データのバージョンに関する情報を要求する(すなわち、リーダ/ライタ通信部102に当該要求を送信させる。)。ここで、更新対象データのバージョンに関する情報とは、更新対象データのバージョンを特定するために用いる情報である。差分判定部106が要求する更新対象データのバージョンに関する情報としては、例えば、各更新対象データのバージョン番号、更新対象データそれぞれにおけるブロックの情報が記録されたブロック情報が挙げられるが、上記に限られない。
【0065】
また、差分判定部106は、ポーリング(polling)に対してICチップ搭載装置150からの返答があった場合(すなわち、通信対象としてのICチップ搭載装置150が検出された場合)に、更新対象データのバージョンに関する情報の要求を、リーダ/ライタ通信部102を介して送信することができる。なお、上記ポーリングは、例えば、リーダ/ライタ制御部(図示せず)がリーダ/ライタ通信部102を介して送信することができるが、上記に限られない。
【0066】
さらに、差分判定部106は、上記要求において、記憶部104に記憶された各更新対象データごとにICチップ搭載装置150内の記憶場所を指定することもできる。ここで、差分判定部106が指定するICチップ搭載装置150内の記憶場所としては、例えば、ICチップ搭載装置150が備えるICチップ内の内部メモリのアクセス制限がかかった領域、ICチップ搭載装置150が備えるICチップ内の内部メモリのアクセス制限がかかっていない領域、あるいは、ICチップ搭載装置150が備えるICチップ外の外部メモリが挙げられるが、上記に限られない。また、ICチップ内の内部メモリのアクセス制限がかかった領域を指定する場合には、差分判定部106は、当該アクセス制限がかかった領域にアクセスするための鍵情報(例えば、暗号鍵情報)を上記要求と併せて送信することができる。差分判定部106は、例えば、リーダ/ライタ100の記憶部104に記憶された鍵情報(図示せず)を読み出すことによって、当該鍵情報を送信することができるが、上記に限られず、例えば、外部装置としての鍵管理装置(図示せず)から当該鍵情報を取得して送信することもできる。
【0067】
〔2〕差分の判定
差分判定部106は、送信した更新対象データのバージョンに関する情報の要求に対してICチップ搭載装置150から送信(返信)された、ICチップ搭載装置150に記憶された更新対象データのバージョンに関する情報と、記憶部104に記憶された差分判定用データとに基づいて、ICチップ搭載装置150に記憶された更新対象データと、記憶部104に記憶された更新対象データとの間の差分を判定する。
【0068】
〔2−1〕更新対象データのバージョンに関する情報が更新対象データのバージョン番号の場合
差分判定部106が要求する更新対象データのバージョンに関する情報が更新対象データのバージョン番号である場合、記憶部104には、差分判定用データとして、例えば、記憶部104に記憶された更新対象データのバージョンと更新対象データのその他のバージョンとの間の差分を特定するための情報(以下、「差分情報」という。)が記憶されたテーブルが、更新対象データごとに記憶される。
【0069】
差分判定部106は、ICチップ搭載装置150から送信された更新対象データのバージョン番号によってICチップ搭載装置150に記憶された更新対象データのバージョンを特定し、上記テーブルを用いることにより差分情報を一意に特定することができる。
【0070】
〔2−2〕更新対象データのバージョンに関する情報が更新対象データのブロック情報である場合
差分判定部106が要求する更新対象データのバージョンに関する情報が更新対象データのブロック情報である場合、記憶部104には、差分判定用データとして、例えば、記憶部104に記憶された更新対象データのブロック情報が、更新対象データごとに記憶される。
【0071】
差分判定部106は、ICチップ搭載装置150から送信された更新対象データのブロック情報と、ICチップ搭載装置150から送信された更新対象データに対応する記憶部104に記憶された更新対象データのブロック情報とを比較することによって、差分情報を特定することができる。
【0072】
差分判定部106は、例えば、上記の〔1〕、〔2〕の処理によって、ICチップ搭載装置150に記憶された更新対象データと、記憶部104に記憶された更新対象データとの間の差分を判定することができる。
【0073】
なお、上記では、差分判定部106が、ICチップ搭載装置150に対して、記憶部104に記憶された各更新対象データに対応するICチップ搭載装置150に記憶された更新対象データのバージョンに関する情報を要求することを示したが、上記に限られない。例えば、差分判定部106は、ICチップ搭載装置150に対して、記憶部104に記憶された各更新対象データに対応するか否かを問わず、ICチップ搭載装置150に記憶された全てのアプリケーション、ファームウェアなどのバージョンに関する情報を要求することもできる。
【0074】
また、差分判定部106は、記憶部104に記憶された更新対象データに対応する更新対象データが、ICチップ搭載装置150に記憶されていない場合、すなわち、差分判定部106が送信する更新対象データのバージョンに関する情報の要求に対して、ICチップ搭載装置150からバージョン番号やブロック情報が返信されない場合にも、差分を判定することができる。上記の場合には、差分判定部106は、例えば、記憶部104に記憶された更新対象データそのものを差分と判定し、また、差分データ送信部108は、記憶部104に記憶された更新対象データそのものを差分に対応するデータ(差分データ)として送信することができる。したがって、リーダ/ライタ100は、書き換え処理の前においてICチップ搭載装置150に記憶されていなかったソフトウェアを、ICチップ搭載装置150に新規に記憶させる(すわなち、ソフトウェアの移行を行う)こともできる。
【0075】
差分データ送信部108は、差分判定部106の判定結果に基づいて、ICチップ搭載装置150に記憶された更新対象データと、記憶部104に記憶された更新対象データとの間の差分に対応するデータ(以下、「差分データ」という。)をリーダ/ライタ通信部102を介して送信する(すなわち、リーダ/ライタ通信部102に差分データを送信させる。)。より具体的には、差分データ送信部108は、例えば、差分判定部106が特定した差分情報に基づいて、差分情報が示す更新対象データの所定のブロックを差分データとして送信する。また、差分データ送信部108は、差分データとともに、例えば、差分データがどの更新対象データのどのブロックのデータであるかを示す差分ブロック情報を送信することもできる。
【0076】
送信完了判定部110は、差分データ送信部108が送信する各更新対象データの差分データの送信の完了を判定する。ここで、送信完了判定部110は、例えば、差分データの送信に対するICチップ搭載装置150からの応答(例えば、ICチップ搭載装置150における書き換え処理の処理結果)に応じて完了を判定することができるが、上記に限られない。また、送信完了判定部110は、判定結果を、例えば、各更新対象データを特定する所定ビット(bit)のデータと、ICチップ搭載装置150における差分データの書き換え処理が完了したか否かを示す2ビットのデータ(例えば「00」が未判定、「01」が差分データの送信対象外、「10」が差分データの書き換え処理が未完、「11」が差分データの書き換え処理が完了)とで表すことができるが、上記に限られない。ここで、上記判定結果の情報は、例えば、送信完了判定部110が記憶手段を備え、当該記憶手段に記録、保持されてもよい。送信完了判定部110が備える記憶手段としては、例えば、SDRAM(Synchronous Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性メモリ(volatile memory)が挙げられるが、上記に限られず、例えば、フラッシュメモリなどの不揮発性メモリであってもよい。なお、上記判定結果の情報は、例えば、記憶部104に記録されてもよいことは、言うまでもない。
【0077】
処理部112は、リーダ/ライタ100とICチップ搭載装置150との間の通信を介して提供されるサービスに関するデータ処理(以下、「サービス処理」という。)を行うことができる。ここで、サービス処理としては、例えば、ICチップ搭載装置150に記憶された電子マネーを用いた決済に係るデータ処理(例えば、電子マネーの残金確認処理、電子マネーの引き落とし処理)、ICチップ搭載装置150に記憶されたチケットの確認処理(例えば、日時の確認などの照合処理)、入館・入室時のセキュリティチェックのための照合処理などが挙げられるが、上記に限られない。
【0078】
また、処理部112は、送信完了判定部110が保持する判定結果の情報を読み出すことによって、送信完了判定部110の判定結果に基づいて、サービス処理を開始することができる。例えば、処理部112は、記憶部104に記憶された更新対象データそれぞれの判定結果の情報が、「01」(送信対象外)、あるいは、「11」(送信完了)のときにサービス処理を開始することができるが、上記に限られない。
【0079】
本発明の第1の実施形態に係るリーダ/ライタ100は、例えば、図2に示す構成により、ICチップ搭載装置150に記憶された更新対象データと、記憶部104に記憶された更新対象データとの間の差分を判定して差分データを送信することができる。また、リーダ/ライタ100は、差分データの送信が完了した後に所定のサービス処理を行うことができる。
【0080】
[ICチップ搭載装置150]
次に、本発明の第1の実施形態に係るICチップ搭載装置150の構成例について説明する。
【0081】
ICチップ搭載装置150は、ICチップ152と、外部メモリ160と、外部メモリ管理部162と、通信部164とを備えることができる。
【0082】
また、ICチップ搭載装置150は、MPUなどで構成され、制御用プログラムなどを用いて様々な演算処理を行いICチップ搭載装置150全体を制御する制御部(図示せず)や、制御部(図示せず)が使用するプログラムや演算パラメータなどの制御用データが記録されたROM、制御部(図示せず)により実行されるプログラムなどを一次記憶するRAM、ユーザが操作可能な操作部(図示せず)、表示部(図示せず)、ICチップ搭載装置150の各構成要素に電力を供給するための内部電源(図示せず)などを備えてもよい。ICチップ搭載装置150は、例えば、データの伝送路としてのバスで各構成要素間を接続することができる。
【0083】
ここで、操作部(図示せず)としては、例えば、ボタン、方向キー、ジョグダイヤルなどの回転型セレクター、あるいは、これらの組み合わせなどが挙げられるが、上記に限られない。また、表示部(図示せず)としては、例えば、LCD、有機ELディスプレイなどが挙げられるが、上記に限られない。なお、操作部(図示せず)と表示部(図示せず)とは、例えば、タッチスクリーンで構成された一体の部とすることもできる。
【0084】
また、ICチップ搭載装置150は、例えば、制御部(図示せず)および外部メモリ管理部162が、それぞれ別体のMPUなどを備える構成とすることができるが、かかる構成に限られない。例えば、ICチップ搭載装置150は、制御部(図示せず)および外部メモリ管理部162を、MPUなどで構成された一体の部とすることもできる。
【0085】
ICチップ152は、リーダ/ライタ100との通信に係る様々な部を集積回路にて実現したものであり、耐タンパ性を有することができる。また、ICチップ152は、リーダ/ライタ100からの各種命令、または、ICチップ搭載装置150内のICチップ152以外の構成要素(例えば、制御部(図示せず)など)からの命令など、ICチップ152の外部からの命令に応じて様々なデータ処理を行うことができる。
【0086】
〔ICチップ152〕
ICチップ152は、チップ内通信部154と、内部メモリ156と、内部メモリ管理部158とを備えることができる。また、ICチップ152は、チップ内通信部154が受信した搬送波からハイレベル(High)とローレベル(Low)との2値化されたデータ信号を取り出す(復調する)データ受信部(図示せず)や、チップ内通信部154が受信した搬送波に基づいて内部メモリ管理部158などを駆動させるための駆動電圧を出力するチップ内電源部(図示せず)、矩形のクロック信号を生成するクロック生成部(図示せず)、内部メモリ管理部158が使用する管理用データなどが記憶されるROM、ICチップ152外の構成要素との間のインタフェースとしての役割を果たすUART(Universal Asynchronous Receiver Transmitter)などを備えることもできる。
【0087】
チップ内通信部154は、例えば、送受信アンテナとしての所定のインダクタンスをもつコイルと、所定の静電容量をもつキャパシタとからなる共振回路を有し、リーダ/ライタ100から送信される搬送波を受信することができる。また、チップ内通信部154は、例えば、負荷変調回路を備えて負荷変調を行いリーダ/ライタ100からみたICチップ搭載装置150のインピーダンスを変化させることにより、搬送波を介してリーダ/ライタ100と通信を行うことができる。なお、図2では、チップ内通信部154がICチップ152の内部に備えられる構成を示しているが、本発明の第1の実施形態に係るICチップ搭載装置の構成は、上記に限られない。例えば、本発明の第1の実施形態に係るICチップ搭載装置は、送受信アンテナをICチップ152の外部に備えることもできるし、送受信アンテナとICチップとを一体のパッケージとして備えることもできる。
【0088】
内部メモリ156は、ICチップ152内に備わる記憶部であり、耐タンパ性を有することができる。内部メモリ156には、例えば、ICチップ搭載装置150が有する機能を実現するためのアプリケーションや、ICチップ搭載装置150が備えるICチップを用いてサービスを受けるためのデータ(以下、「サービスデータ」という。)、ICチップ152が対応するサービスを表すコード(例えば、サービスコード、システムコードなど;図示せず)などを記憶することができる。また、内部メモリ156には、記憶されるアプリケーションそれぞれのブロック内の情報が記録されたブロック情報(図示せず)が記憶されていてもよい。ここで、サービスデータとしては、例えば、電子マネーバリューのデータ、個人認証のためのデータ、チケットのデータ、割引券に相当するデータなどが挙げられるが、上記に限られない。
【0089】
また、内部メモリ156は、図2に示すように、アクセス制限領域Xを有することができる。ここで、アクセス制限領域Xとは、アクセス制限領域X内に記憶されるアプリケーションやサービスデータに対する読み出し処理や書き込み処理において、例えば、PIN(Personal Identification Number)や暗号鍵による認証などが必要なアクセス制限を設定(および解除)可能な記憶領域である。図2では、内部メモリ156にアプリケーションB170、サービスデータ172、174が記憶され、そのうち、アプリケーションB170、サービスデータ172がアクセス制限領域Xに記憶されている例を示している。ここで、図2では、例えば、内部メモリ156に記憶されたデータのうちアプリケーションB170が更新対象データに該当する。
【0090】
また、内部メモリ156としては、例えば、EEPROM、フラッシュメモリ、MRAM、FeRAM、PRAMなどの不揮発性メモリが挙げられるが、上記に限られない。
【0091】
内部メモリ管理部158は、リーダ/ライタ100から送信されるデータ読み出し命令やデータ書き込み命令、更新対象データのバージョンに関する情報の要求などの各種命令、または、ICチップ搭載装置150の制御部(図示せず)からの各種命令などに基づいて、内部メモリ156に対する各種処理の制御を行うことができる。
【0092】
例えば、チップ内通信部154を介してリーダ/ライタ100から更新対象データのバージョンに関する情報の要求を受けた場合には、内部メモリ管理部158は、当該要求に応じてアクセス制限領域X内のアプリケーションB170(または、アプリケーションB170に対応するブロック情報(図示せず))からバージョンに関する情報を読み出し、読み出したバージョンに関する情報をリーダ/ライタ100へ送信させる。
【0093】
より具体的には、リーダ/ライタ100から送信される更新対象データのバージョンに関する情報の要求が、更新対象データのバージョン番号を要求している場合には、内部メモリ管理部158は、例えば、内部メモリ156に記憶された更新対象データからバージョン番号を読み出し、読み出したバージョン番号をリーダ/ライタ100へ送信させる。また、リーダ/ライタ100から送信される更新対象データのバージョンに関する情報の要求が、ブロック情報を要求している場合には、内部メモリ管理部158は、例えば、内部メモリ156に記憶された更新対象データに対応するブロック情報(図示せず)を読み出し、読み出したブロック情報をリーダ/ライタ100へ送信させる。
【0094】
また、内部メモリ管理部158は、リーダ/ライタ100から送信された更新対象データのバージョンに関する情報の要求が指定する更新対象データが、内部メモリにないデータである場合には、当該要求を外部メモリ管理部162へと伝達することができる。そして、外部メモリ管理部162から上記要求に応じた更新対象データのバージョンに関する情報が伝達された場合には、外部メモリ管理部162から伝達されたバージョンに関する情報をリーダ/ライタ100へ送信させる。
【0095】
さらに、内部メモリ管理部158は、リーダ/ライタ100から送信される差分データに応じて、内部メモリ156に記憶された差分データに対応する更新対象データの更新を行うこともできる。また、リーダ/ライタ100から送信される差分データが指定する更新対象データが、内部メモリにないデータである場合には、当該要求を外部メモリ管理部162へと伝達することができる。
【0096】
ICチップ152は、上記のような構成により、リーダ/ライタ100と非接触式に通信し、リーダ/ライタ100から送信された更新対象データのバージョンに関する情報の要求に応じたバージョンに関する情報をリーダ/ライタ100へ送信することができる。また、ICチップ152は、上記のような構成により、リーダ/ライタ100から送信された差分データに基づいて、更新対象データの更新を行うことができる。ここで、ICチップ152のハードウェア構成の概略的な例を示す。図3は、本発明の実施形態に係るICチップ搭載装置150が備えるICチップ152のハードウェア構成の概略的な一例を示す説明図である。
【0097】
図3を参照すると、ICチップ152は、例えば、無線通信アンテナ190と、MPU191と、ROM192と、RAM193と、不揮発性メモリ194と、UART195とを備えることができ、また各構成要素はチップ内部バス196で接続される。また、ICチップ152は、UART195を介してICチップ搭載装置側(ICチップ外)のバス197と接続される。図3では、例えば、無線通信アンテナ190が図2のチップ内通信部154に対応し、MPU191が図2の内部メモリ管理部158、不揮発性メモリ194が図2の内部メモリ156にそれぞれ対応することができる。
【0098】
MPU191は、UART195を介して、リーダ/ライタ100から送信された更新対象データのバージョンに関する情報の要求や、差分データをICチップ152外のバス197へ伝達することができる。したがって、リーダ/ライタ100は、ICチップ搭載装置150においてICチップ152外に記憶された更新対象データのバージョンに関する情報を取得することができ、また、ICチップ搭載装置150においてICチップ152外に記憶された差分データに対応する更新対象データを更新させることができる。
【0099】
また、ROM192は、MPU191が使用するプログラムや演算パラメータなどの制御用データを記憶することができ、またRAM193は、MPU191により実行されるプログラムなどを一次記憶することができる。なお、本発明の実施形態に係るICチップ152のハードウェア構成が図3に限られないことは、言うまでもない。
【0100】
再度図2を参照して、ICチップ搭載装置150について説明する。外部メモリ160は、ICチップ搭載装置150がICチップ152の外部に備える記憶部である。図2では、外部メモリ160にアプリケーションA180、アプリケーションC182、ファームウェア184が記憶されている。ここで、図2では、リーダ/ライタ100の記憶部104に記憶されていないアプリケーションC182がICチップ搭載装置150の外部メモリ160に記憶されている。したがって、ICチップ搭載装置150の外部メモリ160に記憶されたデータのうち、例えば、アプリケーションA180、ファームウェア184が更新対象データに該当し、アプリケーションC182は更新対象データに該当しないこととなる(つまり、リーダ/ライタ100が更新を制御する更新対象ではない。)。
【0101】
外部メモリ管理部162は、例えば、リーダ/ライタ100からの更新対象データのバージョンに関する情報の要求、または、ICチップ搭載装置150の制御部(図示せず)からのデータ読み出しや書き込みなどの各種命令などに基づいて、外部メモリ160に対する各種処理の制御を行うことができる。
【0102】
例えば、リーダ/ライタ100から送信された更新対象データのバージョンに関する情報の要求が、ICチップ152から伝達された場合には、外部メモリ管理部162は、当該要求に応じてアプリケーションA180(または、アプリケーションA180に対応するブロック情報(図示せず))およびファームウェア184(または、ファームウェア184に対応するブロック情報(図示せず))からバージョンに関する情報を読み出し、読み出したバージョンに関する情報をICチップ152へと伝達する。
【0103】
より具体的には、リーダ/ライタ100から送信される更新対象データのバージョンに関する情報の要求が、更新対象データのバージョン番号を要求している場合には、外部メモリ管理部162は、例えば、外部メモリ160に記憶された更新対象データからバージョン番号を読み出し、読み出したバージョン番号をICチップ152へ伝達する。また、リーダ/ライタ100から送信される更新対象データのバージョンに関する情報の要求が、ブロック情報を要求している場合には、外部メモリ管理部162は、例えば、外部メモリ160に記憶された更新対象データに対応するブロック情報(図示せず)を読み出し、読み出したブロック情報をICチップ152へ伝達する。
【0104】
また、外部メモリ管理部162は、例えば、リーダ/ライタ100から送信された差分データがICチップ152から伝達された場合には、伝達された差分データに応じて、外部メモリ160に記憶された差分データに対応する更新対象データの更新を行うことができる。
【0105】
通信部164は、外部装置(図示せず)と通信を行う部である。ICチップ搭載装置150は通信部164を備えることにより、例えば、電波を用いて基地局などの外部装置(図示せず)と通信を行うことができ、また、例えば、ネットワークを通じてサーバなどの外部装置と通信を行うことができる。また、ICチップ搭載装置150は、通信部164を用いて外部装置と通信を行うことにより、例えば、図1(a)に示すように、基地局を介してファームウェアなどの更新を行うこともできる。
【0106】
本発明の第1の実施形態に係るICチップ搭載装置150は、例えば、図2に示す構成により、リーダ/ライタ100との間で搬送波を用いた通信を行い、リーダ/ライタ100から送信される更新対象データのバージョンに関する情報の要求に応じて、記憶している更新対象データそれぞれのバージョンに関する情報をリーダ/ライタ100へ送信(返信)することができる。また、ICチップ搭載装置150は、リーダ/ライタ100から送信される差分データに基づいて、内部メモリ156または外部メモリ160に記憶される差分データに対応する更新対象データの更新を行うことができる。さらに、ICチップ搭載装置150は、ICチップ152を備えることにより、リーダ/ライタ100との間で所定のサービス処理を行うことができる。なお、図2に示すように、ICチップ搭載装置150は、内部メモリ管理部158および外部メモリ管理部162を備えることができるが、これらを総称してICチップ搭載装置150のメモリ管理部と捉えることもできる。
【0107】
[ソフトウェア更新制御方法]
次に、本発明の第1の実施形態に係る情報処理システムにおけるソフトウェア更新制御方法の一例について説明する。
【0108】
〔ソフトウェア更新制御方法の第1の例〕
図4は、本発明の実施形態に係るソフトウェア更新制御方法の第1の例を示す説明図である。ここで、図4に示すリーダ/ライタ100(情報処理装置)とICチップ搭載装置150との間における通信は、例えば、13.56MHzの搬送波を用いて行われる。
【0109】
リーダ/ライタ100とICチップ搭載装置150との間で通信が開始されると(S100)、リーダ/ライタ100は、ICチップ搭載装置150に対してサービスコードの取得要求を行う(S102)。ここで、ステップS100における通信の開始は、例えば、リーダ/ライタ100が搬送波を送信し続けることによって、常時、または定期的にポーリングを行い、ICチップ搭載装置150が検出されることにより行うことができる。また、ステップS102の処理において要求される対象は、サービスコードに限られず、システムコードやICチップIDなど、ICチップ搭載装置150が対応するサービスやICチップ搭載装置150を特定するための情報であってもよい。
【0110】
ステップS102において送信されたサービスコードの取得要求を受信したICチップ搭載装置150は、サービスコードを応答する(S104)。
【0111】
ステップS104において送信されたサービスコードを受信したリーダ/ライタ100は、受信したサービスコードによりICチップ搭載装置150が対応するサービスを特定することができる。そして、リーダ/ライタ100は、ソフトウェアの書き換え処理の開始をICチップ搭載装置150へ伝えるための書き換え処理開始要求(更新処理開始要求)を送信する(S106)。
【0112】
ステップS106において送信された書き換え処理開始要求を受信したICチップ搭載装置150は、当該要求に対する応答を行う(S108)。ここで、ステップS108における応答は、例えば、書き換え処理開始の準備ができたか否かを示す1ビットのデータ(例えば「0」が準備未完、「1」が準備完了)とすることができるが、上記に限られない。
【0113】
ステップS108において送信された応答を受信したリーダ/ライタ100は、書き換え処理を開始し、バージョン番号の取得要求(更新対象データのバージョンに関する情報の要求)を送信する(S110)。
【0114】
ステップS110において送信されたバージョン番号の取得要求を受信したICチップ搭載装置150は、当該要求に応じて、内部メモリ156および/または外部メモリ160に記憶された各更新対象データのバージョン番号を返信する(S112)。
【0115】
ステップS112において送信された各更新対象データのバージョン番号を受信したリーダ/ライタ100は、差分判定用データを用いて、リーダ/ライタ100に記憶された更新対象データと、ICチップ搭載装置150に記憶された更新対象データとの差分を判定する(S114;差分判定処理)。
【0116】
そして、リーダ/ライタ100は、ステップS114の差分判定処理の判定結果に基づいて、差分に対応するブロックを示す差分ブロック情報と、書き換え用のデータである差分データとを送信する(S116)。
【0117】
ステップS116において送信された差分ブロック情報および差分データを受信したICチップ搭載装置150は、差分ブロック情報に基づいて、書き換える対象となる更新対象データを特定し、特定された更新対象データを差分データを用いて書き換える(S118;データ書き込み処理)。
【0118】
ステップS118のデータ書き込み処理が行われると、ICチップ搭載装置150は、処理結果を送信する(S120)。ここで、ステップS120において送信される処理結果は、例えば、各更新対象データを特定する所定ビットのデータと、書き換えが成功したかか否かを示す1ビットのデータ(例えば「0」が書き換え失敗、「1」が書き換え成功)とを組み合わせた、データ書き込み処理が行われた更新対象データごとのデータとすることができるが、上記に限られない。
【0119】
ステップS120において送信された処理結果を受信したリーダ/ライタ100は、記憶部104に記憶された更新対象データそれぞれに対して送信完了の判定を行う(S122;送信完了判定処理)。ここで、リーダ/ライタ100は、例えば、記憶部104に記憶されているがICチップ搭載装置150には記憶されていない更新対象データについて、ステップS122の判定対象から除外することもできる。
【0120】
ステップS122において処理が完了していないと判定された更新対象データがある場合には、リーダ/ライタ100は、完了していないと判定された更新対象データに対応する差分ブロック情報および差分データを再度送信する(S116)。
【0121】
また、ステップS122において処理が完了したと判定された場合には、リーダ/ライタ100は、ソフトウェアの書き換え処理の終了をICチップ搭載装置150へ伝えるための書き換え処理終了要求(更新処理終了要求)を送信する(S124)。
【0122】
ステップS124において送信された書き換え処理終了要求を受信したICチップ搭載装置150は、当該要求に対する応答を行う(S126)。ここで、ステップS126における応答は、例えば、書き換え処理が終了したか否かを示す1ビットのデータ(例えば「0」が処理未終了、「1」が処理終了済み)とすることができるが、上記に限られない。
【0123】
ステップS126において送信された応答を受信したリーダ/ライタ100は、書き換え処理を終了し、ICチップ搭載装置150との間におけるデータ処理(サービス処理)を行う(S128)。そして、ステップS128のデータ処理が完了すると、リーダ/ライタ100は、ICチップ搭載装置150との間における通信を終了する(S130)。
【0124】
図4に示すような本発明の実施形態に係るソフトウェア更新制御方法を用いることによって、リーダ/ライタ100は、ICチップ搭載装置150に記憶された更新対象データと、リーダ/ライタ100の記憶部104に記憶された更新対象データとの間の差分を判定して差分データを送信し、ICチップ搭載装置150におけるソフトウェアの書き換え(更新)を制御することができる。また、リーダ/ライタ100は、差分データを送信し、ICチップ搭載装置150におけるソフトウェアの書き換え(更新)が完了した後に所定のサービス処理を行うことができる。
【0125】
なお、図4では、ICチップ搭載装置150におけるソフトウェアの書き換え(更新)が完了した後に、リーダ/ライタ100とICチップ搭載装置150との間で所定のサービス処理が行われる方法を示したが、本発明の実施形態に係るソフトウェア更新制御方法は、上記に限られない。例えば、本発明の実施形態に係るソフトウェア更新制御方法は、ICチップ搭載装置150におけるソフトウェアの書き換え(更新)が完了した後に終了することもできる。
【0126】
〔ソフトウェア更新制御方法の第2の例〕
図4に示したソフトウェア更新制御方法の第1の例では、リーダ/ライタ100が、更新対象データのバージョン番号を用いて、ICチップ搭載装置150に記憶された更新対象データの更新を制御する方法を示した。しかしながら、本発明の実施形態に係るソフトウェア更新制御方法は、上記に限られない。そこで、次に、本発明の実施形態に係るソフトウェア更新制御方法の第2の例について説明する。図5は、本発明の実施形態に係るソフトウェア更新制御方法の第2の例を示す説明図である。
【0127】
リーダ/ライタ100とICチップ搭載装置150との間で通信が開始されると(S200)、図4に示す第1の例と同様に、リーダ/ライタ100は、ICチップ搭載装置150に対してサービスコードの取得要求を行う(S202)。
【0128】
ステップS202において送信されたサービスコードの取得要求を受信したICチップ搭載装置150は、サービスコードを応答する(S204)。ステップS204において送信されたサービスコードをリーダ/ライタ100が受信することにより、リーダ/ライタ100は、ICチップ搭載装置150が対応するサービスを特定することができる。そして、リーダ/ライタ100は、図4に示す第1の例と同様に、ソフトウェアの書き換え処理の開始をICチップ搭載装置150へ伝えるための書き換え処理開始要求(更新処理開始要求)を送信する(S206)。そして、ステップS206において送信された書き換え処理開始要求を受信したICチップ搭載装置150は、当該要求に対する応答を行う(S208)。
【0129】
ステップS208において送信された応答を受信したリーダ/ライタ100は、書き換え処理を開始し、ブロック情報の取得要求(更新対象データのバージョンに関する情報の要求)を送信する(S210)。
【0130】
ステップS210において送信されたブロック情報の取得要求を受信したICチップ搭載装置150は、当該要求に応じて、内部メモリ156および/または外部メモリ160に記憶された各更新対象データのブロック情報を送信する(S212)。
【0131】
ステップS212において送信された各更新対象データのブロック情報を受信したリーダ/ライタ100は、差分判定用データを用いて、リーダ/ライタ100に記憶された更新対象データと、ICチップ搭載装置150に記憶された更新対象データとの差分を判定する(S214;差分判定処理)。
【0132】
そして、リーダ/ライタ100は、ステップS214の差分判定処理の判定結果に基づいて、図4に示す第1の例と同様に、差分に対応するブロックを示す差分ブロック情報と、書き換え用のデータである差分データとを送信する(S216)。
【0133】
ステップS216において送信された差分ブロック情報および差分データを受信したICチップ搭載装置150は、図4に示す第1の例と同様に、差分ブロック情報に基づいて、書き換える対象となる更新対象データを特定し、特定された更新対象データを差分データを用いて書き換える(S218;データ書き込み処理)。そして、ステップS218のデータ書き込み処理が行われると、ICチップ搭載装置150は、処理結果を送信する(S220)。
【0134】
ステップS220において送信された処理結果を受信したリーダ/ライタ100は、図4に示す第1の例と同様に、記憶部104に記憶された更新対象データそれぞれに対して送信完了の判定を行う(S222;送信完了判定処理)。ステップS222において処理が完了していないと判定された更新対象データがある場合には、リーダ/ライタ100は、完了していないと判定された更新対象データに対応する差分ブロック情報および差分データを再度送信する(S216)。
【0135】
ステップS222において処理が完了したと判定された場合には、リーダ/ライタ100は、図4に示す第1の例と同様に、ソフトウェアの書き換え処理の終了をICチップ搭載装置150へ伝えるための書き換え処理終了要求(更新処理終了要求)を送信する(S224)。そして、ステップS224において送信された書き換え処理終了要求を受信したICチップ搭載装置150は、図4に示す第1の例と同様に、当該要求に対する応答を行う(S226)。
【0136】
ステップS226において送信された応答を受信したリーダ/ライタ100は、書き換え処理を終了し、ICチップ搭載装置150との間におけるデータ処理(サービス処理)を行う(S228)。そして、ステップS228のデータ処理が完了すると、リーダ/ライタ100は、ICチップ搭載装置150との間における通信を終了する(S230)。
【0137】
図5に示すように、本発明の実施形態に係るソフトウェア更新制御方法の第2の例は、更新対象データのブロック情報を用いてICチップ搭載装置150に記憶された更新対象データと、リーダ/ライタ100の記憶部104に記憶された更新対象データとの間の差分を判定する点が、図4に示す本発明の実施形態に係るソフトウェア更新制御方法の第1の例と異なる。しかしながら、更新対象データのブロック情報を用いたとしても差分を判定することができるので、本発明の実施形態に係るソフトウェア更新制御方法の第2の例を用いるリーダ/ライタ100は、図4に示す第1の例を用いる場合と同様に、ICチップ搭載装置150に記憶された更新対象データと、リーダ/ライタ100の記憶部104に記憶された更新対象データとの間の差分を判定して差分データを送信し、ICチップ搭載装置150におけるソフトウェアの書き換え(更新)を制御することができる。また、図5に示す第2の例を用いるリーダ/ライタ100は、図4に示す第1の例を用いる場合と同様に、差分データを送信し、ICチップ搭載装置150におけるソフトウェアの書き換え(更新)が完了した後に所定のサービス処理を行うことができる。
【0138】
以上のように、本発明の第1の実施形態に係る情報処理システムは、リーダ/ライタ100(情報処理装置)とICチップ搭載装置150との間で行われる搬送波を用いた近距離無線通信を利用して、ICチップ搭載装置150が備えるICチップ152内の内部メモリ156および/またはICチップ152外の外部メモリ160に記憶された更新対象データの書き換え(更新)を行うことができる。したがって、第1の実施形態に係る情報処理システムを用いることにより、たとえ、基地局からの電波が届かない場所であってもICチップ搭載装置150内に記憶されたソフトウェアの書き換えを行わせることができる。また、第1の実施形態に係る情報処理システムは、搬送波を用いた近距離無線通信を利用してソフトウェアの書き換えを行うので、耐タンパ性を有するICチップ152内の内部メモリ156に記憶された更新対象データを安全に更新することもできる。さらに、第1の実施形態に係る情報処理システムは、搬送波を用いた近距離無線通信を利用してソフトウェアの書き換えを行うので、機器認証や個人認証などを簡易に行うこともできる。よって、例えば、ICチップ搭載装置150が備えるICチップ152内のアクセス制限領域に更新対象データが記憶されていたとしても、更新対象データの更新を行うことができる。
【0139】
また、第1の実施形態に係る情報処理システムは、例えば、図4、図5に示すように、ソフトウェアの書き換え処理と、サービス処理とを連続して行うことができる。したがって、第1の実施形態に係る情報処理システムを用いることにより、例えば、ユーザが、図1(a)に示すような従来の操作を行わなくとも、図1(b)に示すようにユーザが各種サービスの提供を受けるための操作を行うだけで(すなわち、リーダ/ライタ100にICチップ搭載装置150をかざすだけで)ICチップ搭載装置150内に記憶されたソフトウェアの書き換えを行わせることができるので、ユーザへの負担を減らすことができる。
【0140】
また、第1の実施形態に係る情報処理システムを用いることにより、ユーザが各種サービスの提供を受けるだけで、ICチップ搭載装置150内のソフトウェアを更新させることができる。したがって、例えば、ICチップ搭載装置150内のソフトウェアに不具合が見つかった場合であっても、図1(a)に示すような従来の操作を必ずしも必要とはしないので、ICチップ搭載装置150のメーカーは、より確実にICチップ搭載装置150内のソフトウェアの不具合を解消させることができる。
【0141】
さらに、第1の実施形態に係る情報処理システムは、リーダ/ライタ100が、例えば、更新対象データのバージョン番号やブロック情報を用いることによって、ICチップ搭載装置150に記憶された更新対象データと、リーダ/ライタ100の記憶部104に記憶された更新対象データとの間の差分を判定して差分データを送信し、ICチップ搭載装置150におけるソフトウェアの書き換え(更新)を制御することができる。したがって、ICチップ搭載装置150では、差分に相当するデータの書き換えが行われるので、第1の実施形態に係る情報処理システムを用いることによって、全てのデータを書き換える処理に比べてより短い時間で書き換え処理を完了させることができる。
【0142】
(第1の実施形態に係るプログラム)
第1の実施形態に係るリーダ/ライタ100をコンピュータとして機能させるためのプログラムによって、非接触式ICチップを搭載したICチップ搭載装置150内に記憶されたソフトウェア(更新対象データ)の書き換えを行わせることができる。
【0143】
また、第1の実施形態に係るICチップ搭載装置150をコンピュータとして機能させるためのプログラムによって、ICチップ搭載装置150内のICチップ内の内部メモリおよび/またはICチップ外の外部メモリに記憶されたソフトウェア(更新対象データ)を書き換えることができる。
【0144】
(第2の実施形態)
上記では、第1の実施形態に係る情報処理システムとして、リーダ/ライタ100(情報処理装置)が更新対象データのバージョンに関する情報を要求し、ICチップ搭載装置150から返信された更新対象データのバージョンに関する情報に基づいて、リーダ/ライタ100がICチップ搭載装置150に記憶された更新対象データを更新させる構成を示した。しかしながら、本発明の実施形態に係る情報処理システムは限られない。そこで、次に、本発明の第2の実施形態に係る情報処理システムとして、リーダ/ライタ(情報処理装置)がICチップ搭載装置の種別に応じて、ICチップ搭載装置に記憶された更新対象データの更新を制御する構成について説明する。
【0145】
図6は、本発明の第2の実施形態に係る情報処理システムを示すブロック図である。なお、以下では、本発明の第2の実施形態に係る情報処理システムを構成する情報処理装置として、リーダ/ライタを例に挙げて説明するが、本発明の実施形態に係る情報処理装置は、リーダ/ライタに限られない。例えば、本発明の第2の実施形態に係る情報処理装置は、第1の実施形態に係る情報処理装置と同様に、リーダ/ライタ機能を備えた携帯電話などの携帯型通信装置や、リーダ/ライタ機能を備えたPCなどのコンピュータ、交通機関の自動改札機、入館や入室などに用いられるセキュリティ装置などに適用することができる。また、図6では、ICチップ搭載装置として、搬送波を用いた通信以外の別途の通信機能を有さないICカード250を例に挙げて説明するが、本発明の第2の実施形態に係るICチップ搭載装置が上記に限られないことは、言うまでもない。
【0146】
[ICカード250(ICチップ搭載装置)]
ICカード250は、第1の実施形態に係るICチップ搭載装置150と同様に、ICチップ152を備えることができる。したがって、ICカード250は、リーダ/ライタ200と搬送波を用いた近距離無線通信を行い、リーダ/ライタ200から送信される各種要求や命令、差分データに基づいて、ICカード250の内部メモリ156に記憶された更新対象データを更新することができる。
【0147】
[リーダ/ライタ200(情報処理装置)]
リーダ/ライタ200は、リーダ/ライタ通信部102と、記憶部104と、通信対象判定部202と、差分判定部204と、差分データ送信部108と、送信完了判定部110と、処理部112とを備えることができる。
【0148】
また、リーダ/ライタ200は、MPUなどで構成され、制御用プログラムなどを用いて様々な演算処理を行いリーダ/ライタ200全体を制御するリーダ/ライタ制御部(図示せず)、リーダ/ライタ制御部(図示せず)が使用するプログラムや演算パラメータなどの制御用データが記録されたROM(図示せず)、リーダ/ライタ制御部(図示せず)により実行されるプログラムなどを一次記憶するRAM(図示せず)、ユーザが操作可能な操作部(図示せず)、表示部(図示せず)、外部装置(図示せず)と通信を行うための外部通信部(図示せず)などを備えてもよい。リーダ/ライタ200は、例えば、データの伝送路としてのバスで各構成要素間を接続することができる。
【0149】
ここで、リーダ/ライタ200は、例えば、リーダ/ライタ制御部(図示せず)、通信対象判定部202、差分判定部204、差分データ送信部108、送信完了判定部110、および処理部112が、それぞれ別体のMPUなどを備える構成とすることができるが、かかる構成に限られない。例えば、リーダ/ライタ200は、リーダ/ライタ制御部(図示せず)、通信対象判定部202、差分判定部204、差分データ送信部108、送信完了判定部110、および処理部112を、MPUなどで構成された一体の部とすることもできる。
【0150】
リーダ/ライタ200が備えるリーダ/ライタ通信部102、記憶部104、差分データ送信部108、送信完了判定部110、および処理部112は、第1の実施形態に係るリーダ/ライタ100が備える各部と同様の機能を有し、それぞれ同様の構成をとることができる。
【0151】
通信対象判定部202は、ポーリングに対してICカード250からの返答があった場合(すなわち、通信対象としてのICカード250が検出された場合)に、ICカード250に対して装置種別を規定する情報である装置種別情報を要求し、ICカード250から送信される装置種別情報に基づいて、更新対象データを更新させる対象(ICチップ搭載装置)の装置種別を判定する。ここで、装置種別情報とは、例えば、ICチップ搭載装置がICカード(すなわち、搬送波を用いた通信以外の別途の通信機能を有さないICチップ搭載装置)であるか、または、搬送波を用いた通信以外の通信機能(例えば、基地局を介した通信や、赤外線を用いた通信、無線LANスポットを利用した通信など)を有するICチップ搭載装置であるかを判定するための情報である。装置種別情報としては、例えば、ICチップのチップIDが挙げられるが、上記に限られないことは、言うまでもない。
【0152】
また、通信対象判定部202は、装置種別情報を用いた判定の結果に応じて、例えば、以下の(I)、(II)のように処理を切り替えることができる。
【0153】
(I)装置種別情報がICカードを示していると判定された場合
通信対象判定部202は、装置種別情報がICカードを示していると判定した場合には、差分判定部204が更新対象データのバージョンに関する情報を要求することを許可する(すなわち、差分判定部204の機能を有効にする。)。したがって、リーダ/ライタ200は、第1の実施形態に係るリーダ/ライタ100と同様に、ICカード250に記憶された更新対象データを更新させることができる。
【0154】
(II)装置種別情報がICカードを示していないと判定された場合
通信対象判定部202は、装置種別情報がICカードを示していないと判定した場合には、差分判定部204が更新対象データのバージョンに関する情報を要求することを許可しない(すなわち、差分判定部204の機能を有効にはしない。)。したがって、リーダ/ライタ200は、ICチップを搭載したICチップ搭載装置がかざされてICチップ搭載装置と通信が行える場合であっても更新データの更新に係る処理を行わない。
【0155】
リーダ/ライタ200は、上記のように、ICチップ搭載装置から装置種別情報を取得し、取得された装置種別情報を用いることができる。したがって、リーダ/ライタ200は、例えば、別途の通信機能を有さないICカードに対しては更新対象データの更新を行わせ、また、別途の通信機能を有するICチップ搭載装置に対しては更新対象データの更新を行わないなど、通信対象の種別に応じてフレキシブルにICチップ搭載装置内に記憶されたソフトウェア(更新対象データ)の書き換えを行わせることができる。
【0156】
差分判定部204は、第1の実施形態に係るリーダ/ライタ100が備える差分判定部106と同様の機能を有することができるが、通信対象判定部202からの命令に応じて更新対象データのバージョンに関する情報の要求をICチップ搭載装置へ送信する点が、第1の実施形態に係るリーダ/ライタ100が備える差分判定部106と異なる。より具体的には、差分判定部204は、更新対象データのバージョンに関する情報の要求を送信してよい旨の命令が通信対象判定部202から伝達された場合に、更新対象データのバージョンに関する情報の要求を送信することができる。
【0157】
本発明の第2の実施形態に係る情報処理システムは、例えば、リーダ/ライタ200が図6に示す構成を有することによって、ICチップ搭載装置の装置種別に応じて、ICチップ搭載装置に記憶された更新対象データの更新を制御することができる。したがって、リーダ/ライタ200は、例えば、他のソフトウェアの更新手段を有さないICカードに対しては、ソフトウェア(更新対象データ)の書き換えを行い、また、他のソフトウェアの更新手段を有する携帯電話などのICチップ搭載装置に対しては、ソフトウェア(更新対象データ)の書き換えを行わないなど、ICチップ搭載装置に記憶された更新対象データの更新をフレキシブルに制御することができる。
【0158】
[第2の実施形態に係る処理の概要]
ここで、本発明の第2の実施形態に係るリーダ/ライタ200における処理の概要を示す。図7は、本発明の第2の実施形態に係るリーダ/ライタ200における処理の概要の一例を示す流れ図である。
【0159】
リーダ/ライタ200は、ICチップ搭載装置との間での通信が開始されると(S300)、通信対象がICカードか否かを判定する(S302)。ここで、リーダ/ライタ200は、リーダ/ライタ200のポーリングに対してICカード250からの返答があった場合にステップS300における通信を開始することができる。また、ステップS302における判定は、通信対象のICチップ搭載装置から装置種別情報を取得することにより行うことができる。
【0160】
ステップS302において通信対象がICカードであると判定された場合には、リーダ/ライタ200は、第1の実施形態に係るリーダ/ライタ100と同様に、例えば、図4または図5に示すソフトウェア更新制御方法を用いてアップデート処理(ソフトウェアの更新処理)を行う(S304)。そして、ステップS304においてアップデート処理が完了すると、リーダ/ライタ200は、ICチップ搭載装置との間で所定のサービスに係るデータ処理(サービス処理)を行う(S308)。
【0161】
また、ステップS302において通信対象がICカードではないと判定された場合には、リーダ/ライタ200は、アップデート処理(ソフトウェアの更新処理)を行わず(S306)、ICチップ搭載装置との間で所定のサービスに係るデータ処理(サービス処理)を行う(S308)。
【0162】
ステップS308における所定のサービスに係るデータ処理が完了すると、リーダ/ライタ200は、ICチップ搭載装置との間の通信を終了する(S310)。
【0163】
リーダ/ライタ200が、例えば、図7に示すような処理を行うことにより、リーダ/ライタ200は、ICチップ搭載装置内に記憶されたソフトウェア(更新対象データ)の書き換えをフレキシブルに制御することができる。
【0164】
以上のように、本発明の第2の実施形態に係る情報処理システムは、第1の実施形態に係る情報処理システムと同様に、リーダ/ライタ200(情報処理装置)とICチップ搭載装置との間で行われる搬送波を用いた近距離無線通信を利用して、ICチップ搭載装置が備えるICチップ内の内部メモリおよび/またはICチップ外の外部メモリに記憶された更新対象データの書き換え(更新)を行うことができる。したがって、第2の実施形態に係る情報処理システムを用いることにより、たとえ、基地局からの電波が届かない場所であってもICチップ搭載装置内に記憶されたソフトウェアの書き換えを行わせることができる。また、第2の実施形態に係る情報処理システムは、第1の実施形態に係る情報処理システムと同様に、耐タンパ性を有するICチップ内の内部メモリに記憶された更新対象データを安全に更新することもできる。さらに、第2の実施形態に係る情報処理システムは、第1の実施形態に係る情報処理システムと同様に、機器認証や個人認証などを簡易に行うことができるので、例えば、ICチップ搭載装置が備えるICチップ152内のアクセス制限領域に更新対象データが記憶されていたとしても、更新対象データの更新を行うことができる。
【0165】
また、本発明の第2の実施形態に係る情報処理システムは、リーダ/ライタ200がICチップ搭載装置の種別を判定し、当該判定の結果に応じて、処理を切り替えることができる。したがって、リーダ/ライタ200は、例えば、他のソフトウェアの更新手段を有さないICカードに対しては、ソフトウェア(更新対象データ)の書き換えを行い、また、他のソフトウェアの更新手段を有する携帯電話などのICチップ搭載装置に対しては、ソフトウェア(更新対象データ)の書き換えを行わないなど、ICチップ搭載装置に記憶された更新対象データの更新をフレキシブルに制御することができる。
【0166】
また、第2の実施形態に係る情報処理システムを用いることにより、ユーザが各種サービスの提供を受けるだけで、ICチップ搭載装置内のソフトウェアを更新させることができる。したがって、例えば、ICチップ搭載装置が他のソフトウェアの更新手段を有さないICカードである場合であっても、ユーザが各種サービスの提供を受けるための操作を行うだけで、ICカード内のソフトウェアの不具合を解消させたり、ICカードに機能を追加させたり、またはICカードに備わる機能の強化を行うことを容易に行うことができる。
【0167】
さらに、第2の実施形態に係る情報処理システムは、第1の実施形態に係る情報処理システムと同様に、リーダ/ライタ200が、ICチップ搭載装置に記憶された更新対象データと、リーダ/ライタ200の記憶部104に記憶された更新対象データとの間の差分を判定して差分データを送信し、ICチップ搭載装置におけるソフトウェアの書き換え(更新)を制御することができる。したがって、ICチップ搭載装置では差分に相当するデータの書き換えが行われるので、第2の実施形態に係る情報処理システムを用いることによって、全てのデータを書き換える処理に比べてより短い時間で書き換え処理を完了させることができる。
【0168】
(第2の実施形態に係るプログラム)
第2の実施形態に係るリーダ/ライタ200をコンピュータとして機能させるためのプログラムによって、非接触式ICチップを搭載したICチップ搭載装置内に記憶されたソフトウェア(更新対象データ)の書き換えを、ICチップ搭載装置の種別に応じて行わせることができる。
【0169】
また、第2の実施形態に係るICチップ搭載装置をコンピュータとして機能させるためのプログラムによって、ICチップ搭載装置内のICチップ内の内部メモリおよび/またはICチップ外の外部メモリに記憶されたソフトウェア(更新対象データ)を書き換えることができる。
【0170】
(第3の実施形態)
上記では、第1、第2の実施形態の情報処理システムを構成する情報処理装置としてリーダ/ライタを挙げ、情報処理装置自身が搬送波を送信する機能を有する構成を示した。しかしながら、本発明の実施形態に係る情報処理システムを構成する情報処理装置は、情報処理装置自身が搬送波を送信する機能を有する構成に限られない。そこで次に、情報処理装置が別体のリーダ/ライタと接続され、当該情報処理装置が当該リーダ/ライタを介してICチップ搭載装置に記憶されたソフトウェア(更新対象データ)を書き換えさせることが可能な、第3の実施形態に係る情報処理システムについて説明する。
【0171】
図8は、本発明の第3の実施形態に係る情報処理システムを示すブロック図である。図8を参照すると、第3の実施形態に係る情報処理システムは、リーダ/ライタ302と接続された情報処理装置300と、ICチップ搭載装置150とを有する。ここで、情報処理装置300とリーダ/ライタ302とは、図8に示すように有線で直接接続されてもよいし、または、ネットワーク回線(図示せず)で接続されてもよい。ここで、ネットワーク回線は、例えば、LANやWANなど有線ネットワークであってもよいし、もしくは、MIMOを用いたWLANなどの無線ネットワーク、あるいは、TCP/IPなどの通信プロトコルを用いたインターネットであってもよいが、上記に限られない。
【0172】
ICチップ搭載装置150は、図2に示す第1の実施形態に係るICチップ搭載装置150と同様の構成、機能を有し、リーダ/ライタ302と非接触式に通信を行うことができる。したがって、ICチップ搭載装置150は、リーダ/ライタ302から送信される各種要求や命令、差分データに基づいて、ICチップ搭載装置150の内部メモリ156に記憶された更新対象データを更新することができる。また、ICチップ搭載装置150は、リーダ/ライタ302との間で(または、リーダ/ライタ302を介して情報処理装置300との間で)データ処理(サービス処理)を行うことができる。
【0173】
情報処理装置300は、記憶部104と、差分判定部106と、差分データ送信部108と、送信完了判定部110とを備え、接続されたリーダ/ライタ302を介してICチップ搭載装置150と通信を行うことができる。
【0174】
また、情報処理装置300は、MPUなどで構成され、制御用プログラムなどを用いて様々な演算処理を行い情報処理装置300全体を制御する制御部(図示せず)、制御部(図示せず)が使用するプログラムや演算パラメータなどの制御用データが記録されたROM(図示せず)、制御部(図示せず)により実行されるプログラムなどを一次記憶するRAM(図示せず)、ユーザが操作可能な操作部(図示せず)、表示部(図示せず)、外部装置(図示せず)と通信を行うための外部通信部(図示せず)などを備えてもよい。情報処理装置300は、例えば、データの伝送路としてのバスで各構成要素間を接続することができる。
【0175】
ここで、情報処理装置300は、例えば、制御部(図示せず)、差分判定部106、差分データ送信部108、および送信完了判定部110が、それぞれ別体のMPUなどを備える構成とすることができるが、かかる構成に限られない。例えば、情報処理装置300は、制御部(図示せず)、差分判定部106、差分データ送信部108、および送信完了判定部110を、MPUなどで構成された一体の部とすることもできる。
【0176】
情報処理装置300が備える記憶部104は、図2に示す第1の実施形態に係るリーダ/ライタ100と同様に、更新対象データや差分判定用データなど、各種の情報を記憶することができる。
【0177】
同様に、情報処理装置300が備える差分判定部106、差分データ送信部108、および送信完了判定部110は、図2に示す第1の実施形態に係るリーダ/ライタ100が備える各部と同様の機能を有し、それぞれ同様の構成をとることができる。
【0178】
したがって、情報処理装置300は、リーダ/ライタ302を介して更新対象データのバージョンに関する情報をICチップ搭載装置150へ要求し、ICチップ搭載装置150から返信された更新対象データのバージョンに関する情報に基づいて、ICチップ搭載装置150に記憶された更新対象データを更新させることができる。また、情報処理装置300は、ICチップ搭載装置150に記憶された更新対象データの更新を、例えば、図4または図5に示すソフトウェア更新制御方法を用いることによって行うことができる。
【0179】
以上のように、本発明の第3の実施形態に係る情報処理システムは、リーダ/ライタ302を介して情報処理装置300とICチップ搭載装置150との間で行われる搬送波を用いた近距離無線通信を利用して、ICチップ搭載装置150が備えるICチップ152内の内部メモリ156および/またはICチップ152外の外部メモリ160に記憶された更新対象データの書き換え(更新)を行うことができる。したがって、第3の実施形態に係る情報処理システムを用いることにより、たとえ、基地局からの電波が届かない場所であってもICチップ搭載装置150内に記憶されたソフトウェアの書き換えを行わせることができる。また、第3の実施形態に係る情報処理システムは、第1の実施形態に係る情報処理システムと同様に、耐タンパ性を有するICチップ内の内部メモリに記憶された更新対象データを安全に更新することもできる。さらに、第3の実施形態に係る情報処理システムは、第1の実施形態に係る情報処理システムと同様に、機器認証や個人認証などを簡易に行うことができるので、例えば、ICチップ搭載装置150が備えるICチップ152内のアクセス制限領域に更新対象データが記憶されていたとしても、更新対象データの更新を行うことができる。
【0180】
また、第3の実施形態に係る情報処理システムは、第1の実施形態に係る情報処理システムと同様に、例えば、図4、図5に示すように、ソフトウェアの書き換え処理と、サービス処理とを連続して行うことができる。したがって、第3の実施形態に係る情報処理システムを用いることにより、例えば、ユーザが、図1(a)に示すような従来の操作を行わなくとも、図1(b)に示すようにユーザが各種サービスの提供を受けるための操作を行うだけで(すなわち、リーダ/ライタ302にICチップ搭載装置150をかざすだけで)ICチップ搭載装置150内に記憶されたソフトウェアの書き換えを行わせることができるので、ユーザへの負担を減らすことができる。
【0181】
また、第3の実施形態に係る情報処理システムを用いることにより、第1の実施形態に係る情報処理システムと同様に、ユーザが各種サービスの提供を受けるだけで、ICチップ搭載装置150内のソフトウェアを更新させることができる。したがって、例えば、ICチップ搭載装置150内のソフトウェアに不具合が見つかった場合であっても、図1(a)に示すような従来の操作を必ずしも必要とはしないので、ICチップ搭載装置150のメーカーは、より確実にICチップ搭載装置150内のソフトウェアの不具合を解消させることができる。
【0182】
さらに、第3の実施形態に係る情報処理システムは、情報処理装置300が、例えば、更新対象データのバージョン番号やブロック情報を用いることによって、ICチップ搭載装置150に記憶された更新対象データと、情報処理装置300の記憶部104に記憶された更新対象データとの間の差分を判定して差分データを送信し、ICチップ搭載装置150におけるソフトウェアの書き換え(更新)を制御することができる。したがって、ICチップ搭載装置150では、差分に相当するデータの書き換えが行われるので、第3の実施形態に係る情報処理システムを用いることによって、全てのデータを書き換える処理に比べてより短い時間で書き換え処理を完了させることができる。
【0183】
また、本発明の第3の実施形態に係る情報処理システムを構成する構成要素として、情報処理装置300を挙げて説明したが、本発明の第3の実施形態は、係る形態に限られず、例えば、PCやサーバなどのコンピュータ、店頭に設置されたPOS(Point Of Sales)システムのPOS端末などに適用することができる。
【0184】
(第3の実施形態に係るプログラム)
第3の実施形態に係る情報処理装置300をコンピュータとして機能させるためのプログラムによって、非接触式ICチップを搭載したICチップ搭載装置150内に記憶されたソフトウェア(更新対象データ)の書き換えを行わせることができる。
【0185】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【0186】
例えば、上述した本発明の第1〜第3の実施形態に係る情報処理システムでは、例えば図5に示すように、情報処理システムを構成する情報処理装置(例えば、リーダ/ライタ)側がブロック情報を用いて差分を判定する例を示した(ソフトウェア更新制御方法の第2の例)が、本発明の実施形態は、かかる構成に限られない。例えば、本発明の実施形態に係る情報処理システムは、情報処理システムを構成するICチップ搭載装置側がブロック情報を用いて差分を判定することもできる。かかる構成であっても、上述した第1〜第3の実施形態に係る情報処理システムと同様の効果を奏することができる。
【0187】
上述した構成は、本発明の実施形態の一例を示すものであり、当然に、本発明の技術的範囲に属するものである。
【図面の簡単な説明】
【0188】
【図1】本発明の実施形態に係る情報処理システムが対象とする問題の一例を説明するための説明図である。
【図2】本発明の第1の実施形態に係る情報処理システムを示すブロック図である。
【図3】本発明の実施形態に係るICチップ搭載装置が備えるICチップのハードウェア構成の概略的な一例を示す説明図である。
【図4】本発明の実施形態に係るソフトウェア更新制御方法の第1の例を示す説明図である。
【図5】本発明の実施形態に係るソフトウェア更新制御方法の第2の例を示す説明図である。
【図6】本発明の第2の実施形態に係る情報処理システムを示すブロック図である。
【図7】本発明の第2の実施形態に係るリーダ/ライタにおける処理の概要の一例を示す流れ図である。
【図8】本発明の第3の実施形態に係る情報処理システムを示すブロック図である。
【符号の説明】
【0189】
100、200、302 リーダ/ライタ
102 リーダ/ライタ通信部
104 記憶部
106、204 差分判定部
108 差分データ送信部
110 送信完了判定部
112 処理部
150 ICチップ搭載装置
152 ICチップ
154 チップ内通信部
156 内部メモリ
158 内部メモリ管理部
160 外部メモリ
162 外部メモリ管理部
202通信対象判定部
250 ICカード
300 情報処理装置

【特許請求の範囲】
【請求項1】
ICチップを搭載したICチップ搭載装置と非接触通信可能な情報処理装置であって:
少なくとも1以上の更新対象データと、前記更新対象データそれぞれに対応する差分判定用データとを記憶する記憶部と;
前記ICチップ搭載装置に対して前記ICチップ搭載装置に記憶された更新対象データのバージョンに関する情報を要求し、前記要求に応じて前記ICチップ搭載装置から送信された前記バージョンに関する情報と前記差分判定用データとに基づいて、前記記憶部に記憶された前記更新対象データと前記ICチップ搭載装置に記憶された更新対象データとの差分を判定する差分判定部と;
前記差分判定部の判定結果に応じて、前記記憶部に記憶された前記更新対象データと前記ICチップ搭載装置に記憶された更新対象データとの差分に対応する差分データを、前記ICチップ搭載装置へ送信する差分データ送信部と;
を備えることを特徴とする、情報処理装置。
【請求項2】
前記差分データの送信の完了を判定する送信完了判定部と;
前記ICチップ搭載装置との間で行われるサービス処理を行う処理部と;
をさらに備え、
前記処理部は、前記送信完了判定部の判定結果に応じてサービス処理を開始することを特徴とする、請求項1に記載の情報処理装置。
【請求項3】
前記差分判定部は、前記更新対象データのバージョンに関する情報として、前記ICチップ搭載装置に記憶された各更新対象データのバージョン番号を要求することを特徴とする、請求項1に記載の情報処理装置。
【請求項4】
前記記憶部は、前記記憶部に記憶された更新対象データのバージョンと、前記更新対象データのその他のバージョンとの間の差分情報が記憶されたテーブルを前記差分判定用データとして記憶し、
前記差分判定部は、前記ICチップ搭載装置から送信されたバージョン番号と前記テーブルとに基づいて、前記差分を判定することを特徴とする、請求項3に記載の情報処理装置。
【請求項5】
前記差分判定部は、前記更新対象データのバージョンに関する情報として、前記ICチップ搭載装置に記憶された更新対象データのデータブロックの情報が記録されたブロック情報を要求することを特徴とする、請求項1に記載の情報処理装置。
【請求項6】
前記記憶部は、前記記憶部に記憶された更新対象データごとにデータブロックの情報が記録されたブロック情報を、前記差分判定用データとして記憶し、
前記差分判定部は、前記ICチップ搭載装置から送信されたブロック情報と前記記憶部に記憶されたブロック情報とに基づいて、前記差分を判定することを特徴とする、請求項5に記載の情報処理装置。
【請求項7】
前記ICチップ搭載装置に対して前記ICチップ搭載装置の装置種別を規定する装置種別情報を要求し、前記要求に応じて前記ICチップ搭載装置から送信される装置種別情報に基づいて前記ICチップ搭載装置の装置種別を判定する通信対象判定部をさらに備え、
前記差分判定部は、前記通信対象判定部の判定結果に応じて前記更新対象データのバージョンに関する情報の要求を行うことを特徴とする、請求項1に記載の情報処理装置。
【請求項8】
前記差分判定部は、
前記通信対象判定部が前記ICチップ搭載装置をICカードと判定した場合には、前記更新対象データのバージョンに関する情報の要求を行い、
前記通信対象判定部が前記ICチップ搭載装置をICカードではないと判定した場合には、前記更新対象データのバージョンに関する情報の要求を行わないことを特徴とする、請求項7に記載の情報処理装置。
【請求項9】
前記差分判定部は、前記ICチップ搭載装置のICチップ内の内部メモリ、および/または、ICチップ外の外部メモリに記憶された更新対象データのバージョンに関する情報を要求することを特徴とする、請求項1に記載の情報処理装置。
【請求項10】
前記差分判定部は、前記ICチップ搭載装置のICチップ内の内部メモリにおけるアクセス制限が設定可能なアクセス制限領域に記憶された更新対象データのバージョンに関する情報を要求することを特徴とする、請求項1に記載の情報処理装置。
【請求項11】
少なくとも1以上の更新対象データと、前記更新対象データそれぞれに対応する差分判定用データとを記憶する記憶部を備え、ICチップを搭載したICチップ搭載装置と非接触通信可能な情報処理装置におけるソフトウェア更新制御方法であって:
前記ICチップ搭載装置に対して前記ICチップ搭載装置に記憶された更新対象データのバージョンに関する情報を要求するステップと;
前記要求するステップに応じて前記ICチップ搭載装置から送信された前記更新対象データのバージョンに関する情報と、前記差分判定用データとに基づいて、前記記憶部に記憶された前記更新対象データと前記ICチップ搭載装置に記憶された更新対象データとの差分を判定するステップと;
前記判定するステップにおける判定結果に応じて、前記記憶部に記憶された前記更新対象データと前記ICチップ搭載装置に記憶された更新対象データとの差分に対応する差分データを、前記ICチップ搭載装置へ送信するステップと;
を有することを特徴とする、ソフトウェア更新制御方法。
【請求項12】
少なくとも1以上の更新対象データと、前記更新対象データそれぞれに対応する差分判定用データとを記憶する記憶部を備え、ICチップを搭載したICチップ搭載装置と非接触通信可能な情報処理装置に用いることが可能なプログラムであって:
前記ICチップ搭載装置に対して前記ICチップ搭載装置に記憶された更新対象データのバージョンに関する情報を要求するステップ;
前記要求するステップに応じて前記ICチップ搭載装置から送信された前記更新対象データのバージョンに関する情報と、前記差分判定用データとに基づいて、前記記憶部に記憶された前記更新対象データと前記ICチップ搭載装置に記憶された更新対象データとの差分を判定するステップ;
前記判定するステップにおける判定結果に応じて、前記記憶部に記憶された前記更新対象データと前記ICチップ搭載装置に記憶された更新対象データとの差分に対応する差分データを、前記ICチップ搭載装置へ送信するステップ;
をコンピュータに実行させるためのプログラム。
【請求項13】
情報処理装置と、前記情報処理装置と非接触通信可能なICチップを搭載したICチップ搭載装置とを有する情報処理システムであって:
前記情報処理装置は、
少なくとも1以上の更新対象データと、前記更新対象データそれぞれに対応する差分判定用データとを記憶する記憶部と;
前記ICチップ搭載装置に対して前記ICチップ搭載装置に記憶された更新対象データのバージョンに関する情報を要求し、前記要求に応じて前記ICチップ搭載装置から送信された前記バージョンに関する情報と前記差分判定用データとに基づいて、前記記憶部に記憶された前記更新対象データと前記ICチップ搭載装置に記憶された更新対象データとの差分を判定する差分判定部と;
前記差分判定部の判定結果に応じて、前記記憶部に記憶された前記更新対象データと前記ICチップ搭載装置に記憶された更新対象データとの差分に対応する差分データを、前記ICチップ搭載装置へ送信する差分データ送信部と;
を備え、
前記ICチップ搭載装置は、
前記ICチップの内部に設けられ、前記情報処理装置から送信される前記バージョンに関する情報の要求、または前記差分データを受信し、前記バージョンに関する情報の要求に応じた更新対象データのバージョンに関する情報を前記情報処理装置へ送信するチップ内通信部と;
前記ICチップの内部に設けられ、更新対象データを記憶可能な内部メモリと;
前記ICチップの外部に設けられ、更新対象データを記憶可能な外部メモリと;
前記チップ内通信部が受信した前記バージョンに関する情報の要求に応じて、前記内部メモリ、および/または、前記外部メモリから前記更新対象データのバージョンに関する情報を読み出して送信させ、前記チップ内通信部が受信した前記差分データに基づいて、前記内部メモリ、および/または、前記外部メモリに記憶された更新対象データを更新するメモリ管理部と;
を備えることを特徴とする、情報処理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2009−70158(P2009−70158A)
【公開日】平成21年4月2日(2009.4.2)
【国際特許分類】
【出願番号】特願2007−238153(P2007−238153)
【出願日】平成19年9月13日(2007.9.13)
【出願人】(504134520)フェリカネットワークス株式会社 (129)
【Fターム(参考)】