Layanan web

**Layanan web** merupakan fenomena yang sangat panas saat ini. Banyak kelebihan yang ditawarkan oleh Web Service, terutama interoperabilitas tinggi dan penggunaannya yang dapat diakses kapanpun dan di manapun selama mesin kita terhubung oleh jaringan internet.

## Gambaran umum
### JavaScript dan XML Asinkron

Asynchronous JavaScript And XML (AJAX) adalah teknologi terkemuka untuk layanan Web. Dikembangkan dari kombinasi peladen HTTP, klien JavaScript dan Plain Old XML (berbeda dari SOAP dan Layanan Web W3C), sekarang ini sering digunakan dengan JSON dan juga, atau sebagai pengganti, XML.

### REST

Representational State Transfer (REST) adalah arsitektur untuk layanan Web yang dirancang baik yang dapat digunakan pada skala internet.

Dalam sebuah dokumen 2004, W3C menetapkan REST berikut sebagai fitur pembeda utama layanan Web:

### Layanan web yang menggunakan bahasa markup
Terdapat beberapa layanan Web yang menggunakan bahasa markup:

* JSON-RPC.
* JSON-WSP
* Representational state transfer (REST) melawan remote procedure call (RPC)
* Web Services Conversation Language (WSCL)
* Web Services Description Language (WSDL), dikembangkan oleh W3C
* Web Services Flow Language (WSFL), digantikan oleh BPEL
* Templat Web
* WS-MetadataExchange
* XML Interface for Network Services (XINS), menyediakan format spesifikasi layanan web bergaya POX

### API Web

Sebuah Web API adalah sebuah pengembangan layanan Web yang di mana penekanan telah beralih ke komunikasi berbasis representational state transfer (REST) yang lebih sederhana. Restful API tidak memerlukan protokol layanan Web berbasis XML (SOAP dan WSDL) untuk mendukung antarmuka mereka.

## Fungsi layanan web

Layanan web sepenuhnya berdasarkan standar web dan XML. Web Service dapat membantu beberapa hal, seperti:
* sebagai perantara pada integrasi platform sepanjang eksekusi mesin virtual;
* integrasi antara Web dan OO middlewa;
* integrasi dari aliran kerja terisolasi dan sevice-service (Web Services Flow Language - WSFL);
* pertukaran data pada aplikasi yang berbeda-beda (X-Schema, XSLT ++);
* standardisasi dari info konteks antara web servis dan klien – integrasi servis horizontal di masa depan.
* pemain utama dan standard-standard Microsoft: .NET SUN: Open Net Environment (ONE) IBM: Web Service Conceptual Architecture (WSCA) W3C: Web Service Workshop Oracle: Web Service Broker Hewlett-Packard: Web Service Platform;
* ;emampuan aplikasi, fungsi atau operasi yang di ekspos untuk program lain melalui standard yang terbuka, dan interoperable;
* “payloads” didefinisikan sebagai XML;
* “transports” melalui http atau Internet protocol terbuka lainnya;
* mengakses data dari berbagai bahasa pemrograman, platform hardware atau system operasi;
* middleware dari Internet.

## Keuntungan penggunaan Web Service
* Format penggunaan terbuka untuk semua platform.
* Mudah di mengerti dan mudah men-debug.
* Dukungan interface yang stabil.
* Menggunakan standard-standard “membuka service sekali” dan mempunyai pemakai banyak.
* Mudah untuk menengahi pesan-pesan proses dan menambahkan nilai.
* Routing and pengiriman.
* Security.
* management and monitoring.
* schema and service design.
* Akselerasi.
* mudah untuk mengembangkan dengan semantic transport tambahan.
* Terbuka, standard-standard berbasis teks.
* Pencapaian modular.
* Tidak mahal untuk diimplementasikan (relatif).
* Mengurangi biaya integrasi aplikasi enterprise.
* Implementasi yang incremental.

----

### 1.4 Overview

* XML memungkinkan pengembang software untuk meng-expose sumber daya berharga pada bentuk yang memilki interoperabilitas tinggi, di mana sumber daya ini adalah semua tipe aplikasi atau pnyimpanan data yang digunakan oleh antar organisasi. Arsitektur XML Web services mendefinisikan mekanisme standard untuk menyediakan sumber daya melalui pengiriman pesan XML. Untuk mengakses sumber daya hanya dengan mentransmisikan pesan-pesan XML melalui protokol standard seperti TCP, HTTP, atau SMTP. Kata “Web Service” (singkatnya “service”) mengacu pada bagian kode yang mengimplementasikan interface XML menjadi sumber daya, di mana bias jadi sulit diakses (lihat gambar 1).

Gambar 1: Resources(Sumber daya) and services(Web Service)
* Arsitektur ini memungkinkan untuk konsumen dengan dukungan XML terintegrasi dengan aplikasi Web Service. Bagaimanapun, untuk memenuhi ini, konsumen harus menentukan antarmuka XML yang tepat sepanjang dengan pesan pesan yang beraneka ragam dan mempunyai detail-detail yang tepat. Skema  XML dapat memnuhi kebutuhan ini karena mengizinkan pengembang untuk menjabarkan struktur dari pesan-pesan XML. Skema XML sendiri, bagaimanapun, tidak dapat menjabarkan detail-detail tambahan menyangkut komunikasi dengan Web Service.
* Definisi skema memberi tahu pesan-pesan XML apa yang dapat digunakan tetapi tidak bagaimana pesan-pesan tersebut berhubungan satu sama lain. Sebagai contoh, jika ada elemen XML dinamai Add dan nama lain AddResponse, ini sepertinya kedua nama tersebut berhubungan tetapi tidak dapat mengindikasikan skemanya. Oleh sebab itu, sebagai tambahan untuk mengetahui pesan-pesan, konsumen harus juga mengetahui kemungkinan pertukaran pesan yang didukung oleh Web Service (contoh:., jika anda mengirim pesan Add, anda mendapatkan pesan kembali berupa AddResponse).
Pertukaran pesan dapat dimaksudkan sebagai pertukaran operasi. Operasi-operasi yang dilakukan konsumen kebanyakan pada point penting menginteraksikan service (Lihat gambar 2). Setiap kali menggunakan Web Service, akan dilakukan inspeksi daftar operasi yang didukung untuk mendapatkan semua proses yang tersedia.

Gambar 2: Pesan-pesan dan operasi-operasi
* Ini biasa untuk developer untuk mengelompokkan operasi-operasi terhubung menjadi antarmuka-antarmuka. Konsumen harus mengetahui pengelompokkan ini memengaruhi cara mereka membuat kode. Ini sungguh penting untuk developer-developer yang bekerja dengan Web Service pada lingkup berorientasi objek karena antarmuka XML dapat memetakan menjadi antarmuka programmatis (atau kelas-kelas abstract) pada pilihan bahasa yang dipilih.
* Konsumen juga harus mengetahui protocol komunikasi apa yang digunakan untuk pengiriman pesan menuju service, sepanjang mekanisme spesifik yang terlibat saat menggunakan protokol yang ditentukan seperti pada penggunaan perintah, header-header, kode error. Pembungkusan (binding) menspesifikasikan detail-detail konkret atas apa yang terjadi pada kabel (wire) dengan mensketsakan cara penggunaan antarmuka dengan protokol komunikasi khusus. Binding juga memengaruhi cara peasn-pesan abstract di enkodisasi pada wire dengan menspesifikasikan style dari service (document vs. RPC) dan mekanisme enkodisasi (literal vs. terenkodisasi).
* Service dapat mendukung binding-binding ganda pada antarmuka yang ditentukan, tetapi setiap binding harus dapta diakses pada alamat unik yang diidentifikasikan oleh URI, juga ditujukan sebagai titik akhir dari Web Service (lihat gambar 3).

Gambar 3: Antarmuka dan binding-binding
* Konsumen harus mencari tahu semua detail-detail yang dijabarkan sebelum mereka dapat berinteraksi menggunakan Web Service.

## Sejarah
* Sebelum kita memasukki sejarah tentang Web Service, adabaiknya kita terlebih dahulu mebahas masalah paradigma pekembangan bahasa pemrograman terlebih dahulu.

### 1.2 Sejarah bahasa pemrograman adalah
* Pemrograman terstruktur.
* Pemrograman berorientasi- objek.
* Komputasi terdistribusi.
* Pertukaran data elektronik.
* World Wide Web.
* Web services.

### 1.3 Ada pun perusahaan yang mengusulkan konsep web service adalah
* Hewlett-Packard's e-Speak pada 1999 adalah penyedia e-service.
* Microsoft memperkenalkan nama "web services" pada Juni 2000.
* Microsoft “mempertaruhkan nama perusahaan" pada strategi web service ini.
* sekarang setiap vendor mulai menjadi “pemain”.
* Untuk lebih lanjut mengenai perkembangan sejarah Web service yang mana cikal bakal terbentuknya dari arsitektur DCE, dapat dilihat pada gambar 4: Sejarah terbentuknya Web Service.
* Dari gambar tersebut dapat dilihat bahwa XML Web Service mempunyai interoperabilitas yang sangat tinggi karena pengembang Web service terdiri dari banyak vendor .

## Mekanisme Kerja

Sebelum memasuki mekanisme kerja yang terjadi pada Web Service, akan dibahas terlebih dahulu komponen-kompenen yang mempunyai peranan penting pada Web Service, komponen-komponen tersebut dapat dilihat pada standard-standard web service itu sendiri, di mana standard-standard web service adalah sebagai berikut:
WSDL Web Services Description Language
http://www.w3.org/TR/wsdl
Deskripsi-deskripsi dari web service
UDDI Universal Discovery, Description & Integration    http://www.uddi.org/specification.html
Registry mengenai deskripsi servis
SOAP Simple Object Access Protocol
http://www.w3.org/TR/SOAP/
Protokol transport untuk berkomunikasi antar web service
Standard-standard lain: WSRP, WSIA, WSXL.......

Selain standard-standard Web Service, juga ada Bagian-bagian Web Service (Web Service Dumpstack) yang mendeskripsikan task-task yang akan terjadi pada proses berjalannya web service, di mana task-task tersebut antara lain: Wire Protocols, Description, Discovery. Untuk lebih lanjut mengenai bagian-bagian Web Service maka dapat dilihat ilustrasinya pada gambar 5: Bagian-bagian Web Service .
 gambar 5: Bagian-bagian Web Service

keterangan:

Wire Protocols
Aturan utama: menyediakan standard, channel komunikasi flexible
Aturan tambahan: menyediakan standard, representasi wire-level data yang flexible
Keuntungan: interoperabilitas pada level terendah

Deskripsi
Aturan utama: menyediakan standard, jalan untuk menjabarkan apa dan bagaimana web service melakukan yang harus dilakukan dengan fleksibel.
Keuntungan: interoperabilitas.

Discovery
Aturan utama: menyediakan standard, jalur untuk menemukan di mana web service ditempatkan dan bagaimana mencari informasi tambahan tentang apa yang dilakukan web service dengan fleksibel
Keuntungan: interoperabilitas, integrasi yang dinamis
### 2.3 UDDI (skema xml)

Kemampuan atribut metadata untuk service-service didaftarkan pada UDDI, dan lalu menjalankan queri-queri berdasarkan pada metadata tersebut yang menengahi secara mutlak menuju tujuan dari UDDI pada kedua waktu desain dan waktu pengekskusian.

UDDI (Universal Description, Discovery, and Integration) mempunyai tugas sebagai berikut:
Deskripsi yang Programmatic dari bisnis dan sevice yang didukung
Deskripsi yang Programmatic dari spesifikasi web service
Model pemrograman dan schema.

## Tahap Pengembangan dan Implikasi Bisnis

### 1.TahapPengembangan.

* Sebelum melakukan pengembangan, harus diketahui dulu ruang lingkup pengembangan aplikasi berbasiskan Web Service menurut media protokolnya, adapun ruang lingkup aplikasi Web Service tersebut adalah”
Dalam korporasi firewall
Untuk aplikasi enterprise terintegrasi ringan

* Antar korporasi firewall
Untuk digunakan pada layanan eksternal (contoh: passport)
Untuuk menyediakan data untuk partner-partner

* Melalui Web
Aplikasi komposit
Komponen-komponen AliranKerja

Sedangkan tahap-tahap pengembangan Web Service itu sendiri adalah:

* *Discover* – browse registry UDDI untuk mencari Web Service yang sudah ada untuk integrasi.
* *Create or Transform* –buat Web Service dari project-project yang ada.
* *Build* – satukan artefak yang ada sebagai SOAP dan service HTTP dan jabarkan pada WSDL.
* *Deploy* – Aplikasikan menjadi server aplikasi Websphere atau Tomcat.
* *Test* – Uji coba web service baik local (stand alone computer) atau secara remote.
* *Develop* – Bangun contoh aplikasi untuk memberi masukkan dalam membuat aplikasi klien Web service
* *Publish* – publikasikan / upload Web Service pada bisnis registri UDDI.

### Implementasi
Umumnya layanan ini digunakan oleh organisasi yang besar dan kompleks untuk metode pertukaran datanya. Atau bisa juga oleh programmer yang "malas" dalam artian lebih senang menulis sedikit code daripada banyak baris untuk hasil yang sama, lebih senang bekerjasama daripada membangun aplikasi sendirian .

Layanan Web paling sesuai untuk
* Government to Government (G2G)
* Business to Business B2B (B2B

## Lihat pula
* SOAP
* WSDL

## Referensi

## Pranala luar

* Pola desain perpesanan  documentation at SOA Patterns
* Aktivitas layanan Web halaman pada W3C
* Arsitektur layanan Web, Catatan Kelompok Kerja W3C (11 Februari 2004)
* Menyelidiki Layanan Web di World Wide Web, analisis yang dipresentasikan pada konferensi WWW2008.
* Panduan untuk mengamankan layanan Web (SP 800-95) pada NIST.