jBPM的介绍

一、简介

jBPM(Java Business Process Management)是一个开源的业务流程管理框架,用于管理和执行业务流程。它提供了一个可视化的流程设计器,可以创建、模拟和部署业务流程,并提供了灵活的流程执行引擎。

jBPM可以帮助开发人员和业务分析师更好地管理和优化业务流程。它提供了以下功能和作用:

  1. 流程建模:jBPM提供了一个可视化的流程设计器,使开发人员和业务分析师能够创建和修改业务流程。它支持多种流程模型,如BPMN(Business Process Model and Notation)和规则流程。

  2. 流程执行:jBPM的流程引擎可以执行已定义的业务流程。它包括流程实例管理、任务分配、流程状态管理等功能。开发人员可以使用jBPM的API来管理和控制流程的执行。

  3. 任务管理:jBPM提供了任务管理功能,可以创建、分配和跟踪任务。它支持任务的优先级、截止日期、委派和转派等功能,以便更好地管理任务的执行。

  4. 规则引擎:jBPM集成了Drools规则引擎,可以将规则与业务流程相结合。开发人员可以使用规则引擎来定义和执行业务规则,从而实现更灵活的业务流程。

  5. 监控和优化:jBPM提供了监控和优化业务流程的功能。它可以记录流程的执行情况、性能指标和错误信息,并提供可视化的报表和分析工具,以便用户能够优化业务流程的效率和质量.

jBPM和flowable都是工作流引擎,还有Activiti、Bonita 、Airflow等工作流引擎

二、应用部署

应用程序部署有两种方式:单机模式(standalone mode)和开发模式(development mode)。单机模式没有额外的配置和依赖要求,直接本地启动即可(可借助于 spring boot+tomcat,或者使用 jboss 服务器),而开发模式需要 Business Central 作为 jBPM Controller,开发模式意味着允许用户在不需要重启服务的情况下,进行处理业务资产项目,并动态地将更改部署到业务应用程序。同时,它提供了对业务自动化功能(流程实例、任务、作业等)的完整监视环境。

启动方式一:单机模式(standalone mode)
参考 csdn 代码示例中 spring-boot-jbpm 子工程,csdn地址:https://download.csdn.net/download/zhuqiuhui/87452118

启动方式二:开发模式(development mode, 或托管模式 managed mode)
开发模式需要启动 jBPM-server,这里重点讲示例应用程序模板 business-application 怎么结合 Business Central 使用。

  • Step 1:下载并启动 jBPM-server,地址:jBPM - Open Source Business Automation Toolkit - jBPM Business Automation Toolkit

jbpm-server/bin/standalone.sh     (Unix / Linux)
jbpm-server/bin/standalone.bat    (Windows)
  • Step 2:访问并登录 Business Central(以账号示例:wbadmin/wbadmin),地址:http://localhost:8080/business-central

  • Step 3:以开发模式启动应用程序模板 business-application 工程中 business-application-service 模块

    ./launch-dev.bat clean install 

  • Step 4:在 Business Central 系统上新增 project 并导入资产工程 business-application-jar

  • (1)进行到 business-application-jar 目录下,进行 git 工程初始化,命令如下:

  • git init
    git add -A
    git commit -m "my business assets project"

    (2)在 Business Central 系统上导入 project

Step 5:将资产文件deploy 导入到 business-application-service Dev 服务中

Step 6:在 Business Central 系统中 Manage 模块进行流程实例运行,并在 Track 模块中进行查看报告

三、jBPM 整体架构

图来自 jBPM 官方文档,

Execution
Core Engine:是 jBPM 整个项目的核心,支撑着整个工作流的顺利执行,可作为项目的一部分嵌入到项目中,也可被当作一个单独的服务进行独立部署,然后通过基于网页的方式或者远程调用接口的方式进行通讯连接。

Human Task Service:用于有人工参与的流程任务中

Persistence:流程实例运行时,可以持久化流程状态和历史日志信息

CDI、REST 和 JMS:应用程序在运行时连接 Core Engine 可通过 Java API、CDI 服务、REST API 或者 JMS API 方式

Modeling & Deployment
Process Designer:设计者可基于 web 环境设计和模拟业务流程

Data Modeler:允许非技术人员创建、查看和修改流程中的数据模型

Rule Authoring:允许在工作流中指定或者创建不同的业务规则组合,比如 decision tables、 guided rules等

Form Modeler:允许创建、生成或者编辑流程中的表格

Guvnor Repository:所有的资产通过 Guvnor 仓库存储和管理,同时可以进行版本控制、构建和部署

Eclipse Developer Tools:基于Eclipse的开发者工具是Eclipse IDE的一种拓展,目的是为了让开发者能够通过简单的拖拽的方式构建自己的工作流,测试自己的工作流和debug自己的工作流等

Runtime Management & Reporting
基于 web 的管理控制台允许使用者对流程进行操作,比如开始或者运行某个流程实例,也可以查看流程实例中的的任务列表、监控状态和监控报告。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/563438.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Go语言快速上手(三)】数组, 切片与映射

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:Go语言专栏⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习更多Go语言知识   🔝🔝 GO快速上手 1. 前言2. 数组详解3. 切…

中栈内联(THE MID-STACK INLINER)优化

THE MID-STACK INLINER 直译为“中栈内联”,属于一种更为新进的内联策略。内联(InLining)的工作原理是将对一个函数的调用展开为函数本身的代码,通过内联减少函数调用的开销,也给编译器带来进一步优化代码的机会。那么…

AI大模型探索之路-实战篇3:基于私有模型GLM-企业级知识库开发实战

文章目录 前言概述一、本地知识库核心架构回顾(RAG)1. 知识数据向量化2. 知识数据检索返回 二、大模型选择1. 模型选择标准2. ChatGLM3-6B 三、Embedding模型选择四、改造后的技术选型五、资源准备1. 安装git-lfs2. 下载GLM模型3. 下载Embeding模型 六、…

Android Studio超级详细讲解下载、安装配置教程(建议收藏)

博主介绍:✌专注于前后端、机器学习、人工智能应用领域开发的优质创作者、秉着互联网精神开源贡献精神,答疑解惑、坚持优质作品共享。本人是掘金/腾讯云/阿里云等平台优质作者、擅长前后端项目开发和毕业项目实战,深受全网粉丝喜爱与支持✌有…

c语言利用控制台实现贪吃蛇

使用控制台实现贪吃蛇需要的技能加点: 控制台设置(包含于stdlib.h): 定义命令行窗口高/宽: system("mode con cols100 lines30"); system() 函数是一个C标准库函数,它允许程序执行操作系统命令…

深度学习Day-14:RNN实现心脏病预测

🍨 本文为:[🔗365天深度学习训练营] 中的学习记录博客 🍖 原作者:[K同学啊 | 接辅导、项目定制] 要求: 本地读取并加载数据;了解循环神经网络RNN的构建过程;测试集accuracy达到87%…

Linux--Linux常用命令

Linux常用命令 前言Linux命令格式命令讲解1、ls:查看当前目录下所有的内容语法:ls[-al][dir]2、pwd: 查看当前所在目录3、cd : 切换目录4、touch[文件名] : 如果文件不存在新建文件5、mkdir: 创建目录6、rm: 删除指定文件7、rmdir: 删除空目录8、cat:用于显示文件内容9、m…

MySQL8.0.36-社区版:二进制日志(4)

什么是二进制日志(binlog):记录了所有的ddl和dml语句,但是不包括查询类的 二进制日志的作用:1.灾难恢复,2.mysql主从复制 查看二进制日志状态 show variables like %log_bin%; 在mysql8中默认是开启的 | l…

Docker - Compose

原文地址,使用效果更佳! Docker - Compose | CoderMast编程桅杆Docker - Compose 在部署应用时,常常使用到不止一个容器,那么在部署容器的时候就需要一个一个进行部署,这样的部署过程也相对来说比较繁琐复杂&#xff…

使用 OpenCV 测量物体尺寸

使用 OpenCV 测量物体尺寸 你是否曾经遇到过这样的问题:想要知道计算器的精确尺寸,但手头又没有专业的测量工具?别担心,今天我们就来教大家一个简单又实用的方法,通过一张A4纸就能估算出计算器的宽度和高度&#xff0c…

Python 全栈安全(三)

原文:annas-archive.org/md5/712ab41a4ed6036d0e8214d788514d6b 译者:飞龙 协议:CC BY-NC-SA 4.0 第十一章:OAuth 2 本章内容 注册 OAuth 客户端 请求对受保护资源的授权 授权而不暴露身份验证凭据 访问受保护的资源 OAuth …

指针的使用以及运算、二级指针、造成野指针的原因以及解决方法、指针和数组相互使用

第七章,指针的学习 目录 前言 一、指针的概念 二、指针的类型 三、野指针 四、指针的运算 五、指针和数组的关系以及使用 六、指针数组 七、二级指针 总结 前言 这章主要学习的是指针方面的知识,这节只是简单了解一下指针,并不会深…

判断水仙花数(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int n 0;int b 0;int s 0;int g 0;int m 0;//提示用户&#xff1b;printf("请输入…

java-Spring-bean的生命周期

定义 程序中的每个对象都有生命周期&#xff0c;对象的创建、初始化、应用、销毁的整个过程称之为对象的生命周期&#xff1b; 在对象创建以后需要初始化&#xff0c;应用完成以后需要销毁时执行的一些方法&#xff0c;可以称之为是生命周期方法&#xff1b; 在spring中&…

Azure AD统一认证及用户数据同步开发指导

本文主要目的为&#xff1a;指导开发者进行自有服务与Azure AD统一认证的集成&#xff0c;以及阐述云端用户数据同步的实现方案。本文除了会介绍必要的概念、原理、流程外&#xff0c;还会包含Azure门户设置说明&#xff0c;以及使用Fiddler进行全流程的实操验证&#xff0c;同…

学习笔记-数据结构-线性表(2024-04-17)

设计一个算法实现在单链表中删除值相同的多余节点的算法。 设计思想&#xff1a;双指针 变量说明&#xff1a; head - 参数变量&#xff0c;代表链表的头节点。在调用DelSameNum函数时&#xff0c;需要传递链表的头节点的地址给这个参数&#xff0c;从而允许函数对链表进行操作…

21.leetcode---用栈列实现队列(Java版)

题目链接: https://leetcode.cn/problems/implement-queue-using-stacks/ 题解: 代码: 测试:

C# WPF布局

布局&#xff1a; 1、Grid: <Window x:Class"WpfApp2.MainWindow" xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d"http://schemas.microsoft.com…

SpringBoot---------Lombook

Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具&#xff0c;通过使用对应的注解&#xff0c;可以在编译源码的时候生成对应的方法&#xff0c;也就是简化咱们之前pojo&#xff0c;实体类里面臃肿的get/set有参无参。 首先查看一…

LiveNVR监控流媒体Onvif/RTSP常见问题-如何对比监控摄像头延时视频流延时支持webrtc视频流播放超低延时播放

LiveNVR如何对比监控摄像头延时视频流延时支持webrtc视频流播放超低延时播放 1、问题场景2、如何对比延时&#xff1f;3、WEBRTC延时对比4、LiveNVR支持WEBRTC输出5、RTSP/HLS/FLV/RTMP拉流Onvif流媒体服务 1、问题场景 需要低延时的视频流监控播放&#xff0c;之前可以用rtmp…