(Post 06/12/2006) 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.
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. |
|
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.
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.
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
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
(theo PC World VN) |