Kita perlu mendefinisikan apa itu layanan web sebelum memberi tahu apa perbedaan antara SOAP dan WSDL dimana keduanya (SOAP dan WSDL) adalah komponen dari layanan web
Sebagian besar aplikasi dikembangkan untuk berinteraksi dengan pengguna, pengguna memasukkan atau mencari data melalui antarmuka dan aplikasi kemudian merespons masukan pengguna.
Layanan Web melakukan hal yang kurang lebih sama kecuali bahwa aplikasi layanan Web hanya berkomunikasi dari mesin ke mesin atau aplikasi ke aplikasi. Seringkali tidak ada interaksi pengguna langsung.
Layanan Web pada dasarnya adalah kumpulan protokol terbuka yang digunakan untuk bertukar data antar aplikasi. Penggunaan protokol terbuka memungkinkan layanan Web menjadi platform independen. Perangkat lunak yang ditulis dalam bahasa pemrograman berbeda dan berjalan pada platform berbeda dapat menggunakan layanan Web untuk bertukar data melalui jaringan komputer seperti Internet. Dengan kata lain, aplikasi Windows dapat berkomunikasi dengan PHP, Java dan aplikasi Perl dan banyak lainnya, yang dalam keadaan normal tidak mungkin dilakukan.
Bagaimana Cara Kerja Layanan Web?
Karena aplikasi yang berbeda ditulis dalam bahasa pemrograman yang berbeda, seringkali aplikasi tersebut tidak dapat saling berkomunikasi. Layanan Web memungkinkan komunikasi ini dengan menggunakan kombinasi protokol dan standar terbuka, terutama XML, SOAP, dan WSDL. Layanan Web menggunakan XML untuk menandai data, SOAP untuk mentransfer pesan, dan akhirnya WSDL untuk menjelaskan ketersediaan layanan. Mari kita lihat tiga komponen utama dari aplikasi layanan Web ini.
Simple Object Access Protocol (SOAP)
Simple Object Access Protocol atau SOAP adalah protokol untuk mengirim dan menerima pesan antar aplikasi tanpa menghadapi masalah interoperabilitas (interoperabilitas berarti platform yang menjalankan layanan Web menjadi tidak relevan). Protokol lain yang memiliki fungsi serupa adalah HTTP. Ini digunakan untuk mengakses halaman Web atau menjelajahi Internet. HTTP memastikan bahwa Anda tidak perlu khawatir tentang jenis server Web - apakah Apache atau IIS atau lainnya - yang menyajikan halaman yang Anda lihat atau apakah halaman yang Anda lihat dibuat dalam ASP.NET atau HTML.
Karena SOAP digunakan baik untuk meminta dan menanggapi, isinya sedikit berbeda tergantung pada tujuannya.
Di bawah ini adalah contoh permintaan SOAP dan pesan respons
Permintaan SOAP:
POST /InStock HTTP/1.1
Host: www.bookshop.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.bookshop.org/prices">
<m:GetBookPrice>
<m:BookName>The Fleamarket</m:BookName>
</m:GetBookPrice>
</soap:Body>
</soap:Envelope>
Tanggapan SOAP:
POST /InStock HTTP/1.1
Host: www.bookshop.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.bookshop.org/prices">
<m:GetBookPriceResponse>
<m: Price>10.95</m: Price>
</m:GetBookPriceResponse>
</soap:Body>
</soap:Envelope>
Meskipun kedua pesan terlihat sama, metode yang mereka gunakan berbeda. Misalnya dengan melihat contoh di atas, Anda dapat melihat bahwa pesan yang meminta menggunakan GetBookPrice
metode untuk mendapatkan harga buku. Respon tersebut dilakukan olehGetBookPriceResponse
metode, yang akan menjadi pesan yang akan Anda lihat sebagai "pemohon". Anda juga dapat melihat bahwa pesan disusun menggunakan XML.
Web Services Description Language atau WSDL
WSDL adalah dokumen yang menjelaskan layanan Web dan juga memberi tahu Anda cara mengakses dan menggunakan metodenya.
WSDL menangani bagaimana Anda mengetahui metode apa yang tersedia dalam layanan Web yang Anda temukan di Internet.
Lihat contoh file WSDL:
<?xml version="1.0" encoding="UTF-8"?>
<definitions name ="DayOfWeek"
targetNamespace="http://www.roguewave.com/soapworx/examples/DayOfWeek.wsdl"
xmlns:tns="http://www.roguewave.com/soapworx/examples/DayOfWeek.wsdl"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<message name="DayOfWeekInput">
<part name="date" type="xsd:date"/>
</message>
<message name="DayOfWeekResponse">
<part name="dayOfWeek" type="xsd:string"/>
</message>
<portType name="DayOfWeekPortType">
<operation name="GetDayOfWeek">
<input message="tns:DayOfWeekInput"/>
<output message="tns:DayOfWeekResponse"/>
</operation>
</portType>
<binding name="DayOfWeekBinding" type="tns:DayOfWeekPortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetDayOfWeek">
<soap:operation soapAction="getdayofweek"/>
<input>
<soap:body use="encoded"
namespace="http://www.roguewave.com/soapworx/examples"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded"
namespace="http://www.roguewave.com/soapworx/examples"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<service name="DayOfWeekService" >
<documentation>
Returns the day-of-week name for a given date
</documentation>
<port name="DayOfWeekPort" binding="tns:DayOfWeekBinding">
<soap:address location="http://localhost:8090/dayofweek/DayOfWeek"/>
</port>
</service>
</definitions>
Hal utama yang perlu diingat tentang file WSDL adalah bahwa file tersebut memberi Anda:
Penjelasan tentang layanan Web
Metode yang digunakan layanan Web dan parameter yang diperlukan
Sebuah cara untuk menemukan layanan Web