KIE

#KIE 工程分解

- OptaPlanner 是一个本地搜索和优化工具,从Drools Planner 剥离成为了和drools,JBPM 同样的顶级项目,对drools有很深的依赖。
- UberFire 是一个新的基础工作平台,万全重写,提供了eclipse类似的工作平台 拥有面板和透视插件 同样依赖于drools和jBPM 可以作为一个构建富有弹性和强大的工作平台的基础,UberFire将用于JBoss中的控制台和工作台开发。
- Guvnor 在6.0中被作为UberFire的一系列(Plugs)和Maven集成用于构建和部署,管理Maven仓库和活动通知

Drools和jBPM使用Uberfire作为基础构建工作台发行版,并且包括一组插件,例如Guvnor,以及自己的插件,例如决策表,指导编辑器,BPMN2设计器,人工任务。 Drools工作台称为DroolsWB。

#配置文件

The kmodule.xml file is the descriptor that selects resources to knowledge bases and configures those knowledge bases and sessions. There is also alternative XML support via Spring and OSGi BluePrints.

kmodule.xml文件是向知识库选择资源并配置这些知识库和会话的__描述文件__。 还有通过Spring或OSGi BluePrints的替代XML支持。(Google)

创建KIE工程

1、添加配置文件

一个KIE Maven工程必须包含一个 `kmodule.xml`文件 这个文件必须放在`resources/METAINF`文件夹内,描述 KIEBase 和 KieSessions 如何创建。 其他配置文件必须`resources`文件夹或其子目录下 例如DRLs

最简单的一个kmodule.xml

<?xml version="1.0" encoding="UTF-8"?>
<kmodule xmlns="http://www.drools.org/xsd/kmodule"/>

他会自动定义一个默认的KIEBase 并且自动的将resources下的DRL文件编译并添加到默认KIEBase下

kmodule.xml 能够创建多个KieBase ,每个KieBase可以创建多个KieSession

<kmodule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.drools.org/xsd/kmodule">
<configuration>
    <property key="drools.evaluator.supersetOf" value="org.mycompany.SupersetOfEvaluatorDefinition"/>
</configuration>
    <kbase name="KBase1" default="true" eventProcessingMode="cloud" equalsBehavior="equality" declarativeAgenda
    <ksession name="KSession2_1" type="stateful" default="true"/>
    <ksession name="KSession2_2" type="stateless" default="false" beliefSystem="jtms"/>
</kbase>
<kbase name="KBase2" default="false" eventProcessingMode="stream" equalsBehavior="equality" declarativeAgenda
    <ksession name="KSession3_1" type="stateful" default="false" clockType="realtime">
    <fileLogger file="drools.log" threaded="true" interval="10"/>
    <workItemHandlers>
    <workItemHandler name="name" type="org.domain.WorkItemHandler"/>
    </workItemHandlers>
        <listeners>
            <ruleRuntimeEventListener type="org.domain.RuleRuntimeListener"/>
            <agendaEventListener type="org.domain.FirstAgendaListener"/>
            <agendaEventListener type="org.domain.SecondAgendaListener"/>
            <processEventListener type="org.domain.ProcessListener"/>
        </listeners>
    </ksession>
</kbase>
</kmodule>

##2、创建一个KieContainer

```
KieServices kieServices = KieServices.Factory.get();
KieContainer kContainer = kieServices.getKieClasspathContainer();
```

KieServices 应该是一个工厂接口 资源都是从这里创建的

##KieBase 包含了规则,类型模型,功能 ,但是不存储数据。

创建KieBase消耗资源比较大

##KieSession 存储并执行运行时数据,它由KieBase创建,也可由KieContainer 代为创建

转载于:https://my.oschina.net/sandbela/blog/962008

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值