PENGENALAN SISTEM TERDISTRIBUSI
Contoh Sistem Terdistribusi • • • • • •
Internet Mobile Computing Sistem Otomasi Bank Deteksi Roaming Pada Telepon Seluler GPS (Global Positioning System) Retail Point-of-Sale Terminals
Internet Jaringan komputer dan aplikasi yang heterogen – Mengimplementasikan protokol Internet
Intranet •Jaringan yang teradministrasi secara lokal •Terhubung ke internet melalui firewall •Menyediakan layanan internal dan eksternal
Mobile Computing (Sistem Komunikasi Telepon Seluler) •Menggunakan frekuensi radio sebagai media transmisi •Perangkat dapat bergerak kemanapun asal masih terjangkau dengan frekuensinya •Dapat menghandle/dihubungan dengan perangkat lain
Contoh Lainnya • Sistem Telepon : ISDN, PSTN • Network File System (NFS) – Arsitektur untuk mengakses sistem file melalui jaringan
• WWW – Arsitektur client server yang diterapkan dalam infrastruktur internet
Definisi Sistem Terdistribusi “Collection of independent device in a network which communicate, coordinate, and working together by passing messages”
Jaringan Komputer Vs Sistem Terdistribusi • Jaringan komputer : komuter otonom yang secara eksplisit terlihat (secara eksplisit teralamati) • Sistem terdistribusi: keberadaan beberapa komputer otonom bersifat transparan • Secara normal, setiap sistem terdistribusi mengandalkan layanan yang disediakan oleh jaringan komputer • Beberapa layanan pada jaringan komputer (seperti, name service) juga merupakan sistem terdistribusi • Sistem terdistribusi lebih banyak masalah yang dihadapi
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
Alasan Untuk Sistem Terdistribusi • 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 superkomputer • 10000 CPU, masing-masing berjalan pada 50 MIPS, mencapai 500000 MIPS, • Maka satu perintah dijalankan dalam waktu 0.002nsec
• 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 Sistem Terdistribusi • Ketergantungan pada infrastruktur jaringan (world wide wait....) • Kemudahan akses ke data yang di share, memunculkan masalah keamanan
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
Karakteristik Sistem Terdistribusi • 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 kegagalan sistem keseluruhan
Tantangan Perancangan Sistem Terdistribusi • Heterogen terhadap – Infrastruktur jaringan – Hardware dan software (sistem operasi, perbedaan UNIX socket dan Winsock)
• Bahasa pemrograman – Beberapa pendekatan : • Middleware (contoh : CORBA) • Kode program Mobile (contoh : JAVA)
Tantangan Perancangan Sistem Terdistribusi • Openness – Memastikan sistem dapat diperluas dan mudah dalam pemeliharaan
• Mengikuti standard antarmuka • Security – Privacy – Authentication – Availability
Tantangan Perancangan Sistem Terdistribusi • Scalability – Apakah sistem masih efektif dan handal dalam perkiraan pertumbuhannya?
Tantangan Perancangan Sistem Terdistribusi • Penanganan Kegagalan – Pendeteksian – Masking • Transmisi ulang • Redudansi penyimpanan data
– Toleransi • Exception handling
– Redudancy • Redudan rute jaringan • Replikasi data pada beberapa mesin
• Concurrency – Penjadwalan yang konsisten terhadap concurrent thread – Menghindari masalah deadlock dan lifelock
Tantangan Perancangan Sistem Terdistribusi • Transparency – Menyembunyikan keanekaragaman (heterogeneous) dan tersebarnya sistem sehingga tampak sebagai satu sistem bagi user. – Kategori Transparency (ISO's Reference Model for ODP) • Access – menyembunyikan penggunaan komunikasi untuk mengakses remote resource sehingga user beranggapan bahwa semua resource adalah lokal. – Contoh : pemetaan drive menggunakan Samba Server, NFS
• Location – user tidak perlu mengetahui lokasi dari remote resources
Tantangan Perancangan Sistem Terdistribusi • Kategori Transparency (lanjut) – Concurrency • user tidak peduli keberadaan paralel akses ke remote resource dan inkonsistensi dihindari dengan menggunakan mekanisme concurrency control.
– Replication • menyembunyikan perbedaan-perbedaan antara layanan replicated dan non-replicated.
– Failure • menyembunyikan pengaruh partial fail. Hal ini dicapai dengan cara replikasi resources dan menerapkan mekanisme recovery
– Migration/Mobility • Kemampuan untuk melakukan relocate resource secara dinamik tanpa kekuatiran rekonfigurasi ulang dari user.
Tantangan Perancangan Sistem Terdistribusi • Kategori Transparency (lanjut) – performance • meminimalkan tambahan performance dalam menggunakan remote resource, sehingga response time dan trhoughput sebanding dengan ketika mengakses resource secara lokal.
– scaling • Menyembunyikan variasi dalam kelakukan sistem ketikadilakukan perubahan scope atau skala sistem. Scaling seharusnya tidak memerlukan perubahan besar untuk struktur sistem dan operasi untuk mengakomodasi perubahan skala tersebut. Skala diukur dalam hal kecepatan (slow to fast), size (small to large),geograpgical scope (local or remote).
MODEL SISTEM TERDISTRIBUSI
Pengantar
Model
Tujuan
Menyediakan sebuah kerangka kerja untuk memahami permasalahan dan pemecahannya
Model Arsitektural
Menyediakan sebuah gambaran abstrak aspek yang relevan dengan sistem
Hubungan dan interkoneksi seperti apa antara komponenkomponen dari sistem terdistribusi
Model Fundamental
Karakteristik apa yang mempengaruhi dependability sistem terdistribusi? Dependability : correctness, reliability, security
Kesulitan dan Ancaman
Mode pemakaian
Masalah Internal
Masalah concurrency Masalah clock Mode kegagalan
Lingkungan Sistem
Variasi yang beragam terhadap karakteristik pemakaian Contoh : berapa banyak halaman di kunjungi
Sistem terdistribusi harus mengakomodasi heterogenitas hardware, sistem operasi dan jaringan Contoh : berapa banyak versi SO?
Ancaman Eksternal
Serangan terhadap kesatuan data dan keamanannya
Model Arsitektur Sistem Terdistribusi
Model Arsitektur
Arsitektur
Tujuan
Struktur komponen-komponen secara terpisah
Menyakinkan bahwa struktur sistem memenuhi standar saat ini dan yang akan datang
Model Arsitektur
Abstrak fungsi tiap komponen sistem terdistribusi Penempatan komponen pada jaringan komputer Hubungan antar komponen, yaitu peran fungsional per komponen dan pola komunikasi antar komponen
Klasifikasi Proses
Proses Server
Proses Client
Proses membuat/melakukan request
Proses Peer
Menyediakan layanan dan menangani request
Proses yang saling bekerja sama dan berkomunikasi
Klasifikasi proses tersebut mengidentifikasikan tanggung jawab masing-masing proses dan juga membantu untuk menaksir beban kerja Serta menentukan pengaruh kegagalan dari tiap proses
Software Layer
Arsitektur Software
Lapisan atau modul dalam sebuah komputer tunggal Mendefinisikan layanan yang ditawarkan atau diminta antar proses pada satu atau berbeda komputer Ide dasarnya Membagi sistem yang komplek dalam struktur lapisan dan layanan Antar layer mendefinisikan antar muka Platform : Hardware dan SO WindowsNT/Pentium Processor Solaris/SPARC processor Linux/Pentium Processor
Middleware
Menyediakan transparensi terhadap keanekaragaman platform Proses dan objek pada sekumpulan mesin yang menerapkan protokol untuk aplikasi terdistribusi
Contoh :
CORBA (OMG) DCOM (Microsoft) ODP (ITU-T/ISO) Java Remote Method Invocation (Sun)
Arsitektur Sistem
Perancangan sistem terdistribusi dititikberatkan pada :
Pembagian tanggung jawab antara komponen sistem Penempatan komponen pada komputer dalam jaringan
Pengaruh dari perancangan
Unjuk kerja, Kehandalan dan Keamanan secara langsung tergantung pada pilihan yang ditentukan
Model Client/Server Client
invocation result
Client
invocation
Server
result
Server
Key: Process:
Computer:
Client: proses untuk mengakses data, menggunakan sesumber atau melakukan operasi pada komputer yang berbeda Server: proses yang mengatur data dan semua sesumber yang di share di antara server dan client, memungkinkan client mengakses sesumber dan melakukan komputasi Interaction: pasangan pesan pemanggilan (invocation) / hasil (result) Example – http server: client (browser) meminta dokumen, server mengirimkan dokumen yang diminta Caching of services (proxy servers) – caching terhadap halaman web yang sering digunakan Peer processes (not client-server) – proses-proses yang secara fungsional identik
Multiple Server
Service
Server Client Server
Client Server
Service disediakan oleh beberapa server Contoh : sebagian besar layanan web komersial diterapkan melalui server fisik yang berbeda Motivasi : Unjuk kerja (contoh : cnn.com, download server, dll) kehandalan Server menggunakan replikasi atau database terdistribusi
Proxy Server
Proxy server Client
Web server
Client
Web server
Server dengan duplikasi informasi yang melayani sebagai proxy Caching : Penyimpan lokal untuk item-item yang sering digunakan Meningkatkan unjuk kerja Mengurangi beban pada server Biasanya digunakan pada search engine
Contoh Cache Pada Google
Peer Process • Peer processes – menjaga konsistensi sesumber – sinkronisasi aksi
• contoh: Whiteboard – menggunakan central server – menggunakan peer processes
Mobile Code
Mobile code – kode yang berpindah dan dijalankan pada site yang berbeda
Contoh : applet
Model – pengendali client – push model Q: masalah keamanan?
Mobile Agent
Mobile Agent adalah sebuah program yang berpindah (termasuk data dan kode) dari satu komputer ke lainnya dalam jaringan Biasanya melakukan suatu pekerjaan otomatis tertentu Beberapa masalah : Authentication Permission dan keamanan Alternatif Mengambil informasi melalui remote invocation Contoh : Digunakan untuk install dan memelihara software pada komputer dalam suatu organisasi Membandingkan harga produk dari beberapa vendor
Network Computer
Masalah Pemeliharaan PC sangat tinggi
Solusi Mengurangi variasi pada level lokal
Network Computer OS dan applikasi dari file server Remote file service Disk lokal (jika ada) digunakan sebagai cache
Thin Client
Masalah Membuat PC powerfull sangatlah mahal Solusi Menyediakan server komputasi yang powerfull Thin Client Lapisan software mendukung aplikasi lokal dengan remote executing Contoh : X11 Window (www.xfree86.org) VNC (www.realvnc.com) Citrix WinFrame (www.citrix.com)
Mobile Devices
Spontaneous Networking
Bentuk distribusi yang menggabungkan peralatan mobile dan peralatan lain dalam suatu jaringan disebut sebagai spontaneous networking Meliputi juga aplikasi yang dapat digunakan untuk koneksi antara mobile ataupun non-mobile device ke jaringan. Kemampuan/karakteristik Spontaneous Networking : Kemudahan koneksi ke jaringan lokal Kemudahan menggabungkan dengan layanan lokal Discovery Service Konektifitas terbatas Keamanan dan privacy Antar muka discovery service Registration service Menerima penerimaan registrasi dari server, menyimpan properti layanan yang tersedia dalam database Lookup service Mencocokan permintaan layanan dengan layanan yang tersedia
Antarmuka Client/Server
Kumpulan fungsi yang tersedia untuk pemanggilan (invocation) dari sebuah proses (server atau peer) dinyatakn dengan satu atau lebih definisi antarmuka. Pada C++ dan Java, sebuah antarmuka dapat disusun dengan model berbasis pada objek. Contoh : RMI (java), CORBA(semua bahasa OOP)
Merancang Kebutuhan untuk Sistem Terdistribusi
Masalah Kinerja (Performance) Responsiveness Throughput Balancing computational load Quality of Service pengukuran seberapa tingkat pemakaian fungsi, yaitu Reliability Security Performance Adaptability, kemampuan untuk menyesuaikan dengan perubahan konfigurasi sistem
Merancang Kebutuhan untuk Sistem Terdistribusi
Pemakaian caching dan replikasi Local copy informasi Cache consistency Web caching protocol Replikasi : beberapa copy dari service Masalah Dependability Fault tolerance : Keamanan
(lanjut)
Diagram Arsitektur Intranet dan CS
Browser
ActiveX - DCOM
Prinsip COM
Prinsip DCOM
Arsitektur RMI
Java CORBA
Arsitektur CORBA
HTML - HTTP