jBPM 5.4 发布,Java工作流引擎

jopen 11年前

下载:
文档:

jBPM的安装程序可能是最好的方式开始。下载完整的安装程序,并按照文档学习一些最重要的组成部分。

jBPM,全称是Java Business Process Management,是一种基于J2EE的轻量级工作流管理系统。jBPM是公开源代码项目,它使用要遵循 Apache License。jBPM在2004年10月18日,发布了2.0版本,并在同一天加入了JBoss,成为了JBoss企业中间件平台的一个组成部分,它的名称也改成JBoss jBPM。随着jBPM加入JBoss组织,jBPM也将进入一个全新的发展时代,它的前景是十分光明的。

jBPM最大的特色就是它的商务逻辑定义没有采用目前的一些规范,如WfMC's XPDL, BPML, ebXML, BPEL4WS等,而是采用了它自己定义的JBoss jBPM Process definition language (jPdl)。jPdl认为一个商务流程可以被看作是一个UML状态图。jPdl就是详细定义了这个状态图的每个部分,如起始、结束状态,状态之间的转换等。

jBPM的另一个特色是它使用Hibernate来管理它的数据库。Hibernate是目前Java领域最好的一种数据持久层解决方案。通过Hibernate,jBPM将数据的管理职能分离出去,自己专注于商务逻辑的处理。


以下是这次发布的一些新的亮点:

Simulation

We've added simulation capabilities to the web-based process designer, that allows you to simulate how a process might behave at runtime.  This includes the addition of various simulation-related properties (like resources and duration-related attributes for tasks, and probabilities for diverging gateways etc.).  Our implementation is based on the specification created by the BPSWG (Business Process Simulation Working Group).

Based on these properties, you can run a number of instances of your process and:
  • Use the path finder to look at all identified paths
  • Look at the generated charts containing information about minimal, maximum and average completion times, etc. using (horizontal and vertical barcharts, pie charts or tables.
  • Check the timeline to get an overview of all the recorded events
Maciej did a blog recently on the ideas and concepts behind it, and Tihomir did a blog, including a 12-minute video, that shows simulation in action.



Local task service

When human actors participate in a business process (also known as human workflow), a task service is used to manage the life cycle of the tasks (claiming, completing, task lists, etc.).  While we supported the use of a centralized task service (using HornetQ for remoting), we now also support a local version that runs as a simple Java component next to the engine and all the work it does is synchronous and nicely integrated with the transaction of the process engine.

org.jbpm.task.service.TaskService taskService =       new org.jbpm.task.service.TaskService(          emf, SystemEventListenerFactory.getSystemEventListener());  LocalTaskService localTaskService = new LocalTaskService(taskService);  LocalHTWorkItemHandler humanTaskHandler = new LocalHTWorkItemHandler(      localTaskService, ksession, OnErrorAction.RETHROW);  humanTaskHandler.connect();  ksession.getWorkItemManager().registerWorkItemHandler(      "Human Task", humanTaskHandler);

Spring 

We have improved our Spring support, where you can use a Spring configuration file to configure your environment and inject a ksession and/or task service into your application code.  For transactions, it integrates with the Spring transaction manager, supporting both JTA and RESOURCE_LOCAL with shared entity manager factory (emf) or shared entity manager (em).

JPA2

jBPM runtime persistence can now also use JPA2 for persistence.  That means it is completely independent of the underlying persistence provider (we use Hibernate by default but other persistence providers should be possible as well).  You can use Hibernate4 with JPA2 for even better performance.  For all the details on how to do this, here's a link to a persistence configuration file for both JPA1 and JPA2.

Some of the other features
  • Improvements on some of the BPMN 2.0 constructs in the core engine, related to error events, terminating end events in sub processes,
     
  • Introduction of a business calendar related to timers etc.
  • The ability to start a process by name, which will automatically start the latest version of that process.
  • We created separate wars for EE6 (AS7) and EE5 (AS5) to avoid a lot of manual dependency management.  JBoss AS 7.1.1 is now the new default application server in the installer.
  • Improved support for invoking web services from inside your processes.
  • A database-backed solution for managing which users are part of which group (UserGroupCallback).
  • When configuring handlers for domain-specific services, the ksession is automatically injected as an optional constructor parameter in the handler configuration file.
The details on all fixed issues and new features can be found in detail in JIRA.
jBPM 5.4.0.Final has been released in sync with the latest Drools 5.5.0.Final release.

If you have any questions / issues, let us know: