System Architecture của Magnolia CMS

Một phần của tài liệu Xây dựng CMS MODULE cho hệ thống internet của công ty TMA (Trang 151 - 155)

1.1 Mô hình mt s package quan trng ca 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. (adsbygoogle = window.adsbygoogle || []).push({});

• Activate, DeActivate nội dung.

2. Hướng tiếp cn để tích hp

Để 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 cn 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 cn 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.

Một phần của tài liệu Xây dựng CMS MODULE cho hệ thống internet của công ty TMA (Trang 151 - 155)