RPC (Remote Procedure Call) adalah suatu protokol yang menyediakan suatu mekanisme komunikasi antar proses yang mengijinkan suatu program untuk berjalan pada suatu komputer tanpa terasa adanya eksekusi kode pada sistem yang jauh (remote system). RPC mengasumsi keberadaan dari low-level protokol transportasi seperti TCP atau UDP untuk membawa pesan data dalam komunikasi suatu program. Protokol RPC dibangun diatas protokol eXternal Data Representation (XDR), yang merupakan standar dari representasi data dalam komunikasi remote. Protokol XDR mengubah parameter dan hasil dari tiap servis RPC yang disediakan.
Representation (XDR), yang merupakan standar dari representasi data dalam komunikasi remote. Protokol XDR mengubah parameter dan hasil dari tiap servis RPC yang disediakan. Protokol RPC mengijinkan pengguna (users) untuk bekerja dengan prosedur remote sebagaimana bekerja dengan prosedur lokal. Prosedur panggilan remote (remote procedure calls) didefinisikan melalui rutin yang terkandung didalam protokol RPC. Tiap message dari panggilan akan disesuaikan dengan message balikan. Protokol RPC sendiri sebenarnya adalah suatu protokol untuk ”meneruskan pesan” yang mengimplemntasikan protokol non-RPC lain seperti panggilan remote batching dan broadcasting. Protokol ini juga mendukung adanya prosedur callback dan select subroutine pada sisi server.
Klien dan Server
Klien adalah komputer atau proses yang mengakses suatu servis/layanan atau resources dari proses atau komputer pada suatu jaringan. Server adalah komputer yang menyediakan servis/layanan dan resources, dan yang mengimplementasikan servis jaringan. Tiap servis pada network adalah susunan dari program remote, dan tiap program remote mengimplementasi prosedur remote. Semua prosedur berikut parameternya dan hasilnya didokumentasi secara spesifik pada protokol suatu program.
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.
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 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
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 :
1. RPM mengeksekusi call message dengan sukses
2. Implementasi remote tidak sesuai dengan protokol yang digunakan. Versi yang lebih
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
RPC memiliki fitur - fitur sebagai berikut : batching calls, broadcasting calls, callback
procedures dan using the select subroutine.
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.
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.
Callback Procedures
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.
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 padaotentifikasi RPC :
1. 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.
2. Otentifikasi NULL
Otentifikasi NULL digunakan pada sistem dimana pemanggil (caller) RPC tidak mengetahui identitasnya sendiri dan server tidak membutuhkan identitas pemanggil.
3. 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.
4. 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.
5. 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.
6. 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.
Subsistem otentifikasi pada paket RPC bersifat open-ended, artinya beberapa tentifikasi
dapat diasosiasikan pada RPC klien.
Klien dan Server
Klien adalah komputer atau proses yang mengakses suatu servis/layanan atau resources dari proses atau komputer pada suatu jaringan. Server adalah komputer yang menyediakan servis/layanan dan resources, dan yang mengimplementasikan servis jaringan. Tiap servis pada network adalah susunan dari program remote, dan tiap program remote mengimplementasi prosedur remote. Semua prosedur berikut parameternya dan hasilnya didokumentasi secara spesifik pada protokol suatu program.
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.
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 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
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 :
1. RPM mengeksekusi call message dengan sukses
2. Implementasi remote tidak sesuai dengan protokol yang digunakan. Versi yang lebih
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
RPC memiliki fitur - fitur sebagai berikut : batching calls, broadcasting calls, callback
procedures dan using the select subroutine.
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.
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.
Callback Procedures
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.
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 padaotentifikasi RPC :
1. 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.
2. Otentifikasi NULL
Otentifikasi NULL digunakan pada sistem dimana pemanggil (caller) RPC tidak mengetahui identitasnya sendiri dan server tidak membutuhkan identitas pemanggil.
3. 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.
4. 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.
5. 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.
6. 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.
Subsistem otentifikasi pada paket RPC bersifat open-ended, artinya beberapa tentifikasi
dapat diasosiasikan pada RPC klien.
Pada prinsipnya hubungan yang terjadi antara program client dan server pada RPC, adalah sebagai berikut :
1. Prosedur client memanggil client stub. Klien memanggil prosedur stublokal. Prosedur Stub akan memberikan parameter dalam suatu paket yangakan dikirim ke jaringan. Proses ini disebut sebagai marshalling.
2. Client stub membuat pesan dan memanggil OS local. Fungsi Network pada O/S (Operating system ± Sistem Operasi) akan dipanggil oleh stub untuk mengirim suatu message.
3. OS client mengirim pesan ke OS remote. Kemudian Kernel ini akan mengirim message ke sistem remote. Kondisi ini dapat berupaconnectionless atau connection-oriented.
4. Remote OS memberikan pesan ke server stub. Stub pada sisi server akan melakukan proses unmarshals pada paket yang dikirim pada network.
5. Server stub meng-unpack parameter2 dan memanggil server. Stub pada server kemudian mengeksekusi prosedur panggilan lokal.
6. Server mengerjakan operasi, dan me-return hasilnya ke server stub. Jika eksekusi prosedur ini telah selesai, maka eksekusi diberikan kembali kestub pada server.
7. Server stub mem-pack hasil tsb dan memanggil OS lokalnya. Stub server akan melakukan proses marshals lagi dan mengirimkan message nilai balikan( hasilnya ) kembali ke jaringan.
8. OS server mengirim pesan (hasil) ke client OS. Message ini akan dikirim kembali ke klien.
9. Client OS memberikan pesan tersebut ke client stub. Stub klien akan membaca message ini dengan menggunakan fungsi pada jaringan.
10. Client stub meng-unpack hasil dan me-return hasil ke client. Proses unmarshalled kemudian dilakukan pada message ini dan nilai balikanakan diambil untuk kemudian diproses pada proses lokal.
Sumber:sobatbaru,blogspot.com
:bersitrahmayang,wordpress.com