开源业务流程:jBPM

一、什么是 jBPM?

jBPM 是一个灵活的业务流程管理 (BPM) 套件。它不仅仅是一个流程引擎,而是一个集成了多种功能的平台,旨在帮助企业建模、自动化和监控业务流程。jBPM 遵循业界标准,特别是 BPMN 2.0(业务流程模型和标记)用于流程建模,以及 DMN(决策模型和标记)用于决策管理。

1、核心组件和特性:

  1. BPMN 2.0 引擎: 这是 jBPM 的核心,负责执行业务流程定义。它是一个高性能、可扩展的引擎,能够处理复杂的工作流场景,包括并行执行、条件分支、事件处理等。
  2. KIE Workbench (或 Business Central): 这是一个基于Web的集成开发环境和管理控制台。业务分析师和开发者可以使用它来:
    • 图形化地建模 BPMN 流程和 DMN 决策表。
    • 管理项目、版本控制(通常与 Git 集成)。
    • 部署流程定义。
    • 启动和管理人力任务。
    • 监控流程实例的执行状态、查看历史数据、生成报告。
  3. 人力任务服务 (Human Task Service): jBPM 深度集成了对人力任务的支持,允许将需要人工参与的步骤建模到流程中。系统可以创建任务,分配给用户或组,用户可以通过任务列表界面完成任务,并驱动流程继续。
  4. 规则引擎集成 (Drools): jBPM 与 Red Hat 的另一个知名开源项目 Drools 规则引擎紧密集成。这使得可以在业务流程中轻松地执行业务规则和决策逻辑,实现更智能的流程自动化。
  5. 事件处理: 支持基于事件的流程触发和处理,可以集成外部事件源。
  6. 持久化: 支持将流程状态、任务数据等持久化到数据库中,保证流程的可靠执行。
  7. API 和集成: 提供丰富的 Java API 和 REST API,方便与其他系统进行集成或二次开发。
  8. 多种部署模式: jBPM 可以作为独立的服务器运行,也可以嵌入到 Java 应用程序中(如 Spring Boot 应用),非常灵活。

2、起源与关系:

jBPM 最早由 JBoss 开发,后来 JBoss 被 Red Hat 收购,jBPM 成为 Red Hat 开源中间件家族的一部分。它是 Red Hat Business Automation 产品(包括 RHPAM)的基础。这意味着社区版的 jBPM 经过了企业级场景的考验,并且 Red Hat 的商业支持和企业版功能是基于这个开源核心构建的。

3、从用户角度看 jBPM:

  • 优势:
    • 功能全面: 它是一个完整的BPM套件,不只是一个引擎,提供了建模、执行、监控、任务管理、规则集成等一站式功能。
    • 标准兼容: 严格遵循 BPMN 2.0 和 DMN 标准,这意味着流程定义具有互操作性。
    • 企业级背景: 作为一个大型公司支持的开源项目,它在稳定性、可伸缩性和安全性方面通常表现良好,适合企业级应用。
    • 强大的规则集成: 如果你的业务流程需要复杂的决策逻辑,jBPM 与 Drools 的集成是一个显著优势。
  • 考虑因素:
    • 复杂性: 作为一个功能全面的套件,jBPM 的整体架构和配置可能比一些轻量级引擎更复杂,特别是对于初次接触的用户。KIE Workbench 功能强大但也可能显得庞大。
    • 资源消耗: KIE Workbench 或 standalone 服务器版本可能需要较多的系统资源。
    • 社区版与商业版: 尽管开源版功能全面,但企业级的专业支持、更完善的高可用方案、某些高级管理工具和性能优化等通常需要通过 Red Hat 的商业产品获得。

总结:

jBPM 是一个功能强大的、遵循标准的开源 BPM 套件,非常适合需要全面 BPM 功能、规则集成以及考虑未来可能需要企业级支持的场景。关于其停止更新的说法是不准确的,它仍然是一个活跃且被维护的开源项目。选择 jBPM 意味着获得一个成熟、稳定且功能丰富的平台,但也需要投入相应的学习和配置成本。如果想清楚了,社区版的目的就是为了让体验,而不是用于生产。

二、使用Docker安装jBPM

1、运行命令

docker run -p 8080:8080 -p 8001:8001 -d --name jbpm-server-full jboss/jbpm-server-full:latest

启动之后,默认的用户名和密码:

  • wbadmin/wbadmin
  • krisv/krisv
  • john/john
  • mary/mary
  • katy/katy
  • jack/jack
  • kieserver/kieserver1!

2、访问地址

  • Business Central - http://localhost:8080/business-central
  • KIE Server - http://localhost:8080/kie-server/services/rest/server
  • KIE Server Swagger docs - http://localhost:8080/kie-server/docs
  • jBPM case management - http://localhost:8080/jbpm-casemgmt

 3、Business Central

  • 设计用户可以创建项目和页面的视角
  • 部署用户可以管理执行服务器的视角
  • 管理用户可以控制流程和案例实例的视角
  • 跟踪用户可以访问分配的任务和报告的视角

4、安装发行版

如果要部署发行版,或者带有Demo的全功能版本,请一定要要先安装和配置好Java1.8(Java 8 SDK)和ANT 1.10.15,否则无法启动,特别是高版本的Java通常会导致失败。在下面目录可以看到,如果出现有.failed的文件就证明失败了,要安装正确Java和ANT,然后删除这个文件,重新部署。可参看此文档:jBPM Documentation

5、重要提示

jBPM 默认没有中文界面,不过可以通过修改其界面资源文件来支持中文显示,基本上有两种途径:

  • 修改 jBPM 界面资源文件:可以修改 jBPM 的前端页面,尤其是界面中的文本,替换成中文。这通常涉及到调整 jBPM 提供的资源文件,可能需要修改 HTML 模板或者是与后端交互的部分。

  • 创建中文语言包:如果熟悉 jBPM 的源代码,可以为其添加一个中文语言包。这通常包括对 jBPM 控制台中的各种文本进行翻译,确保用户界面在中文环境下显示正确。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA:使用 JMH 进行基准测试的技术指南

1、简述 在性能优化中,写高效代码离不开准确的基准测试。而 Java 的 JIT 编译器会对代码进行优化(如方法内联、死代码消除等),导致简单的测试方法可能得不到真实的性能数据。这时候,JMH(Java Microbenchmark Harness)就派上用场了。 JMH 是 Java 官方提供的基准测试框…

Thinkphp开发自适应职业学生证书查询系统职业资格等级会员证书管理网站

环境:php7.2mysql5.7think伪静态 1.上传压缩包到服务器解压 2.还原数据库 3.配置数据库信息application/database.php 4.后台:http://你的域名/abc.php 用户:admin 密码:123456 程序说明: 【修复版】Thinkphp5开发的自…

(二)毛子整洁架构(CQRS/Dapper/领域事件处理器/垂直切片)

文章目录 项目地址一、Application 层1.1 定义CQRS的接口以及其他服务1. Command2. IQuery查询3. 当前时间服务接口4. 邮件发送服务接口 1.2 ReserveBooking Command1. 处理传入的参数2. ReserveBookingCommandHandler3. BookingReservedDomainEvent 1.3 Query使用Sql查询1. 创…

详解Redis

一.Redis的基本概念 首先,什么是Redis? Redis(Remote Dictionary Server)是一个开源的、高性能的键值对内存数据库,常被用作缓存、消息队列、分布式锁等。 二.Redis的基本数据类型 1. 字符串(String&am…

智慧医院的可视化变革:可视化工具助力数字化转型

在科技飞速发展的当下,智慧医院已从概念逐步落地,深刻改变着传统医疗模式。它借助互联网、数字孪生及人工智能等前沿技术,在医疗服务领域掀起革新,涵盖面向医务人员的“智慧医疗”、面向患者的“智慧服务”以及面向医院的“智慧管…

Ubuntu Linux系统配置账号无密码sudo

在Linux系统中,配置无密码sudo可以通过修改sudoers文件来实现。以下是具体的配置步骤 一、编辑sudoers文件 输入sudo visudo命令来编辑sudo的配置文件。visudo是一个专门用于编辑sudoers文件的命令,它会在保存前检查语法错误,从而防止可能的…

graphviz和dot绘制流程图

graphviz和dot绘制流程图 指令 1.写后端需求文档 2.用中文输出结果 3.必须详细全面 4.必须搭配相关流程图step1:下载graphviz,https://graphviz.org/download/ step2:安装,记得添加环境变量 step3:验证是否安装成功 dot --versio…

MongoDB常用操作示例

以下是基于 MongoDB Shell 的完整操作示例,覆盖数据库管理、集合操作、文档处理、聚合分析、索引管理等核心功能,并结合实际场景说明。所有示例均结合搜索结果中的技术要点整理而成。 一、连接与配置管理 1. 启动 MongoDB Shell 并连接实例 # 默认连接…

C++ 模板方法模式详解与实例

模板方法模式概念​ 模板方法模式(Template Method Pattern)属于行为型设计模式,其核心思想是在一个抽象类中定义一个算法的骨架,而将一些步骤延迟到子类中实现。这样可以使得子类在不改变算法结构的情况下,重新定义算法中的某些步骤。它通过继承机制,实现代码复用和行为…

MySQL基础关键_012_事务

目 录 一、概述 二、ACID 四大特性 三、MySQL 事务 四、事务隔离级别 1.说明 2.现象 (1)脏读 (2)不可重复读 (3)幻读 3.查看隔离级别 4.设置隔离级别 5.隔离级别 (1)初始…

Hutool中的Pair类详解

1. Pair类概述 Hutool工具库中的Pair类是一个简单的键值对数据结构,用于存储两个相关联的对象。它类似于Map的Entry,但更加轻量级,适用于需要临时存储两个相关联数据的场景。 2. Pair类的主要特点 简单轻量:不依赖复杂的数据结…

02-GBase 8s 事务型数据库 客户端工具dbaccess

dbaccess概述 数据库产品通常会提供一个命令行客户端工具。 数据库厂商 命令行客户端 Oracle sqlplus MySQL mysql Marladb mysql GBase 8s dbaccess Kingbase ES ksql DM8 disql dbaccess 是 GBase 8s 数…

手撕基于AMQP协议的简易消息队列-8(单元测试的编写)

在MQTest中编写模块的单元测试 在MQTest中编写makefile文件来编译客户端模块 all:Test_FileHelper Test_Exchange Test_Queue Test_Binding Test_Message Test_VirtualHost Test_Route Test_Consumer Test_Channel Test_Connection Test_VirtualHost:Test_VirtualHost.cpp ..…

Spark 之 metrics

peak memory.//sql/core/src/main/scala/org/apache/spark/sql/execution/aggregate/HashAggregateExec.scala: “peakMemory” -> SQLMetrics.createSizeMetric(sparkContext, “peak memory”), .//sql/core/src/main/scala/org/apache/spark/sql/execution/SortExec.scal…

HTTP/HTTPS协议(请求响应模型、状态码)

目录 HTTP/HTTPS协议简介 HTTP协议 HTTPS协议 请求 - 响应模型 HTTP请求 (二)HTTP响应 HTTPS协议与HTTP协议在请求 - 响应模型中的区别 HTTP/HTTPS协议简介 HTTP协议 定义 HTTP(HyperText Transfer Protocol)即超文本传输…

OpenHarmony 5.0 切换已连接过的wifi切换失败

目录 1.背景 2.流程分析 3.方案 1.背景 在OpenHarmony 5.0的设置中,输入密码进行wifi连接可以正常连接,然后多个已经连接过的wifi进行切换发现大概率切换失败 2.流程分析 wifi连接过程其实是先进行断开当前的wifi连接,然后再连接另一个wifi,如下: 虽然上述流程看起来没…

【Ollama】docker离线部署Ollama+deepseek

因为要做项目,实验室的服务器不联网,所以只能先打包一个基础的docker环境,然后再在实验室的服务器上进行解压和配置环境 参考:https://zhuanlan.zhihu.com/p/23377266873 1.打包基础的docker环境 这里最好用有cuda的&#xff0c…

如何使用极狐GitLab 软件包仓库功能托管 terraform?

极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 Terraform 模块库 (BASIC ALL) 基础设施仓库和 Terraform 模块仓库合并到单个 Terraform 模块仓库功能引入于极狐GitLab 15.1…

【QT】深入理解 Qt 中的对象树:机制、用途与最佳实践

深入理解 Qt 中的对象树:机制、用途与最佳实践 在使用 Qt 编程时,你是否注意到很多对象可以设置“父对象”?比如: QPushButton* btn new QPushButton(parentWidget);这不是简单的层级结构,而是 Qt 强大而优雅的 对象…

比较入站和出站防火墙规则

组织需要仔细配置防火墙规则,监控网络的传入和传出流量,从而最大限度降低遭受攻击的风险。在有效管理入站和出站防火墙规则前,了解入站与出站流量的区别至关重要。 一、什么是入站流量? 入站流量指的是并非源自网络内部&#xf…