Dalam bidang sains komputer, **pengkomputeran teragih** ialah satu kaedah untuk melakukan sesuatu tugasan dengan menggunakan berbilang komputer. Satu tugasan besar dipecahkan kepada tugasan-tugasan yang kecil dan dilaksanakan oleh komputer-komputer mikro (PC atau Mac).

### Bagaimana ia berfungsi

Selalunya komputer-komputer ini dihubungkan dengan mnggunakan internet. Aplikasi-aplikasi internet memainkan peranan yang penting dalam sistem komputer ini,terutamanya digunakan bersama dengan bahasa pengaturcaraan seperti Java. Ia berfungsi apabila pengguna memuatturunkan perisian Java dari internet dan atur cara ini akan memuatturunkan pula ‘tugas’ yang perlu ia laksanakan dan hasilnya diberikan semula kepada pelayan utama.

Contoh-contoh projek pengkomputeran teragih yang sedang dilaksanakan
--------------------------------------------------------------------

* Amoeba distributed operating system
* Berkeley NOW Project
* Berkeley Open Infrastructure for Network Computing (BOINC) (salah satu infrastruktur pengkomputeran teragih yang diasaskan dan dibagunkan oleh SETI@home project)
* Climateprediction.net
* Distributed.net (Mempunyai banyak projek salah satunya ialah mencari Golomb rulers yang optimal.Sesetengah dari yang berkrjasama dgn Distributed.net ialah yang tidak berasaskan keuntungan)
* Distributed Folding (ia berfungsi sama seperti Folding@Home tetapi dengan algoritma genetic yang cuba untuk membaiki keputusan setiap masa).
* FAFNER
* Folding@Home (projek University of Illinois at Urbana-Champaign untuk menyelakukan 'penglipatan protein' (protein folding)
* GIMPS -- Great Internet Mersenne Prime Search
* Lifemapper –Cuba untuk membina taburan spesies biologlogi global
* MD5CRK-cuba untuk menceraikan cryptographic hash function MD5 yang selalu digunakan.
* Seventeen or bust – cuba untuk mencari nombor perdana berkala 7 untuk menyelesaikan masalah ‘Sierpinski’.Stakat ini nombor perdana berkala 6 sudah ditemui.
* SETI@home - Searching for Signs of Extra-Terrestrial Intelligence (SETI).
* United Devices – Rangkaian pengkomputeran teragih komrsial yang terbesar.

Infrastruktur bagi pengkomputeran teragih
-----------------------------------------

* COBRA - Common Object Request Broker Architecture
* SOAP
* XML-RPC
* Xgrid
* ICE

Isu–isu dalam pengkomputeran teragih
------------------------------------

### Adakah semua tugas sesuai untuk pengkomputeran teragih?

Pengkomputeran teragih berkerja secara mmbahagi-bahagikan tugas yang besar kepada tugas-tugas yang kecil dan ia akan diagih-agihkan kepada mikro komputer yang lain untuk dilaksanakan.Jika tugas tersebut tidak boleh dipecahkan kepada tugas yang kecil maka pengkomputeran teragih tidak sesuai untuk tugasan tersebut.Contoh tugasan yang tidak boleh dipecahkan kepada tugasan yang kecil ialah satu tugasan yang mesti dilakukan secara linear dan ia mesti dilaksanakan secara bersiri,keputusan yang sebelum diperlukan untuk melaksanakan tugasan yang akan datang. Kerja-kerja yang melibatkan kerahsiaan yang tinggi juga tidak sesuai untuk dilaksanakan menggunakan kaedah pengkomputeran ini.Contoh-contoh yang memerlukan kerahsiaan yang tinggi ialah penyelidikan mengenai ketenteraan,merekacipta senjata termaju,penyelidikan megenai teknologi nuklear pemusnah atau yang melibatkan patent hakcipta.

### Protokol komunikasi

Untuk merealisasikan pengkomputeran teragih, sistem untuk komputer utama mengagihkan kerja-kerja dan mendapatkan semula hasilnya dari pengguna adalah penting.Email dan http telah menjadi mekanisma komunikasi yang digunakan secara meluas.Pilihan bergantung kepada sumber yang ada.

Jika sesebuah komputer hanya berada ditalian(online) hanya sejam sehari,maka kaedah email adalah yang paling sesuai.Masalah yang terdapat disini ialah apabila komputer pengguna hendak membuka email dan kita mesti ingat bahawa tidak semua pengguna menggunakan pembaca email yang sama,juga pengguna tidak akan suka jika terdapat email yang terlalu banyak dalam peti mel mereka.

Jika komputer utama mempunyai pelayan yang sentiasa berada ditalian maka kaedah pelayan web (web server). Pengguna boleh membuat permintaan http kepada URL dan pelayan akan meberikan pakej kerja kepada pengguna.Protokol lain adalah kurang praktikal.

### Bagaimana komputer pengguna akan bekerja

Pengkomputeran teragih berkonsepkan bahawa pengguna boleh terus menggunakan komputer mereka tanpa meyedari bahawa komputer mereka sedang melakukan tugasan lain. Terdapat dua keadah biasa yang digunakan iaitu menjalankan rutin melahu (idle) atau menulis satu penyelamat skrin (screen saver).

Tugasan melahu hanya akan dilakukan apabila komputer tidak melakukan apa-apa(yelah,dah nama pun melahu).Penjadualan melahu akan direka untuk bekerja pada masa ini.Jika pengguna menggerakan tetikus maka tugasan tersebut akan menghentikan aktivitinya dan menunggu untuk melaksanakan apa yang pengguna mahu.Sistem pengoperasian moden dapat melakukan rutin ini dengan sangat baik.

Kaedah lain yang popular ialah dengan memaparkan penyelamat skrin.Ia mudah ditulis dan ia senang untuk difahami oleh orang yang bukan dalam bidang teknikal.Pengguna biasa akan memahami bahawa penyelamat skrin hanya akan berfungsi apabila mereka keluar makan dan ia tidak akan menganggu tugas yang sedang dilakukan.Projek SETI melakukan ia dengan sangat baik, semasa ia sedang melakukan operasi pada komputer pengguna,ia akan memaparkan grafik-grafik yang menarik dan memaparkan pengiraan yang sedang dijalankan,ini akan membuatkan pengguna biasa teruja.

Penjadualan moden melakukan tugasnya dengan sangat sempurna. Pengguna tidak akan sedar bahawa komputer mereka sedang bekerja dibelakang dan ia jika dibandingkan dengan kaedah penyelamat skrin adalah jauh lebih baik.Penyelamat skrin juga akan menyebabkan pengguna biasa yang tidak memahami bidang teknikal berasa takut bahawa komputer mereka akan cepat rosak kerana sentiasa melakukan tugas tanpa rehat.

### Kaedah untuk membahagikan tugasan

Terdapat berbagai-bagai kaedah, kita ambil contoh kes **distributed.net**. Kekunci yang bermula dari kosong ke 264 dan ia akan dipecahkan kepada 228. Bila pengguna meminta sesuatu kerja, pelayan akan memberikan satu set tugas yang mempunyai 10 blok. Kenapa 228? Jawapanya mudah, blok 232 akan memakan masa terlalu lama untuk dilaksanakan dan 224 akan memakan masa terlalu cepat.

### Serangan terhadap pengkomputeran teragih

Terdapat tiga jenis serangan yang telah dikenalpasti iaitu parasit, pengacau dan kerosakan pada komputer pengguna.

Pihak yang menjalankan pengkomputeran teragih mungkin akan memberikan satu bentuk penghargaan seperti kewangan dan sebagainya.Pada masa ini,orang ramai yang ingin membantu dalam projek pengkomputeran teragih adalah kerana mereka ingin membantu.Tetapi di masa depan apabila kita dapat melihat bayaran dalam bentuk tunai kepada pengguna,ini akan mengakibatkan ramai orang untuk melibatkan diri dalam sesuatu projek.Para parasit ini akan cuba untuk medapatkan ganjaran tanpa melakukan kerja.

Seperti juga dengan parasit yang mahu mendapatkan ganjaran tanpa melakukan sebarang tugas,terdapat juga mereka yang mahu mengagalkan sesuatu projek. Ini dikenali sebagai pengacau.

Kerosakan pada komputer pengguna sebenarnya bukanlah satu bentuk serangan tetapi satu bentuk ganguan pada system.Jika aturcara untuk melaksanakan satu pengkomputeran teragih telah ditulis dengan sempurna,tetapi perkakasan pada pengguna mengalami masalah ia akan meyebabkan ralat dalam pengiraan.Pihak penyedia pengkomputeran teragih ini sepatutnya meyediakan mekanisma dalaman untuk menyemak semula data yang telah dihantar untuk memastikan ia bebas ralat. 

### Kaedah menghentikan parasit, pengacau dan ralat oleh pengguna

Cara yang paling mudah ialah dengan mengulang kerja secara rawak.Satu rutin untuk menghantar satu tugas yang sama dan meyemak samaada ia memberikan hasil yang sama atau tidak.Masalahnya ialah apabila terdapat pengguna yang bernar-benar asli hendak membantu,ia tentunya akan merugikan masa dan sumber.

Ganjaran hanya diberikan kepada tugas yang berjaya.Dengan megabaikan orang yang kurang bernasib baik yang mendapat pakej kerja yang tidak meyumbang kepada kejayaan sesuatu projek akan mengurangkan serangan.Juga dengan tidak memberi sebarang ganjaran maka motivasi para penyerang akan merudum dengan pantas.tetapi kaedah ini akan menggurangkan orang yang ingin meyumbangkan kuasa pengkomputeran meraka.

Satu lagi kaedah untuk menangani perasit dan pengacau ialah dengan mengabaikan hasil yang didapati dengan ‘luarbiasa pantas’.Sedangkan komputer yang paling moden juga mempunyai keterbatasan yang tertentu,adalah tidak masuk akal bagi sesebuah komputer yang dapat mengeluarkan hasil dengan serta merta.Selalunya parasit-parasit ini akan cuba untuk medapatkan sebanyak mungkin tugas untuk dilaksanakan supaya ganjaran yang mereka perolehi lebih tinggi.Jadi dengan cara ini ia sekurang-kurangnya dapat meminimumkan serangan.

Cara lain untuk meminimumkan serangan ialah dengan tidak menyebarkan kod sumber(source code).Kod yang telah dikompil adalah sangat sukar untuk untuk di ‘reverse engineer’ kan.Walaupun parasit-parasit ini akan dapat juga menterbalikanya namun dengan aturcara yang telah dikompil,proses ini mejadi lebih sukar.Jika komputer pelanggan tersebut telah di ‘reverse engineer’kan ia tidak menjadi masalah kerana kita boleh menyebarkan versi kedua dan parasit-parasit dan pengacau ini terpaksa melakukan kerja mereka dari mula dan akhirnya mereka akan manjadi jemu.

### Lengah

Tidak semua pengguna mempunyai talian internet yang laju seperti broadband. Talian dial-up yang lambat akan meyebabkan lengah dalam menghantar pakej dan menerima hasilnya semula.