Rich Internet application (RIA)http://th.wikipedia.org/wiki/Rich_Internet_application เป็นเว็บแอปพลิเคชันที่มีความสามารถของเดสก์ท็อปแอปพลิเคชัน โดยทั่วไปแล้ว RIA จะทำงานที่เกี่ยวข้องกับส่วนติดต่อผู้ใช้บนเครื่องของผู้ใช้ แต่จะเก็บข้อมูลต่างๆ (เช่น สถานะของโปรแกรม) ไว้บนแอปพลิเคชันเซิร์ฟเวอร์
RIA เทคโนโลยี RIA ในปัจจุบัน
- AJAX (AJAX – Asynchronous JavaScript And XML) เป็นกลุ่มของเทคนิคในการพัฒนาเว็บแอปพลิเคชันเพื่อ ให้ความสามารถโต้ตอบกับผู้ใช้ได้ดีขึ้น โดยการรับส่งข้อมูลในฉากหลัง ทำให้ทั้งหน้าไม่ต้องโหลดใหม่ทุกครั้งที่มีการเปลี่ยนแปลง ซึ่งช่วยทำให้เพิ่มการตอบสนอง ความรวดเร็ว และการใช้งานโดยรวม
- Adobe Flash, Adobe Flex และ Adobe AIR เป็น RIA ที่มาจากค่ายของ ADOBE โดยจะมีทั้งการนำเสนอข้อมูลในรูปแบบโดยการใช้ flash เป็นหลักโดยทั้งหมดจะทำการ compile ออกมาเป็นไฟล์ swf สำหรับการใช้งานกับ flash และในส่วนของ AIR สามารถรนได้บน Desktop โดยตรงโดยไม่จำเป็นต้องผ่าน Browser
- OpenLaszlo เป็นเทคโนลีทางด้านการพัฒนาเว็บแอปพลิเคชั่นอีกตัวหนึ่ง ที่สร้างขึ้นโดยใช้ภาษาตัวเอง(lzx) โดยในส่วนของ server จะสนับสนุน jsp และในการแสดงผลจะแสดงผลในรูปแบบของ flash หรือ DHTML สามารถเลือการแสดงผลได้ โดย
- JavaFX สำหรับเป็นในส่วนของ Application ที่นอกเหนือจากเบราว์เซอร์เหมือนกันกับ AIR หรือ Siverlight แต่เป็นการพัฒนาในสาย Java โดยเป็น RIA ที่ออกมาโดยซันซึ่งเป็นเจ้าของ Java
- Microsoft Silverlight ชื่อก็ไม่ต้องบอกครับว่ามาจากค่ายไหน สำหรับ Silverlight เป็นในส่วนของการพัฒนานอกเหนือจากเว็บเบราเซอร์เช่นกัน โดยลักษณะการทำงานคล้ายกันกับ RIA และ JavaFX
- 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
- XHTML (Extensible HyperText Markup Language) เป็นภาษามาร์กอัปที่มีความคล้ายคลึงกับภาษา HTML แต่จะมีความเข้มงวดในเรื่องโครงสร้างภาษา (syntax) มากกว่า เนื่องจาก HTML นั้นใช้โครงสร้างของ SGML ที่ค่อนข้างยืดหยุ่น ในขณะที่ XHTML นั้นพัฒนาจาก XML ซึ่งเป็นภาษาที่คล้ายกับ SGML แต่เข้มงวดมากกว่า เราสามารถมองว่า XHTML เป็นการแปลง HTML เดิมให้มาอยู่ในโครงสร้างของ XML ก็ได้
- CSS (Cascading Style Sheets) เป็นภาษาสไตล์ชีตใช้ในการจัดรูปแบบของเอกสารที่เขียนในภาษามาร์กอัป CSS เป็นภาษาที่สำคัญตัวหนึ่งในการเขียนเว็บเพจ ซึ่งเขียนในภาษา HTML และ XHTML แต่ก็ยังสามารถประยุกต์ใช้กับใน XML ซึ่งรวมถึง SVG และ XUL ด้วย มาตรฐาน CSS นั้น สร้างโดยกลุ่ม World Wide Web Consortium (W3C)
- JavaScript เป็นภาษาสคริปต์ ทีมีลักษณะการเขียนแบบโปรโตไทพ (Prototyped-based Programming) ส่วนมากใช้ในหน้าเว็บเพื่อประมวลผลข้อมูลที่ฝั่งของผู้ใช้งาน แต่ก็ยังมีใช้เพื่อเพิ่มเติมความสามารถในการเขียนสคริปต์โดยฝังอยู่ใน โปรแกรมอื่นๆ
- DOM (Document Object Model) เป็นวิธีการอธิบายว่าข้อมูลต่างๆ ในเอกสาร HTML หรือ XML จัดเรียงตัวแบบเชิงวัตถุ (object oriented) อย่างไร DOM เป็นวิธีในการสร้าง API ให้สามารถควบคุมเนื้อหา โครงสร้าง และรูปแบบของเอกสารได้
- XMLHttpRequest (XHR) เป็นเอพีไอที่สามารถเรียกใช้ได้จาก จาวาสคริปต์ และภาษาสคริปต์อื่นๆ ในการแลกเปลี่ยน และปรับรูปแบบ XML จากเว็บเซิร์ฟเวอร์ โดยใช้ HTTP ซึ่งสร้างการเชื่อมต่อระหว่างเว็บเบราว์เซอร์ (Client-Side) กับ เว็บเซิร์ฟเวอร์ (Server-Side)
- 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: พวกกล่องที่อยู่บนๆ ซึ่งหมายถึงการเขียนโปรแกรมระดับสูงโดยไม่จำเป็นต้องรู้เรื่องในส่วนของรายละเอียดการทำงานมาก
- 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
- Android icons - January 5th, 2010
- 10 Beautify web forms - January 3rd, 2010
- popup แสดงรูปหรือมัลติมีเดียด้วย clearbox3 - December 12th, 2009
- สร้าง graph ด้วย javascript(TufteGraph) - December 8th, 2009
- แสดงหน้าเว็บด้วย font ที่ต้องการ - December 2nd, 2009

It’s very interesting.