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

Download Report

Transcript เว็บเซอร์วิส Web Services

เว็บเซอร์ วสิ
Web Services
วัตถุประสงค์ และเป้ าหมาย


เพื่อศึกษาองค์ประกอบและหลักการทางานของเว็บเซอร์วิส
เพื่อศึกษาการสร้าง เว็บเซอร์วิส
บทคัดย่ อ
เว็บเซอร์ วสิ (Web Services) คือ แอปพลิเคชันหรื อโปรแกรมซึ่ งทางาน
อย่างใดอย่างหนึ่ งในลักษณะให้บริ การแก่ แอปพลิเคชัน หรื อ โปรแกรมอื่นๆ
ผ่านเว็บ โดยใช้ภาษา XML (The Extensible Markup Language) เป็ นสื่ อในการ
แลกเปลี่ยนข้อมูลระหว่างกัน ทาให้ผใู ้ ช้สามารถเรี ยกใช้บริ การต่างๆของแอป
พลิเคชัน ที่อยูบ่ น แพลตฟอร์ ม ใด ๆ ก็ได้ โดยค้นหา เว็บเซอร์ วสิ ได้โดยที่ไม่
จาเป็ นต้องรู ้ที่อยูจ่ ริ งของ แอปพลิเคชัน่ หรื อ โปรแกรมนั้น
สิ่ งสาคัญในการเรี ยกใช้งาน เว็บเซอร์ วสิ คือ ต้องรู ้ที่อยูข่ องบริ การนั้นๆ
จาก UDDI (Universal Description, Discovery, and Integration) รู้คุณลักษณะ
ของเว็บเซอร์วิส จากเอกสาร WSDL (Web Services Description Language)
และการร้องขอบริ การจากผูข้ อใช้บริ การ-การรอผลจากผูใ้ ห้บริ การ จะใช้
โพรโตคอล SOAP (Simple Object Access Protocol)
บทนา
ในอดีต มีการสร้างเว็บเพจจากภาษา HTML ล้วนๆ การแสดงผลในเว็บ
เพจจึงมีลกั ษณะ ตายตัวแบบตายตัว( Static) ต่อมาเว็บเริ่ มมีลกู เล่นที่มากขึ้น
คือ สามารถกรอกข้อมูลต่างๆลงไปในเว็บได้ มีการติดต่อกับฐานข้อมูล และ
เกิดภาษาใหม่ๆเช่น .ASP, .JSP, Perl อยูม่ านานกว่า 10 ปี แต่กเ็ ริ่ มมีขอ้ จากัด
เมื่อมีโปรแกรมเมอร์ หลายคนถนัดเทคโนโลยีที่แตกต่างกันไป เช่น .NET,
Java และ PHP ทาอย่างไรจึงจะนาข้อมูลบนเทคโนโลยีที่แตกต่างกันนี้มาใช้
บนภาษากลางได้ จึงเป็ นที่มาของเทคโนโลยี เว็บเซอร์วิส ที่เป็ นบริ การ
รู ปแบบใหม่ในวงการเว็บ ด้วยการใช้ภาษาแกนกลางในการพัฒนาเว็บ
เซอร์วิส คือ XML (The Extensible Markup Language)
วรรณกรรมที่เกีย่ วข้ อง
1. เว็บเซอร์ วสิ (Web Services)
1.1 ความหมายของเว็บเซอร์วิส
1.2 มาตรฐานที่ใช้ในการพัฒนาเว็บเซอร์วิส
1.3 หลักการทางานของเว็บเซอร์วิส
1.4 ทาไมต้องเป็ นเว็บเซอร์วิส
1.5 การสร้างเว็บเซอร์วิส
2. XML (The Extensible Markup Language)
2.1 ความหมายของ XML
2.2 ความสัมพันธ์ระหว่าง XML และ เว็บเซอร์วิส
1. เว็บเซอร์ วสิ (Web Services)
1.1 ความหมายของเว็บเซอร์ วสิ
เว็บเซอร์วสิ (Web Services) คือ แอปพลิเคชันหรื อโปรแกรม ซึ่งทางาน
อย่างใดอย่างหนึ่งในลักษณะให้บริ การ โดยจะถูกเรี ยกใช้งานจาก แอปพลิเคชัน หรื อ
โปรแกรมอื่นๆ ผ่านเว็บ ในรู ปแบบ RPC (Remote Procedure Call) หรื อระบบสัง่ งาน
ระยะไกล
การให้บริ การของเว็บเซอร์วสิ จะมีเอกสารอธิบายคุณสมบัติของบริ การ
กากับไว้ มีภาษาที่ถูกใช้เป็ นสื่ อในการแลกเปลี่ยนข้อมูล คือ XML ทาให้ผใู้ ช้สามารถเรี ยกใช้
บริ การต่างๆของ แอปพลิเคชัน ที่อยูบ่ น แพลตฟอร์ม ใด ๆ ก็ได้ บนโพรโตคอล HTTP
สาหรับ World Wide Web อันเป็ นช่องทางที่ได้รับการยอมรับทัว่ โลก ในการติดต่อสื่ อสาร
กันระหว่าง แอปพลิเคชัน กับ แอปพลิเคชัน และมีการนาเสนอให้สาธารณชนรับทราบ
ผูใ้ ช้บริ การจึงสามารถค้นหาเว็บเซอร์วสิ ได้โดยที่ไม่จาเป็ นต้องรู ้ที่อยูจ่ ริ งของแอปพลิเคชัน
หรื อ โปรแกรมนั้น
1.2 มาตรฐานที่ใช้ ในการพัฒนาเว็บเซอร์ วิส
1.2.1 SOAP (Simple Object Access Protocol)
ภาพที่1 แสดง ลักษณะข้อความที่รับ - ส่ง ผ่านโพรโตคอล SOAP ซึ่งเป็ นไปตามรู ปแบบของ XML
1.2 มาตรฐานที่ใช้ ในการพัฒนาเว็บเซอร์ วสิ
(ต่ อ)
ข้ อดีของการใช้ โพรโตคอล SOAP
 โพรโตคอล SOAP สามารถให้เราเรี ยกใช้คอมโพเนนต์ หรื อ เว็บเซอร์ วส
ิ ข้ามเครื่ อง ข้าม
แพลตฟอร์มหรื อข้ามภาษา ได้ โดยอาศัยโพรโตคอลที่มีอยูเ่ ดิมในอินเทอร์เน็ต อย่าง HTTP
 โครงสร้างข้อมูลของ SOAP เป็ นรู ปแบบข้อความที่สื่อสารกันด้วยภาษา XML ซึ่ งมีลก
ั ษณะ
เป็ นข้อความธรรมดาๆปิ ดล้อมด้วยแท็ก ทาให้เข้าใจได้ในทุกแพลตฟอร์ม
 โพรโตคอล SOAP สามารถทางานผ่านระบบไฟล์วอลล์ ได้ง่ายเนื่ องจาก SOAP ทางานอยู่
กับ โพรโตคอล HTTP ซึ่งโดยธรรมชาติของไฟล์วอลล์ จะเปิ ดให้การสื่ อสารด้วย HTTP
ผ่านได้อย่างสะดวก
 SOAP นั้นสนับสนุ นจากหลายค่าย เช่น IBM, MS, SUN
1.2 มาตรฐานที่ใช้ ในการพัฒนาเว็บเซอร์ วสิ
(ต่ อ)
ข้ อเสี ยของการใช้ โพรโตคอล SOAP
 เนื่ องจากลักษณะของ SOAP message เป็ นเอกสาร XML ทาให้เสี ยเวลาในการแปลกลับมา
เป็ นรู ปแบบที่โปรแกรมเข้าใจ
่ บั โพรโตคอล HTTP ซึ่งมีสมรรถนะในการรับ-ส่ งข้อมูลต่า
 ในกรณี ที่ SOAP ทางานอยูก
กว่าโพรโตคอล DCOM, RMI, หรื อ IIOP จึงทาให้โพรโตคอล SOAP มีอตั ราการรับ-ส่ ง
ข้อมูลต่า
1.2 มาตรฐานที่ใช้ ในการพัฒนาเว็บเซอร์ วสิ
(ต่ อ)
1.2.2 WSDL (Web Services Description Language)
เอกสาร WSDL
- <message name="getQuoteResponse1">
<part name="Result" type="xsd:float" />
</message>
- <message name="getQuoteRequest1">
<part name="symbol" type="xsd:string" />
</message>
- <portType name="net.xmethods.services.stockquote.StockQuotePortType">
- <operation name="getQuote" parameterOrder="symbol">
//จุดสังเกตที่ 1
//จุดสังเกตที่ 2
1.2 มาตรฐานที่ใช้ ในการพัฒนาเว็บเซอร์ วสิ
(ต่ อ)
<input message="tns:getQuoteRequest1" />
<output message="tns:getQuoteResponse1" />
</operation>
</portType>
- <binding name="net.xmethods.services.stockquote.StockQuoteBinding"
type="tns:net.xmethods.services.stockquote.StockQuotePortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
- <operation name="getQuote">
<soap:operation soapAction="urn:xmethods-delayed-quotes#getQuote" />
- <input>
<soap:body use="encoded" namespace="urn:xmethods-delayed-quotes"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</input>
//จุดสังเกตที่ 3
1.2 มาตรฐานที่ใช้ ในการพัฒนาเว็บเซอร์ วสิ
(ต่ อ)
- <output>
<soap:body use="encoded" namespace="urn:xmethods-delayed-quotes"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
</binding>
- <service name="net.xmethods.services.stockquote.StockQuoteService">
//จุดสังเกตที่ 4
<documentation>net.xmethods.services.stockquote.StockQuote web service</documentation>
- <port name="net.xmethods.services.stockquote.StockQuotePort"
binding="tns:net.xmethods.services.stockquote.StockQuoteBinding">
<soap:address location="http://services.xmethods.net/soap" />
//จุดสังเกตที่ 5
</port>
</service>
</definitions>
1.2 มาตรฐานที่ใช้ ในการพัฒนาเว็บเซอร์ วสิ
(ต่ อ)
1.2.3 UDDI (Universal Description, Discovery, and Integration)
UDDI Business Registry
เรี ยกใช้
ผูใ้ ห้บริ การ
ผูใ้ ช้บริ การ
ภาพที่ 2 แสดงความสัมพันธ์ของผูใ้ ช้บริ การกับผูใ้ ห้บริ การและ UDDI
1.2 มาตรฐานที่ใช้ ในการพัฒนาเว็บเซอร์ วสิ
(ต่ อ)
ตัวอย่าง เว็บไซด์ที่เปิ ดให้คน้ หาบริ การเว็บเซอร์วิส







http://www.wsiam.com
http://uddi.microsoft.com
http://-3.ibm.com/services/uddi/inquiryapi
http://uddi.ariba.com/UDDIProcessor.aw/ad/process
http://uddi.org
http://www.xmethods.com
http://www.strikeiron.com
1.3 หลักการทางานของเว็บเซอร์ วสิ
ทะเบียนของเว็บเซอร์วิส
( UDDI Registry)
ประกาศ
ค้นหา
ผูข้ อเรี ยกใช้บริ การ
(Service Client)
ผูใ้ ห้บริ การเว็บเซอร์วิส
(Service Provider)
เรี ยกใช้บริ การ
ภาพที่ 3 แสดงหลักการทางานของ เว็บเซอร์วิส
1.4 ทาไมต้ องเป็ นเว็บเซอร์ วสิ
มีเหตุผลดังนี้






สามารถใช้บนเครื่ องแบบไหนก็ได้
ไม่ตอ้ งเสี ยค่าใช้จ่ายสูงในการพัฒนา
เทคโนโลยี ที่ใช้งานก่อนที่จะมี เว็บเซอร์วสิ อย่างเช่น DCOM, RMI, หรื อ CORBA/IIOP นั้น
ล้วนทางานในลักษณะที่คล้ายกับเว็บเซอร์วสิ แต่กย็ งั มีขอ้ จากัด ในเทคโนโลยีต่างๆ
เนื่องจากทางานอยูบ่ นอินเตอร์เน็ต ซึ่งปัจจุบนั มีเทคโนโลยีในการรักษาความปลอดภัยมากมาย
รองรับ อยูแ่ ล้ว
เว็บเซอร์วสิ สามารถวิง่ ผ่านไฟล์วอลล์ ได้เนื่องจาก SOAP ถูกส่ งโดยผ่านโพรโตคอล HTTP
รักษาความปลอดภัยตามมาตรฐานของ PKI (Public Key Infrastructure) สามารถดูรายละเอียด
เพิ่มเติมได้ที่ http://verisign.netscape.com/security/pki/understanding.html
1.5 การสร้ างเว็บเซอร์ วสิ
1.5.1 การสร้ างเว็บเซอร์ วสิ โดยทัว่ ไป มีข้นั ตอนดังนี้



สร้าง COM Component หรื อ DLL จากภาษาโปรแกรมที่ทางานในแพลตฟอร์มของไมโครซอฟต์
เช่น ASP.Net, Visual Basic, Delphi, VC++, C# หรื อ การสร้าง EJB (Enterprise Java Bean) ด้วย
ภาษา Java ก็ได้
สร้างไฟล์ WSDL โดยใช้ SOAP Toolkit (Downloadได้ที่ http://msdn.microsoft.com) ทา COM
Component ให้เป็ น เว็บเซอร์วสิ โดย SOAP Toolkit จะมี Wizard ช่วยในการสร้าง DLL, WSDL
และ SOAP Listener ให้โดยอัตโนมัติ สาหรับผูท้ ี่เขียนด้วยภาษา Java ที่จะใช้ EJB นั้น จะต้องใช้
โปรแกรม Apache SOAP แต่ถา้ ใช้ .Net ก็จะมีคาสัง่ ในการสร้าง WSDL และ DLL ให้อยูแ่ ล้ว
ทดสอบดูวา่ เว็บเซอร์วสิ ที่สร้างขึ้นมานั้น ทางานถูกต้อง โดยเขียนแอปพลิเคชันขึ้นมา เพื่อลอง
เรี ยกใช้งานเว็บเซอร์วสิ
1.5 การสร้ างเว็บเซอร์ วสิ (ต่ อ)
1.5.2 การเผยแพร่ เว็บเซอร์ วสิ
ตัวอย่ างเว็บไซด์



http://uddi.microsoft.com/search
http://www.xmethods.com
http://www.strikeiron.com/ ฯลฯ
1.5 การสร้ างเว็บเซอร์ วสิ (ต่ อ)
1.5.3 ขั้นตอนการเรียกใช้ เว็บเซอร์ วสิ
มีข้นั ตอนดังนี้



ทาการสร้างแอปพลิเคชัน อาจจะเป็ นฟอร์ม หรื อเว็บฟอร์มก็ได้ เพื่อเรี ยกใช้งานเว็บเซอร์วสิ
Add Web Reference เพื่อระบุตาแหน่งของเว็บเซอร์วสิ
เขียนโค้ด(คาร้องขอใช้บริ การ) เพื่อเรี ยกเว็บเซอร์วสิ มาทางาน
2. XML (The Extensible Markup Language)
2.1 ความหมายของ XML
XML (The Extensible Markup Language) เป็ นภาษาที่ได้รับการออกแบบมาเพื่อให้
สามารถนิยามความหมายของข้อมูลได้ หรื อที่เรี ยกว่า Data Definition โดยอนุญาตให้
ผูใ้ ช้งานสร้างแท็กขึ้นเองได้ และแท็กที่สร้างขึ้นเองนั้นก็จะเป็ นมาตรฐานที่ผใู ้ ช้กาหนดขึ้น
และภาษาอื่นก็สามารถเรี ยกใช้ได้ ไม่วา่ จะเป็ น VB, ASP, ASP.NET, PHP, JavaScript
เพราะว่าแท็กที่ผใู ้ ช้สร้างขึ้นเองนั้นไม่ได้ทาหน้าที่แสดงข้อมูล
2.2 ความสั มพันธ์ ระหว่ าง XML และ เว็บเซอร์ วสิ
เว็บเซอร์วสิ สามารถแลกเปลี่ยนข้อมูลได้ ต้องอาศัยภาษา XML เป็ นตัวกลาง โดย
ั ระบบ เพื่อเรี ยนรู ้วธิ ีการติดต่อและวิธีการเรี ยกใช้งานเว็บเซอร์วสิ ที่
 WSDL คือ คู่มือให้กบ
ต้องการ โดยเขียนขึ้นตามแบบมาตรฐานไวยากรณ์ของภาษา XML ตัวอย่างโค๊ด ดังแสดง
ในเอกสาร WSDL

SOAP จะมีการส่ งข้อมูลผ่านอินเทอร์เน็ต/เว็บ ในรู ปแบบของภาษา XML
2.2 ความสั มพันธ์ ระหว่ าง XML และ เว็บเซอร์ วสิ (ต่ อ)
ตัวอย่ างโค้ ด SOAP Message
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<AddNumber xmlns="http://tempuri.org/">
<a>float</a>
<b>float</b>
</AddNumber>
</soap:Body><
/soap:Envelope>
ข้ อสรุปและข้ อเสนอแนะ
เว็บเซอร์ วสิ (Web Services) เป็ นเทคโนโลยี ที่ทาให้การเชื่อมต่อ
ระหว่างระบบต่างๆเป็ นไปได้อย่างอัตโนมัติ โดยที่ระบบต่างๆอาจจะถูก
พัฒนาโดยภาษาที่แตกต่างกันหรื อทางานอยูบ่ นเครื่ องคอมพิวเตอร์ ที่แตกต่าง
กัน ข้อมูลที่ถกู ส่ งและรับระหว่างเครื่ องเป็ นภาษา XML มาตรฐานที่ใช้ในการ
ติดต่อกัน เป็ นมาตรฐานสากลและไม่มีใครเป็ นเจ้าของ
เว็บเซอร์ วสิ ได้มีการนาไปใช้อย่างแพร่ หลายในต่างประเทศ และควรมี
การส่ งเสริ มให้มีการพัฒนาและนาไปใช้อย่างแพร่ หลายในประเทศไทย