• Thứ Hai, 31/10/2005 16:03 (GMT+7)

    Applet và Servlet

    Định nghĩa: Applet là chương trình Java được tải xuống trong trình duyệt, sau đó nó sẽ chạy bên trong cửa sổ của trình duyệt. Chúng có thể được dùng để tạo ra giao diện đồ hoạ người dùng có tính tương tác cao mà ngôn ngữ HTML thông thường hay HTML động không thể thực hiện được. Servlet là những chương trình Java chạy trong một Web server dùng Java. Cũng giống các chương trình CGI (Common Gateway Interface), servlet có thể chuyển giao trực tiếp các dịch vụ Web đến trình duyệt hay hoạt động như phần điều khiển trung gian để kết nối trình duyệt với các dịch vụ phía server.

    Các ứng dụng nhúng (applet) quả là những ngôi sao trên "sân khấu" Java. Cũng dễ hiểu bởi trình duyệt HTML là môi trường ứng dụng hết sức phổ dụng tuy hình thức không thật phong phú. Applet hứa hẹn những gì tốt nhất của cả hai thế giới này: không cần cài đặt, "viết một lần, chạy mọi nơi", chất lượng HTML và sự phong phú của giao diện đồ họa (GUI).

    Cho đến nay, những hứa hẹn đó chưa chứng tỏ được thành công. Một cuộc khảo sát gần đây cho thấy việc dùng Java applet trên 500 site có lưu lượng truy cập nhiều nhất của Web là chưa đến 2%. Nguyên nhân? Một số nhà phát triển thất vọng về chất lượng thông dịch mã bytecode trong máy ảo Java (JVM). Một số khác cho rằng "lổ thủng bảo mật" đã ngăn cản việc triển khai hoàn toàn Java trong khai thác các dịch vụ cục bộ và từ xa; một số khác chỉ ra sự khác biệt giữa các JVM trong các trình duyệt chính. Dù với lý do gì chăng nữa, sau gần nửa thập kỷ, applet cũng đã thất bại trong việc hứa hẹn sẽ thay thế ứng dụng Web trên HTML bằng ứng dụng Web tương đương có tính khả chuyển, linh hoạt và GUI cao cấp hơn. Tuy vậy, applet cũng đã làm được nhiều điều mà dưới đây là một số ví dụ:

    AnywareOffice của VistaSource (www.anywareoffice.com). VistaSource dùng Java applet để chuyển giao bộ phần mềm ứng dụng văn phòng Linux của họ vào các trình duyệt có tính năng Java. Khi một nhà cung cấp dịch vụ ứng dụng cho thuê AnywareOffice, các ứng dụng (như bộ xử lý văn bản) chạy trên server nhưng lại hiển thị trong applet.

    Nó cũng tương tự mô hình của Citrix Systems Inc./Microsoft Terminal Server nhưng người dùng không cần phải cài đặt trình client. Họ chỉ cần nạp applet để hiển thị ứng dụng văn phòng từ xa vào bất kỳ trình duyệt nào mà họ đang chạy.

    QuestAgent của JObjects (www.jobjects.com/products/questagent/index.html). Ứng dụng nhúng này là chương trình tìm kiếm đa hệ thường được đưa vào trong các ấn bản CD-ROM soạn bằng HTML. Trình duyệt có thể hiển thị nội dung của một ấn bản như vậy nhưng lại không thể tìm kiếm theo chỉ mục. QuestAgent mang lại khả năng tìm kiếm khả chuyển và loại trừ yêu cầu phải tạo và triển khai chương trình tìm kiếm cho từng môi trường.

    MindTerm của Mindbright Technologies AB(www.mindbright.com/english/technology/products/mindterm/index.html). Giả sử bạn đang đi công tác mà không có máy tính xách tay và cần phải chuyển một tập tin về máy chủ ở cơ quan. MindTerm, một dạng của chương trình bảo mật Secure Shell (SSH), cho phép chuyển mọi trình duyệt có khả năng Java thành SSH client để mã hoá việc truyền file này.

    Sự lớn mạnh của Servlet

    Trong khi Java phía client không được phổ biến như mong đợi, một cách dùng khác của Java - trên server - thực sự tạo được một động lực mới. Hiện nay, các server có ứng dụng Java đang mang lại sức mạnh cho một số lượng lớn và ngày càng tăng các dịch vụ trên Web. Ngôn ngữ chung của chúng là giao diện lập trình ứng dụng (API) servlet, xác định cách thức tương tác của Java servlet với máy chủ trên Java của nó. Nó được hỗ trợ rộng rãi và mặc dù Enterprise JavaBeans hiện đang xuất hiện như là chuẩn, servlet API đơn giản hơn nhiều trong việc tạo ra giao tiếp chung hiệu quả cho các thành phần Java trên phía server.

    Do được viết bằng Java, servlet tạo thành một môi trường xuất sắc cho các dịch vụ mạng. Lập trình viên Java không trực tiếp quản lý bộ nhớ, vì thế servlet tránh được lỗi tràn bộ đệm, vốn tạo ra các điểm yếu về bảo mật trong các phần mềm được viết bằng C hay C++. Những cơ chế đơn giản của Java để xử lý các trường hợp ngoại lệ và đa luồng khuyến khích việc phát triển các dịch vụ mạng một cách chặt chẽ và đáng tin cậy.

    Servlet cũng có ưu thế về kiến trúc để có thể khai thác hoàn toàn lợi thế thực sự của Java. Nếu applet không tương thích với JVM, nó có thể không hoạt động đúng nhưng servlet thì được triển khai trong một môi trường được kiểm soát tốt hơn nhiều và không gặp phải vấn đề không tương thích về JVM. Một số server ứng dụng Java có thể biên dịch các servlet thành mã máy, tăng đáng kể tốc độ thực thi. Một số khác sẽ chạy nhiều JVM song song và đôi lúc là trên nhiều quá trình trong hệ điều hành chủ. Những chiến lược này tăng tính khả mở và chịu lỗi.

    Vì servlet đơn giản và hiệu quả nên những công nghệ khác dùng chúng như những khối căn bản. Java Server Page (JSP), hệ thống mẫu dùng để "tiêm" luận lý Java vào trang HTML giống như Active Server Page của Microsoft. Lần đầu tiên máy chủ JSP nhận yêu cầu về một trang JSP, nó sẽ biên dịch luận lý Java và nội dung HTML thành servlet. Sau đó, những yêu cầu đối với trang này sẽ được servlet trả lời.

    Tuy nhiên, các ứng dụng nhúng Java vẫn có thể thoả mãn các hứa hẹn ban đầu của chúng. Yêu cầu về giao diện đồ hoạ Web phong phú hơn đang gia tăng và chưa có công nghệ nào khác có khả năng đa hệ, khả chuyển giữa các trình duyệt như Java.

    Computerworld 13/11/2000

    ID: A0104_64