Senin, 25 Mei 2015

Sistem Terdistribusi

Apakah yang dimaksud dengan SistemTerdistribusi?

     Sistem Terdistribusi adalah Sekumpulan komputer otonom yang terhubung ke suatu jaringan, dimana bagi pengguna sistem terlihat sebagai satu komputer. Maksud komputer otonomi adalah walaupun komputer tidak terhubung ke jaringan, komputer tersebut tetap data berjalan. Dengan menjalankan sistem terdistribusi, komputer dapat melakukan :

  • Koordinasi Aktifitas
  • Berbagi sumber daya : hardware, software dan data
Dengan definisi tersebut diatas maka internet sesungguhnya bukanlah suatu sistem terdistribusi, melainkan infrastruktur dimana sistem terdistribusi dapat di aplikasikan pada jaringan tersebut.

Contoh Sistem Terdistribusi 
- Sistem Telepon
  ISDN, PSTN

- Manajemen Jaringan
  Adminstrasi sesumber jaringan


                            Gambar~1.1: Contoh sistem terdistribusi, Automatic Banking (teller machine)


- Network File System (NFS)
  Arsitektur untuk mengakses sistem file melalui jaringan

- WWW
   Arsitektur client/server yang diterapkan di atas infrastruktur internet
   Shared Resource (melalui URL)


Keuntungan dan Permasalahan SistemTerditribusi

Keuntungan Sistem Terdistribusi
Keuntungan yang didapatkan dalam menerapkan sistem terdistribusi, antara
lain :


  • Performance
Kumpulan dari beberapa prosesor akan memberikan kinerja yang lebih baik dari pada komputer yang terpusat. Begitu juga kalau dilihat dari sisi biaya.

  • Distribution
  • Reliability (Fault tolerance)
Apabila salah satu komponen terjadi kerusakan, system tetap dapat berjalan

  • Incremental Growth
Mudah dalam melakukan penambahan komputer/komponen


  • Sharing Data/Resources
Berbagi data adalah salah satu hal yang pokok pada kebanyakan aplikasi.

Permasalahan dalam Sistem Terdistribusi

Kelemahan pada sistem terdistribusi adalah :

  • Kesulitan dalam membangun perangkat lunak .
Kesulitan yang akan dihadapi antara lain : bahasa pemrogramman yang  harus dipakai, sistem operasi


  • Masalah Jaringan

Karena sistem terdistribusi di implementasikan dalam jaringan komputer, maka isu2 yang berkaitan
dengan jaringan komputer akan menjadi pertimbangan utama dalam merancang dan mengimplementasikan sistem.



  • Masalah Keamanan

Karena pada sistem terdistribusi berbagi data/sumber daya merupakan hal yang mutlak maka muncul masalah2 yang berkaitan dengan keamanan data dll.

Karakteristik Sistem Terdistribusi

Ada beberapa hal yang harus diperhatikan dalam membangun sistem terdistribusi, yaitu :

Transparency (Kejelasan)
Communication (Komunikasi)
Performance & Scalability (Kinerja dan Ruang Lingkup)
Heterogeneity (Keanekaragaman)
Opennes (Keterbukaan)
Reliability & Fault Tolerancy (Kehandalan dan Toleransi Kegagalan)
Security (Kemanan)

Transparency

1. Access transparency
      Sumber daya lokal dan remote di akses dengan menggunakan operasi yang sama.Location transparencyPengguna sistem tidak tahu mengetahui keberadaan hardware dan software(CPU file dan data).Migration (Mobility) transparency Sumber daya (baik berupa Hardware dan/atau software) dapat bebas berpindah tanpa mengubah sistem penamaan.
    2. Replication transparency
     Sistem bebas untuk menambah …le atau sumber daya tanpa diketahui oleh user (dalam rangkan meningkatkan kinerja)
    3. Concurency transparency
     User tidak akan mengetahui keberadaan user lain dalam sistem, walaupun user tersebut menggunakan sumber daya yang sama.

    4. Failure transparency
     Aplikasi harus dapat menyelesaikan proses nya walaupun terdapat kegagalan pada beberapa pada komponen sistem.
    5. Performance transparency
      Beban kerja yang bervariasi tidak akan menyebabkan turunnya kinerja sistem, hal ini dapat di capai dengan melakukan automatisasi konfigurasi terhadap perubahan beban.

Communication
     Komponen2 pada sistem terdistribusi harus melakukan komunikasi dalam suatu urutan. Sebagai berikut :

Infrastruktur jaringan (interkoneksi dan software jaringan)
Metode dan Model komunikasi yang cocok

Metode komunikasi :
- Send
- Receive
- Remote Procedure Call

Model Komunikasi
- Client - server communication : pertukaran pesan antara dua proses
: dimana satu proses (client) menggunakan / meminta layanan pada server dan server menyediakan hasil dari   proses tersebut.

- Groupmulitcast : target dari pesan yang dikirimkan adalah gabungan
dari proses, yang berasal dari suatu grup.

Performance and Scalability

      Ada beberapa faktor yang mempengaruhi kinerja (performance) dari pada
sistem terdistribusi :

Kinerja dari pada personal workstations
Kecepatan infrastruktur komunikasi
Fleksibilitas dalam membagi beban kerja : contoh, apabila terdapat prosesor (workstation) yang idle maka dapat di alokasikan secara otomatis untuk mengerjakan tugas2 user.
Scalability
Sistem tetap harus memperhatikan efesiensi walaupun terdapat penambahan
secara signifikan user atau sumber daya yang terhubung :

Cost (biaya) penambahan sumber daya (resources) harus reasonable.
Penurunan kinerja (performance) diakibatkan oleh penambahan user atau sumber daya harus terkontrol.

Heterogeneity
     Aplikasi yang terdistribusi biasa berjalan dalam keberagaman :

Hardware : mainframes, workstations, PC’s, server dll.
Software : UNIX, MS Windows, IMB OS/2, LINUX dll.
Devices : teller machine, robot, sistem manufacturing dll.
Network dan Protocol : Ethernet, FDDI, ATM, TCP/IP dll
Melihat keaneka ragaman di atas maka salah satu solusi yang bisa di
terapkan adalah Middleware : berfungsi sebagai jembatan untuk komunikasi
dan proses.



                                  Gambar~1.2: Arsitektur sofware pada sistem terdistribusi

Opennes

     Salah satu hal terpenting yang harus dimiliki oleh sistem terdistribusi adalah
opennes (keterbukaan) dan ‡exibility (‡eksibilitas) :

Setiap layanan (services) harus dapat di akses oleh semua user.
Mudah dalam implementasi, install dan debug services;
User dapat membuat dan menginstall service yang telah dibuat oleh si user tersebut.
Aspek kunci pada opennes :

Interface dan Protocol yang standard (seperti protokol komunikasi di internet)
Support terhadap keanekaragaman. ( denganmembuatmidleware seperti CORBA)



                                            Gambar~1.3: Sistem Terdistribusi pada dua titik

Reliability dan Fault Tolerance

     Salah satu tujuan dalam membangun sistemterdistribusi adalahmemunkinkan untuk melakukan improvisasi terhadap kehandalan sistem. Availability : kalau mesin mati (down), sistem tetap harus berjalan dengan jumlah layananan yang tersisa.

Dalam sistem terdistribusi componen yang sangat vital (critical resources)berjumlah se minimal mungkin. Yang dimaksud dengan critical resources adalah komponen yang harus ada untuk menjalankan sistem terdistribusi.
Masing - masing Software dan Hardware harus di replikasi : kalau terjadikegagalan / error maka yang lain akan menangani.
Data dalam sistem tidak boleh hilang, copy dari file tersebut disimpan pada secara redundan pada server lain, tapi tetap harus dijaga konsistensi datanya. Fault Tolerance : Sistemharus bisa mendeteksi kegagalan danmelakukan tindakan dengan dasar sebagai berikut :

Mask the fault (menutupi kegagalan) : tugas harus dapat dilanjutkandengan menurunkan kinerja tapi tanpa terjadi kehilangan data atau informasi.
Fail Gracefully : membuat suatu antisipasi terhadap suatu kegagalan ke suatu prosedur yang telah di rencanakan dan memungkinkan untuk menghentikan proses dalam waktu yang singkat tanpa menghilangkan informasi atau data.

Security

 Confidentiality :keamanan terhadap data yang di akses oleh user yang tidak di perbolehkan(unauthorizes user)
Integrty:keamanan terhadap kelengkapan dan autentikasi data.
Availability Menjaga agar resource dapat selalu di akses.Sistem terdistribusi harus memperbolehkan komunikasi antara program/user/resources pada computer yang berbeda, maka resiko keamanan akan muncul apabila memberlakukan free access. Dan ada hal lain juga yang harus dijamin dalam sistem terdistribusi, yaitu : penggunaan rerources yang tepat oleh user yang berlainan.

Model dalam Sistem Terdistribusi

Model dalam sistem terdistribusi :

Model Arsitektur (Architectural Models)
Model Interaksi (Interaction Models)
Model Kegagalan (Failure Models)
     Resources dalam sistem terdistribusi dipakai secara bersama oleh users.Biasa nya di bungkus (encapsulated) dalam suatu komputer dan dapat di akses oleh komputer lain dengan komunikasi.Setiap resource di atur oleh program yang disebut dengan resource manager.Resource manager memberikan kemungkinan komunikasi interface antar resource.
     Resource Managers dapat digeneralisasi sebagai proses, kalau sistem di design dengan sudut pandang object (Object Oriented), resource dibungkus
dalam suatu objek.

Architectural Models

     Bagaimana cara kerja sistem terdisribusi antara komponen - komponen sistem dan bagaimana komponen tersebu berada pada sistem terdistribusi :

1. Client - Server Model
2. Proxy Server
3. Peer processes ( peer to peer )
1. Client - Server Model
     Sistem yang terdiri dari kumpulan2 proses disebut dengan server, dan memberikan
layanan kepada user yang disebut dengan client.
Model client-server biasanya berbasiskan protokol request/reply. Contoh
implementasi nya, atara lain: RPC (Remote Procedure Calling) dan RMI
(Remote Method Invocation) :
Client mengirimkan request berupa pesan ke server untuk mengakses suatu service.
Server menerima pesan tersebut dan mengeksekusi request client dan mereply hasil ke client



                                              Gambar~1.4: Model arsitektur client - server



                                                   Gambar~1.5: Model Proxy Server

2. Proxy Server
     Proxy server menyediakan hasil copy (replikasi) dari resource yang di atur oleh server lain Biasa nya proxy server di pakai untuk menyimpan hasil copy web resources. Ketika client melakukan request ke server, hal yang pertama dilakukan adalah memeriksa proxy server apakah yang dimita oleh client terdapat pada proxy server. Proxy server dapat diletakkan pada setiap client atau dapat di pakai bersama oleh beberapa client. Tujuannya adalah meningkatkan performance dan availibity denganmencegah frekwensi akses ke server.
Peer Process Semua proses (object) mempunyai peran yang sama.

Proses berinteraksi tanpa ada nya perbedaan antara client dan server.
Pola komunikasi yang digunakan berdasarkan aplikasi yang digunakan.
Merupakan model yang paling general dan fleksible.


Interaction Modelstem Terdistribusi

Untuk interaksi nya sisstribusi dibagi menjadi dua bagian :
Synchrounous distributed system
Asynchronous distributed system
Synchronous Distributed System
Batas atas dan batas bawah waktu pengeksekusian dapat di set.
Pesan yang dikirim di terima dalam waktu yang sudah di tentukan
Fluktuasi ukuran antara waktu local berada dalam suatu batasan.
Beberapa hal yang penting untuk di perhatikan :

Dalam synchronous distributed system terdapat satu waktu global.
Hanya synchronous distributed system dapat memprediksi perilaku (waktu).
Dalam synchornous distributed system dimungkinkan dan aman untukmenggunakan mekanisme timeout dalam mendekteksi error atau kegagalan dalam proses atau komunikasi.
Asynchronous Distributed System
Banyak sistem terdistribusi yangmenggunakan model interaksi ini (termasuk Internet)

Tidak ada batasan dalam waktu pengkeksekusian.
Tidak ada batasan dalam delay transmission (penundaan pengiriman)
Tidak ada batasan terhadap fluktuasi waktu local.
Asynchronous system secara parktek lebih banyak digunakan.

Failure Models

Kegagalan apa saja yang dapat terjadi dan bagaimana efek yang ditimbulkan?
1. Omission Faluires
2. Arbitary Failures
3. Timing Failures
Kegagalan dapat terjadi pada proses atau kanal komunikasi. Dan penyebabnya bisa berasal dari hardware ataupun software. Model Kegagalan (Failure Models) dibutuhkan dalam membangun suatu sistem dengan prediksi terhadap kagagalan2 yang mungkin terjadi.

Ommision Failures
     Yang dimaksud dengan Ommision Failures adalah ketika prosesor dan kanal komunikasi mengalami kegagalan untuk melakukan hal yang seharusnya dilakukan. Dikatakan tidak mempunyai ommision failures apabila :

Terjadi keterlambatan (delayed) tetapi akhirnya tetap tereksekusi.
Sebuah aksi di eksekusi walaupun terdapat kesalahan pada hasil.
Dengan synchronous system, ommision failures dapat dideteksi dengan timeouts. Kalau kita yakin bahwa pesan yang dikirim sampai, timeout akan mengindikasikan bahwa proses pengiriman rusak, seperti fail-stop behavior pada sistem.

Arbitary Failures
     Ini adalah kegagalan yang paling buruk dalam sistem. Tahapan proses atau komunikasi diabaikan atau yang tidak diharapkan terjadi dieksekusi. Sehingga hasil yang diharapkan tidak terjadi ataumegeluarkan hasil yang salah.

Timing Failures
     Timing Failures dapat terjadi pada synchronous system, dimana batas waktu di atur untuk eksekusi proses, komunikasi dan fluktuasi waktu. Timing Failures terjadi apabila waktu yang telah ditentukan terlampaui.