Liferay-Activiti 功能介绍 (新版Liferay7基本特性)
一句话简介
Liferay是世界领先的开源企业门户(也可作为综合门户),是最强大(没有之一)的JAVA开源门户,在Gartner和Forrester和评价非常高,近几年已经超越了微软门户Sharepoint。
Activiti是著名开源jBPM的分支,创始人Tom Baeyens就是JBoss jBPM的项目架构师,以及jBPM另一位架构师Joram Barrez,一起创建的Alfresco公司开发的BPM工作流平台。
商业模式
Liferay和Activiti都分社区开源版 、企业版2种,内核代码都是一样的,区别在于收费插件和企业服务支持,从社区版到商业版可无缝转换。
为什么要选择Liferay和Activiti
作为IT技术负责人的你是否有以下选型烦恼:
- 选国内闭源产品(比如蓝凌OA),受制于大厂,费用高,周期慢,因产品框架限制不一定能实现较特殊的需求;
- 选的技术太旧(比如东软开发平台),开发出的项目,开发扩展困难,和其他业务系统集成困难,开发人员抵触;
- 选国内假开源产品,技术能力参差不齐,产品包装的很牛,但用起来各种细节问题;
为什么选基于Liferay + Activiti 开发企业门户产品
- Liferay是最优秀的开源企业门户,使用企业数千,使用者数千万,产品稳定性和先进度有保障,功能极具扩展性;
- Liferay移动端界面支持好(H5自适应);
- Liferay自身的BPM较弱,所以需要集成较强的BPM,而Activiti是非常优秀的BPM产品,
- Activiti 使用者众多,功能灵活,上手难度不大,它的前身jBPM在jBoss控制下越来越重,所以不选jBPM;
- Activiti BPM满足国际BPMN2.0规范,选用Activiti BPM在流程迁移方面有规范、风险低;
- 有代码,不会受制于人,更可控;
- 开发风险可控,最核心的2个功能(门户平台和BPM)依托成熟开源,稳定性不用担心;
总而言之就是核心风险可控,我们只需要关注开发连接插件,即可形成产品
我们要基于Liferay + Activiti 做什么
1、账户迁移工具或脚本
如果涉及旧OA或门户迁移,必须开发迁移工具;
2、组织架构迁移工具或脚本
组织架构是非常重要的基础数据;
3、权限组的迁移工具或脚本(非必须)
如果涉及旧OA或门户,权限组最好能批量迁移;
4、Activiti BPM集成Portlet(重点、难度较大)
Liferay自身的BPM较弱,所以需要集成较强Activiti,通过Portlet集成,Portlet其实就是Liferay规范化的servlet 。
5、Activiti BPM集成Liferay权限体系(重点、难度较大)
实现Liferay和Activiti 的权限通讯。
有三个方案:http://www.kafeitu.me/activiti/2012/04/23/synchronize-or-redesign-user-and-role-for-activiti.html
需要慎重选择方案。
6、Activiti-Designer 流程设计器的中国化改造(重点、难度较大)
Activiti 的表单设计器非常强大,但需要改造符合中国企业使用习惯;
Liferay自身的简单BPM估计能实现业务流程需求的简单需求(可能占50%),其余的需要Activiti 实现。
Activiti 中提供了 2 种可视化流程设计器:Web Application 形式的 Activiti Modeler 和 胖客户端形式的流程编辑器Activiti-Designer,必须先慎重选型。

7、开发开放API,方便业务系统调用
这部分可基于Liferay WebAPI扩展包装,难度不大;
Liferay 功能介绍
1、创建站点
管理员可创立多站点。
应对集团多分支的组织架构(按组织分割),或者垂直多用途的门户(按用途分割),比如内外门户、集中知识门户、文档中心等。

配置新站点
可以设置站点的语言、风格、权限等

2、管理页面
创建页面
选择页面的栏式

在页面添加应用
比如添加内置的wiki和最新blog列表应用

配置页面权限
注意:里面的角色(role)是可自行配置的。

创建页面内容:HTML5类型
通过WYSIWYG Web editor,添加文本、图片、视频内容等

创建页面内容:结构化元数据(Metadata )类型
有点动态表单的概念,这个和Sharepoint的List Field很相似。

支持的元数据(Metadata )类型有:
- Boolean: true (checked) or false (unchecked)
- Date: 日期
- Decimal: 数字,支持小数点位数;
- Documents and Media: 文档库类型,文档和媒体;
- Geolocation: 地理位置,用于移动端;具体可见https://dev.liferay.com/discover/portal/-/knowledge_base/7-0/geolocating-assets
- HTML: 使用WYSIWYG editor编辑的内容;
- Image: 图片;
- Integer: 整数;
- Link to Page: 链接;
- Number: 类似于Decimal,可能是big decimal,有待确认;
- Radio: 多选按钮;
- Select: 下拉选择按钮;
- Separator: 分隔栏;
- Text: 当行文本;
- Text Box: 多行文本,类似Java控件textArea;
控制页面发布展示和过期时间
scheduling web-content publication

内容搜索
liferay的内容搜索异常强大,不多赘述。
详见:https://dev.liferay.com/discover/portal/-/knowledge_base/7-0/searching-for-content
3、管理用户、组织、权限
组织管理
新建组织,并设置上级组织
Type :regular organization or a location,如果选location则没有下级组织

添加用户


用户组
用户组是剥离组织架构的独立逻辑分组,一个用户可以分配给多个用户组。
例如,公司的办公室/部门结构既可以通过组织机构进行建模。也能创建用户组,比如:
- 副总
- 办公室经理
- 会计
- JAVA开发人员
- 博客管理员
- 等等...
一个用户组可以创建一群人独立于他们的组织机构,使它更容易分配一个或多个角色,比如一次性分配权限给所有的JAVA开发人员。
向属于用户组的用户提供预定义的公共或私有页面。例如:
- 博客管理员用户组的成员可以创建管理博客
- 会计用户组的成员可以访问财务页面和应用
- ......
下面是创建(博客管理员)用户组的演示页面:

角色
角色是用来定义一个特定功能的权限(根据特定范围)
一个角色基本上只是一个定义了一个功能的权限集合,如留言板管理员。这有点容易和用户组混淆,但实际上角色还有范围的管辖权限控制
可以细化到4种范围类型选择(Regular role、Site role、Organization role、Team)
导航到控制面板,然后单击“角色”,可以让您创建角色、分配权限给他们,将用户分配给角色。
一个角色仅具有一定管辖范围的作用。比如
- Site role:一个“企业知识站点留言板管理员”角色只能在一个特定站点(即”企业知识站点“)内管理留言板内容;
- Team role:一个"CVTalk开发团队"角色只能在一个特定团队站点(即”CVTalk开发“团队)内发布内容;
Regular role、Site role、Organization role、Team四种类型的角色之间的范围差异可以描述如下:
- 规则角色:权限在门户级别定义,并在门户级别应用。
- 站点角色:权限被定义在门户级别,并应用到一个特定的站点。
- 组织角色:权限在门户级别定义,并应用于一个特定的组织。
- 团队:权限被定义在一个特定的站点内,并被分配在特定的团队站点内。

用户验证
支持的用户认证方式:
- Liferay自带认证
- LDAP
- SSO
- CAS
- NTLM
- OpenId
- Crowd
- Open SSO
- SiteMinder
- Shibboleth
- SAML
4、文档管理
发布文件上传

发布元数据(Metadata )数据集
就是通过动态字段建立的数据

分布式集群文档存储
Liferay Portal的文件和媒体文件可以存储在许多不同的服务器或其他媒介方式,
默认情况下,Liferay Portal使用文档库中存储的选择被称为简单的文件存储在文件系统上。
您也可以使用一个完全不同的方法来存储文档和媒体文件:
- CMIS存储(Content Management Interoperability Services 内容管理交互服务):使用一个单独的从Liferay存储文件系统。
- DBstore(数据库):使用数据库存储文件。
- JCRstore(Java内容库):将文件分布式存储到兼容JSR-170规范的第三方厂商文档库。商业的有IBM、EMC、SAP、Macromedia的产品,开源的产品也不少,一线的CMS开源基本都符合JSR-170规范,比如Magnolia、eXo、Apache Jackrabbit、Liferay本身也符合,基于Magnolia存储是最优的方案,这样就把Magnolia作为一个用途专一的分布式存储仓库;
- S3store(亚马逊简单存储):使用亚马逊的云存储解决方案。
- 其他定制方案:这需要您自行实现Liferay开发接口,实现更大的灵活性;
文件同步客户端
有些类似百度云客户端,在授权的情况下,可以把文档库同步到个人电脑硬盘。
详情:https://dev.liferay.com/discover/portal/-/knowledge_base/7-0/using-liferay-sync-on-your-desktop
移动端访问文档库

移动端编辑文件

5、企业协作
博客

论坛

用户心情

Wiki
略
书签
略
企业微博

通知

投票

集成XMPP Web聊天
通过集成jabber方式和openfire通讯

集成Email
Liferay包含一个邮件插件,可以作为web邮件客户端

5、管理应用
Liferay的强大之处在于不仅内置应用繁多,它还提供易于开发的扩展体系,提供即插即用的平台支持,海量应用商店支持。
管理应用

应用商店
应用商店有数千个免费或商业插件

应用的类别:
- OSGi Modules
- Portlets
- Web Plugins
- Templates
- Themes
以上内容为官方文档的微缩版:https://dev.liferay.com/discover/portal
6、企业功能
涉及用户数据列表、表单模板、高级表单定制、工作流。
放在下一篇介绍。
多谢观看!
Liferay-Activiti 功能介绍 (新版Liferay7基本特性)的更多相关文章
- Java 19 新功能介绍
点赞再看,动力无限. 微信搜「程序猿阿朗 」. 本文 Github.com/niumoo/JavaNotes 和 未读代码博客 已经收录,有很多知识点和系列文章. Java 19 在2022 年 9 ...
- 带你走近AngularJS - 基本功能介绍
带你走近AngularJS系列: 带你走近AngularJS - 基本功能介绍 带你走近AngularJS - 体验指令实例 带你走近AngularJS - 创建自定义指令 ------------- ...
- CentOS以及Oracle数据库发展历史及各版本新功能介绍, 便于构造环境时有个对应关系
CentOS版本历史 版本 CentOS版本号有两个部分,一个主要版本和一个次要版本,主要和次要版本号分别对应于RHEL的主要版本与更新包,CentOS采取从RHEL的源代码包来构建.例如CentOS ...
- fedora21发布与新功能介绍(附fedora21安装教程与fedora21下载地址)
fedora21发布与新功能介绍(附fedora21安装教程与fedora21下载地址) 最新的Fedora 21终于正式发布了,Fedora Server 是一款强大可定制化的操作系统,包括了最好最 ...
- HTML5 离线功能介绍
HTML5 是目前正在讨论的新一代 HTML 标准,它代表了现在 Web 领域的最新发展方向.在 HTML5 标准中,加入了新的多样的内容描述标签,直接支持表单验证.视频音频标签.网页元素的拖拽.离线 ...
- HBase的Snapshots功能介绍
HBase的Snapshots功能介绍 hbase的snapshot功能还是挺有用的,本文翻译自cloudera的一篇博客,希望对想了解snapshot 的朋友有点作用,如果翻译得不好的地方,请查看原 ...
- Eviews 8.0&9.0界面新功能介绍
Eviews 8.0&9.0界面新功能介绍 本文其中一些是自己的整理,也有一些是经管之家论坛中一位热心.好学坛友的整理,其中只是简单介绍一下这两个新版本的部分特性,分享出来,有兴趣的看客可以一 ...
- 通过数据库评估存储设备IO性能-Oracle11gIO校准功能介绍
通过数据库评估存储设备IO性能 ---------Oracle11g IO校准功能介绍 前言 I/O子系统是ORACLE数据库的一个重要组成部分,因为I/O操作是贯穿数据库管理全过程,它操作的对象包括 ...
- 用nw.js开发markdown编辑器-已完成功能介绍
这里文章都是从个人的github博客直接复制过来的,排版可能有点乱. 原始地址 http://benq.im/2015/10/29/hexomd-introduction 文章目录 1. 功能列表 ...
随机推荐
- python里的字典和集合
一.字典 1.字典的定义 字典是不可变的,是用hash值来存储的.字典的key必须是不可变的(可哈希) dict = {key1:value1 , key2:value2} 2.字典的增删改查 增 直 ...
- n维向量空间W中有子空间U,V,如果dim(U)=r dim(V)=n-r U交V !={0},那么U,V的任意2组基向量的组合必定线性相关
如题取U交V中的向量p (p!=0), 那么p可以由 U中的某一组基线性组合成(系数不全是零),同时,-p也可以由V中的某一组基线性组合成(系数不全为零) 考察p+(-p)=0 可知道,U中的这组基跟 ...
- js读取后端写入cookie出现乱码
设置字符编码集即可 Cookie cookie = new Cookie("user",URLEncoder.encode(nMessage, "UTF-8") ...
- [指南] 15分钟学会MySQL(Linux版)
原文链接:http://www.mysqlpub.com/thread-348-1-1.html 原创出处:MySQLpub.com , 作者:kider ,转载请注明作者和出处,并不能用于商业用 ...
- 利用nginx打造个人简历网页
1.下载nginx nginx官方网址:http://nginx.org/ 2.下载和解压 #下载:[root@iZwz9cl4i8oy1reej7o8pmZ soft]# wget http://n ...
- Java理论学时第五节。课后作业。
随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中. 设计思路:先声明一个数组,再利用for循环对每一个元素赋随机生成的值,在求所有数的和,再根据要 ...
- 去除html页面中GET《 http://localhost:8080/favicon.ico 404 (Not Found)》
html5页面中经常会遇见以下问题,总是看着碍眼,那么怎么解决呢? GET http://localhost:8080/favicon.ico 404 (Not Found) 解决的方法: <l ...
- Windows 8创新之路——样章分享
在电脑里面躺了大约也有半年多的光景了. 在Windows 8.1还有不到一个月的时间里,将这些内容分享出来,也算是对得起自己那段时间的熬夜. 希望大家多提宝贵意见. 谢! 点击标题可浏览SkyDriv ...
- 2018/6/29 关于hashmap的总结
hashMap和ConcurrentHashMap的区别 hashMap内部具体如何实现的 如果hashMap的key是一个自定义的类,怎么办 为什么重写equals还要重写hashcode 一.什么 ...
- ajax点击加载更多图片
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...