Anda di halaman 1dari 24

WSDL merupakan kependekan dari Web Services Description Language.

WSDL adalah menggunakan XML untuk mendeskripsikan Web services dan


bagaimana untuk mengaksesnya. WSDL membantu pengguna web service
dalam memakai/menggunakan layanan web service. Web service akan terkunci
dan tidak berguna jika tanpa WSDL ini. 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 gateway (pintu) komunikasi antara penyedia dan pemakai web service.

WSDL adalah dokumen XML

WSDL digunakan untuk menempatkan Web service

WSDL juga digunakan untuk mendeskripsikan Web service

WSDL merupakan rekomendasi W3C

WSDL sering digunakan pada kombinasi SOAP dan XML Schema untuk menyediakan Web
service di internet. Aplikasi client yang menghubungkan ke sebuah Web service dapat
membaca file WSDL untuk menentukan operasi apa saja yang tersedia pada server. Tipe-tipe
data khusus yang digunakan di-embed pada file WSDL dalam bentuk XML Schema. Client
kemudian dapat menggunakan SOAP untuk memanggil operasi-operasi yang terdaftar pada
file WSDL secara aktual menggunakan XML atau HTTP.
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
WSDL 1.0 (September 2000) telah dikembangkan oleh IBM, Microsoft, dan Ariba untuk
mendeskripsikan Web Service pada SOAP. Dikembangkan dengan mengkombinasikan
NASSL (Network Application Service Spesification Language) dari IBM dan SDL (Service
Description Language) dari Microsoft. WSDL 1.1 dirilis pada 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)

Tidak mendukung operator overloading

Menghilangkan message construct

Ports diganti menjadi endpoints

Elemen-Elemen File WSDL

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>

2. Port Type mendeskripsikan sebuah web service, operasi-operasi yang dapat


dijalankan, dan pesan-pesan yang dilibatkan pada Web Service.

<portType name='InventoryPortType'>
<operation name='getItemCount'>

<input message='tns:getItemCountRequest'/>

<output message='tns:getItemCountResponse'/>

</operation>

</portType>

3. Port - Titik akhir tunggal (single endpoint) yang didefinisikan sebagai sebuah
binding dan alamat jaringan (network address)

<port name='InventoryPort' binding='InventoryBinding'>

<soap:address location='http://localhost/soap/server/server.php'/>

</port>

4. Service Sekumpulan endpoint yang saling berhubungan, akan menunjukkan


file/path mana yang akan ditempatkan pada file WSDL ini

<service name='InventoryService'>

<port name='InventoryPort' binding='InventoryBinding'>

<soap:address location='http://localhost/soap/server/server.php'/>

</port>

</service>

5. Operation deskripsi abstrak dari suatu aksi yang didukung oleh service. Pada
dasarnya menunjukkan nama operasi web service dan pesan input output

<operation name='getItemCount'>

<input message='tns:getItemCountRequest'/>

<output message='tns:getItemCountResponse'/>

</operation>
6. Binding protokol komunikasi yang digunakan oleh web service

<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>

Jika semua elemen-elemen WSDL diatas digabungkan dan disimpan ke dalam


suatu file, maka secara keseluruhan file WSDL akan berbentuk seperti 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='IsnventoryPort' binding='InventoryBinding'>

<soap:address location='http://localhost/soap/server/server.php'/>

</port>

</service>

</definitions>

Contoh lain dari file WSDL :

<?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>
WSDL - Pendahuluan
WSDL singkatan Web Services Description Language. Ini adalah format standar untuk
menggambarkan layanan web. WSDL dikembangkan bersama oleh Microsoft dan IBM.

Fitur WSDL
WSDL adalah protokol berbasis XML untuk pertukaran informasi dalam lingkungan
desentralisasi dan terdistribusi.

definisi WSDL menjelaskan cara mengakses layanan web dan operasi apa yang akan
tampil.

WSDL adalah bahasa untuk menggambarkan bagaimana untuk berinteraksi dengan


layanan berbasis XML.

WSDL merupakan bagian integral dari Universal Description, Discovery, dan


Integrasi (UDDI), sebuah registry bisnis berbasis XML di seluruh dunia.

WSDL adalah bahasa yang menggunakan UDDI.

WSDL diucapkan sebagai 'Wiz-membosankan' dan terbilang sebagai 'WSD-L'.

WSDL Penggunaan
WSDL sering digunakan dalam kombinasi dengan SOAP dan XML Schema untuk
menyediakan layanan web melalui Internet. Sebuah program klien menghubungkan ke
layanan web dapat membaca WSDL untuk menentukan fungsi 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
fungsi yang tercantum dalam WSDL.

Sejarah WSDL
WSDL 1.1 diajukan sebagai Catatan W3C oleh Ariba, IBM, dan Microsoft untuk
menggambarkan layanan untuk Kegiatan XML W3C pada Protokol XML Maret 2001.

WSDL 1.1 belum didukung oleh World Wide Web Consortium (W3C), namun baru saja
merilis sebuah rancangan untuk versi 2.0 yang akan menjadi rekomendasi (standar resmi),
dan dengan demikian didukung oleh W3C.
WSDL - Elemen
WSDL memecah layanan web dalam tiga tertentu, elemen diidentifikasi yang dapat
dikombinasikan atau digunakan kembali setelah ditetapkan.

Tiga unsur utama dari WSDL yang dapat didefinisikan secara terpisah adalah:

jenis

Operasi

Mengikat

Sebuah dokumen WSDL memiliki berbagai elemen, tetapi mereka yang terkandung dalam
tiga elemen utama tersebut, yang dapat dikembangkan sebagai dokumen terpisah dan
kemudian mereka dapat dikombinasikan atau digunakan kembali untuk membentuk file
WSDL lengkap.

WSDL Elements
Sebuah dokumen WSDL berisi unsur-unsur berikut:

Definisi: Ini adalah elemen akar dari semua dokumen WSDL.Ini mendefinisikan
nama layanan web, menyatakan beberapa ruang nama yang digunakan di seluruh sisa
dokumen, dan berisi semua elemen layanan yang dijelaskan di sini.

Tipe data: Jenis data yang akan digunakan dalam pesan yang dalam bentuk
skema XML.

Pesan: Ini adalah definisi abstrak dari data, dalam bentuk pesan yang disajikan
baik sebagai seluruh dokumen atau sebagai argumen untuk dipetakan ke
metode doa.

Operasi: Ini adalah definisi abstrak dari operasi untuk pesan, seperti penamaan
metode, antrian pesan, atau proses bisnis, yang akan menerima dan memproses
pesan.

Port Jenis: Ini adalah set abstrak operasi dipetakan ke satu atau lebih titik
akhir, mendefinisikan koleksi operasi untuk mengikat;koleksi operasi, seperti
yang abstrak, dapat dipetakan ke beberapa angkutan melalui berbagai binding.

Binding: Ini adalah beton protokol dan format data untuk operasi dan pesan
yang ditetapkan untuk jenis port tertentu.

Port: Ini adalah kombinasi dari mengikat dan alamat jaringan, memberikan
alamat target dari layanan komunikasi.
Layanan: Ini adalah koleksi terkait titik akhir meliputi definisi layanan dalam
file;layanan memetakan mengikat ke pelabuhan dan mencakup definisi diperpanjang.

Selain unsur-unsur utama, spesifikasi WSDL juga mendefinisikan unsur-unsur utilitas


berikut:

Dokumentasi: Elemen ini digunakan untuk menyediakan dokumentasi yang


dapat dibaca manusia dan dapat dimasukkan dalam unsur WSDL lainnya.

Impor: Elemen ini digunakan untuk mengimpor dokumen WSDL lain atau
Schemas XML.

CATATAN: bagian WSDL biasanya dihasilkan secara otomatis menggunakan alat web
layanan-sadar.

WSDL Contoh

Diberikan di bawah adalah file WSDL yang disediakan untuk menunjukkan program WSDL
sederhana.

Mari kita asumsikan layanan menyediakan satu fungsi yang tersedia untuk umum, yang
disebutsayHello.Fungsi ini mengharapkan parameter string tunggal dan mengembalikan
string ucapan tunggal. Misalnya, jika Anda lulusduniaparameter maka fungsi
pelayanansayHellomengembalikan ucapan, "Halo, dunia!".

Contoh
Isi file HelloService.wsdl:

<definitions name="HelloService"
targetNamespace="http://www.examples.com/wsdl/HelloService.wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.examples.com/wsdl/HelloService.wsdl"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<message name="SayHelloRequest">
<part name="firstName" type="xsd:string"/>
</message>

<message name="SayHelloResponse">
<part name="greeting" type="xsd:string"/>
</message>

<portType name="Hello_PortType">
<operation name="sayHello">
<input message="tns:SayHelloRequest"/>
<output message="tns:SayHelloResponse"/>
</operation>
</portType>

<binding name="Hello_Binding" type="tns:Hello_PortType">


<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="sayHello">
<soap:operation soapAction="sayHello"/>
<input>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:examples:helloservice"
use="encoded"/>
</input>

<output>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:examples:helloservice"
use="encoded"/>
</output>
</operation>
</binding>

<service name="Hello_Service">
<documentation>WSDL File for HelloService</documentation>
<port binding="tns:Hello_Binding" name="Hello_Port">
<soap:address
location="http://www.examples.com/SayHello/" />
</port>
</service>
</definitions>

contoh Analisis
Definisi: HelloService

Jenis: Menggunakan built-in tipe data dan mereka didefinisikan dalam


XMLSchema.

pesan:

o sayHelloRequest: parameter firstName

o sayHelloresponse: salam nilai kembali

Port Jenis: sayHello operasiyang terdiri dari permintaan dan layanan respon.

Binding: Arah untuk menggunakan protokol SOAP transport HTTP.

Layanan: Layanan tersedia di http://www.examples.com/SayHello/


Port: Associates mengikat dengan URI http://www.examples.com/SayHello/
mana layanan berjalan dapat diakses.

WSDL <Definisi> Elemen

The<definisi> elemen harus menjadi elemen akar dari semua dokumen WSDL.Ini
mendefinisikan nama layanan web.

Berikut adalah potongan kode dari bab terakhir yang menggunakan elemendefinisi.

<definitions name="HelloService"
targetNamespace="http://www.examples.com/wsdl/HelloService.wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.examples.com/wsdl/HelloService.wsdl"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
................................................
</definitions>
Dari contoh di atas, kita dapat menyimpulkan definisi bahwa:

adalah wadah dari semua elemen lain.

menetapkan bahwa dokumen ini disebutHelloService.

menentukan atributtargetNamespace.ThetargetNamespaceadalah konvensi Skema


XML yang memungkinkan dokumen WSDL untuk merujuk ke dirinya sendiri. Dalam
contoh ini, kita telah ditentukantargetNamespacedari
http://www.examples.com/wsdl/HelloService.wsdl

menentukan namespace default: xmlns = http: //schemas.xmlsoap.org/wsdl/. Semua


elemen tanpa awalan namespace, sepertipesanatauportType,karena itu dianggap
menjadi bagian dari default WSDL namespace.

menentukan banyak ruang nama yang digunakan di seluruh sisa dokumen.

CATATAN: Spesifikasi namespace tidak memerlukan dokumen untuk hadir di lokasi


tertentu.Yang penting adalah bahwa Anda menentukan nilai yang unik, berbeda dari semua
ruang nama lain yang didefinisikan.

WSDL <Jenis> Elemen


Sebuah layanan web perlu mendefinisikan input dan output dan bagaimana mereka dipetakan
ke dalam dan keluar dari layanan. WSDL<jenis> elemen mengurus mendefinisikan tipe
data yang digunakan oleh layanan web.Jenis adalah dokumen XML, atau bagian dokumen.

Jenis elemen menggambarkan semua jenis data yang digunakan antara klien dan
server.

WSDL tidak terikat secara eksklusif untuk sistem mengetik tertentu.

WSDL menggunakan spesifikasi XML Schema W3C sebagai pilihan default untuk
menentukan jenis data.

Jika layanan hanya menggunakan XML Schema built-in tipe sederhana, seperti string
dan bilangan bulat, makajeniselemen tidak diperlukan.

WSDL memungkinkan jenis harus didefinisikan dalam elemen yang terpisah sehingga
jenis yang dapat digunakan kembali dengan beberapa layanan web.

Berikut ini adalah potongan kode yang diambil dari spesifikasi W3C. Kode ini
menggambarkan bagaimana elemenjenisdapat digunakan dalam WSDL.

<types>
<schema targetNamespace="http://example.com/stockquote.xsd"
xmlns="http://www.w3.org/2000/10/XMLSchema">

<element name="TradePriceRequest">
<complexType>
<all>
<element name="tickerSymbol" type="string"/>
</all>
</complexType>
</element>

<element name="TradePrice">
<complexType>
<all>
<element name="price" type="float"/>
</all>
</complexType>
</element>

</schema>
</types>
tipe data mengatasi masalah identifing tipe data dan format yang Anda berniat untuk
menggunakan dengan layanan web Anda. informasi jenis dibagi antara pengirim dan
penerima. Para penerima pesan karena itu perlu akses ke informasi yang digunakan untuk
mengkodekan data dan harus memahami bagaimana untuk memecahkan kode data.

WSDL <Message> Elemen


The<pesan> elemen menggambarkan data yang dipertukarkan antara penyedia
layanan web dan konsumen.

Setiap Layanan Web memiliki dua pesan: input dan output.

input menjelaskan parameter untuk layanan web dan output menggambarkan data
kembali dari layanan web.

Setiap pesan berisi nol atau lebih<bagian> parameter, satu untuk setiap parameter
dari fungsi layanan web.

Setiap<bagian> parameter rekan dengan jenis beton didefinisikan dalam


<jenis>elemen kontainer.

Mari kita ambil sepotong kode dari bab WSDL Contoh:

<message name="SayHelloRequest">
<part name="firstName" type="xsd:string"/>
</message>

<message name="SayHelloResponse">
<part name="greeting" type="xsd:string"/>
</message>
Di sini, dua elemen pesan didefinisikan. Yang pertama merupakan pesan
permintaanSayHelloRequest,dan yang kedua merupakanSayHelloResponsepesan respon.

Setiap pesan ini berisi bagian elemen tunggal. Untuk permintaan, bagian menentukan
parameter fungsi; dalam hal ini, kita menentukanfirstNameparameter tunggal. Untuk respon,
bagian menentukan nilai fungsi kembali; dalam hal ini, kita tentukan nilai ucapan kembali
tunggal.

WSDL <PortType> Elemen

The<portType> elemen menggabungkan beberapa elemen pesan untuk membentuk


lengkap satu arah atau round-trip operasi.

Sebagai contoh,<portType> dapat menggabungkan satu permintaan dan satu pesan


respon ke operasi permintaan / tanggapan tunggal.Hal ini paling sering digunakan dalam
layanan SOAP. Sebuah portType dapat menentukan beberapa operasi.

Mari kita ambil sepotong kode dari bab WSDL Contoh:

<portType name="Hello_PortType">
<operation name="sayHello">
<input message="tns:SayHelloRequest"/>
<output message="tns:SayHelloResponse"/>
</operation>
</portType>
The portType elemen mendefinisikan operasi tunggal, disebutsayHello.

Operasi terdiri dari pesan input tunggalSayHelloRequestdan

output pesanSayHelloResponse.

Pola Operasi
WSDL mendukung empat pola dasar operasi:

Satu arah
Layanan ini menerima pesan. Oleh karena itu operasi memiliki elemeninputtunggal. Tata
bahasa untuk operasi satu arah adalah:

<wsdl:definitions .... >


<wsdl:portType .... > *
<wsdl:operation name="nmtoken">
<wsdl:input name="nmtoken"? message="qname"/>
</wsdl:operation>
</wsdl:portType >
</wsdl:definitions>

Permintaan-respon
Layanan ini menerima pesan dan mengirimkan tanggapan. Oleh karena itu operasi memiliki
satu elemeninput,diikuti oleh satu elemenoutput.Untuk merangkum kesalahan,
unsurkesalahanopsional juga dapat ditentukan. Tata bahasa untuk operasi permintaan-respon:

<wsdl:definitions .... >


<wsdl:portType .... > *
<wsdl:operation name="nmtoken" parameterOrder="nmtokens">
<wsdl:input name="nmtoken"? message="qname"/>
<wsdl:output name="nmtoken"? message="qname"/>
<wsdl:fault name="nmtoken" message="qname"/>*
</wsdl:operation>
</wsdl:portType >
</wsdl:definitions>

Meminta-respon
Layanan ini mengirimkan pesan dan menerima tanggapan. Oleh karena itu operasi memiliki
satu elemenoutput,diikuti oleh satu elemeninput.Untuk merangkum kesalahan,
unsurkesalahanopsional juga dapat ditentukan. Tata bahasa untuk operasi Solicit-respon:

<wsdl:definitions .... >


<wsdl:portType .... > *
<wsdl:operation name="nmtoken" parameterOrder="nmtokens">
<wsdl:output name="nmtoken"? message="qname"/>
<wsdl:input name="nmtoken"? message="qname"/>
<wsdl:fault name="nmtoken" message="qname"/>*
</wsdl:operation>
</wsdl:portType >
</wsdl:definitions>
Pemberitahuan
Layanan ini mengirimkan pesan. Oleh karena itu operasi memiliki elemenoutput.Berikut ini
adalah tata bahasa untuk operasi pemberitahuan:

<wsdl:definitions .... >


<wsdl:portType .... > *
<wsdl:operation name="nmtoken">
<wsdl:output name="nmtoken"? message="qname"/>
</wsdl:operation>
</wsdl:portType >
</wsdl:definitions>

WSDL <Mengikat> Elemen

The<mengikat> elemen memberikan rincian spesifik tentang bagaimana


operasiportTypebenar-benar akan dikirim melalui kawat.

Binding dapat dibuat tersedia melalui beberapa angkutan termasuk HTTP GET, HTTP
POST, atau SOAP.

Binding memberikan informasi konkret tentang apa protokol yang digunakan untuk
mentransfer operasiportType.

Binding memberikan informasi di mana layanan tersebut berada.

Untuk protokol SOAP, yang mengikat adalah<soap: mengikat>, dan transportasi


adalah pesan SOAP di atas protokol HTTP.

Anda dapat menentukan beberapa binding untukportTypetunggal.

Unsur yang mengikat memiliki dua atribut:namadanjenisatribut.

<binding name="Hello_Binding" type="tns:Hello_PortType">


Atribut nama mendefinisikan nama mengikat, dan jenis atribut poin ke port untuk mengikat,
dalam hal ini "TNS: Hello_PortType" port.

SOAP Binding
WSDL 1.1 termasuk built-in ekstensi untuk SOAP 1.1. Hal ini memungkinkan Anda untuk
menentukan rincian spesifik SOAP termasuk header SOAP, gaya SOAP encoding, dan header
SOAPAction HTTP. Unsur-unsur ekstensi SOAP adalah sebagai berikut:

sabun: mengikat

sabun: Operasi
sabun: tubuh

sabun: mengikat
Elemen ini menunjukkan bahwa mengikat akan tersedia melalui SOAP.
Atributstylemenunjukkan gaya keseluruhan format pesan SOAP. Nilai gayarpcmenentukan
format RPC.

Atributtransportasimenunjukkan pengangkutan pesan SOAP. Nilai


http://schemas.xmlsoap.org/soap/http menunjukkan transportasi HTTP SOAP, sedangkan
http://schemas.xmlsoap.org/soap/smtp menunjukkan transportasi SOAP SMTP.

sabun: Operasi
Elemen ini menunjukkan mengikat dari operasi tertentu untuk implementasi SOAP tertentu.
AtributSOAPActionmenentukan bahwa SOAPAction HTTP header digunakan untuk
mengidentifikasi layanan.

sabun: tubuh
Elemen ini memungkinkan Anda untuk menentukan rincian pesan input dan output. Dalam
kasus HelloWorld, elemen body menentukan SOAP encoding style dan URN namespace
terkait dengan layanan tertentu.

Berikut adalah potongan kode dari bab Contoh:

<binding name="Hello_Binding" type="tns:Hello_PortType">


<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/ >
<operation name="sayHello">
<soap:operation soapAction="sayHello"/>

<input>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:examples:helloservice" use="encoded"/>
</input>

<output>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:examples:helloservice" use="encoded"/>
</output>
</operation>
</binding>

WSDL <Port> Elemen

Sebuah<port> mendefinisikan titik akhir individu dengan menetapkan satu alamat


untuk mengikat.
Berikut adalah tata bahasa untuk menentukan port:

<wsdl:definitions .... >


<wsdl:service .... > *
<wsdl:port name="nmtoken" binding="qname"> *
<-- extensibility element (1) -->
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Port elemen memiliki dua atribut:namadanmengikat.

Atribut name memberikan nama unik di antara semua port didefinisikan dalam
dokumen melampirkan WSDL.

Atribut mengikat mengacu pada mengikat menggunakan aturan yang menghubungkan


didefinisikan oleh WSDL.

Mengikat unsur diperpanjang digunakan untuk menentukan informasi alamat untuk


pelabuhan.

Sebuah port TIDAK HARUS menentukan lebih dari satu alamat.

Sebuah port TIDAK HARUS menentukan mengikat informasi apapun selain


informasi alamat.

Berikut ini adalah potongan kode dari bab Contoh:

<service name="Hello_Service">
<documentation>WSDL File for HelloService</documentation>
<port binding="tns:Hello_Binding" name="Hello_Port">
<soap:address
location="http://www.examples.com/SayHello/">
</port>
</service>

WSDL <Service> Elemen

The<service> elemen mendefinisikan port didukung oleh layanan Wweb.Untuk masing-


masing protokol didukung, ada satu port elemen. Unsur layanan koleksi port.

klien layanan web dapat belajar berikut ini dari unsur pelayanan:

o di mana untuk mengakses layanan,

o melalui port untuk mengakses layanan web, dan

o bagaimana pesan-pesan komunikasi didefinisikan.


Unsur pelayanan mencakup elemen dokumentasi untuk memberikan dokumentasi
yang dapat dibaca manusia.

Berikut ini adalah potongan kode dari bab Contoh:

<service name="Hello_Service">
<documentation>WSDL File for HelloService</documentation>
<port binding="tns:Hello_Binding" name="Hello_Port">
<soap:address
location="http://www.examples.com/SayHello/">
</port>
</service>
Atribut yang mengikat elemenpelabuhanmengaitkan alamat layanan dengan elemen mengikat
didefinisikan dalam layanan web. Dalam contoh ini, iniHello_Binding

<binding name="Hello_Binding" type="tns:Hello_PortType">


<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="sayHello">
<soap:operation soapAction="sayHello"/>

<input>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:examples:helloservice" use="encoded"/>
</input>

<output>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:examples:helloservice" use="encoded"/>
</output>
</operation>
</binding>

Web Services Description Language (WSDL)


Web Services Description Language (WSDL) is a format for describing a Web Services
interface. It is a way to describe services and how they should be bound to specific network
addresses. WSDL has three parts:

Definitions

Operations

Service bindings

Definitions are generally expressed in XML and include both data type definitions and
message definitions that use the data type definitions. These definitions are usually based
upon some agreed upon XML vocabulary. This agreement could be within an organization or
between organizations. Vocabularies within an organization could be designed specifically for
that organization. They may or may not be based on some industry-wide vocabulary. If data
type and message definitions need to be used between organizations, then most likely an
industry-wide vocabulary will be used. For more on XML vocabularies, click here.

XML, however, is not necessary required for definitions. The OMG Interface Definition
Language (IDL), for example, could be used instead of XML. If a different definitional
format were used, senders and receivers would need to agree on the format as well as the
vocabulary. Nevertheless, over time, XML-based vocabularies and messages are likely to
dominate. XML Namespaces are used to ensure uniqueness of the XML element names in the
definitions, operations, and service bindings.

Operations describe actions for the messages supported by a Web service. There are four
types of operations:

One-way: Messages sent without a reply required

Request/response: The sender sends a message and the received sends a


reply.

Solicit response: A request for a response. (The specific definition for this
action is pending.)

Notification: Messages sent to multiple receivers. (The specific definition


for this action is pending.)

Operations are grouped into port types. Port types define a set of operations supported by the
Web service.

Service bindings connect port types to a port. A port is defined by associating a network
address with a port type. A collection of ports defines a service. This binding is commonly
created using SOAP, but other forms may be used. These other forms could include CORBA
Internet Inter-ORB Protocol (IIOP), DCOM, .NET, Java Message Service (JMS), or
WebSphere MQ to name a few.

The following figure shows the relationship of the basic parts of WSDL:

Anda mungkin juga menyukai