This invention relates to systems and methods for device discovery.
In recent years, there has been an increase in the employment of device discovery operations by devices. For example, devices increasingly include interfaces such as IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, Bluetooth, IEEE 802.15a, IEEE 802.15.3, and/or the like, and various device discovery operations are performed in conjunction with one or more of those interfaces.
In view of at least the foregoing, there may be interest in technologies that, for example, facilitate the employment of device discovery operations.
According to various embodiments of the present invention, there are provided systems and methods applicable, for example, in device discovery operations.
Various embodiments provide, for example, for power savings at nodes. Moreover, various embodiments provide, for example, for the exchange of information among nodes.
General Operation
According to various embodiments of the present invention, there are provided systems and methods applicable, for instance, in device discovery. Various embodiments provide for power savings at nodes. Such saving may be provided for, for instance, by reducing the extent to which devices communicate in device discovery operations.
Such embodiments might, for example, be employed by nodes using IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, Bluetooth, Ultra Wide Band (UWB), and/or the like. Such UWB might, for instance, employ IEEE 802.15a, IEEE 802.15.3, and/or the like. It is noted that embodiments of the present invention may be implemented such that no changes are required at Open Systems Interconnect (OSI) Layer 1 (physical layer) or Layer 2 (data link layer).
It is noted that, in various embodiments, device discovery may, for example, be employable in home automation. For instance, in the case where a user arrives at home, a device situated in the user's home could discover a node carried by the user. Having discovered the node, the device situated in the user's home could act to have one or more actions performed such as, for instance, turning on lights, setting an audio system to play music (e.g., a favorite song of the user), setting the preferences profile of the node carried by the user to “home”, and/or the like. Moreover, in various embodiments, one or more operations might alternately or additionally, be performed responsive to the user leaving her home. Operations to be performed upon the user leaving and/or entering her home could, for instance, be settable by the user, perhaps via a graphical user interface (GUI) and/or other interface provided, for example, by the device that she carried.
As is discussed in greater detail below, embodiments described herein allow for a device to determine that one or more other devices have entered its reception range. Moreover, embodiments described herein allow for a device to determine that one or more other devices have left its reception range. Such functionality might be employed, for instance, to allow device to determine that one or more other devices have entered or left a certain area.
Device Discovery Operations
With respect to
As shown in step 105, there may, for instance, be no devices available for discovery at the time a particular device discovery inquiry is sent out by device 101.
As shown in step 107, a particular device discovery inquiry sent out by device 101 may be received by a device 103. Such a device might, for instance, be a device subject to power constraints (e.g., a device operating under battery power).
According to various embodiments, where device discovery inquiry 107 is a first device inquiry received by device 103 (e.g., within a certain period of time and/or the like), device 103 may act to reply to the inquiry (step 109).
Thereafter, device 103 may, in various embodiments, act to subsequently ignore one or more further device discovery inquiries (steps 111-115) before replying to one (step 117).
Device 103 might, for example, act to subsequently ignore every y received device discovery inquiries, and reply to every (y+1)th inquiry. For instance, device 103 might act to subsequently ignore every three device discovery inquiries and reply to every fourth device discovery inquiry.
As another example, device 103 may act to ignore received device discovery inquiries for one or more periods of time before replying to one.
For example, device 103 might act such that only every y seconds (e.g., every 60 seconds) would it act to reply to the next received device discovery inquiry.
According to various embodiments, the values or values to be employed by device 103 in ignoring received device discovery inquiries could be received and/or possessed in a number of ways. For example, device 103 might receive such values via a first device discovery inquiry 107 and/or one or more subsequently received device discovery inquires. As another example, such values could be received by device 103 from a server and/or the like, be placed on device 103 by a user, system administrator, device manufacturer, and/or the like. In various embodiments, such values might be standardized for all devices subscribing to a particular network, all devices of a particular type (e.g., battery operated device) subscribing to a particular network, and/or the like.
A number of considerations might, in various embodiments, be taken into account in choosing such values. For example, required responsiveness in discovery time, power consumption requirements, and/or the like might be taken into account.
Embodiments such as those described with respect to
In various embodiments, device 101 could consider device 103 to no longer be in reception range in the case where it did not receive a reply from device 103 in greater than a particular period of time, where it did not receive a reply to its yth dispatched device discovery inquiry, and/or the like.
For instance, in the case where device 103 was to, every 60 seconds, reply to the next received device discovery inquiry, device 101 could, in various embodiments, consider device 103 to no longer be in reception range in the case where a reply was not received from device 103 after 60 seconds.
As alluded to above, device 101 could know of such a number of seconds, for example, by way of it dispatching the value to device 103, by device 101 knowing the value to have been assigned to 103, and/or the like.
With respect to
Such criteria might, for instance, be negotiated between device 101 and the device. Such negotiation might, for instance, take into account one or more of a wide variety of factors and/or allow for agreement upon one or more of a variety of criteria. For example, it might be agreed upon that a device would not be removed from the list until it had failed to respond to a defined number of device discovery inquiries. For instance, removal might require that two or more instances of no response. As another example, it might be agreed upon that a device that did not respond would be left on the list for an agreed upon amount of time.
It is noted that such a list might, perhaps in accordance with that discussed below, be employed by device 101 to let other devices know of devices that it had discovered.
Further Device Discovery Operations
With respect to
Accordingly, device 101 might, for instance, let device 103 know of the inquiry schedule (step 305) after device 103's reply (step 303) to a first received (e.g., within a certain period of time and/or the like) device discovery inquiry (step 301).
Such an embodiment might be useful, for instance, in a case where device discovery inquiries did not include indication of the device that dispatched them and/or where there were other devices in device 103's reception range other than device 101.
In such embodiments, device 103 could, for instance, act in a manner analogous to that described with respect to
Accordingly, device 103 might, for example, act to subsequently ignore every y received device discoveries that it, by way of the received schedule, understood to have been I dispatched by device 101, and act to reply to every (y+1)th such inquiry.
As another example, device 103 might act to subsequently ignore, for one or more periods of time before replying to one, device discovery inquiries that it, by way of the received schedule, understood to have been dispatched by device 101.
It is noted that, in various embodiments, device 101 and device 103 might act to negotiate the schedule according to which device discovery inquiries are sent out by device 101. Such negotiation might, for instance, take into account one or more of a wide variety of factors and/or allow for agreement upon one or more of a variety of schedule aspects. Accordingly, for example, such negotiation might result in device 101 adopting a schedule for sending out device discovery inquiries that did not conflict with a further device's schedule for sending out device discovery inquiries such that, for instance, device 103 would be able to correctly determine if a particular received device discovery inquiry was dispatched by device 101 or the further device.
It is further noted that, in various embodiments, device 101 might, having received a subsequent reply from device 103 (step 315) act to dispatch to device 101 inquiry schedule information (e.g., updated inquiry schedule information).
Additionally, it is noted that, in various embodiments, perhaps in a manner analogous to that discussed with respect to
Moreover, it is noted that, embodiments such as those described with respect to
Device Discovery Operations Including Information Exchange
With respect to
For example, device 101, perhaps as a device not particularly subject to power constraints, continuously could act to discover devices by way of, for instance, dispatching device discover inquiries. Device 101 could, in various embodiments, maintain a store of information regarding discovered devices. Included among such information could, for instance, be information regarding discovery times, identifiers corresponding to discovered devices, network addresses and/or the like corresponding to discovered devices, and/or the like.
In various embodiments, after having a device (e.g., device 103) reply to a dispatched device discovery inquiry (steps 401, 403), device 101 could act to provide the device with some or all of its held information regarding discovered devices (step 405). Moreover, in various embodiments, the device contacted by device 101 could act to provide device 101 with some or all of held information regarding discovered devices (step 407).
In various embodiments, device 101 could act to update its held information regarding discovered devices in accordance with the information received from the contacted device. Alternately or additionally the device contacted by device 101 could, perhaps in a likewise manner, act to update held information regarding discovered devices in accordance with the information received from device 101.
Moreover, in various embodiments, the device contacted by device 10I1 could act to dispatch one or more device discovery inquiries in order to scan for devices indicated by device 101 to be reachable (step 409). Via such operations, the device contacted by device 101 might, in various embodiments, act to update held information regarding discovered devices. It is noted that, in various embodiments, in the case where device 101 did not report any devices believed to be reachable, the device contacted by device 101 might not act to dispatch device discovery queries. Alternately or additionally device 101 could, perhaps in a likewise manner, act to dispatch one or more device discovery inquiries in order to scan for devices indicated by the device contacted by device 101 to be reachable. Via such operations, device 101 might, in various embodiments, act to update held information regarding discovered devices.
It is noted that, in various embodiments, all, any, or none of the devices involved in operations of the sort discussed herein might be subject to power constraints.
Accordingly, for instance, it is noted with respect to
Hardware and Software
Various operations and/or the like described herein may be executed by and/or with the help of computers. Further, for example, devices described herein may be and/or may incorporate computers. The phrases “computer”, “general purpose computer”, and the like, as used herein, refer but are not limited to a processor card smart card, a media device, a personal computer, an engineering workstation, a PC, a Macintosh, a PDA, a computerized watch, a node, a wired or wireless terminal, a server, a network access point, a network multicast point, a set-top box, a personal video recorder (PVR, a game console, or the like, perhaps running an operating system such as OS X, Linux, Darwin, Windows CE, Windows XP, Windows Server 2003, Palm OS, Symbian OS, or the like, perhaps employing the Series 60 Platform and/or Series 90 Platform, and perhaps having support for Java and/or Net.
The phrases “general purpose computer”, “computer”, and the like also refer, but are not limited to, one or more processors operatively connected to one or more memory or storage units, wherein the memory or storage may contain data, algorithms, and/or program code, and the processor or processors may execute the program code and/or manipulate the program code, data, and/or algorithms. Accordingly, exemplary computer 5000 as shown in
Mass storage 5063 may be a hard drive, optical drive, or the like. Processors 5051 and 5052 may each be a commonly known processor such as an IBM or Motorola PowerPC, an AMD Athlon, an AMD Opteron, an Intel ARM, an Intel XScale, a Transmeta Crusoe, a Transmeta Efficeon, an Intel Xenon, an Intel Itanium, or an Intel Pentium. Computer 5000 as shown in this example also includes a touch screen 5001 and a keyboard 5002. In various embodiments, a mouse, keypad, and/or interface might alternately or additionally be employed. Computer 5000 may additionally include or be attached to card readers, DVD drives, floppy disk drives, and/or the like whereby media containing program code (e.g., for performing various operations and/or the like described herein) may be inserted for the purpose of loading the code onto the computer.
In accordance with various embodiments of the present invention, a computer may run one or more software modules designed to perform one or more of the above-described operations. Such modules might, for example, be programmed using languages such as Java, Objective C, C, C#, C++, Perl, and/or Xen according to methods known in the art. Corresponding program code might be placed on media such as, for example, DVD, CD-ROM, and/or floppy disk. It is noted that any described division of operations among particular software modules is for purposes of illustration, and that alternate divisions of operation may be employed. Accordingly, any operations discussed as being performed by one software module might instead be performed by a plurality of software modules. Similarly, any operations discussed as being performed by a plurality of modules might instead be performed by a single module. It is noted that operations disclosed as being performed by a particular computer might instead be performed by a plurality of computers. It is further noted that, in various embodiments, peer-to-peer and/or grid computing techniques may be employed.
Shown in
The processing unit CPU 503 comprises a microprocessor (not shown), memory 604 and possibly software. The software can be stored in the memory 604. The microprocessor controls, on the basis of the software, the operation of the terminal 6000, such as the receiving of the data stream, the tolerance of the impulse burst noise in the data reception, displaying output in the user interface and the reading of inputs received from the user interface. The operations are described above. The hardware contains circuitry for detecting the signal, circuitry for demodulation, circuitry for detecting the impulse, circuitry for blanking those samples of the symbol where significant amount of impulse noise is present, circuitry for calculating estimates, and circuitry for performing the corrections of the corrupted data.
Still referring to
Ramifications and Scope
Although the description above contains many specifics, these are merely provided to illustrate the invention and should not be construed as limitations of the invention's scope. Thus it will be apparent to those skilled in the art that various modifications and variations can be made in the system and processes of the present invention without departing from the spirit or scope of the invention.