Chúng tôi thực hiện đề tài này để phát triển một trang web giúp hoàn thiệnhơn hệ thống hoạt động của công ty trong việc cung cấp dịch vụ đến khách hàng.Trang web của chúng tôi có thể quả
Trang 1Tôi xin chân thành cảm ơn các thầy cô trong khoa Công nghệ thông tin, trường Đại học Bách khoa Đà Nẵng đã truyền đạt những kiến thức quý báu cho tôi trong những năm học vừa qua và nhất là đã tạo điều kiện thuận lợi cho tôi học tập, thực hiện đề tài tốt nghiệp này.
Đặc biệt, tôi xin chân thành cảm ơn cô Trần Hồ Thủy Tiên đã trực
tiếp, tận tình giúp đỡ và hướng dẫn tôi trong suốt thời gian thực hiện đề tài.
Để có được kết quả như ngày hôm nay, tôi rất biết ơn gia đình Ông
Bà, Cha Mẹ và những người thân trong gia đình đã động viên, khích lệ, tạo mọi điều kiện thuận lợi nhất về vật chất lẫn tinh thần trong suốt quá trình học tập cũng như quá trình thực hiện đề tài tốt nghiệp này.
Mặc dù đã cố gắng hoàn thành đồ án trong phạm vi và khả năng cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót Tôi rất mong nhận được sự thông cảm, góp ý và tận tình chỉ bảo của quý Thầy Cô và các bạn.
Một lần nữa xin chân thành cám ơn!
Đà Nẵng, ngày 15 tháng 05 năm 2015
Sinh viên thực hiện Huỳnh Duy Khánh
Trang 2Tôi xin cam đoan :
1 Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của cô Th.S Trần Hồ Thủy Tiên
2 Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố.
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm.
Sinh viên
Huỳnh Duy Khánh
Trang 3K H O A C Ô N G N G H Ệ T H Ô N G T I N
54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP Đà Nẵng Tél 84.511.736 949, Fax 84.511.842.771 - Website: http://itf.ud.edu.vn/ , E-mail: cntt@edu.ud.vn
BẢN NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên:Huỳnh Duy Khánh.Lớp: 10T2.
Cán bộ hướng dẫn:ThS Trần Hồ Thuỷ Tiên.
Chương 1 Cơ sở lý thuyết
Chương 2 Phân tích thiết kế hệ thống
Chương 3 Triển khai và đánh giá kết quả
Kết luận
Nhận xét :
Trong thời gian làm đồ án tốt nghiệp tác giả đã có nhiều cố gắng để tìm hiểu
và giải quyết được bài toán thực tế, thu thập các tài liệu tham khảo, thực hiệnđúng tiến độ
Đề tài cơ bản đã hoàn thành được các yêu cầu đặt ra
Trang 4
MỤC LỤC MỞ ĐẦU 1
I BỐI CẢNH ĐỀ TÀI 1
II MỤC TIÊU ĐỀ TÀI 1
III CHỨC NĂNG 1
Trang 5IV.2 KẾT QUẢ DỰ KIẾN 2
V CÔNG NGHỆ SỬ DỤNG 2
CHƯƠNG I: CƠ SỞ LÝ THUYẾT 3
I TỔNG QUAN VỀ J2EE 3
I.1 KHÁI NIỆM 3
I.2 MÔ HÌNH ĐA TẦNG 3
I.3 KIẾN TRÚC TRÌNH CHỨA CỦA J2EE 4
I.4 CÁC API CỦA J2EE 5
I.5 TỔNG QUAN VỀ EJB 6
I.6 TỔNG QUAN VỀ JSF 11
CHƯƠNG II: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 19
I TÁC NHÂN 19
II PHÂN TÍCH ĐẶC TẢ YÊU CẦU 20
II.1 ĐĂNG KÍ TÀI KHOẢN 20
II.2 KÍCH HOẠT TÀI KHOẢN 20
II.3 ĐĂNG NHẬP 20
II.4 HIỂN THỊ THÔNG TIN CÁC TOUR 20
II.5 XEM THÔNG TIN XE 21
II.6 HIỂN THỊ THÔNG TIN KHÁCH SẠN 21
II.7 XEM THÔNG TIN CHUYẾN BAY 21
II.8 ĐẶT TOUR DU LỊCH 21
II.9 THUÊ XE 22
II.10 KHÁCH HÀNG QUẢN LÝ TÀI KHOẢN 22
II.11 THAY ĐỔI MẬT KHẨU 22
II.12 HỦY ĐẶT TOUR 23
II.13 HỦY THUÊ XE 23
II.14 QUẢN LÝ TOUR DU LỊCH, QUẢN LÝ LỊCH TRÌNH TOUR 23
II.15 QUẢN LÝ XE 23
II.16 XỬ LÝ ĐẶT TOUR 24
II.17 XỬ LÝ THUÊ XE 24
II.18 QUẢN LÝ THÔNG TIN CHUYẾN BAY 24
II.19 QUẢN LÝ THÔNG TIN KHÁCH SẠN 24
II.20 QUẢN LÝ LOẠI KHÁCH SẠN 25
II.21 QUẢN LÝ TÀI KHOẢN NHÂN VIÊN 25
III BIỂU ĐỒ USE-CASE 26
III.1 BIỂU ĐỒ USE-CASE KHÁCH HÀNG 26
III.2 BIỂU ĐỒ USE-CASE QUẢN LÝ 27
IV BIỂU ĐỒ TUẦN TỰ 28
IV.1 KHÁCH HÀNG ĐĂNG KÍ TÀI KHOẢN, KÍCH HOẠT TÀI KHOẢN 28
IV.2 ĐĂNG NHẬP 28
Trang 6IV.6 THÔNG TIN CHUYẾN BAY 30
IV.7 ĐẶT TOUR 31
IV.8 THUÊ XE 31
IV.9 KHÁCH HÀNG QUẢN LÝ TÀI KHOẢN 32
IV.10 THAY ĐỔI MẬT KHẨU 33
IV.11 HỦY TOUR 34
IV.12 HỦY THUÊ XE 34
IV.13 QUẢN LÝ TOUR 35
IV.14 QUẢN LÝ LỊCH TRÌNH TOUR 36
IV.15 QUẢN LÝ XE 37
IV.16 QUẢN LÝ THÔNG TIN CHUYẾN BAY 38
IV.17 QUẢN LÝ THÔNG TIN KHÁCH SẠN 39
IV.18 QUẢN LÝ LOẠI KHÁCH SẠN 40
IV.19 XỬ LÝ ĐẶT TOUR 41
IV.20 XỬ LÝ THUÊ XE: 41
IV.21 QUẢN LÝ TÀI KHOẢN NHÂN VIÊN 42
V BIỂU ĐỒ LỚP 43
VI BIỂU ĐỒ HOẠT ĐỘNG 43
VI.1 ĐĂNG NHẬP 43
VI.2 THAY ĐỔI MẬT KHẨU 45
VI.3 QUẢN LÝ TOUR 46
VI.4 ĐẶT TOUR 47
VI.5 HỦY ĐẶT TOUR 48
VII THIẾT KẾ DATA BASE 49
VII.1 BẢNG 49
VII.2 LƯỢC ĐỒ QUAN HỆ 52
CHƯƠNG III: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 53
I TRANG CHỦ 53
II ĐĂNG KÍ 54
III ĐĂNG NHẬP 55
IV ĐẶT TOUR 57
V THUÊ XE 59
VI XEM THÔNG TIN KHÁCH SẠN 60
VII TÌM KIẾM THÔNG TIN CHUYẾN BAY 60
VIII HỦY ĐẶT TOUR 61
Trang 7X TRANG XỬ LÝ ĐẶT TOUR 62
XI TRANG XỬ LÝ THUÊ XE 63
XII TRANG QUẢN LÝ TOUR 64
XIII TRANG QUẢN LÝ XE 64
XIV TRANG QUẢN LÝ KHÁCH SẠN 65
XV TRANG QUẢN LÝ LOẠI KHÁCH SẠN 65
XVI TRANG QUẢN LÝ THÔNG TIN CHUYẾN BAY 66
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 67
I TÓM TẮT 67
I.1 TÊN ĐỀ TÀI 67
I.2 MÔ TẢ 67
I.3 ĐÓNG GÓP CỦA TÁC GIẢ 67
I.4 CÁC CHỨC NĂNG CHÍNH VÀ KẾT QUẢ THỰC HIỆN 67
II KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 68
TÀI LIỆU THAM KHẢO 69
DANH MỤC HÌNH ẢNH Hình 1 Mô hình đa tầng 4
Hình 2 J2EE và các trình chứa 4
Hình 3 Mô hình EJB 7
Hình 4 Các loại EJB 8
Hình 5 Chu trình hoạt động của Stateless bean 9
Hình 6 Chu trình hoạt động của Stateful bean 10
Hình 7 Mô hình MVC1 12
Hình 8 Mô hình MVC model 2 13
Hình 9 Vòng đời của việc xử lý request 17
Hình 10 Use case người dùng 26
Hình 11 Use case quản trị viên 27
Hình 12 Biểu đồ lớp 43
Hình 13 Sơ đồ quan hệ 52
Hình 14 Trang chủ 53
Hình 15 Đăng kí 54
Hình 16 Thông báo thành công 54
Hình 17 Thông báo đã kích hoạt tài khoản 55
Hình 18 Trang đăng nhập 55
Hình 19 Trang thông tin khách hàng 56
Hình 20 Chi tiết tour 57
Trang 8Hình 24 Chi tiết xe 59
Hình 25 Thông tin thuê xe 59
Hình 26 Xác nhận thanh toán 59
Hình 27 Thông báo thuê xe thành công 60
Hình 28 Thông tin khách sạn 60
Hình 29.Tìm kiếm thông tin chuyến bay 60
Hình 30 Thông tin chuyến bay 61
Hình 31.Trang quản lý tài khoản 61
Hình 32.Trang quản lý tour đã đặt 61
Hình 33 Xác nhận hủy tour 61
Hình 34 Giao diện trang quản lý 62
Hình 35 Trang xử lý đặt tour 62
Hình 36 Trang xử lý thuê xe 63
Hình 37 Trang quản lý tour 64
Hình 38 Trang quản lý xe 64
Hình 39 Trang quản lý thông tin khách sạn 65
Hình 40 Trang quản lý loại khách sạn 65
Hình 41 Trang quản lý thông tin chuyến bay 66
DANH MỤC BẢNG Bảng 1 Manager 49
Bảng 2 Car 49
Bảng 3 City 49
Bảng 4 Customer 50
Bảng 5 Flight 50
Bảng 6 Hotel 50
Bảng 7 Kind hotel 50
Bảng 8 Order car 51
Bảng 9 Order tour 51
Bảng 10 Schedule tour 51
Bảng 11 Tour 51
Trang 9MỞ ĐẦU
I.BỐI CẢNH ĐỀ TÀI
Ngày nay, khi cuộc sống vật chất đã được đảm bảo thì con người sẽ tìm tớicác dịch vụ nhằm nâng cao đời sống tinh thần và vật chất Sự phát triển của cácngành công nghiệp dịch vụ không khói được đẩy mạnh, trong đó du lịch dịch vụ làmột ngành mang lại nhiều tiềm năng trong công cuộc phát triển bền vững của mộtquốc gia
Đồng thời, sự phát triển của khoa học công nghệ ngày càng nhanh chóng Hệthống thống mạng internet phát triển khắp mọi nơi Vì vậy đối với mọi người việctìm kiếm một tour du lịch qua mạng ngày càng trở nên dễ dàng hơn Nắm bắt nhucầuđó ngày càng có nhiều công ty du lịch giới thiệu các tour du lịch của mình thôngqua hệ thốngwebsite theo mô hình hệ phân tán Tôi thực hiện đề tài nàynhằmđápứng nhu cầuđó
II.MỤC TIÊU ĐỀ TÀI
WorldArround là một công ty trẻ và năng động Công ty cam kết cung cấpcác dịch vụ du lịch tốt nhất cho khách hàng Chúng tôi đặt trọng tâm hoạt động vềdịch vụ cá nhân, chú ý tỉ mỉ đến từng chi tiết trong việc chăm sóc khách hàng Tuynhiên, trong những năm qua, đã có vài tình huống khó khăn đã không thể giải quyết
vì vậy mong muốn cải thiện trong tương lai
Chúng tôi thực hiện đề tài này để phát triển một trang web giúp hoàn thiệnhơn hệ thống hoạt động của công ty trong việc cung cấp dịch vụ đến khách hàng.Trang web của chúng tôi có thể quản lý thông tin về tour du lịch, khách hàng và tất
cả các thông tin liên quan Quan trọng nhất, chúng tôi sẽ thực hiện thanh toán trựctuyến, mỗi công việc sẽ được thực hiện trên máy tính Việc tra cứu, quản lý, kiểmtra, sẽ được thực hiện rất nhanh chóng, chính xác và tiết kiệm
III.CHỨC NĂNG
- Chương trình sẽ tập trung vào hai dịch vụ chính đem lại lợi nhuận cho công
ty là dịch vụ tour và dịch vụ cho thuê xe Bên cạnh đó hệ thống còn cung cấpthêm một số thông tin về du lịch như khách sạn và chuyến bay nhằm hỗ trợ tốt hơn cho khách hàng Vì các lý do ở trên chương trình sẽ gồm một số chứcnăng chính sau:
+ Truy vấn cơ sở dữ liệu và hiển thị các gói tour theo yêu cầu khách hàng.+ Khách hàng có thể đặt tour và thanh toán qua mạng
+ Truy vấn cơ sở dữ liệu và hiển thị xe phù hợp với nhu cầu của khách hàng
+ Khách hàng có thể thuê xe và thanh toán qua mạng
+ Tìm và hiển thị thông tin chi tiết về các khách sạn trong một thành phố.+ Tìm và hiển thị thông tin về các chuyến bay đến một thành phố
Trang 10+ Hủy đặt tour và thuê xe khách hàng được hoàn trả lại tiền theo đúng mức cam kết sau:
Trước 1 ngày - 75%
Trước 2 ngày - 80%
Trước 3 ngày - 85%
Trước 4 ngày - 90%
Trước 5 ngày hoặc hơn - 95%
+Xây dựng chức năng quản lý cho Admin và nhân viên
IV.TRIỂN KHAI ĐỀ TÀI
IV.1.CÁC BƯỚC THỰC HIỆN
- Phân tích các yêu cầu sử dụng của đề tài
- Viết báo cáo tổng kết đề tài và đề ra hướng phát triển
IV.2. KẾT QUẢ DỰ KIẾN
Với mục đích đề ra thì kết quả cần đạt được trong đề tài luận văn tốt nghiệp này:
- Tìm hiểu nền tảng công nghệ J2EE
- Nghiên cứu framework JSF
- Xây dựng hoàn thiện chương trình với 2 phần chínhđó làphần khách hàng và quản lý của quản trị viên
Trang 11CHƯƠNG I: CƠ SỞ LÝ THUYẾT
VI.TỔNG QUAN VỀ J2EE
VI.1.KHÁI NIỆM
- J2EE là một trong 3 platform của Java J2ME ,J2SE.J2EE Nó đặt các
Enterprise API của Java lại với nhau và gói chúng thành một platform phát triển hoàn chỉnh cho việc triển khai các lớp enterprise trong Java phía máy chủ Nhiệm vụ của J2EE là cung cấp một platform độc lập, linh động, đa người dùng, bảo mật.cho việc triển khai phía máy chủ trong ngôn ngữ lập trình Java J2EE là một đặc tả , không phải là một sản phẩm Nó chỉ ra các quy tắc ràng buộc mọi người phải nhất trí khi viết phần mềm enterprise
VI.2.MÔ HÌNH ĐA TẦNG
- Giả sử chúng ta quản lý và phân phối ứng dụng trên 100 máy tính nằm ở nhiều nơi khác nhau, chúng ta cài đặt trình điều khiến kết nối cơ sở dữ liệu SQL Server lên từng máy Sau một thời gian dài sử dụng, ta muốn chuyển hệ
cơ sở dữ liệu SQL Server sang hệ cơ sở dữ liệu Oracle, thì ta phải yêu cầu
100 máy khách cập nhật lại trình điều khiển truy xuất cơ sở dữ liệu Oracle thay cho SỌL Server, đó là chưa kế đến cấu hình và kết nổi với từng hệ cơ sở
dữ liệu là vấn đề không phải đơn giản đối với người dùng Hoặc khi chúng tamuốn thay đối mã nguồn của ứng dụng khách, chúng ta phải gửi bản cập nhật hàng chục Mb đến 100 máy khách yêu cầu cập nhật lại chương trình Tất cả nhũng yêu cầu trên đã làm phát sinh mô hình phát triển úng dụng đa tầng (multi-tier) Các ứng dụng xử lý không còn được cài đặt trên máy khách
mà được cài đặt trên một máy chủ Mục tiêu là làm cho máy khách trở nên gọn nhẹ, dễ cấu hình, dễ thay đối phía máy chủ, nếu chúng ta cần thay đối
mã nguồn của ứng dụng, chúng ta chỉ cần thay đối trên máy chủ, tất cả các trình khách khi kết nối vào máy chủ chạy ứng dụng sẽ luôn được phục vụ vớiphiên bản chương trình mới nhất
- Web là một ví dụ điến hình nhất của mô hình ứng dụng đa tầng Trình chủ Web nằm trên một máy chủ , trình khách chỉ cần dùng trình duyệt (web browser) kết nối vào máy chủ và có thể truy cập được mọi thông tin cũng như dịch vụ Trình chủ sử dụng Java Servlet, trang JSP hay các ứng dụng CGI (Common Gateway Interface) để kết nối với cơ sở dữ liệu, đối tượng phân tán RMI (Remote Method Invocation-nằm trên một máy chủ khác) xử
lý tính toán và trả về kết quả cho trình khách thông qua các trang Web tĩnh
Mô hình đa tầng đã phân rã chức năng một cách cụ thể, cho phép ứng dụng chạy trên nhiều máy chủ khác nhau Dễ dàng cho người phát triến, nhà cung cấp cũng như người sử dụng trên mạng diện rộng nhất là mạng Internet Đó
Trang 12là lý do tại sao các nhà phát triến đều mong muốn hướng đến việc thiết kế ứng dụng Web.
Hình 1 Mô hình đa tầng
- Mô hình ứng dụng đa tầng này dựa trên nền tảng J2EE Một ứng dụng J2EE
có thể bao gồm 3 hoặc 4 tầng nhưng những ứng dụng J2EE thường được xem là 3 tầng vì nó được phân tán trên 3 vị t r í : Máy khách (Client
Machine), máy chủ J2EE (J2EE Server Machine), và máy chủ cơ sở dữ liệu (Database Server Machine)
VI.3.KIẾN TRÚC TRÌNH CHỨA CỦA J2EE
Hình 2 J2EE và các trình chứa
- Trình chứa là nơi cung cấp môi trường hoạt động và là nơi giao tiếp giữa các thành phần Trước khi một thành phần Web, Enterprise Bean hay thành phần
Trang 13ứng dụng khách có thể được thực thi nó phải được tập hợp lại trong một Module và được triến khai đến trình chứa của nó Tiến trình tập hợp bao gồmcác thiết lập đặc tính của trình chứa cho mỗi thành phần trong ứng dụng J2EE và cho chính ứng dụng J2EE Nhũng tùy biến thiết lập trình chứa hố trợ cơ bản được cung cấp bởi Server J2EE, bao gồm những dịch vụ như : bảomật, quản lý giaotác,tra cứu thao tác định danh và thư mục Java (Java
Naming and Directory Interface), và khả năng kết nối từ xa Quá trình triển khai và cài đặt những thành phần ứng dụng J2EE trong trình chứa J2EE được
mô tả trong hình trên Trong đó :
+ J2EE Server : là phần chạy thực của một sản phấm J2EE Server J2EE cung cấp trình chứa EJB và Web
+ Trình chứa EJB: quản lý việc thực thi của Enterprise Bean cho những ứng dụng J2EE Enterprise Bean và trình chứa của nó chạy trên Server J2EE
+ Trình chứa Web: Quản lý việc thực thi và những thành phần Servlet cho những ứng dụng J2EE Những thành phần Web và các ứng dụng của nó chạy trên Server J2EE
+ Trình chứa ứng dụng J2EE : quản lý việc thực thi nhũng thành phần ứng dụng của Client Những ứng dụng Client và trình chứa của nó chạy trên máy Client
+ Trình chửa Applet: quản lý việc thực thi của các Applet Bao gồm một trình duyệt Web và Java Plug-in chạy trên cùng máy Client
VI.4.CÁC API CỦA J2EE
- Kỹ thuật Enterprise Java Bean: Một thành phần Enterprise Java Bean hay Enterprise Bean, là mã lệnh có các vùng và các phương thức để thực thi các Module của xử lý nghiệp vụ Chúng ta có thể nghĩ Enterprise Bean là một khối xây dựng có thể dùng riêng lẻ hoặc với các Enterprise Bean khác để thực thi nghiệp vụ trên server J2EE Có hai loại EJB chính đó là : Bean thao tác và Bean thực thể Ngoài ra còn có Message- Driven Bean là một điếm mới trong chuấn EJB 2.0
- Kỹ thuật Java Servlet: tương tác với Web client thông qua cơ chế response Cơ chế này hoạt động dựa trên giao thức HTTP
request Kỹ thuật Java Server Page: dùng để xây dựng các ứng dụng có chứa nội dung Web động như HTML, XHTML, XML
- Java Message Service: là một chuẩn message cho phép các thành phần ứng dụng J2EE tạo, gởi, nhận và đọc các message Nó là một API để giao tiếp với Message Oriented Middleware (MOM) cho phép truyền nhận message theo cơ chế point-to-point và publish/subcriber
Trang 14- Java Transaction API (JTA): là một tập API cho phép quản lý các thao tác ứng dụng có thể sử dụng JTA để Start, Commit hoặc hủy bỏ giao tác.
- Java Mail API: các ứng dụng J2EE sử dụng Java Mail API để gởi email thông báo Java Mail API có 2 phần: một giao tiếp mức ứng dụng được sử dụng bởi các thành phần ứng dụng để gởi thư, và một giao tiếp trình cung cấp dịch vụ Nen J2EE bao gồm Java mail với một trình cung cấp dịch vụ cho phép các thành phần ứng dụng gởi thư Intemet
- JavaBeans Activation Framework (JAF): tập các API được sử dụng bởi các package khác như Java mail , chúng ta có thể dùng JAF để xác định kiểu dữliệu, đóng gói truy cập đến dữ liệu, mở rộng những tác vụ dựa trên những dữ liệu đó và khởi tạo một Bean tương ứng để thực hiện các tác vụ
- Java Database Connectivity (JDBC) API: JDBC cho phép ta gọi các câu lệnhSQL từ các phương thức của ngôn ngữ lập trình java Chúng ta cũng có thể
sử dụng JDBC API từ một Servlet hay một trang JSP để truy xuất CSDL mộtcách trực tiếp mà không cần thông qua enterprise bean JDBC API có 2 phần: một giao tiếp mức ứng dụng được sử dụng bởi các thành phần ứng dụng để truy xuất một CSDL và một giao tiếp trình cung cấp dịch vụ để đính kèm một trình điều khiển JDBC cho nền J2EE
- Java Naming and Directory Interface (JNDI): một interface duy nhất dùng đểtruy cập những kiểu dịch vụ khác nhau về định danh và thư mục
VI.5.TỔNG QUAN VỀ EJB
VI.5.1.EJB LÀ GÌ
- EJBs là các thành phần công nghệ phía máy chủ dùng để đóng gói lớp logic nghiệp vụ (business logic) và hổ trợ mạnh việc thực hiện các giao tác và bảo mật
Trang 15VI.5.2.MÔ HÌNH EJB
Hình 3 Mô hình EJB
- EJB Server: cung cấp dịch vụ hệ thống và quản lý những trình chứa mà Beanchạy Nó phải làm tồn tại một khả năng truy xuất dịch vụ định danh JNDI và dịch vụ giao tác Borland Enterprise Server AppServer Edition 6.0 là một ví
- Mỗi EJB bắt buộc phải có các interface và các class sau:
+ Remote interface: remote interface kế thừa javax.ejb.EJBObject Remoteinterface chứa các phương thức nghiệp vụ được gọi từ Client Nó đóngvai trò như một proxy của EJB
+ Home interface: home interface kế thừa javax.ejb.EJBHome Nó đóngvai trò như một mô hình để khởi tạo EJB
+ Bean class: chứa phần cài đặt của các phương thức khai báo trong remoteinterface Bean class kế thừa javax.ejb.SessionBean hoặc
javax.ejb.EntityBean hoặc javax.ejb.MessageDrivenBean
Trang 16VI.5.3.CÁC LOẠI EJB
Có 2 loại chính đó là Session Bean (Bean thao tác) và Entity Bean (Bean thực thể) Ngoài ra còn có Message - driven bean
Hình 4 Các loại EJB
- Session bean: Nếu đối tượng Bean chỉ thực hiện các hành vi xử lý, tính toánđơn thuần thì chúng được phân lọai thành Bean thao tác (Session Bean) Bean thao tác chỉ có nhiệm vụ phục vụ trình khách, nơi triệu gọi đối tượng Trong một phiên kết nối, những thao tác nhất thời không đòi hỏi việc thể hiện dữ liệu thường bao gồm : tính toán, phân tích, thống kê Bean thao tác được chia làmhailoại đó là: Bean thao tác phi trạng thái (Stateless Bean) và Bean thao tác lưuvết trạng thái (Stateful Bean)
+ Stateless bean: là các thành phần bean không lưu lại trạng thái của giao dịch trước đó để sử dụng cho lần giao dịch sau Bean thao tác phi trạng thái là đối tượng Bean đơn giản, dễ dùng, dễ thiết kế và quản lý nhất trong tất cả các đối tượng EJB
+ Stateful bean: Bean thao tác lưu vết trạng thái là các thành phần Bean cầnlưu lại vị trí của giao dịch trước đó để sử dụng cho các lần giao dịch sau Các Bean này thường phục vụ cho các thao tác đòi hỏi phải qua nhiều bước triệu gọi trước khi trả về kết quả cuối cùng
- Entity bean: Đối tượng thường mô tả một thực thể nào đó trong cuộc sống thực Bean thực thể cung cấp một đối tượng xem xét dữ liệu trong cơ sở dữ liệu Thông thường Bean đại diện cho một hàng trong tập hợp các bảng của
cơ sở dữ liệu quan hệ Một Bean thực thể thường phục vụ nhiều hơn một Client Không giống như Bean thao tác, Bean thực thể thì sống lâu hơn Chúng duy trì một trạng thái tồn tại miễn là dữ liệu còn trong cơ sở dữ liệu, hay nói đúng hơn miễn là còn Client riêng biệt cần đến nó Việc quản lý dữ liệu của Bean thực thể được chia ra làm hai loại:
Trang 17+ Bean thực thể quản lý (Bean - Managed): là các thành phần Bean có khả năng thực thi các câu truy vấn cơ sở dữ liệu( do lập trình viên xây dựng)
để lấy về dữ liệu mà nóthể hiện Ví dụ trong phương thức khởi dựng Bean thực thể có thể dùng các câu lệnh SQL như SELECT, INSERT (thông qua JDBC) để tự tìm hoặc thêm mới dữ liệu mà nó thể hiện vào các bảng trong cơ sở dữ liệu
+ Bean thực thể quản lý bởi trình chứa(Container Managed): thành phần Bean có thể không cần phải sử dụng lệnh SỌL để tự tìm kiếm hay tạo mới dữ liệu mà nó thể hiện Thay vào đó đối tượng Bean sẽ tự khai báo trong trường hay cột dữ liệu tương ứng với các bảng trong hệ quản trị cơ
sở dữ liệu Trình chứa sẽ tự động thực hiện công việc truy vấn dữ liệu giúp thành phần Bean Đối tượng Bean thể hiện dữ liệu theo kiểu này được gọi là Bean thực thể được quản lý bởi trình chứa
- Message - Driven Bean: là một chuấn mới trong EJB 2.0 (EJB 1.1 chỉ định nghĩa 2 loại đó là Session Bean và Entity Bean) Mục đích của Message-Driven Bean là phục vụ cho nhu cầu về các dịch vụ không đồng bộ của các thành phần Bởi vì Session Bean và Entity Bean chỉ phục vụ cho các dịch vụ đồng bộ
VI.5.4.CHU TRÌNH HOẠT ĐỘNG CỦA STATELESS BEAN
Bởi vì Stateless beankhông bao giờ thụ động (passivate), nên chu trình hoạt động của nó chỉ có 2 giai đoạn : chưa tồn tại và sẵn sàng để gọi các phương thức nghiệp
vụ Sau đây là chu trình hoạt động của nó:
Hình 5 Chu trình hoạt động của Stateless bean
Trang 18VI.5.5.CHU TRÌNH HOẠT ĐỘNG CỦA STATEFUL BEAN
Hình 6 Chu trình hoạt động của Stateful bean
- Client khởi tạo chu trình hoạt động bằng cách gọi phương thức create() Trình chứa EJB thuyết minh Bean và gọi các phương thức
setSessionContext và ejbCreate() trong Bean thao tác Bây giờ thì Bean đãsẵn sàng để gọi các phương thức business của nó Do các thành phần Beanlưu giữ trạng thái thường không được huỷ đi trong quá trình giao dịch Nếu trình chứa không đủ bộ nhớ (hoặc đối với những thành phần Bean chưa cần dùng đến), trình chứa sẽ tạm thời lưu Bean xuống bộ nhớ ngoài (đĩa cứng) bằng cách gọi phương thức ejbPassivate() để thông báo cho Bean biết rằng nó sắp được lưu xuống bộ nhớ ngoài (thông thường trình chứa EJB sử dụng thuật toán lần sử dụng gần đây ít nhất (last-recently-used))
- Các Bean lưu vết trạng thái có thể dựa vào tình huống này để tạm cất
những dữ liệu quan trọng vào nơi nào đó, sau đó Bean sẽ chuyến sang
trạng thái ngủ (ngừng hoạt động) Khi có một lời triệu gọi Bean phát sinh mới từ trình khách, nếu trình chứa không tìm thấy Bean đang hoạt động nó
sẽ khôi phục lại Bean từ vùng nhớ tạm Lúc này trình chứa sẽ gọi phương thức ejbActivate() để thông báo cho Bean biết trạng thái kích hoạt trở lại Bean có thể dựa vào tình huống này để khôi phục lại trạng thái đã lưu trữ trước đó Ở cuối chu trình họat động, Client gọi phương thức remove() và trình chứa gọi phương thức ejbRemove() của Bean
VI.5.6.NHỮNG ĐẶC ĐIỂM TẠO NÊN THẾ MẠNH CỦA EJB
EJB là một thành phần phía máy chủ và cần được thực thi trong một thùng chứa (container) Môi trường thực thi này cung cấp các tính năng cốt yếu cho nhiều ứng dụng thương mại như:
- Remote client communication: Các EJBs sử dụng giao thức RMI – Remote Method Invocation để giao tiếp giữa client và các lớp bean Vì vậy EJB có thể được triệu gọi từ nhiều máy chủ khác nhau, phục vụ cho nhiều loại client
Trang 19(Desktop Application, Web Application…) Rất hữu ích khi kết hợp với các tính năng khác để xây dựng nên một kiến trúc phân tán đa tầng hoạt động một cách ổn định.
- Dependency injection: Phụ thuộc tiêm, cho phép bean dễ dàng truy cập tới những tài nguyên khác
- State management: Cho phép các stateful session bean quản lý trạng thái giao tiếp với từng client riêng biệt trong một phiên làm việc
- Pooling: Hồ chứa, cho phép quản lý các thể hiện bean đang sẳn sàng để thực hiện các yêu cầu từ phía client
- Component life cycle: Cho phép Container thông báo cho bean biết khi chuyển từ trạng thái này sang trạng thái khác
- Messaging: Hệ thống quản lý các thao tác gởi và nhận các thông điệp bất đồng bộ sử dụng JMS API
- Transaction management:Quản lý việc thực thi các giao tác, đảm bảo các giao tác thực hiện một cách an toàn
- Security: Bảo mật cho các phương thức, lớp bean Sử dụng chứng thực JAAS, cho phép phân quyền truy cập trên phương thức hoặc lớp bean dựa vào vai trò của client
- Concurrency support: Hổ trợ giải quyết khi có nhiều yêu cầu tài nguyên phát sinh cùng một thời điểm Đảm bảo dữ liệu được toàn vẹn và nhất quán
- Interceptors: Sự chặn đứng lời triệu gọi một phương thức, cho phép cung cấpcác dịch vụ chứng thực, kiểm tra,… trước khi phương thức được triệu gọi
VI.6.TỔNG QUAN VỀ JSF
VI.6.1.SỰ PHÁT TRIỂN CỦA CÁC WEB APPLICATION FRAMEWORK
Trải qua 3 giai đoạn chính: không theo mô hình MVC ( model, view, controller ), MVC model 1 (Page-centric), MVC model 2 (Servlet-centric)
Không theo mô hình MVC:
- Thời kì mới ra đời của các ứng dụng web, lúc đó chỉ tồn tại các ứng dụng web tương tác trực tiếp với người sử dụng bằng các trang web tĩnh, không có sự xử lý và ngôn ngữ phía máy chủ Điều này đã gây cản trở rất lớn cho người lập trình cũng như người sử dụng trong việc tiếp cận với các ứng dụng trên nền web
MVC model 1:
Trang 20Hình 7 Mô hình MVC1
- Trong MVC model 1, các trang JSP đóng vai trò hiển thị (View) và điều khiển (Controller) Có thể có nhiều trang JSP khác nhau đóng cácvai trò khác nhau
- Khi người sử dụng dùng các nút bấm, menu hoặc link … trên trình duyệt Web (Web browser) để thực hiện một thao tác, một lệnh (có thể kèm theo các tham số) được gửi tới một trang JSP tương ứng
- Trang JSP này sẽ khởi tạo một hoặc nhiều Java Bean (nếu cần thiết), truyền các lệnh cần thi hành tới Java Bean Chú ý rằng đây là các JavaBean thông thường, chứ không phải Enterprise Java Bean (EJB)
- Sau khi Java Bean thực hiện xong việc truy xuất hoặc cập nhật dữ liệu, trang JSP ban đầu có thể hiển thị dữ liệu lấy từ Bean (JSP ban đầu đóng luôn vai trò View), hoặc chọn một trang JSP khác để hiện
dữ liệu từ Bean (JSP ban đầu đóng luôn vai trò Controller) Trong mộtthiết kế tốt, để bảo đảm việc tách rời phần trình bày và logic của chương trình, trang JSP nhận request chỉ đóng vai trò Điều khiển (Controller)
- MVC model 1 có một nhược điểm là phần logic điều khiển được viết trong trang JSP, như vậy phần chương trình Java phức tạp dùng để điều khiển sẽ bị lẫn vào trong mã HTML dùng để trình bày Độ phức tạp của chương trình càng cao, thì trang JSP càng khó bảo trì Hơn nữa trong các dự án phần mềm phức tạp, thì phẩn hiển thị của trang JSP thường được làm bởi người thiết kế Web, giỏi về HTML và đồ họa, còn phần chương trình Java được viết bởi lập trình viên chuyên
về lập trình Trong các dự án phức tạp, dùng JSP làm phần điều khiển
sẽ làm lẫn lộn việc phân chia ranh giới trách nhiệm giữa nhóm thiết kế
đồ họa và nhóm lập trình, đôi khi dẫn đến việc bảo trì và phát triển trởnên rất khó khăn, gần như không thể làm được.Để khắc phục nhược điểm này, MVC model 2 ra đời
Trang 21 MVC model 2:
Hình 8 Mô hình MVC model 2
- Trong MVC model 2, một hoặc nhiều servlet (thường là một) đóng vai trò Điều khiển, các Java Bean đóng vai trò Mô hình và các trang JSP đóng vai trò hiển thị
- Trong model 2, các logic phức tạp của chương trình được viết hoàn toàn trong các servlet, là các chương trình Java Phần hiển thị chỉ gồm các trang JSP với một vài mã đơn giản để lấy dữ liệu có sẵn, không có logic phức tạp,
vì thế hoàn toàn có thể được tạo ra bằng những người thiết kế Web
- Các yêu cầu của người dùng được gửi từ trình duyệt Web tới servlet Servlet
sẽ khởi tạo Java Bean (nếu cần thiết), ra lệnh thu thập, cập nhật thông tin Khi Java Bean hoàn thành công việc, servlet sẽ chọn trang JSP thích hợp để hiện thông tin trong Java Bean cho người dùng
VI.6.2.JSF LÀ GÌ
- Công nghệ Java Server Faces là một UI framework cho việc xây dựng các ứng dụng web chạy trên Java server và thay thế UI phía sau cho client Các ứng dụng được viết bằng JSF tuân theo mô hình MVC model 2, hỗ trợ tốt cho người phát triển web Các thành phần chính của công nghệ JSF bao gồm:+ Một API và các bổ sung tham khảo cho: thay thế các thành phần UI và quản lý trạng thái của chúng; xử lý các sự kiện, kiểm tra phía server và chuyển đổi dữ liệu; định nghĩa navigation của trang; hỗ trợ quốc tế hóa vàaccessibility; và cung cấp khả năng mở rộng cho tất các đặc điểm này.+ Một thư viện thẻ tùy biến JavaServer Pages (JSP) cho việc định nghĩa cácthành phần UI trong một trang JSP
- Mô hình lập trình được định nghĩa tốt này và các thư viện thẻ thành phần UI giúp xây dựng và sửa chữa các ứng dụng web với các UI ở phía server dễ dàng hơn Với sự tổ chức nhỏ đó, bạn có thể:
+ Điều khiển việc tạo ra các sự kiện phía client từ việc viết mã ứng dụng phía server
Trang 22+ Ánh xạ các thành phần UI trên một trang cho dữ liệu phía server.
+ Khởi dựng một UI với các thành phần có thể tái sử dụng và có khả năng
mở rộng
+ Lưu trữ và phục hồi trạng thái UI ngay sau các request
VI.6.3.PHẦN MỀM YÊU CẦU
- Để xây dựng, deploy và chạy các ứng dụng JSF bạn cần một môi trường deploy chẳng hạn Java Web Software Development Pack và Java 2 Platform,Standard Edition (J2SE) SDK 1.3 trở lên Đồng thời download bổ sung công nghệ Java Server Faces Có thể download các phần mềm cần thiết tại các linkdưới đây
+ http://java.sun.com/webservices/downloads/webservicespack.html+ http://java.sun.com/j2se/1.5
+ http://java.sun.com/j2se/javaserverfaces/download.html
VI.6.4.ĐẶC ĐIỂM CỦA JSF
- Một trong những lợi điểm lớn nhất của công nghệ JSF là nó cho phép một sựphân chia rạch ròi giữa behavior (cách xử lý) và presentation (cách trình bày) Xây dựng ứng dụng web với công nghệ JSP lưu trữ từng phần của việc phân chia này Tuy nhiên, một ứng dụng JSP không thể ánh xạ những requestHTTP thành những xử lý sự kiện các thành phần cụ hể hoặc quản lý các thành phần UI như những đối tượng có trạng thái trên server Công nghệ JSFcho phép bạn xây dựng các ứng dụng Web nhằm bổ sung việc phân chia rõ ràng hơn behavior và presentation được cho phép bởi kiến trúc UI
- Việc phân chia luận lý từ presentation cũng cho phép mỗi thành viên của mộtnhóm phát triển ứng dụng Web tập trung vào những phần trong tiến trình phát triển của họ, và cung cấp một mô hình lập trình đơn giản để liên kết những phần đó với nhau Một mục tiêu quan trọng khác của công nghệ JSF
là cung cấp các mức độ thân thuộc các thành phần UI và các khái niệm tầng Web mà không giới hạn bạn trong một công nghệ scripting cụ thể hoặc một ngôn ngữ đánh dấu Trong khi công nghệ JSF bao gồm một thư viện thẻ tùy biến JSP dùng thay thế các thành phần trên trang JSP, API của công nghệ JSP được phân lớp trực tiếp trên đỉnh của JavaServlet API Điều này cho phép bạn làm được vài điều: sử dụng công nghệ trình bày khác bên cạnh JSP,tạo ra những thành phần tùy biến của bản thân bản trực tiếp từ những lớp thành phần, và tạo ra luồng xuất cho những thiết bị client khác nhau
- Quan trọng hơn hết, công nghệ JSF cung cấp một kiến trúc dành cho việc quản lý trạng thái các thành phần, xử lý dữ liệu thành phần, kiểm tra nhập liệu của người dùng và xử lý các sự kiện Trong hầu hết những phần đó, các ứng dụng JSF cũng tương tự như bất kỳ các ứng dụng Java Web khác, Chúngchạy trên một Java Servlet container, và thông thường chứa:
Trang 23+ Các thành phầns JavaBean (được gọi là những mô hình đối tượng trong công nghệ JSF).
+ Các event listener
+ Các trang, chẳng hạn như JSP
+ Các lớp helper phía server, chẳng hạn như các bean truy cập dữ liệu
- Thêm vào những thành phần ở trên, một ứng dụng JSF cũng có:
+ Một thư viện thẻ tùy biến thực thi các thành phần UI trên một trang.+ Một thư viện thẻ tùy biến thay thế các xử lý sự kiện, kiểm tra và những hành động khác
+ Những thành phần UI thay thế trạng thái các đối tượng trên server
+ Các kiểm tra, xử lý sự kiện, và xử lý navigation
- Mỗi ứng dụng JSF phải bao gồm một thư viên thẻ tùy biến nhằm định nghĩa các thẻ thay thế các thành phần UI và một thư viện thẻ tùy biến nhằm thay thế các hành động cốt lõi khác, chẳng hạn như các kiểm tra và các xử lý sự kiện Cả hai loại thư viện thẻ này được cung cấp bởi việc bổ sung JSF
- Thư viện thẻ tùy biến xóa bỏ những gì cần thiết cho các thành phần UI trong HTML hoặc ngôn ngữ đánh dấu khác, kết quả là những thành phần tái sử dụng hoàn toàn Và thư viện core tạo nên sự dễ dàng để đăng ký các sự kiện, kiểm tra và những hành động khác Thư viện thẻ tùy biến có thể là thư viện thẻ HTML cơ bản chứa cùng với công nghệ JSF tham khảo bổ sung, hoặc bạn có thể định nghĩa thư viện thẻ của riêng mình nhằm tạo ra các thành phần tùy biến hoặc xuất ra kiểu khác HTML
- Cuối cùng, công nghệ JSF cho phép bạn chuyển đổi và kiểm tra dữ liệu trên những thành phần riêng biệt và thông báo bất kỳ lỗi gì trước khi dữ liệu phía server được cập nhật
VI.6.5.VAI TRÒ CỦA FRAMERWORK
- Bởi vì việc phân chia công việc được cho phép bởi thiết kế công nghệ JSF, việc phát triển và sửa chữa các ứng dụng JSF có thể xử lý dễ dàng và nhanh chóng Các thành viên củamột nhóm phát triển thông thường bao gồm một danh sách dưới đây Trong nhiều nhóm, các nhà phát triển riêng biệt đóng nhiều hơn một trong những vai trò dưới đây:
+ PageAuthors: người sử dụng ngôn ngữ đánh dấu, giống như HTML, để tạo ra các trang cho ứng dụng Web Khi sử dụng framework công nghệ JSF, page authors sẽ hầu hết sử dụng thư viện thẻ
+ Application Developers: người lập trình mô hình các thành phần, các xử
lý sự kiện, các kiểm tra, và navigation của trang Application developer
có thể cung cấp các lớp helper mở rộng
Trang 24+ Component Developers: người có kinh nghiệm lập trình UI và đề nghị tạo
ra các thành phần tùy biến sử dụng ngôn ngữ lập trình Những người này
có thể tạo ra các thành phần của riêng họ trực tiếp từ các lớp thành phần, hoặc họ có thể kế thừa các thành phần chuẩn cung cấp bởi công nghệ JSF
+ Tool Developer: người cung cấp các công cụ nhằm tạo ra công nghệ JSF xây dựng UI phía server dễ dàng hơn Những thành viên chính của công nghệ JSF sẽ là page authors và application developers
VI.6.6.CÁC THÀNH PHẦN CHÍNH CỦA JSF
- Như hầu hết các công nghệ, Faces có những quy định nhằm đưa ra các khái niệm cơ bản cho những đặc điểm mà nó cung cấp Đó là những elements nhưcác component UI, validator và rederer Có tám khái niệm khi phát triển các ứng dụng JSF
+ UI Component (còn gọi là một control hay đơn giản là component) : một đối tượng có trạng thái, được chứa trên server, cung cấp các chức năng cụthể để tương tác với một người dùng cuối UI component là những
JavaBean với các thuộc tính, phương thức, sự kiện Chúng được tổ chức thành một cây các component thường hiển thị như một trang
+ Rederer: Trả lời cho việc hiển thị một UI component và trao đổi một dữ liệu nhập của user vao giá trị của component Renderer có thể được thiết
kế để làm việc với một hoặc nhiều UI component, và một UI component
có thể tập hợp với nhiều renderer khác nhau
+ Validator: Trả lời cho việc chắc chắn rằng giá trị nhập vào bởi user được chấp nhận Một hoặc nhiều validator có thể được tập hợp với một UI component
+ Backing beans: Các Java Bean xác định tập hợp các giá trị từ các UI component và bổ sung các phương thức listener cho event Chúng cũng
có thể nắm giữ các tham chiếu đến các UI component
+ Converter: Chuyển đổi một giá trị của component thành và từ một chuỗi
để hiển thị Một UI component có thể được tập hợp với một converter duy nhất
+ Event/listener: JSF sử dụng mô hình event/listener JavaBeans (cũng được
sử dụng cho Swing) UI component (và những đối tượng khác) tạo ra các event, và các listener có thể đăng ký để xử lý các sự kiện
+ Messages: Thông tin hiển thị cho user Chỉ bất kỳ phần ứng dụng nào (backing beans, validators, converter …) có thể tạo ra thông tin hoặc thông điệp lỗi nhằm hiển thị cho user
+ Navigation: Khả năng di chuyển từ một trang đến trang khác JSF có một
hệ thống navigation mạnh mẽ tích hợp với những event listeners
VI.6.7.VÒNG ĐỜI CỦA VIỆC XỬ LÝ REQUEST
Trang 25Hình 9 Vòng đời của việc xử lý request
- Bước 1 - Restore View: Hiển thị thay thế tất cả các component tạo nên một
trang cụ thể Nó có thể lưu trữ trên client (thông thường trong một field ẩn trên trình duyệt) hoặc trên server (thông thường trong session)
- Bước 2 - Apply Request Values: Mỗi UI component chấp nhận dữ liệu nhập
có một giá trị được submit thay thế giá trị dữ liệu gốc từ user Trong suốt bước này, framework ấn định giá trị được submit dựa trên tham số gởi đi trong request Quá trình này gọi là decoding
- Bước 3 - Process Validation: trong bước này, JSF đặt cây component và hỏi
mỗi component có chắc chắn rằng giá trị submit là có thể chấp nhận không Bởi vì giá trị được submit của mỗi component nhập vào được cập nhật bởi bước 2, component bây giờ có hầu hết dữ liệu hiện thời của user Trước khi validation xảy ra, giá trị được submit được chuyển đổi, bằng mỗi converter
đã đăng ký cho component hoặc converter mặc định Validation là sau khi xử
lý trực tiếp bằng component hoặc công bố cho một hoặc nhiều validator
- Bước 4 - Update Model Values: Bây giờ chúng ta đã chắc chắn về giá trị cục
bộ của các component đã được cập nhật và chính xác và đúng kiểu, có thể chuyển đi với bất kỳ bean nào được tập hợp hoặc mô hình các đối tượng Bởi
vì các đối tượng được tập hơp với các component thông qua các phát biểu JSF EL, đây là nơi các phát biểu này được kiểm tra và các thuộc tính được cập nhật dựa trên giá trị cụ bộ của component
- Bước 5 - Invoke Application: Bây giờ các bean cần thiết và mô hình các đối
tượng được cập nhật, chúng ta có thể đi xuống việc công bố thông tin Trong bước này, JSF quảng bá các sự kiện cho bước này đối với bất kỳ listener nào
đã được đăng ký
Trang 26- Bước 6 - Render Response: Tại thời điểm này, tất cả xử lý bới framework và
ứng dụng đã trải qua Tất cả chờ được gởi đi trả lời cho user, và đây là mục tiêu chính của bước này Mục tiêu thứ hai là lưu lại trạng thái hiển thị để nó
có thể được phục hồi trong bước Restore View nếu user yêu cầu lại Trạng thái hiển thị lưu lại trong bước này bởi vì thường thì hiển thị được lưu trên client, vì thế nó là một phần của response nhằm gởi trả cho user Trong trường hợp này, JSF đang lưu trạng thái trên server, vì thế hiển thị hầu hết được lưu trữ trong session của user
Trang 27CHƯƠNG II: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
I.TÁC NHÂN
- Khách ghé thăm:
+ Đăng ký tài khoản
+ Khách hàng kích hoạt tài khoản
+ Xem thông tin tour du lịch
+ Xem thông tin xe
+ Xem thông tin của khách sạn
+ Xem thông tin chuyến bay
- Khách hàng:
+ Đăng nhập
+ Xem thông tin tour du lịch
+ Xem thông tin xe
+ Xem thông tin khách sạn
+ Xem thông tin chuyến bay
+ Đặt tour
+ Thuê xe
+ Quản lý tài khoản
+ Thay đổi mật khẩu
+ Quản lý thông tin chuyến bay
+ Quản lý thông tin khách sạn
Trang 28II.PHÂN TÍCH ĐẶC TẢ YÊU CẦU
II.1.ĐĂNG KÍ TÀI KHOẢN
- Mô tả chức năng: cho phép người dùng đăng ký tài khoản của họ trên web
- Tác nhân : Khách viếng thăm
- Điều kiện : Không
- Yêu cầu chức năng:
+ REQ1: Hệ thống hiển thị trang đăng ký nhập thông tin khách hàng
+ REQ2: Trường ngày, thành phố và quận phải được chọn từ trong danhsách
+ REQ3: Email phải được kiểm tra tuân theo quy tắc tiêu chuẩn
+ REQ4: ID khách hàng (UserName) sẽ được tạo ra bởi hệ thống và gửiqua email cho khách hàng
+ REQ5: Hệ thống tạo nên một capcha để tránh người dùng tự động
+ REQ6: Hệ thống sẽ tạo ra một liên kết và gửi đến email của khách hàng
để kích hoạt tài khoản của họ
II.2.KÍCH HOẠT TÀI KHOẢN
- Mô tả chức năng: Để kích hoạt tài khoản khách hàng
- Tác nhân : Khách viếng thăm
- Điều kiện : Khách hàng đã tiến hành đăng kí và nhận được email kích hoạt
- Yêu cầu chức năng:
+ REQ-1: Khách hàng kiểm tra email của mình và nhấn vào một liên kết đểkích hoạt tài khoản của họ
+ REQ-2: Hệ thống nhận được liên kết và tài khoản đang hoạt động
+ REQ-3: Hệ thống sẽ kiểm tra tài khoản email
II.3.ĐĂNG NHẬP
- Mô tả chức năng: Khi khách hàng muốn đăng nhập vào hệ thống để thựchiện đặt tour hay thuê xe
- Tác nhân: Khách hàng, nhân viên, quản trị viên
- Điều kiện: Phải có tài khoản của website, đối với khách hàng thì tài khoảnphải được kích hoạt
- Yêu cầu chức năng:
+ REQ1: Hiển thị trang đăng nhập gồm có tài khoản và mật khẩu, nút đăngnhập
+ REQ2: Hệ thống sẽ kiểm tra nếu thành công trả về trang chủ, ngược lạitrở lại trang đăng nhập và hiện thông báo
II.4.HIỂN THỊ THÔNG TIN CÁC TOUR
- Mô tả chức năng: Giới thiệu tới khách hàng các tour của công ty
- Tác nhân : Khách hàng, khách viếng thăm
- Điều kiện : Không
- Yêu cầu chức năng:
+ REQ1: Hiển thị thông tin tour du lịch, kèm theo những giới thiệu, giá cả
Trang 29+ REQ2: Khi khách hàng chọn vào một tour, sẽ hiển thị chi tiết tour nàygồm, các ngày khởi hành, giá cả, lịch trình, thời gian…, nút đặt tour.
II.5.XEM THÔNG TIN XE
- Mô tả chức năng: Để khách hàng có thể xem thông tin ô tô khi có nhu cầuthuê xe tại các địa điểm du lịch
- Tác nhân : Khách hàng, khách viếng thăm
- Điều kiện : Không
- Yêu cầu chức năng:
+ REQ1: Hiển thị trang thông tin xe
+ REQ2: Có danh sách tỉnh thành để khách hàng chọn
+ REQ3: Hiển thị ra nội dung chi tiết của xe khi khách hàng chọn vào mộtloại xe nào đó
II.6.HIỂN THỊ THÔNG TIN KHÁCH SẠN
- Mô tả chức năng: Khách hàng có thể xem thông tin khách sạn để chọn chomình một khách sạn phù hợp khi đi du lịch
- Tác nhân : Khách hàng, khách viếng thăm
- Điều kiện : Không
- Yêu cầu chức năng:
+ REQ1: Hiển thị trang thông tin khách sạn (cấp độ *, thức ăn, giá cả)+ REQ2: Có danh sách thành phố và cấp độ * hoặc giá cả để khách hànglựa chọn…
+ REQ3 :Hiển thị ra nội dung chi tiết của khách sạn khi khách hàng chọnvào một loại
II.7.XEM THÔNG TIN CHUYẾN BAY
- Mô tả chức năng: Khách hàng có thể xem thông tin chuyến bay để chọn chomình một chuyến bay khi đi du lịch
- Tác nhân : Khách hàng, khách viếng thăm
- Yêu cầu : Không
- Yêu cầu chức năng:
+ REQ1: Hiển thị trang thông tin chuyến bay trong ngày hiện tại, chi phí…+ REQ2: Bao gồm có danh sách ngày để khách hàng chọn và xem chuyếnbay trong ngày đó, theo nơi xuất phát…
II.8.ĐẶT TOUR DU LỊCH
- Mô tả chức năng: Khi khách hàng muốn đặt tour
- Tác nhân: Khách hàng
- Điều kiện: Khách đã đăng nhập thành công
- Yêu cầu chức năng:
+ REQ1: Từ trang chi tiết tour, khách hàng sẽ chọn đặt tour
+ REQ2: Hiển thị trang thông tin đặt tour: gồm có chọn ngày đặt tour, chọnloại khách sạn, nhập số người lớn hoặc trẻ em…
+ REQ3: Hệ thống sẽ hiển thị số tiền cần thanh toán khi khách hàng nhập
số lượng người vào
Trang 30+ REQ4: Khách chọn nút thanh toán chuyển tới trang thanh toán
+ REQ5: Cho khách hàng nhập tài khoản ngân hàng để thanh toán và xácnhận đơn hàng
+ REQ6: Nếu thành công sẽ hiện thông báo và gửi đơn hàng về mail củakhách hàng
II.9.THUÊ XE
- Mô tả chức năng: Khi khách hàng muốn đặt thuê xe ô tô
- Tác nhân: Khách hàng
- Điều kiện: Khách đã đăng nhập thành công
- Mô tả yêu cầu:
+ REQ1: Khi khách hàng bấm vào mục Thuê xe
+ REQ2: Hiển thị trang cho thuê xe với các hình ảnh và giá thuê xe
+ REQ3: Khách hàng chọn xe cần thuê, sẽ hiển thị trang chi tiết về xe.+ REQ4: Khách chọn nút thuê xe, hiển thị trang thanh toán
+ REQ5: Khách nhập ngày thuê xe và ngày trả
+ REQ6: Hệ thống sẽ tính toán số tiền dựa trên số ngày thuê xe và giá 1ngày
+ REQ5: Cho khách hàng nhập tài khoản ngân hàng để thanh toán và xácnhận đơn hàng
+ REQ6: Nếu thành công sẽ hiện thông báo và gửi đơn hàng về mail củakhách hàng
II.10.KHÁCH HÀNG QUẢN LÝ TÀI KHOẢN
- Mô tả chức năng:Chức năng cho phép khách hàng quản lý tài khoản
- Tác nhân: Khách hàng
- Điều kiện: Phải đăng nhập vào tài khoản
- Mô tả yêu cầu:
+ REQ-1: Hiển thị thông tin khách hàng
+ REQ-2: Hiển thị các lựa chọn để khách hàng quản lý tài khoản
+ REQ-3: Thông báo nếu tài khoản thay đổi thành công, ngược lại thôngbáo lỗi
II.11.THAY ĐỔI MẬT KHẨU
- Mô tả chức năng: Chức năng cho phép khách hàng thay đổi mật khẩu
- Tác nhân: Khách hàng
- Điều kiện: Đã đăng nhập tài khoản
- Mô tả yêu cầu:
+ REQ-1: Hiển thị trang thay đổi mật khẩu
+ REQ-2: Khách hàng điền theo đúng hướng dẫn
+ REQ-3: Thông báo thành công Nếu có lỗi xảy ra thông báo thất bại
II.12.HỦY ĐẶT TOUR
- Mô tả chức năng: Khi khách hàng muốn hủy một tour du lịch
- Tác nhân: Khách hàng
- Điều kiện: Đã đặt tour thành công
Trang 31- Mô tả yêu cầu:
+ REQ1: Khách hàng vào trang thông tin đặt hàng của cá nhân, chọn tourcần hủy, bấm hủy
+ REQ2: Hiển thị những thông tin cho khách hàng biết khi hủy:
Trước 1 ngày hoàn trả 75% số tiền
2 ngày 80%
3 ngày 85%
4 ngày 90%
5 ngày 95%
II.13.HỦY THUÊ XE
- Mô tả chức năng: Khi khách hàng muốn hủy việc đặt thuê xe
- Tác nhân: Khách hàng
- Điều kiện: Khách hàng đã thuê xe thành công
- Mô tả yêu cầu:
+ REQ1: Khách hàng vào trang thông tin đặt hàng của cá nhân, chọn thôngtin thuê xe cần hủy, gửi yêu cầu hủy
+ REQ2: Hiển thị những thông tin cho khách hàng biết khi hủy:
Trước 1 ngày hoàn trả 75% số tiền
2 ngày 80%
3 ngày 85%
4 ngày 90%
5 ngày 95%
II.14.QUẢN LÝ TOUR DU LỊCH, QUẢN LÝ LỊCH TRÌNH TOUR
- Mô tả chức năng: Khi quản trị viên muốn thực hiện quản lý tour du lịch củamình như thêm thông tin tour, sửa hoặc xóa một tour nào đó
- Tác nhân: Quản trị viên
- Điều kiện: Đăng nhập thành công với quyền quản trị viên
- Mô tả yêu cầu:
+ REQ1: Quản trị viên chọn quản lý tour, hiển thị trang quản lý tour
+ REQ2: Liệt kê danh sách các tour có trong cơ sở dữ liệu, khi quản trị viênchọn vào một tour sẽ hiện ra thông tin chi tiết của 1 tour, hiển thị list lịchtrình của từng tour
+ REQ3: Có các nút để admin có thể thực hiện thêm mới, sửa hay xóa bỏ…
II.15.QUẢN LÝ XE
- Mô tả chức năng: Khi quản trị viên muốn thực hiện quản lý thông tin của các
xe có trong cơ sở dữ liệu của mình
- Tác nhân: Quản trị viên
- Điều kiện: Đăng nhập thành công với quyền quản trị viên
- Mô tả yêu cầu:
+ REQ1: Quản trị viên chọn quản lý xe ô tô, hiển thị trang quản lý xe chothuê
+ REQ2: Liệt kê danh sách thông tin các xe cho thuê có trong cơ sở dữ liệu
Trang 32+ REQ3: Có các nút để quản trị viên có thể thực hiện thêm mới, sửa hayxóa bỏ…
II.16.XỬ LÝ ĐẶT TOUR
- Mô tả: Chức năng này cho phép quản trị viên hoặc nhân viên xử lý việc đặt tour
- Tác nhân: Quản trị viên, nhân viên
- Điều kiên: Đăng nhập web với quyền nhân viên hoặc quản trị viên
- Mô tả chức năng:
+ REQ-1: Chọn quản lý đặt tour, hiển thị trang quản lý
+ REQ-2: Liệt kê danh sách các tour đã đặt
REQ-3: Có các nút để xử lý trạng thái của việc đặt tour(có 3 trạng tháibooking, updated, removed)
II.17.XỬ LÝ THUÊ XE
- Mô tả: Chức năng này cho phép quản trị viên hoặc nhân viên xử lý việc thuê xe
- Tác nhân: Quản trị viên, nhân viên
- Điều kiên: Đăng nhập web với quyền nhân viên hoặc quản trị viên
- Mô tả chức năng:
+ REQ-1: Chọn quản lý thuê xe, hiển thị trang quản lý
+ REQ-2: Liệt kê danh sách các xe đã thuê
REQ-3: Có các nút để xử lý trạng thái của việc thuê xe(có 3 trạng tháibooking, updated, removed)
II.18.QUẢN LÝ THÔNG TIN CHUYẾN BAY
- Mô tả chức năng: Khi quản trị viên muốn thực hiện quản lý thông tin của cácchuyến bay có trong cơ sở dữ liệu của mình
- Tác nhân: Quản trị viên
- Điều kiện: Đăng nhập thành công với quyền quản trị viên
- Mô tả yêu cầu:
+ REQ1: Quản trị viên chọn quản lý chuyến bay, hiển thị trang quản lýchuyến bay
+ REQ2: Liệt kê danh sách thông tin các chuyến bay có trong cơ sở dữ liệu+ REQ3: Có các nút để quản trị viên có thể thực hiện thêm mới, sửa hay xóabỏ…
- Mô tả chức năng: Khi quản trị viên muốn thực hiện quản lý thông tin củakhách sạn trong cơ sở dữ liệu của mình
- Tác nhân: Quản trị viên
- Điều kiện: Đăng nhập thành công với quyền quản trị viên
- Mô tả yêu cầu:
+ REQ1: Quản trị viên chọn quản lý khách sạn, hiển thị trang quản lý kháchsạn
Trang 33+ REQ2: Liệt kê danh sách thông tin khách sạn có trong cơ sở dữ liệu+ REQ3: Có các nút để admin có thể thực hiện thêm mới, sửa hay xóa bỏ…
II.20.QUẢN LÝ LOẠI KHÁCH SẠN
- Mô tả chức năng: Chức năng cho phép quản trị viên quản lý loại khách sạn
- Tác nhân: Quản trị viên
- Điều kiện: Đăng nhập web với quyền quản trị viên
- Mô tả yêu cầu:
+ REQ-1: Quản trị viên chọn quản lý loại khách sạn, hiển thị trang quản lýloại khách sạn
+ REQ-2: Hiẻn thị trang quản lý loại khách sạn với danh sách loại và cácnút:thêm, sửa, xóa
II.21.QUẢN LÝ TÀI KHOẢN NHÂN VIÊN
- Mô tả chức năng: Chức năng cho phép quản trị viên quản lý tài khoản nhân viên
- Tác nhân: Quản trị viên
- Điều kiện: Đăng nhập web với quyền quản trị viên
- Mô tả yêu cầu:
+ REQ-1: Quản trị viên chọn quản lý tài khoản nhân viên, hiển thị trangquản lý tài khoản nhân viên
+ REQ-2: Liệt kê các tài khoản nhân viên đã tạo, có nút xóa để quản trịviên xóa tài khoản
+ REQ-3: Có chức năng thêm mới để quản trị viên tạo thêm tài khoản chonhân viên
Trang 34III.BIỂU ĐỒ USE-CASE
III.1.BIỂU ĐỒ USE-CASE KHÁCH HÀNG
Hình 10 Use case người dùng
Trang 35III.2.BIỂU ĐỒ USE-CASE QUẢN LÝ
Hình 11 Use case quản trị viên
Trang 36IV.BIỂU ĐỒ TUẦN TỰ
IV.1.KHÁCH HÀNG ĐĂNG KÍ TÀI KHOẢN, KÍCH HOẠT TÀI KHOẢN
IV.2.ĐĂNG NHẬP
Trang 37IV.3.HIỂN THỊ THÔNG TIN TOUR
IV.4.HIỂN THỊ THÔNG TIN XE