Selasa, 19 November 2013

RPC (Remote Procedur Call), SOAP (Simple Object Access Protocol), dan REST (REpresentational State Transfer)


Web Services adalah software sistem design yang memungkinkan untuk INTEROPERABILITY  aplikasi antara komputer satu dengan lainnya melalui jaringan via HTTP. Dengan web services, aplikasi di satu komputer memanggil method ( method-method ) di aplikasi lain, di komputer yang berbeda, dengan bahasa Pemrograman yang bisa berbeda. Misalkan kita di sisi server membuat web services menggunakan .NET, di sisi client kita tidak perlu mempunyai .NET. Nah, bagaimana komunikasinya ? Web Service mengeluarkan output berformat XML yang disebuat WSDL ( Web Service Description Language).  Nah, file XML ini yang dikonsumsi oleh client dan didapatlah output.

Remote Procedure Call (RPC)
Sebuah metode yang memungkinkan kita untuk mengakses sebuah prosedur yang berada di komputer lain. Untuk dapat melakukan ini sebuah  server harus menyediakan layanan  remote procedure.Pendekatan yang dilakuan adalah sebuah  server membuka  socket, lalu menunggu client yang meminta prosedur yang disediakan oleh server. Bila client tidak tahu haruS menghubungi  port yang mana,  client bisa me-request kepada sebuah  matchmaker pada sebuah RPC  port yang tetap.  Matchmaker akan memberikan  port apa yang digunakan oleh prosedur yang diminta client.
RPC masih menggunakan cara primitif dalam pemrograman, yaitu menggunakan paradigma procedural programming. Hal itu membuat kita sulit ketika menyediakan banyak  remote procedure. RPC menggunakan  socket untuk berkomunikasi dengan proses lainnya. Pada sistem seperti SUN, RPC secara default sudah ter-install kedalam sistemnya, biasanya RPC  ini digunakan untuk administrasi sistem. Sehingga seorang administrator jaringan dapat mengakses sistemnya dan mengelola sistemnya dari mana saja, selama sistemnya terhubung ke jaringan.

Kelebihan RPC
-           Relatif mudah digunakan :
Pemanggilan remote procedure tidak jauh berbeda dibandingkan pemanggilan procedure.  Sehingga pemrogram  dapat berkonsentrasi pada software logic, tidak perlu memikirkan low  level details seperti  socket, marshalling &  unmarshalling.
-          Robust (Sempurna):
Sejak th 1980-an RPC telah banyak digunakan dlm pengembangan mission- critical application yg memerlukan  scalability, fault tolerance, & reliability.


Kekurangan RPC
-          Tidak fleksibel terhadap perubahan:
-          Static relationship between client & server at run-time.
-          Berdasarkan prosedural/structured programming yang sudah ketinggalan jaman dibandingkan OOP.

Simple Object Access Protocol (SOAP)
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.
SOAP bisa dikatakan sebagai implementasi web service yang lebih mapan, dengan memakai beberapa standarisasi dari W3C, sehingga mempunyai interopability yang lebih tinggi. Permasalahan awal dari perkembangan SOAP web service adalah pembuatan program di bagian client dan server yang bisa dikatakan cukup sulit. Tapi dengan bantuan tools dari beberapa developer, seperti Visual Studio, membuat sebuah SOAP web service menjadi lebih gampang, sehingga sangat membatu dalam pembuatan dan pengembangan.
Beda halnya dengan REST, SOAP web service lebih menekankan pada akses objek secara sederhana dibandingkan dengan transfer objek yang diwakili oleh sebuah URL. Sehingga bahasa pemrograman terlihat lebih nyata dengan SOAP web service. Yang mana sekema ataupun kontrak dari objek digambarkan secara jelas oleh WSDL dalam format XML schema.
 Adapun spesifikasi kelebihan dan kekurangan dari SOAP web service adalah sebagai berikut :
-          Pesan (message) dipaket dalam standarisasi SOAP envelope. Yang mana pada header paket bisa disisipi dengan otentikasi dan pengamanan yang dibuat sendiri.
-          Tidak hanya bisa memakai protokol HTTP tapi juga bisa juga berjalan di SMPT atau MIME.
-          Cara akses dan manipulasi data tergantung web service.
-          Pengamanan dan Autentikasi data dilakukan sepenuhnya oleh aplikasi di server.
-          Metode dan struktur kelas, secara formal digambarkan oleh WSDL dalam sekema XML.
-          Karena pembuatan dan pengembangan SOAP web service cukup memakan biaya maka hingga saat ini masih sedikit perusahan-perusahaan yang memakai SOAP web service.

 Beberapa contoh SOAP web service adalah Google API, Yahoo! API, del.icio.us


REpresentational State Transfer (REST )
Salah satu jenis web service sederhana. Sesuai dengan namanya, dalam REST setiap URL yang tersedia mewakili sebuah atau beberapa objek. Karena REST adalah tipe web service yang paling sederhana maka hanya bisa diakses dengan protokol HTTP, dengan fungsi GET, POST, PUT atau DELETE.
Adapun spesifikasi kelebihan dan kekurang REST adalah sebagai berikut :
-          Pesan (message) diwakili oleh xml sederhana tanpa ada protokol pemaketan data seperti halnya SOAP. Sehingga informasi yang diterima lebih mudah dibaca dan diparsing di sisi client.
-          Pada sisi server tidak diperlukan program untuk melayani setiap permintaan atau manipulasi data dari client.
-          Pengamanan data sepenuhnya diserahkan pada protokol HTTP.
-          Untuk proses akses data dilakukan dengan memakai verb HTTP seperti GET, POST, PUT dan DELETE.
-          Tidak ada fungsi atau metode formal yang bisa diwakili oleh kontrak sebuah interface. Sehingga
-          Dalam pengaplikasiannya REST lebih banyak digunakan karena sifatnya yang sederhana dan lebih mudah dalam pembuatan maupun pengembangannya.
RESTful web service atau juga dikenal dengan nama RESTful Web API merupakan sebuah web service yang di implemantasikan dengan menggunakan http dengan menggunakan prinsip-prinsip REST. Service yang digunakan menggunakan method milik http antara lain GET, PUT, POST or DELETE.

<?php
  print_r($_SERVER);
?>

[REQUEST_METHOD] => GET

Untuk penggunaan method GET, POST, PUT, atau DELETE bisa sesuai kebutuhan.
GET: bisa digunakan apabila request ke server merupakan data yang sedikit. Karena GET ada keterbatasan data. Contoh pengguanan URL di browser
POST: bisa di gunakan apabila pengiriman data dengan data yang banyak. Contoh: data yang ada di form dengan method post.
PUT: bisa di gunakan untuk pengiriman file melalui service. Contoh: upload file
DELETE: Untuk yang satu ini sangat jarang digunakan. Karena terkadang bisa di wakili oleh GET. Tapi, ada baiknya digunakan untuk proses penghapusan di data diserver.
Untuk hasil response dari server, RESTful dapat mengeluarkan data berupa json, xml dan text format. Sehingga penggunaannya sesuai kesepakatan. Apakah akan menggunakan xml, json atau text sebagai pesan yang di kirim kan.

Beberapa contoh web service REST yang dipakai oleh website-website terkenal adalah: Flickr API, YouTube API, Amazon API, Webjay API.

Contoh program sederhana mengenai penggunaan RPC, SOAP dan REST
RPC
SOAP
Controller.PHP
Buat SOAP.PHP

Hasil :
Kalau berhasil, maka akan menampilkan angka 52 , karena kita memanggil function penambahan_data dengan input parameter 45 dan 7.