TRƢỜNG ĐẠI HỌC CẦN THƠ
KHOA KHOA HỌC TỰ NHIÊN
BỘ MÔN TIN HỌC ỨNG DỤNG
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
XÂY DỰNG HỆ THỐNG THÔNG TIN
QUẢN LÝ HỘI THẢO KHOA HỌC
Sinh viên thực hiện
Cán bộ hƣớng dẫn
Võ Thị Minh Khuê
MSSV: 1108019
Ths. Hồ Văn Tú
Cần Thơ, 2014
TRƢỜNG ĐẠI HỌC CẦN THƠ
KHOA KHOA HỌC TỰ NHIÊN
BỘ MÔN TIN HỌC ỨNG DỤNG
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
XÂY DỰNG HỆ THỐNG THÔNG TIN
QUẢN LÝ HỘI THẢO KHOA HỌC
Sinh viên thực hiện
Cán bộ hƣớng dẫn
Võ Thị Minh Khuê
MSSV: 1108019
Ths. Hồ Văn Tú
Cán bộ phản biện
TS. Nguyễn Hữu Hòa
Ths. Lê Thị Diễm
Luận văn đƣợc bảo vệ tại: Hội đồng chấm luận văn tốt nghiệp Bộ môn Tin
học Ứng dụng Khoa Khoa học Tự nhiên, Trƣờng Đại học Cần Thơ vào ngày 19
tháng 5 năm 2014.
Mã số đề tài:
Có thể tìm hiểu luận văn tại:
-Trung tâm Học liệu, Trƣờng Đại học Cần Thơ
-Website: http://www.lrc.ctu.edu.vn/
Cần Thơ, 2014
LỜI CẢM ƠN
Trải qua quá trình nghiên cứu, từ những bƣớc đầu thu thập thông tin, tiếp xúc với
hệ thống, đến phân tích, thiết kế mô hình cơ sở dữ liệu, thiết kế giao diện, xây dựng
chức năng và cuối cùng là thiết kế thành công chƣơng trình ứng dụng. Bản thân em đã
tích góp đƣợc một lƣợng kiến thức cho mình, không nhiều nhƣng vô cùng bổ ích. Vì
vậy, trƣớc khi đi vào nội dung của Luận văn, em xin phép đƣợc gửi lời cảm ơn chân
thành và sâu sắc đến thầy Hồ Văn Tú, ngƣời đã trực tiếp hƣớng dẫn và giúp đỡ em
trong việc thực hiện Luận văn. Trong suốt quá trình làm việc, Thầy, trên cƣơng vị là
giáo viên hƣớng dẫn đã hỗ trợ hết mình, dành nhiều thời gian quý báu để giải đáp thắc
mắc và truyền đạt những kinh nghiệm thực tiễn cho em giúp em hoàn thành Luận văn
và đáp ứng đƣợc các yêu cầu mà học phần đặt ra.
Em cũng xin đặc biệt gửi lời cảm ơn đến thầy Huỳnh Phụng Toàn, thầy Nguyễn
Đức Khoa, thầy Võ Hải Đăng cùng các thầy cô trong Bộ môn Tin học ứng dụng đã
cung cấp cho em những kiến thức cần thiết, thông qua các học phần đã đƣợc học trên
lớp, để em có thể hoàn tất Luận văn theo đúng tiến độ.
Do đây là lần đầu tiên em phải thực hiện việc xây dựng và thiết kế hệ thống ứng
dụng một mình nên khối lƣợng công việc khá nhiều và vì kiến thức của em còn hạn
hẹp, do đó không thể tránh khỏi những sai sót trong quá trình làm việc cũng nhƣ sai
sót trong sản phẩm ứng dụng. Vì vậy, em rất mong nhận đƣợc sự thông cảm cùng
những ý kiến đóng góp quý báu của quý Thầy, Cô để báo cáo Luận văn cũng nhƣ
chƣơng trình ứng dụng mà em đã xây dựng có thể hoàn thiện hơn.
Cần Thơ, ngày 27 tháng 4 năm 2014.
Sinh viên thực hiện
Võ Thị Minh Khuê
MỤC LỤC
DANH MỤC HÌNH......................................................................................................... i
DANH MỤC BẢNG .......................................................................................................v
TÓM TẮT...................................................................................................................... vi
ABSTRACT ................................................................................................................. vii
Chƣơng 1: TỔNG QUAN ................................................................................................1
1.1 Đặt vấn đề ..................................................................................................................1
1.2 Lịch sử giải quyết vấn đề ...........................................................................................1
1.3 Phạm vi đề tài ............................................................................................................2
1.4 Phƣơng pháp nghiên cứu ...........................................................................................2
Chƣơng 2: CƠ SỞ LÝ THUYẾT ....................................................................................3
2.1 Mô hình MVC ............................................................................................................3
2.1.1 Định nghĩa...............................................................................................................3
2.1.2 Các thành phần trong MVC ....................................................................................3
2.1.2.1 Model ...................................................................................................................3
2.1.2.2 View .....................................................................................................................4
2.1.2.3 Controller .............................................................................................................5
2.1.3 Cách thức hoạt động ...............................................................................................6
2.1.4 Ƣu và nhƣợc điểm của mô hình MVC ...................................................................6
2.1.5 Ứng dụng ................................................................................................................6
2.2 Zend framework .........................................................................................................7
2.2.1 Khái niệm ................................................................................................................7
2.2.2 Tại sao phải sử dụng Zend framework ...................................................................8
2.2.3 Các thành phần cơ bản trong Zend framework.......................................................8
2.2.4 Ƣu và khuyết điểm của Zend framework ...............................................................9
Chƣơng 3: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU ..............................................10
3.1 Kết quả điều tra ........................................................................................................10
3.1.1 Các thông tin cần thiết ..........................................................................................10
3.1.1.1 Danh mục chính .................................................................................................10
3.1.1.2 Thông tin chính. .................................................................................................11
3.1.1.3 Thông tin tiện ích. ..............................................................................................12
3.1.1.4 Danh mục ...........................................................................................................13
3.1.2 Đối tƣợng ..............................................................................................................13
3.1.3 Chức năng của đối tƣợng ......................................................................................14
3.2 Thiết kế mô hình cơ sở dữ liệu cho hệ thống ..........................................................15
3.3 Kết quả đạt đƣợc ......................................................................................................35
3.3.1 Chức năng xem thông tin, hiển thị dữ liệu từ cơ sở dữ liệu .................................35
3.3.2 Chức năng Đăng ký ..............................................................................................38
3.3.3 Chức năng Đăng nhập...........................................................................................40
3.3.4 Chức năng Gửi báo cáo ........................................................................................41
3.3.5 Chức năng Thêm, Xóa và Sửa dữ liệu ..................................................................44
3.3.5.1 Dữ liệu Thành viên tổ chức ...............................................................................44
3.3.5.2 Dữ liệu Hƣớng dẫn ............................................................................................46
3.3.5.3 Dữ liệu Chƣơng trình .........................................................................................48
3.3.5.4 Dữ liệu Báo cáo mời ..........................................................................................52
3.3.5.5 Dữ liệu Trang chủ ..............................................................................................55
3.3.5.6 Dữ liệu Thời hạn quy định .................................................................................59
3.3.5.7 Dữ liệu Đơn vị tổ chức ......................................................................................62
3.3.5.8 Dữ liệu Hội thảo ................................................................................................64
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN.....................................................................68
TÀI LIỆU THAM KHẢO .............................................................................................70
DANH MỤC HÌNH
Hình 3.1 Danh mục chính. .............................................................................................10
Hình 3.2 Thông tin chính. ..............................................................................................11
Hình 3.3 Thông tin tiện ích............................................................................................12
Hình 3.4 Danh mục. .......................................................................................................13
Hình 3.5 Sơ đồ chức năng use – case cho đối tƣợng Khách. ........................................15
Hình 3.6 Sơ đồ chức năng use – case cho đối tƣợng Thành viên và Báo cáo viên. ......16
Hình 3.7 Sơ đồ chức năng use – case cho đối tƣợng Quản lý. ......................................17
Hình 3.8 Sơ đồ chức năng use – case cho đối tƣợng Quản trị. .....................................18
Hình 3.9 Mô hình cơ sở dữ liệu mức quan niệm (CDM). .............................................19
Hình 3.10 Mô hình cơ sở dữ liệu mức vật lý (PDM). ...................................................20
Hình 3.11 Mô hình cơ sở dữ liệu ER.............................................................................22
Hình 3.12 Sơ đồ lớp. ......................................................................................................29
Hình 3.13 Sơ đồ tuần tự cho chức năng “Đăng ký”. .....................................................30
Hình 3.14 Sơ đồ hoạt động cho chức năng “Đăng ký”. ................................................30
Hình 3.15 Sơ đồ tuần tự cho chức năng “Gửi báo cáo”. ...............................................31
Hình 3.16 Sơ đồ hoạt động cho chức năng “Gửi báo cáo”. ..........................................31
Hình 3.17 Sơ đồ tuần tự cho chức năng “Sửa Chƣơng trình” .......................................32
Hình 3.18 Sơ đồ hoạt động cho chức năng “Sửa Chƣơng trình” ..................................32
Hình 3.19 Sơ đồ tuần tự cho chức năng “Thêm Báo cáo mời từ danh sách”. ...............33
Hình 3.20 Sơ đồ hoạt động, chức năng “Thêm Báo cáo mời từ danh sách”. ................34
Hình 3.21 Trang chủ ......................................................................................................35
Hình 3.22 Danh sách Hội nghị, Hội thảo đƣợc liệt kê theo năm. .................................36
Hình 3.23 Các thông báo của Hội thảo..........................................................................36
Hình 3.24 Xem thông tin về báo cáo viên đã đăng ký tham gia Hội thảo.....................37
Hình 3.25 Danh sách thành viên trong Ban tổ chức. .....................................................37
Hình 3.26 Các mẫu báo cáo mà Hội thảo quy định. ......................................................38
Hình 3.27 Thông tin tiện ích..........................................................................................38
Hình 3.28 Thông báo quy định thời gian đăng ký. ........................................................38
i
Hình 3.29 Chức năng “Đăng ký”...................................................................................39
Hình 3.30 Thông báo lỗi cho việc chƣa điền đầy đủ thông tin. ....................................39
Hình 3.31 Khi quản lý (hoặc admin) đăng nhập thành công. ........................................40
Hình 3.32 Khi báo cáo viên đăng nhập thành công. ......................................................40
Hình 3.33 Các thông báo lỗi cho việc đăng nhập. .........................................................40
Hình 3.34 Sau khi báo cáo viên đăng nhập. ..................................................................41
Hình 3.35 Thông báo lỗi khi báo cáo viên chƣa gửi báo cáo. .......................................41
Hình 3.36 Thông tin báo cáo mà báo cáo viên đã gửi. ..................................................41
Hình 3.37 Hiển thị trang Gửi báo cáo. ..........................................................................42
Hình 3.38 Thông báo khi file báo cáo không đúng định dạng ......................................42
Hình 3.39 Đã gửi báo cáo đến Hội thảo ........................................................................42
Hình 3.40 Chƣa gửi báo cáo sửa. ..................................................................................43
Hình 3.41 Đã gửi báo cáo sửa. ......................................................................................43
Hình 3.42 Chọn đơn vị. .................................................................................................44
Hình 3.43 Danh sách đơn vị. .........................................................................................44
Hình 3.44 Danh sách thành viên đã đƣợc lọc. ...............................................................44
Hình 3.45 Thêm mới một thành viên tổ chức................................................................45
Hình 3.46 Xác nhận việc xóa thành viên. ......................................................................45
Hình 3.47 Báo lỗi khi thành viên vẫn đang tham gia Hội thảo. ....................................45
Hình 3.48 Sửa thông tin thành viên tổ chức. .................................................................46
Hình 3.49 Danh sách hƣớng dẫn đƣợc đƣa ra. ..............................................................46
Hình 3.50 Thêm một mẫu tin trong bảng dữ liệu thông báo. ........................................47
Hình 3.51 Thêm mẫu tin với lựa chọn là một trong những “Thông tin tiện ích”..........47
Hình 3.52 Chức năng chỉnh sửa hƣớng dẫn. .................................................................48
Hình 3.53 Chƣơng trình Hội thảo ..................................................................................48
Hình 3.54 Thêm nội dung chƣơng trình. .......................................................................49
Hình 3.55 Thêm báo cáo mời vào chƣơng trình ............................................................49
Hình 3.56 Thêm báo cáo tuyển tập vào chƣơng trình ...................................................50
Hình 3.57 Báo lỗi nếu giá trị thời gian không phù hợp. ................................................50
ii
Hình 3.58 Báo lỗi nếu chọn nhiều hơn một báo cáo mời (hoặc báo cáo tuyển tập). ....50
Hình 3.59 Thêm file chƣơng trình .................................................................................51
Hình 3.60 Sửa thông tin chƣơng trình Hội thảo ............................................................51
Hình 3.61 Danh sách báo cáo mời của Hội thảo. ..........................................................52
Hình 3.62 Khi thêm mới hoàn toàn một báo cáo mời. ..................................................52
Hình 3.63 Thêm báo cáo mời từ danh sách thành viên đƣợc lọc theo đơn vị. ..............53
Hình 3.64 Chọn thành viên. ...........................................................................................53
Hình 3.65 Thêm dữ liệu về các báo cáo của những thành viên đƣợc chọn. ..................53
Hình 3.66 Sửa thông tin cá nhân của báo cáo mời. .......................................................54
Hình 3.67 Sửa thông tin của báo cáo. ............................................................................54
Hình 3.68 Các thông tin trang chủ.................................................................................55
Hình 3.69 Thêm nội dung cho trang chủ. ......................................................................56
Hình 3.70 Các trƣờng hợp lỗi khi số lƣợng mẫu tin đƣợc cung cấp không phù hợp. ...56
Hình 3.71 Khi số lƣợng mẫu tin phù hợp với yêu cầu. .................................................56
Hình 3.72 Thông báo lỗi khi không có tập tin hình ảnh đính kèm. ...............................57
Hình 3.73 Sửa thông tin cho một mẫu tin .....................................................................57
Hình 3.74 Thêm hai hình ảnh vào mẫu tin. ...................................................................58
Hình 3.75 Báo lỗi khi tập tin hình ảnh đƣợc chọn giống nhau. ....................................58
Hình 3.76 Thời hạn mà Hội thảo quy định. ...................................................................59
Hình 3.77 Khi thêm mới một thời hạn. .........................................................................59
Hình 3.78 Chỉ đƣợc chọn một trong những thời hạn còn thiếu. ....................................60
Hình 3.79 Form sửa thông tin đối với thời hạn bắt buộc. .............................................60
Hình 3.80 Form sửa thông tin đối với thời hạn không bắt buộc. ..................................61
Hình 3.81 Báo lỗi khi giá trị thời gian không phù hợp. ................................................61
Hình 3.82 Khi thời gian của các thời hạn không phù hợp với thời gian hoạt động. .....61
Hình 3.83 Khi thời gian hoạt động không phù hợp với các thời hạn khác....................61
Hình 3.84 Danh sách đơn vị có tham gia tổ chức Hội thảo. ..........................................62
Hình 3.85 Thêm mới một đơn vị. ..................................................................................62
Hình 3.86 Thêm đơn vị từ danh sách đơn vị. ................................................................63
iii
Hình 3.87 Sau khi cung cấp giá trị cần tìm kiếm. .........................................................63
Hình 3.88 Những vai trò có thể có của một đơn vị với Hội thảo. .................................63
Hình 3.89 Sửa thông tin của đơn vị. ..............................................................................64
Hình 3.90 Chức năng thêm và xóa của quản trị với dữ liệu Hội thảo. ..........................64
Hình 3.91 Thêm mới một Hội thảo hoặc Hội nghị........................................................65
Hình 3.92 Báo lỗi khi thời gian hoạt động không phù hợp. ..........................................66
Hình 3.93 Báo lỗi khi thời gian diễn ra chƣơng trình chính không phù hợp. ...............66
Hình 3.94 Thêm mới một đơn vị. ..................................................................................66
Hình 3.95 Báo lỗi về sự tồn tại của đơn vị. ...................................................................67
Hình 3.96 Thêm đơn vị từ danh sách. ...........................................................................67
Hình 3.97 Danh sách những đơn vị đã có trong bảng dữ liệu. ......................................67
Hình 3.98 Báo lỗi khi dữ liệu liên quan đến Hội thảo vẫn tồn tại. ................................67
Hình 3.99 Báo lỗi khi Hội thảo cần xóa là Hội thảo đang đƣợc thao tác. .....................67
iv
DANH MỤC BẢNG
Bảng 3.1 Bảng Hội thảo (HoiThao). .............................................................................23
Bảng 3.2 Bảng Vai trò (VaiTro). ...................................................................................23
Bảng 3.3 Bảng Đơn vị (DonVi).....................................................................................23
Bảng 3.4 Bảng Học vị, Học hàm (HocViHocHam). .....................................................24
Bảng 3.5 Bảng Chƣơng trình (ChuongTrinh). ..............................................................24
Bảng 3.6 Bảng Đơn vị tổ chức (DonViToChuc). ..........................................................24
Bảng 3.7 Bảng Thành viên (ThanhVien). .....................................................................25
Bảng 3.8 Bảng Thành viên tham gia (ThanhVienThamGia). .......................................25
Bảng 3.9 Bảng Báo cáo (BaoCao). ................................................................................26
Bảng 3.10 Bảng Tài liệu mẫu (TaiLieuMau) ................................................................26
Bảng 3.11 Bảng Báo cáo viên (BaoCaoVien). ..............................................................27
Bảng 3.12 Bảng Thành viên tổ chức (ThanhVienToChuc). ..........................................27
Bảng 3.13 Bảng Thông báo (ThongBao) ......................................................................27
v
TÓM TẮT
Hiện nay, việc tổ chức và quản lý Hội thảo Khoa học đang là một trong những
công việc thƣờng xuyên, tƣơng đối phức tạp, tốn nhiều thời gian, công sức. Vì vậy,
ứng dụng tin học hóa vào quản lý là yêu cầu tất yếu và cần thiết. Đã có rất nhiều
chƣơng trình ứng dụng đƣợc xây dựng nhằm khắc phục những vấn đề khó khăn nêu
trên nhƣng phần lớn các chƣơng trình ứng dụng đó chỉ đáp ứng đƣợc nhu cầu quản lý
một Hội thảo Khoa học riêng lẻ mà không thể tạo sự liên kết với những Hội thảo khác.
Cho nên, chúng tôi quyết định chọn đề tài “Xây dựng hệ thống thông tin quản lý Hội
thảo Khoa học” với mục đích mở rộng phạm vi quản lý cho tất cả các Hội thảo Khoa
học.
Để thực hiện đƣợc điều đó, ngoài việc sử dụng những công cụ và phần mềm hỗ trợ
quen thuộc, chúng tôi còn ứng dụng hai công nghệ mới hiện nay là mô hình MVC và
Zend Framework, cùng các công việc cần và đủ là:
- Thu thập thông tin từ những Hội thảo, Hội nghị đã đƣợc tổ chức trƣớc đây.
- Phân tích và xây dựng hệ thống cơ sở dữ liệu cho chƣơng trình.
- Xây dựng một trang web động với đầy đủ các chức năng cần thiết cho việc
quản lý Hội thảo.
- Sử dụng máy chủ giả lập để kiểm tra tính đúng đắn của những chức năng đã
xây dựng.
Kết quả của việc thực hiện theo đúng những phƣơng pháp đã đƣợc liệt kê là một
chƣơng trình ứng dụng với đầy đủ các chức năng phục vụ cho công tác quản lý Hội
thảo cũng nhƣ nhu cầu về mặt thông tin của những ngƣời đam mê nghiên cứu Khoa
học. Tuy những chức năng mà chƣơng trình mang lại vẫn chƣa đạt mức tối ƣu nhƣng
đây là bƣớc đi đầu tiên và cũng là cột mốc quan trọng cho những bản nâng cấp về sau.
Từ khóa: công nghệ thông tin, Hội nghị, Hội thảo, khoa học, quản lý, tin học hóa.
vi
ABSTRACT
The management of scientific conferences and seminars currently consists of
routine and complex tasks, which are time-consuming and laborious. Computerization
in this field is necessary to improve efficiency. Many software applications exist to
make the organization easier, but most applications meet the needs of only one
seminar and cannot be applied to another. This document describes the development of
a new content management system which will have the capability to manage multiple
scientific conferences or seminars.
Two new technologies are used in this research to help accomplish this goal: the
MVC pattern and the Zend Framework. With these technologies, the following can be
performed:
- Collecting information from previous seminars and conferences.
- Analyzing and constructing a database system to store the information.
- Building a website full of functions necessary for seminar management.
- Running simulations to test and verify the newly developed functions.
Proper implementation of the methods listed above results in a program with full
functionality to support the management of scientific seminars and conferences. This
will satisfy the demand for information by enthusiasts of scientific research. Although
the functions provided by the program are not yet at their optimum level, this is the
first step and an important milestone for future work and improvements.
Keyword: information technology, conferences, seminars, science, management,
computerization.
vii
CHƢƠNG 1: TỔNG QUAN
1.1 ĐẶT VẤN ĐỀ
Trong những năm gần đây, việc ứng dụng công nghệ thông tin vào các lĩnh vực đời
sống đang ngày càng phổ biến. Tin học hóa đã trở thành một phần không thể thiếu
trong các hệ thống quan trọng nhƣ: quản lý bệnh viện, trƣờng học, kiểm soát giao
thông,… Ngày nay, việc tổ chức Hội nghị hay Hội thảo để bàn luận về một vấn đề
chuyên môn là rất thƣờng xuyên và liên tục. Mỗi khi có một Hội thảo đƣợc đề xuất thì
quá trình chuẩn bị là rất lâu (từ 6 tháng đến 2 năm). Các Hội thảo thƣờng đƣợc tổ chức
một cách tự phát, rời rạc và không liên kết với nhau, vì vậy việc quản lý Hội thảo theo
phƣơng pháp truyền thống - quản lý trên giấy tờ - gặp nhiều khó khăn và gây tốn kém.
Đồng thời, việc thông báo (quảng bá) về Hội thảo cho những ai quan tâm cũng gặp
không ít trở ngại, nếu sử dụng phƣơng pháp quảng bá thông thƣờng nhƣ treo băng rôn hay phát tờ rơi thì sẽ tốn nhiều chi phí và hiệu quả thu đƣợc cũng không cao.
Nắm bắt đƣợc tầm quan trọng của công nghệ thông tin cùng với mục tiêu thực hiện
tốt công việc quản lý Hội thảo Khoa học trong tƣơng lai, cần phải ứng dụng tin học
hóa vào quản lý. Ứng dụng tin học hóa vào quản lý Hội thảo Khoa học là làm cho việc
quản lý trở nên mềm dẻo, linh động đồng thời tiết kiệm thời gian, chi phí nhƣng vẫn
đảm bảo mang lại hiệu suất cao.
1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ
Ứng dụng tin học vào quản lý không còn là một công việc xa lạ; đối với quản lý
Hội thảo cũng vậy. Mọi ngƣời có thể dễ dàng tìm thấy các trang web về Hội nghị, Hội
thảo Khoa học trên mạng internet chỉ với một vài cú nhấp chuột nhƣ:
- “Hội nghị Vật lý lý thuyết toàn quốc lần thứ 38” đƣợc tổ chức ở Đà Nẵng
(http://www.iop.vast.ac.vn/theor/conferences/nctp/38/) [6].
- “Hội thảo Quốc gia về Công nghệ thông tin và Truyền thông lần thứ XVI”
tại Đại học Duy Tân, Đà Nẵng (http://hoithao-cntt.org.vn/) [7].
Cùng với nhu cầu ngày càng tăng cao của những ngƣời yêu và có niềm đam mê với
Khoa học thì thông tin và các chức năng mà những Hội nghị, Hội thảo trên cung cấp là
chƣa đầy đủ. Ngƣời dùng chỉ có thể truy cập, xem thông tin cũng nhƣ đăng ký (gởi
báo cáo) chỉ riêng với một Hội thảo nhất định mà không thể xem hay truy cập đến
những Hội nghị, Hội thảo khác có liên quan.
Đó cũng chính là lý do để chúng tôi quyết định chọn đề tài “Xây dựng hệ thống
thông tin quản lý Hội thảo Khoa học” với mong muốn cải thiện những vấn đề mà các
chƣơng trình quản lý trƣớc đây đã bỏ sót.
1
1.3 PHẠM VI ĐỀ TÀI
o Xây dựng chƣơng trình ứng dụng với đầy đủ chức năng hỗ trợ cho việc quản lý
một Hội thảo Khoa học nhƣ các chƣơng trình ứng dụng trƣớc đã từng làm.
o Thiết kế thêm một chức năng mới nhằm đáp ứng nhu cầu về mặt thông tin của
ngƣời dùng đồng thời tạo sự liên kết giữa các Hội thảo Khoa học; mở rộng
phạm vi quản lý từ một Hội nghị hoặc Hội thảo đơn lẽ đến nhiều Hội nghị, Hội
thảo.
1.4 PHƢƠNG PHÁP NGHIÊN CỨU
Đầu tiên, cần phải xác định rõ những đối tƣợng nào sẽ tham gia vào chƣơng trình
và cách thức mà đối tƣợng đó tác động vào chƣơng trình. Ngoài ra, phải tìm hiểu xem
khi quản lý một Hội thảo Khoa học thì những thông tin, chức năng nào là cần thiết.
Công việc tiếp theo là sử dụng phần mềm Artisteer, thiết kế giao diện chính dựa
trên những trang web Hội nghị, Hội thảo (có sẵn) đã đƣợc xây dựng trên internet. Song
song với việc thiết kế giao diện, cần nắm rõ phƣơng thức hoạt động của các danh mục,
các chức năng đƣợc thiết kế trong giao diện.
Sau khi thiết kế xong giao diện chính, tôi sẽ xây dựng các mô hình và các sơ đồ
cần thiết nhƣ: mô hình cơ sở dữ liệu mức quan niệm, mô hình cơ sở dữ liệu mức vật
lý, mô hình cơ sở dữ liệu ER, sơ đồ chức năng use – case, sơ đồ lớp, sơ đồ tuần tự và
sơ đồ hoạt động bằng công cụ hỗ trợ Power Designer v15.1.
Từ mô hình cơ sở dữ liệu mức quan niệm, chuyển sang mô hình cơ sở dữ liệu mức
vật lý với lựa chọn MySQL 5.0, sau đó xuất ra tập tin .sql chứa các câu lệnh tạo bảng,
chuyển tập tin vào MySQL rồi thêm dữ liệu để sử dụng.
Khi đã có giao diện, có cơ sở dữ liệu đồng thời nhận biết và phân tích rõ ràng các
chức năng của chƣơng trình thì công việc cuối cùng là viết mã lệnh và xây dựng
chƣơng trình ứng dụng với phần mềm Zend Studio v10.1.
Bài báo cáo này bao gồm ba chƣơng: nội dung của chƣơng 1 giới thiệu sơ lƣợc về đề
tài Luận văn, nêu lên bối cảnh, lý do chọn đề tài cũng nhƣ những phƣơng pháp mà
chúng tôi thực hiện để xây dựng chƣơng trình ứng dụng. Những phần mềm, công cụ
hỗ trợ và các công nghệ đã sử dụng sẽ đƣợc giới thiệu trong chƣơng 2. Và cuối cùng,
chƣơng 3, trình bày về sản phẩm ứng dụng – kết quả đạt đƣợc và hƣớng phát triển sau
khi kết thúc quá trình nghiên cứu và thực hiện đề tài này.
2
CHƢƠNG 2: CƠ SỞ LÝ THUYẾT
Để xây dựng sản phẩm ứng dụng cho Luận văn, ngoài việc sử dụng các công cụ hỗ
trợ quen thuộc, chƣơng trình còn áp dụng một số công nghệ mới hiện nay nhƣ mô hình
MVC và Zend framework. Với khả năng tổ chức tập tin, mã lệnh một cách khoa học;
dễ dàng nâng cấp và chỉnh sửa sản phẩm; cùng với thƣ viện, cộng đồng ngƣời dùng
rộng lớn, MVC và Zend framework là hai công nghệ mới đƣợc các nhà lập trình ƣu
chuộng.
2.1 MÔ HÌNH MVC
2.1.1 Định nghĩa
Mô hình MVC (Model - View - Controller) [1] là một kiến trúc phần mềm (còn
đƣợc gọi là mẫu kiến trúc – architectural pattern) hay mô hình thiết kế, MVC đƣợc tạo
ra nhằm giải quyết các vấn đề phát sinh cũng nhƣ các giải pháp tổ chức mã trong quá
trình phát triển phần mềm. Nó giúp cho các nhà phát triển tách ứng dụng của họ thành
nhiều thành phần khác nhau, mỗi thành phần có một nhiệm vụ riêng biệt và độc lập
với các thành phần khác.
2.1.2 Các thành phần trong MVC
2.1.2.1 Model
Là thành phần [1] chứa tất cả các nghiệp vụ logic, phƣơng thức xử lý, truy xuất cơ
sở dữ liệu, đối tƣợng mô tả dữ liệu nhƣ các class (lớp), hàm xử lý,…
Model là các lớp java có nhiệm vụ:
- Nhận các yêu cầu từ View.
- Thực thi các yêu cầu đó (tính toán, kết nối cơ sở dữ liệu).
- Trả về các giá trị tính toán cho View.
Ngoài ra, Model có thể:
- Đánh giá tính hợp lệ của dữ liệu đầu vào.
- Chuyển đổi dữ liệu.
- Đƣa ra quyết định về nghiệp vụ.
- Thực hiện việc xử lý dữ liệu theo một quy trình nào đó.
Với hai vai trò tƣơng đối khác biệt [1] nên một Model thƣờng đƣợc tách thành các
lớp có các vùng xử lý riêng biệt.
3
- Vùng xử lý logic nghiệp vụ: thƣờng là xử lý các quy tắc hay chính sách của
nghiệp vụ cũng nhƣ quy trình nghiệp vụ.
- Vùng xử lý dữ liệu: cung cấp, lƣu trữ dữ liệu và chuyển đổi dữ liệu thành
các dạng khác nhau theo yêu cầu.
Trong các tình huống đơn giản, Model [1] chỉ làm vài thao tác đơn giản nhƣ lấy dữ
liệu từ cơ sở dữ liệu. Trong các tình huống phức tạp, việc xử lý có thể là tổ hợp của
hàng trăm lớp diễn ra trên một hoặc vài máy chủ (server), thậm chí dữ liệu hay quyết
định đƣợc đƣa ra từ Model lại là tổng hợp kết quả từ một vài trung tâm dữ liệu nằm rải
rác trên vài lục địa. Do vậy, trong Model không chỉ có các thao tác trên cơ sở dữ liệu
mà còn là trên tập tin hệ thống, bộ nhớ, networking I/O…
Model hoạt động nhƣ một tầng dịch vụ [1] nhằm có thể tái sử dụng giữa các
Controller. Khi Controller gọi Model thông qua các giao diện lập trình (API) của
Model, nó cần biết một số ứng xử chung của Model (ví dụ: cách thức mà Model gửi
tín hiệu và quá trình xử lý yêu cầu của nó; các lỗi ngoại lệ có xảy ra hay không, kiểu
của lỗi và lỗi trong trƣờng hợp nào…).
2.1.2.2 View
Đảm nhận công việc hiển thị thông tin, tƣơng tác với ngƣời dùng, nơi chứa tất cả
các đối tƣợng GUI nhƣ: textbox, images... Hiểu một cách đơn giản, nó là tập hợp các
form hoặc các file HTML.
View gồm hai phần chính [1]:
- Template file: định nghĩa cấu trúc và cách thức trình bày dữ liệu cho ngƣời
dùng nhƣ bố cục, màu sắc, khung nhìn….
- Logic: xử lý cách áp dụng dữ liệu vào cấu trúc trình bày. Phần này có thể
bao gồm việc kiểm tra định dạng dữ liệu, chuyển đổi dữ liệu sang một dạng
dữ liệu trung gian để có thể hiển thị với cấu trúc mẫu (template) đang có,
kiểm tra trạng thái và đặc tính của dữ liệu, lựa chọn một cấu trúc hiển thị
phù hợp.
Bản thân View cũng là một tổ hợp của nhiều lớp. Có thể có các View con để giảm
tải trên một số lớp chính và để sử dụng lại mã. Vì vậy, tính logic của View có thể là
logic của một cây phân cấp.
Trong mô hình truyền thống, View có trách nhiệm chuyển đổi dữ liệu hay trạng
thái của Model thành cấu trúc trực quan. Do vậy, dữ liệu của Model cần đƣợc định
nghĩa một cách hợp lý.
4
Sự tách biệt của hai thành phần này trong MVC sẽ giúp cho ngƣời lập trình phân
định đƣợc một biên giới rõ ràng giữa cách thức lƣu trữ (hoặc lấy dữ liệu) và cách trình
bày dữ liệu. Vì vậy, tính phức tạp của quy trình lấy dữ liệu, xử lý dữ liệu cũng nhƣ sự
thay đổi của chúng theo thời gian trƣớc khi trả về sẽ không làm ảnh hƣởng đến việc
trình bày dữ liệu. Rõ ràng, sự khác biệt về công nghệ lấy dữ liệu và công nghệ sinh
trang không gây ảnh hƣởng đến ứng dụng. Điều này khá quan trọng trong việc tích
hợp các ứng dụng. Ngoài ra, cách làm này thực sự đảm bảo việc tách biệt vai trò của
ngƣời thiết kế giao diện với vai trò của lập trình viên thiên về dữ liệu. Nhƣ vậy, khi
làm việc theo nhóm, ngƣời quản trị dự án có thể tổ chức nhóm phát triển thành các
nhóm kĩ năng và nhóm phát triển ứng dụng song song với nhau.
Các công nghệ thƣờng đƣợc sử dụng ở View là HTML, CSS và Java Script.
2.1.2.3 Controller
Là các lớp điều khiển luồng ứng dụng [1], giữ nhiệm vụ nhận và điều hƣớng các
yêu cầu từ ngƣời dùng và gọi đúng những phƣơng thức xử lý chúng... Chẳng hạn
thành phần này sẽ nhận yêu cầu từ url và form để thao tác trực tiếp với Model.
Tùy theo cách thiết kế lớp mà ngƣời dùng thƣờng thấy Controller gồm:
- Front Controller: là một controller xử lý tất cả các yêu cầu ngƣời dùng cho
trang web. Front Controller có nhiệm vụ hợp nhất tất cả các xử lý yêu cầu
vào một kênh yêu cầu thông qua một đối tƣợng.
- Dispatcher: lớp điều phối hƣớng các điều khiển đi mức cao hơn.
- Request: xử lý một phần dữ liệu đầu vào ở mức GET, POST.
- Session: xử lý một phần dữ liệu đầu vào ở mức SESSION.
Tùy theo dữ liệu đầu vào, Controller sẽ thực hiện các phép lọc (với dịch vụ lấy từ
Model), các tính toán lựa chọn (action mapping) dựa trên kiến trúc và cấu hình nhằm
xác định thành phần lớp chính sẽ thực hiện yêu cầu của ngƣời dùng. Hiểu một cách
đơn giản, Controller là thành phần trung gian (đồng bộ hóa) giữa View và Model. Nó
nhận dữ liệu nhập vào qua View, sau đó gọi Model tƣơng ứng rồi lấy kết quả trả về từ
Model này. Tiếp theo, một View thích hợp sẽ đƣợc lựa chọn, Controller sẽ chuyển tiếp
dữ liệu vào View đó để nó xử lý.
Một số hoạt động thƣờng thấy của Controller [1]:
- Tạo đối tƣợng View, gán các nguồn dữ liệu lấy đƣợc từ đối tƣợng dịch vụ
vào cho View.
- Tạo form, gửi tin nhắn đến form để yêu cầu kiểm tra dữ liệu.
5
- Tạo các dịch vụ liên quan đến nghiệp vụ ứng dụng, yêu cầu các lớp dịch vụ
tƣơng tác với nguồn dữ liệu để trả về hay thay đổi trạng thái dữ liệu: thực
hiện các thao tác chuyển đổi dữ liệu, kiểm tra quyền truy cập trên một hoạt
động cụ thể, tƣơng tác với cơ sở dữ liệu, tƣơng tác với các web service.
2.1.3 Cách thức hoạt động
MVC chia trách nhiệm công việc thành 3 phần riêng rẽ [1]:
- Phát triển (development): các nhà phát triển làm việc với Model. Đặc trƣng
của phần này là tận dụng một cách triệt để kiến thức, kỹ năng của các lập
trình viên liên quan tới thuật toán xử lý dữ liệu, quản trị cơ sở dữ liệu...
- Thiết kế (design): các nhà thiết kế làm việc trực tiếp với lớp View, chịu
trách nhiệm tạo ra "cảm quan" cho ứng dụng. Họ cần có kinh nghiệm làm
việc với HTML, CSS, Java Script và Graphic Design.
- Hợp nhất (intergration): phần này tồn tại trong lớp Controller. Mục đích
chính là gắn kết lập trình viên và chuyên viên thiết kế giao diện với nhau.
Ngƣời hợp nhất không cần có nhiều kinh nghiệm làm việc với dữ liệu nhƣ
lập trình viên nhƣng cần nắm rõ cách tổ chức của một ứng dụng.
2.1.4 Ƣu và nhƣợc điểm của mô hình MVC
Ƣu điểm [1]: thể hiện tính chuyên nghiệp trong lập trình và phân tích thiết kế. Do
đƣợc chia thành các thành phần độc lập nên giúp phát triển ứng dụng nhanh, đơn giản,
dễ nâng cấp, thay đổi giao diện của trang web và bảo trì phần mềm. Những phần mềm
đƣợc phát triển theo mô hình MVC sẽ có các thuận lợi sau đây:
- Việc thiết kế giao diện và lập trình có thể mang tính chất độc lập tƣơng đối.
- Khi có lỗi xảy ra, ngƣời lập trình sẽ dễ dàng tìm và định vị lỗi.
Nhƣợc điểm [1]: đối với dự án nhỏ việc áp dụng mô hình MVC gây cồng kềnh, tốn
thời gian trong quá trình phát triển, đồng thời tốn thời gian trung chuyển dữ liệu giữa
các thành phần.
2.1.5 Ứng dụng
Mô hình MVC [1] đƣợc áp dụng rất nhiều trong các Web framework hiện nay. Các
PHP framework phổ biến nhất:
- Zend framework: là sản phẩm của Zend – công ty “bảo trợ” cho PHP. Với
các tính năng mạnh mẽ, Zend framework thƣờng đƣợc sử dụng cho các công
6
ty lớn, và cần phải có lƣợng kiến thức khá sâu rộng về PHP để có thể sử
dụng đƣợc Zend framework.
- CakePHP: là một lựa chọn tốt cho những lập trình viên có kiến thức nâng
cao về PHP. Nó dựa trên cùng một nguyên tắc thiết kế với Ruby on Rails
(một framework dành cho những nhà phát triển các ứng dụng web bằng
ngôn ngữ Rail). Với các hệ thống hỗ trợ, tính đơn giản và môi trƣờng mở
cao đã giúp cho CakePHP trở thành một trong những framework phổ biến
nhất hiện nay.
- CodeIgniter: một MVC framework viết bằng PHP 4 (gần đây đã tƣơng thích
hoàn toàn với PHP 5.3.0 trong phiên bản 1.7.2). CodeIgniter đƣợc biết đến
nhƣ một framework dễ hiểu và dễ sử dụng, nó đƣợc Rasmus Lerdorf – cha
đẻ của ngôn ngữ PHP – đánh giá rất cao vì tính tinh giản về cấu trúc, đạt
hiệu năng cao khi vận hành. Không giống nhƣ Symfony, PHP framework
này phục vụ mục đích lý tƣởng cho việc xây dựng các ứng dụng chia sẻ, lƣu
trữ. Nó cung cấp các giải pháp đơn giản và có một thƣ viện video hƣớng dẫn
phong phú, có diễn đàn hỗ trợ và cung cấp sẵn một hƣớng dẫn sử dụng cho
ngƣời mới bắt đầu. PHP framework này rất phù hợp cho một ngƣời mới làm
quen với framework.
- Joomla! v1.5.x: một hệ quản trị nội dung nguồn mở đƣợc phát triển theo mô
hình MVC trong các phần mở rộng (extensions), bao gồm các thành phần
(components) và các mô đun (modules).
2.2 ZEND FRAMEWORK
2.2.1 Khái niệm
Zend framework [11] là một thƣ viện các lớp đƣợc xây dựng trên nền tảng ngôn
ngữ PHP, theo hƣớng đối tƣợng (OOP) và đƣợc công ty Zend phát triển.
Zend framework [2, 3, 11] là một trong các PHP framework đƣợc lập trình tuân
theo mô hình MVC. Zend framework có tính mềm dẻo, linh hoạt và dễ dàng tích hợp
các thƣ viện PHP có sẵn. Zend framework thƣờng đƣợc ứng dụng vào các dự án nguồn
mở lớn và các công ty có chứng chỉ CMMI (Cappability Maturity Model Integration).
Zend framework [3] tách các phần xử lý trong trang web một cách riêng biệt, giúp
cho mã lệnh đỡ rối rắm hơn, dễ quản lý, chỉnh sửa và nâng cấp.
Phiên bản hiện tại [2] của zend framework là 2.3 sử dụng PHP 5.3.
7
2.2.2 Tại sao phải sử dụng Zend framework
Sự khác biệt [2] khi sử dụng Zend framework:
- Zend framework đƣợc xây dựng trên nền tảng lập trình hƣớng đối tƣợng nên
có thể thừa kế, nâng cấp các ứng dụng dễ dàng.
- Thƣ viện Zend frameword rất đầy đủ và phong phú. Khi nghiên cứu và làm
việc với Zend framework sẽ thu đƣợc rất nhiều kiến thức mới.
- Mô hình MVC hoặc không theo chuẩn MVC trong Zend framework rất linh
hoạt giúp lập trình viên có thể tùy biến cấu hình ứng dụng theo ý muốn.
- Tích hợp thƣ viện, các thành phần khác một cách linh hoạt và nhanh chóng.
- Khi sử dụng và nghiên cứu Zend framework, các kỹ năng về xử lý mảng và
lập trình hƣớng đối tƣợng sẽ ngày càng hoàn thiện hơn. Đồng thời, có thể
học đƣợc nhiều cách xử lý hay trong lõi của Zend framework.
- Cộng đồng ngƣời sử dụng Zend framework rất rộng lớn.
- Những ứng dụng lớn đã dần chuyển qua dùng Zend framework làm nền
tảng.
- Nhu cầu tuyển dụng lập trình viên biết Zend framework tăng cao và hiện tại
gần nhƣ không đủ.
- Tính bảo mật của các ứng dụng rất tốt nên tránh đƣợc các lỗi thƣờng gặp
trong các ứng dụng viết bằng PHP thƣờng.
2.2.3 Các thành phần cơ bản trong Zend framework
Zend framework [3] có các thành phần cơ bản là:
- Zend_Controller: module này giúp lấy các yêu cầu từ phía Client và thực thi
nó bằng các Action.
- Zend_Db: dựa trên đối tƣợng PDO (PHP Data Objects), cung cấp cách thức
giao tiếp với cơ sở dữ liệu.
- Zend_View: đây chính là tầng View trong mô hình MVC.
- Zend_Acl: quản lý phân quyền cho toàn bộ trang web.
- Zend_Auth: hỗ trợ chứng thực ngƣời dùng.
- Zend_Feed: giúp xử lý các nguồn cung cấp dữ liệu nhƣ Rss và Atom.
- Zend_Validate: xác nhận các kiểu dữ liệu ngƣời dùng cung cấp gửi về
Server, và xét xem dữ liệu đó có đúng với yêu cầu hay không.
8
- Xem thêm -