999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于規則引擎的工作流系統設計

2010-05-13 08:46:00王重英
現代電子技術 2009年12期

王重英

摘 要:工作流系統是企業業務流程實現自動化的一項重要技術。它具有提高企業運營效率,改善企業資源利用,提高企業運作的靈活性和適應性等諸多優點。然而,傳統的工作流系統在復雜多變的企業業務流程中存在很多不足。據此提出一種基于規則引擎的工作流系統模型。通過規則引擎的應用,有效地把業務規則與基本技術實現分離,提高了系統的適應性和靈活性。最后,結合電信公司資費優惠套餐計劃,利用Drools設計出基于XML的業務規則。

關鍵詞:工作流;RBES;規則引擎;Drools

中圖分類號:TP311文獻標識碼:B

文章編號:1004-373X(2009)12-042-03

Design of General Application Framework of Workflow Based on Rule Engineer

WANG Chongying

(Shangluo Institute,Shangluo,726000,China)

Abstract:Worlflow is one of important technologies in enterprise business process automation.It has many advantages such as raising efficiency of business operation,improving use of resourse,increasing flexibility and adaptability of business executation and so on.The lack of workflow system in complex enterprise business is analyzed,a workflow system model based on rule engine is put forword to enhance the flexibility of the system.Rule based on xml with Drools by applying the preferential polices of conmunication expenses about telecommunication company is presented.

Keywords:workflow;RBES;rule engine;Drools

0 引 言

工作流管理通過對企業業務過程中的內在邏輯關系進行建模,并提供相關的運行環境,實現企業業務過程重組、過程管理與過程自動化。由于現實生活中企業業務規則在時間、因果等關系上的靈活性和不確定性,實現有效工作流管理的一個關鍵問題是提高工作流管理系統的適應性。如今,在許多基于Web的應用領域中,都存在著對推理引擎的需求,如基于Web的專家系統、聯機分析系統、數據挖掘系統、智能搜索引擎等。如果能夠開發一個開放的、對象化的、基于Web的推理引擎,勢必會節省大量的重復開發工作,從而促進基于Web的智能軟件開發及發展。這里設計一種基于Java規則引擎(Rules Engine)的工作流框架。

1 基于規則的專家系統(RBES)

規則引擎則是基于規則的專家系統的一部分。為了更深入地了解Java規則引擎,下面簡要地介紹基于規則的專家系統(RBES)[1]。RBES包括3部分:Rule Base(Knowledge Base),Working Memory(Fact Base)和Rule Engine(推理引擎),其結構如圖1所示。

圖1中,推理引擎包括3部分:模式匹配器(Pattern Matcher),議程(Agenda)和執行引擎(Execution Engine)。推理引擎通過決定哪些規則滿足事實或目標,并授予規則優先級,滿足事實或目標的規則被加入議程。模式匹配器決定選擇執行哪個規則,何時執行規則;議程管理模式匹配器挑選規則的執行次序;執行引擎負責執行規則和其他動作。與人類的思維相對應,規則引擎存在兩種推理方式:演繹法(Forward-Chaining)和歸納法(Backward-Chaining)。演繹法從一個初始的事實出發,不斷地應用規則得出結論(或執行指定的動作);歸納法從假設出發,不斷尋找符合假設的事實。

圖1 基于規則的專家系統結構圖

Rete算法[2]是目前效率最高的一個Forward-Chaining推理算法,絕大多數Java的推理引擎都采用這一算法。規則引擎的推理步驟:

(1) 將初始數據(Fact)輸入工作內存;

(2) 使用模式匹配器比較規則(Rule)和數據(Fact);

(3) 如果執行規則存在沖突(Conflict),即同時激活多個規則,將沖突的規則放入沖突集合;

(4) 解決沖突,將激活的規則按順序放入議程;

(5) 使用規則引擎執行議程中的規則。重復步驟(2)~(5),直到執行完所有議程中的規則。

2 Java Rule Engine API規范(JSR-94)

2003年11月,Java社區通過了Java Rule Engine API規范(JSR-94)的最后草案。它是由javax.rules包定義,是訪問規則引擎的標準企業級API。Java規則引擎API允許客戶程序使用統一的方式和不同廠商的規則引擎產品交互,就像使用JDBC編寫獨立于廠商訪問不同的數據庫產品一樣。Java規則引擎API包括創建和管理規則集合的機制,在Working Memory中添加、刪除和修改對象的機制,以及初始化、重置和執行規則引擎的機制[3]。圖2給出基于規則引擎 的工作流管理系統。

圖2 基于規則引擎的工作流管理系統

3 基于Java規則推理的工作流應用框架

3.1 工作流應用框架

按照WFMC的定義[4],工作流的概念被概括為“業務過程的部分或全部在計算機應用環境下的自動化”,它所要解決的主要問題是“在多個參與者之間按照某種預定義的規則傳遞文檔、信息或使任務的過程自動進行”, 從而實現某個預期的業務目標,或者是促使該目標實現。該工作流應用框架采用面向對象的方法和組件化的架構設計,系統采用組件模型和Java編程技術,并完全基于J2EE平臺的規范設計和構建。該工作流平臺的核心模塊是工作流引擎。工作流引擎包括3個核心組件:工作流對象、工作流路由器和規則引擎。1個工作流實例由一組相關的工作流對象代表。工作流對象中封裝了工作流的相關數據,每一個工作流對象都有1個關聯的應用對象,應用對象中封裝了相關的應用數據[5]。

工作流路由器是工作流引擎的心臟,其功能是推進工作流實例執行。工作流路由器把每個工作流對象在合適的時間傳遞到合適的隊列中。規則引擎是工作流引擎的大腦,其功能是根據已經定義好的工作流規則,一個工作流對象以及與它關聯的應用對象當前所處的狀態,決定這個工作流對象的下一個隊列[6],該規則引擎引入了一個基于Rete算法的Java規則引擎。

圖3所示是工作流對象、工作流路由器、規則引擎、應用對象和應用程序之間的關系。應用對象與工作流對象之間的關聯是在創建工作流對象時動態建立的。工作流路由器僅傳遞工作流對象,不涉及與工作流對象關聯的應用對象。應用程序只是對應用對象進行操作,與工作流對象無關。這是該工作流引擎保持其通用性的關鍵,規則引擎提供的動態綁定功能,進一步增加了工作流引擎的靈活性[7]。

圖3 工作流相關關系圖

3.2 Drools開源項目

目前,支持JSR-94規范的產品中最為成熟且又免費的是Drools[8]。Drools是一個Bob McWhirter開發的開源項目。Rete算法可實現一個增強的Java語言。Drools利用XML和Java就可以實現規則引擎的強大功能,具有很好的應用前景,目前已發表了2.0-beata-14版。Drools提供了3種語義模塊——Python模塊、Java模塊和Groovy模塊。Drools項目的規則文件為自定義格式,由一個XML語言定義的基本語義模塊加上Java(Groovy或Phython)語義模塊組成。開發者也可以根據需要定制自己專用的語義模塊。每一個規則文件包括一個惟一的規則集,規則集包括一個或多個規則,每個規則包括一個或多個參數。這些參數用于在規則的條件中進行判斷和執行相應的操作,參數對應的是一個Java類,Drools會在創建工作內存的時候把它自動實例化,每個規則包括一或多個條件以及一個最后的操作。

下面通過一個簡化的電信資費優惠處理模型,說明Drools在實際中的應用。

電信公司為了吸引顧客,經常會推出各種資費優惠套餐計劃,這些優惠措施包括打折、固定折扣(消費滿一定額度返還一部分固定費用)等。現假設存在以下優惠規則:

(1) 長話費超過200元的用戶,超出部分長話費優惠20%;

(2) 上網費超過200元的用戶,市話費減免50%,但最多減免50元。

即使就這么2條簡單的規則,如果直接編程實現也將是一大堆if語句,既不容易實現,更難以維護,利用Drools可實現這些規則。相應的規則文件charge.java.drl具體內容如下[9]:

Charge

java.lang.Integer

Charge

a.getPrimCharge("chf")>200

Integerdis=newInteger((a.getPrimCharge("chf")-200)*(-0.2));

a.addDisc("discount1",dis);

Charge

a.getPrimCharge("swf")>200

Int idis=a.getPrimCharge("shf")*0.5;

if(idis>50)idis=-50;

else idis=-idis;

a.addDisc("discount2",new Integer(idis));

[10]

最后調用這些規則,生成的代碼非常簡單。

4 結 語

從前面的討論可看出,采用開源項目Drools 規則引擎,能夠有效地分離業務規則與基本技術,對業務規則的改變只需改變XML文件而不需要修改工作流引擎,從而為工作流管理系統處理商業復雜多變的業務規則提供了一種解決方案??梢灶A見,隨著Java規則引擎工具的不斷成熟,這一技術必將被越來越廣泛的應用,成為解決實際工程中復雜業務規則問題的有力工具。

參考文獻

[1]N.Alex Rupp.A Intruduction to The Drools Project[A].http://www.theserverside.com/tt/articles/article.tss?l=Drools,2004.

[2]郭芳,白建軍.基于Rete算法的規則引擎JBoss Rules[J].計算機時代,2008(1):12-14.

[3]張宇,陳德禮.Drools規則引擎應用分析[J].福建電腦,2007(10):15-16.

[4]范玉順.工作流管理技術基礎實現企業業務重組、過程管理與過程自動化的核心技術[M].北京:清華大學出版社,2001.

[5]鄔少飛.Service-based Flexible Workflow System for Virtual Enterprise[J].Journal of Chongqing University:English Edition,2008,3:73-76.

[6]Zhang Ye,Zhe Jiang.A Technical Support to Integrated Logistics Strategytr Ansform: Distributed Workflow Management System[A].第十四屆工業工程與工程管理國際會議[C].2007.

[7]Wil.工作流管理模型、方法和系統[M].王建民,譯.北京:清華大學出版社,2004.

[8]朱先飛.Drools在電信網絡開通系統中的應用及其改造[J].廣東通信技術,2007(11):10-12.

[9]任忠保,張艷晶,李立亞.基于Drools的策略體系設計[J].計算機安全,2007(8):64-66.

[10]張淵,夏清國.基于Rete算法的Java規則引擎[J].科學技術與工程,2006(6):94-96.

主站蜘蛛池模板: 国产日韩欧美精品区性色| 午夜啪啪网| 亚洲欧洲美色一区二区三区| 国产精品不卡片视频免费观看| 亚洲女人在线| 色偷偷一区二区三区| 永久免费精品视频| 2021精品国产自在现线看| 亚洲欧洲一区二区三区| 国产精品三区四区| 国产精品永久在线| 亚洲第一视频网| 亚洲国产中文欧美在线人成大黄瓜| 国产精品第一区| 特级毛片免费视频| 精品久久蜜桃| 色九九视频| 久草视频中文| 国产乱肥老妇精品视频| 熟妇人妻无乱码中文字幕真矢织江 | 日本AⅤ精品一区二区三区日| 99视频在线看| 波多野结衣无码中文字幕在线观看一区二区 | 国产精品3p视频| 国产免费人成视频网| 91成人在线免费观看| 日韩欧美国产成人| 热久久这里是精品6免费观看| 无码网站免费观看| 国产在线八区| 国产a在视频线精品视频下载| 国产高清在线精品一区二区三区 | 亚洲欧美成人影院| 东京热av无码电影一区二区| 青青草91视频| 欧美中文字幕无线码视频| 国产女人在线观看| 宅男噜噜噜66国产在线观看| 高清久久精品亚洲日韩Av| 亚洲资源站av无码网址| 国产在线观看一区精品| 国产日韩欧美精品区性色| 蜜臀AV在线播放| 无码精油按摩潮喷在线播放| 国产成人夜色91| yjizz国产在线视频网| 亚洲二区视频| 亚洲啪啪网| 久久精品人人做人人爽| 在线观看亚洲成人| 人人爽人人爽人人片| 四虎亚洲国产成人久久精品| 91伊人国产| 永久免费精品视频| 亚洲精品在线观看91| 无码专区第一页| 亚洲精品色AV无码看| 免费一级毛片| a级毛片免费播放| 亚洲福利视频一区二区| 亚洲成a人片77777在线播放| 国产精品美女自慰喷水| 99热免费在线| 日韩小视频在线观看| 香蕉视频在线观看www| 666精品国产精品亚洲| 素人激情视频福利| 久久免费视频播放| 国产精品精品视频| 国产黄网永久免费| 干中文字幕| 亚洲 欧美 偷自乱 图片| 国产成年无码AⅤ片在线| 免费一级成人毛片| 亚洲国产91人成在线| a级毛片视频免费观看| 欧美翘臀一区二区三区| 中文字幕乱码中文乱码51精品| 免费不卡在线观看av| 日韩欧美中文字幕在线精品| 永久在线播放| 日韩专区欧美|