Jumat, 27 November 2015

Exercise 1.11

List the three main software components that may fail when a client process invokes a method in a server object, giving an example of a failure in each case. Suggest how the components can be made to tolerate one another’s failures.
Tiga komponen perangkat lunak utama yang mungkin gagal adalah:
• proses klien mis mungkin kecelakaan
• proses server misalnya proses mungkin crash
• perangkat lunak komunikasi misalnya pesan mungkin gagal untuk tiba
Kegagalan umumnya disebabkan independen satu sama lain. Contoh kegagalan tergantung:
• jika kehilangan pesan menyebabkan proses klien atau server crash. (The menerjang server akan menyebabkan
klien untuk melihat bahwa pesan balasan hilang dan mungkin secara tidak langsung menyebabkan gagal).
• jika klien menerjang masalah penyebab server.
• jika kecelakaan dari sebuah proses menyebabkan kegagalan dalam perangkat lunak komunikasi.
Kedua proses harus dapat mentolerir pesan hilang. Klien harus mentolerir pesan balasan hilang
setelah itu telah mengirim pesan permintaan doa. Alih-alih membuat pengguna menunggu selamanya untuk jawaban, klien
Proses bisa menggunakan timeout dan kemudian memberitahu pengguna belum dapat menghubungi server.
Sebuah server sederhana hanya menunggu pesan permintaan, mengeksekusi doa dan mengirimkan balasan. Harus
benar-benar kebal terhadap pesan hilang. Tetapi jika server menyimpan informasi tentang klien mungkin akhirnya gagal
jika klien kecelakaan tanpa memberitahu server (sehingga dapat menghilangkan informasi yang berlebihan).
Perangkat lunak komunikasi harus dirancang untuk mentolerir crash dalam proses berkomunikasi.
Misalnya, kegagalan satu proses tidak harus menyebabkan masalah dalam komunikasi antara yang masih hidup yang
proses.