TRƯỜNG ĐẠI HỌC VINH
KHOA CƠNG NGHỆ THƠNG TIN
Vịnh CHU QUANG PHAI
Trang 2TRƯỜNG ĐẠI HỌC VINH KHOA CƠNG NGHỆ THƠNG TIN
Y
ĐỒ ÁN TĨT NGHIỆP ĐẠI HỌC
Tên đỀ tài:
PHÁT TRIÊN ỨNG DỤNG QUẢN LÝ THƠNG TIN ĐỊA CHÍNH
Trang 3LOI CAM ON
Trước tiên, em xin gửi lời cảm ơn và lịng biết ơn sâu sắc đến TS Nguyễn Trung Hịa, người đã tận tình hướng dẫn em trong suốt quá trình thực hiện đồ án tốt nghiệp này
Em xin gửi lời cám ơn đến các thầy cơ giáo đã giảng dạy em trong những năm học qua, đã cho em nhiều kiến thức quý báu để em vững bước trên con đường tương lai của mình
Tơi xin gửi lời cảm ơn tới các bạn trong lớp 49K — CNTT, đã ủng hộ và giúp đỡ tơi trong suốt quá trình học tập tại trường
Và cuối cùng con xin bày tỏ niềm biết ơn vơ hạn tới bố mẹ, anh chị đã luơn luơn bên cạnh, động viên con trong suốt quá trình học tập
Vinh, ngày 10 thắng 12 năm 2012 Sinh viên
Đồn Văn Điệp
Trang 4LỜI MỞ ĐẦU
Ngày nay, mạng Internet là một trong những sản phẩm cĩ giá trị hết sức lớn lao và ngày càng trở nên một cơng cụ khơng thể thiếu, là nền tảng chính cho sự truyền tái, trao đối thơng tin trên tồn cầu Giờ đây, mọi việc liên quan đến thơng tin đã trở nên dễ dàng cho người sử dụng, chỉ cần một máy tính cĩ kết nối Internet và một đường truyền dữ liệu tốt thì gần như mọi thứ mà bạn quan tâm sẽ hiện ra Việc quản lý các hệ thống theo đĩ cũng được ứng dụng vào Internet Việc cài đặt phần mềm trên trên máy
tính cục bộ giờ đây đã đem lại nhiều bất cat về dữ liệu, sự thống nhất dữ liệu và tính
tiện lợi khi sử dụng là một khĩ khăn cho việc các phần mềm quản lý trên máy tính cục
bộ Do đĩ, các hệ thống quản lý cĩ dữ liệu lớn, nhiều người tham gia dần dần được
người ta đưa vào ứng dụng Web, và việc quản lý các yêu cầu về cơ sở vật chất trong trường đại học cũng khơng ngoại lệ
Khuơn viên trường đại học là tổ hợp nhiều cơ sở vật chất ở trong đĩ như: phịng học, phịng thực hành, phịng thí nghiệm, phịng thể dục dụng cụ, căng tin, ký túc
xá, Bên trong các cơ sở đĩ là các thiết bị kỹ thuật như máy tính, bàn ghế, dụng cụ
thí nghiệm Ngồi ra trong trường đại học cịn cĩ các hoạt động học tập, nghiên cứu và xã hội khác như: tọa đàm, mít tỉnh, các buổi lao động vệ sinh, hoạt động từ thiện, thể dục thể thao, văn nghệ Để phục vụ cho các cơng việc trên thì các cơ sở vật chất, thiết bị kỹ thuật cần phải được chuẩn bị để sẵn sàng sử dụng Việc quản lý các cơ sở
vật chất đĩ cĩ nhiều thành phần tham gia như bảo vệ, người hướng dẫn phịng thí
nghiệm, người phục vụ phịng máy, tổng đồn, hội Sự kết hợp giữa các thành viên đĩ
sẽ đem lại kết quả cao cho cơng việc Tuy nhiên với khuơn viên rộng lớn của trường
đại học, và cĩ nhiều người cùng tham gia quản lý nên trong thực tế việc tương tác giữa
các thành viên thường gặp khĩ khăn, khơng nhất quán và mắt nhiều thời gian Như vậy
vân đề đặt ra là làm sao đề quản lý được các tương tác giữa các thành viên khi cĩ yêu
cầu về kỹ thuật, dịch vụ để tận dụng được nguồn lực, vật chất, và tiết kiệm thời gian
Trang 5Từ nhu cầu thực tế đĩ, là một sinh viên khoa Cơng nghệ thơng tin, em quyết định chọn đề tài “Quản lý yêu cẩu về dịch vụ thiết bị kỹ thuật trong trường đại học sứ dụng Struis 2° để cĩ thê đáp ứng được nhu cầu thực tế trên
Đồ án gồm những phan sau:
> Chương l1: Cơng nghệ Struts 2 > Chương 2: Phân tích hệ thơng
> Chương 3: Xây dựng cơ sở đữ liệu và giao diện > Chương 4: KếI luận Cơng cụ hỗ trợ - Java JDK 1.7 Struts 2 Framework - Hé quan tri co so dir ligu MS SQL 2005 - Server Tomcat 7.0
- IDE Eclipse Juno
Trong thời gian làm đồ án, tuy đã cố gắng hết mình tìm hiểu, phân tích thiết kế hệ thống, nhưng do kiến thức hạn hẹp, thời gian ngắn nên vẫn khơng tránh những sai sĩt mặc phải, mong các thầy cơ thơng cảm cho em Nhân đây em cũng xin chân thành cám ơn thầy giáo 7S Nguyễn Trung Hịa đã tận tình hướng dẫn giúp đỡ em hồn thành đồ án này Em cũng xin được bày tỏ lịng biết ơn đối với các thầy cơ và bạn bè trong khoa Cơng Nghệ Thơng tin đã luơn giúp đỡ động viên em trong suốt thời gian qua Cuối cùng em xin kính chúc các thầy cơ giao sức khỏe và hạnh phúc!
Trang 6MỤC LỤC LỜI CÁM ƠN LỜI MỞ ĐẦU CHUONG 1: CONG NGHE STRUTS 2 1.1 Giới thiệu 1.2 Servlet/JSP 1.3 Struts 1.3.1 Kiến trúc 3 tang MVC
1.3.2 Các thành phần cơ bản của Struts 1.3.3 Các phiên bản của Struts
1.3.4 Struts 2
CHUONG 2: PHAN TICH HE THONG 2.1 Phân tích yêu cầu
2.2 Biểu đồ phân cấp chức năng
2.2.1 Biểu đồ mức chức năng
2.2.2 Mơ tả chỉ tiết các chức năng lá
2.3 Biểu đồ luồng dữ liệu 2.3.1 Mức ngữ cảnh 2.3.2 Mức I 2.3.3 Mức 2 2.3.4 Mức 3 2.4 Mơ hình E-R 2.4.1 Xác định các thực thị
2.4.2 Sơ đồ liên kết thực thé ang chuan 3
CHUONG 3: XAY DUNG CO SO DU LIEU VA GIAO DIEN 3.1 Thiết kế cơ sở đữ liệu vật lý 3.1.1 Bảng dữ liệu 28
3.1.2 Biêu đơ quan hệ thực thê 30
3.2 Thiết kế giao diện
3.2.1 Đăng nhập
3.2.2 Đồi mật khâu 3.2.3 Danh sách yêu cầu
Trang 74.2 Hạn chế : 4.3 Hướng phát triên " 0800/2766 .804./(0 nh h< 39 CHƯƠNG 1: CONG NGHE STRUTS 2 1.1 Giới thiệu
Java là một nền tảng phát triển các ứng dụng phần mềm cĩ vị trí rất lớn trong
những năm cuối thế kỉ 20, đầu thế kỉ 21 Đánh dấu sự trưởng thành của mơ hình lập
trình hướng đối tượng, nĩ được coi là một nền tảng mang tính cách mạng trong nghành phần mềm Mơ hình máy ảo Virtual Machineđã cho phép các ứng dụng viết
bằng Java cĩ thể chạy trên nhiều hệ điều hành khác nhau Vì thế Java là ngơn ngữ vẫn
được rất nhiều các nhà thiết kế lựa chọn làm ngơn ngữ phát triển chính cho hệ thống của mình
1.2 Serolet/JSP
Servlet/JSP là một bộ phận của cơng nghệ J2EE (Java 2 Platform, Enterprise Edition) phiên bản của Java chạy trên các máy chủ ứng dụng
Servlet:
Servlet API duoc phat triển dựa trên những điểm mạnh của Java platform nhằm giải quyết vấn đề của CGI và trình chủ server API Nĩ là một API đơn giản hỗ trợ tat cả các Web servervà thậm chí các ứng dụng máy chủ dùng để kiểm tra và quản lý các cơng việc trên server (load —balancing) No giải quyết van dé thực thi bằng việc thực
hiện tất cả các yêu cầu như những dịngtrong một xử lý, hoặc trên một hệ thống load-
balancing sẽ là mỗi xử lý trên một server trong kết chùm cluster Các servlet dễ dàng chia sẽ tài nguyên Bạn cĩ thể sử dụng JavaMail để đọc và gửi mail, Java DataBase Connect (IDBC) để truy cập các database, lớp File và những lớp quan hệ đề truy cập hệ thống file, RMI, CORBA, Enterprise Java Beans (EJB) để truy cập các hệ
thống kế thừa
JSP:
Viết tắt của tiếng Anh Java Server Pages cịn được biết đến với một cái tên khác là Java Scripting Preprocessor — t ạm dịch là “Bộ tiền xử lý văn lệnh Java” Là một cơng nghệ Java cho phép các nhà phát triển tạo nội dung HTML, XML hay một số định dạng khác của trang web một cách năng động, trong khi hồi âm yêu cầu của trình
Trang 8duyệt phía client Cơng nghệ này cho phép người ta nhúng mã Java và một số hành động xử lý đã được định trước (pre-defined actions) vào trong nội dung tĩnh của trang Trước khi hiển thị ra trình duyệt, tập tin JSP phải được biên dịch thành Servlet, dùng
bộ biên dịch JSP(JSP compiler) Bộ biên địch JSP cĩ thể tạo servlet thành mã nguồn
Java trước, rồi biên dịch mã nguồn ra tập tin class dùng bộ biên dịch Java, hoặc cĩ thể trực tiếp tạo mã bytecode cho servlet tir trang JSP
Câu hỏi đặt ra là: Mơ hình JSP/Servlet cĩ đủ khả đáp ứng được yêu cầu của hệ thống hay khơng? Em đã tìm hiểu và đưa ra một số những nhược điểm của nĩ khiến nĩ khơng được ứng dụng trong việc xây dựng các hệ thống lớn:
-_ Kiến trúc của JSP/servlet khá đơn giản, việc gộp các action (các hàm xử lý thơng
tin) là điều rất khơng nên Bởi khi thiết kế hệ thống, các module của chương trình
cần phải được sắp xếp hợp lý, các action được chỉnh sửa mà khơng ảnh hưởng tới
giao diện hiển thị
-_ Ngồi ra, việc phân chia các thành phần hợp lý dựa theo mẫu thiết kế chuẩn của một hệ thống được người dùng đánh giá rất cao Sau khi hồn thiện, nếu bản thân người dùng muốn phát triển tiếp ứng dụng của mình, họ cần cĩ một hướng dẫn chỉ tiết cách sửa các thành phần trong các gĩi (package) Trong quá trình thiết kế một hệ
thống lớn, yêu cầu phải địi hỏi làm việc theo nhĩm, để quá trình phân cơng cơng
việc hợp lý, việc phân tách các thành phần của hệ thống là cần thiết Nếu khơng,
quá trình làm việc sẽ thường xuyên bị gián đoạn
Cơng nghệ Struts đã thành cơng trong việc tối ưu các khuyết điểm vốn cĩ của JSP/Servlet Tính năng của nĩ sẽ được để cập nhiều hơn qua nội dung sẽ trình bày sắp
tới
1.3 Struts
Struts la mot framework phuc vụ việc phat triển các ứng dụng Web trên Java Sử dụng mẫu thiết kế Model-View-Controller (MVC), Struts giải quyết rất nhiều các vấn dé liên quan đến các ứng dụng Web hướng business địi hỏi hiệu năng cao sử dụng Java Servlet va JSP Ung dụng chạy trực tiếp trên JSP/Servlet chưa đáp ứng hết được
yêu cầu bảo mật và chuyên nghiệp cho một hệ thống lớn Struts cơ bản định hình lại
cách các lập trình viên website nghĩ về và cầu trúc một ứng dụng Web
Trang 91.3.1 Kiến trúc 3 tầng MVC request HTTP CU, ete response Controller HTML, RSS, XML, JSON, ete
demand red data +
Hình 1: Kién tric 3 tang MVC
View
Templates, layout
Kiến trúc MVC là việc chia tất cả mục của một ứng dụng ra làm ba thành phần khác nhau Model(Mơ hình), View(Giao điện) và Controller(Bộ điều khiển) Các thành phần của kiến trúc MVC cĩ một trách nhiệm duy nhất và khơng phụ thuộc vào các
thành phần khác
-_Model(Mơ hình): Model được giao nhiệm vụ cung cấp di liệu cho cơ sở dữ liệu và lưu dữ liệu vào các kho chứa đữ liệu Tất cả các nghiệp vụ logic được thực thi ở Model Dữ liệu vào từ người dùng sẽ thơng qua View được kiểm tra ở Model trước
khi lưu vào cơ sở dữ liệu Việc truy xuất, xác nhận, và lưu dữ liệu là một phần của
Model
- View(Giao dién): View hién thị các thơng tin cho người dùng của ứng dụng và được giao nhiệm vụ cho việc nhận các dữ liệu vào từ người dùng, gửi đi các yêu
cầu đến bộ điều khiến, sau đĩ là nhận lại các phản hồi từ bộ điều khiển và hiển kết quả
Trang 10cho người dùng Các trang HTML, JSP, các thư viện thẻ và các file nguồn là một phần của thành phần View
- Controller(bộ điều khiển): Controller là tầng trung gian giữa Model và View Controller được giao nhiệm vụ nhận các yêu cầu từ phía máy khách Một yêu cầu được nhận từ máy khách được thực hiện bởi một chức năng logic thích hợp từ thành phần Model và sau đĩ sinh ra các kết quả cho người dùng và được thành phần View hiển thị ActionServlet, Action, ActionForm va struts-config.xml là các phần của Controller
1.3.2 Cac thanh phan co ban cua Struts
Struts là tập hợpcác thư viện Java cĩ thể phân thành 4 nhĩm : - Framework co so - Thu viện thẻ JSP - Tiles Plugin - Validator plugin = Framework co sở
Framework cơ sở cung cấp các tính năng MVC cốt lõi Nén tang cua framework
cơ sở là Controller servlet: Action servlet Các phần cịn lại bao gồm các lớp cơ sở mà
ứng dụng của bạn sẽ kế thừa và các class tiện ích
Nỗi bật nhất trong các lớp là lớp Action và lớp ActionForm:
-_ Lớp Action: được sử dụng bởi ActionServlet để xử lý các request xác định
- Lop ActionForm: bắtdữ liệu từ các HTML form và được sử dụng để chuyền dữ
liệu trở lại View đê sinh ra các trả lời (response) " Thu vién thé JSP:
Struts đưa ra các thư viện thẻ hỗ trợ việc lap trinh View Logic trong JSP.Cac thư viện thẻ JSP cho phép người lập trình JSP sử dụng các thẻ giơng HTML
= Tiles Plugin
Tiles là một JSP template framework giúp thuận tiện cho việc tái sử dụng mã HTML
" Validator plugin
Validator 1a mot framework v6i kha năng thực hiện xác nhận tính hợp lệ của dữ liệu ở cả phía server và client
Trang 111.3.3 Các phién ban cua Struts
Hiện nay struts đã phát triển 2 phiên ban 1a struts 1x va struts 2x Cĩ một số khác biệt trong cấu trúc của 2 phiên bản Dưới đây là một số khác biệt cơ bản: Tính năng Struts 1 Struts 2 Action classes -Sử dụng lớp abstract (lớp -Action cĩ thể là bất kỳ thuộc servlet)
(Lớp hoạt trừu tượng), khơng sir | lop Java nào
động) dụng interface (lớp giao -Cung cấp sẵn | interface diện) chung cho các action là
-Action yêu cầu bắt buộc | ActonSupport, tuy nhiên
phải kế thừa từ một lớp _ | khơng bắt buộc thực thi
abstract nào đĩ action này
Threading Cac Action là độc nhất vì | Trong Struts 2 các đối
Model thế chúng phải được | tượng được khởi tạo cho (Mơ hình thread-safe bai vi chico | mỗi request do đĩ khơng
lu ồng) một thể hiện của lớp để |SỐ — thread-saietyMột
giữ lại tất cả request đối serviet container sinh ra với Action do nhiêu đơi tượng throw-
away cho mơi request Servlet Actions bi phu thudc vào | HttpServletResponse cho Dependency thư viện servlet API boi | phuong thức execute (Phần phụ vì HttpServletRequest và | Struts 2 khơng phụ thuộc HttpServletResponse được Action chỉ là một lớp bình thường và chúng ta khơng cần truyền đối tượng HttpServletRequest và truyền vào phương
thức execute khi Action
được thực thi
Trang 12
(Khả năng kiêm vân đê chính trong việc khởi tạo Action.Các
tra) testing bởi vì phương | AcHon là một POJO đơn
thức execute phụ thuộc | giản và khơng phụ thuộc
vao Servlet API Struts framework,vi thé viéc test TestCase cung cấp một trở lên đơn giản hơn
tập hợp các đối tượng Mock cho Struts 1
Harvesting Struts] str dung mot đối Struts2 sử dụng các thuộc Input tượng ActionForm để giữ | tinh Action dé giới han sự (Kết qua dau các inputGiống nhưcác | can thiết cho các đơi
vào) Action, tat ca cdc tượng input thir 2 Tir do
ActionForms cân được thừa kế lớp ActionForm co ban giảm sự dư thừa Binding values into views (Rang buộc giá trị trong việc
Struts 1 ràng buộc đối tượng bên trong ngữ cảnh của trang bằng cách sử dụng cơ chế JSP chuẩn
Struts 2 sử dung cơng
nghé ValueStack dé dam
bảo việc truy c ập giá trị
bằng taglib khơng thơng qua coupling (kết nối)
hiền th) hoặc rendering (biểu
diễn)
Type Trong Struts I các thuộc | Struts 2 sử dụng OGNL
Conversion tính của ActionForm hau | đối với việc chuyển kiểu
(Thay đổi kiểu) hế định dạng là | đữliệu
String Việc chuyển đổi dựa trên từng lớp, khơng được cấu hình dựa trên thê hiện của lớp
Control Of Mỗi module trong Struts | Trong Struts 2 các vịng Action 1 cĩ sự tách rời Request | đời khác nhau được tạo ra
Execution Processors (vịng đời), | dựa trên nền tảng Action
trong khi tat ca các thơng qua ngănxếp chặn
Trang 13
(Kiêm sốt thực Action trong module cân | (Interceptor Stacks) Các
thi) phải chia sẻ cùng vịng — | Stack tùy biến được tạo ra
đời và sử dụng với Action khác nhau
Sự khác nhau như trên, với những ưu diém cua Struts 2 so với Struts 1 1am Struts 2 trở thành cơng cụ hữu ích cho các nhà thiết kế phần mềm Web hiện tại và tương lai 1.3.4 Struts 2 “_ Vịng đời của các yêu cầu trong Struts 2: /webapp/user action : Action Result Interceptors
Hình 2: Vịng đời của các yêu cau trong Struts 2
Người sử dụng gửi yêu cầu đến server để yêu cầu một số tài nguyên của ứng dụng - Bộ điều khiển lọc(FilterDispatcher) xem xét yêu cầu và sau đĩ xác định một Action thích hợp
-_ Các bộ chặn (Interceptors) được ứng dụng: các cấu hình bộ chặn áp dụng cho các chức năng chung như: luồng cơng việc, thấm định, tải file được tự động ứng dụng vào yêu cầu
Thực thi Action: sau khi phương thức action được thực thi dé thực hiện các
hoạt động liên quan đến cơ sở đữ liệu như sắp xếp hoặc nhận dữ liệu từ cơ sở đữ liệu
-_ Sinh kết qua
- Sau đĩ kết quả yêu cầu được trả về thơng qua bộ chặn theo chiều ngược lại Kết quả trả về cho phép chúng ta thực hiện thu dọn hoặc thêm quá trình xử ly
- Hién thi kết quả cho người sử đụng: Việc điều khiển cuối cùng được trả về cho trình chứa servlet, nĩ sẽ gửi kết quả trả về cho trình duyệt của người sử dụng
Trang 14" Kién tric Struts 2: Struts 2 Architecture ActionContextCleanUp Other Filters (SiteMesh, etc) FilterDispatcher HttpServietResponse
O servet Fitters (CD) struts Core (D) interceptors (D) User Created
Hinh 3: Kién tric Struts 2
- Action ContextCleanUp filter: La mét thy chon va nĩ được sử dụng khi tích hợp với các cơng nghệ khác như SiteMash Plugin
- FilterDispatcher: Khi FilterDispatcher (bộ điều khiển lọc) được gọi, nĩ quay lại sử dụng ActionMapper để xác định Action nào được triệu gol Néu action được yêu cầu được triệu gọi thì FilterDispatcher ủy nhiệm việc điều khiển lại cho ActionProxy - ActionProxy: ActionProxy nhận sự giúp đỡ từ bộ quản lý cấu hình file (Configuration Files manager), được khởi tạo từ file strufs.xml Sau đĩ ActionProxy tạo ra một ActionInvocation, thực thi từ mẫu lệnh ActionInvocation xử lý triệu gọi bộ chặn (Interceptors) nếu nĩ được cấu hình và sau đĩ triệu goi Action ActionInvocation
Trang 15tìm kiếm kết quả thích hợp, sau đĩ kết quả được thực thi, nĩ triệu gọi việc sinh ra trang các JSP hoặc các mẫu Sau đĩ, các Interceptor được thực thi một lần nữa theo thứ tự ngược lại Việc trả về kết quả cuối cùng thơng qua các bộ lọc được cấu hình
trong file web.xml Néu bộ lọc ActionContextCleanUp được cấuhình, thì FilterDispatcher khơng dọn dep ThreadLocal ActionContext Néu bộ lọc ActionContextCleanUp khơng cĩ
thì FilterDispatcher sẽ dọn dẹp tất cả các ThreadLocal tồn tại
"_ Các thành phân chính yếu và thường dùng cua Struts 2 Framework - FilterDispatcher FilterDispatcher được mapping tring file web.xml nhu sau: <filter> <filter-name>struts2</filter-name> <filter- class>org.apache.struts2.dispatcher.FilterDispatcher</ servlet-class> </filter> <filter-mapping> <filter-name>struts2</servlet-name> <url-pattern>/*</url-pattern> </filter-mapping>
- Action Class hay ActionSupport Class
Chứa đựng các thuộc tính mapping trên form và các thành phần xử lý của object (business logic) và phương thức chỉ định thực thi
Struts 2 Framework cung cấp cơ chế tự động mapping các tham số trong request trong form đến các thuộc tính trong Action với các thuộc tính cùng tên và cĩ phương thức setXxx
Trong quá trình mapping, Struts 2 Framework sử dụng OGNL thay thế EL để ép
kiểu tự động từ form đến kiểu đữ liệu của Action property Do vậy, khơng nhất thiết
lúc nào cũng khai báo kiểu dữ liệu là String và thực hiện ép kiểu bằng tay
- Struts Config (struts.xml)
<struts>
[<include £file=“xml File”/>]
<package name="default” namespace="/"
extends=“struts-default“ [method=“method_name“]>
Trang 16<action name="action Name” class="package.className”> <result name="stringValue”>/pageView</result> </action> </package> </struts> Trong do:
- package: nhom thơng tin cầu hình của những thành phần cĩ chung thuộc tính name: xác định tên của của package
namespace: phân biệt giữa các package khác tránh xung đột giữa các action với nhau
extends: xac dinh class cha tuong tự như khái niệm kế thừa abstract: bằng true nếu là lớp kế thừa
- action: anh xạ một action với một class action name: xác định tên action
class: xác định java class để xử lý action
method: xác định phương thức được gọi khi request được chuyến tới Nếu tham số này khơng tồn tại thì phương thức execute mặc định được tìm kiếm và thực thi
- result: xc dinh tén result hay page kết xuất của một action
name: xác định tén result Néu khơng cĩ thì mac dinh 1a success
type: xác dinh loai result Nếu khơng cĩ thì mặc định là FilterDispatcher thực hiện forward đến trang kết quả
-_ Cơ chế hoạt động cúa Struts 2 Framework
Struts 2 Framework hoạt động tương tự như mơ hình MVC của Struts | Framework nhưng điểm khác biệt đĩ là pull-framework, nghĩa là dữ liệu được lấy trực
tiếp từ action để đưa đến view
- Controller: FilterDispatcher 1a servlet Filter co nhiém vu đĩn nhận request va
dựa trên cấu hình để xác định action cụ thể để đĩn nhận request cho xử lý -_ Model: Action là một java class đảm bảo đặc tính của một object trong mơ hình
hướng đối tượng và thỏa tính chất của JavaBean
- View: Result 1a mét kết xuất hay một dạng xác định action hay trang chuyển về và trình bày trên Web Browser
Trang 17)34ị:c.aciea invckey} sane $ + ! t ‡ s ' } ‡ $ + t ‡ ‡ $ t } ‡ +
Hình 4: Cơ chế hoạt động của Struts 2 Framework
Khi người dùng gửi yêu cầu truy xuất ứng dụng web, request được chuyển đến FilterDispatcher, đây là Filter được tạo sẵn trong Framework để làm chức năng như Controller
FilterDispatcher dựa trén trap tin cấu hình xác định xem action cĩ được ứng dụng Interceptor hay khơng
Nếu cĩ, framework sẽ gọi Interceptor theo tuần tự khi gọi xong một Interceptor, framework sẽ checking tiép Interceptor trong stack cho đến Interceptor cuối cùng
Nếu khơng cĩ áp dụng Interceptor cuối cùng được thực thi thi framework sé goi action
Action đĩn nhận dữ liệu, thực hiệ xử lý và kích hoạt phương thức chỉ định thực thi Sau khi phương thức đĩ xử lý hồn tắt, Result được trả về Tại bước này, nếu ứng dụng cĩ áp dung interceptor là Result sẽ được apply theo chiều ngược chiều gọi ban
dau dé trả kết quả trở về hay chuyển đến Action tiếp theo
Điểm khác biệt giữa cơ chế hoạt động của Struts 2 so với Struts 1 là tất cả mọi thứ phải thơng qua file struts.xml hay annotation và một phần nào đĩ Struts 2 che dấu FilterDispatcher đối với người lập trình để tạo nên tính linh hoạt trong việc xây dựng và bảo trì ứng dụng web, đặc biệt là việc mapping kết xuất giữa các trang khơng cịn lệ thuộc và đặt trong code servlet din đến việc mapping trớ nên linh hoạt và uyên chuyển hơn
Trang 18CHƯƠNG 2: PHAN TICH HE THONG
2.1 Phân tích yêu cẩu
Để phân tích yêu cầu của bài tốn, xét một ví dụ cụ thể:
Giả sử vào ngày 23-12-2012, ở trường Đại học Vinh diễn ra buổi bảo vệ đồ án tốt
nghiệp của lớp 49K-CNTT tại phịng A2302 vào lúc 7h - 12h Để buổi bảo vệ đồ án
được diễn ra, cán bộ lớp 49K phải đăng ký với người quán lý phịng A2303 để sử dụng phịng A2302 vào thời điểm trên, bên cạnh đĩ cịn phải đăng ký sử dụng các dụng cụ, thiết bị khác như máy chiếu, loa, máy tính Khi đĩ, người quán lý phịng A2302 sẽ đọc các yêu cầu và nếu hợp lý sẽ chuẩn bị phịng A2302 sẵn sàng cho buổi bảo vệ, và người quản lý thiết bị dụng cụ cũng sẽ đọc các yêu cầu và đồng ý cho mượn máy chiếu, loa thì lớp 49K mới được tổ chức buổi bảo vệ tại phịng đĩ Sau khi phịng học và các thiết bị đã sẵn sàng thì người quán lý phịng sẽ thơng báo cho cán bộ lớp 49K là đã sẵn sàng cho buổi bảo vệ đồ án tốt nghiệp Ngồi ra, nếu yêu cầu đặt ra
khơng hợp lệ thì những người quản lý cĩ quyền từ chối yêu cầu trên
Từ ví dụ trên cĩ thể thấy luồng xử lý yêu cầu như sau:
Trang 19Yêu cầu sử Quản lý dụng phịng phịng A2302 Cập nhật yêu câu a bộ Khơng hợp lệ từ chối Cán bộ nhà r 9K << x op truong 3 Cập nhật yêu câu Yêu cầu sử dụng máy chiếu, loa Quản lý 5 thiệt bị Thực hiện yêu câu Thơng báo sử dụng Hình 5: Luơng xử lÿ yêu cẩu Từ trên thì các thành phần bao gồm: Tác nhân:
-_ Người tạo ra yêu cầu: cán bộ lớp 49K
-_ Người xem xét yêu cầu: quản lý phịng và quản lý thiết bị
Người xử lý yêu cầu: Cán bộ nhà trường
Dữ liệu:
- Thong tin yêu cầu
- CaAc tin nhắn cập nhật yêu cầu và thơng báo phản hồi
Tuy nhiên tại một thời điểm cĩ thể cĩ nhiều yêu cầu được tạo ra, và vấn đề xảy ra là thực hiện yêu cầu nào trước, vì thế mỗi yêu cầu sẽ cĩ thêm các đặc điểm như mức độ, độ ưu tiên của yêu cầu Bên cạnh đĩ, để những người khác biết được yêu cầu đang được xử lý như thế nào, thì yêu cầu cần cĩ thêm đặc tính trạng thái
Từ ví dụ trên ta cĩ:
Trang 20"Các lung cơng việc trong hệ thong: -_ Quản lý yêu câu
Phần quản lý yêu cầu phải thực hiện được các chức năng như tạo mới một yêu cầu, xem nội dung yêu cầu, cập nhật nội dung, tình trạng của yêu cầu và xĩa một yêu cầu đã tổn tại
-_ Quản lý tin nhắn
Tin nhắn được tạo ra đề trao đổi với các thành viên trong hệ thống Phần quán lý tin nhắn phải đáp ứng được các chức năng như tạo một tin nhắn, xem một tin nhắn và xĩa tin nhắn đã tồn tại Ngồi ra để thuận tiện hệ thống cịn phải cĩ chức năng gửi tin nhắn tự động đến những người trong hệ thống khi trang thái của một yêu cầu thay đổi - Quan ly người dùng
Phần quản lý người dùng yêu cầu thực hiện việc kiểm tra thơng tin đăng nhập Nếu đăng nhập thành cơng, thì cho phép hiển thị các module của hệ thống (được phân quyền hiển thị với user đĩ.) Ngồi ra phải xây dựng module quản lý người dùng,
nhĩm người dùng và quyền truy xuất vào các module đối với từng nhĩm người dùng
-_ Thống kê báo cáo theo định kỳ
Cuối cùng thì hệ thống phải đáp ứng được việc thống kê các yêu cầu và tạo báo
cáo theo định kỳ
"_ Người sử dụng hệ thơng
-_ Người dùng cuối: Là những người tạo ra các yêu cầu Họ cĩ thể là sinh viên, giảng viên, cán bộ nhà trường Khi cĩ nhu cầu về học tập, giảng dạy những người này cĩ thể yêu cầu phịng học, thiết bị hỗ trợ và những người cĩ nhiệm vụ quản lý các phịng đĩ phái chuẩn bị sẵn sàng cho buổi học
-_ Người quản lý: Là những người quản lý các cơ sở vật chất như dãy nhà, tịa nhà, sân bĩng Hoặc những người quản lý các thiết bị kỹ thuật như quán lý kho dụng cụ họ nhìn vào các yêu cầu tạo ra và phân chia cho những người cĩ liên quan
- Người được giao: Là những người cĩ trách nhiệm đáp ứng các yêu cầu từ người dùng cuối cũng như cập nhật tình trạng của chúng trong hệ thống Họ cĩ thể là người quan lý phịng học, hướng dẫn thực hành, quản lý phịng máy
Ngồi ra cịn cĩ một “Administrator” để thực hiện các chức năng quản trị như cấp tài khoản hệ thống, bổ sung thêm các sơ sở mới
" Cac loại yêu cầu bao gồm: -_ Yêu cẩu về thiết bị kỹ thuật
Trang 21Yêu cầu này xuất hiện khi cần phục vụ cho cơng việc nghiên cứu giảng dạy của
sinh viên và giảng viên Nĩ cĩ thể là yêu cầu sửa chữa, bảo trì của các thiết bị học tập
như máy tính, máy chiếu, dụng cụ thí nghiệm, các thiết bị phịng phịng như đèn, quạt,
bàn ghế
-_ Yêu cẩu về dịch vụ
Yêu cầu này xảy ra khi cần tổ chức các hoạt động khác như mít tinh, hội họp, văn nghệ thê dục thê thao Nĩ cĩ thê là Việc chuân bị phịng họp, dụng cụ và thiệt bị đi
kèm Ngồi ra cịn cĩ các yêu câu về cơ sở vật chât trong căng tin, ký túc xá, sân
bĩng
"_ Các đặc điểm của yêu cẩu - Trang thai:
Trạng thái của một yêu cầu cho biết yêu cầu đĩ được thực hiện đến tiến độ nào Điều này sẽ hữu ích cho những người dùng trong hệ thống cĩ liên quan đến yêu cầu
Khi trạng thái thay đổi thì người thay đổi trạng thái đĩ phải gửi một tin nhắn thơng báo
đến những người liên quan Việc này cĩ thể thực hiện thủ cơng hoặc hệ thống tự động gửi tin nhắn Một yêu cầu bao gồm các trạng thái sau:
o Đang mở: Là trạng thái của yêu cầu khi mới tạo ra, chưa được xử lý o Đã giao: Yêu cầu đã được giao cho ai đĩ
S Đang xử lý: Yêu cầu đang trong quá trình xử lý
o_ Cân thêm thơng tin: Cần cung cấp thêm thơng tin ban dau dé xử lý yêu cầu
o Từ chối: Yêu cầu bị từ chối, bị hủy vì khơng hợp lệ o_Đã đĩng: Yêu cầu đã hồn thành
-_ Mức độ:
Trang 22Tương tự như mức độ của yêu cầu, độ ưu tiên của một yêu cầu sẽ giúp cho những người liên quan cĩ thể đánh giá được sự quan trọng của yêu cầu và họ sẽ xử lý yêu cầu nào cần thiết hơn Độ ưu tiên bao gồm 3 mức sau:
o Cao: Yêu cầu cĩ độ ưu tiên cao
o_Trung bình: Yêu cầu cĩ độ ưu tiên trung bình o Thấp: Yêu cầu cĩ độ ưu tiên thấp
2.2 Biểu đồ phân cấp chức năng 2.2.1 Biểu đồ mức chức năng Quản lý yêu cầu | 1 Quan ly 2 Bao Cao |_| 1.1 Quan lý yêu cầu 2.1 Thống kê báo cáo L—] 1.2 Quản lý tin nhắn L—] 1.3 Quản lý người dùng
Biểu đơ 1: Biểu đồ phân cấp chức năng
2.2.2 Mơ tả chỉ tiết các chức năng lá
a Quản lý người dùng
Chức năng quán lý yêu cầu bao gồm các chức năng con như: tạo yêu cầu, xem yêu cầu, cập nhật yêu cầu và xĩa một yêu cầu
b Quản lý tin nhắn
Chức năng quản lý tin nhắn bao gồm các chức năng con như: tạo tin nhắn, xem tin nhắn, và xĩa một tin nhắn
c Quan lý người dùng
Chức năng quản lý người dùng sẽ gồm các chức năng con như tạo người dùng và phân quyền sử đụng cho người dùng đĩ
Trang 23d Thống kê báo cáo
Theo định kỳ hàng tháng hoặc hàng quý, người quản lý cĩ trách nhiệm phải thống kê lại các yêu cầu, tình trạng của thiết bị kỹ thuật trong các cơ sở và báo cáo lại cho cấp trên 2.3 Biểu đồ luồng dữ liệu 2.3.1 Mức ngữ cảnh Cập nhật Người dùng cuối Tạo yêu cầu Yêu cầu Xử lý mm á¡ |——————* Người dùng cuơi Quản lý Tin nhắn Người dùng cuối
Biểu đơ 2: Biểu đồ mức ngữ cảnh
Trang 242.3.2 Mức 1 Tạo mới - Cập nhật > Người dùng cuỗi 1.0 Quan Yêu câu Xử lý Người được giao | Tạo báo Người quản lý 2.0 Báo L———> Tin nhắn cáo 2.3.3 Mức 2 -_ Luơng dữ liệu tiễn trình “1.0 Quản ly” |
Người dùng cuối I 1.1 Quan
Trang 25-_ Luơng dữ liệu tiễn trình “2.0 Báo cáo”: 2.1 Thơng Người quản lý kê báo cáo 'Yêu câu 2.3.4 Mức 3 Luơng dữ liệu tiến trinh “1.1 Quan ly yéu cau” 1.1.1 Tao Người dùng cuối I yéu cau Yêu câu — - 1.1.2 Cập
Người được giao nhật yêu câu
Người quản lý Ị Vêu cầu °
Luơng dữ liệu tiến trinh “1.2 Quan lý Tin nhắn”
Trang 26Người dùng cuối Người được giao 1.2.2 Xĩa Tin nhăn Người quản lý Luơng dữ liệu tiến trình “1.2 Quản lý Tin nhắn” 1.3.1 Thêm Hồ sơ người dùng người dùng Administrator 2.4 Mơ hình E-R 2.4.1 Xác định các thực thể
Dựa vào các phân tích trên ta rút ra được các thực thê sau:
- VÊUCÀU( Mãyêucầu, Địađiểm, Tiêuđề, Mơtá, Trạngthái, Múcđộ, Độưutiên,
Ngườitạo, Ngườiđuọcgiao, Ngàytạo)
- TINNHAN( Matinnhan, Tiêuđề, Nộidung, Ngàygửi, Trạngthái, Nguờigửi) NGƯỜIDÙNG( Tênđăngnhập, Mậtkhẫu, Họvàtên,Quyềnhạn)
Trang 272.4.2 Sơ đồ liên kết thực thể dạng chuẩn 3 TRẠNG THÁI êm YÊU CÀU ƯU TIÊN ĐƯỢC GIAO MỨC ĐỘ NGƯỜI DÙNG 08 0) 0) Ú, TIN NHẮN
cm > TIÊU ĐỀ NOI DUNG NGAY GUT
Trang 28CHƯƠNG 3: XÂY DỰNG CƠ SỞ DỮ LIỆU VÀ GIAO DIỆN
3.1 Thiết kế cơ sở đữ liệu vật lý 3.1.1 Bảng đữ liệu Từ các quan hệ và sơ đồ liên kêt thực thế trên ta xây dựng được các báng đữ liệu sau: " BẰNG PERMISSION
PermissionID int Khoa chinh Ma quyén PermissionName | nvarchar(50) Bắt buộc Tên quyền
"_ BẢNG USER
UserName Varchar(50) Khoa chinh Tén dang nhap
PassWord Varchar(50) Bat buộc Mật khẩu
FullName Nvarchar(50) Bắt buộc Tên người dùng Mã quyền, tham PermissionID Int Khoa ngoai chếu đến bảng
PERMISSION
" BANG STATUS
StatusID Int Khoa chinh Mã trạng thái StatusName Nvarchar(50) Bắt buộc Tên trạng thái
Trang 29
" BANG PRIORITY PriorityID Int Khoa chinh Mã ưu tiên PriorityName Nvarchar(50) Bắt buộc Tên độ ưu tiên "= BANG SEVERITY
SeverityID Int Khoa chinh Mã mức độ SeverityName Nvarchar(50) Bat budcq Tên mức độ " BANG MESSAGE
MessageID Char(9) Khoa chinh Mã tin nhắn
Title Nvarchar(500) Bắt buộc Tiêu đề
Content Nvarchar(max) Bắt buộc Nội dung tin nhắn From Varchar(50) Khoa ngoai Người gửi
To Varchar(50) Khĩa ngoại Người nhận
Status Int Mặc định là 0 bee m ee
CreatedDate Datetime Bắt buộc Thời gian gửi " BANG REQUEST
RequestID Char(9) Khoa chinh Mã yêu cầu
, Tiêu đề của yêu
Title Nvarchar(500) Bat budc ` y
cau
Describe Nvarchar(max) Bắt buộc Mơ tả yêu cầu
PriorityID Int Khoa ngoai Mã ưu tiên, tham
Trang 30
chiêu đên bảng PRIORITY Mã mức độ, tham SeverityID Int Khoa ngoai chiếu đến bảng SEVERITY Mã trạng thái, StatusID Int Khoa ngoai tham chiếu đến bang STATUS
Người tạo yêu cầu, CreatedBy Varchar(50) Khoa ngoai tham chiếu đến
bảng USER Người được giao, AssignedTo Varchar(50) Khĩa ngoại tham chiếu đến
bang USER
Facility Nvarchar(200) Bắt buộc Địa điểm yêu cầu
Trang 313.2 Thiết kế giao diện
Sau đây là một số màn hình chính trong hệ thống
3.2.1 Đăng nhập
- Chức năng: Người dùng đăng nhập vào hệ thống bằng cách click vào nút “Đăng nhập” Thơng tin đăng nhập bao gồm: Tên đăng nhập và mật khẩu
- Cac thanh phan:
02 textbox để người dùng nhập thơng tin đăng nhập
o1 button để thực hiện thao tác đăng nhập L lecahoseaoso/aequeswa x = > @& |B becathost:8080/RequestManagement/jsp/loain.jsp ay Quản lý yêu cầu dịch vụ kỹ thuật Đăng nhập hệ thống Tên đăng nhập: | Mặt khẩu: [ 3.2.2 Đối mật khẩu
- Chức năng: Sau khi đăng nhập người dùng cĩ thể lựa chon chức năng đổi mật khâu đê thay đơi mật khâu cho tài khoản của mình
-_ Các thành phân:
o 3 textbox để người dùng nhập thơng tin bao gồm: Mật khẩu cũ, mật khâu mới
o 1 button dé thực hiện thao tác đổi mật khẩu
Trang 32Change Password Old Password: | | New Password: Re-enter Password:
3.2.3 Danh sách yêu cẩu
-_ Chức năng: Quản lý danh sách các yêu cầu
-_ Các thành phân:
6 5 dropdownlist chứa các thơng tin tìm kiếm: trạng thái, mức độ, độ ưu tiên, người tạo, người dược giao
o 3 button bao gồm: “Tìm kiếm”, “Xĩa”, “Tạo mới” o 1 bảng chứa danh sách các yêu cầu
[ Danh sách:
6 ¢ Chào admin | Đăn;
LÊ
Trang thai: |All iy Mite 46: [Ail iv Un tin: [All [s]
Trang 333.2.4 Tạo mới yêu cau
-_ Chức năng: Tạo mới một yêu cầu - Cac thanh phan:
o 1 textbox hiển thị mã của yêu cầu mã này được tạo tự động
o 4textbox để người dùng nhập: địa điểm, tiêu đề, nội dung và ngày tháng o 5 dropdownlist bao gồm: trạng thái, mức độ, độ ưu tiên, người tạo, người được giao o 2 button bao gdm nut “Save” va “Reset” ‹© © DB bcahost:8080/RequestManagement/js| qwiz ial Chào admin | Đăng xuất ® lĩc các) ID: 171212000 Địa điểm: | Tiêu đề: / aman | O & a @ Baa đà s | B4 +: Ø © PHEHI[IH= =b B7 U%x; x2 ”ủ n£ 2ã 39s @2P 8a@n=ease a “ |) Dinh dang © Sic Bla #8 |@sIữ 2] 5 'Nội dung: 4 Trang thai: | Open [x] ‘Mite 6: | Fatal ix] Un tién: | High [x]
Người tạo: 'admin_ iv Người được giao: [admin (vÌ — Ngày©: đc jo rs a ee 3.2.5 Cập nhật yêu cầu
-_ Chức năng: Sửa đổi lại một yêu cầu - Cac thanh phan:
Trang 34o 2 button bao gồm nút “Save” và “Reset” ID: 021212005 Tiêu đề: Máy chiều khơng chinh được độ sáng | SuammL 1 (à ä Am ': —- sgzu=xx z ˆ“'à@m~-$ose # (Bnhnnư S [bs i ‘Tai phéng hoc A2101 may chiếu khơng chỉnh được do sự cố gì đĩ đến bửa gấp Nội đung: body p 4
Trang that [Open jxi Mức độ: | Fatal [x] Un tién: [High [vy] 'Người tạo: | admin im Người được giao: | admin vị Ngày tạo: 2012-12-02 Start ti ‘2 3.2.6 Danh sách tin nhắn -_ Chức năng: Sửa đổi lại một yêu cầu -_ Các thành phân:
o 1 bảng chứa danh sách các tin nhắn, mỗi khi người dùng click vào “View” sẽ được xem chỉ tiết nội dung tin nhắn
Trang 35`} Danh sỏch tin nhn xôQ Â C | D localhost:8080/RequestManagement/jsp/listMessage aw Chào admin | Đăng xuất Kiểu hiển thị | Tất cả iv Tnắe 1 Thời gian
o a 'Yêu cầu chuẩn bị phịng họp admin diepviends 12/12/2012
Oo] @ Đã hồn thành yêu cầu điepviends admin 12/12/2012 O | (a ‘Thay 6i bang tin admin admin 16/12/2012
Fes eset ena
3.2.7 Tao méi tin nhan
- Chic ndng: Tao mdi mét tin nhắn
-_ Các thành phân:
o_1 dropdownlist chứa danh sách các tài khoản trong hệ thống
o 2 textbox để người dùng nhập vào tiêu đề và nội dung
o | button thuc hién thao tac gui tin nhan “Send”
Trang 36© GD beahost:8080/RequestManagement/jsp/newMessage Sw E la| Chào admin | Đăng xuất »- = D1 1o Người nhận admin [x] Tiêu đề , clas ye E== 3.2.8 Trang chủ - Chirc nang: Trang bắt đầu của ứng dụng -_ Các thành phân:
o Hiển thị các tin nhắn được gửi đến cho tài khoản đăng nhập hiện tại
Trang 37o Hién thị các yêu cầu được gán cho người dùng đăng nhập hiện tại Quản yêu câu dich wa ky © x € > G@ |B bcahost:8080/RequestManagement/jsp/homeAction ay n Chao admin | Đăng xuất
Hệ thống quản lý yêu cầu về dịch vụ kỹ thuật
Trang 38CHƯƠNG 4: KÉT LUẬN
4.1 Kắt quả đạt được
Phân tích rõ được yêu cầu của hệ thống
Đáp ứng được các chức năng cơ bản của hệ thống
Hiểu được cơng nghệ Struts 2 và xây dựng 1 website bằng cơng nghệ đĩ Xây dựng được một web site hồn chỉnh, giao diện thân thiện, dễ sử dụng
4.2 Hạn chế
Mặc dù đã hồn thành cơ bản bài tốn, nhưng nhìn tổng thể vẫn cịn nhỏ, đơn giản,
chưa cĩ tính chuyên nghiệp
Nếu duy trì website thì tốn khá nhiều chỉ phí, vì hệ thống như trên vẫn cịn quá nhỏ
đối với việc nuơi một Server
4.3 Hướng phát triển
Cố gắng hồn thiện hệ thống, mang tính chuyên nghiệp và đáp ứng đầy đủ các chức năng trong thực tế Bên cạnh đĩ, cĩ thể tích hợp website vào các hệ thống lớn khác trong trường đại học như hệ thống quản lý thiết bị, quản lý sinh viên
Trang 39TÀI LIỆU THAM KHẢO
[1] Nguyễn Văn Ba, Phân tích và thiết kế hệ thống thơng tin, NXB Đại học Quốc gia
Hà Nội.(2003)