(57)【要約】  スレーブデバイス、例えば、スマートカードが、小型ポータブルデバイス上に導入するのに適しているように電力を節約する形で、アプリケーション群およびネットワークノード群には、本格的なネットワークノードであるように見えながら、半二重シリアル通信リンクを介して通信することを可能にするように設計されたプロトコルを使用して通信する、スレーブデバイスとネットワークリソースの間のピアツーピア通信のためのシステムおよび方法。
2008538458.tif 000002
【特許請求の範囲】
【請求項１】
リモートネットワークノードが、変更されていないネットワーククライアントおよびサーバを使用してリソース制約のあるデバイスと通信し、リソース制約のあるデバイスが、中央処理装置と、ランダムアクセスメモリと、不揮発性メモリと、読み取り専用メモリと、入出力構成要素とを有し、リソース制約のあるデバイスが、物理通信リンク接続を介してホストコンピュータに接続された、ネットワークを介するリソース制約のあるデバイスとリモートネットワークノードの間の通信の方法であって、
リソース制約のあるデバイスとホストコンピュータの間で物理リンク接続を確立すること、
リソース制約のあるデバイス上で、インタフェースデバイスと通信するように動作可能であり、リモートネットワークノードと通信するように動作可能である、ネットワーキングプロトコル、および１つまたは複数のリンクレイヤ通信プロトコルを実施する通信モジュールを実行すること、
入力イベントによって駆動され、かつ、ホストコンピュータおよびリモートネットワークノードと通信するようリソース制約のあるデバイスの通信モジュールを呼び出す、リソース制約のあるデバイス上で実行される１つまたは複数のセキュリティで保護されたネットワークアプリケーションによって駆動される通信モジュールに従ってリソース制約のあるデバイスを動作させること、
リソース制約のあるデバイスとインタフェースデバイスの間で半二重を有し、インタフェースデバイスとホストコンピュータの間で全二重を有するシリアル接続である物理リンクを使用して、リソース制約のあるデバイスとホストコンピュータの間に接続されたインタフェースデバイスを動作させること、および
リソース制約のあるデバイスが、メッセージを開始して送信することを可能にする少なくとも１つの状態の１つにあるインタフェースデバイスが、リソース制約のあるデバイスとネットワークの間でメッセージを転送することを可能にし、かつ、リソース制約のあるデバイスが、メッセージを開始して送信する意図を全く示さないことに応答して、ある期間にわたって、リソース制約のあるデバイスとの対話を遅延させる、有限状態マシンに従って、インタフェースデバイスを動作させることを含む、方法。
【請求項２】
インタフェースデバイスが、ホストコンピュータとリソース制約のあるデバイスの間に接続されたハードウェアデバイスである、請求項１に記載の電子デバイスを動作させる方法。
【請求項３】
インタフェースデバイスが、物理リンクと、より高いレベルの通信プロトコルを実施する通信モジュールとの間のホストコンピュータ上で実行されるソフトウェアモジュールである、請求項１に記載の電子デバイスを動作させる方法。
【請求項４】
半二重シリアル接続と全二重接続の間でブリッジ機能を実行するようにインタフェースデバイスを動作させることをさらに含む、請求項１に記載の方法。
【請求項５】
ブリッジ機能を実行するステップが、
コマンド／応答モードで動作しているリソース制約のあるデバイスが、ピアとしてネットワークノードと通信することを可能にすること、
半二重シリアル通信モードで動作しているリソース制約のあるデバイスが、全二重通信トラフィックを扱うことを可能にすること、
上位レイヤプロトコルフレームをカプセル化すること、
より下位のリンクレイヤのフレームサイズ限度を超える上位レイヤプロトコルフレームのトランスポートを可能にすること、および
上位レイヤプロトコルの複数の論理接続をサポートすることから選択された機能の少なくとも１つを提供することをさらに含む、請求項４に記載の方法。
【請求項６】
電子デバイスが、ホストデバイスが接続されているコンピュータネットワークを介して通信することを可能にするように、電子デバイス、および電子デバイスが接続されているホストデバイスを動作させるための方法であって、
電子デバイスが、送信すべきデータを有するかどうかを問い合わせるように、ホストデバイスが電子デバイスにポーリングしたことを示す、ポーリング状態と、
ホストデバイスが、ネットワーク上のリモートデバイスからデータを受信する準備ができていることを示す、ネットワークチェック状態と、
電子デバイスが、送信すべきデータを有するという電子デバイスからの指示を、ホストデバイスが受信したことを示す、クライアントからのデータ獲得状態と、
ホストデバイスが、電子デバイスに向けられたデータをネットワークから受信したことを示す、データをクライアントにプットする状態とを有する第１の状態マシンに従ってホストデバイスを動作させることを含み、
ホストデバイスが、
半二重シリアルコマンド−応答通信リンクを介して電子デバイスにポーリングし、事前設定のタイムアウト間隔の満了によってトリガされた条件に応答して、ネットワークチェック状態からポーリング状態への遷移を行うこと、および
電子デバイスからパケットを獲得し、電子デバイスが、ポーリングされたことに応答して、クライアントがデータを有する応答メッセージで応答したことによってトリガされた条件に応答して、ポーリング状態から、クライアントからデータを獲得する状態への遷移を行うこと、
電子デバイスが、ポーリングされたことに応答して、クライアントがデータを有さない応答メッセージで応答したことに応答して、応答メッセージのパラメータであるタイムアウト間隔を設定すること、および
ネットワークからデータを受信したことに応答して、電子デバイスにパケットをプットし、そうするためにタイムアウト間隔を無効にすることを行い、さらに方法は
電子デバイス通信モジュールが、上位レベルプロトコル通信を待っていることを示す、上位レベル待ち状態と、
電子デバイスが、伝送すべきデータを有することを示す、サーバレディ書き込み待ち状態と、
電子デバイスが、データを読み取る準備ができていることを示す、サーバレディ読み取り待ち状態とを有する第２の状態マシンに従って電子デバイスを動作させることを含み、
電子デバイスが、
上位レベル待ちにある間に、上位レベル書き込みコマンドに応答して、上位レベル待ち状態からサーバレディ書き込み待ち状態に遷移すること、
サーバレディ書き込み待ち状態にある間に、半二重シリアルコマンド−応答通信リンクを介して受信されたポーリングメッセージに応答して、クライアントがデータを有するメッセージを伝送し、サーバレディ書き込み待ち状態に留まること、
サーバレディ読み取り待ち状態にある間に、半二重シリアルコマンド−応答通信リンクを介して受信されたポーリングメッセージに応答して、クライアントがデータを有さないメッセージを伝送し、サーバレディ読み取り待ち状態に留まることを含む、方法。
【請求項７】
マスタデバイスとスレーブデバイスの間で物理リンクを確立すること、
マスタデバイスが、送信する準備ができたデータを全く有さない場合でさえ、スレーブデバイスにパケットを定期的に送信するようにマスタデバイスを構成すること、
スレーブデバイスが、送信する準備ができたデータを全く有さない場合でさえ、待ち状態である、または即時に受信される可能性があるコマンドを処理するのを待たずに、現在、用意されたデータの応答パケットで、最小限の間隔で応答するようにスレーブデバイスを構成すること、
応答パケットが、前のホスト要求、またはスレーブデバイスによって開始された要求に対する応答を全く含まない、または１つ以上を含むことを含む手段によって、非同期の論理全二重プロトコルをトランスポートするように構成された同期半二重シリアルリンクを介して通信するマスタデバイスとスレーブデバイスとを有する、システム。
【請求項８】
定期的に、電力消費と通信待ち時間のバランスをとるためのマスタデバイスまたはスレーブデバイスの必要性を満たすように調整される、請求項７に記載のシステム。
【請求項９】
定期的に、外部ソースからマスタデバイスへの着信する要求によって決定される、請求項８に記載のシステム。
【請求項１０】
トランスポートされる論理全二重プロトコルが、以下のインターネットプロトコルリスト、すなわち、イーサネット（登録商標）、ＰＰＰ、ＩＰ、ＴＣＰ、ＵＤＰ、ＩＣＭＰ、ＤＨＣＰ、ＨＴＴＰ、ＨＴＴＰＳ、ＦＴＰ、Ｔｅｌｎｅｔ、ＳＳＨからの１つまたは複数である、請求項７に記載のシステム。
【請求項１１】
協働する状態マシンペアを含む請求項７に記載のシステムであって、
マスタデバイスが、第１の状態マシンに従って動作し、スレーブデバイスが、第２の状態マシンに従って動作し、第１の状態マシンは、マスタデバイスが、スレーブデバイスとのさらなる対話に取り掛かるのに先立って、スレーブデバイスによって指定された、ある期間、待つ、少なくとも１つの状態を含む、システム。
【請求項１２】
スレーブデバイスは、短距離デバイスが、伝送すべきデータを有するかどうかに関する問い合わせを受信したことに応答して、短距離デバイスが、伝送すべきデータを有さない場合、ポーリング間隔を含む応答を伝送するように動作可能な通信モジュールを含む短距離無線デバイスであり、マスタデバイスは、スレーブデバイスへのさらなる通信を開始するのに先立って、指定されたポーリング間隔が満了するのを待つように動作可能な通信モジュールを含む無線デバイスであることを含む、請求項７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、米国特許法第１１９条（３５  Ｕ．Ｓ．Ｃ．１１９）に従って、２００５年２月１１日に出願した米国特許仮出願第６０／６５２２９１号の優先権を主張する。この仮出願は、参照により全体が本明細書に組み込まれている。
【０００２】
本発明の譲受人に譲渡され、この参照により本明細書に組み込まれている、２００４年５月１９日に出願した「Ｓｅｃｕｒｅ  Ｎｅｔｗｏｒｋｉｎｇ  Ｕｓｉｎｇ  ａ  Ｒｅｓｏｕｒｃｅ−Ｃｏｎｓｔｒａｉｎｅｄ  Ｄｅｖｉｃｅ」という名称の同時係属の米国出願第１０／８４８７３８号において、半二重通信チャネルを使用して通信するリソース制約のあるデバイスと、ネットワークに接続されたリモートノード群との間で通信を提供するためのシステムおよび方法が、説明されている。本発明は、上記の明細書で説明される発明に改良をもたらす。
【０００３】
本発明の譲受人に譲渡され、参照により本明細書に組み込まれている、２００５年９月２３日に出願した「Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｏｆ  ＵＩＣＣ  ｉｎ  ｍｏｂｉｌｅ  ｄｅｖｉｃｅｓ  ｕｓｉｎｇ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌｓ」という名称の同時係属の米国特許出願第１１／２３４５７７号において、移動デバイスにおけるＵＩＣＣが、ネットワークピアとして動作することを可能にするシステムおよび方法が、説明されている。
【０００４】
現在は米国特許第６１５７９６６号である、１９９８年６月２９日に出願した米国特許出願第０９／１０７０３３号の継続出願である、２０００年１１月３０日に出願した「Ｓｍａｒｔ  Ｃａｒｄ  Ｃｏｎｔｒｏｌ  ｏｆ  Ｔｅｒｍｉｎａｌ  ａｎｄ  Ｎｅｔｗｏｒｋ  Ｒｅｓｏｕｒｃｅｓ」という名称の同時係属の米国特許出願第０９／７２７１７４号において、リソース制約のあるデバイスと、半二重通信チャネル上で通信しているが、それでも、リソース制約のあるデバイスが、ホストデバイスに対してピアとして動作することを可能にするホストデバイスとの間の非同期通信のためのシステムおよび方法が、説明されている。
【０００５】
本発明は、ネットワークベースの電子デバイスの動作に関し、より詳細には、従来はスレーブであるデバイスが、ネットワークピアとなることを可能にするためのシステムおよび方法に関する。
【背景技術】
【０００６】
新たな情報時代において、コンピューティングが、普及してきている。これまで、完全に「ダム」マシンであったクラスのマシンが、あるレベルの「インテリジェンス」を獲得している。この傾向が続くにつれ、それらのマシンにはまた、より高いレベルの期待もかけられている。例えば、前の世代のマシンが、全くコンピューティング能力を有することを期待されていなかったのに対して、後続の世代では、ある程度のコンピュータ化を得ている。この進化におけるさらなるステップは、マシンをネットワークに接続することである。しかし、しばしば、物理的サイズの制約のため、またはコンピューティング能力およびデータ格納がマシンの主な機能ではないため、計算能力およびメモリサイズは、非常に限られている可能性がある。それらの制約は、そのようなリソース制約のあるデバイスが、ネットワーク上の他のノードと対話する能力に、大きい影響を与える。
【０００７】
そのようなリソース制約のあるデバイスの例が、スマートカードである。スマートカードは、単に、いくらかのメモリと、マイクロプロセッサとを有する集積回路を含むプラスチックカードである。通常、メモリは、６ＫバイトのＲＡＭに限られる。スマートカードＲＡＭは、今後数年間に、数キロバイト増加する可能性があるものと予期されている。しかし、メモリサイズが、引き続き、スマートカードアプリケーションの障害となる可能性が非常に高い。ほとんどのスマートカードは、８ビットマイクロプロセッサを有する。
【０００８】
通信インフラストラクチャが、スマートカード、および同様のデバイスに別のリソース制約をもたらす。スマートカードは、最高速度のＵＳＢ通信を有さず、全二重シリアルインタフェースを欠いている。現行では、スマートカードは、半二重で動作するＩＳＯ−７８１６インタフェースを使用する。
【０００９】
同様のリソース制限を有する他のデバイスが、存在する。それらのデバイスには、ＵＳＢドングル（メリーランド州ベルキャンプ所在のセイフネット社によって販売されるｉＫｅｙデバイスなど）、またはＳＤカード、またはＰＣマザーボードに直接にはんだ付けされたセキュア集積回路チップが含まれる。
【００１０】
本明細書では、同様のリソース制限を共通に有するデバイス、例えば、６４Ｋ未満に限られたＲＡＭを、「リソース制約のあるデバイス」と呼ぶものとする。リソース制約のあるデバイスには、スマートカード、ＵＳＢドングル、ＳＤカード、およびＰＣマザーボードに直接に取り付けられたセキュア集積回路チップが含まれる。さらに、リソース制約のあるデバイスという用語には、以上に列挙したデバイスと同様のリソース制約を有する、他のあらゆるデバイスが含まれるものとする。明快にするため、本発明を、本明細書では、主にスマートカードの文脈で説明する。このことは、本発明の範囲または適用可能性を限定するものと解釈されてはならない。というのは、本発明は、他のリソース制約のあるデバイスにも同様に適用可能だからである。
【００１１】
スマートカードは、スマートカードリーダ、またはセル電話機、またはその他のデバイスを有するコンピュータであることが可能な端末装置またはホストで使用されてきた。スマートカードが、コンピュータに接続された場合、ホストアプリケーションは、標準の主流のネットワークインタフェースを使用して、スマートカードと通信することができない。スマートカードリーダデバイスドライバおよびミドルウェアアプリケーションの形態の特定のハードウェアおよびソフトウェアが、カードサービスにアクセスするのに必要とされる。
【００１２】
「Ｓｅｃｕｒｅ  Ｎｅｔｗｏｒｋｉｎｇ  Ｕｓｉｎｇ  ａ  Ｒｅｓｏｕｒｃｅ  Ｃｏｎｓｔｒａｉｎｔ  Ｄｅｖｉｃｅ」という名称の同時係属の、本発明の譲受人に譲渡された特許出願第１０／８４８７３８号が、半二重シリアルコマンド／応答通信プロトコルを使用するスマートカード、およびその他のリソース制約のあるデバイスが、全二重ピアツーピア通信を扱うことができるようにする、ピアＩ／Ｏと呼ばれる新たなプロトコルを説明している（以降、「７３８」出願）。このため、ピアＩ／Ｏを導入するそのようなデバイスは、ネットワークピアとしてネットワークに加わることができる。
【００１３】
半二重シリアルコマンド／応答通信プロトコルを使用して通信するデバイスが、非同期の全二重ピアツーピア通信を扱うことができるようにするように、一般に適用可能なシステムおよび方法を得ることが、有用であろう。
【００１４】
この先もおそらく続く、電子通信デバイスをポータブルで、小型で、無線にするという現在の傾向が、存在する。この傾向からもたらされる１つの課題は、無線であることにより、デバイスが、独自の電源、通常、バッテリを所持しなければならないことである。そのバッテリは、デバイスが、有線の電源に再び接続されるまで、漸減するリソースであるため、利用可能な電力の持続時間、つまり、簡単には、バッテリ寿命が、大きな問題である。ポータブルデバイスの売れる要因は、デバイスのサイズである。もちろん、デバイスが小さいほど、バッテリは小さく、したがって、バッテリ寿命が、より短い。
【００１５】
１つの非常に一般的な、リソース制約のあるデバイスが、移動電話機のためのＳＩＭモジュールである。ここ数年の間、移動電話機は、多くの新たな特徴および機能を与えられてきた。「Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｏｆ  ＵＩＣＣ  ｉｎ  ｍｏｂｉｌｅ  ｄｅｖｉｃｅｓ  ｕｓｉｎｇ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌｓ」という名称の同時係属の、本発明の譲受人に譲渡された特許出願第１１／２３４５７７号は、ＳＩＭカードが、例えば、ＳＩＭカード上でＷｅｂサーバを実行することにより、ネットワークピアとして動作することができる応用先を説明している。電力消費、および電力消費に関連する結果であるバッテリ寿命は、移動電話機の文脈において非常に重要である。したがって、半二重シリアルコマンド／応答を使用して通信する電子デバイスが、電力を節約し、それにより、移動デバイスのバッテリ寿命を延ばしながら、非同期の全二重ピアツーピア通信を扱うことを可能にするためのシステムおよび方法を有することが、望ましい。
【発明の開示】
【発明が解決しようとする課題】
【００１６】
以上のことから、半二重シリアルコマンド／応答通信リンクを使用して通信するネットワーク接続されたリソース制約のあるデバイスによる全二重ピアツーピア通信を、そのリソース制約のあるデバイスによって、そのリソース制約のあるデバイスが接続された移動デバイスに課せられる電力消費を節約しながら、可能にする、改良されたシステムおよび方法の必要性が、依然として存在することが、明白であろう。
【課題を解決するための手段】
【００１７】
好ましい実施形態では、本発明は、スレーブデバイス、例えば、スマートカードが、小型ポータブルデバイス上に導入するのに適しているように電力を節約する形で、アプリケーション群およびネットワークノード群には、本格的なネットワークノードであるように見えながら、スマートカードが半二重シリアル通信リンクを介して通信することを可能にするように設計されたプロトコルを使用して通信する、スレーブデバイスとネットワークリソースの間のピアツーピア通信のためのシステムおよび方法を提供する。
【００１８】
本発明の他の態様および利点は、本発明の諸原理を例として示す、添付の図面と併せて解釈される、以下の詳細な説明から明白となろう。
【発明を実施するための最良の形態】
【００１９】
以下の詳細な説明では、本発明が実施されることが可能な特定の諸実施形態を例として示す、添付の図面を参照する。それらの実施形態は、当業者が、本発明を実施できるようにするだけ十分に詳細に説明される。本発明の様々な実施形態は、異なるものの、必ずしも互いに排他的ではないことを理解されたい。例えば、一実施形態に関連して本明細書で説明される、ある特定の特徴、構造、または特性は、本発明の趣旨および範囲を逸脱することなく、他の諸実施形態の範囲内で実施されてもよい。さらに、開示される各実施形態の範囲内の個々の要素の位置または構成は、本発明の趣旨および範囲を逸脱することなく、変更されることが可能であることを理解されたい。したがって、以下の詳細な説明は、限定する意味で解釈されるべきではなく、本発明の範囲は、適切に解釈された、添付の特許請求の範囲、ならびに特許請求の範囲に認められる均等物の完全な範囲だけによって定義される。図面では、同様の符号は、いくつかの図のすべてで同一の機能、または同様の機能を参照する。
【００２０】
例示の目的で図面に示されるとおり、本発明は、電力消費を最小限に抑えながら、ネットワーク対応型電子デバイスにピアツーピア通信をもたらす能力を備えた、ネットワーク対応型電子デバイス、例えば、ネットワークスマートカードにおいて実施される。
【００２１】
図１は、本発明によるネットワーク接続された電子デバイスが導入されることが可能な動作環境を示す概略図である。
【００２２】
一例では、ネットワーク対応型電子デバイス１０１は、ハンドセット１０３に実装されたネットワークスマートカードである。ハンドセット１０３は、キーボード１０５、ディスプレイ１０７、マイク１０９、およびスピーカ１１１などの移動電話機の通常の装備品を有する移動電話機であることが可能である。代替の諸実施形態では、ハンドセット１０３は、ＳＩＭカードを使用する、パーソナルデジタルアシスタント、または他の任意の移動デバイスであることが可能である。また、ハンドセット１０３は、中央処理装置とメモリとを含む電子回路（図示せず）も含む。さらに、Ｗｅｂ対応型電話機、スマートホン、ＰＤＡ、ハンドヘルドＰＣ、およびタブレットＰＣなどの、様々なスマート移動デバイスが、利用可能である。スマートホンおよびＰＤＡの多くは、セル電話機機能とＰＤＡ機能を併せ持つ。スマート移動デバイス向けの普及したオペレーティングシステムには、Ｓｙｍｂｉａｎ（登録商標）、Ｐａｌｍ（登録商標）  ＯＳ、およびＭｉｃｒｏｓｏｆｔ（登録商標）  Ｓｍａｒｔｐｈｏｎｅが含まれる。本明細書で説明される本発明は、そのようなデバイスが、ネットワークスマートカード１０１であるＳＩＭデバイスを有する場合、そのようなデバイスに適用可能である。
【００２３】
電子回路は、無線電話アンテナ１１９への無線リンクを介して、無線ネットワーク１１７との通信機能をハンドセット１０３にもたらす。また、マイクロプロセッサは、ハンドセット１０３の動作を管理することや、無線ネットワーク１１７と通信するのに使用される通信プロトコルを管理することなどの、ハンドセット１０３の制御機能のいくらかを提供する。ネットワークスマートカード１０１は、ネットワークスマートカード１０１とハンドセット１９３の間の通信を可能にするように、電子回路に接続される。
【００２４】
無線ネットワーク１１７は、他の局への、例えば、他の移動局または地上ベースの電話システムへの接続を提供するための複雑な通信インフラストラクチャから成る。１つのそのような局が、インターネット１２５への無線ネットワーク１１７アクセスを与える、インターネットゲートウェイ１２１であることが可能である。一般に知られているとおり、非常に多くのコンピュータが、インターネットを介して接続されている。本明細書で提示されるシナリオでは、ハンドセットの、例えば、移動電話機またはＰＤＡのユーザは、図１に示されるインフラストラクチャを使用して、インターネット１２５に接続されたハンドセット１０３または他の何らかのコンピュータを介して、ネットワークスマートカード１０１と通信する。この通信の何らかの態様は、例えば、ネットワークスマートカード１０１上に格納されたいくらかの情報をリモートエンティティ１２７に通信する目的で、ネットワークスマートカード１０１とリモートエンティティ１２７の間で直接の通信を使用する。
【００２５】
ネットワーク接続された電子デバイス１０１’の別の例が、クレジットカードフォームファクタを有し、ホストコンピュータ１０３’を介してインターネット１２５に接続されたネットワークスマートカードである。
【００２６】
ネットワークスマートカード１０１または１０１’は、自律型インターネットノードとして動作することができるスマートカードである。ネットワークスマートカードは、参照により開示の全体が本明細書に組み込まれている、２００４年５月１９日に出願した同時係属の特許出願第１０／８４８７３８号、「ＳＥＣＵＲＥ  ＮＥＴＷＯＲＫＩＮＧ  ＵＳＩＮＧ  Ａ  ＲＥＳＯＵＲＣＥ−ＣＯＮＳＴＲＡＩＮＥＤ  ＤＥＶＩＣＥ」において説明されている。ネットワークスマートカード１０１は、カードに組み込まれたインターネットプロトコル（ＴＣＰ／ＩＰ）およびセキュリティプロトコル（ＳＳＬ／ＴＬＳ）を実施し、本明細書の後段で説明する、他の通信プロトコルを実施することもできる。ネットワークスマートカード１０１は、他のインターネットノードに対して、セキュリティで保護されたインターネット接続を確立し、維持することができる。ネットワークスマートカード１０１は、インターネット通信を可能にするのに、ホスト上のプロキシに依存しない。さらに、ネットワークスマートカード１０１は、ローカルまたはリモートのインターネットクライアントまたはインターネットサーバが、スマートカードと通信するために変更されることを要求しない。
【００２７】
また、本発明は、他のネットワーク対応型のリソース制約のあるデバイスを含めた、他のデバイスにおける使用にも適用可能であり、用途において、リソース制約のあるデバイスに必ずしも限定されない。例えば、本発明によるネットワーク対応型電子デバイスは、コンピュータ１０１’’であることが可能である。本明細書で、ネットワーク対応型デバイスという用語は、ネットワークを介して他の電子デバイスに接続され、そのような他のデバイスと電子的に通信することができる任意の電子デバイスを指す。同様に、符号１０１も、いずれか１つのそのようなデバイスを具体的に指すのではなく、任意のそのようなデバイスを指すのに使用される。
【００２８】
ネットワーク接続された電子デバイスは、ネットワークスマートカード、例えば、スマートカード１０１’であることが可能である。参照により開示の全体が本明細書に組み込まれている、２００４年５月１９日に出願した同時係属の特許出願第１０／８４８７３８号、「ＳＥＣＵＲＥ  ＮＥＴＷＯＲＫＩＮＧ  ＵＳＩＮＧ  Ａ  ＲＥＳＯＵＲＣＥ−ＣＯＮＳＴＲＡＩＮＥＤ  ＤＥＶＩＣＥ」において説明されているネットワークスマートカードは、ネットワーク通信のために使用される通信プロトコルスタックを実施することにより、従来のスマートカードの機能と、自律型ネットワークノードとして動作する能力とを併せ持つ。ネットワーク接続された電子デバイス１０１が、ホストコンピュータ１０３’を介してネットワークに接続した場合、ホストコンピュータ１０３’は、例えばリフレクタとして、または何らかのマルウェアがインストールされていることにより、攻撃コンピュータとなることがある。
【００２９】
図２は、本発明と併せて使用されることが可能な、ネットワーク接続された電子デバイス１０１のハードウェアの例示的なアーキテクチャの概略図である。図２の例による、ネットワーク接続された電子デバイス１０１は、中央処理装置２０３と、ＲＯＭ（読み取り専用メモリ）２０５と、ＲＡＭ（ランダムアクセスメモリ）２０７と、ＮＶＭ（不揮発性メモリ）２０９と、入力を受け取り、ネットワーク接続された電子デバイス１０１が接続されているコンピュータネットワーク、例えば、インターネットに、直接に、またはホストコンピュータ１０３’のような中間デバイスを介して、出力を送出するための通信インタフェース２１１とを有する。以上の様々な構成要素は、例えば、バス２１３で互いに接続される。本発明の一実施形態では、通信モジュール３２１（以下で図３において紹介され、図３および本明細書における他の図に関連して、本明細書の後段で説明される）、および本明細書の後段で説明される他のソフトウェアモジュール群が、リソース制約のあるデバイス１０１上でＲＯＭ２０５の中に格納される。代替の諸実施形態では、ＲＯＭ２０５の中に格納されたソフトウェアモジュール群は、フラッシュメモリまたは他のタイプの不揮発性メモリの中に格納される。例示の目的で、本発明を、ＲＯＭの例を使用して説明する。しかし、そのことは、本発明の範囲の限定と解釈されるべきではなく、ＲＯＭが使用される場合はいつでも、フラッシュメモリおよび他のタイプの不揮発性メモリが、代替として代用されることが可能である。
【００３０】
また、ＲＯＭ２０５は、何らかのタイプのオペレーティングシステム、例えば、Ｊａｖａ（登録商標）仮想マシンも含む。代替方法として、通信モジュール３２１は、オペレーティングシステムの一部である。動作中、ＣＰＵ２０３は、ＲＯＭ２０５またはＮＶＭ２０９の中に格納された様々なソフトウェアモジュールにおける命令に従って動作する。
【００３１】
このため、本発明によれば、ＣＰＵ２０３は、通信モジュール３２１における命令に従って動作して、本明細書の後段で説明される通信モジュール３２１の様々な動作を実行する。
【００３２】
図３は、リソース制約のあるデバイス３０１およびホストコンピュータ３０３に関するソフトウェアアーキテクチャの概略図である。図１および図２の文脈において、リソース制約のあるデバイス３０１は、ＳＩＭカード１０１またはネットワークスマートカード１０１’であることが可能であり、ハンドセット３０３は、ハンドセット１０３またはホストコンピュータ１０３’であることが可能である。
【００３３】
ホストコンピュータ３０３には、いくつかのネットワークアプリケーション３０５ａ、３０５ｂ、および３０５ｃがロードされている。（以下に留意されたい。すなわち、ハンドセット１０３のケースでは、ハンドセット物理アーキテクチャは、コンピュータのアーキテクチャとほぼ同様である。このため、ハンドセット１０３は、メモリとプロセッサとを有する。メモリは、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭなどから成ることが可能である。メモリは、プロセッサの挙動を制御するソフトウェアモジュール群を含む。このため、ホストコンピュータ３０３の一部として図３に示される様々なソフトウェアモジュールは、通常、移動デバイスの何らかの不揮発性メモリの中に格納され、実行される間、ＲＡＭにロードされる。ＲＡＭから、ソフトウェアモジュール命令は、プロセッサの挙動を制御し、移動デバイスに、いくつかの事をさせる、例えば、ネットワーク接続を確立させる。）そのようなアプリケーションの例には、Ｗｅｂブラウザ、およびネットワークコンタクトリストアプリケーションが含まれる。Ｗｅｂブラウザのケースでは、アプリケーション３０５ａは、リソース制約のあるデバイス３０１にアクセスするのに、または、より正確には、リソース制約のあるデバイス３０１上で実行されるＷｅｂサーバ、例えば、ＳＩＭカードネットワークアプリケーション３０７ａと通信するのに使用されることが可能である。
【００３４】
ホストコンピュータ３０３とリソース制約のあるデバイス３０１は、いくつかのレイヤの通信プロトコルを介して通信する。一実施形態では、それらのレイヤは、いくつかの通信ソフトウェアモジュール、例えば、ホストコンピュータ３０３上のＴＣＰ／ＩＰレベルで通信を扱うためのＴＣＰ／ＩＰモジュール３１７、ならびにリソース制約のあるデバイス３０１上の対応するＴＣＰ／ＩＰモジュール３２７と、ＰＰＰレベルで通信を扱うためのＰＰＰモジュール３１８および３２９と、ピアＩ／Ｏプロトコルに従って通信するための、ホストコンピュータ３０３上のＩ／Ｏサーバモジュール３１５、ならびにリソース制約のあるデバイス３０１上の対応するピアＩ／Ｏクライアントモジュール３２５とによって代表されることが可能である。ピアＩ／Ｏクライアントモジュール３２５およびピアＩ／Ｏサーバモジュール３１５の動作は、本明細書の後段でより詳細に説明する。
【００３５】
また、リソース制約のあるデバイス３０１とホストコンピュータ３０３は、ハードウェアレイヤとして、例えば、ＵＳＢ接続または無線接続を介しても接続され、それに応じて、ハードウェアレベル通信を管理するためのハードウェア通信モジュール３１８および３１９を有する。
【００３６】
ホストコンピュータ３０３は、外部データネットワークとの通信を確立することができ、いくつかのアプリケーション３０５ａ〜ｃをサポートすることができる。ホストコンピュータ上のアプリケーションプログラムは、通信モジュール３１１を使用して、ネットワーク外部への接続を確立し、リソース制約のあるデバイス３０１上のアプリケーション３０７ａ〜ｃと通信する。
【００３７】
ホストコンピュータ３０３を介する、リソース制約のあるデバイス３０１とネットワークの間の通信は、参照により本明細書に組み込まれている、２００４年５月１９日に出願した「ＳＥＣＵＲＥ  ＮＥＴＷＯＲＫＩＮＧ  ＵＳＩＮＧ  Ａ  ＲＥＳＯＵＲＣＥ−ＣＯＮＳＴＲＡＩＮＥＤ  ＤＥＶＩＣＥ」という名称の、前段で引用した同時係属の特許出願第１０／８４８７３８号において、より詳細に説明されている。仮想シリアルポート３１３は、ハンドセット３０３のオペレーティングシステムによって定義されるシリアルポートインタフェースを実施する。ネットワークＳＩＭカード（ネットワークＵＩＣＣカードとしても知られる）間の通信は、参照により本明細書に組み込まれている、２００５年９月２３日に出願した同時係属の特許出願第１１／２３４５７７号「ＣＯＭＭＵＮＩＣＡＴＩＯＮＳ  ＯＦ  ＵＩＣＣ  ＩＮ  ＭＯＢＩＬＥ  ＤＥＶＩＣＥＳ  ＵＳＩＮＧ  ＩＮＴＥＲＮＥＴ  ＰＲＯＴＯＣＯＬＳ」において、より詳細に説明されている。
【００３８】
ピアＩ／Ｏインプリメンテーションは、ホスト３０３とデバイス３０１の両方の上に存在する。ホスト側で、ピアＩ／Ｏは、デバイス３０１とネットワーク１１７の間でメッセージを転送するサービスを提供する。本明細書では、このサービスモジュールを、ピアＩ／Ｏサーバ３１５と呼ぶ。デバイス３０１は、コマンド／応答モードで動作している低レベルの半二重シリアル通信プロトコル３１８より上位に位置し、かつＰＰＰ３２９のような全二重プロトコルより下位に位置するピアＩ／Ｏクライアント３２５を含む。そのような全二重通信は、通信チャネルの両方の終端が、いつでも、他方の終端との同期、またはタイミング調整なしで送信することができるので、非同期である。ピアＩ／Ｏプロトコルは、このプロトコルが伝送する、より高いレベルのプロトコルとは独立である。上位レイヤプロトコルから見て、ピアＩ／Ｏは、両方の方向で行き来するメッセージを伝送することができる。例えば、ピアＩ／Ｏを使用して、ＰＰＰフレーム、またはイーサネット（登録商標）フレーム、またはＩＰデータグラムを伝送することができる。つまり、リソース制約のあるデバイス３０１とホスト３０３の間のデータ通信が、半二重シリアルコマンド／応答リンクを介して実行されるということは、リソース制約のあるデバイス３０１上でも、ホスト３０３上でも、リソース制約のあるデバイス３０１と通信している可能性があるその他のネットワークノード上でも、より高いレベルのアプリケーションおよび通信プロトコルには、トランスペアレントである。
【００３９】
ネットワーク上のコンピュータ（または単に「ネットワーク」と呼ぶ）がデバイスにメッセージを送信すると、ピアＩ／Ｏサーバ３１５が、そのメッセージを含むコマンド／応答通信プロトコルの１つまたは複数のコマンドをデバイス３０１に送信することにより、そのメッセージを転送する。デバイス３０１が、送信する必要がある場合にはいつでもメッセージをネットワーク１１７に送信することができるようにするために、ピアＩ／Ｏサーバ３１５は、デバイス３０１に定期的にポーリングする。デバイスがメッセージを有する場合、ピアＩ／Ｏサーバ３１５は、デバイスのメッセージを獲得してそのメッセージをネットワークに転送する、１つまたは複数のコマンドを発行する。デバイス３０１および３０３が、これらのデバイスを接続する半二重シリアルコマンド／応答リンクを介して通信を実行する動作は、ピアＩ／Ｏサーバ３１５およびピアＩ／Ｏクライアント３２５によって制御される。本発明の一実施形態では、この挙動は、リソース制約のあるデバイス３０１上、およびホストデバイス３０３上の有限状態マシンに従って実施される。ピアＩ／Ｏ有限状態マシンは、通信が、明示的な細分化−組み立て機構を使用することなしに、任意の長さの上位レベルメッセージを使用して実行されることを可能にする。
【００４０】
（ピアＩ／Ｏプロトコルフォーマット）
ピアＩ／Ｏプロトコルは、３つのコマンド、Ｐｕｔ  Ｐａｃｋｅｔ、Ｇｅｔ  Ｐａｃｋｅｔ、およびＰｏｌｌを定義する。Ｐｕｔ  Ｐａｃｋｅｔコマンドは、ホストからデバイスにデータを送信する。Ｇｅｔ  Ｐａｃｋｅｔコマンドは、デバイスからホストにデータを獲得する。Ｐｏｌｌコマンドは、デバイスが、送信すべきデータを有するかどうか、ホストがデバイスに確認するのに使用される。以上のコマンドの実施は、プロトコル依存である。実現可能な場合、Ｐｏｌｌコマンドは、データなしのＰｕｔ  Ｐａｃｋｅｔコマンドとして実施されることが可能である。そのケースでは、ピアＩ／Ｏプロトコルは、２つのコマンド、Ｐｕｔ  ＰａｃｋｅｔおよびＧｅｔ  Ｐａｃｋｅｔだけを要求する。
【００４１】
ピアＩ／Ｏコマンドタイプは、基礎をなすプロトコルに依存して、１バイトで表される、または２ビットで表される、または１ビットで表されることさえ可能である。Ｐｕｔ  Ｐａｃｋｅｔコマンドは、通常、以下のフォーマットを有する。
【表１】
2008538458.tif 000003
ただし、Ｌｅｎｇｔｈは、ホストからデバイスに送信されるべきデータの長さである。ホストからＰｕｔ  Ｐａｃｋｅｔコマンドを受信した後、デバイスは、データを獲得し、ステータスを戻す。
【００４２】
Ｇｅｔ  Ｐａｃｋｅｔコマンドは、通常、以下のフォーマットを有し、ただし、Ｌｅｎｇｔｈは、デバイスからホストに獲得されるべきデータの長さである。
【表２】
2008538458.tif 000004
【００４３】
ホストからＧｅｔ  Ｐａｃｋｅｔコマンドを受信した後、デバイスは、要求される長さのデータをホストに送信し、次に、ステータスを送信する。
【００４４】
Ｐｏｌｌコマンドは、通常、パラメータを要さない。ホストからＰｏｌｌコマンドを受信した後、デバイスは、ステータスを送信する。
【００４５】
デバイスからホストに戻されるステータスは、以下を含め、いくつかの事を表すことが可能である。すなわち、
送信されるべき長さｎのデータを有する。
送信されるべきデータが存在しない。
送信されるべきデータが存在せず、ポーリング間隔を設定する。ポーリング間隔は、無限であることが可能であり、これは、「ポーリングしないでください、私はデータを待っています」を意味する。
【００４６】
基礎をなすプロトコルは、通常、データの長さをパケット内に制限する。例えば、何らかのプロトコルが、データを２５６バイトに制限する。ピアＩ／Ｏプロトコルは、基礎をなすプロトコルの制限を守る。ピアＩ／Ｏプロトコルは、必要に応じて、複数のプットコマンドおよびゲットコマンドを発行することにより、より大きいパケットを送受信することを可能にする。ピアＩ／Ｏプロトコルは、上位レイヤプロトコルが、ピアＩ／Ｏプロトコルのパケットの境界を知っているものと想定する。
【００４７】
（ピアＩ／Ｏプロトコルの動作）
このセクションは、ピアＩ／Ｏプロトコルのいくつかの通常の動作を説明する。ネットワークがデータをデバイスに送信する際、ピアＩ／Ｏサーバ３１５が、Ｐｕｔ  Ｐａｃｋｅｔコマンドをデバイスに発行する。
【表３】
2008538458.tif 000005
【００４８】
デバイスは、データをネットワークに送信することを望む場合、機会を待たなければならない。ピアＩ／Ｏサーバ３１５は、デバイスに定期的にポーリングを行って、送信する機会をデバイスに与える。サーバは、ＰＯＬＬコマンドを発行する。
【表４】
2008538458.tif 000006
【００４９】
ピアＩ／Ｏサーバ３１５からコマンドを受信した後、デバイスが送信すべきデータを全く有さない場合、デバイスは、そのことを示すステータスを送信する。デバイスが、送信すべきデータを有する場合、デバイスは、「データを有する」ステータス、およびデバイスが送信しようとするデータの長さを送信する。
【００５０】
ピアＩ／Ｏサーバ３１５は、送信すべきデータをデバイスが有することを示すステータスを受信すると、Ｇｅｔ  Ｐａｃｋｅｔコマンドを発行する。
【表５】
2008538458.tif 000007
【００５１】
デバイスは、データを含む応答で応答する。
【表６】
2008538458.tif 000008
【００５２】
Ｓｔａｔｕｓが、送信されるべきさらなるデータを示す場合、ピアＩ／Ｏサーバ３１５は、別のＧｅｔ  Ｐａｃｋｅｔコマンドを発行することができる。
【００５３】
（抑制されたポーリング）
ホストにおけるピアＩ／Ｏサーバ３１５は、デバイスに定期的にポーリングして、デバイスが、送信すべきデータを有するかどうかを調べる。このポーリングは、無限であることが可能なポーリング間隔によって抑制される。そのような抑制されたポーリングは、デバイス３０１が、ホスト３０３によって絶えずポーリングされた場合に生じることになる電力消費を抑える。
【００５４】
ピアＩ／Ｏは、ポーリング間隔を指定することを可能にする新たなリターンステータスを定義する。デフォルトのポーリング間隔は、「可能な限り頻繁に」である。間隔は、秒数、分数、または時間数で指定されることが可能である。ピアＩ／Ｏサーバ３１５は、可能な限りポーリング間隔に近くポーリングを行う。また、ポーリング間隔は、無限であることも可能である。デバイスは、データを受信するのを待っている際、無限のポーリング間隔を指定することができる。そのケースでは、ピアＩ／Ｏサーバ３１５は、デバイスにポーリングを行わず、デバイス向けにデータが用意されている場合にだけ、デバイスに連絡する。例えば、デバイスが、Ｗｅｂサーバである場合、クライアント接続を待つ際、デバイスは、ポーリング間隔を無限に設定することができる。ピアＩ／Ｏへの、この新たな追加は、移動体の応用先に関して、例えば、ホストが、バッテリで駆動している小型の移動デバイスであり、デバイスが、ホストによって供給される電力を消費する場合に、非常に重要である。
【００５５】
例として、リターンステータスは、２つのオクテットで表現されることが可能である。最上位の４ビットは、「データを有する」または「データなし」を表す。「データを有する」ケースに関しては、残りのビットは、データの長さを表すことが可能である。「データなし」のケースに関しては、残りすべてのビットは、０であり、これは、デフォルトのポーリングであることが可能な「現在のポーリング間隔を使用する」を意味する。残りすべてのビットが１である場合、これは、「ポーリングを行わないでください」を意味する。それ以外の場合、次の２ビットは、秒、分、または時間などのポーリング間隔の単位を表す。残りの１０ビットは、ポーリング間隔を表す。
【００５６】
例えば、以下の図は、データなしのケースに関するリターンステータスを示す。
【表７】
2008538458.tif 000009
【００５７】
以下の図は、データを有するケースに関するリターンステータスを示す。
【表８】
2008538458.tif 000010
【００５８】
ピアＩ／Ｏサーバ３１５およびピアＩ／Ｏクライアント３２５の動作は、２つの有限状態マシンによって、それぞれ、制御される。
【００５９】
図９は、ピアＩ／Ｏサーバ３１５の挙動を制御する有限状態マシン９０１の概略図である。
【００６０】
ＦＳＭ（有限状態マシン）９０１は、以下の５つのステータスを有する。すなわち、
初期状態９０２、
ポーリング９０３、
クライアントから獲得する９０５、
クライアントにデータをプットする９０９、および
データがないかネットワークをチェックする９０７。
【００６１】
以下の４つのイベントが存在する。すなわち、
クライアントからの４種類のリターンステータス、すなわち、
クライアントが、データを有する。（ｃｄ）
クライアントが、データを有さない、ポーリング間隔を変更しない。（ｃｎｄ）
クライアントが、データを有さない、ポーリング間隔を変更する。（ｃｎｄ＋ｐ）
クライアントが、データを有さない、ポーリングしない。（ｃｎｄ＋ｎｐ）
ネットワークをチェックしたことの２つの結果。すなわち、
ネットワークが、データを有さない。（ｎｎｄ）
ネットワークが、データを有する。（ｎｄ）
以下の４つのアクションが、存在する。すなわち、
クライアントからパケットを獲得する。
クライアントにパケットをプットする。
ネットワークからパケットを獲得する。
ネットワークにパケットをプットする。
【００６２】
ピアＩ／Ｏサーバ３１５は、ピアＩ／Ｏクライアント３２５にポーリングすることから始める。そのポーリングに応答して、クライアント３２５は、クライアント３２５が、データ伝送を有するかどうか、およびピアＩ／Ｏクライアント３２５に再び伝送するのに先立って、ピアＩ／Ｏサーバ３１５が待つべきポーリング間隔を示すことができる。
【００６３】
ピアＩ／Ｏクライアント３２５が、ステータス（ｃｄ）を戻す場合はいつでも、遷移４０１であり、それは、クライアント３２５が、送信すべきデータを有することの指示である。その指示に応答して、ピアＩ／Ｏサーバ３１５は、クライアント３２５からデータを獲得し、データをネットワーク１１７に転送する。サーバ３２５は、Ｇｅｔ＿Ｐａｃｋｅｔアクションを発行することにより、クライアント３１５からデータを獲得することを続け（状態９０５）、クライアント３１５がステータスｃｄを戻す限り、ネットワークにデータを転送する（遷移４０３）。
【００６４】
クライアントが、値ｃｎｄ、または、受信する準備ができていることを戻すことにより、送信すべきデータを有さないことを示すステータスを戻すと、ピアＩ／Ｏサーバ３１５は、ネットワークを調べる（状態９０７への遷移４０７）。ネットワークが、データを有する場合、ピアＩ／Ｏサーバ３１５は、ネットワークからデータを獲得し、そのデータをクライアント３２５に転送する（状態９０９への遷移４０９）。ネットワークが、データを有さない場合（ｎｎｄ）、ピアＩ／Ｏサーバ３１５は、ポーリング間隔設定に依存して、クライアント３２５にポーリングすることも、しないことも可能である。例えば、ポーリング間隔が、設定されており（ｐｉｎｔｖ）、クライアント３２５への前回の伝送以来、経過した時間が、ポーリング間隔（ｔｉｍｅｏｕｔ）に達している場合、ピアＩ／Ｏサーバ３１５は、クライアント３２５にポーリングを行い（状態９０３への遷移４１１）、さもなければ、すなわち、ポーリング間隔に達していない場合（ｔｉｍｅｏｕｔ）、サーバ３１５は、「ネットワークをチェックする」状態９０７に留まる（遷移４１３）。
【００６５】
図５は、ピアＩ／Ｏクライアント３２５の挙動を制御する有限状態マシン５０１の概略図である。
【００６６】
ピアＩ／Ｏクライアント状態マシンは、以下の４つの状態を有する。すなわち、
初期状態、状態５０３
上位レイヤ命令（読み取りまたは書き込み）待ち、状態５０５
書き込みレディ、ピアＩ／Ｏサーバ待ち、状態５０７
読み取りレディ、ピアＩ／Ｏサーバ待ち、状態５０９
以下の５つのイベントが、存在する。すなわち、
上位レイヤからの読み取り命令
上位レイヤからの書き込み命令
ピアＩ／Ｏサーバ３１５からのＰｏｌｌコマンド
ピアＩ／Ｏサーバ３１５からのＰｕｔコマンド
ピアＩ／Ｏサーバ３１５からのＧｅｔコマンド
以下の４つのアクションが、存在する。すなわち、
ステータス「クライアントが、データを有する」（ｃｄ）をピアＩ／Ｏサーバ３１５に送信する
ステータス「クライアントが、データを有さない」（ｃｎｄ）をピアＩ／Ｏサーバ３１５に送信する
クライアントが、データを有さない、ポーリング間隔を変更しない。（ｃｎｄ）
クライアントが、データを有さない、ポーリング間隔を変更する。（ｃｎｄ＋ｐ）
クライアントが、データを有さない、ポーリングしない。（ｃｎｄ＋ｎｐ）
ピアＩ／Ｏサーバ３１５からデータを獲得する
ピアＩ／Ｏサーバ３１５にデータを送信する。
【００６７】
デバイス３０１は、ピアＩ／Ｏクライアント３２５を動作させ、これは、初期状態５０３で始まる。上位レイヤ、例えば、ＴＣＰ／ＩＰモジュール３２７を介して通信するアプリケーション３０７ａ〜ｃが、書き込むこと、または読み取ることを要求することが可能である。例えば、デバイス３０１が、ネットワークへの接続を開始することを所望する場合、デバイス３０１上のアプリケーション３０７が、接続を開始するための最初のメッセージを送信する（ピアＩ／Ｏプロトコルは、接続を開始するのがデバイスであるか、またはホストであるかに依存しない）。ピアＩ／Ｏクライアント３２５は、上位レイヤが、書き込み命令を発行すると、「初期」状態５０３を離れ、「書き込みレディ」状態５０７に移る（遷移５１１）。「書き込みレディ」状態５０７にある間、ピアＩ／Ｏクライアント３２５は、ピアＩ／Ｏサーバ３１５からのメッセージを待つ。本明細書で前述したとおり、サーバ３１５は、クライアント３２５にポーリングすることから始める。サーバが、ポーリングを行い、クライアント３２５が、書き込みレディ状態５０７にあると、クライアント３２５は、送信されるべきバイト数とともに、ステータスｃｄを送信し（遷移５１３）、「書き込みレディ」状態５０７に留まる。サーバ３１５が、Ｇｅｔ  Ｐａｃｋｅｔコマンドを発行すると、クライアント３２５は、データを送信し、「上位待ち」状態５０５に移り、クライアント３２５は、上位レイヤ命令を待つ（遷移５１４）。
【００６８】
クライアント３２５が、「上位待ち」状態５０５にある際に、上位レイヤが、「書き込み」を発行すると、クライアント３２５は、ピアＩ／Ｏサーバ３１５にステータスｃｄを送信し、「書き込みレディ」状態５０７に移る（遷移５１６）。他方、上位レイヤが、「読み取り」を発行した場合、クライアント３２５は、ステータスｃｎｄをピアＩ／Ｏサーバ３１５に送信し、「読み取りレディ」状態５０９に移る（遷移５１７）。また、クライアント３２５は、クライアント３２５が、「初期」状態５０３にある間に、上位レイヤから「読み取り」命令を受信した場合、「初期」状態５０３から「読み取りレディ」状態５０９に遷移することもできる（遷移５２１）。「読み取りレディ」状態５０９において、クライアント３２５は、ピアＩ／Ｏサーバ３１５コマンドを待つ。サーバ３１５が、ポーリングを行うと、クライアント３２５は、別のｃｎｄを送信し、「読み取りレディ」状態５０９に留まる（遷移５１９）。サーバ３１５が、Ｐｕｔ  Ｐａｃｋｅｔコマンドを発行した場合、クライアント３２５は、データを獲得し、「上位待ち」状態５０５に移る（遷移５１５）。
【００６９】
（応用先）
ピアＩ／Ｏプロトコルは、多くの応用先を有する。第１の例は、ホストコンピュータを介して、ネットワークスマートカードをインターネットに接続することである。
【００７０】
スマートカードは、マイクロプロセッサチップを含む小型カードである。ＩＳＯが、スマートカードに関する２つのフォームファクタ、すなわち、クレジットカード形状のカード、およびＳＩＭ（Ｓｕｂｓｃｒｉｂｅｒ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  Ｍｏｄｕｌｅ）カードを定義している。スマートカードは、セキュリティで保護され、ポータブルであり、不正変更を受けにくい。スマートカードは、移動通信（セル電話機におけるＳＩＭカード）、銀行取引、物理的アクセス規制、ネットワークアクセス規制、交通、デジタルＩＤなどを含め、多種多様な応用先に関してセキュリティの目的に供されてきた。残念ながら、スマートカード通信標準は、主流のコンピューティングの通信標準と合致せず、そのことにより、スマートカードの成功が限られていた。
【００７１】
現行のスマートカード標準ＩＳＯ７８１６（非接触型スマートカードに関してはＩＳＯ１４４４３）は、半二重シリアルコマンド／応答通信プロトコルを指定するのに対して、ＰＰＰ、ＩＰ、およびＴＣＰなどの標準のインターネットプロトコルは、全二重のピアツーピアモードで動作する。ピアＩ／Ｏを適用することにより、ＩＳＯ７８１６（またはＩＳＯ１４４４３）に準拠する現行のスマートカードが、インターネットノードとなることが可能になる。このセクションは、ＩＳＯ７８１６コマンドを使用するピアＩ／Ｏの実施を説明する。
【００７２】
図６は、本発明によるインフラストラクチャレスネットワークスマートカード３０１をネットワーク１１７に接続するための第１の代替の図である。インフラストラクチャレスネットワークスマートカード３０１は、ホストコンピュータ３０３に接続されたリーダ３０２に接続される。コンピュータ３０３は、ネットワーク１１７に接続される。コンピュータ３０３は、インターネット通信をカード３０１にルーティングするため、およびカード３０１からルーティングするためのルータの役割をする。コンピュータ３０３は、ネットワーク１１７への接続のための第１のＩＰアドレスと、インフラストラクチャレスネットワークスマートカード３０１への接続のための第２のＩＰアドレスとを有する。インフラストラクチャレスネットワークスマートカード３０１に関連付けられた第３のＩＰアドレスが存在する。第３のＩＰアドレスは、カード３０１に割り当てられること、または動的に割り振られることが可能である。
【００７３】
コンピュータ３０３は、そのコンピュータに接続された他のコンピュータ群にインターネットサービスを提供するＲＡＳ（リモートアクセスサーバ）を有する。スマートカード３０１が、全二重シリアルＩ／Ｏを有する場合、他の全二重シリアルデバイスと全く同様に、ＴＣＰ／ＩＰ／ＰＰＰを有するスマートカードは、コンピュータ３０３上にさらなるソフトウェアを全くロードすることなしに、ＲＡＳを介して、インターネット接続を確立することもできる。現実には、スマートカード標準は、半二重シリアルＩ／Ｏを指定する。全二重対半二重の問題に加え、インターネットプロトコルは、ノードが意のままに通信できることを意味する、ピアツーピアであるのに対して、ＩＳＯ７８１６プロトコルおよびＩＳＯ１４４４３プロトコルは、スマートカードが端末装置によって発行されたコマンドに応答するだけである、コマンド／応答動作を指定する。本発明に従って実施されるピアＩ／Ｏプロトコルは、以上のプロトコル不一致の問題の両方を解決する。
【００７４】
本発明によるピアＩ／Ｏインプリメンテーションは、ホストコンピュータ３０３（またはリーダ３０２）上、およびスマートカード３０１内の協働する通信モジュールとして存在する。ホストコンピュータ（またはリーダ）は、カードと、ホスト上のＲＡＳ（リモートアクセスサーバ）との間でメッセージを転送するサービスを提供するピアＩ／Ｏサーバ３１５を含む。カードは、ＩＳＯ７８１６より上位に位置し、かつＰＰＰなどの他のプロトコルより下位に位置するピアＩ／Ｏクライアントを含む。
【００７５】
ＲＡＳが、メッセージをカードに送信する際、ピアＩ／Ｏサーバ３１５は、そのメッセージを含む１つまたは複数のＡＰＤＵコマンドをカードに送信することにより、そのメッセージを転送する。カードが、ＲＡＳにメッセージを送信することを可能にするために、ピアＩ／Ｏサーバ３１５は、ポーリング間隔に従って定期的に、カードにポーリングする。
【００７６】
図７は、ピアＩ／Ｏプロトコルを実施する、通信プロトコルスタック、ホストコンピュータ３０３、およびネットワークスマートカード３０１の高レベル概略図である。
【００７７】
本明細書でピアＩ／Ｏとして概要が述べられるリンクレイヤプロトコルを含む本発明の諸実施形態では、ピアＩ／Ｏモジュールは、ホストコンピュータ３０３（またはリーダ３０２）とカード３０１の両方の中に存在する。ホストＰＣ側３０３のプロトコルスタックであるピアＩ／Ｏサーバモジュール３１５は、ピアＩ／Ｏプロトコルレイヤを実施し、カード３０１と、ホストコンピュータ３０３上のＲＡＳ（リモートアクセスサーバ）７０１との間でメッセージを転送するサービスを提供する。スマートカード３０１側では、プロトコルスタックは、ＡＰＤＵ８０７より上位に位置し、ＰＰＰ３２９のような、他のプロトコルより下位に位置するピアＩ／Ｏプロトコルレイヤ３２５を含む。ＡＰＤＵは、ホスト３０３とカード３０１の間で通信を提供する。ピアＩ／Ｏプロトコルは、ピアＩ／Ｏプロトコルが伝送するインターネットプロトコルには依存しない。上位レイヤのプロトコルから見て、ピアＩ／Ｏは、両方の方向で行き来するメッセージを伝送することができる。例えば、ピアＩ／Ｏは、ＰＰＰフレーム、またはイーサネット（登録商標）フレーム、またはＩＰデータグラムを伝送するのに使用されることが可能である。ピアＩ／Ｏは、ＡＰＤＵを使用して、ＰＰＰフレーム、イーサネット（登録商標）フレーム、またはＩＰデータグラムなどのメッセージを伝送する。ピアＩ／Ｏの以下の説明は、ＲＡＳおよびＰＰＰを例として使用する。そのケースでは、ピアＩ／Ｏは、ＡＰＤＵを使用して、ＰＰＰフレームを伝送する。
【００７８】
ＲＡＳが、メッセージをカード３０１に送信する際、ピアＩ／Ｏサーバ３１５は、そのメッセージを含む１つまたは複数のＡＰＤＵコマンドをカード３０１に送信することにより、そのメッセージを転送する。カード３０１が、メッセージをＲＡＳに送信するのを可能にするために、ピアＩ／Ｏサーバ３１５は、本明細書で前述したとおり、カード３０１に定期的にポーリングする。ピアＩ／Ｏサーバ３１５およびピアＩ／Ｏクライアント３２５の、以下により詳細に説明する有限状態マシンが、明示的な細分化−組み立て機構を使用することなしに、任意の長さのメッセージを転送する機構を定義する。
【００７９】
（ピアＩ／Ｏプロトコルフォーマット）
以下は、ＩＳＯ７８１６通信プロトコル上に構築されたピアＩ／Ｏの１つのインプリメンテーションを定義する。ピアＩ／Ｏインプリメンテーションは、以下の定義されたクラス、命令、およびステータス語セットに限定されない。ピアＩ／Ｏプロトコルは、ピアＩ／Ｏプロトコルに関する新たなＩＳＯ７８１６クラス、ＣＬＡ＝０ｘ１２を定義する（ＩＳＯ７８１６−４は、将来の使用のために０ｘ１０〜０ｘ７Ｆ  ＣＬＡ番号を確保している。ＩＳｉｍｐｌｉｆｙは、０ｘ１０を使用する）。このピアＩ／Ｏクラスに関して、３つの命令、すなわち、ＰＯＬＬ、ＧＥＴ＿ＰＡＣＫＥＴ、およびＰＵＴ＿ＰＡＣＫＥＴが、定義される。ピアＩ／Ｏサーバ３１５は、ＰＯＬＬを使用して、カードが何かを送信することを所望するかどうかを調べるためにカードをポーリングし、ＧＥＴ＿ＰＡＣＫＥＴを使用して、カードからデータを獲得し、ＰＵＴ＿ＰＡＣＫＥＴを使用して、データをカードに送信する。ピアＩ／Ｏプロトコルは、独自のプロトコルデータユニットを有さない。ピアＩ／Ｏプロトコルは、ＡＰＤＵを直接に使用する。
【００８０】
ピアＩ／ＯコマンドＡＰＤＵは、以下のフォーマットを有する。すなわち、
【表９】
2008538458.tif 000011
【００８１】
命令ＩＮＳは、以下の１つであることが可能である。すなわち、
ＰＯＬＬ（０ｘＥ８）  Ｌｅｎｇｔｈ＝１、Ｄａｔａは、任意の１バイトである。
ＰＵＴ＿ＰＡＣＫＥＴ（０ｘＥＡ）  Ｌｅｎｇｔｈは、カードに送信されるＤａｔａのバイト数である。
ＧＥＴ＿ＰＡＣＫＥＴ（０ｘＥＣ）  Ｌｅｎｇｔｈは、カードから受信されるＤａｔａのバイト数である。
【００８２】
Ｌｅｎｇｔｈは、１バイトであり、したがって、最大データ長は、２５６バイトである。ＰＯＬＬコマンドは、任意の１バイトを送信することに留意されたい。そうするのは、ＡＣＫがカードによって全く送信されず、一部のリーダがうまく機能しない、ＩＳＯ７８１６  Ｃａｓｅ  Ｉコマンドを避けるためである。
【００８３】
応答ＡＰＤＵは、以下のフォーマットを有する。すなわち、
【表１０】
2008538458.tif 000012
【００８４】
ＡＣＫは、ピアＩ／Ｏサーバ３１５からコマンドを受信したことに関する、カードからの確認応答を表す。ＡＣＫは、受信されたコマンドのＩＮＣコードである。カード側のプロセスのステータスは、応答ＡＰＤＵの中でＳＷ１およびＳＷ２によって表現される。３つすべてのピアＩ／Ｏ命令に関して、応答ステータスは、以下のとおりであることが可能である。すなわち、
ＲＥＡＤＹ−ＷＲＩＴＥｘｘ（例えば、６Ｃｘｘ）  ｘｘは、カードが送信する準備ができたバイト数を表す。
ＮＯ−ＤＡＴＡ（例えば、９０００）  カードは、受信する準備ができている。
９ｘｘｘ  カードが、ポーリング間隔を設定する。
【００８５】
通常のステータスに関して６Ｃｘｘを使用する理由は、以下である。ホスト側のＩＯＰ  ＡＰＩが、ＡＰＤＵコマンドのステータスをエクスポートしない。したがって、６Ｃｘｘは、ピアＩ／Ｏサーバ３１５が、６Ｃｘｘを例外として捕らえるように使用される。
【００８６】
（ピアＩ／Ｏ動作）
ＲＡＳが、カードにデータを送信する際、ピアＩ／Ｏサーバ３１５は、カードにＰＵＴ＿ＰＡＣＫＥＴコマンドを発行する。ＡＰＤＵは、データを含む。
【表１１】
2008538458.tif 000013
【００８７】
カードが、ＲＡＳにデータを送信することを所望する場合、カードは、機会を待たなければならない。ピアＩ／Ｏサーバ３１５は、定期的にポーリングを行って、送信する機会をカードに与える。サーバは、ＰＯＬＬコマンドを発行する。
【表１２】
2008538458.tif 000014
【００８８】
ピアＩ／Ｏサーバ３１５からコマンドＡＰＤＵを受信した後、カードは、まず、ＡＣＫで応答する。カードが、送信すべきデータを有さない場合、カードは、ＳＷ１  ＳＷ２をＮＯ−ＤＡＴＡ（例えば、９０  ００）に設定する。
【表１３】
2008538458.tif 000015
【００８９】
カードが、送信すべきデータを有する場合、カードは、ＳＷ１  ＳＷ２を６Ｃｘｘとして設定し、ただし、ｘｘは、カードが送信しようとするデータの長さである。
【表１４】
2008538458.tif 000016
【００９０】
ピアＩ／Ｏサーバ３１５が、ステータスＲＥＡＤＹ−ＷＲＩＴＥ（６Ｃｘｘ）で応答を受信すると、ピアＩ／Ｏサーバ３１５は、他のいずれのコマンドを発行するよりも前に、Ｌｅｎｇｔｈ＝ｘｘを有するＧＥＴ＿ＰＡＣＫＥＴコマンドを発行する。
【表１５】
2008538458.tif 000017
【００９１】
カードは、データを含む応答ＡＰＤＵで応答する。
【表１６】
2008538458.tif 000018
【００９２】
ＳＷ１  ＳＷ２＝６Ｃｘｘである場合、ピアＩ／Ｏサーバ３１５は、別のＧＥＴ＿ＰＡＣＫＥＴコマンドを発行することができる。
【００９３】
（スマートカード上のインプリメンテーション）
図８および図９は、スマートカードシステム上における、本発明によるピアツーピア通信システムの２つの代替のインプリメンテーションの概略図である。
【００９４】
図８は、スマートカードが、半二重シリアルＩ／Ｏを有するシリアル接続を使用してホストコンピュータに通信する、スマートカードとネットワークの間における通信を実施するための構成要素の概略図である。スマートカード３０１は、リーダ３０２を介してホストコンピュータ３０３に接続する。リーダのドライバが、ピアＩ／Ｏサーバ３１５を実施する。シリアルポートドライバ８０３と一緒に、合成ドライバが、ホストコンピュータ３０３から見て、（仮想）シリアルポートとして振舞う。仮想シリアルポートに対する通常のＲＡＳ接続により、スマートカード３０１へのネットワーク接続が可能になる。
【００９５】
また、ピアＩ／Ｏサーバ３１５は、スマートカードリーダ内のハードウェアで実施されることも可能である。図９は、スマートカードが、半二重シリアル接続を介してハードウェアインタフェースデバイスに通信し、インタフェースが、全二重接続を使用してホストコンピュータに通信する、スマートカードとネットワークの間における通信を実施するための構成要素の概略図である。リーダ３０２は、シリアル接続またはＵＳＢ接続を介して、ホストコンピュータ３０３に接続する。（ＵＳＢ接続では、ＵＳＢ／シリアル変換が、リーダ、およびホストコンピュータにおいて必要とされる。）この場合も、シリアルポートに対する通常のＲＡＳ接続により、スマートカード３０１へのネットワーク接続が可能になる。
【００９６】
（ＭＭＣ（ＭｕｌｔｉＭｅｄｉａＣａｒｄ））
別の代替の実施形態では、本明細書で説明する本発明は、ネットワークにＭＭＣ（ＭｕｌｔｉＭｅｄｉａＣａｒｄ）を接続するのに使用される。その実施形態では、ＭＭＣカードは、本明細書で説明するネットワークスマートカード２０１と、ほぼ同じ役割を有する。
【００９７】
ＭＭＣ（ＭｕｌｔｉＭｅｄｉａＣａｒｄ）は、セル電話機、デジタルカメラ、ＭＰ−３音楽プレーヤ、およびＰＤＡなどの、移動体の応用先のための小型（２４ｍｍ×３２ｍｍまたは１８ｍｍ×１．４ｍｍ）で、取り外し可能な、ソリッドステートメモリカードである。ＭＭＣの格納容量は、１ギガバイトのデータまでである。高速のＭＭＣは、毎秒５２メガビットまでデータを転送することができる。ＭＭＣは、読み取り／書き込みアプリケーションのためにはフラッシュ技術を使用し、読み取り専用アプリケーションのためにはＲＯＭ技術またはフラッシュ技術を使用する。
【００９８】
ＭＭＣは、３つの通信ライン（コマンド、クロック、およびデータ）と、４つの供給ラインとを有する、７ピンのシリアルインタフェースを有する。ＭＭＣ初期設定およびＭＭＣデータ転送は、ＭＭＣバスプロトコルに基づく。各メッセージは、３つのトークン、すなわちコマンド、応答、およびデータの１つを使用する。ホストから１つまたは複数のカードに送信されるコマンドトークンは、動作を開始する。応答トークンは、宛先とされたカードまたはカード群からホストに送信される。データトークンは、いずれの方向にも行くことができる。データライン上、およびコマンドライン上のすべてのビットは、クロックを使用して同期で転送される。
【００９９】
セキュアＭＭＣ（Ｓｅｃｕｒｅ  ＭｕｌｔｉＭｅｄｉａＣａｒｄ）は、コンテンツ保護およびｅコマースのために、ＭＭＣにスマートカードセキュリティ機能を追加する。セキュアＭＭＣは、セキュリティで保護された格納のために不正変更を受けにくいモジュールを有し、カード内で暗号化および認証を行う。例えば、Ｉｎｆｉｎｅｏｎ  Ｔｅｃｈｎｏｌｏｇｉｅｓ社が、セキュアＭＭＣにおいてスマートカードハードウェア技術を使用している。セキュアＭＭＣは、標準のＭＭＣと完全に互換性がある。
【０１００】
最近、ＭｕｌｔｉＭｅｄｉａＣａｒｄアソシエーション（ｗｗｗ．ｍｍｃａ．ｏｒｇ）が、次世代のセキュアＭＭＣ（Ｓｅｃｕｒｅ  ＭｕｌｔｉＭｅｄｉａＣａｒｄ）を標準化する作業部会を形成した（ｗｗｗ．ｍｍｃａ．ｏｒｇ／ｐｒｅｓｓ／ＳｅｃｕｒｉｔｙＦｉｎａｌ．ｐｄｆ）。新たな仕様Ｖ．２．０は、スマートカード技術を組み込むための通信インタフェースを作成するＭＭＣ標準プロトコルの拡張を定義している。これにより、ＭＭＣが、暗号化や認証などの、スマートカードセキュリティ機能を提供することが可能になる。拡張されたＭＭＣコマンドセットは、ＭＭＣインタフェースが、標準のスマートカードＩＳＯ−７８１６ＡＰＤＵを伝送することを可能にする。
【０１０１】
スマートカードが、インターネットノードとなることを可能にするための、本明細書で説明する本発明は、将来のセキュアＭＭＣにも適用され、図７（ｅ）に示される。この実施形態では、ピアＩ／Ｏプロトコル（以下により詳細に説明する）は、ＭＭＣバスプロトコルを使用して、インターネットプロトコルデータ、例えば、ＰＰＰフレームを伝送するように、ピアＩ／Ｏクライアント３２５において実施される。ＭＭＣバスに加えて、ＳＰＩが、ＭＭＣへの別の通信インタフェースである。一部のＭＭＣカードは、ＭＭＣモードまたはＳＰＩモードを選択することを可能にする。したがって、ネットワークスマートカードにおけるＳＰＩの使用を説明するセクションで前述した諸方法は、セキュアＭＭＣにも適用される。また、セキュアＭＭＣは、他のマルチメディアトランスポートプロトコルを使用して、ホストまたはネットワークと通信することもできる。図１０は、セキュアＭＭＣをインターネットノードとして作成するための１つの例示的な構成を示す。他の例には、他のリンクレイヤプロトコルでＰＰＰおよびピアＩ／Ｏを置き換えること、およびＵＤＰなどの他のトランスポートプロトコルでＴＣＰを置き換えることが含まれる。
【０１０２】
（ＮＦＣ（近距離通信））
ＮＦＣ（近距離通信）は、無線インタフェースおよび無線プロトコルである。ＮＦＣは、孤立したデバイスからネットワーク化されたデバイスに移行している、民生用電子機器を対象とする。ＮＦＣデバイスは、ユーザがネットワークを構成することを要求することなしに、互いに接近することにより、通信する。ＮＦＣインタフェースは、１３．５６ＭＨｚという規制されていないＲＦ帯域で動作する。通信は、半二重である。動作距離は、およそ０〜２０ｃｍである（ＮＦＣは、「Ｎｅａｒ  Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ−ｗｈｉｔｅ  ｐａｐｅｒ」、ＥＣＭＡ  Ｉｎｔｅｒｎａｔｉｏｎａｌ、Ｅｃｍａ／ＴＣ３２−ＴＧ１９／２００４／１において説明されている）。
【０１０３】
ＮＦＣプロトコルは、イニシエータとターゲットを区別する。イニシエータデバイスは、データ交換を開始し、制御する。ターゲットデバイスは、イニシエータからの要求に応答する。ＮＦＣプロトコルは、２つの動作モード、すなわち能動モードと受動モードを有する。能動モードでは、両方のデバイスが、データを伝送する、デバイス独自のＲＦ電磁場を生成する。受動モードでは、イニシエータだけが、ＲＦ電磁場を生成し、そのＲＦ電磁場を、イニシエータデバイスとターゲットデバイスがともに、データを転送するのに使用する。ＮＦＣデバイスは、初期通信速度を毎秒１０６、２１２、または４２４キロビットに設定する。能動通信モードは、はるかに高いビット伝送速度、毎秒６メガビットに達することが可能である（「Ｎｅａｒ  Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ−Ｉｎｔｅｒｆａｃｅ  ａｎｄ  Ｐｒｏｔｏｃｏｌ（ＮＦＣＩＰ−１）」、Ｓｔａｎｄａｒｄ  ＥＣＭＡ−３４０、２００２年１２月）。
【０１０４】
ＮＦＣは、非常に短距離の無線プロトコルである。ＮＦＣは、２つのＮＦＣデバイスが、通信するために互いに非常に接近していなければならないので、直観的にセキュリティで保護されている。受動通信モードは、ＮＦＣの重要な機能である。移動電話機などのバッテリ駆動の移動デバイス、または電源を有さない移動デバイスが、ＲＦ電磁場を生成することを必要とせずに、他のＮＦＣデバイスと通信することができる。
【０１０５】
ＮＦＣデバイスは、ＮＦＣのＤＥＰ（データ交換プロトコル）を使用してデータを交換する。ＤＥＰは、要求／応答プロトコルである。イニシエータが、要求を送信し、ターゲットが、応答を伝送する。ＲＦ電磁波を生成しないＮＦＣデバイスは、常に、受動通信モードで動作し、ターゲットデバイスである。そのようなＮＦＣデバイスは、標準ＩＳＯ７８１６またはＩＳＯ１４４４３のスマートカードと同様な状況にある。本明細書で前述した諸技術と同様に、ＤＥＰを使用してピアＩ／Ｏを実施することができる。例えば、ＤＥＰプロトコルヘッダの未定義のビット設定を使用して、ピアＩ／Ｏコマンドを定義することができる。
【０１０６】
ネットワークプロトコルが、受動ＮＦＣターゲットデバイスにおいて実施された場合、ピアＩ／Ｏは、そのようなデバイスが、ネットワークピアとして振舞う、つまり、能動デバイスになることを可能にする。
【０１０７】
（他の応用先）
ダラスセミコンダクタ社のｉＢｕｔｔｏｎ（登録商標）は、１６ｍｍのステンレススチール缶ｉＢｕｔｔｏｎ（登録商標）の中に密閉されたコンピュータチップである（ｈｔｔｐ：／／ｗｗｗ．ｉＢｕｔｔｏｎ（登録商標）．ｃｏｍ）。
【０１０８】
ｉＢｕｔｔｏｎ（登録商標）は、キーホルダ、指輪、腕時計、またはその他の身の回りの品に取り付けられることが可能である。ｉＢｕｔｔｏｎ（登録商標）の用途には、建造物およびコンピュータへのアクセス規制が含まれる。ｉＢｕｔｔｏｎ（登録商標）は、読み取り／書き込みデバイスを介してホストコンピュータと通信する。通信は、データ転送が、ビット順であり、半二重である、１ワイヤプロトコルを使用する。ｉＢｕｔｔｏｎ（登録商標）は、スレーブと考えられるのに対して、リーダ／ライタを有するホストは、マスタである。ピアＩ／Ｏは、ｉＢｕｔｔｏｎ（登録商標）の１ワイヤプロトコルを使用して実施されることが可能である。そのインプリメンテーションは、ｉＢｕｔｔｏｎ（登録商標）が、能動ピアになり、通信を開始することを可能にする。
【０１０９】
他の多くのデバイス、例えば、リモートモニタリングデバイス（例えば、衛星モデムモニタリング、患者自宅モニタリング）、オーディオデバイス、および様々な制御システムは、半二重シリアルコマンド／応答（マスタ／スレーブ）通信プロトコルを使用する。ピアＩ／Ｏインプリメンテーションは、そのようなデバイスが、ネットワーキングプロトコルをサポートし、ネットワークにおける能動ピアとなることを可能にすることができる。
【０１１０】
以上から、本発明によって提供されるピアツーピア通信の方法およびシステムは、リソース制約のあるデバイスが、ネットワークピアとして通信することを可能にする効率的で、柔軟性のあるピアツーピア通信を提供することが理解されよう。本発明の方法を実施する、または本発明の方法に従って動作する論理を組み込んだ電子デバイスは、半二重シリアルコマンド／応答通信リンクを介してホストデバイスに通信するように設計されているが、非同期の全二重で通信しているように見える。本発明によるピアツーピア通信のためのシステムおよび方法は、ホストデバイスおよびリソース制約のあるデバイスの電力消費を最小限しか増加させず、したがって、限られた電力供給能力を有する小型ポータブルデバイスにおいて好適に導入されることが可能である。このため、本発明によるピアツーピア通信のシステムおよび方法は、既存の通信システムに優るいくつかの利点をもたらす。
【０１１１】
本発明の特定の諸実施形態を説明し、例示してきたが、本発明は、そのように説明され、例示された部分の特定の形態または構成に限定されるべきではない。本発明は、特許請求の範囲によってのみ、限定される。
【図面の簡単な説明】
【０１１２】
【図１】本発明によるネットワーク接続された電子デバイスが導入されることが可能な動作環境を示す概略図である。
【図２】本発明に関連して使用されることが可能なネットワーク接続された電子デバイス１０１のハードウェアの例示的なアーキテクチャを示す概略図である。
【図３】リソース制約のあるデバイスおよびホストコンピュータに関するソフトウェアアーキテクチャインプリメンテーションを示す概略図である。
【図４】ピアＩ／Ｏサーバの挙動を制御する有限状態マシンを示す概略図である。
【図５】ピアＩ／Ｏクライアントの挙動を制御する有限状態マシンを示す概略図である。
【図６】本発明によるインフラストラクチャレスネットワークスマートカードをネットワークに接続するための第１の代替を示す図である。
【図７】ＡＰＤＵがＰＰＰフレームを伝送するピアＩ／Ｏプロトコルを実施する、通信プロトコルスタック、ホストコンピュータ、およびネットワークスマートカードの高レベル概略図である。
【図８】スマートカードが、半二重シリアルＩ／Ｏを有するシリアル接続を使用してホストコンピュータと通信する、スマートカードとネットワークの間における通信を実施するための構成要素を示す概略図である。
【図９】スマートカードが、半二重シリアル接続を介してハードウェアインタフェースデバイスに通信し、インタフェースが、全二重接続を使用してホストコンピュータに通信する、スマートカードとネットワークの間における通信を実施するための構成要素を示す概略図である。
【図１０】ＭＭＣカードに関連して本発明を導入するための構成要素の実施形態を示す概略図である。
【図１】
2008538458.tif 000019
【図２】
2008538458.tif 000020
【図３】
2008538458.tif 000021
【図４】
2008538458.tif 000022
【図５】
2008538458.tif 000023
【図６】
2008538458.tif 000024
【図７】
2008538458.tif 000025
【図８】
2008538458.tif 000026
【図９】
2008538458.tif 000027
【図１０】
2008538458.tif 000028
【国際調査報告】
2008538458.tif 000029
2008538458.tif 000030
2008538458.tif 000031