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

Email

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

Email

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

Email

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

Email

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

Email

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 Triển khai và thử nghiệm chương trình:

4.2.1 Triển khai và thử nghiệm ứng dụng:

Trước tiên copy thư mục ứng dụng có tên Booking trong đĩa CD vào

đĩa cứng (chẳng hạn C:\Booking). Sau đó, bằng việc cấu hình trong IIS

cùng với việc cấu hình ASP.NET trong IIS, bạn có thể truy cập vào web

site thông qua địa chỉ sau: 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:

Hình 4-3: SQL Server Enterprise Manager

Kế tiếp, bạn tạo cơ sở dữ liệu có tên Booking bằng cách chọn ngăn

Database (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

Hình 4-4: Tạo cơ sở dữ liệu Booking

168

Chương 4. Cài đặt và Triển khai

Hình 4-5: Chọn chức năng Restore Database

Sau khi tạo thành công cơ sở dữ liệu Booking, tên cơ sở dữ liệu này

sẽ xuất hiện trong danh sách cơ sở dữ liệu của SQL Server. Bước kế tiếp

là copy tập tin backup có tên Booking trong thư mục Database trên CD-

Room vào đĩa cứng.

Trở lại trình điều khiển EMC, bạn phải phục hồi cơ sở dữ liệu từ tập

tin backup. Để làm điều này, bạn chọn tên cơ sở dữ liệu Booking và

Right-Click (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.

Hình 4-6: Chuẩn bị Restore cơ sở dữ liệu

170

Chương 4. Cài đặt và Triển khai

Hình 4-7: Ghi đè lên tập tin cơ sở dữ liệu

171

Chương 4. Cài đặt và Triển khai

Hình 4-8: Danh sách đối tượng cơ sở dữ liệu

172

Chương 5. Tổng kết

Chương 5. TỔNG KẾT

5.1 Kết luận:

Xây dựng một ứng dụng thương mại sử dụng một công nghệ lập trình

mới, hiện đại có những thú vị song cũng không ít thách thức. Thứ nhất, mặc

dù thương mại điện tử không còn mới lạ nữa nhưng đối với chúng em thời

gian được tiếp cận nó không phải là nhiều. Thứ hai, đây là lần đầu tiên

chúng em thật sự làm việc với ASP.NET để xây dựng một ứng dụng Web.

Do đó, quá trình thực hiện luận văn gặp khá nhiều khó khăn, mất khá nhiều

thời gian để có thể hiểu nắm được cách làm việc với ASP.NET, có những

lúc tưởng như không thể hoàn thành kịp tiến độ. Ngoài ra, để xây dựng một

trang web thành công thì giao diện cũng là một yếu tố rất quan trọng, nó

phải là sự kết hợp hài hòa giữa sự hấp dẫn, lôi cuốn người dùng với sự đơn

giản, thân thiện, dễ sử dụng. Về mặt này thì nhóm chúng em thật sự không

có khiếu lắm về thẫm mỹ nên giao diện khá đơn giản.

Sau đây là những phần mà nhóm chúng em đã hoàn thành trong luận

văn này (mặc dù còn rất nhiều ý tưởng, dự định chưa thể thực hiện được do

khả năng và thời gian có hạn, hy vọng rằng có thể hoàn thiện hơn trong thời

gian tới):

1. Giao diện được xây dựng khá hoàn chỉnh, tương ứng với từng đối

tượng người dùng có thanh menu riêng, chứa các khả năng có thể thực

hiện.

2. Với đối tượng người dùng là Quản trị thì có thể thực hiện được các

chức năng sau:

173

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.

5.2 Hướng phát triển:

Để tài có thể được mở rộng và phát triển theo các hướng sau:

5.2.1 Xây dựng bổ sung thêm các nhà cung cấp dịch vu khác:

Như trên đã trình bày, hệ thống đã xây dựng còn khá nhiều hạn chế

cả về giao diện lẫn chức năng, trong đó là khả năng liên kết với các nhà

cung cấp dịch vụ còn khá ít. Trong tương lai, có thể mở rộng ra liên kết

với các khách sạn, hãng không không và đồng thời cũng phối hợp với các

175

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

TÀI LIỆU THAM KHẢO

1) .NET Framework SDK Documentation.

2) Phạm Hữu Khang (Chủ biên), Xây dựng và triển khai ứng dụng Thương

Mại Điện Tử - Tập 2: Với công cụ ASP.NET, Visual Basic.NET, SQL

Server, NXB Thống Kê, 2003. (Các chương 1, 19, 20, 22).

3) Đặng Văn Đức, Phân tích thiết kế hướng đối tượng bằng UML, NXB Giáo

Dục, 2002.

177