ใบงานที่ 5 Web
Services
1. คุณคิดว่า Web Services คืออะไร
เว็บเซอร์วิส
(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) และจะเป็นซอฟต์แวร์คอมโพเนนท์ที่ให้บริการผ่านอินเตอร์เน็ต
Gartner Research ได้ให้คำนิยามของเว็บเซอร์วิสไว้ดังนี้ ”เว็บเซอร์วิสคือ
ซอฟต์แวร์คอมโพเนนท์แบบ loosely
coupled ที่ส่งบริการผ่านเทคโนโลยีอินเตอร์เน็ตที่มีมาตรฐาน”
2. มีหลักการทำงานอย่างไร
การทำงานของ Web Services ประกอบไปด้วย
มาตรฐานหลัก 4 อย่าง ดังนี้
1. XML (Extensible Markup Language) เป็นภาษามาตรฐานที่ทุกระบบสนับสนุน ทำให้ข้อมูลที่มีโครงสร้างของภาษา XML จะถูกนำไปประมวลผลต่ออย่างอัตโนมัติได้อย่างง่ายดาย ภาษา XML จึงถูกนำมาใช้เป็นภาษามาตรฐานในการแลกเปลี่ยนข้อมูลของ Web Services
2. SOAP (Simple Object Access Protocol) เป็นมาตรฐานของเทคโนโลยี Distributed Objects โดยทำหน้าที่ส่งข้อมูลผ่านอินเทอร์เน็ต ในรูปแบบของ XML ทำให้เรียกใช้งานโปรแกรมข้ามระบบผ่านทางอินเทอร์เน็ตได้
3. WSDL (Web Services Description Language) เป็นภาษามาตรฐานที่ใช้สำหรับอธิบายการใช้งานโปรแกรมที่เปิดให้บริการ ซึ่งเขียนขึ้นตามแบบมาตรฐาน XML ดังนั้น WSDL จึงเป็นเสมือนคู่มือให้กับระบบ เพื่อเรียนรู้วิธีการเรียกใช้งาน Web Services
4. UDDI (Universal Description, Discovery, and Integration) เป็นระบบมาตรฐานในการอธิบายและค้นหา Web Services โดยเป็นตัวกลางให้ provider มาลงทะเบียนไว้ โดยใช้ไฟล์ WSDL บอกรายละเอียดของบริษัทและบริการที่มีให้ ทำให้ Requestor สามารถค้นหาและทราบว่าบริษัทมีผลิตภัณฑ์และบริการอะไรบ้าง สามารถติดต่อขอดำเนินธุรกิจการค้ากับบริษัทได้โดยอัตโนมัติผ่านทาง Web Services
1. XML (Extensible Markup Language) เป็นภาษามาตรฐานที่ทุกระบบสนับสนุน ทำให้ข้อมูลที่มีโครงสร้างของภาษา XML จะถูกนำไปประมวลผลต่ออย่างอัตโนมัติได้อย่างง่ายดาย ภาษา XML จึงถูกนำมาใช้เป็นภาษามาตรฐานในการแลกเปลี่ยนข้อมูลของ Web Services
2. SOAP (Simple Object Access Protocol) เป็นมาตรฐานของเทคโนโลยี Distributed Objects โดยทำหน้าที่ส่งข้อมูลผ่านอินเทอร์เน็ต ในรูปแบบของ XML ทำให้เรียกใช้งานโปรแกรมข้ามระบบผ่านทางอินเทอร์เน็ตได้
3. WSDL (Web Services Description Language) เป็นภาษามาตรฐานที่ใช้สำหรับอธิบายการใช้งานโปรแกรมที่เปิดให้บริการ ซึ่งเขียนขึ้นตามแบบมาตรฐาน XML ดังนั้น WSDL จึงเป็นเสมือนคู่มือให้กับระบบ เพื่อเรียนรู้วิธีการเรียกใช้งาน Web Services
4. UDDI (Universal Description, Discovery, and Integration) เป็นระบบมาตรฐานในการอธิบายและค้นหา Web Services โดยเป็นตัวกลางให้ provider มาลงทะเบียนไว้ โดยใช้ไฟล์ WSDL บอกรายละเอียดของบริษัทและบริการที่มีให้ ทำให้ Requestor สามารถค้นหาและทราบว่าบริษัทมีผลิตภัณฑ์และบริการอะไรบ้าง สามารถติดต่อขอดำเนินธุรกิจการค้ากับบริษัทได้โดยอัตโนมัติผ่านทาง Web Services
3. ขอบข่ายของ Web Services มีอะไรบ้าง และทำหน้าที่อะไร
ขอบข่ายของ
Web Service
พื้นฐานของ Web Service คือ XML และส่วนใหญ่จะใช้ HTTP แต่อาจจจะใช้อินเทอร์เน็ตโพรโทคอลอื่นอย่างเช่น SMTP หรือ FTP ก็ได้ แต่จะพบว่า HTTP ก็เป็นที่รู้จักกันดี และไปได้ทั่วทุกแห่งที่มี internet ส่วน XML คือภาษาสากลที่สามารถปรับแต่งได้ตามใจชอบ เพื่อให้เกิดกิจกรรมระว่าง client และบริการ หรือระหว่างส่วนประกอบต่างๆ เบื้องหลัง Web server ก็คือ ข้อความ XML จะถูกแปลงให้การขอบริการจาก Middle ware และผลที่ได้ก็จะแปลงกลับมาในรูป XML
คุณลักษณะพื้นฐานของเว็บเซอร์วิสมีดังนี้
· เว็บเซอร์วิสเป็นซอฟต์แวร์คอมโพเนนท์ที่ระบุตำแหน่งโดยใช้ URI
· อินเตอร์เฟสและการติดตั้งของเซอร์วิสจะนิยาม อธิบาย และค้นหาโดยใช้ ภาษาXML
· เว็บเซอร์วิสสนับสนุนการเรียกใช้จากซอฟต์แวร์ประยุกต์อื่นๆ ผ่านโพรโทคอลอินเตอร์เน็ต
· เว็บเซอร์วิสใช้เอกสารแบบ XML ในการส่งข้อมูลระหว่างผู้ให้บริการและผู้ใช้
· เว็บเซอร์วิสช่วยในการเชื่อมโยงโปรแกรมประยุกต์ต่างแพลตฟอร์ม (Cross-platform Integration) ผ่านอินเตอร์เน็ต
· นักพัฒนาสามารถพัฒนาเว็บเซอร์วิสได้โดยใช้โปรแกรมภาษาคอมพิวเตอร์ต่างๆเช่น Java, C, C# หรือ Visual Basic และสามารถพัฒนาโดยการเปลงซอฟต์แวร์คอมโพเนนท์ที่มีอยู่ให้เป็นเว็บเซอร์วิส
· เว็บเซอร์วิสจะไม่รวมถึงการจัดการส่วนแสดงผลเหมือน HTML
· เว็บเซอร์วิสจะเป็นซอฟต์แวร์คอมโพเนนท์แบบ loosely couple ดังนั้นแต่ละคอมโพเนนท์จะเป็นอิสระและมีฟังก์ชันที่สมบูรณ์ในตัว
· เราสามารถที่จะค้นหาและเรียกใช้เว็บเซอร์วิสจาก registry ที่เป็นแบบ public หรือ private โดยใช้มาตรฐานกลางเช่น UDDI และ ebXML
· เว็บเซอร์วิสสามารถที่จะเรียกใช้โดย client ต่างๆ ได้เช่น คอมพิวเตอร์ โทรศัพท์เคลื่อนที่ หรือ พีดีเอ
พื้นฐานของ Web Service คือ XML และส่วนใหญ่จะใช้ HTTP แต่อาจจจะใช้อินเทอร์เน็ตโพรโทคอลอื่นอย่างเช่น SMTP หรือ FTP ก็ได้ แต่จะพบว่า HTTP ก็เป็นที่รู้จักกันดี และไปได้ทั่วทุกแห่งที่มี internet ส่วน XML คือภาษาสากลที่สามารถปรับแต่งได้ตามใจชอบ เพื่อให้เกิดกิจกรรมระว่าง client และบริการ หรือระหว่างส่วนประกอบต่างๆ เบื้องหลัง Web server ก็คือ ข้อความ XML จะถูกแปลงให้การขอบริการจาก Middle ware และผลที่ได้ก็จะแปลงกลับมาในรูป XML
คุณลักษณะพื้นฐานของเว็บเซอร์วิสมีดังนี้
· เว็บเซอร์วิสเป็นซอฟต์แวร์คอมโพเนนท์ที่ระบุตำแหน่งโดยใช้ URI
· อินเตอร์เฟสและการติดตั้งของเซอร์วิสจะนิยาม อธิบาย และค้นหาโดยใช้ ภาษาXML
· เว็บเซอร์วิสสนับสนุนการเรียกใช้จากซอฟต์แวร์ประยุกต์อื่นๆ ผ่านโพรโทคอลอินเตอร์เน็ต
· เว็บเซอร์วิสใช้เอกสารแบบ XML ในการส่งข้อมูลระหว่างผู้ให้บริการและผู้ใช้
· เว็บเซอร์วิสช่วยในการเชื่อมโยงโปรแกรมประยุกต์ต่างแพลตฟอร์ม (Cross-platform Integration) ผ่านอินเตอร์เน็ต
· นักพัฒนาสามารถพัฒนาเว็บเซอร์วิสได้โดยใช้โปรแกรมภาษาคอมพิวเตอร์ต่างๆเช่น Java, C, C# หรือ Visual Basic และสามารถพัฒนาโดยการเปลงซอฟต์แวร์คอมโพเนนท์ที่มีอยู่ให้เป็นเว็บเซอร์วิส
· เว็บเซอร์วิสจะไม่รวมถึงการจัดการส่วนแสดงผลเหมือน HTML
· เว็บเซอร์วิสจะเป็นซอฟต์แวร์คอมโพเนนท์แบบ loosely couple ดังนั้นแต่ละคอมโพเนนท์จะเป็นอิสระและมีฟังก์ชันที่สมบูรณ์ในตัว
· เราสามารถที่จะค้นหาและเรียกใช้เว็บเซอร์วิสจาก registry ที่เป็นแบบ public หรือ private โดยใช้มาตรฐานกลางเช่น UDDI และ ebXML
· เว็บเซอร์วิสสามารถที่จะเรียกใช้โดย client ต่างๆ ได้เช่น คอมพิวเตอร์ โทรศัพท์เคลื่อนที่ หรือ พีดีเอ
4. Model ของ Web Services คืออะไร และแต่ละส่วนทำหน้าที่อะไร
Model
Web Service
โมเดลการทำงานของ Web Services
กระบวนการการทำงานของเว็บเซอร์วิสจะมีขั้นตอนการทำงานเช่นเดียวกับซอฟต์แวร์ เซอร์วิสที่ใช้ Distributed Computing ดังอธิบายในรูปที่ 1 ซึ่งเราสามารถที่จะแบ่งบทบาทองค์ประกอบของเว็บเซอร์วิสได้เป็นสามส่วน โดยทั้งสามองค์ประกอบมีความสัมพันธ์ดังแสดงในรูปที่ 2 และสามารถอธิบายได้ดังนี้
· ผู้ให้บริการ (Service Provider): ผู้ให้บริการจะมีหน้าที่ในการพัฒนาและติดตั้งเว็บเซอร์วิส และเป็นผู้ที่นิยามความหมาย
ของเซอร์วิสและลงทะเบียนเซอร์วิสกับ Service Registry
· ผู้ใช้บริการ (Service Requestor): ผู้ใช้บริการจะเป็นผู้เรียกใช้เว็บเซอร์วิส โดยอาจทำการค้นหาเซอร์วิสจากเซอร์วิสได
เร็กทอรี่ แล้วทำการเรียกใช้เซอร์วิสจากผู้ให้บริการ
· Service Registry: หรืออาจเรียกว่า Service Broker มีหน้าที่ในการรับลงทะเบียนและช่วยในการค้นหาเว็บเซอร์วิส
Service Registry จะเก็บรายละเอียดของเว็บเซอร์วิสต่างๆเช่น นิยาม และตำแหน่งของเว็บเซอร์วิส ทำหน้าที่คล้ายกับ
สมุดโทรศัพท์เพื่อช่วยให้ผู้ใช้บริการสามารถค้นหาเซอร์วิสที่ต้องการได้
โมเดลการทำงานของ Web Services
กระบวนการการทำงานของเว็บเซอร์วิสจะมีขั้นตอนการทำงานเช่นเดียวกับซอฟต์แวร์ เซอร์วิสที่ใช้ Distributed Computing ดังอธิบายในรูปที่ 1 ซึ่งเราสามารถที่จะแบ่งบทบาทองค์ประกอบของเว็บเซอร์วิสได้เป็นสามส่วน โดยทั้งสามองค์ประกอบมีความสัมพันธ์ดังแสดงในรูปที่ 2 และสามารถอธิบายได้ดังนี้
· ผู้ให้บริการ (Service Provider): ผู้ให้บริการจะมีหน้าที่ในการพัฒนาและติดตั้งเว็บเซอร์วิส และเป็นผู้ที่นิยามความหมาย
ของเซอร์วิสและลงทะเบียนเซอร์วิสกับ Service Registry
· ผู้ใช้บริการ (Service Requestor): ผู้ใช้บริการจะเป็นผู้เรียกใช้เว็บเซอร์วิส โดยอาจทำการค้นหาเซอร์วิสจากเซอร์วิสได
เร็กทอรี่ แล้วทำการเรียกใช้เซอร์วิสจากผู้ให้บริการ
· Service Registry: หรืออาจเรียกว่า Service Broker มีหน้าที่ในการรับลงทะเบียนและช่วยในการค้นหาเว็บเซอร์วิส
Service Registry จะเก็บรายละเอียดของเว็บเซอร์วิสต่างๆเช่น นิยาม และตำแหน่งของเว็บเซอร์วิส ทำหน้าที่คล้ายกับ
สมุดโทรศัพท์เพื่อช่วยให้ผู้ใช้บริการสามารถค้นหาเซอร์วิสที่ต้องการได้
5. ถ้าคุณจะเรียกใช้งาน Web
Services จะต้องมีขั้นตอนอย่างไรบ้าง
การเรียกใช้งาน Web Services
ขั้นตอนการใช้งาน Web Services
ขั้นตอนที่ 1 : Service Requestor ค้นหาบริการผ่าน Service Registry ซึ่งทำให้เรา ได้ข้อมูลเกี่ยวกับประเภทของการบริการ ที่ตั้ง นั้นๆ (หากเรารู้อยู่แล้วว่าการบริการที่เราจะใช้อยู่ที่ไหน มีเอกสาร WSDL เป็นอย่างไร ก็ข้ามขั้นตอนนี้ไปได้ของการบริการ และเอกสาร WSDL บรรยายคุณลักษณะของการบริการ
ขั้นตอนที่ 2 : ติดต่อขอใช้บริการผ่าน Web Application หรือเขียนโปรแกรมขึ้นมาเรียกใช้เมธอดของ Web Service นั้น ๆโดยอาศัยข้อมูลที่มีอยู่ในเอกสาร WSDL ที่มีอยู่
ขั้นตอนที่ 3 : ผู้ให้บริการ (Service Provider ) ส่งผลลัพธ์กลับมายังผู้เรียกใช้บริการ (Service Requestor)
การเรียกใช้งาน Web Services
ขั้นตอนการใช้งาน Web Services
ขั้นตอนที่ 1 : Service Requestor ค้นหาบริการผ่าน Service Registry ซึ่งทำให้เรา ได้ข้อมูลเกี่ยวกับประเภทของการบริการ ที่ตั้ง นั้นๆ (หากเรารู้อยู่แล้วว่าการบริการที่เราจะใช้อยู่ที่ไหน มีเอกสาร WSDL เป็นอย่างไร ก็ข้ามขั้นตอนนี้ไปได้ของการบริการ และเอกสาร WSDL บรรยายคุณลักษณะของการบริการ
ขั้นตอนที่ 2 : ติดต่อขอใช้บริการผ่าน Web Application หรือเขียนโปรแกรมขึ้นมาเรียกใช้เมธอดของ Web Service นั้น ๆโดยอาศัยข้อมูลที่มีอยู่ในเอกสาร WSDL ที่มีอยู่
ขั้นตอนที่ 3 : ผู้ให้บริการ (Service Provider ) ส่งผลลัพธ์กลับมายังผู้เรียกใช้บริการ (Service Requestor)
6. คุณคิดว่า Web Services มีประโยชน์อย่างไร สามารถนำไปพัฒนาเว็บทางด้านใดได้บ้าง
1.Web
Services ช่วยให้การเข้าถึงข้อมูลสารสนเทศจากแอพพลิเคชันที่ต่างกันเป็นไปโดยง่าย
โดยแอพพลิเคชันนั้นๆ สามารถเขียนด้วย Java และรันอยู่บน Sun Solaris Application Server หรืออาจจะเขียนด้วย C++ และรันอยู่บน Windows NT หรืออาจะเขียนด้วย
Perl และรันอยู่บนเครื่อง Linux ซึ่งมาตรฐานของ
Web Service ทำให้อินเทอร์เฟซของแอพพลิเคชันเหล่านี้
ถูกอธิบายโดย WSDL และทำให้อยู่ในมาตรฐานของ UDDI หลังจากนั้น จึงสามารถติดต่อสื่อสารถึงกันโดย XML ผ่าน SOAP อินเตอร์เฟซ
2.Web Services สามารถถูกเรียกใช้ภายในองค์กรเองหรือจากภายนอกองค์กร โดยผ่านไฟร์วอล์ ดังนั้นจึงมีองค์กรใหญ่ๆ มากมาย กำลังพัฒนาระบบที่มีอยู่ของตน ให้เข้ากับ Web Services ซึ่งนับเป็นการลงทุนที่คุ้มค่า เนื่องจาก Web Services สามารถเพิ่มศักยภาพในการทำงานขององค์กร อีกทั้งลดค่าใช้จ่ายในการจัดการทรัพยากรขององค์กรได้อีกทางหนึ่ง
3.นอกจากนั้น Web Services ยังสามารถใช้ร่วมกับ Web Application โดยส่งผ่านข้อมูลทางอินเตอร์เน็ตได้อีกด้วยซึ่งนับเป็นวิธีที่มีประสิทธิภาพในการติดต่อสื่อสารกับลูกค้าหรือหุ้นส่วน ถึงแม้จะต้องคำนึงถึงระบบรักษาความปลอดภัย และการจัดการรายการของข้อมูลอยู่ก็ตาม แต่ Web Services ได้ใช้มาตรฐานทั่วไปของ internet เรื่องดังกล่าวจึงนับเป็นเรื่องธรรมดาของการสื่อสารผ่านระบบอิเล็กทรอนิกส์
2.Web Services สามารถถูกเรียกใช้ภายในองค์กรเองหรือจากภายนอกองค์กร โดยผ่านไฟร์วอล์ ดังนั้นจึงมีองค์กรใหญ่ๆ มากมาย กำลังพัฒนาระบบที่มีอยู่ของตน ให้เข้ากับ Web Services ซึ่งนับเป็นการลงทุนที่คุ้มค่า เนื่องจาก Web Services สามารถเพิ่มศักยภาพในการทำงานขององค์กร อีกทั้งลดค่าใช้จ่ายในการจัดการทรัพยากรขององค์กรได้อีกทางหนึ่ง
3.นอกจากนั้น Web Services ยังสามารถใช้ร่วมกับ Web Application โดยส่งผ่านข้อมูลทางอินเตอร์เน็ตได้อีกด้วยซึ่งนับเป็นวิธีที่มีประสิทธิภาพในการติดต่อสื่อสารกับลูกค้าหรือหุ้นส่วน ถึงแม้จะต้องคำนึงถึงระบบรักษาความปลอดภัย และการจัดการรายการของข้อมูลอยู่ก็ตาม แต่ Web Services ได้ใช้มาตรฐานทั่วไปของ internet เรื่องดังกล่าวจึงนับเป็นเรื่องธรรมดาของการสื่อสารผ่านระบบอิเล็กทรอนิกส์
ประโยชน์ของการใช้
Web Service
1. การเกิดพันธมิตรทางการค้าโดยการค้นหาของ UDDI
2. การทำธุรกิจการค้าและบริการเป็นไปโดยอัตโนมัติในระดับ (A2A) โดยการแลกเปลี่ยนข้อมูล ผ่านทาง Webservices
3. ลดต้นทุนในด้านพัฒนาระบบโดยไม่จำเป็น สามารถขอบริการจาก Web Services
4. ขีดความสามารถในการตอบสนองความต้องการของลูกค้ามีความคล่องตัว สามารถใช้ประโยชน์จากแอพพลิเคชั่นต่าง ๆภายใต้ระบบงานที่แตกต่างกันอย่างรวดเร็ว และคุ้มค่า
5. การพัฒนาช่องทางการเข้าถึงข้อมูลทางธุรกิจสอดคล้องกับผู้ใช้แบบร่วมกันและแบ่งตามส่วนของแต่ละกลุ่มโดยไม่มีข้อจำกัดเรื่องสถานที่
6. ง่ายต่อการนำไปใช้งานเนื่องจากในปัจจุบันมีเครื่องมือมากมายที่ใช้ช่วยเหลือในการพัฒนาWeb Services
1. การเกิดพันธมิตรทางการค้าโดยการค้นหาของ UDDI
2. การทำธุรกิจการค้าและบริการเป็นไปโดยอัตโนมัติในระดับ (A2A) โดยการแลกเปลี่ยนข้อมูล ผ่านทาง Webservices
3. ลดต้นทุนในด้านพัฒนาระบบโดยไม่จำเป็น สามารถขอบริการจาก Web Services
4. ขีดความสามารถในการตอบสนองความต้องการของลูกค้ามีความคล่องตัว สามารถใช้ประโยชน์จากแอพพลิเคชั่นต่าง ๆภายใต้ระบบงานที่แตกต่างกันอย่างรวดเร็ว และคุ้มค่า
5. การพัฒนาช่องทางการเข้าถึงข้อมูลทางธุรกิจสอดคล้องกับผู้ใช้แบบร่วมกันและแบ่งตามส่วนของแต่ละกลุ่มโดยไม่มีข้อจำกัดเรื่องสถานที่
6. ง่ายต่อการนำไปใช้งานเนื่องจากในปัจจุบันมีเครื่องมือมากมายที่ใช้ช่วยเหลือในการพัฒนาWeb Services
มาตรฐาน WSDL
SOAP และ UDDI เป็นเพียงมาตรฐานพื้นฐานของเว็บเซอร์วิส
การพัฒนาเว็บเซอร์วิสในทางปฏิบัติจำเป็นต้องพิจารณาเรื่องอื่นเช่น ความปลอดภัย Transaction หรือMessaging เป็นต้น ดังแสดงในรูปที่ 3 ซึ่งแสดงตัวอย่างมาตรฐานเว็บเซอร์วิสอื่นๆ ตามฟังก์ชันของการทำงาน
โดยจะมีมาตรฐานที่สำคัญ อาทิเช่น
รูปที่ 3 มาตรฐานต่างๆ
ที่เกี่ยวข้องกับเว็บเซอร์วิส
· WS-Addressing: มาตรฐานที่ใช้ร่วมกับ SOAP Header ในการระบุโพรโทคอลการสื่อสารและระบบข่าวสาร (Messaging Systems)
· WS-Security: มาตรฐานที่เป็นโครงสร้าง (Framework) เพื่อเชื่อมต่อกับเทคโนโลยีระบบความปลอดภัยต่างๆ
· SAML: Security
Assertion Markup Language เป็นมาตรฐานที่ทาง OASIS กำหนดขึ้นเพื่อสนับสนุนการทำ Single Sign On (SSO) และ Authentication
· WS-BPEL: มาตรฐานสำหรับการประกอบ (orchestration) กระบวนการทางธุรกิจ(Business
Process) โดยใช้คำสั่งที่เป็นภาษา XML
· WSRP: Web Services for
Remote Portal มาตรฐานสำหรับการเรียกใช้ Web Servicesจากเว็บท่า (Portal)
การพัฒนา SOA โดยใช้เว็บเซอร์วิส
แม้การพัฒนาสถาปัตยกรรมเชิงบริการ (Service Oriented Architecture หรือ SOA) ในยุคแรกจะสามารถทำได้โดยใช้เทคโนโลยีอื่นๆ อาทิเช่น CORBA, Java RMI และ DCOM หรือสามารถใช้ MOM
(Message Oriented Middleware)เพื่อพัฒนา SOA ในรูปของการแลกเปลี่ยนข้อมูลของสถาปัตยกรรม EAI ที่นิยมใช้ทั่วไป แต่ในปัจจุบันการพัฒนา SOA โดยใช้เทคโนโลยีเว็บเซอร์วิสเริ่มได้รับการยอมรับมากกว่าเทคโนโลยีอื่นๆ
ด้วยเหตุผลดังนี้
· เว็บเซอร์วิสอิงอยู่กับมาตรฐานที่เปิดเช่น SOAP WSDL UDDI และมาตรฐานเว็บเซอร์วิสอื่นๆ
ทำให้องค์กรต่างไม่จำเป็นที่จะต้องลงทุนกับโซลูชันที่ใช้เทคโนโลยีเฉพาะ
และป้องกันการผูกขาดโดยผู้ผลิตรายใดรายหนึ่ง
· เว็บเซอร์วิสสนับสนุนการเชื่อมโยงกับโซลูชันของผู้ผลิตต่างๆ
ทำให้ช่วยลดต้นทุน
· เว็บเซอร์วิสสนับสนุนการเชื่อมโยงระบบ
แพลตฟอร์ม และโซลูชันต่างๆทั้งภายในองค์กร ระหว่างองค์กร และภายนอก
รูปที่ 4 แสดงตัวอย่างการพัฒนา SOA โดยใช้เทคโนโลยีเว็บเซอร์วิส สร้างเซอร์วิสจากเทคโนโลยีที่ต่างกันคือ IMS, CORBA, Java EE และ Workflow โดยมีสถาปัตยกรรมแต่ละส่วนดังนี้
· Business Service Tier : ประกอบด้วยเซอร์วิสที่พัฒนามาจากเทคโนโลยี IMS, CORBAและ โปรแกรม Workflow และมีเว็บเซอร์วิสที่พัฒนาโดยใช้เทคโนโลยีJava
EE
· Business Access Tier : จะมี Service Registry (เช่น UDDI) สำหรับการลงทะเบียนและค้นหาเว็บเซอร์วิส
ดังนั้นจึงต้องมี Legacy
gateways เพื่อแปลงเซอร์วิสที่ใช้เทคโนโลยีให้เป็นเว็บเซอร์วิสสำหรับIMS,
CORBA และใช้ WebSphere MQ เพื่อแปลง Workflow ให้เป็นเว็บเซอร์วิส
· Communication
Infrastructure : จะใช้โพรโทคอล SOAP บน HTTP และ SOAP ที่ใช้มาตรฐาน WS-ReliableMessaging
· Client/Presentation : ตัวอย่างนี้แสดงการใช้โปรแกรมแสดงผลที่พัฒนาโดยเทคโนโลยี.NET
รูปที่ 4 ตัวอย่างการพัฒนา SOA โดยใช้เทคโนโลยีเว็บเซอร์วิส
การพัฒนาเว็บเซอร์วิสโดยใช้เทคโนโลยีจาวา
การพัฒนาเว็บเซอร์วิสสามารถแบ่งได้ตามบทบาทของผู้เกี่ยวข้องคือ
การพัฒนาเพื่อเป็นผู้ให้บริการ การพัฒนาเพื่อเป็นผู้ใช้บริการ และการพัฒนาสำหรับ Service Registry เทคโนโลยีจาวาที่สามารถจะพัฒนาเว็บเซอร์วิสได้จะอยู่ในแพลตฟอร์มที่เป็น Java EE โดยใน Java EE 5 ได้กำหนดคำสั่ง APIสำหรับภาษาจาวาในการเรียกใช้ XML ต่างๆ ดังนี้
· JAX-WS (Java API for XML-Based Web Services) เป็นชุดคำสั่งภาษาจาวาเพื่อพัฒนาให้บริการเว็บเซอร์วิสและเรียกใช้เว็บเซอร์วิส
โดยจะสนับสนุนมาตรฐานต่างๆของ W3C เช่นSOAP และ WSDL และสนับสนุนการส่งข้อมูลทั้งแบบ Asynchronous และ Synchronousพร้อมทั้งทำการ binding ข้อมูลโดยใช้ JAXB ดังนั้นนักพัฒนาโปรแกรมสามารถใช้ภาษาจาวาสร้างและเรียกเว็บเซอร์วิสได้
โดยไม่จำเป็นต้องพัฒนา SOAP หรือ WSDL เอง
· JAXB (Java
Architecture for XML Binding) เป็นชุดคำสั่งภาษาจาวาเพื่อทำการจับคู่(mapping) ข้อมูลที่เป็นภาษา XML กับออปเจ็คที่เป็นจาวาคลาส
· JAXP (Java
API for XML Processing) เป็นชุดคำสั่งภาษาจาวาเพื่อแปล แปลง ตรวจสอบความถูกต้อง และค้นหา
เอกสารหรือไฟล์ที่เป็นภาษา XML
· SAAJ (SOAP
with Attachments API for Java) เป็นชุดคำสั่งภาษาจาวาเพื่อสนับสนุนการส่งเอกสาร XML ผ่านอินเตอร์เน็ต
· JAX-RPC
(Java API for XML-Based RPC) เป็นชุดคำสั่งสำหรับพัฒนาเว็บเซอร์วิสเช่นเดียวกับ JAX-WS แต่จะใช้สำหรับ J2EE เวอร์ชัน 1.4 และสนับสนุน SOAP 1.1
· WSIT (Web
Services Interoperability Technology) เป็นชุดคำสั่งภาษาจาวาเพื่อเชื่อมโยงระหว่าง Java EE และ .NET 3.0 ช่วยในการพัฒนาโปรแกรมผ่านสถาปัตยกรรม SOA
สำหรับแพลตฟอร์ม Java SE จะมี API สำหรับ XML อยู่ในเวอร์ชัน 6 (Java SE 6) โดยจะมีชุดคำสั่ง JAX-WS 2.0 JAXB 2.0 และ SAAJ 1.3
การพัฒนาเพื่อให้บริการเว็บเซอร์วิสจะต้องใช้แพลตฟอร์ม Java EE ซี่ง Server ที่เป็นJava EE จะมองการให้บริการเว็บเซอร์วิสเป็นเพียงพอร์ตหรือช่องทาง (channel)หนึ่งในการบริการเซอร์วิส
ดังนั้นจึงไม่มีผลทำให้สถาปัตยกรรมเปลี่ยนไป และสามารถนำคอมโพเน้นท์ของ Java EE (เช่น Session Bean) ที่มีอยู่มาพัฒนาเป็นเว็บเซอร์วิสได้โดยง่าย
นอกจากนี้การพัฒนาเว็บเซอร์วิสบนเทคโนโลยีจาวา
ยังสามารถที่จะได้ใช้จุดเด่นของแพลตฟอร์ม Java EE ในด้านความปลอดภัย
ความเชื่อมั่น (Reliability) และการรองรับผู้ใช้จำนวนมาก (Scalability)
เว็บเซอร์วิสคือพอร์ตหนึ่งในแพลตฟอร์ม Java EE ซึ่งจะทำงานภายใน Java EE Container โดย container จะเป็น Runtime environmentของคอมโพเน้นท์ที่เป็นเว็บเซอร์วิส
โดยมีคำสั่ง JAX-WS หรือ JAX-RPC ในการที่จะติดต่อกับ Runtime environment อีกชั้นหนึ่ง
โดยทั่วไปเราสามารถที่จะสร้างคอมโพเน้นท์ของเว็บเซอร์วิสได้สองประเภทดังแสดงในรูปที่ 5 คือ
· เว็บเซอร์วิสแบบWeb-tier
(โดยใช้ Servlet
endpoint) ตัวอย่างเช่น Tomcat หรือ Axis
· เว็บเซอร์วิสแบบEJB-tier
(โดยใช้ Session
Bean endpoint) ตัวอย่างเช่น Sun Java Application Server
การพัฒนาเว็บเซอร์วิสสำหรับหน่วยงานขนาดเล็กอาจสามารถทำได้โดยใช้
เว็บเซอร์วิสแบบ Web-tier แต่หากต้องพัฒนาเพื่อรองรับผู้ใช้จำนวนมากจำเป็นต้องใช้
เว็บเซอร์วิสแบบ EJB-tier ดังนั้นผู้พัฒนาเว็บเซอร์วิสโดยใช้เทคโนโลยีจาวาควรจะมีความเข้าใจเรื่อง Application Server และสามารถพัฒนา EJB ได้
รูปที่ 5 Java Web Service Components
แม้หลักการของเว็บเซอร์วิส จะอิงอยู่กับมาตรฐานต่างๆ
แต่การพัฒนาเว็บเซอร์วิสโดยใช้เทคโนโลยี จาวาสามารถทำได้โดยไม่ต้องพัฒนาโพรโทคอล SOAP หรือ WSDL โดยตรง นอกจากนี้ยังมีเครื่องมือเพื่อให้สามารถพัฒนาโปรแกรมได้โดยง่ายเช่น NetBeans 5.5 ผู้ที่สนใจจะพัฒนาเว็บเซอร์วิสโดยใช้ NetBeans
7. จากที่ได้เรียนรู้กับคำถามดังกล่าวแล้ว
คุณคิดว่า Web Services กับ Web Appication มีความเหมือนหรือว่าต่างกันกัน อย่างไร จงอธิบาย
- Web
application นั้น หลักการก็คือให้คนทั่วไปเข้ามาใช้งาน โดยการคลิก
การพิมพ์ เท่านั้นเอง หรืออีกอย่าง ตัว web application มันก็คือ
application ที่อยู่บนเว็บ หรือ บนอินเตอร์เน็ตเพื่อให้ User
ใช้งานนั่นเอง
- Web Service ก็เป็น application ที่อยู่บนอินเตอร์เน็ตเช่นกัน แต่การใช้งานจะไม่เหมือนกับ web application ตรงที่ User ไม่สามารถใช้งานมันได้โดยตรง จะต้องใช้งาน application ซึ่งอาจจะเป็น web application ที่พัฒนามาแล้วเรียกใช้งานเว็บเซอร์วิสอีกทีหนึ่ง หรือจะเป็น application (ไม่ใช่เว็บ) ที่พัฒนามาเพื่อเรียกใช้งานเว็บเซอร์วิสอีกที โดยที่ application เหล่านี้จะถูกพัฒนาบนอุปกรณ์ใดๆ ก็ได้เพื่อให้ได้ใช้งานได้สะดวก จึงกล่าวว่า web services เป็นโปรแกรมแอพพลิเคชั่นที่ถูกสร้างมาเพื่อให้ application ใช้งานนั่นเอง
- Web Service ก็เป็น application ที่อยู่บนอินเตอร์เน็ตเช่นกัน แต่การใช้งานจะไม่เหมือนกับ web application ตรงที่ User ไม่สามารถใช้งานมันได้โดยตรง จะต้องใช้งาน application ซึ่งอาจจะเป็น web application ที่พัฒนามาแล้วเรียกใช้งานเว็บเซอร์วิสอีกทีหนึ่ง หรือจะเป็น application (ไม่ใช่เว็บ) ที่พัฒนามาเพื่อเรียกใช้งานเว็บเซอร์วิสอีกที โดยที่ application เหล่านี้จะถูกพัฒนาบนอุปกรณ์ใดๆ ก็ได้เพื่อให้ได้ใช้งานได้สะดวก จึงกล่าวว่า web services เป็นโปรแกรมแอพพลิเคชั่นที่ถูกสร้างมาเพื่อให้ application ใช้งานนั่นเอง
ไม่มีความคิดเห็น:
แสดงความคิดเห็น