1.1 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.
- Sistem Telepon
- Manajemen Jaringan
Gambar~1.1: Contoh sistem terdistribusi, Automatic Banking (teller machine) System
- Network File System (NFS)
- WWW
- Shared Resource (melalui URL)
1.3 Keuntungan dan Permasalahan SistemTerditribusi
1.3.1 Keuntungan Sistem Terdistribusi
Keuntungan yang didapatkan dalam menerapkan sistem terdistribusi, antara
lain :
- Performance
- Distribution
- Reliability (Fault tolerance)
- Incremental Growth
- Sharing Data/Resources
1.3.2 Permasalahan dalam Sistem Terdistribusi
Kelemahan pada sistem terdistribusi adalah :
- Kesulitan dalam membangun perangkat lunak .
- Masalah Jaringan
dengan jaringan komputer akan menjadi pertimbangan utama dalam merancang dan
mengimplementasikan sistem.
- Masalah Keamanan
masalah2 yang berkaitan dengan keamanan data dll.
1.4 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)
1.4.1 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.
1.4.2 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
- 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.
1.4.3 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.
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.
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
terapkan adalah Middleware : berfungsi sebagai jembatan untuk komunikasi
dan proses.
Gambar~1.2: Arsitektur sofware pada sistem terdistribusi
1.4.5 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.
- Interface dan Protocol yang standard (seperti protokol komunikasi di internet)
- Support terhadap keanekaragaman. ( denganmembuatmidleware seperti CORBA)
Gambar~1.3: Sistem Terdistribusi pada dua titik
1.4.6 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.
- 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.
- ² 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 Arsitektur (Architectural Models)
- Model Interaksi (Interaction Models)
- Model Kegagalan (Failure Models)
resource.
Resource Managers dapat digeneralisasi sebagai proses, kalau sistem di design dengan sudut pandang object (Object Oriented), resource dibungkus
dalam suatu objek.
1.5.1 Architectural Models
Bagaimana cara kerja sistem terdisribusi antara komponen - komponen sistem dan bagaimana komponen tersebu berada pada sistem terdistribusi :
- Client - Server Model
- Proxy Server
- Peer processes ( peer to peer )
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.
Untuk interaksi nya sisstribusi dibagi menjadi dua bagian :
- Synchrounous distributed system
- Asynchronous 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.
- 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.
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.
1.5.3 Failure Models
Kegagalan apa saja yang dapat terjadi dan bagaimana efek yang ditimbulkan?
- Omission Faluires
- Arbitary Failures
- Timing Failures
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.
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.
Komentar ini telah dihapus oleh pengarang.
BalasHapuspermisi gan, saya ada sedikit tulisan mengenai protokol WebSocket yang saya terapkan kedalam beberapa bahasa pemrograman berikut: http://datacomlink.blogspot.co.id/2015/11/implementasi-server-websocket-rfc-6455.html ditunggu feedbacknya gan, semoga menambah wawasan bersama, terima kasih gan.. :D
BalasHapussangat detai
BalasHapusArtikel kakak bagus nih, menambah referensi saya dalam mempelajari mata kuliah system terdistribusi. oh ya, perkenalkan saya Yuli Suseno dari kampusISB Atma Luhur.
BalasHapuskeep your great work!
Artikel kakak bagus nih, menambah referensi saya dalam mempelajari mata kuliah system terdistribusi. oh ya, perkenalkan saya Yuli Suseno dari kampusISB Atma Luhur.
BalasHapuskeep your great work!