在sshpermissions中加入工作流部分,主要整合的是jbpm4.4。并且将流程设计器和业务做了初步的整合。同时也修改了前期的一些bug。
JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。jBPM是公开源代码项目,它使用要遵循 ASL(Apache License Version 2.0)和EULA(JBoss End User License Agreement)协议。
jBPM在2004年10月18日,发布了2.0版本,并在同一天加入了JBoss,成为了JBoss企业中间件平台的一个组成部分,它的名称也改成JBoss jBPM。随着jBPM加入JBoss组织,jBPM也将进入一个全新的发展时代,它的前景是十分光明的。
就是它的业务逻辑定义没有采用目前的一些规范,如WfMC´s XPDL, BPML, ebXML, BPEL4WS等,而是采用了它自己定义的JBoss jBPM Process definition language (jPdl)。jPdl认为一个业务流程可以被看作是一个UML状态图。jPdl就是详细定义了这个状态图的每个部分,如起始、结束状态,以及状态之间的转换,通过图型化的流程定义,直观地描述业务流程。
jBPM的另一个特色是它使用Hibernate来管理它的数据库。Hibernate是目前Java领域非常流行的一种数据存储层解决方案,只要是 Hibernate 支持的数据库, jBPM 也就支持。通过Hibernate,jBPM将数据的管理职能分离出去,自己专注于业务逻辑的处理。
对jBPM来说,今年最大的事件莫过于jBPM的创建者Tom Baeyens离开JBoss了。Tom Baeyens离开的具体原因尚不清楚,但他的离开产生了两个结果:一是jBPM的下一个版本jBPM5完全放弃了jBPM4的基础代码,基于Drools Flow重头来过;二是Tom Baeyens加入Alfresco后很快推出了新的基于jBPM4的开源工作流系统Activiti。 由此不难推测Tom Baeyens离开的部分原因:JBoss内部对jBPM未来版本的架构实现产生了严重的意见分歧。更加巧合的是12月1日Activiti5刚发布,紧 接着12月2日jBPM5就发布了第一个候选发布版本,jBPM与Activiti之间的微妙关系可见一般。
详细的可以参考
http://www.blogjava.net/DL88250/archive/2011/01/05/342348.html
很显然,现在要做的是嵌入式的一部分,即流程和业务都是在一个工程内。
主要是将权限分为组,角色,用户,系统,资源,操作等功能。大致关系如下:其中用户只和组交互,角色和权限部分交互。
在加入工作流功能之后,先添加类型处理。
新增类别的信息。
点击新增流程按钮。
弹出做好的流程设计器。
可以对流程进行编缉和操作。
发布后可以在流程列表中看到新添加的流程。
新的流程需要点击发布按钮将其发布到工作流引擎中,并且将对应的信息记录到数据库。
在列表中主要包编缉和启用禁用两块。
启用和禁用是指在业务系统中如果绑定后是否启动对应的流程,因为流程可以有多个,甚至是经常更改,所以这个功能可以根据需要来设置最新的流程或者不使用的流程。
点击编缉按钮可以得到已设计好的流程,并且对其进行更改。
对于表单的动态设计,因为如果想在线增加新的流程,就必然涉及到与表单的绑定。
现在只是一个初步的版本还有很多需要深化的地方。
权限的粒度问题,需要进一步深入。这部分会深入一下Ralasafe,参考一下设计思路。
也希望大家多提一些关于本系统需要完善地方。