1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu công nghệ J2EE xây dựng website quản lý tour du lịch

75 783 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 75
Dung lượng 5,93 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

Tô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 2

Tô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 3

K 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 5

IV.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 6

IV.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 7

X 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 8

Hì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 9

MỞ ĐẦ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 11

CHƯƠ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 12

là 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 15

VI.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 16

VI.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 18

VI.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 20

Hì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 25

Hì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 27

CHƯƠ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 28

II.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 34

III.BIỂU ĐỒ USE-CASE

III.1.BIỂU ĐỒ USE-CASE KHÁCH HÀNG

Hình 10 Use case người dùng

Trang 35

III.2.BIỂU ĐỒ USE-CASE QUẢN LÝ

Hình 11 Use case quản trị viên

Trang 36

IV.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 37

IV.3.HIỂN THỊ THÔNG TIN TOUR

IV.4.HIỂN THỊ THÔNG TIN XE

Ngày đăng: 28/05/2016, 19:13

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[4] Phương Lan (Chủ biên) (2004 ),Java tập 2, NXB Thống kê, Nhà sách Minh Khai Sách, tạp chí
Tiêu đề: ),Java tập 2
Nhà XB: NXB Thống kê
[6] Greq Barish (2001 ),Building Scalable And Hỉght-Performance JavaTM Web Application Using J2EE Technoỉogy, Addison Wesley Sách, tạp chí
Tiêu đề: Greq Barish (2001 "),Building Scalable And Hỉght-Performance JavaTM Web Application Using J2EE Technoỉogy
[7] Budi Kurniawan (2002 ),Java For The Web With Servlet, JSP, And EJB , New Rider Publishing Sách, tạp chí
Tiêu đề: ),Java For The Web With Servlet, JSP, And EJB
[8] Ed Roman, Scott Ambler, Tyler jewell(2002),Mastering Enterprise Java Bean - Second Edition, Wiley & Son, Inc Sách, tạp chí
Tiêu đề: Ed Roman, Scott Ambler, Tyler "jewell(2002),Mastering Enterprise Java Bean - Second Edition
Tác giả: Ed Roman, Scott Ambler, Tyler jewell
Năm: 2002
[9] Ed Roman (1999), Mastering Enterprise JavaBeans and the Java 2 Pỉatform, Enterprise Edition, Wiley & Son, Inc Sách, tạp chí
Tiêu đề: Ed Roman (1999), "Mastering Enterprise JavaBeans and the Java 2 Pỉatform, Enterprise Edition
Tác giả: Ed Roman
Năm: 1999
[11] Jenitfer Ball, Debbie Bode Carson, lan Evans, Kim Haase, Eric Jendrock (2006), The Java EE 5 Tutorial For Sun Java System Application Server Platform Edition 9, http://java.Sun.com/javaee/5/docs/tutorial/doc/ Sách, tạp chí
Tiêu đề: The Java EE 5 Tutorial For Sun Java System Application Server Platform Edition 9
Tác giả: Jenitfer Ball, Debbie Bode Carson, lan Evans, Kim Haase, Eric Jendrock
Năm: 2006

HÌNH ẢNH LIÊN QUAN

Hình . Mô hình EJB - Tìm hiểu công nghệ J2EE xây dựng website quản lý tour du lịch
nh Mô hình EJB (Trang 12)
Hình . Chu trình hoạt động của Stateful bean - Tìm hiểu công nghệ J2EE xây dựng website quản lý tour du lịch
nh Chu trình hoạt động của Stateful bean (Trang 15)
Hình .  Mô hình MVC1 - Tìm hiểu công nghệ J2EE xây dựng website quản lý tour du lịch
nh Mô hình MVC1 (Trang 17)
Hình . Biểu đồ lớp - Tìm hiểu công nghệ J2EE xây dựng website quản lý tour du lịch
nh Biểu đồ lớp (Trang 49)
Bảng . Manager - Tìm hiểu công nghệ J2EE xây dựng website quản lý tour du lịch
ng Manager (Trang 55)
Hình . Trang chủ - Tìm hiểu công nghệ J2EE xây dựng website quản lý tour du lịch
nh Trang chủ (Trang 59)
Hình .Đăng kí - Tìm hiểu công nghệ J2EE xây dựng website quản lý tour du lịch
nh Đăng kí (Trang 60)
Hình . Thông báođã kích hoạt tài khoản. - Tìm hiểu công nghệ J2EE xây dựng website quản lý tour du lịch
nh Thông báođã kích hoạt tài khoản (Trang 61)
Hình . Trang đăng nhập - Tìm hiểu công nghệ J2EE xây dựng website quản lý tour du lịch
nh Trang đăng nhập (Trang 61)
Hình . Chi tiết tour - Tìm hiểu công nghệ J2EE xây dựng website quản lý tour du lịch
nh Chi tiết tour (Trang 63)
Hình . Thông tin chuyến bay - Tìm hiểu công nghệ J2EE xây dựng website quản lý tour du lịch
nh Thông tin chuyến bay (Trang 68)
Hình . Xác nhận hủy tour - Tìm hiểu công nghệ J2EE xây dựng website quản lý tour du lịch
nh Xác nhận hủy tour (Trang 69)
Hình . Trang xử lý thuê xe - Tìm hiểu công nghệ J2EE xây dựng website quản lý tour du lịch
nh Trang xử lý thuê xe (Trang 70)
Hình . Trang quản lý xe - Tìm hiểu công nghệ J2EE xây dựng website quản lý tour du lịch
nh Trang quản lý xe (Trang 71)
Hình . Trang quản lý thông tin khách sạn - Tìm hiểu công nghệ J2EE xây dựng website quản lý tour du lịch
nh Trang quản lý thông tin khách sạn (Trang 72)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w