Tugas pemrograman3 rpc_rest_dan_soap_1100631007

8

Click here to load reader

Transcript of Tugas pemrograman3 rpc_rest_dan_soap_1100631007

Page 1: Tugas pemrograman3 rpc_rest_dan_soap_1100631007

TUGAS PEMROGRAMAN 3

MEMBUAT ESSAY TENTANG RPC, REST

DAN SOAP

Disusun Oleh :

BRIAN INDRA AGATHA HIA (1100631007)

MI A

Page 2: Tugas pemrograman3 rpc_rest_dan_soap_1100631007

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.

Page 3: Tugas pemrograman3 rpc_rest_dan_soap_1100631007

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

Page 4: Tugas pemrograman3 rpc_rest_dan_soap_1100631007

Menggunakan select Subrutin

Fitur ini akan memeriksa deskripsi dari suatu file dan messages dalam

antrian untuk melihatapakah 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.

CONTOH SOURCE CODE 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.

Page 5: Tugas pemrograman3 rpc_rest_dan_soap_1100631007

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.

Page 6: Tugas pemrograman3 rpc_rest_dan_soap_1100631007

Contoh SourceCode REST

Simple Object Access Protocol SOAP

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 :

Page 7: Tugas pemrograman3 rpc_rest_dan_soap_1100631007

SOAP Messages 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 SOURCE CODE 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.

Page 8: Tugas pemrograman3 rpc_rest_dan_soap_1100631007

Client.php

<?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 "<p>Hasil penjumlahan ".$bil1." dan ".$bil2." adalah ".$result."</p>";

?>

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