论坛首页 Java版 企业应用

开源工作流管理系统PowerStone发布了

浏览 25396 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2006-12-17
欢迎试用并提出宝贵意见。
项目首页:http://sourceforge.net/projects/powerstone/

下载和使用问题都可以在这里回帖,我会经常来看

svn访问
https://svn.sourceforge.net/svnroot/powerstone

CVS已不能访问
(cvs地址为
:pserver:anonymous@cvs.sourceforge.net:/cvsroot/powerstone
密码为空;
选择模块PowerStone315)
目前可用的版本:PowerStone_Workflow_R0.5.1_full2.zip
   
最后更新时间:2006-09-12
PowerStone(中文名——磐石)是一个基于Spring、Hibernate及其它若干开源框架和工具的,开放源代码的工作流管理系统;
它实现了工作流管理联盟(WfMC)的Workflow参考模型中的接口1、2和5;
它以开源的工作流编辑器——Enhydra JaWE(http://jawe.objectweb.org)作为流程定义工具。

PowerStone由以下模块构成:
1、工作流引擎:负责解析用JaWE编辑生成的XPDL流程定义文档、调度流程流转、生成任务列表;
2、管理控制台:提供工作流上传、部署、监控等后台管理功能,是一个WEB应用;
3、任务列表:供最终用户使用来处理业务数据、与工作流引擎交互;
4、用户权限系统:一个可替换的用户、权限管理系统,提供了基本的用户数据管理、基于角色的授权与访问控制和多系统单点登录功能。


为什么又要做一个工作流软件?
1、由于工作流管理理论还很不成熟(相对于关系型数据库理论),各家对其理解和阐述五花八门,甚至在一些基本概念上都不统一;
现有的工作流管理软件虽然数量众多,但是根据其理论基础、体系结构、技术实现、适用场景的不同,可以划分成许多分类,彼此之间没有多少相似性;
PowerStone的定位是:基于有限状态自动机理论的、采用嵌入式和轻量级架构的、
采用关系数据库存储的(这不是废话,好像确实有人不用数据库存储流程数据)工作流管理系统,适用于面向流程型的应用(不同于OA和一些PDM产品等面向文档型的应用),
典型的应用场景是流程逻辑复杂、多人协作、任务分发方式灵活、应用种类繁多甚至分布式部署,
最典型的属于此类工作流软件的首先要数JBoss下的jBPM(希望PowerStone能够早日取代它);
因此不难看出,此类工作流管理系统的发展趋势是成为SAO体系架构中的调度中心和枢纽,实际上jBPM已经集成了BPEL。

2、基于现有的工作流管理软件开发业务系统还比较难:有的采用了EJB导致系统笨重(难测试、难部署、难移植);
有的没有采用O/R mapping工具或是用了专有O/R mapping框架(比如shark),导致数据库移植困难;
有的不完整,只提供一个引擎,甚至没有任务列表(如OSWorkflow);
有的过于庞大、臃肿,难以修改(比如shark等比较早的)。
(jBPM好像却是比较厉害:)PowerStone采用SpringMVC+Spring+Hibernate的轻量级架构,有较完整的单元测试,
支持所有主流的数据库和应用服务器(实际上只要web服务器就够了),以开源的JaWE作为流程定义工具,有任务列表和可替换的用户权限系统,
嵌入式工作流引擎方便开发(甚至不依赖web容器,可以开发桌面应用和胖客户端)。

3、可以作为类似于Appfuse和Equinox的范例学习使用Spring、Hibernate等开元框架:(
   
0 请登录后投票
最后更新时间:2006-09-12
由于PowerStone项目是以开源项目Equinox(https://equinox.dev.java.net/)为基础开发的,所以,如果了解Equinox或AppFuse会对掌握PowerStone很有帮助。通过下列步骤就可以立刻开始体验PowerStone了。

建立环境:
1.安装 J2SE 1.4.2+,设置JAVA_HOME 环境变量指向其安装路径。
2.安装Ant 1.6.2+(就是解压到一个目录),设置ANT_HOME 环境变量指向其安装路径,为了用Ant跑单元测试,Copy WEB-INF\lib/junit.jar to $ANT_HOME/lib。
3.安装Tomcat 5.0.12,设置CATALINA_HOME环境变量指向Tomcat安装路径。这里选择Tomcat只是因为通过ANT任务可以很方便的把应用部署到Tomcat。还在JBoss4.0和Weblogic8.1上测试过。
4.给环环境变量Path的值添加内容;%JAVA_HOME%/bin;%ANT_HOME%/bin;%CATALINA_HOME%/bin
5.安装一个数据库。Hibernate支持多种数据库,但是我们只在MySQL、MSSQLServer(jTDS驱动)和Oracle上测试过。


测试与部署:
1.从http://sourceforge.net/projects/powerstone下载PowerStone最新版本,解压到某个目录,下文用$PS_HOME表示。
2.为PowerStone新建数据库workflow。
3.编辑$PS_HOME/web/WEB-INF/classes下的ps_database.properties,修改配置令其符合你的数据库环境;MySQL4.1和MSSQLServer的驱动程序已经存在于$PS_HOME/web/WEB-INF/lib中,如果用其它种类数据库,拷贝其驱动到$PS_HOME/web/WEB-INF/lib。
4.编辑$PS_HOME下的build.properties,修改Tomcat参数和JDK版本已符合实际环境
5.打开命令行工具,进入$PS_HOME,运行命令ant test,如果不出意外测试会全部通过,此时数据库中所有表已建好。
6.运行命令ant deploy
7.启动Tomcat。
8.Tomcat启动完成以后,运行命令ant test -Dtestcase=InitDreamBikeDriver为系统初始化。
9.访问http://localhost:8080/ps_console,用户名密码均为admin。
   
0 请登录后投票
最后更新时间:2006-09-12
看到同行了^_^
看说明,使用的技术路线跟俺们做的一样哟。研究一下先。
有空大家可以交流哟,我们的产品也是开源工作流,大家可以到http://www.ape-tech.com下载。
随便说明一下,俺们的项目前没有用户权限系统模块。主要是omg模型比较复杂,不知道咋下手。daquan198163可以交流一下这方面的经验么?
   
0 请登录后投票
最后更新时间:2006-09-12
stonelu 写道
看到同行了^_^
看说明,使用的技术路线跟俺们做的一样哟。研究一下先。
有空大家可以交流哟,我们的产品也是开源工作流,大家可以到http://www.ape-tech.com下载。
随便说明一下,俺们的项目前没有用户权限系统模块。主要是omg模型比较复杂,不知道咋下手。daquan198163可以交流一下这方面的经验么?

当然可以了
你们的项目我之前就关注过,挺受启发的
   
0 请登录后投票
最后更新时间:2006-09-12
下载量300多了,怎么没人给反馈意见呀同志们?
本人最近忙于找工作,来得少了些,不过有问题我会尽快回复的。
   
0 请登录后投票
最后更新时间:2006-09-12
刚下了下来,按照楼主的说明跑了一下,打开http://localhost:8080/ps_console时出错:
[code:1]
HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Failed to load or instantiate TagLibraryValidator class: org.apache.taglibs.standard.tlv.JstlCoreTLV
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:50)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:279)
org.apache.jasper.compiler.TagLibraryInfoImpl.createValidator(TagLibraryInfoImpl.java:649)
org.apache.jasper.compiler.TagLibraryInfoImpl.parseTLD(TagLibraryInfoImpl.java:246)
org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:162)
org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:418)
org.apache.jasper.compiler.Parser.parseDirective(Parser.java:483)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1539)
org.apache.jasper.compiler.Parser.parse(Parser.java:126)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:211)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:146)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:296)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.powerstone.util.EncodingFilter.doFilter(EncodingFilter.java:50)
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)


root cause

java.lang.ClassCastException: org.apache.taglibs.standard.tlv.JstlCoreTLV
org.apache.jasper.compiler.TagLibraryInfoImpl.createValidator(TagLibraryInfoImpl.java:647)
org.apache.jasper.compiler.TagLibraryInfoImpl.parseTLD(TagLibraryInfoImpl.java:246)
org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:162)
org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:418)
org.apache.jasper.compiler.Parser.parseDirective(Parser.java:483)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1539)
org.apache.jasper.compiler.Parser.parse(Parser.java:126)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:211)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:146)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:296)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.powerstone.util.EncodingFilter.doFilter(EncodingFilter.java:50)
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.8 logs.


--------------------------------------------------------------------------------

Apache Tomcat/5.5.8
[/code:1]
   
0 请登录后投票
最后更新时间:2006-09-12
同意robbin所说,我下载下来看了一下,代码似乎很单薄,试图在postgres上构建时,始终报错,所以就放弃了,还没有在其他数据库上测试!
   
0 请登录后投票
最后更新时间:2006-09-12
stray 写道
同意robbin所说,我下载下来看了一下,代码似乎很单薄,试图在postgres上构建时,始终报错,所以就放弃了,还没有在其他数据库上测试!

postgres确实还没测过,能否把一些有用的错误信息贴上来

还有就是,你和robbin所说的单薄指的是什么,是里面的内容少吗?
   
0 请登录后投票
最后更新时间:2006-09-12
奇怪,刚才还看见robbin他们的留言怎么没了?
   
0 请登录后投票
论坛首页 Java版 企业应用

跳转论坛:
JavaEye推荐