jBPM Developers Guide(jBPM开发指南)--Chapter 3. BPMN 2.0(第一部分)

前几天看了jBPM4.3版的开发指南,网上也有翻译但是觉得好像是使用翻译软件翻译的,所以自己进行了重新翻译。这是第一次进行翻译,希望大家多多指正。下面把中英文都发表上来.

3.1. What is BPMN 2.0?( BPMN 2.0是什么?)

    The Business Process Modeling Notation (BPMN) is a standard for the graphical notation of business process models. The standard is maitained by the Object Management Group (OMG).

   

    BPMNBusiness Process Modeling Notation业务流程建模符号,是业务流程建模的一种标准图形符号。目前由对象管理组织(Object Management Group OMG)对该标准维护和管理

 

     Basically, the BPMN specification defines how a task must look like, which constructs can be connected to each other, etc. in a meaning that cannot be misinterpreted.

 

    简单来说,BPMN定义了一个任务看起来应该是什么样子,哪些结构可以与其他进行连接,等等。也就是说,BPMN让业务流程建模时更清晰不会被误解。

 

     Earlier versions of the standard (<= version 1.2) are limited to the modeling only, aiming at a common understanding between all stakeholders involved in documenting, discussing and implementing business processes. The BPMN standard has proven itself, as many modeling tools on the market today use the symbols and constructs specified in the BPMN standard. In fact, the current JPDL designer also uses BPMN symbols.

 

    早期版本(1.2版以及之前)BPMN仅仅限制在模型上,目标是让所有的利益相关者能够在文档、讨论和业务流程实现上形成统一的理解。BPMN已经证明了它自己,现在市场上许多建模工具都使用了BPMN标准中的符号和结构。实际上,现在的jPDL设计器也使用了BPMN元素。

 

    Version 2.0 of the BPMN specification, which is currently in finalization phase and is scheduled to be finished soon, allows to add precise technical details to the shapes and symbols available in BPMN and at the same time specify what the execution semantics of BPMN 'elements' are. By using an XML language to specify the executable semantics of a business process, the BPMN specification has evolved into a language for business processes that can be executed on any BPMN2 compliant process engine - while still having the powerful graphical notation.

 

    BPMN 2.0版本当前已经处于最终定稿阶段,计划不久将会发布。BPMN2.0在图形和元素添加了精确的技术细节描述,同时制定了元素的执行语义。BPMN通过使用XML语言来定义业务流程的执行语义,已经逐渐演变为一种业务流程语言,可以在任何兼容BPMN2的流程引擎中运行,而且BPMN仍旧拥有强大的图形注解功能。

3.2. History and goal(历史和目标)

    The jBPM BPMN2 implementation was started in close collaboration with the community in augustus 2009 after releasing jBPM 4.0. Later, it was decided that the first release (ie documented/QA'd) to incorporate parts of the BPMN2 spec would be jBPM 4.3.

   
     jBPM 4.0发布之后,在20098月经过与社区进行了紧密协作之后决定启动jBPM BPMN2的实现。之后,我们决定在jBPM 4.3中发布中(比如,文档/QA)将首次涉及部分BPMN2规范。

 

    The goal of this effort is to build a native BPMN2 runtime engine (or better said implementing 'BPMN2 exectuable') leveraging the Process Virtual Machine (PVM). Do note that the primary focus of this release is native executability, not the graphical notation - but we recognize its importance for further releases.

 

    我们的目标是建立基于流程虚拟机 Process Virtual Machine - PVM)一个原生BPMN2运行引擎(或者说实现'可执行的BPMN2')。注意,这个版本的主要目标是原生可执行而不是图形注解 - 但是我们清楚对于以后的版本是很重要的。

 

    Users who are already familiar with jBPM will find that

 

   如果您已经了解了jBPM,就会发现

  • the configuration mechanism remains unchanged
  • 配置结构保持不变
  • the API is the same or very similar to the existing one
  • API与现有的一样或者非常类似
  • testing BPMN2 process still can be done with regular Java testing frameworks
  • BPMN2流程测试也可以使用标准的java测试框架
  • the database schema remains unchanged
  • 数据库表结构保持不变

    So in general, our main goal is to keep everything that was good about jBPM, and enhance it with a standards based process language.

 

 

   所以总体来说,我们主要目标是保持所有在jBPM优势,并使用一个标准的流程语言来加强它们。

3.3. JPDL vs BPMN 2.0(JPDL vs BPMN 2.0)

    One of the first questions that might, rightfully, come to mind is why BPMN2 is being implemented while there is jPDL. Both are languages have as goal to define executable business processes. From a high-level technical point of view, both languages are equivalent. The main distinction is that BPMN2 is as vendor-neutral as you can have with standards, while JPDL has always been tied to jBPM (although some might argue that a vendor lock-in for an open-source process language such as JPDL is less a lock-in than with closed-source products).

 

    首先映入脑海第一个问题是为什么已经有了jPDL还要实现BPMN2。它们两个语言的目标都是定义可执行的业务流程。从高层次来看,两个语言是等效的。主要的区别是BPMN2是“厂商中立”的,你可以使用标准, jPDL则是绑定在jBPM上的(虽然会有一些争论绑定在开源语言厂商比如jPDL和绑定在闭源产品)。

 

     Within jBPM, both language implementations are built on top of the jBPM Process Virtual Machine (PVM). This means that both languages share a common foundation (persistence, transactions, configuration, but also basic process constructs, etc.). As a result, optimizations to the core of jBPM often benefits both languages. Leveraging the PVM, the BPMN2 implementation is built upon a foundation that has already proven itself in the past and has a large end-user community.

 

    在jBPM中,两个语言实现都是建立在jBPM流程虚拟机(PVM)上的。这就意味着两个语言需要共享通用功能 (持久化、事务、配置和基本流程结构等等)。结果就是,对jBPM核心的优化就会对两个语言都有益。依靠PVMBPMN2实现就是建立在已经在过去证明了它自己,并拥有了很大的最终用户社区的基础上。

 

    When evaluating the languages and comparing them which each other however, following points must be taken into consideration:

 

   当对它们进行评估和比较的时候,下面几点必须纳入考虑:

  • BPMN2 is based on a standard accepted by the BPM industry.
  • BPMN2 是基于被 BPM 工业接受的一个标准。
  • BPMN2 is implementation-unaware. The downside of this is that integrating with Java technology will always be easier with JPDL. So, from a Java developer's perspective JPDL is simpler and feels more natural (some of the 'layers' of BPEL/WSDL are in BPMN as well).
  • BPMN2 是与实现无关的。而 jPDL 则是与 java 技术绑定的。因此,从 java 开发者的角度来看 jPDL 更简单,感觉更自然( 一些 BPEL/WSDL 的 “ 层次 ” 也在 BPMN 中 )。
  • A focus of JPDL is XML readability. BPMN2 processes will still be readable to a certain level, but tooling or a more detailed knowledge of the spec will definitely be required to achieve the same level of productivity.
  • jPDL 的一个目标是 XML 可读。 BPMN2 流程在一定程度上也是可读的,为了达到和 jPDL 同等级的生产力需要借助一些工具和更多规范的细节。
  • Java developers who are super-fast in JPDL since they know the JPDL language by heart, will find the use of tools sometimes bothersome and the language itself overly complicated.
  • java 开发者可以很快学会 jPDL ,因为他们很了解 jPDL 语言,会发现使用工具有时候很麻烦,语言本身也过于复杂了。
  • BPMN2 contains a large set of constructs described in the specification. However, the "binding" of interfaces to code is left open in the spec (comparable with XPDL), even if WDSL is often considered the default. This means that a process portability can be lost when porting the process to an engine that doesn't support the same binding mechanism. Calling Java classes for example is already going to be such a jBPM specific binding.
  • BPMN2 包含一个很大的描述结构的集合。然而,对接口代码的绑定在规范中是开放的(与 XPDL 相比),即使 WSDL 通常会被默认使用。这意味着流程的可移植性丧失了,当我们把流程移植到一个引擎上,而这个引擎不支持同样的绑定机制。 比如,调用 java 类通常是 jBPM 的默认实现的绑定方式。

    It is natural to the political level of BPMN2 specification process to go rather slow. JPDL on the other hand will be able to incorporate changes faster, integrate with new technologies when they are released and evolve generally at a quicker pace compared to BPMN2. Of course, since both are built on top of the same PVM, it is only logical that additions to JPDL can be ported to BPMN2 as an extension without much hassle.

 

    显然,因为政治原因,BPMN2规范发展的会比较慢。jPDL就可以快速变化,和新技术进行集成,当他们发布的时候, BPMN2相比可以加快步伐进行演化。 当然,因为两个都建立在同一个PVM上,jPDL中的逻辑也可以一直到BPMN2上,作为一个扩展,不会出现很多麻烦。

3.4. Bpmn 2.0 execution(Bpmn 2.0 执行)

    The BPMN2 specification defines a very rich language for modeling and executing business processes. However, this also means that it is quite hard to get an overview of what's possible with BPMN2. To simplify this situation, we've decided to categorize the BPMN2 constructs into three 'levels'. The separation itself is primarily based on the book 'BPMN method and Style' by Bruce Silver (http://www.bpmnstyle.com/), the training material of Dr. Jim Arlow (http://www.slideshare.net/jimarlow/introductiontobpmn005), 'How much BPMN do you need' (http://www.bpm-research.com/2008/03/03/how-much-bpmn-do-you-need/), and also our own experience.

 

    BPMN2为建模和业务流程执行定义了非常丰富的细节。然而,这也就意味着我们很难总览BPMN2究竟长什么样。为了简化这种情况,我们决定把BPMN2结构划分为三个等级。这样的划分原因是基于Bruce Silver写的 'BPMN method and Style'这本书(http://www.bpmnstyle.com/)Dr. Jim Arlow的培训资料( http://www.slideshare.net/jimarlow/introductiontobpmn005)'How much BPMN do you need'( http://www.bpm-research.com/2008/03/03/how-much-bpmn-do-you-need/),和我们自己的经验。

 

    We define three categories of BPMN2 constructs:

 

   我们定义的三个BPMN2结构分类层级:

  • Basic : constructs in this category are straight-forward and easy to grasp. Constructs in this category can be used to model simple business processes.
  • 基本 这个分类的结构很直接 并且容易了解。这个分类的结构可以用来为简单的业务流程建模。
  • Advanced : contains more powerful or expressive constructs, but this comes with higher modeling and execution semantics learning curve. The majority of business processes are implementable with constructs from this and the previous category.
  • 高级 包含更强大或更复杂的结构,这些都提高了建模和执行语义的学习曲线。大多数业务流程都可以在该级别和之前的级别上来实现。
  • Complex : constructs in this category are used in specific and/or rare cases, or their semantics are difficult to understand.
  • 复杂 这个分类的结构用来实现罕见的情况,它们的语法难以理解。

3.5. Configuration(配置)

    Enabling BPMN 2.0 in your application is extremely simple: just add the following line to thejbpm.cfg.xml file.

 

   在你的应用中使用BPMN 2.0是很简单的,只要把下面一行加入到jbpm.cfg.xml文件。

 

<import resource="jbpm.bpmn.cfg.xml" />

  

    This import will enable BPMN 2.0 process deployment by installing a BPMN 2.0 deployer in the Process Engine. Do note that a Process Engine can cope with both JPDL and BPMN 2.0 processes. This means that in your application, some processes can be JPDL and others can be BPMN 2.0.

   通过该配置就会把BPMN 2.0发布器安装到流程引擎中。需要注意的是流程引擎此时可以同时执行jPDLBPMN 2.0流程。这意味着在你的应用里,一些流程可能是jPDL,其他的可能是BPMN 2.0

   Process definitions are distinguished by the process engine based on the extension of the definition file. For BPMN 2.0, use the *.bpmn.xml extension (where JPDL is having the *.jpdl.xml extension).

   流程引擎是根据定义文件的后缀来区分流程定义的。 对于BPMN 2.0,使用*.bpmn.xml作为后缀 ,而jPDL则使用*.jpdl.xml作为后缀。

3.6. Examples(示例)

   The examples that are shipped with the distribution also contain examples for every construct that is discussed in the following sections. Look for example BPMN 2.0 processes and test cases in theorg.jbpm.examples.bpmn.* package .

   发布中包含的例子也包含了下面章节中讨论的每个结构的实例。BPMN 2.0的流程示例和测试用例,在org.jbpm.examples.bpmn.*下。

 

    See the userguide, chapter 2 (Installation), for a walktough on how to import the examples. Look for the section 'Importing the Examples'.

   参考用户指南的第二章(安装)研究一下如何导入示例。查看章节'导入示例'

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值