ข่าวทั่วไป
Web Services คืออะไร

เสาร์ ที่ 19 เดือน กุมภาพันธ์ พ.ศ.2554


Web Services คืออะไร

      Application หรือ program ที่ทำงานอย่างใดอย่างหนึ่ง ในลักษณะให้บริการ โดยจะถูกเรียกใช้งานจาก application อื่นๆ ในรูปแบบ RPC (Remote Procedure Call) ซึ่งการให้บริการจะมีเอกสารที่อธิบายคุณสมบัติของบริการกำกับไว้ โดยภาษาที่ถูกใช้เป็นสื่อในการแลกเปลี่ยนคือ XML ทำให้เราสามารถเรียกใช้ component ใด ๆ ก็ได้ ใน platform ใด ๆ ก็ได้ บน protocol HTTP ซึ่งเป็น protocol สำหรับ World Wide Web อันเป็นช่องทางที่ได้รับการยอมรับทั่วโลกในการติดต่อสื่อสารกันระหว่าง application กับapplication ในปัจจุบัน

      Web Service ช่วยให้การเข้าถึงข้อมูลสารสนเทศจากแอพพลิเคชันที่ต่างกันเป็นไปโดยง่าย โดยแอพพลิเคชันนั้นๆ สามารถเขียนด้วย Java และรันอยู่บน Sun Solaris Application Server หรืออาจจะเขียนด้วย C++ และรันอยู่บน Windows NT หรืออาจะเขียนด้วย Perl และรันอยู่บนเครื่อง Linux ซึ่งมาตรฐานของ Web Service ทำให้อินเทอร์เฟซของแอพพลิเคชันเหล่านี้ ถูกอธิบายโดย WSDL และทำให้อยู่ในมาตรฐานของ UDDI หลังจากนั้น จึงสามารถติดต่อสื่อสารถึงกันโดย XML ผ่าน SOAP อินเตอร์เฟซ

     Web Service สามารถถูกเรียกใช้ภายในองค์กรเองหรือจากภายนอกองค์กร โดยผ่านไฟร์วอล์ ดังนั้นจึงมีองค์กรใหญ่ๆ มากมาย กำลังพัฒนาระบบที่มีอยู่ของตน ให้เข้ากับ Web Service ซึ่งนับเป็นการลงทุนที่คุ้มค่า เนื่องจาก Web Service สามารถเพิ่มศักยภาพในการทำงานขององค์กร อีกทั้งลดค่าใช้จ่ายในการจัดการทรัพยากรขององค์กรได้อีกทางหนึ่ง

     นอกจากนั้น Web Service ยังสามารถใช้ร่วมกับ Web Application โดยส่งผ่านข้อมูลทางอินเตอร์เน็ตได้อีกด้วยซึ่งนับเป็นวิธีที่มีประสิทธิภาพในการติดต่อสื่อสารกับลูกค้าหรือหุ้นส่วน ถึงแม้จะต้องคำนึงถึงระบบรักษาความปลอดภัย และการจัดการรายการของข้อมูลอยู่ก็ตาม แต่ Web Service ได้ใช้มาตรฐานทั่วไปของ internet เรื่องดังกล่าวจึงนับเป็นเรื่องธรรมดาของการสื่อสารผ่านระบบอิเล็กทรอนิกส์


     Requestor คือ
ใครก็ตามที่ต้องการเรียกใช้บริการจาก Provider ซึ่งสามารถค้นหาบริการที่ต้องการได้จาก UDDI registry หรือ Service Registry หรือติดต่อจาก Provider โดยตรง
    Registry คือ
ทำหน้าที่เป็นตัวกลางให้ Provider มาลงทะเบียนไว้ โดยใช้ WSDL ไฟล์ บอกรายละเอียดของบริษัทและบริการที่มีให้ ซึ่งอาจจะใช้หรือไม่ใช้ก็ได้
    Provider คือ
    เป็นผู้ให้บริการ มีหน้าที่ในการเปิดบริการเพื่อรองรับการขอใช้บริการจาก Requestor ที่เรียกเข้ามาขอใช้

หน้าที่และการทำงานของแต่ละ entity

จากโครงสร้างของเว็บเซอร์วิส จะพบว่าเว็บเซอร์วิสประกอบด้วย event ต่าง ๆ ดังนี้
    * Create Service - โดยบริการ (service) จะถูกสร้างขึ้นจากเครื่องมือและภาษาที่เหมาะสมสำหรับเว็บเซอร์วิส เช่น C++ VB Java Perl PHP Python เป็นต้น
    * Publish - หลังจากบริการถูกสร้างขึ้น จะถูก publish ไว้ใน UDDI registry โดย Service Container ซึ่งภายใน registry จะประกอบไปด้วยข้อมูลเกี่ยวกับ บริการ และผู้สร้างบริการนั้น ๆ โดยจะจำแนกตามประเภทของธุรกิจ ซึ่งช่วยให้ผู้ขอบริการ (Service Requestor) สามารถค้นหาบริการได้อย่างง่ายดาย ตัวอย่างเช่น โบรกเกอร์หุ้นสามารถ publish บริการการค้าหุ้น ไว้ในประเภทธุรกิจการเงิน โดยใช้ IBM UDDI registry และจะต้อง publish บริการในรูปของไฟล์ WSDL (Web Service Description Language) ซึ่งเก็บข้อมูลทั้งหมดเกี่ยวกับบริการและโบรกเกอร์ไว้
* Search - ผู้ขอบริการ (Service Requestor) สามารถค้นหาบริการใน registry ผ่านทางอินเทอร์เฟสของผู้ให้บริการ (Service Provider)
    * Reference - หลังจากผู้ขอบริการค้นหาบริการที่ต้องการ จะได้ผลการค้นหาเป็นรายการของบริการ ซึ่งประกอบด้วย reference และ specification ของบริการต่าง ๆ ซึ่งผู้ขอบริการสามารถเลือกได้ว่า
บริการใดที่ตรงกับความต้องการของตนเองมากที่สุด
    * Bind - ผู้ขอบริการสามารถใช้ reference ที่เลือกไว้ เพื่อโยงไปยังบริการที่ต้องการ
    * Invoke - บริการจะถูกเรียกใช้ผ่านทาง reference โดยใช้เทคโนโลยีมาตรฐานต่าง ๆ เช่น การเรียกบริการโดย SOAP ในรูปของเอกสาร XML ผ่านทาง HTTP protocol

เทคโนโลยีที่ใช้ในการพัฒนา Web Services

      XML (The Extensible Markup Language 1.0)
เป็นภาษา Markup ที่เป็น text-based ซึ่งทำให้เป็น มาตรฐานในการแลกเปลี่ยนข้อมูลบนอินเทอร์เน็ตอย่างรวดเร็ว ผู้ที่ทำหน้าที่รับผิดชอบ และกำหนดมาตรฐานของ XML คือ World Wide Web Consortium (W3C) ความแตกต่างระหว่าง XML กับ HTML คือ HTML ถูกนำมาใช้ในการสร้าง เว็บเพจ ที่สามารถแสดงผลได้โดยโปรแกรมเบราวเซอร์ แต่ XML จะใส่ tags ได้อย่างอิสระ แล้วทำการส่ง XML ชุดนี้ไป ประมวลผลยังแอพพลิเคชั่นใด ๆ ที่สามารถใช้ข้อมูลใน XML นี้  XML เป็นภาษาที่มีลักษะเป็น tag คล้าย HTML แต่ไม่ได้มุ่งที่การแสดงผล XML มุ่งที่การสื่อความหมายโดยอนุญาตให้ผู้ใช้สามารถกำหนด tag ขึ้นได้เองเพื่อให้สื่อความหมายทางภาษาของมนุษย์ แต่คอมพิวเตอร์เองก็เข้าใจเช่นกัน ทำให้ข้อมูลระหว่าง tag สามารถนำไปประมวลผลต่อได้ เช่น

<ComputerBook>
        <book>
            <name>เว็บเซอร์วิส</name>
            <price>10.00$</price>
        </book>
        <book>
            <name>xml</name>
            <price>10.00$</price>
        </book>
    </ComputerBook>

     จากตัวอย่าง จะเห็นได้ว่ารูปแบบเอกสาร xml ไม่ได้บอกวิธีแสดงผลไว้ แต่เอกสารสามารถสื่อความหมายให้คอมพิวเตอร์เข้าใจได้ และนำค่าไปประมวลผลต่อได้ แต่ถ้าเราต้องการจะแสดงผลเราต้องใช้ควบคู่กันกับ HTML

SOAP(Simple Object Access Protocol)
    SOAP กลายเป็นสิ่งที่มีความสำคัญสำหรับ Web Services อย่างรวดเร็ว เป็นโปรโตคอลที่ผู้จัดหา Web Services เลือกใช้ที่จะส่ง message ระหว่าง Web Services SOAP เป็น Transport Protocol ที่มี XML เป็นพื้นฐานและใช้ HTTP เป็นโปรโตคอลร่วมในการส่งผ่านเครือข่าย SOAP จะระบุวิธีในการเข้ารหัสส่วนหัว (Header Encoding) ของทั้ง HTTP และไฟล์ XMLไว้อย่างชัดเจนทั้งใน ส่วนของการติดต่อไปยังคอมพิวเตอร์อีกเครื่องหนึ่งและส่งผ่านข้อมูลไปให้รวมถึงระบุวิธีที่โปรแกรมซึ่งถูกเรียกนั้นจะส่งค่าคืนกลับมาด้วย
                 
  SOAP (Simple Object Access Protocol) เป็น XML-based โปรโตคอล (lightweight protocol)และใช้ HTTP เป็นโปรโตคอลร่วม สำหรับ การแลกเปลี่ยนข้อมูลในสภาวะแวดล้อมแบบกระจายศูนย์ (decentralized, distributed environment) SOAP ได้ กำหนดเมเสจจิ้งโปรโตคอล (Messaging Protocol) ระหว่างผู้ขอบริการ (requestor) กับผู้ให้บริการ (provider) เช่น ผู้ขอบริการสามารถติดต่อแลกเปลี่ยนข้อมูลกับผู้ให้บริการโดยใช้ RMI (Remote Method Invocation) ตามวิธีการของ โปรแกรมแบบออปเจ็ค บริษัทไมโครซอฟท์, ไอบีเอ็ม, โลตัส, ยูสเซอร์แลนด์ (UserLand) และ ดีเวลลอปเปอร์เมนเตอร์ (DeveloperMenter) ได้ร่วมกันกำหนดมาตรฐานของ SOAP ขึ้น ซึ่งต่อมาได้มีบริษัทอีก 30 กว่าบริษัทเข้าร่วมและ จัดตั้งเป็น W3C XML Protocol Workgroup ขึ้น SOAP ได้กำหนดรูปแบบพื้นฐานของการสื่อสารแบบกระจายขึ้นโดย การพัฒนา SOAแม้ว่า SOA จะไม่ได้กำหนดเมจเสจจิ้งโปรโตคอล (Messaging Protocol) ไว้ แต่ SOAP ได้ถูกกำหนด ให้เป็น Services-Oriented Architecture Protocol เรียบร้อยแล้ว เนื่องจากมันได้ถูกใช้ในการพัฒนา SOA อย่างแพร่ หลายแล้วนั่นเอง จุดเด่นของ SOAP ก็คือเป็นโปรโตคอลที่เป็นกลาง กล่าวคือ ไม่มีใครเป็นเจ้าของและเป็นโปรโตคอล ที่ทำงานกับโปรโตคอลอื่นหลายชนิด การพัฒนาก็อนุญาตให้ทำได้อย่างอิสระตามแพลตฟอร์มระบบปฏิบัติการ แบบจำลองทางวัตถุ (Object model) และภาษาโปรแกรมของผู้ที่ทำการพัฒนา


      เนื่องจากจุดประสงค์หลักของการใช้งานเว็บเซอร์วิส เราต้องการให้แอพพลิเคชั่น มีการทำงานกับแอพพลิเคชั่นที่ทำงานอยู่ในเครื่องอื่นโดยผ่านทางเครือข่าย ซึ่งเทคโนโลยีที่มีอยู่ในปัจจุบันที่ใช้มีการสื่อสารระหว่าง Object ในระยะไกล (Remote Procedure Calls : RPC) เช่น DCOM,EJB หรือ CORBAนั้นไม่ได้ถูกออกแบบมาใช้สำหรับโปรโตคอล HTTP (เครือข่ายที่ปัจจุบันใช้งานแพร่หลาย และสะดวกมากที่สุดได้แก่เครือข่าย Internet ซึ่งให้การสื่อสารผ่านโปรโตคอล HTTP เป็นส่วนใหญ่)
เทคนิค RPC ของเทคโนโลยีที่กล่าวข้างต้นนั้นต่างก็มีปัญหาในด้านการนำมาใช้งานในแง่ของความเข้ากันได้ของการเรียกใช้งานข้ามเทคโนโลยี เนื่องจากเป็นเทคโนโลยีเฉพาะของแต่ละค่าย ยกเว้น CORBA ผู้พัฒนาระบบจะต้องพัฒนาโปรแกรมที่มีความซับซ้อน และยังมีปัญหาในส่วนของ Firewalls และ Proxy Server ด้วยเนื่องจากโดยปกติ เซอร์เวอร์จะปิดการสื่อสารที่ไม่ใช่โปรโตคอล HTTP ออกไป เพื่อความปลอดภัยของระบบที่มีการติดต่อสื่อสารกับภายนอก
ดังนั้นทางเลือกของการสื่อสารที่จะนำมาใช้ในการทำบริการเว็บเซอร์วิส ก็คือให้ทำงานอยู่บน โปรโตคอล HTTP ไปเลย ซึ่ง SOAP นอกจากจะทำงานบนโปรโตคอล HTTP แล้วยังเป็นมาตรฐานเปิดที่จะทำให้สามารถติดต่อสื่อสารกับเครื่องคอมพิวเตอร์ที่มีความแตกต่างกันทั้งระบบปฏิบัติการ, เทคโนโลยี รวมไปถึงภาษาที่ใช้ในการพัฒนาด้วยก็ได้
โครงสร้างของ SOAP
เอกสาร SOAP นั้นมีโครงสร้างในรูปแบบ XML ซึ่งเราสามารถแบ่งเป็นส่วนของเอกสารได้เป็น 3 ส่วนหลักดังนี้คือ
1.    SOAP envelop เนื้อหาสาระ (Content) ของเอกสารทั้งหมด
2.    SOAP header ส่วนเพิ่มเติมของเอกสาร SOAP ซึ่งจะมีก็ได้ หรือไม่มีก็ได้
3.    SOAP body ส่วนที่ใช้ในการเรียกใช้งานเซอร์วิส และผลลัพธ์ที่ได้จากเซอร์วิส


โครงสร้างของเอกสาร SOAP

ตัวอย่างเอกสาร SOAP
<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>

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 เป็นต้น

<Header> จากตัวอย่างมีการเพิ่มเนื้อหาของเอกสาร SOAP เข้าไปในส่วนของ Header ในที่นี้คือ สกุลเงิน (Currency) ซึ่งส่วนนี้จะใช้ในส่วนของ Application ไม่ได้เป็นส่วนของมาตรฐานของ SOAP แต่ผู้ใช้งานเป็นผู้กำหนดใช้เอง (User-defined
Attribute ใน 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)
<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

        จะเห็นว่า SOAP Envelope ก็เป็นเอกสารที่อยู่ในรูปแบบ XML ทั่วไป แต่สิ่งที่ทำให้ SOAP มีความสามารถมากขึ้นก็คือ SOAP ได้มีการกำหนดโครงสร้างของเอกสารเป็นส่วนๆ โดยอธิบายว่าส่วนใดมีหน้าที่อะไร (What) มีข้อมูลอะไรอยู่ในส่วนนั้น และใคร (Who) คือผู้ที่จะต้องสนใจในส่วนนั้น ๆ และกล่าวถึงว่าส่วนใดจำเป็นที่ต้องมีในเอกสาร และส่วนใดเป็นส่วนที่เพิ่มเติมอาจจะมีหรือไม่มีส่วนนั้นก็ได้ขึ้นอยู่ความจำเป็นในการใช้งาน ทำให้การพัฒนาโปรแกรมมีทิศทางที่ค้อนข้างชัดเจน แต่สามารถเพิ่มขยายได้ในอนาคตอีก

          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 มีจุดที่ควรรู้ ดังนี้


 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

     เนื่องเพราะเว็บเซอร์วิส คือเทคโนโลยีที่เป็นอิสระจาก 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 กำหนดเอาไว้ ซึ่งคงจะเป็นเรื่องที่น่าสนใจที่จะศึกษาในรายละเอียดของแต่ละ Profile ดังกล่าว
นอกจากนั้น WS-I ยังเสนอตัวอย่างโปรแกรมประยุกต์ที่ใช้แนวทางการเชื่อมต่อตาม Profile ที่วางเอาไว้ โดยมีเครื่องมือในการทดสอบให้เห็นว่าการเชื่อมต่อดังกล่าวนั้นเป็นไปตามข้อ กำหนดหรือไม่ ดูรายละเอียดได้จาก Sample Application และ Testing Tools

WS-I
Microsoft/IBM/Accenture/BEA Systems/Fujitsu/Hewlett-Packard/Intel/Oracle/SAP ได้ประกาศการก่อตั้ง Web Services Interoperabilty Organization (WS-I) เมื่อวันที่ 5 กุมพาพันธ์ พ.ศ. 2545 โดยอธิบายไว้ว่า WS-I เป็นองค์กรที่มุ่งที่จะสนับสนุน Web services interoperability ระหว่างแพลตฟอร์ม OS และภาษาโปรแกรมมิ่งต่าง ๆ

ภารกิจของ WS-I คือ
1. การจัดหาแนวทาง implementation เพื่อรองรับลูกค้าที่สร้างเว็บเซอร์วิส
2. สนับสนุน interoperability ให้มีความแน่นอนและไว้วางใจได้
3. ประกาศวิสัยทัศน์ที่ชัดเจนของเว็บเซอร์วิส

ขั้นตอนแรกของการปฏิบัติงานของ WS-I คือการจัดตั้งกลุ่มของ profiles ที่จะกำหนดเกณฑ์มาตรฐานที่สามารถนำมาประยุกต์ใช้กับเว็บเซอร์วิส เพื่อทำให้เว็บเซอร์วิสมี interoperability โดยมีกลุ่มปฏิบัติงานที่ได้รับมอบหมายให้สร้างธรรมเนียมปฏิบัติ รวมไปถึงแนวทางการปฏิบัติที่มีประสิทธิภาพมากที่สุด เพื่อใส่ไว้ใน Basic Profile นอกจากนี้ยังได้มีการจัดทำเครื่องมือการวิเคราะห์ไฟล์ WSDL และ SOAP message อีกด้วย
WS-I Basic Profile
WS-I ได้ออกแบบ WS-I Basic Profile เพื่อปรับปรุง interoperability ระหว่างเว็บเซอร์วิส โดย Basic Profile เวอร์ชัน 1.0 ได้จัดการกับปัญหาบางประการที่เกี่ยวข้องกับ interoperability ของเว็บเซอร์วิส ได้แก่
1. XML message encoding
2. SOAP fault syntax
3. SOAP message structure and processing requirements
4. Supported versions of HTTP and SOAP
5. HTTP header requirements and status codes
6. Updated WSDL schema and type constraints
7. WSDL import statements
8. Restrictions on WSDL port types and bindings
9. Use of XML schema
10. Description and discovery restrictions

ในการสร้างเว็บเซอร์วิสให้สอดคล้องกับ Basic Profile เว็บเซอร์วิสดังกล่าวสามารถใส่คำประกาศไว้ส่วนประกอบของเว็บเซอร์วิส 3 แห่งดังนี้
- Message เช่น SOAP
- Description เช่น WSDL
- Registry เช่น UDDI


ยุคของการเว็บแอพลิเคชั่น
ในการพัฒนาเว็บไซต์นั้นพอสรุปคร่าวได้ 3 ยุคด้วยกันคือ


Static Web เป็นการเขียนเว็บไซต์แบบธรรมดาใช้ Web Browser อย่าง IE, Netscape เรียกเว็บเพจที่เขียนด้วยภาษา HTML ล้วนๆ หรืออย่างมากก็มีสคริปต์ทางฝั่งไคลเอนต์ที่เรียกว่า Client-Side Script เช่น JavaScript, VBScript หรือใช้ภาษา Java Applet ซึ่ง Static web ส่วนมากนิยมในหมู่นักเรียน นักศึกษา หรือผู้เริ่มฝึกหัดเขียนโฮมเพจ ในการสร้างโฮมเพจส่วนตัว หลังจากทำเสร็จแล้วก็อัปโหลดข้อมูลไปยังเว็บไซต์ที่ให้บริการพื้นที่เว็บฟรี เช่น www.geocities.com, www.thai.net

Dynamic Web พัฒนาต่อจากยุคที่ 1 เริ่มมีการใช้สคริปต์ทางฝั่งเซิร์ฟเวอร์ (Server-Side Script) มาช่วยในการเพิ่มความสามารถของเอกสารที่เขียนด้วย HTML ในการติดต่อกับองค์ประกอบอื่นๆ เช่น ฐานข้อมูล หรืออาศัยอาศัยพลังในการประมวลผลของเว็บเซิร์ฟเวอร์เพื่อทำงานบางอย่าง อาทิเช่น Webboard, Guestbook, Char room, Shoping Cart, Webmail, E-Card เป็นต้น เทคโนโลยีการพัฒนาเว็บแบบไดนามิกในช่วงแรกคือ CGI(Common Gateway Interface) ภาษาที่ใช้เขียนสคริปต์นี้เช่น C, PERL ในการพัฒนา ต่อมาได้มีการพัฒนาเทคโนโลยีที่มีการทำงานคล้าย CGI เพื่อทำงานทางฝั่งเซิร์ฟเวอร์ เช่น ASP (Active Server Page) ของไมโครซอฟต์, JSP (Java Server Page) ของ Sun Micro System, PHP (Professional Home Page) ฝั่ง Open Source

Web Services เป็นบริการยุคใหม่ในวงการเว็บ ผู้ใช้เพียงแค่ดึงบริการต่างๆ บนเว็บมาใช้งาน ภาษาที่ใช้เป็นแกนกลางในการพัฒนาเว็บเซอร์วิส คือ XML

ความหมายของ Web Services
Web Services (WS) คือแอพลิเคชั่นหรือโปรแกรมที่ทำงานอย่างใดอย่างหนึ่งในลักษณะให้บริการ โดยจะถูกเรียกใช้งานแอพลิเคชั่นจากโปรแกรมอื่น ๆ (php, asp, java, python) ผ่านทางหน้าเว็บ การให้บริการของ WS จะมีเอกสารที่อธิบายคุณสมบัติของการบริการกำกับไว้ และมีการนำเสนอให้สาธารณะชนรับทราบ ผู้ใช้จึงสามารถค้นหา WS ได้โดยไม่จำเป็นต้องรู้ที่อยู่จริงของแอพลิเคชั่นหรือโปรแกรมนั้นๆ



Web Services Technology
Web Service = SOAP+WSDL+UDDI



SOAP (Simple Object Access Protocol) เป็นโปรโตคอลที่เรียกใช้ในการเรียกใช้งาน Component ข้ามเครื่อง ข้ามแพลตฟอร์ม ข้ามภาษา (Component ที่สร้างด้วยภาษาใดๆ (asp.net, c#, php, perl, java, python, delphi)สามารถคุยกันรู้เรื่อง) โปรโตคอลนี้ทำงานร่วมกับโปรโตคอล HTTP และรูปแบบข้อความที่สื่อสารกันด้วยภาษา XML

WSDL (Web Service Description Language) เป็นภาษาที่ใช้อธิบายคุณลักษณะของ Web Services และวิธีการติดต่อกับ Web Services เป็นภาษาที่อยู่ในความดูแลของ W3C (World Wide Web Consortium) สามารถอ่านเนื้อหาเพิ่มเติมได้ที่ http://www.w3.org/TR/wsdl

UDDI (Universal Description, Discovery and Integration) เป็นที่เก็บรวบรวม Web Services ต่างๆ ในอินเทอร์เน็ต ไว้ในแหล่งเดียวกันเพื่อให้ผู้ใช้บริการสามารถค้นหาได้ง่ายๆ หากเปรียบเทียบง่ายๆ ให้มองเสมือนสมุดหน้าเหลืองที่เราใช้ในการเปิดดูเบอร์โทรศัพท์
- ผู้เริ่มก่อตั้ง UDDI ในช่วงแรกคือ IBM และ Microsoft และ Ariba ซึ่งเป็นบริษัทที่ทำธุรกิจ B2B ปัจจุบันมีบริษัทที่มีส่วนร่วมในการกำหนดมาตฐานของ UDDI มากกว่า 70 บริษัท
- UDDI ถูกสร้างขึ้นมาเพื่อเป็นมาตรฐานในการค้นหาบริการของ WS สำหรับคู่ค้าทางธุรกิจ (ฺBusiness Partner)
- UDDI Business Registry เป็นฐานข้อมูล WS ของบริษัทคู่ค้าทางธุรกิจ
- ในปัจจุบันบางบริษัทก็ตั้งตัวเองเป็นตัวแทนผู้ให้บริการ (Service brokers)
- สามารถศึกษาข้อมูลเกี่ยวกับ UDDI ได้ที่ http://uddi.org หรือดาวน์โหลดสไลด์ UDDI อ่านเพิ่มเติมได้ที่ http://www.uddi.org/pubs/UDDI_Overview_Presentation.ppt


เข้าชม : 108055


ข่าวทั่วไป 5 อันดับล่าสุด

      QR-CODE คืออะไร 10 / ก.ย. / 2554
      Web Services คืออะไร 19 / ก.พ. / 2554
      เตรียมให้พร้อมกับ ISBN 13 หลัก 22 / พ.ค. / 2553
      Spam Mail ภัยบนอินเทอร์เน็ตที่ใกล้ตัว 5 / ม.ค. / 2553
      แนวทางแก้ปัญหาอาการ Error ของ svchost.exe 22 / ธ.ค. / 2552