(ドメイン名システム)
ドメイン名システム(DNS)は、インターネットに接続されるデバイス(ホストとも呼ばれる)についての情報の分散型データベースである。具体的には、DNSは、人間読み取り可能な名(ニーモニックデバイスとして使用される)とIPアドレス(インターネットルーティングにおいて使用される)との間でマップするための情報を含む。
・ 例1:ウェブサイト名「www.google.com」は、IPアドレス「74.125.224.72」にマップする。
・ 例2:電子メールアドレス「john.smith@BestCompany.com」は、IPアドレス「208.49.79.242」にマップする。
この情報は、DNSリソース記録(RR)と称される、DNSデータベースエントリ内に記憶される。DNSサーバは、DNS記録内に記憶されるインターネット接続デバイス(ホスト)についての情報を与えることによって、クライアントクエリに応答する。最も一般的クエリは、名前をIPアドレスに変換することである。この機能は、DNS名前解決と称される。技術的に、解決される名前は、FQDNと称される。本明細書で議論されるであろう、他のタイプの可能なDNSクエリも存在する。
DNSのための半手動スキームは、最初は、機能していたが、インターネットに接続されるホストの数が指数関数的に成長し始めると、良好に対応しなくなった。調査が、したがって、より自動的かつスケーラブルなソリューションを決定するために行われ、DNSを定義する重要となる一連のIETF規格をもたらした。RFC1034およびRFC1035(参照することによってその全体として組み込まれる)を参照されたい。
DNSは、今日、世界中に位置する多くのコンピュータサーバにわたって拡散される分散型データベースである。データベースは、ドメイン名の概念について編成される(例えば、「.com」は、ドメイン名の一部であり、「www.BestCompany.com」は、FQDNである)。各ドメイン名は、本質的に、ドメイン名空間と呼ばれる大きな反転ツリー内のパスである(図1参照)。ドメインは、空間全体のサブツリーである。ツリー構造は、上位に単一(論理)ルートを有する。ツリーの深度は、127レベルに限定される。ツリー内の各ノードは、最大63文字の長さであり得るテキストラベル名を有する。ドメイン名は、常時、リーフノードからルートに向かって読み取られ、ドットが、パス内の名前を分離する。したがって、例えば、FQDN「www.BestCompany.com」に対して、「.com」は、ツリーの上位にあり、上位レベルドメイン(TLD)と称される。次いで、「.BestCompany」は、ツリーの次の下層にあり、「www」は、ツリーの下位リーフであろう。
前述のように、DNSデータベースエントリは、RRと呼ばれるフォーマットで記憶される。RRは、ドメインまたは特定のドメイン名(FQDN)によって編成される。FQDNSは、最終的に、物理的ネットワークデバイスに関連付けられる一方、ドメイン(例えば、「.com」)は、デバイスのグループを識別するために使用される。それらが含む、デバイスに関連する情報のタイプによって分類される種々のタイプのRRが存在する。いくつかの例示的DNS RRが、表1に列挙される。
DNSクエリおよび応答は、典型的には、直接、ポート53上のUDPパケットを経由して、送信される。TCPトランスポートオプションも、存在するが、典型的には、非常に短いトランザクションであるDNSクエリ/応答のための推奨されるオプションではない。DNSは、図2に示されるように、3つのコンポーネントを用いて、単一メッセージフォーマットを定義する。
3つのコンポーネントは、ヘッダ部分105と、質問部分107と、回答部分109とである。ヘッダ部分105に関して、固定された12バイトヘッダが、メッセージのタイプおよび可変部分のサイズを記述するフィールドとともに存在する。質問部分107は、DNS名サーバに送信される情報のための1つ以上のクエリを含む。回答部分109は、回答111、権限112、および追加情報113等の質問部分107内のクエリ/質問への回答として、3つのサブコンポーネント内に1つ以上のRRを含む。回答111は、質問に直接回答する、RRである。権限112は、解決プロセスを継続するために使用され得る正式DNS名サーバを指し示すRRである。追加情報113は、元の質問に厳密に回答する必要はない、クエリに関連する追加情報を含むRRである。
図3は、ユーザがウェブブラウジングを行うことによって開始されるDNSルックアップのための典型的メッセージシーケンス略図を図示する。ステップ121では、ラップトップ130におけるユーザが、最新のGoogleビジネスニュースを読むことを欲する。この情報は、ラップトップ130のブラウザ131に関連付けられたユーザインターフェースを通して入力される。ブラウザ131は、次いで、「google.com」のIPアドレスを入手することが必要であることを認識する。したがって、ブラウザ131は、この要求を用いて、ラップトップ130内のDNSクライアント132にコンタクトする。ステップ122では、DNSクライアント131が要求を入手すると、FQDN=「google.com」を伴うDNSメッセージクエリを形成する。このクエリは、インターネット120を経由して、デフォルトDNSサーバ133に送信される。DNSサーバ133のIPアドレスは、DNSクライアント132内ですでに利用可能であり得る。DNSサーバ133のIPアドレスは、ラップトップ内で事前にプロビジョニングされていることも、ラップトップブートアッププロセスにおいてDHCP等のプロトコルによって読み出されていることもある。
ステップ123では、DNSサーバ133は、ステップ122の受信されたクエリに基づいて内部ルックアップを行い、「.com」ドメインのサーバがDNSサーバ134であることを決定する。したがって、DNSメッセージ(RRを含む)が、DNSクライアント132に返信され、同一クエリを用いて反復的検索を行い、DNSサーバ134にコンタクトすべきであることを知らせる。ステップ124では、DNSクライアントは、ステップ122の類似情報を伴うDNSメッセージをDNSサーバ134に送信する。この例では、DNSサーバ134は、正式ドメインサーバであり、したがって、さらなる反復は、必要ない。ステップ125では、DNSサーバ125は、「A」RRを含むステップ124への応答を伴うDNSメッセージを送信し、「A」RRは、要求される「google.com」サーバのIPアドレス(74.125.224.72)を含むであろう。ステップ126では、DNSクライアント132は、DNSメッセージからの「google.com」IPアドレスをブラウザ131に送信する。ステップ127では、ブラウザ131は、最新のビジネスニュースであり得るそれが欲するコンテンツを読み出すために、HTTP入手要求を直接「google.com」IPアドレス(74.125.224.72)に送信する。ステップ128では、「google.com」サーバは、適切な最新のビジネスニュースコンテンツを伴うHTTP応答で応答する。
(DNS−SD)
DNS−サービス発見(DNS−SD)は、近年DNSに追加された比較的に新しい特徴である。DNS−SDは、通常の名前解決機能に加え、利用可能なローカルネットワークIPベースのサービスを発見するためのDNSの使用を指す。例えば、IPを介してアクセスされることができるローカルネットワーク内の利用可能なプリンタに対してDNS−SDにクエリすることである。具体的には、クライアントが探しているサービスのタイプ(例えば、印刷)が与えられると、この機構は、クライアントが、標準的DNS−クエリを使用して、所与のドメイン内のその所望のサービスのデバイス(名前付きインスタンス)のローカルリストを発見することを可能にする。IETF標準化ソリューションの商業的先駆者は、Apple Computerであり、「AppleTalk」と称される(「Bonjour」とも称される)。RFC676(参照することによってその全体として組み込まれる)を参照されたい。
IETFでは、IP「サービス」は、サービス名(例えば、FTP、HTTP)と、トランスポートプロトコル(例えば、UDP、TCP)と、トランスポートプロトコルのポート番号とを含む3つの情報の組み合わせによって認識される。公知のインターネットIPサービスの広範なレジストリは、IETFによってサービス名およびトランスポートプロトコルポート番号レジストリ内に維持される。http://www.iana.org/assignments/service−names−port−numbers/service−names−port−numbers.xhtml(参照することによってその全体として組み込まれる)を参照されたい。
技術的に、DNS−SDは、2つの機能から成る。第1の機能は、マルチキャストDNS(mDNS)と称される。mDNSは、ローカルIPマルチキャスト機能性を利用することによって、任意の従来のユニキャストDNSサーバなしにローカルネットワークDNS動作を行う能力を提供する。したがって、デバイスは、専用DNSサーバにクエリに応答することを要求する代わりに、直接、ローカルIPマルチキャストDNSクエリ自体に回答することができる(例えば、プリンタは、直接、印刷サービスを探しているマルチキャストDNSクエリに回答するであろう)。mDNSは、リンクローカルマルチキャストを使用して、デバイスがそれらのサポート/変更されるサービスを積極的に宣伝することも可能にする。加えて、mDNSは、任意の年会費を支払う必要なく、かつ、権限委譲を設定する必要なく、または別様に従来のDNSサーバがそれらの名前に対して回答するように構成する必要なく、DNS名前空間の一部がローカル使用自由であること(例えば、新しい「.local」ドメイン)を指定する。RFC6762(参照することによってその全体として組み込まれる)を参照されたい。
第2の機能は、それ自体が(やや紛らわしいが)DNS−SDと呼ばれる。それは、RFC6763(参照することによってその全体として組み込まれる)に説明されており、サービス発見クエリをサポートするために、DNS記録構造内で要求される変更(例えば、古典的名前解決クエリよりサポートするようにDNSを構成すること)を規定する。それは、所与のドメインの特定のサービスに対してクエリするために、純粋なユニキャストモードでも使用されることができる。しかしながら、このユニキャストモードは、今日では、一般的サービス発見機能として使用されていない。
DNS−SDおよびmDNSの組み合わせは、ネットワーク内の動的マルチキャストサービス発見のコンテキストで使用されるとき、典型的には、単に「DNS−SD」と称される。サービスの発見は、必要に応じて、クライアントがマルチキャストクエリを直接送信し、要求されるIPベースのサービスをサポートするデバイスから(ユニキャスト)応答を直接受信することによって行われる。このサービス発見は、ローカルネットワークのために機能する(例えば、複数のLANを横断してサービスを動的に発見することができない)。
図4は、典型的DNS−SDメッセージフローを図示する。ステップ141では、ユーザが、カラー文書をワードプロセッサ136から印刷することを欲する。ワードプロセッサ136は、カラープリンタ(例えば、カラープリンタ139)のIPアドレスを入手する必要があることを認識する。したがって、ワードプロセッサ136は、この要求を伴うメッセージをラップトップ130内のDNSクライアント132に送信する。ステップ142では、DNSクライアント132が要求を入手すると、「カラープリンタ」を探していることを示すDNS−SD(マルチキャスト)メッセージクエリを形成すべきであることを決定する。このクエリは、IPマルチキャストによって、ラップトップ130が接続されるLAN140を経由して送信される。IPマルチキャスト機構は、DNS−SDクエリをLAN140に接続される全デバイスに自動的に配布するであろう(メッセージは、LAN140の範囲を超えないであろう)。標準的DNSクエリ(UDPポート53を経由して送信される)と異なり、マルチキャストDNS−SDクエリは、UDPポート5353を経由して送信される。さらに、マルチキャストDNS−SDドメインは、「ColorPrinter.local」等の「.local」添字で終了する、FQDNを有することとして規定される。
ステップ143では、LAN140内の複数のデバイスが、DNS−SDマルチキャストクエリを受信するが、ここでは、カラープリンタ139のみが、一致するサービスタイプを有する。カラープリンタ139は、要求されるサービスサーバのIPアドレス(例えば、192.168.0.11)を含むDNS−SDメッセージ(ユニキャスト)応答を送信する。ステップ144では、ラップトップ130のDNSクライアント132は、カラープリンタ139のIPアドレスをワードプロセッサ136に送信する。ステップ145では、ワードプロセッサ136は、HTTP Post要求を直接カラープリンタ139のIPアドレスに送信し、添付が印刷されることを要求する。ステップ146では、カラープリンタ139は、正常HTTP応答コード(201)で応答し、添付が正常に印刷されたことを示す。
前述のように、DNS−SDは、主に、ローカルネットワーク内のIPベースのサービスを発見するために使用される。DNS−SDは、通常、ポインタ記録(PTR)と、サービスロケータ記録(SRV)と、テキスト記録(TXT)とを含む3つの標準的DNS RRの組み合わせを使用して、サービスを識別する。DNS−SD検索は、クライアントが、所与のドメインに対して、PTR記録内の特定のサービスタイプを探すことを検索パラメータにおいて規定するDNSクエリを送信することを伴う。そして、DNS−SDサーバは、サービスインスタンスが到達し得る標的デバイス(ホスト)名およびポート(SRV RR内)を与えるゼロ以上のSRV/TXTペアの組と、付属情報(TXT RR内)とを返す。そして、標的デバイスのIPアドレスは、関連付けられた「A」または「AAAA」記録から得られることができる。
(ハイブリッドDNS−SDプロキシ)
最近の草案であるハイブリッドユニキャスト/マルチキャストDNSベースのサービス発見は、ハイブリッドプロキシを利用して、IPベースのサービスの選択的広域発見を可能にすることを提案している。http://tools.ietf.org/html/draft−ietf−dnssd−hybrid−00(参照することによってその全体として組み込まれる)を参照されたい。具体的には、草案は、mDNSを使用して、ローカルネットワーク内のDNS−SDサービスを発見し、応答を集約し、異なるLAN内の要求側クライアントに回答するであろうプロキシを提案している。これは、DNSにおける命名システムに重要な変更を要求するであろう(非常に議論の余地のあり、未だIETFにおいて合意されていない)。現在、DNSドメイン名は、前述のように、最終的には、所与のデバイスに関連付けられる。ハイブリッドユニキャスト/マルチキャストDNSベースのサービス草案が承認される場合、それは、LAN(例えば、ローカルリンク)が、所与のサービスを検索するためにそれはクエリされることができるように、個々のデバイスの代わりに、命名される(例えば、「4thFloor.Building1.companyX.com」)ことも可能にするであろう。
図5は、ハイブリッドDNS−SDプロキシシナリオのための例示的フローを図示する。ステップ151では、クエリが、カラープリンタを検索するために、特定の「命名された」LAN(例えば、3rd floor of Best Company)に送信されることが要求される。ステップ152−154では、通常の(ユニキャスト)DNSクエリ機構が、クエリが所与のLAN140(例えば、3rd floor of Best Company)のためのDNS−SDプロキシ150に転送されることをもたらすであろう。ステップ155−156では、DNS−SDプロキシ150は、mDNS要求をトリガする。LAN140内のデバイスは、DNS−SDマルチキャストクエリを受信するが、(カラープリンタの)一致するサービスタイプを有する、カラープリンタ139のみが、回答するであろう。カラープリンタ139は、要求されるサービスサーバのIPアドレスを含むDNS−SDメッセージ(ユニキャスト)応答を送信する。ステップ157−158では、IPアドレスを伴うDNS応答が、ワードプロセッサ136に中継される。ステップ159では、ワードプロセッサ136は、次いで、HTTP Post要求を直接カラープリンタ139のIPアドレスに送信し、添付が印刷されることを要求する。
DNS−SDは、現在、ローカルネットワーク内のIPベースのサービス(例えば、プリンタ、ファッックス等)を発見および宣伝することができるが、LANを横断して機能するシステムの必要性が存在する。
本明細書に開示されるのは、IoTシナリオのためにローカルネットワークを超えて機能するDNSサービス発見(DNS−SD)である。DNS−SDは、現在、ローカルネットワーク内のIPベースのサービス(例えば、プリンタ、ファックス等)を発見および宣伝することができるが、LANを横断して機能しない。しかしながら、多くのIoTシナリオでは、これは、不十分である。サービス名の例は、「温度センサ」または「ライトスイッチ」もしくは「ドアロック」であろう。他のサービスも、RFC7252に記載されるようなトランスポートプロトコル(例えば、CoAPを使用するIoTサービスのためのUDP)およびポート番号(例えば、デフォルトUDP CoAPポートは、5683である)に関して本明細書で議論される。
従来のDNS−SD技術のいくつかの制限または限定が、以下に議論される。従来のDNS−SDは、DNSサーバに直接クエリし、サービスを検索する厳密なユニキャスト方法をサポートし(例えば、mDNSは要求されない)、LANを横断して機能することができる。しかしながら、このユニキャストアプローチは、複数の理由から、汎用サービス発見アプローチと考えられない。第1の理由は、所与のサービスを検索するクライアントが検索すべきドメインを決定し得る方法に関連付けられた問題に関わるものである。ユニキャストのために、検索すべきドメインを把握する必要がある。多くのまたは全てのドメインを検索する総当たりアプローチは、非常に多くの信号伝達と、より重要なこととして、サービスを見つけることにおいて潜在的に有意な遅延をもたらすであろう。「現在の」ドメインを検索する単純なアプローチは、サービスがそこに登録されていない場合、機会の逸失をもたらし得る。
第2の理由は、デバイスがそのサポートされるサービスについての情報でDNSサーバを自動的に更新できる方法に関連付けられた問題に関わるものである。DNS RRの更新は、クライアントと、クライアントが更新するDNSサーバとの間の非常に複雑なセキュリティアソシエーションを要求する。この強固なセキュリティアソシエーションは、例えば、それがセキュリティ証明書の手動構成を要求し得るので、多くの場合、プリンタ、IoTデバイス等の単純な既製デバイスでは可能ではない。多くの場合、ヒトオペレータがこの情報の全てをDNSサーバに手動で入力することは、サービスおよびデバイスのスケールならびに予期される動的性質により、実践的であるとは考えられない。
従来のDNS−SDは、サーバにクエリするためのmDNS方法をサポートする。従来のDNS−SDに関連付けられたmDNSは、ローカルリンク内のサービス発見のために良好に機能すると考えられ得るが、ローカルリンク外では機能しないように明示的に制約されている。この制約の理由は、mDNS機能がIETF(RFC6763の第22節参照)によってローカルリンクIPマルチキャストアドレスのためのみに配分されているからである。概して、サービス発見のためのLANを超えたマルチキャストは、多くのシナリオにおいて、有意なネットワーク輻輳を生じさせることが予期され、したがって、IETFによって明示的に禁止されている。本明細書に議論される場合、ローカルリンクは、典型的には、LANまたはLANのサブセクションに匹敵する。リンクは、典型的には、Ethernet(登録商標)またはWiFi等のそれに接続される複数のデバイスで共有される伝送媒体である。多くの場合、リンクは、単層2(ブロードキャスト)ドメインになる(但し、ブリッジのようなL2デバイスによって拡張され得る)。典型的には、ローカルリンクは、パケットを中継するために、層3IPルータを要求しない。本書では、簡単のために、用語「LAN」または「ローカルネットワーク」は、用語「ローカルリンク」と同義的に使用される。
IoTは、それらが標準化されたプロトコルを使用して全体的インターネットの中に完全に統合され得るほどの現在の主に独占的M2Mシステムの進化を説明するために作られた用語である。本明細書に開示されるのは、DNS−SDがIoTシナリオのためにローカルネットワークを超えて機能するようにDNS−SDを使用するアプローチ(広域サービス発見)である。ローカルネットワークを超えて発見を要求する、多くのIoTシナリオでは、現在のDNS−SDは、十分ではない。例えば、スマートグリッド(例えば、ネットワーク化された電気事業)オペレータが、IoTデバイスを都市を横断して展開する場合、オペレータは、その展開全体を横断して(例えば、複数のLANを横断して)サービスの共通発見を欲するであろうが、それは、今までのところ満たされることが可能ではないニーズである。
「Extensions for Scalable DNS SD−Charter for WG」と題されたIETF文書は、この問題を明示的に規定しており、「DNS−SD/mDNSプロトコルスイートは、自宅、キャンパス、および企業ネットワークを含む、多くのシナリオにおいて使用される。しかしながら、ゼロ構成mDNSプロトコルは、設計上、リンクローカルマルチキャスト範囲に制約され、したがって、遠隔リンク上のサービスを発見するために使用されることができない」と述べている。http://datatracker.ietf.org/wg/dnssd/charter(参照することによってその全体として組み込まれる)を参照されたい。
前述の問題に対処することを試みるハイブリッドDNS−SDプロキシは、必要に応じて(例えば、DNS−SDクエリ時)頻繁なmDNSマルチキャストトラフィックを開始することを含む短所を有する。頻繁なマルチキャストは、到達すべきより多くのデバイスまたはより多くのネットワークが存在し、それが、より高いオーバーヘッドトラフィックを生じさせるので、IoT環境に良好に対応しない。IoTデバイスの多くは、多くの場合、スリープ中であることもあり、したがって、マルチキャストDNS−SDクエリの多くを取りそこなうこともある。さらに、ハイブリッドDNS−SDプロキシは、IoT展開のために最適化されたIoT特定のアーキテクチャ(例えば、RD)およびIoT特定のプロトコル(例えば、CoAP)を活用せず、故に、これらのIoT特定のノードおよびプロトコルと比較して、より高いオーバーヘッドおよび非効率性を生じさせる。
したがって、従来のDNS−SDサービス発見アプローチは、互いにある論理的関係(例えば、ある限界内の広域サービス発見)を有する複数のLANを横断してサービス発見(DNS−SD)を可能にするより効率的機構をサポートするように有意に改変され得る。
本明細書で議論される広域サービス発見は、リソースディレクトリ(RD)を活用し得る。(RD)は、IoT環境のために、他のサーバ上に保持されるリソースの記述(例えば、URI)をホストするサーバである。CoREリソースディレクトリhttp://tools.ietf.org/html/draft−ietf−core−resource−directory−02(以降、CoREリソースディレクトリ)(参照することによってその全体として組み込まれる)を参照されたい。リソースディレクトリは、集中ルックアップがそれらのリソースに対して行われることを可能にする。通常のGoogleタイプウェブ検索がIoT環境内で効率的に機能しないであろうことを仮定する。代わりに、RDは、デバイスがそのリソースならびに関連メタデータを登録することを可能にするRESTful CoAPインターフェースをサポートする。デバイスのリソース間の関係も、記憶され得る。別個のRESTfulインターフェースは、第三者クライアントが、RDを検索し、その所与の検索基準を満たすリソースを見つける(発見する)ことを可能にする。第三者クライアントは、RDによって検索結果が提供されると、リソース(URI)に直接進むことができる。
CoREリソースディレクトリは、両手段によるCoAPサービスの発見を可能にする、RDフィールドと従来のDNS−SDフィールドとの単純マッピングを定義する。具体的には、それは、特別なクライアントが、最初に、RDからCoAPサービスの標準的RDルックアップを行うことができることを提案する。そのクライアントは、次いで、応答を行い、従来のDNS−SD内に情報のユニキャスト登録を行うことができる。前述のように、これは、複雑なセキュリティアソシエーションをDNSインフラストラクチャと確立することが可能なクライアントを要求する。したがって、クライアントは、単純IoTデバイスであることができないが、特別な目的管理構成クライアントである可能性が最も高いであろう。
図6は、例示的広域サービス発見システム160を図示する。LAN170、LAN175、およびLAN180は、それぞれ、ゲートウェイ171、ゲートウェイ176、およびゲートウェイ181を含む。LAN170等の各LANは、ゲートウェイ(例えば、ゲートウェイ171)とローカルで通信可能に接続されるIoTデバイス(例えば、IoTデバイス172)と、インターネット162と通信可能に接続されるゲートウェイとを含み得る。広域サービス発見システム160におけるゲートウェイ171等のゲートウェイは、CoAP RDまたは似た機能性をサポートし得る。インターネット162は、DNSサーバ161およびIoTサービスクラウド166と通信可能に接続される。IoTサービスクラウド166は、他のサービスの中でもとりわけ、ビッグデータ分析163、記憶装置164、およびIoT DNS−SDサーバ165を含み得る。システム160の種々のLAN内のIoTデバイスは、第三者IoTデバイスサービス発見サーバ(例えば、IoT DNS−SDサーバ165)によって管理される仮想発見プロセス内で協力し得る所有者またはオペレータ(例えば、事業体、公益事業等)を有し得る。標準的DNS名前解決は、依然として、インターネット162の既存の(「通常」)DNSインフラストラクチャによって行われ得る。LAN170およびLAN180は、同一仮想発見ゾーン167内にある。
本明細書により詳細に議論されるように、DNS−SDクエリは、2ステッププロセスで行われ得る。最初に、同一LAN内でサービスをローカルで発見することが試みられる。これが成功しない場合、クエリは、IoT DNS−SDサーバ165にルーティングされることができる。このクラウドベースのIoT DNS−SDサーバ165は、仮想発見ゾーン167内のIoTデバイスに対するサービス発見クエリに応答することができる。
本明細書に議論されるように、広域サービス発見システム160は、LANを超えて確立される仮想発見ゾーンを可能にする。この例では、LAN170およびLAN180は、仮想発見ゾーン167の中に一緒にスティッチングされる2つの物理的に別個の(非連続的)LANである。仮想発見ゾーン167では、サービス発見は、ゾーン全体内の全デバイスにわたって可能にされ得る。ゾーンは、恣意的サイズであり、要求に応じた数のLANを包含し得る。1つのみの仮想発見ゾーン167が、図6に示されるが、複数の仮想発見ゾーンが定義されることもできる(通常、そうなるであろう)。例えば、図示されないが、LAN175およびLAN180は、別個の仮想発見ゾーン内にあり得る。
図6を継続して参照すると、サービスは、所与のIoT仮想発見ゾーン167外の発見のためにエクスポーズされない。仮想発見ゾーンは、重複および非重複の両方であり得る。したがって、2つの重複ゾーンの一部であるサービスが、それらのゾーンの各々において発見可能であり得る。別の例では、所与の仮想発見ゾーンは、複数の古典的mDNSドメインを包含し得る。古典的mDNSドメインは、単一サブネットまたはLANである。所与の仮想発見ゾーンは、典型的には、複数のLANを包含するであろう。
図7、図10、図11−図13、および他の図に図示されるステップを行うエンティティは、図15Cに図示されるもの等のデバイス、サーバ、またはコンピュータシステムのメモリに記憶され、そのプロセッサ上で実行するソフトウェア(例えば、コンピュータ実行可能命令)の形態で実装され得る論理エンティティであり得ることを理解されたい。すなわち、図7、図10、図11−図13、および他の図に図示される方法は、図15Cに図示されるデバイスもしくはコンピュータシステム等のコンピュータデバイスのメモリに記憶されるソフトウェア(例えば、コンピュータ実行可能命令)の形態で実装され得、そのコンピュータ実行可能命令は、コンピュータデバイスのプロセッサによって実行されると、図7、図10、図11−図13、および他の図に図示されるステップを行う。例では、M2Mデバイスの相互作用に関して以下にさらなる詳細を伴うが、図10のデバイス172は、図15AのM2M端末デバイス18上に常駐し得る一方、図10のIoT DNS−SDサーバ165は、図15AのM2Mゲートウェイデバイス14上に常駐し得る。
図7は、仮想発見ゾーン内のプリンタの発見のための例示的フローを図示する。ステップ191では、DNS−SDクエリが、IoTデバイス182からゲートウェイ181に送信される。IoTデバイス182は、自動車内に位置するコンピューティングデバイスであり得る。ステップ191のクエリは、ホームオフィスカラープリンタ(例えば、IoTデバイス172)を使用するための要求であり得る。ステップ192では、ゲートウェイ181は、LAN180を検索するが、要求されるサービスを見つけられない。ステップ193では、ゲートウェイ181は、ステップ192の結果に基づいて、IoT DNS−SDサーバ165にクエリすべきであることを決定する。ゲートウェイ181は、CoAP RDを含み得る。ステップ194では、ゲートウェイ181は、クエリをIoT DNS−SDサーバ165に送信する。クエリは、事実上、ステップ191のクエリを反映させ得る。ステップ194のこのクエリでは、それは、IoTデバイス172(例えば、ホームオフィスにおけるカラープリンタ)の場所を要求し得る。ステップ195では、IoT DNS−SDサーバ165は、ホームオフィスカラープリンタ(IoTデバイス172)がIoT DNS−SDサーバ165に登録されていることを決定し得る。ステップ196では、ゲートウェイ181は、IoTデバイス172のIPアドレスまたはIoTデバイス172の利用可能性を示す情報を含み得る、DNS−SD応答を受信する。ゲートウェイ181において受信されたIPアドレスは、公共の一意のIPアドレスであり得る。ゲートウェイ181は、ネットワークアドレス変換(NAT)を介して、公共のIPアドレスをプライベートIPアドレスに変換し得る。後の要求(例えば、ステップ198)は、デバイス間のIP通信を可能にするために、従来のNAT原理を使用するプライベートIPアドレスに対するものであり得る。他の従来のIP通信シナリオも、想定される。ステップ197では、ゲートウェイ181は、IoTデバイス182に、ステップ196において受信されたIPアドレスを送信する。ステップ198では、IoTデバイス182は、要求される文書を印刷するためのIoTデバイス172への要求データを送信する。ステップ198の要求は、添付を含む、CoAP POST要求であり得る。
図7のフローは、以下の使用例に関連し得る。車の運転者が、夕方、仕事後に自宅に向かっている。彼女は、帰宅後、重要な予算のスプレッドシートを精査する必要があることを思い出す。運転者は、次いで、車載コンピュータに、音声コマンドによって、ある文書を彼女の電子メールから彼女の「ホームオフィスカラープリンタ」に印刷するように命令する。車載コンピュータは、次いで、「ホームオフィスカラープリンタ」に対する標準的DNS−SD発見クエリを送信する。このプリンタは、車が接続されるLAN内で発見されない。(図7の191参照)。クエリは、次いで、車がクラウドDNS−SDサーバがその仮想発見ゾーンに接続される全ての他のデバイスを把握しているであろうことを把握しているので、車載IoTゲートウェイによって、セルラー接続を経由してIoTクラウドDNS−SDサーバに転送される。(図7のステップ194参照)。クラウドDNS−SDサーバでは、ホームオフィスカラープリンタは、以前に登録されており、したがって、クラウドDNS−SDサーバは、プリンタの要求される情報(IPアドレスを含む)を送信することによって、クエリに正常に回答する。(図7のステップ196および197参照)。車載コンピュータは、次いで、即座に、要求を直接自宅のプリンタに送信し、スプレーシートを印刷する(図7のステップ198参照)。
図7の議論を継続して参照すると、IoTデバイス172(例えば、プリンタ)に対するプライベートアドレスを有する中間ソリューションが、サポートされ得る。そのような状況では、プリンタに対して発見されるであろうIPアドレスは、実際には、ホームゲートウェイ(ゲートウェイ171)に割り当てられ、クラウドサーバ(IoT DNS−SDサーバ165)に登録されるであろう。ゲートウェイ171(または同様のデバイス)は、次いで、印刷要求を車から受信し(ステップ198において)、それをプリンタにローカルで割り当てられる内部(プライベート)IPアドレスに変換するであろう。これは、ネットワークアドレス変換(NAT)アプローチを利用する。例えば、ゲートウェイ171は、マッピングを認識し得る。他のデバイスは、ゲートウェイ171がサービスを提供していると考え得る。
図7の使用例は、特に、単純デバイスに対して、従来のDNS−SD技術を使用して効率的に遂行されないであろう。家庭用プリンタ等の単純デバイスは、とりわけ、費用、自宅所有者の複雑性、およびセキュリティリスクにより、公共のインターネットDNS記録に入力されることは稀である。ハイブリッドDNS−SDプロキシアプローチも、車の運転者が「自宅のプリンタ」の代わりに「任意のプリンタ」を単に規定した場合、移動中の車からクエリすべきDNS−SDプロキシが明白ではないであろうため、困難であろう。仮想発見ゾーンに対して、ドメインのゾーンは、ゾーン全体である。図9における説明に従って、現在のLANから開始するゾーン全体内での検索があることを意味する。
図8は、システム始動のために使用され得る、例示的方法200を図示する。ステップ201では、DNS−SDサーバが、前述のように構成される。これは、仮想発見ゾーンの所有者またはオペレータによって開始され得る。仮想発見ゾーンは、IoTローカルネットワークに関連付けられ得る。例えば、組み合わせられた図6のLAN170およびLAN180は、仮想発見ゾーン(例えば、同一所有者またはオペレータ)であり得る。別の例では、LAN180およびLAN170は、協力する所有者(またはオペレータ)のグループが互いに信頼し、IoTサービスの共有を欲するので、仮想発見ゾーンを形成し得る。協力のための理由は、事業関係のためであり得る。所有者は、例えば、自宅所有者、会社所有者、または公共事業であり得る。クラウドDNS−SDサーバ自体は、AmazonTMまたはGoogleTMのようなクラウドサーバプロバイダ上で起動し得る。例では、クラウドDNS−SDは、IoT顧客を標的とするクラウドプロバイダのためのIaaSとしての供給であり得る。
ステップ202では、仮想発見ゾーンが、IoTネットワークのオペレータまたは所有者によって定義され得る。これは、クラウドDNS−SDサーバとゲートウェイのグループとの間の関連付けを定義することによって遂行され得る。例えば、図6を参照すると、仮想発見ゾーン1(図示せず)={IoT DNS−SDサーバ165、ゲートウェイ171およびゲートウェイ176}であり、仮想発見ゾーン2(例えば、仮想発見ゾーン167)={IoT DNS−SDサーバ165、ゲートウェイ171およびゲートウェイ181}である。仮想ゾーンの定義は、IoTネットワークのために存在する従来のOAMインターフェース(例えば、SNMP)を通して構成またはプログラムされ得る。要するに、OAMインターフェースを通して、DNS−SDサーバ165および関連ゲートウェイは、定義された仮想発見ゾーン関係を有する。各ノードは、そのそれぞれのオペレータによって、異なるオペレータ間の全体的協力関係のコンテキストにおいて構成され得る。ここで議論されるようなノードは、任意の所与のボックス(例えば、ゲートウェイ、デバイス、DNSサーバ等)を意味する。この構成プロセスの一部として、ゲートウェイ(例えば、ゲートウェイ171)は、クラウドDNS−SDサーバ(例えば、DNS−SDサーバ165)ホスト名と、クラウドDNS−SDサーバにアクセスまたは書き込むために必要とされる任意のセキュリティ証明書とを提供され得る。DNS−SDサーバ165は、クラウド内にあるので、単一の物理的ノード内に常駐する必要はないことに留意されたい。標準的クラウド機能性は、負荷バランシング目的のため等、要求に応じて、それを分散させ得る。これは、ゲートウェイ(例えば、ゲートウェイ171)およびIoTデバイス(例えば、IoTデバイス172)に透過的に行われ得る。
ステップ203では、各LANセグメント内のCoAP RD(ゲートウェイの一部であり得る)が、事前設定される。LAN内のデバイスは、そのURIをRDに登録する。RFC6690(参照することによってその全体として組み込まれる)に議論されるようなリンクフォーマットメッセージを参照されたい。URIおよび関連付けられた情報は、次いで、CoRE Resource Directoryの第9節に議論されるように、RDによって、その関連付けられたDNS−SD RRフォーマットの中にマップされることができる。RDは、CoAPおよびHTTPベースのサービスについての情報を記憶することができることに留意されたい。
ステップ204では、各ゲートウェイ(例えば、ゲートウェイ171)は、それがクラウドDNS−SDサーバ(例えば、IoT DNS−SDサーバ165)にエクスポートすることを欲するDNS−SD記録を決定するであろう。前文は、CoAP RD記録が安定すると(例えば、閾値期間にわたって新しいRD更新がなくなると)生じ得る。ゲートウェイ171のRDが、少ない(例えば、比較的に少量の記録を含む)場合、ゲートウェイ171のRDは、簡単のために、全てのその記録をIoT DNS−SDサーバ165にエクスポートすることを決定し得る。ゲートウェイ171のRDが、比較的に大量の情報を含む場合、全ての記録をエクスポートすることは非効率的であり得る。この場合、ゲートウェイ171が、(例えば、アプリケーション知識によって)LAN170外のデバイスに関心があるであろうことをそれが認知しているいくつかの重要なサービスを有する場合、ゲートウェイ171は、これらの特定の記録のみをIoT DNS−SDサーバ165にエクスポートするであろう。記録をRDからDNS−SDサーバにエクスポートするための従来のプロセスが、CoRE Resource Directoryの第9.6節に説明されるように使用されることができる。IoT DNS−SDサーバ165には、したがって、従来のDNS RRならびに本明細書で議論される新しいRRで事前設定されるであろう。さらに、関連更新が、前述のプロセス後にRDの記録に行われた場合、RDは、新しいRRのみDNS−SDにエクスポートし得る。
図9は、例示的システム動作段階を図示する。図8に関連付けられたステップは、システム動作段階内に保存され得る。以下のステップは、例証目的のために、図6のコンテキストで検討される。ステップ211では、LAN170のIoTデバイス172によるDNSクエリがある。ステップ212では、ゲートウェイ171は、ステップ211のクエリがサービス発見DNSクエリであるかどうかを決定し得る。ステップ213では、ステップ211のクエリが従来のDNSクエリ(例えば、名前解決クエリ)であると決定されるかどうかのクエリが、インターネット上のDNSサーバ161に対して行われる。
ステップ215では、ステップ211のクエリが、サービス発見DNSクエリである場合、LAN170内のローカルクエリが、生じ得る。例えば、このローカルクエリは、とりわけ、CoAP RDの検索、またはLAN170内の全ての他のデバイスへのmDNSマルチキャストクエリを開始することであり得る。第1の例では、IoTデバイス172は、LAN170内の全ての他のデバイスへのmDNSマルチキャストクエリを直接開始することを決定し得る。この場合、ゲートウェイ171は、通常のIoTデバイスとしての役割を果たす以外に何もする必要はなく、それが所与のサービスをサポートする場合、mDNSクエリにおそらく応答する。第2の例では、IoTデバイス172は、ユニキャストDNS−SDクエリを行うことを決定し得る。ゲートウェイ171がユニキャストDNS−SD要求を受信すると、それは、それを捕獲し、最初に、サービスがそのローカルCoAP RDデータベース内で見つけられることが可能かどうかの確認を試みるであろう。前述のように、これは、CoRe Resource Directoryの第9節に説明されるように、RDとDNS−SD記録との間の単純マッピングである。ローカルクエリの選択肢(例えば、mDNSまたはユニキャストDNS−SDからRDへ)は、IoTデバイス172のアプリケーション論理に任せられる。
ステップ216では、サービスがLAN170内で発見されるかどうの決定が、行われる。ステップ217では、ステップ211のクエリ内で要求されたサービスが、LAN170内で見つけられる場合、ゲートウェイ171または別のローカルデバイスは、要求側IoTデバイス172にDNS−SD応答で応答する。ステップ219では、ステップ211のクエリ内で要求されるサービスが、LAN170内で見つからない場合、ゲートウェイ171は、要求側IoTデバイス172に直ちに応答しないこともある。代わりに、ゲートウェイ171は、ユニキャストDNS−SDクエリをIoT DNS−SDサーバ165に転送し、要求されるサービスが仮想発見ゾーン内(例えば、仮想発見ゾーン167内のLAN180内)のいずれかで見つけられ得るかどうかを確認し得る。ゲートウェイ171は、いくつかの重複発見仮想ゾーンに属し得ることが可能であることに留意されたい。したがって、IoT DNS−SDサーバ165がステップ217のクエリを受信すると、IoT DNS−SDサーバ165は、この特定のクエリが検索すべき所望する仮想発見ゾーンについて決定を行うであろう。この決定は、負荷バランシング、セキュリティ証明書、または他の要因に基づき得る。重複発見仮想ゾーンが検索されることを可能にするためのIoT DNS−SDサーバ165のデフォルト構成が存在し得る。
ステップ221では、サービスが仮想発見ゾーン167内のいずれかで発見された場合、ゲートウェイ171は、DNS−SD応答をIoT DNS−SDサーバ165から受信し、応答を要求側IoTデバイス172に転送する。
ステップ223では、IoTデバイス172は、応答を見て、本明細書に議論されるように、スリープステータスを伴う返された新しいRR記録を見ることによって、要求されるサービスを行うことができるサーバが、現在スリープ中か、またはアウェイクであるか(または比較的に短時間以内にウェイクアップするであろうか)をチェックする。サーバがスリープ中である場合、IoTデバイス172は、ゲートウェイ171を介して、同一仮想発見ゾーン内のいずれかの別のサーバを見つけることを試みるであろう。
ステップ219では、ゾーン内のいずれにも利用可能なアウェイクサービスサーバが存在しない場合、IoTデバイス172は、ゲートウェイ171をトリガし、DNS−SD要求を通常のインターネットDNSサーバ161に送信することができる。IoTデバイス172は、そのアプリケーションタイミングまたは他の要件に基づいて、種々のDNS−SD要求をトリガすることを欲する回数を決定し得ることに留意されたい。ステップ225では、IoTデバイス172は、要求に応じて、サービスサーバにコンタクトする。
以下は、デバイスに関するスリープモードに関連付けられた信号伝達変更の議論である。本明細書に議論されるように、DNSのプロトコル要素は、RRの概念である。これらのRRは、DNSドメインならびに個々のデバイスの特性を説明する。例えば、「A」記録は、デバイス(ホスト)のIPv4アドレスを提供し、「MX」記録は、所与のドメインに関する電子メールサーバ名を提供する。
IETF規格に適用され得る、信号伝達変更は、以下に提供される。一般的DNS RRフォーマットは、以下の表4の通りである。RFC1035からのサポートおよびhttp://www.iana.org/assignments/dns−parameters/dns−parameters.xhtml(以降、DNSパラメータ)(両方とも参照することによってその全体として組み込まれる)を参照されたい。
ここで、IoTデバイススリープ特性を記憶するための新しいDNS RR(「IOTSLEEPINFO」と呼ばれる)を以下の表5および以下の通り定義する。
ここで、
1.RRタイプ=IOTSLEEPINFO(新しいRRタイプである)
2.現在のスリープ状態=0(アウェイク)、または1(スリープ中)
3.スリープ持続時間=IoTデバイスがスリープ中であり得る時間間隔(例えば、秒単位)を示す、32ビット符号無し整数(または別の長さの整数)。ゼロ値は、スリープ持続時間が未知であることを意味する。
4.スリープ周期性=スリープ持続時間の開始間の時間間隔(例えば、秒単位)を示す、16ビット符号無し整数。ゼロ値は、スリープ周期性が未知のであることを意味し得る。
5.クラス=インターネット。
上で定義された新しいRR(IOTSLEEPINFO)は、通常のインターネットDNSインフラストラクチャまたは本明細書に導入される新しいクラウドDNS−SDサーバのいずれか内に記憶され得る。したがって、新しいRR(IOTSLEEPINFO)は、古典的DNSインフラストラクチャならびに新しいクラウドDNS−SDサーバの両方のための有意な値を有し得る。以下(例えば、図13)では、スリーピノードのハンドリングに関する追加の議論が行われる。
以下は、仮想発見ゾーン構成のための代替である。本明細書では、OAMベースのアプローチが、仮想発見ゾーンを作成および構成する方法に対して提供される。代替アプローチは、以下に議論されるように、制御ノード(例えば、IoT DSN−SDサーバ、IoTゲートウェイ)間の信号伝達に基づく動的ネットワーク自己構成(自動)アプローチのためのものであり得る。他のアプローチも、本明細書に議論されるように、自動的に行われ得ることに留意されたい。図10は、図6のシステムを参照して、仮想発見ゾーンを自己構成する例示的段階を図示する。ステップ231では、LAN170が、動的に(自動的に)形成され得る。例えば、消防署によって火災中に展開される802.15温度センサネットワークが挙げられる。ステップ232では、CoAP POST要求等のメッセージが、送信され得る。例えば、新しいIoT LAN170が作成されると、そのゲートウェイ171は、自動的に、CoAPベースのアプリケーションメッセージをIoT DNS−SDサーバ165に送信し、LAN170がたった今作成されたことを知らせ得る。ステップ232のメッセージは、LAN170が仮想発見ゾーン167に割り当てられる要求を含み得、仮想発見ゾーン167を形成するための要件を含み得る。ステップ232のメッセージは、その物理的GPS座標(例えば、ゲートウェイ171座標)ならびにLAN170内のIoTデバイス172およびIoTデバイス173によってサポートされる重要なサービス等のLAN170についての情報を含み得る。ステップ232のメッセージは、LAN170による物理的カ対象範囲を示し得る。物理的カ対象範囲は、地理的エリア(例えば、建物、GPS座標、都市、州等)に関連付けられ得る。CoAP RD(ゲートウェイ171と共同配置される)は、別のCoAPベースのアプリケーションメッセージに送信し(後に)、LAN170内のデバイスについての情報(例えば、そのIPアドレス)およびそのリソースまたはサービスついての情報を事前設定し得る。本明細書におけるCoAPの使用は、例示的である。代替は、HTTPメッセージを使用して、同一機能を果たすであろう。
ステップ233では、IoT DNS−SDサーバ165は、LAN170に関連付けるべき仮想発見ゾーンを決定する。仮想発見ゾーンは、LANの論理的グループ化であり、それらのLANに対して、共通DNS−SDサービス発見ゾーンが存在するであろう。新しいLANを割り当てるべきゾーンの決定は、例えば、LANのGPS座標に基づいて行われ得る。言い換えると、クラウドDNS−SDサーバ(IoT DNS−SDサーバ165)は、ある地理的エリアを対象とする仮想発見ゾーンを作成し得る。アクセス許可、加入されるサービス等の他の要因も、想定され得る。複数の仮想発見ゾーンが割り当てられる場合、ステップ234のメッセージは、複数の識別子、および複数の仮想発見ゾーンのうちの各仮想発見ゾーンに属するデバイスまたはサービスのリストを含み得る。仮想発見ゾーン167の識別子は、IoT DNS−SDサーバ165によって決定され得(但し、ゲートウェイ171は、新しく作成されたLAN170をIoT DNS−SDサーバ165に報告するプロセス中に識別子を示唆し得る)、それは、例えば、新しいLAN170のGPSまたは他の座標に加えたそのサービスのハッシュであり得る。地理は、LAN170の単一デバイス、LAN170のデバイスの平均または他の閾値地理(例えば、地理的境界内にあるLAN上の平均デバイスに基づく)、主にゲートウェイ171の地理等に関連付けられ得る。以下は、新しく作成されたLANのために仮想発見ゾーンを割り当てるためのくつかの例である。第1の例では、各仮想発見ゾーンは、ある物理的エリアに関連付けられ得る。そして、新しく作成されたLANが、LANがその対象範囲内にある場合、既存の仮想発見ゾーンに割り当てられるであろう。第2の例では、IoT DNS−SDサーバは、2つ以上の仮想発見ゾーンを新しく作成されたLANに割り当て得る。複数のLANの割り当ての理由は、LANの対象範囲が大きすぎること、またはあるプライバシー、セキュリティ、もしくは他の懸念が存在する場合に関連付けられ得る。
ステップ234では、CoAPベースのアプリケーションメッセージ等のメッセージが、送信される。メッセージは、それが割り当てられる(例えば、仮想発見ゾーン167に割り当てられる)仮想発見ゾーンに関連付けられた情報を含み得る。ステップ234のメッセージは、割り当てられた仮想発見ゾーン167の識別子を含み得る。ステップ235では、LAN170は、仮想発見ゾーン167の割り当てを受諾または拒否し得る。
図11は、仮想発見ゾーンを自己構成する別の例示的段階を図示する。ステップ241では、LAN170を解除する(例えば、前の例における火災が消火されてから数日後)、または別様に仮想発見ゾーン167へのLAN170の関連付けを解除することが決定され得る。例では、消防署による火災中に展開される802.15温度センサネットワークは、もはや必要とされず、閉鎖されるであろう。ステップ242では、ゲートウェイ171は、CoAPベースのアプリケーションメッセージ等のメッセージをIoT DNS−SDサーバ165に送信する。ステップ242のメッセージは、LAN170が仮想発見ゾーン167から関連付け解除されることの要求を含む。例では、(アプリケーションデータ:仮想発見ゾーン167からのLAN170の関連付け解除要求)。ステップ243では、IoT DNS−SDサーバ165は、ステップ242のメッセージを受信し、メッセージが正しい許可を有する場合、LAN170を仮想発見ゾーン167から適切に関連付け解除する。ステップ244では、削除または他の考慮点の確認を含むメッセージが、送信される。ステップ244のメッセージは、CoAP DELETE応答であり得る。ステップ245では、ゲートウェイ171は、LAN170を解除またはIoT DNS−SDサーバ165からの関連付けを解除するために必要とされる任意のステップを継続し得る。
図11を継続して参照すると、既存の仮想発見ゾーンに対する調節を生じさせ得るいくつかの場合が存在する。以下は、いくつかの例である。第1の例では、IoTデバイス172またはそのサポートされるデバイスが利用不可能となると、対応するゲートウェイ171(またはCoAP RD)は、CoAPベースのアプリケーションメッセージ等のメッセージを送信し、IoT DNS−SDサーバ165を更新し得る。その結果、IoTデバイス172またはそのサービスは、IoT DNS−SDサーバ165によって維持されている記録から除去されるであろう。第2の例では、IoTデバイス172がそのスリープスケジュールを変更すると、ゲートウェイ171(またはCoAP RD)は、CoAPベースのアプリケーションメッセージを送信し、新しいスリープ情報をクラウドDNS−SDサーバに報告するであろう。その結果、クラウドDNS−SDは、そのDNS−SD記録を更新するであろう。第3の例では、LAN170内であると考えられる、ゲートウェイ171またはIoTデバイス172が、その座標または物理的場所を変更すると、ゲートウェイ171(またはCoAP RD)は、CoAPベースのアプリケーションメッセージを送信し、新しい座標をIoT DNS−SDサーバ165に送信するであろう。その結果、IoT DNS−SDサーバ165は、1)ゲートウェイ171に対する現在の仮想発見ゾーン167を維持する(例えば、物理的座標があまり変化しない場合)、2)新しい仮想発見ゾーンをゲートウェイ171に割り当てる(例えば、物理的座標に対する変更が閾値を超える場合)、3)別の既存の仮想発見ゾーンにマージする(例えば、新しい物理的座標が別の既存の仮想発見ゾーンと重複する場合)、または4)別の既存の仮想発見ゾーンと分裂し得る(例えば、新しい物理的座標が既存の仮想発見ゾーンと重複し、非常に多くのデバイスがすでに存在する場合)。LAN170内のゲートウェイ171または他のデバイスは、仮想発見ゾーンの割り当てを拒否し得る。
図12は、スリープノードハンドリングを組み込み得る、例示的広域サービス発見実装を図示する。例示的シナリオは、複数のLANに及ぶ都市全体展開を伴うスマートグリッドオペレータのためのスリープノードハンドリングを包含し得る。代替として、これは、都市全体展開のために一緒に協力する協力スマートグリッドオペレータのグループであり得る(各々が限定数のLANを所有する)。図12のコンテキストは、以下により詳細に議論されるように、主に、広域サービス発見をサポートするために使用されるIETF関連信号伝達およびノード内の関連付けられた処理論理に焦点を当てる。
例証目的のために、図12を以下のシナリオで検討する。LAN170(例えば、所与の近隣を対象とするローカルネットワーク)内の自宅メータ(例えば、IoTデバイス172)は、スリープ中ではない(例えば、アウェイクである)電気料金(コスト)サーバを見つけ、現在の電気料金(コスト)情報に対してポーリングする必要がある。自宅メータは、最新の料金情報を自宅所有者に表示し得るように、これを周期的に行う必要がある。コントローラ(例えば、コントローラ174またはコントローラ183)と呼ばれるあるデバイスは、料金情報を提供することが可能である。
前述のメータコントローラシナリオを参照すると、図13は、前述の「IOTSLEEPINFO」と呼ばれるDNS RRを使用してスリーピノードシナリオをハンドリングするための例示的フローを図示する。ステップ251では、「料金情報サーバ」を尋ねる要求が、送信される。ステップ252では、ゲートウェイ171は、RDをチェックし、LAN170内でサービスを見つけることを試みる。ステップ253では、ゲートウェイ171は、その料金情報がコントローラ174にあることを提供する応答を送信する。応答は、コントローラ174についてのスリープ情報(例えば、IOTSLEEPINFO−表5)を提供するDNS RRも含み得る。ステップ254では、IoTデバイス172(例えば、自宅メータ)は、新しいIOTSLEEPINFO RRをチェックし、コントローラ174が現在スリープ中であることを決定する。ステップ255では、「料金情報サーバ」を求める要求を含むメッセージが、送信される。ステップ255における要求は、ステップ251の要求に類似し得る。ステップ256では、ゲートウェイ171は、応答がステップ253におけるRDから提供されたことを決定し得、したがって、次のステップは、IoT DNS−SDサーバ165にクエリすることである。
図13を継続して参照すると、ステップ257では、仮想発見ゾーン167内に位置する「料金情報サーバ」に対する要求を含むメッセージが、送信される。ステップ258では、IoT DNS−SDサーバ165は、コントローラ183が「料金情報サーバ」として以前に登録されたことを決定する。ステップ259では、別の「料金情報サーバ」(例えば、コントローラ183@74.125.224.72)に対するコンタクト情報(例えば、IPアドレス)を含むメッセージが、送信される。ステップ260では、ステップ259の情報が、IoTデバイス172に転送される。ステップ261では、IoTデバイス172は、コントローラ183がアウェイクであることを決定する。このアウェイク状態は、ステップ260のメッセージに付随するDNS RRを検査することによって決定されていることもある。ステップ262では、現在の電気料金を要求するメッセージが、送信される。メッセージは、CoAP GET要求であり得る。ステップ263では、IoTデバイス172は、262からであることを示すメッセージを受信し得る。ステップ263のメッセージは、現在の電気料金データを伴うCoAP GET応答を含み得る。
図12および図13を継続して参照すると、以下は、前述のメータスリープシナリオに関するさらなる考慮点である。自宅メータ(IoTデバイス172)からゲートウェイ171へのDNS−SDクエリであり得るステップ251の要求は、同一LAN170内のコントローラ174が料金情報を提供する要求されるサービスをサポートすることが伝えられる結果をもたらす。しかしながら、ステップ253のメッセージ内に含まれ得る、「IOTSLEEPINFO」RRは、コントローラ174が現在スリープ中であり、容認可能閾値より長い時間にわたってスリープ中となるであろうことを示す。ステップ255では、別の要求(DNS−SDクエリ)が、ゲートウェイ171に行われ得る。ステップ256では、前の要求が、考慮される。ゲートウェイ171は、前のクエリを追跡する必要があり(あるキャッシュ期間にわたって)、回答を類似質問に最近提供したことを把握する。したがって、前の回答が満足のゆくものではなかったと仮定し、今度は、IoT DNS−SDサーバ165にクエリし、仮想発見ゾーン167内のいずれかの別の料金情報サーバを見つける。代替として、ステップ252から255は、スキップされ得、ゲートウェイ171は、直接、適切なDNS RR(IOTSLEEPINFO)および他の選好を検査し、要求される料金情報に対して別のコントローラにクエリするかどうかを決定し得る。
IoT DNS−SDサーバ165が、ステップ257のクエリを受信すると、ステップ258では、この特定のクエリに対して検索することを所望する仮想発見ゾーンについての決定を行う必要があるであろう。これは、例えば、ゲートウェイ171の発信元IPアドレス(ステップ257のクエリを搬送するメッセージ内に含まれ得る)を確認することによって遂行されることができる。例では、ゲートウェイ171のIPアドレスから、IoT DNS−SDサーバ165は、その内部データ構造によって、RRと仮想発見ゾーンのマッピングを決定し得る。本明細書に記載されるように、仮想発見ゾーンは、ゲートウェイ(およびその対応するデバイス)のグループとクラウドDNS−SDサーバ(例えば、IoT DNS−SDサーバ165)との間の関係として定義される。図13に図示されるように、IoT DNS−SDサーバは、ステップ259において、異なるLAN(LAN180)内の別の料金情報サーバ(例えば、コントローラ183)で回答する。メータは、このコントローラ180がそのIOTSLEEPINFO RRに対して現在スリープ中ではなく、したがって、それに直接クエリし、探していた料金情報を入手することが可能であることを確認し得る。代替として、前述のように、メータ(IoTデバイス172)は、IOTSLEEPINFO RRを受信しないこともあり、単に、その要求をIoT DNS−SDサーバ165によって提供されるアドレスに送信し得る。
図14は、本明細書で議論される広域サービス発見に関連付けられた例示的図式的ユーザインターフェースを図示する。ディスプレイ270(また、ディスプレイ42)は、ユーザが、IoT DNS−SDサーバ165のOAMシステムの一部とインターフェースをとることを可能にし得る。ディスプレイ270は、タッチスクリーンであり、IoT DNS−SDサーバ165のプロバイダがその関連付けられた仮想発見ゾーンを図式的に表示することを可能にし得る。ディスプレイ270の272は、例えば、図12、図6、およびその他に示されるように、所与の仮想発見ゾーン内に含まれるLANの図式的ビューを提供する。ディスプレイ270の271に、本明細書に議論されるように、コマンド、変数、入力、出力、フロー、広域サービス発見に関連付けられた動作の成功および失敗のテキスト表現が、存在し得る。以下は、例:仮想発見ゾーン167={IoT DNS−SDサーバ165、LAN170、LAN180}である。仮想発見ゾーンは、OAMによって、または別の様式で動的に作成されていることもある。
さらに、IoT DNS−SDサーバ165のプロバイダは、LANの種々の所有者による仮想発見ゾーンの遠隔ビューを可能にもし得る。これらのビューは、LANの所有者がパスワードまたは他のセキュリティ証明書を用いてラップトップまたはスマートフォンからアクセスし得るウェブインターフェースを通して行われ得る。例では、図12に類似するコンテキストでは、個々のLANが異なるスマートグリッドオペレータ(都市全体展開のためにともに協力している)によって所有されると仮定する。オペレータ−Aは、LAN−1、LAN−2、およびLAN−3(図示せず)を所有し、オペレータ−Bは、LAN−4およびLAN−5を所有する。次いで、オペレータ−Aまたはオペレータ−Bのいずれかは、仮想発見ゾーン(図12に類似する)またはテキスト表現の図式的ビューを入手し得る。
図15Aは、広域サービス発見に関連付けられた1つ以上の開示される概念(例えば、とりわけ、図6−図14)が、実装され得る、例示的マシンツーマシン(M2M)、モノのインターネット(IoT)、またはモノのウェブ(WoT)通信システム10の略図である。概して、M2M技術は、IoT/WoTのための構築ブロックを提供し、任意のM2MデバイスまたはM2Mゲートウェイは、IoT/WoTのコンポーネントであり得る。
図15Aに示されるように、M2M/IoT/WoT通信システム10は、通信ネットワーク12を含む。通信ネットワーク12は、固定ネットワーク(例えば、Ethernet(登録商標)、ファイバ、ISDN、PLC等)もしくは無線ネットワーク(例えば、WLAN、セルラー等)、もしくは異種ネットワークのネットワークであり得る。例えば、通信ネットワーク12は、音声、データ、ビデオ、メッセージング、ブロードキャスト等のコンテンツを複数のユーザに提供する複数のアクセスネットワークから成り得る。例えば、通信ネットワーク12は、符号分割多重アクセス(CDMA)、時分割多重アクセス(TDMA)、周波数分割多重アクセス(FDMA)、直交FDMA(OFDMA)、単一キャリアFDMA(SC−FDMA)等の1つ以上のチャネルアクセス方法を採用し得る。さらに、通信ネットワーク12は、例えば、コアネットワーク、インターネット、センサネットワーク、工業制御ネットワーク、パーソナルエリアネットワーク、融合個人ネットワーク、衛星ネットワーク、ホームネットワーク、または企業ネットワーク等の他のネットワークを備え得る。
図15Aに示されるように、M2M/IoT/WoT通信システム10は、インフラストラクチャドメインと、フィールドドメインとを含み得る。インフラストラクチャドメインとは、エンドツーエンドM2M展開のネットワーク側を指し、フィールドドメインとは、通常はM2Mゲートウェイの背後にある、エリアネットワークを指す。フィールドドメインは、M2Mゲートウェイ14と、端末デバイス18とを含む。任意の数のM2Mゲートウェイデバイス14およびM2M端末デバイス18が、所望に応じてM2M/IoT/WoT通信システム10に含まれ得ることが理解されるであろう。M2Mゲートウェイデバイス14およびM2M端末デバイス18のそれぞれは、通信ネットワーク12または直接無線リンクを介して、信号を伝送および受信するように構成される。M2Mゲートウェイデバイス14は、無線M2Mデバイス(例えば、セルラーおよび非セルラー)ならびに固定ネットワークM2Mデバイス(例えば、PLC)が、通信ネットワーク12等のオペレータネットワークを通して、または直接無線リンクを通してのいずれかで、通信することを可能にする。例えば、M2Mデバイス18は、データを収集し、通信ネットワーク12または直接無線リンクを介して、データをM2Mアプリケーション20もしくはM2Mデバイス18に送信し得る。M2Mデバイス18はまた、M2Mアプリケーション20またはM2Mデバイス18からデータを受信し得る。さらに、データおよび信号は、以下で説明されるように、M2Mプラットフォーム22(例えば、サービス層)を介して、M2Mアプリケーション20に送信され、そこから受信され得る。M2Mデバイス18およびゲートウェイ14は、例えば、セルラー、WLAN、WPAN(例えば、Zigbee(登録商標)、6LoWPAN、Bluetooth(登録商標))、直接無線リンク、および有線を含む、種々のネットワークを介して通信し得る。
図15Bは、広域サービス発見と共に使用され得るM2M端末デバイス18またはM2Mゲートウェイデバイス14等の例示的M2Mデバイス30の系統図である。図15Bに示されるように、M2Mデバイス30は、プロセッサ32と、送受信機34と、伝送/受信要素36と、スピーカ/マイクロホン38と、キーパッド40と、ディスプレイ/タッチパッド42と、非取り外し可能メモリ44と、取り外し可能メモリ46と、電源48と、全地球測位システム(GPS)チップセット50と、他の周辺機器52とを含み得る。M2Mデバイス30は、開示される主題と一致したままで、先述の要素の任意の副次的組み合わせを含み得ることが理解されるであろう。M2Mデバイス30(例えば、IoTデバイス172、コントローラ174、ゲートウェイ171、IoT DNS−SDサーバ165、およびその他)は、広域サービス発見のための開示されるシステムおよび方法を行う、例示的実装であり得る。
プロセッサ32は、汎用プロセッサ、特殊目的プロセッサ、従来のプロセッサ、デジタル信号プロセッサ(DSP)、複数のマイクロプロセッサ、DSPコアと関連する1つ以上のマイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)回路、任意の他のタイプの集積回路(IC)、状態マシン等であり得る。プロセッサ32は、信号符号化、データ処理、電力制御、入出力処理、および/またはM2Mデバイス30が無線環境で動作することを可能にする任意の他の機能性を果たし得る。プロセッサ32は、伝送/受信要素36に結合され得る、送受信機34に結合され得る。図15Bは、プロセッサ32および送受信機34を別個のコンポーネントとして描写するが、プロセッサ32および送受信機34は、電子パッケージまたはチップにともに組み込まれ得ることが理解されるであろう。プロセッサ32は、アプリケーション層プログラム(例えば、ブラウザ)または無線アクセス層(RAN)プログラムもしくは通信を実施し得る。プロセッサ32は、例えば、アクセス層またはアプリケーション層等で、認証、セキュリティキー一致、もしくは暗号化動作等のセキュリティ動作を実施し得る。
伝送/受信要素36は、信号をM2Mサービスプラットフォーム22に伝送する、またはM2Mプラットフォーム22から信号を受信するように構成され得る。例えば、伝送/受信要素36は、RF信号を伝送および/または受信するように構成されるアンテナであり得る。伝送/受信要素36は、WLAN、WPAN、セルラー等の種々のネットワークならびにエアインターフェースをサポートし得る。例では、伝送/受信要素36は、例えば、IR、UV、または可視光信号を伝送もしくは受信するように構成されるエミッタ/検出器であり得る。さらに別の例では、伝送/受信要素36は、RFおよび光信号の両方を伝送ならびに受信するように構成され得る。伝送/受信要素36は、無線または有線信号の任意の組み合わせを伝送もしくは受信するように構成され得ることが理解されるであろう。
加えて、伝送/受信要素36は、単一の要素として図15Bで描写されているが、M2Mデバイス30は、任意の数の伝送/受信要素36を含み得る。より具体的には、M2Mデバイス30は、MIMO技術を採用し得る。したがって、例では、M2Mデバイス30は、無線信号を伝送および受信するための2つ以上の伝送/受信要素36(例えば、複数のアンテナ)を含み得る。
送受信機34は、伝送/受信要素36によって伝送される信号を変調するように、および伝送/受信要素36によって受信される信号を復調するように構成され得る。上記のように、M2Mデバイス30は、マルチモード能力を有し得る。したがって、送受信機34は、M2Mデバイス30が、例えば、UTRAおよびIEEE802.11等の複数のRATを介して通信することを可能にするための複数の送受信機を含み得る。
プロセッサ32は、非取り外し可能メモリ44および/または取り外し可能メモリ46等の任意のタイプの好適なメモリから情報にアクセスし、そこにデータを記憶し得る。非取り外し可能メモリ44は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、ハードディスク、または任意の他のタイプのメモリ記憶デバイスを含み得る。取り外し可能メモリ46は、加入者識別モジュール(SIM)カード、メモリスティック、セキュアデジタル(SD)メモリカード等を含み得る。他の例では、プロセッサ32は、サーバまたはホームコンピュータ上等のM2Mデバイス30上に物理的に位置しないメモリから情報にアクセスし、そこにデータを記憶し得る。プロセッサ32は、本明細書に説明される例のうちのいくつかにおけるLMSが成功または不成功(例えば、IOTSLEEPINFO RR、または仮想発見ゾーン内にあるが、LAN外のデバイスに到達する)であるかどうかに応答して、ディスプレイもしくはインジケータ42上の照明パターン、画像、または色を制御する、もしくは別様に仮想発見ゾーンまたは関連付けられた方法およびコンポーネントのステータスを示すように構成され得る。ディスプレイまたはインジケータ42上の制御照明パターン、画像、もしくは色は、図に図示される、または本明細書で議論される(例えば、図6−図14等)、方法フローもしくはコンポーネントのうちのいずれかのステータスを反映し得る。本明細書に開示されるのは、広域サービス発見のメッセージおよびプロシージャである。メッセージおよびプロシージャは、ユーザが、入力源(例えば、スピーカ/マイクロホン38、キーパッド40、またはディスプレイ/タッチパッド42)を介して、広域サービス発見関連情報を要求し、とりわけ、ディスプレイ42上に表示され得る、広域サービス発見情報を要求、構成、またはクエリするためのインターフェース/APIを提供するように拡張され得る。
プロセッサ32は、電源48から電力を受電し得、M2Mデバイス30内の他のコンポーネントへの電力を分配または制御するように構成され得る。電源48は、M2Mデバイス30に給電するための任意の好適なデバイスであり得る。例えば、電源48は、1つ以上の乾電池バッテリ(例えば、ニッケルカドミウム(NiCd)、ニッケル亜鉛(NiZn)、ニッケル水素(NiMH)、リチウムイオン(Li−ion)等)、太陽電池、燃料電池等を含み得る。
プロセッサ32はまた、M2Mデバイス30の現在の場所に関する場所情報(例えば、経度および緯度)を提供するように構成されるGPSチップセット50に結合され得る。M2Mデバイス30は、本明細書に開示される情報と一致したままで、任意の好適な場所決定方法を介して場所情報を獲得し得ることが理解されるであろう。
プロセッサ32はさらに、追加特徴、機能性、または有線もしくは無線コネクティビティを提供する1つ以上のソフトウェアもしくはハードウェアモジュールを含み得る、他の周辺機器52に結合され得る。例えば、周辺機器52は、加速度計、e−コンパス、衛星送受信機、センサ、デジタルカメラ(写真またはビデオ用)、ユニバーサルシリアルバス(USB)ポート、振動デバイス、テレビ送受信機、ハンズフリーヘッドセット、Bluetooth(登録商標)モジュール、周波数変調(FM)ラジオユニット、デジタル音楽プレーヤ、メディアプレーヤ、ビデオゲームプレーヤモジュール、インターネットブラウザ等を含み得る。
伝送/受信要素36は、センサ、消費者電子機器、スマートウォッチまたはスマート衣類等のウェアラブルデバイス、医療またはeHealthデバイス、ロボット、産業機器、ドローン、車、トラック、電車、または飛行機等の車両等の他の装置もしくはデバイス内に具現化され得る。伝送/受信要素36は、周辺機器52のうちの1つを備え得る相互接続インターフェース等の1つ以上の相互接続インターフェースを介して、そのような装置またはデバイスの他のコンポーネント、モジュール、またはシステムに接続し得る。
図15Cは、例えば、図15Aのプラットフォームが実装され得る例示的コンピュータシステム90のブロック図である。コンピュータシステム90(例えば、M2M端末デバイス18またはM2Mゲートウェイデバイス14)は、コンピュータまたはサーバを備え得、主に、ソフトウェアの形態であり得るコンピュータ読み取り可能な命令によって制御され得、どこでも、もしくはどのような手段を用いても、そのようなソフトウェアが記憶またはアクセスされる。そのようなコンピュータ読み取り可能な命令は、コンピュータシステム90を稼働させるように、中央処理装置(CPU)91内で実行され得る。多くの既知のワークステーション、サーバ、およびパーソナルコンピュータでは、中央処理装置91は、マイクロプロセッサと呼ばれる単一チップCPUによって実装される。他のマシンでは、中央処理装置91は、複数のプロセッサを備え得る。コプロセッサ81は、追加機能を果たす、またはCPU91を支援する、主要CPU91とは明確に異なる随意のプロセッサである。CPU91またはコプロセッサ81は、DNS−SDクエリの受信等の広域サービス発見のための開示されるシステムおよび方法に関係付けられるデータを受信、生成、ならびに処理し得る。
動作時、CPU91は、命令をフェッチ、復号、および実行し、コンピュータの主要データ転送パスであるシステムバス80を介して、情報を他のリソースへ、かつそこから転送する。そのようなシステムバスは、コンピュータシステム90内のコンポーネントを接続し、データ交換のための媒体を定義する。システムバス80は、典型的には、データを送信するためのデータライン、アドレスを送信するためのアドレスライン、ならびに割り込みを送信するため、およびシステムバスを操作するための制御ラインを含む。そのようなシステムバス80の例は、PCI(周辺コンポーネント相互接続)バスである。
システムバス80に結合されるメモリデバイスは、ランダムアクセスメモリ(RAM)82および読み取り専用メモリ(ROM)93を含む。そのようなメモリは、情報が記憶されて読み出されることを可能にする回路を含む。ROM93は、概して、容易に修正することができない記憶されたデータを含む。RAM82に記憶されたデータは、CPU91または他のハードウェアデバイスによって読み取られるか、もしくは変更されることができる。RAM82またはROM93へのアクセスは、メモリコントローラ92によって制御され得る。メモリコントローラ92は、命令が実行されると、仮想アドレスを物理的アドレスに変換するアドレス変換機能を提供し得る。メモリコントローラ92はまた、システム内のプロセスを分離し、ユーザプロセスからシステムプロセスを分離する、メモリ保護機能を提供し得る。したがって、第1のモードで作動するプログラムは、独自のプロセス仮想アドレス空間によってマップされるメモリのみにアクセスすることができ、プロセス間のメモリ共有が設定されていない限り、別のプロセスの仮想アドレス空間内のメモリにアクセスすることができない。
加えて、コンピュータシステム90は、CPU91からプリンタ94、キーボード84、マウス95、およびディスクドライブ85等の周辺機器に命令を伝達する責任がある、周辺機器コントローラ83を含み得る。
ディスプレイコントローラ96によって制御されるディスプレイ86は、コンピュータシステム90によって生成される視覚出力を表示するために使用される。そのような視覚出力は、テキスト、グラフィックス、動画グラフィックス、およびビデオを含み得る。ディスプレイ86は、CRTベースのビデオディスプレイ、LCDベースのフラットパネルディスプレイ、ガスプラズマベースのフラットパネルディスプレイ、またはタッチパネルを伴って実装され得る。ディスプレイコントローラ96は、ディスプレイ86に送信されるビデオ信号を生成するために必要とされる、電子コンポーネントを含む。
さらに、コンピュータシステム90は、図15Aのネットワーク12等の外部通信ネットワークにコンピュータシステム90を接続するために使用され得るネットワークアダプタ97を含み得る。
図15Dを参照すると、フィールドドメイン内の図示されるM2Mサービス層22は、M2Mアプリケーション20(例えば、IoTデバイス172のアプリケーション)、M2Mゲートウェイデバイス14、およびM2M端末デバイス18、ならびに通信ネットワーク12のためのサービスを提供する。M2Mサービス層22は、所望に応じて、任意の数のM2Mアプリケーション、M2Mゲートウェイデバイス14、M2M端末デバイス18、および通信ネットワーク12と通信し得ることを理解されたい。M2Mサービス層22は、1つ以上のサーバ、コンピュータ等によって実装され得る。M2Mサービス層22は、M2M端末デバイス18、M2Mゲートウェイデバイス14、およびM2Mアプリケーション20に適用されるサービス能力を提供する。M2Mサービス層22の機能は、例えば、ウェブサーバとして、セルラーコアネットワーク内において、クラウド内において等、種々の方法で実装され得る。
図示されるM2Mサービス層22と同様に、インフラストラクチャドメイン内には、M2Mサービス層22’が存在する。M2Mサービス層22’は、インフラストラクチャドメイン内のM2Mアプリケーション20’および下層通信ネットワーク12’のためのサービスを提供する。M2Mサービス層22’はまた、フィールドドメイン内のM2Mゲートウェイデバイス14およびM2M端末デバイス18のためのサービスを提供する。M2Mサービス層22’は、任意の数のM2Mアプリケーション、M2Mゲートウェイデバイス、およびM2M端末デバイスと通信し得ることを理解されたい。M2Mサービス層22’は、異なるサービスプロバイダによって、サービス層と相互作用し得る。M2Mサービス層22’は、1つ以上のサーバ、コンピュータ、仮想マシン(例えば、クラウド/コンピュータ/記憶ファーム等)等によって実装され得る。
図15Dも参照すると、M2Mサービス層22および22’は、多様なアプリケーションならびにバーティカルが活用することができる、サービス配信能力のコアセットを提供する。これらのサービス能力は、M2Mアプリケーション20および20’がデバイスと相互作用し、データ収集、データ分析、デバイス管理、セキュリティ、課金、サービス/デバイス発見等の機能を果たすことを可能にする。本質的に、これらのサービス能力は、これらの機能性を実装する負担をアプリケーションから取り除き、したがって、アプリケーション開発を単純化し、市場に出す費用および時間を削減する。サービス層22および22’はまた、M2Mアプリケーション20および20’が、サービス層22および22’が提供するサービスと関連して、種々のネットワーク12および12’を通して通信することも可能にする。
いくつかの例では、M2Mアプリケーション20および20’は、本明細書に議論されるように、広域サービス発見と使用して通信する所望のアプリケーションを含み得る。M2Mアプリケーション20および20’は、限定ではないが、輸送、保健および健康、コネクテッドホーム、エネルギー管理、アセット追跡、ならびにセキュリティおよび監視等の種々の業界でのアプリケーションを含み得る。上記のように、システムのデバイス、ゲートウェイ、および他のサーバを横断して起動するM2Mサービス層は、例えば、データ収集、デバイス管理、セキュリティ、課金、場所追跡/ジオフェンシング、デバイス/サービス発見、およびレガシーシステム統合等の機能をサポートし、サービスとしてこれらの機能をM2Mアプリケーション20および20’に提供する。
本願の広域サービス発見は、サービス層の一部として実装され得る。サービス層は、アプリケーションプログラミングインターフェース(API)および下層ネットワーキングインターフェースの組を通して付加価値サービス能力をサポートするミドルウェア層である。M2Mエンティティ(例えば、ハードウェア上に実装されるデバイス、ゲートウェイ、またはサービス/プラットフォーム等のM2M機能的エンティティ)は、アプリケーションまたはサービスを提供し得る。ETSI M2MおよびoneM2Mは両方とも、本願の広域サービス発見を含み得るサービス層を使用する。oneM2Mサービス層は、共通サービス機能(CSF)(すなわち、サービス能力)の組をサポートする。1つ以上の特定のタイプのCSFの組のインスタンス化は、異なるタイプのネットワークノード(例えば、インフラストラクチャノード、中間ノード、特定用途向けノード)上でホストすることができる、共通サービスエンティティ(CSE)と称される。さらに、本願の広域サービス発見は、サービス指向アーキテクチャ(SOA)またはリソース指向アーキテクチャ(ROA)を使用して、本願の広域サービス発見等のサービスにアクセスする、M2Mネットワークの一部として実装されることができる。
本明細書に議論される場合、用語「サービス層」は、ネットワークサービスアーキテクチャ内の機能的層と考えられ得る。サービス層は、典型的には、HTTP、CoAP、またはMQTT等のアプリケーションプロトコル層の上方に位置し、付加価値サービスをクライアントアプリケーションに提供する。サービス層はまた、インターフェースを、例えば、制御層およびトランスポート/アクセス層等の下位リソース層におけるコアネットワークに提供する。サービス層は、サービス定義、サービスランタイム有効化、ポリシ管理、アクセス制御、およびサービスクラスタリングを含む、(サービス)能力または機能性の複数のカテゴリをサポートする。最近、いくつかの産業規格団体、例えば、oneM2Mが、インターネット/ウェブ、セルラー、企業、およびホームネットワーク等の展開へのM2Mタイプのデバイスならびにアプリケーションの統合に関連付けられた課題に対処するためのM2Mサービス層を開発している。M2Mサービス層は、アプリケーションまたは種々のデバイスに、CSEもしくはサービス能力層(SCL)と称され得る、サービス層によってサポートされる前述の能力または機能性の集合もしくは組へのアクセスを提供することができる。いくつかの例として、限定ではないが、種々のアプリケーションによって一般に使用され得る、セキュリティ、課金、データ管理、デバイス管理、発見、プロビジョニング、およびコネクティビティ管理が挙げられる。これらの能力または機能性は、M2Mサービス層によって定義されたメッセージフォーマット、リソース構造、およびリソース表現を利用するAPIを介して、そのような種々のアプリケーションに利用可能となる。CSEまたはSCLは、それらにそのような能力もしくは機能性を使用するために、ハードウェアもしくはソフトウェアによって実装され得、種々のアプリケーションならびに/もしくはデバイスにエクスポーズされる(サービス)能力または機能性を提供する、機能エンティティ(例えば、そのような機能エンティティ間の機能インターフェース)である。
本明細書に説明されるシステム、方法、およびプロセスのうちのいずれかまたは全ては、コンピュータ読み取り可能な記憶媒体上に記憶されたコンピュータ実行可能命令(すなわち、プログラムコード)の形態で具現化され得、その命令は、コンピュータ、サーバ、M2M端末デバイス、M2Mゲートウェイデバイス等のマシンによって実行されると、本明細書に説明されるシステム、方法、ならびにプロセスを実施および/または実装することが理解される。具体的には、上で説明されるステップ、動作、または機能のうちのいずれかは、そのようなコンピュータ実行可能命令の形態で実装され得る。コンピュータ読み取り可能な記憶媒体は、情報の記憶のための任意の方法もしくは技術で実装される、揮発性および不揮発性、取り外し可能および非取り外し可能媒体の両方を含むが、そのようなコンピュータ読み取り可能な記憶媒体は、信号を含まない。コンピュータ読み取り可能な記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、もしくは所望の情報を記憶するために使用することができ、かつコンピュータによってアクセスされることができる、任意の他の物理的媒体を含むが、それらに限定されない。
図に図示されるような本開示の主題(広域サービス発見)の好ましい方法、システム、または装置を説明する上で、明確にするために、具体的用語が採用される。しかしながら、請求される主題は、そのように選択される具体的用語に限定されることを意図せず、各具体的要素は、類似目的を達成するように同様に動作する、全ての技術的均等物を含むことを理解されたい。本開示は、IoT使用例のための提案されるソリューションを使用することに焦点を当てることに留意されたい。しかしながら、本発明はまた、類似特性を伴う非IoTシナリオにも適用され得ることが明白である。
本明細書に説明される種々の技法は、ハードウェア、ファームウェア、ソフトウェア、もしくは適切である場合、それらの組み合わせに関連して実装され得る。そのようなハードウェア、ファームウェア、およびソフトウェアは、通信ネットワークの種々のノードに位置する装置の中に常駐し得る。装置は、本明細書に説明される方法をもたらすように、単独で、または互いに組み合わせて動作し得る。本明細書で使用されるように、用語「装置」、「ネットワーク装置」、「ノード」、「デバイス」、および「ネットワークノード」等は、同義的に使用され得る。
本明細書は、最良の様態を含む、本発明を開示するために、また、当業者が、任意のデバイスまたはシステムを作製して使用すること、および任意の組み込まれた方法を行うことを含む、本発明を実践することを可能にするために、例を使用する。本発明の特許性のある範囲は、請求項によって定義され、当業者に想起される他の例を含み得る(例えば、本明細書に開示される例示的方法の間でステップを省略する、ステップを組み合わせる、またはステップを追加する)。そのような他の例は、請求項の文字通りの言葉とは異ならない構造要素を有する場合に、または請求項の文字通りの言葉とのごくわずかな差異を伴う同等の構造要素を含む場合に、請求項の範囲内であることを意図している。
方法、システム、および装置は、とりわけ、本明細書に説明されるように、デバイスのための広域サービス発見のための手段を提供し得る。方法、システム、コンピュータ読み取り可能な記憶媒体、または装置は、第1のメッセージを第1のローカルエリアネットワーク上で受信することであって、第1のメッセージは、サービスに対する要求を含む、ことと、サービスが第1のローカルエリアネットワーク上に位置しないことを決定することと、サービスが第1のローカルエリアネットワーク上に位置しないことを決定することに応答して、第2のメッセージをサーバに提供することであって、第2のメッセージは、サービスに対する要求を含む、ことと、第3のメッセージを受信することであって、第3のメッセージは、サービスに関連付けられた情報を含む、こととのための手段を有する。第1のメッセージは、サービスに対する要求を含む複数のメッセージのうちの1つであり得、複数のメッセージは、マルチキャストDNSによって送信され得る。サーバは、DNS−SDのためのサーバとして動作し得る。サービスに関連付けられた情報は、サービスのアドレスを含み得る。サービスに関連付けられた情報は、サービスの利用可能性の指示を含み得る。サービスは、遠隔デバイス上に位置し得、遠隔デバイスは、第2のローカルエリアネットワーク上に位置し得る。サーバは、広域ネットワーク上に位置し得る。方法、システム、コンピュータ読み取り可能な記憶媒体、または装置は、サービスに関連付けられた情報をクライアントデバイスに提供することであって、クライアントデバイスは、第1のメッセージを介して、サービスの要求側であることを示す、ことのための手段を有する。第1のメッセージは、DNS−SDクエリであり得る。第3のメッセージは、第2のメッセージへのDNS−SD応答であり得る。方法、システム、コンピュータ読み取り可能な記憶媒体、または装置は、制約付きアプリケーションプロトコル(CoAP)リソースディレクトリのクエリに基づいて、サービスが第1のローカルエリアネットワーク上に位置しないことを決定する手段を有する。第2のメッセージは、仮想発見ゾーンの割り当てのための要求を含み得る。第3のメッセージは、仮想発見ゾーンの割り当てを含み得る。この段落における全ての組み合わせ(ステップの除去または追加を含む)は、発明を実施するための形態の他の部分と一貫する様式で検討される。
方法、システム、コンピュータ読み取り可能な記憶媒体、または装置は、第1のLANから、サービスに関するDNS−SDクエリを受信するステップことと、DNS−SDクエリの受信に応答して、サービス、すなわち、第2のLAN上のサービスについての情報を提供することとのための手段を有する。
方法、システム、コンピュータ読み取り可能な記憶媒体、または装置は、要求をサービスに提供するステップと、要求に応答して、サービスに関連付けられたデバイスについてのスリープノード情報を含む応答を受信するステップとのための手段を有する。
本明細書に説明される主題は、例証として提供される。種々の修正および変更が、図示ならびに説明される例および用途に従わずに(例えば、ステップをスキップまたは追加して)、かつ請求項に記載される開示される主題の真の精神および範囲から逸脱することなく、本明細書に説明される主題に行われ得る。