BAB v Remote Procedure Call (COMPLETE)

5
V-1 BAB V Remote Procedure Call (RPC) Remote Procedure Call (RPC) sangat mirip dengan Remote Method Invocation, pada program client yang memanggil sebuah program yang sedang berjalan di server. Server ini mungkin sebuah client dari server yang lain. Dalam service interface-nya, suatu server proses mendefinisikan prosedur-prosedur yang tersedia. RPC, seperti RMI dapat diimplementasikan untuk mengambil satu dari sekian pilihan invocation semantic yang biasa dipilih adalah at-least- once atau at-most-once. RPC umumnya diimplementasikan request reply protocol yang disederhanakan dengan menghilangkan beberapa referensi objek dari pesan-pesan permintaan. Software yang mendukung RPC ditunjukan pada gambar 5.1. Client yang mengakses suatu servis memasukkan satu stub procedure untuk setiap prosedur dalam service interface. Fungsi dari stub procedure sama dengan fungsi di sebuah proxy. Stub procedure bertindak seperti lokal prosedur kepada client, tetapi dia tidak melaksanakan panggilan, melainkan stub procedure mengatur identifikasi prosedur dan argument ke dalam suatu request message yang kemudian dikirimkan oleh stub procedure kepada server melalui communication module. Ketika reply message datang maka stub procedure

Transcript of BAB v Remote Procedure Call (COMPLETE)

  • V-1

    BAB V

    Remote Procedure Call (RPC)

    Remote Procedure Call (RPC) sangat mirip dengan

    Remote Method Invocation, pada program client yang

    memanggil sebuah program yang sedang berjalan di server.

    Server ini mungkin sebuah client dari server yang lain.

    Dalam service interface-nya, suatu server proses

    mendefinisikan prosedur-prosedur yang tersedia. RPC,

    seperti RMI dapat diimplementasikan untuk mengambil

    satu dari sekian pilihan invocation semantic yang

    biasa dipilih adalah at-least- once atau at-most-once.

    RPC umumnya diimplementasikan request reply protocol

    yang disederhanakan dengan menghilangkan beberapa

    referensi objek dari pesan-pesan permintaan.

    Software yang mendukung RPC ditunjukan pada gambar

    5.1. Client yang mengakses suatu servis memasukkan satu

    stub procedure untuk setiap prosedur dalam service

    interface. Fungsi dari stub procedure sama dengan

    fungsi di sebuah proxy. Stub procedure bertindak

    seperti lokal prosedur kepada client, tetapi dia tidak

    melaksanakan panggilan, melainkan stub procedure

    mengatur identifikasi prosedur dan argument ke dalam

    suatu request message yang kemudian dikirimkan oleh

    stub procedure kepada server melalui communication

    module. Ketika reply message datang maka stub procedure

  • V-2

    mengatur hasil-hasilnya. Procedure process memiliki

    sebuah pengirim bersama dengan satu stub procedure

    server dan satu prosedur servis untuk setiap prosedur

    dalam service interface. Pemanggil ini memilih satu

    dari sekian stub procedure sesuai dengan

    pengidentifikasi prosedur dalam request message. Stub

    procedure Server menyerupai skeleton method dalam hal

    cara stub procedure server mengacak argument dalam

    request message, memanggil prosedur servis yang

    berkaitan dan mengatur pengembalian hasil untuk sebuah

    reply message. Prosedur servis mengimplementasikan

    prosedur-prosedur di dalam service interface.

    5.2 Sun RPC (Studi Kasus)

    Sun RPC di-design untuk komunikasi client-server

    pada Sun NFS (Network File System). Sun RPC sering

    disebut dengan ONC (Open Network Computing) RPC. Ini

    disediakan oleh Sun dan operating sistem UNIX yang lain,

    juga disediakan oleh instalasi NFS yang lain. Seseorang

    yang mengimplementasikan memiliki pilihan untuk

    menggunakan RPC melalui UDP atau TCP. Ketika Sun RPC

    digunakan pada UDP, panjang dari request dan reply

    message sangat ditentukan dengan ketat. Sun RPC sistem

    menyediakan interface language yang disebut dengan XDR

  • V-3

    dan interface compiler yang disebut dengan rpcgen, yang

    menggunakan bahasa pemrograman C.

    Sun XDR Language, yang mulanya di-design untuk

    representasi spesifik data eksternal. Kemudian

    dikembangkan menjadi interface definition language. Itu

    mungkin digunakan untuk mendefinisikan service

    interface untuk Sun RPC oleh spesifik kumpulan

    procedure definition dan supporting type definition.

    Notasi yang digunakan agak terbelakang jika

    dibandingkan dengan yang digunakan oleh CORBA IDL atau

    Java.

    5.3 Java RMI (Studi Kasus)

    Java RMI mengembangkan java objek model untuk

    menyediakan dukungan bagi objek-objek yang

    didistribusikan dalam bahasa pemrograman java. Secara

    mengkhusus java RMI memungkinkan objek untuk memanggil

    metode pada remote object dengan menggunakan sintaks

    yang sama seperti pada pemanggilan lokal. Kemudian

    pengecekan tipe berlaku sama baik untuk penggilan

    remote atau pemanggilan lokal. Namun suatu objek yang

    melakukan pemanggilan remote menyadari bahwa targetnya

    jauh karena objek ini harus menangani Remote Exceptions;

    dan pengimplementasi objek remote ini juga sadar bahwa

    dia itu jauh karena dia harus mengimplementasikan

  • V-4

    remote interface. Meskipun model objek yang disebarkan

    dintegrasikan ke dalam Java secara alami, semantik

    parameter parsingnya berbeda karena pemanggil dan

    targetnya berjauhan.

    Pemrograman aplikasi-aplikasi yang terdistribusi

    pada Java RMI seharusnya cukup sederhana karena Java

    merupakan sistem single-language remote interface

    didefinisikan dalam Java. Jika digunakan sistem multi

    language seperti CORBa. Pemrogram perlu belajar

    mengenai IDL dan perlu memahami bagaimana IDL memetakan

    ke dalam implementasi sebuah bahasa pemrograman. Namun,

    dalam sistem single-language pun pemrogram remote objek

    harus memperhitungkan kebiasaan objek tersebut dalam

    lingkungan yang sering dialaminya.

    Pada studi kasus ini, kita menggunakan sebuah

    shared whiteboard sebagai contoh. Ini adalah sebuah

    program tersebar yang memungkinkan sekelompok pengguna

    untuk menggunakan secara bersama-sama pandangan umum

    drawing surface yang berisi objek grafis seperti, bujur

    sangkar, baris dan lingkaran, yang sudah digambar oleh

    salah satu pengguna. Server mempertahankan kondisi

    terkini suatu drawing dengan menyediakan operasi untuk

    client untuk menginformasikan gambar-gambar terakhir

    yang sudah dibuat oleh pengguna dalam kelompok itu dan

    untuk menyimpan semua bentuk yang sudah diterima.

  • V-5

    Server juga menyediakan operasi-operasi yang

    memungkinkan client untuk memanggil bentuk-bentuk

    terakhir yang dibuat oleh pengguna lain dengan pilihan

    server. Server memiliki nomor versi (integer) yang

    selalu bertambah setiap bentuk baru datang dan

    dicantumkan ke dalam bentuk yang baru. Server

    menyediakan operasi-operasi yang memungkinkan client

    untuk menyakan nomor versinya dan nomor versi setiap

    bentuk, sehingga mereka dapat menghindari pengambilan

    bentuk-bentuk yang sudah dimiliki.