Nama: Fiqie Fatihaan Arifin
NPM: 52411880
Kelas: 2IA04
Web Services Description Language
1. Definisi
Web Service Description language (WSDL) adalah sebuah bahasa yang berbasis XML, yang mana fungsinya untuk mendeskripsikan tentang cara mengakses Web Services dan bahasa deskripsi yang digunakan untuk menggambarkan fungsi yang ditawarkan oleh Web Services.
WSDL mendefinisikan pesan-pesan (baik yang abstrak dan konkrit) yang dikirim ke dan menuju web service, koleksi-koleksi digital dari pesan-pesan (port type, antarmuka), serta bagaimana port type yang ditentukan dijadikan wire protokol.
WSDL menggambarkan layanan sebagai koleksi endpoint jaringan, atau port. Spesifikasi WSDL menyediakan format XML untuk dokumen dengan tujuan tertentu. WSDL sering digunakan dalam kombinasi dengan SOAP dan XML Schema untuk menyediakan Web Service melalui Internet. Sebuah program klien yang terhubung ke layanan Web dapat membaca file WSDL untuk menentukan operasi apa yang tersedia di server. Setiap tipe data khusus yang digunakan tertanam dalam file WSDL dalam bentuk XML Schema. Klien kemudian dapat menggunakan SOAP untuk benar-benar memanggil salah satu dari operasi yang tercantum dalam file WSDL menggunakan XML atau HTTP.
2.Sejarah
WSDL versi 1.0 IBM,
Microsoft, dan Ariba mengembangkan versi ini pada bulan September, 2000. berfungsi mendeskripsikan Web Service untuk toolkit SOAP. WSDL versi 1.0 dikembangkan dengan kombinasi dari bahasa deskripsi service yaitu: NASSL (Network
Application Service Spesification Language) dari IBM dan SDL (Service
Description Language) dari Microsoft.
WSDL versi 1.1 dirilis pada bulan September, 2001. pada versi ini tidak ada perubahan besar antara versi sebelumnya yaitu versi 1.0
WSDL versi 1.2 dirilis pada bulan Juni 2003, WSDL versi 1.2 lebih mudah dan lebih fleksibel untuk
para developer daripada versi sebelumnya. pada versi ini fitur non-interoperable diupayakan untuk dihapus, serta mendefinisikan binding HTTP 1.1 secara lebih
baik lagi. Pada WSDL versi ini tidak didukung oleh kebanyakan server/vendor SOAP.
WSDL versi 2.0 pada bulan Juni 2007.
WSDL versi 1.2 diganti menjadi WSDL versi 2.0 pada versi ini terjadi perubahan substansi
dari WSDL versi 1.1. Perubahan-perubahan tersebut adalah:
- Ditambahkannya semantik pada bahasa deskripsi (description language)
- Dihilangkannya message construct.
- Tidak mendukung operator overloading.
- Endpoints menggantikan ports.
Pada file WSDL terdapat elemen-elemen penting, sebagai berikut:
A. Message
Sesuatu yang abstrak, definisi tipe data yang akan dikomunikasikan.
Deskripsi
abstrak dari suatu aksi yang didukung oleh service. Pada dasarnya menunjukkan
nama operasi web service dan pesan input output.
Mendeskripsikan sebuah web
service, operasi-operasi yang dapat dijalankan, dan pesan-pesan yang dilibatkan
pada Web Service.
D.Binding
protokol komunikasi yang digunakan oleh web
service.
E.Port
Titik akhir tunggal (single endpoint) yang didefinisikan sebagai sebuah
'binding' dan alamat jaringan (network address).
F.Service.
Sekumpulan endpoint yang saling berhubungan, akan
menunjukkan file/path mana yang akan ditempatkan pada file WSDL ini
Contoh WDSL 2.0 Code:
<?xml version="1.0" encoding="UTF-8"?> <description xmlns="http://www.w3.org/ns/wsdl" xmlns:tns="http://www.tmsws.com/wsdl20sample" xmlns:whttp="http://schemas.xmlsoap.org/wsdl/http/" xmlns:wsoap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="http://www.tmsws.com/wsdl20sample"> <!-- Abstract type --> <types> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.tmsws.com/wsdl20sample" targetNamespace="http://www.example.com/wsdl20sample"> <xs:element name="request"> <xs:complexType> <xs:sequence> <xs:element name="header" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="name" type="xs:string" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="body" type="xs:anyType" minOccurs="0"/> </xs:sequence> <xs:attribute name="method" type="xs:string" use="required"/> <xs:attribute name="uri" type="xs:anyURI" use="required"/> </xs:complexType> </xs:element> <xs:element name="response"> <xs:complexType> <xs:sequence> <xs:element name="header" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="name" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="body" type="xs:anyType" minOccurs="0"/> </xs:sequence> <xs:attribute name="status-code" type="xs:anySimpleType" use="required"/> <xs:attribute name="response-phrase" use="required"/> </xs:complexType> </xs:element> </xs:schema> </types> <!-- Abstract interfaces --> <interface name="RESTfulInterface"> <fault name="ClientError" element="tns:response"/> <fault name="ServerError" element="tns:response"/> <fault name="Redirection" element="tns:response"/> <operation name="Get" pattern="http://www.w3.org/ns/wsdl/in-out"> <input messageLabel="In" element="tns:request"/> <output messageLabel="Out" element="tns:response"/> </operation> <operation name="Post" pattern="http://www.w3.org/ns/wsdl/in-out"> <input messageLabel="In" element="tns:request"/> <output messageLabel="Out" element="tns:response"/> </operation> <operation name="Put" pattern="http://www.w3.org/ns/wsdl/in-out"> <input messageLabel="In" element="tns:request"/> <output messageLabel="Out" element="tns:response"/> </operation> <operation name="Delete" pattern="http://www.w3.org/ns/wsdl/in-out"> <input messageLabel="In" element="tns:request"/> <output messageLabel="Out" element="tns:response"/> </operation> </interface> <!-- Concrete Binding Over HTTP --> <binding name="RESTfulInterfaceHttpBinding" interface="tns:RESTfulInterface" type="http://www.w3.org/ns/wsdl/http"> <operation ref="tns:Get" whttp:method="GET"/> <operation ref="tns:Post" whttp:method="POST" whttp:inputSerialization="application/x-www-form-urlencoded"/> <operation ref="tns:Put" whttp:method="PUT" whttp:inputSerialization="application/x-www-form-urlencoded"/> <operation ref="tns:Delete" whttp:method="DELETE"/> </binding> <!-- Concrete Binding with SOAP--> <binding name="RESTfulInterfaceSoapBinding" interface="tns:RESTfulInterface" type="http://www.w3.org/ns/wsdl/soap" wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP/" wsoap:mepDefault="http://www.w3.org/2003/05/soap/mep/request-response"> <operation ref="tns:Get" /> <operation ref="tns:Post" /> <operation ref="tns:Put" /> <operation ref="tns:Delete" /> </binding> <!-- Web Service offering endpoints for both bindings--> <service name="RESTfulService" interface="tns:RESTfulInterface"> <endpoint name="RESTfulServiceHttpEndpoint" binding="tns:RESTfulInterfaceHttpBinding" address="http://www.example.com/rest/"/> <endpoint name="RESTfulServiceSoapEndpoint" binding="tns:RESTfulInterfaceSoapBinding" address="http://www.example.com/soap/"/> </service> </description>
Sumber: http://en.wikipedia.org/wiki/Web_Services_Description_Language
Tidak ada komentar:
Posting Komentar