Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Tugas pemrograman3 rpc_rest_dan_soap_1100631007
1. TUGAS PEMROGRAMAN 3
MEMBUAT ESSAY TENTANG RPC, REST
DAN SOAP
Disusun Oleh :
BRIAN INDRA AGATHA HIA (1100631007)
MI A
2. 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.
3. 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.
4. 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.
5. 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. Domaindomain 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.
6. 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 :
7. 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.
8. 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: