関連する出願
本願は、米国特許法第119条(e)の下、2011年1月31日出願の米国仮出願第61/438,069号、名称「Method and Apparatus for Automatically Determining Communities of Interest, for Use over an Ad-hoc Mesh Network, Based on Context Information」の便益を主張するものである。この出願を参照することにより、その全体が本願に組み込まれる。
背景
携帯電話等のワイヤレス・サービスプロバイダや装置メーカーは、魅力的なネットワークサービスやアプリケーション,コンテンツなどを通じて、顧客に価値や利便性を提供しようと日々努力している。一つの開発分野として、ピアツーピア・ネットワーク用通信ネットワークおよびデバイスの利用である。例えば、ユーザピア間のネットワークに対するデバイス間通信ネットワークおよびデバイスの利用等がある。しかし、ピアグループおよび位置の決定やピアグループのメンバ間通信等の領域では、消費電力や信号オーバーヘッド,セキュリティ,プライバシーに関連する技術上の課題により、そうした開発も妨げられてきた。
例示的実施形態
したがって、アドホックメッシュネットワークを利用し、ユーザ装置に関連するコンテキスト情報に基づいてユーザの関心コミュニティ(community of interest)を効率的かつ効果的に決定する改良方法と装置が求められる。
ある実施形態に従って、次の方法が提供される:デバイスに関連するコンテキスト情報にアクセスすることと;コンテキスト情報に関連する一つ以上のテーマを決定するために、コンテキスト情報を処理することと;一つ以上のテーマに関連する一つ以上の関心コミュニティを決定することであって、一つ以上の関心コミュニティはそれぞれに対応するコミュニティ識別子を有する、前記決定することと;一つ以上のテーマに関連する関心コミュニティの少なくとも一つを、対応するコミュニティ識別子に少なくとも部分的に基づいてデバイスに関連付ける決定をすることであって、デバイスに関連付けられるコミュニティの一つ以上に関連するアウェアネス情報にアクセスするようにする、前記決定することと;を含む、方法。さらなる実施形態に従って、次の方法も提供される:デバイスに関連付けられる関心コミュニティの少なくとも一つの利用可能性を、アドホックメッシュネットワークを介し、対応するコミュニティ識別子に少なくとも部分的に基づいて特定することと;デバイスに関連付けられる関心コミュニティの少なくとも一つの利用可能性に少なくとも部分的に基づいて、アウェアネス情報にアクセスする決定をすることと;をさらに含む方法。
別の実施形態に従って、次の装置も提供される:少なくとも一つのプロセッサと;一つ以上のプログラム用プログラムコードを含む少なくとも一つのメモリと;を含む装置であって、少なくとも一つのメモリおよび前記コンピュータプログラムコードは、少なくとも一つのプロセッサとともに少なくとも:デバイスに関連するコンテキスト情報にアクセスすることと;コンテキスト情報に関連する一つ以上のテーマを決定するために、コンテキスト情報を処理することと;一つ以上のテーマに関連する一つ以上の関心コミュニティを決定することであって、一つ以上の関心コミュニティはそれぞれに対応するコミュニティ識別子を有する、前記決定することと;一つ以上のテーマに関連する関心コミュニティの少なくとも一つを、対応するコミュニティ識別子に少なくとも部分的に基づいてデバイスに関連付ける決定をすることであって、デバイスに関連付けられるコミュニティの一つ以上に関連するアウェアネス情報にアクセスするようにする、前記決定することと;を装置に実行させる、装置。さらなる実施形態に従って、次の装置も提供される:装置にさらに、デバイスに関連付けられる関心コミュニティの少なくとも一つの利用可能性を、アドホックメッシュネットワークを介し、対応するコミュニティ識別子に少なくとも部分的に基づいて特定することと;デバイスに関連付けられる関心コミュニティの少なくとも一つの利用可能性に少なくとも部分的に基づいて、アウェアネス情報にアクセスする決定をすることと;を実行させる、装置。
ある実施形態に従って、次のコンピュータ可読記憶媒体が提供される:一つ以上のプロセッサにより実行されると、デバイスに関連するコンテキスト情報にアクセスすることと;コンテキスト情報に関連する一つ以上のテーマを決定するために、コンテキスト情報を処理することと;一つ以上のテーマに関連する一つ以上の関心コミュニティを決定することであって、一つ以上の関心コミュニティはそれぞれに対応するコミュニティ識別子を有する、前記決定することと;一つ以上のテーマに関連する関心コミュニティの少なくとも一つを、対応するコミュニティ識別子に少なくとも部分的に基づいてデバイスに関連付ける決定をすることであって、デバイスに関連付けられるコミュニティの一つ以上に関連するアウェアネス情報にアクセスするようにする、前記決定することと;を装置に実行させる、一つ以上の命令の一つ以上のシーケンスを担持する、コンピュータ可読記憶媒体。さらなる実施形態に従って、次の装置も提供される:装置にさらに、デバイスに関連付けられる関心コミュニティの少なくとも一つの利用可能性を、アドホックメッシュネットワークを介し、対応するコミュニティ識別子に少なくとも部分的に基づいて特定することと;デバイスに関連付けられる関心コミュニティの少なくとも一つの利用可能性に少なくとも部分的に基づいて、アウェアネス情報にアクセスする決定をすることと;を実行させる、装置。
別の実施形態に従って、次の装置も提供される:デバイスに関連するコンテキスト情報にアクセスする手段と;コンテキスト情報に関連する一つ以上のテーマを決定するために、コンテキスト情報を処理する手段と;一つ以上のテーマに関連する一つ以上の関心コミュニティを決定する手段であって、一つ以上の関心コミュニティはそれぞれに対応するコミュニティ識別子を有する、前記決定する手段と;一つ以上のテーマに関連する関心コミュニティの少なくとも一つを、対応するコミュニティ識別子に少なくとも部分的に基づいてデバイスに関連付ける決定をする手段であって、デバイスに関連付けられるコミュニティの一つ以上に関連するアウェアネス情報にアクセスするようにする、前記決定する手段と;を備える、装置。さらなる実施形態に従って、次の装置も提供される:デバイスに関連付けられる関心コミュニティの少なくとも一つの利用可能性を、アドホックメッシュネットワークを介し、対応するコミュニティ識別子に少なくとも部分的に基づいて特定する手段と;デバイスに関連付けられる関心コミュニティの少なくとも一つの利用可能性に少なくとも部分的に基づいて、アウェアネス情報にアクセスする決定をする手段と;さらに備える、装置。
加えて、本発明の様々な例示的実施形態において、次のことが適用されてもよい:(1)データ、および/または(2)情報、および/または(3)少なくとも一つの信号の処理を容易にすること、および/または、前記(1)〜(3)を処理することを含む方法であって、(1)データおよび/または(2)情報および/または(3)少なくとも一つの信号は、本発明の実施形態に関連して本願で開示する方法やプロセスの何れかまたはこれらの組み合わせに基づく、またはその少なくとも一部が上記方法やプロセスの何れかまたはこれらの組み合わせから少なくとも部分的に導かれる、方法。
本発明の様々な例示的実施形態において、少なくとも一つのサービスへのアクセスを可能にするように構成される少なくとも一つのインタフェースへのアクセスを容易にする方法を適用することができる。この方法において、前記少なくとも一つのサービスは、本願に開示されるネットワークやサービスプロバイダによる方法やプロセスのいずれかまたはこれらの組み合わせを実行するように構成される。
本発明の様々な例示的実施形態において、次のことが適用されてもよい:(1)少なくとも一つのデバイスユーザインタフェース要素、及び/又は;(2)少なくとも一つのデバイスユーザインタフェース機能;を形成すること及び/又は変形することを含む方法であって、前記(1)少なくとも一つのデバイスユーザインタフェース要素及び/又は前記(2)少なくとも一つのデバイスユーザインタフェース機能は、本発明の実施形態に関連して本願で開示する方法やプロセスの何れかまたはこれらの組み合わせによって得られたデータ及び/又は情報、及び/又は、本発明の実施形態に関連して本願で開示する方法やプロセスの何れかまたはこれらの組み合わせによって得られた少なくとも一つの信号に少なくとも部分的に基づいている、方法。
本発明の様々な例示的実施形態において、次のことが適用されてもよい:(1)少なくとも一つのデバイスユーザインタフェース要素、及び/又は;(2)少なくとも一つのデバイスユーザインタフェース機能;を形成すること及び/又は変形することを含む方法であって、(1)少なくとも一つのデバイスユーザインタフェース要素及び/又は(2)少なくとも一つのデバイスユーザインタフェース機能は、本発明の実施形態に関連して本願で開示する方法やプロセスの何れかまたはこれらの組み合わせによって得られたデータ及び/又は情報、及び/又は、本発明の実施形態に関連して本願で開示する方法やプロセスの何れかまたはこれらの組み合わせによって得られた少なくとも一つの信号に少なくとも部分的に基づいている、方法。
様々な例示的実施形態において、方法やプロセスはサービスプロバイダや携帯デバイスの側で実行されてもよく、また、サービスプロバイダと携帯デバイスとで遂行されるべきアクションをシェアするあらゆる方法によっても実行されてもよい。
本発明の様々な例示的実施形態において、以下のことが適用されてもよい:本願当初の請求項1から10,21から30,および46から48の何れかに記載の方法を実行する手段を備える、装置。
本発明のさらなる他の側面や特徴、利点が、以下の詳細説明によって容易に明らかになる。以下の詳細説明では、本発明を実施するための最良の形態であると考えられているものも含め、様々な具体的な実施形態と実装形態が例示される。本発明はまた、さらに多くの様々な実施形態を取りうることができ、その細部も、本発明の思想や範囲を逸脱することなく、多くの明白な観点から修正可能なものである。本明細書による説明や図面は例示的な性質を有するものと考えるべきであり、制限的なものとみなすべきではない。
添付の図面は本発明の実施形態を示す。これらは飽くまでも例示であって、限定する目的で示されるものではない。
ある例示的実施形態に従う、アドホックメッシュネットワーク内にコミュニティを配置できる通信システムの略図である。
ある例示的実施形態に従う、アウェアネスサービスモジュールを含む無線ノードの構成要素の略図である。
種々の例示的実施形態に従う、アウェアネスサービスモジュールの構成要素の略図である。
種々の例示的実施形態に従う、アウェアネスサービスモジュールの構成要素の略図である。
種々の例示的実施形態に従う、アウェアネスサービスモジュールの構成要素の略図である。
種々の例示的実施形態に従う、アウェアネスサービスモジュールの構成要素の略図である。
ある例示的実施形態に従う、ネットワークレイヤメッセージヘッダのデータ構造の略図である。
ある例示的実施形態に従う、デバイス間無線レイヤの省電力スキームを示す略図である。
種々の例示的実施形態に従うプロセスであって、アドホックメッシュネットワークを利用し、ユーザ装置に関連する履歴または他のコンテキスト情報に基づいてユーザの関心コミュニティを決定するプロセスのフローチャートである。
種々の例示的実施形態に従うプロセスであって、アドホックメッシュネットワークを利用し、ユーザ装置に関連する履歴または他のコンテキスト情報に基づいてユーザの関心コミュニティを決定するプロセスのフローチャートである。
種々の例示的実施形態に従うプロセスであって、アドホックメッシュネットワークを利用し、ユーザ装置に関連する履歴または他のコンテキスト情報に基づいてユーザの関心コミュニティを決定するプロセスのフローチャートである。
種々の実施形態に従う、アドホックメッシュネットワーク内にコミュニティとコミュニティメンバを配置するプロセスのフローチャートである。
種々の実施形態に従う、アドホックメッシュネットワーク内にコミュニティとコミュニティメンバを配置するプロセスのフローチャートである。
種々の実施形態に従う、アドホックメッシュネットワーク内にコミュニティとコミュニティメンバを配置するプロセスのフローチャートである。
種々の実施形態に従う、アドホックメッシュネットワーク内にコミュニティとコミュニティメンバを配置するプロセスのフローチャートである。
種々の実施形態に従う、アドホックメッシュネットワークを介してフラッディングメッセージを生成するプロセスのフローチャートである。
種々の実施形態に従う、アドホックメッシュネットワークを介してフラッディングメッセージを受信するプロセスのフローチャートである。
ある実施形態に従う、コミュニティまたはコミュニティメンバの可視性を変更するためにコミュニティの状態を設定するプロセスのフローチャートである。
ある例示的実施形態に従う、クエリノードで使用するメッセージとプロセスのシーケンスを示すラダー図である。
ある例示的実施形態に従う、応答ノードで使用するメッセージとプロセスのシーケンスを示すラダー図である。
種々の例示的実施形態に従う、アドホックメッシュネットワーク内にコミュニティを配置するプロセスに用いるユーザインタフェースの略図である。
ある例示的実施形態に従う、携帯デバイスのコミュニティを形成するプロセスのフローチャートである。
本発明の実施形態を実装するために使用できるハードウェアの略図である。
本発明の実施形態を実装するために使用できるチップセットの略図である。
本発明の実施形態を実装するために使用できる携帯端末(ハンドセット等)の略図である。
好適な実施形態の説明
アドホックメッシュネットワークを利用し、ユーザ装置に関連するコンテキスト情報に基づいてユーザの関心コミュニティを効率的かつ効果的に決定する方法および装置を開示する。以降の記述では、説明のために多くの具体的かつ詳細な構成を紹介しているが、これらは本発明の実施形態の深い理解に繋げるためのものである。なお、本発明の実施形態はその詳細構成がなくとも実施可能であって、均等な構成によっても実施可能であるが、こうしたことは当業者にとって自明なことである。また、本発明の実施形態をいたずらに不明瞭にすることを避けるために、既知の構成やデバイスをブロック図の形で示している。
本明細書で使用する「アウェアネス情報(awareness information)」という用語は、ローカル環境やローカル環境内のユーザと通信デバイスに関するあらゆる情報および/またはコンテキストを言及する。アウェアネス情報は例えば、ソーシャルネットワークの構築やプレゼンスの決定,デバイスに関連するコンテキストの決定,広告,情報検索等のアプリケーションをサポートするために使用される。 アドホックメッシュネットワークを利用し、ユーザ装置に関連するコンテキスト情報に基づいてユーザの関心コミュニティを決定することと、アドホックメッシュネットワーク内にコミュニティを配置することに関して、種々の例示的実施形態を記述するが、本明細書に記載する方法はあらゆる種類の通信システムやネットワーク内でも使用できることも想定される。
図1は、ある例示的実施形態に従う、アドホックメッシュネットワークを利用し、ユーザ装置に関連するコンテキスト情報に基づいてユーザの関心コミュニティを効率的かつ効果的に決定できる通信システムの略図である。情報およびコンテキストは、ローカル環境の他のデバイスと情報を収集・交換するために、比喩的に「無線の目と耳」を持つ通信デバイスと考えられる「アウェアネス情報」を含む。しかし、アウェアネス情報を提供するシステムの開発では、特に次の技術領域で重大な技術的課題が突き付けられる:アドホックメッシュネットワークを利用した、ユーザ装置に関連するコンテキスト情報に基づくユーザの関心コミュニティの決定;アウェアネス情報に基づく共通コミュニティの決定;アウェアネス情報を共有するネットワークの構築;アウェアネス情報の配置と構造化;アウェアネス情報を共有するコミュニティの形成;アウェアネス情報の共有を継続的に実行するデバイスの消費電力管理;アウェアネス情報を活用するアプリケーションの開発;アウェアネス情報を共有するユーザのプライバシーと匿名性の管理;スパム等、好ましくないメッセージのネットワークでの蔓延防止。
図1で示す通り、システム100は一つ以上の無線ノード101a-101nを備える。これらは任意で、オペレータA105またはオペレータB107の何れかを介して通信ネットワーク103に接続してもよい。無線ノード101a-101nはあらゆる種類の移動端末,携帯端末,携帯ハンドセットを含む固定端末,パーソナルコンピュータ,ステーション,ユニット,デバイス,マルチメディアタブレット,インターネットノード,通信機,パーソナル携帯端末(PDA),近距離無線通信(NFC)タグやRFIDタグ等の無線読み取りタグ等であってもよく、これらの組み合わせでもよい。無線ノード101a-101nはまた、「ウェアラブル」回路等のあらゆる種類の対ユーザインタフェースに対応できることも想定される。
例示的実施形態では、無線ノード101a-101nはアウェアネス情報を共有するためにアドホックメッシュネットワーク109を形成する。アドホックメッシュネットワーク109は例えば、無線ローカルエリアネットワーク(WLAN)やBluetooth(登録商標)等の短距離無線技術を用いて構築する、モバイルアドホック・ネットワーク(MANET)等のコネクションレスでサーバレスのデバイス間ネットワークである。アドホックメッシュネットワーク109内で、各無線ノード101は移動可能で、任意数の他の無線ノード101の通信距離内にあってもよい。それにより、特定の無線ノード101の通信距離内の無線ノード101a-101nのセットは過渡的であって、無線ノード101a-101nがある位置から別の位置に移動することで変化しうる。
前述の通り、アドホックメッシュネットワークを利用し、ユーザ装置に関連するコンテキスト情報に基づいてユーザの関心コミュニティを決定する通信システムおよびネットワークを開発しているサービスプロバイダとデバイスメーカーは、多くの技術的課題に直面する。例えば、WLANやBluetooth(登録商標)等の現行のアドホック無線技術は、インターネットプロトコル(IP)接続等の接続用に設計されている。しかし、アドホックメッシュネットワーク109等のような「常時接続」環境では、携帯ハンドセットデバイス等の無線ノード101a-101nの多数がIP接続等によって長時間相互接続している状態は、消費電力と拡張性に問題があって実用的ではない。具体的には、広域アドホックネットワークにおけるマルチホップ接続では通常、非常に多くの制御信号と電力を要し、携帯デバイスのバッテリを急速に消耗させる。また、拡張性においても、現行のアドホック無線技術には通常、それが常時サポートできる接続と関連信号の数に制限があるという問題もある。現行アドホック無線技術の別の欠点は、それが、ユーザデバイスに関連するメディアアクセス制御(MAC)アドレス等の固定ネットワークアドレスを通じてユーザの身元を晒してしまうために、ユーザのプライバシーを適切に保護しないことである。
こうした問題に対処するために、システム100はコネクションレス方式でアウェアネス情報を共有するアドホックメッシュネットワーク109を構築する。ここで、「コネクションレス」という用語は、あるノード(無線ノードのあるノード101a)がアウェアネス情報を送信し、全ての周辺ノード101a-101nが、先に制御信号を送信する必要がなくアウェアネス情報を受信できることを言及している。例えば、アドホックWLANにおいて伝送制御プロトコル/IP(TCP/IP)でアウェアネス情報を送信することは、TCP接続を確立するために送信ノードと受信ノードとの間で双方向TCP制御信号を用いるため、コネクションレスではない。アウェアネス情報は例えば、ユーザが介在せずに無線ノード101a-101nが自動で交換する小規模の匿名メッセージに提供される。ここで、「匿名(性)」という用語は、メッセージの送信者の本当のIDが、ユーザやユーザが許可した他のエンティティが意図的にその本当のIDをメッセージに含めない限り、推定できないことを意味する。アウェアネス情報の交換は、無線ノード101から、ブロードキャスト無線ノード101の無線通信範囲内にある隣接無線ノード101へのブロードキャストメッセージ(フラッディングメッセージ等)として行われる。隣接無線ノード101がブロードキャストメッセージを受信すると、受信無線ノード101の各々は順々に他の隣接無線ノード101にメッセージを再ブロードキャストしてもよい。こうして、最初のブロードキャストメッセージはアドホックメッシュネットワーク109全体に伝播する。例示的実施形態によっては、この伝播の範囲を距離や位置,時間等の基準によって制限してもよい。
従来のシステムとは違って、二つの無線ノード(例えば、無線ノード101aと101b)の間のこうしたメッセージはアウェアネス情報の伝達のみを目的とし、音声や動画等を含むファイルやメディア等のコンテンツを送信するものではない。実際に、メッセージはコンテンツを示すポインタやプレゼンス・コンテキスト情報等の小規模データのみを含み、アドホックメッシュネットワーク109を介して送信するデータトラフィックを最小にする。無線ノード101a-101nは次に、通信ネットワーク103でIPを介する等して、他の通信チャネルを用いてコンテンツにアクセスしてもよい。加えて、経路確立・維持のための従来の方法(例えば、通信プロトコルベースの接続等)に関連する問題を、システム100は取り除く。こうした問題は例えば、携帯デバイスの移動で接続を維持・切断することや、多数または高密度の携帯デバイスの環境における接続維持のために高レベルのネットワークリソースを要求すること等に関する問題を含む。例えば、無線ノード101がネットワークに現われる/ネットワークから居なくなるというイベントでは、アドホックメッシュネットワーク109で制御信号は生成されない。同様にシステム100は、クエリノードからのクエリに対する経路応答に必要である場合に限り、経路情報を生成する。経路情報は、クエリメッセージだけを用いて(すなわち、経路情報を生成するのに制御信号を用いずに)生成される。クエリおよびサブクエリ応答プロセスの完了後、経路は消去される。換言すれば、システム100のクエリ/応答プロセスは、あるノード101から別のノードにアウェアネス情報をプッシュする代わりに、要求に応じてアウェアネス情報を提供する応答の経路を提供する。例示的実施形態では、アウェアネス情報を広めるためのプルモードとプッシュモードの両モードが可能である、プッシュモードは例えば、アドホックメッシュネットワーク109に情報が公開されることで、プルモードは例えば、アドホックメッシュネットワーク109の他のノード101a-101nから情報がクエリされることである。ある実施形態では、可能性のあるスパムメッセージの抑制を助けるために、プッシュモードに代えてプルモードでの動作が使用されることも想定される。
また、システム100は、アドホックメッシュネットワーク109を介して通信する無線ノード101の消費電力を最適化し、無線ノード101のバッテリ寿命に重大な影響を及ぼさずに常時接続動作を可能にする。こうしたことは、具体的には、短いアウェアネス情報のみの使用,経路維持信号の必要性の低減,重複メッセージの送受信を最小にする手順の採用,各無線ノード101内の短距離デバイス間無線通信のための効率的なスリープスキーム(ただし、アウェアネス情報ネットワークに典型的な低遅延の要件によって許容されるもの)の採用によって可能となる。こうして、システム100は携帯デバイスのバッテリ充電の間、各無線ノード101の動作を何百時間(例えば、400時間超)も継続できる可能性がある。システム100は「神経系」と見ることもできる。それは、携帯デバイス(「ニューロン」)間で小メッセージ(「神経インパルス」)を継続して交換し、携帯デバイスのユーザにその周囲に関するアウェアネスを伝達する。
システム100によって、アウェアネス情報に基づく新しいサービスやアプリケーションも開発できる。そうしたものとして例えば、ソーシャルネットワーキングアプリケーションやロケーションベースアプリケーション,プレゼンスを決定するアプリケーション,コンテキストを決定するアプリケーション,広告アプリケーション等がある。 特に、ローカル環境に関するアウェアネス情報の連続性および即効性という特質によって、新しいサービスが強力に打ち出される。例えば、アウェアネス情報は、(無線ノード101a-101n等の)携帯デバイスで益々利用し易くなる記憶装置と演算能力と組み合わせられ、アドホックメッシュネットワーク109内の無線ノード101がローカルアウェアネス情報を自動的に生成・検索する、ローカルセマンティックウェブを生成してもよい。ここで、「セマンティックウェブ」という用語は、システムが共有する情報およびメッセージがシステム内のノード101によって理解されうるシステムを言及している。システム100を使用してこうしたローカルセマンティックウェブを構築することにより、グローバルセマンティックウェブの開発を阻害する次の二つの主な課題が克服されることに留意されたい:(1)セマンティックコンテンツを大規模に提供する機構の欠如;(2)ユーザがセマンティックウェブで情報を検索できるセマンティックアウェア検索エンジンの欠如。システム100はまた、共同コンテキスト計算や、情報またはコンテンツへのポインタの公開、規定コミュニティ内の友人の検索、ユーザの周囲で何が起き、どのような人がいるのかの探索、ユーザを意識する環境の構築、その他のアプリケーション等に使用されてもよい。
次に、アウェアネス情報に基づくアプリケーションに関する例示的使用事例のシナリオを示す。
第1使用例では、アウェアネス情報はユーザに近くの人や場所をアラートする。例えば、ユーザが初めての街を訪問中の際、無線ノード101aはユーザに「あなたの友人デビッド(David)の友人であるサルバトーレ(Salvatore)が近くにいます」とアラートする。こうしてユーザは、その初めての街に訪問するサイトに関する提案を得るために、サルバトーレに会う約束をしてもよい。別の例では、ユーザが不慣れな近所で良いレストランを探しているとする。アウェアネス情報に基づくアプリケーションは、現地のレストランを、ユーザの好みと同じ食物がある現地のレストランを、現在そこで食事をしている人数で順位付けしたリストを提供してもよい。こうしたリストは、客の食の好みに関する匿名情報を含むクエリおよび応答に基づいて収集される。
第2使用例では、アプリケーションがユーザの近くのイベントを発見するためにアウェアネス情報を利用する。例えば、ユーザが公園を通り過ぎると、無線ノード101aは近くのデバイスと交換したメッセージに基づいて、「ティーガーデン公園(Tea Garden Park)で日本文化フェスティバルを開催中。あなたの歌舞伎コミュニティのうち、ゼン(Zen),ミ(Mi),シア(Xia),タロ(Talo),クリス(Chris)の5人がそこにいます。」とユーザに通知する。こうしてユーザはフェスティバルに参加すると決めてもよい。
第3使用例では、アプリケーションはアウェアネス情報を用いてロケーションベースまたはコンテキストベースのサービスを提供する。例えば、無線ノード101aは、自身が測位機能を持っていなくても他の近くにある無線ノード101からの匿名アウェアネス情報に基づいて、自身が食料品店にいることが分かる。食料品店はまた、店のウェブページのアドレスといった他の店固有の情報と組み合わせ可能なコンテキスト情報を提供するために、店内にノード101を設置できることも想定される。こうして無線ノード101aは、食料品店内のユーザの位置に基づいて「食洗機洗剤を忘れずに買ってください」とユーザにリマインドする。アウェアネス情報はまた、測位機能を有する隣接無線ノード101からの物理的測位情報であってもよい。こうした機能を有する隣接ノードと測位情報を共有することで、そうした機能のないノード101でもナビゲーションサービスを提供できる。
別の例では、あるユーザのグループがミーティングに出席しようとする。特定のミーティングへの招待には、そのミーティングの出席者の携帯ノード101に格納されるミーティングのIDコードが含まれる。例えば、IDコードはカレンダーデータに格納されていてもよい。本発明で説明する原理を用いて、ノード101はミーティングに参加中、アドホックメッシュネットワーク109を介してミーティングIDコードを交換できる。ユーザの無線デバイス101で交換したIDコードを比較して、そのユーザがIDコードに対応するミーティングに実際にいるかどうかを確認することもできる。こうした正確なソーシャルコンテキストの情報はまた、サービスやアプリケーションの動作をユーザに合わせるように使用されてもよい。
第4使用例では、直ぐに変化する、ローカル環境に非常に特化したローカル情報を検索するアプリケーションが提供される。ローカル情報は通常、従来のインターネット検索エンジンでは到達できない。例えば、コンサートのチケットを購入したユーザが、直前になってコンサートに行けないことになったとする。ユーザは、自身の無線ノード101のアウェアネスサービスモジュール111に「会場YのコンサートXのチケットがある」という文字列を格納する。その結果、数ブロック以内の通りにあって、マルチホップのアドホックメッシュネットワーク109を介して「コンサートXのチケット」の文字列を含むクエリメッセージを送信してチケットを探している近くの無線ノード101aは、前述のユーザのチケットが入手可能である旨のメッセージを自動応答として受信する。
第5使用例では、現地にターゲット広告を提供できるアプリケーションである。例えば、現地の生鮮青果市場の閉場時間が迫っているとする。売主は、アドホックメッシュネットワーク109を介して「本日の残り時間、リンゴ半額」という広告を出そうと決める。その広告は、市場近辺に住むユーザが見ることができる。別の例では、ユーザは新しいプリンタの広告を無線ノード101aで閲覧する。その広告を閲覧することで、広告に添付したコードがアウェアネスサービスモジュール111に格納される。こうしたコードを検索・発見することで、近くの電器店はそのプリンタを1割引で販売する割引価格をユーザに送信する。
第6使用例では、アプリケーションがユーザに関連するアウェアネス情報に基づくアクティビティログを自動的に生成する。例えば、アプリケーションは、ユーザが会った人について、何時,何処で,どういった背景で等の他のアウェアネス情報と共に記録する。こうしてユーザは、通りを歩きながら人に会うとする。その人は知人のようであるが、ユーザはその人の名前やどのような知り合いであるのかを思い出せない。前述のアプリケーションを実行する無線ノード101aは、その人の名前がデビッド(David)で、1年前ロンドンでのサッカーの試合で会った人であることを報告する。
第7使用例では、アドホックメッシュネットワーク109を介して現地の討論スレッドとグループチャットを開始する機能を提供するアプリケーションである。例えば、サッカーチームのサポーターがアドホックメッシュネットワーク109を介してコミュニティを形成し、コミュニティメンバは、特定のチームのファンクラブのコミュニティメンバのみが受信したり読んだりできる(例えば、アドホックメッシュネットワーク109を介して直接送信できる程度の小さいサイズの)ショートテキストメッセージを送信できる。
図2Aは、ある例示的実施形態に従う、アウェアネスサービスモジュールを含む無線ノードの構成要素の略図である。図2Aは、種々の例示的実施形態に従う、アウェアネスサービスモジュールの構成要素の略図である図2B-2Eに関連して示されている。図2Aで示すように、無線ノード101は、アドホックメッシュネットワーク109内でアウェアネス情報を共有する一つ以上の要素を備える。これらの要素の機能は一つ以上の要素で結合されたり、同等の機能を有する他の要素によって実行されたりする場合があることが想定される。この実施形態では、無線ノード101は種々のサービスおよび機能を提供するためにアウェアネス情報を使用するアプリケーション201を含む。こうしたサービスおよび機能はソーシャルネットワーキングアプリケーションやロケーションベースアプリケーション,プレゼンスを決定するアプリケーション,コンテキストを決定するアプリケーション,広告アプリケーション等を含む。 アプリケーション201はアウェアネス情報を取得または共有するためにアウェアネスサービスモジュール111とやり取りしてもよい。
例として、アウェアネスサービスモジュール111はアウェアネスレイヤ203,コミュニティレイヤ205,ネットワークレイヤ207の三つのレイヤを備える。アウェアネスレイヤ203はアウェアネス情報を共有する最上制御レイヤである。図2Bに示すように、アウェアネスレイヤ203は制御ロジック221とアイテムストレージ223を備える。制御ロジック221は例えば、アドホックメッシュネットワーク109を介してアウェアネス情報を生成,公開,クエリ,受信するロジックを提供する。制御ロジック221は生成または受信した情報をアイテムストレージ223に格納してもよい。アイテムストレージ223は無線ノード101を通じて行き交う情報の全部または一部を、日,月,年といった構成可能な時間格納するのに十分なサイズであることも想定される。
例示的実施形態では、大量のクエリまたは情報をアドホックメッシュネットワーク109内の隣接無線ノード101に送ることによって、制御ロジック221はアウェアネス情報のクエリと伝達を可能にする。例えば、クエリを受信すると、クエリ情報を有する現地近隣の無線ノード101は、クエリノードに自動的に応答すると決定してもよい。例示的実施形態によっては、応答情報はまた、伝播する応答が通過する無線ノード101の各々にあるアイテムストレージ223に自動的に格納される。また、クエリへの応答は、クエリに関連する特定のコンテンツのサイズが大きい場合といった特定の状況下では、そのコンテンツ自身の代わりにコンテンツへのポインタを返すことにしてもよい。コンテンツが数十バイトの情報といった比較的小さいサイズの場合、応答情報がコンテンツを直接含んでもよいことも想定される。ポインタを利用することによって、システム100はアドホックメッシュネットワーク109を行き交うデータトラフィックを最小にできる。こうしてユーザは、統一資源位置指定子(URL)アドレスやIPアドレス等のポインタやIP等のより適切な通信プロトコルおよび/またはインフラネットワーク等の通信手段を介して、コンテンツにアクセスできる。IPアドレス等のポインタを受信することで、例えば、そのポインタに関連する通信プロトコルを用いてコンテンツ転送を自動的にトリガしてもよい。情報のブロードキャストまたは公開の場合、公開情報が伝播する全ての無線ノード101は、その情報を各無線ノード101のアイテムストレージ223に格納してもよい。
他の例示的実施形態では、アウェアネスメッセージを大量送信することによって、アウェアネス情報が直接公開されてもよい。アウェアネス情報を拡散するこうしたプッシュモードは、アドホックメッシュネットワーク109を介する広告やグループチャット等のアプリケーションをサポートするために使用される。
システム100のユーザにとって、プライバシーおよび匿名性が問題となりうることは理解されよう。そのため、制御ロジック221はこのプライバシー・匿名性の保護を確実にする機構を提供する。例えば、制御ロジック221は、IDの推測可能性を抑えるように隣接無線ノードの数を少なくして、個人的情報の伝送を防止できる。ここで「個人的情報」という用語は、ユーザの習慣や好み,嗜好(音楽の好み,好きなレストラン等)といったユーザに直接関連する情報を言及する。
制御ロジック221はまた、個別の無線ノード101の追跡をより困難にするために、デコイ(decoy)のクエリおよび応答を定期的にブロードキャストすることもある。コミュニティの部外者はそのコミュニティに関連する認証キーを知らないため、有効メッセージと偽メッセージを区別できない。したがって、デコイメッセージを観測することで、それがない場合にプライベートコミュニティの存在を検知しうる。加えて、制御ロジック221によりユーザは、広告フィルタ等の着信情報フィルタとそのフィルタの動作方法(情報を完全無視する,情報に応答するが保存はしない等)を規定できる。ユーザはプライバシー保護のために、制御ロジック221にアドホックメッシュネットワーク109におけるユーザ自身の可視性(非表示,特定コミュニティにのみ表示,または他のユーザにも表示等)を制御させることも想定される。プライバシー保護のために別の機構として、制御ロジック221は、特定のメッセージと対応IDを匿名にするために、以下で記述するコミュニティレイヤ205とやり取りしてもよい。
アウェアネス情報を伝達する匿名ユーザのための機構の提供がシステム100の目的の一つであるため、スパムメッセージ等の不要または未承諾メッセージが問題となりうることは理解されよう。この問題に対処するために、制御ロジック221は例えば、アウェアネスサービスモジュール111の下位システムレイヤからトラフィック負荷と現在の平均消費電力に関する情報を入手してもよい。トラフィック負荷が中程度または高い場合(このとき、システム100に関する消費電力も中程度または大きいことを意味する)、制御ロジック221が大量のメッセージ(フラッディングメッセージ)を送信する頻度に対する制限が設定されてもよい。こうしたメッセージ制限を無視するノード101からのフラッディングメッセージに対し、それらを全く転送しないように隣接ピアノード101が構成されることも想定される。
アウェアネスレイヤ203はコミュニティレイヤ205と共に、アプリケーション201が制御ロジック221およびアイテムストレージ223の機能にアクセスできるアプリケーションプログラミングインタフェース(API)225を提供する。例示的実施形態では、API225により、アプリケーション開発者がアドホックメッシュネットワーク109を介したアウェアネス情報の共有に関する機能に統一して容易にアクセスできる。アウェアネス情報にアクセスする、またはそれを使用するように設計したあらゆるアプリケーションに適応できるように、API225が拡張可能であることも想定される。種々のノード101のアプリケーションは同一または相互互換である必要はない。アプリケーションは、周辺ノード101でアウェアネス情報を公開および検索できるようにAPIを正しく使用すれば事足りる。
アウェアネスレイヤ203はまた、コミュニティレイヤ205にも接続できる。コミュニティレイヤ205は、アドホックメッシュネットワーク109内の無線ノード101のコミュニティの形成と分類を制御する。例として、ユーザはアウェアネス情報を共有するコミュニティを幾つでも形成してよい。コミュニティは、(任意の無線ノード101が参加できる等の)ピアコミュニティや,(招待された無線ノード101だけ参加できる等の)パーソナルコミュニティ,現近隣の全ノードから成るオープンローカルコミュニティの何れかでもよいことが想定される。例示的実施形態では、アドホックメッシュネットワーク109内の無線ノード101間を横断するメッセージは、これら三つのコミュニティタイプの何れか一つに属する。コミュニティはメッセージが暗号化されるプライベートか、暗号化を用いないパブリックかの何れかである。例示的実施形態では、コミュニティのメンバシップと状態は、無線ノード101がどのようにアウェアネス情報を共有するかに影響を及ぼす(コミュニティのメンバシップに関するその他の詳細については図2Gに関する説明を参照)。
さらに、コミュニティはあらゆる目的または期間で形成されてもよい。こうしたコミュニティとして例えば、正規雇用コミュニティや友人の常設コミュニティ,コンサート期間中限定の来場者臨時コミュニティ等がある。図2Cに示すように、コミュニティレイヤ205はコミュニティ制御モジュール241とコミュニティ名簿243,暗号化/復号モジュール245を備える。コミュニティ制御モジュール241は、コミュニティの形成や参加,管理(例えば、メンバシップの更新,構成や嗜好の設定,プライバシーポリシーの設定等),削除を行うロジックを提供する。モジュール241もAPI225の一部を提供する。
例示的実施形態では、コミュニティ制御モジュール241は、アドホックメッシュネットワーク109内で使われるコミュニティの各々に固有のコミュニティ識別番号(CID)を割り当てる。制御モジュール241は、例えば、コミュニティに参加したいユーザやコミュニティに送られるメッセージを認証するために、CIDに関連する認証キーKを生成してもよい。例えば、無線ノード101は、CIDとコミュニティに関連する認証キーを別の無線ノード101に転送して、そのコミュニティに参加できるようにまた別の無線ノード101を招待してもよい。CIDと対応する認証キーの転送は、短距離無線や、ショートメッセージサービス(SMS)や電子メール等の他の安全な機構を用いて行われることも想定される。ピアコミュニティおよびパーソナルコンピュータは共にCIDと対応する認証キーKを使用するが、一方で、オープンローカルコミュニティではCIDに対して所定の値(例えば、「0」)を使用するか、CIDを全く使用しないかの何れかであることに留意されたい。
前述のプライバシーを確保するために、コミュニティ制御モジュール241は暗号化/復号モジュール245と相互通信し、アドホックメッシュネットワーク109を介するメッセージにCIDを含む際にCIDを匿名にする。例えば、無線ノード101は、コミュニティに関連する匿名CID(仮名等)を実際のCIDの代わりに用いる特定のコミュニティにクエリを送ってもよい。例示的実施形態では、一つのコミュニティを表わすために複数の匿名CIDが使用されてもよい。こうして、アドホックメッシュネットワーク109内のトラフィックを監視して特定のコミュニティに対応するクエリを識別することがさらに困難になる。部外者にとっては、匿名CIDは無作為に見える。加えて、暗号化/復号モジュール245は、CIDに関連する認証キーKから定期的に引き出される仮キー等を用いてメッセージデータを暗号化または復号してもよい。こうした方策は、認証キーを持たない部外者によってCIDが発見されないようにする。例として、コミュニティレイヤ205がアウェアネスレイヤ203から受信するメッセージに特殊ヘッダを挿入するとする。この特殊ヘッダは例えば、メッセージが関連するコミュニティに対応する匿名のコミュニティIDのリストを含んでもよい。
図2Dは、ある例示的実施形態に従う、アウェアネス情報を共有する際のコミュニティのメンバシップと状態の影響を示す状態図である。図2Dで示すように、無線ノード101はアドホックメッシュネットワーク109内のコミュニティにおけるメンバシップに関する1一つまたは二つの状態(例えば、不参加状態251と参加状態253)の何れかとなりうる。無線ノード101のアプリケーション201は例えば、コミュニティへの参加または退出の何れかの命令255を出し、不参加状態251と参加状態253との間を遷移する。無線ノード101がコミュニティに対して不参加状態251にある場合、無線ノード101はCIDや関連する認証キーK等のコミュニティに関する情報を持たず、コミュニティに送られるメッセージにアクセスできない。無線ノード101が参加状態253にある場合、コミュニティレイヤ205はコミュニティに関するCIDと場合により一つ以上の認証キーを受信する。ある実施形態では、コミュニティでのメンバシップが招待によるものか制限されている場合(例えば、そのコミュニティがパーソナルコミュニティまたはプライベートコミュニティである場合)に認証キーが提供される。こうして、コミュニティレイヤ205はコミュニティ向け送信メッセージを暗号化し、コミュニティからの受信メッセージを復号できる。
無線ノード101が参加状態253にある場合、無線ノード101は非アクティブ状態257またはアクティブ状態259の何れかであってもよい。非アクティブ状態257とアクティブ状態259との間を遷移するために、アプリケーション201はアプリケーションプログラミングインタフェース225を介して、参加状態253をアクティブ化するまたは非アクティブ化する何れかの命令261を出してもよい。無線ノード101が非アクティブ状態257にある場合、コミュニティのメンバであってもコミュニティレイヤ205はメッセージを放棄する。ある実施形態では、無線ノード101は非アクティブ状態257である間、コミュニティの他のメンバから見えなくなっていてもよい。例えば、無線ノード101が一時的にコミュニティの情報を受信または共有したくない場合、非アクティブ状態257になってもよい。無線ノード101がアクティブ状態259である場合、コミュニティレイヤ205は、プライベートコミュニティに対しては通常通りコミュニティメッセージを暗号化/復号し、パブリックコミュニティ(メンバシップ無制限のコミュニティ等)に対してはコミュニティ固有メッセージの送受信を全て可能にする。
無線ノード101は、アクティブ状態259にある間、非表示状態263または表示状態265の何れかであってもよい。非表示状態263と表示状態265との間を遷移するために、アプリケーション201は表示状態または非表示状態の何れかに設定する命令267を出す。非表示状態263の場合、無線ノード101に関連するユーザエイリアス等コミュニティ固有のIDは、コミュニティの他のメンバがクエリできない。例えば、非表示状態263では、コミュニティレイヤ205は他のコミュニティメンバに既知のIDを使わずにコミュニティメッセージを送受信し続ける。表示状態265の場合、無線ノード101のIDは、コミュニティの他のメンバがクエリできる。
種々の実施形態では、コミュニティレイヤ205のコミュニティ名簿243は例えば、ユーザが参加したコミュニティに関する情報を保持する。こうした情報は少なくともコミュニティID(CID)を含む。また、参加コミュニティの公開鍵および/または秘密鍵認証(K)と各コミュニティに対する匿名コミュニティIDのリストを含んでもよい。コミュニティ制御モジュール241は、匿名CIDのリストを定期的に再計算してもよい。例として、コミュニティレイヤ205がアウェアネスレイヤ203から受信するメッセージにヘッダを挿入するとする。このヘッダは例えば、メッセージが関連するコミュニティに対応する匿名のコミュニティIDのリストを含んでもよい。
ユーザ間で構築した新たな繋がりや関係を追跡するために、特別なパーソナルコミュニティが確保されることも想定される。例えば、ユーザAがユーザBに初めて会い、各ユーザの携帯デバイス間で無線接続を構築したいとする。ある実施形態では、ユーザAは、自分の「新規接続」パーソナルコミュニティのCIDと公開鍵KをユーザBに転送して、ユーザBとの接続確立を開始できる。ユーザBも同様に、自分の「新規接続」コミュニティに対応する認証情報をユーザAに与えてもよい。認証情報を交換して接続確立すると、ユーザAは自分の「新規接続」コミュニティのメンバを検索することで、アドホックメッシュネットワーク109を介してユーザBを探すことができる。換言すれば、単に一つのコミュニティを検索するだけで、ユーザAは自分が構築した接続の現地近隣内の全ての人を探すことができる。このために、多数のコミュニティのCIDとキーをコミュニティ名簿243に記録できることが要求される。また、コミュニティ名簿から効率よく検索する必要もある。そうした効率的な検索を行う優れた方法が多数存在する。
ユーザが新しい接続を確立するため、ユーザのコミュニティ名簿243に格納するコミュニティのCIDとキーの数も相当増える可能性がある。このため、多数のコミュニティを効率よく検索できるように、検索を開始する特別なコミュニティ検索メッセージをコミュニティレイヤ205が生成してもよい。この特別なコミュニティ検索メッセージは例えば、検索対象コミュニティに対応する匿名のコミュニティIDのリストを少なくとも部分的に含んでもよい。プライバシー保護のために、コミュニティレイヤ205は各コミュニティ検索メッセージに対する匿名のコミュニティIDの新しいセットを生成してもよい。コミュニティレイヤ205は、検索メッセージを受信する隣接ノード101の何れかが備える匿名コミュニティIDの何れかとの一致を見付けると、そのコミュニティのユーザエイリアスか他のコミュニティ固有の情報を含む応答メッセージを生成する。応答メッセージはコミュニティの暗号化キーで暗号化されてもよい。
図2Cに示すように、コミュニティレイヤ205は上位ではアウェアネスレイヤ203に、下位ではネットワークレイヤ207にそれぞれ接続している。ネットワークレイヤ207は、無線ノード101が受信したフラッディングメッセージの再ブロードキャストと、受信したユニキャスト(通常は応答)メッセージの経路指定を管理する。図2Eは、ある例示的実施形態に従う、ネットワークレイヤ207の構成要素の略図である。ネットワークレイヤ207はネットワーク制御モジュール271とルーティングテーブル273,隣接テーブル275,メッセージID(MID)テーブル277,メッセージテーブル279を備える。ネットワーク制御モジュール271はルーティングテーブル273と隣接テーブル273,MIDテーブル277,メッセージテーブル279を管理および更新して、メッセージと情報のブロードキャストを送る。ある実施形態では、ネットワーク制御モジュール271は無線ノード101の関連するネットワークレイヤIDを定期的に変更して、ユーザのプライバシーと匿名性の保護を支援してもよい。アドホックメッシュネットワーク109の各クエリはルーティング情報を再作成するため、クエリ間でネットワークレイヤIDの変更があっても、その応答時のルーティングで問題は生じない。
例示的実施形態では、ネットワークレイヤ207は、受信メッセージのフラッディングとルーティングの指示等のために、コミュニティレイヤ205から受信するメッセージにヘッダを挿入してもよい。このネットワークレイヤメッセージヘッダ281は図2Fを参照して説明する。図2Fは、ある例示的実施形態に従う、ネットワークレイヤメッセージヘッダのデータ構造の略図である。メッセージヘッダ281は次のフィールドを含む:(1)最後に送信したノード101である送信ノードのID(ID)を特定するTXフィールド282;(2)メッセージを最初に送信したノード101である送信元ノードのIDを特定するSRCフィールド283;(3)ユニキャスト(応答)メッセージが受信される宛先のIDを特定するDSTフィールド284(例えば、フラッディングメッセージの場合はこのフィールドは値0になる);(4)送信元ノードが割り当てたメッセージシーケンス番号を特定するMSNフィールド285;(5)メッセージを送信するノード101の各々がインクリメントするホップカウントフィールド286。ある実施形態では、メッセージヘッダ281は次のフィールドを含んでもよい:(6)メッセージを伝達したい物理的範囲を指定する地理的制限フィールド287(送信元ノードの地理的位置とそこからのフラッディングの最大半径を含んでもよい);(7)時間制限フィールド288(メッセージが使用されず捨てられるまでの時間を含んでもよい);(8)メッセージを伝達したくない制限のコンテキスト(例えば、特定のコンサートに関するメッセージはそのコンサート会場の外には配信しない等)を規定するコンテキスト制限フィールド289。
再び図2Eを参照すると、ネットワークレイヤ207はルーティングテーブル273も備える。例示的実施形態では、ルーティングテーブル273は発信無線ノード101(送信元)のノード識別番号(NID)とそのメッセージを最後に送信したと分かるノードのNIDのリストを含む。ルーティングテーブルの目的は、クエリを生成したクエリノードにフラッディングメッセージを介して返される応答メッセージ(ユニキャストメッセージ等)のルーティングを行うことである。メッセージはアドホックメッシュネットワーク109を介して伝達するので、メッセージを後から受信する無線ノード101の各々は、送信元ノードを基準として次のホップのノードを記録するために、ルーティングテーブルに直前の送信NIDを追加する。送信元ノードは、ルーティングテーブル中で宛先ノード(DST)としてマークされる。またメッセージのメッセージシーケンス番号も記録される。ルーティングテーブル273の更新は、ネットワーク制御モジュール271が調整する。表1に示すように、ルーティングテーブル273は宛先NIDとメッセージをブロードキャストした無線ノード101に関連する送信NID,メッセージのMSMをリストする。
隣接テーブル275は隣接無線ノード101とそれらの相対無線距離の推定値のリストを含む(表3を参照)。測定信号強度は、隣接無線ノード101の既知の送信出力を伴って、無線ノード101の近くにいることを示す指標となり、相対無線距離を計算するために使用されることも想定される。こうして、メッセージを最後に受信した無線ノード101の相対無線距離は、そのノードが受信メッセージを再送するかどうかの基準として使用される。例えば、信号強度が強いほど、その無線ノード101の側により近いことを示してもよい。ネットワーク制御モジュール271は、メッセージを近くのデバイスから受信し、相対無線距離(送信ノード101との近さ等)を推定するためにそれを用いるため、隣接ノード101の信号強度を監視する。ネットワーク制御モジュール271は、隣接ノードの相対無線距離を推定するためのあらゆる他の機構(全地球測位システム衛星の受信機や他の測位技術による位置推定等)を使用してもよいと想定される。
ある実施形態では、ネットワーク制御モジュール271は、アドホックメッシュネットワーク109を介するメッセージのルーティングと送信を指示するために、近接情報を使用する。例えば、システム100は、フラッディングメッセージを再送する一部のノード101にだけスマートフラッディングスキームを実装し、アドホックメッシュネットワーク109に過剰な負荷を掛ける可能性を減らすことができる。ノード101がフラッディングメッセージを再送するかどうかは、そのメッセージの送信者が属するノード101に対する相対距離(「極近距離」,「近距離」,「遠距離」等)のグループに依存してもよい。より具体的には、送信ノード101が「遠距離」または「近距離」グループであれば、受信ノード101はフラッディングメッセージを再送できる。送信ノード101が「極近距離」グループであれば、受信ノード101はフラッディングメッセージを再送しない。「遠距離」または「近距離」グループであるノードから受信したブロードキャストメッセージの各々に対し、ネットワーク制御モジュール271は、中継または再ブロードキャストするためのランダムな遅延時間を割り当てる。遅延時間は例えば、送信前遅延時間をランダムにする方法として、推定した相対無線距離に基づく配信機能を示してもよい。こうした配信は、ランダムな遅延が「遠距離」ノードよりも「近距離」ノードでより大きくなるように選択されるべきである。これにより、例えば、フラッディングメッセージの転送を中継するノード101が遠いほど、より高いフラッディング効率(すなわち、全伝送数がより少ない)が実現される。メッセージはアドホックメッシュネットワーク109を伝播するため、ランダム遅延時間を用いることで、メッセージのブロードキャストにおける予期せぬ同期も回避される。メッセージブロードキャストの予期せぬ同期により、膨大な数のノード101がブロードキャストメッセージ(つまりフラッディングメッセージ)をアドホックメッシュネットワーク109に完全同時刻に送信する、という結果をもたらす可能性もある。加えて、遅延時間によって、他の隣接無線ノード101によるメッセージの再ブロードキャストをネットワーク制御モジュール271が監視およびカウントする機会も与えられる。
MIDテーブル277は受信メッセージのリストを含む。無線ノード101がアドホックメッシュネットワーク109を介して隣接ノードからメッセージを受信すると、そのメッセージが以前に受信済みかどうかを例えば、MIDテーブル277のMIDを受信メッセージのそれと比較することによって調べるために、ネットワーク制御モジュール271はMIDテーブルを使用する。MIDテーブル277はまた、ノード101がメッセージを送信したかどうか、そしてエントリの最終更新時刻はいつかを示すフラグを含む。例示的実施形態では、MIDは(SRC,MSN)の組である。ここで、SRCは送信元のNIDであり、MSNは送信元が割り当てるメッセージシーケンス番号である。こうして、MIDはネットワーク109を伝播する各メッセージの固有識別子となる。ネットワーク制御モジュール271は、受信する新規メッセージの全てをMIDテーブル277に登録する。メッセージ送信がスケジュール済みの場合、モジュール271はメッセージテーブルのメッセージカウンタをインクリメントする。
メッセージテーブル279は、ネットワーク制御モジュール271が送信をスケジュールしたメッセージを含む。例えば、ネットワーク制御モジュール271が送信をスケジュールするフラッディングメッセージをノード101が受信すると、モジュール271はそのメッセージをメッセージテーブル279に含めるようにメッセージテーブルを更新する。メッセージテーブル279の各エントリは、メッセージ自身とメッセージの送信予定時刻,ノード101における同一メッセージの受信数を含む(表4参照)。例示的実施形態では、メッセージの受信回数が所定の制限を超えると、そのメッセージはアドホックメッシュネットワーク109で中継されない。メッセージは例えば、初期値0を有してもよい。この例では、近隣の無線ノード101がメッセージを送信していることが分かると、そのメッセージに関連するメッセージカウントがインクリメントされる。メッセージカウントが最大に達すると、ネットワーク制御モジュール271はメッセージテーブル279からメッセージを取り除く。各メッセージの送信者はまた、送信ノードが無線ノード101の付近にあるか(例えば、送信ノード101が「極近距離」相対無線距離グループであるか)や、無線ノード101から遠いか(例えば、送信ノード101が「遠距離」相対無線距離グループであるか)を示す推定相対無線距離(D)に関連する。送信ノードに関連する相対無線距離が、「極近距離」でメッセージを送信したことを示す場合、例えば、他の隣接無線ノード101の大半が同一メッセージを既に受信済みであると仮定されるために、無線ノード101はそのメッセージを中継する必要がない。隣接ノードの相対無線距離を考慮することで、記述したスマートなフラッディング機能により、ノードの密度に関係なく、各ノード101が平均して各フラッディングメッセージを2,3回受信するだけで済む。どのノード101においてもメッセージの受信回数は、ネットワーク109の拡張性に影響を及ぼす。
受信メッセージが受信ノード101を宛先とするユニキャスト応答メッセージである場合、ネットワーク制御モジュール271は、送信先ノード101がルーティングテーブル273にある可能性がある。例えば、応答メッセージの送信先フィールドにあるか、応答ノードのクエリの送信元フィールドから得られてもよい。見付けられると、ルーティングテーブルのエントリは、応答メッセージが次の機会に送信される先に隣接ノードのNIDを付与する。ユニキャスト送信が成功しない場合、同一DSTに関する次のエントリが次の試行として使用される。受信したユニキャスト応答メッセージが受信ノードを宛先としておらず、目的の宛先ノードからは肯定応答がない場合、そのノードは受信メッセージを再送するために、メッセージテーブル279に受信メッセージを格納する。ユニキャストメッセージまたはノード101を宛先としない肯定応答メッセージは通常、D2D無線レイヤ209で受信されるが、アウェアネスサービスモジュール111は受信しないことに留意されたい(D2D無線レイヤ209については後述を参照)。しかし、ある状況下では、D2D無線レイヤ209は再送をスケジュールするために、こうしたメッセージをアウェアネスサービスモジュール111に提供してもよい。例えば、メッセージの送信予定時刻までに同一メッセージのユニキャストが成功しないことが判明した場合、ノード101はそのメッセージに関連するルーティングテーブル273から見出される目的の送信先にユニキャストまたは肯定応答メッセージを送信する。こうして、応答メッセージに関する目的の送信先でないノード101は、そのメッセージを正しい送信先に転送するルーティングをアシストしてもよい。
図2Aに示すように、アウェアネスサービスモジュール111はデバイス間(D2D)無線レイヤ209に接続している。D2D無線レイヤ209により、WLANやBluetooth(登録商標)等の短距離無線技術を用いて、アドホックメッシュネットワーク109を形成してアウェアネス情報を共有できる。D2D無線レイヤ209は短距離でデバイス間を通信するあらゆる無線技術を使用してもよい。無線技術により、例えば、アドホックメッシュネットワーク109内の各無線ノード101は、無線範囲内の隣接ノード101に対してコネクションレスでメッセージをブロードキャストできる。ここで、「コネクションレス」という用語は、無線ノード101がメッセージをブロードキャストする前に通信チャネルを確立するための双方向信号を使用する必要がないことを意味する。例示的実施形態では、D2D無線レイヤ209は、WLANとBluetooth(登録商標)とを同時に使用するといった、一つ以上の異なる技術やプロトコルを用いる複数の無線を備えてもよい。複数の無線で構成される無線ノード101は、異なる無線技術でサービスする二つ以上のサブネットワークを介するゲートウェイとして動作してもよい。こうして、一つのサブネットワークにブロードキャストするメッセージが別のサブネットワークに伝播されてもよい。
図2Gは、ある例示的実施形態に従う、デバイス間無線レイヤの省電力スキームを示す略図である。少ないデータ量のアウェアネスデータとシステム100に対する低い遅延要件により、D2D無線レイヤ209は低消費電力で動作できる。図2Gで示すように、D2D無線レイヤ209は、ターゲットビーコン送信時刻(TBTT)293a-293cで線引きされたビーコン時間291a-291cを有してもよい。例示的実施形態では、D2D無線レイヤ209は同期方式で動作し、アクティブ通信時間の一部(アウェイク時間295a-295cの間等)のみを利用してもよい。D2D無線レイヤ209は、各ビーコン時間291の残りの間は例えば、仮眠(doze)時間として、省電力または仮眠モードであってもよい。例えば、ビーコン時間291の各々は100ミリ秒のオーダーであり、アウェイク時間295の各々は数ミリ秒程度で、実効的な無線使用時間の約1パーセントであってもよい。大量のイベントが発生しているようなノード101の数が大きい状況では、無線使用が時間的に100パーセントに達する(例えば、アウェイク時間295がアクティブ送信時間291に等しい)可能性がある。夜間等、トラフィック量が少ないときは、無線使用は減少し、例えば、同期を維持しつつ、10回のアウェイク時間293につき1回を使用して0.1パーセントに減らしてもよい。
例示的実施形態では、図9等で示すように、低遅延要件によりホストプロセッサも省電力にできる。図示するように、次の記述は図9の例示的チップセットの構成要素を参照する。D2D無線レイヤ209は通常ASICモジュール909に実装されるが、アウェアネスサービスモジュール111の機能はASIC909かプロセッサ903の何れかに実装されうる。アウェアネスサービスモジュール111の機能がプロセッサ903に実装される場合、プロセッサ903を出来るだけ低頻度でウェイクアップするASIC909を備える等によって、消費電力を削減する。例として、前述したD2D無線レイヤ209の定期的な動作により、ASIC909はアクティブ送信時間291に1回の頻度で全メッセージを集めてプロセッサ903に送信できる。そしてプロセッサ903は、全受信メッセージを処理し、次のアクティブ送信時間291に送信する新規メッセージを計算する。プロセッサ903はその後、伝送のためにASIC909にメッセージを送信する。このプロセスを用いて、フラッディングメッセージは時間291毎にあるノード101から別のノード101への移動を1ホップで行い、アウェアネス情報を完全に許容できる。対照的に、何百ミリ秒もの遅延は、音声トラフィック等では許容できず、遅延に敏感なトラフィックを運ぶ他の通信システムにおいても、こうした省電力は実行できない。
図3A-3Cは、アドホックメッシュネットワークを利用し、ユーザ装置に関連する履歴または他のコンテキスト情報に基づいてユーザの関心コミュニティを決定するプロセスに関する種々の実施形態のフローチャートである。
図3Aは、ユーザ装置に関連するコンテキスト情報内に出現する共通語に基づいて、ユーザの関心コミュニティを決定するプロセスのフローチャートである。図3Aの実施形態では、アウェアネスサービスモジュール111は、関連するユーザの関心コミュニティを決定して対応するCIDを生成するために、ユーザ装置のコンテキスト情報にハッシュ関数等を適用する。ある実施形態では、アウェアネスサービスモジュール111は図3Aのプロセス310を実行し、例えば、図9に示すようなプロセッサとメモリを備えるチップセットに実装される。ステップ302で、アウェアネスサービスモジュール111は無線ノード101の他のアプリケーションからユーザコンテキスト情報を収集する。例えば、アウェアネスサービスモジュール111は無線ノード101の他のアプリケーションから次のコンテキスト情報を収集してもよい:ウェブ検索エンジン;電子メールおよびカレンダーアプリケーション;ショッピングアプリケーション;ニュースおよび他の情報アプリケーションまたは定期購読(例えば、ニュースグループや他の主題指向的な情報収集アプリケーション);メディアアプリケーション等。別の実施形態では、アウェアネスサービスモジュール111は代替または追加として、パーソナルコンピュータやラップトップコンピュータ,PDA,その他の通信・情報処理デバイス等のユーザの他のデバイスからコンテキスト情報を収集してもよい。例えば、ユーザが無線ノード101を他のあらゆるユーザデバイスに同期する(例えば、電子メールや住所録,カレンダー,音楽や他のメディアコンテンツ等を同期する)イベントでは、アウェアネスサービスモジュール111は無線ノード101が同期するユーザデバイスの対応するアプリケーションからコンテキスト情報を収集してもよい。
ステップ304で、アウェアネスサービスモジュール111は、ユーザの特定の関心領域を決定するステップ302に従って収集したコンテキスト情報を処理する。この実施形態では、アウェアネスサービスモジュール111は、コンテキスト情報内に出現する共通語を識別するためにコンテキスト情報を処理する。こうした共通語はユーザが関心のある主題やテーマを示しうる。特定の語句がユーザの関心コミュニティを識別するための「共通語」を含むかどうかという判断は、例えば、予め決定される語句の出現頻度に基づいてもよい。所定の出現頻度は統計的または他の解析方法に基づいて予め設定されてもよく、ユーザが規定してもよい。所定の出現頻度はまた、アウェアネスサービスモジュール111の学習プロセスを通じて時間発展してもよい。例えば、こうした学習プロセスは、関連する関心コミュニティの決定で利用する特定の予め決定された出現頻度を考慮して、関心コミュニティの決定履歴の評価に基づいてもよい。より具体的には、アウェアネスサービスモジュール111は、ユーザの次の関心事項を考慮して、先行して使用された所定の出現頻度を解析し、その結果、関心コミュニティを決定してもよい。こうして、その決定の基となった基本的な共通語に関する所定の出現頻度を用いて決定した関心コミュニティに対し、ユーザの参加がさらに拡がるようになる。
ステップ306で、アウェアネスサービスモジュール111は、ステップ304に従って識別した共通語に基づいて、関連コミュニティを決定し、対応するCIDを生成する。例としてある実施形態では、アウェアネスサービスモジュール111は、関連するユーザの関心コミュニティを決定して対応するCIDを生成するために、ステップ304に従って識別した共通語にハッシュ関数等を適用する。追加または代替として、コンテキスト情報は順不同のセットでもよい。したがって、CIDを生成する関数は、適用前にコンテキスト情報要素を順序付けてもよい。こうした要素に対するハッシュ関数等がそうしてもよい。例として、こうした順序付けはアルファベット順でもよく、情報要素の一部に関する所定の序列に基づいてもよい。こうして、CID生成プロセスは二つ以上のデバイスに対して同一CIDを生成できる。実施形態によっては、同一のコンテキスト情報が複数のコミュニティを形成するのに使用されてもよい。例えば、コンテキスト情報が「車」と「ボート」の両方に関心があると示してもよい。二つの関心事項に関する様々な置換または組み合わせにより、「車」,「ボート」,「車およびボート」といった三つのコミュニティを形成してもよい。さらなる実施形態では、アウェアネスサービスモジュール111は、ステップ304に従って識別した共通語を所定のキーワードとアドホックメッシュネットワークにおける既存の関連コミュニティのデータベースと比較することにより、関連コミュニティと対応するCIDを決定する。ステップ308で、アウェアネスサービスモジュール111は、ステップ306に従って決定したコミュニティに関するコミュニティ情報(対応するCID等)を無線ノード101のコミュニティ名簿243に追加する。ある実施形態では、アウェアネスサービスモジュール111は、コミュニティ情報を無線ノード101のコミュニティ名簿243に追加する前に、その関連するコミュニティへの参加希望をユーザに問い合わせてもよい。
さらなる実施形態に従って、図3Bは、ユーザ装置に関連するコンテキスト情報内に出現する共通語に基づいて、ユーザの関心コミュニティを決定するプロセスのフローチャートを示す。図3Bの実施形態では、アウェアネスサービスモジュール111は、ユーザ装置のコンテキスト情報内における所定のキーワードの出現を識別する。ここで、所定のキーワードはアドホックメッシュネットワークにおける既存の関連コミュニティに関連する。ある実施形態では、アウェアネスサービスモジュール111は図3Bのプロセス330を実行し、例えば、図9に示すようなプロセッサとメモリを備えるチップセットに実装される。図3Aのステップ302と同様に、ステップ312で、アウェアネスサービスモジュール111は無線ノード101の他のアプリケーションからユーザコンテキスト情報を収集する。ここで、図3Aの実施形態と同様には、アウェアネスサービスモジュール111は代替または追加として、無線ノード101と同期するユーザの他のデバイスのアプリケーションからコンテキスト情報を収集してもよい。ステップ314で、アウェアネスサービスモジュール111は、コンテキスト情報内に出現する所定のキーワードを検索して、コンテキスト情報を処理する。所定のキーワードは例えば、アドホックメッシュネットワークの既存コミュニティに関する所定のCIDを含む、そのコミュニティのデータベースから取り出されるか、またはそのデータベースに関連してもよい。
ステップ316で、アウェアネスサービスモジュール111は、ステップ314に従って識別したキーワードに関連するコミュニティのコミュニティ情報(対応するCID等)を無線ノード101のコミュニティ名簿243に追加する。ある実施形態では、アウェアネスサービスモジュール111は、コミュニティ情報を無線ノード101のコミュニティ名簿243に追加する前に、その関連するコミュニティへの参加希望をユーザに問い合わせてもよい。
図3Cは、ユーザ装置に関連するコンテキスト情報の解析を通じて決定したユーザの特性および/または嗜好に基づいて、ユーザの関心コミュニティを決定するプロセスのフローチャートである。図3Cの実施形態では、アウェアネスサービスモジュール111は、ユーザ装置のコンテキスト情報に基づいてユーザの特性および/または嗜好を決定し、決定したものと同一または類似の特性および/または嗜好を反映するアドホックメッシュネットワークの既存コミュニティに無線ノードを関連付けるために、決定した特性および/または嗜好にフィルタ処理を適用する。ある実施形態では、アウェアネスサービスモジュール111は図3Cのプロセス350を実行し、例えば、図9に示すようなプロセッサとメモリを備えるチップセットに実装される。図3Aのステップ302と同様に、ステップ322で、アウェアネスサービスモジュール111は無線ノード101の他のアプリケーションからユーザコンテキスト情報を収集する。ここで、図3Aの実施形態と同様には、アウェアネスサービスモジュール111は代替または追加として、無線ノード101と同期するユーザの他のデバイスのアプリケーションからコンテキスト情報を収集してもよい。
ステップ324で、アウェアネスサービスモジュール111は、ユーザの関連する特性および/または嗜好を決定するために、コンテキスト情報を処理する。ある実施形態では、こうしたプロセスは、コンテキスト情報が反映する特定の傾向やトピックに関する解析の形で実行されてもよい。例えば、ウェブ履歴のコンテキスト情報は、フランス料理やイタリア料理といった特定の種類の料理やレストランに関するユーザの嗜好を反映し、また、ある楽器の楽譜のダウンロードを反映するコンテキスト情報等でその楽器に関するユーザの関心や能力を明らかにすることもある。したがって、アウェアネスサービスモジュール111は、特定の楽器を演奏するという特性やある料理に対する嗜好性をそのユーザに関連付けられる。ステップ326で、アウェアネスサービスモジュール111は、関連するコミュニティを識別するために、ステップ324に従って決定したユーザの特性および/または嗜好を処理し、対応するCIDを生成する。例として、ある実施形態では、アウェアネスサービスモジュール111は、ユーザの特性および/または嗜好を所定のユーザプロファイルを比較するためにフィルタ処理を適用する。これは、他のユーザに関する履歴情報や、サービスプロバイダが生成した仮想ユーザプロファイルに基づいていてもよい。フィルタ処理の結果として、アウェアネスサービスモジュール111は、対応するユーザプロファイルに関連する一つ以上のコミュニティ(および対応するCID)を決定する。別の実施形態では、決定したユーザ特性および/または嗜好は、コミュニティと関連する特性および嗜好に関する所定のデータベースに基づいて対応するコミュニティに関連付けられてもよい。
ステップ328で、アウェアネスサービスモジュール111は、ステップ326に従って決定したコミュニティに関するコミュニティ情報(対応するCID等)を無線ノード101のコミュニティ名簿243に追加する。ある実施形態では、アウェアネスサービスモジュール111は、コミュニティ情報を無線ノード101のコミュニティ名簿243に追加する前に、その関連するコミュニティへの参加希望をユーザに問い合わせてもよい。
前述した図3A,3B,3Cの実施形態は互いに排他的である必要はないことに留意されたい。例えば、アウェアネスサービスモジュール111は、共通語を識別するプロセスの一つ以上でコンテキスト情報を処理し(図3Aのプロセス)、既存コミュニティに関連する所定のキーワードを検索し(図3Bのプロセス)、既存コミュニティに関連するユーザの特性および/または嗜好を決定し(図3Cのプロセス)てもよい。加えて、アウェアネスサービスモジュール111は、コンテキスト情報内に出現する新しい共通語と、それに基づいて決定した結果のコミュニティに基づいて、コミュニティのキーワードのデータベースを更新してもよい。さらに、アウェアネスサービスモジュール111は、コンテキスト情報から決定したユーザの新しい特性および/または嗜好と、それに基づいて決定した結果のコミュニティに基づいて、コミュニティと関連するユーザの特性および/または嗜好(またはユーザプロファイル)を更新してもよい。
図3A-3Cのプロセスに関した更なる実施形態では、対応するCIDをコミュニティ名簿243に格納する無線ノードが参加するコミュニティは、関心のある特定の製品や製品の種類に関連するコミュニティを含んでもよく、特定の店舗やメーカーに関連するコミュニティを含んでもよい。こうして、無線ノード101は例えば、近くの店舗が提供する特定の製品やそのメーカーに関するCIDに関連するフラッディングメッセージを受信できる。フラッディングメッセージはまた、ウェブサイトのリンクや他のポインタといった特定の製品やメーカー・店舗に関する情報を含んでもよい。加えて、さらなる実施形態では、無線ノード101のユーザがそのノード101のCIDに関連する製品を購入する、または単に関連する店舗に訪れるというイベントでは、その店舗の無線ノード101のアウェアネスサービスモジュール111は、アドホックメッシュネットワークを介してそのユーザの無線ノード101から関連情報を収集してもよい。例えば、店舗の無線ノード101のアウェアネスサービスモジュール111は、そのユーザが関連コミュニティのメンバであることを示す情報を収集してもよい。さらなる実施例では、店舗の無線ノード101のアウェアネスサービスモジュール111は、ユーザが関連コミュニティのメンバになる要因となったユーザの特性および/または嗜好に関連する情報を収集してもよい。こうしてその店舗は、アウェアネスネットワークを使用する店舗の広告努力の効果等に関する価値ある市場調査を集められる。
図3D-3Gは、種々の例示的実施形態に従う、アドホックメッシュネットワーク内にコミュニティとコミュニティメンバを配置するプロセスのフローチャートである。図3Dは、アドホックメッシュネットワーク109内にアクティブコミュニティを配置し、無線ノード101から見えるアクティブコミュニティのリストを更新するプロセスのフローチャートである。ある実施形態では、アウェアネスサービスモジュール111は図3Dのプロセス300を実行し、例えば、図9に示すようなプロセッサとメモリを備えるチップセットに実装される。ステップ301で、アウェアネスサービスモジュール111は、一つ以上のコミュニティに対応するコミュニティの識別子(CID)等を用いて、無線ノード101の一つ以上のコミュニティを識別する。例示的実施形態では、各CIDは、メンバと対応するコミュニティ内を伝送するメッセージを認証する一つ以上の認証キーに関連付けられる。CIDに関連するキーは、アウェアネスサービスモジュール111がコミュニティ名簿243等に格納し、アドホックメッシュネットワーク109や通信ネットワーク103を介するセキュアな通信チャネルを使用する前に、コミュニティのメンバである無線ノード101に提供されてもよい。後で生成したCIDとキーは、アドホックメッシュネットワーク109や通信ネットワーク103の何れかを介するセキュア通信チャネルを使用して提供されてもよい。
例として、アウェアネスサービスモジュール111は、一つ以上の隣接無線ノード101から、コミュニティメッセージを送受信する等のアクティブなコミュニティを配置・識別するCIDを、次の方法によって使用できる:(1)図3Eに関連して記述するプロセスを用い、アドホックメッシュネットワーク109を介して一つ以上のコミュニティに直接送られるメッセージを静的に監視する方法;(2)図3Fに関連して記述するようなコミュニティ検索メッセージを用い、一つ以上のコミュニティをアクティブに検索する方法;(3)図3Gに関連して記述するようなメンバ検索メッセージを用い、一つ以上のコミュニティメンバをアクティブに検索する方法。これらの方法(1)から(3)はその何れか、または全てでもよい。アウェアネスサービスモジュール111は次に、識別情報に基づいてアクティブコミュニティのリスト更新する(ステップ303)。例えば、アクティブコミュニティのリストは、無線ノード101が属するコミュニティ(個人的な友人のコミュニティ等のプライベートなコミュニティ等)と、全ノード101に公開されるオープンなコミュニティ(システム全体でメッセージを交換できるアドホックメッシュネットワーク109内の全無線ノードの一般コミュニティ等)を含む。
例示的実施形態では、アウェアネスサービスモジュール111は、アドホックメッシュネットワーク109を介したアクティブコミュニティの一つ以上に関連するメッセージトラフィックを監視する等によって、アクティブコミュニティのリストを絶えず更新し続ける(ステップ305)。より具体的には、アウェアネスサービスモジュール111は、所定時間にアクティブコミュニティの一つ以上に対する送受信メッセージがあるかどうかを追跡する。ある実施形態では、所定時間は隣接無線ノード101の密度や安定性に依存してもよい。例えば、隣接無線ノード101の構成が急に変わった場合、所定時間は短縮されてもよい。同様に、隣接無線ノード101の構成がより安定している場合、所定時間はより長くなってもよい。何れの場合でも、アウェアネスサービスモジュール111は、アクティブコミュニティの一つ以上に関連するメッセージがあるかどうかを、何れかのアクティブコミュニティに対応するCIDに関するメッセージのヘッダ情報を調べる等によって観測する(ステップ307)。所定時間に特定のコミュニティに関連するメッセージを観測しない場合、アウェアネスサービスモジュール111はコミュニティが非アクティブであると指定し、それに応じてアクティブコミュニティのリストを更新する(ステップ309)。所定時間に特定のコミュニティに関連するメッセージを観測した場合、そのコミュニティはまだアクティブであると見做され、アウェアネスサービスモジュール111はアクティブコミュニティのリストを更新する必要がない。アウェアネスサービスモジュールは、アクティブコミュニティのリストを更新するために、監視プロセスを連続または定期的に実行できることも想定される。
図3Eは、ある実施形態に従う、コミュニティメッセージを監視してアクティブコミュニティを静的に識別するプロセスのフローチャートである。ある実施形態では、アウェアネスサービスモジュール111は図3Eのプロセス320を実行し、例えば、図9に示すようなプロセッサとメモリを備えるチップセットに実装される。ステップ321で、ネットワーク制御モジュール111は、アドホックメッシュネットワーク109を介して隣接無線ノード101から一つ以上のコミュニティに送られるメッセージを受信する。アウェアネスサービスモジュール111は次に、受信無線ノード101が、メッセージが送られるコミュニティのメンバであるかどうかを決定する(ステップ323)。例えば、こうした決定は、受信メッセージのメッセージヘッダ等に含まれるCIDが、受信無線ノード101のコミュニティ名簿243に含まれるCIDと一致するかどうかを調べることを含んでもよい。実施形態によっては、コミュニティとそのメンバのプライバシー保護のためにCIDを匿名にしてもよい。この場合、受信無線ノード101はコミュニティのメンバであって、アウェアネスサービスモジュール111は受信メッセージに特定されるコミュニティのCIDに関連する認証キーを用いて匿名CIDを復号してもよい。またメッセージが暗号化されている場合、アウェアネスサービスモジュール111は、コミュニティ名簿243にリストされているCIDに関連する暗号化キーを用いて暗号化メッセージを開封してもよい。受信ノード101がコミュニティのメンバであるとアウェアネスサービスモジュール111が決定する場合(ステップ325)、モジュール111はコミュニティをアクティブと識別し、それに応じてアクティブコミュニティのリストを更新する(ステップ327)。
図3Fは、ある例示的実施形態に従う、コミュニティ検索メッセージを用いて一つ以上のアクティブコミュニティをアクティブに検索するプロセスのフローチャートである。ある実施形態では、アウェアネスサービスモジュール111は図3Fのプロセス340を実行し、例えば、図9に示すようなプロセッサとメモリを備えるチップセットに実装される。ステップ341で、アウェアネスサービスモジュール111は、アドホックメッシュネットワーク109の現地の近隣領域における一つ以上のアクティブコミュニティを検索要求する入力を受信する。この入力は例えば、(図2Aと2Cに関連して記述したような)アプリケーションプログラミングインタフェース225を介してアプリケーション201から受信される。例えば、入力は検索事項に関する一つ以上のコミュニティを特定してもよい。その応答として、アウェアネスサービスモジュール111は要求されたコミュニティの各々に対するCIDを読み出す(ステップ343)。実施形態によっては、コミュニティとそのメンバのプライバシー保護のためにCIDを匿名にしてもよい(ステップ345)。匿名CIDの使用により、部外者が何れのコミュニティに関連する通信を追跡するのが困難になり、プライバシーを保護できる。コミュニティ制御モジュール241は次に、固有のコミュニティクエリ識別子CQIDと匿名CIDのリストを含むコミュニティ検索メッセージを生成する(ステップ347)。
メッセージ生成後、アウェアネスサービスモジュール111は、アドホックメッシュネットワーク109を介してメッセージのブロードキャストを開始する(ステップ349)。例示的実施形態では、コミュニティ検索メッセージは、以降の図5Aと5Bに関連して記述するプロセスを用いて送信・応答するクエリと等価である。メッセージはアドホックメッシュネットワーク109全体に伝播するため、匿名CIDまたはメッセージに含まれるCIDに関連するアクティブコミュニティの一つ以上のメンバである携帯デバイスは、最初にメッセージを送信した携帯デバイスに対して応答する。アウェアネスサービスモジュール111は応答メッセージの受信を開始する(ステップ351)。応答メッセージは例えば、応答ノード101の検索コミュニティのうち「アクティブ」状態であるものの匿名CIDのリストを含む。このリストに基づいて、アウェアネスサービスモジュール111はリスト中の各コミュニティをアクティブコミュニティとして識別し、コミュニティ名簿243等にあるアクティブコミュニティのリストを更新する(ステップ353)。
図3Gは、ある例示的実施形態に従う、特定のまたは複数のコミュニティのメンバに関するプレゼンスとコミュニティに固有のID(エイリアス等)をアクティブに決定するプロセスのフローチャートである。ある実施形態では、アウェアネスサービスモジュール111は図3Gのプロセス360を実行し、例えば、図9に示すようなプロセッサとメモリを備えるチップセットに実装される。ステップ361で、アウェアネスサービスモジュール111は、コミュニティの一つ以上のメンバを検索要求する入力を受信する。この入力は例えば、(図2Aと2Cに関連して記述したような)アプリケーションプログラミングインタフェース225を介してアプリケーション201から受信される。例えば、入力は検索対象のメンバに関する一つ以上のコミュニティを特定してもよい。ステップ363で、アウェアネスサービスモジュール111は、要求したコミュニティまたはコミュニティ名簿243からのコミュニティに関連する一または複数のCIDを読み出す。実施形態によっては、コミュニティとそのメンバのプライバシー保護のためにCIDを匿名にしてもよい(ステップ365)。何れかのコミュニティが「可視」状態に設定される場合、アウェアネスサービスモジュール111はそのコミュニティに対するユーザのコミュニティ固有のユーザID(エイリアス等)も読み出せる。例として、アウェアネスサービスモジュール111の暗号化/復号モジュール245はステップ365で、コミュニティ名簿243の各コミュニティに関連する一つ以上のキー等を用いて、ユーザエイリアスを暗号化してもよい。コミュニティ制御モジュール241は次に、固有のコミュニティクエリ識別子CQIDと匿名CIDのリスト,検索対象メンバに対応する非暗号化エイリアス(パブリックコミュニティの場合)または暗号化エイリアス(プライベートコミュニティの場合)を含むメンバ検索メッセージを生成する(ステップ367)。
メンバ検索メッセージを生成後、アウェアネスサービスモジュール111は、アドホックメッシュネットワーク109を介してメンバ検索メッセージのブロードキャストを開始する(ステップ369)。例示的実施形態では、メンバ検索メッセージは、以降の図5Aと5Bに関連して記述するプロセスを用いて送信・応答するクエリと等価である。メッセージはアドホックメッシュネットワーク109全体に伝播するため、匿名CIDまたは「可視」状態のCIDに関連する一つ以上のコミュニティを有する携帯デバイスは、最初にメッセージを送信した携帯デバイスに対して応答する。一つ以上のユーザに対応するエイリアスがメンバ検索メッセージにも含まれている場合、そのユーザエイリアスに対応する携帯デバイスも応答する。アウェアネスサービスモジュール111はメンバ検索メッセージに応じて送信された応答メッセージの受信を開始する(ステップ371)。応答メッセージは例えば、匿名CIDのリストと非暗号化または暗号化ユーザエイリアス、場合により、コミュニティメンバの非暗号化または暗号化状態(アクティビティ状態,モード等)を含む。実施形態によっては、アウェアネスサービスモジュール111は、現地の近隣領域における可視コミュニティメンバのリストを更新するために、応答メッセージを使用する(ステップ373)。加えて、アウェアネスサービスモジュール111は、近隣領域内のアクティブコミュニティを識別してアクティブコミュニティのリストを更新するために、応答メッセージを使用してもよい(ステップ375)。こうした更新は例えば、応答メッセージに含まれる匿名CIDやコミュニティ固有のメンバID(エイリアス等),他のメンバ固有の情報に基づいてもよい。
図3Hおよび3Iは、種々の実施形態に従う、アドホックメッシュネットワークを介してフラッディングメッセージを受信するプロセスのフローチャートである。ある実施形態では、アウェアネスサービスモジュール111は図3Hのプロセス370および図3Iのプロセス390を実行し、例えば、図9に示すようなプロセッサとメモリを備えるチップセットに実装される。プロセス370に関して、制御ロジック221は、フラッディングメッセージを生成するサービス要求を、アプリケーションプログラミングインタフェース225等を介してアプリケーション201から受信しているものと仮定する。ここで「フラッディングメッセージ」とは、アドホックメッシュネットワーク109を介してノードからノードへ伝播する、隣接無線ノード101へのブロードキャストに相当するメッセージである。ステップ342で、アウェアネスサービスモジュール111は、サービス要求に応答し、公開すべきクエリやコンテンツ等であるフラッディングメッセージ本体を生成する。例として、フラッディングメッセージは、アドホックメッシュネットワーク109から情報をプルするといったクエリ、またはアドホックメッシュネットワーク109に情報をプッシュするといった公開メッセージの何れかでもよい。クエリまたは公開メッセージといったメッセージの種類は、サービス要求の性質と要求を生成するアプリケーション201に依存する。
メッセージ本体を生成後、アウェアネスサービスモジュール111(コミュニティレイヤ205およびネットワークレイヤ207等)は、図2Fに関して前述したようなメッセージのルーティングを示すヘッダ(ネットワークレイヤヘッダ281等)を追加してメッセージを準備する(ステップ344)。例えば、ヘッダはホップカウント等の最大メッセージカウントやフラッディングメッセージの地理的制限,時間的制限,その他のコンテキストの制限を特定してもよい。メッセージをブロードキャストする準備は、メッセージシーケンス番号295(MSN)のフラッディングメッセージへの割り当て、送信元NIDや送信先NID,および/または送信NIDの特定等を含んでもよい。アウェアネスサービスモジュール111は、生成したフラッディングメッセージを「未送信」と設定した送信フラグと共にMIDテーブルに登録し、アドホックメッシュネットワーク109を介してメッセージをD2D無線レイヤ209に転送することによって、フラッディングメッセージのブロードキャストを開始する(ステップ346)。ブロードキャスト後、アウェアネスサービスモジュール111は、アドホックメッシュネットワーク109を介してフラッディングメッセージを再ブロードキャストすべきかどうかを決定してもよい(ステップ348)。例えば、アプリケーション201は、アウェアネスサービスモジュール111に対し、隣接ノード101がフラッディングメッセージを再ブロードキャストするのを送信元ノード101が観測できる回数を監視およびカウントすることで、フラッディングメッセージを再ブロードキャストするように命じてもよい。観測した再ブロードキャストは例えば、フラッディングメッセージを再送する隣接ノード101がそのフラッディングメッセージの受信に成功したことを示す肯定応答としてもよい。ある実施形態では、アウェアネスサービスモジュール111は、観測したブロードキャストと元のフラッディングメッセージのMIDを比較することで、観測した再ブロードキャストが同一のフラッディングメッセージであるかどうかを決定する(ステップ362)。所定時間の経過後、再ブロードキャストを観測しない場合、アウェアネスサービスモジュールは、ステップ346に戻り必要に応じて繰り返すこと等で、フラッディングメッセージを再ブロードキャストできる。アプリケーション201やアウェアネスサービスモジュール111は再ブロードキャストの試行回数を規定できることも想定される。再ブロードキャストの上限値に達すると、アウェアネスサービスモジュール111は、再ブロードキャストの状態をアプリケーション201に通知し、追加の再ブロードキャストを中止する(ステップ364)。
図3Iは、ある例示的実施形態に従う、アドホックメッシュネットワークを介してフラッディングメッセージを受信するプロセスのフローチャートである。ステップ366で、アウェアネスサービスモジュール111は隣接無線ノード101からフラッディングメッセージを受信する。フラッディングメッセージは公開したアウェアネス情報やクエリ等を含んでもよい。例示的実施形態では、フラッディングメッセージは、アドホックメッシュネットワーク109のデータトラフィックを最小化するために、実際の情報やコンテンツ自体の代わりにその情報やコンテンツを特定するポインタ(URLやIPアドレス等)を含んでもよい。前述のようにある実施形態では、コンテンツが数十バイトの情報といった比較的小さいサイズの場合、フラッディングメッセージがそのコンテンツを直接含んでもよい。コンテンツのポインタを受信すると、無線ノード101はインターネット等の別の通信プロトコルやインフラネットワーク等の通信手段を用いて情報またはコンテンツにアクセスしてもよい。
加えて、特段の指定がない限り、匿名で(情報の送信者を識別せずに)フラッディングメッセージ内の情報を共有してもよい。例として、アウェアネスサービスモジュール111は、匿名で情報を共有するあらゆる機構を使用してもよい。こうした機構は、リンク層やネットワーク層のIDの変更、隣接ノード数が少ない場合に個人的な情報の送信防止、ユーザやコミュニティを識別するのに用いられる情報の匿名化等を含み、これらの組み合わせも含む。例えば、送信無線ノード101に関連するリンク層またはネットワーク層のIDを定期的に変更することによって、アウェアネスサービスモジュール111は、その無線ノード101またはそのユーザのIDが部外者によって決定され難くできる。情報の匿名共有はまた、隣接ノード数が少ない場合に個人的情報の送信を防止することによって保護される。これにより、無線ノード101が少ないコミュニティを部外者が観測して、個人的情報の所有者を推測できる可能性を減らすことができる。別の機構のように、アウェアネスサービスモジュール111は、コミュニティレイヤ205の暗号化/復号モジュール245に関して記述したプロセスを用いて、フラッディングメッセージ内のあらゆる識別情報を匿名化すること(CIDの匿名化等)もできる。
フラッディングメッセージを受信すると、アウェアネスサービスモジュール111は、そのメッセージとMIDテーブル277に関連するルーティングテーブル273を更新する(ステップ366)。図2Eに関して記述したように、観測した送信元ノードNIDの各々に対し、ルーティングテーブル273は、アウェアネスサービスモジュール111が同一のフラッディングメッセージ(同一のMIDを持つメッセージ)を再送するために観測した全隣接ノードのリストを含む。例えば、ネットワーク制御モジュール271は、メッセージを受信したノードのNIDをリストの次のエントリとして格納する。こうして、ルーティングテーブル273は、現在の受信ノードから送信元ノードに向かう次のホップの情報を冗長して含むことになる。受信したフラッディングメッセージに含まれるMSNがルーティングテーブル273のあるものよりも大きい場合、次のホップの隣接ノードのリストはこの送信先に関するルーティングテーブル273から削除され、送信ノードが次ホップのリストの最初に登録される。例示的実施形態では、フラッディングメッセージに基づくルーティングテーブル273の動的な更新により、アウェアネスサービスモジュール111はアドホックメッシュネットワーク109内の無線ノード101間の応答経路を動的に生成できる。
MIDテーブル277を更新するために、アウェアネスサービスモジュール111は受信メッセージが登録済みでないかを調べる。登録済みのものがない場合、アウェアネスサービスモジュール111は受信したフラッディングメッセージを受信時刻と共に新規登録する。登録済みのものがある場合、アウェアネスサービスモジュール111はその受信時刻を更新する。受信時刻はMIDテーブルから旧いエントリを削除するため等で使用される。
MIDテーブル279を更新するために、アウェアネスサービスモジュール111は受信メッセージがメッセージテーブルに既にないかを(MIDに基づいて)調べる。メッセージの存在は、そのメッセージが以前に受信されていて、モジュール111が既に再送をスケジュールしていることを意味する。メッセージがメッセージテーブル279に既に存在する場合、メッセージテーブル279のメッセージカウンタもインクリメントされる。
隣接テーブル275は隣接無線ノード101とそれらの無線相対距離の推定値のリストを含む。例示的実施形態では、アウェアネスサービスモジュール111は、隣接無線ノード101の相対無線距離の決定を開始する(ステップ368)。ある実施形態では、受信メッセージの送信出力(受信キャリア出力標示(RCPI)のレベル等)を測定して相対無線距離を推定し、隣接無線ノード101の相対無線距離を決定する。アウェアネスサービスモジュール111は次に、隣接無線ノード101をその対応する相対無線距離や他の所定の基準に従って分類する(ステップ372)。例えば、RCPIと、場合により隣接ノード101の観測RCPIの履歴とに基づいて、ノード101をRCPI値の昇順に並べる。次に、ノード101は一つ以上の距離カテゴリー等に分けられる。例えば、次の三つのカテゴリーに分けられてもよい:RCPI(またはRCPI履歴)の最高値を有するノード101が割り当てられる「極近距離」相対無線距離;RCPI(またはRCPI履歴)の最低値を有するノード101が割り当てられる「遠距離」相対無線距離;残りのノード101全てが割り当てられる「近距離」相対無線距離。この三つのグループの大きさは、アウェアネスサービスモジュール11が相対距離の分類に用いるRCPI閾値を変更することによって適切に設定されてもよい。隣接ノード数が少ない場合、全ノードを「近距離」カテゴリーにするように閾値を設定すべき場合もある。
測定信号強度は、隣接無線ノード101の既知の送信出力を伴って、無線ノード101の近くにいることを示す指標となり、相対無線距離を計算するために使用されることも想定される。こうして、フラッディングメッセージを最後に受信した無線ノード101の相対無線距離は、そのノードが受信メッセージを再送するかどうかの基準として使用される。例えば、信号強度が強いほど、その無線ノード101の側により近いことを示してもよい。アウェアネスサービスモジュール111は、メッセージを近くのデバイスから受信し、相対無線距離(または近さ)を推定するためにそれを用いるため、隣接ノード101の信号強度を監視する。アウェアネスサービスモジュール111は、隣接ノードの相対無線距離を推定するためのあらゆる他の機構(全地球測位システム衛星の受信機や他の測位技術による位置推定等)を使用してもよいと想定される。
例えば、所定の時間窓Tにおいて、隣接ノード101がメッセージやビーコン信号を送信している場合、隣接テーブル275におけるその隣接ノード101の登録を維持する。ある実施形態では、時間窓Tは隣接ノード101がどれだけ速く移動または変化しているかに依存する。例えば、隣接ノード101のセットが高速で変更される場合、時間窓Tは短縮される。隣接ノード101のセットが安定している場合、時間窓Tは拡げられる。時間窓は、隣接ノード101のセットの安定性に基づいて動的に調整されることも想定される。
ある実施形態では、受信したフラッディングメッセージが極近距離カテゴリーに分類される隣接無線ノード101から受信されたものである場合(ステップ374)、アウェアネスサービスモジュール111はそのフラッディングメッセージの再送を取り消すか、フラッディングメッセージの再送を開始しない(ステップ376)。この状況では、アウェアネスサービスモジュール111は、フラッディングメッセージを極近い隣接無線ノード101から受信したため、他の隣接無線ノード101もそのフラッディングメッセージを受信している可能性が高いと見做す。したがって、フラッディングメッセージを直ぐ近くのノード101に再送する必要もないと見做せる。こうして、アウェアネスサービスモジュール111はアドホックメッシュネットワーク109における不要な再送を減らすことができる。
フラッディングメッセージを送信した隣接無線ノード101が極近距離カテゴリーではない場合、アウェアネスサービスモジュール111は、他の所定の再送基準に基づいてそのフラッディングメッセージを再送するかどうかを決定する(ステップ378)。この決定の一部として、アウェアネスサービスモジュール111は例えば、隣接無線ノード101を基準に基づいて一つ以上のグループに分類する。特定グループへの分類は、そのグループが例えば、フラッディングメッセージの再送を受信するかどうかを決定するために使用されてもよい。再送基準はメッセージのホップ制限や地理的制限,時間的制限,コンテキスト制限等を含んでもよく、またこれらの組み合わせを含んでもよい。再送基準として他の制限やコンテキストをアウェアネスサービスモジュール111が使用することも想定される。例示的実施形態では、再送基準によって、フラッディングメッセージを不必要に再送する可能性を減らし、その結果アドホックメッシュネットワーク109のデータトラフィックを最小化できる。例えば、アウェアネスサービスモジュール111は、受信メッセージのホップカウントフィールド286を調べることでメッセージカウント制限を適用する。ホップカウントフィールドはアドホックメッシュネットワーク109を伝達するフラッディングメッセージのホップ数を示している。メッセージカウントが所定の制限に達すると、フラッディングメッセージは破棄され、再送されない。こうした制限により、メッセージが無制限に伝達されるのを防止できる。ある実施形態では、メッセージカウント制限により、メッセージの送信元で設定されたあらゆる制限を無効にしてもよい。
同様に、アウェアネスサービスモジュール111は、無線ノード101の位置をフラッディングメッセージの地理的制限287と比較する等して、そのフラッディングメッセージの地理的拡散を制限してもよい。この位置情報は、隣接無線ノード101と共有する、または無線ノード101がアクセスできる測位モジュールや他の測位サービスから直接得られるアウェアネス情報として取得されてもよい。
時間的制限に基づく再送基準に関して、アウェアネスサービスモジュール111は、フラッディングメッセージの有効期間に限りメッセージを再送する。例えば、フラッディングメッセージはあるコンサートに関連する情報を含み、コンサート期間中だけ有効であってもよい。例として、アウェアネスサービスモジュール111は、無線ノード101に内蔵または外部にある、現在時刻を決定するクロックサービスにアクセスし、現在時刻がフラッディングメッセージの時間的制限298で特定する有効期間外である場合、そのフラッディングメッセージを再送しないようにしてもよい。
コンテキスト制限に基づく再送基準に関して、アウェアネスサービスモジュール111は、受信フラッディングメッセージのコンテキスト制限289が受信ノードのそれと一致する場合に限り、メッセージを再送する。例えば、「ブラッドベリモール(Bradbury Mall)」のある位置といったコンテキストは、他の携帯デバイスや固定位置に設置したノードから受信したアウェアネス情報に基づいて計算されてもよい。例えば、ある店舗の広告を含むフラッディングメッセージは、その店舗のあるモール内の位置する無線ノード101のみに配信が制限されてもよい。
再送基準の適用に基づいて、アウェアネスサービスモジュール111はフラッディングメッセージを再送するかどうかを決定する。再送すると決定した場合、アウェアネスサービスモジュール111は、受信フラッディングメッセージを送信クエリに追加するためにメッセージテーブル279を更新し、再送時間範囲を各距離カテゴリーに割り当てる等をして、フラッディングメッセージの再送を開始する(ステップ382)。例えば、近距離グループの再送範囲は、その近距離グループに分類または含まれる無線ノード101の数に基づいて計算されてもよい。同様に、遠距離グループの再送範囲は、その遠距離グループに分類または含まれる無線ノード101の数に基づいて計算されてもよい。再送範囲は定義される各グループに関係なく計算されることも想定される。例として、再送の時間範囲は、フラッディングメッセージが特定の距離カテゴリー内の隣接無線ノード101に再送される期間を特定する。より具体的には、アウェアネスサービスモジュール111は、隣接無線ノード101の各々に割り当てた再送の時間範囲に従って、フラッディングメッセージの再送をスケジュールする(ステップ384)。こうして、アウェアネスサービスモジュール111は、隣接無線ノード101に対し、その相対無線距離等に基づいてフラッディングメッセージの再送を遅らせたり時間差で実行したりできる。こうした遅延または時間差での実行により、アドホックメッシュネットワーク109のトラフィック許容量を飽和させる可能性を減らせる。加えて、アウェアネスサービスモジュール111は、フラッディングメッセージを送信した隣接無線ノード101の距離カテゴリーに基づいて、フラッディングメッセージの再送を継続するかどうかを決定してもよい。例えば、アウェアネスサービスモジュール111は、隣接する送信無線ノード101が極近距離カテゴリーである場合、フラッディングメッセージの再送を取り消してもよい。また例えば、送信無線ノード101が極近距離カテゴリーであるために、他の隣接無線ノード101はそのフラッディングメッセージを受信済である可能性が高いと見做せる。したがって、再送不要である可能性が高い。送信ノード101が遠距離カテゴリーである場合、他の隣接ノードがフラッディングメッセージを受信済である可能性は低いため、アウェアネスサービスモジュール111はそのフラッディングメッセージの再送をスケジュールする。
図4は、ある実施形態に従う、コミュニティまたはコミュニティメンバの可視性を変更するためにコミュニティの状態を設定するプロセスのフローチャートである。ある実施形態では、アウェアネスサービスモジュール111はプロセス400を実行し、例えば、図9に示すようなプロセッサとメモリを備えるチップセットに実装される。ステップ401で、アウェアネスサービスモジュール111により、コミュニティまたはコミュニティメンバの可視性を決定するコミュニティに対応する状態をユーザが設定できる。コミュニティの種々の状態とその状態がどのようにコミュニティの状態の可視性に影響するかについては、図2Dに関して説明されている。例えば、種々の実施形態では、コミュニティがアクティブである場合、コミュニティ固有のメッセージを送受信できる。同様に、コミュニティメンバが見えている場合、そのコミュニティメンバに関連するユーザエイリアスが他のコミュニティメンバにクエリ・送信される。
また、無線ノード101のコミュニティの状態は受信メッセージをフィルタするために使用されることも想定される。例えば、送受信メッセージ全てをブロックするために、ユーザは特定のコミュニティからの全メッセージを無視するように、コミュニティの状態を非アクティブに設定できる。複数のコミュニティに属するユーザが各コミュニティの可視性状態を独立に設定できることも想定される。例として、広告受信をブロックするために、ユーザは広告を送信するコミュニティを非アクティブに設定できる。ユーザは種々の基準に基づいて可視性状態を自動的に設定できることも想定される。そうした基準は例えば、時間(一日のある時間帯に可視性状態を自動設定する);位置(職場や学校等の特定の場所で可視性状態を自動設定する);他のコンテキスト(会議中または食事中等)がある。
図5Aは、ある例示的実施形態に従う、クエリノードで使用するメッセージとプロセスのシーケンスを示すラダー図である。各ネットワークプロセスは細い縦線で表わされ、あるプロセスから別のプロセスへ渡すメッセージのステップは横矢印で表わされる。破線横矢印はオプションのステップまたはメッセージを表わす。図5Aに示されるプロセスはクエリノード502と中継ノード506,応答ノード508である。クエリノード502内では次の追加プロセスも示される:アプリケーション201;アウェアネスレイヤ203;コミュニティレイヤ205;ネットワークレイヤ207;D2D無線レイヤ209。
ステップ501で、クエリノード502内のアプリケーション201は、アクティブコミュニティまたは可視メンバのいるコミュニティを有する無線ノード101といったコミュニティ情報を検索する要求を、アドホックメッシュネットワーク109を介して生成し、その要求をクエリノード502のコミュニティレイヤ205に送信する。コミュニティレイヤ205はコミュニティクエリメッセージを生成し、クエリメッセージにコミュニティクエリ識別子(CQID)を割り当て、ユーザが情報を検索するコミュニティのCIDを持つクエリをマークすることで、アドホックメッシュネットワーク109を介してクエリメッセージを送信する準備をする。ユーザがプライベートコミュニティのメンバに関する情報を探す場合、コミュニティレイヤ205はコミュニティ固有のユーザIDを対応するCIDに関連する暗号化キーを用いて暗号化し、コミュニティ名簿243に格納する(図2C)。コミュニティ名簿243が他のノードのアクティブコミュニティに関する最新情報を含む場合、コミュニティレイヤ205はそのコミュニティ情報を返してもよい(ステップ503)。コミュニティレイヤ205は次に、匿名化または部分暗号化されたメッセージをネットワークレイヤ207に送信する(ステップ505)。
ネットワークレイヤ207はクエリメッセージにメッセージシーケンス番号(MID)を割り当てる。そして、クエリノード502がクエリメッセージの送信元かつ送信者であることを、NID等を用いて示すために、ネットワークレイヤ207はネットワークレイヤメッセージヘッダ281にフィールドを付加する。ネットワークレイヤ207はアドホックメッシュネットワーク109を介してブロードキャストするために、クエリメッセージをクエリノード502のD2D無線レイヤ209に送信する(ステップ507)。
次に、クエリメッセージは一つ以上の中継ノード506にブロードキャストされる(ステップ509)。ブロードキャストメッセージを受信できるノードは全て中継ノードである。中継ノード506での処理後、クエリメッセージは他の中継ノードや応答ノード508に再ブロードキャストされる(ステップ511)。応答ノード508のプロセスは図5Cを参照して説明する。応答ノード508がクエリメッセージを処理した後、応答メッセージが生成され、中継ノード506に送信される(ステップ513)。中継ノードは、ルーティングテーブル273に格納した経路に基づいて、他の中継ノードまたはクエリノード502の何れかに応答メッセージを送信する経路を決める(ステップ515)。
クエリノード502では、D2D無線レイヤ209が応答メッセージを受信して肯定応答し、応答メッセージをネットワークレイヤ207に転送する(ステップ517)。ネットワークレイヤ207は、ネットワークレイヤメッセージヘッダ281のDSTフィールド294を調べることで、クエリノード502が応答メッセージの宛先であることを決定し、メッセージを処理するコミュニティレイヤ205に送信する(ステップ519)。プライベートコミュニティの場合、コミュニティレイヤ205はコミュニティ名簿243に格納している適切な暗号化キーを用いて、応答メッセージを復号する。応答メッセージの情報に基づいて、コミュニティレイヤ205はコミュニティ名簿243の情報(アクティブコミュニティのリストおよびコミュニティの可視メンバのリスト)を更新し、最後に、クエリに対するサービス応答をアプリケーション201に送信する。
図5Bは、ある例示的実施形態に従う、応答ノードで使用するメッセージとプロセスのシーケンスを示すラダー図である。各ネットワークプロセスは細い縦線で表わされ、あるプロセスから別のプロセスへ渡すメッセージのステップは横矢印で表わされる。破線横矢印はオプションのステップまたはメッセージを表わす。図5Bに示されるプロセスは応答ノード508とクエリノード502である。応答ノード508内では次の追加プロセスも示される:アプリケーション201;アウェアネスレイヤ203;コミュニティレイヤ205;ネットワークレイヤ207;D2D無線レイヤ209。
ステップ561で、応答ノード508のD2D無線レイヤ209はクエリメッセージを受信し、それを応答ノード508のネットワークレイヤ207に転送する。ネットワークレイヤ207はクエリメッセージを再ブロードキャストすると決定してもよい(ステップ563)。受信に応じて、ネットワークレイヤ207はクエリメッセージをコミュニティレイヤ205に転送する(ステップ565)。
クエリメッセージが応答ノード508に関連するアクティブコミュニティの一つ以上の匿名CIDを含み、かつ、暗号化されたユーザエイリアスも含むと、コミュニティレイヤ205が決定する場合、コミュニティレイヤ205はメッセージを復号し、(アクティブコミュニティのリストおよびコミュニティの可視メンバのリスト等を含む)コミュニティ名簿243の情報を更新する。次に、コミュニティレイヤ205は、受信クエリと同一のCQIDを含み、応答メッセージの宛先NIDとして設定されるクエリメッセージの送信元NIDを有する応答メッセージを生成する。クエリが可視メンバエイリアスを要求し、ノード508のユーザエイリアスが見えるように設定されている場合、コミュニティレイヤ205はコミュニティに関連する暗号化キーを用いてユーザエイリアスを暗号化する。コミュニティレイヤ205は次に、コミュニティ名簿243から新規の匿名CIDを読み出し、応答メッセージをネットワークレイヤ207に送信する(ステップ567)。
応答メッセージを受信すると、ネットワークレイヤ207は新しいメッセージシーケンス番号(MSN)を応答メッセージに割り当て、送信元および送信者として応答ノード508のNIDを添付し、ルーティングテーブル263から次のホップに対応する中継ノード506のNIDを探し、角のホップとして応答メッセージの受信NIDを設定し、応答メッセージをD2D無線レイヤ209に送信する(ステップ569)。D2D無線レイヤ209は、アドホックメッシュネットワーク109を介して中継ノード506を宛先とするユニキャストメッセージとして、応答メッセージを送信する(ステップ571)。
図6Aおよび6Bは、種々の例示的実施形態に従う、アドホックメッシュネットワーク内にコミュニティを配置するプロセスに用いるユーザインタフェースの略図である。図6Aは、アウェアネス情報とそれを管理およびアクセスする命令に関連するコミュニティをリストするユーザインタフェース600を示す。例えば、セクション601は無線ノード101の近くのコミュニティメンバをリストする。メンバは一つ以上の異なるコミュニティからリストされてもよい。メンバを選択することで、ユーザはそのメンバにコンタクトしたり、メンバの状態を見たり、ユーザに関連する他のアプリケーションや機能にアクセスしたりできる。セクション603は特定のコミュニティに参加する招待等の状態命令またはプロンプト等を表示してもよい。ユーザインタフェース600はまた、追加命令を始動する選択可能なメニューオプション605を提供してもよい。例えば、「私の周辺」という選択肢を選ぶと、コミュニティメンバの位置を示す地図607の表示を行ってもよい。
図6Bはコミュニティを管理するユーザインタフェース620を示す。例えば、セクション621は現在規定されているコミュニティと各コミュニティを個別にアクティブまたは非アクティブにする選択肢623を表示する。ユーザはコントロール625を用いて各コミュニティをパブリックまたはプライベートの何れかに指定してもよい。各コミュニティのメンバはセクション627に表示され、コントロール629でメンバの追加または削除を行える。
図7は、ある例示的実施形態に従う、携帯デバイスのコミュニティを形成するプロセスのフローチャートである。ステップ701で通信ネットワーク103は、アドホックメッシュネットワーク109を介したアウェアネス情報を共有する携帯デバイスのコミュニティを形成するためのアクセスおよびサポートを提供する。コミュニティ形成プロセスの一部として、CIDとコミュニティに対応する関連キーがコミュニティメンバに提供される。図4に関連して記述した通り、CIDと関連キーはアドホックメッシュネットワーク109のユーザのプライバシーと匿名性を保護するために使用される。例示的実施形態では、CIDとキーはショートメッセージサービス(SMS)および/または電子メール等のセキュアな送信を用いて共有される。例示的実施形態によっては、こうした通信データの送信は、サービスプラットフォーム103によって進められる。セキュア通信チャネルが利用可能である場合、CIDと関連キーもアドホックメッシュネットワーク109を介して共有されてもよい。通信ネットワーク103はアドホックメッシュネットワーク109と接続して、帯域等の十分なネットワークリソースを提供し、アウェアネス情報を共有するコミュニティの形成を進めることも想定される。
本明細書に記載するアドホックメッシュネットワーク109にコミュニティを配置するプロセスは、ソフトウェアや、汎用プロセッサ,デジタル信号プロセッサ(DSP),特定用途向け集積回路(ASIC),フィールドプログラマブルゲートアレイ(FPGA)等のハードウェア,ファームウェア等によって実装されてもよく、これらの組み合わせでもよい。前述の機能を実行する例示的ハードウェアは以下で説明する。
図8は、本発明の実施形態が実装されうるコンピュータシステム800を示す。コンピュータシステム800は、本明細書に記載するユーザインタフェースを提供するようにプログラムされ、バス810等の通信機構を有する。通信機構は、コンピュータシステム800の他の内部および外部要素との間で情報通信する。「データ」とも呼ばれる「情報」は、物理的に測定可能な現象によって表されることができ、典型的には電圧であるが、実施形態よっては、磁気的、電磁気的、圧力的、化学的、生物学的、分子的、原子的、亜原子的、量子的相互作用、などの現象によって表されることもできる。例えばN極およびS極の磁極や、ゼロと非ゼロの電圧が、2進数ビットの二つの状態(0,1)を表すことができる。高次の数を表すこともできる他の現象も存在する。量子ビット(qubit)は、測定される前は、複数の量子状態が同時に重なったものである。一つ以上の数(digit)のシーケンスはデジタルデータを構成し、数や文字コードを表すことができる。実施形態よっては、アナログデータと呼ばれる情報が、特定の範囲で測定可能な値の連続体に近いものによって表現される。
バス810は、一つ以上の並行的な情報伝達手段を有する。それによって、バス810に組み合わされているデバイスの間で情報が高速に伝達されることができる。情報処理のための一つ以上のプロセッサ802がバス810に組み合わされている。
プロセッサ802は、アドホックメッシュネットワーク109へのコミュニティ配置に関連する情報に関する一連の操作を実行する。処理のセットは、バス810から情報を取り出したり、バス810に情報を流したりすることを含む。処理のセットはまたは、通常、二つまたはそれ以上の情報ユニットを比較したり、情報ユニットの位置をシフトしたり、二つまたはそれ以上の情報ユニットを結合したりすることを含み、例えば加算や乗算,論理和,排他的論理和,論理積などの論理演算を含む。プロセッサにより実行されうる処理のセットの個々の処理は、一つまたは複数のデジット(digit)による処理コードのような、命令と呼ばれる情報によってプロセッサに提示されることができる。処理コードのシーケンスなどの、プロセッサ802により実行される処理のシーケンスは、プロセッサ命令を構成し、これはまた、コンピュータシステム命令や、より簡単にコンピュータ命令などと呼ばれる。プロセッサは、機械的,電気的,磁気的,光学的,化学的,量子的,または他の方法で、単独でまたはこれらを組み合わせて、実装されることができる。
コンピュータシステム800はまた、バス810に接続されるメモリ804を備える。メモリ804は、ランダムアクセスメモリ(RAM)や他のダイナミックなストレージデバイスであることができ、アドホックメッシュネットワーク109にコミュニティを配置するプロセッサ命令を含む情報を格納する。ダイナミックメモリは、コンピュータシステム800が格納されている情報を変更することを可能とする。RAMはメモリアドレスと呼ばれる場所に格納されるべき情報ユニットを格納することを可能とし、また隣接するアドレスの情報とは独立に、当該情報ユニットが読み出しされることを可能とする。メモリ804は、プロセッサ802によって、プロセッサ命令を実行する間に一時的な値を格納するためにも用いられる。コンピュータシステム800は、読み出し専用メモリ(ROM)806や他の静的ストレージデバイスをも備えてもよい。これらもバス810に接続されており、コンピュータシステム800によっては変更されない静的な情報を格納する。あるメモリは、電源供給が失われると格納している情報が消えてしまう揮発性のストレージによって構成される。バス810は、不揮発性のストレージデバイス808も接続されている。このようなデバイスには、磁気ディスクや光ディスク、フラッシュカードなどが含まれる。このようなデバイスには、コンピュータシステム800の電源が切られたり、その他の理由で電源を失ったりする場合でも保持されるべき情報(例えば命令など)が格納される。
アドホックメッシュネットワーク109にコミュニティを配置する命令を含む情報は、人間によって操作される英数字キーを含むキーボードやセンサなどの外部入力装置812から、バス810に供給されプロセッサによって使用される。センサは、その周辺で生じた条件を検出し、検出結果を、測定可能な現象と互換性のある物理的表現に変換し、コンピュータシステム800で提示することができるようにする。その他の外部機器もバス810に接続され、特に人間とのやりとりのために用いられる。このような外部デバイスには、例えば、ブラウン管(CRT)や液晶ディスプレイ(LED)、プラズマスクリーンのような表示装置814や、テキストや画像を提示するためのプリンタや、マウスやトラックボールのようなポインティングデバイス、カーソル指示キー、モーションセンサなどがある。モーションセンサは表示装置814に表示された小さなカーソルのイメージの位置を制御したりディスプレイ814表示されたグラフィック要素に関連する命令を発行したりするために用いられることができる。実施例によっては、例えば、コンピュータシステム800が、人間の入力なしに全ての機能を自動的に実行する場合があり、外部入力デバイス812や表示装置814,ポインティングデバイス816などの一つ以上が省略される場合がある。
例示される実施形態において、専用の目的をもつハードウェア、例えば特定用途向け集積回路(ASIC)820がバス810に接続されることがある。このような専用の目的をもつハードウェアは、プロセッサ802によってはそのような目的が十分に早く遂行されないような処理を実行するように構成される。このようなASICの例として、表示装置814上にイメージを生成するグラフィックアクセラレータカードや、ネットワークを介して送信されるメッセージの暗号化や解読を行う暗号化ボード、音声認識装置、また特殊な目的の外部デバイスとのインタフェースなどがある。そのようなインタフェースは、例えば、ロボットアームや医療用スキャン装置など、複雑なシーケンスの動作を繰り返し行うような装置がある。このような動作はハードウェアによってより効率的に実行されることができる。
コンピュータシステム800は、さらに、一つ以上のインスタンスを有する通信インタフェース870を備える。この通信インタフェース870もバス810に接続される。通信インタフェース870は、それぞれ自身のプロセッサを有する様々な外部デバイスに接続されて、一方向または双方向の通信を提供する。このような外部デバイスとして、プリンタやスキャナ、外部ディスク装置などがある。一般的に、接続はネットワークリンク878によって行われ、ネットワークリンク878はローカルネットワーク880に接続される。ローカルネットワーク880には、自身でプロセッサを有する様々な種類の外部デバイスが接続されている。通信インタフェース870は、例えば、パーソナルコンピュータのパラレルポートやシリアルポート、ユニバーサルシリアル(USB)ポートであることができる。実施形態によっては、通信インタフェース870は、ISDNカードやDSLカードや電話モデムなど、対応する種類の電話通信ラインと情報通信接続を確立するようなものであることができる。実施形態によっては、通信インタフェース870は、ケーブルモデムであることができ、これは、バス810上の信号を、同軸ケーブルを用いた通信接続のための信号や、光ケーブルを用いた通信接続のための光信号に変換する。別の例では、通信インタフェース870は、ローカルエリアネットワーク(LAN)カードであり、これは、イーサネットなどの互換性のあるLANとのデータ通信接続を提供する。ワイアレスリンクが用いられる場合もある。ワイアレスリンクとして、通信インタフェース870は、例えば電気的、音声的、電磁的な信号を、送信したり受信したり送受信したりする。このような信号には、デジタルデータなどの情報ストリームを運ぶこともできる赤外線や光信号も含まれる。例えば、携帯電話等の無線ハンドセットデバイスにおいて、通信インタフェース870はRF送受信機と呼ばれる、RF帯域の電磁波信号の送信機および受信機を備える。実施形態によっては、通信インタフェース870は、アドホックメッシュネットワーク109にコミュニティを配置するために、通信ネットワーク103との接続できる。
本明細書で「コンピュータ可読媒体」という用語は、プロセッサ802に情報(例えば実行命令)を提供しうるいかなる媒体であってもよい。このような媒体は種々の形態をとりうるものであり、揮発性または不揮発性記憶媒体,伝送媒体が含まれる。ただし、これらに限定されない。不揮発性媒体のような非一時的媒体は、例えばストレージデバイス808のような光または磁気ディスクを含む。揮発性の媒体は、例えばダイナミックメモリ804を含む。伝送媒体は、例えば、同軸ケーブルや銅線、光ファイバーケーブル、ワイヤやケーブルを介さずに空間を伝う搬送波などであることができ、搬送波としては音波や電磁波があり、電磁波には無線電波、可視光、赤外線などがある。人々によって信号に含められる一時的な変化は、振幅、周波数、位相、極性などの物理的性質であり、そのような変化が伝送媒体を通じて送信される。コンピュータ可読媒体のよく知られた形態は、例えば、フロッピーディスクやフレキシブルディスク,ハードディスク,磁気テープ等の磁気的媒体、CD-ROMやCDRW,DVD等の光媒体、パンチカードや紙テープ,光マークシート等の孔によるパターンやその他の光学的認識可能な目印を有する物理媒体、RAMやPROM,EPROM,フラッシュEPROM等のメモリチップやカートリッジ,搬送波等であり、その他様々のコンピュータ可読媒体が存在する。
図9は、本発明の実施形態が実装されうるチップセット900を示す。チップセット900は、本明細書に説明されるように、アドホックメッシュネットワーク109を介してアウェアネス情報を提供するようにプログラムされており、例えば、図9に関連して説明されたようなプロセッサやメモリを備え、これらが一つ以上の物理的パッケージに組み込まれている。 より具体的な例を示すと、物理的パッケージは、一つ以上の部材やコンポーネント、および/または基板などの構造物アセンブリ上のワイヤなどを含み、物理的強度、サイズの保持、および/または電気的相互作用の抑制などを提供する。
ある実施形態において、チップセット900は、チップセット900の要素間で情報をやり取りするバス901等の通信機構を備える。プロセッサ903は、メモリ905などに格納される命令を実行したり情報を処理したりするべく、バス901に接続可能に構成される。プロセッサ903は一つ以上のプロセッシングコアを有することができ、それぞれのコアは独立に実行されるように構成されており。マルチコアプロセッサは単一の物理的パッケージによって複数のプロセスを実行できる。マルチコアプロセッサには、2,4,8またはそれ以上のプロセッシングコアを有するものがある。代替または追加として、プロセッサ903はバス901を介して直列に配される一つ以上のマイクロプロセッサを備え、独立に命令を実行できてもよく、パイプラインやマルチスレッドプロセスを実行できてもよい。プロセッサ903は、一つ以上の特定用途の要素を備えてもよい。それらは特定のプロセス機能やタスクを実行するために用いられる。このような特定用途の要素の例は、一つ以上のデジタルシグナルプロセッサ(DSP)907や、一つ以上の特定用途向け集積回路(ASIC)909でもよい。DSP907は、通常、プロセッサ903とは独立に、音声などの現実世界の信号をリアルタイムでプロセスするように構成される。同様に、ASIC909は、汎用プロセッサでは容易に実行できない特定の機能を実行するように構成されてもよい。本明細書で説明された発明性を有する機能を実行する助けとなりうるその他の特定用途の要素としては、一つ以上のフィールドプログラマブルゲートアレイ(FPGA,図示せず)や一つ以上の特定用途コンピュータチップがある。
プロセッサ903および付随するコンポーネントは、バス901を介してメモリ905に接続できるように構成される。メモリ905はダイナミックメモリとスタティックメモリの両方を有する。ダイナミックメモリの例としては、RAMや磁気ディスク,書き込み可能な光ディスク等があり、スタティックメモリの例としては、ROMやCD-ROM等がある。これらのメモリは実行可能命令を格納するために使用され、これら実行可能命令は、実行されると、アドホックメッシュネットワーク109を介してアウェアネス情報を提供する、本明細書で説明された発明性を有するステップを実行する。メモリ905はまた、これらの発明性を有するステップの実行に関連するデータや当該ステップの実行により生成されたデータを格納する。
図10は、ある実施形態に従う携帯端末の例示的な要素の略図である。この携帯端末は、例えばハンドセットであり、図1のシステムで動作する機能を有する。一般的に、無線受信機は、フロントエンドとバックエンドの特性によって定義される。受信機のフロントエンドはRF回路の全て含み、バックエンドはベースバンドプロセス回路の全てを含む。電話機の重要な内部コンポーネントには、メインコントロールユニット(MCU)1003,デジタルシグナルプロセッサ(DSP)1005,送受信ユニットがあり、送受信ユニットには、マイク利得制御ユニットやスピーカ利得制御ユニットが含まれる。メインディスプレイユニット1007は、アウェアネスサービスモジュール111等の
様々なアプリケーションや携帯端末機能をサポートする表示をユーザに提供する。音声機能回路1009はマイクロホン1011と、マイクロホン1011から出力されるスピーチ信号を増幅するマイクロホンアンプとを備える。マイクロホン1011から出力された、増幅されたスピーチ信号は、符号化・復号回路(CODEC)1013に供給される。
無線セクション1015は、信号のパワーを増幅し、アンテナ1017を介して基地局と通信するために、周波数変換を行う。パワーアンプ(PA)1019や送信変調回路は、MCU1103に制御されて応答可能である。本技術分野で周知の通り、PAの出力は、デュプレクサ1021やサーキュレータ、アンテナスイッチに組み合わされる。PA1019はバッテリインタフェースやパワーコントロールユニット1020に組み合わされる。
使用時において、携帯端末1001のユーザはマイクロホン1011に向かって話し、そのユーザの声は拾われたバックグラウンドノイズと共にアナログ電圧に変換される。このアナログ電圧はアナログ・デジタルコンバータ(ADC)1023によってデジタル信号に変換される。コントロールユニット1003は、このデジタル信号を処理するためにDSP1005に供給する。この処理には、音声符号化やチャネル符号化、暗号化、インタリーブなどが含まれる。例示的実施形態では、処理音声信号はセルラ転送プロトコルを用いて符号化される。この符号化は独立した要素として図示されていないユニットによって行われる。符号化方式としては、EDGEやGSM,IMS,UMTS等でよく、何れかの好適な無線媒体、例えばWiMAXやLTE,CDMA,WCDMA,WiFi,衛星通信等を用いてもよい。
符号化信号は、無線送信中に生じる周波数依存の損傷、例えば位相や振幅の歪みを補償するために、等価器1025に送られる。ビットストリームを等価した後、変調機1027が当該信号を、RFインタフェース1029で生成されたRF信号と結合する。変調機1027は、周波数または位相変調により正弦波を生成する。信号を送信準備するため、アップコンバータ1031は、変調機1027から出力された正弦波をシンセサイザ1033により生成された別の正弦波と結合し、送信に望ましい周波数を達成する。この信号はPA1019に送られ、信号の強さを適切なレベルまで増幅する。実際のシステムにおいて、PA1019は、ネットワークの基地局から受信した情報に基づいてDSP1005によって利得が制御される、可変利得増幅器として動作する。信号は、デュプレクサ1021でフィルタされ、場合によってはアンテナカプラ1035に送られ、インピーダンスが合わされて、最大パワーでの送信が実現される。最後に信号はアンテナ1017から現地の基地局へ送信される。受信機における最後のステージの利得を制御するために、自動利得制御機構(AGC)が提供されてもよい。信号は、そこからリモートの電話機と送信される。当該リモートの電話機は、公衆交換電話ネットワーク(PSTN)や他の電話ネットワークに接続される、セルラ電話機や他の携帯電話機、固定電話機であってもよい。
携帯電話機1001に送信された音声信号は、アンテナ1017を介して受信され、直ちに低ノイズアンプ(LNA)1037によって増幅される。ダウンコンバータ1039が搬送周波数を下げ、復調器1041がRFを取り去ってデジタルビットストリームのみを残す。この信号は等価器1025を通された後、DSP1005によって処理される。その後、デジタル・アナログコンバータ(DAC)1043が信号を変換し、その出力はスピーカ1045を通じてユーザに届けられる。これらは全てメインコントロールユニット(MCU)1003の制御下にある。MCU1003は、中央演算装置(CPU,図示せず)によって実装されうる。
MCU1003は様々な信号を受け取るが、その中にはキーボード1047からの信号も含まれる。キーボード1047および/またはMCU1003は、マイクロホン1011など他のユーザ入力要素と共に、ユーザ入力を管理するユーザインタフェース回路を形成する。MCU1103は、携帯端末1001の少なくとも一部の機能をユーザが容易に制御できるように、ユーザインターフェース・ソフトウェアを実行する。MCU1003はまた、表示命令や切り替え命令をディスプレイ1007や音声出力切り替えコントローラにそれぞれ提供する。さらにMCU1003は、DSP1005と情報の交換を行い、搭載されている場合があるSIMカード1049やメモリ1051へアクセスすることも可能である。さらにMCU1003は、端末が必要とする種々の制御機能を実行してもよい。DSP1005は、実装に応じて、音声信号についてのよく知られた各種のデジタル処理機能を実行してもよい。さらにDSP1105は、マイクロホン1011によって検出された信号から周辺環境の背景ノイズレベルを決定し、携帯端末1001のユーザの声が自然に聞こえるようにマイクロホン1011のゲインのレベルを設定する。
CODEC1013は、ADC1023およびDAC1043を含む。メモリ1051は、着信音データを含む様々なデータを格納し、また例えばグローバルなインターネットを介して受信した音楽データなどの他のデータを格納する能力を有する。ソフトウェアモジュールは、RAMメモリやフラッシュメモリ、レジスタなど、技術分野で知られたいかなる形態の書き込み可能な記憶媒体に存在してもよい。メモリデバイス1051は、単一のメモリ,CD,DVD,ROM,RAM,EPROM,光ストレージ等、デジタルデータを格納できる不揮発性のあらゆる記憶媒体であってもよい。
オプションで搭載される場合があるSIMカード1049は、例えば、セルラ電話機の番号やキャリアによって提供されたサービス、加入情報の詳細なセキュリティ情報などの重要な情報を担持する。SIMカード1049の主要な役目は、無線ネットワークにおいて移動端末1001を識別することである。カード1049はまた、個人の電話帳やテキストメッセージ、携帯電話のユーザ設定を格納するためのメモリも備える。
本発明をいくつかの実施形態や実装例を用いて説明してきたが、本発明の範囲はそのように限定されるものではなく、添付の特許請求の範囲に包含される多くの明らかな変形や均等な構成をカバーする。請求項において、本発明の特徴が、ある特定の組み合わせによって表現されているものの、それらはどのような組み合わせや順番に配されてもよい。