Anda di halaman 1dari 43

PERTEMUAN 11

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

Sebuah sistem yang


Memainkan peran
memungkinkan
kunci dalam
aplikasi komputer
membangun
beroperasi secara
transparansi distribusi.
terintegrasi pada lebih
Hal ini menjadi
dari satu lingkungan
penting karena
yang terpisah secara
sistem relatif mudah
01
ARSITEKTUR
01.1
Pendistribusian Objek
Fitur utama dari sebuah obyek adalah ia merangkum data, yang disebut state, dan
operasi pada data tersebut, disebut method. Metode yang dibuat tersedia melalui
sebuah interface. Sebuah objek dapat mengimplementasikan beberapa interface.
pemisahan antara interface dan objek yang mengimplementasikan interface sangat
penting untuk sistem terdistribusi yang memungkinkan kita untuk menempatkan
sebuah interface di satu mesin, sedangkan obyek itu sendiri berada pada mesin lain.

ARSITEKTUR
01.1
Pendistribusian Objek
Compile Time vs Runtime Objects

Runtime Object yang diterapkan dibiarkan


Compile Time Objects merupakan adalah objek tingkat
terbuka. Contoh, menulis C library berisi
bahasa yang didukung oleh Java, C ++, atau lainnya
sejumlah fungsi yang semua bisa bekerja pada
bahasa berorientasi objek di mana obyek didefinisikan
file data umum yang metodenya bisa dipanggil
sebagai instance dari kelas. Objek kompilasi waktu
dari mesin pengendali dengan menggunakan
dalam sistem terdistribusi lebih mudah untuk
adaptor objek, yang bertindak sebagai
membangun aplikasi terdistribusi. Contoh di Java,
pembungkus di sekitar pelaksanaan dengan
sebuah objek dapat sepenuhnya didefinisikan dengan
tujuan untuk memberikan penampilan sebuah
cara kelasnya dan interface yang
obyek.
mengimplementasikan kelas, di mana objek akan
dipanggil dari mesin pengendali
ARSITEKTUR
01.1
Pendistribusian Objek
Persistent dan Transient 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:

01 Stateless session beans Entity beans


02

03 Stateful session beans Message - driven beans 04


01.3
Globe Objek Terdistribusi Bersama
Globe adalah sistem di mana skalabilitas memainkan peran sentral. Seperti
sistem berbasis obyek, benda-benda di Globe diharapkan untuk merangkum state dan
operasi pada state itu. Perbedaan dengan sistem berbasis objek lainnya yaitu, objek
juga diharapkan untuk merangkum pelaksanaan kebijakan yang menentukan distribusi
state obyek di beberapa mesin. Setiap objek menentukan bagaimana state akan
didistribusikan ke tiruannya yang mengontrol kebijakan sendiri di daerah lain juga.

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

Objek server adalah server yang disesuaikan untuk mendukung objek


terdistribusi. Perbedaan pada server lainnya (lebih tradisional) ialah bahwa obyek
server dengan sendirinya tidak memberikan layanan khusus. Server provedies untuk
memanggil objek lokal, berdasarkan permintaan dari klien remote yang mengubah
layanan dengan hanya menambahkan dan menghapus objek. Server benda terdiri dari
dua bagian, data yang mewakili state dan kode untuk menjalankan metode tersebut.

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

Java juga mengadopsi objek remote sebagai satu-satunya bentuk objects.recall


didistribusikan bahwa object remote adalah objek terdistribusi yang selalu berada pada
kondisi mesin tunggal, tetapi dapat antarmuka yang dibuat tersedia untuk Emote
processes. Antarmuka diimplementasikan dalam cara yang biasa dengan cara proxy,
yang menawarkan antarmuka yang sama persis. Sebuah proxy itu sendiri muncul
sebagai objek lokal dalam ruang alamat klien.

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

Globe merupakan sistem pendukung berskala luas yang didistribusikan


perhitungannya di mana banyak host, file, dan sumber daya lainnya sekaligus
digunakan untuk melakukan perhitungannya. Lingkungan seperti ini juga disebut
sebagai komputasi grid. Sumber daya dalam grid sering berada di domain administrasi
yang berbeda yang mungkin terletak di berbagai bagian dunia.

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.

Lokal operasi (yaitu, operasi yang dilakukan hanya

02 06
Mengontrol akses ke sumber daya tunduk pada
dalam domain tunggal) tunduk pada kebijakan
keamanan lokal saja.
keamanan domain lokal saja.

Operasi global (yakni, operasi melibatkan

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

Anda mungkin juga menyukai