activiti(组件)

activiti是jBPM的创建者Tom baeyens离开JBoss之后的另立山头之作,目前此开源项目由Alfresco和Apache基金会共同支持。其框架及代码也是在jBPM4的基础之上,进行开发的,但是完全脱离jBPM4成为一个对立的BPM项目(不清楚Tom baeyens与JBoss之间产生了什么样的恩怨);
activiti的开发团队相比与jBPM强大了许多,目前竟然有23位核心开发者 [1]。当然这也是由于activiti规划的功能所致:包括核心引擎、web的流程设计器、协作工具Activiti Cycle、Activiti Probe、Activiti Explorer、与Spring的集成、与Mule的集成等。其协作工具Activiti Cycle提供了BPM协作开发的软件工具支持,是非常有特色的一个功能。
10.3.1.1 activiti组件介绍
图10.3.1.1-1 activiti组件图
如上图所示,activiti项目由三种类型的组件组成,分别是:专用工具(Dedicated Tools)、存储内容(Stored Content)、协作工具(Collaboration Tool)。
专用工具(Dedicated Tools)组件
此类组件,包括(内容管理)Alfresco、建模器(Activiti Modeler)、设计器(Activiti Designer(Eclipse plugin))、管理及监控(Activiti probe)、任务管理(Activiti Explorer)五个工具组件。
n Alfresco—为Alfresco公司的企业级内容管理产品
Alfresco 是Alfresco公司的内容管理产品的名称(同时也是公司名称),它是一个开源的、企业级的内容管理系统,功能包括:文档管理、协作、记录管理、知识库管理、Web内容管理等功能。被infoWorld评为了2010年的最佳开源应用程序。现在Alfresco公司作为Activiti项目的主要赞助厂商,自然会将其内容管理产品与Activiti进行深入的集成。实际上流程中的所有资源,包括流程本身,都是被内容管理产品所管理的资源。
n Activiti Modeler—建模器
Activiti建模器是基于开源的Signavio流程编辑器的一个定制版本,它提供了对BPMN2.0图形化规范的支持,建模后的流程以文件格式进行存储。在后端提供导入导出BPMN2.0流程定义文件的功能。此建模器的优点是,它是基于web浏览器的。其设计器界面如下图所示:
     
图10.3.1.1-2 Activit Modeler建模器界面
n Activiti Designer—Eclipse插件形式的设计器
此组件提供了Eclipse的插件,可以使得开发人员,在Eclipse开发工具中,进行流程的建模。建模功能上与Signavio相同。
n Activiti probe—管理及监控组件
它是一个对流程引擎运行期实例提供管理及监控的web应用程序。包含部署的管理、流程定义的管理、数据库表的检视、日志查看、事务的平均执行时间、失败多次的工作等功能。其示意界面如下:
         
图10.3.1.1-3 数据库表的检视
如上图所示,这是一个对于数据库表记录的查看界面,基本上是一个demo级别的,没有多大意义。
n Activiti Explorer—任务管理组件
它是一个web的应用程序,提供任务管理功能和对基于历史数据的统计分析及流程实例的检查而产生的报表功能。如下图所示:
         
图10.3.1.1-4 activiti Explorer界面效果图
存储内容(Stored Content)组件
此类组件包含:文档仓库(Documents Repository)、模型仓库(Model Repository)、SVN仓库(SVN Repository)、MVN仓库(MVN Repository)、Activiti引擎(Activiti Engine)。其中文档仓库、SVN仓库、MVN仓库三个组件是为协作工具(Activiti Cycle)提供底层的支撑。例如BPM开发过程中的文档,采用Alfresco文档仓库进行存储,采用SVN进行版本管理,采用MVN(maven)作为项目构建和管理工具。模型仓库(Model Repository)实际上就是Activiti建模器的后端存储组件,它负责对Activiti建模器建模后的流程定义文件进行存储管理。
Activiti Engine—Activiti BPM的核心引擎
Activiti引擎,基于流程虚拟机(PVM)进行构建(关于PVM的详细介绍,参见8.1.2章节),是Activiti项目的绝对的底层核心组件。它可以直接运行原生的BPMN2.0规范格式的流程定义。是业内目前第一个,也是唯一的一个从建模到执行,完全按照BPMN2.0规范进行实现的BPM项目。这也是笔者选择它作为BPM开源产品介绍的最直接原因。
Activiti引擎具备三个重要的特性。首先就是事件监听器。这个特性允许引擎可以直接执行一个动作(即为流程图中的某个特定的事件,定义的一段java代码或脚本)。这意味着,开发人员可以利用特定的技术细节来装饰完善一个流程,而这个细节不会在流程图中显示。此特性提高了业务人员与技术人员之间的协作,而业务人员不用面对流程图中的技术问题。
第二个特性是定制活动。Activiti引擎实现了对BPMN的支持,有很多可直接使用的活动类型。但是业务人员仍旧有可能需要一些与这些已定义的活动不匹配的活动类型。在这种情景下,开发人员可以采用java代码编写一个定制的活动,用来实现业务人员所描述的复杂行为。这个功能应该说是非常好用的功能,因为对于商业产品来讲,活动类型都是定义好的。是一个封装的黑盒子,是不可能提供定制功能的。
          另一个创新的特性是,它提供了对某些冗长的BPMN规范进行实现的快捷方式或捷径。例如采用比BPMN的XML格式更紧凑的XML描述格式。而这种XML格式不是Activiti的专有扩展,它可以被转换为有效的BPMN XML。所以说,Activiti的流程定义,并不是百分百的BPMN的XML格式。
协作工具(Collaboration Tool)组件
Activiti Cycle完全是一种新类型的BPM组件。它是一个用来促进业务人员、开发人员和IT操作人员协作的web应用程序。目前,大多数的BPM产品都关注于怎样将业务人员创建的分析流程模型转换为可执行流程模型。实际的情况就是,这些BPM产品为业务人员和开发人员提供独立的工具,但是对于他们之间的协作并没有提供很好的支持。 在现实的场景中,业务文档有业务人员所持有,而软件程序由开发团队所管理,被部署的软件应用则被IT管理人员所管理。三者之间不能很好的协作。我们可以想象这样一个场景,业务经理用文档来维护需求和visio格式的流程图,开发人员管理可执行的流程和大量的java源文件,IT维护人员管理部署在tomcat中的.war文件和存储在Activiti数据库中的流程。
图10.3.1.1-5 activiti cycle协作组件逻辑示意图
如上图所示,Activiti Cycle通过BusinessLink来支持业务人员、开发团队、与IT维护人员之间的协作。具体的协作界面如下:
 
图10.3.1.1-6 Activiti Cycle协作界面
如上图所示,Activiti Cycle首先分为左右两个区域,左侧区域是所有交付物的浏览器,这些交付物存储在仓库中。包括:
n 一个网络驱动器,例如Vision图,图片,word文档,excel图表等;
n 一个业务模型仓库,例如Signavio建模器中包含的BPMN流程模型;
n 一个SVN仓库,包含java源文件和可执行的BPMN流程;
n 一个包含业务文档的maven仓库;
n Activiti实例,包含一系列被部署的各个版本的交付组件;
右侧区域,则分为上中下三个部分,分别是左侧选中交付物的具体明细(包含查看、设定所有人、增加关联链接)、工作区域和讨论区。现在业务分析员、开发人员和维护人员,可以在为他们自己提供的区域内,利用相关工具进行工作,而Activiti Cycle则负责组织他们的协作。
Activiti的目标:
非侵入
Activiti Cycle还是让人们按照现有的工作方式工作。它可以被逐渐引入而无需大的前期投资。
上下文
参与到整个工作中的员工可以立即获得充分的上下文,而无需别人来通过无休止的邮件来解释任何事情。这个额外的上下文信息可以使得员工成为一个知识型的员工,并且让他们更有效率的工作。
治理
由于从业务文档经过分析到生产部署的所有交付产物都被链接在一起,因此获得了一个非常高层面的可追溯性。哪个流程被部署在哪个系统上?谁参与到了那个流程的需求上?等等。
社会化BPM
围绕着公司的原始目标创建沟通协作社区。社会化BPM确保每个人都保持连接。构建社区需要每个人都自愿的暴露自己的价值。在组织内部,Activiti Cycle的社会化方面,鼓励新员工分享他们的知识,从而更有效的工作。
现实的BPM
传统的解决方案关注于业务人员的需求,并且通过自动化的转换来尽量避免对IT产生依赖。作为替代者,Activiti Cycle通过一种适应他们实际工作的方式来促进业务人员与IT的协作。
更广阔的覆盖面

Activiti Cycle是一个概要工具。它并不提供针对于所有交付产物的细节操作。它关注于总体场景。这意味着业务相关内容,软件开发和软件部署的所有方面都需要被考虑到。

你可能感兴趣的:(jbpm,eclipse插件,文档,工具,引擎,项目构建)