เว็บเซอร์วิสคืออะไร


เว็บเซอร์วิส SOA Web Services XML REST Web Services เรสต์เว็บเซอร์วิส โซปเว็บเซอร์วิส เอกซ์เอ็มแอล JSON เจซัน

อินเทอร์เน็ตได้ทำให้การสื่อสารข้อมูลระหว่างมนุษย์เป็นไปได้อย่างรวดเร็วและสะดวก ซึ่งได้มีผลกระทบต่อหลายวงการ อย่างเช่น ในการศึกษานั้น ทำให้ผู้เรียนสามารถศึกษาสิ่งต่าง ๆ ได้จากสื่ออิเล็กทรอนิกส์ ในการทำธุรกิจ ทำให้เจ้าของผลิตภัณฑ์ พันธมิตรคู่ค้า ตลอดจนลูกค้า มีการสื่อสารและทำงานร่วมกัน ไม่ว่าจะอยู่ในสาขาอาชีพใด การติดต่อสื่อสารและทำงานร่วมกันระหว่างองค์กรนั้นจำเป็นต้องเกิดขึ้น ในอดีตที่ผ่านมาองค์กรต่าง ๆ มักจะประสบปัญหาจากการทำงานร่วมกันโดยใช้แอปพลิเคชันต่างๆ ที่ถูกพัฒนามาจากหลากหลายแพลตฟอร์ม หลากหลายระบบปฏิบัติการ หลากหลายภาษา และถึงแม้ว่าองค์กรต่างๆ สามารถที่จะเชื่อมต่อแอปพลิเคชันต่างๆ เข้าด้วยกันได้ แต่การทำเช่นนั้นก็มีค่าใช้จ่ายที่สูง และมีความซับซ้อนมาก ด้วยเหตุนี้เองที่ทำให้มีตัวกลางที่จะทำให้การติดต่อสื่อสารและทำงานร่วมกันองค์กรง่าย และรวดเร็วมากขึ้น  ตัวกลางนั้นคือเว็บเซอร์วิส

 

เว็บเซอร์วิส (Web Services) เป็นการ "บริการ" ที่เป็นระบบซอฟต์แวร์ที่ออกแบบมาเพื่อสนับสนุนการทำงาน ระหว่างคอมพิวเตอร์กับคอมพิวเตอร์ผ่านระบบเครือข่าย โดยที่ภาษาที่นิยมใช้ในการติดต่อสื่อสารระหว่างคอมพิวเตอร์ คือภาษาเอกซ์เอ็มแอล (XML) และภาษาเจซัน (JSON) ตัวอย่างเช่น เว็บเซอร์วิสอเมซอน (Amazon Web Service) ซึ่งเป็นชุดเซอร์วิสประมวลผลแบบทางไกลและประกอบกันเป็นแพลตฟอร์มประมวลผลบนคลาวด์  เซอร์วิสที่เป็นตัวกลางและเป็นที่รู้จักกันดีคือ อเมซอนอีซี 2 (Amazon EC2) และ อเมซอนเอส 3 (Amazon S3)

ถึงแม้ว่าจะมีเทคโนโลยีอื่นอย่างเช่นดีคอม (DCOM) และอาร์เอ็มไอ (RMI) ที่ทำให้โปรแกรมและโปรแกรมสามารถคุยกันได้  แต่เทคโนโลยีเหล่านี้มีข้อจำกัดในส่วนของแพลตฟอร์มหรือภาษาที่โปรแกรมจำเป็นจะต้องใช้ตรงกัน ในทางตรงกันข้าม เว็บเซอร์วิสทำให้โปรแกรมที่พัฒนาด้วยภาษาที่แตกต่างกันหรือพัฒนาบนแพลตฟอร์มที่แตกต่างกันสามารถคุยกันได้  ความสามารถของเว็บเซอร์วิสที่ทำให้โปรแกรมต่างภาษาต่างแพลตฟอร์มต่างอุปกรณ์อิเล็กทรอนิกส์คุยกันได้นั้น เป็นจุดแข็งของเว็บเซอร์วิส ที่สามารถจะเชื่อมบริการหลายๆอันเข้าด้วยกัน แนวความคิดนี้ได้ถูกนำมาวางแผนและนำเสนอมาตรฐานที่จะทำให้เว็บเซอร์วิส ติดต่อกันได้อย่างมีประสิทธิภาพเช่น การใช้เอกสารภาษาวิสเดิล (Web Services Description Language) ซึ่งเป็นภาษาเอกซ์เอ็มแอลประเภทหนึ่งที่มาอธิบายการเรียกใช้เว็บเซอร์วิสซึ่งเปรียบเสมือนการอ่านคู่มือการใช้งานโปรแกรมนั่นเอง แต่ทว่ามีข้อแตกต่างกันตรงที่ไม่เฉพาะมนุษย์เท่านั้นที่สามารถเข้าใจคู่มือนั่น โปรแกรมสามารถอ่านเอกสารวิสเดิลได้เนื่องจากวิสเดิลเป็นเอกซ์เอ็มแอลประเภทหนึ่ง ซึ่งจากคุณสมบัตินี้ช่วยทำให้การเรียกใช้เว็บเซอร์วิสเป็นไปได้อย่างอัตโนมัติ

นอกจากเอกซ์เอ็มแอลจะถูกใช้ในการเป็นภาษาในการอธิบายการเรียกใช้เว็บเซอร์วิสแล้ว เอกซ์เอ็มแอลยังเป็นภาษาที่ใช้ในการบันทึกข้อมูลระหว่างผู้ให้บริการและผู้ขอใช้การบริการเว็บเซอร์วิส รูปแบบของข้อมูลเอกซ์เอ็มแอลที่ใช้ในการติดต่อนี้เรียกว่าโซป (SOAP : Simple Object Access Protocol) เนื่องจากข้อมูลที่ติดต่ออยู่ในรูปแบบเอกซ์เอ็มแอล ทำให้โปรแกรมต่าง ๆ สามารถติดต่อกันได้ ถึงแม้ว่าอาจจะถูกพัฒนาและเรียกใช้บนแพลตฟอร์มที่แตกต่างกัน หรือใช้ภาษาที่แตกต่างกันในการพัฒนา ทั้งนี้เนื่องจากเอกซ์เอ็มแอลเป็นภาษาอักขระ (text) ซึ่งระบบปฎิบัติการทุกระบบสามารถเข้าใจ นอกจากนี้การที่เอกซ์เอ็มแอลมีแท๊ก (tag) และรูปแบบโครงสร้างที่อธิบายข้อมูลด้วยตัวมันเอง ทำให้การเข้าใจและการจัดการข้อมูลข้อความโซปนั้นสามารถทำได้โดยโปรแกรมและช่วยทำให้การติดต่อระหว่าง ผู้ให้บริการและผู้ใช้เว็บเซอร์วิสเป็นไปได้อย่างอัตโนมัติ  เว็บเซอร์วิสที่ใช้ข้อความโซปในการติดต่อสื่อสารเรียกว่าเว็บเซอร์วิสแบบโซป

แต่อย่างไรก็ตามเว็บเซอร์วิสไม่จำเป็นจะต้องส่งข้อความในรูปแบบโซปเท่านั้น หากเป็นซอฟต์แวร์ที่ส่งข้อมูลเอกซ์เอ็มแอลโดยใช้อินเทอร์เน็ตโปรโตคอล (Internet protocol) จะถือว่าเป็นเว็บเซอร์วิสเช่นเดียวกัน แต่จะอยู่ในเว็บเซอร์วิสแบบเรสต์ (REST Web Service) ซึ่งในระยะหลังเป็นที่นิยมมากว่าเว็บเซอร์วิสแบบโซป เพราะง่ายกว่า ใช้เวลาน้อยกว่าในการพัฒนาและเรียกใช้  โดยที่เว็บเซอร์วิสแบบเรสต์นี้ รูปแบบข้อมูลกลางที่ใช้ในการติดต่อคือเจซันมากกว่าเอกซ์เอ็มแอล  เพราะเจซันสามารถแสดงข้อมูลได้สั้นและกระชับมากกว่า โดยที่โปรโตคอลอินเทอร์เน็ตที่ใช้คือเฮชทีทีพี (HTTP)





หมายเลขบันทึก: 14438เขียนเมื่อ 5 กุมภาพันธ์ 2006 10:21 น. ()แก้ไขเมื่อ 22 สิงหาคม 2013 06:07 น. ()สัญญาอนุญาต: จำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (3)
ถึงจะใช้ XML หรือ YAML หรือ JSON ก็ยังเป็น REST อยู่ดีหรือเปล่าครับ?
REST วิ่งบน Internet Protocol (IP) ก็น่าจะถูกต้องแล้ว แต่ว่าอาจจะกว้างไปหน่อย? REST น่าจะจำกัดเฉพาะ HTTP ?
อยากรู้ว่าตัวอย่างของweb service มีอะไรบ้างค่ะ(คร่าวๆ)ที่ใช้ร่วมกับPHP
พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท