Introduce Liferay Portal
1. Tổng quan Liferay Portal Liferay Portal là một Portal mã nguồn mở dựa theo chuẩn JSR 168 và JSR 286. Việc phát triển Liferay có thể được thực hiện từ Plugin SDK nó là Standard Development Kit cho Liferay Portal. Liferay Portal có sẵn rất nhiều các thành phần ngoài ra nếu bạn muốn thêm các ...
1. Tổng quan Liferay Portal
Liferay Portal là một Portal mã nguồn mở dựa theo chuẩn JSR 168 và JSR 286. Việc phát triển Liferay có thể được thực hiện từ Plugin SDK nó là Standard Development Kit cho Liferay Portal. Liferay Portal có sẵn rất nhiều các thành phần ngoài ra nếu bạn muốn thêm các thành phần khác trên Liferay Portal bạn cần phải phát triển các Plugin. Để phát triển các Plugin liferay bạn cần sử dụng Standard Development Kit được gọi Plugin SDK.
Liferay Portal được phân loại thành các thành phần sau:
- Portal Kernel: Hay còn gọi là phần lỗi của Liferay. Portal Kernel bao gồm các class và interface. Nó là các thành phần cốt lỗi và có sẵn ở bên ngoài của portal. Từ đây bạn có thể thêm hoặc phát triển những thành phần mới cho liferay portal. Portal Kernel được kế thừa các chức nằng từ JSR 168 và JSR 286.
- Portal Service: Được sử dụng để tương tác với cơ sở dữ liệu của liferay thông qua Service Layer.
- Portal Implementation: là một Implementation class được tạo ra từ Portal Kernel chỉ định để liferay portal sử dụng. Đây là thành phần thiết kế cho Liferay Portal được xây dựng trong các chức năng. Tất cả các thành phần này được đóng gói trong file portal-impl.jar
Toàn bộ các class và interface được đóng gói thành file portal-kernal.jar trong các phiên bản trước của liferay nhưng ở các phiên bản hiện tại thì được đóng gói trong file portal-service.jar
2. Liferay Portal
Liferay thì implement trên chính framework của nó và các thành phần của nó trong Portal Implementation layer. Còn database services được đóng gói như portal service layer. Nếu như kết hợp hai thành phần trên nó sẽ trở thành Liferay Portal và Portal Kernel chung.
Portal Kernel và Portal services đã được Liferay đưa ra bên ngoài. Nó thì được đóng gói thành file portal-service.jar. Bạn có thể thể dễ dàng tiếp cần và dễ dàng thực hiện các thao tác như thêm xóa sữa các thành phần.Việc này giúp ứng dụng khác có thể tiếp cận với Liferay portal. Tất cả những file jar này là những file luôn có sẵn trong liferay server.
Trong tomcat server các file jar này được lưu trong thư mục tomcat/lib/ext. Nếu bất kì file jar nào có trong thư mục này thì bất kì liferay plugin đều có thể sử các class và interface trong tất cả các file jar này.
Sau đây là những file jar mà Liferay hỗ trợ
3. Liferay Plugin:
Nó là nơi mà bạn đặt các phần mền hoặc các class và nó là chuẩn được Liferay định ra. Một Plug-in có thể là một thành phần mà bạn có thể thay đổi hoặc chỉnh sửa các hành vi của liferray portal hoặc có thể thêm các hành vi mới đến portal.
Liferay thì trình bày toàn bộ web application của mình trong file Root.war. Việc này hoàn toàn được phát triển bởi liferay. Bạn có thể chọn gói phù hợp với bạn và lấy nó về từ trang website của Liferay
Bạn có thể thấy được nội dung trong file root.war trên server.
4. Các thành phần trong Plugin SDK
4.1. Plugin Porlet:
Là một thành phần độc lập.
Có thể thêm hành vi mới hoặc chức năng ới cho liferay portal.
Là một thành phần rất linh hoạt. Bạn có thểm thêm sửa hoặc xóa một cách dễ dàng mà không làm ảnh hưởng đến portal hoặc server. Bạn có thể phát triển portlet mà nó có thể sử dụng các bảng dữ liệu của chính nó hay các bảng đã tồn tại trước đó. Portlet cũng có thể kết nỗi đến một cơ sở dữ liệu khác hoặc một cở sở dữ liệu của liferay đã tồn tại trước đó.
Có thể sử dụng được Liferay kernel và các dịch cụ của Liferay
Có thể deploy trực tiếp các portlet mà không cần phải stop server.
Bạn có nhiều loại portlet khác nhau như Liferay MVC portlet, Generic Portlets, Struts Portlet, JSP Portlet và Spring Portlet.
Khi sử dụng Liferay MVC portlet nó rất dễ dàng và đơn giản. Vì mặc đinh nó sử dụng chính framework của Liferay được gọi là Liferay MVC framework. Cũng chính vì điều này mà bạn sẽ nhận được sự hỗ trợ từ Liferay.
Portlet có các ưu điểm sau:
– Khi deploy không cần stop server
– Thay đổi các dịch vụ của Portal đã tồn tại trước đó
– Dễ dàng nâng cấp
– Thay đổi các hành vi của Portal
Khuyết điểm
– Không thể thay đổi các action class hoặc các main core class của Liferay
4.2. Hook:
Đây là một plug-in đặc biệt với mục đích là giúp cho bạn có thể thay đổi hoặc chỉnh sửa các hành vi đã tồn tại của liferay portal. Bạn có thể chỉnh một số mặt như file properties, event, jsp và portal service.
Hook có một số ưu điểm như sau:
– Có thể thay đổi các hành vi đã tồn tại của portalC
– Có thể deploy các thành phần lên server mà không cần stop server
– Portal service bạn cũng có thể thay đổi
– Rất dễ dàng để chuyển khi bạn nâng cấp portal từ một phiên bảng đến một phiên bảng khác
Khuyết điểm
– không thể không thể chỉnh sửa các class action hoặc các lớp trong lỗi chính của liferay portal
4.3. Ext :
Plug-in này có được cấp nhiều khả năng có thể thay đổi bất kì thứ gì đã tồn tại trong liferay portal. Bạn có thể thay đổi portal implementation thông qua ext do đó bạn cũng sẽ thay đổi các hành vi trong portal.
Bạn cũng có thể tạo chức năng mới từ ext. Nhưng nó đươc gắn kết rất chặt chẽ thành phần với liferay portal. Điều này cũng đồng nghĩa nó thì không dễ dàng khi bạn thêm hoặc xóa và bạn phải stop server khi thực hiện các thao tác này.
Ưu điểm:
– Có thể thay đổi tất cả các thành phần trong liferay portal
Nhược điểm:
– Băt buộc phải stop server khi deploy
– Găn kết chặt chẽ với liferay core portal
– Rất khó khan khi nâng cấp từ một phiên bảng lên phiên bảng khác
4.4. Theme:
Bạn có thể thay đổi css hay javascript của portal khi sử dụng plug-in này.
Liferay portal thì sử dụng velocity template khi portal trả về một web page thì velocity fille có khả năng chứa các nội dung động như các trang jsp
Từ theme bạn có thể thêm mới look and feel đến liferay portal. Ngoài ra bạn có thể thêm các css mới hoặc các velocity template mới.
Đối với plug-in này khi bạn deploy không cần stop server nhưng đối với một số trường hợp bắt buộc bạn phải stop server
4.5. Layout:
Đây là plug-in quyết định rằng trang của bạn sẽ được trình bày như thế nào. Nó có thể chia trang thành nhiều phần hoặc một phần duy nhất. Đôi với plugin này có thể deploy mà không cần stop server