For the purpose of facilitating an understanding of the subject matter sought to be protected, there are illustrative embodiments in the accompanying drawing, from an inspection of which, when considered in connection with the following description and claims, the subject matter sought to be protected, its construction and operation, and many of its advantages should be readily understood and appreciated
Referring to
Referring to
In one example, the components include core logic 13, 13′, memory 15, 15′, CPUs 16, 16′, services 17, 17′, and interfaces 18, 18′. In addition, device 11′ includes at least one client, which can also be referred to (e.g. in UPnP) as a control point 19′. Device 11 could also have one or more control points, but for ease of description, this is not shown in
Core logic 13, 13′ is shorthand to refer to the device specific hardware and/or software components that allow each device 11, 11′ to perform its core function(s) (e.g. media player, mobile phone, etc.). For example, if device 11 were a mobile phone, then core logic 13 would include a transceiver, a microphone, speakers, etc. Memory 15, 15′ is storage on which devices 11, 11′ can store data (e.g. software, digital media, etc.). CPUs 16, 16′ are the central processors that control the operation of each device 11, 11′.
Services 17, 17′ are applications that devices 11, 11′ can offer to other devices. Put simply, services 17, 17′ provide functionality that other devices can use in accordance with the network protocol in use. A device 11, 11′ can have one or more services 17, 17′. A device also could have no services and instead rely on the services of other devices.
The services can take many forms. In the interests of brevity, this application will not attempt to describe all of the available services with which the transport medium selection will work. Examples of services include file sharing, file synchronization, media rendering, and media streaming. There are also services that enable one device to control the most basic operations of another device. For instance, a DVD player may have a service allowing another device to change a disc or to eject a disc tray. The transport medium selection of the present application is compatible with any service that communicates some form of data to another device.
Interfaces 18, 18′ provide devices 11, 11′ with physical mediums by which the devices can communicate with each other and to other devices, either directly or through a network 20. Exemplary interfaces 18, 18′ include, but are not limited to, USB, Bluetooth, IrDA, WiFi, IEEE 1394, etc.
Control point 19′, allows a user to send actions to a service, either on device 11 or device 11′. Control point 19′, for exemplary purposes, is shown as residing on device 11′. However, device 11 could also have one or more control points, or alternatively, a control point could reside on another device connected to the network 20.
Each device 11, 11′ also employs at least one computer-readable signal-bearing medium 21, 21′. One example of a computer-readable signal-bearing medium 21, 21′ is a recordable data storage medium such as a magnetic, optical, and/or atomic scale data storage medium. In another example, a computer-readable signal-bearing medium is a modulated carrier signal transmitted over a network coupled to the 11, 11′ device. Each computer-readable signal-bearing medium 21, 21′ can be used to store logic components or code elements that are employable to carry out transport medium selection described herein.
It should be noted that the preceding component descriptions are for illustrative purposes only. It is envisioned that the methodology disclosed herein can be performed on other devices with other configurations.
Referring to
The process 300 begins in step 301 during which the first device 11 and the second device 11′ initiate communication. The communication can be initiated by device 11 coming within range of device 11 ′ or joining a network on which device 11′ resides. The communication could also be initiated by device 11′ coming within range of device 11 or joining a network on which device 11 resides. Finally, device 11, 11′ could initiate communication with each other in the course of initiating communication with a number of devices. For instance, if device 11 were to join a network of devices, which included device 11′ , then communication would be initiated between device 11 and device 11′, but it would also be initiated between device 11 and the other devices on the network.
In one example, step 301 corresponds to the device discovery process set forth in accordance with the UPnP™ Device Architecture specification, Version 1.0, which is hereby incorporated by reference and available from the UPnP™ forum. It will be appreciated that during this discovery process, when a device 11, 11 ′ joins a network it broadcasts or advertises its presence to the other devices on a network. Similarly, when a control point 19′ joins a network, it sends a multicast request to devices on the network to advertise their presence to the control point.
In any event, during step 301, the first device 11 and second device 11′ exchange messages containing essential information about each other. For example, each device 11, 11′ might provide its type, an identifier, and a pointer to more detailed information.
In step 303, the devices 11, 11′ exchange device descriptions. In one example, the device descriptions are stored in the respective memories 15, 15′ of each device 11, 11′. Device 11 sends a device description file to device 11′ and device 11′ sends a device description to device 11. Obviously, if one of the devices 11, 11′ joins a network, the device descriptions will be sent to other devices on the network as well. The device descriptions include services that are available on each device for use by the other devices. The device descriptions will also include, for each service, all of the transport mediums that available for use.
Referring to
The transport medium descriptions 501 can be created and added to the service list 500 in multiple ways. In one example, a user could enter transport medium descriptions 501 to a device description, either manually or through another application, such that the transport medium descriptions reflect the user's preferences. In another example, the transport medium descriptions could be added by automatically by an application. For instance, an application could identify all the available interfaces present on a device and add the corresponding transport mediums for each service listed in the service list 500. In a further example, an application or the user could define or select one or more parameters for each service and only allow transport mediums with parameter values reflecting certain predetermined criteria to operate with a particular service. For example, a user or application might decide that throughput is of paramount importance for a particular type of service and then evaluate whether the value of throughput for a particular transport medium exceeds a certain value. If it does, then that transport medium will be added to the transport medium description 501 for that particular service. If the value of throughput does not exceed the value, then the transport medium will not be added to the transport medium description 501. In another example, power consumption or quality of service could be the parameters by which the transport mediums are evaluated for a particular service. The parameters chosen by the application or user could relate to a combination of factors. For instance, a user, for a particular service, might only want to use the fastest transport medium, but only if power consumption is below a certain threshold.
In the example of UPnP, a specific application might always require the use of same transport. In this case the application asks the UPnP discovery-description to take into account this requirement and to fill out the xml device description file with the right information. If the interface network required by the application is not available, the application will be disabled. In a further example, on each embedded system, tools (ipconfig, ifconfig . . . ) can be used get information about the interface networks enabled on the Operating System. Following the results, the UPnP discovery-description mechanism can fill out the xml device description file.
To prevent confusion between devices, applications should avoid leaving any transport medium descriptions 501 blank. If a transport medium is not available for a particular service, then the service should not be offered to the network. Accordingly, in one example, the transport medium descriptions 501 will default to the physical medium used during the discovery phase.
In another example, the transport medium descriptions could be added to the UPnP service description file instead of the device description file. By adding the transport medium descriptions 501 to the device description files, however, devices avoid requesting service information if the transport required by the application is not supported.
These previous examples are provided for illustrative purposes only and should not be construed as limiting the range of alternatives by which the transport medium descriptions are created for each device.
In step 305, at least one of the available services is chosen by which the first device 11 and second device 11′ will exchange data. The service(s) chosen will depend on the particular objective that the user invoking the service(s) wants to accomplish. For example, a user of the second device 11′ might invoke, through control point 19′, a file sharing service on device 11 and a file sharing service on device 11′ to share files between devices 11, 11′. In another example, the second device 11′ might be a media rendering device with an integrated control point 19′ and the first device 11 might be a media server. The user, through control point 19′, might choose to invoke a media streaming service on device 11 and render streamed media, from device 11, on device 11′. Accordingly, two services would work cooperatively to achieve the transfer of data.
In step 307, the transport medium used to exchange data is selected. Transport medium selection occurs in a manner similar to the manner in which each device constructs its transport medium descriptions. The selection of the transport medium could be performed by the first device 11, by the second device 11′, or by a combination of the two devices. For instance, an application in device 11′ might invoke a service, such as file sharing, on device 11 in order to transfer a particular file to device 11′. The application might only want to transfer the file, however, if there were a transport medium available that could meet one or more predetermined criteria, such as a certain rate of transfer, quality of service, or power consumption. Accordingly, if the device 11′ were to determine that a plurality of transport mediums available use with a service on device 11′ matched a plurality of services available for the service on device 11, then device 11′ could select the best alternative based on the predetermined criteria.
For example, the controlling application could automatically select the transport medium that meets its application criteria and minimizes current drain. For instance, the chart below indicates that IEEE 802.15.1 has minimal current drain. Yet, if IEEE 802.15.1 does not meet other performance criteria, then the controlling application would select 802.15.3. If 802.15.3 does not meet other performance criteria, then the application would select 802.15.3.a, and so on.
In another example, relating to steps 303 and 307, it is envisioned that the respective manufacturers of devices 11 might create UPnP device descriptions 400 at the time of manufacture. The manufacturer would identify the transport mediums available for each service and assign a relative level of precedence for each transport medium. For example, if the manufacturer of device 11 were to provide a transport medium description 501 of {WiFi, Bluetooth, IrDA} for file sharing, then when invoking file sharing on device 11′, device 11 would search the corresponding transport medium description on device 11′ for WiFi. If WiFi were not present, device 11 would search for Bluetooth. If Bluetooth were not present, device 11 would search for IrDA.
In one embodiment provided herein, the user can change the transport medium description and reorder the relative level of precedence for the transport mediums identified supported for each service. If the user prefers Bluetooth over WiFi for file sharing, the user can reorder the transport medium description 501 to {Bluetooth, WiFi, IrDA}. Then, when invoking file sharing on device 11′, device 11 would first determine whether Bluetooth were available for file sharing on device 11′. If Bluetooth were not available, device 11 would check if WiFi were available, and so on. Thus, for each service on a device 11, the user can not only describe what transport mediums are available, but also provide input into the selection criteria.
In step 309, a connection is established between the first device and the second device using the transport medium selected in step 307. Once the connection is established, then in step 311, the devices 11, 11′ exchange data in accordance with the particular service or services chosen in step 305, and the connection is managed in accordance with the transport protocol in use.
Accordingly, what is provided is a methodology by which applications are given the choice of selecting a transport medium. Each device will broadcast its transport capabilities to the surrounding devices and receive broadcasts of the surrounding devices transport capabilities. Thus, each device on a network will always know the transport capabilities of the other devices. Each device will have a list transport mediums to perform applications, such as content sharing or synchronization. Devices that support multiple transports can select, for each application, only those transports that meet their application criteria and other predetermined criteria, such as minimizing current drain. The application layer can then utilize this information to select the most suitable physical medium to communicate, to share, or to exchange data.
While particular embodiments have been shown and described, it will be apparent to those skilled in the art that changes and modifications may be made without departing from the principles set forth herein. The matter set forth in the foregoing description and accompanying drawings is offered by way of illustration only and not as a limitation.
Number | Date | Country | Kind |
---|---|---|---|
EP06300327.1 | Apr 2006 | EP | regional |