Sunday, 14 May 2017

Project Source Code Aplikasi RPC dengan LINUX RPCGEN





RPC (Remote Procedure Calls) merupakan metode yang memungkinkan kita untuk mengakses sebuah prosedur yang berada di komputer lain. Untuk dapat melakukan nya sebuah server harus menyediakan layanan remote procedure.

TUJUAN RPC
RPC digunakan untuk administrasi sistem sehingga seorang administrator jaringan dapat mengakses sistemnya dan mengelola sistemnya darimna saja, selama sistemnya terhubung ke jaringan.

Struktur Protokol Message RPC
Call Message 
(Dilakukan oleh klien, dimana meminta server untuk mengeksekusi suatu prosedur)
Terdapat nilai-nilai unsigned integer yangdigunakan untuk mengidentifikasi prosedur remote, yang diminta:
   1. Nomor Program
   2. Nomor Versi dari Program
   3. Nomor Prosedur


Reply Message
(Dikirimkan oleh server jaringan, bervariasi tergantung apakah call message yang diminta klien diterima atau ditolak)
Mengandung informasi:
  1. RPM mengeksekusi call message dengan sukses
  2. Implementasi remote tidak sesuai dengan protokol
       yang digunakan (versi yang lebih tinggi atau lebih
      rendah ditolak)
  3. Program remote tidak tersedia pada sistem remote
  4. Program remote tidak mendukung versi yang
       diminta klien
  5. Nomor prosedur yang diminta tidak ada

 Project Source Code Aplikasi RPC dengan LINUX RPCGEN

RPCGEN adalah pre-compiler generator interface untuk Sun Microsystems ONC RPC. RPCGEN menggunakan file definisi interface untuk membuat stubs klien dan server di bahasa C.

Yang perlu disiapkan :
- VMware (Virtual OS), karena saya menggunakan windows jadi perlu menggunakan VMware untuk dapat menggunakan OS Linux
- OS Linux Ubuntu
- Aplikasi RPCGEN di Linux

Langkah-Langkah :
(angkap sudah masuk ke OS Linux Ubuntu)
1. Install aplikasi RPCGEN
Buka terminal > sudo apt-get install rpcbind
2. Buat folder di Home dengan nama "RPC" / terserah anda
3. Buka aplikasi gedit
4. Masukkan source code berikut

struct numbers{
    int a;
    int b;
};

program tambah_prog{
    version tambah_vers{
        int tambah(numbers)=1;
    }=1;
}=0x23451111;

5. Simpan dengan extensi .x (contoh : tambah.x)
6. Generate source code tersebut dengan perintah terminal > rpcgen -a -C namafile.x
7. Compile aplikasi tersebut dengan perintah terminal > make -f Makefile.namafile
8. Edit source code file "namafile_server.c" sesuaikan dibawah ini (asumsikan namafilenya "tambah")
/*
 * This is sample code generated by rpcgen.
 * These are only templates and you can use them
 * as a guideline for developing your own functions.
 */

#include "tambah.h"

int *
tambah_1_svc(numbers *argp, struct svc_req *rqstp)
{
    static int  result;
    printf("\n\n ===================================\n");
    printf(" PROSES PEMANGGILAN FUNGSI DI SERVER\n");
    printf(" Fungsi: tambah(%d, %d) DI PANGGIL\n", argp->a, argp->b);

    result = argp->a + argp->b;

    return &result;
}

9.  Edit source code file "namafile_client.c" sesuaikan dibawah ini (asumsikan namafilenya "tambah")

/*
 * This is sample code generated by rpcgen.
 * These are only templates and you can use them
 * as a guideline for developing your own functions.
 */

#include "tambah.h"


void
tambah_prog_1(char *host, int x, int y)
{
    CLIENT *clnt;
    int  *result_1;
    numbers  tambah_1_arg;

#ifndef    DEBUG
    clnt = clnt_create (host, tambah_prog, tambah_vers, "udp");
    if (clnt == NULL) {
        clnt_pcreateerror (host);
        exit (1);
    }
#endif    /* DEBUG */
    tambah_1_arg.a=x;
    tambah_1_arg.b=y;   

    result_1 = tambah_1(&tambah_1_arg, clnt);
    if (result_1 == (int *) NULL) {
        clnt_perror (clnt, "call failed");
    }
    else{
        printf("\n\n MEMANGGIL FUNGSI [tambah] DI SERVER\n");
        printf(" Hasil Penjumlahan:%d\n",*result_1);
    }
#ifndef    DEBUG
    clnt_destroy (clnt);
#endif     /* DEBUG */
}


int
main (int argc, char *argv[])
{
    char *host;

    if (argc < 4) {
        printf("\n\n ERROR FORMAT KURANG HOST dan PARAMETERNYA\n");
        printf(" FOTMAT : HOST [NOMOR] [NOMOR]\n");
        printf (" usage: %s server_host\n", argv[0]);
        exit (1);
    }
    host = argv[1];
    tambah_prog_1 (host, atoi(argv[2]), atoi(argv[3]));
exit (0);
}

10. Selesai

Untuk mensimulasikan ikuti tahapan berikut :
- Lakukan compile terlebih dahulu > make -f Makefile.namafile
- Masuk sebagai server > sudo ./namafile_server
- Masukkan password user os linux
- Kemudian buka terminal lagi (jadi membuka 2 terminal)
- Masuk sebagai client > sudo ./namafile_client
- Masukkan password user os linux
- JIKA ERROR lengkapi perintah pemanggilan prosedur  > sudo ./namafile_server localhost 20 20
- Cek pada sisi client dan sisi server

Terima kasih telah berkunjung disini, silahkan kirimkan komentar dan klik iklan dibawah ini
oleh Rafi Aldiansyah A
Share:

0 comments:

Post a Comment

KOMENTAR YANG BIJAKK !!!!

Blogroll

This Blog is protected by DMCA.com

Labels

Blog Archive