Selasa, 21 Desember 2010

WSDL

WSDL adalah bahasa berbasis XML untuk mendeskripsikan Web Services dan bagaimana untuk mengaksesnya.
  • WSDL adalah singkatan dari Web Services Description Language
  • WSDL ditulis dalam XML
  • WSDL adalah dokumen XML
  • WSDL digunakan untuk menggambarkan layanan Web
  • WSDL juga digunakan untuk menemukan layanan Web
  • WSDL adalah rekomendasi W3C
Sebelum Anda melanjutkan, Anda harus memiliki pemahaman dasar sebagai berikut:
  • XML
  • XML Namespaces
  • XML Schema

WSDL adalah dokumen yang ditulis dalam XML. Dokumen ini menjelaskan Web Services. Ini menentukan lokasi layanan dan operasi (atau metode) pelayanan.


Dokumen WSDL hanya sederhana dokumen XML.
Ini berisi kumpulan definisi untuk menggambarkan layanan web.

Struktur WSDL Dokumen

Sebuah dokumen WSDL menguraikan web service menggunakan elemen utama:
Elemen Mendefinisikan
<types> Jenis data yang digunakan oleh layanan web
<message> Pesan-pesan yang digunakan oleh layanan web
<portType> Operasi dilakukan oleh web service
<binding> Protokol komunikasi yang digunakan oleh layanan web
Struktur utama dokumen WSDL terlihat seperti ini:
<definitions>

<types>
  definition of types........
</types>

<message>
  definition of a message....
</message>

<portType>
  definition of a port.......
</portType>

<binding>
  definition of a binding....
</binding>

</definitions>

Sebuah dokumen WSDL juga dapat mengandung unsur-unsur lain, seperti elemen ekstensi, dan elemen layanan yang memungkinkan untuk grup bersama definisi layanan beberapa web dalam satu dokumen WSDL.

WSDL Ports

The <portType> elemen WSDL unsur paling penting.
Ia menjelaskan web service, operasi yang dapat dilakukan, dan pesan yang terlibat.
Unsur <portType> dapat dibandingkan dengan fungsi (atau modul, atau kelas) dalam bahasa pemrograman tradisional.

WSDL Message

The <message> mendefinisikan elemen elemen data dari operasi.
Setiap pesan bisa terdiri dari satu atau lebih bagian. Bagian-bagian pada message yang dapat dibandingkan dengan parameter pada fungsi dalam bahasa pemrograman tradisional.

WSDL Types

<types> elemen mendefinisikan tipe data yang digunakan oleh layanan web.
Untuk netralitas platform maksimal, WSDL menggunakan sintaks XML Schema untuk mendefinisikan tipe data.

WSDL Bindings

<binding> elemen mendefinisikan format dan protokol rincian pesan untuk setiap port.

CONTOH WSDL

Ini adalah sebagian kecil sederhana dari sebuah dokumen WSDL:
<message name="getTermRequest">
  <part name="term" type="xs:string"/>
</message>

<message name="getTermResponse">
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="getTerm">
    <input message="getTermRequest"/>
    <output message="getTermResponse"/>
  </operation>
</portType>
Dalam contoh ini <portType> elemen mendefinisikan "glossaryTerms" sebagai nama sebuah port , dan "getTerm" sebagai nama sebuah operasi .
The "getTerm" operasi memiliki pesan masukan disebut "getTermRequest" dan sebuah pesan keluaran disebut "getTermResponse".
<message> elemen menentukan bagian-bagian dari setiap pesan dan jenis data yang terkait.
Dibandingkan dengan pemrograman tradisional, glossaryTerms adalah fungsi perpustakaan, "getTerm" adalah fungsi dengan "getTermRequest" sebagai parameter masukan, dan getTermResponse sebagai parameter kembali.


WSDL PORTS
Jenis operasi request-respon adalah jenis operasi yang paling umum, namun WSDL mendefinisikan empat jenis:

Operasi One-Way

Sebuah contoh satu arah operasi:
<message name="newTermValues">
  <part name="term" type="xs:string"/>
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="setTerm">
    <input name="newTerm" message="newTermValues"/>
  </operation>
</portType >

Pada contoh di atas, "glossaryTerms" port mendefinisikan operasi satu arah yang disebut "setterm".
"setterm" operasi memungkinkan masukan pesan baru istilah glossary menggunakan "newTermValues" pesan dengan parameter input "term" dan "value". Namun, tidak ada output ditetapkan untuk operasi.

Operasi request-Respon


Contoh request-respon operasi:
<message name="getTermRequest">
  <part name="term" type="xs:string"/>
</message>

<message name="getTermResponse">
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="getTerm">
    <input message="getTermRequest"/>
    <output message="getTermResponse"/>
  </operation>
</portType>

Pada contoh di atas, "glossaryTerms" port mendefinisikan operasi permintaan-respon yang disebut "getTerm".

The "getTerm" operasi membutuhkan sebuah pesan masukan disebut "getTermRequest" dengan parameter yang disebut "term", dan akan kembali pesan keluaran disebut "getTermResponse" dengan parameter yang disebut "value".



WSDL Bindings

binding WSDL mendefinisikan detail pesan format dan protokol untuk layanan web

Binding Ke SOAP
Contoh request-respon operasi:
<message name="getTermRequest">
  <part name="term" type="xs:string"/>
</message>

<message name="getTermResponse">
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="getTerm">
    <input message="getTermRequest"/>
    <output message="getTermResponse"/>
  </operation>
</portType>

<binding type="glossaryTerms" name="b1">
   <soap:binding style="document"
   transport="http://schemas.xmlsoap.org/soap/http" />
   <operation>
     <soap:operation soapAction="http://example.com/getTerm"/>
     <input><soap:body use="literal"/></input>
     <output><soap:body use="literal"/></output>
  </operation>
</binding>

elemen binding memiliki dua atribut - nama dan tipe.

nama Atribut (Anda dapat menggunakan nama yang Anda inginkan) mendefinisikan nama dari binding, dan atribut type diarahkan ke port yang akan di binding, dalam hal ini port tersebut memliki nama "glossaryTerms".

SOAP: binding elemen memiliki dua atribut - style dan transport

Atribut style dapat berupa "rpc" atau "dokumen". Dalam hal ini kita menggunakan dokumen. Atribut transport mendefinisikan protokol SOAP untuk digunakan. Dalam hal ini kita menggunakan HTTP.

elemen operasi mendefinisikan setiap operasi yang ddipaparkan pada port.

Untuk setiap operasi SOAP tindakan yang sesuai harus ditetapkan. Anda juga harus menentukan bagaimana input dan output yang disandikan. Dalam hal ini kita menggunakan "literal".

1 komentar:

  1. Artikel yang sangat bagus..ada contoh implementasinya ? tks

    BalasHapus