Kamis, 12 Januari 2012

Pengantar Sistem Terdistribusi

Definisi
Sebuah sistem terdistribusi (DS) terdiri dari sekumpulan komputer yang mandiri yang terhubung dalam jaringan komputer dan dilengkapi dengan software sistem terdistribusi (Colouris 1994). Software Sistem Terdistribusi dapat mengkoordinir aktifitas masing-masing komputer dan melakukan pertukaran sumber daya sistem HW, SW dan data. Pengguna sistem terdistribusi dapat merasakan sebuah fasilitas komputer yang terpadu meskipun sebenarnya terdiri dari banyak komputer yang berada di lokasi yang berbeda secara geografis

Sistem Terdistribusi vs Sistem Paralel
Kelebihan sistem terdistribusi
  • Pertukaran sumber daya (prosesor)
  • Pertukaran data
  • Struktur geografis
  • Penyederhanaan logik
  • Modular
  • Reliabel
  • Biaya rendah
Kelemahan sistem terdistribusi
  • Biaya komunikasi membengkak
  • Pemaduan yang sulit
  • Pembuatan program yang lebih sulit
Alasan untuk sistem terdistribusi

  • Distribusi fungsi : komputer memiliki kemampuan fungsi yang berbeda-beda
    • client/server
    • Host/terminal
    • Data gathering / data processing
  • Distribusi beban/keseimbangan : pemberian tugas ke prosesor secukupnya sehingga unjuk kerja seluruh sistem teroptimasi.
  • Sifat terdistribusi mencegah terjadinya application domain, e.g.
    • cash register dan sistem persediaan untuk supermarket,
    • Komputer pendukung collaborative work
  • Replikasi kekuatan pemrosesan : independent processors bekerja untuk pekerjaan yang sama
    • Sistem terdistribusi terdiri dari kumpulan mikrokomputer yang memiliki kekuatan pemrosesan yang tidak dapat dicapai oleh super komputer
    • 10000 CPU, masing-masing berjalan pada 50 MIPS, mencapai 500000 MIPS,
    • Maka satu perintah dijalankan dalam waktu 0.002 nsec
  • Pemisahan fisik : sistem yang menggantungkan pada fakta bahwa komputer secara fisik terpisah (e.g., untuk mencapai kehandalan).
  • Ekonomis : kumpulan mikroprosesor menawarkan harga/unjuk kerja yang lebih baik dari pada mainframe
Mengapa Sistem Terdistribusi ?

  • Butuh berbagi data dan resource di antara pemakai
  • Mendukung komunikasi person-to-person
  • Fleksibilitas : komputer yang berbeda dengan kemampuan yang berbeda dapat di share antar user


Masalah dengan sistem terdistribusi
Software - bagaimana merancang dan mengatur software dalam DS
Ketergantungan pada infrastruktur jaringan (world wide wait....)
Kemudahan akses ke data yang di share, memunculkan masalah keamanan


Konsekuensi(Karakteristik Sistem Terdistribusi)

  • Sistem terdistribusi adalah sistem concurrent (serentak)
    • Setiap komponen hardware/software bersifat otonom (kita akan menyebut komponen otonom adalah "proses")
    • Komponen menjalankan tugas bersamaan
      • Contoh : A dan B adalah concurrent jika A dapat terjadi sebelum B, dan B dapat terjadi sebelum A
    • Sinkronisasi dan koordinasi dengan message passing
    • Sharing resources
    • Masalah umum dalam sistem concurrent
      • Deadlock
      • Lifeclock
      • Komunikasi yang tidak handal
  • Keterbatasan dalam global clock
    • Terdapat batasan pada ketepatan proses sinkronisasi clock pada sistem terdistribusi, oleh karena asynchronous message passing
    • Pada sistem terdistribusi, tidak ada satu proses tunggal yang mengetahui global state sistem saat ini (disebabkan oleh concurrency dan message passing)
  • Independent failure
    • Kemungkinan adanya kegagalan proses tunggal yang tidak diketahui
    • Proses tunggal mungkin tidak peduli pada kegalalan sistem keseluruhan


Tantangan dalam perancangan dan penerapan

  • Karaketristik sistem terdistribusi
    • Heterogenitas
    • Pertukaran sumberdaya
    • Keterbukaan
    • Konkurensi / Multi proses
    • Berubah ukuran
    • Mampu mengatasi kesalahan
    • Transparan
    • Keamanan
  • Software Sistem dan aplikasinya harus dirancang dengan baik


Heterogenitas

  • Bermacam-macam dan unik
  • Sebuah DS memungkinkan para pengguna untuk mengakses dan menjalankan beberapa aplikasi dengan bermacam-macam komputer dan jaringan
  • Keragaman ini meliputi :
    • Jaringan
    • Komputer (PC-IBM-Aple-Mac ...)
    • Sistem operasi – Windows2000, Unix/Linux, OS2
    • Bahasa pemrograman dan DBMS – Java, C++, Oracle, SQL server
    • Diterapkan oleh berbagai pengembang sistem
  • Jaringan
    • Internet terdiri dari berbagai tipe jaringan yang berbeda, namun perbedaan tersebut tertutup dengan kenyataan bahwa semua komputer dapat berkomunikasi menggunakan protokol TCP/IP
  • Hardware
    • Tipe data mis. integer digambarkan berbeda tergantung dari perangkatnya :
      • Berdasarkan byte 0 Big endian, Little endian
      • Ukuran – 16 bit, 23, 64 bit
      • Perbedaan tersebut harus diselesaikan jika pesan diubah selama program jalan di hardware
  • Sistem operasi
    • Unix/Linux/Window 2000 memiliki kode API yang berbeda, untuk saling berhubungan melalui protokol TCP/IP
  • Bahasa pemrograman dan DBMS
    • Menggunakan gambaran yang berbeda untuk karakter dan struktur data - array dan record
    • Perbedaan ini harus di samakan
  • Diterapkan oleh pengembang yang berlainan
    • Program ditulis oleh pengembang berbeda yang tidak dapat dikomunikasikan satu dengan yang lain sampai ada standar untuk menyamakan
    • Standar butuh persetujuan dan diterima


Pertukaran sumber daya

  • Berbagai alat dengan karakter yang berbeda dapat di”share” secara penuh dalam DS :
    • HW : printer, cd-rom, hd
    • SW : file, database, compiler, aplikasi
  • Sharing, mengurangi biaya
  • Sangat penting untuk  mendukung kerjasama grup
  • Setiap perlatan yang terhubung dengan sebuah komputer (mis. Printer) dalam DS harus dikelola dengan sebuah program sehingga dapat di :
    • Akses
      • Untuk mencetak, mengubah kwalitas cetak
      • Diberi alamat sendiri (IP)
    • Manipulasi dan update
      • Sikronisasi pada saat akses bersamaan untuk menjaga konsistensi, mis: database


Keterbukaan

  • Artinya sistem dapat di ubah dan diterapkan dengan berbagai cara seperti :
    • Tingkat HW, posisi komputer dalam jaringan
    • Tingkat SW, pengenalan layanan baru mengganti yang lama
  • Kunci dari file tersebut telah dipublikasikan sehingga memungkinkan untuk dikembangkan siapapun
  • Dasar DS yang terbuka adalah adanya mekanisme komunikasi yang seragam(mis. RPC, CORBA) dan antar muka umum untuk akses pertukaran sumber daya
  • DS yang terbuka dapat dibangun dari berbagai HW dan SW dari vendor yang berbeda. Meskipun demikian berbagai komponen tersebut harus sudah diuji kesesuaiannya sehingga sistem berjalan dengan benar.


Concurrency

  • Concurrency dan eksekusi paralel dalam DS untuk :
    • Memisahkan kegiatan masing-masing user
    • Kemandirian sumberdaya
    • Lokasi proses di komputer yang terpisah
  • Jika ada M komputer (dg CPU) terhubung dalam DS, maka M proses dapat berjalan secara bersamaan
  • Jika beberapa proses menggunakan sumber daya yang sama, maka perlu sinkronisasi supaya tidak konflik


Berubah ukuran

  • DS harus beroperasi secara efektif dan efisien pada berbagai keadaan:
    • Dua workstation dengan file server
    • LAN dengan ratusan ws dan banyak file server
    • Beberapa LAN terhubung membentuk WAN
  • SW sistem dan aplikasi harus tidak memerlukan perubahan meskipun ukuran sistemnya berubah
  • Waktu proses yang diperlukan sebuah sumber daya tidak berubah meskipun luas jaringan bertambah
  • Tidak ada sumber daya tunggal (hw/sw) yang harus selalu ada untuk pengembangan sumber daya lain


Toleransi kesalahan

  • Terkadang sistem rusak
  • Ketika ada hw atau sw yang salah, program akan :
    • Membetulkan hasil
    • Berhenti sebelum proses penghitungan selesai
  • Mendeteksi kesalahan
    • Beberapa kesalahan dapat dideteksi (sebelumnya)
    • Mis. cheksum yang dapat digunakan untuk mendeteksi pencurian data dalam sebuah pesan atau file
  • Menutupi kerusakan
    • Beberpa kerusakan yang terdeteksi dapat di hidden atau diminimalkan akibatnya
    • Pesan dapat dikirim ulang
    • File dapat ditulis di disk berbeda jika kapasitas tidak mencukupi
  • Toleransi kesalahan
    • Kebanyakan layanan di internet melakukan kesalahan yang wajar terjadi pada sistem yang berjalan bersamaan
    • Klien dapat dirancangkan pemberitahuan kesalahan, ketika sebuah browser tidak menemukan webserver, sehingga user tidak dibiarkan terus menunggu
  • Perbaikan dari kesalahan
    • Ada fasilitas perbaikan atau proses ulang saat sebuah server mengalami kerusakan
  • Kerangkapan
    • Fasilitas untuk mentoleransi kerusakan dapat mengakibatkan kerangkapan komponen :
      • Mungkin karena menggunakan dua saluran yang berbeda diinternet
      • Dalam DNS, setiap tabel nama selalu ada di dua server berbeda
      • Sebuah database mungkin duplikasi di server berbeda untuk meyakinkan data yang sebenarnya setelah terjadi kerusakan di suatu server
  • Ketersediaan
    • Ketika sebuah komponen rusak dalam DS, hanya pekerjaan yang sedang diproses komponen yang mungkin rusak
    • Seorang user mungkin berganti komputer setelah mengalami kerusakan
    • Sebuah proses dapat dijalankan dari komputer berbeda


Transparansi

  • Dapat berarti penyembunyian pengguna dan programer aplikasi dari bagian komponen DS, sehingga sistem terlihat sperti lubang kosong dari pada sekumpulan komponen yang berdiri sendiri
  • Beberapa contoh transparansi :
    • Akses : dapat mengakses informasi lokal atau jarak jauh menggunakan operasi identifikasi
    • Lokasi : informasi dapat diakses tanpa mengetahui lokasinya
    • Cocurrency : beberapa proses dapat berjalan bersamaan dengan satu sumber daya tanpa terjadi interferensi
    • Replikasi : dapat meningkatkan isi suatu sumber daya tanpa ijin pemilik atau programernya
    • Kerusakan : Dapat menyembunyikan kerusakan seijin user dan programer aplikasi untuk melengkapi pekerjaannya akibat kerusakan hw/sw
    • Mobilitas : memungkinkan memindahkan sumber daya dan pengguna dalam sistem tanpa mempengaruhi operasi user atau programer
    • Scalling : ukuran sistem dapat diperluas (jaringannya) tanpa mengubah struktur sistem dan pemrograman
    • Transparansi Akses dan Lokasi  sesuai bersama sebagai bagian jaringan transparan. Kberadaannya maupun ketiadaannya sangat mempengaruhi sistem
  • Gambaran transparansi jaringan
    • Memprtimbangkan perintah login Linux
      • Hanya bisa seorang nama user yang dapat logon  di host
    • Sehubungan dengan alamat e-mail
      • Alamat heri@yahii.com hanya berisi nama pribadi dan nama domainnya.
      • Domain didefinisikan dan dialokasikan sesuai nama organisasi
      • Mengirim pesan ke user lain tidak perlu tahu lokasi fisik dari domainnya
      • Apakah prosedur pengiriman surat tergantung pada lokasi penerima?
  • Scalability
    • Apakah sistem masih efektif dan handal dalam perkiraan pertumbuhannya?


Rancangan

  • Hal yang penting dalam membangun DS :
    • Naming
    • Komunikasi
    • Struktur sw
    • Alokasi beban kerja
    • Perawatan yang konsisten
  • Seorang perancang harus memahami sistem terdistribusi, rancangan interface, rekayasa sw dll.


Naming

  • Dasar DS adalah pada pertukaran sumber daya dan pada transparansi penyebaran sumber daya
  • Nama yang menunjukkan sumber daya harus :
    • Mempunyai arti global yang menunjukkan lokasi
    • Didukung dengan nama sistem yang dapat diterjemahkan program untukmengakses sumber daya
  • Proses yang membutuhkan akses sumber daya yang mana tidak dikelola harus menyertakan nama atau identitasnya.
    • Nama, menunjuk nama yang dapat diinterprestasikan user atau program
    • Identitas, menunjuk nama yang diinterprestasikan atau digunakn hanya oleh program
  • Struktur nama
    • Harus menunjukkan setiap tipe sumber daya
    • Hirarki, mis. /etc/passwd memungkinkan untuk berkembang
    • Flat / datar selalu memperhatikan ukuran panjang maksimal yang ditentukan


Komunikasi

  • Komponen DS meliputi bagian logika dan fisik yang terpisah; mereka harus di komunikasikan secara urut supaya dapat berinteraksi
  • Komunikasi antara sepasang proses meliputi :
    • Transfer data dari lingkungan yang mengirim proses ke linglungan yang menerima proses
    • Beberapa komunikasi memrlukan sinkronisasi antara pengirim dg penerima, sehingga pengirm dan penerima berhenti s.d proses yang lain membebaskannya
  • Mekanisme :
    • Syncron (blocking) – pengirim menunggu sesudah pengiriman pesan s.d penerima melakukan operasi penerimaan
    • Asyncron (non-blocking) – pesan di tempatkan dalam antrian menunggu penerima menerima dan pengirim melakukan pengirimanlagi


Bentuk komunikasi

  • Client-server
    • Cenderung melakukan layanan searah
    • Pertukaranmeliputi :
    • Transmisi dari client ke server
    • Eksekusi pesan oleh server
    • Transmisikan kembali ke client
    • Server harus selalu siap pada adanya permintaan dan client harus menunggu sampai dengan balasan diterima
    • Tidak ada client yang diprioritaskan
    • Setiap permintaan berisi CID yang digunakan untuk mengirmkankembali ke client
    • Dalam open system client tidak dapat dikenali untuk menunda CID semua server yang ingin diakses
  • Group multicast
    • Sasaran pesan adalah kelompok proses
    • Alasan :
      • Multiple update
      • Pesan dari client berisi nama dari direktori file server. Setiap saat hanya satu permintaan client yang bisa dilayani oleh file server


Struktur SW

  • Setiap kategori sw berhubungan  dengan tingkat yang berbeda dalam abstraksi DS :
    • User yang bekerja dg spreadsheet mempunyai bagian tersendiri dalam DS
    • Seorang programer mungkin menulis dalam bahasa pemrograman terdistribusi dan menggunakan lapisan servis
  • Kategori sw dalam DS :
    • Aplikasi
    • Sistem operasi
      • Menyediakan pengelolaan sumber daya dasar
        • Alokasi memori dan perlindungan
        • Penciptaan proses dan penjadwalan
        • Komunikasi antar proses
        • Penanganan peralatan
      • Memberikan kumpulan abstraksi pemorgraman berorientasi masalah yang umum, seperti proses aplikasi, melindungi dari lapisan prosesor dan peralatan lain
      • Harus menmperkuat perlindungan kode dan data terhadap perubahan waktu proses
  • Open service (layanan terbuka)
    • Membawa fasilitas pemrograman dalam DS sesuai tingkat yang diperlukan
    • Layanan baru dapat dibangun dan diinstal sesuai kebutuhan
    • Layanan mulai dari file layanan dasar s.d layanan e-mail
    • Mendukung pemrograman terdistribusi


Contoh DS : Internet

  • Jaringan komputer dan aplikasi yang heterogen
  • Mengimplementasikan protokol Internet

Contoh DS : Sistem Multimedia Terdistribusi
  • Biasanya digunakan pada infrastruktur internet
  • Karakteristik
    • Sumber data yang heterogen dan memerlukan sinkronisasi secara real time
  • Video, audio, text
    • Multicast
  • Contoh:
    • Teleteaching tools (mbone-based, etc.)
    • Video-conferencing
    • Video and audio on demand

Contoh DS : Intranet

  • Jaringan yang teradministrasi secara lokal
  • Biasanya proprietary
  • Terhubung ke internet (melalui firewall)
  • Menyediakan layanan internal dan eksternal


Contoh DS : Mobile dan Sistem Komputasi Ubiquitous

  • Sistem telepon Cellular (e.g., GSM)
  • Resources dishare : frekuensi radio, waktu transmisi dalam satu frekuensi, bergerak
  • Komputer laptop, ubiquitous computing
  • Handheld devices, PDA, etc



Contoh DS lainnya

  • Sistem telepon
    • ISDN, PSTN
  • Manajemen jaringan
    • Administrasi sesumber jaringan
  • Network File System (NFS)
    • Arsitektur untuk mengakses sistem file melalui jaringan
  •  WWW
    • Arsitektur client/server tebuka yang diterapkan di atas infrastruktur internet
    • Shared resources (melalui URL)


World Wide Web

Tidak ada komentar:

Posting Komentar