以下に、本発明の実施の形態について図面を参照して説明する。
[システムについて]
図5は、本発明が適用されるシステムの一実施の形態の構成を示す図である。図5に示したシステムは、携帯電話機201とリーダライタ202から構成される。携帯電話機201とリーダライタ202は、非接触により通信を行う。ここでは携帯電話機201として説明を続けるが、リーダライタ202と通信を行い、何らかのデータを保持するICカードなどにも本発明を適用することができる。
[携帯電話機201の構成について]
図6は、携帯電話機201の内部構成を示す図である。携帯電話機201は、ホスト221、UICC(Universal Integrated Circuit Card)222を含み、ホスト221とUICC222は、UART(Universal Asynchronous Receiver Transmitter)223でデータの授受を行えるように接続されている。また、携帯電話機201とリーダライタ202との非接触な通信を制御するCLF(Contactless Frontend)224も、携帯電話機201は含む構成とされている。
なお、ここでは本発明に係わる部分を図示して説明するが、携帯電話機201は、図示していない通信部などにより電話として機能する機能や、ネットワークに接続する機能などを実現する部分も含む構成とされている。
UICC222は、UICCハードウェア251、アプリケーションマネージャ252、レジストリ253を備える。またUICC222は、ここでは、第1アプリケーション254、第2アプリケーション255、および第3アプリケーション256を記憶し、管理するとする。第1アプリケーション254は、例えば、携帯電話機201でクレジットカードの機能を実現するサービスを提供するためのアプリケーションである。また例えば、第2アプリケーション255は、交通機関に乗り降りするときの料金の支払いなどのときに用いられるトランスポート系のサービスを携帯電話機201で提供するためのアプリケーションである。
また例えば、第3アプリケーション256は、総合サービスを提供するためのアプリケーションである。後述するように、第3アプリケーション256は、クレジットの機能を実現するサービス、トランスポート系のサービス、クーポンを提供するサービスなど、複数のサービスを提供するためのアプリケーションである。図6には図示していないが、図14を参照して後述するように、UICC222にサービスが追加で登録されることがあり、UICC222は、登録されたサービスを記憶し、管理する機能も有する。各アプリケーションは、アプリケーションマネージャ252によって、管理されるものであるが、同じ実行環境で管理される事に限定されない。一例として、アプリケーションマネージャ252がJavaCardTMを搭載し、1つのアプリケーションがソフトウェアにより実現されていても、他のアプリケーションが、ROMの工場出荷時に書き込まれている場合や、別チップとして提供される場合もあり得る。
UICCハードウェア251は、UICC222を構成するハードウェアの部分であり、例えば、CLF224とデータの授受を行うインターフェイスを含む構成とされる。アプリケーションマネージャ252は、レジストリ253を備える。アプリケーションマネージャ252は、レジストリ253に書き込まれている情報を参照したり、アプリケーションからの指示に基づき、レジストリ253内の情報を更新したりする。
また、アプリケーションマネージャ252は、CLF224を介して供給されたコマンドを解釈し、その解釈に基づき、アプリケーションにデータを供給したり、アプリケーションからのデータを、CLF224に供給したりする処理を実行する。レジストリ253は、アプリケーションが提供するサービスの名称やサービス種別といったサービスに関する情報を管理する。
ここでアプリケーションやサービスが登録されたり、更新されたりするときのデータの流れについて説明する。
[登録、更新時のデータの流れについて]
図7は、第1アプリケーション254にアクセスするときのデータの流れについて説明するための図である。第1アプリケーション254にアクセスする場合、リーダライタ202からCLF224を介して、UICCハードウェア251経由でUICC222の第1アプリケーション254にアクセスする通信路301がある。また、同じくリーダライタ202からCLF224を介して、さらに、UICC222のUICCハードウェア251とアプリケーションマネージャ252を介して第1アプリケーション254にアクセスする通信路302がある。
通信路301と通信路302の違いは、それぞれ異なるコマンドフォーマットによるものである。通信路301で第1アプリケーション254に送信されるのは、第1アプリケーション254の通信プロトコルに対応した独自のコマンドフォーマットである。リーダライタ202とCLF224の間で、第1アプリケーション254対応するプロトコルによって通信を行い、CLF224からUICCハードウェア251には、通信で取得した独自のコマンドが渡される。また、通信路302で第1アプリケーション254に送信されるのは、通信プロトコルに対応した汎用のコマンドフォーマットである。リーダライタ202とCLF224の間で、第1アプリケーション254に対応するプロトコルによって通信を行い、CLF224からUICCハードウェア251には、通信で取得した汎用のコマンドフォーマットに準拠したコマンドが渡される。つまり、流れるコマンドフォーマットによって、アプリケーションマネージャ252を経由せずに第1アプリケーションに行く通信路301と、経由して第1アプリケーションに行く通信路302がある。
後述するように、通信プロトコルとしては、ISO 14443で規格されている3と4に対応したType A規格、Type B規格、18092で規格されている通称TypeF規格が存在する。その通信プロトコルを利用する汎用なコマンドフォーマットとしては、ISO7816−4で規定されるApplication Protocol Data Unit(APDU)と呼ばれるコマンドフォーマットがある。APDUコマンドフォーマットに準拠したコマンドの事を、以下、APDUコマンドと記述する。
図7に説明を戻し、第1アプリケーション254にアクセスする通信路としては、通信路303もある。この通信路303は、ホスト221から、有線のUART223を介し、さらにUICC222内のUICCハードウェア251とアプリケーションマネージャ252を介して第1アプリケーション254にアクセスする通信路である。
このように、第1アプリケーション254へとアクセスする通信路は3系統ある。また、第1アプリケーション254は、アプリケーションマネージャ252内のレジストリ253にアクセスすることができ、この通信路を通信路304とする。
次に、図8を参照し、第2アプリケーション255にアクセスするときのデータの流れについて説明する。第2アプリケーション255にアクセスする場合、リーダライタ202からCLF224を介して、さらに、UICC222のUICCハードウェア251とアプリケーションマネージャ252を介して第2アプリケーション255にアクセスする通信路321がある。この通信路321で第2アプリケーション255に送信されるのは、汎用の通信プロトコルに対応したコマンドフォーマットである。
また、第1アプリケーション254と同じく有線経由の通信路322もある。通信路322は、ホスト221から、有線のUART223を介し、さらにUICC222内のUICCハードウェア251とアプリケーションマネージャ252を介して第2アプリケーション255にアクセスする通信路である。
このように、第2アプリケーション255へとアクセスする通信路は2系統ある。また、第2アプリケーション255は、アプリケーションマネージャ252内のレジストリ253にアクセスすることができるように構成されている。この通信路を通信路323とする。
次に、図9を参照し、第3アプリケーション256にアクセスするときのデータの流れについて説明する。第3アプリケーション256にアクセスする場合、リーダライタ202からCLF224を介して、UICCハードウェア251を経由して、UICC222の第3アプリケーション256にアクセスする通信路351がある。また、同じくリーダライタ202からCLF224を介して、さらに、UICC222のUICCハードウェア251とアプリケーションマネージャ252を介して第3アプリケーション256にアクセスする通信路352がある。
第1アプリケーション254と同じく、この第3アプリケーション256における通信路351と通信路352の違いも、それぞれ異なるコマンドフォーマットによるものである。リーダライタ202とCLF224の間で、第3アプリケーション256に対応するプロトコルによって通信を行い、CLF224からUICCハードウェア251には、通信で取得した第3アプリケーション256独自のコマンドが渡される。
通信路351で第3アプリケーション256に送信されるのは、第3アプリケーション256の通信プロトコルに対応した独自のコマンドフォーマットである。また、通信路352で第3アプリケーション256に送信されるのは、汎用のプロトコルに対応したコマンドフォーマットである。リーダライタ202とCLF224の間で、第3アプリケーション256に対応するプロトコルによって通信を行い、CLF224からUICCハードウェア251には、通信で取得した汎用のコマンドフォーマットに準拠したコマンドが渡される。
すなわち、流れるコマンドフォーマットによって、アプリケーションマネージャ252を経由せずに第3アプリケーション256に行く通信路351と、経由して第3アプリケーション256に行く通信路352がある。
第3アプリケーション256にアクセスする通信路としては、通信路353もある。この通信路353は、ホスト221から、有線のUART223を介し、さらにUICC222内のUICCハードウェア251とアプリケーションマネージャ252を介して第3アプリケーション256にアクセスする通信路である。
このように、第3アプリケーション256へとアクセスする通信路は3系統ある。また、第3アプリケーション256は、アプリケーションマネージャ252内のレジストリ253にアクセスすることができ、この通信路を通信路354とする。
図10を参照し、これらの通信路や通信プロトコル、コマンドフォーマットについて説明を加える。図10では、具体的な例を挙げて説明する。第1アプリケーション254は、Type Aなどと称される通信方式に対応している。以下、適宜、第1アプリケーション254が対応している通信方式を第1通信方式と記述し、第1通信方式の具体例としては、Type Aであるとして説明を続ける。
第1通信方式は、通信プロトコルとして、Type Aと称する通信方式のうちISO 14443−2〜3に準拠しており、送信パケットとして独自パケットを利用しているものと14443−4にも準拠し、汎用パケットに対応したものの2種類が存在する。
独自パケットは、第1アプリケーション254独自のコマンドを送受信する目的で用いられる。よってリーダライタ202から、この独自パケットが送信された場合、CLF224で抜き出されたコマンドはUICCハードウェア251を経由して第1アプリケーション254へと供給される。換言すれば、独自の規格のパケットなため、アプリケーションマネージャ252で処理せず、第1アプリケーション254に供給される。
なお、第1アプリケーション254の実現方法により、アプリケーションマネージャ252を経由する場合としない場合がある。例えば、第1アプリケーション254がUICCハードウェア251内で実現される場合は、アプリケーションマネージャ252の管理下から離れてアプリケーションマネージャ252を介さずハードウェア内で動作することが可能である。別の例として、第1アプリケーション254がモジュールとして後からメモリ上に展開されている場合は、アプリケーションマネージャ252の管理下に置かれ、その場合は、アプリケーションマネージャ252を介する。アプリケーションマネージャを介する時は、前記のように汎用コマンドでのアクセスになる。
ここでは、図7に示した例、すなわち上記したように、リーダライタ202から独自パケットが送信された場合、CLF224で抜き出されたコマンドはUICCハードウェア251を経由して第1アプリケーション254へと供給され、その経路は、通信路301であるとして説明を続ける。
なお、以下の説明においては、独自コマンドは、第1アプリケーション254の独自のパケット(第1パケットと記述する)で送受信されるコマンドであることを示すために第1コマンドと記述する。独自コマンドを利用した第1アプリケーションの1例として、MIFARE(商標)がある。
アプリケーションマネージャ252は、CLF224で処理された後に抜き出されるAPDUコマンドを扱う。よってリーダライタ202から、このAPDUコマンドが送信された場合、通信路302(図7)、すなわち、CLF224、UICCハードウェア251、およびアプリケーションマネージャ252を介して第1アプリケーション254へと供給される。この場合、アプリケーションマネージャ252が、供給されたコマンドは、第1アプリケーション254へのコマンドであるとの処理を実行することで、第1アプリケーション254へとコマンドが供給されることになる。
この汎用パケットは、汎用のコマンドフォーマット、ここでは、APDUコマンドを送受信する目的で用いられる。
第2アプリケーション255は、Type Bなどと称される通信方式に対応している。以下、適宜、第2アプリケーション255が対応している通信方式を第2通信方式と記述し、第2通信方式の具体例としては、Type Bであるとして説明を続ける。この第2通信方式は、対応プロトコルとして、ISO 14443−2〜4に準拠している。
第2通信方式(Type B)は、送信可能パケットとして、汎用パケットがある。汎用パケットは、上記したように、汎用のコマンドフォーマットの送受信を目的としており、APDUコマンドを送受信する目的で用いられる。
リーダライタ202から、この汎用パケットが送信された場合、CLF224でパケットを処理し、その中からAPDUコマンドを抜き出し、UICCハードウェア251、およびアプリケーションマネージャ252を介して第2アプリケーション255へと供給される。この場合、その後、アプリケーションマネージャ252が、供給されたパケットから抜き出したAPDUコマンドを処理し、第2アプリケーション255へのコマンドであるとの処理を実行することで、第2アプリケーション255へとコマンドが供給されることになる。
なお、第2アプリケーション255の場合も、第1アプリケーション254の場合と同じく、第2アプリケーション255の実現方法により、アプリケーションマネージャ252を経由する場合としない場合が考えられる。ここでは、図8に示したように、アプリケーションマネージャ252を介する例を挙げて説明を続ける。
第3アプリケーション256は、Type Fなどと称される通信方式に対応している。以下、適宜、第3アプリケーション256が対応している通信方式を第3通信方式と記述し、第3通信方式の具体例としては、Type Fであるとして説明を続ける。この第3通信方式は、通信プロトコルとして、ISO 18092に準拠している。
第3通信方式(Type F)は、送信可能パケットとしてFeliCa(商標)パケットと、FeliCaパケット上にさらに汎用パケットを載せたものがある。FeliCaパケットは、第3アプリケーション256の独自のパケットである。よってリーダライタ202から、このFeliCa パケットが送信された場合、CLF224で抜き出されたFeliCaコマンドがCLF224から第3アプリケーション256へと供給される。このFeliCa パケットは、FeliCa コマンドを送受信する目的で用いられる。
なお、第3アプリケーション256の場合も、第1アプリケーション254の場合と同じく、第3アプリケーション256の実現方法により、アプリケーションマネージャ252を経由する場合としない場合が考えられる。ここでは、図9に示したように、アプリケーションマネージャ252を介する例(通信路351での通信例)を挙げて説明を続ける。
なお、以下の説明においては、FeliCa コマンドは、第3アプリケーション256の独自のパケット(以下、第3パケットと記述する)で送受信されるコマンドであることを示すために第3コマンドと記述する。
このType Fは、送信可能パケットとして、FeliCaパケット上にさらに汎用パケットを載せて汎用コマンドの送受にも対応している。この汎用パケットは、上記したように、汎用コマンドの送受信を目的としており、APDUコマンドを送受信する目的で用いられる。
リーダライタ202から、この汎用パケットが送信された場合、CLF224でパケットを処理し、抜き出されたAPDUコマンドが、UICCハードウェア251、およびアプリケーションマネージャ252を介して第3アプリケーション256へと供給される。すなわち、通信路352(図9)でAPDUコマンドとそのレスポンスデータの授受が行われる。この場合、アプリケーションマネージャ252が、供給されたAPDUコマンドは、第3アプリケーション256へのコマンドであるとの処理を実行することで、第3アプリケーション256へとAPDUコマンドが供給されることになる。
このように、携帯電話機201とリーダライタ202が非接触でパケットの授受を行う場合、第1パケットや第3パケットといった、サービス独自のコマンドに対応したパケットで授受が行われるときと、汎用のAPDUコマンドといったISO7816−4に準拠したコマンドフォーマットで授受が行われるときとがある。
さらに、有線という通信路もある。すなわち図10を参照するに、通信路303(図7)、通信路322(図8)、通信路353(図9)で通信が行われるとき、そのプロトコルはシリアル通信を行うプロトコルとされる。そして、送受信可能なパケットとしては、有線独自のパケットと、TPDU(Transport Protocol Data Unit)(ISO 7816−3)規格のパケットとがある。
第3アプリケーション256に対する処理を行いたい場合、独自の有線パケットは、第3コマンド(FeliCaコマンド)の授受を行うために用いられる。TPDU規格のパケットは、汎用のコマンド、この場合、APDUコマンドを授受するために用いられる。
図11を参照し、さらに、第1通信方式(Type A)、第2通信方式(Type B)、第3通信方式(Type F)、および有線における階層構造について説明する。第1アプリケーション254に対応する第1通信方式は、初期化/衝突防止層として、ISO 14443−3 Type A規格に対応している。また第1通信方式は、パケット層として、独自パケットと、ISO 14443−4規格の汎用パケットに対応している。そして、第1通信方式のコマンド層は、パケット層の独自パケットに対応するコマンド層として、独自 コマンドフォーマットに対応し、パケット層のISO 14443−4規格の汎用パケットに対応するコマンド層として、ISO 7816−4に準拠したAPDUコマンドフォーマットに対応している。
第2アプリケーション255に対応する第2通信方式は、初期化/衝突防止層として、ISO 14443−3 Type B規格に対応している。また第2通信方式は、パケット層として、ISO 14443−4規格の汎用パケットに対応している。そして、Type Bのコマンド層は、パケット層のISO 14443−4規格の汎用パケットに対応するコマンド層として、ISO 7816−4に準拠したAPDUコマンドフォーマットに対応している。
第3アプリケーション256に対応する第3通信方式は、初期化/衝突防止層として、ISO 18092規格に対応している。また第3通信方式は、パケット層として、ISO 14443−4規格のパケットと、FeliCaパケットに対応している。そして、Type Fのコマンド層は、パケット層のISO 14443−4規格のパケットに対応するコマンド層として、ISO 7816−4に準拠したAPDUコマンドフォーマットに対応し、パケット層のFeliCaパケットに対応するコマンド層として、FeliCaコマンドフォーマットに対応している。
有線は、無線通信ではないため、初期化/衝突防止層を備える必要がない。物理的な接続については、ISO7816−1と2により実現される。有線は、パケット層として、ISO 7816−3規格のパケットに準拠している。そして、有線のコマンド層は、パケット層のISO 7816−3規格のパケットに対応するコマンド層として、ISO 7816−4に準拠したAPDUコマンドフォーマットに対応している。
このように、第1アプリケーション254、第2アプリケーション255、第3アプリケーション256に、それぞれアクセスする通信路は複数あるため、リーダライタ202は、どの通信路(通信方式)でデータの授受を行うかを判断する必要がある。
ここで、再度図6を参照する。図6に示したように、UICC222で、第1アプリケーション254、第2アプリケーション255、および第3アプリケーション256が管理されているとき、ビューワ241による処理が実行されると、例えば、図12に示すような画面がユーザに提供される。画面とは、例えば、携帯電話機201のディスプレイ401に表示される画面のことである。
図12に示すようにビューワ241は、アプリケーションマネージャ252が認識した第1アプリケーション254、第2アプリケーション255、第3アプリケーション256を認識する。そしてビューワ241は、第1アプリケーション254が提供するサービスの名称である“第1サービス”、第2アプリケーション255が提供するサービスの名称である“第2サービス”、および第3アプリケーション256が提供するサービスの名称である“第3サービス”を、ディスプレイ401に表示させる。
第3アプリケーション256は、総合サービスであり、図13に示すように複数のサービスを提供できる。すなわち、図13に示した例では、第3アプリケーション256は、第3−1サービス257、第3−2サービス258、および第3−3サービス259を提供できるように構成されている。
このように、第3アプリケーション256が、第3−1サービス257、第3−2サービス258、および第3−3サービス259を提供できる場合であっても、ビューワ241は、アプリケーションマネージャ252上に登録されている第1アプリケーション254、第2アプリケーション255、第3アプリケーション256しか認識できず、第3−1サービス257、第3−2サービス258、および第3−3サービス259までも認識して、その情報をユーザに提示することができない。
これは、レジストリ253で、登録されているサービスの情報が管理されているからである。ここで、アプリケーションやサービスの登録について説明する。
図14に示すように、UICC222に第3−1サービス257が登録されていない状態(登録されていないことを示すために、図14においては、点線で示す。またアプリケーションなどは図示していない)のときに、第3−1サービス257を登録する際、UICC222の外部から、サービスを登録するためのデータ431が送信される。サービスを登録するためのデータは、サービス登録データとする。このサービス登録データ431は、第3−1サービス257を登録するためのものである。このようなサービス登録データ431によるサービスの登録は、現状でも行われているインフラを用いて行うことができる。図14を使って説明すると、リーダライタ202からCLF224を経由して、UICC222にサービス登録データ431を渡すことが出来る。または、ホスト221からUARTを経由して、UICC222にデータを渡すことも可能である。
しかしながら、サービス登録データ431で第3−1サービス257を登録しても、アプリケーションマネージャ252のレジストリ253には、第3−1サービス257の情報は登録されない。そのため、そのようなサービスが登録されたことが認識できない。よって、レジストリ253で管理されている情報を更新するために、サービス種別や名前を登録するための処理が行われる必要がある。
例えば、サービス種別・名前コマンド432をアプリケーションマネージャ252に対して送信し、アプリケーションマネージャ252での管理情報(レジストリ253内の情報)を更新する必要がある。この場合、第3アプリケーション256には、第3−1サービス257が含まれること(新たに登録されたこと)を、サービス種別・名前コマンド432でアプリケーションマネージャ252のレジストリ253に登録する必要がある。
仮に、第3アプリケーション256が提供する第3−1サービス257、第3−2サービス258、および第3−3サービス259毎に、第3のアプリケーションと同様に、第4、第5、第6とそれぞれ登録を行うようにすることも考えられる。このようにした場合、第3−1サービス257、第3−2サービス258、および第3−3サービス259は第4、第5、第6のアプリケーションとして、それぞれ登録することが可能となる。しかしながら、このような登録を行うようにすると、既存のサービス登録データ431を用いることができなくなり、現状のアプリケーション間の関係性を用いた運用が適用できなくなり、既存のインフラを用いたオペレーションができなくなる可能性がある。
既存のインフラをできる限り生かしつつも、ビューワ241で、個々のサービスが閲覧できるようにするためには、上記したように、サービス登録データ431とサービス種別・名称コマンド432をそれぞれ送信してサービス名を登録することが考えられる。ここでは、第3アプリケーション256が複数のサービスを含んでいるとして説明したが、第1アプリケーション254や第2アプリケーション255が複数のサービスを含んでいるような場合でも、同様のことが言える。
図7乃至11を参照して説明したように、第1アプリケーション254、第2アプリケーション255、第3アプリケーション256のそれぞれは、複数の通信路によりアクセス可能である。第3アプリケーション256は、通信路351乃至354(図9)があるため、例えば、通信路351で、第3−1サービス257を登録し、通信路352で、レジストリ253の情報を更新することができる。
このようなことを可能にするためには、リーダライタ202が、携帯電話機201に対して登録や更新の処理を実行するとき、どの通信路を用いて登録を行い、どの通信路を用いて更新を行うかを判断し、その判断に基づき、適切なコマンド、例えば、選択した通信路に適合したプロトコルのパケットでのコマンドを生成する必要がある。
[リーダライタの構成について]
そこで、リーダライタ202は、図15に示すような機能を有する構成とされる。すなわち、リーダライタ202は、通信制御部501、通信方式決定部502、サービス登録部503、および更新処理部504を備える。通信制御部501は、所定のアプリケーション(例えば、第3アプリケーション256)と、アプリケーションで提供されるサービス(例えば、第3−1サービス257)を管理するアプリケーションマネージャ252を備えるUICC222との非接触な通信を制御する。
通信方式決定部502は、UICC222に対して所定のサービスの登録を行うときの通信方式と、レジストリ253に対する更新を行うときの通信方式をそれぞれ決定する処理を行う。
サービス登録部503は、通信方式決定部502により決定された通信方式で、UICC222に所定のサービスを登録するためのコマンドの生成などを実行する。更新処理部504は、通信方式決定部502により決定された通信方式で、UICC222のレジストリ253で管理されている情報を更新するためのコマンドの生成などを実行する。
[リーダライタの処理について]
次に、リーダライタ202の処理について図16のフローチャートを参照して説明する。ステップS1において、通信方式決定部502により、通信方式が決定される。このステップS1において実行される通信方式の決定は、図17乃至図24を参照して後述する第1乃至第8の決定処理のいずれか1つの処理が実行されることで行われる。
ステップS1において、サービスを登録する通信方式とサービス名を登録する通信方式が決定されると、ステップS2において、サービス登録部503により、決定された通信方式で、まずサービスの登録処理が実行される。そして、ステップS3において、更新処理部504により、決定された通信方式で、サービス名の登録処理(レジストリ253の更新処理のための処理)が実行される。このサービスの登録とサービス名の登録に関する処理については、図26以降のフローチャートを参照して後述する。
まずステップS1において実行されるUICC222に対してサービスを登録するときの通信方式と、レジストリ253の更新を行うときの通信方式を決定する際の処理について説明する。通信方式の決定に係わる処理について8通りの例を挙げて説明する。
[通信方式の第1の決定処理について]
通信方式の第1の決定処理として、全ての通信方式を試して、良好な通信を行える通信方式を選択する方法について図17のフローチャートを参照して説明する。ステップS11において、第1通信方式の利用が可能か否かが判断される。例えば、第1通信方式でのパケットが送信され、その返答があったか否かが判断されることで、第1通信方式の利用が可能か否かが判断される。
ステップS11において、第1通信方式の利用が可能であると判断された場合、ステップS12に処理が進められる。ステップS12において、APDUコマンドフォーマットの利用が可能であるか否かが判断される。例えば、APDUコマンドが生成され、そのAPDUコマンドに対する返答があったか否かが判断されることで、APDUコマンドフォーマットが利用可能であるか否かが判断される。
ステップS12において、APDUコマンドフォーマットの利用が可能であると判断された場合、ステップS13に処理が進められる。また、ステップS12において、APDUコマンドフォーマットが利用可能ではないと判断された場合も、ステップS13に処理が進められる。さらに、ステップS11において、第1通信方式の利用が可能ではないと判断された場合も、ステップS13に処理が進められる。
すなわち、ステップS11とステップS12の処理が実行されることにより、第1通信方式で通信を行えるCLF224であるか否かの判断が行われ、第1通信方式で通信可能である場合には、さらにAPDUコマンドフォーマットが利用可能である否かの判断が行われることになる。このような判断結果は、適宜保持される。
ステップS13において、第2通信方式の利用が可能か否かが判断される。ステップS13において、第2通信方式の利用が可能であると判断された場合、ステップS14に処理が進められる。ステップS14において、APDUコマンドフォーマットの利用が可能であるか否かが判断される。ステップS14において、APDUコマンドフォーマットの利用が可能であると判断された場合、ステップS15に処理が進められる。また、ステップS14において、APDUコマンドフォーマットが利用可能ではないと判断された場合も、ステップS15に処理が進められる。さらに、ステップS13において、第2通信方式の利用が可能ではないと判断された場合も、ステップS15に処理が進められる。
すなわち、ステップS13とステップS14の処理が実行されることにより、第2通信方式で通信を行える携帯電話機201であるか否かの判断が行われ、第2通信方式で通信可能である場合には、さらにAPDUコマンドフォーマットが利用可能である否かの判断が行われることになる。このような判断結果は、適宜保持される。
ステップS15において、第3通信方式の利用が可能か否かが判断される。ステップS15において、第3通信方式の利用が可能であると判断された場合、ステップS16に処理が進められる。ステップS16において、APDUコマンドフォーマットの利用が可能であるか否かが判断される。ステップS16において、APDUコマンドフォーマットの利用が可能であると判断された場合、ステップS17に処理が進められる。また、ステップS16において、APDUコマンドフォーマットが利用可能ではないと判断された場合も、ステップS17に処理が進められる。さらに、ステップS15において、第3通信方式の利用が可能ではないと判断された場合も、ステップS17に処理が進められる。
すなわち、ステップS15とステップS16の処理が実行されることにより、第3通信方式で通信を行えるCLF224であるか否かの判断が行われ、第3通信方式で通信可能である場合には、さらにAPDUコマンドフォーマットが利用可能である否かの判断が行われることになる。このような判断結果は、適宜保持される。
ステップS17において、全ての判断結果が保持される。利用可能であった場合には、フラグが立てられ、利用不可能であった場合には、フラグが立てられないという条件で管理されるテーブルが用いられ、各ステップにおける判断結果が保持されるようにしても良い。
ステップS18において、状態から最適な処理が選択される。この選択は、利用可能であるとされた通信方式が選択される。場合によって、APDUコマンドフォーマットが利用可能と判断された通信方式が選択されたり、独自のパケットによる通信方式が選択される。選択される順位が設定されており、その順位に従って、利用可能であると判断された通信方式が選択される。このような、予め設定されている選択条件に基づいて選択が行われる。また、リーダライタ202の制約なども反映されて、選択が行われる。
ステップS19において、ステップS18において選択された通信方式で、通信が実行される。例えば、第1通信方式が選択された場合には、第1通信方式で通信が行われる。その結果、処理(通信)が成功したか否かが、ステップS20において判断される。何らかの原因により、処理が正常に行われなかった場合、その通信方式での通信を中止し、異なる通信方式が選択される。
すなわち、ステップS20において、選択された通信方式での処理は成功しなかったと判断された場合、ステップS21に処理が進められ、状態(条件)の更新が行われ、その更新後に、ステップS18に処理が戻され、それ以降の処理が繰り返される。ステップS21において実行される更新は、例えば、通信が失敗した通信方式を、利用不可能な通信方式との判断結果に更新(変更)するなどの処理である。
一方、ステップS20において、選択された通信方式で処理が成功したと判断された場合、通信方式の決定処理に係わる図17に示したフローチャートの処理は終了される。後段の処理として、選択された通信方式で、サービスの登録やレジストリ253の更新が行われる。そのような処理については、後述する。
なお、図17に示した処理の順序は一例であり、限定を示すものではない。すなわち、第1通信方式、第2通信方式、第3通信方式の全ての通信方式を試し、その結果を保持するため、どの通信方式から試すかによる差異はなく、どの通信方式から試しても良い。
このように、リーダライタ202がCLF224と、複数の通信方式で通信を行うことができるように構成されている場合、CLF224と通信を行えるか否かが通信方式毎に判断され、通信を行えると判断された通信方式の中から、その時点で最適であると判断される通信方式が選択される。
このように、全ての通信方式を試すことにより通信方式を決定することで、仮に、選択された通信方式での通信に失敗したとしても、リカバリーがしやすくなるという利点がある。
[通信方式の第2の決定処理について]
通信方式の第2の決定処理として、第1通信方式、第2通信方式、第3通信方式の順で通信方式の利用が可能であるか否かを判断し、利用可能であると判断されたときに、その通信方式を選択することで通信方式が決定される場合について図18のフローチャートを参照して説明する。
図18乃至図24のフローチャートを参照して説明する決定処理は、基本的な処理の流れは同じであり、まず複数の通信方式のうちの1つの通信方式が選択され、その通信方式でUICC222と通信が可能であるか否かが判断される。そして、通信できないと判断されたときには、他の通信方式が選択し直されて、再度、UICC222との通信が試される。そして、選択された通信方式で通信が可能となった時点で、その通信が可能となった通信方式を選択するという処理である。
ステップS51において、第1通信方式の利用が可能であるか否かが判断される。ステップS51において、第1通信方式の利用が可能であると判断された場合、ステップS52に処理が進められる。ステップS52において、APDUコマンドフォーマットの利用が可能であるか否かが判断される。ステップS52において、APDUコマンドフォーマットの利用が可能であると判断された場合、ステップS53に処理が進められる。
ステップS53において、第1通信方式で実現すると決定されて、通信方式の決定処理は終了される。すなわちこの場合、第1通信方式で通信可能であり、第1通信方式におけるAPDUコマンドフォーマットの利用が可能であるため、第1通信方式で、サービスの登録とレジストリ253の更新(登録されるサービスの名称の追加)が行われると設定される。後段の処理において、設定された通信方式で、サービスの登録とサービスの名称の追加が行われる。
一方、ステップS52において、APDUコマンドフォーマットが利用できないと判断された場合、ステップS54に処理が進められる。ステップS54において、第2通信方式の利用が可能であるか否かが判断される。ステップS54において、第2通信方式の利用が可能であると判断された場合、ステップS55に処理が進められる。
この場合、第1通信方式と第2通信方式の利用が可能であると判断されたことになるので、ステップS55においては、第1通信方式と第2通信方式で、登録と更新の処理を実現すると設定される。具体的には、第1通信方式でサービスの登録が行われ、第2通信方式でサービス名の登録が行われると設定される。または第2の通信方式のみで、サービスとサービス名の登録が行われると設定される。
なお、この場合、第2通信方式は、APDUコマンドフォーマットで通信を行う方式であるので、第2通信方式の利用が可能と判断されたときには、APDUコマンドフォーマットが利用可能であるかの判断は行われない。
図18中、「第1通信方式/第2通信方式」との記載は、/の前に記載されている第1通信方式では、APDUコマンドフォーマットが利用できないことを示し、/の後に記載されている第2通信方式では、APDUコマンドフォーマットが利用できることを示す。他の図面においても同様であり、A/Bとの記載の場合、AはAPDUコマンドフォーマットが利用できないことを示し、BはAPDUコマンドフォーマットを利用できることを示す。
一方、ステップS54において、第2通信方式が利用できないと判断された場合、ステップS56に処理が進められる。ステップS56において、第3通信方式の利用が可能であるか否かが判断される。ステップS56において、第3通信方式の利用が可能であると判断された場合、ステップS57に処理が進められる。
ステップS57において、APDUコマンドフォーマットの利用が可能であるか否かが判断される。ステップS57において、APDUコマンドフォーマットの利用が可能であると判断された場合、ステップS58に処理が進められる。
この場合、第1通信方式、第3通信方式、および第3通信方式におけるAPDUコマンドフォーマットの利用が可能であると判断されたことになるので、ステップS58においては、第1通信方式と第3通信方式で、登録と更新の処理を実現すると設定される。この場合、第1通信方式、第3通信方式、および第3通信方式におけるAPDUコマンドのいずれかが用いられて、サービスの登録が行われ、第3通信方式におけるAPDUコマンドが用いられてサービス名の登録が行われると設定される。
一方、ステップS51において、第1通信方式の利用は可能ではないと判断された場合、ステップS60に処理が進められる。ステップS60において、第2通信方式の利用が可能であるか否かが判断される。ステップS60において、第2通信方式の利用が可能であると判断された場合、ステップS61に処理が進められる。
この場合、第2通信方式の利用が可能であると判断されたことになるので、ステップS61においては、第2通信方式で、登録と更新の処理を実現すると設定される。
一方、ステップS60において、第2通信方式が利用できないと判断された場合、ステップS62に処理が進められる。ステップS62において、第3通信方式の利用が可能であるか否かが判断される。ステップS62において、第3通信方式の利用が可能であると判断された場合、ステップS63に処理が進められる。
ステップS63において、APDUコマンドフォーマットの利用が可能であるか否かが判断される。ステップS63において、APDUコマンドフォーマットの利用が可能であると判断された場合、ステップS64に処理が進められる。
この場合、第3通信方式、および第3通信方式におけるAPDUコマンドフォーマットの利用が可能であると判断されたことになるので、ステップS64においては、第3通信方式で、登録と更新の処理を実現すると設定される。具体的には、第3通信方式、または第3通信方式におけるAPDUコマンドでサービスの登録が行われ、第3通信方式におけるAPDUコマンドでサービス名の登録が行われると設定される。
一方、ステップS62において、第3通信方式の利用は可能ではないと判断された場合、ステップS65に処理が進められる。この場合、第1通信方式、第2通信方式、および第3通信方式の全ての通信方式で通信が行えない、換言すれば、リーダライタ202がサポートしている通信方式でCLF224と通信を行うことができないと判断されたときであるので、ステップS65において、通信不可と判断される。
一方、ステップS63において、APDUコマンドフォーマットの利用が可能ではないと判断された場合、ステップS59に処理が進められる。この場合、第3通信方式で通信は可能であるが、APDUコマンドフォーマットの利用はできないと判断されたときである。同様に、ステップS56において、第3通信方式の利用ができないと判断された場合も、ステップS59に処理が進められる。この場合、第1通信方式では通信可能であるが、APDUコマンドフォーマットの利用が出来ない、第2通信方式、および第3通信方式では通信ができないと判断されたときである。
また同様に、ステップS57において、APDUコマンドフォーマットの利用ができないと判断された場合も、ステップS59に処理が進められる。この場合、第1通信方式と第3通信方式で通信は可能であるが、どちらの方式であってもAPDUコマンドフォーマットを利用した通信ができないと判断されたときである。
これらのステップS59に処理が進められるときの共通の状況としては、APDUコマンドフォーマットの利用ができない点である。APDUコマンドフォーマットが利用できない場合、レジストリ253の更新が行えない。詳細は後述するが、レジストリ253の更新は、APDUコマンドが用いられて行われる。よって、APDUコマンドが利用できない場合、レジストリ253の更新ができないことになるため、付加機能で実現することになる。
付加機能で実現するとは、UICC222や、UICCに搭載するアプリケーション側に何らかの機能を設けることにより、レジストリ253の更新を実現することを意味する。換言すれば、付加機能で実現する以外のときには、例えば、ステップS53のように、第1通信方式で実現すると設定された場合には、UICC222側の現状の機能のままで、サービスの登録やレジストリ253の更新を行えることを意味する。
このように、通信方式が決定されると、決定された通信方式に基づき、ステップS2とステップS3(図16)に該当するサービスの登録とレジストリ253の更新が、後述するようにして実行される。
[通信方式の第3の決定処理について]
通信方式の第3の決定処理として、第1通信方式、第3通信方式、第2通信方式の順で通信方式の利用が可能であるか否かを判断し、利用可能であると判断されたときに、その通信方式を選択することで通信方式が決定される場合について図19のフローチャートを参照して説明する。なお、図18のフローチャートにおける処理と同様の処理を含むため、同様の処理に関する説明は適宜省略する。
ステップS101において、第1通信方式の利用が可能であるか否かが判断される。ステップS101において、第1通信方式の利用が可能であると判断された場合、ステップS102に処理が進められる。ステップS102において、APDUコマンドフォーマットの利用が可能であるか否かが判断される。ステップS102において、APDUコマンドフォーマットの利用が可能であると判断された場合、ステップS103に処理が進められる。
ステップS103において、第1通信方式で実現すると決定されて、通信方式の決定処理は終了される。すなわちこの場合、第1通信方式で通信可能であり、第1通信方式におけるAPDUコマンドフォーマットの利用が可能であるため、第1通信方式で、サービスの登録と更新が行われると設定される。
一方、ステップS102において、APDUコマンドフォーマットが利用できないと判断された場合、ステップS104に処理が進められる。ステップS104において、第3通信方式の利用が可能であるか否かが判断される。ステップS104において、第3通信方式の利用が可能であると判断された場合、ステップS105に処理が進められる。
ステップS105において、APDUコマンドフォーマットの利用が可能であるか否かが判断される。ステップS105において、APDUコマンドフォーマットの利用が可能であると判断された場合、ステップS106に処理が進められる。
この場合、第1通信方式、第3通信方式、および第3通信方式におけるAPDUコマンドフォーマットの利用が可能であると判断されたことになるので、ステップS106においては、第1通信方式と第3通信方式で、登録と更新の処理を実現すると設定される。
一方、ステップS104において、第3通信方式の利用は可能ではないと判断された場合、ステップS107に処理が進められる。ステップS107において、第2通信方式の利用が可能であるか否かが判断される。ステップS107において、第2通信方式の利用が可能であると判断された場合、ステップS108に処理が進められる。
この場合、第1通信方式と第2通信方式の利用が可能であると判断されたことになるので、ステップS108においては、第1通信方式と第2通信方式で、登録と更新の処理を実現すると設定される。
一方、ステップS105において、APDUコマンドフォーマットの利用が可能ではないと判断された場合、ステップS109に処理が進められる。ステップS109において、第2通信方式の利用が可能であるか否かが判断される。ステップS109において、第2通信方式の利用が可能であると判断された場合、ステップS110に処理が進められる。
この場合、第1通信方式、第3通信方式、および第2通信方式の利用が可能であると判断され、第1通信方式と第3通信方式は、ともにAPDUコマンドフォーマットの利用が可能ではないと判断されたことになるので、ステップS110においては、第1通信方式または第3通信方式で、登録を行い、第2通信方式で更新の処理を実現すると設定される。
一方、ステップS101において、第1通信方式の利用は可能ではないと判断された場合、ステップS112に処理が進められる。ステップS112において、第3通信方式の利用が可能であるか否かが判断される。ステップS112において、第3通信方式の利用が可能であると判断された場合、ステップS113に処理が進められる。
ステップS113において、APDUコマンドフォーマットの利用が可能であるか否かが判断される。ステップS113において、APDUコマンドフォーマットの利用が可能であると判断された場合、ステップS114に処理が進められる。
この場合、第3通信方式、および第3通信方式におけるAPDUコマンドフォーマットの利用が可能であると判断されたことになるので、ステップS114においては、第3通信方式で、登録と更新の処理を実現すると設定される。
一方、ステップS112において、第3通信方式が利用できないと判断された場合、ステップS115に処理が進められる。ステップS115において、第2通信方式の利用が可能であるか否かが判断される。ステップS115において、第2通信方式の利用が可能であると判断された場合、ステップS116に処理が進められる。
この場合、第2通信方式の利用が可能であると判断されたことになるので、ステップS116においては、第2通信方式で、登録と更新の処理を実現すると設定される。
一方、ステップS113において、APDUコマンドフォーマットの利用が可能ではないと判断された場合、ステップS117に処理が進められる。ステップS117において、第2通信方式の利用が可能であるか否かが判断される。ステップS117において、第2通信方式の利用が可能であると判断された場合、ステップS118に処理が進められる。
この場合、第3通信方式、第2通信方式の利用が可能であると判断されたことになるので、ステップS118においては、第3通信方式で、登録を行い、第2通信方式で更新の処理を実現すると設定される。
一方、ステップS115において、第2通信方式の利用は可能ではないと判断された場合、ステップS119に処理が進められる。この場合、第1通信方式、第2通信方式、および第3通信方式の全ての通信方式で通信が行えない、換言すれば、リーダライタ202がサポートしている通信方式でCLF224と通信を行うことができないと判断されたときであるので、ステップS119において、通信不可と判断される。
一方、ステップS107、ステップS109、またはステップS117において、第2通信方式の利用が可能ではないと判断された場合、ステップS111に処理が進められる。これらのステップで第2通信方式の利用が可能ではないと判断された場合は、APDUコマンドフォーマットの利用ができないと判断されたことを意味する。
このような場合、UICC222に何らかの機能を設けることにより、レジストリ253の更新を実現し設定される(UICC222の付加機能を用いた更新を行うと設定される)。
[通信方式の第4の決定処理について]
通信方式の第4の決定処理として、第2通信方式、第1通信方式、第3通信方式の順で通信方式の利用が可能であるか否かを判断し、利用可能であると判断されたときに、その通信方式を選択することで通信方式が決定される場合について図20のフローチャートを参照して説明する。
ステップS151において、第2通信方式の利用が可能であるか否かが判断される。ステップS151において、第2通信方式の利用が可能であると判断された場合、ステップS152に処理が進められる。
この場合、第2通信方式の利用が可能であると判断されたことになるので、ステップS152においては、第2通信方式で、登録と更新の処理を実現すると設定される。
一方、ステップS151において、第2通信方式の利用は可能ではないと判断された場合、ステップS153に処理が進められる。ステップS153において、第1通信方式の利用が可能であるか否かが判断される。ステップS153において、第1通信方式の利用が可能であると判断された場合、ステップS154に処理が進められる。ステップS154において、APDUコマンドフォーマットの利用が可能であるか否かが判断される。ステップS154において、APDUコマンドフォーマットの利用が可能であると判断された場合、ステップS155に処理が進められる。
この場合、第1通信方式で通信可能であり、第1通信方式におけるAPDUコマンドフォーマットの利用が可能であるため、ステップS155においては、第1通信方式で、サービスの登録と更新が行われると設定される。
一方、ステップS154において、APDUコマンドフォーマットが利用できないと判断された場合、ステップS156に処理が進められる。ステップS156において、第3通信方式の利用が可能であるか否かが判断される。ステップS156において、第3通信方式の利用が可能であると判断された場合、ステップS157に処理が進められる。ステップS157において、APDUコマンドフォーマットの利用が可能であるか否かが判断される。ステップS157において、APDUコマンドフォーマットの利用が可能であると判断された場合、ステップS158に処理が進められる。
この場合、第1通信方式、第3通信方式、および第3通信方式におけるAPDUコマンドフォーマットの利用が可能であると判断されたことになるので、ステップS158においては、第1通信方式と第3通信方式で、登録と更新の処理を実現すると設定される。この場合、第1通信方式または第3通信方式でサービスの登録が行われると設定され、第3通信方式でサービス名の登録が行われると設定される。
一方、ステップS153において、第1通信方式が利用できないと判断された場合、ステップS160に処理が進められる。ステップS160において、第3通信方式の利用が可能であるか否かが判断される。ステップS160において、第3通信方式の利用が可能であると判断された場合、ステップS161に処理が進められる。ステップS161において、APDUコマンドフォーマットの利用が可能であるか否かが判断される。ステップS161において、APDUコマンドフォーマットの利用が可能であると判断された場合、ステップS162に処理が進められる。
この場合、第3通信方式、および第3通信方式におけるAPDUコマンドフォーマットの利用が可能であると判断されたことになるので、ステップS162においては、第3通信方式で、登録と更新の処理を実現すると設定される。
一方、ステップS160において、第3通信方式が利用できないと判断された場合、ステップS164に処理が進められる。この場合、第1通信方式、第2通信方式、および第3通信方式の全ての通信方式で通信が行えない、換言すれば、リーダライタ202がサポートしている通信方式でCLF224と通信を行うことができないと判断されたときであるので、ステップS164において、通信不可と判断される。
一方、ステップS156において、第3通信方式の利用が可能ではないと判断された場合、ステップS157またはステップS161において、APDUコマンドフォーマットの利用が可能ではないと判断された場合、ステップS163に処理が進められる。このような場合は、APDUコマンドフォーマットの利用ができないと判断されたことを意味する。よって、UICC222に何らかの機能を設けることにより、レジストリ253の更新を実現すると、ステップS163において設定される(UICC222の付加機能を用いた更新を行うと設定される)。
[通信方式の第5の決定処理について]
通信方式の第5の決定処理として、第2通信方式、第3通信方式、第1通信方式の順で通信方式の利用が可能であるか否かを判断し、利用可能であると判断されたときに、その通信方式を選択することで通信方式が決定される場合について図21のフローチャートを参照して説明する。
ステップS201において、第2通信方式の利用が可能であるか否かが判断される。ステップS201において、第2通信方式の利用が可能であると判断された場合、ステップS202に処理が進められる。
この場合、第2通信方式の利用が可能であると判断されたことになるので、ステップS202においては、第2通信方式で、登録と更新の処理を実現すると設定される。
一方、ステップS201において、第2通信方式の利用は可能ではないと判断された場合、ステップS203に処理が進められる。ステップS203において、第3通信方式の利用が可能であるか否かが判断される。ステップS203において、第3通信方式の利用が可能であると判断された場合、ステップS204に処理が進められる。ステップS204において、APDUコマンドフォーマットの利用が可能であるか否かが判断される。ステップS204において、APDUコマンドフォーマットの利用が可能であると判断された場合、ステップS205に処理が進められる。
この場合、第3通信方式で通信可能であり、第3通信方式におけるAPDUコマンドフォーマットの利用が可能であるため、ステップS205においては、第3通信方式で、サービスの登録と更新が行われると設定される。
一方、ステップS204において、APDUコマンドフォーマットが利用できないと判断された場合、ステップS206に処理が進められる。ステップS206において、第1通信方式の利用が可能であるか否かが判断される。ステップS206において、第1通信方式の利用が可能であると判断された場合、ステップS207に処理が進められる。ステップS207において、APDUコマンドフォーマットの利用が可能であるか否かが判断される。ステップS207において、APDUコマンドフォーマットの利用が可能であると判断された場合、ステップS208に処理が進められる。
この場合、第3通信方式、第1通信方式、および第1通信方式におけるAPDUコマンドフォーマットの利用が可能であると判断されたことになるので、ステップS208においては、第3通信方式または第1通信方式で、サービスの登録が行われ、第1通信方式におけるAPDUコマンドで、サービス名の更新が行われると設定される。
一方、ステップS203において、第3通信方式が利用できないと判断された場合、ステップS209に処理が進められる。ステップS209において、第1通信方式の利用が可能であるか否かが判断される。ステップS209において、第1通信方式の利用が可能であると判断された場合、ステップS210に処理が進められる。ステップS210において、APDUコマンドフォーマットの利用が可能であるか否かが判断される。ステップS210において、APDUコマンドフォーマットの利用が可能であると判断された場合、ステップS211に処理が進められる。
この場合、第1通信方式、および第1通信方式におけるAPDUコマンドフォーマットの利用が可能であると判断されたことになるので、ステップS211においては、第1通信方式で、登録と更新の処理を実現すると設定される。
一方、ステップS209において、第1通信方式が利用できないと判断された場合、ステップS213に処理が進められる。この場合、第1通信方式、第2通信方式、および第3通信方式の全ての通信方式で通信が行えない、換言すれば、リーダライタ202がサポートしている通信方式でCLF224と通信を行うことができないと判断されたときであるので、ステップS213において、通信不可と判断される。
一方、ステップS206において、第1通信方式の利用が可能ではないと判断された場合、ステップS207またはステップS210において、APDUコマンドフォーマットの利用が可能ではないと判断された場合、ステップS212に処理が進められる。このような場合は、APDUコマンドフォーマットの利用ができないと判断されたことを意味する。よって、UICC222に何らかの機能を設けることにより、レジストリ253の更新を実現すると、ステップS212において設定される(UICC222の付加機能を用いた更新を行うと設定される)。
[通信方式の第6の決定処理について]
通信方式の第6の決定処理として、第3通信方式、第1通信方式、第2通信方式の順で通信方式の利用が可能であるか否かを判断し、利用可能であると判断されたときに、その通信方式を選択することで通信方式が決定される場合について図22のフローチャートを参照して説明する。
ステップS251において、第3通信方式の利用が可能であるか否かが判断される。ステップS251において、第3通信方式の利用が可能であると判断された場合、ステップS252に処理が進められる。ステップS252において、APDUコマンドフォーマットの利用が可能であるか否かが判断される。ステップS252において、APDUコマンドフォーマットの利用が可能であると判断された場合、ステップS253に処理が進められる。
この場合、第3通信方式の利用が可能であり、第3通信方式におけるAPDUコマンドフォーマットの利用が可能であるため、第3通信方式で、サービスの登録と更新が行われるとステップS253において設定される。
一方、ステップS252において、APDUコマンドフォーマットが利用できないと判断された場合、ステップS254に処理が進められる。ステップS254において、第1通信方式の利用が可能であるか否かが判断される。ステップS254において、第1通信方式の利用が可能であると判断された場合、ステップS255に処理が進められる。ステップS255において、APDUコマンドフォーマットの利用が可能であるか否かが判断される。ステップS255において、APDUコマンドフォーマットの利用が可能であると判断された場合、ステップS256に処理が進められる。
この場合、第3通信方式、第1通信方式、および第1通信方式におけるAPDUコマンドフォーマットの利用が可能であると判断されたことになるので、ステップS256においては、第3通信方式と第1通信方式で、登録と更新の処理を実現すると設定される。
一方、ステップS254において、第1通信方式の利用は可能ではないと判断された場合、ステップS257に処理が進められる。ステップS257において、第2通信方式の利用が可能であるか否かが判断される。ステップS257において、第2通信方式の利用が可能であると判断された場合、ステップS258に処理が進められる。
この場合、第3通信方式と第2通信方式の利用が可能であると判断されたことになるので、ステップS258においては、第3通信方式と第2通信方式で、登録と更新の処理を実現すると設定される。
一方、ステップS255において、APDUコマンドフォーマットの利用が可能ではないと判断された場合、ステップS259に処理が進められる。ステップS259において、第2通信方式の利用が可能であるか否かが判断される。ステップS259において、第2通信方式の利用が可能であると判断された場合、ステップS260に処理が進められる。
この場合、第3通信方式、第1通信方式、および第2通信方式の利用が可能であると判断され、第3通信方式と第1通信方式は、ともにAPDUコマンドフォーマットの利用が可能ではないと判断されたことになるので、ステップS260においては、第3通信方式または第1通信方式で、登録を行い、第2通信方式で更新の処理を実現すると設定される。
一方、ステップS251において、第3通信方式の利用は可能ではないと判断された場合、ステップS262に処理が進められる。ステップS262において、第1通信方式の利用が可能であるか否かが判断される。ステップS262において、第1通信方式の利用が可能であると判断された場合、ステップS263に処理が進められる。ステップS263において、APDUコマンドフォーマットの利用が可能であるか否かが判断される。ステップS263において、APDUコマンドフォーマットの利用が可能であると判断された場合、ステップS264に処理が進められる。
この場合、第1通信方式、および第1通信方式におけるAPDUコマンドフォーマットの利用が可能であると判断されたことになるので、ステップS264においては、第1通信方式で、登録と更新の処理を実現すると設定される。
一方、ステップS262において、第1通信方式が利用できないと判断された場合、ステップS265に処理が進められる。ステップS265において、第2通信方式の利用が可能であるか否かが判断される。ステップS265において、第2通信方式の利用が可能であると判断された場合、ステップS266に処理が進められる。
この場合、第2通信方式の利用が可能であると判断されたことになるので、ステップS266においては、第2通信方式で、登録と更新の処理を実現すると設定される。
一方、ステップS263において、APDUコマンドフォーマットの利用が可能ではないと判断された場合、ステップS267に処理が進められる。ステップS267において、第2通信方式の利用が可能であるか否かが判断される。ステップS267において、第2通信方式の利用が可能であると判断された場合、ステップS268に処理が進められる。
この場合、第1通信方式、第2通信方式の利用が可能であると判断されたことになるので、ステップS268においては、第1通信方式で、登録を行い、第2通信方式で更新の処理を実現すると設定される。
一方、ステップS265において、第2通信方式の利用は可能ではないと判断された場合、ステップS269に処理が進められる。この場合、第1通信方式、第2通信方式、および第3通信方式の全ての通信方式で通信が行えない、換言すれば、リーダライタ202がサポートしている通信方式でCLF224と通信を行うことができないと判断されたときであるので、ステップS269において、通信不可と判断される。
一方、ステップS257、ステップS259、またはステップS267において、第2通信方式の利用が可能ではないと判断された場合、ステップS261に処理が進められる。これらのステップで第2通信方式の利用が可能ではないと判断された場合は、APDUコマンドフォーマットの利用ができないと判断されたことを意味する。
このような場合、UICC222に何らかの機能を設けることにより、レジストリ253の更新を実現すると設定される(UICC222の付加機能を用いた更新を行うと設定される)。
[通信方式の第7の決定処理について]
通信方式の第7の決定処理として、第3通信方式、第2通信方式、第1通信方式の順で通信方式の利用が可能であるか否かを判断し、利用可能であると判断されたときに、その通信方式を選択することで通信方式が決定される場合について図23のフローチャートを参照して説明する。
ステップS301において、第3通信方式の利用が可能であるか否かが判断される。ステップS301において、第3通信方式の利用が可能であると判断された場合、ステップS302に処理が進められる。ステップS302において、APDUコマンドフォーマットの利用が可能であるか否かが判断される。ステップS302において、APDUコマンドフォーマットの利用が可能であると判断された場合、ステップS303に処理が進められる。
この場合、第3通信方式で通信可能であり、第3通信方式におけるAPDUコマンドフォーマットの利用が可能であるため、第3通信方式で、登録と更新が行われると、ステップS303において設定される。
一方、ステップS302において、APDUコマンドフォーマットが利用できないと判断された場合、ステップS304に処理が進められる。ステップS304において、第2通信方式の利用が可能であるか否かが判断される。ステップS304において、第2通信方式の利用が可能であると判断された場合、ステップS305に処理が進められる。
この場合、第3通信方式と第2通信方式の利用が可能であると判断されたことになるので、ステップS305においては、第3通信方式と第2通信方式で、登録と更新の処理を実現すると設定される。
一方、ステップS304において、第2通信方式が利用できないと判断された場合、ステップS306に処理が進められる。ステップS306において、第1通信方式の利用が可能であるか否かが判断される。ステップS306において、第1通信方式の利用が可能であると判断された場合、ステップS307に処理が進められる。ステップS307において、APDUコマンドフォーマットの利用が可能であるか否かが判断される。ステップS307において、APDUコマンドフォーマットの利用が可能であると判断された場合、ステップS308に処理が進められる。
この場合、第3通信方式、第1通信方式、および第1通信方式におけるAPDUコマンドフォーマットの利用が可能であると判断されたことになるので、ステップS308においては、第3通信方式または第1通信方式で、サービスの登録を行い、第1通信方式におけるAPDUコマンドフォーマットで、サービス名の登録を行うと設定される。
一方、ステップS301において、第3通信方式の利用は可能ではないと判断された場合、ステップS310に処理が進められる。ステップS310において、第2通信方式の利用が可能であるか否かが判断される。ステップS310において、第2通信方式の利用が可能であると判断された場合、ステップS311に処理が進められる。
この場合、第2通信方式の利用が可能であると判断されたことになるので、ステップS311においては、第2通信方式で、登録と更新の処理を実現すると設定される。
一方、ステップS310において、第2通信方式が利用できないと判断された場合、ステップS312に処理が進められる。ステップS312において、第1通信方式の利用が可能であるか否かが判断される。ステップS312において、第1通信方式の利用が可能であると判断された場合、ステップS313に処理が進められる。ステップS313において、APDUコマンドフォーマットの利用が可能であるか否かが判断される。ステップS313において、APDUコマンドフォーマットの利用が可能であると判断された場合、ステップS314に処理が進められる。
この場合、第1通信方式、および第1通信方式におけるAPDUコマンドフォーマットの利用が可能であると判断されたことになるので、ステップS314においては、第1通信方式で、登録と更新の処理を実現すると設定される。
一方、ステップS312において、第1通信方式の利用は可能ではないと判断された場合、ステップS315に処理が進められる。この場合、第3通信方式、第2通信方式、および第1通信方式の全ての通信方式で通信が行えない、換言すれば、リーダライタ202がサポートしている通信方式でCLF224と通信を行うことができないと判断されたときであるので、ステップS315において、通信不可と判断される。
一方、ステップS306において、第1通信方式の利用が可能ではないと判断された場合、ステップS307またはステップS313において、APDUコマンドフォーマットの利用が可能ではないと判断された場合、ステップS309に処理が進められる。このような場合は、APDUコマンドフォーマットの利用ができないと判断されたことを意味する。よって、UICC222に何らかの機能を設けることにより、レジストリ253の更新を実現すると、ステップS309において設定される(UICC222の付加機能を用いた更新を行うと設定される)。
[通信方式の第8の決定処理について]
通信方式の第8の決定処理として、携帯電話機201と通信を行い、携帯電話機201がサポートしている通信方式に関する情報を取得することで、通信方式が決定される場合について図24のフローチャートを参照して説明する。
ステップS351において、第3通信方式の利用が可能であるか否かが判断される。ステップS351において、第3通信方式の利用が可能であると判断された場合、ステップS352に処理が進められる。ステップS352において、通信方式の情報交換が行われる。
この場合、ステップS351において、第3通信方式の利用が可能であると判断されているため、第3通信方式で、携帯電話機201と通信が行われ、携帯電話機201とリーダライタ202が互いにサポートしている通信方式の情報の交換が行われる。
例えば、リーダライタ202が、携帯電話機201に対して、携帯電話機201がサポートしている通信方式を通知するように指示するコマンドを、第3通信方式で携帯電話機201に出し、携帯電話機201が、その受信されたコマンドに対応して、自己がサポートしている通信方式を通知することで、通信方式の情報の交換が行われる。
または、第3通信方式で、リーダライタ202が、リーダライタ202自身がサポートしている通信方式を携帯電話機201に通知し、その通知を受けた携帯電話機201が、通知されてきた通信方式の中で自己がサポートしている通信方式を選択し、その選択した情報をリーダライタ202に返すことで、互いにサポートしている通信方式の情報交換が行われる。
ステップS352において、通信方式の情報交換が行われると、ステップS353に処理が進められる。ステップS353において、情報交換の結果、取得された通信方式の中から、処理内容が決定される。この処理内容とは、例えば、第3通信方式で、登録と更新の処理を実行するといった内容である。
一方、ステップS351において、第3通信方式の通信が可能ではないと判断された場合、ステップS354に処理が進められる。ステップS354において、第2通信方式の利用が可能であるか否かが判断される。ステップS354において、第2通信方式の利用が可能であると判断された場合、ステップS352に処理が進められる。
ステップS352における処理については上述したが、この場合、第2通信方式が用いられて、通信方式の情報交換が行われる点が、上述した場合と異なる。そして、ステップS353において、情報交換の結果得られた通信方式に関する情報から、処理内容が決定される。
一方、ステップS354において、第2通信方式の通信が可能ではないと判断された場合、ステップS355に処理が進められる。ステップS355において、第1通信方式の利用が可能であるか否かが判断される。ステップS355において、第1通信方式の利用が可能であると判断された場合、ステップS352に処理が進められる。
ステップS352における処理については上述したが、この場合、第1通信方式が用いられて、通信方式の情報交換が行われる点が、上述した場合と異なる。そして、ステップS353において、情報交換の結果得られた通信方式に関する情報から、処理内容が決定される。
一方、ステップS355において、第1通信方式の通信が可能ではないと判断された場合、ステップS356に処理が進められる。この場合、第1通信方式、第2通信方式、および第3通信方式の利用が可能ではないと判断されたことになるので、ステップS356において、携帯電話機201とは通信が不可能であると判断され、処理が終了される。
このように、リーダライタ202が複数の通信方式で通信が行えるように構成されている場合、まず複数の通信方式のうちの1つの通信方式が選択され、その通信方式でUICC222と通信が可能であるか否かが判断される。そして、通信が可能と判断されたときに、その通信方式で、UICC222と通信方式に関する情報交換が行われ、その情報交換の結果が用いられて通信方式が選択される。
なおここでは、第3通信方式、第2通信方式、第1通信方式の順で、利用が可能であるか否かが判断されるとして説明したが、この順番に限定されることを意味するものではない。
ここでは、通信方式の決定処理として、第1の決定処理乃至第8の決定処理を例にあげて説明したが、これらの決定処理のうち、どの決定処理が用いられて処理が行われるかは、リーダライタ202の設計段階や、設置される場所などにより決定されればよい。
また、例えば、ユーザが通信方式を設定することができる場合、そのユーザが設定した通信方式により、第1の決定処理乃至第8の決定処理から決定処理が選択されるようにしても良い。例えば、第2の決定処理乃至第8の決定処理は、始めに、第1通信方式、第2通信方式、または第3通信方式のうちのいずれかの通信方式の利用が可能であるか否かを判断している。よって、ユーザにより選択された通信方式が、一番始めに利用可能であるか否かを判断する決定処理が選択されるようにしても良い。
例えばユーザが第1通信方式を選択した場合、図18のフローチャートに示した第2の決定処理が開始されるようにしても良いし、図19のフローチャートに示した第3の決定処理が開始されるようにしても良い。また、この場合、図24のフローチャートに示した第8の決定処理において、第1通信方式が一番始めに利用可能であるか否かが判断される決定処理が実行されるようにしても良い。
[登録、更新に係わる処理について]
上記した処理が実行されることにより、サービスの登録を行う通信方式とレジストリ253の更新(サービス名の登録処理)を行う通信方式とが決定される。ここで、上記した処理の結果、設定される可能性のある通信方式の組み合わせを列挙する。
第1の組み合わせ(例えば、図23のステップS314で設定)
登録、更新、ともに第1通信方式で行う(第1通信方式でAPDUコマンドフォーマットが利用できる)
第2の組み合わせ(例えば、図23のステップS311で設定)
登録、更新、ともに第2通信方式で行う
第3の組み合わせ(例えば、図23のステップS303で設定)
登録、更新、ともに第3通信方式で行う(第3通信方式でAPDUコマンドフォーマットが利用できる)
第4の組み合わせ(例えば、図18のステップS55で設定)
登録は、第1通信方式で行い、更新は、第2通信方式で行う(第1通信方式はAPDUコマンドフォーマットを利用できない)
第5の組み合わせ(例えば、図22のステップS260で設定)
登録は、第1通信方式または第3通信方式で行い、更新は、第2通信方式で行う(第1通信方式と第3通信方式はAPDUコマンドフォーマットを利用できない)
第6の組み合わせ(例えば、図23のステップS305で設定)
登録は、第3通信方式で行い、更新は、第2通信方式で行う(第3通信方式はAPDUコマンドフォーマットを利用できない)
第7の組み合わせ(例えば、図18のステップS58で設定)
登録は、第1通信方式で行い、更新は、第3通信方式で行う(第1通信方式はAPDUコマンドフォーマットを利用できない)
第8の組み合わせ(例えば、図23のステップS308で設定)
登録は、第3通信方式で行い、更新は、第1通信方式で行う(第3通信方式はAPDUコマンドフォーマットを利用できない)
第9の組み合わせ(例えば、図23のステップS309で設定)
付加機能で実現する(UICC222側に機能を付加して登録、更新を行う)
このように、9通りの組み合わせが設定される可能性がある。また、上記した通信方式の決定処理では、有線に関しては説明していないが、有線、例えば、図9に示した通信路353であり、ホスト221から有線のUART223経由での通信もある。
ここで、上記したように、第3アプリケーション256が第3−1サービス257、第3−2サービス258、および第3−3サービス259を提供するアプリケーションである場合を例にあげて説明する。またここでは、第3アプリケーション256に、第3−1サービス257を追加登録するような場合(図14を参照して説明したような場合)を例にあげて説明する。
図25に示したようなコマンドの組み合わせで第3−1サービス257の登録と更新を行うことが考えられる。図25を参照するに、番号1の組み合わせで利用される通信方式は、第1通信方式または第2通信方式である場合である。番号1の組み合わせは、上記した第1の組み合わせまたは第2の組み合わせに該当する。
番号1の組み合わせにおいては、APDUコマンドフォーマットが送受信可能であるため、サービスの登録やサービス名の登録は、APDUコマンドフォーマットが用いられる。この際、サービスの登録には、設定された通信方式(この場合、第1通信方式または第2通信方式)で用いられるAPDUコマンドフォーマットにおけるパケットと、第3アプリケーション256の独自のコマンドである第3コマンドを関連付けたデータが生成され、送受信される。具体的には、この際、サービスの登録には、第3コマンドをAPDUコマンドフォーマットでラッピングしたものが用いられる。また、サービス名の登録(レジストリ253の更新)には、APDUコマンドが用いられる。
番号2の組み合わせで利用される通信方式は、第3通信方式である場合である。番号2の組み合わせは、上記した第3の組み合わせに該当する。番号2の組み合わせにおいては、APDUコマンドフォーマットと第3パケットの送受信が可能であるため、サービスの登録やサービス名の登録は、APDUコマンドフォーマットと第3パケットが用いられる。この際、サービスの登録は、第3コマンドが用いられる。また、サービス名の登録には、APDUコマンドが用いられ、そのパケットは、第3通信方式におけるAPDUコマンドフォーマットが用いられる。
また、番号2の組み合わせの場合、番号1の組み合わせの場合と同じく、サービスの登録は、第3コマンドをAPDUコマンドフォーマットでラッピングしたものが用いられるようにし、サービス名の登録(レジストリ253の更新)には、第3通信方式におけるAPDUコマンドが用いられるようにすることも可能である。
番号3の組み合わせで利用される通信方式は、第1通信方式と第3通信方式の組み合わせか、第2通信方式と第3通信方式との組み合わせである。番号3の組み合わせは、上記した第5乃至第8の組み合わせに該当する。番号3の組み合わせにおいては、APDUコマンドフォーマットと第3パケットの送受信が可能であるため、サービスの登録やサービス名の登録は、APDUコマンドフォーマットと第3パケットが用いられる。
この際、第3通信方式がAPDUコマンドフォーマットに対応していれば、番号2の組み合わせと同じく、サービスの登録は、第3コマンドが用いられ、サービス名の登録には、APDUコマンドが用いられる。また、第3通信方式がAPDUコマンドフォーマットに対応していていなければ、サービスの登録は、第3コマンドをAPDUコマンドフォーマットでラッピングしたものが用いられ、サービス名の登録には、APDUコマンドが用いられる。この際、第3コマンドをラッピングするAPDUコマンドフォーマットの送受信は、APDUコマンドフォーマットに対応している第1通信方式または第2通信方式に基づいて行われる。
番号4乃至6の組み合わせで利用される通信方式は、有線である。番号4の組み合わせは、APDUコマンドフォーマットが送受信可能なときであり、番号1の組み合わせと同じく、サービスの登録は、第3コマンドをAPDUコマンドフォーマットでラッピングしたものが用いられ、サービス名の登録には、APDUコマンドが用いられる。
番号5の組み合わせは、APDUコマンドフォーマットと有線プロトコルにおけるパケットが送受信可能なときであり、サービスの登録は、第3コマンドが用いられ、サービス名の登録には、APDUコマンドが用いられる。または、番号4の組み合わせと同じく、サービスの登録は、第3コマンドをAPDUコマンドフォーマットでラッピングしたものが用いられ、サービス名の登録には、APDUコマンドが用いられるようにすることも可能である。
番号6の組み合わせで利用される通信方式は、有線であり、有線プロトコルにおけるパケットが送受信可能なときである。番号7の組み合わせで利用される通信方式は、第3通信方式であり、第3パケットが送受信可能なときである。この番号6と番号7の組み合わせは、上記した第9の組み合わせに該当する。これは、独自のパケットでしか通信方式としてサポートしていないときである。
独自のパケットでの通信方式しか用いることができない場合、リーダライタ202側で、パケットなどを加工するだけでは、サービスの登録やサービス名の登録ができないため、UICC222側に機能を付加して登録、更新が行われる。例えば、新たなサービス登録データ、新たなコマンド(またはブロック)が、アプリケーション経由(この場合、第3アプリケーション256経由)で、サービスの登録と更新が行われる。
次に、ステップS2(図16)で実行されるサービスの登録と、ステップS3で実行されるサービス名の登録に、それぞれ係わる処理について、携帯電話機201側で実行される処理と合わせて、フローチャートを参照して説明する。
[第3通信方式と第2通信方式を用いたサービスとサービス名の登録について]
まず、図26と図27のフローチャートを参照して、第3通信方式の利用が可能であると判断されたが、第3通信方式におけるAPDUコマンドフォーマットは利用不可であると判断され、かつ、第2通信方式の利用が可能であると判断された場合について説明する。
このように設定されるのは、例えば、図23に示したフローチャートの処理が実行された結果、ステップS305において、第3通信方式/第2通信方式で実現すると設定されたときであり、上記した第5の組み合わせや第6の組み合わせに該当する。また、図25においては、番号3の組み合わせに該当する。
図26のフローチャートは、サービスの登録を行うときの処理である。まず。ステップS601において、携帯電話機201は、カードを起動する。カードとは、UICC222のことである。なお、カードの起動は、ステップS1(図16)において、通信方式の決定の処理が、リーダライタ202側で行われたとき、リーダライタ202と携帯電話機201(CLF224)は通信を行っているので、その時点で、携帯電話機201側ではカードが起動されている。
ステップS551において、リーダライタ202は、第3通信方式での応答を、携帯電話機201(CLF224)に対して要求する。そのような要求をステップS602において受信した携帯電話機201(CLF224)は、ステップS603において、レスポンスを返す。この場合、第3通信方式で通信を行うことを了承することを示す応答である。そのようなレスポンスを携帯電話機201(CLF224)から、ステップS552において受信したリーダライタ202は、ステップS553において、データの読み出しの要求を携帯電話機201(CLF224)に対して行う。
携帯電話機201(CLF224)は、リーダライタ202からのデータの読み出しの要求を、ステップS604において受信すると、その要求を、第3アプリケーション256に転送する。この場合、第3通信方式で通信が行われているので、リーダライタ202からの第3パケットは、CLF224(図9)を介して、第3アプリケーション256に供給される。すなわちこの場合、図9を参照して説明した通信路351で、リーダライタ202からのパケットが、第3アプリケーション256に供給される。
ステップS631において、そのような通信路351(図9)で、リーダライタ202からのデータの読み出し要求を受信すると、ステップS632において、その読み出し要求で要求されているデータを読み出し、携帯電話機201(CLF224)に供給する。CLF224は、ステップS606において、第3アプリケーション256から供給されたデータを、リーダライタ202からの要求に対応するレスポンスとして送信する。
ステップS554において、携帯電話機201(CLF224)からのデータをレスポンスとして取得したリーダライタ202は、ステップS555において、読み出したデータに含まれるカードの状態を確認し、登録すべきサービスを確認する。例えば、第3−1サービス257(図14)が登録されていない場合、第3−1サービス257のデータを準備する。データが準備されると、ステップS556において、サービスの登録が実行される。
この場合、第3通信方式で、第3パケットが用いられてサービスの登録が行われるため、サービス登録のためのデータを、第3パケットにパケット化し、第3通信方式で、携帯電話機201(CLF224)に送信する処理が、ステップS556において実行される。この処理は、例えば、図14を参照して説明したサービス登録データ431を送信する処理に該当する。リーダライタ202からサービス登録のためのデータを、ステップS607において受信した携帯電話機201(CLF224)は、受信されたデータを、第3アプリケーション256に供給する。
第3アプリケーション256は、供給されたデータを、ステップS633における処理で取得すると、ステップS634において、サービスの登録の処理を実行する。ステップS634において、第3アプリケーション256が、サービスの登録を実行し、その結果、成功した場合、または失敗した場合、その登録処理の結果が、ステップS635において出される。
その結果を、ステップS608における処理で受信した携帯電話機201(CLF224)は、ステップS609において、第3アプリケーション256における登録処理の結果を、レスポンスとしてリーダライタ202に送信する。ステップS557において、携帯電話機201(CLF224)からのレスポンスが、リーダライタ202に受信される。
リーダライタ202は、レスポンスが、携帯電話機201側でサービスの登録が成功したことを示しているときには、引き続き、サービス名の登録(図27を参照して後述)の処理を開始し、失敗したことを示しているときには、再度、例えば、ステップS556の処理を実行することでサービスの登録の処理を実行する。また、携帯電話機201(CLF224)からのレスポンスが、失敗したことを示しているような場合、その時点で設定されている通信方式とは異なる通信方式で、サービスの登録の処理が実行されるようにしても良い。ここでは、サービスの登録の処理は成功したとして説明を続ける。
サービスの登録の処理が成功したと判断されると、サービス名の登録のための処理が開始される。このサービス名の登録のための処理について、図27のフローチャートを参照して説明する。この場合、上記したサービスの登録の処理は、第3通信方式で行われ、サービス名の登録の処理は、第2通信方式で行われるため、通信方式の切り替えを行う必要がある。そこで、リーダライタ202は、ステップS571において、携帯電話機201(CLF224)に対して、第2通信方式での応答を要求する。
そのような要求を、ステップS661において受信した携帯電話機201(CLF224)は、ステップS662において、レスポンスを返す。この場合、第2通信方式で通信を行うことを了承することを示す応答である。そのようなレスポンスを携帯電話機201(CLF224)から、ステップS572において受信したリーダライタ202は、ステップS573において、第2通信方式を選択するように、携帯電話機201に対して要求を出す。
そのような要求を、ステップS663において受信した携帯電話機201(CLF224)は、第2通信方式での通信を行う状態に切り替え、その後、第2通信方式を選択したことを示すレスポンス(応答)を、リーダライタ202に対して行う。そのレスポンスを、ステップS574において受信したリーダライタ202は、受信したレスポンスを確認することで、携帯電話機201側で第2通信方式が選択されたことを認識する。
このようにして、リーダライタ202と携帯電話機201(CLF224)が、第2通信方式で通信できる状態になると、ステップS575において、リーダライタ202は、サービス名の登録のための処理を実行する。例えばこの場合、第3−1サービス257を登録したので、この第3−1サービス257のサービス名を、携帯電話機201のレジストリ253に登録するためのパケットが生成される。また、この生成されるパケットは、第2通信方式に対応したパケット、すなわちこの場合、APDUコマンドフォーマットに準拠したデータをパケットに含んでいる。
ステップS575において、リーダライタ202によりサービス名の登録の処理が実行されることにより、リーダライタ202から携帯電話機201に対して送信されたデータは、ステップS665において、携帯電話機201により受信される。受信されたデータは、アプリケーションマネージャ252に供給される。
APDUコマンドフォーマットであるので、CLF224により受信されたAPDUコマンドフォーマットは、UICCハードウェア251を介して、アプリケーションマネージャ252に供給される。APDUコマンドフォーマットは、アプリケーションマネージャ252で処理することが可能なパケットである。アプリケーションマネージャ252は、ステップS691において、APDUコマンドフォーマットでの、サービス名の登録に係わるデータを受信すると、ステップS692において、サービス名の登録の処理を実行する。
アプリケーションマネージャ252は、受信されたAPDUコマンドに従い、レジストリ253に、新たに登録されたサービスの名称や、種別などの情報を書き込む。これらの名称や種別などの情報は、リーダライタ202から供給されるAPDUコマンドに含まれている。
ステップS692において、サービス名などの登録が終了すると、アプリケーションマネージャ252は、その処理結果を、ステップS693の処理としてCLF224に出力する。CLF224は、ステップS666において、アプリケーションマネージャ252からの処理結果を受信すると、レスポンスとして、リーダライタ202に送信する。このレスポンスには、サービス名の登録の処理が成功したか否かを示す情報が含まれている。
そのような結果を、ステップS576において受信したリーダライタ202は、レスポンスが成功したことを示しているときには、サービス名の登録の完了を認識し、処理を終了する。一方、受信されたレスポンスが、失敗したことを示しているときには、再度、例えば、ステップS575の処理が実行されることでサービス名の登録の処理が再度実行される。
このようにして、第3アプリケーション256で提供される第3−1サービス257を登録する際、その登録自体は、第3アプリケーション256で扱える第3通信方式(第3パケットおよび第3コマンド)が用いられて行われる。その一方で、第3−1サービス257に関する情報、例えば第3−1サービス257の名称や提供されるサービスの種別などの情報は、アプリケーションマネージャ252が扱える第2通信方式(APDUコマンド)が用いられて行われる。
このように、サービスの登録が行われ、サービス名の登録が行われることで、アプリケーションマネージャ252が、レジストリ253で、登録されたサービスに関連する情報を管理することができるようになる。レジストリ253で、登録されているサービスの情報が管理されることで、ビューワ241が、それらの情報を閲覧することが可能となる。ビューワ241が閲覧できるようになることで、その情報が、ユーザに提供することが可能となる。
そのため、第3アプリケーション256が総合サービスを提供するためのアプリケーションであり、第3−1サービス257、第3−2サービス258、および第3−3サービス259の3つのサービスを提供するような場合、これら3つのサービスがあることを、ユーザに提示することが可能となる。その提示の仕方については後述するとし、先に、通信方法の組み合わせとして、他の組み合わせが設定された場合のサービスとサービス名の登録について説明する。
[第2通信方式を用いたサービスとサービス名の登録について]
次に、図28と図29のフローチャートを参照して、第2通信方式のみが利用可能であると判断された場合(第2通信方式で、サービスとサービス名の登録を行うと設定された場合)について説明する。
このように設定されるのは、例えば、図23に示したフローチャートの処理が実行された結果、ステップS311において、第2通信方式で実現すると設定されたときである。図28のフローチャートは、サービスの登録を行うときの処理である。まずステップS801において、携帯電話機201は、カード(UICC222)を起動する。
ステップS701において、リーダライタ202は、携帯電話機201(CLF224)に対して、第2通信方式での応答を要求する。そのような要求を、ステップS802において受信した携帯電話機201(CLF224)は、ステップS803において、レスポンスを返す。この場合、第2通信方式で通信を行うことを了承することを示す応答である。そのようなレスポンスを携帯電話機201(CLF224)から、ステップS702において受信したリーダライタ202は、ステップS703において、第2通信方式を選択するように、携帯電話機201(CLF224)に対して要求を出す。
そのような要求を、ステップS804において受信した携帯電話機201(CLF224)は、第2通信方式での通信を行う状態にし、その後、第2通信方式を選択したことを示すレスポンス(応答)を、ステップS805において、リーダライタ202に対して行う。そのレスポンスを、ステップS704において受信したリーダライタ202は、受信したレスポンスを確認することで、携帯電話機201側で第2通信方式が選択されたことを認識する。
このようにして、リーダライタ202と携帯電話機201(CLF224)が、第2通信方式で通信できる状態になると、ステップS705において、リーダライタ202は、データの読み出しの要求を携帯電話機201(CLF224)に対して行う。
携帯電話機201(CLF224)は、リーダライタ202からのデータの読み出しの要求を、ステップS806において受信すると、その要求を、第3アプリケーション256に転送する。この場合、第2通信方式で通信が行われているので、リーダライタ202からはAPDUコマンドフォーマットでラッピングされた第3コマンドが、CLF224(図9)を介して、UICCハードウェア251に供給され、さらにUICCハードウェア251から、アプリケーションマネージャ252に供給される。アプリケーションマネージャ252は、供給されたAPDUコマンドフォーマットを処理することで、第3コマンドを取り出し、第3アプリケーション256に供給する。
このパケットの流れは、図9を参照して説明した通信路352である。第3アプリケーション256は、通信路352を介してリーダライタ202からのデータの読み出し要求(第3コマンド)を受信すると、ステップS832において、その第3コマンドで要求されているデータを読み出し、携帯電話機201(CLF224)に供給する。CLF224は、ステップS807において、第3アプリケーション256から供給されたデータを受信すると、そのデータを、ステップS808で、リーダライタ202からの要求に対応するレスポンスとして送信する。
ステップS706において、携帯電話機201からのデータをレスポンスとして取得したリーダライタ202は、ステップS707において、登録されているサービスのデータを読み出す。例えば、サービス一覧情報として、第3−1サービス257(図14)が登録されていない場合、第3−1サービス257を登録すべきことが判明する。データを読み出し、カードの状態を確認され、登録すべきサービスが無い事を確認すると、と、ステップS708において、サービスの登録が実行される。
この場合、第2通信方式で、APDUコマンドフォーマットが用いられてサービスの登録が行われるため、サービス登録のためのデータを、APDUコマンドフォーマットにパケット化し、第2通信方式で、携帯電話機201に送信するための処理が、ステップS708において実行される。リーダライタ202からサービス登録のためのデータを、ステップS809において受信した携帯電話機201(アプリケーションマネージャ252)は、受信されたデータを、第3アプリケーション256に供給する。
第3アプリケーション256は、供給されたデータを、ステップS833における処理で取得すると、ステップS834において、サービスの登録の処理を実行する。ステップS834において、第3アプリケーション256が、サービスの登録を実行し、その結果、成功した場合、または失敗した場合、その登録処理の結果が、ステップS835において、アプリケーションマネージャ252に対して出される。
その結果を、ステップS810における処理で受信したアプリケーションマネージャ252は、ステップS811において、第3アプリケーション256における登録処理の結果を、レスポンスとしてリーダライタ202に送信する。ステップS709において、携帯電話機201からのレスポンスが、リーダライタ202に受信される。
リーダライタ202は、受信されたレスポンスが、携帯電話機201側でサービスの登録が成功したことを示しているときには、引き続き、サービス名の登録(図29を参照して後述)の処理を開始し、失敗したことを示しているときには、再度、例えば、ステップS708の処理を実行することでサービスの登録の処理を実行する。ここでは、サービスの登録の処理は成功したとして説明を続ける。
このようにして、第3アプリケーション256が提供する第3−1サービス257を登録するとき、設定された通信方式で用いられるパケット(APDUコマンドフォーマット)と、第3アプリケーション256独自のコマンドが関連付けられたデータが生成され、そのデータが授受されることで、登録処理が実行される。換言すれば、第3アプリケーション256が提供する第3−1サービス257を登録するとき、第3アプリケーション256で扱われる第3コマンドを、APDUコマンドフォーマットでラッピングして、登録処理が実行される。
このような処理が実行されることによりサービスが登録された後、引き続き行われる登録されたサービスに関する情報、例えば、サービス名やサービス種別に関する情報が登録される際の処理について図29のフローチャートを参照して説明する。
この場合、サービスが登録されるときに、既に第2通信方式で通信が行われているため、リーダライタ202と携帯電話機201が、第2通信方式で通信できる状態になっている。そのため、第2通信方式で通信を開始するための処理は、省略され、ステップS751において、リーダライタ202は、サービス名の登録のための処理を実行する。
例えばこの場合、第3−1サービス257を登録したので、この第3−1サービス257のサービス名を、UICC内のアプリケーションマネージャ252のレジストリ253に登録するためのパケットが生成される。また、この生成されるパケットは、第2通信方式に対応したパケット、すなわちこの場合、APDUコマンドを含んでいるパケットになる。
ステップS751において、リーダライタ202によりサービス名の登録の処理が実行されることにより、リーダライタ202から携帯電話機201に対して送信されたデータは、ステップS851において、携帯電話機201(CLF224)により受信される。受信されたデータは、アプリケーションマネージャ252に供給される。
APDUコマンドフォーマットであるので、CLF224により受信されたAPDUコマンドは、UICCハードウェア251を介して、アプリケーションマネージャ252に供給される。アプリケーションマネージャ252は、ステップS881において、APDUコマンドでの、サービス名の登録に係わるデータを受信すると、ステップS882において、サービス名の登録の処理を実行する。
アプリケーションマネージャ252は、受信されたAPDUコマンドに従い、レジストリ253に、新たに登録されたサービスの名称や、種別などの情報を書き込む。これらの名称や種別などの情報も、リーダライタ202から供給されるAPDUコマンドに含まれている。
ステップS882において、サービス名などの登録が終了すると、アプリケーションマネージャ252は、その処理結果を、ステップS883の処理としてCLF224に出力する。CLF224は、ステップS852において、アプリケーションマネージャ252からの処理結果を受信すると、ステップS853において、レスポンスとして、リーダライタ202に送信する。このレスポンスには、サービス名の登録の処理が成功したか否かを示す情報が含まれる。
そのような結果を、ステップS752において受信したリーダライタ202は、レスポンスが成功したことを示しているときには、サービス名の登録の完了を認識し、処理を終了する。一方、受信されたレスポンスが、失敗したことを示しているときには、再度、例えば、ステップS751の処理が実行されることでサービス名の登録の処理が再度実行される。
このようにして、第3アプリケーション256で提供される第3−1サービス257を登録する際、第3アプリケーション256で扱える第3コマンドが、アプリケーションマネージャ252が扱うことができるAPDUコマンドフォーマットでラッピングされたものが用いられて行われる。
また、第3−1サービス257に関する情報、例えば第3−1サービス257の名称や提供されるサービスの種別などの情報は、アプリケーションマネージャ252が扱えるAPDUコマンドが用いられて行われる。
このように、サービスの登録が行われ、サービス名の登録が行われることで、アプリケーションマネージャ252が、レジストリ253で、登録されたサービスに関連する情報を管理することができるようになる。レジストリ253で、登録されているサービスの情報が管理されることで、その情報をビューワ241で閲覧することが可能となる。ビューワ241が閲覧できるようになることで、その情報を、ユーザに提供することが可能となる。
[アプリケーションマネージャによる処理について]
UICC222の中には、アプリケーションマネージャと称されるアプリケーションを備えるものがある。図30に示したUICC222は、アプリケーションマネージャ601を備える。このアプリケーションマネージャ601は、所定のICカード上のICチップ、この場合、UICC222に格納されているアプリケーションであり、UICC222内の中のリソース管理や、外部装置からのアプリケーションのダウンロード等の制御を行う。
UICC222がアプリケーションマネージャ601を備える場合、各無線対応のアプリケーション、例えば、第1アプリケーション254、第2アプリケーション255、または第3アプリケーション256は、インストール時に、アプリケーションマネージャ601経由で搭載される。各無線対応のアプリケーションは、動作時には、アプリケーションの実行環境(Runtime Environment)から動作権限を譲渡される(選択される)必要がある。また、各アプリケーションの実行時には、直接アプリケーションマネージャ601からの影響はないように構成されている。
図30に示すように、例えば、第2アプリケーション255や第3アプリケーション256がインストールされるときには、アプリケーションマネージャ601を介して、APDUコマンドが用いられてインストールされる。インストール後、アプリケーションマネージャ601により、第3アプリケーション256が選択された場合、第3アプリケーション256が動作中になり、アプリケーションマネージャ601を介さないで動作することになる。この場合、直接的に第3アプリケーション256に第3パケットが供給される。
このようなアプリケーションマネージャ601を備えるUICC222である場合、図28のフローチャートを参照して説明した、第2通信方式で、第3−1サービス257を登録する際の処理は、図31に示したフローチャートに基づく処理となる。
リーダライタ202側で実行されるステップS1001乃至S1009の処理は、図28のステップS701乃至S709と同様の処理である。すなわち、リーダライタ202側の処理は、UICC222がアプリケーションマネージャ601を備えているか否かに係わらず、同様の処理でサービスの登録を行うことができる。このことは、UICC222がアプリケーションマネージャ601を備えているか否かに係わらず、同一のインフラを利用して、サービスの登録を行えることを意味する。
携帯電話機201側で実行されるステップS1111乃至S1115の処理は、図28のステップS801乃至S805と同様の処理である。すなわち、第2通信方式で通信を行うための設定が、リーダライタ202側と、携帯電話機201側で行われる処理に関しては、UICC222がアプリケーションマネージャ601を備えているか否かに係わらず同様に行われる。
その処理の結果、第2通信方式で通信が行える状態にされると、ステップS1005において、リーダライタ202は、携帯電話機201(CLF224)に対して、データの読み出しの要求を出す。携帯電話機201(CLF224)は、リーダライタ202からのデータの読み出しの要求を、ステップS1116において受信すると、その要求を、アプリケーションマネージャ601に転送する。
アプリケーションマネージャ601は、ステップS1152において、要求されたデータをCLF224に出力する。CLF224は、そのデータを、ステップS1117で受信すると、ステップS1118において、リーダライタ202からの要求に対応するレスポンスとして送信する。ステップS1006において、携帯電話機201(CLF224)からのデータをレスポンスとして取得したリーダライタ202は、ステップS1007において、登録するサービスのデータを読み出す。
この場合、第2通信方式で、APDUコマンドが用いられてサービスの登録が行われるため、サービス登録のためのデータを、APDUコマンドフォーマットにパケット化し、第2通信方式で、携帯電話機201に送信する処理が、ステップS1008において実行される。リーダライタ202からサービス登録のためのデータを、ステップS1119において受信した携帯電話機201(CLF224)は、受信されたデータを、アプリケーションマネージャ601に供給する。
アプリケーションマネージャ601は、ステップS1153において、供給されたデータを、さらに第3アプリケーション256に転送する。第3アプリケーション256は、供給されたデータを、ステップS1181における処理で取得すると、ステップS1182において、サービスの登録の処理を実行する。ステップS1182において、第3アプリケーション256が、サービスの登録を実行し、その結果、成功した場合、または失敗した場合、その登録処理の結果が、ステップS1183において、アプリケーションマネージャ601に渡される。
アプリケーションマネージャ601は、ステップS1154において、第3アプリケーション256からの結果を受取、ステップS1155において、CLF224に対して登録処理の結果が渡される。その結果を、ステップS1120における処理で受信したCLF224は、ステップS1121において、第3アプリケーション256における登録処理の結果を、レスポンスとしてリーダライタ202に送信する。ステップS1009において、携帯電話機201からのレスポンスが、リーダライタ202に受信されることで、サービスの登録処理が終了される。
このようにして、アプリケーションマネージャ601を備えるUICC222に対しても、リーダライタ202は、アプリケーションマネージャ601を備えていないUICC222に対して行う処理と同様の処理を実行することで、サービスの登録を行うことができる。
このようにしてサービスの登録が行われると、引き続き、サービス名の登録の処理が実行されるが、その処理は、図29に示したフローチャートにおける処理と同様に行われるため、ここではその説明を省略する。すなわち、アプリケーションマネージャ601を備えるUICC222に対して、サービス名を登録する際の処理は、アプリケーションマネージャ601を備えていないUICC222に対してサービス名を登録する際の処理と同様に行われる。
さらに換言すれば、サービス名の登録は、アプリケーションマネージャ252の処理により行われるため、アプリケーションマネージャ601における処理はなく、そのために、携帯電話機201側の処理としては、アプリケーションマネージャ601がない場合と同様の処理でサービス名の登録が行われる。
[付加機能を用いたサービスとサービス名の登録について]
次に、図32のフローチャートを参照し、付加機能を用いたサービスとサービス名の登録について説明する。ここでは、第3通信方式の利用が可能であると判断されたが、第3通信方式でのAPDUコマンドフォーマットは利用できないと判断された場合であり、第3アプリケーション256で提供される第3−1サービス257が登録される場合を例にあげて説明する。
第3通信方式の利用が可能であると判断されたが、第3通信方式でのAPDUコマンドフォーマットは利用できないと判断された場合とは、第3アプリケーション256独自のパケットの送受信を行うと判断したときである。このような判断がなされるのは、例えば、図20に示したフローチャートの処理が実行された結果、ステップS163において、付加機能で実現すると設定されたときである。
図32に示したフローチャートにおける処理のうち、リーダライタ202側で実行されるステップS1301乃至S1307の処理は、図26に示したフローチャートのステップS551乃至S557と同様に行われる。よってここでは、その詳細な説明は省略する。また、図32に示したフローチャートにおける処理のうち、携帯電話機201側で実行されるステップS1401乃至S1409の処理は、図26に示したフローチャートのステップS601乃至S609と同様に行われため、ここでは、その説明は省略する。
また、図32に示したフローチャートにおける処理のうち、第3アプリケーション256側で実行されるステップS1451,S1452の処理は、図26に示したフローチャートのステップS631,S632と同様に行われため、ここでは、その説明は省略する。
ステップS1453において、第3アプリケーション256は、リーダライタ202から、第3パケットで送信されてきたサービスの登録に関する第3コマンドを受信すると、ステップS1454において、その第3コマンドに基づき、サービスの登録を実行する。第3アプリケーション256は、サービスの登録を終了すると、ステップS1455において、サービス名を生成し、アプリケーションマネージャ252に対して出力する。
すなわちこの場合、第3アプリケーション256が、リーダライタ202からのコマンドを処理することで、サービス名(サービスに関する情報)を生成し、アプリケーションマネージャ252に供給する。
図9を再度参照する。第3アプリケーション256の通信プロトコルのパケットしか送受信できない場合、通信路351により、独自のパケットの送受信がされることになる。すなわち、リーダライタ202からの第3パケットは、CLF224により受信され、CLF224からUICCハードウェア251を経由して第3アプリケーション256へと供給される。よって、第3アプリケーション256にはアクセスできるため、第3アプリケーション256で提供される第3−1サービス257を登録することはできる。
しかしながら、アプリケーションマネージャ252にアクセスするための通信プロトコルがないので、アプリケーションマネージャ252で管理されているレジストリ253に、リーダライタ202から直接的にアクセスすることができない。一方で、第3アプリケーション256は、レジストリ253にアクセスする通信路354を有する。
そこで、第3アプリケーション256が、アプリケーションマネージャ252に指示を出し、アプリケーションマネージャ252がレジストリ253内の情報を更新できるようにする。すなわちこの場合、第3アプリケーション256の処理により、サービス名やサービス種別などの情報を、レジストリ253に登録するようにする。
そのために、ステップS1455(図32)において、第3アプリケーション256により、サービス名が生成される。サービス名を生成するためのデータは、リーダライタ202から供給され、その供給自体の処理は、ステップS1306におけるサービスの登録を実行する際に行われても、予め第3アプリケーションが用意しているデータから自動生成しても良い。よって、リーダライタ202は、サービスを登録するためのデータと、サービス名を登録するためのデータを、第3パケットで携帯電話機201(第3アプリケーション256)に送信する。
また、第3アプリケーション256がサービス名を生成するためのコマンドが用意され、そのコマンドが、リーダライタ202から送信されても良い。サービスを登録するタイミングで、自動的に第3アプリケーションが引き続き、処理を続けても良いまた、第3アプリケーション256側は、そのようなコマンドを認識し、処理を実行できるように構成されている。ステップS1455においては、このようなコマンドが、第3アプリケーション256で解釈され、サービス名が生成され、アプリケーションマネージャ252に出力される。
ステップS1481において、第3アプリケーション256からのサービス名と、そのサービス名をレジストリ253に登録するように指示するコマンドを、API(Application Program Interface)経由で受信したアプリケーションマネージャ252は、ステップS1482において、受信されたコマンドに基づき、レジストリ253に、受信されたサービス名を登録する。その登録が終了されると、ステップS1483において、登録が終了したことを示すデータが、第3アプリケーション256に出される。
第3アプリケーション256は、ステップS1456において、アプリケーションマネージャ252から、登録の終了を示すデータを受信すると、ステップS1457において、CLF224に対して、サービスの登録とサービス名の登録が終了したことを示すデータをレスポンスとして出力する。CLF224は、ステップS1408において、第3アプリケーション256からのレスポンスを受信すると、ステップS1409において、そのレスポンスを,リーダライタ202に転送する。
リーダライタ202は、ステップS1307において、レスポンスを受信し、そのレスポンスを解釈することで、登録の処理が終了したことを認識する。
このように、第3アプリケーション256で、サービス名の登録のための処理が実行される。このような処理を可能とするために、サービスの定義を以下のようにすることが考えられる。
パターン1として、上記したように、第3アプリケーション256が解釈できるコマンドを用意する。パターン1の場合、サービス登録の開始を示すスタートと、終わりを示すエンドをそれぞれ示すコマンドを用意し、そのスタートとエンドの間のサービス登録データのやり取りをサービスの単位として一括りにする定義が考えられる。
パターン2として、一連のサービス領域を作る行為を1つのサービス単位として自動的に判別することにする。この場合、1つのコマンドもしくはコマンドを結合させた1つの固まりによって生成されるサービス領域をサービスの単位として見る。
このようなサービスに対する定義とともに、サービスに対するサービス名の渡し方、換言すれば、ステップS1455で実行されるサービス名の生成と登録の仕方についても定義しておく必要がある。
パターン1として、サービス名の生成や登録を指示するコマンドを用意し、そのコマンドを第3アプリケーション256が解釈できるようにする。リーダライタ202側からコマンドを送信することで、サービス名の登録を、第3アプリケーション256に実行させることができるようになる。
パターン2として、新たな領域を用意することでサービス名の登録を行うことが考えられる。パターン2では、サービス名を入れる定義ブロックが規定し、その内容が解釈され、アプリケーションマネージャ252のレジストリ253が更新される。この場合も、リーダライタ202からブロックへの書き込みが必要となり、リーダライタ202からのインプットが必要である。換言すれば、リーダライタ202からのインプットにより更新が行われるため、リーダライタ202側で更新のタイミングなどを制御することができる。
パターン3として、対応表を保持することでサービス名の登録を行うことが考えられる。パターン3では、システムコードやサービスコードなどの領域やサービスを識別するための番号とサービス名の対応表を、第3アプリケーション256が保持し、サービスが登録されるときに、そのサービスに対応する識別する番号とサービス名が対応表から読み出されることで、サービス名の登録が行われる。また、保持されている対応表に記載されていない新たなサービスが提供されるような場合、対応表自体が更新される。この対応表の更新も、リーダライタ202側からコマンドを送信するなどの処理が実行されることで行うことが可能である。
このようないずれかのパターンが採用され、サービス名の生成や登録の処理が実行される。第3アプリケーション256は、生成したサービス名を、API経由でレジストリ253に登録する。
[サービス名の表示に関する処理について]
このようにして、サービスとサービス名が登録されることで、ビューワ241により、登録されているサービスの情報をユーザに提示するとき、図33または図34に示すような画面で情報を提示することができるようになる。
図33に示すようにビューワ241は、アプリケーションマネージャ252が認識した第1アプリケーション254、第2アプリケーション255、第3アプリケーション256を認識する。さらにレジストリ253内には、上記した処理が実行されたことで、第3アプリケーション256には、第3−1サービス257、第3−2サービス258、および第3−3サービス259がサービスに関する情報が登録されているため、ビューワ241は、それらのサービスも認識する。
このような認識の結果、ビューワ241は、第1アプリケーション254が提供するサービスの名称である“第1サービス”、第2アプリケーション255が提供するサービスの名称である“第2サービス”、および第3アプリケーション256が提供するサービスの名称である“第3サービス”を、ディスプレイ401に表示させる。
さらに第3アプリケーション256は、総合サービスであり、第3−1サービス257、第3−2サービス258、および第3−3サービス259を提供できるように構成され、これらの情報もレジストリ253を参照することで認識されているため、これらの情報もディスプレイ401上に表示される。
すなわち図33に示したように、第3アプリケーション256に対応する“第3サービス”という名称の下に、第3−1サービス257に対応する“第3−1サービス“という名称、第3−2サービス258に対応する“第3−2サービス“という名称、および第3−3サービス259に対応する“第3−3サービス“という名称が、“第3サービス”という名称に関連付けられた表示がされる。
このような表示がされることにより、ユーザは、第3サービスには、第3−1サービス、第3−2サービス、および第3−3サービスの3つのサービスがあることを認識することができる。このような表示が、レジストリ253で、第3−1サービス257、第3−2サービス258、および第3−3サービス259に対応するサービス名を管理することで可能となる。
他の表示例として、図34を示す。図34に示した表示例では、まず第1アプリケーション254が提供するサービスの名称である“第1サービス”と第2アプリケーション255が提供するサービスの名称である“第2サービス”がディスプレイ401に表示されている。さらに、その下に、第3−1サービス257に対応する“第3−1サービス“という名称、第3−2サービス258に対応する“第3−2サービス“という名称、および第3−3サービス259に対応する“第3−3サービス“という名称が表示されている。
このような表示がされることで、ユーザは、第1サービス、第2サービス、第3−1サービス、第3−2サービス、および第3−3サービスの5つのサービスがあることを認識することができる。この場合、ユーザは、第3アプリケーション256が、3つのサービスを提供することを認識することなく、第1サービスや第2サービスと同列に、第3−1サービス、第3−2サービス、および第3−3サービスを認識することが可能となる。このような表示が、レジストリ253で、第3−1サービス257、第3−2サービス258、および第3−3サービス259に対応するサービス名を管理することで可能となる。
このような表示の違いは、レジストリ253で、どのようにして、サービス名が管理されるかにより決定される。そこで、サービス名の管理の仕方について説明する。まず、サービスにダミーのAIDを付け、そのダミーAIDでサービスを管理することが考えられる。またそのダミーAIDが、レジストリ253に書き込まれることで、サービスに関する情報が、レジストリ253で管理されるようにする。AIDは、Application IDentifierの略である。
UICC222に複数のアプリケーションが登録されている場合、例えば、各アプリケーションに付けられたファイルの「名前」が偶然同じであったとき、正常に動作せず、ファイル破壊が生じる可能性がある。そのようなことを防ぐために、アプリケーション識別子(AID)が付与され、アプリケーションの一意性が確保されるようにされている。このように、アプリケーションは、AIDで管理されている。また一意性を確保するために、AIDは、ユニークな値とされている。
AIDは、ISO7816−5で規定されており、16バイトで構成され、5バイトはRID、残り11バイトはPIXで構成されている。RIDは、アプリケーションの提供者であり、例えば所定の企業が取得したユニークなIDである。そのため、RIDは、基本的に1企業につき、1つのIDとされている。RIDはRegistered application provider Identifierの略称であり、PIXはProprietary application Identifier eXtensionの略称である。
PIXは、RIDを割り当てられた会社内でユニークに採番することができるIDである。そのため、第3アプリケーション256では、以下のルールに基づいて、ダミーAIDを生成する。ダミーAIDとは、実際には存在しないアプリケーションに割り当てられたAIDである。また、ダミーAIDは、ビューワ241から、UICC222に登録されているアプリケーションを表示することを目的として設けられる。
よって、このダミーAIDは、ユーザが選択してアプリケーションが起動されるようなことには利用されない。また、第3アプリケーション256内のサービスには、実際にはAIDが存在しない。
そしてダミーAIDは、以下の構成とされる。
ダミーAID=(RID)+(第3アプリケーション256に割り当てられた値(PIXの一部)+会社が規定するユニークなサービス番号(PIXの一部)
このような構成を有するダミーAIDは、他のアプリケーションに影響を及ぼすことがない。ダミーAIDが、レジストリ253に書き込まれることにより、第3アプリケーション256以外の、例えば第1アプリケーション254が何らかの影響を与えるようなことがなく、第3アプリケーション256の枠組み内で、ダミーAIDを構成することができる。そのため、ダミーAIDを指定してアプリケーションが呼ばれた場合、ダミーの元となった第3アプリケーションのAIDと部分的に一致するため、第3アプリケーションが呼ばれても良い。
このように構成されるダミーAIDが、API経由で、第3アプリケーション256からレジストリ253に登録される。ビューワ241は、レジストリ253に管理されているダミーAIDが見えるため、そのダミーAIDが割り当てられているアプリケーションを認識することができる。
この場合、ダミーAIDに割り当てられているのはサービスであるため、結果的に、ビューワ241は、登録されているサービスを認識することになる。このような認識ができるようになることで、ビューワ241の処理により提供される画面は、例えば、図33や図34に示したような画面とすることが可能となる。
ダミーAID自体の構成や、ダミーAIDのサービスに対する付け方などにより、図33に示したように、所定のアプリケーションで実現されるサービスが階層的に表示されるようにすることも、図34に示したように、所定のアプリケーションで実現されるサービスと同階層で表示されるようにすることもできる。
[効果について]
このように、UICC222に、例えば、第3アプリケーション256で提供されるサービスが単独で登録されていても、異なる携帯電話機201で共通して用いられるビューワ241から、個々のサービスの存在を確認できるようになる。このような確認が行えるようになることで、上記したように、ユーザ側に個々のサービスの存在を認識させるための画面を提示することが可能となる。
またその表示は、例えば、図34に示したように、他のアプリケーションで提供されるサービスと同列のサービスとしてユーザに参照させることができる表示とすることができる。また、新たなサービスであっても、既に登録されているサービスと同列のサービスとして表示することが可能となる。または、図33に示したように、所定のアプリケーションで提供されるサービスは、そのアプリケーションと関連付けられた、階層的な表示とすることも可能となる。
また、サービスの存在確認が行えるようになれば、必要時に対向のアプリケーションの追加を行うことが可能となる。すなわち、サービスとアプリケーションの関係性に自由度を持たせることが可能となる。
またサービスの登録やサービス名の登録は、既存のインフラをできる限り生かして行うことができる。よって、UICC222でサービスを管理するようにシステムが移行しても、移行後に係るコストを低減させることが可能となる。さらに、インフラを生かすことができることで、大幅な変更を伴わないでシステムの移行などが実行できるようになるため、ユーザにとっても、開発者側にとっても、システム移行にともなう混乱を生じさせるようなことを防ぐことが可能となる。
[記録媒体について]
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
図35は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。コンピュータにおいて、CPU(Central Processing Unit)1001、ROM(Read Only Memory)1002、RAM(Random Access Memory)1003は、バス1004により相互に接続されている。バス1004には、さらに、入出力インターフェイス1005が接続されている。入出力インターフェイス1005には、入力部1006、出力部1007、記憶部1008、通信部1009、及びドライブ1010が接続されている。
入力部1006は、キーボード、マウス、マイクロフォンなどよりなる。出力部1007は、ディスプレイ、スピーカなどよりなる。記憶部1008は、ハードディスクや不揮発性のメモリなどよりなる。通信部1009は、ネットワークインタフェースなどよりなる。ドライブ1010は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア1011を駆動する。
以上のように構成されるコンピュータでは、CPU1001が、例えば、記憶部1008に記憶されているプログラムを、入出力インターフェイス1005及びバス1004を介して、RAM1003にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU1001)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア1011に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータでは、プログラムは、リムーバブルメディア1011をドライブ1010に装着することにより、入出力インターフェイス1005を介して、記憶部1008にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部1009で受信し、記憶部1008にインストールすることができる。その他、プログラムは、ROM1002や記憶部1008に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。