RPC
masih menggunakan cara primitif dalam pemrograman, yaitu menggunakan paradigm 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 kedalam 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
dirancang
sebagai suatu metoda yang powerfull, cepat, efisien, dan aman untuk komunikasi
dan sinkronisasi antara client dan server sehingga lebih mudah memungkinkan
pertukaran data pada proses yang berbeda. Proses bisa berada di komputer yang
sama, LAN atau Internet
Kelebihan RPC
- Relatif mudah digunakan : 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.
- Robust (Sempurna): Sejak th 1980-an RPC telah banyak digunakan dlm pengembangan mission-critical application yg memerlukan scalability, fault tolerance, & reliability.
Kekurangan RPC
- Tidak fleksibel terhadap perubahan: hubungan anatara client dan server bersifat static
- Berdasarkan prosedural/structured programming yang sudah ketinggalan jaman dibandingkan OOP.
Protokol
Message RPC
Protokol Message RPC didefinisikan dengan menggunakan
deskripsi data eXternal Data Representation ( XDR ) yang meliputi struktur,
enumerasi dan union. Pembahasan lebih
lanjut akan diterangkan pada bab berikutnya mengenai implementasi RPC.
lanjut akan diterangkan pada bab berikutnya mengenai implementasi RPC.
Protokol
Message ini membutuhkan faktor-faktor pendukung sebagai berikut:
1. Spesifikasi yang unik untuk tiap prosedur call
2. Respon message yang sesuai untuk tiap message yang diminta
3. Otentifikasi klien untuk tiap layanan dan sebaliknya
1. Spesifikasi yang unik untuk tiap prosedur call
2. Respon message yang sesuai untuk tiap message yang diminta
3. Otentifikasi klien untuk tiap layanan dan sebaliknya
Protokol
Message RPC memiliki dua ( 2 ) struktur yang berbeda, yaitu call message dan
reply message. Tiap klien yang akan melakukan RPC pada suatu server di jaringan
akan menerima balasan (reply) berupa hasil dari eksekusi prosedur tersebut.
Dengan menggunakan spesifikasi yang unik untuk tiap prosedure remote, maka RPC
dapat mencocokkan message balasan untuk tiap call message yang diminta klien.
Call Message
Tiap call message pada RPC mengandung nilai-nilai unsigned integer yang digunakan untuk mengidentifikasi prosedur remote yang diminta. Nilai-nilai ini adalah :
1. Nomor Program
2. Nomor Versi dari Program
3. Nomor Prosedur
Tiap call message pada RPC mengandung nilai-nilai unsigned integer yang digunakan untuk mengidentifikasi prosedur remote yang diminta. Nilai-nilai ini adalah :
1. Nomor Program
2. Nomor Versi dari Program
3. Nomor Prosedur
Reply Message
Reply message yang dikirimkan oleh server jaringan bervariasi tergantung apakah call messages yang diminta klien diterima atau ditolak. Reply message mengandung informasi yang digunakan untuk membedakan kondisi-kondisi yang diminta sesuai dengan call messages. Informasi ini antara lain :
Reply message yang dikirimkan oleh server jaringan bervariasi tergantung apakah call messages yang diminta klien diterima atau ditolak. Reply message mengandung informasi yang digunakan untuk membedakan kondisi-kondisi yang diminta sesuai dengan call messages. Informasi ini antara lain :
1.
RPM mengeksekusi call message dengan
sukses
2.
Implementasi remote tidak sesuai
dengan protokol yang digunakan. Versi yang lebih
rendah atau tinggi akan ditolak.
rendah atau tinggi akan ditolak.
3.
Program remote tidak tersedia pada
sistem remote
4.
Program remote tidak mendukung versi
yang diminta klien
5.
Nomor prosedur yang diminta tidak
ada.
Fitur dalam RPC
·
Batching Calls
Fitur Batching calls mengijinkan klien untuk mengirim message calls ke server dalam jumlah besar secara sequence ( berurutan ). Batching menggunakan protokol streaming byte seperti TCP / IP sebagai mediumnya. Pada saat melakukan batching, klien tidak menunggu server untuk memberikan reply terhadap tiap messages yang dikirim, begitu pula dengan server yang tidak pernah mengirimkan messages reply. Fitur inilah yang banyak digunakan klien, karena arsitektur RPC didesain agar pada tiap call message yang dikirimkan oleh klien harus ada proses menunggu balasan dari server. Oleh karena itu maka pihak klien harus dapat mengatasi error yang kemungkinan terjadi karena pihak klien tidak akan menerima peringatan apabila terjadi error pada message yang dikirim.
Fitur Batching calls mengijinkan klien untuk mengirim message calls ke server dalam jumlah besar secara sequence ( berurutan ). Batching menggunakan protokol streaming byte seperti TCP / IP sebagai mediumnya. Pada saat melakukan batching, klien tidak menunggu server untuk memberikan reply terhadap tiap messages yang dikirim, begitu pula dengan server yang tidak pernah mengirimkan messages reply. Fitur inilah yang banyak digunakan klien, karena arsitektur RPC didesain agar pada tiap call message yang dikirimkan oleh klien harus ada proses menunggu balasan dari server. Oleh karena itu maka pihak klien harus dapat mengatasi error yang kemungkinan terjadi karena pihak klien tidak akan menerima peringatan apabila terjadi error pada message yang dikirim.
·
Broadcasting Calls
Fitur Broadcasting mengijinkan klien untuk mengirimkan paket data ke jaringan dan menunggu balasan dari network. FItur ini menggunakan protokol yang berbasiskan paket data seperti UDP/IP sebagai mediumnya. Broadcast RPC membutuhkan layanan port mapper RPC untuk mengimplementasikan fungsinya.
Fitur Broadcasting mengijinkan klien untuk mengirimkan paket data ke jaringan dan menunggu balasan dari network. FItur ini menggunakan protokol yang berbasiskan paket data seperti UDP/IP sebagai mediumnya. Broadcast RPC membutuhkan layanan port mapper RPC untuk mengimplementasikan fungsinya.
·
Callback Procedures
Fitur Callback Procedures mengijinkan server untuk bertindak sebagai klien dan melakukan RPC callback ke proses yang dijalankan oleh klien.
Fitur Callback Procedures mengijinkan server untuk bertindak sebagai klien dan melakukan RPC callback ke proses yang dijalankan oleh klien.
·
Menggunakan select Subrutin
Fitur ini akan memeriksa deskripsi dari suatu file dan messages dalam antrian untuk melihat apakah mereka siap untuk dibaca (diterima) atau ditulis (dikirim), atau mereka dalam kondisi ditahan sementara. Prosedur ini mengijinkan server untuk menginterupsi suatu aktivitas, memeriksa datanya, dan kemudian melanjutkan proses aktivitas tersebut.
Fitur ini akan memeriksa deskripsi dari suatu file dan messages dalam antrian untuk melihat apakah mereka siap untuk dibaca (diterima) atau ditulis (dikirim), atau mereka dalam kondisi ditahan sementara. Prosedur ini mengijinkan server untuk menginterupsi suatu aktivitas, memeriksa datanya, dan kemudian melanjutkan proses aktivitas tersebut.
·
Otentifikasi RPC
Proses
otentifikasi adalah proses yang digunakan untuk mengidentifikasi server dan
klien pada RPC. Untuk setiap prosedur remote yang dilakukan protokol RPC
menyediakan slot yang dipakai sebagai parameter otentifikasi yang berfungsi
agar pemanggil (caller) dapat, memberikan identitasnya kepada server. Parameter
otentifikasi ini dibuat di paket klien. Otentifikasi RPC terdiri atas beberapa
bagian. Berikut ini adalah bagian-bagian pada otentifikasi RPC :
- Protokol Otentifikasi RPC
Protokol Otentifikasi RPC disediakan sebagai bagian dari protokol RPC. Untuk setiap prosedur remote, semuanya diotentifikasi oleh paket RPC pada server. Parameter yang digunakan adalah respon verifier. Sedangkan pada pihak klien, setiap paket RPC diberikan parameter otentifikasi dan parameter yang digunakan adalah credential dan
verifier. - Otentifikasi NULL
Otentifikasi NULL digunakan pada sistem dimana pemanggil (caller) RPC tidak mengetahui identitasnya sendiri dan server tidak membutuhkan identitas pemanggil. - Otentifikasi UNIX
Otentifikasi Unix digunakan pada prosedur remote di sistem UNIX. Jenis otentifikasi ini dibagi dua (2) yaitu otentifikasi pada sisi klien dan otentifiksi pada sisi server. Pada sisi klien, otentifikasi ini akan membuat otentifikasi handle dengan AIX permissions agar dapat berasosiasi dengan parameter credentials pada sistem UNIX. Sedangkan pada sisi server, server harus dapat menentukan tipe otentifikasi yang diberikan oleh pemanggil RPC. Penentuan dukungan terhadap tipe otentifikasi akan memberikan reply yang berbeda. - Otentifikasi Data Encryption Standard ( DES )
Otentifikasi DES membutuhkan keyserv daemon yang harus berjalan baik di sisi server maupun klien. Tiap pengguna pada sistem ini harus memiliki kunci public ( public key yang disahkan pada database kunci publik oleh Administrator jaringan tersebut. - Protokol Otentifikasi DES
Protokol Otentifikasi DES meliputi protokol penanganan DES pada proses otentifikasi RPC. Protokol ini mencakup 64-bit blok data DES yang terenkripsi dan menentukan panjang maksimum untuk user name pada jaringan yang digunakan. - Enkripsi Diffie-Hellman
Enkripsi Diffie-Hellman digunakan pada pembuatan kunci public pada otentifikasi DES dengan menggunakan 192-bit kunci. Enkripsi ini memiliki dua buah variable onstan, yaitu BASE dan MODULUS yang digunakan pada protokol otentifikasi DES. PC berhubungan hanya dengan proses otentifikasi, tidak dengan kontrol akses terhadap ervices/layanan individual yang diberikan. Tiap layanan mengimplementasikan eraturan mengenai kontrol akses masing-masing.
Prinsip
Dasar RPC
Skema RPC ini dilakukan juga pada
proses-proses yang running di komputer berlainan
Sebelum
mekanisme RPC digunakan, data harus di-packaging ke dalam format transimisi.
Langkah ini dinamakan marshalling. Proxy bertanggung jawab untuk marshalling
data, kemudian mengirimkan data dan meminta instans dari komponen (remote).
Stub menerima request, unmarshall data, dan memanggil method yang diminta.
Kemudian proses mengembalikan nilai yang diinginkan (Stub adalah kode untuk
mengkonversi parameter yang dipassing saat RPC berjalan)
Langkah-langkah dalam RPC
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 tsb 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. 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 tsb 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
http://deris.unsri.ac.id/materi/sist_terd/bab2-RPC.pdf