JP2014500551A - ユビキタスコンピューティング環境におけるデバイスの発見 - Google Patents

ユビキタスコンピューティング環境におけるデバイスの発見 Download PDF

Info

Publication number
JP2014500551A
JP2014500551A JP2013542331A JP2013542331A JP2014500551A JP 2014500551 A JP2014500551 A JP 2014500551A JP 2013542331 A JP2013542331 A JP 2013542331A JP 2013542331 A JP2013542331 A JP 2013542331A JP 2014500551 A JP2014500551 A JP 2014500551A
Authority
JP
Japan
Prior art keywords
devices
computing environment
hash
computer
attributes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013542331A
Other languages
English (en)
Inventor
カオ,ジュンウェイ
ワン,チョン
Original Assignee
エンパイア テクノロジー ディベロップメント エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by エンパイア テクノロジー ディベロップメント エルエルシー filed Critical エンパイア テクノロジー ディベロップメント エルエルシー
Publication of JP2014500551A publication Critical patent/JP2014500551A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/085Retrieval of network configuration; Tracking network configuration history
    • H04L41/0853Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
    • H04L41/0856Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information by backing up or archiving configuration information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16ZINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS, NOT OTHERWISE PROVIDED FOR
    • G16Z99/00Subject matter not provided for in other main groups of this subclass
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

ユビキタスコンピューティング環境におけるデバイス発見のための方法、命令、およびクライアントアプリケーションに関するテクノロジーについて一般的に説明する。いくつかの例においては、これらの方法、命令、およびクライアントアプリケーションは、ユビキタスコンピューティング環境内のデバイスの特徴を一連の階層的なハッシュ番号へと編成することと、それぞれのデバイスに対応する階層的なハッシュ番号を順序付けることと、ハッシュされた検索基準をユビキタスコンピューティング環境内のデバイスのうちの1つにおける順序付けられた階層的なハッシュ番号にマッチさせることを試みることによって、デバイスのうちの特定のデバイスを検索することとを容易にすることができる。

Description

本明細書に記載されている実装形態および実施形態は、一般にユビキタスコンピューティング環境における検索に関する。
ユビキタスコンピューティング環境、特にピアツーピアコンピューティング環境は、非集中型アーキテクチャを採用しており、その非集中型アーキテクチャによって、タスクおよびリソースが、ネットワークノードどうしの間において分割される。ネットワークノード、またはピアは、データおよびストレージを含めたリソースの供給者および消費者の両方である。さらに、そのような環境においては、リソースは、典型的には、基礎をなすインターネットプロトコル(あるいは「IP」とも呼ばれる)を介して直接やり取りされる。
分散ハッシュテーブル(あるいは「DHT」とも呼ばれる)は、ピアツーピアコンピューティング環境においてリソースを探すルックアップサービスを提供する非集中型分散システムの一種である。データの発見および管理のために利用されるDHTベースのネットワークは、Chordプロジェクト、PASTストレージユーティリティ、P−Grid、およびCoopNetコンテンツ配布システムを含む。
Stoicaら、Chord:A Scalable−Peer−to−peer Lookup Service for Internet Applications, SIGCOMM ’01、2001年8月27日〜31日、アメリカ合衆国カリフォルニア州サンディエゴ
あるクライアントアプリケーションが、非集中型コンピューティング環境内のデバイスの特徴を一連の階層的なハッシュ番号へと編成することと、それぞれのデバイスに対応する階層的なハッシュ番号を順序付けることと、ハッシュされた検索基準を非集中型コンピューティング環境内のデバイスのうちの1つにおける順序付けられた階層的なハッシュ番号にマッチさせることを試みることによって、デバイスのうちの特定のデバイスを検索することとを容易にするための方法およびプログラムを実施する。
前述の概要は、例示的なものにすぎず、いかなる形であれ限定することを意図するものではない。上述の例示的な態様、実施形態、および特徴に加えて、さらなる態様、実施形態、および特徴が、図面および以降の詳細な説明を参照することによって明らかになるであろう。
以降の詳細な説明においては、実施形態は、例示としてのみ記載されている。なぜなら、当業者にとっては、以降の詳細な説明から、さまざまな変更および修正が明らかとなるであろうためである。別々の図における同じ参照番号の使用は、同様のまたは同じアイテムを指す。
本明細書に記載されている実施形態による、デバイス発見を実施することができるピアツーピアの、すなわちユビキタスなコンピューティング環境の一例を示す図である。 ユビキタスコンピューティング環境におけるデバイス発見のためのクライアントアプリケーションおよび対応するインターフェースの例示的な一実施形態を示す図である。 ユビキタスコンピューティング環境におけるデバイス発見のさまざまな実施形態において利用されるフィギュアテーブルの一例を示す図である。 ユビキタスコンピューティング環境におけるデバイス発見のさまざまな実施形態のためのサンプルの処理フローを示す図である。 ユビキタスコンピューティング環境におけるデバイス発見のさまざまな実施形態を実施することができるサンプルのコンピューティングデバイスを示す図である。
以降の詳細な説明においては、添付の図面を参照し、それらの図面は、本明細書の一部を形成している。それらの図面においては、同様の符号は、典型的には、同様の構成要素を識別する。ただし、そうではないと文脈によって示される場合は除く。さらに、別段の記載がある場合を除いて、それぞれの連続する図面の記述は、前の図面のうちの1つまたは複数からの特徴を参照して、より明確な文脈と、目下の例示的な実施形態のより実質的な説明とを提供することができる。それでもなお、詳細な説明、図面、および特許請求の範囲に記載されている例示的な実施形態は、限定することを意図するものではない。本明細書において提示されている主題の趣旨または範囲から逸脱することなく、その他の実施形態を利用することができ、その他の変更を行うことができる。本明細書において一般的に説明され図において例示されている本開示の態様は、さまざまな異なる構成でアレンジすること、置き換えること、組み合わせること、分割すること、および設計することが可能であり、それらのすべては、明示的に本明細書内のものであると考えられるということが容易にわかるであろう。
図1は、本明細書に記載されている実施形態による、デバイス発見を実施することができるユビキタスコンピューティング環境100の一例を示している。
ユビキタスコンピューティング環境100は、あるいはピアツーピアネットワーク100と見なすこともできる。なぜなら、本明細書に記載されているデバイス発見の実施形態は、非集中型コンピューティング環境のコンテキスト内で実施され、そこでは、ピアノード、またはデバイスが、そのコンピューティング環境内のその他のノードに対してクライアントおよびサーバの両方として機能するためである。
デバイス102(a)、102(b)、102(c)、102(d)、102(e)、...、102(n)は、あるいは総称的に「デバイス102」または一般的に「デバイス102」と呼ぶこともでき、非集中型のピアツーピアネットワーク100上の参加ノードである。デバイス102はそれぞれ、ピアツーピアネットワーク100上の通信エンドポイントまたは端末機器と見なすことができる。さらにデバイス102はそれぞれ、ピアツーピアネットワーク100を介して情報を送信すること、受信すること、または転送することが可能であるアクティブな電子デバイスと見なすことができる。そのようなアクティブな電子デバイスの例としては、モバイル(もしくはセルラー)電話、デスクトップコンピュータ、ラップトップコンピュータ、タブレット/スレートコンピュータ、サーバ、モデム、ハブ、ブリッジ、またはプリンタ/コピー機が含まれるが、それらには限定されない。デバイス102の前述の例のうちの少なくともいくつかによれば、ユビキタスコンピューティング環境100は、あるいはワイヤレス通信ネットワークとして実装することもできる。
図1に示されているように、デバイス102のうちのすべてが、互いに直接通信可能に接続されているわけではない。さらに、ピアツーピアネットワーク100の集団は動的である。すなわち、デバイス102のうちのすべてが、ピアツーピアネットワーク100内に留まっているわけではない。むしろ、デバイス102(a)、102(b)、102(c)、102(d)、102(e)、...、102(n)のうちのさまざまなデバイスが、ピアツーピアネットワーク100から抜けることがあり、または1つもしくは複数の動的なデバイスが、ピアツーピアネットワーク100に加わることがあり、また、ピアツーピアネットワーク100に対する抹消と加入は、互いに対称である必要はなく、釣り合いが取れている必要もなく、または同時である必要もない。
図1にさらに示されているように、ピアツーピアネットワーク100上のデバイス102(a)、102(b)、102(c)、102(d)、102(e)、...、102(n)のそれぞれには、対応するクライアントアプリケーション104(a)〜(n)が常駐しており、それらは、あるいは総称的に「アプリケーション104」または一般的に「アプリケーション104」と呼ぶこともできる。アプリケーション104は、本明細書に記載されている実施形態に従ってデバイス発見を実施する手段であり、アプリケーション104のそれぞれは、それぞれのフィギュアテーブル(あるいは「配布テーブル」と見なすことまたは呼ぶことも可能である)をさらに含む。
図2は、ユビキタスコンピューティング環境100におけるデバイス発見のためのクライアントアプリケーション104および対応するインターフェース200の例示的な一実施形態を示している。
本明細書に記載されているユビキタスコンピューティング環境におけるデバイス発見の実施形態によれば、ピアツーピアネットワーク100上のデバイス102(a)、102(b)、102(c)、102(d)、102(e)、...、102(n)のそれぞれは、それぞれのデバイスの機能を記述するための見出し語、ならびにそれぞれのデバイスの機能性またはその他の何らかの特徴をさらに記述するための1つまたは複数の説明的な語または属性を有することができる。そのようなその他の特徴の非限定的な例としては、デバイスのブランド、モデル、機能性、または地理的場所さえ含むことができる。
さらに、デバイス102(a)、102(b)、102(c)、102(d)、102(e)、...、102(n)のそれぞれは、クライアントアプリケーション104の常駐インスタンスを有することができ、その常駐インスタンスの上に、インタラクティブなインターフェース200およびフィギュアテーブル250が常駐することができる。インターフェース200は、機能データフィールド205を含むことができ、その機能データフィールド205内に、デバイス102のうちのそれぞれのデバイスのユーザが、ピアツーピアネットワーク100上で求められている特定のデバイスの機能、たとえば「プリンタ」を入力または指定することができる。インターフェース200は、データフィールド210(a)、210(b)、210(c)、...、210(n)をさらに含むことができ、これらは、あるいは総称的に「属性データフィールド210」と呼ぶこともでき、これらの属性データフィールド210内に、デバイス102のうちのそれぞれのデバイスのユーザが、ピアツーピアネットワーク100上で求められているデバイスのさらなる属性を入力または指定することができる。デバイス102のうちのそれぞれのデバイスの属性は、別法として、それぞれのデバイス102がピアツーピアネットワーク100に接続されたときなどにユーザの介入を伴わずに自動的に属性データフィールド210内に入力されることも可能であるということに留意されたい。デバイス発見のさまざまな実施形態に関しては、機能データフィールド205および属性データフィールド210(a)〜210(n)によって、デバイス102、およびデバイス102のうちの特定のデバイスを探すための検索基準でさえ、編成すること、すなわち分類することができる。
したがって、求められているデバイスがプリンタである場合には、機能データフィールド205内に入力される機能属性は、「プリンタ」と入力または指定することができ、次いで、事前設定された属性データフィールド210が、求められているプリンタの機能性およびその他の特徴をさらに記述する属性を受け取ることができる。データフィールド205に入力または指定される「プリンタ」に関するそのようなさらなる記述の非限定的な例としては、「東芝」、「650C」、「レーザー」、「カラー」、または「2階」を含むことができる。上述のように、属性データフィールド210(a)〜210(n)は、属性データを受け取るように事前設定することができ、属性データは、たとえば、デバイスのブランド、モデル、機能性、または場所を含むことができる。属性データフィールド210のうちのどの特定のフィールド内にそれぞれの属性データが入力または指定されることになるかを決定する事前設定は、動的なものとすることができ、実施形態ごとに異なることが可能である。加えて、属性データフィールド210は、特定のタイプのデバイス用に一意に事前設定することができ、これは、機能データフィールド205への入力によって識別することができる。したがって、非限定的な例として上で提供された属性を使用すると、「東芝」を属性データフィールド210(a)に入力するかまたはその他の形で指定することができ、「650C」を属性データフィールド210(b)に入力するかまたはその他の形で指定することができ、「レーザー」を属性データフィールド210(c)に入力するかまたはその他の形で指定することができ、「カラー」を属性データフィールド210(d)に入力するかまたはその他の形で指定することができ、「2階」を属性データフィールド210(g)に入力するかまたはその他の形で指定することができる。
したがって、上記の例をコンテキストに応じて使用すれば、機能データフィールド205への入力に対応するために、属性データフィールド210のうちのすべてを記入する必要があるわけではない。なぜなら、たとえば、求められているデバイスの属性のすべてが、デバイス102のうちの目下のデバイスのユーザに知られているわけではないためである。上記の例においては、属性データフィールド210(e)、210(f)、または属性データフィールド210(g)の後のフィールドへの入力はない。ある特定の属性が、デバイス102のうちの目下のデバイスのユーザに知られていない場合には、その特定の属性を受け取ることになっているデータフィールド210のうちの事前設定されたフィールドに、「なし」、「null」、またはそれらの何らかのバリアントを記入して、その対応する属性が値を有していないことを示すことができる。
機能データフィールド205、および属性データフィールド210(a)〜210(n)のうちの少なくとも1つへのデータ入力を受け取ると、デバイス102のうちのそれぞれのデバイス上のクライアントアプリケーション104は、それらのデータ入力をハッシュし、結果として累積検索ハッシュ番号(SHN)を得ることができる。
より詳細には、クライアントアプリケーション104のいくつかの実施形態においては、基本ハッシュ関数、たとえばSHA−1を利用して、機能データフィールド205および属性データフィールド210(a)〜210(n)のそれぞれを、ハッシュデータフィールド215およびハッシュデータフィールド220(a)〜220(n)内の長さMの対応するハッシュ値に個別にマップすることができ、ハッシュデータフィールド220(a)〜220(n)は、あるいは総称的に「ハッシュデータフィールド220」と呼ぶこともできる。したがって、機能データフィールド205への入力のハッシュ値は、ハッシュデータフィールド215にマップすることができ、属性データフィールド210(a)〜210(n)への入力のハッシュ値は、それぞれハッシュデータフィールド220(a)〜220(n)にマップすることができる。「なし」、「null」、またはそれらの何らかのバリアントの値を有する属性データフィールド210(a)〜210(n)に関しては、ハッシュデータフィールド220(a)〜220(n)のうちの対応するフィールドにゼロの値を投入することができる。
デバイス発見のさまざまな実施形態において、その他の基本ハッシュ関数を利用することもでき、したがって、SHA−1の例を引用したことは、いかなる形であれ限定することを意図するものではないということがわかる。
ハッシュデータフィールド215および220(a)〜220(n)は、連結することができ、ひいては前述の累積検索ハッシュ番号(SHN)と見なすことができる。SHNは、フィギュアテーブル250のコンテンツに対する比較を行ってデバイス発見に至るための尺度または基準である。フィギュアテーブル250のコンテンツは、少なくとも、ピアツーピアネットワーク100上のデバイス102のうちの少なくとも一部に関する累積デバイスハッシュ番号(DHN)を含む。
図3は、ユビキタスコンピューティング環境100におけるデバイス発見のさまざまな実施形態において利用される例示的なテーブル、すなわちフィギュアテーブルまたは配布テーブル250を示している。
テーブル250は、ピアツーピアネットワーク100上の所定の数のデバイス102の少なくともDHNおよびIPアドレスを格納することができる。より詳細には、ピアツーピアネットワーク100がN個のデバイスまたはノードを投入されている場合、フィギュアテーブル250が配布されているため、デバイス102のうちのそれぞれは、ピアツーピアネットワーク100上のN−1個のその他のデバイス102のうちの一部のみと通信することによって、基本ハッシュ関数を解くことができる。したがって、定常状態においては、フィギュアテーブル250のそれぞれのインスタンスは、約0(log N)個のその他のデバイスのみに関するDHNおよびIPアドレスを保持する。
より詳細には、ピアツーピアネットワーク100上のデバイス102(a)、102(b)、102(c)、102(d)、102(e)、...、102(n)のうちの任意のデバイスに関するDHNは、デバイス102のうちの1つのデバイスのユーザによって求められているデバイスに関してSHNが特定されるのと同じ方法で特定することができる。すなわち、デバイス102のうちの特定のデバイスに関する機能データ、すなわち見出し語、および利用可能な属性データを、事前設定されたデータフィールド205および210(a)〜210(n)のうちの対応するフィールド内に入力することができ、次いで個々にハッシュして、ハッシュデータフィールド215および220(a)〜220(n)と同様のフィールド内の対応するハッシュ値にすることができる。次いで、結果として得られるハッシュデータフィールド215および220(a)〜220(n)を連結して、SHNと同じフォーマットでフィギュアテーブル250に入力することができる。
したがって、フィギュアテーブル250は、ピアツーピアネットワーク100上の、たとえば0(log N)個の、またはその他のデバイス102に関して少なくともDHNを示すさらなる列を含むことができる。より詳細には、SHNを格納することに加えて、テーブル250は、デバイス102のうちの1つまたは複数に関して少なくともDHNおよびIPアドレスを格納することができ、ピアツーピアネットワーク100上のデバイス102(a)、102(b)、102(c)、102(d)、102(e)、...、102(n)のうちの特定のデバイスを検索するためのプラットフォームとして機能することができる。
上述のように、ピアツーピアネットワーク100上のデバイス102のうちのほぼすべては、自分の上に常駐しているクライアントアプリケーション104のインスタンスを含むことができる。そして、クライアントアプリケーション104のそれぞれのインスタンスは、自分の中に含まれているインターフェース200のインスタンスおよびフィギュアテーブル250のインスタンスを有することができる。しかし、上述のように、フィギュアテーブル250のすべてのインスタンスが、ピアツーピアネットワーク100上のデバイス102のうちのすべてのデバイスに関するDHNを有するわけではない。たとえば、図3の例に示されているフィギュアテーブル250は、SHNと、デバイス102(a)、102(b)、102(d)、102(e)、および、102(n)までのデバイスのうちのさまざまなデバイスに関するDHNとを含む。明らかに欠落しているのは、デバイス102(c)に関するDHNだが、102(n)までのデバイスのうちのその他のデバイスのDHNも、フィギュアテーブル250から欠落している可能性がある。
さらに、上述のように、「なし」、「null」、またはそれらの何らかのバリアントの値を有する属性データフィールド210(a)〜210(n)に関しては、ハッシュデータフィールド220(a)〜220(n)のうちの対応するフィールドにゼロの値を投入することができる。ゼロ以外の値を有するハッシュデータフィールド220のうちの最後のフィールドの前にあるゼロの値を有するハッシュデータフィールド220(a)〜220(n−1)のフィールドは、たとえば「空のプレ属性データフィールド」と呼ぶことができ、ゼロ以外の値を有するハッシュデータフィールド220のうちの最後のフィールドの後に続くゼロの値を有するハッシュデータフィールド220(b)〜220(n)のフィールドは、たとえば「空のポスト属性データフィールド」と呼ぶことができる。
したがって、フィギュアテーブル250への投入を行う際には、空のプレ属性データフィールドは、ゼロの値を保持することができ、その一方で、空のポスト属性データフィールドには、2−1の値を記入することができ、この場合の「M」はやはり、ハッシュデータフィールド220のそれぞれにおけるハッシュ値の長さを指す。もちろん、代替実施形態では、空のプレ属性データフィールドおよび空のポスト属性データフィールドへの値の最初の割り当てを逆にすることもできる。しかし、この実施形態の説明では、空のプレ属性データフィールドが、ゼロの値を有し、空のポスト属性データフィールドが、2−1の値を有するということを保持する。フィギュアテーブル250の構成のこの態様については、図4の説明と関連してピアツーピアネットワーク100上のデバイス102のうちの特定のデバイスの検索を参照して後述する。
図4は、ユビキタスコンピューティング環境100におけるデバイス発見のさまざまな実施形態のためのサンプルの処理フロー400を示している。以降では、図1〜図3の非限定的な例に関して説明した特徴を参照して、サンプルの処理フロー400について説明する。サンプルの処理フローにおいてオペレーションが記載されている順序は、限定するものと解釈されることを意図しておらず、任意の数の記載されているブロックを任意の順序で、および/または並行して組み合わせて、それぞれのプロセスを実施することができる。その上、図4におけるブロックは、ハードウェア、ソフトウェア、またはそれらの組合せで実装できるオペレーションとすることができる。ソフトウェアのコンテキストにおいては、それらのブロックは、1つまたは複数のプロセッサによって実行されたときに記載のオペレーションを1つまたは複数のプロセッサに実行させるコンピュータ実行可能命令に相当する。一般に、コンピュータ実行可能命令は、特定の機能を実行させるかまたは特定の抽象データ型を実装させるルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。
さらに、上述のように、詳細な説明、図面、および特許請求の範囲に記載されている例示的な実施形態は、限定することを意図するものではない。本明細書において提示されている主題の趣旨または範囲から逸脱することなく、その他の実施形態を利用することができ、その他の変更を行うことができる。したがって、図4の説明は、アプリケーション104のそれぞれのインスタンスが、フィギュアテーブル250のインスタンスを含むことができるという前述の開示を考慮して「配布テーブル250」を指し、フィギュアテーブル250は、「配布テーブル」250と見なすことまたは呼ぶことも可能である。
ブロック402は、DHN、および、デバイス発見の少なくともいくつかの実施形態によればSHNの編成を指す。ブロック402は、ブロック404およびブロック406を含む。
ブロック404((1つまたは複数の)デバイスの特徴を編成する)は、より詳細には、ピアツーピアネットワーク100上のデバイス102のうちの少なくとも1つのサブセットの特徴を編成することを指し、これは、クライアントアプリケーション104の特定のインスタンスが常駐しているデバイス102のうちのそれぞれのデバイスにおいて実施することができ、または別法として、デバイス102のうちのその他のデバイスにおいて実施することもできる。前者のシナリオにおいては、所定の数のその他のデバイス102の機能データおよび属性データを、クライアントアプリケーション104によって、事前設定されたデータフィールド205および210(a)〜210(n)において受け取ることができる。後者のシナリオにおいては、それぞれのその他のデバイス102の機能データおよび属性データを、それぞれのデバイス102におけるクライアントアプリケーション104のそれぞれのインスタンスにおいて事前設定されたデータフィールド205および210(a)〜210(n)によって編成することができる。処理は、ブロック404からブロック406へ続くことができる。
ブロック406((1つまたは複数の)デバイスの属性をハッシュする)は、それぞれのデバイス102の機能データおよび属性データがハッシュされることを指す。
ブロック404における第1のシナリオに続いて、ブロック406は、所定の数のその他のデバイス102の機能データフィールド205への入力および属性データフィールド210(a)〜210(n)への入力をそれぞれハッシュすることを含むことができる。ハッシュデータフィールド215および220(a)〜220(n)(それぞれの値は、長さMを有する)を連結して、それぞれのその他のデバイス102に関するDHNを形成することができる。
ブロック404における第2のシナリオに続いて、ブロック406は、所定の数のその他のデバイス102の機能データおよび属性データをハッシュすることを含むことができる。ハッシュデータフィールド215および220(a)〜220(n)を連結して、それぞれのデバイス102に関するDHNを形成することができ、次いでそのDHNを、それぞれのデバイス102が通信する相手のクライアントアプリケーション104のインスタンスへ送信することができる。処理は、ブロック406からブロック408へ続くことができる。
ブロック408((1つまたは複数の)デバイスに関するハッシュ番号を順序付ける)は、それぞれのその他のデバイス102のDHNを配布テーブル250のインスタンスへと編成することおよび/または順序付けることを指す。それぞれのその他のデバイス102に関するDHNの順序付けは、階層的な様式で実施することができ、それによってDHNは、配布テーブル250内に順番に、すなわち昇順または降順のハッシュ値に従って格納される。あるいは、配布テーブル250におけるそれぞれのデバイス102のDHNの順序付けは、さまざまなその他の基準に従って、たとえば、その特定のデバイスがデバイス102のうちのその他のデバイスによって求められる頻度や、クライアントアプリケーション104の特定のインスタンスが常駐しているデバイス102の近接性などに従って、実施することができる。処理は、ブロック408からブロック410へ続くことができる。
ブロック410((1つまたは複数の)特定のデバイスを検索する)は、ピアツーピアの、すなわちユビキタスなネットワーク100上のデバイス102のうちの任意の特定のデバイスの検索を実施することを指す。
検索のための基礎または基準であるSHNは、求められているデバイスの機能属性を機能データフィールド205内に入力し、次いで、求められているデバイスについてさらに記述する属性を、事前設定された属性データフィールド210(a)〜210(n)のうちの適切なフィールド内に入力することによって、編成することができる。もう一度繰り返すが、属性データフィールド210(a)〜210(n)は、属性データを受け取るように事前設定することができ、属性データは、非限定的な例として、デバイスのブランド、モデル、機能性、または場所を含むことができる。さらに、どの特定の属性データフィールド210内にそれぞれの属性データが入力されることになるかを決定する事前設定は、動的なものとすることができ、実施形態ごとに異なることが可能であり、属性データフィールド210は、特定のタイプのデバイス用に一意に事前設定することができる。
さらに、ブロック410におけるオペレーションを実施する際には、機能データフィールド205へのそれぞれの入力ごとに、属性データフィールド210のうちのすべてが必ずしも記入されるわけではない。求められているデバイスのある特定の属性が知られていない場合には、その特定の属性を受け取ることになっている属性データフィールド210のうちの事前設定されたフィールドに、「なし」、「null」、またはそれらの何らかのバリアントを記入して、その対応する属性が値を有していないことを示すことができる。
機能データフィールド205、および属性データフィールド210(a)〜210(n)のうちの少なくとも1つへのデータ入力を受け取ると、デバイス102のうちのそれぞれのデバイス上のクライアントアプリケーション104は、それらのデータ入力上で基本ハッシュ関数を実施し、結果として累積SHNを得ることができる。すなわち、機能データフィールド205および属性データフィールド210(a)〜210(n)のそれぞれは、ハッシュフィールド215および220(a)〜220(n)内の対応するハッシュ値にマップすることができる。配布テーブル250に投入されているDHNと同様に、空のプレ属性データフィールドは、ゼロの値を保持することができ、空のポスト属性データフィールドは、2−1の値を含むことができる。
次いで、ブロック410における検索は、SHNを、配布テーブル250に投入されているDHNにマッチさせる試みを含むことができる。SHNと、前述のDHNのうちの1つとの間に完全なマッチがある場合には、クライアントアプリケーション104の特定のインスタンスが常駐しているデバイス102上で、その結果の通知が行われる。
SHNと、前述のDHNのうちの1つとの間に完全なマッチがない場合には、SHNに最も近くマッチするDHNを探して検索が続けられる。デバイス発見の代替実施形態は、マッチしていないDHNとSHNの間における最も近いマッチを、SHNの値を超えることなくSHNに最も近くマッチするDHNであると考えることができ、または最も近いDHNマッチを、SHNの値を超える最も近いDHNの値であると考えることができる。
さらに、配布テーブル250に投入されているDHNと、SHNとの間における最も近いマッチを見つけ出す試みは、クライアントアプリケーション104の特定のインスタンスが常駐しているデバイス102の対応する値を空のプレ属性データフィールドに記入することを含むことができる。もちろん、代替実施形態によって、2−1の値を有する空のプレ属性データフィールドと、ゼロの値を有する空のポスト属性データフィールドとを伴う配布テーブル250への投入がはじめに行われるならば、目下のアクションは、空のポスト属性データフィールドが、目下のデバイス102の対応する値を記入されることを含むことになる。
上述のように、デバイス102のうちのすべてが、互いに直接通信可能に接続されているわけではない。さらに、ピアツーピアネットワーク100の集団は、動的である場合がある。したがって、SHNに関するマッチを探す検索を別のデバイスへ転送することによって、その検索は、ピアツーピアネットワーク102に投入されているデバイス102のうちのより多くのデバイスへ広がる。
デバイス発見の少なくとも1つの実施形態では、SHNと、テーブル250に投入されているDHNのうちのいずれとの間にも完全なマッチが見つからない場合には、検索オペレーションが終わる結果となることが可能である。デバイス発見のその他の代替実施形態では、SHNをデバイス102のうちの別のデバイスへ送信またはその他の形で転送させて、デバイス102のうちのその別のデバイスにおけるクライアントアプリケーション104のインスタンス上の配布テーブル250に投入されているDHNと比較することによって、検索オペレーションが続く結果となることが可能である。そしてそこで、その他の配布テーブル250に投入されている、デバイス102のうちで、その別のデバイス102と通信するデバイスのDHNとともに、プロセス400を繰り返すことができる。クライアントアプリケーション104は、所定の回数の反復の後に、その所定の数のデバイス102上で特定のSHNとの完全なマッチが見つからない場合には、検索を終了するように構成することができる。
上述の説明によれば、ピアツーピアの、すなわちユビキタスなコンピューティング環境におけるデバイス発見は、基本ハッシュ関数を使用して実施することができる。
本明細書において開示されているこのプロセスおよび方法ならびにその他のプロセスおよび方法に関して、それらのプロセスおよび方法において実行される機能は、異なる順序で実施することができるということを当業者なら理解するであろう。さらに、概説されているステップおよびオペレーションは、例として提供されているにすぎず、また、それらのステップおよびオペレーションのうちのいくつかは、開示されている実施形態の本質を損なうことなく、オプションとすること、組み合わせて、より少ないステップおよびオペレーションにすること、または、さらなるステップおよびオペレーションへと拡張することが可能である。
さらに、本開示は、本出願に記載されている特定の実施形態の点から限定されるものではなく、それらの特定の実施形態は、さまざまな態様の例示として意図されている。当業者にとっては明らかであろうが、その趣旨および範囲から逸脱することなく、多くの修正形態および変形形態を作成することができる。本明細書において列挙されている方法および装置に加えて、本開示の範囲内である機能的に均等な方法および同等な装置は、当業者にとっては、前述の説明から明らかであろう。そのような修正形態および変形形態は、添付の特許請求の範囲の範疇内に収まることを意図されている。本開示は、添付の特許請求の範囲の文言と、そのような特許請求の範囲が権利を付与されている均等物の全範囲とによってのみ限定されるものである。本開示は、特定の方法、試薬、化合物、組成、または生体系(これらは、もちろん、さまざまなものでありうる)に限定されるものではないということを理解されたい。本明細書において使用されている用語は、特定の実施形態を説明することのみを目的としており、限定することを意図されているものではないということも理解されたい。
図5は、ユビキタスコンピューティング環境におけるデバイス発見のさまざまな実施形態を実施することができるサンプルのコンピューティングデバイス500を示している。より詳細には、図5は、例示的なコンピューティング実施形態を示しており、そこでは、本明細書に記載されているオペレーション、プロセスなどのいずれも、コンピュータ可読媒体上に格納されているコンピュータ可読命令として実装することができる。それらのコンピュータ可読命令は、たとえば、モバイルユニット、ネットワーク要素、および/またはその他の任意のコンピューティングデバイスのプロセッサによって実行することができる。
非常に基本的な構成502においては、コンピューティングデバイス500は、典型的には、1つまたは複数のプロセッサ504と、システムメモリ506とを含む。プロセッサ504とシステムメモリ506との間において通信するために、メモリバス508を使用することができる。
所望の構成に応じて、プロセッサ504は、任意のタイプのものとすることができ、それらのタイプには、マイクロプロセッサ(μP)、マイクロコントローラ(μC)、デジタルシグナルプロセッサ(DSP)、またはそれらの任意の組合せが含まれるが、それらには限定されない。プロセッサ504は、レベル1キャッシュ510およびレベル2キャッシュ512など、もう1つ多いレベルのキャッシングと、プロセッサコア514と、レジスタ516とを含むことができる。例示的なプロセッサコア514は、演算ロジックユニット(ALU)、浮動小数点演算ユニット(FPU)、デジタル信号処理コア(DSPコア)、またはそれらの任意の組合せを含むことができる。例示的なメモリコントローラ518は、プロセッサ504とともに使用することもでき、または、いくつかの実装形態においては、メモリコントローラ518は、プロセッサ504の内部の一部分とすることができる。
所望の構成に応じて、システムメモリ506は、任意のタイプのものとすることができ、それらのタイプには、揮発性メモリ(RAMなど)、不揮発性メモリ(ROM、フラッシュメモリなど)、またはそれらの任意の組合せが含まれるが、それらには限定されない。システムメモリ506は、オペレーティングシステム520と、1つまたは複数のアプリケーション522と、プログラムデータ524とを含むことができる。
アプリケーション522は、クライアントアプリケーション104を含むことができ、このクライアントアプリケーション104は、図1〜図4に関連して前述した機能を含む、本明細書に記載されている機能を実行するように構成されている。プログラムデータ524は、テーブル250を含むことができ、このテーブル250は、あるいは「フィギュアテーブル250」または「配布テーブル250」と呼ぶこともでき、本明細書に記載されているデバイス発見を実施する上で役立つことができる。
コンピューティングデバイス500は、基本的な構成502と、必要とされるあらゆるデバイスおよびインターフェースとの間における通信を容易にするためのさらなる特徴または機能性およびさらなるインターフェースを有することができる。たとえば、ストレージインターフェースバス534を介した、基本的な構成502と、1つまたは複数のデータストレージデバイス532との間における通信を容易にするために、バス/インターフェースコントローラ530を使用することができる。データストレージデバイス532は、取り外し可能なストレージデバイス536、取り外し不能なストレージデバイス538、またはそれらの組合せとすることができる。取り外し可能なストレージデバイスおよび取り外し不能なストレージデバイスの例としては、いくつか挙げると、フレキシブルディスクドライブおよびハードディスクドライブ(HDD)などの磁気ディスクデバイス、コンパクトディスク(CD)ドライブまたはデジタル多用途ディスク(DVD)ドライブなどの光ディスクドライブ、ソリッドステートドライブ(SSD)、ならびにテープドライブが含まれる。例示的なコンピュータストレージ媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を格納するための任意の方法またはテクノロジーにおいて実装される揮発性の媒体および不揮発性の媒体、ならびに取り外し可能な媒体および取り外し不能な媒体を含むことができる。
システムメモリ506、取り外し可能なストレージデバイス536、および取り外し不能なストレージデバイス538は、コンピュータストレージ媒体の例である。コンピュータストレージ媒体は、RAM、ROM、EEPROM、フラッシュメモリ、もしくはその他のメモリテクノロジー、CD−ROM、デジタル多用途ディスク(DVD)、もしくはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、もしくはその他の磁気ストレージデバイス、または、所望の情報を格納するために使用することができ、かつコンピューティングデバイス500によってアクセスすることができるその他の任意の媒体を含むことができるが、それらには限定されない。そのような任意のコンピュータストレージ媒体をコンピューティングデバイス500の一部とすることができる。
コンピューティングデバイス500は、さまざまなインターフェースデバイス、たとえば、出力デバイス542、周辺インターフェース544、および通信デバイス546から、バス/インターフェースコントローラ530を介して、基本的な構成502へ至る通信を容易にするためのインターフェースバス540を含むこともできる。例示的な出力デバイス542は、グラフィックスプロセッシングユニット548およびオーディオ処理装置550を含むことができ、グラフィックスプロセッシングユニット548およびオーディオ処理装置550は、1つまたは複数のA/Vポート552を介して、ディスプレイまたはスピーカーなどのさまざまな外部デバイスに通信するように構成することができる。例示的な周辺インターフェース544は、シリアルインターフェースコントローラ554またはパラレルインターフェースコントローラ556を含むことができ、シリアルインターフェースコントローラ554またはパラレルインターフェースコントローラ556は、1つまたは複数のI/Oポート458を介して、入力デバイス(たとえば、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス等)またはその他の周辺デバイス(たとえば、プリンタ、スキャナ等)などの外部デバイスと通信するように構成することができる。例示的な通信デバイス546は、ネットワークコントローラ560を含むことができ、ネットワークコントローラ560は、1つまたは複数の通信ポート564を経由した、かつネットワーク通信リンクを介した、1つまたは複数のその他のコンピューティングデバイス562との通信を容易にするように構成することができる。
ネットワーク通信リンクは、通信媒体の一例と見なすことができる。通信媒体は、典型的には、搬送波もしくはその他の伝送メカニズムなどの変調されたデータ信号内のコンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータによって具体化することができ、任意の情報伝達メディアを含むことができる。「変調されたデータ信号」とは、情報をその信号内でコード化するような方法で設定または変更されたその特性のうちの1つまたは複数を有する信号と見なすことができる。限定ではなく、例として、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、ならびに、音波媒体、ラジオ周波数(RF)媒体、マイクロ波媒体、赤外線(IR)媒体、およびその他のワイヤレス媒体などのワイヤレス媒体を含むことができる。コンピュータ可読媒体という用語は、本明細書において使用される際には、ストレージ媒体および通信媒体の両方を含むことができる。
コンピューティングデバイス500は、携帯電話、携帯情報端末(PDA)、パーソナルメディアプレーヤデバイス、ワイヤレスウェブ閲覧デバイス、パーソナルヘッドセットデバイス、アプリケーション固有のデバイス、または、上記の機能のうちの任意のものを含むハイブリッドデバイスなど、スモールフォームファクタのポータブル(またはモバイル)電子デバイスの一部分として実装することができる。コンピューティングデバイス400は、ラップトップコンピュータの構成およびラップトップコンピュータ以外の構成の両方を含めて、パーソナルコンピュータとして実装することもできる。
システムの側面でのハードウェアの実装形態とソフトウェアの実装形態との間には、ほとんど相違が残されていない。ハードウェアまたはソフトウェアの使用は、一般に(いつもそうではないが、ある状況ではハードウェアとソフトウェアの間の選択が重要になり得るという点で)コスト対効果のトレードオフを表す設計上の選択である。本明細書に記載された、プロセスおよび/またはシステムおよび/または他の技術を実施することができるさまざまな達成手段があり(たとえば、ハードウェア、ソフトウェア、および/またはファームウェア)、好ましい達成手段は、プロセスおよび/またはシステムおよび/または他の技術が導入される状況によって異なり得る。たとえば、実装者が速度と正確性が最も重要であると決定すると、実装者は主にハードウェアおよび/またはファームウェアの達成手段を選択することができる。フレキシビリティが最も重要なら、実装者は主にソフトウェアの実装形態を選択することができる。または、さらに別の代替案として、実装者は、ハードウェア、ソフトウェア、および/またはファームウェアのなんらかの組合せを選択することができる。
前述の詳細な説明では、ブロック図、フローチャート、および/または例の使用によって、デバイスの発見のための装置および/またはプロセスのさまざまな実施形態を説明してきた。そのようなブロック図、フローチャート、および/または例が1つまたは複数の機能および/または動作を含む限りにおいて、そのようなブロック図、フローチャート、または例の中のそれぞれの機能および/または動作は、広範囲のハードウェア、ソフトウェア、ファームウェア、または実質上それらのすべての組合せにより、個別におよび/または集合的に実装可能であることが、当業者には理解されるであろう。ある実施形態では、本明細書に記載された主題のいくつかの部分は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、または他の集積化方式によって実装することができる。しかし、本明細書で開示された実施形態のいくつかの態様が、全体においてまたは一部において、1つまたは複数のコンピュータ上で動作する1つまたは複数のコンピュータプログラムとして(たとえば、1つまたは複数のコンピュータシステム上で動作する1つまたは複数のプログラムとして)、1つまたは複数のプロセッサ上で動作する1つまたは複数のプログラムとして(たとえば、1つまたは複数のマイクロプロセッサ上で動作する1つまたは複数のプログラムとして)、ファームウェアとして、あるいは実質上それらの任意の組合せとして、等価に集積回路に実装することができることを、当業者は認識するであろうし、電気回路の設計ならびに/またはソフトウェアおよび/もしくはファームウェアのコーディングが、本開示に照らして十分当業者の技能の範囲内であることを、当業者は認識するであろう。さらに、本明細書に記載された主題のメカニズムをさまざまな形式のプログラム製品として配布することができることを、当業者は理解するであろうし、本明細書に記載された主題の例示的な実施形態が、実際に配布を実行するために使用される信号伝達媒体の特定のタイプにかかわらず適用されることを、当業者は理解するであろう。信号伝達媒体の例には、フロッピー(登録商標)ディスク、ハードディスクドライブ、CD、DVD、デジタルテープ、コンピュータメモリ、などの記録可能なタイプの媒体、ならびに、デジタル通信媒体および/またはアナログ通信媒体(たとえば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど)の通信タイプの媒体が含まれるが、それらには限定されない。
本明細書で説明したやり方で装置および/またはプロセスを記載し、その後そのように記載された装置および/またはプロセスを、データ処理システムに統合するためにエンジニアリング方式を使用することは、当技術分野で一般的であることを当業者は認識するであろう。すなわち、本明細書に記載された装置および/またはプロセスの少なくとも一部を、妥当な数の実験によってデータ処理システムに統合することができる。通常のデータ処理システムは、一般に、システムユニットハウジング、ビデオディスプレイ装置、揮発性メモリおよび不揮発性メモリなどのメモリ、マイクロプロセッサおよびデジタル信号プロセッサなどのプロセッサ、オペレーティングシステムなどの計算実体、ドライバ、グラフィカルユーザインタフェース、およびアプリケーションプログラムのうちの1つもしくは複数、タッチパッドもしくはスクリーンなどの1つもしくは複数の相互作用装置、ならびに/またはフィードバックループおよびコントロールモータを含むコントロールシステム(たとえば、位置検知用および/もしくは速度検知用フィードバック、コンポーネントの移動用および/もしくは数量の調整用コントロールモータ)を含むことを、当業者は理解するであろう。通常のデータ処理システムは、データコンピューティング/通信システムおよび/またはネットワークコンピューティング/通信システムの中に通常見られるコンポーネントなどの、市販の適切なコンポーネントを利用して実装することができる。
本明細書に記載された主題は、さまざまなコンポーネントをしばしば例示しており、これらのコンポーネントは、他のさまざまなコンポーネントに包含されるか、または他のさまざまなコンポーネントに接続される。そのように図示されたアーキテクチャは、単に例にすぎず、実際には、同じ機能を実現する多くの他のアーキテクチャが実装可能であることが理解されよう。概念的な意味で、同じ機能を実現するコンポーネントの任意の構成は、所望の機能が実現されるように効果的に「関連付け」される。したがって、特定の機能を実現するために組み合わされた、本明細書における任意の2つのコンポーネントは、アーキテクチャまたは中間のコンポーネントにかかわらず、所望の機能が実現されるように、お互いに「関連付け」されていると見ることができる。同様に、そのように関連付けされた任意の2つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に接続」または「動作可能に結合」されていると見なすこともでき、そのように関連付け可能な任意の2つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に結合できる」と見なすこともできる。動作可能に結合できる場合の具体例には、物理的にかみ合わせ可能な、および/もしくは物理的に相互作用するコンポーネント、ならびに/またはワイヤレスに相互作用可能な、および/もしくはワイヤレスに相互作用するコンポーネント、ならびに/または論理的に相互作用する、および/もしくは論理的に相互作用可能なコンポーネントが含まれるが、それらに限定されない。
最後に、本明細書における実質的にすべての複数形および/または単数形の用語の使用に対して、当業者は、状況および/または用途に適切なように、複数形から単数形に、および/または単数形から複数形に変換することができる。さまざまな単数形/複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。
通常、本明細書において、特に添付の特許請求の範囲、たとえば、添付の特許請求の範囲の本体部において使用される用語は、全体を通じて「オープンな(open)」用語として意図されていることが、当業者には理解されよう。たとえば、用語「含む(including)」は、「含むがそれに限定されない(including but not limited to)」と解釈されるべきであり、用語「有する(having)」は、「少なくとも有する(having at least)」と解釈されるべきであり、用語「含む(includes)」は、「含むがそれに限定されない(includes but is not limited to)」と解釈されるべきである、などである。導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。たとえば、理解の一助として、添付の特許請求の範囲は、導入句「少なくとも1つの(at least one)」および「1つまたは複数の(one or more)」を使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句「1つまたは複数の」または「少なくとも1つの」および「a」または「an」などの不定冠詞を含む場合であっても、不定冠詞「a」または「an」による請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に1つのそのような記載を含む実施形態に限定する、ということを示唆していると解釈されるべきではなく、たとえば、「a」および/または「an」は、「少なくとも1つの」または「1つまたは複数の」を意味すると解釈されるべきである。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、少なくとも記載された数を意味すると解釈されるべきであり、たとえば、他の修飾語なしでの「2つの記載(two recitations)」の単なる記載は、少なくとも2つの記載、または2つ以上の記載を意味することが当業者には理解されよう。さらに、「A、BおよびC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されており、たとえば、「A、B、およびCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない。「A、B、またはC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されており、たとえば、「A、B、またはCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない。2つ以上の代替用語を提示する事実上いかなる離接する語および/または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方(one of the terms)、当該用語のいずれか(either of the terms)、または両方の用語(both terms)を含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。たとえば、句「AまたはB」は、「A」または「B」あるいは「AおよびB」の可能性を含むことが理解されよう。
加えて、本開示の特徴または態様がマーカッシュ群として記載される場合、このことによって、当業者なら、本開示がマーカッシュ群の構成要素の任意の個別の構成要素または部分群としても記載されることを認識するであろう。
本開示のさまざまな実施形態は、例示の目的で本明細書に記載されているということ、ならびに、本開示の範囲および趣旨から逸脱することなく、さまざまな修正を行うことができるということが、前述の内容からわかるであろう。したがって、本明細書において開示されているさまざまな実施形態は、限定することを意図するものではなく、真の範囲および趣旨は、添付の特許請求の範囲によって示されている。
引用リスト
1.Stoicaら、Chord:A Scalable−Peer−to−peer Lookup Service for Internet Applications, SIGCOMM ’01、2001年8月27日〜31日、アメリカ合衆国カリフォルニア州サンディエゴ

Claims (24)

  1. ユビキタスコンピューティング環境内のデバイスの特徴を一連の階層的なハッシュ番号へと編成すること(402)と、
    前記それぞれのデバイスに対応する前記階層的なハッシュ番号を順番に順序付けること(408)と、
    ハッシュされた検索基準を前記ユビキタスコンピューティング環境内の前記デバイスのうちの1つにおける前記順序付けられた階層的なハッシュ番号にマッチさせることを試みることによって、前記デバイスのうちの特定のデバイスを検索すること(410)と
    を含む、方法。
  2. 前記デバイスのうちのそれぞれの前記特徴が、前記それぞれのデバイスの機能名および少なくとも1つの説明的な属性を含む、請求項1に記載の方法。
  3. 前記デバイスのうちのそれぞれに関する前記階層的なハッシュ番号が、前記それぞれのデバイスの機能名および1つまたは複数の説明的な属性それぞれの基礎ハッシュ表現の連結を含む、請求項1に記載の方法。
  4. 前記編成することが、
    前記デバイスのうちの1つの少なくとも説明的な機能および少なくとも1つの説明的な属性をそれぞれの事前設定されたデータフィールド内に受け取ることと、
    前記それぞれの事前設定されたデータフィールドのうちのそれぞれをハッシュすることと、
    前記ハッシュされたデータフィールド同士を連結することと
    を含む、請求項1に記載の方法。
  5. 前記編成することが、
    機能名および少なくとも1つの説明的な属性に従って前記デバイスのそれぞれを個々に分類することであって、
    さらに前記機能名および少なくとも1つの説明的な属性が、それぞれの事前設定されたデータフィールド内に入力される、ことと、
    前記それぞれのデータフィールドをハッシュすることと
    を含み、
    前記順序付けることが、
    前記デバイスのうちの少なくとも一部に関する前記結合したハッシュされたデータフィールドを、前記ユビキタスコンピューティング環境内の前記デバイスのうちの1つにおいて格納されている配布されたテーブル内で階層的に順序付けることを含む、請求項1に記載の方法。
  6. 前記ユビキタスコンピューティング環境が、非集中型ピアツーピアネットワークである、請求項1に記載の方法。
  7. 前記デバイスが、ワイヤレス通信ネットワーク上のハードウェアデバイスである、請求項1に記載の方法。
  8. 前記順序付けることが、前記デバイスのすべてのうちの少なくとも一部に関する前記階層的なハッシュ値を前記デバイスのうちの1つにおけるフィギュアテーブル内に順番に格納することを含む、請求項1に記載の方法。
  9. 前記デバイスのそれぞれが、前記ユビキタスコンピューティング環境内の所定の数の他のデバイスに関する前記順序付けられた階層的なハッシュ値およびIPアドレスを含むフィギュアテーブルを格納する、請求項1に記載の方法。
  10. 前記ハッシュされた検索基準が、検索の対象となるデバイスの機能名および1つまたは複数の説明的な属性の基礎ハッシュ表現の連結を含む、請求項1に記載の方法。
  11. 前記検索することが、
    求められているデバイスの少なくとも説明的な機能および少なくとも1つの説明的な属性をそれぞれの事前設定されたデータフィールド内に受け取ることと、
    前記それぞれの事前設定されたデータフィールドのうちのそれぞれをハッシュすることと、
    前記ハッシュされたデータフィールド同士を連結することと、
    前記連結されたハッシュされたデータフィールドを前記デバイスのうちの少なくとも一部に対応する前記階層的なハッシュ番号へとマップすることと
    を含む、請求項1に記載の方法。
  12. 実行されたときに、
    非集中型コンピューティング環境内のデバイスの属性を受け取ることと、
    前記属性を個々にハッシュすることと、
    前記ハッシュされた属性同士を前記デバイス用として結合することと、
    前記ハッシュされた属性を所定の数の他のデバイスの属性との関連から順序付けることと、
    前記非集中型コンピューティング環境内の前記残りのデバイスのうちの少なくとも一部に関する前記順序付けられたハッシュ属性を格納することと、
    ハッシュされた検索基準を受け取ることと、
    前記受け取られたハッシュ検索基準を、前記非集中型コンピューティング環境上のデバイスのうちの前記一部のデバイスに関する前記格納されたハッシュ属性へとマップすることと
    を1つまたは複数のプロセッサに行わせるコンピュータ実行可能命令を格納しているコンピュータ可読媒体。
  13. 前記格納されたコンピュータ実行可能命令が、前記非集中型コンピューティング環境内の複数のデバイス上に常駐しているソフトウェアクライアント内に含まれている、請求項12に記載のコンピュータ可読媒体。
  14. 前記受け取られる属性が、前記デバイスの機能名および少なくとも1つの説明的な属性を含み、
    さらに、前記属性を個々にハッシュすることを前記1つまたは複数のプロセッサに行わせる前記コンピュータ実行可能命令が、前記受け取られる属性のそれぞれに関するそれぞれのデータフィールド上で基本ハッシュ関数を実行することを前記1つまたは複数のプロセッサに行わせる、請求項12に記載のコンピュータ可読媒体。
  15. 前記ハッシュされた属性を順序付けることを前記1つまたは複数のプロセッサに行わせる前記コンピュータ実行可能命令が、配布されたテーブル内の前記結合されたハッシュされた属性を、前記非集中型コンピューティング環境内の前記残りのデバイスのうちの少なくとも一部の前記結合されたハッシュされた属性とともに編成することを前記1つまたは複数のプロセッサに行わせる、請求項12に記載のコンピュータ可読媒体。
  16. 前記格納されたコンピュータ実行可能命令が、前記非集中型コンピューティング環境内の複数のデバイス上に常駐しているソフトウェアクライアント内に含まれており、
    さらに、前記ソフトウェアクライアントが常駐している前記非集中型コンピューティング環境内のすべてのデバイスが、配布されたテーブルを格納しており、その中には、前記非集中型コンピューティング環境内の前記それぞれのデバイスおよび前記残りのデバイスのうちの少なくとも一部の前記ハッシュされた属性およびIPアドレスが格納されている、請求項12に記載のコンピュータ可読媒体。
  17. 実行されたときに、
    前記格納された順序付けられたハッシュ属性のうちの1つに対応する前記非集中型コンピューティング環境内のデバイスであって、その格納されたハッシュ属性が、前記受け取られたハッシュ検索基準にマッチするデバイスを識別すること
    を前記1つまたは複数のプロセッサに行わせるさらなるコンピュータ実行可能命令を格納している、請求項12に記載のコンピュータ可読媒体。
  18. 実行されたときに、
    前記格納された順序付けられたハッシュ属性のうちの1つに対応する前記非集中型コンピューティング環境内のデバイスであって、その格納されたハッシュ属性が、前記受け取られたハッシュ検索基準に最も近く一致するデバイスを識別すること
    を前記1つまたは複数のプロセッサに行わせるコンピュータ実行可能命令を格納している、請求項12に記載のコンピュータ可読媒体。
  19. 前記格納されたコンピュータ実行可能命令が、前記非集中型コンピューティング環境内の複数のデバイス上に常駐しているソフトウェアクライアント内に含まれており、
    前記コンピュータ可読媒体が、実行されたときに、前記受け取られたハッシュされた検索基準を、前記ソフトウェアクライアントが常駐している前記非集中型コンピューティング環境内の前記デバイスのうちの別のデバイスに送信することを前記1つまたは複数のプロセッサに行わせるさらなるコンピュータ実行可能命令を格納している、請求項12に記載のコンピュータ可読媒体。
  20. 実行されたときに、
    ピアツーピアコンピューティング環境内のデバイスの説明的な属性を受け取るためのデバイス記述データフィールドを有するインターフェースを表示することと、
    前記それぞれのデバイス記述データフィールド内に入力されたそれぞれの説明的な属性をハッシュすることと、
    前記ハッシュされた説明的な属性同士を連結することと、
    前記連結されたハッシュされた説明的な属性が、前記クライアントにおけるフィギュアテーブルに格納されているいずれかのハッシュされた文字列にマッチするかどうかを判定することと
    を1つまたは複数のプロセッサに行わせるコンピュータ実行可能命令を格納している、クライアントソフトウェアアプリケーション。
  21. 前記デバイス記述データフィールドが、求められているデバイスの機能名および少なくとも1つの説明的な属性を受け取るように事前設定されている、請求項20に記載のクライアントソフトウェアアプリケーション。
  22. それぞれの説明的な属性をハッシュすることを前記1つまたは複数のプロセッサに行わせる前記コンピュータ実行可能命令がさらに、前記デバイス記述データフィールドのうちの空のフィールドに所定の値を記入することを前記1つまたは複数のプロセッサに行わせる、請求項20に記載のクライアントソフトウェアアプリケーション。
  23. 前記クライアントにおける前記フィギュアテーブルが、前記ピアツーピアコンピューティング環境内の所定の数のデバイスの説明的な属性およびIPアドレスのハッシュされた文字列を含む、請求項20に記載のクライアントソフトウェアアプリケーション。
  24. 判定することを前記1つまたは複数のプロセッサに行わせる前記コンピュータ実行可能命令がさらに、前記連結されたハッシュされた説明的な属性を、前記ソフトウェアアプリケーションが常駐している前記ピアツーピアコンピューティング環境内の前記デバイスのうちの別のデバイスに送信することを前記1つまたは複数のプロセッサに行わせる、請求項20に記載のクライアントソフトウェアアプリケーション。
JP2013542331A 2010-12-17 2010-12-17 ユビキタスコンピューティング環境におけるデバイスの発見 Pending JP2014500551A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2010/079911 WO2012079240A1 (en) 2010-12-17 2010-12-17 Device discovery in a ubiquitous computing environment

Publications (1)

Publication Number Publication Date
JP2014500551A true JP2014500551A (ja) 2014-01-09

Family

ID=46243982

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013542331A Pending JP2014500551A (ja) 2010-12-17 2010-12-17 ユビキタスコンピューティング環境におけるデバイスの発見

Country Status (5)

Country Link
US (1) US8850021B2 (ja)
JP (1) JP2014500551A (ja)
KR (1) KR101540868B1 (ja)
CN (1) CN103229163B (ja)
WO (1) WO2012079240A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016153976A (ja) * 2015-02-20 2016-08-25 日本電信電話株式会社 プログラムおよびクラスタシステム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819127B1 (en) 2013-04-12 2014-08-26 Fmr Llc Ensemble computing
GB2532988B (en) 2014-12-04 2021-03-03 Arm Ip Ltd Method and device for scanning for data processing devices
CN108563589A (zh) * 2018-04-08 2018-09-21 深圳市沃特沃德股份有限公司 终端设备获取输入设备类型的方法及装置
KR102427443B1 (ko) * 2018-05-29 2022-07-29 삼성에스디에스 주식회사 디바이스 식별 장치 및 그 방법
US11334546B2 (en) * 2019-05-31 2022-05-17 Cisco Technology, Inc. Selecting interfaces for device-group identifiers

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008269141A (ja) * 2007-04-18 2008-11-06 Nec Corp オーバレイ検索装置、オーバレイ検索システム、オーバレイ検索方法およびオーバレイ検索用プログラム
JP2009134341A (ja) * 2007-11-28 2009-06-18 Mitsubishi Electric Corp ピア検索方法および通信装置
WO2009140821A1 (en) * 2008-05-21 2009-11-26 Hong Kong Applied Science & Technology Research Institute Co., Ltd Device and method for participating in a peer-to-peer network
JP2010199842A (ja) * 2009-02-24 2010-09-09 Nippon Telegr & Teleph Corp <Ntt> キャッシュ設計システムと方法およびプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1107512A1 (en) * 1999-12-03 2001-06-13 Sony International (Europe) GmbH Communication device and software for operating multimedia applications
US20080294639A1 (en) * 2007-05-21 2008-11-27 American Express Travel Related Services Company, Inc. System and Method For Delegating Program Management Authority
US7961708B2 (en) * 2007-07-10 2011-06-14 Qualcomm Incorporated Coding methods of communicating identifiers in peer discovery in a peer-to-peer network
CN101640623A (zh) * 2008-07-31 2010-02-03 国际商业机器公司 在对等网络中搜索资源的方法和设备
CN101399778B (zh) * 2008-10-30 2011-08-31 北京邮电大学 一种无线对等网络中节点的组织方法及资源发现方法
US8645543B2 (en) * 2010-10-13 2014-02-04 International Business Machines Corporation Managing and reconciling information technology assets in a configuration database

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008269141A (ja) * 2007-04-18 2008-11-06 Nec Corp オーバレイ検索装置、オーバレイ検索システム、オーバレイ検索方法およびオーバレイ検索用プログラム
JP2009134341A (ja) * 2007-11-28 2009-06-18 Mitsubishi Electric Corp ピア検索方法および通信装置
WO2009140821A1 (en) * 2008-05-21 2009-11-26 Hong Kong Applied Science & Technology Research Institute Co., Ltd Device and method for participating in a peer-to-peer network
JP2010199842A (ja) * 2009-02-24 2010-09-09 Nippon Telegr & Teleph Corp <Ntt> キャッシュ設計システムと方法およびプログラム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CSNG200900266071; 齋藤 真衣: '対話的な絞込み操作を考慮したP2Pによる地球流体データアーカイブサーバの横断検索' 電子情報通信学会 第19回データ工学ワークショップ論文集 , 20080407, 電子情報通信学会データ工学研究専門委員会 *
JPN6014015496; 齋藤 真衣: '対話的な絞込み操作を考慮したP2Pによる地球流体データアーカイブサーバの横断検索' 電子情報通信学会 第19回データ工学ワークショップ論文集 , 20080407, 電子情報通信学会データ工学研究専門委員会 *
JPN6015009809; 齋藤 真衣: '対話的な絞込み操作を考慮したP2Pによる地球流体データアーカイブサーバの横断検索' 電子情報通信学会 第19回データ工学ワークショップ論文集 , 20080407, 電子情報通信学会データ工学研究専門委員会 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016153976A (ja) * 2015-02-20 2016-08-25 日本電信電話株式会社 プログラムおよびクラスタシステム

Also Published As

Publication number Publication date
US20120179691A1 (en) 2012-07-12
US8850021B2 (en) 2014-09-30
CN103229163B (zh) 2016-08-10
WO2012079240A1 (en) 2012-06-21
KR101540868B1 (ko) 2015-07-30
KR20130056315A (ko) 2013-05-29
CN103229163A (zh) 2013-07-31

Similar Documents

Publication Publication Date Title
US8549010B2 (en) Method and apparatus for providing distributed key range management
JP5544431B2 (ja) スケーラブルなデータ構造を利用するための方法および装置
US7664742B2 (en) Index data structure for a peer-to-peer network
WO2019200714A1 (zh) 服务器连接方法、计算机可读存储介质、终端设备及装置
US20140067758A1 (en) Method and apparatus for providing edge-based interoperability for data and computations
JP2014500551A (ja) ユビキタスコンピューティング環境におけるデバイスの発見
US20120117067A1 (en) Method and apparatus for providing a range ordered tree structure
WO2006062628A1 (en) Routing a service query in an overlay network
CN109471838B (zh) 目录文档的操作方法、装置、电子设备、可读存储介质
US8208477B1 (en) Data-dependent overlay network
US20140244794A1 (en) Information System, Method and Program for Managing the Same, Method and Program for Processing Data, and Data Structure
US20180241814A1 (en) A System, a Node, a Method in a Communication Network and a Computer Program and Corresponding Computer Program Product
JP2018049653A (ja) キャッシュ管理
JP7202558B1 (ja) ヒューマンサイバーフィジカル融合環境におけるデジタルオブジェクトアクセス方法及びシステム
CN115438016A (zh) 分布式对象存储中动态分片方法、系统、介质及设备
US20110016226A1 (en) Methods and Apparatus for Updating Index Information While Adding and Updating Documents in a Distributed Network
Kang et al. A Semantic Service Discovery Network for Large‐Scale Ubiquitous Computing Environments
JP2015508212A (ja) 効率的なアトミックアクセスのために最適化されたxmlファイル形式
JP2007328736A (ja) リソース検索システム
JP4494901B2 (ja) リソース検索方法およびリソース検索システム
Forsström Enabling Adaptive Context Views for Mobile Applications: Negotiating Global and Dynamic Sensor Information
CN117421380A (zh) 湖仓元数据标签创建方法、湖仓元数据标签查询方法
Smirnov et al. Context-aware smartspace: Reference model
Fredj Semantic-based middleware for IoT service search
Caron et al. Service discovery in a peer-to-peer environment for computational grids

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130605

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140414

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140701

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150209

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150311