Các phiên làm việc (Session )

Một phần của tài liệu Một số công nghệ áp dụng kiến trúc MODEL - VIEW - CONTROLLER (Trang 32)

Lập trình w eb thường có nhu cầu theo dõi các giá trị của biến giữa các phiên làm việc và lưu giữ trạng thái giữa các lần triệu gọi trang. Tuy nhiên, tính chất then chốt của HTTP là stateless (không lưu trạng thái). Do đó, trình chủ W eb serv er đưa ra đối tượng session để lưu dữ các thông tin người dùng cũng như trạng thái của hệ thống trong m ột khoảng thời gian xác định.

Nhầm tránh việc các session chiếm giữ các tài nguyên lâu khi một người dùng không hoàn thành một giao dịch, các session được cấu hình bằng một tham số thời gian hết hạn của session. N ếu thời gian giữa hai lần yêu cầu lớn hơn thời gian này thì session sẽ bị chết (tức là tất cả các thuộc tính của session sẽ bị xóa bỏ). C ác session này sẽ chiếm bộ nhớ trên Server và vì thế nếu số lượng người dùng lớn, chúng ta cần quan tâm đến việc giảm độ lớn của từng session.

1.5.4. XML

XM L (Extension M arkup Language) - là một ngôn ngừ định dạng mở rộng dùng để thể hiện dữ liệụ Trong quá khứ, các chương trình thường được dùng nhiều khuôn dạng (format) khác nhau để lưu trừ dữ liệụ Ví dụ như dữ liệu được lưu trong file text phân cách nhau bằng dấu tab, hoặc trong file nhị phân với các cấu trúc qui định các trường khác nhau, chẳng hạn file word doc, RTF (Rich Text Form at)... Do các khuôn dạng dữ liệu này khác biệt nhau nên để đọc và nhận dạng chúng cần phải có các chương trình gốc (những chương trình đã tạo ra file) hoặc các tác già của chương trình phải công bố định dạng file cho các chương trình khác có thể đọc và hiểu nó.

M ột vấn đề khác là dữ liệu chương trình được lưu hay biểu diễn dưới dạng bàng. Điều này đã tồn tại từ rất lâu trong các hệ cơ sở dữ liệu, ở đó cấu trúc bảng (table) là thành phần chủ yếu để lưu trừ và truy vấn. M ặc dù dữ liệu dạng bảng tỏ ra rất hiệu quả nhưng trong một số trường hợp, chúng không thể dùng để biểu diễn các cấu trúc dữ liệu phức tạp. Chẳng hạn cấu trúc cây hay các đối tượng lồng nhaụ

XM L ra đời giải quyết vấn đề này khá trọn vẹn. XM L giúp thể hiện và trình bày dừ liệu ờ mọi khuôn dạng. XM L là một chuẩn cho nên được hầu hết các chương trình chấp nhận và phân tích đúng nội dung dừ liệụ Ngôn ngữ XM L trong sáng, đơn giản, dễ đọc (vì chúng được biểu diễn dưới khuôn dạng thuần văn bản) và nhất là dễ sử dụng với người dùng cũng như đối với chương trình. Cú pháp XM L rất giống với H TM L (và thực sự thì XML tổng quát hơn HTM L). Tuy nhiên có một số điều mà XM L không thay thế được đó là:

- XM L không chú ý thay thế HTML. Bản thân XM L chỉ dùng đề định

nghĩa cấu trúc dừ liệụ XM L không định nghĩa cách thức hiển thị dừ liệu

trong trình duyệt như HTML.

- XM L không định thay thế và tồng quát hóa mọi khuôn dạng dữ liệụ XML phát triền thành những nhánh nhỏ qui định cách thể hiện dữ liệu riêng cho tìmg lĩnh vực.

- XM L không phải là ngôn ngữ lập trình. XM L cho phép mô tả dừ liệu nhưng không cho biết làm thế nào để xử lý dữ liệụ Điều này tùy thuộc vào từng chương trình cụ thể sử dụng dừ liệu chứa trong file XML.

1.5.5. Ngôn ngữ Java và các ứng dụng Framework

Java do Jam es Gosling, Patrick m aughton, Christ W arth, Ed và M ike Sheridan phát triển vào năm 1991 tại Sun M icrosystem , Inc. Java là một ngôn ngữ lập trình hướng đối tượng được phát triển từ c++. Java có nhiều các đặc điểm nồi bật như: tỉnh đơn giản, an toàn, tương thích, hướng đối tượng, trong sáng, đa trình, trung lập, thông dịch, tốc độ cao, phân tán, linh động... N gày nay, Java là m ột lựa chọn hàng đầu cho việc phát triển các ứng dụng đòi hỏi tính bảo mật cũng như không phụ thuộc vào thiết bị.

Hiện nay, có rất nhiều các ứng dụng Fram ew ork được nhiều hãng phát triển. Các Fram ew ork hướng đến việc tái sừ dụng các thành phần giống nhau của nhiều dự án. C ác Fram ework giúp cho các nhà phát triển đỡ vất vả và nhanh chóng xây dựng được các ứng dụng m à vẫn đảm bảo tính an toàn cũng như tính bền vững của ứng dụng. Chọn lựa một Fram ework tốt giúp giảm thiểu được thời gian phát triển và nâng cao chất lượng của ứng dụng. Nó giúp người lập trình chú tâm vào việc phát triển các chức năng của ứng dụng thay vì phải làm việc với từng dòng lệnh nhàm chán cùng những sai xót cá nhân cùa người lập trình.

1.5.6. Java Beans

JavaB eans là một kiến trúc thành phần trong J2EE (Java 2 Platform,

Standard Edition). JavaB eans là các chương trình phần mềm có thề tái sử dụng để có thể phát triển và tồng hợp thành các ứng dụng phức tạp hơn. Với tính chất (phản chiếu) và (đặc tả nội tại), JavaB eans cho phép các đối tượng khác có thể biết các thành phần và các phương thức bên trong của nó như: tên lóp, các biến, các phương thức và các giới hạn truy cập cùa các đối tượng khác vào các thành phần bên trong nó. Không có sự hạn chế về khả năng của JavaBean. N ó có thể chứa các hàm đơn giản, như là kiểm tra chính tả của một văn bàn, hoặc một hàm phức hợp, như dự đoán vốn đầu tư cổ phần...

1.5.7. Java Servlet

JavaServlet thay thế các ứng dụng CGI truyền thống và là trung tâm cùa các ứng dụng w eb trên Javạ Java là một ngôn ngữ lập trình hướng đối tượng, do đó JavaServlet cố gắng chuyển H TTP vào trong một mẫu hướng đối tượng. Điều này giúp cho người phát triển tập trung vào các chức năng chính của ừng dụng hơn là các cơ chế phức tạp của HTTP.

HTTP cung cấp một cơ chế chuẩn cho việc mở rộng các dịch vụ gọi là CGI (Com mon G a te w a y Interface - Giao diện cổng giao tiếp chung). HTTP có thể chuyển các yêu cầu của người dùng đến các chương trình CGI và các chương trình CGI trả về kết quà cho HTTP. Do vậy, các yêu cầu người dùng có thể được chuyển đến một Server quản lý các JavaServlet (trình quản lý này thường được gọi là các Java W eb Server). Server quyết định có thể xử lý yêu cầu này không bằng cách kiềm tra danh sách các Servlet của nó. Nếu cỏ một Servlet đăng ký xử lý yêu cầu, Server chuyển yêu cầu cho Servlet đó và nhận kết quả trả về. Cuối cùng, Server trả về kết quả cho HTTP hoặc trả về lỗi nếu không tìm thấy Servlet nào đăng ký xử lý.

M ột JavaServlet là một lớp con thông thường của

javax.servlet.http.H ttpServlet. Nó có 4 phương thức cơ bản nhầm giúp Server

có thể quàn lý được là:

- public void init(ServletConfig config): Khởi tạo tài nguyên trước khi Servlet này được khởi tạọ

- public void doG et(H ttpServletRequest req, H ttpServletResopnse resp): Xử lý yêu cầu người dùng gửi đến qua phương thức GET của HTTP.

- public void doPost(H ttpServletRequest req, HttpServletResopnse resp): Xừ lý yêu cầu người dùng gửi đến qua phương thức PO ST của HTTP.

- public void destroy(): Trả lại các tài nguyên cho hệ thống trước khi Servlet này kết thúc m ột lần phục vụ.

Các phương thức trên là các phương thức thiết lập chu kỳ sống của Servlet. Để tăng khá năng xử lý, các Servlet có thể có nhiều thread. Chỉ có một thể hiện duy nhất của Servlet được tạo ra và mỗi một yêu cầu được chuyển đến duy nhất m ột Servlet xử lý. Điều này giúp cho Server sử dụng tài nguyên một cách tốt nhất.

1.5.8. Bộ lọc thông tin

Trong phiên bản JavaServlet 2.3 đưa ra một thành phần mới gọi là bộ lọc thông tin (Filter). Filter chặn các thông tin từ yêu cầu và kết quả trả về, sau đó chuyển đổi hoặc sử dụng các thông tin đó cho các mục đích như: xác thực quyền, ghi log chương trình, nén dừ liệu, định dạng dữ liệu dựa theo vùng địa lý... Ngoài ra, Filter còn được sử dụng đề mã hóa dữ liệu, đánh dấu dữ liệu, khởi động tài nguyên truy cập sự kiện, thay đổi kiểu M INE, C aching...

1.5.9. Di chuyển càc yêu cầu

Đặc tả JavaServlet mở rộng chu trình hòi/đáp của HTTP để cho phép các yêu cầu được gừi đi hay di chuyển giữa các thành phần. Kiến trúc M V C

trong các W eb Fram ework sử dụng tính chất này để chuyển yêu cầu từ client đến các thành phần xử lý yêu cầu tương ứng. M ột yêu cầu được di chuyển qua đối tượng Controller, chuyển đến đối tượng xừ lý trong M odel và cuối cùng chuyền đến View.

Một phần của tài liệu Một số công nghệ áp dụng kiến trúc MODEL - VIEW - CONTROLLER (Trang 32)

Tải bản đầy đủ (PDF)

(123 trang)