楊曉花 陳 軍
(1.福州大學(xué)至誠學(xué)院 福建 350002; 2.福建富士通信息軟件有限公司 福建 350001)
在3G時代,電信市場競爭相當(dāng)激烈,為留住客戶或者爭奪客戶,電信公司需要不斷的推出新的業(yè)務(wù)或者對原來的業(yè)務(wù)進行優(yōu)化調(diào)整,以滿足用戶需求,這就要求作為電信運營核心支撐系統(tǒng)的電信CRM系統(tǒng)必須具備快速的業(yè)務(wù)部署能力。而目前的CRM系統(tǒng),由于業(yè)務(wù)規(guī)則與系統(tǒng)功能硬綁定,造成實現(xiàn)新業(yè)務(wù)或者需求變更時需要修改代碼,實現(xiàn)周期長,開發(fā)成本高。因此我們需要根據(jù)CRM系統(tǒng)的特點,設(shè)計一個能夠應(yīng)用在電信CRM系統(tǒng)中的電信CRM規(guī)則引擎,以降低了系統(tǒng)的開發(fā)和維護成本,提高需求支撐效率。
一個完整的業(yè)務(wù)規(guī)則包括了條件和觸發(fā)操作兩部分內(nèi)容。業(yè)務(wù)規(guī)則具有如下特性: 原子性、申明性、準(zhǔn)確性、一致性、非冗余性[1]。
電信業(yè)務(wù)規(guī)則是指在一定的業(yè)務(wù)場景中(例如新建客戶、訂單錄入、產(chǎn)品管理等)被觸發(fā),并通過管理和控制業(yè)務(wù)場景中涉及的業(yè)務(wù)實體(例如客戶、訂單、產(chǎn)品等)的屬性、狀態(tài)、行為和關(guān)系等來實現(xiàn)相應(yīng)的業(yè)務(wù)邏輯。電信業(yè)務(wù)規(guī)則一般是由業(yè)務(wù)人員、配置人員以及開發(fā)人員來開發(fā)和維護,其中復(fù)雜的業(yè)務(wù)規(guī)則一般是開發(fā)人員使用開發(fā)語言來定制。
規(guī)則引擎起源于基于規(guī)則的專家系統(tǒng),而基于規(guī)則的專家系統(tǒng)又是專家系統(tǒng)的其中一個分支[2]。
基于規(guī)則的專家系統(tǒng)結(jié)構(gòu)如圖1所示。推理引擎包括三個部分:模式匹配器、議程和執(zhí)行引擎。模式匹配器的作用是負責(zé)將事實與規(guī)則進行匹配,從而決定哪些規(guī)則符合事實;議程的作用是負責(zé)管理模式匹配器挑選出來的與事實匹配的規(guī)則的執(zhí)行順序;執(zhí)行引擎則負責(zé)執(zhí)行規(guī)則和相關(guān)動作[3]。
圖1 基于規(guī)則的專家系統(tǒng)結(jié)構(gòu)
1.3.1 JSR-94規(guī)范
過去大部分的規(guī)則引擎開發(fā)并沒有規(guī)范化,各自都有自己的API,這樣換一個規(guī)則引擎產(chǎn)品,應(yīng)用系統(tǒng)都需要重寫業(yè)務(wù)規(guī)則以及調(diào)用規(guī)范引擎的代碼,代價比較大。2003年11月,為了使規(guī)則引擎技術(shù)標(biāo)準(zhǔn)化,Java社區(qū)制定了Java規(guī)則引擎API(JSR94)[4]規(guī)范,規(guī)范于2004年8月最終發(fā)布。
目前大部分的商用或者開源規(guī)則引擎均支持JSR-94規(guī)范,如ILOG、Drools、JLisa,但還有部分產(chǎn)品不支持此規(guī)范,如Mandarax[5]、OFBiz Rule Engine[3]等。
1.3.2 Rete算法
Rete算法是在1979年Charles Forgy在論文中首次提出的,它的基本思想是在模式匹配中利用推理機的時間冗余性和規(guī)則結(jié)構(gòu)的相似性,通過保留匹配過程得到的中間信息,以空間代價來換取提高推理效率的一種模式匹配算法。因此Rete算法快速匹配的主要依據(jù)有兩個:時間冗余性和結(jié)構(gòu)相似性[5]。
1.3.3 Drools規(guī)則引擎
Drools是Jboss公司旗下一款開源的規(guī)則引擎,是時下在Java開發(fā)人員中比較流行的一款開源規(guī)則引擎,它符合JSR-94標(biāo)準(zhǔn),運行速度比較快,而且提供了強大的Eclipse Plugin開發(fā)支持。Drools支持多種的沖突解決策略,如優(yōu)先級策略、后進先出策略、先進先出策略、隨機策略、復(fù)雜性優(yōu)先策略、簡單性優(yōu)先策略等,而且允許靈活選擇沖突解決策略[9]。
電信CRM系統(tǒng)定位和目標(biāo)
電信CRM系統(tǒng)重點支撐以下業(yè)務(wù)目標(biāo):
(1)系統(tǒng)能夠滿足電信客戶和電信市場不斷發(fā)展的需要,為實現(xiàn)端到端的服務(wù)創(chuàng)造條件,最大限度增加電信客戶的滿意程度。
(2)實現(xiàn)綜合、全面業(yè)務(wù)受理和處理。
(3)對銷售策略和銷售渠道全面的支持,保證企業(yè)各種經(jīng)營方式的實施。
(4)業(yè)務(wù)人員可操作的各種配置和定義功能,包括:業(yè)務(wù)、產(chǎn)品、促銷策略、價格、資源、流程、客戶等的實體屬性、各種實體關(guān)聯(lián)等,保證業(yè)務(wù)處理的靈活性。
(5)個性化管理和服務(wù),同一個系統(tǒng)適應(yīng)不同對象和不同階段的業(yè)務(wù)要求。
(6)對企業(yè)決策的支持和準(zhǔn)備。
電信CRM系統(tǒng)功能架構(gòu)
電信CRM系統(tǒng)的功能架構(gòu)如圖2所示。
自有與社會渠道管理:渠道是中國電信面向客戶進行營銷、銷售和服務(wù)的載體,是中國電信與客戶進行交互的具體途徑。渠道主要包括實體渠道、社會渠道、直銷渠道和電子渠道。渠道管理提供針對渠道運營的管理支撐功能和客戶接觸交互支撐管理。渠道管理主要包括渠道信息管理、酬金考核管理、渠道工作支持和渠道交互支撐。
目前電信CRM系統(tǒng)架構(gòu)
圖2 電信CRM系統(tǒng)功能架構(gòu)
當(dāng)前已經(jīng)在生產(chǎn)上運營的電信CRM系統(tǒng)在系統(tǒng)架構(gòu)上采用基于B/S模式的多層架構(gòu),系統(tǒng)架構(gòu)由展現(xiàn)層、應(yīng)用層、信息存取層、信息資源層組成。CRM系統(tǒng)架構(gòu)如圖3所示。
圖3 CRM系統(tǒng)結(jié)構(gòu)圖
展現(xiàn)層:展現(xiàn)層是CRM系統(tǒng)與接觸渠道進行信息交互的平臺,通過界面集成技術(shù)將界面展現(xiàn)組件組合成用戶界面。用戶通過用戶界面調(diào)用業(yè)務(wù)邏輯來實現(xiàn)業(yè)務(wù)功能。
應(yīng)用層:這個層次是所有應(yīng)用的基礎(chǔ)。構(gòu)件完成基本的系統(tǒng)或商務(wù)處理功能。這些功能通過服務(wù)向應(yīng)用或外部提供。為了使構(gòu)件提供的服務(wù)(包括本系統(tǒng)和外系統(tǒng)甚至是企業(yè)外部的)能夠相互協(xié)調(diào),實現(xiàn)完整的業(yè)務(wù)功能,就必須有構(gòu)件運行環(huán)境和應(yīng)用集成技術(shù)。
信息存取層:信息存取層實現(xiàn)系統(tǒng)的共享信息服務(wù)。該層實現(xiàn)對數(shù)據(jù)的封裝,并把封裝后的數(shù)據(jù)轉(zhuǎn)換成有價值的業(yè)務(wù)與系統(tǒng)信息,向其上的應(yīng)用層和其他相關(guān)外部系統(tǒng)提供一致的與業(yè)務(wù)邏輯無關(guān)的信息服務(wù)。
信息資源層:信息資源層負責(zé)系統(tǒng)的數(shù)據(jù)存儲及維護數(shù)據(jù)的完整性與一致性。數(shù)據(jù)可以根據(jù)需要存儲在數(shù)據(jù)庫管理系統(tǒng)、文件、外部存儲設(shè)備中。
與傳統(tǒng)的C/S架構(gòu)相比,目前的多層架構(gòu)將用戶界面和內(nèi)部邏輯分離,使新應(yīng)用的添加和變更比傳統(tǒng)方式方便了許多,因此能夠適應(yīng)大規(guī)模和復(fù)雜的應(yīng)用需求,并能有效降低建設(shè)和維護成本,簡化管理,但是隨著用戶對需求的支撐速度要求的提高,目前的架構(gòu)還存在著一些不足。因為目前系統(tǒng)中管理和維護著大量的、各種復(fù)雜的業(yè)務(wù)規(guī)則,但是按照目前的架構(gòu)以及開發(fā)思路,一般把實現(xiàn)客戶需 求的業(yè)務(wù)規(guī)則直接實現(xiàn)在應(yīng)用代碼中,這樣業(yè)務(wù)規(guī)則與系統(tǒng)功能硬綁定,不但實現(xiàn)復(fù)雜繁瑣,而且后續(xù)維護困難。
圖4 引入規(guī)則引擎技術(shù)的電信CRM系統(tǒng)架構(gòu)
為了能真正實現(xiàn)靈活性,需要把業(yè)務(wù)邏輯與應(yīng)用代碼 剝離。而規(guī)則引擎技術(shù)可以實現(xiàn)此目標(biāo),因此可以在系統(tǒng)中引入規(guī)則引擎, 形成單獨的業(yè)務(wù)規(guī)則層,業(yè)務(wù)規(guī)則層向應(yīng)用層提取規(guī)則判斷服務(wù),應(yīng)用層通過與規(guī)則層的交互實現(xiàn)業(yè)務(wù)邏輯的處理,這個業(yè)務(wù)規(guī)則層與原來系統(tǒng)架構(gòu)中的展現(xiàn)層、應(yīng)用層和信息存取層、信息資源層就構(gòu)成了基于規(guī)則引擎的CRM系統(tǒng)架構(gòu)?;谝?guī)則引擎的CRM系統(tǒng)架構(gòu)如圖4所示。
通過業(yè)務(wù)規(guī)則層的引入,使得整個CRM系統(tǒng)的各種應(yīng)用能夠使用一致的規(guī)則,同時在業(yè)務(wù)規(guī)則變化時,能夠不用重新編寫應(yīng)用程序的代碼,就能很容易的修改和維護業(yè)務(wù)規(guī)則,從而滿足快速支撐用戶多變的業(yè)務(wù)需求的需要。
本文首先對業(yè)務(wù)規(guī)則的概念以及規(guī)則引擎的原理進行了分析,并介紹了JSR-94規(guī)范以及開源的Drools規(guī)則引擎。研究了電信CRM系統(tǒng)目前多層的系統(tǒng)架構(gòu),并針對目前架構(gòu)的不足之處,提出了將規(guī)則引擎應(yīng)用到CRM系統(tǒng)中,并構(gòu)建了增加業(yè)務(wù)規(guī)則層的多層技術(shù)架構(gòu)模式。使得系統(tǒng)的應(yīng)用變更更加方便,從而提高了系統(tǒng)的開發(fā)效率并降低維護成本。
[1]Java規(guī)則引擎的工作原理及應(yīng)用.http://java.chinaitlab.com/tools/380056.html
[2]李國樂.Java規(guī)則引擎與其API(JSR-94).
[3]http://www-128.ibm.com/developerworks/cn/Java/j-Javarules/.2005-7
[4]郭曉峰.規(guī)則引擎在新型農(nóng)村合作醫(yī)療系統(tǒng)中的應(yīng)用研究:[碩士學(xué)位論文].上海:東華大學(xué),2008
[5]張宇,陳德禮.Drools規(guī)則引擎應(yīng)用分析.福建電腦,2007,(10):11-12
[6]劉偉.java規(guī)則引擎-Drools的介紹及應(yīng)用.微計算機應(yīng)用,2005,26(6):717-721