Openness (Keterbukaan)
Sebuah keterbukaan dalam system terdistribusi memiliki pengertian kemampuan sebuah
sistem dalam mengembangkan fleksibilitas terhadap peningkatan kinerja sebuah sistem. Seperti
penambahan module baru dan ketersediaan extension / plugin yang dapat terkoneksi dengan sistem
lain. Contoh karakteristik ini misalkan sebuah aplikasi web banking yang dapat terhubung dengan
sistem web milik perusahaan finance.
Concurrency
Semua proses dalam sistem terdistribusi dilakukan secara concurrency (secara bersama-sama).
Hal ini dilakukan untuk mencegah inkonsistensi dan ketidak valid an sebuah data dan proses. Sebagai
contoh dalam sebuah aplikasi web yang diakses oleh banyak user. Ketika server melakukan sebuah
update. Maka semua user yang mengakses halaman web tersebut akan langsung mendapatkan update
terbaru tersebut.
Scalability
Skalabilitas memiliki pengertian bahwa sebuah sistem terdistribusi harus dapat ditingkatkan
kinerjanya tanpa mengubah komponen-komponen di dalamnya. Sebagai contoh, sebuah aplikasi
web yang digunakan oleh user yang terlalu banyak. Maka untuk meningkatkan kinerja dari web tersebut
agar tidak terjadi overload atau system down maka perlu dilakukan upgrade processor dan ram. Dalam
proses upgrading tersebut, komponen dalam web tidak perlu diubah.
Transparency
Secara umum, transparansi disini tidak berlaku untuk user biasa yang mengutamakan
fungsionalitas, apakah ia sedang menggunakan sistem yang terdistribusi atau tidak. Namun secara
khusus bagi seorang pengelola baik itu developer atau administrator sistem sangat perlu untuk
mengetahui arsitektur dari sistem yang sedangdigunakan karena untuk mempermudah bagi
mereka dalam mengembangkan dan memelihara sistem tersebut.
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 diminta 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 dengan
mencegah frekwensi akses ke server.
• Proxy server membuat duplikasi beberapa server yang diakses oleh client
• Caching:
– Penyimpanan lokal untuk item yang sering diakses
– Meningkatkan kinerja
– Mengurangi beban pada server
Keheterogenan
Suatu sistem terdistribusi dpt dibangun dr berbagai n/w, o/s, h/w, & p/l yg berbeda. IP dpt
digunakan untuk mengatasi perbedaan jaringan. Middleware mengatasi perbedaan lainnya.
Keterbukaan
Mendukung extensibility. Setiap komponen memiliki antarmuka (interface), yang di publish
ke komponen lain.
Perlu integrase berbagai komponen yang dibuat oleh programmer atau vendor yang
berbeda.
Keamanan
Shared resources & transmisi informasi rahasia perlu dilengkapi dengan enkripsi. Cegah
denial of service.
Scalability
Penambahan pemakai membutuhkan penambahan resource yang konstan. Cegah bottleneck
Jika perlu, gunakan replikasi.
Penanganan Kegagalan
Setiap proses (computer atau jaringan) dpt mengalami kegagalan secara independen.
Komponen lain harus tetap berjalan dengan baik.
Concurrency
Multiple users with concurrent requests to a shared resources.
Setiap resource hrs aman di lingkungan tersebut di atas.
Transparansi
Transparan: bagi pemakai, keberadaan beberapa komponen tampak sebagai satu sistem
saja.
Accesstransparency : Local & remote resources dapat diakses dengan operasi yang sama.
BAB II
KOMUNIKASI
2.1. Protocol
Protokol adalah sebuah aturan atau standar yang mengatur atau mengijinkan terjadinya
hubungan, komunikasi, dan perpindahan data antara dua atau lebih titik komputer. Protokol
dapat diterapkan pada perangkat keras, perangkat lunak atau kombinasi dari keduanya. Pada
tingkatan yang terendah, protokol mendefinisikan koneksi perangkat keras.
Protokol perlu diutamakan pada penggunaan standar teknis, untuk menspesifikasi bagaimana
membangun komputer atau menghubungkan peralatan perangkat keras. Protokol secara umum
digunakan pada komunikasi real-time dimana standar digunakan untuk mengatur struktur dari
informasi untuk penyimpanan jangka panjang.
3.1. Thread
3.1.1. Pengertian Thread
Thread adalah sebuah alur kontrol dari sebuah proses. Thread merupakan unit dasar dari
penggunaan CPU, yang terdiri dari Thread_ID, program counter, register set, dan stack. Sebuah thread
berbagi code section, data section, dan sumber daya sistem operasi dengan Thread lain yang dimiliki
oleh proses yang sama.
Ada tiga pustaka thread yang sering digunakan saat ini, yaitu: POSIX Pthreads, Java, dan
Win32. Implementasi POSIX standard dapat dengan cara user level dan kernel level, sedangkan Win32
adalah kernel level. Java API thread dapat diimplementasikan oleh Pthreads atau Win32.
Karakteristik Server : Pasif; Menunggu request; Menerima request, memproses mereka dan
mengirimkan balasan berupa service. Karakteristik Client : Aktif; Mengirim request; Menunggu dan
menerima balasan dari server.
e. Model Three-tier
Pada model ini disisipkan satu layer tambahan diantara user interface tier dan
database tier.
Gambar 3.5 Model Three-tier
3.3. Agent
3.3.1. Pengertian Agent
Agent adalah entitas perangkat lunak yang didedikasikan untuk tujuan tertentu yang
memungkinkan user untuk mendelegasikan tugasnya secara mandiri, selanjutnya software agent
nantinya disebut agent saja. Agent bisa memiliki ide sendiri mengenai bagaimana menyelesaikan suatu
pekerjaan tertentu atau agenda tersendiri. Agent yang tidak berpindah ke host lain disebut stationary
agent.
3.3.2.Karakteristik Agent
1. Autonomy
2. Intelligence, Reasoning, dan Learning
3. Mobility dan Stationary
4. Delegation Reactivity
5. Proactivity dan Goal-Oriented
6. Communication and Coordination Capability3.3.3.Klasifikasi Software Agent
1. Klasifikasi menurut Karakteristik yang Dimiliki
Menurut Nwana, agent bisa diklasifikasikan menjadi delapan berdasarkan pada
karakteristiknya.
Bahasa pemrograman yang dipakai untuk tahap implementasi dari software agent, sangat
menentukan keberhasilan dalam implementasi agent sesuai dengan yang diharapkan.
Dari karakteristik di atas dapat disimpulkan bahwa bahasa pemrograman yang layak untuk
mengimplementasikan software agent adalah sebagai berikut :
• Java
• Telescript
• Tcl/Tk, Safe-Tcl, Agent-Tcl
BAB 4
SISTEM OPERASI TERDISTRIBUSI
Manajemen Berkas
Berkas adalah kumpulan informasi yang berhubungan sesuai dengan tujuan pembuat berkas
tersebut. Berkas dapat mempunyai struktur yang bersifat hirarkis (direktori, volume, dll.). Sistem
operasi bertanggung-jawab : pembuatan dan penghapusan berkas, pembuatan dan penghapusan
direktori, mendukung manipulasi berkas dan direktori, memetakan berkas ke secondary storage, mem-
backup berkas ke media penyimpanan yang permanen (non-volatile).
Sistem Proteksi
Proteksi mengacu pada mekanisme untuk mengontrol akses yang dilakukan oleh program,
prosesor, atau pengguna ke sistem sumber daya. Mekanisme proteksi harus: membedakan antara
penggunaan yang sudah diberi izin dan yang belum.
Process State
Status proses selalu berubah-ubah selama suatu program dieksekusi atau dijalankan. Beberapa
status tersebut ialah :
a. New : proses baru diciptakan
b. Running : proses sedang dijalankan
c. Waiting : proses sedang menunggu suatu kondisi tertentu untuk bisa berjalan.d. Ready : proses
menunggu untuk dilayani processor
e. terminated : proses telah menyelesaikan eksekusi.
Keuntungan Thread
Gambar 4.3 Thread
Keuntungan dari program yang multithreading dapat dipisah menjadi empat kategori :
1. Responsi
2. Berbagi sumber daya
3. Ekonomi
4. Utilisasi arsitektur multiprocessor
Multithreading Models
a. Model Many-to-One. Model ini memetakan beberapa thread tingkatan pengguna ke sebuah
thread. t
b. Model One-to-One. Model ini memetakan setiap thread tingkatan pengguna ke setiap
thread. dibatasi dalam sistem. Contoh: Windows NT/XP/2000 , Linux, Solaris9.
c. Model Many-to-Many. Model ini memultipleks banyak thread tingkatan pengguna ke thread
kernel yang jumlahnya sedikit atau sama dengan tingkatan pengguna.
Penjadwalan Thread
Untuk menjadwalkan thread, sistem dengan model mulithreading many to many atau many to one
menggunakan :
a. Process Contention Scope (PCS). Pustaka thread menjadwalkan thread pengguna untuk berjalan
pada LWP (lightweight process) yang tersedia.
b. System Contention Scope (SCS). SCS berfungsi untuk memilih satu dari banyak thread , kemudian
menjadwalkannya ke satu thread tertentu(CPU / Kernel).
BAB 5
FILE SERVICE
File Sistem Terdistribusi ( Distributed File System , disingkat DFS ) adalah file sistem yang
mendukung sharing files dan resources dalam bentuk penyimpanan persistent di sebuah network. File
server pertama kali didevelop pada tahun 1970 dan Sun NFS (Network File System) menjadi DFS pertama
yang banyak digunakan setelah awal pemunculannya di tahun 1985. DFS yang terkenal selain NFS adalah
AFS (Andrew File System) dan CIFS (Common Internet File System).
Didalam
setiap name objek terdapat juga beberapa atribut yang merupakan properti suatu objek. Contoh :
✓ DNS : memetakan dari nama ke atribut alamat IP host
✓ X.500 : memetakan suatu nama seseorang ke beberapa atribut, seperti email, telepon, dsb.
✓ CORBA Naming Service yang memetakan nama remote objek ke remote object
reference.
6.2.1.Name Space
Name Space adalah kumpulan nama sah yang dikenal oleh suatu layanan yang sesuai.
Suatu nama dapat digambarkan dengan menggunakan generative grammar, seperti BNF (Backus-Naur
Form).Contoh BNF untuk email
Berikut adalah beberapa karakter dari name space :
• memiliki struktur internal
✓ flat
✓ hirarki yang mempresentasikan posisi (contoh sistem berkas UNIX)
✓ hirarki yang mempresentasikan struktur organisasi (contoh Internet Domain)
• Karena hirarki, memiliki potensi tak terbatas
• Suatu name space dapat diatur secara terdistribusi (naming domain)
• Suatu name space dapat berupa gabungan dari beberapa nama space lain. Contoh mount pada
UNIX/Linux
6.2.2.Name Resolution
Nama resolution yaitu diberikan nama obyek , temukan obyek tersebut. Simpan semua nama
di setiap name server. Partisi basis data penamaan (naming database) dapat dilakukan berdasarkan:
• Algoritma:
✓ Tergantung dari nilai sebuah fungsi hash.
✓ Tidak tergantung pada struktur dan lokasi obyek.
• Sintaks:
✓ Contoh: telaga.cs.ui.ac.id.
• Atribut.
✓ Proxy dapat menyimpan pointer migrasi suatu obyek.
6.2.3.Name servers and navigation
Navigasi dan name servers di sini memiliki arti petunjuk pengaksesan nama data dari lebih
dari satu name server untuk menyelesaikan suatu pemetaan nama (resolve a name). Yang
didalamnya terdapat 3 metode,yaitu :
1. Iterative Navigation
Transitive Navigation hampir sama dengan resolusi rekursif. Return address dari agent
diteruskan oleh server, sehingga jika informasi lokasi obyek ditemukan, informasi tersebut
langsung diteruskan ke agent. Kelebihan : berkurangnya pengiriman pesan, server tidak perlu
menyimpan status on going resolution. Kekurangan: pengirim tidak menerima ACK.
2. Non-recursive and Recursive server-controlled navigation
26
3. Recursive Server Controlled
Rekursif adalah aktifitas berpindah dari server ke server, shg nama selalu di- resolve
dalam konteks yang baru. Multiple servers transparan bagi name agent. Agent tidak sibuk. Servers
harus menyimpan return address untuk setiap outgoing lookup, dan secara keseluruhan bekerja
keras.
3. Atomisitas
Tiap situs memiliki koordinator transaksi yg berfungsi menjamin atomisitas eksekusi transaksi,
dengan cara:
memulai eksekusi transaksi
memecah menjadi beberapa sub-transaksi dan mendistribusikannya pada situs- situs yg
cocok utk dieksekusi
mengkoordinasikan terminasi transaksi (commit, atau abort)
Tiap situs menyimpan log untuk tujuan recovery4. Concurrency Control
Manajer transaksi berfungsi mengelola eksekusi transaksi yg mengakses data
Menyimpan log untuk tujuan recovery
Berpartisipasi dalam skema kontrol-konkurensi untuk mengkoordinasi eksekusi transaksi
5. Penanganan Deadlock
♦ Deadlock Prevention
· Pencegahan: Faktor-faktor penyebab deadlock yang harus dicegah untuk terjadi
· 4 faktor yang harus dipenuhi untuk terjadi deadlock:
· Mutual Exclusion: pemakaian resources.
· Hold and Wait: cara menggunakan resources.
· No preemption resource: otoritas/hak.
· Circular wait: kondisi saling menunggu.
· Jika salah satu bisa dicegah maka deadlock pasti tidak terjadi
♦ Deadlock Detection
· Mencegah dan menghidari dari deadlock sulit dilakukan:
· Kurang efisien dan utilitas sistim
· Sulit diterapkan: tidak praktis, boros resources
· Mengizinkan sistim untuk masuk ke “state deadlock”
· Gunakan algoritma deteksi (jika terjadi deadlock)
· Skema recovery untuk mengembalikan ke “safe state”
6. Algoritma Pemilihan
· Algoritma Bully
Adalah (Gracia-Moliana 1982) algoritma yang mengijinkan proses mengalami crash pada saat
terjadi pemilihan (election), meskipun pengiriman pesan antar proses adalah reliable.
Ada tiga tipe pada algoritma ini, yaitu:
1. election message : digunakan untuk pemberitahuan akan adanya pemilihan
2. answer message : merupakan jawaban dari election message
3. coordinator message : digunakan untuk memberitahukan identitas dari proses pemilihan
Sebuah proses dimulai dengan pemilihan ketika telah diperintahkan, melewati timeout,
saat coordinator gagal. Ketika sebuah proses menerima pesan coordinator proses tersebut akan
menset variabelnya menjadi elected. Jika sebuah proses menerima proseselection proses tersebut
akan mengirim jawaban dan akan memulai proses terpilih tersebut, kecuali telah mulai sebelumnya.
· Algoritma Ring
Tujuan dari algoritma ini adalah untuk memilih sebuah proses tunggal yang disebut koordinator,
yang merupakan proses dengan identifier terbesar. Awalnya, setiap proses ditandai sebagai non-
peserta dalam pemilihan. Setiap proses bisa mulai pemilihan. Hal hasil dengan menandai dirinya sebagai
salah satu peserta, menempatkan para identifier dalam pemilihan pesan dan mengirimkannya kepada
tetangga searah jarum jam. Ketika sebuah proses menerima pesan pemilihan, itu membandingkan
pengenal dalam pesan dengan sendiri. Jika identifier yang tiba lebih besar, maka meneruskan pesan
10 tetangganya. Jika identifier yang tiba lebih kecil dan penerima bukan merupakan peserta maka
pengganti pengenal sendiri dalam pesan dan ke depan itu, tetapi tidak meneruskan pesan jika sudah
menjadi peserta. Pada pemilihan penerusan pesan dalam beberapa kasus, proses menandai dirinya
sebagai peserta.
8.3. Replication
Replikasi adalah suatu teknik untuk melakukan copy dan pendistribusian data dan objek-objek
database dari satu database ke database lain dan melaksanakan sinkronisasi antara database sehingga
konsistensi data dapat terjamin. Dengan menggunakan teknik replikasi ini, data dapat didistribusikan
ke lokasi yang berbeda melalui koneksi jaringan lokal maupun internet. Replikasi juga memungkinkan
untuk mendukung kinerja aplikasi, penyebaran data fisik sesuai dengan penggunaannya, seperti
pemrosesan transaksi online dan DSS (Desiscion Support System) atau pemrosessan database
terdistribusi melalui beberapa server.
Selain itu ada yang menyebutkan bahwa Replikasi adalah proses menyalin dan memelihara
objek database dalam beberapa database yang membentuk suatu sistem database terdistribusi.
Replikasi dapat meningkatkan kinerja dan melindungi ketersediaan aplikasi karena data pilihan
alternatif akses ada. Sebagai contoh, sebuah aplikasi biasanya dapat mengakses database lokal daripada
server jauh untuk meminimalkan lalu lintas jaringan dan mencapai kinerja maksimum. Selanjutnya,
aplikasi dapat terus berfungsi jika server lokal mengalami kegagalan, tetapi server lain dengan data
direplikasi tetap dapat diakses.
Dengan replication dasar, replika data memberikan akses read-only ke tabel data yang berasal
dari sebuah situs (master) primer.Aplikasi dapat query data dari replika data lokal untuk menghindari
akses jaringan terlepas dari ketersediaan jaringan.Namun, aplikasi di seluruh sistem harus mengakses
data pada situs utama ketika pembaruan diperlukan.
Keuntungan replication tergantung dari jenis replikasi tetapi pada umumnya replikasi
mendukung ketersediaan data setiap waktu dan dimanapun diperlukan. Adapun keuntungan lainnya
adalah :
1. Memungkinkan beberapa lokasi menyimpan data yang sama. Hal ini sangat berguna pada saat
lokasi-lokasi tersebut membutuhkan data yang sama atau memerlukan server yang terpisah
dalam pembuatan aplikasi laporan.
2. Aplikasi transaksi online terpisah dari aplikasi pembacaan seperti proses analisis database secara
online, data smarts atau data warehouse.3. Memungkinkan otonomi yang besar.
Pengguna dapat bekerja dengan meng-copy data pada saat tidak terkoneksi kemudian
melakukan perubahan untuk dibuat database baru pada saat terkoneksi.
4. Data dapat ditampilkan seperti layaknya melihat data tersebut dengan menggunakan aplikasi
berbasis Web.
5. Meningkatkan kinerja pembacaan.
6. Membawa data mendekati lokasi individu atau kelompok pengguna. Hal ini akan membantu
mengurangi masalah karena modifikasi data dan pemrosesan query yang dilakukan oleh banyak
pengguna karena data dapat didistribusikan melalui jaringan dan data dapat dibagi berdasarkan
kebutuhan masing-masing unit atau pengguna.
Dibawah ini merupakan jenis-jenis Replication:
1. Snapshot replication : Mendistribusikan data yang dapat dilihat pada saat tertentu tanpa
melakukan update.
2. Merge replication : Merge replication memungkinkan pengguna bekerja dan merubah data sesuai
dengan wewenangnya. Pada saat server tidak dikoneksikan ke seluruh lokasi dalam topologi,
replikasi merubah ke nilai data yang sama.
3. Transactional Replication : Pengguna mendapatkan salinan lengkap dari database awal dan
kemudian mendapatkan update periodik sebagai perubahan data.
BAB 9
DISTRIBUTED DATABASE MANAGEMENT
Konsep
1. Database terdistribusi (Distributed Database), merupakan sekumpulan interrelasi(hubungan) secara
logic dari data yang digunakan bersama (dan deskripsi data), yang secara fisik terdistribusi melalui
jaringan komputer.
2. DBMS Terdistribusi (Distributed DBMS),Merupakan sistem Software yang mengijinkan pengaturan
dari database terdistribusi dan membuat distribusi tersebut terbuka untuk para pengguna/user.
3. DDBMS terdiri dari database yang secara logical tunggal dan dibagi menjadi beberapa fragment
(bagian). Masing-masing fragment disimpan pada satu atau lebih komputer.
4. DDBMS mempunyai beberapa karakter, diantaranya :a) Kumpulan dari data yangdigunakan bersama,
yang berhubungan secara logic. b) Data dipecah - pecah menjadi sejumlah fragmen.
c) Fragmen dapat direplikasi.
d) Fragmen/replikanya dapat dialokasikan/ditempatkan ke suatu site(tempat). e) Tempat -
tempat (site) dihubungkan oleh jaringan komunikasi.
f) Data yang terdapat pada setiap site berada dibawah kontrol/pengawasan dari
DBMS.
g) DBMS yang terdapat pada setiap site dapat mengatur aplikasi - aplikasi lokal secara
autonom.
h) Setiap DBMS berpartisipasi paling sedikit dalam sebuah aplikasi global.
Keterangan:
CU : Control Unit
IS : Instruction Stream (Arus Instruksi)
PU : Processing Unit (Unit Pengolah yang biasa disebut ALU) DS : Data Stream (Arus Data)
MU : Memory Unit (Unit Memori)
2. Single Instruction, Multiple Data Stream – SIMD
Single machine instruction
Mengontrol eksekusi secara simultan sejumlah elemen-elemen pengolahan Berdasarkan Lock-
step
Setiap pengolahan elemen memiliki hubungan dengan memori data
Setiap instruksi dieksekusi pada kumpulan data yang berbeda oleh prosesor yang berbeda
Prosesor Vector and array
Program PVM terdiri dari master dan slave, dimana program master dieksekusi paling
awal dan kemudian melahirkan proses lain. PVM memanggil rutin pvm_spawn() untuk melahirkan satu
atau dua proses lebih yang sama. Fungsi-fungsi untuk PVM versi bahasa C mempunyai rutin awalan
pvm. Pengiriman dan penerimaan task diidentifikasi dengan TID (Task Identifier). TID ini bersifat unik
dan digenerate oleh pvmd lokal. PVM berisi beberapa rutine yang mengembalikan nilai TID sehingga
aplikasi user dapat mengidentifikasi task lain disistem.
PI