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

        ?

        基于規(guī)則引擎的自適應(yīng)工資系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

        2018-09-04 09:37:16崔歡歡黃偉舒江波
        軟件導(dǎo)刊 2018年6期
        關(guān)鍵詞:適應(yīng)性規(guī)則

        崔歡歡 黃偉 舒江波

        摘 要:目前大部分工資系統(tǒng)的計(jì)算方法采用硬編碼方式,與工資政策結(jié)合過(guò)于密切,系統(tǒng)適用性、重用性不高,更新維護(hù)困難。針對(duì)這一問(wèn)題,提出了一種基于規(guī)則引擎的自適應(yīng)工資系統(tǒng)。首先,結(jié)合Drools規(guī)則引擎組件建立一個(gè)可執(zhí)行的規(guī)則庫(kù),將規(guī)則庫(kù)與現(xiàn)實(shí)中的業(yè)務(wù)需求及政策一一對(duì)應(yīng);然后通過(guò)規(guī)則流控制規(guī)則的執(zhí)行,使其更靈活地適應(yīng)計(jì)算邏輯的變化,推動(dòng)了工資系統(tǒng)的解耦合擴(kuò)展和更新。根據(jù)規(guī)則引擎得到的規(guī)則文件,可經(jīng)自然語(yǔ)言處理作為規(guī)則文檔使用,極大降低了政策變化與系統(tǒng)功能同步更新難度,具有較高的實(shí)用價(jià)值。

        關(guān)鍵詞:工資系統(tǒng);規(guī)則引擎;規(guī)則;規(guī)則流;適應(yīng)性

        DOI:10.11907/rjdk.172889

        中圖分類號(hào):TP319

        文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2018)006-0102-04

        Abstract:At present,hard-coding is adopted in most payroll system, it is too dependent on wage policy,which makes the system dificult to update and maintain.To slove this problem, this paper prensents a payroll system based on rules. First, we establish a executable rule base with the Drools rules engine components , the rule base corresponds to business requirements and policies; then, the execution of regular flow control rules can make it more flexible to adapt to the changes of calculation logic. It is proved that the system can promote the decoupling, the expansion and update of the salary system. In addition, the rule file can be changed into rule documents by natural language processing, which greatly reducing the policy change and system update difficulty, has a strong practical value.

        Key Words:payroll system; rules engine; rule; rule flow; adaptability

        0 引言

        軟件行業(yè)發(fā)展至今,靈活性和適應(yīng)性愈加重要。設(shè)計(jì)模式、極限編程、敏捷軟件開發(fā)、Rup等,無(wú)一例外地強(qiáng)調(diào)了靈活和變化的重要性。

        Drools是為Java量身定制的基于Charles Forgy的RETE算法規(guī)則實(shí)現(xiàn)[1],具有OO接口的RETE使商業(yè)規(guī)則有了更自然的表達(dá),很多Java的應(yīng)用系統(tǒng)中已開始引入Drools規(guī)則引擎以提高系統(tǒng)適應(yīng)性。

        本文以機(jī)關(guān)事業(yè)單位網(wǎng)絡(luò)工資管理系統(tǒng)開發(fā)為例,建立與工資政策相適應(yīng)的規(guī)則,減少硬編碼,實(shí)現(xiàn)編碼與規(guī)則的解耦合[2], 以規(guī)則庫(kù)對(duì)應(yīng)工資政策。通過(guò)對(duì)規(guī)則的管理和系統(tǒng)的重新設(shè)計(jì),實(shí)現(xiàn)具有自適應(yīng)性的網(wǎng)絡(luò)工資管理系統(tǒng)。

        1 相關(guān)技術(shù)

        1.1 規(guī)則引擎

        規(guī)則引擎[3]一直以來(lái)沒(méi)有明確定義,因?yàn)橐?guī)則引擎的廣義定義使得規(guī)則引擎范圍很大,包括以任何形式使用并能應(yīng)用于生成數(shù)據(jù)結(jié)果的規(guī)則系統(tǒng)。本文的規(guī)則引擎是一種嵌入在應(yīng)用程序中的組件,它主要負(fù)責(zé)利用用戶抽取的業(yè)務(wù)邏輯,按預(yù)先定義好的語(yǔ)義編寫業(yè)務(wù)規(guī)則,執(zhí)行預(yù)定義流程,完成一定的檢測(cè)和執(zhí)行功能。同時(shí)規(guī)則引擎還提供一些輔助性插件,如繪制規(guī)則流插件、調(diào)試插件等。

        Java規(guī)則引擎作為一個(gè)軟件插件,可管理和執(zhí)行業(yè)務(wù)規(guī)則、存儲(chǔ)規(guī)則,主要包括規(guī)則的語(yǔ)法形式、規(guī)則的組織形式、規(guī)則執(zhí)行前的標(biāo)識(shí)中間形式以及規(guī)則執(zhí)行中的內(nèi)存申請(qǐng)管理,具有聲明式編程、邏輯和數(shù)據(jù)分開、性能高、集中表示知識(shí)、不用硬編碼等優(yōu)點(diǎn)。

        1.2 Drool5.0介紹

        1.2.1 業(yè)務(wù)規(guī)則

        業(yè)務(wù)規(guī)則[4-5] (BusinessRule,簡(jiǎn)稱BR)指包含一組條件和在此條件下執(zhí)行的操作,表示應(yīng)用程序的一段業(yè)務(wù)邏輯。Drools中每個(gè)規(guī)則結(jié)構(gòu)如圖1所示。

        1.2.2 規(guī)則流

        Drools提供了很多元素以控制規(guī)則的執(zhí)行順序,比如優(yōu)先級(jí)、Active-group等。如果項(xiàng)目越來(lái)越大,規(guī)則越來(lái)越復(fù)雜,單純靠?jī)?yōu)先級(jí)和Active-group是很難維護(hù)的,Ruleflow可輕松地控制規(guī)則的執(zhí)行順序,類似工作流那樣,將規(guī)則集中、分批管理和組織。Ruleflow還提供了Join、Split、條件判斷等復(fù)雜條件。圖2是一個(gè)規(guī)則流例子[6]。

        1.2.3 規(guī)則執(zhí)行

        編寫完規(guī)則和規(guī)則流后,建立相應(yīng)的drl、rf 、rfm或xml文件,這些文件將由一個(gè)Antlr3 的文法解析器檢測(cè)是否存在錯(cuò)誤。正確性檢測(cè)后建立一個(gè)規(guī)則描述descr的中間結(jié)構(gòu),文法解析器將descr傳入PackageBuilder 中,由它來(lái)打包生成Package[7-8]。規(guī)則執(zhí)行流程如圖3所示。

        2 工資管理系統(tǒng)規(guī)則庫(kù)模型設(shè)計(jì)

        2.1 工資管理系統(tǒng)中的規(guī)則

        規(guī)則的分類思想較多,最具有代表性的是由James Odell提出的分類思想,該思想較為實(shí)用和全面。在對(duì)系統(tǒng)進(jìn)行分析時(shí),要對(duì)系統(tǒng)中的內(nèi)容進(jìn)行分析,確定規(guī)則是表示對(duì)象與對(duì)象之間的關(guān)系,還是表示系統(tǒng)運(yùn)算邏輯或是商業(yè)邏輯,區(qū)分情況進(jìn)行管理。該思想將規(guī)則分為6類:

        (1)條件型:這類規(guī)則用來(lái)限制對(duì)象所處環(huán)境,設(shè)置對(duì)象為真還是為假,比如WHEN……IF……ELSE。

        (2)充分型:這類規(guī)則表示當(dāng)且僅當(dāng)?shù)臈l件,只有條件為真時(shí)才執(zhí)行,比如ONLY,IF。

        (3)必要型:用例后置規(guī)則是表示用例執(zhí)行結(jié)果的規(guī)則,它只關(guān)心用例執(zhí)行的結(jié)果。比如:Finally。

        (4)關(guān)聯(lián)關(guān)系型:對(duì)象約束規(guī)則表示對(duì)象與對(duì)象之間的關(guān)系,有一對(duì)多、多對(duì)一、多對(duì)多等,還包含依賴、集成、聚合等關(guān)系。

        (5)推理型:推理顧名思義是由條件A滿足時(shí)需要經(jīng)過(guò)多個(gè)條件的比對(duì)才能得出結(jié)果。

        (6)公式型:這類規(guī)則來(lái)自公式或算法的結(jié)果,比如:工資=基本工資+津貼+邊遠(yuǎn)津貼-納稅。

        2.2 系統(tǒng)規(guī)則流

        規(guī)則流與工作流的區(qū)別在于解決問(wèn)題的中心不一樣。如果流程經(jīng)常變化,建議用工作流,如果流程變化較少而流程中的內(nèi)容變化較大建議用規(guī)則流。一般規(guī)則流的變更并不頻繁,因此使用規(guī)則流。經(jīng)過(guò)分析后一旦決定就不輕易變化,對(duì)于有變化的內(nèi)容應(yīng)該盡量用規(guī)則來(lái)處理。系統(tǒng)規(guī)則流分層如圖4所示。

        2.3 規(guī)則文件組織與管理

        規(guī)則管理是整個(gè)工資系統(tǒng)的核心。對(duì)工資系統(tǒng)的業(yè)務(wù)模式、業(yè)務(wù)規(guī)則以及影響工資計(jì)算的各種參數(shù)作充分分析,并以此建立基礎(chǔ)構(gòu)建規(guī)則庫(kù)模型和基于規(guī)則庫(kù)的推理機(jī)制,同時(shí)將規(guī)則庫(kù)進(jìn)行分類管理,實(shí)現(xiàn)規(guī)則的可配置管理。

        2.3.1 規(guī)則的分類組織

        工資系統(tǒng)依賴大量的政策文件,本文對(duì)政策文件進(jìn)行分類管理,由規(guī)則包→規(guī)則文件→規(guī)則,由大到小進(jìn)行分類和編號(hào),提供規(guī)則管理界面,方便用戶修改規(guī)則和加入新的規(guī)則,見表1。

        2.3.2 規(guī)則的沖突檢測(cè)與處理

        沖突分為3種:①兩條規(guī)則條件中的關(guān)系運(yùn)算完全相同;②兩條規(guī)則中的關(guān)系運(yùn)算有交集而數(shù)值不同[7];③執(zhí)行規(guī)則中順序不當(dāng)或混亂導(dǎo)致規(guī)則匹配出錯(cuò)。本文對(duì)沖突處理的方式如圖5所示。

        3 系統(tǒng)設(shè)計(jì)與建模

        3.1 激活規(guī)則庫(kù)

        Drools支持多種規(guī)則文件格式,如drl、dsl和xml等。其中,drl格式為Drools規(guī)則引擎的標(biāo)準(zhǔn)格式。Drl語(yǔ)法簡(jiǎn)單,格式固定,屬性理解方便,因此可讀性較強(qiáng)。本文的所有規(guī)則文件均以drl文件的形式存儲(chǔ),但是對(duì)于各類人員的規(guī)則,具體到某一個(gè)單位時(shí),只會(huì)用到部分規(guī)則,因此本文用數(shù)據(jù)庫(kù)存儲(chǔ)可以激發(fā)的規(guī)則文件。某一條規(guī)則是否激活有兩種狀態(tài):已激活和未激活。

        3.2 規(guī)則過(guò)濾器

        工資計(jì)算時(shí)面對(duì)大量的規(guī)則,如何根據(jù)具體的人去選擇規(guī)則,僅僅靠規(guī)則引擎是不能完成的。它需要規(guī)則過(guò)濾器提取規(guī)則相關(guān)信息,檢測(cè)規(guī)則執(zhí)行時(shí)的沖突,處理沖突。同時(shí)規(guī)則過(guò)濾器還擔(dān)當(dāng)規(guī)則的預(yù)處理,根據(jù)人員的相關(guān)信息選取可能匹配的規(guī)則等。規(guī)則過(guò)濾流程如圖6所示。

        3.3 規(guī)則管理平臺(tái)

        規(guī)則管理界面中,業(yè)務(wù)規(guī)則編碼是添加規(guī)則時(shí)自動(dòng)生成的規(guī)則編號(hào),這個(gè)規(guī)則編號(hào)蘊(yùn)含規(guī)則的相關(guān)信息,是規(guī)則文件的唯一標(biāo)識(shí)。規(guī)則名稱是規(guī)則的說(shuō)明性名稱,以方便用戶理解規(guī)則,規(guī)則執(zhí)行狀態(tài)表示規(guī)則目前所處的狀態(tài),規(guī)則類別記錄了規(guī)則所屬人員的類別,創(chuàng)建時(shí)間是最后一次修改規(guī)則的時(shí)間。

        4 結(jié)語(yǔ)

        本文進(jìn)行了如下研究:

        (1)規(guī)則引擎與工資計(jì)算相結(jié)合。規(guī)則引擎是人工智能領(lǐng)域?qū)<蚁到y(tǒng)的應(yīng)用[9],與工資系統(tǒng)結(jié)合,提高了工資系統(tǒng)的智能性。

        (2)根據(jù)jsr94語(yǔ)法規(guī)則,運(yùn)用Drools插件[10]編寫了大量的工資系統(tǒng)相關(guān)政策文件規(guī)則,將工資政策直接與規(guī)則相關(guān),將計(jì)算流程直接與規(guī)則流相關(guān)。

        (3)提供規(guī)則管理界面。管理員利用規(guī)則管理界面可以方便地查看規(guī)則、修改規(guī)則、添加規(guī)則、配置規(guī)則,以適應(yīng)新的政策變化。

        (4)設(shè)置規(guī)則激活庫(kù)以適應(yīng)不同單位的需要,激活規(guī)則由管理員進(jìn)行配置和激活。

        (5)設(shè)計(jì)規(guī)則過(guò)濾器,實(shí)現(xiàn)了規(guī)則文件、規(guī)則流和具體人員結(jié)合,通過(guò)規(guī)則過(guò)濾器解決執(zhí)行時(shí)的沖突,調(diào)用規(guī)則流執(zhí)行。

        (6)高可擴(kuò)展性?;谝?guī)則的系統(tǒng)本身就具有很好的擴(kuò)展性能,脫離硬編碼后,依賴規(guī)則的方式擴(kuò)展時(shí)只需要加入新的規(guī)則即可。

        有待進(jìn)一步研究的內(nèi)容是:①規(guī)則沒(méi)有充分做到自然語(yǔ)言化,如果能做到自然語(yǔ)言化,那么規(guī)則的編輯與修改就會(huì)變得更加容易;②規(guī)則流管理基于Drools提供的myeclispe插件,因此規(guī)則流的修改還需要程序人員參與;③目前規(guī)則的生成,主要靠懂政策的人手動(dòng)編寫,如果能設(shè)計(jì)一個(gè)通用的規(guī)則生成器用以生成規(guī)則,就會(huì)減少工作量,使規(guī)則編寫更加方便。

        參考文獻(xiàn):

        [1] JOSEPH GIARRATANO,GARY RILEY.專家系統(tǒng):原理與編程[M].印鑒,譯.第4版.北京:機(jī)械工業(yè)出版社,2010.

        [2] 何仁杰,梁冰.用規(guī)則引擎替代代碼[N].計(jì)算機(jī)世界,2004-01-19.

        [3] Drools開發(fā)手冊(cè)[EB/OL]. http://down.51cto.com/data/473041.

        [4] TONEY MORGAN.Business rules and information systems:aligning it with business goals[M].Boston:Addison-wesley Professional,2002:34-63.

        [5] RONALD G ROSS.業(yè)務(wù)規(guī)則方法原理[M].北京:機(jī)械工業(yè)出版社,2004.

        [6] Drools官網(wǎng)[EB/OL].http://drools.org/download/download.html.

        [7] 張宇,陳德禮.基于Drools的策略體系設(shè)計(jì)[J].福建電腦,2007(10):11-12.

        [8] 劉金龍.Drools規(guī)則引擎模式匹配效率優(yōu)化研究與實(shí)現(xiàn)[D].成都:西南交通大學(xué),2016.

        [9] 李春芳,譚慶平.面向業(yè)務(wù)的Drools規(guī)則引擎改進(jìn)[J].計(jì)算機(jī)應(yīng)用與軟件,2015(5):20-23.

        [10] 劉金龍.Drools規(guī)則引擎模式匹配效率優(yōu)化研究與實(shí)現(xiàn)[D].成都:西南交通大學(xué),2015.

        (責(zé)任編輯:杜能鋼)

        猜你喜歡
        適應(yīng)性規(guī)則
        谷子引種適應(yīng)性鑒定與篩選初報(bào)
        撐竿跳規(guī)則的制定
        數(shù)獨(dú)的規(guī)則和演變
        健全現(xiàn)代金融體系的適應(yīng)性之“點(diǎn)論”
        規(guī)則的正確打開方式
        幸福(2018年33期)2018-12-05 05:22:42
        讓規(guī)則不規(guī)則
        Coco薇(2017年11期)2018-01-03 20:59:57
        TPP反腐敗規(guī)則對(duì)我國(guó)的啟示
        大型飛機(jī)A380-800在既有跑道起降的適應(yīng)性研究
        搜索新規(guī)則
        既定PSS在不同運(yùn)行狀態(tài)下的適應(yīng)性分析
        无码人妻精品一区二区三区下载| 国产伦精品一区二区三区| 久久人妻少妇嫩草av蜜桃| 大香焦av一区二区三区| 朋友的丰满人妻中文字幕| 免费观看又色又爽又黄的| 在线人妻无码一区二区| 男女上床视频免费网站| 街拍丝袜美腿美女一区| 蜜臀一区二区三区精品| 无码va在线观看| 欧美国产日韩a在线视频| 久久精品午夜免费看| 国产黄色三级三级三级看三级| 亚洲毛片一区二区在线| 美女露内裤扒开腿让男人桶无遮挡| 亚洲一线二线三线写真| 一区二区免费电影| 在线亚洲国产一区二区三区| 97精品人妻一区二区三区在线| a级毛片免费观看在线播放| 国产在线观看www污污污| 国产69口爆吞精在线视频喝尿| 美国又粗又长久久性黄大片| 久久亚洲午夜牛牛影视| 国产精品国产三级在线专区| 国产日产桃色精品久久久| 国产精品不卡无码AV在线播放| 国产少妇一区二区三区| 亚洲日本精品国产一区二区三区 | 无码国产精品一区二区av| 精品国产sm捆绑最大网免费站| 国产九色AV刺激露脸对白| 国产一区亚洲一区二区| 国产一区二区三区在线观看第八页| 无码人妻丰满熟妇区五十路| 丰满少妇作爱视频免费观看| 福利体验试看120秒| 国产精品国产午夜免费福利看| 日产精品一区二区免费| 精品人妻av一区二区三区四区|