最近在看工作流,先对其概念进行了解。。
工作流:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。
传统模式是指对审批流程的每个节点设定相应审批人,只有当该节点上的所有人员都通过审批请求后,才可以进入下一个节。
工作流的具体应用:
1.关键业务流程:订单、报价处理、采购处理、合同审核、客户电话处理、供应链管理等
2.行政管理类:出差申请、加班申请、请假申请、用车申请、各种办公用品申请、购买申请、日报周报等凡是原来手工流转处理的行政表单。
3.人事管理类:员工培训安排、绩效考评、职位变动处理、员工档案信息管理等。
4.财务相关类:付款请求、应收款处理、日常报销处理、出差报销、预算和计划申请等。
5.客户服务类:客户信息管理、客户投诉、请求处理、售后服务管理等管理等。
6.特殊服务类:ISO系列对应流程、质量管理对应流程、产品数据信息管理、贸易公司报关处理、物流公司货物跟踪处理等各种通过表单逐步手工流转完成的任务均可应用工作流软件自动规范地实施。
工作流模型:在工作流协作中,根据各行业的不同,有不同的协作关系,以下(workflow_model.pdf 银狐)罗列了比较详细的工作流模型可供查看。
在java中工作流开源框架中,主要以osworkflow与jbpm使用较多,前者以较强的灵活性为主,只提供工作流引擎,其他业务方面要自己进行扩展。后者,提供较全面的业务实现.
接下来对这两个开源框架进行研究。。。
--------------------------------------------------------------------------------------------------------------
OSWorkflow
OSWorkflow是最轻量型的代表,也是一款非常灵活和低级别定位的工作流引擎的实现框架。低级别定位的意思是说,它不是定位在解决流程模型对象和运转场景,而是提供一套可维护调度的机制,供开发人员自主扩展。这个维护流程调度机制OSWorkflow选择的是基于行为(Action)的FSM理论,所以OSWorkflow更像是一个复杂而灵活的有限状态调度机。
OSWorkflow在国内项目应用得较多,很多国内的简易审批流程项目都是基于其引擎二次开发而来。这主要是由于OSWorkflow是基于Action驱动的,而国内的客户也很容易接受这样的操作习惯。但OSWorkflow所依赖的FSM模型对于分支、聚合、子流程的支持度很低,这一点在实施过程中需要注意。
jBpm
jBpm是最适合扩展的代表,是在所有开源引擎中最适宜被商业化应用的一款。首先其流程建模模型是基于Activity Diagram(活动图)的,并在引擎构建上融入了FSM和PetriNet思想,所以其内核和根基比较牢固扎实。其次,自从被JBoss收购后,其3. x系列的结构更加趋于微内核,Plug-in思想也更加深入。其同时还提供了对BPEL扩展,存储支持JBoss Hibernate实现,集成了JBoss seam,规则引擎准备采用JBoss rules,并准备集成JBoss Messaging。这样,不论从内核和外围应用,jBpm都具有了强劲的动力。
另外,jBpm对Token的应用也很有特色,巧妙地利用Parent-Child Token的机制处理分支、父子流程等复杂应用场景