Skip to main content

Liferay-Activiti 企业特性功能介绍(新版Liferay7)

前言

如果你是开发者

你已经是多少次开发一个项目,一次次的用一些框架,一次次的写类似的重复的代码,一次次建表\写类和方法\写HTML\CSS\JAVASCRIPT,一次次测试,一次次的写Bug。。。

如果有一个平台,提供基线的框架,可以是应用程序\网站,支持移动端,不必一次次开发无法重用,一次次造就信息孤岛。

那么试试Liferay。 很多的应用开箱即用,如CMS\博客\企业协作\动态表单\良好的组织架构和权限体系。

先别急着上船,你得接受和适应Liferay的扩展框架体系,比如Portlet,还有应用程序显示模版的机制,这有些代价,但对于真正的JavaEE开发者,并不会困难,另外你还会学到另你获益终身的设计模式思想,OK,想好了就上船吧,这必将是愉快的旅程。

如果你是IT主管

可能选型选择开源不容易,哪怕是Liferay如此成功的产品,实际上Liferay的企业服务费用不算低,要节省成本用社区版,必然要有好的开发服务团队。

这必须非常谨慎,诚然,Liferay还有软肋,这个是其产品定位造成的,比如:

  • BPM进来,如Activiti;
  • 还有中国式的组织架构;
  • 项目数据迁移,比如员工,组织架构数据;
  • 和其他系统的集成;
  • 还有一些中国式的操作习惯改造;
  • 国内的甲方公司很难有这样的开发实力,这需要技术和耐力相结合,虽然只是开发连接器插件,但做好并不容易,开发技能栈必须全面。

言归正传,介绍Liferay的企业特性。

Liferay7架构 :

模块:

权限和认证体系

Liferay支持 权限、组、用户、团队、组织架构 的权限控制体系,详情见上一篇文章

支持的用户认证方式:

  • Liferay自带认证
  • LDAP
  • SSO
  • CAS
  • NTLM
  • OpenId
  • Crowd
  • Open SSO
  • SiteMinder
  • Shibboleth
  • SAML

开发扩展方式

Liferay几乎什么都可以定制。应用程序接口可以重新设计,整个用户界面可以定制为主题,菜单项可以添加或删除...

所有的应用程序及扩展,是建立在liferay自定义分布式部署模块(典型的jar文件),用Java开发人员熟悉的方式开发,编译,定义模板,资源,和一些元数据。

它遵循一套非常强大的标准称为OSGi。多模块可以相互依赖、相互沟通,实时部署,不用重启服务器(热部署)。

模块可以有一个或多个组件。创建一个组件和Java类开发一样简单。

一个组件是一个更大的应用程序的最小的构建块,并且应用程序本身是由许多小的组件组成的,就是以重复使用的堆积木的方式开发系统。

组件由组件容器管理,该容器提供安装和激活。组件提供服务,通过一个强大的依赖管理系统,在运行时自动处理。

您可以编写组件以提供新的服务或以重写现有的服务,容器管理所有一切。Liferay是一个激动人心的平台,使开发人员更高效。

扩展方式介绍:

  • OSGi Modules
  • 建立Liferay Portal Web应用程序最常用的方法是用一个portlet;
  • 利用Liferay的移动SDK,开发移动应用;
  • 开发主题(theme);
  • 开发MVCPortlet

可以使用现有框架,如Struts、Spring。使用Service Builder,很容易创建后台数据库表、对象关系映射。

它还可以生成JSON或SOAP的Web服务,为开发者提供完整的开发元素用于存储和检索数据,用于Web或移动客户端。

工作流

Liferay自身支持的BPM工作流:

  1. Kaleo,集成Liferay表单的内置工作流,极简单,没有图形设计器;

  2. jBPM3, 现在都6.4版了,有点跟不上时代;

另外还有两个外接集成插件:

集成Activiti5.11版:https://github.com/emdev-limited/activiti-liferay ,功能还不够完善,已经3年没有更新;

集成Bonita BPM:http://www.bonitalife.org ,Bonita 也是一款强大的BPM,这个插件还待试用评;

Activiti是完全实现BPMN 2.0规范的工作流引擎,它对比jBPM的优势是轻量级,容易集成,可单机或集群部署。

目前Activiti支持的数据库:

  • DB2
  • H2
  • Oracle
  • MySQL
  • MS SQL
  • PostgreSQL

Activiti的集成开发方式有:

  • Standalone JDBC :通过Portlet方式,加入Activiti的jar包,直接集成;
  • Spring:通过Spring MVC方式集成;
  • JTA:对J2EE异构分布式数据源的集成开发;
  • Web API:通过restful接口进行集成;

所有的开发重点在UI的集成、用户权限的集成、单点登录、流程设计器、控制面板、和Liferay表单的集成,待办已办待阅面板开发,工程较大。

目前Activiti只有用户组、用户上级、用户三种权限概念(用于流程节点分配);

扩展更复杂更集成业务系统的权限机制的方案: synchronize-or-redesign-user-and-role-for-activiti

一些企业扩展

企业社交代理

通过整合OAuth服务作为一个HTTP代理服务器的应用程序,该插件为您的应用程序提供了一个安全的令牌,可以将类似的网站推特,LinkedIn、微信;

图表插件

Chart portlet

一个使用 Liferay 和 Lucene 实现企业门户智能帮助机器人的方法

很有意思

使用 Liferay 和 Lucene 实现企业门户智能帮助机器人

企业门户智能帮助机器人总体架构图

简易敏捷插件

Scrum Portlet

用户反馈插件

Contour Dispatch – The Feedback Portlet

相册插件

Photo Library Portlet

Image rotator Carousel

MongoDB CRUD 简单应用插件

features.

  1. Insert New Record (in Collection/Table).
  2. Update inserted records.
  3. Delete Single/Multiple Record(s).
  4. Sorting (Ascending/Descending)
  5. Searching (AND search / OR search)

Liferay MongoDB CRUD Application

集成导入插件

Webservice Content Import

使用这个Web服务插件,你可以从其他平台导入内容到Liferay中

更多插件

在应用商店:Marketplace

选择Liferay的好处是除了自带的强大功能,和海量商店应用,它还是可以灵活开发扩展的平台。