Xây dựng CMS MODULE cho hệ thống internet của công ty TMA
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM ĐẶNG ĐÌNH VƯƠNG BÙI VĨNH PHÚ XÂY DỰNG CMS MODULE CHO HỆ THỐNG INTRANET CỦA CÔNG TY TMA KHÓA LUẬN CỬ NHÂN TIN HỌC TP. HCM, NĂM 2005 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM ĐẶNG ĐÌNH VƯƠNG – 0112458 BÙI VĨNH PHÚ – 0112024 XÂY DỰNG CMS MODULE CHO HỆ THỐNG INTRANET CỦA CÔNG TY TMA KHÓA LUẬN CỬ NHÂN TIN HỌC GIÁO VIÊN HƯỚNG DẪN TS. TRẦN VIẾT HUÂN KS. NGUYỄN TẤN HỘ KS. LÊ THANH NHÀN TP. HCM, NĂM 2005 LỜI CẢM ƠN Chúng tôi xin chân thành cảm ơn Khoa Công nghệ Thông tin, trường Đại học Khoa học Tự nhiên, Thành phố Hồ Chí Minh và Công ty TMA đã tạo điều kiện cho chúng tôi thực hiện đề tài tốt nghiệp này. Xin cảm ơn Thầy Trần Viết Huân, Anh Nguyễn Tấn Hộ, Anh Lê Thanh Nhàn, người đã tận tình hướng dẫn, chỉ bảo chúng tôi trong suốt thời gian thực tập tại Công ty. Chúng tôi cảm ơn các anh chị trong nhóm TIS đã giúp đỡ, đóng góp ý kiến cho chúng tôi trong quá trình cài đặt, thử nghiệm chương trình. Xin gửi lời cảm ơn chân thành đến gia đình, ba mẹ và bè bạn vì đã luôn là nguồn động viên to lớn, giúp đỡ chúng tôi vượt qua những khó khăn trong suốt quá trình làm việc. Mặc dù đã cố gắng hoàn thiện luận văn với tất cả sự nỗ lực của bản thân, nhưng chắc chắn không thể tránh khỏi những thiếu sót. Kính mong quý Thầy Cô tận tình chỉ b ảo. Một lần nữa, chúng tôi xin chân thành cảm ơn và luôn mong nhận được sự đóng góp quý báu của tất cả mọi người. Tháng 7 năm 2005 Đặng Đình Vương Bùi Vĩnh Phú Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA MỤC LỤC DANH SÁCH CÁC HÌNH VẼ 1 MỘT SỐ KÝ HIỆU VÀ TỪ VIẾT TẮT 4 MỞ ĐẦU .6 Chương 1 Giới thiệu đề tài 7 TỔNG QUAN .12 Chương 2 Tổng quan về sự phát triển của các hệ CMS .13 NGHIÊN CỨU 16 Chương 3 Nhu cầu sử dụng hệ CMS trong các tổ chức 17 1. Nhu cầu hiện tại 18 1.1 Tình hình các web site của các tổ chức ở Việt Nam .18 1.2 Nhu cầu cập nhật và quản lý nội dung 18 1.2.1 Nhu cầu của các doanh nghiệp .18 1.2.2 Nhu cầu của các tờ báo điện tử 20 1.2.3 Nhu cầu trong các hệ thống thông tin của các công ty 21 2. Những lợi ích mà một hệ CMS mang lại cho các công ty 23 Chương 4 Hệ thống intranet hiện tại của công ty .25 1. Yêu cầu khi phát triển hệ thống intranet của công ty TMA .26 1.1 Tình hình hiện tại 26 1.2 Quy định về kiến trúc 27 1.2.1 Kiến trúc mạnh .27 1.2.2 Xây dựng các công cụ hệ thống phi chức năng .28 1.2.3 Bảo mật 28 1.2.4 Khả năng tích hợp 29 1.3 Yêu cầu lúc phát triển .29 2. Portal hiện tại của TMA .30 2.1 Đặc điểm và các thành phần của portal 30 2.2 Các thành phần đã được xây dựng 31 2.3 Kiến trúc hệ thống của portal 34 2.3.1 Kiến trúc hệ thống của các portal phổ biến 34 2.3.2 Kiến trúc hệ thống của portal TMA .35 3. Công nghệ được sử dụng để phát triển hệ thống intranet .36 Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA 4. Các chuẩn dùng để phát triển hệ thống .36 5. Nhu cầu của công ty TMA khi xây dựng một hệ CMS 37 5.1 Nhu cầu chia sẻ thông tin giữa các dự án và các vị trí công việc .39 5.2 Xây dựng hệ CMS dưới dạng một portlet có thể được sử dụng bởi các ứng dụng và các thành phần khác 41 5.3 Các kỹ thuật sử dụng trong quá trình phát triển 41 Chương 5 Chuẩn JSR 168 .43 1. Giới thiệu về chuẩn JSR 168 44 2. Một số khái niệm chính 45 2.1 Portal .45 2.2 Portlet 45 2.3 Portlet Container .46 3. So sánh Portlet và Servlet .46 3.1 Điểm giống nhau giữa Portlet và Servlet 46 3.2 Điểm khác nhau giữa Portlet và Servlet .46 3.3 Đặc trưng của Portlet mà không có ở servlet 47 4. Giao diện portlet .47 5. Portlet URL .48 6. Portlet Mode .48 7. Window State 49 8. Portlet Request 50 9. Portlet Response .50 10. Portlet Preferences 51 11. Caching .51 12. Ứng dụng Portlet .53 12.1 Các thành phần của ứng dụng Portlet .53 12.2 Cấu trúc cây thư mục 53 12.3 Tập tin lưu trữ của ứng dụng Portlet .54 13. Các đặc tả đóng gói và triển khai 54 13.1 Đặc tả triển khai của ứng dụng Web và ứng dụng Portlet 54 13.2 Triển khai ứng dụng Portlet và ứng dụng Web .55 13.3 Các thành phần của đặc tả triển khai Portlet .55 13.4 Tính duy nhất của các giá trị trong đặc tả triển khai Portlet .59 14. Thư viện các thẻ Portlet 59 14.1 Thẻ actionURL 60 14.2 Thẻ renderURL .60 Chương 6 Chuẩn JSR 170 .61 1. Giới thiệu về chuẩn JSR 170 62 2. Mô hình repository 63 Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA 3. Một số API cơ bản 64 3.1 Thao tác trên repository 66 4. Sự liên hệ giữa Node, Property và Item 67 5. Sự sắp xếp các Item con .67 6. Namespace 68 7. Property .69 7.1 Property đa trị 69 7.2 Các kiểu dữ liệu của Property .69 7.2.1 Kiểu Date 70 7.2.2 Kiểu Reference, Path và Name 70 8. Node 71 8.1 Quan hệ giữa các node cùng tên và cùng cha ( Same-Name Siblings ) .71 8.2 Các kiểu của Node 71 8.2.1 Kiểu node chính và kiểu node phụ .73 8.2.2 Property definitions 73 8.2.3 Child Node Definitions 74 8.2.4 Các kiểu node được định nghĩa sẵn .75 8.3 Node tham chiếu (Referenceable Nodes) .78 9. Workspace 79 9.1 Repository có một workspace .79 9.2 Repository có nhiều Workspace và sự tương ứng các node .80 10. Tạo phiên bản ( Versioning ) 82 10.1 Version History .83 10.2 Mối quan hệ giữa các versionable node và version history 84 10.3 Đồ Thị Biểu Diễn Các Phiên Bản Trên Repository 84 10.4 Phiên Bản Cơ Bản (Base Version) 85 10.5 Khởi Tạo Một Version History .85 10.6 Tạo Phiên Bản Mới Của Một Node 86 10.7 Phục Hồi Lại Trạng Thái Trước Đó Của Node 87 10.8 Checkout .88 10.9 Update .88 10.10 Các Node Có Thể Tạo Phiên Bản Trên Repository 89 10.11 Thuộc Tính OnParentVersion .91 10.11.1 COPY .92 10.11.2 VERSION .93 10.11.3 INITIALIZE .93 10.11.4 COMPUTE .94 10.11.5 IGNORE .94 10.11.6 ABORT 94 10.12 Ví dụ về một Repository có hỗ trợ tạo phiên bản .95 Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA 11. Lắng Nghe Sự Kiện Trên Repository (Observation) 96 11.1 Phát sinh sự kiện .96 11.2 Các loại sự kiện .97 11.3 Đối tượng lắng nghe và xử lý sự kiện .98 11.4 Lựa chọn sự kiện để lắng nghe .99 11.5 Các sự kiện xảy ra đối với một hành động trên Repository 99 11.5.1 Hành động thêm một Item 99 11.5.2 Hành động thay đổi giá trị của Property 100 11.5.3 Hành động thêm vào một Node đã tồn tại trong Repository .100 11.5.4 Khôi phục lại trạng thái của một Node 101 11.5.5 Sao chép một Node 101 11.5.6 Xóa một Item 102 11.5.7 Di chuyển vị trí của một Node .102 11.5.8 Tạo Phiên Bản Của Item 102 11.5.9 Khoá một Item 103 11.5.10 Mở khóa một Item 103 12. Vấn đề bảo mật trên Repository .104 13. Cơ chế khóa trên Repository 104 13.1 Mức độ khóa .104 13.2 Phạm vi khóa .104 13.3 Loại khóa .105 14. Tìm kiếm nội dung trên Repository 105 14.1 Ngôn ngữ truy vấn JCRQL .106 14.1.1 Mệnh đề SELECT 106 14.1.2 Mệnh đề FROM .106 14.1.3 Mệnh đề LOCATION 106 14.1.4 Mệnh đề WHERE .109 14.1.5 Mệnh đề SEARCH .110 14.1.6 Mệnh đề ORDER BY .111 15. Một số ví dụ về việc cài đặt JCR 112 15.1 JCR cài đặt bên trên File System 112 15.2 JCR cài đặt bên trên một Database .113 Chương 7 So sánh một số giải pháp CMS mã nguồn mở phổ biến .115 1. Giới thiệu các giải pháp hiện tại .116 1.1 Xu hướng phát triển của các hệ CMS .116 1.1.1 Xu hướng về mặt thương mại 116 1.1.2 Xu hướng về công nghệ, kỹ thuật 117 1.2 So sánh các giải pháp CMS thông dụng .118 1.2.1 Tiêu chí lựa chọn các giải pháp CMS để so sánh 118 Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA 1.2.2 Các tiêu chí so sánh 118 2. Mô tả các giải pháp đã so sánh .123 2.1 Giải pháp Cofax 2.0 123 2.2 Giải pháp Daisy 1.1 .125 2.2.1 Repository chứa nội dung 126 2.2.2 Giao diện web .126 2.3 Giải pháp Magnolia 2.1 .127 2.4 Giải pháp OpenCMS 5.0 .129 3. Kết luận .130 ỨNG DỤNG 132 Chương 8 Các chức năng của TMA CMS .133 1. Mô hình Use case 134 2. Mô tả các chức năng .135 2.1 Quản lý vai trò .135 2.2 Quản lý người sử dụng 135 2.3 Phân quyền sử dụng cho vai trò 136 2.4 Phân phối vai trò đến người sử dụng 137 2.5 Tối ưu hoá các thông tin cấu hình hệ thống 138 2.6 Biên soạn nội dung trang web .138 2.7 Áp dụng template vào trang web 139 2.8 Phân loại nội dung .139 2.9 Truy nhập vào hệ CMS .139 2.10 Tìm kiếm nội dung 140 2.11 Lựa chọn ngôn ngữ .140 Chương 9 Tích hợp hệ thống CMS vào TMA portal 141 1. System Architecture của Magnolia CMS .142 1.1 Mô hình một số package quan trọng của Magnolia CMS 142 1.2 Mô tả các package .142 1.2.1 Package info.magnolia.cms 142 1.2.2 Package info.magnolia.cms. security .143 1.2.3 Package info.magnolia.cms.servlets 143 1.2.4 Package info.magnolia.cms.core 143 1.2.5 Package info.magnolia.module.adminInterface .143 1.2.6 Package info.magnolia.module.templating 144 1.2.7 Package info.magnolia.repository 144 1.2.8 Package info.magnolia.exchange .144 2. Hướng tiếp cận để tích hợp .144 2.1 Hướng tiếp cận thứ 1 .144 Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA 2.2 Hướng tiếp cận thứ 2 .145 3. Cách thức thực hiện 146 3.1 Tạo dự án J2EE dựa trên mã nguồn của Magnolia .147 3.2 Chuẩn hoá dự án J2EE theo chuẩn JSR 168 .147 3.3 Tích hợp hệ thống bảo mật .151 KẾT LUẬN .152 HƯỚNG PHÁT TRIỂN .155 TÀI LIỆU THAM KHẢO .157 Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA Bùi Vĩnh Phú 1 Đặng Đình Vương DANH SÁCH CÁC HÌNH VẼ Hình 1: Hệ CMS quản lý tự động nội dung trang web 8 Hình 2: Giao diện hệ thống intranet của công ty TMA .9 Hình 3: Hệ thống thông tin hiện tại của công ty TMA 10 Hình 4: Quy trình cập nhật thông tin trong doanh nghiệp .19 Hình 5: Quy trình cập nhật thông tin trong doanh nghiệp khi sử dụng CMS 19 Hình 6: Quy trình cập nhật thông tin trong một tờ báo địên tử .20 Hình 7: Quy trình cập nhật thông tin trong toà soạn báo điện tử có sử dụng hệ CMS 21 Hình 8: Quy trình cập nhật thông tin trong một hệ thống thông tin 22 Hình 9: Quy trình cập nhật thông tin trong một hệ thống thông tin có CMS 23 Hình 10: Kiến trúc SOA của intranet của công ty TMA .26 Hình 11: Các thành phần trong portal của công ty TMA 33 Hình 12: Kiến trúc hệ thống của các portal phổ biến 34 Hình 13: Kiến trúc hệ thống của portal TMA 35 Hình 14: Chia sẻ thông tin giữa các dự án và vị trí công việc trong công ty TMA .40 Hình 15: Mô hình chuẩn JSR 168 44 Hình 16: Cấu trúc một đặc tả triển khai Portlet .57 Hình 17: Cấu trúc một đặc tả triển khai Portlet (tt) .58 Hình 18: Chuẩn JSR 170 giao tiếp với cơ sở dữ liệu .62 Hình 19: Mô hình một workspace của một repository 63 Hình 20: Mối liên hệ giữa Node, Property và Item .67 Hình 21: Repository có một workspace 79 Hình 22: Repository có nhiều workspace .81 Hình 23: Đồ thị mô tả một Version History 83 Hình 24: Repository có nhiều workspace và hỗ trợ tạo phiên bản 95 Hình 25: Giao diện Cofax 123 [...]... Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA TỔNG QUAN Bùi Vĩnh Phú 12 Đặng Đình Vương Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA Chương 2 Tổng quan về sự phát triển của các hệ CMS Bùi Vĩnh Phú 13 Đặng Đình Vương Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA Xây dựng hệ thống CMS là một lãnh vực chỉ mới xuất hiện trong 6 năm gần đây Công ty Microsoft chỉ... You Get Bùi Vĩnh Phú 5 Đặng Đình Vương Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA MỞ ĐẦU Bùi Vĩnh Phú 6 Đặng Đình Vương Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA Chương 1 Giới thiệu đề tài Bùi Vĩnh Phú 7 Đặng Đình Vương Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA Một cách đơn giản nhất, CMS là một hệ thống hỗ trợ người sử dụng trong việc tạo ra các... trả lời xác đáng cho các vấn đề chúng tôi đã gặp phải Bùi Vĩnh Phú 15 Đặng Đình Vương Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA NGHIÊN CỨU Bùi Vĩnh Phú 16 Đặng Đình Vương Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA Chương 3 Nhu cầu sử dụng hệ CMS trong các tổ chức Bùi Vĩnh Phú 17 Đặng Đình Vương Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA 1 Nhu cầu hiện... Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA Hình 2: Giao diện hệ thống intranet của công ty TMA Hệ thống Intranet của công ty TMA hỗ trợ các công cụ, các chức năng như sau: • Quản lý nhân sự • Quản lý năng lực của nhân viên • Quản lý tuyển dụng • Quản lý thông tin các dự án • Hệ quản lý tài liệu • Tìm kiếm thông tin • Hệ thống bảo mật • Các sự kiện nội bộ của công ty • … Bùi Vĩnh Phú... thống Intranet cuả Công ty TMA Chương 4 Hệ thống intranet hiện tại của công ty Bùi Vĩnh Phú 25 Đặng Đình Vương Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA 1 Yêu cầu khi phát triển hệ thống intranet của công ty TMA 1.1 Tình hình hiện tại Khi đề tài này được bắt đầu thì nhóm TIS (TMA Information System) đang phát triển một hệ thống intranet mới cho công ty dựa trên kiến trúc SOA (Service Oriented... dụng hệ CMS 1.2.3 Nhu cầu trong các hệ thống thông tin của các công ty Trong các hệ thống thông tin của các công ty, người ta phân thành các phòng ban và các dự án Các phòng ban và các dự án này có nhiệm vụ phải cung cấp thông tin cho nhóm làm web của công ty Sau đó, thông tin này mới được cập nhật lên hệ thống Intranet Bùi Vĩnh Phú 21 Đặng Đình Vương Phát triển CMS module cho hệ thống Intranet cuả Công. ..Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA Hình 26: Giao diện Daisy 125 Hình 27: Giao diện Magnolia .127 Hình 28: Giao diện OpenCMS 129 Hình 29: Các gói chính của Magnolia CMS 142 Hình 30: Cấu trúc dự án J2EE của hệ CMS .148 Bùi Vĩnh Phú 2 Đặng Đình Vương Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA DANH SÁCH CÁC BẢNG... hỗ trợ hoạt động cho các ứng dụng, các dịch vụ và các thành phần chức năng Hệ CMS cần xây dựng cho công ty TMA sẽ thuộc nhóm các thành phần phi chức năng như trên hình vẽ trên đã minh hoạ Mục đích chính của đề tài này là xây dựng và tích hợp CMS module vào trong hệ thống intranet của công ty TMA Để thực hiện điều này, chúng tôi đã thực hiện 3 công việc chính như sau: • Nghiên cứu về CMS • Tìm hiểu và... triển CMS module cho hệ thống Intranet cuả Công ty TMA tin thiếu cập nhật về phòng ban hay dự án của mình Do đó, các phòng ban và các dự án sẽ cảm thấy có trách nhiệm hơn với việc cập nhật thông tin thường xuyên này Hình 9: Quy trình cập nhật thông tin trong một hệ thống thông tin có CMS Ngoài ra, hệ thống thông tin của công ty có thể sử dụng hệ CMS này như một công cụ để quản lý nội dung Và công cụ... trên intranet 2 Những lợi ích mà một hệ CMS mang lại cho các công ty Do đề tài này được thực hiện nhằm phát triển một hệ CMS cho công ty TMA, do đó, chúng tôi chỉ quan tâm và nêu ra những lợi ích mà một hệ CMS mang lại cho hệ thống intranet của Công ty Những lợi ích này được trình bày dưới đây: • Cập nhật thông tin nhanh chóng • Giảm thời gian, công sức và chi phí cho việc cập nhật thông tin Bùi Vĩnh . KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM ĐẶNG ĐÌNH VƯƠNG BÙI VĨNH PHÚ XÂY DỰNG CMS MODULE CHO HỆ THỐNG INTRANET CỦA CÔNG TY TMA. triển CMS module cho hệ thống Intranet cuả Công ty TMA Bùi Vĩnh Phú 6 Đặng Đình Vương MỞ ĐẦU Phát triển CMS module cho hệ thống