SlideShare a Scribd company logo
1 of 10
Download to read offline
TUGAS PEMROGRAMAN III
TENTANG

RPC ( Remote Procedur Call), SOAP (Simple Object Protocol),
REST (Representational State Transfer)

Disusun Oleh :

EDWIN PRASSETYO
[1100631028]
MI. A

PROGRAM STUDY MANAJEMEN INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH JEMBER
2013
RPC ( Remote Procedur Call), SOAP (Simple Object
Protocol), REST (Representational State Transfer)
RPC (Remote Procedure Call)
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 dan 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.

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 dari
network.
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.
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

Prinsip RPC dalam program Client-Serve
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 datadan
meminta instans dari komponen (remote)
Stub menerima request, unmarshall data, dan memanggil method yang diminta.
Kemudian proses mengembalikan nilai yang diinginkan .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
tersebut.

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
Berikut source code menggunakan callrpc Example (rusers) :
#include <stdio.h>
#include <rpc/rpc.h>
#include <rpcsvc/rusers.h>
int main(int argc, char **argv)
{
long nusers;
enum clnt_stat stat;
if (argc<=1)
{
printf("Usage: %s hostnamen", argv[0]);
exit(1);
}
stat=callrpc(argv[1], RUSERSPROG, RUSERSVERS_3, RUSERSPROC_NUM,
(xdrproc_t)xdr_void, NULL,
(xdrproc_t)xdr_u_long, (char*)&nusers);
if(stat != RPC_SUCCESS)
{
clnt_perrno(stat);
printf("n");
exit(1);
}
printf("There are %d users on %sn", nusers, argv[1]);
}

SOAP (Simple Object Access Protocol)
SOAP adalah singkatan dari Simple Object Access Protocol, merupakan sebuah protokol
komunikasi client server yang mengirim dan menerima informasi "di atas HTTP". Data yang
dikirim dan diterima dalam format XML. SOAP hampir sama dengan protokol XMLRP, hanya
saja SOAP lebih cocok digunakan untuk data kompleks yang dikirim antar client-server.

Secara konseptual SOAP dapat dianggap sebagai DCOM versi XML. SOAP merupakan
mekanisme lain yang memungkinkan penggunaan remote procedure call. SOAP bersifat netral
platform, netral bahasa dan tidak bergantung pada suatu objek model. Sehingga SOAP-enabled
distributed application dapat menjangkau beragam operating sistem, dimana terdiri dari objek
yang berasal dari vendor yang berbeda, ditulis pada bahasa yang berbeda, dan didasarkan pada
objek model yang berbeda.
Pesan SOAP mempunyai struktur sebagai berikut :

Keuntungan dari SOAP




Format yang sederhana dan dapat dikembangkan
Bisa dijalankan dimana saja tidak terbatas pada platform tertentu
Bisa menggunakan bahasa pemrograman apa saja




Multi-protocol seperti HTTP, JMS, RPC, SMTP, dll.
Dapat melewati firewalls sehingga mendukung model HTTP get / reponse
Tipe yang kuat dan melekat pada sebuah kontrak

Kekurangan dari SOAP
Walaupun sederhana, pesannya dapat panjang karena kebutuhannya untuk mengemasnya dalam
bentuk SOAP envelope Karena SOAP berbasis XML, dibutuhkan waktu untuk parsing XML
tersebut karena harus di kedua pihak melakukannya (pengirim dan penerima pesan) Walaupun
SOAP standart yang terbuka, tidak semua bahasa mendukung dengan baik. Yang terbaik untuk
mendukung SOAP adalah JAVA, .Net, dan Flex
Contoh source code untuk penggunaan SOAP

Example 1 SOAP Message Embedded in HTTP Request
POST /StockQuote HTTP/1.1
Host: www.stockquoteserver.com
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn
SOAPAction: "Some-URI"
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<m:GetLastTradePrice xmlns:m="Some-URI">
<symbol>DIS</symbol>
</m:GetLastTradePrice>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Example 2 SOAP Message Embedded in HTTP Response
HTTP/1.1 200 OK
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<SOAP-ENV:Body>
<m:GetLastTradePriceResponse xmlns:m="Some-URI">
<Price>34.5</Price>
</m:GetLastTradePriceResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

REST (REpresentational State Transfer)
REST pada dasarnya setiap URL unik adalah representasi dari beberapa objek. Kita dapat
memperoleh konten-konten objek tersebut menggunakan HTTP GET, untuk menghapusnya, kita
dapat menggunakan POST, PUT, atau DELETE untuk memodifikasi objek (dalam praktiknya,
kebanyakan service menggunakan POST untuk ini).

Keuntungan REST






Bahasa dan platform agnostic
Lebih sederhana simple untuk dikembangkan ketimbang SOAP
Mudah dipelajari, tidak bergantung pada tools
Ringkas, tidak membutuhkan layer pertukaran pesan (messaging) tambahan
Secara desain dan filosofi lebih dekat dengan Web

Kelemahan REST




Mengasumsi model point to point komunikasi tidak dapat digunakan untuk lingkungan
komputasi terdistribusi dimana pesan akan melalui satu atau lebih perantara
Kurangnya dukungan standar untuk keamanan, kebijakan, keandalan pesan dll, sehingga
layanan yang mempunyai persyaratan lebih canggih lebih sulit untuk dikembangkan
Berkaitan dengan model transport HTTP

Contoh source code untuk penggunaan REST
Buat Database dengan nama perpustakaan dan tabel buku:

CREATE TABLE IF NOT EXISTS `buku` (
`id` int(11) NOT NULL,
`judul` varchar(100) NOT NULL,
`isbn` varchar(13) NOT NULL,
`penerbit` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `buku` (`id`, `judul`, `isbn`, `penerbit`) VALUES
(123, 'Pemrograman PHP Lanjut', '1234567891234', 'Informatika Teknologi'),
(321, 'Jurus Silat Merpati Hitam', '9876543212345', 'Merpati Silat'),
(112, 'Mudah Belajar PHP', '9874536728135', 'Informatika Teknologi'),
(463, 'Jalan Menuju Surga', '7764839267412', 'Surga Dunia Sentosa'),
(421, 'Aku Ingin Pulang Kampung', '6637819314653', 'Kangen Ibu'),
(764, 'Pacarku Ada Lima', '6735631986342', 'Playboy Indonesia');
Setelah itu berikut kode php untuk menampilkan data berdasarkan judul secara ASC dalam
format json.
Ketika diakses, hasilnya seperti berikut:
RPC, SOAP, dan REST

More Related Content

What's hot

transport layer protocol
transport layer protocoltransport layer protocol
transport layer protocolahmad amiruddin
 
Kali ini saya baru saja memperoleh pengetahuan tentang protokol tcp dan udp
Kali ini saya baru saja memperoleh pengetahuan tentang protokol tcp dan udpKali ini saya baru saja memperoleh pengetahuan tentang protokol tcp dan udp
Kali ini saya baru saja memperoleh pengetahuan tentang protokol tcp dan udpXerpox Gar
 
Materi FTP(File Transfer Protokol) dan NTP(Network Transfer Protokol)
Materi FTP(File Transfer Protokol) dan NTP(Network Transfer Protokol)Materi FTP(File Transfer Protokol) dan NTP(Network Transfer Protokol)
Materi FTP(File Transfer Protokol) dan NTP(Network Transfer Protokol)Ali Must Can
 
Tabel port protokol jaringan tcp
Tabel port protokol jaringan tcpTabel port protokol jaringan tcp
Tabel port protokol jaringan tcpThesyech Daroy
 
Jarkom - Jilid V.3
Jarkom - Jilid V.3Jarkom - Jilid V.3
Jarkom - Jilid V.3rezarmuslim
 
Trivial file transfer protocol (tftp)
Trivial file transfer protocol (tftp)Trivial file transfer protocol (tftp)
Trivial file transfer protocol (tftp)Yunan MaOng
 
Port tcp dan udp
Port tcp dan udpPort tcp dan udp
Port tcp dan udpfiqhan
 
Modul Network Troubleshooting
Modul Network TroubleshootingModul Network Troubleshooting
Modul Network Troubleshootingsinta chen
 
10 transport layer (tcp&udp)
10 transport layer (tcp&udp)10 transport layer (tcp&udp)
10 transport layer (tcp&udp)Dede Yudhistira
 
Warda 1100631042
Warda 1100631042Warda 1100631042
Warda 1100631042wardandha
 
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
 
Laporan chatting server dan client
Laporan chatting server dan clientLaporan chatting server dan client
Laporan chatting server dan clienttrilestari08
 
Pengamatan Wireshark pada TCP dan UDP
Pengamatan Wireshark pada TCP dan UDPPengamatan Wireshark pada TCP dan UDP
Pengamatan Wireshark pada TCP dan UDPramasatriaf
 

What's hot (20)

Tentang port
Tentang portTentang port
Tentang port
 
Materi 2
Materi 2Materi 2
Materi 2
 
transport layer protocol
transport layer protocoltransport layer protocol
transport layer protocol
 
Transport layer
Transport layerTransport layer
Transport layer
 
Kali ini saya baru saja memperoleh pengetahuan tentang protokol tcp dan udp
Kali ini saya baru saja memperoleh pengetahuan tentang protokol tcp dan udpKali ini saya baru saja memperoleh pengetahuan tentang protokol tcp dan udp
Kali ini saya baru saja memperoleh pengetahuan tentang protokol tcp dan udp
 
Transpot layer
Transpot layerTranspot layer
Transpot layer
 
Materi FTP(File Transfer Protokol) dan NTP(Network Transfer Protokol)
Materi FTP(File Transfer Protokol) dan NTP(Network Transfer Protokol)Materi FTP(File Transfer Protokol) dan NTP(Network Transfer Protokol)
Materi FTP(File Transfer Protokol) dan NTP(Network Transfer Protokol)
 
Tabel port protokol jaringan tcp
Tabel port protokol jaringan tcpTabel port protokol jaringan tcp
Tabel port protokol jaringan tcp
 
Rpc, soap,rest
Rpc, soap,restRpc, soap,rest
Rpc, soap,rest
 
Network Scanning & Network Probing
Network Scanning & Network ProbingNetwork Scanning & Network Probing
Network Scanning & Network Probing
 
Jarkom - Jilid V.3
Jarkom - Jilid V.3Jarkom - Jilid V.3
Jarkom - Jilid V.3
 
Transport Layer
Transport LayerTransport Layer
Transport Layer
 
Trivial file transfer protocol (tftp)
Trivial file transfer protocol (tftp)Trivial file transfer protocol (tftp)
Trivial file transfer protocol (tftp)
 
Port tcp dan udp
Port tcp dan udpPort tcp dan udp
Port tcp dan udp
 
Modul Network Troubleshooting
Modul Network TroubleshootingModul Network Troubleshooting
Modul Network Troubleshooting
 
10 transport layer (tcp&udp)
10 transport layer (tcp&udp)10 transport layer (tcp&udp)
10 transport layer (tcp&udp)
 
Warda 1100631042
Warda 1100631042Warda 1100631042
Warda 1100631042
 
Sister 04 - remote procedure call (rpc)
Sister   04 - remote procedure call (rpc)Sister   04 - remote procedure call (rpc)
Sister 04 - remote procedure call (rpc)
 
Laporan chatting server dan client
Laporan chatting server dan clientLaporan chatting server dan client
Laporan chatting server dan client
 
Pengamatan Wireshark pada TCP dan UDP
Pengamatan Wireshark pada TCP dan UDPPengamatan Wireshark pada TCP dan UDP
Pengamatan Wireshark pada TCP dan UDP
 

Viewers also liked

J2me edwin prassetyo 1100631028
J2me edwin prassetyo 1100631028J2me edwin prassetyo 1100631028
J2me edwin prassetyo 1100631028Edwin Prassetyo
 
Objective-C A Beginner's Dive (with notes)
Objective-C A Beginner's Dive (with notes)Objective-C A Beginner's Dive (with notes)
Objective-C A Beginner's Dive (with notes)Altece
 
Komunikasi dan Kepemimpinan
Komunikasi dan KepemimpinanKomunikasi dan Kepemimpinan
Komunikasi dan KepemimpinanMas Setiawan
 
Edwinprassetyo-1100631028-tugas1
Edwinprassetyo-1100631028-tugas1Edwinprassetyo-1100631028-tugas1
Edwinprassetyo-1100631028-tugas1Edwin Prassetyo
 
RPP TEMATIK KHUSUS BAHASA INDONESIA KELAS V
RPP TEMATIK KHUSUS BAHASA INDONESIA KELAS VRPP TEMATIK KHUSUS BAHASA INDONESIA KELAS V
RPP TEMATIK KHUSUS BAHASA INDONESIA KELAS VSuci Lintiasri
 
Ppt pancasila sebagai etika politik
Ppt pancasila sebagai etika politikPpt pancasila sebagai etika politik
Ppt pancasila sebagai etika politikSuci Lintiasri
 
bio statistics for clinical research
bio statistics for clinical researchbio statistics for clinical research
bio statistics for clinical researchRanjith Paravannoor
 
Makalah Ketrampilan dasar mengajar
 Makalah Ketrampilan dasar mengajar Makalah Ketrampilan dasar mengajar
Makalah Ketrampilan dasar mengajarSuci Lintiasri
 
Regional trade blocs ppt
Regional trade blocs pptRegional trade blocs ppt
Regional trade blocs pptTejaswini Mane
 
What is medicinal chemistry.ppt
What is medicinal chemistry.pptWhat is medicinal chemistry.ppt
What is medicinal chemistry.pptkarthik1023
 

Viewers also liked (16)

J2me edwin prassetyo 1100631028
J2me edwin prassetyo 1100631028J2me edwin prassetyo 1100631028
J2me edwin prassetyo 1100631028
 
Dispositivos de sujeccion
Dispositivos de sujeccionDispositivos de sujeccion
Dispositivos de sujeccion
 
Objective-C A Beginner's Dive (with notes)
Objective-C A Beginner's Dive (with notes)Objective-C A Beginner's Dive (with notes)
Objective-C A Beginner's Dive (with notes)
 
Komunikasi dan Kepemimpinan
Komunikasi dan KepemimpinanKomunikasi dan Kepemimpinan
Komunikasi dan Kepemimpinan
 
Tigres
TigresTigres
Tigres
 
Tarefa 6
Tarefa 6Tarefa 6
Tarefa 6
 
Chapter 13 the south
Chapter 13 the southChapter 13 the south
Chapter 13 the south
 
Chapter 15 a divided nation
Chapter 15 a divided nationChapter 15 a divided nation
Chapter 15 a divided nation
 
Chapter 14 new movements
Chapter 14 new movementsChapter 14 new movements
Chapter 14 new movements
 
Edwinprassetyo-1100631028-tugas1
Edwinprassetyo-1100631028-tugas1Edwinprassetyo-1100631028-tugas1
Edwinprassetyo-1100631028-tugas1
 
RPP TEMATIK KHUSUS BAHASA INDONESIA KELAS V
RPP TEMATIK KHUSUS BAHASA INDONESIA KELAS VRPP TEMATIK KHUSUS BAHASA INDONESIA KELAS V
RPP TEMATIK KHUSUS BAHASA INDONESIA KELAS V
 
Ppt pancasila sebagai etika politik
Ppt pancasila sebagai etika politikPpt pancasila sebagai etika politik
Ppt pancasila sebagai etika politik
 
bio statistics for clinical research
bio statistics for clinical researchbio statistics for clinical research
bio statistics for clinical research
 
Makalah Ketrampilan dasar mengajar
 Makalah Ketrampilan dasar mengajar Makalah Ketrampilan dasar mengajar
Makalah Ketrampilan dasar mengajar
 
Regional trade blocs ppt
Regional trade blocs pptRegional trade blocs ppt
Regional trade blocs ppt
 
What is medicinal chemistry.ppt
What is medicinal chemistry.pptWhat is medicinal chemistry.ppt
What is medicinal chemistry.ppt
 

Similar to RPC, SOAP, dan REST

Tugas pemrograman iii rpc soap rest
Tugas pemrograman iii rpc soap restTugas pemrograman iii rpc soap rest
Tugas pemrograman iii rpc soap restAsfiyuli Wulandari
 
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
 
Remote procedure call
Remote procedure callRemote procedure call
Remote procedure callPhu Ndut
 
Ristanto 1100631048
Ristanto 1100631048Ristanto 1100631048
Ristanto 1100631048Ristanto Dp
 
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 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
 
Membandingkan_RMI_dan_RPC_Presentasi.pptx
Membandingkan_RMI_dan_RPC_Presentasi.pptxMembandingkan_RMI_dan_RPC_Presentasi.pptx
Membandingkan_RMI_dan_RPC_Presentasi.pptxDEDEALAMSYAHSPd
 
Esai rpc, soap, dan rest
Esai rpc, soap, dan restEsai rpc, soap, dan rest
Esai rpc, soap, dan restUlil Uliland
 
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
 
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
 
Part 3 & 4 Networking Programming.pdf
Part 3 & 4 Networking Programming.pdfPart 3 & 4 Networking Programming.pdf
Part 3 & 4 Networking Programming.pdfAiAdhi
 
Tcpip Suite
Tcpip SuiteTcpip Suite
Tcpip SuiteEri Alam
 

Similar to RPC, SOAP, dan REST (20)

Tugas pemrograman iii rpc soap rest
Tugas pemrograman iii rpc soap restTugas pemrograman iii rpc soap rest
Tugas pemrograman iii 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
 
Tugas pemr3 1100631014 rpc,soap,rest
Tugas pemr3 1100631014 rpc,soap,restTugas pemr3 1100631014 rpc,soap,rest
Tugas pemr3 1100631014 rpc,soap,rest
 
Remote procedure call
Remote procedure callRemote procedure call
Remote procedure call
 
RCP, SOAP, REST
RCP, SOAP, RESTRCP, SOAP, REST
RCP, SOAP, REST
 
Ristanto 1100631048
Ristanto 1100631048Ristanto 1100631048
Ristanto 1100631048
 
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
 
KOMUNIKASI DATA
KOMUNIKASI DATAKOMUNIKASI DATA
KOMUNIKASI DATA
 
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)
 
Membandingkan_RMI_dan_RPC_Presentasi.pptx
Membandingkan_RMI_dan_RPC_Presentasi.pptxMembandingkan_RMI_dan_RPC_Presentasi.pptx
Membandingkan_RMI_dan_RPC_Presentasi.pptx
 
Esai rpc, soap, dan rest
Esai rpc, soap, dan restEsai rpc, soap, dan rest
Esai rpc, soap, dan rest
 
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)
 
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
 
07 tk 1073 layer transport
07   tk 1073 layer transport07   tk 1073 layer transport
07 tk 1073 layer transport
 
Jeni Intro2 Bab10 Jaringan
Jeni Intro2 Bab10 JaringanJeni Intro2 Bab10 Jaringan
Jeni Intro2 Bab10 Jaringan
 
Part 3 & 4 Networking Programming.pdf
Part 3 & 4 Networking Programming.pdfPart 3 & 4 Networking Programming.pdf
Part 3 & 4 Networking Programming.pdf
 
(Ppp) chap chap
(Ppp) chap chap(Ppp) chap chap
(Ppp) chap chap
 
Tcpip Suite
Tcpip SuiteTcpip Suite
Tcpip Suite
 
HTTP Protokol
HTTP ProtokolHTTP Protokol
HTTP Protokol
 

RPC, SOAP, dan REST

  • 1. TUGAS PEMROGRAMAN III TENTANG RPC ( Remote Procedur Call), SOAP (Simple Object Protocol), REST (Representational State Transfer) Disusun Oleh : EDWIN PRASSETYO [1100631028] MI. A PROGRAM STUDY MANAJEMEN INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS MUHAMMADIYAH JEMBER 2013
  • 2. RPC ( Remote Procedur Call), SOAP (Simple Object Protocol), REST (Representational State Transfer) RPC (Remote Procedure Call) 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 dan unmarshalling.  Robust (Sempurna): Sejak th 1980-an RPC telah banyak digunakan dlm pengembangan mission- critical application yg memerlukan scalability, fault tolerance, & reliability. Kekurangan RPC
  • 3.  Tidak fleksibel terhadap perubahan: Static relationship between client & server at run-time. Berdasarkan prosedural/structured programming yang sudah ketinggalan jaman dibandingkan OOP. 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 dari network. 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. 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
  • 4. 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 Prinsip RPC dalam program Client-Serve 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 datadan meminta instans dari komponen (remote) Stub menerima request, unmarshall data, dan memanggil method yang diminta. Kemudian proses mengembalikan nilai yang diinginkan .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 tersebut. Langkah-langkah dalam RPC
  • 5. 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 Berikut source code menggunakan callrpc Example (rusers) : #include <stdio.h> #include <rpc/rpc.h> #include <rpcsvc/rusers.h> int main(int argc, char **argv) { long nusers; enum clnt_stat stat; if (argc<=1) { printf("Usage: %s hostnamen", argv[0]); exit(1); } stat=callrpc(argv[1], RUSERSPROG, RUSERSVERS_3, RUSERSPROC_NUM, (xdrproc_t)xdr_void, NULL, (xdrproc_t)xdr_u_long, (char*)&nusers); if(stat != RPC_SUCCESS) { clnt_perrno(stat); printf("n"); exit(1); } printf("There are %d users on %sn", nusers, argv[1]);
  • 6. } SOAP (Simple Object Access Protocol) SOAP adalah singkatan dari Simple Object Access Protocol, merupakan sebuah protokol komunikasi client server yang mengirim dan menerima informasi "di atas HTTP". Data yang dikirim dan diterima dalam format XML. SOAP hampir sama dengan protokol XMLRP, hanya saja SOAP lebih cocok digunakan untuk data kompleks yang dikirim antar client-server. Secara konseptual SOAP dapat dianggap sebagai DCOM versi XML. SOAP merupakan mekanisme lain yang memungkinkan penggunaan remote procedure call. SOAP bersifat netral platform, netral bahasa dan tidak bergantung pada suatu objek model. Sehingga SOAP-enabled distributed application dapat menjangkau beragam operating sistem, dimana terdiri dari objek yang berasal dari vendor yang berbeda, ditulis pada bahasa yang berbeda, dan didasarkan pada objek model yang berbeda. Pesan SOAP mempunyai struktur sebagai berikut : Keuntungan dari SOAP    Format yang sederhana dan dapat dikembangkan Bisa dijalankan dimana saja tidak terbatas pada platform tertentu Bisa menggunakan bahasa pemrograman apa saja
  • 7.    Multi-protocol seperti HTTP, JMS, RPC, SMTP, dll. Dapat melewati firewalls sehingga mendukung model HTTP get / reponse Tipe yang kuat dan melekat pada sebuah kontrak Kekurangan dari SOAP Walaupun sederhana, pesannya dapat panjang karena kebutuhannya untuk mengemasnya dalam bentuk SOAP envelope Karena SOAP berbasis XML, dibutuhkan waktu untuk parsing XML tersebut karena harus di kedua pihak melakukannya (pengirim dan penerima pesan) Walaupun SOAP standart yang terbuka, tidak semua bahasa mendukung dengan baik. Yang terbaik untuk mendukung SOAP adalah JAVA, .Net, dan Flex Contoh source code untuk penggunaan SOAP Example 1 SOAP Message Embedded in HTTP Request POST /StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI" <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m="Some-URI"> <symbol>DIS</symbol> </m:GetLastTradePrice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Example 2 SOAP Message Embedded in HTTP Response HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  • 8. SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <SOAP-ENV:Body> <m:GetLastTradePriceResponse xmlns:m="Some-URI"> <Price>34.5</Price> </m:GetLastTradePriceResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> REST (REpresentational State Transfer) REST pada dasarnya setiap URL unik adalah representasi dari beberapa objek. Kita dapat memperoleh konten-konten objek tersebut menggunakan HTTP GET, untuk menghapusnya, kita dapat menggunakan POST, PUT, atau DELETE untuk memodifikasi objek (dalam praktiknya, kebanyakan service menggunakan POST untuk ini). Keuntungan REST      Bahasa dan platform agnostic Lebih sederhana simple untuk dikembangkan ketimbang SOAP Mudah dipelajari, tidak bergantung pada tools Ringkas, tidak membutuhkan layer pertukaran pesan (messaging) tambahan Secara desain dan filosofi lebih dekat dengan Web Kelemahan REST    Mengasumsi model point to point komunikasi tidak dapat digunakan untuk lingkungan komputasi terdistribusi dimana pesan akan melalui satu atau lebih perantara Kurangnya dukungan standar untuk keamanan, kebijakan, keandalan pesan dll, sehingga layanan yang mempunyai persyaratan lebih canggih lebih sulit untuk dikembangkan Berkaitan dengan model transport HTTP Contoh source code untuk penggunaan REST Buat Database dengan nama perpustakaan dan tabel buku: CREATE TABLE IF NOT EXISTS `buku` (
  • 9. `id` int(11) NOT NULL, `judul` varchar(100) NOT NULL, `isbn` varchar(13) NOT NULL, `penerbit` varchar(100) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; INSERT INTO `buku` (`id`, `judul`, `isbn`, `penerbit`) VALUES (123, 'Pemrograman PHP Lanjut', '1234567891234', 'Informatika Teknologi'), (321, 'Jurus Silat Merpati Hitam', '9876543212345', 'Merpati Silat'), (112, 'Mudah Belajar PHP', '9874536728135', 'Informatika Teknologi'), (463, 'Jalan Menuju Surga', '7764839267412', 'Surga Dunia Sentosa'), (421, 'Aku Ingin Pulang Kampung', '6637819314653', 'Kangen Ibu'), (764, 'Pacarku Ada Lima', '6735631986342', 'Playboy Indonesia'); Setelah itu berikut kode php untuk menampilkan data berdasarkan judul secara ASC dalam format json. Ketika diakses, hasilnya seperti berikut: