Introduction: System vs Applications
Aplikasi adalah suatu software yang dijalankan di dalam satu mesin. Contohnya adalah klasik Microsoft Word yang menyimpan datanya di mesin lokal atau PC. Meskipun software tersebut complex tetap saja kita menyebutnya application.
Aplikasi tidak tahu menahu mengenai masalah konektivitas atau keterhubungan dengan network.
Sistem terdiri dari banyak aplikasi yang tersebar di beberapa mesin. Kebanyakan yang kita bangun belakangan ini adalah distributed system. Contoh nya adalah aplikasi website dimana memiliki database yang kemungkinan ada di mesin yang berbeda. Dan dapat diakses melalui browser yang ada di mesin pengguna. Memiliki banyak sumber informasi dan sangat lekat hubungannya dengan konetivitas atau keterhubungan dengan network.
Dalam distributed system kita akan selalu berhadapan dengan masalah konektivitas. Apa yang harus dilakukan jika hubungan tersebut memiliki waktu yang lama untuk me respon, dan apa yang akan dilakukan jika server tersebut tidak running dan sebagainya.
Cara kita melakukan programming untuk aplikasi tersdistribusi berbeda dengan satu aplikasi. Kita harus dapat membedakan hal tersebut karena kebanyakan programming language dan platform menyembunyikan semua kerumitan aplikasi terdistribusi dan membungkusnya di dalam proxy seperti di dalam Java RMI atau CORBA dsb. Kita berusaha membuat abstraksi bahwa pemanggilan secara remote sama seperti local atau regular call. Kita berhadapan dengan pemanggilan method biasa dimana kita melewatkan parameter dan akan mendapat kembali object respon.