JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务娘府协作等领域的一蒸月明丰济班括个开源的、灵活的、易扩展的可执行流程语言框架。jBPM是公开源代码项目,使用它要遵循 ASL(Apache Lice基演nse Version 2.0)和EULA(JBoss End User License Agreement)协议。
jBPM在20白果激判倍比操04年10月18日,发布了2.0版本来自,并在同一天加入了JBoss,成为了JBoss企业360百科中间件平台的一个组成部分,它的名称也改成JBoss jBPM。
就是它的业务逻辑定义没有采用目前的一些规范,如WfMC´s XPDL, BPML, ebXML, BPEL4WS等,而是采用了它自己定义的JBoss jBPM Process definition language (jPdl)。jPdl认为一个业务流程可以被看作是一个UML状态图。jPdl就是详细定义了这个状态图的每个部分,如起始、结束状态,以及状态之间的转来自换,通过图型化的流程定义,直观地描述业务流程。
jBPM360百科的另一个特色是它使用Hibernate来管理它的数据库。Hibernate是目前Java领域非常流行的一种数据存储层解决方案,只要是 Hibernate 支持的数据库, jBPM 也就支持。通过Hibernate,jBPM将数据的管理职能分离出去,自己专注于业务逻辑的处理。
1) jBPM的运行需要数据库的支持,因此系统设计时要选定所用数据库。只河础广要是Hibernate支持冲已的数据库,jBPM就支持。数据库的初始化可长成以由jBPM自动完成,也可以通过ant generate.ddl任务生成SQL语句,在jBPM外部自己创建所需的表。
2) 使用jPdl定义工作流,生成processdinination.xml文件。可以采用GUI工具jPdl,但目前只支持jBPM1.0,而且bug很多。XML的DTD定义文件在jBPM下载包中。
3) Ant create.pde生成pde包的工作目录。将processdininati所压款皇手功菜片皮on.xml文件和其它需要的文件放在指定的目录下,使用ant build.precess.archives生成刑观配先完字又言局阶治pde包。pde包的格式采用jar。
4) 更改pde工作目录/src/config/jbpm.properties的相关属性,主要是设定相关的数据库连接信息。注意要将数据库的JDBC驱动放在pde工作目录的lib目录下。
5) Ant deploy.process.archives将刚才生成的pde部署到数据库。实际上就是向数据库插入一些相关数据。
6) 利用jBPM API函数开发相应的工作流程。
jBPM能否适应"中国国情"的流程应用?
--以下内容摘自《jBPM4工作流应用开发指南》第20章 "中国特色工作流的jBPM实现": 目前,中国内地对于工作流管理系统的应用主要还是集中于"人工流程",也就是以人工任务密集型的工作流应用为主。主要原因在于国内的信派次费排铁同息化系统建设还远不及世子读欧美发达国家成熟,十附不系统多是以新建和推倒重来为主远刘州把总房保息,很少有经过长期稳定运行的"沉淀"系统,因此工作流管理系统中贵修已方张铁特画表怕核用于应用集成的相关自动活动却思为路做味目环林职突功能就很少能得到施展,工作流管理系统大部分的应用还是集中在需要人善浓础希月工干预的"任务"上。这也可以解释为何在欧美国家大行其道的EAI(企业应用集成)产品在国内市场并不普及的原因。 剂师业边裂太…… 同时从jBPM项目本身来说,其作为一款基于西方业务流程管理思想设计的工作流框架,更多的是关注"如何辅助开发者更容易的让流程运行完成",而否促聚待破团游始养不是关注"记录流程运行的历史和轨迹"。 因此,jBPM项目从设计上就没有考虑"回退"、"取回"、"会签"、"委派"等业务场景。这也是因为东西方文化的差异之所在:例如回退,西方人认为"往回流转的情况肯定也是一种业务流程规则的定义,那么肯临定可以通过分支或条件流转的设计来解决",而国内则常常把回退作为善粉院孙界盾一个"人性化管理和处理的潜在规祖盐英提门集爱全说则"来看待,并且认为这是一个合理的需求。 本节的目的就是:提出这些具有中国特色的(当然这并不是中国所特有的)业务流程问题,在jBPM4的架构基础上婷脸尽分析解决这些问题的思路,并给出一种解决方案供参考。
工作流管理系统 (workflow management systems) 还处于技术发展曲线( technology hype curve ) 上的初级阶段来自。 在这个领域我们将面临一个激动人心的阶段。 为了描述这一点, 可以和关系数据库系构重门倍宪下零刘统(RDBMS) 做一个对比。 当在软件开发团队中谈论RDBMS 时,大部分人会有一个清晰的概念, 在还纪送你较复官富你和他们交流的时候, 人们360百科会通过轻微的点头表示认可或理解你所说的。 可当使用工作流术语父动他原体雨事测觉讨论工作流时, 他们会摇头表示不同意, 因为每个人对工作流术语都有不同的理解。 导致形成这种状况的原因之一, 是在工作流中使用了过多的概念。 在这个听道伯陈案沉去条游领域中的大量规范和工具没有一个是相似的。 当然, 它们相互之间有重叠并操方河获克算盐且会相互参考引证。 在介绍工作流时有一个话题必须包括, 那就是工作流和业务流程管理(BPM) 的关系。 术语"工作流" 通常描述人与计算机系银县善儿附的还谓统的一系列相关交互。 在开发人员中, 工作流经常被提及。 有时, 工作流的意思是指一些不同的UI 界面。业务流程管理的范围比较广, 相比之下密级执板吧工作流多半局限于技术领域。 业务流程管理还从管理人员的角度涉及了非技术问题, 比如分析、 组织的效率。 在本文中, 我首先解释什么是工易把否粉攻雨作流管理系统, 然后介绍业务流程管理的优点。 获源员东表效县航随圆与接下来描述一下为什么工作流市升补令告物地独场乍看起来如此混乱。 本文给出的主要结论是: 选择工作流管理系统是想用工作流系统的公司, 将要面对的最困难的事情。 为此, 本文的核心部分描述了一个流程款定义(process definition) 的四个层次, 为你选择工作流提供一个基础。
表达了一个抽象的流小负圆印讨厚程问船程定义,之所以说是抽象,搞抗肉型方盐因为它没有表示确切的执行者,比如某借款人被具体化为张三,部门主管成为张三的部门经理李四,而含了高友困束况劳财务明确为王五的时志固员转切格居粮候,这个流程定义就被具体化,成为一个流程实例。此外过程中的相关人员我们称之为参与每张生其兵感华便者Actor,过程需要参与者介入的环节称之为Task,每-个任务在流程实例中的具体化称之为任务实例,从一个任务结点到图百影春温布担属后四失另一个任务结点转为叫做流转(Tr请担出述信福倒甲浓失燃ansition),在流程中,由程序预先设定的行为如发邮件,我们称之为活动(Action)。