Sr-11-wyk-1.0-Slajd18
Niezawodna komunikacja klient-serwer
Komunikacja pomiędzy procesami w systemie rozproszonym najczęściej wykonywana jest za pośrednictwem niezawodnego, strumieniowego protokołu warstwy transportowej (np. TCP). Jest to wygodne, ponieważ protokół ten maskuje występowanie pewnych błędów, np. błędów ominięcia. Zagubienie komunikatu powoduje jego retransmisję, która jest całkowicie przezroczysta dla wyższej warstwy oprogramowania. Niektóre awarie jednak nie są maskowane. Z różnych powodów może dojść do załamania (zerwania) połączenia, co jest następnie sygnalizowane klientowi. Jedynym sposobem na maskowanie zerwanego połączenia mogłaby być automatyczna próba nawiązania go ponownie.
Na wyższym poziomie komunikacja może być realizowana z wykorzystanie zdalnych wywołań procedur (RPC) lub metod (RMI). Jedną z motywacji stosowania mechanizmu RPC było ukrywanie faktu rozproszenia wywołania procedury. Jeżeli w systemie występują awarie, to pojawiają się podczas przetwarzania sytuacje, które nie wystąpiłyby w przypadku lokalnego wywoływania procedur. Powoduje to, że zachowanie pełnej przezroczystości nie zawsze będzie możliwe. Błędy, które mogą się pojawić podczas realizacji zdalnego wywołania procedur można podzielić na 5 wymienionych klas.