Upload
edy-pratamaputra
View
948
Download
18
Embed Size (px)
Citation preview
BAB I
PENDAHULUAN
1.1 Sistem Operasi
Sistem operasi merupakan sebuah penghubung antara pengguna dari
komputer dengan perangkat keras komputer. Sebelum ada sistem operasi, orang
hanya mengunakan komputer dengan menggunakan sinyal analog dan sinyal
digital. Seiring dengan berkembangnya pengetahuan dan teknologi, pada saat ini
terdapat berbagai sistem operasi dengan keunggulan masing-masing. Untuk lebih
memahami sistem operasi maka sebaiknya perlu diketahui terlebih dahulu
beberapa konsep dasar mengenai sistem operasi itu sendiri.
Pengertian sistem operasi secara umum ialah pengelola seluruh sumber-
daya yang terdapat pada sistem komputer dan menyediakan sekumpulan layanan
(system calls) ke pemakai sehingga memudahkan dan menyamankan penggunaan
serta pemanfaatan sumber-daya sistem komputer.
1.2 Sistem Terdistribusi
SisTer terdiri dari dua kata, yaitu “Sistem” dan “Terdistribusi”. Sistem
merupakan sekumpulan elemen yang saling berhubungan satu dengan lainnya dan
membentuk satu kesatuan untuk menyelesaikan satu tujuan yang spesifik atau
menjalankan seperangkat fungsi. Adapun terdistribusi berasal dari kata
“distribusi” yang merupakan lawan kata “sentralisasi”, yang artinya penyebaran,
sirkulasi, penyerahan, pembagian menjadi bagian-bagian kecil.
Berawal dari pengertian kata-kata pembentuknya, SisTer dapat didefinisikan
sebagai suatu kesatuan dari elemen-elemen yang saling berinteraksi secara
sistematis dan teratur untuk mendistribusikan data (Maseleno, 2003), informasi,
proses (Maseleno, 2003), objek dan layanan (LiteracyNet, 2005) dari dan kepada
pengguna yang terkait di dalmnya.
Adapun infrastruktur utama dari aplikasi SisTer ini, meliputi antara lain :
a. Jaringan komputer baik dalam skala local (LAN), metropolitan (MAN),
skala luas (WAN) maupun skala global (Internet).
b. Beragam perangkat keras dan lunak, serta pengguna yang berada dan
saling terkait dalam sistem jaringan yang membentuknya.
Penerapan SisTer merupakan bentuk usaha untuk memanfaatkan secara
optimal sistem jaringan komputer yang dibangun di dalam perusahaan. SisTer
dibangun dengan tujuan untuk :
a. Mengatasi bottleneck, di mana tumpukan pekerjaan pada suatu terminal
dapat didistribusikan ke terminal-terminal lain.
b. Mendukung layanan yang tersebar, misalnya layanan penjualan dengan
menggunakan terminal-terminal yang tersebar di berbagai tempat.
c. Mendukung sistem kerja jarak jauh, misalnya sistem kerja small office
home office yang memungkinkan karyawan untuk bekerja dari rumah
sehingga tidak harus datang ke kantor.
d. Memudahkan kerja kelompok, dengan memudahkan data sharing dan
tetap memungkinkan kerja sama walaupun letak anggota kelompok
berjauhan.
1.3 Client-Server
Dengan makin berkembangnya teknologi jaringan komputer, sekarang ini
ada kecenderungan sebuah sistem yang menggunakan jaringan untuk saling
berhubungan. Dalam jaringan tersebut, biasanya terdapat sebuah komputer yang
disebut server, dan beberapa komputer yang disebut client. Server adalah
komputer yang dapat memberikan service ke server, sedangkan client adalah
komputer yang mengakses beberapa service yang ada di client. Ketika client
membutuhkan suatu service yang ada di server, dia akan mengirim request kepada
server lewat jaringan. Jika request tersebut dapat dilaksanakan, maka server akan
mengirim balasan berupa service yang dibutuhkan untuk saling berhubungan
menggunakan Socket.
Karakteristik Server :
1. Pasif.
2. Menunggu request.
3. Menerima request, memproses mereka dan mengirimkan balasan
berupa service.
Karakteristik Client :
1. Aktif.
2. Mengirim request.
3. Menunggu dan menerima balasan dari server.
BAB II
PEMBAHASAN
2.1 Socket
Socket adalah salah satu titik akhir dari jalur komunikasi dua arah antara dua
program yang berjalan pada jaringan dengan protokol TCP/IP atau UDP. Socket
terhubung pada sebuah nomor port sehingga lapisan TCP dapat mengidentifikasi
aplikasi di mana pengiriman data ditujukan. Socket merupakan sebuah aplikasi
yang dibuat, dikontrol antarmuka sistem operasi di mana aplikasi dapat saling
mengirim dan menerima pesan dari atau pada aplikasi yang lain (Kevin, 2004,
hal.3).
Gambar 1. Gambar proses kerja socket
(Sumber : Kevin, 2004, hal. 3)
Definisi tentang socket sebagai berikut (Shuttleworth, 2003, hal. 5) :
a. Mengizinkan suatu proses unik untuk berkomunikasi satu dengan
yang lain.
b. Memberitahukan proses mana untuk menulis dan membaca.
c. Komunikasi pada mesin yang sama, jaringan dan internet.
d. Komunikasi dua arah membuatnya cocok untuk model client –
server.
e. Dibentuk tahun 1980 oleh Berkeley Unix Distribution.
Pada umumnya, sebuah server merupakan sebuah komputer yang khusus
dan memiliki sebuah socket yang terhubung pada sebuah nomor port yang khusus.
Server hanya menunggu socket untuk menerima permintaan koneksi (request) dari
sebuah client (passive open). Client mengetahui nama mesin tempat server
dijalankan dan nomor port tempat server tersebut dihubungkan. Untuk membuat
koneksi permintaan, client mencoba untuk melakukan koneksi dengan server pada
mesin server dan port (active open).
Gambar 2. Client meminta koneksi
Apabila semuanya berjalan dengan baik, maka server menerima koneksi
(virtual circuit). Saat penerimaan, server membuka socket baru yang terhubung
pada port yang berbeda. Untuk dapat melanjutkan penerimaan dari socket awal
untuk koneksi permintaan saat melayani kebutuhan client yang terhubung,
dibutuhkan sebuah socket baru (dengan nomor port yang berbeda).
Gambar 3. Respons server
Pada sisi client, jika koneksi diterima, sebuah socket berhasil dibentuk dan
client dapat menggunakan socket tersebut untuk berkomunikasi dengan server.
Client dan server sekarang dapat berkomunikasi untuk menulis atau membaca dari
socket tersebut.
Gambar 4. Proses transaksi TCP
Ada dua macam protokol yang dapat digunakan pada socket, yaitu :
a. TCP bersifat connection-oriented dan reliable.
i. Connection-oriented, untuk melakukan komunikasi diperlukan
koneksi terlebih dahulu.
ii. Reliable, menjamin sampainya paket data ke komputer tujuan
dan melakukan pengecekan. Apabila ada paket data yang
hilang atau rusak maka socket TCP akan meminta paket data
yang rusak atau hilang tersebut sampai semua paket data yang
diterima dalam kondisi yang baik.
Gambar 5. Komunikasi client - server
b. UDP bersifat connectionless dan unreliable.
Beberapa nomor port yang sering digunakan, antara lain port 21 (FTP), 23
(Telnet), 25 (SMTP), 69 (TFTP), 80 (HTTP), dan 161 (SNMP).
Ada beberapa langkah agar sebuah aplikasi client-server dapat saling
berkomunikasi, yaitu :
2.1.1 Tipe Socket
Pada saat sebuah socket terbentuk, program harus menetapkan domain
address dan tipe socket-nya. Dua buah proses dapat saling berkomunikasi satu
dengan yang lainnya hanya jika tipe dan domain-nya sama. Ada dua domain
address umum yang digunakan, yaitu :
a. Unix domain adalah socket yang tidak dapat dijangkau dari internet
secara langsung, tetapi bersama dengan datangnya permintaan server.
b. Internet domain adalah dua proses yang berjalan pada dua buah host di
komunikasi internet. Alamat socket dari internet domain terdiri atas
internet address dari mesin host. Selain itu, setiap socket membutuhkan
nomor port pada host-nya. Nomor port berupa 16 bit unsigned integers.
Angka yang rendah disediakan dalam Unix untuk layanan standar.
Sebagai contoh, nomor port untuk FTP server adalah 21. Hal ini penting
bahwa layanan standar akan berada pada port yang sama pada semua
komputer sehingga client akan mengetahui alamatnya. Well-known port
ada 65536 nomor port yang tersedia.
Untuk tipe socket ada dua macam, yaitu Stream socket dan Datagram socket
(www.redbrick.dcu.ie/~vamprus/sockets.html).
a. Stream socket adalah komunikasi continuous stream dari karakter
(menggunakan protokol TCP).
b. Datagram socket adalah pembacaan seluruh pesan dengan segera
(menggunakan protokol UDP).
Gambar 6. Penggunaan socket untuk komunikasi dalam jaringan
Dalam penulisannya, socket dituliskan berupa rangkaian alamat IP dan
alamat port, seperti contoh gambar di atas, Host A berperan sebagai Client, dan
Host B sebagai Server. Host A mempunyai alamat IP 192.168.5.1 menggunakan
port 3000 dan meminta layanan dari Host B yang mempunyai alamat IP
192.168.5.200 dengan port 25. Dalam proses ini host A bisa dituliskan dengan
192.168.5.1:3000 yang melakukan hubungan dengan host B dengan identitas
192.168.5.240:25.
2.2 RPC (Remote Procedure Call)
Remote Procedure Call (RPC) memungkinkan suatu komponen aplikasi
pada suatu komputer dapat menggunakan komponen (bisa berupa function) yang
dimiliki pada komputer lainnya. Dengan mekanisme seperti ini komponen aplikasi
pada suatu komputer tidaklah harus memiliki sendiri keseluruhan fungsionalitas
yang dibutuhkan, karena dapat menggunakan fungsionalitas yang dimiliki oleh
komponen aplikasi komputer lainya yang digunakan secara Remote.
RPC menyembunyikan detail implementasi komunikasi jaringan seperti
penentuan protokol komunikasi, port yang digunakan, streaming serta hal-hal
yang harus dispesifikasikan jika dilakukan pengembangan aplikasi menggunakan
low level Socket / Socket. Contoh sederhana untuk menganalogikan definisi RPC
yaitu terdapat 2 buah komputer, server dan client di dalam suatu share network
yang ditunjukan seperti gambar di bawah ini :
Gambar 7. Simple invoking methods
Pada gambar diatas dapat dilihat bahwa di sisi server terdapat sebuah
services (method) untuk menghitung luas persegi yang memiliki 2 inputan
parameter. Ada sebuah Client yang membutuhkan suatu method untuk
menghitung luas persegi dapat menggunakan method LuasPersegi(float p, float l)
yang terdapat di sisi server. Client mengirimkan parameter (passing parameter)
ke server, Server akan melakukan perhitungan kemudian hasil perhitungan
tersebut akan di kirimkan lagi kepada Client. Sekali lagi contoh diatas hanyalah
kasus sederhana yang dirasakan dapat memberikan gambaran mengenai ide dasar
dari penggunaan teknologi Remote Procedure Call.
2.2.1 Model dan Arsitektur RPC
RPC merupakan teknologi yang digunakan untuk membangun komunikasi
antar proses / Inter Process Communication (IPC) yang terdiri dari beberapa stack
komponen yang masing-masing memiliki fungsionalitas yang spesifik. Dibawah
ini merupakan arsitektur Remote Procedure Call yang terdiri dari beberapa
komponen pembangun antar lain : Client, Client Stub, Server Stub, dan Server.
Gambar 8. Arsitektur RPC
Berikut ini merupakan fungsionalitas spesifik setiap komponen
pembangun RPC.
a. Client Application
Merupakan aplikasi pemanggil procedure yang ada pada Server. Client
memanggil suatu method yang dibutuhkan beserta dengan
mengirimkan parameter (passing parameter) kepada Server.
b. Client Stub
Merupakan komponen yang bertanggung jawab atas pembentukan
paket request (marshaling) yang disertai dengan procedure name atau
procedure ID yang merupakan nama atau ID dari method yang di-
request oleh Client, serta melakukan pembongkaran paket
(unmarshaling) terhadap reply dari Server.
c. Server Stub
Merupakan komponen yang bertanggung jawab atas penerimaan paket
dari Client, melakukan pembongkaran terhadap paket tersebut
(unmarshaling), melakukan pemanggilan terhadap method yang
diinginkan Client, serta melakukan marshaling terhadap hasil eksekusi
Server yang akan dikirimkan ke Client.
d. Server Application
Merupakan aplikasi penyedia services (method) yang dibutuhkan oleh
Client. Server menerima request dari Client dan melakukan
pengolahan sesuai dengan behavior dari method tersebut dan
parameter yang diberikan oleh Client.
2.2.2 Komunikasi RPC
Alur komunikasi Remote Procedure Call dapat diilustrasikan dimana ada
sebuah client yang hendak menggunakan method yang ada di sisi server. Client
akan me-request suatu method dengan mengirimkan parameter yang dibutuhkan
oleh remote method dan dikemas menjadi sebuah paket (marshaling) yang
dilakukan oleh client stub yang kemudian akan dikirimkan ke server. Di sisi
server, paket yang dikirimkan oleh client akan diterima oleh Server Stub yang
kemudian dilakukan pembongkaran (unmarshaling) terhadap paket tersebut dan
menentukan procedure atau method yang akan mengeksekusi request tersebut.
Server Stub dapat menentukan method untuk mengeksekusi request dari Client
karena di dalam paket request yang diberikan oleh Client terdapat procedure
name atau procedure id dari method yang di-request.
Setelah parameter diterima oleh method yang dimaksud, maka Server akan
melakukan eksekusi method sesuai dengan behavior-nya. Setelah selesai, Server
akan mengirimkan hasil eksekusi kepada Client yang sebelumnya diserahkan ke
Server Stub untuk proses pemaketan (marshaling). Server Stub mengirmkan hasil
tersebut ke Client dimana di sisi Client akan diterima oleh Client Stub. Client Stub
akan melakukan unmarshaling terdadap reply dari Server dan memberikanya
kepada Client.
Berikut ini merupakan gambar model komunikasi yang terjalin antara
Server dan Client yang menggunakan paradigma Remote Procedure Call.
Gambar 9. RPC communication model
Dapat dilihat pada gambar diatas bahwa Client dalam kondisi idle atau
menunggu setelah mengirimkan request ke Server sampai menerima reply dari
Server. Oleh sebab itu model komunikasi RPC yang ditunjukan pada gambar
diatas dan diilustrasikan sebelumnya merupakan model komunikasi Synchronous
Remote Procedure Call.
Berikut ini merupakan gambaran dari arsitektur RPC yang digabungkan
dengan contoh penghitungan luas persegi pada contoh Simple Invoking Method
pada halaman sebelumnya. Dapat dilihat pada gambar dibawah ini bahwa jika
Client hendak menggunakan method yang ada pada Server, maka Client Stub
memaketkan request dimana pada paket tersebut disertakan method name yaitu
“LuasPersegi” dan parameter yang dibutuhkan oleh method tersebut yaitu
parameter p yang berarti panjang dan parameter l yang berarti lebar.
Gambar 10. Model pemaketan request oleh Stub
Paket request dari Client akan ditransmisikan melalui Network Media
yang tentu saja sebelumnya melalaui OS (Operating System). Kalo kita
menginginkan bentuk paket data yang ditransmisikan melalui media transmisi
(Network Media) tentu saja paket data tersebut tidak bebentuk seperti pada
gambar diatas, melainkan berupa deretan bit yang terdiri dari bit 0 dan 1 yang
pada media transmisi direpresentasikan dengan perbedaan tegangan listrik.
Gambar 11. Bit-bit paket data
Untuk sekedar mengingatkan tentang pembungkusan paket data yang akan
ditransmisikan melalui media transmisi bahwa pada setiap layer akan
ditambahkan header tersendiri. Seperti pada gambar diatas bahwa paket data
terdiri dari header yang merupakan set dari beberapa informasi dari setiap layer,
paket data itu sendiri, dan trailer.
2.2.3 Langkah-Langkah dalam RPC
Gambar 12. Langkah-langkah dalam RPC
Langkah-langkah tersebut antara lain :
1. Prosedur client memanggil client stub
2. Client stub membuat pesan dan memanggil OS client
3. OS client mengirim pesan ke OS server
4. OS server memberikan pesan ke server stub
5. Server stub meng-unpack parameter-parameter untuk memanggil
server
6. Server mengerjakan operasi, dan mengembalikan hasilnya ke server
stub
7. Server stub mem-pack hasil tersebut dan memanggil OS server
8. OS server mengirim pesan (hasil) ke OS client
9. OS client memberikan pesan tersebut ke client stub
10. Client stub meng-unpack hasil dan mengembalikan hasil tersebut ke
client
2.2.4 Kelebihan dan Kekurangan RPC
2.2.3.1 Kelebihan RPC :
1. Mudah digunakan karena pemanggilan remote procedure tidak jauh
berbeda dibandingkan pemanggilan local procedure. Sehingga
pemrogram dapat berkonsentrasi pada software logic, tidak perlu
memikirkan low level details, seperti socket, marshalling &
unmarshalling.
2. Robust atau Sempurna karena RPC telah banyak digunakan dlm
pengembangan mission-critical application yg memerlukan scalability,
fault tolerance, dan reliability.
3. Memanggil fungsi yang berada di komputer lain.
4. Komunikasi di atas jaringan.
5. Marshal data (Sebagai pusat data).
2.2.3.2 Kekurangan RPC
1. Tidak fleksibel terhadap perubahan. Dikarenakan:
a. Hubungan yang statis antara client dan server saat sedang berjalan/
bekerja
b. Prosedur/struktur programming yang sudah ketinggalan jaman
dibandingkan OOP.
2. Kurangnya location transparency, karena:
a. Hanya melakukan pass by value, bukan pass by reference.
b. Komunikasi hanya antara 1 client dan 1 server (one-to-one at a
time).
c. Komunikasi antara 1 client dan beberapa server memerlukan
beberapa koneksi yang terpisah.
3. Tipe-tipe data terbatas.
4. Cenderung memakai Interface Definition Language (IDL).
2.3 Java RMI (Remote Method Invocation)
Java Remote Method Invocation (RMI) merupakan kelas standart pada Java
yang dipergunakan untuk pemanggilan (invocation) suatu method secara remote
(jarak jauh) pada suatu jaringan komputer. Teknologi ini merupakan
pengembangan lebih lanjut dari Convensional RPC dimana yang dipertukarkan
hanya data biasa, sedangkan pada Java RMI yang dipertukarkan adalah Objek.
Java RMI hanya dapat diimplementasikan menggunakan bahasa pemrograman
Java, artinya baik Server maupun Client yang hendak mempertukarkan objek-
objeknya harus dibangun menggunakan bahasa pemrograman Java.
Teknologi Remote Method Invocation (RMI), pertama kali diperkenalkan
pada JDK 1.1, untuk meningkatkan network Programming ke tingkatan level yang
lebih tinggi. RMI relative mudah untuk digunakan, dan RMI merupakan teknologi
yang luar biasa powerful dan memperlihatkan kepada para pengembang Java
paradigma yang benar-benar baru mengenai dunia distribusi objek komputasi.
Tujuan utama bagi designer RMI adalah untuk mengizinkan para
programmer membangun program distribusi (Java) dengan sintaks yang sama dan
semantic yang sama dengan yang digunakan untuk program non-terdistribusi.
Untuk melakukan hal ini, harus diperhatikan dalam memetakan kelas pada Java
dan objek yang bekerja pada Java Virtual Machine(JVM) tunggal ke dalam model
baru dimana kelas dan objek akan bekerja pada lingkungan komputasi yang
terdistribusi (multiple JVM).
2.3.1 Arsitektur Java RMI
Tujuan desain untuk arsitektur RMI adalah untuk menciptakan model objek
Java yang terdistribusi yang secara alami, bersatu dengan bahasa pemrograman
Java dan model objek lokal. Arsitektur RMI telah diganti dengan : menciptakan
sistem yang menambahkan tingkat keamanan dan ketahanan dari arsitektur Java
untuk dunia komputasi terdistribusi. Interface merupakan inti dari RMI.
Arsitektur RMI didasarkan pada satu prinsip utama, yaitu definisi dari
perilaku dan implementasi dari perilaku, merupakan konsep yang dipisahkan RMI
mengizinkan kode yang mendefinisikan perilaku dan kode yang
mengimplementasikan perilaku untuk menunjukan keterpisahan dan dijalankan
pada JVM yang berbeda. Kesesuaian yang baik dengan kebutuhan dari sistem
terdistribusi dimana Client lebih focus pada definisi dari sebuah layanan dan
Server fokus pada bagaimana cara menyediakan layanan.
Dalam RMI pada khususnya, definisi dari layanan remote dikodekan
menggunakan interface Java. Implementasi dari layanan remote dikodekan dalam
sebuah kelas. Oleh karena itu, kunci untuk mengerti RMI adalah dengan
mengingat bahwa interface mendefinisikan perilaku (behaviour) dan Kelas
mendefinisikan implementasi.
Berikut adalah diagram ilustrasi yang menggambarkan pemisahan yang
terjadi.
Gambar 13. RMI system
Interface Java tidak mengandung kode yang dapat dieksekusi. RMI
mendukung kelas yang mengimplementasikan interface yang sama. Kelas pertama
merupakan implementasi dari perilaku dan dijalankan pada sisi Server. Kelas
kedua bertingkah seolah-olah sebagai sebuah proxy untuk layanan remote dan
dijalankan pada sisi Client. Kedua kelas ditunjukan oleh diagram berikut :
Gambar 14. Diagram class interface RMI
Sebuah program Client membuat method yang ada padanya memanggil ke
objek pada proxy, RMI mengirimkan request untuk remote JVM dan
meneruskannya untuk keperluan implementasi. Setiap nilai balikan yang
disediakan oleh implementasi, dikirimkan kembali ke proxy dan program Client.
2.3.2 Layer dalam Arsitektur Java RMI
Implementasi RMI secara khusus dibangun dari 3 layer abstraksi, yaitu :
1. Stub/skeleton layer, yaitu stub pada sisi client (berupa proxy), dan
skeleton pada sisi server.
2. Remote reference layer, yaitu perilaku remote reference (misalnya
pemanggilan kepada suatu objek).
3. Transport layer, yaitu set up koneksi, pengurusannya dan remote object
tracking.
Batas antar masing-masing layer disusun oleh interface dan protokol
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.
Layer application berada di atas sistem RMI. Hubungan antara layer-layer
tersebut dapat dijelaskan pada gambar berikut :
Aplikasi
Sistem RMI
Gambar 15. Hubungan layer arsitektur Java RMI
2.3.3 Aplikasi Objek Terdistribusi
RMI menyediakan mekanisme dimana server dan client berkomunikasi
dan memberikan informasi secara timbal balik. Aplikasi semacam ini seringkali
disebut aplikasi objek terdistribusi.
Aplikasi objek terdistribusi seringkali melakukan hal berikut:
1. Melokasikan objek remote: Aplikasi dapat menggunakan satu dari dua
mekanisme untuk mendapatkan referensi ke objek remote. Aplikasi
dapat mendaftarkan objek remote dengan fasilitas penamaan RMI
Stub Skeleton
Remote Reference Layer
Transport layer
Client Server
(naming facility) yaitu rmiregistry atau aplikasi dapat mem-pass dan
mengembalikan referensi objek remote sebagai bagian dari operasi
normal.
2. Berkomunikasi dengan objek remote: Detail dari komunikasi antara
objek remote ditangani oleh RMI, bagi programmer komunikasi
remote tampak seperti invokasi method Java standar.
3. Memanggil (load) bytecode untuk objek yang di-pass: Karena RMI
mengizinkan pemanggil (caller) untuk mem-pass objek ke objek
remote, RMI menyediakan mekanisme yang diperlukan objek me-load
kode objek, sebagaimana juga mentransmisikan datanya.
Ilustrasi berikut menggambarkan aplikasi RMI terdistribusi yang
menggunakan registry untuk mendapatkan referensi ke objek remote. Server
memanggil registry untuk mengasosiasikan (mengikat) suatu nama dengan objek
remote. Client mencari objek remote dengan namanya pada registry server dan
meng-invoke method dari objek. Ilustrasi ini juga menunjukkan sistem RMI
menggunakan Web server untuk memanggil class bytecodes, dari server ke client
dan dari client ke server, untuk objek-objek yang diperlukan.
Gambar 16. Ilustrasi sistem RMI dengan Web Server
2.3.4 Langkah-Langkah Pembuatan Program dengan RMI
Dalam RMI, semua informasi tentang satu pelayanan server disediakan
dalam suatu definisi remote interface. Dengan melihat pada definisi interface,
seorang pemrogram dapat memberitahukan method apa yang dapat dikerjakan
oleh server, meliputi data apa yang diterima dan data apa yang akan dikirim
sebagai tanggapan.
Definisi yang ada pada remote interface menentukan karakteristik methods
yang disediakan server yang dapat dilihat oleh client. Client programmer harus
dapat mengetahui methods apa yang disediakan server dan bagaimana
memanggilnya langsung dengan melihat ke remote interface. Client mendapatkan
referensi ke remote object melalui RMI registry.
Membangun suatu aplikasi terdistribusi menggunakan RMI meliputi 6
langkah. Keenam langkah tersebut adalah:
1. Mendefinisikan remote interface
2. Implementasi remote interface dan server
3. Pengembangan client (atau applet) yang menggunakan remote
interface
4. Mengkompilasi source files dan membuat stub dan skeletons
5. Memulai (start) RMI registry
6. Menjalankan server dan client
2.3.5 Kelebihan dan Kekurangan Java RMI
2.3.5.1 Kelebihan Java RMI
1. Implementasi RPC dengan Java.
2. Meng-handle marshaling data di seluruh jaringan.
3. Transfer Java objek..
4. Tidak perlu adanya IDL (Interactive Data Language; software ideal
untuk keperluan analisis data, visualisasi, dan pengembangan aplikasi
lintas platform/ Interface Definition Language).
5. Memungkinkan object yang berjalan di satu JVM (Java Virtual
Machine) untuk memanggil suatu metode dari satu objek yang running
di JVM yang lain.
6. RMI memungkinkan komunikasi remote antar program JAVA.
2.3.5.2 Kekurangan Java RMI
1. RMI tidak memiliki konsep layanan.
2. Objek server yang ditulis dengan RMI java memiliki performance
yang kurang karena batasan penggunaan JVM (Java Virtual Machine).
3. Batas antar masing-masing layer disusun oleh interface dan protokol
tertentu.
4. Tiap layer bersifat independen terhadap layer lainnya.
5. RMI tidak bisa digunakan jika kelas-kelas RMI tidak akan diijinkan
untuk di-load.
BAB III
PENUTUP
3.1 Simpulan
1. Socket adalah salah satu titik akhir dari jalur komunikasi dua arah antara
dua program yang berjalan pada jaringan dengan protokol TCP/IP atau
UDP. Socket terhubung pada sebuah nomor port sehingga lapisan TCP
dapat mengidentifikasi aplikasi di mana pengiriman data ditujukan.
Socket merupakan sebuah aplikasi yang dibuat, dikontrol antarmuka
sistem operasi di mana aplikasi dapat saling mengirim dan menerima
pesan dari atau pada aplikasi yang lain.
2. Remote Procedure Call (RPC) memungkinkan suatu komponen aplikasi
pada suatu komputer dapat menggunakan komponen (bisa berupa
function) yang dimiliki pada komputer lainnya. Dengan mekanisme
seperti ini komponen aplikasi pada suatu komputer tidaklah harus
memiliki sendiri keseluruhan fungsionalitas yang dibutuhkan, karena
dapat menggunakan fungsionalitas yang dimiliki oleh komponen
aplikasi komputer lainya yang digunakan secara Remote.
3. Java Remote Method Invocation (RMI) merupakan kelas standart pada
Java yang dipergunakan untuk pemanggilan (invocation) suatu method
secara remote (jarak jauh) pada suatu jaringan komputer. Teknologi ini
merupakan pengembangan lebih lanjut dari Convensional RPC dimana
yang dipertukarkan hanya data biasa, sedangkan pada Java RMI yang
dipertukarkan adalah Objek. Java RMI hanya dapat diimplementasikan
menggunakan bahasa pemrograman Java, artinya baik Server maupun
Client yang hendak mempertukarkan objek-objeknya harus dibangun
menggunakan bahasa pemrograman Java.
DAFTAR PUSTAKA
CE – 152 – Client Server Application Development,
<http://courseware.politekniktelkom.ac.id/BUKU_TK/Semester 5/CE -
152 - Client Server Application Development.pdf> diakses tanggal 13
Maret 2011
Sistem Operasi, <http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/2003/0-
CONTOH/produk/SistemOperasi.html#AEN113> diakses tanggal 13
Maret 2011
Sekilas tentang Java RMI, <onno.vlsm.org/v09/onno-ind-
1/application/sekilas-tentang-java-rmi-1998.rtf> diakses tanggal 13 Maret
2011
Komunikasi,<naeli.staff.gunadarma.ac.id/Downloads/files/8465/
Komunikasi_revisi.pdf> diakses tanggal 13 Maret 2011
Sister, < http://triyajoys.blogspot.com/2011_01_01_archive.html> diakses
tanggal 14 Maret 2011
<http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-
4.X-1.pdf> diakses tanggal 14 Maret 2011
Dharma Oetomo, B.S., Wibowo, E., Hartono, E., & Prakoso, S. (2006)
Konsep & Aplikasi Pemrograman Client Server dan Sistem Terdistribusi.
Penerbit ANDI : Yogyakarta