NAMA : Yudhi Kurniawan
KELAS : 4KA34
NPM : 19112048
DOSEN
: Muhammad achsan isa al anshori
Soal
:
1.
Jelaskan tentang sistem operasi terdistribusi !
2.
Sebutkan penerapan procedure RMI dan RPC !
3.
Contoh dari penerapan hardware terdistribusi !
1. Sistem
Operasi Terdistribusi
Sistem terdisitribusi merupakan
kumpulan autonomous computers yang
terhubung melalui sistem jaringan computer dan dilengkapi dengan sistem software tedistribusi untuk membentuk
fasilitas computer terintegrasi.
• Sebuah sistem dimana komponen software atau hardware-nya terletak di dalam jaringan komputer dan saling berkomunikasi
menggunakan message pasing.
• Sebuah sistem yang tersusun
oleh dua atau lebih komputer dan memiliki koordinasi proses melalui pertukaran
pesan sinkron atau asinkron
Proses:
- Dijalankan secara bersamaan (execute concurrently)
- interaksi untuk bekerjasama
dalam mencapai tujuan yang sama
- mengkoordinasikan aktifitas dan
pertukaran informasi yaitu pesan yang dikirim melalui jaringan komunikasi
Pentingnya Komputasi
Terdistribusi
Contoh Umum:
- Internet, global jaringan
interkoneksi computer yang berkomunikasi
melalui IP (Internet Protocol) ;
- Intranet, jaringan
teradministrasi terpisah dengan batasan pada kebijakan keamanan local;
- Mobile dan komputasi diberbagai
tempat, laptops, PDA, mobile phone, printers, peraltan rumah, dll
- World Wide Web (www), sistem untuk publikasi dan akses sumber daya
dan layanan melalui Internet.
Tantangan Sistem Terdistribusi
- Kompleksitas,
- Ukuran,
- Tantangan Teknologi
- Ketergantungan Sosial Keberagaman (Heterogeneity)
- Berfariasinya software dan hardware: membutuhkan standard (protocol,
middleware)
- Dukungan pada mobile code: virtual machine JVM (Java Virtual Machine) Keterbukaan (Opennes)
- Tidak bergantung pada vendor
- Interface untuk key yang dapat
dibulikasi: CORBA (Common Object Request
Broker Architecture)
- Mekanisme Komunikasi yang dapat
dipublikasi: Java RMI (Remote Method
Invocation) Keamanan
- Kerahasiaan (Melindungi dari
kebocoran)
- Integritas (melindungan dari
pengubahan dan interfrensi) mis. Data keuangan. Membutuhkan teknologi ekripsi
dan informasi identitas.
- Ketersediaan (mempertahankan
sistem tetap tersedia setiap saat dibutuhkan) Skalabilitas
- Tetap mampu
bekerja efektif meskipun ukuran bertambah.
- Membutuhkan pengendalian biaya
sumber daya, unjuk kerja, dll.
- Contoh: Memperbesar kapasitas
rasio computer / web server.
Jenis Sistem Operasi
Terdistribusi
a. Amoeba (Vrije Universiteit)
Amoeba adalah sistem berbasis mikro-kernel yang tangguh yang
menjadikan banyak workstation personal
menjadi satu sistem terdistribusi secara transparan. Sistem ini sudah banyak
digunakan di kalangan akademik, industri, dan pemerintah selama sekitar 5
tahun.
b. MOSIX (Hebrew University, Jerusalem, Israel)
Sebuah solusi untuk masalah saat
ini menjadi ada untuk lingkungan multikomputer, yang disebut MOSIX. Mosix
adalah pengembangan dari UNIX, yang mengijinkan user untuk menggunakan resource
yang ada tanpa ada perubahan pada level aplikasi. Dengan penggunaan yang
transparan, algoritma proses migrasi dinamis, MOSIX melayani servis jaringan,
seperti NFS, TCP/IP, dari UNIX, untuk level proses, dengan menggunakan
penyeimbangan load dan distribusi
dinamis pada cluster-cluster yang homogen.
c. Beowulf
Konsep Beowulf ini mulai
dikembangkan dengan menggunakan perangkat komputer yang sangat sederhana untuk
ukuran sekarang, 16 motherboard 486 DX 100 MHz, ethernet 10baseT (Sterling et
al., 1995). Tetapi telah mampu menghasilkan kinerja yang cukup menjanjikan.
Beowulf menggunakan protokol komunikasi standard Unix, sehingga kemampuannya
menjadi terbatasi oleh protokol ini, akan tetapi dalam pengembangannya Beowulf
telah melakukan modifikasi implementasi TCP/IP yang hasilnya sangat membantu
kualitas implementasi dari Linux pada umumnya. Dari sisi pemrograman Beowulf
memanfaatkan library Parallel Virtual
Machine (PVM) untuk menyusun aplikasinya. Sebagian besar aplikasi yang
dijalankan pada model Beowulf ini memang aplikasi jenis komputasi matematis.
Beowalf merupakan free-software
seperti Linux ataupun FreeBSD yang berjalan pada komputer yang disusun secara
pararel yang terhubung dengan jaringan privat berkecepatan tinggi untuk
menjalankan tugas perhitungan dengan kemampuan tinggi. Yang dipentingkan dalam
Beowulf adalah kecepatan bukan reliabilitas
seperti pada komputer cluster Linux. Untuk aplikasi yang berjalan diatasnya
dibutuhkan development
yang berbeda supaya dapat
berjalan. Alasan mengapa orang-orang menggunakan Beowulf karena Beowulf
menginginkan super komputer yang murah dari pada super komputer tradisional.
d. Angel (City University of London)
Angel didesain sebagai sistem
operasi terdistribusi yang paralel, walaupun sekarang ditargetkan untuk PC
dengan jaringan berkecepatan tinggi. Model komputasi ini memiliki manfaal
ganda, yaitu memiliki biaya awal yang cukup murah dan juga biaya incremental
yang rendah. Dengan memproses titik-titik di jaringan sebagai mesin single yang
bersifat shared memory, menggunakan teknik distributed
virtual shared memory (DVSM), sistem ini ditujukan baik bagi yang ingin
meningkatkan performa dan menyediakan sistem yang portabel dan memiliki kegunaan yang tinggi pada setiap platform
aplikasi.
e. CHORUS (Sun Microsystems)
CHORUS merupakan keluarga dari sistem
operasi berbasis mikro-kernel untuk
mengatasi kebutuhan komputasi terdistribusi tingkat tinggi di dalam bidang
telekomunikasi, internet working,
sistem tambahan, realtime, sistem
UNIX, super computing, dan kegunaan
yang tinggi. Multiserver CHORUS/MiX merupakan
implementasi dari UNIX yang memberi kebebasan untuk secara dinamis
mengintegrasikan bagian-bagian dari fungsi standar di UNIX dan juga service dan aplikasi-aplikasi di
dalamnya.
f. GLUnix (University of California, Berkeley)
Sampai saat ini, workstation dengan modem tidak
memberikan hasil yang baik untuk membuat eksekusi suatu sistem operasi
terdistribusi dalam lingkungan yang shared
dengan aplikasi yang berurutan. Hasil dari penelitian ini adalah untuk
menempatkan resource untuk performa
yang lebih baik baik untuk aplikasi paralel
maupun yang seri / berurutan. Untuk merealisasikan hal ini, maka sistem operasi
harus menjadwalkan pencabangan dari program pararel, mengidentifikasi idle resource di jaringan, mengijinkan
migrasi proses untuk mendukung keseimbangan loading,
dan menghasilkan tumpuan untuk antar proses komunikasi.
2. Penerapan
Procedure RMI dan RPC
a. RMI (Remote Method Invocation)
RMI biasa digunakan oleh para
programer Java untuk dapat memanggil method
pada jarak jauh. RMI diartikan sebagai cara programmer Java untuk membuat
program aplikasi Java to Java yang terdistribusi. Program-program yang
menggunakan RMI bisa menjalankan metode secara jarak jauh, sehingga program
dari server bisa menjalankan method di komputer client, dan begitu juga sebaliknya. Java RMI yang ada pada bahasa
Java telah didesain khusus sehingga hanya bisa bekerja pada lingkungan Java.
Hal ini berbeda dengan sistem RMI lainnya,
misalnya CORBA, yang biasanya didesain untuk bekerja pada lingkungan yang
terdiri dari banyak bahasa dan heterogen. Pemodelan objek pada CORBA tidak
boleh mengacu pada bahasa tertentu. Sistem RMI terdiri atas tiga layer
/lapisan, yaitu :
- stub / skeleton layer, yaitu stub
pada sisi client (berupa proxy),
dan skeleton pada sisi server. remote
reference layer, yaitu perilaku remote
reference ( misalnya pemanggilan kepada suatu objek).
- transport layer, yaitu set up koneksi, pengurusannya dan remote object tracking.
Batas antar masing-masing layer
disusun oleh interface dan protocol tertentu, yaitu tiap layer bersifat independen terhadap layer
lainnya, dan bisa diganti oleh implementasi alternatif tanpa mengganggu layer
lainnya. Sebagai contoh, implementasi transport yang digunakan RMI adalah yang
berbasis TCP (menggunakan Java socket), tapi bisa digantikan dengan menggunakan
UDP. Sebuah client yang menjalankan method pada remote server object sebenarnya
menggunakan stub atau proxy yang berfungsi sebagai perantara
untuk menuju remote server object
tersebut. Pada sisi client, reference
ke remote object sebenarnya merupakan
reference ke stub lokal. Stub ini
adalah implementasi dari remote interface
dari sebuah remote object, dan
meneruskan panggilan ke server object
melalui remote reference layer. Stub dibuat dengan menggunakan kompiler rmic. Supaya sebuat panggilan method tersebut bisa sampai di remote object, panggilan tersebut
diteruskan melalui remote reference layer. Panggilan tersebut sebenarnya
diteruskan ke skeleton yang berada di
sisi server. Skeleton untuk remote object
ini akan meneruskan panggilan ke kelas remote
object implementation yang menjalankan method
yang sebenarnya. Jawaban, atau return
value dari method tersebut akan
dikirim melalui skeleton, remote
reference layer dan transport layer pada
sisi client, lalu melalui transport layer, remote reference layer,
dan stub pada sisi client. Teknik dalam RMI salah satunya
adalah dynamic stub loading, yang
berfungsi untuk membuat client me-load stub yang belum ada di komputernya.
Stub mengimplementasi remote interface yang sama dengan yang
diimplementasikan oleh remote object.
Dengan RMI, komputer client bisa
memanggil remote object yang berada
di server. Server juga bisa menjadi client
dari suatu remote object, sehingga
komputer client bisa menjalankan method-method tertentu di komputer server. Dengan menggunakan RMI, program
yang dijalankan di komputer client
bisa berupa applet, maupun berupa
aplikasi.
Program RMI
memerlukan remote interface,
kelas-kelas implementasi dari remote
interface tesebut (implementation
class), dan program rmi registry
yang sedang dijalankan di komputer server
(rmi registry terdapat dalam paket JDK). Untuk mengimplementasikan interface tersebut maka diperlukan class yang dapat mengeksekusinya. Implementation class merupakan kelas
yang mengimplementasikan remote interface.
Implementation class perlu
mendefinisikan konstruktor untuk remote
object, sekaligus membuat instance
dari remote object tersebut. Implementation class juga menyediakan
implementasi dari method yang bisa
dijalankan secara remote. Selain itu implementation class juga perlu membuat
dan menjalankan Security Manager. Tambahan lagi, implementation class juga harus me-register atau mendaftarkan paling tidak
sebuah remote object pada RMI remote object registry. Pada program implementation class, semua argumen
untuk remote method dan semua return value dari remote method bisa berupa object bertipe apa saja, asal object-object tersebut mengimplementasi interface java.io.Serializable. Untuk remote objects, penyampaiannya dilakukan
dengan pass by reference. Referensi
untuk suatu remote object sebenarnya
merupakan referensi untuk sebuah stub,
yaitu proxy pada sisi client untuk remote object. Pada method
main di implementation class,
diperlukan pembuatan dan pemasangan sebuah security
manager, yang bisa berupa RMI Security
Manager, ataupun security manager
yang sebelumnya telah didefinisikan dulu secara khusus oleh sang programmer. Security manager ini
diperlukan untuk menjaga agar kelas-kelas yang dipakai tidak melakukan
operasi-operasi yang bisa mengancam keamanan sistem. Jika dalam method main tidak terdapat security manager, RMI tidak bisa
digunakan karena kelas-kelas RMI tidak akann diijinkan untuk di-load. Protokol yang dipakai oleh RMI
adalah Java Object Serialization dan
HTTP. Protokol Object Serialization
digunakan untuk meneruskan panggilan client
dan mentransfer data. Protokol HTTP digunakan untuk mem-"POST" sebuah remote
method invocation dan mengembalikan data keluaran untuk situasi ketika
komputer client dan server dipisahkan oleh firewall.
Contoh implementasi
dari RMI di antaranya :
1. Perusahaan programming Avitek yang berlokasi di
Amerika Serikat, membuat program sistem accounting untuk intranet yang
memungkinkan client untuk meng-update dan mengubah data dengan mudah.
Tujuan dari proyek ini adalah untuk membuat dan mendukung pembuatan dari bukti
nyata untuk konsep penggunaan Java yang dikombinasikan dengan database.
2. Perusahaan CEAS Consulting yang menyediakan jasa custom reengineering dan otomasi proses untuk
perusahaan-perusahaan manufakturing dan teknik, telah membuat program sistem
terdistribusi untuk client mereka.
b. RPC (Remote Procedure Call)
Yang dimaksud disini adalah
sebuah metode yang memungkinkan kita untuk mengakses sebuah prosedur yang
berada di komputer lain. Untuk dapat melakukan ini sebuah server harus menyediakan layanan remote procedure. Pendekatan yang dilakukan adalah sebuah server membuka socket, lalu menunggu client yang meminta prosedur yang
disediakan oleh server. Bila client tidak tahu harus menghubungi port yang mana, client bisa me-request kepada
sebuah matchmaker pada sebuah RPC port yang tetap. Matchmaker akan memberikan port
apa yang digunakan oleh prosedur yang diminta client. RPC masih menggunakan cara primitif dalam pemrograman,
yaitu menggunakan paradigma procedural
programming. Hal itu membuat kita sulit ketika menyediakan banyak remote procedure. RPC menggunakan socket
untuk berkomunikasi dengan proses lainnya. Pada sistem seperti SUN, RPC secara default sudah ter-install ke dalam sistemnya, biasanya RPC ini digunakan untuk
administrasi sistem. Sehingga seorang administrator jaringan dapat mengakses
sistemnya dan mengelola sistemnya dari mana saja, selama sistemnya terhubung ke
jaringan.
RPC mengabstraksi interface komunikasi ke level
pemanggilan procedure. Programmer
tidak akan menangani socket secara langsung, dan seolah-olah memanggil prosedur
lokal, padahal argumen dari prosedur lokal tersebut dipaketkan dan dikirimkan
ke tujuan jarak jauh. Tapi RPC tidak bisa langsung dipakai dalam sistem objek
terdistribusi. Dalam sistem objek terdistribusi, diperlukan komunikasi antara
objek objek yang ada di level program, yang berada dibanyak tempat.
3. Penerapan
Hardware Terdistribusi
Hardware
atau perangkat keras komputer adalah merupakan bagian fisik komputer. Dimana hardware terdiri atas beberapa komponen
yaitu input device, alat pemroses, storage, dan output device. Untuk sistem terdistribusi sebagai contoh kita bisa
saling berbagi pakai fasilitas seperti Scanner, CD-ROM dan Printer.