Webservice Bukanlah XML!

Saya tertarik menulis ini setelah melihat beberapa kawan yang sedikit agak latah menerapkan webservice tanpa melihat kebutuhan yang ada. Banyak yang mengira bahwa webservice haruslah XML (lebih spesifik lagi: SOAP). Teknologi webservice proxy dengan standar SOAP dan WSDL memang sedang booming akhir-akhir ini dengan jargon-nya: Service Oriented Application (SOA).

Arti sebenarnya dari webservice sangatlah sederhana, yaitu menyediakan data dalam format yang terstandarisasi dan dimengerti oleh aplikasi lain untuk diolah kembali oleh aplikasi lain dimana antar aplikasi memiliki platform yang berbeda. Aplikasi-aplikasi tersebut tidak mungkin diintegrasikan menjadi satu aplikasi terdistribusi. Atau jika masih mungkin, cost-nya jauh lebih tinggi.

Sebenarnya, SOA dengan XML hanyalah salah satu jenis model webservice. Kenapa memakai XML? Karena XML merupakan standar representasi data yang digunakan secara luas di dunia. Dengan XML, kita tidak perlu repot-repot membuat aplikasi pembaca (parser) XML karena pustakanya telah tersedia sangat banyak di dunia ini. Konsorsium yang menangani masalah webservice (Microsoft, IBM, dan beberapa raksasa lainnya — aku lupa) telah merilis standar webservice ini dengan XML dan protokol SOAP (Service Oeriented Application Protokol).

Tapi ingat, bekerja dengan XML tidak semudah merebut permen dari anak kecil. Anda harus membuat struktur XML yang baik, lengkap dengan Doctype dan DTD-nya dan umpankan ke parser Anda. Jika tidak ingin mengalami mimpi buruk, gunakan arsitektur Object Oriented untuk menangani XML entah parser Anda bertipe SAX ataupun DOM. Pengalaman pribadi saya bekerja dengan XML dengan PHP 4 cukup membuat saya menangis darah *berlebihaan*.

Bolehkah kita membuat standar webservice sendiri? Kenapa tidak?!? Jika tanpa XML masalah akan teratasi kenapa tidak? Contoh sederhana: Misalnya kita memiliki sebuah database user tersentralisasi yang hanya bisa diakses user tertentu dan sangat terbatas. User (say A) yang tidak memiliki akses ke database tersebut dapat meminta apa yang dibutuhkannya kepada user yang memiliki akses ke database tersebut (say B). Misalnya, A mengirim user dan password kepada B. B mengolah data tersebut dengan mencari di database. Kemudian hasilnya disediakan kepada A melalui satu file teks berisi true (jika ok) atau false (jika gagal). A Akan membacanya dan mengolahnya kembali. Selesai! Webservice telah berjalan.

Kebutuhan versus Teknologi

Namun demikian, kita harus selalu melihat kebutuhan kita. Webservice digunakan jika dan hanya jika antar aplikasi tidak mungkin melakukan komunikasi secara langsung. Ambil kasus di atas. Jika A bisa mengakses database, tentunya kita tidak usah memerlukan sebuah webservice di situ. A dapat melakukan query SQL langsung ke database. Kasus di atas terjadi jika misalnya peraturan non-teknis membuat A tidak dapat mengakses database. Ada overhead yang signifikan di saat proses pertukaran informasi antar aplikasi, yaitu: menyediakan data untuk diolah di sisi aplikasi server dan mengolah data tersebut di sisi aplikasi client. Sayangnya, saat ini banyak yang latah dengan mengedepankan teknologi tanpa melihat kebutuhan yang sering menyebabkan sebuah teknologi terlalu tinggi untuk diterapkan di suatu kasus. Kenapa demikian? Jawabannya sederhana: gengsi!

By Galih Satriaji

Bookaholic, Workaholic. Chubby. That's me!

8 comments

  1. yup
    tapi yang buat aku bingung adalah,
    bagaimana cara membuat rss feed? jika kita sudah punya web service
    (aku pake .asmx nya .NET) tentu saja wsdl juga, aku masih harus belajar lagi…

  2. betul katamu nakk.. aku sesusu dengan kata gengsi nakk.. duh nakk kok abu2 ini buat ngetik commantnya. kasian si sukri deni kur yang buta warna.. dikiranya putih semua nanti.

  3. sepertinya ada yang salah… XML? SOAP? Web Service?
    sebaiknya liat dulu sejarahnya Web Service.. misalnya dari RPC, kemudian datang CORBA IIOP, hingga keluar web service.
    semua adalah standar.
    jika bikin web service tanpa xml alias sekedar komunikasi data via http, lalu dimana standar? 🙂
    someone might say, web service seperti di atas adalah web service bo’ong2an… 😛

    concern-nya disini: web service menggunakan teknologi http dan document xml dibungkus ‘sabun’ menjadi standar, sebagaimana corba dengan rpc dan iiop.
    beberapa memiliki keunggulan dan kelemahan, misalnya kecepatan, security, accessability, etc.

  4. tidak sepenuhnya benar ketika aplikasi bisa langsung konek ke database berarti tidak perlu implementasi web service.. well AFAIK SOA berarti suatu mapping antara real world business process dengan sistem IT itu sendiri. Ketika suatu business process menyediakan suatu servis tertentu, maka dengan konsep SOA akan ada suatu “aplikasi” yang sesuai yang menyediakan servis yang sama, dan tentu saja salah satunya menggunkan web service. Nah, yang jadi masalah adalah kapan suatu proses dianggap sebuah servis? apakah sebuah proses koneksi database bisa dianggap servis? tentu saja tidak sesederhana itu..
    so, menurut saya hal itu tidak bisa dijadikan alasan untuk menyebut “latah” atau tidak latah..

    ^_^

  5. #redya:
    dan tentu saja, saya tidak bisa menjelaskan apa yang saya maksud dalam satu postingan pendek seperti ini 🙂 thanks komentarnya, mungkin suatu saat saya perlu menjelaskan hal ini lebih lanjut 🙂

  6. Lih, neh Seven..
    aku lagi menganalisa kehebatan web service..
    karna mau kembangin di kantor.
    bagaimana daya tahan web service jika load messaging tinggi?
    apakah ada batasnya atau gimana?

    tolong share dong..
    thankyou.

    regards,
    Seven

Leave a comment

Your email address will not be published. Required fields are marked *