activiti开发手册(1)activiti简介

1. Activiti开源框架部分

1.1 Activiti简介

Activiti是一个开源的工作流引擎,它实现了BPMN 2.0规范,可以发布设计好的流程定义,并通过api进行流程调度。
Activiti 作为一个遵从 Apache 许可的工作流和业务流程管理开源平台,其核心是基于 Java 的超快速、超稳定的 BPMN2.0 流程引擎,强调流程服务的可嵌入性和可扩展性,同时更加强调面向业务人员。
Activiti 流程引擎重点关注在系统开发的易用性和轻量性上。每一项 BPM 业务功能 Activiti 流程引擎都以服务的形式提供给开发人员。通过使用这些服务,开发人员能够构建出功能丰富、轻便且高效的 BPM 应用程序。

1.2 Activiti关键对象

1.2.1 Deployment
流程部署对象,部署一个流程时创建,主要对应数据表ACT_RE_DEPLOYMENT。
1.2.2 ProcessDefinitions
流程定义,部署成功后自动创建,流程模型部署一次生成一条流程定义,主要对应数据表ACT_RE_PROCDEF。
1.2.3 ProcessInstances
流程实例,启动流程时创建,是根据一次(一条)业务创建的,流程驱动的入口,两者之间是一对一的关系。流程引擎会创建一条数据到ACT_RU_EXECUTION表,同时也会根据history的级别决定是否查询相同的历史数据到ACT_HI_PROCINST表。
1.2.4 Task
任务,Task和Execution是一对一关系。Task可以是任何类型的Task实现,可以是用户任务(UserTask)、Java服务(JavaServiceTask)等。在实际流程运行中面向对象不同,用户任务(UserTask)需要有人为参与完成(complete),Java服务需要由系统自动执行(execution)。Task主要对应数据表ACT_RU_TASK和ACT_HI_TASKINST。
1.2.5 Execution
执行计划,即一个流程实例(ProcessInstance)具体要执行的过程对象。流程实例和流程执行中的所有节点都是一条Execution,如UserTask、ServiceTask等。

1.3 Activiti服务任务

1.3.1 RepositoryService
Activiti 中每一个不同版本的业务流程的定义都需要使用一些定义文件,部署文件和支持数据 ( 例如 BPMN2.0 XML 文件,表单定义文件,流程定义图像文件等 ),这些文件都存储在 Activiti 内建的 Repository 中。Repository Service 提供了对 repository 的存取服务,流程仓库service,用于管理流程仓库,例如部署,删除,读取流程资源。
1.3.2 RunTimeService
在Activiti中,每个流程定义被启动一次之后,都会生成相应的流程对象实例。RunTimeService提供启动流程,查询流程实例,设置获取流程实例变量等功能。此外还提供对流程部署,流程定义和流程实例存取的服务。
1.3.3 TaskService
在activiti业务流程定义的每一个执行节点被称为一个task,对流程中的数据存取,状态变更等操作都需要在task中完成。TaskService提供了对用户task和form的相关操作。提供了运行时任务的查询、领取、完成、删除以及变量设置等功能。
1.3.4 IdentityService
Activiti内置了用户以及用户组的概念以及功能,必须使用用户或者用户组才能获取到相应的task。IdentityService提供了对用户和用户组的管理功能。
1.3.5 HistoryService
主要用于获取正在运行或者已经运行结束的流程实例信息,与RunTimeService获取的流程信息不同,历史信息包含已经持久储存化的信息,并已经针对查询做出优化。
1.3.6 FormService
Activiti中的流程和状态Task均可关联相关的业务数据,通过FormService可以存取启动和完成任务所需的表单数据并根据需要来渲染表单。
1.3.7 ManagementService
ManagementService提供对流程引擎的管理和维护的功能,这些功能不在工作流驱动的应用程序中使用,主要运用activiti的日常维护。

1.4 初始数据库

表分类表名含义
通用配置ACT_GE_BYTEARRAY通用的流程定义和流程资源
ACT_GE_PROPERTY系统相关属性
流程历史记录ACT_HI_ACTINST历史的流程实例
ACT_HI_ATTACHMENT历史的流程附件
ACT_HI_COMMENT历史的说明性信息
ACT_HI_DETAIL历史的流程运行中的细节信息
ACT_HI_IDENTITYLINK历史的流程运行过程中用户关系
ACT_HI_PROCINST历史的流程实例
ACT_HI_TASKINST历史的任务实例
ACT_HI_VARINST历史的流程运行中的变量信息
用户用户组表ACT_ID_GROUP身份信息-组信息
ACT_ID_INFO用户扩展信息
ACT_ID_MEMBERSHIP身份信息-用户和组关系的中间表
ACT_ID_USER身份信息-用户信息
流程定义表ACT_RE_DEPLOYMENT部署单元信息
ACT_RE_MODEL模型信息
ACT_RE_PROCDEF已部署的流程定义
运行实例表ACT_RU_EVENT_SUBSCR运行时事件
ACT_RU_EXECUTION运行时流程执行实例
ACT_RU_IDENTITYLINK运行时用户关系信息
ACT_RU_JOB运行时作业
ACT_RU_TASK运行时任务
ACT_RU_VARIABLE运行时变量表
其他ACT_EVT_LOG事件日志表
ACT_PROCDEF_INFO流程定义扩展表
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,Activity是Android系统中的四大组件之一,可以用于显示View。Activity是一个与用记交互的系统模块,几乎所有的Activity都是和用户进行交互的,但是如果这样就能说Activity主要是用来显示View就不太正确了。 在深入了解Activity之前,我们先要知道一下MVC设计模式,在JAVAEE 中MVC设计模式已经很经典了,而且分的也比较清晰了,但是在Android中,好多人对MVC在Android开发中的应用不是很清楚,下面我就先来介绍一下MVC在Android开发中的应用: M(Model 模型):Model是应用程序的主体部分,所有的业务逻辑都应该写在这里,在Android中Model层与JavaEE中的变化不大,如:对数据库的操作,对网络等的操作都放在该层(但不是说它们都放在同一个包中,可以分开放,但它们统称为Model层)。 V(View 视图):是应用程序中负责生成用户界面的部分,也是在整个MVC架构中用户唯一可以看到的一层,接收用户输入,显示处理结果;在Android应用中一般采用XML文件里德界面的描述,使用的时候可以非常方便的引入,当然也可以使用JavaScript+Html等方式作为View。 C(Controller控制层)android的控制层的重任就要落在众多的activity的肩上了,所以在这里就要建议大家不要在activity中写太多的代码,尽量能过activity交割Model业务逻辑层处理。 好了,在介绍过Android应用开发中的MVC架构后,我们就可以很明确的知道,在Android中Activity主要是用来做控制的,它可以选择要显示的View,也可以从View中获取数据然后把数据传给Model层进行处理,最后再来显示出处理结果。 介绍过Activity的主要作用后,那么我们就要详细说一下Activity了。 Activity生命周期图 Activity 的生命周期是被以下的函数控制的。 public class Activity extends ApplicationContext { protected void onCreate(Bundle icicle); protected void onStart(); protected void onRestart(); protected void onResume(); protected void onFreeze(Bundle outIcicle); protected void onPause(); protected void onStop(); protected void onDestroy(); } onCreate(Bundle) 函数是你进行初始化的地方,这个也是执行 setContentView(View)函数的地方,setContentView(View)函数可以传入一个由XML 编制的UI界面,可以使UI和具体实现完全分离。 onPause()函数是处理用户离开当前 Activity 的地方。更重要的是,任何在当前 Activity中的任何改变都要在这个函数中提交。 Activity有四种状态: 活动状态,当Activity处于Stack(栈)顶时,就是手机当前的现实屏幕,这是 Activity就 处于activity或者运行状态。 运行但是失去焦点,当Activity还处于运行状态时,但是屏幕是有另外一个Activity 处于文档处于焦点状态,当前的Activity就处于pause。 停止,当Activity被另一个Activity完全覆盖的时候,就被停止了,其实就是虽然在 运行,但是用户却看不见。 结束,当Activity处于pause或者stop时,系统可以结束 Activity,回收资源,这 是Activity就是处于结束状态了。 处于结束状态的是Activity,如果要使用户可见,只要重启才可以。 Activity的响应时间 当前Activity所在的线程为主线程,它的响应时间为5秒,如果在当前运行的Activity中进行耗时的操作且响应时间起过5秒,那么程序就会报ANR错误。所以,这也是不建议在Activity中写太多复杂代码的原因之一。 当然,有些代码只能写在Activity中,不然就运行不了(它们不是生命周期方法),比如你想要获得android系统或者硬件一的些信息,就必须在Activity中写出来,如果单独写一个工具类获得不了。
Activiti_V5.21_用户手册_中文版. Table of Contents 1. 简介 1.1. 协议 1.2. 下载 1.3. 源码 1.4. 必要的软件 1.4.1. JDK 6+ 1.4.2. Eclipse Indigo 和 Juno 1.5. 反馈问题 1.6. 实验性功能 1.7. 内部实现类 2. 开始 2.1. 一分钟入门 2.2. Activiti安装 2.3. Activiti数据库配置 2.4. 引入Activiti jar与依赖 2.5. 下一步 3. 配置 Configuration 3.1. 创建ProcessEngine Creating a ProcessEngine 3.2. ProcessEngineConfiguration bean 3.3. 数据库配置 Database configuration 3.4. JNDI数据源配置 JNDI Datasource Configuration 3.4.1. 使用 Usage 3.4.2. 配置 Configuration 3.5. 支持的数据库 Supported databases 3.6. 创建数据库 Creating the database tables 3.7. 数据库名说明 Database table names explained 3.8. 数据库升级 Database upgrade 3.9. 作业执行器与异步执行器(从5.17.0版本起) Job Executor and Async Executor (since version 5.17.0) 3.10. 启用作业执行器 Job executor activation 3.11. 启用异步执行器 Async executor activation 3.12. 配置邮件服务器 Mail server configuration 3.13. 配置历史 History configuration 3.14. 配置在达式与脚本中暴露的bean Exposing configuration beans in expressions and scripts 3.15. 配置部署缓存 Deployment cache configuration 3.16. 日志 Logging 3.17. 映射诊断上下文 Mapped Diagnostic Contexts 3.18. 事件处理器 Event handlers 3.18.1. 事件监听器实现 Event listener implementation 3.18.2. 配置与安装 Configuration and setup 3.18.3. 在运行时增加监听器 Adding listeners at runtime 3.18.4. 为流程定义增加监听器 Adding listeners to process definitions 执行用户定义逻辑的监听器 Listeners executing user­defined logic 抛出BPMN事件的监听器 Listeners throwing BPMN events 关于流程定义监听器的说明 Notes on listeners on a process­definition 3.18.5. 通过API分发事件 Dispatching events through API 3.18.6. 支持的事件类型 Supported event types 3.18.7. 附加信息 Additional remarks ……
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值