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文件而不需要修改工作流引擎,從而為工作流管理系統處理商業復雜多變的業務規則提供了一種解決方案。可以預見,隨著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.

主站蜘蛛池模板: 国产精品视频公开费视频| 欧美色视频在线| 中文字幕1区2区| 国产精品亚欧美一区二区三区| 九色综合伊人久久富二代| 亚洲人成网站日本片| 亚洲精品第五页| 亚洲国产综合第一精品小说| 国产大片喷水在线在线视频| 欧美一道本| 毛片卡一卡二| 欧美成人免费一区在线播放| 日韩欧美国产中文| 日韩精品中文字幕一区三区| 婷婷六月天激情| 国产精品99r8在线观看 | 欧美h在线观看| 91在线精品麻豆欧美在线| 最新国产你懂的在线网址| 一级一毛片a级毛片| 亚洲视频在线网| 久久男人视频| 久久免费看片| 亚洲成人黄色在线观看| 91小视频在线| 日韩东京热无码人妻| 日本精品影院| 在线视频亚洲色图| a天堂视频| 99久视频| 久久美女精品| 欧美亚洲一区二区三区在线| 中文字幕在线播放不卡| 丝袜亚洲综合| AV老司机AV天堂| 国产爽妇精品| 亚洲精品在线91| 国产迷奸在线看| 亚洲AV无码乱码在线观看代蜜桃 | 国产精品女在线观看| 国产区免费| 久久亚洲精少妇毛片午夜无码| 国产嫩草在线观看| 色妞www精品视频一级下载| 在线免费观看a视频| 色婷婷丁香| 99热这里只有精品在线播放| 制服丝袜一区| 亚洲国产亚综合在线区| 国产精品深爱在线| 最近最新中文字幕在线第一页| 亚洲天堂视频在线观看| 国产对白刺激真实精品91| 日本黄色a视频| 国产理论一区| 亚洲人成网18禁| 亚洲无卡视频| 亚洲成aⅴ人在线观看| 精品视频在线观看你懂的一区| 一级毛片不卡片免费观看| 香蕉99国内自产自拍视频| 亚洲欧美另类日本| 国产精品女人呻吟在线观看| 亚洲成aⅴ人片在线影院八| 伊人久久婷婷五月综合97色| 亚洲精选高清无码| 亚洲欧洲日韩久久狠狠爱| 亚洲精品777| 香蕉在线视频网站| 亚洲va视频| 久久久久亚洲精品无码网站| 亚洲日本中文字幕天堂网| 欧美一区二区三区欧美日韩亚洲 | 黄色网在线| 久久综合九色综合97网| 亚洲制服丝袜第一页| 久夜色精品国产噜噜| 亚洲精品视频免费观看| 国产精品xxx| 国产农村精品一级毛片视频| 亚洲香蕉伊综合在人在线| 国产美女91视频|