A network of connected devices typically communicates information through links established among each other. In some instances, links between devices and/or devices themselves may fail, which prevents some or all devices in the network from communicating information with each other and typically results in the loss of information. In data-sensitive applications, the loss of data is undesirable.
Accordingly, a need has arisen to create a network that is configured with redundant links in order to maintain communication among devices in the event of a link and/or device failure. For example, there is a need to create a network of redundant links coupling each device to some or all other devices in the network so that the devices maintain communication among the devices through some or all of the redundant links and/or some or all of the remaining primary links.
In some embodiments, a system includes a plurality of devices in a network configured for communicating data through primary links coupling devices of the plurality of devices and a designated device configured to receive device data from the plurality of devices. The designated device may be further configured to identify a set of devices from the plurality of devices that is operable to establish redundant links in the network. The designated device may be further configured to determine configuration data for each device in the set of devices. The designated device may be further configured to send the configuration data to the set of devices. The configuration data may be operable to establish redundant links for devices in the set of devices in case of a primary link failure.
In some embodiments, the designated device may be further configured to update the set of devices and the associated configuration data in response to a change to the network. It is appreciated that the change may be an addition of a device to the network or a removal of a device from the network.
In some embodiments, the primary link failure may cause the set of devices to establish the redundant links for the devices in the set of devices according to the determined configuration data. It is appreciated that the device data may include device identification, communication capabilities of devices in the plurality of devices, and geolocation of devices in the plurality of devices. It is appreciated that the redundant links may be arranged according to a mesh topology.
In some embodiments, a system includes a plurality of devices forming a communication network and a first device of the plurality of devices coupled to a second device of the plurality of device. Devices of the plurality of devices may be networked via their respective primary link. The first device and the second device may be configured to establish a redundant link coupling the first device to the second device to maintain communication between the first device and the second device in presence of a failure associated with communication through the primary link coupling the first device to the second device.
In some embodiments, the system may further include a designated device configured to determine configuration data for the first and second devices and to send the configuration data to the first and second devices to establish the redundant link responsive to the failure associated with communication through the primary link coupling the first device to the second device. It is appreciated that the first and second devices may be further configured to share device data with each other to determine configuration data associated therewith to establish the redundant link responsive to the failure associated with communication through the primary link coupling the first device to the second device. It is appreciated that the device data may include device identification, communication capabilities of the first and second devices, and geolocation of the first and second devices.
In some embodiments, the system may further include a third device that is added to the communication network. It is appreciated that the third device may be configured to communicate device data associated therewith with the first device through a primary link of the third device. It is appreciated that the third device may be configured to communicate device data associated therewith with the first device through a redundant link of the third device.
In some embodiments, the system may further include a third device in communication with the first and the second devices. The first device, the second device, and the third device may form a set of devices. It is appreciated that remaining devices of the formed set of devices maintain communication when one device in the set of devices is removed.
In some embodiments, the first device includes a first communication interface of a first type and a second communication interface of a second type, and the second device includes a first communication interface of the first type and a second communication interface of the second type. The first and second devices may communicate through the primary link via their respective first communication interface. The first and second devices may communicate through the redundant link via their respective second communication interface. It is appreciated that the first type may be based on a wired link and the second type may be based on a wireless link.
In some embodiments, a system includes a first device that includes a first communicating interface and a second communicating interface and a second device that includes a first communicating interface and a second communicating interface. The first communicating interface of the second device may be coupled to the first communicating interface of the first device via a primary link. The first device and the second device may be configured to communicate respective device data associated therewith with one another. The respective device data associated therewith may be used by the first device and by the second device to configure communication between the first device and the second device through their respective second communicating interface via a redundant link in response to a failure associated with communication via the primary link.
It is appreciated that the respective device data associated with the first and second devices may be shared between the first and second devices through a broadcast protocol. In some embodiments, the first communication interfaces of the first and second devices may be of a first type and the second communication interfaces of the first and second devices may be of a second type. It is appreciated that the first type may be based on a wired link and wherein the second type may be based on a wireless link. It is appreciated that the second type may be a radio frequency (RF) interface. It is appreciated that the second type may be a Bluetooth interface. It is appreciated that the respective device data may be communicated through an extension of a link layer discovery protocol (LLDP).
These and various other features and advantages will be apparent from a reading of the following detailed description.
The embodiments are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements.
Reference will now be made in detail to various embodiments, examples of which are illustrated in the accompanying drawings. While various embodiments are described herein, it will be understood that these various embodiments are not intended to limit the scope of the embodiments. On the contrary, the embodiments are intended to cover alternatives, modifications, and equivalents, which may be included within the scope of the embodiments as construed according to the appended Claims. Furthermore, in the following detailed description of various embodiments, numerous specific details are set forth in order to provide a thorough understanding of the concept. However, it will be evident to one of ordinary skill in the art that the concept may be practiced without these specific details. In other instances, well known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the concept and embodiments.
Some portions of the detailed descriptions that follow are presented in terms of procedures, logic blocks, processing, and other symbolic representations of operations on data bits within a computer memory. These descriptions and representations are the means used by those skilled in the data processing arts and data communication arts to most effectively convey the substance of their work to others skilled in the art. In the present application, a procedure, logic block, process, or the like, is conceived to be a self-consistent sequence of operations or steps or instructions leading to a desired result. The operations or steps are those utilizing physical manipulations of physical quantities. Usually, although not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system or computing device. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as transactions, bits, values, elements, symbols, characters, samples, pixels, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present disclosure, discussions utilizing terms such as “identifying,” “creating,” “generating,” “storing,” “retrieving,” “determining,” “sending,” “receiving,” “transmitting,” “communicating,” “providing,” “accessing,” “associating,” “disabling,” “enabling,” “configuring,” “initiating,” “starting,” “terminating,” “ending,” “configuring,” “forming,” “grouping,” “updating” or the like, refer to actions and processes of a computer system or similar electronic computing device or processor. The computer system or similar electronic computing device manipulates and transforms data represented as physical (electronic) quantities within the computer system memories, registers or other such information storage, transmission or display devices.
It is appreciated that present systems and methods can be implemented in a variety of architectures and configurations. For example, present systems and methods can be implemented as part of a distributed computing environment, a cloud computing environment, a client server environment, etc. Embodiments described herein may be discussed in the general context of computer-executable instructions residing on some form of computer-readable storage medium, such as program modules, executed by one or more computers, computing devices, or other devices. By way of example, and not limitation, computer-readable storage media may comprise computer storage media and communication media. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types. The functionality of the program modules may be combined or distributed as desired in various embodiments.
Computer storage media can include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. Computer storage media can include, but is not limited to, random access memory (RAM), read only memory (ROM), electrically erasable programmable ROM (EEPROM), flash memory, or other memory technology, compact disk ROM (CD-ROM), digital versatile disks (DVDs) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and that can be accessed to retrieve that information.
Communication media can embody computer-executable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media can include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared and other wireless media. Combinations of any of the above can also be included within the scope of computer-readable storage media.
Embodiments described herein are directed to networks of devices that are configured to establish redundant links among the devices upon failure of a primary link and/or device. In one exemplary embodiment, each device in the network establishes a redundant link with every other device in the network. This way, when one or more primary links coupling the devices fails, the devices may utilize some or all of the redundant and primary links to continue communicating information to each other.
In some embodiments, a subset of the devices in the network may be configured to establish redundant links with each other. Moreover, different sets of devices in the network may use different methods and/or technologies to establish redundant links with each other in different embodiments. For example, one set of devices in the network may use one method and/or technology (e.g., Bluetooth) to establish redundant links while another, different set of devices in the network may use another, different method and/or technology (e.g., Zigbee) to establish redundant links. In some such embodiments, one or more devices may belong to the different sets of devices. This way, the capabilities of devices may be fully utilized to establish redundant links in the network.
In some embodiments, a device is designated to handle the determination of device configurations in order for the devices to establish redundant links with one another. Accordingly, the designated device may be configured to receive, from the devices in the network, device data. It is appreciated that device data, in some embodiments, may be data related to the devices' capabilities to establish redundant links (e.g., whether the device has an alternate way of communicating such as Bluetooth, Zigbee, Wi-Fi, Ethernet, Z-Wave, etc.). Based on the devices' data, the designated device determines configurations for each of the devices and sends the configurations to the respective devices. The devices with multi communication capabilities (e.g., Ethernet and Bluetooth capabilities) then establish redundant links according to the configurations received from the designated device when a link and/or device failure occurs. In some embodiments, the designated device is one of the devices among the connected devices in the network while, in other embodiments, the designated device is a device dedicated to perform such functions and does not belong to the connected devices in the network.
In some embodiments, a device in the network may share its device capabilities with all other devices in the network, some devices in the network, or none of the devices in the network. Moreover, different devices may share its device capabilities with the same or different devices in the network. A device may use any number of different methodologies to share its device capabilities in some embodiments. For instance, a device may share its device capabilities with another device directly, indirectly through one or more intervening devices, and/or through a discovery, announcement, multicast, and/or broadcast protocol of a technology (e.g., Bluetooth, a link layer discovery protocol (LLDP)).
Based on device capabilities received from devices in the network, a device in the network may determine its own configuration for establishing redundant links with other devices in case of a primary link failure, in some embodiments. In this manner, a single device is not responsible for configuring the devices to establish redundant links. That is, such functionality is decentralized/distributed among the devices.
Different embodiments use different methods and/or technologies for implementing primary links 111, 112, and 113 that couple devices 110, 120, 130, and 140. For instance, devices 110, 120, 130, and 140 each have an Ethernet interface and primary links 111, 112, and 113 may be implemented via Ethernet technologies in some embodiments.
It is appreciated that the devices described herein may be any type of device capable of being networked together (e.g., a sensor, an image capture device, a mobile device, a computer, a switch, a router, a hub, a bridge, etc.). In some embodiments, devices 110, 120, 130, and 140 may be the same or similar types of devices while, in other embodiments, some or all of devices 110, 120, 130, and 140 may be different types of devices. For example, each of devices 110, 120, and 130 may be a sensor (e.g., a chemical sensor, a biological sensor, a nuclear sensor, a radiological sensor, a temperature sensor, a pressure sensor, etc.) and device 140 may be a centralized computing device (e.g., a server computer) that receives (e.g., through primary links 111, 112, and 113), stores, analyzes, processes, etc., data captured by devices 110, 120, and 130. In such an example, devices 110, 120, 130, and 140, and primary links 111, 112, and 113, are arranged and function according to a star topology. In addition, it is appreciated that the devices described in other figures (e.g.,
Referring now to
In addition,
Different embodiments use different methods and/or technologies for implementing secondary links 121, 122, 123, 124, 125, and 126 that couple devices 110, 120, 130, and 140. For instance, in some embodiments, devices 110, 120, 130, and 140 have the same type of, or a compatible, wireless interface (e.g., Wi-Fi, Bluetooth, Zigbee, Z-Wave, etc.) and secondary links 121, 122, 123, 124, 125, and 126 are implemented using wireless technologies associated with the wireless interfaces. As another example, devices 110, 120, 130, and 140 may have another wired interface (e.g., a secondary Ethernet interface) and secondary 1 inks 121, 122, 123, 124, 125, and 126 are implemented using wired technologies associated with the wired interfaces.
Referring now to
In some embodiments, a primary link failure may cause devices in the network to revert to a network of links with a different topology than the network of primary links. For example, a failure of primary link 111 may cause devices 110, 120, 130, and 140 to revert to primary links 112 and 113, and secondary links 121, 122, 123, 124, 125, and 126. Accordingly, the topology of such primary and secondary links is different than the topology of primary links shown in
In some embodiments, a pair of devices may use a secondary link between the pair of devices when a primary link coupling the pair of devices is unavailable (e.g., the primary link fails or degrades past a threshold level). For example, if primary link 111 fails, devices 110 and 140 may revert to utilizing secondary link 124 to communicate with each other. In this example, devices 120 and 140 still utilize primary link 112 and devices 130 and 140 still utilize primary link 113. In some embodiments, primary links 112 and 113, which are still functional, are not utilized and secondary links 122 and 125 are utilized instead. In other words, when a primary link fails, secondary links that have corresponding primary links are utilized in place of such primary links.
A pair of devices may use a secondary link between the pair of devices when primary and/or secondary links indirectly coupling the pair of devices are unavailable in some embodiments. For instance, if device 140 fails or shuts down, causing primary links 111, 112, and 113, and secondary links 122, 124, and 125 to fail, the remaining devices 110, 120, and 130 can still communicate with each other through secondary links 121, 123, and 126. That is, device 110 and 120 can communicate through secondary link 121, device 120 and 130 can communicate through secondary link 123, and device 110 and 130 can communicate through secondary link 126.
It is appreciated that a primary link failure may cause devices in the network to revert to a network of links with the same topology as the network of primary links. In some embodiments, a secondary link that corresponds to the failed primary link is utilized along with the other functional primary links. For example, if primary link 112 fails, devices 110, 120, 130, and 140 may revert to using secondary link 122 in lieu of the failed primary link 112 along with the remaining functional primary links 111 and 113. In such an example, devices 110, 120, 130, and 140 do not utilize secondary links 121, 123, 124, 125 and 126 even though such links are still functional. As such, the same topology as the network topology of primary link 111, 112, and 113 shown in
Referring now to
Referring now to
Similar to
Referring now to
Referring now to
Similar to
In addition,
It is appreciated that a partial mesh topology is used in some embodiments to couple devices with secondary links when the methods and/or technologies used to establish secondary links is limited by the distance between devices (e.g., Bluetooth, Zigbee, Wi-Fi, Ethernet, Z-Wave, etc.) and/or by the resources of the devices (e.g., increasing the number of secondary links for a device to manage increases the amount of resources utilized by the device). For instance, a wireless technology used to implement secondary links to couple devices 110, 120, 130, 140, and 150 and/or the relative placement of devices 110, 120, 130, 140, and 150 may allow each device to establish secondary links to the device's neighboring or adjacent devices, as illustrated in
Even though in a partial mesh topology at least one device is not directed coupled to every other device via secondary links, such devices are, however, directly or indirectly coupled to every other device via secondary links. That is, the devices are still able to communicate with every other device through a path of one or more secondary links and/or primary links. For example, a secondary link does not directly couple device 110 with device 130, but device 110 can still communicate with device 130 through secondary links 121 and 123, secondary links 124 and 125, secondary links 127 and 129, primary link 111 and secondary link 225, or secondary link 224 and primary link 113. In some embodiments, device 110 can communicate with device 130 through any number of the different paths of secondary and/or primary links.
Referring now to
In some embodiments, some or all devices are reconfigured to establish secondary links upon an addition of a new device. Referring to
Similar to
Referring now to
In some embodiments, some or all devices are reconfigured to establish secondary links upon a removal of a device. Referring to
The figures described above illustrate examples of redundant links arranged according to full mesh and partial mesh topologies. It is appreciated that redundant links may be arranged differently in different embodiments. For example, redundant links may be arranged to mirror the primary links in the network in some embodiments. Referring to
In some embodiments, a primary link failure may cause devices in the network to revert to a network of links with a different topology than the network of primary links. For example, a failure of primary link 111 in
In some embodiments, a subset of devices may have the same or compatible capabilities to establish secondary links with each other. Referring to
In some embodiments where a subset of devices have the same or compatible capabilities to establish secondary links with each other, a pair of devices may use a secondary link between the pair of devices when a primary link coupling the pair of devices is unavailable (e.g., the primary link fails or degrades past a threshold level). For example, if primary link 111 fails, devices 110 and 140 may revert to utilizing secondary link 323 to communicate with each other. In this example, devices 120 and 140 still utilize primary link 112, devices 130 and 140 still utilize primary link 113, and devices 140 and 150 still utilize primary link 114. In some embodiments, primary link 112, which are still functional, is not utilized, and secondary link 322 is utilized instead. In other words, when a primary link fails, secondary links that have corresponding primary links are utilized in place of such primary links and other remaining primary links are still utilized.
It is appreciated that a primary link failure may cause devices in the network to revert to a network of links with the same topology as the network of primary links. In some embodiments, a secondary link that corresponds to the failed primary link is utilized along with the other functional primary links. For example, if primary link 112 fails, devices 110, 120, 130, and 140 may revert to using secondary link 322 in lieu of the failed primary link 112 along with the remaining functional primary links 111, 113, and 114. In such an example, devices 110, 120, 130, and 140 do not utilize secondary links 321 and 323 even though such links are still functional. As such, the same topology as the network topology of primary link 111, 112, 113, and 114 shown in
In some embodiments, different sets of devices may have different, compatible capabilities to establish secondary links with each other. Referring now to
In this example, devices 110, 120, and 140 establish secondary links 321, 322, and 323 using a first type of method and/or technology (e.g., Bluetooth) while devices 130 and 150 establish secondary link 324 using a second, different type of method and/or technology (e.g., Zigbee). In this manner, devices with the same or compatible capabilities are able to establish secondary links between each other using their respective compatible methods and/or technologies.
In some embodiments, a device may have multiple different capabilities to establish secondary links with other devices. Referring now to
In this example, device 140 establishes secondary links 322 and 323 using a first type of method and/or technology (e.g., Bluetooth) and also establishes secondary links 325 and 326 using a second, different type of method and/or technology (e.g., Zigbee). Thus, device 140 utilizes its multiple, different capabilities to establish secondary links in order to simultaneously couple to devices with different, but compatible with capabilities of device 140.
Many of the figures described above show a network with secondary links (e.g.,
Different embodiments use different methodologies to establish secondary, redundant links between devices.
Referring now to
Although
While
In some embodiments, devices share device data with each other based on a discovery, announcement, multicast, and/or broadcast protocol of a technology used to establish secondary links. For example, devices 110, 120, 130, and 140 with the same or compatible technology (e.g., a Bluetooth technology, Wi-fi technology, or Zigbee technology, etc.), may use a discovery, announcement, multicast, and/or broadcast protocol of such technology to share device data with each other. This way, the devices with the same or compatible technology may determine the topology of secondary links based on the shared device data and determine the configuration to use to establish secondary links using such technology upon a link and/or device failure.
Referring now to
Referring now to
In some embodiments, when a link associated with a device fails, the device notifies other devices (e.g., other impacted devices or all of the other devices) to revert to using secondary and/or primary links to communicate. The device may notify the other devices to utilize secondary links, in some embodiments, while the device may notify devices impacted by the failure, in other embodiments. When the failure occurs, the device notifies other devices in different ways in different embodiments. For example, the device sends a signal to other devices via the technology used to establish secondary links and/or the technology used to establish primary links. The signal notifies the other devices to revert to using secondary and/or primary links.
While
It is appreciated that devices are configured to establish secondary links at different times in different embodiments. For instance, devices are configured to establish secondary links upon detecting that a primary link has failed (i.e., devices are configured/secondary links are established on the fly) in some embodiments. In other embodiments, devices are configured before detection of a primary link failure (i.e., devices are preconfigured/secondary links are pre-established). Particular events (e.g., an addition of a device, a removal of a device, a change in a device's capabilities) may trigger devices to be reconfigured in some such other embodiments.
In some embodiments, a device may receive device data from all the other devices and determine its own configuration for establishing secondary links based on all the devices' device data (including its own device data). Referring to
In some embodiments, a device may receive device data from adjacent or neighboring devices and determine its own configuration for establishing secondary links based on the adjacent or neighboring devices' device data (including its own device data). Referring back to
It is appreciated that the embodiments and examples described above in
At step 520, devices for establishing redundant links are identified based on device data. Referring to
Upon identifying devices for establishing redundant links, configuration data associated with each device to establish redundant links are determined at step 530. In some embodiments, configuration data for devices to establish redundant links are determined for each identified device based on the device data of the identified devices. Referring to
At step 540 configuration data is sent to the identified devices in order for the identified devices to establish redundant links with each other upon failure of a link. Specifically, when a link failure occurs, the identified devices use the configuration data to configure themselves to establish redundant links. As explained above, configuration data may include the communication capability to use to establish secondary links, devices with which secondary links are to be established, bandwidth capabilities of secondary links established with devices, etc.
At step 620, device data regarding device capabilities is transmitted. Referring to
At step 630, configuration data is received. Referring to
At step 640, redundant links are configured based on the configuration data. Referring to
Referring now to
Additionally, in various embodiments, computing system environment 700 may also have other features/functionality. For example, computing system environment 700 may also include additional storage (removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape. Such additional storage is illustrated by removable storage 708 and non-removable storage 710. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer readable medium 704, removable storage 708 and nonremovable storage 710 are all examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, expandable memory (e.g., USB sticks, compact flash cards, SD cards), CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computing system environment 700. Any such computer storage media may be part of computing system environment 700.
In some embodiments, computing system environment 700 may also contain communications connection(s) 712 that allow it to communicate with other devices. Communications connection(s) 712 is an example of communication media. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. The term computer readable media as used herein includes both storage media and communication media.
Communications connection(s) 712 may allow computing system environment 700 to communicate over various networks types including, but not limited to, fibre channel, small computer system interface (SCSI), Bluetooth, Zigbee, Z-Wave, Ethernet, Wi-fi, Infrared Data Association (IrDA), Local area networks (LAN), Wireless Local area networks (WLAN), wide area networks (WAN) such as the internet, serial, and universal serial bus (USB). It is appreciated the various network types that communication connection(s) 712 connect to may run a plurality of network protocols including, but not limited to, transmission control protocol (TCP), user datagram protocol (UDP), internet protocol (IP), real-time transport protocol (RTP), real-time transport control protocol (RTCP), file transfer protocol (FTP), and hypertext transfer protocol (HTTP).
In further embodiments, computing system environment 700 may also have input device(s) 714 such as keyboard, mouse, a terminal or terminal emulator (either connected or remotely accessible via telnet, SSH, http, SSL, etc.), pen, voice input device, touch input device, remote control, etc. Output device(s) 716 such as a display, a terminal or terminal emulator (either connected or remotely accessible via telnet, SSH, http, SSL, etc.), speakers, light emitting diodes (LEDs), etc. may also be included. All these devices are well known in the art and are not discussed at length.
In one embodiment, computer readable storage medium 704 includes a device capability manager module 722, a device configurator module 724, a primary link manager module 726, and redundant link manager module 728. The device capability manager module 722 is operable to determine capabilities of a device according to flow diagram 600, for instance. In some embodiments, the device capability manager module 722 uses removable storage 708 and/or non-removable storage 710 to store, retrieve, and maintain device capability information. The device configurator module 724 may be used to determine configurations for devices and configuring devices according to flow diagrams 500 and 600, for instance. In some embodiments, the device configurator 724 configures a device to revert to the network of primary and/or secondary links before a failure occurs (e.g., when the device is added to the network, when another device is removed from the network). In other embodiments, the device configurator 724 configures the device to revert to the network of primary and/or secondary links when a link and/or device fails. In some embodiments, the device configurator module 724 uses removable storage 708 and/or non-removable storage 710 to retrieve device data. The primary link manager module 726 operates to establish and manage primary links with other devices as described above by reference to
It is appreciated that implementations according to some embodiments that are described with respect to a computer system are merely exemplary and not intended to limit the scope of the embodiments. For example, some embodiments may be implemented on devices such as switches and routers, which may contain application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), etc. It is appreciated that these devices may include a computer readable medium for storing instructions for implementing methods according to flow diagrams 500 and 600.
Referring now to
Bus 812 allows data communication between central processor 814 and system memory 817, which may include read-only memory (ROM) or flash memory (neither shown), and random access memory (RAM) (not shown), as previously noted. The RAM is generally the main memory into which the operating system and application programs are loaded. The ROM or flash memory can contain, among other code, the Basic Input-Output system (BIOS) which controls basic hardware operation such as the interaction with peripheral components. Applications resident with computer system 810 are generally stored on and accessed via a computer readable medium, such as a hard disk drive (e.g., fixed disk 844), an optical drive (e.g., optical drive 840), a floppy disk unit 837, or other storage medium. Additionally, applications can be in the form of electronic signals modulated in accordance with the application and data communication technology when accessed via network modem 847 or interface 848.
Storage interface 834, as with the other storage interfaces of computer system 810, can connect to a standard computer readable medium for storage and/or retrieval of information, such as a fixed disk drive 844. Fixed disk drive 844 may be a part of computer system 810 or may be separate and accessed through other interface systems. Network interface 848 may provide multiple connections to other devices. Furthermore, modem 847 may provide a direct connection to a remote server via a telephone link or to the Internet via an internet service provider (ISP). Network interface 848 may provide one or more connection to a data network, which may include any number of networked devices. It is appreciated that the connections via the network interface 848 may be via a direct connection to a remote server via a direct network link to the Internet via a POP (point of presence). Network interface 848 may provide such connection using wireless techniques, including digital cellular telephone connection, Cellular Digital Packet Data (CDPD) connection, digital satellite data connection or the like.
Many other devices or subsystems (not shown) may be connected in a similar manner (e.g., document scanners, digital cameras and so on). Conversely, all of the devices shown in
Moreover, regarding the signals described herein, those skilled in the art will recognize that a signal can be directly transmitted from a first block to a second block, or a signal can be modified (e.g., amplified, attenuated, delayed, latched, buffered, inverted, filtered, or otherwise modified) between the blocks. Although the signals of the above described embodiment are characterized as transmitted from one block to the next, other embodiments of the present disclosure may include modified signals in place of such directly transmitted signals as long as the informational and/or functional aspect of the signal is transmitted between blocks. To some extent, a signal input at a second block can be conceptualized as a second signal derived from a first signal output from a first block due to physical limitations of the circuitry involved (e.g., there will inevitably be some attenuation and delay). Therefore, as used herein, a second signal derived from a first signal includes the first signal or any modifications to the first signal, whether due to circuit limitations or due to passage through other circuit elements which do not change the informational and/or final functional aspect of the first signal.
The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit the embodiments disclosed. Many modifications and variations are possible in view of the above teachings