Perbezaan antara REST dan SOAP

Pengenalan

Artikel ini membincangkan dua protokol akses perkhidmatan web, SOAP ("Protokol Mudah Objek Mudah") dan REST ("Pemindahan Negeri Perwakilan").

Perkhidmatan Web

Perkhidmatan web ditakrifkan untuk mengambil, membaca, atau memindahkan data secara aktif dari sumber yang ditetapkan untuk menghasilkan hasil tertentu - hasilnya.

Contoh asas berikut menunjukkan penggunaan asas perkhidmatan web sebelum memahami bagaimana data dipindahkan ke dan dari perkhidmatan web, menggunakan SOAP atau REST.

Sekiranya pemaju menulis aplikasi yang memerlukan beberapa pengiraan data di satu tempat, akan menulis kaedah pengiraan dalam kod itu, di satu tempat itu. Walau bagaimanapun, jika pengiraan data diperlukan di bahagian lain permohonan, ia tidak cekap dan tidak praktikal untuk mengekalkan jika pemaju meletakkan kaedah pengiraan di setiap kawasan yang diperlukan.

Setelah membuat satu perubahan kepada kaedah itu, memerlukan mencari setiap contoh untuk mengedit (dan menguji semula). Senario ini akan mendapat manfaat daripada menggunakan perkhidmatan web untuk berfungsi secara optimum dan meningkatkan ketangkasan perniagaan.

Dengan mewujudkan satu perkhidmatan web dengan kaedah yang boleh diakses untuk menambah, menolak, membahagikan dan membiak, permohonan itu akan melibatkan perkhidmatan web tersebut apabila pengiraan data diperlukan; ia memanggil perkhidmatan web untuk melakukan pengiraan dan menghasilkan hasilnya. Oleh itu, hanya terdapat satu tempat bagi pemaju untuk mengekalkan kaedah pengiraan data.

Data cara yang dikendalikan dalam perkhidmatan web ditentukan oleh sama ada SOAP atau REST dilaksanakan.

SOA dan BPMN

Permohonan yang dibina di atas proses boleh laku adalah berdasarkan a Senibina Berorientasikan Perkhidmatan ("SOA"). Ia adalah pendekatan bagaimana menggunakan perkhidmatan yang memindahkan, menghasilkan, mengesahkan atau mengira data.

SOA menjadi lebih dan lebih baik untuk meningkatkan kualiti dan masa pembangunan, dan meningkatkan prestasi aplikasi dan berskala.

Notasi Pemodelan Proses Perniagaan ("BPMN") sedang memodelkan proses perkhidmatan atau perniagaan, yang boleh dilakukan oleh orang bukan teknikal iaitu penganalisis perniagaan. Menggunakan BPMN, model perniagaan (untuk perkhidmatan) mudah ditafsirkan oleh pemaju yang melaksanakan model sebagai proses yang boleh dilaksanakan, dan proses ini mungkin atau mungkin tidak memerlukan interaksi manusia.

Protokol Akses Objek Mudah (SOAP)

SOAP adalah kaedah pemindahan data melalui internet.

Awalnya dibangunkan oleh Microsoft kerana kedatangan internet, SOAP menggantikan yang lama DCOM dan CORBA teknologi, dan ia telah wujud lebih lama daripada REST.

SOAP dianggap lebih berat daripada REST i.e. terdapat lebih banyak bagasi diperlukan untuk memindahkan data, yang bermaksud lebih banyak jalur lebar diperlukan setiap permintaan mesej dan sumber data dan sasaran mempunyai lebih banyak pekerjaan untuk dilakukan ketika membungkus dan menerima data.

Hanya menggunakan SOAP XML untuk perkhidmatan pesanan melalui internet, dan permintaan mesej XML boleh menjadi sangat rumit dan jika dibangunkan secara manual, perhatian yang teliti diperlukan kerana SOAP tidak fleksibel dengan ralat.

Adalah mungkin untuk mengautomasikan permintaan mesej SOAP menggunakan bahasa NET (sebagai contoh), di mana pemaju tidak perlu bekerja dengan XML kerana ia dijana secara automatik di latar belakang.

Jika ada masalah yang dihadapi dengan permintaan mesej, maklumat ralat terperinci dikembalikan dalam respon mesej, dan proses ini juga boleh diautomatikkan dengan merujuk kod ralat standard yang disediakan dalam respons mesej.

Oleh itu, bahasa pengaturcaraan yang digunakan adalah faktor penentu dalam betapa sukarnya untuk melaksanakan SOAP.

Salah satu bahagian bagasi yang mengiringi mesej SOAP ialah Perkhidmatan Penerangan Web Bahasa ("WSDL") untuk menerangkan bagaimana perkhidmatan web berfungsi. Apabila aplikasi merujuk kepada perkhidmatan web, ia membaca dan memahami apa yang perlu dilakukan dengan perkhidmatan web.

SOAP tidak terikat untuk digunakan HTTP (Protokol Pemindahan HyperText) semata-mata; ia boleh digunakan melalui SMTP, dan protokol pengangkutan lain.

Sebagai SOAP diseragamkan, ia lebih tegar daripada REST, walaupun kedua-duanya bergantung kepada peraturan yang ditetapkan.

REST

REST adalah sepupu SOAP yang lebih baru dan lebih anggun, dan pantas menjadi pilihan untuk kebanyakan aplikasi web dan mudah alih.

Lebih daripada satu dekad selepas pengenalannya, REST adalah cara yang lebih ringan, lebih mudah dikendalikan dan berskala berinteraksi dengan perkhidmatan web.

Tidak seperti SOAP, REST tidak digunakan XML secara eksklusif; teks kosong, CSV, dan RSS boleh digunakan, dan juga JSON untuk panggilan AJAX; selagi kedua-dua sumber dan sasaran dapat memahami format yang digunakan.

REST kurang rumit dan dianggap kurva pembelajaran yang lebih kecil berbanding dengan SOAP. Kebanyakan bahasa pengaturcaraan moden mempunyai perpustakaan dan kerangka untuk memudahkan perkhidmatan REST (RESTful), seperti C #, Python, Java, dan Perl.

REST lebih cepat kerana pemprosesan yang minimum dan lebih efisien menggunakan format mesej yang berbeza.

Terdapat kelebihan dan keburukan kepada kedua-duanya, jadi apabila mempertimbangkan protokol akses yang digunakan, pertimbangkan bahasa pengaturcaraan yang digunakan dalam organisasi, persekitaran aplikasi dan keperluan aplikasi.