WSDL

Web Services Description Language adalah format XML yang diterbitkan untuk menerangkan web service. WSDL mendefinisikan: pesan-pesan yang dikirim ke dan menuju web service
koleksi-koleksi digital dari pesan-pesan
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. Walaupun teknik-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, 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 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.