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 :
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
Mudah dalam melakukan penambahan komputer/komponen
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
Karena sistem terdistribusi di implementasikan dalam jaringan komputer, maka isu2 yang berkaitan
dengan jaringan komputer akan menjadi pertimbangan utama dalam merancang dan mengimplementasikan sistem.
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.