説明

ホストデバイスと通信するためのトークン、それに対応する通信システム及び方法

本発明はホストデバイス(210)と通信するためのトークン(10)に関する。トークンは、少なくとも1つのUSB通信チャネル(230、234、236、238)を通じて通信する手段を備える。本発明によればトークンは、トークンの少なくとも1つの能力を特定するよう要求するコマンドを、少なくとも1つのUSB通信チャネル(230、234、236、238)を通じて受信することができ、また受信コマンドへの回答として、HID用のUSBデバイスクラスをサポートするトークンであると特定する応答を、少なくとも1つのUSB通信チャネル(230、234、236、238)を通じて送信することができる。本発明は、これに対応する通信システム及び方法にも関する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は全般的に、ホストデバイスと通信するためのトークンに関する。
本明細書によれば、トークンは、外界と通信し特にホストデバイスと協働する携帯スマートオブジェクトであれば、いかなるものでも良い。
さらに、本発明はホストデバイスとトークンとを含む通信システムに関する。
また、本発明はホストデバイスとトークンとの間の通信方法にも関する。
本発明は、トークンである加入者識別モジュール(SIM)カードと呼ばれるスマートカードが、ホストデバイスである携帯電話と協働する、移動無線通信の分野に特に適用できる。
【背景技術】
【0002】
公知のように、ユーザが携帯電話のキーボードで、SIMカードのサポートするアプリケーションを選択すると、SIMカードは直ちにプロアクティブ(proactive)セッションを実行することができる。即ち、SIMカードは携帯電話に向けて少なくとも1つのコマンドを発信することができる。
【0003】
プロアクティブセッションは、携帯電話がマスタ、SIMカードがスレーブとなる従来のマスタスレーブ機構をとらず、マスタであるSIMカードがスレーブである携帯電話に、いわゆるプロアクティブコマンドを送信することで、携帯電話からの動作を要求する通信を開始することを特徴とする。
【0004】
SIMカードのこうしたプロアクティブ能力(capability)は、欧州電気通信標準化機構(ETSI)技術仕様書(TS)102 223の8.2.0版(2009−01)をはじめとする複数の標準仕様書に記載されており、カードアプリケーションツールキット(CAT)として知られている。このCATは、SIMカードにより提供されるアプリケーションプロトコルデータ単位(APDU)アプリケーションの実行を可能にする。
【0005】
APDUアプリケーションを実行するために従来のマスタスレーブ機構を解消できるよう、携帯電話は、SIMカードにダミーコマンドを送信することで定期的にポーリングを行い、携帯電話により実行されるべきプロアクティブコマンドをSIMカードが有するか否かを確認する。
【0006】
またSIMカードは絶えず進化しており、ユニバーサルシリアルバス(USB)SIMカードというSIMカードに至っては、ユニバーサルシリアルバス(USB)通信チャネルを備え、1Mbps以上のデータレートで携帯電話とUSB SIMカードとの間でデータ交換ができる。
【0007】
さらにUSB SIMカードは、例えば USB SIMカードに内蔵されたウェブサーバを通じてサービスにアクセスできるよう、APDU適用(applicative)層以外にも1つ以上の別の適用層をサポートしている。したがって、前述した別の適用層上で、USB SIMカードにプロアクティブコマンドの送信を要求するイベントが発生すると、USB SIMカードは、プロアクティブ能力にアクセスするためAPDU適用層にジャンプしなければならない。
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、USBカードのプロアクティブ能力にアクセスするこのような方法は、効率的ではない。なぜならこの方法では、APDU適用層に関するソースコードの重複、又はAPDU適用層におけるポーリング待機を伴うからである。そのため、USB SIMカードの、より一般化して言えばUSBトークンの、より効率的なプロアクティブ能力を有する適用層の提供が必要とされている。
【課題を解決するための手段】
【0009】
本発明は、ホストデバイスと通信するトークンを提供することで、上記の必要を満たす解決方法を提示する。トークンは少なくとも1つのUSBチャネルを通じて通信する手段を有する。
【発明の効果】
【0010】
本発明によればトークンは、トークンの能力(capability)を少なくとも1つ特定するよう要求するコマンドを、少なくとも1つのUSB通信チャネルを通じて受信し;受信コマンドに対する回答として、ヒューマンインタフェースデバイス(HID)用のUSBデバイスクラスをサポートすることを特定する応答を、少なくとも1つのUSB通信チャネルを通じて送信することができる。
【0011】
本発明は、トークンが、その能力について要請されたとき、HID用のUSBデバイスクラスをサポートしていることを、USBリンクを通じて伝達できるように構成されていることを、主な特徴とする。
トークンは、少なくとも1つのマイクロプロセッサをデータ処理手段として備え、少なくとも1つのメモリを備え(又は少なくとも1つのメモリに接続され)、さらに少なくとも1つの入出力通信インタフェースを備えている電子デバイスであれば、いかなるものでもよい。
【0012】
トークンは、USBセキュア・リムーバブル・モジュール(SRM)の電子媒体であればいかなるものでもよい。例えば、USBスマートカード、USBスマートドングルや、ホストデバイスに好ましくは着脱可能に固定されるチップなどの形態をとってもよい。トークンは、フォームファクタの異なるいかなる電子媒体であってもよい。
【0013】
ホストデバイスに対しトークンがHID用のUSBデバイスクラスであると自己提示することなど、当業者は想到しえなかったであろう。実際、HID用のUSBデバイスクラスはその名の通り、直接人間と接触する、つまり人間と交信する装置を対象とするものであり、一方トークンは公知の通り、人間とは直接やり取りせず、他の装置とのみ交信するものである。
【0014】
HID用のUSBデバイスクラス規定には、勿論、キーボード、マウス、ポインティングデバイス、あるいはジョイスティックなど、人間からの入力を受け人間に出力を返せるものが含まれる。
【0015】
本発明の解決方法において、ホストデバイスは、USB HID周辺装置であるトークンにより開始されたサービスを享受するにあたり、既存の標準USB HIDドライバを用いる。そのため当該解決方法では、新たなUSBクラスドライバの開発や、既存の標準USBクラスドライバの変更が不要となる。
【0016】
さらに上記従来の方法とは対照的に、本願の解決方法では、APDU適用層など、別のプロアクティブ適用層に関するソースコードが重複することや、ホストデバイスが開始するポーリングを適用層で待機することも回避できる。このような利点は、トークンがサポートする適用サービスの数に関わらず共通である。
【0017】
更なる側面によれば、本発明は通信システムでもある。この通信システムは、ホストデバイスとトークンとを含む。トークンとホストデバイスは、少なくとも1つのUSB通信チャネルを通じて、それぞれホストデバイス又はトークンと通信する手段を備えている。
【0018】
本発明によればトークンは、トークンの能力を少なくとも1つ特定するよう要求するコマンドを、少なくとも1つのUSB通信チャネルを通じてホストデバイスから受信し;受信コマンドに対する回答として、HID用のUSBデバイスクラスをサポートするトークンであると特定する応答を、少なくとも1つのUSB通信チャネルを通じて、ホストデバイスに送信することができる。
【0019】
ホストデバイスは、USB HID周辺装置であるトークンと交信し、トークンからプロアクティブコマンドを通じて要求された動作を実行する。さらにホストデバイスは、要求された動作の実行結果又は実行計画を(トークンに)送信することで、要求に応答できる。
【0020】
更なる側面によれば、本発明はホストデバイスとトークンとの間の通信方法でもある。トークンとホストデバイスは、それぞれホストデバイス又はトークンと、少なくとも1つのUSB通信チャネルを通じて通信する手段を備える。
【0021】
本発明によれば、ホストデバイスは、トークンの能力を少なくとも1つ特定するよう要求するコマンドを、少なくとも1つのUSB通信チャネルを通じてトークンに送信する。トークンは受信コマンドに対する回答として、HID用のUSBデバイスクラスをサポートするトークンであると特定する応答を、少なくとも1つのUSB通信チャネルを通じてホストデバイスに送信する。
【0022】
USB HIDインタフェースを使用することで、トークンはプロアクティブ能力を下位層で利用できるようになる。このプロアクティブ能力は、インターネットプロトコルインタフェース、APDUインタフェース、マスストレージインタフェース、及び/又はその他のインタフェースなどの、あらゆる上位(適用(applicative))層と容易に共有することができる。そのため、各層それぞれに通信オーバーヘッドを設けなくてよい。
【0023】
トークンは、USB HID周辺装置として用いられることで、下位層において“プロアクティブ”能力を提供する。すると結果的に、プロアクティブ能力を必要とするアプリケーションの性質によらず、少なくとも1つのUSB通信チャネルを通じて、プロアクティブ能力が実装される。
【0024】
個々のプロアクティブコマンドとそれに対応する応答とは、トークンからホストデバイスへのデータを表すHIDレポートディスクリプタに関連づけられている必要がある。これにより、各HIDレポートを、プロアクティブ機能又はトークンにより開始されるサービスとして、ホストデバイスによる対応の使用に関連づけることができる。
【図面の簡単な説明】
【0025】
本発明のさらなる特徴や利点は、好ましい実施例の詳細を読めば、より明確に把握できる。この実施例は、以下の図面との関連において、例示的かつ非限定的なものとして提示される:
【図1】ホストデバイスに対し、USB HID周辺装置であると示して振舞うことが可能なトークンであるUSB SIM型スマートカードの、一実施例の簡略図である。
【図2】ホストデバイスである携帯電話と図1のトークンとを含む通信システムの、一実施例の簡略図である。このシステムにおいてホストデバイスは、トークンからの要求、又はホストデバイスの主導による動作を実行することができる。
【図3】図2の通信システムにおけるホストデバイスとトークンとの間のメッセージフローを3例図示したものである。ここではトークンからのHIDレポートが、ホストデバイスで実行される動作をトリガするために用いられている。
【図4】特に図1のトークンとホストデバイスであるUSB On−The−Go電話との間における、メッセージフローの別の実施例を図示したものである。このときトークンはホストデバイスのサービスを制御して利用することができ、これには外部装置も関与している。
【発明を実施するための形態】
【0026】
以下、本発明の記載においては、特にUSB標準仕様書2.0、又はHID標準仕様書1.11版対応のUSBデバイスクラス規定で定義されている、装置やメッセージの名称を参照している。
以下では、本発明のトークンが、ホストデバイスである携帯電話に接続するUSB SIM型スマートカードである場合について検討している。
【0027】
トークンは、USB SIM型スマートカードのかわりに、例えばUSBドングル、USBスマートカード、及び/又は異なるフォームファクタを有する、その他あらゆる電子媒体であってもよい。さらに別の実施例によれば、トークンは、ホストデバイスに、可能であれば着脱できる方法で固定されるチップ、又はホストデバイス内にはんだ付けされるチップである内蔵セキュアエレメント等であってもよい。
【0028】
同様にホストデバイスも、携帯電話ではなく、例えばセットアップボックス、デスクトップコンピュータ、ラップトップコンピュータ、メディアプレーヤ、ゲーム機、ハンドセット及び/又は携帯情報端末(PDA)であってもよい。
なお、本発明の以下の実施例は、単に例示を目的とするものであって、本発明の範囲を限定するためのものではない。
【0029】
図1は、トークンであるUSB SIM型スマートカード10内のチップ110に組み込まれた機能的コンポーネントを概略的に示したものである。
このようなトークンはパーソナルコンピュータ(PC)と比較して、例えばデータ処理能力やメモリ容量が低いなど、演算手段の性能が限られた装置である。
【0030】
トークンは一般的なHIDとは対照的に、直接人間と接触することはない。
なぜなら、人間はホストデバイスのマン−マシンインタフェースを通じて交信し、トークンにアクセスするからである。
USB SIM型スマートカード10は、ホストデバイスである携帯電話と交信するためのものである。
【0031】
簡明を期すため、携帯電話とUSB SIM型スマートカードを、以下ではそれぞれ電話、及びUSBカードと呼ぶ。
USBカード10は、1つの電話(又はハンドセット)に対応付けられた固有の番号である、国際移動体加入者識別番号(IMSI)、及びサービス加入者鍵Kiを安全に記憶している。
【0032】
IMSIは、例えばGSM(登録商標)(“Global System for Mobile communications”の頭字語)、UMTS(“Universal Mobile Telecommunication System”の頭字語)及び/又はCDMA(“Code Division Multiple Access”の頭字語)ネットワークなどの、少なくとも1つの移動無線通信ネットワークとの関連において、1人の加入者を特定するために用いられる。
【0033】
サービス加入者鍵Kiは、(ユーザにより個人識別番号(PIN)として付与されたデータがUSBカードにより照合され、)電話ユーザがUSBカードにより認証されたときのみ解除され使用される。サービス加入者鍵Kiは、前記移動無線通信ネットワークを通じて提供されるサービスを、加入者が利用できるよう認証するために用いられる。
【0034】
USBカード10は例えば、GSMネットワーク用のUSB SIMスマートカード、UMTSネットワーク用の汎用加入者識別モジュール(USIM)などのネットワークアクセスアプリケーションを含む、ETSI TS 102 221に記載のリムーバブル・ユーザ・アイデンティティ・モジュール(RUIM)又は汎用集積回路カード(UICC)、CDMAネットワーク用のCDMA加入者識別モジュール(CSIM)、IPマルチメディアサブシステム(IMS)用のインターネット・プロトコル・マルチメディア・サービス加入者識別モジュール(ISIM)などでありうる。
【0035】
当然ながら、上記のリストは網羅的なものではなく、単に例示を目的としたものであり、本発明の範囲を限定するためのものではない。
USBカード10のチップ110は、データ処理手段として少なくとも1つのマイクロプロセッサ12と、揮発性及び不揮発性メモリ14と、少なくとも1つの入出力(I/O)インタフェース16とを備えており、これらは全てデータ及び制御用内部バス13を通じて接続されている。
【0036】
I/Oインタフェース16は、前記チップ110の外部、即ちホストデバイスである少なくとも1つの電話と、対応の電話I/Oインタフェースを通じてデータを送受信するために用いられる。
I/Oインタフェース16は、USB標準仕様書に準じた少なくとも1つのUSB通信チャネルを物理リンクとして備えていてもよい。
【0037】
USB通信チャネルは、USBデフォルトパイプとしてUSBコントロールパイプ“0”(ゼロ)を備え、論理リンクとしてUSBコントロールパイプ、USBインタラプトINパイプ、1つ以上のUSBバルク転送パイプ、及び/又はUSBインタラプトOUTパイプを備える。
【0038】
さらにI/Oインタフェース16は、例えばAPDU通信チャネル、インターネットプロトコル(IP)通信チャネル、ハイパーテキスト・トランスファ・プロトコル(HTTP)通信チャネル、及び/又はマスストレージ通信チャネルなどの、1つ以上の別の通信チャネルを備えうる。
【0039】
マイクロプロセッサ12は、USBカード10がサポートするチップメモリ14に記憶されたあらゆるアプリケーションを実行する。
マイクロプロセッサ12は、チップ110の全てのコンポーネントを制御し、これらと通信する。例えば、メモリ14と通信し、読出しや、可能であれば書き込みも行なう。
【0040】
メモリ14は、1つ以上のEEPROM(“Electrically Erasable Programmable Read−Only Memory”の頭字語)と、1つ以上のROM(“Read Only Memory”の頭字語)と、1つ以上のフラッシュメモリとからなる不揮発性メモリ142、及び/又は、例えば1つ以上のRAM(“Random Access Memory”の頭字語)など、異なる種類の別のメモリからなる揮発性メモリ144により構成されうる。
【0041】
本発明によれば、USBカード10のチップ110は、外部装置と交信するために、少なくとも1つのUSB通信チャネルを通じて外部、特にUSB電話とやり取りできるように構成されている。
【0042】
USBカード10にUSB HIDデバイスクラスを使用することによる解決方法では、特にUSBカード10がマスタ役、USB電話がスレーブ役を担うとき、USB電話とUSB HID周辺装置であるUSBカード10との間に確立されるマスタスレーブ関係を活用することができる。
【0043】
これにより、USBカード10は少なくとも1つのプロアクティブコマンド(即ち、USBカード10から開始するコマンド)を電話に送信することができる。電話は、このプロアクティブコマンドを解釈し、要求された対応の動作を行うことでコマンドを実行できる。
【0044】
チップ110は特定のHID使用テーブル(usage table)を記憶しうる。HID使用テーブルは、USBカード10とそのホストデバイスとの間で交換されうる各種レポートの意味(“使用(usage)”)を定義する。より正確には、HID使用テーブルは、初めにUSBデバイスであるUSBカード10からホストデバイスに送信される各種レポートのフォーマットである。
【0045】
HID使用テーブルは基本的に、各レポートを1つ以上の対応の動作に関連付けるため、使用されるディスクリプタに割り当てられた使用タグ(usage tag)を記述するものである。
本発明の範囲内における、ディスクリプタとイベントへの使用割り当てについては、ETSI TS 102 223 8.2.0版(2009−01)の、特に段落6及び6.4に定義されるプロアクティブコマンド、及び/又は、その他可能な追加のプロアクティブコマンドを参照している。
【0046】
HID使用テーブルによって、ホストデバイスである電話は、USB HID周辺装置のチップ110から受信した特定のデータを、その意味、即ちその目的の使用と合致させることができる。
HID使用テーブルは少なくとも1つのHIDレポートを含む。各HIDレポートは、USBカード10がサポートするプロアクティブコマンドに対応した情報を伝達する。
【0047】
チップ110が特定のHID使用テーブルに関するデータを、電話に伝達できるようにしても良い。
電話が特定のHID使用テーブルを(場合によってはUSBカード10から受信して)取得すると、電話はUSB HID周辺装置であるUSBカード10からの少なくとも1つのHIDレポートとして、データを解釈できるようになる。
【0048】
USBカード10はUSB通信チャネルを通じ、チップ110のいずれかのI/Oインタフェース16で発生したイベントについて、プロアクティブコマンドとして、HIDレポートを電話に送信する。
USB通信チャネルはUSBインタラプト(IN)パイプをサポートしうる。USBインタラプト(IN)パイプにより、USB HID周辺装置は、上記のようなHIDレポートを、ホストである電話にUSB HID周辺装置の主導で送信できるようになる。
【0049】
このようにHIDレポートの送信をトリガすることで、USBカード10がプロアクティブコマンドを有するか否かを電話が自律的に確認するために、電話が上位層で定期的なポーリングを実行することを回避できる。
USB通信チャネルがUSBインタラプト(IN)パイプを全くサポートしていない場合でも、例えばUSBデフォルトパイプ、即ちUSBコントロールパイプ“0”などの、別のUSB通信パイプで、下位層ポーリング機構が実行されうる。
【0050】
このような下位層ポーリング機構は、例えばAPDU適用層などの適用層、即ち上位層で実行されるポーリング機構と比べて、オーバーヘッドを大幅に軽減することができる。
電話は、プロアクティブコマンドとしてデータを解釈するとすぐに、このプロアクティブコマンドを、ホストデバイスである電話が実行すべき1つ以上の対応動作に関連付ける。
【0051】
動作としては、ETSI TS102 223中で特定されている、CAT(“Card Application Toolkit”の頭字語)として知られる動作、例えば:
−電話のマン−マシンインタフェースを通じてユーザが選択できるメニューを表示する;
−電話のマン−マシンインタフェースを通じた交信をユーザに要求する;
【0052】
−ショートメッセージサービス(SMS)などのメッセージを、電話が接続している移動無線通信ネットワークに送信する;及び/又は
−USBカード10から電話に与えられたプロアクティブコマンド、及びUSBカード10から電話に送信するべきプロアクティブコマンドを検索するよう電話に要求する;
などの少なくとも1つの動作でありうる。
【0053】
さらに動作は、以下:
−特定のイベントが発生したとき、USBカード10に通知する;
−ホストデバイス自体に内蔵又は接続されている表示画面に、情報の少なくとも一部を表示する;
−プロアクティブコマンド内で、又はプロアクティブコマンドによって特定される別の加入者に、ホストデバイス及び可能な場合には移動無線通信ネットワークを通じてメッセージを送信する;
【0054】
−プロアクティブコマンド内で、あるいはプロアクティブコマンドにより特定され、USBカード10内に記憶されている少なくとも1つのファイルを、例えばマスストレージインタフェースなどの、プロアクティブコマンド内で、あるいはプロアクティブコマンドにより特定される特定のインタフェースを通じて取り出す;
−インターネットプロトコルインタフェースなど、プロアクティブコマンド内で、あるいはプロアクティブコマンドにより特定される特定のインタフェースを通じて、1つ以上の所定のオペレーションを、USBカード10から、又はこれを通じて開始されるか、USBカード10によりサポートされるウェブサーバアプリケーション上で実行するように、USBカード10に要求を送信する;
などの動作の少なくとも一部でありうる。
【0055】
上記の動作リストは、USBカード10がホストである電話に要求できる動作の数を限定することを意図したものではない。
電話は、要求された動作を実行してしまうとすぐに、USBカード10に応答を返信する。
【0056】
USBカード10は予めプロアクティブコマンドにおいて、特定のUSB通信チャネル、又はIP通信チャネルなどの別の利用可能な通信チャネル(又はインタフェース)を通じて応答を返信するよう要求しておくこともできる。
このようにして、応答のデータ量又は所望のレイテンシに応じて、USBバルク転送パイプなど最適なUSB通信パイプを用いることにより、下位層のプロアクティブ機能(functionality)又は能力を提供するのに用いられるUSBインタラプトパイプ又はUSBコントロールパイプのオーバーロードを避けることができる。
【0057】
本発明のUSBカード10の大きな利点は、ホストである電話とは独立した方法でプロアクティブ能力を提供できることである。ただし前提として、電話は、接続されたUSBデバイスをUSB HID周辺装置として認識でき、あらゆるHIDレポートを、電話が取得している対応のプロアクティブコマンドとして、即ち、電話の製造者に依らない方法で解釈できるものとする。
【0058】
図2の通り、通信システム20は、USBカード10と電話210とを含み、電話210は少なくとも1つのUSB通信チャネルを通じてUSBカード10に接続されている。
USBカード10は、挿入先の電話210から挿脱可能であってもよい。
図2は、電話210と交信するために、下位層で実行されるUSBカード10のプロアクティブ能力を利用するアプリケーション各種を体系的に示したものである。
【0059】
以下USBカード10は、ETSI TS 102 223に定義されるようなプロアクティブサービスをサポートするために、HIDクラスを他のサポートするクラスに加えて用いる、ETSI TS 102 600に準じたUSBカードなどのようなUSBコンポジットデバイスとして自己提示するものとする。
【0060】
USBカード10は、好ましくはETSI TS 102 223 8.2.0.版(2009−01)のCATをサポートする。ETSI TS 102 223 8.2.0.版(2009−01)は、特に使用されうるプロアクティブコマンドとイベントのため、本明細書に参照として組み込まれる。一方で、その他のプロアクティブコマンド及び/又はイベントを定義しCATプロアクティブコマンドに追加することもできる。
【0061】
電話210もまた、データ処理手段である電話マイクロプロセッサと、電話メモリと、少なくとも1つの入出力インタフェースを備える(図示せず)。
電話210は、演算手段としてはUSBカード10よりも優れた性能を有する。
電話210は、USBカード10と協働できるように、USB HID周辺装置であるUSBカード10とデータ交換を行なうためのUSB HIDドライバ222と、USBカード10のプロアクティブ能力に対応するためのHID使用テーブル223とを、電話メモリ内に備える。
【0062】
HID使用テーブル223は遠隔サーバ(図示せず)から付与しておいてもよく、この遠隔サーバは、サーバ自体によって、又は移動無線通信オペレータなどのサービスオペレータによって管理される。
電話210は、電話メモリ内にCATプロアクティブコマンドマネージャ212を格納してサポートしており、電話210がUSBカード10から受信しうる全てのプロアクティブコマンドを管理できる。
【0063】
電話210は、APDUに基づくアプリケーション214、インターネットプロトコルに基づくアプリケーション216、及び/又はマスストレージプロトコルに基づくアプリケーション218など、複数のアプリケーションを電話メモリ内にサポートしうる。
【0064】
異なるプロトコルに基づくこれら各種のアプリケーションは、USBスマートカード集積回路装置(ICCD)ドライバ224(ETSI TS 102 600に記載)、イーサネット(登録商標)エミュレーションモデル(EEM)用の標準イーサネットUSB通信クラスのデバイスドライバ226(ETSI TS 102 483に記載)、及び/又はマスストレージドライバ228など、それぞれ異なる独立した適用インタフェースドライバを通じて、下位層において通信する。
USBカード10は、1つ以上のUSB通信チャネルを介して電話210と通信し、協働する。
【0065】
USB通信機能は、USBバス上での高頻度な下位層ポーリング機構に基づいている。このUSBバス上に、所望の通信での必要に応じて、各種のUSB通信チャネル又は“パイプ”が確立される。このパイプの中でも、USB HID周辺装置からホストデバイスへのUSBインタラプトパイプ、即ちUSBインタラプトINパイプ232は、ホストデバイスに、コンピュータマウスの動きなどのユーザのインタラクションやイベントを知らせるために、ユーザインタフェースによって用いられる。
【0066】
このように人間と交信する装置をサポートするのに用いられる標準USBクラスはHIDクラスである。HIDクラスはまた、ホストデバイスからUSB HID周辺装置へのUSBインタラプトOUTパイプ234の使用もサポートする。
【0067】
いわゆるUSBコンポジットデバイスであるUSBカード10は、USB上で定義された複数の独立した適用インタフェース、例えば
−APDUインタフェース114;
−インターネットプロトコル(IP)インタフェース116;及び
−マスストレージ(MS)インタフェース118;
などをサポートする。
【0068】
これらの各適用インタフェースは、電話側の対応ドライバと協働するために、少なくとも1つのUSB通信チャネルを使用することができる。
APDUインタフェース114は、USBコントロールパイプとも呼ばれる双方向のUSBデフォルトエンドポイント“0”230を用いて、電話210がサポートするUSBスマートカードICCDドライバ224とやり取りすることができる。
【0069】
インターネットプロトコルインタフェース116は、双方向のUSBバルク転送パイプ236を用いて、電話210がサポートするUSBイーサネットエミュレーションモデルドライバ226とやり取りすることができる。
同様に、マスストレージインタフェース118は、別の双方向のUSBバルク転送パイプ238を用いて、電話210がサポートするUSBマスストレージドライバ228とデータ交換することができる。
【0070】
USBカード10は、複数のUSBデバイスクラスの中からHID用のUSBデバイスクラスをサポートするUSBコンポジットデバイスであることを、電話210に対して宣言するよう構成されている。
また他の実施例によれば、USBカード10は、HID用のUSBデバイスクラスをサポートするUSBコンパウンドデバイスであることを、電話210に宣言するよう構成されている。
【0071】
USB HIDデバイスクラスが、本発明によればプロアクティブ能力イネーブラとして、USB周辺装置により(他のUSBデバイスクラス、又は非接触インタフェースなどの他の通信チャネルを通じて)提供される他のサービスのために動作すると考えられることに、留意されたい。
即ち、他のHIDデバイスの場合と同様、USB HIDデバイスクラスは、必ずしもデバイスの自立的な機能を表すわけではない。
【0072】
したがって、トークンであるUSBカード10上でUSB HIDクラスをサポートする利点は主に、他のUSBデバイスクラスとの協働によって、又はIP通信チャネルなど他の物理的通信チャネルの存在によって生じる。
【0073】
自明の通り、USBコンポジットデバイスとUSBコンパウンドデバイスの双方とも、複数のUSBデバイスクラスをサポートしている。USBコンポジットデバイスの特定のUSBデバイスクラスは、専用アドレスを通じてホストデバイスからアクセスされる。一方、USBコンパウンドデバイスのUSBデバイスクラスは、全てのUSBデバイスクラスと共有のただ1つのアドレスを介してホストデバイスからアクセスされる。
【0074】
HID用のUSBデバイスクラスをサポートすることを宣言するために、USBカード10は、USBカード10のサポートする機能又はサービスの特定を要求するコマンドを、電話210からUSBデフォルトエンドポイント“0”230などの1つのUSB通信チャネルを通じて受信できるように構成されている。
USBカード10は、このようなコマンドを受信し解釈すると、HID用のUSBデバイスクラスをサポートしていることを示す応答を、例えばUSBデフォルトエンドポイント“0”230などのUSB通信チャネルを通じて、電話210に返信することができる。
【0075】
USB HID周辺装置であるUSBカード10は、プロアクティブセッションを管理する手段であるプロアクティブ能力マネージャ112により、下位層においてUSBカード10のプロアクティブ能力を管理する。
USBカード10のプロアクティブ能力のマネージャ112は、USBカード10のサポートするあらゆる種類のアプリケーション、例えば、USIMやISIMに代表されるAPDUインタフェース114を用いたAPDUアプリケーション、又はIPインタフェース116を用いたスマートカードウェブサーバ(SCWS)アプリケーションなどからアクセス可能である。
【0076】
自明の通り、USBカード10は、電話210の内部にローカルに存在するアプリケーション、及び、例えば電話210の接続する移動無線通信ネットワークに包含又は接続されるデバイスの内部などに、遠隔的に存在するアプリケーションに、ウェブサーバサービスを提供する。
SCWSアプリケーションがUSBカード10で実行されているときに、プロアクティブサービスへのアクセスが必要な場合、USBカード10はプロアクティブ能力のマネージャ112によりCATプロアクティブコマンド(又はこれに類似のもの)にアクセスできる。
【0077】
より正確には、プロアクティブ能力のマネージャ112はIPインタフェース116を通じて、例えば実行中のSCWSアプリケーションなどの適用層から、プロアクティブコマンドを利用する指令を受信する。
プロアクティブ能力のマネージャ112はこの指令を、前記プロアクティブコマンドに関連する、対応のHIDレポートに変換する。
【0078】
すると対応HIDレポートは、例えばUSBインタラプトINパイプ232などを通じて電話210(より正確にはUSB HIDドライバ222)に送信される。
USBインタラプトINパイプ232のHIDデフォルトアイドルレートは、Infinityに設定してもよい。
【0079】
電話210が、例えば電話210が接続する移動無線通信ネットワーク(図示せず)に含まれるデバイスからの呼び出しなどの特定のイベントを、インタラプトOUTパイプ234を通じてUSBカード10に送信し通知したことをうけて、前記適用層がプロアクティブサービスの呼び出しを要請することもできる。
USBカード10は、USBインタラプトINパイプ232を通じ、プロアクティブコマンドを直接送信するか、又は電話210よりUSBインタラプトOUTパイプ234を通じて通知されたイベントに応答して送信する。
【0080】
あるいは、USBカード10はHIDポーリングコマンド、即ち電話210からの‘GET REPORT’に応答して、USBコントロールパイプ230を通じてプロアクティブコマンドを返信する。
USBカード10が、異なるアプリケーションに対応した複数のUSBデバイスクラスをサポートするUSBコンポジット又はコンパウンドデバイスであるような場合でも、プロアクティブサービスは一括して下位層で実行される。
【0081】
これによりプロアクティブサービスは、関連するあらゆるデバイスクラスにとって、(上位層である各適用層のレベルで供給又は移植されるのではなく)HIDインタフェースを通じて効率的に利用できるものとなる。そのため、USBカード10がサポートする各USBデバイスクラスに対応した適用層レベルにおいて別のプロアクティブフレームワークを作成する必要はない。
【0082】
USBカード10は、プロアクティブコマンドにより要求された対応の動作を、可能性のあるクラスのうち、どのUSBデバイスクラスにおいて電話210により実行するかを特定できるという柔軟性を持ちうる。
プロアクティブコマンドを通じて要求された動作は、例えば特定のウェブサーバアプリケーション、又は特定のマスストレージファイルなど、USBカード10及び電話210のサポートする他のUSBデバイスクラスを利用してもよい。
【0083】
例えば、呼制御に関するプロアクティブコマンドは、USB EEMクラスの先頭に実装されるIPインタフェース116を用いたアプリケーションにより、接続を確立するために使用される。
他の実施例によれば、プロアクティブコマンドは、ウェブサーバコンテンツをホストの(例えば電話帳データ用の)内部メモリと同期するか、又はプロアクティブコマンド自体により指示された情報を取り出すなど、USBカード10のサポートする特定のウェブサーバアプリケーション上で、特定の動作を実行することを電話210に指示するように、定義されうる。
【0084】
例えば、メッセージを送信するため重いデータ転送を必要とする“SUBMIT MMS”(“Multimedia Message Service”の頭字語)などのプロアクティブコマンドは、USBカード10のサポートするUSBマスストレージメモリ空間に記憶されたファイルからメッセージを取り出すよう指示するように、定義されうる。
【0085】
他の実施例によると、プロアクティブコマンドにより指定された、USBカードがサポートするUSBマスストレージメモリ空間にあるファイルを取り出すためのプロアクティブコマンドは、電話210にアイドル画面動画を表示するよう定義されうる。
USBカード10が複数のUSBデバイスクラスを実装しているときは、電話210に、特定の動作を要求する受信プロアクティブコマンドへの応答を送信するために利用可能な、最適なUSB通信チャネル(又はインタフェース)を指示することが適切である。
【0086】
HID用の標準USBデバイスクラスは、他のデバイス、即ち人間と交信する周辺装置を対象とするものだが、USBカード10はこのUSB HIDクラスを上手く利用している。実際、電話210とUSBカード10の間で用いられる既存の標準USBソフトウェアスタックを変更する必要はない。
USB HID周辺装置であるUSBカード10は、USBインタラプトINパイプ232を用いる代わりに、HIDポーリング機構を利用することもできる。
【0087】
HIDポーリング機構は、USBインタラプトOUTパイプ234上の既存のハードウェアポーリング機構を用いる既存のトランスポートレベルのポーリングを使用するか、USBデフォルトパイプ“0”230上で下位USBコマンドを定期的に送信することにより、下位層において実行される。後者の場合、下位層ポーリング機構は、上位層である適用層レベルで、例えばAPDUインタフェース上でCATを用いて実行されるポーリングと比較して、プロアクティブ能力の提供に関わる通信オーバーヘッドを大幅に軽減することができる。
【0088】
プロアクティブコマンドの受信と解釈について、電話210は、CATプロアクティブコマンドマネージャ212がアドレス指定するHID使用テーブル223により、HID使用テーブルにおいて受信プロアクティブコマンドとの対応が示される動作を行なうことで、このプロアクティブコマンドを処理することができる。
【0089】
HID使用テーブル223は、異なる種類のHIDレポートが、それぞれ目的の使用に関連付けられるように記述されている。HID使用テーブル223は、電話メモリに(製造時にロードされて)最初から記憶されているか、USBカード10から、又は電話210の接続する移動無線通信ネットワークに包含又は接続されるデバイスの1つである遠隔サーバからロードされる。
【0090】
各種の実施例も可能である。
ETSI TS 102 223のプロアクティブコマンドにおける既存の実施例に対する変更を最小限にしたい場合、所望の動作に関して、サポートされたどのUSBデバイスクラスおいて動作を実行すべきかを指示するために、USBカード10から電話210へのHIDレポートタイプが1つだけ必要となる。
【0091】
このようなHIDレポートはHID“ショート”アイテムを用いて実装される。要求された動作は、特定されたUSB通信チャネル又はインタフェース上で実行される。例えばHIDレポートは、USB ICCDインタフェース上で“FETCH”コマンドを用いて取り出すべき、標準ETSI TS 102 223プロアクティブコマンド、即ち、USBカード側にあり電話210が検索すべき利用可能なプロアクティブコマンドの長さを示す。
【0092】
対応するHID使用テーブル223は、定義されたHIDレポートが、あるCATプロアクティブコマンドに対応していると示すだけでよい。
こうした実施例では、USBインタラプトINパイプ232と共に既存のCATを用いることでHIDポーリング機構を省略することができるので、新たなソフトウェアプログラムを作成しなくてよい。
【0093】
別の実施例では、直にバイト列(最長256バイト)を含む入力(即ちUSBカード10から電話210への)HIDレポートの総称型を定義できるので、電話210はこれを、プロアクティブコマンドを含むタグ・長さ・値データオブジェクトとして、即ちETSI TS 102 223の“FETCH”コマンドにより取り出すプロアクティブコマンドに当たるデータとして解釈することができる。
【0094】
総称型出力(即ち、電話210からUSBカード10への)HIDレポートは応答データ(即ち、ETSI TS 102 223に準ずる“TERMINAL RESPONSE”コマンドで送信されるデータに当たるフォーマット)を伝達するよう定義されうる。
追加の出力HIDレポートは、特にUSBコントロールパイプ230であるUSBデフォルトパイプ“0”230のみがHIDレポートの転送に利用可能であるとき、イベントを伝達するよう定義されうる。
【0095】
このような追加HIDレポートは、ETSI TS 102 223プロアクティブコマンドをUSBスマートカードICCDインタフェース224上に実装するよりも、転送プロトコルのオーバーヘッドを大幅に軽減することができる。
HIDに完全に移行したい場合、各プロアクティブコマンドについて入力(即ち、USBカード10から電話210への)HIDレポートを定義し、さらにこのHIDレポートにおいて、電話による実行動作の報告先となるサポートされたUSBデバイスクラスを示すこともできる。
【0096】
例えば、TS 102 223プロアクティブコマンド用に定義されたレポートは、ETSI TS 102 223に開示されている“FETCH”コマンドへの応答として返される包括TLV構造のコマンドパラメータを複製するためにHID“ロング”アイテムからなるHID“コレクション”でありうる。
【0097】
以下、図3との関連において、USBカード10と電話210との間におけるメッセージのセット30の一実施例を記載する。
設定フェーズに先立ち、USB2.0仕様書に記載のUSB機能に関して初期化フェーズ(図示せず)が成功裏に実施されていることを前提とする。
【0098】
USBデバイスであるUSBカード10は、USBバスに接続され電源供給を受けると、その存在を電話210に示す。すると電話210はUSBカード10の装着を認知し、USBカード10にアドレスを割り当てる。また電話210は、USBカード10の動作可能な速度(例えばLow Speedか、Full Speedか)も認識できる。USBデフォルト通信チャネルが利用可能となり、電話210はこれを用いてUSBカード10とメッセージを交換できるようになる。
【0099】
設定フェーズにおいて、初めに電話210はUSBカード10にその能力を正確に列挙するよう要求し、USBカード10は返信で、(可能な場合、他のUSBデバイスクラスの能力と関連して)USB HID周辺装置であることを電話に報告する。
設定フェーズは、USB2.0仕様書、特に段落9.2.3“設定”、9.4“標準デバイスリクエスト”、表9−8“標準デバイスディスクリプタ”及び表9−12“標準インタフェースディスクリプタ”に準拠する。
【0100】
HID用のUSBデバイスクラスをサポートしているという報告に対し、電話210は、USBデフォルトパイプ“0”230を通じてUSBカード10に、電話210がUSBカード10から返信してほしいディスクリプタ型を指定するパラメータを伴うGET−DESCRIPTOR要求32を第1のコマンドとして送信する。
【0101】
USBカード10は返信として、USBデフォルトパイプ“0”230を通じて電話210にHID−DESCRIPTOR応答34を返信する。HID−DESCRIPTOR応答34は、USB2.0仕様書に記載され、HIDなど様々なデバイスクラスの仕様書に拡張されたフォーマットに従って返信される。
HID−DESCRIPTOR応答34は、USBカード10の動作方法や、電話210のデータ交換方法が分かるように、USBカード10のサポートするHIDクラスの具体的な特徴を宣言できるようにする。
【0102】
さらにHID−DESCRIPTOR応答34は、電話210に各種サービスを提供する複数の設定を提示することができるので、電話210は電話210の所望の環境設定を選択することができる。USBカード10は、例えばUSBカード10がHIDクラスだけでなくUSBスマートカードクラスもサポートできるような設定を提示することができる。
【0103】
電話210は、HID−DESCRIPTOR応答34を受信し解釈することで、USBカード10が少なくともHIDクラスをサポートしているということを認知する。電話210はUSBカード10により提示された複数の候補の中から設定を選択できる。
電話210はUSBカード10に、サポートするHIDクラスについての更なる詳細、例えば、サポートするレポートフォーマットなどについて要求することができる。
【0104】
電話210は、電話210が使用するのに好適なUSBカード10のデバイス設定について決定する。
この決定について通知するには、電話210はUSBカード10にSET−CONFIGURATIONコマンド36を送信する。するとUSBカード10は、HIDクラスを含む設定のうちいずれをアクティベートすべきかを認識する。
【0105】
USBカード10のサポートする設定に応じて、HID1.1仕様書の段落4に従い、各種の環境設定パラメータ、例えばUSBカード10から返信されるいずれかのインタフェースディスクリプタ内のbInterfaceClass、bInterfaceSubclass、bInterfaceProtocolフィールドなどを、それぞれ03h、00h、00hに設定することにより、USBカード10がHIDクラスをサポートしていることが示される。
【0106】
インターネットサイトhttp://www.usb.org/developers/defined classでも確認できる通り、値03hはHIDデバイスに割り当てられたUSBクラスコードである。
電話210とUSBカード10が、互いにHIDクラスをサポートしていると分かると、両者はそれに応じて特にUSBカード10の主導でHIDレポートを用いてデータを交換する。
【0107】
HIDレポートは、好ましくはUSBカード10から電話210に与えられるHIDレポートディスクリプタに従ってフォーマットされたデータパケットに関係している。
USBカード10がHIDレポートを電話210に送るとき、USBカード10は、好ましくは単方向のUSBインタラプトINパイプ232を使用する。逆に、電話210がUSBカード10にHIDレポートを送信するときは、電話210は、好ましくは単方向のUSBインタラプトOUTパイプ234を使用する。
【0108】
USBカード10は、例えば通信サービス又はユーザインタフェースサービスなど、特に電話側でのみ利用可能なサービスによるアプリケーションを少なくとも1つ実行する。USBカード10が電話210に対してHID周辺装置として提示されることで、ヒューマンインタフェースを持たないUSBカード10が、電話210により提供されうるサービスを自ら要求することが可能になる。
【0109】
HIDクラスは、具体的には、通常電話210(USBバスに電源を供給し接続されたUSB周辺装置を制御する)と、USB周辺装置としてのUSBカード10(ホストデバイスにサービスを提供する)との間に通常暗黙に含意されるマスタスレーブ関係をあえて解消する方法として、使用することができる。
【0110】
USBカード10からデータ交換を開始するプロアクティブコマンドの実施例を以下に3例示す。定義づけのため、括弧内ではETSI TS 102 223 8.2.0版(2009−01)の特に段落6及び6.4に記載されている対応のプロアクティブコマンドに言及する。
【0111】
このように、USBカード10は電話210に3つの異なるプロアクティブコマンドを送信することでマスタ役を担う。各プロアクティブコマンドはそれぞれ対応のHIDレポート内にカプセル化されている。実行されたプロアクティブコマンドとイベントのやり取りには、USB HIDクラスのHIDレポートを用いる。
このようなやり取りは、USBカード10のAPDUインタフェース114上で、ETSI TS 102 223に準じたプロアクティブコマンドとイベントの交換パターンに従って行なわれる。
【0112】
USBカード10は、電話210にHID INレポート(“Set−up menu”)38を第1のプロアクティブコマンドとして送信し、USBカード10のサポートするサービスに関する複数の要素を追加する。電話210は、HID INレポート(“Set−up menu”)38を受信すると、USBカードのサービスを、電話210の表示画面、又は電話210が接続し制御する表示画面に表示する。
【0113】
これに先立ち、電話210は、例えばHID INレポートを受領したことを示すためにHID OUTレポート(“Terminal Response”)(図示せず)をUSBカード10に送信し、USBカード10のサービスを実行する用意があることを通知しておいてもよい。
電話ユーザは、USBカードのサービスを知ると、電話210に接続又は包含されたマン−マシンインタフェース(電話の表示画面及び/又は電話のキーボードなど)を用いて、USBカード10のサポートするアプリケーションを選択する。
【0114】
電話210は、例えば“銀行サービス”メニューなど電話ユーザが選択したメニュー項目、即ち対応のUSBカードのサービスについて通知するHID OUTレポート(“Menu selection”)310をUSBカード10に送信する。
【0115】
このようなUSBカードのサービスへの要求に続いて、USBカード10はHID INレポート(“Select Item”)312を、第2のプロアクティブコマンドとして電話210に直接送信し、例えば前記プロアクティブコマンドに関連する動作の一部である項目のリストを電話の表示画面に表示するよう電話210に要求する。
すると電話ユーザは、表示された項目の中から、例えば第1の選択肢である“残高照会”、第2の選択肢である“普通預金”、又は第3の選択肢である“口座振替”を選択できる。
【0116】
電話210とUSBカード10との間におけるデータ交換、即ち電話210からUSBカード10への送信、及びUSBカード10から電話210への別の送信は、1回ですむ。
より正確には、HID OUTレポート(“menu selection”)310と、それに続くHID INレポート(“select item”)312とが、1回のデータ交換を構成している。
【0117】
既存のAPDUプロアクティブ能力についてETSI TS 102 223を参照すれば自明であるように、実際には少なくとも1つの追加データ交換が必要である。より正確には、追加のデータ交換は(特に、ステータスワード“SW=91XX”又は“SW=90 00”で構成されるコマンドにより)電話210にUSBカードのいわゆる“ステータス”について通知することと、USBカード側で電話210に(特に“FETCH”で構成されるコマンドにより)検出されるのを待機しているプロアクティブコマンドを、USBカード10から要求することとにより成立する。
【0118】
電話ユーザが、表示された複数の項目の中から1つ、例えば提示された3つの中から第1の選択肢を選択すると、電話210は、第2のプロアクティブコマンドに対する応答として、選択された項目を含むHID OUTレポート(“Terminal Response”)314をUSBカード10に送信する。
続いて、選択された第1の選択肢を進行するため、USBカード10はHID INレポート(“Get−Inkey”)316を第3のプロアクティブコマンドとして電話210に直接送信して、電話210に対し、電話ユーザが複数の選択肢から1つを選択するためにキーを押下できるように、テキストを表示するよう要求する。
【0119】
例えば、第1の選択肢である“全ての取引を見ますか?”にはキー“1”を押下するよう付記し、第2の選択肢である“残高を見ますか?”にはキー“2”を押下するよう付記し、これら双方の選択肢を同時に表示する。
公知技術による解決方法とは異なり、電話210とUSBカード10との間のデータ交換、即ち電話210からUSBカード10への送信とUSBカード10から電話210への別の送信は、1回ですむ。
【0120】
より正確には、前記HID OUTレポート(“Terminal Response”)314と、それに続く前記HID INレポート(“Get Inkey”)316により、1回のデータ交換が成立する。
電話ユーザが、例えばキー“1”を押下して1つの選択肢を選択すると、電話210は、前記第3のプロアクティブコマンドへの応答として、押下されたキーの値の指示を伴うHID OUTレポート(“Terminal Response”)318を、USBカード10に送信する。
【0121】
図4は、USBカード10と、携帯USB On−The−GOデバイス41と、外部装置とが関与するメッセージフロー40の一実施例を示したものである。
USB On−The−GOスマートホンをはじめとする携帯USB On−The−GOデバイス41は、第3世代(3G)又は第4世代(4G)ネットワークなどの移動無線通信ネットワークにアクセスするために、モデム制御機能を提供するものとする。携帯USB On−The−GOデバイス41はUSB HIDドライバインタフェース43及びモデムアプリケーションインタフェース45を有する。
【0122】
さらに携帯USB On−The−GOデバイス41は、高いデータレート、例えば100kbits/s以上で遠隔装置とデータ交換するために、データ通信制御機能を備えている。携帯USB On−The−GOデバイス41はデータ通信アプリケーションインタフェース(図示せず)を有する。
【0123】
さらに、携帯USB On−The−GOデバイス41はUSBカード10に対し、ホストデバイスとして接続されるものとする。USBカード10はUSB HID周辺装置として自己提示する。加えて、携帯USB On−The−GOデバイス41とUSBカード10は、すでに対応の適切な設定メッセージを交換しているものとする。
【0124】
こうして携帯USB On−The−GOデバイス41は、USBカード10がHID用のUSBデバイスクラスをサポートしていること、及び、HIDレポートを用いてUSBカード10とデータ交換する方法を知る。
HIDレポートは、USBカード10が携帯USB On−The−GOデバイス41に優先的に提供したUSB使用テーブル内に含まれている。
携帯USB On−The−GOデバイス41はHID使用テーブルを記憶する。
【0125】
以下の実施例は、外部装置である遠隔サーバ47にアクセスするために、USB周辺装置であるUSBカード10が、携帯USB On−The−GOデバイス41のモデム能力を利用することを記述したものである。
【0126】
ただし当然ながら、携帯USB On−The−GOデバイス41のその他の機能、例えば表示画面制御機能(例、外部ビデオモニタのアドレスを指定する)、キーボード制御機能(例、外部キーボードのアドレスを指定する)、及び/又は携帯USB On−The−GOデバイス41で実行するアドオンアプリケーションを開始する機能などを、USBカード10が利用することを示すほかの例でも可能である。
【0127】
USBカード10はHID用のUSBデバイスクラスを用いて携帯USB On−The−GOデバイス41と通信し、例えばAT(attentionの頭字語)コマンドのように、携帯USB On−The−GOデバイス41に対し、USBカード10へのモデムサービス提供を要求するコマンドなど、少なくとも1つのプロアクティブコマンドを送信する。
【0128】
USBカード10側には、2つのアプリケーションインタフェース、具体的にはプロアクティブ能力マネージャインタフェース411と、UICCアプリケーションインタフェース413とがある。
初めに、プロアクティブ能力マネージャインタフェース411が、HIDレポート(モデム、“ATDT 01 23 45 67 89”)のような、ATコマンドからなるHIDレポートを、例えばUSBインタラプトINパイプを通じて携帯USB On−The−GOデバイス41に、より正確にはUSB HIDドライバインタフェース43に送信する。
【0129】
携帯USB On−The−GOデバイス41は、記憶済みのHID使用テーブルから現行のHIDレポートに関連する動作を取り出すことで、前記プロアクティブコマンドを取得する。こうして、携帯USB On−The−GOデバイス41は、前記プロアクティブコマンドを解釈し、これを対応する内部アプリケーションインタフェースに送ることができる。
【0130】
USBカード10に提供されるホストデバイスのサービスとしてモデム制御アプリケーションに転送される、第1のHIDレポート要求は、USBカード10によりASCII文字列として送信されるATコマンドをカプセル化した、HID“ロング”アイテムで構成されうる。
同様に、モデム制御アプリケーションをアドレス指定する第1のHIDレポート要求に対応する第1のHIDレポート応答も、ホストデバイス41が実行するモデム制御アプリケーションによる、ATコマンドの処理結果に関する応答をカプセル化したHID“ロング”アイテムで構成されうる。
【0131】
USB HIDドライバインタフェース43は、カプセル化されたATコマンド44、即ち“ATDT 01 23 45 67 89”を抽出し、モデムアプリケーションインタフェース45を通じて、アドレス指定されたモデム制御アプリケーションに転送する。
ホストデバイス41にインストールされ実行されるモデム制御アプリケーションは、電話番号“01 23 45 67 89”をダイヤルすることにより、モデム制御コマンドである前記ATコマンドを実行する。
【0132】
前記電話番号がダイヤルされると、ホストデバイス41のモデムアプリケーションインタフェース45は、USBカード10によりホストデバイスを通じて開始された通話を確立するために、呼び出しメッセージ46を遠隔サーバ47に送信する。
遠隔サーバ47は、呼び出しメッセージ46を受信して通話を承認するとすぐに、要求された通話の確立が無事に完了したことを通知する“OK”などのメッセージ48を、ホストデバイス41に、より正確にはモデムアプリケーションインタフェース45に返信する。
【0133】
するとモデムアプリケーションインタフェース45は、要求された通話の確立が無事に完了したことを通知する“OK”などのメッセージ410を、USB HIDドライバインタフェース43に転送する。
USB HIDドライバは上記の通知を受けるとすぐに、要求された通話の確立が無事に完了したことを通知する“OK”などのメッセージをレポート内にカプセル化することで、USBカード10に送信する第2のHIDレポートを生成する。
【0134】
USB HIDドライバが第2のHIDレポートを生成するとすぐに、USB HIDドライバインタフェース43は、例えばUSBインタラプトOUTパイプを通じ、上記のように生成されたHIDレポート412を、イベントとしてUSBカード10に、より正確にはプロアクティブ能力マネージャインタフェース411に送信する。
第2のHIDレポートをイベントとして受信すると、プロアクティブ能力マネージャインタフェース411は、要求された通話の確立が無事に完了したことを通知する“OK”などのメッセージ414を、USBカード10内部のUICCアプリケーションインタフェース413に送信する。
【0135】
UICCアプリケーションは、このような情報メッセージ414を受信すると、これを処理する。
UICCアプリケーションは、EEM用イーサネットUSB通信クラスのディスクドライバ(図示せず)など、別のUSBインタフェースを用いて、接続された遠隔サーバ47と、HTTP要求及び応答を交換することができる。USB EEMインタフェースの使用は、ホストデバイス41に対し透過的な方法で、遠隔サーバ47とHTTPデータを交換するのに適している。
【0136】
続いてUICCアプリケーションは、特定のデータファイル、例えば壁紙、即ちUSBカード10に記憶され電話の表示画面に表示される画像などに関するデータを、接続された遠隔サーバ47からダウンロードするHTTP要求を生成する。
選択されたデータファイルのダウンロード要求は例えば“get file id”などで、ダウンロードするファイルは対応の識別子“id”により特定される。
【0137】
UICCアプリケーションインタフェース413は、選択されたデータファイルをダウンロードするHTTP要求を遠隔サーバ47に転送するためのメッセージ(図示せず)を、USBカード10内のUSB EEMインタフェースに送信する。
USB EEMインタフェースは、選択されたデータファイルをダウンロードするHTTP要求を、ホストデバイス41内のデータ通信アプリケーションインタフェース(図示せず)に送信する。
【0138】
データ通信アプリケーションは、USBカード10と遠隔サーバ47との間の仲介手段として、遠隔サーバ47と交信する。ホストデバイス41のデータ通信アプリケーションインタフェースは、UICCアプリケーションが、ホストデバイス41に対し透過的な方法で、HTTP要求及び応答を遠隔サーバ47と交換できるようにする。
【0139】
ホストデバイス41は、USBカード10からのHTTPデータを遠隔サーバへ送信するか、反対に遠隔サーバ47からUSBカード10に送信する。
例えば、遠隔サーバ47からダウンロードすべき選択されたデータファイルに関するデータは、USBバルク転送パイプを用いてホストデバイス41を通じてUSBカード10に転送される必要がある。このようにUSBバルク転送パイプは、HTTPコマンド“get file id”へのHTTP応答を、ホストデバイス41からUSBカード10に転送するために用いられる。
【0140】
次に、遠隔サーバ47は受信したHTTPコマンドを処理し、要求されたデータファイル(図示せず)をデータ通信アプリケーションインタフェースに返信する。
データ通信アプリケーションインタフェースは、USBバルク転送パイプを通じて、USB EEMインタフェースに、要求されたデータファイル(図示せず)を転送する。
すると、USB EEMインタフェースは、UICCアプリケーションインタフェース413に、要求されたデータファイル(図示せず)を送信する。
【0141】
提案した解決方法では、ホストデバイス41が、ホストデバイス側のUSB HIDドライバ及び各サービスに特定のHID使用テーブルを用いて、USBカード10により開始された要求をリルート(re−route)するので、USBカード10は、例えばモデム制御機能などのホストデバイス側の既存の機能やサービスを、低負担で利用することができる。

【特許請求の範囲】
【請求項1】
少なくとも1つのUSB通信チャネル(230、232、234、236、238)を通じて通信する手段(12、14、16)を備え、ホストデバイス(210)と通信するUSBトークン(10)であって、ヒューマンインタフェースデバイス用のUSBデバイスクラスをサポートする前記USBトークンは:
−少なくとも1つのUSB通信チャネル(230、232、234、236、238)を通じて、前記トークンからのプロアクティブコマンドであるHIDレポートに関するデータを送信し、
−少なくとも1つのUSB通信チャネル(230、232、234、236、238)を通じて、前記プロアクティブコマンドに対する応答を受信する、
ことができることを特徴とするUSBトークン。
【請求項2】
請求項1に記載のUSBトークンであって、少なくとも1つのUSB通信チャネルを通じて特定のHID使用テーブル(223)に関するデータを送信でき、前記ホストデバイスは:
−前記HID使用テーブル(223)に、前記トークンからのプロアクティブコマンドである、少なくとも1つのHIDレポートとしてデータを解釈し、
−前記プロアクティブコマンドを、前記ホストデバイスが実行する少なくとも1つの対応動作と関連付け、
−前記ホストデバイスが実行する前記対応動作により決定される応答を、前記USBトークンに送信しなくてはならない、ことを特徴とするUSBトークン。
【請求項3】
請求項1又は2に記載のUSBトークンであって、前記ホストデバイスから、少なくとも1つのUSB通信チャネル(234)を通じて、少なくとも1つのイベントに関するデータを受信できる、ことを特徴とするUSBトークン。
【請求項4】
請求項1乃至3のいずれかに記載のUSBトークンであって、少なくとも1つの前記USB通信チャネルは、
−USBデフォルトパイプ‘0’(230)と;
−USBコントロールパイプ(230)と;
−USBインタラプトINパイプ(232)と;
−USBインタラプトOUTパイプ(234)と;
−少なくとも1つのバルク転送パイプ(236、238)と;
を備える、ことを特徴とするUSBトークン。
【請求項5】
請求項1乃至4のいずれかに記載のUSBトークンであって、別の通信チャネルを通じて通信する手段(114、116、118)を含み、前記別の通信チャネルは1つ以上のインタフェースとして、
−アプリケーションプロトコルデータ単位;
−インターネットプロトコル;
−ハイパーテキスト・トランスファプロトコル、及び/又は;
−マスストレージプロトコル;
を備える、ことを特徴とするUSBトークン。
【請求項6】
請求項2に記載のUSBトークンであって、少なくとも1つの前記対応動作は:
−前記ホストデバイスが制御する表示画面に情報の少なくとも一部を表示する動作と;
−ホストデバイスのマン−マシンインタフェースを通じて交信することをユーザに要求する動作と;
−前記ホストデバイスに、前記USBトークンからのプロアクティブコマンドを取り出すよう要求する動作と;
−前記ホストデバイスを通じて、別の外部装置にメッセージを送信する動作と;
−前記プロアクティブコマンド内で特定された、前記USBトークンに記憶されているファイルを、マスストレージインタフェースなどの特定のインタフェースを通じて取り出す動作と;
−インターネットプロトコルインタフェースなどの特定のインタフェースを通じ、前記USBトークンがサポートする、あるいは前記USBトークンから、またはこれを通じて開始されるウェブサーバのアプリケーションにおいて、少なくとも1つのオペレーションを実行する要求を、前記USBトークンに送信する動作と;
からなる群に属する少なくとも1つの動作である、ことを特徴とするUSBトークン。
【請求項7】
請求項1乃至6のいずれかに記載のUSBトークンであって、サービス加入者鍵を安全に記憶する手段を備え、前記サービス加入者鍵は、加入者が移動無線通信サービスを享受できるよう認証するために用いられる、ことを特徴とするUSBトークン。
【請求項8】
請求項1乃至7のいずれかに記載のUSBトークンであって、HIDレポートとして、返信での応答を要求するプロアクティブコマンドを、USBバルク転送パイプ又はインターネットプロトコル通信チャネルなどの特定の通信チャネルを通じて送信できる、ことを特徴とするUSBトークン。
【請求項9】
請求項1乃至8のいずれかに記載のUSBトークンであって、前記USBトークンからのHIDレポートに関するデータには、前記USBトークンからのプロアクティブコマンドがカプセル化されていること、及び/又は、HIDレポートに関連し前記USBトークンで受信されるデータには、前記プロアクティブコマンドに対する応答がカプセル化されていること、を特徴とするUSBトークン。
【請求項10】
ホストデバイス(210)とUSBトークン(10)との間で通信する方法(30)であって、前記USBトークンと前記ホストデバイスは、少なくとも1つのUSB通信チャネル(230、232、234、236、238)を通じて、それぞれUSBトークン(10)又はホストデバイス(210)と通信する手段を備えており、ヒューマンインタフェースデバイス用のUSBデバイスクラスをサポートする前記USBトークンは、
少なくとも1つのUSB通信チャネル(230、232、234、236、238)を通じて、前記トークンからのプロアクティブコマンドであるHIDレポートに関するデータを前記ホストデバイスに送信し、
前記ホストデバイスは、少なくとも1つのUSB通信チャネル(230、232、234、236、238)を通じて、前記プロアクティブコマンドに対する応答を前記USBトークンに返信する、ことを特徴とする方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公表番号】特表2013−516011(P2013−516011A)
【公表日】平成25年5月9日(2013.5.9)
【国際特許分類】
【出願番号】特願2012−546413(P2012−546413)
【出願日】平成22年12月20日(2010.12.20)
【国際出願番号】PCT/EP2010/070301
【国際公開番号】WO2011/080147
【国際公開日】平成23年7月7日(2011.7.7)
【出願人】(309014746)ジェムアルト エスアー (23)