首页 > 其他分享 >Activity7学习入门(六)

Activity7学习入门(六)

时间:2022-12-13 23:26:57浏览次数:48  
标签:Activity7 java 入门 activiti process Activiti 学习 api model

官网地址:https://activiti.gitbook.io/activiti-7-developers-guide/components/activiti-cloud-application

Activiti Cloud Application

Activiti云应用是由Activiti云核心构建块集组成的。这些构建模块是:
Activiti Cloud Runtime Bundle:为业务资产(如业务流程、任务、决策表、决策树等)提供执行运行时。
Activiti Cloud Connectors:提供与外部系统的双向连接。
Activiti Cloud Audit Service:提供审计跟踪功能,从或多个运行时收集信息(事件)。
Activiti Cloud Query Service: 提供对一个或多个运行时生成的信息的读访问。
Activiti Cloud Notification Service:与查询服务一起,通知服务支持关于应用程序状态的订阅和推送通知的核心构建块。

这些核心构建块将公开REST和基于消息的端点,以支持特定于领域的应用程序与它们交互。核心构建块之间的通信是使用Spring Cloud Stream来使用命令操作或发出表示内部流程引擎操作的事件来实现的异步通信(默认情况下使用RabbitMQ绑定器)。

Activiti Cloud Runtime Bundle

运行时包是流程引擎的云版本。如果您曾经将Activiti(流程引擎)作为服务公开,那么您就是在定义一个Runtime Bundle。
但是关于Runtime bundle你还需要知道一些额外的事情:
.Activiti Cloud上下文中的Runtime bundle表示流程引擎的无状态实例,该实例负责执行一组不可变的流程定义。
.您不能将新的流程定义部署到运行时Bundle中,相反,如果您想更新流程定义,您可以创建运行时Bundle的一个新的不可变版本.
.运行时包公开了一个(同步)REST和(异步)基于消息的API来与它们交互。
.运行时bundle使用内部ActivitiEventListener接口的一组实现发出事件(以“触发并忘记”的方式)(监听内部Process Engine事件,并将它们转换为包含事务内部生成的所有事件的消息。)
.默认情况下,在执行服务任务(BPMN)时,运行时包将发出集成事件来执行系统到系统的集成。Activiti云连接器将接收这些集成事件,以执行系统到系统的集成.

 

 REST APIs (HAL)

Runtime Bundles 使用以下用户(actiti_user角色)端点公开一个REST API:

ProcessDefinitionController.java
/v1/process-definitions
/v1/process-definitions/{id}/meta
/v1/process-instances

还有以下admin (actiti_admin角色)端点:

/admin/v1/process-definitions

/admin/v1/process-instances

/admin/v1/tasks

(Async) Command Based Interactions((异步)基于命令的交互)

在新的Java Core API层中,命令被定义为有效负载。这些负载包含执行流程引擎内部实现的不同操作的信息,如果执行生成了数据,它们将返回Result。
当消息端点执行这些命令时,结果将被发送到不同的队列。
这些命令由CommandEndpoint处理,它将每个命令的操作委托给更具体的executor
命令 Payloads (implements Payload)
Process Related Payloads:
StartProcessPayload:
SuspendProcessPayload:
ResumeProcessPayload:
SignalPayload:
SetProcessVariablesPayload:
DeleteProcessPayload:
RemoveProcessVariablesPayload:
ClaimTaskPayload:
ReleaseTaskPayload:
CompleteTaskPayload:

DeleteTaskPayload:
UpdateTaskPayload:

Message Enabled(消息)

通过设计,运行时Bundle可以使用和产生(异步)消息。这是通过使用Spring Cloud Streams来使用命令操作或发出表示内部流程引擎操作的事件来实现的。
注意,根据设计,运行时Bundle并没有内置WebSockets/Push Notifications。
事件由流程引擎使用消息队列发出,因此外部组件可以对它们作出反应。所有这些事件都实现了org. activity .services.core.model.events. processengineevent接口。
与BPMN活动相关的事件可以在Java Core API activiti-api-process-model模块中找到。

BPMNActivityStartedEvent:https://github.com/AlfrescoArchive/activiti-api/blob/develop/activiti-api-process-model/src/main/java/org/activiti/api/process/model/events/BPMNActivityStartedEvent.java
BPMNActivityCompletedEvent:https://github.com/AlfrescoArchive/activiti-api/blob/develop/activiti-api-process-model/src/main/java/org/activiti/api/process/model/events/BPMNActivityCompletedEvent.java
BPMNActivityCancelledEvent:https://github.com/AlfrescoArchive/activiti-api/blob/develop/activiti-api-process-model/src/main/java/org/activiti/api/process/model/events/BPMNActivityCancelledEvent.java
SequenceFlowEvent:https://github.com/AlfrescoArchive/activiti-api/blob/develop/activiti-api-process-model/src/main/java/org/activiti/api/process/model/events/SequenceFlowEvent.java

我们为变量相关的操作共享了事件,可以在这里找到(activiti-api-model-shared)

VariableCreatedEvent:https://github.com/AlfrescoArchive/activiti-api/blob/develop/activiti-api-model-shared/src/main/java/org/activiti/api/model/shared/event/VariableCreatedEvent.java
VariableUpdatedEvent:https://github.com/AlfrescoArchive/activiti-api/blob/develop/activiti-api-model-shared/src/main/java/org/activiti/api/model/shared/event/VariableUpdatedEvent.java
VariableDeletedEvent:https://github.com/AlfrescoArchive/activiti-api/blob/develop/activiti-api-model-shared/src/main/java/org/activiti/api/model/shared/event/VariableDeletedEvent.java

可以在这里找到与Process Runtime相关的事件(activiti-api-process-runtime)

ProcessStartedEvent
ProcessCompletedEvent
ProcessCancelledEvent
ProcessResumedEvent
ProcessSuspendedEvent
ProcessCreatedEvent

与任务相关的事件可以在这里找到(activiti-api-task-runtime)
TaskCreatedEvent
TaskAssignedEvent
TaskCompletedEvent
TaskSuspendedEvent
TaskActivatedEvent
TaskCandidateGroupAddedEvent
TaskCandidateGroupRemovedEvent
TaskCandidateUserAddedEvent
TaskCandidateUserRemovedEvent
还没补充的类
ActivityCompensateEvent
ProcessCompletedErrorEvent
Runtime Bundle Data Types(运行时包数据类型)
运行时包工作并公开以下基于新的Java Core API模型包的数据类型:
.activiti-api-model-shared
.activiti-api-process-model
.activiti-api-task-model
以及云扩展类型:
.activiti-cloud-api-model-shared
.activiti-cloud-api-process-model
.activiti-cloud-api-task-model
Requirements(需求)
运行时bundle需要以下基础设施服务列表:

.SSO / IDM service for handling Security and User/Groups resolutions(SSO / IDM服务用于处理安全性和用户/组解析)
.Message Broker to emit and consume messages(消息代理来发出和使用消息)
.Database to store the state of the process instances and tasks(数据库来存储流程实例和任务的状态)

Security
除了通过外部授权系统提供的端点级授权(在属性文件中配置Keycloak的情况下)之外,
运行时包中的单个流程定义(以及隐式流程实例)可以应用ACLs 。它们通过属性文件应用,格式如下:

 

标签:Activity7,java,入门,activiti,process,Activiti,学习,api,model
From: https://www.cnblogs.com/wk-missQ1/p/16980942.html

相关文章

  • 前端入门教程:CSS标准盒模型和怪异盒模型区别
    理解盒模型:CSS3中的盒模型有以下两种:标准盒模型、IE盒子模型(怪异盒模型),盒模型是由4个部分组成,由内向外分别是content(下图蓝色部分)、padding、border、margin盒模型有5......
  • 统计学习中老金夹带的私货
    我的神!!UCBerkeleyCS285Lecture14讲latentmodel讲得很好!https://www.youtube.com/watch?v=JHrlF10v2Og&list=PL_iWQOsE6TfURIIhCrlt-wj9ByIVpbfGc&index=1......
  • Glibc---__gen_tempname函数原理分析学习
    引言__gen_tempname是Glibc库stdio.h头文件中生成临时文件名的函数,包含了相关临时文件名的生成逻辑,我们来一起分析一下临时文件名的生成过程。__gen_tempname函数参数说明ch......
  • html学习笔记五 安利网页案例
    将整个页面分为header、nav、banner、list、footer五大部分,下图1~3为网页的html结构部分,图4~7为网页的CSS样式表部分,图8和图9为网页实际效果......
  • Activity7入门学习(三)
    官网地址:https://activiti.gitbook.io/activiti-7-developers-guide/componentsComponentsActivitiCloud提供了一套基本的构建模块,可以分为3个单独的组:.ActivitiClou......
  • Activity7入门学习(四)
    官网地址:https://activiti.gitbook.io/activiti-7-developers-guide/components/spring-cloud从Activiti框架的角度来看,我们依赖于SpringBoot/SpringCloud/SpringC......
  • RabbitMQ学习
    第1章消息队列1.MQ的相关概念1.1什么是MQ​ MQ(messagequeue),消息队列,本质是个队列,遵循先入先出原则,只不过队列中存放的内容是message而已,还是一种跨进程的通信机......
  • 数据结构学习笔记 第一章
    一、为什么要写博客?前段时间听过一个在学术界卓有成就的学长谈他的学习、科研经验,他讲到“很多学生往往只重视学习或者科研的成果,却忽视了学习的过程······对于......
  • Activity7入门学习(二)
    官网地址:https://activiti.gitbook.io/activiti-7-developers-guide/getting-started/getting-started-activiti-coreGettingStarted-ActivitiCoreGettingStartedw......
  • HEVD 学习笔记
    HEVD学习笔记1.HEVD概述+环境搭建​ HEVD作为一个优秀的内核漏洞靶场受到大家的喜欢,这里选择x86的驱动来进行黑盒测试学习内核漏洞,作为学习笔记记录下来​ 从以下......