Phía khách hàng

Một phần của tài liệu HỆ THỐNG QUẢN lý vé đặt THEO mùa PHỤC vụ các sự KIỆN THỂ THAO, văn HOÁ (Trang 56)

Lược đồ use case tổng quát

Đối với hệ thống bán vé theo mùa tổng quát về phía khách hàng những chức năng này được cung cấp bởi actor có tên là Customer (Khách hàng).

Buy season tickets

Use season ticket to get single season ticket

View event information

Renew season tickets Cancel season tickets

Customer

(from A ctors)

Hình 2-11 Lược đồ use case của hệ thống bán vé theo mùa tổng quát về phía khách hàng

Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa

Tên Use Case Giải thích

(1) Buy season tickets Đặt mua vé theo mùa. Chức năng này có đề cập 2.4.1. Đây là quy trình chính của hệ thống

(2) Use season ticket to get single seasont ticket

Dùng vé theo mùa để đặt vé mùa đơn cho chương trình cụ thể. Chức năng này có đề cập 2.4.1.

(3) View event information Xem thông tin của sự kiện.

(4) Renew season tickets Gia hạn vé đặt theo mùa cho mùa sự kiện sau

(5) Cancel season tickets Hủy thông tin vé đặt theo mùa

Bảng 2-11 Mô tả chức năng cho hệ thống bán vé theo mùa tổng quát về phía khách hàng

Lược đồ use case cho hệ thống quản lý vé theo mùa cho sự kiện chiếu phim tại rạp

Các chức năng trừu tượng trên sẽđược cụ thể thành những chức năng dành riêng cho hệ thống bán vé mùa cho phim. Các chức năng này được cung cấp bởi actor cụ thể là khách hàng xem phim (Cinema Customer).

Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa

Cancel season tickets

Renew season tickets

Cinema Customer

Buy Multi-entry season ticket

Buy Reduction season ticket Buy season tickets

Use Multi-entry season ticket to get sing... Use season ticket to get

single season ticket

<<extend>>

<<extend>>

<<extend>>

Hình 2-12 Lược đồ use case của hệ thống bán vé theo mùa cho phim về phía khách hàng

Tên Use Case Giải thích

Nhóm (1): Buy season tickets

Buy Multi-entry season tickets Mua vé mùa nhiều lần vào

Buy Reduction season tickets Mua vé mùa giảm giá

Nhóm (2): Use season ticket to get single seasont ticket

Use Multi-entry season ticket to get single season ticket

Sử dụng vé mùa nhiều lần vào để đặt vé mùa đơn cho một phim cụ thể.

(Nhóm 3): View event information

View event information Xem thông tin của rạp chiếu, phim, suất chiếu, phòng chiếu….

Nhóm (4): Renew season tickets

Renew season tickets Gia hạn vé đặt theo mùa cho mùa sự kiện sau: gồm vé mùa nhiều lần vào và

Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa

vé mùa giảm giá. Trong chức năng này khách hàng phải chọn ngày bắt đầu hiệu lực mới của vé (2.5.2).

Nhóm (5): Cancel season tickets

Cancel season tickets Hủy thông tin vé đặt theo mùa, gồm vé mùa nhiều lần vào và vé mùa giảm giá.

Bảng 2-12 Mô tả chức năng của hệ thống bán vé theo mùa cho phim về phía khách hàng

Lược đồ Use Case cho hệ thống quản lý vé theo mùa cho sự kiện Championship

Các chức năng trừu tượng trên sẽđược cụ thể thành những chức năng dành riêng cho hệ thống bán vé mùa cho Championship. Các chức năng này được cung cấp bởi actor cụ thể là khách hàng của Championship (Championship Customer).

Login for VIP Renew season tickets

Cancel season tickets ChampionShip Customer

Buy Member season ticket Buy season tickets

<<extend>>

Hình 2-13 Lược đồ use case của hệ thống bán vé theo mùa cho Championship về phía khách hàng

Tên Use Case Giải thích

Nhóm (1): Buy season tickets

Buy Member season tickets Mua vé mùa thành viên. Đối với loại vé này, bước 4 trong quy trình phân tích

Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa

chính sẽ có thêm phần chọn khu vực ngồi và số ghế ngồi.

Login VIP Khách mời login vào hệ thống để download vé mời.

Nhóm (2): Use season ticket to get single seasont ticket

X

(Nhóm 3): View event information

View event information Xem thông tin của mùa giải, câu lạc bộ….

Nhóm (4): Renew season tickets

Renew season tickets Gia hạn vé đặt theo mùa cho mùa sự kiện sau: gồm vé mùa thành viên. Trong chức năng này khách hàng KHÔNG CẦN phải chọn ngày bắt đầu hiệu lực mới của vé (2.5.2).

Nhóm (5): Cancel season tickets

Cancel season tickets Hủy thông tin vé đặt theo mùa, gồm vé mùa thành viên.

Bảng 2-13 Bảng mô tả chức năng của hệ thống bán vé theo mùa cho Championship về phía khách hàng

Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa

Chương 3. Tng quan v kiến trúc s dng 3.1 Các k thut s dng

Những kỹ thuật sử dụng để lập trình: JSP/Struts cho front-end.

Java cho back-end. Mô hình MVC.

Proxy pattern cho front-end và Façade cho back-end. Resource bundle.

Công cụ thiết kế và phát triển: Rational Rose.

Eclipse with StrutsStudio 6.3.2. PowerDesigner 9.

Hệ quản trị cơ sở dữ liệu sử dụng: Oracle.

3.2 Kiến trúc

3.2.1 Các mô hình kiến trúc trong ng dng Web

Trước đây, các ứng dụng web sử dụng công nghệ JSP thường thực hiện theo một trong hai kiến trúc: mô hình 1 (model 1) và mô hình 2 (model 2).

Mô hình 1:

Trong kiến trúc này, các trang JSP sẽ có nhiệm vụ xử lý mọi yêu cầu từ phía người dùng (client). Người dùng ởđây có thể là các trình duyệt hoặc các lời gọi từ xa thông qua một giao thức như là XML-RPC hay SOAP. Sau đó, các trang JSP này

Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa

sẽ thực hiện các yêu cầu đó như là kiểm tra dữ liệu nhập, thực hiện truy xuất dữ liệu, định dạng dữ liệu trả về, … bằng cách tạo ra các JavaBean để thực hiện. Cuối cùng, các trang JSP này cũng sẽ chịu trách nhiệm hiển thị kết quả cho phía người dùng. Mô hình này có thểđược biểu diễn thông qua hình sau:

Hình 3-1 Kiến trúc mô hình 1

Giải thích:

1) Yêu cầu từ phía người dùng cuối từ trình duyệt tới trang JSP để xử lý.

2) Trang JSP sẽ thực hiện kiểm tra dữ liệu nhâp, kiểm tra ràng buộc bằng cách tạo ra các JavaBean. Trang JSP đồng thời cũng thực hiện chuyển hướng (forward) tới cho trang JSP đích.

3) Các lớp Java này sẽ thực hiện việc truy xuất CSDL và nhận kết quả trả về cho trang JSP.

4) Đối tượng response được trả về cho trình duyệt để hiển thị.

Khuyết điểm của mô hình này đó là các trang JSP phải làm mọi công việc từ nhận yêu cầu đến xử lý yêu cầu rồi hiển thị kết quả. Xây dựng bằng cách này sẽ không thể thực hiện được mục tiêu dễ bảo trì, tái sử dụng và mở rộng – Một yêu cầu tất yếu đối với việc xây dựng phần mềm hướng đối tượng. Do đó mô hình này không còn được sử dụng trong các ứng dụng thực tế.

Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa

Mô hình 2:

Trong mô hình 2, vấn đềđã được giải quyết. Trong mô hình này, các yêu cầu từ phía người dùng sẽ không còn được gởi trực tiếp xuống cho các trang JSP để xử lý mà thay vào đó, các lớp java sẽ thực hiện nhận yêu cầu từ phía người dùng, tạo ra các JavaBean khác để thực hiện các yêu cầu (như kiểm tra dữ liệu, ràng buộc, truy xuất CSDL, …). Cuối cùng, các lớp java này sẽ chuyển kết quả về cho các trang JSP. Công nghệ này được gọi là công nghệ Servlet.

Với công nghệ này, việc phân chia trách nhiệm được thực hiện một cách rõ ràng. Các trang JSP sẽ hiển thị kết quả cho người dùng, các lớp java – còn được gọi là các controller servlet – sẽ nhận yêu cầu từ người dùng và tạo ra các JavaBean xử lý các yêu cầu đó. Các lớp JavaBean này tới lượt nó sẽ xử lý các yêu cầu, thực hiện các thao tác đọc/ghi dữ liệu và trả kết quả cho controller servlet. Controller servlet sẽ nhận kết quả và chuyển về cho trang JSP để hiển thị. Hình 3-2 mô tả kiến trúc này:

Hình 3-2 Kiến trúc mô hình 2

Giải thích:

1) Yêu cầu từ phía người dùng cuối từ browser tới. Controller servlet sẽ nhận yêu cầu

2) Controller servlet sẽ thực hiện kiểm tra dữ liệu nhâp, kiểm tra ràng buộc và chuyển đổi định dạng bằng cách tạo ra các JavaBean. Các lớp này sẽ thực hiện việc đọc/ghi dữ liệu.

Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa

3) Controller servlet xác định trang JSP nào là trang JSP đích chứa thông tin kết quả.

4) Các JavaBean sau khi nhận kết quả sẽ chuyển sang cho trang JSP để hiển thị. 5) Đối tượng response được trả về cho trình duyệt để hiển thị.

Vì mô hình này phân chia trách nhiệm cho các đối tượng một cách rõ ràng nên nó đã khắc phục được các khuyết điểm của mô hình 1. Các mô hình mới sau này cũng được phát triển theo hướng này.

3.2.2 Kiến trúc theo mu MVC

Giới thiệu

Như đã trình bày ở phần trước, mô hình 2 đã phân chia được trách nhiệm một cách rõ ràng cho các đối tượng khác nhau trong ứng dụng web sử dụng công nghệ JSP. Mô hình này đã tuân theo một mẫu thiết kế (pattern) là Model-View-Controller (gọi tắt là MVC). Một sốưu điểm và thuận lợi khi sử dụng mô hình này:

• Các thành phần xử lý nghiệp vụ và thành phần hiển thị (giao diện) được tách rời, cho phép hệ thống có thể thay đổi giao diện một cách dễ dàng mà không làm ảnh hưởng tới việc xử lý nghiệp vụ bên dưới.

• Khả năng tái sử dụng và mở rộng cao nhờ sự tách biệt đó, cho phép có thể có nhiều kiểu ứng dụng khác nhau (ví dụ nhưứng dụng web, desktop hay là các ứng dụng dành cho các loại máy xách tay, máy sử dụng công nghệ không dây, …) sử dụng cùng một thành phần xử lý nghiệp vụ. • Thời gian phát triển hệ thống cũng được rút ngắn khi công việc thiết kế giao diện và thực hiện xử lý nghiệp vụđược phân chia rõ ràng.

Các thành phần:

Mẫu thiết kế MVC là một mẫu thiết kế chung và không phải chỉ sử dụng cho các ứng dụng web. Các ứng dụng sử dụng mẫu này sẽ được chia thành 3 thành phần chính:

Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa

- Model

Thực hiện công việc xử lý yêu cầu từ View thông qua Controller. Các yêu cầu sẽ được xử lý bao gồm kiểm tra dữ liệu nhập một lần nữa (một phần đã được thực hiện trong Controller), kiểm tra ràng buộc toàn vẹn và thực hiện các thao tác đọc/ghi dữ liệu. Sau đó kết quảđược gởi về cho View cũng thông qua Controller. Model cũng có nhiệm vụ thông báo tình trạng hiện thời của mình cho View biết để cập nhật lại cách thức hiển thị. Các đối tượng dữ liệu dùng để chứa kết quả trả về hoặc tình trạng hiện thời của Model được gọi là các đối tượng truyền dữ liệu (data transfer object – DTO)

hay là các đối tượng chứa giá trị (value object) - View

Việc hiển thị dữ liệu cung cấp từ Model được thực hiện trong thành phần này. Khi View nhận được thông báo (notify message) từ phía Model, nó sẽ phải cập nhật lại cách thực hiển thị.

- Controller

Chịu trách nhiệm nhận yêu cầu từ người dùng và chuyển yêu cầu đó cho Model xử lý. Controller này cũng sẽ thực hiện một số thao tác kiểm tra dữ liệu nhập trước khi chuyển dữ liệu và yêu cầu xuống cho Model.

MVC và ứng dụng Web

Tuy nhiên, mẫu thiết kế MVC nguyên thuỷ không thể áp dụng hoàn toàn cho các ứng dụng web vì các ứng dụng web không duy trì một kết nối thường trực xuống các đối tượng trong thành phần Model. Do đó, việc thông báo trạng thái hiện hành giữa các đối tượng trong Model và View không thể thực hiện được một cách dễ dàng.

Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa

Trong các ứng dụng web sử dụng công nghệ JSP và Java, các thành phần của mẫu thiết kế MVC được phân chia như sau:

Thành phần Model : sẽ chứa các đối tượng dùng để thực hiện xử lý yêu cầu. Các đối tượng này có thể là các JavaBean có các chức năng kết nối với CSDL thông qua JDBC hoặc là các đối tượng Java phức tạp theo công nghệ EJB, …

Thành phần View : sẽ là các trang JSP và HTML. Các trang HTML sẽ chứa các dữ liệu tĩnh còn JSP thì chứa dữ liệu động. JavaScript cũng có thể được sử dụng.

Thành phần Controller : sẽ là các controller servlet có nhiệm vụ nhận yêu cầu và chuyển tiếp xuống cho Model sau khi đã thực hiện một số thao tác kiểm tra và định dang dữ liệu cho phù hợp với định dạng dữ liệu từ phía Model. Sau đó, nó sẽ quyết định trang JSP nào sẽđược hiển thị kế tiếp. Ngoài ra, nhằm giảm chi phí bảo trì, tăng khả năng tái sử dụng, khả năng mở rộng của các ứng dụng web, các mẫu thiết kế khác cũng được sử dụng kết hợp với MVC. Lựa chọn mẫu nào đểđáp ứng được yêu cầu của ứng dụng bán vé theo mùa? Điều này sẽđược chúng tôi giới thiệu rõ hơn trong Chương 4.

3.2.3 Gii thiu v Strut Framework

Tổng quan:

Struts là một framework mã nguồn mởđược tài trở bởi tổ chức Apache Software Foundation (http://jakarta.apache.org/struts/) . Struts được thiết kế dành cho các ứng dụng web sử dụng công nghệ JSP và Java. Dựa trên các công nghệ chuẩn như servlet, JavaBean, XML và ResourceBundle, Struts cung cấp các thành phần cần thiết và đầy đủ cho việc xây dựng các ứng dụng web chuyên nghiệp trên qui mô lớn ứng dụng mô hình 2 (trình bày trong phần trước) và áp dụng mẫu thiết kế MVC.

Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa

Mục tiêu chính của một framework là xây dựng một khung sườn chính cho các ứng dụng. Các ứng dụng sau đó chỉ cần dựa trên nền tảng này và xây dựng tiếp các thành phần khác. Với việc sử dụng framework, các nhà phát triển sẽ tiết kiệm được rất nhiều thời gian và chi phí để phát triển các ứng dụng khi chúng sử dụng chung 1 framework. Các thành phần trong framework sẽđược đóng gói hoàn chỉnh và được tái sử dụng lại nhằm giảm thời gian đóng gói cho ứng dụng dựa trên nền tảng này đồng thời làm giảm chi phí triển khai ứng dụng. Struts cũng hướng đến mục tiêu đó. Các thành phần, các gói (package) trong Struts tạo nên một bộ khung cho các ứng dụng web sử dụng công nghệ servlet (Struts dựa trên nền tảng chính là servlet). Các ứng dụng web sử dụng Struts vì thế sẽ được phát triển nhanh hơn và tốn ít chi phí hơn.

Strut và mẫu thiết kế MVC

Struts áp dụng mẫu thiết kế MVC trong việc xây dựng framework. Nhưđã nói ở phần trước, việc sử dụng mẫu thiết kế MVC giúp cho việc phát triển hệ thống được thực hiện nhanh hơn, ít tốn chi phí cài đặt, triển khai và bảo trì đồng thời làm tăng tính tái sử dụng, dễ mở rộng và dễ mang chuyển. Struts áp dụng mẫu này cũng với mục tiêu giúp cho việc phát triển ứng dụng web nhanh hơn và ít tốn kém hơn.

Tóm lại:

Struts là một framework mạnh mẽ hỗ trợ đắc lực cho các nhà phát triển trong việc xây dựng các ứng dụng web chuyên nghiệp với qui mô vừa và lớn. Struts xây dựng các taglib cho việc hiển thị nội dung và dữ liệu động lên các trang JSP nhằm giúp tránh việc nhúng mã JSP vào trong mã HTML. Các lớp ActionForm, Action, ActionForward … đóng vai trò là các controller servlet thực hiện việc tiếp nhận yêu cầu và chuyển yêu cầu cho thành phần Model xử lý. Ngoài ra, Struts cũng hỗ trợ rất nhiều các công nghệ truy cập dữ liệu như JDBC, EJB, … Ứng dụng Struts trong việc xây dựng ứng dụng web sẽ giúp cho việc phát triển nhanh hơn, ít tốn kém hơn, đảm bảo tính tái sử dụng, dễ mở rộng và dễ bảo trì.

Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa

Chương 4. Mô hình thiết kế tng quát 4.1 Kiến trúc h thng

4.1.1 ng dng mu thiết kế vào kiến trúc ca Strut

Một phần của tài liệu HỆ THỐNG QUẢN lý vé đặt THEO mùa PHỤC vụ các sự KIỆN THỂ THAO, văn HOÁ (Trang 56)