Web Services

Web services adalah mekanisme komunikasi dua aplikasi/mesin terlepas dari arsitektur dan teknologi yang digaribawahi.

Layanan web memiliki antarmuka, yang menyembunyikan detail implementasi sehingga dapat digunakan secara terpisah dari platform perangkat keras atau perangkat lunak yang digunakannya, dan secara terpisah dari bahasa pemrograman yang digunakan.

Kemandirian ini mendorong aplikasi berbasis layanan web untuk loosely coupled, berorientasi komponen, implementasi lintas-teknologi. Layanan web dapat digunakan sendiri atau dengan layanan web lainnya untuk melakukan agregasi kompleks atau transaksi bisnis.

Sebuah Web service dapat didefinisikan sebagai berikut :

  • Aplikasi client-server atau komponen aplikasi untuk komunikasi.
  • Metode komunikasi antara dua perangkat melalui jaringan.
  • Sistem perangkat lunak untuk komunikasi antar mesin ke mesin.
  • Kumpulan standar atau protokol untuk bertukar informasi antara dua perangkat atau aplikasi.

Seperti yang terlihat pada gambar diatas, aplikasi Java, .net, dan PHP dapat berkomunikasi dengan aplikasi lain melalui layanan web melalui jaringan. Misalnya, aplikasi Java dapat berinteraksi dengan aplikasi Java, .Net, dan PHP. Jadi layanan web adalah cara komunikasi bahasa yang independen.

Jenis-jenis Web Services

Pada umumnya ada 2 jenis web services.

  1. SOAP web services
  2. RESTful web services

SOAP Web Services

SOAP, memiliki kepanjangan Simple Object Access Protocol, adalah sebuah spesifikasi protokol untuk pertukaran pesan/informasi terstruktur dalam implementasi web servis di jaringan komputer. SOAP menggunakan Extensible Markup Language (XML) sebagai format pesannya, dan biasanya bergantung pada protokol layer aplikasi lainnya, terutama Hypertext Transfer Protocol (HTTP) dan Simple Mail Transfer Protocol (SMTP), untuk transmisi dan negosiasi pesan.

REpresentational State Transfer (REST) adalah sebuah arsitektur software untuk sistem terdistribusi semisal web. REST telah berkembang sebagai model desain web servis yang dominan saat ini. Istilah representational state transfer dikenalkan dan didefinisikan pada tahun 2000 oleh Roy Fielding dalam desertasi doktoralnya. Beliau merupakan salah satu penulis utama spesifikasi HTTP versi 1.0 dan 1.1. Sesuai konstrainnya, REST biasa disebut dengan “RESTful”.

Perbedaan SOAP dan REST

Uraian SOAP REST
Protokol komunikasi HTTP, HTTPS, SMTP, FTP HTTP, HTTPS
Penggunaan bandwidth Dalam jumlah request yang banyak, relatif boros bandwidth. Hal ini karena banyaknya markup dalam penulisan format XML Relatif hemat bandwidth, karena markup-markup ekstra seperti pada XML tidak dipakai
Tren penggunaan Banyak mulai beralih ke REST, meski masih tetap ada yang mempertahankan, misalnya untuk integrasi aplikasi ke sistem legasi pada sebuah perusahaan. Mulai populer, banyak dipakai oleh penyedia web servis terkemuka, seperti twitter, yahoo!, flickr,bloglines, technorati, google, amazon, eBay, dsb
Aturan penulisan Ketat, mengikuti spesifikasi XML (SOAP v1.2) Tidak ada spesifikasi khusus
Format respon XML dengan spesifikasi SOAP. Agak sulit bagi kita untuk membaca langsung dan memahaminya. XML, JSON, atau format plain teks lainnya. Hal ini memudahkan penerima respon membaca dan memahaminya.
Attachment file Bisa (karena dapat mengembalikan respon dalam format binary) Tidak bisa
Sifat web servis pada umumnya Tertutup, lebih ditujukan untuk vendor atau perusahaan tertent Terbuka, bisa diakses siapa saja
Caching web Relatif sulit Mudah, karena menggunakan URI
Penggunaan standar Standar lama (XML, HTTP) dan baru (SOAP) digunakan bersamaan Standar yang sudah ada, seperti XML dan HTTP
Tool pengembangan Banyak, baik komersial maupun opensource Beberapa, karena tidak begitu dibutuhkan
Tool manajemen Perlu, bahkan kadang harganya mahal Menggunakan tool yang sudah ada pada sistem jaringan
Ekstensibel Bisa, banyak ekstensi termasuk standar WS-* Relatif tidak ekstensibel
Kemudahan implementasi Mudah jika kita sudah memiliki lingkungan berbasis SOAP Mudah

Daftar Pustaka

https://www.ibm.com/support/knowledgecenter/en/SSGMCP_5.2.0/com.ibm.cics.ts.webservices.doc/concepts/dfhws_definition.html

https://www.javatpoint.com/what-is-web-service

http://pusdiklat.bps.go.id/index.php?r=artikel/view&id=206