PERKEMBANGAN
TEKNOLOGI WEB SERVICE
Kelahiran
Web Science didorong oleh pergerakan generasi Web dari Web 1.0 ke Web 3.0.
sejak diperkenalkan Web pada tahun 1990 oleh Tim Berners-Lee, terjadi
perkembangan yang luar biasa.
Perbedaan
utama dari setiap generasi adalah pada Web 1.0 masih bersifat read-only, pada
Web 2.0 bergerak ke arah read-write, sedangkan pada Web 3.0 mengembangkan
hubungan manusia ke manusia, manusia ke mesin, dan mesin ke mesin.
Pada
Web 2.0 kegiatan sosial sudah dimulai, dengan semakin popularnya berbagai
fasilitas seperti wikipedia, blog, friendster dan sebagainya. Tetapi kendala
utama pada Web 2.0 adalah penanganan untuk pertukaran data masih sulit.
Web
3.0 mencoba menyempurnakan Web 2.0 dengan memberikan penekanan penelitian pada
Semantic Web, Ontology, Web Service, Social Software, Folksonomies dan
Peer-to-Peer. Penelitian ini sangat memperhatikan ‘budaya’ sebuah komunitas
terhadap kebutuhan akan sebuah data atau informasi.
Dengan
semakin banyaknya pemakaian aplikasi dengan rancang bangun bahasa pemrograman
yang berbeda, maka menimbulkan potensi banyaknya data yang dibuat
bermacam-macam ekstensi. Sementara itu dalam berbagai kasus dimana sekarang
kita telah menggunakan sebuah jaringan dalam berbagi data, kita membutuhkan
informasi dari data-data yang beragam. Maka dari itu muncullah beberapa
teknologi yang dapat menghubungkan data dari satu aplikasi dengan aplikasi
lainnya, salah satunya yang terbaru an mulai digunakan adalah Web Service.
Web
service adalah aplikasi sekumpulan data (database), perangkat lunak (software)
atau bagian dari perangkat lunak yang dapat diakses secara remote oleh berbagai
piranti dengan sebuah perantara tertentu. Secara umum, web service dapat
diidentifikasikan dengan menggunakan URL seperti halnya web pada umumnya. Namun
yang membedakan web service dengan web pada umumnya adalah interaksi yang
diberikan oleh web service berbeda dengan URL web pada umumnya, URL web service
hanya menggandung kumpulan informasi, perintah, konfigurasi atau sintaks yang
berguna membangun sebuah fungsi-fungsi tertentu dari aplikasi.
Web
service dapat diartikan juga sebuah metode pertukaran data, tanpa memperhatikan
dimana sebuah database ditanamkan, dibuat dalam bahasa apa, sebuah aplikasi
yang mengkonsumsi data, dan di platform apa sebuah data itu dikonsumsi. Web
service mampu menunjang interoperabilitas. Sehingga web service mampu menjadi
sebuah jembatan penghubung antara berbagai sistem yang ada.
Pada
web service hubungan antara client dan server tidak terjadi secara langsung.
Hubungan antara client dan server dijembatani oleh file web service dalam
format tertentu. Sehingga akses terhadap databasevakan ditanggani tidak secara
langsung oleh server, melainkan melalui perantara yang disebut sebagai web
service. Peran dari web service ini akan mempermudah distribusi sekaligus
integrasi database yang tersebar di beberapa server sekaligus.
Web
Services memungkinkan berlangsungnya komunikasi antar aplikasi yang berbeda
dengan platform yang berbeda pula. Web Services dapat diimplementasikan dalam
berbagai jenis platform dengan menggunakan bahasa pemrograman apa pun, dan bisa
digunakan oleh berbagai aplikasi yang menggunakan bahasa pemrograman apapun
dengan platform apapun juga. Selama aplikasi tersebut dapat berkomunikasi
dengan Web Services menggunakan protokol-protokol komunikasi. Termasuk HTTP,
XML, SOAP, UDDI (Universal Description Discovery and Integration), dan WSDL
(Web Services Description Language).
Ada
berbagai macam asitektur web service, diantaranya adalah SOAP dan REST. REST
masih cukup baru, sedangkan SOAP telah merevolusi RPC dan lebih terbuka
dibanding batasan-batasan yang ada di versi sebelumnya.
Web Service SOAP
SOAP
(Simple Object Access Protocol) adalah standar untuk bertukar pesan-pesan
berbasis XML melalui jaringan komputer atau sebuah jalan untuk program yang
berjalan pada suatu sistem operasi (OS) untuk berkomunikasi dengan program pada
OS yang sama maupun berbeda dengan menggunakan HTTP dan XML sebagai mekanisme
untuk pertukaran data, maka SOAP dapat berkomunikasi dengan berbagai aplikasi
meskipun terdapat perbedaan sistem operasi, teknologi, dan bahasa
pemrogramannya.
Sebenarnya
peran SOAP di dalam teknologi web service sebagai protokol pemaketan untuk
pesan-pesan (messages) yang digunakan secara bersama oleh aplikasi-aplikasi
penggunanya serta menspesifikan secara jelas bagaimana cara untuk meng-encode
header HTTP dan file XML sehingga program pada suatu komputer dapat memanggil
program pada komputer lain dan mengirimkan informasi, dan bagaimana program
yang dipanggil memberikan tanggapan.
Kelebihan SOAP
·
bahasa,
platform, dan transport agnostic
·
dirancang
untuk menangani lingkungan komputasi terdistribusi
·
merupakan
standar yang berlaku untuk web service, sehingga mempunyai dukungan yang lebih
baik dari standar yang lain (WSDL, WS-*) dan tools dari berbagai vendor
·
built-in
error handling (faults)
·
extensibility
Kekurangan SOAP
·
secara
konseptual lebih sulit, lebih "heavy-weight" dibanding REST
·
lebih
"verbose" (membutuhkan lebih banyak pernyataan/kode program)
·
sulit
untuk dikembangkan, mebutuhkan tools
·
Struktur
Dokumen SOAP Sebuah pesan SOAP adalah sebuah dokumen XML yang berisi
elemen-elemen berikut:
1.
Envelope
element yang mengidentifikasi dokumen XML sebagai sebuah pesan SOAP.
2.
Header
element yang berisi informasi header.
3.
Body
element yang berisi panggilan dan merespon informasi.
4.
Fault
element yang berisi pesan kesalahan yang terjadi pada waktu proses.
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 Message
Bagian
header menyimpan informasi yang berhubungan dengan cara memproses message ini.
Di dalamnya termasuk informasi mengenai pengaturan pengiriman, autentikasi dan
autorisasi, dan konteks transaksinya. Sedangkan bagian body menyimpan message
yang akan di prosesnya. Sintaks XML apapun dapat dimasukan ke dalam bagian body
ini. Contoh SOAP Message:
SOAP Transport
SOAP
merupakan protokol pemaketan data yang berada di atas layer network dan
transport. Sebagai suatu protokol pemaketan data, SOAP menjadi fleksibel dalam
penggunaan. Contohnya, sebuah web service SOAP berbasis Perl yaitu SOAP::Lite,
mendukung pertukaran SOAP Message di beberapa protokol diantaranya HTTP, FTP,
raw TCP, SMTP, POP3, MQSeries, dan Jabber.
SOAP melalui HTTP
Protokol
HTTP merupakan protokol yang paling digunakan dalam mengirimkan SOAP Message.
SOAP mendeskripsikan model pertukaran message khusus untuk di HTTP. Dengan
begitu cara ini cocok dengan model SOAP RPC (Request-Response) dikarenakan HTTP
merupakan protokol bertipe request-response.
Pesan
SOAP Request di post ke server dengan HTTP Request, kemudian server menjawab
dengan HTTP Response yang berisi pesan SOAP Response.
Contoh
HTTP Request yang mengandung SOAP message:
Berikut
adalah contoh HTTP Response yang mengandung SOAP Message:
Web Service REST
REST
adalah singkatan dari REST stands for REpresentational State Transfer.
Merupakan standard dalam arsitektur web yang menggunakan Protocol HTTP untuk
pertukaran data. Konsep REST pertamakali diperkenalkan oleh Roy Fielding pada
tahun 2000. Cara kerjanya, REST server menyediakan jalur untuk akses resource
atau data, sedangkan REST client melakukan akses resource dan kemudian
menampilkan atau menggunakannya. Resource yang dihasilkan sebenarnya berupa
teks, namun formatnya bisa bermacam-macam tergantung keinginan developer,
umumnya adalah JSON dan XML.
Dalam
mengakses sebuah resource, REST juga menggunakan konsep URI dimana ada method
yang digunakan, by default adalah GET. Berikut ini method-method yang mendukung
REST:
·
GET,
cocok untuk resource yang hanya perlu dibaca saja (read only)
·
PUT,
cocok digunakan untuk membuat/create resource baru.
·
DELETE,
cocok digunakan untuk menghapus suatu resource.
·
POST,
cocok digunakan untuk mengupdate suatu resource.
·
OPTIONS,
cocok digunakan untuk mendapatkan operasi yang disupport pada resource.
Web
services yang berbasis arsitektur REST kemudian dikenal sebagai RESTful web
services.
Bagaimana
cara kerja restful web service? Alurnya cukup sederhana sebagai berikut:
Mula-mula
sebuah client mengirimkan sebuah data atau request melalui HTTP Request dan
kemudian server merespon melalui HTTP Response.
Komponen
dari http request adalah:
·
Verb,
HTTP method yang digunakan misalnya GET, POST, DELETE, PUT dll.
·
URI,
Uniform Resource Identifier (URI) untuk mengidentifikasikan lokasi resource
pada server.
·
HTTP
Version, menunjukkan versi dari HTTP yang digunakan, contoh HTTP v1.1.
·
Request
Header, berisi metadata untuk HTTP Request. Contoh, type client/browser, format
yang didukung oleh client, format dari body pesan, seting cache dll.
·
Request
Body, konten dari data.
Sedangkan
komponen dari http response adalah:
·
Status/Response
Code, mengindikasikan status server terhadap resource yang direquest. misal :
404, artinya resource tidak ditemukan dan 200 response OK.
·
HTTP
Version, menunjukkan versi dari HTTP yang digunakan, contoh HTTP v1.1.
·
Response
Header, berisi metadata untuk HTTP Response. Contoh, type server, panjang
content, tipe content, waktu response, dll
·
Response
Body, konten dari data yang diberikan.
Dalam
arsitektur REST, seharusnya tidak boleh menyimpan state atau penanda dari
client di server. Hal ini disebut sebagai stateless atau statelessness.
Contohnya pada kasus session, dimana session merupakan penanda client yang
disimpan diserver. Nah session pada arsitektur REST tidak diperbolehkan.
Keuntungan
dari stateless antara lain:
·
Web
services dapat melayani masing2 request secara independent.
·
Web
services tidak perlu memaintain state user, hal ini tentu membuat desain
application lebih sederhana.
HTTP
merupakan protokol yang bersifat stateless.
Sedangkan
kerugian dari stateless yaitu:
·
Web
services membutuhkan informasi tambahan pada masing-masing request untuk
menerjemahkan request dan state dari client.
Target
utama dari stateless sebenarnya adalah untuk scale-up concurrent akses terhadap
aplikasi. Karena app tidak perlu menyimpan state dari client sehingga
meningkatkan jumlah service terhadap request pada satu waktu.
Dari
penjelasan detail di atas dapat dikatakan bahwa SOAP tidak semudah itu, SOAP
membutuhkan usaha implementasi yang lebih besar dan pengetahuan di sisi klien,
sedangkan web service berbasis HTTP atau REST-API membutuhkan implementasi yang lebih besar dan
pengetahuan di sisi server. Adopsi API dapat meningkatkan lebih jauh lagi jika
interface berbasis HTTP disediakan. Faktanya, HTTP berbasis API dengan respon
XML/JSON mewakili yang terbaik dari kedua turunan dan mudah diimplementasikan
dalam server semudah mengkonsumsi melalui server.
Untuk
mengkonsumsi web service, kadang-kadang bingung mengimplementasikan mana yang
lebih mudah. Sebagai contoh Google AdWords web service sangat sulit untuk
dikonsumsi (dalam CF apapun), karena menggunakan header SOAP, dan sejumlah hal
lain yang membuatnya sulit. Sebaliknya, web service REST Amazon kadangkala
rumit untuk diuraikan (pase) karena sangat berulang, dan hasil schema dapat
sedikit bervariasi sesuai dengan apa yang Anda cari.
Arsitektur
mana yang Anda pilih, pastikan pilih yang termudah bagi developer untuk
mengaksesnya, dan tersokumentasi dengan baik. Akhirnya ketika Anda meng-host
layanan internet, hal tersebut adalah kompleksitas sisi klien yang paling
penting untuk menarik klien untuk menggunakan web service Anda.
Web
Service SOAP dan RESTful mempunyai filosofi yang berbeda. SOAP sesungguhnya
sebuah protokol komputasi terdistribusi berbasis XML, dimana REST cenderung
masih sangat baru, desain berbass web. Sebagai catatan SOAP tidak sekompleks
yang dikatakan banyak sumber, SOAP dapat dikatakan kompleks ketika digunakan
untuk banyak ekstensi
Teknologi
Web service memungkinkan sebuah aplikasi menjadi sangat kecil ukurannya, karena
kebanyakan datanya disimpan di web service sehingga tidak perlu disimpan secara
lokal. Web service ini juga memudahkan untuk memperbaharui data dalam aplikasi
karena perubahan hanya tinggal dilakukan di Web service dan semua aplikasi yang
terinstall secara lokal dan mengakses Web service ini pun akan secara otomatis
mengikuti perubahan ini. Teknologi Web service ini sangat cocok untuk
diterapkan pada aplikasi mobile dimana perangkatnya kebanyakan selalu
terkoneksi dengan Internet dan membutuhkan aplikasi-aplikasi yang ringan dalam
sisi instalasi lokalnya.
Web
Services itu digunakan saat kita akan mentransformasi sebuat bisnis logik /
sebuah class dan object yang terpisah dalam 1 ruang lingkup yang menjadi satu,
sehingga tingkat keamanan dan security dapat di tangani dengan baik. Selain itu
Web Service juga lebih mudah dalam process deploymentnya, karena tidak
memerlukan registrasi khusus ke dalam sistem operasi. Web Service cukup diupload
ke Web Server dan siap diakses oleh pihak-pihak yang telah diberikan otorisasi.
Web Service berjalan di port 80 yang merupakan protokol standar HTTP, dengan
demikian mengurangi resiko terblokir oleh firewall. Kendala arsitektur COM/DCOM
adalah memerlukan konfigurasi khusus di sisi firewall, dan ini tidak perlu dilakukan untuk mengakses Web
Service.
Referensi
:
Komentar
Posting Komentar