• Thứ Hai, 27/11/2006 11:37 (GMT+7)

    Công cụ Ajax nguồn mở

    Ai có thể cưỡng lại sức hấp dẫn của công nghệ thời thượng AJAX? Để bổ sung công nghệ này cho website cũng không quá khó, hiện có nhiều giải pháp nguồn mở hấp dẫn.

    Ai có thể cưỡng lại sức hấp dẫn của công nghệ thời thượng AJAX? Để bổ sung công nghệ này cho website cũng không quá khó, hiện có nhiều giải pháp nguồn mở hấp dẫn.

    Ý tưởng sử dụng JavaScript có hay không có XML để thêm “tính thông minh” và khả năng tương tác cho trang web đã có từ thời kỳ đầu của web, hiện giờ AJAX là một trong những cách tốt nhất và đơn giản nhất cho công việc này. Các công cụ nguồn mở được xem xét ở đây khá đa dạng đủ để bao trùm thuật ngữ AJAX - Asynchronous JavaScript và XML.

    Chọn 6

    Vượt qua rất nhiều sản phẩm và giải pháp, sáu sản phẩm nổi bật được các tổ chức uy tín nhất hậu thuẫn được chọn: Dojo, Google Web Toolkit, Microsoft Atlas, Open Rico và Prototype, Yahoo AJAX Library và Kabuki AJAX Toolkit của Zimbra. Atlas của Microsoft không phải nguồn mở nhưng mã lệnh bạn tạo với sản phẩm này thuộc quyền sử dụng của bạn.

     

    Công cụ Kabuki của Zimbra có một ví dụ xuất sắc về trình duyệt dữ liệu nhiều khung liên kết với một bảng thông minh có tổ chức cây để lọc dữ liệu.

    Sáu sản phẩm đều cung cấp một số widget (ứng dụng nhỏ có thể chạy trong trình duyệt hoặc chạy độc lập) giao diện người dùng rất hữu ích và các công cụ cơ bản giúp dễ dàng xây dựng ứng dụng AJAX. Chúng rất hấp dẫn với những nhà phát triển muốn thêm một phần mới hay nâng cấp một trang trong ứng dụng hiện có. Ví dụ, nếu muốn thêm một hiệu ứng động hay một bảng dữ liệu động, bạn có thể lấy widget dán vào nơi cần thiết; nói chung chúng đủ tốt để giúp bạn thực hiện các tác vụ cơ bản.

    Tuy nhiên, nếu muốn làm những thứ hơi khác một chút, thường thì bạn phải chỉnh sửa mã lệnh (code). Điều này có vẻ quen thuộc với hầu hết lập trình viên từng dùng mã nguồn mở, nhưng các nhà phát triển dường như thích thứ có sẵn hơn. Nếu có kiến thức về lập trình và có thời gian để khai thác sự linh hoạt của nguồn mở thì các công cụ này là lựa chọn lý tưởng. Nếu không quen lập trình hay không có thời gian để “đào sâu”, bạn nên xem xét đầu tư cho các sản phẩm chuyên nghiệp hơn.

    Dojo

    Đây là dự án AJAX nguồn mở hàng đầu hiện nay. Không hẳn tốt hơn các công cụ khác về một phương diện cụ thể nào đó, nhưng nó có nhiều lựa chọn widget với khả năng tùy biến cao. Có thể hiểu vì sao cả IBM và Sun gần đây đã ký kết hỗ trợ dự án này.

    Website của dự án và mã nguồn của nó có ưu điểm của một dự án nguồn mở phong phú, được đội ngũ các nhà phát triển đầy nhiệt huyết điều hành. Cơ chế quản lý này khuyến khích mọi thành phần tham gia miễn là đáp ứng triết lý cơ bản của Dojo là đơn giản và dễ hiểu.

    Dojo có trình soạn thảo xuất sắc, nhiều lựa chọn hiệu ứng động, một số công cụ kéo-thả và nhiều thứ khác nữa. Phiên bản mới nhất 0.3.1 có công cụ lấy bản đồ từ Google và Yahoo.

    Bảng HTML của Dojo giám sát chuột và thực hiện sắp xếp khi đầu đề cột được nhấn.

     

    Tuy nhiên, có vẻ như Dojo cũng gặp vấn đề về chất lượng không ổn định phổ biến của các dự án nguồn mở. Một số phần của thư viện Dojo được lập tài liệu và có trang mẫu minh họa tốt, nhưng những phần khác thì để nhà phát triển tự mày mò.

    Việc bổ sung một ít tiện ích của Dojo vào ứng dụng web khá đơn giản. Chương trình được phát triển dạng môđun, cho phép ứng dụng web chỉ cần nạp các thành phần cần thiết. Trong nhiều tình huống, tất cả những gì bạn cần là bổ sung thuộc tính DojoType vào mã lệnh HTML của mình, lệnh này sẽ thực hiện công việc khi nạp trang.

    Dojo tiếp tục cải tiến khi nó lôi cuốn thêm nhiều nhà phát triển, nhiều ý tưởng và chương trình từ các dự án khác. Có cơ sở để hy vọng dự án này ngày càng có nhiều tính năng phức tạp hơn.

    Zimbra Kabuki AJAX Toolkit

    Khi Zimbra xuất hiện như một giải pháp quản lý email và lịch làm việc hoàn chỉnh cho một tổ chức, nó gây ấn tượng với việc sử dụng AJAX phức tạp ở mọi cấp. Mọi widget đều được thiết kế để đem lại cảm giác “động” thật sự.

    Trọn bộ sản phẩm được cung cấp theo một bản quyền nguồn chung, nhưng công cụ Ajax được Zimbra tách thành một sản phẩm riêng gọi là Kabuki và cấp phép sử dụng theo Apache hay Mozilla. Sản phẩm này bao gồm một số công cụ và widget thiết thực nhưng không có đủ tất cả như bộ sản phẩm lớn. Điều này không có nghĩa công cụ của Zimbra yếu: Kabuki có trình soạn thảo xuất sắc, thư viện cây hay và hệ thống dàn trang có thể xây dựng giao diện người dùng phức tạp.

    Sản phẩm của Zimbra không có được các hiệu ứng động hào nhoáng hay phức tạp như Dojo hay thư viện AJAX của Yahoo. Các widget của Kabuki ít chức năng và cũng khá cơ bản. Có thể khắc phục một số hạn chế này bằng style sheet (css) cộng với kỹ năng thiết kế, lập trình.

    Google Web Toolkit

    Công cụ của Google có điểm dị biệt. Trong khi các công cụ khác viết bằng JavaScript thì Web Toolkit của Google lại viết bằng Java rồi dịch sang JavaScript. Việc này không có gì phức tạp vì JavaScript khá gần gũi với Java. Tuy nhiên, việc dịch mã là giải pháp thú vị mà các nhà lập trình Java vừa thích lại vừa ngại vì JavaScript làm việc hơi khác với Java.

    Bộ công cụ này có nhiều widget thông dụng nhưng không có các hiệu ứng động hào nhoáng. Sản phẩm của Google dễ sử dụng, nó được thiết kế để xây dựng ứng dụng hoàn chỉnh chạy trong trình duyệt.

     

    CÔNG CỤ AJAX THƯƠNG MẠI: NÂNG CẤP CUỘC CHƠI

     
     

    Các sản phẩm nguồn mở có thể cạnh tranh với sản phẩm thương mại? Về tổng thể thì không nhưng về một số tính năng cụ thể thì có.
    Trước hết, các công cụ AJAX chuyên nghiệp thường đi kèm môi trường phát triển (IDE) kéo-thả. Ví dụ, Tibco General Interface (infoworld.com/3552) và JackBe (infoworld.com/3234) có IDE hoàn chỉnh chạy trong trình duyệt. Các công cụ nguồn mở hiện tại không có được sự tươm tất này, nhưng chúng có thể chạy theo - Microsoft Atlas được thiết kế để tích hợp với IDE của chính hãng, và công cụ Java-to-JavaScript của Google làm việc tốt với các IDE Java như Eclipse.
    Các sản phẩm thương mại cũng đi kèm với trình bẫy lỗi tinh vi. Chẳng hạn, Backbase cố tình bẫy lỗi tích hợp mở ngay ở website của người dùng. Nó được đóng gói chung với ứng dụng trong quá trình kiểm tra và được loại bỏ về sau. Việc bẫy lỗi các sản phẩm AJAX nguồn mở không thật thuận tiện. Dojo và Yahoo có thể ghi nhận các thông điệp để giám sát, còn Google có môi trường hoàn chỉnh chạy trên PC.
    Với ứng dụng quan trọng thì công cụ thương mại là giải pháp thích hợp. IceSoft và Nexaweb (infoworld.com/2257) cung cấp các công cụ client phong phú cho phép bạn nhúng thành phần web vào phần mềm client, cho phép bạn tận dụng tất cả kiến thức HTML và JavaScript để xây dựng ứng dụng client. Kapow (infoworld.com/4035) cũng cung cấp công cụ xử lý màn hình tinh vi với thư viện JavaScript nhúng.
    Có thể thực hiện những việc tương tự với các công cụ nguồn mở khác nhau, nhưng sẽ phải tốn nhiều công sức hơn.

     

    Open Rice và Prototype

    Một trong những dựa án AJAX nổi tiếng, hoàn toàn nguồn mở được tạo nên từ liên minh hai dự án Open Rico và Prototype. Rico và Prototype giống nhau ở điểm chú trọng đến các hiệu ứng động và khác nhau ở một số công cụ thiết thực.

     

    Công cụ AJAX của Google không chỉ dịch Java thành JavaScript mà còn biến đổi các mô hình lập trình như thiết kế giao diện của AWT và Swing thành trang web.

    Thư viện Prototype là bộ công cụ cơ bản nhắm đến các nhà lập trình. Nó có các hàm chức năng đơn giản, tất cả đều được đặt tên một chữ để tăng tốc độ tải về. Đây là quy tắc hay cho các hàm thường dùng và bạn cũng có thể áp dụng để viết mã lệnh chương trình của mình.

    Rico là tập hợp một số widget và hiệu ứng động phổ biến được xây dựng trên Prototype. Không nhất thiết sử dụng Rico với Prototype, nhưng kết hợp cả hai giúp xây dựng ứng dụng AJAX dễ dàng hơn nếu bạn muốn các hiệu ứng mà chúng cung cấp.
    Đặc biệt, LiveGrid của Rico được đánh giá cao. Đây là tập hàm cải tiến bảng HTML cho phép lấy dữ liệu tự động bên dưới khi người dùng cuộn qua các mẩu tin, giúp hiển thị nhanh khối lượng dữ liệu lớn mà không phải nạp từng trang. Rico thường được xem như phiên bản rút gọn của Dojo nhưng có một số tính năng tốt hơn, như hỗ trợ việc kéo-thả.

    Microsoft Atlas

    Thư viện Microsoft Atlas miễn phí, nhưng việc áp dụng nó không đơn giản nếu không dùng bộ công cụ Visual Studio của Microsoft. Microsoft hẳn rất vui nếu bạn chịu khó tải về hàng trăm MB các công cụ phát triển trước khi cài đặt thư viện JavaScript của Atlas.

    Bản thân thư viện này không yêu cầu nhiều tài nguyên hệ thống, hỗ trợ nhiều trình duyệt như Firefox và Safari nhưng có hạn chế. Bạn có thể bắt gặp trong tài liệu Atlas nhiều câu ghi “Due to a known issue with Atlas on Safari” (có vấn đề với Safari) và cũng có những câu ghi tương tự cho Firefox. Tuy nhiên, đây thường là các vấn đề nhỏ như hộp pop-up biến mất khi người dùng nhấn chuột bên ngoài.

    Bộ widget của Atlas hơi ít so với các thư viện khác: không có trình soạn thảo đáng giá và chỉ có vài công cụ hiệu ứng động. Thay vào đó, Atlas tập trung vào việc tích hợp AJAX với server, cụ thể là các dịch vụ web trên nền .NET. Tài liệu và các ví dụ mẫu cho việc này rất tốt. Có một số cơ chế để lấy thông tin từ CSDL và định dạng ở client, chủ yếu dùng C# làm việc trên server và tất cả dều kết hợp tốt với JavaScript trên client.

    Atlas có ý nghĩa như là thư viện mở rộng cho nền tảng .Net hơn là công cụ để thực hiện những tính năng hấp dẫn ở client. Nếu bạn đã đầu tư nhiều cho .Net và muốn khai thác hạ tầng dịch vụ web của nền tảng này thì Atlas là giải pháp tốt để thêm sức sống cho các trang web của bạn.

    Yahoo AJAX Library

    LiveGrid của Rico cho phép tạo bảng HTML hoạt động giống một cửa sổ trên CSDL lớn. Nó chỉ tải về dữ liệu vừa với trang, chờ khi bạn cuộn trang để tải về các hàng kế.

     

    Thư viện AJAX của Yahoo không chỉ là bộ tuyển tập đầy đặn các hàm mà còn là một minh hoạ tốt về cách thức phát hành phần mềm nguồn mở. Mã lệnh bổ sung nhóm widget then chốt vào ứng dụng web của bạn được dồn vào 1 file zip, Yahoo còn cung cấp nhiều ví dụ mẫu và gợi ý thiết kế. Nhiều hàm có đến 6-10 ví dụ khác nhau, tất cả đều có code và trang minh hoạ.

    Cách tiếp cận này khác biệt với các sản phẩm khác vì Yahoo muốn thúc đẩy triết lý thiết kế dễ hiểu cùng với việc cung cấp mã lệnh. Chiến lược này quan trọng vì người dùng thông thường vẫn cần được huấn luyện về hoạt động của các ứng dụng AJAX. Các nhà thiết kế của Yahoo muốn đảm bảo các widget AJAX hoạt động ổn định và tài liệu rất hoàn chỉnh của họ phục vụ cho việc này.

    Tập các tính năng của thư viện Yahoo phong phú nhưng không bằng Dojo. Có nhiều công cụ thông thường, như thư viện hiệu ứng động và thư viện cây, nhưng chỉ có vài công cụ quan trọng như trình doạn thảo hay bảng động.

    Yahoo có bổ sung một số đặc tính hay. Chẳng hạn thư viện hiệu ứng động cũng làm việc với một số công cụ chuẩn, cho phép thực hiện tự động một số hành vi của chương trình HTML. Hay như thư viện quản lý Connection sẽ tự động nối kết tất cả dữ liệu từ form và định dạng thích hợp cho ứng dụng GET hay POST.

    Mặc dù thiếu công cụ soạn thảo, nhưng những sự tương tác này đem lại cho thư viện Yahoo vẻ uyển chuyển hơn so với nét “thô ráp” của Open Rico và Zimbra. Khi cần đụng tới mã lệnh với Yahoo Toolkit, bạn sẽ có ấn tượng công ty này đã đầu tư nhiều công sức cho việc tối ưu các hàm chức năng và cung cấp các thư viện thật mạnh.

    Sử dụng

       

    Trang bị công cụ AJAX
    Tải về và tìm hiểu nhiều công cụ nguồn mở để chọn những thứ tốt nhất.
    • Dojo: dojotoolkit.org
    • Google Web Toolkit: code.google.com/webtoolkit
    • Microsoft Atlas: atlas.asp.net
    • Open Rico and Prototype: openrico.org và prototype.conio.net
    • Yahoo AJAX Library: developer.yahoo.com/yui
    • Zimbra Kabuki AJAX Toolkit: zimbra.com/community/kabuki_ajax_toolkit_download.html
    Tham khảo thêm danh sách các công cụ AJAX nguồn mở tại infoworld.com/4322.

     

    Các công cụ AJAX nguồn mở vẫn đang phát triển. Google, Microsoft và Yahoo có lẽ sẽ vẫn tiếp tục kiểm soát chặt dự án AJAX của họ, nhờ vậy tài liệu sẽ luôn tốt. Trong khi đó, các dự án không chịu sự kiểm soát của một công ty nào thường có nhiều biến đổi khi có thêm nhiều người tham gia, sẽ tiếp tục có những ý tưởng sáng tạo nhất và cung cấp các widget hay nhất với tốc độ nhanh nhất.

    Thật khó đề cử một thư viện cụ thể nào là tốt nhất vì đa phần tính năng hữu ích của các công cụ phụ thuộc vào phong cách lập trình và nhu cầu của bạn. Tốt nhất bạn nên tìm hiểu qua các công cụ và chọn những thứ mà bạn cần để lắp vào ứng dụng web của mình.

            Ưu     Khuyết     Tổng kết  
     

    Dojo

       

    • Có nhiều widget hào nhoáng và phức tạp.
    • Hệ thống phân cấp giúp tăng tốc độ nạp.
    • Được các công ty lớn hỗ trợ như IBM, Sun...

       

    Tài liệu không đầy đủ

       

    Có trình soạn thảo xuất sắc, nhiều lựa chọn hộp động, một số công cụ kéo thả và rất nhiều widget có thể tùy biến. Đây là dự án nguồn mở phổ biến và được đóng gói tốt.

     
     

    Google Web Toolkit

       

    • Cơ chế dịch tốt giúp dễ tích hợp với Java.
    • Có nhiều loại widget cơ bản.
    • Xây dựng ứng dụng dạng Swing hoàn chỉnh bằng Java và chạy với JavaScript

       

     Việc sử dụng Java khiến khó tích hợp với các ứng dụng JavaScript

       

    Là công cụ tuyệt vời để chuyển chương trình Java dạng Swing thành ứng dụng web chạy với JavaScript. Việc dịch Java/JavaScript có thể gây lo ngại về khả khả năng tích hợp, nhưng hệ thống Google rất dễ dùng.

     
     

    Microsoft Atlas

       

    • Việc tích hợp chặt chẽ với .Net giúp dễ làm việc với máy chủ .Net.
    • Tài liệu xuất sắc
    • Các thư viện nói chung hỗ trợ nhiều trình duyệt.

       

    • Tích hợp hơi chặt với các công cụ phát triển của Microsoft.
    • Có chút trục trặc với Safari và Firefox.

       

    Là tập các hàm giúp cho việc việc tương tác với .Net server đơn giản. Chủ yếu tập trung vào việc tích hợp AJAX với server chứ không phải những thứ hào nhoáng ở client. Nếu đã đầu tư cho .Net, Atlas là giải pháp tốt để tận dụng hạ tầng dịch vụ web của nó.

     
     

    Open Rico và Prototype

       

    • mã lệnh dễ hiểu
    • Có nhiều widget phức tạp.

       

    Không có phần quản lý thư viện

       

    Rice và Prototype giống nhau ở điểm chú trọng đến các hiệu ứng động và khác nhau ở một số công cụ thiết thực. Thư viện Prototype là một tập các công cụ cơ bản dành cho lập trình viên. Rico là tập các widget và hiệu ứng động phổ biến được xây dựng trên Prototype.

     

     

    Yahoo AJAX Library

     

     

    • Tài liệu tuyệt vời tập trung vào các ví dụ cho mã lệnh và thiết kế.
    • Các công cụ có giao diện dễ dùng cho lập trình viên mới bắt đầu và dễ hiểu cho người thiết kế HTML.
    • Tính năng động phức tạp.

     

     

     Thiếu các widget lớn, như trình soạn thảo hay bảng động.

     

     

    Là tập các công cụ có tài liệu tốt và các widget xử lý nhiều tác vụ đơn giản. Nó có nhiều công cụ chuẩn, như thư viện hiệu ứng động và thư viện cây, nhưng có ít công cụ quan trọng như trình soạn thảo văn bản hay bảng động.

     

     

    Zimbra Kabuki AJAX Toolkit

       

    • Các widget hiệu quả và các ví dụ dễ hiểu.
    • Có mã nguồn hoàn chỉnh cho ứng dụng lớn

       

     • Không có hệ thống quản lý thư viện đơn giản
    • Tài liệu không đầy đủ.

       

    Là tập các công cụ quan trọng dùng để xây dựng ứng dụng trên client, Kabuki của Zimbra không có các hiệu ứng động phức tạp như một số công cụ AJAX khác nhưng nó có một trình soạn thảo xuất sắc và thư viện cây tốt.

     

    Phương Uyên
    Nguồn: InfoWorld

    Từ khóa: Phương Uyên
    ID: A0611_111