วันศุกร์ที่ 2 มีนาคม พ.ศ. 2555

พื้นฐานของ Web Service

พื้นฐานของ Web Service
พื้นฐานของ Web Service คือ XML และส่วนใหญ่จะใช้ HTTP แต่อาจจจะใช้อินเทอร์เน็ตโพรโทคอลอื่นอย่างเช่น SMTP หรือ FTP ก็ได้ แต่จะพบว่า HTTP ก็เป็นที่รู้จักกันดี และไปได้ทั่วทุกแห่งที่มี internet ส่วน XML คือภาษาสากลที่คุณสามารถปรับแต่งได้ตามใจชอบ เพื่อให้เกิดกิจกรรมระว่าง client และบริการ หรือระหว่างส่วนประกอบต่างๆ เบื้องหลัง Web server ก็คือ ข้อความ XML จะถูกแปลงให้การขอบริการจาก Middle ware และผลที่ได้ก็จะแปลงกลับมาในรูป XML
ยกตัวอย่างให้เห็นง่ายๆ คุณต้องการให้เครื่อง PC อ่านค่าจาก serial port แล้วส่งไปประมวลผลบนเครื่อง UNIX แล้วส่งผลกลับมาแสดงบนจอ PC ถ้าเป็นเมื่อก่อน คุณก็คงต้องแปลงข้อมูลที่ได้ให้อยู่ในรูปของ ASCII แล้วส่งไปยัง UNIX พร้อมคำสั่งว่าให้ทำอะไร ในฝั่ง UNIX คุณก็ต้องมาแยกว่าอันไหนคือคำสั่ง อันไหนคือข้อมูล เมื่อประมวลผลแล้ว จะส่งกลับมาในรูปแบบไหน แล้วถ้าหากจะส่งไปหาเครื่องที่เป็น MAC ท่านจะต้องเขียนโปรแกรมเพิ่มในส่วนไหนบ้าง จะพบว่าเราต้องพัฒนากันเป็นคู่ๆ ไป และต้องนิยามในแต่ละฝั่งให้ชัดเจน แต่หากเป็น Web Service คุณจะพบว่า เราแปลงข้อมูลให้อยู่ในรูป XML แต่ละคุณก็ต้องการรู้แค่ มาตรฐาน XML ก็พอ แล้วต่างคนต่างก็เขียน Service ของตัวเอง ไม่ต้องกังวลเรื่องของการเชื่อมโยงอีกต่อไป และ Protocol ที่ส่งก็คือ HTTP นั่นเอง ถ้าท่านเชื่อมโยงกับ HTTP (หรือเว็บ) ได้ ท่านก็ใช้บริการทุกอย่างได้
คุณลักษณะพื้นฐานของเว็บเซอร์วิสมีดังนี้
·         เว็บเซอร์วิสเป็นซอฟต์แวร์คอมโพเนนท์ที่ระบุตำแหน่งโดยใช้ URI
·         อินเตอร์เฟสและการติดตั้งของเซอร์วิสจะนิยาม อธิบาย และค้นหาโดยใช้ ภาษาXML
·         เว็บเซอร์วิสสนับสนุนการเรียกใช้จากซอฟต์แวร์ประยุกต์อื่นๆ ผ่านโพรโทคอลอินเตอร์เน็ต
·         เว็บเซอร์วิสใช้เอกสารแบบ XML ในการส่งข้อมูลระหว่างผู้ให้บริการและผู้ใช้
·         เว็บเซอร์วิสช่วยในการเชื่อมโยงโปรแกรมประยุกต์ต่างแพลตฟอร์ม (Cross-platform
Integration) ผ่านอินเตอร์เน็ต
·        นักพัฒนาสามารถพัฒนาเว็บเซอร์วิสได้โดยใช้โปรแกรมภาษาคอมพิวเตอร์ต่างๆเช่น Java,
C, C# หรือ Visual Basic และสามารถพัฒนาโดยการเปลงซอฟต์แวร์คอมโพเนนท์ที่มีอยู่ให้
เป็นเว็บเซอร์วิส
·        เว็บเซอร์วิสจะไม่รวมถึงการจัดการส่วนแสดงผลเหมือน HTML
·        เว็บเซอร์วิสจะเป็นซอฟต์แวร์คอมโพเนนท์แบบ loosely couple ดังนั้นแต่ละคอมโพ
เนนท์จะเป็นอิสระและมีฟังก์ชันที่สมบูรณ์ในตัว
·        เราสามารถที่จะค้นหาและเรียกใช้เว็บเซอร์วิสจาก registry ที่เป็นแบบ public หรือ
private โดยใช้มาตรฐานกลางเช่น UDDI และ ebXML
·        เว็บเซอร์วิสสามารถที่จะเรียกใช้โดย client ต่างๆ ได้เช่น คอมพิวเตอร์ โทรศัพท์เคลื่อนที่
หรือ พีดีเอ
เหตุผลของการพัฒนาเว็บเซอร์วิส
     เว็บเซอร์วิสจะแตกต่างกับโปรแกรมประยุกต์บนเว็บ (Web Application) และDistributed Computing (Distributed Application) ทั้งนี้เพราะโปรแกรมประยุกต์บนเว็บ จะเป็นโปรแกรมเพื่อให้ผู้ใช้ (End User) สามารถโต้ตอบกับโปรแกรมผ่านเว็บไซต์ได้ ไม่ใช่ Distributed Computing ที่เป็นซอฟต์แวร์เซอร์วิสและไม่สามารถเรียกใช้จากผู้ใช้ที่หลากหลายได้ ส่วนข้อจำกัดของ Distributed Computing คือจะยึดติดกับโพรโทคอลเฉพาะเช่น RMI หรือ CORBA และโพรโทคอลเหล่านี้เป็นแบบไบนารี่ (Binary Protocol) จึงผูกอยู่กับเทคโนโลยีใดเทคโนโลยีหนึ่ง ดังนั้นจะเห็นได้ว่าเว็บเซอร์วิสไม่ใช่แนวคิดใหม่ เพียงแต่เปลี่ยนรูปแบบโพรโทคอลและหลักการบางอย่างที่เคยใช้ใน Distributed Computing เหตุผลสำคัญที่ควรเลือกพัฒนาเว็บเซอร์วิสมากกว่าการพัฒนาโปรแกรมประยุกต์บนเว็บและ Distributed Computing คือ
    1.เว็บเซอร์วิสใช้โพรโทคอลที่เป็นมาตรฐานโดยใช้รูปแบบ XML
    2.เราสามารถเรียกใช้เว็บเซอร์วิสโดย XML-based RPC จึงทำให้สามารถเรียกผ่าน Firewall ซึ่งแตกต่างกับกรณีของเทคโนโลยีแบบกระจาย
   3.เว็บเซอร์วิสสนับสนุนการทำงานร่วมกันของโซลูชัน ที่ข้ามแพลตฟอร์มและใช้ภาษาคอมพิวเตอร์ที่ต่างกันได้ โดยการส่งข้อมูลแบบ XML
   4.เว็บเซอร์วิสสนับสนุนการการเรียกใช้จากซอฟต์แวร์ประยุกต์อื่นๆ ผ่านโพรโทคอลอินเตอร์เน็ต ซึ่งแตกต่างกับโปรแกรมประยุกต์บนเว็บที่เป็นการเรียกโดยตรงจากผู้ใช้
จุดเด่นของการพัฒนาเว็บเซอร์วิสสามารถที่จะสรุปได้ดังนี้
·         การเชื่อมโยง (Interoperable): สนับสนุนการเชื่อมโยงกันระหว่างโปรแกรมประยุกต์ที่
หลากหลาย (Heterogeneous Applications) ได้ โดยใช้มาตรฐานเว็บที่เป็นกลาง
·         ลดค่าใช้จ่าย (Economical): สนับสนุนการนำซอฟต์แวร์คอมโพเน้นท์กลับมาใช้ใหม่
(reuse) และไม่ต้องยึดติดกับเทคโนโลยีเดิม
·         อัตโนมัติ (Automatic): สนับสนุนการการเรียกใช้จากโปรแกรมโดยตรง โดยไม่ต้องโต้
ตอบกับผู้ใช้
·         เข้าถึงได้ (Accessible): สามารถที่จะเรียกใช้โปรแกรมเดิม (Legacy) หรือโปรแกรม
ภายในผ่านเว็บได้
·         ใช้ได้ตลอด (Available): สนับสนุนการเรียกใช้ได้ทุกที่ ทุกอุปกรณ์ และทุกเวลา
·         ขยายได้ (Scalable): ไม่ได้จำกัดขนาดของโปรแกรมหรือจำนวนของระบบต่างๆ
โมเดลการทำงานของเว็บเซอร์วิส
     กระบวนการการทำงานของเว็บเซอร์วิสจะมีขั้นตอนการทำงานเช่นเดียวกับซอฟต์แวร์เซอร์วิสที่ใช้ Distributed Computing ดังอธิบายในรูปที่ 1 ซึ่งเราสามารถที่จะแบ่งบทบาทองค์ประกอบของเว็บเซอร์วิสได้เป็นสามส่วน โดยทั้งสามองค์ประกอบมีความสัมพันธ์ดังแสดงในรูปที่ 2 และสามารถอธิบายได้ดังนี้
·         ผู้ให้บริการ (Service Provider): ผู้ให้บริการจะมีหน้าที่ในการพัฒนาและติดตั้งเว็บ
เซอร์วิส และเป็นผู้ที่นิยามความหมายของเซอร์วิสและลงทะเบียนเซอร์วิสกับ Service Registry
·         ผู้ใช้บริการ (Service Requestor): ผู้ใช้บริการจะเป็นผู้เรียกใช้เว็บเซอร์วิส โดยอาจ
ทำการค้นหาเซอร์วิสจากเซอร์วิสไดเร็กทอรี่ แล้วทำการเรียกใช้เซอร์วิสจากผู้ให้บริการ
·        Service Registry: หรืออาจเรียกว่า Service Broker มีหน้าที่ในการรับลงทะเบียนและช่วยในการค้นหาเว็บเซอร์วิส Service Registry จะเก็บรายละเอียดของเว็บเซอร์วิสต่างๆเช่น นิยาม และตำแหน่งของเว็บเซอร์วิส ทำหน้าที่คล้ายกับสมุดโทรศัพท์เพื่อช่วยให้ผู้ใช้บริการสามารถค้นหาเซอร์วิสที่ต้องการได้
รูปที่ 2 โมเดลการทำงานของเว็บเซอร์วิส


ไม่มีความคิดเห็น:

แสดงความคิดเห็น