申请了一个圈子,JavaEye的管理员回复,说独立发表的文章不足15篇,不予以申请;唉,这亏的是Robbin的地盘,好感加尊重,要不非得牢骚两句。
言归正传吧,今天是第一篇blog,说说新的workflow Engine吧 -- Activiti。这是Tom Baeyens离开JBoss之后自己继续开发的一款BPM Engine。他为了表示这是从jBPM的延续,可能今年11月份正式发布版本时将会直接使用5.0这个版本号。
因为工作的原因,被要求跟踪一下工作流的情况,正好赶上Activiti的Initiative,所以决定好好follow一下。小自我膨胀一下,花了大概两个礼拜的时间,注意,是整整两个礼拜,算上白天晚上的时间哦,大概看完了Activiti 60% -- 70% 的源码,一些知识跟大家分享一下,也希望自己提出建议的时候能听到JavaEyers的意见和指责,前进共勉。
今天先做个简单介绍,看完世界杯后接着写。
作为一个工作流引擎,WfMC(Workflow Management Coalition)有它自己标准的定义;但是做为一个User和Developer,知道标准固然好;更重要的,你必须知道你现在正在使用的这款产品(或者框架)的正确组件和典型特点。
Activiti从jBPM继承而来,固然有着和jBPM相似的结构和组件;但是从我跟踪Activiti的User和Developer论坛情况来看,说实话,一些使用英语的老外好像都没搞清楚到底Activiti中目前有哪些组件,各个组件到底用来做什么。说实话,我觉得这个很重要,因为一个框架的整体蓝图,就好像打仗中的整体战略,会对你灵活而自主的执行战术产生很大的影响;知道了战略,你会在战术时知道Why or Why not,从而自信和自主的决定什么时候按照标准(框架提供的API/SPI)执行,什么时候该将在外而军令有所不受(需要Hack源代码,以扩展包的形式自定义你的特殊需求)。
对于Activiti,它目前具有4个关键组件(截止到最新的5.0-alpha3版本):
1.流程引擎。
作用:运行时核心组件,解析流程定义文件(.bpmn20.xml文件),将其转化为纯粹的内存Java对象,以供运行时各个功能使用;
表现为:jar包(activiti-engine-5.0.alpha3.jar);
使用:部署在应用服务器/Servlet容器的运行时类路径中(如:Tomcat的lib中)
级别:最核心组件,建议所有扩展都另行打包,并且在你确实了解Activiti源码后进行
2.管理员控制台(activiti-probe)
作用:供系统管理员了解Activiti底层数据库目前的情况。
表现为:war包(activiti-probe.war)
使用:部署在应用服务器/Servlet容器的web应用目录下(如:Tomcat的webapps)
级别:应用层的核心组件。但目前功能十分有限,如:不能监控流程执行的动态情况,无法知道流程目前执行到哪个节点,无法人为调整/干预流程的执行状态等;无法提供统计信息,或者基于统计,给出流程可优化信息等。无日志。
3.用户控制台(activiti-explorer)
作用:供普通用户真正使用Activiti流程引擎功能
表现为:war包(activiti-explorer.war)
使用:部署在应用服务器/Servlet容器的web应用目录下(如:Tomcat的webapps)
级别:应用层核心组件。供用户可以开始、申请以及完成一个个工作流具体内容。目前支持流程中嵌入表单,表单中含有参数等。即:用户可以在此管理自己的To-Do List内容
4.业务流程建模工具(activiti-modeler)
作用:供业务人员通过图形界面建立需要的业务流程模型。
表现为:war包(activiti-modeler.war)
使用:部署在应用服务器/Servlet容器的web应用目录下(如:Tomcat的webapps)
级别:应用层重要组件。可以供企业内所谓的业务分析员通过图形界面快速直接的建立自己的业务流程模型,以便后用。目前该组件由Signavio独立提供。
直观效果:
http://activiti.org/screenshots.html#images/screenshots/activiti-modeler.png
最后,将来会有一个组件叫做 activiti-cycle,是用来给所谓的技术人员、业务人员和终端用户协同工作用的。具体的截图可以看看这里:
http://activiti.org/cycle.html
说了这么多了,为什么会先明确组件的划分;如果用过Activiti或者jBPM的同学一定明白,这些BPM引擎的标准使用方法是通过自带的Ant脚本构建完成,如果你需要在你的特殊环境里灵活使用的话,一是建议好好看看Ant的那个构建脚本;二是你总得知道构建脚本中每个Target是干什么的吧。如果想知道脚本每步在干什么,你就得知道这些BPM Suite都含有哪些组件,那么才会明白脚本中每一步是把哪个组件拿来做什么部署或者使用了;这样你才会根据你的需求,大胆而自信的裁剪你自己需要的ant构建脚本,成功测试后来满足一下你那小小的虚荣心和成就感。 哈哈
自我感觉:初次使用时最困惑的其实不是各个组件都表现为什么形式,被放在了运行时环境的什么地方,起了哪些作用;
而是引擎相关文件(jPDL or Bpmn20)是如何被各个组件所感知的?!流程定义文件的部署到底干了什么,是一个怎样的过程,独立么?
呵呵,下次接着谈自己的感觉吧。
分享到:
相关推荐
Activiti Modeler是一款基于Java开发的流程建模工具,它主要与Activiti BPMN(业务流程管理Notation)引擎紧密配合,为用户提供了一个直观、易用的界面来设计、模拟和部署业务流程。Activiti是Alfresco公司推出的一...
Activiti 是一个开源的工作流程引擎,它主要用于自动化业务流程。这个源码包是 Activiti 5.22.0 版本,包含了整个框架的源代码,为开发者提供了深入理解 Activiti 内部机制的机会。以下是一些关于 Activiti 的核心...
Activiti 适配达梦数据库教程 activiti 是一个开源的 Workflow 和 BPM system,它提供了强大的工作流引擎和业务流程管理功能。然而,activiti 默认支持的数据库只有 MySQL、 PostgreSQL、Oracle 等少数几种,而达梦...
Activiti 是一个开源的工作流和业务流程管理(BPM)引擎,它被广泛用于构建企业级的应用程序。在5.22.0版本中,Activiti 提供了一系列增强的功能和改进,以支持更加灵活和高效的流程自动化。 1. **工作流引擎**: ...
Activiti Designer是基于Eclipse的一款流程建模工具,主要用于设计和管理Activiti工作流引擎的业务流程。在 Activiti Designer 5.18 版本中,它为开发者提供了直观的图形化界面,使得创建、修改和理解业务流程模型变...
Activiti 是一个开源的工作流和业务自动化引擎,它在Java平台上运行,并且与Spring框架高度集成。这个"activiti5.22jar包"是Activiti 5.22版本的打包文件,其中包含了所有运行Activiti所需的核心库和依赖。在本文中...
Activiti 是一个开源的工作流和业务流程管理(BPM)平台,它被广泛用于企业级应用中,以实现流程自动化和提升工作效率。标题中的 "activiti-5.22.0zip下载" 指的是Activiti的一个特定版本——5.22.0的压缩包文件,...
《Spring-Activiti在Ruoyi框架中的应用与二次开发》 在当今的企业级应用开发中,工作流管理系统已经成为不可或缺的一部分。Spring-Activiti作为一款强大的工作流引擎,结合Spring Boot框架,为开发者提供了便捷、...
Jeecg集成activiti.docx Jeecg集成activiti是一个关于如何将activiti集成到Jeecg平台上的指南。下面是从给定的文件中提取的相关知识点: 1. activiti项目结构:activiti项目是一个Maven项目,包含了数据库文件,...
activiti 5.22 explorer的war包
Activiti 是一个开源的工作流程和业务自动化引擎,它在企业级应用中被广泛使用来管理业务流程。这个压缩包 "activiti-explorer.war" 是 Activiti 的一个版本,具体是 5.22 版本。WAR 文件是 Web 应用程序档案(Web ...
activiti-6.0.0.zip 工作流官网包 (如果没有积分可以直接Q我:499384808,免费分享) 1. database里放着各种数据库的建表、删表、升级语句数据库包括db2、h2、hsql、mssql、mysql、oracle、postgres 2. libs 相关...
Activiti Designer 5.18 是一款基于Eclipse的图形化工作流建模工具,它为企业提供了一种直观的方式来设计、部署和管理业务流程。这款离线安装插件的出现,使得用户无需在线连接即可在Eclipse环境中进行Activiti工作...
Activiti 是一个强大的开源业务流程管理系统(BPM)和工作流解决方案,专为开发人员和系统管理员设计。在深入探讨Activiti7.0源码之前,我们先来了解一下BPM和Activiti的基本概念。 业务流程管理(Business Process...
Activiti 是一个开源的工作流和业务自动化引擎,它在企业级应用中被广泛使用,用于构建灵活、可扩展的业务流程。在这个特定的版本——activiti-5.22.0,我们关注的是一个用于流程设计的官方工具,即 activiti-...
【 activiti-explorer-eclipse项目 】是一个基于Activiti工作流引擎的Eclipse插件项目。 Activiti 是一个开源的业务流程管理系统(BPMN 2.0)和工作流引擎,它允许开发者轻松地在应用程序中集成业务流程管理功能。这...
Activiti 是一个开源的工作流程引擎,它为业务流程自动化提供了强大的支持。在6.0版本中,Activiti 提供了更多的特性和改进,使得开发者能够更高效地构建和管理业务流程。这个“activiti6.0jar包”是该版本的核心...
Activiti 是一个开源的工作流引擎,它被广泛用于企业级应用程序中来管理业务流程。这个教程包涵盖了如何使用Activiti工作流以及如何在Eclipse环境中安装Activiti Designer插件。 一、Activiti工作流简介 Activiti是...
Activiti是一款强大的、开源的工作流程管理系统,它提供了高度可配置的业务流程自动化解决方案。在本PPT中,我们将深入探讨Activiti的核心概念、API以及如何在实际项目中应用这些API。 首先,让我们理解什么是工作...
Activiti 是一个开源的工作流程引擎,它主要用于设计、部署和执行业务流程。在标题和描述中提到的"activiti6.0.0源码",指的是该版本的Activiti引擎的原始代码,允许开发者深入理解其内部机制,并进行定制化开发或者...