วันจันทร์ที่ 20 กุมภาพันธ์ พ.ศ. 2555

เว็บเซอร์วิส

          เว็บเซอร์วิส (Web service) คือระบบซอฟต์แวร์ที่ออกแบบมา เพื่อสนับสนุนการแลกเปลี่ยนข้อมูลกัน ระหว่างเครื่องคอมพิวเตอร์ผ่านระบบเครือข่าย โดยที่ภาษาที่ใช้ในการติดต่อสื่อสารระหว่างเครื่องคอมพิวเตอร์ คือเอกซ์เอ็มแอล เว็บเซอร์วิสมีอินเทอร์เฟส ที่ใช้อธิบายรูปแบบข้อมูลที่เครื่องคอมพิวเตอร์ประมวลผลได้ เช่น WSDL ระบบคอมพิวเตอร์ใช้งานสื่อสารโต้ตอบกับเว็บเซอร์วิสตามรูปแบบที่ได้กำหนดไว้แล้ว โดยการส่งสาสน์ตามอินเตอร์เฟสของเว็บเซอร์วิสนั้น โดยที่สาสน์ดังกล่าวอาจแนบไว้ในซอง SOAP หรือส่งตามอินเตอร์เฟสในแนวทางของ REST สาสน์เหล่านี้ปกติแล้วถูกส่งโดยอาศัย HTTP และใช้ XML ร่วมกับมาตรฐานเกี่ยวกับเว็บอื่นๆ โปรแกรมประยุกต์ที่เขียนโดยภาษาต่างๆ และทำงานบนแพลตฟอร์มต่างๆกันสามารถใช้เว็บเซอร์วิสเพื่อแลกเปลี่ยนข้อมูลผ่านทางเครือข่ายคอมพิวเตอร์ เช่น อินเทอร์เน็ต ในลักษณะเดียวกับการสื่อสารระหว่างโปรเซส (Inter-process communication) บนเครื่องเดียวกัน ความสามารถในการแลกเปลี่ยนข้อมูลระหว่างระบบที่ต่างกันนี้ (เช่น การแลกเปลี่ยนข้อมูลระหว่าง โปรแกรมที่เขียนโดยภาษาจาวา และโปรแกรมที่เขียนโดยภาษาไพทอน หรือการแลกเปลี่ยนข้อมูลระหว่างโปรแกรมประยุกต์ที่ทำงานบนไมโครซอฟท์วินโดวส์และโปรแกรมประยุกต์ที่ทำงานบนลินุกซ์) เกิดขึ้นได้เนื่องจากการใช้มาตรฐานเปิด โดย OASIS และ W3C เป็นคณะกรรมการหลักในการรับผิดชอบมาตรฐานและสถาปัตยกรรมของเว็บเซอร์วิส
          ความหมายของเซอร์วิส (Service) หรือบริการในแง่ของเทคโนโลยี เราลองมาพิจารณาความหมายของบริการหรือกระบวนการ (Process) ที่องค์กรต่างๆ ทั้งภาครัฐและเอกชนต่างให้บริการกับประชาชน ลูกค้า พนักงาน หรือคู่ค้า ตัวอย่างเช่นบริการที่พนักงานหน้าเคาท์เตอร์ของธนาคารสามารถให้บริการแก่ลูกค้าอาจมีหลากหลายอาทิเช่น บริการฝาก/ถอนเงิน บริการแลกเปลี่ยนเงินตราต่างประเทศ หรือบริการด้านสินเชื่อเป็นต้น บริการแต่ละบริการอาจจะมีกระบวนการในการทำงานที่ซับซ้อนแตกต่างกัน แต่ในมุมมองของลูกค้าจะไม่สนใจว่าบริการนั้นมีขั้นตอนการทำงานอย่างไร แต่จะมีวัตถุประสงค์หลักเพื่อให้บริการนั้นเสร็จสิ้นและได้ผลลัพธ์ออกมาตามที่ลูกค้าขอใช้บริการนั้นๆ
          ความหมายของเซอร์วิสในแง่ของซอฟต์แวร์ ก็มีคุณลักษณะเช่นเดียวกับบริการทั่วๆ ไป กล่าวคือเป็นซอฟต์แวร์คอมโพเนนท์ (Software Component) ที่อาจเป็น ฟังก์ชัน หรือ โมดูล ที่มีกระบวนการการทำงานภายใน สามารถรับอินพุตเข้ามาเพื่อประมวลผล และจะส่งผลลัพธ์กลับออกไป ซอฟต์แวร์เซอร์วิสเหล่านี้เราอาจกำหนดเป็นกระบวนการทางธุรกิจ (Business Process) กล่าวคือจะเป็นฟังก์ชันที่ทำเฉพาะการประมวลผลซึ่งจะไม่เกี่ยวข้องกับส่วนแสดงผล (Presentation Logic) นอกจากนี้ด้วยเทคโนโลยี Distributed Computing ทำให้สามารถที่จะพัฒนาซอฟต์แวร์เซอร์วิสเพื่อเรียกใช้จากระยะไกล (remote) ผ่าน Internet ได้โดยใช้เทคโนโลยีเฉพาะด้าน (proprietary technology) อาทิเช่น RMI, CORBA หรือ DCOM
                เว็บเซอร์วิส (Web Service) อาจไม่ได้เป็นเรื่องใหม่แล้ว และคนวงการไอทีส่วนใหญ่เริ่มเข้าใจเทคโนโลยีเว็บเซอร์วิสดีขึ้น มาตรฐานต่างๆ ของเว็บเซอร์วิสเริ่มเป็นที่ยอมรับกันมากขึ้นและกลายเป็นมาตรฐานหลักในการพัฒนา SOA แต่การพัฒนาเว็บเซอร์วิสสำหรับประยุกต์ใช้งานจริงในองค์กรยังเพิ่งเริ่มต้นและวัตถุประสงค์ในการพัฒนายังไม่ชัดเจนนัก แต่เมื่อมีการกล่าวถึงการพัฒนาสถาปัตยกรรมเชิงบริการ (SOA) ภายในองค์กรกันมากขึ้น โดยเฉพาะความต้องการขององค์กรที่จะทำการเชื่อมโยงระบบภายในองค์กร (Internal Enterprise Application Integration) จึงทำให้องค์กรสนใจจะนเทคโนโลยีเว็บเซอร์วิสเข้ามาช่วยในการพัฒนาโปรแกรมต่างๆ มากขึ้น      บทความนี้จะเป็นการแนะนำเทคโนโลยีเว็บเซอร์วิส ประโยชน์ และมาตรฐานต่างๆ ของเว็บเซอร์วิส การพัฒนาเว็บเซอร์วิสโดยใช้เทคโนโลยีจาวา (Java Technology)
          ตัวอย่างการใช้งานของซอฟต์แวร์เซอร์วิสโดยใช้ Distributed Computing จะเป็นไปดังแสดงในรูปที่ 1 ซึ่งจะเห็นได้ว่ามีระบบ Back-end ต่างๆ เช่น Airline Reservation System และ Hotel Reservation System ที่มีซอฟต์แวร์เซอร์วิสต่างๆ อยู่ ผู้ใช้ด้าน Front-end ที่จะเป็นผู้ใช้บริการเซอร์วิส (Service Requestor) ซึ่งอาจเรียกใช้จากอุปกรณ์ต่างๆ เช่น คอมพิวเตอร์ หรือโทรศัพท์เคลื่อนที่ (Mobile Phone) จะสามารถเรียกใช้ซอฟต์แวร์เซอร์วิสเหล่านี้ผ่านผู้ให้บริการเซอร์วิส (Services Provider) ซึ่งทำหน้าที่เป็น Middleware การเรียกใช้เซอร์วิสเหล่านี้อาจเป็นการเรียกใช้จากผู้ใช้โดยตรงหรือเรียกใช้โดยโปรแกรมซอฟต์แวร์คอมโพเนนท์ (Program to Program) จากอุปกรณ์ที่ใช้ นอกจากนี้ในกรณีที่ไม่ทราบชื่อหรือเซอร์วิสที่มีอยู่ เราสามารถที่จะค้นหาซอฟต์แวร์เซอร์วิสเหล่านี้ได้จาก Registry ที่ทำหน้าที่เก็บรายละเอียดของซอฟต์แวร์เซอร์วิสต่างๆที่มีอยู่ โดยผู้ให้บริการเซอร์วิสจะทำหน้าที่ลงทะเบียนรายละเอียดของเซอร์วิสไว้ ทั้งนี้การค้นหาเซอร์วิสผ่าน Registry สามารถทำได้อัตโนมัติโดยใช้คำสั่งในโปรแกรมด้านผู้ใช้บริการเซอร์วิส

  รูปที่ 1 ซอฟต์แวร์เซอร์วิสโดยใช้ Distributed Computing

 
          เว็บเซอร์วิสจะใช้หลักการของซอฟต์แวร์เซอร์วิสของ Distributed Computing แต่จะใช้โพรโทคอลที่มีมาตรฐานกลาง (Standard Protocol) ที่อยู่ในรูปแบบ XML (eXtensible Markup Language) และจะเป็นซอฟต์แวร์คอมโพเนนท์ที่ให้บริการผ่านอินเตอร์เน็ต