Xây dựng website đặt phòng cho khách sạn

5.2.2 Liên kết với các hệ thống ngân hàng: Hiện nay, hệ thống ngân hàng ở nước ta chưa hỗ trợ phổ biến hình thức thanh toán tín dụng qua mạng. Do đó, nếu trong tương lai dịch vụ phát triển thì việc liên kết với các ngân hàng để thực hiện quá trình thanh toán trực tuyến được nhanh chóng và hiệu quả hơn. 5.2.3 Liên kết với các đối tác là nhà cung cấp dịch vụ để thực hiện quá trình đăng ký và thanh toán tự động: Điều này hiện chưa làm được do hai vấn đề sau: thứ nhất, công nghệ trong nước còn chưa thể đáp ứng được; thứ hai, trình độ có hạn của nhóm thực hiện đề tài.

pdf190 trang | Chia sẻ: lylyngoc | Lượt xem: 5208 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Xây dựng website đặt phòng cho khách sạn, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
g. ƒ Nội dung: ∀d1 ∈ tblAdmin, d1.DateReg ≤ d1.LastLogin. ∀d2 ∈ tblAirplanes, d2.DateReg ≤ d2.LastLogin. ∀d3 ∈ tblHotels, d3.DateReg ≤ d3.LastLogin. ∀d4 ∈ tblVisitors, d4.DateReg ≤ d4.LastLogin.s ƒ Bối cảnh: tblAdmin, tblAirplanes, tblHotels, tblVisitors. 121 KH OA C NT T – Đ H KH TN Chương 3. Thiết kế ƒ Tầm ảnh hưởng: Bối cảnh Thêm Xóa Sửa tblAdmin + - + (DateReg, LastLogin) tblAirplanes + - + (DateReg, LastLogin) tblHotels + - + (DateReg, LastLogin) tblVisitors + - + (DateReg, LastLogin) 3.1.5.4 Ràng buộc khóa ngoại: ¾ R1: ƒ Phát biểu: Mỗi thông điệp đều phải thuộc một người dùng nào đó. ƒ Nội dung: ∀a ∈ tblAdminInbox, ∃b ∈ tblAdmin | b.AdminID = a.AdminID. ƒ Bối cảnh: tblAdminInbox, tblAdmin. ƒ Tầm ảnh hưởng: Bối cảnh Thêm Xóa Sửa tblAdminInbox + - + (AdminID) tblAdmin - + + (AdminID) 3.1.5.5 Ràng buộc liên bộ, liên quan hệ: ¾ R1: ƒ Phát biểu: Mỗi khách viếng muốn đặt phòng khách sạn phải có thông tin cá nhân trước (đăng ký làm thành viên). ƒ Nội dung: ∀b ∈ tblBookInfo, ∃v ∈ tblVisitors | b.VisitorID = v.VisitorID. ƒ Bối cảnh: tblBookInfo, tblVisitors. 122 KH OA C NT T – Đ H KH TN Chương 3. Thiết kế ƒ Tầm ảnh hưởng: Bối cảnh Thêm Xóa Sửa tblBookInfo + - + (VisitorID) tblVisitor - + + (VisitorID) ¾ R2: ƒ Phát biểu: Mỗi khách viếng muốn đặt vé máy bay phải có thông tin cá nhân trước (đăng ký làm thành viên). ƒ Nội dung: ∀b ∈ tblBookTicket, ∃v ∈ tblVisitors | b.VisitorID = v.VisitorID. ƒ Bối cảnh: tblBookTicket, tblVisitors. ƒ Tầm ảnh hưởng: Bối cảnh Thêm Xóa Sửa tblBookTicket + - + (VisitorID) tblVisitor - + + (VisitorID) 3.1.5.6 Ràng buộc tổng hợp: ¾ R1: ƒ Phát biểu: Tổng số hành khách của một bảng đặt vé máy bay phải bằng với tổng số hành khách đã đăng ký. ƒ Nội dung: ∀b ∈ tblBookTicket SoHanhKhach = 0; ∀p ∈ tblPassenger if (p.BookTicketID = b.BookTicketID) then SoHanhKhach += 1; 123 KH OA C NT T – Đ H KH TN Chương 3. Thiết kế Cuối ∀p SoHanhKhach = b.NumOfGuest Cuối ∀b. ƒ Bối cảnh: ƒ Tầm ảnh hưởng: Bối cảnh Thêm Xóa Sửa tblBookTicket + - + (BookTickID, NumOfGuest) tblPassenger + + + 3.2 Thiết kế kiến trúc: ¾ Xây dựng cấu trúc cây phân nhóm: Hình 3-2: Cấu trúc cây phân nhóm - Cấp 1 124 KH OA C NT T – Đ H KH TN Chương 3. Thiết kế Hình 3-3: Cấu trúc cây phân nhóm - Cấp 2: Admin Hình 3-4: Cấu trúc cây phân nhóm - Cấp 2: Hãng hàng không Hình 3-5: Cấu trúc cây phân nhóm - Cấp 2: Khách sạn 125 KH OA C NT T – Đ H KH TN Chương 3. Thiết kế Hình 3-6: Cấu trúc cây phân nhóm - Cấp 2: Khách viếng ¾ Bảng tổng hợp nhóm: STT Nhóm Xử lý Bảng dữ liệu 1 Quản trị Xem danh sách khách sạn Xem danh sách hãng hàng không. Xem danh sách khách viếng. Xeam danh sách người dùng. Xem thông tin chi tiết của một khách sạn. Xem thông tin chi tiết của một hãng hàng không. Xem thông tin chi tiết của một khách viếng. Xem thông tin chi tiết của một người dùng. Tạo người dùng mới. Xóa một khách viếng. Xóa một khách sạn. tblHotels tblAirplanes tblVisitors tblAdmin tblBookInfo tblBookTicket tblAdminInbox tblBookDetail tblBookResult tblFlightInfo tblFlightResult 126 KH OA C NT T – Đ H KH TN Chương 3. Thiết kế Xóa một hãng hàng không. Xóa một người dùng. Quản lý thông tin đặt phòng của khách viếng. Quản lý thông tin đặt vé máy bay của khách viếng. Quản lý thông điệp. 2 Khách sạn Nhập mô tả khách sạn. Điều chỉnh thông tin. Quản lý thông điệp tblHotels tblRoomInfo tblHotelInbox 3 Hãng hàng không Nhập mô tả các tuyến bay. Điều chỉnh thông tin. Quản lý thông điệp tbAirplanes tblFlightInfo tblAirplaneInbox 4 Khách viếng Đặt phòng khách sạn. Đặt vé máy bay. Tìm kiếm khách sạn. Xem thông tin khách sạn. Điều chỉnh thông tin. Quản lý thông điệp. Tìm kiếm hãng hàng không. Xem thông tin các tuyến bay. tblVisitors tblBookInfo tbBookDetail tblBookResult tblBookTicket tblFlightResult tblHotels tblRoomInfo tblFlightInfo Bảng 3-29: Bảng tổng hợp nhóm 3.3 Thiết kế chức năng: 3.3.1 Bảng mô tả các hàm và thủ tục: 127 KH OA C NT T – Đ H KH TN Chương 3. Thiết kế Mã số: F01 Tên: Register (Đăng ký thành viên) Kiểu trả về: Bool Tham số: STT Tên Tham số Kiểu DL In/Out 1 connString Connection In 2 Visitor tblVisitors In 3 TableName String Out Thuật giải: Tạo Connection đến cơ sở dữ liệu Tạo chuỗi truy xuất dữ liệu. Kiểm tra các thông tin của đối số Visitor. Tạo ra một mã khách viếng ngẫu nhiên và kiêm tra với cơ sở dữ liệu tồn tại. Tạo một Transaction để thực hiện thao tác Insert. Thông báo kết quả thành công hay thất bại vào giá trị trả về. 128 KH OA C NT T – Đ H KH TN Chương 3. Thiết kế 3.3.2 Bảng mô tả module: ¾ Tên nhóm/Module: Database Access ¾ Mô tả: Truy xuất dữ liệu ¾ Danh sách thủ tục, hàm: STT Tên Thủ tục, hàm Mô tả Kiểu DL trả về Phạm vi 1 CheckUser Kiểm tra thông tin người dùng khi mở một trang web. Bool Public 2 GetTable Lấy về một bảng dữ liệu với đối số truyền vào là tên bảng. DataTable Public 3 RunSelect Thực thi một câu lệnh Select. Giá trị trả về là một bảng. DataTable Public 4 RunUpdate Thực thi một câu lệnh Update. Giá trị trả về là số dòng được update. Int Public 5 RunDelete Thực thi một câu lệnh Delete. Giá trị trả về là số dòng được delete. Int Public 6 AddVisitor Thêm một khách viếng vào CSDL. Int Public 7 AddAdmin Thêm một người sử dụng vào CSDL. Int Public 8 AddHotel Thêm một khách sạn vào CSDL. Int Public 9 AddAirplane Thêm một hãng hàng không vào CSDL. Int Public 10 AddRoomInfo Thêm thông tin mô tả các loại phòng của khách sạn. Int Public 11 AddFlightInfo Thêm thông tin mô tả các tuyến bay của các hãng hàng không. Int Public 129 KH OA C NT T – Đ H KH TN Chương 3. Thiết kế 12 AddBookRoom Thêm bảng đăng ký đặt phòng khách sạn. Int Public 13 AddBookTicket Thêm bảng đăng ký đặt vé máy bay. Int Public 14 AddMessage Thêm một thông điệp trao đổi thông tin vào cơ sở dữ liệu của từng đối tượng. Int Public 15 DelAdmin Xóa một người sử dụng. Int Public 16 DelVisitor Xóa một khách viếng. Int Public 17 DelHotel Xóa một khách sạn. Int Public 18 DelAirplane Xóa một hãng hàng không Int Public Bảng 3-30: Bảng mô tả Module 3.4 Thiết kế giao diện: Dưới đây là một số hình ảnh về thiết kế giao diện của ứng dụng. 130 KH OA C NT T – Đ H KH TN Chương 3. Thiết kế Hình 3-7: Trang chủ 131 KH OA C NT T – Đ H KH TN Chương 3. Thiết kế Hình 3-8: Đăng ký thành viên 132 KH OA C NT T – Đ H KH TN Chương 3. Thiết kế Hình 3-9: Đăng nhập 133 KH OA C NT T – Đ H KH TN Chương 3. Thiết kế Hình 3-10: Mô tả khách sạn 134 KH OA C NT T – Đ H KH TN Chương 3. Thiết kế Hình 3-11: Mô tả hãng hàng không 135 KH OA C NT T – Đ H KH TN Chương 3. Thiết kế Hình 3-12: Xem danh sách khách viếng 136 KH OA C NT T – Đ H KH TN Chương 3. Thiết kế Hình 3-13: Thêm người dùng 137 KH OA C NT T – Đ H KH TN Chương 3. Thiết kế Hình 3-14: Quản lý 138 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai Chương 4. CÀI ĐẶT VÀ TRIỂN KHAI 4.1 Cài đặt: 4.1.1 Lựa chọn môi trường cài đặt: Hiện tại có rất nhiều công cụ hỗ trợ cho việc xây dựng một ứng dụng Web chẳng hạn như: MS Frontpage, Macromedia Dreamweaver MX, Xara Webstyle… Các bộ công cụ này thường được tích hợp sẵn các templates cho phép tạo ra một trang web nhanh chóng và dễ dàng. Tuy nhiên, một trong các công nghệ tiên tiến và mạnh mẽ nhất được nhắc đến nhiều nhất hiện nay phải kể đến là ASP.NET dựa trên nền tảng công nghệ .NET của Microsoft. Công nghệ ASP.NET mang đến cho các trang web được tạo ra từ nó có thể chạy nhanh hơn do dùng cơ chế chỉ biên dịch ra tập tin DLL lần đầu tiên triệu gọi (khác với ASP 3.0 mỗi lần triệu gọi là mỗi lần biên dịch trang ASP); ngoài ra ASP.NET còn hỗ trợ nhiều công cụ lập trình và cho phép sử dụng các tài nguyên đang sử dụng, tự động dò tìm và khắc phục lỗi phát sinh (sử dụng cấu trúc try… catch), quản lý trạng thái giao dịch (Session State) trên nhiều Server, sử dụng bộ nhớ truy cập nhanh, sử dụng ngôn ngữ biên dịch trang ASP.NET thay vì thông dịch như đã sử dụng trong ASP 3.0, xây dựng và triển khai các ứng dụng Web services dễ dàng… Với các đặc điểm nêu trên, chúng em quyết định chọn ASP.NET làm môi trường để xây dựng ứng dụng và quản lý cơ sở dữ liệu sẽ dùng SQL Server 2000. 4.1.2 Lựa chọn mô hình cài đặt: Một trong những mô hình cài đặt có thể được lựa chọn đầu tiên để cài đặt các ứng dụng ngày nay là kiến trúc đa tầng n-tier. Mô hình của kiến trúc n-tier (với 3-tier) được mô tả như hình sau: 139 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai Hình 4-1: Kiến trúc n-tier Các thuận lợi mà kiến trúc này có thể mang lại là: ¾ Việc thay đổi các xử lý ở tầng truy xuất dữ liệu sẽ không ảnh hưởng và làm thay đổi tầng giao diện người dùng. ¾ Tất cả các thủ tục truy xuất dữ liệu sẽ được đóng gói vào các đối tượng thay vì dùng các lời gọi hàm. ¾ SQL sẽ được loại trừ ra khỏi code phía client. Client chỉ còn quan tâm đến các phương thức và các thuộc tính. ¾ Tên của các bảng và cột sẽ được loại trừ ra khỏi code phía client. Các datasets được định kiểu có thể mô tả các bảng và cột dữ liệu như là các thuộc tính, cung cấp một danh sách IntellliSense. 140 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai ¾ Code phía client sẽ không quan tâm đến việc dữ liệu có từ đâu. Nó chỉ quan tâm rằng nó có thể nhận và điều chỉnh dữ liệu trong các đối tượng và đối tượng này sẽ quan tâm đến các chi tiết. ¾ Code phía client sẽ được đơn giản hóa, thay vì sử dụng nhiều hàm (functions) thì các ứng dụng nên sử dụng các đối tượng với các thuộc tính (properties) và phương thức (methods). ¾ Việc tạo và sử dụng các đối tượng sẽ dễ dàng hơn là dùng các lời gọi hàm. ¾ Việc thêm và thay đổi các chức năng của ứng dụng cũng sẽ dễ dàng hơn do không làm thay đổi code phía client. Mặc dù có những thuận lợi như vậy, kiến trúc n-tier cũng gặp phải một số bất lợi như sau: ¾ Phải tạo nhiều classes hơn, điều này có thể sẽ ảnh hưởng đến vấn đề bảo trì và vấn đề hiệu suất vì nó sẽ mất thời gian để tạo một class mới vào thời điểm run time. ¾ N-tier sẽ không làm việc tốt khi chúng ta không biết cấu trúc của các bảng mà dữ liệu sẽ được nhận từ nó. Tóm lại, mặc dù có một vài bất lợi trong kiến trúc n-tier nhưng những lợi thế do nó mang lại lớn hơn nhiều, và vì vậy ứng dụng này sẽ cố gắng xây dựng theo tinh thần của kiến trúc n-tier (cụ thể là 3-tier). 4.1.3 Xây dựng các lớp xử lý chính: Với mỗi tầng trong kiến trúc 3-tier sẽ có các lớp đối tượng riêng chịu các trách nhiệm tương ứng khác nhau. Ở tầng giao diện người dùng, các trang 141 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai .aspx với các web forms sẽ trình bày nội dung của website cho phía client. Tầng giữa là các xử lý trung gian liên kết hai tầng còn lại (tầng giao diện và tầng dữ liệu). Và tầng dữ liệu sẽ đảm bảo cho vấn đề truy xuất và cập nhật dữ liệu. Sẽ có các lớp đối tượng riêng biệt cho từng nhiệm vụ của các tầng nêu trên. Trong ứng dụng này mỗi đối tượng phục vụ của hệ thống (đã nêu trong Chương 2) sẽ được đóng gói trong các namespace khác nhau, và như vậy ở tầng giao diện và xử lý các đối tượng này sẽ được xây dựng độc lập. Trong tầng dữ liệu sẽ tập trung xử lý cho tất cả các yêu cầu truy xuất dữ liệu của tất cả các đối tượng. Do đó ta có thể thấy sự tách biệt khá rõ ràng trong việc xây dựng các lớp xử lý của từng tầng theo kiến trúc 3-tier. 142 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai Dưới đây là danh sách các lớp xử lý chính đã được xây dựng: STT Tên lớp Namespace Mô tả Các xử lý chính 1 DetailAirplane Admin Quản lý thông tin chi tiết của các hãng hàng không. Xem thông tin chi tiết. Kích hoạt một hãng hàng không (nếu đăng ký mới) Xóa một hãng hàng không. 2 DetailHotel Admin Quản lý thông tin chi tiết của các khách sạn. Xem thông tin chi tiết. Kích hoạt một khách sạn (nếu đăng ký mới). Xóa một khách sạn. 3 DetailVisitor Admin Quản lý thông tin chi tiết của các khách viếng. Xem thông tin chi tiết. Kích hoạt một khách viếng (nếu đăng ký mới). Xóa một khách viếng. 4 DetailUser Admin Quản lý thông tin chi tiết của người sử dụng (admin). Xem thông tin chi tiết. Kích hoạt một người dùng Xóa một người dùng. 5 ListAirplaness Admin Liệt kê danh sách hãng hàng không. Khởi tạo danh sách. Hiển thị danh sách. Chọn một item trong danh sách để xem chi tiết. Xóa một item trong danh sách khỏi cơ sở dữ liệu. 6 ListHotels Admin Liệt kê danh sách khách sạn. Khởi tạo danh sách. Hiển thị danh sách. Chọn một item trong danh sách để xem chi tiết. Xóa một item trong danh sách khỏi cơ sở dữ liệu. 7 ListVisitors Admin Liệt kê danh sách các khách viếng. Khởi tạo danh sách. Hiển thị danh sách. Chọn một item trong danh sách 143 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai để xem chi tiết. Xóa một item trong danh sách khỏi cơ sở dữ liệu. 8 ListUsers Admin Liệt kê danh sách người dùng (vai trò admin). Khởi tạo danh sách. Hiển thị danh sách. Chọn một item trong danh sách để xem chi tiết. Xóa một item trong danh sách khỏi cơ sở dữ liệu. 9 Login Admin Đăng nhập vào hệ thống với vai trò admin. Xử lý đăng nhập. Cho phép tìm password khi quên password. 10 ManageBookRoom Admin Quản lý thông tin đặt phòng khách sạn của khách viếng. Xem danh sách đặt phòng mới nhất (tất cả, thành công, thất bại). Xử lý thông tin đặt phòng. 11 ManageBookTicket Admin Quản lý thông tin đặt vé máy bay của khách viếng. Xem danh sách đặt vé máy bay mới nhất (tất cả, thành công, thất bại). Xử lý thông tin đặt vé. 12 NewUser Admin Thêm người sử dụng mới vào cơ sở dữ liệu. Thêm người sử dụng vào cơ sở dữ liệu. 13 SendMessage Admin Gửi thông điệp đến các đối tượng Gửi thông điệp. 14 ShowMessage Admin Xem nội dung của thông điệp. Xem nội dung của thông điệp. Xóa thông điệp. 15 Register Airplane Hãng hàng không đăng ký làm nhà cung cấp dịch vụ. Đăng ký. 16 Login Airplane Hãng hàng không đăng nhập vào hệ thống. Kiểm tra thông tin đăng nhập. Tìm password khi quên password. 17 Register Hotel Khách sạn đăng ký làm nhà cung Đăng ký. 144 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai cấp dịch vụ. 18 Login Hotel Khách sạn đăng nhập vào hệ thống. Kiểm tra thông tin đăng nhập. Tìm password khi quên password. 19 Booking Visitor Cho phép đặt phòng khách sạn Đặt phòng. 20 FlightTicket Visitor Cho phép đặt vé máy bay. Đặt vé máy bay. 21 Login Visitor Khách viếng đăng nhập vào hệ thống. Kiểm tra thông tin đăng nhập. Tìm password khi quên password. 22 ListHotels Visitor Liệt kê danh sách các khách sạn. Xem danh sách khách sạn. 23 Regiser Visitor Khách viếng đăng ký làm thành viên. Đăng ký. 24 Search Visitor Tìm kiếm các khách sạn theo các tiêu chí. Tìm kiếm. Hiển thị danh sách. Chọn một item. 25 DBAdmin DataServices Truy xuất cơ sở dữ liệu của Admin 26 DBAirplane DataServices Truy xuất cơ sở dữ liệu của Hãng hàng không. 27 DBHotel DataServices Truy xuất cơ sở dữ liệu của khách sạn. 28 DBVisitor DataServices Truye xuất cơ sở dữ liệu của khách viếng. 29 DBCommon DataServices Truy xuất các cơ sở dữ liệu chung và các thủ tục xử lý khác liên quan đến CSDL. Thêm người sử dụng. Thêm khách sạn. Thêm khách viếng. Thêm hãng hàng không. 145 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai Kiểm tra thông tin người dùng hiện hành. Lấy về bảng dữ liệu. Các xử lý cập nhật CSDL. Các thủ tục thực thi câu lệnh SQL. … Bảng 4-1: Danh sách các lớp xử lý chính Và dưới đây là danh sách các lớp đóng vai trò như các bảng dữ liệu được đóng gói vào các lớp đối tượng. STT Tên lớp Namespace Mô tả 1 tblAdmin DataServices Tương ứng với bảng tblAdmin trong cơ sở dữ liệu. 2 tblAdminInbox DataServices Tương ứng với bảng tblAdminInbox trong cơ sở dữ liệu. 3 tblAirplanes DataServices Tương ứng với bảng tblAirplanes trong cơ sở dữ liệu. 4 tblAirplaneInbox DataServices Tương ứng với bảng tblAirplaneInbox trong cơ sở dữ liệu. 5 tblBookDetail DataServices Tương ứng với bảng tblBookDetail trong cơ sở dữ liệu. 6 tblBookInfo DataServices Tương ứng với bảng tblBookInfo trong cơ sở dữ liệu. 7 tblBookResult DataServices Tương ứng với bảng tblBookResult trong cơ sở dữ liệu. 8 tblBookTicket DataServices Tương ứng với bảng tblBookTicket trong cơ sở dữ liệu. 9 tblComments DataServices Tương ứng với bảng tblComments trong cơ sở dữ liệu. 10 tblCountries DataServices Tương ứng với bảng tblCountries trong cơ sở dữ liệu. 11 tblCurrencies DataServices Tương ứng với bảng tblCurrencies trong cơ sở dữ liệu. 12 tblFlightInfo DataServices Tương ứng với bảng tblFlightInfo trong cơ sở dữ liệu. 13 tblFlightResult DataServices Tương ứng với bảng tblFlightResult trong cơ sở dữ liệu. 14 tblHotels DataServices Tương ứng với bảng tblHotels trong cơ sở dữ liệu. 15 tblHotelInbox DataServices Tương ứng với bảng tblHotelInbox trong cơ sở dữ liệu. 146 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai 16 tblPassenger DataServices Tương ứng với bảng tblPassenger trong cơ sở dữ liệu. 17 tblPayments DataServices Tương ứng với bảng tblPayments trong cơ sở dữ liệu. 18 tblQuestions DataServices Tương ứng với bảng tblQuestions trong cơ sở dữ liệu. 19 tblRoomInfo DataServices Tương ứng với bảng tblRoomInfo trong cơ sở dữ liệu. 20 tblVisitors DataServices Tương ứng với bảng tblVisitor trong cơ sở dữ liệu. 21 tblVisitorInbox DataServices Tương ứng với bảng tblVisitorInbox trong cơ sở dữ liệu. Bảng 4-2: Danh sách các lớp đối tượng dữ liệu 4.1.4 Cài đặt các hàm xử lý chủ yếu: Phần này trình bày về cách cài đặt các hàm xử lý chủ yếu trong ứng dụng. Hầu hết đều được thể hiện dưới dạng thuật giải chứ không trình bày chi tiết cài đặt. 4.1.4.1 Thủ tục kiểm tra thông tin người dùng: ¾ Tên phương thức: CheckUser(int UserID, string UserType) ¾ Giá trị trả về: Bool ¾ Mô tả: Kiểm tra người dùng trong Session hiện tại có phải đã đăng nhập vào hệ thống đúng với chức năng và quyền hạn truy cập một trang nào đó hay không. ¾ Thuật giải: Kiểm tra UserType Nếu (UserType = “Admin”) Truy xuất cơ sở dữ liệu Admin Lấy về danh sách AdminID So sánh UserID với các AdminID Nếu tồn tại một AdminID = UserID 147 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai Thì giá trị trả về = True Ngược lại giá trị trả về = False Nếu (UserType = “Visitor”) Truy xuất cơ sở dữ liệu Visitors Lấy về danh sách VisitorID So sánh UserID với các VisitorID Nếu tồn tại một VisitorID = UserID Thì giá trị trả về = True Ngược lại giá trị trả về = False Nếu (UserType = “Hotel”) Truy xuất cơ sở dữ liệu Hotels Lấy về danh sách HotelID So sánh UserID với các HotelID Nếu tồn tại một HotelID = UserID Thì giá trị trả về = True Ngược lại giá trị trả về = False Nếu (UserType = “Airplane”) Truy xuất cơ sở dữ liệu Airplanes Lấy về danh sách AirplaneID So sánh UserID với các AirplaneID Nếu tồn tại một AirplaneID = UserID Thì giá trị trả về = True Ngược lại giá trị trả về = False. 148 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai 4.1.4.2 Thủ tục thêm người dùng: ¾ Tên phương thức: AddUser(ConnectionString conn, tblAdmin admin). ¾ Giá trị trả về: Int ¾ Mô tả: Thêm một người dùng vào cơ sở dữ liệu. ¾ Thuật giải: 1. Tạo một UserID cho đối tượng mới một cách ngẫu nhiên và kiểm tra với các đối tượng đang có. 2. Mở kết nối đến cơ sở dữ liệu. 3. Tạo mới một Transaction. 4. Tạo câu lệnh SQL. 5. Thực thi câu lệnh SQL. 6. Kết thúc Transaction. 7. Đóng kết nối. 8. Kết quả trả về. Lưu ý: Thủ tục thêm các đối tượng khác như Visitor, Hotel, Airplane tương tự. 4.1.4.3 Thủ tục xóa người dùng: ¾ Tên phương thức: DelUser(ConnectionString conn, int AdminID) ¾ Giá trị trả về: Int ¾ Mô tả: Xóa một người dùng khỏi cơ sở dữ liệu. ¾ Thuật giải: 149 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai 1. Mở kết nối đến cơ sở dữ liệu. 2. Tạo mới một Transaction. 3. Tạo câu lệnh SQL thực hiện việc Delete. 4. Thực thi câu lệnh SQL. 5. Kết thúc Transaction. 6. Đóng kết nối. 7. Kết quả trả về. Lưu ý: Các thủ tục xóa các đối tượng khác tương tự. 4.1.4.4 Thủ tục thực thi câu lệnh SQL: ¾ Tên phương thức: RunCommand(ConnectionString conn, string commandString, string TableName) ¾ Giá trị trả về: Int ¾ Mô tả: Thực thi một câu lệnh SQL (Select). ¾ Thuật giải: 1. Mở kết nối đến cơ sở dữ liệu. 2. Tạo một đối tượng Command thực hiện quá trình Select. 3. Thực thi câu lệnh trên. 4. Đóng kết nối. Lưu ý: Các thủ tục thực thi câu lệnh Update, Delete tương tự. 4.1.4.5 Thủ tục đăng nhập của Admin: ¾ Tên phương thức: Login(string UserID, string Password) ¾ Giá trị trả về: Bool 150 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai ¾ Mô tả: Kiểm tra thông tin đăng nhập và thực hiện đăng nhập cho người dùng. ¾ Thuật giải: 1. Kết nối đến cơ sở dữ liệu. 2. Truy xuất bảng Admin để lấy về danh sách các LoginID và Password. 3. Kiểm tra thông tin đăng nhập (LoginID và Password) với thông tin trong bảng kết quả trên. 4. Nếu tìm thấy thì cho kết quả đăng nhập thành công. 5. Ngược lại, đăng nhập thất bại. Lưu ý: Các thủ tục đăng nhập của các đối tượng khác tương tự. 4.1.4.6 Thủ tục đặt phòng khách sạn: ¾ Tên phương thức: BookRoom(int VisitorID, int HotelID,…) ¾ Giá trị trả về: Int ¾ Mô tả: Khách viếng sau khi điền đầy đủ thông tin vào form đặt phòng khách sạn thì sẽ gọi thủ tục này để thực hiện quá trình đặt phòng. ¾ Thuật giải: 1. Kết nối đến cơ sở dữ liệu. 2. Tạo một bảng chứa các thông tin đăng ký. 3. Tạo mới một Transaction. 4. Tạo câu lệnh SQL để thêm các thông tin đăng ký. 5. Thêm các tham số cho câu lệnh SQL. 151 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai 6. Thực thi câu lệnh SQL để thực hiện quá trình đăng ký. 7. Kết thúc Transaction. 8. Đóng kết nối. 9. Thông báo kết quả đăng ký. 4.1.4.7 Thủ tục đặt vé máy bay: ¾ Tên phương thức: BookTicket(int VisitorID, int AirplaneID, string TicketType, int NumOfPassenger,…) ¾ Giá trị trả về: Int ¾ Mô tả: Khách viếng sau khi điền đầy đủ thông tin vào form đặt vé máy bay thì sẽ gọi thủ tục này để thực hiện quá trình đặt vé. ¾ Thuật giải: 1. Kết nối đến cơ sở dữ liệu. 2. Tạo một bảng chứa các thông tin đăng ký. 3. Tạo mới một Transaction. 4. Tạo câu lệnh SQL để thêm các thông tin đăng ký. 5. Thêm các tham số cho câu lệnh SQL. 6. Thực thi câu lệnh SQL để thực hiện quá trình đăng ký. 7. Kết thúc Transaction. 8. Đóng kết nối. 9. Thông báo kết quả đăng ký. 4.1.4.8 Thủ tục tìm kiếm khách sạn: ¾ Tên phương thức: SearchHotel(string Standard, string City, string Country) 152 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai ¾ Giá trị trả về: DataTable ¾ Mô tả: Tìm kiếm các khách sạn thỏa mãn các điều kiện đưa ra. Kết quả tìm kiếm là một bảng chứa danh sách các khách sạn tìm thấy. ¾ Thuật giải: 1. Kết nối đến cơ sở dữ liệu. 2. Tạo câu lệnh SQL để lấy về bảng dữ liệu chứa các khách sạn theo các tiêu chí: Loại khách sạn, Thành phố, Quốc gia). 3. Thêm các tham số cho câu lệnh SQL. 4. Truy xuất cơ sở dữ liệu lấy về bảng dữ liệu theo câu lệnh SQL trên. 5. Đóng kết nối. 6. Trả về kết quả tìm kiếm. 4.1.5 Tiếp cận với công nghệ lập trình Web mới – ASP.NET: Ghi chú: Những phần trình bày sau đây được tham khảo trong các tài liệu sau: 1. .NET Framework SDK Documentation: Phần Building Applications Æ Creating SP.NET Web Applications. 2. Phạm Hữu Khang (Chủ biên), Xây dựng và triển khai ứng dụng Thương Mại Điện Tử - Tập 2: Với công cụ ASP.NET, Visual Basic.NET, SQL Server, NXB Thống Kê, 2003. (Các chương 1, 19, 20, 22). 4.1.5.1 Giới thiệu ASP.NET: ASP.NET là một platform phát triển các ứng dụng Web hợp nhất cung cấp các dịch vụ cần thiết cho việc xây dựng các ứng dụng enterprise- 153 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai class Web. ASP.NET được thiết kế tương thích với các phiên bản ASP trước đó, cho nên chúng ta có thể triển khai các ứng dụng phát triển bằng ASP.NET chung với các ứng dụng ASP 3.0 trên cùng một máy chủ Windows 200 mà không cần thay đổi cấu hình của ứng dụng ASP. ASP.NET được biên dịch, dựa trên môi trường .NET; cho phép tạo ra các ứng dụng trong bất kỳ ngôn ngữ lập trình nào tương thích với .NET chẳng hạn như: C#, Visual Basic.NET, và Jscript.NET. Ngoài ra, toàn bộ .NET Framework sẵn sàng cho bất kỳ ứng dụng ASP.NET nào, các nhà phát triển có thể có được các lợi ích từ những kỹ thuật sau bao gồm: managed common language runtime environment, an toàn kiểu v.v… ASP.NET được thiết kế tương tự như các trình soạn thảo HTML với WYSIWYG và các công cụ lập trình khác, bao gồm Microsoft Visual Studio.NET. Không chỉ là cho việc phát triển Web dễ dàng hơn mà còn cung cấp tất cả các lợi ích mà các công cụ này mang lại, bao gồm một GUI cho phép các nhà phát triển có thể thực hiện việc kéo-thả các controls vào trang Web và sự hỗ trợ debug được tích hợp đầy đủ. Các nhà phát triển có thể sử dụng Web Forms hoặc XML Web Services khi tạo một ứng dụng Web hoặc kết hợp chúng lại theo bất kỳ cách nào thấy hợp lý nhất. Một số đặc tính của ASP.NET: ¾ Độc lập ngôn ngữ: ASP.NET cho phép bạn biên dịch không phụ thuộc ngôn ngữ, thực hiện tối ưu việc kết hợp các ngôn ngữ khác nhau. Chúng ta có thể sử dụng VB.NET, C# hay kể cả C++ để xây dựng trang ASP.NET. ¾ Dễ phát triển: ASP.NET cho phép khai báo và viết mã đơn giản. 154 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai ¾ Tách mã và nội dung thành hai phần khác nhau: Sử dụng trang Code Behide (.vb, .cs) chứa mã và trang .aspx chứa giao diện người dùng. ¾ Tính mềm dẻo và khả năng nâng cấp. ¾ Hỗ trợ nhiều trình khách. ¾ Các Web Form Controls ngoài việc có thể xuất mã trên trình duyệt còn cho phép xuất ra tất cả các điều khiển của các Platform khác như: Wireless phone, palm, pilots, pager… ¾ Xử lý phía trình chủ sử dụng phát biểu Runat=”server”. ¾ Thay vì sử dụng mô hình tích hợp DLL, COM, DCOM trước đây, với công nghệ ASP.NET ta có thể sử dụng dịch vụ đơn giản hơn đó là Web Services. 4.1.5.2 Các yêu cầu phần cứng và phần mềm khi làm việc với ASP.NET: ASP.NET được hỗ trợ trên Windows 2000 (Professional, Server và Advanced Server), Windows XP Professional và họ Windows Server 2003 cho các ứng trên cả client và server. Ngoài ra, để phát triển server ASP.NET, còn yêu cầu thêm các phần mềm sau: ¾ Windows 2000 Server hay Advanced Server với Service Pack 2 trở lên, Windows XP Professional hay 64-Bit Edition, hoặc một trong các sản phẩm thuộc họ Windows Server 2003. ¾ MPAC 2.7 cho Data. ¾ Internet Information Services. 155 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai Ghi chú: Xem thêm chi tiết trong .Net Framework SDK Documentation. 4.1.5.3 Các đặc điểm mới của ASP.NET: ¾ Đối tượng Page: Page sử dụng các thành phần điều khiển có khả năng hoạt động và tương tác với nhau ngay trên trình chủ Web Server. ¾ HTML Server Side Controls: Các HtmlControl có khả năng xử lý ngay trên trình chủ dựa vào thuộc tính và phương thức tương tự các hoạt động của chúng phía trình khách (sử dụng thuộc tính runat=”server”). ¾ Rich Control: Là tập các thành phần điều khiển đa năng, chúng hchạy trên Server và có thể tạo ra các phần tử cũng như đối tượngHTML phức hợp cho trình khách. ¾ Web Services: Có thể được dùng để thay thế cho DLL, COM, DCOM trước đây. Trang ASP.NET có thể không cần hiển thị kết xuất cho trình khách. Chúng hoạt động như những chương trình xử lý ở hậu cảnh. ¾ Cấu hình và phân phối: File cấu hình đơn giản và dễ dàng với các tập tin theo định dạng văn bản XML (web.config). Các thành phần đối tượng không còn phải đăng ký với hệ thống trước khi sử dụng nữa. ¾ Trạng thái Session: Tự động quản lý trạng thái của đối tượng Session và Application, có thể lưu nội dung của Session hay 156 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai Application của một ứng dụng đặc thù nào đó xuống file trên đĩa để sử dụng lại. ¾ Xử lý lỗi: Các công cụ debug và trace được nâng cấp và đáng tin cậy hơn. ¾ Quản lý bảo mật: Chúng ta có thể tận dụng các dịch vụ đăng nhập tùy biến cho trang tài liệu ASP.NET theo phong cách của Web hoặc cơ chế đăng nhập và kiểm tra quyền truy xuất dựa trên hệ thống bảo mật của hệ điều hành. ¾ Tùy biến vùng đệm trên trình chủ. ¾ Một tập các đối tượng phong phú: ASP.NET hỗ trợ một tập phong phú các thư viện, lớp và đối tượng, nhằm phục vụ cho hầu hết những gì mà các nhà phát triển ứng dụng cần đến khi làm việc với ASP.NET. Lưu ý rằng, các đối tượng nội tại khác nhau như: Request, Response, Form, Cookies, Server Variables đầu được giữ lại và hoàn toàn tương thích với ASP. Tuy nhiên, ASP.NET đã cung cấp thêm cho các đối tượng này rất nhiều thuộc tính và phương thức mới giúp nâng cao khả năng xử lý cho ứng dụng. 4.1.5.4 Vấn đế bảo mật: Bảo mật là một khía cạnh cực kỳ quan trọng trong các ứng dụng Web. Bước đầu tiên trong việc tạo một ứng dụng an toàn là phải hiểu được vấn đề bảo mật thuộc loại nào trong các ứng dụng Web. Chúng ta cũng cần phải biết các chiến lược cơ bản được sử dụng để bảo vệ ứng dụng và hệ thống của mình. 157 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai Hầu hết các ứng dụng Web đều hạn chế sự truy cập vào một vài phần của site. Chẳng hạn, khi một site lưu trữ thông tin về credit card của khách hàng vào cơ sở dữ liệu thì cơ sở dữ liệu phải được đảm bảo an toàn trước các truy cập công cộng. Việc bảo mật của ASP.NET nhắm vào điều này và các vấn đề bảo mật khác. ASP.NET cùng với Microsoft Internet Information Services (IIS) có thể chứng thực khả năng của người dùng chẳng hạn như thông qua tên đăng nhập và mật khẩu theo bất kỳ phương thức chứng thực nào sau đây: ¾ Windows: Basic, digest, hay Integrated Windows Authentication. ¾ Microsoft Passport authentication. ¾ Form authentication. ¾ Client Certificate authentication. Các điều khiển ASP.NET truy xuất tới thông tin của site bằng việc so sánh credentials được chứng thực, hoặc là mô tả chúng sử dụng các permissions của hệ thống file NTFS, hoặc là sử dụng một file cấu hình dạng XML liệt kê danh sách authorized users, các authorized roles (group), hay authorized HTML verbs. ‰ Cách ASP.NET Security làm việc: Việc bảo vệ các Web site là một vấn đề cực kỳ quan trọng và phức tạp đối với các nhà phát triển ứng dụng Web. Một hệ thống bảo mật yêu cầu phải có việc hoạch định cẩn thận, và Web site Administrators cùng với những người lập trình phải hiểu một cách sâu sắc các tùy chọn cho việc bảo vệ site của họ. 158 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai ASP.NET làm việc phối hợp với Microsoft .NET Framework và Microsoft Internet Information Services (IIS) để cung cấp sự bảo mật cho ứng dụng Web. Để bảo vệ một ứng dụng ASP.NET, bạn phải thực hiện hai chức năng cơ bản sau: ¾ Authentication (Sự chứng thực): Để giới hạn quyền truy cập đối với một số người chỉ định, chúng ta cần nhận dạng chúng. Chẳng hạn, mỗi khi người sử dụng nhập vào Username và Password của họ để đăng nhập vào hệ thống, nếu đăng nhập thành công thì những tài nguyên mà bạn cho phép có thể xử lý ứng với quyền họ có. ¾ Authorization (Sự phân quyền): Hạn chế quyền truy cập bằng việc cấp quyền hoặc từ chối (granting or denying) các quyền cụ thể cho một người dùng đã được chứng thực. IIS cũng có thể cấp quyền hay từ chối truy cập dựa trên host name hay địa chỉ IP của người dùng. ‰ Kiến trúc ASP.NET: Hình sau mô tả mối liên hệ giữa các hệ thống bảo mật trong ASP.NET: Hình 4-2: ASP.NET Architecture 159 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai Như mô tả hình trên cho thấy, tất cả các Web clients truyền thông với các ứng dụng ASP.NET thông qua IIS. IIS giải mã và xác nhận một cách tùy ý các request. Nếu Allow Anonymous được đặt là true, thì sẽ không có việc chứng thực. IIS cũng tìm kiếm các tài nguyên được yêu cầu (chẳng hạn như một ứng dụng ASP.NET), và nếu như client được cấp quyền thì sẽ trả về tài nguyên tương ứng. Ngoài ra với các đặc điểm bảo mật được xây dựng sẵn của ASP.NET, một ứng dụng ASP.NET có thể sử dụng các đặc điểm bảo mật mức thấp của .NET Framework. ¾ Tích hợp với IIS: Khi xem xét sự chứng thực ASP.NET, chúng ta nên hiểu sự tương tác với các dịch vụ chứng thực IIS. IIS luôn giả sử rằng một tập các credentials maps tới một tài khoản Microsoft Windows NT và sử dụng chúng để chứng thực một người dùng. Có 3 loại chứng thực khác nhau có sẵn trong IIS 5.0 tới IIS 6.0: basic, digest, và Integrated Windows Authentication (NTLM or Kerberos). Chúng ta có thể chọn kiểu chứng thực được sử dụng trong các dịch vụ IIS administrative. Nếu bạn yêu cầu một URL chứa một ứng dụng ASP.NET, thì request và thông tin chứng thực được chuyển giao cho ứng dụng. ASP.NET cung cấp thêm hai kiểu chứng thực bổ sung sau: Forms authentication và Passport authentication. ¾ Sử dụng các files cấu hình của ASP.NET: Cấu hình ASP.NET, phần bảo mật, có một kiến trúc phân lớp. Tất cả các thông tin cấu hình cho ASP.NET được chứa trong các files Web.config và Machine.config. Web.config có thể được đặt trong cùng thư mục với các files ứng dụng. File Machine.config ở trong thư mục Config 160 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai của thư mục cài đặt gốc. Các thư mục con kế thừa các cài đặt từ một thư mục trừ phi nó được ghi chồng lên bởi một file Web.config trong thư mục con đó. Trong một file Web.config sẽ có các phần cho từng loại chức năng của ASP.NET.Có 3 phần con chính trong file Web.config liên quan đến vấn đề bảo mật: authentication, authorization, va identity. Các giá trị cho mỗi phần tử bảo mật thường được đặt bằng việc ghi đè lên một phần thuộc file cấu hình mức máy tính với một phần tương tự trong một file cấu hình ứng dụng được đặt trong thư mục gốc của ứng dụng. Tất cả các thư mục con được kế thừa một cách tự động các cài đặt này. Tuy nhiên các thư mục con cũng có thể có các files cấu hình riêng cho nó mà sẽ ghi đè lên các cài đặt khác. Lưu ý, cấu hình ASP.NET chỉ áp dụng cho các tài nguyên ASP.NET (được đăng ký điều khiển bởi Aspnet_isapi.dll). 4.1.5.5 Thiết kế theo mô hình đa tầng (N-Tier): Một trong những thay đổi quan trọng khi cài đặt ứng dụng ASP.NET phía trình chủ là sự phân tầng trong ứng dụng. Các ứng dụng ngày nay thường áp dụng mô hình đa tầng (Multi-Tier) phân rã chức năng của từng đơn thể đến mức tối đa. Trong mô hình phân tầng, các nghiệp vụ xử lý Logic của ứng dụng được cài đặt thành những đối tượng riêng biệt. Cụ thể chúng bao gồm 3 tầng (3-tiers): ¾ Presentation Tier: Chứa các trang ASP.NET định dạng giao diện và triệu gọi đối tượng ở tầng xử lý. 161 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai ¾ Bussiness Tier: Thực hiện chức năng chính của chương trình bao gồm mã tách rời phần định dạng HTML. ¾ Data Tier: Thực hiện việc kết nối và truy xuất cơ sở dữ liệu. 4.1.5.6 Truy xuất dữ liệu với ASP.NET: ASP.NET bao gồm các công cụ truy xuất dữ liệu làm cho việc thiết kế các sites trở nên dễ dàng hơn cho phép người dùng tương tác với cơ sở dữ liệu thông qua các Web pages. Để truy cập dữ liệu SQL từ ASP.NET thực hiện các bước sau: 1. Tạo một kết nối đến cơ sở dữ liệu sử dụng lớp SqlConnection. 2. Chọn một tập các records từ cơ sở dữ liệu sử dụng lớp SqlDataAdapter. 3. Fill một DataSet sử dụng lớp SqlDataAdapter. 4. Nếu việc chọn dữ liệu từ cơ sở dữ liệu chỉ nhằm mục đích chỉ đọc nên sử dụng lớp SqlDataReader (hoặc OleDbDataReader). Khi sử dụng SqlDataReader, chọn các records sử dụng truy vấn SqlCommand và tạo một đối tượng SqlDataReader được trả về từ phương thức ExecuteReader của đối tượng SqlCommand. 5. Kết buộc (bind) với một server control chẳng hạn như DataGrid, với một DataSet, DataView, hay SqlDataReader. 4.1.5.7 ASP.NET với Windows Server 2003: Để xây dựng ứng dụng thương mại điện tử với công nghệ .NET trên môi trường Microsoft Windows, thay vì sử dụng hệ điều hành Windows 2000 với IIS 5.0 cùng với bộ .NET Framework phiên bản 1.0, chúng ta có thể cài đặt hệ đìều hành Windows Server 2003 với IIS 6.0. 162 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai Với những đặc điểm cập nhật mới nhất và nền tảng hoàn chỉnh, tích hợp và ổn định, hệ điều hành Windows Server 2003 thiết kế nhằm giúp cho khách hàng nhằm giảm chi phí và tăng hiệu quả hoạt động kinh doanh. Cùng với IIS 6.0 và .NET Framework tích hợp trong hệ điều hành, Microsoft cho phép xây dựng ứng dụng thương mại điện tử với quy mô lớn và ưu việt hơn. Sau đây là một số đặc điểm mà Windows Server 2003 hỗ trợ cho ứng dụng ASP.NET: ¾ Sự hợp nhất .Net Framework. ¾ Hoạt động đáng tin cậy. ¾ Trình điều khiển IIS 6.0 tăng cường khả năng thi hành, tính tin cậy và khả năng quản lý. ¾ Tính mềm dẻo và dễ dàng nâng cấp. ¾ Sự thi hành tối ưu. ¾ Sự cải tiến COM: COM+ là một mở rộng của COM (Component Object Model), giờ đây các phiên bản ứng dụng COM+ có thể được cài đặt và cấu hình trên cùng một máy. Đặc điểm này đã làm giảm chi phí và thời gian sử dụng nhiều server để điều hành những phiên bản khác nhau của một ứng dụng. ¾ Sự cải tiến ứng dụng Server: .NET Framework hợp nhất hai kỹ thuật truyền thông không đồng thời SOAP (Simple Object Access Protocol) và MSMQ (Microsoft Message Queuing) cho phép nhà 163 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai phát triển xây dựng những ứng dụng thiết thực và có khả năng xử lý độc lập. ¾ Sự cải tiến hỗ trợ xử lý đa trình đối xứng ¾ Hỗ trợ cấu hình phần cứng 64-Bit. Ghi chú: Phần này được tham khảo trong tài liệu: Xây dựng và triển khai ứng dụng Thương Mại Điện Tử - Tập 2: Với công cụ ASP.NET, Visual Basic.NET, SQL Server, Phạm Hữu Khang (Chủ biên). 4.1.5.8 Làm việc với các tập tin cấu hình: ‰ Khai báo trong Global.asax: ASP.NET hỗ trợ tập tin toàn cục (global.asax) cho mỗi ứng dụng Web và nằm trong thư mục gốc của ứng dụng. Tập tin này được sử dụng để thực hiện các biến cố, đối tượng và biến mang tính toàn cục cho ứng dụng. Định dạng tập tin Global.asax: Cấu trúc của tập tin Global.asax bao gồm các khai báo chỉ mục, biến cố và mã ASP.NET như sau: <Application Event Prototypes] ¾ Chỉ mục Directive: Khai báo tương tự như các trang ASP.NET. Các application directives được hỗ trợ trong ASP.NET bao gồm: @Application, @Import, @Assembly. ¾ Các biến cố: Trang global.asax thường sử dụng các biến cố sau: protected void Application_Start(Object sender, EventArgs e) { // Kích hoạt khi ứng dụng khởi động. } 164 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai protected void Session_Start(Object sender, EventArgs e) { // Kích hoạt khi session khởi động. } protected void Application_BeginRequest(Object sender, EventArgs e) { } protected void Application_EndRequest(Object sender, EventArgs e) { } protected void Application_AuthenticateRequest(Object sender, EventArgs e) { } protected void Application_Error(Object sender, EventArgs e) { } protected void Session_End(Object sender, EventArgs e) { } protected void Application_End(Object sender, EventArgs e) { } ‰ Khai báo trong Web.config: Web.config được sử dụng để cấu hình ứng dụng. Ngoài các tham số liên quan đến ứng dụng, bạn cũng có thể khai báo các khóa kết nối cơ sở dữ liệu SQL Server. Sau đây là nội dung của một trang web.config: <session name=”sessionState” type=”System.Web.SessionState.SessionStateSectionHandler, System.Web, Version=”1.0.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” allowDefinition=”MachineToApplication” /> <customErrors mode=”On” 165 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai defaultRedirect=”sorry.aspx”> <add key=”conn” value="Server=thesis;Integrated Security=SSPI;Database=Booking;Connection Timeout=15;" /> ‰ Khai báo trong Machine.config: Mỗi ứng dụng cấu hình trong IIS đều có nhiều nhất một tập tin web.config trong thư mục gốc. Nếu như muốn tất cả ứng dụng trong IIS cùng sử dụng chung một cấu hình thì ta có thể khai báo trong machine.config. Như vậy, machine.config có tầm vực toàn bộ hệ thống (Web server), trong khi web.config có tầm vực trong mỗi ứng dụng. Lưu ý rằng, nếu như trước đây ta phải khởi động lại IIS mỗi khi có thay đổi cấu hình ứng dụng, thì với hai tập tin cấu hình web.config và machine.config, IIS không cần phải khởi động mỗi khi có thay đổi, bởi vì sự thay đổi được thực hiện trong hai tập tin cấu hình này. Chính vì vậy, mỗi khi hệ thống nhận biết một trong hai tập tin này có thay đổi về cấu trúc lẫn nội dung, thì ASP.NET sẽ nạp lại cấu hình mới. 4.2 Triển khai và thử nghiệm chương trình: 4.2.1 Triển khai và thử nghiệm ứng dụng: Trước tiên copy thư mục ứng dụng có tên Booking trong đĩa CD vào đĩa cứng (chẳng hạn C:\Booking). Sau đó, bằng việc cấu hình trong IIS cùng với việc cấu hình ASP.NET trong IIS, bạn có thể truy cập vào web site thông qua địa chỉ sau: và trang mặc định sẽ 166 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai được triệu gọi (default.aspx). Cấu bước cấu hình cụ thể như sau: Vào IIS, chọn Default Web Site Æ New Virtual Directory…Æ Gõ vào ô Alias tên truy cập (ví dụ: booking) Æ Chọn đường dẫn tới thư mục vừa chép các files chương trình (C:\Booking) Æ Thiết lập các quyền truy xuất Æ Finish. Kế tiếp, bạn cần phải tạo cơ sở dữ liệu cho ứng dụng trong cơ sở dữ liệu SQL Server 2000 bằng cách sử dụng trình điều khiển SQL Server Enterprise Manager (EMC) như hình 4-3: Hình 4-3: SQL Server Enterprise Manager Kế tiếp, bạn tạo cơ sở dữ liệu có tên Booking bằng cách chọn ngăn Database Æ Right-Click Æ New Database như hình 4-4, đặt tên cơ sở dữ liệu là Booking và chọn địa chỉ địa chỉ để lưu trữ cơ sở dữ liệu như hình 4- 5. 167 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai Hình 4-4: Tạo cơ sở dữ liệu Booking 168 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai Hình 4-5: Chọn chức năng Restore Database Sau khi tạo thành công cơ sở dữ liệu Booking, tên cơ sở dữ liệu này sẽ xuất hiện trong danh sách cơ sở dữ liệu của SQL Server. Bước kế tiếp là copy tập tin backup có tên Booking trong thư mục Database trên CD- Room vào đĩa cứng. Trở lại trình điều khiển EMC, bạn phải phục hồi cơ sở dữ liệu từ tập tin backup. Để làm điều này, bạn chọn tên cơ sở dữ liệu Booking và Right-Click Æ All Tasks Æ Restore Database, cửa sổ xuất hiện như hình 4-6. Để phục hồi chính xác cấu trúc cơ sở dữ liệu bạn phải chọn tùy chọn như hình vẽ 4-7. Chọn OK, SQL Server phục hồi thành công cơ sở dữ liệu 169 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai Booking. Sau đó, bạn trở lại cơ sở dữ liệu Booking và Refresh, danh sách đối tượng cơ sở dữ liệu xuất hiện như hình 4-8. Hình 4-6: Chuẩn bị Restore cơ sở dữ liệu 170 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai Hình 4-7: Ghi đè lên tập tin cơ sở dữ liệu 171 KH OA C NT T – Đ H KH TN Chương 4. Cài đặt và Triển khai Hình 4-8: Danh sách đối tượng cơ sở dữ liệu 172 KH OA C NT T – Đ H KH TN Chương 5. Tổng kết Chương 5. TỔNG KẾT 5.1 Kết luận: Xây dựng một ứng dụng thương mại sử dụng một công nghệ lập trình mới, hiện đại có những thú vị song cũng không ít thách thức. Thứ nhất, mặc dù thương mại điện tử không còn mới lạ nữa nhưng đối với chúng em thời gian được tiếp cận nó không phải là nhiều. Thứ hai, đây là lần đầu tiên chúng em thật sự làm việc với ASP.NET để xây dựng một ứng dụng Web. Do đó, quá trình thực hiện luận văn gặp khá nhiều khó khăn, mất khá nhiều thời gian để có thể hiểu nắm được cách làm việc với ASP.NET, có những lúc tưởng như không thể hoàn thành kịp tiến độ. Ngoài ra, để xây dựng một trang web thành công thì giao diện cũng là một yếu tố rất quan trọng, nó phải là sự kết hợp hài hòa giữa sự hấp dẫn, lôi cuốn người dùng với sự đơn giản, thân thiện, dễ sử dụng. Về mặt này thì nhóm chúng em thật sự không có khiếu lắm về thẫm mỹ nên giao diện khá đơn giản. Sau đây là những phần mà nhóm chúng em đã hoàn thành trong luận văn này (mặc dù còn rất nhiều ý tưởng, dự định chưa thể thực hiện được do khả năng và thời gian có hạn, hy vọng rằng có thể hoàn thiện hơn trong thời gian tới): 1. Giao diện được xây dựng khá hoàn chỉnh, tương ứng với từng đối tượng người dùng có thanh menu riêng, chứa các khả năng có thể thực hiện. 2. Với đối tượng người dùng là Quản trị thì có thể thực hiện được các chức năng sau: 173 KH OA C NT T – Đ H KH TN Chương 5. Tổng kết ¾ Đăng nhập và hệ thống (có hỗ trợ chức năng tìm kiếm mật khẩu khi quên mật khẩu) ¾ Xem danh sách khách viếng. ¾ Xem danh sách khách sạn. ¾ Xem danh sách hãng hàng không. ¾ Xem danh sách người dùng với vai trò quản trị. ¾ Xem thông tin chi tiết của từng khách viếng. ¾ Xem thông tin chi tiết của từng khách sạn. ¾ Xem thông tin chi tiết của từng hãng hàng không. ¾ Xem thông tin chi tiết của từng người dùng với vai trò quản trị. ¾ Xóa một khách viếng khỏi cơ sở dữ liệu. ¾ Xóa một khách sạn khỏi cơ sở dữ liệu. ¾ Xóa một hãng hàng không khỏi cơ sở dữ liệu. ¾ Xóa một người dùng khỏi cơ sở dữ liệu. ¾ Điều chỉnh thông tin cá nhân. ¾ Quản lý thông tin đặt phòng của khách viếng. ¾ Quản lý thông tin đặt vé máy bay của khách viếng. ¾ Thêm một người sử dụng mới với vai trò quản trị. ¾ Xem danh sách thông điệp của các đối tượng khác gửi tới. ¾ Xem nội dung thông điệp, gửi và xóa thông điệp trong danh sách. ¾ Các chức năng tùy chọn bổ sung khác như: xem và cập nhật các bảng tham số… 3. Với đối tượng người dùng là Khách viếng thì có thể thực hiện được các chức năng như sau: ¾ Đăng ký để trở thành thành viên. ¾ Đăng nhập vào hệ thống (nếu có đăng ký) (có hỗ trợ chức năng tìm kiếm mật khẩu khi quên mật khẩu). ¾ Đặt phòng khách sạn. 174 KH OA C NT T – Đ H KH TN Chương 5. Tổng kết ¾ Đặt vé máy bay. ¾ Tìm kiếm thông tin các khách sạn. ¾ Hiệu chỉnh thông tin cá nhân. ¾ Xem danh sách các thông điệp do phía quản trị gửi đến. ¾ Xem nội dung thông điệp, gửi và xóa thông điệp trong danh sách. 4. Với đối tượng người dùng là Khách sạn và Hãng hàng không thì có thể thực hiện được các chức năng như sau: ¾ Đăng ký để trở thành nhà cung cấp dịch vụ (cho thuê phòng khách sạn, bán vé máy bay). ¾ Đăng nhập vào hệ thống (nếu có đăng ký) (có hỗ trợ chức năng tìm kiếm mật khẩu khi quên mật khẩu). ¾ Nhập các thông tin mô tả cho khách sạn hay hãng hàng không. ¾ Điều chỉnh thông tin đăng ký. ¾ Xem, gửi và xóa các thông điệp cho phía quản trị. 5. Các yêu cầu về bảo mật: Sử dụng kiến trúc bảo mật của ASP.NET. 6. Khả năng tương thích với các trình duyệt khác nhau: Chạy tốt trên các trình duyệt khác nhau có hỗ trợ kiến trúc bảo mật mới của ASP.NET như: Internet Explorer 6.0, Netscape 7.1, Mozilla. 5.2 Hướng phát triển: Để tài có thể được mở rộng và phát triển theo các hướng sau: 5.2.1 Xây dựng bổ sung thêm các nhà cung cấp dịch vu khác: Như trên đã trình bày, hệ thống đã xây dựng còn khá nhiều hạn chế cả về giao diện lẫn chức năng, trong đó là khả năng liên kết với các nhà cung cấp dịch vụ còn khá ít. Trong tương lai, có thể mở rộng ra liên kết với các khách sạn, hãng không không và đồng thời cũng phối hợp với các 175 KH OA C NT T – Đ H KH TN Chương 5. Tổng kết dịch vụ liên quan khác như: thuê nhà, thuê xe, kết hợp với các tour du lịch… Nếu làm được như thế thì website sẽ có thể hoàn thiện hơn. 5.2.2 Liên kết với các hệ thống ngân hàng: Hiện nay, hệ thống ngân hàng ở nước ta chưa hỗ trợ phổ biến hình thức thanh toán tín dụng qua mạng. Do đó, nếu trong tương lai dịch vụ phát triển thì việc liên kết với các ngân hàng để thực hiện quá trình thanh toán trực tuyến được nhanh chóng và hiệu quả hơn. 5.2.3 Liên kết với các đối tác là nhà cung cấp dịch vụ để thực hiện quá trình đăng ký và thanh toán tự động: Điều này hiện chưa làm được do hai vấn đề sau: thứ nhất, công nghệ trong nước còn chưa thể đáp ứng được; thứ hai, trình độ có hạn của nhóm thực hiện đề tài. 5.2.4 Đưa vào triển khai ứng dụng trên thực tế: Luận văn này được hoàn thành khá chậm so với dự kiến nên đã không thể đưa vào triển khai ứng dụng thực tế kịp. Hy vọng sau khi hoàn thiện sẽ có thể đưa vào vận hành trên mạng Internet. 176 KH OA C NT T – Đ H KH TN TÀI LIỆU THAM KHẢO 1) .NET Framework SDK Documentation. 2) Phạm Hữu Khang (Chủ biên), Xây dựng và triển khai ứng dụng Thương Mại Điện Tử - Tập 2: Với công cụ ASP.NET, Visual Basic.NET, SQL Server, NXB Thống Kê, 2003. (Các chương 1, 19, 20, 22). 3) Đặng Văn Đức, Phân tích thiết kế hướng đối tượng bằng UML, NXB Giáo Dục, 2002. 177

Các file đính kèm theo tài liệu này:

  • pdfUnlock-xd_webside_dat_phong_trong_ks_4843.pdf