(57)【要約】  第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを短距離トランシーバデバイスが把握している他の短距離トランシーバデバイスの識別子のセットを決定して、他の短距離トランシーバデバイスに第１の短距離トランシーバデバイスからメッセージが伝達される。アウトバウンドのサービス済ノードリスト（２０３）が生成され、このリストは、既にメッセージを受信した、または識別子セットのメンバーであることが既知の他の短距離トランシーバデバイスの識別子を含む。メッセージおよびアウトバウンドのサービス済ノードリストは、アウトバウンドのデータ構造に組み込まれる（３００）。識別子セットに含まれる識別子を有する各短距離トランシーバに対して、それ以前に確立されていない通信リンクが開設され、アウトバウンドのデータ構造が短距離トランシーバに送信され（２１１）、アウトバウンドのデータ構造の配信完了に応じて、通信リンクが閉設される（２１３）。
2007536841.tif 000002
【特許請求の範囲】
【請求項１】
第１の短距離トランシーバデバイスから、１以上の他の短距離トランシーバデバイスへ、メッセージを通信する方法であって、該方法は、
前記第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを、前記第１の短距離トランシーバデバイスが把握している１以上の他の短距離トランシーバデバイスの識別子のセットを決定する工程と、
既に前記メッセージを受信した、または識別子の前記セットのメンバーであることが既知の他の短距離トランシーバデバイスの識別子を含む、アウトバウンドのサービス済ノードリストを生成する工程と、
前記メッセージおよび前記アウトバウンドのサービス済ノードリストをアウトバウンドのデータ構造に組み込む工程と、
識別子の前記セットに含まれる識別子を有する各短距離トランシーバについて、
それ以前には確立されていない通信リンクを開設し、
識別子の前記セットに含まれる前記識別子を有する前記短距離トランシーバへ前記アウトバウンドのデータ構造を送信し、
前記アウトバウンドのデータ構造の配信完了に応じて、前記通信リンクを閉設する工程と、
を備えることを特徴とする方法。
【請求項２】
識別子のセットを決定する前記工程が、隣接リストに含まれる全てのデバイス識別子を決定する工程を含み、前記隣接リストは、前記第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを前記第１の短距離トランシーバデバイスが把握している他の全ての短距離トランシーバデバイスの識別子を含む、ことを特徴とする請求項１に記載の方法。
【請求項３】
前記アウトバウンドのサービス済ノードリストを生成する工程が、識別子の前記セットに含まれる全ての識別子を前記第１の短距離トランシーバデバイスの識別子と結合する工程を含むことを特徴とする請求項２に記載の方法。
【請求項４】
少なくとも１つの宛先識別子を前記アウトバウンドのデータ構造に組み込む工程を備えることを特徴とする請求項１に記載の方法。
【請求項５】
前記少なくとも１つの宛先識別子が、宛先アドレスを含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記少なくとも１つの宛先識別子が、宛先名を含むことを特徴とする請求項４に記載の方法。
【請求項７】
前記少なくとも１つの宛先識別子が、チャットグループ識別子を含むことを特徴とする請求項４に記載の方法。
【請求項８】
前記第１の短距離トランシーバデバイスが、第２の短距離トランシーバデバイスからインバウンドのデータ構造を受信し、前記インバウンドのデータ構造は前記メッセージを含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記インバウンドのデータ構造は、インバウンドのサービス済ノードリストを含み、
前記アウトバウンドのサービス済ノードリストを生成する工程は、前記インバウンドのサービス済ノードリストに含まれる識別子を、前記第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを前記第１の短距離トランシーバデバイスが把握している他の全ての短距離トランシーバデバイスの識別子と結合する工程を含む
ことを特徴とする請求項８に記載の方法。
【請求項１０】
前記結合後に、前記アウトバウンドのサービス済ノードリストに同一の短距離トランシーバデバイスが複数含まれないようにする工程を含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記アウトバウンドのサービス済ノードリストを生成する工程は、前記インバウンドのサービス済ノードリストに含まれる識別子を、前記第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを前記第１の短距離トランシーバデバイスが把握している全ての短距離トランシーバデバイスの識別子および前記第１の短距離トランシーバデバイスの識別子と結合する工程を含む
ことを特徴とする請求項９に記載の方法。
【請求項１２】
前記インバウンドのデータ構造がインバウンドのサービス済ノードリストを含み、
識別子の前記セットを決定する工程は、隣接リストに含まれるが、前記インバウンドのサービス済ノードリストには含まれないデバイス識別子を決定する工程を含み、
前記隣接リストは、前記第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを前記第１の短距離トランシーバデバイスが把握している他の全ての短距離トランシーバデバイスの識別子を含む
ことを特徴とする請求項８に記載の方法。
【請求項１３】
前記インバウンドのデータ構造がインバウンドのメッセージ識別子を含み、
前記方法は、
前記インバウンドのメッセージ識別子を、以前に受信したメッセージ識別子のリストと比較する工程と、
前記インバウンドのメッセージ識別子が、前記以前に受信したメッセージ識別子のいずれかと整合した場合に、前記アウトバウンドのデータ構造の送信を抑制する工程と、
を備えることを特徴とする請求項８に記載の方法。
【請求項１４】
前記インバウンドのデータ構造がホップカウントを含み、
前記方法は、
前記ホップカウントの値を調整する工程と、
調整された前記ホップカウントを前記アウトバウンドのデータ構造に組み込む工程と、
を備えることを特徴とする請求項８に記載の方法。
【請求項１５】
前記インバウンドのデータ構造がホップカウントおよびホップ数の最大値を含み、
前記方法は、
前記ホップカウントをホップ数の前記最大値と比較する工程と、
前記比較の結果、前記ホップカウントとホップ数の前記最大値との間に所定の関係が成立する場合に、前記アウトバウンドのデータ構造の送信を抑制する工程と、
を備えることを特徴とする請求項８に記載の方法。
【請求項１６】
識別子の前記セットの全ての識別子を含むデータ構造を生成する工程と、
前記データ構造を利用して、識別子の前記セットに含まれる識別子を有する各短距離トランシーバを識別する工程と、
を備えることを特徴とする請求項１に記載の方法。
【請求項１７】
第１の短距離トランシーバデバイスから１以上の他の短距離トランシーバデバイスへメッセージを通信する装置であって、
前記第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを前記第１の短距離トランシーバデバイスが把握している１以上の他の短距離トランシーバデバイスの識別子のセットを決定する手段と、
既に前記メッセージを受信した、または識別子の前記セットのメンバーであることが既知の他の短距離トランシーバデバイスの識別子を含む、アウトバウンドのサービス済ノードリストを生成する手段と、
前記メッセージおよび前記アウトバウンドのサービス済ノードリストをアウトバウンドのデータ構造に組み込む手段と、
識別子の前記セットに含まれる識別子を有する各短距離トランシーバについて、
それ以前には確立されていない通信リンクを開設し、
識別子の前記セットに含まれる前記識別子を有する前記短距離トランシーバへの    前記アウトバウンドのデータ構造を送信し、
前記アウトバウンドのデータ構造の配信完了に応じて前記通信リンクを閉設する
ための手段と、
を備えることを特徴とする装置。
【請求項１８】
識別子の前記セットを決定する手段が、隣接リストに含まれる全ての識別子を決定する手段を含み、前記隣接リストは、前記第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを前記第１の短距離トランシーバデバイスが把握している他の全ての短距離トランシーバデバイスの識別子を含む、ことを特徴とする請求項１７に記載の装置。
【請求項１９】
前記アウトバウンドのサービス済ノードリストを生成する前記手段は、識別子の前記セットに含まれる全ての識別子を前記第１の短距離トランシーバデバイスの識別子と結合する手段を含むことを特徴とする請求項１８に記載の装置。
【請求項２０】
少なくとも１つの宛先識別子を前記アウトバウンドのデータ構造に組み込む手段を含む、ことを特徴とする請求項１７に記載の装置。
【請求項２１】
前記少なくとも１つの宛先識別子が、宛先アドレスを含むことを特徴とする請求項２０に記載の装置。
【請求項２２】
前記少なくとも１つの宛先識別子が、宛先名を含むことを特徴とする請求項２０に記載の装置。
【請求項２３】
前記少なくとも１つの宛先識別子が、チャットグループ識別子を含むことを特徴とする請求項２０に記載の装置。
【請求項２４】
第２の短距離トランシーバデバイスからインバウンドのデータ構造を受信する手段を備え、前記インバウンドのデータ構造が前記メッセージを含むことを特徴とする請求項１７に記載の装置。
【請求項２５】
前記インバウンドのデータ構造がインバウンドのサービス済ノードリストを含み、
前記アウトバウンドのサービス済ノードリストを生成する前記手段は、前記インバウンドのサービス済ノードリストに含まれる識別子を、前記第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを前記第１の短距離トランシーバデバイスが把握している他の全ての短距離トランシーバデバイスの識別子と結合する手段を含む
ことを特徴とする請求項２４に記載の装置。
【請求項２６】
前記結合後に、前記アウトバウンドのサービス済ノードリストに同一の短距離トランシーバデバイスが複数含まれないようにする手段を含むことを特徴とする請求項２５に記載の装置。
【請求項２７】
前記アウトバウンドのサービス済ノードリストを生成する前記手段は、
前記インバウンドのサービス済ノードリストに含まれる識別子を、前記第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することが既知の他の全ての短距離トランシーバデバイスの識別子および前記第１の短距離トランシーバデバイスの識別子と結合する手段を含む
ことを特徴とする請求項２５に記載の装置。
【請求項２８】
前記インバウンドのデータ構造がインバウンドのサービス済ノードリストを含み、
識別子の前記セットを決定する前記手段は、
隣接リストに含まれるが、前記インバウンドのサービス済ノードリストには含まれないデバイス識別子を決定する手段を含み、
前記隣接リストは、前記第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを前記第１の短距離トランシーバデバイスが把握している他の全ての短距離トランシーバデバイスのデバイス識別子を含む
ことを特徴とする請求項２４に記載の装置。
【請求項２９】
前記インバウンドのデータ構造がインバウンドのメッセージ識別子を含み、
前記装置は、
前記インバウンドのメッセージ識別子を、以前に受信したメッセージ識別子のリストと比較する手段と、
前記インバウンドのメッセージ識別子が、前記以前に受信したメッセージ識別子のいずれかと整合した場合に、前記アウトバウンドのデータ構造の送信を抑制する手段と、
を備えることを特徴とする請求項２４に記載の装置。
【請求項３０】
前記インバウンドのデータ構造がホップカウントを含み、
前記装置は、
前記ホップカウントの値を調整する手段と、
調整された前記ホップカウントを前記アウトバウンドのデータ構造に組み込む手段と
を備えることを特徴とする請求項２４に記載の装置。
【請求項３１】
前記インバウンドのデータ構造がホップカウントおよびホップ数の最大値を含み、
前記装置は、
前記ホップカウントをホップ数の前記最大値と比較する手段と、
前記比較の結果、前記ホップカウントとホップ数の前記最大値との間に所定の関係が成立する場合に、前記アウトバウンドのデータ構造の送信を抑制する手段と
を備えることを特徴とする請求項２４に記載の装置。
【請求項３２】
識別子の前記セットの全ての識別子を含むデータ構造を生成する手段と、
前記データ構造を利用して、識別子の前記セットに含まれる識別子を有する各短距離トランシーバを識別する手段と
を備えることを特徴とする請求項１７に記載の装置。
【請求項３３】
請求項１７に記載の装置を含む移動体通信デバイス。
【請求項３４】
コンピュータに、第１の短距離トランシーバデバイスから、１以上の他の短距離トランシーバデバイスへ、メッセージを通信する方法を実行させるためのコンピュータプログラムを格納した、コンピュータで読み取り可能な記憶媒体であって、前記方法は、
前記第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを、前記第１の短距離トランシーバデバイスが把握している１以上の他の短距離トランシーバデバイスの識別子のセットを決定する工程と、
既に前記メッセージを受信した、または識別子の前記セットのメンバーであることが既知の他の短距離トランシーバデバイスの識別子を含む、アウトバウンドのサービス済ノードリストを生成する工程と、
前記メッセージおよび前記アウトバウンドのサービス済ノードリストをアウトバウンドのデータ構造に組み込む工程と、
識別子の前記セットに含まれる識別子を有する各短距離トランシーバについて、
それ以前には確立されていない通信リンクを開設し、
識別子の前記セットに含まれる前記識別子を有する前記短距離トランシーバへ前記アウトバウンドのデータ構造を送信し、
前記アウトバウンドのデータ構造の配信完了に応じて、前記通信リンクを閉設する工程と、
を備えることを特徴とする、記憶媒体。
【請求項３５】
データ構造に含まれるメッセージを第１の短距離トランシーバデバイスにより受信し、評価し、転送する方法であって、
インバウンドのデータ構造を受信する工程と、
前記データ構造に含まれる所定の宛先パラメータを評価して、前記第１の短距離トランシーバが前記メッセージの意図された受信デバイスであるか否かを判定する工程と、
前記メッセージが転送される、少なくとも１つの隣接する短距離トランシーバを識別する工程と、
前記少なくとも１つの隣接する短距離トランシーバの識別子情報を前記データ構造に付加する工程と、
前記少なくとも１つの隣接する短距離トランシーバのうち第１のトランシーバに対して、それ以前には確立されていない通信リンクを開設する工程と、
前記通信リンクを介して前記アウトバウンドのデータ構造を送信する工程と、
前記アウトバウンドのデータ構造の配信完了に応じて、前記通信リンクを閉設する工程と
を備えることを特徴とする方法。
【請求項３６】
データ構造に含まれるメッセージを第１の短距離トランシーバにより受信し、評価し、転送するための装置であって、
インバウンドのデータ構造を受信する手段と、
前記データ構造に含まれる所定の宛先パラメータを評価して、前記第１の短距離トランシーバが前記メッセージの意図された受信トランシーバであるか否かを判定する手段と、
前記メッセージが転送される、少なくとも１つの隣接する短距離トランシーバを識別する手段と、
前記少なくとも１つの隣接する短距離トランシーバの識別子情報を前記データ構造に付加する手段と、
前記少なくとも１つの隣接する短距離トランシーバのうち第１のトランシーバに対して、それ以前には存在しない通信リンクを開設する手段と、
前記通信リンクを介して前記アウトバウンドのデータ構造を送信する手段と、
前記アウトバウンドのデータ構造の配信完了に応じて、前記通信リンクを閉設する手段と
を備えることを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は移動体電話機および地域通信のための組み込み無線機能を有するその他の移動体デバイスに関する。より詳細には、本発明は地域ネットワークにおけるユーザ間の無線メッセージングにこのようなデバイスを使用することに関する。
【背景技術】
【０００２】
ＩＣＱ（"I-seek-you"「私はあなたを捜している」）はインターネットを介して互いにチャットすることをＰＣユーザに可能にするインターネットベースのサービスである。「チャットする」とはチャットグループ内においてインスタントメッセージの送受信ができることを意味する。チャットグループはお互いを知っており、同じ興味を共有し、または通信をただ希望する人々の間で形成することができる。
【０００３】
移動体電話機は移動体電話サービスプロバイダによって提供されるある種のショート・メッセージ・サービス（Short Message Service,SMS）をサポートするためのハードウエアおよびソフトウエアを備えることが多い。このサービスにより、ユーザは簡単なテキストメッセージを作り、セルネットワークを介して他のユーザにテキストメッセージを送信することができる。また「チャットモード」をサポートする移動体電話機およびサービスプロバイダがあり、チャットモードは２以上のユーザ間の送受信メッセージの連鎖を表示するソフトウエア・アプリケーションである。
【０００４】
最近、付加的な短距離無線トランシーバを含む移動体電話機が導入され、該移動体電話機は、同様にして短距離無線トランシーバを装備する他のデバイスとの間でローカルな通信を行うことができる。短距離このような短距離トランシーバの例にはBluetooth(登録商標)トランシーバ、（例えば、ＩＥＥＥ８０２．１１の任意の規格に従って動作する）無線ローカル・エリア・ネットワーク（Wireless Local Area Network, WLAN）、および、将来のウルトラワイドバンド（Ultra Wide Band）がある。短距離トランシーバは種々の地域の音声およびデータサービスへのアクセスに使用される。
【０００５】
多くのこれら短距離トランシーバは比較的簡単なユーザの相互動作により他のこのようなデバイスとのアドホック接続の確立を可能にする。携帯電話などにおける移動体通信と異なり、短距離トランシーバによるアドホック接続にはいかなるインフラストラクチャのサポートも必要ではない。
【０００６】
Bluetooth(登録商標)技術を例にとれば、アドホック接続によりスタートポロジーにおけるデバイス相互の接続を行うことができる。この設備では、１つのデバイスがマスターの役割を果たし、スレーブの役割を担う１から７台の他のデバイスと接続することができる。このタイプのネットワーク設備はピコネットと呼ばれる。ピコネットのマスターはスレーブにデータを送信することができ、またスレーブを指定してデータをマスターに送信させることができる。マスターはまたピコネットの他のネットワーク管理機能の制御および調整を行う。
【０００７】
個々のピコネットは相互接続が可能である。この場合、ピコネットに関与するデバイスの少なくとも１つ（ここではブリッジノードと呼ばれる）は、少なくとも２つのピコネットに同時に関与しなければならない。このタイプのネットワークトポロジーはスキャタネットと呼ばれる。
【０００８】
スキャタネット技術は多数のデバイスのネットワーク形成を許容する。スキャタネットにおけるマルチホップ技術の適用により、２台のデバイスが相互に到達可能な範囲を拡張することが可能になる。即ち、同一ピコネットに加入していないデバイス同士であっても、その通信パケットをブリッジノード゛が中継することにより、相互に通信することができる。この場合ブリッジノードは、情報パケットの意図された最終的な宛先への伝達を保証する処置を行う。「マルチホップ」との語は、本明細書では、意図された宛先への経路上に存在する少なくとも１つの中間ノードによるメッセージの転送を意味する。この技術は単一のBluetoothピコネットでは使用されないが、メッシュネットワーク(例えば、インターネットまたはＩＥＥＥ８０２．１５．４)では使用できる。Bluetooth(登録商標)規格により規定されたマルチホップルーティング機構は存在しない。
【０００９】
Bluetooth(登録商標)デバイスはそれぞれ、Bluetooth(登録商標)デバイス（ＢＤ）アドレスとして知られる、デバイス固有の４８ビットアドレスを有する。
【００１０】
Bluetooth(登録商標)規格に関する詳細はさらに特許文献１に見ることができる。Ｊ．ハートセン（J．Haartsen）の「Bluetooth無線システム」、ＩＥＥＥパーソナル通信（IEEE Personal Communications）ページ６−１４、２０００年２月に概要が良く示されている。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
短距離移動体デバイス間の「チャット」のような無線メッセージングアプリケーションを実装する１つの方法は、スキャタネットトポロジーを確立し、維持することである。しかしながら、スキャタネットの運用には幾つか問題点がある、例えば、複雑なスケジューリング、ネットワーキングおよび移動性管理が要求される。
【００１２】
スケジューリングは複数のピコネットに関与する必要のあるノード（即ち、ブリッジノード）の場合、特に複雑である。このようなノードは複数のピコネット間でリアルタイムにその存在を共有する必要がある。そのためには、２つの独立したピコネットのクロックとそれぞれのドリフトとを相互に管理する必要がある。
【００１３】
ネットワーキングはルーティングを通じて達成することができ、その際ルーティングテーブルが生成される。ルーティングテーブルはスキャタネットのデバイス間の、可能性のある種々のデータ経路を記憶する。ルーティングテーブルはメッセージングの開始前に確立することができる、または必要になる度に（例えば、メッセージが送信される度に）生成することができる。
【００１４】
メッセージの送信前にルーティングテーブルが生成される場合、移動するデバイスに対処するためにルーティングテーブルは常に更新が必要である。スキャタネットに所属するデバイスが動き回ると、スキャタネットリンク断を引き起こす可能性がある。リンク断になると、スキャタネットは少なくとも部分的に再構成を必要とし、これによりルーティングテーブル更新の必要性を生じる。
【００１５】
短距離移動体デバイス間の「チャット」機構をサポートするスキャタネット技術の信頼性に関するさらに別の問題点は、スキャタネット機構がBluetooth(商標登録)ＳＩＧにより未だ完全に規定されていないことである。Bluetooth(商標登録)ＳＩＧにより汎用スキャタネット機能が完全に規定されたとしても、そのソリューションはやや複雑であると考えられる。
【００１６】
「備える」との語が本明細書で使用される場合、記載される特徴、数値、工程または構成要素の存在を規定するものと解釈されるが、これら用語の使用は１つ以上の他の特徴、数値、工程、構成要素、またはそれらの組合せの存在または追加を排除するものではないことが強調されるべきである。
【課題を解決するための手段】
【００１７】
方法および装置により第１の短距離トランシーバデバイスから１以上の他の短距離トランシーバデバイスへメッセージを通信する。種々の実施形態の態様によれば、この態様には第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを、第１の短距離トランシーバデバイスが把握している１以上の複数の他の短距離トランシーバデバイスの識別子のセットの決定が含まれる。既にメッセージを受信した、または識別子のセットのメンバーであることが既知の他の短距離トランシーバデバイスの識別子を含む、アウトバウンドのサービス済ノードリストが生成される。メッセージおよびサービス済ノードリストはアウトバウンドのデータ構造に組み込まれる。識別子セットに含まれる識別子を有する各短距離トランシーバについて、それ以前には確立されていない通信リンクが開設され、識別子セットに含まれる識別子を有する短距離トランシーバへアウトバウンドのデータ構造が送信され、アウトバウンドのデータ構造の配信完了に応じて、通信リンクが閉設される。幾つかの実施形態では、識別子セットを構成する識別子を宛先リストなどのデータ構造に格納することができるが、これは本質的な特徴ではない。次いで、データ構造を使用して、識別子セットに含まれる識別子を有する各短距離トランシーバを識別することができる。
【００１８】
別の態様によれば、識別子セットの決定には、隣接リストに含まれる全てのデバイス識別子の決定が含まれ、隣接リストは第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを第１の短距離トランシーバデバイスが把握している他の全ての短距離トランシーバデバイスのデバイス識別子を含む。これは、例えばメッセージが第１の短距離トランシーバデバイスにおいて発生する場合に実行される。
【００１９】
他の態様では、アウトバウンドのサービス済ノードリストの生成に、識別子セットに含まれる全ての識別子と、第１の短距離トランシーバデバイスの識別子との結合が含まれる。
【００２０】
また別の態様では、メッセージの伝達は、少なくとも１つの宛先識別子のアウトバウンドのデータ構造への組み込みを含む。少なくとも１つの宛先識別子は、例えば、宛先アドレス、宛先名、およびチャットグループ識別子の任意の１つ、または、それらの組み合わせを含むことができる。
【００２１】
また別の態様では、第１の短距離トランシーバデバイスは第２の短距離トランシーバデバイスからインバウンドのデータ構造を受信し、該インバウンドのデータ構造はメッセージを含む。
【００２２】
このような場合、インバウンドのデータ構造はインバウンドのサービス済ノードリストを含む。また、アウトバウンドのサービス済ノードリストの生成には、インバウンドのサービス済ノードリストに含まれる識別子と、第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを第１の短距離トランシーバデバイスが把握している他の全ての短距離トランシーバデバイスの識別子との結合を含めることができる。
【００２３】
さらに別の態様では、結合後に、アウトバウンドのサービス済ノードリストに同一の短距離トランシーバデバイスが複数含まれることはない。
【００２４】
また別の態様では、アウトバウンドのサービス済ノードリストの生成には、インバウンドのサービス済ノードリストに含まれる識別子と、第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを第１の短距離トランシーバデバイスが把握している他の全ての短距離トランシーバデバイスの識別子および第１の短距離トランシーバデバイスの識別子との結合を含めることができる。
【００２５】
また別の態様では、データ構造を受信した場合に、インバウンドのデータ構造がインバウンドのサービス済ノードリストを含むことができる。これらの実施形態の幾つかでは、識別子セットの決定には、隣接リストには含まれるがインバウンドのサービス済ノードリストには含まれないデバイス識別子の決定が含まれる。また、隣接リストは第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを第１の短距離トランシーバデバイスが把握している他の全ての短距離トランシーバデバイスのデバイス識別子を含む。
【００２６】
さらに別の態様では、インバウンドのデータ構造はメッセージ識別子を含み、該メッセージ識別子は、以前に受信したメッセージ識別子のリストと比較される。さらに、インバウンドのメッセージ識別子が、以前に受信したメッセージ識別子のいずれかと整合した場合、アウトバウンドのデータ構造の送信は抑制される。
【００２７】
また別の態様では、インバウンドのデータ構造はホップカウントを含み、ホップカウントは受信後調整される。次いで、調整されたホップカウントはアウトバウンドのデータ構造に組み込まれる。
【００２８】
さらに別の態様では、インバウンドのデータ構造はホップカウントおよびホップ数の最大値を含む。ホップカウントはホップ数の最大値と比較される。該比較の結果、ホップカウントとホップ数の最大値との間に所定の関係が成立すれば、アウトバウンドのデータ構造の送信は抑制される。
【００２９】
本発明の目的および利点は図面を参照して、以下の詳細な説明により理解されるであろう。
【発明を実施するための最良の形態】
【００３０】
以下、本発明の種々の特徴を、図面を参照して説明する。図面では、同一要素には同一の参照番号を付すこととする。
【００３１】
次いで、本発明の種々の態様を幾つかの例示的実施形態と関係してより詳細に説明する。本発明の理解を容易にするために、本発明の多くの態様をコンピュータシステムの要素により実施される動作シーケンスにより説明する。各実施形態において、種々の動作は特別の回路(例えば、特別の機能を実行するために相互結合されたディスクリート論理ゲート)、１つ以上のプロセッサにより実行されるプログラム命令、または両者の組み合わせにより実行されうることが認められる。さらに加えて、本発明は、プロセッサに本明細書に記載された技術を実行させるためのコンピュータ命令の適切なセットを含む、固体メモリ、磁気ディスク、光ディスクまたは搬送波（無線周波数、音声周波数または光周波数の搬送波）などの任意の形態のコンピュータ読取可能な媒体において完全に実施されると考えられる。従って、本発明の種々の態様は多くの異なる形式で実施されることができ、そのような形式は全て本発明の範囲内にあると考えられる。本発明の種々の態様のそれぞれに対する、このような任意の形式の実施形態は、本明細書では説明する動作を実行する「ように構成されたロジック」、またはこれとは別に、説明する動作を実行する「ロジック」を意味することができる。
【００３２】
本明細書で説明する種々の実施形態の概要をまず提示する。無線メッセージングの可能な移動体デバイスを記載する。移動体デバイスは無線メッセージングサービスを使用するアプリケーションを含む。このようなアプリケーションの例は、背景技術の節で説明した移動体チャットである。さらに移動体デバイスは、通信相手先装置（peer）との間でメッセージの送受信が可能な、短距離トランシーバを含む。
【００３３】
発明のある側面において、受信メッセージを他のデバイスに転送することができ、ネットワークの物理的範囲を拡大することができる。全てのメッセージは、一時的なポイント・ツー・ポイント・リンクによりネットワーク内で伝送される。
【００３４】
幾つかの実施形態で、無線メッセージングアプリケーションが起動されている各デバイスのデフォルトモードは、他のデバイスからのメッセージを聴取することである。Bluetooth(商標登録)技術をベースとした実施形態では、このモードは、ページスキャン、または、問い合わせスキャン、と呼ばれる。各デバイスは、無線メッセージングアプリケーションが起動された全ての隣接デバイスのリストを保持する。このリストは、隣接デバイスが依然として到達可能であるかを判定することにより、定期的に更新される。これはリスト内の各デバイスに、ページメッセージを送信することにより達成される。ページメッセージに応答しないデバイスとは通信ができないので、隣接リストから削除されるべきである。到達可能な新規デバイスは、問い合わせメッセージの定期的送信により検出される。問い合わせメッセージに応答するデバイスは、リスト済のものを除き隣接リストに追加されるべきである。
【００３５】
ユーザがメッセージを生成し、送信すると、デバイスは隣接リストの各デバイスにメッセージを送信する。同様に、デバイスがメッセージを受信すると、その無線メッセージングアプリケーションはユーザにメッセージを表示することができ、またその隣接リストの他のデバイスにメッセージを転送することができる。
【００３６】
次いで、本発明のこれらおよび他の態様をさらに詳しく説明する。
【００３７】
図１は、スキャタネットを構成する幾つかの短距離トランシーバデバイスを示す。例えば、短距離トランシーバデバイスはBluetooth(商標登録)規格に従い動作することができる。２つのマスターＭ１およびＭ２があり、Ｍ１はスレーブデバイスＳ１、Ｓ２、Ｓ３およびＳ４のマスターである。Ｍ２はスレーブデバイスＳ４、Ｓ５、Ｓ６およびＳ７のマスターである。この例では、スレーブデバイスＳ４は、Ｍ１およびＭ２の両方に接続され、２つのピコネットを結合する役割を果たすことが分かる。ネットワーキングの観点からは、任意の２つデバイス間に経路を見つけることが可能であるので、いずれのデバイスも他の任意のデバイスと通信することができる。
【００３８】
Ｍ１およびＭ２はルータの役割を担うことができる。このことは、両者がネットワークにおいて可能性のある種々の通信経路を記述するルーティングテーブルを確立し、維持することを意味する。ネットワークの第１のデバイスがネットワークの第２のデバイスとの通信を望めば、第１のデバイスはルータを見つけようとする。ルータは第２のデバイスが到達可能かを把握し、可能であれば、その到達方法を決定する。これにより、メッセージはその宛先に配信されることができる。
【００３９】
本発明の実施形態では、以上に説明したルータに頼らなくてすむようにする。その代わり、各ノードはどのデバイスが隣接ノードであるかを把握し、次いでこれら隣接ノードの幾つか、または、全てと通信する責任を負う。図２は、各短距離トランシーバデバイス内のロジック（例えば、プロセッサおよび他のハードウエアコンポーネントの少なくともいずれか）により実行される処理の一例を示すフローチャートである。メッセージはどこかで発生する筈なので、メッセージを発信した短距離トランシーバデバイス（以下、「発信デバイス」）内で実行される処理を考察することにより説明を行う。メッセージの送信、および以前に送信された問い合わせメッセージへの確認応答の少なくともいずれかにより、発信デバイスは、従前に隣接リスト（即ち、隣接する短距離トランシーバデバイスのリスト）を確立しているものと仮定する。次いで、発信デバイスは、その隣接リストを使用して、宛先リストを生成する(ステップ２０１)。宛先リストは、メッセージの意図される受け手の全てを指定する。この例では、発信デバイスは、宛先リスト内に隣接デバイスの全てを含めることを選択する。別の実施形態では、発信デバイスは、宛先リストから隣接デバイスの幾つかを除外するための、いくつかのロジックまたはアルゴリズムを更に含んでいてもよい。
【００４０】
発信デバイスはまた、サービスした（役目を果たした）ノードのリスト（サービス済ノードリスト）と呼ばれる、第２のリストを生成する(ステップ２０３)。このリストは、メッセージの受け手に、どのデバイスが当該メッセージを既に受信しているのかを通知する。これにより直近の受け手が、以前の受け手にメッセージを送信するといった、無用のステップを除去することができる。サービス済ノードリストの生成は簡単であり、発信デバイスは宛先アドレスをコピーし、自身の識別子を追加するだけである。この最後のステップはメッセージの受け手が、発信デバイスにメッセージを返送するのを防ぐために実行される。
【００４１】
発信デバイスはまた、メッセージを生成するための任意の幾つかの機構を使用する(ステップ２０５)。例えば、発信デバイスは、ユーザが（通常短い）テキストメッセージをタイプインすることを可能にするアプリケーションを含むことができる。その場合、メッセージのユーザパートの生成は単に関連するテキスト入力アプリケーションの実行およびユーザにより入力されたテキストデータの収集を含むだけでよい。また、メッセージのユーザパートは以前に入力されていることもあり、その場合は、格納位置からユーザパートを取り出すだけでよい。またある時点では、チャットサービスにおいて、簡単なテキストのみでなく、画像および音声データの少なくともいずれかをユーザが交換することも可能になると予想される。従って、本発明の種々の実施形態では、任意の形式のメッセージを使用することができる。
【００４２】
メッセージのユーザパートにさらに情報が追加された後に、メッセージは任意の他のデバイスに伝達される。現時点ではほんの少数の可能性のみを説明し、他は以下の図３を参照して説明する。ユーザパートに追加される情報の１つの項目はサービス済ノードリストであり、これは既に説明した。さらに、発信デバイス近傍の短距離トランシーバデバイスを選択するためにメッセージの配信を制限することが求められれば、何らかの形態で意図された受け手を識別するための情報(例えば、宛先アドレス、宛先名、および、チャットグループの少なくともいずれかを識別する)を、メッセージに追加することができる。
【００４３】
メッセージの送信準備ができれば、宛先リストで識別される各短距離トランシーバデバイスにメッセージが送信される。しかしながら、ここで留意すべきは、短距離トランシーバデバイスの環境（例えば、Bluetooth(商標登録)ベースの環境）では、発信デバイスと任意のその隣接デバイスとの間に予め確立された接続は一般に存在せず、この時点では永続的な接続を創出する希望もないことである。
【００４４】
それ故、メッセージを送信するために、発信デバイス（または後に理解されるように、このプロセスを実行する全てのデバイス）は、宛先リストにより識別される各デバイスに、特定のプロセスを実行する(判定ブロック２０７)。このプロセスは、ページング、および、その結果として考慮すべきデバイスとの接続の確立を含む(ステップ２０９)。接続を確立すると、次いでデバイスはメッセージを送信する(ステップ２１１)。メッセージの配信を完了すると、デバイスは隣接デバイスとの接続を切断する(ステップ２１３)。何を持って「配信完了」とするかは実施形態により異なってよい。Bluetooth(商標登録)ネットワークにおいては、送信デバイスは受け手から確認応答を受信した場合に、送信完了と考えることができる。
【００４５】
別の実施形態では、短距離トランシーバ通信において使用されるプロトコルを決定するための関連規格は、メッセージをページングメッセージそのものに添付する能力を含むことができる。このような環境では、ステップ２０９、２１１および２１３を単一動作に融合することができ、メッセージは、それまでに確立されていた接続を使わずに、隣接デバイスに単に「プッシュ」される。
【００４６】
これら実施形態の全てに関連するのは、発信デバイスが、隣接デバイスを含む確立されたネットワークの既存の加入デバイスである必要がないことである。Bluetooth(商標登録)に関連する実施形態では、発信デバイスが、マスターから隣接デバイスへメッセージが伝送される間に隣接デバイスのそれぞれとアドホックピコネットを確立するように処理が行われるが、その後ピコネットは分断される。
【００４７】
別の態様では、短距離トランシーバデバイスは、メッセージの発信デバイスではなく、替わって受け手(以後「受信デバイス」)であってもよい。この場合、処理は典型的に、受信デバイスがページスキャン動作を行うことにより開始される(ステップ２１５)。このような動作には、デバイスがアイドルモードからの起動し、（関連するプロトコル規格に応じて決定される）周波数をスキャンして、別のデバイスが受信デバイスに宛てたページングメッセージを送信しているか否かを検出する動作が含まれる。係るメッセージが検出されなければ、デバイスは単にアイドルモードの動作にしばらくの間戻り、その後、別のページスキャン動作が行われる。
【００４８】
ページングメッセージが受信されれば、受信デバイスは関連する通信プロトコルの下で求められる接続確立手順を何であれ実行し、次いで新たに確立された接続においてメッセージを受信する(ステップ２１７)。メッセージの配信が完了すると、接続はその時点で切断される。
【００４９】
実施形態が近くの他のユニットに選択的にメッセージを配信する能力を含めば、受信デバイスは、メッセージのある箇所を検査し、それを以前に確認したメッセージの内部格納リストと比較する(判定ブロック２１９)。もし整合すれば（判定ブロック２１９において「はい」）、メッセージを単に廃棄することができる(ステップ２２１)。この環境では、いずれのデバイスも、隣接デバイスがどのデバイスにメッセージを送信しているかを知らないので、このようなことは容易に起こりうる。つまり、複数の短距離トランシーバデバイスが、それらで共有する隣接デバイスに同一のメッセージを送信することがある。
【００５０】
受信デバイスが受信メッセージをそれ以前に確認したことがなければ(判定ブロック２１９において「いいえ」)、メッセージはローカル処理される(ステップ２２３)。ローカル処理の個々の態様はアプリケーション特有のものであるので、本明細書では完全には規定できない。但し、このような処理は、例えば受信メッセージのユーザ表示装置での提示を含むことができる。音声またはビデオメッセージの再生などの他の動作も考えることができる。
【００５１】
メッセージをローカル処理することに加えて、受信デバイスはメッセージを、該メッセージを未だ受信したことがないと思われる隣接デバイスに送信する。その際、サービス済ノードリストの生成(または更新)も行われる(ステップ２２５)。この生成処理の一つの方法は、メッセージに伴うサービス済ノードリスト(即ち、インバウンドのサービス済ノードリスト)をコピーし（そうでなければ包含しまたは組み合わせ）、受信デバイスの隣接リストからの識別子を、意図するアウトバウンドのサービス済ノードリストに加えることにより行われる。ここで、アウトバウンドのサービス済ノードリストにおいて、特定のいずれかの識別子が複数回示されることを避ける処置を行うことが望ましい。この新しいアウトバウンドのサービスされるノードリストは次いで、アウトバウンドのメッセージと共に通信される。
【００５２】
受信デバイスはまた、メッセージを実際に送信する際に機能する新しい宛先リストを生成する(ステップ２２７)。これは受信デバイスの隣接リストを元に、最初に受信したサービス済ノードリストのコピー(即ち、インバウンドのサービス済ノードリスト)をにおいても識別される短距離トランシーバデバイスの識別子を除去することにより達成することができる。この場合、残るのは未だメッセージを受信したことのない隣接デバイスのリストである。
【００５３】
宛先リストの各短距離トランシーバデバイスへのメッセージの送信は、次いで発信デバイスに関して以上で記載したのと同じように行われる(ステップ２０７から始まる処理を参照)。従って、このプロセスを本明細書では再度記載しない。
【００５４】
以上から明らかなように、メッセージの正しい配信を保証するために一定の制御関連情報をメッセージのユーザパートと共に伝達することが必要である。本明細書に記載する実施形態の別の態様では、ある短距離トランシーバデバイスから別のデバイスに伝達されるメッセージは図３に示すデータ構造３００で説明するような情報要素を含むことができる。図３は特定の順序で配置された情報要素を示すが、この配置は決して本発明に本質的ではない。逆に、この情報を符号化する任意の配置および形式の少なくともいずれかを受容でき、図３に示す各情報の項目がそれぞれの実施形態に含まれないことも予期される。これらは、広義の意味で本明細書ではその性質により完全には数え挙げることのできない設計上の選択である。
【００５５】
典型的なデータ構造３００における各フィールドを次に説明する。
【００５６】
−メッセージ本体(Message_body)フィールド３０１は、ユーザアプリケーションにより生成された実際のメッセージを含む。メッセージは、例えば英数字を含んでもよく、また、ＡＳＣIIまたはユニコードなどの任意の良く知られたフォーマットで符号化されてもよい。
【００５７】
−ソースアドレス（Source_address）フィールド３０３は、チャットメッセージを生成したデバイスの識別子（例えば、それはＢＤアドレスであることができる）を含む。
【００５８】
−ソース名(Source_name)フィールド３０５は、メッセージを発信したユーザのユーザ名を含む。
【００５９】
−宛先アドレス（Destination_address）フィールド３０７は、メッセージの受信が意図されるデバイスを識別する幾つかの識別子（例えば、ＢＤアドレス）を含む。
【００６０】
−宛先名（Destination_name）フィールド３０９は、メッセージの受信が意図されるユーザの名前である。
【００６１】
−メッセージＩＤ(Massage_ID)フィールド３１１は、発信デバイスによりメッセージに割り当てられる固有の数字である。デバイスがメッセージを受信すると、メッセージＩＤをリストに格納する。メッセージＩＤが既にリストにあれば、受信メッセージは廃棄され、隣接デバイスには転送されるべきでない。メッセージＩＤのリストが大きくなりすぎるのを防ぐために、該リストは最大サイズを有し、ＦＩＦＯの原則が適用される。他に、各メッセージＩＤは時刻印を付して格納することができる。その場合、メッセージＩＤは、所定の時刻経過後に削除される。
【００６２】
−チャットグループＩＤ(Chatgroup_ID)フィールド３１３により、個々のチャットグループを確立することができる。チャットグループはそのメッセージをグループ外の他に晒すことなく互いに通信することを望む幾人かのユーザを含む。各チャットグループは、固有の識別子を有し、本明細書ではこれをチャットグループＩＤと定義する。メッセージはソースアドレスの替わりにアドレス手段としてチャットグループＩＤを使用して生成することができる。デバイスが有効なチャットグループＩＤを含むメッセージを受信すると、次いでデバイスは受信チャットグループＩＤを動作中のチャットグループの識別子と比較し、メッセージ表示の是非を判定すべきである。
【００６３】
−ホップカウンタ(Hop_counter)フィールド３１５について、ホップカウンタはネットワークサイズを制限するのに使用される。サイズは、オリジナルメッセージを生成したデバイスによりゼロに初期化されることが望ましい。受信メッセージを他ノードに転送するデバイスは、ホップカウンタを１増分し、受信ノードが正確な情報を持つようにしなければならない。
【００６４】
−ホップ最大数(Max_no_of_hops)フィールド３１７について、目的受信デバイスへの到達の試行におけるメッセージの移動可能範囲を制限するために、メッセージ発信デバイスは、ホップ最大数を有効な値に設定することにより、メッセージに許容されるホップ数を規定することができる。デバイスがメッセージを受信し、受信ホップカウンタが所定のホップ最大数以上の場合、デバイスはメッセージを他デバイスに転送すべきでない。
【００６５】
−サービス済ノード(Served_nodes)フィールド３１９は、メッセージを受信したことが既知の全デバイスの識別子（例えば、ＢＤアドレスまたはユーザ名）を含むリストである。メッセージを受信するデバイスは、デバイス自身の隣接リストに存在するデバイスのみに受信メッセージを転送すべきであり、受信した(即ち、インバウンドの) サービス済ノードリストのデバイスに転送すべきでない。メッセージがこれから転送されるデバイスのＢＤアドレスがサービス済ノードリストに追加された後に、メッセージを他の任意のデバイスに転送すべきである。そうすることにより、サービス済ノードフィールドは、発信元デバイスまでの全経路を連鎖して遡る、全ての後方デバイス隣接リストの上位集合(superset)を含む。
【００６６】
次に本発明の態様に従い図４を参照して、短距離トランシーバデバイスを連ねてメッセージが移動する例を説明する。この例では、デバイスＤ２は、ユーザが到達可能な範囲にある他の全デバイスにテキストメッセージを送信するように指示される。
【００６７】
バックグラウンドプロセスとして、全デバイスＤ１からＤ９は到達可能な隣接デバイスを定期的にチェックする(例えば、問い合わせスキャン手段により)。Ｄ２がメッセージを生成する時点で、各デバイスの隣接リストは以下のようであると想定する。
【００６８】
−Ｄ１のリスト：［Ｄ２、Ｄ３］
−Ｄ２のリスト：［Ｄ１、Ｄ３、Ｄ４］
−Ｄ３のリスト：［Ｄ１、Ｄ２、Ｄ５］
−Ｄ４のリスト：［Ｄ２］
−Ｄ５のリスト：［Ｄ３、Ｄ６、Ｄ７］
−Ｄ６のリスト：［Ｄ５、Ｄ７、Ｄ８］
−Ｄ７のリスト：［Ｄ５、Ｄ６、Ｄ８、Ｄ９］
−Ｄ８のリスト：［Ｄ６、Ｄ７］
−Ｄ９のリスト：［Ｄ７］
発信デバイスとして、Ｄ２はメッセージを生成し、それをＤ１、Ｄ３およびＤ４に(即ち、その隣接デバイスのそれぞれに) 送信する。メッセージデータ構造内に含まれるサービス済ノードリストは、Ｄ２自身の識別子に加えてその隣接リスト［Ｄ１、Ｄ２、Ｄ３、Ｄ４］を含む。
【００６９】
Ｄ１はメッセージを受信し、(意図された受信デバイスであれば)場合によってはそれをローカルに処理し、その隣接デバイスの全て（Ｄ２およびＤ３）は既にサービス済ノードフィールド３１９内に含まれているので、さらなるメッセージの転送は自身では不要と判定する。
【００７０】
Ｄ３は受信メッセージを分析し、場合によってはそれをローカルに処理し、その隣接ノードのＤ１およびＤ２は、既にサービス済ノードフィールド３１９内に含まれているので、これらのノードへのさらなるメッセージの転送は不要と判定する。しかしながら、Ｄ３の隣接デバイスの１つであるノードＤ５は受信した（インバウンドの）サービス済ノードフィールド３１９には存在しない。そこでＤ３は、サービス済ノードフィールド３１９＝［Ｄ１、Ｄ２、Ｄ３、Ｄ４、Ｄ５］を含むメッセージを転送する。
【００７１】
Ｄ４はメッセージを受信し、(意図された受信デバイスであれば)場合によってはそれをローカルに処理し、その隣接ノード（Ｄ２）は既に、サービス済ノードフィールド３１９内に含まれているので、そのノードへのさらなるメッセージの転送は不要と判定する。ノードＤ５、Ｄ６、Ｄ８、Ｄ９の任意の他のものがノードＤ４の範囲内にあれば、Ｄ４はこれらのノードの識別子をサービス済ノードフィールド３１９に追加し、メッセージをこれらの隣接ノードに転送する。しかしながら、この例では、これらのノードはノードＤ４の範囲内に存在しないので、ノードＤ４はメッセージを他のノードに転送しない。
【００７２】
Ｄ５は、ノードＤ３から受信したメッセージを分析し、場合によってはそれをローカルに処理した後に、今度はサービス済ノードフィールド３１９＝［Ｄ１、Ｄ２、Ｄ３、Ｄ４、Ｄ５、Ｄ６、Ｄ７］を含むメッセージをノードＤ６およびＤ７のそれぞれに転送する（ノードＤ８およびＤ９はノードＤ５の範囲内にないと想定する）。
【００７３】
Ｄ６は受信メッセージを分析し、場合によってはそれをローカルに処理した後に、サービス済ノードフィールド３１９から２つ（Ｄ５およびＤ７）の隣接ノードは既にメッセージを受信していると判定する。それ故、Ｄ６はメッセージをこれらのノードへ転送しない。Ｄ６の残りの隣接ノードＤ８は他のノードからメッセージを受信しようとしておらず、それ故Ｄ６はメッセージをＤ８に転送する。
【００７４】
Ｄ７もまた受信メッセージを分析し、場合によってはそのローカルな処理に加えて、サービス済ノードフィールド３１９＝［Ｄ１、Ｄ２、Ｄ３、Ｄ４、Ｄ５、Ｄ６、Ｄ７、Ｄ８、Ｄ９］を含むメッセージをその隣接ノードＤ８およびＤ９に転送することに決定する。
【００７５】
次に、Ｄ８はＤ６およびＤ７の両方から同じメッセージを受信する。しかしながら、Ｄ８は２つのメッセージが同じメッセージＩＤを有することを検出し、その結果重複するメッセージの１つを廃棄する。メッセージを「廃棄する」ことはメッセージに関してさらに動作をとらないことを意味する、または個々の実施形態によってはある他の一掃手段を含むことができる。最小限、「廃棄する」ことはメッセージをさらに送信することを抑制するあらゆる方法を含む。本明細書で使用するように、用語「抑制する」は、メッセージがさらに送信されないことになる動作または不動作の全ての可能性を含むことを意味する。
【００７６】
Ｄ８が受信する最初のメッセージ (即ち、重複前に到着したＤ６またはＤ７のいずれかからのもの) に関して、Ｄ８は受信メッセージを分析し、場合によってはそれをローカルに処理し、その隣接ノードであるＤ６およびＤ７は、既にサービス済ノードフィールド３１９内に含まれているので、これらのノードへのさらなるメッセージの転送は必要ではないと判定する。
【００７７】
Ｄ９は、Ｄ７からメッセージを受信し、(意図された受信デバイスであれば)場合によってはそれをローカルに処理し、その唯一の隣接ノード(Ｄ７)は 既にサービス済ノードフィールド３１９内に含まれているので、メッセージのさらなる転送は自身では必要でないと判定する。
【００７８】
また別の実施形態では、複数のデバイス間で暗号化メッセージを送信することが可能である。受信デバイスにメッセージの解読を可能にする暗号化キーは安全な方法で分配されなければならない。例えば、ユーザ間で口頭により合意することができる。他に、各ユーザが自分の公開暗号キーを他のユーザに分配する暗号化方式を採用することができる。これらのタイプの暗号化方式に従い、所与のユーザに対して意図されたメッセージはまずそのユーザの公開暗号化キーを使用して暗号化される。次いで意図された受信デバイスは意図された受信デバイスのみに知られるプライベート暗号キーにより受信メッセージを解読する。このような暗号化方式は良く知られており、本明細書で詳細に記載する必要はない。
【００７９】
以上に記載した種々の態様を利用すると、制限された空間(例えば校庭)を動き回る可能性のある複数のデバイス間で、１つ以上のチャットグループを確立することができる方法が明らかである。また、様々なタイプのチャットグループを確立することができる。例えば、チャットグループは、メッセージを受信し、場合によっては転送するあらゆるデバイスを含むことができる。このようなグループでは、メッセージの各受信デバイスはメッセージを処理する(例えば、メッセージをデバイスに表示させる)ことができる。他のチャットグループでは、サブグループが意識的に確立され、サブグループのメンバーのみがその特定のチャットグループに向けられたメッセージを処理することができる。
【００８０】
基礎となるメッセージの伝送機構は、包含されるチャットグループのタイプに依存しないことは明らかである。伝送やメッセージ配信は、あらゆる場合において簡単なブロードキャスト送信機構により行われ、各メッセージはチャットグループのタイプにかかわらず、ローカル環境の全デバイスに送信される。次いで、メッセージの処理(例えば表示)の是非の決定は各デバイスに委ねられる。この決定は、「メッセージは受信済みおよび表示済みか？」、「メッセージは全員宛か？」、「メッセージは私が属するサブグループ宛か？」およびその類を含み、これに制限されないパラメータに基づくことができる。以前に記述したように、暗号化は、目的とするサブグループに属するユーザのみがメッセージを処理することができることを保証するのに使用することができる。
【００８１】
発明の重要な側面はメッセージ配信システムである。複雑なスキャタネットの確立および維持を必要とすることなく、効率的に全デバイスに到達することを保証するために、ローカルで管理される隣接リストおよび（各メッセージの一部と共に移動する）サービス済ノードリストの概念が利用される。サービス済ノードリストの目的は、配信プロセスの特定の分岐においてメッセージを受信した(または発生した)全てのノードを記憶することである。各デバイスの隣接リストは、該デバイスの通信範囲内にあるデバイスのリストである。各デバイスはその隣接リストをバックグラウンドタスクとして、例えばページング／問い合わせ／スキャニングにより維持する。
【００８２】
デバイスがメッセージを受信すると、メッセージが全員宛であれば、また他に受信デバイスが属するサブグループ宛であれば、メッセージを処理すべきである。受信デバイスのメッセージ処理の是非にかかわらず、次いで受信メッセージと共に着信したサービス済ノードリストにリストされているもの−メッセージを受信済みであり、それ故メッセージの再受信の必要がなく、メッセージのさらなる分配から除かれるべき隣接ノード−を除く、隣接デバイスの全てに、受信デバイスはメッセージを転送すべきである。メッセージの転送の前に、デバイスはサービス済ノードリストにメッセージを転送しようとするノードの識別子を追加する。
【００８３】
本発明は従来のメッセージング方式の欠点を以下の方法で処理する。
【００８４】
−デバイスは簡単なポイント・ツー・ポイント・リンクをサポートする必要があるのみなので、スケジューリング問題は簡単化される。
【００８５】
−各ノードはそれ自身の隣接ノードを意識するだけでよいので、ネットワーキングの問題は簡単化される。関与するデバイスがルータのような集中化ネットワーキングの役割を担う必要はない。種々の実施形態は真に分散システムを形成する。
【００８６】
−他のデバイスの範囲外に移動するデバイスに起因する損害は、隣接リストの簡単な定期的更新により修復されるので、移動性の問題は最小化される。
【００８７】
本発明が無線チャット以外のアプリケーションに適用できることは当業者には直ちに理解されよう。メッセージを幾つかの他のデバイスに一斉通報する、または無線システムの運用範囲を拡張することが望ましい無線アプリケーションには、本原理を使用することができる。種々の実施形態がこのことを処理する方法はセンサーネットワーク、メータ読取ネットワーク、ビル自動化ネットワークまたは産業自動化ネットワークなどのアプリケーションに適用することができる。
【００８８】
本発明は個々の実施形態を参照して説明した。しかしながら、以上に説明した実施形態以外の特定の形態において本発明を実施可能であることは、当業者には直ちに理解されよう。
【００８９】
例えば、宛先リストの生成を含む実施形態を説明した。しかしながら、宛先リストとして識別可能な明瞭な実体を生成しない実施形態に本発明の種々の態様を適用することが可能である。例えば、以下の擬似コードを考察する。
【００９０】
アウトバウンドのサービス済ノード＝インバウンドのサービス済ノード／／＊サービス済ノードのコピーを生成
隣接リストの各識別子に対して
開始
インバウンドのサービス済ノードに隣接ノードの識別子がなければ、隣接ノードの識別子を、アウトバウンドのサービス済ノードに追加；
終了；
アウトバウンドのサービス済ノードの各識別子に対して
開始
インバウンドのサービス済ノードに、アウトバウンドのサービス済ノード．識別子がなければ、メッセージをアウトバウンドのサービス済ノード．識別子に送信
終了；
【００９１】
この例では、宛先リストとして識別可能な明瞭な実体は存在しない。その代わり、データ構造、アウトバウンドのサービス済ノード．識別子およびインバウンドのサービス済ノードを相互に比較し、要求ベースでメッセージの意図された受信デバイスであるトランシーバの識別子セットを判定し、明瞭なデータ構造として識別子セットの格納を不要とする。宛先リストの生成はこれらの識別子の判定の単なる一例であり、明瞭なデータ構造が存在するようになる一例である。
【００９２】
このように、説明した実施形態は単なる例示であり、いずれにしても制限するものとは考えられるべきではない。本発明の範囲は、以上の説明よりむしろ添付の特許請求の範囲により与えられ、特許請求の範囲に入るあらゆる変更および等価なものはその範囲に包含されるものと考えられる。
【図面の簡単な説明】
【００９３】
【図１】スキャタネット通信トポロジーを説明する図面である。
【図２】本発明の態様に従い各短距離トランシーバデバイス内のロジック（例えば、プロセッサおよび他のハードウエアコンポーネントの少なくともいずれか）により実行される処理の一例を示すフローチャートである。
【図３】本発明の態様に従うデータ構造の一例を示す図面である。
【図４】本発明の態様に従うネットワークにおけるメッセージの流れの一例を説明するための図面である。
【図１】
2007536841.tif 000003
【図２】
2007536841.tif 000004
【図３】
2007536841.tif 000005
【図４】
2007536841.tif 000006
【手続補正書】
【提出日】平成18年2月27日(2006.2.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１の短距離トランシーバデバイスから、アドホックネットワーク内の１以上の他の短距離トランシーバデバイスへ、メッセージを通信する方法であって、該方法は、
前記第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを、前記第１の短距離トランシーバデバイスが把握している前記アドホックネットワーク内の１以上の他の短距離トランシーバデバイスの識別子のセットを決定する工程と、
既に前記メッセージを受信した、または識別子の前記セットのメンバーであることが既知の他の短距離トランシーバデバイスの識別子を含む、アウトバウンドのサービス済ノードリストを生成する工程と、
前記メッセージおよび前記アウトバウンドのサービス済ノードリストをアウトバウンドのデータ構造に組み込む工程と、
識別子の前記セットに含まれる識別子を有する各短距離トランシーバについて、
前記アドホックネットワーク内でそれ以前には確立されていない通信リンクを開設し、
識別子の前記セットに含まれる前記識別子を有する前記短距離トランシーバへ前記アウトバウンドのデータ構造を送信し、
前記アウトバウンドのデータ構造の配信完了に応じて、前記通信リンクを閉設する工程と、
を備えることを特徴とする方法。
【請求項２】
識別子のセットを決定する前記工程が、隣接リストに含まれる全てのデバイス識別子を決定する工程を含み、前記隣接リストは、前記第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを前記第１の短距離トランシーバデバイスが把握している他の全ての短距離トランシーバデバイスの識別子を含む、ことを特徴とする請求項１に記載の方法。
【請求項３】
前記アウトバウンドのサービス済ノードリストを生成する工程が、識別子の前記セットに含まれる全ての識別子を前記第１の短距離トランシーバデバイスの識別子と結合する工程を含むことを特徴とする請求項２に記載の方法。
【請求項４】
少なくとも１つの宛先識別子を前記アウトバウンドのデータ構造に組み込む工程を備えることを特徴とする請求項１に記載の方法。
【請求項５】
前記少なくとも１つの宛先識別子が、宛先アドレスを含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記少なくとも１つの宛先識別子が、宛先名を含むことを特徴とする請求項４に記載の方法。
【請求項７】
前記少なくとも１つの宛先識別子が、チャットグループ識別子を含むことを特徴とする請求項４に記載の方法。
【請求項８】
前記第１の短距離トランシーバデバイスが、第２の短距離トランシーバデバイスからインバウンドのデータ構造を受信し、前記インバウンドのデータ構造は前記メッセージを含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記インバウンドのデータ構造は、インバウンドのサービス済ノードリストを含み、
前記アウトバウンドのサービス済ノードリストを生成する工程は、前記インバウンドのサービス済ノードリストに含まれる識別子を、前記第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを前記第１の短距離トランシーバデバイスが把握している他の全ての短距離トランシーバデバイスの識別子と結合する工程を含む
ことを特徴とする請求項８に記載の方法。
【請求項１０】
前記結合後に、前記アウトバウンドのサービス済ノードリストに同一の短距離トランシーバデバイスが複数含まれないようにする工程を含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記アウトバウンドのサービス済ノードリストを生成する工程は、前記インバウンドのサービス済ノードリストに含まれる識別子を、前記第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを前記第１の短距離トランシーバデバイスが把握している全ての短距離トランシーバデバイスの識別子および前記第１の短距離トランシーバデバイスの識別子と結合する工程を含む
ことを特徴とする請求項９に記載の方法。
【請求項１２】
前記インバウンドのデータ構造がインバウンドのサービス済ノードリストを含み、
識別子の前記セットを決定する工程は、隣接リストに含まれるが、前記インバウンドのサービス済ノードリストには含まれないデバイス識別子を決定する工程を含み、
前記隣接リストは、前記第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを前記第１の短距離トランシーバデバイスが把握している他の全ての短距離トランシーバデバイスの識別子を含む
ことを特徴とする請求項８に記載の方法。
【請求項１３】
前記インバウンドのデータ構造がインバウンドのメッセージ識別子を含み、
前記方法は、
前記インバウンドのメッセージ識別子を、以前に受信したメッセージ識別子のリストと比較する工程と、
前記インバウンドのメッセージ識別子が、前記以前に受信したメッセージ識別子のいずれかと整合した場合に、前記アウトバウンドのデータ構造の送信を抑制する工程と、
を備えることを特徴とする請求項８に記載の方法。
【請求項１４】
前記インバウンドのデータ構造がホップカウントを含み、
前記方法は、
前記ホップカウントの値を調整する工程と、
調整された前記ホップカウントを前記アウトバウンドのデータ構造に組み込む工程と、
を備えることを特徴とする請求項８に記載の方法。
【請求項１５】
前記インバウンドのデータ構造がホップカウントおよびホップ数の最大値を含み、
前記方法は、
前記ホップカウントをホップ数の前記最大値と比較する工程と、
前記比較の結果、前記ホップカウントとホップ数の前記最大値との間に所定の関係が成立する場合に、前記アウトバウンドのデータ構造の送信を抑制する工程と、
を備えることを特徴とする請求項８に記載の方法。
【請求項１６】
識別子の前記セットの全ての識別子を含むデータ構造を生成する工程と、
前記データ構造を利用して、識別子の前記セットに含まれる識別子を有する各短距離トランシーバを識別する工程と、
を備えることを特徴とする請求項１に記載の方法。
【請求項１７】
第１の短距離トランシーバデバイスからアドホックネットワーク内の１以上の他の短距離トランシーバデバイスへメッセージを通信する装置であって、
前記第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを前記第１の短距離トランシーバデバイスが把握している前記アドホックネットワーク内の１以上の他の短距離トランシーバデバイスの識別子のセットを決定する手段と、
既に前記メッセージを受信した、または識別子の前記セットのメンバーであることが既知の他の短距離トランシーバデバイスの識別子を含む、アウトバウンドのサービス済ノードリストを生成する手段と、
前記メッセージおよび前記アウトバウンドのサービス済ノードリストをアウトバウンドのデータ構造に組み込む手段と、
識別子の前記セットに含まれる識別子を有する各短距離トランシーバについて、
前記アドホックネットワーク内でそれ以前には確立されていない通信リンクを開設し、
識別子の前記セットに含まれる前記識別子を有する前記短距離トランシーバへの    前記アウトバウンドのデータ構造を送信し、
前記アウトバウンドのデータ構造の配信完了に応じて前記通信リンクを閉設する
ための手段と、
を備えることを特徴とする装置。
【請求項１８】
識別子の前記セットを決定する手段が、隣接リストに含まれる全ての識別子を決定する手段を含み、前記隣接リストは、前記第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを前記第１の短距離トランシーバデバイスが把握している他の全ての短距離トランシーバデバイスの識別子を含む、ことを特徴とする請求項１７に記載の装置。
【請求項１９】
前記アウトバウンドのサービス済ノードリストを生成する前記手段は、識別子の前記セットに含まれる全ての識別子を前記第１の短距離トランシーバデバイスの識別子と結合する手段を含むことを特徴とする請求項１８に記載の装置。
【請求項２０】
少なくとも１つの宛先識別子を前記アウトバウンドのデータ構造に組み込む手段を含む、ことを特徴とする請求項１７に記載の装置。
【請求項２１】
前記少なくとも１つの宛先識別子が、宛先アドレスを含むことを特徴とする請求項２０に記載の装置。
【請求項２２】
前記少なくとも１つの宛先識別子が、宛先名を含むことを特徴とする請求項２０に記載の装置。
【請求項２３】
前記少なくとも１つの宛先識別子が、チャットグループ識別子を含むことを特徴とする請求項２０に記載の装置。
【請求項２４】
第２の短距離トランシーバデバイスからインバウンドのデータ構造を受信する手段を備え、前記インバウンドのデータ構造が前記メッセージを含むことを特徴とする請求項１７に記載の装置。
【請求項２５】
前記インバウンドのデータ構造がインバウンドのサービス済ノードリストを含み、
前記アウトバウンドのサービス済ノードリストを生成する前記手段は、前記インバウンドのサービス済ノードリストに含まれる識別子を、前記第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを前記第１の短距離トランシーバデバイスが把握している他の全ての短距離トランシーバデバイスの識別子と結合する手段を含む
ことを特徴とする請求項２４に記載の装置。
【請求項２６】
前記結合後に、前記アウトバウンドのサービス済ノードリストに同一の短距離トランシーバデバイスが複数含まれないようにする手段を含むことを特徴とする請求項２５に記載の装置。
【請求項２７】
前記アウトバウンドのサービス済ノードリストを生成する前記手段は、
前記インバウンドのサービス済ノードリストに含まれる識別子を、前記第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することが既知の他の全ての短距離トランシーバデバイスの識別子および前記第１の短距離トランシーバデバイスの識別子と結合する手段を含む
ことを特徴とする請求項２５に記載の装置。
【請求項２８】
前記インバウンドのデータ構造がインバウンドのサービス済ノードリストを含み、
識別子の前記セットを決定する前記手段は、
隣接リストに含まれるが、前記インバウンドのサービス済ノードリストには含まれないデバイス識別子を決定する手段を含み、
前記隣接リストは、前記第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを前記第１の短距離トランシーバデバイスが把握している他の全ての短距離トランシーバデバイスのデバイス識別子を含む
ことを特徴とする請求項２４に記載の装置。
【請求項２９】
前記インバウンドのデータ構造がインバウンドのメッセージ識別子を含み、
前記装置は、
前記インバウンドのメッセージ識別子を、以前に受信したメッセージ識別子のリストと比較する手段と、
前記インバウンドのメッセージ識別子が、前記以前に受信したメッセージ識別子のいずれかと整合した場合に、前記アウトバウンドのデータ構造の送信を抑制する手段と、
を備えることを特徴とする請求項２４に記載の装置。
【請求項３０】
前記インバウンドのデータ構造がホップカウントを含み、
前記装置は、
前記ホップカウントの値を調整する手段と、
調整された前記ホップカウントを前記アウトバウンドのデータ構造に組み込む手段と
を備えることを特徴とする請求項２４に記載の装置。
【請求項３１】
前記インバウンドのデータ構造がホップカウントおよびホップ数の最大値を含み、
前記装置は、
前記ホップカウントをホップ数の前記最大値と比較する手段と、
前記比較の結果、前記ホップカウントとホップ数の前記最大値との間に所定の関係が成立する場合に、前記アウトバウンドのデータ構造の送信を抑制する手段と
を備えることを特徴とする請求項２４に記載の装置。
【請求項３２】
識別子の前記セットの全ての識別子を含むデータ構造を生成する手段と、
前記データ構造を利用して、識別子の前記セットに含まれる識別子を有する各短距離トランシーバを識別する手段と
を備えることを特徴とする請求項１７に記載の装置。
【請求項３３】
請求項１７に記載の装置を含む移動体通信デバイス。
【請求項３４】
コンピュータに、第１の短距離トランシーバデバイスから、アドホックネットワーク内の１以上の他の短距離トランシーバデバイスへ、メッセージを通信する方法を実行させるためのコンピュータプログラムを格納した、コンピュータで読み取り可能な記憶媒体であって、前記方法は、
前記第１の短距離トランシーバデバイスが直接に通信できる範囲内に存在することを、前記第１の短距離トランシーバデバイスが把握している前記アドホックネットワーク内の１以上の他の短距離トランシーバデバイスの識別子のセットを決定する工程と、
既に前記メッセージを受信した、または識別子の前記セットのメンバーであることが既知の他の短距離トランシーバデバイスの識別子を含む、アウトバウンドのサービス済ノードリストを生成する工程と、
前記メッセージおよび前記アウトバウンドのサービス済ノードリストをアウトバウンドのデータ構造に組み込む工程と、
識別子の前記セットに含まれる識別子を有する各短距離トランシーバについて、
前記アドホックネットワーク内でそれ以前には確立されていない通信リンクを開設し、
識別子の前記セットに含まれる前記識別子を有する前記短距離トランシーバへ前記アウトバウンドのデータ構造を送信し、
前記アウトバウンドのデータ構造の配信完了に応じて、前記通信リンクを閉設する工程と、
を備えることを特徴とする、記憶媒体。
【請求項３５】
データ構造に含まれるメッセージを第１の短距離トランシーバデバイスにより受信し、評価し、転送する方法であって、
インバウンドのデータ構造を受信する工程と、
前記データ構造に含まれる所定の宛先パラメータを評価して、前記第１の短距離トランシーバが前記メッセージの意図された受信デバイスであるか否かを判定する工程と、
前記メッセージが転送される、少なくとも１つの隣接する短距離トランシーバを識別する工程と、
前記少なくとも１つの隣接する短距離トランシーバの識別子情報を前記データ構造に付加する工程と、
前記少なくとも１つの隣接する短距離トランシーバのうち第１のトランシーバに対して、それ以前には確立されていない通信リンクを開設する工程と、
前記通信リンクを介して前記アウトバウンドのデータ構造を送信する工程と、
前記アウトバウンドのデータ構造の配信完了に応じて、前記通信リンクを閉設する工程と
を備えることを特徴とする方法。
【請求項３６】
データ構造に含まれるメッセージを第１の短距離トランシーバにより受信し、評価し、転送するための装置であって、
インバウンドのデータ構造を受信する手段と、
前記データ構造に含まれる所定の宛先パラメータを評価して、前記第１の短距離トランシーバが前記メッセージの意図された受信トランシーバであるか否かを判定する手段と、
前記メッセージが転送される、少なくとも１つの隣接する短距離トランシーバを識別する手段と、
前記少なくとも１つの隣接する短距離トランシーバの識別子情報を前記データ構造に付加する手段と、
前記少なくとも１つの隣接する短距離トランシーバのうち第１のトランシーバに対して、それ以前には存在しない通信リンクを開設する手段と、
前記通信リンクを介して前記アウトバウンドのデータ構造を送信する手段と、
前記アウトバウンドのデータ構造の配信完了に応じて、前記通信リンクを閉設する手段と
を備えることを特徴とする装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
Bluetooth(登録商標)規格に関する詳細はさらにBluetooth特別インタレストグループ（Bluetooth Special Interest Group, SIG）により出版されたBluetooth仕様書に見ることができる。Ｊ．ハートセン（J．Haartsen）の「Bluetooth無線システム」、ＩＥＥＥパーソナル通信（IEEE Personal Communications）ページ６−１４、２０００年２月に概要が良く示されている。
国際公開第２００４／０３０３８４号パンフレットは、インスタント・メッセージング・システムについて記述する。該システムでは、複数のメッセージング・クライアントがネットワークを介してプレゼンス情報を互いに共有している。プレゼンス情報は、メッセージング・クライアント間で直接に提供されてもよいし、あるいは、中央の１以上のプロキシ・サーバーから提供されてもよい。Ｊ．ローゼンバーグ他による“インスタント・メッセージングの為のＳＩＰの拡張”（Network Working Group Request for Comments 3428）は、インスタント・メッセージングのためのアプリケーション層の制御信号プロトコルの拡張について記載している。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００９２
【補正方法】変更
【補正の内容】
【００９２】
このように、説明した実施形態は単なる例示であって、いずれにしても制限するものとは考えられるべきではない。本発明の範囲は、以上の説明よりむしろ添付の特許請求の範囲により与えられる。
【国際調査報告】
2007536841.tif 000007
2007536841.tif 000008
2007536841.tif 000009