Tìm hiểu các giải pháp xây dựng ứng dụng trên nền liferay.

Hiện nay để xây dựng hệ thống portal có thể sử dụng các nền tảng như: DotNetNuke, Sharepoint, Liferay. Trong đó liferay đáp ứng đủ tiêu chuẩn portal, các giải pháp kia không mở hoàn toàn hoặc chưa thực sự đúng chuẩn portal.

Tại sao nên sử dụng liferay:

  1. Chính Phủ có nhiều chính sách khuyến khích phát triển portal trên nền liferay nói riêng và trên phần mềm mã nguồn mở nói chung. Cụ thể là được Bộ TT&TT khuyến khích sử dụng chọn làm giải pháp phát triển portal và đã được một số doanh nghiệp dùng làm công cụ phát triển các phần mềm liên quan chính phủ điện tử.
  2. Đây là hệ thống nguồn mở nên chi phí đầu tư cho hệ thống rất thấp, khả năng làm chủ và khai thác hiệu quả, thích ứng cho các ứng dụng riêng của địa phương, đi đúng hướng của Bộ quy định
  3. Liferay là cấu trúc mở, đáp ứng đủ các tiêu chuẩn của portal nên dễ dàng tích hợp được với một số công nghệ mở khác mang lại hiệu quả cao.
  4. Liferay có cộng đồng tương đối lớn và được xếp hạng đứng thứ 2 sau công nghệ portal của IBM (đây là portal mã nguồn đóng)
  5. Thực tế việc triển khai, ứng dụng liferay tại Việt Nam
  • Áp dụng vào mô hình xây dựng portal: Portal Hà Nội, Portal Phú Thọ (đây là 1 trong 7 sản phẩm nguồn mở của năm 2013 do VietSoftware xây dựng); Portal Đà Nẵng;
  • Áp dụng vào mô hình xây dựng ứng dụng chính phủ điện tử: OEP FlatForm, HCM Egov,..
  • Áp dụng vào mô hình xây dựng khác: trang thủ tục hành chính Phú Yên (thutuchanhchinh.phuyen.gov.vn), ..

Các giải pháp được sử dụng trong việc xây dựng ứng dụng trên nền tảng Liferay:



Mô hình triển khai các giải pháp trên nền tảng liferay

1. Giải pháp phát triển portlet:


Portlet là một web component được dùng để triển khai vào trong một portlet container và tạo ra nội dung động. Có thể xem Portlet như một application (hoặc plugin) để cài đặt (tích hợp) vào liferay. Kết hợp kỹ thuật service builder vào portlet để thao tác với cơ sở dữ liệu.

Kiến trúc portlet: Portlet có ít nhất 3 phần:
  • Phần 1: java source code : WEB-INF/src
  • Phần 2: các file config: WEB-INF/portlet.xml,liferay-portlet.xml,liferay-display.xml, liferay-plugin-package.properties
  • Phần 3: các trang client: .jsp, .css, .js, ….

Portlet là thành phần quan trọng trong các ứng dụng được xây dựng trên nền tảng Liferay.

2. Giải pháp đăng nhập 1 lần (SSO) và quản lý người dùng tập trung:


Để xây dựng các hệ thống lớn (hoặc hệ thống tích hợp) điều quan trọng là phải làm cách nào để có thể tích hợp dữ liệu, để từ đó có thể dùng chung giữa các hệ thống khác nhau. Do đó vấn đề đặt ra là:

  • Tích hợp tài khoản của người sử dụng (người dùng tập trung LDAP).
  • Chỉ đăng nhập 1 lần là có thể dễ dàng truy cập vào các hệ thống tích hợp khác (SSO)
 
Các công nghệ mở cho giải pháp này:
  • Đăng nhập 1 lần SSO: CAS Server (apereo.org/cas)
  • Người dùng tập trung: Apache Directory (directory.apache.org/studio/)

3. Giải pháp tích hợp kho chứa văn bản, tài liệu


Sử dụng phần mềm quản trị nội dung Alfresco (kho quản lý nội dung tương tác CMIS) làm kho chứa văn bản, hồ sơ, tài liệu cho lõi liferay và các ứng dụng tích hợp (sourceforge.net/projects/alfresco).


Ngoài ra có thể dùng các kho dữ liệu khác như: kho lưu trữ filesystem and advanced filesystem, kho JCR, kho S3 (kho lưu trữ nền tảng đám mây tên gọi là Amazon Simple Storage Service)….


4. Giải pháp thiết lập tiến trình công việc (workflow)

Luồng công việc (workflow) là quá trình thiết lập tự động hóa một phần hoặc toàn bộ công việc. Các quá trình tham gia workflow đều phải tuân theo một tập hợp quy tắc nhất định.

*Ví dụ:

a/ workflow cho quản trị bản tin:

Soạn tin -> Chờ duyệt -> Duyệt tin -> Xuất bản


b/ workflow cho nghiệp vụ xử lý văn bản dự thảo (trong ứng dụng văn phòng điện tử)

Tạo văn bản dự thảo -> Chuyển xử lý -> Phê duyệt -> Hoàn thành


Một số phần mềm mở để quản lý và triển khai workflow: Kaleo, jBPM, Activiti, Aperte.



Thực nghiệm dùng JBPM tích hợp làm Workflow

5. Giải pháp phân tích, khai phá dữ liệu

Pentaho (http://www.pentaho.com/) là phần mềm mã nguồn mở được sáng lập vào năm 2004 bởi Pioneer. Tích hợp pentaho vào nền tảng Liferay để giúp xử lý việc kết xuất report cho các ứng dụng tích hợp khác. Ngoài ra pentaho còn có nhiều tính năng khác.

6. Giải pháp cân bằng tải (Cluster)


Cân bằng tải là một phương pháp phân phối khối lượng tải trên các máy chủ chạy lõi liferay (hoặc các ứng dụng mở tích hợp vào liferay) để có thể sử dụng tối ưu các nguồn lực, tối đa hóa thông lượng, giảm thời gian đáp ứng và tránh tình trạng quá tải trên máy chủ.


Server Apache1 và server Apache 2 đóng vai trò là load balancing cho 2 server Tomcat 1 và Tomcat 2

Các lợi ích khi sử dụng phương pháp cân bằng tải:
  • Tăng khả năng đáp ứng, tránh tình trạng quá tải trên máy chủ, đảm bảo tính linh hoạt và mở rộng cho hệ thống.
  • Tăng độ tin cậy và khả năng dự phòng cho hệ thống:Sử dụng cân bằng tải giúp tăng tính HA (High Availability) cho hệ thống, đồng thời đảm bảo cho người dùng không bị gián đoạn dịch vụ khi xảy ra lỗi sự cố lỗi tại một điểm cung cấp dịch vụ.
  • Tăng tính bảo mật cho hệ thống:Thông thường khi người dùng gửi yêu cầu dịch vụ đến hệ thống, yêu cầu đó sẽ được xử lý trên bộ cân bằng tải, sau đó thành phần cân bằng tải mới chuyển tiếp các yêu cầu cho các máy chủ bên trong. Quá trình trả lời cho khách hàng cũng thông qua thành phần cân bằng tải, vì vậy mà người dùng không thể biết được chính xác các máy chủ bên trong cũng như phương pháp phân tải được sử dụng. Bằng cách này có thể ngăn chặn người dùng giao tiếp trực tiếp với các máy chủ, ẩn các thông tin và cấu trúc mạng nội bộ, ngăn ngừa các cuộc tấn công trên mạng hoặc các dịch vụ không liên quan đang hoạt động trên các cổng khác.


Tác giả: Bùi Thành Nhân




No comments:

Post a Comment