JP2008542853A - サービスを発見し対話するためのシステム及び方法 - Google Patents

サービスを発見し対話するためのシステム及び方法 Download PDF

Info

Publication number
JP2008542853A
JP2008542853A JP2007509762A JP2007509762A JP2008542853A JP 2008542853 A JP2008542853 A JP 2008542853A JP 2007509762 A JP2007509762 A JP 2007509762A JP 2007509762 A JP2007509762 A JP 2007509762A JP 2008542853 A JP2008542853 A JP 2008542853A
Authority
JP
Japan
Prior art keywords
service
discovery information
requester
multicast
response data
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.)
Granted
Application number
JP2007509762A
Other languages
English (en)
Other versions
JP4140660B1 (ja
Inventor
ブライアント イーストハム,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Electric Works Co Ltd
Original Assignee
Panasonic Corp
Matsushita Electric Works Ltd
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 Panasonic Corp, Matsushita Electric Works Ltd filed Critical Panasonic Corp
Application granted granted Critical
Publication of JP4140660B1 publication Critical patent/JP4140660B1/ja
Publication of JP2008542853A publication Critical patent/JP2008542853A/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/12Arrangements for remote connection or disconnection of substations or of equipment thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/59Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Small-Scale Networks (AREA)
  • Telephonic Communication Services (AREA)

Abstract

リクエスタは、サービスコマンドをマルチキャストする。サービスがサービスコマンドを受信するとき、応答データを発生させることができるサービスコマンドによって指定されるオペレーションを実行する。サービスはそしてユニキャストを介して応答メッセージを送信することができ、リクエスタはユニキャストを介して応答メッセージを受信することができる。応答メッセージは、応答データを含むことができる。応答メッセージはまた、サービスに関する発見情報を含むことができ、それは、リクエスタによるサービスの発見を容易にする情報である。リクエスタは、応答データと発見情報とを処理する。サービスとの更なる対話が所望される場合、リクエスタは、サービスとの接続を確立するために発見情報を使用することができる。

Description

本発明は、一般的なコンピュータとコンピュータ関連技術に関する。より具体的には、本発明はサービスを発見し対話するためのシステム及び方法に関する。
コンピュータや通信技術は、急速な歩みで進み続けている。事実、コンピュータや通信技術は、人間の日常の多くの側面に関わる。例えば、今日消費者によって使用される多くの装置は、その装置内部に小型コンピュータを有する。これらの小型コンピュータは、精密さに関して様々なサイズ及び程度のものが提供されている。これらの小型コンピュータは、1つのマイクロコントローラから、全ての機能を持つ完全なコンピュータシステムまで、全てを含んでいる。例えば、これらの小型コンピュータは、マイクロコントローラのようなワンチップコンピュータ、コントローラのような1ボードのタイプのコンピュータ、IBMTM−PCコンパチブルのような典型的なデスクトップコンピュータなどであっても良い。
コンピュータは、一般的に、そのコンピュータの心臓部に1つ以上のプロセッサを有する。プロセッサは、通常、異なる外部の入力と出力に相互接続されており、特定のコンピュータ又は装置を管理するために機能する。例えば、サーモスタットのプロセッサは、温度設定を選択するために使用されるボタン、温度を変えるための暖炉やエアコン、及び現在の温度をディスプレイ上から読んだり表示したりするための温度センサと接続できる。
多くの電気製品や装置などは、1つ以上の小型コンピュータを含んでいる。例えば、サーモスタット、暖炉、空調システム、冷蔵庫、電話機、タイプライタ、自動車、自動販売機、及び多くの異なるタイプの産業機器は、現在一般的に、小型コンピュータ又はプロセッサをそれらの内部に有する。コンピュータソフトウェアは、これらコンピュータのプロセッサを動かして、いかに所定のタスクを実行するかをプロセッサに指示する。例えば、サーモスタット上で動作するコンピュータソフトウェアは、特定の温度に達している場合エアコンの実行を止めたり、又は必要に応じて暖房機をオンにしたりすることができる。
装置、電気製品、ツールなどの一部であるこれらのタイプの小型コンピュータは、しばしば組込み機器又は組込みシステムと呼ばれる。(用語「組込み機器」と「組込みシステム」は本明細書において互換性を持って使用される)。組込みシステムは、通常、コンピュータハードウェアと、より大きいシステムの一部であるソフトウェアについて言及する。組込みシステムは、キーボード、マウス、及び/又はモニタなどの典型的な入出力装置を有することができない。通常、それぞれの心臓部で組み込まれているシステムは、1つ以上のプロセッサである。
照明システムは組込みシステムを組み込むことができる。照明システムの効力を監視し、制御するために組込みシステムを使用できる。例えば、組込みシステムは、照明システムの中で照明の明るさを薄暗くするための制御を与えることができる。あるいはまた、組込みシステムは、照明の明るさを強めるための制御を与えることができる。組込みシステムは、照明システム内の個々の照明内の特定の照明パターンを起動するための制御を与えることができる。組込みシステムは、照明システム内の個々のスイッチと結合できる。これらの組込みシステムは、個々の照明又は全体の照明システムにパワーアップ、パワーダウンするためのスイッチ対して指示できる。同様に、組込みシステムは、照明システム内の個々の照明と結合できる。それぞれの個々の照明の明るさ又は電源状態は、組込みシステムにより制御できる。
セキュリティシステムもまた、組込みシステムを組み込むことができる。組込みシステムは、セキュリティシステムを備える個人セキュリティセンサを制御するために使用できる。例えば、組込みシステムは、それぞれのセキュリティセンサを自動的に強化する制御を与えることができる。組込みシステムは、それぞれの個人セキュリティセンサと結合できる。例えば、組込みシステムは、動作センサと結合できる。動きが検出された場合、組込みシステムは、自動的に個々の動作センサをパワーアップして、動作センサを作動するための制御を与えることができる。動作センサの作動では、動作センサの中に配置されたLEDパワーアップするための指示を与えたり、動作センサの出力部からアラームを出力したり、等を含むことができる。組込みシステムは、ドアを監視するセンサとも結合できる。組込みシステムは、ドアが開けられるか、又は閉じられるとき、作動するためにドアを監視するセンサに指示を与えることができる。同様に、組込みシステムは、窓を監視するセンサと結合できる。窓が開けられるか、閉じられた場合、組込みシステムは、窓のセンサモニタリングを作動するために指示を与えることができる。
携帯電話などのワイヤレス製品を制御するのにもまた、いくつかの組込みシステムを使用できる。組込みシステムは、携帯電話のLEDディスプレイをパワーアップするための指示を与えることができる。組込みシステムは、携帯電話に関する音声通知をユーザに与えるために、携帯電話内のオーディオスピーカーもまた作動することができる。
家庭電化製品もまた、組込みシステムを組み込むことができる。家電は、従来の台所で通常使用される電気製品、例えば、ストーブ、冷蔵庫、電子レンジなどを含むことができる。家電はまた、ユーザの健康と快適な暮らしに関する電気製品を含むことができる。例えば、マッサージリクライニングシートは、組込みシステムを組み込むことができる。組込みシステムは、椅子の背もたれ部分を、ユーザの好みに従って自動的にもたれさせるための指示を与えることができる。組込みシステムはまた、リクライニングシート内の振動を、ユーザの好みに従って引き起こす椅子内の振動装置を始動するためにも指示を与えることができる。
家庭内で通常備えられる更なる製品もまた、組込みシステムを組み込むことができる。例えば、コンテナータンクを詰め替えるのに使用される水のレベルを制御するために、トイレ内で組込みシステムを使用できる。空気の流出を制御するためにジェットバス内で組込みシステムを使用できる。
上記のように、組込みシステムは、多くの異系統、資源、製品などを監視又は制御するために使用できる。インターネットとワールドワイドウェブの発展で、組込みシステムは、リモートで制御及び/又は監視されることができるように、ますますインターネットに接続されるようになる。ローカルエリアネットワークや広域ネットワークなどを含むコンピュータネットワークに、他の組込みシステムを接続できる。本明細書で用いられるように、用語「コンピュータネットワーク」(又は、単に「ネットワーク」)は、一連のノードが通信パスによって相互接続されるどのようなシステムをも示す。用語「ノード」は、コンピュータネットワークの一部として接続されるどのような装置をも示す。組込みシステムがネットワークノードであっても良い。ネットワークノードの他の実施例は、コンピュータ、携帯情報端末(PDA:Personal Digital Assistants)、携帯電話などを含んでいる。
一部の組込みシステムは、コンピュータネットワークを用いて、他のコンピュータ機器に対してデータ及び/又はサービスを提供できる。多くの異種のサービスを提供できる。サービスのいくつかの実施例は、ある場所から温度データを提供したり、監視データを提供したり、気象情報を提供したり、オーディオストリームを供給したり、ビデオストリーム提供したりすることなどを含んでいる。本明細書で用いられるように、「リクエスタ」という用語は、プロバイダからサービスを要求するノードを示す。「プロバイダ」という用語は、リクエスタに対してサービスを提供するノードを示す。
コンピュータネットワーク内のノードのうちのいくつかは、マルチキャスト技術を使用して、ネットワーク上の他のノードにメッセージを送るように構成されることができる。コンピュータネットワークの文脈中では、「マルチキャスティング」という用語は、ネットワーク上で同時に2つ以上のノードにメッセージを送るプロセスを示す。ブロードキャストがネットワーク上のすべてのノードにメッセージを送ることを意味するのに対して、マルチキャスティングはネットワーク内のノードの特定のグループにメッセージを送ることを意味するため、マルチキャスティングはブロードキャストとは異なる。
様々なプロトコルは、ネットワークで利用可能なサービスをノードが発見することを可能にするために定義されてきた。そのようなプロトコルのいくつかの例は、サービスロケーションプロトコル(SLP:Service Location Protocol)、Bonjour(ボンジュール)などを含む。既知の発見プロトコルは、サービス及びそれらと対話する方法に関する情報を発見するために典型的にはマルチキャスト技術を使用する。
既知のアプローチで、サービスを発見するプロセスは、サービスと対話するプロセスと分離されている。SLPやボンジュールのようなプロトコルは、それらとの対話のためにではなく、発見するサービスのためのメカニズムを提供する。一旦サービスが発見されると、完全に異なるプロトコル(例えばSOAP)は、サービスと対話するために使用される。従って、既知のアプローチで、サービスのリクエスタは、典型的にはサービスに対処するための2つのプロトコルスタック、サービス発見用のプロトコルスタック及びサービス対話用の個別のプロトコルスタックを有する。しかしながら、サービス用の2つの別個のプロトコルスタックの実行は、いくつかの埋め込みシステムのような制限された資源(処理能力、メモリなど)を備えたいくつかの機器にとって、難しいかもしれない。
上記を考慮すると、コンピュータネットワーク上のサービスを発見し対話することに関する改良によって、利点を具現できる。コンピュータネットワーク上のサービスのより効率的な発見を容易にするためのいくつかの例のシステム及び方法が、本明細書に開示される。
サービスを発見し対話するためのシステム及び方法が開示される。典型的な実施例において、リクエスタはサービスコマンドをマルチキャストする。サービスコマンドに呼応して、リクエスタは、以前にリクエスタによって発見されていない少なくとも1つのサービスから応答データを受信する。リクエスタはまた、リクエスタがさらに少なくとも1つのサービスと対話することができる発見情報を受信できる。リクエスタは、特定のサービスのための発見情報によって、サービスのプロバイダとの接続(例えばTCP/IP接続)を確立することができる。例えば、特定のサービスのための発見情報は、サービスのプロバイダのネットワークアドレスと、サービスが利用可能なプロバイダのポートであっても良い。サービスとの更なる対話が所望される場合、リクエスタは、サービスのプロバイダとの接続を確立するために発見情報を使用できる。
いくつかの実施例では、特定のサービスからの応答データと、リクエスタがさらにサービスと対話することができる発見情報とが、同時に受信できる。例えば、応答データは、サービスから送られるパケットのペイロード内に含まれることができ、発見情報は、パケットの転送ヘッダ内に含まれることができる。
リクエスタは、ユーザデータグラムプロトコルの実現に従って、サービスコマンドをマルチキャストすることができる。応答データと発見情報は、ユーザデータグラムプロトコルの実現に従って、ユニキャストを介して受信できる。
リクエスタは非マルチキャストプロバイダに置かれるサービスから応答データを受信できる。この状況で、発見情報は、リクエスタがマルチキャストプロキシへの接続を確立することを可能にすることができる。マルチキャストプロキシは、リクエスタと非マルチキャストプロバイダとのインターフェースとして役立つことができる。
リクエスタは、マルチキャストアドレシングを送るように構成されない少なくとも1つのネットワークの装置によって、リクエスタのネットワークから分離されるネットワーク内のプロバイダに置かれるサービスから応答データを受信できる。
本発明の例示された実施形態は、以下の説明と添付の特許請求の範囲から、添付図面と共により完全に明らかになる。これらの図面について理解することは、例示された実施形態についてのみ描いていることであり、従って、本発明の範囲の限定であることは考慮されない。本発明の例示された実施形態は、更なる特定性で説明され、添付図面を用いて詳しく述べる。
図面を参照しながら本発明の様々な実施例について説明する。同一参照番号は同一か機能上同様の要素を示す。本明細書において一様に説明し図面に示す本発明の実施例は、広く様々な異なる形態でアレンジし設計することができるであろう。それ故、図面で表される本発明の様々に例示された実施形態の以下のより詳細な説明は、本発明のクレームとしての範囲を限定する意図でなく、単に本発明の実施例を示す意図である。
「例」という言葉は、「実施例、実例、又は図示としての役目をすること」を意味するために本明細書において専らに使用される。本明細書に「例」として記述されたどんな実施例も、他の実施例を越えて好ましい又は有利であると理解されるために必ずしも必要ではない。図面に実施例の種々の外観を提示するが、特別に示さなかったといって、比例するように必ずしも図面を作成するというわけではない。
本明細書に開示された実施例の多くの素材を、コンピュータソフトウェア、電子ハードウェア、又は両方の組合せとして、実施することができる。一般的に、明確にハードウェアとソフトウェアのこの互換性を示すために、それらの機能性において種々の装置について説明する。そのような機能性がハードウェア又はソフトウェアとして実施されるか否かは、システム全体に課された特殊なアプリケーションと設計制約条件に依存する。当業者は各特殊アプリケーションのために様々な方法で説明した機能性を実施することができるが、本発明の範囲から逸脱して、そのような実施決定を解釈するべきでない。
説明された機能性がコンピュータソフトウェアとして実施される場合、そのようなソフトウェアは、どのようなタイプの機械命令も含むことができるか、コンピュータ実行可能コードがメモリデバイスの中に位置し及び/又は電子信号としてシステムバス又はネットワーク上を伝送される。本明細書で説明される装置に関連する機能性を実施するソフトウェアは、ただ一つの指示、又は多くの指示を具備することができ、異なるプログラムの中といくつかのメモリデバイスにまたがって、様々な異なるコードセグメントに分散できる。
図1は、一実施例による、サービスを発見し対話するためのシステム100を示すブロック図である。リクエスタ102は、マルチキャストを介してマルチキャストグループへサービスコマンド104を送信する。(上記のように、用語「リクエスタ」は、プロバイダからサービスを要求するノードを示す。)サービスコマンド104は、オペレーションを実行するサービス106への命令である。サービスコマンド104の例は、サービス106によって提供される関数をコールすること、サービス106によって提供される変数を読み込むこと/設定すること、などを含む。
リクエスタ102が以前に発見していないサービス106が、図1に示されている。サービス106は、プロバイダ114上に置かれている。
(上記のように、用語「プロバイダ」は、リクエスタに対してサービスを提供するノードを示す。)プロバイダ114が、ネットワークへのアクセスをサービス106に提供し、事実上、実際にサービスコマンド104を受信して応答メッセージ110を送信することが理解できる。このプロバイダ114は、サービスコマンド104が送信されるマルチキャストグループに加わって、このマルチキャストグループに関連するマルチキャストポート上で耳を傾けている。その結果、プロバイダ114は、リクエスタ102からサービスコマンド104を受信し、サービス106にそれを転送する。サービス106は、サービスコマンド104によって指定されたオペレーションを実行する。サービスコマンドは応答データ108を発生させることができる。例えば、サービスコマンド104が変数を読む命令であれば、応答データ108は、変数の値であろう。別の例として、サービスコマンド104が関数呼出しであれば、応答データ108は、その関数によって返される1つ以上の値であろう。
サービスコマンド104によって指定されたオペレーションを実行した後、プロバイダ114は、ユニキャストを介して応答メッセージ110をリクエスタ102に送信する。送信される応答メッセージ110は、応答データ108を含む。さらに、応答メッセージ110はまた、サービス106及びプロバイダ114に関する発見情報112を含む。発見情報112は、リクエスタ102によってサービス106とプロバイダ114との発見を容易にする情報である。(上述したように、サービスコマンド104をマルチキャストするときには、リクエスタ102はまだサービス106を発見していない。)例えば、発見情報112は、プロバイダ114のネットワークアドレスやサービス106が利用可能なプロバイダ114のポートのような、プロバイダ114との接続(例えばTCP/IP接続)をリクエスタ102が確立することができる情報を含むことができる。プロバイダ114が実際にサービスコマンド104と応答メッセージ110を送受信する一方、サービス106によってそれらが同様に受送信されると言える。同様に、発見情報112の一部は、プロバイダ114と、サービス106への一部に関連する。発見情報112は、プロバイダ114とサービス106の両方を同時に発見する。
上述したように、既知のアプローチでは、サービスを発見するプロセスは、サービスと対話するプロセスから分離されている。対照的に、描かれた実施例では、リクエスタ102は、同時にサービス106を発見し対話する。サービスコマンド104をマルチキャストすることに呼応して、リクエスタ102は、応答データ108と発見情報112の両方を同時に受信する。リクエスタ102は、応答メッセージ110の中に含まれているサービス106(例えば、ネットワークアドレスとポート)のための発見情報112を処理することによって、サービス106を発見する。リクエスタ102は、応答メッセージ110の中に含まれている応答データ108を処理することによって、サービス106と対話する。
簡単にするために、図1は、リクエスタ102によって送られたサービスコマンド104に応答する単一のサービス106を示している。しかしながら、複数のサービス106がサービスコマンド104に応答することもできる。サービスコマンド104を受信する各サービス106がそれに応じるように、サービスコマンド104を設計できる。これで、リクエスタ102は特定の領域内ですべてのサービス106を発見できる。例えば、サービスコマンド104がプリンタサービス106からプリンタ名変数を読む命令であれば、サービスコマンド104を受信するそれぞれのプリンタサービス106は、プリンタ名変数の値を返すことができ、その結果、リクエスタ102が特定の領域(例えば、コンピュータネットワーク)内で有効なすべてのプリンタを発見することを可能にする。
複数のサービス106をサービスコマンド104に対して応答することができるものの、ある状況下では、リクエスタ102は特定の領域内のすべての利用可能なサービス106を発見することを望まないかもしれない。その代わりに、リクエスタ102は、特定のサービス106、又は特定のサービス106に、単に問い合わせることを望むことができる。例えば、特定の領域内ですべてのプリンタを発見することの代わりに、リクエスタ102は、特定のプリンタサービス106を発見することを望むことができる(例えば、特定のプリンタにプリントジョブを送信することができるように)。この機能性を供給するためのメカニズムは、以下で述べられる。
ある状況下では、サービス106から応答メッセージ110を受信した後、リクエスタ102がサービス106との追加の対話をもつことは望ましいであろう。例えば、機器の温度を返すサービス106について考える。機器の温度がある閾値を越えることを示す応答メッセージ110をサービス106が送信する場合、リクエスタ102はそのサービス106に対し追加の情報を要求するように構成することができる。
サービス106からの応答メッセージ110が受信された後、サービス106との更なる対話が所望される場合、リクエスタ102は、サービス106と対話するために、プロバイダ114との接続116(例えばTCP/IP接続)を確立するためにサービス106から受信された発見情報112を使用することができる。そして、リクエスタ102は、この接続116を介してさらにサービス106と対話できる。
ある実施例では、リクエスタ102は、サービスコマンド104をマルチキャストするためのトランスポートプロトコルとして、ユーザデータグラムプロトコル(UDP)の実現を用いることができる。さらに、サービス106は、応答メッセージ110をリクエスタ102に戻すユニキャストのためのトランスポートプロトコルとして、UDPを使用することができる。
図2は、図1に表わされた実施例における、リクエスタ102のオペレーションを示すフローチャートである。リクエスタ102は、サービスコマンド104をマルチキャストグループにマルチキャストする(202)。リクエスタ102が以前に発見していない少なくとも1つのサービス106が、リクエスタ102からサービスコマンド104を受信し応答する。
サービス106がサービスコマンド104を受信するとき、それはサービスコマンド104によって指定されるオペレーションを実行する。サービスコマンドは応答データ108を発生させることができる。サービス106は次に、送信することができ、リクエスタ102はユニキャストを介して応答メッセージ110を受信できる(204)。応答メッセージ110は応答データ108を含むことができる。応答メッセージ110はまた、サービス106に関する発見情報112を含むことができる。(それは、リクエスタ102でサービス106の発見を容易にする情報である)。
リクエスタ102は、応答メッセージ110内に含まれたプロバイダ114(例えば、ネットワークアドレスとポート)のための発見情報112を処理することでサービス106を発見する(206)。リクエスタ102は、応答メッセージ110内に含まれている応答データ108を処理することによりサービス106と対話する(208)。従って、リクエスタ102は、応答メッセージ110を受信して処理することによって、同時に、サービス106を発見し対話する。
サービス106からの応答メッセージ110が受け取られていた後、サービス106との更なる対話が所望されるなら、リクエスタ102は、サービス106との接続116(例えば、TCP/IP接続)を確立する(210)ためにサービス106から受信された発見情報112を使用することができる。そして、リクエスタ102は、この接続116を介してさらにサービス106と対話できる(212)。
図3は、一実施例による、サービスコマンド104への応答を含むパケット310の構成を示すブロック図である。表現された実施例では、応答パケット310の転送ヘッダ318は、サービス106が割り当てられるプロバイダ114のポート322と同様に、サービス106のプロバイダ114のネットワークアドレス320を含む。応答パケット310が送信されるよう要求するサービス106の一部として応答パケット310がプロバイダ114によって処理されるとき、この発見情報312は、転送ヘッダ318に含まれている。発見情報312が応答パケット310の転送ヘッダ318に含まれているため、発見情報312が応答パケットのペイロード324に含まれる必要はない。その結果、応答パケット310のペイロード324は、応答データ308、すなわち、サービス106がサービスコマンド104に応答してリクエスタ102に送信しているデータを含むことができる。
発見をサービスする既知のアプローチでは、リクエスタは、通常はサービスに関する情報を発見するためにサービスとは対話しない。その代わりに、個別の発見サーバは、利用可能なサービスに関する情報を提供できる。さらに、利用可能なサービスに関する情報の要求に対する応答は通常、エフェメラルポート、すなわち、応答を送信する目的のために一時的に割り当てられるポートから送信される。従って、既知のアプローチに従って送られる応答パケットの転送ヘッダは、サービスとの接続を確立する方法に関する情報を提供しない。対照的に、表わされた実施例では、発見情報312(すなわち、プロバイダ114のネットワークアドレス320とポート322)は、応答パケット310のペイロード324にレスポンス・データ308の補足余地を残して、応答パケット310の転送ヘッダ318に含まれている。
上記のように、ある状況の下では、リクエスタは、特定の領域内のすべての利用可能なサービスを発見したいと望まないかもしれない。その代わりに、リクエスタは、特定のサービス、又は特定のサービスのために、単なる問い合わせを望むことができる。例えば、ネットワーク内のすべてのプリンタを発見することの代わりに、リクエスタは、特定のプリンタを発見することを望むことができる(例えば、それに対してプリントジョブを送信することができるように)。
リクエスタが特定の領域内の特定のサービス(又はサービスのセット)を発見することを可能にするために、領域内の各サービスは、1つ以上の条件が満たされている場合にだけ値を返す関数を提供できる。この種類の関数は、本明細書において条件関数と呼ばれる。
図4は、一実施例による、サービス406で実行することができる条件関数426を示すブロック図である。条件関数426は、1つ以上の入力パラメータ428、1つ以上の条件評価オペレーション430、及び1つ以上の条件リターンオペレーション432を含んでいる。入力パラメータ428は、条件関数426をコールするときに、リクエスタによって提供される値である。条件評価オペレーション430は、1つ以上の条件が満たされているか否かを評価するためのオペレーションである。条件評価オペレーション430は、入力パラメータ428とサービス406によって保持される1つ以上の変数434とを比較することを含むことができる。条件リターン操作432は、適切な条件が満たされている場合に、呼出し側のリクエスタへ値を戻すためのオペレーションである。
図4に示す条件関数426の特定の実施例は、これから論じられる。この例では、リクエスタはネットワーク内の特定のプリンタを発見することを望んでいると仮定する。ネットワーク内の各プリンタサービスは、入力パラメータ428として所望のプリンタの名前を受け付ける条件関数426で構成できる。関数426は、所望のプリンタ名とサービス406によって保持される維持されるプリンタ名変数434とを比較することを含む条件評価オペレーション430を実行する。そして、条件リターンオペレーション432が実行される。特に、所望のプリンタ名がプリンタ名変数434にマッチする場合、関数426は、値(例えば、真)を呼出し側のリクエスタに返す。所望のプリンタ名がプリンタ名変数434にマッチしない場合、関数426は、リクエスタに何も返さない。リクエスタがこの例で述べられた条件関数426への呼び出しをマルチキャストすると、所望のプリンタに対応するプリンタサービス406だけが応答する。従って、リクエスタは、ネットワーク内の特定のプリンタを発見できる。
上で説明した実施例は、サービスを発見し対話するマルチキャスト技術の使用を含んでいる。しかしながら、いくつかのタイプのノードは、マルチキャストメッセージを処理するためには構成されないかもしれない。例えば、あるノードは、マルチキャストメッセージの受信及び/又は処理ができないかもしれない(例えば、それらはマルチキャストメッセージの処理のための適切なマルチキャストプロトコルスタックを有しない)。さらに、マルチキャストメッセージを処理することができるいくつかのノードは、少なくとも一時的にマルチキャストメッセージを処理しないように構成されるかもしれないし通知されるかもしれない。用語「非マルチキャストノード」は、マルチキャストメッセージを処理することができないため、あるいはマルチキャストメッセージを処理しないように構成又は通知されるため、マルチキャストメッセージを処理しないノードを示すために本明細書にて使用される。ある状況下では、リクエスタは、非マルチキャストノードによって提供されるサービスを発見し対話したいと望むかもしれない。
図5は、一実施例による、非マルチキャストノード上に置かれたサービスを発見し対話するためのシステム500を示すブロック図である。システム500は、マルチキャストプロキシ536を含んでいる。一般用語では、マルチキャストプロキシ536は、マルチキャスト対応のノードと非マルチキャストノードとの間のインターフェースとしての役目をする。非マルチキャストノードは、マルチキャストプロキシ536に登録する。マルチキャストプロキシ536は、登録された非マルチキャストノードの代理として、マルチキャストメッセージを受信し、登録された非マルチキャストノードにこれらのメッセージを転送する。非マルチキャストノードは、マルチキャストプロキシを介してマルチキャストメッセージに応答することができる。
リクエスタ502が、マルチキャストを介してマルチキャストプロキシ536を含むマルチキャストグループにサービスコマンド504を送信する場合、マルチキャストプロキシ536は、サービスコマンド504を受信し、要求されたサービス(本明細書で「非マルチキャストプロバイダ」と呼ばれる)を提供する1つ以上の非マルチキャストノードにそれを転送する。表わされた実施例には、マルチキャストプロキシ536と非マルチキャストプロバイダ514との接続517(例えば、TCP/IP接続)が存在する。マルチキャストプロキシ536は、接続517を介してサービスコマンド504を非マルチキャストプロバイダ514に転送できる。サービスコマンド504によって指定されるオペレーションを行なった後に、サービス506は、接続517を介して応答メッセージ510をマルチキャストプロキシ536に送り戻す。応答メッセージ510は、応答データ508、すなわち、サービス506がサービスコマンド504に呼応してリクエスタ502に送信しているデータを含んでいる。マルチキャストプロキシ536は、発見情報512(すなわち、マルチキャストプロキシ536の発見を容易にする情報512)を応答メッセージ510に追加し、元のリクエスタ502にユニキャストを介して応答メッセージ510を送信する。
まさに説明したプロセスで、リクエスタ502は非マルチキャストプロバイダ514に置かれるサービス506を同時に発見し対話することができる。上述したように、リクエスタ502は、応答メッセージ510内に含まれている応答データ508を処理することによって、サービス506と対話する。リクエスタ502は、応答メッセージ510内に含まれているマルチキャストプロキシ536用の発見情報512を処理することで、サービス502とさらに対話する方法を発見する。サービス506との更なる対話が所望される場合、リクエスタ502は、マルチキャストプロキシ536との接続516を確立するために発見情報512を使用することができる。そして、リクエスタ502は、マルチキャストプロキシ536を介してサービス506とさらに対話することができる。
ある実施例では、マルチキャストプロキシ536は、それが受信するマルチキャストメッセージを選択的に転送する選択的マルチキャストプロキシであっても良い。マルチキャストを介してサービスの要求を受信する場合、選択的マルチキャストプロキシが要求されたサービスのプロバイダを特定し、サービスがそのプロバイダに要求することを明確に指示するように、選択的マルチキャストプロキシを構成することができる。言いかえれば、選択的マルチキャストプロキシは、他の非マルチキャストノードのような他のノードではなく、そのプロバイダだけにサービス要求を転送する。選択的マルチキャストプロキシに関する追加の詳細は、「コンピュータネットワーク上の選択的マルチキャストプロキシを提供するためのシステム及び方法(Systems And Methods For Providing A Selective Multicast Proxy On A Computer Network)」というタイトルで、2005年12月16日に出願された、発明者Thomas MilliganとBryant Easthamの、同時係属中である米国特許出願第________号に記載されている。この同時係属中である米国の特許出願全体(それは現在の発明の譲受人に割り当てられる)は、ここに参考文献として援用する。
いくつかの状況下では、リクエスタは、個別のネットワーク内のノードによって提供されるサービスを、発見し対話することを望むことができる。通常、1つ以上のネットワーク機器(例えば、ルータ、ファイアウォールなど)は、プロバイダのネットワークからリクエスタのネットワークを分離する。これらのネットワークの機器のうちのいくつかあるいはすべては、マルチキャストアドレシングを送るためには構成されないかもしれない。上述したように、リクエスタは、サービスコマンドをマルチキャスティングすることによって、サービスを発見し対話するプロセスを起動する。従って、個別のネットワーク内のサービスの発見や対話を容易にするために、ネットワークを介してマルチキャストトラフィックをブリッジするための何らかの機構を提供できる。
図6は、一実施例による、個別のネットワーク内でサービスを発見し対話するためのシステム600を示すブロック図である。システム600は、複数のコンピュータネットワーク640、すなわち、ネットワーク(A)640a及びネットワーク(B)640bを含んでいる。各ネットワーク640は、複数の相互接続形ノードを含んでいる。ネットワーク640a、640b、マルチキャストアドレス指定を送るように構成されていない少なくとも1つのネットワーク機器642(例えば、ルータ、ファイアウォールなど)によって分離される。
各ネットワークは、マルチキャストリピータ646を含む少なくとも1つのノード644を含んでいる。より詳しく述べると、ネットワーク(A)640aは、マルチキャストリピータ646aを含むノード644aを含んでおり、ネットワーク(B)640bは、マルチキャストリピータ646bを含むノード644bを含んでいる。一般用語では、マルチキャストリピータ646は、1つの分離されたネットワーク(例えば、ネットワーク(A)640a)上で起こるマルチキャストメッセージを、別の分離されたネットワーク(例えば、ネットワーク(B)640b)上のノードに対して繰り返され、そのノードによって応答されるように許可するネットワークブリッジである。これを遂行するために、各マルチキャストリピータ646は、他のすべての既知のリピータ646(もし、マルチキャストメッセージが既に転送されていなければ)に、受信する各マルチキャストメッセージを転送するように構成される。マルチキャストリピータ646aの構成及びオペレーションに関する追加の詳細は、「ネットワークブリッジをUDPマルチキャストトラフィックに提供するためのシステム及び方法(Systems And Methods For Providing A Network Bridge For UDP Multicast Traffic)」というタイトルで、2005年12月20日に出願された、発明者Thomas MilliganとBryant Easthamの米国特許出願第________号に記載されている。この米国の特許出願全体(それは現在の発明の譲受人に割り当てられる)は、ここに参考文献として援用する。
ネットワーク(A)640a内のリクエスタ602がサービスコマンドをマルチキャストするとき、ネットワーク(A)640a内のマルチキャストリピータ646aは、サービスコマンドを受信し、ネットワーク(B)リピータ646bで確立された接続(例えば、TCP/IP接続)を介してネットワーク(B)640b内のマルチキャストリピータ646bにそれを送信する。ネットワーク(B)リピータ646bは、ネットワーク(B)640b上でサービスコマンドをマルチキャストする(そのポイントでは、ネットワーク(B)640b内のプロバイダ614におけるサービス606によって受信され、応答される)。
前述のとおり、ネットワーク内のノードは、組込みシステムを含むことができる。本システム及び方法は、組み込みシステムが他のコンピュータ機器にデータ及び/又はサービスを提供するコンピュータネットワーク内で実行することができる。図7は、一実施例に従って構成される組込みシステム702で用いることができるハードウェア機器のブロック図である。CPU(Central Processing Unit)708又はプロセッサは、その他の装置(装置はバス710を介してCPU708と結合される)を含んでいる組込みシステム702の動作を制御するために提供できる。CPU708は、マイクロプロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ又は当技術分野で既知のその他の機器として供されることができる。CPU708は、メモリ内に保存されたプログラムコードに基づいて、論理的及び算術演算を実行する。所定の実施例では、メモリ714は、CPU708を含むオンボードでメモリであっても良い。例えば、マイクロコントローラは、しばしばオンボードメモリの所定の量を含む。
組込みシステム702はまた、ネットワークインタフェース712も含むことができる。ネットワークインタフェース712は、組込みシステム702を、ネットワークに接続させる。ネットワークは、ポケベルのネットワーク、セルラネットワーク、グローバルな通信ネットワーク、インターネット、コンピュータネットワーク、電話網であっても良い。ネットワークインタフェース712は、標準プロトコルに従って、適用すべきネットワークのために動作する。
組込みシステム702はまた、メモリ714も含むことができる。メモリ714は、一時的なデータを格納するためのRAM(Random Access Memory)を含むことができる。代わりに又は更に、メモリ714は、一定のコードやコンフィギュレーションデータのような、より恒久的なデータを格納するためのROM(Read-Only Memory)を含むことができる。メモリ714は、ハードディスクドライブなどの磁気記憶装置としてもまた、供されることができる。メモリ714は、電子的情報を格納できるどのようなタイプの電子装置であっても良い。
組込みシステム702はまた、1つ以上のCOMポート716も含むことができる。COMポートは他の装置との通信を容易にする。組込みシステム702はまた、キーボード、マウス、ジョイスティック、タッチスクリーン、モニタ、スピーカー、プリンタなどのような入出力装置718も含むことができる。
もちろん、図7はコンピュータシステム701の1つの可能な構造だけを示している。他の種々のアーキテクチャと装置を利用できる。
本システム及び方法は、様々な場面に使用することができる。図8は本システム及び方法を実施することができるシステムの1つの実施例を示している。図8は、照明コントローラシステム808を含む照明システム800の1つの実施例を示すブロック図である。図8の照明システム800は、家庭内の種々の部屋に組み込むことができる。図示したように、システム800は、部屋(A)802、部屋(B)804、及び部屋(C)806を含んでいる。図8では3つの部屋が示されているが、システム800は、家庭、居住、又は他の環境の中で、どのような数及び種類の部屋でも導入できる。
照明コントローラシステム808は、システム800内で、追加組込みシステム及び装置を監視し、制御できる。1つの実施例において、部屋(A)802と部屋(B)804は、それぞれスイッチ装置814、818を含んでいる。スイッチ装置814、818は、セカンダリ組込みシステム816、820もまた含むことができる。セカンダリ組込みシステム816、820は、照明コントローラシステム808からの指示を受信できる。セカンダリ組込みシステム816、820は、その後これらの指示を実行できる。その指示は、種々の照明装置810、812、822、824の電源を入れたり、電源を切ったりすることを含むことができる。その指示は、種々の照明装置810、812、822、824の明るさを薄暗くしたり、明るさを増強したりすることを含むことができる。その指示は、種々のパターンの照明装置810、812、822、824の明るさをアレンジすることを更に含むことができる。セカンダリ組込みシステム816、820は、部屋(A)802と部屋(B)804にある各照明装置810、812、822、824を監視して制御するために、照明コントローラシステム808を円滑にする。
照明コントローラシステム808はまた、描かれた部屋(C)806にセカンダリ組込みシステム828を含む照明装置826に直接指示を与えるかもしれない。照明コントローラシステム808は、個別の照明装置826をパワーアップ又はパワーダウンするために、セカンダリ組込みシステム828に指示することができる。同様に、照明コントローラシステム808から受信された指示は、個々の照明装置826の明るさを薄暗くしたり、明るさを増強したりすることを含むことができる。
照明コントローラシステム808はまた、システム800内の個々の照明装置830及び832に対して、監視し、直接指示を与えることができる。これらの指示は、以前に説明したものと同様の指示を含むことができる。
図9は、本発明の本システム及び方法を実施することができるシステムの追加実施例である。図9は、セキュリティシステム900を示すブロック図である。描かれた実施例におけるセキュリティシステム900は、部屋(A)902、部屋(B)904、部屋(C)906で実施される。これらの部屋は、家庭又は他の閉じられた環境の範囲にあってもよい。システム900はまた、部屋(A)902、部屋(B)904、及び部屋(C)906がそれぞれ領域又は境界を表す開かれた環境で実施することもできる。
システム900は、セキュリティコントローラシステム908を含んでいる。セキュリティコントローラシステム908は、システム900内の種々の装置を監視し、情報を受信する。例えば、動作センサ914、918は、セカンダリ組込みシステム916を含むことができる。動きがセカンダリ組込みシステム916、920を介して検出されるとき、動作センサ914、918は、動きのために即座に空間を監視し、セキュリティコントローラシステム908に警告することができる。セキュリティコントローラシステム908はまた、システム900内の種々の装置にも指示を与えることができる。例えば、セキュリティコントローラシステム908は、窓センサ910、922とドアセンサ912、924を、パワーアップ又はパワーダウンするために、セカンダリ組込みシステム916、920へ指示を供給できる。1つの実施例において、セカンダリ組込みシステム916、920は、窓センサ910、922が窓の動きを検出した場合に、セキュリティコントローラシステム908に通知する。同様に、セカンダリ組込みシステム916、920は、ドアセンサ912、924がドアの動きを検出した場合に、セキュリティコントローラシステム908に通知する。セカンダリ組込みシステム916、920は、動作センサ914、918内に設置されたLED(図示せず)を作動させるために、動作センサ914、918に対して指示できる。
セキュリティコントローラシステム908はまた、システム900内の個々の装置を監視し、直接指示を与えることができる。例えば、セキュリティコントローラシステム908は、動作センサ930又は窓のセンサ932を監視し、パワーアップ又はパワーダウンするための指示を与えることができる。セキュリティコントローラシステム908はまた、センサ930及び932内でLED(図示せず)又はオーディオの警告通知を作動させるために、動作センサ930と窓のセンサ932に対して指示もできる
それぞれの個々の装置はまた、セカンダリ組込みシステムを含むことができるシステム900を備える。例えば、図9はセカンダリ組込みシステム928を含むドアセンサ926を示している。セキュリティコントローラシステム908は、以前説明したのと同じような方法で、セカンダリ組込みシステム928を監視し、指示を与えることができる。
図10は、ホームコントロールシステム1000の1つの実施例を示すブロック図である。ホームコントロールシステム1000は、照明システム800、セキュリティシステム900などの種々のシステムのモニタリングを容易にするホームコントローラ1008を含んでいる。ホームコントロールシステム1000は、ユーザに、1つ以上の組込みシステムを通して、種々の装置とシステムを制御することを可能にしている。1つの実施例では、ホームコントローラシステム1008は、以前に図8及び図9に関連して説明したのと同じ方法で、情報を監視して提供する。描かれている実施例では、ホームコントローラ1008は、セカンダリ組込みシステム1020を介して暖房装置1024に指示を与える。暖房装置1024は、居住場所又はオフィスで通常備えられる暖炉又は他の加熱装置を含むことができる。ホームコントローラシステム1008は、セカンダリ組込みシステム1020を介して、暖房装置1024をパワーアップ又はパワーダウンするための指示を与えることができる。
同様に、ホームコントローラ1008は、ホームコントロールシステム1000内の冷房装置1030などの装置を監視して、直接指示を与えることができる。冷房装置1030は、居住場所又はオフィスで通常備えられるエアコン又は他の冷却装置を含むことができる。セントラルホームコントローラ1008は、セントラル組込みシステム1008によってコントロールされた計測温度に応じてパワーアップ又はパワーダウンするように、冷房装置1030に指示できる。ホームコントローラシステム1008は、以前に図8及び図9に関連して説明したのと同じ方法で機能する。
さまざまな異なった技術と手法のどれかを使用することで、情報と信号を表すことができる。データ、指示、コマンド、情報、信号、ビット、シンボル、及びチップは、例えば、電圧、電流、電磁波、磁場又は粒子、光波又は粒子、又はそれのどのような組合せによって表すことができる上記の説明を通して参照できる。
本明細書に開示された実施例に関して説明した、種々の図示した論理ブロック、モジュール、回路、及びアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、又は両方の組合せとして実施することができる。明確にハードウェアとソフトウェアのこの互換性を図示するために、種々の図示された装置、ブロック、モジュール、回路、及びステップは、一般的に上記の機能性に関して説明されている。そのような機能性がハードウェア又はソフトウェアとして実施されるか否かは、システム全体に課された特殊用途と設計制約条件に依存する。当業者は、各特殊用途のための様々な方法における説明された機能性を実施することができるが、本発明の範囲からの逸脱しながら、そのような実施判断を解釈するべきでない。
本明細書に開示された実施例に関して説明された図示した論理ブロック、モジュール、及び回路は、汎用プロセッサ、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array signal)又は他のプログラマブル論理デバイス、離散的なゲート又はトランジスタロジック、離散的なハードウェア機器、又は本明細書に記載された機能を実行するように設計されたどのような組合せでも、実施又は実行できる。汎用プロセッサは、マイクロプロセッサであっても良いが、代替として、プロセッサは、どのような従来のプロセッサ、コントローラ、マイクロコントローラ、又は状態マシンであっても良い。プロセッサ又は、コンピュータ機器の組合せ、例えば、DSPとマイクロプロセッサ、複数のマイクロプロセッサ、DSPコアに関連した1つ以上のマイクロプロセッサ、又はいかなる他のそのような形態の組合せとしても実施することができる。
本明細書に開示された実施例に関して説明された方法又はアルゴリズムのステップは、直接的にハードウェアで、プロセッサにより実行されるソフトウェアモジュールで、又は2つの組合せで、具体化されることができる。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、又は当技術分野で既知の記憶媒体のいかなる他の形式にも常駐できる。例示された記憶媒体は、プロセッサが記憶媒体から情報を読み込んで、情報を書書き込むことができるように、プロセッサと結合される。別の方法では、記憶媒体はプロセッサに不可欠であろう。プロセッサと記憶媒体は、ASICに常駐できる。ASICは、利用者端末に常駐できる。別の方法では、プロセッサと記憶媒体は、個別装置として利用者端末に常駐できる。
本明細書に開示された方法は、説明された方法を遂行するために、1つ以上のステップ又は動作を具備する。方法ステップ及び/又は動作は、本発明の範囲から逸脱しないで、互いに交換できる。言い換えれば、実施例の適切な動作のために、ステップ又は動作に特定の順序を要しない限り、特定のステップ及び/又は動作の順序及び/又は行使は、本発明の範囲を逸脱しないで変更できる。
本発明の特定の実施例とアプリケーションを図示して説明したが、本発明が本明細書に開示された正確な形態と装置に限定されないことを理解されるべきである。当分野の当業者にとって明白な種々の修正、変更、及びバリエーションは、本発明の趣旨と範囲から逸脱しないで、本明細書に開示した本発明のアレンジ、操作、及び方法やシステムの詳細を成しうることができるであろう。
本発明は組込みシステムに適用できる。
一実施例による、サービスを発見し対話するためのシステムを示すブロック図である。 図1に表わされた実施例における、リクエスタのオペレーションを示すフローチャートである。 一実施例による、サービスコマンドへの応答を含むパケットの構成を示すブロック図である。 一実施例による、サービスで実行することができる条件関数を示すブロック図である。 一実施例による、非マルチキャストノード上に置かれたサービスを発見し対話するためのシステムを示すブロック図である。 一実施例による、個別のネットワーク内でサービスを発見し対話するためのシステムを示すブロック図である。 一実施例によって構成される組込みシステムで用いることができるハードウェア機器のブロック図である。 本システム及び方法を実施することができる照明システムの一例を示す。 本システム及び方法を実施することができるセキュリティシステムの一例を示す。 本システム及び方法を実施することができるホームコントローラシステムの一例を示す。

Claims (20)

  1. サービスを発見し対話するための方法であって、前記方法はリクエスタによって実行され、
    サービスコマンドをマルチキャストし、
    前記サービスコマンドに呼応して、少なくとも1つのサービスから応答データを受信し、
    前記サービスコマンドに呼応して、リクエスタが少なくとも1つのサービスと対話することを可能にする発見情報を受信し、
    前記応答データを処理し、
    前記発見情報を処理する
    ことを特徴とする方法。
  2. 請求項1に記載の方法において、少なくとも1つのサービスは、以前にリクエスタによって発見されていないことを特徴とする方法。
  3. 請求項1に記載の方法において、応答データと発見情報とは、同時に受信されることを特徴とする方法。
  4. 請求項1に記載の方法は、さらに、少なくとも1つのサービスに接続するために前記発見情報を使用することを含むことを特徴とする方法。
  5. 請求項1に記載の方法において、特定のサービスからの前記発見情報は、
    サービスのプロバイダのネットワークアドレスと、
    サービスが利用可能であるプロバイダのポートと
    を含むことを特徴とする方法。
  6. 請求項1に記載の方法において、特定のサービスからの前記発見情報は、前記サービスから送信されたパケットの転送ヘッダ内に含まれていることを特徴とする方法。
  7. 請求項1に記載の方法において、特定のサービスからの前記応答データが、前記サービスから送信されたパケットのペイロード内に含まれていることを特徴とする方法。
  8. 請求項1に記載の方法において、前記サービスコマンドは、条件関数への呼び出しであることを特徴とする方法。
  9. 請求項1に記載の方法において、少なくとも1つのサービスは、非マルチキャストプロバイダ上に置かれるサービスを含むことを特徴とする方法。
  10. 請求項1に記載の方法において、少なくとも1つのサービスは、マルチキャストアドレシングを送るように構成されてない少なくとも1つのネットワーク機器によって前記リクエスタのネットワークから分離されるネットワーク内のプロバイダに置かれるサービスを含むことを特徴とする方法。
  11. 請求項1に記載の方法において、サービスコマンドのマルチキャスティングは、ユーザデータグラムプロトコルに従って実行されることを特徴とする方法。
  12. 請求項1に記載の方法において、前記応答データと前記発見情報は、ユーザデータグラムプロトコルの実現に従ってユニキャストを介して受信すされることを特徴とする方法。
  13. サービスを発見し対話するための方法を実行するように構成されるコンピュータシステムであって、
    プロセッサと、
    前記プロセッサとともに電子通信にあるメモリと、
    前記メモリに格納された命令とを備え、
    前記命令は方法を実施するために実行可能であり、前記方法は、
    サービスコマンドをマルチキャストし、
    前記サービスコマンドに呼応して、少なくとも1つのサービスから応答データを受信し、
    前記サービスコマンドに呼応して、リクエスタが少なくとも1つのサービスと対話することを可能にする発見情報を受信し、
    前記応答データを処理し、
    前記発見情報を処理する
    ことを特徴とするコンピュータシステム。
  14. 請求項13に記載のコンピュータシステムにおいて、少なくとも1つのサービスは、以前にリクエスタによって発見されていないことを特徴とするコンピュータシステム。
  15. 請求項13に記載のコンピュータシステムにおいて、応答データと発見情報とは、同時に受信されることを特徴とするコンピュータシステム。
  16. 請求項13に記載のコンピュータシステムにおいて、前記方法は、さらに、少なくとも1つのサービスに接続するために前記発見情報を使用することを含むことを特徴とするコンピュータシステム。
  17. サービスを発見し対話するための方法を実施するための実行可能命令を含むコンピュータ読み込み可能な媒体であって、前記方法は、
    サービスコマンドをマルチキャストし、
    前記サービスコマンドに呼応して、少なくとも1つのサービスから応答データを受信し、
    前記サービスコマンドに呼応して、リクエスタが少なくとも1つのサービスと対話することを可能にする発見情報を受信し、
    前記応答データを処理し、
    前記発見情報を処理する
    ことを含むことを特徴とするコンピュータ読み取り可能な媒体。
  18. 請求項17に記載のコンピュータ読み込み可能な媒体において、少なくとも1つのサービスは、以前にリクエスタによって発見されていないことを特徴とするコンピュータ読み取り可能な媒体。
  19. 請求項17に記載のコンピュータ読み込み可能な媒体において、応答データと発見情報とは、同時に受信されることを特徴とするコンピュータ読み取り可能な媒体。
  20. 請求項17に記載のコンピュータ読み込み可能な媒体において、前記方法は、さらに、少なくとも1つのサービスに接続するために前記発見情報を使用することを含むことを特徴とするコンピュータ読み取り可能な媒体。
JP2007509762A 2005-12-28 2006-02-07 サービスを発見し対話するためのシステム及び方法 Expired - Fee Related JP4140660B1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/320,498 2005-12-28
US11/320,498 US7330882B2 (en) 2005-12-28 2005-12-28 Systems and methods for discovering and interacting with services
PCT/JP2006/302410 WO2007077633A1 (en) 2005-12-28 2006-02-07 Systems and methods for discovering and interacting with services

Publications (2)

Publication Number Publication Date
JP4140660B1 JP4140660B1 (ja) 2008-08-27
JP2008542853A true JP2008542853A (ja) 2008-11-27

Family

ID=36588899

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007509762A Expired - Fee Related JP4140660B1 (ja) 2005-12-28 2006-02-07 サービスを発見し対話するためのシステム及び方法

Country Status (8)

Country Link
US (1) US7330882B2 (ja)
EP (1) EP1966692B1 (ja)
JP (1) JP4140660B1 (ja)
KR (1) KR100996065B1 (ja)
CN (1) CN100451973C (ja)
HK (1) HK1108742A1 (ja)
RU (1) RU2399086C2 (ja)
WO (1) WO2007077633A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018500836A (ja) * 2014-12-30 2018-01-11 クゥアルコム・インコーポレイテッドQualcomm Incorporated コネクテッドホームアーキテクチャに対して、イーサネット上で、lte音声、インターネット、及びembmsサービスを提供するためのメカニズム

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3973986B2 (ja) * 2002-07-12 2007-09-12 株式会社エヌ・ティ・ティ・ドコモ ノード探索方法、ノード、通信システム及びノード探索プログラム
US8478300B2 (en) * 2005-12-20 2013-07-02 Microsoft Corporation Proximity service discovery in wireless networks
US8559350B2 (en) * 2005-12-20 2013-10-15 Microsoft Corporation Mechanism to convey discovery information in a wireless network
US7613426B2 (en) * 2005-12-20 2009-11-03 Microsoft Corporation Proximity service discovery in wireless networks
US20070264991A1 (en) * 2006-05-15 2007-11-15 Microsoft Corporation Services near me: discovering and connecting to available wireless services utilizing proximity discovery
US10681151B2 (en) 2006-05-15 2020-06-09 Microsoft Technology Licensing, Llc Notification framework for wireless networks
US8681691B2 (en) * 2007-07-25 2014-03-25 Microsoft Corporation Base station initiated proximity service discovery and connection establishment
US7974574B2 (en) * 2007-07-25 2011-07-05 Microsoft Corporation Base station initiated proximity service discovery and connection establishment
US9105031B2 (en) 2008-02-22 2015-08-11 Microsoft Technology Licensing, Llc Authentication mechanisms for wireless networks
CN102006315A (zh) * 2009-08-28 2011-04-06 迈普通信技术股份有限公司 分布式系统远程过程调用通信方法
WO2011085409A2 (en) * 2010-01-11 2011-07-14 Innovative Timing Systems Sports timing system (sts) event and participant announcement communication system (epacs) and method
EP2367356B1 (en) * 2010-03-17 2012-05-23 Lg Electronics Inc. Method for IPTV service discovery and IPTV receiver using the same
CN104025070A (zh) * 2011-10-24 2014-09-03 施耐德电器工业公司 用于管理工业过程的系统和方法
KR20130091098A (ko) * 2012-02-07 2013-08-16 한국전자통신연구원 노드 탐색 메시지를 전송하기 위한 장치 및 방법
CN103684900B (zh) * 2012-09-19 2018-03-16 腾讯科技(深圳)有限公司 业务巡检方法和系统
US10284659B2 (en) 2013-01-25 2019-05-07 Apple Inc. Hybrid unicast/multicast DNS-based service discovery
CN105340247B (zh) * 2013-04-09 2020-10-16 罗伯特·博世有限公司 用于计算机网络中网络容变服务发现的方法
KR102062078B1 (ko) 2013-06-05 2020-01-03 한국전자통신연구원 통신 개체 탐색 방법 및 장치
CN104283979B (zh) 2013-07-11 2017-11-17 华为技术有限公司 组播域名系统中报文传输的方法、装置及系统
KR102016416B1 (ko) 2014-03-03 2019-09-02 한국전자통신연구원 노드 및 노드 간 통신 연결 방법
US10419497B2 (en) * 2015-03-31 2019-09-17 Bose Corporation Establishing communication between digital media servers and audio playback devices in audio systems

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3999051A (en) * 1974-07-05 1976-12-21 Sperry Rand Corporation Error logging in semiconductor storage units
US6185611B1 (en) * 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
US6845393B1 (en) 1999-06-14 2005-01-18 Sun Microsystems, Inc. Lookup discovery service in a distributed system having a plurality of lookup services each with associated characteristics and services
US6615374B1 (en) * 1999-08-30 2003-09-02 Intel Corporation First and next error identification for integrated circuit devices
US6776636B1 (en) * 1999-11-05 2004-08-17 Baker Hughes Incorporated PBR with TEC bypass and wet disconnect/connect feature
US20020107939A1 (en) * 2001-02-07 2002-08-08 Ford Daniel E. System and method for accessing software components in a distributed network environment
US7962605B2 (en) * 2001-11-20 2011-06-14 Microsoft Corporation Distributed device discovery framework for a network
US20030140119A1 (en) * 2002-01-18 2003-07-24 International Business Machines Corporation Dynamic service discovery
US6876636B2 (en) * 2002-07-09 2005-04-05 Qualcomm Inc. Method and system for a multicast service initiation in a communication system
US20040019636A1 (en) * 2002-07-24 2004-01-29 Sun Microsystems, Inc. System and method for dynamically routing web procedure calls
US7035257B2 (en) * 2002-11-14 2006-04-25 Digi International, Inc. System and method to discover and configure remotely located network devices
CN1178424C (zh) * 2003-01-31 2004-12-01 联想(北京)有限公司 网络会议中设备及服务动态加入的方法及其系统
JP2004272632A (ja) * 2003-03-10 2004-09-30 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
CN1282366C (zh) * 2003-03-31 2006-10-25 联想(北京)有限公司 网络中设备状态的检测方法
WO2004111773A2 (en) * 2003-06-02 2004-12-23 Infocus Corporation Image display device and method of announcing a presence of an image display device over network
US9160571B2 (en) * 2004-03-11 2015-10-13 Hewlett-Packard Development Company, L.P. Requesting a service from a multicast network
US7423986B2 (en) * 2004-03-26 2008-09-09 Cisco Technology, Inc. Providing a multicast service in a communication network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018500836A (ja) * 2014-12-30 2018-01-11 クゥアルコム・インコーポレイテッドQualcomm Incorporated コネクテッドホームアーキテクチャに対して、イーサネット上で、lte音声、インターネット、及びembmsサービスを提供するためのメカニズム

Also Published As

Publication number Publication date
WO2007077633A1 (en) 2007-07-12
RU2399086C2 (ru) 2010-09-10
RU2008124972A (ru) 2009-12-27
JP4140660B1 (ja) 2008-08-27
KR20080080118A (ko) 2008-09-02
EP1966692B1 (en) 2015-09-30
US20070150570A1 (en) 2007-06-28
HK1108742A1 (en) 2008-05-16
US7330882B2 (en) 2008-02-12
CN101069159A (zh) 2007-11-07
KR100996065B1 (ko) 2010-11-22
EP1966692A1 (en) 2008-09-10
CN100451973C (zh) 2009-01-14

Similar Documents

Publication Publication Date Title
JP4140660B1 (ja) サービスを発見し対話するためのシステム及び方法
JP4029911B1 (ja) コンピュータネットワーク上の選択式マルチキャストプロキシを提供するためのシステム及び方法
US7529241B2 (en) Systems and methods for providing a network bridge for UDP multicast traffic
JP4412405B2 (ja) ネットワーク内通信用転送処理を選択するためのシステムと方法
JP4096991B1 (ja) ピアツーピアネットワーク内のトラフィックを管理するためのシステム及び方法
EP1964373B1 (en) Systems and methods for efficient electronic communication in a distributed routing environment
KR100996026B1 (ko) 분산 라우팅 환경에서의 장애 극복 처리 시스템 및 방법

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080602

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4140660

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 3

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120620

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120620

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130620

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees