(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0017】
以下、図面を参照しながら本技術の実施の形態について説明する。
【0018】
[NFCデバイスの構成例]
図3は、NFCデバイスの構成例を示す図である。
【0019】
NFCデバイス11は、例えば、携帯電話機、ICカード、携帯情報端末、又はパーソナルコンピュータなどの装置として構成される。NFCデバイス11は、NFCリーダ12等の外部装置と、例えばISM(Industry Science Medical)バンドの13.56MHzの周波数の搬送波を用いて、数10cm以内(接触している場合も含む)の距離で近接通信を行う。
【0020】
NFCデバイス11は、CLF31、ESE32、DH33、及びUICC34から構成される。CLF31と、ターゲットとしてのESE32、DH33、及びUICC34のそれぞれは、有線により接続され、相互に通信可能とされる。
【0021】
CLF(Contactless Front End)31は、NFCデバイス11内に設けられたアンテナに接続され、NFCリーダ12と近接通信を行う。CLF31は、NFCリーダ12から送信されてくるコマンドに応じて、NFCリーダ12が所望とするターゲットを選択して、NFCリーダ12との間で通信が行われるように制御する。
【0022】
また、CLF31は、メモリ31Aを内蔵しており、必要に応じて各種のデータを、メモリ31Aに記憶する。
【0023】
ESE(Embedded Secure Element)32は、ICチップのセキュリティを含めたコア部分となるセキュアエレメントであって、例えば、電子決済や電子乗車券、入退室管理のNFCアプリケーションにおけるセキュリティ機能を実現する。
【0024】
DH(Device Host)33は、NFCデバイス11の各部の動作を制御する。また、DH33は、P2Pアプリ41又はT3Tアプリ42を実行する。P2Pアプリ41は、P2P(Peer to Peer)のアプリケーションプログラムである。また、T3Tアプリ42は、NFC規格により規定されているT3T(Type 3 Tag)のエミュレーション用のアプリケーションプログラムである。P2Pアプリ41及びT3Tアプリ42は、それぞれ、1又は複数実行可能とされる。
【0025】
UICC(Universal Integrated Circuit Card)34は、例えば、SIM(Subscriber Identity Module)カードから構成される。UICC34は、NFCアプリケーションプログラムを実行することで、例えば、電子決済機能を実現する。
【0026】
このように、ESE32、UICC34、P2Pアプリ41、及びT3Tアプリ42は、NFCリーダ12の通信対象となるターゲットであって、それぞれが所定の処理を行う。換言すれば、ターゲットには、ESE32やUICC34などのデバイスと、P2Pアプリ41やT3Tアプリ42などのアプリケーションプログラムが含まれることになる。ただし、ターゲットには、ESE32又はUICC34にて実行されるアプリケーションプログラムが含まれるようにしてもよい。
【0027】
NFCデバイス11は、以上のように構成される。
【0028】
[CLFの詳細な構成例]
図4は、
図3のCLF31の詳細な構成例を示す図である。
【0029】
CLF31は、パケット受信処理部101、ルーティング状態管理部102、優先度管理部103、及び無線通信制御部104から構成される。
【0030】
パケット受信処理部101は、NFCリーダ12から送信される受信パケットに関する処理を行う。
【0031】
ルーティング状態管理部102は、CLF31にて行われるルーティングの状態遷移を管理する。ルーティング状態には、後述するニュートラル状態とセレクト状態がある。
【0032】
優先度管理部103は、ポーリングコマンドに対するターゲットからの応答(レスポンス)の優先度を管理する。なお、優先度に関する情報は、メモリ31Aに保持され、必要に応じて適宜読み出される。
【0033】
無線通信制御部104は、NFCリーダ12との間で行われる近接通信を制御するための処理を行う。
【0034】
CLF31は、以上のように構成される。
【0035】
[CLFによるルーティングの概要]
次に、CLF31によるルーティングの概要について説明する。CLF31にて行われるルーティングは、ルーティングのステートマシンと、各ステートにおける受信パケットの処理プロセスによって実現される。
【0036】
[ルーティングのステートマシン]
図5に示すように、ステートマシンは、ニュートラル状態(NEUTRAL)と、セレクト状態(SELECTED)の2つの状態で構成される。ニュートラル状態は、ターゲットが確定していない状態を意味し、セレクト状態は、ターゲットが確定している状態を意味する。
【0037】
ニュートラル状態では、NFCリーダ12からの受信パケットの解析が行われ、当該解析結果に応じて、ターゲットを確定するための処理が行われる。ターゲットが確定すると、ルーティング状態は、ニュートラル状態からセレクト状態に遷移する。
【0038】
セレクト状態では、受信パケットが、ニュートラル状態にて確定された確定ターゲットに自動的に振り分けられる。また、セレクト状態には、プロトコルに応じて、P2Pセレクト状態(P2P SELECTED)と、T3Tセレクト状態(T3T SELECTED)が存在する。P2Pセレクト状態は、P2Pアプリ41が選択されている状態を意味する。T3Tセレクト状態は、P2Pアプリ41以外のESE32、UICC34、又はT3Tアプリ42等が選択されている状態を意味する。また、所定の解除条件が発生して確定ターゲットが解除されると、ルーティング状態は、セレクト状態からニュートラル状態に遷移する。
【0039】
確定ターゲットは、NFCリーダ12からの受信パケットに格納されたコマンドコードや受信パケットのプロトコルなどの入力情報に対する所定のチェック条件に基づいて、NFCデバイス11内に存在するターゲットの中から、NFCリーダ12との単一の通信対象として、CLF31により決定されるものである。CLF31は、確定ターゲットが解除されるか、又は確定ターゲットが変更されるまでは、受信パケットを、選択された確定ターゲットに振り分けることになる。
【0040】
図6は、ルーティングのステートマシンの状態遷移を示す図である。
【0041】
図6において、ニュートラル状態にてP2Pアプリ41が確定ターゲットとして選択されると、ルーティング状態は、ニュートラル状態からP2Pセレクト状態に遷移する。また、ニュートラル状態にてT3Tアプリ42等が確定ターゲットとして選択されると、ルーティング状態は、ニュートラル状態からT3Tセレクト状態に遷移する。また、SENSF_REQコマンドが受信された場合や、RF(Radio Frequency)信号がオフになった場合には、ルーティング状態は、ニュートラル状態に留まる。
【0042】
P2Pセレクト状態にて、RF信号がオフになった場合、又はRLS_REQコマンド、DSL_REQコマンド、NFC-Aへの technology changeを伴うPSL_REQコマンド、若しくはRF_DEACTIVATE_CMDコマンドが受信された場合には、ルーティング状態は、P2Pセレクト状態からニュートラル状態に遷移する。また、P2Pセレクト状態にて、上記以外のコマンドが受信された場合には、ルーティング状態は、P2Pセレクト状態に留まる。なお、RLS_REQコマンド,DSL_REQコマンドは、P2P通信のトランザクションの終了を指示するためのコマンドである。PSL_REQコマンドは、P2P通信の通信状態の変更を指示するためのコマンドである。また、RF_DEACTIVATE_CMDコマンドは、所定の規格に準拠した終了を指示するためのコマンドである。
【0043】
T3Tセレクト状態にて、RF_DEACTIVATE_CMDコマンドが受信された場合、又はSENSF_REQコマンドが各ターゲットにブロードキャスト送信された後に、その応答が返信された場合には、ルーティング状態は、T3Tセレクト状態からニュートラル状態に遷移する。また、T3Tセレクト状態にて、SENSF_REQコマンドに対する応答が返信されなかった場合やRF信号がオフになった場合などは、ルーティング状態は、T3Tセレクト状態に留まる。さらに、T3Tセレクト状態にて、有効なP2Pのコマンドを受信した場合、ルーティング状態は、T3Tセレクト状態からP2Pセレクト状態に遷移する。
【0044】
このように、CLF31は、ニュートラル状態、P2Pセレクト状態、又はT3Tセレクト状態のいずれかのルーティング状態に遷移し、その状態に応じた受信パケットの処理プロセスを行うことになる。
【0045】
[受信パケットの処理プロセス]
パケット受信の処理プロセスは、ポーリングコマンドを受信した場合の処理プロセスと、ポーリングコマンド以外のコマンドを受信した場合の処理プロセスに分類される。
【0046】
(ポーリングコマンドを受信した場合の処理プロセス)
図7は、ポーリングコマンドを受信した場合の処理プロセスを示す図である。
【0047】
CLF31は、NFCリーダ12からSENSF_REQコマンドを受信した場合、当該コマンドを、複数のターゲットにブロードキャスト送信する。
【0048】
すなわち、SENSF_REQコマンドを格納するパケットには、ターゲットを特定するための識別情報が含まれていないため、ターゲットを特定するためのプロセスに用いることはできない。従って、CLF31は、ターゲットの対象となり得る候補を探索するためのポーリングコマンドとして、SENSF_REQコマンドを、ブロードキャスト送信する。換言すれば、NFCリーダ12にとって、SENSF_REQコマンドは、確定ターゲットの候補を探索して、当該ターゲットに関する情報を取得するためのコマンドであると言える。
【0049】
なお、ターゲットの識別情報としては、例えば、ターゲットを一意に識別可能なNFCID2が用いられる。
【0050】
また、P2Pアプリ41及びT3Tアプリ42に対するSENSF_REQコマンドは、DH33には送信されずに、CLF31内で処理される。以下、このような、実際にはSENSF_REQコマンドが送信されないターゲットを、論理ターゲットと称する一方、例えば、ESE32やUICC34のように、SENSF_REQコマンドが実際に送られるターゲットを、物理ターゲットと称して区別する。ただし、論理ターゲットと、物理ターゲットを区別する必要がない場合には、単に、ターゲットと称する。本実施の形態において、SENSF_REQコマンドは、物理ターゲットに対してだけでなく、論理ターゲットにもブロードキャスト送信されるものとして説明する。
【0051】
より具体的には、
図8に示すように、CLF31は、NFCリーダ12からSENSF_REQコマンドを受信した場合、当該SENSF_REQコマンドを、論理ターゲットであるP2Pアプリ41L及びT3Tアプリ42Lと、物理ターゲットであるESE32及びUICC34にブロードキャスト送信する。
【0052】
CLF31からSENSF_REQコマンドが送信されると、
図9に示すように、各ターゲットのそれぞれは、SENSF_REQコマンドに応じて、SENSF_RESコマンドを応答することになる。そして、CLF31は、応答があったターゲットの中から、当該応答に対する優先度に従って、応答を返信する確定ターゲットの候補を選択する。CLF31は、シングルレスポンス方式に従い、選択した確定ターゲットの候補からのSENSF_RESを、NFCリーダ12に返信する。
【0053】
例えば、CLF31は、P2Pアプリ41L、T3Tアプリ42L、ESE32、及びUICC34から応答があった場合、P2Pアプリ41(P2Pアプリ41L)、ESE32、UICC34、T3Tアプリ42(T3Tアプリ42L)の順の優先度に従って、それらの応答のうち、最も高い優先度のP2Pアプリ41の応答を選択し、NFCリーダ12に返信する。
【0054】
なお、CLF31からのSENSF_REQコマンドに対しては、複数応答がある場合や応答が全くない場合もある。例えば、SENSF_RESコマンドの応答をしてきたターゲットが1つだけであった場合、CLF31は、当該ターゲットからのSENSF_RESコマンドを、NFCリーダ12に返信する。また、SENSF_RESコマンドの応答をしてきたターゲットが1つもなかった場合、CLF31は、NFCリーダ12に対する返信を行わないことになる。この場合、CLF31は、現在のルーティングの状態を維持する。
【0055】
また、SENSF_REQコマンドは、基本的にすべてのターゲットにブロードキャスト送信されるものであるが、ターゲットの状態などによっては、送信されない場合もある。
【0056】
(ポーリングコマンド以外のコマンドを受信した場合の処理プロセス)
図10は、ポーリングコマンド以外のコマンドを受信した場合の処理プロセスを示す図である。
【0057】
CLF31は、NFCリーダ12からSENSF_REQ以外のコマンドを受信した場合、当該コマンドを、特定のターゲットに送信する。すなわち、SENSF_REQ以外のコマンドは、NFCリーダ12が所望のターゲットを特定した上で、特定のターゲットに送信されるものであるため、当該コマンドを格納するパケットには、特定のターゲットの識別情報が含まれている。従って、CLF31は、ターゲットの識別情報に応じて、P2Pアプリ41、T3Tアプリ42、ESE32、又はUICC34のいずれかを選択して、コマンドを送信する。
【0058】
このように、CLF31においては、ポーリングコマンドを受信した場合と、ポーリングコマンド以外のコマンドを受信した場合では、その処理プロセスが異なることになる。
【0059】
[各ルーティング状態における受信パケットの処理プロセス]
次に、上記の各ルーティング状態における受信パケットの処理プロセスについて説明する。
【0060】
(ニュートラル状態における受信パケットの処理プロセス)
図11は、ニュートラル状態における受信パケットの処理プロセスの概要を示す図である。
【0061】
ニュートラル状態における受信パケットの処理プロセスで行われるルーティングの方式には、コマンドコードルーティング、プロトコルルーティング、及びテクノロジールーティングの3種類がある。
【0062】
コマンドコードルーティング(command code routing)は、NFCリーダ12からのコマンドを常時監視して、特定のコマンドを受信した場合には、当該コマンドに対応付けられたターゲットに、受信パケットを送るルーティングの方式である。
【0063】
プロトコルルーティング(protocol routing)は、受信パケットがどのプロトコルになるかを、プロトコルベースで判別し、当該判別結果に応じたターゲットに、受信パケットを送るルーティングの方式である。プロトコルルーティングでは、例えば、受信パケットのプロトコルが、P2Pのプロトコルであるのか、又はT3Tのプロトコルであるかなどが判別される。以下、P2Pのプロトコルの判別結果に応じたルーティングを、P2Pプロトコルルーティングと称し、T3Tのプロトコルの判別結果に応じたルーティングをT3Tプロトコルルーティングと称する。
【0064】
テクノロジールーティング(technology routing)は、受信したパケットがどのプロトコルにも属さない場合に、あらかじめ特定されたターゲットに、受信パケットを送るルーティングの方式である。テクノロジールーティングでは、例えば、実装的にP2PやT3Tのプロトコルが無効になっていた場合に、NFC-Fのパケットは第1のターゲットに送り、NFC-Bのパケットは第2のターゲットに送るなどを、あらかじめ決めておくことで、受信パケットが、該当するターゲットに送られるようにすることができる。
【0065】
図11に示すように、NFCリーダ12からSENSF_REQコマンドを受信した場合には、SENSF_REQコマンドが、各ターゲットにブロードキャスト送信される。一方、NFCリーダ12からSENSF_REQ以外のコマンドを受信した場合には、まず、コマンドコードルーティングが行われ、確定ターゲットが選択された場合には、確定ターゲットに受信パケットが送られる。
【0066】
コマンドコードルーティングにて確定ターゲットが選択されなかった場合、P2Pプロトコルルーティング及びT3Tプロトコルルーティングが行われる。それらのプロトコルルーティングによって、確定ターゲットが選択された場合には、確定ターゲットに受信パケットが送られる。
【0067】
また、プロトコルルーティングにて確定ターゲットが選択されなかった場合、テクノロジールーティングが行われる。テクノロジールーティングにおいては、受信パケットの送信先が決まっているので、その送信先となるターゲットに受信パケットが送られる。
【0068】
なお、コマンドコードルーティングは、特定の運用における特定の機能を実現するために行われるものであるため、運用によっては実装されない場合もある。その場合には、CLF31は、SENSF_REQ以外のコマンドを受信したとき、コマンドコードルーティングを行わずに、プロトコルルーティングから開始する。そして、プロトコルルーティングにて確定ターゲットが選択されなかった場合、CLF31は、テクノロジールーティングを行うことになる。
【0069】
次に、
図12を参照して、ニュートラル状態における受信パケットの処理プロセスの詳細について説明する。
図12には、
図11に示した各ルーティングの詳細な処理の内容が図示されている。
【0070】
コマンドコードルーティングでは、まず、受信パケットのコマンドコードのチェックが行われる(S11)。S11のチェック条件を満たしている場合には、受信パケットのNFCID2と、すべてのターゲットのNFCID2との比較が行われる(S12)。S12にてNFCID2が一致する場合には、所定のルーティングテーブルに、所定のターゲットが登録されているかのチェックが行われる(S13)。そして、S13のチェック条件を満たしている場合には、当該ターゲットが、確定ターゲットとして選択される。例えば、ルーティングテーブルにて、DH33がT3Tのプロトコルルーティングのターゲットとして登録されている場合には、DH33と通信可能となるので、T3Tアプリ42が確定ターゲットに選択される。
【0071】
上記のS11,S12,又はS13のチェック条件を満たさない場合、コマンドコードルーティングは終了し、次に、P2Pプロトコルルーティングが行われる。
【0072】
P2Pプロトコルルーティングでは、受信したコマンドが、P2Pのコマンドであるかのチェックが行われる(S21)。S21のチェック条件を満たしている場合には、所定のルーティングテーブルのチェックが行われる(S22)。S22のチェック条件を満たしている場合、P2Pのプロトコルとして応答可能なコマンドであるかなどのチェックがさらに行われる(S23)。そして、S23のチェック条件を満たしている場合には、P2Pアプリ41が確定ターゲットに選択される。これにより、ルーティング状態は、ニュートラル状態からP2Pセレクト状態に遷移する。
【0073】
また、上記のS21のチェック条件を満たさない場合、P2Pプロトコルルーティングは終了し、次に、T3Tプロトコルルーティングが行われる。
【0074】
ここで、SENSF_REQコマンドに対する応答(SENSF_RESコマンド)の優先度であるが、初期状態では、P2Pアプリ41、ESE32、UICC34、T3Tアプリ42の順に優先度が高くなっている。そのため、SENSF_REQコマンドに対し、P2Pアプリ41を確定ターゲットの候補として選択してP2Pアプリ41のSENSF_RESコマンドを応答した後で、P2Pアプリ41に対する所定のコマンドが送られてこないと、トランザクションが不成立になってしまう。そこで、プロトコルルーティングにおいては、P2Pアプリ41に対する所定のコマンドを受信できなかった時点で(S21の「No」)、応答の優先度の変更を行い(S31)、P2Pアプリ41の優先度を下げる。
【0075】
例えば、CLF31は、ESE32、UICC34、T3Tアプリ42、P2Pアプリ41の順に優先度を変更する。これにより、CLF31は、次に、SENSF_REQコマンドを受信し、ターゲットにブロードキャスト送信した場合、変更された優先度に従って、優先度の最も高いESE32を確定ターゲットの候補として選択し、各ターゲットからのSENSF_RESコマンドのうち、ESE32の応答を、NFCリーダ12に返信することになる。
【0076】
なお、当該優先度の変更は、後述するS32のチェック条件を満たさない場合に、その後の処理として行ってもよい。
【0077】
図12の説明に戻り、T3Tプロトコルルーティングでは、受信パケットに格納されたNFCID2と、P2Pアプリ41以外のターゲット、すなわち、T3Tアプリ42、ESE32、UICC34のNFCID2との比較が行われる(S32)。S32にてNFCID2が一致する場合には、所定のルーティングテーブルに、所定のターゲットが登録されているかのチェックが行われる(S33)。そして、S33のチェック条件を満たしている場合には、当該ターゲットが、確定ターゲットとして選択される。これにより、ルーティング状態は、ニュートラル状態からT3Tセレクト状態に遷移する。
【0078】
上記のS22,S23,S32,S33のチェック条件を満たさない場合、プロトコルルーティングは終了し、次に、テクノロジールーティングが行われる。
【0079】
テクノロジールーティングでは、所定のルーティングテーブルのチェックが行われる(S41)。S41のチェック条件を満たしている場合には、当該ターゲットが、確定ターゲットとして選択される。これにより、ニュートラル状態からT3Tセレクト状態に遷移する。
【0080】
一方、S41のチェック条件を満たさない場合には、受信パケットは破棄され(S42)、受信パケットの処理は終了する。
【0081】
なお、SENSF_REQコマンドを受信した場合には、SENSF_REQプロセス処理によって、受信パケットに格納されたパラメータや所定のルーティングテーブルのチェックが行われる(S51)。S51のチェック条件を満たしている場合には、SENSF_REQコマンドは、各ターゲットにブロードキャスト送信される。一方、S51のチェック条件を満たさない場合には、受信パケットは破棄される(S52)。
【0082】
このように、ニュートラル状態における受信パケットの処理プロセスでは、受信パケットの評価を行い、評価結果に応じて、確定ターゲットが選択される。また、確定ターゲットが選択されると、ルーティング状態は、ニュートラル状態からP2Pセレクト状態又はT3Tセレクト状態に遷移する。さらに、確定ターゲットの候補として選択したP2Pアプリ41からの応答をNFCリーダ12に返信したにもかかわらず、P2PプロトコルルーティングにてP2Pアプリ41が確定ターゲットに選択されなかった場合には、応答の優先度の変更が行われ、P2Pアプリ41の優先度が下げられる。
【0083】
(T3Tセレクト状態における受信パケットの処理プロセス)
図13は、T3Tセレクト状態における受信パケットの処理プロセスの概要を示す図である。
【0084】
T3Tセレクト状態における受信パケットの処理プロセスで行われるルーティングの方式は、コマンドコードルーティング及びP2Pプロトコルルーティングとなる。
【0085】
図13に示すように、NFCリーダ12からSENSF_REQコマンドを受信した場合には、SENSF_REQコマンドが、各ターゲットにブロードキャスト送信される。一方、NFCリーダ12からSENSF_REQ以外のコマンドを受信した場合には、まず、コマンドコードルーティングが行われる。
【0086】
また、コマンドコードルーティングにて確定ターゲットが選択されなかった場合、P2Pプロトコルルーティングが行われる。すなわち、前述した状態遷移図(
図6)に示したように、ルーティング状態が、T3Tセレクト状態からP2Pセレクト状態に遷移する場合があるため、T3Tセレクト状態においても、P2Pプロトコルルーティングが行われる。P2Pプロトコルルーティングにおいて、P2Pアプリ41が確定ターゲットに選択された場合、ルーティング状態は、T3Tセレクト状態からP2Pセレクト状態に遷移する。一方、P2Pアプリ41が確定ターゲットに選択されなかった場合、確定ターゲットは、現在のターゲットのまま変動せず、さらに、ルーティング状態もT3Tセレクト状態から変動しないことになる。
【0087】
なお、前述したように、コマンドコードルーティングが実装されない場合には、P2Pプロトコルルーティングのみが行われることになる。
【0088】
次に、
図14を参照して、T3Tセレクト状態における受信パケットの処理プロセスの詳細について説明する。
図14には、
図13に示した各ルーティングの詳細な処理の内容が図示されている。
【0089】
図14において、コマンドコードルーティング及びP2Pプロトコルルーティングは、
図12と同様に行われるため、その説明は省略する。ただし、
図14のS21,S22,S23のチェック条件を満たさない場合には、プロトコルルーティングは終了し、確定ターゲット及びルーティング状態は変動しないため、受信パケットは、現在のターゲットに送られることになる。なお、
図14の処理プロセスでは、前述した応答の優先度の変更は行われない。
【0090】
また、SENSF_REQコマンドを受信した場合には、SENSF_REQプロセス処理が、
図12と同様に行われる。
【0091】
このように、T3Tセレクト状態における受信パケットの処理プロセスでは、コマンドコードルーティング及びP2Pプロトコルルーティングのみが行われ、それらのルーティングの評価結果に応じて、確定ターゲットが選択される。
【0092】
(P2Pセレクト状態における受信パケットの処理プロセス)
図15は、P2Pセレクト状態における受信パケットの処理プロセスを示す図である。
【0093】
図15に示すように、P2Pセレクト状態における受信パケットの処理プロセスにおいては、CLF31は、NFCリーダ12からの受信パケットを、すべて、P2Pアプリ41に送信する。
【0094】
このように、P2Pセレクト状態における受信パケットの処理プロセスでは、受信パケットの評価は行われず、受信パケットは、常に確定ターゲットであるP2Pアプリ41に送信される。
【0095】
以上、受信パケットの処理プロセスについて説明した。
【0096】
[具体的な運用例]
次に、
図16及び
図17のシーケンス図を参照して、本技術を利用した具体的な運用例について説明する。
【0097】
図16及び
図17においては、NFCリーダ12からのコマンドに対する、CLF31、ESE32、UICC34の動作が示されている。また、論理ターゲットであるP2Pアプリ41L及びT3Tアプリ42Lについては、CLF31内で処理される。ここで、NFCリーダ12の所望とするアプリケーションプログラムは、ESE32に存在するものとする。
【0098】
また、図中の右側に示される、「SENSF_RES Priority order」は、応答の優先度におけるターゲットの並び順の状態を示している。「Normal order」は、P2Pアプリ41の優先度が最も高い状態の並び順を意味する。また、「P2P deprioritised」は、P2Pアプリ41の優先度が下げられた状態の並び順を意味する。
【0099】
「P2P_RSP_FLG」は、P2Pアプリ41のSENSF_RESコマンドの応答時にセットされるフラグである。「P2P_RSP_FLG」は、P2Pアプリ41以外のSENSF_RESコマンドの応答時、又はルーティング状態がニュートラル状態に戻ったとき、クリアされる。また、「Routing State」は、前述したルーティング状態を示すもので、ニュートラル状態、P2Pセレクト状態、又はT3Tセレクト状態のいずれかの状態となる。
【0100】
図16に示すように、NFCリーダ12からSENSF_REQコマンドが送信されると、CLF31は、SENSF_REQコマンドを受信し、各ターゲットにブロードキャスト送信する。ブロードキャスト送信されたSENSF_REQコマンドは、ESE32及びUICC34にそれぞれ受信され、その応答がCLF31に返信される。また、CLF31は、SENSF_REQコマンドに対する、P2Pアプリ41L及びT3Tアプリ42Lに関する処理を行う。
【0101】
CLF31は、初期状態ではP2Pアプリ41の優先度が最も高いので、P2Pアプリ41を確定ターゲットの候補として選択し、P2Pアプリ41のNFCID2を含むSENSF_RESコマンドを、NFCリーダ12に返信する。すると、NFCリーダ12は、CLF31からのSENSF_RESコマンドに応じて、P2Pアプリ41のNFCID2を含むRequest System codeコマンドを送信する。CLF31は、NFCリーダ12からのRequest System codeコマンドを、ESE32に送信するが、当該コマンドを誤ったターゲットに送信してしまったため、応答を得ることはできない。結果としてNFCリーダ12も応答を得ることができず、この場合、トランザクションに失敗したことになる(図中の「FAIL」)。
【0102】
すなわち、CLF31において、ポーリングパラメータのSC(System Code)が“FFFF”となるSENSF_REQコマンドに対して、P2Pアプリ41のSENSF_RESコマンドを応答した後で、ATR_REQ,Ad-hoc通信用コマンドセット,Get Container Issue Information以外のコマンドを受信すると、当該トランザクションは不成立となる。ここで、ATR_REQコマンドは、NFC規格により規定されているP2P通信で用いられるコマンドである。また、Ad-hoc通信用コマンドセットは、所定の規格に準拠したアドホック通信用のコマンドである。Get Container Issue Informationは、所定の規格に準拠したICチップに関連する情報を取得するためのコマンドである。
【0103】
この場合、CLF31は、ターゲットからの応答の優先度を、ESE32、UICC34、T3Tアプリ42、P2Pアプリ41の順に変更して、P2Pアプリ41の優先度を下げる。これにより、P2Pアプリ41以外の次のトランザクションが成立されるようにする。なお、CLF31は、例えば5〜10秒間など、所定の期間のみ優先度の変更を行い、当該期間経過後に優先度を元に戻して、P2Pアプリ41の優先度が最も高くなるようにする。具体的には、
図16の「Timer start」から、
図17の「Timer expire」までの期間が、優先度を変更する期間となる。
【0104】
一方、NFCリーダ12は、トランザクションが失敗した場合、RF信号を一度オフしてから、再度オンする。そして、NFCリーダ12は、再度、SENSF_REQコマンドを送信する。CLF31は、NFCリーダ12からのSENSF_REQコマンドを受信し、各ターゲットにブロードキャスト送信する。ESE32及びUICC34は、SENSF_RESコマンドをそれぞれ返信する。
【0105】
CLF31は、応答の優先度が変更されESE32の優先度が最も高いので、ESE32を確定ターゲットの候補として選択し、ESE32のNFCID2を含むSENSF_RESコマンドを、NFCリーダ12に返信する。すると、NFCリーダ12から、ESE32のNFCID2を含むRequest System codeコマンドが送信されるので、CLF31は、当該コマンドをESE32に送信する。このとき、CLF31は、確定ターゲットの候補として選択されていたESE32を、確定ターゲットとして選択する。また、「Routing State」は、ニュートラル状態からT3Tセレクト状態に遷移する。
【0106】
Request System codeコマンドには、ESE32のNFCID2が含まれているので、ESE32は、当該コマンドに応じて、Request System code responseコマンドを返信する。Request System code responseコマンドは、CLF31を経由して、NFCリーダ12に送信される。このRequest System code responseコマンドには、ESE32のSCとして“FE00”が含まれている。
【0107】
NFCリーダ12は、Request System code responseコマンドに応じて、当該コマンドにて取得したSCを用いて、SENSF_REQコマンドを送信する。CLF31は、NFCリーダ12からのSENSF_REQコマンドを受信し、各ターゲットにブロードキャスト送信するが、SCが“FE00”となるサービスにUICC34が対応していないため、ESE32からのみSENSF_RESコマンドが返信されることになる。CLF31は、ESE32からのSENSF_RESコマンドを、NFCリーダ12に返信する。
【0108】
NFCリーダ12は、ESE32のNFCID2を含むSENSF_RESコマンドに応じて、ESE32に対するESE32のNFCID2を含むRequest Serviceコマンドを送信する。CLF31は、NFCリーダ12からのRequest Serviceコマンドを、ESE32に送信する。ESE32は、CLF31からのRequest Serviceコマンドに応じて、Request Service responseコマンドを返信する。CLF31は、ESE32からのRequest Service responseコマンドを、NFCリーダ12に返信する。
【0109】
このように、P2Pアプリ41に対するトランザクションが不成立となった場合、ターゲットからの応答の優先度を変更することで、その時点で最も優先度が高くなったESE32に対するトランザクションを成立させることができる。また、仮に、ESE32に対するトランザクションが不成立となった場合には、その次に優先度の高いUICC34、T3Tアプリ42の順にトランザクションの成立を試みることになる。
【0110】
以降、所定の期間の終了時刻(
図17の「Timer expire」)まで、同様の処理が繰り返され、NFCリーダ12とESE32の間で処理が行われる。なお、
図17に示すように、所定の期間中に、NFCリーダ12によりRF信号がオフされたとしても、CLF31では、優先度の変更に関する情報を保持しているため、RF信号がオンされた後は、ESE32が最も高い優先度であるとして、処理を継続することができる。
【0111】
そして、所定の期間の終了時刻が経過すると、CLF31は、応答の優先度を初期状態に戻して、P2Pアプリ41の優先度が最も高くなるようにする。これにより、例えば、その後、他のNFCリーダと近接通信を行う場合には、優先度が最も高いP2Pアプリ41に対するトランザクションの成立から試みることになる。
【0112】
以上のように、ある運用では、P2Pアプリ41以外のターゲットを通信対象とする場合にもかかわらず、最初にNFCリーダ12から送られるSENSF_REQコマンドに含まれるポーリングパラメータのSCが“FFFF”で、RC(Request Code)が"1"以外となる場合、すなわち、トランザクションの最初のコマンドにて、P2P通信とまったく同じポーリングパラメータにて通信を開始する場合がある。この場合、CLF31は、P2Pアプリ41の応答を返信するのか、又はP2Pアプリ41以外のターゲットの応答を返信するのかを、コマンドからは判別することができない。そのため、当該SENSF_REQコマンドに対し、P2Pアプリ41のSENSF_RESコマンドを応答した後で、ATR_REQ等の所定のコマンド以外のコマンドを受信すると、当該トランザクションは不成立となってしまう。
【0113】
そこで、本技術を利用した運用では、このような条件が満たされた段階で、所定の期間だけ、SENSF_REQコマンドに対する応答の優先度を変更して、次のトランザクションが成立されるようにしている。これにより、CLF31は、どのターゲットの応答を返信するかを判別することができない場合でも、P2Pアプリ41以外のターゲットを順次、確定ターゲットの候補とすることができるので、NFCリーダ12が所望とするターゲットを確実に選択することが可能となる。その結果、NFCリーダ12とターゲットとの間で行われる通信を、迅速に確立することができる。
【0114】
[NFCID2の抽出及び一時的保持]
次に、
図18及び
図19を参照して、NFCID2の抽出及び一時的保持に関する処理について説明する。
【0115】
CLF31は、SENSF_RESコマンドの応答時に、ESE32及びUICC34からのSENSF_RESコマンドのパケットに格納されたNFCID2を抽出する。
図18は、SENSF_RESコマンドのパケットにおけるNFCID2の格納位置を示している。
【0116】
CLF31は、ESE32及びUICC34のNFCID2をそれぞれ1つずつ、ターゲットと対応付けてメモリ31Aに保持する。CLF31は、SENSF_REQコマンドに対する応答がある度にNFCID2を抽出して、メモリ31Aに保持された対応情報を更新する。なお、P2Pアプリ41及びT3Tアプリ42のNFCID2については、例えば、所定の規格に準拠した識別情報が、あらかじめメモリ31Aに保持される。
【0117】
具体的には、
図19に示すように、CLF31は、NFCリーダ12からのSENSF_REQコマンド(SC=“FFFF”)をブロードキャスト送信し、その応答を、ESE32及びUICC34から受信する。CLF31は、ESE32及びUICC34からのSENSF_RESコマンドに含まれるNFCID2を抽出し、メモリ31Aに保持する。この例では、ESE32のNFCID2として“NFCID2_ese_0”、UICC34のNFCID2として“NFCID2_uicc_0”がそれぞれ抽出され、メモリ31Aに保持される。
【0118】
また、再度、NFCリーダ12からSENSF_REQコマンド(SC=“FF00”)が送信されると、CLF31は、当該SENSF_REQコマンドをブロードキャスト送信し、その応答を、ESE32からのみ受信する。CLF31は、ESE32からのSENSF_RESコマンドに含まれるNFCID2として“NFCID2_ese_1”を抽出し、メモリ31Aに保持する。
【0119】
このように、各ターゲットのNFCID2の値は、常に同じとは限らないので、CLF31は、SENSF_RESコマンドを受信する度に、メモリ31Aに保持されたNFCID2の値を更新する。
【0120】
[NFCID2のリプレイス処理]
次に、
図20及び
図21を参照して、NFCID2のリプレイス処理について説明する。
【0121】
図20に示すように、CLF31は、特定のコマンドコードを受信して、ターゲットを強制的に変更した場合、NFCリーダ12との通信用のNFCID2と、ターゲットとの通信用のNFCID2を置換して通信する必要がある。
【0122】
例えば、CLF31は、Get Container Issue Informationコマンドを受信した場合に、強制的にターゲットをESE32に変更するとき、ESE32のNFCID2を使用する必要があるため、ESE32のNFCID2に置換してから、ESE32との通信を行う。また、CLF31は、NFCリーダ12に応答をする場合には、NFCリーダ12から受信したコマンドに含まれるNFCID2に再度置換してから応答する。
【0123】
また、例えば、CLF31は、Propose Ad-hoc Modeコマンドを受信した場合に、強制的にターゲットをDH33に変更するとき、DH33のT3Tアプリ42のNFCID2に置換してから、T3Tアプリ42と通信を行う。また、NFCリーダ12との通信を行う場合には、当該置換前のNFCID2を用いて通信が行われる。
【0124】
具体的には、
図21に示すように、CLF31は、NFCリーダ12からのSENSF_REQコマンド(SC=“FFFF”)をブロードキャスト送信し、その応答を、ESE32及びUICC34から受信する。CLF31は、SENSF_RESコマンドに含まれるNFCID2を抽出し、メモリ31Aに保持する。そして、CLF31は、優先度に従って、P2Pアプリ41のNFCID2を含むSENSF_RESコマンドを返信する。
【0125】
また、NFCリーダ12からGet Container Issue Informationコマンドが送信されると、CLF31は、当該コマンドに含まれるNFCID2を、P2Pアプリ41からESE32のものに置換してから、ESE32に送信する。すると、当該コマンドに対する応答がESE32から送信されるので、CLF31は、応答コマンドに含まれるNFCID2を、ESE32からP2Pアプリ41のものに置換してから、NFCリーダ12に送信する。
【0126】
このように、コマンドに含まれるNFCID2を置換することで、NFCリーダ12により指定されたコマンドの送り先を、強制的に変更することができる。このようなリプレイス処理は、例えば、上記のコマンドコードルーティングを行う場合には、必要な処理となる。
【0127】
[ターゲット解除処理]
次に、ターゲットの解除処理について説明する。CLF31は、所定のターゲット解除条件に基づいて、確定ターゲットを解除する。この解除条件は、ユーザによる実行中のアプリケーションプログラムの終了操作をトリガとするものと、RF信号の消失などの外部要因によるものとがある。
【0128】
(RF_DEACTIVATE_CMD受信による解除)
CLF31は、DH33から、RF_DEACTIVATE_CMDコマンド(Idle Mode,DH_Request)などの特定のコマンドを受信した場合、NFCリーダ12との通信そのものが終了するので、確定ターゲットを解除する。なお、当該コマンドが受信された場合には、いかなるルーティング状態にあっても、確定ターゲットが解除される。この場合、ルーティング状態は、ニュートラル状態に遷移する。
【0129】
(SENSF_REQ受信時におけるSENSF_RES応答による解除)
CLF31は、ルーティング状態がT3Tセレクト状態にある場合に、NFCリーダ12からのSENSF_REQコマンドをブロードキャスト送信して、SENSF_RESコマンドの応答があったときには、確定ターゲットを解除する。この場合、ルーティング状態は、ニュートラル状態に遷移する。
【0130】
(RLS_REQ受信による解除)
CLF31は、P2Pアプリ41が確定ターゲットに選択されている場合に、RLS_REQコマンドを受信したときには、確定ターゲットを解除する。この場合、ルーティング状態は、ニュートラル状態に遷移する。
【0131】
(DSL_REQ受信による解除)
CLF31は、P2Pアプリ41が確定ターゲットに選択されている場合に、DSL_REQコマンドを受信したときには、確定ターゲットを解除する。この場合、ルーティング状態は、ニュートラル状態に遷移する。
【0132】
(RF信号の消失による解除)
CLF31は、P2Pアプリ41が確定ターゲットに選択されている場合に、RF信号のオフが検出された場合には、確定ターゲットを解除する。この場合、ルーティング状態は、ニュートラル状態に遷移する。
【0133】
(NFC-Aへのtechnology changeを伴うPSL_REQによる解除)
CLF31は、P2Pアプリ41が確定ターゲットに選択されている場合に、NFC-Aへのtechnology changeを伴うPSL_REQコマンドを受信したときには、確定ターゲットを解除する。この場合、ルーティング状態は、ニュートラル状態に遷移する。
【0134】
(その他の解除条件)
CLF31は、デバイスリセットが発生した場合やCORE_RESET_CMDコマンドを受信した場合など、RF_DEACTIVATE_CMDコマンド以外のRFST_IDLE状態への遷移を引き起こす事象が発生した場合には、確定ターゲットを解除する。この場合、ルーティング状態は、ニュートラル状態に遷移する。なお、CORE_RESET_CMDコマンドは、所定の規格に準拠したリセットを指示するためのコマンドである。
【0135】
以上、ターゲット解除処理について説明した。
【0136】
[コマンド対応処理]
次に、
図22のフローチャートを参照して、NFCリーダ12からのコマンドを受信した際に、CLF31にて実行されるコマンド対応処理について説明する。
【0137】
ステップS101において、パケット受信処理部101は、NFCリーダ12からコマンドを受信したか否かを判定する。ステップS101において、コマンドを受信したと判定された場合、処理は、ステップS102に進められる。
【0138】
ステップS102において、パケット受信処理部101は、受信したコマンドがSENSF_REQコマンドであるか否かを判定する。ステップS102において、SENSF_REQコマンドであると判定された場合、処理は、ステップS103に進められる。
【0139】
ステップS103において、パケット受信処理部101は、SENSF_REQコマンドを、各ターゲットにブロードキャスト送信する。
【0140】
ステップS104において、パケット受信処理部101は、SENSF_REQコマンドを受信したターゲットから返信されるSENSF_RESコマンドを受信する。
【0141】
ステップS105において、パケット受信処理部101は、応答のあったターゲットの中から、応答の優先度に従って、応答を返信する確定ターゲットの候補を選択する。なお、前述の通り、応答の優先度は、初期状態では、P2Pアプリ41が最も高い優先度となる。
【0142】
ステップS106において、パケット受信処理部101は、ステップS105にて選択した確定ターゲットの候補からのSENSF_RESコマンドを、NFCリーダ12に送信する。これにより、NFCリーダ12は、NFCデバイス11からのSENSF_RESコマンドを受信し、当該コマンドに応じた処理を行う。
【0143】
一方、ステップS102において、受信したコマンドがSENSF_REQコマンド以外のコマンドであると判定された場合、処理は、ステップS107に進められる。
【0144】
ステップS107において、パケット受信処理部101は、現在のルーティング状態がニュートラル状態であるか否かを判定する。ステップS107において、現在のルーティング状態がニュートラル状態であると判定された場合、処理は、ステップS108に進められる。
【0145】
ステップS108において、パケット受信処理部101は、ニュートラル状態における受信パケットの処理を行う。
【0146】
ここで、
図23のフローチャートを参照して、
図22のステップS108に対応するニュートラル状態における受信パケットの処理について説明する。
【0147】
ステップS131において、パケット受信処理部101は、ニュートラル状態における受信パケットの処理を行う。当該受信パケット処理では、前述した
図11及び
図12で説明したように、コマンドコードルーティング、プロトコルルーティング、及びテクノロジールーティングによって、受信パケットの評価が行われ、その評価結果に応じて、確定ターゲットが選択される。
【0148】
また、ルーティング状態管理部102は、確定ターゲットが選択された場合、ルーティング状態を、現在のニュートラル状態から、P2Pセレクト状態又はT3Tセレクト状態に遷移させる。
【0149】
ステップS132において、パケット受信処理部101は、NFCリーダ12に対する直前の応答として、P2Pアプリ41のSENSF_RESコマンドの応答をしたか否かを判定する。ステップS132において、直前にP2Pアプリ41のSENSF_RESコマンドの応答をしたと判定された場合、処理は、ステップS133に進められる。
【0150】
ステップS133において、パケット受信処理部101は、ステップS131の処理によって、P2Pアプリ41が確定ターゲットに選択されたか否かを判定する。ステップS133において、P2Pアプリ41が確定ターゲットに選択されなかったと判定された場合、処理は、ステップS134に進められる。
【0151】
ステップS134において、優先度管理部103は、優先度の変更を行う。すなわち、この場合、確定ターゲットの候補として選択されたP2Pアプリ41のSENSF_RESコマンドの応答をしたのにもかかわらず、NFCリーダ12からP2Pアプリ41に対するコマンド以外のコマンドを受信したことになるので、優先度の変更が行われる。例えば、優先度管理部103は、初期状態では最も高い優先度となるP2Pアプリ41の優先度を下げて、ESE32、UICC34、T3Tアプリ42、P2Pアプリ41の順に優先度を変更する。この場合、P2Pアプリ41の優先度は、ターゲットの中で最も低い優先度となる。
【0152】
なお、変更後の優先度の順序であるが、上記の順序に限らず、他の順序に並び替えることも可能である。例えば、ターゲットが、ESE32、UICC34、及びP2Pアプリ41からなる場合に、P2Pアプリ41が確定ターゲットに選択されなかったとき、優先度管理部103は、ESE32、UICC34、P2Pアプリ41の順となるように優先度を変更することができる。この場合に、優先度管理部103は、ESE32、P2Pアプリ41、UICC34の順となるように優先度を変更してもよい。
【0153】
また、例えば、ターゲットが、ESE32及びUICC34のうちいずれか一方しか存在しなかった場合、優先度管理部103は、P2Pアプリ41の優先度を、ESE32及びUICC34のいずれか一方の次の優先度に変更する。すなわち、ターゲットには、ESE32及びUICC34のいずれか一方又は双方が少なくとも含まれており、優先度管理部103は、P2Pアプリ41が確定ターゲットに選択されなかった場合、P2Pアプリ41の優先度を、ESE32及びUICC34のいずれか一方又は双方の次の優先度に変更する。
【0154】
さらに、優先度管理部103は、NFCリーダ12の動作シーケンスに応じて、応答の優先度を変更するようにしてもよい。
【0155】
このように、変更後の優先度の順序は、例えばターゲットの種類や運用の形態などに応じて、任意に設定されるものであり、原則として、最も高い優先度であったP2Pアプリ41の優先度が低くなるように並び替えられることになる。
【0156】
ステップS132において、直前にP2Pアプリ41のSENSF_RESコマンドの応答をしていないと判定された場合には、ステップS133及びS134はスキップされる。また、ステップS133において、P2Pアプリ41が確定ターゲットに選択されたと判定された場合には、ステップS134はスキップされる。
【0157】
ステップS134の処理が終了又はスキップされると、処理は、
図22のステップS108に戻り、それ以降の処理が行われる。
【0158】
また、ステップS107において、現在のルーティング状態がニュートラル状態ではないと判定された場合、処理は、ステップS109に進められる。
【0159】
ステップS109において、パケット受信処理部101は、現在のルーティング状態がT3Tセレクト状態であるか否かを判定する。ステップS109において、現在のルーティング状態がT3Tセレクト状態であると判定された場合、処理は、ステップS110に進められる。
【0160】
ステップS110において、パケット受信処理部101は、T3Tセレクト状態における受信パケット処理を行う。当該受信パケット処理では、前述した
図13及び
図14で説明したように、コマンドコードルーティング及びP2Pプロトコルルーティングによって、受信パケットの評価が行われ、その評価結果に応じて、確定ターゲットが選択される。
【0161】
一方、ステップS109において、現在のルーティング状態がT3Tセレクト状態でない、つまり、P2Pセレクト状態であると判定された場合、処理は、ステップS111に進められる。
【0162】
ステップS111において、パケット受信処理部101は、P2Pセレクト状態における受信パケット処理を行う。当該受信パケット処理では、前述した
図15で説明したように、受信パケットの評価は行われず、受信パケットは、常にP2Pアプリ41に送信される。
【0163】
ステップS101においてコマンドを受信していないと判定された場合、又はステップS108,S110,S111の処理が終了した場合、処理は、ステップS112に進められる。
【0164】
ステップS112において、優先度管理部103は、
図23のステップS134にて応答の優先度の変更を行ったか否かを判定する。ステップS112において、優先度の変更を行ったと判定された場合、処理は、ステップS113に進められる。
【0165】
ステップS113において、優先度管理部103は、所定の期間を経過したか否かを判定する。ステップS113において、所定の期間を経過したと判定された場合、処理は、ステップS114に進められる。
【0166】
ステップS114において、優先度管理部103は、応答の優先度を初期状態に戻して、P2Pアプリ41の優先度が最も高くなるように変更する。
【0167】
なお、ステップS112において優先度を変更していないと判定された場合、ステップS113において所定の期間を経過していないと判定された場合、又はステップS114の処理が終了した場合、処理は、ステップS101に戻り、それ以降の処理が繰り返される。
【0168】
以上、コマンド対応処理について説明した。コマンド対応処理によれば、ルーティング状態に応じた受信パケットの処理プロセスが行われる。また、ニュートラル状態における受信パケットの処理プロセスでは、受信パケットの評価が行われ、P2Pアプリ41のSENSF_RESコマンドの応答をしたのにもかかわらず、P2Pアプリ41が確定ターゲットに選択されなかった場合には、応答の優先度の変更が行われ、P2Pアプリ41の優先度が下げられる。
【0169】
[本技術を適用したコンピュータの説明]
前述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【0170】
図24は、前述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【0171】
コンピュータ200において、CPU(Central Processing Unit)201,ROM(Read Only Memory)202,RAM(Random Access Memory)203は、バス204により相互に接続されている。
【0172】
バス204には、さらに、入出力インタフェース205が接続されている。入出力インタフェース205には、入力部206、出力部207、記憶部208、通信部209、及びドライブ210が接続されている。
【0173】
入力部206は、キーボード、マウス、マイクロフォンなどよりなる。出力部207は、ディスプレイ、スピーカなどよりなる。記憶部208は、ハードディスクや不揮発性のメモリなどよりなる。通信部209は、ネットワークインタフェースなどよりなる。ドライブ210は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア211を駆動する。
【0174】
以上のように構成されるコンピュータ200では、CPU201が、例えば、記憶部208に記憶されているプログラムを、入出力インタフェース205及びバス204を介して、RAM203にロードして実行することにより、前述した一連の処理が行われる。
【0175】
コンピュータ200(CPU201)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア211に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線又は無線の伝送媒体を介して提供することができる。
【0176】
コンピュータ200では、プログラムは、リムーバブルメディア211をドライブ210に装着することにより、入出力インタフェース205を介して、記憶部208にインストールすることができる。また、プログラムは、有線又は無線の伝送媒体を介して、通信部209で受信し、記憶部208にインストールすることができる。その他、プログラムは、ROM202や記憶部208に、あらかじめインストールしておくことができる。
【0177】
なお、コンピュータ200が実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0178】
ここで、本明細書において、コンピュータ200に各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
【0179】
また、プログラムは、1のコンピュータにより処理されるものであってもよいし、複数のコンピュータによって分散処理されるものであってもよい。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであってもよい。
【0180】
さらに、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
【0181】
なお、本技術の実施の形態は、前述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【0182】
例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【0183】
また、前述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
【0184】
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
【0185】
なお、本技術は、以下のような構成をとることができる。
【0186】
(1)
少なくともP2P(Peer to Peer)のアプリケーションを含む複数のターゲットと、
前記複数のターゲットの中から、外部装置の通信対象となる確定ターゲットを選択して、前記外部装置との近接通信を行うフロントエンドと
を備え、
前記フロントエンドは、
前記外部装置から、System Codeを含む第1のコマンドを受信する受信部と、
前記第1のコマンドを前記複数のターゲットに送信する送信部と、
前記P2Pのアプリケーションに関する前記確定ターゲットの優先度を管理する優先度管理部と
を有する
通信装置。
(2)
前記送信部は、前記外部装置から前記第1のコマンドを受信した場合、前記第1のコマンドを、前記複数のターゲットにブロードキャスト送信する
前記(1)に記載の通信装置。
(3)
前記優先度管理部は、
前記確定ターゲットの候補を選択するにあたり前記P2Pのアプリケーションを最も優先度の高いターゲットとし、
前記P2Pアプリケーションが前記確定ターゲットの候補として選択された場合に、前記P2Pのアプリケーションが前記確定ターゲットに選択されなかったとき、前記確定ターゲットの候補の選択における前記P2Pアプリケーションの優先度を下げる
前記(1)又は(2)に記載の通信装置。
(4)
前記複数のターゲットのうち、前記P2Pのアプリケーションを除く他のターゲットは、セキュアエレメント及びUICC(Universal Integrated Circuit Card)の少なくとも一方を含んでおり、
前記優先度管理部は、前記P2Pのアプリケーションの優先度を、前記セキュアエレメント及び前記UICCの少なくとも一方の次の優先度に変更する
前記(3)に記載の通信装置。
(5)
前記優先度管理部は、前記セキュアエレメント、前記UICC、前記P2Pのアプリケーションの順となるように優先度を変更する
前記(4)に記載の通信装置。
(6)
前記優先度管理部は、前記セキュアエレメント、前記P2Pのアプリケーション、前記UICCの順となるように優先度を変更する
前記(4)に記載の通信装置。
(7)
前記他のターゲットは、さらに、所定の規格に準拠した所定のアプリケーションを含んでおり、
前記優先度管理部は、前記セキュアエレメント、前記UICC、前記所定のアプリケーション、前記P2Pのアプリケーションの順となるように優先度を変更する
前記(4)に記載の通信装置。
(8)
前記優先度管理部は、前記P2Pのアプリケーションの優先度を、最も低い優先度に変更する
前記(1)乃至(4)のいずれかに記載の通信装置。
(9)
前記優先度管理部は、前記外部装置の動作シーケンスに応じて、優先度を変更する
前記(1)乃至(4)のいずれかに記載の通信装置。
(10)
前記優先度管理部は、前記P2Pのアプリケーションの優先度を変更した場合に、あらかじめ設定された所定の期間を経過したとき、前記P2Pのアプリケーションの優先度を、最も高い優先度に戻す
前記(1)乃至(4)のいずれかに記載の通信装置。