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