SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
TUGAS PEMROGRAMAN 3
MEMBUAT ESSAY TENTANG RPC, REST
DAN SOAP

Disusun Oleh :
BRIAN INDRA AGATHA HIA (1100631007)
MI A
TUGAS PEMROGRAMAN 3
MEMBUAT ESSAY TENTANG RPC, REST DAN SOAP

RPC ( Remote Procedure Call )
RPC adalah suatu protokol yang menyediakan suatu mekanisme
komunikasi antar proses yang mengijinkan suatu program untuk berjalan
pada suatu komputer tanpa terasa adanya eksekusi kode pada sistem yang
jauh (remote system). RPC mengasumsi keberadaan dari low-level protokol
transportasi seperti TCP atau UDP untuk membawa pesan data dalam
komunikasi suatu program. Protokol RPC dibangun diatas protokol eXternal
Data Representation (XDR), yang merupakan standar dari representasi data
dalam komunikasi remote. Protokol XDR mengubah parameter dan hasil dari
tiap servis RPC yang disediakan.
Protokol RPC mengijinkan pengguna (users) untuk bekerja dengan
prosedur remote sebagaimana bekerja dengan prosedur lokal. Prosedur
panggilan remote (remote procedure calls) didefinisikan melalui rutin yang
terkandung didalam protokol RPC. Tiap message dari panggilan akan
disesuaikan dengan message balikan. Protokol RPC sendiri sebenarnya adalah
suatu protokol untuk ”meneruskan pesan” yang mengimplemntasikan
protokol non-RPC lain seperti panggilan remote batching dan broadcasting.
Protokol ini juga mendukung adanya prosedur callback dan select subroutine
pada sisi server.
Fitur dalam RPC
RPC memiliki fitur - fitur sebagai berikut : batching calls, broadcasting
calls, callback procedures dan using the select subroutine.

 Batching Calls
Fitur Batching calls mengijinkan klien untuk mengirim message calls ke
server dalam jumlah besar secara sequence ( berurutan ). Batching
menggunakan protokol streaming byte seperti TCP / IP sebagai mediumnya.
Pada saat melakukan batching, klien tidak menunggu server untuk
memberikan reply terhadap tiap messages yang dikirim, begitu pula dengan
server yang tidak pernah mengirimkan messages reply. Fitur inilah yang
banyak digunakan klien, karena arsitektur RPC didesain agar pada tiap call
message yang dikirimkan oleh klien harus ada proses menunggu balasan dari
server. Oleh karena itu maka pihak klien harus dapat mengatasi error yang
kemungkinan terjadi karena pihak klien tidak akan menerima peringatan
apabila terjadi error pada message yang dikirim.

 Broadcasting Calls
Fitur Broadcasting mengijinkan klien untuk mengirimkan paket data ke
jaringan dan menunggu balasan dari network. FItur ini menggunakan
protokol yang berbasiskan paket data seperti UDP/IP sebagai mediumnya.
Broadcast RPC membutuhkan layanan port mapper RPC untuk
mengimplementasikan fungsinya.

 Callback Procedures
Fitur Callback Procedures mengijinkan server untuk bertindak sebagai
klien dan melakukan RPC callback ke proses yang dijalankan oleh klien.
 Menggunakan select Subrutin
Fitur ini akan memeriksa deskripsi dari suatu file dan messages dalam
antrian untuk melihatapakah mereka siap untuk dibaca (diterima) atau ditulis
(dikirim), atau mereka dalam kondisi ditahan sementara. Prosedur ini mengijinkan
server untuk
menginterupsi suatu aktivitas, memeriksa datanya, dan kemudian
melanjutkan proses aktivitas tersebut.

CONTOH SOURCE CODE RPC

Respresentational State Transfer (REST)
REST adalah salah satu jenis web service yang menerapkan konsep perpindahan antar
state. State disini dapat digambarkan seperti jika browser meminta suatu halaman web, maka
serverakan mengirimkan state halaman web yang sekarang ke browser. Bernavigasi melalui
link-link yang disediakan sama halnya dengan mengganti state dari halaman web. Begitu pula
REST bekerja, dengan bernavigasi melalui link-link HTTP untuk melakukan aktivitas
tertentu, seakan-akan terjadi perpindahan state satu sama lain. Perintah HTTP yang bisa
digunakan adalah fungsi GET, POST, PUT atau DELETE. Balasan yang dikirimkan adalah
dalam bentuk XML sederhana tanpa ada protokol pemaketan data, sehingga informasi yang
diterima lebih mudah dibaca dan diparsing disisi client.
(REST – Respresentational State Transfer) itu, bukanlah spesifikasi standard seperti halnya
XML-RPC dan SOAP, tapi desain dan style arsitektural dari arsitektur software berbasis
network.
REST merupakan collection dari prinsip-prinsip arsitektur network yang menggambarkan
bagaimana mengakses resource yang didefinisikan.
REST (Representational State Transfer). Terminologi REST dikemukakan oleh Roy Fielding
(salah satu penulis spesifikasi HTTP) dalam disertasi Ph.D. nya untuk menggambarkan
sebuah style arsitektur dari sistem network. Ada dua pengartian REST, pertama: REST
merupakan collection (saya menggunakan kata tetap collection, bukan koleksi, karena
AtomPub menggunakan element untuk mendeskripsikan koleksi service) dari prinsip-prinsip
arsitektur network yang menggambarkan bagaimana resource didefinisikan dan dialamati
(bagaimana mengakses resource yang didefinisikan).
Pengertian kedua: Sebuah interface yang mengirim data (pada domain tertentu) melalui
HTTP tanpa menggunakan layer messaging seperti SOAP atau session tracking via HTTP
cookies. Kedua pengertian ini dapat saling bertentangan dan saling menimpa. Kita dapat saja
mendesain sistem perangkat lunak besar yang sesuai dengan style arsitektur REST tanpa
perlu menggunakan HTTP dan tanpa perlu berinteraksi dengan WWW. Kita juga dapat
mendesain interface berbasis XML+HTTP yang tidak sesuai dengan prinsip REST, tapi
meniru RPC-style.
Inilah yang yang membuat bingung, bagaimana sih terminologi REST harus digunakan? Dan
sistem seperti apa sih yang sesuai dengan prinsip REST? Sistem yang mengikuti
(mengimplementasi) sesuai dengan prinsip REST nya si Roy Fielding ini sering disebut
sebagai RESTful. AtomPub (Atom Publishing Protocol) yang digunakan untuk posting blog
sering dianggap sebagai standard RESTful protocol (saya akan bahas AtomPub juga, nanti).
OK, sampai saat ini pasti konsep RESTful masih belum jelas bagi Anda, kita kembali lagi ke
REST. Kenapa si Roy Fielding menyebut style arsitektur miliknya ini sebagai
“Representational State Transfer” ? Hmmm..
Ada tiga kata yang perlu di jelaskan disini, yaitu “Representation” (saya akan selalu
menggunakan kata representation, tapi tetap berarti suatu representasi, wujud atau bentuk),
“State” dan “Transfer“. OK, kita anggap web terdiri atas kumpulan resources. Domaindomain di internet ini memberikan resources baik kepada browser atau aplikasi yang
diprogram untuk mengakses resource tersebut. Sebuah resource merupakan sesuatu
(dokumen, file atau apapun) yang dinginkan oleh pengakses (client). Browser menginginkan
resource tersebut disajikan dalam dokumen HTML, aplikasi lain mengingikan dalam format
XML agar bisa diolah lebih lanjut.
Contoh SourceCode REST

Simple Object Access Protocol SOAP
Simple Object Access Protocol (SOAP) adalah sebuah standarisasi dasar dari protokol
komunikasi untuk saling bertukar informasi terstruktur di antara aplikasi-aplikasi yang
berjalan. SOAP adalah sebuah aplikasi pesan XML yang sangat bergantung pada skema
XML dan XML namespaces untuk mendifinisikannya. SOAP juga sangat bergantung dengan
beberapa protokol layer lainnya seperti HTTP, JMS, RPC untuk transmisi pesan.
SOAP sangat efektif untuk berbabagai macam aplikasi untuk berkomunikasi walaupun
berjalan pada sistem operasi yang berbeda dengan teknologi dan bahasa pemrograman yang
berbeda-beda pula.
Pesan SOAP mempunyai struktur sebagai berikut :
SOAP Messages Structure

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 SOAP
Server.php
<?php
// mengincludekan file berisi class nusoap
require_once('lib/nusoap.php');
// instansiasi class soap untuk server
$server = new soap_server;
// meregistrasi 'method' untuk proses penjumlahan dengan nama 'jumlahkan'
$server->register('jumlahkan');
// detil isi method 'jumlahkan'
function jumlahkan($x, $y) {
return $x + $y;
}
// memberikan response service
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA :
'';
$server->service($HTTP_RAW_POST_DATA);
?>

Keterangan: Setiap method yang dibuat, nama method harus diregisterkan dengan perintah
$server->register('nama method');

Langkah berikutnya, kita tulis script yang nantinya diletakkan di komputer A di sisi client.
Client.php
<?php
require_once('lib/nusoap.php');
// dua bilangan yang akan dijumlahkan
$bil1 = 10;
$bil2 = 25;
// instansiasi obyek untuk class nusoap client
$client = new nusoap_client('http://nomor_ip_komputerB/../server.php');
// proses call method 'jumlahkan' di script server.php yang ada di komputer
B
$result = $client->call('jumlahkan', array('x' => $bil1, 'y' => $bil2));
echo "<p>Hasil penjumlahan ".$bil1." dan ".$bil2." adalah ".$result."</p>";
?>

Jika script client.php ini dijalankan di komputer client (dalam hal ini komputer A), maka akan
menghasilkan output sbb:

Más contenido relacionado

Destacado

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destacado (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Tugas pemrograman3 rpc_rest_dan_soap_1100631007

  • 1. TUGAS PEMROGRAMAN 3 MEMBUAT ESSAY TENTANG RPC, REST DAN SOAP Disusun Oleh : BRIAN INDRA AGATHA HIA (1100631007) MI A
  • 2. TUGAS PEMROGRAMAN 3 MEMBUAT ESSAY TENTANG RPC, REST DAN SOAP RPC ( Remote Procedure Call ) RPC adalah suatu protokol yang menyediakan suatu mekanisme komunikasi antar proses yang mengijinkan suatu program untuk berjalan pada suatu komputer tanpa terasa adanya eksekusi kode pada sistem yang jauh (remote system). RPC mengasumsi keberadaan dari low-level protokol transportasi seperti TCP atau UDP untuk membawa pesan data dalam komunikasi suatu program. Protokol RPC dibangun diatas protokol eXternal Data Representation (XDR), yang merupakan standar dari representasi data dalam komunikasi remote. Protokol XDR mengubah parameter dan hasil dari tiap servis RPC yang disediakan. Protokol RPC mengijinkan pengguna (users) untuk bekerja dengan prosedur remote sebagaimana bekerja dengan prosedur lokal. Prosedur panggilan remote (remote procedure calls) didefinisikan melalui rutin yang terkandung didalam protokol RPC. Tiap message dari panggilan akan disesuaikan dengan message balikan. Protokol RPC sendiri sebenarnya adalah suatu protokol untuk ”meneruskan pesan” yang mengimplemntasikan protokol non-RPC lain seperti panggilan remote batching dan broadcasting. Protokol ini juga mendukung adanya prosedur callback dan select subroutine pada sisi server.
  • 3. Fitur dalam RPC RPC memiliki fitur - fitur sebagai berikut : batching calls, broadcasting calls, callback procedures dan using the select subroutine.  Batching Calls Fitur Batching calls mengijinkan klien untuk mengirim message calls ke server dalam jumlah besar secara sequence ( berurutan ). Batching menggunakan protokol streaming byte seperti TCP / IP sebagai mediumnya. Pada saat melakukan batching, klien tidak menunggu server untuk memberikan reply terhadap tiap messages yang dikirim, begitu pula dengan server yang tidak pernah mengirimkan messages reply. Fitur inilah yang banyak digunakan klien, karena arsitektur RPC didesain agar pada tiap call message yang dikirimkan oleh klien harus ada proses menunggu balasan dari server. Oleh karena itu maka pihak klien harus dapat mengatasi error yang kemungkinan terjadi karena pihak klien tidak akan menerima peringatan apabila terjadi error pada message yang dikirim.  Broadcasting Calls Fitur Broadcasting mengijinkan klien untuk mengirimkan paket data ke jaringan dan menunggu balasan dari network. FItur ini menggunakan protokol yang berbasiskan paket data seperti UDP/IP sebagai mediumnya. Broadcast RPC membutuhkan layanan port mapper RPC untuk mengimplementasikan fungsinya.  Callback Procedures Fitur Callback Procedures mengijinkan server untuk bertindak sebagai klien dan melakukan RPC callback ke proses yang dijalankan oleh klien.
  • 4.  Menggunakan select Subrutin Fitur ini akan memeriksa deskripsi dari suatu file dan messages dalam antrian untuk melihatapakah mereka siap untuk dibaca (diterima) atau ditulis (dikirim), atau mereka dalam kondisi ditahan sementara. Prosedur ini mengijinkan server untuk menginterupsi suatu aktivitas, memeriksa datanya, dan kemudian melanjutkan proses aktivitas tersebut. CONTOH SOURCE CODE RPC Respresentational State Transfer (REST) REST adalah salah satu jenis web service yang menerapkan konsep perpindahan antar state. State disini dapat digambarkan seperti jika browser meminta suatu halaman web, maka serverakan mengirimkan state halaman web yang sekarang ke browser. Bernavigasi melalui link-link yang disediakan sama halnya dengan mengganti state dari halaman web. Begitu pula REST bekerja, dengan bernavigasi melalui link-link HTTP untuk melakukan aktivitas tertentu, seakan-akan terjadi perpindahan state satu sama lain. Perintah HTTP yang bisa digunakan adalah fungsi GET, POST, PUT atau DELETE. Balasan yang dikirimkan adalah dalam bentuk XML sederhana tanpa ada protokol pemaketan data, sehingga informasi yang diterima lebih mudah dibaca dan diparsing disisi client. (REST – Respresentational State Transfer) itu, bukanlah spesifikasi standard seperti halnya XML-RPC dan SOAP, tapi desain dan style arsitektural dari arsitektur software berbasis network.
  • 5. REST merupakan collection dari prinsip-prinsip arsitektur network yang menggambarkan bagaimana mengakses resource yang didefinisikan. REST (Representational State Transfer). Terminologi REST dikemukakan oleh Roy Fielding (salah satu penulis spesifikasi HTTP) dalam disertasi Ph.D. nya untuk menggambarkan sebuah style arsitektur dari sistem network. Ada dua pengartian REST, pertama: REST merupakan collection (saya menggunakan kata tetap collection, bukan koleksi, karena AtomPub menggunakan element untuk mendeskripsikan koleksi service) dari prinsip-prinsip arsitektur network yang menggambarkan bagaimana resource didefinisikan dan dialamati (bagaimana mengakses resource yang didefinisikan). Pengertian kedua: Sebuah interface yang mengirim data (pada domain tertentu) melalui HTTP tanpa menggunakan layer messaging seperti SOAP atau session tracking via HTTP cookies. Kedua pengertian ini dapat saling bertentangan dan saling menimpa. Kita dapat saja mendesain sistem perangkat lunak besar yang sesuai dengan style arsitektur REST tanpa perlu menggunakan HTTP dan tanpa perlu berinteraksi dengan WWW. Kita juga dapat mendesain interface berbasis XML+HTTP yang tidak sesuai dengan prinsip REST, tapi meniru RPC-style. Inilah yang yang membuat bingung, bagaimana sih terminologi REST harus digunakan? Dan sistem seperti apa sih yang sesuai dengan prinsip REST? Sistem yang mengikuti (mengimplementasi) sesuai dengan prinsip REST nya si Roy Fielding ini sering disebut sebagai RESTful. AtomPub (Atom Publishing Protocol) yang digunakan untuk posting blog sering dianggap sebagai standard RESTful protocol (saya akan bahas AtomPub juga, nanti). OK, sampai saat ini pasti konsep RESTful masih belum jelas bagi Anda, kita kembali lagi ke REST. Kenapa si Roy Fielding menyebut style arsitektur miliknya ini sebagai “Representational State Transfer” ? Hmmm.. Ada tiga kata yang perlu di jelaskan disini, yaitu “Representation” (saya akan selalu menggunakan kata representation, tapi tetap berarti suatu representasi, wujud atau bentuk), “State” dan “Transfer“. OK, kita anggap web terdiri atas kumpulan resources. Domaindomain di internet ini memberikan resources baik kepada browser atau aplikasi yang diprogram untuk mengakses resource tersebut. Sebuah resource merupakan sesuatu (dokumen, file atau apapun) yang dinginkan oleh pengakses (client). Browser menginginkan resource tersebut disajikan dalam dokumen HTML, aplikasi lain mengingikan dalam format XML agar bisa diolah lebih lanjut.
  • 6. Contoh SourceCode REST Simple Object Access Protocol SOAP Simple Object Access Protocol (SOAP) adalah sebuah standarisasi dasar dari protokol komunikasi untuk saling bertukar informasi terstruktur di antara aplikasi-aplikasi yang berjalan. SOAP adalah sebuah aplikasi pesan XML yang sangat bergantung pada skema XML dan XML namespaces untuk mendifinisikannya. SOAP juga sangat bergantung dengan beberapa protokol layer lainnya seperti HTTP, JMS, RPC untuk transmisi pesan. SOAP sangat efektif untuk berbabagai macam aplikasi untuk berkomunikasi walaupun berjalan pada sistem operasi yang berbeda dengan teknologi dan bahasa pemrograman yang berbeda-beda pula. Pesan SOAP mempunyai struktur sebagai berikut :
  • 7. SOAP Messages Structure 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 SOAP Server.php <?php // mengincludekan file berisi class nusoap require_once('lib/nusoap.php'); // instansiasi class soap untuk server $server = new soap_server; // meregistrasi 'method' untuk proses penjumlahan dengan nama 'jumlahkan' $server->register('jumlahkan'); // detil isi method 'jumlahkan' function jumlahkan($x, $y) { return $x + $y; } // memberikan response service $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA); ?> Keterangan: Setiap method yang dibuat, nama method harus diregisterkan dengan perintah $server->register('nama method'); Langkah berikutnya, kita tulis script yang nantinya diletakkan di komputer A di sisi client.
  • 8. Client.php <?php require_once('lib/nusoap.php'); // dua bilangan yang akan dijumlahkan $bil1 = 10; $bil2 = 25; // instansiasi obyek untuk class nusoap client $client = new nusoap_client('http://nomor_ip_komputerB/../server.php'); // proses call method 'jumlahkan' di script server.php yang ada di komputer B $result = $client->call('jumlahkan', array('x' => $bil1, 'y' => $bil2)); echo "<p>Hasil penjumlahan ".$bil1." dan ".$bil2." adalah ".$result."</p>"; ?> Jika script client.php ini dijalankan di komputer client (dalam hal ini komputer A), maka akan menghasilkan output sbb: