Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

REST กับ SOAP ต่างกันอย่างไร ?

$
0
0

rest-soap

rest-soap สิ่งหนึ่งที่ developer ควรทำความเข้าใจก็คือ เรื่องของ REST vs SOAP ก่อนตัดสินใจใช้นั้น ควรรู้และเข้าใจก่อนว่า
  • REST และ SOAP คืออะไร ?
  • ทั้งสองมีข้อดีและข้อเสียอย่างไร ?
  • ใช้งานแต่ละตัวเมื่อใด ?
เรื่องความรู้พื้นฐานมันสำคัญมาก ๆ ดังนั้นมาปูพื้นแบบเบา ๆ กันนิดหน่อย SOAP ย่อมาจาก Simple Object Access Protocol ถูกกำหนดขึ้นมาตั้งแต่ปี 1998 เป้าหมายเพื่อใช้ในตลาด enterprise โดยเฉพาะ ปล. developer หลาย ๆ คนอาจจะไม่รู้จัก SOAP ก็เป็นได้ !! REST ย่อมาจาก Representational State Transfer ถูกกำหนดขึ้นมาตั้งแต่ปี 2000 เป้าหมายเพื่อเป็นรูปแบบหนึ่งในการออกแบบ open web technology

แนวคิดพื้นฐาน

SOAP นั้นต้องสร้างให้ application logic ออกมาเป็น service ทำให้การตั้งชื่อเป็นดังนี้
  • getUserInformation
  • payInvoice
โดย SOAP เป้าหมายเพื่อเป็น protocol ใหม่ของการติดต่อสื่อสาร ส่วน REST นั้นต้องการทำให้ข้อมูลอยู่ในรูปแบบของ resource ส่วนการกระทำต่าง ๆ เป็นไปตาม HTTP Verb หรือ HTTP Method (GET, POST, PUT, DELETE) และทำงานแบบ Stateless ทำให้การตั้งชื่อเป็นดังนี้
  • userinformation
  • invoice

ข้อดีและข้อเสียของ SOAP

ข้อดี
  • สามารถทำงานอยู่บน protocol ใด ๆ ก็ได้
  • อธิบาย service ด้วย WDSL (Web Service Description Language)
  • มีความน่าเชื่อถือ เมื่อเกิดปัญหาสามารถทำการ retry ได้
  • สนับสนุนเรื่อง security อยู่แล้ว ทั้ง authentication, authorization และ การเข้ารหัสข้อมูล
ข้อเสีย
  • ยากต่อการพัฒนา ทำให้ไม่เป็นที่นิยมสำหรับระบบ web และ mobile
  • สนับสนุนรูปแบบข้อมูล XML เพียงอย่างเดียว
  • เนื่องจากมันเป็น standard ทำให้มีข้อจำกัดเยอะ
  • เนื่องจากโครงสร้างมันมีหลายส่วนทำให้มี overhead สูง หรือ ต้องใช้ bandwidth สูงกว่า REST

ข้อดีและข้อเสียของ REST

ข้อดี
  • ทำการอยู่บน HTTP และทำตามมาตรฐานของ HTTP จึงทำให้พัฒนาได้ง่าย
  • สนับสนุนรูปแบบข้อมูลมากมาย เช่น XML, JSON, Plain Text และอื่น ๆ อีกมากมาย
  • รองรับการขยายระบบได้ง่าย
  • มีประสิทธิภาพการทำงานที่ดี
  • รองรับเรื่อง caching ข้อมูล
ข้อเสีย
  • ทำงานได้เฉพาะ HTTP protocol เท่านั้น
  • ไม่มีเรื่องของ security และ reliability มาให้ในตัว ดังนั้นต้องทำเอง
  • รูปแบบข้อมูลที่ส่งไปมาระหว่าง client-server ไม่มีข้อจำกัดอะไรเลย

คำถามที่น่าสนใจคือ จะใช้ SOAP และ REST เมื่อใดบ้าง ?

ใช้ SOAP เมื่อ ต้องการจัดการ transaction เมื่อต้องทำงานกับหลาย ๆ ระบบ ต้องการความเข้มงวดในการเชื่อมต่อระหว่าง client/server ตัวอย่างเช่น Finacial service และ Telecommunication service ดังนั้นจึงไม่แปลกว่า ทำไมในองค์กรใหญ่ ๆ เหล่านี้ใช้ SOAP กันมาก ใช้ REST เมื่อ ต้องการลดขนาดของข้อมูล และ จำนวน bandwidth ที่ใช้งาน ต้องการเมื่อทำงานอยู่บนระบบ web และ mobile ตัวอย่างเช่น Social media service, Web Chat service ดังนั้นจึงไม่แปลกว่า ทำไมระบบ web และ api ต่าง ๆ ผ่าน web จึงเป็น REST บางคนไปหาข้อมูลสำหรับ Open API น่าจะข้อมูลดังนี้ ซึ่งบอกว่า REST มันได้รับความนิยมกว่า SOAP มากมาย open-apis-state-of-the-market-2011-12-728

สุดท้ายแล้ว ก่อนจะเลือกใช้งานอะไร

ต้องมีความรู้พื้นฐานก่อน ต้องมีความเข้าใจก่อน ต้องเข้าใจความต้องการของระบบก่อน จึงจะเลือกได้อย่างถูกต้องและเหมาะสม
มิใช่เพียงฟังเขาบอกมา ว่ามันดี จึงใช้ตาม !!
ปิดท้ายด้วย Infographic ของ REST vs SOAP Reference Websites http://stackoverflow.com/questions/19884295/soap-vs-rest-differences https://dzone.com/articles/rest-or-soap-which-one-to-use http://searchsoa.techtarget.com/tip/REST-vs-SOAP-How-to-choose-the-best-Web-service

Viewing all articles
Browse latest Browse all 1997

Trending Articles