SlideShare a Scribd company logo
1 of 12
Download to read offline
TUGAS
PEMROGRAMAN III (RPC,SOAP,REST)

Disusun Oleh :

MUHAMMAD ARIF PRAYUGO
1100631003_MI/A

PROGRAM STUDY MANAJEMEN INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH JEMBER
2013
Remote Procedure Call (RPC).
Remote Procedure Call (RPC) adalah sebuah metode yang memungkinkan kita untuk mengakses
sebuah prosedur yang berada di komputer lain. Untuk dapat melakukan ini sebuah server harus
menyediakan layanan

remote procedure.Pendekatan yang dilakuan adalah sebuah

server

membuka socket, lalu menunggu client yang meminta prosedur yang disediakan oleh server. Bila
client tidak tahu haruS menghubungi

port yang mana,

client bisa me-request kepada

sebuah matchmaker pada sebuah RPC port yang tetap. Matchmaker akan memberikan port apa
yang digunakan oleh prosedur yang diminta client.
RPC

masih

menggunakan

cara

primitif

dalam

pemrograman,

yaitu

menggunakan

paradigma procedural programming. Hal itu membuat kita sulit ketika menyediakan
banyak remote procedure. RPC menggunakan socket untuk berkomunikasi dengan proses
lainnya. Pada sistem seperti SUN, RPC secara default sudah ter-install kedalam sistemnya, biasanya
RPC ini digunakan untuk administrasi sistem. Sehingga seorang administrator jaringan dapat
mengakses sistemnya dan mengelola sistemnya dari mana saja, selama sistemnya terhubung ke
jaringan.
 Kelebihan RPC
-

Relatif mudah digunakan :
Pemanggilan remote procedure tidak jauh berbeda dibandingkan pemanggilan
procedure. Sehingga pemrogram

dapat berkonsentrasi pada software logic, tidak

perlu memikirkan low level details seperti socket, marshalling &
-

unmarshalling.

Robust (Sempurna):
Sejak th 1980-an RPC telah banyak digunakan dlm pengembangan mission- critical
application yg memerlukan

scalability, fault tolerance, & reliability.

 Kekurangan RPC
-

Tidak fleksibel terhadap perubahan:
Static relationship between client & server at run-time.Berdasarkan
prosedural/structured programming yang sudah ketinggalan jaman dibandingkan OOP.
 Struktur Protokol Message RPC
-

Call Message
Dilakukan oleh klien, dimana meminta server untuk mengeksekusi suatu
prosedur.Terdapat nilai-nilai unsigned integer yang digunakan untuk mengidentifikasi
prosedurremote yang diminta:
1. Nomor Program
2. Nomor Versi dari Program
3. Nomor Prosedur

 Reply Message
Dikirimkan oleh server jaringan, bervariasi tergantung apakah call messages 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
 Fitur dalam RPC
1. Batching Calls
Mengijinkan klien untuk mengirim message calls ke server dalam jumlah besar secara
berurutan.
2. Broadcasting Calls
Menijinkan klien untuk mengirimkan paket data ke jaringan dan menunggu balasan
darinetwork.
3. Callback Procedures
Mengijinkan server untuk bertindak sebagai klien dan melakukan PRC callback ke proses
yang dijalankan klien.
4. Select Subrutin
Memeriksa deskripsi suatu file dan messages dalamantrian untuk melihat apakah siap
dibaca atau ditulis,atau ditahan. (mengijinkan server untuk menginterupsi suatu aktivitas.

 Prinsip RPC dalam program Client-Server
Skema RPC ini dilakukan juga pada proses-proses yang running di komputer berlainan.
-

Sebelum mekanisme RPC digunakan, data harus di-packaging ke dalam formattransimisi.
Langkah ini dinamakan marshalling

-

Proxy bertanggung jawab untuk marshalling data, kemudian mengirimkan data dan
meminta instans dari komponen (remote)

-

Stub menerima request, unmarshall data, dan memanggil method yang diminta.
Kemudian proses mengembalikan nilai yang diinginkan .

 Langkah-langkah dalam RPC
1. Prosedur client memanggil client stub
2. Client stub membuat pesan dan memanggil OS client
3. OS client mengirim pesan ke OS server
4. OS server memberikan pesan ke server stub
5. Server stub meng-unpack parameter-parameter untuk memanggil server
6. Server mengerjakan operasi, dan mengembalikan hasilnya ke server stub
7. Server stub mem-pack hasil tsb dan memanggil OS server
8. OS server mengirim pesan (hasil) ke OS client
9. OS client memberikan pesan tersebut ke client stub
10. Client stub meng-unpack hasil dan mengembalikan hasil tersebut ke client
 Fitur dalam RPC
-

Batching Calls:Fitur Batching calls mengijinkan klien untuk mengirim message calls ke
server dalam jumlah besar secara sequence ( berurutan )

-

Broadcasting Call:Fitur Broadcasting mengijinkan klien untuk mengirimkan paket data
kejaringan dan menunggu balasan dari network. FItur ini menggunakanprotokol yang
berbasiskan paket data seperti UDP/IP sebagai mediumnya.Broadcast RPC membutuhkan
layanan port mapper RPC untukmengimplementasikanfung sinyA

-

Callback ProcedureS:Fitur Callback Procedures mengijinkan server untuk bertindak
sebagai

-

Menggunakan select SubrutiN:Fitur ini akan memeriksa deskripsi dari suatu file dan
messages dalamantrian untuk melihat apakah mereka siap untuk dibaca (diterima)
atauditulis (dikirim), atau mereka dalam kondisi ditahan sementara. Prosedurini
mengijinkan server untuk menginterupsi suatu aktivitas, memeriksadatanya, dan
kemudian melanjutkan proses aktivitas tersebu

 Object Remote
Meskipun teknologi RPC ini relatif sudah memberikan kenyamanan bagi developer, tapi
perkembangan yang terjadi di bidang pemrograman berorientasi objek akhirnya
menuntut kehadiran teknologi baru. Sederet teknologi akhirnya benar-benar muncul,
antara lain;RMI (Remote Method Invocation),CORBA(Common Object Request Broker
Architecture), dan SOAP (Simple Object Access Protocol).
Contoh coding penggunaan RPC (Remote Procedure Call).
$response = array(
array(
'flerror' => array(FALSE, 'boolean'),
'message' => "Thanks for the ping!"
)
'struct');
return $this->xmlrpc->send_response($response);
Simple Object Acces Protocol (SOAP).
Teknologi SOAP dan Perangkat Mobile

Salah satu kegunaan perkembangan teknologi informasi berbasis mobile adalah untuk
memudahkan siapa saja dalammengakses informasi melalui perangkat mobile seperti handphone.
Seperti contoh dalam bidang pendidikan para mahasiswa tidak perlu harus kekampus jika ingin
melihat nilai ataupun informasi yang berhubungan dengan perkuliahan. Karena dengan
menggunakan teknologi berbasis mobile kita dapat menggunakan perangkat dan konektivitas
apapun untuk bekerja. Dengan demikian teknologi berbasis mobile inibisa menjadi solusi bagi para
mahasiswa yang tinggal di lingkungan perkotaan yang penuh kemacetan.
Begitu juga SOAP, yang didefinisikan sebagai Simple Object Access Protocol, yang merupakan
spesifikasi protocol untuk bertukar informasi yang terstruktur dalam pelaksanaan Layanan Web di
jaringan komputer.
Extensible Markup Language (XML), SOAP dan Perangkat Mobile
Hal ini bergantung pada Extensible Markup Language (XML) sebagai format pesan, dan biasanya
bergantung pada protocol lain yang menjadi Layer Aplikasi terutamaRemote Procedure
Call (RPC) dan HTTP untuk negosiasi dan transmisi pesan.SOAP dapat membentuk lapisan dasar
dari stack protocol layanan web, pesan menyediakan kerangka dasar atas mana
layanan web dapat dibangun. Protocolberbasis XML ini terdiri dari tiga bagian amplop yang
mendefinisikan apa yang adadalam pesan dan bagaimana proses itu satu set aturan pengkodean
untuk mengungkapkan kasus defined datatypes aplikasi, dan konvensi untuk mewakili panggilan
prosedur dan tanggapan.
SOAP dibangun dengan menggunakan protocol komunikasi HTTP. Karena HTTP didukung oleh
semua browser dan server, maka SOAP dapat berkomunikasi dengan berbagai aplikasi meskipun
terdapat

perbedaan

sistem

operasi,

teknologi,

dan

bahasa

pemrogramannya,

dikarenakan protocol ini memanfaatkan berbagai teknologi yang sudah ada sebelumnya dan sudah
banyak digunakan. Misalnya untukprotocol transport, yang paling banyak digunakan adalah HTTP,
walaupun dimungkinkan untuk menggunakan protocol transport lainnya. Sedangkan untuk
format data atau message digunakan XML yang tidak diragukan lagi manfaat dan perannya di
dalam pertukaran data.
SOAP membentuk lapisan dasar dari tumpukan layanan Web, pesan menyediakan kerangka kerja
dasar yang lebih abstrak lapisan bisa membangun. SOAP bekerja dengan mengirimkan pesan
permintaan oleh klien ( simpul jaringan ) ke server node dan kembali mendapat pesan respon dari
server dan pola ini biasanya disebut RPC (Remote Procedure Call ) yang merupakan pola yang
paling umum digunakan dalamSOAP.
Peran SOAP Dalam Teknologi Web Service
Peran SOAP di dalam teknologi web service adalah sebagai protocol pemaketan untuk pesan
(messages) yang digunakan secara bersama oleh aplikasi-aplikasi penggunanya. Spesifikasi yang
digunakan tidak lebih seperti sebuah amplop biasaberbasis XML untuk informasi yang ditransfer,
serta sekumpulan aturan bagi translasi aplikasi dan tipe-tipe data platform yang spesifik menjadi
bentuk XML. Desain bentuk dari SOAP membuatnya cocok untuk berbagai pertukaran pesan pada
aplikasi.
SOAP

adalah

protocol

untuk

pertukaran

informasi

dengan

desentralisasi

dan

terdistribusi. SOAP dibangun dengan menggunakan protocol komunikasi HTTP. Karena HTTP
didukung oleh semua browser dan server, maka SOAP dapat berkomunikasi dengan berbagai
aplikasi meskipun terdapat perbedaan sistem operasi, teknologi, dan bahasa pemrogramannya.
Peran SOAP di dalam teknologi web service adalah sebagai protocol pemaketan untuk pesan-pesan
(messages) yang digunakan secara bersama oleh aplikasi-aplikasi penggunanya. Spesifikasi yang
digunakan tidak lebih seperti sebuah amplop biasa berbasis XML untuk informasi yang ditransfer,
serta sekumpulan aturan bagi translasi aplikasi dan tipe-tipe data platform yang spesifik menjadi
bentuk XML. Desain bentuk dari SOAPmembuatnya cocok untuk berbagai pertukaran pesan pada
aplikasi.
SOAP juga memiliki keuntungan:


Mudah digunakan – kadang



Kaku – cek tipe, mengikuti sebuah kontrak



Perlu tool pengembangan khusus

Teknologi SOAP ( Simple Object Acces Protocol ) dan PHP
SOAP juga merupakan kumpulan class-class PHP yang memungkinkan user untuk mengirim dan
menerima pesan SOAP melalui protocol HTTP. Operasi-operasi pengiriman pesan SOAP dijalankan
dengan melibatkan paramater nama operasi yang diinginkan melalui method call. Jika web
service yang dituju menyediakan

sebuah file WSDL(Web Service Description Language),

maka class “soapclient” akan mengacu langsung pada URL file WSDL tersebut dan menggunakan
class “wsdl” untuk mem-parsing file WSDL dan mengekstrak seluruh datanya. Class “wsdl”
menyediakan method-method untuk mengekstrak data per operasi dan per binding.
Class “soapclient” menggunakan data dari file WSDL untuk menerjemahkan

parameter-

parameternya sekaligus menyusun SOAP envelope ketika user mengeksekusi suatu
pemanggilan service. Ketika pemanggilan ini dieksekusi, class“soapclient” menggunakan
“soap_transport_http” untuk mengirim pesan SOAPrequest dan menerima pesan SOAP respons.
Selanjutnya pesan SOAP respons yang diterima di parsing dengan menggunakan class
“soap_parser”.
Jika web service yang dituju menyediakan file WSDL, pemanggilan service dilakukan dengan
mengeksekusi method call pada class “soapclient” dengan melibatkan parameter argumen yang
disediakan

oleh

file

WSDL.

Dalam

membangun

sebuahsistem

aplikasi

berbasis

web dengan teknologi SOAP, dibutuhkan dua komponen utama yaitu, server sebagai provider
entity dan client sebagai requester entity.
Contoh coding penggunaan SOAP (Simple Object Acces Protocol).
Rancangan Script untuk Server. (server.php).
<?php
//panggil file soap
require_once '../../nusoap/nusoap.php';
$ws_srv = new soap_server();
$ws_srv->register(ambilData);
function tes($param){
$nama= $param['nama'];
$alamat = $param['alamat'];
$return_value[] =array('nama'=>$nama,'alamat'=>$alamat);
return ($return_value);}
function ambilData(){
mysql_connect('127.0.0.1','root','');
mysql_select_db('coba_wservice');
$sql = mysql_query('SELECT * FROM mahasiswa WHERE 1');
$return_data_count=mysql_num_rows($sql);
//$return_data[]=array();
while ($row=mysql_fetch_array($sql)){
$return_data[]=array('nim'=>$row['nim'],'nama'=>$row['nama'],
'alamat'=>$row['alamat']);
}
$return['count']=$return_data_count;
$return['data']=$return_data;
return $return;
}
$HTTP_RAW_POST_DATA = isset ($HTTP_RAW_POST_DATA) ?
$HTTP_RAW_POST_DATA:"";
$ws_srv->service($HTTP_RAW_POST_DATA);
?>

Rancangan Script untuk Client. (client.php).
<?php
require_once('../../nusoap/nusoap.php');
$client = new soapclient('http://127.0.0.1/mhs_webserv/server/');
//$param = array('nama'=>'Kabul Kurniawan','alamat'=>'Pekalongan');
$result = $client->call('ambilData');
$n=$result['count'];
$data=$result['data'];
echo '<table border=1>';
echo "<tr><th>Nim</th><th>Nama</th><th>Alamat</th></tr>";
for($i=0;$i<$n;$i++){
echo "<tr><td>".$data[$i]['nim']."</td><td>".$data[$i]['nama'].
"</td><td>".$data[$i]['alamat']."</td></tr>";
}
echo "</table>";
print_r ($result['count']);
echo'<br>';
print_r ($result['data']);
?>

Setelah rancangan-rancangan tersebut dibuat, kita dapat langsung mengakses data mahasiswa
melalui client.php, berikut hasilnya.. :)

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 XMLRPC 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 coding penggunaan REST (Respresentational State Transfer).

More Related Content

What's hot

Rifqi hanifmaulana 1100631036_rpc_soap_rest
Rifqi hanifmaulana 1100631036_rpc_soap_restRifqi hanifmaulana 1100631036_rpc_soap_rest
Rifqi hanifmaulana 1100631036_rpc_soap_restRifqi Hanif Maulana
 
Tugas pemrograman3 rpc,soap,rest_1100631020
Tugas pemrograman3 rpc,soap,rest_1100631020Tugas pemrograman3 rpc,soap,rest_1100631020
Tugas pemrograman3 rpc,soap,rest_1100631020Lucky AnugerahP
 
Tugas 2 [alokasi port tcp pada aplikasi jaringan]
Tugas 2 [alokasi port tcp pada aplikasi jaringan]Tugas 2 [alokasi port tcp pada aplikasi jaringan]
Tugas 2 [alokasi port tcp pada aplikasi jaringan]Kurnia Ayuningtyas
 
Tugas pemrograman iii rpc soap rest
Tugas pemrograman iii rpc soap restTugas pemrograman iii rpc soap rest
Tugas pemrograman iii rpc soap restAsfiyuli Wulandari
 
Lapisan protokol jaringan
Lapisan protokol jaringan Lapisan protokol jaringan
Lapisan protokol jaringan Renny Wahyu
 
Remote procedure call
Remote procedure callRemote procedure call
Remote procedure callPhu Ndut
 
Kali ini saya baru saja memperoleh pengetahuan tentang protokol tcp dan udp
Kali ini saya baru saja memperoleh pengetahuan tentang protokol tcp dan udpKali ini saya baru saja memperoleh pengetahuan tentang protokol tcp dan udp
Kali ini saya baru saja memperoleh pengetahuan tentang protokol tcp dan udpXerpox Gar
 
Protocol internet
Protocol internetProtocol internet
Protocol internetcondro23
 
Socket Programming UDP Echo Client Server (Python)
Socket Programming  UDP Echo Client Server  (Python)Socket Programming  UDP Echo Client Server  (Python)
Socket Programming UDP Echo Client Server (Python)Lusiana Diyan
 
Tugas 3 Rangkuman Protocol DNS, FTP, HTTP, dan SMTP
Tugas 3 Rangkuman Protocol DNS, FTP, HTTP, dan SMTPTugas 3 Rangkuman Protocol DNS, FTP, HTTP, dan SMTP
Tugas 3 Rangkuman Protocol DNS, FTP, HTTP, dan SMTPRobby Firmansyah
 
Esai rpc, soap, dan rest
Esai rpc, soap, dan restEsai rpc, soap, dan rest
Esai rpc, soap, dan restUlil Uliland
 
29154 selly monikan
29154 selly monikan29154 selly monikan
29154 selly monikanSelly Monika
 

What's hot (17)

Rifqi hanifmaulana 1100631036_rpc_soap_rest
Rifqi hanifmaulana 1100631036_rpc_soap_restRifqi hanifmaulana 1100631036_rpc_soap_rest
Rifqi hanifmaulana 1100631036_rpc_soap_rest
 
Tugas pemrograman3 rpc,soap,rest_1100631020
Tugas pemrograman3 rpc,soap,rest_1100631020Tugas pemrograman3 rpc,soap,rest_1100631020
Tugas pemrograman3 rpc,soap,rest_1100631020
 
Tugas 2 [alokasi port tcp pada aplikasi jaringan]
Tugas 2 [alokasi port tcp pada aplikasi jaringan]Tugas 2 [alokasi port tcp pada aplikasi jaringan]
Tugas 2 [alokasi port tcp pada aplikasi jaringan]
 
Tugas pemrograman iii rpc soap rest
Tugas pemrograman iii rpc soap restTugas pemrograman iii rpc soap rest
Tugas pemrograman iii rpc soap rest
 
UDP and TCP
UDP and TCPUDP and TCP
UDP and TCP
 
Kelompok 6
Kelompok 6Kelompok 6
Kelompok 6
 
Lapisan protokol jaringan
Lapisan protokol jaringan Lapisan protokol jaringan
Lapisan protokol jaringan
 
Remote procedure call
Remote procedure callRemote procedure call
Remote procedure call
 
Kali ini saya baru saja memperoleh pengetahuan tentang protokol tcp dan udp
Kali ini saya baru saja memperoleh pengetahuan tentang protokol tcp dan udpKali ini saya baru saja memperoleh pengetahuan tentang protokol tcp dan udp
Kali ini saya baru saja memperoleh pengetahuan tentang protokol tcp dan udp
 
Protocol internet
Protocol internetProtocol internet
Protocol internet
 
Socket Programming UDP Echo Client Server (Python)
Socket Programming  UDP Echo Client Server  (Python)Socket Programming  UDP Echo Client Server  (Python)
Socket Programming UDP Echo Client Server (Python)
 
Tugas 4
Tugas 4Tugas 4
Tugas 4
 
Tugas 3 Rangkuman Protocol DNS, FTP, HTTP, dan SMTP
Tugas 3 Rangkuman Protocol DNS, FTP, HTTP, dan SMTPTugas 3 Rangkuman Protocol DNS, FTP, HTTP, dan SMTP
Tugas 3 Rangkuman Protocol DNS, FTP, HTTP, dan SMTP
 
Tentang port
Tentang portTentang port
Tentang port
 
Kelompok 7
Kelompok 7Kelompok 7
Kelompok 7
 
Esai rpc, soap, dan rest
Esai rpc, soap, dan restEsai rpc, soap, dan rest
Esai rpc, soap, dan rest
 
29154 selly monikan
29154 selly monikan29154 selly monikan
29154 selly monikan
 

Similar to Tugas pemrograman 3 (rpc,soap,rest) 1100631003 muhammad arif prayugo

Tugas pemr3 1100631014 rpc,soap,rest
Tugas pemr3 1100631014 rpc,soap,restTugas pemr3 1100631014 rpc,soap,rest
Tugas pemr3 1100631014 rpc,soap,restKienda Dwi Ajie
 
Sister 04 - remote procedure call (rpc)
Sister   04 - remote procedure call (rpc)Sister   04 - remote procedure call (rpc)
Sister 04 - remote procedure call (rpc)Febriyani Syafri
 
Protocol jaringan komputer
Protocol jaringan komputerProtocol jaringan komputer
Protocol jaringan komputerAmiroh S.Kom
 
Ristanto 1100631048
Ristanto 1100631048Ristanto 1100631048
Ristanto 1100631048Ristanto Dp
 
Tugaas pemograman 3 1100631034
Tugaas pemograman 3   1100631034Tugaas pemograman 3   1100631034
Tugaas pemograman 3 1100631034ariunmuh
 
Web Server, DNS Server, dan FTP Server
Web Server, DNS Server, dan FTP ServerWeb Server, DNS Server, dan FTP Server
Web Server, DNS Server, dan FTP ServerIsna Dwi Setianingsih
 
Osi layer ( DAVENTA S )
Osi layer ( DAVENTA S )Osi layer ( DAVENTA S )
Osi layer ( DAVENTA S )Muhammad Putra
 
Tugas pemograman III
Tugas pemograman IIITugas pemograman III
Tugas pemograman IIIahmadferi1
 
Modul 12rev1
Modul 12rev1Modul 12rev1
Modul 12rev1gung_sono
 
Paper | OSI (Open System Interconnection)
Paper | OSI (Open System Interconnection) Paper | OSI (Open System Interconnection)
Paper | OSI (Open System Interconnection) Indri Sukmawati Rahayu
 
Tugas atpi aufar abi atpi
Tugas atpi aufar abi atpiTugas atpi aufar abi atpi
Tugas atpi aufar abi atpiFebriy Y
 

Similar to Tugas pemrograman 3 (rpc,soap,rest) 1100631003 muhammad arif prayugo (20)

KOMUNIKASI DATA
KOMUNIKASI DATAKOMUNIKASI DATA
KOMUNIKASI DATA
 
Tugas pemr3 1100631014 rpc,soap,rest
Tugas pemr3 1100631014 rpc,soap,restTugas pemr3 1100631014 rpc,soap,rest
Tugas pemr3 1100631014 rpc,soap,rest
 
Sister 04 - remote procedure call (rpc)
Sister   04 - remote procedure call (rpc)Sister   04 - remote procedure call (rpc)
Sister 04 - remote procedure call (rpc)
 
Protocol jaringan komputer
Protocol jaringan komputerProtocol jaringan komputer
Protocol jaringan komputer
 
Ristanto 1100631048
Ristanto 1100631048Ristanto 1100631048
Ristanto 1100631048
 
Kelompok 7
Kelompok 7Kelompok 7
Kelompok 7
 
Presentation1
Presentation1Presentation1
Presentation1
 
Tugaas pemograman 3 1100631034
Tugaas pemograman 3   1100631034Tugaas pemograman 3   1100631034
Tugaas pemograman 3 1100631034
 
Osi layers
Osi layersOsi layers
Osi layers
 
Web Services
Web ServicesWeb Services
Web Services
 
Pptp,l2 f,l2tp
Pptp,l2 f,l2tpPptp,l2 f,l2tp
Pptp,l2 f,l2tp
 
Web Server, DNS Server, dan FTP Server
Web Server, DNS Server, dan FTP ServerWeb Server, DNS Server, dan FTP Server
Web Server, DNS Server, dan FTP Server
 
Osi layer ( DAVENTA S )
Osi layer ( DAVENTA S )Osi layer ( DAVENTA S )
Osi layer ( DAVENTA S )
 
Tugas pemograman III
Tugas pemograman IIITugas pemograman III
Tugas pemograman III
 
Sister 06 - client server
Sister   06 - client serverSister   06 - client server
Sister 06 - client server
 
Modul 12rev1
Modul 12rev1Modul 12rev1
Modul 12rev1
 
Transport layer
Transport layerTransport layer
Transport layer
 
Paper | OSI (Open System Interconnection)
Paper | OSI (Open System Interconnection) Paper | OSI (Open System Interconnection)
Paper | OSI (Open System Interconnection)
 
Tugas atpi aufar abi atpi
Tugas atpi aufar abi atpiTugas atpi aufar abi atpi
Tugas atpi aufar abi atpi
 
Jarkom Pertemuan 9
Jarkom Pertemuan 9Jarkom Pertemuan 9
Jarkom Pertemuan 9
 

Tugas pemrograman 3 (rpc,soap,rest) 1100631003 muhammad arif prayugo

  • 1. TUGAS PEMROGRAMAN III (RPC,SOAP,REST) Disusun Oleh : MUHAMMAD ARIF PRAYUGO 1100631003_MI/A PROGRAM STUDY MANAJEMEN INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS MUHAMMADIYAH JEMBER 2013
  • 2. Remote Procedure Call (RPC). Remote Procedure Call (RPC) adalah sebuah metode yang memungkinkan kita untuk mengakses sebuah prosedur yang berada di komputer lain. Untuk dapat melakukan ini sebuah server harus menyediakan layanan remote procedure.Pendekatan yang dilakuan adalah sebuah server membuka socket, lalu menunggu client yang meminta prosedur yang disediakan oleh server. Bila client tidak tahu haruS menghubungi port yang mana, client bisa me-request kepada sebuah matchmaker pada sebuah RPC port yang tetap. Matchmaker akan memberikan port apa yang digunakan oleh prosedur yang diminta client. RPC masih menggunakan cara primitif dalam pemrograman, yaitu menggunakan paradigma procedural programming. Hal itu membuat kita sulit ketika menyediakan banyak remote procedure. RPC menggunakan socket untuk berkomunikasi dengan proses lainnya. Pada sistem seperti SUN, RPC secara default sudah ter-install kedalam sistemnya, biasanya RPC ini digunakan untuk administrasi sistem. Sehingga seorang administrator jaringan dapat mengakses sistemnya dan mengelola sistemnya dari mana saja, selama sistemnya terhubung ke jaringan.  Kelebihan RPC - Relatif mudah digunakan : Pemanggilan remote procedure tidak jauh berbeda dibandingkan pemanggilan procedure. Sehingga pemrogram dapat berkonsentrasi pada software logic, tidak perlu memikirkan low level details seperti socket, marshalling & - unmarshalling. Robust (Sempurna): Sejak th 1980-an RPC telah banyak digunakan dlm pengembangan mission- critical application yg memerlukan scalability, fault tolerance, & reliability.  Kekurangan RPC - Tidak fleksibel terhadap perubahan: Static relationship between client & server at run-time.Berdasarkan prosedural/structured programming yang sudah ketinggalan jaman dibandingkan OOP.
  • 3.  Struktur Protokol Message RPC - Call Message Dilakukan oleh klien, dimana meminta server untuk mengeksekusi suatu prosedur.Terdapat nilai-nilai unsigned integer yang digunakan untuk mengidentifikasi prosedurremote yang diminta: 1. Nomor Program 2. Nomor Versi dari Program 3. Nomor Prosedur  Reply Message Dikirimkan oleh server jaringan, bervariasi tergantung apakah call messages 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  Fitur dalam RPC 1. Batching Calls Mengijinkan klien untuk mengirim message calls ke server dalam jumlah besar secara berurutan. 2. Broadcasting Calls Menijinkan klien untuk mengirimkan paket data ke jaringan dan menunggu balasan darinetwork. 3. Callback Procedures
  • 4. Mengijinkan server untuk bertindak sebagai klien dan melakukan PRC callback ke proses yang dijalankan klien. 4. Select Subrutin Memeriksa deskripsi suatu file dan messages dalamantrian untuk melihat apakah siap dibaca atau ditulis,atau ditahan. (mengijinkan server untuk menginterupsi suatu aktivitas.  Prinsip RPC dalam program Client-Server Skema RPC ini dilakukan juga pada proses-proses yang running di komputer berlainan. - Sebelum mekanisme RPC digunakan, data harus di-packaging ke dalam formattransimisi. Langkah ini dinamakan marshalling - Proxy bertanggung jawab untuk marshalling data, kemudian mengirimkan data dan meminta instans dari komponen (remote) - Stub menerima request, unmarshall data, dan memanggil method yang diminta. Kemudian proses mengembalikan nilai yang diinginkan .  Langkah-langkah dalam RPC 1. Prosedur client memanggil client stub 2. Client stub membuat pesan dan memanggil OS client 3. OS client mengirim pesan ke OS server 4. OS server memberikan pesan ke server stub 5. Server stub meng-unpack parameter-parameter untuk memanggil server 6. Server mengerjakan operasi, dan mengembalikan hasilnya ke server stub 7. Server stub mem-pack hasil tsb dan memanggil OS server 8. OS server mengirim pesan (hasil) ke OS client 9. OS client memberikan pesan tersebut ke client stub 10. Client stub meng-unpack hasil dan mengembalikan hasil tersebut ke client
  • 5.  Fitur dalam RPC - Batching Calls:Fitur Batching calls mengijinkan klien untuk mengirim message calls ke server dalam jumlah besar secara sequence ( berurutan ) - Broadcasting Call:Fitur Broadcasting mengijinkan klien untuk mengirimkan paket data kejaringan dan menunggu balasan dari network. FItur ini menggunakanprotokol yang berbasiskan paket data seperti UDP/IP sebagai mediumnya.Broadcast RPC membutuhkan layanan port mapper RPC untukmengimplementasikanfung sinyA - Callback ProcedureS:Fitur Callback Procedures mengijinkan server untuk bertindak sebagai - Menggunakan select SubrutiN:Fitur ini akan memeriksa deskripsi dari suatu file dan messages dalamantrian untuk melihat apakah mereka siap untuk dibaca (diterima) atauditulis (dikirim), atau mereka dalam kondisi ditahan sementara. Prosedurini mengijinkan server untuk menginterupsi suatu aktivitas, memeriksadatanya, dan kemudian melanjutkan proses aktivitas tersebu  Object Remote Meskipun teknologi RPC ini relatif sudah memberikan kenyamanan bagi developer, tapi perkembangan yang terjadi di bidang pemrograman berorientasi objek akhirnya menuntut kehadiran teknologi baru. Sederet teknologi akhirnya benar-benar muncul, antara lain;RMI (Remote Method Invocation),CORBA(Common Object Request Broker Architecture), dan SOAP (Simple Object Access Protocol). Contoh coding penggunaan RPC (Remote Procedure Call). $response = array( array( 'flerror' => array(FALSE, 'boolean'), 'message' => "Thanks for the ping!" ) 'struct'); return $this->xmlrpc->send_response($response);
  • 6. Simple Object Acces Protocol (SOAP). Teknologi SOAP dan Perangkat Mobile Salah satu kegunaan perkembangan teknologi informasi berbasis mobile adalah untuk memudahkan siapa saja dalammengakses informasi melalui perangkat mobile seperti handphone. Seperti contoh dalam bidang pendidikan para mahasiswa tidak perlu harus kekampus jika ingin melihat nilai ataupun informasi yang berhubungan dengan perkuliahan. Karena dengan menggunakan teknologi berbasis mobile kita dapat menggunakan perangkat dan konektivitas apapun untuk bekerja. Dengan demikian teknologi berbasis mobile inibisa menjadi solusi bagi para mahasiswa yang tinggal di lingkungan perkotaan yang penuh kemacetan. Begitu juga SOAP, yang didefinisikan sebagai Simple Object Access Protocol, yang merupakan spesifikasi protocol untuk bertukar informasi yang terstruktur dalam pelaksanaan Layanan Web di jaringan komputer. Extensible Markup Language (XML), SOAP dan Perangkat Mobile Hal ini bergantung pada Extensible Markup Language (XML) sebagai format pesan, dan biasanya bergantung pada protocol lain yang menjadi Layer Aplikasi terutamaRemote Procedure Call (RPC) dan HTTP untuk negosiasi dan transmisi pesan.SOAP dapat membentuk lapisan dasar dari stack protocol layanan web, pesan menyediakan kerangka dasar atas mana layanan web dapat dibangun. Protocolberbasis XML ini terdiri dari tiga bagian amplop yang mendefinisikan apa yang adadalam pesan dan bagaimana proses itu satu set aturan pengkodean untuk mengungkapkan kasus defined datatypes aplikasi, dan konvensi untuk mewakili panggilan prosedur dan tanggapan.
  • 7. SOAP dibangun dengan menggunakan protocol komunikasi HTTP. Karena HTTP didukung oleh semua browser dan server, maka SOAP dapat berkomunikasi dengan berbagai aplikasi meskipun terdapat perbedaan sistem operasi, teknologi, dan bahasa pemrogramannya, dikarenakan protocol ini memanfaatkan berbagai teknologi yang sudah ada sebelumnya dan sudah banyak digunakan. Misalnya untukprotocol transport, yang paling banyak digunakan adalah HTTP, walaupun dimungkinkan untuk menggunakan protocol transport lainnya. Sedangkan untuk format data atau message digunakan XML yang tidak diragukan lagi manfaat dan perannya di dalam pertukaran data. SOAP membentuk lapisan dasar dari tumpukan layanan Web, pesan menyediakan kerangka kerja dasar yang lebih abstrak lapisan bisa membangun. SOAP bekerja dengan mengirimkan pesan permintaan oleh klien ( simpul jaringan ) ke server node dan kembali mendapat pesan respon dari server dan pola ini biasanya disebut RPC (Remote Procedure Call ) yang merupakan pola yang paling umum digunakan dalamSOAP. Peran SOAP Dalam Teknologi Web Service Peran SOAP di dalam teknologi web service adalah sebagai protocol pemaketan untuk pesan (messages) yang digunakan secara bersama oleh aplikasi-aplikasi penggunanya. Spesifikasi yang digunakan tidak lebih seperti sebuah amplop biasaberbasis XML untuk informasi yang ditransfer, serta sekumpulan aturan bagi translasi aplikasi dan tipe-tipe data platform yang spesifik menjadi bentuk XML. Desain bentuk dari SOAP membuatnya cocok untuk berbagai pertukaran pesan pada aplikasi. SOAP adalah protocol untuk pertukaran informasi dengan desentralisasi dan terdistribusi. SOAP dibangun dengan menggunakan protocol komunikasi HTTP. Karena HTTP didukung oleh semua browser dan server, maka SOAP dapat berkomunikasi dengan berbagai aplikasi meskipun terdapat perbedaan sistem operasi, teknologi, dan bahasa pemrogramannya. Peran SOAP di dalam teknologi web service adalah sebagai protocol pemaketan untuk pesan-pesan (messages) yang digunakan secara bersama oleh aplikasi-aplikasi penggunanya. Spesifikasi yang digunakan tidak lebih seperti sebuah amplop biasa berbasis XML untuk informasi yang ditransfer, serta sekumpulan aturan bagi translasi aplikasi dan tipe-tipe data platform yang spesifik menjadi
  • 8. bentuk XML. Desain bentuk dari SOAPmembuatnya cocok untuk berbagai pertukaran pesan pada aplikasi. SOAP juga memiliki keuntungan:  Mudah digunakan – kadang  Kaku – cek tipe, mengikuti sebuah kontrak  Perlu tool pengembangan khusus Teknologi SOAP ( Simple Object Acces Protocol ) dan PHP SOAP juga merupakan kumpulan class-class PHP yang memungkinkan user untuk mengirim dan menerima pesan SOAP melalui protocol HTTP. Operasi-operasi pengiriman pesan SOAP dijalankan dengan melibatkan paramater nama operasi yang diinginkan melalui method call. Jika web service yang dituju menyediakan sebuah file WSDL(Web Service Description Language), maka class “soapclient” akan mengacu langsung pada URL file WSDL tersebut dan menggunakan class “wsdl” untuk mem-parsing file WSDL dan mengekstrak seluruh datanya. Class “wsdl” menyediakan method-method untuk mengekstrak data per operasi dan per binding. Class “soapclient” menggunakan data dari file WSDL untuk menerjemahkan parameter- parameternya sekaligus menyusun SOAP envelope ketika user mengeksekusi suatu pemanggilan service. Ketika pemanggilan ini dieksekusi, class“soapclient” menggunakan “soap_transport_http” untuk mengirim pesan SOAPrequest dan menerima pesan SOAP respons. Selanjutnya pesan SOAP respons yang diterima di parsing dengan menggunakan class “soap_parser”. Jika web service yang dituju menyediakan file WSDL, pemanggilan service dilakukan dengan mengeksekusi method call pada class “soapclient” dengan melibatkan parameter argumen yang disediakan oleh file WSDL. Dalam membangun sebuahsistem aplikasi berbasis web dengan teknologi SOAP, dibutuhkan dua komponen utama yaitu, server sebagai provider entity dan client sebagai requester entity.
  • 9. Contoh coding penggunaan SOAP (Simple Object Acces Protocol). Rancangan Script untuk Server. (server.php). <?php //panggil file soap require_once '../../nusoap/nusoap.php'; $ws_srv = new soap_server(); $ws_srv->register(ambilData); function tes($param){ $nama= $param['nama']; $alamat = $param['alamat']; $return_value[] =array('nama'=>$nama,'alamat'=>$alamat); return ($return_value);} function ambilData(){ mysql_connect('127.0.0.1','root',''); mysql_select_db('coba_wservice'); $sql = mysql_query('SELECT * FROM mahasiswa WHERE 1'); $return_data_count=mysql_num_rows($sql); //$return_data[]=array(); while ($row=mysql_fetch_array($sql)){ $return_data[]=array('nim'=>$row['nim'],'nama'=>$row['nama'], 'alamat'=>$row['alamat']); } $return['count']=$return_data_count; $return['data']=$return_data; return $return; } $HTTP_RAW_POST_DATA = isset ($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA:""; $ws_srv->service($HTTP_RAW_POST_DATA); ?> Rancangan Script untuk Client. (client.php). <?php require_once('../../nusoap/nusoap.php'); $client = new soapclient('http://127.0.0.1/mhs_webserv/server/'); //$param = array('nama'=>'Kabul Kurniawan','alamat'=>'Pekalongan'); $result = $client->call('ambilData'); $n=$result['count']; $data=$result['data']; echo '<table border=1>'; echo "<tr><th>Nim</th><th>Nama</th><th>Alamat</th></tr>"; for($i=0;$i<$n;$i++){ echo "<tr><td>".$data[$i]['nim']."</td><td>".$data[$i]['nama']. "</td><td>".$data[$i]['alamat']."</td></tr>";
  • 10. } echo "</table>"; print_r ($result['count']); echo'<br>'; print_r ($result['data']); ?> Setelah rancangan-rancangan tersebut dibuat, kita dapat langsung mengakses data mahasiswa melalui client.php, berikut hasilnya.. :) 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 XMLRPC 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.
  • 11. 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.
  • 12. Contoh coding penggunaan REST (Respresentational State Transfer).