Komputasi terdistribusi

Dalam ilmu komputer, komputasi terdistribusi mempelajari penggunaan terkoordinasi dari komputer yang secara fisik terpisah atau terdistribusi. Sistem terdistribusi membutuhkan perangkat lunak yang berbeda dengan sistem terpusat.

Tujuan 
Tujuan dari komputasi terdistribusi adalah menyatukan kemampuan dari sumber daya (sumber komputasi atau sumber informasi) yang terpisah secara fisik, ke dalam suatu sistem gabungan yang terkoordinasi dengan kapasitas yang jauh melebihi dari kapasitas individual komponen-komponennya.

Tujuan lain yang ingin dicapai dalam komputasi terdistribusi adalah transparansi. Kenyataan bahwa sumber daya yang dipakai oleh pengguna sistem terdistribusi berada pada lokasi fisik yang terpisah, tidak perlu diketahui oleh pengguna tersebut. Transparansi ini memungkinkan pengguna sistem terdistribusi untuk melihat sumber daya yang terpisah tersebut seolah-olah sebagai satu sistem komputer tunggal, seperti yang biasa digunakannya.

Salah satu masalah yang dihadapi dalam usaha menyatukan sumber daya yang terpisah ini antara lain adalah skalabilitas, dapat atau tidaknya sistem tersebut dikembangkan lebih jauh untuk mencakup sumber daya komputasi yang lebih banyak.

Arsitektur 
Banyak arsitektur perangkat lunak dan keras yang bervariasi yang digunakan untuk komputasi terdistribusi. Pada tingkat yang lebih rendah, penghubungan beberapa [CPU] dengan menggunakan jaringan sangat dibutuhkan. Pada tingkat yang lebih tinggi menghubungkan proses yang berjalan dalam CPU tersebut dengan sistem komunikasi juga dibutuhkan.

Arsitektur umum yang memungkinkan sistem terdistribusi antara lain:
 klien-server: klien menghubungi server untuk pengambilan data, kemudian server memformatnya dan menampilkannya ke pengguna.
 arsitektur 3-tier: Kebanyakan aplikasi web adalah 3-Tier.
 arsitektur N-tier: N-Tier biasanya menunjuk ke aplikasi web yang menyalurkan lagi permintaan kepada pelayanan enterprise. Aplikasi jenis ini paling berjasa bagi kesuksesan server aplikasi.
 Tightly coupled: biasanya menunjuk kepada satu set mesin yang sangat bersatu yang menjalankan proses yang sama secara paralel, membagi tugas dalam bagian-bagian, dan kemudian mengumpulkan kembali dan menyatukannya sebagai hasil akhir.
 Peer-to-peer: sebuah arsitektur di mana tidak terdapat mesin khusus yang melayani suatu pelayanan tertentu atau mengatur sumber daya dalam jaringan. Dan semua kewajiban dibagi rata ke seluruh mesin, yang dikenal sebagai peer.
 Service oriented di mana sistem diatur sebagai satu set pelayanan yang dapat diberikan melalui antar-muka standar.
 Mobile code: berdasarkan prinsip arsitektur mendekatkan pemrosesan ke sumber data
 Replicated repository: Di mana repository dibuat replikanya dan disebarkan ke dalam sistem untuk membantu pemrosesan online/offline dengan syarat keterlambatan pembaharuan data dapat diterima.

Infrastruktur komputasi terdistribusi 
 Moab Grid Suite  — Cluster workload management, reporting tools, and end user submission portal
 Remote procedure call — This high-level communication mechanism allows processes on different machines to communicate using procedure calls even though they don't share the same address space.
 Distributed objects — Systems like CORBA, Microsoft D/COM, Java RMI, ReplicaNet 
 SOAP
 XML-RPC
 GLOBE
 Acute  — Distributed functional programming with migration based on OCaml.
 PYRO — Python Remote Objects
 BOINC — Berkeley Open Infrastructure for Network Computing
 GLOBUS — Home of the Globus Toolkit

Jurnal dan konferensi komputasi terdistribusi 
 The International Conference on Dependable Systems and Networks
 Symposium on Principles of Distributed Computing
 Journal of Parallel and Distributed Computing 
 IEEE transactions on Parallel and Distributed Systems 
 Distributed Computing

Lihat pula 
 Daftar proyek komputasi terdistribusi
 Komputasi grid

 
Komputasi paralel
Arsitektur perangkat lunak