MEKANISME REMOTE PROCEDURE CALL

RPC ( Remote Procedure Call )

1.        Definisi
           
          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). (Newmarch, 1995). RPC mengasumsikan 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. 



        Protokol RPC mengijinkan pengguna untuk bekerja dengan prosedur remote sebagaimana bekerja dengan prosedur lokal. Prosedur panggilan remote didefinisikan melalui rutin yang terkandung didalam protokol RPC. Tiap pesan dari panggilan akan disesuaikan dengan pesan balikan. Protokol RPC sendiri sebenarnya adalah suatu protokol untuk ”meneruskan pesan” yang mengimplementasikan protokol non-RPC lain seperti panggilan remote batching dan broadcasting. Protokol ini juga mendukung adanya prosedur callback dan select subroutine pada sisi server. (Spangler, 2004)
 


 2.         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 pemanggilan RPC kembali ke proses yang dijalankan oleh klien.



  •       Select Subroutine
               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.



3.        Model dan Cara Kerja RPC

Prosedur call umumnya berkaitan dengan penggunaan stack, penyimpanan parameter yang diterima dalam stack tersebut dan pengalokasian ruang untuk lokal variabel. Namun selain itu ada yang disebut dengan Prosedur Call remote, yang berarti pelaksanaan proses diatas namun pada suatu sistem lain yang berhubungan melalui suatu jaringan. Sistem prosedur remote ini memiliki cara kerja yang sedikit banyak mirip, namun berbeda dengan prosedur call biasa. Berikut adalah gambar cara kerja dari RPC.

1. Client procedure calls client stub in normal way.
2. Client stub builds message, calls local OS.
3. Client's OS sends message to remote OS.
4. Remote OS gives message to server stub.
5. Server stub unpacks parameters, calls server.
6. Server does work, returns result to the stub.
7. Server stub packs it in message, calls local OS.
8. Server's OS sends message to client's OS.
9. Client's OS gives message to client stub.
10. Stub unpacks result, returns to client.

        Tiap prosedur yang dipanggil dalam RPC, harus berkoneksi dengan server remote dengan mengirimkan semua parameter yang dibutuhkan, menunggu balasan dari server dan melakukan proses kemudian selesai. Proses di atas disebut juga dengan stub pada sisi klien.


           Sedangkan Stub pada sisi server adalah proses menunggu tiap message yang berisi permintaan mengenai prosedur tertentu. (Newmarch, 1995). Server harus membaca tiap parameter yang diberikan, kemudian memberikan prosedur lokal yang sesuai dengan permintaan dan parameter. Kemudian setelah eksekusi, server harus mengirimkan hasil kepada pihak pemanggil proses. 

 
          Diagram diatas memberikan gambaran mengenai flow dari eksekusi dalam proses RPC. Berikut ini adalah diagram yang akan menjelaskan secara rinci mengenai proses yang terjadi pada klien dan server dalam eksekusi suatu prosedur RPC.

Berikut penjelasan dari diagram diatas:
1. Klien memanggil prosedur stub lokal. Prosedur Stub akan memberikan parameter dalam suatu paket yang akan dikirim ke jaringan. Proses ini disebut sebagai marshalling.
2. Fungsi Network pada O/S (Operating System - Sistem Operasi) akan dipanggil oleh stub untuk mengirim suatu message.
3. Kemudian Kernel ini akan mengirim message ke sistem remote. Kondisi ini dapat berupa connectionless atau connection-oriented.
4. Stub pada sisi server akan melakukan proses unmarshals pada paket yang dikirim oleh network.
5. Stub pada server kemudian mengeksekusi prosedur panggilan lokal.
6. Jika eksekusi prosedur ini telah selesai, maka eksekusi diberikan kembali ke stub pada server.
7. Stub server akan melakukan proses marshals lagi dan mengirimkan message nilai balikan (hasilnya) kembali ke jaringan.
8. Message ini akan dikirim kembali ke klien.
9. Stub klien akan membaca message ini dengan menggunakan fungsi pada jaringan.
10. Proses unmarshalled kemudian dilakukan pada message ini dan nilai balikan akan diambil untuk kemudian diproses pada proses lokal.

Daftar Pustaka :

Newmarch, J. 1995. Remote Procedure Calls. http://jan.netcomp.monash.edu.au/OS/l14 1.html , diakses tanggal 12 November 2009.

Spangler, R. 2004. Analysis of the Microsoft Windows DCOM RPC Exploit, Packetwatch Research.




0 komentar:

Posting Komentar