Title of Invention

SYSTEMS AND METHODS FOR EFFICIENT ELECTRONIC COMMUNICATION IN A DISTRIBUTED ROUTING ENVIRONMENT

Abstract Abstract SYSTEMS AND METHODS FOR EFFICIENT ELECTRONIC COMMUNICATION IN A DISTRIBUTED ROUTING ENVIRONMENT A system for managing communications with a provider (102) is disclosed. A provider (102) includes a provider binding (112). A requestor (104a, 104b) requests requests a requested binding. An intervening access node (110) is in electronic communication with the provider (102) and the requestor (104a, 104b). The intervening access node (110) includes program instructions stored in memory and implementing a method for managing communications with a provider. The provider binding is received from the provider. The provider binding is stored. A request signal sent from the requestor specifies the requested binding. It is determined whether the requested binding is provided by the provider. The request signal is sent to the provider only if it is determined that the requested binding is provided by the provider.
Full Text

DESCRIFnON
SYSTEMS AND METHODS FOR EFFICIENT ELECTRONIC COMMUNICATION IN A DISTRIBUTED ROUTING ENVIRONMENT
TECHNICAL FIELD
The present invention relates generally to computers and computer-related technology. More specifically, the present invention relates to systems and methods for efficient electronic communication in a distributed routing environment
BACKGROUND ART
Computer and communication technologies continue to advance at a rapid pace.
Indeed, computer and communication technologies are involved in many aspects of a perscn's day. For exanple, many devices being used today by consumers have a small computer inside of the device. These small computers come in varying sizes and degrees of sophistication. These small computers include everything from one microcontroller to a fully-fiinctional complete computer- system. For example, these anall computers may be a one-chip computer, such as a micnocontrolla; a one-board type of computer, such as a controller, a typical desktop computer, such as an IBM-PC compatible, etc.
Computers typically have one or more processors at the heart of the computer. The processor(s) usually are interconnected to different external inputs and outputs and function to manage the particular computer or device. For example, a processor in a thermostat may be connected to buttons used to select the temperature setting, to the furnace or air conditioner to change the temperature, and to temperature sensors to read and display the current temperature on a display.
Many appliances, devices, etc., include one or more small computers. For example, thennostats, furnaces, air conditioning systems, refrigerators, telephones, typewriters, automobiles, vending machines, and many different types of industrial equipment now typically have small computers, or processors, inside of them. Computer software runs the processors of these computers and instmcts the processors how to carry out certain tasks. For exanple, the computer software running on a thennostat may cause an air conditioner to stop running when a

particular temperature is reached or may cause a heater to turn on when needed.
These types of small computers that are a part of a device, appliance, tool, etc., are
often referred to as embedded systems. The term "anbedded system" usually refers to computer
hardware and software that is part of a largeg system. Embedded systems may not have typical
! input and output devices such as a keyboard, mouse, and/or monitor. Usually, at the heart of
each embedded system is one or more processor(s).
A lighting system may incorporate an embedded system. The anbedded system may be used to monitor and control the effects of the lighting system. For example, the embedded system may provide controls to dim the brightness of the lights within the lighting system. Alternatively, the embedded system may provide controls to increase the brightness of the lights. The embedded system may provide controls to initiate a specific lighting pattern among the individual lights within the lighting systan. Embedded systems may be coupled to individual switches within the lighting system. These ahbedded systems may instmct the switches to power up or power down individual lights or the entire lighting system. Similariy, embedded systems may be coupled to individual lights within the lighting system. The brightness or power-state of each individual light may be controlled by the embedded systan.
A security system may also incorporate an embedded system. The embedded system may be used to control the individual security sensors that comprise the security system. For example, the embedded system may provide controls to power up each of the security sensors automatically. Embedded systems may be coupled to each of the individual security sensors. For example, an embedded systan may be coupled to a motion sensor. The embedded system may powa up the individual motion sensor automatically and provide controls to activate the motion sensor if motion is detected. Activating a motion sensor may include providing instractions to power up an LED located within the motion sensor, output an alarm fir>m the output ports of the motion sensor, and the like. Embedded systems may also be coupled to saisors monitoring a door. The embedded system may provide instructions to the sensor monitoring the door to activate when the door is opened or closed. Similarly, embedded systems may be col^5led to sensors monitoring a window. The embedded system may provide instructions to activate the sensor monitoring the window if the window is opened or closed.
Some embedded systems may also be used to control wireless products such as cell

phones. The embedded system may provide instructions to power up the LED display of the cell phone. The embedded system may also activate the audio speakers within the cell phone to provide the user with an audio notification relating to the cell phone.
Home appliances may also incorporate an embedded system. Home appliances may include appliances typically used in a conventional kitchen, e.g., stove, refiigerator, microwave, etc. Home appliances may also include appliances that relate to the health and welll-being of the usfer. For example, a massage recliner may incorporate an embedded system. The embedded system may provide instructions to automatically recline the back portion of the chair accotxling to the preferences of the user. The embedded system may also provide instructions to initiate the oscillating components within the chair that cause vibrations within the recliner according to the preferences of the user.
Additional products typically found in homes may also incorporate embedded systems. For example, an embedded system may be used within a toilet to control tthe level of water used to refill the container tank Embedded systems may be used within a jetted bathtub to control the outflow of air.
As stated, embedded systems may be used to monitor or control many different systems, resources, products, etc. With the growth of the Internet and the World Wide Web, embedded systems are increasingly connected to fee Internet so that they can be remotely monitored and/or controlled. Other embedded systems may be connected to computer networks including local area networks, wide area networks, etc.
Some anbedded systems may provide data and/or services to other computing devices using a computer network. Altemativdy there may be typical computes or computing devices that provide data and/or services to other cornputing devices tjsing a computer network. Sometimes the provider of the data and/or services may have a suboptimal connection to the computer network. In other situations there may be a great number of providers on the network. These situations, as well as other, may cause ineffciencies in communication across the network Benefits may be realized if systems and methods were provided to optimize electronic communication in computer networks.

DISCLOSURE OF INVENTION
A system for managing communications with a provider is disclosed. A provider includes a provider binding. A requestor requests a requested binding. An intervening access node is in electronic communication with the provider and the requestor. The intervening access node includes program instructions stored in memory and implementing a method for managing communications with a provider. The provider binding is received from the provider: The provider binding is stored A request signal sent from the requestor specifies the requested binding. It is determined whether die requested binding is provided by the provider by comparing an object of the provide binding with an object from the requested binding. Hie request signal is sent to the provider only if it is determined that the requested binding is provided by the provider. In some embodiments Ihe request signal may be acknowledged without sending the request signal to the provider.
In certain embodiments it may be determined that the provider is not an intervening access node. Thus, in certain embodiments the provider is not an intervening access node.
The intervening access node may also send the request signal to any other intervening access nodes. A plurality of intervening access nodes may also be included in the system. In this embodiment the method may send the request signal to the plurality of intervening access nodes.
The intervening access node may include a list of request signals received. In addition, the intervening access node may also include a list of providers that are not intervening access nodes. The intervening access node may have a list of bindings for the providers that are not intCTvening access nodes. The provider binding and the requested binding may each include an object and an interface.
The provider may be embodied in various forms. For example, the provider may be an embedded device that is part of a lighting control system. The provide may be an embedded device that is part of a security system. Additionally, the provider may be an embedded device that is part of a home control system.
A method for managing electronic communications between a requestor and a provider-is also disclosed. An intervening access node is in electronic communication with the provider and the requestor. The provider binding is received from the provider at the intervening access

node. The provider- binding is stored at the intervening access node. A request signal sent from the requestor specifies the requested binding. It is determined whether the requested binding is provided by the provider- by comparing an object of the provider binding with an object from the requested binding. The request signal is sent to the provider only if it is determined that the requested binding is provided by the provider.
A computing device that is configured to implement a method for managing electronic communications between a requestor and a provider is also disclosed. A processor is in electronic communication with memory. Instructions are stored in the memory and implementing a method. The provider binding is leceived from the provider at the computing device. The provida binding is stored on the computing device. A request signal sent from the requestor specifies the requested binding. It is detomined whether the requested binding is provided by the provida by comparing an object of the provider binding with an object from the requested binding. The request signal is sent to the provider only if it is determined that the requested binding is provided by the provida*.
A computer-readable medium compising executable instructions for implementing a method for managing electronic communications between a requestor and a provider is also disclosed. An intervening access node is in electronic communication with the provider and the requestor. The provider binding is received from the provida at the intervening access node. The provider binding is stored on the intervening access node. A request signal sent fiom the requestor specifies fee requested binding. It is determined whether the requested binding is provided by the provider by comparing an object of the provida" binding with an object fixim the requested binding. The request signal is sent to the provider only if it is deteraiined that the requested binding is provided by fee provider. In certain embodiments, ofea items may be stored including a list of request signals received, a list of providers feat are not intervening access nodes, and a list of bindings for fee providers feat are not intervaiing access nodes.
BRIEF DESCRIPTION OF THE DRAWINGS
Exemplary embodiments of fee invention will become more fiilly apparent fiom fee following description and appended claims, taken in conjunction wife fee accompanying drawings. Undastanding that feese drawings dqjict only exonplary embodiments and are.

therefore, not to be considered limiting of the invention's scope, the exemplary embodiments of the invention will be described with additional specificity and detail throug use of the accompanying drawings in which:
Figure 1 is a network block diagram illustrating two intervening access nodes in a computer netwok;
Figure 2 is a network block diagram illustrating several intervening access nodes in a computer network;
Figure 3 is a block diagram of a requestor sending out a request signal;
Figure 4 is a flow diagram illustrating a method for signal {xopagation by an intervening access node;
Figure S is a network blodc diagram illustrating providers connected through suboptimal links;
Figure 6 is a block diagram of an embodiment of an intervening access node;
Figure 7 is a flow diagram of an embodiment of a method of a provider connecting to a network;
Figure 8 is a flow diagram of an embodiment of a method of a requestor establishing a service communication liiJc with a provider;
Figure 9 is a flow diagram of an embodiment of a method of an intervening access node to determine if a request signal should be forwarded on to a particular provider,
Figure 10 is a flow diagram of another embodiment of a method of an intervening access node to detemiine if a request signal should be forwarded on to a particular provider,
Figure 11 is a block diagram of hardware components that may be used in an embodiment of an ranbedded device;
Figure 12 is a block diagram illustrating a lighting system that may utilize the systems and methods disclosed herein;
Figure 13 is a block diagram illustrating a security system that may utilize the systems and methods disclosed herein; and
Figure 14 is a block diagram illustrating a home system that may utilize the systems and methods disclosed herein.

BEST MODE FOR CARRYING OUT THE INVENTION
Various embodiments of the invention are now described with reference to the Figures, where like refernce numbers indicate identical or functionally similar elements. The embodiments of the present invention, as generally described and illustrated in the Figures herein, could be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of several exemplary onbodiments of the present invention, as represented in the Figures, is not intended to limit the scope of the invention, as claimed, but is merely representative of the embodiments of the invention.
The word "exemplary" is used exclusively herein to mean "saving as an example, instance, or illustiation" Any embodiment described herein as "exemplary" is not necessarily to be constmed as preferred or advantageous over other embodiments. While the various aspects of the embodiments are presented in drawings, the drawings are not necessarily drawn to scale unless specifically indicated.
Many features of die embodiments disclosed herein may be implemented as computer software, electronic hardware, or combinations ' of bodh. To deariy illustrate this interhangeability of hardware and software, various componoits will be described generally in terms of their functionality. Whether such functionahty is implemented as hardware or software depends \spoa the particular appIication and design constraints imposed on the overall system. Skilled artisans may implement the desaribed fiinctionality in varying ways for each particular application, but such implementation decisions should not be Lntetpreted as causing a dq>arture fix)m the scope of the present invention.
Where the described fiinctionality is implemented as computer software, such software may include any type of computer instruction or computer executable code located within a memory device and/or transmitted as electronic signals over a system bus or ndwork. Software that implements the fimctionality associated with components described herein may comprise a single instruction, or many instructiotis, and may be distributed over several diffaent code segments, among different programs, and across several memory devices.
Figure 1 is a network block diagram illustrating two intervening access nodes in the network 100. A provider 102 is in electronic communication with the network 100. The network embodiment 100 of Figure 1 includes two requestors 104 in electronic communication with the

networic 100. The intavening access nodes 106 are also on the network 100. There may be more nodes on the networic 100.
An intervening access node 106 is a netwo± node that provides features and services to the networic 100. An intervening access node 106 may be used in a variety of ways. For » example, an intervening access node 106 may be present on a network to provide services to computers, applications and/or objects on the networic 100. An intervening access node 106 may also be used to provide a protocol converter. An intervening access node 106 may be embedded or it 106 may be large enough to handle enterprise traffic.
One feature that an intervening access node 106 may include relates to object
I refinement Object refinemrait refers to the situation whae an intervening access node 106
places itself in place of an object and provides different implementations of the same intafeces.
This allows, among other things, for problems in the implementation of an interfece to be fixed
without changing the actual end provider of the interface.
An additional feature of an intervening access node 106 is that of object augmentation. i Object augmentation is where the intervening access node 106 adds new interfeces to an object that the aid provida does not support
In current design, the intervening access node 106 does not differentiate between clients and devices, so any savice added is available to any (authorized) connected entity or node.
The network as shown in Figure 1 may inherit many features of web services. Web ) services are accessed using web protocols, usually HTTP and SOAP. The architecture is based on the pea-to-pea paradigm of networking.
Multiple intervening access nodes 106 in communication with one anotha form an
intervening access node network 110. To requestors 104 and/or providers 102, the one or more
intervoiing access nodes 106 of the intervening access node network 110 appear as a single
! intervening access node 106. The size or numba included in the intervening access node
network 110 is transparent to providers 102 and/or requestors 104.
A provida 102 is a node on the network 100 that is the source of a service 108. A requestor 104 is a node on the network 100 that is the usa of the service 108. Arequestor 104 is a software entity implemented on a node that may directly discova a service 108 to control or ) interact with it

The service 108 may be any kind of savice Ihat may be provided by a computing device. Some possible examples of savices 108 include providing temperature data from a location, providing surveillance data, providing weather information, providing an audio stream, providing a video stream, etc. Many differait kinds of services and/or data may be provided over a compute netwo± 100 from a provider 102.
The service 108 is accessed through one or more bindings 112. A binding 112 includes an object identifier 114 and an into&ce identifier 116. Typically the object 114 and the interface 116 are in pairs. A provider can provide a plurality of bindings. It is possible that multiple providers can be providing the same service 108, binding 112, object 114 or interlace 116. Each binding 112 can be represented with a unique binding E) 118. The biiKiing ID 118 must be unique to the network 100.
The provider 102 may be an embedded provider. An embedded provider is a provider 102 being implemented on an embedded device. An embedded device is a type of computing device that does not inchide all the same components associated with a typical desktcp computo: For example, some embedded devices do not include monitors, others do not include a keyboard or a mouse, and some embedded devices do not include either a monitor or a keyboartl/mouse. Many onbedded devices are microcontroller-based devices, i.e., the central processor for the embedded device is a microcontroller.
The tenn "network" as used herein refers to a systan in which a series of rKDdes are interconnected by a communications path. A node is a physical computing device that communicates with oflier nodes. The specific behavior of a node is determined by the applications or software it executes, implications running on nodes of a network communicate with each other throu^ software modules that implement protocols, formalized rules for how data is sent over a network. Some protocols deal wife the timing, sequencing, and error checking of data transmission. Others deal more with how the data is formatted and the commands and responses that the nodes exchange. A set of protocols that work together is called a protocol stack, with each protocol acting as a layer in the stack that is built on top of another layar. The top layer of a protocol stack is used by an application, the middle layers deal with transferring groups (packets and fiames) of data between nodes, and the bottom layer deals directly with the networking hardware that ti^nsfers data.

Physical networks consist of nodes that are connected by some sort of physical medium (e.g., electrical wire, optical fiber, air). This physical connection may sometimes be refored to as a link. A physical network limited to two nodes may be referred to as point-to-point, while a physical network that may support more than two nodes may be referred to as multiple-access. Each node on a multiple-access netwo± has a physical address that is used to distinguish it from the other nodes on the network.
Logical networks may be superimposed onto physical networks to specify a unique group of nodes. Each node in a logical network has a logical address that is mapped by a protocol to the node's physical address. A sub-network, or subnet, is a physically or logically independent portion of a network, distinguished by a subnet number.
Most protocols deal with logical networks because most physical network issues already have many well-defined implementations and defining new physical layers is not required. Logical networks also have the benefit of being insulated from the physical network, and are therefore more generally useful. For example, TCP/IP is defined on top of a logical network (IP). IP can run on many physical networks (Ethernet, serial, wireless, etc.). This makes TCP/IP a more generic solution than had it been defined only in terms of some specific physical network.
Any number of intervening access nodes 106 may be used in a network 100. Figure 2 illustrates a netwo± 200 that includes a number of intervening access nodes 206 as shown. Three requestors 204, 205 are in electronic communication with the intavaiing access nodes 206. In the network embodiment 200 shown in Figure 2, the three requestors 204, 205 all request the services 208, 228, 248 being provided by the provido^ 202, 205, 206e. The data torn the services 208,228,248 is sent through the intervoiing access node network 210.
The intervening access node network 210 of Figure 2 operates similarly to the intervening access node network 110 of Figure 1. In typical operation, the requestors 104, 204, 205 and the providers 102,202,205,206e would not distinguish between the intervening access node network 110 of Figure 1 and the intervening access node network 210 of Figure 2. Figure 2 also iUustrates that a node may serve as both a requestor and a provider, as shown by the illustrated requestor/provider 205. This requestor/provido- 205 provides a service 228 and binding 232. Figure 2 also illustrates that a service/binding may be provided by an intervening

access node 206e.
As shown above, there may be many services and many bindings that are available on a network. It would be beneficial to allow these services to be "signaled" to provide a binding rather than always providing it Through the systems and methods disclosed herein, requests arc allowed to propagate through the network in an efficient manner, allowing for both loops in the connections and also allowing for a high number of disinterested providers (meaning providers that cannot provide additional services).
Hie intervening access nodes 106, 206 may be connected in an aibitraiy way, which includes loops. In Figures 1 and 2 requestors 104,204,205 and providers 102,202,205,206e were iUustrated. Requestors and providers may be separate nodes or may coexist on an intervening access rKide.
Referring now to Figure 3, when a particular binding 309 is desired by a requestor 304, a request signal 305 is sent throu^ the system. The signal 305 should readi all the intervening access nodes and should reach only the providers that may possibly be capable of providing the binding 309. The request signal 305 includes a signal ID 307 that uniquely identifies the signal and a binding 309 that identifies the binding that is being sought Because the syston of intervening access nodes may contain loops, each signal 305 is uniquely identified, in this way loopback can be detected. It may also be possible for an intermediate node to declare that it is not interested in recdving any signals.
Figure 4 is a flow diagram illustrating a method 400 for signal propagation by an intervening access node 106. A request signal 305 is received 402. Then it is determined 404 whether the request signal 305 is a duplicate by checking the unique identifier- 307 of die signal 305. If the signal is a duplicate, then the node acknowledges 406 the signal 305 immediately.
If the signal 305 is not a duplicate, then the signal is propagated 408 to all intervening access nodes that are connected to the present node except for the node that sent the present node the signal. Then the node waits 410 for ackruDwledgement fiom die connected nodes that it sent the signal to. When the acknowledgements are received and/or when a timeout is reached, an acknowledgement is sent 412 to the node that sent the present node the signal.
The method 400 as outlined in Figure 4 results in optimal behavior for intervening nodes 106 that may contain loops. Providers that are direcdy connected (coexist) on an

intermediate node can use the same logic with very low overhead.
A problem may exist in how to get the signal to certain providers that are not intervening nodes. Figure 5 is a block diagram illustrating a network 500 that may cause such issues. The provider nodes 502 that may present problems are typically small embedded devices that may be using a variety of methods to establish connections (like slow modem lines, for example). As shown, a requestor 504 is in electronic communication with a set of intavening access nodes 506a-c. One intervening access node 506b is connected to a single provider 502a throu^ a poor connection 507a (e.g., a slow modem, an inconsistent coimection, etc.). Anotho-intervening node 506c is connected to a great number of providers 502b-c by a gateway 503.
The intervening node 506c has a poor connection 507b wifli the gateway 503, which is exacabated by the number of providers 502b-c on the other side of the gateway 503. Because of the type of provider and/or type of connection it has, the logic above in Figure 4 (sending the signal and waiting for an acknowledgement) would result in poor behavior (slow speeds). A further problem may arise if there are a relatively large number of these difficult providas (devices) connected to the network at any time.
Some filtaing logic may be used to detemine which of the providers should be signaled. Further, the assumption can be made that these providers are not intemiediate nodes, so there is no possibility that they form part of a "loop". The system may assume that a provider is not on an intervening access node if it does not identiiy itself as an intervening access node or if the type of connection does not meet with certain criteria. This means that the unique identifier 307 of the signal 305 is unused by a non-intervening provider because it will not need to forward the signal to any other node. This also means that there is no need to wait for an acknowledgement from these non-intervening providers.
Based on the above logic, the intervening access node that is connected to a non-intervening provider can determine if the signal should be fonvarded by comparing the binding that is requested with the set of bindings that the non-intervening provider is providing. If the non-intervening provider may provide the binding that is being requested, the signal is sent on to that provida-. Otherwise the signal is not sent This determination is made by comparing the object portion of binding 309 and the object portions of each binding 112. Other ways to determine if the signal should be fonvarded may be based on configuration or other

information known by the intervening node.
Figure 6 is a block diagram of an embodiment of an intervening access node 606. The intervening access node 606 includes the infomiation necessary to enable it to determine whether a request signal 305 should be forwarded on to a provider 102. The intervening node 606 includes a list of the request signals received 608 so that it may determine whetho* it has already received the request or not A list of non-intervening providers 610 is also included so that the node 606 can identify the providers that are not intervening access nodes that it is connected to. A list of bindings 612 for the non-intervening providers is also included. The into-vening rxxle 606 may use this list to determine whether a request signal should be forwarded on to one or mcae non-iatervening providers. The intervening access node 606 may also include a database of bindings 614 that includes all of the bindings on the network which it is aware of
figure 7 is a flow diagram of an embodiment of a method 700 of a provider 102 connecting to a network 100. The provider 102 connects 702 to the network 100. then the provider 102 advertises 704 its bindings to the intervening access rxxle 106 in the network 100. When the provider 102 advertises 704 its bindings, its advertisements are received by the intervening access nodes 106 on the network 100. The intervening access rnodes 106 than stores 706 this information. At this time the intervening access nodes 106 also store whether tbe provider is a non-intervening provider. The new provider advertisement that is communicated to one or more nodes may be referred to as an availability notification.
One or more intervening access iKxles 106 may be configured to serve as a directory. A directory is a node that provides information to otho- nodes regarding availability of providers and how to communicate with such providCTS. Any intervening access nodes 106 serving as directories would store the provider 102 information in tiie directory.
lbs roles of requestor and provider can be taken on by devices and software nodes connected to mtervening access nodes 106. In addition, an intervening access node 106 may be a requestor and/or a provider. For example, the intervening access node 106 may be a requestor/provider when setting vp the communication between intervening access nodes 106. An intervening access node 106 serves as a requestor when it 106 requests information about providers when it 106 connects to another interening access node 106. An intervening access

node 106 serves as provider when it is providing information about other providers to other intervening access nodes 106.
Figure 8 is a flow diagram of an embodiment of a method 800 of a requestor 104 establishing a service communication link with a network 100. The requestor 104 connects 802 to the network 100. Then the requestor 104 may request 804 a list of bindings from the intervening access node(s) 106. Using the list of bindings, the requestor is able to determine what service it needs and it requests 806 the service 108 from a provider 102 by sending a signal 305 including a provider binding 112. The intervening access node network 110, 210 communicates 808 the request from the requestor 104 to the provider 102. The provider 102 then begins providing 810 the service(s) requested.
Figure 9 is a flow diagram of an embodiment of a method 900 of an intavening access node to determine if a request signal should be forwarded on to a particular provider. A request signal 305 is received 902 by the access node. The access node then forwards 904 this signal on to any other intervening access nodes. For any non-intervening providas, the access node then detennines 906 whether the binding being requested could be provided by the non-intervening providers. The access node may make this deteimination by examining its non-intervening provides 610 and the bindings 612 from the non-intervening providers to determine whether the binding being requested could be provided by the non-intovening providers. If the non-intervening provider could provide the binding that is being requested, the signal is sait 908 on to dvat provider. Otherwise the signal is not sent 910.
Figure 10 is a flow diagram of anolho" embodiment of a method 1000 of an intervening access node to determine if a request signal should be forwarded on to a particular provider. A provider 102 connects 1002 to the networic Then the provider advertises 1004 its bindings 112 to the intavening access node in the network. When the provider advertises 1004 its bindings, its advertisements are received by the intervening access nodes on the network. The intavening access node then stores 1006 this information. At this time the intervening access nodes also detennines 1008 or assumes that the provido" is a non-intervening provider based on its quality of network connection considering such factors as whether the connection is persistent, the speed of the networic connection, the response time from the provider and the capabilities of the provider.

A request signal is received 1010 by the intervening access node. The intervening access node then forwards 1012 this signal on to any otho- intervening access nodes. The intervaiing access node then determines 1014 whether it has any non-intervening access node providers that it is directly connected to. For any non-inteavening providers, the intervening access node then detemiines 1016 whether the binding being requested could be provided by the non-intovening providers. The intervening access node may make this detertnination by examining its non-intervoiing providers 610 and the bindings 612 from the non-intervening providers to determine whether the binding being requested could be provided by the non-intervening provides. If the non-intervening provider could provide the binding that is being requested, the signal is sent 1018 on to that provider. Otherwise &e signal is not sent on to that non-intervoiing provider.
Figure 11 is a block diagram of hardware conq)onents that may be used in an onbodimait of an embedded device \^ch may be used as eiflier an embedded provider or as an embedded requestor
A CPU 1110 or processor may be provided to control the operation of the embedded device 1102, including the othar conponenls thereof which are coiq)led to the CPU 1110 via a bus 1112. The CPU 1110 may be embodied as a microprocessor, microcontroller, digital signal processor or other device known in the art The CPU 1110 perfom;is logical and arithmetic operations based CHI program code stored within die memory 1114. In certain embodiments, the memory 1114 may be on-board memory included with the CPU 1110. For example, microcontrollers oftm include a certain amount of on-board memory.
The embedded device 1102 may also include a network interfece 1116. The network intfffece 1116 facilitates communication betweaa the embedded device 1102 and otho" devices connected to the network 100. The network 100 may be a pager network, a cellular n^work, a global communications network, the Internet, a computer network, a telephone network, etc. The network intaface 1116 operatK according to standard protocols for the applicable network 100.
The embedded device 1102 may also include memory 1114. The memory 1114 may include a random access memory (RAM) for storing temporary data. Alternatively, or in addition, the manory 1114 may include a read-only memory (ROM) for storing more

permanent data, such as fixed code and configuration data. The memory 1114 may also be embodied as a magnetic storage device, such as a hard disk drive. The memory 1114 may be any type of electronic device capable of storing electronic informatioa
The embedded device 1102 may also include communication ports 1118, which facilitate communication with other devices. The embedded device 1102 may also include input/output devices 1120, such as a keyboard, a mouse, a joystick, a touchscreen, a monitor, sp>eakeTS, a printer, etc.
The present systems and methods may be used in several contexts. Figure 12 illustrates one anbodimoit of a system wherein the present systems and methods may be implemented. Figure 12 is a block diagram that illustrates one embodiment of a lifting system 12(K) that includes a lifting controller system 1208. The lighting systan 1200 of Figure 12 may be incorporated in various moms in a home. As illustrated, the system 1200 includes a room A 1202, a room B 1204, and a room C 1206. Although three rooms are shown in Figure 12, tiie systan 1200 may be implemented in any number and variety of rooms within a home, dwelling, or other environment
The ligjiting controller system 1208 may monitor and control additional embedded systems and components within the system 12(X). In one embodiment, the room A1202 and tfie room B 1204 each mclude a switch component 1214,1218. The switch conponents 1214,1218 may also include a secondary embedded system 1216,1220. The secondary embedded systems 1216, 1220 may receive instructions from the lighting controller system 1208. The secondary embedded systems 1216, 1220 may then execute these instructions. The instructions may include powering on or powering off various light components 1210, 1212, 1222, and 1224. The instructions may also include dimming the brightness or increasing the brightness of the various light components 1210, 1212, 1222, and 1224. The instmctions may farther include arranging the brightness of the light components 1210,1212,1222, and 1224 in various pattans. The secondary embedded systems 1216, 1220 facilitate the lighting controller system 1208 to monitor and control each light component 1210, 1212, 1222, and 1224 located in the room A 1202 and the room B 1204.
The lighting controller system 1208 might also provide instructions directly to a light component 1226 that includes a secondary embedded system 1228 in the dqjicted room C 1206.

The lighting controller system 1208 may instruct the secondary embedded system 1228 to power down or power up the individual light component 1226. Similarly, the instructions received fix)m the lighting controller system 1208 may include dimming the brightness or increasing fhe brightness of the individual light component 1226.
The lighting controllo' system 1208 may also monitor and provide mstnictions direcdy to individual light components 1230 and 1232 within the system 1200. These instracdons may include similar instructions as described previously.
Figure 13 is an additional embodiment of a system wherein the present systems and methods of the present invention may be implemoited. Figure 13 is a block diagram illustrating a security system 1300. The security system 1300 in the depicted embodiment is implemented in a room A1302, a room B 1304,andaroomC 1306. Tliese rooms may be in the confines of a home or other enclosed environment The system 1300 may also be implemented in an open environment where the rooms A, B and C, 1302, 1304, and 1306 respectivdy represait tenitories or boundaries.
The system 1300 includes a security controller system 1308. The security controller systan 1308 monitors aad receives infonnation fix)m the various components within the system 1300. For example, a motion sensor 1314, 1318 may include a secondary embedded system 1316, 1320. The motion sensors 1314, 1318 may monitor an immediate space for motion and alert the security controller system 1308 when motion is detected via the secondary embedded system 1316, 1320. The security controller system 1308 may also provide instractions to the various compcMients within the systan 1300. For example, the security controller system 1308 may provide instructions to the secondary embedded systems 1316,1320 to power up or power down a window sensor 1310, 1322 and a door sensor 1312, 1324. In one embodiment, the secondary embedded systrans 1316, 1320 notify the security controller system 1308 when the window sensors 1310,1322 detea movanent of a window. Similariy, the secondary embedded systems 1316, 1320 notify the security controller system 1308 when the door sensors 1312, 1324 detect movement of a door. The secondary embedded systems 1316, 1320 may instract the motion sensors 1314, 1318 to activate the LED (not shown) located within the motion sensors 1314,1318.
The security controller system 1308 may also monitor and provide instructions directly

to individual components within the system 1300. For example, the security controller system 1308 may monitor and provide instructions to power up or power down to a motion saisor 1330 or a window sensor 1332. The security controller system 1308 may also instwct the motion sensor 1330 and the window sensor 1332 to activate the LED (not shown) or audio alert notifications within the sensors 1330 and 1332.
Each individual component comprising the system 1300 may also include a secondary embedded system. For example, Figure 13 illustrates a door sensor 1326 including a secondary embedded system 1328. The security controller system 1308 may monitor and provide instructions to fee secondary embedded system 1328 in a similar manner as previously described.
Figure 14 is a block diagram illustrating one onbodiment of a hrane systan 1400. The home system 1400 includes a home controller 1408 that fecilitates the monitoring of various systems such as the lighting system 1200, the security system 1300, and the like. The home system 1400 allows a user to control various components and systems throu^ one or more embedded systems. In one embodiment, the home controller system 1408 monitors and provides information in the same manner as previously desoibed in relation to Figures 12 and 13. In the depicted embodiment, the home controller 1408 provides instmctions to a heating con^nent 1424 via a secondary anbedded system 1420. The heating component 1424 may include a fiimace or other heating device typically found in resident locations or offices. The home controller system 1408 may provide instructions to powo- up or power down the heating component 1424 via the secondary embedded system 1420.
Similariy, the home contiollCT 1408 may monitor and provide instructions directly to a component within the home system 1400 such as a cooling component 1430. The cooling component 1430 may include an air conditioner or other cooling device typically found in resident locations or oflHces. TTie central home controller 1408 may instract the cooling component 1430 to pwwer up or power down depending on the temperature reading collected by the central embedded system 1408. The home system 1400 functions in a similar manner as previously described in relation to Figures 12 and 13.
There are many types of embedded devices and many reasons for creating device networks. Several examples of device networking applications will be set forth. It will be

appreciated by those skilled in the ait that the examples discussed are not exhaustive.
One example of a device nrtworidng application is remote monitoring. Many usefiil device networlcs involve remote monitoring, the one-way transfer of infomiation fiom one node to anotho: In these ^plications, providos typically act as small servers that rq>ort certain information in response to a requestor. Providers can also be set up to publish their state information to subscribers. A requestor may ask for periodic reports or for iqxlates whenever flie state changes, perhaps with some means of limiting how often updates are to be sent E^viders can be set up to notify requestors when some event or exceptional condition occurs.
Another example of a device netwoik aj^lication is remote control, where requestors are able to send commands to provides to invoke some specific action. In most cases, remote control involves some sort of feedback.
A still flirlher exan^le of a device netwoiidng ^iplication is distributed control systems. The functions and data associated with individual providos can be combined and coordinated through a network to create a distributed system that provides additional vahie. Sometimes these distributed control systons can be established more or less automatically. In many cases, a more sophisticated device joins a peer-to-peer network to perform configuration, moiutoring or diagnostic duties. Such systems may be created by objects diat communicate as peas or through a masto-'Slave configuration, in which each object in the system communicates with a angle, central node diat contains all of the control logic.
With each category of networidng application, there are a variety of ways in which requestors may connect to providers. Whoi a relatively small number of providers are involved, a requestor may use a web browser, pager or even a WAP-enabled cell phone to communicate with a provider in a more or less interactive manner. As the numbo" of providos grows, however, these methods may become unworicable and requestors may employ more goieral data management techniques such as a spreadsheet or database applicatioa
As a variety of networks are implemented over time and with different tedhnologies, the situation can arise in which multiple networks might sit in the same home or fedlity, each using their own protocols and unable to communicate with the others. In this case the various networks and protocols can be bridged to create a siogle, larger network. This can allow a sin^e ^plication to access each provider, sin^Iifying the interaction with all of the providers.

Information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, infonnation, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the anbodiments disclosed herein may be implemented as electronic hardware, compute software, or combinations of both. To cleariy illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and stqjs have been described above goiCTally in temis of their fimctionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described fiinctionlity in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
The various illustrative logical blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array signal (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the fiinctions described herein A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controUer, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuratioa
The stq)s of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a

removable disk, a CD-ROM, or any other fonn of storage medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read infomiation from, and write information to, the storage medium. In the alternative, the storage medium may be integral to processor'The processor and the storage medium may reside in an ASIC. The ASIC may reside in a user teminal. In fee ahemative, die processor and die storage medium may reside as discrete conponents in a user temiinal.
The methods disclosed herein comprise one or more steps or actions for achieving the described method. The method steps and/or actions may be interchanged with one another without daparting from the scope of the present invention. In other words, unless a specific order of steps or actions is required for proper operation of the embodiment, the order and/or use of specific steps and/or actions may be modified without depating from the scope of the present inventioa
While specific embodiments and applications of the present invention have been illustrated and desaibed, it is to be understood that fee invention is not limited to fee precise configuration and components disclosed herein. Various modifications, changes, and variations which will be apparent to feose skilled in fee art may be made in fee arrangement, operation, and details of the mefeods and systems of the present invention disclosed herein without dq)arting fix>m fee ^irit and scope of fee invention.
IM)USTRIAL APPLICABILITY
The present invention is aj^cable to an embedded system.


75CLAIMS
1. A system for managing communications with a provider, the system comprising:
a provider that provides a provider binding;
a requestor that has requested a requested bindmg;
an intervening access node in electronic communication with the provider and the requestor,
wherein the intervening access node comprises program instructions stored in memory
and implementing a method comprising:
I receiving the provider binding from the provider,
storing the provider binding;
receiving a request signal sent from the requestor that specifies the requested binding;
determining whether the requested binding is provided by the provider,
wherein the determining is achieved by comparing an object of the provider binding with an object from the requested binding; and sending the rec[uest signal to the provider only if it is determined that the requested binding is provided by the provider.
2. The system as defined in claim 1, wherein the provide is not an intervening access node.
3. The system as defined in claim 1, wherein the method implemented by the intervening access node further comprises determining that the provider is not an intervening access node.
4. The system as defined in claim 1, wherein the provider binding and the requested binding each comprise an object and an interface.
5. The system as defined in claim 4, wherein the system further comprises a plurality of intervening access nodes, and wherein the method further- comprises sending the request signal to the plurality of intervening access nodes.

6. The system as defined in claim 1, wherein the method implenented by the intervening access node further comprises sending the request signal to any other intervening access nodes.
7. The system as defined in claim 1, wherein the method implemented by the intervening access node further comprises acknowledging the request signal without sending the request signal to the provider.
S. The system as defined in claim 1, wherein the intervening access node further
comprises a list of request signals received.
9. The system as defined in claim 8, wherein the intervening access node fiirther comprises a list of providers that are not intervening access nodes.
10. The system as defined in claim 9, wherein the intervening access node fiirther comprises a list of bindings for the providers that are not intervening access nodes.
11. The system as defined in claim 1, wherein the provider is an embedded device that is part of a lighting control system.
12. The system as defined in claim 1, wherein the provider is an embedded device that is part of a security system.
13. The system as defined in claim 1, wherein the provider is an embedded device that is part of a home control system.
14. A method for managing electronic communications between a requestor and a provider, the method comprising:
providing an intervening access node in electronic communication with a provider and a requestor,
receiving a provider binding fiom the provider at the intervening access node;

storing the provider binding on the intervening access node;
receiving a request signal sent from the requestor that specifies a requested binding;
determining whether the requested binding is provided by the provider, wherein the determining is achieved by comparing an object of the provider binding with an object from the requested binding; and
sending the request signal to the provider only if it is determined that the requested binding is provided by the provider.
15. The method as defined in claim 14, fiirtber comprising determining that the provider is not an intervening access node.
16. The method as defined in claim 15, further comprising sending the request signal to any other intervening access nodes.
17. The method as defined in claim 16, further comprising accessing a list of bindings for providers that are not intervening access nodes.
18. A computing device that is configured to implement a method for managing electronic communications between a requestor and a provider, the computing device comprising:
a processor;
memory in electronic communication with the processor,
instructions stored in the memory, the instructions being executable to implement a method comprising:
receiving a provider binding fijom a provider at the computing device;
storing the provider binding on the computing device;
receiving a request signal sent from a requestor that specifies a requested binding;
determining whether the requested binding is provided by the provi der,
wherein the determining is achieved by comparing an object of the provider binding with an object fiom the requested binding; and sending the request signal to the provider only if it is determined that the requested binding is provided by the provider.

19. A computer-readable medium comprising executable instructions for implementing a
method for managing electronic communications between a requestor and a provido; the
method comprising:
providing an intervening access node in electronic communication with a provider and a requestor,
receiving a provider binding from the provider at the intervening access node;
storing the provider binding on the intervening access node;
receiving a request signal sent from the requestor that specifies a requested binding;
determining whether the requested binding is provided by the provider,
wherein the determining is achieved by comparing an object of the provide binding with an object from the requested binding, and sending the request signal to the provider only if it is detennined that the requested binding is provided by the provider.
20. The computer-readable medium of claim 19, wherein the method further comprises:
stoiing a list of request signals received;
storing a list of providers that are not intovening access nodes; and
storing a list of bindings for the providers that are not intervening access nodes.


Documents:

2752-CHENP-2008 AMENDED PAGES OF SPECIFICATION 29-04-2013.pdf

2752-CHENP-2008 AMENDED CLAIMS 29-04-2013.pdf

2752-CHENP-2008 CORRESPONDENCE OTHERS 13-02-2013.pdf

2752-CHENP-2008 EXAMINATION REPORT REPLY RECEIVED 06-12-2013.pdf

2752-CHENP-2008 EXAMINATION REPORT REPLY RECEIVED 29-04-2013.pdf

2752-CHENP-2008 FORM-1 29-04-2013.pdf

2752-CHENP-2008 FORM-13 30-01-2009.pdf

2752-CHENP-2008 FORM-3 06-12-2013.pdf

2752-CHENP-2008 FORM-3 29-04-2013.pdf

2752-CHENP-2008 OTHER PATENT DOCUMENT 29-04-2013.pdf

2752-CHENP-2008 PRIORITY DOCUMENT 29-04-2013.pdf

2752-CHENP-2008 AMENDED CLAIMS 06-12-2013.pdf

2752-CHENP-2008 CORRESPONDENCE OTHERS 04-05-2012.pdf

2752-chenp-2008 drawings.pdf

2752-CHENP-2008 ENGLISH TRANSLATION 04-05-2012.pdf

2752-CHENP-2008 FORM-6 04-05-2012.pdf

2752-CHENP-2008 POWER OF ATTORNEY 29-04-2013.pdf

2752-CHENP-2008 POWER OF ATTORNEY 04-05-2012.pdf

2752-chenp-2008 abstract.pdf

2752-chenp-2008 claims.pdf

2752-chenp-2008 correspondece-others.pdf

2752-chenp-2008 description complete.pdf

2752-chenp-2008 form-1.pdf

2752-chenp-2008 form-18.pdf

2752-chenp-2008 form-3.pdf

2752-chenp-2008 form-5.pdf

2752-chenp-2008 pct.pdf


Patent Number 258171
Indian Patent Application Number 2752/CHENP/2008
PG Journal Number 50/2013
Publication Date 13-Dec-2013
Grant Date 12-Dec-2013
Date of Filing 02-Jun-2008
Name of Patentee PANASONIC CORPORATION
Applicant Address 1048, OAZA-KADOMA, KADOMA-SHI, OSAKA, JAPAN
Inventors:
# Inventor's Name Inventor's Address
1 EASTHAM, BRYANT C/O MATSUSHITA ELECTRIC WORKS, LTD., INTELLECTUAL PROPERTY DEPARTMENT, 1048, OAZA-KADOMA, KADOMA-SHI, OSAKA, JAPAN
2 MILLIGAN, THOMAS C/O MATSUSHITA ELECTRIC WORKS, LTD., INTELLECTUAL PROPERTY DEPARTMENT, 1048, OAZA-KADOMA, KADOMA-SHI, OSAKA, JAPAN
PCT International Classification Number H04L29/08
PCT International Application Number PCT/JP05/24275
PCT International Filing date 2005-12-28
PCT Conventions:
# PCT Application Number Date of Convention Priority Country
1 11/292,944 2005-12-02 U.S.A.