WO2002009384A2 - Gateway for home networks - Google Patents

Gateway for home networks Download PDF

Info

Publication number
WO2002009384A2
WO2002009384A2 PCT/EP2001/007898 EP0107898W WO0209384A2 WO 2002009384 A2 WO2002009384 A2 WO 2002009384A2 EP 0107898 W EP0107898 W EP 0107898W WO 0209384 A2 WO0209384 A2 WO 0209384A2
Authority
WO
WIPO (PCT)
Prior art keywords
upnp
havi
cluster
ddi
functionalities
Prior art date
Application number
PCT/EP2001/007898
Other languages
French (fr)
Other versions
WO2002009384A3 (en
Inventor
Jan R. Moonen
Original Assignee
Koninklijke Philips Electronics N.V.
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 Koninklijke Philips Electronics N.V. filed Critical Koninklijke Philips Electronics N.V.
Priority to JP2002514977A priority Critical patent/JP2004505360A/en
Priority to KR1020027003858A priority patent/KR20020035644A/en
Priority to EP01965096A priority patent/EP1293081A2/en
Publication of WO2002009384A2 publication Critical patent/WO2002009384A2/en
Publication of WO2002009384A3 publication Critical patent/WO2002009384A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2805Home Audio Video Interoperability [HAVI] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/281Exchanging configuration information on appliance services in a home automation network indicating a format for calling an appliance service function in a home automation network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2814Exchanging control software or macros for controlling appliance services in a home automation network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/283Processing of data at an internetworking point of a home automation network
    • H04L12/2832Interconnection of the control functionalities between home networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2816Controlling appliance services of a home automation network by calling their functionalities
    • H04L12/282Controlling appliance services of a home automation network by calling their functionalities based on user interaction within the home
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2823Reporting information sensed by appliance or service execution status of appliance services in a home automation network
    • H04L12/2827Reporting to a device within the home network; wherein the reception of the information reported automatically triggers the execution of a home appliance functionality

Definitions

  • the invention relates to home networks, and especially to bridging networks that have clusters with different software architectures.
  • a bridge serves to transparently represent a device, complying with a first standard in a network cluster of a first type, as a device complying with a second standard in a network cluster of a second type.
  • the result is a single unified view of the home network available to software applications written for the first standard and as well those written for the second standard.
  • Home networking standards generally address either the lower levels of the protocol stack (up to transport level, e.g., HomePNA, HomeRF) or the higher levels (from transport level to application level). In the remainder of this description reference is made in general to the second type of home networking standards. Examples of these standards are HAVi, UPnP and Jini.
  • a home networking standard offers one of two ways for applications (or clients) to control devices (or servers): programmatic control and UI (user-interface)- based control.
  • Programmatic control refers to control that is based on sending standardized messages to a device, or control that is based on calling a standardized API, resulting in messages sent to a device. This kind of control is useful for applications that control devices without any direct user-interaction being required.
  • both the controller and the controllable device use a pre-determined set of messages that can be exchanged. That is, the controller has to know the type of controllable device in advance.
  • Ul-based control refers to control that uses sending user interactions from a controlling device to a controllable device.
  • the user interacts with a UI client or browser, and user actions lead to messages sent to a UI server on the controllable device.
  • the messages are exchanged using a particular UI protocol, examples of which are HTML (used in UPnP) and DDI (used in HAVi).
  • DDI stands for Data Driven Interaction and refers to a protocol that is executed between applications or DCMs, whose User Interface needs to be displayed, on one side and a display device on the other.
  • the DDI target is part of a device's DCM.
  • DCM Device Control Module.
  • a DCM is a software element that represents a single device or functionality on the HAVi network.
  • the DCM exposes the HAVi defined APIs for that device.
  • DCMs are dynamic in nature: if a device is inserted or removed from the network, a DCM for that device needs to be installed or removed, respectively, in the network. DCMs are central to the HAVi concept and the source of flexibility in accommodating new devices and features into the HAVi network.
  • the DDI supports user interaction with the appliance.
  • UI protocol does not define the kind of information or control conveyed by it, it merely defines how to encapsulate user actions and send them from client to server. Additionally, it defines how user interface elements (also called widgets) are described and sent back from server to client for display purposes. This implies that Ul-based control is possible even when the controller application does not know the type of controllable device.
  • a UI protocol enables a device to present features that go beyond the standardized device type capabilities, in other words, it enables a standardized device to distinguish itself from the competition.
  • a natural approach is to translate between the programmatic interface of a device type in a first software architecture of standard A to the programmatic interface of the device type in a second software architecture in a standard B different from standard A, and vice versa.
  • a natural approach is to translate the UI interface of a device type in standard A to the UI interface of the device type in standard B, and vice versa.
  • the inventor has realized that certain problems are associated with this approach and has analyzed the bridging in further detail so as to provide a solution.
  • Fig.1 is a diagram to clarify that there is more than these options.
  • the diagram of Fig.1 shows part of a home network 100 that has a cluster 102 with a software architecture complying with a standard A, and a cluster 104 with a software architecture of a standard B.
  • Network 100 has a device 106 of a certain type X residing on network 100 in cluster 102.
  • Clusters 102 and 104 are to be bridged so that device 106 can be controlled from cluster 104 through a software representation 108.
  • device 106 and its representation 108 in cluster 104 in principle can have Ul-based control interfaces 110 and 112, respectively, and programmatic control interfaces 114 and 116, respectively.
  • the diagram lists four bridging options 118, 120, 122 and 124.
  • Bridge 118 provides a translation from UI interface 110 to programmatic interface 116.
  • a UI interface is much more flexible (or less standardized) than a programmatic interface, so translating from a UI interface to a programmatic interface is very difficult, and, for existing home networking standards such as HAVi and UPnP, impossible. This leaves three other options:
  • - A bridge 120 for a translation of UI interface 110 in standard A to UI interface 112 in standard B Whether this is feasible or not depends on the similarity of standards A and B. For example, translating a UPnP device UI to a HAVi device UI is very difficult, since UPnP allows HTML plus any kind of scripting in a device UI. HAVi uses the DDI protocol for device UI, and while HTML is probably translatable to DDI, translating HTML plus scripting is probably not feasible.
  • - A bridge 122 for a translation of programmatic interface 114 in standard A to programmatic interface 116 in standard B Whether this is possible or not depends largely on the domains covered by standards A and B.
  • UI interface 112 in standard B This type of translation requires that the programmatic interface of devices in standard A be available, at run-time, as data for translation purposes. This requires a 'white-box' device description mechanism, where an application can retrieve, at run time, all the information about the device's interface. In other words, an application does not need to rely on built-in knowledge of the interface of the device type, it can retrieve this knowledge at run-time.
  • This type of translation further requires that the data types used in the programmatic interface be mapped as 'modally compatible' GUI elements.
  • the current invention is based on the insight that the translation of a programmatic interface in a standard A to a UI in standard B can be used as a bridge.
  • the requirements are discussed posed on both standards involved for this bridging to work.
  • Embodiments are given below of the bridging option in the form of a translation scheme for a UPnP programmatic interface to a HAVi device UI (DDI target).
  • the invention relates to a method of enabling to bridge a first cluster of first functionalities and a second cluster of second functionalities in a home network.
  • the first cluster has a first software architecture that provides control of the first functionalities through a programmatic interface.
  • UPnP is an example of such an architecture.
  • the second cluster has a second software architecture that provides control of the second functionalities through a Ul-based interface.
  • HAVi is an example of the latter architecture.
  • the method in the invention comprises providing a translation of the programmatic interface to the Ul-based interface.
  • the method comprises generating a HAVi DDI target software element from a UPnP device description document.
  • the method of the invention can be implemented by a service provider.
  • the user notifies the service provider of the new devices added to his/her network, whereupon the provider can generate the translation module to be installed on the user's network as part of a bridge.
  • the invention also relates to a home network with these clusters using different software architectures.
  • the first cluster has a first software architecture that provides control of the first functionalities through a programmatic interface
  • the second cluster has a second software architecture that provides control of the second functionalities through a Ul-based interface.
  • the network has a bridge between the first and second clusters for translating the programmatic interface to the Ul-based interface.
  • the network preferably comprises a generator for generating a HAVi DDI target from a UPnP device description document.
  • An aspect of the invention resides in bridging software for use on a home network, wherein the network comprises a first cluster of first functionalities and a second cluster of second functionalities.
  • the first cluster has a first software architecture that provides control of the first functionalities through a programmatic interface
  • the second cluster having a second software architecture that provides control of the second functionalities through a Ul-based interface.
  • the bridging software is operative to couple the first and second clusters based on translating the programmatic interface to the Ul-based interface.
  • the software comprises a generator for generating a HAVi DDI target from a UPnP device description document in the UPnP - HAVi network.
  • Fig.1 is a block diagram illustrating the options for bridging
  • Figs.2A and 2B are a table with UPnP and HAVi information items referred to throughout the explanation below;
  • Fig.3 is a diagram with a portion of a home network
  • Figs. 4, 5 and 6 are diagrams illustrating interactions between UPnP and HAVi clusters in a home network. Throughout the Figures, same reference numerals indicate similar or corresponding features.
  • the UPnP standard defines the programmatic interface of a device through an XML document called the "description document”. An application can retrieve this document, through HTTP, at run-time, so UPnP satisfies the 'white-box' criterion.
  • HAVi defines the programmatic interface of a device through publication of an API expressed in IDL.
  • the API definition is tied to a unique identifier called the FCM type.
  • FCM Functional Component Module.
  • a DCM contains an FCM for each controllable function within the represented device.
  • HAVi defines FCM's and corresponding API's for functions such as a tuner, VCR, HDD- based storage, AV display, camera's and modems.
  • a HAVi application can retrieve this FCM type from a controlled device, and is able to control the device programmatically based upon its built-in knowledge about the interface linked to the FCM type. Since the HAVi application needs to know the interface linked to the FCM type in advance, HAVi does not satisfy the 'white box' criterion.
  • Jini an application retrieves the programmatic interface of a device by using a lookup service that returns a remote (RMI) reference to the device's Java object representation.
  • Java RMI Remote Method Invocation
  • Java has facilities for 'reflection', it is possible to determine, at run time, the interface (in terms of Java member variables and methods) of a remote object (device) reference. Hence, Java satisfies the 'white-box' criterion.
  • the programmatic interface of a UPnP device may use any of the following types: Boolean, Integer (called i4), Floating point (called r8), String, DateTime (data and time information) or HEX-encoding binary data (called bin.hex or bin.bin64). These types can be mapped in a straightforward manner to common GUI elements found in most UI protocols, including DDI (used in HAVi) and HTML (used in UPnP). See Figs. 2A and 2B. Jini does not define a specific device UI protocol.
  • the programmatic interface of a Jini device may use any Java object.
  • the programmatic interface of a HAVi device may use any IDL type.
  • both HAVi and Jini device interfaces can, in general, not easily be mapped to a UI.
  • a UI mapping is possible for a particular device type that uses a subset of the rich data type features of IDL or Java.
  • a UI mapping is feasible for a Jini interface that uses only basic Java types (no Java objects).
  • the programmatic interface of a UPnP device is described in a description document.
  • This document specifies a root device with zero or more (sub) devices. Each device may have another list of sub devices, etc.
  • a device without any sub devices (a 'leaf in the tree) contains a single service.
  • a service consists of a list of state variables and a list of actions. Services don't have sub services. State variables have a 'name' field, 'type' field, and optionally fields to restrict the range of the type. Actions have a 'name' field and a list of parameters.
  • Each parameter is described by a 'name' field, and a field called 'relatedState Variable'. This field has to refer to a state variable name, and it indirectly defines the type of the action parameter.
  • An aspect of this invention is to generate a HAVi DDI Target from a UPnP device description document. The translation concerns both static aspects of the DDI Target as well as dynamic aspects.
  • DDI elements or widgets need to be defined for UPnP data type; the organization of all DDI elements corresponding to a UPnP service needs to defined; the organization of all DDI elements corresponding to a UPnP device needs to defined.
  • DDI navigation between devices and services needs to be defined; initialization and termination of a 'session' between application and device needs to be defined; the effect of asynchronous changes at the controlled UPnP device needs to be defined; the effect of user actions that are forwarded to the generated DDI target needs to be defined.
  • UPnP data types occur in two ways in a service description, namely, directly: as type of a state variable, and indirectly: through reference of a ⁇ relatedStateVariable> for an action parameter.
  • Some DDI elements are 'interactive': they allow a user to interact with them.
  • a button is interactive, while a text label is not interactive.
  • some interactive DDI elements may be 'temporarily' non-interactive or disabled. To express this, interactive DDI elements have an 'interactivity' field. Since UPnP allows state changes through actions only, DDI elements representing action parameters will set this field to ENABLED. DDI elements representing the current value of a device's state variable, however, will have this field set to DISABLED. Some UPnP data types may have additional specifiers that indicate a particular restriction on the range of value that it may hold. This can could be used to generate more appropriate DDI elements, in some cases. Static: Translating a UPnP service to a DDI structure
  • a service consists of a list of state variables and a list of actions.
  • State variables have a 'name' field, 'type' field, and optionally fields to restrict the range of the type.
  • Actions have a 'name' field and a list of parameters. Each parameter is described by a 'name' field, and a field called 'relatedState Variable'. This field has to refer to a state variable name, and it indirectly defines the type of the action parameter.
  • elements may be organized in a group, in order to suggest some sort of coupling to a DDI display engine (called Ddi controller ). This coupling may be used to determine the organization of elements on the screen, or to determine navigation.
  • Ddi controller DDI display engine
  • a UPnP service can be translated to the following DDI structure:
  • DdiPanel contains two DdiGroup elements and a DdiPanelLink element:
  • the 'elements' field of this group should contain DDI elements obtained from translating all UPnP state variables according to the type mapping described earlier. All of these Ddi elements should have their Interactivity attribute set to DISABLED.
  • DdiGroup element with groupName set to "Actions”.
  • the 'elements' field of this group contains DdiGroup elements for each individual UPnP action.
  • Each of these DdiGroup elements contains: - A DdiButton element which both 'pressedLabeF and 'releasedLabel' fields set to the ⁇ name> field of the action. This element represents invoking the action on the UPnP device.
  • Ddi elements for each input parameter of the action, according to the type mapping applied to the ⁇ relatedStateVariable> field of the action parameter. All of these Ddi elements should have their Interactivity attribute set to DISABLED.
  • a DdiPanelLink element representing the 'parent' device will its linkName field set to the parent device's ⁇ deviceType> or ⁇ friendlyName> field.
  • it could have the linkBitMap field set to one of the available and HAVi-compatible ⁇ icon> values in the parent device description.
  • a device description document in UPnP specifies a root device with zero or more (sub) devices. Each device may have another list of sub devices, etc. Additionally, each device has certain fields associated with this, such as a device icon, a manufacturer name, etc..
  • a (root or sub) device can be translated to the following DDI structure:
  • DdiPanel element with panelName set to the ⁇ deviceType> or ⁇ friendlyName> field of the device.
  • the DdiPanel contains DdiPanelLink elements, one for each sub device or service that it contains.
  • a DdiPanelLink element representing a sub device should have its linkName field set to the sub device's ⁇ deviceType> or ⁇ friendlyName> field.
  • it could have the HnkBitMap field set to one of the available and HAVi-compatible ⁇ icon> values in the device description.
  • a DdiPanelLink element representing a service should have its linkName field set to the service's ⁇ serviceType> field.
  • Each non-root sub device should have:
  • a DdiPanelLink element representing the 'parent' device will its linkName field set to the parent device's ⁇ deviceType> or ⁇ friendlyName> field.
  • it could have the HnkBitMap field set to one of the available and compatible ⁇ icon> values in the device description. All DdiPanelLinks should have the Interactivity field set to ENABLED.
  • the panel could contains DdiText elements, with the Interactivity field set to DISABLED and the textContent field holding the string value for any of the following UPnP device description fields:
  • FIG. 3 is a diagram of part 300 of home network 100.
  • Network 100 has a root device 302: a TV/VCR combo, and two sub devices: a TV 304 and a VCR 306 .
  • TV 304 has three services: an Audio service 308, a Video service 310 Video and a Tuner service 312.
  • VCR 306 has also three services: a Clock service 314, a Tuner service 316 and a Tape service 318.
  • the example shows the use of the ⁇ friendlyName> field ("My BedRoom Fun”), the ⁇ manufacturer> field ("Philips”), the ⁇ modelName> field (“AZ1010”), the
  • Tape service 318 shows a string state variable 320 named "Transport” with ⁇ allowedValueList> specifier: ⁇ "playing", “stopped”, “recording” ⁇ . Furthermore, it shows three actions: “Play”, “Stop” and “Rec”, where the "Rec” action has a single string parameter related to a state variable (not shown here) with ⁇ allowedValueList> specifier: ⁇ "standard”, “long”, “extended” ⁇ .
  • each (root or sub) device and each service is mapped to a separate DdiPanel element.
  • DdiPanelLink elements are used to traverse from the root device down to services via zero or more intermediate sub devices. Additionally, on each level, except on the root device level, a DdiPanelLink is used to travel up in the device hierarchy.
  • ACT_SELECTED When a user on the DDI controller device clicks on the panel, a user action of type ACT_SELECTED will be sent to the DDI target.
  • the DDI target shall respond to this by returning the targetPanel of representing the sub device/service (in case of navigating down the hierarchy) or the parent device (in case of navigating up the hierarchy).
  • the DDI target does not need to communicate with the UPnP device that it represents.
  • a DDI target After a DDI target receives a DDI subscription in step 402 it retrieves the UPnP description document in step 404. Based on the description document the DDI target is able to construct in step 406 the DdiPanel structure as well as all DdiElements it contains. Additionally, the DDI target subscribes to UPnP device state changes, in step 408, using the GENA mechanism.
  • "GENAA” stands for Generic Eventing Notification within UPnP context. Eventing is the ability of a source device to initiate a connection at any time to one or more other devices that want to receive events from the source device. Events are used to establish synchronization among multiple devices.
  • events are mainly used for asynchronous notification of state changes.
  • TCP/IP provides the support for connections to carry event information.
  • GENA adds conventions for establishing relationships between interested devices and an addressing scheme to allow delivery of the event messages.
  • GENA uses HTTP addressing and encapsulation. Separate subscriptions in step 410 are needed for each service. Since a GENA SUBSCRIBE returns the current values of all state variables, the DDI target is 'synchronized' with the UPnP device and is able to return the correct values for all DDI elements when the DDI controller requests them.
  • a DDI target may subscribe to state changes immediately after the description document is retrieved (shown above) or in a 'just- in-time' fashion, just before the DDI controller requests the panel containing the state variable values. After a DDI target receives a DDI unsubscription in step 412 it unsubscribes itself in step 414 from state variable changes .
  • Fig.6 shows the message that results when a user interacts with the UPnP device, through the display of the device running the DDI controller.
  • the mode of operation is that the user first modifies the widgets corresponding to the action parameters and, when the user is done, presses the button that invokes the action on the device.
  • the result of the action, including any output parameter, is shown using widgets that are in 'disabled' or 'non- interactive' mode.
  • Fig.6 shows that typically a user first modifies the widgets corresponding to the action parameters. These lead to “UserAction' messages sent to the DDI target. The target will not forward these interactions to the UPnP device, but rather use them to locally update the parameter values, represented by the widgets. When the user is done, he/she presses the button that represents the action on the device. On the "RELEASE' event of the DdiButton, the DDI target will construct a SOAP (Simple Object Access Protocol) request using the current parameter values, and sent it to the UPnP device.
  • SOAP Simple Object Access Protocol
  • the SOAP action is executed synchronously, and when the action is executed successfully, the DDI Target will complete the user action by returning a DDI "change report" for the output parameter widgets, if there are any.
  • the output parameter values are extracted from the SOAP response message.
  • SOAP SOAP
  • this is a protocol created with contributions from many industrial partners and that allows applications to communicate with each other over the Internet, providing a framework for, e.g., connecting Web sites and applications to create Web services.
  • Web services link sites and applications together to perform functions that the individual components alone are not able to perform.
  • the action invoked on the controlled device will also change the state of the device and a GENA NOTIFICATION message will be sent, some time later, to the DDI Target indicating new values for all changed state variables. This in turn will lead to NotfyDdiChange messages, as described earlier, and ultimately to some visual change on the display of the DDI controller device.
  • Fig.6 illustrates the situation wherein there is no error, that is, the SOAP response that eventually gets issued by the UPnP device has return code OK.
  • the DdiTarget can use the AlertPanel facility in DDI to indicate failure to the user.
  • the 'alert panel' can contains a DdiText element holding the SOAP response ⁇ faultString> field. This is shown in Fig.7.
  • U.S. serial no. 09/165,682 (attorney docket PHA 23,484) filed 10/2/98 for Eugene Shteyn for CONTROL PROPERTY IS MAPPED ONTO MOD ALLY COMPATIBLE GUI ELEMENT relates to a home network system comprising an electronic device and a controller coupled to the device.
  • the device exposes an abstract representation of its functionality to the controller.
  • the controller enables controlling the device's functionality through interaction with the abstract representation.
  • the abstract representation specifies a modality of controlling the functionality. Under control of the modality specified, the system associates the controlling of the functionality with a modally compatible controlling capability of the controller.
  • the modality exposed can be, for example, "Boolean", "float”, “integer array”.
  • modality refers to an attribute that denotes the character of the controllability of the functionality.
  • the modality of the functionality is mapped onto a modaly compatible capability of the controller without the controller actually having to know what the functionality of the device is all about.
  • the modality is semantically a Boolean.
  • the Boolean control property can then be mapped onto a UI element that has a Boolean character and assumes one of two states such as an "on/off switch or "high/low” lever. When the user then interacts with this element, the functionality mapped onto it is put into one of the two states.
  • the abstract representation gets uploaded, preferably including a UI (for, e.g., voice control) or GUI, and the user receives a context to determine the consequences of his/her interactions with the UI.
  • the control property can be mapped onto a GUI element that can assume one of three or more discrete states such as a dial for channel selection on a device, for selection among multiple devices, etc.
  • the specified modality is semantically a range of floating-point values
  • a mapping is feasible onto a continuously variable control feature, e.g., brightness of an image on a display or sound volume.
  • the specified modality is semantically an array. An array comprises more than a single component.
  • an array of Booleans could thus be mapped onto a cluster of GUI elements to implement, e.g., a menu selection among different devices or a check box list.
  • An array of floating point modalities could be mapped onto a cluster of GUI elements that represent sliders, e.g., for adjusting a camera angles and zoom factors of camera's in the home security system that is controlled via the home network. Note that the controller does not need to have a clue about the functionality or functionalities of the device being controlled. All it needs to do is subjecting a functionality to a control application based on the semantics of its modality.
  • U.S. serial no. 09/160,490 (attorney docket PHA 23,500) filed 9/25/98 for Adrian Turner et al., for CUSTOMIZED UPGRADING OF INTERNET-ENABLED DEVICES BASED ON USER-PROFILE relates to a server system that maintains a user profile of a particular end-user of consumer electronics network-enabled equipment and a data base of new technical features for this type of equipment. If there is a match between the user-profile and a new technical feature, and the user indicates to receive information about updates or sales offers, the user gets notified via the network of the option to obtain the feature.
  • U.S. serial no. 09/189,535 (attorney docket PHA 23,527) filed 11/10/98 for Eugene Shteyn for UPGRADING OF SYNERGETIC ASPECTS OF HOME NETWORKS relates to a server that has access to an inventory of devices and capabilities on a user's home network.
  • the inventory is for example a look-up service as provided by HAVi or Jini architecture.
  • the server has also access to a data base with information of features for a network.
  • the server determines if the synergy of the apparatus present on the user's network can be enhanced based on the listing of the inventory and on the user's profile. If there are features that are relevant to the synergy, based on these criteria, the user gets notified.
  • U.S. patent 5,959,536 (attorney docket PHA 23,169) issued to Paul Chambers and Saurabh Srivastava for TASK-DRIVEN DISTRIBUTED MULTIMEDIA CONSUMER SYSTEM relates to a control system comprises multiple consumer electronics devices and task-driven control means coupled to the devices for controlling an interaction among the devices.
  • the control means acts on respective software representations of each respective one of the consumer devices.
  • By encapsulating the variable complexity of the task within a software representation it can be made as simple or as sophisticated as needed to bring the capabilities up to a common level. Since the level of interface is common to the devices, applications can uniformly manipulate devices which embody very different levels of sophistication.

Abstract

A home network comprises a UPnP cluster and a HAVi cluster. UPnP uses programmatic device interfaces that are based on standardized messages being sent between the devices. HAVi also uses programmatic interfaces but needs to know the proper device type and FCMs in advance. In addition, the current UPnP and HAVi standards do not define devices that can readily be mapped onto one another owing to semantic differences. To overcome this problem, the clusters are bridged by representing a UPnP device on the HAVi cluster, wherein the UPnP device's description document is used to generate a HAVi DDI target to enable UI-based control of UPnP devices through a HAVi UI.

Description

UI-based home network bridging
FIELD OF THE INVENTION
The invention relates to home networks, and especially to bridging networks that have clusters with different software architectures.
BACKGROUND ART
It seems to be unlikely that there will ever be a single universally applicable networking standard for each device in the home. Multiple standards for software architectures coexist and new ones will emerge. New standard interfaces will be developed for new types of devices that are specifically targeted by those standards. Home applications are designed to make an intelligent use of all devices available in the home, but are not capable of dealing with each and every networking standard in use or becoming available in the future. Similarly, devices themselves will not be able to support every existing home networking standard. For these reasons, bridges are needed between the different subnetworks or clusters, each respective one complying with a specific respective standard. A bridge serves to transparently represent a device, complying with a first standard in a network cluster of a first type, as a device complying with a second standard in a network cluster of a second type. The result is a single unified view of the home network available to software applications written for the first standard and as well those written for the second standard. Home networking standards generally address either the lower levels of the protocol stack (up to transport level, e.g., HomePNA, HomeRF) or the higher levels (from transport level to application level). In the remainder of this description reference is made in general to the second type of home networking standards. Examples of these standards are HAVi, UPnP and Jini.
Typically, a home networking standard offers one of two ways for applications (or clients) to control devices (or servers): programmatic control and UI (user-interface)- based control.
Programmatic control refers to control that is based on sending standardized messages to a device, or control that is based on calling a standardized API, resulting in messages sent to a device. This kind of control is useful for applications that control devices without any direct user-interaction being required. In this case, both the controller and the controllable device use a pre-determined set of messages that can be exchanged. That is, the controller has to know the type of controllable device in advance.
Ul-based control refers to control that uses sending user interactions from a controlling device to a controllable device. Here, the user interacts with a UI client or browser, and user actions lead to messages sent to a UI server on the controllable device. The messages are exchanged using a particular UI protocol, examples of which are HTML (used in UPnP) and DDI (used in HAVi). The acronym "DDI" stands for Data Driven Interaction and refers to a protocol that is executed between applications or DCMs, whose User Interface needs to be displayed, on one side and a display device on the other. The DDI target is part of a device's DCM. The acronym "DCM" stands for Device Control Module. A DCM is a software element that represents a single device or functionality on the HAVi network. The DCM exposes the HAVi defined APIs for that device. DCMs are dynamic in nature: if a device is inserted or removed from the network, a DCM for that device needs to be installed or removed, respectively, in the network. DCMs are central to the HAVi concept and the source of flexibility in accommodating new devices and features into the HAVi network. The DDI supports user interaction with the appliance.
Essential is that the UI protocol does not define the kind of information or control conveyed by it, it merely defines how to encapsulate user actions and send them from client to server. Additionally, it defines how user interface elements (also called widgets) are described and sent back from server to client for display purposes. This implies that Ul-based control is possible even when the controller application does not know the type of controllable device.
As long as controller and controllable device communicate using the same UI protocol, and a user is present, the controllable device can be controlled. Additionally, a UI protocol enables a device to present features that go beyond the standardized device type capabilities, in other words, it enables a standardized device to distinguish itself from the competition.
SUMMARY OF THE INVENTION
When bridging control between home networking standards, the natural approach is to translate between the programmatic interface of a device type in a first software architecture of standard A to the programmatic interface of the device type in a second software architecture in a standard B different from standard A, and vice versa. Similarly, a natural approach is to translate the UI interface of a device type in standard A to the UI interface of the device type in standard B, and vice versa. The inventor has realized that certain problems are associated with this approach and has analyzed the bridging in further detail so as to provide a solution. Fig.1 is a diagram to clarify that there is more than these options. The diagram of Fig.1 shows part of a home network 100 that has a cluster 102 with a software architecture complying with a standard A, and a cluster 104 with a software architecture of a standard B. Network 100 has a device 106 of a certain type X residing on network 100 in cluster 102. Clusters 102 and 104 are to be bridged so that device 106 can be controlled from cluster 104 through a software representation 108. Assume that device 106 and its representation 108 in cluster 104 in principle can have Ul-based control interfaces 110 and 112, respectively, and programmatic control interfaces 114 and 116, respectively. The diagram lists four bridging options 118, 120, 122 and 124.
Bridge 118 provides a translation from UI interface 110 to programmatic interface 116. As described earlier, a UI interface is much more flexible (or less standardized) than a programmatic interface, so translating from a UI interface to a programmatic interface is very difficult, and, for existing home networking standards such as HAVi and UPnP, impossible. This leaves three other options:
- A bridge 120 for a translation of UI interface 110 in standard A to UI interface 112 in standard B. Whether this is feasible or not depends on the similarity of standards A and B. For example, translating a UPnP device UI to a HAVi device UI is very difficult, since UPnP allows HTML plus any kind of scripting in a device UI. HAVi uses the DDI protocol for device UI, and while HTML is probably translatable to DDI, translating HTML plus scripting is probably not feasible. - A bridge 122 for a translation of programmatic interface 114 in standard A to programmatic interface 116 in standard B. Whether this is possible or not depends largely on the domains covered by standards A and B. For example, if UPnP defines a programmatic interface of a light bulb, and HAVi does not define a 'semantically equivalent' programmatic interface of a light bulb, then this device type cannot be bridged in a programmatic way. - A bridge 124 for a translation of programmatic interface 114 in standard A to
UI interface 112 in standard B. This type of translation requires that the programmatic interface of devices in standard A be available, at run-time, as data for translation purposes. This requires a 'white-box' device description mechanism, where an application can retrieve, at run time, all the information about the device's interface. In other words, an application does not need to rely on built-in knowledge of the interface of the device type, it can retrieve this knowledge at run-time. This type of translation further requires that the data types used in the programmatic interface be mapped as 'modally compatible' GUI elements. Within this context, see co-pending U.S. serial no. 09/165,682 (attorney docket PHA 23,484) filed 10/2/98 for Eugene Shteyn for CONTROL PROPERTY IS MAPPED ONTO MODALLY COMPATIBLE GUI ELEMENT. The translation of a programmatic interface in standard A to a UI in standard B further requires that the set of modally compatible GUI elements be supported by the UI mechanism of standard B. It further requires that the abstraction level of the programmatic interface be suitable for user-level interaction. All of the above translations may coexist in a bridge implementation. In fact, a bridge should represent a device in the other network in as much ways as possible, since it does not know which interface is most suitable for the applications/users on the other side of the bridge.
The current invention is based on the insight that the translation of a programmatic interface in a standard A to a UI in standard B can be used as a bridge. Below, the requirements are discussed posed on both standards involved for this bridging to work. Embodiments are given below of the bridging option in the form of a translation scheme for a UPnP programmatic interface to a HAVi device UI (DDI target).
The invention relates to a method of enabling to bridge a first cluster of first functionalities and a second cluster of second functionalities in a home network. The first cluster has a first software architecture that provides control of the first functionalities through a programmatic interface. UPnP is an example of such an architecture. The second cluster has a second software architecture that provides control of the second functionalities through a Ul-based interface. HAVi is an example of the latter architecture. The method in the invention comprises providing a translation of the programmatic interface to the Ul-based interface. In the UPnP - HAVi example, the method comprises generating a HAVi DDI target software element from a UPnP device description document.
The method of the invention can be implemented by a service provider. The user notifies the service provider of the new devices added to his/her network, whereupon the provider can generate the translation module to be installed on the user's network as part of a bridge.
The invention also relates to a home network with these clusters using different software architectures. The first cluster has a first software architecture that provides control of the first functionalities through a programmatic interface, and the second cluster has a second software architecture that provides control of the second functionalities through a Ul-based interface. The network has a bridge between the first and second clusters for translating the programmatic interface to the Ul-based interface. The network preferably comprises a generator for generating a HAVi DDI target from a UPnP device description document.
An aspect of the invention resides in bridging software for use on a home network, wherein the network comprises a first cluster of first functionalities and a second cluster of second functionalities. The first cluster has a first software architecture that provides control of the first functionalities through a programmatic interface, and the second cluster having a second software architecture that provides control of the second functionalities through a Ul-based interface. The bridging software is operative to couple the first and second clusters based on translating the programmatic interface to the Ul-based interface. The software comprises a generator for generating a HAVi DDI target from a UPnP device description document in the UPnP - HAVi network.
BRIEF DESCRIPTION OF THE DRAWING
The invention is explained in further detail, by way of example and with reference to the accompanying drawing, wherein:
Fig.1 is a block diagram illustrating the options for bridging; Figs.2A and 2B are a table with UPnP and HAVi information items referred to throughout the explanation below;
Fig.3 is a diagram with a portion of a home network;
Figs. 4, 5 and 6 are diagrams illustrating interactions between UPnP and HAVi clusters in a home network. Throughout the Figures, same reference numerals indicate similar or corresponding features.
DETAILED EMBODIMENTS
The UPnP standard defines the programmatic interface of a device through an XML document called the "description document". An application can retrieve this document, through HTTP, at run-time, so UPnP satisfies the 'white-box' criterion.
HAVi defines the programmatic interface of a device through publication of an API expressed in IDL. The API definition is tied to a unique identifier called the FCM type. The acronym "FCM" stands for Functional Component Module. A DCM (see above) contains an FCM for each controllable function within the represented device. Currently, HAVi defines FCM's and corresponding API's for functions such as a tuner, VCR, HDD- based storage, AV display, camera's and modems. At run-time a HAVi application can retrieve this FCM type from a controlled device, and is able to control the device programmatically based upon its built-in knowledge about the interface linked to the FCM type. Since the HAVi application needs to know the interface linked to the FCM type in advance, HAVi does not satisfy the 'white box' criterion.
In Jini, an application retrieves the programmatic interface of a device by using a lookup service that returns a remote (RMI) reference to the device's Java object representation. Java RMI (Remote Method Invocation) is used to issue control commands to the controlled device. Since Java has facilities for 'reflection', it is possible to determine, at run time, the interface (in terms of Java member variables and methods) of a remote object (device) reference. Hence, Java satisfies the 'white-box' criterion.
The programmatic interface of a UPnP device may use any of the following types: Boolean, Integer (called i4), Floating point (called r8), String, DateTime (data and time information) or HEX-encoding binary data (called bin.hex or bin.bin64). These types can be mapped in a straightforward manner to common GUI elements found in most UI protocols, including DDI (used in HAVi) and HTML (used in UPnP). See Figs. 2A and 2B. Jini does not define a specific device UI protocol. The programmatic interface of a Jini device may use any Java object. The programmatic interface of a HAVi device may use any IDL type. Hence, both HAVi and Jini device interfaces can, in general, not easily be mapped to a UI. Of course, one can imagine that for a particular device type that uses a subset of the rich data type features of IDL or Java, a UI mapping is possible. For example, for a Jini interface that uses only basic Java types (no Java objects) a UI mapping is feasible.
In summary, it seems most valuable to define a generic translation of the programmatic interface of a UPnP device to a DDI UI in HAVi.
Translating a UPnP programmatic interface to a HAVi DDI UI The programmatic interface of a UPnP device is described in a description document. This document specifies a root device with zero or more (sub) devices. Each device may have another list of sub devices, etc. A device without any sub devices (a 'leaf in the tree) contains a single service. A service consists of a list of state variables and a list of actions. Services don't have sub services. State variables have a 'name' field, 'type' field, and optionally fields to restrict the range of the type. Actions have a 'name' field and a list of parameters. Each parameter is described by a 'name' field, and a field called 'relatedState Variable'. This field has to refer to a state variable name, and it indirectly defines the type of the action parameter. An aspect of this invention is to generate a HAVi DDI Target from a UPnP device description document. The translation concerns both static aspects of the DDI Target as well as dynamic aspects.
As to static aspects: DDI elements or widgets need to be defined for UPnP data type; the organization of all DDI elements corresponding to a UPnP service needs to defined; the organization of all DDI elements corresponding to a UPnP device needs to defined.
As to dynamic aspects: DDI navigation between devices and services needs to be defined; initialization and termination of a 'session' between application and device needs to be defined; the effect of asynchronous changes at the controlled UPnP device needs to be defined; the effect of user actions that are forwarded to the generated DDI target needs to be defined. These aspects are described in further detail below.
Static: Translating UPnP data types to HAVi DDI elements UPnP data types occur in two ways in a service description, namely, directly: as type of a state variable, and indirectly: through reference of a <relatedStateVariable> for an action parameter.
Some DDI elements are 'interactive': they allow a user to interact with them.
For example, a button is interactive, while a text label is not interactive. Depending on the context, some interactive DDI elements may be 'temporarily' non-interactive or disabled. To express this, interactive DDI elements have an 'interactivity' field. Since UPnP allows state changes through actions only, DDI elements representing action parameters will set this field to ENABLED. DDI elements representing the current value of a device's state variable, however, will have this field set to DISABLED. Some UPnP data types may have additional specifiers that indicate a particular restriction on the range of value that it may hold. This can could be used to generate more appropriate DDI elements, in some cases. Static: Translating a UPnP service to a DDI structure
A service consists of a list of state variables and a list of actions. State variables have a 'name' field, 'type' field, and optionally fields to restrict the range of the type. Actions have a 'name' field and a list of parameters. Each parameter is described by a 'name' field, and a field called 'relatedState Variable'. This field has to refer to a state variable name, and it indirectly defines the type of the action parameter.
In DDI, elements may be organized in a group, in order to suggest some sort of coupling to a DDI display engine (called Ddi controller ). This coupling may be used to determine the organization of elements on the screen, or to determine navigation. A UPnP service can be translated to the following DDI structure:
- A DdiPanel element with panelName set to the <serviceType> field of the service. The DdiPanel contains two DdiGroup elements and a DdiPanelLink element:
- A DdiGroup element with groupName set to "State Variables". The 'elements' field of this group should contain DDI elements obtained from translating all UPnP state variables according to the type mapping described earlier. All of these Ddi elements should have their Interactivity attribute set to DISABLED.
- A DdiGroup element with groupName set to "Actions". The 'elements' field of this group contains DdiGroup elements for each individual UPnP action. Each of these DdiGroup elements contains: - A DdiButton element which both 'pressedLabeF and 'releasedLabel' fields set to the <name> field of the action. This element represents invoking the action on the UPnP device.
- Ddi elements for each input parameter of the action, according to the type mapping applied to the <relatedStateVariable> field of the action parameter. All of these Ddi elements should have their Interactivity attribute set to DISABLED.
- Ddi elements for each output parameter of the action, according to the type mapping applied to the <relatedStateVariable> field of the action parameter. All of these Ddi elements should have their Interactivity attribute set to ENABLED.
- A DdiPanelLink element representing the 'parent' device will its linkName field set to the parent device's <deviceType> or <friendlyName> field. Optionally, it could have the linkBitMap field set to one of the available and HAVi-compatible <icon> values in the parent device description. Static: Translating a UPnP device to a DDI structure
A device description document in UPnP specifies a root device with zero or more (sub) devices. Each device may have another list of sub devices, etc. Additionally, each device has certain fields associated with this, such as a device icon, a manufacturer name, etc.. A (root or sub) device can be translated to the following DDI structure:
- A DdiPanel element with panelName set to the <deviceType> or <friendlyName> field of the device. The DdiPanel contains DdiPanelLink elements, one for each sub device or service that it contains.
- A DdiPanelLink element representing a sub device should have its linkName field set to the sub device's <deviceType> or <friendlyName> field. Optionally, it could have the HnkBitMap field set to one of the available and HAVi-compatible <icon> values in the device description.
- A DdiPanelLink element representing a service should have its linkName field set to the service's <serviceType> field. Each non-root sub device should have:
- A DdiPanelLink element representing the 'parent' device will its linkName field set to the parent device's <deviceType> or <friendlyName> field. Optionally, it could have the HnkBitMap field set to one of the available and compatible <icon> values in the device description. All DdiPanelLinks should have the Interactivity field set to ENABLED.
Optionally, the panel could contains DdiText elements, with the Interactivity field set to DISABLED and the textContent field holding the string value for any of the following UPnP device description fields:
<deviceType>; <friendlyName>;
<modelDescription>; <modelName>; <modelNumber>; <modelURL>; <manufacturer>;
<manufacturerURL>;
<serialNumber>;
<UDN> Finally, it could have a Ddilcon element set to one of the available and compatible <icon> values in the device description.
An example UI that might be rendered by a DDI controller from a DDI target structured this way is shown in Fig. 3. Fig.3 is a diagram of part 300 of home network 100. Network 100 has a root device 302: a TV/VCR combo, and two sub devices: a TV 304 and a VCR 306 . TV 304 has three services: an Audio service 308, a Video service 310 Video and a Tuner service 312. VCR 306 has also three services: a Clock service 314, a Tuner service 316 and a Tape service 318. The example shows the use of the <friendlyName> field ("My BedRoom Fun"), the <manufacturer> field ("Philips"), the <modelName> field ("AZ1010"), the
<modelDescription> field ("19" TV/VCR combo") and the <icon> field (TV picture). Tape service 318 shows a string state variable 320 named "Transport" with <allowedValueList> specifier: { "playing", "stopped", "recording" }. Furthermore, it shows three actions: "Play", "Stop" and "Rec", where the "Rec" action has a single string parameter related to a state variable (not shown here) with <allowedValueList> specifier: { "standard", "long", "extended" }.
Dynamic: Navigating the device UI
As explained above, each (root or sub) device and each service is mapped to a separate DdiPanel element. DdiPanelLink elements are used to traverse from the root device down to services via zero or more intermediate sub devices. Additionally, on each level, except on the root device level, a DdiPanelLink is used to travel up in the device hierarchy. When a user on the DDI controller device clicks on the panel, a user action of type ACT_SELECTED will be sent to the DDI target. The DDI target shall respond to this by returning the targetPanel of representing the sub device/service (in case of navigating down the hierarchy) or the parent device (in case of navigating up the hierarchy). The DDI target does not need to communicate with the UPnP device that it represents.
Dynamic: Initializing/Terminating a session A session between a DDI controller and generated DDI target is shown in
Fig.4. After a DDI target receives a DDI subscription in step 402 it retrieves the UPnP description document in step 404. Based on the description document the DDI target is able to construct in step 406 the DdiPanel structure as well as all DdiElements it contains. Additionally, the DDI target subscribes to UPnP device state changes, in step 408, using the GENA mechanism. "GENAA" stands for Generic Eventing Notification within UPnP context. Eventing is the ability of a source device to initiate a connection at any time to one or more other devices that want to receive events from the source device. Events are used to establish synchronization among multiple devices. Within UPnP, events are mainly used for asynchronous notification of state changes. TCP/IP provides the support for connections to carry event information. GENA adds conventions for establishing relationships between interested devices and an addressing scheme to allow delivery of the event messages. GENA uses HTTP addressing and encapsulation. Separate subscriptions in step 410 are needed for each service. Since a GENA SUBSCRIBE returns the current values of all state variables, the DDI target is 'synchronized' with the UPnP device and is able to return the correct values for all DDI elements when the DDI controller requests them. A DDI target may subscribe to state changes immediately after the description document is retrieved (shown above) or in a 'just- in-time' fashion, just before the DDI controller requests the panel containing the state variable values. After a DDI target receives a DDI unsubscription in step 412 it unsubscribes itself in step 414 from state variable changes .
Dynamic: Asynchronous changes at the UPnP device
When a session has been established between a DDI controller and a DDI target, it is still possible that the device state changes in an asynchronous way through some other control. This might be another HAVi or UPnP application, or even the user pressing some physical button on the physical device's manual control panel. This scenario is schematically shown in Fig.5.
Dynamic: User Actions at the DDI controller Fig.6 shows the message that results when a user interacts with the UPnP device, through the display of the device running the DDI controller. The mode of operation is that the user first modifies the widgets corresponding to the action parameters and, when the user is done, presses the button that invokes the action on the device. The result of the action, including any output parameter, is shown using widgets that are in 'disabled' or 'non- interactive' mode.
Fig.6 shows that typically a user first modifies the widgets corresponding to the action parameters. These lead to "UserAction' messages sent to the DDI target. The target will not forward these interactions to the UPnP device, but rather use them to locally update the parameter values, represented by the widgets. When the user is done, he/she presses the button that represents the action on the device. On the "RELEASE' event of the DdiButton, the DDI target will construct a SOAP (Simple Object Access Protocol) request using the current parameter values, and sent it to the UPnP device. The SOAP action is executed synchronously, and when the action is executed successfully, the DDI Target will complete the user action by returning a DDI "change report" for the output parameter widgets, if there are any. The output parameter values are extracted from the SOAP response message.
As to SOAP, this is a protocol created with contributions from many industrial partners and that allows applications to communicate with each other over the Internet, providing a framework for, e.g., connecting Web sites and applications to create Web services. Web services link sites and applications together to perform functions that the individual components alone are not able to perform.
Typically, the action invoked on the controlled device will also change the state of the device and a GENA NOTIFICATION message will be sent, some time later, to the DDI Target indicating new values for all changed state variables. This in turn will lead to NotfyDdiChange messages, as described earlier, and ultimately to some visual change on the display of the DDI controller device.
Fig.6 illustrates the situation wherein there is no error, that is, the SOAP response that eventually gets issued by the UPnP device has return code OK. In case of an error, the DdiTarget can use the AlertPanel facility in DDI to indicate failure to the user. The 'alert panel' can contains a DdiText element holding the SOAP response <faultString> field. This is shown in Fig.7.
U.S. serial no. 09/165,682 (attorney docket PHA 23,484) filed 10/2/98 for Eugene Shteyn for CONTROL PROPERTY IS MAPPED ONTO MOD ALLY COMPATIBLE GUI ELEMENT relates to a home network system comprising an electronic device and a controller coupled to the device. The device exposes an abstract representation of its functionality to the controller. The controller enables controlling the device's functionality through interaction with the abstract representation. The abstract representation specifies a modality of controlling the functionality. Under control of the modality specified, the system associates the controlling of the functionality with a modally compatible controlling capability of the controller. The modality exposed can be, for example, "Boolean", "float", "integer array".
The term "modality" refers to an attribute that denotes the character of the controllability of the functionality. In the invention, the modality of the functionality is mapped onto a modaly compatible capability of the controller without the controller actually having to know what the functionality of the device is all about. For example, assume that the modality is semantically a Boolean. The Boolean control property can then be mapped onto a UI element that has a Boolean character and assumes one of two states such as an "on/off switch or "high/low" lever. When the user then interacts with this element, the functionality mapped onto it is put into one of the two states. In a HAVi system, the abstract representation gets uploaded, preferably including a UI (for, e.g., voice control) or GUI, and the user receives a context to determine the consequences of his/her interactions with the UI. In case the modality is a set of discrete values, the control property can be mapped onto a GUI element that can assume one of three or more discrete states such as a dial for channel selection on a device, for selection among multiple devices, etc. If the specified modality is semantically a range of floating-point values, a mapping is feasible onto a continuously variable control feature, e.g., brightness of an image on a display or sound volume. In another example, the specified modality is semantically an array. An array comprises more than a single component. For example, an array of Booleans could thus be mapped onto a cluster of GUI elements to implement, e.g., a menu selection among different devices or a check box list. An array of floating point modalities could be mapped onto a cluster of GUI elements that represent sliders, e.g., for adjusting a camera angles and zoom factors of camera's in the home security system that is controlled via the home network. Note that the controller does not need to have a clue about the functionality or functionalities of the device being controlled. All it needs to do is subjecting a functionality to a control application based on the semantics of its modality.
U.S. serial no. 09/340,272 (attorney docket PHA 23,634) filed 6/25/99 for Eugene Stheyn for BRIDGING MULTIPLE HOME NETWORK SOFTWARE ARCHITECTURES relates to the bridging of home networks of different software architectures. References to software representations of devices and services on a first one of the networks are automatically created. The references are semantically sufficient to enable automatic creation of at least partly functionally equivalent software representations for a second one of the networks so as to make the devices and services of the first network accessible from the second network. This document also discusses some aspects of HAVi in further detail. This document also addresses the HAVi, Home API and Jini software architectures.
U.S. serial no. 09/160,490 (attorney docket PHA 23,500) filed 9/25/98 for Adrian Turner et al., for CUSTOMIZED UPGRADING OF INTERNET-ENABLED DEVICES BASED ON USER-PROFILE relates to a server system that maintains a user profile of a particular end-user of consumer electronics network-enabled equipment and a data base of new technical features for this type of equipment. If there is a match between the user-profile and a new technical feature, and the user indicates to receive information about updates or sales offers, the user gets notified via the network of the option to obtain the feature.
U.S. serial no. 09/189,535 (attorney docket PHA 23,527) filed 11/10/98 for Eugene Shteyn for UPGRADING OF SYNERGETIC ASPECTS OF HOME NETWORKS relates to a server that has access to an inventory of devices and capabilities on a user's home network. The inventory is for example a look-up service as provided by HAVi or Jini architecture. The server has also access to a data base with information of features for a network. The server determines if the synergy of the apparatus present on the user's network can be enhanced based on the listing of the inventory and on the user's profile. If there are features that are relevant to the synergy, based on these criteria, the user gets notified.
U.S. patent 5,959,536 (attorney docket PHA 23,169) issued to Paul Chambers and Saurabh Srivastava for TASK-DRIVEN DISTRIBUTED MULTIMEDIA CONSUMER SYSTEM relates to a control system comprises multiple consumer electronics devices and task-driven control means coupled to the devices for controlling an interaction among the devices. The control means acts on respective software representations of each respective one of the consumer devices. By encapsulating the variable complexity of the task within a software representation, it can be made as simple or as sophisticated as needed to bring the capabilities up to a common level. Since the level of interface is common to the devices, applications can uniformly manipulate devices which embody very different levels of sophistication.

Claims

CLAIMS:
1. A method of enabling to bridge a first cluster of first functionalities and a second cluster of second functionalities in a home network, wherein:
- the first cluster has a first software architecture that provides control of the first functionalities through a programmatic interface; - the second cluster has a second software architecture that provides control of the second functionalities through a Ul-based interface; and
- the method comprises providing a translation of the programmatic interface to the Ul-based interface.
2. The method of claim 1 , wherein the first software architecture complies with
UPnP, and the second software architecture complies with HAVi.
3. The method of claim 2, wherein the providing comprises generating a HAVi
DDI target software component from a UPnP device description document.
4. A home network comprising:
- a first cluster of first functionalities; and
- a second cluster of second functionalities; wherein: - the first cluster has a first software architecture that provides control of the first functionalities through a programmatic interface;
- the second cluster has a second software architecture that provides control of the second functionalities through a Ul-based interface; and
- the network has a bridge between the first and second clusters for translating the programmatic interface to the Ul-based interface.
5. The network of claim 4, wherein the first software architecture complies with UPnP, and the second software architecture complies with HAVi.
6. The network of claim 5, comprising a generator for generating a HAVi DDI target software component from a UPnP device description document.
7. Bridging software for use on a home network, wherein: - the network comprises a first cluster of first functionalities and a second cluster of second functionalities;
- the first cluster has a first software architecture that provides control of the first functionalities through a programmatic interface; and
- the second cluster having a second software architecture that provides control of the second functionalities through a Ul-based interface;
- the bridging software is operative to couple the first and second clusters based on translating the programmatic interface to the Ul-based interface.
8. The software of claim 7, for coupling the first software architecture that complies with UPnP with the second software architecture that complies with HAVi.
9. The software of claim 8, comprising a generator for generating a HAVi DDI target software component from a UPnP device description document.
PCT/EP2001/007898 2000-07-25 2001-07-09 Gateway for home networks WO2002009384A2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2002514977A JP2004505360A (en) 2000-07-25 2001-07-09 Bridging UI-based home networks
KR1020027003858A KR20020035644A (en) 2000-07-25 2001-07-09 UI-based home network bridging
EP01965096A EP1293081A2 (en) 2000-07-25 2001-07-09 Gateway for home networks

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62464800A 2000-07-25 2000-07-25
US09/624,648 2000-07-25

Publications (2)

Publication Number Publication Date
WO2002009384A2 true WO2002009384A2 (en) 2002-01-31
WO2002009384A3 WO2002009384A3 (en) 2002-11-21

Family

ID=24502782

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2001/007898 WO2002009384A2 (en) 2000-07-25 2001-07-09 Gateway for home networks

Country Status (5)

Country Link
EP (1) EP1293081A2 (en)
JP (1) JP2004505360A (en)
KR (1) KR20020035644A (en)
CN (1) CN1708969A (en)
WO (1) WO2002009384A2 (en)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1355136A2 (en) * 2002-04-18 2003-10-22 Thomson Licensing S.A. Method for generating a user interface on a HAVi device for the control of a non-HAVi device
EP1355485A1 (en) * 2002-04-18 2003-10-22 Deutsche Thomson-Brandt Gmbh Method for generating a user interface on a HAVi device for the control of a Non-HAVi device
WO2004066556A1 (en) * 2003-01-23 2004-08-05 Thomson Licensing S.A. Updating parameters in a bridged multistandard home network
DE10339648A1 (en) * 2003-07-03 2005-01-20 Deutsche Thomson-Brandt Gmbh Method for controlling a network station in a network of a first type from a network station in a network of a second type and connection unit for connecting the networks of the first and second types
EP1511228A1 (en) * 2003-08-27 2005-03-02 Thomson Licensing, Inc. Method of control between devices connected to a heterogeneous network and device implementing the method
EP1617333A1 (en) * 2003-04-24 2006-01-18 Mitsubishi Denki Kabushiki Kaisha Video device, video module unit, and video device operation method
EP1665632A1 (en) * 2003-09-23 2006-06-07 Lg Electronics Inc. Upnp-based media contents reproducing system and method thereof
JP2007505388A (en) * 2003-09-09 2007-03-08 コニンクリユケ フィリップス エレクトロニクス エヌ.ブイ. Control interface selection
CN100345427C (en) * 2003-10-01 2007-10-24 Lg电子株式会社 Home network system and method for operating the same
KR100916030B1 (en) * 2002-10-19 2009-09-08 엘지전자 주식회사 Apparatus for displaying Data Driven Interaction element
US7839528B2 (en) 2004-11-11 2010-11-23 Canon Kabushiki Kaisha Information acquiring method, information appending apparatus, information acquiring apparatus, and program
WO2013006013A2 (en) * 2011-07-06 2013-01-10 Samsung Electronics Co., Ltd. Apparatus and method for providing user interface technical field of the invention
CN101098964B (en) * 2004-11-12 2013-03-20 诺维信阿德宁生物技术公司 Polypeptides having antimicrobial activity and polynucleotides encoding the same
EP2993831A1 (en) * 2014-09-03 2016-03-09 BSH Hausgeräte GmbH Method and device for determining and displaying accessories and services for networked household appliances

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100456457B1 (en) * 2002-12-03 2004-11-09 한국전자통신연구원 Universal plug and play power line communication adapter device and a control method thereof
KR100984810B1 (en) * 2004-02-02 2010-10-01 삼성전자주식회사 Apparatus and method for enabling UPnP device to control PLC device
KR100657001B1 (en) * 2005-03-02 2006-12-19 엘지전자 주식회사 Home Network Control System
KR100745642B1 (en) 2006-10-31 2007-08-02 삼성전자주식회사 Obje network device service apparatus in universal plug and play network system and method using the same
CN101505251B (en) * 2008-02-04 2011-07-20 广达电脑股份有限公司 Household network system and access control method thereof
CN102035760B (en) * 2009-09-24 2012-12-05 北京闪联云视信息技术有限公司 Home network interconnection device, home network service system and equipment discovery method
US20120096340A1 (en) * 2010-10-13 2012-04-19 Sony Pictures Technologies Inc. Reformatting web pages in bd platform
JP2020523162A (en) * 2017-06-14 2020-08-06 インペディメッド・リミテッド Index determination

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999035753A2 (en) * 1998-01-06 1999-07-15 Sony Electronics, Inc. Method and system related to an audio/video network
EP1058422A1 (en) * 1999-06-02 2000-12-06 THOMSON multimedia Methods for bridging a HAVi sub-network and a UPnP sub-network and device for implementing said methods
WO2001001632A2 (en) * 1999-06-25 2001-01-04 Koninklijke Philips Electronics N.V. Bridging multiple home network software architectures

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999035753A2 (en) * 1998-01-06 1999-07-15 Sony Electronics, Inc. Method and system related to an audio/video network
EP1058422A1 (en) * 1999-06-02 2000-12-06 THOMSON multimedia Methods for bridging a HAVi sub-network and a UPnP sub-network and device for implementing said methods
WO2001001632A2 (en) * 1999-06-25 2001-01-04 Koninklijke Philips Electronics N.V. Bridging multiple home network software architectures

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"SPECIFICATION OF THE HOME AUDIO/VIDEO INTEROPERABILITY (HAVI) ARCHITECTURE" HAVI SPECIFICATION, XX, XX, November 1998 (1998-11), pages 1-25,1-196,198-280,282-384, XP002935300 *
.: "Universal Plug and Play Device Architecture, UPnP, Version 1.0" ., June 2000 (2000-06), XP002210614 *

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1297133C (en) * 2002-04-18 2007-01-24 汤姆森许可贸易公司 Method for generating user interface of controlling non-HAVI apparatus on HAVI apparatus
EP1355485A1 (en) * 2002-04-18 2003-10-22 Deutsche Thomson-Brandt Gmbh Method for generating a user interface on a HAVi device for the control of a Non-HAVi device
EP1355136A3 (en) * 2002-04-18 2004-03-10 Thomson Licensing S.A. Method for generating a user interface on a HAVi device for the control of a non-HAVi device
EP1355136A2 (en) * 2002-04-18 2003-10-22 Thomson Licensing S.A. Method for generating a user interface on a HAVi device for the control of a non-HAVi device
KR100916030B1 (en) * 2002-10-19 2009-09-08 엘지전자 주식회사 Apparatus for displaying Data Driven Interaction element
WO2004066556A1 (en) * 2003-01-23 2004-08-05 Thomson Licensing S.A. Updating parameters in a bridged multistandard home network
US7984191B2 (en) 2003-01-23 2011-07-19 Thomson Licensing Updating parameters in a bridged multistandard home network
US7865622B2 (en) 2003-01-23 2011-01-04 Thomson Licensing Updating parameters in a bridged multistandard home network
EP2244422A1 (en) 2003-01-23 2010-10-27 Thomson Licensing Updating parameters in a bridged multistandard home network
CN100387009C (en) * 2003-01-23 2008-05-07 汤姆森许可贸易公司 Updating parameters in a bridged multistandard home network
EP1617333A1 (en) * 2003-04-24 2006-01-18 Mitsubishi Denki Kabushiki Kaisha Video device, video module unit, and video device operation method
EP1617333A4 (en) * 2003-04-24 2008-09-17 Mitsubishi Electric Corp Video device, video module unit, and video device operation method
DE10339648A1 (en) * 2003-07-03 2005-01-20 Deutsche Thomson-Brandt Gmbh Method for controlling a network station in a network of a first type from a network station in a network of a second type and connection unit for connecting the networks of the first and second types
FR2859341A1 (en) * 2003-08-27 2005-03-04 Thomson Licensing Sa METHOD FOR CONTROLLING EQUIPMENT CONNECTED TO A HETEROGENEOUS NETWORK AND APPARATUS IMPLEMENTING THE METHOD
EP1511228A1 (en) * 2003-08-27 2005-03-02 Thomson Licensing, Inc. Method of control between devices connected to a heterogeneous network and device implementing the method
JP2007505388A (en) * 2003-09-09 2007-03-08 コニンクリユケ フィリップス エレクトロニクス エヌ.ブイ. Control interface selection
EP1746777A3 (en) * 2003-09-23 2010-06-02 LG Electronics Inc. UPnP-based media contents reproducing system and method thereof
EP1665632A4 (en) * 2003-09-23 2010-06-02 Lg Electronics Inc Upnp-based media contents reproducing system and method thereof
EP1665632A1 (en) * 2003-09-23 2006-06-07 Lg Electronics Inc. Upnp-based media contents reproducing system and method thereof
CN100345427C (en) * 2003-10-01 2007-10-24 Lg电子株式会社 Home network system and method for operating the same
US7839528B2 (en) 2004-11-11 2010-11-23 Canon Kabushiki Kaisha Information acquiring method, information appending apparatus, information acquiring apparatus, and program
CN101098964B (en) * 2004-11-12 2013-03-20 诺维信阿德宁生物技术公司 Polypeptides having antimicrobial activity and polynucleotides encoding the same
WO2013006013A2 (en) * 2011-07-06 2013-01-10 Samsung Electronics Co., Ltd. Apparatus and method for providing user interface technical field of the invention
WO2013006013A3 (en) * 2011-07-06 2013-04-11 Samsung Electronics Co., Ltd. Apparatus and method for providing user interface technical field of the invention
EP2993831A1 (en) * 2014-09-03 2016-03-09 BSH Hausgeräte GmbH Method and device for determining and displaying accessories and services for networked household appliances

Also Published As

Publication number Publication date
WO2002009384A3 (en) 2002-11-21
CN1708969A (en) 2005-12-14
JP2004505360A (en) 2004-02-19
KR20020035644A (en) 2002-05-13
EP1293081A2 (en) 2003-03-19

Similar Documents

Publication Publication Date Title
EP1293081A2 (en) Gateway for home networks
EP1131919B1 (en) Bridging multiple home network software architectures
US7111079B2 (en) Architecture of a bridge between a non-IP network and the web
KR100647449B1 (en) Calls identify scenario for control of software objects via property routes
EP1188291B1 (en) General api for remote control of devices
US7089307B2 (en) Synchronization of controlled device state using state table and eventing in data-driven remote device control model
US7171475B2 (en) Peer networking host framework and hosting API
US7602756B2 (en) Dynamic self-configuration for ad hoc peer networking
EP1046259B1 (en) Method and system related to an audio/video network
Moon et al. Design of a universal middleware bridge for device interoperability in heterogeneous home network middleware
US20030200340A1 (en) Method for generating a user interface on a HAVi device for the control of a Non-HAVi device
EP1351447A1 (en) Management and control of networked audio-video devices
KR20040065571A (en) Havi-upnp bridging
WO2002001833A1 (en) Remoting general purpose operating system services via a peer networking device control protocol
Baldus et al. WWICE: an architecture for in-home digital networks
EP1355136B1 (en) Method for generating a user interface on a HAVi device for the control of a non-HAVi device

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): CN JP KR

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR

ENP Entry into the national phase

Ref country code: JP

Ref document number: 2002 514977

Kind code of ref document: A

Format of ref document f/p: F

WWE Wipo information: entry into national phase

Ref document number: 1020027003858

Country of ref document: KR

Ref document number: 018021573

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWP Wipo information: published in national office

Ref document number: 1020027003858

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 2001965096

Country of ref document: EP

AK Designated states

Kind code of ref document: A3

Designated state(s): CN JP KR

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR

WWP Wipo information: published in national office

Ref document number: 2001965096

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 2001965096

Country of ref document: EP