Cara Kerja RPC
Alat RPC membuatnya tampak bagi pengguna seolah-olah klien langsung memanggil prosedur yang terletak di program server jarak jauh. Klien dan server masing-masing memiliki ruang alamat mereka sendiri; artinya, masing-masing memiliki sumber daya memori sendiri yang dialokasikan untuk data yang digunakan oleh prosedur. Gambar berikut menggambarkan arsitektur RPC.
Seperti yang ditunjukkan oleh ilustrasi, aplikasi klien memanggil prosedur stub lokal alih-alih kode aktual yang menerapkan prosedur. Stub dikompilasi dan ditautkan dengan aplikasi klien. Alih-alih berisi kode aktual yang menerapkan prosedur jarak jauh, kode stub klien:
- Mengambil parameter yang diperlukan dari ruang alamat klien.
- Menerjemahkan parameter sesuai kebutuhan ke dalam format NDR standar untuk transmisi melalui jaringan.
- Memanggil fungsi di pustaka run-time klien RPC untuk mengirim permintaan dan parameternya ke server.
Server melakukan langkah-langkah berikut untuk memanggil prosedur jarak jauh.
- Fungsi pustaka run-time RPC server menerima permintaan dan memanggil prosedur stub server.
- Stub server mengambil parameter dari buffer jaringan dan mengonversinya dari format transmisi jaringan ke format yang dibutuhkan server.
- Stub server memanggil prosedur aktual di server.
Prosedur jarak jauh kemudian berjalan, mungkin menghasilkan parameter output dan nilai yang dikembalikan. Ketika prosedur jarak jauh selesai, urutan langkah serupa mengembalikan data ke klien.
- Prosedur jarak jauh mengembalikan datanya ke stub server.
- Stub server mengonversi parameter output ke format yang diperlukan untuk transmisi melalui jaringan dan mengembalikannya ke fungsi pustaka run-time RPC.
- Fungsi pustaka run-time RPC server mengirimkan data pada jaringan ke komputer klien.
Klien menyelesaikan proses dengan menerima data melalui jaringan dan mengembalikannya ke fungsi panggilan.
- Pustaka run-time RPC klien menerima nilai pengembalian prosedur jarak jauh dan mengembalikannya ke stub klien.
- Stub klien mengonversi data dari NDR-nya ke format yang digunakan oleh komputer klien. Stub menulis data ke dalam memori klien dan mengembalikan hasilnya ke program panggilan pada klien.
- Prosedur panggilan berlanjut seolah-olah prosedur telah dipanggil pada komputer yang sama.
Pustaka run-time disediakan dalam dua bagian: pustaka impor, yang ditautkan dengan aplikasi dan pustaka run-time RPC, yang diimplementasikan sebagai pustaka tautan dinamis (DLL).
Aplikasi server berisi panggilan ke fungsi pustaka run-time server yang mendaftarkan antarmuka server dan memungkinkan server untuk menerima panggilan prosedur jarak jauh. Aplikasi server juga berisi prosedur jarak jauh khusus aplikasi yang dipanggil oleh aplikasi klien.