Remote Procedure Call (RPC) – Part 1: Akses Server-Client

Remote Procedure Call adalah protokol komunikasi perangkat lunak yang dapat digunakan satu program untuk meminta layanan dari program yang terletak di komputer lain di jaringan tanpa harus memahami detail jaringan. RPC digunakan untuk memanggil proses lain pada sistem jarak jauh seperti sistem lokal. RPC menggunakan model client-server. Program yang meminta adalah klien, dan program penyedia layanan adalah server seperti yang terlihat pada gambar dibawah.

Artikel ini akan membahas pembuatan RPC dasar dengan bahasa Python:

1. Buat sebuah file dengan nama access-server.py dan masukkan kode berikut:

from xmlrpc.server import SimpleXMLRPCServer

# layanan dari server
def sapaHalo():
	return 'Halo, ini dikirim dari server RPC'

# inisialasi connection: use port 8080, if confilct 
# use another port, like 8000
server = SimpleXMLRPCServer(("localhost", 8000))

# jika server jalan maka tampilkan di layar
print("Server is listening on port 8000...")

# daftar function yang bisa di eksekusi oleh client
server.register_function(sapaHalo, "sapaHalo")

# selama apa server melayani
server.serve_forever()

2. Buat sebuah file dengan nama access-client.py dan masukkan kode berikut:

import xmlrpc.client

# inisialisasi koneksi ke server: IP dan port sesuai 
# definisi di server
proxy = xmlrpc.client.ServerProxy("http://localhost:8000/")

# function dalam server yang ingin di eksekusi
sapaHalo = proxy.sapaHalo()

# hasil eksekusi function server di tampilkan di client
print("dari server:", sapaHalo)

3. Upload file access-server.py ke server VM-1

4. Upload file access-client.py ke server VM-2

5. Sesuaikan IP server VM-1 pada kode RPC

6. Sesuaikan IP pada kode access-client ke alamat server VM-1

7. Jalankan access-server.py pada VM-1

8. Jalankan access-client.py pada VM-2

Terlihat dari gambar diatas, pesan “Halo, ini dikirim dari server RPC” dikirim dari server. Hal ini membuktikan bahwa VM2 sudah dapat berkomunikasi / mengakses RPC server.