胡长城(银狐999)BLOG

专注SOA,MDA,EAI,BPM,工作流,J2EE;个人主页http://www.javafox.org

胡长城ID:james999
538138次访问,排名70好友0人,关注者39
J2EE,Workflow,BPM,EAI,SOA,工作流
james999的文章
原创 184 篇
翻译 0 篇
转载 2 篇
评论 608 篇
银狐999的公告
个人主要工作流文档可从 javafox live网络硬盘下载

最近评论
oopliu:我把照片的地址输入浏览器,看到老大的娃的照片了。不果,现在娃以及都快1岁了。迟到的祝福。
fredyin:oracle task service会最终到“user name”,如果仅此而已的话还是有问题的,比如说‘A’用户从策划部上调到集团公司了,从主任升迁到副社长了,原来是策划部主任审批的,同步后就变成集团公司的副社长做的了;这种情况自然是不对的,还有其它情况等等;
当然从技术角度是可以实现的,我提出这个问题的重点是我们是否要这样实现,有没有必要这样做,或者我们是否有其它更好的方法实……
LMXEQ5:向CSDN学习
h_154537334:建议阅读这篇文章
http://blog.csdn.net/zhangking/archive/2008/06/18/2562480.aspx
james999:to fredyin:对oracle bpel还没有研究那么深,毕竟我研究只是因为“竞争对手”的原因,时间也不较短。—— 不过,从我目前的了解来看,oracle task service会最终到“user name”,也就是,组织的变更对已经运行流程实例,不会动态更新。如果处理人不存在,oracle bpel会直接按照task complete来处理。
文章分类
收藏
    相册
    50 Relational Blogs
    J2EE与ERP禅话
    Peter's Blog
    俠盜躶奔漢
    切尔斯基(RSS)
    动物园的猪
    胡奇
    赵斌BLog
    阿飞外传
    55 Workflow Preacher
    Ekkart Kindler
    Michael zur Muehlen
    Wil van der Aalst
    存档
    订阅我的博客
    XML聚合  FeedSky

    原创 Liferay Portal额外研究(二):对Liferay进行瘦身收藏

    新一篇: 论工作流与平台的发展怪圈(三) | 旧一篇: Liferay Portal额外研究(一):初步在新Tomcat下部署

     

    研究Liferay版本:Liferay Professional 4.0.0

    Liferay额外研究(一):http://blog.csdn.net/james999/archive/2006/07/26/979938.aspx 

    Liferay额外研究(二):对Liferay进行瘦身
     

           Liferay的体系是很庞杂的,居然有些文章对外宣称Liferay是微内核,我想写这文章的哥们没有搞清楚什么是“微内核”。

     

           Liferay 受其企业版本影响不小,毕竟Liferay公司主要还是“企业行为”,而不是一个单纯的一个“开源团体”行为。所以Liferay Portal本身内嵌了大量的Portlet,而且这些PortletLiferay Portal Framework甚至还有些交融。这就是为什么liferay portal-ejb.jar会有3M多。

     

           虽然我们可以通过修改system.propertiesportlet.properties,protal-spring这些基础配置文件来修改声明哪些服务不需要加载,也可以通过修改 WEB-INF目录下的portlet.xmlliferay-portlet.xml以及liferay-display.xml这些文件来删除一些不需要的portlet

     

           但是,我想真正敢真么干的,估计很少。这是为什么呢,就是应为Liferay内部实现的结构和代码,并不是非常良好。而对于这一块的优化,也没有很详细的帮助使用手册。在Liferay的网站上,只有一些教开发人员如何部署在不同服务器和数据库,如何新增一些portlettheme,以及如何修改权限方面的浅显参考手册。

     

           接下来就讲一讲对Liferay的瘦身操作,Liferay变成一个只提供最基本的Portal框架和部署机制的portal context,而去掉那些多余的portlet。—— 因为这些多余的portlet大多国内的项目没有任何利用价值,但是如果需要部署的话,则会大大影响系统响应性能,而且让开发也变得比较麻烦。

     

           当然,是否按照我今天说的方式对Liferay进行瘦身,这全凭习惯。有些朋友不愿改变Liferay的结构,只希望单纯通过配置来加载,也是可以的。

     

    1)保留Liferay最基本的一些组件

          

           Liferay提供了一些基本组件,这些组件不属于Portal框架之内,但是整个portal服务是基于这些组件。

    包结构

    说明

    com.liferay.counter

    主要提供主建操作服务,Liferay内部的提供的组织结构表维护,就是采用counter提供的主建自增机制

    com.liferay.filters

    提供一些基础的基于servlet filter的过滤器

    com.liferay.taglib

    提供最基本的web展示标签

    com.liferay.util

    提供最基本的一些公共组件

           以上这四个组件是必须保留的,另外还有两个基本组件:com.liferay.mail(提供邮件服务)和com.liferay.wsrp(提供webservice服务)。这个实际上应该属于可选的,如果觉得需要的话,也可以纳入。

     

    2)保留LiferayPortal基础服务

           Liferay的基础服务是以com.liferay.portal作为基础的,基本属于此包内的都尽量保留。目前其子package说明如下:

    包结构

    说明

    com.liferay.portal

    此包下放置了portal服务相关的一些异常

    com.liferay.portal.action

    负责一些struts action处理,比如Login

    com.liferay.portal.definitions

    此包不是类包,而是负责放置一些定义相关的dtd文件资源。具体需要哪些dtd,可以参考com.liferay.portal.util. EntityResolver

    com.liferay.portal.dependencies

    此包也不是类包,而是负责一些依赖性的资源文件。

    com.liferay.portal.deploy

    负责自动部署和热部署

    com.liferay.portal.events

    这个包内主要是一些行为处理类

    com.liferay.portal.im

    即时消息的支持

    com.liferay.portal.jcr

    提供JSR-170 JCR的支持,并内部提供Jackrabbit的实现支持

    com.liferay.portal.job

    对一些时间调度性Job的支持

    com.liferay.portal.language

    对语言的支持包

    com.liferay.portal.lucene

    对全文检索的支持

    com.liferay.portal.model

    一些模型对象的集合

    com.liferay.portal.security

     

    com.liferay.portal.servlet

     

    com.liferay.portal.spring

     

    com.liferay.portal.struts

     

    com.liferay.portal.theme

    提供对“主题”,也就是界面风格的支持

    com.liferay.portal.tools

     

    com.liferay.portal.util

     

    com.liferay.portal.velocity

     

    com.liferay.portal.wsrp

     

     

           其实我们可以把Liferay这些portal服务再缩简一些,但刚开始建议大家不要随便的删减,保留原始的即可。

     

    3)缩减portlet应用

           Liferay提供了大量的portlet应用,有大概七八十个。正应为这些portlet的加载和部署,让Liferay启动缓慢,消耗系统资源多。实际上,保持Liferay Portal正常运行,只需要其中几个就可以了,剩下的,我们可以根据需要进行删减。

     

           下面列出了一些最基本的portlet,只需要保留如下的这些portlet即可保证liferay的正常启动和运行

    包结构

    说明

    com.liferay.portlet

    Liferay Portlet的一些基础类

    com.liferay.portlet.admin

    管理portlet

    com.liferay.portlet.calendar

    日期portlet虽然可以不需要,但是其内部提供对job的调度。

    com.liferay.portlet.communities

    这个是负责配置用户其所在的group,利用可以配置用户所拥有的工作区。

    com.liferay.portlet.enterpriseadmin

     

    com.liferay.portlet.language

     

    com.liferay.portlet.layoutconfiguration

     

    com.liferay.portlet.login

     

    com.liferay.portlet.myaccount

    用于配置用户信息

    com.liferay.portlet.myplaces

    用于控制用户的工作区选择

    com.liferay.portlet.portletconfiguration

     

    com.liferay.portlet.themegallery

    用于控制主题风格

    com.liferay.portlet.translator

    这个包必须要,虽然portlet可以不用,但是被portal.language包引入了

    com.liferay.portlet.wsrp

    这个包必须要。

     

           只需要保证如上的portlet在系统中,即可保证Liferay的正常运行。

     

           但是,不以为只需要简单得讲起他的Porlet删除即可,那就大错特错了。Liferay在这一层面做的非常不友善,内部代码由一点点地耦合。很多地方依靠写if else来判断,所以造成了在portal这个服务包中,竟然存在很多地方引用portlet中的类。

           不过这个倒不难修改,只需要花费一点点时间,简单修改一下就可以了。比较容易,此处就不多说。

     

    4)从配置文件中删除无用portlet的部署

          

           这个主要是修改WEB-INF目录下的portlet.xmlliferay-portlet.xml以及liferay-display.xml这些文件。只需要依次把那些不需要的portlet删除即可。没有什么难度,细心点就可以了。

     

    5)修改服务配置文件

     

           Liferay的配置文件也是很多,放置也是在好几个地方:

    位置

    配置文件说明

    /WEB-INF

    portlet描述和struts等配置文件

    /WEB-INF/classes

    system.propertiesportal.properties配置文件

    /WEB-INF/classes/META-INF

    portal-spring.xmlportal-hbm.xmlportal-log4j.xml配置文件。此位置可调,具体可以修改portal.properties内容。

     

           为了让系统正确运行,我们还需要修改system.propertiesportal.properties配置文件,这是Liferay核心配置文件。Liferay的很多服务都是在此配置文件中声明和修改。具体修改哪些本文不细说,改篇专门作个专题讲。

     

           还需要修改portal-spring.xml(如果是professional版,则是portal-spring-professional.xml)。需要将那些已经没有的类bean删除。否则Liferay现在的加载机制,一旦碰到没有的类的bean,则加载不成功了。

           当然portal-hbm.xml也是需要修改的,去掉那些不需要的类即可。

     

           基本上经过以上五个步骤,Liferay即可完成手身了。在真实系统研发过程中,不一定非要选择这样的瘦身方式,毕竟这种方式,对后续Liferay版本的维护带来一定的工作量。—— 但是,如果这么尝试一把,则可以在通过调试过程中,对Liferay的配置体系和代码结构体系有个较为清晰的认识

     

    发表于 @ 2006年07月27日 16:07:00|评论(loading...)|编辑

    新一篇: 论工作流与平台的发展怪圈(三) | 旧一篇: Liferay Portal额外研究(一):初步在新Tomcat下部署

    评论

    #银狐999 发表于2006-08-08 12:39:00  IP: 211.100.21.*
    TrackBack来自《Liferay Portal额外研究(三):IFrame Portlet的session丢失问题解决》

    实现的也非常巧妙;但是对于很多web应用系统来说,使用Liferay IFrame Portlet的form方式实现登陆后,虽然可以成功登陆,但是在显示的新页面中,却发现用户信息丢失,或者更准确的说,是session丢失。本文提供了两种解决方式,来解决此种情况。
    #银狐999 发表于2006-08-29 16:47:00  IP: 211.100.21.*
    TrackBack来自《Liferay Portal额外研究(4):修改用户登录后的默认布局和内容》

    Liferay在用户第一次登陆后,都会为其产生一个默认的私有首页Layout。 在Liferay早期版本,可以在系统管理员管理界面中,配置默认的group layout。但是在4.1版本中已经没有这个功能,所以默认情况下,新注册的用户,在登陆后,首先看到的其私有place都是一样的内容,而这些内容都是liferay提供的。对我们自定的Company来说,这肯定是不合适的,我们需要自己定义用户登录后,默认显示的内容和布局。
    #呵呵 发表于2006-11-06 17:42:00  IP: 202.99.27.*
    能成功吗?
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 银狐999