Monday, December 15, 2008

Rich Internet Application

Nói đơn giản, Rich Internet applications là những ứng dụng (application) chạy trên mạng máy tính (cụ thể là Internet) mà có nhiều tính năng (rich features) như là ứng dụng chạy stand-alone trên máy không nối mạng (thường gọi là desktop application) .


=== Sự ra đời của RIA ===

Từ những ngày khởi thủy của những ứng dụng trên máy tính đều được thực hiện trên các máy tính lớn (mainframe). Các máy trạm chỉ làm nhiệm vụ hiển thị thông tin được xử lý từ các mainframe. Sau đó, tốc độ phát triển phần cứng cho các máy trạm (terminals - từ đây ta sẽ gọi chung là clients , mặc dù không đúng lắm ) nhanh như vũ bão. Từ tốc độ xử lý, hệ thống lưu trữ, bộ nhớ đến các thành phần khác dành cho clients đều phát triển rất nhanh.Như vậy, nếu chỉ dành toàn bộ việc tính tóan cho mainframe, và các clients chỉ để hiển thị thông tin sẽ vô cùng lãng phí tài nguyên.

Sau đó đến giai đoạn phát triển của các ứng dụng dạng client/server. Lại có vấn đề về hệ thống phân tán. Sẽ mất nhiều công sức cho việc cài đặt, bảo dưỡng các ứng dụng trên clients. Rồi việc đảm bảo các ứng dụng trên clients phải tương thích với các platforms khác nhau.

Vào những năm 90, internet ra đời. Việc sử dụng các web browsers cho các thin clients được áp dụng rất mạnh mẽ và hiệu quả. Nhưng (lại nhưng) kiểu lập trình page-to-page, khiến các nhà phát triển ứng dụng rất khó khăn, mệt mỏi và có rất nhiều hạn chế. Rồi các giao diện người dùng đơn điệu, không hiệu quả. Để cố gắng khắc phục những nhược điểm này, RIA đã ra đời. Vậy RIA có những khả năng gì?
(Về định nghĩa, xin xem lại ở đầu bài này)


=== Khả năng của RIA ===

Có khả năng tương tác với DOM (Document Object Model), xây dựng những ứng dụng chạy trên nhiều loại browsers và platforms.

Có khả năng sử dụng được các đối tượng trên server như web services hay những công nghệ tương tự khác, làm cho các ứng dụng trên clients có thể kết nối với server minh bạch hơn, dễ dung hơn.

Có khả năng làm việc “offline”. Dữ liệu được đưa về clients, xử lý tại clients, sau đó trả lạ cho server, tránh việc quá tải đường truyền cũng như hệ thống xử lý của server.


=== Các khuynh hướng xây dựng RIAs ===

Hiện nay có 4 trường phái xây dựng RIAs : đầu tiên là Ajax (Asynchronous Javascript and XML) : sử các thư viện JavaScript như Dojo, OpenRico, Backbase và Yahoo ToolKit, etc . Tiếp theo là RIAs trên nền Flash Player với các công cụ như Flex, OpenLaszlo ( đây là công cụ Open source). Thứ 3 là Windows Presentation Foundation (WPF) sử dụng .NET framework 3, trong đó quan trọng là Silverlight. Cuối cùng là JavaFX, kết hợp với các công cụ GUI như : AWT/Swing, và Eclipse RCP (SWT/JFace). Trong đó, dường như WPF và JavaFX nhắm vào ứng dụng desktop hơn là RIAs, mặc dù chúng đều có thể phát triển cho RIAs.


Ajax : là 1 thuật ngữ. Nó được các nhà phát triển kết hợp từ nhiều công cụ (HTML,DHTML, Javascript), công nghệ, để chuyển dữ liệu từ server tới client mà không phải reload lại page. Thực ra, trước đây IFrames đã làm được những công việc này. Gần đây, Java script sử dụng XMLHttpRequest để thay thế applets, Iframe.


Flash : Là nền tảng để triển khai RIAs. Trước đây, flash được phát triển nhằm mục đích phục vụ xây dựng animations. Sau nhiều thập kỷ thành công, tới nay có tới 97% (theo Adobe Flex 3 : Training from the Source) các web browsers có cài đặt flash. Adobe nhận ra rằng, với flash có thể làm nhiều hơn việc chỉ phát triển animations. Vì thế Flex đã ra đời.

OpenLaszlo : là phần mềm open source với nền tảng phát triển là Javascript và XML và chạy trên nền flash. Các ứng dụng cũng được biên dịch thành các files SWF. Vì là công cụ open source nên Laszlo cũng gắn bó chặt chẽ với LAMP (Linux, Apache, MySQL và PHP).

Flex : (vì Flex là cái chúng ta đang quan tâm nên mình tách riêng ra 1 mục) được xây dựng với nền tảng là Eclipse. Flex 1 là phần mềm open source. Tuy nhiên, vào giữa năm 2006, Adobe đã thương mại hóa Flex 2, với những tính năng và ưu điểm vượt trội bản Flex 1. Gần đây, Adobe đã chính thức phát hành Flex 3 có những phần đáng chú ý như : Adobe AIR, cải thiện đáng kể hiệu năng của những files SWF. Có khả năng tích hợp các middle layers ngay trong ứng dụng như : PHP, ColdFusion, WebService, Flex Data Server (hay còn gọi là FDS). Từ phiên bản Flex 2 trở đi, các ứng dụng sử dụng ActionScript 3 và chạy trên nền Flash Player 9. Flex cho miễn phí Flex SDK, cũng như AIR SDK, chỉ thương mại Flex Builder (với giá bản full của Flex Builder 3 Pro là 699$). Thêm nữa, Flex là sự kết hợp không thể tách rời của ngôn MXML và ActionScript.


Windows Presentation Foundation (WPF) : là 1 tập hợp các công cụ để xây dựng các ứng dụng RIAs trên nền Windows.

WPF : nền tảng để xây dựng và chạy RIAs.
XAML : ngôn ngữ xây dựng nên RIAs.
Visual C# : IDE để viết ra RIAs


Java (JavaFX) : thật đáng tiếc , cho đến nay thì JavaFX vẫn chưa làm được gì nhiều và có vẻ đang tụt lại đáng kể trong cuộc đua này. Hy vọng Sun dẹp bớt những tham vọng ngu ngốc và hướng tới cộng đồng hơn, khi đó mới có thể hy vọng cạnh tranh thị phần RIA được.



(tạm thế đã , sẽ định dạng bài viết lại sau)

No comments: