在智能交通系统中基于DroolsBRMS实现业务规则动态管理

在智能交通系统中基于DroolsBRMS实现业务规则动态管理
简介: 本文介绍了智能交通系统中的一个典型业务场景,并展现了如何通过 Drools BRMS 实现该业务规则的动态管理。
引言
业务规则管理系统(BRMS)在电信,银行和政府等各行业中广泛使用,用来支持业务规则的编辑,管理和部署,以适应业务的快速变化。Drools 是一款基于 Java 的开源产品,包括业务规则执行引擎和业务规则管理系统。本文首先介绍了业务规则引擎和业务规则管理系统的基本概念和体系结构,然后介绍一个智能交通系统中的典型业务场景,最后展现如何通过使用 Drools BRMS 来实现这个业务场景,并根据不同的业务需要灵活配置这些业务规则。
回页首
基本概念介绍
智能交通系统中的业务规则简介
智能交通系统中的道路收费系统的基本业务场景是:载有特定装置(通常是电子标签装置或者是有全球卫星定位功能的装置)的车辆进入收费区后,收费区的信号探测器发出扫描信号,检测并获取该车的有关信息,譬如信号探测系统能够获取并记录诸如车辆的几何尺寸、车重、车型等数据。对于没有安装这种装置的车辆来说,系统可以通过摄像机拍摄记录获得车型、车牌号等信息。然后根据不同的收费业务规则,针对不同的车辆采取不同的收费标准。
目前主要的道路收费业务规则有基于特殊道路使用收费、基于区域收费和基于距离 / 时间收费等。
基于特殊道路使用收费:这种收费模式通常是针对特殊的道路,如某条高速公路。这种收费的业务规则比较简单,当车辆通过一次收费检测点就收取一次费用。基于特殊道路的使用收费模式还广泛应用在城市拥堵费收取中。当车辆通过某条比较拥堵的公路时,就会被收取相应的费用。
基于区域收费:这种收费模式是指在某个指定的区域内对行驶车辆收取一定的费用。需要记录车辆何时何地进入指定区域以及何时何地离开,当获得完整的车辆进入和离开的信息
以后,将会产生一次计费。
基于距离 / 时间收费:这种收费模式通常应用在整个国家的公路网,可以覆盖所有的车辆类型,收费的业务规则是以车辆行驶的距离(时间)为输入。首先在车辆上安装一个特殊的车载器件(目前运用很多的是有全球卫星定位功能的仪器),当装有 GPS 仪器的车辆在开上高速公路后,收费系统借助于卫星信号和其他定位传感器,得到车辆的位置,通过卫星定位系统确定车辆在高速公路上行驶的里程,然后进行结算,自动统计缴费额,并把数据按一定间隔时间发送到道路收费中心,由收费中心向拥有车辆的运输公司开出账单,收取这段里程的道路使用费用。
业务规则引擎(Rule Engine)
前面提到的智能交通系统中的业务规则,是业务场景中真实存在的,为了实现这些业务规则,我们可以通过在程序代码里,用各种编程语言和其他业务逻辑同样的实现。但是由于业务规则的易变性,很容易导致程序代码的重写,无疑会增加维护的成本和无法快速反应需求的变化。业务规则引擎提供了对业务规则解析执行。降低实现业务逻辑的复杂性,提高了应用程序的可维护性和可扩展性。
业务规则管理系统 (BRMS)
业务规则管理系统是在业务规则引擎基础上的扩展,提供了一套包含业务规则整个生命周期的管理系统。减轻了业务规则维护的工作量。降低了复杂性,方便用户而不是技术专家来管理业务规则。提供了业务规则动态修改的能力,即业务人员通过在系统中改变业务规则文件,应用程序无需重新装载,就能及时反应规则的变化。
Drools BRMS 4.0.7 简介
Drools BRMS 是一个 Web 应用程序,可以部署在大部分的支持 J2SE 1.5 的 Web 容器下,如 Tomcat 5.5。Drools BRMS 是从 Drools 的 4.0 版本之后加入的,我们使用的版本是 4.0.7。
Drools BRMS 架构体系分为三大部分,第一部分是 UI 层,提供了一个基于 Ajax 技术的业务规则编辑、管理工具。利用 Google Widget Toolkit(GWT)实现 Ajax 技术,提供了较好的用户体验。第二部分是规则文件仓库层,将规则文件统一保持在文件系统或关系数据库。基于开源 Apache 工具的 JackRabbit 实现。JackRabbit 是一种支持结构化和非结构
化数据的内容存储,是 Java 内容仓库规范 JCR 的一个实现。最后一个是 Drools 的核心引擎,用来对用户提交的规则文件进行验证、编译和部署。
开发人员通过规则文件的编辑部署,生成了包含 rule 的 package 对象,这是引擎可直接操作的内存对象。BRMS 通过一个 URL 提供对这个对象的 HTTP 访问。第三方可以通过 RuleAgent 的 API 来访问这个 URL,程序自动下载这个 Package 对象就直接可以在规则引擎运行,得到规则执行的结果。整个结构如下图所示
图 1. Drools BRMS 组件
回页首
详细业务规则抽取
这里以一个高速公路收费的场景为例,抽取其中详细的计费业务规则。此业务规则是前面介绍过的基于特殊道路使用的收费模式的一种应用,当车辆通过一次收费检测点就收取一次费用,产生一条收费账单。对于不同的车辆,通过不同的道路,将会被收取不同的费用。
业务规则输入
不同的道路类型、收费检测点类型、车辆类型、账户类型、车辆使用类别和不同的通行时间会产生不同的费用。这些信息都将作为计费业务规则的输入。
道路运营商代码
收费检测点代码
车辆通过收费检测点时间
车辆类型 ( 摩托车、小型轿车、卡车等 )
车辆用途类别
车辆识别方法 ( 通过电子标签识别、通过车牌摄像识别等 )
车辆绑定账户类别
业务规则输出
收费项目列表 ( 如道路基本使用费、附加费和折扣等 )
收费项目明细 ( 包括收费类别以及费用金额 )
业务规则抽取结果
道路使用费的业务规则
如果车辆安装合法的电子标签设备,当车辆通过收费站时,系统将通过读取电子标签的内容识别车辆信息。如果车辆未安装合法的电子标签设备,系统会启动摄像头拍摄车辆通过时的图片,自动识别图片中的车牌信息。如果系统无法自动识别,将通过人工识别获得车辆信息。无论是通过电子标签识别,自动车牌识别,还是人工识别,当获得车辆本身信息以及车辆绑定的账户信息之后,可以根据相应的业务规则计算出道路使用费用。
一个简单的道路使用计费规则如下表所示:
焊锰钢板用什么焊条智能家居管理系统
序号
道路运营商代码
收费检测点代码
车辆绑定账户类别
车辆类型
日期
时间
车辆用途类别
道路基本使用费
1
201
001
ANNUAL
1
2,7
8,24
A
5.1
宁码输入法2
201
001
ANNUAL
1
2,7
0,8
A
4.9
3 深度时空
201
001
ANNUAL37iii
1
1,1
8,24
A
5
4
201
001
ANNUAL
1
1,1
0,8
A
3.3
5
201
001
ANNUAL
2
2,7
8,24
B
6.5
6
201
001
ANNUAL
2
2,7
0,8
B
5.3
7
201
001
ANNUAL
2
1,1
8,24
B
5.4
8
201
001
ANNUAL
2
1,1
0,8
B
3.7
9
201
001
TEMP
3
2,7
8,24
C
国画调盘5.2
10
201
001
TEMP
3
2,7
0,8
C
3.4
附加费用的业务规则
在 3.3.1 中,我们提到,系统可能会通过不同的方法识别车辆:电子标签识别(TAG),自动识别车牌(OCR)或人工识别车牌 (MIR),不同的识别方法可能产生不同的附加费用。电子标签识别快速、简单,这里附加费用为 0。自动车牌识别将启用光学图片识别引擎来识别车牌,产生一定的附加费(0.5 元)。而人工识别则是在自动车牌识别失败后,通过人眼辨别图像识别车辆,需要耗费更多的系统资源和人力,产生了较高的附加费用(1 元)。附加费用的收取可以鼓励车主使用电子标签,使得收费更快捷简单。
序号
车辆识别方法
附加费
1
TAG
0
2
OCR
0.5
3
MIR
1
折扣的业务规则
用户在为车辆注册绑定账户时,可以选择不同的账户类型,如临时账户 (TEMP)、年结算账户(ANNUAL),不同的账户类型可以给予不同的优惠。
序号
车辆绑定账户类别
折扣
1
ANNUAL
-0.2
2
TEMP
-0.4
回页首
应用开发
基于上面的介绍,我们了解了一个典型的业务场景。下面我们介绍如何用 Drools 实现这个业务场景。我们首先要建立一个完整的规则库,包括在 Drools BRMS 上建立工作目录,业务对象建模以及基于决策表的规则文件编写。其次我们编辑了一个简单的用户界面来调用规则引擎。最后我们介绍对规则进行的修改能够在我们的用户界面上及时展现。
建立工作目录(Package)
工作目录是存放业务规则文件,业务对象以及其他一些规则相关对象的地方。将 Drools BRMS 安装到 Tomcat 并启动后,打开 URL:localhost:8080/drools-jbrms/org.drools.brms.JBRMS/JBRMS.html,点击 Login 进入系统,我们就可以看到系统的主界面。
Drools BRMS 以包的方式管理所有相关的规则文件,函数和业务对象模型等。我们点击“create new package”的图标,创建一个名为 com.sample.rule 的工作目录。以后我们将在这个包下创建规则和业务对象模型。

本文发布于:2024-09-22 13:40:28,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/264337.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:规则   业务   车辆   收费   识别
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议