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工作流: Kaleo,集成Liferay表单的内置工作流,极简单,没有图形设计器; 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. Insert New Record (in Collection/Table). Update inserted records. Delete Single/Multiple Record(s). Sorting (Ascending/Descending) Searching (AND search / OR search) Liferay MongoDB CRUD Application 集成导入插件 Webservice Content Import 使用这个Web服务插件,你可以从其他平台导入内容到Liferay中 更多插件 在应用商店:Marketplace 选择Liferay的好处是除了自带的强大功能,和海量商店应用,它还是可以灵活开发扩展的平台。