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
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
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...................................36Phá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
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
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
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
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 ................................118Phá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.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
TÀI LIỆU THAM KHẢO .........................................................................................157Phá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
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
Lomboz
plug-in giúp Eclipse giao tiếp với JBoss và tạo các dự án J2EE
/>
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
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
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.
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…
NGHIÊN CỨU