assignmet1:start by finding web services using soap and wsdl on the internet/cloud
TRANSCRIPT
ASSIGNMENT 1
“ ” หนงหนวยกลม (Group 1)Selected Topics in Computer Engineering II
CONTENTS
1. web services using SOAP on the Internet/Cloud
2. web services using WSDL on the Internet/Cloud
web services using SOAPon the Internet/Cloud
SOAP เปนโปรโตคอลทผจดหา Web Services เลอกใชทจะสง message ระหวาง Web Services SOAP เปนTransport Protocol ทม XML เปนพน ฐานและใช HTTP เปนโปรโตคอลรวมใน การสงผานเครอขาย SOAP จะระบวธใน การเขารหสสวนหว (Header Encoding) ของทง HTTP และไฟลXML ไวอยางชดเจนทงใน สวนของการตดตอไปยงคอมพวเตอรอกเครองหนงและสงผานขอมลไปใหรวมถงระบวธทโปรแกรมซงถกเรยกนนจะสงคาคนกลบมาดวย
SOAP(Simple Object Access Protocol)
web services using SOAPon the Internet/Cloud
บรษทไมโครซอฟท, ไอบเอม, โลตส, ยสเซอร แลนด (UserLand) และ ดเวลลอปเปอรเมน เตอร (DeveloperMenter) ไดรวมกนกำาหนด มาตรฐานของ SOAP ขน ซงตอมาไดมบรษทอก30 กวาบรษทเขารวมและ จดตงเปน W3C XML Protocol Workgroup จดเดนของ SOAP กคอเปนโปรโตคอลทเปนก ลาง กลาวคอ ไมมใครเปนเจาของและเปน โปรโตคอล ททำางานกบโปรโตคอลอนหลายชนด
การพฒนากอนญาตใหทำาไดอยางอสระตาม แพลตฟอรมระบบปฏบตการ แบบจำาลองทาง วตถ (Object model) และภาษาโปรแกรมของผททำาการพฒนา
01 02
03
SOAP message SOAP Remote Procedure Calls(SOAP RPC)
SOAP encoding rules
สถาปตยกรรมของSOAP แบงสถาปตยกรรมภายในออกเปน 3 สวน
ประกอบ ดงรป
web services using SOAP on the Internet/Cloud
SOAP Message SOAP message มลกษณะการสอสารทางเดยวจากแอพพลเคชนทสงไปยงแอพพลเคชนทรบขอมล โดย massage อาจประกอบไปดวยคำารองขอขอมลจากแอพพลเคชนทเปนตวรบ เมอคำารองขอไดรบการประมวลผลกจะสงผลลพธยอนกลบเปน SOAP message อกอยางหนง ดงนนจงม SOAP message อยหลายตวสอสารอยระหวางแอพพลเคชนบนรโมตคอมพวเตอรเอกสาร SOAP นนมโครงสรางในรปแบบ XML ซงเราสามารถแบงเปนสวนของเอกสารไดเปน 3 สวนหลกดงนคอ1. SOAP envelop เนอหาสาระ (Content) ของเอกสารทงหมด 2. SOAP header สวนเพมเตมของเอกสาร SOAP ซงจะมกได หรอไมมกได 3. SOAP body สวนทใชในการเรยกใชงานเซอรวส และผลลพธทไดจากเซอรวส
web services using SOAP on the Internet/Cloud
ตวอยางเอกสารSOAP
web services using SOAP on the Internet/Cloud
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <soap:Header> <!-- ขอมลในสวนของ Header --> <i:local xmlns:i="http://www.i3t.or.th/ws/"> <i:currency>Bath</i:currency> </i:local> </soap:Header> <soap:Body> <!-- ขอมลในสวนของ Body --> <GetPrice> <Item>Rose</Item> <Quantity>100</Quantity> </GetPrice> </soap:Body> <soap:Fault>
<!-- ขอมลของ SOAP ในกรณมขอผดพลาด จาก SOAP Node --> </soap:Fault> </soap:Envelope> <soap:Fault> <faultcode>Client</faultcode> <faultstring>Invalid Request</faultstring> </soap:Fault> <soap:Fault> <faultcode>Client</faultcode> <faultstring>Invalid Request</faultstring> </soap:Fault>
web services using SOAP on the Internet/Cloud
Element Definition<Envelope> จะเปน Root ของเอกสาร XML SOAP เสมอ โดยจากตวอยางจะใช Namespaces
จาก "http://schemas.xmlsoap.org/soap/envelope/"
(Schema for the SOAP/1.1 envelope)
ดงนน Element ตางๆ ในตวอยางนทอยในเอกสาร XML สวนทเปนมาตรฐานของ SOAP เราจะม Namespaces ทเราตงเปน soap (<soap:Envelop>, <soap:Header>, <soap:Body>, <soap:Fault>
Attribute ใน Envelop
Attribute encodingStyle ในตวอยางมการอางการ encoding จาก
"http://schemas.xmlsoap.org/soap/encoding/"
( Schema for the SOAP/1.1 encoding)
จะใชในกรณทเรามการใช Parameter หลายชนดขอมลในเอกสาร (Data Type) เชน Boolean, String, Integer เปนตน
web services using SOAP on the Internet/Cloud
<Header> จากตวอยางมการเพมเนอหาของเอกสาร SOAP เขาไปในสวนของ Header ในทนคอ สกลเงน (Currency) ซงสวนนจะใชในสวนของ Application ไมไดเปนสวนของมาตรฐานของ SOAP แตผใชงานเปนผกำาหนดใชเอง (User-definedAttribute ใน Headerใน <Header> Element อาจจะมการใส Attribute mustUnderstand เพอใหฝงทรบเอกสาร SOAP ใหทำาการประมวลผลในสวน Header ดวยโดยกำาหนดคาเปน Boolean เชน<i:local xmlns:i="http://www.i3t.or.th/ws/">
<i:country mustUnderstand="1">Thailand</i:country>
<i:currency mustUnderstand="0">Bath</i:currency></i:local>คาของ mustUnderstand ถาเปน "0" แสดงวาไมตองประมวลผลถาเปน "1" : true คอจำาเปนตองมการประมวลผล (โดยคา default = "0" : fault)
web services using SOAP on the Internet/Cloud
<Body> โดยปกตแลวเอกสาร SOAP จะตองมสวนของ Body เพราะเปนสวนเปนเนอหาสาระจรงๆ ของ SOAP จากตวอยางเราตองการสอบถามราคาของดอกกหลาบจำานวน 100 ดอก ซง <GetPrice>, <Item> และ <Quantity>เปน Element ทใชงานใน Application ไมใชมาตรฐานของ SOAP<Fault> เปนสวนทจะถกใชเมอมขอผดพลาดในการประมวลผลของเอกสาร SOAP ซงโดยปกตจะเหนเฉพาะทเปนเอกสารตอบกลบเทานน (Reply Message หรอ Answer Message) ซงตวอยางจะเปนเอกสารทเปนการรองขอบรการ (Request Message) ซงไมนาจะมสวนของ <Fault> Element แตทเขยนไวเพอใหเหนภาพรวมของโครงสรางเอกสาร SOAP ทงหมดกอน ตวอยางขอมลใน <Fault> Element ทมการเกดขอผดพลาด<soap:Fault>
<faultcode>Client</faultcode><faultstring>Invalid
Request</faultstring></soap:Fault
web services using SOAP on the Internet/Cloud
SOAP Serialization
เมอ SOAP Message ถกสงขามเครอขายเราจะตองแนใจวาเมสเสจนนอยในรปแบบทแอพพลเคชนทเปนตว รบสามารถแปลความหมายและเขาใจไดงาย สงนทำาใหเราตองทำาการ Serialize เนอหาใน Header และ Body ของ
SOAP Message ใหอยในรปแบบทแอพพลเคชนทเปนตวรบเมสเสจเขาใจ โดยใชเนมสเปซSystem.XML.Serialization เพอทำาการ Serialize ขอมลใหเปน XML ซงแอพพลเคชนทกตวสามารถทำาความ
เขาใจได รปแบบของการ Serialization ตามขอกำาหนดของ SOAP แบงออกเปน 2 รปแบบไดแก
1. Literal รปแบบนขอมลตองเปนไปตามขอกำาหนดของ XML Schema หรอ XSD ซงไมมกฎเกณฑพเศษ 2. encoding รปแบบนจะเปนไปตามกฎเกณฑพเศษในขอกำาหนดของ SOAP
รปแบบของ SOAP Message ขอกำาหนดของ SOAP กำาหนดรปแบบของ SOAP Message ไว 2 รปแบบ ไดแก
1. Document Style รปแบบนอลเมนต Body จะประกอบดวยอลเมนตยอยตงแตหนงอลเมนตหรอ มากกวา เรยกวา parts อยางไรกตามในขอกำาหนดของ SOAP ไมไดกำาหนดกฎพเศษสำาหรบอลเมนตยอย จง
สามารถใสขอมลใดๆกไดทตองการสงไปยงแอพพลเคชนทเปนตวรบขอมล
2. RPC Style รปแบบนอลเมนต Body จะประกอบดวยเมธอดหรอรโมตโพรซเดอรทตองการเรยก รวมทงพารามเตอรทตองการผานไปดวย
web services using SOAP on the Internet/Cloud
SOAP RPC
พจารณาเหตการณทเราตองการเรยกโพรซเดอรในรโมตคอมพวเตอร ในขณะทเราเรยกเราตองสงผาน พารามเตอรมายงโพรซเดอรนนดวย กระบวนการเรยกโพรซเดอรจากรโมตคอมพวเตอรเรยกวา Remote
Procedure Call หรอ RPC
คำารองขอใชโพรซเดอรสามารถทำาไดโดยใช SOAP ในรปแบบของ SOAP Message ซงเมสเสจประกอบ ดวยคำารองขอหรอผลลพธตอบกลบคำารองขอนน การกำาหนดวธการแลกเปลยนเมสเสจเรยกวา RPC
Covention ซงจะกำาหนดกฎเกณฑทเราสามรถใชในการ Serialize SOAP message
รโมตโพรซเดอร เราตองสง request ไป คำาสงทใชในการสง Request รโมตโพรซเดอรเรยกวาคำาสง Call และ เมอ Request ไดรบการประมวลผลกจะสง Response กลบมา เรยกวา Result
web services using SOAP on the Internet/Cloud
SOAP Encoding Rules
เมอเราสราง SOAP Message เราจะตองปฏบตตามกฎระเบยบทกำาหนดไวในขอกำาหนดของ SOAP ซงเรยกวา SOAP Encoding โดยกฎระเบยบนมลกษณะคลายกนกบ XML Schema ทจะกำาหนดชนด
และโครงสรางทเราจะใชในการสราง SOAP Message โดยกฎระเบยบนจะปรากฏอยในเนมสเปซencoding ทม URL http://schemas.xmlsoap.org/soap/encoding/
ชนดของขอมล ใน encoding rules จะกำาหนดชนดขอมลทเราสามารถใชใน SOAP Message เปน 2 ชนดคอ
1. simple เปนขอมลทตามขอกำาหนดของ XML Schema ทเราสามารถนำามาใชกบ SOAP Message ไดแก integer, float, negativeInteger, string, date, เปนตน โดยขอมลชนดนกำาหนดไวใน
เนมสเปซ http://www.w3.org/1999/XMLSchema 2. compound สรางมาจากขอมล simple โดย SOAP encoding รองรบขอมล compound
อย 2 ชนดคอ structs และ arrays
web services using SOAP on the Internet/Cloud
struct เปนกลมของตวแปรทเปนชนดเดยวกนหรอตางกน ดงตวอยางstruct Student {string ID;string FirstName;string LastName;string Address;int Age;};
<std xsi:type="n:Student"><ID xsi:type="xsd:string">S001</ID><FirstName xsi:type="xsd:string">Daniel</FirstName><LastName xsi:type="xsd:string">Smith</LastName><Address xsi:type="xsd:string">10932 Bigge Rd.</Address><Age xsi:type="xsd:integer">15</Age></std>
การเรยกใช struct เราตองสรางอนสแตนทของโครงสรางขนมาเชนStudent std = {"S001", "Daniel", "Smith", "10932 Bigge Rd.",15};
และสามารถ Serialize Struct Student ดวย SOAP encoding rules ไดดงน
web services using SOAP on the Internet/Cloud
Array เปนขอมล compound ทประกอบไปดวยขอมล simple ชนดเดยวกน การกำาหนด array ตองใช แอตทรบวต xsi:type ซงมคาเปน SOAP-ENC:Array ดงตวอยางขางลาง
<scores xsi:type="SOAP-ENC:Array" SOAPENC:arrayType="xsd:integer[5]"> <item>96</item> <item>92</item> <item>87</item> <item>56</item> <item>70</item></scores>
web services using SOAP on the Internet/Cloud
1. โพรโตคอล SOAP สามารถใหเราเรยกใชคอมโพเนนต หรอ เวบเซอรวส ขามเครอง ขาม แพลตฟอรมหรอขามภาษา ได โดยอาศยโพรโตคอลทมอยเดมในอนเทอรเนต อยาง HTTP
2. โครงสรางขอมลของ SOAP เปนรปแบบขอความทสอสารกนดวยภาษา XML ทำาใหแอพพลเคช นทเปนตวรบขอมลสามารถแปลความหมายไดงาย ทำาใหเขาใจไดในทกแพลตฟอรม
3. โพรโตคอล SOAP สามารถทำางานผานระบบไฟลวอลล ไดงายเนองจาก SOAP ทำางานอยกบ โพรโตคอล HTTP ซงไฟลวอลล จะเปดใหการสอสารดวย HTTP ผานไดอยางสะดวก
4. SOAP ใชภาษา XML ทยอมใหสามารถสงผานขอมลในปรมาณทมากและทำาใหเรองยากกลาย เปนเรองงายดวยการเขารหสขอมล
ขอดของการใชโพรโตคอล SOAP
web services using SOAP on the Internet/Cloud
1. เนองจากลกษณะของ SOAP message เปนเอกสาร XML ทำาใหเสยเวลาในการแปลกลบมาเปนรปแบบ
2. ทโปรแกรมเขาใจในกรณท SOAP ทำางานอยกบโพรโตคอล HTTP ซงมสมรรถนะในการรบ-สง ขอมลตำากวาโพรโตคอล DCOM, RMI, หรอ IIOP จงทำาใหโพรโตคอล SOAP มอตราการรบ-สง
ขอมลตำา
3. SOAP ไมยอมใหทำาการตรวจสอบความผดพลาดในเวลาททำาการแปลเอกสาร สามารถตรวจสอบ ความผดพลาดไดเฉพาะในเวลารนเทานน
4. เอกสาร XML ทมการกำาหนดโครงสรางดวย DTD และ XML Schema ใชหนวยความจำามาก ซง เปนเรองใหญ และใชเวลาในการประมวลผลมาก ซงอาจกอใหเกดทรานแซกชนในระบบเครอขายได
และสงผลใหเกด Overhead
5. องคกรทจะทำาการตดตอสอสารกนดวยเวบเซอรวส ตองทำาความตกลงรวมกนบนมาตรฐานท กำาหนดโดย XML Schema
ขอเสยของการใชโพรโตคอล SOAP
web services using WSDL on the Internet/Cloud
WSDL (Web Services Description Language) เปนภาษาทใชอธบายคณลกษณะการใชบรการของ Web Services และวธการตดตอกบ Web Services ความตองการของนยามนเกยวเนองกบความตองการของ distributed system ทจะกำาหนด Interface Definition Language(IDL) โดยใชภาษา XML, WSDL เกดจากการรวมแนวคดของ NASSL (The Network Accessible Service Specification Language), WDS (Well-Defined Services) ของบรษทไอบเอม, SDL (The Service Description Language) และ SCL (the SOAP Contract Language) ของบรษทไมโครซอฟท ปจจบน WSDL เปนภาษา ทอยในการดแลของ W3C (World Wide Web Consortium) ซงยงไมเปนมาตรฐานทสมบรณ เวอรชนทใชงานอยใน ปจจบนคอ WSDL 1.1 WSDL คอ มาตรฐานสำาหรบการประกาศ process ทจำาเปนในการเรยกใชเซอรวส SOAP (Simple Object Access Protocol)โครงสรางเอกสาร WSDL WSDL เปนภาษาทอยในความดแลขององคกร W3C (World Wide Web Consortium) version ทมอยในปจจบน คอ WSDL 1.1 ในการใชงานจรง หากเราสรางบรการ Web Services กจะมเครองมอชวยสรางเอกสาร WSDL สำาหรบ Web Services อยางอตโนมต
จดภายในเอกสารทเราควรรเกยวกบการตดตอและเรยกใชบรการของ Web Services มจดทควรรดงน
web services using WSDL on the Internet/Cloud
Element Definition
<port Type>
เปนสวนทสำาคญทสดในWSDL element อธบาย operations ท web service มใหบรการและ messages ท เกยวของ เทยบไดกบ function library หรอ module หรอ class ในการเขยนโปรแกรม
<operation>
อธบาย method ทใหบรการ Web Services หนงจะม method จำานวนก method กได
<message>
อธบาย data elements ของ operation แตละ message อาจมมากกวาหนงสวนเทยบไดกบ parameter ของ function ในการเขยนโปรแกรม
<types> อธบายชนดขอมลท web service ใช เพอความเปนกลาง WSDL ใช XML Schema syntax ในการระบชนดขอมล
<binding> อธบาย format ของ message และ protocol details ในแตละ port
<service> สำาหรบ web server จะม Web Services จำานวนกบรการกได และ ชอ Web Services กเปนตวจำาแนกและบงบอกแตละบรการซงหามมชอซำากน
ตามทฤษฎแลว ไฟลเอกสาร WSDL แตละไฟล สามารถอธบายคณลกษณะของบรการ Web Services ไดมากกวา 1 บรการโดยแตละ Web Services จะม port สอสารเฉพาะตว ซงบงบอกไวในเอกสาร WSDL อยแลว มาตรฐานอนๆ ของเวบเซอรวสมาตรฐาน WSDL SOAP และ UDDI เปนเพยงมาตรฐานพนฐานของเวบเซอรวส การพฒนาเวบเซอรวสในทางปฏบตจำาเปนตองพจารณาเรองอนเชน ความปลอดภย Transaction หรอ Messaging เปนตน ดงแสดงในรปซงแสดงตวอยางมาตรฐานเวบเซอรวสอนๆ ตามฟงกชนของการทำางาน โดยจะมมาตรฐานทสำาคญ ดงตอไปน 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)Web Services Interoperability
web services using WSDL on the Internet/Cloud
web services using WSDL on the Internet/Cloud
เนองเพราะเวบเซอรวส คอเทคโนโลยทเปน อสระจาก platform หรอภาษาทใชในการพฒนา ดง
นนสาระสำาคญประการหนงของการทำางานในสวน ของ web services กคอพยายามใหเกดการทำางาน
รวมกน (Interoperability) ระหวาง services ทถก พฒนาจากหนวยงานตางๆ ใหไดมากทสด ซงหนวย
งานทเกดจากการประสานงานของหลายฝายอนทจะ พยายามสรางมาตรฐาน ของ Interoperability ระหวางเวบเซอรวสกคอ Web Services
Interoperability Organization (WS-I) สงท WS-I นำาเสนอกคอมาตรฐานแหงการเชอมตอระหวางผให
บรการ ซงกลมทำางานภายใน WS-I ไดออกมาตรฐาน ทเกยวของในรปแบบของ Profile ซงเปนการใหขอ
แนะแนวเกยวกบการใชขอกำาหนดทางเทคนคอนทจะ ทำาใหเกด Interoperability ไดเหมาะสมทสด
ในสถานะปจจบนสงท profile ท WS-I ได กำาหนดออกมาประกอบดวย Basic Profile
Attachments Profile Simple SOAP binding profile และกำาลงอยในระหวางการจดทำา Basic Security Profileโดยเบองตนแนวทางในการทำาการทดสอบ
เวบเซอรวส ของกลมงาน Web Technology GITI จะ ยดรปแบบตาม Profile ท WS-I กำาหนดเอาไว
Examples web services using SOAP and WSDL on the Internet/Cloud
รายชอและขอมลทสำาคญของเวบเซอรวสทนาใช เวบเซอรวสดกชนนาร ภาษาองกฤษทอยเวบเซอรวส
http://services.aonaware.com/DictService/DictService.asmx ทอยเอกสาร WSDL
http://services.aonaware.com/DictService/DictService.asmx?WSDL ประเภทของเวบเซอรวส SOAP
เวบเซอรวสแปลภาษาทอยเวบเซอรวส
http://www.webservicex.net/TranslateService.asmx ทอยเอกสาร WSDL
http://www.webservicex.net/TranslateService.asmx?WSDL ประเภทของเวบเซอรวส SOAP
หมวดหมดนฟาอากาศและเวลาทวโลก อากาศทวโลก (Global Weather)
ทอยเวบเซอรวสhttp://webservicex.com/globalweather.asmx
ทอยเอกสาร WSDLhttp://webservicex.com/globalweather.asmx?WSDL
ประเภทของเวบเซอรวส SOAP
Examples web services using SOAP and WSDL on the Internet/Cloud
References
web services using SOAP on the Internet/Cloud
https://www.gotoknow.org/posts/161670http://www.rightsoftcorp.com/http://inforzone.kktech.ac.th/http://www.mindphp.com/
Members1. นาย อภวฒธ วงศโทะ รหสนกศกษา 52-1116-530-2
Group1
2. นางสาว พลลภา เขมรงสฤษฏ รหสนกศกษา 56-010126-2008-13. นางสาว อญธกา หนองบว รหสนกศกษา 56-010126-3028-14. นาย ธนดล เตชะวชรกล รหสนกศกษา 56-010126-3009-45. นาย ธรวฒน ผองสกล รหสนกศกษา 56-010126-3015-96. นาย ภมมฑล ไชยเชดเกยรต รหสนกศกษา 56-010116-2131-8
Question & Answer
THANKYOU