freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

drools使用手冊第六--十章-全文預(yù)覽

2024-12-06 16:38 上一頁面

下一頁面
  

【正文】 )。規(guī)則被激發(fā),并且設(shè)置了第一個座位的安排,為“分配座位”規(guī)則執(zhí)行所需的路徑和上下文狀態(tài)就建立好了。 . 分配第一個座位 一旦上下文環(huán)境變更為 START_UP,為所有設(shè)置的 Guest 建立的激活規(guī)則就完成了,因為所有激活規(guī)則作為單個 Working Memory動作的結(jié)果建立,它們都具有相同的時間標(biāo)簽。但 3 與 4 以及 1與 2的位置會隨意排列。如果一 個激活規(guī)則擁有比其它激活規(guī)則更多的模式實體,而它們的時間標(biāo)簽相同,則更多模式實體的放在前面。一個激活規(guī)則中一個更近期的模式實體放在一個與遠(yuǎn)期的模式實體相關(guān)的激活規(guī)則之前。 (guest (name n1) (sex m) (hobby h1) ) (guest (name n2) (sex f) (hobby h1) ) (guest (name n2) (sex f) (hobby h3) ) (guest (name n3) (sex m) (hobby h3) ) (guest (name n4) (sex m) (hobby h1) ) (guest (name n4) (sex f) (hobby h2) ) (guest (name n4) (sex f) (hobby h3) ) (guest (name n5) (sex f) (hobby h2) ) (guest (name n5) (sex f) (hobby h1) ) (last_seat (seat 5) ) 結(jié)果 [Seating id=1, pid=0, done=true, ls=1, ln=n5, rs=1, rn=n5] [Seating id=2, pid=1, done=false, ls=1, ln=n5, rs=2, rn=n4] [Seating id=3, pid=2, done=false, ls=2, ln=n4, rs=3, rn=n3] [Seating id=4, pid=3, done=false, ls=3, rn=n3, rs=4, rn=n2] [Seating id=5, pid=4, done=false, ls=4, ln=n2, rs=5, rn=n1] . 深度研究 . 沖突解決 簡單來說, manners 是一個深度優(yōu)先或 LIFO 示例?!?l”和“ r”指左邊和右邊,“ s”是 sean,“ n”是客人姓名。 圖 . Manners 活動圖 . 數(shù)據(jù)和結(jié)果 在深入研究規(guī)則 之前,讓我們先看一下設(shè)置的數(shù)據(jù)以及最后安排的位置結(jié)果。 Daniel P. Miranker 的論文 Effects of Database Size on Rule System Performance: Five Case Studies中提出了五個基準(zhǔn)分析。訪問 獲得更多關(guān)于 FIT 框架信息。 這個測試框架建立在 FIT 和 JSR94之上,對于 Jboos 規(guī)則來說是一個獨立的項目。因為測試被保存在文檔中,這些方法和需求能夠被保存在同樣的文檔中,為規(guī)則行為的提供一個單獨的真實性約束。下一節(jié)介紹了一個規(guī)則測試組件。 . 測試框架 對應(yīng)程序員來說, Junit(或 TestNG)是開發(fā)測試代碼的常用工具,它們也可以用來測試規(guī)則。更進一步說,測試在規(guī)則頻繁變動的環(huán)境下,比規(guī)則更重要。 . 未來的期望 Drools 的將來版本將提供一個規(guī)則庫組件,將直接支持以上的摸式,以及更多。 . Web Services 一種發(fā)布規(guī)則的可能方式是將規(guī)則暴露為 Web 服務(wù)。拉規(guī)則的觸發(fā)器可以是一個定時任務(wù)(檢查變更),或一個發(fā)到運行時系統(tǒng)的請求(可能使用 JMX 接口)。 . 一些部署方法 這節(jié)包含一些部署的建議。它也意味著所有編譯錯誤可以在部署到運行系統(tǒng)前獲得并處理。系統(tǒng)包含 droolspiler規(guī)則編譯器組件構(gòu)建規(guī)則。因此它通常可以進行遠(yuǎn)程發(fā)布,并且綁定規(guī)則到 JNDI 中,就像在容器中使用它們一樣。當(dāng) RuleBase 被整體更新時,這是一個有用的選項,對短期存在的 working memory。 RuleBase 保存著 Package 的列表,并且合并到其中一個 Package,你需要知道哪一個是你需要合并的 Package(顯然,只有在同樣包名中的規(guī)則可以被合并)。在這種情況下,使用 PackageBuilder 從 DRL 源碼建立Package,但是它是可以被部署的二進制 Package 對象。一個類似的方法是部署 PackageDescr對象,這意味著規(guī)則被預(yù)先解析好(對語法錯誤),但是沒有被編譯成二進制格式。例如說,規(guī)則可以從一個有許多使用中的 working memory 的 rulebase中刪除, RETE網(wǎng)絡(luò)將自動調(diào)整以刪除該規(guī)則而不需要將其它 fact重新設(shè)置一次。這個 rulebase 可以被線程共享,每個線程中產(chǎn)生新的 working memory 來處理事務(wù)(然后 working memory 被拋棄)。許多組織對于產(chǎn)品線的更改有配置管理流程。 規(guī)則引擎為規(guī)則部署開放了很多選項。這個模塊中有許多例子。這 意味著使用 64 位 JVM 在一臺至少 8GB 內(nèi)存的機器上。當(dāng)節(jié)點被共享后,它將減少內(nèi)存的占用,并提升性能。通用的規(guī)則通過設(shè)置一個新的 fact 觸發(fā)后來的規(guī)則。這個方法不一定每次都能適用。大多數(shù)項目有嚴(yán)格的計劃,開發(fā)者通常不可能有時間這樣做。通過對兩者評估,可以得到通用性的規(guī)則比硬編碼常量規(guī)則的速度更快。在一個程序路徑上,規(guī)則必須按照最佳的順序排列,以獲得最好的結(jié)果。 Say we run a mega online store and customers can define their favorites in each of the categories (books, videos, music, toys, electronics, clothing). What happens if a customer has different levels for each category. Using the hard coded approach, one might have to add more rules. If we change the rule and make it more generalized, the same rule can handle multiple categories. If ?lvl // 綁定 remendation level 到 lvl 變量 ?rcat // 綁定 remendation category 到 rcat ?id // 綁定 account id 到 id ?id // 通過 id 找到 favorites 列表 ?rcat // 將 favorite 匹配到 remendation category ?lvl // 匹配 favorite level 到 remendation level Then remend all items in the favorites 如此看來,使規(guī)則具有動態(tài)性,并由數(shù)據(jù)驅(qū)動的價值在哪里呢?顯然,硬編碼規(guī)則要比讓規(guī)則具有通用性更快,但是會影響性能。讓我們在這個示例上更進一步,定義 customer 的 type屬性從 level1 到 level10。我們不希望將所有 Customer 都裝載到規(guī)則引擎中。雖然 accountId 更改了,規(guī)則可以有效地忽略它。 If == abcd == basic ..... Then // do something 上面規(guī)則示例的基本問題是,規(guī)則有太多硬編碼值。有很多問題可以尋找。這些情況是在智能 AI 系統(tǒng)中,其中的規(guī)則引擎在執(zhí)行時將產(chǎn)生新的規(guī)則,術(shù)語和 Fact。 . 重新安排約束條件順序 另一個提高性能辦法的提示是,當(dāng)編寫規(guī)則時,盡量將嚴(yán)格的約束條件放在相對不嚴(yán)格的約束條件前面。例如在“ Manners 64 example”測試中,如果我們關(guān)閉右輸入內(nèi)存索引,我們可以獲得下面的結(jié)果 Manners 64 僅使用 BetaNode 左輸入內(nèi)存索引 : 142020 毫秒運行時間 以上甚至比不使用索引更糟糕。這里的并不是一個詳細(xì)的基準(zhǔn)測試,只是一些簡單的概括,使得你更容易理解。一旦所以被定義,當(dāng)查詢被執(zhí)行后,一個查詢計劃組件被數(shù)據(jù)庫系統(tǒng)用來評估運行該查詢的最佳性能的辦法,有時使用索引,有時不用。雖然,在某些特殊情況下,用戶可能受限于系統(tǒng)內(nèi)存或其它原因不想啟用索引功能,索引可以單獨在各內(nèi)存上被禁止,通過設(shè)置如下的系統(tǒng)屬性: 例 : ..當(dāng)你在啟動應(yīng)用時 =false =false . 索引性能調(diào)整 理解當(dāng)索引啟用時發(fā)生了什么的一個好辦法是分析數(shù)據(jù)庫系統(tǒng)。 如果我們使用“ mother”屬性對 BetaNode 內(nèi)存進行索引,當(dāng)新的一個 Person對象設(shè)置到內(nèi)存時,它只需要匹配之前有相同 mother屬性的對象(有相同 mother屬性的可能不只是 Person 對象,因此要進行匹配)就行了,通過索引可以非常高效率的完成這個過程。當(dāng)數(shù)千個Fact 被設(shè)置到 working memory 中時,這將變成一個嚴(yán)重的限制。 因此,當(dāng)單個對象進入節(jié)點的右輸入時,它嘗試對左輸入內(nèi)存中的每一個組元進行匹配,以找到滿足 BetaNode 的約束。這個問題很容易解決,將 RuleBase(或已編譯好的RulePackage)實例緩存起來,并且僅僅只更新需要的規(guī)則(在應(yīng)用中有許多方法可以實現(xiàn)它,這里不再討論)。通常的建議是不要隨意估測,準(zhǔn)確度量,剖析和計劃。 import 。 ( list, globalList )。屬性映射的鍵為在 drl 或 xml 聲明的變量名,值是你希望在執(zhí)行中使用的值。 List results = new ArrayList()。 StatelessRuleSession 有一個非常簡單的 API,你只能調(diào)用 executeRules(List list)傳入對象列表,以及一個可選的過濾器,然后結(jié)果列表被返回。 createRuleSession(....)方法返回一個RuleSession 實例,它必須轉(zhuǎn)義為 StatefulRuleSession 或StatelessRuleSession。 . 使用有狀態(tài)和無狀態(tài) RuleSession 在運行時, RuleServiceProvider 用來建立有狀態(tài)或無狀態(tài)的規(guī)則引擎 Session。 當(dāng)注冊 RuleExecutionSet 時必須指定名稱,用于取回它。 Map properties = new HashMap()。 例 . 當(dāng)注冊 LocalRuleExecutionSet 時指定 DSL // 獲得 RuleAdministration RuleAdministration ruleAdministrator = ()。當(dāng) Null 傳入時,默認(rèn)裝載的輸入是 DRL。 LocalRuleExecutionSetProvider ruleExecutionSetProvider = ( null )。 ( null )。RuleAdministration 提供對 RuleExecutionSet 進行管理的 API,使用該 API 可以注冊一個 RuleExecutionSet,然后可以用 RuleRuntime 來返回RuleExecutionSet。Drools 的 RuleServiceProvider 實現(xiàn)在類被使用 裝載時自動注冊通 過一個靜態(tài)模塊注冊,在大多數(shù)情況下 JDBC 驅(qū)動也使用同樣的方式。 . 如何使用 JSR94分為兩部分工作。因此在 JSR94 中你不能應(yīng)用 Drools 規(guī)則引擎的全部功能。第六章 . Java 規(guī)則引擎 API . 簡介 Drools 提供了一個 Java 規(guī)則引擎 API( JSR94)的實現(xiàn),它允許在一個 API 中支持多個規(guī)則引擎。 應(yīng)當(dāng)記住的是, JSR94 標(biāo)準(zhǔn)描述了不同規(guī)則引擎特性的“最小公分母”,這個意思是說 JSR94 API 中的功能要比 Drools API 提供的功能要少。因此當(dāng)我們?yōu)閳猿质褂?JSR94的程序員提供 API 的同時,我 們強烈建議使用 Drools API。 . 創(chuàng)建與注冊 RuleExecutionSet RuleServiceProviderManager 對注冊進行管理,并返回 RuleServiceProvider。 RuleServiceProvider提供對 RuleRuntime和 RuleAdministration 的 API訪問。RuleExecutionSetProvider 從可序列化的源中裝載 RuleExecutionSet,如 DOM元素或包。 例 . 使用 RuleAdministration API 注冊 LocalRuleExecutionSet // 獲得 RuleAdministration RuleAdministration ruleAdministrator = ()。 在上例中 ( reader, null )為屬性映射提
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1