Download - Setup Liferay
BÁO CÁO
THỰC TẬP TỐT NGHIỆPTìm hiểu các chức năng của một Hệ thống portal
Nghiên cứu , cài đặt một hệ thống portal với Liferay
Thiết kế 1 Portlet cho hệ thống.
Nơi thực tập : Phòng NCPT Dịch vụ Bưu chính Viễn thông
Người hướng dẫn : Hoàng Cường
Người báo cáo : Nguyễn Quỳnh Mai
Lớp : H09CN11
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
TRUNG TÂM CÔNG NGHỆ THÔNG TIN
Báo cáo thực tập tốt nghiệp
ĐÁNH GIÁ KẾT QUẢ THỰC TẬP TỐT NGHIỆP
(Thời gian thực tập: Từ ngày 31/10/2011 đến ngày 4/12/2011 )
Họ và tên sinh viên : Nguyễn Quỳnh Mai
Lớp: H09CN11
NỘI DUNG ĐÁNH GIÁ
1. Chấp hành kỷ luật : (Tốt, Trung bình, hoặc Yếu)………………………
2. Ý thức học tập : (Tốt, Trung bình, hoặc Yếu)…………………………...
3. Quan hệ, giao tiếp : (Tốt, Trung bình, hoặc Yếu)……………………….
4. Điểm : (Thang điểm 10)……………………………………………………..
Các ý kiến khác (nếu có:…………………………………………………………….
Điểm của Hội đồng đánh giá thực tập tốt nghiệp CDiT:………………….
Điểm trung bình của thực tập của sinh viên: ……………………………..
Nguyễn Quỳnh Mai H09cn11
TRUNG TÂM CÔNG NGHỆ THÔNG TIN
Phòng NCPT Dịch vụ Bưu chính Viễn thông
CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập -Tự do - Hanh phúc
Ngày tháng năm 2011
Giáo viên hướng dẫn thực tập
(Ký và ghi rõ họ tên)
2
Hà nội 12/2011
Báo cáo thực tập tốt nghiệp
LỜI CẢM ƠN
Thực tập tốt nghiệp nhằm giúp sinh viên tìm hiểu, thu thập những tài liệu thực
tế ởi đơn vị thực tập, đồng thời vận dụng kiến thức đã học. Qua thời gian học tập tại
học viện công nghệ bưu chính viễn thông,được sự chỉ bảo tận tình của các thầy cô
giáo trong trường em đã trang bị cho mình được nhiều kiến thức để chuẩn bị đi vào
thực tế.
Được sự phân công của khoa công nghệ thông tin - Học viện công nghệ bưu
chính viễn thông, em được thực tập tại Phòng NCPT Dịch vụ Bưu chính
Viễn thông .Trong thời gian 1 tháng làm cáo cáo thực tập tốt nghiệp em xin chân
thành cảm ơn thầy Hoàng Cường phòng dịch vụ bưu chính viễn thông – học viện
công nghệ bưu chính viễn thông đã nhiệt tình hướng dẫn em về chuyên môn cũng
như phương pháp làm việc để em có thể hoàn thành đề tài.
Do còn hạn chế về kiến thức và năng lực nên báo cáo không tránh khỏi thiếu sót về
nội dung và hình thức. Để báo cáo được hoàn thiện hơn em rất mong được sự góp ý
của thầy cô và các bạn.
Qua đây, em cũng xin gửi lời cảm ơn chân thành tới các thầy, các cô trong
phòng Dịch vụ Bưu chính Viễn thông – Học viện CN bưu chính viễn thông đã giúp
đỡ, tạo điều kiện cho em hoàn thành đề tài thực tập này.
Em xin gửi đến quý thầy cô lời chúc sức khỏe và thành công
Em xin chân thành cảm ơn !
Nguyễn Quỳnh Mai H09cn11 3
Báo cáo thực tập tốt nghiệp
Mục lục
Mục lục ............................................................................................................................................. 4
LỊCH LÀM VIỆC ............................................................................................................................ 7
Phần A ............................................................................................................................................. 8
GIỚI THIỆU ĐƠN VỊ THỰC TẬP ............................................................................................. 8
II. Tổ chức .................................................................................................................................................... 9
III. Các lĩnh vực hoạt động ........................................................................................................................ 10
Phần B ........................................................................................................................................... 10
NỘI DUNG THỰC TẬP ............................................................................................................. 10
I. GIỚI THIỆU CHUNG ........................................................................................................................... 10
II. Các chức năng của một Hệ thống portal ............................................................................................. 13
1. Tổng quan về Portal. Portal, tên đầy đủ là Web Portal, là một hệ thống hoạt động trên Web, định danh và xác thực người dùng đăng nhập, từ đó sẽ cung cấp một giao diện web để người dùng dễ dàng truy cập, khai thác thông tin và dịch vụ cũng như thao tác, tuỳ biến các công việc tác nghiệp của mình một cách nhanh chóng và đơn giản......................................................................................................................13 Định nghĩa một cách tương đối, Portal là một phần mềm ứng dụng Web- based, định danh và xác thực người dùng đăng nhập, từ đó sẽ cung cấp giao diện mang tính cá nhân hóa cho người sử dụng. Thông qua giao diện này, người dùng dễ dàng truy cập, khai thác, tìm kiếm, giao tiếp với các ứng dụng, các thông tin, và với những người dùng khác............................................................................142. Các chức năng của portal................................................................................15
2.1 Chức năng tìm kiếm .................................................................................15 Chức năng tìm kiếm là dịch vụ đầu tiên cần phải có của tất cả các Portal. Sau khi người sử dụng mô tả loại thông tin mà mình cần thông qua các từ khoá hoặc tổ hợp các từ khoá, dịch vụ này sẽ tự động thực hiện tìm kiếm thông tin trên các Website có trên Internet và trả lại kết quả cho người dùng. Thời gian thực hiện của dịch vụ tìm kiếm này rất nhanh, do vậy rất tiện lợi cho người dùng.2.2 Dịch vụ thư mục.......................................................................................152.3. Ứng dụng trực tuyến................................................................................162.4 Cá nhân hoá các dịch vụ ...........................................................................162.5 Cộng đồng ảo ...........................................................................................172.6 Một điểm tích hợp thông tin duy nhất ......................................................172.7 Kênh thông tin .........................................................................................18
3 . Phân biệt Portal với CMS (A content management system)..........................18
Nguyễn Quỳnh Mai H09cn11 4
Báo cáo thực tập tốt nghiệp
3.1 Khả năng cá nhân hoá :.............................................................................193.2 Khả năng tích hợp nhiều loại thông tin :..................................................193.3 Khả năng xuất bản thông tin theo tiêu chuẩn :..........................................203.4 Hỗ trợ nhiều môi trường hiển thị thông tin :.............................................20 3.5 Khả năng đăng nhập một lần :.................................................................203.6 Khả năng quản trị portal :........................................................................213.7 Khả năng quản trị người dùng:.................................................................21
III. Tim hiêu hệ thống portal với Liferay ................................................................................................. 22
1. Khái niệm Liferay ..........................................................................................222. Các phiên bản của Liferay...............................................................................242. Các thành phần của Liferay.............................................................................26
IV. Cài đặt và thiết kế Portlet cho Liferay. ............................................................................................. 28
1. Portlet. Một server portal quản lý các yêu cầu của client. Và có một portlet container để quản lý việc chạy các Portlets. Bên trong portal là Portlet API - phục tùng mệnh lệnh của portlet container chúng quản lý trạng thái thực thi của portlet. Portlet container đánh giá những portlet đó thành các fragments, hoặc là tạo yêu cầu (request) của portlet hoặc là lấy một fragment trong cache. Sau đó, container nắm fragment gửi đến portal server để kết hợp chúng vào trong trang portal. Tạo nên giao diện của trang Portal.............................................................................28 2. NetBean IDE NetBean IDE là một “môi trường phát triển tích hợp“ (Integrated Development Environment) kiểu như Visual Studio của Microsoft và được xem là một một bộ ứng dụng “must-download” dành cho các nhà phát triển phần mềm. NetBean IDE hỗ trợ nhiều hệ điều hành khác nhau như Windows, Mac, Linux, và Solaris. NetBean bao gồm một IDE mã nguồn mở và một nền tảng ứng dụng cho phép nhà phát triển nhanh chóng tạo nên các ứng dụng dành cho web, doanh nghiệp, desktop và thiết bị di động bằng các ngôn ngữ lập trình Java, C/C++, JavaScript, Ruby, Groovy, và PHP. NetBeans IDE 6.5 Beta cung cấp nhiều tính năng mới như shortcut tìm kiếm trong toàn bộ IDE gọi là QuickSearch, giao diện thận thiện hơn với người dùng, và tính năng tự động biên dịch khi lưu (Compile on Save). Ngoài việc hỗ trợ Java mọi phiên bản (Java SE, Java EE, Java ME), NetBean IDE còn là công cụ lý tưởng cho việc phát triển phần mềm bằng các ngôn ngữ PHP, C/C++, Groovy and Grails, Ruby and Rails, Ajax and JavaScript. Phiên bản 6.5 còn tăng cường hỗ trợ cho web framework (Hibernate, Spring, JSF, JPA), trình ứng dụng máy chủ GlassFish và cơ sở dữ liệu............................................................................32
KẾT LUẬN .................................................................................................................................... 32
Phần C: PHỤ LỤC ....................................................................................................................... 35 1.Cài đặt và cấu hình liferay..............................................................................35Paord: test............................................................................................................37
Nguyễn Quỳnh Mai H09cn11 5
Báo cáo thực tập tốt nghiệp
2. Thiết kế Portlet cho Liferay...........................................................................37 2.1 Chuẩn bị các gói cài đặt trên môi trường Windows.................................372.2 Khởi động Netbeans..................................................................................392.3 Sau đó add Liferay Portal Server cho netbeans : .....................................392.4 Thiết kế 1 Portlet cho hệ thống .............................................................41
............................................................................................................................483. Tích hợp portlet vào hệ thống.........................................................................49
Nguyễn Quỳnh Mai H09cn11 6
Báo cáo thực tập tốt nghiệp
LỊCH LÀM VIỆC
Họ và tên sinh viên: Nguyễn Quỳnh Mai
Cơ quan thực tập : Phòng NCPT Dịch vụ Bưu chính Viễn thông
Họ và tên cán bộ hướng dẫn: Hoàng Cường
Thời gian thực tập, từ ngày 31 tháng 10 năm 2011 đến ngày 4 tháng 12 năm 2011
Tuần Nội dung công việc được giaoTự nhận xét về mức độ
hoàn thành
Nhận xét của
CB hướng
dẫn
Chữ ký
của CB
hướng
dẫn1
Từ
31/10
đến
5/11
- Tìm tài liệu về các chức năng
của một Hệ thống portal
- Tìm tài liệu tổng quan về PortalPhân biệt Portal với CMS
Tìm đầy đủ được các tài
liệu liên quan
Có tài liệu mô tả chi tiết
các chức năng
2
Từ
6/11
đến
12/11
- Tìm tài liệu về Liferay, thành
phần của Liferay, ứng dụng của
Liferay trên thực tế.
Tìm đầy đủ tài liệu
Có tài liệu tổng quan về hệ
thống portal với Liferay
3
Từ
13/11
đến
19/11
-Chuẩn bị các gói cài đặt trên môi trường Windows 7 :
1. JDK :phát triển ngôn ngữ Java và môi trường máy ảo Java2. ANT : để phát triển ứng dụng, cài đặt ANT để có thể biên dịch và phân phối3. Gói liferay-portal-Cai đăt thư nghiêm
-Cài đặt 3 gói tin chạy trên windowsTài liệu cài đặt và tài liệu thiết kếCai đăt hoan thiên môt hê thông portal vơi Liferay
- Hệ thống chạy Tài liệu chi tiết quá trình
cài đặt
- Cài đặt Netbeans 7.0.1 -Cài đặt thành công. Chạy
Nguyễn Quỳnh Mai H09cn11 7
Báo cáo thực tập tốt nghiệp
Tuần Nội dung công việc được giaoTự nhận xét về mức độ
hoàn thành
Nhận xét của
CB hướng
dẫn
Chữ ký
của CB
hướng
dẫn
4
Từ
20/11
đến
26/11
liferay-portal-5.2.3.- Add liferay vào netbeans- Tạo 1 Portlet.- Tích hợp portlet vào hệ thống
netbeans trên nền java không lỗi, tạo được portlet trong netbeans sau đó tích hợp vào hệ thống.- Hoàn thiện 1 Portlet cho hệ thống.
-Tài liệu thiết kế portlet
5
Từ
27/11
đến
4 /12
Viết báo cáo
- In quyển báo cáo chi tiết
Phần A
GIỚI THIỆU ĐƠN VỊ THỰC TẬP
I. Chức năng
Được thành lập năm 1999 trong xu thế cạnh tranh và hội nhập toàn cầu, Trung
tâm Công nghệ Thông tin CDIT, với vai trò là đơn vị nghiên cứu phát triển hàng đầu
trong lĩnh vực công nghệ thông tin, xác định: việc lĩnh hội, đúc kết và phát huy tiềm
Nguyễn Quỳnh Mai H09cn11 8
Báo cáo thực tập tốt nghiệp
năng, nội lực, làm chủ công nghệ là mục tiêu chiến lược nhằm thực hiện thành công
định hướng gắn kết Nghiên cứu - Đào tạo - Sản xuất Kinh doanh. CDIT đã duy trì,
phát triển và chiếm lĩnh thị trường trong nước với các sản phẩm đáp ứng tiêu chí:
Tiên tiến - Tương thích - Toàn cầu, thay thế sản phẩm nhập khẩu, nỗ lực đóng góp
cho sự phát triển của mạng lưới bưu chính viễn thông và công nghệ thông tin Việt
Nam, vươn mình hòa nhập với cộng đồng CNTT trong khu vực và trên thế giới.
Trung tâm Công nghệ Thông tin CDIT được Tổng giám đốc Tổng Công ty
Bưu chính Viễn thông Việt Nam ký quyết định thành lập số 636/QĐ.TCCB-LĐ ngày
22 tháng 3 năm 1999, trên cơ sở sắp xếp lại hai đơn vị thành viên của các đơn vị trực
thuộc Học viện Công nghệ Bưu chính Viễn thông :
1. Trung tâm Nghiên cứu Phát triển Phần mềm thuộc Viện KHKT Bưu điện;
2. Trung tâm Đào tạo Phát triển Phần mềm thuộc Trung tâm Đào tạo BCVT1.
* Nhiệm vụ
Trung tâm Công nghệ Thông tin CDIT có nhiệm vụ: nghiên cứu, phát triển, triển khai
sản phẩm, chuyển giao công nghệ và đào tạo trong lĩnh vực Công nghệ Thông tin
phục vụ Ngành Bưu chính Viễn thông và xã hội.
* Nhân lực
90% đội ngũ là kỹ sư, chuyên gia phát triển phần mềm, 74% đội ngũ có trình độ đại
học, 19% có trình độ thạc sỹ, 4% có trình độ Tiến sỹ.
II. Tổ chức
MÔ HÌNH TỔ CHỨC
Nguyễn Quỳnh Mai H09cn11 9
Báo cáo thực tập tốt nghiệp
III. Các lĩnh vực hoạt động
Trung tâm Công nghệ Thông tin hoạt động trên năm lĩnh vực chính:
1. Nghiên cứu khoa học công nghệ;
2. Phát triển, triển khai công nghệ và sản phẩm;
3. Sản xuất phần mềm và thiết bị;
4. Tiếp nhận và chuyển giao công nghệ;
5. Đào tạo và bồi dưỡng nhân lực.
Phần B
NỘI DUNG THỰC TẬP
I. GIỚI THIỆU CHUNG
Trong sự phát triển mạnh mẽ của Internet, thì các Website giữ một vai trò đặc
biệt quan trọng trong mọi lĩnh vực của đời sống nhân loại. Với đam mê sáng tạo và
Nguyễn Quỳnh Mai H09cn11
BAN GIÁM ĐỐC ĐẢNG, CÔNG ĐOÀN, ĐOÀN THANH NIÊN
Phòng tổng hợp
Phòng kế hoạch tài chính
Phòng nc phát triển mạng và hệ thống
Phòng nc phát triển dịch vụ BCVT
Phòng nc phát triển ứng dụng
10
Báo cáo thực tập tốt nghiệp
chinh phục thế giới, công nghệ thông tin đã và đang thay đổi từng ngày. Các thế hệ
website ra đời, cải tiến liên tục, cùng với Web Service, sự trợ giúp của công nghệ
Mobile Agent - một chương trình thay mặt người dùng thực hiện công việc tìm kiếm
và xử lý thông tin trên Internet - khái niệm Website truyền thống được chuyển thành
“Website thông minh” với sự trợ giúp của dịch vụ Search Engine, một công cụ cho
phép tìm kiếm và lọc thông tin trên cơ sở các từ khoá được xác lập bởi người dùng và
dịch vụ phân loại thông tin – Category. Từ đó, thuật ngữ “Website thông minh” hay
“Cổng điện tử” - Portal được hình thành.
Ở nước ta, một số địa phương cũng rất quan tâm phát triển công nghệ Portal
như thành phố Hà Nội, thành phố Hồ Chí Minh, Quảng Nam và một số địa phương
khác… Các địa phương này đã xây dựng được cổng thông tin điện tử cho riêng mình,
để nó trở thành một công cụ phục vụ đắc lực trong việc quản lý, điều hành các hoạt
động kinh tế, xã hội.
Tên chủ đề thực tập Tìm hiểu các chức năng của một Hệ thống portal, Nghiên
cứu , cài đặt một hệ thống portal với Liferay, Thiết kế 1 Portlet cho hệ thống.
Nguyễn Quỳnh Mai H09cn11 11
Báo cáo thực tập tốt nghiệp
Nguyễn Quỳnh Mai H09cn11 12
Báo cáo thực tập tốt nghiệp
II. Các chức năng của một Hệ thống portal
1. Tổng quan về Portal.
Portal, tên đầy đủ là Web Portal, là một hệ thống hoạt động trên Web, định
Nguyễn Quỳnh Mai H09cn11
STTNội dung Cách thức thực hiện Kết quả cần đạt
1Tìm hiểu các chức năng của một Hệ thống portal
- Tìm tài liệu -Tài liệu mô tả chi tiết các chức năng
1.1-Tìm hiểu các chức năng của một Hệ thống portal
-Tìm hiểu tổng quan về Portal-Các chức năng của portal-Phân biệt Portal với CMS
-Tài liệu
1.2
-Tim hiêu hệ thống portal với Liferay
- Tìm hiểu Liferay là gì-Các thành phần của Liferay-Các ứng dụng của Liferay trên thực tế
- Tài liệu tổng quan về hệ thống portal với Liferay
2Cài đặt và thiết kế Portlet cho Liferay
-Cài đặt- Thiết kế Portlet cho Liferay
-Tài liệu cài đặt hệ thống và tài liệu thiết kế
2.1
-Cài đặt một hệ thống portal với Liferay
-Chuẩn bị các gói cài đặt trên môi trường Windows
-Cai đăt thư nghiêm
-Cai đăt hoan thiên môt hê thông portal vơi Liferay
- Hệ thống chạy -Tài liệu chi tiết quá trình cài đặt
2.2
- Thiết kế 1 Portlet cho hệ thống
-Hoàn thiện báo cáo
-Thiêt kê 1 Portlet.-Tích hợp portlet vào hệ thống
- Hoàn thiện 1 Portlet cho hệ thống.
-Tài liệu thiết kế portlet- In quyển báo cáo chi tiết
13
Báo cáo thực tập tốt nghiệp
danh và xác thực người dùng đăng nhập, từ đó sẽ cung cấp một giao diện web để
người dùng dễ dàng truy cập, khai thác thông tin và dịch vụ cũng như thao tác, tuỳ
biến các công việc tác nghiệp của mình một cách nhanh chóng và đơn giản.
Định nghĩa một cách tương đối, Portal là một phần mềm ứng dụng Web-
based, định danh và xác thực người dùng đăng nhập, từ đó sẽ cung cấp giao diện
mang tính cá nhân hóa cho người sử dụng. Thông qua giao diện này, người dùng dễ
dàng truy cập, khai thác, tìm kiếm, giao tiếp với các ứng dụng, các thông tin, và với
những người dùng khác.
Đứng trên khía cạnh công nghệ, ngày nay portal được coi như một giải
pháp(frame work) mà thông qua đó chúng ta có thể quy tụ, quản lý nhiều nguồn
thông tin(bao gồm thông tin và ứng dụng phần mềm) khác nhau vào trong một thực
thể phần mềm duy nhất-phần mềm portal. Từ đó, các thông tin được phân phối dưới
dạng các dịch vụ cho từng người dùng khác nhau tuỳ thuộc vào nhóm quyền, vào nhu
cầu cũng như mục đích của người dùng đó.
Có thể nói, Portal như một cổng vào vạn năng cho người dùng tìm kiếm thông
tin và tác nghiệp một cách thuận lợi và dễ dàng.
Để làm rõ bản chất của Portal chúng ta đưa ra bảng so sánh giữa Portal với
một Website thông thường sau đây.
Portal Website thông thường+ Portal hỗ trợ khả năng đăng nhập một lần tới tất
cả các tài nguyên được liên kết với Portal. Nghĩa
là, người dùng chỉ cần một lần đăng nhập là có thể
vào và sử dụng tất cả các ứng dụng đã được tích
hợp trong Portal đó mà người dùng này có quyền.
+ Một website thông thường
không có được khả năng đăng
nhập một lần.
+ Portal hỗ trợ khả năng cá nhân hóa theo người
sử dụng.Đây là một trong những khả năng quan
trọng của Portal, giúp nó phân biệt với một
website thông thường. Portal cá nhân hóa nội
+ Thường không hỗ trợ, nếu có
chỉ ở mức độ rất nhỏ, không phải
là đặc điểm nổi bật.
Nguyễn Quỳnh Mai H09cn11 14
Báo cáo thực tập tốt nghiệp
Portal Website thông thườngdung hiển thị, thông thường đây là sự lựa chọn
một cách tự động dựa trên các quy tắc tác nghiệp,
chẳng hạn như vai trò của người sử dụng trong
một tổ chức+ Khả năng tùy biến.
Đây là một khả năng tiêu biểu của một Portal.
+ Một vài Website có nhưng chỉ
dừng lại ở mức độ dựng sẵn.
+ Liên kết truy cập tới hàng trăm kiểu dữ liệu, kho
dữ liệu, kể cả dữ liệu tổng hợp hay đã phân loại.
Portal nó có khả năng liên kết tới tài nguyên dữ
liệu rộng lớn, gồm nhiều kiểu dữ liệu từ dữ liệu
thông thường đến siêu dữ liệu.
+ Chỉ sử dụng các liên kết để tới
các site khác nhưng nội dung chủ
yếu vẫn chỉ tập trung trong trang
đó.
+ Portal hỗ trợ rất tốt khả năng liên kết và hợp tác
người dùng.
Portal không chỉ liên kết chúng ta với những gì
chúng ta cần mà còn liên kết với những người mà
chúng ta cần. Khả năng liên kết này được thực
hiện bởi các dịch vụ hợp tác.
+ Không hỗ trợ
2. Các chức năng của portal.
2.1 Chức năng tìm kiếm
Chức năng tìm kiếm là dịch vụ đầu tiên cần phải có của tất cả các
Portal. Sau khi người sử dụng mô tả loại thông tin mà mình cần thông qua các
từ khoá hoặc tổ hợp các từ khoá, dịch vụ này sẽ tự động thực hiện tìm kiếm
thông tin trên các Website có trên Internet và trả lại kết quả cho người dùng.
Thời gian thực hiện của dịch vụ tìm kiếm này rất nhanh, do vậy rất tiện lợi
Nguyễn Quỳnh Mai H09cn11 15
Báo cáo thực tập tốt nghiệp
cho người dùng.
2.2 Dịch vụ thư mục.
Đối với những người dùng không muốn tìm kiếm thông tin qua các từ khoá,
họ có nhu cầu tìm kiếm thông tin theo một chủ đề, lĩnh vực nào đó, thì có thể sử dụng
dịch vụ thư mục phân loại thông tin. Dịch vụ thư mục là dịch vụ thực hiện phân loại
và sắp xếp thông tin trên các website theo chủ đề có thể có nhiều chủ đề con trong
một chủ đề và có thể tiếp tục phân tách xuống các mức thấp hơn.
2.3. Ứng dụng trực tuyến.
Bao gồm các ứng dụng phổ biến nhất của Internet, hiện nay có các ứng dụng điển
hình như :
- Thư điện tử: Các Portal lớn như Yahoo, Excite, v.v… thường cung cấp các
tài khoản điện tử (E-mail account) miễn phí cho người dùng. Dịch vụ này rất có ý
nghĩa vì người dùng có thể nhận/gửi tại bất cứ địa điểm nào của Internet.
- Lịch cá nhân: Một số Portal cung cấp dịch vụ “lịch cá nhân - calendar” miễn
phí cho người dùng. Dịch vụ này giúp người sử dụng có thể sử dụng lịch cá nhân mọi
nơi trên Internet.
- Hội thoại trực tuyến: Dịch vụ này cho phép nhóm người dùng hội thoại trực
tuyến với nhau thông qua môi trường Internet, không phụ thuộc vào khoảng cách địa
lý giữa họ. Có thể liệt kê nhiều loại dịch vụ trực tuyến khác như dịch vụ hỗ trợ kỹ
thuật trực tuyến giữa các nhà sản xuất với khách hàng của mình…
- Các dịch vụ khác: Một trong những dịch vụ hấp dẫn người sử dụng là bưu
thiếp điện tử. Thay vì gửi bưu thiếp qua đường bưu điện thông thường, ngay nay
người sử dụng có thể gửi bưu thiếp chức mừng người thân của mình thông qua mạng
Internet.
2.4 Cá nhân hoá các dịch vụ
Cá nhân hoá là dịch vụ đặc trưng quan trọng của Portal. Trên cơ sở các thông
tin của từng khách hàng cụ thể, nhà cung cấp có thể tạo ra các dịch vụ mang tính định
Nguyễn Quỳnh Mai H09cn11 16
Báo cáo thực tập tốt nghiệp
hướng cá nhân, phù hợp với yêu cầu, sở thích của từng khách hàng riêng biệt của
mình. Thông qua đó các nhà cung cấp có khả năng tăng cường mối quan hệ với
khách hàng, duy trì được sự tín nhiệm của khách hàng đối với nhà cung cấp.
Cá nhân hoá các dịch vụ được tiến hành thông qua dữ liệu thông tin cá nhân
về khách hàng (customer profiles). Dữ liệu này chứa các thông tin mang tính cá nhân
như nghề nghiệp, thói quen, sở thích v.v… từ những thông tin cá nhân này, các nhà
cung cấp có khả năng giới hạn cung cấp các thông tin và các dịch vụ mà khách hàng
thực sự quan tâm muốn có. Có nghĩa là tránh được việc cung cấp các thông tin và
dịch vụ không cần thiết có thể sẽ gây khó chịu cho khách hàng, và thậm chí dẫn đến
quyết định ngừng sử dụng dịch vụ của nhà cung cấp.
2.5 Cộng đồng ảo
Cộng đồng ảo là một “một địa điểm ảo” trên Internet mà các cá nhân, các
doanh nghiệp có thể “tập hợp” để giúp đỡ, hợp tác với nhau trong các hoạt động
thương mại. Nói một cách khác “cộng đồng ảo” mang lại cơ hội hợp tác cho các cá
nhân, tổ chức doanh nghiệp mà ranh giới địa lý không còn có ý nghĩa. Sau đây là một
số ví dụ về cộng đồng ảo:
- Hội thoại trực tuyến – Online chat: Thông qua dịch vụ này người ta có thể
triển khai các hội nghị mà không cần phải tập trung toàn bộ cán bộ công nhân viên ở
các địa phương trong phạm vi cả nước về một địa điểm cụ thể nào đó.
- Hỗ trợ trực tuyến - Online support : Tại đây khách hàng có thể nhận được
trực tiếp các hỗ trợ, tư vấn của các nhà sản xuất về sản phẩm mà khách hàng đã lựa
chọn.
2.6 Một điểm tích hợp thông tin duy nhất
Đặc trưng này cho phép đơn vị cung cấp cho người sử dụng dùng một điểm
truy nhập duy nhất để thu thập và xử lý thông tin từ các nguồn khác nhau, hoặc sử
dụng các ứng dụng để khai thác kho tài nguyên thông tin chung. Như chúng ta đã
biết, có rất nhiều thông tin hàng ngày cần phải được xử lý và chuyển đến người dùng
dưới nhiều nguồn khác nhau, ví dụ như E-mail, news, tài liệu, báo cáo, các bài báo,
Nguyễn Quỳnh Mai H09cn11 17
Báo cáo thực tập tốt nghiệp
audio và các video files, v.v… sẽ rất khó khăn cho người dùng nếu các thông tin này
được xử lý một cách riêng rẽ; Comporate Portal cho phép sử dụng các công cụ tích
hợp để xử lý các nguồn thông tin này, do vậy năng suất lao động xử lý các thông tin
của người dùng sẽ được nâng cao.
2.7 Kênh thông tin
Portal cũng cho phép xây dựng các liên kết (connector) tới các ứng dụng hoặc
Portal khác. Một Portal khác hoặc một Website thông thường khác có thể cung cấp
nội dung thông tin của mình trong kênh thông tin của Portal. Kênh thông tin là đặc
tính rất mới của Portal, cho phép xây dựng các dịch vụ truy cập, xử lý các thông tin
nằm bên trong mạng Intranet của một tổ chức, và sau đó tổ chức hiển thị kết quả xử
lý tin trên kênh thông tin của Portal.
Từ những tính năng của portal nêu trên thì ta có thể hình dung một dịch vụ mà
hệ thống Portal cung cấp :
- Các dịch vụ cơ bản:
Post bài định dạng HTML/Document, Danh sách liên kết, Upload/Download Files,
Thao tác ảnh…
- Các dịch vụ giao tiếp công cộng:
Forum, Thông báo, Thăm dò - Bỏ phiếu…
- Các dịch vụ cung cấp thông tin:
Thông báo, Bản tin...
- Các dịch vụ tìm kiếm:
Tìm kiếm, Phân loại …
- Các dịch vụ trợ giúp người dùng:
Thông tin cá nhân, Lịch biểu…
- Các dịch vụ tác nghiệp:
Quản lý nội dung, Hợp tác dự án, Quản lý bán hàng, quản lý nhân sự…
3 . Phân biệt Portal với CMS (A content management system)
Nguyễn Quỳnh Mai H09cn11 18
Báo cáo thực tập tốt nghiệp
Mỗi portal được phát triển mới hoặc cung cấp từ những hệ thống có bản
quyền thương mại đều tập trung giải quyết một lớp vấn đề nghiệp vụ cụ thể và thực
tế, vì vậy không phải mọi tính năng về portal đều phải có trên portal mà bạn muốn
kiểm nghiệm.
3.1 Khả năng cá nhân hoá :
Cách thức hệ thống cung cấp thông tin cho nhiều người dùng khác nhau hoặc
nhiều cấp độ người dùng khác nhau có thể có nhiều kết quả khác nhau, như :
+ Nếu với 2 người dùng khác nhau hoặc với 2 cấp độ sử dụng (quyền) khác
nhau và thông tin hiển thị vẫn giống nhau, thì bạn có thể kết luận ngay rằng hệ
thống này không có phép cá nhân hoá thông tin, và có thể đi đến kết luận cuối
cùng rằng đó không phải là hệ thống portal.
+ Nếu với 2 cấp độ khác nhau, thông tin được sử dụng có sự khác nhau thì có
thể đi đến kết luận hệ thống này cho phép cá nhân hoá thông tin theo thẩm
quyền sử dụng.
3.2 Khả năng tích hợp nhiều loại thông tin :
+ Nếu nhà cung cấp khi bổ sung ứng dụng/dịch vụ vào portal mà phải “bẻ” mã
(code) của website ra để viết thêm module về màn hình, các liên kết trang, các truy
cập cơ sở dữ liệu mới, một hệ thống phân quyền sử dụng mới, v.v... thì hệ thống đó
không gọi là có tính mở được, vậy kết luận là hệ thống không có khả năng tích hợp
ứng dụng theo kiểu “ghép là chạy”, và có thể kết luận ngay hệ thống đó không phải
là giải pháp portal.
+ Nếu hệ thống cho phép "ghép" các ứng dụng lại với nhau, bạn hãy yêu cầu
nhà cung cấp thay đổi nguồn hoặc kênh thông tin của các ứng dụng đã tích hợp, nếu
không thế thì kết luận "đó là hệ thống giả portal" chứ không phải là giải pháp portal.
+ Nếu có thể tích hợp thêm ứng dụng dịch vụ, loại bỏ ứng dụng dịch vụ cũ thì
kết luận hệ thống có tính năng mở, có thể tích hợp được ứng dụng và có thể là giải
pháp portal.
Nguyễn Quỳnh Mai H09cn11 19
Báo cáo thực tập tốt nghiệp
3.3 Khả năng xuất bản thông tin theo tiêu chuẩn :
Nếu nhà cung cấp không có khái niệm gì về RSS hay ATOM, thì có thể
kết luận ngay rằng hệ thống của nhà cung cấp này không có khả năng xuất bản thông
tin theo tiêu chuẩn.
Nếu hệ thống có thể xuất bản tài liệu ra tiêu chuẩn RSS, nhưng cần phải
"bẻ" mã chương trình ra chỉnh sửa lại thì có thể kết luận hệ thống có khả năng xuất
bản thông tin với chuẩn nhưng không phải là portal.
Nếu có khả năng xuất bản ngay tức thì nội dung thành RSS, bạn hãy yêu
cầu xuất bản thông tin có đầy đủ nội dung chứ không chỉ tóm tắt như tài liệu RSS đã
cung cấp, nếu nhà cung cấp không thể làm được hoặc không thể đưa ra được hướng
giải quyết cụ thể thì có thể kết luận rằng hệ thống có khả năng xuất bản thông tin
theo tiêu chuẩn nhưng chưa đầy đủ.
Nếu hệ thống cho phép xuất bản thành RSS và ATOM, chứa đầy đủ nội
dung thông tin thì có thể kết luận hệ thống có khả năng đầy đủ để xuất bản thông tin
với tiêu chuẩn công nghiệp.
Nếu nhà cung cấp đưa ra được giải pháp đồng bộ dữ liệu giữa nhiều hệ
thống bằng tài liệu theo tiêu chuẩn như ATOM hay SSE thì có thể kết luận rằng đó
là hệ thống rất mạnh trong xuất bản thông tin.
3.4 Hỗ trợ nhiều môi trường hiển thị thông tin :
Đây là một tính năng phụ nhưng khá quan trọng vì với xu thế hiện tại, người
sử dụng có thể dùng nhiều loại thiết bị để truy cập hệ thống tại nhiều địa điểm khác
nhau.
3.5 Khả năng đăng nhập một lần :
• Nếu mỗi khi dịch chuyển sang các module nghiệp vụ mới, người dùng phải
đăng nhập lại thì kết luận hệ thống không hỗ trợ khả năng SSO, và đây không phải là
giải pháp portal.
Nguyễn Quỳnh Mai H09cn11 20
Báo cáo thực tập tốt nghiệp
• Nếu khi dịch chuyển giữa các module nghiệp vụ vẫn xác định được người
dùng, bạn hãy đăng xuất (thoát - sign out/log out) và quay về sử dụng một module
nghiệp vụ khác, nếu thấy hệ thống vẫn nhận ra người dùng (mặc dù đã sign-out) thì
có thể kết luận đó là hệ thống giả lập tính năng SSO, và đó không phải là giải pháp
portal.
• Nếu đăng nhập và đăng xuất đều tốt (không bị lỗi trong 2 tình huống trên), thì
có thể kết luận hệ thống có hỗ trợ SSO. Khi đó bạn hãy yêu cầu điều hướng sử dụng
sang một tên miền khác đang dùng chính hệ thống này, nếu vẫn giữ được thông tin
đăng nhập thì kết luận là đã hỗ trợ SSO tốt, nếu không thì kết luận là hỗ trợ SSO
chưa tốt.
• Đồng thời, bạn hãy yêu cầu nhà cung cấp kết nối với hệ thống quản trị người
dùng chuyên nghiệp với tiêu chuẩn LDAP để xác thực người dùng (ví dụ: đăng nhập
bằng tài khoản của Microsoft Windows Domain của chính doanh nghiệp bạn), nếu
không thể thực hiện thì kết luận rằng tính năng SSO chưa toàn vẹn, nếu được thì
khẳng định tính năng SSO đã rất tốt.
3.6 Khả năng quản trị portal :
• Nếu nhà cung cấp phải “bẻ” mã (code) của hệ thống ra thì mới điều chỉnh
hoặc bổ sung được các nguồn thông tin hay màn hình hiển thị thì có thể kết luận ngay
hệ thống đó không phải là giải pháp portal.
• Nếu hệ thống cho phép điều chỉnh được, bạn hãy yêu cầu thay đổi các vị trí
hiển thị của các khối thông tin, thay đổi các nội dung sẽ hiển thị trong một vài khối
thông tin, nếu khi đó nhà cung cấp lại bắt buộc phải sửa mã chương trình thì kết luận
ngay rằng hệ thống không có khả năng và đó không phải là giải pháp portal. Nếu
được thì kết luận đó hệ thống có khả năng cho phép nhà quản trị thay đổi thông tin,
nguồn tin, ... khi cần.
3.7 Khả năng quản trị người dùng:
Nguyễn Quỳnh Mai H09cn11 21
Báo cáo thực tập tốt nghiệp
• Việc đăng ký tài khoản mới hoặc tạo lập tài khoản mới rất đơn giản, nhưng
không thể tạo lập các nhóm quyền sử dụng mới mà chỉ dùng được các nhóm quyền
sử dụng sẵn có của hệ thống, thì kết luận hệ thống không hỗ trợ khả năng quản trị
người dùng, và đây không phải là giải pháp portal.
• Nếu việc đăng ký/tạo tài khoản mới và tạo lập các nhóm sử dụng mới suôn sẻ,
hãy yêu cầu nhà cung cấp gán quyền sử dụng nào đó trong một module nghiệp vụ cụ
thể với nhóm người sử dụng này. Sau khi thực hiện xong, người sử dụng mới không
thể khai thác được theo quyền đã được cấp thì kết luận hệ thống không thực sự hỗ trợ
quản trị người dùng vì đó chỉ là "giả lập", và khi đó hệ thống này không thể gọi là
portal được. Nếu tất cả đều hoạt động tốt, kết luận là đã hỗ trợ tốt tính năng quản trị
người dùng.
• Nếu đã hỗ trợ tốt tính năng quản trị người dùng, hãy yêu cầu nhà cung cấp
điều chỉnh là cấu hình để hệ thống kết nối với hệ thống quản trị người dùng chuyên
nghiệp với tiêu chuẩn LDAP, sử dụng hệ thống LDAP này để xác thực người dùng
(ví dụ: đăng nhập bằng tài khoản của Microsoft Windows Domain của chính doanh
nghiệp bạn), nếu không thể thực hiện thì kết luận rằng tính năng quản trị người dùng
chưa hỗ trợ tiêu chuẩn công nghiệp, nếu thực hiện được ngay thì kết luận hệ thống đã
hoàn thiện trong tính năng quản trị người dùng.
Kết luận
• Nếu hệ thống chỉ thoả mãn từ 5 tính năng nêu trên trở xuống (thoả mãn 5 hoặc
thoả mãn ít hơn 5 tính năng) thì kết luận đó là ứng dụng web hoặc phần mềm quản trị
nội dung chứ không phải là giải pháp portal.
• Nếu thoả mãn 6 tính năng 1,2,3,5,6,7 mà không thoả mãn tính năng 4 (support
multi-device) thì kết luận đó thực sự là giải pháp portal, và có ghi chú kèm bên cạnh
là sử dụng tối ưu trên máy tính.
III. Tim hiêu hệ thống portal với Liferay
1. Khái niệm Liferay
Nguyễn Quỳnh Mai H09cn11 22
Báo cáo thực tập tốt nghiệp
Liferay Portal là giải pháp cổng thông tin doanh nghiệp cho cả những tổ chức
cá nhân và cộng đồng.
Cổng thông tin doanh nghiệp là một cổng kết nối Web cho phép người sử
dụng xác định được nội dung thích hợp và sử dụng những ứng dụng cần thiết trong
sản xuất và kinh doanh.. Cổng thông tin đưa ra những lợi ích hấp dẫn cho các doanh
nghiệp hiện nay như: giảm chi phí hoạt động, cải tiến sự hài lòng của khách hàng và
tổ chức hợp lý quy trình kinh doanh.
• Thực thi trên tất cả các ứng dụng servers & servlet, cơ sở dữ liệu và các hệ
điều hành chính yếu (có hơn 700 sự phối hợp triển khai)
• Sử dụng những công nghệ Java, J2EE và Web 2.0 tiên tiến nhất
• Được phát triển theo chuẩn JSR-168
• Đã triển khai hơn 60 ứng dụng tích hợp vào cổng thông tin
• Có khả năng thiết kế, dàn trang theo sở thích từng cá nhân cho tất cả người
sử dụng
• Điểm chuẩn giữa các nền cổng thông tin được bảo mật nhất sử dụng bộ
Logiscan của LogicLibrary
• Được tích hợp bộ Cộng tác và Hệ thống quản lý dữ liệu (CMS)
Liferay có một thiết kế kiến trúc rất rõ ràng và linh hoạt dựa trên thực tế tốt
nhất của J2EE. Do đó, nó có thể sử dụng tốt các server khác nhau như Tomcat, Jetty,
JBoss, JRun, Oracle9iAS, Orion, WebLogic, WebSphere hay công nghệ khác nhau
như Struts, Tiles, Spring, EJB , JMS, Java Mail, Web Service…Như vậy, Liferay là
một open source portal container hỗ trợ gần như hầu hết JavaServer open source hay
thương mại.
Việc customize các portal page và các portlet trong những open source Portal
Framework như eXo Platform là không dễ dàng, và có thể làm rất nhiều trong việc
cấu hình, nhưng vớfri Liferay layout management thì rất dễ dàng. Liferay Portal có
một GUI dựa trên Web cho phép user tương tác để thiết kế layout của Portal Page mà
Nguyễn Quỳnh Mai H09cn11 23
Báo cáo thực tập tốt nghiệp
không cần phải chỉnh sửa bất kỳ file cấu hình nào. Liferay Portal Enterprise đi
kèm với những portlet hữu dụng. Và nếu đem so sánh với các open source Portal
Framework khác, Liferay portal có một lượng lớn các portlet tiện ích tuân theo JSR-
168 và có thể được sử dụng trong bất kỳ Portal nào chỉ với rất ít thay đổi.
Liferay hỗ trợ WSRP specification cả cho WSRP consumer và WSRP
producer như một thực thể của Liferay portal.
Liferay có thể được sử dụng với bất kỳ database nào với chút ít ảnh
hưởng tùy theo việc sử dụng Hibernate trong thiết kế của nó. Liferay có các
JSP tag lib và nhiều class tiện ích khác trong những package khác nhau để trợ
giúp các developer trong việc phát triển portal/portlet
2. Các phiên bản của Liferay
2.1 Liferay Portal Enterprise Edition
Liferay Portal Enterprise Edition là cách tốt nhất để yêu cầu doanh nghiệp để
tận dụng lợi thế của sự đổi mới thị trường hàng đầu của Liferay với giảm nguy cơ rủi
ro và ổn định lâu dài của phần mềm chuyên nghiệp hỗ trợ.
Thuê bao của bạn phép bạn các gói dịch vụ thường xuyên, một thỏa thuận cấp độ
dịch vụ thương mại, bồi thường tùy chọn và nhiều hơn nữa.
Độ tin cậy
Liferay Portal Enterprise Edition (EE) được cấu hình cho môi trường doanh
nghiệp yêu cầu hỗ trợ để dự phòng, chuyển đổi dự phòng và cân bằng tải để đảm bảo
thời gian hoạt động tối đa các giải pháp Liferay-của bạn. EE độc quyền các tính năng
như quản lý bộ nhớ được cải thiện và hỗ trợ đất nung cho phép bạn quy mô hệ thống
của bạn hiệu quả như cơ sở người dùng của bạn phát triển.
An ninh
Liferay Portal được chuẩn là một trong những nền tảng cổng thông tin an toàn
Nguyễn Quỳnh Mai H09cn11 24
Báo cáo thực tập tốt nghiệp
nhất của thị trường với việc sử dụng các tiêu chuẩn công nghiệp, công nghệ mã hóa
cấp chính phủ. Các thuê bao của Liferay Portal EE lợi ích từ các bản vá lỗi bảo mật
bổ sung được phát hiện bởi mạng lưới khách hàng gửi qua các gói dịch vụ thường
xuyên. Đối với mức độ bảo mật trình duyệt, Liferay Portal EE thực hiện Top 10 được
khuyến cáo thực hành tốt nhất được công bố bởi các tổ chức OWASP.
Hiệu suất
Liferay Portal Enterprise Edition được điều chỉnh đối với tất cả các máy chủ
ứng dụng chính và cơ sở dữ liệu cho hiệu suất tối ưu theo tải. Tùy chỉnh cấu hình để
đáp ứng các nhiệm vụ quan trọng tốc độ và nhu cầu khả năng mở rộng triển khai
doanh nghiệp lớn, EE cung cấp tất cả các khả năng thiết yếu của sản phẩm cốt lõi
Liferay trong hình thức sản xuất sẵn sàng.
Tính ổn định
Để đảm bảo một sản phẩm ổn định cho khách hàng doanh nghiệp, không có tính năng
mới được thêm vào Liferay Portal Enterprise Edition, loại bỏ các nguy cơ khuyết tật
mới được giới thiệu bởi các tính năng mới. Mỗi gói dịch vụ Liferay Portal EE là kiểm
tra kỹ lưỡng bằng cách sử dụng quy trình đảm bảo chất lượng bổ sung để đảm bảo
rằng sản phẩm trở nên ổn định hơn với mỗi bản phát hành.
Liferay Portal Enterprise mang nhiều ý nghĩa lớn hơn là một portal container,
mà đi kèm với nó là rất nhiều đặc điểm hữu dụng như Content Management System
(CMS), tuân theo WSRP, Single Sign On (SSO), hỗ trợ AOP (Aspect Oriented
Programming), và nhiều công nghệ mới nhất khác. Chính vì vậy phiên bản EE được
lựa chọn cho đề tài này.
2.2 Liferay Portal Community Edition (CE)
Phiên bản cộng đồng miễn phí "Liferay Portal Community Edition" (CE) để
phân biệt rõ ràng giữa nó và các dịch vụ theo định hướng Liferay Portal EE. Những
người không cần hoặc muốn cam kết một hợp đồng cung cấp dịch vụ vẫn có thể truy
cập các tính năng mới nhất hoàn toàn miễn phí và không có rủi ro kinh doanh.
Nguyễn Quỳnh Mai H09cn11 25
Báo cáo thực tập tốt nghiệp
2. Các thành phần của Liferay
Ta có kiến trúc Liferay portal như hình sau:
Nguyễn Quỳnh Mai H09cn11 26
Báo cáo thực tập tốt nghiệp
3. Các ứng dụng của Liferay trên thực tế
• Cung cấp kinh nghiệm cộng tác trực quan cho các đối tượng người sử dụng.
• Củng cố, tổ chức và truy xuất tất cả dữ liệu và ứng dụng của bạn thông qua
cơ chế điểm truy cập đơn.
Nguyễn Quỳnh Mai H09cn11 27
Báo cáo thực tập tốt nghiệp
• Tối ưu hóa những hạ tầng CNTT sẵn có.
• Có khả năng điều chỉnh, thích ứng những yêu cầu tương ứng với sự thay đổi
của thị trường.
• Sắp xếp hoạt động kinh doanh của bạn một cách an toàn nhất, giảm thiểu tối
đa sự ảnh hưởng đến hạ tầng CNTT có sẵn.
• Giúp bạn thu được TCO (total cost of ownership) thấp nhất.
Bộ cộng tác Liferay
Những thuận lợi thu được trong mội trường làm việc thực tế hiện nay được
đưa vào bộ cộng tác Liferay.
• Nhật ký điện tử, wikis, thư điện tử, lịch công tác, hệ thống tin nhắn doanh
nghiệp, RSS, và những cái khác
• Hỗ trợ Microformat – Chuyển lịch trình của bạn và thông tin người sử dụng
thông qua chuẩn Web 2.0.
• Hỗ trợ Meta-Tagging – Sử dụng chức năng tag của Liferay với ứng dụng
CMS của Liferay để chia sẻ những nội dung thú vị và quan trọng với những người sử
dụng khác.
IV. Cài đặt và thiết kế Portlet cho Liferay.
1. Portlet.
Một server portal quản lý các yêu cầu của client. Và có một portlet container
để quản lý việc chạy các Portlets. Bên trong portal là Portlet API - phục tùng mệnh
lệnh của portlet container chúng quản lý trạng thái thực thi của portlet. Portlet
Nguyễn Quỳnh Mai H09cn11 28
Báo cáo thực tập tốt nghiệp
container đánh giá những portlet đó thành các fragments, hoặc là tạo yêu cầu
(request) của portlet hoặc là lấy một fragment trong cache. Sau đó, container nắm
fragment gửi đến portal server để kết hợp chúng vào trong trang portal. Tạo nên giao
diện của trang Portal.
Cấu tạo ứng dụng portlet
Ứng dụng portlet được cấu tạo giống như ứng dụng Web trong đó ta có các
tính năng sau :
• Có thể bao gồm servlets, JSPs, classes, files JAR (java archives), và các file
tĩnh khác.
• Được đóng gói - tất cả các ứng dụng Web đều được đóng gói trong thư mục
root chung.
• Có thư mục WEB-INF/classes để lưu giữ các lớp độc lập có thể tải bởi
classloader.
• Có thư mục WEB-INF/lib để lưu giữ Java Archives (JAR) có thể tải bởi
classloader.
• Được đóng gói thành file Web Archive (WAR)
Thêm vào các tính năng này, ứng dụng portlet còn bao gồm 1 file mô tả triển khai
ứng dụng Web, được đặt tại WEB-INF/portlet.xml.
Kiến trúc của Portlet
1 portal bao gồm những portlet cá nhân người dùng, chúng có thể được thêm
vào bớt ra và tuỳ biến bởi người dùng. Các portlet là cái làm đẹp cho tầng trình bày
của portal. Chúng là thành phần giao diện người dùng có thể tuỳ biến bởi user, và
chúng có thể được thêm vào và bớt đi từ portal 1 cách dễ dàng. Chúng cũng xử lý yêu
cầu người dùng và sản sinh nội dung theo yêu cầu thông qua portlet container.
Nguyễn Quỳnh Mai H09cn11 29
Báo cáo thực tập tốt nghiệp
Portlet Container
Một portlet container được sử dụng để quản lý các portlet thông qua vòng đời
của chúng. Container cho phép nhà phát triển gọi các phương thức chỉ định trong suốt
thời gian sống của 1 portlet . Nó nâng các nhà phát triển lên quyết định phương thức
nào được cài đặt (implement). Là 1 qui tắc tổng quát, các nhà phát triển nên thường
kế thừa lớp GenericPortlet khi tạo các portlet. Lớp GenericPortlet gọi các phương
thức hồi đáp chỉ định dựa trên chế độ hiện tại (current mode) của portlet. Những
phương thức này được mô tả trong bảng sau:
Phương thức
doEdit được gọi bởi phương thức hồi đáp khi portlet ở chế độ EDIT. Chế độ
EDIT nên được dùng với mục đích chỉ định biên soạn portlet . Ví dụ : nếu ta 1 portlet
danh mục vốn đầu tư chứng khoán và nó chứa đựng 1 danh sách các chứng khoán,
khi ta nhấn edit ta sẽ có thể biên soạn danh sách này trong danh mục vốn đầu tư của
mình (portfolio).
doView được gọi bởi phương thức hồi đáp khi portlet ở chế độ VIEW. Chế độ
VIEW là chế độ chính cuả portlet. Nội dung chính của portlet sẽ hiển thị trong suốt
chế độ này. Ví dụ : Nếu ta có 1 portlet xếp thứ hạng bóng đá, thứ hạng sẽ hiển thị
trong chế độ VIEW.
doHelp được gọi bởi phương thức hồi đáp khi portlet ở chế độ HELP. Chế độ
HELP dùng hiển thị các hướng dẫn chỉ định về cách sử dụng portlet. Lấy ví dụ danh
mục vốn đầu tư chứng khoán, chế độ HELP có thể mô tả cáchs thích hợp để biên
soạn (edit) và nhập các chứng khoán cũng như các kí hiệu của chúng vào trong
portlet.
Các phương thức khác có thể được truy cập với hoặc không kế thừa từ lớp
GenericPortlet. Những phương thức này cho phép nhà phát triển nắm giữ những chức
năng khác nhau mà không cần thiết trên chế độ hiện tại của portlet . Những phương
thức bổ sung này được trình bày trong bảng sau :
Nguyễn Quỳnh Mai H09cn11 30
Báo cáo thực tập tốt nghiệp
init() : được gọi bởi container khi portlet được tạo và được sử dụng để khởi
tạo portlet và chuẩn bị để sử dụng nó. Lấy ví dụ, nếu portlet của bạn cần phải load
những cấu hình chỉ định từ CSDL hay nguồn dữ liệu bên ngoài, thì phải mất nhiều
thời gian thực hiện việc đó.
destroy() : được gọi bởi container khi container phá huỷ portlet , bằng cách
cho phép bạn xoá sạch bất cứ thứ gì cần chú ý đặc biệt. Lấy ví dụ, nếu 1 kết nối
CSDL được mở, thì nó cho phép bạn đóng những kết nối mở và xoá gọn gàng khi
portlet bị phá huỷ.
processAction() : được gọi bởi container khi user xác nhận thay đổi trên
portlet. Đây là phương thức thiết yếu để bạn có thể xử lý dữ liệu đã xác nhận bởi user
từ 1 portlet. Ví dụ, bạn có thể có 1 form yêu cầu ngày sinh của user. Khi user xác
nhận form, processAction() được gọi, cho phép bạn xử lý thông tin và quyết định
hiển thị cái gì đến user, như việc thay đổi chế độ portlet (mode) nếu bạn muốn.
render() : được gọi bất cứ khi nào portlet cần vẽ lại. Trong hầu hết các trường
hợp, bạn sẽ không cần nắm giữ phương thức này vì doView, doEdit, và doHelp tồn
tại trong lớp GenericPortlet và tự động được gọi bởi phương thức render.
Bốn phương thức mà bạn sẽ tương tác nhiều nhất khi phát triển 1 portlet là
doView(), doEdit(), doHelp(), và processAction() .Những phương thức này xuất hiện
tương tự như servlet vì chúng gửi yêu cầu (request ) và trả lời (response) các đối
tượng. Tuỳ thuộc vào những phương thức được sử dụng với chúng, những Object
này có thể được sử dụng để:
Đạt được sự truy xuất đến đối tượng tham chiếu của portlet nhằm duy trì trạng
thái.
Lấy tham số được xác nhận bởi user thông qua form.
Đạt được thông tin phiên làm việc (session).
Thu thập thông tin bảo mật về user, như thông tin user-role.
Nguyễn Quỳnh Mai H09cn11 31
Báo cáo thực tập tốt nghiệp
Thay đổi những biểu hiện khác nhau của portlet, và làm thế nào nó được hồi
đáp. Chẳng hạn, tiêu đề có thể bị thay đổi thông qua đối tượng response.
2. NetBean IDE
NetBean IDE là một “môi trường phát triển tích hợp“ (Integrated
Development Environment) kiểu như Visual Studio của Microsoft và được xem là
một một bộ ứng dụng “must-download” dành cho các nhà phát triển phần mềm.
NetBean IDE hỗ trợ nhiều hệ điều hành khác nhau như Windows, Mac, Linux,
và Solaris. NetBean bao gồm một IDE mã nguồn mở và một nền tảng ứng dụng cho
phép nhà phát triển nhanh chóng tạo nên các ứng dụng dành cho web, doanh nghiệp,
desktop và thiết bị di động bằng các ngôn ngữ lập trình Java, C/C++, JavaScript,
Ruby, Groovy, và PHP.
NetBeans IDE 6.5 Beta cung cấp nhiều tính năng mới như shortcut tìm kiếm
trong toàn bộ IDE gọi là QuickSearch, giao diện thận thiện hơn với người dùng, và
tính năng tự động biên dịch khi lưu (Compile on Save). Ngoài việc hỗ trợ Java mọi
phiên bản (Java SE, Java EE, Java ME), NetBean IDE còn là công cụ lý tưởng cho
việc phát triển phần mềm bằng các ngôn ngữ PHP, C/C++, Groovy and Grails, Ruby
and Rails, Ajax and JavaScript. Phiên bản 6.5 còn tăng cường hỗ trợ cho web
framework (Hibernate, Spring, JSF, JPA), trình ứng dụng máy chủ GlassFish và cơ
sở dữ liệu.
KẾT LUẬN
Báo cáo các kết quả đạt được qua đợt thực tập : Qua đợt thực tập 5 tuần vừa
qua, do thời gian có hạn em chưa thực sự tập chung vào bài làm nên còn nhiều thiếu
sót trong nội dung. Em đã tích lũy được cho mình nhiều kiến thức về liferay, ứng
dụng thực tế của liferay trong thưc tế, hệ thống potal và các chức năng, Portlet và mã
Nguyễn Quỳnh Mai H09cn11 32
Báo cáo thực tập tốt nghiệp
nguồn mở. Đặc biệt em được tìm hiểu , học hỏi từ các cán bộ Trung tâm Công nghệ
Thông tin CDIT cách làm việc độc lập, có kế hoạch…….
Những nội dung kiến thức lý thuyết đã được củng cố : Kĩ năng lập trình Java,
cài đặt các chương trình ứng dụng, cấu hình cho máy…Ngoài ra em còn hiểu thêm
về cổng thông tin mã nguồn mở, xây dựng Web trên công nghệ mở dựa trên các tiêu
chuẩn như Java và XML.
Những kỹ năng thực hành đã học hỏi được : Em có thể sử dụng các công cụ,
chương trình như netbeans, tomcat, tạo được Portlet đơn giản.
Sau đợt thực tập em nhận thấy mình cần học hỏi nhiều hơn nữa, tìm kiếm
nhiều thông tin qua mạng internet hơn để tự bổ sung kiến thức cho mình.
Nguyện vọng : Có thể được làm việc trong môi trường chuyên nghiệp , có thể
được học tập ,tìm hiểu thêm và làm việc chuyên sâu về lập trình. Vì vậy em mong
muốn được làm việc tại trung tâm sau khi ra trường.
Nguyễn Quỳnh Mai H09cn11 33
Báo cáo thực tập tốt nghiệp
Nguyễn Quỳnh Mai H09cn11 34
Báo cáo thực tập tốt nghiệp
Phần C: PHỤ LỤC
1.Cài đặt và cấu hình liferay
1.1 Tải các phần mềm chuẩn bị các gói cài đặt trên môi trường Windows Download:
+ Jdk-7u1-windows-i586 (Phát triển ngôn ngữ Java và môi trường máy ảo
Java)
+ Apache-ant-1.8.1-bin.zip (để phát triển ứng dụng, cài đặt ANT để có thể
biên dịch và phân phối)
+ Gói liferay-portal
1.2 Cài đặt JDK (gồm JDK và môi tường máy ảo JRE)
- Chọn đường dẫn C:\Java\jdk1.7.0_01
- Khi hoàn thành cài đặt tiến hành thiết lập biến môi trường (Environment
Variables) để chạy JDK sau đó chuột phải vào My Computer mở Properties.
- Mở tab Advanced và click vào nút Environment Variables và thêm vào biến
hệ thống mới.
- Thiết lập JAVA_HOME đế vị trí cài đặt C:\Java\jdk1.7.0_01
- Thiết lập JRE_HOME đế vị trí cài đặt C:\Java\jdk1.7.0_01\jre
- Sau đó bổ sung biến PATH (Path variable): %JAVA_HOME%\bin;
%JRE_HOME%\bin;
- Click on OK.
1.3 Giải nén gói apache-ant-1.8.1-bin.zip vào C:\liferay\apache-ant-1.8.1 (Tạo thư
mục C:\liferay)
Thiết lập bổ sung môi trường cho ANT tại PATH (Path variable): là
C:\liferay\apache-ant-1.8.1\bin
Biến môi trường PATH:
Path: %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;
%JAVA_HOME%\bin;%JRE_HOME%\bin;C:\liferay\apache-ant-1.8.1\bin
1.4 Kiểm tra biến môi trường đã thành công hay chưa.
Nguyễn Quỳnh Mai H09cn11 35
Báo cáo thực tập tốt nghiệp
Mở cmd -> C:
java -version
ant –version
Giải nén Gói liferay-portal liferay-portal-tomcat-6.0.4.zip vào C:\liferay
Giải nén Gói liferay-portal liferay-portal-tomcat-6.0.4.zip vào C:\liferay
Chạy Liferay – click đúp tập tin startup.bat. trong C:\liferay\tomcat-6.0.26\bin
Chạy Liferay double-clicking tập tin startup.bat. trong C:\liferay\tomcat-6.0.26\bin
Nguyễn Quỳnh Mai H09cn11 36
Báo cáo thực tập tốt nghiệp
Liferay sẽ bắt đầu khjhhkhởi tạo và chạy khoảng 30-60 giây tự động mở trình
duyệt mặc định tại địa chỉ: http://localhost:8080, đăng nhập và làm việc với
Usernames và Passwords đăng nhập:
Email address: [email protected]
Paord: test
2. Thiết kế Portlet cho Liferay
2.1 Chuẩn bị các gói cài đặt trên môi trường Windows
Tải về và cài đặt Netbeans 7.0.1
Tải về và cài đặt liferay-portal-5.2.3
Tải về portalpack_3_0_4_all
Nguyễn Quỳnh Mai H09cn11 37
Báo cáo thực tập tốt nghiệp
Nguyễn Quỳnh Mai H09cn11 38
Báo cáo thực tập tốt nghiệp
2.2 Khởi động Netbeans
- Vào Tools > Plugins > Downloaded sau đó Add các plugin tải về (Portal Pack) rồi
nhấn install
2.3 Sau đó add Liferay Portal Server cho netbeans :
Tools | Servers | Add Server chọn Liferay Portal Server 5.1.x/5.2.x > next
Nguyễn Quỳnh Mai H09cn11 39
Báo cáo thực tập tốt nghiệp
Trong hộp thoại tiếp theo chọn nội dung
• Server Type: GlassFish / Sun Java System AppServer
• GlassFish Home: /usr/local/liferay-portal-5.2.3/glassfish
• Domain Dir: /usr/local/liferay-portal-5.2.3/glassfish/domains/domain1
• Domain: domain1
• User Name: admin
• Password: adminadmin
• Http Port: 8080
• Admin Port: 4848
Nguyễn Quỳnh Mai H09cn11 40
Báo cáo thực tập tốt nghiệp
Next
• Portal Context: /
• Portal Deploy Dir: C:\liferay-portal-
5.2.3\glassfish\domains\domain1\applications\j2ee-modules\liferay-portal
Checked: Directory Deployment Enabled > Finish
2.4 Thiết kế 1 Portlet cho hệ thống
Vào file > new project
Nguyễn Quỳnh Mai H09cn11 41
Báo cáo thực tập tốt nghiệp
Chọn next
Chọn next
Nguyễn Quỳnh Mai H09cn11 42
Báo cáo thực tập tốt nghiệp
Chọn next
Chọn finsh
Nguyễn Quỳnh Mai H09cn11 43
Báo cáo thực tập tốt nghiệp
CODE
Liferay-potlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application
5.2.0//EN" "http://www.liferay.com/dtd/liferay-portlet-app_5_2_0.dtd">
<liferay-portlet-app>
<portlet>
<portlet-name>mai demo</portlet-name>
<instanceable>true</instanceable>
</portlet>
<role-mapper>
<role-name>administrator</role-name>
<role-link>Administrator</role-link>
</role-mapper>
<role-mapper>
<role-name>guest</role-name>
Nguyễn Quỳnh Mai H09cn11 44
Báo cáo thực tập tốt nghiệp
<role-link>Guest</role-link>
</role-mapper>
<role-mapper>
<role-name>power-user</role-name>
<role-link>Power User</role-link>
</role-mapper>
<role-mapper>
<role-name>user</role-name>
<role-link>User</role-link>
</role-mapper>
</liferay-portlet-app>
PORTLET.XML
<?xml version='1.0' encoding='UTF-8' ?>
<portlet-app xmlns='http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:schemaLocation='http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd
http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd' version='2.0'>
<portlet>
<description>maidemo</description>
<portlet-name>mai demo</portlet-name>
<display-name>mai demo</display-name>
<portlet-class>com.test.maidemo</portlet-class>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>VIEW</portlet-mode>
<portlet-mode>EDIT</portlet-mode>
<portlet-mode>HELP</portlet-mode>
</supports>
Nguyễn Quỳnh Mai H09cn11 45
Báo cáo thực tập tốt nghiệp
<resource-bundle>com.test.messages</resource-bundle>
<portlet-info>
<title>mai demo</title>
<short-title>mai demo</short-title>
</portlet-info>
</portlet>
</portlet-app>
Maidemo.java
package com.test;
import javax.portlet.GenericPortlet;
import javax.portlet.ActionRequest;
import javax.portlet.RenderRequest;
import javax.portlet.ActionResponse;
import javax.portlet.RenderResponse;
import javax.portlet.PortletException;
import java.io.IOException;
import javax.portlet.PortletRequestDispatcher;
/**
* maidemo Portlet Class
*/
public class maidemo extends GenericPortlet {
public void processAction(ActionRequest request, ActionResponse response)
throws PortletException, IOException {
}
public void doView(RenderRequest request, RenderResponse response) throws
PortletException, IOException {
response.setContentType("text/html");
PortletRequestDispatcher dispatcher =
Nguyễn Quỳnh Mai H09cn11 46
Báo cáo thực tập tốt nghiệp
getPortletContext().getRequestDispatcher("/WEB-
INF/jsp/maidemo_view.jsp");
dispatcher.include(request, response);
}
public void doEdit(RenderRequest request, RenderResponse response) throws
PortletException, IOException {
response.setContentType("text/html");
PortletRequestDispatcher dispatcher =
getPortletContext().getRequestDispatcher("/WEB-
INF/jsp/maidemo_edit.jsp");
dispatcher.include(request, response);
}
public void doHelp(RenderRequest request, RenderResponse response) throws
PortletException, IOException {
response.setContentType("text/html");
PortletRequestDispatcher dispatcher =
getPortletContext().getRequestDispatcher("/WEB-
INF/jsp/maidemo_help.jsp");
dispatcher.include(request, response);
}
}
Nguyễn Quỳnh Mai H09cn11 47
Báo cáo thực tập tốt nghiệp
Nguyễn Quỳnh Mai H09cn11 48
Báo cáo thực tập tốt nghiệp
3. Tích hợp portlet vào hệ thống
Vào http://localhost:8080 đăng nhập với id : [email protected]; pass : test
Sau đó vào add > more > intall more applications
Chọn upload file > browse đến D:\NetBeansProjects\mai demo\dist chọn mai_demo.war
Nguyễn Quỳnh Mai H09cn11 49
Báo cáo thực tập tốt nghiệp
Chọn add > more > users_portlets > mai_demo
Nguyễn Quỳnh Mai H09cn11 50
Báo cáo thực tập tốt nghiệp
Các từ viết tắt
J2EE : The Java 2 Platform, Enterprise Edition
CMS : A content management system
SSE :Simple Sharing Extension for ATOM and RSS
RSS : Really Simple Syndication
SSO : Single Sign On
LDAP : Lightweight Directory Access Protocol
Tài liệu tham khảo
www.blog.kythuatlaptrinh.org
http://lyphuong10.wordpress.com
www.liferay.com
Nguyễn Quỳnh Mai H09cn11 51