Chưa thể thanh toán trực tuyến qua card… Trên cơ sỡ những kiến thức thu nhận được trong qúa trình học tập tại trường, được sự chỉ dẫn tận tình của thầy Nguyễn Việt Cường, sau khi khảo
Trang 1LỜI CẢM ƠN
Chúng em luôn luôn ghi nhớ công ơn các thầy cô trường Đại Học Dân Lập Kỹ Thuật Công Nghệ, những người đã dẫn dắt chúng em từ khi mới bước chân vào giảng đường Đại Học những kiến thức, năng lực và đạo đức chuẩn bị hành trang bước vào một cuộc sống tự lập khi ra trường sau bốn năm học Và chúng em xin chân thành cảm ơn các thầy cô giáo Khoa Công Nghệ Thông tin đã giảng dạy và tạo mọi điều kiện cho chúng em trong suốt thời gian học tập tại Trường
Đặc biệt Chúng em xin chân thành cảm ơn thầy Nguyễn Việt Cường – giáo viên hướng dẫn luận văn tốt nghiệp, người đã cho chúng em một nền tãng lý thuyết và đã tận tình, hết lòng hướng dẫn chúng em trong suốt quá trình nghiên cứu để hoàn thành luận văn tốt nghiệp này
Chúng con xin cảm ơn cha mẹ, người đã sinh thành và dưỡng dục chúng con, hỗ trợ mọi điều kiện về vật chất lẫn tinh thần cho chúng con trên con đường học vấn
Chúng tôi xin cảm ơn các anh chị cùng các bạn đã có những nhận xét, phê bình, đóng góp và động viên chúng tôi trong suốt qúa trình thực hiện luận văn
Mặc dù đã cố gắng hoàn thành luận văn với tất cả sự nổ lực của bản thân, nhưng luận văn chắc chắn sẽ không tránh khỏi những thiếu sót nhất định, kính mong sự cảm thông và sự chỉ bảo tận tình của qúy thầy cô và các bạn
Thành Phố Hồ Chí Minh, tháng 05 năm
2003 Sinh viên
Nguyễn Thị Hồng
Trang 2Mục Lục trang 1 Chương 0: MỞ ĐẦU trang 3
I – Lời Mở Đầu trang 3
II – Lý Do Chọn Đề Tài trang 3 III – Các Công Cụ Sử Dụng trang 5
Phần I: CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI
Chương 1: Khảo Sát Hiện Trạng trang 6
1 Yêu Cầu Chức Năng Đối Với Khách Hàng trang 6
2 Yêu Cầu Chức Năng Đối Với Nhà Sách trang 7 2.1 Bán Hàng trang 9 2.2 Liên Lạc Với Khách Hàng trang 10
3 Các Yêu Cầu Phi Chức Năng trang 10
Chương 2 : Đặc Tả Tính Năng Và Yêu Cầu trang 12
I Đặc Tả Tính Năng trang 12
1 Khách Hàng trang 12
2 Người Quản Trị Hệ Thống trang 12
3 Nhân Viên trang 14
4 Nhà Cung Cấp trang 15
5 Nhà Bank trang 15
II Yêu Cầu Của Đề Tài trang 16
1 Về Mặt Ứng Dụng trang 16
2 Về Mặt Kỷ Thuật trang 16
3 Một Số Yêu Cầu Khác trang 16
Chương 3: Giải Pháp Lựa Chọn trang 17
I Khảo Sát Mô Hình trang 17
II Lựa Chọn Công Nghệ trang 18 III Khảo Sát Chi Tiết Về Công Nghệ trang 20
Phần II: THIẾT KẾ CƠ SỞ DỮ LIỆU
Chương 4: Phân Tích Và Thiết Kế Cơ Sở Dữ Liệu Hướng Đối Tượng
I Xây Dựng UseCase_Diagram trang 29
1 Nhận Diện Các Actor Và Các Trường Hợp Sử Dụng trang 29
2 Xây Dựng UseCase_Diagram trang 30
II Xây Dựng Lược Đồ Tuần Tự trang 32
II Xây Dựng Lược Đồ Lớp Và Lược Đồ Hoạt Động trang 48
1 Nhận Diện Các Đối Tượng/Lớp trang 48
2 Xây Dựng ClassDiagram trang 49
Trang 3Phần III:XÂY DỰNG WEBSITE MUA BÁN SÁCH TIN HỌC QUA MẠNG
Chương 5: Hoạt Động Của Chương Trình trang 58
I Sơ Đồ Cấu Trúc Của Chương Trình trang 58
II Hoạt Động Của Chương Trình trang 59
1 Về Phía Khách Hàng, Người Sử Dụng trang 59
2 Về Phía Người Quản Trị trang 66
3 Chức Năng Đối Với Nhân Viên Và Quản Trị trang 71
Chương 6: Bảo Mật Trên Hệ Thống trang 75 Chương 7: Kết Luận trang 80 Phụ Lục I: GIỚI THIỆU VỀ CÔNG NGHỆ J2EE trang 81
I Giới Thiệu trang 81
II Mô Hình Lập Trình Mạng Đa Tầng trang 81 III Những Ứng Dụng Đa Tầng Phân Tán trang 83
IV Kiến Trúc J2EE trang 87
V Sự Đóng Gói trang 88
Phụ Lục II: YÊU CẦU HỆ THỐNG trang 91 TÀI LIỆU THAM KHẢO
Trang 4Chương 0: MỞ ĐẦU
I Lời Mở Đầu:
Ngày nay , công nghệ thông tin đã và đang dần dần chuyển hướng phát
triển của mình sang các dịch vụ Web Và một trong những dịch vụ
được mọi người quan tâm nhất là Thương mại Điện tử Dịch vụ này
giúp tiết kiệm được những thời gian đi mua sắm để có nhiều thời
gian tập trung vào công việc của mình
Cùng với sự phát triển nhanh chóng của Internet và hệ thống mạng toàn
cầu, việc mua bán trực tuyến trên mạng đã và đang trở nên sôi động trên
phạm vi toàn thế giới Ở nước ta vấn đề này vẫn còn là một lĩnh vực khá
mới mẽ Tuy nhiên chúng ta cũng đang trong xu thế hội nhập khu vực và
toàn cầu
Nhờ Thương mại Điện tử , với những thao tác đơn giản trên máy
có nối mạng Internet bạn sẽ có những gì mình cần mà không phải đi
đâu Bạn chỉ cần vào trang dịch vụ Thương mại Điện tử , làm theo
hướng dẫn và click vào những gì bạn cần Các nhà dịch vụ sẽ mang
đến tận nhà cho bạn Việc thanh toán cũng dễ dàng qua hệ thống
ngân hàng hay trực tiếp nếu bạn muốn
Với nhịp độ phát triển như vũ bão của Internet và sự sôi động
của thị trường như hiện nay , bạn không thể không ghé thăm dịch vụ
Thương mại Điện tử dù chỉ là một lần
Để nhằm tìm hiểu mô hình hoạt động cũng như quá trình xây dựng một
ứng dụng có tính chất thương mại trực tuyến, chúng em xin giới thiệu đề tài
“ Thiết Kế Website Mua Bán Sách Qua Mạng Với Servlet/JSP Và J2EE” Để
tiếp cận và góp phần đẩy mạnh sự phổ biến của Thương mại Điện
tử ở Việt Nam
II Lý Do Chọn Đề Tài:
Qua khảo sát tình hình thực tế ở Việt Nam chúng em nhận thấy rằng,
việc mua sắm rất cần thiết đối với mọi người dân Nhưng do đời sống kinh
tế phát triễn, họ phải bận bịu tấp nập với công việc hàng ngày nên không có
nhiều thời gian để đi mua sắm, vì thế chúng em muốn viết một trang web
nhằm đáp ứng nhu cầu thực tế tại Việt Nam, để mọi người có thể mua sắm
ở bất cứ đâu khi họ cần mà không phải tốn nhiều thời gian
Đồng thời qua khảo sát tình hình thực tế tại các nhà sách hiện nay chúng
em nhận thấy rằng việc quản lý còn gặp một số khó khăn hạn chế như:
Trang 5 Khó khăn trong việc thêm các loại sách mới, xóa, sửa thông tin về
sách và thông tin kịp thời đến khách hàng
Việc thay đổi giá cả hàng hóa còn gặp nhiều khó khăn trong việc cập
nhật hàng ngày
Việc quản lý công nợ của khách hàng cũng như của nhà cung cấp
cũng gặp nhiều khó khăn
Mất thời gian trong việc thống kê các thông tin
Không quản lý được khách hàng quen thuộc
Chưa thể thanh toán trực tuyến qua card…
Trên cơ sỡ những kiến thức thu nhận được trong qúa trình học tập tại
trường, được sự chỉ dẫn tận tình của thầy Nguyễn Việt Cường, sau khi khảo
sát tình hình thực tế tại các nhà sách và nhu cầu của người sử dụng, chúng
em đã quyết định chọn và thực hiện đề tài
Thiết Kế Website Mua Bán Sách Qua Mạng Với Setvlet/JSP Và
J2EE
Mục tiêu của đề tài này là nhằm phục vụ cho tất cả các khách hàng có
nhu cầu mua sắm sách qua mạng và phục vụ công tác quản lý hoạt động
kinh doanh của nhà sách, cụ thể là:
Khách Hàng:
- Làm thế nào để khách hàng có thể tìm kiếm nhanh chóng các loại
sách mà mình cần
- Khách hàng có thể xem tóm tắt nội dung từng quyển sách
- Khách hàng có thể thanh toán bằng chuyển khoản hoặc tiền mặt
Nhà Sách:
- Nhà sách có thể đơn giản hoá vấn đề nhập, xuất hàng hóa
- Có thể tính tồn kho cuối mỗi kỳ sao cho thuận tiện và đỡ mất thời
gian
- Công tác thống kê doanh thu, tính tiền lời khi nhà sách có nhu cầu
- Chương trình cũng quản lý công nợ của nhà cung cấp dựa trên các
Trang 6- Chương trình có xử lý việc nhập liệu các hoá đơn xuất, giao cho
khách hàng và hoá đơn nhập hàng, chi cho nhà cung cấp…
III Các Công Cụ Sử Dụng:
Để thực hiện đề tài này, chúng em chọn sử dụng các công cụ sau để cài
đặt:
- Hệ điều hành: Windows 2000 Advanced Server và Windows XP
- Database Server: SQL Server 2000
- Ngôn Ngữ Lập Trình : Java với JSP, Servlet và JavaBean
- Phân tích thiết kế hướng đối tượng UML: Phần mềm Rational Rose
- …
Tuy nhiên trong khuôn khổ thời gian cho phép để làm một luận
văn tốt nghiệp có thể chúng em chưa hoàn tất đầy đủ chức năng , tính
linh hoạt và phổ biến của hệ thống , các giải pháp đưa ra chưa hẵn là tối
ưu và chương trình sẽ không tránh khỏi một số thiếu sót Chúng em rất
mong có sự đóng góp ý kiến của qúi thầy cô và các bạn Sau này nếu điều
kiện cho phép , chúng em sẽ phát triễn đề tài này rộng hơn về quy
mô hoạt động sao cho hoàn chỉnh và phù hợp với thực tế
Trang 7CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG
Sau khi nghiên cứu và khảo sát tình hình hoạt động thực tế tại một số nhà sách, chúng em đã đi đến kết luận là cần phải có một chương trình hỗ trợ những nghiệp vụ sau:
1/ Yêu Cầu Chức Năng Đối Với Khách Hàng:
Khi đã nhập vào đúng yêu cầu, Chương trình sẽ đưa ra kết quả :
Danh sách những quyển sách đáp ứng nhu cầu của khách hàng
Thông tin chính xác về sách cần tìm : Tên sách, nhà xuất bản, tác giả
Bảng thông báo sách này không tồn tại hoặc không có bán tại nhà sách (nếu sách đó không có)
Giá cả của từng quyển sách
Tóm tắt nội dung từng quyển sách
Khách hàng có thể chọn quyển sách nào phù hợp với nhu cầu của mình
Đặt Hàng :
Sau khi chọn những mặt hàng cần mua và bỏ vào giỏ hàng của mình, nếu như khách hàng đồng ý mua những quyển sách mình đã chọn thì họ sẽ phải đăng nhập vào hệ thống với username và password đã cấp cho họ
Nếu là khách hàng mới thì phải đăng ký vào hệ thống bằng cách gõ đầy đủ các thông tin sau:
Họ Tên Khách hàng
Username
Password
Địa chỉ
Trang 8
Sau khi khách hàng đăng nhập thành công thì lúc bấy giờ sẽ cho
khách hàng lựa chọn hai giải pháp thanh toán:
Tiền mặt
Chuyển khoản
Nếu khách hàng chọn thanh toán bằng tiền mặt thì yêu cầu khách
hàng chọn thời gian thanh toán, sau đó mọi thông tin về khách hàng và về
những quyển sách đã chọn sẽ được ghi nhận, ngày đặt hàng chính là ngày
hiện tại, nhà sách sẽ hẹn thời gian giao hàng cho khách hàng
Nếu khách hàng chọn thanh toán bằng chuyển khoản thì nhà sách sẽ
kết nối đến ngân hàng để kiểm tra tài khoản của khách hàng nhập vào có
hợp lệ hay không Nếu như sau 3 lần khách hàng vẫn nhập sai số tài khoản
thì phiên giao dịch sẽ bị hủy và mọi thông tin của khách hàng sẽ không còn
hiệu lực Nếu như mọi thông tin đều hợp lệ thì các thông tin về khách hàng
và về những quyễn sách đã chọn mua sẽ được ghi nhận và ngày đặt hàng sẽ
chính là ngày hiện tại
2 Yêu Cầu Chức Năng Đối Với Nhà Sách:
a) Lưu Trữ
Nhà sách cần lưu trữ những thông tin như sau:
Đối với Sách :
Trang 9 Ngày Cập Nhật
Đối Với Khách Hàng
Mã Khách Hàng
Họ Tên Khách Hàng
Đối Với Đơn Đặt Hàng
Mã Đơn Đặt Hàng
Mã Khách Hàng
Đối Với nhà Cung Cấp
Mã Nhà Cung Cấp
Tên Nhà Cung Cấp
Địa Chỉ
Điện Thoại
Công Nợ Nhà Cung Cấp
Đối Với Phiếu Nhập
Mã Phiếu Nhập
Trang 10 Mã Nhà Cung Cấp
Mã Nhân Viên Nhập
Mã Kho
b) Tra Cứu (tìm kiếm)
Đối với sách
Tra cứu theo Mã Sách
Tra cứu theo Tên Sách
Tra cứu theo Thể Loại
Tra cứu theo Tên Tác Giả
Tra cứu theo Nhà Xuất Bản
Tra cứu theo Ngôn Ngữ
c) Xử Lý
Tính giá trị Đơn Đặt Hàng
Tính số lượng Hàng đã bán ra (theo Đơn Đặt Hàng)
d) Thống Kê, Báo Biểu
Thống kê Đơn Đặt Hàng
Thống kê Khách Hàng
Thống kê Sách
Thống kê Nhà Cung Cấp
Thống kê Phiếu Nhập
Thống kê Phiếu Chi
Thống kê Phiếu Xuất
Thống kê Phiếu Giao
Thống kê Phiếu Thu
2.1 Bán Hàng:
Bán hàng thường theo cách là khách hàng đến Công Ty xem mẫu các mặt hàng, hoặc do nhân viên của Công Ty đến chào hàng (quãng cáo) Khi đã đồng ý một mặt hàng nào đó, khách hàng có thể mua hàng Và nếu số lượng nhiều, nhà sách sẽ mang hàng đến tận nơi cho khách hàng
Trang 11Với phương thức bán hàng như vậy sẽ mất thời gian cho khách hàng và cho nhà sách rất nhiều, vì thế việc đưa ra một trang web để phục vụ cho khách hàng thật cần thiết
2.2 Liên lạc với khách hàng:
Do Phòng Nghiệp Vụ đảm trách để thông báo những mặt hàng mới cho khách hàng, những mặt hàng mà khách hàng quan tâm, những mặt hàng mà khách hàng có nhu cầu (thông qua phiếu thăm dò ý kiến khách hàng)
Khách hàng có thể đăng ký vào phiếu thăm dò ý kiến khách hàng để khi nhà sách có những mặt hàng mới mà họ quan tâm có thể liên lạc với họ thông qua những thông tin cần lưu trữ của khách hàng :
Họ tên Khách hàng
Địa chỉ
Điện thoại
Sách quan tâm
Căân cứ vào những thông tin trên mà nhà sách có những chính sách giá cả phù hợp : giảm giá cho khách hàng thường xuyên mua hàng
3 Các Yêu Cầu Phi Chức Năng
Việc Tra Cứu đòi hỏi phải chính xác
Thông tin về khách hàng, thông tin về Sách, … cần phải được lưu trữ định kỳ đề phòng những khả năng hỏng hóc có thể xảy ra
Chương trình phải ngăn chặn những truy cập trái phép của người dùng để bảo đảm tính an toàn
Chương trình phải có tính năng dễ nâng cấp, bảo trì, sửa chữa khi cần
bổ sung, cập nhật những tính năng mới
Để đáp ứng nhu cầu của khách hàng, nhà sách luôn nghiên cứu, tìm kiếm những thông tin phản hồi của khách hàng cũng như để đầy mạnh việc kinh doanh của nhà sách, nhà sách sẽ nhập thêm những loại sách được nhiều khách hàng quan tâm mua nhất
Sách được nhập về dựa trên những thông tin như :
Nhu cầu của khách hàng
Thị trường
Trang 12Nhà sách còn phải xem xét thị trường xem sách nào bán chạy, sách nào bán chậm, … để đưa ra chiến lược kinh doanh như : ngưng nhập về những cuốn sách bán chậm hoặc ngưng nhập các sách không bán được, nhập về nhưng cuốn sách đang bán chạy trên thị trường …
Trang 13CHƯƠNG 2: ĐẶC TẢ TÍNH NĂNG VÀ YÊU CẦU
I ĐẶC TẢ TÍNH NĂNG:
Dựa vào yêu cầu của bài toán, ta nhận thấy hệ thống nhà sách được xây dựng nhằm phục vụ những khách hàng có nhu cầu mua sách tin học trực tuyến qua mạng Hệ thống phục vụ chủ yếu cho những nhóm người sau :
1.KHÁCH HÀNG :
- Khách hàng là những người vào hệ thống tìm kiếm các sách cần mua và đặt hàng với hệ thống Khách hàng có thể tìm sách mình cần theo : tên sách (có thể là một kí tự , chữ, câu … ), tên thể loại, tên tác giả, tìm theo giá, tìm theo nhà xuất bản, tìm theo ngôn ngữ … Sau khi tìm được sách mình cần, khách mua có thể bỏ sách vào giỏ hàng và đặt mua hàng với hệ thống Hệ thống sẽ nhận đơn đặt hàng của họ và hẹn ngày giao hàng
2 NGƯỜI QUẢN TRỊ HỆ THỐNG (Admin) :
- Người quản trị hệ thống là người làm chủ ứng dụng Họ có quyền kiểm soát mọi họat động của hệ thống Mỗi người quản trị hệ thống sẽ được cấp một username và một password để thực hiện chức năng của mình Họ phải đăng nhập vào hệ thống bằng username và password của mình
- Nếu như quá trình đăng nhập thành công thì người quản trị hệ thống có những chức năng sau :
Chức năng đối với khách hàng, nhân viên và người quản trị:
+ Xem thông tin về khách hàng, về nhân viên, về người quản trị + Thêm người quản trị, thêm nhân viên mới
+ Xóa người quản trị, xóa khách hàng, xóa nhân viên
+ Thay đổi thông tin của người quản trị, thay đổi thông tin của khách hàng, thay đổi thông tin của nhân viên
Chức năng đối với sách:
+ Xem thông tin về sách, thể loại, ngôn ngữ, nhà xuất bản, tác giả
+ Thêm sách mới, thêm thể loại, ngôn ngữ, nhà xuất bản, tác giả + Xóa sách, xóa thể loại, ngôn ngữ, nhà xuất bản, tác giả
Trang 14+ Thay đổi các thông tin về sách, về thể loại, về ngôn ngữ, nhà xuất bản, tác giả
Chức năng đối với đơn đặt hàng:
+ Xem đơn đặt hàng
+ Xóa đơn đặt hàng
Chức năng đối với phiếu xuất:
+ Xem các phiếu xuất
+ Lập phiếu xuất mới
+ Xóa phiếu xuất
+ Sửa thông tin về phiếu xuất
Chức năng đối với phiếu giao:
+ Xem thông tin về phiếu giao
+ Tạo phiếu giao mới
+ Xóa phiếu giao
+ Sửa thông tin về phiếu giao
Chức năng đối với phiếu thu:
+ Xem thông tin về phiếu thu
+ Lập phiếu thu mới
+ Xóa phiếu thu
+ Sửa thông tin về các phiếu thu
Chức năng đối với phiếu nhập:
+ Xem thông tin về phiếu nhập
+ Lập phiếu nhập mới
+ Xóa phiếu nhập
+ Sửa thông tin về các phiếu nhập
Chức năng đối với nhà cung cấp:
Trang 15+ Xem các thông tin về nhà cung cấp
+ Thêm nhà cung cấp mới
+ Xóa nhà cung cấp
+ Sửa thông tin về nhà cung cấp
Chức năng đối với phiếu chi:
+ Xem thông tin về phiếu chi
+ Lập phiếu chi mới
+ Xóa phiếu chi
+ Sửa thông tin về các phiếu chi
3 NHÂN VIÊN :
- Việc thu tiền sách từ khách hàng, chi trả tiền cho nhà cung cấp, giao sách cho khách hàng, nhập sách từ nhà cung cấp, xuất sách từ kho được thực hiện bởi nhân viên
- Sau khi đăng nhập thành công với username và password thì có thể có các chức năng sau:
Chức năng đối với phiếu xuất:
+ Xem các phiếu xuất
+ Lập phiếu xuất mới
+ Xóa phiếu xuất
+ Sửa thông tin về phiếu xuất
Chức năng đối với phiếu giao:
+ Xem thông tin về phiếu giao
+ Tạo phiếu giao mới
+ Xóa phiếu giao
+ Sửa thông tin về phiếu giao
Chức năng đối với phiếu thu:
Trang 16+ Lập phiếu thu mới
+ Xóa phiếu thu
+ Sửa thông tin về các phiếu thu
Chức năng đối với phiếu nhập:
+ Xem thông tin về phiếu nhập
+ Lập phiếu nhập mới
+ Xóa phiếu nhập
+ Sửa thông tin về các phiếu nhập
Chức năng đối với phiếu chi:
+ Xem thông tin về phiếu chi
+ Lập phiếu chi mới
+ Xóa phiếu chi
+ Sửa thông tin về các phiếu chi
4 NHÀ CUNG CẤP :
- Nhà cung cấp có chức năng cung cấp sách cho nhà sách thông qua phiếu nhập
5 NHÀ BANK:
- Ngân hàng (bank) có chức năng kiểm tra xem các thông tin về card của khách hàng sau khi tạo đơn đặt hàng có đúng không Sau khi khách hàng tạo đơn đặt hàng thì các thông tin về card như: MãSốCard, MãLoạiCard,… sẽ được gởi đến ngân hàng để xác nhận Nếu như các thông tin trên không hợp lệ thì ngân hàng sẽ gởi thông báo đến cho khách hàng biết Sau 3 lần, nếu như khách hàng gõ sai thông tin thì phiên giao dịch sẽ bị hủy Còn nếu mọi thông tin đều hợp lệ thì ngân hàng sẽ xác nhận và nhà sách sẽ hẹn ngày giao hàng cho khách hàng
Các thông tin về sách, thể loại, ngôn ngữ, nhà xuất bản, tác giả, đều được lưu trong cơ sở dữ liệu của hệ thống Hệ thống này xây dựng dưới dạng Web để cho người sử dụng có thể tương tác được bất kì một máy nào được nối mạng với máy chủ của nhà sách
Trang 17II YÊU CẦU CỦA ĐỀ TÀI
Đề tài liên quan đến một máy chủ và một hay nhiều máy khách Máy khách gởi yêu cầu đến máy chủ và máy chủ hồi đáp yêu cầu Máy khách bắt đầu bằng cách thiết lập nối kết với máy chủ Máy chủ có thể chấp nhận hay từ chối nối kết Máy chủ phải đang chạy khi máy khách khởi động Máy chủ chờ nối kết từ máy khách Có các câu lệnh cần để máy chủ và máy khách trao dữ liệu với nhau Các máy giao tiếp với nhau là dựa theo giao thức TCP/IP (Trasmission Control Protocol / Internet Protocol)
Yêu cầu của bài toán được đặt ra cụ thể như sau:
1- Về mặt ứng dụng:
Đối với những khách hàng vào hệ thống để mua hàng, hệ thống phải hỗ trợ sao cho khách hàng có thể tìm kiếm, chọn và đặt hàng một cách dễ dàng Khi khách hàng đặt mua sản phẩm, hệ thống sẽ chuyển đơn đặt hàng này đến nhà sách
Đối với nhà sách, nhà sách sẽ dể dàng trong việc quản lý Nhà sách có thể biết được các khách hàng quen thuộc qua những lần mua hàng Có thể quản lý tồn kho và công nợ của khách hàng cũng như của nhà cung cấp Có thể quản lý được các hóa đơn xuất nhập, hóa đơn đặt hàng của khách hàng, hóa đơn giao hàng cho khách hàng…
2- Về mặt kỹ thuật:
Ứng dụng triển khai trên môi trường Web nên bài toán đòi hỏi hệ thống phải có những khả năng về kỹ thuật như sau:
Hỗ trợ nhiều hệ điều hành (cho cả client và server)
Hỗ trợ nhiều trình duyệt (như IE, Netscape )
Hỗ trợ nhiều người dùng
Dung lượng:
Số lượng người truy cập: không giới hạn
Số lượng sách: không giới hạn
3 Một số yêu cầu khác
Ngoài các yêu cầu trên, ứng dụng có thể:
Hỗ trợ tiếng Việt (Unicode)
Dễ dàng cài đặt
Dễ dàng sử dụng
Dễ dàng nâng cấp và mở rộng
Trang 18CHƯƠNG 3: GIẢI PHÁP LỰA CHỌN
I KHẢO SÁT MÔ HÌNH
Ngày nay, những ứng dụng không còn đơn thuần chạy trên một máy đơn lẻ mà thay bằng những ứng dụng đòi hỏi sự tương tác từ nhiều phía người dùng, chia sẽ tài nguyên, triệu gọi từ xa, phân tán dữ liệu Với những đòi hỏi trên, mô hình mạng client/server đã ra đời và tồn tại đến ngày nay
Mô hình mạng client/server là mô hình mà tất cả các thao tác xử lý phức tạp đều được chuyển giao cho máy server xử lý Máy client chỉ đóng vai trò gửi yêu cầu và hiển thị dữ liệu Điển hình mô hình này là các ứng dụng cơ sở dữ liệu Máy client là trình ứng dụng có khả năng kết nối và truy vấn dữ liệu từ một máy server ở xa
Thật vậy, mô hình client/server đã giúp phát triển một phương thức ứng dụng mới đó là việc phân tầng, chia ứng dụng thành nhiều lớp thực hiện những chức năng chuyên biệt Việc phân chia ứng dụng thành nhiều lớp còn giúp cho ứng dụng trở nên dễ dàng thay đổi, nâng cấp và đáng tin cậy Do đó mô hình này rất thích hợp với những ứng dụng có yêu cầu thay đổi thường xuyên như là ứng dụng Web
Với yêu cầu của bài toán, ta sẽ xây dựng ứng dụng theo mô hình phân tầng (cho phép ứng dụng chạy trên nhiều máy server khác nhau).Mô hình
ba tầng được thể hiện cụ thể qua hình sau:
Hình 3.1: Mô Hình 3 Tầng
Hệ thống hoạt động trong mô hình ba tầng và công nghệ để triển khai ứng dụng là công nghệ Java Do vậy, mô hình kiến trúc hệ thống được phân tầng như sau:
Client Tier Middle Tier Data Tier
Trang 19 Client tier: tầng này bao gồm hai tầng con: client và server-side presentation Tầng con client sử dụng trình duyệt Web để truyền yêu cầu của người dùng đến tầng con server-side thông qua giao thức http Tầng này là cầu nối giữa ứng dụng với người dùng, cung cấp những chức năng của ứng dụng cho người dùng và nhận những yêu cầu của người dùng cho ứng dụng để qua đó trả lại kết quả mà người dùng mong đợi Tầng này thiết kế sao cho càng thân thiện với người dùng càng tốt
Middle tier: Tầng này hỗ trợ cho việc trao đổi dữ liệu giữa client tier và data tier Nó cung cấp các chức năng cần thiết để tầng client có thể trao đổi dữ liệu với ngân hàng dữ liệu được quản lý bởi data tier
Data tier: là kho lưu trữ dữ liệu thương mại, chứa những dữ liệu về chức năng của ứng dụng, cung cấp khả năng truy xuất đến cơ sở dữ liệu cho tầng middle nếu cần
Việc phân chia ứng dụng thành nhiều lớp còn giúp cho ứng dụng trở nên dễ dàng thay đổi, cập nhật và đáng tin cậy hơn
II LỰA CHỌN CÔNG NGHỆ
Trong thời đại công nghệ thông tin bùng nổ một cách nhanh chóng như hiện nay, việc chọn một ngôn ngữ lập trình thích hợp là một vấn đề không đơn giản Dựa vào các yêu cầu đặt ra của bài toán, chúng ta cần xác định công nghệ để xây dựng ứng dụng sao cho phù hợp với yêu cầu thực tế của hệ thống
Yêu cầu đặt ra của bài toán là triển khai ứng dụng trên môi trường Web Ngày nay, những công nghệ thường được sử dụng trong việc lập trình ứng dụng Web gồm có:
Mỗi ngôn ngữ có một cấu trúc văn phạm riêng
Qua quá trình khảo sát các công nghệ trên và đồng thời đưa những công nghệ đó vào bài toán cụ thể, chúng ta có thể lựa chọn được công nghệ thích hợp cho việc giải quyết bài toán
Vì ứng dụng hoạt động trên mô hình mạng client/server (cụ thể là mô
Trang 20truy xuất không giới hạn, dễ dàng nâng cấp, mở rộng… và đặc biệt hỗ trợ nhiều hệ điều hành cho client và server (như WinNT, Win2000, Linux, )
Do vậy, chúng ta cần phải xây dựng tầng middle (vì tầng này là tầng cốt lõi của ứng dụng, có thể nói mọi xử lý đều nằm ở tầng này) sao cho hỗ trợ được tốt những yêu cầu vừa nêu
Để xây dựng một ứng dụng có thể triển khai được trên môi trường Web thì một trong nhũng công nghệ nêu trên đều có thể lập trình được (không kể đến những yêu cầu về kỹ thuật) Nhưng đối với bài toán này, việc chọn công nghệ Java để triển khai bài toán là phù hợp nhất
Từ những yêu cầu trên và việc đặt vấn đề, ta nhận thấy hệ thống của chúng ta hoạt động trên môi trường mạng (Internet) theo mô hình Client/Server Ngôn ngữ java là một trong những ngôn ngữ sáng giá và thuận lợi cho ta thực hiện những trang web động (công nghệ JSP và Servlet) Java đủ mạnh để ta có thể thiết kế bất kỳ ứng dụng nào theo mô hình Client/Server
Java là ngôn ngữ đơn giản, hướng đối tượng, thông dịch, mạnh, cấu trúc độc lập, phân tán, có tính bảo mật cao, hiệu qủa và linh động:
Đơn giản: Đặc điểm nổi bật đầu tiên của Java là tính đơn giản, java được đưa ra nhằm mục đích là thay thế C hay C++ , bởi vì C khĩ viết, khĩ biên dịch … Java được xây dựng từ C và loại bỏ những gì phức tạp của C thì chắc chắn là sẽ đơn giản hơn C
Hướng đối tượng: Mọi ứng dụng viết trên Java đều phải được xây
dựng trên các đối tượng và thông qua các đối tượng Các hỗ trợ Java không cho phép các đối tượng có tính năng đa thừa kế, bởi vì tính đa thừa kế sẽ tạo ra những phức tạp Thay vào đó sẽ là các giao tiếp (interface) Mỗi lớp của Java bao gồm các phương thức(method) là chức năng mà đối tượng có thể dùng để trả lời các tác động đến đối tượng và các trường(field)
Thông dịch: Java là ngôn ngữ thông dịch, các ứng dụng Java có thể dể dàng chạy trên các các máy tính với các nền phần cứng khác nhau, chỉ cần đi kèm với các ứng dụng đó là bộ thông dịch có kích thước rất bé và đặc biệt là bộ thư viện động
Phân tán: Java được viết để hỗ trợ các ứng dụng phân tán bằng các lớp mạng Một ứng dụng Java có thể dể dàng được truy xuất từ một máy chủ
ở xa, nó có thể mỡ hoặc truy cập đến các đối tượng thông qua mạng một cách dễ dàng như việc truy cập ngay trên máy tính đơn
Trang 21 Bảo mật: Vấn đề bảo mật là một trong những đặc trưng cơ bản của Java Java được viết cho các ứng dụng chạy trên mạng, phân tán, do đó Java đã được thiết kế sao cho có thể tạo được một hệ thống không virus, không bị phá rối Kỹ thuật xác minh của Java là mã hóa theo khóa công cộng Một thông dịch bytecode sẽ kiểm tra chặt chẽ các mã byte, không cho bất kỳ những hành vi bất hợp pháp nào được thực hiện
Java được thiết kế cho mục đích đa nền, nên mã chương trình java sau khi biên dịch sẽ ra một dạng file nhị phân khác với các file thực thi nhị phân của Windows như exe, com Java biên dịch ra file nhị phân (bytecode) và được triệu gọi thực thi trong máy ảo Java File nhị phân này được mang tên mỡ rộng là class Máy ảo java là một trình thông dịch có khả năng thực thi các mã bytecode tương tự như bộ xử lý của máy tính thực thi các mã nhị phân là các chỉ thị mã máy Máy ảo Java có kích thước rất nhỏ, có thể cài đặt trên các máy con mà không tốn nhiều tài nguyên
III KHẢO SÁT CHI TIẾT VỀ CÔNG NGHỆ
Đáp ứng yêu cầu của bài toán thực hiện nhiều luồng xử lý cùng một lúc (mỗi yêu cầu của khách hàng là một luồng riêng)
Nhờ những phát minh của loài người về internet, mô hình client/server – đáng chú ý nhất là Java Java không chỉ là một ngôn ngữ máy tính mà còn là giải pháp client/server hoàn chỉnh, nơi mà các chương trình được tải về máy khách và được thực thi Trước đây, mọi sự phát triễn của Java đều tập trung vào applets và các thành phần giao diện đồ hoạ người sử dụng (GUI) Các applets là một thành phần quan trọng trong mô hình client/server, nhưng đó chỉ là một phần bức tranh về client/server còn một nữa bức tranh nữa thuộc về servlet/jsp và nhiều thứ khác nữa
1 – Servlet:
- Servlet là một thành phần chủ yếu phục vụ cho mục đích tích hợp và chạy trên các trình chủ Web server Servlet giúp xử lý và tạo ra các trang web động Servlet có thể kết hợp với trang JSP (Java Server Pages) JSP là các trang script chạy phía máy chủ dùng mã Java để sinh ra trang web động, tương tác với cơ sở dữ liệu, tương tự như servlet
- Servlet có thể được xem như một applet phía server (server side) Các servlets được nạp và được thực thi tại trình chủ Web (Web Server) Hình3.2 dưới đây chỉ ra một servlet chấp nhận các yêu cầu từ trình khách (thông qua trình chủ Web), thi hành một số tác vụ và trả về các kết quả
Trang 22- Các bước cơ bản khi sử dụng servlet:
Trình khách tạo ra một yêu cầu (request) lên máy chủ yêu cầu dịch vụ Web dựa trên nghi thức HTTP Tài nguyên mà trình khách yêu cầu có thể là một tập tin (.html hay hình ảnh ) Tài nguyên cũng có thể ở dạng thông tin động do servlet sinh ra
Trình chủ Web nhận các yêu cầu này và chuyển cho servlet Nếu servlet chưa được nạp, trình chủ Web sẽ nạp nó vào trong máy ảo Java và thực thi nó
Servlet sẽ nhận yêu cầu này dựa trên nghi thức HTTP và xử lý
Servlet sẽ trả ngược về cho trình chủ Web một phản hồi (response)
Trình chủ Web sẽ chuyển phản hồ i(response) này rồi chuyển cho trình khách dựa trên nghi thức HTTP
Phần lớn servlets là một sự thay thế tuyệt vời cho các kịch bản CGI (Common Gateway Interface) Các kịch bản CGI thông thường được viết bằng ngôn ngữ Perl hoặc C và thường gắn chặt với một môi trường (platform) chủ cụ thể Vì servlet được viết bằng ngôn ngữ Java, nên các servlet này cũng độc lập với môi trường hệ điều hành
- Servlets rất an toàn Cách duy nhất để gọi một servlet từ bên ngoài là thông qua trình chủ Web Điều này mang lại một mức bảo mật cao, đặc biệt là nếu như trình chủ Web được bảo vệ đằng sau fire wall
- Bằng trình duyệt, máy khách gọi ứng dụng servlet trên máy chủ
Tương tự như ứng dụng CGI, ứng dụng servlet chạy trên máy chủ và gởi kết
quả ngược về trình duyệt ở máy khách Cũng như mọi ứng dụng Java, ứng dụng servlet có thể nhận đối mục (parameter, argument) vào lúc chạy Trình
Web Browser
Web Server
Servlet
Http Request
Http Response
Hình 3.2
Trang 23duyệt trao đối mục cho ứng dụng servlet theo cách thức giống trường hợp
CGI : ghi dấu chấm hỏi (?) sau địa chỉ của ứng dụng servlet và tiếp sau đó là
từng cặp tên-trị (name-value) được phân cách bằng dấu và (&) Do vậy việc dùng ứng dụng servlet chỉ liên quan đến trình chủ Web, không có yêu cầu đặc biệt gì ở trình khách
2 – Java Server Pages (JSP):
- JSP ( Java Server Page ) là cách kết hợp ngôn ngữ HTML truyền thống và ngôn ngữ Java phía máy chủ để sinh ra các trang web động phucï vụ các ứng dụng web uyển chuyển hơn các công nghệ CGI , Servlet
- Cơ chế hoạt động của JSP :
Công nghệ JSP gắn liền với Servlet JSP đưa lệnh Java vào các mã ( hay thẻ ) HTML Các trang JSP chứa các thẻ đặc biệt qui định gần giống như thẻ của ngôn ngữ HTML Khi bạn yêu cầu một trang JSP , trình chủ sẽ đọc trang JSP từ điã cứng, bộ diễn dịch JSP ( JSP Page Compiler ) sẽ diễn dịch mã lệnh Java chứa trong trang JSP thành một servlet Sau đó trình chủ Web Server sẽ triệu gọi servlet trả kết xuất thuần HTML về cho trình khách Với trang JSP bạn hoàn toàn có thể lấy dữ liệu do trình duyệt phía máy khách chuyển lên trình chủ xử lý sau đó gửi trả kết quả về cho trình khách
- Các thẻ lệnh của JSP :
Web Browser
Trình diễn dịch JSP
Trang JSP
HTTP Service
Servlet tạm
Yêu cầu
Kết xuất
Hình 3.3
Trang 24JSP cung cấp các thẻ lệnh giúp tạo trang web Cũng tương tự như thẻ HTML , thẻ lệnh JSP bao gồm thẻ mở và thẻ đóng Thực sự các thẻ JSP được xây dựng theo đặc tả và chuẩn XML ( Extension Markup Language ) nên có hơi khác với thẻ HTML vì chuẩn XML không xem chữ hoa và chữ thường giống nhau Mỗi thẻ có các thuộc tính quy định cách dùng thẻ
a- Thẻ <jsp:scriptlet> hay <% %>
Thẻ này cho phép đặt các đoạn mã lệnh Java ở giữa cặp thẻ tương tự một chương trình java thông thường
b- Thẻ khai báo và thực hiện biểu thức <%! , <%=
Thẻ này dùng để khai báo một biến dùng cho toàn trang jsp Biến khai báo phải đúng theo cú pháp của ngôn ngữ Java Thẻ <%= được dùng để hiển thị một biểu thức
c- Thẻ nhúng mã nguồn <%@ include file %>
Với thẻ này có thể nhúng một trang html vào trang jsp hiện hành Thẻ này tương tự chỉ dẫn #include trong ngôn ngữ C Cú pháp đầy đủ của thẻ này là :
<%@ include file = “URL or FilePath “ %>
d- Thẻ chỉ dẫn biên dịch trang <%@ page %>
Thẻ này chỉ dẫn một số tính chất biên dịch áp dụng cho toàn trang jsp Có thể sử dụng thẻ này để khai báo các thư viện import của java , chỉ định tuỳ chọn trang jsp có cần giữ trên cache bộ nhớ của trình chủ để tăng tốc hay không …
e-Thẻ chuyển hướng <jsp:forward>
Thẻ này giúp chuyển hướng trang Web sang địa chỉ khác Ví dụ , khi xử lý trang nhận dữ liệu đăng nhập (login page ) bạn kiểm tra mật khẩu , nếu hợp lệ bạn chuyển người dùng đến trang tài nguyên cho phép truy cập Nếu không hợp lệ , bạn chuyển người dùng đến trang thông báo lỗi
f-Thẻ sử dụng thành phần Bean <jsp:useBean>
Bạn có thể tự tạo các lớp đối tượng Java và triệu gọi chúng từ bên trong trang jsp Hướng theo công nghệ thành phần (component ) Java gọi những đối tượng có thể gắn vào những ứng dụng là thành phần Bean
g-Thẻ đặt thuộc tính cho Bean <jsp:setProperty>
Trang 25Thẻ này được sử dụng để triệu gọi một phương thức nào đó của Bean h-Thẻ lấy thuộc tính của Bean <jsp:getProperty>
Ngược với thẻ <jsp:setProperty , thẻ <jsp:getProperty> dùng để lấy về nội dung của một thuộc tính
- Các đối tượng mặc định của trang JSP :
Trang diễn dịch JSP cho phép sử dụng một số đối tượng đã khai báo trước Điều này giúp viết mã lệnh trong trang jsp nhanh hơn servlet
Đối tượng out : xuất phát từ lớp PrintWriter Bạn có thể sử dụng
đối tượng này để định dạng kết xuất gửi về máy khách Ví dụ:<% out.println(“Hello!”)%>
Đối tượng request :xuất phát từ lớp HttpServletRequest.Đối tượng
này giúp lấy về các tham số hay dữ liệu do trình khách chuyển lên Ví dụ:
<%String a= request.getParameter(“param1”)%>
Đối tượng response : tương tự đối tượng out, đối tượng response
dùng để đưa kết xuất trả về trình khách Tuy nhiên, đối tượng out được dùng
thường xuyên hơn out hỗ trợ thêm luồng đệm để tăng tốc kết xuất
Đối tượng session : xuất phát từ lớp HttpSesssion Sử dụng đối tượng session để theo dõi kết nối và lưu vết một phiên làm việc giữa trình
khách và trình chủ
- Truy xuất cơ sở dữ liệu trong trang JSP :
Có thể dễ dàng dùng trình JDBC để truy xuất cơ sở dữ liệu của hệ quản trị cơ sở dữ liệu SQL Server Vú dụ: để khai báo cơ sỡ dữ liệu Book thông qua SQL Server
<%
String Driver ="sun.jdbc.odbc.JdbcOdbcDriver";
String Conn ="jdbc:odbc:Book";
String username="sa";
String password="";
try { Class.forName(Driver);
Trang 26{ strErr = e.toString();
}
%>
- Trang JSP triệu gọi đối tượng RMI ,CORBA :
Bởi vì trang JSP chứa hầu như toàn bộ mã Java cho nên bạn có thể triệu gọi đối tượng phân tán như RMI hay CORBA theo cách rất tự nhiên Nghĩa là sau khi thiết lập được đối tượng RMI
Trên đây đã giới thiệu kỹ thuật lập trình web bằng trang jsp Chúng ta có thể dùng các công cụ như : NotePad, Font Page, JpadPro, DreamWaver … để viết trang JSP, trong đề tài này chúng em chọn công cụ Dream Waver để thiết kế trang JSP Với JSP bạn có thể nhúng lệnh Java vào trang Web kết hợp với các thẻ HTML truyền thống JSP thay cho Servlet và dễ sử dụng hơn servlet Tuy nhiên kết hợp giữa trang jsp và công nghệ JavaBean là cách tốt nhất để xây dựng những ứng dụng web mạnh mẽ phát huy tác dụng
ở cả hai phía khách / chủ
3 - So sánh giữa JSP và Servlet:
Đặc tả JSP cung cấp rất nhiều thẻ cho phép người dùng tuỳ biến khi nhúng lệnh Java trong trang JSP Các thẻ này sẽ kết hợp với các lệnh hay thẻ chuẩn HTML để tạo ra kết xuất cuối cùng trả về trình khách
Các chức năng của trang JSP hoàn toàn giống với servlet tuy nhiên bạn không cần phải biên dịch trang JSP bằng tay Trình chủ Web server sẽ thực công việc này hộ bạn
Như vậy, viết trang JSP đơn giản hơn viết servlet Nếu đem so sánh bạn sẽ thấy rằng, khi viết servlet bạn phải tự tạo đối tượng luồng xuất
java.io.PrintWriter out = resp.getWriter ( );
để kết xuất kết quả trả về cho trình khách Trong khi đó nếu viết trang JSP thì không cần phải thực hiện điều này Bộ diễn dịch JSP đã tạo sẵn đối tượng out cho bạn sử dụng
Thật ra thì trang JSP được biên dịch thành servlet phía sau hậu trường , kết xuất của trang JSP thật ra là kết xuất của servlet Tuỳ theo mỗi trình
Trang 27chủ khác nhau ( như JRun, Tom Cat, J2EE ….) mà sẽ có các tập tin diễn dịch jsp ra servlet khác nhau
Theo cơ chế của JSP , bạn không cần phải quan tâm đến những tập tin phụ này Nếu bạn xoá các tập tin này đi, trình chủ sẽ tự động tạo mới lại Theo cơ chế này thì trang JSP có thể phải thực hiện chậm hơn servlet thuần túy, nhưng chỉ là lần đầu khi trang JSP được biên dịch Ở lần triệu gọi kế tiếp từ máy khách, trình chủ không cần dịch lại trang JSP nữa ( trừ khi có thay đổi nội dung trang JSP ) Mã JSP lúc này là mã Java nhị phân (byte-code) được gọi thực thi trực tiếp
Viết trang JSP đơn giản hơn viết servlet và bạn hoàn toàn có thể tận dụng mọi chức năng của servlet bên trong trang JSP Tuy nhiên, servlet thường được xem như những đối tượng thành phần (component ) nhúng vào trình chủ (tương tự đối tượng ActiveX hay COM của Microsoft ) Chính vì vậy servlet thường được dùng cho các chức năng xử lý phức tạp như: giao tiếp với Applet phía trình khách, thực hiện bảo vệ tài nguyên, chứng thực mật khẩu … Trong khi đó trang JSP được dùng cho các thao tác truy xuất hay xử lý đơn giản như trình bày giao diện , định dạng trang HTML , triệu gọi các thành phần JavaBean hay servlet khác Như vậy , kết hợp JSP và Servlet là cách tốt nhất khi bạn chọn phát triển ứng dụng Web bằng Java phía máy chủ
4 – JavaBeans:
JavaBeans là những giao tiếp lập trình được dùng để tạo ra những khối mã xây dựng sẵn và có thể dùng lại được Những thành phần JavaBeans có thể được nhúng vào trong một ứng dụng, liên kết với các thành phần JavaBeans khác hay được dùng để kết nối với các ứng dụng Các ứng dụng Java xây dựng bằng các thành phần JavaBeans có thể đáp ứng cho cả hai phía client và server
5 – Enterprise JavaBeans (EJB):
Mục đích của Enterprise JavaBeans là xây dựng các thành phần có thể dùng để lắp ráp, tạo nên ứng dụng nhanh chóng, giảm thời gian viết mã chương trình và có khả năng chạy trên server
Một điều đáng lưu ý là Enterprise JavaBeans(EJB) khác hẵn với JavaBeans Các đối tượng EJB không dùng thể hiện giao diện Các đối tượng EJB thực hiện chức năng tính toán , kết nối dữ liệu , đưa ra kết quả và giải pháp thiết thực
Trang 28JavaBeans gồm những đối tượng hay mã Java cho phép phân biệt thuộc tính cũng như phương thức của đối tượng khi triệu gọi JavaBeans thường được xem như những thành phần giao diện gắn hay kết nối vào ứng dụng kiểu mô hình lắp ghép
6 – SQL Server:
Khối lượng thông tin trên Intenet là rất lớn và đòi hỏi tính bảo mật cao nên việc chọn SQL Server là phù hợp Việc chọn SQL Server với những lý do sau:
Là một trong những hệ quản trị cơ sở dữ liệu thông dụng nhất
Đáp ứng được nhu cầu thực hiện nhiều truy vấn cùng một lúc
Cho phép thực hiện mô hình cơ sở dữ liệu phân tán Tính bảo mật cao
Mô tả đầy đủ được một cơ sở dữ liệu quan hệ
Máy chủ SQL Server cho phép hàng ngàn người dùng kết nối và làm việc với nhiều cơ sở dữ liệu khác nhau trên cùng một máy chủ tại cùng một thời điểm Máy chủ SQL Server cung cấp khả năng kết nối, truy cập cho người dùng đến mọi cơ sở dữ liệu trên máy, tùy thuộc vào mức độ bảo mật cho phép của người đang kết nối
Bảo mật là một trong những điểm mạnh giúp cho SQL Server được sử dụng trong thương mại điện tử Chúng ta có thể bảo mật bằng một trong hai chế độ sau trong SQL Server:
Bảo mật dựa vào chế độ bảo mật của Windows NT
Bảo mật bằng cả hai chế độ: bảo mật của Windows NT và bảo mật của SQL Server
a-Bảo Mật Theo Chế Độ Windows NT:
Khi người dùng kết nối vào thông qua chế độ bảo mật của Windows
NT, SQL Server kiểm tra tên và mật khẩu đăng nhập vào mạng Windows
NT Sau đó SQL sẽ cho phép hoặc từ chối phục vụ tùy thuộc vào tên và mật khẩu gỏ vào có đúng hay không, không cần phải kiểm tra lại một lần nữa
Vì người dùng và nhóm người dùng được quản lý bởi Windows NT, nên SQL server chỉ cần kiểm tra các thông tin khi người dùng kết nối Nếu quyền truy cập của người dùng thay đổi, sự thay đổi này sẽ có hiệu lực ngay lần kết nối kế tiếp
b-Bảo Mật Theo Chế Độ SQL Server:
Trang 29Chế độ bảo mật của SQL Server vượt trội hơn hẵn các chế độ cơ sở dữ liệu khác SQL Server kiểm soát và cấp quyền để người dùng có thể tra cứu, thêm, xóa, sửa cơ sở dữ liệu Điều này hết sức thuận lợi trong việc phát triễn các ứng dụng cần có chế độ an toàn và bảo mật cao, chẳng hạn như
thương mại điện tử, bán hàng trên mạng
Trang 30CHƯƠNG 4: PHÂN TÍCH VÀ THIẾT KẾ CƠ SỠ DỮ
LIỆU HƯỚNG ĐỐI TƯỢNG
I/ XÂY DỰNG USE_CASE DIAGRAM :
Quá trình phân tích và thiết kế dữ liệu hường đối tượng là quá trình phân
tích các yêu cầu của khách hàng và các yêu cầu về quản lý của nhà sách để
xây dựng cơ sở dữ liệu cho hệ thống Kết quả của quá trình này là mô hình
cơ sở dữ liệu hoàn chỉnh được dùng cho hệ thống
Hệ thống được thiết kế để phục vụ cho các đối tượng sau đây:
Nhà Sách: Thông qua hệ thống, sẽ giới thiệu loại sách đến khách hàng
Khách Hàng: Là những người có nhu cầu mua sách Họ sẽ tìm
kiếm các loại sách cần thiết từ hệ thống và đặt mua
1/ Nhận diện các Actor và các trường hợp sử dụng :
- Qua cách đặt tả hệ thống nhà sách ở trên, ta xác định được các actor
sau tác động đến hệ thống bao gồm : khách hàng, người quản trị hệ thống,
Người quản trị hệ thống quản lý việc :
Quản lý sách (QL Sach)
Người quản trị có thể xem thông tin về sách
(ViewSach),thêm sách mới (ThemSach), chỉnh sửa các thông tin về
sách (SuaSach), loại bỏ sách (XoaSach)
Có thể thêm thể lọai (ThemTL), xóa thể loại (XoaTL),
chỉnh sửa thể loại (SuaTL)
Thêm tác giả mới (ThemTG), xóa tác giả (XoaTG), chỉnh
sữa thông tin về tác giả (SuaTG)
Thêm ngôn ngữ (ThemNN), xóa ngôn ngữ (XoaNN), chỉnh
sửa ngôn ngữ (SuaNN)
Trang 31 Thêm nhà xuất bản (ThemNXB), xóa nhà xuất bản
(XoaNXB), chỉnh sửa các thông tin về nhà xuất bản (SuaNXB)
Quản lý khách hàng (QLKhachHang) : xem thông tin khách hàng
(ViewKH), chỉnh sửa các thông tin về khách hàng (SuaKH), xóa
khách hàng (XoaKH)
Quản lý đơn đặt hàng (QLDonDatHang): có thể xem đơn đặt
hàng (ViewDDH) để biết có những khách hàng nào đặt hàng trong
ngày và đặt sách nào, số lượng bao nhiêu, xóa đơn đặt hàng
(XoaDDH), chỉnh sửa thông tin về đơn đặt hàng (SuaDDH)
Người quản trị hệ thống và nhân viên quản lý việc :
Quản lý phiếu xuất hàng (QLPhieuXuat) : người Admin có thể
xem phiếu xuất (ViewPX) để biết đã xuất những sách nào, và xuất từ
kho nào, nhân viên nào xuất, xóa phiếu xuất (XoaPX), thêm phiếu
xuất mới (ThemPX), chỉnh sửa thông tin về phiấu xuất (SuaPX)
Quản lý phiếu giao hàng (QLPhieuGiao) : có thể xem phiếu giao
(ViewPG) để biết đã giao những mặt hàng nào và giao cho khách
hàng nào, xóa phiếu giao (XoaPG), thêm phiếu giao mới (ThemPG),
chỉnh sửa thông tin về phiếu giao (SuaPG)
Quản lý phiếu thu (QLPhieuThu) : người quản lý có thể xem các
phiếu thu (ViewPT) đã thu của khách hàng, xóa phiếu thu (XoaPT),
thêm phiếu thu (ThemPT), chỉnh sửa thông tin về phiếu thu (SuaPT)
Quản lý phiếu nhập (QLPhieuNhap) : người quản lý có thể xem
phiếu nhập (ViewPN) để biết đã nhập những sách gì, xóa phiếu nhập
(XoaPN), thêm phiếu nhập (ThemPN), chỉnh sửa thông tin về phiếu
nhập (SuaPN)
Quản lý phiếu chi (QLPhieuChi) : người quản lý có thể xem các
phiếu chi (ViewPC) đã chi cho nhà cung cấp nào, xóa phiếu chi
(XoaPC), thêm phiếu chi (ThemPC), chỉnh sửa thông tin về phiếu chi
(SuaPC)
2/ Xây dựng Use_Case Diagram :
- Dựa vào chiều tác động giữa các actor và Use_Case để thiết lập các
mối liên kết (association)
- Các trường hợp tổng kết hóa và cụ thể hóa được thể hiện bằng mối
Trang 32rộng thành quan hệ <<include>> và <<extend>> bằng cách sử dụng
stereotype
- Trong phần nhận diện các trường hợp sử dụng, ta đã xác định một
số quan hệ giữa actor và trường hợp sử dụng Tuy nhiên ta cần xét vấn đề
sau :
+ Việc khách hàng muốn bỏ sách vào giỏ hàng thì bắt buộc phải tìm
kiếm sách, cho nên mối quan hệ giữ BoSachVaoGio va TimKiem la
association <<include>> Mối quan hệ giữa tạo đơn đặt hàng (TaoDDH) và
BoSachVaoGio là association với stereotype là <<extend>>, bởi vì ở đây
không bắt buộc khách hàng phải mua sách
+ Admin muốn vào quản lý thì phải login vào hệ thống cho nên ta có
quan hệ giữa Admin và LoginAdmin có stereotype là <<include>> Và khi
đã vào hệ thống thì có thể quản lý sách, các hoá đơn xuất nhập cho nên
ta có stereostyle là <<extends>> Tương tự cho NhânViên cũng có thể
quản lý các hoá đơn xuất nhập sau khi login vào đúng quyền
Trang 33Hình 4.1: Lược Đồ UseCase II/ XÂY DỰNG LƯỢC ĐỒ TUẦN TỰ (Sequence Diagram):
- Lược đồ tuần tự giúp cụ thể hóa các Use_Case Nó là một sự
chuyển thể các sự kiện nối tiếp nhau trong các Use_Case trở thành một
chuổi các thông điệp gởi cho các đối tượng Điều quan trọng là phải nhận
diện ra những đối tượng nào liên quan đến một Use_Case cụ thể Mỗi
Use_Case có thể có nhiều lược đồ tuần tự dạng cụ thể Mỗi cái tương tác
với một kịch bản nào đó và luôn luôn bắt đầu từ một kích thích từ phía actor
- Để xây dựng lược đồ tuần tự chúng ta hãy xem xét hoàn cảnh cụ thể
của Use_Case như sau :
+ Xét Use_Case ĐăngKý: Khách hàng đăng ký là thành viên mới
của nhà sách bằng cách nhập username,password,… Hệ thống sẽ kiểm tra
xem username này đã tồn tại hay chưa Nếu chưa thì hệ thống sẽ ghi nhận
lại thông tin của khách hàng và tự động gán quyền cho username này là
quyền khách hàng Còn nếu khách hàng nhập vào một account đã tồn tại
trong hệ thống rồi thì sẽ hiện thông báo lỗi Lúc này khách hàng có thể trở
về đăng ký lại hoặc hủy bỏ đăng ký, lúc bấy giờ use case DăngKý kết thúc
: KhachHang DangKy :
Interface
: DieuKhien : Database XacNhan :
Interface 1: Nhap(Username,Password,HoTen,DiaChi, )
2: GoiThongTin()
3: ketqua=XacNhan(Username)
Username Này Đã Tồn Tại
4: ThongBaoLoi()
if(ketqua==true)
5: CapNhat() 6: ThanhCong()
Username Chưa Có Trong Database else if(ketqua==false)
Trang 34+ Xét Use_Case DangNhap : khách hàng đăng nhập vào hệ thống
bằng cách gõ username và password Hệ thống sẽ kiểm tra xem username
và password có hợp lệ hay không, nếu như hợp lệ thì sẽ cho phép khách
hàng vào hệ thống để đặt mua hàng Còn nếu khách hàng nhập sai
usernamehay password thì hệ thống sẽ báo lỗi, lúc này khách hàng có thể
trỡ về trang DangNhap để đăng nhập lại, hoặc không đăng nhập nữa và use
case kết thúc
Interface
Interface 1: Nhap(Username,Password)
Hình 4.4: Khách hàng đăng nhập
+ Xét Use_Case TimKiem : khách hàng chọn chức năng tìm kiếm,
và nhập vào tên sách và chọn thể loại Thông qua database, chương trình
sẽ tìm kiếm xem sách này có hay không Sau khi tìm kiếm sách xong,
chương trình sẽ gởi thông báo cho khách hàng để báo có tìm thấy sách hay
không Nếu kiểm tra thấy có sách thì sẽ hiển thị những quyển sách tìm thấy
và các thông tin về chúng như : tác giả, nhà xuất bản, ngôn ngữ, giá sách …
Trang 35: KhachHang TimKiem :
Interface
: DieuKhien : Database XacNhan :
Interface KetQuaTim :
Interface 1: TimSach(TenSach,TacGia, )
5: ThongBaoKhongThay()
Nếu Không Tìm Thấy Sách else if(ketqua==false)
Hình 4.5: khách hàng tìm kiếm sách
+ Xét Use_Case BoSachVaoGio, use case này bắt đầu khi một khách hàng
chọn sách muốn mua Vì mỗi một khách hàng khi vào mua sắm sẽ có một
giỏ hàng, khách hàng sau khi tìm kiếm sách xong, nếu tìm thấy sách mình
cần thì họ sẽ có thể bỏ sách vào giỏ hàng của mình Hệ thống sẽ thêm sách
này vào giỏ hàng của khách hàng
Trang 36+ Xét Use_Case TạoĐĐH, use case này cho phép khách hàng đặt
mua hàng, lúc bấy giờ nếu khách hàng chưa đăng nhập vào hệ thống thì sẽ
xuất hiện form Login (đã xét ở trên) để khách hàng gõ username và
password vào, ở đâu ta xét đến trường hợp khách hàng chọn hình thức thanh
toán là chuyển khoản, thông qua database của bank, hệ thống sẽ xác nhận
thông tin khách hàng nhập vào có đúng hay không, sau khi xác nhận xong
nếu như thông tin hợp lệ thì những mặt hàng khách hàng đã chọn sẽ được
cập nhật vào hoá đơn và thông báo ngày giao hàng cho khách Còn nếu
thông tin không hợp lệ thì sẽ thông báo lỗi, sau 3 lần thì sẽ hủy phiên giao
dịch
Hình 4.7: khách hàng tạo đơn đặt hàng + Xét Use_Case LoginAdmin : người quản trị đăng nhập vào hệ
thống bằng cách gõ username và password Hệ thống sẽ kiểm tra xem
username và password có hợp lệ hay không và sau đó kiểm tra xem
username này có quyền quản trị hay không, nếu như có quyền thì sẽ cho
phép quản trị vào hệ thống để quản trị Còn nếu quản trị nhập sai username
hay password hoặc là username không có quyền quản trị thì hệ thống sẽ báo
lỗi, lúc này quản trị có thể trỡ về trang LoginAdmin để đăng nhập lại, hoặc
không đăng nhập nữa và use case kết thúc
Trang 37
Hình 4.8: Admin login vào hệ thống
+ Xét Use_Case QLSach bao gồm: Xem thông tin về từng quyển sách,
thêm sách mới, xóa sách, sữa thông tin sách:
* XemSach: Admin sau bươcù kiểm tra username và password từ
LoginForm sẽ chọn chức năng quản lý sách Cửa sổ ViewSách được mỡ ra
Tại đây thông qua database mọi thông tin về chi tiết từng quyển sách sẽ
được hiển thị
Hình 4.9: quản trị xem thông tin về các sách hiện có
Trang 38* ThemSach: Sau khi cửa sổ ViewSach được mỡ ra, người quản trị
chọn chức năng “thêm mới” và nhập vào mã số sách mới và các thông tin
sách Thông qua database chương trình sẽ kiểm tra xem mã số sách đã có
chưa Nếu kiểm tra đúng chưa có mã này thì chương trình sẽ tạo thêm sách
mới trong database
Hình 4.10: người quản trị thêm sách mới
* SuaSach: trên cửa sổ ViewSach người Admin sẽ chọn Sách cần
chỉnh sửa và sau đó chọn tác vụ chỉnh sửa Form chỉnh sửa sẽ hiện ra và
người admin có thể chỉnh sữa các thông tin cần thiết sau đó lưu thông tin
vừa chỉnh sửa Thông qua database hệ thống sẽ cập nhật những thông tin
này
Trang 39
Hình 4.11: người quản trị sửa thông tin sách
* XóaSách: trên cửa sổ ViewSach người quản trị chọn sách cần xóa và
nhấn nút xóa sách Thông qua database cuốn sách người quản trị chọn sẽ
được xóa
Hình 4.12
+ Xét Use_Case QLKhachHang bao gồm: xem các thông tin về từng
khách hàng, xóa khách hàng
* XemKH: sau khi đăng nhập bằng username và password từ Login
Trang 40ViewKhachHang sẽ hiện ra, tại đây các thông tin về từng khách hàng sẽ
được hiển thị Cơ sỡ dữ liệu được lấy ra từ database
Hình 4.13: người quản trị xem thông tin khách hàng
* XóaKH: sau khi cửa sổ ViewKhachHang hiện ra, tại đây người
admin sẽ chọn khách hàng nào cần xóa và chọn chức năng xóa để xóa
khách hàng này
Hình 4.14: người quản trị xóa khách hàng
+ Xét Use_Case QLQuảnTrị bao gồm: xem thông tin về quản trị, thêm
quản trị, xoá quản trị, sửa thông tin về quản trị
* XemQT: Người quản trị sau khi đăng nhập bằng username và
password từ LoginForm sẽ chọn tác vụ quản lý quản trị Cửa sổ
ViewQuanTri sẽ hiện ra Tại đây Admin có thể xem thông tin về những
người quản trị Thông tin này được lấy ra từ database, những người quản trị
này sẽ có “quyền đăng nhập” là 1