SlideShare a Scribd company logo
1 of 8
Remote Procedure Call (RPC)
Remote Procedure Call (RPC) adalahsebuahmetode yang
memungkinkankitauntukmengaksessebuahprosedur yang berada di komputer lain.
Untukdapatmelakukaninisebuah serverharusmenyediakanlayanan remote
procedure.Pendekatan yang dilakuanadalahsebuah server membuka socket, lalumenunggu
client yang memintaprosedur yang disediakanoleh server. Bila client
tidaktahuharuSmenghubungi port yang mana, client bisa me-request kepadasebuah
matchmaker padasebuah RPC port yang tetap. Matchmaker akanmemberikan portapa yang
digunakanolehprosedur yang diminta client.
RPC masihmenggunakancaraprimitifdalampemrograman, yaitumenggunakanparadigma
procedural programming. Hal itumembuatkitasulitketikamenyediakanbanyak remote
procedure. RPC menggunakan socketuntukberkomunikasidengan proses lainnya.
Padasistemseperti SUN, RPC secara default sudahter-install kedalamsistemnya, biasanyaRPC
inidigunakanuntukadministrasisistem. Sehinggaseorang administrator
jaringandapatmengaksessistemnyadanmengelolasistemnyadarimanasaja,
selamasistemnyaterhubungkejaringan.
Kelebihan RPC
 Relatifmudahdigunakan :
Pemanggilan remote procedure tidakjauhberbedadibandingkanpemanggilan procedure.
Sehinggapemrogramdapatberkonsentrasipada software logic, tidakperlumemikirkanlow level
details seperti socket, marshalling &unmarshalling.
 Robust (Sempurna):
Sejakth 1980-an RPC telahbanyakdigunakandlmpengembangan mission- critical application
ygmemerlukanscalability, fault tolerance, & reliability.
Kekurangan RPC
ƒ Tidakfleksibelterhadapperubahan:
Static relationship between client & server at run-time.
Berdasarkanprosedural/structured programming yang sudahketinggalanjamandibandingkan
OOP.
StrukturProtokol Message RPC
Call Message
Dilakukanolehklien, dimanameminta server untukmengeksekusisuatuprosedur.
Terdapatnilai-nilai unsigned integer yang digunakanuntukmengidentifikasiprosedurremote yang
diminta:
1. Nomor Program
2. NomorVersidari Program
3. NomorProsedur
Reply Message
Dikirimkanoleh server jaringan, bervariasitergantungapakah call messages yang
dimintaklienditerimaatauditolak. Mengandunginformasi:
1. RPM mengeksekusi call message dengansukses
2. Implementasi remote tidaksesuaidenganprotokol yang digunakan (versi yang
lebihtinggiataulebihrendahditolak)
3.Program remote tidaktersediapadasistem remote
4. Program remote tidakmendukungversi yang dimintaklien
5. Nomorprosedur yang dimintatidakada
Fiturdalam RPC
1. Batching Calls
Mengijinkanklienuntukmengirim message calls ke server dalamjumlahbesarsecaraberurutan.
2. Broadcasting Calls
Menijinkanklienuntukmengirimkanpaket data kejaringandanmenunggubalasandari network.
3. Callback Procedures
Mengijinkan server untukbertindaksebagaikliendanmelakukan PRC callback ke proses yang
dijalankanklien.
4. Select Subrutin
Memeriksadeskripsisuatu file dan messages
dalamantrianuntukmelihatapakahsiapdibacaatauditulis,atauditahan. (mengijinkan server
untukmenginterupsisuatuaktivitas.
PrinsipRPC dalam program Client-Server
Skema RPC inidilakukanjugapada proses-proses yang running di komputerberlainan
ƒSebelummekanisme RPC digunakan, data harus di-packaging kedalamformattransimisi.
Langkahinidinamakan marshalling
ƒProxybertanggungjawabuntuk marshalling data, kemudianmengirimkan data
danmemintainstansdarikomponen (remote)
ƒStubmenerima request, unmarshall data, danmemanggil method yang diminta. Kemudian
proses mengembalikannilai yang diinginkan .
Langkah-langkahdalam RPC
1. Prosedur client memanggil client stub
2. Client stub membuatpesandanmemanggil OS client
3. OS client mengirimpesanke OS server
4. OS server memberikanpesanke server stub
5. Server stub meng-unpack parameter-parameter untukmemanggil server
6. Server mengerjakanoperasi, danmengembalikanhasilnyake server stub
7. Server stub mem-pack hasiltsbdanmemanggil OS server
8. OS server mengirimpesan (hasil) ke OS client
9. OS client memberikanpesantersebutke client stub
10. Client stub meng-unpack hasildanmengembalikanhasiltersebutke
client
Fiturdalam RPC
Batching Calls:Fitur Batching calls mengijinkanklienuntukmengirim message calls ke server
dalamjumlahbesarsecara sequence ( berurutan )
Broadcasting Call:Fitur Broadcasting mengijinkanklienuntukmengirimkanpaket data
kejaringandanmenunggubalasandari network. FIturinimenggunakanprotokol yang
berbasiskanpaketdata seperti UDP/IP sebagaimediumnya.Broadcast RPC membutuhkanlayanan
port mapper RPC untukmengimplementasikanfungsinyA
Callback ProcedureS:Fitur Callback Procedures mengijinkan server untukbertindaksebagai
Menggunakan select SubrutiN:Fituriniakanmemeriksadeskripsidarisuatu file dan messages
dalamantrianuntukmelihatapakahmerekasiapuntukdibaca (diterima) atauditulis (dikirim),
ataumerekadalamkondisiditahansementara. Prosedurinimengijinkan server
untukmenginterupsisuatuaktivitas, memeriksadatanya, dankemudianmelanjutkan proses
aktivitastersebut.
Object Remote
Meskipunteknologi RPC inirelatifsudahmemberikankenyamananbagi developer,
tapiperkembangan yang terjadi di
bidangpemrogramanberorientasiobjekakhirnyamenuntutkehadiranteknologibaru.
Sederetteknologiakhirnyabenar-benarmuncul, antaralain;RMI (Remote Method
Invocation),CORBA(Common Object Request Broker Architecture), dan SOAP (Simple Object
Access Protocol).

Contoh Source Code Sederhana Program RPC
Menggunakan Array asosiatif Dalam Parameter Request.
Jika Anda ingin menggunakan array asosiatif dalam parameter metode Anda, Anda
akanperlu menggunakan struct datatype:
Simple Object Access Protocol (SOAP)
SOAP adalahsingkatandari Simple Object Access Protocol,
merupakansebuahprotokolkomunikasi client server yang mengirimdanmenerimainformasi "di
atas HTTP". Data yang dikirimdanditerimadalam format XML. SOAP
hampirsamadenganprotokol XMLRP, hanyasaja SOAP lebihcocokdigunakanuntuk data kompleks
yang dikirimantar client-server.
Secarakonseptual SOAP dapatdianggapsebagai DCOM versi XML. SOAP merupakanmekanisme
lain yang memungkinkanpenggunaan remote procedure call. SOAP bersifatnetral platform,
netralbahasadantidakbergantungpadasuatuobjek model. Sehingga SOAP-enabled distributed
application dapatmenjangkauberagam operating sistem, dimanaterdiridariobjek yang
berasaldari vendor yang berbeda, ditulispadabahasa yang berbeda, dandidasarkanpadaobjek
model yang berbeda.
SOAP menjadisangatmudahditerimaolehberbagaipihak – terutamaolehberbagai vendor TI –
dikarenakanprotokolinimemanfaatkanberbagaiteknologi yang
sudahadasebelumnyadansudahbanyakdigunakan. Misalnyauntukprotokol transport, yang
paling banyakdigunakanadalah HTTP, walaupundimungkinkanuntukmenggunakanprotokol
transport lainnya. Sedangkanuntuk format data atau message digunakan XML yang
tidakdiragukanlagimanfaatdanperannya di dalampertukaran data. Dengandemikian,
tidaklahterlalumengherankanbilakemudian SOAP
dianggapsebagaisolusipenyelamatuntukmengatasiberbagaimasalah yang dihadapiolehteknologi
– teknologipendahulunya.
Pesan SOAP berbentuksepertisebuah envelope yang berisi
header (optional) dan body (required). Header
berisiblokinformasi yang
berhubungandenganbagaimanapesantersebutdiproses.
Hal inimeliputipe-routingandan delivery setting,
authentication atau authorization assertions, and
transaction contexts. Body berisipesansebenarnya yang
dikirimdandiproses. Semua yang
dapatditampilkandengansintaks XML
dapatdimasukkandalampesan body.
Setiapelemen Envelope harusberisitepatsatuelemen Body.
Elemen Body dapatberisisebanyakmungkin child nodes
yang diperlukan. Isi darielemen Body adalahpesan. Elemen Body
ditentukandalamsuatucaradimanadapatberisi valid danwellformed XML yang
telahdibatasiolehsuatu namespace (qualified).
Jikasebuah Envelope berisielemen Header, harusberisitidaklebihdarisatu, danharustampakpada
first child dari Envelope, sebelumelemen Body. Header dapatberisi valid, well-formed,
dandibatasidengan namespace XML dimanahendakdimasukkanolehpenciptapesan SOAP.
Setiapelemen yang beradadalam Header disebutblok header. Tujuandariblok header
adalahuntukmemberitahukaninfomasi yang berhubungandengan pemrosesanpesan SOAP.
Berikutgambarposisi SOAP dalamaplikasidancontohstrukturpesanSOAP :

SOAP Anatomi Call

Contohstrukturpesan SOAP

Aturan SOAP
Ada beberapaaturan yang diberlakukanpada SOAP, yakni :
- SOAP Envelope menggunakan namespace
- Default namespace untuk SOAP encoding dan data types
- SOAP’s Syntax Rules :
- SOAP harusdibuatdenganmenggunakansintaks XML
- SOAP harusmenggunakan SOAP Envelope namespace
- SOAP harusmenggunakan SOAP Encoding namespace
- SOAP tidakbolehmengandung XML Processing Instruction
Kelebihan&Kekurangan SOAP
Adapunkelebihan SOAP dapatdiuraikansebagaiberikut :
- Menggunakan HTTP yang telahdigunakansecaraluas
- Bersifatfleksibel, mudahdikembangkan, karenaberbasis XML
- Data in string message
Selainkelebihan, SOAP jugamemilikibeberapakekurangan, diantaranya :
- Parsing paket SOAP danpemetaannyakeobyekmengurangikinerja
- Tidakdapatmenerapkankeamanankhusus, karenamerupakan “wire protocol” yang
bergantungpada HTTP
Pemrograman SOAP Client-Server
Dalammembangunsebuahsistemaplikasiberbasis web service,
dibutuhkanduakomponenutamayaitu, server sebagai provider entity dan client sebagai
requester entity .Sebagaicontoh, di bawahiniterdapatdua listing program padasisi server dansisi
client.
Contoh Program sederhana menggunakan SOAP
Database Engine yang kita pakai adalah MySQL. Struktur Database/Table : Database Name = mhs_webserv, Table
Name = mahasiswa;
a. Buat Database “mhs_webserv”
create database mhs_webserv;
b. Buat Tabel “mahasiswa” :
CREATE TABLE IF NOT EXISTS `mahasiswa` (
`nim` varchar(10) NOT NULL,
`nama` varchar(50) NOT NULL,
`alamat` text NOT NULL,
PRIMARY KEY (`nim`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

c. Isi data mahasiswa.
INSERT INTO `mahasiswa` (`nim`, `nama`, `alamat`) VALUES
('001', 'Kabul', 'Pekalongan'),
('002', 'Ridwan', 'Semarang');
3. 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);
?>
4. 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.. :)

Untuk sekedar mencoba-coba, Anda juga bisa menjalankan script client.php di atas dengan
memanfaatkan NuSOAP webservice yang sudah saya sediakan di rosihanari.net, yaitu Anda
cukup mengubah.

dalam script client.php menjadi

kemudian jalankan client.php di komputer Anda sendiri, dan tidak perlu membuat script
server.php.
Representational 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 bias 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. Dalam pengaplikasiannya, REST lebih banyak digunakan untuk
web serviceyang berorientasi pada resource. Maksud orientasi pada resource adalah orientasi
yang menyediakan resource-resource sebagai layanannya dan bukankumpulan-kumpulan dari
aktifitas yang mengolah resource itu.Alasan mengapa REST tidak digunakan dalam skripsi ini
karena orientasi pada resourcenya itu, sedangkan aplikasi event calendar membutuhkan
pemanggilan metode yang bisa dikerjakan terhadap kumpulan resource event. Selain itu,
karena standarnya yang kurang sehingga tidak begitu cocok diterapkan dalam aplikasi yang
membutuhkan kerjasama antar aplikasi lain, dimana standar yang baik akan sangat berguna
karena berbicara dalam satu bahasa yang sama. Beberapa contoh web service yang
menggunakan REST adalah: Flickr API(Application ProgramInterface), YouTube

More Related Content

What's hot

Cara Installasi & Konfigurasi dan Pengertian FTP, NTP, dan Remote Access di L...
Cara Installasi & Konfigurasi dan Pengertian FTP, NTP, dan Remote Access di L...Cara Installasi & Konfigurasi dan Pengertian FTP, NTP, dan Remote Access di L...
Cara Installasi & Konfigurasi dan Pengertian FTP, NTP, dan Remote Access di L...Nur Rahma Aziza
 
Langkah mudah memahami pembuatan dns server ubuntu 12.04
Langkah mudah memahami pembuatan dns server ubuntu 12.04Langkah mudah memahami pembuatan dns server ubuntu 12.04
Langkah mudah memahami pembuatan dns server ubuntu 12.04Riz Al-Atsary (Abu Uwais)
 
Building Mail Server in FreeBSD
Building Mail Server in FreeBSDBuilding Mail Server in FreeBSD
Building Mail Server in FreeBSDHendrik Moch Yusro
 
Cara install-server-centos
Cara install-server-centosCara install-server-centos
Cara install-server-centosReno Lee
 
Membuat Ftp server menggunakan Debian Server 7.8
Membuat Ftp server menggunakan Debian Server 7.8Membuat Ftp server menggunakan Debian Server 7.8
Membuat Ftp server menggunakan Debian Server 7.8AdityaBintangPradana
 
Modul Network Troubleshooting
Modul Network TroubleshootingModul Network Troubleshooting
Modul Network Troubleshootingsinta chen
 
Laporan resmi ftp , sftp , ftps
Laporan resmi ftp , sftp , ftpsLaporan resmi ftp , sftp , ftps
Laporan resmi ftp , sftp , ftpsiintanamalia
 
L3 dhcp fadlysatriyagunawan
L3 dhcp fadlysatriyagunawanL3 dhcp fadlysatriyagunawan
L3 dhcp fadlysatriyagunawanSMKN 1 Cimahi
 
2.1 lab-instalasi dan konfigurasi ftp
2.1 lab-instalasi dan konfigurasi ftp2.1 lab-instalasi dan konfigurasi ftp
2.1 lab-instalasi dan konfigurasi ftpwayan abyong
 
Tabel port protokol jaringan tcp
Tabel port protokol jaringan tcpTabel port protokol jaringan tcp
Tabel port protokol jaringan tcpThesyech Daroy
 
cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5
cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5
cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5stephan EL'wiin Shaarawy
 
1.1 lab-instalasi dan konfigurasi ssh
1.1 lab-instalasi dan konfigurasi ssh1.1 lab-instalasi dan konfigurasi ssh
1.1 lab-instalasi dan konfigurasi sshwayan abyong
 
Materi Training Basic Linux - Debian 7
Materi Training Basic Linux - Debian 7Materi Training Basic Linux - Debian 7
Materi Training Basic Linux - Debian 7Neno Sulistiyawan
 
Tugaas pemograman 3 1100631034
Tugaas pemograman 3   1100631034Tugaas pemograman 3   1100631034
Tugaas pemograman 3 1100631034ariunmuh
 
Konfigurasi layanan server
Konfigurasi layanan serverKonfigurasi layanan server
Konfigurasi layanan serverejojambie
 

What's hot (19)

Cara Installasi & Konfigurasi dan Pengertian FTP, NTP, dan Remote Access di L...
Cara Installasi & Konfigurasi dan Pengertian FTP, NTP, dan Remote Access di L...Cara Installasi & Konfigurasi dan Pengertian FTP, NTP, dan Remote Access di L...
Cara Installasi & Konfigurasi dan Pengertian FTP, NTP, dan Remote Access di L...
 
Langkah mudah memahami pembuatan dns server ubuntu 12.04
Langkah mudah memahami pembuatan dns server ubuntu 12.04Langkah mudah memahami pembuatan dns server ubuntu 12.04
Langkah mudah memahami pembuatan dns server ubuntu 12.04
 
Mail server
Mail serverMail server
Mail server
 
Building Mail Server in FreeBSD
Building Mail Server in FreeBSDBuilding Mail Server in FreeBSD
Building Mail Server in FreeBSD
 
Cara install-server-centos
Cara install-server-centosCara install-server-centos
Cara install-server-centos
 
Membuat Ftp server menggunakan Debian Server 7.8
Membuat Ftp server menggunakan Debian Server 7.8Membuat Ftp server menggunakan Debian Server 7.8
Membuat Ftp server menggunakan Debian Server 7.8
 
Modul Network Troubleshooting
Modul Network TroubleshootingModul Network Troubleshooting
Modul Network Troubleshooting
 
Laporan resmi ftp , sftp , ftps
Laporan resmi ftp , sftp , ftpsLaporan resmi ftp , sftp , ftps
Laporan resmi ftp , sftp , ftps
 
Qmail P to V Migration
Qmail P to V MigrationQmail P to V Migration
Qmail P to V Migration
 
L3 dhcp fadlysatriyagunawan
L3 dhcp fadlysatriyagunawanL3 dhcp fadlysatriyagunawan
L3 dhcp fadlysatriyagunawan
 
Jeni Intro2 Bab10 Jaringan
Jeni Intro2 Bab10 JaringanJeni Intro2 Bab10 Jaringan
Jeni Intro2 Bab10 Jaringan
 
Konfigurasi FTP Server Debian OS
Konfigurasi FTP Server Debian OSKonfigurasi FTP Server Debian OS
Konfigurasi FTP Server Debian OS
 
2.1 lab-instalasi dan konfigurasi ftp
2.1 lab-instalasi dan konfigurasi ftp2.1 lab-instalasi dan konfigurasi ftp
2.1 lab-instalasi dan konfigurasi ftp
 
Tabel port protokol jaringan tcp
Tabel port protokol jaringan tcpTabel port protokol jaringan tcp
Tabel port protokol jaringan tcp
 
cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5
cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5
cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5
 
1.1 lab-instalasi dan konfigurasi ssh
1.1 lab-instalasi dan konfigurasi ssh1.1 lab-instalasi dan konfigurasi ssh
1.1 lab-instalasi dan konfigurasi ssh
 
Materi Training Basic Linux - Debian 7
Materi Training Basic Linux - Debian 7Materi Training Basic Linux - Debian 7
Materi Training Basic Linux - Debian 7
 
Tugaas pemograman 3 1100631034
Tugaas pemograman 3   1100631034Tugaas pemograman 3   1100631034
Tugaas pemograman 3 1100631034
 
Konfigurasi layanan server
Konfigurasi layanan serverKonfigurasi layanan server
Konfigurasi layanan server
 

Viewers also liked

Cambodia forest reference level
Cambodia forest reference levelCambodia forest reference level
Cambodia forest reference levelCIFOR-ICRAF
 
Claves de la semana del 9 al 15 de noviembre
Claves de la semana del 9 al 15 de noviembreClaves de la semana del 9 al 15 de noviembre
Claves de la semana del 9 al 15 de noviembreCesce
 
Presentation by CZH
Presentation by CZH Presentation by CZH
Presentation by CZH zhaohui cen
 
DRC forest reference emission level methodological framework
DRC forest reference emission level methodological frameworkDRC forest reference emission level methodological framework
DRC forest reference emission level methodological frameworkCIFOR-ICRAF
 
José Ángel Agejas reflexiona en Expansión sobre ¿Qué pasaría si no hubiera Na...
José Ángel Agejas reflexiona en Expansión sobre ¿Qué pasaría si no hubiera Na...José Ángel Agejas reflexiona en Expansión sobre ¿Qué pasaría si no hubiera Na...
José Ángel Agejas reflexiona en Expansión sobre ¿Qué pasaría si no hubiera Na...Ana Arenas Sánchez
 
Ukraine laws in english 391
Ukraine laws in english 391Ukraine laws in english 391
Ukraine laws in english 391Jude Elliott
 

Viewers also liked (9)

Cambodia forest reference level
Cambodia forest reference levelCambodia forest reference level
Cambodia forest reference level
 
Claves de la semana del 9 al 15 de noviembre
Claves de la semana del 9 al 15 de noviembreClaves de la semana del 9 al 15 de noviembre
Claves de la semana del 9 al 15 de noviembre
 
Muzaffar Shaikh - MBA
Muzaffar Shaikh - MBA Muzaffar Shaikh - MBA
Muzaffar Shaikh - MBA
 
13 nxw nxm 1
13 nxw nxm 113 nxw nxm 1
13 nxw nxm 1
 
o matheusinho do mundo
o matheusinho do mundoo matheusinho do mundo
o matheusinho do mundo
 
Presentation by CZH
Presentation by CZH Presentation by CZH
Presentation by CZH
 
DRC forest reference emission level methodological framework
DRC forest reference emission level methodological frameworkDRC forest reference emission level methodological framework
DRC forest reference emission level methodological framework
 
José Ángel Agejas reflexiona en Expansión sobre ¿Qué pasaría si no hubiera Na...
José Ángel Agejas reflexiona en Expansión sobre ¿Qué pasaría si no hubiera Na...José Ángel Agejas reflexiona en Expansión sobre ¿Qué pasaría si no hubiera Na...
José Ángel Agejas reflexiona en Expansión sobre ¿Qué pasaría si no hubiera Na...
 
Ukraine laws in english 391
Ukraine laws in english 391Ukraine laws in english 391
Ukraine laws in english 391
 

Similar to RPC DAN PROTOKOL KOMUNIKASINYA

Tugas pemrograman 3 (rpc,soap,rest) 1100631003 muhammad arif prayugo
Tugas pemrograman 3 (rpc,soap,rest) 1100631003 muhammad arif prayugoTugas pemrograman 3 (rpc,soap,rest) 1100631003 muhammad arif prayugo
Tugas pemrograman 3 (rpc,soap,rest) 1100631003 muhammad arif prayugoArif Prayugo
 
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
 
Tugas pemogrman 3_tentang RPC,SOAP DAN REST
Tugas pemogrman 3_tentang RPC,SOAP DAN RESTTugas pemogrman 3_tentang RPC,SOAP DAN REST
Tugas pemogrman 3_tentang RPC,SOAP DAN RESTWawan Kurniawan
 
Tugas_pemrograman3_1100631026_Helmi_MH_
Tugas_pemrograman3_1100631026_Helmi_MH_Tugas_pemrograman3_1100631026_Helmi_MH_
Tugas_pemrograman3_1100631026_Helmi_MH_Helmi Mahfudhatul
 
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 pemrograman iii rpc soap rest
Tugas pemrograman iii rpc soap restTugas pemrograman iii rpc soap rest
Tugas pemrograman iii rpc soap restAsfiyuli Wulandari
 
Warda 1100631042
Warda 1100631042Warda 1100631042
Warda 1100631042wardandha
 
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
 
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
 
Esai rpc, soap, dan rest
Esai rpc, soap, dan restEsai rpc, soap, dan rest
Esai rpc, soap, dan restUlil Uliland
 
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
 
Ristanto 1100631048
Ristanto 1100631048Ristanto 1100631048
Ristanto 1100631048Ristanto Dp
 
Socket Programming TCP Echo Client Server (Python)
Socket Programming  TCP Echo Client Server  (Python)Socket Programming  TCP Echo Client Server  (Python)
Socket Programming TCP Echo Client Server (Python)Lusiana Diyan
 
Tugas pemrograman3 rpc,soap,rest_1100631020
Tugas pemrograman3 rpc,soap,rest_1100631020Tugas pemrograman3 rpc,soap,rest_1100631020
Tugas pemrograman3 rpc,soap,rest_1100631020Lucky AnugerahP
 
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
 

Similar to RPC DAN PROTOKOL KOMUNIKASINYA (20)

Tugas pemrograman 3 (rpc,soap,rest) 1100631003 muhammad arif prayugo
Tugas pemrograman 3 (rpc,soap,rest) 1100631003 muhammad arif prayugoTugas pemrograman 3 (rpc,soap,rest) 1100631003 muhammad arif prayugo
Tugas pemrograman 3 (rpc,soap,rest) 1100631003 muhammad arif prayugo
 
RPC.SOAP.REST_1100631021
RPC.SOAP.REST_1100631021RPC.SOAP.REST_1100631021
RPC.SOAP.REST_1100631021
 
Sister 04 - remote procedure call (rpc)
Sister   04 - remote procedure call (rpc)Sister   04 - remote procedure call (rpc)
Sister 04 - remote procedure call (rpc)
 
Tugas pemogrman 3_tentang RPC,SOAP DAN REST
Tugas pemogrman 3_tentang RPC,SOAP DAN RESTTugas pemogrman 3_tentang RPC,SOAP DAN REST
Tugas pemogrman 3_tentang RPC,SOAP DAN REST
 
Tugas_pemrograman3_1100631026_Helmi_MH_
Tugas_pemrograman3_1100631026_Helmi_MH_Tugas_pemrograman3_1100631026_Helmi_MH_
Tugas_pemrograman3_1100631026_Helmi_MH_
 
Rpc, soap,rest
Rpc, soap,restRpc, soap,rest
Rpc, soap,rest
 
RCP, SOAP, REST
RCP, SOAP, RESTRCP, SOAP, REST
RCP, SOAP, REST
 
Rifqi hanifmaulana 1100631036_rpc_soap_rest
Rifqi hanifmaulana 1100631036_rpc_soap_restRifqi hanifmaulana 1100631036_rpc_soap_rest
Rifqi hanifmaulana 1100631036_rpc_soap_rest
 
Tugas pemrograman iii rpc soap rest
Tugas pemrograman iii rpc soap restTugas pemrograman iii rpc soap rest
Tugas pemrograman iii rpc soap rest
 
Tugas 1100631004 pemrog3
Tugas 1100631004 pemrog3Tugas 1100631004 pemrog3
Tugas 1100631004 pemrog3
 
Warda 1100631042
Warda 1100631042Warda 1100631042
Warda 1100631042
 
Tugas pemr3 1100631014 rpc,soap,rest
Tugas pemr3 1100631014 rpc,soap,restTugas pemr3 1100631014 rpc,soap,rest
Tugas pemr3 1100631014 rpc,soap,rest
 
Tugas pemr3 1100631014 rpc,soap,rest
Tugas pemr3 1100631014 rpc,soap,restTugas pemr3 1100631014 rpc,soap,rest
Tugas pemr3 1100631014 rpc,soap,rest
 
Esai rpc, soap, dan rest
Esai rpc, soap, dan restEsai rpc, soap, dan rest
Esai rpc, soap, dan rest
 
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
 
Soap
SoapSoap
Soap
 
Ristanto 1100631048
Ristanto 1100631048Ristanto 1100631048
Ristanto 1100631048
 
Socket Programming TCP Echo Client Server (Python)
Socket Programming  TCP Echo Client Server  (Python)Socket Programming  TCP Echo Client Server  (Python)
Socket Programming TCP Echo Client Server (Python)
 
Tugas pemrograman3 rpc,soap,rest_1100631020
Tugas pemrograman3 rpc,soap,rest_1100631020Tugas pemrograman3 rpc,soap,rest_1100631020
Tugas pemrograman3 rpc,soap,rest_1100631020
 
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)
 

RPC DAN PROTOKOL KOMUNIKASINYA

  • 1. Remote Procedure Call (RPC) Remote Procedure Call (RPC) adalahsebuahmetode yang memungkinkankitauntukmengaksessebuahprosedur yang berada di komputer lain. Untukdapatmelakukaninisebuah serverharusmenyediakanlayanan remote procedure.Pendekatan yang dilakuanadalahsebuah server membuka socket, lalumenunggu client yang memintaprosedur yang disediakanoleh server. Bila client tidaktahuharuSmenghubungi port yang mana, client bisa me-request kepadasebuah matchmaker padasebuah RPC port yang tetap. Matchmaker akanmemberikan portapa yang digunakanolehprosedur yang diminta client. RPC masihmenggunakancaraprimitifdalampemrograman, yaitumenggunakanparadigma procedural programming. Hal itumembuatkitasulitketikamenyediakanbanyak remote procedure. RPC menggunakan socketuntukberkomunikasidengan proses lainnya. Padasistemseperti SUN, RPC secara default sudahter-install kedalamsistemnya, biasanyaRPC inidigunakanuntukadministrasisistem. Sehinggaseorang administrator jaringandapatmengaksessistemnyadanmengelolasistemnyadarimanasaja, selamasistemnyaterhubungkejaringan. Kelebihan RPC  Relatifmudahdigunakan : Pemanggilan remote procedure tidakjauhberbedadibandingkanpemanggilan procedure. Sehinggapemrogramdapatberkonsentrasipada software logic, tidakperlumemikirkanlow level details seperti socket, marshalling &unmarshalling.  Robust (Sempurna): Sejakth 1980-an RPC telahbanyakdigunakandlmpengembangan mission- critical application ygmemerlukanscalability, fault tolerance, & reliability. Kekurangan RPC ƒ Tidakfleksibelterhadapperubahan: Static relationship between client & server at run-time. Berdasarkanprosedural/structured programming yang sudahketinggalanjamandibandingkan OOP. StrukturProtokol Message RPC Call Message Dilakukanolehklien, dimanameminta server untukmengeksekusisuatuprosedur. Terdapatnilai-nilai unsigned integer yang digunakanuntukmengidentifikasiprosedurremote yang diminta: 1. Nomor Program 2. NomorVersidari Program 3. NomorProsedur
  • 2. Reply Message Dikirimkanoleh server jaringan, bervariasitergantungapakah call messages yang dimintaklienditerimaatauditolak. Mengandunginformasi: 1. RPM mengeksekusi call message dengansukses 2. Implementasi remote tidaksesuaidenganprotokol yang digunakan (versi yang lebihtinggiataulebihrendahditolak) 3.Program remote tidaktersediapadasistem remote 4. Program remote tidakmendukungversi yang dimintaklien 5. Nomorprosedur yang dimintatidakada Fiturdalam RPC 1. Batching Calls Mengijinkanklienuntukmengirim message calls ke server dalamjumlahbesarsecaraberurutan. 2. Broadcasting Calls Menijinkanklienuntukmengirimkanpaket data kejaringandanmenunggubalasandari network. 3. Callback Procedures Mengijinkan server untukbertindaksebagaikliendanmelakukan PRC callback ke proses yang dijalankanklien. 4. Select Subrutin Memeriksadeskripsisuatu file dan messages dalamantrianuntukmelihatapakahsiapdibacaatauditulis,atauditahan. (mengijinkan server untukmenginterupsisuatuaktivitas. PrinsipRPC dalam program Client-Server Skema RPC inidilakukanjugapada proses-proses yang running di komputerberlainan ƒSebelummekanisme RPC digunakan, data harus di-packaging kedalamformattransimisi. Langkahinidinamakan marshalling ƒProxybertanggungjawabuntuk marshalling data, kemudianmengirimkan data danmemintainstansdarikomponen (remote) ƒStubmenerima request, unmarshall data, danmemanggil method yang diminta. Kemudian proses mengembalikannilai yang diinginkan . Langkah-langkahdalam RPC 1. Prosedur client memanggil client stub 2. Client stub membuatpesandanmemanggil OS client 3. OS client mengirimpesanke OS server 4. OS server memberikanpesanke server stub 5. Server stub meng-unpack parameter-parameter untukmemanggil server 6. Server mengerjakanoperasi, danmengembalikanhasilnyake server stub 7. Server stub mem-pack hasiltsbdanmemanggil OS server 8. OS server mengirimpesan (hasil) ke OS client 9. OS client memberikanpesantersebutke client stub 10. Client stub meng-unpack hasildanmengembalikanhasiltersebutke client Fiturdalam RPC
  • 3. Batching Calls:Fitur Batching calls mengijinkanklienuntukmengirim message calls ke server dalamjumlahbesarsecara sequence ( berurutan ) Broadcasting Call:Fitur Broadcasting mengijinkanklienuntukmengirimkanpaket data kejaringandanmenunggubalasandari network. FIturinimenggunakanprotokol yang berbasiskanpaketdata seperti UDP/IP sebagaimediumnya.Broadcast RPC membutuhkanlayanan port mapper RPC untukmengimplementasikanfungsinyA Callback ProcedureS:Fitur Callback Procedures mengijinkan server untukbertindaksebagai Menggunakan select SubrutiN:Fituriniakanmemeriksadeskripsidarisuatu file dan messages dalamantrianuntukmelihatapakahmerekasiapuntukdibaca (diterima) atauditulis (dikirim), ataumerekadalamkondisiditahansementara. Prosedurinimengijinkan server untukmenginterupsisuatuaktivitas, memeriksadatanya, dankemudianmelanjutkan proses aktivitastersebut. Object Remote Meskipunteknologi RPC inirelatifsudahmemberikankenyamananbagi developer, tapiperkembangan yang terjadi di bidangpemrogramanberorientasiobjekakhirnyamenuntutkehadiranteknologibaru. Sederetteknologiakhirnyabenar-benarmuncul, antaralain;RMI (Remote Method Invocation),CORBA(Common Object Request Broker Architecture), dan SOAP (Simple Object Access Protocol). Contoh Source Code Sederhana Program RPC Menggunakan Array asosiatif Dalam Parameter Request. Jika Anda ingin menggunakan array asosiatif dalam parameter metode Anda, Anda akanperlu menggunakan struct datatype:
  • 4. Simple Object Access Protocol (SOAP) SOAP adalahsingkatandari Simple Object Access Protocol, merupakansebuahprotokolkomunikasi client server yang mengirimdanmenerimainformasi "di atas HTTP". Data yang dikirimdanditerimadalam format XML. SOAP hampirsamadenganprotokol XMLRP, hanyasaja SOAP lebihcocokdigunakanuntuk data kompleks yang dikirimantar client-server. Secarakonseptual SOAP dapatdianggapsebagai DCOM versi XML. SOAP merupakanmekanisme lain yang memungkinkanpenggunaan remote procedure call. SOAP bersifatnetral platform, netralbahasadantidakbergantungpadasuatuobjek model. Sehingga SOAP-enabled distributed application dapatmenjangkauberagam operating sistem, dimanaterdiridariobjek yang berasaldari vendor yang berbeda, ditulispadabahasa yang berbeda, dandidasarkanpadaobjek model yang berbeda. SOAP menjadisangatmudahditerimaolehberbagaipihak – terutamaolehberbagai vendor TI – dikarenakanprotokolinimemanfaatkanberbagaiteknologi yang sudahadasebelumnyadansudahbanyakdigunakan. Misalnyauntukprotokol transport, yang paling banyakdigunakanadalah HTTP, walaupundimungkinkanuntukmenggunakanprotokol transport lainnya. Sedangkanuntuk format data atau message digunakan XML yang tidakdiragukanlagimanfaatdanperannya di dalampertukaran data. Dengandemikian, tidaklahterlalumengherankanbilakemudian SOAP dianggapsebagaisolusipenyelamatuntukmengatasiberbagaimasalah yang dihadapiolehteknologi – teknologipendahulunya. Pesan SOAP berbentuksepertisebuah envelope yang berisi header (optional) dan body (required). Header berisiblokinformasi yang berhubungandenganbagaimanapesantersebutdiproses. Hal inimeliputipe-routingandan delivery setting, authentication atau authorization assertions, and transaction contexts. Body berisipesansebenarnya yang dikirimdandiproses. Semua yang dapatditampilkandengansintaks XML dapatdimasukkandalampesan body. Setiapelemen Envelope harusberisitepatsatuelemen Body. Elemen Body dapatberisisebanyakmungkin child nodes yang diperlukan. Isi darielemen Body adalahpesan. Elemen Body ditentukandalamsuatucaradimanadapatberisi valid danwellformed XML yang telahdibatasiolehsuatu namespace (qualified). Jikasebuah Envelope berisielemen Header, harusberisitidaklebihdarisatu, danharustampakpada first child dari Envelope, sebelumelemen Body. Header dapatberisi valid, well-formed, dandibatasidengan namespace XML dimanahendakdimasukkanolehpenciptapesan SOAP. Setiapelemen yang beradadalam Header disebutblok header. Tujuandariblok header adalahuntukmemberitahukaninfomasi yang berhubungandengan pemrosesanpesan SOAP.
  • 5. Berikutgambarposisi SOAP dalamaplikasidancontohstrukturpesanSOAP : SOAP Anatomi Call Contohstrukturpesan SOAP Aturan SOAP Ada beberapaaturan yang diberlakukanpada SOAP, yakni : - SOAP Envelope menggunakan namespace - Default namespace untuk SOAP encoding dan data types - SOAP’s Syntax Rules : - SOAP harusdibuatdenganmenggunakansintaks XML - SOAP harusmenggunakan SOAP Envelope namespace - SOAP harusmenggunakan SOAP Encoding namespace - SOAP tidakbolehmengandung XML Processing Instruction Kelebihan&Kekurangan SOAP Adapunkelebihan SOAP dapatdiuraikansebagaiberikut : - Menggunakan HTTP yang telahdigunakansecaraluas - Bersifatfleksibel, mudahdikembangkan, karenaberbasis XML - Data in string message Selainkelebihan, SOAP jugamemilikibeberapakekurangan, diantaranya : - Parsing paket SOAP danpemetaannyakeobyekmengurangikinerja - Tidakdapatmenerapkankeamanankhusus, karenamerupakan “wire protocol” yang bergantungpada HTTP
  • 6. Pemrograman SOAP Client-Server Dalammembangunsebuahsistemaplikasiberbasis web service, dibutuhkanduakomponenutamayaitu, server sebagai provider entity dan client sebagai requester entity .Sebagaicontoh, di bawahiniterdapatdua listing program padasisi server dansisi client. Contoh Program sederhana menggunakan SOAP Database Engine yang kita pakai adalah MySQL. Struktur Database/Table : Database Name = mhs_webserv, Table Name = mahasiswa; a. Buat Database “mhs_webserv” create database mhs_webserv; b. Buat Tabel “mahasiswa” : CREATE TABLE IF NOT EXISTS `mahasiswa` ( `nim` varchar(10) NOT NULL, `nama` varchar(50) NOT NULL, `alamat` text NOT NULL, PRIMARY KEY (`nim`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; c. Isi data mahasiswa. INSERT INTO `mahasiswa` (`nim`, `nama`, `alamat`) VALUES ('001', 'Kabul', 'Pekalongan'), ('002', 'Ridwan', 'Semarang'); 3. 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); ?>
  • 7. 4. 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.. :) Untuk sekedar mencoba-coba, Anda juga bisa menjalankan script client.php di atas dengan memanfaatkan NuSOAP webservice yang sudah saya sediakan di rosihanari.net, yaitu Anda cukup mengubah. dalam script client.php menjadi kemudian jalankan client.php di komputer Anda sendiri, dan tidak perlu membuat script server.php.
  • 8. Representational 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 bias 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. Dalam pengaplikasiannya, REST lebih banyak digunakan untuk web serviceyang berorientasi pada resource. Maksud orientasi pada resource adalah orientasi yang menyediakan resource-resource sebagai layanannya dan bukankumpulan-kumpulan dari aktifitas yang mengolah resource itu.Alasan mengapa REST tidak digunakan dalam skripsi ini karena orientasi pada resourcenya itu, sedangkan aplikasi event calendar membutuhkan pemanggilan metode yang bisa dikerjakan terhadap kumpulan resource event. Selain itu, karena standarnya yang kurang sehingga tidak begitu cocok diterapkan dalam aplikasi yang membutuhkan kerjasama antar aplikasi lain, dimana standar yang baik akan sangat berguna karena berbicara dalam satu bahasa yang sama. Beberapa contoh web service yang menggunakan REST adalah: Flickr API(Application ProgramInterface), YouTube