亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于映射機(jī)制的業(yè)務(wù)規(guī)則生成系統(tǒng)*

        2015-07-10 01:11:38李偉超周興社楊亞磊
        關(guān)鍵詞:中間業(yè)務(wù)引擎定義

        李偉超,周興社,楊 剛,楊亞磊

        (西北工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,陜西 西安 710129)

        1 引言

        隨著企業(yè)功能的日益龐大化、經(jīng)營環(huán)境的日益復(fù)雜化,及時(shí)調(diào)整業(yè)務(wù)來應(yīng)對(duì)瞬息萬變的市場需求在企業(yè)生存發(fā)展中顯得尤為重要。規(guī)則引擎系統(tǒng)是完成業(yè)務(wù)邏輯快速變換的理想方案,它將業(yè)務(wù)邏輯的表達(dá)與執(zhí)行相分離,業(yè)務(wù)邏輯以業(yè)務(wù)規(guī)則的形式表示,業(yè)務(wù)流程以業(yè)務(wù)規(guī)則的執(zhí)行來完成,使業(yè)務(wù)邏輯的改變不會(huì)相應(yīng)引起系統(tǒng)本身的修改,從而滿足業(yè)務(wù)快速調(diào)整的實(shí)際需求。業(yè)務(wù)邏輯在部署執(zhí)行前,業(yè)務(wù)人員要使用規(guī)則引擎解釋執(zhí)行的規(guī)則描述語言將其描述成特定格式并存入規(guī)則庫。然而,由于在業(yè)務(wù)規(guī)則領(lǐng)域缺少相應(yīng)的標(biāo)準(zhǔn),不同的規(guī)則引擎提供了不同的規(guī)則描述語言,例如Drools[1]使用SRL描述規(guī)則,而Jess[2]使用Lisp描述規(guī)則。這種差異性導(dǎo)致了同一企業(yè)環(huán)境中很難使用不同的規(guī)則引擎,當(dāng)信息系統(tǒng)依賴的規(guī)則引擎需要升級(jí)更新或轉(zhuǎn)化到其他供應(yīng)商提供的規(guī)則引擎時(shí),需要采用新的規(guī)則描述語言將已部署的業(yè)務(wù)規(guī)則重新刻畫描述,這嚴(yán)重影響業(yè)務(wù)規(guī)則實(shí)施的效率,降低了系統(tǒng)的靈活性和可維護(hù)性。因而,尋求一種獨(dú)立于具體規(guī)則引擎的業(yè)務(wù)規(guī)則描述和表示方法是亟待解決的難題。

        基于以上需求,本文在分析業(yè)務(wù)規(guī)則特點(diǎn)及現(xiàn)有業(yè)務(wù)規(guī)則生成工具的基礎(chǔ)上,設(shè)計(jì)并實(shí)現(xiàn)了獨(dú)立于具體規(guī)則引擎的基于映射機(jī)制業(yè)務(wù)規(guī)則生成系統(tǒng)UniBRGS:設(shè)計(jì)了非技術(shù)性的近似英語語法的業(yè)務(wù)規(guī)則描述語言,便于業(yè)務(wù)人員便捷準(zhǔn)確地描述規(guī)則;采用XML定義了一套獨(dú)立于具體規(guī)則引擎的中間業(yè)務(wù)規(guī)則,根據(jù)規(guī)則間元素的映射關(guān)系,實(shí)現(xiàn)了元規(guī)則與中間規(guī)則、中間規(guī)則與具體規(guī)則引擎可識(shí)別業(yè)務(wù)規(guī)則之間的互相轉(zhuǎn)換,從而實(shí)現(xiàn)了不同規(guī)則引擎間業(yè)務(wù)規(guī)則的互相轉(zhuǎn)換。論文最后的實(shí)驗(yàn)表明該系統(tǒng)具有一定的可行性及靈活性。

        Figure 1 UniBRGS system framework圖1 UniBRGS系統(tǒng)結(jié)構(gòu)圖

        2 相關(guān)工作

        業(yè)務(wù)規(guī)則是用于指導(dǎo)業(yè)務(wù)活動(dòng)的規(guī)則或策略,廣泛存在于企業(yè)的信息系統(tǒng)中。業(yè)務(wù)規(guī)則組織(Business Rule Group)[3]給出的定義包含兩個(gè)層面的意思:從企業(yè)業(yè)務(wù)角度來看,業(yè)務(wù)規(guī)則是支持企業(yè)決策、影響或控制企業(yè)業(yè)務(wù)行為的指導(dǎo);從信息系統(tǒng)角度來看,業(yè)務(wù)規(guī)則是一條語句,它定義或約束業(yè)務(wù)的某些方面,其目的是為了斷言業(yè)務(wù)結(jié)構(gòu)、控制或影響業(yè)務(wù)的行為。業(yè)務(wù)規(guī)則滿足典型的一階邏輯模式,形如“條件-動(dòng)作”,即當(dāng)某種條件滿足時(shí),執(zhí)行規(guī)定的動(dòng)作。業(yè)務(wù)規(guī)則表述形式可描述為IF 〈Conditions〉 THEN 〈Actions〉。

        目前關(guān)于業(yè)務(wù)規(guī)則表示及開發(fā)方面有很多的研究。RuleML[4]是基于XML的通用規(guī)則描述語言,通過XSLT轉(zhuǎn)換器可將其表示的規(guī)則轉(zhuǎn)化到其他語言表示的規(guī)則,從而實(shí)現(xiàn)不同規(guī)則系統(tǒng)之間的互操作。然而,XSLT轉(zhuǎn)換器只能實(shí)現(xiàn)XML表示的規(guī)則之間的轉(zhuǎn)換,不具有通用性。Drools是由JBoss和Red Hat支持開發(fā)的開源項(xiàng)目,包含規(guī)則編輯、管理和執(zhí)行等一系列工具。它定義了類似于Java語法的規(guī)則描述語言DRL,并且提供了圖形化規(guī)則編輯器Drools Guvnor。Jess是一款小巧靈活的Java規(guī)則引擎,它提供了類Lisp的規(guī)則語言和基于XML的規(guī)則語言,但其規(guī)則語言語法結(jié)構(gòu)繁雜,形式化程度較高,適合具有編程經(jīng)驗(yàn)的技術(shù)人員。同時(shí),Drools和Jess沒有提供任何規(guī)則互相轉(zhuǎn)換的工具,不利于系統(tǒng)的可操作性和移植性,無法實(shí)現(xiàn)信息系統(tǒng)在各規(guī)則引擎間的無縫遷移。

        3 基于映射機(jī)制的業(yè)務(wù)規(guī)則生成系統(tǒng)

        本文描述的UniBRGS系統(tǒng)采用分層體系架構(gòu)設(shè)計(jì),系統(tǒng)結(jié)構(gòu)如圖1所示。UniBRGS分為三個(gè)層次:表現(xiàn)層、中間層及轉(zhuǎn)換層。其中,表現(xiàn)層提供了基于向?qū)У腉UI規(guī)則編輯環(huán)境,業(yè)務(wù)人員可以使用定義的類自然語言定義業(yè)務(wù)規(guī)則,同時(shí)也可套用現(xiàn)有的規(guī)則模板,加速規(guī)則的開發(fā)。中間層根據(jù)定義好的業(yè)務(wù)規(guī)則描述語言以及業(yè)務(wù)對(duì)象所屬關(guān)系,對(duì)業(yè)務(wù)人員定義好的元規(guī)則進(jìn)行詞法、語法以及語義解析,將解析信息實(shí)時(shí)上傳至表現(xiàn)層,同時(shí)根據(jù)映射關(guān)系將元規(guī)則轉(zhuǎn)換成基于XML定義的中間業(yè)務(wù)規(guī)則。轉(zhuǎn)換層根據(jù)規(guī)則引擎可解釋執(zhí)行的目標(biāo)規(guī)則語法結(jié)構(gòu),構(gòu)建中間業(yè)務(wù)規(guī)則到目標(biāo)規(guī)則的映射關(guān)系及映射器,完成中間業(yè)務(wù)規(guī)則到目標(biāo)規(guī)則的相互轉(zhuǎn)換,從而實(shí)現(xiàn)目標(biāo)業(yè)務(wù)規(guī)則之間的互相轉(zhuǎn)換。

        3.1 業(yè)務(wù)規(guī)則描述語言設(shè)計(jì)

        業(yè)務(wù)規(guī)則描述模型定義了描述業(yè)務(wù)規(guī)則的語法結(jié)構(gòu)與規(guī)范。業(yè)務(wù)分析人員深刻了解企業(yè)業(yè)務(wù)策略以及運(yùn)行過程,但他們難以直接將業(yè)務(wù)策略轉(zhuǎn)變?yōu)樾问交潭容^高的目標(biāo)業(yè)務(wù)規(guī)則。為此,面向業(yè)務(wù)人員設(shè)計(jì)了一套近似英語語法的業(yè)務(wù)規(guī)則描述語言UniRL,部分語法如下所示(采用巴科斯范式描述)。

        〈RuleDef〉∷=IF 〈BoolExpr〉THEN 〈Action〉

        〈BoolExpr〉∷=〈BoolExpr〉A(chǔ)ND 〈BoolExpr〉|

        〈BoolExpr〉OR〈BoolExpr〉|

        NOT 〈BoolExpr〉|

        〈Expr〉[is] 〈RelationOp〉〈Expr〉

        〈RelationOP〉∷=greater than|less than|equal to|…

        〈Expr〉∷=〈Expr〉〈Op〉〈Expr〉| [〈Qualifier〉] 〈Object〉

        〈Object〉∷=ObjName|ObjName’s ObjName|Const|…

        〈Op〉∷=add|minus|multiply| divide

        〈Qualifier〉∷=a|an|the|its|…

        〈Action〉∷=〈ActionSt〉| 〈Action〉; 〈ActionSt〉

        〈ActionSt〉∷=[〈Object〉] 〈Method〉[〈ParameterList〉]

        〈ParameterList〉∷=〈Object〉| 〈ParameterList〉, 〈Object〉

        3.2 中間業(yè)務(wù)規(guī)則生成的設(shè)計(jì)與實(shí)現(xiàn)

        (1)中間業(yè)務(wù)規(guī)則設(shè)計(jì)。

        中間業(yè)務(wù)規(guī)則是目標(biāo)業(yè)務(wù)規(guī)則互相轉(zhuǎn)換的中間橋梁,是系統(tǒng)框架的核心。中間業(yè)務(wù)規(guī)則形式獨(dú)立于形式化程度較高的目標(biāo)規(guī)則,本文采用XML刻畫中間業(yè)務(wù)規(guī)則,其用XML Schema定義的部分語法結(jié)構(gòu)如下所示:

        〈xs:element name="rule" type="rule:ruleType"/〉

        〈xs:complexType name="ruleType"〉

        〈xs:sequence〉

        〈xs:element maxOccurs="unbounded" minOccurs="0" ref="rule:attribute"/〉

        〈xs:element maxOccurs="unbounded" minOccurs="0" ref="rule:parameter"/〉

        〈xs:element ref="rule:lhs"/〉

        〈xs:element ref="rule:rhs"/〉

        〈/xs:sequence〉

        〈xs:attribute name="name" type="xs:string" use="required"/〉

        〈/xs:complexType〉

        元素rule是一個(gè)復(fù)雜類型節(jié)點(diǎn),包含name名字屬性和attribute、parameter、lhs和rhs四個(gè)元素。attribute表示規(guī)則的屬性,如描述信息、優(yōu)先級(jí)和有效期等。parameter表示規(guī)則的輸入?yún)?shù),每個(gè)參數(shù)有唯一的標(biāo)識(shí)符并與加載到工作內(nèi)存中的事實(shí)對(duì)象或全局變量相對(duì)應(yīng)。lhs元素標(biāo)記規(guī)則的前條件,包含多個(gè)condition元素, rhs元素標(biāo)記規(guī)則的執(zhí)行動(dòng)作,包含多個(gè)consequence元素,每個(gè)consequence元素表示一個(gè)對(duì)事實(shí)對(duì)象的操作。

        (2)中間業(yè)務(wù)規(guī)則生成。

        針對(duì)UniRL文法,采用LEX工具構(gòu)建詞法解析器,將元規(guī)則分解成單詞序列;采用遞歸下降分析方法構(gòu)建構(gòu)造語法解析器,根據(jù)單詞序列構(gòu)造成抽象語法樹AST;語義解析器根據(jù)AST以及業(yè)務(wù)對(duì)象關(guān)系,分析元規(guī)則是否符合業(yè)務(wù)對(duì)象的依賴關(guān)系;構(gòu)造UniRL文法元素與中間業(yè)務(wù)規(guī)則標(biāo)簽元素之間的一一映射關(guān)系,并由此將元規(guī)則轉(zhuǎn)換成中間業(yè)務(wù)規(guī)則。同時(shí),詞法、語法及語義解析過程中的錯(cuò)誤信息傳至表現(xiàn)層以及時(shí)提醒用戶。

        3.3 基于映射表的目標(biāo)規(guī)則轉(zhuǎn)換

        現(xiàn)有規(guī)則引擎種類繁多,其對(duì)應(yīng)的目標(biāo)業(yè)務(wù)規(guī)則也千差萬別。為適用于不同規(guī)則引擎,UniBRGS系統(tǒng)針對(duì)每種目標(biāo)規(guī)則語言提供了與之對(duì)應(yīng)的專用轉(zhuǎn)換器,負(fù)責(zé)中間業(yè)務(wù)規(guī)則到一種目標(biāo)業(yè)務(wù)規(guī)則的互相轉(zhuǎn)換。分析目標(biāo)業(yè)務(wù)規(guī)則的語法元素,將中間業(yè)務(wù)規(guī)則與其元素間可以通過映射直接互相轉(zhuǎn)換的提取成映射規(guī)則(例如中間業(yè)務(wù)規(guī)則到Drools和Jess規(guī)則的部分映射關(guān)系表1所示),其他元素的轉(zhuǎn)換用專用轉(zhuǎn)換器以硬代碼實(shí)現(xiàn),從而提高轉(zhuǎn)換器的靈活性。當(dāng)需要引入新的目標(biāo)業(yè)務(wù)規(guī)則時(shí),只需添加對(duì)應(yīng)的轉(zhuǎn)換器即可,提高了系統(tǒng)靈活性和擴(kuò)展性。通過中間業(yè)務(wù)規(guī)則實(shí)現(xiàn)目標(biāo)規(guī)則間的互相轉(zhuǎn)換,降低了底層規(guī)則引擎與上層信息系統(tǒng)的耦合性。

        Table 1 Mapping for element transformation between intermediate rule and targeted rule

        4 實(shí)驗(yàn)及結(jié)果

        基于以上設(shè)計(jì)方案,采用Jess和Drools作為目標(biāo)規(guī)則引擎實(shí)現(xiàn)UniBRGS原型系統(tǒng),并以表2中的打折規(guī)則為例驗(yàn)證系統(tǒng)設(shè)計(jì)的可行性。

        Table 2 A discount rule for some market

        具體實(shí)驗(yàn)過程如下:

        (1)針對(duì)給出的某商場打折策略,在基于向?qū)У腉UI規(guī)則編輯環(huán)境中采用UniRL語法結(jié)構(gòu)正確對(duì)其刻畫描述。

        IF

        a customer’s type is GOLDEN and its purchase is greater than 500 or

        a customer’s type is SILVER and its purchase is greater than 1 000 or

        a customer’s type is BRONZE and its purchase is greater than 2 000

        THEN

        set discount 0.12 ; print it;

        (2)將驗(yàn)證無誤的UniRL描述的規(guī)則通過UniBRGS轉(zhuǎn)化成面向Drools規(guī)則引擎的目標(biāo)規(guī)則,如下所示:

        import com.custrule.Customer

        rule "customerRule"

        when

        cust:(Customer(type=="GOLDEN", purchase>500) or

        Customer(type=="SILVER", purchase>1 000) or

        Customer(type=="BRONZE", purchase>2 000) )

        then

        cust.setDiscount(0.12);

        System.out.println(cust);

        end

        創(chuàng)建1 000個(gè)顧客事實(shí)對(duì)象,按會(huì)員等級(jí)平均分成三類,每類顧客的消費(fèi)額為0到3 000之間的隨機(jī)數(shù)。構(gòu)建Drools規(guī)則引擎環(huán)境,加載上述面向Drools的業(yè)務(wù)規(guī)則,向工作內(nèi)存添加創(chuàng)建的事實(shí)對(duì)象,執(zhí)行業(yè)務(wù)規(guī)則。規(guī)則執(zhí)行結(jié)果與預(yù)期相同。

        (3)不依賴于任何輸入,通過UniBRGS生成與上述業(yè)務(wù)規(guī)則對(duì)應(yīng)的面向Jess的目標(biāo)規(guī)則,如下所示:

        (import com.custrule.Customer)

        (deftemplate Customer (declare (from-class Customer)))

        (defrule customerRule

        (Customer{(purchase>500 && type=="GOLDEN")‖

        (purchase>1 000 && type=="SILVER")‖

        (purchase>2 000 && type=="BRONZE")

        }(OBJECT ?cust))

        =>

        (?cust setDiscount 0.12)

        (printout t (?cust toString) crlf))

        同樣地,構(gòu)建Jess規(guī)則引擎環(huán)境,加載面向Jess的業(yè)務(wù)規(guī)則,向工作內(nèi)存添加同(2)一樣的事實(shí)對(duì)象,執(zhí)行業(yè)務(wù)規(guī)則。其執(zhí)行結(jié)果同(2)中Drools規(guī)則執(zhí)行結(jié)果一樣。

        通過上述實(shí)驗(yàn)可得,UniBRGS可以快速準(zhǔn)確地完成業(yè)務(wù)規(guī)則的定義與轉(zhuǎn)化。通過引擎無關(guān)的中間規(guī)則,用戶可直接實(shí)現(xiàn)已生成的目標(biāo)規(guī)則到另外一種規(guī)則的轉(zhuǎn)換,從而實(shí)現(xiàn)信息系統(tǒng)在規(guī)則引擎間的無縫移植。同時(shí),UniBRGS并不只面向Drools和Jess,通過動(dòng)態(tài)添加目標(biāo)規(guī)則與中間規(guī)則元素間的映射關(guān)系,可支持更多規(guī)則引擎的業(yè)務(wù)規(guī)則。

        5 結(jié)束語

        當(dāng)前企業(yè)通過完成應(yīng)用系統(tǒng)與規(guī)則引擎的集成來統(tǒng)一定義、存儲(chǔ)、管理和部署運(yùn)行業(yè)務(wù)決策,從而降低企業(yè)應(yīng)用的復(fù)雜性,適應(yīng)萬變的市場需求。本文針對(duì)目前業(yè)務(wù)規(guī)則語言繁多而造成的信息系統(tǒng)難于升級(jí)或遷移等問題,提出了基于映射機(jī)制的業(yè)務(wù)規(guī)則生成系統(tǒng),使不同規(guī)則引擎所識(shí)別的業(yè)務(wù)規(guī)則之間可以互相轉(zhuǎn)換,從而使上層應(yīng)用可以不依賴于具體供應(yīng)商的規(guī)則引擎,降低了企業(yè)應(yīng)用系統(tǒng)與規(guī)則引擎的耦合性,提高了系統(tǒng)的靈活性和可移植性。本文UniBRGS原型實(shí)現(xiàn)是針對(duì)Drools和Jess的,未來工作將考慮支持更多主流的規(guī)則引擎,如OpenRules,同時(shí)研究規(guī)則間轉(zhuǎn)換的完備性問題。

        [1] JBoss Community. Drools—The business logic integration platform [EB/OL].[2013-05-07].http://www.jboss.org/drools/.

        [2] Sandia National Laboratories.Jess,the rule engine for the Java platform[EB/OL].[2013-05-24].http://www.jessrules.com.

        [3] Business Rule Group[EB/OL].[2013-06-13].http://www.businessrulesgroup.org/defnbrg.shtml.

        [4] RuleML.The rule markup initiative[EB/OL].[2013-08-14].http://www.ruleml.org/.

        [5] Rosenberg F, Dustdar S. Towards a distributed service-oriented business rules system[C]∥Proc of the 3rd IEEE European Conference on Web Services, 2005:11.

        [6] Tosanguan P, Suwannasart T. An approach for defining rule as functions in rule-based software development[C]∥Proc of the 7th International Conference on Digital Information Management, 2012:30-34.

        [7] Nagl C,Rosenberg F,Dustdar S.VIDRE—A distributed service-oriented business rule engine based on RuleML[C]∥Proc of the 10th International Enterprise Distributed Object Computing Conference, 2006:35-44.

        [8] Fu G, Shao J, Embury S M, et al. A framework for business rule presentation[C]∥Proc of the 12th IEEE Internat-ional Workshop on Database and Expert Systems Applications, 2001:922-926.

        [9] zur Muehlen M, Indulska M. Modeling languages for business processes and business rules:A representational analysis[J]. Information Systems, 2010, 35(4):379-390.

        [10] Bona D D, Re G L, Aiello G, et al. A methodology for graphical modeling of business rules[C]∥Proc of the 5th UKSim European Symposium on Computer Modeling and Simulation, 2011:102-106.

        猜你喜歡
        中間業(yè)務(wù)引擎定義
        藍(lán)谷: “涉藍(lán)”新引擎
        商周刊(2017年22期)2017-11-09 05:08:31
        成功的定義
        山東青年(2016年1期)2016-02-28 14:25:25
        無形的引擎
        河南電力(2015年5期)2015-06-08 06:01:46
        基于Cocos2d引擎的PuzzleGame開發(fā)
        保定銀行股份有限公司中間業(yè)務(wù)收入情況表
        中國農(nóng)業(yè)發(fā)展銀行河北省分行中間業(yè)務(wù)收入情況表
        修辭學(xué)的重大定義
        山的定義
        河北省各城市商業(yè)銀行中間業(yè)務(wù)收入情況表
        中國農(nóng)業(yè)發(fā)展銀行河北省分行中間業(yè)務(wù)收入情況表
        老太脱裤让老头玩ⅹxxxx| 日韩中文字幕在线观看一区| 日本真人边吃奶边做爽动态图 | 亚洲av无码片在线播放| 亚洲国产av一区二区三| 在线观看国产白浆一区三区| 久久久中日ab精品综合| 成人性生交片无码免费看| 国产成人精品三上悠亚久久| 美女性色av一区二区三区| 日韩人妻不卡一区二区三区| 女人被爽到呻吟gif动态图视看| 日韩中文字幕不卡网站| 久久精品国产亚洲av蜜臀久久| 高级会所技师自拍视频在线| 欧洲熟妇色xxxxx欧美老妇伦| 国产丝袜在线精品丝袜不卡 | 亚洲1区第2区第3区在线播放| 日日摸天天碰中文字幕你懂的| 在教室伦流澡到高潮h麻豆| 国产成人精品无码一区二区老年人| 亚洲美女主播内射在线| 国产成人av乱码在线观看| 久久亚洲精品ab无码播放| 美女极度色诱视频国产免费| 中文字幕亚洲一区二区三区| 日本护士xxxx视频| 国产人成精品综合欧美成人| 国产av乳头久久一区| 丝袜美腿国产一区精品| 天天综合网天天综合色| 久久亚洲伊人| 日韩一区二区中文天堂| 亚洲午夜久久久久久久久电影网 | 亚洲av香蕉一区区二区三区| 欧美丰满大屁股ass| 久久久久久人妻一区精品| 日韩人妻免费视频一专区| 亚洲av无码专区在线播放| 日韩AV有码无码一区二区三区| 成人av一区二区亚洲精|