JBoss BRMS最佳实践– BPM流程初始化层的提示

我过去发布过一些有关迁移策略的文章,仔细研究了流程层,并提供了一些有关jBPM的最佳实践 ,它们都涉及到BPM策略的非常具体的部分。 我想重新讨论最佳实践的主题,然后在智能集成企业级别上,我们讨论使用JBoss BRMS对您的业务流程进行控制。

介绍

首先,我们需要仔细研究景观,然后像洋葱一样剥开图层,仔细研究如何提供可扩展的BPM项目。 图1显示了我们需要集中注意力的几个组件层:

  • 流程初始化层
  • 流程实施层
  • 流程资料库
  • 业务用户和开发人员的工具
  • 控制台,报告和BAM仪表板
  • 流程交互层
图1:企业BPM格局。

本文将介绍流程初始化层,在此我将向您介绍一些最佳实践,围绕您,您的客户以及如何启动流程。

在流程存储库,工具,业务用户和设计流程的开发人员的帮助下,流程实现层是维护流程的地方。 在这里,您还将找到各种实现细节,例如特定领域的扩展,以涵盖我们项目中特定节点的类型。 稍后将介绍该层的最佳实践。

控制台,报告和BAM仪表板组件是项目中使用的扩展工具,用于提供可用于影响业务决策的业务价值或信息。 稍后将介绍该领域的最佳做法。


最后,在流程交互层中,您的流程将连接到各种形式的遗留系统,后台系统,服务层,规则系统甚至第三方系统和服务。 该领域的最佳实践将在以后的文章中介绍。

图2:入门。


流程初始化层

看一下如何初始化流程,我想向您提供一些我多年来在大型企业中看到的最佳实践。

似乎有一个主要主题是收集启动流程所需的客户,用户或系统数据,然后通过startProcess调用将其注入。 可以通过BRMS jBPM API调用,使用RESTful服务或通过标准Java Web服务调用将其嵌入到您的应用程序中。 无论您如何收集数据以初始化流程实例,都可能要考虑从一开始就如何扩展初始化设置。 通常,最初的项目设置时对未来没有太多考虑,因此某些问题没有被考虑在内。

顾客

此处定义的客户可以是提供初始过程启动数据的人员,系统或某些用户。 在图2中,我们对客户如何提供过程数据进行了高层次的研究,然后将这些过程数据打包成一个请求,以放入一个过程队列中。 然后,我们可以从队列中确定优先级,并让不同的机制获取这些流程请求,并使用提供的请求数据启动流程实例。 我们在此处显示了EJB,MDB和云,它们表示可以用来清空进程队列的任何调度方式。

Queue列

这些队列可以像数据库表一样简单,也可以像消息队列一样完善。 可以按照项目需要的任何方式进行设置,例如后进先出(LIFO)或先进先出(FIFO)。 使用消息队列的好处是,您可以通过轮询机制确定它们的优先级。

此设置的原因有两个。 首先,您通过不直接从客户界面启动流程实例来确保您保留了客户请求。 它将永远不会丢失到流程引擎。 其次,您可以对可能无法满足项目要求的未来流程进行优先级排序,例如必须在客户提交后10秒钟内开始的新流程请求。 如果将其放在需要花费一个小时才能处理的队列的底部,那么您就遇到了问题。 通过对队列进行优先级排序,您可以调整轮询机制以每次以正确的顺序检查适当的队列。

Java /云

图2中的Java图标代表您可能想用来处理进程队列的任何JEE机制。 它可以是EJB的,MDB的,您自己编写的调度程序或您想拿出的任何程序来拾取流程请求。

云图标旨在表示服务,您的软件可以使用这些服务来实际调用最终的startProcess方法,以初始化所请求的流程实例并将其传递给初始数据。 将与jBPM API的交互集中到一个服务中很重要,这样可以确保在API更改的情况下进行最少的工作,以便将来进行可能的版本迁移,并且如果您希望在将来的项目中进行扩展,以扩展与jBPM的服务交互。

结论

本文简要介绍了高级BPM体系结构,并列出了交互的各个层次。 在较大的企业BPM体系结构中,交互的第一层是初始化层,以提供对该层内最佳实践的一些见解。 讨论不是试图推动实现细节,而是退后一步,介绍在大型BPM体系结构中反复遇到的一些基本元素。 它涵盖了客户最初提交的处理请求,处理请求的排队以及以一致且可扩展的方式处理这些队列。 在以后的文章中,流程实现层,流程交互层,流程存储库,工具以及报告和BAM层中还有更多内容需要关注。

参考: JBoss BRMS最佳实践–来自我们的JCG合作伙伴 Eric D. Schabell的BPM流程初始化层的提示, 有关中间件,Linux,软件,骑行和其他新闻的思想…博客。


翻译自: https://www.javacodegeeks.com/2012/08/jboss-brms-best-practices-tips-for-your.html

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

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

相关文章

跨站点脚本(XSS)和预防

如OWASP网站(https://www.owasp.org/index.php/Cross-site_Scripting_(XSS))所述,跨站点脚本(XSS)攻击的变种几乎是无限的。 在这里,我建议使用基于Servlet筛选器的解决方案来清理HTTP请求。 攻…

NoSQL入门第一天——NoSQL入门与基本概述

一、课程大纲 二、入门概述 1.为什么用NoSQL 单机MySQL的年代: 一个网站的访问量一般都不大,用单个数据库完全可以轻松应付。      我们来看看数据存储的瓶颈是什么?        1.数据量的总大小 一个机器放不下时。(现…

C语言结构体及函数传递数组參数演示样例

C语言结构体及函数传递数组參数演示样例 注:makeSphere()函数返回Sphere结构体,main函数中。调用makeSphere()函数,传递的第一个參数为数组,传递的数组作为指针。posted on 2017-07-30 18:42 mthoutai 阅读(...) 评论(...) 编辑 收…

AIX下RAC搭建 Oracle10G(六)dbca建库

AIX下RAC搭建系列 AIX下RAC搭建 Oracle10G(六)dbca建库 环境 节点 节点1 节点2 小机型号 IBM P-series 630 IBM P-series 630 主机名 AIX203 AIX204 交换机 SAN光纤交换机 存储 SAN T3存储 大纲流程例如以下: 第一部分&#xff1…

JavaOne 2012:掌握Java部署

在吃完一次JavaClass 2012午餐会的意大利经典组合后,我前往希尔顿帝国宴会厅B观看了演示“掌握Java部署”。 来自Oracle的发言人是Mark Howe和Igor Nekrestyano Howe表示,部署团队的目标是帮助Java开发人员将其应用程序部署到所选平台。 他首先讨论了“功…

php 提高吞吐量,如何提高网站的吞吐量

吞吐量定义百科吞吐量是指对网络、设备、端口、虚电路或其他设施,单位时间内成功地传送数据的数量(以比特、字节、分组等测量)。以上的定义比较宽泛,定义到网站或者接口的吞吐量是这样的:吞吐量是指系统在单位时间内处理请求的数量。这里有一…

使用您自己的规则在Eclipse中自定义PMD

PMD是非常好的Java代码扫描程序,可帮助您避免潜在的编程问题。 它可以轻松扩展以满足您的需求,并且本文将为您带来与JPA的Enumerated注释用法相关的自定义PMD规则的简单示例。 在继续阅读之前,您应该检查我以前的文章之一-JPA-Enumerated def…

yii2之DetailView小部件

DetailView小部件用于展示单条数据记录&#xff0c;可配置属性很少&#xff0c;使用也很简单&#xff0c;直接贴代码&#xff0c;一看就懂&#xff01; yii小部件数据小部件DetailView的使用示例&#xff1a; <? DetailView::widget([model > $user,//模型对象&#xff…

gitlab的安装和基本维护

基本介绍 GitLab是一个自托管的Git项目仓库&#xff0c;可以自己搭建个人代码管理的仓库&#xff0c;功能与github类似。 安装 操作系统&#xff1a;CentOS6.5 gitlab官网下载安装地址&#xff1a;https://about.gitlab.com/downloads/#centos6 1.安装依赖的包 yum install cur…

unity中怎么在InspectorI面板加LOGO

转载于:https://www.cnblogs.com/unitySPK/p/7278925.html

重写到边缘–充分利用它! 在GlassFish上!

现代应用程序开发的一个重要主题是重写。 自从Java Server Faces引入和Java EE 6中新的轻量级编程模型以来&#xff0c;您一直在努力使用漂亮&#xff0c;简单&#xff0c;可添加书签的URL。 PrettyFaces很久以来就一直存在&#xff0c;即使它在3.3.3版本中可以说是成熟的&…

php yii框架路由,yii框架路由配置

首先要在服务器配置(httpd.conf)中开启重写模块#开启重写模块&#xff0c;将其前面的#去掉LoadModule rewrite_module modules/mod_rewrite.so#Directory中允许覆盖开启## Possible values for the Options directive are "None", "All",# or any combinat…

前端面试总结二

一、响应式和自适应的区别&#xff1a; 联系(相同点)&#xff1a; 响应式设计(responsive design)和自适应设计(adaptive design)都是用来解决网页在不同分辨率的屏幕和设备上展示的一项技术(或者说一种方法)。 区别&#xff1a; 响应式设计&#xff1a;通过CSS Media Queries(…

【看番杂感】Clannad系列观后感(剧透慎入)

前言 之前看第一季时&#xff0c;弹幕里总有人在刷“写作cl&#xff0c;读作人生”。当时我想&#xff0c;盲目把一部催泪番上升到人生的高度&#xff0c;这未免有些武断&#xff0c;也是对作品本身的不尊重。当看完第二季的我蓦然回首&#xff0c;发现这才是最最贴切的评价&am…

Centos7 开机显示 ERST: Failed to get Error Log Address Range” 导致无法开机解决方法

开机显示 ERST: Failed to get Error Log Address Range” 导致无法开机&#xff0c;也无法重新安装系统&#xff0c;解决方法&#xff1a;开机进入BIOS &#xff0c; 关闭ACPI选项即可正常开机 转载于:https://www.cnblogs.com/zhangjianghua/p/6376811.html

Spring MVC 3模板和Apache Tiles

对于任何Web应用程序而言&#xff0c;有效的设计考虑因素是使用模板引擎&#xff08;或工具&#xff09;&#xff0c;并且由于具有Spring的“可插拔”特性&#xff0c;因此集成模板机制&#xff08;例如Apache Tiles&#xff09;的确要容易得多。 在这篇简单的文章中&#xff0…

js 判断浏览器是否64位

js判断是否64位 浏览器 navigator.userAgent.match(/x64/i); 转载于:https://www.cnblogs.com/fanlinglong/p/7298733.html

浙江大学linux网络通信,浙江大学钟财军副教授——“Wireless Powered Communication Networks”...

2016年5月17日&#xff0c;浙江大学钟财军副教授应徐正元教授邀请在中科大西区科技实验楼东楼十层1011会议室做了一场题为“Wireless Powered Communication Networks”的学术报告。报告会由龚晨教授主持&#xff0c;共50余名师生参加。此次报告会得到了“中科院无线光电通信重…

[基础]PeopleSoft中的作业和调度作业集合定义

PeopleSoft进程调度器可以使一个或多个进程作为一个组。这个组在PeopleSoft中被称为作业(Job)。 PeopleSoft进程被定义为单个任务&#xff0c;程序或例程&#xff0c;例如cobol程序或AE程序或客户端运行的SQR。 作业由一个或多个相同或不同类型的进程组成&#xff0c;他们作为一…

win10 hyper-v 虚拟机ping不通宿主机问题

在Windows10 Hyper-V 中安装 Linux (Centos6.9)虚拟机无法 ping 通宿主机 这种情况下关闭 Windows 防火墙就能ping通了&#xff0c;当然关闭防火墙不安全。所以需要 做以下步骤: 控制面板-》系统和安全-》Windows防火墙-》高级设置-》入站规则 启用下图被红框选中的两个选…