jboss启动初始页面_JBoss BRMS最佳实践– BPM流程初始化层的提示

jboss启动初始页面

我过去发布过一些有关迁移策略的文章,仔细研究了流程层,并提供了一些有关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层中还有更多内容需要看。

流程实施层

这一层的重点是业务流程设计,流程中自定义操作的实现以及流程使用方式的扩展。 在流程设计和执行中采用标准BPMN2消除了BPM体系结构这一层的许多麻烦。 流程引擎被迫遵守并支持BPMN2标准,这意味着您在流程设计过程中只能做些限制。

知识会议

在JBoss BRMS BPM组件中,有一个有趣的事情是构建高度可扩展的流程体系结构。 这是知识会话(KS)的概念,特别是有状态知识会话(SKS)的概念。 创建它的目的是为了保存您的过程信息,包括数据和过程规范实例。

当运行基于规则的应用程序时,通常的过程是运行单个KS(注意,不是有状态的!),并且所有规则和数据都将利用该单个KS。 对于一个SKS和流程,我们希望每个流程实例都使用一个SKS。 我们可以将此功能捆绑到单个服务中,以允许并发并简化流程实例生命周期管理。 在此服务中,您还可以根据需要嵌入最终的同步或异步业务活动监视(BAM)事件生成器。
本文简要介绍了高级BPM架构,并列出了交互的各个层次。 对实现层进行了检查,以提供对该层内最佳实践的一些见解。 SKS的主要重点是我们建议如何在单个服务中使用,管理流程实例生命周期的方法。 在此之上,建议这是卸载BAM事件的一个很好的切入点。 在以后的文章中,流程交互层,流程存储库,工具,报告和BAM层中,还有更多内容需要关注。

流程交互层

访问业务逻辑,后端系统,后台系统,用户界面,其他应用程序,第三方服务或您的业务流程需要使用什么来完成工作,一个好的策略可以带来很多好处。 许多企业正在将这些交互与面向服务的体系结构(SOA)中的服务层隔离,该体系结构提供了灵活性,并且可以很好地扩展可能遇到的所有各种工作负载。 在这里看一下BPM层,我们只想提及其中的一些后端系统,作为如何在企业中优化流程项目的示例。

人工任务

JBoss BRMS BPM体系结构包括一个单独的人工任务(HT)服务器,该服务器作为实现WS-HT规范的服务运行。 可插拔没有什么可以通过在服务中公开WS-HT任务生命周期来阻止您在企业中托管另一台服务器的。 然后,应使用同步调用模型,该模型可以大大简化默认情况下利用HornetQ消息传递系统的标准产品实现。

报告中

您可以实施以提供出色的报告可伸缩性的第二项服务,我们称为业务活动监视(BAM)服务。 您将使用此服务来集中BAM事件,并使用它来将这些事件推送到可靠且快速的JMS队列中。 然后,可以使用一台单独的机器来托管这些JMS BAM队列,在不增加BPM引擎本身负载的情况下处理消息,写入一个单独的BAM数据库,通过批量写入进行优化,并且使用BAM信息的任何客户端都不会再次放入BPM引擎本身的任何负载。

结论

本文简要介绍了高级BPM架构,并列出了交互的各个层次。 对交互层进行了检查,以提供对该层内最佳实践的一些见解。 您可以创建几种服务来集中围绕人工任务和报告的活动。 通过集中人工任务交互,您可以为企业提供标准和可扩展的解决方案。 借助BAM服务,您可以将工作卸载到体系结构中的单独实体,从而保证这些事件的传递以及就流程报告活动而言的一致性能。 在以后的文章中,流程交互层,流程存储库,工具,报告和BAM层中,还有更多内容需要关注。

中文译本由Christina Lin提供。

参考: JBoss BRMS最佳实践– BPM流程初始化层的技巧 JBoss BRMS最佳实践– BPM流程实施层的技巧 JBoss BRMS最佳实践–来自我们的JCG合作伙伴 Eric D. Schabell的有关 BPM流程交互层的技巧, 有关中间件,Linux,软件,自行车和其他新闻思想

翻译自: https://www.javacodegeeks.com/2012/12/jboss-brms-best-practices-tips-for-your-bpm-process-initialization-layer.html

jboss启动初始页面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值