Embodiments of the present invention relate generally to network communication technology and, more particularly, relate to a method, apparatus and computer program product for providing device monitoring in a network such as, for example, a peer-to-peer (P2P) network.
The modern communications era has brought about a tremendous expansion of wireline and wireless networks. Computer networks, television networks, and telephony networks are experiencing an unprecedented technological expansion, fueled by consumer demand. Wireless and mobile networking technologies have addressed related consumer demands, while providing more flexibility and immediacy of information transfer.
Current and future networking technologies continue to facilitate ease of information transfer and convenience to users. One area in which there is a demand to increase the ease of information transfer and convenience to users relates to provision of information sharing in P2P networks. A P2P network is generally considered a network that relies primarily on the computing power and bandwidth of the devices (i.e., peers) within the network. Accordingly, P2P networks generally do not concentrate computing power and bandwidth within servers. Rather each of the peer devices is capable of simultaneously functioning as both a client and a server to other nodes of the P2P network. The architecture of P2P networks typically involves connecting nodes via largely ad hoc connections over which participant nodes can, for example, share content files containing audio, video, data or virtually anything in a digital format. Accordingly, data such as real time data or address information for use in setting up real time communication could be shared using a P2P network.
Given the ubiquitous nature of mobile terminals, such as mobile phones and numerous other mobile electronic devices, P2P networks are becoming more common for sharing content between individuals in social groups or social networks. These social networks may center on a group of friends, relatives, co-workers, business associates, or people who share a common interest. Each individual (i.e., node) within a social network may be a peer within the P2P network and may invite other individuals to join. As such, although any particular node may generally communicate with a given group of other nodes within the social network, each of the other nodes may subsequently communicate with yet other nodes. Accordingly, within a social network, each node may be defined in terms of a degree of separation from each other node.
P2P networks can provide a mechanism for storing different types of data in a distributed way. In this regard, a distributed hash table (DHT) may define a structured overlay network architecture. A DHT architecture may be enabled to locate a particular piece of data stored in the overlay network using a limited number of messages, typically log(N) messages (N being a number of nodes in the network). Nodes of the overlay network are called peers, and each peer may have a unique peer ID (or node ID), which may be assigned when the peer joins the DHT. Peer IDs are typically created by hashing the Internet Protocol (IP) address of the peer. Thus, if the IP address of the peer changes, the peer ID also changes. The DHT may be organized in a ring topology. Accordingly, peers may exchange DHT-maintenance information with other peers. Typically, peers exchange more information with their neighbor peers than with other more remote peers. In fact, in some instances, neighbors replicate data from other neighbors in order to cope with situations in which one of the peers fails or disconnects from the DHT.
In some situations, a particular device or node may not be enabled to fully participate in the DHT. For example, the particular device may have limited processing power, memory, battery life, or experience connectivity restraints that prevent the device from joining the network overlay layer as a peer. In such situations, the particular device may be able to join the network overlay as a client by connecting to one or more of the peers of the DHT to get DHT services via the connected peer or peers. However, the peers are not necessarily static nodes such as servers maintained by a service operator. Accordingly, the peers may move to another access network or leave the network overlay. When the peer's IP address changes (e.g., due to a new IP address being assigned or if the peer changes the access network), connections to other network nodes (e.g., clients and/or peers) are typically dropped.
In order to provide better redundancy and resilience, clients typically connect to two or more peers simultaneously. The clients typically also continually monitor the connections with the peers (e.g., the connected peers) by exchanging messages (e.g., keep-alive messages). In some cases, a timer may manage the frequency of exchanging such messages (e.g., a 30 second timer). Accordingly, for increased reliability, a client may desire to connect to additional peers. However, each additional connection requires corresponding additional keep-alive messages to be communicated over air interface resources, thereby consuming such resources. Moreover, such messages are typically considered to be maintenance messages that are free of airtime charges.
Accordingly, it may be desirable to provide a mechanism for improving network reliability such as in a P2P network, for example, without incurring a substantial corresponding increase in resource consumption for the network.
A method, apparatus and computer program product are therefore provided for providing device monitoring in a network. In this regard, one exemplary embodiment will be provided in relation to peer monitoring in a P2P network. However, it should be understood that device monitoring as provided in embodiments of the present invention may also be practiced in connection with other networks in which reliability, redundancy and/or resiliency may be provided by enabling monitoring of other devices at a single point in communication with a client device, rather than requiring the client device to individually monitor every other device.
In an exemplary embodiment, a client device in communication with more than one other device such as a group of peers (e.g., a plurality of connected peer devices or potentially connected peer devices) may designate one of the peers to be a primary connected peer in order to serve as the point of contact for the client with regard to the availability of the other peer devices. In this regard, the primary connected peer may be directed to monitor the availability of the other peers so that the client need only communicate with the primary connected peer in order to determine the status of all or some of the other peer devices. Thus, for example, a client device may be enabled to monitor multiple peers in a group with which the client device may be in communication (or capable of communication) by communicating with one peer to discover the status of the other peers of the group. As such, for example, P2PSIP (P2P session initiation protocol) and other private content sharing platforms may utilize embodiments of the present invention to reduce network communication bandwidth that is consumed for status messages.
Having thus described embodiments of the invention in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
Embodiments of the present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the invention are shown. Indeed, embodiments of the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like reference numerals refer to like elements throughout.
In addition, while several embodiments of the method of the present invention are performed or used by a mobile terminal 10, the method may be employed by other than a mobile terminal. Moreover, the system and method of embodiments of the present invention will be primarily described in conjunction with mobile communications applications. It should be understood, however, that the system and method of embodiments of the present invention can be utilized in conjunction with a variety of other applications, both in the mobile communications industries and outside of the mobile communications industries.
The mobile terminal 10 includes an antenna 12 (or multiple antennae) in operable communication with a transmitter 14 and a receiver 16. The mobile terminal 10 may further include an apparatus, such as a controller 20 or other processing element that provides signals to and receives signals from the transmitter 14 and receiver 16, respectively. The signals include signaling information in accordance with the air interface standard of the applicable cellular system, and also user speech, received data and/or user generated data. In this regard, the mobile terminal 10 is capable of operating with one or more air interface standards, communication protocols, modulation types, and access types. By way of illustration, the mobile terminal 10 is capable of operating in accordance with any of a number of first, second, third and/or fourth-generation communication protocols or the like. For example, the mobile terminal 10 may be capable of operating in accordance with second-generation (2G) wireless communication protocols IS-136 (time division multiple access (TDMA)), GSM (global system for mobile communication), and IS-95 (code division multiple access (CDMA)), or with third-generation (3G) wireless communication protocols, such as Universal Mobile Telecommunications System (UMTS), CDMA2000, wideband CDMA (WCDMA) and time division-synchronous CDMA (TD-SCDMA), with fourth-generation (4G) wireless communication protocols or the like. As an alternative (or additionally), the mobile terminal 10 may be capable of operating in accordance with non-cellular communication mechanisms. For example, the mobile terminal 10 may be capable of communication in a wireless local area network (WLAN) or other communication networks described below in connection with
It is understood that the apparatus, such as the controller 20, may include circuitry desirable for implementing audio and logic functions of the mobile terminal 10. For example, the controller 20 may be comprised of a digital signal processor device, a microprocessor device, and various analog to digital converters, digital to analog converters, and other support circuits. Control and signal processing functions of the mobile terminal 10 are allocated between these devices according to their respective capabilities. The controller 20 thus may also include the functionality to convolutionally encode and interleave message and data prior to modulation and transmission. The controller 20 can additionally include an internal voice coder, and may include an internal data modem. Further, the controller 20 may include functionality to operate one or more software programs, which may be stored in memory. For example, the controller 20 may be capable of operating a connectivity program, such as a conventional Web browser. The connectivity program may then allow the mobile terminal 10 to transmit and receive Web content, such as location-based content and/or other web page content, according to a Wireless Application Protocol (WAP), Hypertext Transfer Protocol (HTTP) and/or the like, for example.
The mobile terminal 10 may also comprise a user interface including an output device such as a conventional earphone or speaker 24, a ringer 22, a microphone 26, a display 28, and a user input interface, all of which are coupled to the controller 20. The user input interface, which allows the mobile terminal 10 to receive data, may include any of a number of devices allowing the mobile terminal 10 to receive data, such as a keypad 30, a touch display (not shown) or other input device. In embodiments including the keypad 30, the keypad 30 may include the conventional numeric (0-9) and related keys (#, *), and other hard and soft keys used for operating the mobile terminal 10. Alternatively, the keypad 30 may include a conventional QWERTY keypad arrangement. The keypad 30 may also include various soft keys with associated functions. In addition, or alternatively, the mobile terminal 10 may include an interface device such as a joystick or other user input interface. The mobile terminal 10 further includes a battery 34, such as a vibrating battery pack, for powering various circuits that are required to operate the mobile terminal 10, as well as optionally providing mechanical vibration as a detectable output.
The mobile terminal 10 may further include a user identity module (UIM) 38. The UIM 38 is typically a memory device having a processor built in. The UIM 38 may include, for example, a subscriber identity module (SIM), a universal integrated circuit card (UICC), a universal subscriber identity module (USIM), a removable user identity module (R-UIM), etc. The UIM 38 typically stores information elements related to a mobile subscriber. In addition to the UIM 38, the mobile terminal 10 may be equipped with memory. For example, the mobile terminal 10 may include volatile memory 40, such as volatile Random Access Memory (RAM) including a cache area for the temporary storage of data. The mobile terminal 10 may also include other non-volatile memory 42, which can be embedded and/or may be removable. The non-volatile memory 42 can additionally or alternatively comprise an electrically erasable programmable read only memory (EEPROM), flash memory or the like, such as that available from the SanDisk Corporation of Sunnyvale, Calif., or Lexar Media Inc. of Fremont, Calif. The memories can store any of a number of pieces of information, and data, used by the mobile terminal 10 to implement the functions of the mobile terminal 10. For example, the memories can include an identifier, such as an international mobile equipment identification (IMEI) code, capable of uniquely identifying the mobile terminal 10.
In an exemplary embodiment, content or data may be communicated over a particular network between a mobile terminal, which may be similar to the mobile terminal 10 of
As described above, social networks may be formed via ad hoc connections between various nodes, which could be, for example, mobile terminals, personal or laptop computers, servers, or the like. Such connections may then be utilized to, for example, share access to content which could include video clips, text, audio data, photographs, etc. It should also be understood that accessing content could refer to accessing resources of a particular device. A common way to control access to content has been to provide access control lists (ACLs), which inform a particular device which permissions or access rights each user or group has to specific objects such as files or directories. The access control may be based on the identity of a corresponding user (e.g., username, user ID, etc) or the identity of a device (e.g., device name, media access control (MAC) address, Internet Protocol (IP) address, etc.). By utilizing relationships in social networks, other ways of controlling access to content may be implemented.
An exemplary embodiment of the invention will now be described with reference to
Referring now to
The processor 70 may be embodied in a number of different ways. For example, the processor 70 may be embodied as a processing element, a coprocessor, a controller or various other processing means or devices including integrated circuits such as, for example, an ASIC (application specific integrated circuit) or FPGA (field-programmable gate array) or combinations thereof. In an exemplary embodiment, the processor 70 may be configured to execute instructions stored in the memory device 76 or otherwise accessible to the processor 70. As such, whether configured by hardware or software methods, or by a combination thereof, the processor 70 may represent an entity capable of performing operations according to embodiments of the present invention while configured accordingly. Thus, for example, when the processor 70 is embodied as an ASIC, FPGA or the like, the processor 70 may be specifically configured hardware for conducting the operations described herein. Alternatively, as another example, when the processor 70 is embodied as an executor of software instructions, the instructions may specifically configure the processor 70, which may otherwise be a general purpose processing element if not for the specific configuration provided by the instructions, to perform the algorithms and operations described herein. However, in some cases, the processor 70 may be a processor of a specific device (e.g., a mobile terminal) adapted for employing embodiments of the present invention by further configuration of the processor 70 by instructions for performing the algorithms and operations described herein.
Meanwhile, the communication interface 74 may be embodied as any device or means embodied in either hardware, software, or a combination of hardware and software that is configured to receive and/or transmit data from/to a network and/or any other device or module in communication with the apparatus. In this regard, the communication interface 74 may include, for example, an antenna and supporting hardware and/or software for enabling communications with a wireless communication network.
The user interface 72 may be in communication with the processor 70 to receive an indication of a user input at the user interface 72 and/or to provide an audible, visual, mechanical or other output to the user. As such, the user interface 72 may include, for example, a keyboard, a mouse, a joystick, a touch screen display, a conventional display, a microphone, a speaker, or other input/output mechanisms. In an exemplary embodiment in which the apparatus is embodied as a server, the user interface 72 may be limited, or eliminated. However, in an embodiment in which the apparatus is embodied as a mobile terminal (e.g., the mobile terminal 10), the user interface 72 may include, among other devices or elements, any or all of the speaker 24, the ringer 22, the microphone 26, the display 28, and the keyboard 30.
As provided in
As indicated above, the client device 102 may, in some instances be unable to get access to the DHT overlay network 100 as a peer device. In this regard, for example, the DHT overlay network 100 may have policy requirements defining particular minimum performance characteristics (e.g., memory available, battery life, availability criteria, processor power, or the like) for obtaining entry into the DHT as a peer device. As such, devices failing to meet the policy requirements may only be granted access to the DHT's services in a client capacity via one of the peers. However, a particular device may also be enabled to access the DHT as a client device for other reasons. For example, the user may desire to access the DHT as a client device and may choose to connect to the DHT as such. Furthermore, in paradigms other than P2P networks, access to particular network devices, nodes or routers that may ultimately be the subject of monitoring in accordance with exemplary embodiments may normally be conducted in a client capacity. In such paradigms, the term “peer” used herein in the examples provided below may typically be replaced with the term “node”.
In an exemplary embodiment, the apparatus of
In an exemplary embodiment in which the apparatus of
The bootstrapping node 118 may be any means such as a device or circuitry embodied in hardware, software or a combination of hardware and software that is configured to communicate with the client device 102 to assist with regard to facilitating an identification of available peers for connection to the DHT overlay network 100. For example, the bootstrapping node 118 may initially provide the client device 102 with a listing of currently available nodes or peers from which the client device 102 may select one or more to which a connection may be established. Furthermore, the bootstrapping node 118 may enable the client device 102 to designate a particular peer as the primary connected peer and/or designate other peers or nodes to be monitored. The bootstrapping node 118 may be an optional device. Additionally, the bootstrapping node 118 may be collocated with or even be embodied as one of the peer devices. Alternatively, the bootstrapping node 118 may be a single, central device within the network. In an exemplary embodiment, the bootstrapping node 118 may provide information to the client device 102 for use by the client device 102 in selection of proper secondary peers for monitoring.
During operation, as shown in the exemplary flowchart of
If a particular device being monitored (e.g., a secondary connected peer) becomes unavailable, the client device 102 may be made aware of the unavailability of the corresponding device by receipt of a message indicating the unavailability of the device from the primary connected peer. Alternatively, the client device 102 may not receive an indication of the availability of the corresponding device from the primary connected peer within a defined reporting period, thereby implicitly indicating the unavailability of the device. In an exemplary embodiment, upon becoming aware of the loss of availability of a particular monitored device (e.g., a secondary connected peer such as the second connected peer 112) the client device 102 may replace the now unavailable device with another device that is available. In this regard, for example, the client device 102 may communicate with the bootstrapping node 118 or otherwise inquire as to which other devices are available. The client device 102 may then select one or more of the available devices to be monitored and/or to be the subject of a connection to replace the now unavailable device.
In an exemplary embodiment, if the primary connected peer changes its IP address for some reason (e.g., due to handover), the client device 102 may become aware of the change at operation 212. In this regard, the client device 102 may receive notice from the primary connected peer of an impending change, or may determine that such change has occurred after the fact. In some instances (e.g., if the client device 102 is behind a network address translation (NAT) gateway), the primary connected peer may not be able to notify the client device 102 of an impending change of IP address. Accordingly, the client device 102 may detect the loss of its primary connection (e.g., by failure to receive keep-alive messages from the primary connected device) and may select a new primary connected peer. However, as an alternative, some embodiments may enable the primary connected peer to utilize the old connection to the client device 102 to inform the client device 102 of the impending change. The client device 102 may therefore designate one of the secondary connected peers as a new primary connected peer to continue communication without interruption. As yet another example, a combination of the above situations may be employed. As such, for example, if the primary connected peer has knowledge of an impending handover, the primary connected peer may inform the client device 102, however, if the client device 102 is not informed, the client device 102 may still determine the change by a loss of receipt of keep-alive messages from the primary connected device.
Determination of a lost connection and selection of a new primary connected peer is illustrated at operation 214. If one of the former secondary connected peers becomes the new primary connected peer, a replacement secondary connected peer may be determined as provided above. The new primary connected peer may receive instructions from the client device 102 (e.g., via the peer monitoring director 78) regarding peer monitoring and reporting to the client device 102 subsequent to or along with receipt of instructions to take on primary connected peer responsibilities.
If a secondary connected peer changes its IP address, (e.g., due to a handover), the secondary connected peer may inform the DHT and the primary connected peer of the change. The primary connected peer may then inform the client device 102 (and in some instances also the other peers) of the change at operation 216. Similarly, if a secondary connected peer fails to respond within a predefined period to an inquiry (e.g., a keep-alive message) from the primary connected peer, the primary connected peer may notify the client device of the failure via an availability report message 124 at operation 218. The client device 102 may then select another secondary connected peer (or other non-connected device) to connect to and/or monitor.
The exemplary embodiment of
Accordingly, blocks or steps of the flowcharts support combinations of means for performing the specified functions, combinations of steps for performing the specified functions and program instruction means for performing the specified functions. It will also be understood that one or more blocks or steps of the flowcharts, and combinations of blocks or steps in the flowcharts, can be implemented by special purpose hardware-based computer systems which perform the specified functions or steps, or combinations of special purpose hardware and computer instructions.
In this regard, one embodiment of a method of providing device monitoring in a network, as shown in
In another embodiment, a method of providing device monitoring in a network from a network node (e.g., primary connected peer) perspective, as shown in
Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these embodiments pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the inventions are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB09/50284 | 1/23/2009 | WO | 00 | 7/26/2010 |
Number | Date | Country | |
---|---|---|---|
61023705 | Jan 2008 | US |