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
Bùi Vĩnh Phú
2
Đặng Đình Vương
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
Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA
Bùi Vĩnh Phú
3
Đặng Đình Vương
DANH SÁCH CÁC BẢNG
Bảng 1: Một số thành phần đã được xây dựng trong hệ thống portal của Công ty …….32
Bảng 2: Các hằng số trong giao diện javax.jcr.version.OnParentVersionAction……….92
Bảng 3: Các hằng số định nghĩa trong giao diện javax.jcr.observation.EvenType ……97
Bảng 4: So sánh yêu cầu hệ thống của một số CMS ……………………………………………119
Bảng 5: So sánh tính bảo mật của một số CMS…………………………………………………..119
Bảng 6: So sánh tính tiện dụng của một số CMS ………………………………………………..120
Bảng 7: So sánh hiệu suất hoạt động của một số CMS ………………………………………..120
Bảng 8: So sánh tính khả chuyển của một số CMS ……………………………………………..121
Bảng 9: So sánh khả năng quản lý của một số CMS ……………………………………………121
Bảng 10: So sánh các khả năng hỗ trợ khác của một số CMS……………………………….122
Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA
Bùi Vĩnh Phú
4
Đặng Đình Vương
MỘT SỐ KÝ HIỆU VÀ TỪ VIẾT TẮT
API
Application Programming Interface
CMS
Content Management System
Drag’n’drop
Thuật ngữ Drag and Drop
Eclipse
Phần mềm miễn phí dùng phát triển các ứng dụng trên Java
http://www.eclipse.org/
HTML
Hyper Text Markup Language
HTTP
Hypertext Transfer Protocol
HTTPS
Secure Hypertext Transfer Protocol
JBoss
Web application server miễn phí
http://www.jboss.org/products/jbossas
JCR
Java Content Repository
JDK
Java Development Kit
JSR
Java Specification Request
Lomboz
plug-in giúp Eclipse giao tiếp với JBoss và tạo các dự án J2EE
http://www.objectlearn.com/index.html
MIME
Multipurpose Internet Mail Extensions
MVC
Mô hình thiết kế Model-View-Controller
ORB
Object Request Broker
RMI-IIOP
Remote Method Invocation over internet Inter-ORB Protocol
SOA
Service Oriented Architecture
SOAP
Simple Object Access Protocol
Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA
Bùi Vĩnh Phú
5
Đặng Đình Vương
SPI
Service Provider Interface
URI
Uniform Resource Identifiers
URL
Uniform Resource Locator
XHTML
eXtensible Hyper Text Markup Language
XML
eXtensible Markup Language
WSRP
web Services for Remote portlets
WYSIWYG
What You See Is What You Get
Phát 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 Intranet cuả Công ty TMA
Bùi Vĩnh Phú
7
Đặng Đình Vương
Chương 1
Giới thiệu đề tài
Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA
Bùi Vĩnh Phú
8
Đặng Đình Vương
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 trang web, quản lý nội dung các trang web. Sau cùng, các trang web sẽ được
xuất bản để phân phối đến mọi người. Cả quy trình từ lúc tạo ra nội dung trang web,
quản lý nội dung được tạo ra và sau cùng phân phối nội dung này đều hoàn toàn tự
động. Hình vẽ sau sẽ mô tả cho quy trình tự động này.
Hình 1: Hệ CMS quản lý tự động nội dung trang web
Luận văn này được thực hiện trong quá trình thực tập của chúng tôi tại công ty
phần mềm Tường Minh (TMA). Khi luận văn bắt đầu thì hệ thống thống tin (intranet)
của công ty đang được xây dựng lại. Việc xây dựng này dựa trên các chuẩn mở và các
công nghệ, giải pháp mã nguồn mở.
Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA
Bùi Vĩnh Phú
9
Đặng Đình Vương
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
• …
Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA
Bùi Vĩnh Phú
10
Đặng Đình Vương
Hệ thống thông tin này nếu được nhìn dưới góc độ của người phát triển sẽ bao
gồm các thành phần như sau:
Portal được xây dựng dựa trên Liferay
HR
Employee
Contact
Project
Information
Các ứng dụng
Recruitment
PA
Event
Các dịch vụ
HR
Recruitment
Search
Các thành phần chức năng
Search
Engine
Authentifi-
cation
Scheduling
System
Workflow
Engine
Các thành
phần phi chức
năng
Cung cấp
Cung cấp
Cung cấp
DMS
CMS
Reporting
Engine
Hình 3: Hệ thống thông tin hiện tại của công ty TMA
Hệ thống thông tin này bao gồm các ứng dụng, các dịch vụ dùng để hỗ trợ hoạt
động cho các ứng dụng. Ngoài ra, còn có các thành phần chức năng dùng để cung cấp
Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA
Bùi Vĩnh Phú
11
Đặng Đình Vương
các chức năng cho các dịch vụ. Các thành phần phi chức năng dù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à so sánh các giải pháp xây dựng CMS để chọn ra giải pháp
thích hợp nhất với yêu cầu công ty.
• Tích hợp giải pháp đã chọn vào trong hệ thống intranet của công ty.
Chúng tôi thực hiện đề tài này ngoài mong muốn bảo vệ thành công khoá luận
của mình, còn muốn qua đó học hỏi thêm nhiều kiến thức và kinh nghiệm trong việc
phát triển một hệ CMS, một lãnh vực mới mẻ và đầy tiềm năng.
Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA
Bùi Vĩnh Phú
12
Đặng Đình Vương
TỔNG QUAN
Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA
Bùi Vĩnh Phú
13
Đặng Đình Vương
Chương 2
Tổng quan về sự phát triển của các hệ CMS
Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA
Bùi Vĩnh Phú
14
Đặng Đình Vương
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ỉ mới tham gia lãnh vực này vào năm 2002. Ở Việt Nam, số
lượng các công ty xây dựng và sử dụng các hệ CMS vẫn rất giới hạn do đây vẫn còn là
lãnh vực quá mới mẻ ở nước ta.
Tuy chỉ mới xuất hiện gần đây nhưng lãnh vực này cũng đạt được một số kết
quả khả quan. Các công nghệ và các tiêu chuẩn đã được đề ra để phát triển các hệ
CMS.
Đa phần các công ty phát triển các hệ CMS đều với mục đích kinh doanh. Bên
cạnh đó cũng có những công ty, tổ chức và cá nhân cung cấp các giải pháp CMS của
họ dưới dạng mã nguồn mở hay miễn phí.
Các công nghệ sử dụng cho việc phát triển các hệ CMS cũng rất đa dạng. Sự đa
dạng này có thể thấy rõ qua thống kê sau đây:
• Java: CMS Genie, CMS Master, Cofax, Contelligent, Daisy, Eplica,
imCMS, Jahia, jNetPublish, Magnolia, NetPotential CM…
• Java Script: CMS Master, Complete Site Manager, Contelligent, e107,
eazyCMS, Magnolia, NetPotential CMS, Open CMS…
• PHP: Acuity CMS, AGPCMS, Aiyoota!-CMS, Back-End CMS, BxCMS,
Caravel, CathDesign CMS, Complete Site Manager, dotWidget CMS,
e107, eazyCMS, EGOCMS, fly CMS, Jaws, Mambo, Komodo CMS,
OpenPHPNuke, PostNuke…
• C++: Lighthouse, Manila…
• ASP: Acuity CMS, Baseline CMS…
• Cold Fusion: AssetNow, EasyConsole CMS…
• ASP.NET: AxCMS.net, Composite CMS, contentXXL – ASP.NET
CMS, DotNetNuke, Dozing Dogs ASP.NET CMS, Dynamicweb…
Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA
Bùi Vĩnh Phú
15
Đặng Đình Vương
• VB.NET: AxCMS.net, contentXXL – ASP.NET CMS, Dozing Dogs
ASP.NET CMS…
• C#: AxCMS.net, contentXXL – ASP.NET CMS, Dozing Dogs ASP.NET
CMS, Rainbow…
• Python: Easy Publisher…
Một số hệ CMS được xây dựng như là một thành phần của portal. Số còn lại
được phát triển dưới dạng một ứng dụng hoạt động độc lập. Ngoài 2 dạng CMS vừa
nêu thì việc sử dụng một hệ CMS độc lập để tích hợp vào một portal có sẵn vẫn rất mới
mẻ. Do đó, các tài liệu về công việc này rất giới hạn và số lượng các người phát triển
am tường về lãnh vực này cũng rất hiếm.
Thật vậy, trong quá trình thực hiện đề tài, khi chúng tôi gặp các vấn đề và đem
các vấn đề này để hỏi các lập trình viên chuyên phát triển các hệ CMS thì họ cũng
không có câu trả lời xác đáng cho các vấn đề chúng tôi đã gặp phải.
Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA
Bùi Vĩnh Phú
16
Đặng Đình Vương
NGHIÊN CỨU