Protokol Panggilan Prosedur Jarak Jauh (RPC) dalam Sistem Terdistribusi

โšก Ringkasan Cerdas

Remote Procedure Call (RPC) adalah protokol komunikasi antarproses yang memungkinkan sebuah program untuk mengeksekusi sebuah prosedur di ruang alamat atau mesin lain, menyembunyikan detail jaringan di balik panggilan fungsi lokal biasa dalam sistem klien-server terdistribusi.

  • ๐Ÿ“ž Definisi: RPC memungkinkan klien untuk memanggil prosedur pada server jarak jauh seolah-olah itu adalah panggilan lokal.
  • ๏ธ jenis: RPC mode Callback, Broadcast, dan Batch berbeda dalam cara permintaan dirutekan dan diantrekan.
  • ๏ธ Architekstur: Lima bagian bekerja sama dalam setiap panggilan: klien, stub klien, runtime RPC, stub server, dan server.
  • ๐Ÿ”„ Cara Bekerja: Stub memproses parameter menjadi sebuah pesan dan menguraikan hasilnya yang dikembalikan ke pemanggil.
  • ๏ธ Pengorbanan: RPC menyederhanakan kode terdistribusi tetapi menambah beban jaringan dan titik kegagalan dibandingkan dengan panggilan lokal.
  • ๐Ÿค– Sudut Pandang AI: gRPC menyajikan model pembelajaran mesin antar layanan mikro, dan Copilot mempercepat penulisan stub RPC.

Panggilan Prosedur Jarak Jauh (RPC) dalam Sistem Terdistribusi

Apa itu RPC?

Remote Procedure Call (RPC) adalah komunikasi antar proses Teknik yang digunakan untuk aplikasi klien-server. Bentuk lengkap dari RPC adalah Remote Procedure Call. Mekanisme RPC digunakan ketika program komputer menyebabkan suatu prosedur atau subrutin dieksekusi di ruang alamat yang berbeda, dikodekan sebagai panggilan prosedur normal tanpa programmer secara eksplisit mengkodekan detail untuk interaksi jarak jauh tersebut.

Panggilan prosedur ini juga mengelola protokol transport tingkat rendah, seperti UDP dan TCP/IP, untuk membawa data pesan antar program.

Jenis RPC

Tiga jenis RPC adalah:

  • RPC panggilan balik
  • Siaran RPC
  • RPC mode batch

RPC panggilan balik

Jenis RPC ini memungkinkan paradigma peer-to-peer (P2P) antara proses yang berpartisipasi. Ini membantu suatu proses untuk bertindak sebagai klien dan server sekaligus.

Fungsi RPC Panggilan Balik:

  • Menangani masalah aplikasi interaktif yang diproses dari jarak jauh.
  • Memberikan handle klien kepada server.
  • Fungsi callback membuat proses klien menunggu.
  • Mengelola kebuntuan panggilan balik (callback deadlock).
  • Hal ini memfasilitasi paradigma peer-to-peer di antara proses-proses yang berpartisipasi.

Siaran RPC

Broadcast RPC adalah permintaan klien yang disiarkan melalui jaringan dan diproses oleh semua server yang memiliki metode untuk memproses permintaan tersebut.

Fungsi RPC Siaran:

  • Memungkinkan Anda untuk menentukan bahwa pesan permintaan klien harus disiarkan.
  • Anda dapat mendeklarasikan port siaran.
  • Hal ini membantu mengurangi beban pada jaringan fisik.

RPC mode batch

RPC mode batch membantu mengantrekan permintaan RPC terpisah dalam buffer transmisi di sisi klien, lalu mengirimkannya melalui jaringan secara bersamaan ke server.

Fungsi-fungsi RPC Mode Batch:

  • Hal ini meminimalkan biaya tambahan yang terlibat dalam pengiriman permintaan, karena mengirimkan permintaan melalui jaringan dalam satu batch ke server.
  • Jenis protokol RPC ini hanya efisien untuk aplikasi yang membutuhkan tingkat panggilan yang lebih rendah.
  • Dibutuhkan protokol transmisi yang andal.

RPC Architekstur

Arsitektur RPC terutama memiliki lima komponen program:

  1. Konfirmasi
  2. Rintisan Klien
  3. Waktu Proses RPC
  4. Rintisan Server
  5. Server

RPC Architekstur

RPC Architekstur

Bagaimana RPC Bekerja?

Berikut ini adalah langkah-langkah yang terjadi selama proses RPC:

Langkah 1) Klien, stub klien, dan satu instance runtime RPC dieksekusi pada mesin klien.

Langkah 2) Klien memulai proses stub klien dengan meneruskan parameter dengan cara biasa. Stub klien disimpan dalam ruang alamat klien sendiri. Klien juga meminta Runtime RPC lokal untuk mengirim permintaan ke stub server.

Langkah 3) Pada tahap ini, pengguna mengakses RPC dengan melakukan panggilan prosedur lokal biasa. RPC Runtime mengelola transmisi pesan antara klien dan server melalui jaringan. Ia juga melakukan tugas pengiriman ulang, pengakuan, perutean, dan enkripsi.

Langkah 4) Setelah menyelesaikan prosedur server, eksekusi kembali ke stub server, yang mengemas (mengatur) nilai-nilai kembalian ke dalam sebuah pesan. Stub server kemudian mengirimkan pesan tersebut kembali ke lapisan transport.

Langkah 5) Pada langkah ini, lapisan transport mengirimkan pesan hasil kembali ke lapisan transport klien, yang kemudian mengembalikan pesan tersebut ke stub klien.

Langkah 6) Pada tahap ini, stub klien melakukan demarshal (membongkar) parameter pengembalian dalam paket yang dihasilkan, dan eksekusi kembali ke pemanggil.

Karakteristik RPC

Berikut adalah karakteristik penting dari RPC:

  • Prosedur yang dipanggil berada dalam proses lain, yang kemungkinan besar berada di mesin lain.
  • Prosesnya tidak berbagi ruang alamat.
  • Parameter hanya diteruskan berdasarkan nilai.
  • RPC dijalankan dalam lingkungan proses server.
  • Hal ini tidak memberikan akses ke lingkungan prosedur pemanggil.

Fitur RPC

Berikut adalah fitur-fitur penting RPC:

  • Sintaks panggilan sederhana.
  • Menawarkan semantik yang sudah dikenal.
  • Menyediakan antarmuka yang terdefinisi dengan baik.
  • Ia dapat berkomunikasi antar proses pada mesin yang sama atau berbeda.

Kelebihan RPC

Berikut adalah kelebihan/manfaat RPC:

  • RPC membantu klien berkomunikasi dengan server melalui penggunaan konvensional panggilan prosedur dalam bahasa pemrograman tingkat tinggi.
  • RPC dimodelkan berdasarkan panggilan prosedur lokal, tetapi prosedur yang dipanggil kemungkinan besar dieksekusi dalam proses yang berbeda dan biasanya pada komputer yang berbeda.
  • RPC mendukung model berorientasi proses dan berorientasi thread.
  • RPC menyembunyikan mekanisme pengiriman pesan internal dari pengguna.
  • Ini melakukan banyak lapisan protokol untuk meningkatkan kinerja.
  • RPC menyediakan abstracmisalnya, sifat komunikasi jaringan yang melibatkan pengiriman pesan tetap tersembunyi dari pengguna.
  • RPC dapat digunakan baik di lingkungan terdistribusi maupun lokal.
  • Upaya yang dibutuhkan untuk menulis ulang dan mengembangkan kembali kode tersebut sangat minimal.

Kekurangan RPC

Berikut kekurangan/kekurangan menggunakan RPC:

  • Remote Procedure Call hanya meneruskan parameter berdasarkan nilai; nilai pointer (referensi) tidak diperbolehkan.
  • Waktu pemanggilan (dan pengembalian) prosedur jarak jauh โ€” biaya tambahan โ€” jauh lebih tinggi daripada untuk prosedur lokal.
  • Mekanisme ini sangat rentan terhadap kegagalan, karena melibatkan sistem komunikasi, mesin lain, dan proses lain.
  • Konsep RPC dapat diimplementasikan dengan berbagai cara, sehingga tidak ada standar tunggal.
  • Sistem ini tidak menawarkan fleksibilitas untuk arsitektur perangkat keras, karena sebagian besar berbasis interaksi.
  • Biaya proses meningkat karena adanya panggilan prosedur jarak jauh.

Pertanyaan Umum Demo Slot

RPC mengekspos tindakan sebagai prosedur jarak jauh, sedangkan REST mengekspos data sebagai sumber daya yang diakses melalui kata kerja HTTP. RPC terasa seperti memanggil fungsi lokal; REST berpusat pada sumber daya dan status.

gRPC adalah GoogleKerangka kerja RPC modern dan berkinerja tinggi. Ia menggunakan HTTP/2 dan Protokol. Buffers, dan mendukung streaming dua arah, sehingga populer untuk komunikasi layanan mikro.

RPC bisa berupa keduanya. Panggilan sinkron akan memblokir hingga server mengembalikan hasil, sedangkan panggilan asinkron akan langsung mengembalikan hasil dan menangani responsnya nanti. Kerangka kerja seperti gRPC mendukung kedua gaya tersebut.

RPC adalah bentuk IPC yang bekerja di antara mesin yang berbeda. Sementara banyak metode IPC berbagi memori pada satu host, RPC bertukar pesan melalui jaringan sehingga proses pada komputer yang berbeda dapat bekerja sama.

Implementasi RPC umum meliputi gRPC, Apache Thrift, XML-RPC, JSON-RPC, dan Java RMI. Meskipun berbeda dalam format data dan transportasi, semuanya memungkinkan klien untuk memanggil prosedur pada server jarak jauh.

RPC tidak aman secara default; keamanannya bergantung pada protokol transport. Implementasi menambahkan enkripsi TLS, token otentikasi, dan kontrol akses untuk melindungi panggilan.

Platform pembelajaran mesin menggunakan RPC, khususnya gRPC, untuk menyajikan prediksi model antar layanan mikro. Klien mengirimkan fitur dan menerima hasil inferensi, dan seterusnya.ping Sistem AI yang cepat dan memiliki keterkaitan yang longgar.

Ya. GitHub Copilot dapat membuat kerangka definisi layanan .proto, stub klien, dan handler server untuk gRPC. Pengembang tetap harus meninjau antarmuka yang dihasilkan, penanganan kesalahan, dan versi sebelum menerapkan ke lingkungan produksi.

Ringkaslah postingan ini dengan: