Perkembangan Teknologi Web Service

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.

Komentar