Komputasi terdistribusi

Dalam ilmu komputer, **komputasi terdistribusi** atau **komputasi teragih** 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.
* *[[Computer cluster|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 pembaruan 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 http://www.replicanet.com/
* SOAP
* XML-RPC
* GLOBE
* Acute http://www.cl.cam.ac.uk/users/pes20/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