| 【発明の名称】 |
移動アドホック通信ネットワークのための装置検出及びサービス発見システム及び方法 |
| 【発明者】 |
【氏名】エックベルグ ヤン エリック
【氏名】ラフティネン ペッカ
【氏名】リパスティ ヤッコ
|
| 【要約】 |
【課題】移動アドホック通信ネットワーク内で装置検出及びサービス発見を遂行するためのコンピュータシステム、方法及びコンピュータプログラム製品を提供する。
【構成】この方法は、移動アドホック通信ネットワークの問合せを行って、近傍の装置を発見するステップを含む。問合せが、近傍の装置がミドルウェア層を含むかもしれないことを指示する場合には、この方法は、更に、各近傍の装置への接続を形成し、そして各近傍の装置がミドルウェア層を含むかどうか確認するステップを含む。各近傍の装置がミドルウェア層を含む場合には、この方法は、更に、ミドルウェア層を実行して、アプリケーション及びサービス発見を遂行すると共に、アプリケーション及びサービスに着手するステップを含む。 |
【特許請求の範囲】
【請求項1】 移動アドホック通信ネットワーク内で装置検出及びサービス発見を遂行するシステムにおいて、 メモリ装置と、 前記メモリ装置と通信するように配置されたプロセッサと、 を備え、前記プロセッサは、 前記移動アドホック通信ネットワークの問合せを行って、少なくとも1つの近傍の装置を発見し、前記問合せは、前記少なくとも1つの近傍の装置がミドルウェア層を含むかもしれないという指示を含み、 前記問合せが、前記少なくとも1つの近傍の装置がミドルウェア層を含むかもしれないという指示を含むときには、前記少なくとも1つの近傍の装置への接続を形成し、前記少なくとも1つの近傍の装置がミドルウェア層を含むかどうか確認し、そして 前記少なくとも1つの近傍の装置がミドルウェア層を含むときには、前記ミドルウェア層を実行して、アプリケーション及びサービス発見を遂行する、 というように構成されたシステム。 【請求項2】 前記ミドルウェア層は、サービス発見プロトコル及び少なくとも1つのコンピュータプログラムを含み、各コンピュータプログラムは、少なくとも1つの一連の動作命令を含む請求項1に記載のシステム。 【請求項3】 前記少なくとも1つの近傍の装置がミドルウェア層を含むときには、前記プロセッサは、更に、前記ミドルウェア層を実行して、アプリケーション及びサービスに着手するように構成された請求項1に記載のシステム。 【請求項4】 前記問合せを行うために、前記プロセッサは、更に、 前記移動アドホック通信ネットワーク内のカバレージエリアに問合せ要求メッセージを送信し、そして 前記少なくとも1つの近傍の装置から、前記指示を含む問合せ応答メッセージを受信する、 というように構成された請求項1に記載のシステム。 【請求項5】 前記問合せ要求メッセージは、ブルーツース問合せコマンドであり、そして前記問合せ応答メッセージは、ブルーツース問合せ結果コマンドである請求項4に記載のシステム。 【請求項6】 前記ミドルウェア層を実行してアプリケーション及びサービス発見を遂行するために、前記プロセッサは、更に、 前記少なくとも1つの近傍の装置から通知メッセージを受信し、該通知メッセージは、前記少なくとも1つの近傍の装置に記憶されたローカルアプリケーションディレクトリーを含むものであり、 結合アプリケーションディレクトリーに対する更新を記憶し、この更新は、ローカルアプリケーションディレクトリーと結合アプリケーションディレクトリーとの比較に基づくものであり、そして 前記少なくとも1つの近傍の装置に更新メッセージを送信し、この更新メッセージは、前記少なくとも1つの近傍の装置に記憶されたローカルアプリケーションディレクトリーを更新するために前記結合アプリケーションディレクトリーの更新部分を含む、請求項1に記載のシステム。 【請求項7】 前記プロセッサは、更に、 前記結合アプリケーションディレクトリーにおける参照に基づいてローカルアプリケーションに着手し、そして 前記ローカルアプリケーションを、前記少なくとも1つの近傍の装置で実行される対応アプリケーションに接続する、 というように構成された請求項6に記載のシステム。 【請求項8】 移動アドホック通信ネットワーク内で装置検出及びサービス発見を遂行する方法において、 前記移動アドホック通信ネットワークの問合せを行って、少なくとも1つの近傍の装置を発見するためのステップであって、前記問合せは、前記少なくとも1つの近傍の装置がミドルウェア層を含むかもしれないという指示を含むステップと、 前記問合せが、前記少なくとも1つの近傍の装置がミドルウェア層を含むかもしれないという指示を含むときには、前記少なくとも1つの近傍の装置への接続を形成し、前記少なくとも1つの近傍の装置がミドルウェア層を含むかどうか確認するためのステップと、 前記少なくとも1つの近傍の装置がミドルウェア層を含むときには、前記ミドルウェア層を実行して、アプリケーション及びサービス発見を遂行するためのステップと、 を備えた方法。 【請求項9】 前記ミドルウェア層は、サービス発見プロトコル及び少なくとも1つのコンピュータプログラムを含み、各コンピュータプログラムは、少なくとも1つの一連の動作命令を含む請求項8に記載の方法。 【請求項10】 前記少なくとも1つの近傍の装置がミドルウェア層を含むときには、前記ミドルウェア層を実行して、アプリケーション及びサービスに着手するステップを更に備えた請求項8に記載の方法。 【請求項11】 前記問合せを行うステップは、更に、 前記移動アドホック通信ネットワーク内のカバレージエリアに問合せ要求メッセージを送信する段階と、 前記少なくとも1つの近傍の装置から、前記指示を含む問合せ応答メッセージを受信する段階と、 を備えた請求項8に記載の方法。 【請求項12】 前記問合せ要求メッセージは、ブルーツース問合せコマンドであり、そして前記問合せ応答メッセージは、ブルーツース問合せ結果コマンドである請求項11に記載の方法。 【請求項13】 前記ブルーツース問合せ結果コマンドにおける少なくとも1つのビットを、前記指示における少なくとも1つの所定の値にセットするステップを更に備えた請求項12に記載の方法。
|
【発明の詳細な説明】【技術分野】 【0001】 本発明は、一般に、ワイヤレス通信ネットワークに接続された装置間の通信に係る。より詳細には、本発明は、移動アドホック通信ネットワークにおいて装置検出及びサービス発見を実行するためのシステム及び方法に係る。 本出願は、2002年10月31日に米国特許商標庁に出願された「DEVICEDETECTION AND SERVICE DISCOVERY SYSTEM AND METHOD FOR A MOBILE AD HOC COMMUNICATIONS NETWORK」と題する米国特許出願第10/284,135号を参考として援用し、その優先権を請求する。又、本出願は、2003年9月16日に米国特許商標庁に出願された「DEVICEDETECTION AND SERVICE DISCOVERY SYSTEM AND METHOD FOR A MOBILE AD HOC COMMUNICATIONS NETWORK」と題する米国一部継続特許出願第SS/XXX,YYY号も参考として援用し、その優先権を請求する。更に、本出願は、2003年9月16日に米国特許商標庁に出願された「MECHANISM FOR IMPROVING CONNECTION CONTROL IN PEER-TO-PEER AD-HOC NETWORKS」と題する米国特許出願第SS/XXX,YYY号にも関連し、参考として援用する。又、本出願は、2003年9月16日に米国特許商標庁に出願された「APPLICATION CONTROL IN PEER-TO-PEER AD-HOC COMMUNICATION NETWORKS」と題する米国特許出願第SS/XXX,YYY号にも関連し、参考として援用する。譲受人は、前記特許出願、一部継続特許出願、及び関連特許出願において同一である。 【背景技術】 【0002】 ショートレンジワイヤレスシステムは、その範囲が100メーター未満であるが、インターネットに接続して長距離通信を行うことができる。ショートレンジワイヤレスシステムは、ワイヤレスパーソナルエリアネットワーク(PAN)及びワイヤレスローカルエリアネットワーク(LAN)を含むが、これらに限定されない。ワイヤレスPANは、典型的な範囲が10メーターの低コスト、低電力のワイヤレス装置を使用する。ワイヤレスPAN技術の一例は、ブルーツース(Bluetooth)規格である。ブルーツース規格は、2.4GHzの工業、科学及び医療(ISM)帯域で動作し、1Mbpsのピークエアリンク速度と、パーソナルデジタルアシスタンスや移動電話のようなパーソナル、ポータブル電子装置に使用するのに充分な低い消費電力とを与える。ブルーツース通信プロトコル及び装置動作原理の説明が、「Bluetooth Special Interest Group, Specification of the Bluetooth Standard」、バージョン1.0B、第1及び2巻、1999年12月、に掲載されている。ワイヤレスLANは、ワイヤレスPANよりコストがかかるが、長距離である。ワイヤレスLAN技術の一例は、IEEE802.11ワイヤレスLAN規格及びHIPERLAN規格である。HIPERLAN規格は、5GHzの非認可国内情報インフラストラクチャー(U−NII)帯域で動作し、10から100Mbpsのピークエアリンク速度を与える。 【0003】 アドホックネットワークは、情報を交換するに充分なほど物理的に接近したワイヤレス装置の任意の集合で構成されるショートレンジワイヤレスシステムである。アドホックネットワークは、ワイヤレス装置が他のワイヤレス装置の至近域に入ったり出たりするときにそれらがネットワークに加わったり出たりすることで迅速に構成される。又、アドホックネットワークは、1つ以上のアクセスポイントを含んでもよく、即ちスタンドアローンサーバーとして動作するか他のネットワークへのゲートウェイ接続として動作する固定のワイヤレス装置を含んでもよい。 【0004】 将来、ブルーツース規格は、マルチホップのアドホックネットワーク又はスキャッターネットを形成するために多数のピコネットの相互接続をおそらくサポートするであろう。スキャッターネットでは、接続装置が異なるピコネット間にトラフィックを転送する。接続装置は、1つのピコネットではマスター装置として働くが、別のピコネットではスレーブ装置又はマスター装置として働く。従って、接続装置は、タイミング及びホップシーケンスを各ピコネットに適応させ、そしておそらくはサービスの役割をマスター装置からスレーブ装置へ切り換えることにより、スキャッターネットを含むピコネットに加わる。 【0005】 ブルーツース装置は、移動電話、パーソナル又はラップトップコンピュータ、高周波識別タグ、及びパーソナル電子装置、例えば、パーソナルデジタルアシスタント(PDA)、ページャー又はポータブルコンピュータ装置を含むが、これらに限定されない。各ブルーツース装置は、ネットワークの通信範囲に出入りするときに他のブルーツース装置を発見するように設計されたアプリケーション及びオペレーティングプログラムを備えている。クライアントの役割における要求側ブルーツース装置と、サーバーの役割における応答側ブルーツース装置は、2つの装置間にリンクを確立する。要求側及び応答側のブルーツース装置は、そのリンクと、サービス発見プロトコルとを使用して、他のブルーツース装置によりオファーされるサービス及びそれらサービスへいかに接続するかを発見する。 【0006】 従来のシステムは、サービス発見プロトコルに対して同様の振舞いパターンをたどる。記述言語及び適当な語彙を使用して生成されたサービス記述が広告されるか、又は問合せの一致に対して使用される。ある従来システムは、記述をディレクトリーに押し込み、そしてディレクトリーを発見するように広告主に要求することにより、サービス記述を広告する。他の従来システムは、記述をピア対ピア発見に使用できるようにすることによりサービス記述を広告する。サービス記述を発見することが必要なクライアント装置は、問合せ言語及び一致する語彙を使用して問合せを構成し、そして問合せプロトコル又は分散型問合せ処理サーバーのいずれかを使用して問合せを配送する。 【0007】 従来システムにおけるサービス発見プロトコルは、問合せメッセージを送信しそしてそれに応答することを必要とする。他の装置が存在しない場合には、問合せメッセージが無益に送信される。過剰な電力消費を回避するため、従来のシステムは、通常、別の当該装置が存在するときに人間のユーザが装置の検出を手動で開始することを要求する。例えば、人間のユーザは、データ通信を取り扱うためにセルラー電話をラップトップコンピュータへ接続するとき、又はデジタルオーディオを配送するためにワイヤレスハンドセットをラップトップコンピュータに接続するときに、装置の検出を手動で開始する。これらの従来システムは、3つの仮定に依存する。第1に、アプリケーションは、そのサービスの存在が保証されるので自由にスタートすることができる。第2に、アプリケーションは、最初にサービスを必要とするときにサービス発見を実行する。第3に、ネットワークの組成は、アプリケーションの寿命中に変化しない。 【発明の開示】 【発明が解決しようとする課題】 【0008】 従って、過剰な電力消費を回避すると共に、1つの装置に常駐するアプリケーションが、アドホック通信ネットワーク内のいずれかの他の装置に常駐する対応アプリケーション又は他のリソースを自動的に見出すのを許す装置検出及びサービス発見プロトコルが要望される。このプロトコルは、人間のユーザが対応アプリケーション又は他のリソースを見出すために装置検出を手動で開始することを要求しない。更に、このプロトコルは、特定装置の存在が保証されないと共に、装置がネットワークに頻繁に出入りするためにネットワークの組成が動的であるようなネットワーク環境を受け容れる。本発明は、このような要望に向けられる。 【課題を解決するための手段】 【0009】 移動アドホック通信ネットワークにおいて装置検出及びサービス発見を実行するためのコンピュータシステム、方法及びコンピュータプログラム製品が提供される。この方法は、移動アドホック通信ネットワークの問合せを行って近傍の装置を発見するステップを含む。問合せが、近傍の装置がミドルウェア層を含むかもしれないことを指示する場合には、この方法は、更に、各々の近傍の装置への接続を形成するステップと、各々の近傍の装置がミドルウェア層を含むかどうか確認するステップとを含む。ミドルウェア層を含む近傍の装置の各々に対して、この方法は、更に、ミドルウェア層を実行して、アプリケーション及びサービス発見を遂行すると共に、アプリケーション及びサービスに着手するステップも含む。 【0010】 一実施形態において、移動アドホック通信ネットワークは、ブルーツースネットワークである。問合せを行うステップは、ブルーツース問合せコマンドを送信し、そして装置がミドルウェア層を含むという指示を含むブルーツース問合せ結果コマンドを受信することを含む。ミドルウェア層を含む装置への接続を形成するステップは、ブルーツースページング要求メッセージをその装置に送信しそしてブルーツースページング受け容れメッセージを受信することを含む。装置がミドルウェア層を含むことを確認するステップは、確認要求メッセージをその装置に送信しそして確認応答メッセージを受信することを含む。ミドルウェア層を実行して、アプリケーション及びサービス発見を遂行するステップは、装置からの通知メッセージをローカルアプリケーションディレクトリーのコピーと共に受信し、ローカル及び結合アプリケーションディレクトリーの比較に基づく結合アプリケーションディレクトリーに対する更新を記憶し、そして結合アプリケーションディレクトリーに対する更新をブルーツースネットワークにおける各装置へ送信することを含む。更に、ミドルウェア層を実行するステップは、結合アプリケーションディレクトリーにおける参照に基づいてローカルアプリケーションに着手し、そしてそのローカルアプリケーションを、装置において実行される対応アプリケーションに接続することを含む。 【発明を実施するための最良の形態】 【0011】 添付図面は、移動アドホック通信ネットワークのための装置検出及びサービス発見システム及び方法の詳細をその構造及び動作の両方について最も良く示している。これら図面において同様の要素が同じ参照番号で示されている。 【0012】 図1は、本発明の一実施形態により移動アドホック通信ネットワークを構成する装置の相互作用を示すネットワーク図である。一実施形態において、移動アドホック通信ネットワークは、1つのマスター装置と、7つまでのアクティブなスレーブ装置とを備えたブルーツースピコネットである。図1に示すように、ピコネット100は、サーバー110と、ターミナル120の5つのインスタンスとを備えている。サーバー110は、ネットワーククロックを維持し、ターミナル120の各インスタンスに対する通信マネージャーである。サーバー110は、通常、ターミナル120のインスタンスとのデータの交換を開始する。ターミナル120の2つのインスタンスが、通常、サーバー110を経て通信するが、ターミナル120の2つのインスタンスが直接通信する場合には、一方のインスタンスがサーバー即ちマスターの役割を果たし、そして他方のインスタンスがクライアント即ちスレーブの役割を果たす。 【0013】 移動アドホック通信ネットワークにおける各装置は、ターミナル装置又はサーバー装置のいずれかの役割を果たす。ターミナル装置は、単一のユーザが操作するサービスの消費者である。ターミナル装置は、移動電話又はPDAのような装置を含む。サーバーは、通常、固定装置で、サービスを発生するだけである。サーバー装置は、それらのサービスを利用するためのホットスポットをそれらの周りに形成する。「ホットスポット」とは、装置を検出し、そしてサーバーにホストされたアプリケーションによりオファーされるサービスを発見するために、サーバー装置により提供される無線カバレージエリアを指す。サーバー装置が固定でない場合には、ネットワークにおけるターミナル装置の1つが、アプリケーションディレクトリーサーバーの役割を果たし、そしてネットワークにおける残りのターミナル装置に対して装置検出及びサービス発見機能を遂行する。本発明は、このようなターミナル装置間に2つの役割、即ちアプリケーションディレクトリーサーバーとターミナルとを導入し、アプリケーションディレクトリーサーバーは、装置検出及びサービス発見においてターミナルにサービスする。ホットスポットを伴う固定サーバーが存在する場合には、サーバーは、通常、アプリケーションディレクトリーサーバーとして働くが、ターミナルの1つがアプリケーションディレクトリーサーバーの義務を果たすので、装置検出及びサービス発見は、このような固定サーバーがなくても可能である。 【0014】 本発明は、アプリケーションを、サーバーベースのアプリケーション、ターミナル対ターミナルアプリケーション、フォアグランドアプリケーション、バックグランドアプリケーション、又は一般的アプリケーションコンポーネントとして分類する。サーバーベースのアプリケーションは、サーバーがサービスを発生することを要求する。ターミナル対ターミナルアプリケーションは、少なくとも2つのターミナル装置が、サーバー装置が存在しない状態でサービスを実施することを要求する。フォアグランドアプリケーションは、ターミナル装置に常駐するアプリケーションで、ユーザがターミナル装置のユーザインターフェイスを経てアクセスするアプリケーションである。バックグランドアプリケーションは、ターミナル装置に常駐するアプリケーションで、ユーザの介在なしにスタートできるアプリケーションである。一般的アプリケーションコンポーネントは、スタンドアローンアプリケーションとして使用することもできるし、又は別のアプリケーションのコンポーネントとして使用することもできる。 【0015】 アプリケーションは、更に、能動的、受動的、新規又は拒絶として分類されてもよい。能動的アプリケーションは、ターミナルに常駐する(即ち、メモリに記憶された)フォアグランド又はバックグランドアプリケーションである。受動的アプリケーションは、ターミナルに常駐するが、まだスタートされていない。別の実施形態では、受動的アプリケーションがスタートされるが、同じアプリケーションの他のインスタンスを能動的に探さない。新規アプリケーションは、ターミナルにまだ常駐しないが、将来常駐するかもしれない。拒絶アプリケーションは、ターミナルに常駐せず、ユーザにより、ターミナルに決して常駐すべきでないアプリケーションとしてマークされている。別の実施形態では、拒絶アプリケーションは、ターミナルにかつて常駐したが、その後、削除され、拒絶とマークされたものである。更に別の実施形態では、拒絶アプリケーションは、ターミナルに決して常駐せず、ユーザが拒絶とマークしたアプリケーションの一形式である。 【0016】 移動アドホック通信ネットワークにおけるサービス発見は、常駐アプリケーションと、アンロードアプリケーションとの間を区別する。常駐アプリケーションは、ターミナルのメモリに記憶され、そしてフォアグランドアプリケーション又はバックグランドアプリケーションのいずれかとしてロードされる。アンロードアプリケーションは、ターミナルに記憶もロードもされないが、ユーザにより受け容れられている。通常、アプリケーションが以前に使用されたが、スペースを利用するためにオーバーライトされているときには、アプリケーションがアンロードであるとみなされる。従って、アンロードアプリケーションをスタートするには、最初にそのアプリケーションをダウンロードすること必要である。 【0017】 ターミナル装置のパースペクティブからサービス発見を行なうには、アプリケーションの状態を、能動的常駐アプリケーション、能動的アンロードアプリケーション、受動的常駐アプリケーション、受動的アンロードアプリケーション、拒絶アプリケーション、又は新規アプリケーションのいずれかとして分類することが必要である。能動的常駐アプリケーションは、ターミナルにロードされて、ピア、サーバー又はクライアントを探索する。能動的アンロードアプリケーションは、ターミナルにロードされないが、関心があると分かった場合に自動的にダウンロードできる対応アプリケーションを探索する。受動的常駐アプリケーションは、ターミナルにロードされるが、対応アプリケーションを探索しない。受動的アンロードアプリケーションは、ターミナルにロードされないが、ユーザにより受け容れられている。拒絶アプリケーションは、ユーザがターミナル装置から除外するよう要求したアプリケーションである。新規アプリケーションは、ターミナル装置にロードされないが、ユーザは、例えば、初期のサービスにおいてアプリケーションを見ているかもしれない。 【0018】 図2Aは、本発明の一実施形態により図1に示すサーバー110を構成するハードウェア及びソフトウェアコンポーネントを示すブロック図である。サーバー110は、汎用ワイヤレス装置である。バス200は、キーパッド201、ディスプレイ202、中央処理ユニット(CPU)203、及び高周波(RF)アダプタ204をメモリ210に接続する通信媒体である。RFアダプタ204は、ワイヤレスリンクを経てターミナル120に接続され、サーバー110とターミナル120との間のネットワークトラフィックを容易にするメカニズムである。 【0019】 CPU203は、メモリ210に常駐するか又はそこで働く各コンピュータプログラムを構成する一連の動作命令を実行することにより本発明の方法を遂行する。メモリ210は、オペレーティングシステムソフトウェア211と、アプリケーションプログラム212と、ミドルウェアソフトウェア220とを備えている。オペレーティングシステムソフトウェア211は、キーパッド201、ディスプレイ202、RFアダプタ204、及びメモリ210の管理を制御する。アプリケーションプログラム212は、ユーザとサーバー110との間の相互作用を制御する。ミドルウェアソフトウェア220は、サーバー110で動作されるアプリケーションプログラムが、ターミナル120で動作される対応アプリケーションを見出して通信するのを助けるアプリケーションプログラムインターフェイス(API)221を備えている。各アプリケーションを迅速に探索するために、ミドルウェアソフトウェア220は、ピコネット100の各装置に常駐する各アプリケーションがとる役割を追跡するためのアプリケーションディレクトリー230も備えている。 【0020】 図2Bは、本発明の一実施形態により図1に示すターミナル120を構成するハードウェア及びソフトウェアコンポーネントを示すブロック図である。ターミナル120は、汎用ワイヤレス装置である。バス250は、キーパッド251、ディスプレイ252、CPU253、及びRFアダプタ254をメモリ260に接続する通信媒体である。RFアダプタ254は、ワイヤレスリンクを経てサーバー110又は別のターミナル120に接続され、サーバー110とターミナル120との間のネットワークトラフィックを容易にするメカニズムである。 【0021】 CPU253は、メモリ260に常駐するか又はそこで働く各コンピュータプログラムを構成する一連の動作命令を実行することにより本発明の方法を遂行する。メモリ260は、オペレーティングシステムソフトウェア261と、アプリケーションプログラム262と、ミドルウェアソフトウェア270とを備えている。オペレーティングシステムソフトウェア261は、キーパッド251、ディスプレイ252、RFアダプタ254、及びメモリ260の管理を制御する。アプリケーションプログラム262は、ユーザとターミナル120との間の相互作用を制御する。ミドルウェアソフトウェア270は、ターミナル120で動作されるアプリケーションプログラムが、サーバー110又は別のターミナル120で動作される対応アプリケーションを見出して通信するのを助けるAPI271を備えている。各アプリケーションを迅速に探索するために、ミドルウェアソフトウェア270は、ピコネット100の各装置に常駐する各アプリケーションがとる役割を追跡するためのアプリケーションディレクトリー280も備えている。 【0022】 一実施形態では、メモリ210及びメモリ260の構成が、同一である。別の実施形態では、メモリ210及びメモリ260の構成が、各々、サーバー110及びターミナル120の本質的なタスクを遂行するのに必要なソフトウェアしか含まない。例えば、ターミナル120が、一般的問合せアクセスコードを受信することは必要であるが、一般的問合せアクセスコードメッセージを送信する必要がない場合には、このメッセージを受信するソフトウェアだけがメモリ260に常駐する。 【0023】 ターミナルで実行されるアプリケーションは、その対応アプリケーション、即ちそのアプリケーションと通信できる同じアプリケーションの別のインスタンスを常にサーチする。アプリケーションの各インスタンスは、特定の役割を果たす。アプリケーションとその対応アプリケーションとの間の通信は、それらの役割が相補的である場合しか意味がない。例えば、「クライアント」の役割を果たすアプリケーションは、「サーバー」の役割を果たす対応アプリケーションと通信することができる。ミドルウェアソフトウェアとは、アプリケーションが正しい役割をもつ対応アプリケーションを見出す上で助けとなるように2つのアプリケーション間の通信をネゴシエーションするAPIを伴うソフトウェア層である。従って、ターミナルにインストールされてアクチベートされるアプリケーションは、関心のある新規の対応アプリケーションの連続ストリームについてAPIに問合せる。 【0024】 新規なアプリケーションは、ミドルウェアを使用してその対応部を見出しそしてターミナルのローカル記憶装置に新規なアプリケーションをインストールする「インストーラー」アプリケーションによりインストールされる。新規なアプリケーションを実際に見出して選択することは、アプリケーションレベルで行われる。最初に、インストーラーアプリケーションは、サーバー内の対応アプリケーションにアクセスし、それらの使用可能なアプリケーションデータベースをブラウズし、ユーザがインストールすべきアプリケーションをピックアップするのを許し、そして新規なアプリケーションをダウンロードしてインストールする専用の「ブラウザ−サプライヤー」(即ち、クライアント−サーバー)アプリケーションである。後で、ワイヤレスアクセスプロトコル(WAP)及びハイパーテキストマークアップ言語(HTML)ブラウザに対応機能が追加されてもよい。 【0025】 サービス発見は、3ステップのプロセスであると考えられる。第1に、新規な潜在的アプリケーションが見出され、インストールについて考慮される。第2に、インストールされた能動的なアプリケーションが、その対応アプリケーションのサーチを開始する。第3に、インストールされたアクティブなアプリケーションは、プリンタのような共通のリソースのサーチを開始する(即ち、リソース発見)。本発明は、リソース発見を遂行するためのアプリケーションに依存する。通常、ターミナルアプリケーションは、その対応アプリケーションと通信し、そしてローカル(即ちサーバー)リソースを使用する。アプリケーションがプライベートリソースを使用する場合には、それに関連したサービス発見が、ターミナルのミドルウェアソフトウェアではサポートされない標準的な方法(例えば、ブルーツース又はブルーツース/ジャバ(Java(登録商標))でアプリケーションにより実施される。 【0026】 図3Aは、移動アドホック通信ネットワークのための装置検出及びサービス発見を実行するサーバー110の実施形態を示すフローチャートである。このプロセスは、サーバー110が一般的な問合せアクセスコードメッセージをターミナル120へ送信した(ステップ300)ときに開始する。ターミナル120は、そのメッセージを受信し、そして確認応答メッセージをサーバー110へ送信する(ステップ302)。サーバー110は、ミドルウェアソフトウェア220にアクセスし、ターミナル120とのソケット接続を要求する(ステップ304)。ソケット接続の確立に応答して、サーバー110は、ターミナル110にローカルに常駐する全てのアプリケーションをリストするローカルアプリケーションディレクトリーを含むメッセージをターミナル120から受信する(ステップ306)。サーバー110は、ターミナル120に常駐するアプリケーションのリストを、サーバー110に常駐する結合アプリケーションディレクトリーと比較する。サーバー110は、結合アプリケーションディレクトリーに現われないローカルアプリケーションディレクトリーの各エントリーを結合アプリケーションディレクトリーに追加することにより、結合アプリケーションディレクトリーを更新する(ステップ308)。サーバー110は、更新された結合アプリケーションディレクトリーの一部分をピコネット100の各ターミナル120に送信する(ステップ310)。この一部分は、各ターミナル120に対して異なってもよく、そしてターミナル120に常駐するアプリケーションに対する対応アプリケーションである結合アプリケーションディレクトリーの各エントリーを含む。別の実施形態では、サーバー110は、全結合アプリケーションディレクトリーをピコネット100の各ターミナル120に送信し、そしてターミナル120に基づいて当該エントリーを保持する。ターミナル120及びサーバー110におけるミドルウェアソフトウェアのインスタンスは、新たに見つかった対応アプリケーション対の実行スケジュールを立て始める(ステップ312)。一実施形態では、スケジュールされたアプリケーションは、他のブルーツースプロフィール及びプロトコルを使用する。別の実施形態では、インストーラーアプリケーションであるアプリケーションは、ユーザがダウンロードしなければならない他のアプリケーションをユーザに示唆することができる。サーバー110が新規なアプリケーションをダウンロードしそしてスタートすると、その対応部の一致が繰り返され、その新規なアプリケーションがミドルウェアスケジュールの一部分となる。 【0027】 図3Bは、移動アドホック通信ネットワークのための装置検出及びサービス発見を遂行するターミナル120の実施形態を示すフローチャートである。このプロセスは、ターミナル120がサーバー110から一般的問合せアクセスコードメッセージを受信したときに始まる(ステップ320)。ターミナル120は、確認応答メッセージを発生してサーバー110へ送信する(ステップ322)。ターミナル120は、このターミナルにローカルに常駐する全てのアプリケーションを含むローカルアプリケーションディレクトリーを含むメッセージをサーバー110へ送信する(ステップ324)。サーバー110は、ターミナル120に常駐するアプリケーションのリストを、サーバー110に常駐する結合アプリケーションディレクトリーと比較する。サーバー110は、結合アプリケーションディレクトリーに現われないローカルアプリケーションディレクトリーの各エントリーを結合アプリケーションディレクトリーに追加することにより、結合アプリケーションディレクトリーを更新する。ターミナル120は、更新された結合アプリケーションディレクトリーの一部分をサーバー110から受信する(ステップ326)。サーバー110は、ターミナル120に常駐するアプリケーションに対する対応アプリケーションである結合アプリケーションディレクトリーの各エントリーを含むようにターミナル120の一部分をカスタマイズする。別の実施形態では、サーバー110は、全結合アプリケーションディレクトリーをターミナル120に送信し、そしてターミナル120に基づいて当該エントリーを保持する。ターミナル120及びサーバー110におけるミドルウェアソフトウェアのインスタンスは、新たに見つかった対応アプリケーション対の実行スケジュールを立て始める(ステップ328)。 【0028】 図4A及び4Bは、ターミナルX及びターミナルYが、サーバーSによりサービスされる移動アドホック通信ネットワークに入る前後のアプリケーションディレクトリーのコンテンツを例示するブロック図である。図4Aは、ターミナルX及びターミナルYが、マスター装置であるサーバーSにより管理される通信ネットワークに入る前の、アプリケーションディレクトリー404、アプリケーションディレクトリー415及びアプリケーションディレクトリー425のコンフィギュレーションを示す。アプリケーションC401は、サーバーSのメモリ400に常駐し、そしてAPI402を経てミドルウェアソフトウェア403にアクセスする。ミドルウェアソフトウェア403は、アプリケーションCがローカル装置(即ち、サーバーS)に常駐しそしてサーバーの役目を果たすことを指示するためのテーブルエントリーを追加することにより、アプリケーションC401をアプリケーションディレクトリー404に登録する。アプリケーションA411及びアプリケーションB412は、ターミナルXのメモリ410に常駐し、そしてAPI413を経てミドルウェアソフトウェア414にアクセスする。ミドルウェアソフトウェア414は、アプリケーションAがローカル装置(即ち、ターミナルX)に常駐してクライアントの役目を果たし、且つアプリケーションBがローカル装置(即ち、ターミナルX)に常駐してピアの役目を果たすことを指示するためのテーブルエントリーを追加することにより、アプリケーションA411及びアプリケーションB412をアプリケーションディレクトリー415に登録する。アプリケーションB421及びアプリケーションC422は、ターミナルYのメモリ420に常駐し、そしてAPI423を経てミドルウェアソフトウェア424にアクセスする。ミドルウェアソフトウェア424は、アプリケーションBがローカル装置(即ち、ターミナルY)に常駐してピアの役目を果たし、且つアプリケーションCがローカル装置(即ち、ターミナルY)に常駐してクライアントの役目を果たすことを指示するためのテーブルエントリーを追加することにより、アプリケーションB421及びアプリケーションC422をアプリケーションディレクトリー425に登録する。 【0029】 図4Bは、ターミナルX及びターミナルYが、マスター装置であるサーバーSにより管理される通信ネットワークに入った後の、アプリケーションディレクトリー404、アプリケーションディレクトリー415及びアプリケーションディレクトリー425のコンフィギュレーションを示す。サーバーSは、アプリケーションディレクトリサーバー(ADS)の役割を果たし、そしてピコネット100における各装置に常駐するアプリケーションの登録を仲介する。サーバーSは、ピコネット100の装置に常駐する各アプリケーションに対してアプリケーションディレクトリー404にテーブルエントリーを追加する。従って、サーバーSは、クライアントの役割のターミナルXに常駐するアプリケーションA、ピアの役割のターミナルXに常駐するアプリケーションB、ピアの役割のターミナルYに常駐するアプリケーションB、及びクライアントの役割のターミナルYに常駐するアプリケーションCに対するエントリーを追加する。又、サーバーSは、ターミナルXにおけるアプリケーションディレクトリー415及びターミナルYにおけるアプリケーションディレクトリー425を、これらターミナル装置に関心のあるアプリケーション登録で更新する。図4Bに示すように、ターミナルX及びターミナルYの両方は、ピアの役割においてアプリケーションBをホスティングする。ターミナルXのアプリケーションBとターミナルYのアプリケーションBとの間にはおそらくピア対ピアの通信セッションがあるから、サーバーSは、ピアの役割のターミナルYに常駐するアプリケーションBに対するアプリケーションディレクトリー415にエントリーを追加すると共に、ピアの役割のターミナルXに常駐するアプリケーションBに対するアプリケーションディレクトリー425にエントリーを追加する。又、ターミナルYのアプリケーションCとサーバーSのアプリケーションCとの間にはおそらくクライアント対サーバーの通信セッションがあるから、サーバーSは、サーバーの役割のサーバーSに常駐するアプリケーションCに対するアプリケーションディレクトリー425にエントリーを追加する。最終的に、ターミナルXのアプリケーションAに対してピコネット100に対応部分は存在しない。 【0030】 図4A及び4Bに示すように、ミドルウェアソフトウェアのアプリケーションディレクトリーサーバーの各エントリーとしてここに開示するデータアイテムは、装置識別子(例えば、「ローカル」、アドレス、又は他の独特の識別子)と、アプリケーション識別子(例えば、アプリケーション名、又は他の独特の識別子)と、アプリケーションの役割(例えば、「クライアント」、「サーバー」、「ピア」等)とを含む。別の実施形態では、データアイテムは、ローカルアプリケーションに対するフィールド(即ち、装置=「ローカル」)、及び他のターミナル又はサーバーのリモートアプリケーションに対するフィールドを含むように拡張することができる。ローカルアプリケーションに対するフィールドは、次のものを含む。 【0031】 −Name(名前):アプリケーションに対する識別子(例えば、供給者の名前、及び異なるバージョンやハードウェア変形を比較するデータ); −My_role(自分の役割):アプリケーションがローカル装置において担う役割; −Partner_role(パートナーの役割):アプリケーションが関心のある対応部から果たす役割(例えば、ピア、クライアント及びサーバーは、最も一般的な役割である); −Residency(常駐性):RESIDENT(インストールされて現在メモリにある)、UNLOADED(かつてインストールされたが、現在メモリになく、自動的に再ダウンロードすることができる)、REJECTED(アプリケーションを無視すべきであることを新たなアプリケーションインストーラーに指示する)、又はNEW(アプリケーションがインストールも拒絶もされない); −State(状態):RUNNING(通信を有し、現在そのリモート対応部と共に働いているが、一度に通信を使用できるアプリケーションは1つだけ又はそれ以上ある)、WAITING(実行中であるが、何ら通信をもたない)、STARTABLE(能動的であって、正しいPartner_roleと一致するピアが見つかった場合に、ミドルウェアソフトウェアがこのアプリケーションをスタートし、必要に応じて最初にソフトウェアをダウンロードする)、COMPLETE(全ての対応アプリケーションが分かっている)、又はPASSIVE(ユーザはアプリケーションをスタートするために何かをしなければならない); 【0032】 −Type(形式):FOREGROUND(アプリケーションが終了したときに、状態がPASSIVEとなる)、又はBACKGROUND(アプリケーションが終了したときに、状態がSTARTABLEとなる); −Unload(アンロード):AUTOMATIC(ミドルウェアは、アプリケーションが終了したときにコードを除去することができる)、又はUNINSTALL(ユーザは、除去を確認しなければならない); −Icon(アイコン):ユーザに対するアプリケーションの視覚映像を生成する;及び −Timeout(時間切れ):例えば、アプリケーションが非生産的ソフトウェアループにあるときを検出するためにミドルウェアソフトウェアが使用する時間限界をセットする。 【0033】 リモートアプリケーションに対するフィールドは、次のものを含む。 −Device(装置):アプリケーションインスタンスを記憶するターミナル又はサーバーとの通信を確立するためのアドレス; −Name(名前):アプリケーションに対する識別子;及び −My_role(自分の役割):アプリケーションがリモート装置において担う役割。 【0034】 アプリケーションのクライアント−サーバー役割は、ターミナル装置及びアプリケーションディレクトリーサーバーとしての装置の役割とは独立している。通常、アプリケーションディレクトリーサーバーとして働く装置は、サーバーの役割で働くアプリケーションをホストし、そしてターミナル装置は、同じアプリケーションに対してクライアントの役割で働く。別の実施形態では、2つのターミナル装置の各々が一般的問合せアクセスコードメッセージを送信し、そして応答を聴取する。応答を受信するターミナル装置は、最初に、サーバーの役割を果たし、そして図3Aの手順に基づいて進む。問合せメッセージを受信する別のターミナル装置は、ターミナルの役割を果たし、そして図3Bに基づいて進む。従って、本発明は、ターミナル対ターミナルの筋書きをサポートし(例えば、同一のハンドヘルド装置の1つが自動的にADSとなり)、そして所定のアプリケーションディレクトリーサーバーを必要としない。 【0035】 図5は、移動アドホック通信ネットワークにおいてターミナルXとターミナルYとの間に通信セッションを確立する間のメッセージフローを示す、プロセスの実施形態のフローチャートである。一実施形態において、ターミナルX及びターミナルYは、図1及び図2Bに示すターミナル120のような移動装置である。別の実施形態では、ターミナルXが図1及び図2Bに示すターミナル120のような移動装置であり、そしてターミナルYが図1及び図2Aに示すサーバー110のような移動装置である。 【0036】 図5に示すように、ターミナルXは、移動アドホック通信ネットワークに問合せ要求メッセージを送信することにより通信を開始する。ターミナルYは近傍の装置であるから、ターミナルYは、その問合せ要求メッセージを受信し、そして問合せ応答メッセージをターミナルXへ送信する。一実施形態では、問合せ要求メッセージがブルーツース問合せコマンドであり、そして問合せ応答メッセージがブルーツース問合せ結果コマンドである。別の実施形態では、問合せ要求メッセージがブルーツース問合せコマンドであり、そして問合せ応答メッセージが、ブルーツース問合せ結果コマンドを送信するターミナルがミドルウェア層を含むことを指示するように変更されたブルーツース問合せ結果コマンドである。一実施形態では、ミドルウェア層は、進歩型アプリケーション及びサービス発見及び実行を提供する専用のミドルウェアソフトウェアを含む。一実施形態では、ブルーツース問合せ結果コマンドに対する変更が、装置クラス(CoD)パラメータに対するものである。例えば、ブルーツース問合せ結果コマンドを送信するターミナルがミドルウェア層を含む場合に、そのターミナルは、少なくとも「アドホックネットワークが気付く(ad hoc networking aware)」ビット(ビット16)をオン(1)にセットする。或いは又、ブルーツース問合せ結果コマンドを送信するターミナルがミドルウェア層を含む場合に、そのターミナルは、「アドホックネットワークが気付く」ビット(ビット16)をオン(1)にそして「位置情報」ビット(ビット17)をオフ(0)にセットする。或いは又、ブルーツース問合せ結果コマンドを送信するターミナルがミドルウェア層を含む場合に、そのターミナルは、「アドホックネットワークが気付く」ビット(ビット16)をオン(1)にそして「電話可能(telephony)」ビット(ビット22)をオン(1)にセットする。或いは又、ブルーツース問合せ結果コマンドを送信するターミナルがミドルウェア層を含む場合に、そのターミナルは、「アドホックネットワークが気付く」ビット(ビット16)をオン(1)に、「位置情報」ビット(ビット17)をオフ(0)に、そして「電話可能」ビット(ビット22)をオン(1)にセットする。更に別の実施形態では、ミドルウェアソフトウェアの存在を指示するための専用指示パラメータがブルーツース問合せ結果コマンド仕様に導入された場合には、ブルーツース問合せ結果コマンドへの変更は必要でない。 【0037】 問合せに続いて、図5に示すように、ターミナルXは、ページング要求メッセージを送信することにより、問合せ応答メッセージでミドルウェア層の考えられる所有を指示する各近傍の装置、例えば、ターミナルYへの接続を形成することができる。ターミナルYが、ミドルウェア層の考えられる所有を指示しない場合には(例えば、「アドホックネットワークが気付く」ビット(ビット16)をオフ(0)にセットすることにより)、ページング要求メッセージが送信されず、通信セッションが切断される。ターミナルYがおそらくミドルウェア層を含むという指示を含む問合せを行なった後に、ターミナルXは、上述したように、ページングメッセージ要求を送信する。ターミナルYは、ページング要求メッセージを受信し、そして任意であるが、接続要求を受け容れるためのページング受け容れメッセージを送信する。一実施形態では、ページング要求メッセージは、ブルーツース接続形成コマンドであり、そしてページング受け容れメッセージは、ブルーツース接続受け容れ要求コマンドである。 【0038】 各近傍装置への接続に続いて、図5に示すように、ターミナルXは、ターミナルYのような近傍の装置がミドルウェア層を明確に含むかどうか確認するための確認要求メッセージを送信する。ターミナルYは、その確認要求メッセージを受信し、そして確認応答メッセージをターミナルXに送信する。一実施形態では、確認応答メッセージの受信は、ターミナルYがミドルウェア層を含むという確認である。別の実施形態では、確認応答メッセージのコンテンツが、ターミナルYがミドルウェア層を含むことを指示する。一実施形態において、確認要求メッセージ及び確認応答メッセージは、ブルーツースサービス発見プロトコル(SDP)を使用する。ターミナルYがミドルウェア層を含まない場合には、通信セッションを切断することができる。 【0039】 ターミナルYのような近傍の装置がミドルウェア層を含むという確認に続いて、図5に示すように、ターミナルX及びターミナルYは、ミドルウェア層を使用して、アプリケーション及びサービスを発見しそして着手する。一実施形態では、ターミナルX及びターミナルYは、図3A及び図3Bに示すフローチャートに開示された方法を使用して、アプリケーション及びサービスを発見しそして着手する。 【0040】 前記実施形態では、移動アドホック通信ネットワークのための完全に機能する装置検出及びサービス発見システム及び方法について述べたが、他の同等の実施形態も存在することが理解されよう。前記開示を読んだ者であれば多数の変更や修正が明らかであろうから、移動アドホック通信ネットワークのための装置検出及びサービス発見システム及び方法は、ここに図示して開示した厳密な構造及び動作に限定されない。従って、この開示は、特許請求の範囲内に包含される全ての適当な変更や等効物も意図している。 【図面の簡単な説明】 【0041】 【図1】本発明の一実施形態により移動アドホック通信ネットワークを構成する装置の相互作用を示すネットワーク図である。 【図2A】本発明の一実施形態により図1に示すサーバー110を構成するハードウェア及びソフトウェアコンポーネントを示すブロック図である。 【図2B】本発明の一実施形態により図1に示すターミナル120を構成するハードウェア及びソフトウェアコンポーネントを示すブロック図である。 【図3A】移動アドホック通信ネットワークのための装置検出及びサービス発見を実行するサーバー110の実施形態を示すフローチャートである。 【図3B】移動アドホック通信ネットワークのための装置検出及びサービス発見を実行するターミナル120の実施形態を示すフローチャートである。 【図4A】ターミナルが移動アドホック通信ネットワークに入る前のデータフローを例示するブロック図である。 【図4B】ターミナルが移動アドホック通信ネットワークに入った後の図4Aのブロック図である。 【図5】移動アドホック通信ネットワークにおいてターミナルXとターミナルYとの間に通信セッションを確立する間のメッセージフローを示す、プロセスの実施形態のフローチャートである。
|
| 【出願人】 |
【識別番号】398012616 【氏名又は名称】ノキア コーポレイション
|
| 【出願日】 |
平成19年7月11日(2007.7.11) |
| 【代理人】 |
【識別番号】100082005 【弁理士】 【氏名又は名称】熊倉 禎男
【識別番号】100067013 【弁理士】 【氏名又は名称】大塚 文昭
【識別番号】100086771 【弁理士】 【氏名又は名称】西島 孝喜
|
| 【公開番号】 |
特開2008−17495(P2008−17495A) |
| 【公開日】 |
平成20年1月24日(2008.1.24) |
| 【出願番号】 |
特願2007−181700(P2007−181700) |
|