Xây dựng hệ thống thông tin quản lý hội thảo khoa học

  • Số trang: 82 |
  • Loại file: PDF |
  • Lượt xem: 11 |
  • Lượt tải: 0
minhtuan

Đã đăng 15929 tài liệu

Mô tả:

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 -