Distributed computing is a field of study that has received increased attention and study in recent years, as network interconnectivity, from wired to wireless, of computing devices and objects continues to mature and computing devices and objects of all kinds continue to proliferate. To this end, a variety of protocols can be used to enable computing devices and objects of all sorts to communicate with one another in a manner that is independent of the particularities of the source and target computing devices.
Examples of such protocols that have been developed include Simple Control Protocol (SCP), x10, and CEBus®. SCP, for instance, is a lightweight device-control protocol that allows manufacturers to create small, intelligent devices that can communicate with each other in a secure and robust manner over low-speed communication networks such as household power lines. With SCP, devices with limited computing power and memory resources—such as light switches, alarm clocks, and appliances—can be part of a peer-to-peer network of other SCP devices. Devices in an SCP network can also participate in more sophisticated Universal Plug and Play (UPnP) networks through a software component called a UPnP to SCP bridge.
The following examples describe some typical scenarios that SCP and other protocols can make possible. Automated lights and light switches can be enabled using SCP such that light switches and fixtures can be controlled from a PC. A homeowner can change “which switches control which lights” without needing to call an electrician to rewire the physical circuits. Interactions among small appliances can also be enabled using SCP. For instance, an alarm clock can automatically start a coffee maker. Interactions among SCP and UPnP devices can also be enabled using SCP. For instance, a homeowner can place a tape in a UPnP-capable VCR and press “Play.” The VCR then sends a UPnP event to a rules engine, which places the room into a home theater mode. The rules engine then turns the UPnP TV on and connects it to the VCR audio and video outputs. Then, through an SCP to UPnP bridge, the engine tells the SCP room lights to dim and closes the SCP blinds.
One can thus readily see that SCP, and other protocols like SCP, are powerful vehicles for communication across a variety of computing devices. One can also appreciate that a variety of scenarios are possible with SCP, when one considers the possibility of any computing device or object being able to communicate simply and easily with any other computing device or object.
However, the above-described scenarios presume ideal, or near ideal, network conditions, and in contrast, often the actual physical medium utilized for communications in a logical network is not ideal. For instance, in the case of power line communications, data is not always guaranteed to arrive at its destination, or when it does, there may be some interference along the way that distorts the data or renders it unrecognizable. Similarly, on the reception side of data communications, interference can also be of impact. Moreover, various nodes may become disconnected from the network at widely variant rates, and thus, optimal presence assertion refresh or timeout rates of a first node may be widely different than optimal presence assertion refresh or timeout rates of a second node on the same logical network. For instance, plug-in devices such as a table lamp may have different network behavior characteristics from built-in devices, such as a furnace.
Accordingly, it would be desirable to minimize the number of failed messaging communications by keeping a current list of nodes in the logical network that are present and capable of receiving communications. It would be desirable, for instance, to skip messaging communications for nodes that are absent, and to prioritize messages based upon recency of presence and other assumption(s) or rule(s), which make messages more or less likely to arrive in a robust fashion. In connection with such logical network(s), therefore, it would be desirable to provide presence tracking across logical network(s) for dynamic tuning of the logical network(s) according to messaging conditions, and rates of nodes appearing in or vanishing from the network. It would be further desirable to provide an improved optimization of presence tracking variables across the logical network for lower bandwidth conditions.