RIA คืออะไร

Rich Internet application (RIA)http://th.wikipedia.org/wiki/Rich_Internet_application  เป็นเว็บแอปพลิเคชันที่มีความสามารถของเดสก์ท็อปแอปพลิเคชัน โดยทั่วไปแล้ว RIA จะทำงานที่เกี่ยวข้องกับส่วนติดต่อผู้ใช้บนเครื่องของผู้ใช้ แต่จะเก็บข้อมูลต่างๆ (เช่น สถานะของโปรแกรม) ไว้บนแอปพลิเคชันเซิร์ฟเวอร์
RIA เทคโนโลยี RIA ในปัจจุบัน

  1. AJAX (AJAX – Asynchronous JavaScript And XML) เป็นกลุ่มของเทคนิคในการพัฒนาเว็บแอปพลิเคชันเพื่อ ให้ความสามารถโต้ตอบกับผู้ใช้ได้ดีขึ้น โดยการรับส่งข้อมูลในฉากหลัง ทำให้ทั้งหน้าไม่ต้องโหลดใหม่ทุกครั้งที่มีการเปลี่ยนแปลง ซึ่งช่วยทำให้เพิ่มการตอบสนอง ความรวดเร็ว และการใช้งานโดยรวม
  2. Adobe Flash, Adobe Flex และ Adobe AIR เป็น RIA ที่มาจากค่ายของ ADOBE โดยจะมีทั้งการนำเสนอข้อมูลในรูปแบบโดยการใช้ flash เป็นหลักโดยทั้งหมดจะทำการ compile ออกมาเป็นไฟล์ swf สำหรับการใช้งานกับ flash และในส่วนของ AIR สามารถรนได้บน Desktop โดยตรงโดยไม่จำเป็นต้องผ่าน Browser
  3. OpenLaszlo เป็นเทคโนลีทางด้านการพัฒนาเว็บแอปพลิเคชั่นอีกตัวหนึ่ง ที่สร้างขึ้นโดยใช้ภาษาตัวเอง(lzx) โดยในส่วนของ server จะสนับสนุน jsp และในการแสดงผลจะแสดงผลในรูปแบบของ flash หรือ DHTML สามารถเลือการแสดงผลได้ โดย
  4. JavaFX สำหรับเป็นในส่วนของ Application ที่นอกเหนือจากเบราว์เซอร์เหมือนกันกับ AIR หรือ Siverlight แต่เป็นการพัฒนาในสาย Java โดยเป็น RIA ที่ออกมาโดยซันซึ่งเป็นเจ้าของ Java
  5. Microsoft Silverlight ชื่อก็ไม่ต้องบอกครับว่ามาจากค่ายไหน สำหรับ Silverlight เป็นในส่วนของการพัฒนานอกเหนือจากเว็บเบราเซอร์เช่นกัน โดยลักษณะการทำงานคล้ายกันกับ RIA และ JavaFX
  6. XUL XML User Interface Language (XUL – “ซูล”) เป็นภาษามาร์กอัปสำหรับสร้างส่วนติดต่อผู้ใช้ พัฒนาขึ้นเพื่อใช้พัฒนาโดย มอซิลลา สำหรับการใช้งานใน Mozilla Firefox หรือ Mozilla Thunderbird โดยเป็นรูปแบบหนึ่งของการนำ XML มาใช้งาน


AJAX คืออะไร

เอแจ็กซ์ (AJAX – Asynchronous JavaScript And XML) http://th.wikipedia.org/wiki/AJAX เป็นกลุ่มของเทคนิคในการพัฒนาเว็บแอปพลิเคชันเพื่อ ให้ความสามารถโต้ตอบกับผู้ใช้ได้ดีขึ้น โดยการรับส่งข้อมูลในฉากหลัง ทำให้ทั้งหน้าไม่ต้องโหลดใหม่ทุกครั้งที่มีการเปลี่ยนแปลง ซึ่งช่วยทำให้เพิ่มการตอบสนอง ความรวดเร็ว และการใช้งานโดยรวม

เอแจ็กซ์นั้นไม่ใช่เทคโนโลยีใหม่ แต่เป็นเทคนิคที่ได้ใช้เทคโนโลยีหลายอย่างที่มีอยู่แล้วรวมกันดังต่อไปนี้:

  • XHTML (หรือ HTML) และ CSS ใช้ในการแสดงผลลัพธ์และรูปแบบข้อมูล
  • ECMAScript เช่นจาวาสคริปต์ ในการเข้าถึง Document Object Model (DOM) เพื่อใช้ในการแสดงข้อมูลที่มีการเปลี่ยนแปลงหรือโต้ตอบกับผู้ใช้
  • XMLHttpRequest ใช้ในการแลกเปลี่ยนข้อมูล asynchronously กับเว็บเซิร์ฟเวอร์
  • XML ใช้เป็นรูปแบบข้อมูลในการแลกเปลี่ยน ซึ่งรูปแบบอื่นก็สามารถใช้ได้เช่นกันไม่ว่าจะเป็น HTML, JSON, EBML, หรือ เพลนเท็กซ์

หลักการทำงานของ AJAX

วิธีการทำงานของเว็บแอปพลิเคชันแบบดังเดิมนั้น โดยปกติแล้วเมื่อผู้ใช้ทำการร้องขอข้อมูลจากเซิร์ฟเวอร์ ตัวเว็บเบราว์เซอร์จะทำการส่งข้อมูลการร้องขอโดยใช้โพรโทคอล HTTP เพื่อติดต่อกับเว็บเซิร์ฟเวอร์ และที่เว็บเซิร์ฟเวอร์จะทำการประมวลผลจากการร้องขอที่ได้รับ และส่งผลลัพธ์เป็นหน้า HTML กลับไปให้ผู้ใช้ วิธีการข้างต้นเป็นวิธีการแบบการร้องขอและการตอบรับ (Request and Response) ซึ่งผู้ใช้จะต้องรอระหว่างที่เซิร์ฟเวอร์ประมวลผลอยู่ ซึ่งเป็นหลักการทำงานแบบ Synchronous แต่การทำงานของเว็บแอปพลิเคชันที่ใช้เทคนิคเอแจ็กซ์จะเป็นการทำงานแบบ Asynchronous หรือการติดต่อสื่อสารแบบไม่ต่อเนื่อง โดยเซิร์ฟเวอร์จะทำการส่งผลลัพธ์เป็นเว็บเพจให้ผู้ใช้ทันทีโดยไม่ต้องรอให้ ประมวลผลเสร็จก่อน หลังจากนั้นเว็บเพจที่ผู้ใช้ได้รับจะทำการดึงข้อมูลในส่วนต่างๆทีหลัง หรือจะดึงข้อมูลก็ต่อเมื่อผู้ใช้ต้องการเท่านั้น

เทคนิคและเทคโนโลยีที่ทำให้เกิด AJAX

  1. XHTML (Extensible HyperText Markup Language) เป็นภาษามาร์กอัปที่มีความคล้ายคลึงกับภาษา HTML แต่จะมีความเข้มงวดในเรื่องโครงสร้างภาษา (syntax) มากกว่า เนื่องจาก HTML นั้นใช้โครงสร้างของ SGML ที่ค่อนข้างยืดหยุ่น ในขณะที่ XHTML นั้นพัฒนาจาก XML ซึ่งเป็นภาษาที่คล้ายกับ SGML แต่เข้มงวดมากกว่า เราสามารถมองว่า XHTML เป็นการแปลง HTML เดิมให้มาอยู่ในโครงสร้างของ XML ก็ได้
  2. CSS (Cascading Style Sheets) เป็นภาษาสไตล์ชีตใช้ในการจัดรูปแบบของเอกสารที่เขียนในภาษามาร์กอัป CSS เป็นภาษาที่สำคัญตัวหนึ่งในการเขียนเว็บเพจ ซึ่งเขียนในภาษา HTML และ XHTML แต่ก็ยังสามารถประยุกต์ใช้กับใน XML ซึ่งรวมถึง SVG และ XUL ด้วย มาตรฐาน CSS นั้น สร้างโดยกลุ่ม World Wide Web Consortium (W3C)
  3. JavaScript เป็นภาษาสคริปต์ ทีมีลักษณะการเขียนแบบโปรโตไทพ (Prototyped-based Programming) ส่วนมากใช้ในหน้าเว็บเพื่อประมวลผลข้อมูลที่ฝั่งของผู้ใช้งาน แต่ก็ยังมีใช้เพื่อเพิ่มเติมความสามารถในการเขียนสคริปต์โดยฝังอยู่ใน โปรแกรมอื่นๆ
  4. DOM (Document Object Model) เป็นวิธีการอธิบายว่าข้อมูลต่างๆ ในเอกสาร HTML หรือ XML จัดเรียงตัวแบบเชิงวัตถุ (object oriented) อย่างไร DOM เป็นวิธีในการสร้าง API ให้สามารถควบคุมเนื้อหา โครงสร้าง และรูปแบบของเอกสารได้
  5. XMLHttpRequest (XHR) เป็นเอพีไอที่สามารถเรียกใช้ได้จาก จาวาสคริปต์ และภาษาสคริปต์อื่นๆ ในการแลกเปลี่ยน และปรับรูปแบบ XML จากเว็บเซิร์ฟเวอร์ โดยใช้ HTTP ซึ่งสร้างการเชื่อมต่อระหว่างเว็บเบราว์เซอร์ (Client-Side) กับ เว็บเซิร์ฟเวอร์ (Server-Side)
  6. XML (Extensible Markup Language) ซึ่งเป็นภาษามาร์กอัปสำหรับการใช้งานทั่วไป พัฒนาโดยW3C โดยมีจุดประสงค์เพื่อเป็น สิ่งที่เอาไว้ติดต่อกันในระบบที่มีความแตกต่างกัน (เช่นใช้คอมพิวเตอร์มี่มีระบบปฏิบัติการคนละตัว หรืออาจจะเป็นคนละโปรแกรมประยุกต์ที่มีความต้องการสื่อสารข้อมูลถึงกัน) นอกจากนี้ยังเพื่อเป็นพื้นฐานในการสร้างภาษามาร์กอัปเฉพาะทางอีกขั้นหนึ่ง XML พัฒนามาจาก SGML โดยดัดแปลงให้มีความซับซ้อนลดน้อยลง XML ใช้ในแลกเปลี่ยนข้อมูลระหว่างเครื่องคอมพิวเตอร์ที่แตกต่างกัน และเน้นการแลกเปลี่ยนข้อมูลผ่านอินเทอร์เน็ต

http://www.narisa.com/forums/index.php?s=&showtopic=9930&view=findpost&p=75948 ระดับการใช้งาน AJAX

จารูปภาพอธิบายได้ดังนี้
Low level: พวกกล่องๆที่อยู่ด้านล่างของภาพ ซึ่งหมายถึงเป็นพื้นฐานของกล่องบนๆ โดยกล่องบนๆจะเป็นการเขียนโปรแกรมโดยมาเรียกกล่องล่างๆอีกที
High level: พวกกล่องที่อยู่บนๆ ซึ่งหมายถึงการเขียนโปรแกรมระดับสูงโดยไม่จำเป็นต้องรู้เรื่องในส่วนของรายละเอียดการทำงานมาก

- XMLHttpRequest: เป็นส่วนที่ใช้สำหรับการติดต่อระหว่าง Server-Client
- Remoting Toolkit: เป็น library javascript โดยกล่องในชั้นนี้จะห่อ XMLHttpRequest และพวก iframe ซึ่งทำให้เราไม่ต้องไปเขียน Javascript เองจากศูนย์ครับ
- UI Toolkit: อันนี้เริ่มสะดวกแล้วครับ เป็นพวก widgets ต่างๆ (ยังลักษณะเป็น library javascript อยู่) แต่เราไม่ต้องเขียนการติดต่อเอง แต่จะมาเป็น class javascipt เลย มีคำสั่งทั่วๆไปที่เรานิยมใช้กัน เช่น Auto compelte, Auto fill, YFT, Validation, ฯลฯ
- Ajaxian Framework: อันนี้ยิ่งกว่า UI Toolkit อีกครับ เพราะจะเป็นพวก Web Frameworks เจ้าต่างๆที่ทำ Tag ที่ embeded UI Toolkit เข้ามา สรุปคือ คนใช้จะไม่รู้ด้วยซ้ำว่าตัวเองกำลังทำ AJAX ซึ่งตรงนี้เป็นทั้งข้อดีและข้อเสีย เพราะเราปรับแต่งเองได้ลำบาก (อะไรที่เค้าห่อมาให้แล้ว จะลงไปแกะแล้วแก้เองมันก็ยาก จริงไหมครับ?) อีกกรณีที่พวกนี้จะไม่เหมาะคือ สำหรับการศึกษาครับ


AJAX Framework

1. Java Script
- PrototypeJShttp://www.subhajai.com/ytpb/tag/prototype-js/
- http://wana.exteen.com/20080630/ajax-jquery jQuery
- Scriptaculous
- Dojo Toolkit
- Ext

- Mootools

- YUI [ Yahoo UI Library ]

2. Java
- ZK Framework
- DWR
- Echo
- Google Web Toolkit

3. PHP
- Sajax
- Xajax

Last 5 posts by nolifelover

One Response to “RIA ถึงกึ๋น AJAX”

» You can leave a response or Trackback .

  1. Emperor_bear Says:

    It’s very interesting.

» Trackbacks/Pingbacks

Leave a Reply