Download - RPC & RMI

Transcript
Page 1: RPC & RMI

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).

Page 2: RPC & RMI

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.

Page 3: RPC & RMI

Karakteristik Client :

1. Aktif.

2. Mengirim request.

3. Menunggu dan menerima balasan dari server.

Page 4: RPC & RMI

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

Page 5: RPC & RMI

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

Page 6: RPC & RMI

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 :

Page 7: RPC & RMI

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

Page 8: RPC & RMI

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

Page 9: RPC & RMI

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

Page 10: RPC & RMI

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

Page 11: RPC & RMI

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.

Page 12: RPC & RMI

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

Page 13: RPC & RMI

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

Page 14: RPC & RMI

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

Page 15: RPC & RMI

(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.

Page 16: RPC & RMI

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.

Page 17: RPC & RMI

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

Page 18: RPC & RMI

(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.

Page 19: RPC & RMI

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).

Page 20: RPC & RMI

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.

Page 21: RPC & RMI

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.

Page 22: RPC & RMI

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


Top Related