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

12
TUGAS PEMROGRAMAN III (RPC,SOAP,REST) Disusun Oleh : MUHAMMAD ARIF PRAYUGO 1100631003_MI/A PROGRAM STUDY MANAJEMEN INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS MUHAMMADIYAH JEMBER 2013

description

 

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

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

TUGAS

PEMROGRAMAN III (RPC,SOAP,REST)

Disusun Oleh :

MUHAMMAD ARIF PRAYUGO

1100631003_MI/A

PROGRAM STUDY MANAJEMEN INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS MUHAMMADIYAH JEMBER

2013

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

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.

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

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

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

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

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

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);

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

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.

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

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

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

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.

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

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>";

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

}

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.

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

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 12: Tugas pemrograman 3 (rpc,soap,rest) 1100631003 muhammad arif prayugo

Contoh coding penggunaan REST (Respresentational State Transfer).