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