国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      并行業(yè)務(wù)規(guī)則引擎及其實(shí)現(xiàn)方法

      文檔序號(hào):6400070閱讀:243來(lái)源:國(guó)知局
      專利名稱:并行業(yè)務(wù)規(guī)則引擎及其實(shí)現(xiàn)方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及計(jì)算機(jī)軟件開(kāi)發(fā)領(lǐng)域,應(yīng)用于系統(tǒng)集成、軟件系統(tǒng)配置、容錯(cuò)和高性能計(jì)算等方面。具體地,設(shè)計(jì)方案通過(guò)在規(guī)則引擎中増加并行執(zhí)行體,在并行執(zhí)行體中聲明對(duì)分支的選擇方式,及生成和查找方式,以提供對(duì)并行計(jì)算的有效支持。
      背景技術(shù)
      規(guī)則引擎(regular rule)是指用一段易懂的腳本表示業(yè)務(wù)過(guò)程中的規(guī)則,腳本不需要經(jīng)過(guò)編譯,在程序運(yùn)行期由規(guī)則引擎框架讀取和解釋,應(yīng)用程序調(diào)用規(guī)則引擎接ロ觸發(fā)執(zhí)行相應(yīng)的規(guī)則,從而達(dá)到業(yè)務(wù)邏輯和業(yè)務(wù)編程實(shí)現(xiàn)的分離。規(guī)則引擎不同于規(guī)則發(fā)現(xiàn)引擎,規(guī)則引擎屬于程序配置體系;規(guī)則發(fā)現(xiàn)引擎是指通過(guò)模式匹配發(fā)現(xiàn)業(yè)務(wù)過(guò)程中的某種規(guī)律,屬于模式識(shí)別范疇。規(guī)則引擎包括如下部分:規(guī)則腳本(不需要編譯)、規(guī)則引擎框架、調(diào)用規(guī)則引擎的應(yīng)用程序。一般規(guī)則腳本包括:執(zhí)行體和規(guī)則體,規(guī)則體包括觸發(fā)條件和對(duì)執(zhí)行體和需執(zhí)行方法的調(diào)用。エ作流(workf1w)指一系列前后相續(xù)相連的步驟。工作流引擎(workf1wengine)使用易懂的腳本等表示這些步驟之間的關(guān)系,工作流引擎框架讀取和解釋這些步驟,使用時(shí),應(yīng)用程序通過(guò)工作流引擎接ロ調(diào)用執(zhí)行相應(yīng)的工作流步驟,并得到結(jié)果。工作流引擎分離了工作流程和具體的程序編程。本發(fā)明中的并行計(jì)算(操作)指,由于數(shù)據(jù)分布在不同的邏輯地址,需要通過(guò)相同或不同的子程序模塊去分別操作,這些不同的子程序或者不同的邏輯地址的組合稱為分支,對(duì)數(shù)據(jù)的一次操作(計(jì)算),需要從ー個(gè)或多個(gè)可能的分支去選擇,操作(或稱計(jì)算)在空間上是并行的,因此稱為并行計(jì)算。業(yè)務(wù)規(guī)則引擎和工作流引擎基本實(shí)現(xiàn)了對(duì)系統(tǒng)易變部分的有效配置,但目前還沒(méi)有較好的方案引擎能便捷,快速的實(shí)現(xiàn)對(duì)系統(tǒng)數(shù)據(jù)備份、聯(lián)合查詢等并行計(jì)算的有效支持。

      發(fā)明內(nèi)容
      為了填補(bǔ)了業(yè)務(wù)規(guī)則引擎在并行計(jì)算方面的空白,并行業(yè)務(wù)規(guī)則引擎在配置文件中使用并行執(zhí)行體。數(shù)據(jù)的一次并行操作可以通過(guò)使用不同的子程序或者使用不同的邏輯地址達(dá)到,發(fā)明中請(qǐng)人將這些不同的子程序或者不同的邏輯地址的組合稱為分支。并行執(zhí)行體對(duì)數(shù)據(jù)有兩種操作方式:數(shù)據(jù)讀取,和數(shù)據(jù)寫(xiě)入(包括修改刪除)。數(shù)據(jù)讀取包括聯(lián)合、選擇、競(jìng)爭(zhēng)等分支選擇方式:聯(lián)合讀取就是從一系列分支中讀取數(shù)據(jù),最后拼裝成結(jié)果集;選擇就是假設(shè)各個(gè)分支數(shù)據(jù)是一祥的,執(zhí)行體從分支中(隨機(jī))選擇ー個(gè)分支讀取結(jié)果集;競(jìng)爭(zhēng)就是假設(shè)各個(gè)分支數(shù)據(jù)是一祥的,執(zhí)行體從各個(gè)分支讀取,但是只取最快的那份,其余的丟棄。數(shù)據(jù)寫(xiě)入包括聯(lián)合、同時(shí)等分支選擇方式:聯(lián)合就是將數(shù)據(jù)按照規(guī)則拆散放到各個(gè)分支中,每個(gè)分支得到的是不完整的數(shù)據(jù),但是所有分支數(shù)據(jù)的總和是完整數(shù)據(jù);同時(shí)就是將數(shù)據(jù)不拆散,完整的保存到各個(gè)分支中。
      分支的查找和生成規(guī)則為:分支地址或子程序名稱是由引擎?zhèn)魅氲膮?shù)通過(guò)映射得到的,參與映射的參數(shù)值可以是“”或null。映射規(guī)則是,設(shè)有i個(gè)變量,{Xi}為這些變量的集合,分支地址或子程序名稱為F({Xi}),那么找出ー個(gè)F({Xi}),通過(guò)F({Xi})可以通過(guò)逆映射獲得{Xi}中的所需要部分或全部。本規(guī)則引擎通過(guò)變量映射規(guī)則而不是通過(guò)條件判斷選擇分支,從而獲得對(duì)多種數(shù)據(jù)讀寫(xiě)方式的支持,這是本發(fā)明的特征。并行計(jì)算通過(guò)并行執(zhí)行體實(shí)現(xiàn),并行執(zhí)行體參數(shù)有三種類型:常量,由應(yīng)用程序調(diào)用規(guī)則引擎框架時(shí)傳入的變量,由常量和其他參數(shù)映射得來(lái)的參數(shù)。方法或執(zhí)行體引用的方式有兩種:常量方法,由常量和其他參數(shù)映射而來(lái)的方法。并行執(zhí)行體的第三種類型映射了邏輯地址分支,并行執(zhí)行體中方法或并行執(zhí)行體的第二種引用方式映射了子程序分支。因?yàn)椴⑿袌?zhí)行體是通過(guò)映射而非條件判斷選擇分支的,因此,本發(fā)明的方案可應(yīng)用于工作流引擎。具體是:并行執(zhí)行體作為工作流引擎的ー個(gè)執(zhí)行節(jié)點(diǎn);工作流引擎的上一個(gè)節(jié)點(diǎn)或該段工作流引擎的調(diào)用者傳入相應(yīng)的參數(shù),并調(diào)用該節(jié)點(diǎn);該節(jié)點(diǎn)映射各個(gè)分支,然后返回最終結(jié)果給下一個(gè)節(jié)點(diǎn);如果這是引擎的最后ー個(gè)節(jié)點(diǎn),那就返回給工作流引擎的調(diào)用者。


      圖1是對(duì)并行業(yè)務(wù)規(guī)則引擎結(jié)構(gòu)的解釋。并行業(yè)務(wù)規(guī)則引擎需要配置三種組件:執(zhí)行體和規(guī)則體是一般業(yè)務(wù)規(guī)則引擎所擁有的,而并行規(guī)則體則是本方案所特有的。并行規(guī)則體的參數(shù)和“方法或執(zhí)行體引用”部分都可以分別映射分支,通過(guò)這種分支映射的組合,并行業(yè)務(wù)規(guī)則引擎可以具備很好的伸縮性能。圖2是對(duì)并行規(guī)則體在工作流引擎中的應(yīng)用的解釋。工作流引擎中,并行節(jié)點(diǎn)的上一個(gè)節(jié)點(diǎn)(如果有)或應(yīng)用程序通過(guò)引擎框架調(diào)用并行節(jié)點(diǎn);并行執(zhí)行體隱式地通過(guò)映射方式執(zhí)行分支;然后,并行執(zhí)行體獲得并行運(yùn)算的最終結(jié)果;并將最終結(jié)果和控制交給下一個(gè)節(jié)點(diǎn)(如果有),如果沒(méi)有下ー個(gè)節(jié)點(diǎn),那就把結(jié)果交給通過(guò)引擎框架調(diào)用該引擎的應(yīng)用程序。
      具體實(shí)施例方式業(yè)務(wù)規(guī)則引擎的實(shí)現(xiàn)有以下步驟:
      1.規(guī)則引擎需要靠規(guī)則引擎框架解釋執(zhí)行,應(yīng)用程序讀入規(guī)則引擎框架。
      2.配置文件中配置業(yè)務(wù)規(guī)則,應(yīng)用程序讀入配置文件,并通過(guò)框架解釋這些規(guī)則。
      3.應(yīng)用程序在相應(yīng)的地方通過(guò)對(duì)框架SPI的調(diào)用,并傳入相應(yīng)的參數(shù),執(zhí)行規(guī)則,最后
      獲得結(jié)果。
      4.如果程序在該相應(yīng)的地方需求規(guī)則改變,只要參數(shù)不變,程序員就可以通過(guò)重新配置業(yè)務(wù)規(guī)則達(dá)到效果。并行業(yè)務(wù)規(guī)則引擎和并行業(yè)務(wù)工作流引擎的配置過(guò)程如下:
      1.首先定義需要被調(diào)用的分支的程序的方法,如果分支程序的方法不同就進(jìn)ー步將該方法封裝為執(zhí)行體。
      2.定義并行執(zhí)行體,并行執(zhí)行體聲明為讀取或?qū)懭腩愋停⒙暶髀?lián)合、選擇、競(jìng)爭(zhēng)、同時(shí)等方式。
      3.在并行執(zhí)行體中配置傳入?yún)?shù)、對(duì)“方法和執(zhí)行體的引用”。參數(shù)和“方法或執(zhí)行體引用”的類型可以由映射生成,映射的結(jié)果可以作為參數(shù);或者作為步驟I定義的執(zhí)行體的名稱,進(jìn)ー步通過(guò)執(zhí)行體獲得參數(shù);或者作為步驟I定義的執(zhí)行體的名稱由“方法或執(zhí)行體引用”所引用。
      4.應(yīng)用程序調(diào)用引擎框架,執(zhí)行并行執(zhí)行體,做并行操作。下面結(jié)合具體的應(yīng)用場(chǎng)景,進(jìn)ー步闡明本發(fā)明,本發(fā)明可以應(yīng)用于但不限于以下情形:假設(shè)日志系統(tǒng)需要每大生成ー個(gè)日志文件,并且可以查看所有天的日志。
      開(kāi)發(fā)者可按照如下步驟開(kāi)發(fā)和配置:
      1.在程序中編譯ー個(gè)通用的方法,用于寫(xiě)入日志,如果沒(méi)有相應(yīng)的日志文件就生成日志文件。
      2.配置并行執(zhí)行體1,用于對(duì)日志文件進(jìn)行并行操作。并行執(zhí)行體的“方法或執(zhí)行體引用”部分配置為對(duì)步驟I的方法的引用,傳入?yún)?shù)與步驟I中的參數(shù)一致。
      3.并行執(zhí)行體I為寫(xiě)入類型,并聲明為同時(shí)方式,以適應(yīng)并行寫(xiě)入的需求。
      4.并行執(zhí)行體I中的日志文件名參數(shù)以映射方式配置,映射公式為F(X)= Log|MMDD,麗為月,DD為日;麗和DD分別作為固定參數(shù)傳入,表示當(dāng)前時(shí)間,因此,對(duì)并行執(zhí)行體I的毎次寫(xiě)入操作只執(zhí)行ー個(gè)固定的分支。
      5.在程序中編譯ー個(gè)通用的方法,用于讀取日志。
      6.配置并行執(zhí)行體2,用于對(duì)日志文件進(jìn)行并行操作。并行執(zhí)行體的“方法或執(zhí)行體引用”部分配置為對(duì)步驟I的方法的引用,傳入?yún)?shù)與步驟I中的參數(shù)一致。
      7.并行執(zhí)行體2中的日志文件名參數(shù)以映射方式配置,映射公式為F(X)= Log|MMDD,MM為月,DD為日。
      8.并行執(zhí)行體2為讀取類型,并聲明為聯(lián)合方式,以適應(yīng)從各個(gè)分支聯(lián)合查詢數(shù)據(jù)的需求。假設(shè)應(yīng)用系統(tǒng)需要訪問(wèn)兩個(gè)數(shù)據(jù)庫(kù),這兩個(gè)數(shù)據(jù)庫(kù)數(shù)據(jù)完全一祥,一個(gè)用來(lái)備份,一個(gè)用來(lái)做正常業(yè)務(wù)訪問(wèn);兩個(gè)數(shù)據(jù)庫(kù)只有地址不一祥。
      開(kāi)發(fā)者可按照如下步驟開(kāi)發(fā)和配置:
      1.在引擎腳本中先配置兩個(gè)執(zhí)行體,分別返回兩個(gè)數(shù)據(jù)庫(kù)的地址,現(xiàn)假設(shè)這兩個(gè)執(zhí)行體名稱為DBOOOl和DB0002 ;
      2.在程序中編譯ー個(gè)通用的方法,用于對(duì)兩個(gè)數(shù)據(jù)庫(kù)進(jìn)行讀取操作,該方法的參數(shù)應(yīng)包含數(shù)據(jù)庫(kù)地址。
      3.配置并行執(zhí)行體1,用于對(duì)兩個(gè)數(shù)據(jù)庫(kù)進(jìn)行并行讀取操作。并行執(zhí)行體的“方法或執(zhí)行體引用”部分配置為對(duì)步驟2的方法的引用,傳入?yún)?shù)與步驟2中的參數(shù)一致。
      4.并行規(guī)則體I中的數(shù)據(jù)庫(kù)地址參數(shù)被配置為對(duì)執(zhí)行體DBOOOX的引用,所引用的執(zhí)行體名稱是由映射F(X) = DB I 000X得來(lái)的(如步驟I)。
      5.并行執(zhí)行體I選擇為讀取類型,聲明為選擇方式,以適應(yīng)從備份中讀ー個(gè)分支數(shù)據(jù)的需求。
      6.在程序中編譯ー個(gè)通用的方法,用于對(duì)兩個(gè)數(shù)據(jù)庫(kù)進(jìn)行寫(xiě)入操作,該方法的參數(shù)應(yīng)包含數(shù)據(jù)庫(kù)地址。
      7.配置并行執(zhí)行體2,用于對(duì)兩個(gè)數(shù)據(jù)庫(kù)進(jìn)行并行寫(xiě)入操作。并行執(zhí)行體的“方法或執(zhí)行體引用”部分配置為對(duì)步驟2的方法的引用,傳入?yún)?shù)與步驟6中的參數(shù)一致。
      8.并行規(guī)則體2中的數(shù)據(jù)庫(kù)地址參數(shù)被配置為對(duì)執(zhí)行體DBOOOX的引用,所引用的執(zhí)行體名稱是由映射F(X) = DB I 000X得來(lái)的(如步驟I)。
      9.并行執(zhí)行體2選擇為寫(xiě)入類型,聲明為同時(shí)方式,以適應(yīng)從備份中讀ー個(gè)分支數(shù)據(jù)的需求。搶票系統(tǒng)分別從不同公司買(mǎi)票,假設(shè)N家公司,每家公司系統(tǒng)購(gòu)票接ロ參數(shù)格式和返回?cái)?shù)據(jù)都一祥(或者可以轉(zhuǎn)換成一祥的),只是具體的實(shí)現(xiàn)方法不一樣,搶票系統(tǒng)需要獲得購(gòu)到的第一張票,如果搶到一張票以后,其余的票都撤單丟棄。
      開(kāi)發(fā)者可按照如下步驟開(kāi)發(fā)和配置:
      1.在規(guī)則引擎腳本中先配置N個(gè)執(zhí)行體,參數(shù)為各家公司系統(tǒng)的接ロ參數(shù),實(shí)現(xiàn)方法分別為各家公司系統(tǒng)的實(shí)現(xiàn)方法,執(zhí)行體名稱為ZXTl到ZXTN。
      2.配置并行執(zhí)行體,用于對(duì)這N家公司的并行購(gòu)票操作。由于這N家公司的參數(shù)格式都是一致的,因此,并行執(zhí)行體的參數(shù)同步驟I的參數(shù)一祥。
      3.并行執(zhí)行體的“方法或執(zhí)行體引用”部分配置為對(duì)N個(gè)執(zhí)行體的引用。引用的執(zhí)行體名稱由映射F⑴=ZXT IN得來(lái)(見(jiàn)步驟I)。
      4.并行執(zhí)行體選擇規(guī)則聲明為競(jìng)爭(zhēng)讀取方式,以適應(yīng)從各個(gè)分支競(jìng)爭(zhēng)查詢,從而最快獲得票的需求。
      權(quán)利要求
      1.規(guī)則引擎是指用一段易懂的代碼表示業(yè)務(wù)過(guò)程中的規(guī)則,它不需要經(jīng)過(guò)編譯,在程序運(yùn)行期被讀取、執(zhí)行?,F(xiàn)有的業(yè)務(wù)規(guī)則引擎只解決了“在什么條件下執(zhí)行什么”的需求,并行業(yè)務(wù)規(guī)則引擎及其方案的特征是:并行業(yè)務(wù)規(guī)則引擎根據(jù)業(yè)務(wù)的需要,利用并行執(zhí)行體以映射方式獲得所有分支,并對(duì)分支中的數(shù)據(jù)進(jìn)行有選擇的操作,選擇方式有聯(lián)合、選擇、競(jìng)爭(zhēng)、同時(shí)等,從而方便靈活地滿足各種并行計(jì)算的需求。
      2.根據(jù)權(quán)利要求
      所述的并行業(yè)務(wù)規(guī)則引擎及方案,其特征在于:并行業(yè)務(wù)規(guī)則引擎通過(guò)變量映射的方式查找和生成不同的分支,有別于傳統(tǒng)的通過(guò)條件判斷語(yǔ)句或條件觸發(fā)語(yǔ)句查找和生成分支的方式;映射規(guī)則如下,設(shè)有i個(gè)變量,{Xi}為這些變量的集合,分支地址或子程序名稱為{Y},那么找出ー個(gè){Y} =F({Xi})的映射,通過(guò)計(jì)算映射將{Xi}映射到F({Xi})。
      3.根據(jù)權(quán)利要求
      所述的并行業(yè)務(wù)規(guī)則引擎及方案,其特征在于:并行執(zhí)行體包括讀取和寫(xiě)入兩種類型,通過(guò)聲明同時(shí)、聯(lián)合、競(jìng)爭(zhēng)、選擇等選擇方式,從而適應(yīng)不同應(yīng)用情景下并行操作需求。
      4.根據(jù)權(quán)利要求
      所述的并行業(yè)務(wù)規(guī)則引擎及方案,其特征在干:該方案可用于并行工作流引擎,引擎中使用并行執(zhí)行體將對(duì)并行節(jié)點(diǎn)的操作映射為并行操作,從而很方便地獲得良好的性能;工作流(workflow)指一系列前后相續(xù)相連的步驟;工作流引擎(workflow engine)使用易懂的腳本等表示這些步驟之間的關(guān)系,工作流引擎框架讀取和解釋這些步驟,使用時(shí),應(yīng)用程序通過(guò)工作流引擎接ロ調(diào)用執(zhí)行相應(yīng)的工作流步驟,并得到結(jié)果;工作流引擎分離了工作流程和具體的程序編程。
      全文摘要
      并行業(yè)務(wù)規(guī)則引擎及其實(shí)現(xiàn)方法,包括在引擎的并行執(zhí)行體中對(duì)選擇、聯(lián)合、競(jìng)爭(zhēng)、同時(shí)這四種選擇方式的聲明;并行執(zhí)行體通過(guò)映射方式生成和查找到分支,然后執(zhí)行分支,返回結(jié)果。本發(fā)明在現(xiàn)有的規(guī)則引擎基礎(chǔ)上增加了并行功能,并且使得引擎用戶可以快速地配置并行計(jì)算,滿足了用戶備份、系統(tǒng)集成、高性能計(jì)算等方面的需求。該技術(shù)同時(shí)應(yīng)用于并行工作流引擎。
      文檔編號(hào)G06F9/44GK103116498SQ20131007343
      公開(kāi)日2013年5月22日 申請(qǐng)日期2013年3月7日 優(yōu)先權(quán)日2013年3月7日
      發(fā)明者徐國(guó)慶 申請(qǐng)人:徐國(guó)慶
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1