Tên đề tài: Xây dựng hệ thống Website quản lý lịch công tác của nhân viên trong Thấy những khó khăn, hạn chế trong quản lý lịch công tác của nhân viên trong dự án của công ty SDTECH, việ
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
Trang 5Tên đề tài: Xây dựng hệ thống Website quản lý lịch công tác của nhân viên trong
Thấy những khó khăn, hạn chế trong quản lý lịch công tác của nhân viên trong dự
án của công ty SDTECH, việc xây dựng “hệ thống Website quản lý lịch công tác của nhân viên trong dự án công ty SDTECH” giúp quản lý giúp người quản lý, doanh nghiệp
có thể quản lý lịch công tác của nhân viên trong dự án một cách nhanh chóng, truy xuất
dữ liệu nhanh hơn và dễ dàng hơn
Trong quá trình làm việc tại công ty SDTECH em nhận thấy được những bất cập trong việc quản lý dự án, các nhân viên trong dự án, công tác, các chi phí trong quá trình
đi công tác từ đó em đã nghiên cứu và xây dựng và sẽ phát triển “hệ thống Website quản
lý lịch công tác của nhân viên trong dự án công ty SDTECH” giúp:
- Người quản trị (trưởng phòng) có thể cập nhật được các thông tin nhân viên, dự
án, bình chọn, lịch làm việc ngoài giờ của nhân viên, vai trò của nhân viên trong
Trang 6Giảng viên hướng dẫn: TS Hoàng Thị Mỹ Lệ
1 Tên đề tài:
Xây dựng hệ thống website quản lý lịch công tác của nhân viên trong dự án công
ty SDTECH
2 Nội dung chính của đồ án:
Quá trình xây dựng hệ thống website quản lý nội bộ công ty SDT gồm:
- Khảo sát nghiệp vụ thực tế
- Phân tích thiết kế các chức năng của hệ thống
- Thiết kế giao diện cho các chức năng
- Phân tích thiết kế cơ sơ dữ liệu
Trang 7Chúng em xin gửi lời cảm ơn chân thành và sâu sắc tới cô Hoàng Thị Mỹ Lệ đã hướng dẫn, giúp đỡ chúng em trong suốt thời gian thực hiện đề tài
Chúng em xin chân thành cảm ơn thầy cô bộ môn đã tận tình giảng dạy, truyền đạt kiến thức cho chúng em trong các kỳ học vừa qua
Xin chân thành cảm ơn tất cả bạn bè đã động viên, giúp đỡ chúng em trong thời gian học tập và hoàn thành đồ án
Mặc dù đã cố gắng nhiều nhưng sẽ không thể tránh khỏi những thiếu sót Chúng
em kính mong nhận được sự góp ý của quý Thầy Cô và các bạn để hoàn thành tốt hơn nữa
Sinh viên,
Phạm Ngọc Anh
Trang 8Chúng tôi xin cam đoan:
Những nội dung trong luận văn này do chúng em thực hiện dưới sự hướng dẫn của cô Hoàng Thị Mỹ Lệ
Mọi tham khảo trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố
Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, chúng em xin chịu hoàn toàn trách nhiệm
Sinh viên,
Phạm Ngọc Anh
Trang 9Ngày nay, công nghệ thông tin đã có những bước phát triển mạnh mẽ theo cả chiều rộng và sâu Máy tính điện tử không còn là một thứ phương tiện quý hiếm mà đang ngày càng trở thành một công cụ làm việc và giải trí thông dụng của con người, không chỉ ở công sở mà còn ngay cả trong gia đình
Đứng trước vai trò của thông tin hoạt động cạnh tranh gay gắt, các tổ chức và các doanh nghiệp đều tìm mọi biện pháp để xây dựng hoàn thiện hệ thống thông tin của mình nhằm tin học hóa các hoạt động tác nghiệp của đơn vị
Ngày nay, xu hướng phát triển công nghiêp hóa – hiện đại hóa đất nước ngày càng được đẩy mạnh Để có thể đáp ứng được khối công việc ngày càng gia tăng, đòi hỏi con người phải có phương pháp quản lý hợp lý giúp tiết kiệm thời gian và chi phí cũng như công sức lao động
Thấy những khó khăn, hạn chế trong quản lý lịch công tác của nhân viên trong dự án của công ty SDTECH , việc xây dựng một website quản lý giúp người quản lý, doanh nghiệp có thể quản lý lịch công tác của nhân viên trong dự án một cách nhanh chóng, truy xuất dữ liệu nhanh hơn và dễ dàng hơn.
Để tiếp cận và góp phần đẩy mạnh phát triển công nghệ thông tin ở Việt Nam, chúng em đã tìm hiểu và cài đặt “ Website quản lý lịch công tác của nhân viên trong dự án của công ty SDTECH”
Với sự hướng dẫn tận tình của Cô Hoàng Thị Mỹ Lệ chúng em đã hoàn thành đồ
án tốt nghiệp này Tuy đã cố gắng hết sức tìm hiểu, phân tích thiết kế và cài đặt hệ thống nhưng chắc rằng không tránh khỏi những thiếu sót Chúng em rất mong nhận được sự thông cảm và góp ý của quý Thầy cô
Chúng em xin chân thành cảm ơn!
Trang 10MỤC LỤC iv
DANH MỤC BẢNG BIỂU xi
DANH MỤC HÌNH VẼ xii
MỞ ĐẦU 1
1 Mục tiêu đề tài 1
2 Phương pháp nghiên cứu 1
3 Đối tượng nghiên cứu và phạm vi nghiên cứu 2
a Đối tượng nghiên cứu 2
b Phạm vi nghiên cứu 2
4 Lựa chọn giải pháp công nghệ 2
5 Cấu trúc đồ án 2
Chương 1 CƠ SỞ LÝ THUYẾT 3
1.1 Ngôn ngữ lập trình Java và MySQL: 3
1.1.1 Giới thiệu về ngôn ngữ lập trình Java: 3
1.1.1.1 Đặc điểm của ngôn ngữ lập trình Java 3
1.1.1.2 Độc lập phần cứng và hệ điều hành 3
1.1.1.3 Ngôn ngữ thông dịch 4
1.1.1.4 Cơ chế thu gom rác tự động 5
1.1.1.5 Đa luồng 5
1.1.1.6 Tính an toàn và bảo mật 5
1.1.1.7 Máy ảo Java (JVM – Java Virtual Machine) 6
1.1.1.8 Các loại ứng dụng được phát triển sử dụng Java 7
1.1.1.9 Các phiên bản của Java 7
Trang 111.1.2 Tổng quan về Liferay Portal 8
1.1.2.1 Tổng quan 8
1.1.2.2 Hình thành và phát triển: 9
1.1.2.3 Công nghệ và ngôn ngữ lập trình: 9
1.1.2.4 Môi trường triển khai: 10
1.1.2.5 Đáp ứng "Tiêu chuẩn Việt Nam": 10
1.1.2.6 Lợi ích của Liferay 7.2 đối với nhà phát triển Liferay Portal 10
1.1.3 Tổng quan về hệ quản trị cơ sở dữ liệu MySQL: 12
1.1.3.1 Hệ quản trị cơ sở dữ liệu MySQL là gì? 12
1.1.3.2 Đặc điểm của hệ quản trị cơ sở dữ liệu MySQL 13
1.1.3.3 Những lợi ích khi sử dụng hệ quản trị cơ sở dữ liệu MySQL 13
1.1.3.4 Hiệu năng sử dụng cao 14
1.1.3.5 MySQL hỗ trợ giao dịch mạnh mẽ 14
1.1.3.6 Tốc độ rất nhanh 15
1.1.3.7 Dễ dàng sử dụng 15
1.1.3.8 Hỗ trợ ngôn ngữ truy vấn 15
1.1.3.9 Tính kết nối và bảo mật cao 16
1.1.3.10 Tính linh động cao 17
1.1.3.11 Mã nguồn mở tự do và hỗ trợ 24/7 17
1.1.3.12 Chi phí sở hữu thấp nhất 17
1.1.4 Giới thiệu về Spring Boot 17
1.1.4.1 Đặc điểm 17
1.1.4.2 Sơ đồ hoạt động 18
1.1.5 Giới thiệu về mô hình MVC trong Spring Boot 18
Trang 121.1.5.2 Cấu trúc, hoạt động của mô hình 19
Chương 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 20
2.1 Đặc tả yêu cầu phần mềm (Software Requirements) 20
2.1.1 Quản trị viên (trưởng phòng) 20
2.1.1.1 Đăng nhập 20
2.1.1.2 Đăng xuất 20
2.1.1.3 Cập nhật 20
2.1.1.4 Xem 20
2.1.2 Nhân viên 21
2.1.2.1 Đăng nhập 21
2.1.2.2 Đăng xuất 21
2.1.2.3 Đăng ký làm việc ngoài giờ 21
2.1.2.4 Bình chọn 21
2.1.2.5 Xem 21
2.1.3 Quản lý dự án 21
2.1.3.1 Đăng nhập 21
2.1.3.2 Đăng xuất 21
2.1.3.3 Bình chọn 21
2.1.3.4 Cập nhập công tác cho dự án 21
2.1.3.5 Phê duyệt 21
2.1.3.6 Xem 21
2.1.4 Người phụ trách công tác 22
2.1.4.1 Đăng nhập 22
2.1.4.2 Đăng xuất 22
Trang 132.1.4.4 Cập nhật 22
2.1.4.5 Xem 22
2.2 Sơ đồ Usecase 23
2.3 Kịch bản cho Use-case 24
2.3.1 Actor Quản trị viên 24
2.3.1.1 Use-case Cập nhật nhân viên 24
2.3.1.2 Use-case Cập nhật dự án 24
2.3.1.3 Use-case Cập nhật vai trò của nhân viên dự án 24
2.3.1.4 Use-case Cập nhật bài viết – tin tức 25
2.3.1.5 Use-case Cập nhật bình chọn 25
2.3.2 Actor Nhân viên 26
2.3.2.1 Use-case bình chọn 26
2.3.2.2 Use-case Xem lịch làm lịch làm việc ngoài giờ 26
2.3.2.3 Use-case Xem thông tin dự án mình tham gia 26
2.3.2.4 Use-case Xem thông tin lịch công tác của các dự án mình tham gia 27
2.3.2.5 Use-case Xem thông tin cá nhân 27
2.3.2.6 Use-case Xem các nhân viên đi công tác trong các dự án mình tham gia 27
2.3.2.7 Use-case Xem các chi phí đi công tác trong các dự án mình tham gia 28
2.3.2.8 Use-case Xem vai trò của nhân viên trong dự án 28
2.3.2.9 Use-case Xem bài viết - tin tức 28
2.3.2.10 Use-case Đăng ký lịch làm việc ngoài giờ 29
2.3.3 Actor Người phụ trách công tác 29
Trang 142.3.3.2 Use-case Cập nhật chi phí đi công tác 30
2.3.4 Actor Người quản lý dự án 30
2.3.4.1 Use-case Cập nhật công tác cho dự án 30
2.3.4.2 Use-case Phê duyệt lịch làm việc ngoài giờ 30
2.3.4.3 Use-case Phê duyệt các chi phí đi công tác 31
2.4 Sơ đồ ERD 32
2.5 Sơ đồ hoạt động 33
2.5.1 Nhân viên 33
2.5.1.1 Sơ đồ hoạt động đăng nhập 33
2.5.1.2 Sơ đồ hoạt động bình chọn 34
2.5.1.3 Sơ đồ hoạt động xem lịch làm việc ngoài giờ 35
2.5.1.4 Sơ đồ hoạt động xem dự án 35
2.5.1.5 Sơ đồ hoạt động xem lịch công tác 36
2.5.1.6 Sơ đồ hoạt động xem nhân viên công tác 36
2.5.1.7 Sơ đồ hoạt động xem chi phí đi công tác 37
2.5.1.8 Sơ đồ hoạt động đăng ký lịch làm việc ngoài giờ 37
2.5.1.9 Sơ đồ hoạt động xem bài viết – tin tức 38
2.5.1.10 Sơ đồ hoạt động xem thông tin nhân viên 39
2.5.1.11 Sơ đồ hoạt đông xem vai trò nhân viên 39
2.5.2 Quản trị viên 40
2.5.2.1 Sơ đồ hoạt động cập nhật dự án 40
2.5.2.2 Sơ đồ hoạt động cập nhật vai trò dự án 41
2.5.2.3 Sơ đồ hoạt đông cập nhật bình chọn 42
2.5.3 Người quản lý dự án 44
Trang 152.5.3.2 Sơ đồ hoạt động duyệt chi phí đi công tác 45
2.5.3.3 Sơ đồ hoạt động cập nhật công tác cho dự án 45
2.5.4 Người phụ trách công tác 46
2.5.4.1 Sơ đồ hoạt động cập nhật nhân viên công tác 46
2.5.4.2 Sơ đồ hoạt động cập nhật chi phí công tác 46
Chương 3 XÂY DỰNG CHƯƠNG TRÌNH 47
3.1 Công cụ xây dựng chương trình 47
3.2 Giao diện chương trình 48
3.2.1 Giao diện trang người dùng 48
3.2.1.1 Giao diện trang chủ 48
3.2.1.2 Giao diện trang giới thiệu 49
3.2.1.3 Giao diện tin tức 50
3.2.1.4 Giao diện trang sự kiện 51
3.2.1.5 Giao diện trang tuyển dụng 52
3.2.1.6 Giao diện trang chi tiết tuyển dụng 53
3.2.1.7 Giao diện trang chi tiết tin tức 54
3.2.1.8 Giao diện bình chọn 55
3.2.2 Giao diện trang quản lý 57
3.2.2.1 Giao diện trang quản lý dự án 57
3.2.3 Giao diện quản lý nhân viên trong dự án 58
3.2.3.1 Admin 58
3.2.3.2 Nhân viên 59
3.2.4 Giao diện quản lý công tác 60
3.2.4.1 Admin 60
Trang 163.2.5 Giao diện quản lý chi tiết công tác cho dự án 62
3.2.5.1 Người phụ trách công tác 62
3.2.5.2 Quản lý dự án 65
3.2.5.1 Admin 66
3.2.6 Giao diện vai trò dự án 68
3.2.7 Giao diện quản lý bình chọn 68
3.2.8 Giao diện quản lý lịch làm việc ngoài giờ 69
3.2.8.1 Nhân viên 69
3.2.8.1 Quản lý dự án 71
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 73
TÀI LIỆU THAM KHẢO 75
Trang 17Bảng 2.1: Kịch bản cập nhật nhân viên 24
Bảng 2.8: Kịch bản xem thông tin lịch công tác của dự án mình tham gia 27
Bảng 2.10: Kịch bản xem các nhân viên đi công tác trong các dự án mình tham gia
28Bảng 2.11: Kịch bản xem các chi phí đi công tác trong các dự án mình tham gia 28Bảng 2.12: Kịch bản xem vai trò của nhân viên trong dự án 28
Bảng 2.15: Kịch bản cập nhật nhân viên đi công tác qua website 29Bảng 2.16: Kịch bản Cập nhật chi phí đi công tác qua website 30Bảng 2.17: Kịch bản cập nhật công tác cho dự án qua website 30
Bảng 2.19: Kịch bản phê duyệt các chi phí đi công tác qua website 31
Trang 18Hình 1.1: Mô hình thông dịch 4
Hình 1.2: Máy ảo Java 6
Hình 1.3: Các loại ứng dụng sử dụng Java 7
Hình 1.4: Các thành phần của Java 8
Hình 1.5: mySQL là một hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến hiện nay 12
Hình 1.6: mySQL ngày càng hoàn thiện và mang đến nhiều lợi ích cho người dùng 13
Hình 1.7: Tốc độ xử lý dữ liệu của mySQL rất nhanh 15
Hình 1.8: MySQL có tính kết nối và bảo mật cao 16
Hình 1.9: Nguyên lí hoạt động mô hình MVC 18
Hình 1.10: Luồng hoạt động của mô hình MVC 19
Hình 2.1: Sơ đồ Usecase 23
Hình 2.2: Sơ đồ ERD 32
Hình 2.3: Sơ đồ hoạt động đăng nhập 33
Hình 2.4: Sơ đồ hoạt động bình chọn 34
Hình 2.5: Sơ đồ hoạt động xem lịch làm việc ngoài giờ 35
Hình 2.6: Sơ đồ hoạt động xem dự án 35
Hình 2.7: Sơ đồ hoạt động xem lịch công tác 36
Hình 2.8: Sơ đồ hoạt động xem nhân viên công tác 36
Hình 2.9: Sơ đồ hoạt động xem chi phí công tác 37
Hình 2.10: Sơ đồ hoạt động đăng ký lịch làm việc ngoài giờ 37
Hình 2.11: Sơ đồ hoạt động xem bài viết – tin tức 38
Hình 2.12: Sơ đồ hoạt động xem thông tin nhân viên 39
Hình 2.13: Sơ đồ hoạt động xem vai trò nhân viên 39
Hình 2.14: Sơ đồ hoạt động cập nhật dự án 40
Hình 2.15: Sơ đồ hoạt động cập nhật vai trò dự án 41
Hình 2.16: Sơ đồ cập nhật bình chọn (Câu hỏi) 42
Hình 2.17: Sơ đồ hoạt động cập nhật bình chọn (Câu trả lời) 43
Hình 2.18: Sơ đồ hoạt động phê duyệt lịch làm việc ngoài giờ 44
Trang 19Hình 2.20: Sơ đồ hoạt động cập nhật công tác cho dự án 45
Hình 2.21: Sơ đồ hoạt động cập nhật nhân viên đi công tác 46
Hình 2.22: Sơ đồ hoạt động cập nhật chi phí công tác 46
Hình 3.1: Giao diện trang chủ 48
Hình 3.2: Giao diện trang giới thiệu 49
Hình 3.3: Giao diện trang tin tức 50
Hình 3.4: Giao diện trang sự kiện 51
Hình 3.5: Giao diện trang sự kiện 52
Hình 3.6: Giao diện trang chi tiết tuyển dụng 53
Hình 3.7: Giao diện trang chi tiết tin tức 54
Hình 3.8: Giao diện bình chọn (biểu đồ tròn) 55
Hình 3.9: Giao diện bình chọn (biểu đồ cột) 56
Hình 3.10: Giao diện trang quản lý dự án (Admin) 57
Hình 3.11: Giao diện trang them mới dự án (Admin) 57
Hình 3.12: Giao diện trang quản lý dự án (Nhân viên) 58
Hình 3.13: Giao diện quản lý nhân viên trong dự án (Admin) 58
Hình 3.14: Giao diện thêm mới nhân viên trong dự án (Admin) 59
Hình 3.15: Giao diện quản lý nhân viên trong dự án (Nhân viên) 59
Hình 3.16: Giao diện quản lý công tác (Admin) 60
Hình 3.17: Giao diện thêm mới tiền ứng cho công tác khi chi phí công đã được người quản lý công tác duyệt (Admin) 60
Hình 3.18: Giao diện quản lý công tác (Quản lý dự án) 61
Hình 3.19: Giao diện thêm mới công tác (Quản lý dự án) 61
Hình 3.20: Giao diện quản lý chi tiết công tác (Người phụ trách công tác) 62
Hình 3.21: Giao diện thêm mới chi tiết công tác (Người phụ trách công tác) 62
Hình 3.22: Nội dung mail từ chối chi phí công tác quản lý dự án gửi cho người phụ trách dự án 63
Hình 3.23: Thêm mới hóa đơn cho chi phí công tác sau khi đi công tác (người phụ trách công tác) 63
Trang 20công tác) 64
Hình 3.25: Giao diện quản lý chi tiết công tác (Người quản lý dự án) 65
Hình 3.26: Giao diện quản lý chi tiết công tác: Gửi mail từ chối chi phí công tác cho người phụ trách công tác (Người quản lý dự án) 65
Hình 3.27: Giao diện quản lý chi tiết công tác: Gửi mail duyệt chi phí công tác cho người phụ trách công tác (Người quản lý dự án) 66
Hình 3.28: Nội dung mail người phụ trách đã hoàn thành hoàn công tác phí (Admin) 66
Hình 3.29: Giao diện quản lý và duyệt chi phí cho công tác sau khi người phụ trách hoàn chi phí công tác 67
Hình 3.30: Giao diện quản lý vai trò dự án 68
Hình 3.31: Giao diện quản lý bình chọn 69
Hình 3.32: Giao diện quản lý làm việc ngoài giờ (Nhân viên) 69
Hình 3.33: Giao diện thêm mới lịch làm việc ngoài giờ 70
Hình 3.34: Giao diện gửi mail cho người quản lý dự án 70
Hình 3.35: Nội dung mail từ chối lịch làm việc ngoài giờ 70
Hình 3.36: Nội dung mail đồng ý lịch làm việc ngoài giờ 71
Hình 3.37: Giao diện quản lý danh sách đăng ký lịch làm việc ngoài giờ của nhân viên 71
Hình 3.38: Nội dung mail đăng ký làm việc ngoài giờ của nhân viên 72
Trang 21MỞ ĐẦU
Ngày nay, xu hướng phát triển công nghiêp hóa – hiện đại hóa đất nước ngày càng được đẩy mạnh Để có thể đáp ứng được khối công việc ngày càng gia tăng, đòi hỏi con người phải có phương pháp quản lý hợp lý giúp tiết kiệm thời gian và chi phí cũng như công sức lao động
Thấy những khó khăn, hạn chế trong quản lý lịch công tác của nhân viên trong dự
án của công ty SDTECH, việc xây dựng “hệ thống Website quản lý lịch công tác của nhân viên trong dự án công ty SDTECH” giúp quản lý giúp người quản lý, doanh nghiệp
có thể quản lý lịch công tác của nhân viên trong dự án một cách nhanh chóng, truy xuất
dữ liệu nhanh hơn và dễ dàng hơn
1 Mục tiêu đề tài
Trong quá trình làm việc tại công ty SDTECH em nhận thấy được những bất cập trong việc quản lý dự án, các nhân viên trong dự án, công tác, các chi phí trong quá trình
đi công tác từ đó em đã nghiên cứu và xây dựng và sẽ phát triển “hệ thống Website quản
lý lịch công tác của nhân viên trong dự án công ty SDTECH” giúp:
- Người quản trị (trưởng phòng) có thể cập nhật được các thông tin nhân viên, dự
án, bình chọn, lịch làm việc ngoài giờ của nhân viên, vai trò của nhân viên trong
- Người quản lý dự án có thể phê duyệt lịch làm việc ngoài giờ và chi phí công tác
2 Phương pháp nghiên cứu
Đề tài được nghiên cứu thông qua thứ tự các phương pháp sau:
- Khảo sát và Phân tích bài toán
- Lên ý tưởng giải quyết bài toán
- Nghiên cứu các công nghệ sẽ sử dụng
- Phân tích thiết kế hệ thống
- Xây dựng hệ thống
- Thử nghiệm và Ứng dụng
Trang 223 Đối tượng nghiên cứu và phạm vi nghiên cứu
a Đối tượng nghiên cứu
Lịch công tác của nhân viên trong các dự án
b Phạm vi nghiên cứu
Công ty Cổ phần Công nghệ số Thông Minh SDTECH
4 Lựa chọn giải pháp công nghệ
Ngôn ngữ lập trình: Java (Framework Spring Boot, Liferay Portal)
Hệ quản trị cơ sở dữ liệu: MySQL
Công cụ hỗ trợ: Star UML, IntelliJ IDEA, xampp
5 Cấu trúc đồ án
Mở đầu
Chương 1: Cơ sở lý thuyết
Chương 2: Phân tích thiết kế hệ thống
Chương 3: Xây dựng chương trình
Kết luận và hướng phát triển
Tài liệu tham khảo
Trang 23Chương 1
CƠ SỞ LÝ THUYẾT 1.1 Ngôn ngữ lập trình Java và MySQL:
1.1.1 Giới thiệu về ngôn ngữ lập trình Java:
- Java là một trong những ngôn ngữ lập trình hướng đối tượng Nó được sử dụng trong phát triển phần mềm, trang web, game hay ứng dụng trên các thiết
bị di động[1]
- Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun MicroSystem năm 1991 Ban đầu Java được tạo ra nhằm mục đích viết phần mềm cho các sản phẩm gia dụng, và có tên là Oak
- Java được phát hành năm 1994, đến năm 2010 được Oracle mua lại từ Sun MicroSystem
- Java được tạo ra với tiêu chí “Viết (code) một lần, thực thi khắp nơi” (Write Once, Run Anywhere – WORA) Chương trình phần mềm viết bằng Java có thể chạy trên mọi nền tảng (platform) khác nhau thông qua một môi trường thực thi với điều kiện có môi trường thực thi thích hợp hỗ trợ nền tảng đó
1.1.1.1 Đặc điểm của ngôn ngữ lập trình Java
- Trong quá trình tạo ra một ngôn ngữ mới phục vụ cho mục đích chạy được trên nhiều nền tảng, các kỹ sư của Sun MicroSystem muốn tạo ra một ngôn ngữ dễ học và quen thuộc với đa số người lập trình Vì vậy họ đã sử dụng lại các cú pháp của C và C++
- Tuy nhiên, trong Java thao tác với con trỏ bị lược bỏ nhằm đảo bảo tính an toàn và dễ sử dụng hơn Các thao tác overload, goto hay các cấu trúc như struct và union cũng được loại bỏ khỏi Java
Trang 24đề này Chương trình viết bằng ngôn ngữ Java có thể biên dịch trên nhiều loại máy khác nhau mà không gặp lỗi
- Ở cấp độ nhị phân: Một mã biên dịch có thể chạy trên nhiều nền tảng khác nhau mà không cần dịch lại mã nguồn Tuy nhiên cần có Java Virtual Machine để thông dịch đoạn mã này
- Ngôn ngữ lập trình Java thuộc loại ngôn ngữ thông dịch Chính xác hơn, Java
là loại ngôn ngữ vừa biên dịch vừa thông dịch Cụ thể như sau
- Khi viết mã, hệ thống tạo ra một tệp java Khi biên dịch mã nguồn của chương trình sẽ được biên dịch ra mã byte code Máy ảo Java (Java Virtual Machine) sẽ thông dịch mã byte code này thành machine code (hay native code) khi nhận được yêu cầu chạy chương trình
Hình 1.1: Mô hình thông dịch
- Ưu điểm : Phương pháp này giúp các đoạn mã viết bằng Java có thể chạy được trên nhiều nền tảng khác nhau Với điều kiện là JVM có hỗ trợ chạy trên nền tảng này
- Nhược điểm : Cũng như các ngôn ngữ thông dịch khác, quá trình chạy các đoạn mã Java là chậm hơn các ngôn ngữ biên dịch khác (tuy nhiên vẫn ở trong một mức chấp nhận được)
Trang 251.1.1.4 Cơ chế thu gom rác tự động
- Khi tạo ra các đối tượng trong Java, JRE sẽ tự động cấp phát không gian bộ nhớ cho các đối tượng ở trên heap
- Với ngôn ngữ như C \ C++, bạn sẽ phải yêu cầu hủy vùng nhớ mà bạn đã cấp phát, để tránh việc thất thoát vùng nhớ Tuy nhiên vì một lý do nào đó, bạn không hủy một vài vùng nhớ, dẫn đến việc thất thoát và làm giảm hiệu năng chương trình
- Ngôn ngữ lập trình Java hỗ trợ cho bạn điều đó, nghĩa là bạn không phải tự gọi hủy các vùng nhớ Bộ thu dọn rác của Java sẽ theo vết các tài nguyên đã được cấp Khi không có tham chiếu nào đến vùng nhớ, bộ thu dọn rác sẽ tiến hành thu hồi vùng nhớ đã được cấp phát
1.1.1.5 Đa luồng
- Java hỗ trợ lập trình đa tiến trình (multithread) để thực thi các công việc đồng thời Đồng thời cũng cung cấp giải pháp đồng bộ giữa các tiến trình (giải pháp sử dụng priority…)
1.1.1.6 Tính an toàn và bảo mật
- Tính an toàn
Ngôn ngữ lập trình Java yêu cầu chặt chẽ về kiểu dữ liệu
Dữ liệu phải được khai báo tường minh
Không sử dụng con trỏ và các phép toán với con trỏ
Java kiểm soát chặt chẽ việc truy nhập đến mảng, chuỗi Không cho phép sử dụng các kỹ thuật tràn Do đó các truy nhập sẽ không vượt quá kích thước của mảng hoặc chuỗi
Quá trình cấp phát và giải phóng bộ nhớ được thực hiện tự động
Cơ chế xử lý lỗi giúp việc xử lý và phục hồi lỗi dễ dàng hơn
- Tính bảo mật
Java cung cấp một môi trường quản lý chương trình với nhiều mức khác nhau
Mức 1: Chỉ có thể truy xuất dữ liệu cũng như phương phức thông qua giao diện mà lớp cung cấp
Mức 2: Trình biên dịch kiểm soát các đoạn mã sao cho tuân thủ các quy tắc của ngôn ngữ lập trình Java trước khi thông dịch
Mức 3: Trình thông dịch sẽ kiểm tra mã byte code xem các đoạn mã này có đảm bảo được các quy định, quy tắc trước khi thực thi
Trang 26 Mức 4: Java kiểm soát việc nạp các lớp vào bộ nhớ để giám sát việc vi phạm giới hạn truy xuất trước khi nạp vào hệ thống
1.1.1.7 Máy ảo Java (JVM – Java Virtual Machine)
- Để đảm bảo tính đa nền, Java sử dụng cơ chế Máy ảo của Java
- ByteCode là ngôn ngữ máy của Máy ảo Java tương tự như các lệnh nhị phân của các máy tính thực
- Một chương trình sau khi được viết bằng ngôn ngữ Java (có phần mở rộng là java) phải được biên dịch thành tập tin thực thi được trên máy ảo Java (có phần mở rộng là class) Tập tin thực thi này chứa các chỉ thị dưới dạng mã Bytecode mà máy ảo Java hiểu được phải làm gì
- Khi thực hiện một chương trình, máy ảo Java lần lượt thông dịch các chỉ thị dưới dạng Bytecode thành các chỉ thị dạng nhị phân của máy tính thực và thực thi thực sự chúng trên máy tính thực (còn gọi là khả năng khả chuyển)
- Máy ảo thực tế đó là một chương trình thông dịch Vì thế các hệ điều hành khác nhau sẽ có các máy ảo khác nhau Để thực thi một ứng dụng của Java trên một hệ điều hành cụ thể, cần phải cài đặt máy ảo tương ứng cho hệ điều hành đó
- JVM cung cấp môi trường thực thi cho chương trình Java (còn gọi là khả năng độc lập với nền)
- Có nhiều JVM cho các nền tảng khác nhau chẳng hạn như: Windows, Liux,
và Mac
Hình 1.2: Máy ảo Java
Trang 271.1.1.8 Các loại ứng dụng được phát triển sử dụng Java
Hình 1.3: Các loại ứng dụng sử dụng Java
1.1.1.9 Các phiên bản của Java
- Java Standard Edition (Java SE) – Là một nền tảng cơ bản cho phép phát
triển giao diện điều khiển, các ứng dụng mạng và các ứng dụng dạng Win Form
- Java Enterprise Edition (Java EE) – Được xây dựng trên nền tảng Java SE,
giúp phát triển các ứng dụng web, các ứng dụng ở cấp doanh nghiệp, …
- Java Mobile Edition (Java ME) – Là một nền tảng cho phép phát triển các
ứng dụng nhúng vào các thiết bị điện tử như mobile,…
1.1.1.10 Các thành phần của Java SE Platform
Trang 28Hình 1.4: Các thành phần của Java
1.1.2 Tổng quan về Liferay Portal
1.1.2.1 Tổng quan
Liferay Portal là giải pháp Cổng điện tử được thiết kế phù hợp với các
mô hình ứng dụng trong các cơ quan, tổ chức và doanh nghiệp có nhu cầu phát triển hệ thống thông tin trên môi trường web nhằm thực hiện các giao dịch trực tuyến và sử dụng Intranet/Internet như một công cụ thiết yếu trong các hoạt động, cung cấp thông tin, giao tiếp, quản lý và điều hành, trao đổi và cộng tác[2]
Là công cụ cho phép các cơ quan, tổ chức tự định nghĩa và quản trị
“Cổng thông tin/giao tiếp điện tử” của riêng mình, tự quản nội dung thông tin
và các dịch vụ trên mạng Intranet/Internet
Cho phép vận hành một quy trình xuất bản thông tin và các ứng dụng phần mềm trên quan điểm tích hợp chúng vào trong một giao diện website duy nhất
Trang 291.1.2.2 Hình thành và phát triển:
Liferay Portal là sản phẩm đứng đầu trong danh sách các sản phẩm portal mã nguồn mở trên thế giới hiện nay do tạp chí Inforworld.com và tổ chức Gartner đánh giá trong những năm vừa qua Liferay được phát triển từ năm 2000, với những bước tiến nhanh và bền vững, có nền tảng kiến trúc (Framework) ổn định, công nghệ tiên tiến, hỗ trợ các chuẩn công nghiệp phổ biến trên thế giới Về tính năng và công nghệ, Liferay Portal có thể sánh ngang với các sản phẩm thương mại hiện nay, và đặc biệt Liferay có cộng đồng phát triển ngày càng lớn mạnh, và có sự tham gia hậu thuẫn của Sun Microsystems
1.1.2.3 Công nghệ và ngôn ngữ lập trình:
Liferay Portal được phát triển trên các công nghệ tiên tiến, các công cụ
và ngôn ngữ lập trình hiện đại, phần dưới đây tóm lược các công nghệ, ngôn ngữ lập trình và môi trường phát triển Liferay Portal trên nền kiến trúc J2EE (Java 2 platform, Enterprise Edition): Liferay Portal sử dụng công nghệ mới nhất của Java, J2EE, tích hợp kiến trúc hướng dịch vụ SOA (Services-Oriented Architecture) và công nghệ Web 2.0 Hỗ trợ rộng rãi các chuẩn công nghiệp
và chuẩn mở (SOAP, LDAP, XML/XSL, SSL, JSR 170, JSR168, WSRP, Webservices, …) Tuân theo các kiến trúc trong đặc tả J2EE Liferay Portal trở thành một hệ thống mở và mềm dẻo, có khả năng tích hợp với các hệ thống
hạ tầng và các ứng dụng, các dịch vụ và các nguồn dữ liệu khác nhau Theo định hướng kiến trúc đó, Liferay Portal cung cấp một tập các giao diện để tích hợp với các hệ thống và ứng dụng bên ngoài, đảm bảo tính độc lập trong các hoạt động của phần nhân hệ thống Các dịch vụ và ứng dụng của Liferay Portal được phát triển một cách độc lập dưới dạng những kênh thông tin riêng của hệ thống (portlets) và tuân thủ chặt chẽ chuẩn phát triển ứng dụng trên portal JSR
168 và JSR 286 Với thiết kế như vậy, mọi nguồn thông tin và ứng dụng có thể được tích hợp một cách thống nhất vào hệ thống, và toàn bộ hệ thống có thể
dễ dàng được mở rộng ra theo mọi hướng chức năng Ngôn ngữ Java là một ngôn ngữ cho phép xây dựng các phần mềm chỉ cần viết một lần và có thể chạy ở mọi nơi, tức là các ứng dụng được viết bằng Java chạy được trên nhiều nền hệ thống khác nhau Windows, Linux, Unix,… Do đó Liferay Portal cũng
Trang 30thừa hưởng được các tính năng ưu việt đó Liferay Portal có thể chạy với nhiều web server và kết nối đến nhiều hệ cơ sở dữ liệu khác nhau như Oracle, SQL Server, My SQL, DB2,… nhờ vào một lớp (một thành phần) chuyên đảm nhận kết nối cơ sở dữ liệu để đảm bảo các lớp phía trên của Liferay Portal hoạt động độc lập không phụ thuộc vào hệ quản trị cơ sở dữ liệu cụ thể nào
1.1.2.4 Môi trường triển khai:
Liferay Portal được thiết kế trên nền tảng kiến trúc và công nghệ tiên tiên, hoạt động tương tích với hầu hết các hệ điều hành, hệ cơ sở dữ liệu và các web application server, Liferay Portal đảm bảo có thể vận hành độc lập trên các hệ điều hành khác nhau và tương thích với nhiều hệ quản trị cơ sở dữ liệu khác nhau, cung cấp một giải pháp phần mềm khung với độ ổn định và khả năng mở rộng cao, luôn sẵn sàng cho việc nâng cấp, phát triển và tích hợp các ứng dụng, dịch vụ trong tương lai mà không mất công chỉnh sửa hay xây dựng lại hệ thống trong tương lai Có thể thấy rằng, Liferay là giải pháp portal
ưu việt và hiệu quả, tiết kiệm chi phí xây dựng, triển khai, và là giải pháp bảo toàn đầu tư về lâu dài
1.1.2.5 Đáp ứng "Tiêu chuẩn Việt Nam":
Liferay Portal đáp ứng đầy đủ các tiêu chuẩn về tính năng và kỹ thuật
nêu trong Công văn số 1654/BTTTT-ƯDCNTT, ban hành ngày 27/05/2008 của
Bộ Thông tin và Truyền thông Đáp ứng đầy đủ các tiêu chuẩn bắt buộc
theo Quyết định số 20/2008/QĐ-BTTTT ban hành ngày 09/04/2008 của Bộ
Thông tin và truyền thông về Danh mục tiêu chuẩn về ứng dụng Công nghệ thông tin trong các cơ quan nhà nước, bao gồm các chuẩn về kết nối như HTTP, FTP, LDAP, DNS, POP3, TCP/IP, ; các chuẩn về tích hợp dữ liệu như: XML, XSL, RDF, UTF-8,…; và nhiều tiêu chuẩn khác
1.1.2.6 Lợi ích của Liferay 7.2 đối với nhà phát triển Liferay Portal
1.1.2.6.1 Đơn giản hơn và gọn gàng hơn
- Liferay luôn đơn giản và gọn gàng, so với các lựa chọn thay thế khác
- Liferay 7.2 đơn giản hơn so với các thế hệ trước đó, nhờ vào cấu trúc
Trang 31mô Liferay 7.2 cũng gọn gàng hơn Phần lõi được mômô đun hóa cho phép loại bỏ các phần không cần thiết, tạo điều kiện cho việc triển khai, giảm thời gian khởi động, dẫn đến hiệu quả hơn và cải thiện hiệu suất
- Mô hình phát triển mô-đun
- Ngoài việc xây dựng các plugin, chúng ta có thể tận dụng lợi thế của runtime system và phát triển mô-đun hoàn chỉnh dựa trên các tiêu chuẩn OSGi (OSGi là một bộ tiêu chuẩn để xây dựng các hệ thống mô-đun) Liferay tạo điều kiện thuận lợi cho việc tạo các ứng dụng bằng cách tạo và sử dụng lại các mô-đun
- Mô-đun được phân phối dưới dạng tệp JAR Một ứng dụng Liferay có thể bao gồm một mô-đun đơn lẻ hoặc nhiều mô-đun tùy thích Các mô-đun có thể kết hợp, cho phép chúng ta xây dựng các ứng dụng bằng cách kết hợp các phần nhỏ để dễ phát triển, triển khai, bảo trì và tái sử dụng
1.1.2.6.2 Khả năng tái sử dụng
- Liferay 7.2 cho phép khả năng tái sử dụng cao hơn, cả về code và bộ nhớ runtime
1.1.2.6.3 Mở rộng hơn, dễ bảo trì hơn
- Chúng ta có thể tùy chỉnh hầu hết các chi tiết và thêm chức năng của riêng mình
- Tất cả các điểm mở rộng đã được nâng cấp, đều sử dụng cơ chế mở rộng mới dựa trên mô hình OSGi Một số lợi ích của cơ chế:
- Đơn giản hơn: Việc triển khai một điểm mở rộng bây giờ luôn là một lớp Java triển khai một interface và có một anotation (@Component)
- Dễ bảo trì hơn: Các điểm mở rộng giờ đây được xác định chặt chẽ hơn thông qua giao diện Java sử dụng các quy tắc Semantic Versioning rules Có nghĩa
là các tiện ích mở rộng có thể hoạt động mà không cần thay đổi
- Dynamic (Động): Các tiện ích mở rộng có thể được cài đặt và gỡ bỏ bất kỳ lúc nào trong quá trình phát triển
1.1.2.6.4 Tối ưu hóa cho việc lựa chọn công cụ lập trình
- Liferay 7.2 cho phép sử dụng các công cụ mà chúng ta thích
1.1.2.6.5 Khả năng cấu hình mạnh mẽ
- Có thể định cấu hình dễ dàng với Liferay 7.2 Các ứng dụng sử dụng API cấu hình mới của Liferay cho phép quản trị viên thay đổi cấu hình nhanh chóng
Trang 321.1.2.6.6 Quản lý user và tổ chức
1.1.2.6.7 Phân quyền
1.1.2.6.8 Tùy biến các thuộc tính của giao diện để sử dụng cho nhiều site khác nhau trên cùng một bộ theme
1.1.2.6.9 Tạo thêm các layout để phù hợp với bố cục của từng trang web
1.1.2.6.10 Kéo thả các portlet vào vị trí thích hợp của trang web
1.1.3 Tổng quan về hệ quản trị cơ sở dữ liệu MySQL:
1.1.3.1 Hệ quản trị cơ sở dữ liệu MySQL là gì?
Hình 1.5: mySQL là một hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến hiện nay
- Hệ quản trị cơ sở dữ liệu MySQL được hiểu như là chương trình dùng để quản lý hệ thống cơ sở dữ liệu[3] Trong đó, cơ sở dữ liệu là một hệ thống lưu trữ thông tin được sắp xếp rõ ràng, phân lớp ngăn nắp Nó giúp bạn có thể truy cập dữ liệu một cách thuận lợi và nhanh chóng nhất Vì hỗ trợ đa
số các ngôn ngữ lập trình nên MySQL chính là hệ quản trị cơ sở dữ liệu tự
do nguồn mở phổ biến nhất trên thế giới Hiện MySQL đang được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng
- MySQL là cơ sở dữ liệu tốc độ cao, ổn định hoạt động trên nhiều hệ điều hành, cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Đặc biệt, hệ quản trị cơ sở dữ liệu MySQL hoàn toàn miễn phí nên người dùng có thể thoải mái tải về từ trang chủ Nó có rất nhiều những phiên bản cho các hệ
Trang 33điều hành khác nhau MySQL được sử dụng cho việc bỗ trợ PHP, Perl và nhiều ngôn ngữ khác Là nơi lưu trữ những thông tin trên các trang web viết bằng framework PHP hay Perl…
1.1.3.2 Đặc điểm của hệ quản trị cơ sở dữ liệu MySQL
- Hệ quản trị cơ sở dữ liệu MySQL chính là một trong những phần mềm quản trị CSDL dạng server based, hệ gần giống với SQL server of Microsoft
- MySQL là phần mềm quản lý dữ liệu thông qua CSDL Và mỗi một CSDL đều có bảng quan hệ chứa dữ liệu riêng biệt
- MySQL có cơ chế quản lý sử dụng riêng giúp cho mỗi người sử dụng đều
có thể quản lý cùng lúc một hay nhiều CSDL khác nhau Và mỗi người dùng đều có 1 username và password để truy nhập và truy xuất đến CSDL Khi truy vấn đến CSDL của MySQL, bạn phải cung cấp tài khoản và mật khẩu
có quyền sử dụng cơ sở dữ liệu đó
- MySQL tương thích tốt với môi trường PHP, giúp hệ thống hoạt động mạnh
mẽ Bạn có thể viết hoặc chỉnh sửa code MySQL trên các IDE dành cho PHP, một số công cụ hỗ trợ mà bạn có thể tham khảo thêm tại http://free-php-editor.com/
1.1.3.3 Những lợi ích khi sử dụng hệ quản trị cơ sở dữ liệu MySQL
Hình 1.6: mySQL ngày càng hoàn thiện và mang đến nhiều lợi ích cho người dùng
Trang 34- Ra mắt người dùng hoàn toàn miễn phí, hệ quản trị cơ sở dữ liệu MySQL mang đến rất nhiều những lợi ích thiết thực, được ứng dụng trong nhiều dự án của các công ty công nghệ, một trong số đó có thể kể đến những công ty chuyên lập trình như MonaMedia, Misa,… cùng chúng tôi tìm hiểu những lợi ích thiết thực của mySQL ngay dưới đây:
1.1.3.4 Hiệu năng sử dụng cao
- Hầu hết, hệ quản trị cơ sở dữ liệu MySQL đang được các nhà phát triển rất
ưa chuộng trong quá trình phát triển ứng dụng Và họ đánh giá rất cao ở hiệu năng sử dụng của MySQL Với kiến trúc storage-engine, MySQL đặc trưng cho các ứng dụng chuyên biệt, đặc biệt là đối với những trang web có dung lượng lớn, phục vụ hàng triệu khách hàng Hoặc đối với những hệ thống xử lý giao dịch tốc độ cao thì MySQL đều cùng có thể đáp ứng được những khả năng xử lý khắt khe của mọi hệ thống Đặc biệt, với những tiện ích tải tốc độ cao, cơ chế xử lý nâng cao cùng bộ nhớ cache MySQL đưa
ra tất cả những tính năng cần có, đây là giải pháp hoàn hảo nhất ngay cả đối với những hệ thống doanh nghiệp khó tính nhất hiện nay
1.1.3.5 MySQL hỗ trợ giao dịch mạnh mẽ
- Hệ quản trị cơ sở dữ liệu MySQL không những mang lại hiệu năng sử dụng cao Mà nó còn đưa ra một trong số những engine giao dịch cơ sở dữ liệu tốt nhất trên thị trường hiện nay Tính năng này bao gồm: Khóa mức dòng không hạn chế; hỗ trợ giao dịch ACID hoàn thiện; khả năng giao dịch được phân loại và hỗ trợ giao dịch đa dạng mà người đọc không cản trở cho người viết và ngược lại Với MySQL, dữ liệu sẽ được đảm bảo trong suốt quá trình server có hiệu lực Các mức giao dịch độc lập sẽ được chuyên môn hóa, nếu phát hiện có lỗi khóa chết ngay tức thì
Trang 351.1.3.6 Tốc độ rất nhanh
Hình 1.7: Tốc độ xử lý dữ liệu của mySQL rất nhanh
- Đánh giá chung của các nhà phát triển, tất cả họ đều cho rằng hệ quản trị cơ
sở dữ liệu MySQL là cơ sở dữ liệu nhanh nhất Đây là nơi để cho các website có thể trao đổi thường xuyên các dữ liệu bởi nó có engine xử lý tốc
độ cao Khả năng chèn dữ liệu cực nhanh và hỗ trợ mạnh mẽ các chức năng chuyên dụng cho trang web Các tính năng này cũng được sử dụng cho môi trường lưu trữ dữ liệu mà hệ quản trị này tăng cường đến hàng terabyte cho các server đơn Ngoài ra còn có những tính năng khác như: chỉ số băm, bảng nhớ chính, bảng lưu trữ và cây B được gói lại để giúp giảm các yêu cầu lưu trữ tối đa đến 80% Với tốc độ nhanh, thật không thể phủ nhận hệ quản trị
cơ sở dữ liệu MySQL là sự lựa chọn tốt nhất cho cả ứng dụng web cũng như các ứng dụng của doanh nghiệp ngày nay
1.1.3.7 Dễ dàng sử dụng
- MySQL ngoài được biết đến với tốc độ khá cao, ổn định thì nó thực sự là một hệ thống cơ sở dữ liệu rất đơn giản, rất dễ sử dụng Ít phức tạp khi cài đặt và quản trị hơn các hệ thống lớn Đặc biệt nó có thể hoạt động trên tất
cả các hệ điều hành
1.1.3.8 Hỗ trợ ngôn ngữ truy vấn
- MySQL hệ quản trị cơ sở dữ liệu là ngôn ngữ của sự lựa chọn cho tất cả các
hệ thống cơ sở dữ liệu hiện đại Người dùng hoàn toàn có thể truy cập MySQL bằng cách sử dụng các ứng dụng mà hỗ trợ ODBC (một giao thức giao tiếp cơ sở dữ liệu được phát triển bởi Microsoft) Nhiều client có thể truy cập đến server trong cùng một thời gian Đặc biệt các client có thể sử
Trang 36dụng nhiều cơ sở dữ liệu một cách đồng thời Bạn cũng có thể truy cập MySQL tương tác với khi sử dụng một vài giao diện để đưa vào các truy vấn và xem kết quả như: các dòng yêu cầu của khách hàng, các trình duyệt web…
1.1.3.9 Tính kết nối và bảo mật cao
Hình 1.8: MySQL có tính kết nối và bảo mật cao
- Điều quan trọng nhất của mỗi một doanh nghiệp chính là việc bảo mật dữ liệu tuyệt đối Và hệ quản trị cơ sở dữ liệu MySQL tích hợp các tính năng bảo mật an toàn tuyệt đối MySQL được nối mạng một cách đầy đủ Các cơ
sở dữ liệu có thể được truy cập từ bất cứ nơi nào trên internet Bạn có thể chia sẻ dữ liệu của bạn với bất kì ai, bất cứ lúc nào và bất cứ nơi đâu bạn muốn Nhưng MySQL kiểm soát quyền truy cập nên người không nên nhìn thấy dữ liệu của bạn sẽ không thể nào nhìn được Với việc xác nhận truy cập cơ sở dữ liệu, MySQL trang bị các kĩ thuật mạnh Chỉ có những người
sử dụng đã được xác nhận mới truy cập được vào cơ sở dữ liệu Ngoài ra, SSH và SSL cũng được hỗ trợ nhằm đảm bảo kết nối an toàn và bảo mật Tiện ích backup và recovery cung cấp bởi MySQL hệ quản trị cơ sở dữ liệu và các hãng phần mềm thứ 3 cho phép backup logic và vật lý cũng như recovery toàn bộ ngay tại một thời điểm
Trang 371.1.3.10 Tính linh động cao
- MySQL có thể hoạt động trên tất cả các hệ điều hành, chạy được với mọi phần cứng từ các máy PC ở nhà cho đến các máy server Máy chủ hệ quản trị cơ sở dữ liệu MySQL đáp ứng nhiều tính năng linh hoạt Nó có sức chứa
để xử lý các ứng dụng được nhúng sâu với 1MB dung lượng để chạy kho
dữ liệu khổng lồ lên đến hàng terabytes thông tin Tính chất mã nguồn mở của MySQL cho phép tùy biến theo ý muốn để thêm các yêu cầu phù hợp cho database server
1.1.3.11 Mã nguồn mở tự do và hỗ trợ 24/7
- Băn khoăn của rất nhiều doanh nghiệp khi họ gặp khó khăn trong việc giao toàn bộ phần mềm cho một mã nguồn mở Bởi khó có thể tìm được hỗ trợ hay bảo mật an toàn phục vụ một cách chuyên nghiệp Nhưng vấn đề khó khăn này sẽ không còn nữa nếu sử dụng hệ quản trị cơ sở dữ liệu MySQL Với MySQL, mọi sự cam kết đều rất rõ ràng, mọi sự cố đều được MySQL bồi thường Bạn có thể tìm thấy các tài nguyên có sẵn mà hệ quản trị này hỗ trợ Cộng đồng MySQL rất có trách nhiệm Họ thường trả lời các câu hỏi trên mailing list chỉ trong vài phút Nếu lỗi xảy ra, các nhà phát triển
sẽ đưa ra cách khắc phục nhanh nhất cho bạn Và cách khắc phục đó sẽ ngay lập tức có sẵn trên internet
1.1.3.12 Chi phí sở hữu thấp nhất
- Hệ quản trị cơ sở dữ liệu MySQL cung cấp miễn phí cho hầu hết các việc
sử dụng trong một tổ chức Chính vì vậy, sử dụng MySQL cho các dự án, các doanh nghiệp đầu nhận thấy được sự tiết kiệm cho phí rất đáng kể Người dùng của MySQL cũng không phải mất nhiều thời gian để sửa chữa hoặc vấn đề thời gian chết
- Không gì hoàn hảo hơn khi doanh nghiệp của bạn có được sự hỗ trợ đắc lực
từ hệ quản trị cơ sở dữ liệu MySQL Cơ hội phát triển sẽ nằm ngay trong tầm tay bạn thật đơn giản, dễ dàng, hiệu quả cao
1.1.4 Giới thiệu về Spring Boot
1.1.4.1 Đặc điểm
Spring Boot là một dự án phát triển bởi JAV (ngôn ngữ java) trong hệ
sinh thái Spring framework Nó giúp cho các lập trình viên chúng ta đơn giản
Trang 38hóa quá trình lập trình một ứng dụng với Spring, chỉ tập trung vào việc phát triển business cho ứng dụng[4]
1.1.4.2 Sơ đồ hoạt động
Hình 1.9: Nguyên lí hoạt động mô hình MVC
1.1.5 Giới thiệu về mô hình MVC trong Spring Boot
1.1.5.1 Đặc điểm
Model – View – Controller (MVC) là một mẫu thiết kế nhằm mục tiêu chia tách phần Giao diện và Code để dễ quản lý[5] Phát triển và bảo trì MVC chia ứng dụng phần mềm ra làm 3 phần có tương tác với nhau là Model (Dữ liệu), View (Giao diện), Controller (Code điều khiển tương tác giữa Model và View cũng như nghiệp vụ (Business))
Trang 391.1.5.2 Cấu trúc, hoạt động của mô hình
Hình 1.10: Luồng hoạt động của mô hình MVC
Trang 40Chương 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2.1 Đặc tả yêu cầu phần mềm (Software Requirements)
2.1.1 Quản trị viên (trưởng phòng)
2.1.1.4.3 Thông tin công tác
2.1.1.4.4 Thông tin cá nhân của nhân viên
2.1.1.4.5 Nhân viên đi công tác
2.1.1.4.6 Chi phí đi công tác
2.1.1.4.7 Vai trò nhân viên trong dự án
2.1.1.4.8 Bài viết – Tin tức