Chương 1 TỔNG QUAN VỀ FRAMEWORK PHÁT TRIỂN ỨNG DỤNG WEB
1.2.5. Những tính năng thường có của framework web
Một hệ thống khuôn mẫu web sử dụng một bộ xử lý mẫu để kết hợp các mẫu web nhằm tạo các trang web thành phẩm, có thể sử dụng một số nguồn dữ liệu để tùy chỉnh trang hoặc trình bày một số lƣợng lớn nội dung trên các trang tìm kiếm tương tự (similar-looking). Nó là một công cụ xuất bản web hiện nay trong các hệ thống quản trị nội dung, các framework ứng dụng web, và các trình soạn thảo HTML.
Các mẫu web có thể đƣợc sử dụng nhƣ bản mẫu của một bức thƣ mẫu hoặc là tạo ra một số lượng lớn các trang web tĩnh trước, hoặc để tạo ra các trang web động theo yêu cầu.
24 1.2.5.2 Bộ nhớ đệm (Caching)
Một bộ nhớ đệm web là một cơ chế cho việc lưu trữ tạm thời các tài liệu web, chẳng hạn nhƣ các trang HTML và các ảnh, để giảm thiểu sử dụng băng thông, tải máy chủ, và độ trễ nhận thức. Một bộ nhớ cache web lưu trữ các bản sao các văn bản đi qua nó. Các yêu cầu tiếp theo có thể đáp ứng từ bộ nhớ đệm nếu các điều kiện nhất định đƣợc đáp ứng.
Bộ nhớ đệm của Google liên kết trong các kết quả tìm kiếm của nó cung cấp một cách để lấy thông tin từ các trang web gần đây đã đƣợc tải và một cách để lấy dữ liệu nhanh hơn bằng việc nhấn vào liên kết trực tiếp.
Một số framework ứng dụng cung cấp cơ chế cho bộ nhớ đệm văn bản và bỏ qua các giai đoạn khác nhau của việc chuẩn bị trang, chẳng hạn nhƣ truy cập cơ sở dữ liệu hoặc phiên dịch bản mẫu.
1.2.5.3 Bảo mật (security)
Bảo mật ứng dụng web là một nhánh của bảo mật thông tin, trong đó những giao dịch của các trang web, các ứng dụng web và các dịch vụ web đƣợc bảo mật.
Ở mức độ cao, bảo mật ứng dụng web dựa trên các nguyên tắc bảo mật ứng dụng nhƣng áp dụng chúng đặc biệt cho Internet và các hệ thống web. Thông thường các ứng dụng web được phát triển bằng cách sử dụng ngôn ngữ lập trình nhƣ PHP, Java EE, Java, Python, Ruby, ASP.NET, C #, VB.NET hoặc Classic ASP.
Một số framework ứng dụng web đi kèm với xác thực và ủy quyền các framework, cho phép các máy chủ web xác định các người dùng của ứng dụng, và hạn chế truy cập vào các chức năng dựa trên một số tiêu chí quy định. Drupal là một ví dụ cung cấp truy cập dựa trên vai trò cho các trang, và cung cấp một giao diện dựa trên web để tạo người dùng và giao vai trò cho họ.
1.2.5.4 Truy cập cơ sở dữ liệu, ánh xạ và cấu hình.
Nhiều framework tạo ra API thống nhất cho cơ sở dữ liệu, cho phép các ứng dụng web làm việc với một loạt các cơ sở dữ liệu mà không phải thay đổi mã, và
25
cho phép các lập trình viên làm việc với các khái niệm cấp cao hơn. Ngoài ra, một số framework hướng đối tượng chứa các công cụ ánh xạ để cung cấp phép ánh xạ quan hệ đối tƣợng, nhằm ánh xạ đối tƣợng đến bộ dữ liệu.
Một số framework giảm thiểu cấu hình ứng dụng web thông qua việc sử dụng các quy ƣớc đã biết. Ví dụ, nhiều framework Java sử dụng Hibernate nhƣ một lớp vững bền, mà có thể tạo ra một lƣợc đồ cơ sở dữ liệu trong thời gian chạy có khả năng lưu lại thông tin cần thiết. Điều này cho phép các nhà thiết kế ứng dụng thiết kế các đối tƣợng nghiệp vụ mà không cần phải định nghĩa rõ ràng lƣợc đồ cơ sở dữ liệu. Các framework nhƣ Ruby on Rails có thể làm việc ngƣợc lại, đó là, định nghĩa các đặc tính của mô hình các đối tƣợng tại thời gian chạy dựa trên lƣợc đồ cơ sở dữ liệu.
1.2.5.5 Giàn giáo (scaffolding)
Giàn giáo là một kỹ thuật đƣợc hỗ trợ bởi một số framework MVC, trong đó các lập trình viên có thể viết đặc tả để mô tả cách cơ sở dữ liệu ứng dụng có thể đƣợc sử dụng. Trình biên dịch sử dụng đặc tả này để tạo ra mã mà ứng dụng có thể sử dụng để tạo, đọc, cập nhật và xóa các mục cơ sở dữ liệu, xử lý có hiệu quả các bản mẫu nhƣ một "giàn giáo" mà trên đó xây dựng một ứng dụng mạnh mẽ hơn.
1.2.5.6 Ánh xạ URL
Cơ sở ánh xạ URL của framework là cơ chế mà framework diễn dịch các URL. Một số framework nhƣ Drupal và Django, phù hợp với URL đƣợc cung cấp đối với các mẫu đƣợc định sẵn bằng cách sử dụng biểu thức chính quy, trong khi một số khác sử dụng URL viết lại để dịch các URL đƣợc cung cấp sang URL mà những công cụ nằm bên dưới sẽ nhận ra. Một kỹ thuật khác là đồ thị theo cây như được sử dụng bởi Zope, trong đó một URL được phân rã trong bước duyệt qua một đồ thị đối tƣợng.
Hệ thống ánh xạ URL sử dụng so khớp mẫu hoặc URL viết lại cho phép nhiều hơn "URL thân thiện" đƣợc sử dụng, tăng sự đơn giản của trang web và cho phép công cụ tìm kiếm lập chỉ mục tốt hơn. Ví dụ, một URL kết thúc bằng
26
"/page.cgi?cat=science&topic=physics" có thể đƣợc thay đổi đơn giản là
"/page/science/physics". Điều này làm cho người đọc và viết URL dễ dàng hơn, và cung cấp công cụ tìm kiếm thông tin tốt hơn về cách bố trí cấu trúc của trang web.
Cách tiếp cận đồ thị theo cây cũng có xu hướng dẫn đến việc tạo ra các URL thân thiện. Một URL ngắn hơn như "/page/science" có xu hướng tồn tại theo mặc định mà chỉ đơn giản là một dạng ngắn hơn của nhánh cây dài hơn
"/page/science/physics".
1.2.5.7 Ajax
Ajax, viết tắt của "Asynchronous JavaScript and XML", là một kỹ thuật phát triển web để tạo ra các ứng dụng web. Mục đích là để làm cho các trang web cảm giác phản ứng nhanh hơn bằng cách trao đổi một lƣợng nhỏ dữ liệu với máy chủ phía sau hậu trường, do đó toàn bộ trang web không phải được tải lại mỗi khi người dùng yêu cầu một sự thay đổi. Điều này nhằm tăng cường tính tương tác, tốc độ, và tính khả dụng của một trang web.
Do tính phức tạp của lập trình Ajax trong JavaScript, có rất nhiều framework Ajax dành riêng với sự hỗ trợ Ajax. Một số framework Ajax thậm chí đƣợc nhúng vào nhƣ là một phần của framework lớn hơn. Ví dụ, các thƣ viện jQuery JavaScript đƣợc bao gồm trong Ruby on Rails.
1.2.5.8 Dịnh vụ web (web services)
Một dịch vụ Web là một phương thức giao tiếp giữa hai thiết bị điện tử qua World Wide Web. Nó là một chức năng phần mềm đƣợc cung cấp tại một địa chỉ mạng trên web với các dịch vụ nhƣ trong các khái niệm về điện toán tiện ích.
Dịch vụ web còn đƣợc định nghĩa là hệ thống phần mềm đƣợc thiết kế để hỗ trợ sự tương tác giữa hai máy tương thích qua mạng. Nó có một giao diện được mô tả trong một định dạng máy xử lý được (cụ thể WSDL). Các hệ thống khác tương tác với dịch vụ Web một cách theo quy định bằng mô tả của nó sử dụng thông điệp SOAP, thường được chuyển tải bằng cách sử dụng HTTP với một loạt chuỗi XML kết hợp với các tiêu chuẩn liên quan đến Web khác.
27
Một số framework cung cấp công cụ để tạo và cung cấp các dịch vụ web.
Những tiện ích này có thể đưa ra các công cụ tương tự như các phần khác của ứng dụng web.
1.2.5.9 Tài nguyên web (Web resources)
Khái niệm về một nguồn tài nguyên web là sơ khai trong kiến trúc web, và đƣợc sử dụng trong định nghĩa các yếu tố cơ bản của nó. Thuật ngữ này lần đầu tiên đƣợc giới thiệu để đề cập đến mục tiêu định vị tài nguyên thống nhất (URL), nhƣng định nghĩa của nó đã đƣợc tiếp tục mở rộng để bao gồm các ám chỉ của định danh tài nguyên thống nhất bất kỳ (RFC 3986), hoặc định danh tài nguyên quốc tế hóa (RFC 3987). Trong web ngữ nghĩa, các tài nguyên trừu tƣợng và đặc tính ngữ nghĩa của chúng đƣợc mô tả bằng cách sử dụng một họ các ngôn ngữ dựa trên framework mô tả tài nguyên (Resource Description Framework - RDF).
Khái niệm về tài nguyên web đã phát triển trong suốt lịch sử web, từ khái niệm ban đầu của tài liệu hoặc tập tin có địa chỉ tĩnh, đến một định nghĩa chung chung và trừu tƣợng hơn, bây giờ là bao gồm mọi thứ hoặc thực thể mà có thể đƣợc xác định, định danh, địa chỉ hóa hoặc xử lý, trong bất kỳ cách nào, trong trang web nói chung, hoặc trong bất kỳ hệ thống thông tin nối mạng. Các khía cạnh khai báo của một tài nguyên (xác định và định danh) và các khía cạnh chức năng của nó (địa chỉ hóa và xử lý kỹ thuật) không khác biệt rõ ràng trong các thông số kỹ thuật ban đầu của trang web, và định nghĩa các khái niệm đã là chủ đề của cuộc tranh luận lâu dài và vẫn còn mở liên quan đến khó khăn, và thường phức tạp, kỹ thuật, xã hội, ngôn ngữ và các vấn đề triết học.