Tải bản đầy đủ (.pdf) (42 trang)

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA2.3 Kiến trúc hệ thống pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (584.84 KB, 42 trang )


Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Bùi Vĩnh Phú 34 Đặng Đình Vương
2.3 Kiến trúc hệ thống của portal
2.3.1 Kiến trúc hệ thống của các portal phổ biến

Hình 12: Kiến trúc hệ thống của các portal phổ biến
Trong các portal phổ biến, người ta sử dụng trình duyệt web và giao thức HTTP
để kết nối đến các ứng dụng web trên portal. Mỗi portal có duy nhất một portlet/servlet
container. Các ứng dụng web của portal giao tiếp với portlet/servlet container bởi các
APIs và các SPIs.
Portlet/servlet container chứa toàn bộ các portlet. Các portlet này cung cấp các
APIs để portlet/servlet container có thể sử dụng các chức năng của nó

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Bùi Vĩnh Phú 35 Đặng Đình Vương
2.3.2 Kiến trúc hệ thống của portal TMA

Hình 13: Kiến trúc hệ thống của portal TMA
Trong kiến trúc này, khi ta nhập vào dữ liệu dạng HTML, WML hay XML
(“Web services” trong hình vẽ), các dữ liệu này đi qua 3 tầng: trình diễn, xử lý và dữ
liệu của mô hình MVC. Trong 3 tầng này, người ta có thể sử dụng các công nghệ như:
struts, servlet, spring, EJB, Hibernate, JMS…

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Bùi Vĩnh Phú 36 Đặng Đình Vương
Ngoài dữ liệu dạng HTML, WML hay XML, chúng ta còn có thể sử dụng các
đối tượng dưới dạng J2EE, J2SE hay J2ME.


3. Công nghệ được sử dụng để phát triển hệ thống intranet
Trong quá trình xây dựng hệ thống intranet, các công nghệ và kỹ thuật sau đã
được sử dụng:
• Multi-platform: Linux, Solaris, Windows
• Platform : .NET, J2EE
• XML, SOAP, HTTP, RMI-IIOP, WSRP
• Hệ quản trị cơ sở dữ liệu: Hypersonic, MySQL, PostgreSQL, SQL
Server.
• Web application server: JBoss, TomCat, Sun ONE, webLogic, Jonas.
4. Các chuẩn dùng để phát triển hệ thống
Trong quá trình phát triển hệ thống intranet của Công ty, Công ty đã quyết định
các thành phần được xây dựng cần tuân theo các chuẩn trên thế giới nếu có thể được.
Sự phát triển các thành phần dựa trên các chuẩn này có các lợi ích như sau:
• Sử dụng một chuẩn để phát triển sẽ cần ít thời gian và chi phí hơn.
• Trên thế giới đều biết đến chuẩn được sử dụng để phát triển, do đó s
ẽ có
nhiều sự hỗ trợ hơn trong quá trình xây dựng các thành phần.
• Có nhiều mã nguồn mở được xây dựng dựa trên các tiêu chuẩn, do đó có
thể tận dụng các thành phần này cho portal.
• Các thành phần được xây dựng dựa trên các chuẩn sẽ tích hợp dễ dàng
hơn vào hệ thống hiện tại.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Bùi Vĩnh Phú 37 Đặng Đình Vương
• Để mở rộng hệ thống hiện tại trong tương lai, cần phải xây dựng các
thành phần theo chuẩn.
Sau đây là các chuẩn được yêu cầu sử dụng trong quá trình phát triển hệ thống
thông tin của công ty:
• Chuẩn JSR 168 dùng để xây dựng các portlet.

• Chuẩn JSR 170 để xây dựng hệ CMS.
5. Nhu cầu của công ty TMA khi xây dựng một hệ CMS
Hệ CMS được xây dựng để sử dụng trong công ty TMA phải bao gồm các chức
năng của một hệ CMS thông thường. các chức năng này được mô tả như sau:
• Quản lý nội dung.
 Tạo, xoá và sửa đổi nội dung.
 Cập nhật nội dung.
• Quản lý vai trò
 Tạo, xoá, sửa đổi vai trò.
 Cập nhật thông tin của vai trò.
 Cho phép vai trò đăng nhập vào hệ thống.
 Ngăn cấm vai trò đăng nhập vào hệ thống.
• Phân quyền cho các vai trò.
 Mỗi vai trò có thể có nhiều quyền khác nhau và các quyền này được
gán cho vai trò bởi người quản lý web site.
 Các quyền này có thể là đọc, ghi, đọc và ghi…
• Quản lý người sử dụng.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Bùi Vĩnh Phú 38 Đặng Đình Vương
 Tạo, xoá bỏ, sửa đổi thông tin người sử dụng.
 Cập nhật thông tin người sử dụng.
 Cho phép người sử dụng đăng nhập vào hệ thống.
 Ngăn cấm người sử dụng đăng nhập vào hệ thống.
• Gán các vai trò cho người sử dụng.
 Do trong một tổ chức tồn tại rất nhiều phòng ban và vị trí công việc
khác nhau, do đó c
ần phải phân chia vai trò cho từng người sử dụng
khác nhau trên hệ thống tuỳ thuộc vào từng phòng ban và vị trí công

việc của họ.
 Một người sử dụng có thể có nhiều vai trò khác nhau trong hệ thống
và các vai trò này được gán bởi người quản lý web site.
• Sử dụng các template cho các trang web: các trang web cần phải đồng bộ
với nhau về cách thức hiển thị, do đó cần phải sử dụng các template
giống nhau cho toàn bộ
web site.
• Phân loại nội dung: điều này là cần thiết để tránh tình trạng dữ liệu bị sắp
xếp không theo trật tự và để có thể tìm kiếm dễ dàng thông tin cần thiết.
• Tìm kiếm thông tin: do nội dung trang web và các thông tin liên quan
ngày càng nhiều, do đó cần phải có cơ chế tìm kiếm thông tin để hỗ trợ
các nhân viên trong các trường hợp cần thiết.
• Thay đổi các thông số cấu hình: hệ thống này cho phép thay đổi các
thông tin cấ
u hình để tối ưu hoá hoạt động của hệ thống.
Ngoài các nhu cầu cầu của một hệ CMS thông thường, công ty TMA còn có 2
nhu cầu như sau:

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Bùi Vĩnh Phú 39 Đặng Đình Vương
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
Trong công ty TMA có rất nhiều dự án và trong mỗi dự án lại tồn tại nhiều vị trí
công việc khác nhau, bao gồm có 3 vị trí như sau:
• Quản lý dự án.
• Quản lý nhóm.
• Thành viên bình thường.
Mỗi dự án sở hữu các thông tin riêng về dự án đó và các công việc họ đang thực
hiện. Một phần các thông tin này có thể cho phép mọi người trong công ty đều có thể

xem được. Phần còn lại chỉ cho phép các thành viên trong nhóm có thể truy cập vào
thôi.
Mỗi dự án có một người phụ trách cập nhật thông tin về dự án đó. Người này
thông thường là trưởng dự án hoặc trưởng nhóm. Người này có quyền thực hiện một số
thao tác như: tạo, xoá bỏ, sửa đổi…các thông tin của nhóm trên intranet. các thành viên
khác của nhóm chỉ có quyền xem trên các thông tin của nhóm.
Hình vẽ sau sẽ minh hoạ cho điều vừa trình bày

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Bùi Vĩnh Phú 40 Đặng Đình Vương

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

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Bùi Vĩnh Phú 41 Đặng Đình Vương
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
Như đã trinh bày như trên, chúng ta biết rằng hệ CMS xây dựng là một thành
phần phi chức năng dùng để cung cấp chức năng cho các ứng dụng, các dịch vụ, các
thành phần chức năng khác. Do đó, cần phải xây dựng hệ CMS dưới dạng một portlet
để có thể sử dụng bởi các ứng dụng và các thành phần khác trên intranet.
5.3 Các kỹ thuật sử dụng trong quá trình phát triển
Do hệ CMS này được xây dựng để tích hợp vào hệ thống thông tin có sẵn của
công ty TMA dưới dạng một portlet. Do đó, có một số quy định trong quá trình phát
triển hệ CMS này như sau:
• Hệ CMS này phải được xây dựng dưới dạng một portlet: điều này cần
thiết để tích hợp vào portal hiện tại của Công ty.
• Hệ CMS này phải tuân theo chuẩn JSR 168: do chuẩn JSR 168 là chuẩn

dùng để tích hợp một portlet vào portal.
• Hệ
CMS phải được lập trình bằng Java: portal hiện tại của công ty được
lập trình bằng Java và các portlet trên portal tuân theo chuẩn JSR 168.
• Hệ CMS phải được xây dựng dựa trên các giải pháp mã nguồn mở và
miễn phí.
• Sử dụng chuẩn JSR 170 để xây dựng hệ thống này nếu có thể được: do
chuẩn JSR 170 là chuẩn dùng để hỗ trợ việc xây dựng các hệ CMS, việc
xây dựng hệ thống này nên tuân theo chuẩn JSR 170 để có thể
mở rộng
hệ thống này trong tương lai nếu có nhu cầu.
• Hệ thống này phải có khả năng hoạt động trên nền Linux: portal hiện tại
của công ty hoạt động trên Linux.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Bùi Vĩnh Phú 42 Đặng Đình Vương
• Hệ thống này phải có khả năng họat động trên application server JBoss:
do portal hiện tại của công ty hoạt động trên JBoss.


Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Bùi Vĩnh Phú 43 Đặng Đình Vương







Chương 5
Chuẩn JSR 168



Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Bùi Vĩnh Phú 44 Đặng Đình Vương
1. Giới thiệu về chuẩn JSR 168
Chuẩn JSR 168 dùng để định nghĩa portlet và cách thức giao tiếp giữa portlet và
portal.
Phiên bản hiện tại của chuẩn này là 1.0 được đưa ra bởi Sun Microsystems vào
ngày 29/08/2003. ( />)












Hình 15: Mô hình chuẩn JSR 168
Hình trên mô tả sự giao tiếp giữa portal và các portlet. Sự giao tiếp này được
thực hiện thông qua các API được cung cấp bởi chuẩn JSR 168.
Portlet
Portlet

Portlet
Portlet
Portlet
API
A
P
I
A
P
I
A
P
I
A
P
I
JSR-168

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Bùi Vĩnh Phú 45 Đặng Đình Vương
2. Một số khái niệm chính
2.1 Portal
Portal là một ứng dụng Web dùng để tích hợp các nội dung từ các nguồn khác
nhau vào cùng một trang Web. Các nội dung có thể được cấu hình tùy thuộc vào từng
người sử dụng khác nhau mà Portal cho phép. Một Portal có thể chứa nhiều Portlet
2.2 Portlet
Portlet là một thành phần (component) dựa trên nền Web sử dụng các công nghệ
của Java. Portlet được quản lý bởi một Portlet Container. Portlet dùng để xử lý các yêu
cầu và tạo ra các thành phần dữ liệu động để phản hồi yêu cầu.

Portlet có thể tích hợp vào Portal và Portal sẽ cung cấp một tầng trình diễn cho
các thành phần của Portlet.
Nội dung được tạo ra bởi Portlet được gọi là Fragment. Một Fragment là một
mảnh dữ liệu được tạo bởi các ngôn ng
ữ như: HTML, XHTML, WML… theo một
định dạng được quy định. Các Fragment này có thể được kết hợp với các Fragment của
các Portlet khác để hình thành trang Web của Portal.
Người sử dụng tương tác với Portlet thông qua cơ chế yêu cầu/phản hồi được
cung cấp bởi Portlet. Nội dung phản hồi yêu cầu được Portlet tạo ra và nội dung này
cũng tùy thuộc vào cấu hình ứng với từng người sử dụng.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Bùi Vĩnh Phú 46 Đặng Đình Vương
2.3 Portlet Container
Porlet Container cung cấp một môi trường lúc Runtime chứa đựng và quản lý
chu kỳ sống của một Portlet.
Portlet Container nhận yêu cầu từ Portal và chuyển yêu cầu này đến Portlet
tương ứng để Portlet xử lý yêu cầu và tạo nội dung phản hồi.
3. So sánh Portlet và Servlet
3.1 Điểm giống nhau giữa Portlet và Servlet
• Cùng là thành phần Web sử dụng công nghệ của Java.
• Được chứa đựng và quản lý bởi một Container.
• Tạo ra nội dung dữ liệu động để phản hồi lại yêu cầu.
• Cùng tương tác với người sử dụng thông qua cơ chế yêu cầu/phản hồi.
3.2 Điểm khác nhau giữa Portlet và Servlet
• Portlet chỉ tạo ra các Fragment chứ không tạo ra toàn bộ tài liệu. Portal sẽ
tập hợp các Fragment do Portlet tạo ra thành nội dung của trang Web trên
Portal
• Không cần phải kết hợp một Portlet với một địa chỉ URL như Servlet

• Người sử dụng tương tác với Portlet thông qua Portal.
• Portlet có thể được sử dụng nhiều nơi trên cùng một trang Web của
Portal.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Bùi Vĩnh Phú 47 Đặng Đình Vương
3.3 Đặc trưng của Portlet mà không có ở servlet
• Portlet cho phép truy cập và lưu trữ cầu hình và tối ưu hoá dữ liệu.
• Portlet cho phép truy cập vào các thông tin về người sử dụng.
• Portlet hỗ trợ chức năng viết lại URL ( URL Rewriting Function ) cho
phép tạo ra liên kết trong nội dung của nó.
• Portlet có thể lưu trữ dữ liệu tạo thời trong phiên làm việc của Portlet ở 2
phạm vi: Phạm vi ứng dụng và Phạm vi cá nhân.
4. Giao diện portlet
Giao diện Portlet khai báo các API cơ bản nhất của một Portlet. Mọi Portlet
được xây dựng đều phải hiện thực hoá trực tiếp hoặc gián tiếp giao diện Portlet.
Lớp GenericPortlet hiện thực hoá giao diện Portlet và định nghĩa các chức năng
cơ bản nhất mà một Portlet cần có. Do đó, khi xây dựng Portlet, lập trình viên nên mở
rộng trực tiếp hoặc gián tiếp lớp GenericPorlet này.
Một Portlet được quản lý thông qua chu trình sống của nó, bắt đầu t
ừ lúc Portlet
được tải lên, tạo thể hiện của nó và khởi tạo, hoạt động để phản hồi yêu cầu của người
sử dụng đến lúc nó được loại bỏ. Các phương thức được gọi đến trong chu trình sống
của Portlet là:
• Gọi phương thức init trong quá trình khởi tạo của Portlet
• Nếu yêu cầu do máy khách gởi tới là yêu cầu hành động (Action
Request) thì phương thức processAction được gọi. N
ếu yêu cầu do máy
khách gởi tới là yêu cầu biểu hiện (Render Request) thì phương thức

processAction được gọi.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Bùi Vĩnh Phú 48 Đặng Đình Vương
• Khi Portlet Container xác định một Portlet không còn sử dụng nữa thì gọi
đến phương thức destroy của Portlet đó. Khi phương thức destroy được
gọi thì Portlet sẽ giải phóng tài nguyên hệ thống mà nó đang sử dụng và
lưu lại trạng thái hiện thời của nó.
5. Portlet URL
Một Portlet có thể tạo ra URL tham chiếu đến chính Portlet đó. Khi đó các URL
này được gọi là Portlet URL.
Để tạo ra một Portlet URL thì Porlet cần phải sử dụng đối tượng PorletURL.
Nếu phương thức createActionURL được gọi thì sẽ tạo ra một URL hành động và nếu
phương thức createRenderURL được gọi thì tạo ra một URL trình diễn.
6. Portlet Mode
Kiểu Portlet xác định chức năng mà Portlet hiện đang thực hiện. Thông thường,
Portlet thực hiện các tác vụ và tạo ra nội dung tùy thuộc vào chức năng hiện thời. Kiểu
Portlet cho biết những tác vụ nào một Portlet cần thực hiện và những nội dung nào
Portlet cần phải tạo ra.
Có 3 kiểu Portlet được quy định là:
• VIEW
 Chức năng chính của Portlet khi sử dụng kiểu VIEW là tạo ra nội
dung cho biết trạ
ng thái của Portlet
 Lập trình viên sẽ hiện thực hóa kiểu VIEW bằng cách định nghĩa lại
phương thức doView của lớp GenericPortlet.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA


Bùi Vĩnh Phú 49 Đặng Đình Vương
 Mọi Portlet đều phải hỗ trợ kiểu VIEW
• EDIT
 Trong kiểu EDIT, một Portlet sẽ cung cấp nội dung và cấu hình các
thành phần của nó để người sử dụng có thể tối ưu hóa họat động của
Portlet
 Lập trình viên sẽ hiện thực hóa kiểu EDIT bằng cách định nghĩa lại
phương thức doEdit của lớp GenericPortlet.
 Mọi Portlet không nhất thiết phải hỗ
trợ kiểu VIEW
• HELP
 Trong kiểu HELP, Portlet cung cấp những thông tin giúp đỡ người sử
dụng về Portlet. Những thông tin này có thể là những thông tin chung
về toàn bộ Portlet hoặc là các giúp đỡ cảm ngữ cảnh (Context-
sensitive help)
Các hằng số tượng trưng cho 3 kiểu Portlet được khai báo trong lớp
PortletMode
7. Window State
Trạng thái cửa sổ cho biết khoảng không gian trên trang Web Portal dành cho
nội dung của Portlet.
Có 3 trạng thái cửa sổ được định nghĩa :
• NORMAL: cho biết Porlet có thể chia sẻ trang Portal với các Portlet
khác. Ngoài ra, trạng thái này còn cho biết giới hạn hiển thị của thiết bị
do đó Portlet sẽ điều chỉnh kích thước phù hợp với vùng hiển thị.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Bùi Vĩnh Phú 50 Đặng Đình Vương
• MAXIMIZED: cho biết chỉ có một Portlet hiển thị trên trang Portal hoặc
Portlet được ưu tiên hiển thị nội dung nhiều hơn các Portlet còn lại.

• MINIMIZED: Cho biết nội dung của Portlet chỉ được hiển thị ít nhất có
thể được hoặc không được hiển thị.
Các trạng thái cửa sổ được định trong lớp WindowState.
8. Portlet Request
Một yêu cầu gởi đến Portlet chứa các thông tin về yêu cầu từ phía máy khách,
các tham số của yêu cầu, nội dung dữ liệu yêu cầu, kiểu Portlet, trạng thái cửa sổ…
Yêu cầu được đại diện bởi một đối tượng và đối tượng này được truyền vào như
là đối số của phương thức processAction hay render.
Mỗi đối tượng yêu cầu chỉ có thể họat động trong phạm vi của một ph
ương thức
processAction hay render
Các chức năng cần thiết của đối tượng PortletRequest được khai báo trong giao
diện PortletRequest.
9. Portlet Response
Một phản hồi của Portlet bao gồm những thông tin được tạo ra bởi Portlet gởi
trả về cho Portlet Container dựa trên yêu cầu được gởi đến như: sự thay đổi kiểu
Portlet, tiêu đề, nội dung… Portlet Container sẽ sử dụng những thông tin này để tạo ra
phản hồi đến người sử dụng, thông thường là một trang Web Portal.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Bùi Vĩnh Phú 51 Đặng Đình Vương
Mỗi đối tượng phản hồi chỉ có thể họat động trong phạm vi của một phương
thức processAction hay render
Các chức năng cần thiết của đối tượng Portlet Response được khai báo trong
giao diện PortletResponse.
10. Portlet Preferences
Portlet thông thường được cấu hình cho phù hợp với từng người sử dụng. Các
thông tin về cấu hình của Portlet được gọi là Portlet Preference. Và Portlet Container
sẽ chịu trách nhiệm lưu giữ những thông tin cấu hình này.

Portlet có thể truy cập vào các thông tin cấu hình của nó thông qua giao diện
PortletPreferences. Và Portlet chỉ có thể thay đổi các thông tin về cấu hình của nó bên
trong phương thức processAction.
Định nghĩa Portlet xác định các thuộc tính preference mà một Portlet sử dụng.
Định nghĩa này bao gồm các giá trị khởi tạo và xác đị
nh xem thuộc tính này có phải là
thuộc tính chỉ đọc hay không.
11. Caching
Việc lưu các nội dung cần sử dụng vào vùng nhớ tạm thời được thực hiện nhằm
mục đích rút ngắn thời gian xử lý của Portlet, đồng thời cũng rút ngắn thời gian xử lý
của Server.
Đặc tả Portlet xác định cơ chế hết hạn việc lưu trữ nội dung lưu tạm thời này.
Cơ chế này họat động tùy thuộc và từng Portlet và từng người sử
dụng Portlet. Nội

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Bùi Vĩnh Phú 52 Đặng Đình Vương
dung được lưu trữ tạm thời không được chia sẻ giữa các người sử dụng khác nhau đang
sử dụng đồng thời cùng một Portlet.
Một Portlet muốn tăng thời gian xử lý bằng cách sử dụng cơ chế lưu trữ tạm
thời nội dung cần phải định nghĩa thời gian hết hạn nội dung lưu tạm thời (tính bằng
đơn vị giây) trong đặc tả triể
n khai của nó. Ví dụ sau đây cho biết một Portlet muốn nội
dung của nó được lưu trữ tạm thời với thời gian hết hạn là 300 giây.

<portlet>

<expiration-cache>300</expiration-cache>



</portlet>

Một Portlet nếu đã định nghĩa thời gian hết hạn lưu trữ dữ liệu tạm thời của nó
trong đặc tả triển khai của nó vẫn có thể được lập trình viên thay đổi
Thời gian hết hạn của việc lưu trữ tạm thời này có thể được thay đổi bằng cách
thay đổi thuộc tính của đối tượng RenderResponse.
Nếu thời gian hết hạn này được gán b
ằng 0 thì việc lưu trữ dữ liệu tạm thời bị
bỏ qua đối với Portlet. Nếu giá trị này được gán bằng -1 thì các nội dung được lưu tạm
thời của Portlet sẽ không bao giờ bị hết hạn.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Bùi Vĩnh Phú 53 Đặng Đình Vương
Nếu một Portlet không định nghĩa thời gian hết hạn của dữ liệu lưu trữ tạm thời
trong đặc tả triển khai của nó thì việc thay đổi giá trị thời gian này trong đối tượng
RenderResponse sẽ không có tác dụng do sẽ bị Portlet Container bỏ qua.
Nếu nội dung của Portlet được lưu trữ tạm thời và chưa hết hạn, đồng thời
không có một yêu cầu nào đến Portlet từ phía người sử d
ụng thì Portlet Container sẽ sử
dụng nội dung được lưu trữ tạm thời khi cần thiết.
Nếu nội dung của Portlet được lưu trữ tạm thời và có yêu cầu đến Portlet từ phía
người sử dụng thì Portlet Container sẽ không sử dụng nội dung tạm thời được lưu trữ
mà sẽ gọi đến phương thức xử lý yêu cầu của Portlet
12. Ứng dụng Portlet
12.1 Các thành phần của ứng dụng Portlet
Ứng dụng Portlet là một ứng dụng Web nên ngoài việc bao gồm Portlet và đặc
tả triển khai Portlet, nó còn có thể chứa các thành phần khác như: Servlet, trang JSP,
các lớp… Do đó, bên cạnh các thông tin về ứng dụng Portlet, nó còn chứa đựng thông

tin về các thành phần được đưa vào ứng dụng Portlet.
12.2 Cấu trúc cây thư mục
Một ứng dụng Portlet cũng có cấu trúc cây thư mục được tổ chức giống như một
ứng dụng Web. Tuy nhiên có một số khác biệt như sau:
• Có thêm tập tin /WEB-INF/portlet.xml là tập tin đặc tả triển khai của
Portlet.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Bùi Vĩnh Phú 54 Đặng Đình Vương
• Các lớp được sử dụng cho ứng dụng Portlet và các tài nguyên khác được
truy cập bởi ứng dụng Portlet cần phải được lưu trong thư mục
/WEB-INF/classes hoặc trong các tập tin JAR được lưu trong thư mục
/WEB-INF/lib.
12.3 Tập tin lưu trữ của ứng dụng Portlet
Một ứng dụng Portlet cũng được đóng gói như là một ứng dụng Web. Nghĩa là
sử dụng dạng WAR (Web Application Archive) khi triển khai ứng dụng.
13. Các đặc tả đóng gói và triển khai
13.1 Đặc tả triển khai của ứng dụng Web và ứng dụng Portlet
Trong các ứng dụng Portlet, luôn tồn tại 2 tập tin đặc tả là:
• Tập tin web.xml dùng để đặc tả các tài nguyên của ứng dụng Web.
• Tập tin portlet.xml dùng để đặc tả các tài nguyên của ứng dụng Portlet.
Các tài nguyên nào không liên quan đến Portlet thì được khai báo trong tập tin
đặc tả web.xml. Còn các tài nguyên nào có liên quan đến Portlet thì được khai báo
trong tập tin portlet.xml . Ngòai ra, một số thông tin của Portlet cần phải được khai báo
trong tập tin web.xml như sau:
• Mô tả về ứng dụng Portlet được khai báo bằng thẻ
<description>.
• Tên của ứng dụng Portlet được khai báo bằng thẻ <display-name>.
• Việc ánh xạ các vai trò bảo mật (Security Role Mapping) của ứng dụng

Portlet được khai báo bằng thẻ <security-role>.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Bùi Vĩnh Phú 55 Đặng Đình Vương

13.2 Triển khai ứng dụng Portlet và ứng dụng Web
Các Portlet, đặc tả triển khai và mọi tài nguyên đều phải được đóng gói trong
cùng một tập tin WAR. Trong đó, thư mục WEB-INF bao gồm các thành phần:
• Tập tin đặc tả triển khai /WEB-INF/portlet.xml
• Các lớp của Portlet nằm trong thư mục /WEB-INF/classes
• Các tập tin JAR được lưu trong thư mục /WEB-INF/lib
Một ví dụ về cấu trúc cây thư mục của ứng dụng Portlet như sau:
/images/myButton.gif
/META-INF/MANIFEST.MF
/WEB-INF/web.xml
/WEB-INF/portlet.xml
/WEB-INF/lib/myHelpers.jar
/WEB-INF/classes/com/mycorp/servlets/MyServlet.class
/WEB-INF/classes/com/mycorp/portlets/MyPortlet.class
/WEB-INF/jsp/myHelp.jsp
Ứng d
ụng Portlet nếu muốn sử dụng các tài nguyên không thể đóng gói được
vào tập tin WAR, chẳng hạn EJB, thì có thể đóng gói các tài nguyên này dưới dạng tập
tin EAR.
13.3 Các thành phần của đặc tả triển khai Portlet
Các thông tin cấu hình và các thông tin triển khai sau đây phải được hỗ trợ trong
tập tin đặc tả triển khai Portlet :

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA


Bùi Vĩnh Phú 56 Đặng Đình Vương
• Định nghĩa ứng dụng Portlet (Portlet Application Definition)
• Định nghĩa Portlet (Portlet Definition)
Hình vẽ sau minh họa cấu trúc của một đặc tả triển khai Portlet:

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Bùi Vĩnh Phú 57 Đặng Đình Vương

















Hình 16: Cấu trúc một đặc tả triển khai Portlet

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA


Bùi Vĩnh Phú 58 Đặng Đình Vương

Hình 17: Cấu trúc một đặc tả triển khai Portlet (tt)

×