Diberdayakan oleh Blogger.

SELAMAT DATANG DI BLOG BRIAN INDRA SEMOGA BLOG INI BERMANFAAAT

RSS

RPC, REST DAN SOAP

TUGAS PEMROGRAMAN 3 MEMBUAT ESSAY TENTANG RPC, REST DAN SOAP 


          RPC ( Remote Procedure Call )  

         RPC  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).  RPC mengasumsi 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  (users)  untuk  bekerja  dengan
prosedur  remote  sebagaimana  bekerja  dengan  prosedur  lokal.  Prosedur
panggilan  remote  (remote  procedure  calls)  didefinisikan  melalui  rutin  yang
terkandung  didalam  protokol  RPC.  Tiap  message  dari  panggilan  akan
disesuaikan dengan message balikan. Protokol RPC sendiri sebenarnya adalah
suatu  protokol  untuk  ”meneruskan  pesan”  yang  mengimplemntasikan
protokol  non-RPC  lain  seperti  panggilan  remote  batching  dan  broadcasting.
Protokol ini juga mendukung adanya prosedur callback dan select subroutine
pada sisi  server.


                                               Contoh Program RPC


               
            Respresentational State Transfer (REST)


               REST adalah salah satu jenis web service yang menerapkan konsep perpindahan antar state.    State disini dapat digambarkan seperti jika browser meminta suatu halaman web, maka serverakan mengirimkan state halaman web yang sekarang ke browser. Bernavigasi melalui link-link yang disediakan sama halnya dengan mengganti state dari halaman web. 
Begitu pula REST bekerja, dengan bernavigasi melalui link-link HTTP untuk melakukan aktivitas tertentu, seakan-akan terjadi perpindahan state satu sama lain. Perintah HTTP yang bisa digunakan adalah fungsi GET, POST, PUT atau DELETE. Balasan yang dikirimkan adalah dalam bentuk XML sederhana tanpa ada protokol pemaketan data, sehingga informasi yang diterima lebih mudah dibaca dan diparsing disisi client.
                  (REST – Respresentational State Transfer) itu, bukanlah spesifikasi standard seperti halnya XML-RPC dan SOAP, tapi desain dan style arsitektural dari arsitektur software berbasis network.
 
                 REST merupakan collection dari prinsip-prinsip arsitektur network yang menggambarkan bagaimana mengakses resource yang didefinisikan.
                 REST (Representational State Transfer). Terminologi REST dikemukakan oleh Roy Fielding (salah satu penulis spesifikasi HTTP) dalam disertasi Ph.D. nya untuk menggambarkan sebuah style arsitektur dari sistem network. Ada dua pengartian REST, pertama: REST merupakan collection (saya menggunakan kata tetap collection, bukan koleksi, karena AtomPub menggunakan element untuk mendeskripsikan koleksi service) dari prinsip-prinsip arsitektur network yang menggambarkan bagaimana resource didefinisikan dan dialamati (bagaimana mengakses resource yang didefinisikan).
Pengertian kedua: Sebuah interface yang mengirim data (pada domain tertentu) melalui HTTP tanpa menggunakan layer messaging seperti SOAP atau session tracking via HTTP cookies. Kedua pengertian ini dapat saling bertentangan dan saling menimpa. Kita dapat saja mendesain sistem perangkat lunak besar yang sesuai dengan style arsitektur REST tanpa perlu menggunakan HTTP dan tanpa perlu berinteraksi dengan WWW. Kita juga dapat mendesain interface berbasis XML+HTTP yang tidak sesuai dengan prinsip REST, tapi meniru RPC-style.

                     Inilah yang yang membuat bingung, bagaimana sih terminologi REST harus digunakan? Dan sistem seperti apa sih yang sesuai dengan prinsip REST? Sistem yang mengikuti (mengimplementasi) sesuai dengan prinsip REST nya si Roy Fielding ini sering disebut sebagai RESTful. AtomPub (Atom Publishing Protocol) yang digunakan untuk posting blog sering dianggap sebagai standard RESTful protocol (saya akan bahas AtomPub juga, nanti). OK, sampai saat ini pasti konsep RESTful masih belum jelas bagi Anda, kita kembali lagi ke REST. Kenapa si Roy Fielding menyebut style arsitektur miliknya ini sebagai “Representational State Transfer” ? Hmmm..
                    Ada tiga kata yang perlu di jelaskan disini, yaitu “Representation” (saya akan selalu menggunakan kata representation, tapi tetap berarti suatu representasi, wujud atau bentuk), “State” dan “Transfer“. OK, kita anggap web terdiri atas kumpulan resources. Domain-domain di internet ini memberikan resources baik kepada browser atau aplikasi yang diprogram untuk mengakses resource tersebut. Sebuah resource merupakan sesuatu (dokumen, file atau apapun) yang dinginkan oleh pengakses (client). Browser menginginkan resource tersebut disajikan dalam dokumen HTML, aplikasi lain mengingikan dalam format XML agar bisa diolah lebih lanjut.
                               CONTOH SOURCECODE REST
            
                          Simple Object Access Protocol SOAP
 
S                  Simple Object Access Protocol (SOAP) adalah sebuah standarisasi dasar dari protokol komunikasi untuk saling bertukar informasi terstruktur di antara aplikasi-aplikasi yang berjalan. SOAP adalah sebuah aplikasi pesan XML yang sangat bergantung pada skema XML dan XML namespaces untuk mendifinisikannya. SOAP juga sangat bergantung dengan beberapa protokol layer lainnya seperti HTTP, JMS, RPC untuk transmisi pesan.
                    SOAP sangat efektif untuk berbabagai macam aplikasi untuk berkomunikasi walaupun berjalan pada sistem operasi yang berbeda dengan teknologi dan bahasa pemrograman yang berbeda-beda pula.
                     Pesan SOAP mempunyai struktur sebagai berikut :
                                                         SOAP Message Structure

           Keuntungan dari SOAP
·                  Format yang sederhana dan dapat dikembangkan
                   Bisa dijalankan dimana saja tidak terbatas pada platform tertentu
·                 Bisa menggunakan bahasa pemrograman apa saja
·                 Multi-protocol seperti HTTP, JMS, RPC, SMTP, dll.
·                 Dapat melewati firewalls sehingga mendukung model HTTP get / reponse
·                 Tipe yang kuat dan melekat pada sebuah kontrak 
 
           Kekurangan dari SOAP
·               Walaupun sederhana, pesannya dapat panjang karena kebutuhannya untuk mengemasnya    dalam bentuk SOAP envelope
·               Karena SOAP berbasis XML, dibutuhkan waktu untuk parsing XML tersebut karena harus di kedua pihak melakukannya (pengirim dan penerima pesan)
·               Walaupun SOAP standart yang terbuka, tidak semua bahasa mendukung dengan baik. Yang terbaik untuk mendukung SOAP adalah JAVA, .Net, dan Flex

                     CONTOH SOURCECODE SOAP
 
        Server.php
<   ?php

    // mengincludekan file berisi class nusoap
    require_once('lib/nusoap.php');
    // instansiasi class soap untuk server
    $server = new soap_server;
    // meregistrasi 'method' untuk proses penjumlahan dengan nama 'jumlahkan'
    $server->register('jumlahkan');

    // detil isi method 'jumlahkan'
    function jumlahkan($x, $y) {
    return $x + $y;
}

    // memberikan response service
    $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
    $server->service($HTTP_RAW_POST_DATA);
    ?>

       Keterangan: Setiap method yang dibuat, nama method harus diregisterkan dengan perintah
    
    $server->register('nama method'); 


       Langkah berikutnya, kita tulis script yang nantinya diletakkan di komputer A di sisi client


       Client.php

   

    require_once('lib/nusoap.php');

    // dua bilangan yang akan dijumlahkan
    $bil1 = 10;
    $bil2 = 25;

    // instansiasi obyek untuk class nusoap client
    $client = new nusoap_client('http://nomor_ip_komputerB/../server.php');
   // proses call method 'jumlahkan' di script server.php yang ada di komputer B
    $result = $client->call('jumlahkan', array('x' => $bil1, 'y' => $bil2));

   echo "Hasil penjumlahan ".$bil1." dan ".$bil2." adalah ".$result."
";

    ?>


       Jika script client.php ini dijalankan di komputer client (dalam hal ini komputer A), maka akan menghasilkan output sbb:







  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS