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

เว็บเซอร์วิส 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)





บันทึกนี้เขียนที่ GotoKnow โดย  ใน เรียนรู้เทคโนโลยีคอมพิวเตอร์



ความเห็น (3)

เขียนเมื่อ 
ถึงจะใช้ XML หรือ YAML หรือ JSON ก็ยังเป็น REST อยู่ดีหรือเปล่าครับ?
เขียนเมื่อ 
REST วิ่งบน Internet Protocol (IP) ก็น่าจะถูกต้องแล้ว แต่ว่าอาจจะกว้างไปหน่อย? REST น่าจะจำกัดเฉพาะ HTTP ?
piggarate
IP: xxx.137.31.15
เขียนเมื่อ 
อยากรู้ว่าตัวอย่างของweb service มีอะไรบ้างค่ะ(คร่าวๆ)ที่ใช้ร่วมกับPHP