Ứng dụng web

Lịch sử

Trong dạng tính toán chủ-khách trước đây, mỗi ứng dụng có chương trình khách riêng của nó sẽ phục vụ như giao diện người dùng và phải được cài đặt riêng rẽ trên mỗi máy tính cá nhân của người dùng. Sự nâng cấp phần máy chủ của ứng dụng sẽ cần nâng cấp tất cả máy khách đã được cài trên mỗi máy trạm người dùng, thêm vào đó là chi phí hỗ trợ và giảm năng suất.
Ngược lại, ứng dụng web linh hoạt tạo ra một loạt các tài liệu Web ở định dạng chuẩn được hỗ trợ bởi những trình duyệt phổ biến như HTML/XHTML. Ngôn ngữ kịch bản phía người dùng ở dạng ngôn ngữ chuẩn như JavaScript thường được thêm vào để có thêm những yếu tố động trong giao diện người dùng. Nói chung, mỗi trang Web đơn lẻ được gửi tới người dùng như một tài liệu ổn định, nhưng thứ tự các trang có thể cung cấp cảm giác trực quan, khi những gì người dùng nhập vào sẽ được trả về thông qua thành phần mẫu Web được nhúng vào trong đánh dấu trang. Trong quá trình giao dịch đó, trình duyệt Web sẽ thông dịch và hiển thị trang, và hoạt động như một người dùng chung cho bất kỳ ứng dụng Web nào.

Giao diện

Giao diện web đặt ra rất ít giới hạn khả năng người dùng. Thông qua Java, JavaScript, DHTML, Flash và những công nghệ khác, những phương pháp chỉ ứng dụng mới có như vẽ trên màn hình, chơi nhạc, và dùng được bàn phím và chuột tất cả đều có thể thực hiện được. Những kỹ thuật thông thường như kéo thả cũng được hỗ trợ bởi những công nghệ trên. Những nhà phát triển web thường dùng ngôn ngữ kịch bản phía người dùng để thêm hiệu quả các tính năng, đặc biệt là tạo ra một cảm giác giao tiếp trực quan mà không cần phải tải trang lại (điều mà nhiều người dùng cảm thấy ngắt quãng). Vừa rồi, những công nghệ đã được phát triển để phối hợp ngôn ngữ kịch bản phía người dùng với công nghệ phía máy chủ như PHP. Ajax, một kỹ thuật phát triển web sử dụng kết hợp nhiều công nghệ khác nhau, là một ví dụ về công nghệ hiện đang tạo ra ngày càng nhiều trải nghiệm tương tác hơn.

Xem xét về mặt kỹ thuật

Một ưu thế đặc biệt của việc xây dựng ứng dụng Web để hỗ trợ những tính năng chuẩn của trình duyệt đó là chúng sẽ hoạt động như mong muốn bất kể hệ điều hành hay phiên bản hệ điều hành nào được cài trên máy khách cho trước. Thay vì tạo ra những chương trình khách cho MS Windows, Mac OS X, GNU/Linux, và những hệ điều hành khác, ứng dụng có thể được viết chỉ một lần và triển khai mọi nơi. Tuy nhiên, sự hiện thực không được ổn định của HTML, CSS, DOM và những đặc tính trình duyệt khác có thể gây ra rắc rối trong việc phát triển và hỗ trợ ứng dụng web. Thêm vào đó, khả năng cho người dùng điều chỉnh nhiều cài đặt hiển thị cho trình duyệt của họ (như chọn kích thước font, màu sắc, và kiểu chữ, hoặc tắt tính năng script) có thể can thiệp vào sự ổn định của ứng dụng web.
Một cách tiếp cận khác (ít phổ biến hơn) là dùng Adobe Flash hoặc Java applet để cung cấp một vài hoặc tất cả các giao diện người dùng. Từ khi phần lớn trình duyệt web hỗ trợ những công nghệ này (thường thông qua plug-in), những ứng dụng dựa trên Flash hay Java có thể được hiện thực và triển khai dễ dàng như nhau. Bởi vì chúng cho phép lập trình viên quản lý chặt hơn giao diện, chúng vượt qua nhiều vấn đề về cấu hình trình duyệt, mặc dù sự không tương thích giữa hiện thực bằng Java hay Flash trên máy khách có thể tạo ra sự phức tạp khác nhau. Vì sự tương tự về kiến trúc với chương trình chủ-khách của chúng, gần với chương trình "dày", đã có sự tranh luận về việc hệ thống đó có được gọi là "ứng dụng Web" hay không; một thuật ngữ khác được đề nghị là "Ứng dụng Internet phong phú".

Cấu trúc

Dù có nhiều biến thể, một ứng dụng Web thông thường được cấu trúc như một ứng dụng ba lớp. Ở dạng phổ biến nhất, một trình duyệt Web là lớp thứ nhất, một bộ máy sử dụng một vài công nghệ nội dung Web động (như ASP, ASP.NET, CGI, ColdFusion, JSP/Java, PHP, Python, hoặc Ruby On Rails) là lớp giữa, và một cơ sở dữ liệu là lớp thứ ba. Trình duyệt sẽ gửi yêu cầu đến lớp giữa, lớp giữa sẽ phục vụ bằng cách tạo ra truy vấn và cập nhật cơ sở dữ liệu và tạo ra giao diện người dùng.

Dùng trong kinh doanh

Một chiến lược đang xuất hiện cho những công ty phần mềm ứng dụng đó là cung cấp khả năng tiếp cận bằng Web cho phần mềm trước đây được phân phối như các ứng dụng ở máy. Tùy thuộc vào loại ứng dụng, nó có thể cần sự phát triển toàn bộ giao diện dựa trên trình duyệt khác, hoặc chỉ thêm vào một ứng dụng sẵn có để dùng công nghệ trình diễn khác. Những chương trình hiện nay cho phép người dùng trả phí hàng tháng hoặc hàng năm để sử dụng một phần mềm ứng dụng mà không phải cài nó vào ổ cứng. Một công ty đi theo chiến lược này được gọi là nhà cung cấp dịch vụ ứng dụng (application service provider - ASP), và các ASP hiện đang nhận được nhiều sự chú ý trong ngành công nghiệp phần mềm.

Viết ứng dụng Web

Có nhiều mô hình ứng dụng Web rất thuận tiện cho sự phát triển phần mềm mau chóng bằng cách cho phép lập trình viên định nghĩa những mô tả cấp cao cho chương trình. Thêm vào đó, có những tiềm năng cho sự phát triển của ứng dụng trên Hệ điều hành Internet, mặc dù hiện nay không có nhiều mô hình đang tồn tại phù hợp với kiểu mẫu này.
Việc sử dụng mô hình ứng dụng Web thường có thể giảm số lỗi trong một chương trình, bằng cách làm cho mã nguồn đơn giản hơn, hoặc bằng cách cho phép một nhóm chỉ tập trung vào một mô hình duy nhất. Trong những ứng dụng thường bị phá hoại trên Internet, những vấn đề liên quan đến bảo mật do lỗi gây ra trong chương trình là một vấn đề lớn. Mô hình cũng có thể đề nghị việc sử dụng những việc tốt nhất nên làm như GET after POST
Tổ chức Bảo mật Ứng dụng Web (Web Application Security Consortium - WASC), CGI Security, và OWASP là những dự án được phát triển với dự định ghi lại những tài liệu về làm thế nào để tránh những vấn đề bảo mật trong ứng dụng Web.