JP3915797B2 - プラグアンドプレイ機能を有するフレームワークおよびその再構成方法 - Google Patents
プラグアンドプレイ機能を有するフレームワークおよびその再構成方法 Download PDFInfo
- Publication number
- JP3915797B2 JP3915797B2 JP2004152883A JP2004152883A JP3915797B2 JP 3915797 B2 JP3915797 B2 JP 3915797B2 JP 2004152883 A JP2004152883 A JP 2004152883A JP 2004152883 A JP2004152883 A JP 2004152883A JP 3915797 B2 JP3915797 B2 JP 3915797B2
- Authority
- JP
- Japan
- Prior art keywords
- service
- agent
- user
- framework
- pnp
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Information Transfer Systems (AREA)
- Small-Scale Networks (AREA)
- Communication Control (AREA)
Description
GeneralPrintService pservice=(GeneralPrintService)o;
pservice.print();
しかし、このコードが書かれるときに、プログラマは、GeneralPrintServiceという名前のインタフェースがコード実行時に本当に存在するかどうかを知らない。さらに、プログラマが複数のデバイスでイメージを印刷したい場合、複数のインタフェースを予想し、それに応じて印刷を行う必要がある。
完全なアクティブコンフィグレーションアーキテクチャは、ダミーデバイス、ゲートウェイデバイス、および、ネットワークに直接的または間接的に接続されたPnPブローカからなる。アクティブコンフィグレーションフレームワークのアーキテクチャを図1に示す。図1に示すように、ネットワークには1個以上の実行環境102がある。実行環境102は、例えば、インターネットのようなネットワーク101を用いて相互接続される。実行環境102は、ある意味で、ネットワークノードとして作用する。実行環境102は、当業者に周知のJava仮想マシンやWindowsTMベースのマシン内にあることが可能である。実行環境102は、ゲートウェイ(図示せず)を通じて非インテリジェント(すなわち、ダミー)デバイスに接続された1個以上のPnPブローカ104を有する。ユーザアプリケーション103は、PnPブローカ104を通じて、デバイスを発見し、利用し、デバイスと通信する。以下で、本発明のアクティブコンフィグレーションフレームワークシステムのさまざまなコンポーネントについて詳細に説明する。
ダミーデバイスは、TCP/IPプロトコルスタック、もしくはJava仮想マシン、またはその両方のないデバイスである。このようなデバイスは、ネットワークから直接にアクセス可能ではなく、媒介物としてゲートウェイを必要とする。このようなデバイスは、ネットワークにインストールされる前に、特定のコンフィグレーション選択を行う必要がある。例えば、それぞれのX−10デバイス(白熱電球など)には、電源線ネットワークに接続する前に手動でハウスコードおよびデバイスコードを割り当てなければならない。さらに、このようなデバイスは、提示するサービスのためのセキュリティやアクセス制御を実施することはない。このようなデバイスのほとんどは、メモリや処理能力を有しておらず、ネットワークの残りの部分に依然として接続する必要のあるレガシーデバイスとして特徴づけることができる。
通常のネットワークデバイスは、単一のネットワークタイプ(例えば、IPまたはIPX)により、ピアツーピア方式で相互作用することができる。これは、あるネットワークタイプのデバイスは、同じネットワークに物理的に接続された、同じネットワークタイプのデバイスとのみ通信することができることを意味する。第1のデバイスが、その第1のデバイスによってサポートされていないネットワーク上にある第2のデバイス、あるいは、第1のデバイスによってサポートされていないプロトコルを実行している第2のデバイスに接続することを必要とする場合に問題が生じる。この問題を解決するには2つのアプローチがある。
PnPブローカは、アプリケーション、サービス、およびデバイスのサービスブローカとして作用する。PnPブローカは、分散システムのためのInfobusの概念を拡張し、ネットワーク全体をSoftware Busとして扱う。Infobusシステムは当業者に周知である。詳細な説明は、Reaz Hoque, "Connecting JavaBeans with InfoBus", Wiley Computer Publishing, Nov. 98、にある。Software Busもまた当業者に周知であり、Brian Oki, Manfred Pfluegl, Alex Siegel, and Dale Skeen, "The Information Bus - an architecture for extensible distributed systems", Proceedings of the 14th Symposium on Operating Systems Principles, p.58-68, Asheville, North Carolina, December 1993、に記載されている。
PnPブローカの内部コンポーネントを図4に示す。通常、PnPブローカは、サービスレジストリ305、サービスディスカバリ/アベイラビリティエージェント304、サービスセッション管理エージェント306、サービスロケーションプロトコル(SLP:service location protocol)ユーザエージェント308およびSLPサービスエージェント307からなる。PnPブローカ間プロトコル303は、他のPnPブローカ301との通信に使用される。PnPブローカインタフェース302は、ユーザアプリケーション103に対するインタフェースを提供する。サービスロケーションプロトコル(SLP)は、当業者に周知であり、James Kempf and Pete St. Pierre, "Service Location Protocol for Enterprise Networks: Implementing and Deploying a Dynamic Service Resource Finder", John Wiley and Sons, 1999、に記載されている。サービスレジストリは、1個以上のサービスレコードを含む。サービスレジストリ内のすべての情報は、検索、索引づけおよび交換を容易にするために、XML(eXtensible Markup Language)として記述される。XMLもまた当業者に周知であり、Natanya Pitts-Moultis and Cheryl Kirk, "XML black book", Coriolis Group Books, 1999、に記載されている。
PnPブローカは、サービスについての情報を保持するためにサービスレジストリを含む。最小限、レジストリは、そのPnPブローカに直接に接続されたゲートウェイおよびサービスについての情報を格納する。図3に示すように、これらのサービスは、ローカルPnPブローカ104またはリモートPnPブローカ1104にある。さらに、PnPブローカレジストリは、他のPnPブローカに登録されているサービスについての情報を格納することも可能である。この拡張されたレジストリ機能により、ローカルPnPブローカは、サービスのローカルなディレクトリを保持することが可能となる。これは、ローカルな環境にとって重要であり、ネットワーク内に別個の「集中化した」SLPディレクトリエージェントは不要となる。例えば、ローカルPnPブローカがプリントサーバをサポートする場合、レジストリは、すべての準拠プリントサーバについての情報を有することが可能である。最終的に、この情報は、負荷均衡、フォールトトレランス、あるいはキャッシュのために使用可能である。また、PnPブローカサービスレジストリは、デバイスタイプにかかわらず、ローカルPnPブローカの範囲内にあるすべての準拠デバイスについての情報を提供する、ネットワークディレクトリとして作用することも可能である。この場合、ネットワーク内のPnPブローカのうちの1つが、すべてのPnPブローカを見つけて登録する責任を負う中心ディレクトリとして指定されることになる。ネットワークリソースに対する他のデバイスからのすべての要求は、このPnPブローカへ向けて送られ、このPnPブローカはそれぞれに応答することになる。
サービスレコードは、ネットワーク接続されたクラスタ内の利用可能なサービスユニットのセットであり、利用可能なサービスと、他のPnPブローカから要求されたサービスとを記述する。サービスレコードは、そのローカルクラスタ内の0個以上のサービスユニットレコードからなる。サービスユニットレコードは、サービスユニットIDフィールドと、それに続く0個以上の属性レコードからなる。サービスユニットIDフィールドは、サービスユニットのタイプと、そのサービスユニットによって提供されるサービスとを識別する。デバイスは、ただ1つのサービスユニットを有するが、複数の属性を有することも可能である。属性レコードは、属性IDフィールド、その値、および、アクセス制御情報からなる。属性レコードは、主に、それぞれのサービスまたはデバイスに対する細かいアクセス制御を実施するために使用される。さらに、属性レコードは、デバイスの現在の状態、および、それを変更するために使用可能なインタフェースの記述を格納する。
PnPブローカは、リモートPnPブローカを発見し利用可能なサービスを識別するために、サービスディスカバリ/アベイラビリティエージェントを必要とする。サービスディスカバリ(発見)は、ローカルPnPブローカによって指定される、要求されるサービスタイプを、リモートPnPブローカ上で利用可能なサービスタイプと比較することによって実行される。ローカルPnPブローカからリモートPnPブローカへ要求サービスタイプを送信し、リモートPnPブローカからローカルPnPブローカへその応答を送信するために、上記のJavaRMIやHTTPを使用することができる。要求サービスタイプの指定の検査により、PnPブローカは、リモートPnPブローカに登録されているすべてのあるいは特定のサービスの特性を決定することができる。サービスディスカバリ/アベイラビリティエージェントは、SLPユーザエージェントおよびSLPサービスエージェントの上に位置する。
ユーザアプリケーションがサービスまたはデバイスを発見し、それを使用したいとき、PnPブローカは、ユーザアプリケーションとそのサービスの間に仮想パイプ(トンネル)を確立する。これをサービスセッションという。このようなトンネルを用いて、ユーザアプリケーションとサービスの間で、コマンド、応答およびデータを交換することができる。デバイスのインタフェースの編成に従って、これらのコマンド、応答、およびデータは特定のフォーマットを有し、定義されたプロトコルのもとで交換される。PnPブローカは、この仮想パイプを管理しながら、以下の3つのプロトコルのうちの1つで動作するよう指令されることが可能である。
PnPブローカは、データパイプを設定した後、バックグラウンドに入ることにより、ユーザアプリケーションとサービスが、メッセージストリームおよびデータフォーマットを管理することを可能にする。このアプローチは、PnPブローカが他のネットワークエンティティの能力を発見するために単独で使用され、アプリケーション、サービス、およびデバイスがユーザアプリケーションと発見されたサービスとの間の相互作用を管理するときに有用である。メッセージは、PnPブローカの関与なしに、ユーザアプリケーションとサービスの間で直接に交換される。メッセージ交換は、厳密に、ネイティブパケットにおけるネイティブデータの形式である。サービスを要求する前にサービスを発見するためあるいはサービスの問合せ(クエリ)を行うために、ユーザアプリケーションは、PnPブローカ間プロトコルを使用可能である。例えば、IEEE1394対応のカメラは、このデータ交換フォーマットを用いて、データストリームをディジタルVCRに送ることができる。
データフォーマットはユーザアプリケーションおよびサービスによって選択され制御される一方で、PnPブローカが、データパイプを設定し、メッセージストリームを管理することも可能である。このアプローチは、ユーザアプリケーションと発見されたサービスとの間で共通のメッセージングプロトコルが存在しないときに有用である。すべてのメッセージは、PnPブローカ間プロトコルによって運ばれる。例えば、IEEE1394対応カメラは、PnPブローカを通じて、異なるクラスタ内のディジタルVCRにデータストリームを送る。
PnPブローカが、データパイプを設定し、メッセージストリームを管理し、ユーザアプリケーションとサービスとの相互作用のためのデータフォーマット定義を提供する。また、ブローカは、ユーザアプリケーションと発見されたサービスとの間の共通のメッセージングプロトコルおよび共通のデータフォーマットを提供する。メッセージ交換情報は、PnPブローカデータに含まれ、これはパケットにフォーマットされる。ユーザアプリケーションメッセージは、PnPブローカを通るが、PnPブローカは、メッセージの内容あるいはセマンティクスを検査することはない。このタイプの相互作用の例は、USBデバイスと対話するIEEE1394対応デバイスである。
ユーザエージェントは、あるサービスとの接続を確立するためにユーザに代わって動作するプロセスである。ユーザエージェントは、サービスエージェントまたはディレクトリエージェントからサービス情報を取得する。
サービスエージェントは、サービスを公表するために、1個以上のサービスに代わって動作するプロセスである。
PnPブローカは、ユーザアプリケーションがネットワークのプラグアンドプレイ機能を利用することができるようにする標準化されたインタフェースを公開する。このPnPブローカインタフェースを用いて、アプリケーションは、トランスポート層とは独立にPnPブローカ間プロトコルを用いて相互に通信するように書くことができる。この設計は、ポータビリティ(可搬性)を促進し、ネットワークサービスの発見および選択のためのスケーラブルなフレームワークを提供する。PnPブローカ間プロトコルは、IETF Service Location Protocol v.2に基づいており、サービスをサポートするネットワークホストの名前をユーザアプリケーションが知ることは不要である。むしろ、ユーザは、PnPブローカインタフェースを通じて、所望のサービスタイプと、対応する属性のセットとをPnPブローカに与える。これらは、PnPブローカに対して、所望のサービスを記述する。この記述に基づいて、PnPブローカは、PnPブローカ間プロトコルを用いてサービスのネットワークアドレスを解決し、PnPブローカ間プロトコルは、サービスロケーションプロトコルを使用する。また、PnPブローカインタフェースは、デバイスあるいはサービスのためのユーザの識別および認証機構を扱う。いったんサービスが識別されると、PnPブローカ間プロトコルは、JavaRMIあるいはHTTPを用いて、ユーザアプリケーションが、発見されたサービスを使用することを可能にする。このフレームワークのもう1つの重要な特徴はゲートウェイによって提供される。ゲートウェイは、デバイスの能力をPnPブローカに登録し、PnPブローカが、PnPブローカにおいてサービスエージェントを通じてサービスを使用することを可能にする。
PnPブローカは、サービス登録、サービス発見、サービス要求、およびアベイラビリティチェックのために、ユーザアプリケーションに対して、標準化されたAPIおよびインタフェースを公開する。さらに、PnPブローカは、適当なサービスあるいはデバイスのためのユーザの識別および認証を扱う。
必要なとき、サービスユニットまたははユーザアプリケーションは、それぞれ、サービスユニットまたはユーザアプリケーションとしてローカルPnPブローカに自分を登録または登録解除するために、RegisterService()またはUnregisterService()を呼び出す。ユーザアプリケーションまたはサービスユニットがPnPブローカに登録された後、その機能は、別のユーザアプリケーションまたはサービスユニットからのQueryService()またはSearchService()要求に対する応答に含まれる。
ユーザアプリケーションは、SearchService()を呼び出して、ローカルPnPブローカに対し、特定のサービスを有する登録されたサービスユニットを含むPnPブローカを探索するよう要求する。ユーザアプリケーションは、QueryService()を呼び出して、どのようなサービスユニットが登録されているか、および、ユーザアプリケーションによって指定されたPnPブローカに登録されているサービスユニットの機能を発見する。
ユーザアプリケーションまたはサービスユニットは、OpenService()を呼び出して、ローカルPnPブローカに対し、ローカルPnPブローカまたはリモートPnPブローカのいずれかに登録されている特定のサービスユニットとのサービスセッションを開始するよう要求する。TransferData()、ReceiveData()、およびCloseService()コールにより、追加機能が提供される。
ユーザアプリケーションまたはサービスユニットは、StartAvailabilityCheck()を呼び出して、ローカルPnPブローカに対し、ローカルPnPブローカまたはリモートPnPブローカのいずれかに登録されている特定のサービスユニットが動作しているかどうかを周期的にチェックするよう要求する。
好ましい実施例では、本発明は、Javaアプリケーション環境を利用する。これは、分散コンピューティングのための適切な、現在利用可能なコンピューティングプラットフォームを提供するからである。この環境では、コードおよびデータの両方が、マシン間で移動可能である。この環境は、別のマシンからダウンロードされたコードが、妥当なレベルの信頼性で動作することを可能にする組込みセキュリティを有する。Javaアプリケーション環境における強い型付けにより、仮想マシン上で、オブジェクトのクラスの識別は、そのオブジェクトがそのマシン上で発生したものでないときでも実行可能である。その結果、ネットワークは、必要に応じて移動可能なオブジェクトの流動的なコンフィグレーションをサポートし、オペレーションを実行するためにネットワークの任意の部分を呼び出すことができる。
PnPブローカ間通信プロトコルは、2つの部分に分かれる。第1に、ネットワーク内で新たなデバイスおよびサービスを発見するための、プロトコルおよび機構のセットが使用される。発見(ディスカバリ)手続きは、ユーザアプリケーションがどのようにしてネットワークインフラストラクチャを探索するか、および、ユーザアプリケーションがどのようにして自分自身およびそのサービスを登録することができるかを指定するサービスディスカバリプロトコルの部分に基づく。他方、ルックアップ手続きは、ユーザアプリケーションが、集中化されたレジストリがある場合あるいはない場合に、必要とするサービスを探索するためにどのようにしてレジストリに問合せを行うかを指定するプロトコルに基づく。
ルックアップおよびディスカバリの両方のために、サービスロケーションプロトコル(SLP)が使用される。図5に、サービスディスカバリ手続きを示す。SLPは、自動的に、しかも事前の設定なしで、ユーザエージェント(UA:user agent)502の要求を、サービスエージェント(SA:Service Agent)504によって提供されるサービス512と照合する。SLPは、SAによるサービスの公表と、ディレクトリエージェント(DA:Directory Agent)511により管理されるSLPディレクトリ508へのサービスの編成とを処理する。また、SLPは、サービスがユーザアプリケーションにサービスの能力および設定条件を通知する手段を提供する。
サービス/デバイス登録プロセスの一部として、まず、サービスユニット512のゲートウェイは、サービスあるいはデバイスをSA504に登録し、その後、SA504は、SrvRegメッセージ506をDA511に送る。この登録は、サービスの特定のインスタンスに対するサービスURIと、そのサービスを記述する属性値対とを含む。DA511は、さまざまな目的で、このような登録をキャッシュすることが可能である。登録がキャッシュされた後、DA511は、SrvAckメッセージにより応答する。また、サービス登録は、寿命(lifetime)を含む。サービスが利用不能になったがそれ自身を登録解除することができなかった場合、寿命値により、DA511は、キャッシュされた登録を満期にすることができる。この状況は、SA504がSrvDeregメッセージ506を発行することができない場合にしか生じないはずである。正常動作中、SA504は、後続のSrvRegメッセージで周期的にサービスの登録をリフレッシュする。このような「リフレッシュ」メッセージは、いずれかの値が変化した場合には更新された情報を含むことが可能であるが、完全な属性のセットを含む必要はない。
SLPを使用することにより、PnPブローカは、同じタイプの多くの他の公表されたデバイスから適当なサービスの正確な選択をすることができる。これは、UA502によって要求されたキーワードおよび要求された属性値に一致するサービスのみを要求することによって行われる。このようなキーワードおよび属性値は、AND、OR演算子、一般的な比較演算子により、また、部分文字列マッチングを使用することにより、ブール式へと結合することができる。
LDAPv3(Lightweight Directory Access Protocol)は、当業者に周知であり、汎用のディレクトリアクセスプロトコルとして普及しつつある。LDAPはその名前にLightweight(軽量)とあるが、SLPはLDAPよりもさらに「軽量」である。また、SLPは、自動ディレクトリ管理を提供するため、および、階層的で自由度の少ない名前空間における不適切なリソース配置を必要としないために、リソース管理においてLDAPよりすぐれている。SLPにおいて新たなサービスタイプを追加することはLDAPの場合よりもずっと容易である。タイプによる問合せは、SLPの場合のほうがLDAPの場合よりも効率的である。既存のリソースに対する属性記述は、SLPでは利用可能であるが、LDAPでは不可能である。
サービスディスカバリ/登録プロセスは、サービスロケーションプロトコルによって提供されるURIによって検索可能なサービスレコードを提供する。PnPブローカ間の交換能力は、サービスレコードを含むQueryService()メッセージを交換することにより提供される。この問合せ(query)は、ユーザアプリケーションが利用したいサービスの要件を記述し、リモートPnPブローカに対してサービスの詳細を要求する。
PnPブローカ/ゲートウェイプロトコルは、簡単なメッセージ交換機構に基づいている。ゲートウェイは、既に説明したように、ゲートウェイに直接に接続されたサービスユニットを代表し、提供されるサービスを登録する。また、ゲートウェイは、PnPブローカにあるサービスエージェントに対する、任意のサービスのコンフィグレーションにおいてなされる変更を反映する。この登録は、リースに基づいており、ゲートウェイまたはサービスエージェントのいずれかにより更新可能である。登録は、サービスエージェントに現在の情報を提供する。PnPブローカは、特定のサービスに対する要求を受け取ると、まず、サービスエージェントをチェックして、必要なデバイスあるいはサービスをいずれかの直接接続されたゲートウェイが提供するかどうかを判定する。また、ゲートウェイにより、サービスエージェントは、ゲートウェイ内の特定のイベントに関心があることを登録し、そのイベントの発生の通知を受け取ることが可能である。このようなイベントは、ネットワークにおけるデバイス/サービスの追加/削除であることが可能である。サービスのサービスレコードがアプリケーションの要件に一致した場合、ユーザアプリケーションは、ゲートウェイ内のサービスユニットと、ユーザアプリケーションとの間のサービスセッションを設定することができる。
本発明のフレームワークでは、ユーザアプリケーションは、イベント通知要求をサーバに登録することができるため、サーバは、新たなデバイスがオンラインになったとき、あるいは、デバイスの属性が変化したときに、ユーザアプリケーションに通知することになる。これを達成するため、本発明は、登録ユーザにイベント通知を配信するための機構を提供する。
ゲートウェイ/ダミープロトコルは、特殊なプロトコルであり、ネットワークにより統合されるデバイスのタイプを反映する。ネットワークは、X−10、USBおよびIEEE1394のデバイス/サービスをそれぞれネットワークの残りの部分に接続するX−10ゲートウェイ、USBゲートウェイ、およびIEEE1394ゲートウェイからなることが可能である。ダミーデバイスは、サービスレコードに対応するタイプのレコードを独自(proprietary)フォーマットで格納する。ゲートウェイ/ダミープロトコルは独自のものであるが、PnPブローカに対しては、標準化されたインタフェースを公開する。
本発明の一実施例によれば、ネットワークは、1個以上のPnPブローカを有する。PnPブローカは、ユーザといくつかのサービスとの間のインタフェースとして作用する。一実施例では、X−10デバイスに対するPnPブローカは、USBデバイスによって提供されるサービスにリンクされたいくつかのボタンあるいはその他のユーザインタフェースウィジェットを提供する。ここで用いた「ユーザインタフェースウィジェット」という用語の意味には、ユーザアプリケーションのグラフィカルユーザインタフェースを作成するために使用されるボタン、ダイアログ、テキストウィンドウ、スケールおよびその他のグラフィカルコンポーネントを含む。あるボタンがクリックされると、PnPブローカは、単に、X−10ゲートウェイを通じて、特定のサービスを呼び出す。以下のステップは、この実施例により、ユーザアプリケーションが、ネットワーク内の新たに登録されたサービスを利用するために必要とされる。
ネットワークプラグアンドプレイを達成する候補のうちの1つとしてのJiniインタフェースモデルの欠点については既に説明した。本発明は、Jiniセキュリティモデルを借りながら、上記のJiniインタフェースの欠点を克服する。Jiniのインタフェースの問題点を解決するには、以下の4つのアプローチを使用可能である。第1に、標準に基づく相互運用性が提供可能である。このアプローチによれば、すべてのサービスは標準APIを有し、サービスは、それらの標準APIを実装することになる。第2のオプションは、サンドボックスに基づく相互運用性である。この場合、適当なセキュリティモデルを有するJava仮想マシンが与えられれば、サービスは独立して動作することができる。第3のオプションは、リフレクションに基づく相互運用性である。この場合、アプリケーションは、サービスに対して、そのインタフェースについて質問し、リフレクション機構を通じて、このインタフェースの状態に影響を及ぼす。最後に、第4の方法は、実装に基づく相互運用性である。この場合、同じ人あるいは会社が、プロキシおよびサービスの両方を製造することになる。
本発明のアクティブコンフィグレーションモデルでは、XML(eXtensible Markup Language)記述が、すべてのネットワークデバイスに関連づけられる。XMLが使用されるのは、XML記述が、(サーバ側での)デバイスの機能の公表として、静的で不変のインタフェース記述を提供するからである。さらに、このようなXMLサービスインタフェース記述を操作することによって、クライアントは、フレームワーク内のサービスを利用することができる。フレームワークは、操作のための標準的なロケーションを提供するために、それぞれのサービスオブジェクトにプログラムおよびユーザインタフェースを公開する。
102 実行環境
103 ユーザアプリケーション
104 PnPブローカ
201 ゲートウェイデバイス
202 ユーザアプリケーション
203 ダミーデバイス
204 セキュリティ実施機構
205 ネットワークノード
301 PnPブローカ
302 PnPブローカインタフェース
303 PnPブローカ間プロトコル
304 サービスディスカバリ/アベイラビリティエージェント
305 サービスレジストリ
306 サービスセッション管理エージェント
307 サービスロケーションプロトコル(SLP)サービスエージェント
308 SLPユーザエージェント
404 PnPブローカ間プロトコル
406 サービスユニット
501 PnPブローカ
502 ユーザエージェント(UA)
503 PnPブローカ
504 サービスエージェント(SA)
507 ブロードキャストによるディスカバリ
508 SLPディレクトリ
509 LDAPディレクトリ
510 変換スキーマ
511 ディレクトリエージェント(DA)
512 サービス
601 テレビジョン
602 HomePNAクラスタ
603 ホームPC
604 電話機
605 レジデンシャルゲートウェイ
606 xDSLクラスタ
607 ホームPC
608 ブリッジ
609 Jiniクラスタ
610 USBクラスタ
611 スピーカ
612 ネットワークカメラ
613 X−10クラスタ
614 白熱電球
615 セキュリティマネージャ
616 イーサネットクラスタ
617 ディジタルカメラ
618 ウェブパネル
619 イーサネットハブ
620 ホームPC
701 デバイス/サービス
702 インタフェース定義
703 ユーザアプリケーション
704 変更
705 アナウンス
706 参照
1104 リモートPnPブローカ
Claims (15)
- (a)少なくとも1つのサービスと、
(b)サービスエージェントと、
(c)ディレクトリエージェントと、
(d)ユーザエージェントと、を有し、
前記サービスエージェントは、前記少なくとも1つのサービスのタイプおよび属性を前記ディレクトリエージェントに登録し、
前記ユーザエージェントは、ユーザアプリケーションによって要求されるサービスのタイプおよび属性を前記ディレクトリエージェントに送信し、
前記ディレクトリエージェントは、前記要求されるサービスのタイプおよび属性を、前記少なくとも1つのサービスのタイプおよび属性と照合して、前記少なくとも1つのサービスのアドレスを前記ユーザエージェントに返すことを特徴とするアクティブコンフィグレーションフレームワーク。 - (a)少なくとも1つのサービスと、
(b)サービスエージェントと、
(c)ディレクトリエージェントとを有するアクティブコンフィグレーションフレームワークにおいて、
前記サービスエージェントは、前記少なくとも1つのサービスのタイプおよび属性を前記ディレクトリエージェントに登録し、
前記ディレクトリエージェントは、ユーザアプリケーションによって要求されるサービスのタイプおよび属性を、前記少なくとも1つのサービスのタイプおよび属性と照合して、前記少なくとも1つのサービスのアドレスを返し、
前記少なくとも1つのサービスは、ゲートウェイおよびデバイスクラスタを有し、
前記ゲートウェイは、前記デバイスクラスタを前記サービスエージェントに接続し、
前記サービスエージェントは、前記ゲートウェイを通じて、前記デバイスクラスタと通信することを特徴とするアクティブコンフィグレーションフレームワーク。 - 前記アクティブコンフィグレーションフレームワークは、実行環境をさらに有し、
前記アプリケーションは、前記実行環境で動作することを特徴とする請求項1または2に記載のアクティブコンフィグレーションフレームワーク。 - 前記実行環境はJava(登録商標)仮想マシンであることを特徴とする請求項3に記載のアクティブコンフィグレーションフレームワーク。
- 前記実行環境はWindowsTMベースのマシンであることを特徴とする請求項3に記載のアクティブコンフィグレーションフレームワーク。
- ネットワークデバイスの追加に応答してフレームワークの自動再構成を行う方法において、
前記ネットワークデバイスは、少なくとも1つのサービスを提供し、
前記フレームワークは、サービスエージェント、ユーザエージェントおよびディレクトリエージェントを有し、
前記方法は、
(a)前記サービスエージェントが、提供されるサービスのタイプおよび属性を前記ディレクトリエージェントに登録するステップと、
(b)前記ユーザエージェントは、ユーザアプリケーションによって要求されるサービスのタイプおよび属性を前記ディレクトリエージェントに送信するステップと、
(c)前記ディレクトリエージェントが、前記要求されるタイプおよび属性を、前記提供されるサービスのタイプおよび属性と照合して、前記提供されるサービスのアドレスを前記ユーザエージェントに返すステップと、
を有することを特徴とする、ネットワークデバイスの追加に応答してフレームワークの自動再構成を行う方法。 - ネットワークデバイスの追加に応答してフレームワークの自動再構成を行う方法において、
前記ネットワークデバイスは、少なくとも1つのサービスを提供し、
前記フレームワークは、サービスエージェントおよびディレクトリエージェントを有し、
前記方法は、
(a)前記サービスエージェントが、提供されるサービスのタイプおよび属性を前記ディレクトリエージェントに登録するステップと、
(b)前記ディレクトリエージェントが、ユーザアプリケーションによって要求されるタイプおよび属性を、前記提供されるサービスのタイプおよび属性と照合して、前記提供されるサービスのアドレスを返すステップと、
を有し、
前記ステップ(a)は、
(1)ゲートウェイが、前記ネットワークデバイスのアベイラビリティをチェックするステップと、
(2)前記ゲートウェイが、前記提供されるサービスのタイプおよび属性を前記サービスエージェントに登録するステップと、
(3)前記サービスエージェントが、前記提供されるサービスのタイプおよび属性を前記ディレクトリエージェントに登録するステップと、
を有することを特徴とする方法。 - セッション管理エージェントが、前記アドレスを用いて、前記ユーザアプリケーションと前記ネットワークデバイスの間の通信セッションを確立するステップをさらに有することを特徴とする請求項6または7に記載の方法。
- フレームワークに挿入されたデバイスによって実行されるサービスのための通信インタフェースを生成する方法において、
前記インタフェースは、ユーザアプリケーションによって、前記サービスを利用するために使用され、
前記方法は、
(a)XML文書、文書型定義、またはスタイルシートのうちの少なくとも1つを含む、前記デバイスによって提供されるサービスのサービス記述スキーマを生成するステップと、
(b)XMLパーサを用いて、前記サービス記述スキーマから、前記サービスのための通信インタフェースを生成するステップと、
を有し、
前記ステップ(b)において、前記デバイスによって生成されるサービス記述スキーマは、ユーザインタフェースウィジェットのセットにマッピングされ、
ユーザは、実行のために前記デバイスにコマンドを送るユーザインタフェースウィジェットをクリックすることによって、前記デバイスの状態を変えることができることを特徴とする、フレームワークに挿入されたデバイスによって実行されるサービスのための通信インタフェースを生成する方法。 - 前記サービス記述スキーマは、前記サービスのためのデータおよび制御フロー仕様を含むことを特徴とする請求項9に記載の方法。
- フレームワークに挿入されたデバイスによって実行されるサービスのための通信インタフェースを生成する方法において、
前記インタフェースは、ユーザアプリケーションによって、前記サービスを利用するために使用され、
前記方法は、
(a)XML文書、文書型定義、またはスタイルシートのうちの少なくとも1つを含む、前記デバイスによって提供されるサービスのサービス記述スキーマを生成するステップと、
(b)XMLパーサを用いて、前記サービス記述スキーマから、前記サービスのための通信インタフェースを生成するステップと、
を有し、
前記ステップ(b)において、前記デバイスによって生成されるサービス記述スキーマは、前記サービスのための通信インタフェースを表すオブジェクトの階層にマッピングされ、
前記サービスは、前記オブジェクトの階層を用いて、前記ユーザアプリケーションによって利用されることを特徴とする方法。 - 前記オブジェクトの階層の構造は、前記ユーザアプリケーションが前記デバイスを利用する時点での前記デバイスの機能に基づいて決定されることを特徴とする請求項11に記載の方法。
- 前記XMLパーサは、XML対応ウェブブラウザであることを特徴とする請求項12に記載の方法。
- フレームワークに挿入されたデバイスを制御する方法において、該方法は、
(a)前記デバイスが、XML文書、文書型定義、またはスタイルシートのうちの少なくとも1つを含む、前記デバイスのデバイス記述スキーマを生成するステップと、
(b)ユーザアプリケーションが、前記デバイス記述スキーマを編集し、編集されたデバイス記述スキーマを前記デバイスに反映するステップとを有し、
前記デバイスは、前記編集されたデバイス記述スキーマに従って状態を変更することを特徴とする、フレームワークに挿入されたデバイスを制御する方法。 - (a)少なくとも1つのサービスと、
(b)サービスエージェントと、
(c)ユーザエージェントと、を有し、
前記ユーザエージェントは、ユーザアプリケーションによって要求されるサービスのタイプおよび属性を前記サービスエージェントに送信し、
前記サービスエージェントは、前記要求されるサービスのタイプおよび属性を、前記少なくとも1つのサービスのタイプおよび属性と照合して、前記少なくとも1つのサービスのアドレスを前記ユーザエージェントに返すことを特徴とするアクティブコンフィグレーションフレームワーク。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US54639700A | 2000-04-10 | 2000-04-10 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000371402A Division JP3711866B2 (ja) | 2000-04-10 | 2000-12-06 | プラグアンドプレイ機能を有するフレームワークおよびその再構成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004334896A JP2004334896A (ja) | 2004-11-25 |
JP3915797B2 true JP3915797B2 (ja) | 2007-05-16 |
Family
ID=24180256
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000371402A Expired - Fee Related JP3711866B2 (ja) | 2000-04-10 | 2000-12-06 | プラグアンドプレイ機能を有するフレームワークおよびその再構成方法 |
JP2004152883A Expired - Fee Related JP3915797B2 (ja) | 2000-04-10 | 2004-05-24 | プラグアンドプレイ機能を有するフレームワークおよびその再構成方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000371402A Expired - Fee Related JP3711866B2 (ja) | 2000-04-10 | 2000-12-06 | プラグアンドプレイ機能を有するフレームワークおよびその再構成方法 |
Country Status (1)
Country | Link |
---|---|
JP (2) | JP3711866B2 (ja) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7343428B2 (en) | 2001-09-19 | 2008-03-11 | International Business Machines Corporation | Dynamic, real-time integration of software resources through services of a content framework |
US7035944B2 (en) | 2001-09-19 | 2006-04-25 | International Business Machines Corporation | Programmatic management of software resources in a content framework environment |
JP4518719B2 (ja) | 2001-12-10 | 2010-08-04 | ソニー株式会社 | データ処理システム、情報処理装置、および方法、並びにコンピュータ・プログラム |
AU2002353303A1 (en) | 2002-01-08 | 2003-07-24 | Koninklijke Philips Electronics N.V. | Controlling application devices simultaneously |
US7603469B2 (en) | 2002-01-15 | 2009-10-13 | International Business Machines Corporation | Provisioning aggregated services in a distributed computing environment |
JP3756457B2 (ja) * | 2002-03-19 | 2006-03-15 | 株式会社エヌ・ティ・ティ・データ | アクセス制御付ディレクトリ機能装置及びプログラム |
US7987489B2 (en) | 2003-01-07 | 2011-07-26 | Openpeak Inc. | Legacy device bridge for residential or non-residential networks |
JP4284499B2 (ja) * | 2003-03-07 | 2009-06-24 | ソニー株式会社 | デバイス管理方法およびデバイス管理システム |
JP2004289561A (ja) * | 2003-03-24 | 2004-10-14 | Sony Corp | ネットワーク接続の管理方法および電子機器 |
JP2010055620A (ja) * | 2003-05-28 | 2010-03-11 | Sharp Corp | アプリケーション処理装置 |
JP4818590B2 (ja) * | 2003-05-28 | 2011-11-16 | シャープ株式会社 | サービス利用端末、携帯電話端末、テレビジョン受像端末、コネクタ提供サーバ、およびコネクタデータのデータ構造 |
EA015549B1 (ru) | 2003-06-05 | 2011-08-30 | Интертраст Текнолоджис Корпорейшн | Переносимая система и способ для приложений одноранговой компоновки услуг |
US7418486B2 (en) * | 2003-06-06 | 2008-08-26 | Microsoft Corporation | Automatic discovery and configuration of external network devices |
US7467399B2 (en) | 2004-03-31 | 2008-12-16 | International Business Machines Corporation | Context-sensitive confidentiality within federated environments |
JP4645164B2 (ja) | 2004-11-12 | 2011-03-09 | セイコーエプソン株式会社 | ネットワーク型プラグアンドプレイに対応したネットワーク装置の制御 |
US8275793B2 (en) | 2005-04-29 | 2012-09-25 | Microsoft Corporation | Transaction transforms |
US8418132B2 (en) | 2005-04-29 | 2013-04-09 | Microsoft Corporation | Application description language |
US8132148B2 (en) | 2005-04-29 | 2012-03-06 | Microsoft Corporation | XML application framework |
US7882256B2 (en) | 2005-05-24 | 2011-02-01 | Panasonic Corporation | Gateway device and control device |
WO2006126355A1 (ja) * | 2005-05-24 | 2006-11-30 | Matsushita Electric Industrial Co., Ltd. | ゲートウェイ装置及び制御装置 |
EP1763198A3 (en) | 2005-09-07 | 2007-04-04 | Seiko Epson Corporation | Control of network plug-and-play compliant device |
JP4768369B2 (ja) * | 2005-09-14 | 2011-09-07 | 日立オムロンターミナルソリューションズ株式会社 | デバイス制御システム |
KR100717032B1 (ko) | 2005-09-30 | 2007-05-10 | 삼성전자주식회사 | UPnP를 따르지 않는 개체를 UPnP 디바이스 또는컨텐트로 표현하는 방법 및 장치 |
US9626667B2 (en) | 2005-10-18 | 2017-04-18 | Intertrust Technologies Corporation | Digital rights management engine systems and methods |
CN102073819B (zh) | 2005-10-18 | 2013-05-29 | 英特托拉斯技术公司 | 数字权利管理的方法 |
EP1793565A1 (en) | 2005-12-02 | 2007-06-06 | Seiko Epson Corporation | Network plug-and-play compliant network relay control |
JP2007179119A (ja) * | 2005-12-27 | 2007-07-12 | Hitachi Ltd | 計算機システム |
JP4349391B2 (ja) | 2006-08-07 | 2009-10-21 | セイコーエプソン株式会社 | 画像表示システム |
US20090083765A1 (en) * | 2007-09-20 | 2009-03-26 | Microsoft Corporation | Accessing device-hosted services from scripting and other programming environments |
JP2009205612A (ja) * | 2008-02-29 | 2009-09-10 | Kddi R & D Laboratories Inc | サービス状態提示システム及びサービス状態提示方法 |
US8606967B2 (en) * | 2008-06-17 | 2013-12-10 | Qualcomm Incorporated | Methods and apparatus for proxying of devices and services using overlay networks |
JP5611576B2 (ja) * | 2009-12-03 | 2014-10-22 | ソニー株式会社 | 情報処理装置、および情報処理方法、並びにプログラム |
EP2697929A4 (en) | 2011-04-11 | 2014-09-24 | Intertrust Tech Corp | INFORMATION SECURITY SYSTEMS AND METHODS |
JP2012022715A (ja) * | 2011-10-21 | 2012-02-02 | Sony Corp | 情報処理装置、および情報処理方法、並びにプログラム |
EP2995100B1 (en) | 2013-05-06 | 2021-07-28 | Convida Wireless, LLC | Semantics support and management in m2m systems |
CA2916261C (en) * | 2013-06-26 | 2018-04-10 | Amazon Technologies, Inc. | Managing client access to a plurality of computing systems |
JP2014002781A (ja) * | 2013-09-02 | 2014-01-09 | Sony Corp | 情報処理装置、および情報処理方法、並びにプログラム |
CN107431726B (zh) * | 2015-02-20 | 2020-07-28 | 康维达无线有限责任公司 | 消息总线服务目录 |
WO2023039756A1 (en) * | 2021-09-15 | 2023-03-23 | Siemens Aktiengesellschaft | Industrial data integration device, method and computer readable storage medium |
-
2000
- 2000-12-06 JP JP2000371402A patent/JP3711866B2/ja not_active Expired - Fee Related
-
2004
- 2004-05-24 JP JP2004152883A patent/JP3915797B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004334896A (ja) | 2004-11-25 |
JP2001290724A (ja) | 2001-10-19 |
JP3711866B2 (ja) | 2005-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3915797B2 (ja) | プラグアンドプレイ機能を有するフレームワークおよびその再構成方法 | |
US8423671B2 (en) | Middleware device and method of supporting compatibility of devices in home network | |
US7668908B2 (en) | System and method for generalized and distributed scalable eventing system | |
US7640329B2 (en) | Scaling and extending UPnP v1.0 device discovery using peer groups | |
US7647394B2 (en) | Scaling UPnP v1.0 device eventing using peer groups | |
US6842903B1 (en) | System and method for providing dynamic references between services in a computer system | |
US7272636B2 (en) | Peer group name server | |
JP5048064B2 (ja) | ユニバーサル・プラグ・アンド・プレー発見項目のsmb位置に対するマッピング | |
US7526482B2 (en) | System and method for enabling components on arbitrary networks to communicate | |
US20030191802A1 (en) | Reshaped UDDI for intranet use | |
US20020112058A1 (en) | Peer networking host framework and hosting API | |
US9323587B2 (en) | Method and system for automatic detecting and resolving APIs | |
US20040133896A1 (en) | Network device application interface | |
EP1198102B1 (en) | Extendable provisioning mechanism for a service gateway | |
US7181490B1 (en) | Method and apparatus for mapping network events to names of network devices | |
US7590618B2 (en) | System and method for providing location profile data for network nodes | |
JP4799005B2 (ja) | 情報処理装置 | |
KR100888478B1 (ko) | 액션 처리 방법, 피제어 장치의 제어 방법, 피제어 장치 및제어 포인트 | |
US7685303B2 (en) | Object-oriented discovery framework | |
KR20080000310A (ko) | 홈네트워크 간의 정보 공유 시스템 및 정보 공유 방법,그리고 정보 공유 생성 방법 | |
US7133872B2 (en) | Method and system for unifying component metadata | |
KR100665436B1 (ko) | 홈네트워크를 통한 파일 서버 관리 방법 | |
Moller et al. | Enhancing Jini's lookup service using XML-based service templates | |
Hsu et al. | Widget-based framework for web service discovery on multiple home social network | |
Hajamohideen | A model for web service discovery and invocation in jxta |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061010 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061211 |
|
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 Effective date: 20070116 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070129 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100216 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110216 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110216 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120216 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120216 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130216 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130216 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140216 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |