Information Technology Reference
In-Depth Information
message to each one of its receivers (lines 18-23). This message includes State i as a
parameter, hence notifying SS-R j about all policy changes that occurred in WS i during
the last
τ SSS period. SS-S i then reinitializes State i and restarts its
τ SSS timer.
Table 1. Sender's Propagation Algorithm
(01) At Reception of Join(SS-R j ) Do
(02) If Agreed2Join(SS-R j ) = True Then Receivers i = Receivers i
{SS-R j };
(03) If ⎜Receivers i ⎜ = 1 Then State i .ChangeStatus = False;
(04) State i .ChangeDetails = ∅;
(05) Start τ SSS timer of SS-S i ;
(06) EndIf
(07) Send Decision2Join(SS-S i ,True) to SS-R j
(08) Else Send Decision2Join(SS-S i ,False) to SS-R j
(09) EndIf
(10) End
(11) At Reception of Leave(SS-R j ) Do
(12) Receivers i = Receivers i − {SS-R j };
(13) End
(14) At the detection of Change(C,S) in WS i Do
(15) State i .ChangeStatus = True;
(16) State i .ChangeDetails = State i .ChangeDetails ∪ {(C,S)};
(17) End
(18) At the end of τ SSS timer of SS-S i Do
(19) For each SS-R j / SS-R j ∈ Receivers i Do Send Refresh(State i ) to SS-R j ; EndFor
(20) State i .ChangeStatus = False;
(21) State i .ChangeDetails = ∅;
(22) Re-start τ SSS timer of SS-S i ;
(23) End
3.2 Soft-State Receiver Algorithm
The aim of SS-R j protocol is to detect faults in senders. For that purpose, SS-R j main-
tains a local table called SR-Table j . SR-Table j allows SS-R j to keep track of Refresh()
messages transmitted by senders. It contains an entry for each SS-S i that belongs to
Senders(SS-R j ). Each entry contains two columns:
Refreshed: SR-Table j [SS-S i ,Refreshed] equals True iff SS-R j received a Re-
fresh() from SS-S i in the current
τ SSR cycle.
Retry: SR-Table j [SS-S i ,Retry] contains the number of consecutive cycles during
which SS-R j did not receive Refresh() from SS-S i .
A temporary node failure in SS-S i may prevent SS-S i from sending Refresh() to SS-R j
during a
SSR cycle. In this case, SS-R j may want to give SS-S i a second chance for
sending Refresh() during the next
τ
τ SSR cycle. For that purpose, SS-R j maintains a
variable (positive integer) Max-Retry j . If SS-R j does not receive Refresh() from SS-S i
during Max-Retry j consecutive
SSR cycles, it considers WS i as faulty. The value of
Max-Retry j is set by CS j composer and may vary from a composite service to another.
The smaller is Max-Retry j , the more pessimistic is CS j composer about the occurrence
of faults in participants.
τ
Search WWH ::




Custom Search