Pages

26 thg 12, 2009

Công nghệ RIA


Ngày nay, các nhà phát triển có khá nhiều lựa chọn khi xây dựng các RIAs (Rich Internet Applications). Trong số những lựa chọn phổ biến nhất có các lựa chọn dựa trên HTML, như Ajax (Asynchronous Javascript and XML), cũng như các tùy chọn dựa trên plug-in như Adobe Flash, Adobe Flex, và Laszlo đều chạy trên nền Flash Player. Một lựa chọn mới từ phía Microsoft xem ra vẫn còn là viễn cảnh, đó là XAML và Windows Presentation Foundation.

Các ứng dụng RIAs hiện nay dựa trên bốn môi trường thời gian chạy (run time) khác nhau. Gồm có Ajax, được hỗ trợ bởi Dojo, OpenRico, Backbase và Yahoo ToolKit; Flash Player được Flex và Laszlo sử dụng; Windows Presentation Foundation (WPF); và Java, được AWT, Swing và Eclipse RCP sử dụng. Xem ra cả hai giải pháp Java và WPF đều đang hướng đến các ứng dụng để bàn hơn là các RIAs, mặc dù cả hai đều có thể được sử dụng cho các RIAs.

Asynchronous Javascript and XML (Ajax)

Một trong số những lựa chọn dễ hiểu nhất là Ajax. Ajax dựa trên các công cụ đã quen thuộc với các nhà phát triển: HTML, DHTML và JavaScript. Ý tưởng đằng sau Ajax là sử dụng JavaScript để cập nhật trang mà không cần phải tải lại. Một chương trình JavaScript chạy trên trình duyệt có thể chèn dữ liệu mới vào trang web hoặc thay đổi cấu trúc bằng cách điều tác HTML DOM mà không cần phải tải lại một trang mới. Các cập nhật có thể bao gồm dữ liệu mới được ngầm tải về từ server (sử dụng XML hoặc các các định dạng khác) hoặc có thể là sự phản ứng lại với tương tác người dùng, như một cú click hoặc hover chuột.

Các dạng đầu tiên của Ajax sử dụng các Java applets cho việc truyền thông từ xa. Khi các công nghệ trình duyệt phát triển, các phương tiện khác, như việc sử dụng các IFrames, đã thay thế các applets. Trong những năm gần đây, XMLHttpRequest đã được đưa vào JavaScript để hỗ trợ truyền dữ liệu mà không cần tải trang mới, applet, hay IFrame.

Ngoài lợi ích ở việc sử dụng các yếu tố đã quen thuộc với các nhà phát triển ứng dụng mạng, Ajax cũng không yêu cầu thêm các plug-in để chạy nó. Ajax hoạt động hoàn toàn dựa trên khả năng sử dụng JavaScript và DHTML của trình duyệt. Tuy nhiên, sự lệ thuộc vào JavaScript của Ajax lại đưa điến một trong những hạn chế mới của nó: Ajax không thể hoạt động nếu người dùng vô hiệu hóa JavaScript trên trình duyệt.

Một vấn đề khác của Ajax là sự hỗ trợ DHTML và JavaScript khác nhau theo từng trình duyệt và từng nền tảng. Đối với các ứng dụng mà nhà phát triển có thể lựa chọn người sử dụng cho nó (như các ứng dụng intranet), Ajax có thể được viết để hỗ trợ một trình duyệt trên một nền tảng cụ thể (nhiều hoạt động thương mại ngày nay có các trình duyệt và hệ điều hành tiêu chuẩn). Tuy nhiên, khi cần mở rộng cho nhiều người dùng (như các ứng dụng extranet và Internet), các ứng dụng Ajax cần phải được kiểm tra (và thường cần phải được điều chỉnh) để đảm bảo rằng chúng chạy như nhau trên tất cả các trình duyệt và hệ điều hành.

Cần chú ý rằng bản thân Ajax không thực sự là một môi trường lập trình. Thực sự nó là một tập hợp của các thư viện JavaScript. Một số các thư viện có chứa các thành phần có thể sử dụng lại được thiết kế để đơn giản hóa các tác vụ thường gặp. Vì Ajax thiếu một nhà phân phối công nghệ tập trung hóa, nên việc tích hợp các thư viện này vào ứng dụng phụ thuộc vào các hãng thứ ba, và tất nhiên kèm theo đó là những nguy cơ của nó.

Flash

Một trong những môi trường thời gian chạy mang tính cạnh tranh trong không gian RIA là nền tảng Flash của Adobe (Flash Platform). Flash Platform hiện đang là đối thủ xứng tầm với Ajax trong việc phát triển các RIAs. Lúc đầu chỉ được viết để làm plug-in chạy các hoạt cảnh, Flash Player đã tiến hóa trong nhiều năm, với mỗi phiên bản được thêm những tính năng mới trong khi vẫn duy trì được thiết kế rất nhỏ gọn. Chỉ trong mười năm qua, Flash Player đã đạt đến độ gần như có mặt ở khắp nơi, với một số phiên bản được cài đặt trên hơn 97% các trình duyệt web trên Internet. Từ năm 2002, Macromedia (giờ đây là một phần của Adobe) đã bắt đầu tập trung phát triển Flash để nó không còn là một công cụ hoạt hình đơn thuần nữa. Và với phiên bản Flash 6, Macromedia đã bắt đầu cung cấp nhiều khả năng hơn cho xây dựng các ứng dụng. Macromedia nhận thức được rằng với sự kết hợp giữa tính phổ biến của player và sức mạnh sẵn có từ ngôn ngữ kịch bản của nó (ActionScript), các nhà phát triển có thể xây dựng các ứng dụng hoàn toàn dựa trên trình duyệt mà vẫn vượt qua được các hạn chế của HTML.

Xây dựng các ứng dụng hướng Flash Player, các nhà phát triển có thể tránh được các không tương thích về trình duyệt và nền tảng. Một trong những tính năng hấp dẫn của Flash Player đó là nội dung và các ứng dụng đã được phát triển cho một phiên bản cụ thể của Flash Player sẽ (thường) chạy được trên mọi nền tảng/trình duyệt hỗ trợ phiên bản player đó. Với một số ít ngoại lệ, đến nay điều này vẫn đúng.

Xét về mặt lịch sử, hạn chế lớn nhất trong việc xây dụng các ứng dụng cho Flash Player đó là môi trường authoring, rõ ràng nó đã được xây dựng như một công cụ hoạt hình cho người dùng sáng tạo nội dung tương tác. Nhiều nhà phát triển muốn xây dựng các RIAs cho Flash Player đã gặp phải trở ngại do không quen sử dụng các công cụ này. Điều này, cùng với việc thiếu vắng tài liệu dạy sử dụng Flash như một nền tảng ứng dụng vào năm 2002, đã làm nhiều nhà phát triển không thành công khi xây dựng các ứng dụng Flash.

Mặc dù Flash Player vẫn còn là một nền tảng tuyệt vời để xây dụng các RIAs, nhưng sự xuất hiện các giải pháp như Laszlo và Flex đã đơn giản hóa rất nhiều quá trình phát triển và giảm số lượng các RIAs được phát triển trực tiếp trong Flash Studio.

Laszlo

Nhận thấy nhu cầu về các công cụ thân thiện hơn cho các nhà phát triển xây dựng các RIAs, Laszlo Systems đã phát triển một ngôn ngữ và trình biên dịch cho phép các nhà phát triển làm việc với các ngôn ngữ quen thuộc mà tứ đó trình biên dịch của họ có thể tạo ra các ứng dụng chạy trên Flash Player.

Giống như Ajax, các ứng dụng Laszlo được xây dựng với JavaScript và XML, nhưng chúng chạy trên Flash Player, vì vậy tạo ra được các trải nghiệm người dùng phong phú của một hệ khách để bàn (desktop client) kết hợp với việc triển khai các tiện lợi của các ứng dụng web truyền thống. Flash Player cũng cung cấp khả năng chạy hầu như trên mọi trình duyệt web và hệ điều hành. Không giống như các ứng dụng Ajax, Laszlo sử dụng một trình biên dịch để biên dịch XML và JavaScript vào một file SWF. Điều này cho phép các nhà phát triển tự do thay đổi các mức độ hỗ trợ JavaScript cho nhiều nền tảng khác nhau.

Một điểm tương tự khác giữa Laszlo và Ajax đó là truy cập dữ liệu thường được thực hiện bằng cách tải XML từ phía server. Với sự xuất hiện gần đây của OpenLaszlo servlet, các ứng dụng Laszlo giờ đây có thể sử dụng các dịch vụ web dựa trên Simple Object Access Protocol (SOAP). Cuối năm 2004, nền tảng này đã trở thành nguồn mở và do đó miễn phí cho việc phát triển và triển khai.

Đến thời điểm này, hạn chế lớn nhất của Laszlo đó là một trong những thế mạnh ban đầu của nó lại dựa trên JavaScript. JavaScript định kiểu lỏng lẻo (loosely typed); hiện thời, nó không hỗ trợ nhiều khái niệm hướng đối tượng nền tảng (chẳng hạn như các lớp thật [true classes]), mà cộng đồng phát triển hiện đang sử dụng. Hạn chế thứ hai là nó không cho phép các nhà phát triển tương tác trực tiếp với các APIs của Flash Player, thay vì thế bạn phải sử dụng các APIs được thể hiện qua các thẻ (tags) và JavaScript API tương ứng.

Là một công cụ mã nguồn mở, Laszlo phù hợp cho những nhà phát triển trên các sản phẩm mã nguồn mở “LAMP” (Linux, Apache, MySQL, and PHP).

Server của Laszlo thế hệ kế tiếp được dự đoán là có khả năng sử dụng cùng ngôn ngữ XML và JavaScript để tạo ra cả các ứng dụng Flash hoặc Ajax. Nếu điều này trở thành sự thật, tập công cụ Laszlo chắc hẳn sẽ rất có giá trị.

Flex

Cũng với nhiều lý do tương đồng với việc phát triển Laszlo, Macromedia đã thực hiện dự án của riêng họ để tạo ra một lộ trình thân thiện hơn cho các nhà phát triển xây dựng các ứng dụng cho Flash Player. Vào năm 2004, Macromedia đã cho ra mắt Flex 1.0 (sau đó là Flex 1.5 và Flex 2.0 vào các năm 2005 và 2006). Về mặt kiến trúc, các ứng dụng Flex tương tự với các ứng dụng Ajax, ở chỗ cả hai đều có khả năng cập nhật động giao diện người dùng, cũng như khả năng gửi và tải dữ liệu chạy nền (send and load data in the background).

Dòng sản phẩm Flex 2 cung cấp các dịch vụ và các công cụ phát triển thế hệ kế tiếp cho phép các nhà phát triển ở khắp mọi nơi có thể xây dựng và triển khai các RIAs trên nền tảng Flash.

Dòng sản phẩm Flex 2 gồm các thành phần sau:

  • ActionScript 3.0 Một ngôn ngữ lập trình hướng đối tượng mạnh mẽ cung cấp sức mạnh cho các khả năng của nền tảng Flash. ActionScript 3.0 được thiết kế để tạo ra một ngôn ngữ phù hợp lý tưởng để xây dựng nhanh chóng các RIAs. Mặc dù các phiên bản ActionScript trước đã cung cấp sức mạnh và tính linh động cần thiết để tạo ra các trải nghiệm người dùng hấp dẫn, nhưng ActionScript 3.0 đã phát triển ngôn ngữ nhiều hơn nữa, tăng cường hiệu năng và tính dễ phát triển để hỗ trợ các ứng dụng phức tạp nhất với các tập dữ liệu lớn và hướng đối tượng đầy đủ, cũng như khả năng sử dụng lại mã.
  • Flash Player 9 (FP9) Được xây dựng trên nền Flash Player 8, thế hệ Flash Player kế tiếp tập trung vào việc tăng cường hiệu năng thực thi mã script. Để đạt được điều này, Flash Player 9 bao gồm một ActionScript Virtual Machine (AVM) mới được tối ưu hóa cao độ và được gọi là AVM2. AVM2 đã được xây dựng lại hoàn toàn để làm việc với ActionScript 3.0. Máy ảo mới này nhanh hơn đáng kể, và hỗ trợ báo cáo lỗi thời gian chạy cũng như khả năng debug được tăng cường rất nhiều. Flash Player 9 cũng bao gồm cả AVM1 chạy ActionScript 1.0 và 2.0 để tương thích với mã hiện có. Không giống như các ứng dụng được xây dựng với JavaScript, Flash Player có khả năng sử dụng tiến trình biên dịch Just In Time (JIT) để chạy nhanh hơn và tiêu tốn ít bộ nhớ hơn.
  • Flex Framework 2 Sử dụng nền tảng được cung cấp bởi FP9 và ActionScript 3.0, framework đã thêm vào một thư viện lớp phong phú cho phép các nhà phát triển dễ dàng sử dụng những kinh nghiệm tốt nhất để xây dựng thành công các RIAs. Flex sử dụng ngôn ngữ dựa trên XML, được gọi là MXML, cho phép các nhà phát triển quản lý theo cách khai báo các yếu tố của ứng dụng. Các nhà phát triển có thể truy cập vào Flex framework thông qua Flex Builder hoặc bộ Flex SDK miễn phí, bao gồm một trình biên dịch và gỡ lỗi command-line, cho phép các nhà phát triển có thể sử dụng bất cứ trình biên tập mã yêu thích của họ mà vẫn truy cập trực tiếp được với trình biên dịch hoặc gỡ lỗi.
  • Flex Builder 2 Một công cụ cung cấp cho các nhà phát triển một môi trường chuyên dụng để xây dựng các RIAs. Được xây dựng dựa trên Eclipse project mã nguồn mở, tiêu chuẩn công nghiệp, Flex Builder 2 cung cấp một môi trường viết mã và gỡ lỗi xuất sắc, một công cụ thiết kế phong phú và hữu ích, và khuyến khích những kinh nghiệm viết mã và phát triển ứng dụng tốt nhất. Một lợi ích khác của nền tảng Eclipse là nó cung cấp các khả năng mở rộng phong phú, vì vậy có thể dễ dàng viết các tùy biến để mở rộng IDE nhằm đáp ứng các nhu cầu hoặc sở thích cá nhân.
  • Flex Data Services 2 (FDS2) Các phiên bản trước của Flex bao gồm các dịch vụ thời gian chạy để hỗ trợ truy cập dữ liệu và tích hợp với các cơ sở hạ tầng server hiện có. Flex Data Services 2 đưa ý tưởng này lên một tầm cao mới bằng cách thêm vào tập các công cụ hiện có các dịch vụ dựa trên thông điệp (message-based services) để đồng bộ hóa dữ liệu qua tất cả các tầng của một ứng dụng. Điều này tăng cường đáng kể hiệu suất làm việc của các nhà phát triển cũng như các khả năng của ứng dụng RIA. Ngoài ra, FDS2 cũng để lộ một cơ sở hạ tầng thông điệp (messaging infrastructure) hùng mạnh, cho phép truyền dữ liệu thời gian thực (real-time data streaming), khả năng thực thi true server-side push, cũng như publish-subscribe messaging. Một tập các tính năng khác của FDS2 liên quan đến khả năng xây dựng và triển khai nhanh chóng các ứng dụng kết nối không thường trực (occasionally connected applications), để người dùng vẫn có dữ liệu làm việc mặc dù không kết nối Internet. Các dịch vụ này giúp đồng bộ hóa dữ liệu khi người dùng kết nối trở lại với Internet.

Windows Presentation Foundation/XAML/Expression

Microsoft công bố họ sẽ cho ra mắt một tập các công cụ cho phép các nhà phát triển xây dựng các RIAs trên nền tảng Windows. Hệ thống mới này gồm có:

  • Windows Presentation Foundation (WPF) (trước đây có tên mã là Avalon). WPF tương tự như Flash Player và Flex frameworks.
  • Extensible Application Markup Language (XAML). Ngôn ngữ dựa trên XML để bạn xây dựng các ứng dụng WPF. XAML tương tự như ngôn ngữ MXML của Flex.
  • C# Ngôn ngữ lập trình được sử dụng để xây dựng các ứng dụng cho WPF, tương tự như ActionScript 3.0 cho các ứng dụng Flex.
  • Microsoft Expression. Một công cụ thiết kế chuyên nghiệp được thiết kế để làm việc với XAML và cho phép các nhà thiết kế tạo ra giao diện người dùng và cách ứng xử trực quan cho các ứng dụng WPF, tương tự như Flash Studio để thiết kế các ứng dụng Flex.
  • Visual Studio. Microsoft công bố các kế hoạch xây dựng phiên bản kế tiếp của Visual Studio làm việc với XAML, WinFX, C# và VB.Net.

Sử dụng các công cụ này, Microsoft đang khuyến khích một dòng làm việc (workflow) trong đó các nhà thiết kế tạo ra các giao diện người dùng hấp dẫn, và sau đó các nhà phát triển có thể thực thi logic hoạt động và truy cập dữ liệu sử dụng Visual Studio. Hiện nay các thành phần của hệ thống trên đều đã ra mắt, ngoại trừ phiên bản kế tiếp của Visual Studio.

(Lược dịch từ Adobe Flex 2: Training from the Source)

0 nhận xét:

Đăng nhận xét

Powered By Blogger