SOAP Web Services
SOAP ย่อมาจาก Simple Object Access Protocol เป็นโปรโตคอลที่พัฒนาจาก XML สำหรับการเข้าถึงเว็บเซอร์วิส ถูกสร้างขึ้นเป็นภาษากลาง (Intermediate Language) เพื่อให้แอปพลิเคชันที่สร้างในภาษาการเขียนโปรแกรมหลายภาษาสามารถสื่อสารกับกันและกันได้อย่างมีประสิทธิภาพ เว็บเซอร์วิสใช้ SOAP สำหรับการแบ่งปันข้อมูล XML ระหว่างแอปพลิเคชัน
SOAP ให้การดำเนินการทั้งแบบมีสถานะ (Stateful) และไม่มีสถานะ (Stateless) Stateful หมายถึงเซิร์ฟเวอร์เก็บข้อมูลที่ได้รับจากไคลเอ็นต์ข้ามคำขอหลายครั้ง คำขอเหล่านี้ถูกเชื่อมโยงกันเพื่อให้เซิร์ฟเวอร์ทราบเกี่ยวกับคำขอก่อนหน้า ตัวอย่างคือธุรกรรมธนาคาร การจองเที่ยวบิน ฯลฯ การส่งข้อความแบบ Stateless มีข้อมูลเพียงพอเกี่ยวกับสถานะของไคลเอ็นต์ ทำให้เซิร์ฟเวอร์ไม่ต้องกังวล
RESTful Web Service
REST ย่อมาจาก Representational State Transfer เป็นแนวทางสถาปัตยกรรมสำหรับวัตถุประสงค์การสื่อสารที่มักใช้ในการพัฒนาเว็บเซอร์วิสหลายอย่าง เป็นโมเดลไคลเอ็นต์-เซิร์ฟเวอร์แบบไม่มีสถานะ (Stateless) เว็บเซอร์วิสที่นิยามบนข้อกำหนดของ REST คือ RESTful Web Services
เมื่อไคลเอ็นต์สร้างคำขอผ่าน RESTful API มันส่งการอธิบายสถานะของทรัพยากร (Resources) ไปยังเซิร์ฟเวอร์ ข้อมูลนี้สามารถส่งผ่านในรูปแบบหลายรูปแบบผ่าน HTTP เช่น JSON, HTML, XLT และ Plain Text แต่ JSON เป็นภาษาที่ใช้มากที่สุดเพราะความอ่านง่ายของเครื่องและมนุษย์
ในสถาปัตยกรรม REST ทุกอย่างคือทรัพยากร (Resource) RESTful Web Services ให้การสอดคล้องระหว่างแอปพลิเคชันการเขียนโปรแกรมที่ทำงานบนขั้นตอนและระบบหลายอย่าง สามารถพิจารณาเว็บเซอร์วิสเป็นโค้ดตามคำขอ (Code on Demand) RESTful Web Service คือความสามารถหรือเทคนิคที่สามารถรู้จักได้โดยการส่งคำขอ HTTP ไปยัง URL และการบริหารคืนผลลัพธ์เป็นการตอบสนอง (Response)
ลองดูการเปรียบเทียบระหว่าง SOAP และ RESTful Web Service
| SOAP | RESTful |
|---|---|
| SOAP ย่อมาจาก Simple Object Access Protocol. | RESTful ย่อมาจาก Representational State Transfer. |
| SOAP web service เชื่อมโยงการตอบสนองกับ XML เพราะการตอบสนองจริงถูกห่อหุ้มอยู่ในข้อความ SOAP ซึ่งเป็นรูปแบบ XML เสมอ. | RESTful web service สามารถคืนค่าการตอบสนองในหลายรูปแบบ เช่น JSON, XML, และ HTML. |
| SOAP ใช้ข้อความ XML เพื่อระบุกระบวนการเว็บหรือทรัพยากรที่ต้องการเรียกใช้. | RESTful web services ใช้ URL เพื่อระบุทรัพยากรที่ต้องการเข้าถึง. |
| SOAP ไม่ได้กำหนดข้อจำกัดบนการขนส่ง สามารถใช้ได้ เช่น HTTP หรือ MQ. | RESTful services ใช้โปรโตคอล HTTP ที่มีชื่อเสียง. |
| SOAP ไม่สามารถใช้ RESTful services ได้ เพราะมันเป็นโปรโตคอล. | RESTful service สามารถใช้ SOAP web services ได้ เพราะมันเป็นแนวทางสถาปัตยกรรมที่สามารถใช้โปรโตคอลใดๆ ได้ เช่น HTTP และ SOAP. |
| XML เป็นรูปแบบแลกเปลี่ยนข้อมูลที่นิยมใน SOAP web services. | JSON เป็นรูปแบบแลกเปลี่ยนข้อมูลที่นิยมใน RESTful web services. |