METHOD INVOCATION
OLEH
DERIA DWI ANTARI
0904505038
Abstrak
Socket adalah software abstrak untuk media input atau output dari komunikasi antar
komputer sehingga memungkinkan untuk melakukan transfer data. Socket adalah sebuah
penghubung antara dua host, yang dapat dibangun dengan tujuh dasar operasi. Socket
memungkinkan aplikasi untuk berkomunikasi menggunakan mekanisme standar yang
dibangun ke dalam perangkat keras jaringan dan sistem operasi. Remote Procedure Call
(RPC) merupakan 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. Protokol RPC mengijinkan pengguna (users) untuk
bekerja dengan prosedur remote sebagaimana bekerja dengan prosedur lokal. RMI adalah
sebuah teknik pemanggilan method remote yang lebih secara umum lebih baik daripada RPC
dan menggunakan paradigma pemrograman berorientasi obyek (Object Oriented
Programming). RMI memungkinkan kita untuk mengirim obyek sebagai parameter dari
remote method.
1. Socket
1.1 Pengertian Socket
Socket adalah sebuah abstraksi perangkat lunak yang digunakan sebagai suatu
“terminal” dari suatu hubungan antara dua mesin atau proses yang saling
berinterkoneksi yang memungkinkan adanya pertukaran data Pada lingkungan Unix,
socket memberikan keleluasaan pemrograman gaya Unix yang terkenal dengan
ideologinya, Semua di Unix/Linux adalah file. Komunikasi antar program dapat
berlangsung lewat penggunaan deskriptor file standar Unix dengan bantuan socket.
Pada file deskriptor yang menjadi tujuan adalah sebuah file, sedangkan pada
socket adalah komputer atau node lain. Intinya ketika kita telah terhubung dengan
socket(), maka antarmukanya sama saja dengan sebuah file. Penggunaan socket
programming memungkinkan adanya komunikasi antara client dan server seperti
pembuatan program untuk chatting.
Socket adalah sebuah penghubung antara dua host, yang dapat dibangun dengan
tujuh dasar operasi yaitu :
1. menghubungkan untuk mengendalikan mesin atau perangkat
2. mengirim data.
3. menerima data
4. menutup koneksi
5. bergantung pada port
6. mendengarkan data yang masuk
7. menerima koneksi dari mesin yang dikendalikan berdasarkan sebuah port
Setiap sirkuit komunikasi yang masuk dan keluar lapisan TCP dikenali secara
unik dengan dua kombinasi angka, yang kemudian disebut sebagai socket. Socket
terdiri atas alamat IP sebuah mesin dan nomor port yang digunakan software TCP.
Baik mesin pengirim dan penerima memiliki socket. Karena IP address sifatnya unik
dalam internetwork, dan nomor port bersifat unik untuk setiap mesin, maka berarti
nomor socket juga bersifat unik dalam internetwork. Ini memungkinkan sebuah
proses berkomunikasi dengan proses lain dalam jaringan.
Dalam prosesi pengiriman, TCP pengirim meminta koneksi kepada TCP
penerima dengan menggunakan nomor socket yang unik. Misalnya jika TCP
pengirim menginginkan sebuah koneksi session telnet dari nomor port 350, maka
nomor socket akan terdiri atas alamat IP mesin source dengan nomor port (350),
dalam message yang dikirim terdapat informasi nomor port tujuan 23 (nomor port
aplikasi Telnet). Mesin penerima TCP memiliki nomor source port 23 (Telnet) dan
port destination 350 (nomor port mesin pengirim).
Dalam komunikasi antara dua pihak, tentunya harus digunakan kesepakatan
aturan dan format yang sama agar komunikasi dapat dimengerti. Seperti halnya dua
orang yang menggunakan bahasa yang sama, maka bahasa di sini berfungsi sebagai
protokol. Protokol yang digunakan dalam socket dapat menggunakan TCP ataupun
UDP.
Contoh komunikasi sederhana adalah komunikasi antara komputer A dan
komputer B. Baik komputer A maupun komputer B harus memiliki identitas unik,
yang direpresentasikan oleh IP masing-masing. Komunikasi yang terjadi melalui port,
sehingga baik komputer A maupun komputer B harus memiliki port yang dapat
diakses satu sama lain.
Pemrograman socket adalah cara untuk menggunakan komponen/API
(Application Programming Interface) socket untuk membuat sebuah aplikasi.
Aplikasi socket umumnya terdiri dari dua kategori berdasarkan pengiriman datanya,
yaitu datagram socket (menggunakan UDP) dan stream socket (menggunakan TCP).
UDP tidak memerlukan proses koneksi terlebih dahulu untuk dapat
mengirimkan data, paket-paket data yang dikirimkan UDP bisa jadi melalui rute yang
berbeda-beda, sehingga hasil yang diterima bisa jadi tidak berurutan. Contohnya jika
aplikasi socket pengirim mengirimkan berturut-turut pesan 1, pesan 2, dan pesan 3,
maka aplikasi socket penerima belum tentu mendapatkan pesan yang berurutan
dimulai dari pesan 1, pesan 2, dan terakhir pesan 3. Bisa saja pesan 2 terlebih dulu
diterima, menyusul pesan-pesan yang lain, atau berbagai kemungkinan lainnya.
Bahkan, dapat terjadi pesan yang dikirimkan tidak sampai ke penerima karena
kegagalan pengiriman paket data.
Tidak demikian halnya dengan stream socket yang menggunakan TCP. Jenis ini
mengharuskan terjadinya koneksi terlebih dahulu, kemudian mengirimkan paket-
paket data secara berurutan, penerima juga dijamin akan menerima data dengan
urutan yang benar, dimulai dari data pertama yang dikirimkan hingga data terakhir.
TCP dapat menangani data yang hilang, rusak, terpecah, ataupun terduplikasi.
Dari sekilas perbedaan ini, dapat ditarik kesimpulan bahwa aplikasi socket yang
menggunakan TCP memerlukan pertukaran data dua arah yang valid. Sedangkan,
aplikasi socket yang menggunakan UDP lebih memprioritaskan pada pengumpulan
data.
Karena itu aplikasi socket dengan TCP sering diterapkan untuk aplikasi chat,
transfer file, ataupun transaksi-transaksi penting. Sedangkan aplikasi socket dengan
UDP cocok diterapkan untuk aplikasi monitoring jaringan, game online, dan aplikasi-
aplikasi broadcast.
Tiap prosedur yang dipanggil dalam RPC, maka proses ini harus berkoneksi
dengan server remote dengan mengirimkan semua parameter yang dibutuhkan,
menunggu balasan dari server dan melakukan proses kemudian selesai. Proses di atas
disebut juga dengan stub pada sisi klien.
Sedangkan Stub pada sisi server adalah proses menunggu tiap message yang
berisi permintaan mengenai prosedur tertentu. Server harus membaca tiap parameter
yang diberikan, kemudian memberikan prosedur lokal yang sesuai dengan permintaan
dan parameter. Kemudian setelah eksekusi, server harus mengirimkan hasil kepada
pihak pemanggil proses.
4. Referensi
[1] http://compnetworking.about.com/od/itinformationtechnology/l/aa083100a.htm
[2] http://www.cs.cf.ac.uk/Dave/C/node33.html
[3] http://en.wikipedia.org/wiki/Remote_procedure_call
[4] http://blog.uad.ac.id/heri_triyanto/2010/10/01/remote-method-invocation-rmi/
[5] http://pcmedia.co.id/detail.asp-Id=2159&Cid=22&Eid=54.htm
[6] http://blog.ub.ac.id/aldian/2010/11/05/port-tcp-dan-udp/
[7] http://www.tkjsmknasionaldepok.co.tv/2011/01/pengertian-socket.html
[8] http://en.wikipedia.org/wiki/Java_Remote_Method_Invocation