Bài Viết Khoa Học Kỹ Thuật

Ajax: Một cách tiếp cận mới cho các ứng dụng viết cho mạng internet (Jesse James Garrett)

hoctro

Các bài viết khác của Hoctro


Đây là bản dịch của bài viết đã cho ra đời thuật ngữ Ajax, mà các ứng dụng "hot" trên mạng như Goggle Maps, Google Suggests đang xử dụng. Xin hân hạnh giới thiệu với bạn đọc Đặc Trưng - Học trò.






Ajax: Một cách tiếp cận mới cho các ứng dụng viết cho mạng internet
 
Tác giả: Jesse James Garrett (18 tháng 2, 2005) Người dịch: Học Trò
 
Công việc thiết kế các ứng dụng trên mạng hiện nay có thể được coi là quyến rũ nhất, nếu so sánh chúng với các thảo trình ứng dụng khác cùng chung tính năng tương tác với người sử dụng (interactive design.) Nói cho cùng, bạn có nhớ lần cuối ai đó say mê mô tả cho bạn về một thiết kế tương tác mà không được viết cho mạng không? (OK, trừ ra cái iPod.) Tất cả các ứng dụng “xịn” và đầy tính sáng tạo đều được viết cho mạng internet hết cả!
  Tuy vậy, các thảo chương viên đang viết các chương trình cho mạng internet đều có chút ganh tị khi nghĩ đến các đồng nghiệp đang viết các chương trình dùng trên máy tính (như Word, Excel – người dịch – nd.) Các chương trình này có rất nhiều tính năng, và cũng tương tác rất nhanh lẹ với người dùng chứ không như các ứng dụng trên mạng. Thực vậy, sự đơn giản của những ứng dụng trên mạng là một con dao hai lưỡi, vì chúng vừa làm cho mạng sinh sôi nảy nở thật mau lẹ, mà chúng cũng tạo ra một khoảng cách lớn trong cảm giác của người tiêu dùng giữa chúng (chậm chạp) với các ứng dụng máy tính (nhanh lẹ và nhiều tương tác.)  
Khoảng cách ấy đang được thu hẹp lại. Bạn hãy dùng thử “Goggle Suggest” ( http://www.google.com/webhp?complete=1&hl=en .) Hãy để ý cái khung nhỏ dưới ô chữ bạn đang đánh vào, nó tự cập nhật và cho bạn các từ nó thấy phù hợp nhất – gần như cùng khi bạn đang khỏ vào bàn phím! Giờ thì bạn thử dùng “Google Maps” ( http://maps.google.com/ .) Hãy thử phóng to (hay thu nhỏ) bản đồ. Thử dùng con trỏ đè hình xuống rồi xê đi xê lại xem sao? Hình ảnh trên bản đồ có vẻ như liên tục một cách bất tận, mà bạn cũng chẳng phải chờ để trang trắng đi rồi tự cập nhật (reload) như xưa.  
“Goggle Suggest” và “Goggle Maps” là hai thí dụ của một cách tiếp cận mới trong việc viết ứng dụng mạng mà tại “Adaptive Path” chỗ chúng tôi đang làm việc gọi nôm na là “Ajax”. Đây là tên tắt của “Asynchronous JavaScript + XML”. Cách viết ứng dụng kiểu này đại diện cho một khúc ngoặt căn bản trong suy nghĩ về những ứng dụng có thể sáng chế cho mạng.  
Định nghĩa Ajax
 
Ajax không là một công nghệ (technology.) Nó thực ra bao gồm tới ba, bốn công nghệ khác nhau, đã rất thành công khi đứng riêng rẽ, nhưng nay được kết hợp sử dụng chung với nhau trong những cách mới mẻ và quyền năng hơn nhiều. Các công nghệ ấy là:
 
-         Cách trình bày trang mạng theo tiêu chuẩn chung của thế giới: dùng XHTML và CSS;
-         Cách hiển thị và tương tác rất năng động với việc dùng Document Object Model (mô hình tư liệu như là các vật thể - DOM);
-         Giao tiếp và thay đổi dữ liệu dùng XML (eXtensible Markup Language) và XSLT (eXtensible Stylesheet Language and Tránformation);
-         Lấy thông tin một cách không đồng bộ (asynchronous data retrieval) bằng cách dùng XMLHttpRequest;
-         Và sau cùng dùng ngôn ngữ JavaScript để nối các công nghệ trên với nhau.  
Một mô hình kinh điển (classic) cho một ứng dụng mạng thường hay theo cách như sau: đa số các hoạt động của người dùng trên trang tạo ra một lệnh yêu cầu (HTTP request) gửi về lại máy chủ trên mạng (web server.) Máy chủ này sau đó xử lý thông tin – lấy dữ liệu, làm toán, hoặc tương tác với các chương trình tuơng đối lỗi thời khác (legacy systems) – rồi sau cùng trả một trang HTML khác tới người dùng. Đây là một mô hình dựa theo cách dùng nguyên thuỷ của mạng – là một trang dùng để chứa các liên kết khác (links) để dễ dàng di chuyển từ trang này sang trang nọ. Tuy nhiên, những ai đã đọc và hâm mộ quyển “Các Thành Tố Tạo Nên Cảm Giác của NgườI Tiêu Thụ” (The Elements of User Experience - viết bởi chính tác giả bài viết này -nd.)  đều biết rõ rằng làm cho mạng internet phổ biến hơn nhờ dùng “hypertext” (chữ có liên kết) là một chuyện, còn làm cho người dùng thoải mái khi tương tác với ứng dụng thì lại là chuyện khác.
     
Hình 1 – mô hình cũ dùng cho mạng (trái) so sánh với mô hình Ajax.  
Mô hình cũ xem ra rất thành công về mặt kỹ thuật, nhưng nó không làm cho người dùng cảm thấy dễ chịu. Trong khi máy chủ (server) xử lý dữ liệu, thì người tiêu dùng làm gì, bạn thử đoán xem? Đúng vậy, người tiêu dùng khoanh tay ngồi chờ! Rồi bước kế tiếp, kế tiếp, họ chờ thêm chút nữa, rồi chút nữa.
  Ta sẽ dễ dàng nhận ra là khi ta viết một ứng dụng cho máy tính (desktop software,) ta không bao giờ muốn để người dùng phải chờ đợi. Một khi giao diện chính hiện ra, ai lại để người dùng phải chờ mỗi khi cần tương tác với máy chủ? Thật ra, tại sao lại để người dùng biết được ứng dụng đang đi lấy dữ liệu từ máy chủ?
  Mô hình Ajax khác mô hình cũ như thế nào?
  Một ứng dụng Ajax loại bỏ cái khái niệm chạy-dừng-chạy-dừng tương tác vốn có trên mạng bằng cách tạo ra một ứng dụng trung gian – một cỗ máy Ajax – giữa người sử dụng và máy chủ trên mạng (server.) Nhìn sơ qua ta tưởng như nếu thêm vào một cỗ máy nữa thì ứng dụng sẽ chậm hơn trước, nhưng thực tế cho thấy sự ngược lại.
  Thay vì phải lấy về và hiển thị một trang mạng khi bắt đầu nối với máy chủ, ứng dụng mạng trên máy của người dùng (browser) sẽ tải về một cỗ máy Ajax – viết bằng JavaScript và được giấu kín trong một khung ẩn (hidden frame.) Cỗ máy này chịu trách nhiệm hiển thị cái giao diện mà người dùng sẽ thấy, cũng như là việc tương tác với máy chủ. Cỗ máy Ajax làm cho những tương tác của người dùng với giao diện diễn ra không đồng bộ (asynchronously.) (Nghĩa là khi ta làm việc gì, chưa chắc ngay tại sát-na đó máy sẽ nghe theo lệnh của ta mà tương tác với máy chủ - mọi chuyện tương tác đều phải thông qua cỗ máy Ajax, cỗ máy này quyết định khi nào cần trao đổi dự liệu với máy chủ - nd) Vì thế, nay thì người dùng chẳng còn phải nhìn vào một giao diện trắng toát hay là cái đồng hồ cát (hourglass) nữa, và chờ bất tận trong khi máy chủ đang xử lý dữ liệu.  

  Hình 2 – Tương tác đồng bộ của mô hình cổ điển (hình trên) và không đồng bộ (hình dưới) cũa mô hình Ajax.  
Mỗi hành động của người dùng, trước kia sẽ tạo ra một “HTTP request,”  nay thì lệnh yêu cầu đó sẽ được gói gọn vào một lệnh gọi (viết bằng JavaScript) gửi tới cỗ máy Ajax. Cỗ máy này sẽ chịu trách nhiệm gửi những phản ứng lại nào từ yêu cầu của người dùng mà không đòi hỏi một tương tác với máy chủ, chẳng hạn như lỗi chính tả, nhào nặn thông tin chứa sẵn từ truớc trong bộ nhớ ở máy người dùng, ngay cả những yêu cầu về di chuyển giữa các trang với nhau. Khi nào cỗ máy cần thông tin cập nhật trên máy chủ để có thể hiển thị được trên giao diện – gửi đi thông tin để xử lý, thêm vào mã để hiển thị giao diện, hay lất về dữ liệu mới, v.v. – khi đó cỗ máy sẽ tự động gửi những thông tin một cách không đồng bộ đó (trường thì dưới dạng XML) đến máy chủ, mà không làm người dùng cảm thấy máy bị “đông cứng” lại (stalled.)
  Ai đang dùng Ajax?
  Google đang đầu tư rất nhiều vào việc phát triển ứng dụng mạng theo hướng Ajax. Tất cả các ứng dụng mới trong năm qua (2004 -nd) như Orkut, Gmail, Google Groups, Goggle Suggest, và Google Maps, thảy đều dùng kỹ thuật Ajax. Các công ty khác cũng theo sát: nhiều tính năng mà người dùng ưa chuộng với “Flickr” đều dùng Ajax, và trang tìm kiếm A9.com của Amazon cũng dùng những kỹ thuật tương tự.  
Những ứng dụng trên chứng tỏ rằng Ajax không chỉ vững vàng và khả thi về mặt kỹ thuật, mà còn có giá trị cao trong các ứng dụng thực tiễn thường nhật. Ajax cũng không là một công nghệ chỉ khả thi trong phòng thí nghiệm. Các ứng dụng Ajax có thể ở nhiều tầm cỡ phức tạp khác nhau, từ việc cỏn con như “Google Suggest” cho tới ứng dụng rất phức tạp như “Google Maps.”
  Tại “Adaptive Path,” từ vài tháng nay chúng tôi cũng có những sáng tạo riêng theo phong cách Ajax, và chúng tôi nhận ra rằng mình đang chỉ mới có những khám phá sơ khai về sự đa dạng và phong phú trong các tương tác cũng như tính năng phản ứng mau lẹ của các ứng dụng Ajax mà thôi. Ajax là một sự phát triển quan trọng và tích cực trong các ứng dụng cho mạng, và sự quan trọng này càng ngày càng gia tăng. Cũng vì rất nhiều thảo trình viên trên thế giới đã thông thạo cách viết các công nghệ thành phần (như đã chỉ ra ở trên – nd,) chúng ta mong đợi được thấy các công ty khác cũng sẽ theo gót Google để thu hoạch các lợi thế cạnh tranh mà Ajax cung cấp.
  Con đường phía trước
  Nhũng thử thách lớn lao nhất trong việc tạo ra một ứng dụng Ajax, tuy vậy, không thuộc về mặt kỹ thuật. Những công nghệ thành phần của Ajax đều đã trưởng thành, ổn định, và được thông hiểu kỹ càng. Thay vào đó, những thách thức lại nằm trong suy nghĩ của những thảo chương viên: họ phải xoá đi hết mọi khái niệm trước kia về sự giới hạn của ứng dụng mạng, và bắt đầu tưởng tượng ra những khả năng viết ứng dụng rộng lớn hơn và phong phú hơn.
 
“It’s going to be fun.”
 
Nguồn: http://adaptivepath.com/publications/essays/archives/000385.php


Số Lần Chấm:  
6

(để chấm điễm, xin bấm vào số sao)

Số lần đọc: 3,314
Nguồn: adaptivepath.com
Đăng bởi: Học Trò (3/25/2006)
Người gửi:
Người sửa: Học Trò;