网路冷眼@BlogJava

熙熙攘攘一闲人 以冷静的眼光观察技术
posts - 88, comments - 193, trackbacks - 0, articles - 28
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Activiti Components(Activiti组件)

Posted on 2010-12-14 20:56 网路冷眼@BlogJava 阅读(2715) 评论(3)  编辑  收藏 所属分类: BPM

Activiti Components(Activiti组件)

Overview(概述)

The Activiti Engine will have a clear focus on being light weight and easy to use for Java developers. In that respect, Activiti will continue on the successful path that we started at jBPM. The big difference between Activiti and jBPM will not be in the engine, but in the more sophisticated tools that we'll be able to build on top.

Activiti引擎将清晰地将关注点锁定在一个轻量级框架和针对Java开发者容易使用上面。Activiti将一如既往地继续沿着我们在jBPM开创的成功道路上前进。Activiti和就jBPM之间最大的差异不在于引擎,而在于我们能够在此基础建立的更多的尖端工具上面。

Here we explain in a bit more detail how the different Activiti components combine to form a complete solution for BPM in the full context of software development. The blue components are part of the Activiti scope. The gray components are out of scope.

在此,我们详细地介绍在软件开发的全部上下文里面,为BPM构建一个完整的解决方案,如何将不同的Activiti组件组合在一起。蓝色组件是Activiti范围的一部分;灰色组件在范围之外。

clip_image002

Activiti Engine

Activiti引擎

To see concrete how this works concrete with processes and API, check out our 10 minute tutorial

为了具体了解流程及其API是如何工作的,请参见10分钟教程( 10 minute tutorial)。

Features

特性

This is the heart of the Activiti project.  It's a Java process engine that runs BPMN 2 processes natively.  It will have the following key properties:

它是Activiti项目的心脏。它是运行内置BPMN 2标准流程的Java流程引擎。它将具有下列关键属性:

· Allows user updates to be combined with process updates in a single transaction

· 允许以单个事务的方式用户更新和流程更新一道升级。

· Runs on any Java environment like Spring, JTA, standalone with any form of transaction demarcation.

· 以事务划界的任何形式,运行诸如Spring,JTA,单机等方式等任何Java环境。

· Easy to get up and running with the setup utility

· 容易采用配置辅助工具启动并运行

· Built to support the cloud scalability from the ground up

· 支持从头开始一直到云的伸缩性

· Very simple to add new custom activity types and complete dedicated process languages

· 轻而易举地添加新的定制的活动类型和完整的专有的流程语言

· Rock solid

· 坚如磐石

· Extremely fast

· 快若闪电

· Transactional timers

· 事务式定时器

· Asynchronous continuations

· 异步连续

· Hidden event listeners for decoupling software technical details from business level diagram

· 为了软件技术细节和业务水平的流程图进行解耦,隐藏事件监听器。

· Ability to test process executions in isolation in a plain unit test

· 具备在一个普通的单元测试里以独立方式测试执行的能力。

A couple of features deserve extra highlighting because they improve the collaboration between non technical business users and technical developers.

因为几个特性提升了非技术性的业务用户和技术性的开发人员之间的协作,所以它们值得额外的大书特书,

First of all event listeners.  That features allows to execute an out-of-the-box action, a piece of custom Java code or a script upon certain events in the diagram.  This means that developers can decorate a process with extra technical details that don't show up in the diagram.  This improves the collaboration between business people and technical people as the business people will not be confronted with technical aspects in the diagram.

首先是事件监听器。那个特性允许执行一个开箱即用的动作,一段定制的Java代码,或者在流程图里面的某个事件的一段脚本。这意味着开发者能用额外的技术细节装饰一个流程,这些细节没有在流程图上显示。这提升了业务人员和技术人员之间的协作,因为业务人员将不会面临流程图中技术方面。

Secondly custom activities.  Activiti Engine comes with BPMN support and a lot of activity types out-of-the-box.  But non technical business people might still create an extensive description with a certain activity that doesn't match any of the activity types.  In that case, the developer has 2 options.  One option is to iterate back to the business person and propose a different model based on existing activity types.  Or --and this is unique for Activiti--, the developer can write a custom activity in Java code that implements the complex behaviour described by the business person.  In that case the diagram will remain as given by the business person, simplifying communication between business and IT.

第二,定制活动。Activiti引擎伴有对BPMN的支持和许多开箱即用的活动类型。但是,非技术的业务人员也许仍将采用一个不能匹配任何活动类型的某一活动建立一个扩展的描述。在那种情况,开发者有两个选择:其一是将模型打回给业务人员,并提出一个基于现有活动类型的不同模型。或者/并且这是Activiti的独一无二的功能—开发者能够用Java代码实现由业务人员描述的复杂的行为来编写一个定制活动。在那种情况下,业务人员给定的流程图将保留下来,从而简化了业务人员和IT人员的之间的通信。

Another innovation that you can expect from us are BPMN shortcuts.  When we previous developed jPDL, we got great feedback from the community about the compactness and readability of that language.   BPMN is very readable, but in some areas a bit too verbose.  But we also realize that standards support is vital for open source so we are very committed to BPMN 2.0.  For those specific areas where BPMN 2.0 is too verbose, we'll introduce shortcuts.   For example a simple activiti attribute might be introduced that is equivalent for a more verbose BPMN 2.0 XML section.  Note that these are not proprietary extensions as it is always translatable to valid (but longer) BPMN XML.  It's only a mechanism to allow for more compact XML descriptions.  And we'll be collecting the feedback form the community and feed that information back into the specification.

你能够指望我们得到的另一个创新是BPMN捷径。当我们先前开发jPDL时,我们从社区得到了大量有关那种语言简洁和可读性的反馈。尽管BPMN具有良好的可读性,但是在某种程度上它有点罗嗦。但是我们也认识到作为开源项目对标准的知识是至关重要的,所以我们严格依从BPMN 2.0规范。对于那些BPMN 2.0太罗嗦的特殊区域,我们将引入捷径。例如,也许引入一个等价于更罗嗦的BPMN 2.0 XML部分的简单的activiti属性。注意,这些不是一个专有扩展,因为它总是能够翻译为有效(但是更长的)BPMN XML。这只是一个允许更加紧凑的XML描述。我们将从社区收集反馈,并将那些信息回馈给规范。

The Process Virtual Machine

流程虚拟机

The Process Virtual Machine is the architectural base layer of the Activiti Engine. It allows for easy pluggability of activity types, features and complete process languages. The core Activiti team is dedicated to building out the native BPMN 2.0 process language. BPMN 2.0 will be the predominant language used on the business side of BPM. And hence we want to simplify the bridge between business modeling and making those processes executable.

流程虚拟机是Activiti引擎的架构基础层。它允许对活动类型,特性和完整的流程语言进行自如地插拔。Activiti核心团队专心致力于构建内置的BPMN 2.0流程语言。BPMN 2.0 将作为BPM业务端上使用的占统治地位的语言。由此我们想简化业务建模与让那些流程可执行之间的桥梁。

But there are many developer oriented process languages that are very easy to build on the Process Virtual Machine. One candidate language for which we call out to the community to help us is jPDL 4. We will support and encourage the community to build out jPDL 4 and other domain specific process languages. There are numerous other languages that could be build on top of the Process Virtual Machine. We even envision companies building their own variants of domain specific process languages.

但是,的确存在许多面向流程语言的开发者。他们能在流程虚拟机上构建这些语言。我们呼吁社区帮助我们建立的一个候选语言是据jPDL 4。我们将支持和鼓励社区扩充jPDL 4和其它领域相关的流程语言。还有许多可以在进程的虚拟机之上构建其他语言。我们甚至设想公司构建他们自己的领域相关的流程语言变体。

Activiti Explorer

Activiti导航器

Activiti Explorer is a web application that provides access to the Activiti Engine runtime for all users of the system.   It includes task management, viewing reports based on statistical history data and process instance inspection.

Activiti导航器是一个为系统所有用户提供访问Activiti引擎运行时功能的Web应用程序。它包括任务管理,查看基于统计历史数据和流程实例的报告。

Task management

任务管理

Primary use cases:

主要用例:

· View personal task list

· 查看个人任务列表

· View task list for which the current user is a candidate

· 查看当前用户哪个是候选的任务列表

· Create a new task (unrelated to a process)

· 建立一个新任务(与流程无关)

· Complete a task by submitting data in a task form

· 以任务表单方式通过提交数据完成任务

· Reassign a task to a different user

· 将任务重新分配给不同用户

· See which other people are involved in the process related to this task

· 查看哪些人员参与到与这个任务相关的流程

· Create subtasks and assign them to people

· 建立子任务并将任务分配给人员

Manager use cases:

管理员用例:

· View task list of subordinates

· 查看从属的任务列表

Process owner use cases:

流程所有者用例:

· Inspect process instance details related to a task

· 检查与任务相关的流程实例细节

Reports

报告

All events related to process instance executions are stored in a process history database.  Since the steps/activities in the original process definitions are meaningful to business people, the statistics on these activities can contain very interesting information for business people.  For example, the average time spend in each activity or the average deal size per country. 

所有与流程实例执行相关的事件均保存在流程历史数据库里面。因为在原始的流程定义里的步骤/活动对业务人员意义重大,所以这些统计为业务人员能够包含非常有趣的信息。例如,花费在每个活动上的平均时间,或者每个国家的平均交易量。

Process instance inspection

流程实例检查

Process owners and admins should be able to inspect the runtime details of process instances.

流程所有者和管理员应当能检查流程实例的运行时细节。

Activiti Probe

Activiti Probe is a web application that provides administration and monitoring capabilities to keep an Activiti Engine instance up and running.  This is application is aimed at system administrators and operators whom are responsible for keeping systems and infrastructure up and running.

Activiti探针(Activiti Probe)是一个提供管理和监视能力的web 应用程序,它能保持Activiti引擎实例启动并运行。它是一个旨在为负责保持系统和基础设施运营的系统管理员和操作者提供服务的应用程序。

Probe use cases:

探针(Probe)用例:

· Show if the Activiti Engine up and running or is there a problem somewhere?

· 显示Activiti引擎是否启动并运行,或者某处存在问题?

· Management of the deployments

· 管理部署

· View deployment resources

· 查看部署资源

· Management of the process definitions

· 管理流程定义

· Inspect the database tables

· 检查数据库表

· View the activiti logs

· 查看Activiti日志

· How long does an average transaction take

· 平均事务占用多长时间

· Are there jobs that have failed multiple times?  What is the cause?  Group jobs with similar failures.  Retry job.

· 是否存在一个失败了多次的作业?原因是什么?组作业是否有相似的失败。重做作业。

Activiti Modeler

Activiti建模器

The Activiti Modeler is a customized version of the open source Signavio web based process editor. It can be used to author BPMN 2.0 compliant processes graphically. The process files are stored by the server on a central file system. That file system acts as the model repository.

Activiti建模器是一个开源的基于Signavio web的流程编辑器的定制版本。它能用来以图形化方式编辑BPMN 2.0兼容的流程。通过中央文件系统上的服务器来保存流程文件。那个文件系统扮演模型仓库的角色。

clip_image004

Signavio primary's purpose is to author BPMN 2.0 process diagrams in a browser.  But the scope of the project goes beyond just process modeling.  They have a stencil set pluggability mechanism that allows them to support various kinds of diagram types like for example organization charts.  Signavio normally stores the JSON formatted diagrams in the backend and then it provides export and import to specific file types like BPMN 2.  But the backend they they have created specially for us is based on a simple file system and includes the export-import to the specific file format.  That way the BPMN 2 processes are stored on the file system in the BPMN 2.0 file format.

Signavio主要目的是在一个浏览器里创作BPMN 2.0流程图。但是这个项目远远超越了流程建模的范围。它们具有一个印字器式的可插拔机制,允许它们支持诸如示例组织结构图似的各种各样的图形。Signavio通常在后端存储为JSON格式的图形。然后提供输出和输出到像BPMN 2.0格式的特殊文件类型的能力。但是它们为我们已经建立的后端基于一个简单的文件系统,并包含了输出/输入到特殊文件格式的能力。以BPMN 2.0文件格式在那个文件系统上保存BPMN 2流程。

Activiti Cycle

Activiti Cycle

Activiti Cycle is completely new type of BPM component. In short, it's a web based application that facilitates the collaboration between business people, developers and IT operational people. It's based on the notion of the Process Cycle Layer. Since it's unlike any other BPM component in the market. We've devoted a complete article to provide a detailed picture of The Process Cycle Layer.

Activiti是一个全新的BPM组件。简而言之,它是一个促进业务人员,开发人员和IT运营人员之间协作的基于web的应用程序。它基于流程周期层(Process Cycle Layer的概念。因为不像在市场上的任何其它BPM组件,所以我们致力于提供一个完整的文章—流程周期层详细蓝图(a detailed picture of The Process Cycle Layer)。


评论

# re: Activiti Components(Activiti组件)  回复  更多评论   

2010-12-14 22:46 by jackerxff
可能jBPM5加入Drools是个好的归宿,统一了流程引擎和规则引擎

# re: Activiti Components(Activiti组件)  回复  更多评论   

2010-12-14 23:03 by 网路冷眼@BlogJava
@jackerxff
也许吧!不过Drools越搞越大,太过重量级啦!另外,在JBoss家里,jBPM和Drools的关系也是暧昧不清。

# re: Activiti Components(Activiti组件)  回复  更多评论   

2010-12-15 03:31 by 安全
要冷静

只有注册用户登录后才能发表评论。


网站导航: