WO2006091178A1 - A method of obtaining presence information and a method of maintaining an updated membership list of communication devices in a decentralised network - Google Patents

A method of obtaining presence information and a method of maintaining an updated membership list of communication devices in a decentralised network Download PDF

Info

Publication number
WO2006091178A1
WO2006091178A1 PCT/SG2006/000035 SG2006000035W WO2006091178A1 WO 2006091178 A1 WO2006091178 A1 WO 2006091178A1 SG 2006000035 W SG2006000035 W SG 2006000035W WO 2006091178 A1 WO2006091178 A1 WO 2006091178A1
Authority
WO
WIPO (PCT)
Prior art keywords
communication device
information
client
devices
peer
Prior art date
Application number
PCT/SG2006/000035
Other languages
French (fr)
Other versions
WO2006091178A8 (en
Inventor
Jo Yew Tham
Leong Chiang Tee
Seng Luan Lee
Choon Ee Tan
Original Assignee
National University Of Singapore
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University Of Singapore filed Critical National University Of Singapore
Publication of WO2006091178A1 publication Critical patent/WO2006091178A1/en
Publication of WO2006091178A8 publication Critical patent/WO2006091178A8/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1895Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for short real-time information, e.g. alarms, notifications, alerts, updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/26Route discovery packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1046Joining mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1048Departure or maintenance mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/54Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload

Definitions

  • the present invention relates to a method of obtaining presence information and to a method of maintaining real-time presence information in a decentralised network.
  • IM systems normally include an online presence management server which is centrally managed and operated by a service provider. Examples include Microsoft's MSN MessengerTM, Yahoo's IM MessengerTM, ICQTM, Jabber's XMPP-based instant messaging systems, and others.
  • a user first registers with the service provider to be a member of the system. The registered member, when online, connects to a server to notify the member's online presence status.
  • the central server stores a list of all other interested members who have previously subscribed to the member's online presence, and in turn forwards the online presence status event of the particular member to other interested members but typically, only if the member has previously granted permission to those other interested members to be notified of the member's new online presence status. Similarly, the member may register interest to be notified of the online presence status of some other registered members.
  • the central server essentially acts as a middleman to accept and relay such presence status change events to the interested members.
  • decentralised systems have been proposed and an example of which is Skype that uses a globally decentralized user directory in the form of a multi-tiered network where
  • a method of obtaining presence information in a decentralised network of a first one of a plurality of client communication devices by a second one of a plurality of client communication devices, the first client communication device being a subscriber of the second client communication device's online presence comprising the steps of: the second client communication device,
  • the method allows the second client communication device to collaborate with another device in the network so as to obtain the presence information of the first client communication device.
  • the communication devices within the network can obtain presence information about other devices in a quicker and efficient manner.
  • the method further includes the step of performing a PROBE operation to establish a virtual connection with the first communication device to obtain its presence information. If the virtual connection cannot be established, the PROBE operation may be repeated. Further, the PROBE operation may be repeated for a number of times and if the virtual connection cannot be established after exceeding the number, step (ii) may be performed.
  • step (ii) may be performed.
  • the plurality of client communication devices may be divided into different virtual groups, the at least one selected communication device may be in the same virtual group as the first and second communication devices.
  • the method comprises the step of: broadcasting change in status of the said client communication device to the rest of the devices within the same virtual group.
  • the third client communication device may broadcast information relating to the second communication device's intention to obtain presence information of the first communication device to communication devices that subscribe to the online presence of the third client communication device.
  • the third client communication device can have its own collaboration with a further communication device so that presence information of the first communication device can be obtained.
  • the further communication device is functioning as a fourth one of the plurality communication devices and the first communication device may transmit its presence information to the second communication device via the third and fourth client communication devices.
  • the selected communication device may subscribe to two or more virtual groups; and the method further comprises the step of; displaying different online status to different groups.
  • the presence information of the first communication device may be partially transmitted to the second communication device.
  • the information is broadcasted to all communication devices that subscribe to the online presence of the second communication device.
  • the presence information is encrypted for transmission to the second communication device.
  • the actions taken by the third client communication device is also important and this forms a second aspect of the present invention which provides a method of obtaining presence information in a decentralised network having a plurality of client communication devices, one of which arranged as an intermediate client device, to relay presence information of a first communication device to a second communication device, the intermediate client device being a subscriber of the online presence of the second communication device, the method comprising the steps of, the intermediate client device:
  • a method of maintaining an updated membership list of a plurality of client communication devices that is part of a virtual group in a decentralised network comprising the steps of: receiving status change information from the plurality of client communication devices whenever any of the devices change its network status, checking currency of the status change information and if it is a later version; storing the change information redundantly and in association with identity of respective communication device that has changed status; and selectively sharing the status change information with other communication devices in the virtual group so that these other devices has an updated membership list of communication devices that can join the virtual group.
  • each of the communication devices can have the most up to- date version of the membership list which is by storing the status change information redundantly and versioning the status so that the most up to-date status can be distributed to all other devices within the virtual group. For example, when a communication device first logs in to the network for the first time, the device can query other devices that store the status information redundantly to obtain the latest version of the membership list.
  • the change information is stored for a specific period of time before deletion.
  • the sharing step may further comprise the step of propagating the status change information from one device to another.
  • the status change information may include a propagation value that limits the number of devices in which the information can propagate.
  • the status change information is encrypted.
  • the present invention also relates to a communication device comprising means for performing the method steps discussed earlier. Brief Description of the Drawings
  • Figure 1 illustrates a typical centralised and server-based messaging and presence management system according to the prior art
  • Figure 2 illustrates a typical peer-to-peer decentralised network topology
  • Figure 3 is a flowchart depicting a process to continuously monitor online presence status of peer communication devices in the network of Figure 2
  • Figure 4 is a sequence diagram depicting a process to determine a latest membership list of a joined virtual group.
  • FIG. 1 is a block diagram illustrating a typical centralised and server-based messaging and presence management system according to the prior art.
  • the system normally comprises a high-performance cluster of servers and databases (of which a server 108 and database 110 are shown) which are dedicated and centrally managed by a service provider.
  • a service provider to communicate with the server 108 over a network such as the Internet 112
  • users of client computer systems 100,102,104,106 first creates an account by registering with the server. In most cases, the account is unique with respect to each computer system.
  • Each user member can then create his or her own roster which is stored persistently in the centralised database 110.
  • a roster comprises a list of other members whose online presence status is being subscribed by a user member for notification of any changes of their online presence status.
  • member 100 has subscribed for the online presence of members 102 and 104.
  • member 102 When member 102 comes online, it will first notify the server 108 of its new presence status.
  • the centralized server 108 which stores the member 100's roster, will then notify member 100 (if it is currently also online) about the new presence status of the subscribed member 102.
  • the server 108 records all the online presence statuses and notifies of any online presence status change events for all registered members of the system.
  • server-based systems include Microsoft's MSN MessengerTM, Yahoo's MessengerTM, America Online's AIMTM, ICQTM, and Jabber's XMPP-based instant messaging systems.
  • the service provider maintains the centralized servers at some data centres and all the users are connected directly to them.
  • Figure 2 illustrates a typical computer networking topology of a decentralized and distributed messaging and presence management network as an example of a computing environment for implementing the present invention. It is apparent that in a decentralized and distributed peer-to-peer network system, there is no requirement for the existence of any dedicated and centrally operated servers and databases and each client communication devices or peers 130-137 maintains its own roster. Thus, advantages of decentralised networks are that it does not have a single point of failure, requires practically no upfront cost overheads and no operating and maintenance expenses.
  • the peers can reside in any part of the network and in a geographically dispersed manner and they are connectable to one another either directly or indirectly via one or more intermediary peers.
  • peers 130-133 are in a public Internet whereby these peers can most likely be directly connectable with one another via their IP addresses and ports.
  • Peers 134 and 135 reside within a private subnet 150 behind a firewall 162 (and also possibly a network proxy or network address translator, NAT).
  • Peers 136 and 137 reside within another private subnet 152 behind a firewall 160 (and also possibly a network proxy or NAT). Due to the nature and purpose of the firewalls and NATs, the peers in subnet 150 would not be able to establish direct network connections with the peers in subnet 152.
  • some other intermediary peers in the ecosystem can act as relays to help bridge up the virtual connection between the said communicating peers such that they can indirectly exchange data with one another.
  • the open-source Project JXTA by Sun MicrosystemsTM is one example of the peer-to-peer networking substrate which makes such said indirect virtual connections possible.
  • example implementation of the present invention is made with reference to Project JXTA although it is clear that the present invention is not restricted to or dependent upon the use of Project JXTA.
  • a virtual group is a logical partition that represents a dynamic set of peers sharing some common topics of interest.
  • the virtual group is defined in an overlay network which may span across a plurality of disparate physical network boundaries.
  • Each peer may join a plurality of virtual groups simultaneously (e.g. peer 133), and this information is included in the roster of the peer 133.
  • Some of the virtual groups can be public in which any member who is aware of the public virtual group can join or leave at any time. Alternatively or in addition, some of the groups can be private in which access to the group is secured i.e.
  • all virtual groups reside within the virtual world which comprises all the peers in the network.
  • Figure 3 is a flowchart depicting a process to continuously monitor online presence status of peer client communication devices in a decentralised network and reference is also made to Figure 2.
  • the peer device Upon the startup of a first peer 130 (i.e. first logon to the network), the peer device has no information about the online presence status of the other peer devices 131 ,132,133 that subscribe to the same virtual group and thus, the peer devices 131 ,132,133 are by default assumed to be offline.
  • the first peer 130 proceeds to activate a timer unit at step 222 and performs a PROBE operation at step 224 which is time- controlled by the timer unit.
  • the first peer attempts to establish a virtual connection with a second peer client device 132.
  • a route resolution request is performed and then the first peer 130 waits for the connection to be established at step 226. If both peers are online at the same time, then the virtual connection can be established most of the time. On the other hand, if a connection cannot be established within a predetermined period (as determined by the timer unit) as indicated at step 228, then the PROBE process is repeated in a timed periodic manner as controlled by the timer unit (step 222). A counter keeps track of the number of repetition of the PROBE process and at step 230, the counter is decremented with each loop.
  • the first peer 130 enters into a collaborative online presence query and update process as indicated at step 232 by turning to the rest of the peers in the network.
  • the selection of the collaborative peers is based on some random set of suitable candidates, which is either from a plurality of other online peers in a virtual group common to the first peer or a plurality of non-subscribed peers (e.g., relay and rendezvous peers in the example implementation using Project JXTA) or a combination of the said candidate collaborative peers.
  • the rationale of this approach is that if the second peer 132 is actually online, there is a very high chance that at least one of the other peers within the network will be able to or has established a virtual connection therewith. In either case, such a peer 131 acting as a collaborative peer now shares the known online presence status of the second peer 132 with the first peer 130 so that a virtual connection is established via the third peer 131.
  • the process then proceeds to step 240.
  • the first peer 130 When the first peer 130 manages to establish a virtual connection with the second peer 132 (either directly or with assistance of a collaborative peer 131), the first peer 130 performs a PING-ACK process which is time-controlled by a timer unit at step 240.
  • the timer unit tracks the duration of a peer member (eg. the second peer) when it was last known to be online. If the duration does not exceed a predetermined threshold duration, the comparison being carried out at step 242, the first peer issues a "PING" command at step 244 to determine the current online presence status of the said subscribed member and waits for an acknowledge response, ACK.
  • the first peer receives an ACK packet within a predetermined duration at step 248, the first peer decodes the content of the ACK packet and updates the online presence status of the second peer accordingly. If no ACK is received, then the PING-ACK procedure is repeated until T1 exceeds certain threshold.
  • the ACK packet comprises a unique identifier of the second peer and the current online presence status with respect to each of the said joined virtual groups (since the second peer can be a member of different virtual groups).
  • the last known online clock time is updated at step 250 and the PING-ACK process is repeated in a timed periodic manner as controlled by the timer unit at step 240.
  • the first peer performs a collaborative online presence query and update process to verify whether the second peer is still online at step 252.
  • the selection of collaborative peers at step 252 is similar to that in step 232. This procedure prevents the scenario of immediately setting the second peer member from online to offline status because the absence of the ACK reply packet could be a result of a temporary disruption of the virtual connection or a lost packet transmission in a purely decentralized virtual world.
  • the selected collaborative peers can help to send a new PING query to the second peer on behalf of the first peer to check whether the second peer is online as at step 254.
  • the PING query includes a PING packet comprising additional data such as the first peer's unique identifier so that the second peer, upon receiving the PING packet, is aware that this is a query on behalf of the first peer. Any ACK packet received by the collaborative peer is first transcoded before it is sent back to the first peer. If at step 254, the second peer is found to be online, it is updated in step 250 and the PING-ACK process is repeated. Otherwise, the status of the second peer member is set as offline and the online presence status monitoring mechanism is repeated at step 200. In the event that the virtual connection is broken during the PING process (step 244), a new virtual connection is first attempted before waiting for the ACK packet in step 246.
  • the network of communication devices allows instantaneous update of online presence status change events, which when occur, a BROADCAST packet is sent out by a triggering peer to the peers that subscribed to the triggering peer's online presence. These peers are already in active listening mode to process the BROADCAST packet accordingly. In some situations, the packet may be lost during transmission or some virtual connections are broken such that some of the peers may fail to receive the online presence status change event instantaneously.
  • the collaborative peers can thus assist the broadcast process by relaying the events on behalf of the triggering peer.
  • each peer now maintains and stores its roster on the device's local storage.
  • a roster comprises information concerning all the virtual groups subscribed by a corresponding peer and their respective list of members whose online presence statuses are being subscribed to. Membership within a particular virtual group is dynamic in the sense that a member can leave at some point in time and another peer may become a new member at another point in time. Since membership changes can occur when a peer is offline and not connected to the virtual world, it becomes a challenge for the said peer to maintain a latest membership snapshot of a particular virtual group when the offline peer comes online at a later time.
  • FIG. 4 is a sequence diagram depicting a process to determine a latest membership list of a joined virtual group in which peers can join and leave. The process allows a peer to be updated with the dynamically changing membership list of the virtual group via a publish-discovery and query-response mechanism.
  • VG1 logically resides in the virtual world.
  • Peer A joins VG1 (step 400) and, at a later time, Peer B also joins VG1 (step 402). Since the membership of the said virtual group is dynamically changing, Peer A may then leave VG 1 at some point in time (step 404) and later rejoins VG 1 at some other point in time (step 406).
  • peer A joins or leaves the virtual group VG1 , it broadcasts its membership change event within the virtual group VG1.
  • Other member peers of the virtual group VG1 that are currently online and connectable are in an active listening mode to receive and process the events accordingly.
  • the present invention uses a concept of distributed persistent advertisements, in which small pieces of information is replicated and stored redundantly on a plurality of peers in the virtual world, and preferably for a pre-determined period of time before they expire automatically.
  • a persistent membership advertisement comprises information such as the unique identifier of a triggering peer, the associated virtual group, expiration time, versioning information, propagation counter value, etc.
  • the MA is a self- contained and self-managed entity that persists for a predetermined period of time so that currently offline peers may discover at a later time and update the latest membership snapshot of the said joined virtual group.
  • the triggering peer also publishes an associated MA to a plurality of peers in the virtual world. It is noted again that these peers may or may not be members of the same virtual group. The peers that receive the MA can then propagate it to some other peers depending on the value of the propagation counter.
  • An implementation of the invention may include decrementing the counter each time a peer receives the MA and then propagating it further until the propagation counter value becomes zero. Since each MA has an expiration time, the said triggering peer may selectively republish an identical copy of the newest version of the relevant MA at a later point in time with the goal of ensuring that the virtual world maintains an accurate latest membership snapshot of all virtual groups. However, such a copy may contain a different expiration time and propagation counter value, and may be republished to a different subset of peers in the virtual world.
  • the peer when peer C joins the virtual group VG1 , the peer first publishes an associated MA with a certain version, eg. Ver1 , to the virtual world at step 408. It is noted that each peer persistently stores the latest version information of all membership activities related to the virtual group VG1. Peer C then issues a discovery for any MA's associated with VG1 at step 410 and listens to process any responses accordingly at step 412. In the example implementation using Project JXTA, a discovery process can be performed within the scope of the virtual group. Peer C then broadcasts the new membership event to VG 1 at step 414 with a goal to immediately notify the other members which are currently online.
  • a discovery process can be performed within the scope of the virtual group. Peer C then broadcasts the new membership event to VG 1 at step 414 with a goal to immediately notify the other members which are currently online.
  • Peer C may discover up to four MA's which were published earlier during steps 400 - 406. If so, Peer C persistently cache the discovered MA's in the local data storage. With knowledge of the versioning information embedded in the MA's, Peer C only keeps the latest versions of relevant MA's. Effectively, Ver3 of the said MA should obsolete the corresponding older versions Ver1 and Ver2 of the said MA (which will be purged from the local data storage).
  • the same version management mechanism is applied when a peer receives a propagated MA.
  • a newer version MA will obsolete other relevant MA's of older versions which will be removed from the data store. Therefore, in some steady state of the network, Peer C may only discover the newer versions of MA's in VG1.
  • This version management mechanism provides a self-managed means for efficient distributed storage and reduces network traffic during the republishing, propagation and discovery processes.
  • the triggering peer In addition to discovery of MA's for the virtual group, the triggering peer also selectively issues requests for a full or partial membership snapshot from a plurality of other members (steps 416 and 420) and listens for any responses (steps 418 and 422). Each membership snapshot response comprises latest versioning information of each member in the virtual group, as known by the corresponding responding member.
  • the responding member may or may not have the latest version MA's of all members of the virtual group, it is possible that the membership snapshot response is not the most up-to-date and accurate at that point in time.
  • the triggering peer can compare the versioning information of all the membership snapshots responded by the responding members. In the event of the existence of multiple versions of MA for a particular member, the newest version will obsolete all older versions and the responding member having the older versions updates the membership snapshot accordingly. In this manner, all online members in the virtual group can quickly reach a stable state and mutually share a common up-to-date membership snapshot. This also reduces delay and data exchanges.
  • certain security measures are put in placed to ensure the security of the online presence management and the membership snapshot mechanisms. It is possible that some intruders or offending peers may broadcast fraudulent membership events or publish misleading MA's with a direct or indirect effect of engendering poor performance of the network. To thwart the potential security threats, it is proposed to protect the privacy and data integrity of all transmitted packets and locally stored data. Each peer can have a public-private key pair which is used to exchange a secret encryption key mutually shared by the said communicating peers. All packets are first end-to-end protected with the secret encryption key before being transmitted.
  • the described embodiment provides a fundamental enabling technology for building a comprehensive platform for peer-to-peer communication and collaboration within secured virtual groups.
  • Some example applications and services include secured file management, searching, sharing and transfer directly among the members; online multi-party communication via text and rich media, and real-time group collaboration on images and documents; distributed advertising and match-making of members sharing common topics of interest; real-time publishing, notification and subscription management of specific events and information such as group contacts, activities, and announcements; enterprise content management and group sharing; and many others. Since the described embodiment is developed using the Java programming language and SOAP-based XML Web Services technology, it is truly platform and operating system agnostic and works seamlessly on almost all computing platforms as well as any Java-enabled mobile and wireless devices with a digital heartbeat.
  • each peer may be any client communication device, for example personal computers, PDA, mobile phones etc. It is noted again that the said subscribed peer can simultaneously be a member of more than one virtual group.
  • the described embodiment is implemented using Java programming language and hence it can operate on most computer operating systems and even mobile devices such as personal digital assistants (PDA) and smart-phones. However, other suitable programming languages that allow such flexibility can also be used.
  • the described embodiment describes repeating the PROBE process until a PROBE counter counts out but this is not necessary and that on the first failed attempt, the process can branched to step 232.

Abstract

A method of obtaining presence information in a decentralised network of a first one of a plurality of client communication devices by a second one of a plurality of client communication devices is disclosed herein. In a preferred embodiment, the method comprising the steps of, the second client communication device, executing a PROBE process at step 224 to establish a first virtual connection with the second client communication device in order to obtain the presence information. Upon failing to establish the connection within a specific time period; the PROBE process is repeated until a probe counter exceeds a predetermined threshold and the process branches to step 232. The failure information is broadcasted to selected client communication devices in the network that subscribe to the online presence of the second communication device so that the presence information of the first communication device is relayed to the second communication device via the selected communication device. A method of maintaining an updated membership list of communication devices in a decentralised network is also disclosed herein.

Description

A Method Of Obtaining Presence Information and A Method of Maintaining an Updated Membership List of Communication Devices in a
Decentralised Network
Background and Field of the Invention
The present invention relates to a method of obtaining presence information and to a method of maintaining real-time presence information in a decentralised network.
Existing server-based instant messaging (IM) systems normally include an online presence management server which is centrally managed and operated by a service provider. Examples include Microsoft's MSN Messenger™, Yahoo's IM Messenger™, ICQ™, Jabber's XMPP-based instant messaging systems, and others. In such centralized systems, a user first registers with the service provider to be a member of the system. The registered member, when online, connects to a server to notify the member's online presence status. The central server stores a list of all other interested members who have previously subscribed to the member's online presence, and in turn forwards the online presence status event of the particular member to other interested members but typically, only if the member has previously granted permission to those other interested members to be notified of the member's new online presence status. Similarly, the member may register interest to be notified of the online presence status of some other registered members. Thus, the central server essentially acts as a middleman to accept and relay such presence status change events to the interested members.
There are a number of drawbacks and cost considerations with such centralized systems. Being centralized presents possibilities of a single point of failure of the entire communication network, and of privacy violation of personal information by a third-party (namely, the service provider) i.e. the service provider using unauthorised use of the member's personal information. From the perspective of the service provider, maintaining a system with large number of members incurs very high investment overheads and operating costs in the form of hosting clusters of servers and databases, and assuming huge data bandwidth consumption.
To address the problems of centralised systems, decentralised systems have been proposed and an example of which is Skype that uses a globally decentralized user directory in the form of a multi-tiered network where
"supernode" peers communicate with one another in such a way that every peer in the network has full knowledge of the other peers. However, current decentralised systems are not effective in providing presence information of other peers within the network.
It is an object of the present invention of obtaining presence information and a method of maintaining updated real-time presence information of communication devices in a decentralised network which addresses at least one of the disadvantages of the prior art and/or provides the public with an useful choice.
Summary of the Invention
In a first aspect of the invention, there is provided a method of obtaining presence information in a decentralised network of a first one of a plurality of client communication devices by a second one of a plurality of client communication devices, the first client communication device being a subscriber of the second client communication device's online presence, the method comprising the steps of: the second client communication device,
(i) broadcasting information to at least one selected client communication device that subscribes to the second client's online presence; the broadcast information including identification to identify the second communication device and data indicating intention of the second communication device to obtain the presence information of the first communication device, and (ii) receiving presence information about the first communication device from the at least one selected client communication device which is connectable to the first client communication device.
As it will be apparent from the described embodiment of the invention, the method allows the second client communication device to collaborate with another device in the network so as to obtain the presence information of the first client communication device. Thus, the communication devices within the network can obtain presence information about other devices in a quicker and efficient manner.
Preferably, prior to step (i), the method further includes the step of performing a PROBE operation to establish a virtual connection with the first communication device to obtain its presence information. If the virtual connection cannot be established, the PROBE operation may be repeated. Further, the PROBE operation may be repeated for a number of times and if the virtual connection cannot be established after exceeding the number, step (ii) may be performed.
On the other hand, if the virtual connection can be established, then a periodic PING operation may be performed to the first communication device to monitor the presence of the first communication device. Preferably, if no acknowledgement is received from the first communication device, step (ii) may be performed.
Advantageously, the plurality of client communication devices may be divided into different virtual groups, the at least one selected communication device may be in the same virtual group as the first and second communication devices.
Preferably, when a said client communication device joins or leaves a virtual group, the method comprises the step of: broadcasting change in status of the said client communication device to the rest of the devices within the same virtual group. Typically, in absence of connectivity to the first communication device, the third client communication device may broadcast information relating to the second communication device's intention to obtain presence information of the first communication device to communication devices that subscribe to the online presence of the third client communication device. In this way, the third client communication device can have its own collaboration with a further communication device so that presence information of the first communication device can be obtained. In this case, the further communication device is functioning as a fourth one of the plurality communication devices and the first communication device may transmit its presence information to the second communication device via the third and fourth client communication devices.
The selected communication device may subscribe to two or more virtual groups; and the method further comprises the step of; displaying different online status to different groups.
The presence information of the first communication device may be partially transmitted to the second communication device.
Preferably, the information is broadcasted to all communication devices that subscribe to the online presence of the second communication device. Advantageous, the presence information is encrypted for transmission to the second communication device. The actions taken by the third client communication device is also important and this forms a second aspect of the present invention which provides a method of obtaining presence information in a decentralised network having a plurality of client communication devices, one of which arranged as an intermediate client device, to relay presence information of a first communication device to a second communication device, the intermediate client device being a subscriber of the online presence of the second communication device, the method comprising the steps of, the intermediate client device:
(i) receiving non-connection information from the second client communication device indicating failure to obtain presence information of the first client communication device, the information including identification to identify the second communication device; (ii) checking connectivity with the first client communication device; and if connectable, relaying presence information about the first communication device to the second communication device
In a third aspect of the present invention, there is provided a method of maintaining an updated membership list of a plurality of client communication devices that is part of a virtual group in a decentralised network, the method comprising the steps of: receiving status change information from the plurality of client communication devices whenever any of the devices change its network status, checking currency of the status change information and if it is a later version; storing the change information redundantly and in association with identity of respective communication device that has changed status; and selectively sharing the status change information with other communication devices in the virtual group so that these other devices has an updated membership list of communication devices that can join the virtual group.
In this manner, each of the communication devices can have the most up to- date version of the membership list which is by storing the status change information redundantly and versioning the status so that the most up to-date status can be distributed to all other devices within the virtual group. For example, when a communication device first logs in to the network for the first time, the device can query other devices that store the status information redundantly to obtain the latest version of the membership list.
Preferably, the change information is stored for a specific period of time before deletion.
The sharing step may further comprise the step of propagating the status change information from one device to another. The status change information may include a propagation value that limits the number of devices in which the information can propagate.
Preferably, the status change information is encrypted.
The present invention also relates to a communication device comprising means for performing the method steps discussed earlier. Brief Description of the Drawings
An embodiment of the invention will now be described, by way of example, with reference to the accompanying drawings in which,
Figure 1 illustrates a typical centralised and server-based messaging and presence management system according to the prior art; Figure 2 illustrates a typical peer-to-peer decentralised network topology; Figure 3 is a flowchart depicting a process to continuously monitor online presence status of peer communication devices in the network of Figure 2; and Figure 4 is a sequence diagram depicting a process to determine a latest membership list of a joined virtual group.
Detailed Description of the Preferred Embodiment
Figure 1 is a block diagram illustrating a typical centralised and server-based messaging and presence management system according to the prior art. The system normally comprises a high-performance cluster of servers and databases (of which a server 108 and database 110 are shown) which are dedicated and centrally managed by a service provider. To communicate with the server 108 over a network such as the Internet 112, users of client computer systems 100,102,104,106 first creates an account by registering with the server. In most cases, the account is unique with respect to each computer system. Each user member can then create his or her own roster which is stored persistently in the centralised database 110. A roster comprises a list of other members whose online presence status is being subscribed by a user member for notification of any changes of their online presence status. Suppose that member 100 has subscribed for the online presence of members 102 and 104. When member 102 comes online, it will first notify the server 108 of its new presence status. The centralized server 108, which stores the member 100's roster, will then notify member 100 (if it is currently also online) about the new presence status of the subscribed member 102. Essentially, the server 108 records all the online presence statuses and notifies of any online presence status change events for all registered members of the system.
Typical examples of such server-based systems include Microsoft's MSN Messenger™, Yahoo's Messenger™, America Online's AIM™, ICQ™, and Jabber's XMPP-based instant messaging systems. In these systems, the service provider maintains the centralized servers at some data centres and all the users are connected directly to them.
Figure 2 illustrates a typical computer networking topology of a decentralized and distributed messaging and presence management network as an example of a computing environment for implementing the present invention. It is apparent that in a decentralized and distributed peer-to-peer network system, there is no requirement for the existence of any dedicated and centrally operated servers and databases and each client communication devices or peers 130-137 maintains its own roster. Thus, advantages of decentralised networks are that it does not have a single point of failure, requires practically no upfront cost overheads and no operating and maintenance expenses. The peers can reside in any part of the network and in a geographically dispersed manner and they are connectable to one another either directly or indirectly via one or more intermediary peers. In this illustration, peers 130-133 are in a public Internet whereby these peers can most likely be directly connectable with one another via their IP addresses and ports. Peers 134 and 135 reside within a private subnet 150 behind a firewall 162 (and also possibly a network proxy or network address translator, NAT). Peers 136 and 137 reside within another private subnet 152 behind a firewall 160 (and also possibly a network proxy or NAT). Due to the nature and purpose of the firewalls and NATs, the peers in subnet 150 would not be able to establish direct network connections with the peers in subnet 152. In this scenario, some other intermediary peers in the ecosystem can act as relays to help bridge up the virtual connection between the said communicating peers such that they can indirectly exchange data with one another. The open-source Project JXTA by Sun Microsystems™ is one example of the peer-to-peer networking substrate which makes such said indirect virtual connections possible. Where appropriate, example implementation of the present invention is made with reference to Project JXTA although it is clear that the present invention is not restricted to or dependent upon the use of Project JXTA.
The broken lines in Figure 2 illustrate formation of virtual groups 180,182,184 with each group having a number of member peers. Generally, a virtual group is a logical partition that represents a dynamic set of peers sharing some common topics of interest. The virtual group is defined in an overlay network which may span across a plurality of disparate physical network boundaries. Each peer may join a plurality of virtual groups simultaneously (e.g. peer 133), and this information is included in the roster of the peer 133. Some of the virtual groups can be public in which any member who is aware of the public virtual group can join or leave at any time. Alternatively or in addition, some of the groups can be private in which access to the group is secured i.e. password-protected or protected by some other forms of membership authentication mechanisms such that only the group owner who created the private virtual group (or another designated member peer) can invite other new members to join by providing the valid membership credentials. In addition, all virtual groups reside within the virtual world which comprises all the peers in the network.
Figure 3 is a flowchart depicting a process to continuously monitor online presence status of peer client communication devices in a decentralised network and reference is also made to Figure 2. Upon the startup of a first peer 130 (i.e. first logon to the network), the peer device has no information about the online presence status of the other peer devices 131 ,132,133 that subscribe to the same virtual group and thus, the peer devices 131 ,132,133 are by default assumed to be offline. Thus, the first peer 130 proceeds to activate a timer unit at step 222 and performs a PROBE operation at step 224 which is time- controlled by the timer unit. During the probing process, the first peer attempts to establish a virtual connection with a second peer client device 132. In the example implementation using Project JXTA, a route resolution request is performed and then the first peer 130 waits for the connection to be established at step 226. If both peers are online at the same time, then the virtual connection can be established most of the time. On the other hand, if a connection cannot be established within a predetermined period (as determined by the timer unit) as indicated at step 228, then the PROBE process is repeated in a timed periodic manner as controlled by the timer unit (step 222). A counter keeps track of the number of repetition of the PROBE process and at step 230, the counter is decremented with each loop. After the PROBE process is repeated for a predetermined number of times with no success, the first peer 130 enters into a collaborative online presence query and update process as indicated at step 232 by turning to the rest of the peers in the network. The selection of the collaborative peers is based on some random set of suitable candidates, which is either from a plurality of other online peers in a virtual group common to the first peer or a plurality of non-subscribed peers (e.g., relay and rendezvous peers in the example implementation using Project JXTA) or a combination of the said candidate collaborative peers. The rationale of this approach is that if the second peer 132 is actually online, there is a very high chance that at least one of the other peers within the network will be able to or has established a virtual connection therewith. In either case, such a peer 131 acting as a collaborative peer now shares the known online presence status of the second peer 132 with the first peer 130 so that a virtual connection is established via the third peer 131. The process then proceeds to step 240.
When the first peer 130 manages to establish a virtual connection with the second peer 132 (either directly or with assistance of a collaborative peer 131), the first peer 130 performs a PING-ACK process which is time-controlled by a timer unit at step 240. The timer unit tracks the duration of a peer member (eg. the second peer) when it was last known to be online. If the duration does not exceed a predetermined threshold duration, the comparison being carried out at step 242, the first peer issues a "PING" command at step 244 to determine the current online presence status of the said subscribed member and waits for an acknowledge response, ACK. If the first peer receives an ACK packet within a predetermined duration at step 248, the first peer decodes the content of the ACK packet and updates the online presence status of the second peer accordingly. If no ACK is received, then the PING-ACK procedure is repeated until T1 exceeds certain threshold. The ACK packet comprises a unique identifier of the second peer and the current online presence status with respect to each of the said joined virtual groups (since the second peer can be a member of different virtual groups).
In the event that the second peer has blocked the online presence subscription of the first peer, no ACK packet will be returned even if the second peer is online. In the event that the online presence subscription blocking is applied to only some but not all the different virtual groups, only the corresponding blocked virtual groups will be marked as offline in the said ACK packet. In this manner, a peer is empowered with a finer granularity control over the online presence visibility in each of the said joined virtual groups. Also, the status of a peer can appear different in different virtual groups, such as Online and Available" in one virtual group and Online but Do Not Disturb" in a second virtual group.
Once the second peer is found to be still online, the last known online clock time is updated at step 250 and the PING-ACK process is repeated in a timed periodic manner as controlled by the timer unit at step 240. In the event there is no ACK packet received after the predetermined threshold has exceeded at step 242, the first peer performs a collaborative online presence query and update process to verify whether the second peer is still online at step 252. The selection of collaborative peers at step 252 is similar to that in step 232. This procedure prevents the scenario of immediately setting the second peer member from online to offline status because the absence of the ACK reply packet could be a result of a temporary disruption of the virtual connection or a lost packet transmission in a purely decentralized virtual world. The selected collaborative peers can help to send a new PING query to the second peer on behalf of the first peer to check whether the second peer is online as at step 254. The PING query includes a PING packet comprising additional data such as the first peer's unique identifier so that the second peer, upon receiving the PING packet, is aware that this is a query on behalf of the first peer. Any ACK packet received by the collaborative peer is first transcoded before it is sent back to the first peer. If at step 254, the second peer is found to be online, it is updated in step 250 and the PING-ACK process is repeated. Otherwise, the status of the second peer member is set as offline and the online presence status monitoring mechanism is repeated at step 200. In the event that the virtual connection is broken during the PING process (step 244), a new virtual connection is first attempted before waiting for the ACK packet in step 246.
The network of communication devices allows instantaneous update of online presence status change events, which when occur, a BROADCAST packet is sent out by a triggering peer to the peers that subscribed to the triggering peer's online presence. These peers are already in active listening mode to process the BROADCAST packet accordingly. In some situations, the packet may be lost during transmission or some virtual connections are broken such that some of the peers may fail to receive the online presence status change event instantaneously. The collaborative peers can thus assist the broadcast process by relaying the events on behalf of the triggering peer.
As is apparent in a decentralised network environment, in the absence of a centralized server, each peer now maintains and stores its roster on the device's local storage. A roster comprises information concerning all the virtual groups subscribed by a corresponding peer and their respective list of members whose online presence statuses are being subscribed to. Membership within a particular virtual group is dynamic in the sense that a member can leave at some point in time and another peer may become a new member at another point in time. Since membership changes can occur when a peer is offline and not connected to the virtual world, it becomes a challenge for the said peer to maintain a latest membership snapshot of a particular virtual group when the offline peer comes online at a later time. Since there is no dedicated and centralized database server to keep track and store persistently the latest membership change information of any virtual groups, the present invention proposes that a newly login peer to perform a discovery process and retrieve the most up-to-date membership snapshots of all the virtual groups in which the peer is a member. This is . achieved by using a versioned-based membership advertisement that is replicated and stored persistently on a plurality of peers in the virtual world as explained below. Figure 4 is a sequence diagram depicting a process to determine a latest membership list of a joined virtual group in which peers can join and leave. The process allows a peer to be updated with the dynamically changing membership list of the virtual group via a publish-discovery and query-response mechanism. Suppose that three peers A, B and C are joining and leaving a particular virtual group, VG1 , which logically resides in the virtual world. Peer A joins VG1 (step 400) and, at a later time, Peer B also joins VG1 (step 402). Since the membership of the said virtual group is dynamically changing, Peer A may then leave VG 1 at some point in time (step 404) and later rejoins VG 1 at some other point in time (step 406). When peer A joins or leaves the virtual group VG1 , it broadcasts its membership change event within the virtual group VG1. Other member peers of the virtual group VG1 that are currently online and connectable are in an active listening mode to receive and process the events accordingly. For those members which are currently offline, such as peer C, such events will be missed. To circumvent this problem, the present invention uses a concept of distributed persistent advertisements, in which small pieces of information is replicated and stored redundantly on a plurality of peers in the virtual world, and preferably for a pre-determined period of time before they expire automatically.
A persistent membership advertisement (MA) comprises information such as the unique identifier of a triggering peer, the associated virtual group, expiration time, versioning information, propagation counter value, etc. The MA is a self- contained and self-managed entity that persists for a predetermined period of time so that currently offline peers may discover at a later time and update the latest membership snapshot of the said joined virtual group. In addition to broadcasting the membership change event, the triggering peer also publishes an associated MA to a plurality of peers in the virtual world. It is noted again that these peers may or may not be members of the same virtual group. The peers that receive the MA can then propagate it to some other peers depending on the value of the propagation counter. An implementation of the invention may include decrementing the counter each time a peer receives the MA and then propagating it further until the propagation counter value becomes zero. Since each MA has an expiration time, the said triggering peer may selectively republish an identical copy of the newest version of the relevant MA at a later point in time with the goal of ensuring that the virtual world maintains an accurate latest membership snapshot of all virtual groups. However, such a copy may contain a different expiration time and propagation counter value, and may be republished to a different subset of peers in the virtual world.
To more specifically elaborate the above, when peer C joins the virtual group VG1 , the peer first publishes an associated MA with a certain version, eg. Ver1 , to the virtual world at step 408. It is noted that each peer persistently stores the latest version information of all membership activities related to the virtual group VG1. Peer C then issues a discovery for any MA's associated with VG1 at step 410 and listens to process any responses accordingly at step 412. In the example implementation using Project JXTA, a discovery process can be performed within the scope of the virtual group. Peer C then broadcasts the new membership event to VG 1 at step 414 with a goal to immediately notify the other members which are currently online. In some dynamic state of the eco-system, Peer C may discover up to four MA's which were published earlier during steps 400 - 406. If so, Peer C persistently cache the discovered MA's in the local data storage. With knowledge of the versioning information embedded in the MA's, Peer C only keeps the latest versions of relevant MA's. Effectively, Ver3 of the said MA should obsolete the corresponding older versions Ver1 and Ver2 of the said MA (which will be purged from the local data storage).
The same version management mechanism is applied when a peer receives a propagated MA. A newer version MA will obsolete other relevant MA's of older versions which will be removed from the data store. Therefore, in some steady state of the network, Peer C may only discover the newer versions of MA's in VG1. This version management mechanism provides a self-managed means for efficient distributed storage and reduces network traffic during the republishing, propagation and discovery processes. In addition to discovery of MA's for the virtual group, the triggering peer also selectively issues requests for a full or partial membership snapshot from a plurality of other members (steps 416 and 420) and listens for any responses (steps 418 and 422). Each membership snapshot response comprises latest versioning information of each member in the virtual group, as known by the corresponding responding member. As the responding member may or may not have the latest version MA's of all members of the virtual group, it is possible that the membership snapshot response is not the most up-to-date and accurate at that point in time. By leveraging the collaborative membership query and update mechanism of Figure 4, the triggering peer can compare the versioning information of all the membership snapshots responded by the responding members. In the event of the existence of multiple versions of MA for a particular member, the newest version will obsolete all older versions and the responding member having the older versions updates the membership snapshot accordingly. In this manner, all online members in the virtual group can quickly reach a stable state and mutually share a common up-to-date membership snapshot. This also reduces delay and data exchanges.
Preferably, certain security measures are put in placed to ensure the security of the online presence management and the membership snapshot mechanisms. It is possible that some intruders or offending peers may broadcast fraudulent membership events or publish misleading MA's with a direct or indirect effect of engendering poor performance of the network. To thwart the potential security threats, it is proposed to protect the privacy and data integrity of all transmitted packets and locally stored data. Each peer can have a public-private key pair which is used to exchange a secret encryption key mutually shared by the said communicating peers. All packets are first end-to-end protected with the secret encryption key before being transmitted. In this case, it will also be safe from the prying eyes of any intermediate relay peers during the collaborative query and update mechanisms since the said encrypted packet can only be decrypted by the target peer which knows the said secret encryption key. In addition, data integrity is guaranteed with the use of hashed checksums to ensure that the information is not modified during transmission or storage, and to eliminate any invalid update events and MA's from being broadcasted, stored, propagated and processed. In some situation, the virtual connections among peers can be secured using standard SSL (Secured Sockets Layer) and TLS (Transport Layer Security).
It will be apparent that the described embodiment provides a fundamental enabling technology for building a comprehensive platform for peer-to-peer communication and collaboration within secured virtual groups. By leveraging the real-time online presence information of members within each virtual group, different pluggable software subsystems can be developed for the platform. Some example applications and services include secured file management, searching, sharing and transfer directly among the members; online multi-party communication via text and rich media, and real-time group collaboration on images and documents; distributed advertising and match-making of members sharing common topics of interest; real-time publishing, notification and subscription management of specific events and information such as group contacts, activities, and announcements; enterprise content management and group sharing; and many others. Since the described embodiment is developed using the Java programming language and SOAP-based XML Web Services technology, it is truly platform and operating system agnostic and works seamlessly on almost all computing platforms as well as any Java-enabled mobile and wireless devices with a digital heartbeat.
The described embodiment should not be construed as limitative. For example, each peer may be any client communication device, for example personal computers, PDA, mobile phones etc. It is noted again that the said subscribed peer can simultaneously be a member of more than one virtual group. The described embodiment is implemented using Java programming language and hence it can operate on most computer operating systems and even mobile devices such as personal digital assistants (PDA) and smart-phones. However, other suitable programming languages that allow such flexibility can also be used.
The described embodiment describes repeating the PROBE process until a PROBE counter counts out but this is not necessary and that on the first failed attempt, the process can branched to step 232.
Having now fully described the invention, it should be apparent to one of ordinary skill in the art that many modifications can be made hereto without departing from the scope as claimed.

Claims

1. A method of obtaining presence information in a decentralised network of a first one of a plurality of client communication devices by a second one of a plurality of client communication devices, the first client communication device being a subscriber of the second client communication device's online presence, the method comprising the steps of: the second client communication device, (i) broadcasting information to at least one selected client communication device that subscribes to the second client's online presence; the broadcast information including identification to identify the second communication device and data indicating intention of the second communication device to obtain the presence information of the first communication device, and
(ii) receiving presence information about the first communication device from the at least one selected client communication device which is connectable to the first client communication device.
2. A method according to claim 1 , wherein prior to step (i), the method further includes the step of performing a PROBE operation to establish a virtual connection with the first communication device to obtain its presence information.
3. A method according to claim 2, further comprising the step of: repeating the PROBE operation if the virtual connection cannot be established.
4. A method according to claim 3, wherein the PROBE operation is repeated for a number of times and if the virtual connection cannot be established after exceeding the number, step (ii) is performed.
5. A method according to claim 2 or 3, further comprising the step of, if the virtual connection can be established, performing a periodic PING operation to the first communication device to monitor the presence of the first communication device.
6. A method according to claim 5, wherein if no acknowledgement is received from the first communication device, step (ii) is performed.
7. A method according to any preceding claim, wherein the plurality of client communication devices are divided into different virtual groups, the at least one selected communication device is in the same virtual group as the first and second and second communication devices.
8. A method according to claim 7, wherein when a said client communication device joins or leaves a virtual group, the method comprises the step of: broadcasting change in status of the said client communication device to the rest of the devices within the same virtual group.
9. A method according to any claim 8, further comprising the step of: in absence of connectivity to the first communication device, the third client communication device broadcasting information relating to the second communication device's intention to obtain presence information of the first communication device to communication devices that subscribe to the online presence of the third client communication device.
10. A method according to claim 9, further comprising the steps of: the third client communication device receiving connectivity information from a fourth one of the plurality of client communication devices; and the first communication device transmitting its presence information to the second communication device via the third and fourth client communication devices.
11. A method according to any of claims 7 to 10, wherein the selected communication device subscribes to two or more virtual groups; and the method further comprises the step of; displaying different online status to different groups.
12. A method according to any preceding claim, wherein the presence information of the first communication device is partially transmitted to the second communication device.
13. A method according to any preceding claim, wherein the information is broadcasted to all communication devices that subscribe to the online presence of the second communication device.
14. A method according to any preceding claim, wherein at least some of the client communication devices are computer systems.
15. A method according to any preceding claim, wherein the presence information is encrypted for transmission to the second communication device.
16. A method of obtaining presence information in a decentralised network having a plurality of client communication devices, one of which arranged as an intermediate client device to relay presence information of a first communication device to a second communication device, the intermediate client device being a subscriber of the online presence of the second communication device, the method comprising the steps of, the intermediate client device:
(i) receiving non-connection information from the second client communication device indicating failure to obtain presence information of the first client communication device, the information including identification to identify the second communication device;
(ιϊ) checking connectivity with the first client communication device; and if connectable, relaying presence information about the first communication
device to the second communication device.
17. A method of maintaining an updated membership list of a plurality of
client communication devices that is part of a virtual group in a decentralised network, the method comprising the steps of:
receiving status change information from the plurality of client communication devices whenever any of the devices change its network status,
checking currency of the status change information and if it is a later version; storing the change information redundantly in association with identity of respective communication device that has changed status; and selectively sharing the status change information with other
communication devices in the virtual group so that these other devices has an updated membership list of communication devices that can join
the virtual group.
18. A method according to claim 17, wherein the change information is
stored for a specific period of time before deletion.
19. A method according to claim 17 or 18, wherein the sharing step further
comprises the step of propagating the status change information from one device to another.
20. A method according to claim 19, wherein the status change information includes a propagation value that limits the number of devices in which the information can propagate.
21. A method according any of claims 17 to 20, wherein the status change information is encrypted.
22. A communication device comprising means for performing the steps according to any of the preceding claim.
PCT/SG2006/000035 2005-02-22 2006-02-22 A method of obtaining presence information and a method of maintaining an updated membership list of communication devices in a decentralised network WO2006091178A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US65533005P 2005-02-22 2005-02-22
US60/655,330 2005-02-22

Publications (2)

Publication Number Publication Date
WO2006091178A1 true WO2006091178A1 (en) 2006-08-31
WO2006091178A8 WO2006091178A8 (en) 2006-11-23

Family

ID=36927715

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SG2006/000035 WO2006091178A1 (en) 2005-02-22 2006-02-22 A method of obtaining presence information and a method of maintaining an updated membership list of communication devices in a decentralised network

Country Status (1)

Country Link
WO (1) WO2006091178A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2239921A1 (en) 2009-04-08 2010-10-13 Research In Motion Limited A method, system and mobile device for implementing a serverless presence system
US8966054B2 (en) 2009-04-08 2015-02-24 Blackberry Limited Method, system and mobile device for implementing a serverless presence system
US20150113613A1 (en) * 2011-07-19 2015-04-23 Samsung Electronics Co., Ltd. Apparatus and method for providing authorization based enhanced address book service in mobile communication system
CN105656899A (en) * 2016-01-07 2016-06-08 北京众享比特科技有限公司 Decentralizing login methods and clients and system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030045296A1 (en) * 2001-09-06 2003-03-06 Jeremy Burr Establishing communications between devices within a mobile ad hoc network based on user attributes
US20030179742A1 (en) * 2000-03-16 2003-09-25 Ogier Richard G. Method and apparatus for disseminating topology information and for discovering new neighboring nodes
WO2003105102A1 (en) * 2002-06-05 2003-12-18 Eka Systems Inc. System and method for forming, maintaining and dynamically reconfigurably routing in an ad-hoc network
US20040064568A1 (en) * 2002-09-26 2004-04-01 Arora Akhil K. Presence detection using distributed indexes in peer-to-peer networks
US20040125776A1 (en) * 2002-12-26 2004-07-01 Haugli Hans C. Peer-to-peer wireless data communication system with progressive dynamic routing
GB2398704A (en) * 2003-02-21 2004-08-25 Toshiba Res Europ Ltd Address autoconfiguration in ad hoc networks

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030179742A1 (en) * 2000-03-16 2003-09-25 Ogier Richard G. Method and apparatus for disseminating topology information and for discovering new neighboring nodes
US20030045296A1 (en) * 2001-09-06 2003-03-06 Jeremy Burr Establishing communications between devices within a mobile ad hoc network based on user attributes
WO2003105102A1 (en) * 2002-06-05 2003-12-18 Eka Systems Inc. System and method for forming, maintaining and dynamically reconfigurably routing in an ad-hoc network
US20040064568A1 (en) * 2002-09-26 2004-04-01 Arora Akhil K. Presence detection using distributed indexes in peer-to-peer networks
US20040125776A1 (en) * 2002-12-26 2004-07-01 Haugli Hans C. Peer-to-peer wireless data communication system with progressive dynamic routing
GB2398704A (en) * 2003-02-21 2004-08-25 Toshiba Res Europ Ltd Address autoconfiguration in ad hoc networks

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2239921A1 (en) 2009-04-08 2010-10-13 Research In Motion Limited A method, system and mobile device for implementing a serverless presence system
US8966054B2 (en) 2009-04-08 2015-02-24 Blackberry Limited Method, system and mobile device for implementing a serverless presence system
US20150113613A1 (en) * 2011-07-19 2015-04-23 Samsung Electronics Co., Ltd. Apparatus and method for providing authorization based enhanced address book service in mobile communication system
US10257195B2 (en) * 2011-07-19 2019-04-09 Samsung Electronics Co., Ltd Apparatus and method for providing authorization based enhanced address book service in mobile communication system
CN105656899A (en) * 2016-01-07 2016-06-08 北京众享比特科技有限公司 Decentralizing login methods and clients and system

Also Published As

Publication number Publication date
WO2006091178A8 (en) 2006-11-23

Similar Documents

Publication Publication Date Title
US7403980B2 (en) Methods and apparatus for scalable, distributed management of virtual private networks
AU2013312982B2 (en) Physical security system having multiple server nodes
US7657597B2 (en) Instant messaging using distributed indexes
Traversat et al. Project JXTA 2.0 super-peer virtual network
US7533141B2 (en) System and method for unique naming of resources in networked environments
US7206934B2 (en) Distributed indexing of identity information in a peer-to-peer network
US8176189B2 (en) Peer-to-peer network computing platform
US8204992B2 (en) Presence detection using distributed indexes in peer-to-peer networks
US7165107B2 (en) System and method for dynamic, transparent migration of services
EP1386467B1 (en) System and method for responding to resource requests in distributed computer networks
US7197565B2 (en) System and method of using a pipe advertisement for a peer-to-peer network entity in peer-to-peer presence detection
US7395536B2 (en) System and method for submitting and performing computational tasks in a distributed heterogeneous networked environment
US20160352588A1 (en) Scalable proxy clusters
US7876698B2 (en) Distributed presence management in peer-to-peer networks
CN101009567A (en) A method and system utilizing peer-to-peer network entity to provide the network service
Lei et al. An overview of reliable server pooling protocols
WO2006091178A1 (en) A method of obtaining presence information and a method of maintaining an updated membership list of communication devices in a decentralised network
da Silva Boger et al. Intrusion-tolerant shared memory through a p2p overlay segmentation
Junginger et al. Peer‐To‐Peer Middleware
Liotta et al. Content-aware networks
Kay et al. DyCER: a lightweight data sharing system using replication
Tuexen et al. An Overview of Reliable Server Pooling Protocols Status of This Memo This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited.
Boutaba Peer-to-Peer Networking: An Overview

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 06717160

Country of ref document: EP

Kind code of ref document: A1