← กลับไปยังบทความทั้งหมด

เว็บเซอร์วิส ระบบการสื่อสารระหว่างซอฟต์แวร์ผ่านเครือข่าย

สรุปใจความสำคัญ

  • เว็บเซอร์วิสช่วยให้ซอฟต์แวร์ที่ใช้ภาษาโปรแกรมต่างกันสามารถสื่อสารกันได้ผ่านเครือข่าย
  • มาตรฐานหลักของเว็บเซอร์วิสประกอบด้วย SOAP, WSDL, UDDI และ XML
  • REST เป็นสถาปัตยกรรมเว็บเซอร์วิสที่ได้รับความนิยมสูงในปัจจุบันเนื่องจากความเรียบง่ายและประสิทธิภาพในการทำงาน

เว็บเซอร์วิส (Web Service) คือระบบซอฟต์แวร์ที่ออกแบบมาเพื่อสนับสนุนการปฏิสัมพันธ์ระหว่างเครื่องต่อเครื่อง (Machine-to-Machine Interaction) ผ่านเครือข่ายคอมพิวเตอร์ โดยมีจุดประสงค์หลักเพื่อให้ซอฟต์แวร์ที่เขียนด้วยภาษาโปรแกรมที่แตกต่างกัน หรือทำงานบนระบบปฏิบัติการที่ต่างกัน สามารถแลกเปลี่ยนข้อมูลและสื่อสารกันได้อย่างมีประสิทธิภาพผ่านอินเทอร์เน็ต

หลักการทำงานพื้นฐานของเว็บเซอร์วิส

ในทางปฏิบัติ เว็บเซอร์วิสทำหน้าที่เป็นอินเทอร์เฟซแบบอิงวัตถุ (Object-oriented interface) ที่เชื่อมต่อกับเซิร์ฟเวอร์ฐานข้อมูล เพื่อให้เว็บเซิร์ฟเวอร์อื่นหรือแอปพลิเคชันบนมือถือสามารถดึงข้อมูลไปใช้งานและนำเสนอผ่านส่วนติดต่อผู้ใช้ (User Interface) ให้กับผู้ใช้ปลายทางได้

กระบวนการสื่อสารจะใช้เทคโนโลยีเว็บ เช่น HTTP ในการรับส่งไฟล์ในรูปแบบที่เครื่องจักรสามารถอ่านได้ (Machine-readable formats) ซึ่งที่นิยมใช้มากที่สุดคือ JSON (JavaScript Object Notation) และ XML (Extensible Markup Language)

แผนผังการทำงานของเว็บเซอร์วิสที่แสดงการเชื่อมต่อระหว่าง XML, SOAP, WSDL และ UDDI
โครงสร้างมาตรฐานของเว็บเซอร์วิสที่ใช้ XML, SOAP, WSDL และ UDDI ในการบูรณาการแอปพลิเคชัน

ประเภทและสถาปัตยกรรมของเว็บเซอร์วิส

เว็บเซอร์วิสสามารถแบ่งออกเป็นสองกลุ่มหลักตามลักษณะการทำงานและมาตรฐานที่ใช้:

1. REST-compliant Web Services

REST (Representational State Transfer) เป็นสถาปัตยกรรมที่เน้นความเรียบง่ายและสามารถขยายตัวได้ในระดับอินเทอร์เน็ต โดยใช้การดำเนินการแบบไร้สถานะ (Stateless operations) เพื่อจัดการกับทรัพยากรเว็บในรูปแบบ XML หรือ JSON ซึ่งปัจจุบันได้พัฒนาไปสู่สิ่งที่เรียกว่า Web API ที่เน้นการสื่อสารที่รวดเร็วและไม่จำเป็นต้องใช้โปรโตคอลที่ซับซ้อนอย่าง SOAP

2. W3C Web Services (SOAP-based)

เป็นเว็บเซอร์วิสตามมาตรฐานของ W3C ที่เน้นความเข้มงวดของกฎเกณฑ์และการทำงานร่วมกันระหว่างระบบขนาดใหญ่ โดยมีองค์ประกอบสำคัญดังนี้:

  • SOAP (Simple Object Access Protocol): โปรโตคอลที่ใช้ในการรับส่งข้อมูล
  • WSDL (Web Services Description Language): ไฟล์ที่ใช้ระบุรายละเอียดของบริการ พารามิเตอร์ที่ต้องการ และโครงสร้างของข้อมูลที่ส่งกลับ
  • UDDI (Universal Description, Discovery, and Integration): ไดเรกทอรีสำหรับค้นหาและลงทะเบียนเว็บเซอร์วิสที่พร้อมใช้งาน
  • XML: รูปแบบข้อมูลมาตรฐานที่ใช้ในการบรรจุข้อมูลและเมทาดาตา

เทคโนโลยีที่เกี่ยวข้อง

นอกเหนือจาก REST และ SOAP แล้ว ยังมีเทคโนโลยีและโปรโตคอลอื่น ๆ ที่นำมาใช้ในเว็บเซอร์วิส เช่น:

  • AJAX (Asynchronous JavaScript and XML): เทคโนโลยีที่ช่วยให้เว็บเพจอัปเดตข้อมูลบางส่วนได้โดยไม่ต้องโหลดหน้าใหม่ทั้งหมด โดยทำงานร่วมกับ HTTP เซิร์ฟเวอร์และ JavaScript
  • JSON-RPC: การเรียกใช้ฟังก์ชันระยะไกลโดยใช้รูปแบบข้อมูล JSON
  • BPEL (Business Process Execution Language): ภาษาที่ใช้ในการกำหนดกระบวนการทางธุรกิจที่ซับซ้อน ซึ่งมาแทนที่ WSFL

บทบาทของเว็บเซอร์วิสในการพัฒนาซอฟต์แวร์สมัยใหม่

เว็บเซอร์วิสช่วยแก้ปัญหาความแตกต่างของภาษาโปรแกรม (Language Independence) เนื่องจากซอฟต์แวร์ส่วนใหญ่สามารถตีความแท็ก XML หรือโครงสร้าง JSON ได้ ทำให้ระบบที่เขียนด้วย Java สามารถสื่อสารกับระบบที่เขียนด้วย Python หรือ PHP ได้อย่างไม่มีปัญหา โดยมีบทบาทสำคัญในระบบ Mashup ซึ่งเป็นการนำข้อมูลจากหลายเว็บเซอร์วิสมาประมวลผลและนำเสนอในอินเทอร์เฟซเดียว

คำถามที่พบบ่อย

เว็บเซอร์วิส (Web Service) แตกต่างจาก Web API อย่างไร?

เว็บเซอร์วิสเป็นคำกว้าง ๆ ที่ครอบคลุมการสื่อสารระหว่างเครื่องผ่านเครือข่าย ซึ่งรวมถึงมาตรฐานที่เข้มงวดอย่าง SOAP ด้วย ในขณะที่ Web API เป็นวิวัฒนาการที่เน้นความเรียบง่าย โดยส่วนใหญ่จะอิงตามสถาปัตยกรรม REST และไม่จำเป็นต้องใช้โปรโตคอลที่ซับซ้อนอย่าง SOAP หรือ WSDL

JSON และ XML ต่างกันอย่างไรในบริบทของเว็บเซอร์วิส?

XML เป็นรูปแบบข้อมูลที่มีโครงสร้างเข้มงวดและรองรับเมทาดาตาได้ดี มักใช้ใน SOAP ขณะที่ JSON มีรูปแบบที่กระชับกว่า อ่านง่ายสำหรับมนุษย์ และประมวลผลได้รวดเร็วกว่า จึงเป็นที่นิยมอย่างมากใน RESTful API และแอปพลิเคชันสมัยใหม่

WSDL มีหน้าที่อะไรในเว็บเซอร์วิส?

WSDL (Web Services Description Language) ทำหน้าที่เป็น 'คู่มือ' ของเว็บเซอร์วิส โดยจะระบุว่าบริการนั้นมีฟังก์ชันอะไรบ้าง ต้องส่งพารามิเตอร์อะไร และข้อมูลที่ตอบกลับมาจะมีโครงสร้างอย่างไร เพื่อให้ระบบที่เรียกใช้ทราบวิธีสื่อสารได้อย่างถูกต้อง