VisualRules是在规则引擎基础上发展出来的一款产品,其秉承了规则引擎可以使业务逻辑的变化可以独立于程序之外的特点,同时结合国内软件项目的特点,为数据库层和界面层也提供了独立于程序之外配置的特点,因此本产品不光是一个业务规则管理系统,还是一个基于规则引擎的web快速开发平台。与国际上其他的业务规则管理系统相比,本产品具有以下特点:
顺序执行的规则引擎算法
传统的业务规则管理系统,其规则引擎的算法基本上会采用reta算法,其基本原理是运行阶段判断哪些规则符合条件,然后去决定其执行轨迹,这类似于人工智能的思想,当然其最初出发点也是为了人工智能判断。由于业务系统业务逻辑的频繁变动,因此希望可以利用规则引擎来实现业务规则的配置,因此也就自然将reta算法作为业务系统中业务逻辑的执行算法。但是这两者其实是不一致的,业务系统中的逻辑一般是确定的,有着明确指定的执行先后顺序的。而reta算法是动态决定顺序的,因此在用reta算法描述业务逻辑时,往往显得非常琐碎,并且其速度也比纯粹用程序描述要慢很多。VisualRules不再采用难以描述业务逻辑的reta算法,而采用顺序执行的算法来描述业务逻辑。这样描述业务逻辑和并平时用流程图和文本来描述业务逻辑就没有多少区别。可以最简单话的配置业务逻辑,同时其速度和手写程序的速度是一致的。VisualRules是真正的为业务系统中业务逻辑的实现而设计的,是软件项目业务逻辑实现的最佳选择。
公共规则、循环规则、关联决策表
由于规则执行算法基于顺序执行的算法,因此在描述业务逻辑上比reta算法有更多的展现形式,特别是可以通过规则集来定义多个规则的共同条件以形成执行的分支,或者用来描述循环运行的一组规则。另外在决策表的支持方面也有三种方式,二维决策表、多维决策表以及关联决策表,以更方便的形式来描述逻辑。同时规则还支持否则如果(elseif)方式的条件,进一步增强了规则描述业务逻辑的能力。
动态的参数接口、数据库接口和Excel接口
传统的规则引擎如JSR94描述的规则引擎调用接口采用Java类来传递值,这种方式使得接口的数据结构不能像规则一样变动。VisualRules通过Map来传递值,因此其接口的数据结构是可变的。同时传统的规则引擎一般可以通过设置来直接调用Hibernate等外部数据库对象,这样其实就是通过类和XML来定义了数据库的调用接口,这种方式就不能使数据库对象不能像规则一样灵活变动。因此VisualRules采用List来定义数据库对象接口,这种方式使得数据库对象也是可变的。传统的规则引擎一般不能直接操作Excel数据,但是在实际的业务逻辑的应用中,部分数据并没有存储在数据库中,或者需要用Excel来展现数据。VisualRules可以直接来操作Excel文件。
内存表格
业务系统的业务逻辑实现有个特点,就是基本都是批量处理的处理,并且很多数据存储在数据库中。但是如果在实现业务逻辑时,频繁的去访问数据库,会使得整个业务逻辑的实现效率很低。因此VisualRules设计了内存表,可以将数据库中的数据先取出后放到内存表中,然后通过内存表相互之间做匹配或汇总处理。这样极大的提高了执行效率,而且也增强了业务逻辑层实现的功能。
最小化规则引擎
做开发平台最关键是运行时的稳定和性能。因此VisualRules采用最小化的规则引擎,规则引擎只处理规则包的加载和调用,不处理规则语法以及规则解析工作。在开发规则时,开发平台根据规则语法将规则包静态编译成可执行的java代码,这样最大限度的保证的规则运行平台的稳定。同时将规则的开发平台和运行平台分离,使得运行平台不会随着规则语法以及功能的增强而变化。
基于模板的页面配置开发
在页面表现层的实现上,当前最流行的技术就是采用Ajax来实现界面的表现。但是在表现逻辑的实现上,一般情况下,我们会基于一套框架(比如Ext、Dojo、JQuery等),然后再通过javascript来编写具体的逻辑代码。但是这些表现逻辑代码其实是非常晦涩难写的,而且也不能体现所见即所得的效果。VisualRules将基于框架的组件配置信息单独提出来,通过图形化界面来设定所需要的参数,然后根据模板生成对应的代码。这种方式类似于代码生成器方式来生成界面层的代码,其开发工作量是最小的。
VisualRules可以取代当前业务逻辑层和数据层所有的操作代码,准确的说,可以取代从Struts、Spring、Hibernate这些相关的代码。Ajax直接通过通用的Servlet来访问规则包。这种取代方式,极大的简化了后台代码的开发,同时也使得业务逻辑层更加快速适应业务需求的变化。规则引擎可以有效的和当前主流的Ajax框架进行交互,也可以在Jsp中,通过java代码来访问。页面层代码可以通过页面配置器来根据模板生成,也可以手工编写。
基于以上这些特点,使用VisualRules可以为用户带来一些这些价值:
软件系统随需而变
软件系统最大的价值就是体现在系统运行的过程中,随着用户业务的变化,软件能够快速的加以适应,而不是成为业务发展的障碍。因此软件变更的响应时间以及影响,是衡量软件价值的关键。VisualRules使得软件系统可以“零时间”响应用户需求的变化,真正的做到了软件系统随需而变。
降低软件成本
采用VisualRules开发软件系统,可以减少项目开发所需要的人员数量,同时也减少了每个人的工作量,使得项目的周期缩短。因此visualRules可以减少软件开发的成本和缩短软件开发的时间。同时由于VisualRules提供了方便的配置工具,可以在软件项目后期维护阶段快速适应需求的变化,因此软件的维护阶段,当有需求变更时,不再需要安排程序员去维护。而是一般的技术支持人员甚至客户本身就可以实现变更工作。这使得安排一个技术支持人员就可以同时支持多个项目的维护工作。而不像原先那样,当维护时需要安排原先的程序员来进行对应。因此使得软件项目整个成本属于完全可控的范围以内。
提高软件复用
VisualRules来实现业务逻辑时,是脱离程序语言来实现。因此其实现的业务逻辑可以供不同的语言来进行调用,也可以供不同的框架来进行调用。特别是当前基于web浏览器的富客户端技术不断发展的今天,富客户端框架很有可能会有新的框架进行取舍。因此业务逻辑脱离这些框架的实现显得尤为关键。当技术更新时,在新的技术框架的实现下,可以调用原先的业务逻辑代码,这最大限度的保证了原先软件项目的投资。
分享到:
相关推荐
在描述中提到的Visual Rules Solution旗正规则引擎中,决策池扮演了这样的角色。 1. **决策池功能介绍** 决策池的设计目标是提高规则的复用性和效率。在规则开发中,如果某些规则被频繁使用,将这些规则放入决策池...
以Visual Rules Solution为例,开发者可以直观地创建并命名规则包,如“测试与轨迹”。 - 变量定义:规则包中通常需要定义变量来存储和操作数据。变量定义清晰且适应性强,是确保规则正确运行的基础。 - 逻辑编写...
在本文中,我们将深入探讨如何利用规则引擎,特别是Visual Rules Solution的旗正规则引擎,来访问和管理数据库中的部门信息,包括添加、修改、删除和查询部门等操作。 首先,我们要理解什么是数据库对象。在规则...
下面将详细讨论规则引擎的版本控制以及如何在Visual Rules Solution的旗正规则引擎中实现这一功能。 首先,版本控制是规则引擎的一个重要特性。当业务规则不断迭代和更新时,传统的做法是直接修改代码,这可能导致...
Visual Rules的架构包括规则执行平台、规则模板框架、业务规则与需求、规则管理系统等多个部分。业务人员负责维护数据和规则,架构师设计规则包模板,程序员处理基础数据结构和调用接口,厂商技术支持则提供问题分析...
在Visual Rules Solution这款规则引擎中,变量跟踪功能能够帮助用户深入了解规则执行的细节,尤其是在处理复杂的业务逻辑时。当我们在规则包测试中启用变量跟踪,可以观察到变量在每个规则执行前后以及规则集内的值...
在Visual Rules Solution的旗正规则引擎中,FTP上传的功能提供了以下步骤来实现这一过程: 1. **功能介绍**:FTP上传允许用户将完成的规则包和jsp页面存储在服务器的数据库中,供其他用户访问。当需要包含所有相关...
在IT领域,规则引擎是一种软件系统,用于执行一套预先定义的业务规则,这些规则可以动态地改变而无需修改应用程序的源代码。规则引擎的核心概念包括规则对象、对象分类、规则包和规则集,它们共同构成了规则处理的...
在Windows环境下,设置JAVA_HOME环境变量指向VisualRules的JRE或JDK目录。启动服务后,在Java工程中同样配置类路径,但需引入额外的json库(json-lib-2.3-jdk1.3.jar)和XML解析库(jdom.jar)。创建Java类,如`...
在这个场景中,我们探讨了如何利用规则引擎,特别是Visual Rules Solution的旗正规则引擎,来操作XML数据,将表格数据转换为XML文件。XML(Extensible Markup Language)是一种结构化数据存储和交换的标准,广泛应用...
旗正规则引擎,即Visual Rules Solution,提供了一种用户友好的界面来创建、调试和管理规则包。以下将详细介绍规则引擎中的调试与日志功能。 1. **功能介绍** 规则引擎在测试阶段,调试功能至关重要,它允许开发者...
1. 创建规则工程对象库:首先,启动Visual Rules Solution,然后通过文件菜单创建一个新的规则工程,命名为“对象库”。这将作为所有规则和相关对象的容器。 2. 新建规则包:在“对象库”工程中,创建一个新的规则...
本文将详细介绍基于VisualRules的电信业务支撑系统的开发过程,重点讨论规则管理系统的创建、系统建模、规则编写及与应用系统的集成等内容。 #### 二、创建规则库 创建规则库是构建规则管理系统的第一步。在这个...
MySQL for Visual Studio 1.2.6 是一个官方提供的集成开发环境插件,它使得Visual Studio 2015用户能够方便地与MySQL数据库进行交互和开发。这个插件是MySQL与微软Visual Studio深度整合的一个体现,为C#开发者提供...
连接Mysql的连机器文件
MySQL for Visual Studio provides access to MySQL objects and data using Microsoft Visual Studio. MySQL for Visual Studio provides
在Visual Rules Solution(旗正规则引擎)中,可以右键点击工程,选择新建规则包,命名为“多维决策表的”。接着,定义规则所需的变量,如学生姓名(stuName)、考试(test)、学科(subject)和得分(score)。这些...
MySQL for Visual Studio 1.2.8 是一个强大的开发工具,专为Visual Studio设计,用于简化MySQL数据库在.NET应用程序中的集成和管理。这个版本的更新旨在提供更好的性能、稳定性和新特性,使得开发者能更高效地与...