TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN MẠNG MÁY TÍNH & VIỄN THÔNG TÔN ANH TUẤN – TRẦN HOÀNG KHANH XÂY DỰNG WEBSITE ĐẶT PHÒNG CHO KHÁCH SẠN LUẬN VĂN CỬ NHÂN TIN HỌC TP. HCM, 2004
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN MẠNG MÁY TÍNH & VIỄN THÔNG TÔN ANH TUẤN - 0012184 TRẦN HOÀNG KHANH - 0012571 XXÂÂYY DDỰỰNNGG WWEEBBSSIITTEE ĐĐẶẶTT PPHHÒÒNNGG CCHHOO KKHHÁÁCCHH SSẠẠNN LUẬN VĂN CỬ NHÂN TIN HỌC GIÁO VIÊN HƯỚNG DẪN ThS. MAI VĂN CƯỜNG NIÊN KHÓA 2000 – 2004
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
LỜI CÁM ƠN
Chúng em sẽ không thể hoàn thành luận văn này nếu không có sự hướng
dẫn và chỉ bảo tận tình của Thầy Mai Văn Cường. Chúng em xin chân thành cảm
ơn sự chỉ bảo của Thầy.
Chúng em xin trân trọng cám ơn quý Thầy cô trong khoa Công nghệ thông
tin trường Đại học Khoa học Tự nhiên Tp. Hồ Chí Minh đã tận tình giảng dạy,
truyền đạt những kiến thức quý báo và tạo điều kiện cho chúng em thực hiện luận
văn này.
Xin chân thành cảm ơn sự giúp đỡ, động viên và chỉ bảo rất tận tình của tất
cả các bạn cũng như các anh chị đi trước trong quá trình thực hiện luận văn.
Mặc dù đã cố gắng nổ lực hết mình, song luận văn chắc chắn còn nhiều
thiếu sót. Chúng em rất mong nhận được sự thông cảm và chỉ bảo tận tình của
quý Thầy cô và các bạn.
Tp. HCM, 7/2004
Nhóm sinh viên thực hiện
Tôn Anh Tuấn – Trần Hoàng Khanh
LỜI NÓI ĐẦU
Sự phát triển của công nghệ thông tin cũng như World Wide Web trong
những năm vừa qua ở Việt Nam và trên thế giới đem đến một khả năng tiềm tàng
có thể được ứng dụng để xây dựng nên một hệ thống thương mại điện tử (đang
còn đi những bước đầu tiên ở Việt Nam). Từ những dự án lớn mang tầm cỡ quốc
gia cho đến những dự án nhỏ cho từng công ty, xí nghiệp đều nhằm các mục đích
như: quảng bá thông tin về các sản phẩm và dịch vụ, tạo sự thuận lợi cho khách
hàng trong việc tiếp cận và mua sản phẩm… với mục đích cuối cùng là lợi nhuận.
Trong bối cảnh hội nhập kinh tế thế giới, nhu cầu hợp tác kinh tế, trao đổi và
giao lưu văn hóa ngày càng nhiều thì việc đi lại, ăn ở của khách nước ngoài khi
đến Việt Nam, cũng như khách trong nước cũng tăng lên. Một thực tế cho thấy là
có những khó khăn, trở ngại đối với người nước ngoài (bao gồm cả Việt kiều ở
các nước) khi có ý định đến Việt Nam là vấn đề chỗ ở, họ rất băn khoăn trong
việc tìm kiếm và đặt chỗ trong một khách sạn mà có thể đáp ứng được nhu cầu
của mình, trong khi đó thì hệ thống các khách sạn ở nướ ta ngày càng lớn, hiện
đại và tiện nghi.
Với mong muốn có thể tạo được một hệ thống website cho phép người dùng
tìm kiếm thông tin về các khách sạn ở Việt Nam, đồng thời hỗ trợ việc đặt phòng
trước qua mạng, chúng em đã tập trung tìm hiểu và thực hiện đề tài “XÂY
DỰNG WEBSITE ĐẶT PHÒNG CHO KHÁCH SẠN - BOOKING
GATEWAY”. Mặc dù đây không hẳn là một nội dung mới mẻ (vì đã có rất
nhiều trang web hỗ trợ các dịch vụ này như: http://www.hoteltravel.com,
http://www.saigon-hotels.net...) nhưng nó là một đề tài có thể đem đến nhiều lợi
ích thiết thực: củng cố và phát huy những kiến thức đã học vào ứng dụng thực tế,
khả năng làm việc độc lập với một đề án thực sự, và nếu thành công nó có thể
góp mặt vào hệ thống các website hỗ trợ dịch vụ khách sạn (và có thể mở rộng
sang các lĩnh vực khác như đặt vé máy bay, thuê xe đi lại...), đồng thời cho khách
hàng thêm một sự lựa chọn tin cậy.
Luận văn bao gồm các nội dung như sau:
Chương 1: Mở đầu. Giới thiệu chung về đề tài, ý nghĩa và các mục tiêu của
đề tài; các đề án và hệ thống tương tự trong và ngoài nước.
Chương 2: Tổng quan về hệ thống Booking Gateway. Giới thiệu tổng
quan về hệ thống sẽ xây dựng, các nhiệm vụ mà hệ thống sẽ thực hiện, và các
giải pháp liên quan.
Chương 3: Phân tích. Bao gồm các tài liệu liên quan đến quá trình phân
tích hệ thống như: phân tích các yêu cầu chức năng và phi chức năng, các mô
hình use case và đặc tả use case, các mô hình lớp và lưu đồ hoạt động.
Chương 4: Thiết kế. Bao gồm các tài liệu liên quan đến quá trình thiết kế
hệ thống như: thiết kế dữ liệu, thiết kế kiến trúc, thiết kế chức năng, thiết kế giao
diện.
Chương 5: Cài đặt và triển khai. Trình bày các vấn đề liên quan đến cài
đặt và triển khai hệ thống như: lựa chọn môi trường cài đặt, các công nghệ mới
được sử dụng, các bước cài đặt chính và việc triển khai hệ thống trên môi trường
Windows.
Chương 6: Kết luận. Trình bày tóm tắt các kết quả đạt được và đề xuất các
hướng mở rộng, phát triển trong tương lai.
MỤC LỤC
Chương 1. 1.1 1.2
1.3 1.4 Chương 2. 2.1
2.1.1 2.1.2
2.2
2.4
TỔNG QUAN VỀ HỆ THỐNG BOOKING GATEWAY.................................. 1 Phát biểu bài toán:........................................................................................................ 1 Các đối tượng phục vụ của hệ thống: .......................................................................... 1 1.2.1 Các khách sạn: ..................................................................................................... 1 1.2.2 Khách viếng, những người có nhu cầu tìm khách sạn: ........................................ 1 1.2.3 Người quản trị website:........................................................................................ 2 Các yêu cầu chính mà hệ thống phải thực hiện: .......................................................... 2 Các công cụ hỗ trợ lập trình:........................................................................................ 3 PHÂN TÍCH ........................................................................................................ 4 Phân tích yêu cầu hệ thống: ......................................................................................... 4 Các yêu cầu chức năng: ....................................................................................... 4 Các yêu cầu phi chức năng: ................................................................................. 5 Bảng chú giải: .............................................................................................................. 6 2.2.1 Giới thiệu: ............................................................................................................ 6 Các định nghĩa: .................................................................................................... 6 2.2.2 2.3 Đặc tả bổ sung:........................................................................................................... 10 2.3.1 Mục tiêu: ............................................................................................................ 10 Phạm vi: ............................................................................................................. 10 2.3.2 Tài liệu tham khảo: ............................................................................................ 10 2.3.3 Chức năng: ......................................................................................................... 10 2.3.4 Tính khả dụng: ................................................................................................... 10 2.3.5 2.3.6 Tính ổn định:...................................................................................................... 10 2.3.7 Hiệu suất: ........................................................................................................... 11 Sự hỗ trợ: ........................................................................................................... 11 2.3.8 Tính bảo mật: ..................................................................................................... 11 2.3.9 Các ràng buộc thiết kế: .................................................................................. 11 2.3.10 Các sơ đồ Use Case:................................................................................................... 12 2.4.1 Mô hình các trường hợp sử dụng của Admin: ................................................... 12 2.4.2 Mô hình các trường hợp sử dụng của Airplane: ................................................ 13 2.4.3 Mô hình các trường hợp sử dụng của Hotel: ..................................................... 14 2.4.4 Mô hình các trường hợp sử dụng của Visitor: ................................................... 15 2.5 Đặc tả Use Case: ........................................................................................................ 15 2.5.1 Đăng nhập vào hệ thống: ................................................................................... 15 2.5.2 Quản lý các Khách sạn:...................................................................................... 17 2.5.3 Quản lý các Hãng hàng không:.......................................................................... 19 2.5.4 Quản lý Khách viếng: ........................................................................................ 21 2.5.5 Quản lý người dùng khác:.................................................................................. 22 2.5.6 Quản lý các thông tin của Khách sạn:................................................................ 24 2.5.7 Quản lý các thông tin của Hãng hàng không: .................................................... 26 2.5.8 Đăng ký nhà cung cấp dịch vụ mới: .................................................................. 28 2.5.9 Đăng ký thành viên mới:.................................................................................... 30 Đăng ký phòng khách sạn:............................................................................. 31 2.5.10 Tìm kiếm Khách sạn, Hãng hàng không: ...................................................... 33 2.5.11
2.5.12 2.5.13 2.5.14 2.5.15 2.5.16
2.6
2.7
Chương 3. 3.1
Nhập mô tả cho Hãng hàng không:................................................................ 34 Nhập mô tả Khách sạn: .................................................................................. 36 Cập nhật mô tả Hãng hàng không:................................................................. 37 Cập nhật mô tả Khách sạn: ............................................................................ 39 Trao đổi thông tin: ......................................................................................... 40 Sơ đồ lớp:................................................................................................................... 43 2.6.1 Admin Login Class: ........................................................................................... 43 2.6.2 Airplane Description Class: ............................................................................... 44 2.6.3 Hotel Description Class: .................................................................................... 45 2.6.4 Exchange Info Class: ......................................................................................... 45 2.6.5 Manage Airplane Class:..................................................................................... 46 2.6.6 Manage Hotel Class: .......................................................................................... 47 2.6.7 Manage Airplane Info Class: ............................................................................. 48 2.6.8 Manage Hotel Info Class: .................................................................................. 49 2.6.9 Manage User Class: ........................................................................................... 50 Manage Visitor Class:.................................................................................... 50 2.6.10 Register Member Class:................................................................................. 51 2.6.11 Register Service Class: .................................................................................. 51 2.6.12 Register Supplier Class:................................................................................. 52 2.6.13 Các lưu đồ hoạt động: ................................................................................................ 53 2.7.1 Đăng nhập hệ thống: .......................................................................................... 53 2.7.2 Khách viếng đăng ký làm thành viên:................................................................ 55 2.7.3 Khách sạn đăng ký làm nhà cung cấp dịch vụ khách sạn: ................................. 57 2.7.4 Khách viếng đặt phòng ở khách sạn: ................................................................. 59 2.7.5 Nhập thông tin mô tả cho Hãng hàng không: .................................................... 61 2.7.6 Nhập thông tin mô tả cho Khách sạn:................................................................ 63 2.7.7 Soạn và gửi các thông điệp: ............................................................................... 65 2.7.8 Xem các thông điệp: .......................................................................................... 67 2.7.9 Xem các thông tin chung của Hãng hàng không: .............................................. 69 Cập nhật các thông tin chung của Khách sạn: ............................................... 71 2.7.10 Cập nhật các thông tin mô tả của Khách sạn: ................................................ 73 2.7.11 Tìm kiếm Khách sạn: ..................................................................................... 75 2.7.12 Thêm người sử dụng mới (với vai trò Admin): ............................................. 77 2.7.13 Xem danh sách người sử dụng (với vai trò Admin): ..................................... 79 2.7.14 Xem thông tin người sử dụng (với vai trò Admin):....................................... 81 2.7.15 Xóa thông tin người sử dụng (với vai trò Admin): ........................................ 83 2.7.16 Xem danh sách các Khách sạn:...................................................................... 85 2.7.17 Xem thông tin chi tiết một Khách sạn: .......................................................... 87 2.7.18 Xóa một Khách sạn:....................................................................................... 89 2.7.19 Xem danh sách khách viếng: ......................................................................... 91 2.7.20 Xem thông tin một khách viếng:.................................................................... 93 2.7.21 Xóa một khách viếng: .................................................................................... 95 2.7.22 THIẾT KẾ.......................................................................................................... 97 Thiết kế dữ liệu: ......................................................................................................... 97 3.1.1 Mô hình dữ liệu logic ở dạng sơ đồ: .................................................................. 98 3.1.2 Danh sách các bảng dữ liệu: .............................................................................. 99
3.2 3.3
3.3.1 3.3.2
3.4 Chương 4. 4.1
4.2
4.2.1 Chương 5.
3.1.3 Danh sách các thành phần của lược đồ dữ liệu:............................................... 104 3.1.4 Danh sách các thuộc tính của từng thành phần:............................................... 106 3.1.5 Danh sách các ràng buộc toàn vẹn:.................................................................. 119 Thiết kế kiến trúc: .................................................................................................... 124 Thiết kế chức năng:.................................................................................................. 127 Bảng mô tả các hàm và thủ tục: ....................................................................... 127 Bảng mô tả module: ......................................................................................... 129 Thiết kế giao diện: ................................................................................................... 130 CÀI ĐẶT VÀ TRIỂN KHAI........................................................................... 139 Cài đặt: ..................................................................................................................... 139 4.1.1 Lựa chọn môi trường cài đặt:........................................................................... 139 Lựa chọn mô hình cài đặt: ............................................................................... 139 4.1.2 4.1.3 Xây dựng các lớp xử lý chính:......................................................................... 141 Cài đặt các hàm xử lý chủ yếu: ........................................................................ 147 4.1.4 Tiếp cận với công nghệ lập trình Web mới – ASP.NET: ................................ 153 4.1.5 Triển khai và thử nghiệm chương trình: .................................................................. 166 Triển khai và thử nghiệm ứng dụng:................................................................ 166 TỔNG KẾT...................................................................................................... 173 5.1 Kết luận:................................................................................................................... 173 5.2 Hướng phát triển: ..................................................................................................... 175 5.2.1 Xây dựng bổ sung thêm các nhà cung cấp dịch vu khác: ................................ 175 Liên kết với các hệ thống ngân hàng: .............................................................. 176 5.2.2 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ý 5.2.3 và thanh toán tự động: .................................................................................................... 176 5.2.4 Đưa vào triển khai ứng dụng trên thực tế: ....................................................... 176
DANH SÁCH HÌNH Hình 2-1: Mô hình use-case của Admin .................................................................................... 12 Hình 2-2: Mô hình use-case của Airplane ................................................................................. 13 Hình 2-3: Mô hình use-case của Hotel ...................................................................................... 14 Hình 2-4: Mô hình use-case của Visitor .................................................................................... 15 Hình 2-5: Class Diagram: Đăng nhập hệ thống ......................................................................... 43 Hình 2-6: Class Diagram: Mô tả hãng hàng không ................................................................... 44 Hình 2-7: Class Diagram: Mô tả khách sạn ............................................................................... 45 Hình 2-8: Class Diagram: Trao đổi thông tin ............................................................................ 45 Hình 2-9: Class Diagram: Quản lý Hãng hàng không ............................................................... 46 Hình 2-10: Class Diagram: Quản lý khách sạn.......................................................................... 47 Hình 2-11: Class Diagram: Quản lý thông tin Hãng hàng không.............................................. 48 Hình 2-12: Class Diagram: Quản lý thông tin khách sạn .......................................................... 49 Hình 2-13: Class Diagram: Quản trị người dùng....................................................................... 50 Hình 2-14: Class Diagram: Quản trị khách viếng...................................................................... 50 Hình 2-15: Class Diagram: Đăng ký thành viên........................................................................ 51 Hình 2-16: Class Diagram: Đăng ký dịch vụ............................................................................. 51 Hình 2-17: Class Diagram: Đăng ký nhà cung cấp dịch vụ....................................................... 52 Hình 2-18: Sequence Diagram: Đăng nhập hệ thống ................................................................ 53 Hình 2-19: Collaboration Diagram: Đăng nhập hệ thống.......................................................... 54 Hình 2-20: Sequence Diagram: Đăng ký thành viên ................................................................. 55 Hình 2-21: Collaboration Diagram: Đăng ký thành viên........................................................... 56 Hình 2-22: Sequence Diagram: Đăng ký nhà cung cấp dịch vụ ................................................ 57 Hình 2-23: Collaboration Diagram: Đăng ký nhà cung cấp dịch vụ ......................................... 58 Hình 2-24: Sequence Diagram: Đặt phòng khách sạn ............................................................... 59 Hình 2-25: Collaboration Diagram: Đặt phòng khách sạn ........................................................ 60 Hình 2-26: Sequence Diagram: Nhập thông tin mô tả Hãng hàng không ................................. 61 Hình 2-27: Collaboration Diagram: Nhập thông tin mô tả cho ................................................. 62 Hình 2-28: Sequence Diagram: Nhập thông tin mô tả cho khách sạn ....................................... 63 Hình 2-29: Collaboration Diagram: Nhập thông tin mô tả cho khách sạn ................................ 64 Hình 2-30: Sequence Diagram: Gửi thông điệp ........................................................................ 65 Hình 2-31: Collaboration Diagram: Gửi thông điệp.................................................................. 66 Hình 2-32: Sequence Diagram: Xem thông điệp....................................................................... 67 Hình 2-33: Collaboration Diagram: Xem thông điệp ................................................................ 68 Hình 2-34: Sequence Diagram: Xem thông tin nhà cung cấp dịch vụ....................................... 69 Hình 2-35: Collaboration Diagram: Xem thông tin nhà cung cấp dịch vụ................................ 70 Hình 2-36: Sequence Diagram: Cập nhật thông tin nhà cung cấp dịch vụ ................................ 71 Hình 2-37: Collaboration Diagram: Cập nhật thông tin ............................................................ 72 Hình 2-38: Sequence Diagram: Cậpnhật thông tin mô tả của nhà cung cấp dịch vụ ................ 73 Hình 2-39: Collaboration Diagram: Cập nhật thông tin mô tả của nhà cung cấp dịch vụ......... 74 Hình 2-40: Sequence Diagram: Tìm kiếm khách sạn ................................................................ 75 Hình 2-41: Sequence Diagram: Tìm kiếm khách sạn ................................................................ 76 Hình 2-42: Sequence Diagram: Thêm mới người sử dụng........................................................ 77
Hình 2-43: Collaboration Diagram: Thêm mới người sử dụng ................................................. 78 Hình 2-44: Sequence Diagram: Xem danh sách người sử dụng................................................ 79 Hình 2-45: Collaboration Diagram: Xem danh sách người sử dụng ......................................... 80 Hình 2-46: Sequence Diagram: Xem thông tin người sử dụng ................................................. 81 Hình 2-47: Collaboration Diagram: Xem thông tin của người sử dụng .................................... 82 Hình 2-48: Sequence Diagram: Xóa người sử dụng.................................................................. 83 Hình 2-49: Collaboration Diagram: Xóa người sử dụng ........................................................... 84 Hình 2-50: Sequence Diagram: Xem danh sách khách sạn ....................................................... 85 Hình 2-51: Collaboration Diagram: Xem danh khách sạn......................................................... 86 Hình 2-52: Sequence Diagram: Xem thông tin chi tiết của khách sạn ...................................... 87 Hình 2-53: Collaboration Diagram: Xem thông tin chi tiết của khách sạn ............................... 88 Hình 2-54: Sequence Diagram: Xóa một khách sạn.................................................................. 89 Hình 2-55: Collaboration Diagram: Xóa một khách sạn ........................................................... 90 Hình 2-56: Sequence Diagram: Xem danh sách khách viếng.................................................... 91 Hình 2-57: Collaboration Diagram: Xem danh sách khách viếng............................................. 92 Hình 2-58: Sequence Diagram: Xem thông tin khách viếng ..................................................... 93 Hình 2-59: Collaboration Diagram: Xem thông tin khách viếng .............................................. 94 Hình 2-60: Sequence Diagram: Xóa một khách viếng .............................................................. 95 Hình 2-61: Collaboration Diagram: Xóa một khách viếng........................................................ 96 Hình 3-1: Sơ đồ mô hình dữ liệu ............................................................................................... 98 Hình 3-2: Cấu trúc cây phân nhóm - Cấp 1 ............................................................................. 124 Hình 3-3: Cấu trúc cây phân nhóm - Cấp 2: Admin ................................................................ 125 Hình 3-4: Cấu trúc cây phân nhóm - Cấp 2: Hãng hàng không............................................... 125 Hình 3-5: Cấu trúc cây phân nhóm - Cấp 2: Khách sạn .......................................................... 125 Hình 3-6: Cấu trúc cây phân nhóm - Cấp 2: Khách viếng....................................................... 126 Hình 3-7: Trang chủ................................................................................................................. 131 Hình 3-8: Đăng ký thành viên.................................................................................................. 132 Hình 3-9: Đăng nhập................................................................................................................ 133 Hình 3-10: Mô tả khách sạn..................................................................................................... 134 Hình 3-11: Mô tả hãng hàng không ......................................................................................... 135 Hình 3-12: Xem danh sách khách viếng .................................................................................. 136 Hình 3-13: Thêm người dùng .................................................................................................. 137 Hình 3-14: Quản lý .................................................................................................................. 138 Hình 4-1: Kiến trúc n-tier ........................................................................................................ 140 Hình 4-2: ASP.NET Architecture ............................................................................................ 159 Hình 4-3: SQL Server Enterprise Manager ............................................................................. 167 Hình 4-4: Tạo cơ sở dữ liệu Booking ...................................................................................... 168 Hình 4-5: Chọn chức năng Restore Database .......................................................................... 169 Hình 4-6: Chuẩn bị Restore cơ sở dữ liệu................................................................................ 170 Hình 4-7: Ghi đè lên tập tin cơ sở dữ liệu................................................................................ 171 Hình 4-8: Danh sách đối tượng cơ sở dữ liệu .......................................................................... 172
DANH SÁCH BẢNG
Bảng 3-1: Danh sách các thành phần của lược đồ dữ liệu ....................................................... 106 Bảng 3-2: Bảng dữ liệu tblHotels ............................................................................................ 107 Bảng 3-3: Bảng dữ liệu tblAirplanes ....................................................................................... 108 Bảng 3-4: Bảng dữ liệu tblVisitors .......................................................................................... 109 Bảng 3-5: Bảng dữ liệu tblAdmin............................................................................................ 110 Bảng 3-6: Bảng dữ liệu tblRoomInfo ...................................................................................... 111 Bảng 3-7: Bảng dữ liệu tblFlightInfo....................................................................................... 111 Bảng 3-8: Bảng dữ liệu tblBookInfo ....................................................................................... 112 Bảng 3-9: Bảng dữ liệu tblBookDetail .................................................................................... 112 Bảng 3-10: Bảng dữ liệu tblBookResult.................................................................................. 113 Bảng 3-11: Bảng dữ liệu tblBookTicket .................................................................................. 113 Bảng 3-12: Bảng dữ liệu tblPassenger..................................................................................... 114 Bảng 3-13: Bảng dữ liệu FlightResutl ..................................................................................... 114 Bảng 3-14: Bảng dữ liệu tblComments ................................................................................... 114 Bảng 3-15: Bảng dữ liệu tblHotelInbox................................................................................... 115 Bảng 3-16: Bảng dữ liệu tblAirplaneInbox ............................................................................. 115 Bảng 3-17: Bảng dữ liệu tblVisitorInbox ................................................................................ 116 Bảng 3-18: Bảng dữ liệu tblAdminInbox ................................................................................ 116 Bảng 3-19: Bảng dữ liệu tblCountries .................................................................................... 116 Bảng 3-20: Bảng dữ liệu tblProvinces ..................................................................................... 117 Bảng 3-21: Bảng dữ liệu tblRegions........................................................................................ 117 Bảng 3-22: Bảng dữ liệu tblContinents ................................................................................... 117 Bảng 3-23: Bảng dữ liệu tblCities ........................................................................................... 117 Bảng 3-24: Bảng dữ liệu tblErrorMsg ..................................................................................... 118 Bảng 3-25: Bảng dữ liệu tblCommonMsg............................................................................... 118 Bảng 3-26: Bảng dữ liệu tblPayments ..................................................................................... 118 Bảng 3-27: Bảng dữ liệu tblCurrencies ................................................................................... 118 Bảng 3-28: Bảng dữ liệu tblQuestions..................................................................................... 119 Bảng 3-29: Bảng tổng hợp nhóm............................................................................................. 127 Bảng 3-30: Bảng mô tả Module............................................................................................... 130 Bảng 4-1: Danh sách các lớp xử lý chính ................................................................................ 146 Bảng 4-2: Danh sách các lớp đối tượng dữ liệu....................................................................... 147
Chương 1. Tổng quan về hệ thống Booking Gateway
Chương 1. TỔNG QUAN VỀ HỆ THỐNG
BOOKING GATEWAY
1.1 Phát biểu bài toán:
Khách nước ngoài và Việt kiều ở hải ngoại khi dự định về Việt Nam họ
có mong muốn rằng có thể tìm kiếm một khách sạn đảm bảo cho họ một
chỗ ở thích hợp, tiện nghi với giá cả hợp lý. Nếu có thể họ muốn đăng ký
chỗ ở trước khi đến ở (bằng các hình thức thanh toán trả tước và trả sau).
Ngày nay công cụ nhanh nhất và hiệu quả để có thể thực hiện được điều đó
chính là Internet. Bài toán trên đặt ra là làm sao có thể xây dựng một
website cho phép khách hàng (kể cả trong và ngoài nước) có thể tìm kiếm
thông tin của các khách sạn trong nước với các nội dung cụ thể như: Tên
khách sạn, địa chỉ, chuẩn khách sạn, số phòng, giá từng loại phòng… Ngoài
ra, nếu tìm được khách sạn mong muốn họ có thể đặt phòng trực tiếp qua
mạng (thanh toán bằng các hình thức trả trước và trả sau).
1.2 Các đối tượng phục vụ của hệ thống:
1.2.1 Các khách sạn:
Các khách sạn sẽ đăng ký với website để trở thành một nhà cung cấp
dịch vụ cho thuê phòng và các dịch vụ khác của khách sạn. Họ có nhiệm vụ
cung cấp các thông tin về khách sạn, về loại khách sạn, tổng số phòng, cung
cách phục vụ, giá cả, các dịch vụ bổ sung… Những thông tin này sẽ được
cập nhật vào những thời điểm thích hợp để đảm bảo thông tin chính xác.
1.2.2 Khách viếng, những người có nhu cầu tìm khách sạn:
Đối tượng này có thể: đăng ký với website để trở thành thành viên
(thông tin được lưu trữ và họ có thể đăng nhập), tìm kiếm các khách sạn
1
Chương 1. Tổng quan về hệ thống Booking Gateway
thích hợp, đặt phòng trực tuyến qua mạng. Hệ thống sẽ thực hiện việc thanh
toán cho họ.
1.2.3 Người quản trị website:
Nhà quản trị có thể đăng nhập để quản trị website ở bất cứ nơi đâu. Họ
có quyền kiểm soát tất cả các hoạt động của website, cụ thể như: xem các
danh sách đăng ký (nhà cung cấp dịch vụ, thành viên), thêm, xóa, cập nhật
thông tin… và chịu trách nhiệm liên hệ với các khách sạn khi có một yêu
cầu đăng ký phòng (do hiện tại chưa thể thực hiện mọi việc tự động nên khi
có một người tìm phòng khách sạn thì người quản trị sẽ thực hiện các công
việc thủ công như sau: kiểm tra thông tin khách hàng, liên hệ với khách sạn
để xác định xem có phòng đáp ứng yêu cầu của khách hàng hay không, nếu
có thì thực hiện việc đăng ký phòng cho khách hàng, trả lời kết quả đăng ký
cho khách, thực hiện thanh toán). Đồng thời hệ thống sẽ thực hiện việc cập
nhật thông tin vào cơ sở dữ liệu.
1.3 Các yêu cầu chính mà hệ thống phải thực hiện:
(cid:190) Từng đối tượng người dùng sẽ có các chức năng được xử lý độc lập.
(cid:190) Người quản trị có thể thực hiện được các chức năng quản lý toàn bộ hệ
thống như: quản lý khách viếng, quản lý khách sạn, quản lý người
dùng, quản lý các thông tin đăng ký…
(cid:190) Khách viếng có thể đăng ký để trở thành thành viên, đăng nhập vào hệ
thống, đặt phòng khách sạn, tìm kiếm khách sạn, hiệu chỉnh thông tin
cá nhân, trao đổi thông tin với phía quản trị (điều này là quan trọng vì
hiện tại yêu cầu của đề tài là khi nhận được thông tin đăng ký của
khách viếng thì phía quản trị website mới liên lạc với phía khách sạn để
2
Chương 1. Tổng quan về hệ thống Booking Gateway
tiến hành đăng ký, sau khi đăng ký xong mới thông báo kết quả cho
khách viếng là việc đặt phòng có thành công hay không).
(cid:190) Khách sạn có thể đăng ký để trở thành nhà cung cấp dịch vụ cho thuê
phòng, đăng nhập vào hệ thống, nhập các thông tin mô tả cho khách
sạn của mình, hiệu chỉnh các thông tin đăng ký và trao đổi với phía
quản trị.
(cid:190) Hệ thống phải đảm bảo tính bảo mật trong các thông tin đăng ký, đăng
nhập, quản trị,…
1.4 Các công cụ hỗ trợ lập trình:
Ngày nay có rất nhiều công cụ hỗ trợ cho việc lập trình các ứng dụng
thương mại điện tử như:
(cid:190) ASP với các ngôn ngữ script là VBScript và JScript.
(cid:190) ASP.NET: Một công nghệ lập trình ứng dụng mạng mới dựa trên nền
.NET framework của Microsoft.
(cid:190) Macromedia Dreamweaver MX.
(cid:190) Microsoft ASP.NET Web Maxtrix.
(cid:190) JBuilder X.
(cid:190) Về cơ sở dữ liệu có: SQL Server 2000, Oracle, MySQL…
(cid:190) v.v…
Việc lựa chọn một môi trường lập trình thích hợp cũng góp phần vào
thành công của việc xây dựng website.
3
Chương 2. Phân tích
Chương 2. PHÂN TÍCH
2.1 Phân tích yêu cầu hệ thống:
2.1.1 Các yêu cầu chức năng:
2.1.1.1 Yêu cầu chức năng nghiệp vụ:
(cid:190) Cho phép người dùng đăng ký với hệ thống với vai trò khách sạn,
khách viếng, hãng hàng không.
(cid:190) Lưu trữ thông tin của tất cả các đối tượng.
(cid:190) Lưu trữ thông tin đăng ký sử dụng dịch vụ của khách viếng (đăng
ký phòng khách sạn).
(cid:190) Cho phép khách viếng đặt phòng khách sạn qua web.
(cid:190) Cho phép khách viếng đặt vé máy bay qua web.
(cid:190) Cho phép khách viếng tìm kiếm thông tin khách sạn theo các tiêu
chí khác nhau.
(cid:190) Cho phép các nhà cung cấp dịch vụ nhập thông tin mô tả về dịch
vụ của mình và có thể hiệu chỉnh bất cứ lúc nào.
(cid:190) Cho phép các loại người dùng khác nhau hiệu chỉnh thông tin cá
nhân khi cần thiết.
(cid:190) Hỗ trợ cho người quản trị trong việc quản lý hệ thống bao gồm:
quản lý thông tin của tất cả các đối tượng (khách viếng, khách sạn,
hãng hàng không, người dùng quyền quản trị), được quyền thêm
và xóa các đối tượng này; quản lý các thông tin đặt phòng, đặt vé
máy bay và các thông tin liên quan.
(cid:190) Hỗ trợ việc trao đổi thông tin lẫn nhau của các đối tượng.
4
Chương 2. Phân tích
2.1.1.2 Yêu cầu chức năng hệ thống:
(cid:190) Cho phép người dùng đăng nhập vào hệ thống với các vai trò khác
nhau ứng với từng đối tượng.
(cid:190) Đảm bảo tính bảo mật của các thông tin đăng nhập của người
dùng ở xa.
(cid:190) Đảm bảo tính bảo mật của các thông tin đăng ký dịch vụ của
khách viếng (như các mã số của thẻ tín dụng…).
(cid:190) Phân cấp quyền hạn của từng đối tượng người dùng trong việc
truy cập vào các tài nguyên của hệ thống.
2.1.2 Các yêu cầu phi chức năng:
2.1.2.1 Nhằm lợi ích của các đối tượng người dùng:
(cid:190) Tính tiện dụng: Giao diện thân thiện, dễ sử dụng đối với những
người dùng Windows.
(cid:190) Tính hiệu quả: Đảm bảo việc truy xuất nhanh đến các trang và khả
năng kiểm soát lỗi tốt.
(cid:190) Tính tương thích: Hỗ trợ tốt trên các trình duyệt từ IE5.1 trở lên và
các trình duyệt tương thích khác như Netscape, Opera, Mozilla…
(cid:190) Tính tiến hóa.
2.1.2.2 Nhằm lợi ích của việc phát triển dự án:
(cid:190) Thiết kế theo mô hình three-tiers.
(cid:190) Tính module hóa.
(cid:190) Các tham số của hệ thống được thiết kế động, dễ điều chỉnh.
(cid:190) Tính dùng lại của code.
5
Chương 2. Phân tích
2.2 Bảng chú giải:
2.2.1 Giới thiệu:
Bảng chú giải này được dùng để định nghĩa các thuật ngữ đặc thù trong lĩnh
vực của bài toán, giải thích các từ ngữ có thể không quen thuộc đối với
người đọc trong các mô tả use case hoặc các tài liệu khác của đề tài.
Thường thì tài liệu này có thể được dùng như một từ điển dữ liệu không
chính thức, ghi lại các định nghĩa dữ liệu để các mô tả use case và các tài
liệu khác có thể tập trung vào những gì hệ thống phải thực hiện.
2.2.2 Các định nghĩa:
Bảng chú giải này bao gồm các định nghĩa cho các thuật ngữ được sử dụng
trong mô hình use case và trong các tài liệu khác của hệ thống Đăng ký
phòng khách sạn qua mạng (Booking Gateway).
2.2.2.1 Admin (Người quản trị hệ thống):
Admin là người quản trị hệ thống website, chịu trách nhiệm quản lý tất cả
các thông tin người dùng thuộc các đối tượng khác nhau. Ngoài ra, nhiệm
vụ quan trọng của phía quản trị trang web là làm cầu nối liên hệ giữa bên
cung cấp dịch vụ (khách sạn, hãng hàng không) và bên sử dụng dịch vụ
(khách viếng).
2.2.2.2 Airplanes (Hãng hàng không):
Airplanes là chỉ các hãng hàng không, phía cung cấp dịch vụ cho phép đặt
vé máy bay trực tuyến. Hãng hàng không phải đăng ký với website để trở
thành nhà cung cấp dịch vụ chính thức của website. Sau khi đăng ký hãng
hàng không phải cung cấp các thông tin mô tả về dịch vụ mà mình cung cấp
cho website. Các thông tin này được sử dụng trong quá trình tìm kiếm.
6
Chương 2. Phân tích
2.2.2.3 Hotels (Khách sạn):
Hotels là chỉ các khách sạn, phía cung cấp dịch vụ cho phép khách viếng có
thể đăng ký phòng trực tuyến qua mạng. Khách sạn phải đăng ký với
website để trở thành nhà cung cấp dịch vụ chính thức của website. Sau khi
đăng ký khách sạn phải cung cấp các thông tin mô tả về dịch vụ mà mình
cung cấp cho website. Các thông tin này được sử dụng trong quá trình tìm
kiếm.
2.2.2.4 Visitors (Khách viếng):
Khách viếng là đối tượng phục vụ chủ yếu của hệ thống. Khách viếng là
những người có nhu cầu sử dụng các dịch vụ như đăng ký phòng khách sạn,
đặt vé máy bay. Mỗi khách viếng sau khi đăng ký sẽ có một tài khoản riêng.
Mỗi khi cần đăng ký một dịch vụ nào đó (đăng ký phòng chẳng hạn) thì họ
chỉ cần đăng nhập vào hệ thống và chọn dịch vụ cần đăng ký.
2.2.2.5 Manage Hotels (Quản lý khách sạn):
Quản lý thông tin các khách sạn là ám chỉ công việc của người quản trị hệ
thống website. Người quản trị chịu trách nhiệm quản lý các thông tin liên
quan đến các khách sạn như: chấp nhận đăng ký của một khách sạn mới làm
nhà cung cấp dịch vụ, liên hệ với khách sạn khi có một khách đăng ký
phòng, xóa bỏ một khách sạn khỏi cơ sở dữ liệu khi cần thiết…
2.2.2.6 Manage Airplanes (Quản lý hãng hàng không):
Quản lý thông tin các hãng hàng không là ám chỉ công việc của người quản
trị hệ thống website. Người quản trị chịu trách nhiệm quản lý các thông tin
liên quan đến các hãng hàng không như: chấp nhận đăng ký của một hãng
hàng không mới làm nhà cung cấp dịch vụ, liên hệ với hãng hàng không khi
7
Chương 2. Phân tích
có một khách đặt vé máy bay, xóa bỏ một hãng hàng không khỏi cơ sở dữ
liệu khi cần thiết…
2.2.2.7 Manage Users (Quản lý người dùng):
Việc quản trị một hệ thống website có thể đòi hỏi nhiều người thực hiện, do
đó hệ thống cũng hỗ trợ việc quản lý các người dùng với vai trò này. Một
người quản trị có thể thêm, xóa và xem các thông tin của những người khác
theo quyền hạn và chức năng của mình.
2.2.2.8 Manage Visitors (Quản lý khách viếng):
Quản lý khách viếng là công việc của người quản trị website. Người quản
trị có thể chấp nhận yêu cầu đăng ký làm thành viên (với vai trò Visitor) của
khách viếng, xóa một khách viếng và xem thông tin của một khách viếng.
2.2.2.9 Exchange Info (Trao đổi thông tin):
Trao đổi thông tin là việc người quản trị website có nhu cầu gửi thông báo
đến cho các đối tượng khác và ngược lại.
2.2.2.10 Login (Đăng nhập vào hệ thống):
Hệ thống này phục vụ các đối tượng chủ yếu sau: người quản trị hệ thống
(Admin), các khách sạn (Hotels), khách viếng (Visitors), ngoài ra còn có
các hãng hàng không (Airplanes). Mỗi loại đối tượng trên khi đăng ký với
hệ thống website sẽ được cấp một account. Họ sẽ dùng account này để đăng
nhập vào hệ thống.
2.2.2.11 Register New Supplier (Đăng ký nhà cung cấp dịch vụ mới):
Mỗi khách sạn hay hãng hàng không muốn trở thành một thành viên để
cung cấp dịch vụ cho website phải đăng ký với hệ thống. Đây là một use
case thể hiện quá trình đăng ký này.
8
Chương 2. Phân tích
2.2.2.12 Register Member (Đăng ký thành viên):
Đây là một quá trình mà một khách viếng phải thực hiện khi muốn trở thành
một thành viên của hệ thống với vai trò Visitor. Đây cũng là quá trình mà
khách viếng phải thực hiện trước khi có thể đăng ký sử dụng một dịch vụ
nào đó.
2.2.2.13 Register Service (Đăng ký dịch vụ):
Đây là quá trình mà khách viếng thực hiện khi đăng ký sử dụng một dịch vụ
nào đó (chẳng hạn đăng ký phòng khách sạn).
2.2.2.14 Search (Tìm kiếm):
Tìm kiếm là một cơ chế cho phép khách viếng có thể tìm kiếm thông tin của
các khách sạn hay hãng hàng không theo một hay một số tiêu chí nào đó.
2.2.2.15 Airplane Info (Thông tin hãng hàng không):
Đây là những thông tin chung về hãng hàng không như: tên hãng hàng
không, địa chỉ, điện thoại,…
2.2.2.16 Airplane Description:
Đây là những thông tin mô tả về hãng hàng không như: lịch bay, giá vé, các
tuyến bay…
2.2.2.17 Hotel Info:
Đây là những thông tin chung về khách sạn như: tên khách sạn, địa chỉ, điện
thoại,…
2.2.2.18 Hotel Description:
Đây là những thông tin mô tả về khách sạn như: loại khách sạn, loại phòng,
giá tiền, các dịch vụ bổ sung khác,…
9
Chương 2. Phân tích
2.3 Đặc tả bổ sung:
2.3.1 Mục tiêu:
Mục tiêu của tài liệu này là để định nghĩa các yêu cầu của Hệ thống đăng ký
phòng trực tuyến qua mạng (Booking Gateway). Đặc tả bổ sung này liệt kê
các yêu cầu chưa được thể hiện trong các use case. Đặc tả bổ sung cùng với
các use case trong mô hình use case thể hiện đầy đủ các yêu cầu trong hệ
thống.
2.3.2 Phạm vi:
Đặc tả bổ sung áp dụng cho Hệ thống đăng ký phòng trực tuyến qua mạng
(Booking Gateway) được phát triển bởi nhóm thực hiện đề tài này.
Đặc tả này vạch rõ các yêu cầu phi chức năng của hệ thống, như là tính ổn
định, tính khả dụng, và tính hỗ trợ cũng như các yêu cầu chức năng chung
của một số use case.
2.3.3 Tài liệu tham khảo:
Không có.
2.3.4 Chức năng:
(cid:190) Hỗ trợ nhiều người dùng làm làm việc đồng thời.
(cid:190) Phải thông báo kết quả đăng ký cho khách viếng trong thời gian
nhanh nhất.
2.3.5 Tính khả dụng:
(cid:190) Giao diện của website thân thiện, dễ sử dụng.
2.3.6 Tính ổn định:
(cid:190) Hệ thống phải hoạt động liên tục 24 giờ một ngày, 7 ngày mỗi tuần,
với thời gian ngưng hoạt động không quá 5 phút.
10
Chương 2. Phân tích
2.3.7 Hiệu suất:
(cid:190) Hệ thống phải hỗ trợ hàng ngàn người cùng truy cập đến cơ sở dữ
liệu trung tâm đồng thời bất kỳ lúc nào.
2.3.8 Sự hỗ trợ:
(cid:190) Không có.
2.3.9 Tính bảo mật:
(cid:190) Vai trò của từng đối tượng phải được thể hiện rõ ràng.
(cid:190) Chỉ có người quản trị mới có quyền quyết định thêm hay xóa các
đối tượng khác.
(cid:190) Các thông tin chung của mỗi đối tượng do đối tượng đó quản lý.
2.3.10 Các ràng buộc thiết kế:
(cid:190) Hệ thống phải hỗ trợ tốt trên hầu hết các trình duyệt của Windows
như: Internet Explorer, Netscape, Opera, Mozilla…
11
Chương 2. Phân tích
2.4 Các sơ đồ Use Case:
2.4.1 Mô hình các trường hợp sử dụng của Admin:
Hình 2-1: Mô hình use-case của Admin
12
Chương 2. Phân tích
2.4.2 Mô hình các trường hợp sử dụng của Airplane:
Hình 2-2: Mô hình use-case của Airplane
13
Chương 2. Phân tích
2.4.3 Mô hình các trường hợp sử dụng của Hotel:
Hình 2-3: Mô hình use-case của Hotel
14
Chương 2. Phân tích
2.4.4 Mô hình các trường hợp sử dụng của Visitor:
Hình 2-4: Mô hình use-case của Visitor
2.5 Đặc tả Use Case:
2.5.1 Đăng nhập vào hệ thống:
2.5.1.1 Tên Use Case:
(cid:190) Login
2.5.1.2 Mô tả:
(cid:190) Use case này mô tả cách người dùng đăng nhập vào hệ thống với
các vai trò khác nhau (Người quản trị website, Khách sạn, Hãng
hàng không, Khách viếng).
15
Chương 2. Phân tích
2.5.1.3 Dòng sự kiện:
(cid:190) Dòng sự kiện chính:
Use case này bắt đầu khi một actor muốn đăng nhập vào hệ thống.
Các bước thực hiện như sau:
1. Người dùng chọn chức năng đăng nhập.
2. Hệ thống mở trang đăng nhập.
3. Người dùng nhập thông tin đăng nhập (username, password).
4. Người dùng chọn đăng nhập.
5. Hệ thống kiểm tra thông tin đăng nhập và quyết định có cho
phép người dùng đăng nhập hay không.
(cid:137) Tên và/hoặc mật khẩu bị sai:
(cid:137) Nếu trong dòng sự kiện chính, actor nhập sai tên hoặc mật khẩu,
(cid:190) Dòng sự kiện khác:
hệ thống sẽ hiển thị một thông báo lỗi. Actor có thể chọn để trở
về đầu của dòng sự kiện chính hoặc hủy bỏ việc đăng nhập, lúc
này use case kết thúc.
2.5.1.4 Yêu cầu đặc biệt:
(cid:190) Không có.
2.5.1.5 Điều kiện tiên quyết:
(cid:190) Không có.
2.5.1.6 Post-Condition:
(cid:190) Nếu use case thành công, actor lúc này đăng nhập vào hệ thống.
Nếu không trạng thái hệ thống không đổi.
16
Chương 2. Phân tích
2.5.1.7 Điểm mở rộng:
(cid:190) Không có.
2.5.2 Quản lý các Khách sạn:
2.5.2.1 Tên Use Case:
(cid:190) Manage Hotels
2.5.2.2 Mô tả:
(cid:190) Người quản trị website thường xuyên phải kiểm tra thông tin của
các khách sạn để đảm bảo tính chính xác và thông tin được cập nhật
thường xuyên. Use case này cho phép người quản trị có thể xem
danh sách các khách sạn, xem thông tin mô tả chi tiết của các khách
sạn, và xóa một khách sạn khỏi cơ sở dữ liệu.
2.5.2.3 Dòng sự kiện:
(cid:190) Dòng sự kiện chính:
Use case này bắt đầu khi người quản trị (Admin) website chọn chức
năng ‘Xem danh sách khách sạn’ trên Menu. Ứng với từng khách
sạn trong danh sách có thể chọn các chức năng như: Xem thông tin
mô tả chi tiết khách sạn hay là xóa hẳn khách sạn đó khỏi cơ sở dữ
liệu.
1. Người quản trị đăng nhập vào hệ thống.
2. Nếu đăng nhập thành công, người quản trị chọn chức năng ‘Xem
danh sách khách sạn’ (List Hotels) trên menu.
3. Hệ thống truy xuất cơ sở dữ liệu để trả về danh sách các khách
sạn.
4. Hệ thống mở một trang web và hiển thị danh sách khách sạn trên
trang web đó.
17
Chương 2. Phân tích
5. Người quản trị chọn một khách sạn trong danh sách.
6. Người quản trị chọn các chức năng: ‘Xem thông tin chi tiết’ hay
‘Xóa’ một khách sạn.
7. Nếu chọn chức năng ‘Xem thông tin chi tiết’ thì hệ thống sẽ thực
hiện việc truy xuất dữ liệu và mở một trang web để hiển thị các
thông tin mô tả chi tiết cho khách sạn đã chọn.
8. Nếu chọn chức năng ‘Xóa” thì hệ thống sẽ truy xuất vào cơ sở
dữ liệu và xóa các thông tin liên quan đến khách sạn này khỏi cơ
sở dữ liệu hệ thống.
(cid:190) Dòng sự kiện khác:
Quá trình truy xuất dữ liệu thất bại hoặc xóa khách sạn không thành
công: Nếu trong quá trình thực hiện, việc truy xuất dữ liệu thất bại
hoặc thao tác xóa không thành công thì trạng thái của hệ thống trở
lại ban đầu.
2.5.2.4 Yêu cầu đặc biệt:
(cid:190) Không có.
2.5.2.5 Điều kiện tiên quyết:
(cid:190) Người quản trị website phải đăng nhập vào hệ thống để thực hiện
use case này.
2.5.2.6 Post-Condition:
(cid:190) Nếu use case này thành công trong việc xem danh sách các khách
sạn thì một trang web hiển danh sách sẽ được mở. Nếu việc xóa một
khách sạn thành công thì cơ sở dữ liệu khách sạn sẽ được cập nhật.
Ngược lại tất cả các trường hợp trên thì trạng thái của hệ thống vẫn
không đổi.
18
Chương 2. Phân tích
2.5.2.7 Điểm mở rộng:
(cid:190) Không có.
2.5.3 Quản lý các Hãng hàng không:
2.5.3.1 Tên Use Case:
(cid:190) Manage Airplanes
2.5.3.2 Mô tả:
(cid:190) Use case này cho phép người quản trị website có thể xem danh sách
các hãng hàng không, xem thông tin chi tiết về một hãng hàng
không, thậm chí là xóa bỏ một hãng hàng không khỏi cơ sở dữ liệu
của hệ thống.
2.5.3.3 Dòng sự kiện:
(cid:190) Dòng sự kiện chính:
Use case này được bắt đầu sau khi người quản trị đã đăng nhập vào
hệ thống và chọn chức năng ‘Hiển thị danh sách hãng hàng không’
trên menu.
1. Người quản trị đăng nhập vào hệ thống.
2. Người quản trị chọn chức năng ‘Xem danh sách hãng hàng
không’ (List Airplanes) trên menu.
3. Hệ thống truy xuất cơ sở dữ liệu trên server và trả về danh sách
các hãng hàng không.
4. Hệ thống mở một trang web để hiển thị danh sách các hãng hàng
không này.
5. Người quản trị chọn một hãng hàng không trong danh sách.
6. Người quản trị chọn chức năng: ‘Xem thông tin chi tiết” hoặc
“Xóa” một hãng hàng không khỏi cơ sở dữ liệu.
19
Chương 2. Phân tích
7. Nếu chọn chức năng ‘Xem thông tin chi tiết’ thì hệ thống sẽ truy
xuất cơ sở dữ liệu để lấy về các thông tin mô tả chi tiết về hãng
hàng không đó và mở một trang web để hiển thị các thông tin
này.
8. Nếu chọn chức năng ‘Xóa’ một hãng hàng không thì hệ thống sẽ
vào cơ sở dữ liệu vào xóa các thông tin liên quan đến hãng hàng
không đó. Sau đó cập nhật lại danh sách đang hiển thị.
(cid:190) Dòng sự kiện khác:
Nếu trong quá trình thực hiện người quản trị hủy bỏ thao tác ‘Xóa’
hoặc việc truy xuất dữ liệu thất bại thì trạng thái của hệ thống không
thay đổi.
2.5.3.4 Yêu cầu đặc biệt:
(cid:190) Không có.
2.5.3.5 Điều kiện tiên quyết:
(cid:190) Người quản trị phải đăng nhập vào hệ thống trước khi có thể thực
hiện được use case này.
2.5.3.6 Post-Condition:
(cid:190) Nếu use case này thành công trong việc ‘Xem danh sách hãng hàng
không’ thì một trang web được mở để hiện hiển thị danh sách này.
Nếu việc xóa một hãng hàng không thành công thì cơ sở dữ liệu của
hệ thống sẽ được cập nhật. Ngược lại với các trường hợp trên thì
trạng thái của hệ thống không thay đổi.
2.5.3.7 Điểm mở rộng:
(cid:190) Không có.
20
Chương 2. Phân tích
2.5.4 Quản lý Khách viếng:
2.5.4.1 Tên Use Case:
(cid:190) Manage Visitors
2.5.4.2 Mô tả:
(cid:190) Use case này cho phép người quản trị website có thể vào xem danh
sách của các khách viếng, xem thông tin chi tiết của một khách
viếng nào đó và xóa một khách viếng khỏi cơ sở dữ liệu.
2.5.4.3 Dòng sự kiện:
(cid:190) Dòng sự kiện chính:
Use case này bắt đầu sau khi người quản trị đã đăng nhập vào hệ
thống và chọn chức năng ‘Xem danh sách khách viếng’ (List
Visitors) trên menu.
1. Người quản trị đăng nhập vào hệ thống.
2. Người quản trị chọn chức năng ‘Xem danh sách Khách viếng’
(List Visitors) trên menu.
3. Hệ thống truy xuất cơ sở dữ liệu trên server và trả về danh sách
các khách viếng.
4. Hệ thống mở một trang web để hiển thị danh sách khách viếng.
5. Người quản trị chọn một khách viếng trong danh sách.
6. Người quản trị chọn chức năng ‘Xem thông tin chi tiết’ hoặc
‘Xóa’ khách viếng khỏi cơ sở dữ liệu.
7. Nếu chọn chức năng ‘Xem thông tin chi tiết’ thì hệ thống sẽ truy
xuất cơ sở dữ liệu và mở một trang web để hiển thị thông tin chi
tiết của khách viếng đó.
21
Chương 2. Phân tích
8. Nếu chọn chức năng ‘Xóa’ thì hệ thống sẽ truy xuất dữ liệu và
xóa các thông tin liên quan đến khách viếng đó, đồng thời cập
nhật lại danh sách khách viếng.
(cid:190) Dòng sự kiện khác:
Nếu trong quá trình thực hiện use case, người quản trị quyết định
hủy bỏ thao tác ‘Xóa’ hoặc quá trình truy xuất dữ liệu thất bại thì
trạng thái của hệ thống không thay đổi.
2.5.4.4 Yêu cầu đặc biệt:
(cid:190) Không có.
2.5.4.5 Điều kiện tiên quyết:
(cid:190) Người quản trị phải đăng nhập vào hệ thống trước khi có thể thực
hiện được use case này.
2.5.4.6 Post-Condition:
(cid:190) Nếu use case này thành công trong việc xem danh sách hoặc các
thông tin liên quan đến khách viếng thì hệ thống sẽ mở một trang
web để thể hiện các thông tin đó. Nếu xóa thành công một khách
viếng thì cơ sở dữ liệu của hệ thống sẽ được cập nhật. Ngược lại các
trường hợp trên thì trạng thái của hệ thống không đổi.
2.5.4.7 Điểm mở rộng:
(cid:190) Không có.
2.5.5 Quản lý người dùng khác:
2.5.5.1 Tên Use Case:
(cid:190) Manage Users
22
Chương 2. Phân tích
2.5.5.2 Mô tả:
(cid:190) Use case này cho phép người quản trị trang web có thể xem danh
sách của những người dùng khác (cũng với vai trò quản trị), hiển thị
thông tin chi tiết và xóa một người dùng khỏi cơ sở dữ liệu.
2.5.5.3 Dòng sự kiện:
(cid:190) Dòng sự kiện chính:
Use case này bắt đầu khi người quản trị có nhu cầu xem các thông
tin của những người dùng khác (cùng vai trò quản trị) và chọn chức
năng quản lý người dùng (Manage Users) trên menu.
1. Người dùng đăng nhập vào hệ thống với vai trò quản trị.
2. Nếu đăng nhập thành công hệ thống vào trang Admin.
3. Người quản trị chọn chức năng quản lý người dùng.
4. Hệ thống truy xuất cơ sở dữ liệu và mở một trang web để hiển
thị danh sách các người dùng.
5. Người quản trị chọn một người dùng trong danh sách.
6. Người quản trị chọn chức năng thực hiện: hoặc là xem thông tin
chi tiết hoặc xóa người dùng.
7. Nếu chọn chức năng xem thông tin chi tiết thì hệ thống sẽ truy
xuất cơ sở dữ liệu và mở một trang web để hiển thị thông tin của
người dùng đó.
8. Nếu chọn chức năng ‘Xóa’ thì hệ thống sẽ truy xuất cơ sở dữ
liệu và xóa các thông tin liên quan đến người dùng đó, đồng thời
cập nhật lại danh sách người dùng đang hiển thị.
(cid:190) Dòng sự kiện khác:
23
Chương 2. Phân tích
Nếu trong quá trình thực hiện use case, người quản trị quyết định
hủy bỏ thao tác ‘Xóa’ hoặc quá trình truy xuất dữ liệu thất bại thì
trạng thái của hệ thống không thay đổi.
2.5.5.4 Yêu cầu đặc biệt:
(cid:190) Không có.
2.5.5.5 Điều kiện tiên quyết:
(cid:190) Người quản trị phải đăng nhập vào hệ thống trước khi có thể thực
hiện các chức năng của use case này.
2.5.5.6 Post-Condition:
(cid:190) Nếu use case này thành công trong việc xóa một người dùng thì cơ
sở dữ liệu của hệ thống sẽ được cập nhật. Ngược lại, tình trạng của
hệ thống không thay đổi.
2.5.5.7 Điểm mở rộng:
(cid:190) Không có.
2.5.6 Quản lý các thông tin của Khách sạn:
2.5.6.1 Tên Use Case:
(cid:190) Manage Hotel Info
2.5.6.2 Mô tả:
(cid:190) Use case này cho phép những người dùng là phía Khách sạn có thể
quản lý các thông tin chung của mình như: xem thông tin chung,
cập nhật các thông tin chung…
2.5.6.3 Dòng sự kiện:
(cid:190) Dòng sự kiện chính:
24
Chương 2. Phân tích
Use case này bắt đầu khi phía khách sạn có ý định xem các thông
tin đăng ký của mình và/hoặc muốn cập nhật các thông tin đó.
Người dùng chọn chức năng quản lý thông tin trên menu.
1. Người dùng đăng nhập vào hệ thống với vai trò khách sạn.
2. Nếu đăng nhập thành công thì hệ thống sẽ mở trang web cho đối
tượng khách sạn.
3. Người dùng chọn chức năng quản lý thông tin trên menu.
4. Hệ thống truy xuất dữ liệu khách sạn và mở mở một trang web
để hiển thị thông tin của khách sạn đó.
5. Người dùng có thể chọn chức năng cập nhật một thông tin nào
đó trên trang web.
6. Hệ thống hiển thị ô nhập liệu để người dùng có thể nhập thông
tin cập nhật vào đó.
7. Người dùng nhập thông tin cập nhật vào và chọn cập nhật.
8. Hệ thống kiểm tra tính hợp lệ của thông tin nhập vào và thực
hiện cập nhật vào cơ sở dữ liệu.
9. Use case kết thúc.
(cid:190) Dòng sự kiện khác:
Nếu trong quá trình cập nhật thông tin, người dùng quyết định hủy
bỏ quá trình cập nhật thì hệ thống sẽ trở lại trạng thái ban đầu và
hiển thị lại trang thông tin khách sạn.
2.5.6.4 Yêu cầu đặc biệt:
(cid:190) Không có.
25
Chương 2. Phân tích
2.5.6.5 Điều kiện tiên quyết:
(cid:190) Người dùng phải đăng nhập vào hệ thống với vai trò Khách sạn để
có thể thực hiện được các chức năng trong use case này.
2.5.6.6 Post-Condition:
(cid:190) Nếu use case này thành công trong việc cập nhật các thông tin
chung thì cơ sở dữ liệu của hệ thống sẽ được cập nhật. Ngược lại,
trạng thái của hệ thống không thay đổi.
2.5.6.7 Điểm mở rộng:
(cid:190) Không có.
2.5.7 Quản lý các thông tin của Hãng hàng không:
2.5.7.1 Tên Use Case:
(cid:190) Manage Airplane Info
2.5.7.2 Mô tả:
(cid:190) Use case này cho phép các hãng hàng không có thể quản lý các
thông tin của mình như: xem thông tin chung của mình, cập nhật
các thông tin chung...
2.5.7.3 Dòng sự kiện:
(cid:190) Dòng sự kiện chính:
Use case này bắt đầu khi phía hãng hàng không có ý định xem các
thông tin đăng ký của mình và/hoặc muốn cập nhật các thông tin đó.
Người dùng chọn chức năng quản lý thông tin trên menu.
1. Người dùng đăng nhập vào hệ thống với vai trò hãng hàng
không.
2. Nếu đăng nhập thành công thì hệ thống sẽ mở trang web cho đối
tượng hãng hàng không.
26
Chương 2. Phân tích
3. Người dùng chọn chức năng quản lý thông tin trên menu.
4. Hệ thống truy xuất dữ liệu hãng hàng không và mở một web
form để hiển thị thông tin của hãng hàng không đó.
5. Người dùng có thể chọn chức năng cập nhật một thông tin nào
đó trên web form.
6. Hệ thống hiển thị ô nhập liệu để người dùng có thể nhập thông
tin cập nhật vào đó.
7. Người dùng nhập thông tin cập nhật vào và chọn cập nhật.
8. Hệ thống kiểm tra tính hợp lệ của thông tin nhập vào và thực
hiện cập nhật vào cơ sở dữ liệu.
9. Use case kết thúc.
(cid:190) Dòng sự kiện khác:
Nếu trong quá trình cập nhật thông tin, người dùng quyết định hủy
bỏ quá trình cập nhật thì hệ thống sẽ trở lại trạng thái ban đầu và
hiển thị lại trang thông tin hãng hàng không.
2.5.7.4 Yêu cầu đặc biệt:
(cid:190) Không có.
2.5.7.5 Điều kiện tiên quyết:
(cid:190) Người dùng phải đăng nhập vào hệ thống với vai trò Hãng hàng
không để có thể thực hiện được các chức năng trong use case này.
2.5.7.6 Post-Condition:
(cid:190) Nếu use case này thành công thì các thông tin cập nhật sẽ được lưu
vào trong cơ sở dữ liệu của hệ thống. Ngược lại trạng thái của hệ
thống không thay đổi.
27
Chương 2. Phân tích
2.5.7.7 Điểm mở rộng:
(cid:190) Không có.
2.5.8 Đăng ký nhà cung cấp dịch vụ mới:
2.5.8.1 Tên Use Case:
(cid:190) Register New Supplier
2.5.8.2 Mô tả:
(cid:190) Use case này cho phép một khách sạn hay một hãng hàng không
đăng ký với website để trở thành một nhà cung cấp dịch vụ (cho
thuê phòng khách sạn, cho đặt vé máy bay).
2.5.8.3 Dòng sự kiện:
(cid:190) Dòng sự kiện chính:
Use case này bắt đầu khi một người dùng vào website và chọn đăng
ký làm nhà cung cấp dịch vụ (khách sạn hay hãng hàng không).
1. Người dùng vào hệ thống website.
2. Người dùng chọn vào trang Khách sạn (Hotel) hoặc Hãng hàng
không (Airplane).
3. Nếu chọn vào trang Hotel thì hệ thống sẽ mở trang Hotel và
người dùng chọn chức năng đăng ký (Register). Hệ thống mở
một web form cho phép người dùng nhập các thông tin đăng ký.
Người dùng nhập thông tin đăng ký và chọn đăng ký. Hệ thống
sẽ kiểm tra tính hợp lệ của các thông tin nhập và lưu vào cơ sở
dữ liệu khách sạn.
4. Nếu chọn vào trang Airplane thì hệ thống sẽ mở trang Airplane
và người dùng chọn chức năng đăng ký (Register). Hệ thống mở
một web form cho phép người dùng nhập các thông tin đăng ký.
28
Chương 2. Phân tích
Người dùng nhập thông tin đăng ký và chọn đăng ký. Hệ thống
sẽ kiểm tra tính hợp lệ của các thông tin nhập và lưu vào cơ sở
dữ liệu hãng hàng không.
5. Người quản trị chịu trách nhiệm liên hệ với các khách sạn hay
hãng hàng không để xác nhận thông tin đăng ký.
6. Nếu thông tin đăng ký được xác nhận thì account sẽ được kích
hoạt.
(cid:190) Dòng sự kiện khác:
1. Nếu trong quá trình đăng ký người dùng chọn hủy bỏ đăng ký thì
dòng sự kiện chính sẽ bắt đầu lại từ đầu và trạng thái của hệ
thống không thay đổi.
2. Nếu quá trình xác nhận thông tin đăng ký của người quản trị có
vấn đề thì các thông tin đăng ký trước đó sẽ bị loại bỏ khỏi cơ sở
dữ liệu của hệ thống.
2.5.8.4 Yêu cầu đặc biệt:
(cid:190) Không có.
2.5.8.5 Điều kiện tiên quyết:
(cid:190) Không có.
2.5.8.6 Post-Condition:
(cid:190) Nếu use case này thành công thì thông tin đăng ký của một khách
sạn hoặc một hãng hàng không sẽ được lưu vào trong cơ sở dữ liệu
của hệ thống. Ngược lại, trạng thái của hệ thống thay đổi.
2.5.8.7 Điểm mở rộng:
(cid:190) Không có.
29
Chương 2. Phân tích
2.5.9 Đăng ký thành viên mới:
2.5.9.1 Tên Use Case:
(cid:190) Register Member
2.5.9.2 Mô tả:
(cid:190) Use case này cho phép người sử dụng đăng ký với trang web để trở
thành thành viên với vai trò Visitor. Với tài khoản này, sau đó người
dùng có thể đăng nhập vào hệ thống (với vai trò Visitor) và đăng ký
các dịch vụ như: đăng ký phòng khách sạn và đặt vé máy bay.
2.5.9.3 Dòng sự kiện:
(cid:190) Dòng sự kiện chính:
Use case này bắt đầu khi một khách viếng có nhu cầu đăng ký làm
thành viên của hệ thống hoặc khi người dùng chọn đăng ký sử dụng
dịch vụ mà chưa có account đăng ký.
1. Người dùng chọn chức năng đăng ký thành viên trên menu.
2. Hệ thống hiển thị một web form cho phép người dùng nhập các
thông tin đăng ký vào.
3. Người dùng nhập thông tin đăng ký vào web form và chọn đăng
ký (Register).
4. Hệ thống kiểm tra tính hợp lệ của các thông tin nhập vào và thực
hiện việc lưu vào cơ sở dữ liệu của hệ thống.
5. Quá trình đăng ký kết thúc.
(cid:190) Dòng sự kiện khác:
1. Nếu trong quá trình đăng ký người dùng quyết định hủy bỏ các
thông tin đăng ký thì use case sẽ kết thúc và trạng thái của hệ
thống không thay đổi.
30
Chương 2. Phân tích
2. Nếu quá trình kiểm tra thông tin nhập phát hiện không hợp lệ thì
hệ thống sẽ trở về trạng thái trước đó (mở trang nhập liệu với các
thông tin nhập trước đó vẫn còn để người dùng có thể chỉnh
sửa).
2.5.9.4 Yêu cầu đặc biệt:
(cid:190) Không có.
2.5.9.5 Điều kiện tiên quyết:
(cid:190) Không có.
2.5.9.6 Post-Condition:
(cid:190) Nếu use case này thành công thì thông tin đăng ký của một khách
viếng sẽ được lưu vào cơ sở dữ liệu của hệ thống. Ngược lại, trạng
thái của hệ thống không thay đổi.
2.5.9.7 Điểm mở rộng:
(cid:190) Không có.
2.5.10 Đăng ký phòng khách sạn:
2.5.10.1 Tên Use Case:
(cid:190) Register Service
2.5.10.2 Mô tả:
(cid:190) Use case này cho phép người dùng có thể đăng ký phòng khách sạn
trực tiếp trên mạng.
2.5.10.3 Dòng sự kiện:
(cid:190) Dòng sự kiện chính:
Use case này bắt đầu khi một khách viếng chọn đăng ký phòng.
1. Người dùng chọn chức năng đăng ký phòng khách sạn.
31
Chương 2. Phân tích
2. Hệ thống hiển thị một web form cho phép người dùng nhập vào
các thông tin đăng ký.
3. Người dùng xác nhận các thông tin đăng ký.
4. Hệ thống kiểm tra tính hợp lệ của các thông tin đăng ký.
5. Hệ thống lưu trữ thông tin đăng ký vào cơ sở dữ liệu của hệ
thống.
6. Hệ thống hiển thị thời gian thông báo kết quả đăng ký cho khách
viếng.
7. Nếu quá trình đăng ký với phía khách sạn thành công thì người
quản trị sẽ gửi thông báo đến cho khách viếng và yêu cầu thanh
toán trong trường hợp trả trước.
8. Nếu quá trình đăng ký với phía khách sạn không thành công thì
người quản trị sẽ gửi thông báo đến cho khách viếng và đề nghị
đăng ký lại. Use case sẽ bắt đầu lại.
(cid:137) Người dùng hủy bỏ quá trình đăng ký: Trạng thái của hệ thống
(cid:190) Dòng sự kiện khác:
không thay đổi và use case kết thúc.
2.5.10.4 Yêu cầu đặc biệt:
(cid:190) Người dùng phải hoặc đã có đăng ký thành viên với trang web với
vai trò Visitor, hoặc phải thực hiện việc đăng ký thành viên (để
nhập các thông tin cá nhân) trước khi có thể thực hiện use case này.
2.5.10.5 Điều kiện tiên quyết:
(cid:190) Người dùng phải đăng nhập với vai trò Visitor để có thể thực hiện
use case này.
32
Chương 2. Phân tích
2.5.10.6 Post-Condition:
(cid:190) Nếu use case này thành công thì thông tin đăng ký dịch vụ của
khách viếng sẽ được lưu vào cơ sở dữ liệu và người quản trị trang
web phải chịu trách nhiệm liên hệ với phía cung cấp dịch vụ để thực
hiện việc đăng ký cho khách. Sau khi liên hệ với phía cung cấp dịch
vụ xong thì người quản trị trang web phải thông báo kết quả đăng
ký cho khách viếng và tiến hành thanh toán các chi phí.
2.5.10.7 Điểm mở rộng:
(cid:190) Không có.
2.5.11 Tìm kiếm Khách sạn, Hãng hàng không:
2.5.11.1 Tên Use Case:
(cid:190) Search
2.5.11.2 Mô tả:
(cid:190) Use case này cho phép người dùng tìm kiếm các khách sạn hay
hãng hàng không thỏa một nhu cầu nào đó.
2.5.11.3 Dòng sự kiện:
(cid:190) Dòng sự kiện chính:
Use case này bắt đầu khi một khách viếng chọn chức năng tìm kiếm
thông tin của các khách sạn hay hãng hàng không trên menu.
1. Người dùng chọn chức năng tìm kiếm (Search) trên menu.
2. Hệ thống hiển thị trang tìm kiếm cho phép người dùng nhập từ
khóa tìm kiếm.
3. Người dùng nhập vào từ khóa tìm kiếm.
4. Hệ thống sử dụng cơ chế tìm kiếm để tìm kiếm trong cơ sở dữ
liệu của hệ thống.
33
Chương 2. Phân tích
5. Kết quả tìm kiếm được thể hiện trên trang Kết quả tìm kiếm
(Search Result).
6. Người dùng có thể chọn xem thông tin chi tiết của từng khách
sạn hay hãng hàng không trên trang kết quả hay chọn đặt phòng
khách sạn hoặc đặt vé máy bay.
(cid:190) Dòng sự kiện khác:
Quá trình tìm kiếm thất bại: hệ thống yêu cầu người dùng nhập lại
từ khóa hay hủy bỏ thao tác tìm kiếm.
2.5.11.4 Yêu cầu đặc biệt:
(cid:190) Không có.
2.5.11.5 Điều kiện tiên quyết:
(cid:190) Không có.
2.5.11.6 Post-Condition:
(cid:190) Nếu use case này thành công thì sẽ cho ra kết quả tìm kiếm trên
trang kết quả tìm kiếm. Ngược lại, hiển thị trang thông báo kết quả
tìm kiếm thất bại.
2.5.11.7 Điểm mở rộng:
(cid:190) Không có.
2.5.12 Nhập mô tả cho Hãng hàng không:
2.5.12.1 Tên Use Case:
(cid:190) Enter Airplane Description
2.5.12.2 Mô tả:
(cid:190) Use case này cho phép những người dùng với vai trò Hãng hàng
không nhập các thông tin mô tả cho hãng hàng không của mình.
34
Chương 2. Phân tích
2.5.12.3 Dòng sự kiện:
(cid:190) Dòng sự kiện chính:
Use case này bắt đầu sau khi hãng hàng không đã đăng ký thành
công với hệ thống và dự định nhập các thông tin mô tả cho hãng
hàng không. Các bước thực hiện của use case này như sau:
1. Người dùng đăng nhập vào hệ thống với vai trò hãng hàng
không.
2. Người dùng chọn chức năng nhập thông tin mô tả.
3. Hệ thống truy xuất và hiển thị các thông tin mô tả của hãng hàng
không (nếu có) dưới dạng web form để người dùng có thể nhập
thêm các thông tin mô tả.
4. Người dùng chọn chức năng xác nhận các thông tin đã nhập.
5. Hệ thống kiểm tra tính hợp lệ và lưu trữ các thông tin trên vào cơ
sở dữ liệu của hệ thống.
6. Use case kết thúc.
(cid:190) Dòng sự kiện khác:
1. Nếu quá trình kiểm tra tính hợp lệ phát hiện có lỗi thì hệ thống sẽ
trả lại web form nhập liệu để người dùng có thể chỉnh sửa. Trạng
thái của hệ thống lúc này vẫn chưa thay đổi.
2. Nếu người dùng quyết định hủy bỏ thao tác nhập liệu trên thì
trạng thái của hệ thống vẫn không thay đổi và dòng sự kiện
chính được bắt đầu lại.
2.5.12.4 Yêu cầu đặc biệt:
(cid:190) Không có.
35
Chương 2. Phân tích
2.5.12.5 Điều kiện tiên quyết:
(cid:190) Người dùng phải đăng nhập vào hệ thống với vai trò Hãng hàng
không để có thể thực hiện use case này.
2.5.12.6 Post-Condition:
(cid:190) Nếu use case này thành công thì thông tin mô tả của một hãng hàng
không sẽ được cập nhật vào cơ sở dữ liệu của hệ thống. Ngược lại,
trạng thái của hệ thống không thay đổi.
2.5.12.7 Điểm mở rộng:
(cid:190) Không có.
2.5.13 Nhập mô tả Khách sạn:
2.5.13.1 Tên Use Case:
(cid:190) Enter Hotel Description
2.5.13.2 Mô tả:
(cid:190) Use case này cho phép người dùng với vai trò là các Khách sạn có
thể nhập vào các thông tin mô tả về khách sạn của mình.
2.5.13.3 Dòng sự kiện:
(cid:190) Dòng sự kiện chính:
Use case này bắt đầu sau khi khách sạn đã đăng ký thành công với
hệ thống và dự định nhập các thông tin mô tả cho khách sạn. Các
bước thực hiện của use case này như sau:
1. Người dùng đăng nhập vào hệ thống với vai trò khách sạn.
2. Người dùng chọn chức năng nhập thông tin mô tả.
3. Hệ thống truy xuất và hiển thị các thông tin mô tả của khách sạn
(nếu có) dưới dạng web form để người dùng có thể nhập thêm
các thông tin mô tả.
36
Chương 2. Phân tích
4. Người dùng chọn chức năng xác nhận các thông tin đã nhập.
5. Hệ thống kiểm tra tính hợp lệ và lưu trữ các thông tin trên vào cơ
sở dữ liệu của hệ thống.
6. Use case kết thúc.
(cid:190) Dòng sự kiện khác:
1. Nếu quá trình kiểm tra tính hợp lệ phát hiện có lỗi thì hệ thống sẽ
trở lại web form nhập liệu để người dùng có thể chỉnh sửa. Trạng
thái của hệ thống lúc này vẫn chưa thay đổi.
2. Nếu người dùng quyết định hủy bỏ thao tác nhập liệu trên thì
trạng thái của hệ thống vẫn không thay đổi và dòng sự kiện
chính được bắt đầu lại.
2.5.13.4 Yêu cầu đặc biệt:
(cid:190) Không có.
2.5.13.5 Điều kiện tiên quyết:
(cid:190) Người dùng phải đăng nhập vào hệ thống với vai trò Khách sạn để
có thể thực hiện được use case này.
2.5.13.6 Post-Condition:
(cid:190) Nếu use case này thành công thì thông tin mô tả của một khách sạn
sẽ được cập nhật vào cơ sở dữ liệu của hệ thống. Ngược lại, trạng
thái của hệ thống không thay đổi.
2.5.13.7 Điểm mở rộng:
(cid:190) Không có.
2.5.14 Cập nhật mô tả Hãng hàng không:
2.5.14.1 Tên Use Case:
(cid:190) Update Airplane Description
37
Chương 2. Phân tích
2.5.14.2 Mô tả:
(cid:190) Use case này cho phép các hãng hàng không có thể cập nhật lại các
thông tin mô tả của mình.
2.5.14.3 Dòng sự kiện:
(cid:190) Dòng sự kiện chính:
Use case này bắt đầu khi một hãng hàng không có ý định cập nhật
lại các thông tin mô tả. Các bước thực hiện như sau:
1. Người dùng đăng nhập vào hệ thống với vai trò hãng hàng
không.
2. Người dùng chọn chức năng cập nhật thông tin mô tả.
3. Hệ thống truy xuất và hiển thị thông tin mô tả của khách sạn này
dưới dạng cho phép có thể cập nhật được.
4. Người dùng nhập vào các thông tin mô tả cần cập nhật.
5. Người dùng chọn ‘Cập nhật’.
6. Hệ thống cập nhật lại các thông tin vào trong cơ sở dữ liệu của
hệ thống.
7. Use case kết thúc.
(cid:190) Dòng sự kiện khác:
Người dùng quyết định hủy bỏ quá trình cập nhật: Trong trường
hợp này, trạng thái của hệ thống sẽ không thay đổi và dòng sự kiện
chính được bắt đầu lại từ đầu.
2.5.14.4 Yêu cầu đặc biệt:
(cid:190) Không có.
38
Chương 2. Phân tích
2.5.14.5 Điều kiện tiên quyết:
(cid:190) Người dùng phải đăng nhập vào hệ thống với vai trò Hãng hàng
không (Airplane) để có thể thực hiện use case này.
2.5.14.6 Post-Condition:
(cid:190) Nếu use case này thành công thì các thông tin mô tả của hãng hàng
không sẽ được cập nhật vào cơ sở dữ liệu. Ngược lại, trạng thái của
hệ thống không thay đổi.
2.5.14.7 Điểm mở rộng:
(cid:190) Không có.
2.5.15 Cập nhật mô tả Khách sạn:
2.5.15.1 Tên Use Case:
(cid:190) Update Hotel Description
2.5.15.2 Mô tả:
(cid:190) Use case này cho phép các khách sạn có thể cập nhật các thông tin
mô tả cho khách sạn của mình.
2.5.15.3 Dòng sự kiện:
Use case này bắt đầu khi một khách sạn có ý định cập nhật lại các
thông tin mô tả. Các bước thực hiện như sau:
1. Người dùng đăng nhập vào hệ thống với vai trò khách sạn.
2. Người dùng chọn chức năng cập nhật thông tin mô tả.
3. Hệ thống truy xuất và hiển thị thông tin mô tả của khách sạn
dưới dạng cho phép người dùng có thể nhập vào các thông tin
mô tả cho khách sạn.
4. Người dùng nhập vào các thông tin mô tả cần cập nhật.
5. Người dùng chọn ‘Cập nhật’.
39
Chương 2. Phân tích
6. Hệ thống cập nhật lại các thông tin vào trong cơ sở dữ liệu của
hệ thống.
7. Use case kết thúc.
(cid:190) Dòng sự kiện khác:
Người dùng quyết định hủy bỏ quá trình cập nhật: Trong trường
hợp này, trạng thái của hệ thống sẽ không thay đổi và dòng sự kiện
chính được bắt đầu lại từ đầu.
2.5.15.4 Yêu cầu đặc biệt:
(cid:190) Không có.
2.5.15.5 Điều kiện tiên quyết:
(cid:190) Người dùng phải đăng nhập vào hệ thống với vai trò khách sạn
(Hotel) để có thể thực hiện được use case này.
2.5.15.6 Post-Condition:
(cid:190) Nếu use case này thành công thì thông tin mô tả cập nhật cho khách
sạn sẽ được lưu vào cơ sở dữ liệu của hệ thống. Ngược lại, trạng
thái của hệ thống sẽ không thay đổi.
2.5.15.7 Điểm mở rộng:
(cid:190) Không có.
2.5.16 Trao đổi thông tin:
2.5.16.1 Tên Use Case:
(cid:190) Exchange Info
2.5.16.2 Mô tả:
(cid:190) Use case này cho phép các người dùng với từng vai trò khác nhau
có thể xem nội dung các thông điệp và gửi các thông điệp lẫn nhau
(giữa người quản trị trang web với các đối tượng khác và ngược lại).
40
Chương 2. Phân tích
2.5.16.3 Dòng sự kiện:
(cid:190) Dòng sự kiện chính:
Use case này được bắt đầu khi một người dùng đăng nhập vào hệ
thống và chọn chức năng ‘Messages’ trên menu.
1. Người dùng đăng nhập vào hệ thống.
2. Người dùng chọn chức năng ‘Messages’ trên menu.
3. Hệ thống mở trang web Messages.
4. Người dùng chọn chức năng ‘Xem danh sách các thông điệp’
(List Messages) hay ‘Gửi thông điệp’ (Send Message).
5. Nếu người dùng chọn chức năng ‘Xem danh sách các thông
điệp’ thì hệ thống sẽ truy xuất cơ sở dữ liệu và hiển thị danh sách
các thông điệp trên một trang web mới. Từ đây người dùng có
thể chọn chức năng ‘Xem nội dung thông điệp’ hay ‘Xóa thông
điệp’:
6. Nếu người dùng chọn chức năng ‘Xem nội dung thông điệp’ thì
hệ thống sẽ truy xuất cơ sở dữ liệu tìm nội dung của thông điệp
tương ứng và mở một trang web mới để hiển thị nội dung này.
7. Nếu người dùng chọn chức năng ‘Xóa’ thông điệp thì hệ thống
sẽ truy xuất đến cơ sở dữ liệu để xóa nội dung của thông điệp
này. Đồng thời cập nhật lại danh sách các thông điệp đang hiển
thị.
8. Nếu người dùng chọn chức năng ‘Gửi thông điệp’ (Send
Message) thì hệ thống sẽ mở một web form cho phép người dùng
có thể nhập nội dung của thông điệp. Khi người dùng chọn chức
41
Chương 2. Phân tích
năng ‘Send’ thì hệ thống sẽ lưu thông điệp đó vào Inbox của
người nhận. Sau đó quay trở về trang Messages.
(cid:190) Dòng sự kiện khác:
Người dùng hủy bỏ việc gửi thông điệp: Nếu trong quá trình gửi
thông điệp người dùng quyết định thôi không gửi thông điệp nữa thì
hệ thống sẽ không thay đổi trạng thái và hệ thống quay trở lại trang
Messages.
2.5.16.4 Yêu cầu đặc biệt:
(cid:190) Không có.
2.5.16.5 Điều kiện tiên quyết:
(cid:190) Tùy theo các đối tượng người dùng phải đăng nhập vào hệ thống để
thực hiện các chức năng của use case này.
2.5.16.6 Post-Condition:
(cid:190) Tùy theo chức năng mà người dùng chọn, nếu use case thực hiện
thành công thì hệ thống hoặc sẽ hiển thị nội dung của thông điệp
(show message) hoặc gửi thông điệp (lưu thông điệp vào inbox của
người nhận). Hệ thống sẽ không cập nhật nếu không thực hiện chức
năng gửi thông điệp hoặc gửi không thành công.
2.5.16.7 Điểm mở rộng:
(cid:190) Không có.
42
Chương 2. Phân tích
2.6 Sơ đồ lớp:
2.6.1 Admin Login Class:
Hình 2-5: Class Diagram: Đăng nhập hệ thống
43
Chương 2. Phân tích
2.6.2 Airplane Description Class:
Hình 2-6: Class Diagram: Mô tả hãng hàng không
44
Chương 2. Phân tích
2.6.3 Hotel Description Class:
Hình 2-7: Class Diagram: Mô tả khách sạn
2.6.4 Exchange Info Class:
Hình 2-8: Class Diagram: Trao đổi thông tin
45
Chương 2. Phân tích
2.6.5 Manage Airplane Class:
Hình 2-9: Class Diagram: Quản lý Hãng hàng không
46
Chương 2. Phân tích
2.6.6 Manage Hotel Class:
Hình 2-10: Class Diagram: Quản lý khách sạn
47
Chương 2. Phân tích
2.6.7 Manage Airplane Info Class:
Hình 2-11: Class Diagram: Quản lý thông tin Hãng hàng không
48
Chương 2. Phân tích
2.6.8 Manage Hotel Info Class:
Hình 2-12: Class Diagram: Quản lý thông tin khách sạn
49
Chương 2. Phân tích
2.6.9 Manage User Class:
Hình 2-13: Class Diagram: Quản trị người dùng
2.6.10 Manage Visitor Class:
Hình 2-14: Class Diagram: Quản trị khách viếng
50
Chương 2. Phân tích
2.6.11 Register Member Class:
Hình 2-15: Class Diagram: Đăng ký thành viên
2.6.12 Register Service Class:
Hình 2-16: Class Diagram: Đăng ký dịch vụ
51
Chương 2. Phân tích
2.6.13 Register Supplier Class:
Hình 2-17: Class Diagram: Đăng ký nhà cung cấp dịch vụ
52
Chương 2. Phân tích
2.7 Các lưu đồ hoạt động:
2.7.1 Đăng nhập hệ thống:
(cid:190) Tên lược đồ: Login
(cid:190) Lược đồ tuần tự (Sequence Diagram):
Hình 2-18: Sequence Diagram: Đăng nhập hệ thống
53
Chương 2. Phân tích
(cid:190) Lược đồ cộng tác (Collaboration Diagram):
Hình 2-19: Collaboration Diagram: Đăng nhập hệ thống
54
Chương 2. Phân tích
2.7.2 Khách viếng đăng ký làm thành viên:
(cid:190) Tên lược đồ: Register Member
(cid:190) Lược đồ tuần tự (Sequence Diagram):
Hình 2-20: Sequence Diagram: Đăng ký thành viên
55
Chương 2. Phân tích
(cid:190) Lược đồ cộng tác (Collaboration Diagram):
Hình 2-21: Collaboration Diagram: Đăng ký thành viên
56
Chương 2. Phân tích
2.7.3 Khách sạn đăng ký làm nhà cung cấp dịch vụ khách sạn:
(cid:190) Tên lược đồ: Hotel Register
(cid:190) Lược đồ tuần tự (Sequence Diagram):
Hình 2-22: Sequence Diagram: Đăng ký nhà cung cấp dịch vụ
57
Chương 2. Phân tích
(cid:190) Lược đồ cộng tác (Collaboration Diagram):
Hình 2-23: Collaboration Diagram: Đăng ký nhà cung cấp dịch vụ
58
Chương 2. Phân tích
2.7.4 Khách viếng đặt phòng ở khách sạn:
(cid:190) Tên lược đồ: Book Room
(cid:190) Lược đồ tuần tự (Sequence Diagram):
Hình 2-24: Sequence Diagram: Đặt phòng khách sạn
59
Chương 2. Phân tích
(cid:190) Lược đồ cộng tác (Collaboration Diagram):
Hình 2-25: Collaboration Diagram: Đặt phòng khách sạn
60
Chương 2. Phân tích
2.7.5 Nhập thông tin mô tả cho Hãng hàng không:
(cid:190) Tên lược đồ: Enter Airplane Description
(cid:190) Lược đồ tuần tự (Sequence Diagram):
Hình 2-26: Sequence Diagram: Nhập thông tin mô tả Hãng hàng không
61
Chương 2. Phân tích
(cid:190) Lược đồ cộng tác (Collaboration Diagram):
Hình 2-27: Collaboration Diagram: Nhập thông tin mô tả cho
Hãng hàng không
62
Chương 2. Phân tích
2.7.6 Nhập thông tin mô tả cho Khách sạn:
(cid:190) Tên lược đồ: Enter Hotel Description
(cid:190) Lược đồ tuần tự (Sequence Diagram):
Hình 2-28: Sequence Diagram: Nhập thông tin mô tả cho khách sạn
63
Chương 2. Phân tích
(cid:190) Lược đồ cộng tác (Collaboration Diagram):
Hình 2-29: Collaboration Diagram: Nhập thông tin mô tả cho khách sạn
64
Chương 2. Phân tích
2.7.7 Soạn và gửi các thông điệp:
(cid:190) Tên lược đồ: Send Message
(cid:190) Lược đồ tuần tự (Sequence Diagram):
Hình 2-30: Sequence Diagram: Gửi thông điệp
65
Chương 2. Phân tích
(cid:190) Lược đồ cộng tác (Collaboration Diagram):
Hình 2-31: Collaboration Diagram: Gửi thông điệp
66
Chương 2. Phân tích
2.7.8 Xem các thông điệp:
(cid:190) Tên lược đồ: Show Message
(cid:190) Lược đồ tuần tự (Sequence Diagram):
Hình 2-32: Sequence Diagram: Xem thông điệp
67
Chương 2. Phân tích
(cid:190) Lược đồ cộng tác (Collaboration Diagram):
Hình 2-33: Collaboration Diagram: Xem thông điệp
68
Chương 2. Phân tích
2.7.9 Xem các thông tin chung của Hãng hàng không:
(cid:190) Tên lược đồ: Airplane Info
(cid:190) Lược đồ tuần tự (Sequence Diagram):
Hình 2-34: Sequence Diagram: Xem thông tin nhà cung cấp dịch vụ
69
Chương 2. Phân tích
(cid:190) Lược đồ cộng tác (Collaboration Diagram):
Hình 2-35: Collaboration Diagram: Xem thông tin nhà cung cấp dịch vụ
70
Chương 2. Phân tích
2.7.10 Cập nhật các thông tin chung của Khách sạn:
(cid:190) Tên lược đồ: Update Hotel Info
(cid:190) Lược đồ tuần tự (Sequence Diagram):
Hình 2-36: Sequence Diagram: Cập nhật thông tin nhà cung cấp dịch vụ
71
Chương 2. Phân tích
(cid:190) Lược đồ cộng tác (Collaboration Diagram):
Hình 2-37: Collaboration Diagram: Cập nhật thông tin
Nhà cung cấp dịch vụ
72
Chương 2. Phân tích
2.7.11 Cập nhật các thông tin mô tả của Khách sạn:
(cid:190) Tên lược đồ: Update Hotel Description
(cid:190) Lược đồ tuần tự (Sequence Diagram):
Hình 2-38: Sequence Diagram: Cậpnhật thông tin mô tả của nhà cung cấp dịch vụ
(cid:190) Lược đồ cộng tác (Collaboration Diagram):
73
Chương 2. Phân tích
Hình 2-39: Collaboration Diagram: Cập nhật thông tin mô tả của nhà cung cấp dịch vụ
74
Chương 2. Phân tích
2.7.12 Tìm kiếm Khách sạn:
(cid:190) Tên lược đồ: Search Hotels
(cid:190) Lược đồ tuần tự (Sequence Diagram):
Hình 2-40: Sequence Diagram: Tìm kiếm khách sạn
75
Chương 2. Phân tích
(cid:190) Lược đồ cộng tác (Collaboration Diagram):
Hình 2-41: Sequence Diagram: Tìm kiếm khách sạn
76
Chương 2. Phân tích
2.7.13 Thêm người sử dụng mới (với vai trò Admin):
(cid:190) Tên lược đồ: Add New User
(cid:190) Lược đồ tuần tự (Sequence Diagram):
Hình 2-42: Sequence Diagram: Thêm mới người sử dụng
77
Chương 2. Phân tích
(cid:190) Lược đồ cộng tác (Collaboration Diagram):
Hình 2-43: Collaboration Diagram: Thêm mới người sử dụng
78
Chương 2. Phân tích
2.7.14 Xem danh sách người sử dụng (với vai trò Admin):
(cid:190) Tên lược đồ: Show List Users
(cid:190) Lược đồ tuần tự (Sequence Diagram):
Hình 2-44: Sequence Diagram: Xem danh sách người sử dụng
79
Chương 2. Phân tích
(cid:190) Lược đồ cộng tác (Collaboration Diagram):
Hình 2-45: Collaboration Diagram: Xem danh sách người sử dụng
80
Chương 2. Phân tích
2.7.15 Xem thông tin người sử dụng (với vai trò Admin):
(cid:190) Tên lược đồ: Show User Info
(cid:190) Lược đồ tuần tự (Sequence Diagram):
Hình 2-46: Sequence Diagram: Xem thông tin người sử dụng
81
Chương 2. Phân tích
(cid:190) Lược đồ cộng tác (Collaboration Diagram):
Hình 2-47: Collaboration Diagram: Xem thông tin của người sử dụng
82
Chương 2. Phân tích
2.7.16 Xóa thông tin người sử dụng (với vai trò Admin):
(cid:190) Tên lược đồ: Remove User
(cid:190) Lược đồ tuần tự (Sequence Diagram):
Hình 2-48: Sequence Diagram: Xóa người sử dụng
83
Chương 2. Phân tích
(cid:190) Lược đồ cộng tác (Collaboration Diagram):
Hình 2-49: Collaboration Diagram: Xóa người sử dụng
84
Chương 2. Phân tích
2.7.17 Xem danh sách các Khách sạn:
(cid:190) Tên lược đồ: Show List Hotels
(cid:190) Lược đồ tuần tự (Sequence Diagram):
Hình 2-50: Sequence Diagram: Xem danh sách khách sạn
85
Chương 2. Phân tích
(cid:190) Lược đồ cộng tác (Collaboration Diagram):
Hình 2-51: Collaboration Diagram: Xem danh khách sạn
86
Chương 2. Phân tích
2.7.18 Xem thông tin chi tiết một Khách sạn:
(cid:190) Tên lược đồ: Show Hotel Description
(cid:190) Lược đồ tuần tự (Sequence Diagram):
Hình 2-52: Sequence Diagram: Xem thông tin chi tiết của khách sạn
87
Chương 2. Phân tích
(cid:190) Lược đồ cộng tác (Collaboration Diagram):
Hình 2-53: Collaboration Diagram: Xem thông tin chi tiết của khách sạn
88
Chương 2. Phân tích
2.7.19 Xóa một Khách sạn:
(cid:190) Tên lược đồ: Remove Hotel
(cid:190) Lược đồ tuần tự (Sequence Diagram):
Hình 2-54: Sequence Diagram: Xóa một khách sạn
89
Chương 2. Phân tích
(cid:190) Lược đồ cộng tác (Collaboration Diagram):
Hình 2-55: Collaboration Diagram: Xóa một khách sạn
90
Chương 2. Phân tích
2.7.20 Xem danh sách khách viếng:
(cid:190) Tên lược đồ: Show List Visitors
(cid:190) Lược đồ tuần tự (Sequence Diagram):
Hình 2-56: Sequence Diagram: Xem danh sách khách viếng
91
Chương 2. Phân tích
(cid:190) Lược đồ cộng tác (Collaboration Diagram):
Hình 2-57: Collaboration Diagram: Xem danh sách khách viếng
92
Chương 2. Phân tích
2.7.21 Xem thông tin một khách viếng:
(cid:190) Tên lược đồ: Show Visitor Info
(cid:190) Lược đồ tuần tự (Sequence Diagram):
Hình 2-58: Sequence Diagram: Xem thông tin khách viếng
93
Chương 2. Phân tích
(cid:190) Lược đồ cộng tác (Collaboration Diagram):
Hình 2-59: Collaboration Diagram: Xem thông tin khách viếng
94
Chương 2. Phân tích
2.7.22 Xóa một khách viếng:
(cid:190) Tên lược đồ: Remove Visitor
(cid:190) Lược đồ tuần tự (Sequence Diagram):
Hình 2-60: Sequence Diagram: Xóa một khách viếng
95
Chương 2. Phân tích
(cid:190) Lược đồ cộng tác (Collaboration Diagram):
Hình 2-61: Collaboration Diagram: Xóa một khách viếng
96
Chương 3. Thiết kế
Chương 3. THIẾT KẾ
3.1 Thiết kế dữ liệu:
Mặc dù trong phần phân tích chúng em đã sử dụng mô hình hướng đối
tượng để thực hiện nhưng do điều kiện khách quan không thể triển khai được cài
đặt theo mô hình này trong thực tế. Do đó, quá trình chuyển tiếp từ phân tích
hướng đối tượng sang thiết kế hướng đối tượng sẽ được thay thế bằng thiết kế
theo mô hình quan hệ tương ứng với cơ sở dữ liệu quan hệ (SQL Server).
97
Chương 3. Thiết kế
3.1.1 Mô hình dữ liệu logic ở dạng sơ đồ:
Hình 3-1: Sơ đồ mô hình dữ liệu
98
Chương 3. Thiết kế
3.1.2 Danh sách các bảng dữ liệu:
3.1.2.1 tblHotels:
(cid:190) Mô tả: Lưu trữ thông tin đăng ký của các khách sạn.
(cid:190) Các thành phần lưu trữ: HotelID, LoginID, LoginPwd, QuestionID,
Answer, HotelName, ContactName, ContactTitle, Address, City,
Province, CountryID, PostalCode, Phone, Mobile, Fax, HomePage,
Email, Standard, DateReg, LastLogin, NumOfLogin,
NumOfRooms, Active. Khóa chính là HotelID.
3.1.2.2 tblAirplanes:
(cid:190) Mô tả: Lưu trữ thông tin đăng ký của các hãng hàng không.
(cid:190) Các thành phần lưu trữ: AirplaneID, LoginID, LoginPwd,
QuestionID, Answer, AirplaneName, ContactName, ContactTitle,
Address, City, Province, CountryID, PostalCode, Phone, Mobile,
Fax, HomePage, Email, DateReg, LastLogin, NumOfLogin, Active.
Khóa chính là AirplaneID.
3.1.2.3 tblVisitors:
(cid:190) Mô tả: Lưu trữ thông tin đăng ký của khách viếng.
(cid:190) Các thành phần lưu trữ: VisitorID, LoginID, LoginPwd,
QuestionID, Answer, Dear, FirstName, LastName, Address, City,
Province, CountryID, PostalCode, Phone, Mobile, Fax, Email,
DateReg, LastLogin, NumOfLogin, Active. Khóa chính là
VisitorID.
3.1.2.4 tblAdmin:
(cid:190) Mô tả: Lưu trữ thông tin của người quản trị Website.
99
Chương 3. Thiết kế
(cid:190) Các thành phần lưu trữ: AdminID, LoginID, LoginPwd,
QuestionID, Answer, Dear, FirstName, LastName, Address, Phone,
Mobile, Fax, Email, DateReg, LastLogin, NumOfLogin, Active,
UserType. Khóa chính là AdminID.
3.1.2.5 tblRoomInfo:
(cid:190) Mô tả: Lưu trữ thông tin các loại phòng của các khách sạn.
(cid:190) Các thành phần lưu trữ: HotelID, RoomType, NumOfRooms,
SingleRoom, DoubleRoom, AddGuest, ExtraBed, Currency,
Breakfast, Smoking, OtherNotes. Khóa chính bao gồm HotelID,
RoomTypeID.
3.1.2.6 tblFlightInfo:
(cid:190) Mô tả: Lưu trữ thông tin các tuyến bay của các hãng hàng không.
(cid:190) Các thành phần lưu trữ: AirplaneID, FlightName, TakeofTime,
Departure, Destination, Description, SpendTime, Oneway,
Roundtrip, Currency, Notes. Khóa chính bao gồm AirplaneID,
FlightName, TakeoffTime.
3.1.2.7 tblBookInfo:
(cid:190) Mô tả: Lưu trữ thông tin đặt phòng của khách viếng.
(cid:190) Các thành phần lưu trữ: BookingID, VisitorID, HotelType,
CheckInDate, CheckOutDate, CountryID, Province, City,
GuestName, NumOfGuest, Status. Khóa chính là BookingID.
3.1.2.8 tblBookDetail:
(cid:190) Mô tả: Lưu trữ thông tin chi tiết đặt phòng của khách viếng.
(cid:190) Các thành phần lưu trữ: BookingID, RoomTypeID, NumOfRoom.
Khóa chính là BookingID.
100
Chương 3. Thiết kế
3.1.2.9 tblBookResult:
(cid:190) Mô tả: Lưu trữ kết quả đặt phòng của khách viếng.
(cid:190) Các thành phần lưu trữ: BookingID, HotelID, TotalCost,
PaymentID, Status. Khóa chính là BookingID.
3.1.2.10 tblBookTicket:
(cid:190) Mô tả: Lưu trữ thông tin đặt vé máy bay của khách hàng.
(cid:190) Các thành phần lưu trữ: BookTicketID, VisitorID, Departure,
Destination, TicketType, Roundtrip, DateTakeoff, DateReturn,
Passengers, Delivery, SpecialRequest, Statur. Khóa chính là
BookTicketID.
3.1.2.11 tblPassenger:
(cid:190) Mô tả: Lưu trữ thông tin các hành khách đặt vé máy bay.
(cid:190) Các thành phần lưu trữ: BookTicketID, PassengerID,
PassengerType, PassengerName. Khóa chính bao gồm
BookTicketID, PassengerID.
3.1.2.12 tblFlightResult:
(cid:190) Mô tả: Lưu trữ kết quả đặt vé máy bay của khách hàng.
(cid:190) Các thành phần lưu trữ: BookTicketID, AirplaneID, FlightName,
TakeoffTime, TotalCost, PaymentID, Status. Khóa chính là
BookTicketID.
3.1.2.13 tblComments:
(cid:190) Mô tả: Lưu trữ các lời phê bình, đề nghị của các khách viếng
Website. Đây là các thông tin góp ý về Website.
(cid:190) Các thành phần lưu trữ: CommentID, Commentator, Content,
DateRecv, Email. Khóa chính là CommentID.
101
Chương 3. Thiết kế
3.1.2.14 tblHotelInbox:
(cid:190) Mô tả: Lưu trữ các thông tin trao đổi do các thành viên đăng ký với
hệ thống hoặc người quản trị gửi đến.
(cid:190) Các thành phần lưu trữ: HotelID, MessageID, DateRecv,
SenderName, SenderEmail, Subject, Content. Khóa chính bao gồm
HotelID, MessageID.
3.1.2.15 tblAirplaneInbox:
(cid:190) Mô tả: Lưu trữ các thông tin trao đổi do các thành viên đăng ký với
hệ thống gửi đến.
(cid:190) Các thành phần lưu trữ: AirplaneID, MessageID, DateRecv,
SenderName, SenderEmail, Subject, Content. Khóa chính bao gồm
AirplaneID, MessageID.
3.1.2.16 tblVisitorInbox:
(cid:190) Mô tả: Lưu trữ các thông tin trao đổi do các thành viên đăng ký với
hệ thống hoặc người quản trị gửi đến.
(cid:190) Các thành phần lưu trữ: VisitorID, MessageID, DateRecv,
SenderName, SenderEmail, Subject, Content. Khóa chính bao gồm
VisitorID, MessageID.
3.1.2.17 tblAdminInbox:
(cid:190) Mô tả: Lưu trữ các thông tin trao đổi do các thành viên đăng ký với
hệ thống gửi đến cho người quản trị.
(cid:190) Các thành phần lưu trữ: AdminID, MessageID, DateRecv,
SenderName, SenderEmail, Subject, Content. Khóa chính bao gồm
AdminID, MessageID.
102
Chương 3. Thiết kế
3.1.2.18 tblCountries:
(cid:190) Mô tả: Lưu trữ tên của các quốc gia.
(cid:190) Các thành phần lưu trữ: CountryID, CountryName_EN,
CountryName_VN, RegionID, Supported. Khóa chính là RegionID.
3.1.2.19 tblProvinces:
(cid:190) Mô tả: Lưu trữ tên các tỉnh, thành.
(cid:190) Các thành phần lưu trữ: ProvinceID, ProvinceName, CountryID,
Supported. Khóa chính là ProvinceID.
3.1.2.20 tblRegions:
(cid:190) Mô tả: Lưu trữ tên các vùng trên thế giới
(cid:190) Các thành phần lưu trữ: RegionID, RegionName_EN,
RegionName_VN, ContinentID. Khóa chính là RegionID.
3.1.2.21 tblContinents:
(cid:190) Mô tả: Lưu trữ tên các lục địa.
(cid:190) Các thành phần lưu trữ: ContinentID, ContinentName_EN,
ContinentName_VN. Khóa chính là ContinentID.
3.1.2.22 tblCities:
(cid:190) Mô tả: Lưu trữ tên các thành phố.
(cid:190) Các thành phần lưu trữ: CityID, CityName, ProvinceID, CountryID,
Supported. Khóa chính là CityID.
3.1.2.23 tblErrorMsg:
(cid:190) Mô tả: Lưu trữ các thông điệp báo lỗi.
(cid:190) Các thành phần lưu trữ: ErrorID, Description_EN, Description_VN.
Khóa chính là ErrorID.
103
Chương 3. Thiết kế
3.1.2.24 tblCommonMsg:
(cid:190) Mô tả: Lưu trữ các thông điệp, thông báo phổ biến.
(cid:190) Các thành phần lưu trữ: MessageID, MsgDetail_EN,
MsgDetail_VN. Khóa chính là MessageID.
3.1.2.25 tblPayments:
(cid:190) Mô tả: Lưu trữ các loại hình thức thanh toán.
(cid:190) Các thành phần lưu trữ: PaymentID, Description_EN,
Description_VN. Khóa chính là PaymentID.
3.1.2.26 tblCurrencies:
(cid:190) Mô tả: Chứa các loại tiền tệ hỗ trợ.
(cid:190) Các thành phần lưu trữ: CurrencyID, Description_EN,
Description_VN. Khóa chính là CurrencyID.
3.1.2.27 tblQuestions:
(cid:190) Mô tả: Chứa danh sách các câu hỏi được sử dụng trong quá trình
đăng ký của người dùng. Hỗ trợ khi quên mật khẩu.
(cid:190) Các thành phần lưu trữ: QuestionID, Question_EN, Question_VN.
Khóa chính là QuestionID.
3.1.3 Danh sách các thành phần của lược đồ dữ liệu:
STT
Tên
Loại
Ý nghĩa
Ghi chú
1
tblHotels
Đối tượng
Thông tin về khách sạn.
Cung cấp dịch vụ cho thuê phòng.
2
tblAirplanes
Đối tượng
Thông tin về hãng hàng không.
Bán vé máy bay, các dịch vụ về hàng không.
3
tblVisitors
Đối tượng
Thông tin về khách viếng.
Đối tượng đăng ký phòng khách sạn hoặc/và mua vé máy bay.
104
4
tblAdmin
Đối tượng
Thông tin về người quản trị Website.
Quản trị tất cả các đối tượng và hoạt động của Website.
tblRoomInfo
Đối tượng
5
Thông tin phòng của các khách sạn.
Bao gồm giá, số lượng phòng của từng loại…
6
tblFlightInfo
Đối tượng
Thông tin các tuyến bay của các hãng hàng không.
7
tblBookInfo
Đối tượng
Thông tin đặt phòng.
8
tblBookDetail
Đối tượng
Thông tin đặt phòng chi tiết.
9
tblBookResult
Đối tượng
Thông tin kết quả đặt phòng.
10
tblBookTicket
Đối tượng
Thông tin đặt vé máy bay.
11
tblPassenger
Đối tượng Danh sách các hành
khách đặt vé máy bay.
12
tblFlightResult
Đối tượng
Thông tin kết quả đặt vé máy bay.
13
tblComments
Đối tượng
Các góp ý, phê bình của những người viếng Website.
Cho phép gửi các ý kiến đóng góp để hoàn thiện Website.
14
tblHotelInbox
Đối tượng
Chứa các thông điệp hay thông báo của phía quản trị Website gửi cho sphía khách sạn.
Các thông báo khi có yêu cầu cập nhật thông tin hay khi có khách đăng ký phòng…
15
tblAirplaneInbox
Đối tượng
Chứa các thông điệp hay thông báo của phía quản trị Website gửi cho phía hãng hàng không.
Các thông báo khi có yêu cầu cập nhật thông tin hay khi có khách đăng ký vé máy bay.
16
tblVisitorInbox
Đối tượng
Thông báo về kết quả đăng ký phòng, đặt vé máy bay…
Chứa các thông điệp hay thông báo của phía quản trị Website gửi cho phía khách viếng.
17
tblAdminInbox
Đối tượng
Chứa các thông điệp hay thông báo của các đối
Chương 3. Thiết kế
105
tượng khác gửi cho phía quản trị Website.
18
tblCountries
Tham số
Danh sách các quốc gia.
19
tblProvinces
Tham số
Tỉnh, bang
20
tblRegions
Tham số
Các vùng trên thế giới
21
tblContinents
Tham số
Danh sách các lục địa
22
tblCities
Tham số
Danh sách các thành phố của các quốc gia.
23
tblErrorMsg
Tham số
Các thông điệp báo lỗi
24
tblCommonMsg
Tham số
Các thông điệp phổ biến
25
tblPayments
Tham số
Danh sách các hình thức thanh toán.
26
tblCurrencies
Tham số
Danh sách các loại tiền tệ hỗ trợ.
27
tblQuestions
Tham số
Danh sách các câu hỏi.
Dùng trong quá trình đăng ký của người dùng, hỗ trợ khi quên mật khẩu
Chương 3. Thiết kế
Bảng 3-1: Danh sách các thành phần của lược đồ dữ liệu
3.1.4 Danh sách các thuộc tính của từng thành phần:
3.1.4.1 Bảng tblHotels:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
1
HotelID
Số
4
Mã khách sạn
2
LoginID
Chuỗi
30
Tên đăng nhập
3
LoginPwd
Chuỗi
30
Mật khẩu đăng nhập
4
QuestionID
Số
4
Mã câu hỏi
5
Answer
Chuỗi
50
Câu trả lời
6
HotelName
Chuỗi
30
Tên khách sạn
106
Tên người đại diện
ContactName
Chuỗi
7
30
Chức vụ người đại diện
ContactTitle
Chuỗi
8
50
Địa chỉ khách sạn
Address
Chuỗi
9
50
Tên thành phố
City
Chuỗi
10
30
Tỉnh, bang
Province
Chuỗi
11
30
Mã quốc gia
CountryID
Chuỗi
12
2
Mã vùng
PostalCode
Chuỗi
13
10
Điện thoại
Phone
Chuỗi
14
24
Điện thoại di động
Mobile
Chuỗi
15
24
Fax
Fax
Chuỗi
16
24
Website của khách sạn
HomePage
Chuỗi
17
30
Email của người đại diện
Chuỗi
18
30
Loại khách sạn
Standard
Chuỗi
19
15
Ngày đăng ký
DateReg
Ngày
20
8
LastLogin
Ngày
21
8
Ngày đăng nhập cuối cùng
Số lần đăng nhập
NumOfLogin
Số
22
4
Tổng số phòng
NumOfRooms
Số
23
4
Kích hoạt
Active
Bool
22
1
Chương 3. Thiết kế
Bảng 3-2: Bảng dữ liệu tblHotels
3.1.4.2 Bảng tblAirplanes:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
1
4
AirplaneID
Số
Mã hãng hàng không
2
30
LoginID
Chuỗi
Tên đăng nhập
3
30
LoginPwd
Chuỗi
Mật khẩu đăng nhập
107
Mã câu hỏi
4
QuestionID
Số
4
Câu trả lời
5
Answer
Chuỗi
50
Tên hãng hàng không
6
AirplaneName
Chuỗi
30
Tên người đại diện
7
ContactName
Chuỗi
30
Chức vụ người đại diện
8
ContactTitle
Chuỗi
30
Địa chỉ khách sạn
9
Address
Chuỗi
50
Tên thành phố
10
City
Chuỗi
30
Tỉnh, bang
11
Province
Chuỗi
30
Mã quốc gia
12
CountryID
Chuỗi
2
Mã vùng
13
PostalCode
Chuỗi
10
Điện thoại
14
Phone
Chuỗi
24
Điện thoại di động
15
Mobile
Chuỗi
24
Fax
16
Fax
Chuỗi
24
17
HomePage
Chuỗi
30
Website của hãng hàng không
18
Chuỗi
30
Email của người đại diện
Ngày đăng ký
19
DateReg
Ngày
8
20
LastLogin
Ngày
8
Ngày đăng nhập cuối cùng
Số lần đăng nhập
21
NumOfLogin
Số
4
Kích hoạt
22
Active
Bool
1
Chương 3. Thiết kế
Bảng 3-3: Bảng dữ liệu tblAirplanes
3.1.4.3 Bảng tblVisitors:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
1
VisitorID
Số
4
Mã khách viếng
108
Tên đăng nhập
2
LoginID
Chuỗi
30
Mật khẩu đăng nhập
3
LoginPwd
Chuỗi
30
Mã câu hỏi
4
QuestionID
Số
4
Câu trả lời
5
Answer
Chuỗi
50
Xưng hô
6
Dear
Chuỗi
5
First name
7
FirstName
Chuỗi
30
Last name
8
LastName
Chuỗi
30
Địa chỉ của khách viếng
9
Address
Chuỗi
50
Tên thành phố
10
City
Chuỗi
30
Tỉnh
11
Province
Chuỗi
30
Mã quốc gia
12
CountryID
Chuỗi
2
Mã vùng
13
PostalCode
Chuỗi
10
Điện thoại
14
Phone
Chuỗi
24
Điện thoại di động
15
Mobile
Chuỗi
24
Fax
16
Fax
Chuỗi
24
Email của khách viếng
17
Chuỗi
30
Ngày đăng ký
18
DateReg
Ngày
8
19
LastLogin
Ngày
8
Ngày đăng nhập cuối cùng
Số lần đăng nhập
20
NumOfLogin
Số
4
Kích hoạt
21
Active
Bool
1
Chương 3. Thiết kế
Bảng 3-4: Bảng dữ liệu tblVisitors
3.1.4.4 Bảng tblAdmin:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
1
AdminID
Chuỗi
10
Mã của người quản trị
109
2
LoginID
Chuỗi
30
Tên đăng nhập
3
LoginPwd
Chuỗi
30
Mật khẩu đăng nhập
4
QuestionID
Số
4
Mã câu hỏi
5
Answer
Chuỗi
50
Câu trả lời
6
Dear
Chuỗi
5
Xưng hô
7
FirstName
Chuỗi
30
First name
8
LastName
Chuỗi
30
Last name
9
Address
Chuỗi
50
Địa chỉ
10
Phone
Chuỗi
24
Điện thoại
11
Mobile
Chuỗi
24
Điện thoại di động
12
Fax
Chuỗi
24
Fax
13
Chuỗi
30
Email của người quản trị
14
DateReg
Ngày
8
Ngày đăng ký
15
LastLogin
Ngày
8
Ngày đăng nhập cuối cùng
16
NumOfLogin
Số
4
Số lần đăng nhập
17
Active
Bool
1
Kích hoạt
18
UserType
Chuỗi
1
Loại người dùng
Chương 3. Thiết kế
Bảng 3-5: Bảng dữ liệu tblAdmin
3.1.4.5 Bảng tblRoomInfo:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
1
HotelID
Số
4
Mã khách sạn
2
RoomType
Chuỗi
30
Loại phòng
3
NumOfRooms
Số
4
Số lượng phòng
4
SingleRoom
Số
8
Giá phòng đơn
110
Giá phòng đôi
DoubleRoom
Số
5
8
Giá khi thêm khách
AddGuest
Số
6
8
Giá khi có giường phụ
ExtraBed
Số
7
8
Currency
Chuỗi
10
Loại tiền tệ
7
Phục vụ ăn sáng
Breakfast
Bool
8
1
Cho phép hút thuốc
Smoking
Bool
9
1
10
OtherNotes
Chuỗi
200
Các ghi chú bổ sung
Chương 3. Thiết kế
Bảng 3-6: Bảng dữ liệu tblRoomInfo
3.1.4.6 Bảng tblFlightInfo:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
Mã hãng hàng không
1
4
AirplaneID
Số
Tên tuyến bay
2
50
FlightName
Chuỗi
Thời gian cất cánh
3
8
TakeoffTime
Ngày
Nơi khởi hành
4
50
Departure
Chuỗi
Nơi đến
5
50
Destination
Chuỗi
Mô tả
6
Description
Chuỗi
200
7
4
SpendTime
Số
Khoảng thời gian dự kiến của chuyến bay
Đơn giá đi một chiều
8
8
Oneway
Số
Đơn giá đi và về
9
8
Roundtrip
Số
Đơn vị tiền tệ
10
Currency
Chuỗi
10
11
Notes
Chuỗi
200
Các ghi chú bổ sung
Bảng 3-7: Bảng dữ liệu tblFlightInfo
3.1.4.7 Bảng tblBookInfo:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
111
1
BookingID
Số
Mã đặt phòng
4
2
VisitorID
Số
Mã khách viếng
4
3
HotelType
Chuỗi
15
Loại khách sạn
4
CheckInDate
Ngày
Ngày đến
8
5
CheckOutDate
Ngày
Ngày đi
8
6
CountryID
Chuỗi
Mã quốc gia
2
7
Province
Chuỗi
Tỉnh
30
8
City
Chuỗi
Thành phố
30
9
GuestName
Chuỗi
Tên khách ở (đại diện)
30
10
NumOfGuest
Số
Số lượng khách
4
11
Status
Chuỗi
10
Trạng thái của bảng đăng ký này
Chương 3. Thiết kế
Bảng 3-8: Bảng dữ liệu tblBookInfo
3.1.4.8 Bảng tblBookDetail:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
1
Mã đặt phòng
4
BookingID
Số
2
Mã loại phòng
30
RoomType
Chuỗi
3
Số phòng của từng loại
4
NumOfRoom
Số
Bảng 3-9: Bảng dữ liệu tblBookDetail
3.1.4.9 Bảng tblBookResult:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
1
Mã đặt phòng
4
BookingID
Số
2
Mã khách sạn
4
HotelID
Số
3
Tổng chi phí
8
TotalCost
Số
4
2
PaymentID
Chuỗi
Mã hình thức thanh toán
112
toán
5
Status
Chuỗi
10
Trạng thái của bảng đăng ký này
Chương 3. Thiết kế
Bảng 3-10: Bảng dữ liệu tblBookResult
3.1.4.10 Bảng tblBookTicket:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
Mã đặt vé máy bay
BookTicketID
Số
4
1
Mã khách viếng
VisitorID
Số
4
2
Nơi khởi hành
Departure
Chuỗi
50
3
Nơi đến
Destination
Chuỗi
50
4
Loại vé máy bay
TicketType
Chuỗi
30
5
Có phải là vé khứ hồi
Roundtrip
Bool
1
6
Ngày cất cánh
DateTakeoff
Ngày
8
7
Ngày quay về
DateReturn
Ngày
8
8
Số hành khách đặt vé
Passengers
Số
4
9
10
Delivery
Chuỗi
50
Địa chỉ phân phối vé
11
SpecialRequest Chuỗi
200
Các yêu cầu đặc biệt
12
Status
Chuỗi
10
Trạng thái của bảng đăng ký này
Bảng 3-11: Bảng dữ liệu tblBookTicket
3.1.4.11 Bảng tblPassenger:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
1
BookTicketID
Số
4
Mã đặt vé máy bay
2
PassengerID
Số
4
Mã hành khách
3
PassengerType
Chuỗi
10
Loại hành khách
113
4
PassengerName
Chuỗi
50
Tên hành khách
Chương 3. Thiết kế
Bảng 3-12: Bảng dữ liệu tblPassenger
3.1.4.12 Bảng tblFlightResult:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
1
BookTicketID
Số
4
Mã đặt vé máy bay
2
AirplaneID
Số
4
Mã hãng hàng không
3
FlightName
Chuỗi
50
Tên tuyến bay
4
TakeoffTime
Ngày
8
Thời gian khởi hành
5
TotalCost
Số
8
Tổng chi phí
6
PaymentID
Chuỗi
3
Mã hình thức thanh toán
7
Status
Chuỗi
10
Trạng thái của bảng đăng ký hiện tại
Bảng 3-13: Bảng dữ liệu FlightResutl
3.1.4.13 Bảng tblComments:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
1
CommentID
Số
4
Mã lời góp ý
2
Commentator
Chuỗi
50
Tên người góp ý
3
Content
Chuỗi
1000
Nội dung
4
DateRecv
Ngày
8
Ngày nhận
5
Chuỗi
50
Email của người góp ý
Bảng 3-14: Bảng dữ liệu tblComments
3.1.4.14 Bảng tblHotelInbox:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
1
HotelID
Số
4
Mã khách sạn
114
MessageID
Số
2
4
Mã thông điệp
DateRecv
Ngày
3
8
Ngày nhận thông điệp
SenderName
Chuỗi
4
50
Tên người gửi
SenderEmail
Chuỗi
5
50
Email của người gửi
Subject
Chuỗi
100
Tiêu đề của thông điệp
6
Content
Chuỗi
1000
Nội dung thông điệp
7
Chương 3. Thiết kế
Bảng 3-15: Bảng dữ liệu tblHotelInbox
3.1.4.15 Bảng tblAirplaneInbox:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
1
AirplaneID
Số
4
Mã hãng hàng không
2
MessageID
Số
4
Mã thông điệp
3
DateRecv
Ngày
8
Ngày nhận thông điệp
4
SenderName
Chuỗi
50
Tên người gửi
5
SenderEmail
Chuỗi
50
Email của người gửi
Subject
Chuỗi
100
Tiêu đề của thông điệp
6
Content
Chuỗi
1000
Nội dung thông điệp
7
Bảng 3-16: Bảng dữ liệu tblAirplaneInbox
3.1.4.16 Bảng tblVisitorInbox:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
1
VisitorID
Số
4
Mã khách viếng
2
MessageID
Số
4
Mã thông điệp
3
DateRecv
Ngày
8
Ngày nhận thông điệp
4
SenderName
Chuỗi
50
Tên người gửi
5
SenderEmail
Chuỗi
50
Email của người gửi
115
6
Subject
Chuỗi
100
Tiêu đề của thông điệp
7
Content
Chuỗi
1000
Nội dung thông điệp
Chương 3. Thiết kế
Bảng 3-17: Bảng dữ liệu tblVisitorInbox
3.1.4.17 Bảng tblAdminInbox:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
1
AdminID
Số
4
Mã người quản trị
2
MessageID
Số
4
Mã thông điệp
3
DateRecv
Ngày
8
Ngày nhận thông điệp
4
SenderName
Chuỗi
50
Tên người gửi
5
SenderEmail
Chuỗi
50
Email của người gửi
6
Subject
Chuỗi
100
Tiêu đề của thông điệp
7
Content
Chuỗi
1000
Nội dung thông điệp
Bảng 3-18: Bảng dữ liệu tblAdminInbox
3.1.4.18 Bảng tblCountries:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
1
Mã quốc gia
CountryID
Số
4
2
Tên theo tiếng Anh
CountryName_EN Chuỗi
30
3
Tên theo tiếng Việt
CountryName_VN Chuỗi
30
4
5
RegionID
Chuỗi
Mã vùng trên thế giới
5
1
Supported
Bool
Có hỗ trợ
Bảng 3-19: Bảng dữ liệu tblCountries
3.1.4.19 Bảng tblProvinces:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
1
ProvinceID
Chuỗi
5
Mã tỉnh, bang
116
2
ProvinceName
Chuỗi
30
Tên tỉnh, bang
3
CountryID
Chuỗi
2
Mã quốc gia
Chương 3. Thiết kế
Bảng 3-20: Bảng dữ liệu tblProvinces
3.1.4.20 Bảng tblRegions:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
1
RegionID
Chuỗi
Mã vùng
5
2
RegionName_EN
Chuỗi
30
Tên vùng tiếng Anh
3
RegionName_VN
Chuỗi
30
Tên vùng tiếng Việt
3
ContinentID
Chuỗi
2
Mã châu lục
Bảng 3-21: Bảng dữ liệu tblRegions
3.1.4.21 Bảng tblContinents:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
1
ContinentID
Chuỗi
2
Mã châu lục
2
ContinentName_EN
Chuỗi
20
Tên theo tiếng Anh
3
ContinentName_VN
Chuỗi
20
Tên theo tiếng Việt
Bảng 3-22: Bảng dữ liệu tblContinents
3.1.4.22 Bảng tblCities:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
1
CityID
Chuỗi
5
Mã thành phố
2
CityName
Chuỗi
30
Tên thành phố
3
ProvinceID
Chuỗi
5
Mã tỉnh, bang
4
CountryID
Chuỗi
2
Mã quốc gia
5
Supported
Bool
1
Có hỗ trợ
Bảng 3-23: Bảng dữ liệu tblCities
117
Chương 3. Thiết kế
3.1.4.23 Bảng tblErrorMsg:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
ErrorID
Số
4
Mã lỗi
1
Description_VN Chuỗi
255
Mô tả bằng tiếng Việt
2
Description_EN Chuỗi
255
Mô tả bằng tiếng Anh
3
Bảng 3-24: Bảng dữ liệu tblErrorMsg
3.1.4.24 Bảng tblCommonMsg:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
MessageID
Số
4
Mã thông điệp
1
MsgDetail_VN
Chuỗi
255
Mô tả bằng tiếng Việt
2
MsgDetail_EN
Chuỗi
255
Mô tả bằng tiếng Anh
3
Bảng 3-25: Bảng dữ liệu tblCommonMsg
3.1.4.25 Bảng tblPayments:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
PaymentID
Chuỗi
2
1
Mã hình thức thanh toán
Description_EN Chuỗi
Mô tả bằng tiếng Anh
2
30
Description_VN Chuỗi
Mô tả bằng tiếng Việt
3
30
Bảng 3-26: Bảng dữ liệu tblPayments
3.1.4.26 Bảng tblCurrencies:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
Mã tiền tệ
CurrencyID
Chuỗi
1
3
Mô tả bằng tiếng Anh
Description_EN Chuỗi
2
20
Mô tả bằng tiếng Việt
Description_VN Chuỗi
3
20
Bảng 3-27: Bảng dữ liệu tblCurrencies
118
Chương 3. Thiết kế
3.1.4.27 Bảng tblQuestions:
STT
Thuộc tính
Kiểu
Kích thước Trị định sẳn
Ghi chú
1
QuestionID
Số
4
Mã câu hỏi
2
Question_EN
Chuỗi
50
Câu hỏi tiếng Anh
3
Question_VN
Chuỗi
50
Câu hỏi tiếng Việt
Bảng 3-28: Bảng dữ liệu tblQuestions
3.1.5 Danh sách các ràng buộc toàn vẹn:
3.1.5.1 Ràng buộc miền giá trị:
(cid:190) R1:
(cid:131) Phát biểu: Tổng số phòng của một khách sạn phải lớn hơn 0.
(cid:131) Nội dung: ∀h ∈ tblHotels, h.NumOfRooms > 0.
(cid:131) Bối cảnh: tblHotels.
(cid:131) Tầm ảnh hưởng:
Bối cảnh
Thêm
Xóa
Sửa
tblHotels
+
-
+ (NumOfRooms)
(cid:190) R2:
(cid:131) Phát biểu: Tổng số khách đăng ký phòng phải lớn hơn hay bằng 1.
(cid:131) Nội dung: ∀b ∈ tblHotels, b.NumOfGuest ≥ 1.
(cid:131) Bối cảnh: tblBookInfo.
(cid:131) Tầm ảnh hưởng:
Bối cảnh
Thêm
Xóa
Sửa
tblBookInfo
+
-
+ (NumOfGuest)
(cid:190) R3:
119
Chương 3. Thiết kế
(cid:131) Phát biểu: Số hành khách đặt mua vé phải lớn hơn hay bằng 1.
(cid:131) Nội dung: ∀b ∈ tblBookTicket, b.Passengers ≥ 1.
(cid:131) Bối cảnh: tblBookTicket.
(cid:131) Tầm ảnh hưởng:
Bối cảnh
Thêm
Xóa
Sửa
tblBookTicket
+
-
+ (Passengers)
3.1.5.2 Ràng buộc liên bộ:
(cid:190) R1:
(cid:131) Phát biểu: Tên đăng nhập là duy nhất.
(cid:131) Nội dung:
∀a1 ∈ tblAdmin, !∃a2 ∈ tblAdmin : a1.LoginID = a2.LoginID.
∀r1 ∈ tblAirplanes, !∃r2 ∈ tblAirplanes : r1.LoginID =
r2.LoginID.
∀h1 ∈ tblHotels, !∃h2 ∈ tblHotels : h1.LoginID = h2.LoginID.
∀v1 ∈ tblVisitors, !∃v2 ∈ tblVisitors : v1.LoginID = v2.LoginID.
(cid:131) Bối cảnh: tblAdmin, tblAirplanes, tblHotels, tblVisitors.
(cid:131) Tầm ảnh hưởng:
Bối cảnh
Thêm
Xóa
Sửa
tblAdmin
+
-
+ (LoginID)
tblAirplanes
+
-
+ (LoginID)
tblHotels
+
-
+ (LoginID)
tblVisitors
+
-
+ (LoginID)
120
Chương 3. Thiết kế
3.1.5.3 Ràng buộc liên thuộc tính:
(cid:190) R1:
(cid:131) Phát biểu: Ngày đến ở phải nhỏ hơn hoặc bằng ngày đi.
(cid:131) Nội dung: ∀b ∈ tblBookInfo, b.CheckInDate ≤ b.CheckOutDate.
(cid:131) Bối cảnh: tblBookInfo.
(cid:131) Tầm ảnh hưởng:
Bối cảnh
Thêm
Xóa
Sửa
tblBookInfo
+
-
+ (CheckInDate, CheckOutDate)
(cid:190) R2:
(cid:131) Phát biểu: Ngày khởi hành phải nhỏ hơn hoặc bằng ngày trở về.
(cid:131) Nội dung: ∀b ∈ tblBookTicket, b.DateTakeoff ≤ b.DateReturn.
(cid:131) Bối cảnh: tblBookTicket.
(cid:131) Tầm ảnh hưởng:
Bối cảnh
Thêm
Xóa
Sửa
tblBookTicket
+
-
+ (DateTakeoff, DateReturn)
(cid:190) R3:
(cid:131) Phát biểu: Ngày đăng ký phải luôn nhỏ hơn hoặc bằng ngày đăng
nhập cuối cùng.
(cid:131) 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
(cid:131) Bối cảnh: tblAdmin, tblAirplanes, tblHotels, tblVisitors.
121
Chương 3. Thiết kế
(cid:131) 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:
(cid:190) R1:
(cid:131) Phát biểu: Mỗi thông điệp đều phải thuộc một người dùng nào đó.
(cid:131) Nội dung: ∀a ∈ tblAdminInbox, ∃b ∈ tblAdmin | b.AdminID =
a.AdminID.
(cid:131) Bối cảnh: tblAdminInbox, tblAdmin.
(cid:131) 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ệ:
(cid:190) R1:
(cid:131) 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).
(cid:131) Nội dung: ∀b ∈ tblBookInfo, ∃v ∈ tblVisitors | b.VisitorID =
v.VisitorID.
(cid:131) Bối cảnh: tblBookInfo, tblVisitors.
122
Chương 3. Thiết kế
(cid:131) Tầm ảnh hưởng:
Bối cảnh
Thêm
Xóa
Sửa
tblBookInfo
+
-
+ (VisitorID)
tblVisitor
-
+
+ (VisitorID)
(cid:190) R2:
(cid:131) 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).
(cid:131) Nội dung: ∀b ∈ tblBookTicket, ∃v ∈ tblVisitors | b.VisitorID =
v.VisitorID.
(cid:131) Bối cảnh: tblBookTicket, tblVisitors.
(cid:131) 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:
(cid:190) R1:
(cid:131) 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ý.
(cid:131) Nội dung:
∀b ∈ tblBookTicket
SoHanhKhach = 0;
∀p ∈ tblPassenger
if (p.BookTicketID = b.BookTicketID) then
SoHanhKhach += 1;
123
Chương 3. Thiết kế
Cuối ∀p
SoHanhKhach = b.NumOfGuest
Cuối ∀b.
(cid:131) Bối cảnh:
(cid:131) 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:
(cid:190) 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
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
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
(cid:190) Bảng tổng hợp nhóm:
STT
Nhóm
Xử lý
Bảng dữ liệu
Xem danh sách khách sạn
tblHotels
tblAirplanes
Xem danh sách hãng hàng không.
tblVisitors
Xem danh sách khách viếng.
tblAdmin
Xeam danh sách người dùng.
tblBookInfo
tblBookTicket
Xem thông tin chi tiết của một khách sạn.
tblAdminInbox
1
Quản trị
tblBookDetail
Xem thông tin chi tiết của một hãng hàng không.
tblBookResult
Xem thông tin chi tiết của một khách viếng.
tblFlightInfo
tblFlightResult
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.
126
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.
Nhập mô tả khách sạn.
tblHotels
2
Điều chỉnh thông tin.
tblRoomInfo
Khách sạn
Quản lý thông điệp
tblHotelInbox
Nhập mô tả các tuyến bay.
tbAirplanes
3
Điều chỉnh thông tin.
tblFlightInfo
Hãng hàng không
Quản lý thông điệp
tblAirplaneInbox
tblVisitors
Đặt phòng khách sạn.
tblBookInfo
Đặt vé máy bay.
tbBookDetail
Tìm kiếm khách sạn.
tblBookResult
Xem thông tin khách sạn.
tblBookTicket
Điều chỉnh thông tin.
4
Khách viếng
tblFlightResult
Quản lý thông điệp.
tblHotels
Tìm kiếm hãng hàng không.
tblRoomInfo
Xem thông tin các tuyến bay.
tblFlightInfo
Chương 3. Thiết kế
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
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
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ề.
Thuật giải:
128
Chương 3. Thiết kế
3.3.2 Bảng mô tả module:
(cid:190) Tên nhóm/Module: Database Access
(cid:190) Mô tả: Truy xuất dữ liệu
(cid:190) Danh sách thủ tục, hàm:
STT
Tên Thủ tục, hàm
Mô tả
Phạm vi
Kiểu DL trả về
CheckUser
1
Bool
Public
Kiểm tra thông tin người dùng khi mở một trang web.
GetTable
2
DataTable
Public
Lấy về một bảng dữ liệu với đối số truyền vào là tên bảng.
RunSelect
3
DataTable
Public
Thực thi một câu lệnh Select. Giá trị trả về là một bảng.
RunUpdate
4
Int
Public
Thực thi một câu lệnh Update. Giá trị trả về là số dòng được update.
5
RunDelete
Int
Public
Thực thi một câu lệnh Delete. Giá trị trả về là số dòng được delete.
AddVisitor
6
Int
Public
Thêm một khách viếng vào CSDL.
AddAdmin
7
Int
Public
Thêm một người sử dụng vào CSDL.
AddHotel
8
Int
Public
Thêm một khách sạn vào CSDL.
9
Int
AddAirplane
Public
Thêm một hãng hàng không vào CSDL.
10
AddRoomInfo
Int
Public
Thêm thông tin mô tả các loại phòng của khách sạn.
11
AddFlightInfo
Int
Public
Thêm thông tin mô tả các tuyến bay của các hãng hàng không.
129
12
AddBookRoom
Int
Public
Thêm bảng đăng ký đặt phòng khách sạn.
13
AddBookTicket
Int
Public
Thêm bảng đăng ký đặt vé máy bay.
14
AddMessage
Int
Public
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.
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
Chương 3. Thiết kế
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
Chương 3. Thiết kế
Hình 3-7: Trang chủ
131
Chương 3. Thiết kế
Hình 3-8: Đăng ký thành viên
132
Chương 3. Thiết kế
Hình 3-9: Đăng nhập
133
Chương 3. Thiết kế
Hình 3-10: Mô tả khách sạn
134
Chương 3. Thiết kế
Hình 3-11: Mô tả hãng hàng không
135
Chương 3. Thiết kế
Hình 3-12: Xem danh sách khách viếng
136
Chương 3. Thiết kế
Hình 3-13: Thêm người dùng
137
Chương 3. Thiết kế
Hình 3-14: Quản lý
138
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
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à:
(cid:190) 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.
(cid:190) 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.
(cid:190) 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.
(cid:190) 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
Chương 4. Cài đặt và Triển khai
(cid:190) 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.
(cid:190) 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).
(cid:190) 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.
(cid:190) 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:
(cid:190) 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.
(cid:190) 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
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
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
Xem thông tin chi tiết.
Quản lý thông tin chi tiết của các hãng hàng không.
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
Xem thông tin chi tiết.
Quản lý thông tin chi tiết của các khách sạn.
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
Xem thông tin chi tiết.
Quản lý thông tin chi tiết của các khách viếng.
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
Xem thông tin chi tiết.
Kích hoạt một người dùng
Quản lý thông tin chi tiết của người sử dụng (admin).
Xóa một người dùng.
5
ListAirplaness
Admin
Khởi tạo danh sách.
Liệt kê danh sách hãng hàng không.
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
Khởi tạo danh sách.
Liệt kê danh sách khách sạn.
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
Khởi tạo danh sách.
Liệt kê danh sách các khách viếng.
Hiển thị danh sách.
Chọn một item trong danh sách
143
để xem chi tiết.
Xóa một item trong danh sách khỏi cơ sở dữ liệu.
8
ListUsers
Admin
Khởi tạo danh sách.
Hiển thị danh sách.
Liệt kê danh sách người dùng (vai trò admin).
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
Xử lý đăng nhập.
Đăng nhập vào hệ thống với vai trò admin.
Cho phép tìm password khi quên password.
10
ManageBookRoom
Admin
Xem danh sách đặt phòng mới nhất (tất cả, thành công, thất bại).
Quản lý thông tin đặt phòng khách sạn của khách viếng.
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 vào cơ sở dữ liệu.
Thêm người sử dụng mới vào cơ sở dữ liệu.
13
SendMessage
Admin
Gửi thông điệp.
Gửi thông điệp đến các đối tượng
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
Đăng ký.
Hãng hàng không đăng ký làm nhà cung cấp dịch vụ.
16
Login
Airplane
Kiểm tra thông tin đăng nhập.
Hãng hàng không đăng nhập vào hệ thống.
Tìm password khi quên password.
Đăng ký.
17
Register
Hotel
Khách sạn đăng ký làm nhà cung
Chương 4. Cài đặt và Triển khai
144
cấp dịch vụ.
18
Login
Hotel
Kiểm tra thông tin đăng nhập.
Khách sạn đăng nhập vào hệ thống.
Tìm password khi quên password.
19
Booking
Visitor
Đặt phòng.
Cho phép đặt phòng khách sạn
20
FlightTicket
Visitor
Đặt vé máy bay.
Cho phép đặt vé máy bay.
21
Login
Visitor
Kiểm tra thông tin đăng nhập.
Khách viếng đăng nhập vào hệ thống.
Tìm password khi quên password.
22
ListHotels
Visitor
Xem danh sách khách sạn.
Liệt kê danh sách các khách sạn.
23
Regiser
Visitor
Đăng ký.
Khách viếng đăng ký làm thành viên.
24
Search
Visitor
Tìm kiếm.
Hiển thị danh sách.
Tìm kiếm các khách sạn theo các tiêu 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.
Thêm người sử dụng.
29
DBCommon
DataServices
Thêm khách sạn.
Thêm khách viếng.
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 hãng hàng không.
Chương 4. Cài đặt và Triển khai
145
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.
…
Chương 4. Cài đặt và Triển khai
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
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.
Chương 4. Cài đặt và Triển khai
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:
(cid:190) Tên phương thức: CheckUser(int UserID, string UserType)
(cid:190) Giá trị trả về: Bool
(cid:190) 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.
(cid:190) 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
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
Chương 4. Cài đặt và Triển khai
4.1.4.2 Thủ tục thêm người dùng:
(cid:190) Tên phương thức: AddUser(ConnectionString conn, tblAdmin
admin).
(cid:190) Giá trị trả về: Int
(cid:190) Mô tả: Thêm một người dùng vào cơ sở dữ liệu.
(cid:190) 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:
(cid:190) Tên phương thức: DelUser(ConnectionString conn, int AdminID)
(cid:190) Giá trị trả về: Int
(cid:190) Mô tả: Xóa một người dùng khỏi cơ sở dữ liệu.
(cid:190) Thuật giải:
149
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:
(cid:190) Tên phương thức: RunCommand(ConnectionString conn, string
commandString, string TableName)
(cid:190) Giá trị trả về: Int
(cid:190) Mô tả: Thực thi một câu lệnh SQL (Select).
(cid:190) 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:
(cid:190) Tên phương thức: Login(string UserID, string Password)
(cid:190) Giá trị trả về: Bool
150
Chương 4. Cài đặt và Triển khai
(cid:190) Mô tả: Kiểm tra thông tin đăng nhập và thực hiện đăng nhập cho
người dùng.
(cid:190) 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:
(cid:190) Tên phương thức: BookRoom(int VisitorID, int HotelID,…)
(cid:190) Giá trị trả về: Int
(cid:190) 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.
(cid:190) 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
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:
(cid:190) Tên phương thức: BookTicket(int VisitorID, int AirplaneID, string
TicketType, int NumOfPassenger,…)
(cid:190) Giá trị trả về: Int
(cid:190) 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é.
(cid:190) 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:
(cid:190) Tên phương thức: SearchHotel(string Standard, string City, string
Country)
152
Chương 4. Cài đặt và Triển khai
(cid:190) Giá trị trả về: DataTable
(cid:190) 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.
(cid:190) 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 (cid:198) Creating ASP.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
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:
(cid:190) Độ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.
(cid:190) Dễ phát triển: ASP.NET cho phép khai báo và viết mã đơn giản.
154
Chương 4. Cài đặt và Triển khai
(cid:190) 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.
(cid:190) Tính mềm dẻo và khả năng nâng cấp.
(cid:190) Hỗ trợ nhiều trình khách.
(cid:190) 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…
(cid:190) Xử lý phía trình chủ sử dụng phát biểu Runat=”server”.
(cid:190) 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:
(cid:190) 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.
(cid:190) MPAC 2.7 cho Data.
(cid:190) Internet Information Services.
155
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:
(cid:190) Đố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.
(cid:190) 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”).
(cid:190) 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.
(cid:190) 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.
(cid:190) 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.
(cid:190) 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
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.
(cid:190) Xử lý lỗi: Các công cụ debug và trace được nâng cấp và đáng tin cậy
hơn.
(cid:190) 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.
(cid:190) Tùy biến vùng đệm trên trình chủ.
(cid:190) 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
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:
(cid:190) Windows: Basic, digest, hay Integrated Windows Authentication.
(cid:190) Microsoft Passport authentication.
(cid:190) Form authentication.
(cid:190) 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
(cid:137) Cách ASP.NET Security làm việc:
(group), hay authorized HTML verbs.
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
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:
(cid:190) 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ó.
(cid:190) 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
(cid:137) Kiến trúc ASP.NET:
hay địa chỉ IP của người dùng.
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
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.
(cid:190) 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.
(cid:190) 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
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):
(cid:190) 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
Chương 4. Cài đặt và Triển khai
(cid:190) 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.
(cid:190) 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
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:
(cid:190) Sự hợp nhất .Net Framework.
(cid:190) Hoạt động đáng tin cậy.
(cid:190) 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ý.
(cid:190) Tính mềm dẻo và dễ dàng nâng cấp.
(cid:190) Sự thi hành tối ưu.
(cid:190) 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.
(cid:190) 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
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.
(cid:190) Sự cải tiến hỗ trợ xử lý đa trình đối xứng
(cid:190) 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).
(cid:137) Khai báo trong Global.asax:
4.1.5.8 Làm việc với các tập tin cấu hình:
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
<%@ [Directive] [attribute] = [value %>
gồm các khai báo chỉ mục, biến cố và mã ASP.NET như sau: (cid:190) Chỉ mục Directive: Khai báo tương tự như các trang ASP.NET. Các @Application, @Import, @Assembly. application directives được hỗ trợ trong ASP.NET bao gồm: protected void Application_Start(Object sender, EventArgs e)
{
// Kích hoạt khi ứng dụng khởi động.
} (cid:190) Các biến cố: Trang global.asax thường sử dụng các biến cố sau: 164 // Kích hoạt khi session khởi động. protected void Session_Start(Object sender, EventArgs e)
{
}
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)
{
} (cid:137) Khai báo trong Web.config: Chương 4. Cài đặt và Triển khai 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ở type=”System.Web.SessionState.SessionStateSectionHandler, System.Web, Version=”1.0.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” allowDefinition=”MachineToApplication” /> dữ liệu SQL Server. Sau đây là nội dung của một trang web.config: 165 defaultRedirect=”sorry.aspx”> value="Server=thesis;Integrated Security=SSPI;Database=Booking;Connection Timeout=15;" /> (cid:137) Khai báo trong Machine.config: Chương 4. Cài đặt và Triển khai 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.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: http://localhost/booking và trang mặc định sẽ 166 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 (cid:198) New Virtual Directory…(cid:198) Gõ vào ô Alias tên truy cập (ví dụ: booking) (cid:198) Chọn đường dẫn tới thư mục vừa chép các files chương trình (C:\Booking) (cid:198) Thiết lập các quyền truy xuất (cid:198) 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: 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 (cid:198) Right-Click (cid:198) 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 Chương 4. Cài đặt và Triển khai 168 Chương 4. Cài đặt và Triển khai 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 (cid:198) All Tasks (cid:198) 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 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. 170 Chương 4. Cài đặt và Triển khai 171 Chương 4. Cài đặt và Triển khai 172 Chương 5. Tổng kết 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 Chương 5. Tổng kết (cid:190) Đă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) (cid:190) Xem danh sách khách viếng. (cid:190) Xem danh sách khách sạn. (cid:190) Xem danh sách hãng hàng không. (cid:190) Xem danh sách người dùng với vai trò quản trị. (cid:190) Xem thông tin chi tiết của từng khách viếng. (cid:190) Xem thông tin chi tiết của từng khách sạn. (cid:190) Xem thông tin chi tiết của từng hãng hàng không. (cid:190) Xem thông tin chi tiết của từng người dùng với vai trò quản trị. (cid:190) Xóa một khách viếng khỏi cơ sở dữ liệu. (cid:190) Xóa một khách sạn khỏi cơ sở dữ liệu. (cid:190) Xóa một hãng hàng không khỏi cơ sở dữ liệu. (cid:190) Xóa một người dùng khỏi cơ sở dữ liệu. (cid:190) Điều chỉnh thông tin cá nhân. (cid:190) Quản lý thông tin đặt phòng của khách viếng. (cid:190) Quản lý thông tin đặt vé máy bay của khách viếng. (cid:190) Thêm một người sử dụng mới với vai trò quản trị. (cid:190) Xem danh sách thông điệp của các đối tượng khác gửi tới. (cid:190) Xem nội dung thông điệp, gửi và xóa thông điệp trong danh sách. (cid:190) 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: (cid:190) Đăng ký để trở thành thành viên. (cid:190) Đă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). (cid:190) Đặt phòng khách sạn. 174 Chương 5. Tổng kết (cid:190) Đặt vé máy bay. (cid:190) Tìm kiếm thông tin các khách sạn. (cid:190) Hiệu chỉnh thông tin cá nhân. (cid:190) Xem danh sách các thông điệp do phía quản trị gửi đến. (cid:190) 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: (cid:190) Đă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). (cid:190) Đă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). (cid:190) Nhập các thông tin mô tả cho khách sạn hay hãng hàng không. (cid:190) Điều chỉnh thông tin đăng ký. (cid:190) 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. Để 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 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 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. 1774.2 Triển khai và thử nghiệm chương trình:
Hình 4-3: SQL Server Enterprise Manager
Hình 4-4: Tạo cơ sở dữ liệu Booking
Hình 4-5: Chọn chức năng Restore Database
Hình 4-6: Chuẩn bị Restore cơ sở dữ liệu
Hình 4-7: Ghi đè lên tập tin cơ sở dữ liệu
Hình 4-8: Danh sách đối tượng cơ sở dữ liệu
Chương 5. TỔNG KẾT
5.1 Kết luận:
5.2 Hướng phát triển:
TÀI LIỆU THAM KHẢO