学校网站在建设方面的的优势,国际贸易公司,公众号制作代运营,公司logo生成器免费我过去发布过一些有关迁移策略的文章#xff0c;仔细研究了流程层#xff0c;并提供了一些有关jBPM的最佳实践 #xff0c;它们都涉及到BPM策略的非常具体的部分。 我想重新讨论最佳实践的主题#xff0c;然后在智能集成企业级别上#xff0c;我们讨论使用JBoss BRMS对您的… 我过去发布过一些有关迁移策略的文章仔细研究了流程层并提供了一些有关jBPM的最佳实践 它们都涉及到BPM策略的非常具体的部分。 我想重新讨论最佳实践的主题然后在智能集成企业级别上我们讨论使用JBoss BRMS对您的业务流程进行控制。 介绍 首先我们需要仔细研究景观然后像洋葱一样剥开图层仔细研究如何提供可扩展的BPM项目。 图1显示了我们需要集中注意力的几个组件层 流程初始化层 流程实施层 流程资料库 业务用户和开发人员的工具 控制台报告和BAM仪表板 流程交互层 图1企业BPM格局。 本文将介绍流程初始化层在此我将向您介绍一些最佳实践围绕您您的客户以及如何启动流程。 在流程存储库工具业务用户和设计流程的开发人员的帮助下流程实现层是维护流程的地方。 在这里您还将找到各种实现细节例如特定领域的扩展以涵盖我们项目中特定节点的类型。 稍后将介绍该层的最佳实践。 控制台报告和BAM仪表板组件是项目中使用的扩展工具用于提供可用于影响业务决策的业务价值或信息。 稍后将介绍该领域的最佳做法。 最后在流程交互层中您的流程将连接到各种形式的遗留系统后台系统服务层规则系统甚至第三方系统和服务。 该领域的最佳实践将在以后的文章中介绍。 图2入门。 流程初始化层 看一下如何初始化流程我想向您提供一些我多年来在大型企业中看到的最佳实践。 似乎有一个主要主题是收集启动流程所需的客户用户或系统数据然后通过startProcess调用将其注入。 可以通过BRMS jBPM API调用使用RESTful服务或通过标准Java Web服务调用将其嵌入到您的应用程序中。 无论您如何收集数据以初始化流程实例都可能要考虑从一开始就如何扩展初始化设置。 通常最初的项目设置时对未来没有太多考虑因此某些问题没有被考虑在内。 顾客 此处定义的客户可以是提供初始过程启动数据的人员系统或某些用户。 在图2中我们对客户如何提供过程数据进行了高层次的研究然后将这些过程数据打包成一个请求以放入一个过程队列中。 然后我们可以从队列中确定优先级并让不同的机制获取这些流程请求并使用提供的请求数据启动流程实例。 我们在此处显示了EJBMDB和云它们表示可以用来清空进程队列的任何调度方式。 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