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

規則引擎在分布式環境下應用的研究

2009-01-01 00:00:00王曉光
計算機應用研究 2009年5期

(重慶大學 軟件學院 重慶 400044)

摘 要:通過結合JSR(Java specification request)94規范和Web服務技術,實現了一個集成平臺。該平臺為大多數規則引擎在分布式環境下無法有效應用這一大問題提供了解決方案。利用該平臺,企業應用系統可簡單有效地遠程調用所有實現了Java規則引擎API的規則引擎。這些規則引擎均無須作任何更改。

關鍵詞:規則引擎;分布式環境;JSR94規范;Web服務技術

中圖分類號:TP311.52文獻標志碼:A

文章編號:1001-3695(2009)05-1825-03

Research on application of rule engine in distributed environment

WANG Xiaoguang,YANG Dan

(School of Software Engineering Chongqing University Chongqing 400044 China)

Abstract:This paper implemented an integration platform by combing JSR(Java specification request)94 specification and Web service technology.This platform provided a solution to a big problem that was most of the rule engines could not be effectively used in a distributed environment. By using this platform enterprise applications can simply and effectively invoke all the remote rule engines which have implemented Java rule engine API. Moreover all these rule engines do not need any modification.

Key words:rule engine;distributed environment;JSR94 specification;Web service technology

當今商業市場的變化越來越頻繁,現代化企業為了始終保持競爭力,其應用系統就必須緊跟變化需求,對市場變化作出快捷反應。相對于傳統的將業務邏輯硬編碼到應用系統的做法,基于規則引擎的開發方法可以實現業務邏輯與應用邏輯的分離,在這種新的架構下,業務規則可以被建立、修改及刪除而無須重新編譯部署應用系統,這大大提高了企業對市場變化的反應速度。在一些行業領域(如電信、供應鏈管理等),由于本身的跨地域性,其應用系統往往也是分布式的,而近年來越來越引人注目的面向服務架構在為分布式應用系統實現松散耦合、提高重用性方面提供了強大的支持。如果將業務規則技術與面向服務的架構結合,將使企業應用系統更加具有彈性及適應性。然而,當前大多數規則引擎(如Drools、Jess等)缺少遠程調用的接口,在分布式應用方面存在著缺陷,無法被有效地集成。為解決這個問題,本文建立了一種基于JSR94規范[1]和Web服務技術的有效解決方案。

1 背景知識

1.1 業務規則

業務規則組織(Business Rules Group,BRG)規定了業務規則的兩個定義[2]。第一個定義與業務觀點相關,而第二個定義與信息系統相關。從業務的角度看,業務規則是一種原則,包含在特定活動或范圍內關于指導、操作、實踐或過程的行為規范。從信息系統的角度看,業務規則是一個定義或限制業務某些方面的聲明。業務規則旨在用于斷言業務結構,控制或影響業務行為。業務規則在一些對知識及決策比較敏感的領域非常有用,如保險、供應鏈管理或金融等領域。

1.2 規則引擎

規則引擎是一種嵌入在應用程序中的組件,實現了將業務決策從應用程序代碼中的分離,并使用預定義的語義模塊編寫業務決策。接收數據輸入,解釋業務規則,并根據規則作出業務決策。規則引擎由基于規則的專家系統中的推理引擎發展而來,基于規則的專家系統組成如圖1所示。

結合圖1所示,規則引擎的推理步驟如下[3]:a)將初始數據輸入至工作內存;b)使用模式匹配器將規則庫中的規則與數據進行比較;c)如果執行規則存在沖突,即同時激活了多個規則,就將沖突的規則放入沖突集合;d)解決沖突,將激活的規則按順序放入日程;e)執行日程中的規則。重復b)~e),直到執行完畢日程中的所有規則。當引擎執行時,它會根據規則執行隊列中的優先順序對規則執行實例進行逐條執行。由于規則的執行部分可能會改變工作區的數據對象,從而會使隊列中的某些規則執行實例因為條件改變而失效,必須從隊列中撤銷,也可能會激活原來不滿足條件的規則,生成新的規則執行實例進入隊列。于是就產生了一種動態的規則執行鏈,形成規則的推理機制。這些規則的鏈式反應完全是由工作區中的數據驅動的。推理存在兩種方式,即演繹法(forwardchaining,正向鏈)和歸納法(backwardchaining,反向鏈)。演繹法從一個初始的事實出發,不斷地應用規則得出結論或執行指定的動作;而歸納法則是從假設出發,不斷地尋找符合假設的事實。

1.3 Java規則引擎API

Java規則引擎API由JSR94規范指定,是訪問Java規則引擎的標準企業級API。Java規則引擎API允許客戶程序使用統一的方式和不同廠商的規則引擎產品交互,就像使用JDBC的統一接口訪問不同的數據庫產品一樣。Java規則引擎API包括創建和管理規則集合的機制,在工作內存中添加、刪除和修改對象的機制,以及初始化、重置和執行規則引擎的機制。Java規則引擎API分為兩個主要部分,即規則管理API和規則運行時API。前者主要用來裝載和管理規則集;后者通過建立引擎客戶端與規則引擎之間的連接來執行指定的規則集,并可獲得執行結果。

1.4 面向服務的架構與Web服務

面向服務的架構(serviceoriented architecture,SOA)是一種設計方式,它指導業務服務在其生命周期(從構思開始,直至停止使用)中包括創建和使用的方方面面。SOA也是一種定義和提供IT基礎設施的方式,它允許不同應用相互交換數據、參與業務流程,無論它們各自背后使用的是何種操作系統或采用了何種編程語言。用Web服務實現SOA的主要優點在于:Web服務是廣泛普及的、簡單的和平臺中立的?;镜腤eb服務架構包含了SOAP、WSDL、UDDI等支持服務請求者與服務提供者進行交互,以及用于Web服務發現的規范。服務提供者通常用WSDL來描述它所提供的Web服務,然后將該WSDL描述發布;服務請求者可以通過UDDI或其他注冊庫來獲取WSDL描述,并通過向服務提供者發送一個SOAP消息來請求執行服務[4]。

2 問題研究及解決方案

2.1 現有問題的分析

隨著企業信息化步伐的加快,很多企業的應用系統已經在使用規則引擎管理維護業務規則,這使企業可以隨市場變化及時地在應用系統中調整業務規則。業務規則相當于企業的知識財產,應該最大化利用,這必然需要實現對業務規則的重用。一種實現方法是由決策部門確定業務規則細節后,其他部門再在自己的規則引擎上去實現,這種業務規則重用并沒有達到真正的重用,而且導致同一個業務規則有多個副本,在維護上也容易產生不一致性。

基于Web服務的面向服務的架構在使企業有效重用已有知識方面阻力很大,如果能把規則引擎與該架構有效結合起來將極大地提高業務規則的重用。業務規則由一個部門制定維護,其他部門可復用,同時也便于業務規則的統一管理。但是目前大多數規則引擎還難以實現該目標,這主要是由于JSR94規范缺少一些遠程接口,用來在分布式環境下遠程調用業務規則。當前大多數規則引擎是作為一個組件在企業應用系統中應用的,業務規則也只能在本地應用系統中使用。

有研究者提出了一種實現分布式規則引擎的方法[5,6],該方法主要關注異構規則引擎間的交互以及規則的分布式部署執行,不過該方法需要對集成的規則引擎進行擴展。本文的研究重點是在保持已有規則引擎不變的基礎上,如何在分布式環境下有效利用規則引擎,實現規則的重用。

2.2 總體架構圖

正如本文1.3節所述,JSR94規范為訪問Java規則引擎制定了一整套標準的API,當前流行的Java規則引擎大多數都實現了該標準,因此用戶在集成規則引擎時只要使用JSR94的標準API就可訪問不同的規則引擎。本文建立的解決方案充分結合了JSR94規范和Web服務技術,實現了一個集成平臺,該平臺由客戶端工具包和服務端工具包組成??蛻舳斯ぞ甙裱璊SR94規范,因此用戶可以繼續以往的習慣來使用規則引擎(即通過JSR94 API調用),無須關心底層的方法實現是如何使用Web服務來達到調用遠程規則引擎的。該解決方案的系統架構示例如圖2所示。

1)服務器A 該服務器上運行的應用系統A使用的本地規則引擎是Drools,A繼續使用由Drools實現的JSR94 API來調用本地規則引擎。同時,假定根據業務需要,A需要為其他應用系統提供遠程執行規則引擎的接口,這里通過部署上文提到的服務端工具包可完成此任務。服務端工具包負責在A上部署Web服務并在UDDI注冊中心進行注冊。Web服務在收到其他應用系統用客戶端工具包發來的請求后,將在A上調用本地規則引擎完成指定操作并把結果返回給服務請求方。本例中,應用系統B和C均可調用A提供的Web服務。

2)服務器B 該服務器上運行的應用系統B使用的本地規則引擎是Jess。同A類似,B可繼續使用Jess實現的JSR94 API來調用本地規則引擎,而且也通過服務端工具包來為其他應用系統提供遠程接口。同時,B可調用A提供的Web服務,實現方法同C類似,即利用客戶端工具包達到目的。

3)服務器C 該服務器上運行的應用系統C沒有使用任何本地規則引擎,它通過調用由客戶端工具包實現的JSR94 API來調用其他服務器上的規則引擎??蛻舳斯ぞ甙谙鄳椒ū粦孟到y調用后,將調用服務提供方已部署的Web服務,并把調用結果返回給應用系統。本例中,應用系統C對A和B提供的Web服務都進行了調用。

4) 服務器D 它主要用來運行UUDI注冊中心。

2.3 集成平臺

由上文可知,本文建立的解決方案核心是所實現的集成平臺,它由以下兩個工具包組成:

a)客戶端工具包。它實現了JSR94規范,為本地應用系統提供標準的Java規則引擎API,處理本地應用系統的請求,內部方法實現是通過調用服務端工具包發布的Web服務來達到對遠程規則引擎的調用。該工具包負責在本地建立一個客戶端規則會話,維護當前會話的內容。并不是每個JSR94 API的調用都要去調用Web服務,只是在必要時才通過Web服務,向遠程規則引擎傳遞數據,獲取服務端的執行結果。

b) 服務端工具包。該工具包主要是通過在服務器上發布Web服務來為客戶端工具包提供遠程訪問規則引擎的接口。Web服務處理來自客戶端工具包的操作請求,負責接收傳遞來的數據,在本地建立與本地規則引擎間的規則會話,執行規則推理,把執行結果傳遞回客戶端工具包。

由于執行規則推理離不開事實數據(即一些JavaBean對象),下面將以客戶端向服務端傳遞JavaBean對象為例簡要說明。其工作原理如圖3所示。

假定服務器C上的應用系統需要調用服務器A上的規則引擎執行規則推理,圖3演示的是客戶端工具包與服務端工具包如何協作傳遞JavaBean對象的過程。服務器C上的應用系統調用JSR94 API向本地規則會話中添加了JavaBean對象并請求執行規則推理,此時,客戶端工具包從規則會話中獲取已添加的JavaBean對象,利用轉換器[7]將這些對象轉換成XML格式信息,進而調用Web服務把信息傳遞給服務器A上部署的服務。在服務器A,服務端工具包接收到請求后,將XML格式信息通過轉換器建立對應的JavaBean對象,并利用JSR94 API建立本地規則會話,將這些對象添加到規則會話中,執行規則推理。服務器C上調用的JSR94 API是由客戶端工具包實現的,而服務器A上調用的JSR91 API則是由本地規則引擎實現的。

2.4 應用實施

本文建立的解決方案可以非常方便、快捷地進行實施,客戶端工具包與服務端工具包可獨立進行部署,原則是客戶端工具包用來調用遠程規則引擎,服務端工具包用來提供Web服務接口。由于需要在服務提供方與使用方之間傳遞數據,雙方需在通用的數據結構方面達成一致,以保證數據在轉換過程中的完整性。所有遵循JSR94規范的Java規則引擎均可無須修改地進行有效集成。

3 解決方案分析

本文建立的解決方案有以下幾條顯而易見的優點:

a)規則的重用及規則的單方維護。規則在某個應用系統建立后,可由其他應用系統復用,無須在本地建立規則的副本,保證了規則在各應用系統間的一致性。

b)客戶端無須關心服務端規則引擎的產品類型,服務端可以任意更換符合JSR94規范的Java規則引擎。

c)集成的規則引擎無須任何修改,因而保證了應用系統中原有的調用規則引擎的程序繼續運行。

d)基于Web服務,因而可以通過組合不同的Web服務實現在一個應用系統中執行多個其他應用系統提供的規則,實現分布式規則處理。

該解決方案目前也存在限制,只能集成遵循JSR94規范的Java規則引擎,其他類型的規則引擎尚不支持。

4 結束語

近年來,業界和學術界給予規則引擎越來越多的重視,其市場前景十分廣闊。據Gartner2006年6月的研究[8],純粹的業務過程管理軟件以及業務規則引擎軟件市場,在2005—2010年將逐漸超越其他軟件架構市場。業務過程管理軟件市場許可證收入每年增幅11.8%,業務規則引擎軟件許可證收入每年增長9.2%。其中亞太地區市場的增長是全球市場增長的推動力。

本文從實際情況出發,結合現有規范和技術,為在分布式環境下有效應用規則引擎建立了解決方案和集成平臺,突破了傳統規則引擎只能在本地使用的局限性,擴大了其應用范圍。

參考文獻:

[1]Java Community Process. JSR94Java rule engine API[EB/OL].(20040804)[20080730].http://jcp.org/en/jsr/detail?id=094.

[2]The Business Rules Group.Defining business rules what are they really[EB/OL].(200007)[20080730].http://www.businessrulesgroup.org/first_paper/br01c0.htm.

[3]李國樂. Java規則引擎與其API(JSR94)[EB/OL].(20050701)[20080730].http://www128.ibm.com/developerworks/cn/java/jjavarules/index.html?ca=dwcnnewsletterjava#main.

[4]NEWCOMER E LOMOW G. Understanding SOA with Web services[M].中文版.徐涵,譯.北京:電子工業出版社,2006:1320.

[5]NAGL C ROSENBERG F DUSTDAR S.ViDRE:a distributed serviceoriented business rule engine based on ruleML[C]//Proc of the 10th IEEE International Enterprise Distributed Object Computing Conference (EDOC’06).Washington DC:IEEE Computer Society 2006:3544.

[6]ROSENBERG F NAGL C DUSTDAR S.Applying distributed Business rulesthe ViDRE approach[C]//Proc of IEEE International Conference on Services Computing (SCC’06).Washington DC: IEEE Computer Society,2006:471-478.

[7]DIACONESCU I M,WAGNER G. Towards a mapping from Java vocabulary to RDFS[C]//Proc of the 9th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing(SYNASC’07). Washington DC:IEEE Computer Society,2007:518522.

[8]王李軍,陶明亮,張曙,等.面向業務規則引擎研究[J].計算機工程,2007,33(24):5256.

主站蜘蛛池模板: 99精品视频在线观看免费播放| 一区二区三区精品视频在线观看| 国产精品女人呻吟在线观看| 99视频在线看| 天堂网亚洲综合在线| 天天做天天爱天天爽综合区| 免费人成网站在线观看欧美| 日韩福利在线观看| 91久久天天躁狠狠躁夜夜| 国产av剧情无码精品色午夜| 91精品专区国产盗摄| 91无码视频在线观看| 久996视频精品免费观看| 亚洲国产中文综合专区在| 国产成人一区在线播放| 再看日本中文字幕在线观看| 亚洲日韩Av中文字幕无码 | 日韩欧美中文亚洲高清在线| 色九九视频| a级毛片一区二区免费视频| 凹凸精品免费精品视频| 九九精品在线观看| 国产在线视频福利资源站| 激情无码字幕综合| 91丨九色丨首页在线播放| 高潮毛片无遮挡高清视频播放| 亚洲成a人片| 在线永久免费观看的毛片| 人妻出轨无码中文一区二区| 五月综合色婷婷| 最近最新中文字幕在线第一页 | 久久成人免费| 最新国产网站| 亚洲视频影院| 亚洲人成人无码www| 国产一线在线| 97se亚洲综合在线| 国产日产欧美精品| 亚洲色图在线观看| 首页亚洲国产丝袜长腿综合| 亚洲国产理论片在线播放| 色综合a怡红院怡红院首页| 久久大香香蕉国产免费网站| 在线毛片免费| 日韩精品一区二区三区中文无码| 国产主播福利在线观看| 国产午夜一级毛片| 成人国产精品网站在线看| 欧美精品v| 亚洲va欧美ⅴa国产va影院| 久久综合丝袜长腿丝袜| 永久免费无码日韩视频| 精品撒尿视频一区二区三区| 在线观看热码亚洲av每日更新| 国产精品第一区| 无码一区二区波多野结衣播放搜索| 97青草最新免费精品视频| 亚洲91在线精品| 97视频在线精品国自产拍| 国外欧美一区另类中文字幕| 一级毛片免费高清视频| 国产免费观看av大片的网站| 久久久久中文字幕精品视频| 国产精品综合久久久| 久久久国产精品免费视频| 国产91精品调教在线播放| 在线视频亚洲欧美| 中文字幕永久视频| 亚洲AV人人澡人人双人| 亚洲精品va| 亚洲黄色高清| 欧美yw精品日本国产精品| 视频国产精品丝袜第一页| 国产精鲁鲁网在线视频| 国产一区二区影院| 一级毛片在线播放| 99热这里只有精品2| 亚洲bt欧美bt精品| 欧美成人综合视频| 最新日韩AV网址在线观看| 日本色综合网| 久久国产免费观看|