WSDL merupakan kependekan dari Web Services Description Language. WSDL adalah bahasa berbasis XML untuk mendeskripsikan Web services dan bagaimana untuk mengaksesnya. WSDL membantu konsumer web service untuk memakai/menggunakan layanan web service. Tanpa WSDL web service akan terkunci dan tidak berguna. WSDL menspesifikasikan lokasi service dan operasi (methods) yang disediakan oleh web service.
Sebagai protokol komunikasi dan format pesan yang distandarkan pada komunitas web, WSDL menjadi lebih tepat dan penting untuk mendeskripsikan model komunikasi di beberapa langkah yang terstruktur (dalam memprogram web service). WSDL menyediakan kebutuhan ini dengan mendefinisikan bentuk XML untuk mendeskripsikan layanan jaringan sebagai kumpulan-kumpulan titik akhir (endpoints) komunikasi yang mampu melakukan pertukaran pesan. Hal tersebut sangat membantu komunikasi antara dua teknologi pada platform-platform secara umum. Definisi layanan WSDL menyediakan dokumentasi untuk sistem terdistribusi dan berfungsi sebagai panduan untuk mengotomatisasi rincian yang terlibat dalam komunikasi antaraplikasi.
WSDL adalah :
- WSDL ditulis dalam XML
- WSDL adalah dokumen XML
- WSDL adalah gateway (pintu) komunikasi antara penyedia dan pemakai web service
- WSDL digunakan untuk mendeskripsikan Web services
- WSDL juga dikunakan untuk menempatkan Web services
- WSDL merupakan rekomendasi W3C
Spesifikasi WSDL versi terkini adalah versi 2.0; versi 1.1 belum didukung oleh W3C tetapi versi 2.0 sudah merupakan rekomendasi W3C. WSDL 1.2 di-rename menjadi WSDL 2.0 karena perbedaan substansial dari WSDL 1.1. Dengan mengijinkan binding ke semua metode HTTP request (tidak hanya GET dan POST seperti pada versi 1.1), spesifikasi WSDL 2.0 menawarkan dukungan yang lebih baik untuk RESTful web service dan lebih sederhana/simpel untuk diimplementasikan. Akan tetapi, dukungan untuk spesifikasi ini masih terlalu buruk pada SDK untuk Web service yang sering menyediakan tools hanya untuk WSDL 1.1.
Sejarah
WSDL 1.0 (September 2000) telah dikembangkan oleh IBM, Microsoft, dan Ariba untuk mendeskripsikan Web Service untuk toolkit SOAP. Dikembangkan dengan mengkombinasikan bahasa deskripsi service: NASSL (Network Application Service Spesification Language) dari IBM dan SDL (Service Description Language) dari Microsoft.
WSDL 1.1 dirilis tahun 2001, merupakan formalisasi dari WSDL 1.0. Tidak ada perubahan besar yang diperkenalkan antara versi 1.0 dan 1.1.
WSDL 1.2 (Juni 2003) merupakan draf kerja W3C, tetapi menjadi WSDL 2.0. Menurut W3C, WSDL 1.2 lebih mudah dan lebih fleksibel untuk para developer daripada versi sebelumnya. WSDL 1.2 berupaya untuk menghapus fitur non-interoperable dan juga mendefinisikan binding HTTP 1.1 secara lebih baik. WSDL tidak didukung oleh kebanyakan server/vendor SOAP.
WSDL 2.0 menjadi rekomendasi pada bulan Juni 2007. WSDL 1.2 diganti menjadi WSDL 2.0 karena mempunyai perubahan secara substansi dari WSDL 1.1. Perubahan-perubahan tersebut meliputi:
- Menambahkan semantik pada bahasa deskripsi (description language)
- Menghilangkan message construct
- Tidak mendukung operator overloading
- Ports diganti menjadi endpoints
Elemen-elemen berikut sangat penting dalam sebuah File WSDL
1. Message – sesuatu yang abstrak, definisi tipe data yang akan dikomunikasikan
<message name=’getItemCountRequest’>
<part name=’upc’ type=’xsd:string’/>
</message>
<message name=’getItemCountResponse’>
<part name=’Result’ type=’xsd:integer’/>
</message>
|
<binding name=’InventoryBinding’ type=’tns:InventoryPortType’>
<soap:binding style=’rpc’
transport=’http://schemas.xmlsoap.org/soap/http’/>
<operation name=’getItemCount’>
<soap:operation soapAction=’urn:xmethods-delayed-quotes#getItemCount’/>
<input>
<soap:body use=’encoded’ namespace=’urn:xmethods-delayed-quotes’
encodingStyle=’http://schemas.xmlsoap.org/soap/encoding/’/>
</input>
<output>
<soap:body use=’encoded’ namespace=’urn:xmethods-delayed-quotes’
encodingStyle=’http://schemas.xmlsoap.org/soap/encoding/’/>
</output>
</operation>
</binding>
5. Port - Titik akhir tunggal (single endpoint) yang didefinisikan sebagai sebuah ‘binding’ dan alamat jaringan (network address)
<service name=’InventoryService’> <port name=’InventoryPort’ binding=’InventoryBinding’> <soap:address location=’http://localhost/soap/server/server.php’/> </port> </service> Jika bagian-bagian di atas digabungkan, maka file WSDL secara keseluruhan akan berbentuk sebagai berikut: <?xml version=’1.0′ encoding=’UTF-8′ ?> <definitions name=’Inventory’ targetNamespace=’urn:test’ xmlns:tns=’urn:test’ xmlns:soap=’http://schemas.xmlsoap.org/wsdl/soap/’ xmlns:xsd=’http://www.w3.org/2001/XMLSchema’ xmlns:soapenc=’http://schemas.xmlsoap.org/soap/encoding/’ xmlns:wsdl=’http://schemas.xmlsoap.org/wsdl/’ xmlns=’http://schemas.xmlsoap.org/wsdl/’> <message name=’getItemCountRequest’> <part name=’upc’ type=’xsd:string’/> </message> <message name=’getItemCountResponse’> <part name=’Result’ type=’xsd:integer’/> </message> <portType name=’InventoryPortType’> <operation name=’getItemCount’> <input message=’tns:getItemCountRequest’/> <output message=’tns:getItemCountResponse’/> </operation> </portType> <binding name=’InventoryBinding’ type=’tns:InventoryPortType’> <soap:binding style=’rpc’ transport=’http://schemas.xmlsoap.org/soap/http’/> <operation name=’getItemCount’> <soap:operation soapAction=’urn:xmethods-delayed-quotes#getItemCount’/> <input> <soap:body use=’encoded’ namespace=’urn:xmethods-delayed-quotes’ encodingStyle=’http://schemas.xmlsoap.org/soap/encoding/’/> </input> <output> <soap:body use=’encoded’ namespace=’urn:xmethods-delayed-quotes’ encodingStyle=’http://schemas.xmlsoap.org/soap/encoding/’/> </output> </operation> </binding> <service name=’InventoryService’> <port name=’InventoryPort’ binding=’InventoryBinding’> <soap:address location=’http://localhost/soap/server/server.php’/> </port> </service> </definitions> Source:
|
SOCIALIZE IT →