KHO TRI THỨC KHO TRI THỨC

So sánh các Java Open Source Portals
Ngày đăng 03/04/2017 | 11:07

Có một sự khó khăn khi so sánh các Portal vì mỗi Portal trong số chúng dựa trên những yêu cầu khác nhau và các công nghệ khác nhau. Việc so sánh portal dựa trên những tiêu chí đánh giá khác nhau. Những tiêu chí này dựa trên lõi và những yêu cầu lựa chọn từ Portal:

1. Các tiêu chí đánh giá

Có một sự khó khăn khi so sánh các Portal vì mỗi Portal trong số chúng dựa trên những yêu cầu khác nhau và các công nghệ khác nhau. Việc so sánh portal dựa trên những tiêu chí đánh giá khác nhau. Những tiêu chí này dựa trên lõi và những yêu cầu lựa chọn từ Portal:

JSR-168 compliant (Tuân theo JSR-168):

JSR-168 là yêu cầu khá quan trọng cho việc phát triển portal từ những developer tự do cho đến những nhà cung cấp Portal API cụ thể.

Ease to installation (Tính dễ dàng cài đặt)

Các portal có ý nghĩa là một presentation layer cho business logic sẵn có và không nên mang đến sự phức tạp cho giải pháp. Việc đánh giá ở đây dựa trên các yêu cầu để bắt đầu, ví dụ: cấu hình database, framework có chứa web-container hay ko? Hầu hết các portal sử dụng Tomcat container và dễ dàng cài đặt.

Documentation Standard (Tài liệu chuẩn)

Việc phát triển Portal tương tự như phát triển Web Application ví dụ Servlet và JSP, nhưng vẫn còn những công việc phụ thuộc vào Portal Framework. Tài liệu của Portal Framework với các ví dụ được viết sẵn sẽ rất quan trọng. Đây là tiêu chí đánh giá sự hoàn hảo, sự chính xác và chất lượng tài liệu của mỗi Portal Framework bao hàm cả Administrator/User Guides.

Online Support (Hỗ trợ trực tuyến)

Tài liệu không trả lời hết và nhắm vào các câu hỏi của tất cả các lập trình viên, và thỉnh thoảng một lập trình viên có thể cần sự hỗ trợ của các framework developer. Trong tiêu chí này, việc đánh giá dựa trên chất lượng, sự nhanh chóng, sự tương ứng của các hồi đáp của các developer cho các truy vấn. Tiêu chí này cũng bao gồm việc sửa chữa Wiki, tính linh hoạt khi hỗ trợ những đặc điểm mới.

Portal Management (Quản lý Portal)

Việc deploy các portlet trong Portal Framework yêu cầu việc cấu hình những mô tả deploy khác nhau. Một vài trong số đó là Portlet API như portlet.xml và yêu cầu J2EE như web.xml, phân còn lại cụ thể đối với các Portal Framework. Tiêu chí này bao gồm chức năng quản trị, ví dụ: thêm user, gán quyền cho các user, gán đề mục cho các portlet và và chức năng của user để tùy biến các portlet theo các yêu cầu khác nhau, chẳng hạn: layout, skin, thêm hoặc xóa các portlet.

Portlet Resources (Các tài nguyên dịch vụ)

Thông thường, những Portal thường đi kèm với các portlet tiện ích có thể reuse chẳng hạn Mail Portlet, Calendar Portlet và Search Portlet. Trong tiêu chí này, việc đánh giá dựa trên tính hữu dụng và tính reuse của các portlet đi kèm với Portal.

Performance & Scalability

Thiết kế kiến trúc của Portal Framework là điều quyết định khả năng thực thi của nó. Những Portal là những layer bổ sung cho SOA (Service Oriented Architecture) và vì thế có khả năng làm chậm đi khả năng thực thi của các service. Việc cung cấp chức năng portal cơ bản là không đủ trong một môi trường thương mại mà ở đó tốc độ thực thi và tính thương mại là rất quan trọng. Tiêu chí này đánh giá dựa trên giới hạn của thời gian khởi động, thời gian load portlet, thời gian truy cập database...

Security (Bảo mật)

Hầu hết các Portal Framework đi kèm với cơ chế bảo mật default là user login với password. Kỹ thuật authentication & authorization (xác thực và phân quyền) này không đủ trong thương mại hoặc những project khoa học. Trong tiêu chí này, việc đánh giá các khả năng bảo mật bổ sung của Portal Framework chẳng hạn Java Authentication & Authorization Service (JAAS), Java Open Single Sign On (JOSSO) & cấu hình SSL.

Technology Used (Công nghệ sử dụng)

Những Portal Framework khác nhau sử dụng những công nghệ lựa chọn khác nhau không phải là một phần của Portlet API. Tiêu chí này đánh giá các công nghệ phổ biến khác nhau được sử dụng bởi những Portal Framework khác nhau như Struts, JSF, Spring, Hibernate, Tiles, EJB và Web Service.

Portal Features (Các đặc điểm của Portal)

Các Portal Framework không chỉ là những portal/portlet container host các portlet khác nhau. Mà hầu hết các Portal Framework đi kèm với các chức năng bổ sung để phát triển các portal J2EE trong thực tế chẳng hạn Content Management System (CMS), Workflow, các công cụ Administrator Management, các công cụ Framework Monitoring. Tiêu chí này đánh giá các đặc điểm sẵn có cũng như tiêu chuẩn và khả năng sử dụng chúng trong Portal Framework.

Server Dependency (Sự phụ thuộc server)

Portlet API là một mở rộng của servlet API và không cần những đặc điểm cao cấp của J2EE, nhưng trong thực tế hầu hết Web Application là J2EE Application sử dụng EJB cho persistence. Web Service cũng có thể được sử dụng để đóng gói và trao đổi... Vì thế Portal Framework không chỉ giới hạn trong servlet container như Tomcat. Sẽ là hữu dụng hơn nếu như các Portal Framework có thể deploy trên những server khác nhau và trong tiêu chí này việc đánh giá tập trung vào tính tương thích của các Portal Framework với những server thương mại và mã nguồn mở khác nhau.

WSRP standard compliant (Tuân theo chuẩn WSRP)

Portlet API là presentation layer cho Web Application, nhưng không cần thiết client chỉ dựa trên Web; chuyển đổi sang desktop client cũng là một lựa chọn. WSRP specification tạo nên khả năng sử dụng portal/portlet trong những ứng dụng không phải Web chẳng hạn Java Swing. Tiêu chí này đánh giá việc hỗ trợ WSRP trong các framework.

2. Đánh giá các Portal

Rất khó khăn để đánh giá hết tất cả những open source Portalvì có rất nhiều Portal mà các developer lựa chọn tùy theo tính dễ dàng phát triển, sự giàu có của các chức năng, sự tùy biến trong giao diện, và kiến trúc có khả năng gắn nối. Việc đánh giá chỉ nằm trong danh sách các Portal dưới đây:

  • uPortal: theo sự sử dụng rất lớn trong các học viện

  • eXo: theo sự phổ biến

  • Liferay: theo sự phổ biến, giao diện người dùng và chức năng lựa chọn

  • Stringbeans: theo sự dễ dàng sử dụng

uPortal

uPortal là một Portal Framework được sử dụng rộng rãi trong các học viện và nó chủ yếu nhằm vào những yêu cầu của các tổ chức này. uPortal là một Portal Framework rất ổn định và đã được ra đời thậm chí trước cả JSR-168 specification, theo đó uPortal đã áp dụng những kỹ thuật ko theo chuẩn được gọi là channel. uPortal mặc dù đã tuân theo JSR-168 nhưng hầu hết những đặc điểm sẵn có trong uPortal vẫn dựa trên tùy biến và giải pháp đã phát triển với các channel adapter hơn là các portlet nguyên thủy. uPortal hỗ trợ portlet thông qua Pluto Portlet Framework. uPortal cũng là open source Portal Framework hỗ trợ nhiều kiểu portal nhất: từ Java portal đến HTML portal, từ text portal đến XML portal.

uPortal có thể sử dụng Central Authentication Service (CAS) để điều khiển truy cập các ứng dụng xác thực dựa trên “khi nào”, “ai”, “từ đâu”, và “dịch vụ gì”. Kiểu xác thực này rất mạnh mẽ trong môi trường hỗn tạp như các trường đại học/cao đẳng. Rất dễ dàng để cấu hình các group và các permission service là yêu cầu quyết định trong môi trường này với nguồn thông tin cục bộ.

uPortal hỗ trợ các portlet tuân theo JSR-168 thông qua adapter và yêu cầu các file cấu hình chuẩn như portlet.xml và web.xml.

Trước đây, tài liệu liên quan đến uPortal không được quan tâm tốt và không được cập nhật thường xuyên. Các tài liệu về uPortal đặt ở nhiều nơi khác nhau: website uPortal, wiki, email list, issue management system của uPortal (JIRA) và những nguồn khác.

uPortal hỗ trợ đặc tả WSRP và uPortal có thể được sử dụng như một WSRP với WSRP4J implementation reference.

eXo Platform

eXo Platform định nghĩa như một portal và một CMS. Thông thường eXo được sử dụng như một portal tích hợp; eXo cung cấp cho các user khả năng truy cập tùy biến vào hệ thống thông tin của công ty và các tài nguyên. Thông qua môi trường Web, eXo cung cấp business information cho phép chuyển đổi và quản lý data của nó cũng như việc thực thi các xử lý business trái ngược nhau.

eXo là enterprise portal tuân thủ JSR-168 xây dựng từ những module khác nhau. Nó dựa trên JSF, Pico Container, JbossMX và AspectJ. WSRP cũng được hỗ trợ trong eXo. eXo cũng hỗ trợ những công nghệ khác nhau bằng cách implement những cầu nối khác.

eXo Platform đi kèm với hai phiên bản, “express” và “enterprise” edition. Không có nhiều sự khác nhau giữa hai phiên bản này trong giới hạn các chức năng và các đặc điểm mà chỉ là sự khác nhau của các container ví dụ Servlet Container và EJB Container. Express edition được deploy trong servlet engine trong khi đó enterprise edition được deploy trong application server J2EE 1.3 đầy đủ. Cả hai phiên bản này đều được deploy thành công trong Tomcat 5.0 và JBoss 4.1.

Giống như những Portal Framework khác, có nhiều tập hợp các porlet đi kèm với eXo Platform. Các portet liên quan MVC, liên quan Web, liên quan navigation, liên quan user/admin. Các porlet liên quan đến workflow và WSRP cũng được chứa trong tập hợp này.

eXo mang đến một layer (Struts) giữa portal và bất kỳ application Struts nào có sẵn bên trong các portlet, các Struts application này có thể được nhúng vào trong một portlet với một chút thay đổi. Những cầu nối khác, như Cocoon cũng được chứa trong eXo để nhúng vào các Cocoon application có sẵn vào một portlet fragment.

Nhìn chung, eXo Platform là một open source Portal Framework mạnh mẽ với việc hỗ trợ nhiều công nghệ mới. Khả năng thực thi của eXo Platform tốt nhất với thời gian upload portal nhỏ nhất.

Liferay

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. Liferay có một thiết kế kiến trúc rất rõ ràng dựa trên thực tế tốt nhất của J2EE, điều đó cho phép nó được sử dụng với một loạt các container khác nhau, từ những servlet container như Tomcat và Jetty cho tới những server tuân theo J2EE mạnh mẽ như BorlandES, JBoss, JOnAs, JRun, Oracle9iAS, Orion, Pramati, Sun JSAS, WebLogic và WebSphere. Trong trường hợp này, Liferay chỉ là một open source portal container hỗ trợ gần như hầu hết JavaServer open source hay thương mại.

Tính linh hoạt trong thiết kế cho phép bổ sung business logic bât kỳ một công nghệ nào tương ứng và thích hợp như Struts, Tiles, Spring và EJB, có thể được dựa trên Hibernate, Java Messaging Service (JMS), Java Mail và Web Service. Liferay có thể thay đổi Portal Presentation trở thành một Java Application bất kỳ mà không có hoặc rất ít sự thay đổ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ới 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à không cần phải chỉnh sửa bất kỳ file cấu hình nào. Điều này tương tự như Stringbeans Portal.

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. Việc cấu hình Liferay yêu cầu một vài deployment descriptor không chuẩn chẳng hạn Struts hoặc Tiles, điều này có thể làm cho việc phát triển trở nên phức tạp hơn.

Giống như hầu hết các Portal Framework, Liferay sử dụng database mặc định là Hypersonic rất tốt cho mục đích phát triển. 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. Sử dụng những package tiện ích này có thể dễ dàng phát triển portal nhưng khi đó những portal này sẽ giống Liferay và các portlet thì không còn tuân theo JSR-168 nữa.

Stringbeans

Stringbeans Portal được tạo nên là một portlet container tuân theo JSR-168 và một framework cho việc quản trị hữu dụng các portal application. Stringbeans được deploy như một J2EE Web Application trong một container hỗ trợ Servlet 2.3 Specification và JSP 1.2 Specification.

Mặc định, Stringbeans sử dụng Hypersonic database. Tuy nhiên, Stringbeans vẫn làm việc với bất kỳ relational database nào hỗ trợ JDBC 2.0 và đã được kiểm tra trên PostgreSQL database. Stringbeans không hỗ trợ Hibernate, vì thế việc chuyển từ database này sang database khác phải yêu cầu tự cấu hình.

Stringbeans có một tập hợp tài liệu user guide rất tốt có thể tìm thấy online hoặc download để sử dụng. Stringbean được đánh giá là có documentation tốt nhất trong số các open source Portal Framework. Thêm vào đó, hình thức online support của nhóm Stringbeans rất hữu dụng cả về thời gian hồi đáp các bug, các truy vấn, và cả trong việc bổ sung những đặc điểm phụ được yêu cầu. Stringbeans có nhiều đặc điểm thân thiện với user và developer và một trong số đó được liệt kê dưới đây:

- Dễ dàng layout management

- Hỗ trợ các theme cho look & feel

- Xác thực user dựa trên JAAS

- Page layout đầy đủ với menu và column

- Logging với file đơn giản hoặc database đều hỗ trợ tốt

- Điểu khiển truy cập mỗi portlet dựa trên user ID, role và các quan hệ database bất kỳ

- Portal view dựa trên user ID, role và các mối quan hệ

- Các portle có khả năng hiển thị RSS headline, data từ các table, các report, các biểu đồ, XML document thông qua XSL transformation

- Hỗ trợ mobile client (WML 1.1 va XHTML P1.0)

Stringbeans Portal có thể được deploy trong một J2EE server với EJB container. Việc deploy portlet trong Stringbeans Portal rất dễ dàng và thật sự tuân theo JSR-168, và chỉ yêu cầu hai file cấu hình là portlet.xml và web.xml. Hầu hết các Portal Framework khác đi kèm với nhiều file cấu hình làm cho việc phát triển và deploy trở nên phức tạp, ví dụ JBoss Portal Framework yêu cầu từ 6 đến 7 file cấu hình.

Phiên bản hiện tại của Stringbeans đã hỗ trợ WSRP.

3. Kết quả 

Bài lược dịch từ “A Service Oriented Architecture for Portals Using Portlets” Asif Akram, Dharmesh Chohan, Xiao Dong Wang, Xiaobo Yang and Rob Allan CCLRC e-Science Centre, CCLRC Daresbury Laboratory.