WSDL

**Web Services Description Language** (**WSDL** ) adalah format XML yang diterbitkan untuk menerangkan *[[web service]]*.

WSDL mendefinisikan:
* pesan-pesan (baik yang abstrak dan konkret) yang dikirim ke dan menuju *web service*
* koleksi-koleksi digital dari pesan-pesan (*port type*, antarmuka)
* bagaimana *port type* yang ditentukan dijadikan *wire* protokol
* di mana servis ditempatkan

WSDL menyediakan sebuah kamus XML untuk menjabarkan detail-detail ini. WSDL digunakan di mana skema XML tidak digunakan lagi dengan menyediakan jalur pesan-pesan grup menjadi operasi-operasi dan operasi-operasi menjadi antarmuka. Ini juga menyediakan jalur untuk medefinisikan *binding-binding* untuk setiap antamuka dan kombinasi protokol sepanjang alamat titik akhir utnuk setiap kalinya. Definisi WSDL yang lengkap terdiri dari seluruh informasi yang dibutuhkan untuk meminta *web service*. Pengembang yang mau mempermudah yang lain untuk mengakses service-servicenya harus menyediakan defisi-definisi WSDL.

WSDL memainkan peranan penting pada seluruh arsitektur *web service* semenjak menjabarkan kontrak lengkap pada komunikasi aplikasi (sama seperti peran IDL pada arsitektur DCOM). Walaupun teknik lain untuk menjabarkan Web service ada, WS-I Basic Profile Versi 1.0 memadati penggunaan WSDL dan skema XML untuk menjabarkan *web service*. Ini membantu untuk memastikan interoperbilitas pada layer deskripsi servis.

Karena WSDL adalah mesin yang dapat dibaca (misalnya hanya file XML), *tool-tool* dan infrastruktur dan dengan mudah dibuat seputar ini. Saat ini pengembang-pngembang dapat definisi-definisi WSDL untuk membangun kode yang tahu dengan tepat bagaimana berinteraksi dengan *web service* yang menjabrkan. Pembangunan code tipe ini menyembunyikan detail-detail membosankan yang terlibat pada pengiriman dan penrimaan pesan-pesan SOAP pada protokol-protokol yang berbeda-beda dan menyebabkan *web service* dapat dicapai oleh massa.
Microsoft® .NET Framework menggunakan utilitas *command-line* bernama wsdl.exe yang mengenerasi kelas-kelas dari definsi WSDL. Wsdl.exe dapat meng-generasi satu kelas untuk menggunakanservice dan yang lainnya untuk mengimplementasikan service.(Apache axis menggunkaan utilitas yang sama bernama WSDL2Java yang melakukan fungsi yang sama pada kelas-kelas java.) Kelas-kelas digenerasi dari definisi WSDL sama harus mampu berkomunikasi dengan yang lain sepanjang antarmuka WSDL yang tersedia, tanpa memperhatikan bahasa pemrograman yang digunakan

WSDL 1.1 mempertimbangkan standar *de facto* saat ini karena dukungan industri yang luas. Kebanyakan *toolkit-toolkit web service* mendukung WSDL 1.1, tetapi ada sedikit masalah interoperabilitas pada implementasi berbeda. Kebanyakan pembangun-pembangun percaya bahwa fleksibilitas yang luas dari WSDL (dan kompleksitas hasil) adalah sumber fundamental dari masalah ini. WS-I telah membantu memecahkan beberapa dari masalah ini dengan memkasakan pengembang-pengembang untuk menggunakan bagian-bagian tepat dari spesifikasi dan tidak menganjurkan mereka untuk menggunakan yang lainnya.

W3C secara aktif bekerja pada versi WSDL “terdaftar” terakhir, WSDL 1.2, tetapi saat ini hanya *working draft* dan tidak didukung oleh *toolkit-toolkit mainstream*, jika ada.

## Pranala luar
*  Spesifikasi WSDL 1.1