0 引言
在3G时代,电信市场竞争相当激烈,为留住客户或者争夺客户,电信公司需要不断的推出新的业务或者对原来的业务进在二优化调整,以满足用户需求,这就要求作为电信运营核心支撑系统的电信CRM系统必须具备快速的业务部署能力。而目前的CRM系统,由于业务规则与系统功能硬绑定,造成实现新业务或者需求变更时需要修改代码,实现周期长,开发成本高。因此我们需要根据CRM系统的特点,设计一个能够应用在电信CRM系统中的电信CRM规则引擎,以降低了系统的开发和维护成本,提高需求支撑效率。
1 规则引擎技术
1.1 业务规则定义
一个完整的业务规则包括了条件和触发操作两部分内容。业务规则具有如下特性:原子性、申明性、准确性、一致性、非冗余性。
电信业务规则是指在一定的业务场景中(例如新建客户、订单录入、产品管理等)被触发,并通过管理和控制业务场景中涉及的业务实体(例如客户、订单、产品等)的属性、状态、行为和关系等来实现相应的业务逻辑。电信业务规则一般是由业务人员、配置人员以及开发人员来开发和维护,其中复杂的业务规则一般是开发人员使用开发语言来定制。
1.2 规则引擎基本结构
规则引擎起源于基于规则的专家系统,而基于规则的专家系统又是专家系统的其中一个分支坦。
基于规则的专家系统结构如图1所示。推理引擎包括三个部分:模式匹配器、议程和执行引擎。模式匹配器的作用是负责将事实与规则进行匹配,从而决定哪些规则符合事实:议程的作用是负责管理模式匹配器挑选出来的与事实匹配的规则的执行顺序:执行引擎则负责执行规则和相关动作。
图1 基于规则的专家系统结构
1.3 主流规则引擎与算法
1.3.1 JSR-94规范
过去大部分的规则引擎开发并没有规范化,各自都有自己的API,这样换一个规则引擎产品,应用系统都需要重写业务规则以及调用规范引擎的代码,代价比较大。2003年11月,为了使规则引擎技术标准化,Java社区制定了Java规则引擎API(JSR94)规范,规范于2004年8月最终发布。
目前大部分的商用或者开源规则引擎均支持JSR-94规范,如ILOG、Drools、JLisa,但还有部分产品不支持此规范,如Mandarax、OFBiz Rule Engine等。
1.3.2 Rete算法
Rete算法是在1979年Charles Forgy在论文中首次提出的,它的基本思想是在模式匹配中利用推理机的时间冗余性和规则结构的相似性,通过保留匹配过程得到的中间信息,以空间代价来换取提高推理效率的一种模式匹配算法。因此Rete算法快速匹配的主要依据有两个:时间冗余性和结构相似性。
1.3.3 Drools规则引擎
Drools是Jboss公司旗下一款开源的规则引擎,是时下在Java开发人员中比较流行的一款开源规则引擎,它符合JSR-94标准,运行速度比较快,而且提供了强大的Eclipse Plugin开发支持。Drools支持多种的冲突解决策略,如优先级策略、后进先出策略、先进先出策略、随机策略、复杂性优先策略、简单性优先策略等,而且允许灵活选择冲突解决策略。
电信CRM系统定位和目标
电信CRM系统重点支撑以下业务目标:
(1)系统能够满足电信客户和电信市场不断发展的需要,为实现端到端的服务创造条件,最大限度增加电信客户的满意程度。
(2)实现综合、全面业务受理和处理。
(3)对销售策略和销售渠道全面的支持,保证企业各种经营方式的实施。
(4)业务人员可操作的各种配置和定义功能,包括:业务、产品、促销策略、价格、资源、流程、客户等的实体属性、各种实体关联等,保证业务处理的灵活性。
(5)个性化管理和服务,同一个系统适应不同对象和不同阶段的业务要求。
(6)对企业决策的支持和准备。
电信CRM系统功能架构
电信CRM系统的功能架构如图2所示。
自有与社会渠道管理:渠道是中国电信面向客户进行营销、销售和服务的载体,是中国电信与客户进行交互的具体途径。渠道主要包括实体渠道、社会渠道、直销渠道和电子渠道。渠道管理提供针对渠道运营的管理支撑功能和客户接触交互支撑管理。渠道管理主要包括渠道信息管理、酬金考核管理、渠道工作支持和渠道交互支撑。
图2 电信CRM系统功能架构
当前已经在生产上运营的电信CRM系统在系统架构上采用基于B/S模式的多层架构,系统架构由展现层、应用层、信息存取层、信息资源层组成。CRM系统架构如图3所示。
图3 CRM系统结构图
3 电信CRM系统架构
展现层:展现层是CRM系统与接触渠道进行信息交互的平台,通过界面集成技术将界面展现组件组合成用户界面。用户通过用户界面调用业务逻辑来实现业务功能。
应用层:这个层次是所有应用的基础。构件完成基本的系统或商务处理功能。这些功能通过服务向应用或外部提供。为了使构件提供的服务(包括本系统和外系统甚至是企业外部的)能够相互协调,实现完整的业务功能,就必须有构建运行环境及和应用集成技术。
信息存取层:信息存取层实现系统的共享信息服务。该层实现对数据的封装,并把封装后的数据转换成有价值的业务与系统信息,向其上的应用层和其他相关外部系统提供一致的与业务逻辑无关的信息服务。
信息资源层:信息资源层负责系统的数据存储及维护数据的完整性与一致性。数据可以根据需要存储在数据库管理系统、文件、外部存储设备中。
4 基于规则引擎的电信CRM系统
4.1 现有架构的不足
与传统的C/S架构相比,目前的多层架构将用户界面和内部逻辑分离,使新应用的添加和变更比传统方式方便了许多,因此能够适应大规模和复杂的应用需求,并能够有效降低建设和维护成本,简化管理,但是随着用户对需求的支撑速度要求的提高,目前额架构还存在着一些不足。因为目前系统中管理和维护着大量的、各种复杂的业务规则,但是按照目前的架构以及开发思路,一般把实现客户需求的业务规则直接实现在应用代码中,这样业务规则与系统功能硬绑定,不但实现复杂繁琐,而且后续维护困难。
4.2 引入规则引擎技术的电信CRM系统架构
为了能真正实现灵活性,需要把业务逻辑与应用代码剥离。而规则引擎技术可以实现此目标,因此可以在系统中引入规则引擎,形成单独的业务规则层,业务规则层向应用层提取规则判断服务,应用层通过与规则层的交互实现业务逻辑的处理,这个业务规则层与原来系统架构中的展现层、应用层和信息存取层、信息资源层就构成了基于规则引擎的CRM系统架构。基于规则引擎的CRM系统架构如图4所示。
图4 引入规则引擎技术的电信CRM系统架构
通过业务规则层的引入,使得整个CRM系统的各种应用能够使用一致的规则,同时在业务规则变化时,能够不用重新编写应用程序的代码,就能很容易的修改和维护业务规则,从而满足快速支撑用户多变的业务需求的需要。
5 结束语
本文首先对业务规则的概念以及规则引擎的原理进行了分析,并介绍了JSR-94规范以及开源的Drools规则引擎。研究了电信CRM系统目前多层的系统架构,并针对目前架构的不足之处,提出了将规则引擎应用到CRM系统中,并构建了增加业务规则层的多层技术架构模式。使得系统的应用变更更加方便,从而提高了系统的开发效率并降低维护成本。