开源流程引擎Camunda技术架构

开源流程引擎Camunda技术架构,第1张

Camunda是一个基于Java的框架,支持用于工作流和流程自动化的BPMN、用于案例管理的CMMN和用于业务决策管理的DMN。

本篇文章我们仅考虑BPMN流程引擎,先不涉及CMMN和DMN引擎。就流程引擎而言,Camunda是一个灵活的工作流框架,它的核心是一个在Java虚拟机内部运行的原生BPMN 20流程引擎,因此它可以嵌入到任何Java应用程序或运行时容器中。Camunda与Java EE 集成,并可以与Spring Framework和Spring Boot完美匹配。

Camunda BPMS到底包括哪些功能,我们拿官方的一张架构图进行解读分析。

1从BPM应用维度看

Camunda分为流程设计和流程运行两个阶段,见图中最下方的蓝色大箭头,Model和Execute,按照这两个阶段,Camunda划分为两大部分功能,对应设计阶段的功能有 Modeler,对应运行阶段的功能有Engine、TaskList、Cockpit、Admin。

2从BPM功能维度看

Camunda包括了流程设计器(Modeler)、流程引擎(Engine)、API接口(REST/Java API)、任务列表(TaskList)、流程管理控制台(Cockpit)、系统管理工具(Admin)。在Camunda商业产品中还包括了流程监控预警工具(Optimize)、流程协同设计工具(Cawemo)。这里重点先说一下Camunda流程设计器,支持两种模式,一种是富客户端的流程建模工具Camunda Modeler,需要在客户端安装;另一种是基于浏览器的流程设计器bpmnio,这两款软件均开源。

3从BPM角色维度看

Camunda分为业务分析师、流程开发工程师、最终用户、流程管理员、系统管理员这几个角色,每个角色对应BPMS不同的功能。业务分析师、流程开发工程师使用流程设计器(Modeler)进行流程建模,最终用户使用任务列表(TaskList)进行流程发起和审批,流程管理员使用流程管理控制台(Cockpit)进行流程管理,比如流程暂停恢复、流程异常干预等,系统管理员使用系统管理工具(Admin)进行系统管理,比如组织用户管理、权限管理等。

1支持与Spring框架集成

Camunda支持与spring框架集成,把 camunda-engine-spring框架引入到项目的maven模块内,它可以与Spring 3、4或5版本一起使用,具体集成过程后面有文章单独介绍。

2支持与spring boot集成

后面文章专题介绍

3支持与CDI and Java EE 集成

CDI (Context and Dependency Injection)是 Java EE6的标准和依赖注入,Camunda通过camunda-engine-cdi模块集成可利用camunda引擎的配置和cdi的可扩展性。

4支持与Runtime Container 集成

支持与tomcat、JBoss等常见的运行容器集成。

Camunda BPM是一个灵活的框架,支持嵌入式、分布式、集群等多种部署模式。

1嵌入式部署

流程引擎以Jar包方式添加到应用程序中,通过这种方式,可以在应用程序生命周期中轻松启动和停止流程引擎。

2基于web容器启动,多应用共享

流程引擎在运行时容器(Servlet容器、应用程序服务器等)中启动,流程引擎作为容器服务提供,可以由容器内部署的所有应用程序共享。这种方式在实际应用场景中不多见。

3独立部署,多应用共享

在这种情况下,流程引擎独立部署,通过网络提供服务,网络上运行的不同应用程序可以通过远程通信通道与进程引擎交互,远程访问流程引擎的最简单方法是使用内置的REST服务接口。在企业级流程中心部署架构中,这是一种最常见的部署模式,在现在的微服务部署架构中,也可以采取这种方式。

4集群部署

为了提供扩展或故障转移功能,流程引擎可以分布到集群中的不同节点,每个流程引擎实例都必须连接到共享数据库。Camunda BPM不提供现成的负载平衡功能,可以采用nginx等第三方负载均衡软件实现。

本文介绍了第三方库及其在Camunda中的使用。对于Camunda的每个组件,都列出了第三方库。对于每个库,都解释了该库是必需的依赖项还是可选的依赖项。必需的依赖是Camunda提供核心功能所依赖的库。在下面的列表中标记为(Required Dependency)。可选的依赖项是可以与Camunda集成的库。在下面的列表中标记为(可选依赖项)。

以下是Camunda715版本依赖得第三方类库:

1、Process Engine

流程引擎依赖于以下第三方类库:

MyBatis mapping framework (Required Dependency) for object-relational mapping

Joda Time (Required Dependency) for parsing date formats

Java Uuid Generator (JUG) (Optional Dependency) Id Generator See the documentation on Id-Generators

SLF4J (Required Dependency) Logging Facade

此外,流程引擎还可以集成:

Apache Commons Email (Optional Dependency) for mail task support

Spring Framework Spring-Beans (Optional Dependency) for configuration using camundacfgxml

Spring Framework Spring-Core (Optional Dependency) for configuration using camundacfgxml

Spring Framework Spring-ASM (Optional Dependency) for configuration using camundacfgxml

Groovy (Optional Dependency) for groovy script task support

Jython (Optional Dependency) for Python script task support

JRuby (Optional Dependency) for Ruby script task support

Freemarker (Optional Dependency) for freemarker template engine support

Apache Velocity (Optional Dependency) for apache velocity template engine support

SAXON (Optional Dependency) for XSLT and XQuery template engine support

2、REST API

REST API依赖于以下第三方库:

Jackson JAX-RS (Required Dependency) provider for JSON content type

Apache Commons FileUpload (Required Dependency)

此外,当使用Apache Tomcat时:

RESTEasy (Required Dependency)

3、Spring Support

Spring支持可以与以下第三方库集成:

Apache Commons DBCP (Optional Dependency)

Spring Framework Spring-Beans (Optional Dependency)

Spring Framework Spring-Core (Optional Dependency)

Spring Framework Spring-ASM (Optional Dependency)

Spring Framework Spring-Context (Optional Dependency)

Spring Framework Spring-JDBC (Optional Dependency)

Spring Framework Spring-ORM (Optional Dependency)

Spring Framework Spring-TX (Optional Dependency)

4、Camunda Spin

Camunda Spin依赖于以下第三方库:

Jackson Json (Required Dependency) for Json Dataformat Support

此外,Camunda Spin可以与以下库集成:

Jayway Json Path (Optional Dependency) for Json Path Support

5、Camunda Connect

Camunda Connect依赖于以下第三方库:

Apache >随着移动互联网的普及与发展,手机应用不断深入我们生活的方方面面,移动系统和软件应用的开发领域,成为了未来具有潜力的行业之一,合格的软件人才在任何企业都具有不可替代的竞争优势 。

选择江西新华电脑学院软件技术工程师专业,你将学习:
网络安全基础、Dreamweaver网页设计、Photoshop网页效果图制作、Window Server 2008服务、器 *** 作系统和活动目录、C语言、SQL Server2005数据库、设计和高级查询、HTML5+CSS3、JavaScript、jQuery高级编程、动态网页设计PHP+MYSQL、Linux服务器 *** 作系统、数据结构软件工程、JAVA面向对象程序设计、oracle数据库、J2EE服务器端高级编程、手机APP视觉设计、APP应用程序开发等。

1、类别不同:

在PaaS平台,Gartner把它们分为两类,一类是应用部署和运行平台APaaS,另一类是集成平台IPaaS。

2、范围不同:

PaaS平台就是指云环境中的应用基础设施服务,也可以说是中间件即服务。PaaS平台在云架构中位于中间层,其上层是SaaS,其下层是IaaS。

在传统On-Premise部署方式下,ipaas应用基础设施即中间件的种类非常多, 有应用服务器,数据库,ESBs, BPM, Portal, 消息中间件,远程对象调用中间件等等。

扩展资料:

IPaaS 通常将 SoftLayer 用作其基于云的解决方案,然而 IPaaS 模型同样适用于私有云、公有云或混合云解决方案。IPaaS 设置和标准 *** 作的成本是通过使用一个基于使用量的灵活模型计算每月的费用而得出的。

该模型将减少任何不必要的使用,是一个更精简的模型,这意味着您只需为实际使用量付费(按需付费)。稍后我们将详细介绍成本模型,并探讨如何使用一个服务目录计算使用量,实现成本节约。

ROI 是 IPaaS 方法的一个显著优势。最初的软硬件购置成本,连同与平台和应用程序支持相关的运行成本,被分摊到 IPaaS 消费模型中。IPaaS 方法在 8 到 10 个月就能实现一个收支平衡点,在一年内就带来实际的节省。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13458364.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-11
下一篇 2023-08-11

发表评论

登录后才能评论

评论列表(0条)

保存