摘要
本文主要探讨业务规则管理系统(BRMS)在银行授信业务应用中的适用性。本文将会介绍授信业务应用中对规则管理系统的需求,并结合一个授信额度规则的简化案例来说明。
2.ILOG 公司
ILOG是一家成立于1987年的世界知名的、以开发企业级软件类库组件 (Software Component) 和业务规则管理系统 (BRMS) 为主的跨国软件公司。她在美国NASDAQ和法国股票市场同时上市,在法国巴黎和美国硅谷设有上市公司的总部。新加坡是亚太地区的总部。ILOG在2002正式在中国北京设立办事处。2005年ILOG在上海成立了子公司和开发中心,为中国的用户提供更直接的本地化的服务。
ILOG拥有3000多个、遍布世界30多个国家和地区的企业级用户。她的智能化C++和Java软件组件(包括业务规则管理系统)被广泛应用在供应链、电信、交通、金融、国防等领域。
3.背景介绍
3.1授信业务
随着银行业的不断发展,银行信贷业务的复杂度不断增加。传统的业务处理方式是通过手工处理结合大量文书工作,或者采用半自动化的方式。因为传统方式的效率问题和计算机软件业的迅速发展,目前的趋势是自动化的业务流程管理 (BPM)。
授信是银行信贷业务中重要的处理环节。当客户提出信贷申请时,银行根据业务的类型,客户的信用等级等信息计算信用额度。不难看出,这个是业务流程中的一个决策点, 它具体体现为银行为授信制定的业务规则。
3.2 业务规则的传统实现方式
银行把业务规则加入到软件系统中传统的方式是通过业务人员与IT技术人员的交流把业务逻辑转换计算机逻辑,以Java,C++等程序语言或者数据库存储实现。 这样的方式有一些弊端:
§ 业务规则不易维护,规则的更新和修改非常不灵活。每次业务变化必须要系统开发人员进行程序代码级的编码。
§ 业务规则难以让银行业务人员理解,因为描述规则的是晦涩的技术语言或参数表。
§ 业务规则难以被查询、管理和追踪,因为规则是分散的固化在程序中,无法在“盒外”实现这些功能。
由于上述这些问题,银行需要一种更有效的解决方案。“业务规则管理系统”(BRMS)可以使银行授信系统完全面向业务,具备灵活性和可维护性,减少业务部门与IT部门的协同工作难度,加强银行对授信业务规则的控制管理能力。 ILOG是目前世界上最著名的业务规则管理系统的开发商。
4.ILOG JRules 业务规则管理系统(BRMS)
ILOG JRules 是面向 Java 环境的整套业务规则管理系统 (BRMS),它提供了对整个企业的业务规则进行建模、编写、测试、部署和维护所必需的所有工具。BRMS 提供了用于组织和存储业务规则的规则库,以及用于执行这些规则的规则引擎。
普通业务人员 (查询和使用规则) |
应用系统 |
应用系统 |
规则库 (知识库) |
采集系统 |
|
|
DB |
|
|
Files |
面向业务人员的 规则创建、修改、 查询、部署 |
规则管理 |
规则部署到 规则引擎中 |
|
采集系统 |
应用系统 |
系统管理员 (部署检查规则) |
|
业务经理(创建和修改规则) |
如上图所示,ILOG业务管理系统有下列两个重要的特点:
- 面向业务。 JRules提供面向不同用户角色的图形化界面,让策略管理人员、业务分析人员和应用程序开发人员之间实现业务规则的共享、组织、执行和管理。
- 业务逻辑存储在“盒外”, 而不是固化在程序中。存储于规色库的规则可以被查询,便于更新和部署。这种“盒外”的存储方式也使得业务规则集不被限制于和一个应用系统绑定,而可以被部署到多个应用系统中。BRMS这种把业务规则从程序中分离出来进行管理的方式类似于数据库管理系统(DBMS)。不同的是DBMS管理的是数据而BRMS管理的是业务逻辑。
ILOG JRules 业务规则管理系统大体可以分成两个主要组:JRules 应用程序和 JRules 组件。包括以下三个主要应用程序:用于规则创建与维护的 Rule Builder 和 Web Rule Builder,以及用于在 BRE 服务器上管理规则集执行的 BRE 服务器控制台。JRules的体系结构如下图所示:
- 规则引擎,用于执行规则。区别于传统的将规则固化在程序中的方式, 规则引擎 API 提供的类可以使规则引擎和在业务规则应用程序中提取的规则集进行集成。
- 规则库,用于管理规则和规则集元素。Rule Builder 和 Web Rule Builder 所集成的规则库使不同类型的用户能够编写和维护规则。银行的授信规则可以根据大量的核保规则在规则库中可以按业务、性质、用途等方式安排组织。
- BRE 服务器,用于在 J2EE 环境(包括此环境所提供的服务)中执行规则。其 API 提供的类使业务规则应用程序能够与 BRE 服务器通信。 在企业级的应用中,J2EE环境下的集成相当常见。
- 完整的业务规则语言支持,利用这个架构,开发人员可以非常方便的定制面向授信业务的规则语言和规则模板。银行业务人员可以直接使用客户化的规则语言和模板来创建和修改授信规则。
5.ILOG JRules在银行授信系统中的应用
在接下来的部分中将以某银行的一个简化案例来说明ILOG JRules在银行授信系统技术定位和应用。
5.1 原始需求
首先,该银行有一系列的业务规则需要实现,这些规则的原始形式是银行业务人员用自然语言或者表格形式进行表述的,例如下面的几条规则:
- 如果是额度授信并且非特殊情况, 那么按照单户授信额度表授信
- 如果是集团授信并且跨一级分行分割成员授信额度, 那么上移至总行
- 单户授信额度表:
信用等级 分行授权等级 | AA级以上 | AA级以下 |
A | 10000 | 5000 |
B | 9000 | 4000 |
C | 8000 | 3000 |
该银行需要对规则进行比较全面的管理,包括规则定义,规则部署,规则检测等过程。
关于集成,该银行现有的系统使用Weblogic,因此希望用JRules实现的应用也能集成到Weblogic服务器上。
5.2 授信业务的对象
在自动化的业务流程管理中银行把业务策略以软件的形式实现,对一个授信对象进行分析。以该银行为例,一个授信对象通常可以包含下列信息:
§ 业务类型(主业务,具体业务类型)
§ 分行授权等级
§ 客户信用等级
§ 其他可能的信息
授信对象的分析结果可能如下:
§ 给出授信额度
§ 上移一级行或上移至总行
§ 其他可能
5.3 授信业务的过程
银行的授信过程是指银行通过业务规则用来对上面提到的授信对象进行分析, 从而得出结果的过程。下面是以某银行为例的一个简化的过程:
§ 首先,判断主业务类型, 可能为短期信贷业务, 集团授信或者额度授信等
§ 其次,根据主业务类新判断具体业务类型,不同的主业务的具体业务也不同,例如短期授信业务的具体业务可分为额度授信客户和非额度授信客户
§ 第三,根据具体业务类型,判断是按单户授信总量或是按中长期审批权授信(也可能有其他结果)
§ 最后,根据分行授权等级和客户信用等级查看单户授信/中长期审批的额度,给出授信额度(或产生其他结果)
5.4 规则的表达
JRules支持面向银行授信业务的规则表达,包括接近自然语言的BAL规则语言,决策树和决策表。
BAL语言通过“如果”“那么”的形式表达,支持“与”和“或”的条件。是非技术性的便于银行业务人员理解的语言:
如果
分行授权等级是B
与客户信用等级是AA
那么
授信额度为20000
决策表是用表格形式将一组类似的业务规则简要地表示出来,从而便于浏览和查看。 决策表中的每行表示一个规则,而列显示条件或操作。决策表中的单元包含规则的条件或操作的值。例如下图中的部分演示规则:
决策树的功能与决策表相似。 树的每个分支节点表示几个选择中的一个选择,每个叶子节点表示一个分类或决策。以某银行为例,一部分规则是由需要先对条件A进行判断,根据A的结果对条件B进行判断,这种情况下使用决策树可以使业务规则一目了然,如下图所示某银行的决策树:
此外JRules支持规则流的定义,规则流本身不是规则而是规则的一种组织形式。它定义了解决问题或执行业务流程的顺序。规则流与统一建模语言 (UML) 活动图类似。如下图所示的规则流:
5.5规则的编辑
在前面的部分中我们提到过JRules提供规则编辑界面的两个应用程序为:
Rule Builder 提供了许多供开发人员、业务分析人员和策略管理人员编写、管理、测试和执行业务规则的功能。它附带多种功能例如规则一致性检查,规则调试,CVS,,版本控制 ,规则库锁定等。
Rule Builder功能强大而全面,Web Rule Builder 则为银行业务管理人员提供了更简单的、基于 Web 的业务规则编辑和管理界面。这个界面无需安装更便于访问, 而且IT技术人员可以对界面进行定制来适合业务需要。例如下图的某银行的演示截图是经过定制的称为Web Console (或Web 控制台)的界面, 它提供规则编辑功能,但是隐藏了其他Rule Builder中一些细节使得界面对业务人员来说更简单明了:
5.6 规则的部署和执行
在JRules中规则与应用程序的集成有两个主要案例:
- 使用提供的 API 将规则引擎嵌入到 J2SE 应用程序中,而规则是使用规则集文件的形式进行管理,执行时将该规则集文件传递到规则引擎中。
- 使用业务规则执行 (BRE) 服务器执行规则应用程序中打包的规则集,应用程序与 BRE 服务器在 J2EE 或 J2SE 环境中集成。除规则执行外,BRE 服务器还提供了许多服务。这是 J2EE 上的推荐案例。
许多企业级的应用,例如某银行的授信系统需要在J2EE环境下,在Weblogic应用程序服务器上部署和运行,属于上述的第二种案例。授信系统的演示通过下图所示的架构,把由Rule Builder生成的规则应用程序部署到BRE服务器上,并由J2EE应用程序调用执行规则。
BRE服务器同时提供对规则应用进行部署,查看和管理的Web界面BRES Web Console:
最后我们看一下某银行的授信规则应用程序成功部署后在Weblogic8.1上的运行效果:
输入界面:
执行的结果如下,值得注意的一点是输出的内容中还包括了哪几条规则被实际执行的信息,这是对规则运行进行监控的一种实现方式。
6.总结
我们可以看到授信是银行信贷业务中重要的一环,作为业务流程中的一个决策点它往往包含大量的业务规则,而且规则可能经常因为业务需要而改变。在这种情况下需要一个高效的业务规则管理系统来支持规则的编辑,部署和运行。而ILOG JRules正是适合这种需要的业务规则管理系统。事实上不仅仅是银行信贷业务,ILOG JRules也适用与金融,保险,电信等各种需要业务规则的领域。