(文章来宾与北美红帽公司高级中间件顾问约翰·赫洛克 ( John Hurlocker)合着)
在本周的技巧中,我们将放慢速度,并仔细研究可能的Red Hat JBoss BRMS部署体系结构。
当我们谈论部署架构时,我们指的是在企业中部署规则和/或事件项目所需的选项。
这是您在设计阶段开始时就需要规划的实际运行时体系结构,以确定企业和基础架构的最佳方法是部署即将到来的应用程序。 它还很可能会影响您如何设计要构建的实际应用程序,因此,了解您的选择将有助于使您的项目成功。
这将是一个由多个部分组成的系列,将分阶段介绍部署架构。 您可以继续阅读上几周的文章,然后继续阅读本周的以下两种架构。
可能性
规则管理员或架构师与应用程序团队合作,为规则设计运行时体系结构,并且根据组织的需要,该体系结构可以是以下任何一种体系结构或以下设计的混合体。
在本系列中,我们将介绍四种不同的部署架构,并讨论一种设计时架构,同时提供每种架构的优缺点,以便根据自己的需要评估每种架构。
随附插图中显示的这些体系结构的基本组件是:
- JBoss BRMS服务器
- 规则开发人员/业务分析师
- 版本控制(GIT)
- 部署服务器(JBoss EAP)
- 客户使用您的应用程序
规则执行服务器
在这种体系结构场景中,您正在做的就是将JBoss BRMS作为应用程序部署在其自己的环境中。 然后,您可以将其公开为服务(例如JMS,SOAP等),以便企业体系结构中的任何应用程序都可以远程执行规则和事件。
图1:规则执行服务器 |
如图1所示,这种部署体系结构完全将应用程序开发过程中的整个JBoss BRMS规则和事件组件外部化。然后,仅需要应用程序对规则或事件决策进行外部调用。
优点
- 完全解耦的架构
- 设置和执行规则的常见实现
- 通过企业中的单点关注,升级到BRMS版本变得更加容易
缺点
- 由于外部组件相对于您的应用程序可能会影响性能
- 执行服务器可以被多个应用程序使用。
- 一个团队将需要拥有此应用程序的所有权并对其进行维护
规则执行服务器的混合
作为最后一个示例,我们提出一种混合架构,该架构利用了以前的基本规则执行服务器架构,并添加了先前讨论的(第I部分) KieScanner组件。
插图2:混合架构。 |
使用这种体系结构,您可以开发仅利用远程调用来执行规则和事件决策的应用程序,而且还可以在不更改执行服务器服务结构的情况下更新规则和事件包。
回顾一下 ,请记住,JBoss BRMS API包含一个KieScanner。
监视规则存储库中的新规则包版本。 一旦 新版本可用,它将由KieScanner提取并加载 进入您的应用程序。
Cool Store演示项目提供了一个示例,演示了JBoss BRMS KieScanner的用法,并提供了一个示例实现 ,该示例实现显示了如何扫描规则存储库中的最新构建的软件包。
图2显示了规则执行服务器现在如何托管KieScanner实现的组件,以监视规则和事件包中的更新,然后自动为下一个调用的应用程序选择更新。
优点
- 完全解耦的架构
- 设置和执行规则的常见实现
- 通过企业中的单点关注,升级到BRMS版本变得更加容易
- 减少执行服务器组件的维护
缺点
- 由于外部组件相对于您的应用程序可能会影响性能
接下来
下次,我们将研究设计时架构以及将规则和事件部署到架构中的选项。
翻译自: https://www.javacodegeeks.com/2014/07/examining-red-hat-jboss-brms-deployment-architectures-for-rules-and-events-part-ii.html