官网地址: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