วันอังคารที่ 28 กุมภาพันธ์ พ.ศ. 2560

AJAX และ SOAP


    AJAX ย่อมาจาก Asynchronous JavaScript and XML เป็นการนำเทคโนโลยีต่างๆมาทำงานร่วมกัน เพื่อทำให้การใช้งานเว็ปเพจประหยัดและสะดวกขึ้น
    โดยปกติเมื่อ ผู้ใช้เข้าเว็ปหรือร้องขอข้อมูลจากทาง Sever จะต้องรอSeverประมวลเสร็จก่อนจึงจะส่งกลับมาแสดงผลบเว็ปเพจของผู้ใช้ จึงเกิดการ Refresh ใหม่ทุกครั้งที่ร้องขอข้อมูล จึงมาการนำ AJAX มาช่วยในการทำงานให้รวดเร็วขึ้นโดย AJAX สามารถลดการ Refresh ทำให้การแสดงผลนุ่มนวลขึ้น
    โดยหัวใจสำคัญในการทำงานของ AJAX คิอ XMLHttpRequest Object ซึ่งทำหน้าที่ขอข้อมูลทางฝั่งSever โดยข้อมูลที่ขอนั้นเป็นข้อมูลเล็กๆและใช้ JavaScript นำมาแสดงผลบนหน้าจอเดิม โดยไม่ต้อง Refresh หน้าจอใหม่

องค์ประกอบของ AJAX
-JavaScript
-Cascading Style Sheet(CSS)
-Document Object Model(DOM)
-XMLHttpRequest Object(XHR Object)

ข้อดี (สิ่งที่ทำให้เกิด Ajax)
    1. มี RIA technology คือ แอพพลิเคชั่นที่งานได้อย่างสมบูรณ์
    2. อุสาหกรรมที่มีการใช้ IT ต้องการ
    3. เป็น emerging (เทคโนโลยีที่เกิดขั้นมาและจำเป็นต้องใช้)
    4. ไม่จำเป็นต้องโหลดอะไรมาเพิ่ม หรือ plug-in อะไรเข้ามา ซึ่งจะใช้งานได้ก็ขึ้นอยู่กับ web browser ว่ารองรับรึปล่าว

 ข้อเสีย (อุปสรรค)
    1. browser บางตัวไม่ยอมรับ
    2. javaScript ยากในการ maintain และ debug

SOAP คืออะไร

     SOAP ย่อมาจาก Simple Object Access Protocol คือโปรโตคอลมาตรฐานที่ใช้ใน Web Services เป็นโพรโทคอล ( Protocol )ในการติดต่อแลกเปลี่ยนข้อมูลระหว่างกันของ web services เป็นโพรโทคอลการสื่อสาร ในระดับ Application Layer หรือในระดับ แอปพลิเคชัน โดยอาศัยผ่านอินเทอร์เน็ตโพรโทคอล ซึ่งอาศัยรูปแบบของภาษา  XML ทำให้ Web services สามารถสื่อสารกันได้แม้ว่า จะอยู่บนเครื่องคอมพิวเตอร์คนละเพลตฟอร์ม หรือพัฒนาด้วยภาษาโปรแกรมที่ต่างกันก็ตาม และนิยมใช้ HTTP เป็นโปรโตคอลร่วมสำหรับส่งผ่านข้อมูลบนระบบอินเตอร์เน็ต   SOAP ทำงานร่วมกับโพรโตคอลได้หลายชนิด เช่น HTTP, SMTP, FTP, IIOP เป็นต้น
     1.ผู้ขอใช้บริการ (Service Requester ) สร้าง SOAP Message เพื่อเรียกใช้บริการของ เว็บเซอร์วิส แล้วส่งผ่านโพรโตคอลเครือข่ายไปยังผู้ให้บริการ ในที่นี้ SOAP message ที่รับ-ส่งไปมานั้น อยู่ในรูปแบบ XML และต้องมีการแปลกลับมาอยู่ในรูปแบบที่โปรแกรมหรือเว็บเซิร์ฟเวอร์เข้าใจ โดยมีโปรแกรมที่ทำหน้าที่แปลความหมายของเอกสาร XML คือ XML Parser
     2.ผู้ให้บริการ ( Service Provider ) ได้รับ SOAP Message จากผู้ขอใช้บริการ จากนั้น จึงแปลข้อความนั้นกลับมาอยู่ในรูปแบบที่เว็บเซิร์ฟเวอร์เข้าใจ แล้วตรวจสอบว่า ผู้ใช้บริการต้องการเรียกใช้ เว็บเซอร์วิส ชื่ออะไร เมธอดอะไร และส่งพารามิเตอร์อะไร มาด้วย จากนั้นจึงส่งไปให้แก่คอมโพเนนต์ที่ให้บริการ เว็บเซอร์วิส นั้นๆดำเนินการประมวลผล
     3.หลังจากคอมโพเนนต์ที่ให้บริการ เว็บเซอร์วิส ส่งผลลัพธ์กลับมาแล้วผู้ให้บริการก็จะสร้าง SOAP Message ที่มีผลลัพธ์นั้นออกมาด้วย แล้วจึงส่งผ่านทางโพรโตคอลเครือข่ายกลับคืนไปยังผู้ขอใช้บริการ
     4.ผู้ขอใช้บริการได้รับ SOAP Message ที่อยู่ในรูปแบบ XML จึงแปลข้อความนั้นกลับมาในรูปแบบที่โปรแกรมของผู้ขอใช้บริการเข้าใจแล้วนำผลลัพธ์ไปใช้งาน เช่น แสดงผล หรือไปทำอย่างอื่น แล้วแต่ว่ามีการเขียนโปรแกรมรองรับไว้ให้ทำอย่างไร
และจะมี SOAP Listener ทำหน้าที่คอยรับฟังว่ามีการเรียกใช้ เว็บเซอร์วิส จากผู้ใช้ การบริการของ เว็บเซอร์วิส แต่ละบริการจะมีไฟล์ SOAP Listener จำนวน 1 ไฟล์ เมื่อใดที่มีการเรียกใช้ เว็บเซอร์วิส ไฟล์โปรแกรมที่เป็น SOAP Listener ก็จะไปปลุกให้ เว็บเซอร์วิสทำงาน
    1.โพรโตคอล SOAP สามารถให้เราเรียกใช้คอมโพเนนต์ หรือ เว็บเซอร์วิส ข้ามเครื่อง ข้าม แพลตฟอร์มหรือข้ามภาษา ได้ โดยอาศัยโพรโตคอลที่มีอยู่เดิมในอินเทอร์เน็ต อย่าง HTTP
    2.โครงสร้างข้อมูลของ SOAP เป็นรูปแบบข้อความที่สื่อสารกันด้วยภาษา XML ซึ่งมีลักษณะเป็นข้อความธรรมดาๆปิดล้อมด้วยแท็ค ทำให้เข้าใจได้ในทุกแพลตฟอร์ม
    3.โพรโตคอล SOAP สามารถทำงานผ่านระบบไฟล์วอลล์ ได้ง่ายเนื่องจาก SOAP ทำงานอยู่กับ โพรโตคอล HTTP ซึ่งโดยธรรมชาติของไฟล์วอลล์ จะเปิดให้การสื่อสารด้วย HTTP ผ่านได้อย่างสะดวก
    4.SOAP สนับสนุนจากหลายค่าย เช่น  IBM, MS , SUN

จากภาพ อธิบายได้ดังนี้
   1.ผู้ขอใช้บริการ (Service Requester ) สร้าง SOAP Message เพื่อเรียกใช้บริการของ เว็บเซอร์วิส แล้วส่งผ่านโพรโตคอลเครือข่ายไปยังผู้ให้บริการ ในที่นี้ SOAP message ที่รับ-ส่งไปมานั้น อยู่ในรูปแบบ XML และต้องมีการแปลกลับมาอยู่ในรูปแบบที่โปรแกรมหรือเว็บเซิร์ฟเวอร์เข้าใจ โดยมีโปรแกรมที่ทำหน้าที่แปลความหมายของเอกสาร XML คือ XML Parser
   2.ผู้ให้บริการ ( Service Provider ) ได้รับ SOAP Message จากผู้ขอใช้บริการ จากนั้น จึงแปลข้อความนั้นกลับมาอยู่ในรูปแบบที่เว็บเซิร์ฟเวอร์เข้าใจ แล้วตรวจสอบว่า ผู้ใช้บริการต้องการเรียกใช้ เว็บเซอร์วิส ชื่ออะไร เมธอดอะไร และส่งพารามิเตอร์อะไร มาด้วย จากนั้นจึงส่งไปให้แก่คอมโพเนนต์ที่ให้บริการ เว็บเซอร์วิส นั้นๆดำเนินการประมวลผล
   3.หลังจากคอมโพเนนต์ที่ให้บริการ เว็บเซอร์วิส ส่งผลลัพธ์กลับมาแล้วผู้ให้บริการก็จะสร้าง SOAP Message ที่มีผลลัพธ์นั้นออกมาด้วย แล้วจึงส่งผ่านทางโพรโตคอลเครือข่ายกลับคืนไปยังผู้ขอใช้บริการ
   4.ผู้ขอใช้บริการได้รับ SOAP Message ที่อยู่ในรูปแบบ XML จึงแปลข้อความนั้นกลับมาในรูปแบบที่โปรแกรมของผู้ขอใช้บริการเข้าใจแล้วนำผลลัพธ์ไปใช้งาน เช่น แสดงผล หรือไปทำอย่างอื่น แล้วแต่ว่ามีการเขียนโปรแกรมรองรับไว้ให้ทำอย่างไร
และจะมี SOAP Listener ทำหน้าที่คอยรับฟังว่ามีการเรียกใช้ เว็บเซอร์วิส จากผู้ใช้ การบริการของ เว็บเซอร์วิส แต่ละบริการจะมีไฟล์ SOAP Listener จำนวน 1 ไฟล์ เมื่อใดที่มีการเรียกใช้ เว็บเซอร์วิส ไฟล์โปรแกรมที่เป็น SOAP Listener ก็จะไปปลุกให้ เว็บเซอร์วิสทำงาน

ข้อดีของการใช้โพรโตคอล SOAP
    1.โพรโตคอล SOAP สามารถให้เราเรียกใช้คอมโพเนนต์ หรือ เว็บเซอร์วิส ข้ามเครื่อง ข้าม แพลตฟอร์มหรือข้ามภาษา ได้ โดยอาศัยโพรโตคอลที่มีอยู่เดิมในอินเทอร์เน็ต อย่าง HTTP
    2.โครงสร้างข้อมูลของ SOAP เป็นรูปแบบข้อความที่สื่อสารกันด้วยภาษา XML ซึ่งมีลักษณะเป็นข้อความธรรมดาๆปิดล้อมด้วยแท็ค ทำให้เข้าใจได้ในทุกแพลตฟอร์ม
    3.โพรโตคอล SOAP สามารถทำงานผ่านระบบไฟล์วอลล์ ได้ง่ายเนื่องจาก SOAP ทำงานอยู่กับ โพรโตคอล HTTP ซึ่งโดยธรรมชาติของไฟล์วอลล์ จะเปิดให้การสื่อสารด้วย HTTP ผ่านได้อย่างสะดวก
    4.SOAP สนับสนุนจากหลายค่าย เช่น  IBM, MS , SUN


 ข้อเสียของการใช้โพรโตคอล SOAP
    1.เนื่องจากลักษณะของ SOAP message เป็นเอกสาร XML ทำให้เสียเวลาในการแปลกลับมาเป็นรูปแบบที่โปรแกรมเข้าใจ
    2.ในกรณีที่ SOAP ทำงานอยู่กับโพรโตคอล HTTP ซึ่งมีสมรรถนะในการรับ-ส่งข้อมูลต่ำกว่าโพรโตคอล DCOM, RMI, หรือ IIOP จึงทำให้โพรโตคอล SOAP มีอัตราการรับ-ส่งข้อมูลต่ำ