ความแตกต่างระหว่าง SOAP กับ REST
วันนี้ผมจะมาอธิบายความแตกต่างระหว่าง SOAP กับ REST แบบง่ายๆชาวบ้านๆเลยนะครับโดยทั้ง SOAP และ REST เกี่ยวข้องกับ Web Service ทั้งนั้นครับ โดย SOAP ย่อมาจาก "Simple Object Access Protocol" และ REST "Representational State Transfer" ผมขอยืมคำพูดจาก Blognone หน่อยนะครับผมว่าเขาอธิบายได้ดี
"ในการพัฒนาเว็บเซอร์วิสนั้นเราสามารถเลือกที่จะพัฒนาแบบ SOAP หรือแบบ REST ก็ได้ ถ้าเราพัฒนา SOAP Web services เราจะต้องมีการส่งข้อความ XML (เอกซ์เอ็มแอล) ตามรูปแบบที่กำหนดไว้โดยโปรโตคอล SOAP อีกทั้งต้องมีเอกสารอธิบายการเรียกใช้เว็บเซอร์วิสประกอบ ซึ่งเอกสารที่อธิบายนี้จะเขียนโดยใช้ภาษา WSDL (วิสเดิล) ในแง่ของผู้เรียกใช้ จะต้องมีการเข้าใจเอกสารที่อฺธิบายการเรียกใช้ SOAP Web services หรือมีเครื่องมือที่จะเข้าใจและเรียกใช้ได้อย่างถูกต้อง ในขณะที่ REST Web service จะเป็นรูปแบบของซอฟต์แวร์ที่มองว่าข้อมูลต่าง ๆ เป็น Resource ซึ่งคนสามารถเรียกใช้ได้ผ่านทางโปรโตคอล HTTP และข้อมูลที่ส่งกลับมาให้ผู้ใช้เป็นข้อมูลรูปแบบ XML ใด ๆ ก็ได้ ในแง่ของผู้เรียกใช้ REST Web service ก็ขอเพียงแค่ให้ทราบ URL ของ REST Web service และการอ่านข้อมูล XML ก็จะดึงข้อมูลที่ตนเองต้องการได้"
ถ้าจะว่าถึงความง่ายในการทำ Web Service ผมว่าทำง่ายพอๆกัน ถ้าคุณรู้จัก Tool ต่างๆแล้วรู้วิธีใช้ แต่ถ้าถามว่าอันไหนศึกษาแล้วทำได้ง่ายกว่าผมว่า REST จะง่ายมากครับเพียงคุณนำ Output ไปหุ้มด้วย XML เพียงเท่านี้คุณก็จะได้ Web Service แล้ว (แต่คนใช้ก็ต้องถอด xml ที่คนทำ web service ทำไว้ ซึ่งหา library มาใช้ง่ายมาก) ส่วน SOAP นั้นถ้าไม่ใช่ Tool Generate แล้วละก็ถือว่ามี Learning Curve ที่สูงเอาการเลย โดยภาษาที่ดังด้านนี้คือ .NET , PHP แล้วก็ Java (อันดับท้ายใน 3 เลยซะงั้น) ผมมี Resource มาฝากทุกท่านด้วยครับ
*
http://ws.apache.org/axis/ *
http://java.sun.com/developer/technicalArticles/J2EE/j2ee_ws/ *
http://java.sun.com/webservices/ *
http://www.onjava.com/pub/a/onjava/2001/08/07/webservices.html *
http://java.sun.com/webservices/docs/1.6/tutorial/doc/ *
https://jax-ws.dev.java.net/ *
http://truehits.net/faq/webmaster/webservice/ *
http://campus.en.kku.ac.th/ws/samples/ *
http://gotoknow.org/blog/xmlwsSOAP กับ REST คงยังต้องต่อสู้กันต่อไปกระแสคงบอกว่า SOAP จะดับแล้ว REST จะมาแทนที่แต่ผมว่าืัทั้ง 2 แบบมีจุดเด่นจุดด้อยของมันเอง เพียงแต่ REST มีจุดเด่นที่เรียนรู้และเข้าใจง่าย ทำให้คนส่วนใหญ่ชอบใช้งานแบบ REST มากกว่าก็เท่านั้นเอง...
http://blog.middleware.co.th/2008/03/soap-rest.html