JP2004334896A - Framework having plug-and-play function and its reconstruction method - Google Patents

Framework having plug-and-play function and its reconstruction method Download PDF

Info

Publication number
JP2004334896A
JP2004334896A JP2004152883A JP2004152883A JP2004334896A JP 2004334896 A JP2004334896 A JP 2004334896A JP 2004152883 A JP2004152883 A JP 2004152883A JP 2004152883 A JP2004152883 A JP 2004152883A JP 2004334896 A JP2004334896 A JP 2004334896A
Authority
JP
Japan
Prior art keywords
service
agent
user
pnp
broker
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
JP2004152883A
Other languages
Japanese (ja)
Other versions
JP3915797B2 (en
Inventor
Shah Vishal
ビシャル・シャー
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JP2004334896A publication Critical patent/JP2004334896A/en
Application granted granted Critical
Publication of JP3915797B2 publication Critical patent/JP3915797B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To integrate a plurality of networks having different communication protocols into a single integrated framework to enable a user application to find and use various network devices. <P>SOLUTION: An active configuration framework system has a plug-and-play (PnP) broker 104, and a service user uses the PnP broker to find and use a networking service and communicates with the networking service. A service agent registers services in a directory agent, a user agent transmits the description of a service required to the directory agent, and a directory agent checks the description of the service required with the description of a service to be offered, and returns an address of a suited service to the user agent. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明は、相異なる通信プロトコルを有する複数のネットワークを単一の統一フレームワークへと統合して、ユーザアプリケーションがさまざまなネットワークデバイスを発見し利用することを可能にする方法および装置に関する。また、本発明は、利用可能な機能の変更およびユーザ相互作用に応答してネットワークノードの動的な適応および再構成を達成する方法に関する。また、本発明は、アプリケーション、サービス、およびデバイスが、自己の能力を記述し、それを他のアプリケーション、サービス、およびデバイスに公表する方法に関する。さらに、本発明は、物理的に相異なるデバイスが、接続し、情報交換し、データタイプを交渉し、それぞれの動作についてのステータスを提供して、ネットワークプラグアンドプレイを達成することを可能にする、プラットフォーム独立でトランスポート独立なプロトコルを提供する方法に関する。   The present invention relates to a method and apparatus for integrating multiple networks with different communication protocols into a single unified framework to allow user applications to discover and utilize various network devices. The invention also relates to a method for achieving dynamic adaptation and reconfiguration of network nodes in response to changes in available features and user interaction. The invention also relates to a method by which applications, services and devices describe their capabilities and publish them to other applications, services and devices. In addition, the present invention allows physically distinct devices to connect, exchange information, negotiate data types, provide status for each operation, and achieve network plug and play. To provide a platform independent and transport independent protocol.

世界的なネットワーキング基盤の出現により、分散サービスおよび分散アプリケーションの大規模な配備が一般的になっている。現在および将来のネットワークでは、時間に敏感な情報を全世界に発信し、世界的な取引を電子的に仲介するサービスがさらに配備されることが期待される。このような分散サービスが普遍的になる前に、このようなサービスの開発、デバッグ、配備および発展を簡単にする新たな機構が必要とされる。このような機構は、基礎になるプロトコルやインタフェースにかかわらずに、必要なサービスを発見し、そのサービスの能力を使用することが必要となる。   With the advent of a global networking infrastructure, large-scale deployment of distributed services and applications has become commonplace. Current and future networks are expected to further deploy services that transmit time-sensitive information around the world and electronically mediate global transactions. Before such distributed services become universal, new mechanisms are needed to simplify the development, debugging, deployment and evolution of such services. Such a mechanism, regardless of the underlying protocol or interface, needs to find the required service and use the capabilities of that service.

家庭で使用可能なもののような典型的な分散ネットワークシステムは、相異なるさまざまな機器を相互接続する。さまざまな家庭用機器(ホームデバイス)は本質的にさまざまなインタフェースおよびプロトコルを利用することがあるため、単一の共通の通信プロトコルを用いてこれらのすべてのデバイスを相互接続することはほとんど不可能である。場合によっては、ほとんどの家庭に既に設置されている配線を使用する(例えば、既存の電源線をX−10デバイスとの通信に使用する)ことは便利であるが、このような既存の配線を使用するネットワークの伝送速度が制限される。例えば、白熱電球やホームセキュリティシステムのようなX−10デバイスは、毎秒数ビットのデータレートで動作する。他方、ディジタルTV、カメラ、あるいはVCRのようなデバイスは、ずっと高い伝送データレートを必要とする。このようなデバイスは通常、IEEE1394アーキテクチャプロトコルを用いて相互接続され、データ転送レートは400Mb/sに達する。   A typical distributed network system, such as one available at home, interconnects various different devices. It is almost impossible to interconnect all of these devices using a single, common communication protocol, since different home appliances (home devices) may inherently utilize different interfaces and protocols. It is. In some cases, it is convenient to use wiring that is already installed in most homes (e.g., to use existing power lines for communication with X-10 devices), but to use such existing wiring. The transmission speed of the network used is limited. For example, X-10 devices such as incandescent lamps and home security systems operate at data rates of a few bits per second. On the other hand, devices such as digital TVs, cameras, or VCRs require much higher transmission data rates. Such devices are typically interconnected using the IEEE 1394 architecture protocol, with data transfer rates reaching 400 Mb / s.

これに対して、現在開発されているさまざまな家庭用自動化アプリケーションは、さまざまな家庭用機器の有効な相互作用を必要とする。したがって、家庭に設置されたすべての相異なるデバイスおよびサービスの有効な相互作用を可能にするには、相異なるさまざまなネットワークを、統一するフレームワークに統合して、相異なるネットワーク内に位置するさまざまなネットワークエンティティが互いを発見し相互作用する機構を提供しなければならない。   In contrast, various home automation applications currently being developed require effective interaction of various home appliances. Therefore, to enable effective interaction of all the different devices and services installed in the home, different networks should be integrated into a unifying framework and different networks located within different networks. Different network entities must provide a mechanism to discover and interact with each other.

また、さまざまなデバイスインタフェースおよびネットワークプロトコルについて、低レベルのプロトコル固有の詳細をアプリケーションが扱うことを必要とせずに、リモートサービスを利用する手段をユーザアプリケーションに提供することが望ましい。   It is also desirable to provide a user application with a means to utilize remote services for various device interfaces and network protocols without requiring the application to handle low-level protocol-specific details.

真のプラグアンドプレイ能力を達成するには、フレームワークは、新たに追加されたデバイスによって提供されるサービスを自動的に発見する機構を提供しなければならない。このようなフレームワーク内では、利用可能なネットワークサービスおよびそのネットワーク位置に関する記述は、すべてのユーザアプリケーションにとって容易に利用可能であるようにしなければならない。さらに、ユーザアプリケーションは、遭遇する可能性のある特定のデバイスあるいはサービスとの通信のために、自己の通信インタフェースを自動的に再構成することができなければならない。さらに、フレームワークは、ネットワークサービスへのアクセスを制御するために、ユーザの認可および認証を実行するセキュリティモデルを含まなければならない。   To achieve true plug-and-play capabilities, the framework must provide a mechanism to automatically discover the services offered by newly added devices. Within such a framework, descriptions of available network services and their network locations must be made readily available to all user applications. In addition, user applications must be able to automatically reconfigure their communication interface for communication with particular devices or services that may be encountered. In addition, the framework must include a security model that performs user authorization and authentication in order to control access to network services.

JiniTMは、ネットワークプラグアンドプレイを達成する既存の候補のうちの1つである(Jiniは、サンマイクロシステムズ社(Sun Microsystems, Inc.)の商標である)。Jiniは、分散システムの構築および配備を容易にするアプリケーションプログラミングインタフェース(API)およびランタイム規約のセットである。Jiniは、分散システムの、共通しているが相異なる部分を処理する「配管」(plumbing)を提供する。Jiniは、プログラミングモデルおよびランタイムインフラストラクチャからなる。リース、分散イベント、および分散トランザクションをサポートするAPIおよび規約を定義することによって、プログラミングモデルは、基礎となるネットワークの信頼性が低くても、信頼性の高い分散システムを開発者が構築するのを助ける。ランタイムインフラストラクチャは、ネットワークプロトコルとそれを実装するAPIとからなり、ネットワーク上のデバイスおよびサービスの追加、探索、アクセス、および削除を容易にする。 Jini is one of the existing candidates for achieving network plug and play (Jini is a trademark of Sun Microsystems, Inc.). Jini is a set of application programming interfaces (APIs) and runtime contracts that facilitate building and deploying distributed systems. Jini provides "plumbing" to handle common but different parts of a distributed system. Jini consists of a programming model and a runtime infrastructure. By defining APIs and contracts that support leases, distributed events, and distributed transactions, the programming model allows developers to build reliable distributed systems, even when the underlying network is unreliable. help. The runtime infrastructure consists of network protocols and the APIs that implement them, facilitating the addition, discovery, access, and deletion of devices and services on the network.

Jiniの使用は、基礎となるネットワーク技術について知らなくてもサービスを発見する容易な方法を提供する。他の既知のインフラストラクチャに比べてJiniが改良されている点は、ユーザアプリケーションが実際にサービスを探索し、そのサービスをサポートするホストを他者に発見させることができることである。しかし、主な未解決の問題点は、「ユーザアプリケーションはどのようにして自動的にクライアントマシン上のサービスを使用するか」である。クライアントユーザアプリケーションにサービスインタフェースしか設けられていない場合、クライアントが、このサービスを理解することが可能なコードを有していなければならない。   The use of Jini offers an easy way to discover services without knowing the underlying network technology. The improvement over Jini over other known infrastructures is that the user application can actually search for the service and let others discover the hosts that support the service. However, the main unsolved problem is "How user applications automatically use services on client machines". If the client user application only has a service interface, the client must have code that can understand this service.

例えば、ユーザが、自己のアプリケーションに、カメラサービスのためのネットワークをブラウズさせたい状況を考える。アプリケーションがこのようなサービスをネットワーク上に見つけた場合、ユーザは、それをクリックして、ユーザ自身のアプリケーションでそれを使用することができる。ユーザが、このようなサービスを実行するためのコードを必要とする場合、このようなコードは、ユーザのマシン上に自動的にダウンロードされなければならない。しかし、このアプローチに関連する主な問題点は、ユーザアプリケーションがこのようなサービスをどのようにして利用するかである。ユーザアプリケーションは、拡張可能なインタフェースを有する場合、リモートサービスインタフェースに問い合わせてその固有の特性を取得し、その利用を可能にすることができる。しかし、このような拡張可能インタフェースの定義は、JiniTM仕様の範囲内にはなく、JiniTMサービスを使用するユーザアプリケーションに委ねられている。 For example, consider a situation where a user wants his application to browse a network for a camera service. If an application finds such a service on the network, the user can click on it and use it in his own application. If a user needs code to perform such a service, such code must be automatically downloaded on the user's machine. However, a major problem associated with this approach is how user applications utilize such services. If the user application has an extensible interface, it can query the remote service interface to obtain its unique characteristics and enable its use. However, the definition of such an extensible interface is not within the scope of the Jini specification and is left to the user application using the Jini service.

もう1つの問題点は、カメラサービスのセマンティクス(意味論)を定義するエンティティの識別である。例えば、キャノン、ミノルタ、およびニコンを含む主要なカメラメーカがそれぞれ固有のインタフェースを提供する場合、カメラサービスには相互運用性がなくなり、ユーザは、3つの異なるすべてのカメラサービスをコードの形で適切に提供しなければならないことになる。また、もしコダックがJiniTMカメラを市販することに決めた場合、ユーザは、コダックのインタフェースの解析を含むようにそのコードを手動(マニュアル)で変更しなければならない。このような拡張可能インタフェースは、ネットワークトラフィックと、クライアントコードのサイズを非常に増大させてしまう。すべての種類の市場固有のグループがまとまってインタフェースを指定することが好ましく、多くの場合にはこれが必要となるであろうが、これはすぐには、また効率的には実現しそうになく、特に、家庭で使用されるすべての種類のデバイスに対しては、きわめて非現実的である。 Another issue is the identification of the entity that defines the semantics of the camera service. For example, if major camera manufacturers, including Canon, Minolta, and Nikon, provide their own interfaces, camera services will not be interoperable and users will be able to code all three different camera services in code. Must be provided. Also, if Kodak decides to market the Jini camera, the user must manually modify the code to include an analysis of the Kodak interface. Such an extensible interface greatly increases network traffic and the size of the client code. It is preferred that all kinds of market-specific groups specify the interface collectively, and in many cases this will be necessary, but this is not likely to be immediate or efficient, especially For all types of devices used in the home, it is extremely impractical.

既知のネットワークで依然として解決されていないもう1つの制限は、JiniTMベースのアプリケーションがどのようにして非JiniTMベースのオペレーティングシステム上にあるデータにアクセスすることができるかに関するものである。すなわち、ユーザは、例えば、JiniTMに対するマイクロソフトのサポートなしで、どのようにしてMS−WordTMからJiniTMプリンタにアクセスすることができるだろうか。Jiniプリンタを使用したいJavaTMアプリケーションですら、アクセスのためのオペレーティングシステムに依拠しなければならない。 Another limitation that has not yet been resolved in known networks relates to how Jini based applications can access data residing on non-Jini based operating systems. That is, for example, how can a user access a Jini printer from MS-Word without Microsoft support for Jini . Even Java applications that want to use a Jini printer must rely on an operating system for access.

例えば、ユーザプログラムが印刷メソッドへのアクセスを要求するとき、以下のようなコードフラグメントが使用される。   For example, when a user program requests access to a print method, the following code fragment is used.

object o=Lookup(GeneralPrintService);
GeneralPrintService pservice=(GeneralPrintService)o;
pservice.print();
しかし、このコードが書かれるときに、プログラマは、GeneralPrintServiceという名前のインタフェースがコード実行時に本当に存在するかどうかを知らない。さらに、プログラマが複数のデバイスでイメージを印刷したい場合、複数のインタフェースを予想し、それに応じて印刷を行う必要がある。
object o = Lookup (GeneralPrintService);
GeneralPrintService pservice = (GeneralPrintService) o;
pservice.print ();
However, when this code is written, the programmer does not know whether an interface named GeneralPrintService really exists at code execution time. Furthermore, if a programmer wants to print an image on multiple devices, it must anticipate multiple interfaces and print accordingly.

Jiniは、ユーザインタフェース(UI)コンポーネントがサービスの属性リストにエントリとして付加されるように使用することができるため、サービスについて要求されるクライアントの知識は最小限である。クライアントは、単に、UIがアプレットと同様の属性によって表現されることを知っているだけでよい。UIは、JavaBeansとして提供可能であるため、内省(introspection)・反省(reflection)により、サービスは、クライアントに対して、クライアントがそのサービスを使用することができる手段を提供することが可能である。これは、本質的に、クライアントとサーバの間のメッセージ交換であり、手動の設定を必要とする。しかし、UIコンポーネントを付加することは、人間でないクライアント(生成・使用されるマシン)がデバイスを使用するのを妨げる可能性がある。また、デバイスの個数が増大して、クライアントプログラムが複雑になると、もう1つの問題点が生じる。その場合、クライアントは、返されたリストのどのオブジェクトが真のターゲットであるかを決定しなければならない。さらに、あらゆるJiniTMのデバイスあるいはアプリケーションは、製造時において通信するために必要としたすべてのデバイスの(あるいは少なくとも、「デバイスのすべてのタイプの」)すべてのインタフェースを必要とする。その結果、JiniTMは、相互運用性の問題点を実際には解決していない。 Jini can be used such that a user interface (UI) component is added as an entry to a service's attribute list, so the client knowledge required for the service is minimal. The client simply needs to know that the UI is represented by attributes similar to applets. Since the UI can be provided as JavaBeans, the service can provide the client with a means by which the client can use the service by introspection and reflection. . This is essentially a message exchange between the client and server and requires manual configuration. However, adding UI components can prevent non-human clients (the machines that are created and used) from using the device. Another problem arises when the number of devices increases and the client program becomes complicated. In that case, the client must determine which objects in the returned list are true targets. In addition, every Jini device or application requires all the interfaces of all the devices (or at least “all types of devices”) needed to communicate during manufacturing. As a result, Jini does not actually solve the interoperability problem.

もう1つの既存のネットワーキングシステムであるHomeAPIは、アプリケーションがさまざまなホームデバイスを発見し利用することを可能にする、オブジェクト指向のソフトウェアサービスおよびアプリケーションプログラミングインタフェース(API)のセットである。このシステムは、アプリケーションが使用するデバイスおよびネットワークのプロトコル固有の詳細に、ユーザアプリケーションが関与しないように設計された。HomeAPIは、HomeAPIインタフェースの使用を通じてサービスを利用するユーザアプリケーションを開発するのを容易にする分散サービスを表現するソフトウェアオブジェクトのセットを提供する。   HomeAPI, another existing networking system, is a set of object-oriented software services and application programming interfaces (APIs) that allow applications to discover and utilize various home devices. This system was designed so that the user application was not involved in the protocol-specific details of the devices and networks used by the application. The Home API provides a set of software objects that represent distributed services that facilitate developing user applications that utilize the services through the use of the Home API interface.

しかし、HomeAPIは、新たなデバイスの発見の問題点を解決していないため、所望のプラグアンドプレイネットワーキング能力を提供しない。HomeAPIのもう1つの欠点は、すべてのネットワークデバイスが標準の通信インタフェースを提供することを要求することであり、これは今日の市場では実現不可能である。   However, the Home API does not provide the desired plug-and-play networking capabilities because it does not solve the problem of discovering new devices. Another disadvantage of the Home API is that it requires that all network devices provide a standard communication interface, which is not feasible in today's market.

HomePNA、HomeRF、Bluetooth、PIANO、X−10、CEBus、IEEE1394、USB、HAViなどのようなその他の発展段階のネットワーク構想は、単に、ネットワーク接続に関するさまざまなプロトコルを提供しているだけである。これらの通信プロトコルは当業者に周知である。しかし、現在のところ、競合するさまざまなネットワーク技術およびプロトコルの相互運用性の問題点を解決し、ネットワークプラグアンドプレイを達成する統一フレームワークシステムは存在しない。   Other evolving network concepts, such as HomePNA, HomeRF, Bluetooth, PIANO, X-10, CEBus, IEEE 1394, USB, HAVi, etc., simply provide various protocols for network connectivity. These communication protocols are well known to those skilled in the art. However, at present there is no unified framework system that solves the interoperability issues of various competing network technologies and protocols and achieves network plug and play.

したがって、さまざまなタイプのネットワークデバイスを相互接続し、デバイスの発見および利用のための一様な機構を提供する統一フレームワークに対して、強く幅広い受容が認識されており、このようなものがあることは非常に有利である。このような統一フレームワークは、ユーザアプリケーションが、アプリケーション−サービス間通信プロトコル、所望のサービスを提供するデバイスに接続されたホストのIPアドレスの発見、およびさらには、ネットワークサービスのユーザインタフェースの詳細のような低レベルの詳細を組み込むことを不要にするとともに、上記のその他の要求を満たす。   Thus, there is a strong and widespread acceptance of a unified framework that interconnects various types of network devices and provides a uniform mechanism for device discovery and utilization, and such is the case. It is very advantageous. Such a unified framework allows the user application to communicate with the application-to-service communication protocol, discover the IP address of the host connected to the device providing the desired service, and even further details of the user interface of the network service. It eliminates the need to incorporate very low-level details and satisfies the other needs mentioned above.

したがって、本発明の1つの目的は、既知のネットワーキングシステムの上記の制限を克服し、さまざまな機器を相互接続する相異なる通信プロトコルを有する複数のネットワークを単一の統一フレームワークへと統合して、ユーザアプリケーションがさまざまなネットワークデバイスを発見し利用することを可能にする方法および装置を提供することである。   Accordingly, one object of the present invention is to overcome the above limitations of known networking systems and integrate multiple networks with different communication protocols interconnecting various devices into a single unified framework. To provide a method and apparatus for allowing a user application to discover and utilize various network devices.

具体的には、本発明の目的は、利用可能な機能の変更およびユーザ相互作用に応答してネットワークノードの動的な適応および再構成を達成する方法および装置を提供することである。   Specifically, it is an object of the present invention to provide a method and apparatus for achieving dynamic adaptation and reconfiguration of network nodes in response to changes in available features and user interaction.

本発明のもう1つの目的は、アプリケーション、サービス、およびデバイスが、自己の能力および通信インタフェースを記述し、それを他のアプリケーション、サービス、およびデバイスに公表する方法を提供する。   Another object of the present invention is to provide a method by which applications, services and devices describe their capabilities and communication interfaces and publish them to other applications, services and devices.

本発明のさらにもう1つの目的は、物理的に相異なるデバイスが、接続し、情報交換し、データタイプを交渉し、それぞれの動作についてのステータスを提供して、ネットワークプラグアンドプレイを達成することを可能にする、プラットフォーム独立でトランスポート独立なプロトコルを提供する方法および装置を提供することである。   Yet another object of the present invention is to achieve network plug and play, where physically different devices connect, exchange information, negotiate data types and provide status about their operation. To provide a platform-independent and transport-independent protocol that enables

上記の目的を実現し、本発明の効果を達成するため、アクティブコンフィグレーションフレームワークシステムが提供される。本発明のフレームワークは、サービスとサービスユーザを相互接続する。また、このフレームワークは、プラグアンドプレイブローカを有する。本発明のフレームワークでは、サービスユーザは、プラグアンドプレイブローカを用いて、ネットワーキングサービスを発見し、利用し、ネットワーキングサービスと通信する。   In order to achieve the above object and achieve the effects of the present invention, an active configuration framework system is provided. The framework of the present invention interconnects services and service users. The framework also has a plug and play broker. In the framework of the present invention, a service user uses a plug-and-play broker to discover, use, and communicate with a networking service.

本発明のフレームワークでは、サービスユーザは、サービスを提供するデバイスによって使用される通信プロトコルとは独立に、プラグアンドプレイブローカのインタフェースを通じてサービスと通信する。   In the framework of the present invention, the service user communicates with the service through a plug and play broker interface, independent of the communication protocol used by the device providing the service.

また、本発明によれば、サービスをプラグアンドプレイブローカに登録するゲートウェイが提供される。   Further, according to the present invention, there is provided a gateway for registering a service with a plug and play broker.

また、本発明によれば、サービスエージェント、ユーザエージェント、およびディレクトリエージェントを有するアクティブコンフィグレーションフレームワークが提供される。本発明のフレームワークでは、サービスエージェントはサービスをディレクトリエージェントに登録する。その後、ユーザエージェントは、要求するサービスの記述をディレクトリエージェントに通信し、ディレクトリエージェントは、適合するサービスのロケーションを帰す。   Further, according to the present invention, there is provided an active configuration framework having a service agent, a user agent, and a directory agent. In the framework of the present invention, a service agent registers a service with a directory agent. The user agent then communicates the description of the requested service to the directory agent, which returns the location of the matching service.

本発明のフレームワークでは、サービスは、デバイスクラスタおよびゲートウェイからなることが可能である。サービスエージェントは、このゲートウェイを通じてデバイスクラスタと通信する。   In the framework of the present invention, a service can consist of a device cluster and a gateway. The service agent communicates with the device cluster through this gateway.

また、本発明によれば、新たなネットワークデバイスの追加に応答して、フレームワークの自動的再構成を行う方法が提供される。本発明の方法によれば、サービスエージェントは、サービスをディレクトリエージェントに登録する。その後、ユーザエージェントは、要求するサービスの記述をディレクトリエージェントに通信する。最後に、ディレクトリエージェントは、要求されたサービスの記述を、提供するサービスの記述と照合し、適合したサービスのアドレスをユーザエージェントに返す。   The present invention also provides a method for automatically reconfiguring a framework in response to the addition of a new network device. According to the method of the present invention, the service agent registers the service with the directory agent. Thereafter, the user agent communicates the description of the requested service to the directory agent. Finally, the directory agent checks the description of the requested service against the description of the service to be provided and returns the address of the matching service to the user agent.

また、本発明によれば、フレームワークに追加される新たなネットワークデバイスによって実行されるサービスに対する通信インタフェースを生成する方法が提供される。本発明の方法によれば、デバイスは、その通信インタフェースを記述するスキーマを生成する。このスキーマは、XML(eXtensible Markup Language)文書の形式とすることが可能である。その場合、ユーザアプリケーションは、XML言語パーサを用いて、通信インタフェースを生成する。   Also, according to the present invention, there is provided a method for generating a communication interface for a service performed by a new network device added to a framework. According to the method of the present invention, a device generates a schema describing its communication interface. This schema can be in the form of an XML (extensible Markup Language) document. In that case, the user application generates a communication interface using an XML language parser.

また、本発明によれば、ネットワークデバイスを制御する方法が提供される。本発明の方法によれば、ユーザアプリケーションは、デバイス記述スキーマを編集し、編集されたデバイス記述スキーマをデバイスに返す。これに応答して、デバイスは、編集されたデバイス記述スキーマに従って状態を変更する。   According to the present invention, a method for controlling a network device is provided. According to the method of the present invention, the user application edits the device description schema and returns the edited device description schema to the device. In response, the device changes state according to the edited device description schema.

本発明のフレームワークを使用することにより、ネットワーク内の相異なる物理デバイスの個数にかかわらず、ネットワーキングエンティティの相互作用のための複雑な機構は一度だけ実装すればよい。さらに、これらの機構は、デバイス固有のゲートウェイを通じて管理ブローカと相互作用するユーザアプリケーションから隠蔽される。本発明のフレームワークは、SLP、HTTP、XML、JavaRMI、およびIIOPのような周知のインターネット関連プロトコルに基づいており、ウェブサーバへのアドオンとして実装可能であるため、配備および利用が容易である。さらに、本発明のフレームワークでは、サービス発見の全プロセスは、ユーザアプリケーションにとって透過的(トランスペアレント)であり、物理接続(コネクション)に対する区別がない。例えば、ネットワークに接続されるプラグアンドプレイデバイスはTCP/IPベースである必要はない。サービス利用プロセスもまたトランスペアレントであり、対象となるさまざまなデバイスの能力と、ユーザの認証および認可に基づく。互換性のないデバイスを接続するときには、トンネリングや完全なデータ変換が必要となることもある。   By using the framework of the present invention, regardless of the number of different physical devices in the network, the complex mechanism for networking entity interaction only needs to be implemented once. Further, these mechanisms are hidden from user applications that interact with the management broker through a device-specific gateway. The framework of the present invention is based on well-known Internet-related protocols such as SLP, HTTP, XML, JavaRMI, and IIOP, and is easy to deploy and use because it can be implemented as an add-on to a web server. Furthermore, in the framework of the present invention, the whole process of service discovery is transparent (transparent) to the user application and there is no distinction for physical connection (connection). For example, a plug and play device connected to a network need not be TCP / IP based. The service usage process is also transparent and is based on the capabilities of the various devices of interest and the authentication and authorization of the user. Connecting incompatible devices may require tunneling and full data conversion.

本発明は、デバイス独立な情報交換を容易にするためのアクティブコンフィグレーションフレームワークを提供する。複数のデバイスが接続し、情報交換し、データタイプを交渉し、それぞれの動作についてのステータスを提供するには、相異なるプロトコルが要求される。これらのプロトコルは、プラットフォーム独立であり、その形式や機能にかかわらず、他のデバイスに接続する必要のある任意のデバイスに組み込むことができる。これらのプロトコルはトランスポート独立でもあるため、任意のデバイスが、他の任意のデバイスに接続し、情報交換することが可能となる。   The present invention provides an active configuration framework to facilitate device independent information exchange. Different protocols are required for multiple devices to connect, exchange information, negotiate data types, and provide status about their operation. These protocols are platform-independent and can be integrated into any device that needs to connect to other devices, regardless of format or function. Because these protocols are also transport independent, any device can connect to any other device and exchange information.

本発明のフレームワークでは、アクティブネットワークの場合のように、ユーザ定義計算がネットワーク内に配置される。しかし、アクティブネットワークとは異なり、現在のインターネットアーキテクチャのすべてのルーティングおよびフォワーディングのセマンティクスは、計算環境をアプリケーション層に制限することにより保持される。このフレームワークを利用するネットワークデバイスおよびサービスは、ネットワークインフラストラクチャに深く組み込まれる場合でも、実際には、エンドシステム上のユーザアプリケーションによって作成され、設定され、動的に制御される。このようなアプリケーション定義エンティティは、ネットワーク内の任意のノードで実行され、個々のパケットは、ネットワークを通じて伝搬するとともに任意のアクションを実行するようにプログラムされることが可能である。   In the framework of the present invention, as in the case of an active network, user-defined computations are located in the network. However, unlike active networks, all routing and forwarding semantics of the current Internet architecture are preserved by restricting the computing environment to the application layer. Network devices and services utilizing this framework, even when deeply embedded in the network infrastructure, are actually created, configured, and dynamically controlled by user applications on end systems. Such an application-defined entity runs at any node in the network, and individual packets can be programmed to propagate through the network and perform any actions.

すべてのタイプの分散デバイスおよび分散サービスにわたりネットワークプラグアンドプレイを達成するためには、統一フレームワークが必要である。ここで使用される「フレームワーク」あるいは「サブストレート」という用語は、1つ以上のネットワークを統合するシステムを意味する。しかし、多くの場合、「フレームワーク」、「サブストレート」、および「ネットワーク」という用語は区別なく用いられる。   Achieving network plug and play across all types of distributed devices and services requires a unified framework. As used herein, the term “framework” or “substrate” refers to a system that integrates one or more networks. However, in many cases, the terms "framework", "substrate", and "network" are used interchangeably.

[アクティブコンフィグレーションフレームワークのコンポーネント]
完全なアクティブコンフィグレーションアーキテクチャは、ダミーデバイス、ゲートウェイデバイス、および、ネットワークに直接的または間接的に接続されたPnPブローカからなる。アクティブコンフィグレーションフレームワークのアーキテクチャを図1に示す。図1に示すように、ネットワークには1個以上の実行環境102がある。実行環境102は、例えば、インターネットのようなネットワーク101を用いて相互接続される。実行環境102は、ある意味で、ネットワークノードとして作用する。実行環境102は、当業者に周知のJava仮想マシンやWindowsTMベースのマシン内にあることが可能である。実行環境102は、ゲートウェイ(図示せず)を通じて非インテリジェント(すなわち、ダミー)デバイスに接続された1個以上のPnPブローカ104を有する。ユーザアプリケーション103は、PnPブローカ104を通じて、デバイスを発見し、利用し、デバイスと通信する。以下で、本発明のアクティブコンフィグレーションフレームワークシステムのさまざまなコンポーネントについて詳細に説明する。
[Active Configuration Framework components]
A complete active configuration architecture consists of a dummy device, a gateway device, and a PnP broker connected directly or indirectly to the network. The architecture of the active configuration framework is shown in FIG. As shown in FIG. 1, the network has one or more execution environments 102. The execution environments 102 are interconnected using a network 101 such as the Internet, for example. The execution environment 102 acts in some sense as a network node. The execution environment 102 can be in a Java virtual machine or a Windows based machine known to those skilled in the art. The execution environment 102 has one or more PnP brokers 104 connected to non-intelligent (ie, dummy) devices through a gateway (not shown). The user application 103 discovers, uses, and communicates with the device through the PnP broker 104. In the following, various components of the active configuration framework system of the present invention will be described in detail.

[ダミーデバイス]
ダミーデバイスは、TCP/IPプロトコルスタック、もしくはJava仮想マシン、またはその両方のないデバイスである。このようなデバイスは、ネットワークから直接にアクセス可能ではなく、媒介物としてゲートウェイを必要とする。このようなデバイスは、ネットワークにインストールされる前に、特定のコンフィグレーション選択を行う必要がある。例えば、それぞれのX−10デバイス(白熱電球など)には、電源線ネットワークに接続する前に手動でハウスコードおよびデバイスコードを割り当てなければならない。さらに、このようなデバイスは、提示するサービスのためのセキュリティやアクセス制御を実施することはない。このようなデバイスのほとんどは、メモリや処理能力を有しておらず、ネットワークの残りの部分に依然として接続する必要のあるレガシーデバイスとして特徴づけることができる。
[Dummy device]
A dummy device is a device without the TCP / IP protocol stack, the Java virtual machine, or both. Such devices are not directly accessible from the network and require a gateway as an intermediary. Such devices need to make certain configuration choices before being installed on the network. For example, each X-10 device (such as an incandescent light bulb) must be manually assigned a house code and device code before connecting to a power line network. Further, such devices do not enforce security or access control for the services offered. Most such devices have no memory or processing power and can be characterized as legacy devices that still need to connect to the rest of the network.

[ゲートウェイデバイス]
通常のネットワークデバイスは、単一のネットワークタイプ(例えば、IPまたはIPX)により、ピアツーピア方式で相互作用することができる。これは、あるネットワークタイプのデバイスは、同じネットワークに物理的に接続された、同じネットワークタイプのデバイスとのみ通信することができることを意味する。第1のデバイスが、その第1のデバイスによってサポートされていないネットワーク上にある第2のデバイス、あるいは、第1のデバイスによってサポートされていないプロトコルを実行している第2のデバイスに接続することを必要とする場合に問題が生じる。この問題を解決するには2つのアプローチがある。
[Gateway Device]
Typical network devices can interact in a peer-to-peer fashion with a single network type (eg, IP or IPX). This means that a device of a certain network type can only communicate with devices of the same network type that are physically connected to the same network. A first device connecting to a second device on a network not supported by the first device or a second device running a protocol not supported by the first device; A problem arises when the need is made. There are two approaches to solving this problem.

第1のアプローチは、複数の通信スタックを単一のネットワークデバイスにロードすることである。これにより、デバイスは、適当な通信スタックを有する限り、任意のタイプのネットワークデバイスと相互作用することが可能となる。基礎となるトランスポートは異なるが、デバイスがプロトコルスタック全体を理解する場合には、このアプローチはうまくいく。   The first approach is to load multiple communication stacks on a single network device. This allows the device to interact with any type of network device as long as it has the appropriate communication stack. Although the underlying transport is different, this approach works if the device understands the entire protocol stack.

複数の相異なるデバイスを接続する問題を解決するため、本発明のフレームワークシステムはゲートウェイを使用する。ゲートウェイは、ネットワーク内に不可視的に存在し、あるネットワークタイプを別のネットワークタイプに変換するデバイスである。このアプローチは、デスティネーションデバイスがレガシーであり、各ソースデバイスがデスティネーションと通信するためにデスティネーションをモデル化しなければならない、という本発明の実施例で用いられる。これは、例えば、ファックスデバイスや電子メールデバイスの場合である。デバイスにレガシーネットワークと対話する能力を追加するのではなく、この機能はゲートウェイに置かれる。ゲートウェイは、通常、プログラム可能なプラットフォーム上にホスティングされる。   To solve the problem of connecting a plurality of different devices, the framework system of the present invention uses a gateway. A gateway is a device that is invisible within a network and converts one network type to another. This approach is used in embodiments of the present invention where the destination device is legacy and each source device must model the destination in order to communicate with the destination. This is the case, for example, for fax devices and e-mail devices. Rather than adding a device with the ability to interact with a legacy network, this functionality is located at the gateway. Gateways are typically hosted on a programmable platform.

本発明のフレームワークでは、PnPブローカが、アクセスのためにゲートウェイを要求するレガシー(ダミー)デバイスとのセッションを確立したい場合、ゲートウェイは、PnPブローカから、そのデバイスの存在を隠蔽する。PnPブローカは、その代わりに、ゲートウェイとのセッションを作成し、ダミーデバイスのアドレスをゲートウェイに渡す。この時点以降、ゲートウェイは、セッションにおけるいずれかのチャネルを通じてデータを受け取ると、そのデータを、ゲートウェイ−ダミーリンクを通じてリモートデバイスへと中継する。本発明は、次の2つのタイプのゲートウェイを使用する。一般化ゲートウェイは、IPデバイスとの通信を行い、特殊化ゲートウェイは、ダミーを通じて非IPデバイスとの通信を行う。特殊化ゲートウェイは、ダミーデバイスをネットワークに公開するものであり、そのデバイスを制御・管理するためのプログラミングロジックを含む。さらに、特殊化ゲートウェイは、ダミーデバイスのセキュリティポリシーを実現する。1つのゲートウェイデバイスが複数のダミーデバイスを管理することが可能である。   In the framework of the present invention, when a PnP broker wants to establish a session with a legacy (dummy) device that requests a gateway for access, the gateway hides the presence of the device from the PnP broker. The PnP broker instead creates a session with the gateway and passes the address of the dummy device to the gateway. From this point on, when the gateway receives data over any channel in the session, it relays the data to the remote device over the gateway-dummy link. The present invention uses two types of gateways: The generalized gateway communicates with IP devices, and the specialized gateway communicates with non-IP devices through dummies. The specialized gateway exposes the dummy device to the network and includes programming logic for controlling and managing the device. Further, the specialized gateway implements the security policy of the dummy device. One gateway device can manage a plurality of dummy devices.

[PnPブローカ]
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 broker]
The PnP broker acts as a service broker for applications, services, and devices. The PnP broker extends the Infobus concept for distributed systems, treating the entire network as a Software Bus. Infobus systems are well known to those skilled in the art. A detailed description can be found in Reaz Hoque, "Connecting JavaBeans with InfoBus", Wiley Computer Publishing, Nov. 98. Software Bus is also well known to those skilled in the art, Brian Oki, Manfred Pfluegl, Alex Siegel, and Dale Skeen, "The Information Bus - an architecture for extensible distributed systems", Proceedings of the 14 th Symposium on Operating Systems Principles, p. 58-68, Asheville, North Carolina, December 1993.

PnPブローカにより、ネットワーク接続されたエンティティは、他のネットワーク接続エンティティ(ゲートウェイあるいはダミー)の能力を発見し利用することが可能となる。ゲートウェイは、その能力を、対応するPnPブローカに登録し、ダミーデバイスは、ゲートウェイを発見し、このゲートウェイを通じてPnPブローカと通信する。ネットワーク内のデバイスの各タイプ(例えば、X−10X、1394X、USB)ごとに特定のゲートウェイがあり、その一端でこのデバイスクラスタに接続され、他端でPnPブローカに接続される。X−10、HAVi、IEEE−1394、およびUSBは周知の通信プロトコルである。2つの相異なるゲートウェイが互いに対話したい場合、通信のためにPnPブローカを使用することができる。例えば、あるゲートウェイがJiniクラスタを代表する一方で、別のゲートウェイが、HAViを用いたIEEE1394クラスタのゲートウェイとなることが可能である。本発明のフレームワークでは、ゲートウェイは、そのアーキテクチャ用に設計されたダミーを使用することにより、受動(非TCP/IP)デバイスと通信する。   PnP brokers allow networked entities to discover and utilize the capabilities of other networked entities (gateways or dummies). The gateway registers its capabilities with the corresponding PnP broker, and the dummy device discovers the gateway and communicates with the PnP broker through this gateway. There is a specific gateway for each type of device (eg, X-10X, 1394X, USB) in the network, one end of which is connected to this device cluster and the other end of which is connected to a PnP broker. X-10, HAVi, IEEE-1394, and USB are well-known communication protocols. If two different gateways want to interact with each other, a PnP broker can be used for communication. For example, one gateway may represent a Jini cluster, while another may be a gateway for an IEEE 1394 cluster using HAVi. In the framework of the present invention, the gateway communicates with passive (non-TCP / IP) devices by using a dummy designed for its architecture.

図2に、アクティブコンフィグレーションフレームワークの全体設計を示す。実行環境102内で動作するPnPブローカ104は、ゲートウェイ201を通じて、ダミーデバイス203およびユーザアプリケーション202と通信する。ゲートウェイデバイス201は、ネットワークノード205上で、そのオペレーティングシステム環境内で動作する。ノード205は、ゲートウェイおよびサービスへのアクセスを制御するためにセキュリティ実施機構204を提供する。   FIG. 2 shows the overall design of the active configuration framework. The PnP broker 104 operating in the execution environment 102 communicates with the dummy device 203 and the user application 202 through the gateway 201. The gateway device 201 operates on the network node 205 within its operating system environment. Node 205 provides security enforcement mechanism 204 to control access to gateways and services.

ネットワーク接続されたエンティティは、サービスユニットと呼ばれる有意味な機能に再分割される。原理的には、アーキテクチャは、ユーザアプリケーションの観点から、1つの有意味な機能を1つのサービスユニットとして定義する。サービスユニットは、ユーザアプリケーション/サービス全体であることも可能であり、ユーザアプリケーション/サービスの一部であることも可能である。コマンド、応答、およびデータは、ユーザアプリケーションとサービスユニットの間、サービスユニットとサービスの間、あるいはサービスユニットと別のサービスユニットの間で交換することが可能である。サービスユニットは、その機能をPnPブローカに登録する。   Networked entities are subdivided into meaningful functions called service units. In principle, the architecture defines one meaningful function as one service unit from the point of view of the user application. A service unit can be the entire user application / service or a part of the user application / service. Commands, responses, and data can be exchanged between a user application and a service unit, between a service unit and a service, or between a service unit and another service unit. The service unit registers its function with the PnP broker.

PnPブローカにより、ネットワーク接続されたエンティティは、他のネットワーク接続エンティティの能力を発見し利用することが可能となる。ネットワーク接続エンティティは、サービスユーザ(ユーザアプリケーション)であることが可能である。ユーザアプリケーションは、PnPブローカを通じて、サービスを発見し、それを使用することを要求する。PnPブローカは、サービスユニットとユーザアプリケーションを接続するためのトランスポート独立なインタフェース(PnPブローカインタフェースという)を提供する。このインタフェースは、TCP/IPプロトコルスタック上で動作するように設計される。PnPブローカは、サービスブローカまたはマネージャとしてその役割を果たすために、異なるクラスタ内の他のPnPブローカと通信する。PnPブローカ間のプロトコルはPnPブローカ間プロトコルと呼ばれる。   The PnP broker allows networked entities to discover and utilize the capabilities of other networked entities. The network connection entity can be a service user (user application). The user application discovers the service and requests to use it through the PnP broker. The PnP broker provides a transport-independent interface (referred to as a PnP broker interface) for connecting a service unit and a user application. This interface is designed to run on the TCP / IP protocol stack. A PnP broker communicates with other PnP brokers in different clusters to play its role as a service broker or manager. A protocol between PnP brokers is called an inter-PnP broker protocol.

各デバイスクラスタは、高々、1つのPnPブローカを有する。ローカルなPnPブローカがないとき、ユーザアプリケーション/サービスユニットは、JavaRMIやHTTPのようなインターネット通信プロトコルを通じてリモートPnPブローカ(別のゲートウェイに接続されたPnPブローカ)を使用することが可能である。JavaRMIプロトコルは当業者に周知である。その詳細な説明は、Downing, Troy Bryan, "Java RMI: Remote Method Invocation", IDG Books Worldwide, 1998、にある。HTTPプロトコルも当業者に周知である。その説明は、"Paul S. Hethmon, "Illustrated Guide to HTTP", Manning Publications, 1997、にある。サービスユニットは、それに直接に接続されたPnPブローカを使用することも可能であるし、PnPブローカ間プロトコルを使用することによりリモートPnPブローカを使用することも可能である。図3に示すネットワークシステムでは、サービスユニット406は、PnPブローカ間プロトコル404を通じて、リモートPnPブローカ1104に接続されたサービス1406および1402を利用する。こうして、あるサービスユニットが、異なるデバイスクラスタに位置するサービスユニットで利用可能なサービスに問い合わせ、これを使用することができる。   Each device cluster has at most one PnP broker. When there is no local PnP broker, the user application / service unit can use a remote PnP broker (a PnP broker connected to another gateway) through an Internet communication protocol such as Java RMI or HTTP. The Java RMI protocol is well known to those skilled in the art. A detailed description can be found in Downing, Troy Bryan, "Java RMI: Remote Method Invocation", IDG Books Worldwide, 1998. The HTTP protocol is also well known to those skilled in the art. A description can be found in "Paul S. Hethmon," Illustrated Guide to HTTP ", Manning Publications, 1997. The service unit can use a PnP broker directly connected to it, or It is also possible to use a remote PnP broker by using a protocol: In the network system shown in Fig. 3, the service unit 406 has services 1406 and 1402 connected to the remote PnP broker 1104 through an inter-PnP broker protocol 404. Thus, a service unit can query and use services available in service units located in different device clusters.

[PnPブローカ機能コンポーネント]
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 broker function component]
FIG. 4 shows the internal components of the PnP broker. Typically, a PnP broker consists of a service registry 305, a service discovery / availability agent 304, a service session management agent 306, a service location protocol (SLP) user agent 308, and an SLP service agent 307. The PnP broker protocol 303 is used for communication with another PnP broker 301. The PnP broker interface 302 provides an interface for the user application 103. The Service Location Protocol (SLP) is well known to those skilled in the art and is described in 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. Have been. The service registry contains one or more service records. All information in the service registry is described as XML (extensible Markup Language) to facilitate searching, indexing and exchange. XML is also well known to those skilled in the art and is described in Natanaya 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ブローカはそれぞれに応答することになる。
[Service Registry]
PnP brokers include a service registry to hold information about services. At a minimum, the registry stores information about gateways and services that are directly connected to the PnP broker. As shown in FIG. 3, these services are on the local PnP broker 104 or the remote PnP broker 1104. Further, the PnP broker registry can store information about services registered with other PnP brokers. This extended registry function allows a local PnP broker to maintain a local directory of services. This is important for the local environment and eliminates the need for a separate "centralized" SLP directory agent in the network. For example, if the local PnP broker supports print servers, the registry may have information about all compliant print servers. Ultimately, this information can be used for load balancing, fault tolerance, or caching. The PnP broker service registry can also act as a network directory that provides information about all compliant devices within the local PnP broker, regardless of device type. In this case, one of the PnP brokers in the network will be designated as the central directory responsible for finding and registering all PnP brokers. All requests from other devices for network resources are sent to the PnP broker, which will respond to each.

[サービスレコード]
サービスレコードは、ネットワーク接続されたクラスタ内の利用可能なサービスユニットのセットであり、利用可能なサービスと、他のPnPブローカから要求されたサービスとを記述する。サービスレコードは、そのローカルクラスタ内の0個以上のサービスユニットレコードからなる。サービスユニットレコードは、サービスユニットIDフィールドと、それに続く0個以上の属性レコードからなる。サービスユニットIDフィールドは、サービスユニットのタイプと、そのサービスユニットによって提供されるサービスとを識別する。デバイスは、ただ1つのサービスユニットを有するが、複数の属性を有することも可能である。属性レコードは、属性IDフィールド、その値、および、アクセス制御情報からなる。属性レコードは、主に、それぞれのサービスまたはデバイスに対する細かいアクセス制御を実施するために使用される。さらに、属性レコードは、デバイスの現在の状態、および、それを変更するために使用可能なインタフェースの記述を格納する。
Service record
A service record is a set of available service units in a networked cluster, describing available services and services requested by other PnP brokers. A service record consists of zero or more service unit records in the local cluster. The service unit record is composed of a service unit ID field followed by zero or more attribute records. The service unit ID field identifies the type of service unit and the service provided by that service unit. A device has only one service unit, but can have multiple attributes. The attribute record includes an attribute ID field, its value, and access control information. Attribute records are mainly used to implement fine-grained access control for each service or device. In addition, the attribute record stores the current state of the device and a description of the interface that can be used to change it.

[サービスディスカバリ/アベイラビリティエージェント]
PnPブローカは、リモートPnPブローカを発見し利用可能なサービスを識別するために、サービスディスカバリ/アベイラビリティエージェントを必要とする。サービスディスカバリ(発見)は、ローカルPnPブローカによって指定される、要求されるサービスタイプを、リモートPnPブローカ上で利用可能なサービスタイプと比較することによって実行される。ローカルPnPブローカからリモートPnPブローカへ要求サービスタイプを送信し、リモートPnPブローカからローカルPnPブローカへその応答を送信するために、上記のJavaRMIやHTTPを使用することができる。要求サービスタイプの指定の検査により、PnPブローカは、リモートPnPブローカに登録されているすべてのあるいは特定のサービスの特性を決定することができる。サービスディスカバリ/アベイラビリティエージェントは、SLPユーザエージェントおよびSLPサービスエージェントの上に位置する。
[Service Discovery / Availability Agent]
PnP brokers require a service discovery / availability agent to discover remote PnP brokers and identify available services. Service discovery is performed by comparing the requested service type specified by the local PnP broker with the service types available on the remote PnP broker. The Java RMI or HTTP described above can be used to send the requested service type from the local PnP broker to the remote PnP broker and send the response from the remote PnP broker to the local PnP broker. By examining the specification of the requested service type, the PnP broker can determine the characteristics of all or specific services registered with the remote PnP broker. The service discovery / availability agent sits on top of the SLP user agent and the SLP service agent.

さらに、PnPブローカは、サービスディスカバリ/アベイラビリティエージェントを用いて、サービスのアベイラビリティ(利用可能性)を周期的にチェックすることができる。ローカルPnPブローカは、適当なPnPブローカに対して、アベイラビリティチェックを実行するよう要求する。本発明の実施例では、ユーザは、アベイラビリティチェックの周期を指定し、また、このチェックを取り消すことができる。   In addition, the PnP broker can periodically check for service availability using a service discovery / availability agent. The local PnP broker requests the appropriate PnP broker to perform an availability check. In an embodiment of the present invention, the user can specify the period of the availability check and cancel the check.

[サービスセッション管理エージェント]
ユーザアプリケーションがサービスまたはデバイスを発見し、それを使用したいとき、PnPブローカは、ユーザアプリケーションとそのサービスの間に仮想パイプ(トンネル)を確立する。これをサービスセッションという。このようなトンネルを用いて、ユーザアプリケーションとサービスの間で、コマンド、応答およびデータを交換することができる。デバイスのインタフェースの編成に従って、これらのコマンド、応答、およびデータは特定のフォーマットを有し、定義されたプロトコルのもとで交換される。PnPブローカは、この仮想パイプを管理しながら、以下の3つのプロトコルのうちの1つで動作するよう指令されることが可能である。
Service session management agent
When a user application discovers a service or device and wants to use it, the PnP broker establishes a virtual pipe (tunnel) between the user application and the service. This is called a service session. Using such a tunnel, commands, responses and data can be exchanged between user applications and services. According to the organization of the interface of the device, these commands, responses and data have a specific format and are exchanged under a defined protocol. The PnP broker can be instructed to operate on one of the following three protocols while managing this virtual pipe.

[ネイティブパケットでのネイティブデータ転送]
PnPブローカは、データパイプを設定した後、バックグラウンドに入ることにより、ユーザアプリケーションとサービスが、メッセージストリームおよびデータフォーマットを管理することを可能にする。このアプローチは、PnPブローカが他のネットワークエンティティの能力を発見するために単独で使用され、アプリケーション、サービス、およびデバイスがユーザアプリケーションと発見されたサービスとの間の相互作用を管理するときに有用である。メッセージは、PnPブローカの関与なしに、ユーザアプリケーションとサービスの間で直接に交換される。メッセージ交換は、厳密に、ネイティブパケットにおけるネイティブデータの形式である。サービスを要求する前にサービスを発見するためあるいはサービスの問合せ(クエリ)を行うために、ユーザアプリケーションは、PnPブローカ間プロトコルを使用可能である。例えば、IEEE1394対応のカメラは、このデータ交換フォーマットを用いて、データストリームをディジタルVCRに送ることができる。
[Native data transfer in native packet]
After setting up the data pipe, the PnP broker enters the background to allow user applications and services to manage message streams and data formats. This approach is used by PnP brokers alone to discover the capabilities of other network entities and is useful when applications, services, and devices manage the interaction between user applications and discovered services. is there. Messages are exchanged directly between user applications and services without the involvement of a PnP broker. Message exchange is strictly a form of native data in native packets. To discover a service before making a service request or to query a service, a user application can use the PnP inter-broker protocol. For example, an IEEE 1394 compliant camera can use this data exchange format to send a data stream to a digital VCR.

[PnPブローカのパケットにおけるネイティブデータ転送(トンネリング)]
データフォーマットはユーザアプリケーションおよびサービスによって選択され制御される一方で、PnPブローカが、データパイプを設定し、メッセージストリームを管理することも可能である。このアプローチは、ユーザアプリケーションと発見されたサービスとの間で共通のメッセージングプロトコルが存在しないときに有用である。すべてのメッセージは、PnPブローカ間プロトコルによって運ばれる。例えば、IEEE1394対応カメラは、PnPブローカを通じて、異なるクラスタ内のディジタルVCRにデータストリームを送る。
[Native data transfer (tunneling) in PnP broker packet]
While the data format is selected and controlled by user applications and services, it is also possible for a PnP broker to set up data pipes and manage message streams. This approach is useful when there is no common messaging protocol between the user application and the discovered service. All messages are carried by the PnP inter-broker protocol. For example, an IEEE 1394 compliant camera sends a data stream through a PnP broker to digital VCRs in different clusters.

[PnPブローカのパケットにおけるPnPブローカのデータ(完全機能ゲートウェイ)]
PnPブローカが、データパイプを設定し、メッセージストリームを管理し、ユーザアプリケーションとサービスとの相互作用のためのデータフォーマット定義を提供する。また、ブローカは、ユーザアプリケーションと発見されたサービスとの間の共通のメッセージングプロトコルおよび共通のデータフォーマットを提供する。メッセージ交換情報は、PnPブローカデータに含まれ、これはパケットにフォーマットされる。ユーザアプリケーションメッセージは、PnPブローカを通るが、PnPブローカは、メッセージの内容あるいはセマンティクスを検査することはない。このタイプの相互作用の例は、USBデバイスと対話するIEEE1394対応デバイスである。
[PnP broker data in PnP broker packet (fully functional gateway)]
A PnP broker configures data pipes, manages message streams, and provides data format definitions for user application and service interaction. The broker also provides a common messaging protocol and a common data format between the user application and the discovered service. The message exchange information is included in the PnP broker data, which is formatted into packets. User application messages pass through the PnP broker, but the PnP broker does not check the content or semantics of the message. An example of this type of interaction is an IEEE 1394 enabled device interacting with a USB device.

[SLPユーザエージェント]
ユーザエージェントは、あるサービスとの接続を確立するためにユーザに代わって動作するプロセスである。ユーザエージェントは、サービスエージェントまたはディレクトリエージェントからサービス情報を取得する。
[SLP User Agent]
A user agent is a process that runs on behalf of a user to establish a connection with a service. The user agent acquires service information from the service agent or directory agent.

[SLPサービスエージェント]
サービスエージェントは、サービスを公表するために、1個以上のサービスに代わって動作するプロセスである。
[SLP Service Agent]
A service agent is a process that acts on behalf of one or more services to advertise services.

[プロトコルと相互作用]
PnPブローカは、ユーザアプリケーションがネットワークのプラグアンドプレイ機能を利用することができるようにする標準化されたインタフェースを公開する。このPnPブローカインタフェースを用いて、アプリケーションは、トランスポート層とは独立にPnPブローカ間プロトコルを用いて相互に通信するように書くことができる。この設計は、ポータビリティ(可搬性)を促進し、ネットワークサービスの発見および選択のためのスケーラブルなフレームワークを提供する。PnPブローカ間プロトコルは、IETF Service Location Protocol v.2に基づいており、サービスをサポートするネットワークホストの名前をユーザアプリケーションが知ることは不要である。むしろ、ユーザは、PnPブローカインタフェースを通じて、所望のサービスタイプと、対応する属性のセットとをPnPブローカに与える。これらは、PnPブローカに対して、所望のサービスを記述する。この記述に基づいて、PnPブローカは、PnPブローカ間プロトコルを用いてサービスのネットワークアドレスを解決し、PnPブローカ間プロトコルは、サービスロケーションプロトコルを使用する。また、PnPブローカインタフェースは、デバイスあるいはサービスのためのユーザの識別および認証機構を扱う。いったんサービスが識別されると、PnPブローカ間プロトコルは、JavaRMIあるいはHTTPを用いて、ユーザアプリケーションが、発見されたサービスを使用することを可能にする。このフレームワークのもう1つの重要な特徴はゲートウェイによって提供される。ゲートウェイは、デバイスの能力をPnPブローカに登録し、PnPブローカが、PnPブローカにおいてサービスエージェントを通じてサービスを使用することを可能にする。
[Protocol and Interaction]
PnP brokers expose a standardized interface that allows user applications to take advantage of the plug and play capabilities of the network. Using this PnP broker interface, applications can be written to communicate with each other using a PnP inter-broker protocol independent of the transport layer. This design promotes portability and provides a scalable framework for network service discovery and selection. The PnP inter-broker protocol is based on the IETF Service Location Protocol v.2 and does not require the user application to know the name of the network host supporting the service. Rather, the user provides the desired service type and a corresponding set of attributes to the PnP broker through the PnP broker interface. These describe the desired services to the PnP broker. Based on this description, the PnP broker resolves the network address of the service using a PnP broker protocol, and the PnP broker protocol uses a service location protocol. The PnP broker interface also handles user identification and authentication mechanisms for devices or services. Once a service has been identified, the PnP inter-broker protocol uses Java RMI or HTTP to allow user applications to use the discovered service. Another important feature of this framework is provided by the gateway. The gateway registers the capabilities of the device with the PnP broker and enables the PnP broker to use services at the PnP broker through service agents.

要約すれば、本発明のプロトコルスイートは、以下のプロトコルおよびインタフェースからなる。   In summary, the protocol suite of the present invention consists of the following protocols and interfaces.

・PnPブローカとユーザアプリケーションの間のインタフェース。   An interface between the PnP broker and the user application.

・あるPnPブローカと別のPnPブローカの間のプロトコル。   A protocol between one PnP broker and another PnP broker.

・PnPブローカとゲートウェイの間のプロトコル。   A protocol between the PnP broker and the gateway.

・ゲートウェイとダミーの間のプロトコル。   A protocol between the gateway and the dummy.

[ユーザアプリケーションへのPnPブローカのインタフェース(PnPブローカインタフェース)]
PnPブローカは、サービス登録、サービス発見、サービス要求、およびアベイラビリティチェックのために、ユーザアプリケーションに対して、標準化されたAPIおよびインタフェースを公開する。さらに、PnPブローカは、適当なサービスあるいはデバイスのためのユーザの識別および認証を扱う。
[PnP broker interface to user application (PnP broker interface)]
The PnP broker exposes standardized APIs and interfaces to user applications for service registration, service discovery, service requests, and availability checks. In addition, the PnP broker handles user identification and authentication for the appropriate service or device.

[サービス登録]
必要なとき、サービスユニットまたははユーザアプリケーションは、それぞれ、サービスユニットまたはユーザアプリケーションとしてローカルPnPブローカに自分を登録または登録解除するために、RegisterService()またはUnregisterService()を呼び出す。ユーザアプリケーションまたはサービスユニットがPnPブローカに登録された後、その機能は、別のユーザアプリケーションまたはサービスユニットからのQueryService()またはSearchService()要求に対する応答に含まれる。
[Service Registration]
When needed, the service unit or user application calls RegisterService () or UnregisterService () to register or unregister itself with the local PnP broker as a service unit or user application, respectively. After a user application or service unit is registered with the PnP broker, its functionality is included in a response to a QueryService () or SearchService () request from another user application or service unit.

[サービス発見]
ユーザアプリケーションは、SearchService()を呼び出して、ローカルPnPブローカに対し、特定のサービスを有する登録されたサービスユニットを含むPnPブローカを探索するよう要求する。ユーザアプリケーションは、QueryService()を呼び出して、どのようなサービスユニットが登録されているか、および、ユーザアプリケーションによって指定されたPnPブローカに登録されているサービスユニットの機能を発見する。
[Service Discovery]
The user application calls SearchService () to request the local PnP broker to search for a PnP broker that includes a registered service unit with a particular service. The user application calls QueryService () to find out what service unit is registered and the function of the service unit registered in the PnP broker specified by the user application.

[サービス要求]
ユーザアプリケーションまたはサービスユニットは、OpenService()を呼び出して、ローカルPnPブローカに対し、ローカルPnPブローカまたはリモートPnPブローカのいずれかに登録されている特定のサービスユニットとのサービスセッションを開始するよう要求する。TransferData()、ReceiveData()、およびCloseService()コールにより、追加機能が提供される。
[Service Request]
The user application or service unit calls OpenService () to request the local PnP broker to initiate a service session with a particular service unit registered with either the local PnP broker or the remote PnP broker. TransferData (), ReceiveData (), and CloseService () calls provide additional functionality.

[アベイラビリティチェック]
ユーザアプリケーションまたはサービスユニットは、StartAvailabilityCheck()を呼び出して、ローカルPnPブローカに対し、ローカルPnPブローカまたはリモートPnPブローカのいずれかに登録されている特定のサービスユニットが動作しているかどうかを周期的にチェックするよう要求する。
[Availability Check]
The user application or service unit calls StartAvailabilityCheck () to periodically check with the local PnP broker whether a specific service unit registered with either the local PnP broker or the remote PnP broker is operating. Request to do so.

[ユーザの識別および認証]
好ましい実施例では、本発明は、Javaアプリケーション環境を利用する。これは、分散コンピューティングのための適切な、現在利用可能なコンピューティングプラットフォームを提供するからである。この環境では、コードおよびデータの両方が、マシン間で移動可能である。この環境は、別のマシンからダウンロードされたコードが、妥当なレベルの信頼性で動作することを可能にする組込みセキュリティを有する。Javaアプリケーション環境における強い型付けにより、仮想マシン上で、オブジェクトのクラスの識別は、そのオブジェクトがそのマシン上で発生したものでないときでも実行可能である。その結果、ネットワークは、必要に応じて移動可能なオブジェクトの流動的なコンフィグレーションをサポートし、オペレーションを実行するためにネットワークの任意の部分を呼び出すことができる。
User identification and authentication
In a preferred embodiment, the present invention utilizes a Java application environment. This is because it provides a suitable, currently available computing platform for distributed computing. In this environment, both code and data are portable between machines. This environment has built-in security that allows code downloaded from another machine to operate with a reasonable level of reliability. Due to the strong typing in the Java application environment, identification of a class of an object on a virtual machine can be performed even when the object does not originate on that machine. As a result, the network supports the fluid configuration of movable objects as needed, and can invoke any part of the network to perform operations.

ホームデバイスへの認証なしのアクセスは、フレームワーク全体のセキュリティにとって重大な結果を生じる可能性がある。リソースへの制御されたアクセスは、安全性とセキュリティの基礎である。従って、本発明の一実施例は、Java仮想マシンおよびJavaプログラミング環境を使用して、1つのデバイスのセキュリティを保証する。システムは、障害のあるデバイスに対処するように設計することが可能であるが、ネットワークセキュリティは、デバイスセキュリティよりも複雑な問題となる。   Unauthenticated access to home devices can have serious consequences for the security of the entire framework. Controlled access to resources is the basis for security and security. Thus, one embodiment of the present invention uses a Java virtual machine and a Java programming environment to ensure the security of one device. Although systems can be designed to address faulty devices, network security is a more complex issue than device security.

本発明のもう1つの実施例は、コードを参照する手段として、および、基本的なアクセス制御機構として、コードのMD5チェックサムを使用する。MD5は、コードのチェックサムを生成する暗号化手続きであり、アクセス制御のために使用される。しかし、ネットワークが大規模になると、セキュリティポリシーを指定しコードに名前付けするためのより柔軟な分散機構が必要である。   Another embodiment of the present invention uses the MD5 checksum of the code as a means of referencing the code and as a basic access control mechanism. MD5 is an encryption procedure for generating a code checksum, and is used for access control. However, larger networks require more flexible distribution mechanisms for specifying security policies and naming code.

本発明のセキュリティモデルは、プリンシパルとアクセス制御リストという2つの概念の上に構築される。サービスは、あるエンティティ(プリンシパル)に代わってアクセスされる。プリンシパルは、一般に、システムの特定のユーザに由来する。サービス自体が、そのサービスを実装するオブジェクトの識別に基づいて、他のサービスへのアクセスを要求することが可能である。サービスへのアクセスが許可されるか否かは、そのオブジェクトに対応するアクセス制御リストに依存する。   The security model of the present invention is built on two concepts, principal and access control list. Services are accessed on behalf of an entity (principal). Principals generally come from a particular user of the system. The service itself can request access to other services based on the identity of the object that implements the service. Whether or not access to the service is permitted depends on the access control list corresponding to the object.

[PnPブローカ間通信プロトコル]
PnPブローカ間通信プロトコルは、2つの部分に分かれる。第1に、ネットワーク内で新たなデバイスおよびサービスを発見するための、プロトコルおよび機構のセットが使用される。発見(ディスカバリ)手続きは、ユーザアプリケーションがどのようにしてネットワークインフラストラクチャを探索するか、および、ユーザアプリケーションがどのようにして自分自身およびそのサービスを登録することができるかを指定するサービスディスカバリプロトコルの部分に基づく。他方、ルックアップ手続きは、ユーザアプリケーションが、集中化されたレジストリがある場合あるいはない場合に、必要とするサービスを探索するためにどのようにしてレジストリに問合せを行うかを指定するプロトコルに基づく。
[PnP Broker Communication Protocol]
The PnP inter-broker communication protocol is divided into two parts. First, a set of protocols and mechanisms are used to discover new devices and services in the network. The discovery procedure is a service discovery protocol that specifies how a user application searches for network infrastructure and how the user application can register itself and its services. Based on part. On the other hand, the lookup procedure is based on a protocol that specifies how the user application queries the registry to find the service it needs, with or without a centralized registry.

いったんサービスが探索された後、そのサービスを利用するために他のステップが必要になることがある。本発明の実施例では、ユーザアプリケーションは、サービスの品質およびセキュリティ条件を含めて、サービスへのアクセスの交渉を行う。さらに、サービスへのアクセスの交渉が成功した後、ユーザアプリケーションは、JavaRMI、HOP、あるいはHTTPプロトコルを使用して、実際にサービスを利用する。   Once a service has been discovered, other steps may be required to utilize the service. In an embodiment of the present invention, the user application negotiates access to the service, including quality of service and security requirements. Further, after successful negotiation of access to the service, the user application actually uses the service using the Java RMI, HOP, or HTTP protocol.

[サービスディスカバリ/登録プロセス]
ルックアップおよびディスカバリの両方のために、サービスロケーションプロトコル(SLP)が使用される。図5に、サービスディスカバリ手続きを示す。SLPは、自動的に、しかも事前の設定なしで、ユーザエージェント(UA:user agent)502の要求を、サービスエージェント(SA:Service Agent)504によって提供されるサービス512と照合する。SLPは、SAによるサービスの公表と、ディレクトリエージェント(DA:Directory Agent)511により管理されるSLPディレクトリ508へのサービスの編成とを処理する。また、SLPは、サービスがユーザアプリケーションにサービスの能力および設定条件を通知する手段を提供する。
[Service Discovery / Registration Process]
The Service Location Protocol (SLP) is used for both lookup and discovery. FIG. 5 shows a service discovery procedure. The SLP automatically and without any pre-configuration checks the request of a user agent (UA) 502 against a service 512 provided by a service agent (SA) 504. The SLP handles the publication of services by the SA and the organization of services into an SLP directory 508 managed by a Directory Agent (DA) 511. The SLP also provides a means for the service to notify the user application of the capability and setting conditions of the service.

PnPブローカ501内のUA502は、ユーザアプリケーション103によるサービスおよびリソースの要求を理解する。同じくPnPブローカ503(同じPnPブローカでも異なるPnPブローカでもよい)にあるSA504は、各ネットワークサービスを代表し、UA502にとって利用可能なサービスを行う。SLPは、動的にサービス属性を保持するため、UA502は、現在の情報を取得することが可能である。サービスは、アプリケーションによって自動的に探索されることも可能であり、あるいは、サービスブラウザでユーザに提示されることも可能である。SLPは、既存のアプリケーションをサポートするとともに、新たなサービスの公表および発見を容易に可能にする。   The UA 502 in the PnP broker 501 understands service and resource requests by the user application 103. The SA 504 in the PnP broker 503 (which may be the same PnP broker or a different PnP broker) represents a network service and performs a service available to the UA 502. Since the SLP dynamically holds service attributes, the UA 502 can acquire current information. The service can be automatically searched for by the application, or it can be presented to the user with a service browser. SLP supports existing applications and facilitates the publication and discovery of new services.

本発明によれば、サービスは、ゲートウェイによって記述される。ゲートウェイは、SA内の属性(そのサービスに対応する)の値を設定する。例えば、プリンタは、ポストスクリプトプリンタとして、青色の紙が利用可能なプリンタとして、あるいは、ユーザのオフィスの同じフロアにあるプリンタとして、記述することができる。UA502は、DA511への要求メッセージSrvReq505において必要なキーワードおよび属性値を指定することによって適当なプリンタを選択し、応答を待つ。DA511は、適当するサービスのネットワークロケーションを含む応答SrvRply505により応答する。小規模な施設では、DAがないことも可能であり、その場合、要求メッセージは直接にSAに送られることになる。これを、ブロードキャストによるディスカバリ(507)という。   According to the invention, a service is described by a gateway. The gateway sets the value of the attribute (corresponding to the service) in the SA. For example, the printer may be described as a PostScript printer, a printer with blue paper available, or a printer on the same floor of the user's office. The UA 502 selects an appropriate printer by designating necessary keywords and attribute values in the request message SrvReq 505 to the DA 511, and waits for a response. DA 511 responds with a response SrvRply 505 containing the network location of the appropriate service. In a small facility, it may be possible to have no DA, in which case the request message would be sent directly to the SA. This is called discovery by broadcast (507).

サービスは、DA511に登録することによって自分自身を公表する。サービスの登録は、サービスを記述するすべてのキーワードと属性値対(属性と値からなる対)とからなるリストを含む。また、登録は、リソースへのリースを含む。これにより、リースの満期後、サービス情報はDA511によって削除される。リース機構は、サービスが永久に公表され続けているのにサービスハードウェアがもはや利用可能でない状況を避けるために実装される。また、明示的な登録解除も、SAの規則正しいシャットダウン手続きの一部として、DAからサービスの情報を削除することが可能である。また、SAが、現在の属性情報を周期的に登録することにより、UAが、サービスに関連するステータス、負荷、温度、あるいはその他の動的特性を確認することも可能である。   The service announces itself by registering with DA511. The service registration includes a list of all keywords describing the service and attribute value pairs (pairs of attributes and values). Registration also includes leasing to resources. Thus, after the lease expires, the service information is deleted by the DA 511. A leasing mechanism is implemented to avoid situations where service hardware is no longer available while services are being published forever. Explicit deregistration can also delete service information from DA as part of the SA's regular shutdown procedure. Further, the SA periodically registers the current attribute information, so that the UA can check the status, load, temperature, or other dynamic characteristics related to the service.

本発明のフレームワークでは、サービスは、そのサービスタイプに従って分類される。各サービスタイプは、SA504がサービスを記述するために利用可能にする、利用可能なキーワードおよび属性のセットを定義する。サービスブラウザは、まず、UA502にとって利用可能なサービスタイプを発見した後、そのサービスタイプについてSAによって公表されているすべての情報を問い合わせることによって、UA502にとって利用可能なすべてのサービスのすべての特性を決定することができる。   In the framework of the present invention, services are classified according to their service type. Each service type defines a set of available keywords and attributes that SA 504 makes available to describe the service. The service browser first finds a service type available to the UA 502 and then determines all characteristics of all services available to the UA 502 by querying all information published by the SA for that service type. can do.

[ユーザエージェントとサービスエージェントの相互作用]
サービス/デバイス登録プロセスの一部として、まず、サービスユニット512のゲートウェイは、サービスあるいはデバイスをSA504に登録し、その後、SA504は、SrvRegメッセージ506をDA511に送る。この登録は、サービスの特定のインスタンスに対するサービスURIと、そのサービスを記述する属性値対とを含む。DA511は、さまざまな目的で、このような登録をキャッシュすることが可能である。登録がキャッシュされた後、DA511は、SrvAckメッセージにより応答する。また、サービス登録は、寿命(lifetime)を含む。サービスが利用不能になったがそれ自身を登録解除することができなかった場合、寿命値により、DA511は、キャッシュされた登録を満期にすることができる。この状況は、SA504がSrvDeregメッセージ506を発行することができない場合にしか生じないはずである。正常動作中、SA504は、後続のSrvRegメッセージで周期的にサービスの登録をリフレッシュする。このような「リフレッシュ」メッセージは、いずれかの値が変化した場合には更新された情報を含むことが可能であるが、完全な属性のセットを含む必要はない。
[Interaction between user agent and service agent]
As part of the service / device registration process, the gateway of the service unit 512 first registers the service or device with the SA 504, which then sends an SrvReg message 506 to the DA 511. The registration includes a service URI for a particular instance of the service and an attribute value pair that describes the service. DA 511 can cache such registrations for various purposes. After the registration is cached, DA 511 responds with a SrvAck message. The service registration also includes a lifetime. The lifetime value allows DA 511 to expire a cached registration if the service becomes unavailable but could not unregister itself. This situation should only occur if SA 504 cannot issue SrvDereg message 506. During normal operation, the SA 504 periodically refreshes service registration with subsequent SrvReg messages. Such a "refresh" message may include updated information if any value changes, but need not include the complete set of attributes.

PnPブローカ501のUA502は、サービスが要求されるときに、DA511に対して要求を行う。UA502がDA511を発見することが可能ないくつかの方法がある。起動時にDA511のアドレスをUA502に静的に設定することに加えて、UA502は、当業者に周知のDHCP(Dynamic Host Configuration Protocol)を用いてDA511のアドレスを要求することも可能である。第3のオプションとして、リンク上にマルチキャストを行い、DAの公表を受け取るということがある。これらの3つのオプションは共存するが、SLPが、手動設定なしで動作可能であることが重要である。この理由で、UA502は、DA511を見つけるためにSrvReqを使用することが可能である。SrvReqは、SLPに対するIANA割当てマルチキャストアドレスにマルチキャストされる。IANAは、当業者に周知のInternet Assigned Numbering Authority標準である。これはマルチキャスト要求であるため、複数のユニキャスト応答を受け取る可能性がある。その結果として得られるDAのりすとは、他のサービス要求のために使用可能である。   The UA 502 of the PnP broker 501 makes a request to the DA 511 when a service is requested. There are several ways that the UA 502 can discover the DA 511. In addition to statically setting the address of the DA 511 in the UA 502 at startup, the UA 502 can request the address of the DA 511 using a DHCP (Dynamic Host Configuration Protocol) known to those skilled in the art. A third option is to multicast on the link and receive DA announcements. Although these three options coexist, it is important that the SLP be operable without manual configuration. For this reason, UA 502 can use SrvReq to find DA 511. The SrvReq is multicast to the IANA assigned multicast address for the SLP. IANA is an Internet Assigned Numbering Authority standard well known to those skilled in the art. Since this is a multicast request, it may receive multiple unicast responses. The resulting DA resource is available for other service requests.

いったんUA502がDA511のアドレスを得ると、後続のサービス要求は直接にそのエンティティに対して行うことが可能である。プリンタを例とすると、UA502がプリンタサービスを探索しようとする場合、SrvReqが作成される。このメッセージは、サービスタイプ"printer"と、オプションの属性および値のリストとを含む。属性値対は、要求されるプリンタのタイプを記述する。このメッセージは、事前に設定された、または、マルチキャストを通じて発見された、DA511へユニキャストされる。DA511は、SrvReqを受信し、キャッシュされた登録に対するルックアップを実行して、要求された属性および値と一致するものを見つけようと試みる。その後、SrvRplyが、要求側のUA502へユニキャストされる。この応答は、一致結果に依存して、0個以上のサービスURIを含む。その後、ユーザアプリケーションは、そのサービスURIを用いてプリンタを見つける。   Once the UA 502 obtains the address of the DA 511, subsequent service requests can be made directly to that entity. Taking a printer as an example, if the UA 502 seeks a printer service, an SrvReq is created. This message contains the service type "printer" and an optional list of attributes and values. The attribute value pairs describe the type of printer required. This message is unicast to DA 511, which is preset or discovered via multicast. DA 511 receives the SrvReq and performs a lookup on the cached registration to attempt to find a match for the requested attribute and value. The SrvRply is then unicast to the requesting UA 502. This response contains zero or more service URIs, depending on the match result. Thereafter, the user application finds the printer using the service URI.

施設内にDA511がない場合、PnPブローカは、同じくラスタ内のSA504を見つけることに制限される。これは、多くの小規模な施設では許容できるかもしれないが、PnPブローカのスケーラブルなアプリケーションの場合、および、複数のクラスタを有する大規模な施設では、DA511を使用しなければならない。さらに、SLP DA511は、LDAPベースのディレクトリ509へのゲートウェイであることが可能であるため、PnPブローカインタフェースは、変換スキーマ510を用いて、すべてのプロトコルに対する単一のAPIを提供する。   If there is no DA 511 in the facility, the PnP broker is restricted to finding SA 504, also in the raster. This may be acceptable in many small facilities, but for scalable applications of PnP brokers, and in large facilities with multiple clusters, DA511 must be used. Further, because the SLP DA 511 can be a gateway to an LDAP-based directory 509, the PnP broker interface uses the conversion schema 510 to provide a single API for all protocols.

UA502は、サービスハンドルを取得したいとき、サービスタイプと、要求する属性の文字列ベースの問合せとをサービス要求として送信する。サービス応答が返されるとき、これは、サービスを指すURIを含む。URIは、SA504のIPアドレスを含むか、さもなければ、DNSがIPアドレスへと解決することができる名前を含む。また、URIは、UA502がサービスを使用するために必要とするその他の情報を含む。例えばプリンタの場合、キュー名と、プリントサービスをホスティングしているコンピュータのアドレスとが返される。URIは、リソースロケーションを表すための従来の標準と同様の自然な方法で、サービスを見つけるために使用される。さらに、文字セット問題は、標準的な方法で対処することができる。   When the UA 502 wants to obtain a service handle, it sends a service type and a character string-based query for the requested attribute as a service request. When the service response is returned, it contains a URI pointing to the service. The URI includes the IP address of SA 504, or a name that DNS can resolve to an IP address. The URI also includes other information required for the UA 502 to use the service. For example, in the case of a printer, the queue name and the address of the computer hosting the print service are returned. URIs are used to find services in a natural way, similar to conventional standards for representing resource locations. Further, character set issues can be addressed in a standard way.

[PnPブローカとユーザエージェントおよびサービスエージェントとの相互作用]
SLPを使用することにより、PnPブローカは、同じタイプの多くの他の公表されたデバイスから適当なサービスの正確な選択をすることができる。これは、UA502によって要求されたキーワードおよび要求された属性値に一致するサービスのみを要求することによって行われる。このようなキーワードおよび属性値は、AND、OR演算子、一般的な比較演算子により、また、部分文字列マッチングを使用することにより、ブール式へと結合することができる。
[Interaction of PnP broker with user agent and service agent]
By using SLP, the PnP broker can make an accurate selection of the appropriate service from many other published devices of the same type. This is done by requesting only those services that match the keywords and requested attribute values requested by UA 502. Such keywords and attribute values can be combined into Boolean expressions by AND, OR operators, general comparison operators, and by using substring matching.

PnPブローカは、ユーザへのコンフィグレーション情報の提供を透過的にし、新たなサービスの設定の作業を容易にする。これらはいずれも、システムアドミニストレータを必要とする。SA504が近隣のDA511にサービスを公表するように設定された後、UA502は、さまざまなサービスがオペレーションを開始および停止するとともにネットワーク上で変化する条件に、動的に適応することができる。例えば、ウェブアプリケーションは、現時点でたまたま動作中であるシステムとは独立に、適当なプリンタが利用可能である限りそれを見つけることができる。   The PnP broker makes the provision of configuration information transparent to the user and facilitates the work of setting a new service. All of these require a system administrator. After SA 504 is configured to advertise services to neighboring DAs 511, UA 502 can dynamically adapt to the changing conditions on the network as various services start and stop operation. For example, a web application can find a suitable printer as long as it is available, independent of the system that happens to be running at the moment.

ゲートウェイは、SA504に新たなデバイスあるいはサービスを追加したいとき、そのサービスの利用可能な属性およびキーワードを供給する。SA504は、プログラム的にSLPに登録を行い、サービスの固有のコンフィグレーション情報に基づいて属性に対する値を割り当てることができる。その後、SLPは、登録(公表)を処理し、ユーザアプリケーションとサービスの間のコネクションの確立を可能にする。   When the gateway wants to add a new device or service to SA 504, it supplies the available attributes and keywords for that service. The SA 504 can programmatically register with the SLP and assign values for attributes based on the unique configuration information of the service. The SLP then processes the registration (publication) and allows the establishment of a connection between the user application and the service.

新たなサービスタイプを必要に応じて定義することができる。実験的なサービスタイプを限定された用途で配備し、その後に一般用に公開することも可能である。これは、SLPのネーミング権限機能を用いて実行される。ほとんどの一般的なサービスタイプは、デフォルトで、IANA(Internet Assigned Numbering Authority)により標準化されたサービステンプレート(スキーム)定義を使用する。代替サービスタイプを定義することは、任意の代替ネーミング権限に知られているスキーム定義(通常は、ローカル管理者に知られている名前)を使用するようにディレクトリエージェントを設定するのと同様に容易である。例えば、家庭でセキュリティサービスを提供するためには、"service:secure:Door"というサービスタイプを定義することができる。もちろん、このタイプのサービスハンドルを利用するユーザアプリケーションは、"secure"サービスと通信するために、そのサービスのネットワークプロトコルを使用しなければならず、さらに、この特別のサービスタイプのURIに含まれる情報を解析することができなければならない。これは、任意のユーザアプリケーション/サーバプロトコルの自然な動作に本来的なことである。   New service types can be defined as needed. It is also possible to deploy an experimental service type for limited use and then make it publicly available. This is performed using the naming authority function of the SLP. By default, most common service types use service template (scheme) definitions standardized by the Internet Assigned Numbering Authority (IANA). Defining an alternative service type is as easy as setting up a directory agent to use a scheme definition known to any alternative naming authority (typically a name known to the local administrator). It is. For example, to provide a security service at home, a service type of "service: secure: Door" can be defined. Of course, a user application utilizing this type of service handle must use the service's network protocol in order to communicate with the "secure" service, and furthermore the information contained in the URI of this particular service type Must be able to parse. This is inherent in the natural operation of any user application / server protocol.

[SLPをLDAPとともに使用すること]
LDAPv3(Lightweight Directory Access Protocol)は、当業者に周知であり、汎用のディレクトリアクセスプロトコルとして普及しつつある。LDAPはその名前にLightweight(軽量)とあるが、SLPはLDAPよりもさらに「軽量」である。また、SLPは、自動ディレクトリ管理を提供するため、および、階層的で自由度の少ない名前空間における不適切なリソース配置を必要としないために、リソース管理においてLDAPよりすぐれている。SLPにおいて新たなサービスタイプを追加することはLDAPの場合よりもずっと容易である。タイプによる問合せは、SLPの場合のほうがLDAPの場合よりも効率的である。既存のリソースに対する属性記述は、SLPでは利用可能であるが、LDAPでは不可能である。
[Using SLP with LDAP]
LDAPv3 (Lightweight Directory Access Protocol) is well known to those skilled in the art and is becoming popular as a general-purpose directory access protocol. LDAP has its name Lightweight, but SLP is even more "lightweight" than LDAP. Also, SLP is superior to LDAP in resource management because it provides automatic directory management and does not require improper resource placement in a hierarchical, less flexible namespace. Adding new service types in SLP is much easier than in LDAP. Queries by type are more efficient with SLP than with LDAP. Attribute descriptions for existing resources are available in SLP, but not in LDAP.

SLPでは、事前コンフィグレーションなしでのディスカバリが可能である。これに対して、LDAPは、はじめに、ディレクトリのアドレスと、LDAPが使用するディレクトリスキームの知識を必要とする。SLPでは、非標準的な属性と、標準化されたサービスタイプテンプレートの新しいバージョンが可能であるため、進化することができる。   SLP enables discovery without pre-configuration. In contrast, LDAP first requires knowledge of the directory address and the directory scheme used by LDAP. SLP can evolve because non-standard attributes and new versions of standardized service type templates are possible.

本発明の実施例は、SLPを使用して、LDAPディレクトリの管理を簡単化し、SLPが、必要に応じてLDAPディレクトリから取得される情報を返すことを可能にする。別の実施例では、SLPは、LDAPにサービスエントリを入力するために動的に使用され、SLP問合せはLDAP問合せにマッピングされて、LDAPがSLPのバックエンドとなる。このようなコンフィグレーションの1つの利点は、ユーザアプリケーションが、LDAPディレクトリから直接にユーザ認証情報を得ることである。   Embodiments of the present invention use SLPs to simplify the management of LDAP directories and enable SLPs to return information obtained from LDAP directories as needed. In another embodiment, the SLP is dynamically used to populate LDAP with a service entry, the SLP query is mapped to an LDAP query, and the LDAP is the back end of the SLP. One advantage of such a configuration is that the user application gets the user credentials directly from the LDAP directory.

[サービス利用プロセス]
サービスディスカバリ/登録プロセスは、サービスロケーションプロトコルによって提供されるURIによって検索可能なサービスレコードを提供する。PnPブローカ間の交換能力は、サービスレコードを含むQueryService()メッセージを交換することにより提供される。この問合せ(query)は、ユーザアプリケーションが利用したいサービスの要件を記述し、リモートPnPブローカに対してサービスの詳細を要求する。
[Service Usage Process]
The service discovery / registration process provides a service record that can be searched by the URI provided by the service location protocol. Exchange capabilities between PnP brokers are provided by exchanging QueryService () messages containing service records. This query describes the requirements of the service that the user application wants to use, and requests the details of the service from the remote PnP broker.

受信側PnPブローカは、QueryService()メッセージを受信すると、受信したサービスレコードを自己のサービスレコードと比較する。その後、受信側PnPブローカは、一致したサービスレコードを含むサービスレコードを要求側PnPブローカに返す。このアプローチは、すべてのサービスユニット、特定のタイプのサービスユニット、あるいは、特定の能力のセットを有するサービスユニットのうちで、ユーザアプリケーションが探索を行う技術を提供する。ユーザアプリケーションは、サービスレコードを受け取った後、サービスあるいはデバイスを使用するためにPnPブローカとの通信を開始することができる。   Upon receiving the QueryService () message, the receiving side PnP broker compares the received service record with its own service record. Thereafter, the receiving PnP broker returns a service record including the matching service record to the requesting PnP broker. This approach provides a technique for a user application to search among all service units, a particular type of service unit, or a service unit with a particular set of capabilities. After receiving the service record, the user application can initiate communication with the PnP broker to use the service or device.

ローカルPnPブローカは、リモートPnPブローカへメッセージを送ることによって、ユーザアプリケーションとサービスの間のサービスセッションの確立を要求する。このメッセージは、ユーザアプリケーションサービスハンドル、リモートサービスユニットハンドル、プロトコルID(ネイティブ/トンネル/ゲートウェイ経由)、要求側(リクエスタ)ID、および要求側資格証明(credential)からなる。   The local PnP broker requests the establishment of a service session between the user application and the service by sending a message to the remote PnP broker. This message consists of a user application service handle, a remote service unit handle, a protocol ID (via native / tunnel / gateway), a requester (requester) ID, and a requester credential.

リモートPnPブローカは、要求されたサービスが受容されるかそれとも拒否されるかを指定するリザルトコードで応答する。リモートPnPブローカは、ある時間後のリダイレクトまたはリトライを含むことも可能である。サービスが受容される場合、リモートPnPブローカは、サービスセッションの開始を識別するサービスハンドルを送信する。サービスセッションは、ユーザアプリケーションとサービスユニットの間、または、2つのサービスユニットの間でのデータ転送を扱う。ユーザアプリケーションは、サービスの使用を完了すると、ローカルPnPブローカに対して、"close service"(サービス終了)メッセージをリモートPnPブローカへ送るよう要求する。さらに、ユーザアプリケーションは、サービスが利用可能であるかどうかを周期的に判定する必要があるとき、それぞれのPnPブローカに対して、フレームワーク内のPnPブローカ間でアベイラビリティチェックを実行するよう要求することができる。アベイラビリティチェックは、1つのデバイス全体に対しても、あるいは、デバイス内で提供される特定のサービスに対しても、実行可能である。   The remote PnP broker responds with a result code specifying whether the requested service is accepted or rejected. The remote PnP broker may also include a redirection or retry after some time. If the service is accepted, the remote PnP broker sends a service handle identifying the start of the service session. A service session deals with data transfer between a user application and a service unit or between two service units. When the user application completes the use of the service, it requests the local PnP broker to send a "close service" (end of service) message to the remote PnP broker. Further, when the user application needs to periodically determine whether the service is available, it requests each PnP broker to perform an availability check between the PnP brokers within the framework. Can be. Availability checks can be performed on an entire device or on specific services provided within the device.

[PnPブローカ/ゲートウェイプロトコル]
PnPブローカ/ゲートウェイプロトコルは、簡単なメッセージ交換機構に基づいている。ゲートウェイは、既に説明したように、ゲートウェイに直接に接続されたサービスユニットを代表し、提供されるサービスを登録する。また、ゲートウェイは、PnPブローカにあるサービスエージェントに対する、任意のサービスのコンフィグレーションにおいてなされる変更を反映する。この登録は、リースに基づいており、ゲートウェイまたはサービスエージェントのいずれかにより更新可能である。登録は、サービスエージェントに現在の情報を提供する。PnPブローカは、特定のサービスに対する要求を受け取ると、まず、サービスエージェントをチェックして、必要なデバイスあるいはサービスをいずれかの直接接続されたゲートウェイが提供するかどうかを判定する。また、ゲートウェイにより、サービスエージェントは、ゲートウェイ内の特定のイベントに関心があることを登録し、そのイベントの発生の通知を受け取ることが可能である。このようなイベントは、ネットワークにおけるデバイス/サービスの追加/削除であることが可能である。サービスのサービスレコードがアプリケーションの要件に一致した場合、ユーザアプリケーションは、ゲートウェイ内のサービスユニットと、ユーザアプリケーションとの間のサービスセッションを設定することができる。
[PnP broker / gateway protocol]
The PnP broker / gateway protocol is based on a simple message exchange mechanism. The gateway registers the services to be provided on behalf of the service units directly connected to the gateway, as already described. The gateway also reflects changes made in the configuration of any service to the service agent at the PnP broker. This registration is based on a lease and can be renewed by either the gateway or the service agent. Registration provides current information to the service agent. When a PnP broker receives a request for a particular service, it first checks the service agent to determine if any of the directly connected gateways provide the required devices or services. The gateway also allows the service agent to register interest in a particular event within the gateway and receive notification of the occurrence of that event. Such an event may be the addition / deletion of a device / service in the network. If the service record of the service matches the requirements of the application, the user application can set up a service session between the service unit in the gateway and the user application.

[イベント通知機構]
本発明のフレームワークでは、ユーザアプリケーションは、イベント通知要求をサーバに登録することができるため、サーバは、新たなデバイスがオンラインになったとき、あるいは、デバイスの属性が変化したときに、ユーザアプリケーションに通知することになる。これを達成するため、本発明は、登録ユーザにイベント通知を配信するための機構を提供する。
[Event notification mechanism]
In the framework of the present invention, the user application can register the event notification request with the server, so that the server is able to register the user application when a new device comes online or when the attribute of the device changes. Will be notified. To achieve this, the present invention provides a mechanism for delivering event notifications to registered users.

ネットワークイベント通知プロトコルには、CORBA(Common Request Broker Architecture)イベントサービス、X−Windowシステムイベント、SGAP、BSCWなどのいくつかの周知のものがある。例えば、CORBAイベントサービスは、Robert Orfali and Dan Harkey, "Client/Server Programming with Java and CORBA", Wiley, 1996、に詳細に記載されている。   There are several well-known network event notification protocols, such as CORBA (Common Request Broker Architecture) event service, X-Window system event, SGAP, and BSCW. For example, the CORBA event service is described in detail in Robert Orfali and Dan Harkey, "Client / Server Programming with Java and CORBA", Wiley, 1996.

しかし、上記のイベント通知サービスは、特定のアーキテクチャで動作するように設計され、大規模なコードベースを課するため、軽量通知サービスにおいて実際に使用するのは困難である。   However, the above event notification service is difficult to actually use in a lightweight notification service because it is designed to operate on a specific architecture and imposes a large code base.

いくつかのタイプのイベントの通知のための登録に関して提供される能力に加えて、ユーザは、属性を通知要求に関連づけることができる。好ましくは、このような通知は、高い信頼性で配信され、完全に規則正しいエンドツーエンド配信を保証するべきである。しかし、通知が、信頼できないトランスポートを通じて配信されるとき、確認応答やリトライは不要である。ユーザアプリケーションは、イベントの需要側が、受信の明示的な確認を供給側に提供することを要求することも可能である。認証のために、ユーザは、通知にディジタル証明して、通知の正当性および完全性を保証することができる。   In addition to the capabilities provided for registering for notification of some types of events, the user can associate attributes with the notification request. Preferably, such notifications should be delivered with high reliability and ensure perfectly regular end-to-end delivery. However, when notifications are delivered over an unreliable transport, no acknowledgment or retry is required. The user application may also require that the demand side of the event provide an explicit confirmation of receipt to the supplier. For authentication, the user can digitally certify the notification to ensure the correctness and integrity of the notification.

本発明のフレームワークは、SLPの使用により、2つの方法でイベント通知を達成する。第1実施例によれば、サービスエージェントは、サービスが更新された後、マルチキャストアナウンス(SrvReg)を送信する。更新を受信した後、ユーザエージェントは、ブラウザ更新を行うことが可能であり、DAは登録を更新することができる。このような使用法は、SLP使用では明示的に禁じられていないが、フラッディング(flooding)を引き起こす可能性がある。さらに、このアプローチは、多数のサービス、異なる言語、およびディジタル署名に関して効率的に動作しない。また、SrvRegは、ネットワークにおいて追加/削除/変更された各サービスのURIおよび属性を含む。   The framework of the present invention achieves event notification in two ways by using SLP. According to the first embodiment, the service agent sends a multicast announcement (SrvReg) after the service is updated. After receiving the update, the user agent can perform a browser update and the DA can update the registration. Such usage is not explicitly prohibited with SLP usage, but can cause flooding. Furthermore, this approach does not work efficiently for a large number of services, different languages, and digital signatures. The SrvReg includes a URI and an attribute of each service added / deleted / changed in the network.

本発明のもう1つの実施例では、サービスエージェントは、ネットワーク内のすべてのユーザエージェントへのブロードキャストにより、SAAdvertsメッセージをアナウンスする。SAAdvertsメッセージは、提供されるすべてのサービスタイプのリストを含む。SAAdvertsを得た後、ユーザエージェントは、送信側サービスエージェントへ適当なサービス要求をユニキャストする。サービスエージェントからのアナウンスは、指数バックオフ方式で行われる。   In another embodiment of the present invention, the service agent announces the SAAdverts message by broadcasting to all user agents in the network. The SAAdverts message contains a list of all service types offered. After obtaining SAAdverts, the user agent unicasts the appropriate service request to the sending service agent. Announcements from service agents are made in an exponential back-off manner.

[ゲートウェイ/ダミープロトコル]
ゲートウェイ/ダミープロトコルは、特殊なプロトコルであり、ネットワークにより統合されるデバイスのタイプを反映する。ネットワークは、X−10、USBおよびIEEE1394のデバイス/サービスをそれぞれネットワークの残りの部分に接続するX−10ゲートウェイ、USBゲートウェイ、およびIEEE1394ゲートウェイからなることが可能である。ダミーデバイスは、サービスレコードに対応するタイプのレコードを独自(proprietary)フォーマットで格納する。ゲートウェイ/ダミープロトコルは独自のものであるが、PnPブローカに対しては、標準化されたインタフェースを公開する。
[Gateway / Dummy protocol]
The gateway / dummy protocol is a special protocol that reflects the type of device integrated by the network. The network may consist of an X-10 gateway, a USB gateway, and an IEEE 1394 gateway that connect X-10, USB and IEEE 1394 devices / services to the rest of the network, respectively. The dummy device stores a record of a type corresponding to the service record in a proprietary format. The gateway / dummy protocol is unique, but exposes a standardized interface to the PnP broker.

[実施例]
本発明の一実施例によれば、ネットワークは、1個以上のPnPブローカを有する。PnPブローカは、ユーザといくつかのサービスとの間のインタフェースとして作用する。一実施例では、X−10デバイスに対するPnPブローカは、USBデバイスによって提供されるサービスにリンクされたいくつかのボタンあるいはその他のユーザインタフェースウィジェットを提供する。ここで用いた「ユーザインタフェースウィジェット」という用語の意味には、ユーザアプリケーションのグラフィカルユーザインタフェースを作成するために使用されるボタン、ダイアログ、テキストウィンドウ、スケールおよびその他のグラフィカルコンポーネントを含む。あるボタンがクリックされると、PnPブローカは、単に、X−10ゲートウェイを通じて、特定のサービスを呼び出す。以下のステップは、この実施例により、ユーザアプリケーションが、ネットワーク内の新たに登録されたサービスを利用するために必要とされる。
[Example]
According to one embodiment of the present invention, the network has one or more PnP brokers. A PnP broker acts as an interface between a user and some services. In one embodiment, the PnP broker for the X-10 device provides some buttons or other user interface widgets linked to services provided by the USB device. As used herein, the term "user interface widget" includes buttons, dialogs, text windows, scales, and other graphical components used to create a graphical user interface for a user application. When a button is clicked, the PnP broker simply invokes a particular service through the X-10 gateway. The following steps are required according to this embodiment for the user application to use the newly registered service in the network.

1.白熱電球が、家庭の電源アウトレットに挿入される。   1. An incandescent light bulb is inserted into the home power outlet.

2.白熱電球は、ダミーデバイスであるため、X−10デバイスを通じて電源線ネットワークに接続される。   2. Since the incandescent lamp is a dummy device, it is connected to the power line network through the X-10 device.

3.ホームネットワークでは、PnPブローカおよびX−10ゲートウェイは、新たなデバイスの導入前に既に動作中である。   3. In the home network, the PnP broker and the X-10 gateway are already operational before the introduction of a new device.

4.X−10ゲートウェイは、利用可能なアドレスを周期的にポーリングし、いずれかのデバイスがアクティブになったかどうかをチェックする。   4. The X-10 gateway periodically polls for available addresses and checks if any devices have become active.

5.ゲートウェイは、新たなデバイスがネットワークに入ったことを認識し、そのデバイスと、そのデバイスにより提供されるサービスとの両方を、PnPブローカのサービスエージェントに登録する。   5. The gateway recognizes that a new device has entered the network and registers both the device and the services provided by the device with the service agent of the PnP broker.

6.サービスエージェントは、デバイスを使用するために、あるリースを取得する。このリースは、各リース期間後に更新して、これにより、ゲートウェイに対して、サービスが依然として利用可能であるかどうかをチェックするよう要求しなければならない。   6. The service agent obtains a lease to use the device. This lease must be renewed after each lease period, thereby requesting the gateway to check if the service is still available.

7.サービスエージェントは、デバイスにより提供されるサービスを、サービスロケーションプロトコルを用いて、ディレクトリエージェントに登録する。   7. The service agent registers a service provided by the device with the directory agent using a service location protocol.

8.ユーザは、デバイスを使用したい場合、PnPブローカインタフェースを用いて、要求するサービスに対する問合せおよび検索を行う。すると、PnPブローカにあるユーザエージェントは、ディレクトリエージェントと連絡をとるか、あるいは、(サービスエージェントおよびユーザエージェントがいずれも1つのPnPブローカ内にある場合には)直接にサービスエージェントへ行く。   8. When the user wants to use the device, he queries and searches for the requested service using the PnP broker interface. The user agent at the PnP broker then contacts the directory agent or goes directly to the service agent (if both the service agent and the user agent are within one PnP broker).

9.新たに発見されたデバイスが、ユーザのデバイス記述と一致する場合、サービスエージェントあるいはディレクトリエージェントは、サービスパラメータとともに、固有のURIをユーザエージェントに返す。   9. If the newly discovered device matches the user's device description, the service agent or directory agent returns a unique URI to the user agent along with the service parameters.

10.ユーザアプリケーションは、これが非TCP/IPデバイスであると判定し、これに従い、PnPブローカ内のサービスセッション管理エージェントは、ユーザアプリケーションとデバイスの間のセッションを確立する。しかし、このセッションでは、コマンド/データ転送は、PnPブローカをゲートウェイとして使用して、PnPブローカ間プロトコルにより行われる。   10. The user application determines that this is a non-TCP / IP device, and the service session management agent in the PnP broker establishes a session between the user application and the device accordingly. However, in this session, the command / data transfer is performed by a PnP inter-broker protocol using the PnP broker as a gateway.

11.また、ユーザアプリケーションにより提供されるインタフェースは、デバイス内の機能の実行に関する情報も含む。   11. The interface provided by the user application also includes information regarding the execution of a function in the device.

12.ゲートウェイは、サービスにおける状態の変化をサービスエージェントに知らせて更新する。   12. The gateway informs the service agent of the state change in the service and updates it.

図6において、本発明の一実施例による例示的なホームネットワークは、電源線(X−10)クラスタ613、電話線(HomePNA/xDSL)クラスタ602および606、CAT5(イーサネット(登録商標、以下同じ。))クラスタ616、USBクラスタ610、ならびにJiniデバイスクラスタ609などの、周知のネットワークコンポーネントにより構成される。レジデンシャル(住宅)ゲートウェイ605は、イーサネット、HomePNA、xDSL、およびJiniを含むさまざまなネットワークを相互接続するために使用される。イーサネットクラスタは、ユーザのホームPC620を含む。ホームPC620は、イーサネットプロトコルにより、ディジタルカメラ617およびウェブパネル618のようなさまざまなデバイスに接続される。ウェブパネル618は、NEC社の製品であり、タッチパッドを有し、ユーザに、インターネットに容易にアクセスする手段を提供するデバイスである。イーサネットクラスタ616は、イーサネットハブ619を通じてレジデンシャルゲートウェイ605と通信する。イーサネットハブ619もまた、インターネットへのホームネットワークのブリッジを提供する。また、ホームPC620は、USB配線を用いてスピーカ611およびネットワークカメラ612に、および、X−10配線を用いて白熱電球614およびセキュリティマネージャ615に接続される。さらに、ホームネットワークは、別のホームPC603および607、テレビジョン601、ならびに電話機604を有する。ホームPC607を含むxDSLクラスタ606は、ブリッジ608を通じてレジデンシャルゲートウェイ605に接続される。PC620上で動作するPnPブローカは、ユーザが、ウェブブラウザに基づくインタフェース内で、新たなデバイス/サービスを検索することを可能にする。本実施例は、ユーザインタフェースとして、Microsoft Internet ExplorerTM v5.0ウェブブラウザを使用するが、他の適当なブラウザも使用可能である。 In FIG. 6, an exemplary home network according to an embodiment of the present invention includes a power line (X-10) cluster 613, telephone line (HomePNA / xDSL) clusters 602 and 606, and CAT5 (Ethernet, the same hereafter). )) A well-known network component such as a cluster 616, a USB cluster 610, and a Jini device cluster 609. Residential gateway 605 is used to interconnect various networks including Ethernet, HomePNA, xDSL, and Jini. The Ethernet cluster includes the user's home PC 620. Home PC 620 is connected to various devices such as digital camera 617 and web panel 618 by Ethernet protocol. The web panel 618 is a product of NEC Corporation and has a touchpad and is a device that provides a user with a means for easily accessing the Internet. Ethernet cluster 616 communicates with residential gateway 605 through Ethernet hub 619. An Ethernet hub 619 also provides a home network bridge to the Internet. The home PC 620 is connected to the speaker 611 and the network camera 612 using USB wiring, and to the incandescent lamp 614 and the security manager 615 using X-10 wiring. Further, the home network has another home PCs 603 and 607, a television 601 and a telephone 604. The xDSL cluster 606 including the home PC 607 is connected to the residential gateway 605 through the bridge 608. A PnP broker running on PC 620 allows users to search for new devices / services within a web browser based interface. This embodiment uses the Microsoft Internet Explorer v5.0 web browser as the user interface, but other suitable browsers can be used.

デバイス/サービスは、対応するネットワークに挿入されると、設定可能なプロパティとともにブラウザに現れる。デバイス固有のゲートウェイは、デバイス/サービス記述を格納する。ディレクトリエージェントがネットワーク内にある場合、ディレクトリエージェントが、デバイス/サービスの機能の登録を扱う。正当な権限が与えられた後、ユーザは、デバイスのプロパティの変更や、デバイスの相互接続が可能である。PnPブローカは、デバイスに対するユーザの認証と、非互換の場合のデータ/メッセージの変換を扱う。例えば、X−10デバイス614および615は、PC620上にあるゲートウェイデバイスを使用することによって、フレームワーク内の残りのデバイスと対話することができるダミーデバイスである。PnPブローカは、HTTPサーバへのアドオンとして実装されることも可能である。ユーザは、電源線デバイス614および615の状態(電灯のオン/オフ)を変更することができる。デバイス(例えば、カメラ617)がTCP/IPベースである場合、ユーザは、カメラにより提供されるインタフェースに基づいて手動設定を実行し、カメラにより撮られる画像を見ることができる。ユーザは、ビデオオンデマンドサーバに対して、利用可能な映画のリストを問い合わせることができる。通常、(PC603上のMPEG−2デコーダを用いて)ネットワークに接続されたアナログTV601は、同じタイプのインタフェースを使用している場合には、ビデオオンデマンドサーバにも接続可能である。しかし、TV601およびネットワークカメラ612はインタフェースを共有していないため、ユーザは、カメラの画像を直接にTVで見ることはできない。Jiniデバイス(例えば、プリンタ)がネットワークに接続されている場合、このデバイスは、非JiniデバイスがあたかもJiniデバイスであるかのようにして、非Jiniデバイスとともに動作する。   Devices / services appear in the browser with configurable properties when inserted into the corresponding network. The device-specific gateway stores the device / service description. If the directory agent is in the network, the directory agent handles registration of device / service functions. After the right is given, the user can change device properties and interconnect devices. The PnP broker handles the authentication of the user to the device and the conversion of data / message in case of incompatibility. For example, X-10 devices 614 and 615 are dummy devices that can interact with the remaining devices in the framework by using a gateway device on PC 620. A PnP broker can also be implemented as an add-on to an HTTP server. The user can change the state of the power line devices 614 and 615 (turn on / off the light). If the device (eg, camera 617) is TCP / IP based, the user can perform manual settings based on the interface provided by the camera and view the images taken by the camera. The user can query the video on demand server for a list of available movies. Typically, an analog TV 601 connected to a network (using an MPEG-2 decoder on PC 603) can also connect to a video-on-demand server if using the same type of interface. However, since the TV 601 and the network camera 612 do not share an interface, the user cannot directly view the camera image on the TV. When a Jini device (eg, a printer) is connected to the network, it operates with the non-Jini device as if it were a Jini device.

[Jiniインタフェースの問題点に対する解決法]
ネットワークプラグアンドプレイを達成する候補のうちの1つとしてのJiniインタフェースモデルの欠点については既に説明した。本発明は、Jiniセキュリティモデルを借りながら、上記のJiniインタフェースの欠点を克服する。Jiniのインタフェースの問題点を解決するには、以下の4つのアプローチを使用可能である。第1に、標準に基づく相互運用性が提供可能である。このアプローチによれば、すべてのサービスは標準APIを有し、サービスは、それらの標準APIを実装することになる。第2のオプションは、サンドボックスに基づく相互運用性である。この場合、適当なセキュリティモデルを有するJava仮想マシンが与えられれば、サービスは独立して動作することができる。第3のオプションは、リフレクションに基づく相互運用性である。この場合、アプリケーションは、サービスに対して、そのインタフェースについて質問し、リフレクション機構を通じて、このインタフェースの状態に影響を及ぼす。最後に、第4の方法は、実装に基づく相互運用性である。この場合、同じ人あるいは会社が、プロキシおよびサービスの両方を製造することになる。
[Solution for Jini interface problem]
The shortcomings of the Jini interface model as one of the candidates for achieving network plug and play have already been described. The present invention overcomes the above shortcomings of the Jini interface while borrowing the Jini security model. To solve the problem of Jini's interface, the following four approaches can be used. First, standards-based interoperability can be provided. According to this approach, all services have standard APIs and services will implement those standard APIs. The second option is sandbox-based interoperability. In this case, if a Java virtual machine having an appropriate security model is provided, the service can operate independently. The third option is reflection-based interoperability. In this case, the application queries the service about its interface and, through a reflection mechanism, affects the state of this interface. Finally, a fourth method is implementation-based interoperability. In this case, the same person or company will manufacture both the proxy and the service.

Jiniとは異なり、コードをクライアントに移動しそれをJava仮想環境内で実行する代わりに、本発明は、サービスのアドレスおよびそのサービスのインタフェースを記述するその他のパラメータを処理し、このインタフェース情報をクライアントに提供する。   Instead of moving code to the client and executing it within the Java virtual environment, unlike Jini, the present invention processes the address of the service and other parameters that describe the interface of the service, and stores this interface information in the client. To provide.

本発明のフレームワークが提供する主な利点の1つは、利用可能な機能およびユーザ相互作用モードにおける変更に応じたエンドユーザアプリケーションの動的な適応および再構成である。一部のインタフェースモデルは、ユーザが「従来型」ソフトウェアとのみ相互作用することができることに基づいている。このようなシステムでは、ユーザは、アプリケーションをカスタマイズする能力において制約があるため、アプリケーションは、デバイスの能力を最大限に、すなわち、サービス設計者が予測したユーザの需要あるいは提供したプログラムインタフェースの限界まで、利用することができない。   One of the major advantages provided by the framework of the present invention is the dynamic adaptation and reconfiguration of end-user applications in response to changes in available features and user interaction modes. Some interface models are based on the ability of a user to interact only with "traditional" software. In such a system, the user is limited in the ability to customize the application, so the application maximizes the capabilities of the device, i.e., up to the user's demands predicted by the service designer or the limitations of the program interface provided. , Can not be used.

多くの場合、自由度はユーザインタフェースによって制限される。アプリケーションの状態およびアプリケーションの初期設定は、ユーザインタフェースを通じてのみ操作可能であるが、ユーザインタフェース自体はあまり設定の自由度はない。これは、モノリシックなプログラムにおいて顕著であり、アプリケーションの状態にフックを設けたり、適切に定義された外部プロトコルを通じてアプリケーションの状態にアクセス可能にしたりするのがきわめて不便である。これに対して、クライアント/サーバプログラムは、公開された相互作用プロトコルを提供するが、2つの大きな問題点を有する。インタフェースの仕様がしばしば臨時的(ad hoc)であること、および、ネットワーク機能についてのアプリケーションのビューを(クライアントコードを修正することによって)変更することができるのはプログラマのみであることである。   In many cases, the degree of freedom is limited by the user interface. Although the state of the application and the initial setting of the application can be operated only through the user interface, the user interface itself has little flexibility in setting. This is noticeable in monolithic programs, where it is extremely inconvenient to hook up the state of the application or make it accessible through a well-defined external protocol. In contrast, client / server programs provide a public interaction protocol, but have two major drawbacks. Interface specifications are often ad hoc, and only the programmer can change the application's view of networking features (by modifying client code).

上記のインタフェースの問題点を解決する1つのアプローチは、アプリケーションプログラムが、オンザフライでクライアントデバイスあるいはコンピュータに、例えばJavaアプレットとして、ダウンロードされるようにすることである。しかし、このアプローチの問題点として、エンドユーザが、関連するエンティティとして異種のサービスのセットとの相互作用のためにアプリケーションをカスタマイズすることができないことがある。すなわち、このアプローチでは、アプリケーションが透過的でないために、機能的に同一のサービスの場合でも、プロトコルにおける小さい相違を克服することができない。例えば、上記のインタフェースモデルに基づく電灯スイッチ制御プログラムは、新たな電灯スイッチに遭遇するたびに、それを使用するためには異なるアプリケーションをダウンロードする必要がある。したがって、このアプローチは機能を公開するが、操作しやすい形式ではない。   One approach to solving the above interface problems is to have the application program downloaded on the fly to a client device or computer, for example, as a Java applet. However, a problem with this approach is that the end user cannot customize the application as a related entity to interact with a heterogeneous set of services. That is, this approach cannot overcome small differences in protocols, even for functionally identical services, because applications are not transparent. For example, a light switch control program based on the above interface model will need to download a different application to use it each time a new light switch is encountered. Thus, this approach exposes functionality but is not an easy-to-operate format.

もう1つのアプローチは、さまざまなサービスの機能インタフェースを標準化し、アプリケーションがこれらのインタフェース標準をサポートすることを要求することにより、上記の問題点を回避することである。このアプローチの問題点は、多数のアプリケーション固有の標準を強制することが非実際的である点である。   Another approach is to avoid the above problems by standardizing the functional interfaces of various services and requiring that applications support these interface standards. The problem with this approach is that it is impractical to enforce a number of application-specific standards.

明らかに、上記のいずれとも異なるモデル、すなわち、インタフェースを公開する要求と、プロトコル標準について合意する要求とのバランスのとれたモデルが好ましい。この問題点を解決するための第1の困難は、サービスの利用可能な機能(インタフェース)を記述する単一ドキュメントスキーマを定義し、関連するプログラムおよびユーザインタフェースをサービスの集合に(およびその逆)関連づけることである。第2の困難は、カスタムユーザインタフェースが利用可能でないときに、上記のスキーマで書かれたドキュメントを用いてユーザインタフェースを生成し、ランタイム環境を実装することができるソフトウェアを提供することである。   Obviously, a model different from any of the above is preferred, ie a model that balances the requirements of exposing interfaces with the requirements of agreeing on protocol standards. The first difficulty in solving this problem is to define a single document schema that describes the available functions (interfaces) of the service and to convert related programs and user interfaces into a collection of services (and vice versa). It is to associate. A second difficulty is to provide software that can generate a user interface using a document written in the above schema and implement a runtime environment when a custom user interface is not available.

本発明の一実施例は、コンポーネントベースのアプリケーションフレームワークを、コンポーネント記述のためのアーキテクチャ独立なドキュメントモデルとともに利用する。このようなコンポーネントベースのアプリケーションフレームワークの詳細な説明は、David Krieger and Richard Adler, "The emergence of distributed component platforms", IEEE Computer Magazine, p.43-53, March 1998、にある。このフレームワークは、上記の2つの基本的なアプローチの特徴を組み合わせることにより、コードフラグメントのアップロード/ダウンロードを可能にし、アプリケーション固有でないインタフェースの記述および操作のために標準を課する。   One embodiment of the present invention utilizes a component-based application framework with an architecture independent document model for component description. A detailed description of such a component-based application framework can be found in David Krieger and Richard Adler, "The emergence of distributed component platforms", IEEE Computer Magazine, p.43-53, March 1998. This framework combines the features of the two basic approaches described above, allowing for the upload / download of code fragments and imposing standards for the description and manipulation of non-application specific interfaces.

[本発明のアクティブコンフィグレーションモデル]
本発明のアクティブコンフィグレーションモデルでは、XML(eXtensible Markup Language)記述が、すべてのネットワークデバイスに関連づけられる。XMLが使用されるのは、XML記述が、(サーバ側での)デバイスの機能の公表として、静的で不変のインタフェース記述を提供するからである。さらに、このようなXMLサービスインタフェース記述を操作することによって、クライアントは、フレームワーク内のサービスを利用することができる。フレームワークは、操作のための標準的なロケーションを提供するために、それぞれのサービスオブジェクトにプログラムおよびユーザインタフェースを公開する。
[Active Configuration Model of the Present Invention]
In the active configuration model of the present invention, an XML (extensible Markup Language) description is associated with all network devices. XML is used because it provides a static and immutable interface description as an announcement of device capabilities (on the server side). Further, by manipulating such an XML service interface description, clients can use services within the framework. The framework exposes programs and user interfaces to each service object to provide a standard location for operations.

図7に、本発明のアクティブコンフィグレーションモデルを示す。本発明によれば、ネットワーク内のあらゆるデバイスあるいはサービス701は、その機能インタフェースの定義702を指定する。これらのインタフェース定義は、アナウンス705によってクライアントに伝えられる。これらのインタフェース定義は、サーバ側で静的(スタティック)である(CORBAにおけるIDLと同様)。これらのインタフェースは、ネットワーク内のすべてのエンティティ間で共有されるが、いずれのユーザアプリケーションによって操作されることも可能である。ユーザアプリケーションは、サービスインタフェースの使用、および、このようなインタフェースによって提示されるメタデータに対する完全なコントロールを有する。ユーザアプリケーション703によってインタフェースまたはその使用の状態に変更704があれば、リファレンス(参照)706によりデバイスあるいはサービスに反映される。   FIG. 7 shows an active configuration model of the present invention. According to the present invention, every device or service 701 in the network specifies its functional interface definition 702. These interface definitions are communicated to the client by announcement 705. These interface definitions are static on the server side (similar to IDL in CORBA). These interfaces are shared between all entities in the network, but can be operated by any user application. User applications have full control over the use of service interfaces and the metadata presented by such interfaces. If there is a change 704 in the state of the interface or its use by the user application 703, it is reflected on the device or service by the reference (reference) 706.

したがって、本発明は、任意のネットワークサービスを構築するためのプログラム可能な基盤を提供する。本発明の一実施例では、エンドユーザアプリケーションは、利用可能な機能および相互作用モードにおける変更に応答して動的に適応され再構成される。この実施例は、コードをダウンロードするJavaアプレットの考え方と、標準化されたインタフェースの記述および操作との利点を組み合わせている。本発明のフレームワークでは、ユーザ(あるいはマシンにより生成されたユーザアプリケーション)は、単に、サービスによって提供されるインタフェース記述を編集し、その編集をデバイスに反映させることによって、ネットワークあるいはデバイスの状態を変えることができる。さらに、デバイスあるいはサービスは、標準化されたAPIを通じてアクセス可能である。すべてのAPIを標準化しようとすることによって特徴づけられる従来のシステムとは異なり、本発明のフレームワークによれば、さまざまなネットワーキングデバイスのベンダは、自己の製品の記述をフレームワークにマッピングすることが可能である。こうして、ベンダは、構文的定義およびデバイスの能力に集中することができる。   Thus, the present invention provides a programmable infrastructure for building any network service. In one embodiment of the invention, end-user applications are dynamically adapted and reconfigured in response to changes in available features and interaction modes. This embodiment combines the advantages of the Java applet concept of downloading code with the description and operation of a standardized interface. In the framework of the present invention, a user (or a user application generated by a machine) changes the state of a network or device simply by editing the interface description provided by the service and reflecting the edit on the device. be able to. Furthermore, devices or services are accessible through standardized APIs. Unlike conventional systems, which are characterized by attempting to standardize all APIs, the framework of the present invention allows various networking device vendors to map their product descriptions into the framework. It is possible. In this way, vendors can focus on syntactic definitions and device capabilities.

本発明によれば、デバイス記述は、宣言的スタイルのXMLを用いて格納され、アプリケーションコードに追加して使用される。XMLデバイス記述の主な機能は、データおよび制御フロー情報を提供することである。この制御/データの分離を公開することにより、本発明は、メタデータを設計に明瞭に組み込むので、格納および操作がアプリケーションとは独立となるため、アプリケーションは、将来の変更が可能なように設計することができる。   According to the present invention, the device description is stored using declarative style XML and used in addition to the application code. The main function of the XML device description is to provide data and control flow information. By exposing this control / data separation, the present invention explicitly incorporates metadata into the design so that storage and manipulation are independent of the application, so that the application is designed for future changes. can do.

本発明のフレームワークで用いられているような、プログラム/ユーザインタフェースを、それらが参照するオブジェクトから分離することは、当業者に周知のSmalltalkTMのモデル/ビュー/コントローラ(M/V/C)アーキテクチャに類似している。モデル/ビュー/コントローラアーキテクチャについてさらに詳細には、G. Krasner and S. T. Pope, "A Cookbook for Using the Model View Controller User Interface Paradigm in Smalltalk-80", Journal of Object Oriented Programming, August/September 1988、に記載されている。 Separating program / user interfaces from the objects they reference, such as those used in the framework of the present invention, is well known to Smalltalk models / views / controllers (M / V / C). Similar in architecture. Further details on the model / view / controller architecture can be found in G. Krasner and ST Pope, "A Cookbook for Using the Model View Controller User Interface Paradigm in Smalltalk-80", Journal of Object Oriented Programming, August / September 1988. Have been.

M/V/Cアーキテクチャでは、データ(モデル)は、データの表示(ビュー)およびデータを操作するイベント(コントローラ)から分離される。同様に、本発明のシステムにおける文書は、データを操作し見るためのユーザインタフェース/プログラムにそのデータを関連づける糊(グルー)として作用する。   In the M / V / C architecture, the data (model) is separated from the display (view) of the data and the events (controller) that operate on the data. Similarly, a document in the system of the present invention acts as a glue that associates the data with a user interface / program for manipulating and viewing the data.

本発明は、XML構文を利用して、デバイス記述スキーマを、XML文書型定義(DTD)として作成する。XMLは、構造化された情報を含む文書のためのマークアップ言語である。これは、SGMLのサブセットであり、階層的な名前付けされた値と、他の文書を参照するための高度な手段の形で、自己記述型のカスタムマークアップを提供する。XSL(Extensible Style Sheets)やXLink(Extensible Linking Language)のような同類のプロトコルとともに、XMLは、付随する文書スキーマ(文書型定義:DTD)のグループを指定し、発見し、結合する能力を提供する。しかし、HTMLとは異なり、XMLにおけるタグのセットはフレキシブルであり、タグのセマンティクスは、その文書に付随するDTDによって定義される。Resource Description Format、Dublin CoreおよびXML−Dataのような他のメタデータマークアップ言語も提案されている。   The present invention utilizes an XML syntax to create a device description schema as an XML document type definition (DTD). XML is a markup language for documents that contain structured information. It is a subset of SGML and provides self-describing custom markup in the form of hierarchically named values and advanced means for referencing other documents. Along with similar protocols such as XSL (Extensible Style Sheets) and XLink (Extensible Linking Language), XML provides the ability to specify, discover, and combine groups of accompanying document schemas (document type definitions: DTDs). . However, unlike HTML, the set of tags in XML is flexible, and the semantics of the tags are defined by the DTD that accompanies the document. Other metadata markup languages, such as Resource Description Format, Dublin Core and XML-Data, have also been proposed.

本発明のフレームワーク内では、デバイスあるいはサービスは、自己の記述スキーマを、XML文書と、それに伴うDTDおよびスタイルシートとして作成する。このスキーマは、言語独立なサービス記述のため、ならびに、ユーザインタフェース(プログラム)をサービスオブジェクトに、およびその逆にマッピングするための、マークアップタグを提供する。また、スキーマは、サービスのインタフェースをXML/XSL定義内に組み込むので、パーサは、ユーザアプリケーションにコードをダウンロードすることを必要とせずに、これらのインタフェースを読み出すことができる。例えば、電灯スイッチのための<ON>タグは、デバイスがメソッド呼出しおよびその他のイベントをリスンするアドレスおよびポート番号を示すことが可能である。   Within the framework of the present invention, a device or service creates its own description schema as an XML document and its accompanying DTD and stylesheet. This schema provides markup tags for language independent service descriptions and for mapping user interfaces (programs) to service objects and vice versa. Also, the schema embeds the service's interfaces within the XML / XSL definition so that the parser can read these interfaces without having to download the code to the user application. For example, an <ON> tag for a light switch may indicate the address and port number at which the device listens for method calls and other events.

ユーザインタフェースをこれらのサービス記述から生成するために、XMLパーサが、クライアントユーザアプリケーションによって使用される。クライアントは、語彙的な型をユーザインタフェースウィジェットにマッピングし、XML/XSLを解析した後、ネットワークの現在のコンフィグレーションに対するユーザインタフェースを生成する。ユーザ(あるいはユーザアプリケーション)は、そのデバイスに対応する動的に生成されるUIウィジェットを単にクリックすることによって、任意のネットワークデバイスの状態を変更することができる。このアクションは、ユーザのマシン上で現在のUI状態を変更するとともに、適当なコマンド(デバイスベンダにより定義されXML文書に埋め込まれる)を実行のためにデバイスに送る。本発明の実施例では、この目的のために、JavaTMで書かれたパブリックドメインのXMLパーサと、Internet ExplorerTM 5.0のようなXML対応ウェブブラウザが使用される。 An XML parser is used by the client user application to generate a user interface from these service descriptions. The client maps lexical types to user interface widgets, parses the XML / XSL, and generates a user interface for the current configuration of the network. The user (or user application) can change the state of any network device by simply clicking on the dynamically generated UI widget corresponding to that device. This action changes the current UI state on the user's machine and sends the appropriate command (defined by the device vendor and embedded in the XML document) to the device for execution. In an embodiment of the present invention, a public domain XML parser written in Java and an XML-enabled web browser such as Internet Explorer 5.0 are used for this purpose.

以上、本発明について、その好ましい実施例を用いて説明したが、当業者には容易に認識されるように、本発明の技術的範囲および技術思想から離れることなく、形式および細部におけるさまざまな変更が可能である。   While the present invention has been described with reference to preferred embodiments, it will be readily apparent to those skilled in the art that various changes in form and detail may be made without departing from the scope and spirit of the invention. Is possible.

アクティブコンフィグレーションフレームワークのインフラストラクチャの図である。FIG. 2 is a diagram of an active configuration framework infrastructure. アクティブコンフィグレーションフレームワークの全体設計図である。1 is an overall design diagram of an active configuration framework. 2つのプラグアンドプレイブローカ間の通信を示す図である。FIG. 4 is a diagram illustrating communication between two plug and play brokers. プラグアンドプレイブローカの内部表現を示す図である。FIG. 3 is a diagram showing an internal representation of a plug and play broker. サービス発見(ディスカバリ)手続きを示す図である。It is a figure which shows a service discovery (discovery) procedure. アクティブコンフィグレーションフレームワークの実装例の図である。It is a figure of an example of implementation of an active configuration framework. アクティブコンフィグレーションインタフェースモデルの図である。It is a figure of an active configuration interface model.

符号の説明Explanation of reference numerals

101 ネットワーク
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ブローカ

101 Network 102 Execution Environment 103 User Application 104 PnP Broker 201 Gateway Device 202 User Application 203 Dummy Device 204 Security Enforcement Mechanism 205 Network Node 301 PnP Broker 302 PnP Broker Interface 303 PnP Broker Protocol 304 Service Discovery / Availability Agent 305 Service Registry 306 Service Session Management Agent 307 Service Location Protocol (SLP) Service Agent 308 SLP User Agent 404 Inter-PnP Broker Protocol 406 Service Unit 501 PnP Broker 502 User Agent (UA)
503 PnP broker 504 Service agent (SA)
507 Discovery by broadcast 508 SLP directory 509 LDAP directory 510 Conversion schema 511 Directory agent (DA)
512 Service 601 Television 602 HomePNA cluster 603 Home PC
604 Telephone 605 Residential gateway 606 xDSL cluster 607 Home PC
608 Bridge 609 Jini Cluster 610 USB Cluster 611 Speaker 612 Network Camera 613 X-10 Cluster 614 Incandescent Light Bulb 615 Security Manager 616 Ethernet Cluster 617 Digital Camera 618 Web Panel 619 Ethernet Hub 620 Home PC
701 Device / Service 702 Interface Definition 703 User Application 704 Change 705 Announcement 706 Reference 1104 Remote PnP Broker

Claims (17)

(a)少なくとも1つのサービスと、
(b)サービスエージェントと、
(c)ディレクトリエージェントとを有するアクティブコンフィグレーションフレームワークにおいて、
前記サービスエージェントは、前記少なくとも1つのサービスのタイプおよび属性を前記ディレクトリエージェントに登録し、
前記ディレクトリエージェントは、ユーザアプリケーションによって要求されるサービスのタイプおよび属性を、前記少なくとも1つのサービスのタイプおよび属性と照合して、前記少なくとも1つのサービスのアドレスを返すことを特徴とするアクティブコンフィグレーションフレームワーク。
(A) at least one service;
(B) a service agent;
(C) In an active configuration framework having a directory agent,
The service agent registers the type and attributes of the at least one service with the directory agent;
An active configuration frame, wherein the directory agent returns an address of the at least one service by matching a type and an attribute of a service requested by a user application with a type and an attribute of the at least one service. work.
前記アクティブコンフィグレーションフレームワークは、ユーザエージェントをさらに有し、
前記ユーザエージェントは、前記要求されるサービスのタイプおよび属性を前記ディレクトリエージェントに送信し、
前記ディレクトリエージェントは、前記少なくとも1つのサービスのアドレスを前記ユーザエージェントに返すことを特徴とする請求項1に記載のアクティブコンフィグレーションフレームワーク。
The active configuration framework further includes a user agent,
The user agent sends the type and attributes of the requested service to the directory agent;
The active configuration framework of claim 1, wherein the directory agent returns an address of the at least one service to the user agent.
前記少なくとも1つのサービスは、ゲートウェイおよびデバイスクラスタを有し、
前記ゲートウェイは、前記デバイスクラスタを前記サービスエージェントに接続し、
前記サービスエージェントは、前記ゲートウェイを通じて、前記デバイスクラスタと通信することを特徴とする請求項1に記載のアクティブコンフィグレーションフレームワーク。
The at least one service has a gateway and a device cluster;
The gateway connects the device cluster to the service agent;
The active configuration framework of claim 1, wherein the service agent communicates with the device cluster through the gateway.
前記アクティブコンフィグレーションフレームワークは、実行環境をさらに有し、
前記アプリケーションは、前記実行環境で動作することを特徴とする請求項1に記載のアクティブコンフィグレーションフレームワーク。
The active configuration framework further includes an execution environment,
The active configuration framework according to claim 1, wherein the application operates in the execution environment.
前記実行環境はJava仮想マシンであることを特徴とする請求項4に記載のアクティブコンフィグレーションフレームワーク。   The active configuration framework according to claim 4, wherein the execution environment is a Java virtual machine. 前記実行環境はWindowsTMベースのマシンであることを特徴とする請求項4に記載のアクティブコンフィグレーションフレームワーク。 The active configuration framework according to claim 4, wherein the execution environment is a Windows based machine. ネットワークデバイスの追加に応答してフレームワークの自動再構成を行う方法において、
前記ネットワークデバイスは、少なくとも1つのサービスを提供し、
前記フレームワークは、サービスエージェントおよびディレクトリエージェントを有し、
前記方法は、
(a)前記サービスエージェントが、提供されるサービスのタイプおよび属性を前記ディレクトリエージェントに登録するステップと、
(b)前記ディレクトリエージェントが、ユーザアプリケーションによって要求されるタイプおよび属性を、前記提供されるサービスのタイプおよび属性と照合して、前記提供されるサービスのアドレスを返すステップと、
を有することを特徴とする、ネットワークデバイスの追加に応答してフレームワークの自動再構成を行う方法。
In a method for automatically reconfiguring a framework in response to the addition of a network device,
The network device provides at least one service;
The framework has a service agent and a directory agent,
The method comprises:
(A) the service agent registers the type and attributes of the service to be provided with the directory agent;
(B) the directory agent matching the type and attributes required by a user application with the type and attributes of the provided service and returning an address of the provided service;
A method for performing automatic reconfiguration of a framework in response to addition of a network device.
前記フレームワークは、ユーザエージェントをさらに有し、
前記ユーザエージェントは、前記要求されるサービスのタイプおよび属性を前記ディレクトリエージェントに送信し、
前記ディレクトリエージェントは、前記提供されるサービスのアドレスを前記ユーザエージェントに返すことを特徴とする請求項7に記載の方法。
The framework further comprises a user agent;
The user agent sends the type and attributes of the requested service to the directory agent;
The method of claim 7, wherein the directory agent returns an address of the provided service to the user agent.
前記ステップ(a)は、
(1)前記ゲートウェイが、前記ネットワークデバイスのアベイラビリティをチェックするステップと、
(2)前記ゲートウェイが、前記提供されるサービスのタイプおよび属性を前記サービスエージェントに登録するステップと、
(3)前記サービスエージェントが、前記提供されるサービスのタイプおよび属性を前記ディレクトリエージェントに登録するステップと、
を有することを特徴とする請求項7に記載の方法。
The step (a) includes:
(1) the gateway checks the availability of the network device;
(2) the gateway registering the type and attributes of the provided service with the service agent;
(3) the service agent registers the type and attribute of the provided service with the directory agent;
The method of claim 7, comprising:
(c)セッション管理エージェントが、前記アドレスを用いて、前記ユーザアプリケーションと前記ネットワークデバイスの間の通信セッションを確立するステップをさらに有することを特徴とする請求項7に記載の方法。   The method of claim 7, further comprising: (c) a session management agent using the address to establish a communication session between the user application and the network device. フレームワークに挿入されたデバイスによって実行されるサービスのための通信インタフェースを生成する方法において、
前記インタフェースは、ユーザアプリケーションによって、前記サービスを利用するために使用され、
前記方法は、
(a)XML文書、文書型定義、またはスタイルシートのうちの少なくとも1つを含む、前記デバイスによって提供されるサービスのサービス記述スキーマを生成するステップと、
(b)XMLパーサを用いて、前記サービス記述スキーマから、前記サービスのための通信インタフェースを生成するステップと、
を有することを特徴とする、フレームワークに挿入されたデバイスによって実行されるサービスのための通信インタフェースを生成する方法。
A method for generating a communication interface for a service performed by a device inserted into a framework, comprising:
The interface is used by a user application to use the service,
The method comprises:
(A) generating a service description schema for a service provided by the device, the service description schema including at least one of an XML document, a document type definition, or a style sheet;
(B) generating a communication interface for the service from the service description schema using an XML parser;
A method for generating a communication interface for a service performed by a device inserted into a framework, comprising:
前記サービス記述スキーマは、前記サービスのためのデータおよび制御フロー仕様を含むことを特徴とする請求項11に記載の方法。 The method of claim 11, wherein the service description schema includes data and control flow specifications for the service. 前記ステップ(b)において、前記デバイスによって生成されるサービス記述スキーマは、ユーザインタフェースウィジェットのセットにマッピングされ、
ユーザは、実行のために前記デバイスにコマンドを送るユーザインタフェースウィジェットをクリックすることによって、前記デバイスの状態を変えることができることを特徴とする請求項11に記載の方法。
In the step (b), the service description schema generated by the device is mapped to a set of user interface widgets,
The method of claim 11, wherein a user can change the state of the device by clicking on a user interface widget that sends a command to the device for execution.
前記ステップ(b)において、前記デバイスによって生成されるサービス記述スキーマは、前記サービスのための通信インタフェースを表すオブジェクトの階層にマッピングされ、
前記サービスは、前記オブジェクトの階層を用いて、前記ユーザアプリケーションによって利用されることを特徴とする請求項11に記載の方法。
In the step (b), a service description schema generated by the device is mapped to a hierarchy of objects representing a communication interface for the service;
The method of claim 11, wherein the service is used by the user application using a hierarchy of the objects.
前記オブジェクトの階層の構造は、前記ユーザアプリケーションが前記デバイスを利用する時点での前記デバイスの機能に基づいて決定されることを特徴とする請求項14に記載の方法。   The method of claim 14, wherein the hierarchical structure of the object is determined based on a function of the device when the user application uses the device. 前記XMLパーサは、XML対応ウェブブラウザであることを特徴とする請求項15に記載の方法。 The method of claim 15, wherein the XML parser is an XML-enabled web browser. フレームワークに挿入されたデバイスを制御する方法において、該方法は、
(a)前記デバイスが、XML文書、文書型定義、またはスタイルシートのうちの少なくとも1つを含む、前記デバイスのデバイス記述スキーマを生成するステップと、
(b)前記ユーザアプリケーションが、前記デバイス記述スキーマを編集し、編集されたデバイス記述スキーマを前記デバイスに反映するステップとを有し、
前記デバイスは、前記編集されたデバイス記述スキーマに従って状態を変更することを特徴とする、フレームワークに挿入されたデバイスを制御する方法。

In a method for controlling a device inserted into a framework, the method comprises:
(A) generating a device description schema for the device, the device including at least one of an XML document, a document type definition, or a style sheet;
(B) the user application editing the device description schema, and reflecting the edited device description schema on the device;
The method of controlling a device inserted in a framework, wherein the device changes a state according to the edited device description schema.

JP2004152883A 2000-04-10 2004-05-24 Framework having plug and play function and reconfiguration method thereof Expired - Fee Related JP3915797B2 (en)

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 (en) 2000-04-10 2000-12-06 Framework having plug and play function and reconfiguration method thereof

Publications (2)

Publication Number Publication Date
JP2004334896A true JP2004334896A (en) 2004-11-25
JP3915797B2 JP3915797B2 (en) 2007-05-16

Family

ID=24180256

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2000371402A Expired - Fee Related JP3711866B2 (en) 2000-04-10 2000-12-06 Framework having plug and play function and reconfiguration method thereof
JP2004152883A Expired - Fee Related JP3915797B2 (en) 2000-04-10 2004-05-24 Framework having plug and play function and reconfiguration method thereof

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2000371402A Expired - Fee Related JP3711866B2 (en) 2000-04-10 2000-12-06 Framework having plug and play function and reconfiguration method thereof

Country Status (1)

Country Link
JP (2) JP3711866B2 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007179119A (en) * 2005-12-27 2007-07-12 Hitachi Ltd Computer system
JP2008544338A (en) * 2005-04-29 2008-12-04 マイクロソフト コーポレーション XML application framework
JP2009205612A (en) * 2008-02-29 2009-09-10 Kddi R & D Laboratories Inc Service state presentation system and service state presentation method
US7844748B2 (en) 2005-09-30 2010-11-30 Samsung Electronics Co., Ltd. Method and apparatus for presenting entity not supporting UPnP as UPnP device or content
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
JP2016527623A (en) * 2013-06-26 2016-09-08 アマゾン テクノロジーズ インコーポレイテッド Distribution of creator systems among lease agent systems
KR20170118815A (en) * 2015-02-20 2017-10-25 콘비다 와이어리스, 엘엘씨 Message Bus Service Directory

Families Citing this family (31)

* Cited by examiner, † Cited by third party
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 (en) 2001-12-10 2010-08-04 ソニー株式会社 Data processing system, information processing apparatus and method, and computer program
EP1466307A1 (en) 2002-01-08 2004-10-13 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 (en) * 2002-03-19 2006-03-15 株式会社エヌ・ティ・ティ・データ Directory function device with access control and program
US7987489B2 (en) 2003-01-07 2011-07-26 Openpeak Inc. Legacy device bridge for residential or non-residential networks
JP4284499B2 (en) * 2003-03-07 2009-06-24 ソニー株式会社 Device management method and device management system
JP2004289561A (en) * 2003-03-24 2004-10-14 Sony Corp Management method of network connection, and electronic equipment
JP4818590B2 (en) * 2003-05-28 2011-11-16 シャープ株式会社 Service using terminal, mobile phone terminal, television receiver terminal, connector providing server, and data structure of connector data
JP2010055620A (en) * 2003-05-28 2010-03-11 Sharp Corp Application processing apparatus
EA015549B1 (en) * 2003-06-05 2011-08-30 Интертраст Текнолоджис Корпорейшн Interoperable systems and methods for peer-to-peer service orchestration
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 (en) 2004-11-12 2011-03-09 セイコーエプソン株式会社 Network device control for network type plug and play
CN101185307B (en) * 2005-05-24 2011-05-18 松下电器产业株式会社 Gateway device and control device
US7882256B2 (en) 2005-05-24 2011-02-01 Panasonic Corporation Gateway device and control device
EP1763198A3 (en) 2005-09-07 2007-04-04 Seiko Epson Corporation Control of network plug-and-play compliant device
JP4768369B2 (en) * 2005-09-14 2011-09-07 日立オムロンターミナルソリューションズ株式会社 Device control system
EP1943603A2 (en) 2005-10-18 2008-07-16 Intertrust Technologies Corporation Methods for digital rights management
US9626667B2 (en) 2005-10-18 2017-04-18 Intertrust Technologies Corporation Digital rights management engine systems and methods
EP1793565A1 (en) 2005-12-02 2007-06-06 Seiko Epson Corporation Network plug-and-play compliant network relay control
JP4349391B2 (en) 2006-08-07 2009-10-21 セイコーエプソン株式会社 Image display system
US20090083765A1 (en) * 2007-09-20 2009-03-26 Microsoft Corporation Accessing device-hosted services from scripting and other programming environments
US8606967B2 (en) * 2008-06-17 2013-12-10 Qualcomm Incorporated Methods and apparatus for proxying of devices and services using overlay networks
JP5611576B2 (en) * 2009-12-03 2014-10-22 ソニー株式会社 Information processing apparatus, information processing method, and program
CA2832752A1 (en) 2011-04-11 2012-10-18 Intertrust Technologies Corporation Information security systems and methods
JP2012022715A (en) * 2011-10-21 2012-02-02 Sony Corp Information processing apparatus, information processing method and program
KR101802627B1 (en) * 2013-05-06 2017-12-28 콘비다 와이어리스, 엘엘씨 Semantics support and management in m2m systems
JP2014002781A (en) * 2013-09-02 2014-01-09 Sony Corp Information processing apparatus, information processing method and program
WO2023039756A1 (en) * 2021-09-15 2023-03-23 Siemens Aktiengesellschaft Industrial data integration device, method and computer readable storage medium

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8275793B2 (en) 2005-04-29 2012-09-25 Microsoft Corporation Transaction transforms
JP2008544338A (en) * 2005-04-29 2008-12-04 マイクロソフト コーポレーション XML application framework
US8793649B2 (en) 2005-04-29 2014-07-29 Microsoft Corporation XML application framework
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
US7844748B2 (en) 2005-09-30 2010-11-30 Samsung Electronics Co., Ltd. Method and apparatus for presenting entity not supporting UPnP as UPnP device or content
JP2007179119A (en) * 2005-12-27 2007-07-12 Hitachi Ltd Computer system
JP2009205612A (en) * 2008-02-29 2009-09-10 Kddi R & D Laboratories Inc Service state presentation system and service state presentation method
JP2016527623A (en) * 2013-06-26 2016-09-08 アマゾン テクノロジーズ インコーポレイテッド Distribution of creator systems among lease agent systems
KR20170118815A (en) * 2015-02-20 2017-10-25 콘비다 와이어리스, 엘엘씨 Message Bus Service Directory
CN107431726A (en) * 2015-02-20 2017-12-01 康维达无线有限责任公司 Messaging bus service catalogue
JP2018512645A (en) * 2015-02-20 2018-05-17 コンヴィーダ ワイヤレス, エルエルシー Message bus service directory
KR102046700B1 (en) * 2015-02-20 2019-11-19 콘비다 와이어리스, 엘엘씨 Message bus service directory
US10708376B2 (en) 2015-02-20 2020-07-07 Convida Wireless, Llc Message bus service directory

Also Published As

Publication number Publication date
JP3915797B2 (en) 2007-05-16
JP2001290724A (en) 2001-10-19
JP3711866B2 (en) 2005-11-02

Similar Documents

Publication Publication Date Title
JP3915797B2 (en) Framework having plug and play function and reconfiguration method thereof
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
US6842903B1 (en) System and method for providing dynamic references between services in a computer system
Arnold The Jini architecture: dynamic services in a flexible network
US7640329B2 (en) Scaling and extending UPnP v1.0 device discovery using peer groups
US7647394B2 (en) Scaling UPnP v1.0 device eventing using peer groups
US6789077B1 (en) Mechanism and apparatus for web-based searching of URI-addressable repositories in a distributed computing environment
US20030191802A1 (en) Reshaped UDDI for intranet use
EP1253766A2 (en) Peer group name server
US20050055352A1 (en) Content directory and synchronization bridge
US20020112058A1 (en) Peer networking host framework and hosting API
US9323587B2 (en) Method and system for automatic detecting and resolving APIs
US20040024787A1 (en) System and method for enabling components on arbitrary networks to communicate
US20040133896A1 (en) Network device application interface
EP1198102B1 (en) Extendable provisioning mechanism for a service gateway
JP4799005B2 (en) Information processing device
US20060129700A1 (en) Bridging a local bus with a data network
US7685303B2 (en) Object-oriented discovery framework
Saif Architectures for ubiquitous systems
KR20080000310A (en) System for sharing information between home-network and method thereof
US7133872B2 (en) Method and system for unifying component metadata
Moller et al. Enhancing Jini's lookup service using XML-based service templates
JP5389413B2 (en) Image forming system
Hsu et al. Widget-based framework for web service discovery on multiple home social network

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