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.