Komputasi Terdistribusi

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
Berbagai arsitektur hardware dan software digunakan bagi komputasi terdistribusi. Pada level lebih rendah, perlu untuk menghubungkan banyak CPU melalui jaringan, tanpa melihat apakah jaringan itu dicetak pada suatu circuit board atau dibuat berbentuk perangkat loosely-coupled dan kabel. Pada tingkat yang lebih tinggi, perlu interkoneksi antar proses yang berjalan pada CPU-CPU tersebut dengan suatu sistem komunikasi.
Pemrograman terdistribusi secara umum termasuk ke dalam salah satu dari arsitektur atau ketegori dasar sistem Client-server, arsitektur 3-tier, arsitektur N-tier, obyek terdistribusi, loose coupling, atau tight coupling. Penjelasan singkatnya adalah:
  • Client-server — Kode client cerdas menghubungi server untuk mendapatkan data, kemudian menformat dan menampilkannya kepada pengguna. Input pada client di-committed back ke server ketika menunjukkan suatu perubahan permanen.
  • 3-tier architecture — Sistem three-tier memindahkan kepintaran client ke suatu middle tier sehingga dapat digunakan stateless client. Ini menyederhanakan deployment dari aplikasi. Sebagian besar aplikasi web bersifat 3-Tier.
  • N-tier architecture — N-Tier umumnya merujuk ke aplikasi web yang selanjutnya meneruskan request-requestnya ke layanan enterprise lain. Tipe aplikasi ini paling bertanggungjawab bagi kesuksesan application server.
  • Tightly coupled (clustered) — Umumnya mengacu ke suatu cluster mesin yang bekerja bersama secara erat (closely), menjalankan suatu shared process secara paralel. Task dibagi ke dalam beberapa bagian terpisah dan kemudian secara bersama-sama menggabungkan hasil proses untuk memperoleh hasil akhir tunggal.
  • Peer-to-peer — Suatu arsitektur dimana tidak terdapat mesin khusus atau mesin-mesin yang menyediakan layanan atau mengelola sumber daya jaringan tersebut. Sebagai gantinya, semua tanggungjawab secara seragam dibagi antar semua mesin, dikenal sebagai peer. Peer dapat bekerja sebagai server maupun client.
  • Space based — Mengacu ke suatu infrastruktur yang membuat ilusi atau virtualisasi dari satu ruang-alamat (address-space) tunggal. Data secara transparan direplikasi sesuai dengan kebutuhan aplikasi.
Aspek dasar yang lain dari arsitektur komputasi terdistribusi adalah metode untuk mengkomunikasikan dan mengkoordinasi kerja antar proses-proses konkuren. Melalui berbagai protokol message passing, proses dapat berkomunikasi secara langsung dengan yang lain, umumnya dalam suatu hubungan master/slave. Sebagai alternatif, suatu arsitektur “database-centric” memungkinkan (enable) komputasi terdistribusi dikerjakan tanpa suatu bentuk komunikasi inter-process langsung, menggunakan suatu database bersama (shared database).

Konkurensi
Komputasi terdistribusi mengimplementasikan suatu jenis konkurensi. Ini berhubungan erat dengan pemrograman konkuren, sehingga kadang tidak dibicarakan sebagai topik terpisah.
  • Sistem Multiprocessor
Sistem multiprocessor adalah suatu komputer yang mempunyai lebih dari satu CPU pada motherboardnya. Jika sistem operasi dibangun untuk memanfaatkan kelebihan ini, maka SO tersebut dapat menjalankan proses-proses berbeda (atau thread-thread berbeda yang dimiliki oleh proses yang sama) pada CPU-CPU berbeda.
  • Sistem Multicore
CPU-CPU Intel dari era Pentium 4 terbaru (Northwood dan Prescott) menerapkan suatu teknologi bernama Hyper-threading yang memungkinkan lebih dari satu thread (biasanya dua) untuk berjalan pada CPU yang sama. Produk processor yang lebih baru seperti Sun UltraSPARC T1, AMD Athlon 64 X2, AMD Athlon FX, AMD Opteron, Intel Pentium D, Intel Core, Intel Core 2 dan Intel Xeon menyertakan banyak core processor juga untuk meningkatkan jumlah thread yang dapat dieksekusi.
  • Sistem Multicomputer
Multicomputer dapat dianggap berupa suatu komputer NUMA loosely atau cluster yang tightly coupled. Multicomputer biasanya digunakan ketika diperlukan power komputasi tinggi tetapi lingkungan mempunyai ruang fisik atau tenaga listrik terbatas.

Karakteristik Komputasi Terdistribusi
Ciri khas dari komputasi terdistribusi adalah heterogenitas dalam berbagai hal seperti perangkat keras, sistem operasi, dan bahasa pemrograman karena tidak mungkin untuk mengembangkan sistem terdistribusi yang homogen secara paksaan, karena secara alamiah sistem komputer terdistribusi tumbuh dari lingkungan yang heterogen. Kata kunci dalam menjembatani perbedaan-perbedaan yang muncul adalah interoperabilitas (interoperability). Ciri lain dari komputasi terdistribusi adalah dimana pemakai tidak perlu menyadari komputer mana yang bekerja untuk melaksanakan tugas komputasi. Ibaratnya, pemakai ingin ini dan mendapat hasil komputasi yang diingkan tanpa memandang oleh siapa pekerjaan itu dikerjakan. Semua alokasi sumber daya dan penanganan kerja dikendalikan oleh sistem operasi. Dicirikan pula menggunakan banyak komputer yang saling terhubung dalam suatu jaringan komputer, untuk melakukan komunikasi proses antar komputer yang bekerja.

Kegunaan Komputasi Terdistribusi
Terdapat berbagai tipe sistem komputer terdistribusi dan banyak tantangan selama perancangan dan implementasinya. Tujuan utama dari sistem komputasi terdistribusi adalah untuk menghubungkan para pengguna dan sumber daya dalam cara yang transparent, open dan scalable. Idealnya, ini akan membuat sistem lebih fault-tolerant daripada sistem komputer stand-alone.
Openness merupakan properti dari sistem terdistribusi dimana setiap sub-sistem secara kontinu terbuka untuk berinteraksi dengan sistem lain. Protokol web services adalah standard yang memungkinkan sistem terdistribusi di-extend dan di-scale. Secara umum, suatu sistem terbuka yang bersifat scalable memberikan keuntungan lebih dibandingkan sistem yang tertutup dan self-contained (menyatu).
Konsekuensinya, sistem terdistribusi terbuka memberikan beberapa tantangan berikut:
  • Monotonicity. Begitu sesuatu dipublikasikan di dalam sistem terbuka (open system) maka tidak dapat diambil kembali.
  • Pluralism. Sub-sistem-subsistem berbeda dalam sistem open distributed dapat mempunyai informasi yang heterogen, mungkin pula overlap dan menyebabkan konflik. Tidak ada pengatur kebenaran sentral dalam sistem open distributed.
  • Unbounded nondeterminism. Secara asinkron, subsistem-subsistem dapat naik dan turun, dan link komunikasi dapat masuk dan keluar antar sub-sistem dalam sistem open distributed. Karena itu, waktu yang diperlukan untuk menyelesakan suatu operasi tidak dapat dibatasi dan dipastikan.
Kelemahan dan Kerugian
Jika tidak direncanakan dengan tepat, suatu distributed system dapat menurunkan reliabilitas total dari komputasi jika ketidak-tersediaan dari suatu node dapat menyebabkan gangguan bagi node-node lain. Troubleshooting dan diagnosing terhadap masalah dalam distributed system dapat menjadi lebih sulit, karena perlu analisis yang berkaitan dengan node jauh atau menginspeksi komunikasi antar node di dalam sistem.
Banyak tipe komputasi tidak cocok bagi lingkungan terdistribusi, biasanya yang berhubungan dengan jumlah komunikasi jaringan atau sinkronisasi yang dibutuhkan antar node. Jika bandwidth, latency, atau persyaratan komunikasi begitu signifikan, maka tidak ada keuntungan dari distributed computing dan kinerja dapat lebih burukk daripada lingkungan non-distributed.

Dampak Komputasi Terdistribusi
Komputasi terdistribusi memiliki dampak baik dan buruk bagi kehidupan umat manusia antara lain manusia lebih mudah dan lebih cepat untuk mendapatkan informasi yang mereka inginkan, membantu manusia untuk melakukan perhitungan yang sangat besar supaya dapat diselesaikan dengan cepat, tepat dan akurat, membantu perusahaan-perusahaan besar dalam masalah basis data perusahaan, dan lain sebagainya. Selain itu sistem komputasi terdistribusi juga memiliki dampak yang kurang baik karena membuat manusia semakin tergantung kepada komputer atau mesin, komputasi terdistribusi juga sering disalahgunakan untuk hal-hal yang kurang baik atau untuk kejahatan, dan penggunaan komputasi terdistribusi oleh personal kadang kala menjadi suatu pemborosan karena mereka tidak memiliki masalah sebesar perusahan atau institusi.

Kesimpulan
komputasi terdistribusi merupakan untuk 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.
 
Sumber:

0 komentar:

Posting Komentar