预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共17页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

编号:时间:2021年x月x日书山有路勤为径学海无涯苦作舟页码:简介业务应用的需求总是随着业务环境的变化趋势而不断地改变。决策很少是一成不变的并且竞争压力要求业务逻辑的设计和实现具有灵活性以快速地适应不断变化的需求。通常对业务逻辑的更改必须由开发人员来完成然后进行多次彻底的测试而这将是一个很耗时的过程。在应用程序的修改工作完成后需要将其重新部署到服务器需要留出预定的停机时间以防应用程序对用户不可用。对于这个问题更好的解决方案是通过应用程序之外的一组规则来实现某些业务决策。这些规则并没有被编译到应用程序中而是在运行时读取并应用。通过这种方式无需更改代码或者停止正在运行的应用程序就可以改变这些规则。WebLogicPortal包括一个基本的规则引擎用于使WebLogicPlatform应用程序从规则获益。尽管该引擎不是功能完备的产品但我们将展示如何将其与WebLogicIntegrationBusinessProcesses(JPDs)一起使用来为业务逻辑提供一种灵活且动态的实现机制从而无需只为了修改规则而重新部署应用程序。首先我们来看一下将在全文中使用的示例应用程序然后介绍如何将规则引擎注入到WLI流程中以实现业务逻辑。然后我们将更仔细地研究这些规则本身以及如何为业务逻辑定义这些规则最后将描述在运行中的系统中更改业务规则所使用的机制。示例应用程序我们将开发一个示例交易应用程序作为在业务流程中使用规则的例子。该交易应用程序是一个金融交易流程的简化版本该流程使用调用规则引擎的JPD业务流程而构建。该示例应用程序采用了不同的有价证券交易集合并根据一组由业务定义的规则将其分组成交易块以便执行或许是为了减少佣金。当然这里给出的应用程序并不完整但它已经足以展示如何在现实世界应用程序中使用规则引擎。有完整的源代码可供下载其中的readme文件提供了构建和运行该应用程序的说明。在解释如何开发这样的应用程序之前我们先通过对门户规则引擎的一些特性的简要概括来了解其工作方式。这里假定读者熟悉一般的规则技术。规则引擎及其工作方式图1说明了规则引擎的基本情况。该引擎根据一组规则来处理初始的事实集而这些规则由引擎从外部库中获得。初始事实用于为该引擎填充工作内存。由规则来对工作内存中的事实进行评估如果满足某条规则的条件则将执行对应的动作。通常一个规则动作将向工作内存中添加一条新的事实并重复该流程直到应用完所有的规则。然后通过可选的过滤器来选择特定类的对象以返回给调用方。可以通过Controls界面访问规则引擎还可以用它来设置属性(比如规则集文件的位置)。图1:该规则引擎是一个由控件包装的EJB。储存库中的规则反复地应用于工作内存中的事实以获得新的事实。在无法进行继续推理的情况下对工作内存进行过滤以返回感兴趣的项目。从WLI流程调用规则引擎让我们从被实现为JPD的交易业务流程开始来看看如何添加对规则引擎的调用。要在WLI流程中添加规则可以使用作为WebLogicPortal的一部分而提供的RulesExecutorControl(规则执行器控件)。对于本例我们只使用该控件中所提供的方法和特性的一个子集。关于规则控件的附加说明文档可以在参考资料部分找到。此处假定开发人员使用WebLogicWorkshop集成开发环境来创建新的流程应用程序。然后可在该应用程序中创建一个流程项目。因为默认情况下门户控件在流程项目中不可用所以需要将这些控件和规则引擎的EJB导入到应用程序。然后将控件输入和输出插入到JPD中。在WLI流程中使用门户规则引擎的基本步骤如下:导入规则引擎到应用程序:在应用程序中包含规则引擎。将p13n_controls库添加到应用程序。处理输入和输出:为输入和结果添加变量。创建一个RulesExecutor控件。在WLI流程中添加一个ControlSendWithReturn节点。为创建初始数据编写Java代码。添加一个流程节点以对结果进行迭代。创建规则集。后面我们将更详细地讨论其中的每一个步骤。在应用程序中包含规则引擎规则引擎包含在下面的文件中:/weblogic81/p13n/lib/p13n_ejb.jar要在应用程序中包含该引擎请右击Workshop集成开发环境中的Modules文件夹并选择AddModule。导航到该jar文件并选择Open。将p13n_controls库添加到应用程序要使得门户规则控件在应用程序中可用请右击Workshop集成开发环境中的Libraries文件夹并选择AddLibrary。该控件位于:</weblogic81/p13n/lib/