The invention concerns a communication method in a home network, in particular a HAVi-compliant network. It also concerns the network itself, and a device used in the implementation of the method. The invention applies among others to the communication between an internet application running on a network device which may not necessarily have a direct access to the internet, and a device of the network which does have such an access.
The WEB application lies above an application protocol layer (such as HTTP (Hypertext Transfer Protocol) or FTP (File Transfer Protocol) or another type of protocol). The next layers are, according to the example of
A user may own a number of devices such as television receivers and personal computers which have the Internet access functionality provided by the device 1 of
The object of the invention is a communication method in a home network comprising at least two devices connected to a communication bus, characterized in that, a first device including an internet application and a second device including means for connecting to the internet, said second device being able to manage at least one internet application protocol, said method comprises the steps of:
By including into the network a device which has the means for connecting to the internet and which at the same time possesses the means to communicate with devices (or software elements such as applications) in the network, only one device with such a capacity is required for the entire network, regardless of the number of internet-related applications running in devices of this network.
Moreover, an internet application establishing an internet connection through the second device specifies itself the Internet application protocol it wishes to use. This provides a very flexible way to use different internet application protocols within a same network.
According to an embodiment of the invention, the inventive method includes the step of sending, by said first device to said second device, a request for a list of internet application protocols supported by said second device.
The invention also concerns a home communication network comprising devices connected by a communication bus, said network comprising at least one device including a WEB interface, said device comprising an IP stack and a connection to the internet, said at least one device comprising an application programmable interface for making said WEB interface accessible to software element clients of other devices in said network.
The invention also concerns a device in a home communication network characterized in that it comprises a WEB interface, said device also comprising an IP stack and a connection to the internet, said at least one device comprising an application programmable interface for making said WEB interface accessible to software element clients of other devices in said network.
Other characteristics and advantages of the invention will appear through the description of a non-limiting embodiment of the invention, said description being made with reference to the following figures:
The following description uses a terminology defined in the following document, to which one should refer for further details: ‘The HAVi Architecture—Specification of the Home AudioNideo interoperability (HAVi) Architecture’ of May 11, 1998 Version 0.8 and publicly disclosed on May 15, 1998 on the WEB sites of at least the following companies: Sony, Philips, Toshiba, Sharp and Hitachi. Explanations and definitions regarding the terminology are also given at the end of the present description.
For further information regarding HTTP, which will be taken as an example as the protocol used by the WEB application of the present embodiment, the document ‘Hypertext Transfer Protocol/1.1 RFC 2068’ can be used as a reference. Other protocols than HTTP may be used: FTP, SMTP, POP, IMAP and NNTP are some examples.
An introduction to a HAVi-compliant network architecture will first be given, in order to define a number of concepts necessary for the description of the embodiment of the invention.
A HAVi network comprises devices which can be of four types, these devices being linked by a communication bus. The different device types are, ordered according to their network-related capabilities: Full AudioNideo devices (FAV devices), Intermediate AudioNideo Devices (IAV devices), Basic AudioNideo devices (BAV devices), and Legacy AudioNideo devices (LAV devices).
Except for the LAV-type devices, the other devices all have at least the capability of communicating with each other.
FAV devices contain a runtime environment for HAVi bytecode. HAVi bytecode is a programming language in which device control modules (DCMs) or applications may be written. A FAV device may thus download DCMs from or for other devices which do not include this runtime environment, for example for cost reasons.
IAV devices do not have the capability to run HAVi bytecode, but may include resident DCMs for the control of other devices.
BAV devices are devices which either contain DCM code downloadable by a FAV device, or which are controlled by a native DCM run by an IAV device.
LAV devices are devices which do not have any HAVi capability. These devices have their own command protocol and require that a FAV or an IAV device act as a gateway to the HAVi network and perform the necessary control command translation.
Each device contains a number of objects, called ‘software elements’ in the HAVi terminology. A control manager of a given function (called FCM) of a device, i.e. a software element providing an interface for controlling a specific functional component (e.g. tuner, display, mass storage . . . ) of a device is one of such objects. A DCM as mentioned above is another one.
Typically, a FAV device would contain a number of applications and device control applications which interact with the following software elements through corresponding application programmable interfaces:
The Message Passing System allocates unique identifiers to software elements, which use these identifiers to register themselves with the Registry. These identifiers are called ‘SEID’, standing for Software Element Identifiers, and comprise a device identifier and a software element handle within that device. A first software element wishing to send a message to a second software element will pass the SEID of this second software element as a parameter in its command to the Message Passing System. It obtains this SEID by making an appropriate request with the local Registry service. Depending on whether the software element to be called is local or distant (i.e. in another device than the calling software element), the calling software element will use the whole SEID or only its software element handle part.
The mapping of function calls into messages of the Message Passing System is described in detail in Chapter 3.2.3 of the HAVi 0.8 document. The Message Passing System described in this version of the HAVi document can handle messages up to 64 Kb long.
The French patent application FR 9805110 filed on Apr. 23, 1998 in the name of THOMSON multimedia gives additional information about the Registry and the Message Passing System.
Device 21 comprises a WEB access application programming interface (WEB access API), as well as the IP stack, PPP protocol and a modem. Device 21 can be a FAV, a IAV or a BAV device. The functional component module (FCM) giving access to IP stack operation by the different WEB applications is called ‘Internet Proxy Agent’, or ‘WEB Proxy Agent’. It provides the WEB access application programmable interface which is the layer above the IP stack.
According to the present example, the device 21 is a digital television decoder comprising a modem.
The WEB Proxy FCM offers a sharable access to the internet. It registers upon reset or hot-plugging at the local Registry of device 21, if that device is a FAV or IAV, or at the local registry of the FAV or IAV device which runs the Device Control Module corresponding to the WEB Proxy FCM if device 21 is of the BAV type.
The WEB application, which can also be referred to as ‘WEB client’, is able to detect the WEB Proxy FCM in the network by sending a request to its local Registry service. The local Registry dispatches the request to distant Registries and collects the responses. In the case of the present embodiment, only the identifier (‘SEID’) of the WEB Proxy FCM of device 21 will be detected.
The WEB Proxy FCM preferably supports at least several commonly used Internet protocols, such as HTTP, FTP, NNTP, SMTP, POP or IMAP. The WEB client uses the WEB Proxy FCM application programmable protocol through the Message Passing System. The application programmable interface comprises the following functions: Open, Close, Send, Receive and GetCapability.
These different functions will now be described in detail.
The following data structures are used by the functions of the WEB Proxy FCM:
(a) enum FileLoc {START, NEXT, END};
This data structure indicates whether the message from a producer to a consumer is the first message, an intermediate message or the last (or only) message in a sequence of messages. It is used in conjunction with the notion of buffer size at the WEB client or at the WEB Proxy FCM, since this buffer size, as explained later on, may cause a function call to be split over several messages.
(b) enum ProtocolType {HTTP, FTP, SMTP, POP3, IMAP4, NNTP, WAIS};
This data structure indicates the list of WEB application protocols the WEB proxy FCM may support.
The functions in the list below are implemented in the present system.
(a) ‘Open’ Function
This function allows the WEB client to open a connection with a WEB proxy FCM. The function prototype is defined as follows:
‘Status’ is the type of the function return value.
The following parameters are used:
The only parameter is the ‘cid’ parameter, i.e. the identifier of this connection with the WEB proxy FCM.
The WEB Proxy FCM acknowledges with one of the following status values:
In addition to the already defined ‘cid’ parameter, the function's parameters are the following:
In addition to the parameters already defined, the following parameter is used by the present function:
The sole parameter of the function is ‘ProtocolList’, which is the list of WEB application protocols which are available through the FCM. More than one protocol may be supported by the WEB Proxy FCM.
The ‘Open’ function, as illustrated in
At the Message Passing System level, the WEB client also transmits its own identifier ‘SEID’.
Assuming correct reception and processing, the WEB Proxy FCM responds by the return code ‘0’ to indicate successful processing, sends a ‘cid’ value to identify the connection, and also transmits its own buffer size for further communication.
Once the connection open, the Web client proceeds to send a request to a WEB server, using the HTTP protocol. According to the example of
The WEB server will respond with the requested data and transmit it to the WEB Proxy FCM. Since in the present example, the quantity of data is far beyond the buffer capacity of the WEB client, the WEB Proxy FCM splits the data into messages of appropriate size. The WEB Proxy FCM sends a first data block as a parameter within the Receive function call, using the operation code previously obtained from the WEB client, appended to the ‘SEID’ identifier of the WEB client. It uses ‘START’ as a parameter. Further messages are only sent after acknowledgment of receipt by the WEB client, to give it the time to process the received data and to empty its buffer. After having received the last data block, the WEB client closes the connection using the Close function. The WEB Proxy FCM answers by a last acknowledgment of receipt.
Lastly, according to the present embodiment, the configuration of the WEB Proxy FCM, for instance of the modem connection, is carried out directly by the user through a graphical interface provided by the Device Control Module which manages the WEB Proxy FCM. There is no specific application programmable interface for this task, which can be carried out using the data driven interaction (DDI) mechanism provided by the HAM specification.
Number | Date | Country | Kind |
---|---|---|---|
98401372 | Jun 1998 | EP | regional |
98402384 | Sep 1998 | EP | regional |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/EP99/03952 | 6/7/1999 | WO | 00 | 2/27/2001 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO99/65188 | 12/16/1999 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
4777595 | Strecker et al. | Oct 1988 | A |
5303347 | Gagne et al. | Apr 1994 | A |
5537417 | Sharma et al. | Jul 1996 | A |
5710908 | Man | Jan 1998 | A |
5751951 | Osborne et al. | May 1998 | A |
5751970 | Bournas | May 1998 | A |
5757801 | Arimilli | May 1998 | A |
5790804 | Osborne | Aug 1998 | A |
5867660 | Schmidt et al. | Feb 1999 | A |
5884025 | Baehr et al. | Mar 1999 | A |
5892910 | Safadi | Apr 1999 | A |
5940074 | Britt et al. | Aug 1999 | A |
5940387 | Humpleman | Aug 1999 | A |
5960177 | Tanno | Sep 1999 | A |
5982363 | Naiff | Nov 1999 | A |
6021132 | Muller et al. | Feb 2000 | A |
6038628 | Leung et al. | Mar 2000 | A |
6047338 | Grolemund | Apr 2000 | A |
6055236 | Nessett et al. | Apr 2000 | A |
6058434 | Wilt et al. | May 2000 | A |
6085251 | Fabozzi, II | Jul 2000 | A |
6108704 | Hutton et al. | Aug 2000 | A |
6208952 | Goertzel et al. | Mar 2001 | B1 |
6222855 | Kimber et al. | Apr 2001 | B1 |
6233577 | Ramasubramani et al. | May 2001 | B1 |
6243743 | Freeny | Jun 2001 | B1 |
6259443 | Williams, Jr. | Jul 2001 | B1 |
6285659 | Feuerstraeter et al. | Sep 2001 | B1 |
6311220 | Fischer et al. | Oct 2001 | B1 |
6353614 | Borella et al. | Mar 2002 | B1 |
6360253 | Freeny | Mar 2002 | B1 |
6393497 | Arnold et al. | May 2002 | B1 |
6418324 | Doviak et al. | Jul 2002 | B1 |
6425013 | Schmidt et al. | Jul 2002 | B1 |
6490631 | Teich et al. | Dec 2002 | B1 |
6496858 | Frailong et al. | Dec 2002 | B1 |
6496867 | Beser et al. | Dec 2002 | B1 |
6567405 | Borella et al. | May 2003 | B1 |
6912588 | Jardin et al. | Jun 2005 | B1 |
6973555 | Fujiwara et al. | Dec 2005 | B2 |
6990107 | Rinne et al. | Jan 2006 | B1 |
Number | Date | Country |
---|---|---|
0 604 166 | Jun 1994 | EP |
2778046 | Oct 1999 | FR |
4000839 | Jan 1992 | JP |
8256325 | Oct 1996 | JP |
9247209 | Sep 1997 | JP |
Entry |
---|
Peter M. Corcoran, et al “User Interface Technologies tor Home Appliances and Networks”, Jun. 17, 1998, IEEE, pp. 679-685. |
Peter M. Corcoran, “Mapping Home-Network Appliances to TCP/IP Sockets using a three-tiered home Gateway Architecture”, Jun. 17, 1998, IEEE, pp. 729-736. |
Peter M. Corcoran et al. “Browser-Style Interfaces to a Home Automation Network”, Jun. 17, 1998, IEEE, pgs. 1063-1069. |
Peter M. Corcoran et al. “CEBus Network Access via the World-Wide-Web”, 1996, IEEE, pp. 236-237. |
Peter M. Corcoran et al “Browser and Applet Interfaces to CEBus Networks”, pp. 328-329. |
J. Desbonnet et al “System Arcnitecture and Implementation of a CEBus/Internet Gateway”, IEEE, vol. 43, No. 4, Nov. 1, 1997, pp. 1057-1061. |
D.J. Preston “Internet Protocols Migrate to Silicon for Networking Devices”, Electronic Design, vol. 45, No. 8, Apr. 14, 1997, pp. 87-90. |
B. Peisel “Designing the Next Step in Internet Appliances”, Electronic Design, vol. 46, No. 7, Mar. 23, 1998, pp. 50, 52, 56. |
Sony. et al., “Specification of the Home Audio/Video Interoperability (HAVI) Architecture”. The HAVI Architecture, XP002115566, Version 0.8, 1998, pp. 24-29. |
Sato, “Multipurpose Protocol Mediation System Delegate”, Bulletin of the Electrotechnical Laboratory, vol. 59, No. 6, Jun. 20, 1995, pp. 1-17. |