SOAP คืออะไร
Simple Object Access Protocol หรือ SOAP คืออะไร ? มันคือ protocol specification ชนิดหนึ่งที่ใช้สำหรับแลกเปลี่ยนข้อมูล ผ่านทาง Webservice ระหว่าง network ในรูปแบบ XML format โดยทำงานอยู่ใน application layer (OSI layer) มักจะอาศัย protocol HTTP หรือ SMTP ในการส่งข้อมูลระหว่างกัน
ตั้งแต่ที่ HTTP สามารถติดตั้งใช้งานได้ทุก OS ทำให้ SOAP สามารถทำงานต่าง OS กันได้ เช่น Window กับ Linux โดยสื่อสารผ่านทาง Extensible Markup Language (XML)
คุณสมบัติของ SOAP
SOAP สามารถทำเป็น webservice เพราะมี Messaging Protocol layer โดยอาศัย XML-base โดยมีลักษณะดังนี้
- ปรับเพิ่มได้ ไม่ว่าจะเป็นเรื่อง security และ routing
- เป็นกลาง สามารถทำงานได้หลาย protocol เช่น HTTP, SMTP, TCP, UDP, JMS
- เป็นอิสระ สามารถเขียน program ในรูปแบบไหนก็ได้
โครงสร้างของ SOAP
SOAP message จะอยู่ในรูป XML format ซึ่งมีส่วนประกอบดังนี้
Element | Description | Required |
---|---|---|
Envelope | ส่วนของ XML document เพื่อบ่งบอกว่าเป็น SOAP message | Yes |
Header | เป็นส้วนข้อมูลของ header | No |
Body | ส่วนของข้อมูล request/response | Yes |
Fault | ข้อมูลสาเหตุความผิดพลากระหว่างการทำงานของ message | No |
ตัวอย่าง SOAP บน HTTP
POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 299
SOAPAction: "http://www.w3.org/2003/05/soap-envelope"
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:m="http://www.example.org/stock/Surya">
<soap:Header>
</soap:Header>
<soap:Body>
<m:GetStockPrice>
<m:StockName>GOOGLE</m:StockName>
</m:GetStockPrice>
</soap:Body>
</soap:Envelope>
ข้อดีของ SOAP
- เป็น platform ที่ไม่จำกัดภาษาที่ใช้งาน
- SOAP ง่ายต่อการสื่อสารผ่าน proxy และ firewall เพราะเป็น http
- มีความสามารถในการทำงานต่าง protocol ใน transport layer
ข้อเสียของ SOAP
- SOAP ค่อนข้างช้า ถ้าเทียบกับ มาตราฐานอื่น เช่น CORBA เพราะ SOAP ใช้ XML format ขนาดใหญ่
- SOAP มีข้อจำกัดในเรื่องการทำ pool เพราะ client สามารถใช้งาน ได้เพียงแค่ 1 service ในสถานการณ์ปกติ
- เนื่องจากใช้ HTTP ใน transport protocol ทำให้บางครั้ง เมื่อผ่าน firewall จะเกิด latency สูงเพราะแยกไม่ออกระหว่าง web browser และ SOAP
- SOAP support หลายภาษาก็จริง แต่ระดับความสามารถไม่เท่ากันเช่น python และ PHP จะสู้ Java และ .NET ไม่ได้
Author: Suphakit Annoppornchai
Credit: https://saixiii.com,https://en.wikipedia.org
[…] ซึ่งต่างจาก webservice แบบอื่นเช่น WSDL และ SOAP การทำงานของ RESTful Webservice จะอาศัย URI/URL ของ […]
[…] SOAP หรือ REST เป็น protocol ที่ใช้แลกเปลี่ยนข้อมูล […]