Sistem Terdistribusi
Dosen Pengampu:
Made Meita Puspadewi, S.Pd, M.Sc
Outline
Sistem terdistribusi berbasis objek:
Arsitektur
Proses
Komunikasi
Naming
Sinkronisasi
Konsistensi dan replikasi
Toleransi kesalahan
keamanan
Sistem Terdistribusi Sistem Terdistribusi
Berbasis Objek
ARSITEKTUR
01.1
Pendistribusian Objek
Compile Time vs Runtime Objects
Persistent Objects tidak tergantung pada server saat Transient Objects adalah objek yang ada hanya
ini. Di mana, server yang sedang mengelola objek selama server yang menjadi tuan objek. Segera
tetap, dapat menyimpan kondisi objek pada setelah itu keluar dari server, objek juga tidak
penyimpanan sekunder lalu keluar. Kemudian, server ada lagi. Sistem terdistribusi berbasis obyek
yang baru mulai bisa membaca objek kondisi dari yang paling sederhana mendukung kedua
penyimpanan ke ruang alamat sendiri, dan jenisnya.
menangani permintaan pemanggilan.
ARSITEKTUR
01.2
Contoh: Enterprise Java Beans
Java menyediakan akses transparansi tingkat tinggi, yang berisi kombinasi dari C dengan
memanggil remote prosedur. Telah ada insentif yang kuat untuk menyediakan fasilitas yang akan
mempermudah pengembangan aplikasi terdistribusi yang melampaui dukungan bahasa. Memerlukan
lingkungan runtime yang mendukung multi-tradisional berjenjang arsitektur client-server yang telah
dimasukkan ke dalam pengembangan (enterprise) Java Beans (EJB). Sebuah EJB pada dasarnya obyek
Java yang di-host oleh server khusus menawarkan cara yang berbeda untuk klien remote untuk
memanggil objek.
ARSITEKTUR
01.2
Perbedaan antara empat jenis EJBs:
ARSITEKTUR
01.3
Globe Objek Terdistribusi Bersama
Object Model
ARSITEKTUR
01.3
Globe Objek Terdistribusi Bersama
Object Model
ARSITEKTUR
02
PROSES
02.1
Objek Server
PROSES
02.1
Objek Server
Alternatif untuk Menjalankan Objek
Untuk objek dipanggil, server objek perlu tahu kode untuk mengeksekusi, di
mana data itu harus beroperasi, apakah harus memulai thread yang terpisah untuk
mengurus pemanggilan. server mendukung kebijakan yang berbeda. misalnya objek-
objek sementara yang ada hanya selama server ada. Dalam memori, read-only copy file
bisa diimplementasikan sebagai objek sementara atas permintaan pemanggilan
pertama dan untuk menghancurkan segera setelah tidak ada klien terikat lagi.
PROSES
02.1
Objek Server
Object Adapter
Dalam memanggil obyek yang dibutuhkan adalah mekanisme untuk objek kelompok per
kebijakan yang disebut adapter objek, atau alternative bungkus objek. Adaptor objek dapat dianggap
terbaik sebagai perangkat lunak menerapkan kebijakan aktivasi tertentu. Masalah utama bahwa objek
adapter datang sebagai komponen generic untuk membantu pengembang objek terdistribusi, dan yang
hanya perlu dikonfigurasi untuk kebijakan khusus. Adaptor objek memiliki satu atau lebih objek di bawah
kendalinya. Karena server harus mampu secara bersamaan mendukung beberapa adapter objek bisa
berada dalam server yang sama pada waktu yang sama. Ketika sebuah permintaan pemanggilan
disampaikan ke server, permintaan yang pertama dikirim ke adaptor objek yang sesuai.
PROSES
02.2
Sistem Runtime Ice
Sebuah server objek di Ice hanyalah sebuah proses biasa yang hanya dimulai
dengan menginisialisasi sistem Ice runtime (RTS). Dasar dari lingkungan runtime
dibentuk oleh apa yang disebut komunikator. Komunikator adalah komponen pesan
sejumlah sumber daya dasar, yang mana paling penting adalah dibentuk oleh genangan
thread. Sebagai contoh, adalah mungkin untuk menentukan panjang maksimal pesan,
mencoba kembali pemanggilan maksimum, dan sebagainya.
PROSES
03
KOMUNIKASI
03.1
Binding Klien untuk Objek
Perbedaan antara sistem tradisional dan sistem RPC mendukung objek
terdistribusi adalah bahwa yang terakhir umumnya menyediakan referensi objek sistem
wide yang dapat dengan bebas melewati antara proses pada mesin yang berbeda,
misalnya sebagai parameter untuk pemanggilan metode.
Proses memegang referensi obyek, pertama kali harus mengikat objek
direferensikan sebelum memanggil salah satu metode tersebut. Binding menghasilkan
proxy ditempatkan dalam ruang alamat proses yang berisi metode proses dapat
memanggil. Ketika sistem yang mendasari diberikan sebuah referensi obyek, perlu cara
untuk menemukan server yang mengelola objek yang sebenarnya, dan tempat proxy di
ruang alamat klien.
KOMUNIKASI
03.1
Binding Klien untuk Objek
Pelaksanaan Referensi Obyek
Referensi objek harus berisi informasi yang cukup untuk memungkinkan klien
mengikat sebuah referensi objek. Mencakup alamat jaringan mesin, di mana objek
berada, beserta titik akhir identifikasi server yang mengelola objek, ditambah indikasi
mana objek. Bagian dari informasi ini akan diberikan oleh adaptor objek.
KOMUNIKASI
03.2
RPC vs RMI
Perbedaan penting antara RMI dan RPC. RMIs yang umumnya mendukung
referensi sistem objek selebar explained atas. Juga, tidak perlu hanya memiliki tujuan
umum sisi klien dan server-side stub tersedia. Sebaliknya, kita dapat lebih mudah
mengakomodasi objek-spesifik bertopik karena kami juga menjelaskan cara biasa untuk
memberikan dukungan RMI adalah untuk menentukan interface objek dalam bahasa
definisi antarmuka, mirip dengan pendekatan yang diikuti dengan RPC.
KOMUNIKASI
03.3
Parameter PASSING
Semua objek dalam sistem dapat terakses dari mesin remote. Dalam hal
ini, kita secara konsisten dapat menggunakan referensi objek sebagai parameter
dalam pemanggilan metode. Referensi yang dilewatkan dengan nilai, dan dengan
demikian disalin dari satu mesin ke mesin yang lain. Ketika suatu proses diberikan
sebuah referensi obyek sebagai hasil dari pemanggilan metode, itu hanya dapat
mengikat objek yang dimaksud, bila diperlukan nanti.
KOMUNIKASI
03.4
java RMI
Di java, objek didistribusikan telah terintegrasi ke dalam bahasa. Tujuannya
adalah untuk menjaga sebanyak semantik objek yang mungkin tidak terdistribusi
mungkin. Dengan kata lain, para pengembang bahasa java telah ditujukan untuk
keterbukaan dalam distribusi. Namun, pengembang java telah memutuskan untuk
membuat distribusi yang jelas di mana tingkat transparansi yang tinggi hanya membuat
tidak efisien, sulit, atau mustahil untuk mewujudkan.
KOMUNIKASI
03.4
java RMI
Java didistribusikan-objek model
KOMUNIKASI
03.5
Objek Berbasis MESSAGING
Ada berbagai objek berbasis sistem pesan tersedia, dan sebagaimana dapat
diharapkan, menawarkan sangat banyak fungsi yang sama. Pada pesan CORBA
berbeda dari sistem lainnya adalah pendekatan berbasis obyek. Secara khusus, para
perancang layanan pesan diperlukan untuk mempertahankan model bahwa
komunikasi semua terjadi dengan menerapkan objek.
KOMUNIKASI
04
NAMING
04.1
Referensi Objek CORBA
Mendasar untuk CORBA adalah cara objek yang direferensikan. Ketika klien
memegang sebuah referensi obyek, dapat memanggil metode yang diterapkan oleh
object.it direferensikan adalah penting untuk membedakan referensi obyek bahwa
proses klien menggunakan untuk memanggil sebuah metode, dan satu yang
dilaksanakan oleh RTS yang mendasarinya.
NAMING
04.2
Globe Objek Referensi
Dalam dunia setiap objek berbagi didistribusikan diberikan sebuah pengenal objek global
yang unik (OID), yang adalah string 256-bit. Sebuah OID dunia adalah identifier yang benar. Dengan
kata lain, sebuah OID dunia mengacu paling banyak satu objek bersama didistribusikan; tidak pernah
kembali untuk objek lain, dan setiap objek memiliki paling banyak satu OID.
OIDs dunia hanya dapat digunakan untuk membandingkan referensi objek. Misalnya, proses
A dan B masing-masing terikat murah ke shared object terdistribusi. Setiap proses dapat meminta OID
objek mereka terikat untuk. Jika dan hanya jika kedua OIDs yang sama, maka A dan B dianggap terikat
pada objek yang sama.
NAMING
05
SINKRONISASI
Hanya ada beberapa masalah tentang sinkronisasi dalam sistem terdistribusi yang khusus
untuk berurusan dengan objek terdistribusi. Secara khusus, fakta bahwa rincian pelaksanaan
tersembunyi oleh antarmuka dapat menyebabkan masalah: ketika proses memanggil sebuah objek
(jarak jauh), ia tidak memiliki pengetahuan apakah akan menyebabkan invoking objek lain. Akibatnya,
dalam suatu objek dilindungi terhadap akses konkuren, kita mungkin memiliki satu set kunci
cascading bahwa proses memohon tidak menyadari Sebaliknya, ketika berhadapan dengan sumber
data seperti file atau tabel database yang dilindungi oleh kunci ketika kebuntuan percaya telah terjadi.
SINKRONISASI
Perbedaan antara objek lokal dan remote di java sering sulit untuk membuat. Hal-hal menjadi
lebih rumit ketika objek dilindungi dengan menyatakan metode yang akan disinkronisasi. Jika dua
proses secara bersamaan memanggil metode disinkronkan, hanya salah satu proses akan dilanjutkan
sementara yang lain akan diblokir. Dengan cara ini, kita dapat memastikan bahwa akses ke data
internal obyek benar-benar serial, proses juga dapat diblokir dalam sebuah obyek, menunggu
beberapa kondisi untuk menjadi kenyataan.
SINKRONISASI
Logikanya, pemblokiran dalam sebuah remote object sederhana. Misalkan klien bahwa A
memanggil metode disinkronkan dari sebuah remote object. Untuk membuat akses ke objek jarak
jauh terlihat selalu persis sama seperti untuk objek lokal, itu akan diperlukan untuk blok A di sisi klien
stub yang mengimplementasikan antarmuka objek dan yang A memiliki akses langsung. Seperti
bijaksana, klien lain pada mesin yang berbeda akan perlu diblokir lokal juga sebelum permintaannya
dapat dikirim ke server. Konsekuensinya adalah bahwa kita perlu disinkronkan klien yang berbeda
pada mesin yang berbeda. Sehingga sinkronisasi terdistribusi dapat cukup kompleks.
Sebuah pendekatan alternatif akan memungkinkan memblokir hanya pada server. In
principle, ini bekerja dengan baik, tapi masalahnya muncul ketika klien crash sementara pemanggilan
yang sedang ditangani oleh server.
SINKRONISASI
06
KONSISTENSI
DAN REPLIKASI
06.1
Entry Konsistensi
Data-sentris konsistensi untuk objek terdistribusi datang secara alami dalam bentuk Entry
konsistensi. Dalam kasus ini, tujuannya adalah untuk operasi kelompok pada data bersama
menggunakan variabel sinkronisasi. Sebagai objek alami menggabungkan data dan operasi pada data,
mengunci objek sewaktu pemanggilan suatu serializes akses dan membuat mereka konsisten.
Ada dua masalah yang perlu dipecahkan untuk menerapkan entry konsistensi :
1. Bahwa diperlukan sarana untuk mencegah eksekusi konkuren dari pemanggilan multiple pada
objek yang sama.
2. Bahwa dalam kasus objek tereplikasi, kita perlu memastikan bahwa semua perubahan ke state
tereplikasi objek adalah sama.
KONSISTENSI
DAN REPLIKASI
06.1
Entry Konsistensi
Replikasi Kerangka Kerja
Suatu hal yang paling menarik dalam objek terdistribusi berbasis sistem adalah bahwa
dengan sifat dari teknologi objek sering mungkin untuk membuat pemisahan yang bersih antara
fungsi merancang dan isu-isu penanganan fungsional tambahan seperti replikasi.
Pemanggilan untuk objek yang ter intercept ada tiga poin perbedaan:
1. Di sisi client, sebelum dilakukan pemanggilan dikirimkan ke stub.
2. Di sisi stub klien, di mana penangkapan merupakan bagian dari algoritma replikasi.
3. Pada sisi server, tepat sebelum objek akan segera dipanggil.
KONSISTENSI
DAN REPLIKASI
06.1
Entry Konsistensi
Replikasi Kerangka Kerja
A general framework for separating replication algorithms from objects in an EJB environment.
KONSISTENSI
DAN REPLIKASI
07
TOLERANSI
KESALAHAN
Fault Tolerance yaitu Sistem harus bisa mendeteksi kegagalan dan melakukan
tindakan dengan dasar sebagai berikut:
a. Mask the fault (menutupi kegagalan) yaitu tugas harus dapat dilanjutkan dengan
menurunkan kinerja tapi tanpa terjadi kehilangan data atau informasi.
b. Fail Gracefully yaitu 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.
Contohnya :
- Fault Tolerance Corba
- Fault Tolerance Java
TOLERANSI
KESALAHAN
08
KEAMANAN
Ketika mempertimbangkan kebanyakan sistem terdistribusi berbasis objek, fakta
bahwa objek terdistribusi adalah remote object segera mengarah ke situasi di mana
keamanan arsitektur untuk sistem terdistribusi yang sangat mirip. Globe benar-benar
mendukung distribusi objek di mana keadaan objek tunggal dapat disebarkan dan di
replikasi di beberapa mesin.
KEAMANAN
08.1
Contoh : Globe
KEAMANAN
08.1
Contoh : Globe
Secara sederhana, kebijakan keamanan untuk Globe memerlukan delapan pernyataan berikut :
01 05
Otentikasi global yang menggantikan otentikasi
Lingkungan terdiri dari domain administratif.
lokal.
02 06
Mengontrol akses ke sumber daya tunduk pada
dalam domain tunggal) tunduk pada kebijakan
keamanan lokal saja.
keamanan domain lokal saja.
03 07
beberapa domain) membutuhkan inisiator untuk Pengguna dapat mendelegasikan hak untuk
diketahui dalam setiap domain di mana operasi proses.
dilakukan keluar.
04 08
Operasi antara entitas dalam domain yang Sekelompok proses dalam domain yang sama
berbeda memerlukan saling otentikasi. dapat berbagi kepercayaan.
KEAMANAN
08.2
Keamanan untuk Remote Objects
Ide dasar adalah bahwa pengembang dari sebuah remote object juga
mengembangkan proxy dan sub sequently register proxy dengan layanan direktori.
Ketika klien mencari objek, akhirnya akan menghubungi layanan direktori, mengambil
proxy, dan menginstalnya
KEAMANAN