Apa itu WSDL, SOAP dan REST?

153

Apa itu WSDL ? Bagaimana ini terkait dengan SOAP ? Di mana REST cocok dengan semua itu?

javaguy
sumber
2
"Contoh" seperti apa yang Anda cari? Seperti yang saya katakan, itu bukan hal yang sederhana bahwa Anda bisa mendapatkan contoh "sederhana".
John Saunders

Jawaban:

180

WSDL adalah dokumen XML yang menjelaskan layanan web. Ini sebenarnya adalah singkatan dari Layanan Web Deskripsi Bahasa.

SOAP adalah protokol berbasis XML yang memungkinkan Anda bertukar info melalui protokol tertentu (misalnya HTTP atau SMTP) antar aplikasi. Itu adalah singkatan dari Simple Object Access Protocol dan menggunakan XML untuk format pesannya untuk menyampaikan informasi.

REST adalah gaya arsitektur sistem jaringan dan kependekan dari Representational State Transfer. Ini bukan standar itu sendiri, tetapi menggunakan standar seperti HTTP, URL, XML, dll.

keith_c
sumber
4
Saya bermaksud menempatkan SMTP atau HTTP sebagai contoh protokol yang dapat digunakan SOAP. Saya tidak bermaksud bahwa HTTP adalah satu-satunya protokol yang dapat digunakan (hanya menggunakannya sebagai contoh).
keith_c
7
Representational State Transfer (REST) ​​adalah gaya arsitektur yang menetapkan batasan, seperti antarmuka yang seragam, yang jika diterapkan pada layanan web menginduksi properti yang diinginkan, seperti kinerja, skalabilitas, dan kemampuan modifikasi, yang memungkinkan layanan bekerja paling baik di Web. Dalam gaya REST, data dan fungsionalitas dianggap sumber daya dan diakses menggunakan Uniform Resource Identifiers (URIs). Sumber daya ditindaklanjuti dengan menggunakan serangkaian operasi sederhana, terdefinisi dengan baik. mengikuti arsitektur klien / server dan dirancang untuk menggunakan protokol komunikasi stateless, biasanya HTTP.
kingAm
4
Bukankah 'D' dalam WSDL berarti "Deskripsi", bukan "Definisi"?
Sparkzz
11
"A WSDL is an XML document that describes a web service. It actually stands for Web Services Definition Language." Ini benar-benar tidak menjelaskan apa itu ...
Ojonugwa Jude Ochalifu
2
@Sparkzz menurut wikipedia:The current version of WSDL is WSDL 2.0. The meaning of the acronym has changed from version 1.1 where the "D" stood for "Definition".
Bochu
106

Contoh: Secara sederhana jika Anda memiliki layanan web kalkulator.

WSDL: WSDL memberi tahu tentang fungsi yang dapat Anda terapkan atau tampilkan ke klien. Misalnya: tambah, hapus, kurangi dan sebagainya.

SOAP: Di mana seperti menggunakan SOAP Anda benar-benar melakukan tindakan seperti doDelete (), doSubtract (), doAdd (). Jadi SABUN dan WSDL adalah apel dan jeruk. Kita tidak harus membandingkannya. Keduanya memiliki fungsi yang berbeda.

Mengapa kami menggunakan SOAP dan WSDL: Untuk pertukaran data independen platform.

EDIT: Dalam contoh kehidupan sehari-hari yang normal:

WSDL: Ketika kami pergi ke restoran kami melihat Item Menu, itu adalah WSDL.

Kelas Proxy: Sekarang setelah melihat Item Menu, kami membuat Pikiran kami (Memproses pikiran kami tentang apa yang harus dipesan): Jadi, pada dasarnya kami membuat kelas Proxy berdasarkan Dokumen WSDL.

SOAP: Lalu ketika kita benar-benar memesan makanan berdasarkan Menu: Artinya kita menggunakan kelas proxy untuk memanggil metode layanan yang dilakukan menggunakan SOAP. :)

Tidak bisa dipecahkan
sumber
38

Setiap kali seseorang menyebutkan SOAP / WSDL, saya memikirkan objek dan kelas yang didefinisikan dalam xml ...

"Anda menggunakan SOAP dengan cara yang sama dengan yang Anda lakukan pada kelas PHP mana pun. Namun, dalam hal ini kelas tidak ada dalam sistem file aplikasi lokal, tetapi di situs jarak jauh yang diakses melalui http." ... "Jika kita berpikir untuk menggunakan layanan SOAP hanya sebagai kelas PHP lain maka dokumen WSDL adalah daftar semua metode dan properti kelas yang tersedia."

http://www.doublehops.com/2009/07/07/quick-tutorial-on-getting-started-with-soap-in-php/comment-page-1/

..dan setiap kali seseorang berbicara tentang REST saya memikirkan perintah HTTP (metode permintaan) seperti POST, DAPATKAN dan HAPUS

angelcool.net
sumber
19

SOAP -> SOAP (Simple object access protocal) adalah level aplikasi protocal yang dibuat untuk interaksi mesin ke mesin. Protokol mendefinisikan aturan standar. Semua pihak yang menggunakan protokol tertentu harus mematuhi aturan protokol. Seperti TCP, Ia terurai pada lapisan transport, Protokol SOAP akan dipahami oleh lapisan Aplikasi (aplikasi apa pun yang mendukung SOAP - Axis2, .Net).

WSDL -> pesan SOAP terdiri dari SoapEnevelope-> SoapHeader dan SoapBody. Itu tidak menentukan apa yang akan menjadi format pesan? apa semua transport (HTTP, JMS) yang didukungnya? tanpa info ini, Sulit bagi klien yang ingin mengkonsumsi layanan web tertentu untuk membangun pesan SOAP. Bahkan jika mereka melakukannya, mereka tidak akan yakin, itu akan berhasil sepanjang waktu. WSDL adalah penyelamat. WSDL (Bahasa deskripsi Layanan Web) mendefinisikan operasi, format pesan, dan rincian transport untuk pesan SOAP.

REST -> REST (Transfer status perwakilan) didasarkan pada Transport. Tidak seperti SOAP yang menargetkan tindakan, REST lebih memperhatikan sumber daya. REST menempatkan sumber daya dengan menggunakan URL (contoh -http: // {serverAddress} / karyawan / employeeNumber / 12345) dan itu tergantung pada protokol transport (dengan HTTP - GET, POST, PUT, DELETE, ...) untuk tindakan untuk dilakukan pada sumber daya. Layanan REST menempatkan sumber daya berdasarkan URL dan melakukan tindakan berdasarkan kata kerja tindakan transportasi. Ini lebih didasarkan pada gaya arsitektur dan konvensi.

Raj kannan Iyyappan
sumber
16

Anda tidak akan "sekadar" memahami sesuatu yang kompleks.

WSDL adalah bahasa berbasis XML untuk menggambarkan layanan web. Ini menjelaskan pesan, operasi, dan informasi transportasi jaringan yang digunakan oleh layanan. Layanan web ini biasanya menggunakan SOAP, tetapi dapat menggunakan protokol lain.

WSDL dapat dibaca oleh suatu program, dan karenanya dapat digunakan untuk menghasilkan semua, atau bagian dari kode klien yang diperlukan untuk memanggil layanan web. Ini adalah apa artinya memanggil layanan web berbasis SOAP "menggambarkan diri sendiri".

REST sama sekali tidak terkait dengan WSDL.

John Saunders
sumber
11

SOAP singkatan dari Simple (sic) Object Access Protocol. Itu dimaksudkan sebagai cara untuk melakukan Panggilan Prosedur Jauh ke objek jarak jauh dengan mengirim XML melalui HTTP.

WSDL adalah Bahasa Deskripsi Layanan Web. Permintaan yang diakhiri dengan '.wsdl' ke titik akhir akan menghasilkan pesan XML yang menggambarkan permintaan dan respons yang dapat diharapkan dari penggunaan. Ini menggambarkan kontrak antara layanan & klien.

REST menggunakan HTTP untuk mengirim pesan ke layanan.

SABUN adalah spec, REST adalah gaya.

Duffymo
sumber
2
-1: maaf, tapi saya tidak setuju dengan mengaitkan SOAP dengan RPC. Bagaimana dengan layanan bergaya pesan? Juga, tidak ada standar yang mengatakan permintaan yang diakhiri dengan .wsdl atau? Wsdl akan menghasilkan WSDL.
John Saunders
4
Apakah Anda mengatakan bahwa Anda tidak dapat melakukan RPC dengan SOAP? Saya tahu itu mungkin tidak mencakup seluruh standar, tetapi itu tentu saja motivasi asli. Sejauh apakah URL WSDL atau tidak merupakan bagian dari standar, saya akui Anda memilikinya di sana. Biasanya cara saya melihatnya selesai, tetapi saya tidak bisa mengutip apa pun dalam standar yang mengamanatkannya.
duffymo
1
Anda mungkin telah membingungkan fakta bahwa SOAP berasal dari XML-RPC dengan gagasan bahwa SOAP awalnya dimaksudkan sebagai RPC. Namun perlu dicatat bahwa WSDL, sejak awal, mampu menggambarkan layanan gaya dokumen, selain layanan gaya RPC. Jika RPC adalah motivasi asli di balik SOAP dan WSDL, maka orang akan berharap bahwa layanan gaya dokumen akan absen dari standar asli.
John Saunders
6

Wikipedia mengatakan "Bahasa Deskripsi Layanan Web adalah bahasa berbasis XML yang menyediakan model untuk menggambarkan layanan Web". Dengan kata lain, WSDL adalah untuk layanan web, seperti javadoc ke perpustakaan java.

Hal yang benar-benar manis tentang WSDL adalah perangkat lunak dapat menghasilkan klien dan server menggunakan WSDL.

Michael Burrows
sumber
4

REST ringan dalam hal pengkodean, jauh lebih berguna untuk perangkat ringan yaitu API yang tidak ketat.

REST adalah format yang independen. XML, HTML, JSON semua opsi tersedia.

REST menyediakan kemampuan untuk transfer pesan 2 poin (tidak mengejutkan karena REST adalah singkatan dari REpresentational State Transfer) di mana interaksi WSDL / SOAP adalah interaksi pesan beberapa titik.

REST tidak memerlukan ekstensi baru untuk pesan XML, di mana dalam WSDL / SOAP ini terjadi.

WSDL / SOAP menggunakan beberapa protokol transport, REST hanya bergantung pada HTTP. Oleh karena itu WSDL / SOAP dapat digunakan seperti cara RESTful, namun permintaan sederhana dapat menjadi sangat rumit / sangat berat.

Sebuah analogi sederhana: REST seperti motoboy yang memberikan makanan Anda dengan mudah dan cepat. XML memperluas WSDL / SOAP lebih seperti pengiriman UPS, hal-hal yang lebih terstruktur dan serius tetapi disertai dengan biaya.

Bedi Egilmez
sumber
0

Dokumen WSDL menjelaskan layanan web. Ini menentukan lokasi layanan dan metode layanan menggunakan elemen-elemen utama ini: tipe data yang digunakan dalam elemen data layanan web untuk setiap operasi menggambarkan operasi yang dapat dilakukan dan pesan yang dilibatkan

SOAP (Simple Object Access Protocol) adalah protokol pengiriman pesan yang memungkinkan program yang berjalan pada sistem operasi yang berbeda untuk berkomunikasi menggunakan http dan xml.

Farzaneh
sumber