1.1 Mô hình một số package quan trọng của Magnolia CMS
Hình 29: Các gói chính của Magnolia CMS
1.2 Mô tả các package
1.2.1 Package info.magnolia.cms
Package này chịu trách nhiệm xác nhận các yêu cầu từ phía người sử dụng và thu thập các nội dung cần thiết để phản hồi yêu cầu.
Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA
Package này gọi đến các trang JSP hay servlet tương ứng để hồi đáp yêu cầu.
1.2.2 Package info.magnolia.cms. security
Quản lý các vấn đề về bảo mật trên Repository.
Cho phép khóa một thành phần tránh sự truy cập của người sử dụng.
Định nghĩa các phương thức dùng thao tác trên Repository, vai trò, người sử
dụng trong mỗi phiên làm việc.
1.2.3 Package info.magnolia.cms.servlets
Khởi tạo và đọc các thông tin cấu hình của ứng dụng từ Repository. Chịu trách nhiệm xử lý và phản hồi các yêu cầu được gởi tới.
1.2.4 Package info.magnolia.cms.core
Thiết lập các thông số cấu hình cho Repository.
Thực hiện chức năng Cache khi có một yêu cầu được gởi đến. Có nghĩa là nếu những thông tin dùng phản hồi yêu cầu đã được lưu trong Cache thì phản hồi ngay. Nếu không thì lưu những thông tin của yêu cầu đó vào trong Cache.
Thực hiện chức năng tìm kiếm trên Repository.
Thêm, xoá, di chuyển nội dung các Page, Paragraphs hay các Properties.
Định nghĩa các phương thức hỗ trợ quản lý phiên bản.
Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA
Cung cấp các lớp thể hiện Page, Paragraph, Dialog, Tree…
Định nghĩa các hằng số hỗ trợđa ngôn ngữ.
1.2.6 Package info.magnolia.module.templating
Xác định và lưu lại các thông số về template của Paragraph, Page.
1.2.7 Package info.magnolia.repository
Package này cung cấp các phương thức cho các thao tác trên Repository
1.2.8 Package info.magnolia.exchange
Quản lý việc xuất bản nội dung từ bản author (dành cho người quản trị) san bản public (trang web đã xuất bản). Bao gồm :
• Quản lý kết nối để truyền dữ liệu đến một URL cụ thể.
• Tạo nội dung để gởi đi.
• Activate, DeActivate nội dung.
2. Hướng tiếp cận để tích hợp
Để tích hợp Magnolia CMS dưới dạng một portlet vào portal hiện tại của TMA, chúng ta có 2 cách tiếp cận như sau
2.1 Hướng tiếp cận thứ 1
Trong cách tiếp cận này, trước tiên chúng ta sử dụng mã nguồn của Liferay portal để tạo ra một dự án J2EE. Sau đó, chúng ta đưa mã nguồn của Magnolia vào
Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA
trong dự án này. Các thành phần của Magnolia được đưa vào các thư mục tương ứng của dự án J2EE này.
Tiếp theo, chúng ta sửa đổi dự án J2EE để đáp ứng được nhu cầu đề ra ban đầu. Cuối cùng. Chúng ta biên dịch toàn bộ dự án này để tạo ra một gói ext.ear duy nhất. Và chúng ta sẽ đưa gói vừa biên dịch xong vào thư mục
JBOSS_HOME/server/default/deploy của application server JBoss (http://www.jboss.org)để chạy portal và portlet vừa được biên dịch.
Tuy nhiên, cách làm này tồn tại rất nhiều giới hạn mà trong đó, việc quản lý mã nguồn là khó khăn lớn nhất. Thật vậy, nếu tiếp cận theo hướng này, khi muốn tích hợp một portlet mới vào portal, chúng ta cần phải đưa toàn bộ các thành phần của portlet vào từng thư mục tương ứng của dự án J2EE. Do đó, trong quá trình phát triển dự án, chúng ta cần phải nhớ các package nào tương ứng với portlet và các package nào thì không phải. Ngoài ra, khi xảy ra lỗi, chúng ta rất khó sửa chữa các lỗi này do mã nguồn trong dự án J2EE này khá nhiều. Khó khăn này càng gia tăng khi chúng ta muốn mở rộng các chức năng của portal và phát triển nhiều portlet hơn cho portal.
Trong thực tế, các lập trình viên của nhóm TIS trong công ty TMA đã từng tiếp cận theo cách này và họ đã gặp phải vấn đề tương tự. Hiện nay, họ đã chuyển sang hướng tiếp cận thứ 2 được trình bày dưới đây.
2.2 Hướng tiếp cận thứ 2
Trong hướng tiếp cận này, chúng ta cũng tạo ra một dự án J2EE. Tuy nhiên, chúng ta chỉđưa và mã nguồn của Magnolia CMS vào trong dự án mà thôi.
Tiếp theo, chúng ta sửa đổi mã nguồn của Magnolia CMS và mã nguồn của portal để đáp ứng yêu cầu đặt ra ban đầu.
Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA
Sau đó, gói ext.ear của Liferay portal vào trong thư mục
JBOSS_HOME/server/default/deploy của application server JBoss.
Cuối cùng, chúng ta biên dịch dự án J2EE để nhận được một gói magnolia.war
và đưa package này vào thư mục JBOSS_HOME/server/default/deploy của application server JBoss để chạy.
Trong thực tế, cách tiếp cận này có thể tránh được những khó khăn mà cách tiếp cận thứ 1 gặp phải. Do đó, chúng tôi sẽ tích hợp hệ CMS vào portal hiện tại của công ty TMA theo cách này.