1. Jelaskan tentang sistem operasi terdistribusi ! 2. Sebutkan

advertisement
NAMA : I DEWA NYM. SURYA ADHI PUTRA
NIM
: 0805021095
KELAS : V/C
PEMROGRAMAN SISTEM TERSEBAR
Soal :
1. Jelaskan tentang sistem operasi terdistribusi !
2. Sebutkan penerapan procedure RMI dan RPC !
3. Contoh dari penerapan hardware terdistribusi !
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) 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 daripada superkomputer
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,
internetworking, sistem tambahan, realtime, sistem UNIX, supercomputing, 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.
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 rmiregistry 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 local 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.
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.
Download