`
NIIT_zhu
  • 浏览: 49450 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

规则引擎--visualrules 商业规则定制平台的适用范围

阅读更多
VisualRules的提出是为了解决目前软件项目因为客户需求的不断变动,造成项目延期或者维护成本居高不下等问题。VisualRules的使用可以有效的减少软件设计和开发的工作量,使得软件项目所需要人手大大降低,有效的减少了项目沟通的问题以及项目管理的难度。同时VisualRules使得极少的维护人员就可以担当起几个项目的维护,部分维护工作可以直接由客户担当,有效的控制了维护成本。因此VisualRules最适应于那些需求容易发生变化或者需求最初分析不清的软件项目。

        就技术层面而言,需求的变化涉及到三个层面的变化:业务逻辑层,这是业务需求最容易变化的部分,用户可能会要求定期就发生变化;数据库层,这一层的变化最小,因为业务数据结构一般都不会轻易发生变化,但是如果某些数据库对象参与了业务逻辑的计算过程,必须用于配置一些参数,那么这些数据结构也容易发生变动;界面层,界面层在前期项目开发阶段变化大,后期维护阶段变化相对较少,一般涉及是数据筛选和校验逻辑的变化。

        VisualRules的目标就是使软件项目可以随着用户需求的变化而变化,因此VisualRules分别从以上三个层面让软件项目支持需求的变化。下面分别描述以上三个层面,原先通用的做法以及基于规则平台的解决方法。

        对于业务逻辑层,原先通用的做法是采用Struts的form等来定义数据接口,采用Action类来操作业务逻辑。或者是采用Bean来定义数据接口,采用Spring来定义接口,然后用实现类来定义具体的处理逻辑。这种做法使得业务逻辑发生变化时,需要去对应的修改实现类中的代码,然后调试、测试、打包、发布。采用这种方式有几个弊端:1、变动必须修改代码,因此比如高级程序员才敢改,而且改了发布必须重启服务。2、业务逻辑绑定了框架,如果框架(如Struts、Spring)遭淘汰,那么原先项目代码将很难重用。这些都使得业务逻辑的修改变得复杂。

        VisualRules提供了规则配置器,可以来设置业务逻辑层所需要的定义的数据处理逻辑以及数据库操作逻辑。VisualRules将这些配置的逻辑可以直接翻译成java代码并自动编译。同时提供规则引擎来动态的调用对应的业务逻辑规则包。基于VisualRules,数据接口不再需要用Form或者Bean类来定义,而是通过一个动态的Map来和规则包进行交互,业务逻辑不再写在代码中,而且存储在规则库中,调用时会自动编译生成对应的java代码。这样业务逻辑的实现脱离了框架,使得业务逻辑在将来技术的升级时,可以最大限度的得到复用。同时也方便了业务逻辑的维护和修改,发布时也不用再重启服务。

        对于数据库层,原先通用的做法是采用Hibernate或者IBatis等实现数据库对象的接口。这样一般都需要维护一个数据对象的XML描述,以及自动生成的一些java代码。Hibernate的采用简化了数据库层的操作,使得用户只需维护XML中的一些结构信息,就可以直接操作表。但是Hibernate等技术也带来了一些问题,比如性能问题,依赖问题、数据库特性问题等。最显而易见的,当数据结构变动时,需修改或生成对应的XML,然后发布也需要重启服务。VisualRules自动从数据库读取字段信息,并且采用List来存储,因此可以使用公共的接口类实现数据库对象的实现。采用VisualRules的数据库接口,可以实现数据库的变化发布后无需重启服务器。并且可以直接调用数据库表、视图和存储过程,也可以自定义SQL语句,使用数据库的一些特性语法。

        对于页面层,现在页面处理基本有两种处理方式,一种是传统的页面跳转方式,这种方式一般用Struts等来控制跳转,在每个跳转的页面中定义页面展现逻辑;还有一种是基于AJAX提交的方式,这种方式可以采用DWR等直接调用后台的逻辑代码,然后返回数据,数据解析以及展现逻辑完全有一个页面控制。我们不推荐采用第一种方式来处理页面层,因为修改Struts相关代码必须重启服务,不能实现页面层的动态修改。我们推荐页面逻辑完全在页面层中控制,然后通过Ajax直接访问服务器中的规则包,然后将结果返回到页面。VisualRules处理提供Ajax调用规则包的程序框架之外,还采用更加简便的方式来实现页面层。VisualRules通过页面配置器,直接配置不同的页面所需要设定的参数,然后根据页面模板来生成对应的页面。因此VisualRules可以为传统掉转方式,生成对应的jsp,也可以根据Ajax提交的特性,生成ext等页面,或者根据其他的框架来生成对应的页面代码。VisualRules生成的页面代码上传到服务器之后,就可以直接应用,而无需重启服务

        因此基于VisualRules进行开发,将每一层最核心的设置单独提出来配置,简化了每一层的开发。同时也使得维护和测试阶段,修改无需重启服务。使得业务需求发生变化时,真正实现了软件的随需而变。VisualRules使得数据库层变得动态,增强了业务逻辑配置的功能,简化了页面层的开发。以下分不同行业来说明在哪些项目中,可以充分利用VisualRules的这些功能:
金融行业
        VisualRules可以用于银行系统用户资格审核、风险分析等项目中,可以用保险项目的核保、险种分析等项目中。
流通行业
        VisualRules可以用于商业销售环节的定价策略的分析,返点政策的配置,销售预测,人事奖励机制的设置等。
制造行业
        生产排程算法的设定。
电信行业
         套餐配置的算法、积分系统等。
        在以上这些项目的使用中,充分利用本产品对业务规则的配置功能,实现了这些逻辑的随时可变。当然在一般的ERP或者企业管理系统中,充分利用本产品对页面层和数据库层的简化功能,实现这类项目的快速开发。


分享到:
评论

相关推荐

    规则引擎-规则测试和轨迹跟踪

    以Visual Rules Solution为例,开发者可以直观地创建并命名规则包,如“测试与轨迹”。 - 变量定义:规则包中通常需要定义变量来存储和操作数据。变量定义清晰且适应性强,是确保规则正确运行的基础。 - 逻辑编写...

    规则引擎-决策池

    在描述中提到的Visual Rules Solution旗正规则引擎中,决策池扮演了这样的角色。 1. **决策池功能介绍** 决策池的设计目标是提高规则的复用性和效率。在规则开发中,如果某些规则被频繁使用,将这些规则放入决策池...

    规则引擎-数据库对象

    在本文中,我们将深入探讨如何利用规则引擎,特别是Visual Rules Solution的旗正规则引擎,来访问和管理数据库中的部门信息,包括添加、修改、删除和查询部门等操作。 首先,我们要理解什么是数据库对象。在规则...

    规则引擎-版本控制

    下面将详细讨论规则引擎的版本控制以及如何在Visual Rules Solution的旗正规则引擎中实现这一功能。 首先,版本控制是规则引擎的一个重要特性。当业务规则不断迭代和更新时,传统的做法是直接修改代码,这可能导致...

    规则引擎-FTP上传

    在Visual Rules Solution的旗正规则引擎中,FTP上传的功能提供了以下步骤来实现这一过程: 1. **功能介绍**:FTP上传允许用户将完成的规则包和jsp页面存储在服务器的数据库中,供其他用户访问。当需要包含所有相关...

    Visual-Rules规则引擎产品介绍-PPT课件.ppt

    Visual Rules的架构包括规则执行平台、规则模板框架、业务规则与需求、规则管理系统等多个部分。业务人员负责维护数据和规则,架构师设计规则包模板,程序员处理基础数据结构和调用接口,厂商技术支持则提供问题分析...

    规则引擎-变量跟踪

    在Visual Rules Solution这款规则引擎中,变量跟踪功能能够帮助用户深入了解规则执行的细节,尤其是在处理复杂的业务逻辑时。当我们在规则包测试中启用变量跟踪,可以观察到变量在每个规则执行前后以及规则集内的值...

    规则引擎-规则对象分类

    在IT领域,规则引擎是一种软件系统,用于执行一套预先定义的业务规则,这些规则可以动态地改变而无需修改应用程序的源代码。规则引擎的核心概念包括规则对象、对象分类、规则包和规则集,它们共同构成了规则处理的...

    规则引擎-Java调用规则

    在Windows环境下,设置JAVA_HOME环境变量指向VisualRules的JRE或JDK目录。启动服务后,在Java工程中同样配置类路径,但需引入额外的json库(json-lib-2.3-jdk1.3.jar)和XML解析库(jdom.jar)。创建Java类,如`...

    规则引擎-调试与日志文件

    旗正规则引擎,即Visual Rules Solution,提供了一种用户友好的界面来创建、调试和管理规则包。以下将详细介绍规则引擎中的调试与日志功能。 1. **功能介绍** 规则引擎在测试阶段,调试功能至关重要,它允许开发者...

    规则引擎-Excel操作

    1. 创建规则工程对象库:首先,启动Visual Rules Solution,然后通过文件菜单创建一个新的规则工程,命名为“对象库”。这将作为所有规则和相关对象的容器。 2. 新建规则包:在“对象库”工程中,创建一个新的规则...

    规则引擎-XML操作

    在这个场景中,我们探讨了如何利用规则引擎,特别是Visual Rules Solution的旗正规则引擎,来操作XML数据,将表格数据转换为XML文件。XML(Extensible Markup Language)是一种结构化数据存储和交换的标准,广泛应用...

    VisualRules的电信业务支撑系统的开发

    本文将详细介绍基于VisualRules的电信业务支撑系统的开发过程,重点讨论规则管理系统的创建、系统建模、规则编写及与应用系统的集成等内容。 #### 二、创建规则库 创建规则库是构建规则管理系统的第一步。在这个...

    mysql-for-visualstudio-1.2.6.msi 官方下载原版

    MySQL for Visual Studio 1.2.6 是一个官方提供的集成开发环境插件,它使得Visual Studio 2015用户能够方便地与MySQL数据库进行交互和开发。这个插件是MySQL与微软Visual Studio深度整合的一个体现,为C#开发者提供...

    VS2022 VC运行库-适用于Visual Studio 2015、2017、2019 和 2022

    VS2022 VC运行库-----适用于Visual Studio 2015、2017、2019 和 2022 1.安装VC运行库 (1)直接双击 VC_redist.x64.exe 安装即可; (2)若没安装,程序无法打开,系统报错; (3)该版本运行库,适用于Visual ...

    规则引擎-多维决策表

    在Visual Rules Solution(旗正规则引擎)中,可以右键点击工程,选择新建规则包,命名为“多维决策表的”。接着,定义规则所需的变量,如学生姓名(stuName)、考试(test)、学科(subject)和得分(score)。这些...

    mysql-for-visualstudio-1.2.9.msi

    连接Mysql的连机器文件

    mysql-for-visualstudio-2.0.5

    MySQL for Visual Studio provides access to MySQL objects and data using Microsoft Visual Studio. MySQL for Visual Studio provides

Global site tag (gtag.js) - Google Analytics