TUGAS
PEMROGRAMAN III (RPC,SOAP,REST)

Disusun Oleh :

MUHAMMAD ARIF PRAYUGO
1100631003_MI/A

PROGRAM STUDY MANAJEMEN INFO...
Remote Procedure Call (RPC).
Remote Procedure Call (RPC) adalah sebuah metode yang memungkinkan kita untuk mengakses
sebua...
 Struktur Protokol Message RPC
-

Call Message
Dilakukan oleh klien, dimana meminta server untuk mengeksekusi suatu
prose...
Mengijinkan server untuk bertindak sebagai klien dan melakukan PRC callback ke proses
yang dijalankan klien.
4. Select Sub...
 Fitur dalam RPC
-

Batching Calls:Fitur Batching calls mengijinkan klien untuk mengirim message calls ke
server dalam ju...
Simple Object Acces Protocol (SOAP).
Teknologi SOAP dan Perangkat Mobile

Salah satu kegunaan perkembangan teknologi infor...
SOAP dibangun dengan menggunakan protocol komunikasi HTTP. Karena HTTP didukung oleh
semua browser dan server, maka SOAP d...
bentuk XML. Desain bentuk dari SOAPmembuatnya cocok untuk berbagai pertukaran pesan pada
aplikasi.
SOAP juga memiliki keun...
Contoh coding penggunaan SOAP (Simple Object Acces Protocol).
Rancangan Script untuk Server. (server.php).
<?php
//panggil...
}
echo "</table>";
print_r ($result['count']);
echo'<br>';
print_r ($result['data']);
?>

Setelah rancangan-rancangan ters...
REST (Representational State Transfer). Terminologi REST dikemukakan oleh Roy Fielding (salah
satu penulis spesifikasi HTT...
Contoh coding penggunaan REST (Respresentational State Transfer).
Upcoming SlideShare
Loading in …5
×

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

893 views
771 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
893
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
30
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

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

×