SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
Oleh :
LAILATUL MUTMAINNAH
1100631021_MI/A

PROGRAM STUDY MANAJEMEN INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH JEMBER
2013
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,

Implementasi RPC
Untuk proses nya kurang lebih sama dengan RMI. Kalau RMI kita mengenal proxy dan skeleton, pada RPC
dikenal dengan Stub( Client stub dan Server stub)

Gambar Ilustrasi Implementasi RPC

Remote Reference Modul dan Communication Modul berada pada tatanan sistem operasi.
Contoh implementasi adalah Sun Microsystems Open Network Computing (ONC) : RPC specification, XDR
(eXternal Data Representation) standard, UDP atau TCP transport protocol. Xerox Courier : RPC model,
Data representation standard, XNS (Xerox Network
Systems) SPP (Sequenced Packet Protocol) sbg transport protocol, Apollo s Network Computing
Architecture (NCA), RPC protocol, NDR (Network Data Representation).

Cara Kerja RPC
Tiap prosedur yang dipanggil dalam RPC, maka proses ini harus berkoneksi dengan server remote dengan
mengirimkan semua parameter yang dibutuhkan, menunggu balasan dari server dan melakukan proses
kemudian selesai. Proses di atas disebut juga dengan stub pada sisi klien. Sedangkan Stub pada sisi server
adalah proses menunggu tiap message yang berisi permintaan mengenai prosedur tertentu.

Diagram diatas memberikan gambaran mengenai flow dari eksekusi dalam proses RPC. Berikut ini adalah
diagram yang akan menjelaskan secara rinci mengenai proses yang terjadipada klien dan server dalam
eksekusi suatu prosedur RPC :
1. Klien memanggil prosedur stub lokal. Prosedur Stub akan memberikan parameter dalam suatu paket yang
akan dikirim ke jaringan. Proses ini disebut sebagai marshalling.
2. Fungsi Network pada O/S (Operating system – Sistem Operasi) akan dipanggil oleh stub untuk mengirim
suatu message.
3. Kemudian Kernel ini akan mengirim message ke sistem remote. Kondisi ini dapat berupa connectionless
atau connection-oriented.
4. Stub pada sisi server akan melakukan proses unmarshals pada paket yang dikirim pada network.
5. Stub pada server kemudian mengeksekusi prosedur panggilan lokal.
6. Jika eksekusi prosedur ini telah selesai, maka eksekusi diberikan kembali ke stub pada server.
7. Stub server akan melakukan proses marshals lagi dan mengirimkan message nilai balikan ( hasilnya )
kembali ke jaringan.
8. Message ini akan dikirim kembali ke klien.
9. Stub klien akan membaca message ini dengan menggunakan fungsi pada jaringan.
10. Proses unmarshalled kemudian dilakukan pada message ini dan nilai balikan akan diambil untuk
kemudian diproses pada proses lokal.
Proses diatas akan dilakukan berulang-ulang ( rekursif ) dalam pengeksekusian RPC dalam suatu remote
sistem. Contoh aplikasi untuk meremote pada teknik RPC (Remote Procedure Call) adalah menggunakan
putty untuk melakukan SSH.
Kelebihan dan Kekurangan pada RPC
Kelebihan RPC :


Relatif mudah digunakan



Pemanggilan remote procedure tidak jauh berbeda dibandingkan pemanggilan local procedure.
Sehingga pemrogram dapat berkonsentrasi pada software logic, tidak perlu memikirkan low level
details seperti soket, marshalling dan unmarshalling.



Robust (Sempurna)



Sejak th 1980-an RPC telah banyak digunakan dalam pengembangan mission-critical application
yang memerlukan scalability, fault tolerance, dan reliability.

Kelemahan RPC :


Tidak fleksibel terhadap perubahan



Static relationship between client & server at run-time.



Berdasarkan prosedural/structured programming yang sudah ketinggalan jaman dibandingkan
Object Oriented Proggraming



Kurangnya location transparency



Misalnya premrogram hanya boleh melakukan pass by value, bukan pass by reference.



Komunikasi hanya antara 1 klien & 1 server (one-to-one at a time).



Komunikasi antara 1 klien & beberapa server memerlukan beberapa koneksi yang terpisah.

Contoh Source Code Sederhana Program RPC
Menggunakan Array asosiatif Dalam Parameter Request.
Jika Anda ingin menggunakan array asosiatif dalam parameter metode Anda, Anda akan perlu
menggunakan struct datatype:
Simple Object Access Protocol (SOAP)
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.
SOAP menjadi sangat mudah diterima oleh berbagai pihak – terutama oleh berbagai vendor TI –
dikarenakan protokol ini memanfaatkan berbagai teknologi yang sudah ada sebelumnya dan sudah banyak
digunakan. Misalnya untuk protokol transport, yang paling banyak digunakan adalah HTTP, walaupun
dimungkinkan untuk menggunakan protokol transport lainnya. Sedangkan untuk format data atau
message digunakan XML yang tidak diragukan lagi manfaat dan perannya di dalam pertukaran data.
Dengan demikian, tidaklah terlalu mengherankan bila kemudian SOAP dianggap sebagai solusi penyelamat
untuk mengatasi berbagai masalah yang dihadapi oleh teknologi – teknologi pendahulunya.
Pesan SOAP mempunyai struktur sebagai berikut :

Pesan SOAP berbentuk seperti sebuah envelope yang berisi header (optional) dan body (required).
Header berisi blok informasi yang berhubungan dengan bagaimana pesan tersebut diproses. Hal ini
meliputi pe-routingan dan delivery setting, authentication atau authorization assertions, and transaction
contexts. Body berisi pesan sebenarnya yang dikirim dan diproses. Semua yang dapat ditampilkan dengan
sintaks XML dapat dimasukkan dalam pesan body.
Setiap elemen Envelope harus berisi tepat satu elemen Body. Elemen Body dapat berisi sebanyak
mungkin child nodes yang diperlukan. Isi dari elemen Body adalah pesan. Elemen Body ditentukan dalam
suatu cara dimana dapat berisi valid dan wellformed XML yang telah dibatasi oleh suatu namespace
(qualified).
Jika sebuah Envelope berisi elemen Header, harus berisi tidak lebih dari satu, dan harus tampak
pada first child dari Envelope, sebelum elemen Body. Header dapat berisi valid, well-formed, dan dibatasi
dengan namespace XML dimana hendak dimasukkan oleh pencipta pesan SOAP.
Setiap elemen yang berada dalam Header disebut blok header. Tujuan dari blok header adalah
untuk memberitahukan infomasi yang berhubungan dengan pemrosesan pesan SOAP.
Berikut gambar posisi SOAP dalam aplikasi dan contoh struktur pesan SOAP :
SOAP anatomi call

Contoh struktur pesan SOAP
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

Teknologi SOAP dan Perangkat Mobile

Salah

satu

kegunaan

perkembangan

teknologi informasi berbasis mobile adalah untuk memudahkan siapa saja dalam mengakses
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 ini bisa
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 terutama Remote 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. Protocol
berbasis XML ini terdiri dari tiga bagian amplop yang mendefinisikan apa yang ada dalam pesan dan
bagaimana proses itu satu set aturan pengkodean untuk mengungkapkan kasus defined datatypes
aplikasi, dan konvensi untuk mewakili panggilan prosedur dan tanggapan.
SOAP dibangun dengan menggunakan protocol komunikasi HTTP. Karena HTTP didukung oleh semua
browser dan server, maka SOAP dapat berkomunikasi dengan berbagai aplikasi meskipun terdapat
perbedaan sistem operasi, teknologi, dan bahasa pemrogramannya, dikarenakan protocol ini
memanfaatkan berbagai teknologi yang sudah ada sebelumnya dan sudah banyak digunakan. Misalnya
untuk protocol 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 dalam
SOAP.
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 biasa berbasis XML untuk informasi yang ditransfer, serta sekumpulan aturan bagi
translasi aplikasi dan tipe-tipe data platform yang spesifik menjadi bentuk XML. Desain bentuk dari SOAP
membuatnya cocok untuk berbagai pertukaran pesan pada aplikasi.
SOAP adalah protocol untuk pertukaran informasi dengan desentralisasi dan terdistribusi. SOAP dibangun
dengan menggunakan protocol komunikasi HTTP. Karena HTTP didukung oleh semua browser dan server,
maka SOAP dapat berkomunikasi dengan berbagai aplikasi meskipun terdapat perbedaan sistem operasi,
teknologi, dan bahasa pemrogramannya. Peran SOAP di dalam teknologi web service adalah sebagai
protocol pemaketan untuk pesan-pesan (messages) yang digunakan secara bersama oleh aplikasi-aplikasi
penggunanya. Spesifikasi yang digunakan tidak lebih seperti sebuah amplop biasa berbasis XML untuk
informasi yang ditransfer, serta sekumpulan aturan bagi translasi aplikasi dan tipe-tipe data platform yang
spesifik menjadi bentuk XML. Desain bentuk dari SOAP membuatnya cocok untuk berbagai pertukaran
pesan pada aplikasi.
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 SOAP request 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 sebuah sistem aplikasi berbasis web dengan teknologi SOAP, dibutuhkan
dua komponen utama yaitu, server sebagai provider entity dan client sebagai requester entity.
 Contoh Program Sederhana menggunakan SOAP.
Adapun studi kasus yang dipilih di sini adalah pencarian data mahasiswa. Data mahasiswa ini nanti
tersimpan di sebuah server misalkan bernama A, kemudian di server B dibuat semacam interface untuk
pencarian data mahasiswa tersebut. Pada saat proses pencarian tersebut, antar server A dan B saling
berkomunikasi via NuSOAP webservice.
Dalam implementasi studi kasus ini, pertama kita siapkan data mahasiswa terlebih dahulu di
server A, misalkan dibuat tabel database sbb:

Dan berikut ini adalah sampel recordnya
Selanjutnya, kita siapkan script NuSOAP yang nantinya diletakkan di server A. Script ini nanti diperlukan
untuk melayani request yang dilakukan oleh server B.
server.php

Perhatikan pada script server.php di atas, bahwa di situ terdapat method dengan nama ‘search’. Method
dengan parameter ‘key’ yang merupakan keyword pencarian ini nanti yang akan dipanggil oleh oleh
server B ketika pencarian data. Jangan lupa pastikan method ‘search’ harus diregistrasikan dengan
perintah

Jika tidak, maka method tersebut tidak bisa dipanggil. Perhatikan juga bahwa apabila diinginkan data
return suatu webservice berupa multiple data, maka data yang direturn harus tersaji dalam bentuk array.
Berikutnya, kita buat script interface untuk pencarian data mahasiswa di server B.
client.php

Keterangan:
Untuk mengetahui ada tidaknya hasil pencarian data yang merupakan response dari server A adalah
cukup mudah, yaitu menggunakan function is_array(). Jika data hasil pencarian tidak ditemukan, maka
data response bukan merupakan array sehingga nilai is_array() ini adalah FALSE. Sedangkan jika data
hasil pencarian ditemukan, maka nilai is_array() adalah TRUE. Bagaimana untuk mengetahui jumlah data
hasil pencarian, cukup mudah yaitu gunakan function count() yang akan menghitung jumlah elemen dari
data array hasil response.
Berikut ini contoh tampilan dari interface pencarian data mahasiswa hasil implementasi dari NuSOAP
webservice.
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.

Respresentational State Transfer ( REST ), adalah suatu gaya arsitektur perangkat lunak untuk
untuk pendistibusian sistem hipermedia seperti WWW. Istilah ini diperkenalkan pertama kali pada tahun
2000 pada disertasi doktoral Roy Fielding, salah seorang penulis utama spesifikasi HTTP. Istilah ini
selanjutnya dipergunakan secara luas pada komunitas jaringan.
REST secara spesifik merujuk pada suatu koleksi prinsip-prinsip arsitektur jaringan yang menggariskan
pendefinisian dan pengalamatan sumber daya. Istilah ini sering digunakan dengan longgar untuk
mendeskripsikan semua antarmuka sederhana yang menyampaikan data dalam domain spesifik melalui
HTTP tanpa tambahan lapisan pesan seperti SOAP atau pelacakan sesi menggunakan cookie HTTP. Dua
pengertian ini dapat menimbulkan konflik dan juga tumpang tindih. Dimungkinkan untuk merancang
suatu sistem perangkat lunak besar sesuai dengan gaya arsitektur REST Fielding tanpa menggunakan
HTTP dan tanpa berinteraksi dengan WWW. Juga dimungkinkan untuk merancang antarmuka
XML+HTTP sederhana yang tidak mengikuti prinsip-prinsip REST, tapi sebaliknya mengikuti model dari
RPC (remote procedure call). Perbedaan penggunaan istilah REST ini cukup menyebabkan permasalahan
dalam diskusi-diskusi teknis. Sistem yang mengikuti prinsip REST Fielding sering disebut sebagai
"RESTful".
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 linklink 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.
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 bukan kumpulan-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 API, Amazon API.
(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.
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 prinsipprinsip 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.
Contoh Source Code Sederhana dalam penggunaan REST
Apache HttpClient perpustakaan menyederhanakan menangani permintaan HTTP. Untuk menggunakan
library ini Anda harus men-download binari dengan dependensi dari situs web mereka.
Berikut adalah kode untuk HTTP GET metode:

Contenu connexe

Tendances

Tugas pemrograman3 rpc,soap,rest_1100631020
Tugas pemrograman3 rpc,soap,rest_1100631020Tugas pemrograman3 rpc,soap,rest_1100631020
Tugas pemrograman3 rpc,soap,rest_1100631020Lucky AnugerahP
 
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 2 [alokasi port tcp pada aplikasi jaringan]
Tugas 2 [alokasi port tcp pada aplikasi jaringan]Tugas 2 [alokasi port tcp pada aplikasi jaringan]
Tugas 2 [alokasi port tcp pada aplikasi jaringan]Kurnia Ayuningtyas
 
Tugas pemrograman iii rpc soap rest
Tugas pemrograman iii rpc soap restTugas pemrograman iii rpc soap rest
Tugas pemrograman iii rpc soap restAsfiyuli Wulandari
 
Lapisan protokol jaringan
Lapisan protokol jaringan Lapisan protokol jaringan
Lapisan protokol jaringan Renny Wahyu
 
Remote procedure call
Remote procedure callRemote procedure call
Remote procedure callPhu Ndut
 
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
 
Protocol internet
Protocol internetProtocol internet
Protocol internetcondro23
 
Tugas 3 Rangkuman Protocol DNS, FTP, HTTP, dan SMTP
Tugas 3 Rangkuman Protocol DNS, FTP, HTTP, dan SMTPTugas 3 Rangkuman Protocol DNS, FTP, HTTP, dan SMTP
Tugas 3 Rangkuman Protocol DNS, FTP, HTTP, dan SMTPRobby Firmansyah
 
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
 
Esai rpc, soap, dan rest
Esai rpc, soap, dan restEsai rpc, soap, dan rest
Esai rpc, soap, dan restUlil Uliland
 
29154 selly monikan
29154 selly monikan29154 selly monikan
29154 selly monikanSelly Monika
 

Tendances (17)

Tugas pemrograman3 rpc,soap,rest_1100631020
Tugas pemrograman3 rpc,soap,rest_1100631020Tugas pemrograman3 rpc,soap,rest_1100631020
Tugas pemrograman3 rpc,soap,rest_1100631020
 
Rifqi hanifmaulana 1100631036_rpc_soap_rest
Rifqi hanifmaulana 1100631036_rpc_soap_restRifqi hanifmaulana 1100631036_rpc_soap_rest
Rifqi hanifmaulana 1100631036_rpc_soap_rest
 
Tugas 2 [alokasi port tcp pada aplikasi jaringan]
Tugas 2 [alokasi port tcp pada aplikasi jaringan]Tugas 2 [alokasi port tcp pada aplikasi jaringan]
Tugas 2 [alokasi port tcp pada aplikasi jaringan]
 
Tugas pemrograman iii rpc soap rest
Tugas pemrograman iii rpc soap restTugas pemrograman iii rpc soap rest
Tugas pemrograman iii rpc soap rest
 
UDP and TCP
UDP and TCPUDP and TCP
UDP and TCP
 
Kelompok 6
Kelompok 6Kelompok 6
Kelompok 6
 
Lapisan protokol jaringan
Lapisan protokol jaringan Lapisan protokol jaringan
Lapisan protokol jaringan
 
Remote procedure call
Remote procedure callRemote procedure call
Remote procedure call
 
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
 
Protocol internet
Protocol internetProtocol internet
Protocol internet
 
Kelompok 7
Kelompok 7Kelompok 7
Kelompok 7
 
Tugas 4
Tugas 4Tugas 4
Tugas 4
 
Tugas 3 Rangkuman Protocol DNS, FTP, HTTP, dan SMTP
Tugas 3 Rangkuman Protocol DNS, FTP, HTTP, dan SMTPTugas 3 Rangkuman Protocol DNS, FTP, HTTP, dan SMTP
Tugas 3 Rangkuman Protocol DNS, FTP, HTTP, dan SMTP
 
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)
 
Esai rpc, soap, dan rest
Esai rpc, soap, dan restEsai rpc, soap, dan rest
Esai rpc, soap, dan rest
 
Tentang port
Tentang portTentang port
Tentang port
 
29154 selly monikan
29154 selly monikan29154 selly monikan
29154 selly monikan
 

Similaire à RPC dan SOAP

Similaire à RPC dan SOAP (20)

Tugas pemr3 1100631014 rpc,soap,rest
Tugas pemr3 1100631014 rpc,soap,restTugas pemr3 1100631014 rpc,soap,rest
Tugas pemr3 1100631014 rpc,soap,rest
 
KOMUNIKASI DATA
KOMUNIKASI DATAKOMUNIKASI DATA
KOMUNIKASI DATA
 
Tugas pemograman III
Tugas pemograman IIITugas pemograman III
Tugas pemograman III
 
Warda 1100631042
Warda 1100631042Warda 1100631042
Warda 1100631042
 
Presesntasi P-2
Presesntasi P-2Presesntasi P-2
Presesntasi P-2
 
Kelompok 7
Kelompok 7Kelompok 7
Kelompok 7
 
Presentation1
Presentation1Presentation1
Presentation1
 
Osi layers
Osi layersOsi layers
Osi layers
 
Web Services
Web ServicesWeb Services
Web Services
 
Protocol jaringan komputer
Protocol jaringan komputerProtocol jaringan komputer
Protocol jaringan komputer
 
presentasi koneksi internet
presentasi koneksi internetpresentasi koneksi internet
presentasi koneksi internet
 
Modul 12rev1
Modul 12rev1Modul 12rev1
Modul 12rev1
 
Sister 06 - client server
Sister   06 - client serverSister   06 - client server
Sister 06 - client server
 
Osi layer ( DAVENTA S )
Osi layer ( DAVENTA S )Osi layer ( DAVENTA S )
Osi layer ( DAVENTA S )
 
Model osi
Model osiModel osi
Model osi
 
Model OSI Layer
Model OSI LayerModel OSI Layer
Model OSI Layer
 
Model OSI
Model OSIModel OSI
Model OSI
 
Model OSI
Model OSIModel OSI
Model OSI
 
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 WIN XI TKJ Standart Komunikasi
Laporan WIN XI TKJ Standart KomunikasiLaporan WIN XI TKJ Standart Komunikasi
Laporan WIN XI TKJ Standart Komunikasi
 

RPC dan SOAP

  • 1. Oleh : LAILATUL MUTMAINNAH 1100631021_MI/A PROGRAM STUDY MANAJEMEN INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS MUHAMMADIYAH JEMBER 2013
  • 2. 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, Implementasi RPC Untuk proses nya kurang lebih sama dengan RMI. Kalau RMI kita mengenal proxy dan skeleton, pada RPC dikenal dengan Stub( Client stub dan Server stub) Gambar Ilustrasi Implementasi RPC Remote Reference Modul dan Communication Modul berada pada tatanan sistem operasi. Contoh implementasi adalah Sun Microsystems Open Network Computing (ONC) : RPC specification, XDR (eXternal Data Representation) standard, UDP atau TCP transport protocol. Xerox Courier : RPC model, Data representation standard, XNS (Xerox Network
  • 3. Systems) SPP (Sequenced Packet Protocol) sbg transport protocol, Apollo s Network Computing Architecture (NCA), RPC protocol, NDR (Network Data Representation). Cara Kerja RPC Tiap prosedur yang dipanggil dalam RPC, maka proses ini harus berkoneksi dengan server remote dengan mengirimkan semua parameter yang dibutuhkan, menunggu balasan dari server dan melakukan proses kemudian selesai. Proses di atas disebut juga dengan stub pada sisi klien. Sedangkan Stub pada sisi server adalah proses menunggu tiap message yang berisi permintaan mengenai prosedur tertentu. Diagram diatas memberikan gambaran mengenai flow dari eksekusi dalam proses RPC. Berikut ini adalah diagram yang akan menjelaskan secara rinci mengenai proses yang terjadipada klien dan server dalam eksekusi suatu prosedur RPC : 1. Klien memanggil prosedur stub lokal. Prosedur Stub akan memberikan parameter dalam suatu paket yang akan dikirim ke jaringan. Proses ini disebut sebagai marshalling. 2. Fungsi Network pada O/S (Operating system – Sistem Operasi) akan dipanggil oleh stub untuk mengirim suatu message. 3. Kemudian Kernel ini akan mengirim message ke sistem remote. Kondisi ini dapat berupa connectionless atau connection-oriented. 4. Stub pada sisi server akan melakukan proses unmarshals pada paket yang dikirim pada network. 5. Stub pada server kemudian mengeksekusi prosedur panggilan lokal. 6. Jika eksekusi prosedur ini telah selesai, maka eksekusi diberikan kembali ke stub pada server. 7. Stub server akan melakukan proses marshals lagi dan mengirimkan message nilai balikan ( hasilnya ) kembali ke jaringan. 8. Message ini akan dikirim kembali ke klien. 9. Stub klien akan membaca message ini dengan menggunakan fungsi pada jaringan. 10. Proses unmarshalled kemudian dilakukan pada message ini dan nilai balikan akan diambil untuk kemudian diproses pada proses lokal.
  • 4. Proses diatas akan dilakukan berulang-ulang ( rekursif ) dalam pengeksekusian RPC dalam suatu remote sistem. Contoh aplikasi untuk meremote pada teknik RPC (Remote Procedure Call) adalah menggunakan putty untuk melakukan SSH. Kelebihan dan Kekurangan pada RPC Kelebihan RPC :  Relatif mudah digunakan  Pemanggilan remote procedure tidak jauh berbeda dibandingkan pemanggilan local procedure. Sehingga pemrogram dapat berkonsentrasi pada software logic, tidak perlu memikirkan low level details seperti soket, marshalling dan unmarshalling.  Robust (Sempurna)  Sejak th 1980-an RPC telah banyak digunakan dalam pengembangan mission-critical application yang memerlukan scalability, fault tolerance, dan reliability. Kelemahan RPC :  Tidak fleksibel terhadap perubahan  Static relationship between client & server at run-time.  Berdasarkan prosedural/structured programming yang sudah ketinggalan jaman dibandingkan Object Oriented Proggraming  Kurangnya location transparency  Misalnya premrogram hanya boleh melakukan pass by value, bukan pass by reference.  Komunikasi hanya antara 1 klien & 1 server (one-to-one at a time).  Komunikasi antara 1 klien & beberapa server memerlukan beberapa koneksi yang terpisah. Contoh Source Code Sederhana Program RPC Menggunakan Array asosiatif Dalam Parameter Request. Jika Anda ingin menggunakan array asosiatif dalam parameter metode Anda, Anda akan perlu menggunakan struct datatype:
  • 5. Simple Object Access Protocol (SOAP) 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. SOAP menjadi sangat mudah diterima oleh berbagai pihak – terutama oleh berbagai vendor TI – dikarenakan protokol ini memanfaatkan berbagai teknologi yang sudah ada sebelumnya dan sudah banyak digunakan. Misalnya untuk protokol transport, yang paling banyak digunakan adalah HTTP, walaupun
  • 6. dimungkinkan untuk menggunakan protokol transport lainnya. Sedangkan untuk format data atau message digunakan XML yang tidak diragukan lagi manfaat dan perannya di dalam pertukaran data. Dengan demikian, tidaklah terlalu mengherankan bila kemudian SOAP dianggap sebagai solusi penyelamat untuk mengatasi berbagai masalah yang dihadapi oleh teknologi – teknologi pendahulunya. Pesan SOAP mempunyai struktur sebagai berikut : Pesan SOAP berbentuk seperti sebuah envelope yang berisi header (optional) dan body (required). Header berisi blok informasi yang berhubungan dengan bagaimana pesan tersebut diproses. Hal ini meliputi pe-routingan dan delivery setting, authentication atau authorization assertions, and transaction contexts. Body berisi pesan sebenarnya yang dikirim dan diproses. Semua yang dapat ditampilkan dengan sintaks XML dapat dimasukkan dalam pesan body. Setiap elemen Envelope harus berisi tepat satu elemen Body. Elemen Body dapat berisi sebanyak mungkin child nodes yang diperlukan. Isi dari elemen Body adalah pesan. Elemen Body ditentukan dalam suatu cara dimana dapat berisi valid dan wellformed XML yang telah dibatasi oleh suatu namespace (qualified). Jika sebuah Envelope berisi elemen Header, harus berisi tidak lebih dari satu, dan harus tampak pada first child dari Envelope, sebelum elemen Body. Header dapat berisi valid, well-formed, dan dibatasi dengan namespace XML dimana hendak dimasukkan oleh pencipta pesan SOAP. Setiap elemen yang berada dalam Header disebut blok header. Tujuan dari blok header adalah untuk memberitahukan infomasi yang berhubungan dengan pemrosesan pesan SOAP. Berikut gambar posisi SOAP dalam aplikasi dan contoh struktur pesan SOAP :
  • 7. SOAP anatomi call Contoh struktur pesan SOAP 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
  • 8.  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 Teknologi SOAP dan Perangkat Mobile Salah satu kegunaan perkembangan teknologi informasi berbasis mobile adalah untuk memudahkan siapa saja dalam mengakses 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 ini bisa 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 terutama Remote 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. Protocol berbasis XML ini terdiri dari tiga bagian amplop yang mendefinisikan apa yang ada dalam pesan dan bagaimana proses itu satu set aturan pengkodean untuk mengungkapkan kasus defined datatypes aplikasi, dan konvensi untuk mewakili panggilan prosedur dan tanggapan.
  • 9. 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 untuk protocol 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 dalam SOAP. 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 biasa berbasis XML untuk informasi yang ditransfer, serta sekumpulan aturan bagi translasi aplikasi dan tipe-tipe data platform yang spesifik menjadi bentuk XML. Desain bentuk dari SOAP membuatnya cocok untuk berbagai pertukaran pesan pada aplikasi. SOAP adalah protocol untuk pertukaran informasi dengan desentralisasi dan terdistribusi. SOAP dibangun dengan menggunakan protocol komunikasi HTTP. Karena HTTP didukung oleh semua browser dan server, maka SOAP dapat berkomunikasi dengan berbagai aplikasi meskipun terdapat perbedaan sistem operasi, teknologi, dan bahasa pemrogramannya. Peran SOAP di dalam teknologi web service adalah sebagai protocol pemaketan untuk pesan-pesan (messages) yang digunakan secara bersama oleh aplikasi-aplikasi penggunanya. Spesifikasi yang digunakan tidak lebih seperti sebuah amplop biasa berbasis XML untuk informasi yang ditransfer, serta sekumpulan aturan bagi translasi aplikasi dan tipe-tipe data platform yang spesifik menjadi bentuk XML. Desain bentuk dari SOAP membuatnya cocok untuk berbagai pertukaran pesan pada aplikasi. 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
  • 10. 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 SOAP request 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 sebuah sistem aplikasi berbasis web dengan teknologi SOAP, dibutuhkan dua komponen utama yaitu, server sebagai provider entity dan client sebagai requester entity.  Contoh Program Sederhana menggunakan SOAP. Adapun studi kasus yang dipilih di sini adalah pencarian data mahasiswa. Data mahasiswa ini nanti tersimpan di sebuah server misalkan bernama A, kemudian di server B dibuat semacam interface untuk pencarian data mahasiswa tersebut. Pada saat proses pencarian tersebut, antar server A dan B saling berkomunikasi via NuSOAP webservice. Dalam implementasi studi kasus ini, pertama kita siapkan data mahasiswa terlebih dahulu di server A, misalkan dibuat tabel database sbb: Dan berikut ini adalah sampel recordnya
  • 11. Selanjutnya, kita siapkan script NuSOAP yang nantinya diletakkan di server A. Script ini nanti diperlukan untuk melayani request yang dilakukan oleh server B. server.php Perhatikan pada script server.php di atas, bahwa di situ terdapat method dengan nama ‘search’. Method dengan parameter ‘key’ yang merupakan keyword pencarian ini nanti yang akan dipanggil oleh oleh server B ketika pencarian data. Jangan lupa pastikan method ‘search’ harus diregistrasikan dengan perintah Jika tidak, maka method tersebut tidak bisa dipanggil. Perhatikan juga bahwa apabila diinginkan data return suatu webservice berupa multiple data, maka data yang direturn harus tersaji dalam bentuk array.
  • 12. Berikutnya, kita buat script interface untuk pencarian data mahasiswa di server B. client.php Keterangan: Untuk mengetahui ada tidaknya hasil pencarian data yang merupakan response dari server A adalah cukup mudah, yaitu menggunakan function is_array(). Jika data hasil pencarian tidak ditemukan, maka data response bukan merupakan array sehingga nilai is_array() ini adalah FALSE. Sedangkan jika data hasil pencarian ditemukan, maka nilai is_array() adalah TRUE. Bagaimana untuk mengetahui jumlah data hasil pencarian, cukup mudah yaitu gunakan function count() yang akan menghitung jumlah elemen dari data array hasil response. Berikut ini contoh tampilan dari interface pencarian data mahasiswa hasil implementasi dari NuSOAP webservice.
  • 13. 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. Respresentational State Transfer ( REST ), adalah suatu gaya arsitektur perangkat lunak untuk untuk pendistibusian sistem hipermedia seperti WWW. Istilah ini diperkenalkan pertama kali pada tahun 2000 pada disertasi doktoral Roy Fielding, salah seorang penulis utama spesifikasi HTTP. Istilah ini selanjutnya dipergunakan secara luas pada komunitas jaringan. REST secara spesifik merujuk pada suatu koleksi prinsip-prinsip arsitektur jaringan yang menggariskan pendefinisian dan pengalamatan sumber daya. Istilah ini sering digunakan dengan longgar untuk mendeskripsikan semua antarmuka sederhana yang menyampaikan data dalam domain spesifik melalui HTTP tanpa tambahan lapisan pesan seperti SOAP atau pelacakan sesi menggunakan cookie HTTP. Dua pengertian ini dapat menimbulkan konflik dan juga tumpang tindih. Dimungkinkan untuk merancang suatu sistem perangkat lunak besar sesuai dengan gaya arsitektur REST Fielding tanpa menggunakan HTTP dan tanpa berinteraksi dengan WWW. Juga dimungkinkan untuk merancang antarmuka
  • 14. XML+HTTP sederhana yang tidak mengikuti prinsip-prinsip REST, tapi sebaliknya mengikuti model dari RPC (remote procedure call). Perbedaan penggunaan istilah REST ini cukup menyebabkan permasalahan dalam diskusi-diskusi teknis. Sistem yang mengikuti prinsip REST Fielding sering disebut sebagai "RESTful". 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 linklink 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. 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 bukan kumpulan-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 API, Amazon API. (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. 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 prinsipprinsip arsitektur network yang menggambarkan bagaimana resource didefinisikan dan dialamati (bagaimana mengakses resource yang didefinisikan).
  • 15. 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. Contoh Source Code Sederhana dalam penggunaan REST Apache HttpClient perpustakaan menyederhanakan menangani permintaan HTTP. Untuk menggunakan library ini Anda harus men-download binari dengan dependensi dari situs web mereka. Berikut adalah kode untuk HTTP GET metode: