Model Pemrograman
Pada masa awal pemrograman komputer, setiap program ditulis sebagai potongan monolitik besar, diisi dengan pernyataan goto. Setiap program harus mengelola input dan outputnya sendiri ke perangkat keras yang berbeda. Ketika disiplin pemrograman matang, kode monolitik ini diatur ke dalam prosedur, dengan prosedur yang paling umum digunakan yang dikemas dalam pustaka untuk berbagi dan menggunakan kembali.
Bahasa pemrograman C mendukung pemrograman berorientasi prosedur. Dalam C, prosedur utama berhubungan dengan semua prosedur lain seperti kotak hitam. Misalnya, prosedur utama tidak dapat mengetahui bagaimana prosedur A, B, dan X melakukan pekerjaan mereka. Prosedur utama hanya memanggil prosedur lain; tidak memiliki informasi tentang bagaimana prosedur itu diterapkan.
Bahasa pemrograman berorientasi prosedur menyediakan mekanisme sederhana untuk menentukan dan menulis prosedur. Misalnya, prototipe fungsi C standar ANSI adalah konstruksi yang digunakan untuk menentukan nama prosedur, jenis hasil yang dikembalikannya (jika ada) dan angka, urutan, dan jenis parameternya. Menggunakan prototipe fungsi adalah cara formal untuk menentukan antarmuka antar prosedur.
Microsoft RPC dibangun berdasarkan model pemrograman tersebut dengan mengizinkan prosedur, dikelompokkan bersama dalam antarmuka, untuk berada dalam proses yang berbeda dari pemanggil. Microsoft RPC juga menambahkan pendekatan yang lebih formal untuk definisi prosedur yang memungkinkan pemanggil dan rutin yang dipanggil untuk mengadopsi kontrak guna menukar data secara jarak jauh dan memanggil fungsionalitas. Dalam model pemrograman RPC Microsoft, panggilan fungsi tradisional dilengkapi dengan dua elemen tambahan.
- Elemen pertama adalah file .idl/.acf yang secara tepat menjelaskan mekanisme pertukaran data dan parameter-passing antara pemanggil dan prosedur yang disebut.
- Elemen kedua adalah sekumpulan API run-time yang memberi pengembang kontrol terperinci atas panggilan prosedur jarak jauh, termasuk aspek keamanan, mengelola status di server, menentukan klien mana yang dapat berbicara dengan server, dan sebagainya.