Portal, Liferay,
Trang 1BÁO CÁO BÀI TẬP LỚN
Môn: Công nghệ Portal
Đề tài: Xây dựng cổng thông tin phân công lịch giảng dạy cho giáo viên
trường Đại học Công nghiệp Hà Nội.
Nhóm 1: Bùi Thị Kim Anh
Liễu Hải Đăng
Vũ Hoàng Anh Lớp : KTPM CLC 2 – K6
GV hướng dẫn : Th.s Hoàng Quang Huy
Hà Nội, Tháng 12 năm 2014
Trang 2Mục lục
Lời cảm ơn
Em xin gửi đến thầy Hoàng Quang Huy lời cảm ơn sâu sắc vì thầy là một người thầy rất tâm huyết đã quan tâm và truyền đạt vốn kiến thức quý báu cho chúng em trong suốt thời gian học tập vừa qua Và đặc biệ, trong học kỳ này, thầy đã chúng em được tiếp cận với một công nghệ mới – Công nghệ portal Đây như là bước đi đầu của chúng em vào việc triển khai các ứng dụng mang tính thực tiễn được phát triền rộng rãi trong các năm gần đây Cùng với việc học tập các kiến thức trên lớp và tìm hiểu để làm bài tập lớn môn học này đã giúp chúng em có một cái nhìn tổng quát về cổng thông tin điện tử Chúng em
đã hiểu được nguyên lý cũng cách thức hoạt động của các loại cổng thông tin điện tử đang được đưa vào sử dụng hiện nay Đặc biệt qua đó đã bước đầu biết tùy chỉnh và mở rộng cổng thông tin do Liferay inc cung cấp hiện nay
Chúng em xin chân thành cảm ơn thầy!
Trang 3Chương 1 : Về Liferay Portal
1.1 Tổng quan về Liferay
Liferay Portal là giải pháp Cổng điện tử được thiết kế phù hợp với các mô hình ứng dụng trong các cơ quan, tổ chức và doanh nghiệp có nhu cầu phát triển hệ thống thông tin trên môi trường web nhằm thực hiện các giao dịch trực tuyến và sử dụng Intranet/Internet như một công cụ thiết yếu trong các hoạt động, cung cấp thông tin, giao tiếp, quản lý và điều hành, trao đổi và cộng tác
• Là công cụ cho phép các cơ quan, tổ chức tự định nghĩa và quản trị “Cổng thông tin/giao tiếp điện tử” của riêng mình, tự quản nội dung thông tin và các dịch vụ trên mạng Intranet/Internet
• Cho phép vận hành một quy trình xuất bản thông tin và các ứng dụng phần mềm trên quan điểm tích hợp chúng vào trong một giao diện website duy nhất
Liferay Portal là sản phẩm đứng đầu trong danh sách các sản phẩm portal mã nguồn
mở trên thế giới hiện nay do tạp chí Inforworld.com và tổ chức Gartner đánh giá trong
những năm vừa qua Liferay được phát triển từ năm 2000, với những bước tiến nhanh và bền vững, có nền tảng kiến trúc (Framework) ổn định, công nghệ tiên tiến, hỗ trợ các chuẩn công nghiệp phổ biến trên thế giới Về tính năng và công nghệ, Liferay Portal có thể sánh ngang với các sản phẩm thương mại hiện nay, và đặc biệt Liferay có cộng đồng phát triển ngày càng lớn mạnh, và có sự tham gia hậu thuẫn của Sun Microsystems
Liferay Portal được phát triển trên các công nghệ tiên tiến, các công cụ và ngôn ngữ lập trình hiện đại, phần dưới đây tóm lược các công nghệ, ngôn ngữ lập trình và môi trường phát triển Liferay Portal trên nền kiến trúc J2EE (Java 2 platform, Enterprise Edition):Liferay Portal sử dụng công nghệ mới nhất của Java, J2EE, tích hợp kiến trúc
Trang 4rãi các chuẩn công nghiệp và chuẩn mở (SOAP, LDAP, XML/XSL, SSL, JSR 170, JSR168, WSRP, Webservices, …) Tuân theo các kiến trúc trong đặc tả J2EE Liferay Portal trở thành một hệ thống mở và mềm dẻo, có khả năng tích hợp với các hệ thống hạ tầng và các ứng dụng, các dịch vụ và các nguồn dữ liệu khác nhau Theo định hướng kiến trúc đó, Liferay Portal cung cấp một tập các giao diện để tích hợp với các hệ thống và ứng dụng bên ngoài, đảm bảo tính độc lập trong các hoạt động của phần nhân hệ thống.Các dịch vụ và ứng dụng của Liferay Portal được phát triển một cách độc lập dưới dạng những kênh thông tin riêng của hệ thống (portlets) và tuân thủ chặt chẽ chuẩn phát triển ứng dụng trên portal JSR 168 và JSR 286 Với thiết kế như vậy, mọi nguồn thông tin
và ứng dụng có thể được tích hợp một cách thống nhất vào hệ thống, và toàn bộ hệ thống
có thể dễ dàng được mở rộng ra theo mọi hướng chức năng Ngôn ngữ Java là một ngôn ngữ cho phép xây dựng các phần mềm chỉ cần viết một lần và có thể chạy ở mọi nơi, tức
là các ứng dụng được viết bằng Java chạy được trên nhiều nền hệ thống khác nhau Windows, Linux, Unix,… Do đó Liferay Portal cũng thừa hưởng được các tính năng ưu việt đó Liferay Portal có thể chạy với nhiều web server và kết nối đến nhiều hệ cơ sở dữ liệu khác nhau như Oracle, SQL Server, My SQL, DB2,… nhờ vào một lớp (một thành phần) chuyên đảm nhận kết nối cơ sở dữ liệu để đảm bảo các lớp phía trên của Liferay Portal hoạt động độc lập không phụ thuộc vào hệ quản trị cơ sở dữ liệu cụ thể nào
Liferay Portal được thiết kế trên nền tảng kiến trúc và công nghệ tiên tiên, hoạt động tương tích với hầu hết các hệ điều hành, hệ cơ sở dữ liệu và các web application server, Liferay Portal đảm bảo có thể vận hành độc lập trên các hệ điều hành khác nhau và tương thích với nhiều hệ quản trị cơ sở dữ liệu khác nhau, cung cấp một giải pháp phần mềm khung với độ ổn định và khả năng mở rộng cao, luôn sẵn sàng cho việc nâng cấp, phát triển và tích hợp các ứng dụng, dịch vụ trong tương lai mà không mất công chỉnh sửa hay xây dựng lại hệ thống trong tương lai Có thể thấy rằng, Liferay là giải pháp portal ưu
Trang 5Đáp ứng "Tiêu chuẩn Việt Nam":
• Liferay Portal đáp ứng đầy đủ các tiêu chuẩn về tính năng và kỹ thuật nêu trong Công văn số 1654/BTTTT-ƯDCNTT, ban hành ngày 27/05/2008 của Bộ Thông tin và Truyền thông
• Đáp ứng đầy đủ các tiêu chuẩn bắt buộc theo Quyết định số BTTTT ban hành ngày 09/04/2008 của Bộ Thông tin và truyền thông về Danh mục tiêu chuẩn về ứng dụng Công nghệ thông tin trong các cơ quan nhà nước, bao gồm các chuẩn về kết nối như HTTP, FTP, LDAP, DNS, POP3, TCP/IP, ; các chuẩn về tích hợp dữ liệu như: XML, XSL, RDF, UTF-8,…; và nhiều tiêu chuẩn khác
20/2008/QĐ-1.2 Các đặc tính của Liferay:
• Web Platform:
Một cổng thông tin thường được định nghĩa như là một nền tảng phần mềm cho việc xây dựng các trang web và ứng dụng web Cổng thông tin hiện đại đã bổ sung thêm nhiều tính năng mà làm cho chúng ta có sự lựa chọn tốt nhất cho một mảng rộng các ứng dụng web Một số ứng dụng phổ biến cho một cổng thông tin bao gồm:
Trang 6• Xây dựng Gadgets, Portlets, Pages, Themes, Navigation và Websites:
Nền tảng cổng thông tin làm cho người sử dụng dễ dàng để xây dựng các trang web
và các websites bằng cách lắp ráp các portlet hoặc các tiện ích trên một trang portal.Cổng thông tin kết hợp một chủ đề (header / footer và cái nhìn và cảm nhận chung ), một tập hợp các trang, điều hướng (menu bar, vv), và một tập hợp các portlet và tiện ích Người quản trị có thể xây dựng các trang mà không cần mã hóa bằng cách sử dụng lại các portlet và tiện ích hiện có
Trang 8• Trang ẩn danh và trang được xác nhận:
Cổng thông tin làm cho nó dễ dàng để xây dựng các website mà hiển thị nội dung khác nhau tùy thuộc vào việc người đó đang có hay không đăng nhập
Ví dụ, một website ngân hàng có một tập hợp các trang mô tả các dịch vụ của nó, các cung cấp đặc biệt, và thông tin liên lạc có thể truy cập vào tất cả; Tuy nhiên, sau khi khách hàng đăng nhập , nội dung bổ sung có thể có sẵn như thông tin tài khoản, thanh toán hóa đơn, các khoản vay, vv
• Role-Based Content Delivery (cung cấp nội dung dựa trên vai trò):
Cổng thông tin bổ sung đơn giản hóa sự phát triển của các website nó hiển thị dữ liệu khác nhau tùy thuộc vào vai trò của người sử dụng Ví dụ, một trang web ngân hàng có trang ẩn danh và xác thực (logged-in) , nhưng ngoài ra cũng có thể chỉ có các trang khác
Trang 9dịch vụ và các trang cơ bản , trong khi khách hàng doanh nghiệp có thể có các trang bổ sung được xác định.
• Community Pages(Trang cộng đồng)
Ngoài ra, cổng thông tin cho phép người dùng_cuối(end_user) định nghĩa các trang,
và thêm nội dung cho trang web của mình bằng cách sử dụng các portlet được xác định trước hoặc các tiện ích Họ cũng có thể xác định những người có thể truy cập vào các trang của họ Sau đó các thành viên trong nhóm có thể cộng tác với nhau trong trang cộng đồng của họ
Trang 10• Multiple languages ,multiple platforms(Đa ngôn ngữ, đa nền tảng)
Một khi nó được phát triển, một website có thể cần phải được làm sẵn bằng nhiều ngôn ngữ và từ nhiều nền tảng (ví dụ, điện thoại thông minh, máy tính bảng) Các cổng thông tin cung cấp một phương pháp để đơn giản hóa việc phát triển và quản lý các trang cho từng loại người dùng cuối
1.3 Mở rộng và Tùy chỉnh Liferay
Liferay cung cấp nhiều tính năng out-of-the-box , bao gồm cả một hệ thống đầy đủ tính năng quản lý nội dung, một bộ hợp tác xã hội, và một số công cụ Đối với hầu hết cài đặt, các tính năng này là chính xác những gì cần; nhưng đôi khi sẽ muốn mở rộng các tính năng hoặc tùy chỉnh hành vi và sự xuất hiện của họ
Liferay được thiết kế để được tùy chỉnh Nhiều plugin và các loại plugin có thể được kết hợp thành một tập tin WAR duy nhất Chúng ta hãy nhìn vào những kiểu cắm và làm thế nào họ có thể được sử dụng
• Tuỳ chỉnh Look và Feel: Themes
Themes giúp đọc xem trang web của và cảm nhận có thể chỉ định phối hợp màu
Trang 11khung Liferay API, sử dụng một giao diện phù hợp với các yếu tố giao diện người dùng thông thường mà làm cho trang của Điều này làm cho nó dễ dàng để tạo ra các trang web có đáp ứng tốt với độ rộng cửa sổ của máy tính để bàn của người dùng, máy tính bảng, và các thiết bị di động Quan trọng nhất, chủ đề cho tập trung vào việc thiết kế giao diện người dùng của trang web, trong khi rời khỏi chức năng của nó cho các portlet.
• Thêm một layout mới tự định nghĩa:
Bố trí này là tương tự như chủ đề, ngoại trừ họ chỉ định sự sắp xếp của các portlet trên một trang hơn là cái nhìn của họ và cảm nhận có thể tạo bố trí mẫu để tùy chỉnh sắp xếp các portlet chỉ là cách thích chúng Và thậm chí có thể nhúng các portlet thường được sử dụng Cũng giống như chủ đề, bố cục mẫu cũng được viết trong Velocity và là hot-triển khai
• Tùy biến hoặc Mở rộng Out-of-Box Chức năng: Hook Plugins
Plugins Hook là cách tùy chỉnh các chức năng cốt lõi của Liferay tại nhiều điểm
mở rộng được xác định trước Plugins móc được sử dụng để thay đổi các thuộc cổng thông tin hoặc để thực hiện các hành động tùy chỉnh khởi động, tắt máy, đăng nhập, đăng xuất, tạo session, và phá hủy session Sử dụng bao phủ dịch vụ, một plugin móc có thể thay thế bất kỳ dịch vụ Liferay lõi với một tùy chỉnh thực hiện Plugins Hook cũng có thể thay thế các mẫu JSP được sử dụng bởi bất kỳ của các portlet mặc định Hay nhất của tất
cả, móc được plugins nóng triển khai giống như các portlet
• Nâng cao Customization: Ext Plugins
Plugins Ext cung cấp mức độ lớn nhất của tính linh hoạt trong việc thay đổi cốt lõi Liferay, cho phép thay thế về cơ bản bất kỳ lớp học với một tùy chỉnh thực hiện Tuy nhiên, nó là không cao mà một plugin Ext viết cho một phiên bản của Liferay sẽ tiếp tục làm việc trong các phiên bản tiếp theo mà không sửa đổi Vì lý do này, Ext plugins chỉ được khuyên dùng cho các trường hợp trong đó một tác cao cấp là thực sự cần thiết, và
Trang 12của không ảnh hưởng tiêu cực đến các chức năng sẵn có của hệ thống Mặc dù Ext plugins được triển khai như plugins, máy chủ phải được khởi động lại cho các tùy chỉnh của họ để có hiệu lực.
drop database if exists lportal;
create database lportal character set utf8;
grant all on lportal.* to 'lportal'@'localhost' identified by
'lportal' with grant option;
grant all on lportal.* to 'lportal'@'localhost.localdomain' identified
by 'lportal' with grant option;
Trang 13• Download Tomcat 7.0.
• Download Tomcat Plugin ở đường link http://www.eclipsetotale.com
1.4.2 Cấu hình Eclipse
a Tạo thư mục D:\Liferay-Portal-6.2
b Giải nén eclipse vào thư mục D:\Liferay-Portal-6.2\eclipse
c Giải nén tomcat 6.0 vào thư mục D:\Liferay-Portal-6.2\apache-tomcat-7.0.20
d Giải nén Tomcat Plugins và copy thư mục com.sysdeo.eclipse.tomcat_3.2.1 vàothư mục D:\Liferay-Portal-6.2\eclipse\dropins
e Khởi động Eclipse Chọn workspace cho nó là: D:\Liferay-Portal-6.2\workspace
f Cấu hình Eclipse để nó nhận jdk:
- Vào menu Windows>Preferences, click vào Java>Install JREs
- Nhấn nút Add, chọn Standard VM rồi nhấn Next Browse đến thư mục JDK như hình vẽ
Trang 14Nhấn Finish, rồi Ok.
g Cấu hình Eclipse để nó nhận Tomcat
- Vào menu Windows>Preferences, click vào Tomcat
- Chọn Tomcat Version 6 và Browse đến Tomcat Home như hình vẽ
Trang 15- Click Tomcat>JVM Settings Chọn JRE là jdk1.5.0 và Thêm vào Ô đầu tiên
dòng sau: -Xms128m -Xmx1024m -XX:MaxPermSize=128m Hình vẽ:
Trang 16- Nhấn nút Ok.
Bước 2: Check out Liferay Source Code:
a Để lấy được Liferay Source Code trước hết phải lấy được SVN như sau:
- Bước 1: Vào menu Help> Install New Software Nhấn nút Add
- Bước 2: Điền vào Dialog Box cập Name/Location như sau:
Subclipse/http://subclipse.tigris.org/update_1.6.x Nhấn Ok Hình vẽ
Trang 17- Bước 3: Sau khi ấn Ok, chọn cả 3 lựa chọn ở đươi Ô Name rồi ấn Next và tiếp Tục làm theo hướng dẫn của Eclipse Lưu ý việc down Subclipse thỉnh
thoảng báo lỗi Nếu có báo lỗi phải làm lại từ bước 2
- Bước 4: Restart lại Eclipse
b Lấy Source Code của Liferay về:
-B1: Vào Windows>Open Perspective>Other>SVN Repository Exploring
Trang 18-B2: Trên Khung nhìn SVN Repositories nhấn chuột phải, chọn New>Repository Location và điên vào dòng sau:
svn://svn.liferay.com/repos/public Sau đó nhấn Finish.
- B3: Mở nút svn://svn.liferay.com/repos/public>portal>branches
Nhấn chuột phải vào 5.2.x rồi bấm Checkout như hình vẽ
Trang 19•
Trang 20- B4: Nhấn Finish để download source code về Khá lâu, cỡ độ hơn tiếng và
có thể có lỗi Nếu báo lỗi làm lại từ B2
Bước 3: Build Ext:
a Chọn Java Perspective, mở khung nhìn Navigator thấy được Project portal
b Mở khung nhìn Ant Lôi file build.xml từ thư mục /portal sang khung nhìn Ant như hinh dưới
c Cập nhật Tomcat để nó nhận môi trường Ext
Trang 21- Nhập tên folder trùng với tên thư mục Tomcat cho dễ nhớ:
e Cấu hình Server để nó nhận thư viện các file *.jar
- Chuyển qua khung nhìn Package Explorer
Trang 22- Tạo một file setenv.bat với nội dung sau:
set JAVA_OPTS=%JAVA_OPTS% -Xmx1024m -XX:MaxPermSize=256m -Dfile.encoding=UTF8 -
d Chỉnh sửa các file properties:
Giả sử Username đăng nhập vào máy tính là hunghm Nhìn vào thư mục /portal có
3 file quan trọng release.properties, build.properties, app.server.properties Thay vì chỉnhsử trực tiếp trong 3 file này ta tạo ra 3 file mới: release.hunghm.properties,build.hunghm.properties, app.server.hunghm.properties và ghi các thuộc tính cần thay đổi vào đó rồi copy vào cùng thư mục
- release.hunghm.properties cho biết thư mục ext để ở đâu Ghi vào file 1 dòng sau: lp.ext.dir=D:/Liferay-Portal-5.2/workspace/ext
- build.hunghm.properties cho biết phiên bản của Java Giả sư phiên bản Java cài đặt trên máy là 1.6.2_16 thì chỉ lưu ý phần 1.6 Ghi vào file 2 dòng sau:
• ant.build.javac.source=1.6
• ant.build.javac.target=1.6
- app.server.hunghm.properties: ghi vào file các dòng dưới đây:
Trang 23app.server.tomcat.version=6.0
app.server.tomcat.classes.global.dir=D:/Liferay-Portal-5.2/apache-tomcat-6.0.20/lib
app.server.tomcat.lib.endorsed.dir=D:/Liferay-Portal-5.2/apache-tomcat-6.0.20/lib/ext app.server.tomcat.lib.global.dir=D:/Liferay-Portal-5.2/apache-tomcat-6.0.20/lib/ext
app.server.tomcat.lib.support.dir=D:/Liferay-Portal-5.2/apache-tomcat-6.0.20/lib/ext app.server.tomcat.support.dir=D:/Liferay-Portal-5.2/apache-tomcat-6.0.20/lib/ext
e Build:
- Chuyển qua khung nhìn ant Mở nút portal
- Bấm clean Đợi báo BUILD SUCCESSFULLY
- Bấm start Đợi khoảng 14 phút báo BUILD SUCCESSFULLY
- Bấm build-ext Đợi khoảng 2 phút báo BUILD SUCCESSFULLY
- Đã Build xong môi trường ext
Bước 4: Deploy Ext
a Nhận Project ext:
Sau khi build xong, đã có một project mới trong workspace là ext Để eclipse nhận project mới này làm như sau:
- Chuyển qua khung nhìn Navigator, ấn chuột phải, chọn Import
- Chọn General>Existing Projects into Workspace
Trang 24- Browse root directory đến thư mục D:\Liferay-Portal-5.2\workspace\ext
- Nhấn Finish
b Cấu hình kết nối CSDL
- Giả sử đăng nhập mysql với user/pass là root/root
- Trên khung nhìn Navigator, mở nút ext>ext-impl>src, mở file
portal-ext.properties và thêm vào dòng sau
- Save file đó lại
c Chỉnh sửa các file properties
- copy 2 file app.server.hunghm.properties, build.hunghm.properties từ thư
mục /portal vào thư mục /ext
d Deploy
- Kéo file build.xml từ thư mục /ext sang khung nhìn Ant
Trang 25- Bấm clean Đợi báo BUILD SUCCESSFULLY
- Bấm deploy Đợi báo BUILD SUCCESSFULLY
- Đã deploy xong Bấm vào biểu tượng Start Tomcat để chạy Liferay Portal
1.5 Tìm hiểu công nghệ
Theo Wikipedia "Một ứng dụng web là một ứng dụng mà được truy cập qua mạng như Internet hoặc mạng nội bộ." Một ứng dụng cổng thông tin là một ứng dụng web có thể cùng tồn tại với các ứng dụng khác Các tính năng đòn bẩy của ứng dụng cổng thông tin được cung cấp bởi các nền tảng cổng thông tin để giảm thời gian phát triển và cung cấp kinh nghiệm phù hợp hơn cho người dùng cuối
Là một nhà phát triển muốn chạy các ứng dụng của trên đầu trang của Liferay Portal, có thể muốn biết cách tốt nhất và nhanh nhất để làm điều đó là gì? Liferay hỗ trợ hai khái niệm chính, dựa trên các chuẩn công nghệ kết hợp với các ứng dụng của vào Liferay: Portlets và tiện ích OpenSocial
1.5.1 Portlets
Portlets là những ứng dụng web nhỏ viết bằng Java chạy trong một phần của một trang web Trái tim của bất kỳ thực hiện cổng thông tin là các portlet của nó, bởi vì chúng chứa các chức năng chính Các portlet container chỉ tập hợp các portlet xuất hiện trên mỗi trang
Kể từ khi chúng độc lập hoàn toàn , portlet là cơ chế mở rộng tối thiểu cho việc mở rộng Liferay, và cũng là những lựa chọn phát triển chuyển tiếp tương thích nhất Chúng triển khai như plugins vào thể hiện(instances) của Liferay, dẫn đến thời gian chết Một plugin độc lập có thể chứa nhiều portlet, cho phép chia sẻ chức năng của thành nhiều mảnh nhỏ hơn có thể được sắp xếp tự động trên một trang Portlet có thể được viết bằng
Trang 26framework cụ thể của Liferay: MVC Portlet và hợp kim Portlet Portlet có thể được sử dụng để xây dựng các ứng dụng phức tạp kể từ khi họ có thể tận dụng các bộ đầy đủ các công nghệ và các thư viện cho các nền tảng Java.
1.5.2 OpenSocial Gadgets
Tiện ích OpenSocial thường dành cho các ứng dụng nhỏ, được viết bằng cách sử dụng công nghệ trình duyệt phụ như HTML và JavaScript Cũng giống như các portlet, tiện ích OpenSocial cung cấp một cách tiêu chuẩn để phát triển các ứng dụng cho một môi trường cổng thông tin Từ góc độ công nghệ, một sự khác biệt quan trọng là họ không áp đặt một công nghệ back-end cụ thể, chẳng hạn như Java EE, PHP, Ruby, Python, vv… Một khác biệt nữa là chúng đã được thiết kế đặc biệt để thực hiện các ứng dụng xã hội, trong khi portlet được thiết kế cho bất kỳ loại ứng dụng Bởi vì điều này, OpenSocial tiện ích không chỉ cung cấp một tập hợp các công nghệ để phát triển và chạy các ứng dụng, mà còn là một tập các API cho phép các ứng dụng để có được thông tin từ môi trường xã hội như các thông tin về một profile của người dùng, các hoạt động và bè của họ
Một tiện ích OpenSocial được triển khai trong Liferay là một trong các loại sau đây:
• Tiện ích từ xa:
Được thực hiện trong một máy chủ từ xa nhưng được trình bày trong một trang nhất định nếu nó là một nền tảng ứng dụng Triển khai tiện ích từ xa rất đơn giản, nhưng các cổng thông tin phụ thuộc vào các máy chủ điều khiển từ xa cho các tiện ích để làm việc Triển khai như một công cụ điều khiển từ xa không phải là một lựa chọn khả thi trong một số môi trường Intranet mà không được tiếp cận đầy đủ với Internet
Trang 27Được triển khai tại các máy chủ Liferay một cách tương tự như các portlet Kể từ khi một tiện ích được định nghĩa trong một tập tin XML, tải lên tập tin này là tất cả những gì cần thiết để triển khai các tiện ích.
Một khi đã lưu tiện ích mới của , nó xuất hiện như một ứng dụng mà quản trị viên có thể thêm vào các trang trang web của họ
Liferay cho phép tiếp xúc với các portlet với thế giới outsde như tiện ích OpenSocial Đó là, có thể phát triển một portlet và sau đó để cho bất cứ ai có quyền truy cập vào portlet của thêm nó như là một tiện ích từ xa đến các trang trên các cổng khác hoặc các mạng xã hội
1.5.3 Sử dụng lại các ứng dụng web có sẵn:
Điều gì nếu đã có một ứng dụng hiện có mà chưa được thực hiện như một portlet hoặc OpenSocial ? có nhiều lựa chọn, bao gồm:
• Viết lại các ứng dụng như một portlet
• Tạo các portlet đơn giản mà chúng tương tác với các ứng dụng (có thể sử dụng dịch vụ Web) và cung cấp các chức năng cho người dùng cuối cùng
• Tạo một tiện ích OpenSocial là một wrapper cho các ứng dụng Các tiện ích có thể
sử dụng một IFrame để hiển thị một phần của ứng dụng trong các trang portal
• Tạo một portlet, tích hợp các ứng dụng từ xa hoặc sử dụng một IFrame hoặc một proxy HTTP (ví dụ, sử dụng WebProxy portlet của Liferay) Điều này đòi hỏi phải thực hiện single sign-on giữa các cổng thông tin và các ứng dụng
• Nếu ứng dụng được thực hiện bằng cách sử dụng Struts 1.x, nó có thể được chuyển đổi sang một ứng dụng portlet chỉ với một vài thay đổi
Trang 28• Nếu ứng dụng được thực hiện bằng cách sử dụng JSF, nó có thể được chuyển đổi sang một ứng dụng portlet chỉ với một vài thay đổi.
Liferay luôn cố gắng để cung cấp khả năng tương thích với bất kỳ công nghệ Java nào
mà những người lập trình có thể dùng để phát triển các ứng dụng Nhờ các portlet và thông số kỹ thuật Java EE, mỗi ứng dụng portlet có thể sử dụng thiết lập riêng của thư viện và công nghệ dù chúng được sử dụng bởi Liferay hay không
Một vài Framework thường được sử dụng :
1 Struts 2, Spring MVC, PHP, Ruby, vv…
2 Framework thành phần, chẳng hạn như JavaServer Faces ™ (JSF), Vaadin, và Google Web Toolkit (GWT), đặc biệt tốt cho các ứng dụng máy tính để bàn MVC framework, thường được sử dụng vì tính linh hoạt
3 Framework đơn giản hơn: các ứng dụng Portlet thường đơn giản hơn để thực hiện
so với các ứng dụng web độc lập Khi nghi ngờ, sử dụng khuôn khổ đơn giản (ví
dụ, MVC Portlet Liferay hoặc Alloy Portlet)
Một số framework đề cập ở trên bao gồm các mã JavaScript của riêng họ để cung cấp một sự tương tác mức độ cao Đó là trường hợp với GWT, Vaadin, và triển khai JSF (ví
dụ như ICEfaces hoặc Faces Rich Có thể sử dụng bất kỳ thư viện JavaScript với Liferay, bao gồm jQuery, Dojo, YUI, Sencha (trước đây được biết đến như ExtJS), và SproutCore
Kể từ phiên bản 6, tuy nhiên, Liferay có thư viện riêng của mình gọi là AlloyUI mà là dựa trên YUI 3 AlloyUI có một tập hợp lớn của các thành phần được thiết kế đặc biệt cho các giao diện người dùng hiện đại Portlets lõi Liferay sử dụng AlloyUI có thể sử dụng cho các portlet AlloyUI tùy chỉnh hoặc sử dụng một thư viện JavaScript, miễn là thư viện không xung đột với các thư viện tham chiếu bởi các portlet khác được triển khai
Trang 291.5.4 Service Buidler
Service Builder là một công cụ tạo mã mô hình định hướng xây dựng bởi Liferay cho phép các nhà phát triển để xác định mô hình đối tượng tùy chỉnh được gọi là các thực thể Service Builder tạo ra một lớp dịch vụ thông qua quan hệ đối tượng bản đồ (ORM) công nghệ cung cấp một phân tách rõ ràng giữa mô hình đối tượng của và bảng trong các cơ sở dữ liệu nằm bên dưới Điều này giúp tăng thêm nghiệp vụ logic cần thiết cho ứng dụng Service Builder có một tập tin XML như là đầu vào và tạo ra những mô hình cần thiết, persistence, và các lớp dịch vụ cho ứng dụng của Những lớp này cung cấp một phân tách rõ ràng Service Builder tạo ra hầu hết các mã thông thường cần thiết
để thực hiện các hoạt động tạo, đọc, cập nhật, xóa, và tìm trên cơ sở dữ liệu, cho phép tập trung vào các khía cạnh mức độ cao hơn của thiết kế dịch vụ
Lợi ích của việc sử dụng ServiceBuilder:
• Tích hợp với Liferay
• Tự động tạo ra mô hình, lớp persistence, và tầng dịch vụ
• Tự động tạo ra các dịch vụ địa phương và từ xa
• Tự động tạo ra các cấu hình Hibernate và Spring
• Hỗ trợ cho việc tạo ra các phương pháp tìm kiếm cho các thực thể và các
phương pháp công cụ tìm kiếm mà theo quyền
• Xây dựng hỗ trợ bộ nhớ đệm thực thể
• Hỗ trợ cho các truy vấn SQL tùy chỉnh và truy vấn động
• Lưu trữ thời gian phát triển
Liferay sử dụng Service Builder để tạo ra tất cả các mã cơ sở dữ liệu duy trì nội bộ của mình Trong thực tế, tất cả các dịch vụ Liferay, cả hai địa phương và từ xa, được tạo ra bởi Service Builder Ngoài ra, dịch vụ của các plugins trong Plugins SDK Liferay được tạo ra bởi Service Builder Sử dụng dịch vụ Builder trong Liferay Portal và plugins Liferay chứng tỏ nó là một công cụ mạnh mẽ và đáng tin cậy.
Service Builder là dễ sử dụng và các nhà phát triển có thể tiết kiệm rất nhiều thời