o to step4.
Else consider itself as a SNCS, and perform orderly the followings: Initialize the Subscriber list. Start the process of listening to the booting and application requests from clients. Go to step4.
The adaptive adjustment to the server cluster is as follows:
As for the MNCS:
When receiving a reflective signal from a SNCS, the MNCS adds it into the cluster, and adds the SNCS into the BMRT and the SNCS list.
By checking the timestamp in the list of SNCS node, if the MNCS has not received any reflective signal from a SNCS for a time interval of T0=2t-5t, then the heart-beating signal will be resent to SNCS in a end-to-end manner in every time interval of Tn=T−*1/Nn, until its reflective signal is received. During this process, N0=2, Nn=Nn-1+1, and Nn<=Nmax. Nmax is the user-defined maximum number of attempts. If the MNCS has not received any reflective signal from the SNCS after Nmax times of resending, then it will consider that this SNCS is unavailable in the cluster, the cluster relations will be thus updated correspondingly. Practically, all clients bounded to the server will be released, that is, SNCS and its related clients will be deleted from BMRT table and the status of the server will be set as ‘N/A’ in the SNCS list.
As for the SNCS:
A reflective signal will be sent to the MNCS as soon as the SNCS receives the broadcast heart-beating signal.
If the SNCS has not received any heart-beating signal the MNCS that sends out in a time interval of 2t-5t, it will consider that there is no MNCS in this connected network and goes to P1:
A contesting signal is broadcasted.
If the heart-beating signal is received from the MNCS, goes to P2.
Else If the SNCS has not received any contesting signal from other SNCS, it upgrades itself into MNCS and carries out the following: resetting the SNCS list, resetting the BMRT, adding itself into the table, adding related clients' information contained in the current Subscriber list into the BMRT, starting to broadcast heart-beating signal to the network in a time interval of t, goes to P2.
Else If the SNCS has received any contesting signal from other SNCS, it will delay for a time interval which is calculated by the Binary Exponential Backoff Algorithm as R*T*2ˆN, where R is a random number, T is the last calculated delay time (its initial delay is 2t-5t), and N is the number of calls of the algorithm. If the heart-beating signal is received during the delay, it will consider itself as a SNCS and goes to P2. Otherwise goes to P1;
In addition, if at any moment a MNCS receives a heart-beating signal from another MNCS (this may happen when the topology of networks is changed, resulting in that more than one MNCS appears in the same network), the cluster relation in this case should be adjusted dynamically as follows:
The MNCS which receives the heart-beating signal will send in an end-to-end manner the collision indication signal to the source MNCS of that heart-beating signal, which includes the content of its BMRT and SNCS list;
If a MNCS A receives a collision indication signal from another MNCS B, then A will compare the number of its SNCS with that of B's. If A has no less SNCS than B does, A will insert B into its own SNCS list, and non-redundantly insert the contents of B's BMRT and SNCS into its own. A collision ACK signal will then be sent to B. B is then turned into SNCS and is sent a collision indication signal. However, if A has less SNCS than B does, A will send a collision indication signal to B, consider itself as a SNCS, stop broadcasting the heart-beating signal to the network and initialize the BMRT and the SNCS list.
Clients can use the services provided transparently by server clusters. As for the server cluster, the processing of the clients requests for services is a little different from that of the single-server system. The server cluster provides the booting service to a client after the client being powered on as follows:
The client broadcasts a DHCP message to the network;
After receiving the message, the SNCS will do nothing if the client could not be