Source code: com/ubermq/chord/ChordNodeProvider.java
1 package com.ubermq.chord;
2
3 /**
4 * Additional operations that a chord node must provide
5 * in order to advertise its services to the infrastructure.
6 */
7 public interface ChordNodeProvider
8 extends ChordNode
9 {
10 /**
11 * Returns the URI that clients should connect to
12 * for communication with this node.<P>
13 *
14 * @return a full URI that can be used to connect
15 * to and communicate with this node from remote
16 * locations.
17 * @see com.ubermq.chord.ChordIdentifierFactory
18 */
19 public java.net.URI getServiceURI();
20
21 /**
22 * Stabilizes this node by verifying the immediate successor node
23 * is correct. We also notify the successor about ourselves so it
24 * knows that we are the correct predecessor.<P>
25 *
26 * This method should be executed periodically to ensure correctness.
27 */
28 public void stabilize();
29
30 /**
31 * Verifies and potentially corrects a random entry in the finger table
32 * to be the optimal finger in the chord infrastructure. The optimal
33 * finger can change as nodes join and leave the infrastructure.
34 */
35 public void fixFingers();
36 }